|
|
|
@@ -29,9 +29,12 @@ |
|
|
|
|
|
|
|
SECTION_RODATA |
|
|
|
|
|
|
|
cextern pw_2 |
|
|
|
cextern pw_16 |
|
|
|
cextern pw_1023 |
|
|
|
cextern pw_4095 |
|
|
|
pd_round_12: times 4 dd 1<<(12-1) |
|
|
|
pd_round_15: times 4 dd 1<<(15-1) |
|
|
|
pd_round_19: times 4 dd 1<<(19-1) |
|
|
|
|
|
|
|
%include "libavcodec/x86/simple_idct10_template.asm" |
|
|
|
@@ -46,6 +49,19 @@ cglobal simple_idct10, 1, 1, 16 |
|
|
|
cglobal simple_idct10_put, 3, 3, 16 |
|
|
|
IDCT_FN "", 12, "", 19, 0, pw_1023 |
|
|
|
RET |
|
|
|
|
|
|
|
cglobal simple_idct12, 1, 1, 16 |
|
|
|
; coeffs are already 15bits, adding the offset would cause |
|
|
|
; overflow in the input |
|
|
|
IDCT_FN "", 15, pw_2, 16 |
|
|
|
RET |
|
|
|
|
|
|
|
cglobal simple_idct12_put, 3, 3, 16 |
|
|
|
; range isn't known, so the C simple_idct range is used |
|
|
|
; Also, using a bias on input overflows, so use the bias |
|
|
|
; on output of the first butterfly instead |
|
|
|
IDCT_FN "", 15, pw_2, 16, 0, pw_4095 |
|
|
|
RET |
|
|
|
%endmacro |
|
|
|
|
|
|
|
INIT_XMM sse2 |
|
|
|
|