一种基于失真测量的HEVC码率控制模型参数更新算法转让专利

申请号 : CN201510191967.7

文献号 : CN104767999B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郑明魁苏凯雄杨秀芝叶宇煌黄博

申请人 : 福州大学

摘要 :

本发明公开了一种基于失真测量的HEVC码率控制模型参数更新算法,本算法使用最小均方误差LMS方法迭代计算码率控制模型的α参数和β参数,设D表示经过压缩编码后的视频失真;R表示压缩后的码率,C和K是和视频序列特性相关的模型参数;C参数和K参数在进行一次迭代所使用的迭代步长分别为δC和δK,目标码率为R。R‑D码率失真模型以公式描述为:D(R)=CR‑K,码率控制中,码率R和编码使用的拉格朗日乘子λ间关系表示为:迭代所用公式为:Cnew=Cold×[1‑δC×(InDreal‑InDold)]Knew=Kold+δK×[(InDreal‑InDold)×InRreal]αnew=Cnew×Knewβnew=‑Knew‑1本发明根据编码前后的视频特征进行迭代,通过对失真量的精确测量,来精确更新HEVC码率控制模型参数,从而获得更精确的码率控制效果。

权利要求 :

1.一种基于失真测量的HEVC码率控制模型参数更新算法,其特征在于:本算法使用视频编码失真迭代计算码率控制模型的参数,具体如下;

当HEVC编码算法使用双曲线模型描述R-D码率失真模型时,描述如公式(2)所示;

公式(2):D(R)=CR-K;

其中D表示经过压缩编码后的视频失真;R表示压缩后的码率,C和K是和视频序列特性相关的模型参数;

设参数α以公式(200):α=CK描述;

设参数β以公式(201):β=-K-1描述;

则在HEVC编码算法的码率控制中,码率R和编码使用的拉格朗日乘子λ间关系如公式(4)表示如下;

公式(4):

本算法使用视频编码失真以最小均方误差LMS方法迭代计算码率控制模型的α参数和β参数,设C参数和K参数在进行一次迭代所使用的迭代步长分别为δC和δK,目标码率为R;

迭代所用公式为;

公式(18):Cnew=Cold×[1-δC×(InDreal-InDold)];

公式(19):Knew=Kold+δK×[(InDreal-InDold)×InRreal];

公式(20):αnew=Cnew×Knew;

公式(21):βnew=-Knew-1;

其中αnew为迭代更新后的α参数,βnew为迭代更新后的β参数,Cnew为迭代更新后的C参数,Knew为迭代更新后的K参数,Dold为基于目标码率R以及原参数所估计的视频失真,Dreal为编码后的实际视频失真,Rreal表示压缩编码后的实际码率,δC和δK分别为利用最小均方误差LMS方法进行一次迭代所使用的迭代步长。

2.根据权利要求1所述的一种基于失真测量的HEVC码率控制模型参数更新算法,其特征在于:所用公式(18)、公式(19)、公式(20)、公式(21)的推导迭代步骤依次包括如下步骤;

A、以Cold和Kold为参数进行视频压缩编码,在目标码率R下的重构视频失真预期值为;

公式(9):

B、编码后重构视频的实际码率为Rreal,实际失真为Dreal,其关系为;

公式(10):Dreal=CRreal-K;

C、对公式(10)进行对数运算,设In(C)=C',得结果为;

公式(11):In(Dreal)=In(C)-KIn(Rreal)=C'-KIn(Rreal);

D、实际的编码失真和估计得到的编码失真之间的平方误差以公式描述如下;

公式(12):e2=(InDreal-InDold)2;

公式(13):

公式(14):

E、利用最小均方误差的LMS方法进行一次迭代,以δC为一次迭代所使用的迭代步长;

根据公式(13)得公式(15):

根据公式(15)得公式(16):InCnew=InCold-δC×(InDreal-InDold);

进一步可得公式(17):Cnew=Cold×exp[-δC×(InDreal-InDold)];

对公式(17)泰勒展开并且忽略高阶项,得到公式(18);

公式(18):Cnew=Cold×[1-δC×(InDreal-InDold)];

以δK为一次迭代所使用的迭代步长,根据最小均方误差方法和公式(14)得到公式(19):G、如公式(200)、公式(201)可推导得参数αnew和βnew的计算公式(20)和公式(21);

公式(20):αnew=Cnew×Knew;

公式(21):βnew=-Knew-1。

说明书 :

一种基于失真测量的HEVC码率控制模型参数更新算法

技术领域

[0001] 本发明涉及视频编码码率控制技术领域,特别涉及一种基于失真测量的HEVC码率控制模型参数更新算法,该算法符合H.265/MPEG-H HEVC(High Efficiency Video Coding)视频编码标准。

背景技术

[0002] 在视频编码与传输应用中,新一代高性能视频编码标准H.265/MPEG-HHEVC(High Efficiency Video Coding)由ISO-IEC/MPEG和ITU-T/VCEG两大国际标准化组织成立的视频编码联合开发小组(JCT-VC)开发,与H.264/AVC相比,在相同的视觉质量下,HEVC能使比特率降低一半。
[0003] 作为新一代视频编码标准,HEVC仍然属于预测加变换的混合编码框架,它也包含了帧内预测、帧间预测、正交变换、量化、滤波、熵编码等编码模块,但在各个编码环节都进行了细致的优化与改进,HEVC标准编码方法如附图1所示。
[0004] 在视频编码码率控制算法中,率失真R-D(Rate-Distortion)性能是需要考虑的问题。一个良好的码率控制算法可以在精确达到目标码率的同时达到尽量小的编码失真。码率控制问题可以被转化成如公式(1)所示的率失真优化问题。
[0005] 公式(1):
[0006] 通过这个优化问题编码器将在编码比特数不超过目标比特数的情况下,选择使失真最小化的参数作为最优的编码参数。
[0007] 其中,{Para}表示编码参数集合,包括模式、运动信息、量化参数QP等。λ是拉格朗日乘子,表示R-D曲线的斜率绝对值。视频编码提供了很大的编码灵活性,编码器可以自由的选择各种编码参数的组合。选择不同的参数会对最终视频的编码比特率产生非常重要的影响。因此,码率控制算法会使得编码器在一些离散的合法的编码参数集合中选择合适的编码参数,进而达到目标码率。
[0008] HEVC使用双曲线模型来精确刻画编码算法中的R-D码率失真模型。如公式(2)所示。
[0009] 公式(2):D(R)=CR-K
[0010] 其中D表示经过压缩编码后的视频失真;R表示压缩后的比特率,以每像素消耗比特bpp(bit per pixel)为单位;C和K是和序列特性相关的模型参数,不同的视频序列C、K的取值不同。
[0011] 在码率控制时,HEVC采用了一种新颖的基于R-λ模型的λ域码率控制算法。在这种码率控制算法中,在R-D码率失真模型的基础上通过码率R和编码使用的拉格朗日乘子λ之间建立数学关系,并利用调整λ的方法达到所期望的目标码率。如公式(3)所示。
[0012] 公式(3):
[0013] 可以通过该公式计算拉格朗日乘子λ,其中α=CK,β=-K-1。因此α和β这两个参数也与序列的特性相关,不同序列具有不同的取值。
[0014] 由公式(3)进一步得到码率R与λ关系,如公式(4)所示。
[0015] 公式(4):
[0016] 由公式(4)可知码率R完全由拉格朗日乘子λ所决定。λ与R-D曲线的关系示意图如附图2所示。λ是由所有实际工作点的凸包络决定的R-D曲线的斜率绝对值,码率R和拉格朗日乘子λ之间存在着一一对应关系。由于R-D曲线是凸函数,基于某个λ值计算最小化公式(1)等效于使用斜率绝对值为λ值的直线去逼近R-D曲线,而此直线仅会和R-D曲线相切于一点。因此,λ值能够决定码率R和视频失真D。
[0017] 在码率控制过程中,HEVC根据缓冲区的占有情况在对每一级别的编码单元分配合适数量的比特,通常包括图片组GOP(Group ofPictures)级、图片级和基本单元级(Coding Unit)。为了达到所分配的某个目标码率R,编码器将根据公式(3)决定相关联的λ值,并将其用于编码过程。当编码使用的λ值确定后,所有其他的编码参数均应由率失真优化RDO(Rate-Distortion Optimization)决定。
[0018] 但在公式(3)中,由于不同的序列往往拥有不同的α和β值,即使对于同一序列,处于不同级别的图片也可能拥有完全不相同的α和β。为了使α和β值可以随着视频序列的特性自适应更新,HEVC采用如下模型更新算法,如公式(5)、公式(6)与公式(7)所示。
[0019] 公式(5):
[0020] 公式(6):αnew=αold+δα×(Inλreal-Inλcomp)×αold
[0021] 公式(7):βnew=βold+δβ×(Inλreal-Inλcomp)×InRreal
[0022] 这个更新算法是基于最小均方误差LMS(LeastMean Square)方法,其中αold和βold分别表示原来编码过程中使用的α和β;Rreal表示编码后实际的码率;λcomp表示基于实际码率计算所得到的λ值;λreal表示原来编码时使用的λ值;δα和δβ分别为利用最小均方误差LMS方法进行一次迭代所使用的迭代步长;αnew和βnew为更新后的模型参数。
[0023] 实际上,HEVC原有的算法中使用最小均方误差LMS方法更新码率控制模型参数时,其目标是使实际使用的λreal与计算得到的λcomp之间的平方误差达到最小,并以此调整α和β值。λreal与λcomp之间平方误差如公式(8)所示。
[0024] e2=(Inλreal-Inλcomp)2           (8)
[0025] 但是由公式(5)可知,λcomp在计算时使用了原来模型的参数αold和βold,而在视频经编码后其参数已发生了变化,因此原先视频模型的参数αold和βold并不能完全反映编码后视频的参数特征,因此以λreal与λcomp之间平方误差来调整α和β值,所得到的更新模型只是近似逼近于当前视频序列的特征。

发明内容

[0026] 本发明提出一种基于失真测量的HEVC码率控制模型参数更新算法,根据编码前后的视频特征进行迭代,通过对失真量的精确测量,来精确更新HEVC码率控制模型参数,从而获得更精确的码率控制效果。
[0027] 本发明采用以下技术方案。
[0028] 当HEVC编码算法使用双曲线模型描述R-D码率失真模型时,描述如公式(2)所示。
[0029] 公式(2):D(R)=CR-K
[0030] 其中D表示经过压缩编码后的视频失真;R表示压缩后的码率,C和K是和视频序列特性相关的模型参数。
[0031] 设参数α以公式(200):α=CK描述。
[0032] 设参数β以公式(201):β=-K-1描述。
[0033] 则在HEVC编码算法的码率控制中,码率R和编码使用的拉格朗日乘子λ间关系如公式(4)表示如下。
[0034] 公式(4):
[0035] 本算法使用最小均方误差LMS方法迭代计算码率控制模型的α参数和β参数,设C参数和K参数在进行一次迭代所使用的迭代步长分别为δC和δK,目标码率为R。
[0036] 迭代所用公式为。
[0037] 公式(18):Cnew=Cold×[1-δC×(InDreal-InDold)]
[0038] 公式(19):Knew=Kold+δK×[(InDreal-InDold)×InRreal]
[0039] 公式(20):αnew=Cnew×Knew
[0040] 公式(21):βnew=-Knew-1
[0041] 其中αnew为迭代更新后的α参数,βnew为迭代更新后的β参数,Cnew为迭代更新后的C参数,Knew为迭代更新后的K参数,Dold为基于目标码率R以及原参数所估计的视频失真,Dreal为编码后的实际视频失真,Rreal表示压缩编码后的实际码率,δC和δK分别为利用最小均方误差LMS方法进行一次迭代所使用的迭代步长。
[0042] 所用公式(18)、公式(19)、公式(20)、公式(21)的推导迭代步骤依次包括如下步骤。
[0043] A、以Cold和Kold为参数进行视频压缩编码,在目标码率R下的重构视频失[0044] 真预期值为:
[0045] 公式(9):
[0046] B、编码后重构视频的实际码率为Rreal,实际失真为Dreal,其关系为:
[0047] 公式(10):Dreal=CRreal-K
[0048] C、对公式(10)进行对数运算,设In(C)=C',得结果为:
[0049] 公式(11):In(Dreal)=In(C)-KIn(Rreal)=C'-KIn(Rreal)
[0050] D、实际的编码失真和估计得到的编码失真之间的平方误差以公式描述如下:
[0051] 公式(12):e2=(InDreal-InDold)2
[0052] 公式(13):
[0053] 公式(14):
[0054] E、利用最小均方误差的LMS方法进行一次迭代,以δC为一次迭代所使用的[0055] 迭代步长:
[0056] 根据公式(13)得公式(15):
[0057] 根据公式(15)得公式(16):InCnew=InCold-δC×(InDreal-InDold);
[0058] 进一步可得公式(17):Cnew=Cold×exp[-δC×(InDreal-InDold)];
[0059] 对公式(17)泰勒展开并且忽略高阶项,得到公式(18);
[0060] 公式(18):Cnew=Cold×[1-δC×(InDreal-InDold)];
[0061] 以δK为一次迭代所使用的迭代步长,根据最小均方误差方法和公式(14)得到[0062] 公式(19):
[0063] G、如公式(200)、公式(201)可推导得参数αnew和βnew的计算公式(20)[0064] 和公式(21):
[0065] 公式(20):αnew=Cnew×Knew
[0066] 公式(21):βnew=-Knew-1
[0067] 本发明的视频特征采自编码前和编码后,能根据编码失真的具体量值,来精确更新模型参数,从而使编码采用的参数更适合视频特征,获得更精确的码率控制效果,提高率失真性能;通过对失真量的精确测量,获得更平稳的压缩码流。

附图说明

[0068] 下面结合附图和具体实施方式对本发明进一步详细的说明:
[0069] 附图1是HEVC标准编码方法的示意图;
[0070] 附图2是拉格朗日乘子λ与R-D曲线的关系示意图。

具体实施方式

[0071] 当HEVC编码算法使用双曲线模型描述R-D码率失真模型时,描述如公式(2)所示。
[0072] 公式(2):D(R)=CR-K
[0073] 其中D表示经过压缩编码后的视频失真;R表示压缩后的码率,C和K是和视频序列特性相关的模型参数。
[0074] 设参数α以公式(200):α=CK描述。
[0075] 设参数β以公式(201):β=-K-1描述。
[0076] 则在HEVC编码算法的码率控制中,码率R和编码使用的拉格朗日乘子λ间关系如公式(4)表示如下。
[0077] 公式(4):
[0078] 本算法使用最小均方误差LMS方法迭代计算码率控制模型的α参数和β参数,设C参数和K参数在进行一次迭代所使用的迭代步长分别为δC和δK,目标码率为R。
[0079] 迭代所用公式为:
[0080] 公式(18):Cnew=Cold×[1-δC×(InDreal-InDold)]
[0081] 公式(19):Knew=Kold+δK×[(InDreal-InDold)×InRreal]
[0082] 公式(20):αnew=Cnew×Knew
[0083] 公式(21):βnew=-Knew-1
[0084] 其中αnew为迭代更新后的α参数,βnew为迭代更新后的β参数,Cnew为迭代更新后的C参数,Knew为迭代更新后的K参数,Dold为基于目标码率R以及原参数所估计的视频失真,Dreal为编码后的实际视频失真,Rreal表示压缩编码后的实际码率,δC和δK分别为利用最小均方误差LMS方法进行一次迭代所使用的迭代步长。
[0085] 所用公式(18)、公式(19)、公式(20)、公式(21)的推导迭代步骤依次如下。
[0086] A、以Cold和Kold为参数进行视频压缩编码,在目标码率R下的重构视频失[0087] 真预期值为:
[0088] 公式(9):
[0089] B、编码后重构视频的实际码率为Rreal,实际失真为Dreal,其关系为:
[0090] 公式(10):Dreal=CRreal-K
[0091] C、对公式(10)进行对数运算,设In(C)=C',得结果为:
[0092] 公式(11):In(Dreal)=In(C)-KIn(Rreal)=C'-KIn(Rreal)
[0093] D、实际的编码失真和估计得到的编码失真之间的平方误差以公式描述如下:
[0094] 公式(12):e2=(InDreal-InDold)2
[0095] 公式(13):
[0096] 公式(14):
[0097] E、利用最小均方误差的LMS方法进行一次迭代,以δC为一次迭代所使用的[0098] 迭代步长:
[0099] 根据公式(13)得公式(15):
[0100] 根据公式(15)得公式(16):InCnew=InCold-δC×(InDreal-InDold);
[0101] 进一步可得公式(17):Cnew=Cold×exp[-δC×(InDreal-InDold)];
[0102] 对公式(17)泰勒展开并且忽略高阶项,得到公式(18);
[0103] 公式(18):Cnew=Cold×[1-δC×(InDreal-InDold)];
[0104] 以δK为一次迭代所使用的迭代步长,根据最小均方误差方法和公式(14)得到[0105] 公式(19)
[0106] G、如公式(200)、公式(201)可推导得参数αnew和βnew的计算公式(20)[0107] 和公式(21):
[0108] 公式(20):αnew=Cnew×Knew;
[0109] 公式(21):βnew=-Knew-1。
[0110] 实施例:
[0111] 使用H.265对一段原始未压缩的YUV视频进行编码压缩,该视频场景较多,有激烈运动的场景,也有平稳的静态场景,而对于同一帧,不同区域的内容特征也不同。压缩编码过程中,对每个编码单元预先计算在目标码率R下的重构视频失真预期值Dold;在编码后则可以进一步获得实际的编码失真Dreal与实际码率Rreal,根据压缩前的模型参数Kold与Cold,计算获取更新的模型参数Cnew与Knew,并进一步计算获得参数αnew和βnew,将更新后的模型参数用于下一编码单元的码率控制,获得更平稳的码流,提高码率控制效果。