Представлен ORBX.js - сравнимый с H.264 видеокодек, реализованный целиком на JavaScript
Бренден Айк (Brendan Eich), создатель языка JavaScript, занимающий пост технического директора Mozilla Corporation, представил проект ORBX.js, в рамках которого компанией OTOY подготовлена высокопроизводительная реализация видеокодека, реализованного целиком на JavaScript и WebGL. По мнению Брендена новый проект подчёркивает возведение JavaScript на новый уровень развития и знаменует стирание границ между Web и нативными приложениями. ORBX.js может работать в любых современных браузерах, в том числе для мобильных платформ, не требуя никаких дополнительных компонентов, кроме поддержки существующих web-стандартов. Среди основных областей применения ORBX.js, кроме отображения потокового видео, называется создание работающих в окне браузера средств удалённого доступа к рабочему столу, играм и виртуальным окружениям. В частности, продемонстрированы средства для запуска в облачных окружениях ресурсоёмких 3D-пакетов и игр с трансляцией вывода в окно браузера, запущенного на маломощном нетбуке или планшете.
Кроме того, так как ORBX.js не требует наличия отдельных браузерных плагинов и не зависит от наличия кодеков в браузере, он может использоваться в качестве альтернативного пути предоставления средств защиты контента, не требующих продвижения DRM-механизмов в web-стандарты. Вместо DRM предлагается добавлять в кадры уникальные для каждого сеанса водяные знаки. Подобные водяные знаки дают возможность пользователю копировать и сохранять контент для собственных нужд, но в случае распространения контента среди других пользователей, позволяют выявить источник утечки.
С позиции эффективности, активное использование GPU в процессе работы, позволяет ORBX.js на обычной системе декодировать видеопотоки c разрешением 1080×600 и 60 кадров в секунду. Используемые в ORBX.js методы кодирования позволяют достигнуть на 25% более высокого уровня сжатия, по сравнению с H.264, при близком уровне качества. Среди достоинств нового кодека отмечается поддержка адаптивного изменения битрейта в зависимости от параметров полосы пропускания, более эффективные методы кодирвоания промежуточных кадров, изначальная ориентация на параллельную обработку данных, лучшая глубина цвета.
Для браузеров без поддержки WebGL, таких как Internet Explorer и Safari для iOS, предусмотрен режим упрощённого кодирования, при котором в потоке передаются только ключевые кадры, которые могут быть достаточно быстро и эффективно декодированы без привлечения GPU. Для браузеров с поддержкой WebGL, таких как Firefox, Opera и Chrome, герерируется более изощрённый поток, в котором присутствуют P-кадры, содержащие только информацию об изменениях, что позволяет сократить размер потока в два раза без изменения качества картинки. Декодирование подобных кадров выполняется с привлечением выполняемых на стороне GPU шейдеров.
Дополнительно, можно отметить публикацию демонстрации игры Epic Citade, портированной для работы внутри браузера. Работа игры в браузере основана на использовании компилятора Emscripten, преобразующего код проектов на C/C++ в представление на языке JavaScript (используется подмножество языка JavaScript Asm.js). Для вывода 3D-графики задействован WebGL, а для вывода звука — Web Audio API. Для запуска демонстрации желательно использовать свежую ночную борку Firefox, компоненты которой войдут в состав релиза Firefox 23. Демонстрация также работоспособна и в Firefox 20, но в этом случае не будет обеспечена должная производительность, так как в данным выпуском не поддерживается Asm.js.
© OpenNet