Monty ([info]xiphmont) wrote,
@ 2008-08-08 13:27:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:xiph

Blogging Theora

It's time for an update, especially during a period of rapid progress.

Over the past six months, I've been incrementally reorganizing the entire codebase from top to bottom. This in itself didn't really produce direct tangible performance benefits. However, I was finally able to implement the Holy Grail: efficient per-token RD optimization. This was the Big Win that would suddenly allow lots of big and small incremental improvements to pile up together and bring Theora's bitrate efficiency into the modern era.

Below is a short, sweet summary. Each image is a closeup of a frame, the encoded test clip is linked to the image:

Mainline Theora test clip: 580kbps

Current Thusnelda: 580kbps
Encoded with internal qi=50, skip lambda=5, token lambda=16

More details (and demo clips), as usual, on the demo page I prepared to keep Red Hat informed of my progress. The best part of all of this is that per-token opt was just the first big shoe to drop. The code reorg has all the ducks in a row. This should be quite a month for Theora.

The Thusnelda work demonstrates nicely the real liability of old bitrate formats: It's not that it isn't possible to update an old format like VP3 to modern performance, it's just that it takes more coding effort and cleverness to work within the structure of the old format than to cut your losses, break compatability and do it the newer easier faster way. Which is not to say I'm not looking forward to the day when we can finally extend Theora past the current spec again...



(Post a new comment)

Looking good!
[info]mighmos
2008-08-08 09:14 pm UTC (link)
That looks pretty good. I used to use Theora, but stopped because it just didn't look nearly as good as Xvid. If this works keeps up, I might have a new default file format again. I'm curious, what's the difference in file size between the two versions?

(Reply to this) (Thread)

Re: Looking good!
(Anonymous)
2008-08-08 11:19 pm UTC (link)
The better looking one (above) is even 0.3 MB smaller in size.

(Reply to this) (Parent)

Re: Looking good!
(Anonymous)
2008-08-09 03:19 pm UTC (link)
The post indicates the bitrate is the same (which it would have to be, otherwise the comparison is invalid).

(Reply to this) (Parent)

Inshalllah!
[info]vorbote.myopenid.com
2008-08-08 11:37 pm UTC (link)
Do you remember Wayne and Garth genuflecting to Alice Cooper? If not, time to go renting Wayne's world... :-)

(Reply to this)


[info]https://login.launchpad.net/+id/3cX8ysT
2008-08-09 10:59 am UTC (link)
This is really impressive. I hope gstreamer devs start utilizing this new encoder soon and we can see as good looking videos, if not better than, in theora as the ones in xvid os h264.

Thanks for all your great work.

(Reply to this) (Thread)


[info]xiphmont
2008-08-09 04:59 pm UTC (link)
It's not quite ready for deployment yet. For one thing, the RD lambdas are being set by hand right now because (surprise, surprise) the normal rho domain analysis assumptions don't hold after performing skip and token optimization. I believe xvid faced the same challenges when they implemented rho-domain, and eventually found a mapping that worked. That same work is still ahead for Thusnelda.

(Reply to this) (Parent)

Impressive
(Anonymous)
2008-08-09 04:56 pm UTC (link)
It seems a little below xvid in terms of details, but smoother (although probably xvid improved from the doom9 tests I'm comparing with). Quite good overall, so given that theora is a free codec, it becomes extremely competitive.

(Reply to this) (Thread)

Re: Impressive
[info]xiphmont
2008-08-09 05:01 pm UTC (link)
It is. It's still using the insanely bottom-heavy quantization matricies from VP3.2. The decoder can already handle the full Theora spec quantization extensions, it remains to implement any use of those extensions in the encoder.

(Reply to this) (Parent)


[info]brunomiguel.myopenid.com
2008-08-09 10:38 pm UTC (link)
That's quite an improvement. Congratulations!

(Reply to this)

Good work
[info]Iain Cheyne [cheyne.net]
2008-08-10 08:53 pm UTC (link)
Please keep it up.

(Reply to this)

Current Thusnelda encoding doesn't playback well with VLC 0.8.6i on MacOSX 10.5.4
[info]yusufg
2008-08-11 12:35 am UTC (link)
Monty, Not sure what decoder is in VLC 0.8.6i on MacOSX 10.5.4, but when I try to playback the current Thusnelda encoding it renders all pixellated.
The Mainline Theora clip plays back fine.

(Reply to this) (Thread)

Re: Current Thusnelda encoding doesn't playback well with VLC 0.8.6i on MacOSX 10.5.4
[info]maikmerten
2008-08-11 08:55 pm UTC (link)
There's a good chance that VLC is using the ffmpeg Theora decoder, which used to not implement all aspects of the Theora specification correctly. I can confirm that ffmpeg cannot correctly decode the test files provided here.

(Reply to this) (Parent)(Thread)

You're quite right.
[info]https://login.launchpad.net/+id/tbzQdGG
2008-08-19 05:41 pm UTC (link)
Good catch. While vlc appears to work properly on Ubuntu (maybe it uses a different backend?), ffmpeg decodes the Thusnelda streams as brightly-colored flashing blocks. I filed a bug at Launchpad (https://bugs.launchpad.net/ubuntu/+source/ffmpeg/+bug/259087), the Ubuntu bug tracker, on that. It's also been (a few days ago) filed at the ffmpeg tracker (http://roundup.mplayerhq.hu/roundup/ffmpeg/issue579), which is linked from Launchpad.

(Reply to this) (Parent)

And it's fixed.
[info]https://login.launchpad.net/+id/tbzQdGG
2008-09-03 05:32 pm UTC (link)
The problem--which turned out to require a really minor change--is fixed in FFmpeg r15166 (http://roundup.mplayerhq.hu/roundup/ffmpeg/issue579). Now that's service!

(Reply to this) (Parent)

Using HTML5 Video tags would be nice
(Anonymous)
2008-08-12 04:12 pm UTC (link)
It would be good if folks using the Opera labs release or Firefox nightlies could get an early taste of the HTML5 video experience in your page with the demos.

(Reply to this) (Thread)

Re: Using HTML5 Video tags would be nice
(Anonymous)
2008-08-12 04:24 pm UTC (link)
Also, shouldn't those be .ogv files.

(Reply to this) (Parent)

Re: Using HTML5 Video tags would be nice
[info]xiphmont
2008-08-19 10:57 pm UTC (link)
I thought of that, but when I went to grab a nightly to try out, files without audio played back with no attention to timing, playback only worked first time through, and the controls were all shifted out of the frame. In short, using the video tags is high on my list-- but not before they actually work right :-)

As for the .ogv comment, yes you're right of course. Old habits.

Monty

(Reply to this) (Parent)


(Anonymous)
2008-08-18 01:59 pm UTC (link)
That improvement is very very noticeable... Great work!

(Reply to this)


(Anonymous)
2008-08-18 07:20 pm UTC (link)
Hello Monty

I've read about the Thusnelda project 3 months ago and i'm very enthousiast about it :)
My question is: is it possible to correctly decode a video stream encoded with Thusnelda,using entirely the current Theora specification?If not,which modifications are needed on the decoder side?
I'm sorry for my bad english

Kind regards
Alberto

(Reply to this) (Thread)


[info]maikmerten
2008-08-19 10:01 am UTC (link)
Thusnelda stays 100% within the Theora 1.0 spec. Spec-compliant decoders are able to decode Thusnelda streams without any change.

(Reply to this) (Parent)(Thread)


(Anonymous)
2008-08-19 02:18 pm UTC (link)
Many thanks for this information,maikmerten :)
Cheers

Alberto

(Reply to this) (Parent)


[info]gr1b0k
2008-08-25 03:10 pm UTC (link)
i interested in ogg and i write about it in russian(also about svg), were i can read more developers news about ogg?

(Reply to this)

Sweet!
(Anonymous)
2008-09-20 08:08 pm UTC (link)
This is actually an exciting improvement! I've been looking forward to being able to use an unencumbered video format that didn't suck, so this is encouraging.

(Reply to this)

Is there any version of ffmpeg2theora that uses Thusnelda?
(Anonymous)
2008-09-28 12:51 am UTC (link)
I see a lot of improvements in these clips.

Is there any version of ffmpeg2theora that uses Thusnelda to do some tests?

(Reply to this) (Thread)

Re: Is there any version of ffmpeg2theora that uses Thusnelda?
[info]xiphmont
2008-09-30 07:14 am UTC (link)
Not yet. Thusnelda is unfinished (and waiting for me to get back to it as I push out overdue releases of other software. Hopefully I've just finished that tonight! Theora 1.0 being the most overdue of the releases :-)

What's unfinished about Thusnelda is the auto-setup code. Right now it has to have about ten different dials hand set for a given encoding mode. I'm hoping it's about a month from alpha.

(Reply to this) (Parent)(Thread)

Re: Is there any version of ffmpeg2theora that uses Thusnelda?
(Anonymous)
2008-09-30 08:03 am UTC (link)
How far is Theora 1.0 release?

(Reply to this) (Parent)(Thread)

Re: Is there any version of ffmpeg2theora that uses Thusnelda?
[info]xiphmont
2008-09-30 08:34 am UTC (link)
I signed off on 1.0b4/RC tonight and handed it off to get binaries built and tarballs rolled. That becomes 1.0 about a week later if no new blockers come up.

I'm officially back on Thusnelds.

(Reply to this) (Parent)(Thread)

Re: Is there any version of ffmpeg2theora that uses Thusnelda?
(Anonymous)
2008-10-11 04:27 pm UTC (link)
New release of ffmpeg2theora has a version with Thusnelda.

(Reply to this) (Parent)(Thread)

Re: Is there any version of ffmpeg2theora that uses Thusnelda?
(Anonymous)
2008-10-31 05:40 pm UTC (link)
Is there a standard command-line test to see if a video was encoded with Thusnelda (e.g., ogginfo or oggzinfo output)? -G. Chriss

(Reply to this) (Parent)(Thread)

Re: Is there any version of ffmpeg2theora that uses Thusnelda?
[info]xiphmont
2008-11-01 03:56 pm UTC (link)
The Thusnelda encoder sets the vendor string in the comment tags to "Xiph.Org libThusnelda I XXXXXXXXX" where the Xs are a date string.

(Reply to this) (Parent)

Re: Is there any version of ffmpeg2theora that uses Thusnelda?
[info]xiphmont
2008-11-01 03:57 pm UTC (link)
Hm, I wonder how it's doing that given the number of Thusnelda setup values that need to be set entirely by hand right now....

(Reply to this) (Parent)(Thread)

Re: Is there any version of ffmpeg2theora that uses Thusnelda?
(Anonymous)
2008-11-01 04:37 pm UTC (link)
"New release of ffmpeg2theora has a version with Thusnelda."
I don't think this is correct; the reason I asked about the version string is that I got Theora ~1.0 video after compiling both theora-thusnelda and ffmpeg2theora from SVN. -G. Chriss

(Reply to this) (Parent)

Another update?
(Anonymous)
2008-10-08 11:05 am UTC (link)
Can we please get another update about the Thusnelda stuff?

(Reply to this) (Thread)

Re: Another update?
(Anonymous)
2009-03-06 03:36 pm UTC (link)
Hello,

i would be as well interested in the recent development of Thusnelda and Ogg Theora. We use it as video solution for the online archive of the Slovak Philharmonic Orchestra: http://stream.filharmonia.sk ..

(Reply to this) (Parent)


Create an Account
Forgot your login?
Login w/ OpenID
English • Español • Deutsch • Русский…