|
@@ -1875,78 +1875,121 @@ static inline void RENAME(bgr32ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static inline void RENAME(bgr24ToY)(uint8_t *dst, uint8_t *src, long width)
|
|
|
-{
|
|
|
#ifdef HAVE_MMX
|
|
|
+static inline void bgr24ToY_mmx(uint8_t *dst, uint8_t *src, long width, int srcFormat)
|
|
|
+{
|
|
|
+
|
|
|
+ if(srcFormat == PIX_FMT_BGR24){
|
|
|
+ asm volatile(
|
|
|
+ "movq "MANGLE(ff_bgr24toY1Coeff)", %mm5 \n\t"
|
|
|
+ "movq "MANGLE(ff_bgr24toY2Coeff)", %mm6 \n\t"
|
|
|
+ );
|
|
|
+ }else{
|
|
|
+ asm volatile(
|
|
|
+ "movq "MANGLE(ff_rgb24toY1Coeff)", %mm5 \n\t"
|
|
|
+ "movq "MANGLE(ff_rgb24toY2Coeff)", %mm6 \n\t"
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
asm volatile(
|
|
|
- "mov %2, %%"REG_a" \n\t"
|
|
|
- "movq "MANGLE(ff_bgr2YCoeff)", %%mm6 \n\t"
|
|
|
- "movq "MANGLE(ff_w1111)", %%mm5 \n\t"
|
|
|
- "pxor %%mm7, %%mm7 \n\t"
|
|
|
- "lea (%%"REG_a", %%"REG_a", 2), %%"REG_d" \n\t"
|
|
|
- ASMALIGN(4)
|
|
|
- "1: \n\t"
|
|
|
- PREFETCH" 64(%0, %%"REG_d") \n\t"
|
|
|
- "movd (%0, %%"REG_d"), %%mm0 \n\t"
|
|
|
- "movd 3(%0, %%"REG_d"), %%mm1 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm0 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm1 \n\t"
|
|
|
- "movd 6(%0, %%"REG_d"), %%mm2 \n\t"
|
|
|
- "movd 9(%0, %%"REG_d"), %%mm3 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm2 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm3 \n\t"
|
|
|
- "pmaddwd %%mm6, %%mm0 \n\t"
|
|
|
- "pmaddwd %%mm6, %%mm1 \n\t"
|
|
|
- "pmaddwd %%mm6, %%mm2 \n\t"
|
|
|
- "pmaddwd %%mm6, %%mm3 \n\t"
|
|
|
-#ifndef FAST_BGR2YV12
|
|
|
- "psrad $8, %%mm0 \n\t"
|
|
|
- "psrad $8, %%mm1 \n\t"
|
|
|
- "psrad $8, %%mm2 \n\t"
|
|
|
- "psrad $8, %%mm3 \n\t"
|
|
|
-#endif
|
|
|
- "packssdw %%mm1, %%mm0 \n\t"
|
|
|
- "packssdw %%mm3, %%mm2 \n\t"
|
|
|
- "pmaddwd %%mm5, %%mm0 \n\t"
|
|
|
- "pmaddwd %%mm5, %%mm2 \n\t"
|
|
|
- "packssdw %%mm2, %%mm0 \n\t"
|
|
|
- "psraw $7, %%mm0 \n\t"
|
|
|
-
|
|
|
- "movd 12(%0, %%"REG_d"), %%mm4 \n\t"
|
|
|
- "movd 15(%0, %%"REG_d"), %%mm1 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm4 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm1 \n\t"
|
|
|
- "movd 18(%0, %%"REG_d"), %%mm2 \n\t"
|
|
|
- "movd 21(%0, %%"REG_d"), %%mm3 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm2 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm3 \n\t"
|
|
|
- "pmaddwd %%mm6, %%mm4 \n\t"
|
|
|
- "pmaddwd %%mm6, %%mm1 \n\t"
|
|
|
- "pmaddwd %%mm6, %%mm2 \n\t"
|
|
|
- "pmaddwd %%mm6, %%mm3 \n\t"
|
|
|
-#ifndef FAST_BGR2YV12
|
|
|
- "psrad $8, %%mm4 \n\t"
|
|
|
- "psrad $8, %%mm1 \n\t"
|
|
|
- "psrad $8, %%mm2 \n\t"
|
|
|
- "psrad $8, %%mm3 \n\t"
|
|
|
-#endif
|
|
|
- "packssdw %%mm1, %%mm4 \n\t"
|
|
|
- "packssdw %%mm3, %%mm2 \n\t"
|
|
|
- "pmaddwd %%mm5, %%mm4 \n\t"
|
|
|
- "pmaddwd %%mm5, %%mm2 \n\t"
|
|
|
- "add $24, %%"REG_d" \n\t"
|
|
|
- "packssdw %%mm2, %%mm4 \n\t"
|
|
|
- "psraw $7, %%mm4 \n\t"
|
|
|
-
|
|
|
- "packuswb %%mm4, %%mm0 \n\t"
|
|
|
- "paddusb "MANGLE(ff_bgr2YOffset)", %%mm0 \n\t"
|
|
|
-
|
|
|
- "movq %%mm0, (%1, %%"REG_a") \n\t"
|
|
|
- "add $8, %%"REG_a" \n\t"
|
|
|
- " js 1b \n\t"
|
|
|
- : : "r" (src+width*3), "r" (dst+width), "g" (-width)
|
|
|
- : "%"REG_a, "%"REG_d
|
|
|
+ "movq "MANGLE(ff_bgr24toYOffset)", %%mm4 \n\t"
|
|
|
+ "mov %2, %%"REG_a" \n\t"
|
|
|
+ "pxor %%mm7, %%mm7 \n\t"
|
|
|
+ "1: \n\t"
|
|
|
+ PREFETCH" 64(%0) \n\t"
|
|
|
+ "movd (%0), %%mm0 \n\t"
|
|
|
+ "movd 2(%0), %%mm1 \n\t"
|
|
|
+ "movd 6(%0), %%mm2 \n\t"
|
|
|
+ "movd 8(%0), %%mm3 \n\t"
|
|
|
+ "add $12, %0 \n\t"
|
|
|
+ "punpcklbw %%mm7, %%mm0 \n\t"
|
|
|
+ "punpcklbw %%mm7, %%mm1 \n\t"
|
|
|
+ "punpcklbw %%mm7, %%mm2 \n\t"
|
|
|
+ "punpcklbw %%mm7, %%mm3 \n\t"
|
|
|
+ "pmaddwd %%mm5, %%mm0 \n\t"
|
|
|
+ "pmaddwd %%mm6, %%mm1 \n\t"
|
|
|
+ "pmaddwd %%mm5, %%mm2 \n\t"
|
|
|
+ "pmaddwd %%mm6, %%mm3 \n\t"
|
|
|
+ "paddd %%mm1, %%mm0 \n\t"
|
|
|
+ "paddd %%mm3, %%mm2 \n\t"
|
|
|
+ "paddd %%mm4, %%mm0 \n\t"
|
|
|
+ "paddd %%mm4, %%mm2 \n\t"
|
|
|
+ "psrad $15, %%mm0 \n\t"
|
|
|
+ "psrad $15, %%mm2 \n\t"
|
|
|
+ "packssdw %%mm2, %%mm0 \n\t"
|
|
|
+ "packuswb %%mm0, %%mm0 \n\t"
|
|
|
+ "movd %%mm0, (%1, %%"REG_a") \n\t"
|
|
|
+ "add $4, %%"REG_a" \n\t"
|
|
|
+ " js 1b \n\t"
|
|
|
+ : "+r" (src)
|
|
|
+ : "r" (dst+width), "g" (-width)
|
|
|
+ : "%"REG_a
|
|
|
);
|
|
|
+}
|
|
|
+
|
|
|
+static inline void bgr24ToUV_mmx(uint8_t *dstU, uint8_t *dstV, uint8_t *src, long width, int srcFormat)
|
|
|
+{
|
|
|
+ asm volatile(
|
|
|
+ "movq 24+%4, %%mm6 \n\t"
|
|
|
+ "mov %3, %%"REG_a" \n\t"
|
|
|
+ "pxor %%mm7, %%mm7 \n\t"
|
|
|
+ "1: \n\t"
|
|
|
+ PREFETCH" 64(%0) \n\t"
|
|
|
+ "movd (%0), %%mm0 \n\t"
|
|
|
+ "movd 2(%0), %%mm1 \n\t"
|
|
|
+ "punpcklbw %%mm7, %%mm0 \n\t"
|
|
|
+ "punpcklbw %%mm7, %%mm1 \n\t"
|
|
|
+ "movq %%mm0, %%mm2 \n\t"
|
|
|
+ "movq %%mm1, %%mm3 \n\t"
|
|
|
+ "pmaddwd %4, %%mm0 \n\t"
|
|
|
+ "pmaddwd 8+%4, %%mm1 \n\t"
|
|
|
+ "pmaddwd 16+%4, %%mm2 \n\t"
|
|
|
+ "pmaddwd %%mm6, %%mm3 \n\t"
|
|
|
+ "paddd %%mm1, %%mm0 \n\t"
|
|
|
+ "paddd %%mm3, %%mm2 \n\t"
|
|
|
+
|
|
|
+ "movd 6(%0), %%mm1 \n\t"
|
|
|
+ "movd 8(%0), %%mm3 \n\t"
|
|
|
+ "add $12, %0 \n\t"
|
|
|
+ "punpcklbw %%mm7, %%mm1 \n\t"
|
|
|
+ "punpcklbw %%mm7, %%mm3 \n\t"
|
|
|
+ "movq %%mm1, %%mm4 \n\t"
|
|
|
+ "movq %%mm3, %%mm5 \n\t"
|
|
|
+ "pmaddwd %4, %%mm1 \n\t"
|
|
|
+ "pmaddwd 8+%4, %%mm3 \n\t"
|
|
|
+ "pmaddwd 16+%4, %%mm4 \n\t"
|
|
|
+ "pmaddwd %%mm6, %%mm5 \n\t"
|
|
|
+ "paddd %%mm3, %%mm1 \n\t"
|
|
|
+ "paddd %%mm5, %%mm4 \n\t"
|
|
|
+
|
|
|
+ "movq "MANGLE(ff_bgr24toUVOffset)", %%mm3 \n\t"
|
|
|
+ "paddd %%mm3, %%mm0 \n\t"
|
|
|
+ "paddd %%mm3, %%mm2 \n\t"
|
|
|
+ "paddd %%mm3, %%mm1 \n\t"
|
|
|
+ "paddd %%mm3, %%mm4 \n\t"
|
|
|
+ "psrad $15, %%mm0 \n\t"
|
|
|
+ "psrad $15, %%mm2 \n\t"
|
|
|
+ "psrad $15, %%mm1 \n\t"
|
|
|
+ "psrad $15, %%mm4 \n\t"
|
|
|
+ "packssdw %%mm1, %%mm0 \n\t"
|
|
|
+ "packssdw %%mm4, %%mm2 \n\t"
|
|
|
+ "packuswb %%mm0, %%mm0 \n\t"
|
|
|
+ "packuswb %%mm2, %%mm2 \n\t"
|
|
|
+ "movd %%mm0, (%1, %%"REG_a") \n\t"
|
|
|
+ "movd %%mm2, (%2, %%"REG_a") \n\t"
|
|
|
+ "add $4, %%"REG_a" \n\t"
|
|
|
+ " js 1b \n\t"
|
|
|
+ : "+r" (src)
|
|
|
+ : "r" (dstU+width), "r" (dstV+width), "g" (-width), "m"(ff_bgr24toUV[srcFormat == PIX_FMT_RGB24][0])
|
|
|
+ : "%"REG_a
|
|
|
+ );
|
|
|
+}
|
|
|
+#endif
|
|
|
+
|
|
|
+static inline void RENAME(bgr24ToY)(uint8_t *dst, uint8_t *src, long width)
|
|
|
+{
|
|
|
+#ifdef HAVE_MMX
|
|
|
+ bgr24ToY_mmx(dst, src, width, PIX_FMT_BGR24);
|
|
|
#else
|
|
|
int i;
|
|
|
for (i=0; i<width; i++)
|
|
@@ -1963,132 +2006,17 @@ static inline void RENAME(bgr24ToY)(uint8_t *dst, uint8_t *src, long width)
|
|
|
static inline void RENAME(bgr24ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width)
|
|
|
{
|
|
|
#ifdef HAVE_MMX
|
|
|
- asm volatile(
|
|
|
- "mov %3, %%"REG_a" \n\t"
|
|
|
- "movq "MANGLE(ff_w1111)", %%mm5 \n\t"
|
|
|
- "movq "MANGLE(ff_bgr2UCoeff)", %%mm6 \n\t"
|
|
|
- "pxor %%mm7, %%mm7 \n\t"
|
|
|
- "lea (%%"REG_a", %%"REG_a", 2), %%"REG_d" \n\t"
|
|
|
- "add %%"REG_d", %%"REG_d" \n\t"
|
|
|
- ASMALIGN(4)
|
|
|
- "1: \n\t"
|
|
|
- PREFETCH" 64(%0, %%"REG_d") \n\t"
|
|
|
-#if defined (HAVE_MMX2) || defined (HAVE_3DNOW)
|
|
|
- "movq (%0, %%"REG_d"), %%mm0 \n\t"
|
|
|
- "movq 6(%0, %%"REG_d"), %%mm2 \n\t"
|
|
|
- "movq %%mm0, %%mm1 \n\t"
|
|
|
- "movq %%mm2, %%mm3 \n\t"
|
|
|
- "psrlq $24, %%mm0 \n\t"
|
|
|
- "psrlq $24, %%mm2 \n\t"
|
|
|
- PAVGB(%%mm1, %%mm0)
|
|
|
- PAVGB(%%mm3, %%mm2)
|
|
|
- "punpcklbw %%mm7, %%mm0 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm2 \n\t"
|
|
|
-#else
|
|
|
- "movd (%0, %%"REG_d"), %%mm0 \n\t"
|
|
|
- "movd 3(%0, %%"REG_d"), %%mm2 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm0 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm2 \n\t"
|
|
|
- "paddw %%mm2, %%mm0 \n\t"
|
|
|
- "movd 6(%0, %%"REG_d"), %%mm4 \n\t"
|
|
|
- "movd 9(%0, %%"REG_d"), %%mm2 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm4 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm2 \n\t"
|
|
|
- "paddw %%mm4, %%mm2 \n\t"
|
|
|
- "psrlw $1, %%mm0 \n\t"
|
|
|
- "psrlw $1, %%mm2 \n\t"
|
|
|
-#endif
|
|
|
- "movq "MANGLE(ff_bgr2VCoeff)", %%mm1 \n\t"
|
|
|
- "movq "MANGLE(ff_bgr2VCoeff)", %%mm3 \n\t"
|
|
|
-
|
|
|
- "pmaddwd %%mm0, %%mm1 \n\t"
|
|
|
- "pmaddwd %%mm2, %%mm3 \n\t"
|
|
|
- "pmaddwd %%mm6, %%mm0 \n\t"
|
|
|
- "pmaddwd %%mm6, %%mm2 \n\t"
|
|
|
-#ifndef FAST_BGR2YV12
|
|
|
- "psrad $8, %%mm0 \n\t"
|
|
|
- "psrad $8, %%mm1 \n\t"
|
|
|
- "psrad $8, %%mm2 \n\t"
|
|
|
- "psrad $8, %%mm3 \n\t"
|
|
|
-#endif
|
|
|
- "packssdw %%mm2, %%mm0 \n\t"
|
|
|
- "packssdw %%mm3, %%mm1 \n\t"
|
|
|
- "pmaddwd %%mm5, %%mm0 \n\t"
|
|
|
- "pmaddwd %%mm5, %%mm1 \n\t"
|
|
|
- "packssdw %%mm1, %%mm0 \n\t" // V1 V0 U1 U0
|
|
|
- "psraw $7, %%mm0 \n\t"
|
|
|
-
|
|
|
-#if defined (HAVE_MMX2) || defined (HAVE_3DNOW)
|
|
|
- "movq 12(%0, %%"REG_d"), %%mm4 \n\t"
|
|
|
- "movq 18(%0, %%"REG_d"), %%mm2 \n\t"
|
|
|
- "movq %%mm4, %%mm1 \n\t"
|
|
|
- "movq %%mm2, %%mm3 \n\t"
|
|
|
- "psrlq $24, %%mm4 \n\t"
|
|
|
- "psrlq $24, %%mm2 \n\t"
|
|
|
- PAVGB(%%mm1, %%mm4)
|
|
|
- PAVGB(%%mm3, %%mm2)
|
|
|
- "punpcklbw %%mm7, %%mm4 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm2 \n\t"
|
|
|
-#else
|
|
|
- "movd 12(%0, %%"REG_d"), %%mm4 \n\t"
|
|
|
- "movd 15(%0, %%"REG_d"), %%mm2 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm4 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm2 \n\t"
|
|
|
- "paddw %%mm2, %%mm4 \n\t"
|
|
|
- "movd 18(%0, %%"REG_d"), %%mm5 \n\t"
|
|
|
- "movd 21(%0, %%"REG_d"), %%mm2 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm5 \n\t"
|
|
|
- "punpcklbw %%mm7, %%mm2 \n\t"
|
|
|
- "paddw %%mm5, %%mm2 \n\t"
|
|
|
- "movq "MANGLE(ff_w1111)", %%mm5 \n\t"
|
|
|
- "psrlw $2, %%mm4 \n\t"
|
|
|
- "psrlw $2, %%mm2 \n\t"
|
|
|
-#endif
|
|
|
- "movq "MANGLE(ff_bgr2VCoeff)", %%mm1 \n\t"
|
|
|
- "movq "MANGLE(ff_bgr2VCoeff)", %%mm3 \n\t"
|
|
|
-
|
|
|
- "pmaddwd %%mm4, %%mm1 \n\t"
|
|
|
- "pmaddwd %%mm2, %%mm3 \n\t"
|
|
|
- "pmaddwd %%mm6, %%mm4 \n\t"
|
|
|
- "pmaddwd %%mm6, %%mm2 \n\t"
|
|
|
-#ifndef FAST_BGR2YV12
|
|
|
- "psrad $8, %%mm4 \n\t"
|
|
|
- "psrad $8, %%mm1 \n\t"
|
|
|
- "psrad $8, %%mm2 \n\t"
|
|
|
- "psrad $8, %%mm3 \n\t"
|
|
|
-#endif
|
|
|
- "packssdw %%mm2, %%mm4 \n\t"
|
|
|
- "packssdw %%mm3, %%mm1 \n\t"
|
|
|
- "pmaddwd %%mm5, %%mm4 \n\t"
|
|
|
- "pmaddwd %%mm5, %%mm1 \n\t"
|
|
|
- "add $24, %%"REG_d" \n\t"
|
|
|
- "packssdw %%mm1, %%mm4 \n\t" // V3 V2 U3 U2
|
|
|
- "psraw $7, %%mm4 \n\t"
|
|
|
-
|
|
|
- "movq %%mm0, %%mm1 \n\t"
|
|
|
- "punpckldq %%mm4, %%mm0 \n\t"
|
|
|
- "punpckhdq %%mm4, %%mm1 \n\t"
|
|
|
- "packsswb %%mm1, %%mm0 \n\t"
|
|
|
- "paddb "MANGLE(ff_bgr2UVOffset)", %%mm0 \n\t"
|
|
|
-
|
|
|
- "movd %%mm0, (%1, %%"REG_a") \n\t"
|
|
|
- "punpckhdq %%mm0, %%mm0 \n\t"
|
|
|
- "movd %%mm0, (%2, %%"REG_a") \n\t"
|
|
|
- "add $4, %%"REG_a" \n\t"
|
|
|
- " js 1b \n\t"
|
|
|
- : : "r" (src1+width*6), "r" (dstU+width), "r" (dstV+width), "g" (-width)
|
|
|
- : "%"REG_a, "%"REG_d
|
|
|
- );
|
|
|
+ bgr24ToUV_mmx(dstU, dstV, src1, width, PIX_FMT_BGR24);
|
|
|
#else
|
|
|
int i;
|
|
|
for (i=0; i<width; i++)
|
|
|
{
|
|
|
- int b= src1[6*i + 0] + src1[6*i + 3];
|
|
|
- int g= src1[6*i + 1] + src1[6*i + 4];
|
|
|
- int r= src1[6*i + 2] + src1[6*i + 5];
|
|
|
+ int b= src1[3*i + 0];
|
|
|
+ int g= src1[3*i + 1];
|
|
|
+ int r= src1[3*i + 2];
|
|
|
|
|
|
- dstU[i]= (RU*r + GU*g + BU*b + (257<<RGB2YUV_SHIFT))>>(RGB2YUV_SHIFT+1);
|
|
|
- dstV[i]= (RV*r + GV*g + BV*b + (257<<RGB2YUV_SHIFT))>>(RGB2YUV_SHIFT+1);
|
|
|
+ dstU[i]= (RU*r + GU*g + BU*b + (257<<(RGB2YUV_SHIFT-1)))>>RGB2YUV_SHIFT;
|
|
|
+ dstV[i]= (RV*r + GV*g + BV*b + (257<<(RGB2YUV_SHIFT-1)))>>RGB2YUV_SHIFT;
|
|
|
}
|
|
|
#endif /* HAVE_MMX */
|
|
|
assert(src1 == src2);
|
|
@@ -2201,6 +2129,9 @@ static inline void RENAME(rgb32ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1
|
|
|
|
|
|
static inline void RENAME(rgb24ToY)(uint8_t *dst, uint8_t *src, long width)
|
|
|
{
|
|
|
+#ifdef HAVE_MMX
|
|
|
+ bgr24ToY_mmx(dst, src, width, PIX_FMT_RGB24);
|
|
|
+#else
|
|
|
int i;
|
|
|
for (i=0; i<width; i++)
|
|
|
{
|
|
@@ -2210,21 +2141,26 @@ static inline void RENAME(rgb24ToY)(uint8_t *dst, uint8_t *src, long width)
|
|
|
|
|
|
dst[i]= ((RY*r + GY*g + BY*b + (33<<(RGB2YUV_SHIFT-1)))>>RGB2YUV_SHIFT);
|
|
|
}
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
static inline void RENAME(rgb24ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width)
|
|
|
{
|
|
|
int i;
|
|
|
assert(src1==src2);
|
|
|
+#ifdef HAVE_MMX
|
|
|
+ bgr24ToUV_mmx(dstU, dstV, src1, width, PIX_FMT_RGB24);
|
|
|
+#else
|
|
|
for (i=0; i<width; i++)
|
|
|
{
|
|
|
- int r= src1[6*i + 0] + src1[6*i + 3];
|
|
|
- int g= src1[6*i + 1] + src1[6*i + 4];
|
|
|
- int b= src1[6*i + 2] + src1[6*i + 5];
|
|
|
+ int r= src1[3*i + 0];
|
|
|
+ int g= src1[3*i + 1];
|
|
|
+ int b= src1[3*i + 2];
|
|
|
|
|
|
- dstU[i]= (RU*r + GU*g + BU*b + (257<<(RGB2YUV_SHIFT)))>>(RGB2YUV_SHIFT+1);
|
|
|
- dstV[i]= (RV*r + GV*g + BV*b + (257<<(RGB2YUV_SHIFT)))>>(RGB2YUV_SHIFT+1);
|
|
|
+ dstU[i]= (RU*r + GU*g + BU*b + (257<<(RGB2YUV_SHIFT-1)))>>RGB2YUV_SHIFT;
|
|
|
+ dstV[i]= (RV*r + GV*g + BV*b + (257<<(RGB2YUV_SHIFT-1)))>>RGB2YUV_SHIFT;
|
|
|
}
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
static inline void RENAME(bgr16ToY)(uint8_t *dst, uint8_t *src, long width)
|