mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avcodec/x86: allow future 8-bit simple idct to have "DC only hack"
Created by Ronald S. Bultje
This commit is contained in:
parent
c1d1274bfc
commit
8b19467d07
@ -257,6 +257,46 @@
|
||||
pmullw m12,[%8+96]
|
||||
|
||||
IDCT_1D %1, %2, %8
|
||||
%elif %2 == 11
|
||||
; This copies the DC-only shortcut. When there is only a DC coefficient the
|
||||
; C shifts the value and splats it to all coeffs rather than multiplying and
|
||||
; doing the full IDCT. This causes a difference on 8-bit because the
|
||||
; coefficient is 16383 rather than 16384 (which you can get with shifting).
|
||||
por m1, m8, m13
|
||||
por m1, m12
|
||||
por m1, [blockq+ 16] ; { row[1] }[0-7]
|
||||
por m1, [blockq+ 48] ; { row[3] }[0-7]
|
||||
por m1, [blockq+ 80] ; { row[5] }[0-7]
|
||||
por m1, [blockq+112] ; { row[7] }[0-7]
|
||||
pxor m2, m2
|
||||
pcmpeqw m1, m2
|
||||
psllw m2, m10, 3
|
||||
pand m2, m1
|
||||
pcmpeqb m3, m3
|
||||
pxor m1, m3
|
||||
mova [rsp], m1
|
||||
mova [rsp+16], m2
|
||||
|
||||
IDCT_1D %1, %2
|
||||
|
||||
mova m5, [rsp]
|
||||
mova m6, [rsp+16]
|
||||
pand m8, m5
|
||||
por m8, m6
|
||||
pand m0, m5
|
||||
por m0, m6
|
||||
pand m1, m5
|
||||
por m1, m6
|
||||
pand m2, m5
|
||||
por m2, m6
|
||||
pand m4, m5
|
||||
por m4, m6
|
||||
pand m11, m5
|
||||
por m11, m6
|
||||
pand m9, m5
|
||||
por m9, m6
|
||||
pand m10, m5
|
||||
por m10, m6
|
||||
%else
|
||||
IDCT_1D %1, %2
|
||||
%endif
|
||||
|
Loading…
Reference in New Issue
Block a user