VP8 Decoder Implemented In Flash Using Alchemy
An anonymous reader writes "Mozilla's Chris Double has an interesting post on his blog about a port of the VP8 decoder to Flash. He writes, 'Ralph Hauwert has been posting on twitter about work he's done on getting WebM decoding to work by compiling the libvpx source code using Adobe's Alchemy technology. Alchemy is a research project that allows compilation of C and C++ libraries into code that runs on the ActionScript virtual machine used by Flash.' Of course, it's very slow and Adobe says that they'll bring native VP8 support to Flash in due course, but implementing a VP8 decoder in ActionScript is an interesting project nonetheless."
WebM is the container
--- VP8 is the video
--- Vorbis is the audio
Why didn't Google use Ogg for the container? I see Google's also developed a WebP format for pictures, also based on VP8.
"I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall
as much as useless timewasting project.
I would have preferred spending those resources into making a better/faster/leaner VP8 decoder!
Maybe Computers will never be as intelligent as Humans.
For sure they won't ever become so stupid. [VR-1988]
Wow! Flash is Turing Complete! Who woulda thunk it? Now if only it could be implemented in Javascript so as to also be unusable within another interpreted / bytecode environment....
Better known as 318230.
Now that Google has dropped h.264 support from Chrome, the new reality is that the <video> tag in HTML5 is dead, and pretty much all desktop video will be served in Flash players.
Except that Chrome has rather small share of the browser market.
I just implemented Google Chrome in Flash using Alchemy. Next I'm going to implement Flash in Flash using Alchemy. Then Alchemy in Flash using Alchemy. All on my Amiga console!
Some drink at the fountain of knowledge. Others just gargle.
http://gs.statcounter.com/#browser-ww-monthly-201012-201012-bar
Really? It's 3rd yes, but it's bigger than everyone under it combined.
Now that Google has dropped h.264 support from Chrome, the new reality is that the <video> tag in HTML5 is dead, and pretty much all desktop video will be served in Flash players.
Except that Chrome has rather small share of the browser market.
Chrome has about 10% of the Market though lets be honest its a 50% Split between companies(firefox opera are WebM) who support WebM vs H.264, and a massive majority if you only include those that are cutting edge browsers with supported platforms. With IE9 still with no release date and not working on XP. That and the fact the LARGEST video streaming site on the net Youtube will support it. Ignoring the fact that OS's can provide safe fallbacks. So no not really.
Now that Google has dropped h.264 support from Chrome, the new reality is that the <video> tag in HTML5 is dead, and pretty much all desktop video will be served in Flash players.
So it's good they are getting a head start on getting the VP8 codec tuned in Flash, although the practical reality is that for full support in all browsers all you'll have to do is encode in h.264 and call it a day; thus that's all most companies will ever do. You have to encode in h.264 to support video playback on iOS devices which is still a huge segment of the mobile market that uses the internet.
After all Adobe owns Flash, and they have no reason to remove h.264 support now that web designers are being forced to use of Flash players for desktop. So the new steady state for the system is h.264 in Flash players everywhere except for systems that can play h.264 directly.
Your very fortunate. Google still offer support for WebM through Chrome as do Firefox and Opera. Hopefully Microsoft and Apple can get behind this. They have already said its better to speak the same language...and both love openstandards. As you have already stated Safari ;) and IE9(not XP Microsoft have not given them a choice for IE) have native OS fallbacks, Although as you can see those devices that give users the choice of Flash can get WebM in Flash as well.
Actually, its not that interesting. "Engineer implements random protocol with miscellaneous sdk." The fact that a programmer gets a toolset to do something shouldn't be news. Even if the toolset is used for something it wasn't intended, a well designed toolset should handle unforeseen scenarios with some dexterity anyway. A mildly interesting hack, sure. Headline worthy? No.
Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
Newsflash: companies have self-interests.
In other news, water is wet.
VP8 isnt a standard.
Google has had a year to submit VP8 to a standards organization, but hasn't done so, so its Googles fault that it isnt even on the road to being a standard.
Instead, VP8 is a "here is the source" codec.
It isnt the FORMAT that is patented, but instead the METHODOLOGY.
Essentially, ONLY that reference implementation is owned by Google. Make a change that accelerates decoding (while remaining compatible) and you might just land smack dab in the middle of not "free." Have a look at the H.264 patents and you will find that most of them deal specifically with efficient methods of doing something well understood (efficient arithmetic encoding, efficient huffman encoding, efficient golumb coding...)
"His name was James Damore."
water is wet.
[Citation Needed]
Google, Opera, Firefox religious zealots OMG when did this happen. I thought they made these choices for business reasons. Please tell me more about this religion is there handshakes involved. Tell me there is lots of SEX. To be honest those other companies that only allow H.264 format that they make money off the small hardware/software companies as a barrier of entry...are they zealots too!? Tell me more.
As far as I am aware W3C the organisation that looks after web standards has given no codec the green light. I cannot think of a better way of showing a standard than a working implementation...Something OOXML that standard that got through by corruption and still has no working implementation. To be fair though the vast majority of browsers using the Video tag will be WebM which is next month. Which is what I would call a internet standard.
Why not serve WebM over Flash or Theora via Java to people who don't care about such things?
Analogies don't equal equalities, they are merely somewhat analogous.
Except that the method is the format. Without the format conversion, all you have are semi-random bits.
Not a programmer, are you? You do realize that there is more than one way to implement something identical, right? No? Yeah... thats how I know that you arent a programmer.
That DOES NOT MAKE IT NONSTANDARD.
Nobody said that it did. You, however, seem to think that source code makes a standard.
Plus, I suspect that you're wrong. There are several implementations of the standard.
If they are not identical, then only one of which is owned by Google and as such only one of which is covered by Googles "we wont sue you, unless.." terms.
The other could contain patented algorithms not owned by Google and STILL DECODE THE SAME STREAMS.
Do you not understand that?
You use a lot of words and have only managed to display your ignorance.
Comming from someone that doesnt know what patents cover (WebM is not patented, although might be in the future, but the VP8 algorithms ARE patented .. the ALGORITHMS, not the format.)
Dont be such an ignorant rude fuck, asshole, especially when you dont have a fucking clue what you are talking about.
"His name was James Damore."
*throws a bucket of water at iammani*
GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
I think that one of the features of Silverlight was that it was possible to write a codec in c# and it was fast enough to process video, so that could be an interesting task for someone with enough time: Testing what performs better, decoding vp8 in flash or silverlight, without native support in neither platform
They aren't forbidding WebM. So, no, I don't have to tell you more, since you've already walked your own way to idiocy.
Then I look forward to Microsoft and Apple announcing there full backing of WebM using the Video tag rather than funny[sic] bolg posts or silence.
Essentially, ONLY that reference implementation is owned by Google
ffmpeg has an independent implementation of the decoder, but for the encoder you are correct.
The main problem with vp8 isn't that it hasn't been submitted to a standards body. That's trivial detail. The problem is that it's not meticulously documented, which means that conforming implementations are difficult. If I implement an encoder in a way which contradicts the reference implementation but does not contradict the documentation, does that make my implementation wrong, the documentation wrong, or the reference implementation wrong? Logically the answer should be "the reference implementation" because it contradicts the documentation, but I don't have much confidence that this will be borne out in reality.
I say "main problem" but in reality the above is just one problem, the biggest problem is actually weaknesses in the format (as have been pretty well enumerated by x264 developers, among others). The reason no one cares about mkv being non-standard but people do care about vp8 is that mkv is known to be an extremely good format with good documentation and essentially no flaws (albeit some tradeoffs were traded in ways some people do not prefer) whereas vp8 has clear flaws and insufficient documentation.
I want my Cowboyneal
What the fuck are you talking about? Take a good hard look at the codecs supported by the big three browsers. Even before Chrome's announcement, there wasn't a single column that was green all the way down. This fragmentation started long before Chrome removed h.264 support.
ffmpeg has an independent implementation of the decoder, but for the encoder you are correct.
Some people seem to be having trouble with this concept, so I'll use a little analogy.
I can patent a sorting method.. lets call it RockoonSort(). I can develop a compression algorithm that requires sorting and use my sorting method in it.
I cannot patent sorting itself, so you could go ahead and avoid my patent by using qsort(), heapsort(), mergesort(), bogosort(),
All of these video codecs use arithmetic coding, and many of the various algorithms that implement it are covered by patents. They all do the same thing, and quite a few are even functionally interchangeable (for a given input, the exact same output) but are none-the-less owned by different folks (hello IBM.)
This all boils down to methods of doing it efficiently. Using a particular kind of lookup table to avoid an expensive division? Well thats owned by someone (hello MPEG-LA) but using the expensive division is out of patent now and everyone can go ahead and do it that way (ie, slowly.) Patents on doing it without multiplications? Yep. Doing it with binary trees? Yep. Doing multiple symbols in in parallel? Yep.
Even if you accept that the reference does not violate anyones IP, you cannot accept that changes to the reference for efficiency or even porting reasons (for hardware without specific capabilities) will also keep you free and clear.
"His name was James Damore."
Google has had a year to submit VP8 to a standards organization, but hasn't done so, so its Googles fault that it isnt even on the road to being a standard.
The relevant standards bodies have no interest in something like VP8. VP8 is designed not to be patent-encumbered, whereas standards bodies like the MPEG group aim to create video codecs that are as technically advanced as possible and that are encumbered by as many of their members' patents as possible. (The patent encumbrance isn't just a side-effect of wanting the best codec possible - member organisations deliberately try and make sure that their patents are an unavoidable requirement of implementing the standard, because they directly benefit from this.)
Standards bodies are not a panacea, and they have known issues. This is one of those issue.
Essentially, ONLY that reference implementation is owned by Google. Make a change that accelerates decoding (while remaining compatible) and you might just land smack dab in the middle of not "free."
That's true of basically everything in the software industry, including h.264 itself. Remember that the h.264 patent consortium does not even guarantee it owns every patent that affects h.264, let alone patents covering particular implementations. It's still better than h.264 though - that's designed so that you can't write a compliant decoder or encoder at all without infringing patents, because the specification was written by the patent owners.
It's not that small anymore, and Firefox doesn't support h.264 either. Between the two of them, they make up a very large segment. The basic problem you have is: FF/Chrome - no h.264 IE/Safari - no WebM
This means you have a strict division of support, and in order to satisfy more than 50% of the market, you'd have to offer both formats. If this doesn't change, unfortunately the video tag will likely die.
Not true. Your trying to imply that their is a 50% split in the market rather than the the uptake over time of the video tag. Its more complicated for a start it doesn't cover Video Content on the net YouTube is going to support WebM lets face it and is the largest Video streaming company on the net.
Now for browsers *currently* the only browsers ignoring beta's that support the video tag are chrome and safari...giving only support for webm to chrome users leaving chrome+safari for h.264, and YouTube serving its videos in H.264 format.
Trouble is come Feburary *everything* changes Firefox+Chrome both coming out next month to the tune of half the market. IE9(the only version with the video tag, still has no official release date but may come as soon as next month, but has the worst adoption rates and has limited iself to 40% of the OS it will support, We can confidently say a Maximum 20%, although its more likely to be half that, unless Microsoft Push out a mandatory update which they are unlikely to do. Leaving WebM with a 3:1 support over H.264 although in reality its more you can gesstimate through adoption ratios.
Going forward XP machines will be replaced at about 20% a year. Chome at least in the short term will continue to rise depending on how this news affects it. Firefox will I grow on its new release...How much with chrome as a competitor is anyones guess. IE I suspect will lose more market simply because its trying to push XP users onto Windows 7 with its browser.
So If your talking about a split WebM will have a third larger support than H.264, and 3 times the size of native support.
So if Market share was the only indication WebM is a long way in the lead...and with YouTubes backing!?
Its interesting to see Internet Explorer on XP is holding back the Video tag :)
I'm sure someone has already reflected on this, but the thought hit my slow brain at first today:
[li] A project like Firefox could never have succeeded in a web-landscape where license-payments were needed to implement a web browser.
[li] Without Firefox, we would most likely still be stuck with IE.
The video tag always meant, that we should be able to assume the most widely used codec was in place.
Erm, no. The video tag always meant that we could assume that at least the codec specified in the standard itself (ie, Theora before Apple's bitchfest) was in place. It never was a popularity competition, and now that Apple managed to remove Theora from the standard and no particular codec is specified, it's all as it was before the days of Flash: a random coin toss as to whether it'll work or not, regardless of which codec(s) you use.
Instead killing off the video tag means we are LOCKED INTO h.264 in a way that would not have been true if the video tag really took off. It means we are LOCKED INTO flash players in a way that would not have been true if the video tag took off.
Don't like h.264? Then you of all people should be more angry at Google than I am, because they ensured the marginalization of WebM and VP8.
No, he should be angry at Apple, as without them there would have been a specific codec we could've relied upon even if all others were missing, one codec whose support would be universal among all HTML5-compliant browsers and devices, Ogg Theora. Instead, we get a return of "guess the codec" which, unlike what all the h.264 apologists try to claim, was pretty damn far from being universally supported even before Google's decision.
No problem is insoluble in all conceivable circumstances.
Now for browsers *currently* the only browsers ignoring beta's that support the video tag are chrome and safari...
No true, Firefox 3.6 and Opera 11.0 (and Chrome) all support the video tag with Ogg Theora.
Dilbert RSS feed
I don't think I have made any other glaring errors. I left Opera out as it was complex enough as it was it needs a labelled graph.
They won't support H.264 because its proprietary but they went out of there way to support Flash.
And yet they are forced to support it via streaming from Youtube lest they wreak all sorts of havoc on Android devices. That is unless they want to kill the battery usages of Android devices by forcing them to use a software VP8 decoder instead of the H.264 ASIC built into the phone.
So if Market share was the only indication WebM is a long way in the lead...and with YouTubes backing!?
But YouTube is going to be forced to continue supporting H.264 because of the iPhone and Android devices. That is unless Google is planning on either replacing all Android devices with ones that have a VP8 decoder ASIC or making Android phones battery life abysmal by forcing the use of a software VP8 decoder.
Apple only brought up the point that in order for web designers to accept the tag it had to support a widely used codec.
You can blame Apple all you like but the video tag was doomed when it was Theora only; Apple tried to save it. Google has curb-stomped it real good now, so we can forget about that part of HTML5.
On an amusing sidenote, in Chrome now using Youtube, the WebM player uses twice as much CPU than the native h.264 HTML5 player did, and the Flash player also uses less CPU than the WebM player!
Regression all the way.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Are you saying that if the FUD about WebM a format that predates H.264 really were to come into being it could be coded around ;)
They have licensed it BSD, because thats how you get adoption of the format. Thats what they want. Thats the only way they can succeeded...are you really trying to imply that Google is going to sue anyone. I suspect that with H.264 highly restrictive license and multiple company involvement you are gonna see a lot of people sued.
Ah, revisionism. The video tag was at no point "Theora only", as you claim, Theora was suggested as a baseline. That is you could use H.264 or whatever else as you please, just as long as you had the ability to play Theora at all. Apple basically said, "we are not doing that no matter what", and it was dropped because an unimplemented standard is pointless.
Analogies don't equal equalities, they are merely somewhat analogous.
And proceeded with:
If you are going to ignore betas, then ignore the fucking betas, YouTube only serves HTML5 video in beta. Furthermore, it serves both H.264 and WebM there, so....
Analogies don't equal equalities, they are merely somewhat analogous.
Ah, revisionism. The video tag was at no point "Theora only", as you claim, Theora was suggested as a baseline.
Whoa there, you are responding to the wrong person. I never claimed that, I merely accepted what Draek said at face value. Correct him if you must correct someone.
The fact that Apple said "we are not doing that" simply goes back to my point that they noted people would not use a codec that didn't already have wide support. They also pointed out the madness of having to require a codec that had zero hardware support.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Why not serve WebM over Flash
did adobe ever implement that? They said they would implement VP8 but i've found no evidence of them actually doing so and afaict they only talked about implmenting VP8 not the rest of webm.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
I'm not quite getting your point here. Is your argument that at least with H.264 we know we're fucked? That we should just give up on open and royalty-free standards and open source until the U.S. gets a patent reform?
Sigh.. I'm saying that any re-implementation that isnt the reference is very likely to infringe on patents.
Are you just too stubborn to admit it to yourself that you have to pretend to struggle with this idea?
Take a look at H.264's patent pool sometime. Many methods of implementing the same equivalent thing are in there for a reason, so that implementors have options. VP8 gives no options.
Why is this so hard?
"His name was James Damore."
If only one of these patent pools would patent multiple methods of doing the same thing so that implementors would have a choice of algorithms likely to be efficient on their hardware.
Oh.. wait.. MPEG-LA did exactly that.
"His name was James Damore."
Did you even read the title for the article you're posting on?
Sooo... according to you, the reason Apple didn't accept the HTML5 standard was that web developers would be unsure that a codec whose support was required by all HTML5 implementation would be supported by all HTML5 implementations? I'd love it if you could give us a source for that, I could use a laugh.
Sorry, but outside your broken logic, Apple is the reason we're in this mess and it's Google, along with Opera and Mozilla, who are trying to fix the damn problem they created.
And BTW, I've never said that the HTML5 standard was going to be Theora only, you may want to read my post again before blaming me for your own misconceptions.
No problem is insoluble in all conceivable circumstances.
heh I think I glossed over the article and then came back sometime later to read the comments without remembering what the article was.
However reading the article 1.5FPS does not seem to make for a usable video player, sure you could crank down the resoloution and maybe optimise the code a bit but I'd still be surprised if this ever performs acceptablly.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
The relevant standards bodies have no interest in something like VP8.
SMPTE is an individual membership organization. I'm sure if an individual brought VP8 before SMPTE for standardization it would happen. SMPTE has a mixture of broadcast vendors and broadcast users of all kinds. There are some folks in SMPTE who are from companies with compression IP, but there are also plenty of other vendors represented in SMPTE that don't.
Of course, it would take time (like when SMPTE Standardized Windows Media Video as VC-1), but the result will be a well-defined specification that achieves interoperability.
Feel free to join SMPTE, show up at committee meetings, and do some standardization!
Oddly I did not mention it did both video formats were available in YouTube, but going forward it will be in WebM in a video tag with a fallback to WebM in Flash which could be as soon as Feburary.
They haven't yet, but then again, we have an article here about someone who did. I wasn't suggesting everyone should start doing it right now, just that it should be an option, probably by the time the first hardware is rolled out as well. They didn't specify implementing WebM, but the announcement is pretty clear that VP8 will be implemented to support it, it's probably the bulk of the WebM package.
Analogies don't equal equalities, they are merely somewhat analogous.
Letting Safari play Theora videos would have in no way affected their precious ability to play back H.264, you don't need widespread support to merely implement something.
What happens is you kill battery life in mobile devices if you mandate support for a format no-one supports. It's just a bad idea.
I realize you care not a whit for actual USERS; the ones we all write software for? Someone had to. That's where Apple came in.
A new standard lacking hardware implementations? Inconceivable!
Actually it *is* inconceivable when if you simply specify a widely used codec that includes hardware support as baseline for the standard, you in fact have a new standard (video tag) that includes hardware support out of the gate, which means it will actually be adopted.
So? Will all the old iPhones ever be updated to support newer HTML5 specs?
They already support the HTML5 specs, including the video tag.
There's only one model of iPhone that's not tracking iOS, that is sadly EOL. But if you jailbreak it that too can run iOS4.
Apple was probably afraid that Theora would indeed gain widespread support before their older iPhones were obselete
Come on, do you REALLY believe that? APple sure didn't. It's absurd on the face of it. Apple was (rightfully) afraid of anything that would slow down HTML5 adoption; pulling a stupid stunk like forcing a base codec no-one wanted to support would not help.
They had alreasy decided that H.264 would be the Apple way and didn't want to bother working together with the rest of the web on the issue
I see, just ignore the simplest and most pragmatic reason, because it doesn't fit with your notion of Apple as the cartoon mustache twirling villain.
Google at least bothered to do something about it
Right, they decided to screw over the HTML5 video tag so they alone could control the video format used by web and mobile. How nobel and altruistic! Too bad it's done on the backs of the users who have to suffer, they suffer for the greater good*
* Google being the greatest good of all
I'll let you have the last word as obviously I cannot dent the faith of a true Google Acolyte. Shine on Google, shine on! Oh how righteous art though!
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Sooo... according to you, the reason Apple didn't accept the HTML5 standard was that web developers would be unsure that a codec whose support was required by all HTML5 implementation would be supported by all HTML5 implementations?
Yes, because if you think about it that's exactly why you would do that.
Source: reality. The reality is that at that point h.264 was in wide use, and had good hardware support. If you want a standard to be adopted, which path is better - to select a baseline option that no-one will use, but is the only common option - or to selct as a baseline a format that the CONTENT PROVIDERS are already all using, ensuring easy transition to the poor bastards that are the ones on the front lines actually using the standards you set forth?
You don't even have to attribute any altruism to Apple if you like. You just have to realize that Apple wins if HTML5 is pervasive because they have one of the better browser implementations for mobile devices with the most complete support for HTML5. If all aspects of HTML5 are adopted life is better for Apple - it just happens to be better for the rest of us as well, users and content providers alike.
If any of that logic appears broken to you, it's because you are not considering how standards really get adopted. Web developers don't have to move to support HTML5 you know. And they certainly are going to be ignoring the video tag in droves now.
And BTW, I've never said that the HTML5 standard was going to be Theora only
Since your misunderstanding me I thought I'd return the favor. I never claimed you thought that, just that it was to be the baseline.
I'll let you have the last response since logic seems elusive to you - I've laid out my reasons, and leave it to the reader to decide which of us is being realistic.
"There is more worth loving than we have strength to love." - Brian Jay Stanley