发明名称 H.264/AVC视频编码中速率和失真的快速估计方法
摘要 本发明涉及视频压缩编码中宏块编码模式选择算法,其特征在于,该方法首先对运动预测,变换和量化后的信号进行快速速率和失真估计;在失真估计算法中,对于量化后为零的变换系数,失真即为经过加权后的系数平方值,对于非零量化系数,失真为量化步长的平方值函数;在速率估计算法中,建立速率和非零量化系数绝对值之和、非零量化系数数目及游程值之和的关系模型。定义一个查表函数度量非零量化系数数目及游程值之和对速率的影响,每实际编码一个块后根据低通滤波的原理更新该查找表;根据速率和失真的估计,进行宏块编码模式的选择。本发明有效提高了率失真意义下宏块编码模式选择的速度,适用于新一代视频压缩编码。
申请公布号 CN100508610C 申请公布日期 2009.07.01
申请号 CN200710063488.2 申请日期 2007.02.02
申请人 清华大学 发明人 崔慧娟;唐昆;张阳;路羊
分类号 H04N7/26(2006.01)I;H04N7/32(2006.01)I;H04N7/30(2006.01)I;H04N7/50(2006.01)I 主分类号 H04N7/26(2006.01)I
代理机构 代理人
主权项 1、H. 264/AVC视频编码中速率和失真的快速估计方法,其特征在于,所述方法是在PC机中依次按以下步骤实现的:步骤(1):针对H. 264/AVC视频编码中的每一种备选编码模式,采用H.264/AVC标准中规定的全搜索或快速搜索的方法对当前编码宏块Sorig进行运动估计,得到亮度残差信号Sres=|Sorig-Sref|,Sref为在当前帧或参考帧内由运动估计所确定的参考块;步骤(2):在每一种编码模式下,对步骤(1)得到的亮度残差信号Sres按下式分别进行8×8和4×4整数变换:其中Cf为H.264/AVC标准中规定的变换矩阵,对于8×8和4×4整数变换的Cf分别为:和X为变换后的系数矩阵;其次,对于变换后的系数X按照H.264/AVC标准中规定的下述公式进行量化,得到量化后的系数矩阵Y,Y=X.round(PF/Δ),其中Δ为量化参数QP所对应的量化步长,从标准规定的QP-Δ对应表中得到,PF为位置(i,j)所对应的参数,从标准规定的PF-位置对应表中得到,round为取整符号;步骤(3):根据步骤(2)中得到的变换系数矩阵X和量化系数矩阵Y来估计失真D:若量化系数Y(i,j)为0,则失真D1=X2(i,j)/W(i,j),其中W(i,j)为系数X在各变换域各个位置的能量增益,对于8×8和4×4整数变换,对应的能量增益矩阵分别为:和若量化系数Y(i,j)不为0,则估算失真D2=Δ2/12;那么总体失真步骤(4):根据步骤(2)得到的量化系数矩阵Y估计速率R,其步骤如下:首先,若采用的是8×8的整型变换,按照H.264/AVC标准的编码方式分解成4个4×4的块,再对每个4×4块量化后的系数按照标准中所述的顺序进行游程扫描;先得到所有非零系数的数目TC,接着得到每一个非零系数所对应的零游程值,即该非零系数前面0的个数,并计算所有这些零游程值之和TR,再计算非零系数的绝对值和其次,计算编码速率R=SAD+(f(TC,TR)/24),其中f(TC,TR)是设定的查找表函数,度量了TC与TR对编码速率R的影响,对于4×4块,0≤TC≤16,0≤TR≤(16-TC),该查找表共有17×(17+1)/2=153项,其初始值设定为f0(TC,TR)=3×TC+TR;步骤(5):根据步骤(2)中得到的亮度残差信号变换系数X和量化系数Y,采取步骤(3)和步骤(4)所述的计算方法,分别对8×8和4×4两种整数变换得到的速率R和失真D进行计算,并按照下式计算相应的亮度信号的残差系数的编码代价C:C=D+λR,其中QP为量化参数;步骤(6):对于步骤(1)所述的每种编码模式,比较步骤(5)中分别采用8×8和4×4两种整数变换对于亮度残差信号的编码代价C,选取编码代价C较小的作为当前编码模式的最优变换,该模式的亮度残差信号的编码代价C即为二者中的较小值;步骤(7):对于步骤(1)所述的每种编码模式,按照步骤(2)、(3)、(4)、(5)重新计算色度残差信号的编码代价C′,并且对于色度信号编码代价C′的计算只采用4×4整型变换;再按照下式计算相应的预测信息编码代价C″=λRpre,其中Rpre为当前预测信息的编码码率,然后计算每种编码模式的最终编码代价Ctol=C+C′+C″,其中C为步骤(6)中得到的亮度残差信号的编码代价;步骤(8):选择最终编码代价Ctol最小的模式对步骤(1)所述的当前编码宏块按H.264/AVC标准所规定的方法进行编码,得到实际的输出的码流为Rreal比特;步骤(9):用步骤(8)得到的Rreal更新步骤(4)中所述的速率估计用的查找表f(TC,TR):若Rreal-SAD≤0则不更新,若Rreal-SAD>0,则查找表中对应于TC、TR的项f(TC,TR)更新为f(TC,TR)+δR,其中δR={((Rreal-SAD)×24)-f(TC,TR)+23}/24步骤(10):返回步骤(1),编码下一个宏块。
地址 100084北京市100084信箱82分箱清华大学专利办公室