请选择 进入手机版 | 继续访问电脑版
Mozilla

火狐社区

登录    注册

用新浪微博连接 QQ互联

WebAssembly将简化下一代视频编码器的协同工作

yingliu Mozilla员工 发表于 2017-2-28 17:37:31 | 显示全部楼层 [复制链接]
2 2033
本帖最后由 yingliu 于 2017-2-28 17:38 编辑

Mozilla 的研究工程师 Michael Bebenita 最近针对下一代视频编码格式 AV1 发表了一篇文章,很值得一读。如果您对新型媒体格式的制作方式有兴趣的话,建议不妨抽空读读文章全文

HWDsrX2e6a4Wg.png

文中关于将 AV1 比特流分析工具(AV1 Bitstream Analyzer)移到 Web 的讨论,特别有意思:虽然输入分析工具的数据量通常都不大(一个编码过的比特流),但产出的数据量却极大。最理想的办法是直接在浏览器里执行分析工具,以便省去下载分析器所输出的大量数据的麻烦。

但是,如果编码是以 C 语言做的,该怎么处理呢?做法之一,你可以用 JavaScript 来手动重新开发,然后希望能赶得上参考实践(RI)的变化速度。另一个更好的办法则是直接重新利用已完成的 C 语言码,把它编译到 Web 上。这就是 AV1 团队的做法,而他们使用的工具是 Emscripten。

Emscripten 可将任意的 C/C++ 原始码转译为 JavaScript ,如此一来,AV1 团队便可自动将编码的每个修订版次译为 JavaScript 后传上网。无论在哪个时间点,若要比对同一编码的两个不同版本的差异,就如同分享网页链接般简单。

这样的工作流程快,但还可以更快。由于 JavaScript 不支持 64 位的整数,使得许多 AV1 的运算都得经过繁复的数字转换。据估计,64 位的仿真计算会导致 AV1 性能减损 20% 。过去有些项目甚至还曾因这样的模拟过程而折损了 600% 的性能。

这就是 WebAssembly 派上用场的地方。WebAssembly 是新的 Web 低阶程序语言。因为它是由 Mozilla、Microsoft、Google 和 Apple 所共同开发的开放格式标准,所以未来将适用于各种浏览器环境。 Bebenita 说:“WebAssembly 支持 64 位运算。等正式推出后,AV1 比特流分析工具就会转换成WebAssembly。”

幸好,Emscripten 现在已实验性地提供编译至 WebAssembly 的支持,故 AV1 的工作流程可维持不变:先开发 C 语言的单一程序代码库(codebase),再使用 Emscripten 将程序代码编译到网页上做测试。因此,WebAssembly 可算是在下一代影音编码的开发中扮演不可或缺的角色。

更重要的是,此工作流程也代表了网页开发模式的根本变革:“原生(Native)”和网页之间的隔阂已经瓦解,开发人员将可在两个环境中无缝使用同样的链接库。这不仅终结了把程序手动移植到 JavaScript 上的无聊工作,更开启了大幅提升网页开发工作效率的一扇门。



隐元 老狐狸
发表于 2017-2-28 20:19:33 | 显示全部楼层
mozilla令人骄傲!
310971373 狐狸精
发表于 2017-3-1 11:57:10 | 显示全部楼层
赶紧干掉flash,太卡了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发新帖
论坛更多 »
热门活动更多 »
  • [免费报名]量子火狐中国社区见面会 Firefox Quantum Fan Meeting[...

    立即参与
火狐微信
快速回复 返回顶部 返回列表