Re: Bitstream encoded huffman tables always the same

"Benjamin M. Schwartz" <[email protected]> Fri, 10 Dec 2010 11:55:21 -0500
Newsgroups gmane.comp.multimedia.ogg.theora.devel
Message-ID <[email protected]>
On 12/10/2010 11:43 AM, Gabriel TEIXEIRA wrote:
> It is shame that Theora can't make use of the full potential of the 
> bitstream, but I think that a two pass encoding would do it: the first 
> to generate the symbols after fDCT/quantization and generate statistics 
> and a second to generate the optimal tables and encode the huffman 
> symbols.

This is definitely true (and if you really care you can compile rehuff).
The rationale I have heard for not making this part of the default is that
it breaks concatenation.

Currently, if you take any two videos encoded by the same libtheora, with
the same parameters, those two video can be concatenated into a single
Theora bitstream because they have identical Theora headers.  If the
Huffman tables were changed for optimized for each video, this would
prevent such concatenation.

> Since the only way to change those tables is by downloading a 
> file from the theora experimental branch and setting by hand the option, 
> I think that 99% of the videos in the wild must be using the hard-coded 
> tables. This saves me a lot of work.

To be clear: a correct player MUST use the tables provided by the file, or
it will frequently break.  This will be even more apparent when libtheora
1.2 is released, as the hardcoded tables are expected to be different from
the tables in 1.1.

--Ben

_______________________________________________
theora-dev mailing list
[email protected]
http://lists.xiph.org/mailman/listinfo/theora-dev
signature.asc (application/pgp-signature, 198 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAk0CW3oACgkQUJT6e6HFtqRCPwCcCa9PgfI3FedsCtTKZyY1Zg93
P8YAoIfck+3YDeSRR1k6G2T5D2+3C1g9
=pXfr
-----END PGP SIGNATURE-----