Replace ec_{enc|dec}_bit_prob() with ec_{enc|dec}_bit_logp().
authorTimothy B. Terriberry <tterribe@xiph.org>
Fri, 17 Dec 2010 22:50:19 +0000 (14:50 -0800)
committerJean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Sat, 18 Dec 2010 14:06:06 +0000 (09:06 -0500)
commite86fb268b029d68d07ede37d35cfe82e8db3e86d
treed4873c4cc46ec2aa99c52d06f8edb40065c3a19f
parent8c23a3a0fd2dae1407a56e994485b0f9c57910cc
Replace ec_{enc|dec}_bit_prob() with ec_{enc|dec}_bit_logp().

All of our usage of ec_{enc|dec}_bit_prob had the probability of a
 "one" being a power of two.
This adds a new ec_{enc|dec}_bit_logp() function that takes this
 explicitly into account.
It introduces less rounding error than the bit_prob version, does not
 require 17-bit integers to be emulated by ec_{encode|decode}_bin(),
 and does not require any multiplies or divisions at all.
It is exactly equivalent to
 ec_encode_bin(enc,_val?0:(1<<_logp)-1,(1<<_logp)-(_val?1:0),1<<_logp)

The old ec_{enc|dec}_bit_prob functions are left in place for now,
 because I am not sure if SILK is still using them or not when
 combined in Opus.
libcelt/bands.c
libcelt/celt.c
libcelt/entdec.h
libcelt/entenc.h
libcelt/quant_bands.c
libcelt/rangedec.c
libcelt/rangeenc.c
libcelt/rate.c