2022前端最新面试题知乎 2022前端最新面试题

什么是HEVC?简单说就是一种比H264压缩效率更高的现代视频编码格式,它支持8K,支持HDR,支持广色域,支持最高16bit的色彩深度,最高YUV444的色彩抽样,总之一句话,是一种用来取代现有H264的更高效、现代的视频编码格式,且目前已经被各类硬件广泛支持 。
然而因为版权和技术派别等原因,这种格式一直没有被浏览器很好支持,尤其是目前市占率最高的Chrome,一月初看到了一条B站用户吐槽HEVC解码性能/发热问题的新闻(感谢B站在HEVCWASM解码方案上的探索),考虑到这也是困扰业界很久的问题,大量依赖HEVC的Web项目均被迫产出了各种各样Workaround方案,但效果一直都不是最理想的,心想不如帮Chromium实现一下HEVC硬解吧 。
本文简述了Web解码方案现状,介绍了作者为Chromium浏览器实现&完善硬解过程中遇到的问题和实现原理,并在文末附加了测试结果,预编译版本供参考,希望可以解决FrontEnd苦HEVC久矣的问题 。

2022前端最新面试题知乎 2022前端最新面试题


2022前端最新面试题(2022前端最新面试题知乎)
也可以提前下载ChromeCanary(),体验HEVC硬解功能(ChromeOS、Android、Mac、Windows需要添加启动参数--enable-features=PlatformHEVCDecoderSupport,Linux版本暂未支持) 。
在2015年,苹果的iPhone6s就已经在其A9芯片内首次实现了HEVC硬解能力,同年,Intel在第六代Skylake的HD500系列核显上,NVIDIA在GTX900系列独显上,也先后支持了HEVC硬解 。
在2017年发布的iOS11,macOS10.13上,苹果继续完成了其VideoToolbox编解码框架对HEVC编解码能力的支持,微软也发布了HEVCVideoExtension作为WindowsPC环境HEVC解码的能力对标 。
从此HEVC成为苹果,安卓默认视频格式,成为绝大多数单反/无人机/摄像设备的主推格式 。
直到今年,也就是2022年,iPhone已经出到了13,芯片技术已经提升到了5纳米,然而我们所使用的大部分浏览器依然无法播放HEVC视频 。
所谓硬解,即指使用GPU内专用于解码的芯片来处理解码工作,由于GPU多核心低频且专一的优势,在解码视频时发热和功耗显著低于CPU 。
通过将CPU从繁重的解码工作中解放,可极大程度降低系统卡顿 。
且GPU天生适合进行图形解码工作,解码性能秒杀CPU,视频分辨率越高,显卡解码越可以做到不掉帧输出,因此“永远不要指望单纯靠CPU软解可以流畅播放8K60帧的HEVC视频” 。
HEVC是目前桌面端或手机端播放器最主流的编码格式,考虑到其编码复杂度高,解码更耗费资源,因此为其实现硬解非常必要 。
首先先来看看Web侧解码的现状:
H265
VP8
VP9
MPEG4
AV1
Chrome102
硬+软解
不支持
软解
硬+软解
不支持
硬+软解
Firefox101
硬+软解
不支持
软解
软解
不支持
硬+软解
Edge102
硬+软解
硬+软解(需装扩展)
软解
硬+软解
不支持
硬解(需装扩展)
H264
H265
VP8
VP9
MPEG4
AV1
Chrome102
硬+软解
不支持
【2022前端最新面试题知乎 2022前端最新面试题】软解
硬+软解
不支持
软解
Firefox101
硬+软解
不支持
软解
硬+软解
不支持
软解
Edge102
硬+软解
不支持
软解
硬+软解
不支持
不支持
Safari15.3
硬+软解
硬+软解(仅部分)
不支持
不支持
硬+软解
不支持
目前业内常用的WebHEVC解码方案大致可以分为两种:“换浏览器”或“WASM软解”,他们各自有各自的优势和使用场景 。

推荐阅读