[theora-dev] Bitstream encoded huffman tables always the same

Timothy B. Terriberry
Fri, 10 Dec 2010 16:05:09 -0000

> figure myself who is calling it using what parameter. Is that true that
> libtheora will always set the huffman codes to the same ones? Isn't
this

Unless the user manually overrides them, yes. There is a rehuff example
in http://svn.xiph.org/trunk/theora-exp/examples/ which can be used to
compute optimized tables for a specific video file, after encoding. It
typically saves between 1-2% in file size.

We have long planned to update the default tables as part of the 1.2
release, but initial experiments (back in 2007 with the old 1.0 encoder)
found that using insufficient training data (in that case 4 400-600
frame 1080p sequences) produces tables that are significantly _worse_,
on average, when used on files that were not in the training set. Greg
Maxwell thinks he can do better now, and we have more training data than
we did then, but improvements have yet to be demonstrated.