一种率失真优化方法及装置与流程

文档序号:14023220阅读:599来源:国知局
一种率失真优化方法及装置与流程

本发明涉及视频压缩技术领域,尤其涉及一种率失真优化方法及装置。



背景技术:

目前,常见的视频压缩系统(如h.261/3/4/5以及mpeg-2/4等)基本上都采用了有损压缩的hybrid(混合式)编码架构。在该架构下,视频编码器可以针对各种具有复杂率失真统计特征的视频信号,使用不同的编码工具(及组合)消除各种冗余信息,从而压缩视频数据。

具体地,典型的视频压缩处理过程主要包括预测编码、预测残差dct(discretecosinetransform,离散余弦变换)系数量化及熵编码等环节。其中,在预测编码环节,视频编码器通过模式选择和运动补偿,消除视频信号的时-空域相关性;在码率控制环节,通过dct系数量化控制预测残差的码率及失真。视频编码控制技术就是研究相关参数(包括编码模式md、运动矢量mv和量化参数qp)的计算问题,以期用尽可能少的比特获得高质量的重建视频图像。

据信息论,视频压缩的码率和失真满足下凸非递减关系。一般地,码率越低则失真越大,反之亦然,码率极低和失真极小二者不可兼得。惟有在失真与码率之间实现恰当的折衷,才能实现编码控制的优化计算,获得较高的编码效率。考虑到信道带宽对多媒体通讯的客观限制,该问题实质上是一个有约束极值求解,其数学表达形式如下:

其中,分别表示编码模式、运动矢量和量化参数的取值范围,d(md,mv,qp)表示图像失真,r(md,mv,qp)表示输出码率,而rc表示信道带宽。

对凸函数有约束极值问题的求解,可以采用lagrange乘子法,转换为等价的无约束极值问题进行求解,如下式所示:

可以根据上式的最小值选择编码工具(及组合),在码率和失真之间实现折衷。该式能否实现高效的编码效率,关键在于λ(拉格朗日乘子)值的选取。

具体地,目前业界存在以下几种λ值的计算方式:

第一种:在rc已知的条件下,根据码率-失真关系的单调性,利用二分法通过多次编码快速逼近λ的最佳值。但是,采用二分法计算λ存在计算复杂度高,编码延迟大,难以投入实际应用等问题。

第二种:根据率失真理论建立λ关于量化参数的数学模型(即qp-l模型),并基于该模型计算λ;其中q为qp对应的量化步长,c为某个常数。

虽然qp-l算法可以有效地提高视频压缩的编码效率,在h.26l及h.264/avc等标准中得到应用,但是,由于视频信号的率失真统计特征关联诸元在qp-l模型中的缺位,其计算结果不可能对任意视频序列都为最优。此外,qp-l模型对量化参数存在依赖性,不利于实现高效的视频编码控制:一般地,量化参数主要用于控制预测残差的码率及失真,其值在预测编码后才能有效计算,而qp-l在预测编码计算时就需要预先知道量化参数,二者内在相互抵触,属于“鸡与蛋”逻辑悖论。

第三种:建立adapt-l模型(调整后的拉格朗日乘子模型)以采用adapt-l算法计算λ。

具体地,可通过以下方式建立adapt-l模型:

在图像宏块编码时,针对编码模式及运动估计的所有可能选项及其组合,计算图像失真及码率均值:其中表示编码模式和运动估计不同组合的基数,n表示当前帧内当前宏块的序号,ssd(sumofsquareddifference)是原始像素和重建像素之间的差值平方和(即,可以ssd表示图像失真)。针对不同的量化参数,分析之间的函数关系,其中大量实验表明具有线性关系。由此,可以得到式(3)所示的一个启发式的λ关于视频信号率失真统计特性的函数模型,与量化参数无关:

一般地,由于视频信号经过预测编码以及dct变换之后,预测残差dct分量之间的相关性很小(可以认为它们“近似”不相关),且满足laplacian分布规律。如果使用重建图像与原始图像像素值之间的平均绝对值误差(mad,meanabsolutedifference)表示图像失真,也即是那么在预测残差的码率与失真之间存在如下函数关系:

对式(4)泰勒级数展开,并舍弃高阶项,可以得到如下模型:

其中,x2和x1是模型参数,其值可以根据线性回归技术加以确定,σ2为预测残余方差。

将式(5)代入式(2)中,则视频编码控制的率失真优化问题可以表述为如下的表达式:

利用lagrange乘子技术,经过数学推导,可以得到:

可以看出,上式(7)与式(3)在数学表达上是一致的。在式(7)中,x2是唯一的未定量。由实验分析可知x2与预测残余方差σ2之间的函数关系,采用分段拟合函数,得到x2与预测残余方差σ2的数学表达式为:

其中,a1,…,a5为常数。

相应地,根据以上理论及实验分析,可以获得如下所示的拉格朗日乘子的一个新计算公式(即adapt-l模型):

进一步地,在得到adapt-l模型后,可采用如下算法计算λ:

步骤1:为待编码的视频图像序列分配缓冲区,用于保存当前帧以及前一帧每个宏块的平均失真、预测残余平均码率及平均方差;

步骤2:针对第一个i帧的每一个图像宏块,采用qp-l算法进行优化计算,记录每次编码处理的失真、预测残余码率、方差等信息,并把相关均值保存在缓冲区中;

步骤3:对于p帧宏块,在当前帧及前一帧搜索与当前宏块相邻的已编码宏块,并根据该已编码宏块对当前宏块进行编码处理,得到各统计信息均值,即,得到平均失真、预测残余平均码率以及平均方差等;以及,将所得到的平均失真、预测残余平均码率以及平均方差代入到式(9)中,计算得到λ。

另外,为了避免λ变化太大,可以根据历史平均值对λ进行限制。获得的λ可直接用于模式选择,对于运动补偿,可采用再有,在优化计算时,需要记录每次编码处理的失真、预测残余码率、方差等信息,并把相关均值保存在缓冲区中。

由上述步骤可知,在采用adapt-l算法计算λ时,需要获得当前宏块的率失真统计特征。由于对于h.264/avc等新一代编码标准而言,编码参数选项(或组合)众多(如具备多种编码模式选项以及编码可变块选项),不同编码方案的率失真统计特性差异较大,以某一个具体编码方案的率失真统计数据来表示这个宏块的率失真统计特征,由此带来的误差不可避免,从而导致λ的计算结果并不十分准确。

也就是说,现有的率失真优化方法存在λ的计算方式复杂、或者计算结果不准确等问题,导致现有的率失真优化方法效果并不佳。因此,亟需提供一种新的率失真优化方法以解决上述问题。



技术实现要素:

本发明实施例提供了一种率失真优化方法及装置,用以提高拉格朗日乘子计算过程的简便性以及计算结果的准确性,以提高率失真优化的效果。

一方面,本发明实施例提供了一种率失真优化方法,包括:

按照编码可变块从大到小的顺序对当前待编码宏块的各候选编码模式进行优化计算,得到各候选编码模式的编码代价函数值;

根据计算得到的各候选编码模式的编码代价函数值,从当前待编码宏块的各候选编码模式中选取对应的编码代价函数值最小的候选编码模式作为当前待编码宏块的最优编码模式,并根据当前待编码宏块在所述最优编码模式下的率失真统计特征估计当前待编码宏块的率失真统计特征;

根据估计得到的所述当前待编码宏块的率失真统计特征以及调整后的拉格朗日乘子模型adapt-l模型确定新的拉格朗日乘子,以根据该新的拉格朗日乘子进行率失真优化。

另一方面,本发明实施例提供了一种率失真优化装置,包括:

编码代价函数值计算单元,用于按照编码可变块从大到小的顺序对当前待编码宏块的各候选编码模式进行优化计算,得到各候选编码模式的编码代价函数值;

率失真统计特征估计单元,用于根据计算得到的各候选编码模式的编码代价函数值,从当前待编码宏块的各候选编码模式中选取对应的编码代价函数值最小的候选编码模式作为当前待编码宏块的最优编码模式,并根据当前待编码宏块在所述最优编码模式下的率失真统计特征估计当前待编码宏块的率失真统计特征;

拉格朗日乘子更新单元,用于根据估计得到的所述当前待编码宏块的率失真统计特征以及调整后的拉格朗日乘子模型adapt-l模型确定新的拉格朗日乘子,以根据该新的拉格朗日乘子进行率失真优化。

本发明有益效果如下:

本发明实施例提供了一种率失真优化方法及装置,可按照编码可变块从大到小的顺序对当前待编码宏块的候选编码模式进行优化计算,并根据优化计算结果确定当前待编码宏块的率失真统计特征,以达到通过逐步求精的方式逼近当前待编码宏块的率失真统计特征的真实值并基于该真实值更新拉格朗日乘子的效果,从而在提高视频编码控制效率的基础上,提高了率失真优化的效果。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1所示为本发明实施例提供的一种率失真优化方法的流程示意图;

图2所示为本发明实施例提供的一种率失真优化装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

实施例一:

为了解决现有的率失真优化方法存在λ的计算方式复杂、或者计算结果不准确等所导致的效果并不佳的问题,本申请实施例提供了一种新的率失真优化方法。如图1所示,所述率失真优化方法可包括以下步骤:

步骤101:按照编码可变块从大到小的顺序对当前待编码宏块的各候选编码模式进行优化计算,得到各候选编码模式的编码代价函数值;

步骤102:根据计算得到的各候选编码模式的编码代价函数值,从当前待编码宏块的各候选编码模式中选取对应的编码代价函数值最小的候选编码模式作为当前待编码宏块的最优编码模式,并根据当前待编码宏块在所述最优编码模式下的率失真统计特征估计当前待编码宏块的率失真统计特征;

步骤103:根据估计得到的所述当前待编码宏块的率失真统计特征以及adapt-l模型确定新的拉格朗日乘子,以根据该新的拉格朗日乘子进行率失真优化。

也就是说,可按照编码可变块(即运动补偿块)从大到小的顺序对当前待编码宏块的候选编码模式进行优化计算,并根据优化计算结果确定当前待编码宏块的率失真统计特征,由于一般而言,块越大,相似性表达的颗粒度越粗,预测残差的能量(方差)越大,视频压缩的图像失真和码率也越大;块变小,相似性表达的颗粒度就越小,预测残差能量也就越小,图像失真和码率也就越小,因而,可达到通过逐步求精的方式逼近当前待编码宏块的率失真统计特征的真实值并基于该真实值更新拉格朗日乘子的效果,从而在提高视频编码控制效率的基础上,提高了率失真优化的效果。

下面,将对本发明实施例所述的各步骤进行详细说明:

可选地,在步骤101中,针对当前待编码宏块的任一候选编码模式,可通过以下公式计算该候选编码模式的编码代价函数值cost1:

cost1=msd+λ*p;其中,msd(meansquareddifference)(等同于mse(meansquarederror))表示当前待编码宏块在该候选编码模式以及该候选编码模式的最优运动矢量下的预测残差的均方差(也即,当前待编码宏块在该候选编码模式以及该候选编码模式的最优运动矢量下的图像编码失真的均方差),p表示当前待编码宏块的控制头信息和、当前待编码宏块在该候选编码模式以及该候选编码模式的最优运动矢量下的残差编码的长度(对残差进行熵编码处理后所得到的编码长度)之和,λ为设定的初始拉格朗日乘子。

其中,初始拉格朗日乘子可采用现有的adapt-l算法计算得到,或者采用现有的qp-l模型或者二分法计算得到,对此不作限定。

另外,可选地,针对当前待编码宏块的任一候选编码模式,可通过以下方式计算该候选编码模式的最优运动矢量:

针对当前待编码宏块在该候选编码模式下的每一种可能的运动矢量,计算其对应的运动估计代价函数值其中,sad(sumofabsolutedifference)表示当前待编码宏块在该候选编码模式以及该运动矢量下的预测残差分量的绝对值和,h表示当前待编码宏块的控制头信息编码长度,λ为设定的初始拉格朗日乘子;

将对应的cost2最小的运动矢量作为该候选编码模式的最优运动矢量。

再有,需要说明的是,步骤101中所述的编码可变块至少可包括:inter16x16,inter16x8,inter8x16,inter8x8,inter8x4,inter4x8,以及inter4x4等。且,在按照编码可变块从大到小的顺序对当前待编码宏块的各候选编码模式进行优化计算时,一般可按照如下顺序依次进行:inter16x16,inter16x8,inter8x16,inter8x8,inter8x4,inter4x8,inter4x4,对此不作赘述。

进一步地,在按照上述方式计算得到当前待编码宏块的各候选编码模式的编码代价函数值,且选取对应的编码代价函数值最小的候选编码模式作为当前待编码宏块的最优编码模式后,可按照如下方式执行步骤102所述的根据当前待编码宏块在所述最优编码模式下的率失真统计特征估计当前待编码宏块的率失真统计特征的操作:

将当前待编码宏块在所述最优编码模式以及所述最优编码模式的最优运动矢量下的率失真统计特征作为当前待编码宏块的率失真统计特征。当然,也可将当前待编码宏块在所述最优编码模式以及所述最优编码模式的所有可能的运动矢量下的率失真统计特征的相关均值作为当前待编码宏块的率失真统计特征。

其中,以计算当前待编码宏块在所述最优编码模式以及所述最优编码模式的最优运动矢量下的率失真统计特征为例,其具体实施方式可为:

基于该候选编码模式以及该候选编码模式的最优运动矢量,计算当前待编码宏块在该候选编码模式以及该候选编码模式的最优运动矢量下的预测残差的mad(meanabsolutedifference,平均绝对值误差),并基于计算得到的mad以及设定的二次码率模型(q2码率模型)计算qp(量化参数);其中,二次码率模型可表示如下:其中,r'代表编码量化系数所需的码字位数;x1和x2是模型参数,其值可以用线性回归技术加以确定;q表示量化步长(其中,q与qp的关系为:qp是q的序号,当q确定后,qp也随之确定);

根据计算得到的qp对当前待编码宏块在该候选编码模式以及该候选编码模式的最优运动矢量下的预测残差进行编码处理,得到当前待编码宏块在该候选编码模式以及该候选编码模式的最优运动矢量下的图像编码失真(可以ssd表示)、码率以及残余方差,并将得到的图像编码失真、码率以及残余方差作为当前待编码宏块在该该候选编码模式以及该候选编码模式的最优运动矢量下的率失真统计特征。

相应地,在估计得到所述当前待编码宏块的率失真统计特征之后,即可将估计得到的所述当前待编码宏块的率失真统计特征代入公式(9)所述的adapt-l模型中以更新拉格朗日乘子,以便后续可根据该新的拉格朗日乘子进行率失真优化。

进一步地,在计算得到当前候选编码模式的编码代价函数值之后,计算下一候选编码模式的编码代价函数值之前,所述方法还可包括:

确定当前待编码宏块在该当前候选编码模式下的率失真统计特征所对应的二次码率模型参数分组;并

根据当前待编码宏块在该当前候选编码模式下的率失真统计特征,通过线性回归方式,更新其所对应的分组的二次码率模型参数(即x1和x2)。

例如,以对残余方差按照一定间隔进行划分,按照分组计算二次码率模型参数为例,可根据当前待编码宏块在该当前候选编码模式下的残余方差,确定当前待编码宏块在该当前候选编码模式下的率失真统计特征所对应的二次码率模型参数分组,并根据当前待编码宏块在该当前候选编码模式下的率失真统计特征,通过线性回归方式,更新其所对应的分组的二次码率模型参数。

或者,以对残差mse按照一定间隔进行划分,按照分组计算二次码率模型参数为例,若率失真统计特征中包括残差mse参数,则可根据当前待编码宏块在该当前候选编码模式下的残差mse,确定当前待编码宏块在该当前候选编码模式下的率失真统计特征所对应的二次码率模型参数分组,并根据当前待编码宏块在该当前候选编码模式下的率失真统计特征,通过线性回归方式,更新其所对应的分组的二次码率模型参数。

也就是说,在进行二次码率模型参数的更新时,可按照一定间隔对残差mse或残余方差进行划分,按照分组对二次码率模型参数进行回归计算,以提高码率模型的预测精度。

由本发明实施例所述的内容可知,在本发明所述实施例中,可按照编码可变块(即运动补偿块)从大到小的顺序对当前待编码宏块的候选编码模式进行优化计算,并根据优化计算结果确定当前待编码宏块的率失真统计特征,由于一般而言,块越大,相似性表达的颗粒度越粗,预测残差的能量(方差)越大,视频压缩的图像失真和码率也越大;块变小,相似性表达的颗粒度就越小,预测残差能量也就越小,图像失真和码率也就越小,因而,可达到通过逐步求精的方式逼近当前待编码宏块的率失真统计特征的真实值并基于该真实值更新拉格朗日乘子的效果,从而在提高视频编码控制效率的基础上,提高了率失真优化的效果。

另外,由于在进行二次码率模型参数的更新时,可按照一定间隔对残差mse或残余方差进行划分,按照分组对二次码率模型参数进行回归计算,因而,还可提高码率模型的预测精度。

实施例二:

基于同样的发明构思,本申请实施例二提供了一种率失真优化装置,所述率失真优化装置的具体实施可参见本发明实施例一中的相关描述,对此不作赘述。具体地,如图2所示,所述率失真优化装置可包括:

编码代价函数值计算单元21,可用于按照编码可变块从大到小的顺序对当前待编码宏块的各候选编码模式进行优化计算,得到各候选编码模式的编码代价函数值;

率失真统计特征估计单元22,可用于根据计算得到的各候选编码模式的编码代价函数值,从当前待编码宏块的各候选编码模式中选取对应的编码代价函数值最小的候选编码模式作为当前待编码宏块的最优编码模式,并根据当前待编码宏块在所述最优编码模式下的率失真统计特征估计当前待编码宏块的率失真统计特征;

拉格朗日乘子更新单元23,可用于根据估计得到的所述当前待编码宏块的率失真统计特征以及adapt-l模型确定新的拉格朗日乘子,以根据该新的拉格朗日乘子进行率失真优化。

可选地,所述编码代价函数值计算单元21,具体可用于针对当前待编码宏块的任一候选编码模式,通过以下公式计算该候选编码模式的编码代价函数值cost1:

cost1=msd+λ*p;其中,msd表示当前待编码宏块在该候选编码模式以及该候选编码模式的最优运动矢量下的预测残差的均方差,p表示当前待编码宏块的控制头信息和当前待编码宏块在该候选编码模式以及该候选编码模式的最优运动矢量下的残差编码的长度和,λ为设定的初始拉格朗日乘子。

进一步地,所述率失真统计特征估计单元22,具体可用于将当前待编码宏块在所述最优编码模式以及所述最优编码模式的最优运动矢量下的率失真统计特征作为当前待编码宏块的率失真统计特征;

其中,当前待编码宏块在每一候选编码模式以及该候选编码模式的最优运动矢量下的率失真统计特征是通过以下方式计算得到的:

基于该候选编码模式以及该候选编码模式的最优运动矢量,计算当前待编码宏块在该候选编码模式以及该候选编码模式的最优运动矢量下的预测残差的mad,并基于计算得到的mad以及设定的二次码率模型计算qp;

根据计算得到的qp对当前待编码宏块在该候选编码模式以及该候选编码模式的最优运动矢量下的预测残差进行编码处理,得到当前待编码宏块在该候选编码模式以及该候选编码模式的最优运动矢量下的图像编码失真、码率以及残余方差,并将得到的图像编码失真、码率以及残余方差作为当前待编码宏块在该该候选编码模式以及该候选编码模式的最优运动矢量下的率失真统计特征。

可选地,所述率失真优化装置还可包括模型参数更新单元24:

所述模型参数更新单元24,可用于在计算得到当前候选编码模式的编码代价函数值之后,计算下一候选编码模式的编码代价函数值之前,确定当前待编码宏块在该当前候选编码模式下的率失真统计特征所对应的二次码率模型参数分组;并根据当前待编码宏块在该当前候选编码模式下的率失真统计特征,通过线性回归方式,更新其所对应的分组的二次码率模型参数。

本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1