Basil Mohamed Gohar
2010-May-12 17:40 UTC
[theora-dev] Theora Intra (ptalarbvorm) vs. MJPEG
(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: http://media.basilgohar.com/intra-comparison/ 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: rsync://media.basilgohar.com/intra-comparison/ 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 http://www.basilgohar.com/blog/ IslamicHomeschool.com - Islamic Education for the Home <http://www.islamichomeschool.com/>