HEVC全I帧编码基于显著性的CTU层码率分配方法与流程

文档序号:17074128发布日期:2019-03-08 23:34阅读:363来源:国知局
HEVC全I帧编码基于显著性的CTU层码率分配方法与流程

本发明涉及视频编码特别是视频主观质量优化编码技术领域,具体涉及一种hevc全i帧编码基于显著性的ctu层码率分配方法。



背景技术:

视频编码的目标是在码率的限制下获得最优的主观视频质量。高性能视频编码(hevc)即h.265是目前国际上最新的视频编码标准,相比上一代视频编码标准h.264其编码效率提高了一倍,支持全i帧编码、低延迟(ld)与随机接入(ra)多种配置。其中全i帧编码仅利用帧内像素进行空间预测而不利用帧间像素进行时间预测,具有编码速度快以及便于帧间并行编码等特点,适合对编码速度与图像质量要求高而对压缩效率要求相对较低的场合。但目前提出的hevc码率分配与码率控制算法大多针对ld与ra配置下p帧或b帧的帧层或编码树单元(ctu)层进行优化,而针对全i帧编码配置的帧层或ctu层的码率分配与控制算法极少且常常较为简单,比如为i帧所有ctu分配相同的目标比特或使用相同的量化参数(qp)进行编码而不考虑ctu的特性,这两种方法实现简单,但都会造成码率资源的浪费而无法得到最优的主观图像质量。

传统码率分配与控制的另一个问题是极少考虑人眼观察图像时对不同区域的敏感性差异,而仅考虑图像内容的客观复杂度,导致码率分配及编码后的质量与主观视觉不一致。截止目前,有少数文献尝试利用视觉显著性对h.264及hevc编码的p帧与b帧帧层或编码单元层进行qp调整与码率控制。比如胡瑞敏等人在2012年获得授权的发明专利:一种基于视觉显著度模型的视频编码码率控制方法(cn102164281b),该发明专利对h.264的p帧与b帧编码利用itti等人在2003年提出的显著度模型提取当前帧的显著度区域并进行帧层目标比特分配,之后结合纹理、运动和显著度进行宏块(mb)层比特分配和编码,提高了h.264p帧与b帧编码的主观质量。而唐桐等人在2016年获得公布的发明专利:基于梯度的全i帧视频码率控制方法及控制系统(cn106231305a),利用梯度信息对全i帧编码的帧层及ctu层qp进行调节,提高了i帧编码的主观质量。但梯度信息描述的是客观复杂度,与人眼主观敏感度仍有差异。本发明基于显著性进行hevc全i帧编码的帧层及ctu层码率分配,较好地解决了上述问题。



技术实现要素:

本发明的目的在于提供一种hevc全i帧编码基于显著性的ctu层码率分配方法,以解决现有技术中导致的上述多项缺陷。

一种hevc全i帧编码基于显著性的ctu层码率分配方法,包括以下步骤:

s1:在全i帧编码配置下读入当前编码帧,以4×4像素块为单位计算当前帧不同区域的显著性;

s2:对ctu包含的4×4像素块的显著性取平均作为ctu的显著性,并对整帧ctu层的显著性进行归一化,对整帧ctu层的显著性取平均作为帧层显著性;

s3:根据编码当前帧时的视频剩余比特数、缓冲区充满度和当前帧的显著性为当前帧分配目标比特;

s4:根据当前帧剩余比特数、当前ctu的帧内和帧间显著性权重为当前ctu分配目标比特;

s5:由码率模型计算当前ctu编码的lagrange乘子(λ),再根据λ得到当前ctu的量化参数进行编码;

s6:对剩余比特数以及各种模型参数进行更新,继续编码下一个ctu直到当前帧所有ctu以及全部i帧编码完成。

优选的,所述步骤s1包括如下步骤:

s11:读入当前编码帧的yuv像素值,将亮度通道(y)按照4×4像素块大小进行划分,联合y通道的4×4像素块及其对应的uv通道的像素值形成4×4块层的特征向量

s12:利用4×4块层的特征向量使用局部对比度原理计算4×4块的显著性,计算公式如下:

其中,k表示当前编码帧号,m表示第m个4×4块,n表示局部相邻8邻域4×4块的块号,dist()表示两个特征向量之间的欧氏距离,表示第k帧第m个4×4块的显著性。

优选的,所述步骤s2包括如下步骤:

s21:对ctu包含的4×4块的显著性取平均作为ctu的显著性,计算公式如下:

其中,表示第k帧第i个ctu包含4×4块的数目,是第k帧第i个ctu的显著性;

s22:对整帧ctu层的显著性进行归一化处理;

s23:对整帧ctu层的显著性取平均作为帧层显著性,计算公式如下:

其中,表示第k帧ctu的数目,sk是第k帧帧层的显著性。

优选的,所述步骤s3包括如下步骤:

s31:根据编码当前帧时的视频剩余比特数为当前帧分配目标比特tk,r,计算公式如下:

其中,k表示当前编码帧号,tr是编码当前帧时视频剩余比特数,nr是编码当前帧时视频剩余未编码的帧数,tk,r是根据视频剩余比特数为当前帧分配的目标比特;

s32:根据编码当前帧时的实际缓冲区充满度为当前帧分配目标比特tk,b,计算公式如下:

其中,bit_rate是目标码率,frame_rate是帧率,tblk是编码当前帧时的目标缓冲水平,bufferk是编码当前帧时的实际缓冲区充满度,γ是常数,其值为0.25,用来控制缓冲区充满度对帧层比特分配的影响强度,tk,b是根据实际缓冲区充满度为当前帧分配的目标比特;

s33:综合考虑tk,r与tk,b,并结合当前帧的显著性为当前帧分配最终目标比特,计算公式如下:

tk=swk×[β×tk,r+(1-β)×tk,b]

其中,β是常数,其值为0.9,sk与sk-1分别是当前第k帧与前一帧的帧层显著性,swk是当前帧的显著性加权因子,其值被限制在[0.81.2]之间,以免相邻两帧目标比特分配差异过大导致帧间质量波动的情况。

优选的,所述步骤s4包括如下步骤:

s41:根据编码当前ctu时当前帧剩余比特数和当前ctu的帧内显著性权重,为当前ctu分配目标比特计算公式如下:

其中,i表示当前编码ctu号,是编码当前第k帧第i个ctu时帧剩余比特数,是第k帧第i个ctu的显著性,是一帧中ctu的数目,是当前ctu的帧内显著性权重;

s42:根据当前ctu前一帧相同位置ctu的实际编码比特数和当前ctu的帧间显著性权重,为当前ctu分配目标比特计算公式如下:

其中,是前一帧相同位置ctu的实际编码比特数,是前一帧相同位置ctu的显著性,是当前ctu的帧间显著性权重,其值被限制在[0.81.2]之间;

s43:综合考虑为当前ctu分配最终目标比特计算公式如下:

其中,α是常数,其值为0.8,用于控制帧剩余比特数与前一帧相同位置ctu实际编码比特数对当前ctu目标比特分配的贡献。

优选的,所述步骤s5包括如下步骤:

s51:由码率模型r-λ计算当前ctu编码的lagrange乘子

s52:根据量化参数qp与lagrange乘子的关系计算当前ctu编码的量化参数计算公式如下:

s53:根据量化参数对当前ctu进行编码。

优选的,所述步骤s6包括如下步骤:当前ctu编码完成后,对帧剩余比特数和码率模型参数进行更新,继续编码下一个ctu直到当前帧所有ctu编码完成,以及全部i帧编码完成。

本发明的优点在于:(1)本发明对hevc全i帧编码配置利用显著性进行帧层与ctu层的目标码率分配,使编码结果更符合人眼感知特性;(2)本发明充分利用视频剩余比特数、缓冲区充满度和帧层显著性为当前帧分配目标比特,使得帧层目标比特分配更加合理;(3)本发明充分利用帧剩余比特数、前一帧相同位置ctu的实际编码比特数以及当前ctu的帧内与帧间显著性权重,使得ctu层目标比特分配更加合理,进而提高了编码的主观质量。

附图说明

图1为本发明的流程图。

具体实施方式

为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。

如图1所示,一种hevc全i帧编码基于显著性的ctu层码率分配方法,包括以下步骤:

s1:在全i帧编码配置下读入当前编码帧,以4×4像素块为单位计算当前帧不同区域的显著性,步骤s1包括如下步骤:

s11:读入当前编码帧的yuv像素值,将亮度通道(y)按照4×4像素块大小进行划分,联合y通道的4×4像素块及其对应的uv通道的像素值形成4×4块层的特征向量

s12:利用4×4块层的特征向量使用局部对比度原理计算4×4块的显著性,计算公式如下:

其中,k表示当前编码帧号,m表示第m个4×4块,n表示局部相邻8邻域4×4块的块号,dist()表示两个特征向量之间的欧氏距离,表示第k帧第m个4×4块的显著性;

s2:对ctu包含的4×4像素块的显著性取平均作为ctu的显著性,并对整帧ctu层的显著性进行归一化,对整帧ctu层的显著性取平均作为帧层显著性,步骤s2包括如下步骤:

s21:对ctu包含的4×4块的显著性取平均作为ctu的显著性,计算公式如下:

其中,表示第k帧第i个ctu包含4×4块的数目,是第k帧第i个ctu的显著性;

s22:对整帧ctu层的显著性进行归一化处理;

s23:对整帧ctu层的显著性取平均作为帧层显著性,计算公式如下:

其中,表示第k帧ctu的数目,sk是第k帧帧层的显著性;

s3:根据编码当前帧时的视频剩余比特数、缓冲区充满度和当前帧的显著性为当前帧分配目标比特,步骤s3包括如下步骤:

s31:根据编码当前帧时的视频剩余比特数为当前帧分配目标比特tk,r,计算公式如下:

其中,k表示当前编码帧号,tr是编码当前帧时视频剩余比特数,nr是编码当前帧时视频剩余未编码的帧数,tk,r是根据视频剩余比特数为当前帧分配的目标比特;

s32:根据编码当前帧时的实际缓冲区充满度为当前帧分配目标比特tk,b,计算公式如下:

其中,bit_rate是目标码率,frame_rate是帧率,tblk是编码当前帧时的目标缓冲水平,bufferk是编码当前帧时的实际缓冲区充满度,γ是常数,其值为0.25,用来控制缓冲区充满度对帧层比特分配的影响强度,tk,b是根据实际缓冲区充满度为当前帧分配的目标比特;

s33:综合考虑tk,r与tk,b,并结合当前帧的显著性为当前帧分配最终目标比特,计算公式如下:

tk=swk×[β×tk,r+(1-β)×tk,b]

其中,β是常数,其值为0.9,sk与sk-1分别是当前第k帧与前一帧的帧层显著性,swk是当前帧的显著性加权因子,其值被限制在[0.81.2]之间,以免相邻两帧目标比特分配差异过大导致帧间质量波动的情况;

s4:根据当前帧剩余比特数、当前ctu的帧内和帧间显著性权重为当前ctu分配目标比特,步骤s4包括如下步骤:

s41:根据编码当前ctu时当前帧剩余比特数和当前ctu的帧内显著性权重,为当前ctu分配目标比特计算公式如下:

其中,i表示当前编码ctu号,是编码当前第k帧第i个ctu时帧剩余比特数,是第k帧第i个ctu的显著性,是一帧中ctu的数目,是当前ctu的帧内显著性权重;

s42:根据当前ctu前一帧相同位置ctu的实际编码比特数和当前ctu的帧间显著性权重,为当前ctu分配目标比特计算公式如下:

其中,是前一帧相同位置ctu的实际编码比特数,是前一帧相同位置ctu的显著性,是当前ctu的帧间显著性权重,其值被限制在[0.81.2]之间;

s43:综合考虑为当前ctu分配最终目标比特计算公式如下:

其中,α是常数,其值为0.8,用于控制帧剩余比特数与前一帧相同位置ctu实际编码比特数对当前ctu目标比特分配的贡献;

s5:由码率模型计算当前ctu编码的lagrange乘子(λ),再根据λ得到当前ctu的量化参数进行编码,步骤s5包括如下步骤:

s51:由码率模型r-λ计算当前ctu编码的lagrange乘子

s52:根据量化参数qp与lagrange乘子的关系计算当前ctu编码的量化参数计算公式如下:

s53:根据量化参数对当前ctu进行编码;

s6:对剩余比特数以及各种模型参数进行更新,继续编码下一个ctu直到当前帧所有ctu以及全部i帧编码完成,步骤s6包括如下步骤:当前ctu编码完成后,对帧剩余比特数和码率模型参数进行更新,继续编码下一个ctu直到当前帧所有ctu编码完成,以及全部i帧编码完成。

由技术常识可知,本发明可以通过其它的不脱离其精神实质或必要特征的实施方案来实现。因此,上述公开的实施方案,就各方面而言,都只是举例说明,并不是仅有的。所有在本发明范围内或在等同于本发明的范围内的改变均被本发明包含。

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