一种自适应的码率控制方法

文档序号:7687413阅读:181来源:国知局
专利名称:一种自适应的码率控制方法
技术领域
本发明涉及一种视频编码的码率控制方法,更准确的说,涉及一种根据应 用模式的不同,按照图像复杂度或信道容量来自适应调整编码器量化参数的码 率控制方法。
背景技术
对于视频通信而言,由于通信信道带宽有限,需要对视频编码的码率进行控制,来保证编码码流的顺利传输和信道带宽的充分利用。目前&264码率控 制方法的提案主要有2个JVT-F086中MPEG-2TM5改进版本,和JVT-G012中提 出的用流量往返模型来分配每个基本单元目标比特数,并在宏块层编码采用二 次率失真函数计算量化参数的算法。但是算法实现起来非常复杂,特别在硬件 实现的代价很大。因此,我们需要设计一种适合软硬件设计,并能达到良好主 观效果的码率控制方法。发明内容本发明的目的在于针对现有技术的不足,提供一种自适应的码率控制方法 本发明的目的是通过以下技术方案来是实现的, 一种自适应的码率控制方 法,适用于固定码率模式和可变码率模式,包含以下步骤(1) 对之前已编码各帧的量化参数2P求加权平均值,并转化为量化縮放因子(2) 根据上一帧匹配代价来预测当前帧的复杂度,并用经验公式计算出对应该 复杂度的图像理论上应使用的^^/e,.,作为当前帧的^o^,初始值;(3) 根据实际的已编码比特数与预期的目标比特数间的差值,结合事先设定的 可容忍的码率浮动范围,修正^^/e,.;(4) 将当前帧的^c^,.限制在前一帧^c——t的
范围内,从而避免由于,。/e,和《""/e,一偏离过大引起的连续图像间的质量跳变;(5) 由虚拟缓存的满度来修正^o^;(6) 预测当前帧在量化步长取值为^c。/e,时将得到的编码比特数,从而推测出 当前帧编码结束后的虚拟缓存满度是否会超出预期范围,以此修正^ca/e,;(7) 将经过一系列修正的^ca/e,.限制在LMIN和LMAX之间,[LMIN, LMA幻是用 户设定的量化步长最大变化范围;(8) 将步骤(7)所得的^ca/e,利用式^^12.0 + 6.0xlog(^c。/e/0.85)/log(2.0),转化 为当前帧的量化参数!3尸;本发明的有益效果是,1. 无浮点运算,计算相对简单,适合硬件设计;2. 根据不同的应用场合以及视频源的特征自适应地调整量化步长,达到码率的 合理分配;3. 在长时间黑屏等特殊视频源持续一段时间后,仍能对正常视频源进行准确的 码率控制;4. 加入量化步长变化幅度限制,有效地防止了连续图像间的质量跳变,实现平 滑过渡。


图l为固定码率控制流程图; 图2为可变码率控制流程图。
具体实施方式
下面结合附图,对本发明做进一步的描述。如图1描述的固定码率模式下的码率控制流程图,图2是可变码率控制的流程图,两个流程图有很多类似的计算方法1. 本发明的一种码率控制方法,设置了两种工作模式,在对码率要求不高的视 频压縮存储应用中,选择可变码率,用多的比特数压縮复杂图像,少的比特数压缩简单图像,在保证图像高质量的前提下充分利用存储空间;而在视频 监控等实时应用中,则采用固定码率,来降低网络传输带宽的压力.2. 如果当前的编码帧为I帧并且前面一帧为非I帧的情况下,如图1的步骤1 和图2的步骤8,将之前所有己经编码帧的量化参数进行加权平均,所得的结果作为当前帧的初步2P,并转化为量化縮放因子^;"/e,加权平均算法如下式(1) (5):肌=—肌/ ace — (1)acc —肌=acc —肌^ x 0.95 +肌—
(2)0.95 + 1 (3)acc—肌=—砂x 0.01 (4)^ca/e = 0.85xpo>v(2.0,(砂—12.0)/6.0) (5)上式的奶表示当前帧的初步2P ,肌-,表示当前编码帧前一帧的实际量化参表示之前所有帧的量化参数的加权累加和,而 cjcc — wowj,为力口权平均因子,初始值fl" —"o削。为0.01;加权平均之后的肌即为当前帧的初步^, 然后按式(5)转换为量化縮放因子^c。/e ;3.如果当前帧为非I帧,或者当前帧为I帧但是前一帧仍为I帧,固定码率控 制与可变码率控制需要分别计算固定码率控制模式下,如图1的步骤2所示,利用上一个己经编码帧的匹配 代价。"来代替当前帧的降采样图像的匹配代价,由经验公式计算出当前帧的 satd,以及对应的^a^,计算公式如式(6) (13)所示,a/e,. = 6/群ed — comp/exzXv, / r她—/acfor;(6)Ww/red — tw"/ /ejd/y,. = s/zo" — /era — cp/x w"7,. / 5/zorf — ferw — cp/;ccownf,.(7)ra/e — ./h加r'. = vva她(5 — 6 to — wz力,./ cp/xr — swm,.(8)■s'/wrf /cm c/ towm,— = Aort — ferm — qp/xs画,一,x 0.5 +爐《(9)(l'0)—6to _ vv/w,. = vra鹏cf — WW — + 6w/ — We(11)c7 /;iT — ram,. = c/7/jtr — ^wot,.—t + ^yco/e"j x 6/",—, / comp/exz'"—,(12)6to,一, min(/cw,一W"",訓OOOO)(13)上述各式中的6"/ —m&表示编码每帧的目标比特数,以6to//ra附e为单位,表示上一帧的实际编码比特数,以bit为单位;"OW—tovw —cp/xs歸,表 示之前己经编码的所有帧^^的加权和,初始值Aort—妙附—cpksww。等于0; Wort —敏m — cpfcccow"^表示力口权平均因子,初始{4 5/zort — fem — cp/;ccow",0等于0; wa她(逢—H^,表示预期的累积编码比特数,初始值为0.01;如果可变码率,如图2的步骤9所示,初步卯直接就等于初始化/""—^,再 按式(5)就可以得出初步的^M/e ;4.图1的步骤3,只在固定码率控制中执行,根据目标比特数w朋W—6to与上一帧实际编码比特数/"^_>"的差值来调整图1步骤2所得量化縮放因子^a^,调整过程如经验公式(14) (16):gwa/e = ^ca/e x ove y cw (14) ow y7證二c/zJ!73(l + (/ast一6to-丽她(i —6刚/a6r — 6w,r, 0.5, 2) (15) a6r —6",r = 0.1x6z7rafe (16) 上述公式中的6"ra^表示目标码率,overy mv被限制在Q. 5禾Q 2之间,c/^3函数的作用在取3个数的中间值;5. 当前帧的量化步长限制在前一帧9^^-,的
范围内,实现量化程度 的平滑变化,如图1的步骤4和图2的步骤10,将初步的量化因子,。/e限 制在上一帧的^c"/e,一的
范围内,请参考式17:《sca/^ = c/z》3(^yra/ ,/ min, , / max,') (17) 对于固定码率和可变码率两种模式对应的/min,,/max,稍有区别对于固定码率控制C^ ,如式(18) (19):f^yo /g,一, /1.26..................................ove/^2W 〉= 0.9 , 、/min,=〗 (18) 一ca/e,一 /1.26.................................ove/^ ow < 0.9f《sra/e,— x 1.26................................ov^/Z誇<=1.1 , 、,m叫— (19) —ra/e"x 1.26...............................ove/y7, 〉1.1对于可变码率控制ra及,如式(20) (21):/ min, = ^ra/e,一i /1,2 (20) / max, = ^c一一, x 1.2 (21)6. 每帧编码结束后,都会根据该帧产生的编码比特数来更新虚拟缓存的满度,. 如图1的步骤5和图2步骤11,由虚拟缓存的满度来对即将编码的一帧的 ^c^,做相应的调整,如果虚拟缓存的满度已经达到或超过警戒状态,可以 考虑丢帧,将当前帧丢弃,调整的方法请参考式(22) (24);grc"/e,'/c/zj 3(2xAw/—,, /》Oze, a:, 1) (22) 6w/ —=Z w/ —ra&-min(/ost—6to, 8000000) (23) ^/*一_/ //0 —5/zex0.5 (24) 上式的^/一&e是开辟的虚拟缓存的大小,以bit为单位;固定码率与可变码率的区别在于式(22)的;c的取值,在固定码率中;c等于0.5,而在可变码率模式下x取0.75,因为可变码率更加注重图像的质量;7. 量化参数砂可以在用户设置的最大范围内变化,如图1的步骤6与图2的步是通过预测当前帧的比特数,来修正^ci,并最终限制在[LMIN, LMA幻之间,修正过程如式(25) (28):根据式25 27,只对^o^进行放大或者保持的操作,当预测当前帧的比特 数大于预期,将^o/e放大,但如式28最终将?咖/e限制在ZJkfW和i:M4X之间, 式25中的x在固定码率下取O. 2,可变码率下为O. 75。8.如图1步骤7与图2步骤13,将最终确定的量化因子<formula>formula see original document page 8</formula>e按式29,转化为 量化参数伊<formula>formula see original document page 8</formula>《p = 12.0 + 6.0 x 1og(^ca/e / 0.85) / log(2.0) (29) 到此,当前帧的量化参数③已经确定,编码器开始编码,直到条件2成立,即 当前帧的编码完成,对虚拟缓存进行更新。以帧为基本计算单位的;每一帧图像开始编码之前先计算当前帧的量化参 数,而不需要对每个宏块都计算量化参数,同一帧内各个宏块的量化参数^是 相同的;在每帧图像编码结束后需要保存当前帧的信息;本发明为保证码率控制参数在某些特殊图像持续一段时间后仍能对随之而 来的正常图像做出迅速的调整,如当码率极低的黑屏持续一段时间后如果不采 用以上方法,会造成虚拟缓存满度和累计已编码比特数过低从而无法在正常图 像到来时给出一个合适的量化参数值从而影响码率控制效果,本发明采用每隔1 秒,对虚拟缓存满度和累计已编码比特数进行复位清零。本发明用移位相减的方法来代替直接的除法操作,设置一个寄存器A,假设 被除数N位,除数B为M位,那么A寄存器的初始低N位存放被除数,高M+1 位为0。每个周期先将A左移一位,再对A[N+M : N]和B[M-1 : O]做差,若差 大于0,则商Q左移入一位1,将差值存回到A[N+M—1 : N]中;若差小于0, 则Q左移入一位0, A[N+M—1 : N-l]保持原值,该运算一直进行N次,就能得 到A除以B的结果。这样可以有效的避免在硬件实现上由于过多的除法运算而 耗费很多资源。上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的 精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发 明的保护范围。
权利要求
1.一种自适应的码率控制方法,适用于固定码率模式和可变码率模式,其特征在于,包含以下步骤(1)对之前已编码各帧的量化参数QP求加权平均值,并转化为量化缩放因子qscalei;(2)根据上一帧匹配代价来预测当前帧的复杂度,并用经验公式计算出对应该复杂度的图像理论上应使用的qscalei,作为当前帧的qscalei初始值;(3)据实际的已编码比特数与预期的目标比特数间的差值,结合事先设定的可容忍的码率浮动范围,修正qscalei;(4)将当前帧的qscalei限制在前一帧qscalei-1的
范围内,从而避免由于qscalei和qscalei-1偏离过大引起的连续图像间的质量跳变;(5)由虚拟缓存的满度来修正qscalei;(6)预测当前帧在量化缩放因子取值为qscalei时将得到的编码比特数,从而推测出当前帧编码结束后的虚拟缓存满度是否会超出预期范围,以此修正qscalei;(7)将经过上述步骤(1)~(6)修正的qscalei限制在LMIN和LMAX之间,[LMIN,LMAX]是用户设定的量化步长最大变化范围;(8)将步骤(7)所得的qscalei利用式qp=12.0+6.0×log(qscale/0.85)/log(2.0),转化为当前帧的量化参数QP。
2. 根据权利要求l所述的自适应的码率控制方法,其特征在于,所述步骤(2) 为当前帧为I帧并且前一帧不为I帧的时候,将之前己编码的所有帧的 量化参数2P的加权平均值对应的量化步长Wca/e作为当前帧^o^的初始值。
3. 根据权利要求l所述的自适应的码率控制方法,其特征在于,所述步骤(2) 为当前帧为非I帧或者当前帧为I帧且前一帧也为I帧的情况下,初始的 《m^计算和要求l的(1)不同。在固定码率模式下,用前一帧的匹配代价 cos/计算当前帧的绝对变换误差mM的预测值和对应的;在可变码率模 式下,由后标量化步长^^砂对应的量化縮放因子^o^作为当前帧的初始 ^co/e,。
4. 根据权利要求l所述的自适应的码率控制方法,其特征在于,所述步骤(2)中所述经验公式为m^/7cw = c/z》3(1 + (/aW —-而她(6測/"&r — 6z^r, 0.5, 2) Z z^r = 0.1 x
5. 根据权利要求l所述的自适应的码率控制方法,其特征在于,所述步骤(4) 具体为将当前帧的量化步长限制在前一帧^o^,一的
范围内,实 现量化程度的平滑变化,满足连续图像质量稳定的要求。
6. 根据权利要求l所述的自适应的码率控制方法,其特征在于,所述步骤(5) 具体为每帧编码结束后,都会根据该帧产生的编码比特数来更新虚拟缓存 的满度,由虚拟缓存的满度来对即将编码的一帧的^o^做相应的调整,如 果虚拟缓存的满度己经达到或超过警戒状态,那么就会对即将编码的一帧做 出丢帧的决定。
7. 根据权利要求l所述的自适应的码率控制方法,其特征在于,所述步骤(6)具体为量化参数^可以在用户设置的最大范围内变化。用户可以通过设置LMIN, LMAX来限制量化参数砂的最终取值。
8. 根据权利要求l所述的自适应的码率控制方法,其特征在于,所述的码率控 制是以帧为基本单位的;每一帧图像开始编码之前必须先计算当前帧的量化 参数,而不需要对每个宏块都计算量化参数,同一帧内各个宏块的量化参数 砂是相同的;在每帧图像编码结束后需要保存当前帧的信息。
9. 根据照权利要求l所述所述的自适应的码率控制方法,其特征在于,使码率 控制参数在某些特殊图像持续一段时间后仍能对随之而来的正常图像做出 迅速的调整,如当码率极低的黑屏持续一段时间后如果不采用以上方法,会 造成虚拟缓存满度和累计己编码比特数过低从而无法在正常图像到来时给 出一个合适的量化参数值从而影响码率控制效果,每隔1秒,对虚拟缓存满 度和累计已编码比特数进行复位。
10. 根据照权利要求1所述的自适应的码率控制方法,其特征在于,所述的除法 运算用移位相减的方法来实现,设置一个寄存器A,假设被除数N位,除数 B为M位,那么寄存器A的初始低N位存放被除数,高M+l位为0。每个周 期先将A左移一位,再对A[N+M : N]和B[M-1 : O]做差,若差大于0,则商 Q左移入一位l,将差值存回到A[N+M—1 N]中;若差小于0,则Q左移入 一位0, A[N+M—1 : N-l]保持原值,该运算一直进行N次。
全文摘要
本发明涉及一种低复杂度的自适应码率控制方法,包括可变码率与固定码率两种工作模式;可变码率通常应用于要求恒定图像质量的非实时应用场合,固定码率则通常应用于要求恒定带宽的实时应用场合;本发明可以根据不同的应用场合以及视频源的特征自适应地调整量化步长,达到码率的合理分配;同时加入了量化步长变化幅度限制,有效地防止了连续图像间的质量跳变,实现平滑过渡,便于硬件实现。
文档编号H04N7/26GK101252689SQ200810060009
公开日2008年8月27日 申请日期2008年2月29日 优先权日2008年2月29日
发明者叶志成, 江巧微, 兴 秦 申请人:杭州爱威芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1