[theora-dev] Theora Intra (ptalarbvorm) vs. MJPEG

Basil Mohamed Gohar abu_hurayrah at hidayahonline.org
Wed May 12 10:40:05 PDT 2010

(I am sending this same message to theora-dev because I think it applies
to development discussion as well as user discussion.)

In the discussion of having a freedom-friendly camcorder or other video
device, we discussed the idea of using intra-only Theora video to make
post-recording editing a much easier process, allowing things like
frame-by-frame editing without the need to decode and reencode the video
again, thus incurring loss.

I was quite skeptical of the efficiency of intra-only Theora, and I had
speculated that the quality difference between intra-only Theora video
(using the latest ptalarbvorm code) and, say, MJPEG video, wouldn't be
much.  I decided to test this theory, and so I pulled down some real HD
1080p videos from the Xiph media site (http://media.xiph.org) and
decided to test intra-only Theora and MJPEG at 25Mbps with the test
clips.  I used the encoder_example that's packaged with libtheora to
create the Ogg Theora files, while I used ffmpeg from SVN (could be a
few months old) to create the MJPEG AVI video files.

The test files & results can be found here:


I have also setup an rsync module for the intra comparison, so you can
pull down everything (or take your pick of what to pull down) via
anonymous rsync, as well:


You are welcome to see the results for yourself, but in short, in all
case, Theora Intra (TheoraPro?) far outclassed MJPEG in terms of
quality, which pleasantly surprised me.  It is for this reason I have
gone to these lengths to make this comparison widely available.

In some cases, the rate control for the MJPEG went haywire, so you'll
find that some of the MJPEG clips are much larger than the Ogg Theora
clips.  This is a testament to ptalarbvorm's rate control - it did not
veer much at all from the target rate even when faced with some
difficult-to-encode frames.

I think this test is a useful one in demonstrating Theora's feasibility
as a high-quality, intra-only codec.  Furthermore, it also shows that
even in such a simple case as an intra frame (a.k.a., keyframe), gains
can be had, as gmaxwell observed that some optimizations could made to
improve quality even further.  So, it is my hope that this test will
spur further interest in Theora as a consumer video device codec, and in
particular, an intra-only subset of the libtheora codec.  I am looking
forward to further improvements in this area, and I hope to be able to
bring reports of improvements as libtheora development progresses.

P.S.  I have been encouraged to make a blog post about this, and if I
find the time to do so, I will, and I will share a link to it (with
possible screenshots and further analysis).
*Basil Mohamed Gohar*
abu_hurayrah at hidayahonline.org

IslamicHomeschool.com - Islamic Education for the Home

More information about the theora-dev mailing list