时间:
2014 年
级别:
IEEE
机构:
上海交通大学
结论:
x265 作为 HEVC 开源的编码项目,旨在提供世界上最快、计算效率最高的HEVC编码器。通过深度研究 x265 的编码框架和计算复杂度,发现 RDO 是最耗时的过程,为此提供一种有效的预测方案,包括降低 RDO 次数、提前 skip 决策、快速帧内模式。在 x265 上HD 视频序列编码速度从 19.86fps 提升到37.76fps,47.44%的复杂度降低,仅1.37%的BDBR 编码性能损失。
介绍:
x265 是比 HM 快1000 倍,但是在 ppreset = faster时仍然无法实时编码 1080p 视频序列。通过全面剖析和分析x265的计算复杂度,通过优化其编码流程和模式选择算法来提高x265的实时编码速度。提出了一种快速预测方案来减少RDO次数,这是最耗时的部分。此外,还提出了一些有效的快速算法,如提前skip检测和帧内预测等。
x265 编码性能分析:
preset=faster 被选择在本篇论文中,x265 的版本是 0.8。配置是faster 的主要特征是:CU 尺寸 64x64~8x8 、最大 TU 递归深度是 1 、禁用矩形和非对称运动分区、启用帧级和 wpp。
通过和 HM11 比较,编码速度提升 1385 倍,PSNR 减少 1.053dB;与 x264 比较,PSNR 增加 0.729dB 。
通过分析工具进一步研究了编码模块的复杂度:
CU 的模式决定的RD 代价计算如下:其中 Bmode 是给定模式的码率,SSEluma 和SSEchroma 是原始和重建 CU 的亮度、色度误差平方和 SSE,wchroma是色度分量的权重因子,λ是拉格朗日因子。
RD代价计算占据了 48% 的编码时间,运动估计和运动补偿占据了 21%,因此帧间的预测包括 RDO计算和运动估计,是最耗时的部分,超过了总编码耗时的 60%;
x265 的CU 模式决策的流程:
如下,为了检测 skip 模式,MergeRDO在每个深度都进行,所以 MergeRDO 的计算量是高于其他部分的。当skip模式的RD代价小于merge模式的RD代价时,skip模式被选为最优模式。否则继续计算其他模式的RD成本,选择RD成本最小的模式作为该深度的最佳模式。然后去下一个深度,做同样的过程。最后选择所有深度下RD代价最小的模式作为最优模式。
因此,在每个深度上,通常需要进行merge、inter、intra-in-inter RDO 3次RDO处理,导致计算复杂度巨大。
因此,减少RDO次数是减少计算量的关键.
提出的优化算法
减少RDO次数量:
减少非必要的 RDO计算是非常重要的,使用 SATD 来决定计算 RD 代价:
其中 satdmode 是原始 CU 和预测块之间的 SATD,λ是拉格朗日因子,Bsatd是比特。
该方案利用SATD代价选择当前深度中值最小的模式。由于skip模式对编码性能有重要影响,计算SATD代价值最小的模式的码率代价,并将其与skip模式的RD代价进行比较,从而选择当前深度下的最佳模式。
提出的算法只需要计算一次 RDO,相较于原始的计算三次 RDO。
基于相邻CU的skip模式检测:
skip 模式是非常重要的模式,提供较好的编码性能,准确有效的skip 模式决定扮演关键角色。在原始 x265 中,为了检测跳跃模式,每次都要进行MergeRDO,带来了较大的计算量。为了避免对其他模式进行不必要的代价计算,提出了一种新的早期跳跃检测算法。
CU 的预测 RD 代价公式:
predrdcost表示CU 的预测 RD 代价,avgcostNeigh 表示相邻 LCU和当前 CU 相同尺寸大小的平均 RD 代价,包括左、上、左上、右上的 LCU,avgcostCU 表示目前 LCU所有已编码的 CU平均 RD 代价,α和ß是基于当前树块与其相邻树块之间的相关性的权重,分别设置为0.6 和 0.4。
由于 skip 的码率开销是 0,所以
所以 skip 模式被提前决定:
ρ表示自适应参数,设置为 0.9。
快速帧内预测:
对于帧内预测,HEVC提供了35种预测模式来提高性能,需要递归搜索从64x64到4x4的5种尺寸的CUs来找到最优模式。这带来了巨大的计算复杂性。
根据不同大小的像素块的方差可以判断该区域是平滑的还是复杂的。平滑区域的CU方差较小,这些块倾向于划分成较大的预测块。当纹理丰富的CU方差较大时,倾向于将其分割为较小的预测块。因此,利用不同大小CU的方差来选择可能的深度层,从而大大降低了帧内预测的复杂度。
DC模式和平面模式每次都需要计算SATD代价,而其他33种角度预测模式由于相邻预测角之间SATD代价的连续性,可以采用粗、精结合的搜索策略。首先,计算每两个方向的SATD代价;然后重新排序结果并选择两个最小值。最后计算两个最小值相邻模式的SATD代价。粗搜索保证了帧内和帧间预测的计算复杂度显著降低,而细搜索能够保持良好的编码性能。
整体帧间预测框架:
提出的算法归纳如下:
- 帧间 CU 开始模式决策
- 通过公式计算 skiprdcost、prerdcost,并且判断 skip模式,如果达到skip 条件,跳转到 6
- 分别计算 Merge、inter、intra-in-inter 的SATD 代价
- 选择最小的 SATD 作为候选模式,为这模式进行 RDO 过程,计算 RD 代价
- 比较 4 中的 RD代价和 skip 模式的 RD代价,然后转到 6
- 确定当前深度的最佳模式,如果最佳模式不是 skip 模式,转到下一个深度,继续相同的过程
结论:
对比 x265 原始的 faster 配置条件下,47.44% 的编码复杂度降低,每部分的减少占比如下图