[Theora] Ogg Theora: Some questions on codec interna

Ralph Giles giles at ghostscript.com
Fri Sep 17 13:27:57 PDT 2004

On Fri, Sep 17, 2004 at 12:10:18PM +0200, Gernot Ziegler wrote:

> I rather meant to ask which kind of internal compression algorithm you
> use, and then decide on it - I presume that it is DCT-based, then ?

Yes, theora is DCT-based with normal quantization and motion-block 
compensation. You should still try it I think; it's generally less 
blocky than the MPEG codecs.

See http://www.v2v.cc/~j/Theora_I_spec.pdf for the gory details.

> > 12 bits doesn't seem like very much. :)
> (gah, I know that would be joked upon, exactly when I hit "send" ;) )

I was serious, actually. It seems to me one is better off just 
supporting 16 bit or float samples and letting the compression take 
care of any excess precision, instead of fiddling with half-measures 
like 12 bit samples.

> And, honestly, I would rather use a patent-free codec for my research work
> than something encumbered by large-company-patents ;)

Glad to hear it!

> MNG (based on PNG, right ?) does not do interframe compression, or does it
> ?

It's flexible. The simplest form is just a series of png or jpeg 
images. PNG of course supports 16 bit samples, and you can use 12 bit 

However, there's also a 'delta png' option where each frame is 
subtracted from the previous one and only the difference compressed 
(in a lossless fashion like png). And it has animation support with 
compositing of arbitrary layers that could in theory be used to remove 
redundancy by an intelligent encoder.

So, you have a range of options, but it's unlikely to do better than 
mjpeg in terms of bitrate unless a large part of your sequence is 
static or a simple pan. But no problems with deep image support.

There's also a draft spec for mng-over-ogg already, which I need to put 
back in the wiki, so there's only your implementation to be done.

> I know DCT and iDCT, what's an MDCT ? ;)

'Modified Discrete Cosine Transform'. There's a full description of 
what theora uses in the spec.


More information about the Theora mailing list