[发明专利]一种恒定码率的控制方法有效
申请号: | 200710172272.X | 申请日: | 2007-12-13 |
公开(公告)号: | CN101184239A | 公开(公告)日: | 2008-05-21 |
发明(设计)人: | 许昌满;李国平 | 申请(专利权)人: | 上海广电(集团)有限公司中央研究院 |
主分类号: | H04N7/26 | 分类号: | H04N7/26;H04N7/24 |
代理公司: | 上海思微知识产权代理事务所 | 代理人: | 屈蘅;李时云 |
地址: | 200233*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种恒定码率的控制方法,所述方法把当前图像划分成若干个图像组,对每个图像组采用帧级码率控制和宏块级码率控制来对图像进行编码。本发明提供的恒定码率控制方法,控制精度高,输出的码流波动小,而且编码主观图像质量好,计算复杂度很低,适合各种软件和硬件编码的应用。 | ||
搜索关键词: | 一种 恒定 控制 方法 | ||
【主权项】:
1.一种恒定码率的控制方法,所述方法基于调节视频图像码流的量化参数值来实现码率控制,所述码流包括I帧、P帧和B帧,其特征在于,所述码率控制方法通过以下步骤实现:步骤1、把视频图像划分成若干个图像组GOP,每个GOP是一组时间上连续的图像,其目标比特数记为Bitgop,Bit gop = ( 1 + N P + N B ) × ( R F ) + Bit less , ]]> 上式中NP和NB分别为每个GOP中的B帧和P帧图像的帧数,R为信道目标传输码率,F为输出帧率,Bitless为上一个GOP编码后剩余的比特数,Bitless的初始值为0;步骤2、实现帧级码率控制,其进一步包括:步骤2.1、计算当前B帧或P帧能够得到的比特数为Bitcur_pic=λcur×(Bitgop-Bitcur_gop_used),上式中Bitcur_gop_used为当前GOP已经使用的比特数,λcur是当前图像的加权系数,根据当前图像B帧或P帧的复杂度进行计算;步骤2.2、分别计算每帧中第i个P帧或B帧的量化参数QPP_i或QPB_i,i=1,2,3......;步骤2.2.1、计算QPP_i:WP P _ i = α × QP ref + η × L 0 - 2 n L 0 - 2 , ]]> n=1,2,...,L0-1上式中,α为当前帧的编码比特Bitcur_pic与参考帧的编码比特Bitref_pic的比,即α = Bit cur _ pic Bit ref _ pic ; ]]> QPref为P帧的参考帧的量化参数,L0为GOP的长度,η为经验值,一般取1.8;步骤2.2.2、计算QPB_i:用L表示I帧与P帧之间或P帧与P帧之间包含的B帧数量,设B帧参考的两帧图像的量化参数分别为QP1和QP2;则当L大于1时,QP B _ i = QP 1 + Δ + max { min { ( QP 2 - QP 1 ) ( i - 1 ) L - 1 , 2 ( i - 1 ) } , - 2 ( i - 1 ) } ]]> 设定GOP中的第1个I帧的QP和第1个P帧的QP值均为QP1,则QPB_1=QP1+Δ;Δ是QPB_1与QP1的差,Δ取值如下:
当L等于1时,QPB_i=QP1+2;步骤2.3、根据每一帧的量化参数,重新对每一帧进行编码,直至帧结束;若帧未结束,则跳到步骤1;步骤3、实现宏块级码率控制,其进一步包括:步骤3.1、计算宏块的平均绝对量化失真MAQD,记为MAQDMB,MAQD MB = 1 N Σ i = 0 N - 1 | C i | | C i | ≤ β × step 0 | C i | > β × step ]]> 上式中,Ci为宏块的残差DCT变换后的第i个DCT系数,N为一个宏块包含的像素个数,β是实验值,一般取0.98,step是宏块的量化步长;步骤3.2、计算当前宏块的平均绝对量化失真,记为MAQDMB_cur,由当前宏块左边相邻宏块的MAQD和参考帧的相应位置的宏块的MAQD加权得到,左边相邻宏块和参考帧的相应位置的宏块的MAQD分别记为MAQDMB_left和MAQDMB_ref,则:
步骤3.3、计算当前宏块的目标比特,记为BitMB_cur,Bit MB _ cur = θ × MAQD MB _ cur AVG ( MAQD ) × Bit cur _ pic N ]]> 上式中,θ是实验值,由宏块类型和帧类型确定;N是当前帧包含的宏块数目,一般可取0.93;Bitcur_pic为当前帧分配的比特;AVG(MAQD)是当前已经编码的宏块的MAQD的算术平均;步骤3.4、计算当前宏块的量化参数,记为QPMB_cur,QPMB_cur=λ×QPMB_prev+ΔQP上式中,λ表示当前宏块的编码比特BitMB_cur与相邻的已经编码宏块的编码比特的平均值AVG(BitMB)的比,计算公式为λ = Bit MB _ cur AVG ( Bit MB ) , ]]> 其中AVG ( Bit MB ) = 1 i MB _ left + i MB _ upleft + i MB _ up + i MB _ upright ( Bit MB _ left + Bit MB _ upleft + Bit MB _ up + Bit MB _ upright ) ]]> BitMB_left、BitMB_upleft、BitMB_up和BitMB_upright分别是待编码宏块的左边、上左边、上边和上右边相邻已经编码宏块的比特;iMB_left、iMB_upleft、iMB_up、iMB_upright的取值如下确定:![]()
![]()
![]()
QPMB_prev为当前编码宏块前一个已经编码的宏块的量化参数;ΔQP为量化参数的调整量,ΔQP取值由ω的范围确定,ω = MAQD MB _ cur AVG ( MAQD ) , ]]>
步骤3.5、根据宏块级的ΔQP调整量化参数,完成当前宏块的编码;步骤3.6、判断当前图像所有宏块编码是否完成,若宏块编码已完成,则跳到步骤2;若宏块编码未完成,则跳到步骤3.1;步骤4、根据步骤2更新当前图像的编码量化参数,完成当前帧编码;判断当前图像组GOP中所有的帧图像的帧编码是否完成,若果已完成,则继续步骤5,否则,更新Bitless,跳到步骤2.1;步骤5、如果当前图像的所有图像组的编码均已完成,则结束,否则跳到步骤1。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海广电(集团)有限公司中央研究院,未经上海广电(集团)有限公司中央研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200710172272.X/,转载请声明来源钻瓜专利网。
- 上一篇:高效节能型环保秸秆气化炉
- 下一篇:一种模拟电池三电极装置