diff options
author | Tero Rintaluoma <teror@google.com> | 2011-10-25 14:25:11 +0300 |
---|---|---|
committer | Tero Rintaluoma <teror@google.com> | 2011-11-03 16:08:09 +0200 |
commit | e4f2ec7a52f617acc450e280b97bc653414fe439 (patch) | |
tree | 629401425755a66e004a584b04b17ca125c256d1 /vp8/encoder/x86/quantize_sse2.asm | |
parent | 2b5e6de80613baed2c28e893920dd7a632a8a231 (diff) | |
download | libvpx-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.asm | 10 |
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 |