vpx/vp8
Hui Su e44ee38aef Add lossless compression mode.
This commit adds lossless compression capability to the experimental
branch. The lossless experiment can be enabled using --enable-lossless
in configure. When the experiment is enabled, the encoder will use
lossless compression mode by command line option --lossless, and the
decoder automatically recognizes a losslessly encoded clip and decodes
accordingly.

To achieve the lossless coding, this commit has changed the following:
    1. To encode at lossless mode, encoder forces the use of unit
quantizer, i.e, Q 0, where effective quantization is 1. Encoder also
disables the usage of 8x8 transform and allows only 4x4 transform;
    2. At Q 0, the first order 4x4  DCT/IDCT have been switched over
to a pair of forward and inverse Walsh-Hadamard Transform
(http://goo.gl/EIsfy),  with proper scaling applied to match the range
of the original 4x4 DCT/IDCT pair;
    3. At Q 0, the second order remains to use the previous
walsh-hadamard transform pair. However, to maintain the reversibility
in second order transform at Q 0, scaling down is applied to first
order DC coefficients prior to forward transform, and scaling up is
applied to the second order output prior to quantization. Symmetric
upscaling and downscaling are added around inverse second order
transform;
    4. At lossless mode, encoder also disables a number of minor
features to ensure no loss is introduced, these features includes:
        a. Trellis quantization optimization
        b. Loop filtering
        c. Aggressive zero-binning, rounding and zero-bin boosting
        d. Mode based zero-bin boosting

Lossless coding test was performed on all clips within the derf set,
to verify that the commit has achieved lossless compression for all
clips. The average compression ratio is around 2.57 to 1.
(http://goo.gl/dEShs)

Change-Id: Ia3aba7dd09df40dd590f93b9aba134defbc64e34
2012-06-28 17:09:47 -07:00
..
common Add lossless compression mode. 2012-06-28 17:09:47 -07:00
decoder Add lossless compression mode. 2012-06-28 17:09:47 -07:00
encoder Add lossless compression mode. 2012-06-28 17:09:47 -07:00
exports_dec Add getter functions for the interface data symbols 2010-09-23 14:58:43 -04:00
exports_enc Add getter functions for the interface data symbols 2010-09-23 14:58:43 -04:00
vp8_common.mk changed the way that default probs for 8x8 is set. 2012-05-23 10:09:41 -07:00
vp8_cx_iface.c Add lossless compression mode. 2012-06-28 17:09:47 -07:00
vp8_dx_iface.c Code Simplification 2012-02-28 17:55:42 +00:00
vp8cx_arm.mk Move neon only arm functions under arm/neon. 2011-09-20 10:51:06 -07:00
vp8cx.mk fixed .mk files to reflect add/remove of a header file 2012-03-12 14:51:54 -07:00
vp8dx_arm.mk include asm_com/dec_offsets for make dist 2011-08-02 13:42:03 -04:00
vp8dx.mk Experimental code base simplification. 2012-02-15 16:08:47 +00:00