Update libtheora to the 1.1 release (Thusnelda).
- Name: Christopher Montgomery (xiphmont), AdamJackson
- Email: firstname.lastname@example.org, email@example.com
- Targeted release: Fedora 12
- Last updated: 2009-08-05
- Percentage of completion: 90%
1.1beta1 is in rawhide. It is a feature-complete beta of Theora 1.1, only bug-fixing remains to be done before the final 1.1 release.
libtheora 1.1 incorporates a substantially improved encoder, codenamed 'Thusnelda'. Compared to libtheora 1.0, the new encoder can produce comparable quality encodings at a lower bitrate, or better quality at the same bitrate.
Over the last year, Monty has produced a series of detailed reports describing the Thusnelda improvements as they have been developed:
- Improved motion estimation and mode selection
- Rate-distortion optimization
- One-pass DCT tokenization
- Token optimization
- Lambda unification, lambda/qi mapping
- Quantization matrix tuning, forward DCT error reduction
Additional features, as yet not part of a seperate report or demo page:
- Adaptive quantization (use of multiple quantization levels in a given frame to optimize perceptual fidelity)
- Improved rate control and two-pass encoding modes, drop-frame support and a rate-control tuning API
- Encoder support for 4:2:2 and 4:4:4 chroma (decoder always had support)
- Debugging 'telemetry' in the decoder; this graphs various bistream metrics onto the decoded output frames in realtime
- Additional SIMD optimization
The development of Thusnelda was supported by Red Hat, Wikimedia and Mozilla.
Benefit to Fedora
A lot of positive momentum has been building around open video on the web. With this feature, Fedora becomes more attractive as a platform for producing video content in open formats.
All video-encoding applications that support theora will transparently benefit from the improvements in Thusnelda, including all applications that use gstreamer to encode video. Good examples in this category are GUI transcoding apps like transmageddon and arista (see http://lwn.net/Articles/333904/).
Applications that use mplayer or ffmpeg for video encoding may not benefit, since these frameworks come with their own implementations of the Theora format. The benefit to ffmpeg an mplayer depends on whether or not the package was built to use the external libtheora.
The new libtheora is a drop-in replacement, however the encoding functionality adds new rate control and tuning features. New features are not available to applications that use the encode functionality of libvorbis and have not been updated to use the extended API.
How To Test
You don't need any special hardware to test Theora encoding.
Use a video-encoding application to produce Theora-encoded content. Compare the quality with content produced with libtheora 1.0 and notice the improved quality.
The theora-tools package contains a commandline tool, theora_encode, that can be used to create Theora-encoded content.
(More detailed test instructions will be provided when I can get hold of Monty, who is travelling atm)
If libtheora 1.1 turns out to be a catastrophic failure, revert to libtheora 1.0. If libtheora 1.1 is not finalized in time for F12, but the prereleases don't exhibit stability problems, we can just ship the latest available prerelease, which will still give us considerable quality improvements, due to the incremental nature of the improvements that are outlined above.
No specific documentation should be needed, libtheora 1.1 is a transparent replacement for libtheora 1.0.
Fedora 12 comes with libtheora 1.1, including a substantially improved encoder, codenamed 'Thusnelda'.