一种宏块级码率控制方案*
2010-06-25邹雪妹滕国伟王国中
程 飞,邹雪妹,滕国伟,王国中
(上海大学 通信与信息工程学院,上海 200072)
1 引言
对于视频通信,由于通信带宽有限,需要对视频编码码率进行控制,以保证信道带宽的充分利用和在接收端有良好和稳定的接收质量。现有的视频压缩标准都对其进行了广泛的研究。针对不同的应用场合,专家们提出了多种码率控制策略,较为经典的算法有:MPEG-2的TM5、MPEG-4 的 VM8[1]、H.263 的 TMN8[2], 以 及 H.264/AVC中采用的JVT-G012等码率控制算法[3]。JVT-G012算法对于宏块级码率控制,在实际实现中,不仅需要保存每个宏块的相关参数,而且每个宏块在编码之前都要进行参数的更新并求解二次方程,计算复杂度较高,不能很好地满足实际应用的需要。
如果能在RDO模式判别前可以预测出当前帧的编码复杂度、计算出达到目标比特数所需的量化级当然最好,但在RDO模式判决之前能得到的信息很少,主要是利用与参考宏块的相关性来预测,这在序列变化剧烈和场景发生变化的情况下很难预测准确。宏块级码控与帧级码控相比,优点当然是控制准确,缺点就是要花费很多比特数去编ΔQP。ΔQP越大,不为零的数越多,所耗的比特数就越多,PSNR值就会相应降低,图像质量也就相应变差。所以宏块级码控方案应该尽量减少不必要的比特数浪费,以求在控制精度的同时有较高的图像质量。
2 宏块级码率控制算法
在CAVLC中对DCT系数采用游程编码,而游程编码主要是对零的游程长度和非零数进行编码,所以在一定程度上游程长度和非零数可以反映出对DCT系数编码所耗的比特数。因此,可以利用DCT系数量化后零的游程和非零数来预测出DCT系数编码所耗的比特数[4]。宏块的头信息主要包括宏块类型、参考索引、运动向量差值、编码块模式、量化参数差值等,其中只有运动向量差值是随着情况的不同而大量变化的,其他参数所用比特数基本上相对固定[5]。本文用运动向量的个数和运动向量差值的非零数预测宏块头比特数。但在H.264编码中不管是要得到游程长度和非零数,还是要得到运动向量差值都必须先确定量化参数,这就是所谓的“蛋鸡悖论”。本文的方法是先利用前一宏块的量化参数进行模式判决和量化,然后根据量化后的信息估计当前宏块可能产生的比特数,并与目标比特数进行比较,来判断当前宏块的量化参数是否变化,若变化则用新的量化参数重新进行模式判决 (只需用新的QP确定系数λ重新进行比较和判断)和量化。若量化参数经常发生变化,不仅码控复杂度会大大提升,而且需要消耗大量比特数对ΔQP编码。因此在保障控制准确的基础上,应尽量减少量化参数的变化,避免不必要的比特数浪费,提高图像质量。
本文的码率控制算法除每个GoP中的第一个P帧外,对所有其他帧间预测的帧进行控制。如果对每个GoP的第一个P帧也采用相同的码率控制算法,则由于P帧图像和I帧图像在编码特性上的差异,码率控制会有较大误差,因此沿用JVT-G012的方法,对于每个GoP中I帧和第一个P帧采用预定义的量化参数进行编码,码率控制只对每个GoP的第二个P帧开始的所有帧间预测图像进行控制。此外,在GoP、帧级目标码率分配上,本文算法使用的是JVT-G012的方案。
本文算法主要包括以下几步:
1)根据带宽和输入序列格式确定一组系数(a,b,c)和阈值THMAX;
2)为宏块分配目标比特数;
3)采用JVT-G012的方法用预定义的量化参数对I帧和第一个P帧进行编码;
4)从第二个P帧开始,第一个宏块的量化参数使用前一帧的平均量化参数;
5)根据运动向量的差值确定当前宏块头的比特数;
6)根据亮度和色度量化后零的游程长度和、非零数的数目及非零数的和来预测当前宏块残差值产生的比特数;
7)根据5),6)两步,预测当前宏块有可能产生的比特数并与目标比特数进行比较,确定当前宏块的量化参数是否发生变化,若变化则用新的量化参数重新进行模式判决和量化,否则继续进行编码;
8)若当前宏块模式是帧内和跳过模式,量化参数与前一宏块量化参数保持一致。
3 宏块级目标比特数的分配和当前宏块所耗比特数的预测
现有的码控方案主要包括两个方面,一个是根据带宽分配目标比特数,另一个就是建立一个量化参数与目标比特数的模型,然后根据这个模型计算出达到目标码字所需的量化级[6-8]。本算法并没有建立一个RQ模型,而是通过前一量化参数进行模式判决和量化,再通过量化后信息预测当前宏块有可能产生的比特数并与目标比特数比较,来判断当前宏块的量化参数增加、减少或不变。
1)宏块级目标比特数的分配
(1)使用JVT-G012的方案为GoP和帧分配目标比特数Frbits;
(2)宏块目标比特数MBtbits的分配主要由先前宏块所耗比特数Src_bits和剩下多少个宏块Units决定
2)当前宏块所耗比特数的预测
DCT系数所耗比特数TBmb(qp)的预测
式中:Xmb(qp)为DCT系数量化后非零数的个数;Ymb(qp)为DCT系数量化后零的游程长度和;Zmb(qp)为量化后AC系数非零数的和。
宏块头所耗比特数HBmb(qp)的预测
式中: MVn(qp)为运动向量的个数; MVDnz(qp)为运动向量差值非零的个数。
计算预测的宏块比特数 TBmb(qp)+HBmb(qp)与宏块分配的目标比特数MBtbits两者的差值
并与阈值 THMAX比较:若 abs(Difbits)>THMAX),DeltaQP=1,否则 DeltaQP=0;若(Difbits>0),QP+=DeltaQP,否则 QP-=DeltaQP。
可以通过调节阈值THMAX和系数a,b,c来实现在保证精度的情况下,充分利用比特数提升图像质量。
4 实验结果和分析
在JVT的校验模型JM86上实现了笔者提出的码率控制策略,并和JVT提案中的码率控制策略JVT-G012进行比较。实验使用标准的CIF测试序列:news,bus,foreman,mobile,football和 tempete。 实验条件按照实际应用要求确立,帧率为25f/s(帧/秒),给定第一个I帧的QP为28,其他测试条件如表1。实验结果如表2所示。
由表2可见,本文的码率控制算法码率控制得很好,PSNR值也很高。
表1 测试条件
表2 两种算法码率控制效果对比
为了更清楚地表明这两种码率控制的效果,图1给出两种方法下foreman和tempete各帧的PSNR,本算法PSNR变化比JVT-G012平缓,具有较高的主观视觉质量。图2给出了两种方法下foreman和tempete各帧的比特数,本算法各帧所产生的比特数与目标比特数的匹配情况比JVT-G012更好,更精确地计算出了达到目标比特数所需的量化级。
5 结语
图2 foreman和tempete序列两种方法下的每帧比特数波动曲线比较
本文所述码率控制算法先用前一宏块的量化参数进行模式判决和量化,然后使用量化之后的信息估计当前宏块有可能产生的比特数,因为是利用当前宏块量化后的信息来估计当前宏块有可能产生的比特数,估计准确性比较高。而且本算法只是利用已有的信息进行简单的线性运算来判断当前宏块量化参数是否发生变化,然后在极少量化参数发生变化的宏块中用新的量化参数重新确定系数λ,重新进行模式判决和量化,计算复杂度低,大大加快了编码速度。本算法是一种建立在简单率失真模型基础上的宏块级算法。该算法充分利用了宏块的实际编码特性,在保证码率控制准确性和图像质量的前提下,大幅提高了码率控制速度。
[1]LEE H J,CHIANG T.Scalable rate control for MPEG-4 video[J].IEEE Trans.Circuits and Systems for Video Technology,2000,10(6):878-894.
[2]RIBAS-CORBERA J,LEI S.Rate control in DCT video coding for low-delay communications[J].IEEE Trans.Circuits and Systems for Video Technology,1999,9(1):172-185.
[3]LI Z G,PAN F,LIM K P.Adaptive basic unit layer rate control for JVT,JVT-GO12[C]//Joint Video Team of ISO/IEC and IIU 7th Meeting.Pattaya,Thailand:JVT,2003.
[4]CHAN D-Y,CHANG C-Y.Low-complexity two-stage rate-control with succinct DCT-abundance modeling and consistence enhancement for low-delay video coding[R].JVCI-08-371.
[5]ISO/IEC JTC1/SC29/WG11 and ITU-T SG16 Q.6,H.264/MPEG-4 AVC Reference Software Manual[S].2005.
[6]TSAI J C,HSIEH C H.Modified TMN8 rate control for low-delay video communication[J].IEEE Trans.Circuits and Systems for Video Technology,2004,14(6):864-868.
[7]CHIANG T,ZHANG Y.A new rate control scheme using quadratic rate distortion model[J].IEEE Trans.Circuits and Systems for Video Technology,1997,7(1):246-250.
[8]WEI J,SOONG B H,LI Z G.A new rate-distortion model for video transmission using multiple logarithmic functions[J].IEEE Signal Processing Letters,2004,11(8):694-697.