您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 随着多媒体数据的极大丰富以及网络和终端设备的多样化,可伸缩视
1一种面向SVC的码率控制算法徐龙1,高文1,2,季向阳1,赵德斌3(1中国科学院计算技术研究所,北京100080;2北京大学数字媒体研究所,北京100871;3哈尔滨工业大学,哈尔滨150001)摘要:H.264/AVC可伸缩性扩展视频编码系统(JSVM)提供了一种可伸缩视频编码(SVC)的解决方案,然而它本身并没有提供一种有效的码率控制算法。本文基于JSVM的分层预测结构,提出了一种全新的码率控制算法。首先在码率分配方面,考虑到分层B帧预测(或运动补偿时间域滤波(MCTF))结构,本文提出了一种分层的码率分配方案;其次,针对不同类型和不同时间分解层各自的统计特性,分别为它们设计了不同的率失真(R-D)模型。实验结果表明,本算法能够有效地控制码率,使得目标码率跟实际产生码率之间的偏差最大不超过2%;同时本算法较大地提高了解码图像的质量,使得峰值信噪比(PSNR)在低码率端可提高1dB;另外,JSVM中通过不断调整量化参数(QP)使得实际产生的码率逐次逼近目标码率,较之这种尝试式的码率控制算法,本文基于模型的码率控制是在一次编码中产生最终的目标码率,从而大大降低了计算复杂度。关键字:可伸缩编码;码率控制;率失真优化;率失真模型基金项目:北京市自然科学基金(No.4041003);国家自然科学基金(No.60333020);国家科技攻关计划(No.2002BA906A35);国家863计划(No.2004AA119010)。徐龙,男,1977年生,博士,主要研究领域:可伸缩视频编码,3D小波视频编码,图像处理,E-mail:lxu@jdl.ac.cn,通信地址:北京市海淀区上地东路1号盈创动力A座701室,联系电话:58858300-320;高文,男,1956年生,博士,教授,博士生导师,主要研究领域:多媒体数据压缩,图像处理,计算机视觉,多模式接口,人工智能,虚拟现实等;季向阳,男,1976年生,博士,主要研究领域:视频编码,图像处理,3D小波视频编码;赵德斌,男,博士,教授,博士生导师,主要研究领域:视频压缩,图像处理,模式识别。本文投稿日期:2006年9月,修改:2008年6月。21引言随着计算机、通信和各种娱乐媒体的交互、融合,如今各种数字媒体应用通过通信网络连为一体。在网络环境里,比如互联网,各种终端系统可能具有不同的再现能力和应用需求。所以为了某种特定的应用而一次压缩的码流并不是令人满意和有效的,对一些特定的用户或设备而言,甚至是没有意义的。解决这个问题的一个有效的方法就是可伸缩编码。在可伸缩编码里,为低端应用而产生的低码率码流作为子集嵌入在为高端应用而产生的高码率码流中。这样,对于一次性压缩的高码率码流,通过选择性地传输和解码其中的部分码流,就能够得到适用于多种应用和多种设备的解码结果。可伸缩功能主要包括信噪比、空间分辨率、时间分辨率和复杂度可伸缩性。目前,基于H.264可伸缩扩展的视频编码系统[1]被采纳作为可伸缩视频编码的标准,称为JointScalableVideoModel(简称JSVM)。JSVM在时间域上采用基于运动补偿时域滤波(MCTF)的开环预测或分层B帧(HierarchicalB)的闭环预测[2-3]。以一组图像(GOP)为单位,经过分层B帧预测(或MCTF[4-6]),产生一组不同频率的子带图像(subband),包括低通(low-pass)子带和若干高通(high-pass)子带,子带的编码采用H.264/AVC的方法。通过依存选择性地传输或解码部分子带(频率从底到高)实现时间域分辨率的可伸缩性;为了取得空间域可伸缩性,对原始视频序列经过多次下采样得到多个分辨率的视频序列,这些序列经过去相关一起压缩到一个码流文件,实际应用环境中选择性地传输或解码相应分辨率的序列可以获得多个空间分辨率的解码图像;信噪比(SNR)可伸缩性通过传统的FGS技术实现。JSVM提供了可伸缩编码的有效解决方案,通过一次编码产生的高码率码流,可以根据用户需求和应用环境,得到各自时域(帧率)、空域和信噪比的解码。但是这种可分级毕竟是有限的,不可能得到任意连续(无缝的)分辨率的解码,只有码率控制可以产生任意精细程度的码流,并且,获得可伸缩码流本身需要码率控制。除此之外,码率控制涉及的一系列优化策略能够有效地提高编码的性能。总之,作为任何编码标准的应用,码率控制是不可缺少的,同样对于JSVM码率控制的研究价值是肯定的。传统的码率控制模型有MPEG2的TM5[7],H.263的TMN8[8]和TMN12[9]以及MPEG4的VM8[10]等。对于H.264/AVC,一种基于VM8改进的码率控制算法[11]和一种基于率失真优化和假设参考模型(HRD)的码率控制算法[12],被采纳并广泛应用。码率控制不但涉及量化参数的选择而且涉及最优模式决策和最优码率分配,同时还应该考虑解码器的溢出。首先,率失真模型表示码率和量化参数之间的关系,给定目标码率,根据率失真模型计算编码所用的量化参数从而使得实际编码所用的比特数尽可能地接近目标码率。例如在TM5中,采用一个简单的基于缓冲区变化的线性率失真模型;而H.264采用了更为精确的二次率失真模型;也有根据量化参数和量化后零系数所占比例的关系建立率失真模型,称为ρ域模型。其次,码率控制通常跟率失真优化紧密地联系在一起,二者互为一个矛盾统一体。另外,在广泛运用的帧间预测编码里,运动估计产生的运动向量和残差信息之间需要一个折中,通常是用拉格朗日乘数法来实现此率失真优化的。率失真优化通过选择最优编码模式和最优码率分配取得最优的编码性能。在当前的JSVM中,码率控制从给定的初始量化参数出发,通过二分搜索算法得到最终的量化参数。这种算法产生的多次循环增加了时间复杂度,并且算法本身没有考虑到编码图像(或宏块)的属性。本文针对JSVM提出了一种全新的基于图像内容的自适应码率控制算法,码率的分配和率失真模型的构造都充分考虑到了JSVM特殊的分层结构。本文的结构安排如下,第二部分展示了部分测试序列的率失真性能曲线,以及在此统计结果上建立的率失真模型,第三部分详细描述了分层的码率分配算法,实验结果和分析在第四部分,最后,第五部分对全文进行了总结。32分层率失真模型码率控制所要达到的一个目标是:1)决定适当的量化参数使得所编码的比特流满足给定的目标码率;2)解码图像的失真最小。对于1),由于编码中码率的产生由量化参数决定,而实际应用中往往给定码率,这就需要以给定的码率求得相应的量化参数,这个问题的解决取决于率失真模型,通常率失真模型是一个码率和量化参数的方程。在JSVM分层B帧的预测结构(或MCTF)中,产生了一系列特征(主要是频率)不同的帧,包括低通子带(I、P帧)和不同层上的高通子带(B帧)。我们对一些序列作了细致的统计分析,得到分别针对于不同类型帧的率失真性能曲线(如图1所示)。实验的目的是给不同类型的帧指定不同的率失真模型,从结果可以看出,B帧的率失真性能的确跟I帧和P帧相差很大,I帧和P帧亦有较大的差别。所以我们提出的解决方案是:1)给定I帧和P帧不同的率失真模型,模型参数在相邻若干个GOP的各自帧类型范围内更新;2)给定不同层次B帧不同的率失真模型,模型参数除了在相邻GOP间的相应层次的帧间更新外,还在本层内帧间更新;3)最底层B帧的量化参数由次底层插值得到,建议不使用码率控制;4)关于I、P和B帧采用的率失真模型的类型为:I帧和P帧分别采用二次率失真模型,而B帧采用线性的率失真模型。图1中“IFrames”代表I帧的量化步长与编码的比特数之间的关系,“PFrames”代表P帧的量化步长与编码比特数之间的关系,二者的率失真曲线比较接近,而与“BFrames”(代表B帧的量化步长与编码比特数之间的关系)相差较远。图1中“polyIFrames”、“polyPFrames”和“polyBFrames”分别代表I、P和B帧率失真性能的二次拟合曲线,可以看出三者率失真性能的拟合都非常符合二次方程,相关性在0.99以上,所以在码率控制中使用二次率失真模型能够很好地控制码率,使得实际产生的码率与目标码率尽可能匹配。然而,二次率失真模型的更新比较复杂,并且相对线性模型需要更多的样本点,故而对于B帧,我们选择了线性率失真模型。就B帧而言,我们做了一系列测试,统计得出B帧使用线性模型,相关性在0.99以上,而I、P帧使用线性模型相关性只在0.97以上,所以在我们提出的码率控制中,所有B帧使用线性率失真模型。图1中只给出了最高层B帧(“Foreman”和“Football”)的率失真曲线以及它的线性拟合,可以看出其最高层率失真性能曲线非常符合线性模型,相关性达到0.99。基于传统H.264/AVC码率控制的率失真模型,本文对于I帧和P帧的二次率失真模型为:22221QPcQPcR(1)而对于各个时域分解层上的B帧,实验统计数据结果表明可以用简单的线性曲线拟合,其线性模型为:QPcR2(2)其中R为分配给当前帧(或宏块)除去编码头信息(headerbits)的比特数,2为当前帧(宏块)的MAD(meanabsolutedistortion),QP为当前帧(宏块)的量化参数,c,c1和c2是常数。时域分解的B帧在各自层次上使用各自的率失真模型,模型参数在各自层次的帧上更新,其中二次模型参数的更新使用线性回归方法[13-14],一次模型的更新简单地使用若干历史数据和当前数据的加权平均。4Foreman(QCIF)y=-2285682.3687x2+800833.4310x+964.7772R2=0.9999y=-1222192.0817x2+575627.4098x-606.9620R2=0.9998y=402439.3486x2+184971.6233x+2294.1736R2=0.9991y=228940x+1549.8R2=0.997101000020000300004000050000600007000000.020.040.060.080.10.121/QstepBitsIFramesPFramesTopmostBFramesPoly.(IFrames)Poly.(PFrames)Poly.(TopmostBFrames)Linear(TopmostBFrames)(a)Foreman(QCIF)Football(QCIF)y=-4122178.3498x2+1153013.4480x-375.7308R2=0.9997y=-3706922.5581x2+1053762.9363x-613.7847R2=0.9997y=-1612618.0170x2+650019.7615x+1296.9343R2=0.9997y=473834x+4279.7R2=0.99220100002000030000400005000060000700008000000.020.040.060.080.10.121/QstepBitsIFramesPFramesTopmostBFramesPoly.(IFrames)Poly.(PFrames)Poly.(TopmostBFrames)Linear(TopmostBFrames)(b)Football(QCIF)图1.率失真性能曲线及其线性、二次曲线拟合3分层的码率分配策略在JSVM的时域分解中,有两种不同的分解方式:1)MCTF,它是一个倒立的金字塔结构,低通子带处于金字塔的最底层,是原始若干帧低通信息的汇聚,这里的I、P帧都属于时域分解的低通子带;2)HierarchicalB,它是一个金字塔结构,最底层为最高频B帧,从低到高,频率依次降低,其对整个编码性能的贡献也越来越大,金字塔的顶端为帧内编码的I帧或帧间前向预测编码的P帧。如图2(a)所示3级MCTF,8帧原始图像经过3级5MCTF分解得到1帧低通子带(I帧或P帧)和分布在3级上的高通子带;图2(b)所示为4层HierarchicalB分解,原始16帧经过4级HierarchicalB分解得到一个I
本文标题:随着多媒体数据的极大丰富以及网络和终端设备的多样化,可伸缩视
链接地址:https://www.777doc.com/doc-1317647 .html