Log in

View Full Version : Ogg Theora has been finalized!


bond
2nd June 2004, 14:07
a new video coding format is born! :)

as reported on the theora maillist (http://www.xiph.org/archives/theora/200405/0012.html) the bitstream of the license free theora video coding format of the xiph.org foundation has been finalised!

The final bitstream is the same as used in the alpha3 encoder already, which means all streams encoded with alpha3 are compliant to the final theora format and all theora compliant decoders will be able to handle them!

Theora Homepage (http://www.theora.org/)
Theora FAQ (http://www.theora.org/theorafaq.html)

available compliant theora implementations:
- official libraries (http://www.theora.org/files/)
- reference encoder build (http://moodub.free.fr/theora_tools-1.0alpha3-release_build.rar) (thanks to bill_baroud) - supports only .yuv input and outputs to .ogg - discussion (http://forum.doom9.org/showthread.php?s=&threadid=73148)
- ffmpeg2theora (http://v2v.cc/~j/ffmpeg2theora/) - reference encoder (supports all formats, handled by ffmpeg, as input), outputs to .ogg - discussion (http://forum.doom9.org/showthread.php?s=&threadid=77509)
- illiminable dshow filter set (http://www.illiminable.com/ogg/) (supports theora in .ogg) - discussion (http://forum.doom9.org/showthread.php?s=&threadid=73424)
- Realplayer10 playback plugin (https://helixcommunity.org/projects/xiph/) (supports theora in .ogg) - discussion (http://forum.doom9.org/showthread.php?s=&threadid=73941)
- ffdshow/ffvfw VFW encoder (http://athos.leffe.dnsalias.com/) - usable in virtualdub(mod), outputs by default to .avi (no, plz not again ;) ) - discussion (http://forum.doom9.org/showthread.php?s=&threadid=71752)
- ffdshow dshow decoder (http://athos.leffe.dnsalias.com/), supports playback of theora streams packed in .avi or .ogg


Under the "Ogg" name, Xiph (http://www.xiph.org/) aims at providing the community a 100% license free and open multimedia framework, as free and opensource alternative to license requiring solutions, including closed formats (as WM9), but also of course open formats, as the MPEG technologies

apart from Theora the Xiph family already includes
- Vorbis (http://www.vorbis.com/) (lossy audio) - FAQ (http://forum.doom9.org/showthread.php?s=&threadid=68300#post424066),
- Flac (http://flac.sourceforge.net/) (lossless audio),
- Speex (http://www.speex.org/) (speech) and the
- Ogg Container Format, which is the container format specified by Xiph for storing their formats (like vorbis and theora)

it deserves our support! :)

Sirber
28th June 2004, 15:01
What's the features of theora?

bond
28th June 2004, 16:57
hm as its based on vp3, you might find the vp3 bitstream description interesting from here (http://svn.xiph.org/trunk/theora/doc/vp3-format.txt)
i dunno in what way theora got extended

also no encoder (even the reference one) till now let people play around with different options for fine tuning the encode, but i assume this will change when the first beta release comes out (everything is still alpha3 based, which was very experimental)

savage747
28th June 2004, 18:49
http://svn.xiph.org/trunk/theora/doc/spec/spec.tex

I have uploaded a PDF-Version (140 pages!) at

http://www.speedsurf.to/maikmerten/

Theora I is a block-based lossy transform codec that utilizes an 8×8 Type- II Discrete Cosine Transform and block-based motion compensation. This places it in the same class of codecs as MPEG-1, -2, -4, and H.263. The details of how individual blocks are organized and how DCT coefficients are organized in the bitstream differ substantially from these codecs, however. Theora supports only intra frames (I frames in MPEG) and inter frames (P frames in MPEG). There is no equivalent to the bi-predictive frames (B frames) found in MPEG codecs.

Okay... not revolutionary but definately usable.

[..] to provide additional scope for encoder improvement, Theora adopts some of the configurable aspects of decoder setup that are present in Vorbis. This configuration data is not available in VP3, which uses hardcoded values instead. Theora makes the same controversial design decision that Vorbis made to include the entire probability model for the DCT coe cients and all the quantization parameters in the bitstream headers.


Theora allows up to 384 different quantization matrices to be defined, one for each quantization type, color plane (Y 0, Cb, or Cr), and quantization index, qi, which ranges from zero to 63, inclusive.

That`s 384 different matrices per file. Tweakers can go wild.

The Theora bitstream is capable of handling video at any arbitrary resolution up to 1048560 × 1048560. Such video would require almost three terabytes of storage per frame for uncompressed data, so compliant decoders MAY refuse to decode images with sizes beyond their capabilities.

Should be enough for the next few evolutionary steps.

To complete the reconstructed frame, an in-loop deblocking filter is applied to the edges of all coded blocks.

This may increase performance especially at low bitrates.

bond
29th June 2004, 10:23
Originally posted by savage747
http://svn.xiph.org/trunk/theora/doc/spec/spec.tex
I have uploaded a PDF-Version (140 pages!) at
http://www.speedsurf.to/maikmerten/great thanks a lot :)

Okay... not revolutionary but definately usable.hm did you thought about block sizes down to 4x4 pixels? like its possible with h.264 now? would this have made sense?

also what about b-frames? would it have been possible to add these to theora patent/license-wise?

That`s 384 different matrices per file. Tweakers can go wild.hm i didnt really read into the specs deeply, but are these matrices comparable to the ones used in mpeg-4? or totally different? if different, in what way?

Should be enough for the next few evolutionary steps.time for some HD Theora stuff ;)

This may increase performance especially at low bitrates.great! is this loop filtering the same as used in h.264?

Sirber
29th June 2004, 12:09
Originally posted by bond
also what about b-frames? would it have been possible to add these to theora patent/license-wise?Even VP6 don't use BFrames.

savage747
29th June 2004, 21:40
Originally posted by bond
hm did you thought about block sizes down to 4x4 pixels? like its possible with h.264 now? would this have made sense?


I`m not a developer, but I think this would have required redesigning VP3 from scratch. It may have provided additional coding efficiency (I´m not an expert on video-coding) but I don`t think it would have been a "revolutionary breakthrough". There are enough possibilities to further enhance Theora and keeping it as "simple" as it is.


also what about b-frames? would it have been possible to add these to theora patent/license-wise?


This may have caused troubles with patents - who knows. I think the main factor in not using B-Frames in Theora is that this would have required a more or less complete redesign of VP3.

As already pointed out VP6 doesn´t use B-Frames either. It seems ON2 isn`t convinced they are sufficiently efficient/necessary.


hm i didnt really read into the specs deeply, but are these matrices comparable to the ones used in mpeg-4? or totally different? if different, in what way?


I think they basically do the same thing.


great! is this loop filtering the same as used in h.264?


The in-loop filter in Theora is not as complex as the h.264 one. Some time ago I asked on #theora and I have been told that the h.264 in-loop filter is very sophisticated and cpu-intensive (which made it a quite controversial discussion point during h.264 development). However, IIRC h.264 really *needs* that filter to avoid blocking. Theora does fine with a less complex filter.

Sirber
29th June 2004, 22:46
bframe require more processing at decoding and is not optimal for HW devices. That's why on2 don't use them.

savage747
30th June 2004, 00:32
Originally posted by Sirber
bframe require more processing at decoding and is not optimal for HW devices. That's why on2 don't use them.

Makes sense. A classic tradeoff.

PatchWorKs
7th July 2004, 09:34
I'm actually using ffmpeg2theora that is cool.

Anyway, what about 2-pass encoding ?

savage747
10th July 2004, 13:23
Originally posted by PatchWorKs
Anyway, what about 2-pass encoding ?

I´m not aware of any tool that support 2-pass encoding with Theora.

bond
10th July 2004, 14:03
2 pass is definitely a must when doing dvd backups, still someone has to write a ratecontrol. maybe the one from xvid can be used, its very good and even karl lillevold copied it for using it in rv10!

hellfred
12th July 2004, 15:31
Hi bond
Latest ffdshow (from early 2004) bring a vfw interface and include encoding using theora.
There you can choose theora with Mode "two-passes 1st pass" and "two-passes 2nd pass", and i once did it on a short clip. There were no errors, but i do not know wheather the theora encoder analysed anything in the first pass and used this for the second pass or not. I just had a playable file in the end with good quality. Furthermore, the pulldown menue "Mode" (containing the encoding mode) is greyed out for some Encoders that only allow one pass encoding like e.g. ffv1, lossless JPEG or HuffYUV.
This may indicate that milan actually wants the user to be able to use two pass encoding. Source can tell you more.

Hellfred

bond
12th July 2004, 16:56
great info, thanks :)

bond
2nd August 2004, 16:59
ok i now splitted this discussion from the theora sticky :)