rv34: DC-only inverse transform
authorChristophe GISQUET <christophe.gisquet@gmail.com>
Sun, 1 Jan 2012 17:33:22 +0000 (18:33 +0100)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Thu, 12 Jan 2012 08:52:33 +0000 (09:52 +0100)
commit3faa303a47e0c3b59a53988e0f76018930c6cb1a
tree7e1f4192c2d6ddab81cb80c71deb1586b11e16cf
parentb2ce3b998b90c9ec8dcefe4b2c45fcf5b2f0a903
rv34: DC-only inverse transform

When decoding coefficients, detect whether the block is DC-only, and take
advantage of this knowledge to perform DC-only inverse transform.

This is achieved by:
- first, changing the 108x4 element modulo_three_table into a 108 element
  table (kind of base4), and accessing each value using mask and shifts.
- then, checking low bits for 0 (as they represent the presence of higher
  frequency coefficients)

Also provide x86 SIMD code for the DC-only inverse transform.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
libavcodec/rv34.c
libavcodec/rv34data.h
libavcodec/rv34dsp.c
libavcodec/rv34dsp.h
libavcodec/x86/Makefile
libavcodec/x86/rv34dsp.asm [new file with mode: 0644]
libavcodec/x86/rv34dsp_init.c [new file with mode: 0644]