一种宏块级码率控制方案.doc
《一种宏块级码率控制方案.doc》由会员分享,可在线阅读,更多相关《一种宏块级码率控制方案.doc(4页珍藏版)》请在三一文库上搜索。
1、文章编号:10028692(2010)06-0023-03一种宏块级码率控制方案*实用设计程飞,邹雪妹,滕国伟,王国中(上海大学 通信与信息工程学院,上海 200072)【摘 要】 主要针对现有的码率控制方案在场景变化和运动剧烈的情况下控制不准的缺陷和复杂度过大不适于实际运用的情况,提出了一套新的码控方案,利用当前宏块与前一宏块的相关性和熵编码中的一些特性,巧妙地克服了“蛋鸡悖论”,并将其在 JM86 平台上实现。 实验结果表明,与 JM86 标准代码中的码率控制算法 JVT-G012 相比,该算法不仅在控制精度上大约提高了 0.76 kbit/s,而且峰值信噪比平均提高了 0.013 dB,
2、同时还较好地控制了输出码率和峰值信噪比的波动。【关键词】 视频编码;码率控制;场景变化;模式选择【中图分类号】 TN919.81【文献标识码】 AMacroblock Layer Rate Control AlgorithmCHENG Fei, ZOU Xue-mei, TENG Guo-wei, WANG Guo-zhong(School of Communication and Information Engineering, Shanghai University, Shanghai 200072, China )【Abstract】 In this paper, a new rate
3、control method is proposed which aims to overcome the disadvantages of existing methods,including occurrence of inaccurate control when scenes change and tempestuous movement, and too large complexity that is not suitable for practical application. The proposed algorithm makes use of the correlation
4、 of the current and former macroblocks to overcome the egg -chicken paradox, and has been implemented in JM86 (H.264/AVC). The experimental results show that, compared with JVT -G012 in H.264, the proposed method gains 0.76 kbit/s in control precision and 0.013 dB in PSNR in average. Besides, the fl
5、uctuation on bit and PSNR are precisely controlled.【Key words】 video coding; rate control; scene change; mode selection引言对于视频通信,由于通信带宽有限,需要对视频编码比特数去编 QP。 QP 越大,不为零的数越多,所耗的比1特数就越多,PSNR 值就会相应降低,图像质量也就相应变差。 所以宏块级码控方案应该尽量减少不必要的比特数浪费,以求在控制精度的同时有较高的图像质量。码率进行控制,以保证信道带宽的充分利用和在接收端有良好和稳定的接收质量。现有的视频压缩标准都对其宏块级码
6、率控制算法在 CAVLC 中对 DCT 系数采用游程编码,2进行了广泛的研究。 针对不同的应用场合,专家们提出了多种码率控制策略 , 较为经典的算法有 :MPEG -2 的 TM5、MPEG -4 的 VM8 1、H.263 的 TMN8 2, 以 及 H.264/ AVC 中采用的 JVT-G012 等码率控制算法3。 JVT-G012 算法对于宏块级码率控制,在实际实现中,不仅需要保存而游程编码主要是对零的游程长度和非零数进行编码, 所以在一定程度上游程长度和非零数可以反映出对 DCT 系数编 码所耗的比特数。 因此,可以利用 DCT 系数量化后零的 游程和非零数来预测出 DCT 系数编码
7、所耗的比特数4。 宏块的头信息主要包括宏块类型、参考索引、运动向量差 值、编码块模式、量化参数差值等,其中只有运动向量差每个宏块的相关参数,而且每个宏块在编码之前都要进行参数的更新并求解二次方程,计算复杂度较高,不能很好地满足实际应用的需要。如果能在 RDO 模式判别前可以预测出当前帧的编值是随着情况的不同而大量变化的,其他参数所用比特码复杂度、计算出达到目标比特数所需的量化级当然最数基本上相对固定5。 本文用运动向量的个数和运动向量差值的非零数预测宏块头比特数。 但在 H.264 编码中不 管是要得到游程长度和非零数, 还是要得到运动向量差 值都必须先确定量化参数,这就是所谓的“蛋鸡悖论”。
8、 本好,但在 RDO 模式判决之前能得到的信息很少,主要是利用与参考宏块的相关性来预测,这在序列变化剧烈和场景发生变化的情况下很难预测准确。宏块级码控与帧级码控相比,优点当然是控制准确,缺点就是要花费很多*上海市信息化委员会项目(沪信息委产2007212 号)断)和量化。 若量化参数经常发生变化,不仅码控复杂度(1) 使用 JVT-G012 的方案为 GoP 和帧分配目标比特数 Frbits;(2) 宏块目标比特数 MBtbits 的分配主要由先前宏 块所耗比特数 Src_bits 和剩下多少个宏块 Units 决定MBtbits= (Frbits-Src_bits)/Units2) 当前宏块
9、所耗比特数的预测DCT 系数所耗比特数 TBmb(qp)的预测TBmb(qp)=aXmb(qp)+bYmb(qp)+cZ(mb)式中: Xmb(qp)为 DCT 系数量化后非零数的个数; Ymb(qp)为 DCT 系数量化后零的游程长度和; Zmb(qp)为量 化后 AC 系数非零数的和。宏块头所耗比特数 HBmb(qp)的预测HBmb(qp)=mMVn(qp)+nMVDnz(qp)式中: MVn(qp)为运动向量的个数; MVDnz(qp)为运动 向量差值非零的个数。计算预测的宏块比特数 TBmb(qp)+HBmb(qp) 与宏 块分配的目标比特数 MBtbits 两者的差值Difbits=
10、TBmb(qp)+HBmb(qp)-MBtbits并与阈值 THMAX 比较:若 abs(Difbits)THMAX),DeltaQP=1, 否则 DeltaQP=0;若(Difbits0),QP+=DeltaQP,否则 QP-= DeltaQP。可以通过调节阈值THMAX和系数 a,b,c 来实现在保证 精度的情况下,充分利用比特数提升图像质量。会大大提升,而且需要消耗大量比特数对 QP 编码。因此在保障控制准确的基础上,应尽量减少量化参数的变化,避免不必要的比特数浪费,提高图像质量。本文的码率控制算法除每个 GoP 中的第一个 P 帧 外,对所有其他帧间预测的帧进行控制。 如果对每个 Go
11、P 的第一个 P 帧也采用相同的码率控制算法, 则由于 P 帧图像和 I 帧图像在编码特性上的差异,码率控制会有较大误差,因此沿用 JVT-G012 的方法,对于每个 GoP 中 I帧和第一个 P 帧采用预定义的量化参数进行编码,码率控制只对每个 GoP 的第二个 P 帧开始的所有帧间预测图像进行控制。 此外,在 GoP、帧级目标码率分配上,本文算 法使用的是 JVT-G012 的方案。本文算法主要包括以下几步:1) 根据带宽和输入序列格式确定一组系数(a,b,c)和阈值 THMAX;为宏块分配目标比特数;2)3) 采用 JVT-G012 的方法用预定义的量化参数对 I帧和第一个 P 帧进行编
12、码;4) 从第二个 P 帧开始,第一个宏块的量化参数使用 前一帧的平均量化参数;5) 根据运动向量的差值确定当前宏块头的比特数;6) 根据亮度和色度量化后零的游程长度和、非零数 的数目及非零数的和来预测当前宏块残差值产生的比 特数;7) 根据 5),6)两步,预测当前宏块有可能产生的比 特数并与目标比特数进行比较, 确定当前宏块的量化参 数是否发生变化, 若变化则用新的量化参数重新进行模 式判决和量化,否则继续进行编码;8) 若当前宏块模式是帧内和跳过模式,量化参数与 前一宏块量化参数保持一致。实验结果和分析在 JVT 的校验模型 JM86 上实现了笔者提出的码率4控制策略,进 行 比 较 。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 宏块级码率 控制 方案
链接地址:https://www.31doc.com/p-5121249.html