Change end-of-stream handling in the range coder.
authorTimothy B. Terriberry <tterribe@xiph.org>
Sun, 19 Oct 2008 18:41:38 +0000 (14:41 -0400)
committerJean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Thu, 23 Jul 2009 11:33:24 +0000 (07:33 -0400)
commit8d940a664e14952f3541b6587e367064d9f321bd
treeb83477cd09a91ae46701c196211f9684eb72a1fa
parent164a229644a60c368a35edb5993251efcc907a98
Change end-of-stream handling in the range coder.

Instead of trying to maximize the number of trailing zeros (minimize the number
 of bits encoded), we try to maximize the number of trailing bits that can
 contain arbitrary data.
Note that this requires ec_enc_tell() and ec_dec_tell() to reserve an extra
 bit, since depending on the exact final codeword, as little as half the final
 range might be available for storing arbitrary data.
This is the first step needed to start packing literal bits outside the range
 coder (for speed and robustness purposes).
libcelt/mfrngdec.c
libcelt/mfrngenc.c
libcelt/rangedec.c
libcelt/rangeenc.c