aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/x86/h264_idct_10bit.asm
diff options
context:
space:
mode:
authorJason Garrett-Glaser <jason@x264.com>2011-06-03 01:12:28 -0700
committerJason Garrett-Glaser <jason@x264.com>2011-06-13 12:21:39 -0700
commitc9c493872c385cff304438ee404e38e55f04af28 (patch)
tree4c0ee47f9c0c4a00d63423a84a5f30bf2e3b0a92 /libavcodec/x86/h264_idct_10bit.asm
parent25f05ddb1af4bd398fa92cd135e48fafe23bd92a (diff)
downloadffmpeg-c9c493872c385cff304438ee404e38e55f04af28.tar.gz
4:4:4 H.264 decoding support
Note: this is 4:4:4 from the 2007 spec revision, not the previous (now deprecated) 4:4:4 mode in H.264.
Diffstat (limited to 'libavcodec/x86/h264_idct_10bit.asm')
-rw-r--r--libavcodec/x86/h264_idct_10bit.asm35
1 files changed, 20 insertions, 15 deletions
diff --git a/libavcodec/x86/h264_idct_10bit.asm b/libavcodec/x86/h264_idct_10bit.asm
index 3f7cf4cefc..54636a95d0 100644
--- a/libavcodec/x86/h264_idct_10bit.asm
+++ b/libavcodec/x86/h264_idct_10bit.asm
@@ -29,14 +29,18 @@ SECTION_RODATA
pw_pixel_max: times 8 dw ((1 << 10)-1)
pd_32: times 4 dd 32
-scan8_mem: db 4+1*8, 5+1*8, 4+2*8, 5+2*8
- db 6+1*8, 7+1*8, 6+2*8, 7+2*8
- db 4+3*8, 5+3*8, 4+4*8, 5+4*8
- db 6+3*8, 7+3*8, 6+4*8, 7+4*8
- db 1+1*8, 2+1*8
- db 1+2*8, 2+2*8
- db 1+4*8, 2+4*8
- db 1+5*8, 2+5*8
+scan8_mem: db 4+ 1*8, 5+ 1*8, 4+ 2*8, 5+ 2*8
+ db 6+ 1*8, 7+ 1*8, 6+ 2*8, 7+ 2*8
+ db 4+ 3*8, 5+ 3*8, 4+ 4*8, 5+ 4*8
+ db 6+ 3*8, 7+ 3*8, 6+ 4*8, 7+ 4*8
+ db 4+ 6*8, 5+ 6*8, 4+ 7*8, 5+ 7*8
+ db 6+ 6*8, 7+ 6*8, 6+ 7*8, 7+ 7*8
+ db 4+ 8*8, 5+ 8*8, 4+ 9*8, 5+ 9*8
+ db 6+ 8*8, 7+ 8*8, 6+ 9*8, 7+ 9*8
+ db 4+11*8, 5+11*8, 4+12*8, 5+12*8
+ db 6+11*8, 7+11*8, 6+12*8, 7+12*8
+ db 4+13*8, 5+13*8, 4+14*8, 5+14*8
+ db 6+13*8, 7+13*8, 6+14*8, 7+14*8
%ifdef PIC
%define scan8 r11
@@ -306,7 +310,7 @@ INIT_AVX
IDCT_ADD16INTRA_10 avx
%endif
-%assign last_block 24
+%assign last_block 36
;-----------------------------------------------------------------------------
; h264_idct_add8(pixel **dst, const int *block_offset, dctcoef *block, int stride, const uint8_t nnzc[6*8])
;-----------------------------------------------------------------------------
@@ -317,21 +321,22 @@ cglobal h264_idct_add8_10_%1,5,7
%endif
add r2, 1024
mov r0, [r0]
- ADD16_OP_INTRA %1, 16, 1+1*8
- ADD16_OP_INTRA %1, 18, 1+2*8
+ ADD16_OP_INTRA %1, 16, 4+ 6*8
+ ADD16_OP_INTRA %1, 18, 4+ 7*8
+ add r2, 1024-128*2
%ifdef ARCH_X86_64
mov r0, [r10+gprsize]
%else
mov r0, r0m
mov r0, [r0+gprsize]
%endif
- ADD16_OP_INTRA %1, 20, 1+4*8
- ADD16_OP_INTRA %1, 22, 1+5*8
+ ADD16_OP_INTRA %1, 32, 4+11*8
+ ADD16_OP_INTRA %1, 34, 4+12*8
REP_RET
AC %1, 16
AC %1, 18
- AC %1, 20
- AC %1, 22
+ AC %1, 32
+ AC %1, 34
%endmacro ; IDCT_ADD8