Re: Bitstream encoded huffman tables always the same
Gabriel TEIXEIRA <[email protected]> Fri, 10 Dec 2010 18:00:22 +0100
| Newsgroups | gmane.comp.multimedia.ogg.theora.devel |
|---|---|
| Message-ID | <[email protected]> |
On 10/12/2010 17:55, Benjamin M. Schwartz wrote: > 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 > > By hand, I mean, is to use the the tool separately in order to obtain the optimal encoding, and not automatically by libtheora. This is just a sugestion of feature for libtheora for the future. And, don't be afraid of not implementing the parsing of the tables, they will be developed, but not by me ;-)