📄 deblockopt.cpp
字号:
paddw ( mm4, mm5 );/* += x5 */
movq ( esi+64, mm4 );/* write new x5 */
/* sum += x9 - x2 */
/* DesPitch = ((sum+x6)>>3 */
movq ( mm5, edi+96 );/* mm5 = x6 */
psubw( mm3, edi+32 );/* -= x2 */
paddw( mm3, mm2 );/* += x9 */
movq ( mm4, mm5 );/* mm4 = x6 */
paddw( mm4, mm3 );/* mm4 = sum+x6 */
psraw( mm4, 3 );/* >>=3 */
psubw( mm4, mm5 );/* -=x6 */
pand ( mm4, mm7 );/* and flag */
paddw ( mm4, mm5 );/* += x6 */
movq ( esi+80, mm4 );/* write new x6 */
/* sum += x9 - x3 */
/* Des2*Pitch = (sum+x7)>>3 */
movq ( mm5, edi+112 );/* mm5 = x7 */
psubw( mm3, edi+48 );/* -= x3 */
paddw( mm3, mm2 );/* += x9 */
movq ( mm4, mm5 );/* mm4 = x7 */
paddw( mm4, mm3 );/* mm4 = sum+x7 */
psraw( mm4, 3 );/* >>=3 */
psubw( mm4, mm5 );/* -=x7 */
pand ( mm4, mm7 );/* and flag */
paddw ( mm4, mm5 );/* += x7 */
movq ( esi+96, mm4 );/* write new x7 */
/* sum += x9 - x4 */
/* Des3*Pitch = (sum+x8)>>3 */
movq ( mm5, edi+128 );/* mm5 = x8 */
psubw ( mm3, edi+64 );/* -= x4 */
paddw ( mm3, mm2 );/* += x9 */
movq ( mm4, mm5 );/* mm4 = x8 */
paddw ( mm4, mm3 );/* mm4 = sum+x8 */
psraw ( mm4, 3 );/* >>=3 */
psubw ( mm4, mm5 );/* -=x8 */
pand ( mm4, mm7 );/* and flag */
paddw ( mm4, mm5 );/* += x8 */
movq ( esi+112, mm4 );/* write new x8 */
/* done with left four columns */
/* now do the righ four columns */
edi+= 8; /* shift to right four column */
esi+= 8; /* shift to right four column */
/* mm0 now are in use */
/* Let's do the filtering now */
/* sum = x0 + x0 + x0 + x1 + x2 + x3 + x4 + 4; */
movq ( mm3, edi );/* mm3 = -5 */
movq ( mm2, edi+144 );/* mm2 = 4 */
movq ( mm1, mm3 );/* x0 = -4 */
paddw ( mm3, mm3 );/* mm3 = x0 + x0 */
movq ( mm4, edi+16 );/* mm4 = x1 */
paddw( mm3, mm1 );/* mm3 = x0 + x0 + x0 */
paddw( mm3, edi+32 );/* mm3 = x0+x0+x0+ x2 */
paddw( mm4, edi+48 );/* mm4 = x1+x3 */
paddw( mm3, edi+64 );/* mm3 += x4 */
paddw( mm4, FourFours );/* mm4 = x1 + x3 + 4 */
paddw( mm3, mm4 );/* mm3 = 3*x0+x1+x2+x3+x4+4 */
/* Des-4*Pitch = (((sum + x1) >> 3; */
movq ( mm4, mm3 );/* mm4 = mm3 */
movq ( mm5, edi+16 );/* mm5 = x1 */
paddw ( mm4, mm5 );/* mm4 = sum+x1 */
psraw ( mm4, 3 );/* mm4 >>=4 */
psubw ( mm4, mm5 );/* New Value - old Value */
pand ( mm4, mm0 );/* And the flag */
paddw ( mm4, mm5 );/* add the old value back */
movq ( esi, mm4 );/* Write new x1 */
/* sum += x5 -x0 */
/* Des-3*Pitch=((sum+x2)>>3 */
movq ( mm5, edi+32 );/* mm5= x2 */
psubw ( mm3, mm1 );/* sum=sum-x0 */
paddw ( mm3, edi+80 );/* sum=sum+x5 */
movq ( mm4, mm5 );/* copy sum */
paddw ( mm4, mm3 );/* mm4=sum+x2 */
psraw ( mm4, 3 );/* mm4=(sum+x2)>>3 */
psubw ( mm4, mm5 );/* new value - old value */
pand ( mm4, mm0 );/* And the flag */
paddw ( mm4, mm5 );/* add the old value back */
movq ( esi+16, mm4 );/* write new x2 */
/* sum += x6 - x0 */
/* Des-2*Pitch=((sum+x3)>>3 */
movq ( mm5, edi+48 );/* mm5= x3 */
psubw ( mm3, mm1 );/* sum=sum-x0 */
paddw ( mm3, edi+96 );/* sum=sum+x6 */
movq ( mm4, mm5 );/* copy x3 */
paddw ( mm4, mm3 );/* mm4=sum+x3 */
psraw ( mm4, 3 );/* mm4=(sum+x3)>>3 */
psubw ( mm4, mm5 );/* new value - old value */
pand ( mm4, mm0 );/* And the flag */
paddw ( mm4, mm5 );/* add the old value back */
movq ( esi+32, mm4 );/* write new x3 */
/* sum += x7 - x0 */
/* Des-Pitch=(sum+x4)>>3 */
movq ( mm5, edi+64 );/* mm5 = x4 */
psubw ( mm3, mm1 );/* sum = sum-x0 */
paddw ( mm3, edi+112 );/* sum = sum+x7 */
movq ( mm4, mm5 );/* mm4 = x4 */
paddw ( mm4, mm3 );/* mm4 = sum + x4 */
psraw ( mm4, 3 );/* >>=4 */
psubw ( mm4, mm5 );/* -=x4 */
pand ( mm4, mm0 );/* and flag */
paddw ( mm4, mm5 );/* += x4 */
movq ( esi+48, mm4 );/* write new x4 */
/* sum+= x8-x1 */
/* Des0=((sum+x5)>>3 */
movq ( mm5, edi+80 );/* mm5 = x5 */
psubw ( mm3, edi+16 );/* sum -= x1 */
paddw ( mm3, edi+128 );/* sub += x8 */
movq ( mm4, mm5 );/* mm4 = x5 */
paddw ( mm4, mm3 );/* mm4= sum+x5 */
psraw ( mm4, 3 );/* >>=4 */
psubw ( mm4, mm5 );/* -=x5 */
pand ( mm4, mm0 );/* and flag */
paddw ( mm4, mm5 );/* += x5 */
movq ( esi+64, mm4 );/* write new x5 */
/* sum += x9 - x2 */
/* DesPitch = ((sum+x6)>>3 */
movq ( mm5, edi+96 );/* mm5 = x6 */
psubw ( mm3, edi+32 );/* -= x2 */
paddw ( mm3, mm2 );/* += x9 */
movq ( mm4, mm5 );/* mm4 = x6 */
paddw ( mm4, mm3 );/* mm4 = sum+x6 */
psraw ( mm4, 3 );/* >>=3 */
psubw ( mm4, mm5 );/* -=x6 */
pand ( mm4, mm0 );/* and flag */
paddw ( mm4, mm5 );/* += x6 */
movq ( esi+80, mm4 );/* write new x6 */
/* sum += x9 - x3 */
/* Des2*Pitch = (sum+x7)>>3 */
movq ( mm5, edi+112 );/* mm5 = x7 */
psubw ( mm3, edi+48 );/* -= x3 */
paddw ( mm3, mm2 );/* += x9 */
movq ( mm4, mm5 );/* mm4 = x7 */
paddw ( mm4, mm3 );/* mm4 = sum+x7 */
psraw ( mm4, 3 );/* >>=3 */
psubw ( mm4, mm5 );/* -=x7 */
pand ( mm4, mm0 );/* and flag */
paddw ( mm4, mm5 );/* += x7 */
movq ( esi+96, mm4 );/* write new x7 */
/* sum += x9 - x4 */
/* Des3*Pitch = ((sum+x8)>>3 */
movq ( mm5, edi+128 );/* mm5 = x8 */
psubw ( mm3, edi+64 );/* -= x4 */
paddw ( mm3, mm2 );/* += x9 */
movq ( mm4, mm5 );/* mm4 = x8 */
paddw ( mm4, mm3 );/* mm4 = sum+x8 */
psraw ( mm4, 3 );/* >>=3 */
psubw ( mm4, mm5 );/* -=x8 */
pand ( mm4, mm0 );/* and flag */
paddw ( mm4, mm5 );/* += x8 */
movq ( esi+112, mm4 );/* write new x8 */
/* done with right four column */
edi+= 8;/* shift edi to point x1 */
esi-= 8;/* shift esi back to x1 */
uint8_t*ebp=Des;/* the destination */
ebp= ebp + edx *4 ;/* point to des-4*Pitch */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -