X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fx86%2Fhuffyuvdsp.asm;h=0d8cae354a504dd339061be482bfa3de16e1d5d6;hb=4d0e89ce27bc8d995bf9be831e62ea0b3893e375;hp=0dbe5984218e0cb87712b2cb61afc616e29100c6;hpb=c0af1ee90dcb760dda0ae9f014fcb748bb196fb3;p=ffmpeg diff --git a/libavcodec/x86/huffyuvdsp.asm b/libavcodec/x86/huffyuvdsp.asm index 0dbe5984218..0d8cae354a5 100644 --- a/libavcodec/x86/huffyuvdsp.asm +++ b/libavcodec/x86/huffyuvdsp.asm @@ -22,195 +22,79 @@ %include "libavutil/x86/x86util.asm" -SECTION_RODATA -cextern pb_15 -pb_zzzzzzzz77777777: times 8 db -1 -pb_7: times 8 db 7 -pb_zzzz3333zzzzbbbb: db -1,-1,-1,-1,3,3,3,3,-1,-1,-1,-1,11,11,11,11 -pb_zz11zz55zz99zzdd: db -1,-1,1,1,-1,-1,5,5,-1,-1,9,9,-1,-1,13,13 - SECTION .text -; void ff_add_hfyu_median_pred_mmxext(uint8_t *dst, const uint8_t *top, -; const uint8_t *diff, int w, -; int *left, int *left_top) -%macro HFYU_MEDIAN 0 -cglobal add_hfyu_median_pred, 6,6,8, dst, top, diff, w, left, left_top - movu m0, [topq] - mova m2, m0 - movd m4, [left_topq] - LSHIFT m2, 1 - mova m1, m0 - por m4, m2 - movd m3, [leftq] - psubb m0, m4 ; t-tl - add dstq, wq - add topq, wq - add diffq, wq - neg wq - jmp .skip -.loop: - movu m4, [topq+wq] - mova m0, m4 - LSHIFT m4, 1 - por m4, m1 - mova m1, m0 ; t - psubb m0, m4 ; t-tl -.skip: - movu m2, [diffq+wq] -%assign i 0 -%rep mmsize - mova m4, m0 - paddb m4, m3 ; t-tl+l - mova m5, m3 - pmaxub m3, m1 - pminub m5, m1 - pminub m3, m4 - pmaxub m3, m5 ; median - paddb m3, m2 ; +residual -%if i==0 - mova m7, m3 - LSHIFT m7, mmsize-1 -%else - mova m6, m3 - RSHIFT m7, 1 - LSHIFT m6, mmsize-1 - por m7, m6 -%endif -%if i