一种改进的全景视频比特分配方案①
2018-12-27,,,
, , ,
(福州大学物理与信息工程学院,福州 福建 350116)
0 引 言
全景视频是由多个摄像机同步运动拍摄得到的视频内容信息经过拼接而成的球形视频,现有HTC Vive、HoloLens等终端设备均支持全景视频的播放[1]。但由于视频自身的高分辨率和高帧率特性,在传输时需要通过码率控制以达到当前带宽下视频质量最大化的目的[2]。
为了在编码器中实现比特分配,码率控制模块通过图像组(Group of Picture, GOP)、帧以及最大编码单元(Largest Coding Unit, LCU)的逐级分配方案,实现了比特的合理分配并保障了视频的质量。文献[3]提出了逐级分配的码率控制方案,奠定了码率控制流程的基础,文献[4]改善了帧内比特分配的模型,进一步提高了码率控制模块的性能,文献[5]中通过大量实验得到了较为准确的率失真信息,并以此为依据修改码率控制中的分配模型,优化了帧间与帧内的比特分配。
但针对近年逐渐兴起的全景视频,现有编码器效率存在进一步提升的空间,因此需要改进现有码率控制模块中的比特分配方案。设计适用于全景视频的分配方案。文章分析了现有编码器的码率控制流程,并针对全景视频的特性,研究了全景视频在编码器中的性能表现,并以此为依据提出了一种改进的全景视频的比特分配方案。
1 码率控制流程
码率控制作为编码器中的重要部分,其标准由联合视频编码组提出。标准中规定,视频的码率控制分为图像组、帧以及最大编码单元三部分,各单位分配完比特后计算相应的量化参数(Quantization parameter,QP)进行实际编码。
1.1 各单位比特数的分配
1.1.1 GOP的比特分配
码率控制最先需要解决的是GOP的比特分配,通过式(1)和式(2)得到当前GOP所分配的比特数。
TGOP=[Ravg·(Ncoded+SW)-Rcoded]/SW
(1)
Ravg=Rtar/f
(2)
其中Ravg表示每帧的平均比特数,Ncoded表示已编码帧数,SW表示滑动窗口,默认设置为40,Rcoded表示已编码比特数,Rtar表示视频目标比特数,f表示视频总帧数。
1.1.2 各帧的比特分配
在GOP分配比特确定之后,需要根据GOP中各帧的权重分配比特,文献[1]中通过大量的实验,对不同编码方式的各帧权重进行了规定,当前帧分配的比特数计算公式如下:
(3)
其中RGOPcoded表示GOP中已编码的比特数,ωcurPic为当前帧的权重,N表示当前GOP中未编码的帧数。
1.1.3 最大编码单元的比特分配
码率控制中进行比特分配的最小单位是最大编码单元,在当前帧的比特分配完毕后,需要对帧内所有的最大编码单元进行比特分配,公式如下:
(4)
其中Bithead表示头比特数信息,RPiccoded表示当前帧已编码比特数,M表示未编码的LCU个数,ωcurLCU为当前LCU的权重。
通过GOP、帧以及LCU三步的比特分配,可以确定各单位的比特分配情况,根据得到的比特数计算各单位的量化参数。
1.2 比特数与量化参数的对应
根据分配到的比特数可以计算出每个像素的目标比特数(bit per pixel, bpp),根据bpp可以得到各单位的量化参数,码率控制标准在计算量化参数时引入了一个中间变量,这是因为直接根据bpp得到量化参数的误差较大,中间变量起到了过渡的作用,降低了计算误差,公式如下:
λ=α·bppβQP=4.2005lnλ+13.7122
(5)
QP=4.2005lnλ+13.7122
(6)
其中λ是计算LCU比特数和量化参数之间关系的中间变量,α和β为模型参数,分别设置为3.2003和-1.367。
码率控制通过三步的比特分配方案计算出各单位的比特信息,并得到对应的量化参数用于实际编码,这一码率控制流程保证了在给定传输带宽的条件下,编码后的视频性能较好。对于全景视频而言,由于分辨率和帧率较高,整体的传输码率也远超普通视频,这也给现有的码率控制模块带来了新的挑战。全景视频的高帧率保证了视频观看的流畅性,但也使总体的码率提高,高分辨率导致帧内的最大编码单元数目增多,对于帧内的比特分配提出了更高的要求。因此码率控制中的帧间和帧内的比特分配需要根据全景视频的特性进行优化,以保证全景视频的编码性能。
2 全景视频比特优化分配
帧间与帧内的比特分配方案影响视频整体的质量,针对全景视频,通过分析经过投影变换后的视频在编码中的性能表现,并以此作为指导依据,改进码率控制中的帧间与帧内分配方案。
2.1 全景视频的编码性能
全景视频由多个镜头在运动时同步进行拍摄,并将得到的视频信息进行拼接,获得最终的球形视频[6]。但现有的HEVC编码器只支持对平面视频的处理,对于球形视频,编码器只有将视频转换为平面视频后才能进行处理,因此在对全景视频进行编码时需要将其进行投影变换[7],该过程如图1所示。
图1 全景视频的投影
在图1中,全景视频在进行投影变换的过程中,为了使最终获取视频符合矩形特性,保障编码器能对视频内容进行正常处理,需要将全景视频不同纬度的区域进行拉伸,因此投影变换导致这些区域存在不同程度的失真,并且靠近两极区域的视频失真较大,靠近赤道区域的视频内容保留较好。为了研究纬度因素在编码器中的影响,以作为指导比特分配的依据。在量化参数为27的情况下,自上往下将视频分为6个区域,统计不同区域的比特分配情况。结果如图2所示。
图2 帧内各区域的比特分配
图2表明,视频不同区域的比特分配存在差异性,靠近两极的区域,分配的比特数较少,而在中间区域,分配的比特数较多。根据这一特性,通过对全景视频不同纬度的视频内容分配不同的比特数,可以起到提升视频总体质量的效果。
全景视频在GOP中各帧的比特分配同样需要进行研究,帧间比特分配的准确与否直接影响帧内比特分配的有效性。为了研究帧间的比特分配,在低延迟编码结构、量化参数为27的条件下,统计GOP内各帧的比特占GOP总比特数的比例,结果如图3所示。
图3表明,在全景视频中,GOP中序号为4的帧占整体比特数的比例较大,达到了0.7,而在普通测试序列中,第4帧的比例在0.6左右。比例的变化导致全景视频在帧间比特分配时的权重需要进行调整。
图3 GOP内各帧比特所占比例
2.2 帧间及帧内的比特分配方案
在得到全景视频帧间及帧内的特性后,改进现有码率控制中的分配模型,使其适用于全景视频。在分配给GOP的比特数确定之后,需要对GOP内各帧以及帧内部分进行比特分配,针对帧间和帧内的比特分配进行优化,达到提升码率控制性能的目的。
2.2.1 帧间比特分配方案
原始码率控制中GOP各帧的分配比特依据的是恒定的权重值,这种根据经验设定的权重值是在对普通视频进行大量测试的情况下得到的。在普通视频中,GOP的比特分配确定后,通过对bpp的不同设定不同帧的分配权重,如表1所示。
表1 GOP各帧比特分配权重
表1表示编码顺序为1~4的帧在bpp不同的情况下的权重分配,bpp反映了视频的内容与纹理信息,因此可以指导权重的设定。全景视频而言的bpp较大,根据bpp的不同对权重分配进行微调的作用不大。借助第二章对帧间比特分配比例的分析,全景视频GOP内各帧的分配权重可以在表1的基础上进一步优化。设定
ω1∶ω2∶ω3∶ω4=2∶3∶2∶20
(7)
其中ω1~ω4表示GOP内各帧的权重,根据权重可以得到各帧的比特数,权重分配的准确保证了帧间分配的准确性,也是整体性能优化的前提。
2.2.2 帧内比特分配方案
在得到当前帧分配的比特数TcurPic后,根据通过式(8)得到各纬度区域的比特数。
(8)
其中x为当前区域在帧中的序号,p表示共有的区域数。
分配完各区域的比特数后,对于区域内部的各LCU单元,采用平均分配的方法,以保障区域内部比特分配的公平性,同时也确保区域内部的质量变化不大,整体观看效果较好,对于区域内的LCU,分配的公式如下:
(9)
其中k表示区域内部LCU的个数。
在各单位的比特分配都已确定之后,通过式(5)和式(6)得到对应的量化参数,并通过量化参数进行实际的编码。
3 实验结果
为了验证比特分配方案的有效性,选取6个全景视频测试序列进行测试,其中DrivingInCity、DrivingInCountry和AerialCity的分辨率为3840×1920,帧数为300,帧率为30。Hangpai_1、Hangpai_3和Fengjing_3的分辨率为4096×2048,帧数为300,帧率为30。
实验中,使用JVET-F1030规定的全景视频测试标准环境[8], 软件平台为HM-16.15,编码方式为Low-Delay main10, GOP大小为4,采用等距长方体的投影方式,将球形视频进行投影,之后进入编码器处理,在比特数为0.5Mbps、1Mbps、2Mbps、4Mbps的情况下进行测试。
将该方案与HEVC原始编码器进行性能比较,以体现该算法的有效性。由于WS-PSNR指标相对于PSNR,能更好地反映全景视频的质量[9],并且WS-PSNR这一指标在全景视频的性能测试中应用广泛,因此测试分配方案的WS-PSNR平均提升量和比特误差率,作为视频的客观评价指标。其中WS-PSNR提升量直接反映该方案对比原始方案的效果提升,比特误差率反映算法在编码时的比特分配准确性,保证了比特分配的准确性。比特误差率的计算公式如下所示。
(10)
其中Ractual表示实际比特,Rtarget表示目标比特,测试结果如表2所示。
表2 测试序列的客观评价指标
由表2可得,该算法在不同比特率下均有一定程度的性能提升,WS-PSNR的性能提升平均为 0.0923,比特误差率平均为0.17%,保证了比特分配的准确性。相较于原始编码器的码率控制算法,该算法在保证误差率的前提下,性能优于原始算法。
为了直观反映算法的性能提升,比较了该算法和原始码率控制算法的BD-Rate指标,BD-Rate指标表示在同等的WS-PSNR指标下,算法相较于原始模型的比特减少量,如表3所示。
表3 测试序列的BD-Rate指标
由表3可得,同等码率下,比特分配方案的BD-Rate性能平均减少了3.70%,即使用较少的比特数便可达到相同的视频质量,因此提出的分配方案在码率控制中的性能表现优异。
4 结 语
针对全景视频高分辨率和高帧率的特性,在分析编码器码率控制流程的基础上,研究了全景视频帧间以及帧内的比特分配情况,并在此基础上提出了一种改进的全景视频比特分配方案,通过对GOP内各帧的权重进行调整,提高了帧间分配模型的准确性,并借助纬度特性,实现了帧内比特的优化分配。实验结果表明,该分配方案的BD-Rate性能平均减少了3.70%,在传输带宽确定的情况下,较原始的比特分配方案有更好的性能表现。