libtheora 1.1 (Thusnelda) stable release
Ralph Giles <[email protected]>
| Newsgroups | gmane.comp.multimedia.ogg.theora.devel |
|---|---|
| Message-ID | <[email protected]> |
We are pleased to announce a new stable release of libtheora, the Xiph.org Foundation's reference implementation of the royalty-free Theora video format. This new release, version 1.1, codenamed Thusnelda, incorporates all of the recent encoder improvements we have been making over the past year, though some of the code had its genesis all the way back in 2003. It also brings substantial speed and robustness improvements to the 1.0 decoder. Rate-control has been substantially overhauled from the 1.0 release. The new rate control module hits its target much more accurately and obeys strict buffer constraints, including dropping frames if necessary. The latter is needed to enable live streaming without disconnecting users or pausing to buffer during sudden motion. Obeying these constraints can yield substantially worse quality than the 1.0 encoder, whose rate control did not obey any such constraints, and often landed only in the vague neighborhood of the desired rate target. The new --soft-target option can relax a few of these constraints, but the new two-pass rate control mode gives quality approaching full "constant quality" mode with a predictable output size. This should be the preferred encoding method when not doing live streaming. Two-pass may also be used with finite buffer constraints, for non-live streaming. Source packages: * http://downloads.xiph.org/releases/theora/libtheora-1.1.0.tar.gz * http://downloads.xiph.org/releases/theora/libtheora-1.1.0.zip * http://downloads.xiph.org/releases/theora/libtheora-1.1.0.tar.xz * http://downloads.xiph.org/releases/theora/libtheora-1.1.0.tar.bz2 MD5 checksums: 303c782de0f943bfceac1f0bdea7a22e libtheora-1.1.0.tar.gz 9ffb36e80bfd46b6eb6848fcf526efcf libtheora-1.1.0.zip 76931beb93d1cb0c4c7fdfef3f7c4cb0 libtheora-1.1.0.tar.xz d0f83cf7f13e2b3bd068a858ca1398ad libtheora-1.1.0.tar.bz2 Here is a list of some of the technical improvements in the 1.1 encoder. If you have been following Monty's demo pages, many of these will be familiar to you: 1. Rate-distortion optimization, which leads to a. Better mode decision b. Better quantization decisions Most coding decisions only use an approximation of the full RDO process for speed reasons, but casting this in a proper RDO framework eliminates vast swaths of heuristics and fragile thresholds from the 1.0 encoder. 2. Better motion search The new motion search generates better results in less time, and does not suffer from CPU spikes under heavy motion like the 1.0 encoder's did. 3. Better fDCT The 1.0 encoder's forward transform was not well-matched to the inverse DCT used in the decoder, and was as a result responsible for substantial loss of detail and texture at high rates. It has been replaced with a forward DCT that gives much smaller round-trip error. The inverse DCT in the decoder remains unchanged, for compatibility. 4. Adaptive quantization The bitstream specification has supported changing the quantizer on a block-by-block basis since it was first published in 2004, however only an unreleased proof-of-concept encoder made use of this facility. The 1.1 encoder now uses it to allocate bits more effectively within a frame, giving improved quality at higher rates. 5. Better quantization matrices The new matrices give much less ringing and mosquito noise at low rates, substantially improving the appearance of high-contrast edges (e.g., text). 6. A real rate-control module As mentioned above, the new rate control actually meets its targets, can enforce hard buffer constraints, and has a two-pass mode to allow it to plan allocation decisions in advance. 7. Expanded rate-control API It is now possible to change the target quality, bitrate, buffer delay, and keyframe interval in the while encoding. This gives an application using libtheora much more control over the final output. 8. Explicit variable frame rate support in the encoder A new API allows an application to cheaply insert duplicate frames to maintain A-V sync during live streaming or for hybrid 24/30 fps content. The decoder still operates at a fixed frame rate, but can report these duplicates to the application, allowing it to skip expensive processing. 9. Support for 4:2:2 and 4:4:4 video As with adaptive quantization, the specification has always supported the less common 4:2:2 and 4:4:4 chroma subsamplings, useful for high quality intermediate work in video production. The 1.0 decoder supported these subsamplings properly. However, the 1.0 encoder couldn't produce streams in these formats. They are now supported in the 1.1 encoder. There are many other improvements in this release. The codebase is substantially smaller, the examples have all been ported to the new API, the MSVC assembly is now in sync with the gcc assembly, and much more. We strongly encourage all our users to upgrade. This is not the end of the story, however. We are continuing to work on encoder improvements, and have made significant progress on optimizing the decoder on ARM and TI C64x DSP processors, important for Theora playback on mobile devices. Thanks to everyone who contributed to this release, and to the Mozilla Foundation, the Wikimedia Foundation, and Red Hat, Inc. who supported this work. - Xiph.org Foundation for Open Media and the Theora development team. _______________________________________________ theora-dev mailing list [email protected] http://lists.xiph.org/mailman/listinfo/theora-dev