Describing it as “the future,” Mozilla has been showing off ORBX.js, a video codec roughly comparable to the industry-standard H.264 that can be decoded entirely in JavaScript.
ORBX.js was developed by a company called OTOY. OTOY’s major product is Octane Render, a 3D renderer that works exclusively on NVIDIA cards using CUDA. Working with customers including Autodesk, OTOY has developed technology to allow applications such as Autodesk’s 3ds Max modelling software to be accessed over the Web without using plugins.
Central to this is the ORBX codec. The codec allows efficient, real-time encoding on GPUs, and can be decoded in JavaScript. The JavaScript decoder works in all modern browsers, both desktop and mobile, though with differences depending on the browser features available.
Like most video codecs, ORBX distinguishes between video frames that are encoded in their entirety—“I-frames”—and those encoded as deltas relative to another frame—“P-frames” and “B-frames”. I-frames can be decoded independently of one another, but P- and B-frames can only be decoded when their surrounding frames have also been decoded. ORBX, again like most other video codecs, can be used to create video streams made up entirely of I-frames, or streams that use a mix of I-frames and P-frames. I-frame-only modes don’t compress as efficiently, but are simpler to decode.
For browsers including Internet Explorer 10 and Safari on iOS, ORBX is used in I-frame-only mode. For other browsers, including Firefox and Chrome, it uses a more conventional mixed mode. That’s because the mixed mode depends on WebGL for part of its decoding. I-frames can be encoded entirely in JavaScript, but P-frames require the use of shader programs due to their greater complexity. Internet Explorer 10 and Safari on iOS don’t support WebGL, and so can’t be used to run shader programs. As a result, they use about twice as much bandwidth for the same level of video quality.
Loading comments...