[theora] Theora/Thusnelda features questions.

Gregory Maxwell gmaxwell at gmail.com
Thu May 21 09:01:59 PDT 2009

On Sun, Apr 26, 2009 at 3:40 PM, ertuqueque <ertuqueque at gmail.com> wrote:
> *- Is it possible to support a "Two-Pass" or even "multipass" feature in
> Theora?

It's possible in any variable bitrate codec.

> *- Is there any plan to support that or a similar feature in Theora?

It's certainly something that would be nice to have, it just simply
hasn't been a high priority.

You can achieve the same (or better) effect as a two pass encode by
encoding with the quality knob and iteratively adjusting it until you
get the desired total size.

The downsize of this is that you'd have to do it manually and it can
take up to 6 passes to find the right value.

> Ok, and the other questions relates to the future of Theora against modern
> codecs like the frequently mentioned h264 stuff...
> And please, don't get me wrong, I'm just wondering if there are plans to
> support more advanced features even if that supposes
> rising the CPU load or stuff like that... Concretely my questions are:
> - knowing that your "goal" with Theora is/was (?) to achieve similar quality
> than MPEG-4 Part-2/ASP (?) -
> *- Do you plan to implement more advanced features comparable with MPEG-4
> Part-10/AVC? (h264)

This really sounds like you're asking for a buzzword comparison.

There are a lot of buzzwords associated with these formats that people
like to throw around.  "Oh yea, well my coded has a 500cc hemi and
dual cryo-cooled turbo-chargers!". Buzzwords are marketing. We could
use some better marketing for Theora, but I suspect you want an
engineering answer and buzzwords have no place in engineering.

I'm no MPEG-4 part 10 expert, but I can at least list a couple obvious
differences between -2 and -10.

* Deblocking in the coding loop.  Theora already does this.
* Quarter-pixel MVs. Theora already does this.
* 4:2:2, and 4:4:4 chroma formats. Theora format supports it, it
should be in 1.1
* Data partitioning. Theora's encoding order is naturally suited to
unequal protection. (The whole frame coefficient interleave)
* encoder selected custom quant matrices (Theora format supports that,
should be used in 1.1)

Most of the other enhancements in part-10 over part-2 are not possible
in Theora without breaking the bitstream (i.e. the better (arithmetic)
entropy coding, variable MV and DCT partition sizes), violating
patents, or are simply inapplicable to Theora (increase flexibility in
b-frame modes… Theora has no b-frames).

More information about the theora mailing list