summaryrefslogtreecommitdiff
path: root/vp8/encoder/x86/quantize_sse2.asm
diff options
context:
space:
mode:
authorTero Rintaluoma <teror@google.com>2011-10-25 14:25:11 +0300
committerTero Rintaluoma <teror@google.com>2011-11-03 16:08:09 +0200
commite4f2ec7a52f617acc450e280b97bc653414fe439 (patch)
tree629401425755a66e004a584b04b17ca125c256d1 /vp8/encoder/x86/quantize_sse2.asm
parent2b5e6de80613baed2c28e893920dd7a632a8a231 (diff)
downloadlibvpx-e4f2ec7a52f617acc450e280b97bc653414fe439.tar
libvpx-e4f2ec7a52f617acc450e280b97bc653414fe439.tar.gz
libvpx-e4f2ec7a52f617acc450e280b97bc653414fe439.tar.bz2
libvpx-e4f2ec7a52f617acc450e280b97bc653414fe439.zip
Change use of eob in the encoder
Changed 'int eob' to 'char *eob' in BLOCKD so that both encoder and decoder will use eobs[25] array from MACROBLOCKD structure. In future, this will enable use of the decoder side IDCT in the encoder. Change-Id: I6e1c011628cb8864fd4a0b80f0279ce16a5ca978
Diffstat (limited to 'vp8/encoder/x86/quantize_sse2.asm')
-rw-r--r--vp8/encoder/x86/quantize_sse2.asm10
1 files changed, 8 insertions, 2 deletions
diff --git a/vp8/encoder/x86/quantize_sse2.asm b/vp8/encoder/x86/quantize_sse2.asm
index c483933df..7c249ff88 100644
--- a/vp8/encoder/x86/quantize_sse2.asm
+++ b/vp8/encoder/x86/quantize_sse2.asm
@@ -194,6 +194,8 @@ ZIGZAG_LOOP 15
movdqa [rdi], xmm0 ; store dqcoeff
movdqa [rdi + 16], xmm1
+ mov rcx, [rsi + vp8_blockd_eob]
+
; select the last value (in zig_zag order) for EOB
pcmpeqw xmm2, xmm6
pcmpeqw xmm3, xmm6
@@ -214,7 +216,8 @@ ZIGZAG_LOOP 15
pmaxsw xmm2, xmm3
movd eax, xmm2
and eax, 0xff
- mov [rsi + vp8_blockd_eob], eax
+
+ mov BYTE PTR [rcx], al ; store eob
; begin epilog
add rsp, stack_size
@@ -337,6 +340,8 @@ sym(vp8_fast_quantize_b_sse2):
pmaxsw xmm1, xmm5
+ mov rcx, [rsi + vp8_blockd_eob]
+
; now down to 8
pshufd xmm5, xmm1, 00001110b
@@ -354,7 +359,8 @@ sym(vp8_fast_quantize_b_sse2):
movd eax, xmm1
and eax, 0xff
- mov [rsi + vp8_blockd_eob], eax
+
+ mov BYTE PTR [rcx], al ; store eob
; begin epilog
%if ABI_IS_32BIT