[theora-dev] libtheora 1.1 (Thusnelda) stable release

Silvia Pfeiffer silvia at silvia-pfeiffer.de
Fri Sep 25 00:06:09 PDT 2009

Congratulations! Somebody should also put this into a blog post that
is more easily readable. :)

On Fri, Sep 25, 2009 at 4:02 PM, Ralph Giles <giles at xiph.org> wrote:
> 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
> theora-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/theora-dev

More information about the theora-dev mailing list