|
|
@@ -192,11 +192,6 @@ static void RENAME(yuv2yuvX)(SwsContext *c, const int16_t *lumFilter, |
|
|
|
static av_always_inline void |
|
|
|
dither_8to32(SwsContext *c, const uint8_t *srcDither, int rot) |
|
|
|
{ |
|
|
|
int i; |
|
|
|
if(rot) for(i=0; i<8; i++) c->dither32[i] = srcDither[(i+3)&7]<<12; |
|
|
|
else for(i=0; i<8; i++) c->dither32[i] = srcDither[i&7]<<12; |
|
|
|
return; |
|
|
|
|
|
|
|
if (rot) { |
|
|
|
__asm__ volatile("pxor %%mm0, %%mm0\n\t" |
|
|
|
"movq (%0), %%mm4\n\t" |
|
|
@@ -213,10 +208,10 @@ return; |
|
|
|
"punpckhwd %%mm0, %%mm5\n\t" |
|
|
|
"punpcklwd %%mm0, %%mm6\n\t" |
|
|
|
"punpckhwd %%mm0, %%mm7\n\t" |
|
|
|
"psllw $12, %%mm4\n\t" |
|
|
|
"psllw $12, %%mm5\n\t" |
|
|
|
"psllw $12, %%mm6\n\t" |
|
|
|
"psllw $12, %%mm7\n\t" |
|
|
|
"pslld $12, %%mm4\n\t" |
|
|
|
"pslld $12, %%mm5\n\t" |
|
|
|
"pslld $12, %%mm6\n\t" |
|
|
|
"pslld $12, %%mm7\n\t" |
|
|
|
"movq %%mm4, "DITHER32"+0(%1)\n\t" |
|
|
|
"movq %%mm5, "DITHER32"+8(%1)\n\t" |
|
|
|
"movq %%mm6, "DITHER32"+16(%1)\n\t" |
|
|
@@ -235,10 +230,10 @@ return; |
|
|
|
"punpckhwd %%mm0, %%mm5\n\t" |
|
|
|
"punpcklwd %%mm0, %%mm6\n\t" |
|
|
|
"punpckhwd %%mm0, %%mm7\n\t" |
|
|
|
"psllw $12, %%mm4\n\t" |
|
|
|
"psllw $12, %%mm5\n\t" |
|
|
|
"psllw $12, %%mm6\n\t" |
|
|
|
"psllw $12, %%mm7\n\t" |
|
|
|
"pslld $12, %%mm4\n\t" |
|
|
|
"pslld $12, %%mm5\n\t" |
|
|
|
"pslld $12, %%mm6\n\t" |
|
|
|
"pslld $12, %%mm7\n\t" |
|
|
|
"movq %%mm4, "DITHER32"+0(%1)\n\t" |
|
|
|
"movq %%mm5, "DITHER32"+8(%1)\n\t" |
|
|
|
"movq %%mm6, "DITHER32"+16(%1)\n\t" |
|
|
|