Can JS Algorithm object finally solve html5 codecs gridlock and move us forward?

David Bruant bruant.d at gmail.com
Fri Jan 18 14:42:13 PST 2013


Hi Ladislav,

Le 18/01/2013 22:51, neuralll a écrit :
> Hi guys
> I am playing with web audio api and mozilla audio api but I got frustrated about so much html5 potential wasted due to infinite codecs deadlock support in browsers holding progress back for so long.
> This even resulted to people writing codecs purely in JS.
> Unfortunately performance is obviously slow and limiting to browsers allowing raw data from js
How slow? I'm not familiar with the performance story here and I wonder 
how slow it is, for which sound quality on a modern browser with normal 
hardware, etc.
Do transferables & WebWorkers make the story better? (I don't know how 
much these algorithms work in parallel)
What is the slowness due to in current browsers? Is there a known 
bottleneck in current browsers implementations?

> And slow mainly because of huffman and imdct.
> But looking at block diagrams of pretty much any widespread codec like theora ogg mpg aac mp4
> it striked me.
>
> Since they pretty much share the same building blocs. and which themself are not that much patent encumbered.
>
> So why not just introduce new  Algorithm object in JS
> and just register huffman idct imdct filterbank in it. for browsers its easy task they just make visible already heavily hw optimized pretty much 4 or so functions that are already in them
>
> And then suddenly you can have theora ogg flac acc or pretty much any media decoded in js in all browsers but with speeds approaching those on native hw.
What is the expected performance gains? And I expect numbers as an 
answer, hopefully backed by some benchmarks.

> just look at incredible work of talented guys at official.fm and their js codecs even for flac
So... that's a JS codec? I think if they made it work, it's basically an 
argument in favor of *not* adding these algorithms to the language.
Reading a bit more about it [1]. Quotes: " With [these JS libraries], it 
is possible to play MP3, Apple Lossless, FLAC, and AAC even in browsers 
without native support."

"With JSMad we showed that decoding audio in JavaScript is possible, 
courtesy of these APIs and the hard work of browser creators and spec 
authors."

I'm kind of puzzled. They made it work to a level they find acceptable 
with current browser capabilities.
What else do you need?

David

[1] http://labs.official.fm/codecs/


More information about the es-discuss mailing list