Concrete Comparisons of Theora Vs. Mpeg-4
icknay writes "With the upcoming Firefox 3.5 and HTML5 video, there's natural interest in Theora vs. Mpeg-4, but without much evidence either way. Here's clips encoded at various rates to provide concrete comparison between Theora and Mpeg-4. Theora performs decently, but requires more bandwidth than Mpeg-4 (although this is a 1.1alpha release of Theora and Theora has a much better license than Mpeg-4). The quality comparisons are very subjective, but you can try the clips yourself and see how it breaks down. There was an earlier discussion about this, but it lacked much concrete evidence. (Disclosure: it's my page.)"
Both make terrible concrete. I recommend you buy some mix at the hardware store instead.
Disclosure: I'm trying to stress test my server. Please nuke it into the slag of its constituent parts.
Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
I sort of knew Theora was a bit behind than Mpeg-4, but I didn't realize by how much. The Theora clip that has a 60% higher bitrate than the Mpeg-4 still looks fuzzier to my eyes (especially the moving grass).
So?
I'm serious. Can someone explain why this matters?
Subjective measures are really the best way to evaluate video quality. There are (objective) quantitative measures such as PSNR, but they don't really tell you what the impact of video compression does for the eye. Video quality evaluations mostly involve showing clips (like these) to a large amount of people and asking them which they liked better. There is a lot to consider in terms of how the video responds to packet loss, jitter, etc.
The important line from the article: "Theora uses 1600kbps, or about 60% more bandwidth than Mpeg-4 to reach about the same quality."
Also useful to get some scale: "The uncompressed clip is 349 megabytes, while the 1600kbps Theora clip is 2 megabytes -- Theora may lag Mpeg-4 at this time, but it still yields great compression."
and "Theora is significantly better than Mpeg-2. Mpeg-2 required about 2400 kbps to hit the subjective quality level above, 50% higher than Theora's bandwidth."
Some things I would have liked to have seen: 250kbps, 500kbps, 2mbps, 8mbps videos, with subjective quality difference (rather than same subjective quality at different bitrates). Theora is apparently very good at lower bitrates, and not everybody has an awesome broadband connection, so they may be forced to watch lower-bitrate streams. Does the HTML5 video tag support selecting streams based upon available bandwidth?
dude... get with the program... its all about streaming now... THEY encode, u stream n watch...
The situation seems pretty clear to me.
Theora is just not as good as H.264; you can get better quality with the same bits in H.264, or similar quality in fewer bits.
Theora is, however, good enough for general use for Internet video. It's at least as good as H.263, which actually has been used for years. (Breathless claims that Theora would need twice as many bits as H.264 are just silly.)
Since Theora is free in all ways, browsers can just build it in, and sites like Wikipedia are going to use it. Since H.264 is better, sites with money will pay the H.264 fees to save money on bandwidth. And, if I had a web business, I'd hesitate to paint myself into a corner with H.264; the patent owners have the power to jack up the royalties if they decide to.
In short, both Theora and H.264 will be found on the Internet in the near future. And we can all just get along.
(Now watch Theora fanboys and H.264 fanboys team up to mod this post down through the floor... :-)
P.S. Ogg Vorbis never toppled MP3 from the throne. However, the existence of Vorbis may have exerted some downward pressure on the licensing fees for the paid codecs. In a similar way, the existence of Theora may cause the patent holders for the other video formats to not try to charge quite as much.
steveha
lf(1): it's like ls(1) but sorts filenames by extension, tersely
"but the average computer user isn't going to spend months learning how to use a CLI and then hours compiling packages so that they can encode videos with Theora"
HUH?
There are plenty of visual apps to do this, no need for cli and whatnot....
NO SIG
If I were to choose between a proprietary, obfuscated, possibly patent-encumbered format and an open, free, community-geared format, I'd always choose the latter, without all that nitpicking about performance and technicalities. In the end, it all boils down to whose interests you want to support -- those of a patent holder who's gonna charge you every single time you watch a video, or your own.
On the other hand, consumers are strange and bewilderingly uninformed creatures. They rarely choose what's in their best interest (as shown by the mp3/ogg controversy, by the wide acceptance of DRM-ed content, and so on).
Intellectual Property: an immaterial non-entity, most fiercely contended by those with no proper intellect to speak of.
Could somebody please explain to me why the license matters? I mean, I understand that if a license limits mpeg-4 encoding to a single government computer running Windows ME that was lost 5 years ago, that the license is a HUGE barrier to entry to use the codec. However, in this case the license seems to be the only single category in which Theora wins. The compression is worse than mpeg-4. The compression takes more space. But look! The license is a little better! WINNER!
I've asked this every time this topic comes up. Can anyone name a SINGLE piece of open source software that does anything better than it's closest closed source (or otherwise "proprietary" via patents or whatever) counterpart?
Nope, you cannot.
Open Source should join the waterfall model and the "man month" on the scrap heap of failed faddy software development methodologies. It has literally nothing going for it.
This post was written on a Mac, a product from a company PROUDLY providing closed source innovation since the dawn of the modern computer era!
You must be new here.
The license is the single most important thing. It determines whether or not you can use the software at all, or for your specific purpose, whatever that is.
When we're talking about establishing a standard for the Web, which everybody is expected to be a) able and b) allowed to use, there is nothing more important than the license.
..although this is an 1.1alpha release of Theora..
You say that as if it's against Theora. It's not -- otherwise they would have tested against a released version. There could well improvements in the various mpeg-4 codes if you dig around in developer repositories.
Combination - fun iPhone puzzling
How does the licensing cost of serving a file under a royalty based license compare to the cost of the extra bandwidth?
I wouldn't think there would be much difference, but maybe someone knows.
If true, then the cost of license compliance and solicitor fees and compliance officer etc could easily swing the balance to Theora.
If it's still pretty neck-and-neck, the Theora solution still has a simpler implementation process (us it) compared to the mpeg4.
60% is bit of a price to pay, however IMHO the point of the video tag is tighter integration with your website than is easily achievable with flash. Hopefully theora will improve and compete with mpeg-4, but there are still many advantages to using it over flash for embedded video (for stand alone pages, it doesn't matter so much as most users have a plugin to handle mpeg-4)
*Interacts with the rest of the page easily (TBF actionscript, et al can achieve this)
*Much lower cpu usage. While flash is particularly bad, theora is particularly good
*Cross architecture. As people browse the web on phones, pdas, etc, this does actually matter
*Much less likely to be exploitable (TBF webhosts don't care, but users should)
*Open standards.
I don't think theora should be seen as simply a tool to replace flash videos but it should be seen as an opportunity to better integrate video into sites and/or make video content available to more people annoy people with video backgrounds
IranAir Flight 655 never forget!
title was supposed to be more to "video tag" but i didn't notice Slashdot lamed it up.
IranAir Flight 655 never forget!
Let the porn industry sort it out.
Seeing as they are the only people that actually make real money on the web, we can count on them to pick the most cost effective and highest quality video technology.
When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
Dirac is supposed to be a great opensource, patent-free codec, yet nobody seems to care a lot about it in all those HTML5 video talks....
Technical testing is somewhat irrelevant until the "much better" license has been tested in court. The idea of a completely free codec is a nice pipe dream, but I'm skeptical that they've pulled it off without treading on at least a couple of patents. And unless they can show that to be false, the license they offer is somewhat meaningless. The first large company that steps up and uses Theora could easily end up being the one that gets sued.
So "much better" really depends on the point of view. If you're a small company or an individual, the Theora license is much better since you're not likely to be a big enough target to get sued. But for large companies, the Mpeg-4 license is much better since it has a well known fixed cost associated with it.
There are three things that this test doesn't consider:
For real life examples, that also include sound see "YouTube / Ogg/Theora comparison" and "Another online-video comparison".
There's a hidden treasure in Python 3.x: __prepare__()
*... *Open standards.
Note how in your own list, "open standards" is last, reflecting public's perceived priority of this issue.
Trying to use angle brackets in your title?
Apparently Slashdot requires you to use < and > in the titles, yet doesn't support any html tags in them.
Do the MPEG4 patent holders indemnify their licensees against violations of others' patents? If not, you're taking the same risk either way.
The license matters a whole lot less than the potential patent encumbrance for the codec.
The developers of Theora state that the codec is not encumbered by patents, but to my knowledge, there's been no legal tests of that and no intensive review of the possible areas of infringement by a patent attorney. That's a serious issue for the uptake of the codec by vendors, since they're potentially on the hook if it later turns out that the codec infringes on people patents and the holders want to be dicks about it.
Theora has no two-pass mode: when you turn select bitrate instead of quality Theora applies a hard limit. x264 has this mode too but no one uses it because it kills quality and because no one is trying to send video over slow links anymore. Theora needs to catch up with the rest of the world that left slow DSL behind years ago.
If you don't get it then make sure you are reading at +1 and above. Otherwise you will just hurt your little head.
Why is it so hard to only have politicians for a few years, then have them go away?
After seeing the comparison videos, I have to say that I don't see where the problem resides. Although Theora does demand more bandwidth for a video with similar good video (a subjective trait), as anyone can see the, Theora's quality at lower bitrates is far from bad. It's still better than the quality that sites such as youtube relied on when starting their service.
Having that in mind, let's not forget that bandwidth is getting ridiculously cheaper and we are getting incredibly fast connections by the month. It's not like we are seeing people forfeiting their ISP contract due to the service fee being too much to bear or seeing people complaining about how their 1Mb/s connection not being fast enough. In fact, joe six-pack's internet connection is more than capable of downloading countless ISOs daily, let alone watching streaming video. And that's not counting all those fiber to the premises and similar projects. That means there is absolutely no problem caused by the difference in bitrate. The network is already more than capable of handling it.
Moreover, knowing that the bandwidth aspect of the thing is irrelevant then the only problem that needs to be tackled is the problem of implementing the service. That is also a no-brainer, as one option, Theora, is freely available and freely accessible while the other is proprietary, patent-incumbered and controlled by single private entities who forces an economic penalty on it's adoption. Who in their right mind wants to build their foundation on a technology that is controlled by someone who wants to raise tollbooths to to access it?
So, to put it short, Theora may demand more bandwidth but that is absolutely irrelevant. The real problem is that one contender is absolutely free, both economically and in terms of conditions, while the other will not only cost money but will also forces everyone to be at the mercy of some grand tech gatekeeper. Facing that question, I do believe the choice is obvious.
P.S.: fuck you, slashdot, for screwing up the comment edit box so that I can only get paragraphs separated by newlines if I post the messages under the code option.
Slashdot, fix your code or at least hire someone who is competent at it to do it for you.
Who is this 'Anonymous Cowardon' who keeps posting? Somewhere behind my computer a small pile of spaces seems to have leaked out...
If you copy and paste it into a text editor, you'll discover that there's actually a collision between a space and an anti-space there. (That's sort of like anti-matter, but more digital.)
ffmpeg is known to have several encodng problems both and with theora.
(Sorry my bad French) Je fais parler les Guignols de l'Info. Le pied, quoi.
Will someone just get to the point and tell me how this will affect my porn-watching experience?
What does that look like? A two-dimensional space, in 3-space...
But really, seconded. I keep thinking it's a particle.
To continue on this train of thought, where is my Large AnonymousCowardon Collider?
Always back up, never back down. ---- Think you're cool 'cos your uid is prime? Take mine, modulo the one digit integers
Only one point I wanted to mention (since the article and comments have all been--- oddly balanced for Slashdot)
The article points out that current Thusnelda is not as high quality as the best available h264 encoder at high bitrate video and unlimited encoding time. No argument there, it's true. Thusnelda still has a ways to go, despite the distance it's come; the current alpha still has no Adaptive Quant whatsoever, which will go in before final release.
However, the vast majority of users are not using x264. If you look at the h264 YouTube encoder, which has been designed for speed rather than 'work as long as you like to optimize the output', suddenly Theora is exactly on-par. In short--- Theora is every bit as good as the way that the real world is going to end up using h264 for the forseeable future. And the users of that 'inferior' h264 encoder seem pretty happy with it.
Anyway, this isn't disagreeing with anything you've said, it's simply a practical way to look at the difference.
Monty
I can buy off-the-shelf parts to decode MPEG4. Where are the chips to decode Theora available?
do the slashcode authors even try linux?
these rat droppings in the middle of posts
have got to go.
You have lost, admit it and have a nice day.
This kind of attitude is half the reason people aren't more reasonable in discussion.
If you make discussion about beating others, you derail us from the more valuable goal of cooperatively working towards truth.
Yeah, you were right about downward pressure, but you turned into an asshole at the end there. On behalf of humanity I would ask that you knock that off.
You make a fair enough point, but the fact of the matter is: I was right; you knew it, I knew it, the moderators knew it, and he probably even knew it, yet he continue to argue by claiming he knew what "normal" people think.
Re-read my second post... why would anyone argue with that, except to be an ass? I even clarified what "downward pressure" is, in case he was one of the supposedly "normal" people who apparently think nothing can go up if something exerts a downward pressure on it. With his response, I basically concluded that he's either trolling or irrational and subsequent "reasonable" discussion was not likely.
Look, I may occasionally act like an ass when somebody wears my patience thin by continuing to argue an obviously wrong point, but at least I try to admit it when I'm the one who's wrong.
Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
The guy is using absolutely -none- of the baseline features that x264 offers to improve the video stream - and let's not mention what is offered in the more advanced profiles.
This comparison is anything but thorough. Poor job.
I have looked at some clips posted with both VLC and Media Player Classic using CCCP. Theora sucks versus H.264. The amount of noise in the captions and images, it is like the difference between looking at an extremely compressed and noisy JPEG, and a slightly blurred PNG. So what gives? Does my player suck, or is this really the best its supposed to do? Sure it looks better than the blocky H.263, but that isn't saying much.
Companies have only bothered to write GPU shader decoders for H.264 because 1080P H.264 can barely be decoded on a top end CPU.
Theora simply doesn't have that problem. Although there probably is no reason that someone couldn't use CUDA to write a GPU decoder for it, I don't know why anyone would bother. The netbooks don't have the kind of fancy GPUs that would be worthwhile for this yet, so those theora developers should probably instead spend their time working on the ubiquitous ARM processors used to decode H.264 in devices like the iphone and the embedded MIPS CPUs often used in set-top boxes as dedicated H.264 decoders.
Apple seems to have paid for it all so you can get Quicktime for Windows and Mac. The dlls/sos exist already on the pc so you can use THEM to render the video.
The developers of Theora state that the codec is not encumbered by patents, but to my knowledge, there's been no legal tests of that
How can you do a legal test of the claim that nobody can sue you over Theora? Nobody has been sued! What more proof do you think can be provided?
Proving a negative is always very difficult, often impossible. Try to prove that the Invisible Pink Unicorn doesn't exist.
So either provide the patent number, or be ready to be accused of spreading FUD.
And don't even start with submarine patents: this is a technical term for a questionable practice of the USPTO that can hide a patent for at most two or three years, Theora is based on VP3 which is more than ten years old.
no intensive review of the possible areas of infringement by a patent attorney.
So you are trolling: Firefox, Opera and Chrome will all ship with Theora support later this year. Mozilla and Opera have publicly stated that their lawyers have verified that Theora is clear from hostile patents (and this can be tested: patents are by their very nature public). I don't know about Google, but you can't possibly suggest that a company worth $ 31 billion would ship a video codec without extensive legal checks.
And, BTW, there's proof that the alternative, H.264, is heavily patented: you need to pay for the encoding, the decoding and for every download of a video from your site. The pay-for-each-download part is only true for videos longer than 12 minutes, but they can change the patent licensing terms any time they want.
There's a hidden treasure in Python 3.x: __prepare__()
Wow, I just had to comment on this. The article itself is of course nice and intriguing (and the video-clip chosen is an excellent clip to give the codec a hard-time. The grass, and medium-mask net in the background, wow.)
The problem with the article is that it really compares pears with apples, and is not too specific about what pears and what apples. The main problem here is that is uses different suites for conversion, in one hand ffmpeg with some probably well-tuned defaults for x264 (-vpre hq), and on the other hand ffmpeg2theora, that may be tuned for different defaults and different coding-settings. Especially, there are two parameters not covered by the article that may have a huge impact. Multipass-encoding, and keyframe-density.
Multipass-encoding is a technique where you let the encoder skim the content several times, gatherings statistics on progressive levels. Multipass encoding has huge benefits, and can sometimes cut the mbit/quality in half, or more.
Keyframes are special frames in the video-stream where the content can be synced. Between those frames only progressive frames happen, so you can't skip to those frames. Keyframes usually take up a lot more space than the frames in between so you want as few as possible of those, but if you make them too few, you will be limiting seeking severly, and for live content, the zap-time will increase.
Then there's the issues of whether different processing filters were used between the sets, and of course exactly WHICH versions of the codecs were used. "June-something" isn't really a good spec.
To make it a bit more equal comparison, and also with known versions, I tried redoing it myself, using a gstreamer-pipeline and the same source-material used in the article. The pipelines used were:
gst-launch-0.10 filesrc location=soccer_4cif.y4m ! decodebin ! x264enc bitrate=1000 ! avimux ! filesink location=soccer_4cif.y4m.avi
gst-launch-0.10 filesrc location=soccer_4cif.y4m ! decodebin ! theoraenc bitrate=1000 ! oggmux ! filesink location=soccer_4cif.y4m.ogv
Unfortunately, I don't have much time, or hosting space to share the encoded results, but trust me, it was NOT in favor of x264 with these settings. On the bright side, you can try it out for yourself, and fiddle with different settings, all versions are directly from updated Ubuntu Jaunty repositories, as of today. Just install gst-tools, and all gst-plugins even from multiverse.
Happy encoding!
I know that has nothing to do with the article, but just out of curiosity I wonder how flash looks when using a similar file size.
Does anyone remember it? The author screwed up and coded parts of it on university time so had to revoke the GPL license since they could not prove which parts were or were not university property.
I spent a month compressing a highly scaled video clip and was able to put about 20 seconds on a floppy. I could compress a complex jpeg with the static compressor into 4 - 20k.
http://www.linuxjournal.com/article/4367
Bandwidth wise it's marvelous, it's the number crunching to compress it that's the killer. I'm not a coder and his paper is marginally comprehensible but there is no way I could recreate the codec.
I'd go on a Vegan diet but the delivery time from Vega is too long. --brownkitty
This does not take into account that software (and hardware) encoders are all built and behave differently, even for the same formats.
where is my Large AnonymousCowardon Collider?
You're posting on it.
It is great to fully utilise hardware that you have now, but H.264, DivX, and WMV hardware acceleration is not the future. Why lockdown hardware to accelerate a specific video coding format that will change in the future? Instead, if the engineering effort is spent making the CPU & video operations faster (and smaller die size, more cores, lower power requirements) then all applications benefit, not just H.264, DivX, and WMV video playback. The hardware industry is taking this concept further, investing heavily in CPU & video on the one chip.
Because dedicated hardware will use only a small fraction of the power programmable hardware will use. For example, H.264 HD high profile can be decoded in dedicated hardware that's running at 200MHz. A CPU (plus GPU assistance) is surely going to need several GHz to do the same job.
Anyway, the silicon cost of dedicated hardware is small and, if it's not being used it can be switched off entirely. Furthermore, if programmable hardware CPU/GPU is being used to do video decode then it will slow down the CPU etc for other tasks it may be required for.
Theora is I think better in comparisons at lower bitrates, say below 500kbps. And there's a new alpha released, after one used here. Poster mentioned in the article another recent comparison, albeit one using youtube's encoders for h.264, and including audio. Poster seems to think the choice of big bucks bunny made theora preform better. Yet, that comparison too concludes theora looses out beyond 500kbps.
I'm getting sick of having to update a fsckin video decompressor every time I click on a new URL. We don't constantly hunt for ways to hose delivery of static images by reinventing .jpg over and over, so let's stop doing it with video. If I want faster video I'll get faster internet.