帧内预测的码率控制方法与流程

文档序号:11778926阅读:281来源:国知局
帧内预测的码率控制方法与流程

本发明属于视频编码及码率控制领域,更具体地涉及一种帧内预测的码率控制方法。



背景技术:

在视频编码中,码率控制的目的是在给定编码速率的限制下,使得编码后重建视频的质量达到最优。对于视频序列来说,采用帧内预测编码的帧(intra帧)比采用帧间预测编码的帧(inter帧)的码率控制更重要,主要体现在两个方面。一是与inter帧相比,intra帧通常消耗的比特更多;二是因为在帧间预测时会将intra帧作为参考,因此intra帧编码的质量会影响后续帧的编码。

在当前新一代的视频编码标准highefficiencyvideocoding(hevc)中,针对intra帧的码率控制引入一个表征内容复杂度的量complexity(c)。复杂度的量是通过计算原始像素值的哈达玛变换,取变换系数的绝对值进行累加得到的。c的引入在一定程度上提高了intra帧的码率控制性能。但是由于复杂度不能代表所有内容的编码特性,因此这种方法依然有不完善之处。



技术实现要素:

基于以上问题,本发明的主要目的在于提出一种帧内预测的码率控制方法,用于解决以上技术问题的至少之一。

为了实现上述目的,本发明提出了一种帧内预测的码率控制方法,采用r-λ模型,包括以下步骤:

步骤1、将视频中用于帧内编码的帧分成多个编码树单元;

步骤2、将多个编码树单元输入至预训练的卷积神经网络中,经运算得到多个编码树单元中每一个的模型参数;

步骤3、根据模型参数对多个编码树单元进行比特分配;得到多个编码树单元中每一个的目标比特数,完成帧内预测的码率控制。

在本发明的一些实施例中,上述r-λ模型为:

λ=α·rβ

其中,λ为拉格朗日乘子,r为编码比特值;α及β为上述的模型参数。

在本发明的一些实施例中,上述步骤3具体包括以下步骤:

步骤31、根据模型参数,采用二分法得到帧级别的拉格朗日乘子;

步骤32、根据帧级别的拉格朗日乘子计算得到多个编码树单元中每一个的初始比特分配数;

步骤33、根据每一个编码树单元的初始比特分配数,及编码多个编码树单元中的每一个之前实际剩余的比特数,得到多个编码树单元中每一个的目标比特数,完成帧内预测的码率控制。

在本发明的一些实施例中,上述步骤33具体包括以下步骤:

设定多个编码树单元中第一个的目标比特数为其初始比特分配数;

后续的每一个编码树单元的目标比特数表示为:

其中,i表示第i个编码树单元,表示第i个编码树单元的初始比特分配数;表示自第i个编码树单元开始、剩余编码树单元的初始比特分配数的总和;表示编码该第i个编码树单元前,当前剩余的目标比特数;sw表示滑动窗口值;优选地,sw=4。

在本发明的一些实施例中,上述步骤31具体包括以下步骤:

采用二分法迭代求解如下方程,得到帧级别的拉格朗日乘子;

其中,nf为用于帧内编码的帧中当前帧分成的多个编码树单元的总数目;rf表示当前帧的目标比特数;为模型参数的变形值,λf为帧级别的拉格朗日乘子,此处,假设多个编码树单元的拉格朗日乘子即为帧级别的拉格朗日乘子。

在本发明的一些实施例中,上述多个编码树单元中每一个的初始比特分配数表示为:

在本发明的一些实施例中,对于边缘非标准大小的编码树单元,在步骤2之前,填充到标准大小后再输入到预训练的神经网络中,经运算得到的模型参数为填充后编码树单元的模型参数,根据填充后编码树单元的模型参数及一校正因子得到边缘非标准大小的编码树单元的模型参数。

在本发明的一些实施例中,根据上述填充后编码树单元的模型参数及一校正因子得到边缘非标准大小的编码树单元的模型参数时,采用以下公式:

α(a)=α(b)·sab;

β(a)=β(b)

其中,α(a)、β(a)为边缘非标准大小的编码树单元的模型参数;α(b)、β(b)为填充后编码树单元的模型参数,sab为校正因子。

在本发明的一些实施例中,上述校正因子为:

其中,为边缘非标准大小的编码树单元的大小;为填充后编码树单元的大小;优选地,该校正因子的取值范围为1≤sab≤4。

在本发明的一些实施例中,在训练所述卷积神经网络时,预先得到每个样本的r-λ模型的拟合曲线,并以该拟合曲线表征的α及β值作为每个样本的标签。

在本发明的一些实施例中,上述卷积神经网络运算包括四个卷积层、两个池化层和三个全连接层。

在本发明的一些实施例中,上述预训练的卷积神经网络采用模型参数的预测值和实际值的欧氏距离作为损失函数。

在本发明的一些实施例中,采用随机梯度下降方法优化卷积神经网络的网络参数。

在本发明的一些实施例中,步骤2中,输入的多个编码树单元,经所述卷积神经网络运算时,采用的数据为多个编码树单元中每一个的亮度分量。

本发明提出的帧内预测的码率控制方法,具有以下有益效果:

1、由于通过卷积神经网络来预测r-λ模型的参数,因此实现了对视频内容编码特性的精确刻画,从而提高了帧内预测编码的码率控制性能;

2、根据帧级别的拉格朗日乘子计算得到多个编码树单元中每一个的初始比特分配数,再根据初始比特分配数,且采用帧间帧码率的控制方法为参考,得到多个编码树单元中每一个的目标比特数,在每个序列编码一帧的情况下,可使帧内码率控制误差平均减小0.46%,同时y分量bd-rate平均降低0.7%,u、v分量bd-rate平均降低约2%。

附图说明

图1是本发明一实施例提出的帧内预测的码率控制方法的框架示意图;

图2是本发明一实施例中运算得到模型参数的卷积神经网络结构示意图;

图3(a)是本发明一实施例中边缘非标准大小的编码树单元的示意图;

图3(b)是本发明一实施例中边缘非标准大小的编码树单元填充后的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。

r-λ模型刻画了编码比特(r)和拉格朗日乘子(λ)之间的关系:

λ=α·rβ;(1)

其中α和β是模型参数,与视频内容有关。该模型把λ作为决定r的首要因素。通过实验验证了在帧内预测编码的帧(intra帧)编码的编码树单元(ctu)级别上,以上模型也同样适用,问题就在于如何获得与内容相关的参数α和β。

基于此,本发明提出了一种帧内预测的码率控制方法,采用r-λ模型,包括以下步骤:

步骤1、将视频中用于帧内编码的帧分成多个编码树单元;

步骤2、将多个编码树单元输入至预训练的卷积神经网络中,经运算得到多个编码树单元中每一个的模型参数;

步骤3、根据模型参数对多个编码树单元进行比特分配;得到多个编码树单元中每一个的目标比特数,完成帧内预测的码率控制。

因此,本发明由于通过卷积神经网络来预测r-λ模型的参数,因此实现了对视频内容编码特性的精确刻画,从而提高了intra帧的码率控制性能。

在本发明的一些实施例中,上述步骤3具体包括以下步骤:

步骤31、根据模型参数,采用二分法得到帧级别的拉格朗日乘子;

步骤32、根据帧级别的拉格朗日乘子计算得到多个编码树单元中每一个的初始比特分配数;

步骤33、根据每一个编码树单元的初始比特分配数,及编码多个编码树单元中的每一个之前实际剩余的比特数,得到多个编码树单元中每一个的目标比特数,完成帧内预测的码率控制。

在本发明的一些实施例中,上述步骤33具体为:

设定多个编码树单元中第一个的目标比特数为其初始比特分配数;

后续的每一个编码树单元的目标比特数表示为:

其中,i表示第i个编码树单元,表示第i个编码树单元的初始比特分配数;表示自第i个编码树单元开始、剩余编码树单元的初始比特分配数的总和;表示编码该第i个编码树单元前,当前剩余的目标比特数;sw表示滑动窗口值;优选地,sw=4。

在本发明的一些实施例中,上述步骤31具体为:

采用二分法迭代求解如下方程,得到帧级别的拉格朗日乘子;

其中,nf为用于帧内编码的帧中当前帧分成的多个编码树单元的总数目;rf表示当前帧的目标比特数;为模型参数的变形值,λf为帧级别的拉格朗日乘子,此处,假设多个编码树单元的拉格朗日乘子即为帧级别的拉格朗日乘子。

根据公式(1)可推算得到:

因此,的值分别为:

在本发明的一些实施例中,上述多个编码树单元中每一个的初始比特分配数表示为:

在本发明的一些实施例中,对于边缘非标准大小的编码树单元,在步骤2之前,填充到标准大小后再输入到预训练的神经网络中,经进行运算得到的模型参数为填充后编码树单元的模型参数,根据填充后编码树单元的模型参数及一校正因子得到边缘非标准大小的编码树单元的模型参数。

在本发明的一些实施例中,根据上述填充后编码树单元的模型参数及一校正因子得到边缘非标准大小的编码树单元的模型参数时,采用以下公式(7)及公式(8):

α(a)=α(b)·sab;(7)

β(a)=β(b);(8)

其中,α(a)、β(a)为边缘非标准大小的编码树单元的模型参数;α(b)、β(b)为填充后编码树单元的模型参数,sab为校正因子。

在本发明的一些实施例中,上述校正因子为:

其中,为边缘非标准大小的编码树单元的大小;为填充后编码树单元的大小;优选地,该校正因子的取值范围为1≤sab≤4。

在本发明的一些实施例中,上述卷积神经网络预先得到r-λ模型的拟合曲线,并以该拟合曲线表征的α及β值作为标签。例如,使用自然图片来训练网络,首先将图像转化成yuv420格式,然后利用hevc参考软件在allintra模式下以11个不同的量化参数(qp)值(从20到40,取值间隔为2)进行压缩,得到每个编码树单元(ctu)的r和λ数值对。然后根据上述r-λ模型的关系式拟合曲线(我们以平均比特数,bitsperpixel,bpp)作为r的度量,得到拟合结果的α和β值,作为标签。

在本发明的一些实施例中,步骤2中,卷积神经网络运算时,采用的数据为多个编码树单元中每一个的亮度分量,即提取每个64×64块(编码树单元)的亮度分量(y)作为数据。

在本发明的一些实施例中,采用参数的预测值和实际值的欧氏距离作为损失函数,并且采用随机梯度下降方法优化网络参数。

训练完成后,在实际模型运用中,编码每一帧之前,提取每个ctu的y分量,输入到两个训练好的网络,分别预测模型参数α和β。对于尺寸小于64×64的边缘ctu,首先采用填充的方法,用固定值128填充到正常大小,然后送入网络。之后通过把填充效应考虑在内,再对网络输出参数进行校正。

在本发明的一些实施例中,卷积神经网络包括4个卷积层、3个全连接层和2个池化层,该卷积神经网络以64×64的块作为输入,在最后一个全连接层输出模型参数的预测值。

以下通过具体实施例,对本发明提出的帧内预测的码率控制方法进行详细描述。

实施例

本实施例提出了一种基于卷积神经网络intra帧的码率控制方法,该方法采用的系统架构如图1所示。其中有两个网络分别用于学习输入ctu的α和β参数。对于输入的整帧图像,首先划分为若干个ctu,再将每个ctu分别作为两个网络的输入,经预测得到参数α和β。最后进行ctu级别的比特分配,得到每个ctu各自的λ参数。

该方法采用r-λ模型,包括以下步骤:

步骤1、将视频中用于帧内编码的帧分成多个编码树单元;

步骤2、将多个编码树单元输入至预训练的卷积神经网络中,经运算得到多个编码树单元中每一个的模型参数;

步骤3、根据模型参数对多个编码树单元进行比特分配;得到多个编码树单元中每一个的目标比特数,完成帧内预测的码率控制。

如图2所示,为用于计算得到模型参数的卷积神经网络结构,可以看出该网络结构包括4个卷积层(每层后面都接有非线性激活层relu),2个池化(maxpooling)层和3个全连接层。其中最后一个全连接层输出模型参数的预测值α或β。

对于边缘非标准大小的ctu,则需要先进行填充,再通过上述步骤二中的卷积神经网络运算。如图3(a)表示边缘非标准大小的ctu的原始结构,图3(b)表示图3(a)中ctu填充后的结构。卷积神经网络预测输出是图3(b)的参数,假定两个ctu的β值近似相等(通过对训练数据集的经验观察,发现不同ctu之间的β值相差不大,可看做近似相等),然后使用公式(8)和公式(9),从图3(b)的α参数得到图3(a)的α参数,其中校正因子sab的值限制在区间[1,4]上。

具体地,上述步骤3为:得到每个ctu的模型参数后,按照以下步骤实施ctu级别的比特数分配:

1)采用二分法解出下面方程,得到帧级别的λ值(λf):

其中nf为一帧中包含的ctu总数目,αbi,βbi为模型参数的变形值,其表达式如公式(4)和公式(5)所示,rf表示当前帧的目标比特数。

2)根据公式(6)计算得到每个ctu的初始比特分配数;

3)将每帧内的第一个ctu的目标比特数设为初始分配数,对于后续的ctu,第i个ctu的目标比特数按照公式(2)计算得到。

其中表示自第i个编码树单元开始、剩余编码树单元的初始比特分配数的总和:

remfi表示编码第i个ctu前,当前帧的剩余目标比特数。

综上所述,本实施例中的码率控制方法,可整体概括为:将训练好的两个卷积神经网络植入hevcintra码率控制中。实际码率控制中,如果当前帧为intra帧,则通过上述方法依次求解帧级别的λ值,并计算得到每个ctu的目标比特数,最后根据每个ctu的目标比特数,计算每个ctu的编码参数λ,即所述的拉格朗日乘子,以用于视频压缩编码。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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