文章插图
随着内容业务的进化,视频和直播占据了主要流量 。一方面信息表达从空间维度拓展到时间维度,另一方面,分辨率也提升到720P,1080P甚至4K,消费时长也成倍增长,(刚才陈老师有数据,每个人花费在视频的平均时间可能有好几十分钟) 。我们也知道,每一代视频压缩标准相比上一代有50%的码率节省,从MPEG4到H.264/AVC到H.265/HEVC,再到去年发布的的H.266/VVC,很自然我们会想到通过升级编码标准来节省视频成本 。
2.1.4 HEVC在视频业务落地挑战

文章插图
首先我们探讨一下HEVC在视频业务落地的挑战 。HEVC标准在2013年公布已有8年时间,但直到最近几年才在业务上大规模落地,这里主要有以HM下几个原因:
首先是编码速度,H265的官方模型HM,在普通PC上编码720P视频时只能达到0.1fps,想象一下,压缩一段十分钟的视频需要花费一天甚至几天的时间 。业界最好的开源编码器X265,在慢速档也只有6.8fps,距离30fps实时编码的需求有相当大的差距;
其次是编码质量,由于复杂度的原因,X265仅比X264节省18%的码率,远远达不到HEVC相比AVC理论上的上限值(HEVC标准在设计时以50%的码率节省为目标);
第三是码率控制,业界有许多场景的码率控制方法,比如ABR、CBR、CRF,但现在实时音视频的业务场景非常复杂,无法直接使用这样的码率控制方法;
第四是解码的兼容性和性能,也是大家普遍关心的问题 。用户观看环境多种多样,有Android、IOS、Web的H5观看,H265在H5上的支持不太好,限制了它的发展,硬解设备兼容性也不完善,所以在解码兼容性方面也面临着很大的挑战 。
2.1.5 S265编码内核优化

文章插图
S265编码器是2017开始研发的,花费三年多时间使之达到较好的状态 。我们主要在编码工具、快速算法、工程优化、码控方法、框架优化方面做了大量的优化工作从而提升压缩效率和编码速度 。

文章插图
下面为大家详细介绍一下速度优化的相关技术 。
1、Cu深度预测算法,HEVC的块划分从64划分到8*8,深度有4层,如何预测出CTU的划分深度是具有挑战性的事情 。HM为了确保编码性能会对每一层都计算其RDcost,我们这里结合纹理复杂度、时空域相邻块及前处理运动信息,做到比较准确的Cu深度预测 。进一步深度预测方面有许多研究,比如一些机器学习,深度学习的方法能够精准预测块的划分层级 。
2、自适应的EarlySkip算法和RecursionSkip算法 。这两个算法比较类似,EarlySkip的目的是在本层跳过其它模式的计算,而RecursionSkip目的是跳过当前层不再Split 。X265也有类似的技术,我们比X265更进一步,做RS时会同时考虑skip和merge模式子块的satd,做ES时,会同时考虑最佳模式的cost大小避免残差过大,我们的结果做到在相同速度条件下对比X265相当程度的节省码率 。
3、All Zero Block的检测 。如果一个块经过量化后是全零块,就没有必要进行RDO及编码了,但怎样预测一个块是All Zero Block 。我们发现一种方法可能适合于一种大小的块,在8*8中比较准确,但放在32*32中不可用,所以要根据块大小及内部纹理强度,更加精确地预测出是否是All Zero Block 。
4、Fast Intra Prediction 。这个技术有很多人研究,H.265总共有35种预测方式,如何快速找到预测角度,有许多相关论文 。我们使用Bayes估计模型,在横向及纵向找到准确方向,再去做细分角度预测,提高角度预测的速度 。
5、分像素的搜索 。传统的分像素的搜索在整像素最佳点上下左右找4或8个点,相对来说计算量比较大,根据整像素结果通过误差平面估计模型推导出分像素点的位置,从而节省分像素的计算个数 。
6、多参考帧的选择 。为了提高压缩效率,现在的编码器会选择更多参考帧,比如在一个方向选择3到4个参考帧,我们会根据参考帧的质量,距离来做加权,选择适合的参考帧 。在拿到一个比较好的结果后如何提前跳出其它参考帧的遍历?多参考帧是提升压缩质量的一个很好选择,但需要避免计算复杂升高 。
7、Distortion的快速估计 。在RDO过程中要对误差进行仔细估计,如果用传统下的SATD做的话,效率不高,但如果做完整的RDO计算非常耗时,所以我们有残差的预估模型,从量化后的系数中用模型推导出Distortion的结果避免再做反量化,反变化 。还有像Bits估计,RDCost的另一个分量是Bits代价,用一次完整的熵编码会非常耗时,如果用一个分段线性模型能够估算出来Bits来,我们就可以快速做出RDO的计算 。
推荐阅读
- 5G工业路由器在工业物联网场景的通信应用
- wms仓储管理软件是必不可少的工具
- 如何用Python输出数学公式?
- 关于kill -0 pid的作用
- 曹操在官渡之战和赤壁之战一胜一负的原因,官渡之战曹操胜,赤壁之战曹操败,启示
- 今日头条赚钱的6大经验分享
- 香港服务器的带宽贵在哪里?
- 莳萝和茴香的区别视频,莳萝在烹调中的作用及用法
- 心脏神经官能症
- 男人起床后搓这里有奇效
