一种视频编码码率控制帧层比特分配方法与流程

文档序号:14748469发布日期:2018-06-22 08:35阅读:126来源:国知局

本发明属于视频编解码领域,更具体地说,涉及一种视频编码码率控制帧层比特分配方法。



背景技术:

人类70%的信息是通过眼睛获取的,所以说百闻不如一见。人的视觉能对环境的变化做出直接的反映。随着现代信息处理技术和数字存储技术的发展和应用,视频已成为传送、记录和重现信息的高效媒体之一。为了满足人们对高质量视频消费的需求,数字视频已从现在的720P转向到了1080P,甚至4K×2K级,目前8K×4K级的视频技术也在开发中。数字视频的帧频从30fps提高到了60fps和120fps,甚至朝240fps的目标迈进。由于高清晰度和高帧频的视频包含了巨大的信息量,因此描述这些视频所需的数据量也非常大,视频流量呈现出爆炸式的增长。由于视频中存在着大量的空间冗余、时间冗余、统计冗余、视觉冗余、结构冗余、知识冗余和图像冗余等信息,如果能通过采取预测、变换、量化和熵编码等方式去除这些冗余信息,即可实现对视频数据的压缩编码。

由于高性能视频压缩编码是缓解持续增长的视频数据对通信网络传输和存储压力的关键技术之一,因此,视频编码技术在最近几十年里得到了飞速的发展,国内和国际标准化组织相继制定了很多国际视频编码标准。ITU-T和ISO于2013年1月联合发布了新一代国际视频编码标准-高效率视频编码(High Efficiency Video Coding,HEVC)。HEVC与大多数视频编码标准一样,也采用了预测加变换的混合编码框架,附图1是HEVC标准的编码框架。由于在每个视频编码模块中引入了新的编码技术,如高精度运动补偿、运动估计合并、基于语义的熵编码、自适应环路滤波等新技术,大大提高了HEVC的编码效率。

在视频通信中,由于通信网中的传输资源有限,如果视频编码器输出码流比特率过大,会导致发送端输出缓冲区上溢,使得视频传输延迟或丢帧,接收端解码播放时,视频会出现间断或不连续的现象;如果视频压缩比大,编码端输出码流比特率小,既不能充分利用传输信道资源,又会造成解码视频质量的下降,在解码后的视频中会出现方块效应或边缘轮廓模糊的现象。解决上述问题的主要手段是在视频编码器中采用码率控制技术。码率控制不但能够提高信道的利用率,还能保证较高的视频编码质量,因此,码率控制算法对视频编码的应用和视频正常通信传输有着重要的意义,是当前视频编码器不可或缺的重要组成部分。

码率控制过程可以分成两个步骤。第一步是对每一层的编码单元分配合适数量的比特,通常包括图像组(Group Of Pictures,GOP)层、帧层和基本编码单元层。编码器根据缓冲区的占有情况对每一层分配合适数量的比特。第二步是通过确定编码端的量化参数达到对每一层预先分配的比特数。

一个性能良好的码率控制算法,可以在精确的达到目标码率的同时,使得编码失真最小,因此码率控制问题被转化成如公式(1)所示的率失真优化(RDO,Rate Distortion Optimization)问题,即编码器在编码比特数不超过目标比特数的情况下,选择使失真最小的参数作为最优编码参数。公式(1)中的{Para}表示编码参数集合,包括模式、运动信息、预测参数、量化参数等;λ是拉格朗日乘子,即R-D(Rate-Distortion)曲线的斜率绝对值。

为了提高编码的灵活性,编码器可以自由选择各种编码参数的组合。由于选择不同的参数会直接影响最终视频的编码比特率,所以码率控制算法是通过在编码参数集合中选择合适的编码参数,从而达到目标码率。

HEVC采用了一种新颖的基于R-λ模型的λ域码率控制算法,使用双曲线模型来精确刻画编码算法中的R-D码率失真模型,通过公式(2)计算得到视频经压缩编码后的失真,其中,R表示压缩后的比特率,用每像素消耗的比特(bit per pixel,bpp)来表示;C和K是和视频序列内容特性相关的模型参数,不同视频序列,C和K的取值不同。

D(R)=CR-K (2)

码率控制就是在R-D码率失真模型基础上,建立码率R和编码使用的拉格朗日乘子λ之间的数学关系,并利用调整λ的方法达到所期望的目标码率。公式(3)可以计算出拉格朗日乘子λ,其中α=CK,β=-K-1。α和β这两个参数与视频序列的内容特性相关,不同序列具有不同的取值。由公式(3)进一步得到码率R与λ关系,如公式(4)所示。

由公式(4)可知码率R完全由拉格朗日乘子λ所决定。λ与R-D曲线的关系示意图如附图2所示。λ是由所有实际工作点凸包络决定的R-D曲线的斜率绝对值。码率R和拉格朗日乘子λ之间存在着一一对应关系。由于R-D曲线是凸函数,基于某个λ值计算的最小化公式(1)等效于使用斜率绝对值为λ值的直线去逼近R-D曲线,而该直线仅会和R-D曲线相切于一点。因此,λ值可以直接决定码率R和视频失真D。

为了达到所分配的某个目标码率R,编码器将根据公式(1)确定相关联的λ值,并将其用于编码过程。当编码使用的λ值确定后,所有其他的编码参数均通过率失真优化获得。

HEVC码率控制的比特分配是在图像组(GOP)层、帧层和基本编码单元层三个层次进行的。帧层的目标比特数根据R-λ模型码率控制算法中帧层固定权重并按照公式(5)进行分配。

其中,TCurrPic是当前帧的分配比特数,TGOP是当前图像组(GOP)的分配比特数,CodedGOP表示GOP中已编码的比特数,表示当前图像帧在R-λ模型码率控制算法中的帧层固定权重,为GOP中所有未编码图像的比特分配权重。

由上述可知,由于图像组中的每一帧目标比特都是根据所对应的编码结构和编码顺序提前确定的,且是固定的权重数值,没有考虑到视频序列的图像本身的复杂度,也没有考虑缓冲区的状态,从而导致了比特分配不合理。



技术实现要素:

本发明旨在解决以上现有技术的问题。提出了一种比特分配合理的视频编码码率控制帧层比特分配方法。本发明的技术方案如下:

一种视频编码码率控制帧层比特分配方法,其包括以下具体步骤:

步骤1、输入视频,对视频的帧层图像纹理进行分析,得到图像信息熵EI,最小变换域绝对误差之和SATD值;

步骤2、根据得到的EI和SATD值,以及R-λ模型码率控制算法中帧层固定权重计算出各帧图像的比特分配权重ωpic;

步骤3、根据公式(1)计算出帧层分配的比特数;

其中,TCurrPic是当前帧分配的比特数;TGOP是当前图像组GOP分配的比特数;CodedGOP表示GOP中已编码的比特数;ωpic为当前帧的比特分配权重;为GOP中所有未编码图像的比特分配权重。

步骤4、分析视频编码缓冲区的状态,通过设置缓冲区充盈度,计算出缓冲区的反馈比特;

步骤5、根据步骤3计算出的帧层分配比特数TCurrPic和缓冲区的反馈比特ΔT,计算出当前帧应分配的比特数。

进一步的,所述步骤1中的图像信息熵EI采用公式(2)计算得到。

其中,p(x)是图像x灰度级出现的概率,N为图像最大的灰度级。

进一步的,步骤1中的最小变换域绝对误差之和SATD值由公式(3)计算得到。

其中,M为像素块的行和列的像素个数,hi,j为像素块经过哈达玛变换后的对应值。

进一步的,所述步骤2中的帧层比特分配权重ωpic由公式(4)计算得到。

其中,EIi是当前帧图像的信息熵;SATDi为当前帧图像的最小变换域绝对误差之和;表示当前帧图像在R-λ模型码率控制算法中帧层固定权重;a,b为加权系数,这两个系数值大于0且小于1。

进一步的,所述步骤4中缓冲区的反馈比特计算过程如下:

计算出已编码图像帧分配得到的目标比特数,计算已编码图像帧实际编码过程中消耗的比特数,求该两个比特数的绝对差和,然后通过公式(5)计算出缓冲区剩余的比特数。

其中,Tbufleft是缓冲区剩余比特数;i表示已编码帧的序号;n是当前待编码帧的序号;是当前图像组GOP中已编码图像帧分配得到的比特数;是当前图像组中已编码图像实际消耗的比特数;为了避免缓冲区溢出,在编码一图像帧之前,先设定一个目标缓冲级L,使得编码完成后缓冲区充盈度尽量逼近该值,目标缓冲级L的计算公式如(6)所示。

L=μ×Bd (6)

Bd=R/f (7)

其中,系数μ为0~1之间的某个值;Bd为缓冲区的大小;R为信道速率,该值可预先在配置文件中设置;f为帧率。

缓冲区的反馈比特的计算公式如(8)所示。

ΔT=η×(L-Tbufleft) (8)

其中,ΔT表示缓冲区的反馈比特;系数η为0~1之间的某个值;L为目标缓冲级;Tbufleft表示缓冲区剩余比特数。

基于缓冲区充盈度分配的比特数TCurrPicbuf采用公式(9)计算得到。

进一步的,所述步骤5通过采用基于综合因子的分配权重,缓冲区反馈比特加权平均的方法,得到最终帧层比特的分配公式如(10)所示。

TCurrPicfal=γ×TCurrPic+(1-γ)×TCurrPicbuf (10)

其中,TCurrPicfal表示当前帧最终被分配的比特数;TCurrPic是根据基于综合因子的分配权重为当前帧分配的比特数;TCurrPicbuf是基于缓冲区充盈度分配的比特数;γ为加权系数,其取值范围在0~1之间,根据不同配置文件选取该值。

联立公式(1)、(9)和(10),得到如(11)所示的TCurrPicfal的计算公式。

本发明的优点及有益效果如下:

本发明解决了目前视频编码中码率控制算法没有考虑视频序列图像本身的复杂度,也没有考虑编码器缓冲区的状态,从而导致比特分配不合理的问题。本发明通过计算图像信息熵和最小变换域绝对误差之和,结合R-λ模型码率控制算法中帧层固定权重,构建了基于综合因子的分配权重,通过分析缓冲区充盈度,计算出缓冲区的反馈比特,推导出当前帧最终被分配比特数的计算公式。采用本发明提出的帧层比特分配方法,可以改进帧层的比特分配,提高比特分配的合理性,提升码率控制的精度。

附图说明

图1是本发明提供实施例视频编码标准HEVC的编码框架示意图;

图2为拉格朗日乘子λ与R-D曲线的关系示意图;

图3为本发明实施方式中的一种视频编码码率控制帧层比特分配方法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。

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

步骤一、对帧层的图像纹理进行分析,得到图像信息熵EI(Entropy Information)以及最小变换域绝对误差之和SATD(Sum of Absolute Transformed Difference)值;

步骤二、根据得到的EI和SATD,以及R-λ模型码率控制算法中帧层固定权重计算各帧图像的比特分配权重ωpic;

步骤三、根据如下公式(1)计算出帧层分配的比特数。

其中,TCurrPic是当前帧的分配比特数;TGOP是当前图像组(GOP)的分配比特数;CodedGOP表示GOP中已编码的比特数;ωpic为当前帧的比特分配权重;为GOP中所有未编码图像的比特分配权重。

步骤四、通过分析视频编码端的缓冲区状态,并设置缓冲区的充盈度,计算出缓冲区的反馈比特。

根据公式(2)和公式(3)分别计算得到图像信息熵EI以及最小变换域绝对误差之和SATD。根据EI、SATD以及当前帧图像在R-λ模型码率控制算法中帧层固定权重采用公式(4)得到基于综合因子的分配权重ωpic。

其中,p(x)是图像x灰度级出现的概率;N为最大灰度级;M为像素块行列的像素个数;hi,j为像素块经过哈达玛变换后的对应值;a,b为加权系数,其取值范围在0~1之间。

按照公式(5)~(8)计算得到缓冲区的反馈比特ΔT。

Bd=R/f (5)

L=μ×Bd (6)

ΔT=η×(L-Tbufleft) (8)

其中,Bd为缓冲区的大小;R为信道速率,其值可预先在配置文件中设置;f为帧率;ΔT表示缓冲区的反馈比特;系数μ与η的取值大于0且小于1;L为目标缓冲级;Tbufleft表示缓冲区剩余数据量;Tbufleft是缓冲区剩余数据量;i表示已编码帧的序号;n是当前编码帧的序号;是在当前图像组(GOP)中为已编码的图像帧分配获取的比特数;为在当前图像组中为已经编码的图像帧实际消耗的比特数。

最终的帧层比特数根据如下的公式(9)计算得到。

其中,TCurrPicfal表示当前帧最终被分配的比特数;TGOP是当前GOP的分配比特数;CodedGOP表示GOP中已编码的比特数;ωpic为当前帧的比特分配权重;为GOP中所有未编码图像的比特分配权重;R是信道速率,其值可预先在配置文件中设置,f是帧率;ΔT为缓冲区的反馈比特;γ为加权系数,其取值范围在0~1之间,根据不同配置文件选取其值。

实施例:

一种基于综合因子和缓冲区状态的视频编码码率控制帧层比特分配方法,该方法在视频编码的码率控制过程中,针对不同视频序列的纹理特征,通过计算图像信息熵和最小变换域绝对误差之和,再结合R-λ模型码率控制算法中帧层固定权重,构建出基于综合因子的分配权重,并考虑视频编码的缓冲区充盈度,推导出当前帧最终被分配比特数的计算公式。本发明可以提高帧层比特分配的合理性,提升码率控制的精度,改善率失真性能。

以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

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