严 涛, 黄金火, 雷中岳, 陈德礼
(莆田学院信息工程学院, 福建 莆田 351100)
随着信息技术的不断发展与应用,传统的二维视频技术已经不能满足用户的视觉需求,高清、3D、无线移动已经成为视频应用的主流趋势.但是现有的编码标准的压缩效率仍然不足以应对高清、超高清视频应用,仍需要更为高效的编码压缩方案.为此ITU-T和MPEG成立了视频编码联合小组(joint collaborative team on video coding, JCT-VC).2013年,第一代高效率视频编码(HEVC)标准完成[1].2015年,MV-HEVC作为一种基于HEVC的新3D标准之一,具有强烈的立体感和灵活的交互能力,能够生动地呈现视频场景,在3DTV和视频会议等领域展现了广阔的应用前景[2-3], 已成为视频领域的国际研究热点[4-5].
码率控制是通过控制编码参数以使产生的比特流符合不同信道比特率的需求,并达到高的编码质量,其是视频编码中非常重要的技术之一,任何视频压缩标准离开码率控制其应用都会受到限制.以往的视频压缩标准如MPEG-2、MPEG-4、H.263、H.264、MVC(多视点视频编码)等已给出码率控制模型,而目前国际上公布的MV-HEVC的检验模型[6],尚未给出有效的码率控制算法.
现阶段,国内外从事MV-HEVC码率控制的研究较少,而主要从事MVC码率控制的相关研究.Woo等[7]基于率失真理论研究了立体视频编码中的最佳比特分配问题,提出了合理的比特分配算法,但编码复杂度高、计算量大,很难满足应用的需求.Lim等[8]提出了基于二项式模型的多视点视频编码的码率控制算法.该算法利用运动预测和视差预测的空间结构关系,将所有图像分成多种编码类型,然后对各种类型的图像分别建模,根据模型的参数计算各种类型帧的目标比特数和帧级量化参数.然而在多视点视频编码中,各个视点之间的视差预测特性具有较大的差异,因此预测关系相同的编码图像可能具有不同的编码特性,这时采用相同的模型参数计算得到的目标比特数会出现一定的偏差.Park等[9]考虑多视点视频编码中采用分层B帧的影响,在H.264基础上对多视点视频编码进行比特分配,也能保持高效的编码效率,但码率控制偏差比较大,平均码率控制误差在1%以上,在实际应用中不具有可操作性.文献[10]在立体视频编码的码率控制算法中,对左右两个视点的码流采用了统一的缓冲区,然后使用 MPEG-2的码率控制模型TM5进行码流速率的控制.但由于在多视点视频编码中,随着编码图像类型的增多,此种基于TM5的目标比特数分配的准确率会变差.以上码率控制都是基于H.264的多视点视频编码码率控制研究,目前基于MV-HEVC的多视点视频编码码率控制研究较少.文献[11]提出了基于3D-HEVC的多视点视频编码码率控制研究,但是该算法码率控制误差比较大,离实际应用还很遥远.
为此,本研究在分析现有视频码率控制中率失真模型的不足和多视点视频编码的特点后,提出一种面向MV-HEVC多视点视频码率控制算法.实验仿真结果表明,该码率控制算法的实际码率与目标码率平均误差仅为0.96%,同时保持高效的编码效率,理论上已达到实际应用基本要求.
ρ域的码率控制算法是由He等[12-13]提出的,其中ρ表示变换系数量化后零系数的个数占所有系数的百分数.通过大量的试验及理论证明得出以下结论: 对于视频信号,ρ与纹理部分编码比特率T(ρ)成线性关系,线性模型表示为:
T(ρ)=θ(1-ρ)
(1)
此模型简单有效,作为基础已被广泛应用[14].
为了将ρ域源模型的方法引入到MV-MVC码率控制,本研究通过大量试验,找到ρ与纹理部分编码比特率的关系.试验采用的平台是2016年国际上公布的MV-HEVC的检验模型[6],“exit”视频序列,帧率25帧·s-1,量化参数QP的取值范围为0~51,图1给出了15帧的R(ρ)曲线.从图中可以看出,R(ρ)近似为一条经过(1, 0)点的二次曲线.本序列的其他视点、其他帧以及其他序列的试验结果也同样表明有此结论.不失一般性,可以假设ρ与纹理部分编码比特率R(ρ)具有如下二次关系
R(ρ)=α(1-ρ)2+β(1-ρ)+γ
(2)
其中:α,β,γ为一元回归系数,初值设为0、R/2和0,在每帧编码完成后,需在后编码阶段进行刷新.又
(3)
那么研究如下R-ρ模型即可
R(ρ)=α(1-ρ)2+β(1-ρ)
(4)
其中,α,β可以由如下的统计分析方法给出: 令x1(ρ)=(1-ρ)2,x2(ρ)=1-ρ, (x11,x21,R1), (x12,x22,R2), …, (x1n,x2n,Rn)是已存在的n个样本值. 再令
(5)
利用多元回归技术,可以计算得到模型参数N为
N=(KTK)-1KTR
(6)
其中:KT是K的转置矩阵,(KTK)-1是KTK的逆矩阵.
图1 exit序列R(ρ)曲线Fig.1 Experimental results for exit
为了与最新视频编码标准HEVC兼容,本研究提出的比特分配与码率控制是以HEVC码率控制算法为基础.这里主要在于如何在MV-HEVC各个视点之间进行合理的码率分配,采用视点间相似度分析进行合理比特分配.
根据视点间的相似度以及已编码信息给不同视点合理的分配比特.用权重wk表示该视点k的重要程度,wk越大表明该视点越重要.在每个编码GGOP图像组内第k个视点GOPk分配到的比特总数由式(7)给出
TGOP(nk, 0)=TGGOP(sni, 0)·wk
(7)
其中:wk(k=0, 1, 2,L, …,Nview-1)初值由式(8)给出, 即
(8)
这里,N表示编码视点的数目;S(Vj,Vk)表示视点Vj,Vk相似度,采用双线性相似度度量算法.该算法已成功用于图像检索领域,其优于传统的距离度量方法,没有距离度量等限制条件.Ej,Ek分别为两个视点特征向量,T为本研究要学习的矩阵. 即有
(9)
在HEVC帧层码率分配中,每帧比特分配由帧率、目标缓冲区容量以及实际缓冲区大小等决定,没有把该编码帧的残差能量考虑进去,这样很可能引起图像质量下降和跳帧现象.文献[15]按编码帧的残差能量提出了下面最佳帧目标比特分配方法:
(10)
式中:T为编码M帧所消耗比特数之和; MADa表示所有帧MAD的平均值; MADj表示第j帧的MAD;Cj和Cm分别为第j帧和第m帧帧头信息占有比特.从式(10)可知,MADj和Cj的图像帧越大分配的目标比特越多.
在多视点视频编码中,第(j-1)帧分配的目标比特如下:
(11)
式中:Ca表示编码当前GOP中已编码帧的头信息所消耗比特的平均值.
一般来说,帧的活动时域越小,需要的比特越少; 反之,帧的活动时域越大,需要的比特越多.为了多视点视频编码码率控制更为精确,将式(11)的码率控制方法作进一步改进,当前帧目标比特由式(12)计算:
(12)
式中: FD(j)、FD(j-1)分别为第j编码帧和第j-1编码帧的活动时域度;Tj为第j帧帧头信息所消耗比特.
根据MAD的预测值分配当前基本宏块的目标比特,此方法比较简单,就是把每帧所分配的比特再平均分给该帧的每个基本单元层,这样同一基本单元层中不同宏块用相同的量化参数进行编码.
(13)
上式中,MADmbi,MADunit表示当前基本单元层中第i个宏块的MAD的预测值和当前基本单元的MAD的预测值; QPmbi,QPunit表示当前基本单元层中第i个宏块的量化参数和当前基本单元的量化参数.
为了验证本研究算法,在JCT-3V提供的MV-HEVC系统平台上[6],对本研究码率控制算法与文献[11]提出的多视点码率控制算法进行编码性能的实验比较.采用了Newspaper 、Kendo 、Lovebird1、Poznan Hall2 、Undo Dancer 5个标准3DV测试序列测试.序列的分辨率包括1 920 px×1 088 px和1 024 px×768 px.相关参数见表1.
表1 测试序列的相关参数
如表1所示,本研究采用的5个测试序列都有各自的特点: Newspaper 、Kendo 、Lovebird1尺寸为1 024 px×768 px,Poznan Hall2 、Undo Dancer 尺寸更大1 920 px×1 088 px; Newspaper和Kendo 序列场景变化缓慢,Poznan Hall2和Undo Dancer序列全局运动较快; Newspaper 、Kendo、Poznan Hall2选取室内场景,Lovebird1和Undo Dancer在室外场景拍摄.
图2给出了Newspaper和Poznan Hall2序列PSNR波动图,结果表明本研究所采用的码率控制算法,前后帧之间PSNR的波动明显降低,改善了主观效果.图3给出了序列Newspaper和Poznan Hall2 PSNR实验结果,与文献[11]相比,本研究的算法能够有效地控制多视点视频编码的码率,同时保持较高的编码效率.
表2给出了多视点视频编码码率控制的仿真结果.从表2可见,本研究所提出的码率控制算法与文献[11]相比,码率更为精确且偏差较小,平均码率误差小于1%,能满足实际应用要求.其主要原因为不仅在视点之间进行较为合理的码率控制,而且在帧层以及基本单元层都很好地进行码率控制.其中Poznan Hall2序列目标比特2 000 kbit·s-1, 码率控制误差比较大为2.99%,这主要原因是Poznan Hall2序列运动比较剧烈,难以进行精确比特分配.此外,从表2也可以看出本研究所提出的码率控制算法与文献[11]相比,PSNR也有所提高.
图2 PSNR波动图Fig.2 PSNR fluctuations
图3 PSNR实验结果Fig.3 PSNR experiment results
序列v目标 /kbit·s-1文献[11]v[11] / kbit·s-1PSNR / dB本研究算法v本研究 / kbit·s-1PSNR /dB码率控制误差 / %文献[11]本研究算法PoznanHall220001925.1940.981940.2540.973.742.9930002950.2341.802987.4641.721.660.4240003979.3442.144013.3942.200.520.33Lovebird120001973.3135.662023.0335.651.331.1530003075.7137.243020.0837.222.520.6740004058.6537.904023.2437.871.470.58Kendo20002011.8938.772017.2539.380.590.8630002993.0340.512982.2841.220.230.5940004020.0842.154028.3442.370.500.71UndoDancer20002069.4429.672012.7129.633.470.6430003088.5431.132978.8631.082.950.7040004078.5732.133973.3232.151.960.67Newspaper20001982.4734.322035.7234.750.881.7930003034.4536.063036.2336.311.151.20140004154.5037.174078.3737.363.861.96Average1.740.96
本研究在分析了现有视频码率控制中率失真模型的不足和多视点视频编码的特点后,提出了一种基于HEVC多视点视频编码的码率控制算法.该算法涉及整个码率控制过程,从码率模型设计到每个模型比特分配与码率控制,这样保证码率控制算法精确性.实验结果表明, 提出的面向MV-HEVC的比特分配与码率控制算法能基于事先给定的编码参数进行有效的码率控制.下一步将深入研究视点间相关性以便提高码率控制算法.另外,本研究尚未考虑多视点场景切换,这也是今后工作研究的重点.