[daala] Why not upgrading Daala range coding with much faster rANS or tANS?

Timothy B. Terriberry tterribe at xiph.org
Sat Aug 15 03:57:53 PDT 2015

Jarek Duda wrote:
> Indeed I don't see multiplication by frequencies here.
> If I properly understood,
> OD_MAXI, OD_MINI is maximum, minimum of two variables
> OD_SUBSATU(a,b) = a - min(a,b)
> OD_ASSERT is only information for compiler
> dif is the start of the range (?)

This is documented in entdec.h: "The difference between the coded value 
and the low end of the current range."

> r is its length
> ft gives the proportions to focus inside the range

ft is everywhere the total of the frequency counts (this is documented 
in a few places where it is passed directly).

> I have to admit that I don't see how it finds the new range, lines 280 -
> 291 seem to should do it (?), what is below seem to be renormalization
> related (?)

The new range is computed on line 316: r = v - u;
u and v are evaluations of the partition function on fl and fh 
respectively (the low and high cumulative frequency counts of the 
decoded symbol). Renormalization happens in od_ec_dec_normalize().

> It seems you have a general purpose entropy coder, which could be also put in different applications, so maybe it's worth benchmarking alone?

Sure, I encourage other people to play around with it. Just saying it's 
not the test I'd use to decide if something should be included in Daala.

More information about the daala mailing list