一种恒定视频质量的码率控制方法及装置与流程

文档序号:35986267发布日期:2023-11-10 09:31阅读:60来源:国知局
一种恒定视频质量的码率控制方法及装置与流程

本发明涉及一种视频编码技术,特别是涉及一种恒定视频质量的、自适应可变码率的码率控制方法。


背景技术:

1、视频编码是通过压缩视频图像中的冗余成分,并使用尽可能少的数据来表征视频信息的技术。常见的视频编码标准有hevc(high efficiency video coding,高效率视频编码,又称h.265)、avc(advanced video coding,高级视频编码,又称h.264)等。

2、视频编码技术以图像块作为最基本的编码单元。例如在hevc中,视频编码的基本单元是cu(coding unit,编码单元)。cu可以是64像素×64像素、32像素×32像素、16像素×16像素、8像素×8像素尺寸的图像块。其中64像素×64像素尺寸的图像块又称为lcu(largest coding unit,最大编码单元)。

3、为了尽可能提高视频压缩率,常见的视频编码算法往往采用有损压缩算法,造成编码重建后的视频与原始视频存在差别(产生失真)。hevc和avc都属于有损压缩算法。有损压缩算法的编码性能由编码比特率(rate)和编码引入的失真(distortion)来共同衡量。在视频编码过程中,编码比特率r和编码失真d是相互制约、相互矛盾的,降低编码比特率r往往会增加编码失真d,减少编码失真d往往会增加编码比特率r。率失真优化(ratedistortion optimization,rdo)就是为了在一定的编码比特率r下尽可能减少编码失真d,或者在一定的编码失真d下尽可能减少编码比特率r。常见的视频编码算法都采用基于拉格朗日乘子(lagrange multiplier)λ的率失真优化方法,该方法就是取得最小的编码率失真代价(rate distortion cost,rd cost)j,j=d+λ×r。

4、在视频编码时,每一种编码模式都有编码失真d和编码比特率r,可计算出每一种编码模式的编码率失真代价j。视频编码时,选择编码率失真代价j最小的编码模式来进行编码,可以获得最优的编码性能。编码器通过率失真优化的方法为每一个待编码图像块选择最优的编码模式的过程,称为待编码图像块的模式选择(mode decision)。

5、在实际生活中,用来传输视频的信道带宽容量是有限的。如果视频的编码比特率过高,超出了信道带宽容量,就会造成视频传输拥塞甚至丢包。如果视频的编码比特率过低,又会导致信道带宽没有得到充分利用,也无法获得更高视频质量。因此,有必要使用码率控制技术对视频编码器的输出码率进行控制,使之与信道带宽容量相匹配。

6、码率控制(rate control)是通过调整视频编码器的编码参数,使视频编码器的输出码率等于预先设置的目标码率,同时尽可能减少编码失真以提升视频编码质量。在常见的码率控制算法中,一般通过目标比特分配和目标比特控制两个环节来实现码率控制任务。

7、目标比特分配环节一般在三个层次进行,分别是gop(图像组,即一组时间连续的视频帧的集合)级别、视频帧级别、图像块级别。gop级别的目标比特分配是根据视频的目标编码比特率得到gop的目标编码比特数。视频帧级别的目标比特分配是根据gop的目标编码比特数得到该gop内各视频帧的目标编码比特数。图像块级别的目标比特分配是根据视频帧的目标编码比特数、以及该视频帧内各图像块的比特分配权重得到该视频帧内各图像块的目标编码比特数。

8、目标比特控制环节一般在视频帧级别和图像块级别进行。在视频帧级别,根据视频帧的目标编码比特数计算视频帧级别的拉格朗日乘子λ和量化参数(quantizationparameter)qp。在图像块级别,根据某一个图像块的目标编码比特数、该图像块所属视频帧的视频帧级别的拉格朗日乘子λ和量化参数qp、前一个已编码图像块的图像块级别的拉格朗日乘子λ和量化参数qp计算该图像块的图像块级别的拉格朗日乘子λ和量化参数qp,用于该图像块的视频编码过程。

9、拉格朗日乘子λ和量化参数qp都分为视频帧级别和图像块级别。在视频帧级别的目标比特分配和目标比特控制环节(即视频帧级别的码率控制)就使用视频帧级别的拉格朗日乘子λ和量化参数qp,在图像块级别的目标比特分配和目标比特控制环节(即图像块级别的码率控制)就使用图像块级别的拉格朗日乘子λ和量化参数qp。视频帧级别的拉格朗日乘子有时简称为视频帧级拉格朗日乘子、帧级拉格朗日乘子、视频帧的拉格朗日乘子。图像块级别的拉格朗日乘子有时简称为图像块级拉格朗日乘子、块级拉格朗日乘子、图像块的拉格朗日乘子。量化参数的简称以此类推。

10、在常见的cbr(constant bit rate,恒定比特率)码率控制方法中,无论视频帧的内容如何变化,视频帧的编码码率(即编码比特率)都需要维持在一个恒定值上。采用cbr码率控制方法编码后的视频流的码率平稳,非常适合于对视频编码带宽变化敏感的场景,比如实时视频通话。但是在cbr码率控制方法中,由于视频帧的编码码率恒定,当视频帧的内容较简单时(例如视频内容纹理简单或者运动较小),视频编码质量会变得很高,甚至超出用户的需求,造成大量的比特浪费。当视频帧的内容较复杂时(例如视频内容纹理复杂或者运动较大),由于视频帧的编码码率恒定,无法使用更多的比特来进行编码,又会导致视频编码质量大幅降低,无法满足用户的需求。因此cbr码率控制方法虽然可以做到编码码率恒定,但是当视频帧内容发生变化时,视频编码质量也会发生较大波动,影响用户的观看体验。

11、因此,有必要开发一种恒定视频质量的、可变码率的码率控制方法,能够自动检测视频序列(即多个视频帧的有序排列)的视频编码质量变化,并对视频序列的编码码率进行相应调整,使视频序列的视频编码质量维持在一个可接受的、大致恒定的范围内。当视频序列的视频编码质量过高时降低编码码率,以节省编码比特数;当视频序列的视频编码质量过低时提高编码码率,以提升视频编码质量。

12、目前,已经有一些恒定视频质量的、可变码率的码率控制方法。例如采用负反馈的方式,在每一个视频帧编码完成时,计算视频帧的编码质量,当视频帧的编码质量超过上限阈值时,调整后续视频帧的编码参数(例如增大视频帧的量化参数qp),使视频序列的编码质量下降。当视频帧的编码质量低于下限阈值时,调整后续视频帧的编码参数(例如减小视频帧的量化参数qp),使视频序列的编码质量上升。这种方案具有如下缺陷:(1)调整周期长。当视频帧的编码质量超出上、下限阈值后,需要在后续较多的视频帧上进行调整才能使视频编码质量恢复正常。(2)调整视频帧的编码参数时,如果调整步长设置不合理,容易产生视频编码质量振荡。


技术实现思路

1、本发明所要解决的技术问题是:如何使恒定视频质量的、可变码率的码率控制方法做到调整迅速且不易产生振荡。

2、为解决上述技术问题,本发明提出了一种恒定视频质量的码率控制方法,包括如下步骤。步骤s1:在前一个视频帧编码完成时,使用其对应的原始视频帧和重建视频帧,计算出其峰值信噪比psnr。步骤s2:判断前一个已编码视频帧的psnr是否位于用户预设的psnr下限阈值psnrmin到psnr上限阈值psnrmax的psnr阈值范围内;如果否,进入步骤s3;如果是,进入步骤s4。步骤s3:根据视频编码器的编码失真和编码比特率之间的关系模型即r-d模型,利用前后视频帧时域上的相似性,用前一个已编码视频帧的参数代替待编码视频帧的相应参数,预测出能使待编码视频帧的psnr回归用户预设的psnr阈值范围内的待编码视频帧的目标编码比特数;后续进入步骤s5。步骤s4:根据用户预设的视频序列的目标码率和码率调整平滑步长,计算出能使视频序列的编码码率维持在用户预设的目标码率的待编码视频帧的目标编码比特数;后续进入步骤s5。步骤s5:根据待编码视频帧的目标编码比特数,对待编码视频帧进行目标比特控制运算,得到待编码视频帧的拉格朗日乘子和量化参数。

3、进一步地,所述步骤s1中,已编码视频帧的psnr的计算公式为:其中,bits是已编码视频帧内部的像素点的比特位宽,mse是已编码视频帧的均方误差;其中,m是视频帧的宽度,n是视频帧的高度,si,j是已编码视频帧对应的原始视频帧内部的坐标为(i,j)的像素的亮度值,ri,j是已编码视频帧对应的重建视频帧内部的坐标为(i,j)的像素的亮度值。

4、进一步地,所述步骤s3中,如果前一个视频帧的psnr低于用户预设的psnr下限阈值psnrmin,则使用psnrmin作为待编码视频帧的目标psnr;如果前一个视频帧的psnr高于用户预设的psnr上限阈值psnrmax,则使用psnrmax作为待编码视频帧的目标psnr。

5、进一步地,所述步骤s3中,视频编码器中的每一种编码模式都有其对应的编码失真d和编码比特率r,通过对这些编码失真d和编码比特率r进行曲线拟合,得到视频编码器的r-d模型:d=f(r);其中,函数f()表示编码失真d和编码比特率r之间的关系。

6、示例性地,所述步骤s3中,hevc视频编码器的r-d模型为:d=c×r-k;其中,c和k是和视频帧内容相关的模型参数,随着视频序列的编码而不断更新;编码失真d使用mse来进行表征。

7、进一步地,所述步骤s3中,前一个已编码视频帧为第n-1帧,用dn-1表示其编码失真,rn-1表示其实际编码比特数,cn-1和kn-1分别为其对应的c参数和k参数,则有:当前待编码视频帧为第n帧,用dn表示其编码失真,rn表示其目标编码比特数,cn和kn分别为其对应的c参数和k参数,则有:用cn-1近似代替cn,用kn-1近似代替kn,进而有:进而得到公式一:对于前一个已编码视频帧,用psnrn-1表示其psnr,则有:对于当前待编码视频帧,用psnrn表示其目标psnr,则有:得到:进而得到公式二:将公式二代入公式一,得到公式三:在公式三中,rn表示待编码的第n帧要达到目标psnr时,所需要的目标编码比特数。

8、进一步地,所述步骤s4中,如果前一个已编码视频帧的psnr位于用户预设的psnr阈值范围内,且前一个已编码视频帧的编码码率等于用户预设的视频序列的目标码率bitratetgt,则当前待编码视频帧的目标编码码率bitrate等于用户预设的视频序列的目标码率bitratetgt;即:bitrate=bitratetgt。

9、进一步地,所述步骤s4中,如果前一个已编码视频帧的psnr位于用户预设的psnr阈值范围内,但前一个已编码视频帧的编码码率不等于用户预设的视频序列的目标码率bitratetgt,则当前待编码视频帧的目标编码码率通过如下公式计算;bitratem表示当视频帧的psnr回归用户预设的psnr阈值范围之内以后的第m个视频帧的编码码率;当1≤m≤bitratestep时,其中,bitraterec表示从用户预设的psnr阈值范围之外回归到用户预设的psnr阈值范围之内过程中的第一个已编码视频帧的编码码率,bitratestep表示用户设置的码率调整平滑步长;当m>bitratestep时,bitratem=bitratetgt;待编码视频帧属于这m个视频帧中的哪一个,就由相应的bitratem作为待编码视频帧的目标编码码率bitrate。

10、进一步地,所述步骤s4中,待编码视频帧的目标编码比特数=待编码视频帧的目标编码码率÷编码帧率。

11、本发明还提出了一种恒定视频质量的码率控制装置,包括视频帧psnr计算模块、视频帧psnr比较模块、视频帧比特预测模块、视频帧比特计算模块、视频帧比特控制模块。所述视频帧psnr计算模块用来在前一个视频帧编码完成时,使用其对应的原始视频帧和重建视频帧,计算出其峰值信噪比psnr。所述视频帧psnr比较模块用来判断前一个已编码视频帧的psnr是否位于用户预设的psnr下限阈值psnrmin到psnr上限阈值psnrmax的psnr阈值范围内;如果否,后续交由视频帧比特预测模块处理;如果是,后续交由视频帧比特计算模块处理。所述视频帧比特预测模块用来根据视频编码器的编码失真和编码比特率之间的关系模型即r-d模型,利用前后视频帧的参数代替,预测出能使待编码视频帧的psnr回归预设的psnr阈值范围内的待编码视频帧的目标编码比特数;后续交由视频帧比特控制模块处理。所述视频帧比特计算模块用来根据用户预设的视频序列的目标码率和码率调整平滑步长,计算出能使视频序列的编码码率维持在用户预设的目标码率的待编码视频帧的目标编码比特数;后续交由视频帧比特控制模块处理。所述视频帧比特控制模块用来根据待编码视频帧的目标编码比特数,对待编码视频帧进行目标比特控制运算,得到待编码视频帧的拉格朗日乘子和量化参数。

12、本发明取得的技术效果是:码率控制直接有效、视频质量回归迅速且无振荡。

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