OTN帧中SM帧与字节换算中BIP-8位校验,第i帧的校验结果为什麽放在第i+2帧,而不是i+1呢,可以具体展开说一说吗?

什么是 HEVC ?简单说就是一种比 H264 压缩效率更高的现代视频编码格式,它支持 8K,支持 HDR,支持广色域,支持最高 16bit 的色彩深度,最高 YUV444 的色彩抽样,总之一句话,是一种用来取代现有 H264 的更高效、现代的视频编码格式,且目前已经被各类硬件广泛支持。

然而因为版权和技术派别等原因,这种格式一直没有被浏览器很好支持,尤其是目前市占率最高的 Chrome,一月初看到了一条 B 站用户吐槽 HEVC 解码性能/发热问题的新闻(感谢 B 站在 HEVC WASM 解码方案上的探索),考虑到这也是困扰业界很久的问题,大量依赖 HEVC 的 Web 项目均被迫产出了各种各样 Workaround 方案,但效果一直都不是最理想的,心想不如帮

本文简述了 Web 解码方案现状,介绍了作者为 Chromium 浏览器实现 & 完善硬解过程中遇到的问题和实现原理,并在文末附加了测试结果,预编译版本供参考,希望可以解决 FrontEnd 苦 HEVC 久矣的问题。

主流设备早已支持且广泛使用

  1. 版本号必须大于等于 Edge 99 。

出现上图所示的字样,则证明硬解开启成功。

  1. 在显卡支持的情况,性能是最好的。

由于 Apple 是 HEVC 标准的主要推动者,因此早在 17 年的 Safari 11 即完成了 HEVC 视频硬解的支持,无需安装任何插件开箱即用。

  1. 在显卡支持的情况,性能是最好的。

  2. 开箱即用,无需装插件。

  3. HDR 支持最好(比如:杜比视界 Profile5,杜比全景声)。

  1. 生态不足,缺乏大量 Chromium 内核下“可用、好用的”插件。

  2. Safari 俗称“下一个 IE”,其浏览器 API 兼容性与实现,相比 Chromium 仍有差距。

  3. 部分 HEVC 视频莫名其妙无法播放,哪怕视频本身没问题。

前端解码-WASM(软解,任何平台)

此类方案绝大部分基于 WASM + FFMPEG 编译实现,支持所有支持 WASM 的浏览器。

  1. 不挑浏览器,是纯前端的技术实现。

  1. 需要依赖所在版本浏览器 WASM 的稳定性。

  2. 不支持硬解,因为软解+性能损耗的缘故,性能有其天花板,4K 以上视频即使使用 5950X 这样的顶级 CPU 也会卡顿掉帧。

因此我们的目标就是正确按照 VideoToolbox 要求的方式,提交 Image Buffer,并等待 VT 将解码后的数据回传。

通过观察可发现,在 macOS 下,某种编码格式是否支持硬解,取决于硬解 Decoder 内的 SupportProfiles 是否包含这种编码格式,其代码如下:

可以看到,SPS_NUT的 Nalu Header 解析后的数据如截图右侧区域显示,感谢 Elecard 开发的这款好用的工具,有了它对我们实现 VPS 解析有很大帮助。

GPU 是否支持硬解检测

// 部分单反拍出的视频如果这里填充错误会导致花屏

处理分辨率,色彩深度的突变

现实中的实际视频,尤其是在 WebRTC 场景产生的视频,可能存在分辨率或者色彩深度突变的情况,因此,在实际实现 Decoder 的过程中,处理这种情况至关重要,如果处理不好,轻则会导致视频花屏、绿屏,重则会导致 D3D11 device context lost,并最终导致 GPU 进程崩溃。

Windows 平台更佳(Mac 会适当扩展高光),两款浏览器这一轮打平。

接着我们将显示器调为 HDR 模式,并开启操作系统的 HDR 输出。

可以看到,如果视频是 mov,一般都会在封装容器会写入色彩空间,此时二者区别不大,都可以较好在 HDR 显示器以 HDR 效果显示 PQ HDR 视频内容,但如果视频是 mp4 封装,则由于 mp4 一般不写入色彩空间到封装容器,Edge 存在 PQ 视频显示异常的问题,这一轮 Chromium 胜。

接着我们测试 macOS,在 macOS 播放 HDR 视频,无需任何设置,因为其支持 EDR 功能,我们选择支持 HDR 的 XDR 显示器 Mac (新款 M1 Pro / Max Macbook Pro)进行测试,正确显示 HDR 视频无需任何设置。(注:如果需要为外置显示器强制启用 HDR,需要使用支持的显示器并在 设置-显示器 面板开启“高动态范围”选项)

在 macOS,如果需要开启 HEVC 硬解功能,一种方式是以命令行的方式打开:

如果不喜欢命令行,也可以通过 Automator 建立启动自动操作的方式打开。

如何验证是否生效?打开chrome://gpu, 如出现下图红圈所示的字样表示成功。

打开活动监视器,搜索 VTDecoderXPCService , 播放视频时,观察到进程 CPU 占用率上涨也可说明硬解成功:

Windows 的 Chrome,在桌面快捷方式传入启动参数即可。

HEVC 硬解功能目前正在实验中,最早可能在 Chrome 105 稳定版发布。

技 术 文 件 技术文件名称:OTN标准简介 技术文件编号: 版 本:V1.0 共 51 页 (包括封面) 拟 制 苑岩 审 核 会 签 标准化 批 准 深圳市中兴通讯股份有限公司 信息安全: 本文为公司信息资产,请阅读者注意保密工作,信息安全分类如下: 技术原理属于机密文档,保密期为无限期;开局指导属于内部公开文档;维护经验属于内部公开文档。 发布范围:公司内部 文档更新: 如相关产品文档资料缺乏,统一反馈至doc@,经记录后,分派给相应事业部文档发布管理员,由其组织人员确认并协调编写,审核通过后,由文档发表管理员统一上载归档,并发布新编资料通知。 如现有文档存在问题,请将信息反馈至doc@,经记录后,分派给相应事业部文档发布管理员,尤其组织人员进行确认并填写修订记录,确认完成后由文档发布管理员再次记录更新结果,经验证通过后,统一更新相关文档。重大更新应以技术通告形式立即发布周知;常规更新每季度以邮件形式发布周知。 修订记录 版本 发布时间 拟制人/修订人 发布人 修订原因 修订内容 V1.0 200610 苑岩 杜显利 4个ODU1到1个OPU2的映射(Mapping ODUk signals into the ODTUjk signal) 31 5.5.4 同步映射和异步映射的比较 38 引言 编写目的 本文档作为OTN标准G.709的普及性介绍文档,对G.709标准做了一个较为简单的介绍。本文档从我司波分系统关注的OTN功能出发,重点介绍和波分设备相关的OTN部分。 预期的读者和阅读建议

我要回帖

更多关于 以太网帧最长为多少字节 的文章

 

随机推荐