Coding con-zero count rather than EOB for coeffs
authorDeb Mukherjee <debargha@google.com>
Wed, 20 Feb 2013 18:16:24 +0000 (10:16 -0800)
committerDeb Mukherjee <debargha@google.com>
Thu, 7 Mar 2013 15:20:30 +0000 (07:20 -0800)
commiteb6ef2417f9a386ba8d91e934d6e8691b8312a98
tree1c493901293882a205104deba8d48d91bc55da5e
parenta9961fa819acd3712ee76f659fcc91d55fb8f35f
Coding con-zero count rather than EOB for coeffs

This patch revamps the entropy coding of coefficients to code first
a non-zero count per coded block and correspondingly remove the EOB
token from the token set.

STATUS:
Main encode/decode code achieving encode/decode sync - done.
Forward and backward probability updates to the nzcs - done.
Rd costing updates for nzcs - done.
Note: The dynamic progrmaming apporach used in trellis quantization
is not exactly compatible with nzcs. A suboptimal approach has been
used instead where branch costs are updated to account for changes
in the nzcs.

TODO:
Training the default probs/counts for nzcs

Change-Id: I951bc1e22f47885077a7453a09b0493daa77883d
25 files changed:
configure
vp9/common/vp9_blockd.h
vp9/common/vp9_coefupdateprobs.h
vp9/common/vp9_default_coef_probs.h
vp9/common/vp9_entropy.c
vp9/common/vp9_entropy.h
vp9/common/vp9_onyxc_int.h
vp9/decoder/vp9_decodemv.c
vp9/decoder/vp9_decodframe.c
vp9/decoder/vp9_detokenize.c
vp9/encoder/vp9_bitstream.c
vp9/encoder/vp9_block.h
vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_encodeintra.c
vp9/encoder/vp9_encodeintra.h
vp9/encoder/vp9_encodemb.c
vp9/encoder/vp9_encodemb.h
vp9/encoder/vp9_onyx_if.c
vp9/encoder/vp9_onyx_int.h
vp9/encoder/vp9_quantize.c
vp9/encoder/vp9_ratectrl.c
vp9/encoder/vp9_rdopt.c
vp9/encoder/vp9_segmentation.c
vp9/encoder/vp9_tokenize.c
vp9/encoder/vp9_treewriter.c