[theora] Additional encoding options for theora
Basil Mohamed Gohar
abu_hurayrah at hidayahonline.org
Wed Nov 18 10:13:21 PST 2009
On 11/18/2009 01:02 PM, Benjamin M. Schwartz wrote:
> Basil Mohamed Gohar wrote:
>> On 11/18/2009 12:04 PM, Gregory Maxwell wrote:
>>> Getting good results from codec tweaking requires a commitment of
>>> time, both to thoroughly explore the changes and to understand the
>>> changes being made. If you're willing to make that investment then
>>> rebuilding libtheora shouldn't be *too* much of a hurdle.
> That's true... but more parameter space exploration might happen if it
> could be done with shell scripts.
That sounds like what I am interesting in doing, i.e., writing scripts
that will test a suite of sample videos (some of which I've created)
with the various settings that are made available, and comparing &
contrasting encode times, resulting file sizes, etc. Not sure how to do
accurate quality comparisons automatically, so that may be a manual
>> I was under the impression that such values were tweakable and just not
>> made accessible through the interface.
> libtheoraenc has many functions for setting encode properties, and some
> are not exposed through ffmpeg2theora (nor most other interfaces). Two
> major ones are the huffman tables  and quant matrices . These have
> a large impact on the encode, but are not exposed because they are much
> too long to be specified by a human. If you're interested in real
> experimentation, you might consider patching encoder_example to accept
> arguments for these ... but playing with them is not like choosing a
> single number. The quant matrices alone represent hundreds of parameters
> for each quality level.
> There are also other hard-coded constants in libtheoraenc that could be
> exposed for tuning, but have not been. These include the RDO lambdas, Y
> vs. UV precision, and many other things beyond my knowledge. These could
> be exposed, but not without modifying libtheoraenc.
> Of course, the really interesting encoder work is algorithm improvements,
> which cannot be achieved by exposing knobs.
I can see that the areas that Theora needs the most work in are
currently beyond my abilities. I have little experience in the dynamics
of information theory and actual codec implementation, so I was hoping
for a less steep learning curve in the process of Theora improvement.
More information about the theora