[发明专利]一种视频编码码率控制方法有效
申请号: | 200610171504.5 | 申请日: | 2006-12-30 |
公开(公告)号: | CN1988659A | 公开(公告)日: | 2007-06-27 |
发明(设计)人: | 陆建华;余成伟 | 申请(专利权)人: | 清华大学 |
主分类号: | H04N7/24 | 分类号: | H04N7/24;H04N7/26 |
代理公司: | 北京清亦华知识产权代理事务所 | 代理人: | 廖元秋 |
地址: | 1000*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种视频编码码率控制方法,属于视频编码技术领域。该方法包括:GOP层码率控制方法中,将前面GOP剩余或超支的比特分配给后续多个GOP,大大减缓了前面GOP超支比特对于后续GOP的编码影响,有利于视频编码质量的稳定;在Frame层码率控制方法中,根据I帧图像的复杂度和预分配码率,设置其量化参数,使码率资源的利用更加合理有效;确定P帧量化参数是,引入编码质量反馈机制,即当GOP中P帧编码质量下降过快时,控制当前P帧量化参数,以遏制由于GOP剩余码率不足引起的P帧编码质量严重下降的趋势。本发明可以更合理地分配有限的码率资源,以获得更好的视频编码质量,特别适合低码率视频通信系统。 | ||
搜索关键词: | 一种 视频 编码 控制 方法 | ||
【主权项】:
1、一种视频编码码率控制方法,其特征在于,该方法包括以下步骤:1)GOP层码率预分配(11)以B表示给定的编码码率,F表示帧速率,Ngop表示GOP长度,Rprev表示前一个GOP编码结束后剩余码率或超支码率,若当前GOP为视频序列第一个GOP,则Rprev初始值为零;(12)若当前GOP为视频序列最后一个GOP时,则该GOP预分配码率R直接由下式确定:R = B F N gop + R prev ]]>(13)否则,若| R prev | ≤ 1 m B F N gop , ]]>则该GOP预分配码率R按下式确定:R = B F N gop + R prev ]]>并将参数Rprev更新为零;(14)若| R prev | > 1 m B F N gop , ]]>则该GOP预分配码率R按下式确定:R = ( 1 + R prev | R prev | 1 m ) B F N gop ]]>并更新Rprev如下式:R prev = R prev - R prev | R prev | 1 m B F N gop ]]>其中,参数m为经验值;2)Frame层码率预分配及量化参数确定(21)若当前帧为GOP中的I帧,首先计算当前I帧的预分配码率TI:T I = max { R 1 + 15 N P 155 K P + 5 N B 155 K B , B 8 F } ]]>其中,KP和KB为权重因子,NP和NB为当前GOP未编码的P帧和B帧数量;则根据率失真模型r=M(a+blog2Q),此I帧量化参数QI为:Q I = 2 R Mb - a b ]]>其中,参数a和b为模型参数,参数M为图像复杂度MAD值;(22)若当前帧为P帧,并且为第一个GOP的第一个P帧,其量化参数QP,0为:Q P , 0 = Q I , 0 + 2 , T P ≤ 0 Q I , 0 + 1,0 < T P ≤ 0.25 B / F Q I , 0 , 0.25 B / F < T P ≤ B / F Q I , 0 - 2 , T P > B / F ]]>其中,QI,0表示第一个GOP的I帧量化参数;(23)若当前帧为除第一个GOP的第一个P帧之外的其它P帧,首先计算当前P帧应分配码率TP:T P = R W P W P N P + W B N B ]]>其中参数WP和WB为P帧和B帧的权重因子;式中码率TP包括开销比特TP,syntax、运动矢量编码比特TP,vectors和DCT系数编码的码率TP,DCT;则实际用于P帧宏块DCT系数编码的码率TP,DCT为:TP,DCT=TP-TP,syntax-TP,vectors当TP,DCT≤0时,该P帧量化参数QP为:其中,Q1表示当前GOP的I帧量化参数,QP,prev表示当前帧前一个P帧的量化参数,ΔPSNR表示当前P帧之前两帧P帧(或其一为I帧)的差值,参数TH为阈值;当TP,DCT>0时,该P帧的量化参数QP由下式确定:T P , DCT = M ( X 1 Q P + X 2 Q P 2 ) ]]>其中,参数X1和X2为模型参数,根据已编码P帧量化参数和实际编码码率自适应更新;参数M为图像复杂度MAD值,采取常规线性预测的方法计算得到;(24)若当前帧为B帧,其量化参数计算方法如下:设GOP内两个P帧或一个P帧和一个I帧之间连续B帧数量为L,当前B帧前后帧量化参数为QP1和QP2;当L=1时,当前B帧量化参数QB1为:Q B 1 = Q P 1 + Q P 2 + 2 2 Q P 1 = Q P 2 Q P 1 + 2 Q P 1 ≠ Q P 2 ]]>当L>1时,当前B帧为连续B帧中的第i个B帧,其量化参数QBi为:Q B i = Q P 1 + α + max { min { Q P 2 - Q P 1 L - 1 , 2 ( i - 1 ) } , - 2 ( i - 1 ) } ]]>其中参数α表示QB1和QP1之间的差值,由下式确定:3)根据步骤2)所确定的量化参数对各帧采用常规的DCT变换、运动搜索和熵编码的编码方法进行编码;4)Frame层的参数更新(41)若当前帧为I帧,编码完当前帧后,模型参数a和b按下式更新:b = b + 2 ( R I - R I , prev ) log 2 Q I + log 2 Q I , prev ]]>a = 1 2 [ R I + R I , prev - b log 2 ( Q I Q I , prev ) ] ]]>其中,RI和RI,prev分别为当前GOP和上一个GOP的I帧的实际编码码率,QI和QI,prev分别为当前GOP和上一个GOP的I帧量化参数;(42)若当前帧为P帧,编码完当前帧后,模型参数X1和X2按下式更新:X 2 = n Σ i = 1 n R P , i - ( Σ i = 1 n Q i - 1 ) ( Σ i = 1 n Q i R P , i ) n Σ i = 1 n Q i - 2 - ( Σ i = 1 n Q i - 1 ) 2 ]]>X 1 = Σ i = 1 n ( Q i R P , i - X 2 Q i - 1 ) n ]]>其中,n表示选定的之前已编码的P帧图像数量,RP,i和QI分别表示选定的n个P帧的第i个P帧的实际编码码率和量化参数;(43)在当前GOP中,当编码完当前帧I帧、P帧或B帧之后,以RI,P,B表示其实际编码码率,则当前GOP剩余可用码率或者超支码率R为:R=R-RI,P,B(44)若当前帧为当前GOP最后一帧,则转入步骤5),否则转入步骤2)继续下一帧图像编码。5)GOP层的参数更新:(51)当前GOP编码完毕之后,将参数Rprev更新如下:Rprev=Rprev+R参数R表示当前GOP编码剩余或者超支码率;(52)若当前GOP为视频序列最后一个GOP,则结束编码;否则转入步骤1)继续下一个GOP的编码。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200610171504.5/,转载请声明来源钻瓜专利网。