最优拉格朗日乘子基准定点标定方法与流程

文档序号:17925873发布日期:2019-06-15 00:24阅读:455来源:国知局
最优拉格朗日乘子基准定点标定方法与流程

本发明涉及视频编码技术,具体涉及一种最优拉格朗日乘子基准定点标定方法。



背景技术:

视频编码中率失真优化技术的引入带来了性能的大幅提升,自h.264以后,已经被广泛地应用于各主流编码器中。作为最核心的编码优化技术,率失真优化的好坏直接决定了编码器的性能和效率。率失真优化公式写作为公式(1):

min(d)s.t.r≤rt(1)

其中,d为图像失真,常用差值平方和(sse)与绝对误差和(sad)表示。r为实际编码产生的比特率,rt为编码的目标比特率。

2002年t.w引入了拉格朗日方法后,将公式(1)所示的有约束问题改造成为求解最小编码代价的无约束问题,如公式(2)所示:

min{j=d+λ·r}(2)

其中,j为编码代价,λ为拉格朗日乘子。

具体到视频编码的率失真优化实施过程中,每一个视频的图像块都将对块划分结构、运动搜索、量化参数及残差变换做大量尝试。每一种组合都将产生对应的比特消耗以及图像失真信息,将这些模式组合的结果代入至公式(2)中,选取出代价j最小的模式组合作为最终的编码模式。由于拉格朗日乘子的选取决定了视频质量与产生比特流大小的平衡,因此,拉格朗日乘子的计算就显得十分重要。

一般性认为,视频编码的失真d与比特率r是单调函数关系。通常采用公式(3)来描述两者的关系:

d(r)=c·e-k·r(3)

其中,c和k为模型参数。

根据拉格朗日优化理论,λ的取值是由代价函数一阶微分置为零计算得到,如公式(4)所示:

在高比特假设下,视频编码的量化失真仅与量化步长qstep相关,具体如公式(5)所示:

其中,qstep即为量化步长,由量化参数(qp)唯一确定。

将公式(5)代入公式(4),得到λ的计算公式,如公式(6)所示:

其中,c为常数,一般取值为0.85。

但随着编码器的发展,视频编码的失真d与比特率r的函数关系发生一定程度的变化,直接沿用公式(5)导出拉格朗日乘子必然不能获得最佳编码性能。因此目前主流的编码标准都会有针对性地研发率失真优化算法。hevc/h.265的参考软件(hm)不直接使用公式(6)导出的拉格朗日乘子进行编码,而是会根据视频帧类型对拉格朗日乘子进行一定程度的偏移。我国具备自主知识产权的第二代信源编码标准avs2对应的参考软件(rd)编码使用的拉格朗日乘子,在使用公式(6)计算得到基准拉格朗日乘子后,会针对视频帧类型及参考关系制定拉格朗日乘子修正策略。

这些率失真优化算法带来了较大的编码效率提升。但是,研究与开发率失真优化算法需要大量的前期理论积累以及算法设计经验,才能获得编码效率的稳定提升。



技术实现要素:

本发明所要解决的技术问题是:提供一种最优拉格朗日乘子基准定点标定方法,通过相对简单的编码测试流程,获得不同编码情景下最优的基准拉格朗日乘子。

本发明解决上述技术问题采用的技术方案是:

s1.针对视频序列所采用的编码标准中的各个qp配置,选取初始拉格朗日乘子λc(qpi),其中,qpi为所述编码标准的第i个标准qp配置,设置λc(qpi)的标定范围,并将标定范围划分为n个分段,导出n+1个比例因子,获得qpi配置下的n+1个测点;

s2.根据λc(qpi)和比例因子,计算各qp配置下各个测点在编码时所使用的拉格朗日乘子,在各个测点分别进行编码测试,获得包括各qp配置下各个测点的编码测试结果的集合;

s3.以bd-rate作为评价指标,计算编码测试结果的集合中的相对最优性能组;

s4.根据相对最优性能组中的编码测试结果在编码时所使用的拉格朗日乘子在标定范围中的所处位置更新拉格朗日乘子的标定范围;

s5.判断更新后的拉格朗日乘子的标定范围是否满足阈值条件,若满足,则结束定点流程,否则返回步骤s2继续迭代。

对于初始拉格朗日乘子λc(qpi)的值的选取,推荐采用公式(6)计算获得λc(qpi),因为尽管随着编码算法的发展,失真d与比特r的关系发生一定程度改变,但公式(6)计算得到的拉格朗日乘子值与最优拉格朗日乘子值较为接近,以该点为起点可以更快、更准确地找出最优基准拉格朗日乘子。

对于标定范围的设置,要保证标定范围不会使得搜索范围过大,增加迭代工作量,也不会使得搜索范围过小,导致标定不准确,本发明根据经验值将初始拉格朗日乘子的标定范围设为此外,也可以根据需求采用lambda数学模型来估算初始拉格朗日乘子的标定范围。

对于标定范围的划分方式,可以选择等比例划分或等长度划分或者使用服从一定分布的随机划分方式进行划分均可,考虑到简便性,推荐采用等长方式将标定范围划分为n段,导出n+1个比例因子,获得qpi配置下的n+1个测点,其中第j个测点的比例因子ri,j的计算方式为:

其中,rmin和rmax分别为标定范围的下界与上界。

步骤s2中,qpi配置下第j个测点在编码时所使用的拉格朗日乘子的计算方式为:

λi,j=ri,j·λc(qpi)(8)

在视频序列所采用的编码标准规定的所有y个标准qp配置下的各个测点分别进行编码测试,获得的包括各个测点的编码测试结果的集合为:

s={dj(qpi),ratej(qpi)|i=1,…y.j=0,…n}(9)

其中,dj(qpi)表示在qpi配置下使用第j个比例因子偏移后的拉格朗日乘子编码得到的图像失真,ratej(qpi)表示在qpi配置下使用第j个比例因子偏移后的的拉格朗日乘子编码得到的比特率。这里y的取值取决于视频序列所采用的编码标准。

步骤s3中,所述以bd-rate作为评价指标,计算编码测试结果的集合中的相对最优性能组,具体包括:

将y个含有不同qp的测试结果称为一组,则集合中的编码测试结果共可以组成ny个组,任选其中一组作为锚点,所有可用的组作为测试点集,利用bd-rate性能评价指标计算测试点集ny组结果中的最优性能组:

argmin{bd-rate(anchor,test1),...bd-rate(anchor,testm)|m=ny}(10)。

步骤s4中对于标定范围的更新思路是:考虑到本轮迭代的最优拉格朗日乘子在标定范围中的三种情况:①当前最优拉格朗日乘子落在标定范围的中间部分;②当前最优拉格朗日乘子落在标定范围的极小值;③当前最优拉格朗日乘子落在标定范围的极大值;对于上述情况①,我们将下一次迭代的范围设置在当前最优拉格朗日乘子的附近,以提高搜索效率;对于上述情况②和③,我们认为最优拉格朗日乘子可能落在了标定范围之外,因此需要扩大搜索范围,获取的最优拉格朗日乘子的准确性。

设本轮迭代的最优性能组中qpi对应的比例因子为ri,设置截取系数和扩展系数,

当ri处于标定范围内时,则选择ri所对应测点两侧分段的范围作为计算范围,由计算范围结合截取系数计算获得新的标定范围;

当ri处于标定范围两端时,选择ri所对应测点一侧分段的范围结合通过ri和扩展系数计算的扩展范围形成计算范围,再由计算范围结合截取系数计算获得新的标定范围。

上述截取系数的设置是为了控制新标定范围的大小,扩展系数的设置是为了当前最优比例因子出现在边缘时扩展搜索范围,避免出现局部最优的情况。

具体而言,设nratio是比例因子的个数,截取系数为1,α与β分别为两端的扩展系数,并满足0<α<1和β>1,

则,拉格朗日乘子的标定范围更新为:

其中,ri-1和ri+1分别为ri的前一个和后一个比例因子。

步骤s5中对更新后的拉格朗日乘子的标定范围的判断转化为对新的标定范围划分得到的的比例因子之间的间隔度量,因为随着搜索的进行,拉格朗日乘子标定范围也逐渐减小,与之对应的,比例因子间隔也缩短,当拉格朗日乘子的偏移比例(比例因子间隔)小到一定程度时,其对编码的影响可以忽略不计,此时就可以认定为获得了最优的拉格朗日乘子的比例因子。因此,步骤s5包括:

s5a.根据更新后的拉格朗日乘子的标定范围和步骤s1的划分方式对标定范围进行划分,计算新的比例因子;

s5b.判断新的比例因子的间隔是否满足阈值条件,若满足,则结束定点流程,否则返回步骤s2继续迭代。

具体的,步骤s5b中,所述判断新的比例因子的间隔是否满足阈值条件,具体包括:若新的比例因子的间隔小于千分之一,则判定满足阈值条件。

本发明的有益效果是:

通过在拉格朗日乘子标定范围内按照划分的比例因子搜索拉格朗日乘子,进行编码测试并采用bd-rate评价测试结果,获取相对最优性能拉格朗日乘子,然后以此相对最优性能拉格朗日乘子的所处位置更新标定范围,再获得新的比例因子,如此迭代至满足阈值条件为止,虽然需要大量迭代计算,但其实现流程简单,全程自动化,不需要前期理论积累和率失真优化算法设计经验,不需要人为干预即可获得准确的最优基准拉格朗日乘子。

附图说明

图1为本发明实施例中的最优拉格朗日乘子基准定点标定方法流程图。

具体实施方式

本发明旨在提供一种最优拉格朗日乘子基准定点标定方法,通过相对简单的编码测试流程,获得不同编码情景下最优的基准拉格朗日乘子。其核心思想是:通过在拉格朗日乘子标定范围内按照划分的比例因子搜索拉格朗日乘子,进行编码测试并采用bd-rate评价测试结果,获取相对最优性能拉格朗日乘子,然后以此相对最优性能拉格朗日乘子的所处位置更新标定范围,再获得新的比例因子,如此迭代至满足阈值条件为止。

实施例:

以一个视频序列在四个标准qp配置下进行全帧内编码(allintra,ai)模式为例,阐述本发明中的基准拉格朗日乘子定点标定方法,其包括以下实施步骤:

s1.选取初始拉格朗日乘子,设置初始拉格朗日乘子的标定范围,对标定范围进行划分,获得比例因子和对应的测点;

首先选取一个基准λc(qpi)作为起始点,qpi为第i个标准qp配置。尽管随着编码算法的发展,失真d与比特r的关系发生一定程度改变,但公式(6)计算得到的拉格朗日乘子值与最优拉格朗日乘子值较为接近,以该点为起点可以更快、更准确地找出最优基准拉格朗日乘子。因此本发明推荐使用公式(6)导出初始拉格朗日乘子。

在导出初始拉格朗日乘子后,设置搜索拉格朗日乘子的标定范围。需要注意的是,本发明所述的定点法应遵循“先粗后细”的搜索规则,定点开始时选用相对较大的搜索范围,随着搜索的进行,不断提升搜索精度,最后获得性能最优的基准拉格朗日乘子。在本发明中,根据经验值将初始拉格朗日乘子的标定范围设为此外也可以根据需求采用lambda数学模型来估算初始拉格朗日乘子的标定范围。

得到标定范围后,将范围等长划分为n段(也可以按照等比例或者使用服从一定分布的随机划分方式进行划分),可以导出n+1个比例因子,则可获得每个qp配置下的与n+1个比例因子一一对应的n+1个测点,即,每一个测点使用一个比例因子在初始拉格朗日乘子的基础上进行偏移,qpi配置下的第j个测点的比例因子ri,j的定义如公式(7)所示:

其中,rmin和rmax分别为标定范围的下界与上界。

s2.根据初始拉格朗日乘子和比例因子,计算测点在编码时所使用的拉格朗日乘子,在各个测点分别进行编码测试,获得包括各个测点的编码测试结果的集合;

qpi配置下的第j个测点在编码时所使用的拉格朗日乘子可以由初始点λc(qpi)和比例因子ri,j导出,具体如公式(8)所示:

λi,j=ri,j·λc(qpi)(8)

其中,λc(qpi)为qpi对应的初始拉格朗日乘子,ri,j为qpi配置下第j个测点的比例因子。

以步骤s1中将标定范围划分为8段获得9个比例因子为例,对4个qp配置、9个比例因子进行遍历编码,编码得到的结果集合如公式(9)所示:

s={dj(qpi),ratej(qpi)|i=1,…4.j=0,…9}(9)

其中,dj(qpi)表示在qpi配置下使用第j个比例因子偏移后的拉格朗日乘子编码得到的图像失真,ratej(qpi)表示在qpi配置下使用第j个比例因子偏移后的的拉格朗日乘子编码得到的比特率。

s3.以bd-rate作为评价指标,计算编码测试结果的集合中的相对最优性能组;

在得到所有编码结果后,需找出性能最佳的比例因子。bd-rate是常用的编码器性能评价指标,其表示在相同psnr(峰值性噪比)下,比特率的增加情况。因此,bd-rate为负值时表明编码器性能得到提升。

将4个含有不同qp的测试结果称为一组。在本例中,4个qp配置和9个比例因子得到的编码结果共可以组成94个组。获得编码结果集合后,任选其中一组作为锚点(anchor),所有可用的组作为测试点集(testset),利用bd-rate性能评价指标计算测试点集94组结果中的最优性能组,如公式(10)所示:

argmin{bd-rate(anchor,test1),...bd-rate(anchor,testm)|m=94}(10)

需要注意的是,锚点也处于测试点集中,满足bd-rate(anchor,anchor)=0。计算得到当前迭代的最小bd-rate组为{du(qp1),rateu(qp1),dv(qp2),ratev(qp2),dw(qp3),ratew(qp3),dx(qp4),ratex(qp4)},其中u,v,w,x=0,1,……9。

s4.根据相对最优性能组中的编码测试结果在编码时所使用的拉格朗日乘子在标定范围中的所处位置更新拉格朗日乘子的标定范围;

得到本次迭代的相对最优性能组后,需根据最优性能组收缩拉格朗日乘子标定范围。以qp1为例,设本轮迭代的最优性能组中qp1对应的比例因子为ri,则新的拉格朗日乘子的标定范围如公式(11)所示:

其中,nratio是比例因子的个数,此处nratio=9;α与β为常数,满足0<α<1和β>1。

根据公式(11),本发明考虑了本轮迭代的最优拉格朗日乘子在标定范围中的三种情况:①当前最优拉格朗日乘子落在标定范围的中间部分;②当前最优拉格朗日乘子落在标定范围的极小值;③当前最优拉格朗日乘子落在标定范围的极大值;对于上述情况①,我们将下一次迭代的范围设置在当前最优拉格朗日乘子的附近,以提高搜索效率;对于上述情况②和③,我们认为最优拉格朗日乘子可能落在了标定范围之外,因此需要扩大搜索范围,获取的最优拉格朗日乘子的准确性;

α与β就是用于当最优比例因子出现在边缘时扩展搜索范围而设置的常数,取值首先要满足0<α<1和β>1。其次要保证α和β的选择能够让后续新的比例因子之间保持足够的“间隙”,不要过大也不要过小。根据经验,建议的配置为α=0.5,β=2。

s5.根据更新后的拉格朗日乘子的标定范围计算新的比例因子;

在获取新的拉格朗日乘子的标定范围后,利用公式(7)可计算得到新的比例因子进行编码测试。

s6.判断新的比例因子的间隔是否满足阈值条件,若满足,则结束定点流程,获得各个qp配置下的最优拉格朗日乘子,否则返回步骤s2继续迭代。

随着搜索的进行,拉格朗日乘子标定范围也逐渐减小,与之对应的,比例因子间隔缩短。实验表明,当拉格朗日乘子偏移的比例小于千分之一时,对编码结果几乎没有影响。因此,当比例因子之间间隔小于千分之一时,定点结束,获取到各个qp配置下的最优拉格朗日乘子(最优拉格朗日乘子=初始拉格朗日乘子*最优比例因子);

即本发明的实施流程是按照步骤s1至s5测试流程迭代至比例因子间隔小于千分之一。此时得到最优拉格朗日偏移比例对应的拉格朗日乘子的集合,如公式(12)所示:

至此,得到了一个序列在ai测试情景下的最优基准拉格朗日乘子。

上述实施例介绍的是在ai测试场景下的拉格朗日乘子定点,由于不同的应用场景通常使用不同的编码结构配置,如视频会议和即时通信情景下常使用低延迟编码结构,而面向存储时常使用随机访问结构。不同的编码结构将使用不同的编码帧类型,这些帧类型由于编码技术的不同,它们对应的图像失真与编码比特率的关系也有着一定区别。因此,在实践应用过程中,需根据帧类型,帧间隔等不同结构进行最优拉格朗日乘子定点。

下面给出利用本发明提出的最优拉格朗日乘子基准定点方法对几个视频序列中的intra类型帧、p7类型帧和b7类型帧进行迭代计算的结果,其最后获取的最优拉格朗日比例因子如表1所示:

表1:最优拉格朗日比例因子表

表2给出了本发明在随机访问配置下的编码性能测试情况。测试使用开源的商用编码器x265v2.3版本,测试视频均为4k信源,按照定点法配置的4个qp点及得到的最优比例因子进行测试,性能评价以bd-rate作为评价指标。可以发现,通过本发明得到的最优拉格朗日乘子基准在yuv三个通道上能够分别获得6.31%,14.41%,14.86%的性能提升,压缩性能提升显著。

表2:最优基准拉格朗日乘子性能测试表

因此,采用本发明的最优拉格朗日乘子基准定点方法可以获取精确的最优拉格朗日乘子,有利于提高视频编码性能,而且定点流程简单,虽然需要大量迭代计算,但实现过程全程自动化,不需要前期理论积累和率失真优化算法设计经验就可以完成。

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