一种避免产生超大I帧的码率控制方法及装置制造方法及图纸

技术编号:38197939 阅读:14 留言:0更新日期:2023-07-21 16:36
本发明专利技术公开了一种避免产生超大I帧的码率控制方法。步骤S1:对每一个待编码图像块进行帧内编码模式预测,得到每个待编码图像块的全部帧内编码模式候选及其对应的预测代价。步骤S2:得到待编码图像块、视频帧的帧内编码复杂度。步骤S3:计算不会导致码率控制异常的I帧的编码比特数上限值。步骤S4:计算待编码I帧的拉格朗日乘子的下限值。步骤S5:计算出待编码I帧对呼吸效应有抑制作用的拉格朗日乘子。步骤S6:选取待编码I帧的拉格朗日乘子的下限值、待编码I帧对呼吸效应有抑制作用的拉格朗日乘子中的较大值,作为待编码I帧的拉格朗日乘子。本申请既能抑制呼吸效应,又能避免编码过程中产生超大I帧。生超大I帧。生超大I帧。

【技术实现步骤摘要】
一种避免产生超大I帧的码率控制方法及装置


[0001]本专利技术涉及一种视频编码技术,特别是涉及一种码率控制方法。

技术介绍

[0002]视频编码技术是通过压缩视频图像中的冗余成分,并使用尽可能少的数据来表征视频信息。常见的视频编码标准有AVC(Advanced Video Coding,又称H.264)、HEVC(High Efficiency Video Coding,又称H.265)等。视频编码技术以图像块作为最基本的编码单元。例如在HEVC中,编码的基本单元是CU(Coding Unit,编码单元)。CU可以为64像素
×
64像素、或32像素
×
32像素、或16像素
×
16像素、或8像素
×
8像素大小的图像块。其中64像素
×
64像素大小的图像块又称为LCU(Largest Coding Unit,最大编码单元)。
[0003]为了去除空域和时域上的信息冗余,对于输入的视频帧会采用帧内编码(intra coding)技术和帧间编码(inter coding)技术进行视频编码。编码后的视频帧一般可以划分为仅采用帧内编码技术的I帧,以及混合采用帧内编码技术和帧间编码技术的P帧和B帧。I帧在进行视频编码时仅采用帧内编码技术,仅使用本视频帧的信息进行编码,不会参考其他已编码的视频帧的信息。I帧内部所有图像块都编码为帧内编码块。P帧和B帧在进行编码时,会混合采用帧内编码技术和帧间编码技术,不仅会使用本视频帧的信息进行编码,还会参考一个或多个其他已编码的视频帧的信息。P帧和B帧内部的图像块可以编码为帧内编码块,也可以编码为帧间编码块。对于P帧和B帧内部的每一个图像块,如果采用帧内编码技术的率失真代价更小,则这个图像块会被编码为帧内编码块;如果采用帧间编码技术的率失真代价更小,则这个图像块会被编码为帧间编码块。对于每一个输入的视频帧,由用户设置的图像组(GOP,Group Of Pictures,即一组时间连续的视频帧的集合)参数来决定编码帧的类型。在视频编码时,由于P帧和B帧的编码效率较高,而I帧具有阻断错误传播的作用,所以一般采用周期性编码I帧而将其余大部分视频帧编码为P帧或B帧的方式。图1展示了一个常见的图像组结构,其中包含I帧、P帧或B帧。
[0004]为了尽可能提高视频压缩率,常见的视频编码算法往往是有损压缩算法,例如AVC和HEVC就属于有损压缩算法。这造成编码重建后的视频与原始视频存在差别,即编码重建后的视频会产生失真。对于有损压缩算法,其编码性能需要由编码比特率(Rate)和编码引入的失真(Distortion)来共同衡量。在视频编码的过程中,编码比特率和编码失真是相互制约、相互矛盾的,比如降低编码比特率往往会增加编码失真,而减少编码失真又往往会增加编码比特率。率失真优化(Rate Distortion Optimization,RDO)就是在一定的编码比特率下尽可能地减少编码失真,或者在一定的编码失真下尽可能地减少编码比特率。目前在常见的视频编码算法中,都是采用基于拉格朗日乘子λ的率失真优化方法。假设D为编码失真,R为编码比特率,J为编码率失真代价(Rate Distortion Cost,RD Cost),J=D+λ
×
R。基于拉格朗日乘子λ的率失真优化方法可以表述为min(J),其中min()表示取最小值。在视频编码时,每一种编码模式都有其对应的编码失真D和编码比特率R,这样就可以计算出每一种编码模式对应的编码率失真代价J。选择率失真代价J最小的编码模式来进行视频编码,
可以获得最优的编码性能。编码器通过率失真优化的方法为每一个待编码图像块选择最优的编码模式的过程,称为待编码图像块的模式选择(Mode Decision)。
[0005]在实际生活中,用来传输压缩视频的信道带宽(信道容量)是有限的。如果压缩视频的编码比特率过高,超出了信道带宽的容量,就会造成视频传输拥塞甚至丢包。如果压缩视频的编码比特率过低,又会导致信道带宽没有得到充分利用,也无法获得更高的视频质量。因此,有必要使用码率控制技术,对视频编码器的输出码率进行控制,使之与信道带宽相匹配。
[0006]码率控制(Rate Control)技术是通过调整视频编码器的编码参数,使视频编码器的输出码率等于预先设置的目标码率,同时尽可能减少编码失真以提升视频编码质量。在常见的码率控制算法中,一般通过目标比特分配和目标比特控制两个环节来实现码率控制任务。
[0007]在常见的码率控制算法中,目标比特分配在三个层次进行,分别是GOP级别、视频帧级别、图像块级别。经过GOP级别和视频帧级别的目标比特分配之后,当前待编码视频帧的目标编码比特数就被确定下来。然后在目标比特控制环节,依据每一个待编码视频帧的目标编码比特数,计算其对应的拉格朗日乘子λ,用于视频帧的编码过程。
[0008]由于视频编码算法的运算量很大,为了提高视频编码速度,实现实时编码和传输,使用专用集成电路(ASIC)对视频编码过程进行硬件加速成为业界的通用做法。这种对视频编码过程进行硬件加速的专用集成电路一般称为硬件视频编码器。
[0009]对视频监控和视频会议类场景进行编码时,在编码后的视频流中经常会观察到周期性的视觉闪烁。特别是在场景中的静止区域,视觉闪烁更加明显。这种周期性的视觉闪烁现象称为“呼吸效应”。“呼吸效应”的产生与视频流中周期性编码的I帧有关。由于I帧仅采用了帧内编码技术,不会参考I帧之前已编码的视频帧的信息,因而I帧的失真大小和失真模式与I帧之前编码的P帧或B帧存在较大差异,这样在观看解码后的视频流时,这种失真差异就会引发人眼观察到视觉闪烁现象。在视频编码过程中,I帧一般是周期性编码的,这种人眼观察到的视觉闪烁就会周期性发生,即产生“呼吸效应”。“呼吸效应”会极大地影响观看者的主观视觉体验,因此在编码时应当对“呼吸效应”加以抑制。
[0010]为了在视频编码的过程中抑制呼吸效应,最常用的方法是将I帧的QP(Quantization Parameter,量化参数)设置在前一个已编码P帧或B帧的QP附近,即有:I帧的QP=前一个已编码P帧或B帧的QP+偏移量δ。其中,令偏移量δ为一个绝对值较小的整数,通常在[

2,2]之间。这样就可以使I帧的失真大小接近I帧之前已编码的P帧或B帧的失真大小,有效地抑制呼吸效应。通过这种方式,依据前一个已编码P帧或B帧的QP和偏移量δ计算出待编码I帧的QP后,依据QP与拉格朗日乘子λ的关系公式,就可以计算出待编码I帧的拉格朗日乘子λ,用于待编码I帧的实际编码过程。
[0011]采用上述方法对I帧进行编码,虽然可以有效地抑制呼吸效应,但是对于某些视频场景,特别是时域内容静止而空域纹理复杂的视频场景,容易编码出超大I帧,即I帧的编码比特数远远超过P帧或B帧的编码比特数。这不仅会引起剧烈的瞬时码率波动,而且会使实际编码的平均码率远远超过预设的目标码率,造成码率控制异常。对于这类视频场本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种避免产生超大I帧的码率控制方法,其特征是,包括如下步骤;步骤S1:对每一个待编码图像块进行帧内编码模式预测,得到每个待编码图像块的全部帧内编码模式候选及其对应的预测代价;步骤S2:对待编码图像块的每个帧内编码模式候选对应的预测代价进行筛选,选取最小的预测代价来表征该待编码图像块的帧内编码复杂度;然后将视频帧内所有图像块的帧内编码复杂度之和作为该视频帧的帧内编码复杂度;步骤S3:根据当前视频序列的编码状态,计算不会导致码率控制异常的I帧的编码比特数上限值;步骤S4:根据前一个已编码I帧的实际编码比特数、拉格朗日乘子和帧内编码复杂度,结合待编码I帧的编码比特数上限值和帧内编码复杂度,计算出待编码I帧的拉格朗日乘子的下限值;其中,待编码I帧的帧内编码复杂度复用待编码I帧的前一个视频帧的帧内编码复杂度;步骤S5:根据前一个已编码P帧或B帧的量化参数,计算出待编码I帧对呼吸效应有抑制作用的拉格朗日乘子;所述步骤S1至步骤S4构成一组;该组与步骤S5或者同时进行,或者任意在前;步骤S6:选取待编码I帧的拉格朗日乘子的下限值、待编码I帧对呼吸效应有抑制作用的拉格朗日乘子中的较大值,作为待编码I帧的拉格朗日乘子。2.根据权利要求1所述的避免产生超大I帧的码率控制方法,其特征是,所述步骤S1中,对每一个待编码图像块计算各个帧内编码模式对应的预测代价,将预测代价最低的一个或多个帧内编码模式作为该待编码图像块的帧内编码模式候选;所述预测代价是指编码率失真代价。3.根据权利要求1所述的避免产生超大I帧的码率控制方法,其特征是,所述步骤S2至少计算每个I帧、以及每个I帧前面一个视频帧的帧内编码复杂度。4.根据权利要求1所述的避免产生超大I帧的码率控制方法,其特征是,所述步骤S3中,还利用码率控制过程中用来平滑帧级比特分配的滑动窗口的状态信息,来计算不会导致码率控制异常的I帧的编码比特数上限值。5.根据权利要求4所述的避免产生超大I帧的码率控制方法,其特征是,所述步骤S3中,先计算滑动窗口的目标编码比特数R
sw
,R
sw
=R
PicAvg
×
(N
coded
+N
SW
)

R
coded
;其中,R
PicAvg
是由视频序列平均码率计算得到的每一个视频帧的平均目标编码比特数,N
coded
是视频序列中当前已编码的视频帧的帧数,N
SW
是滑动窗口的大小,R
coded
是视频序列中当前已编码的所有视频帧的实际编码比特数之和;再根据R
sw
计算不会导致码率控制异常的I帧的编码比特数上限值R
Imax
;其中,N
I
是滑动窗口中的I帧的个数;η为常数,取值范围为(0,1]。6.根据权利要求4所述的避免产生超大I帧的码率控制方法,其特征是,所述步骤S4由公式五:求取;其中,λ
new
是待编码I帧的拉格朗日乘子的下限值;f
‑1是第一函数f的反函数;I(n)
new
表示待编码I帧的不会导致码率控制异常的编码比特数上限值;I(m)
old
表示前一个已编码I帧的实际编码比特数;g是第二函数;ω
n
‑1表示
待编码I帧的前一个已编码视频帧的帧内编码复杂度,用来代替待编码I帧的帧内编码复...

【专利技术属性】
技术研发人员:刘鹏飞
申请(专利权)人:翱捷科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1