一种视频编码、解码方法及视频编码帧内预测器与流程

文档序号:19664770发布日期:2020-01-10 21:29阅读:247来源:国知局
一种视频编码、解码方法及视频编码帧内预测器与流程

本发明主要涉及视频编码压缩技术,具体涉及一种基于空间循环神经网络的视频编码、解码方法及视频编码帧内预测器。



背景技术:

人们对于视频质量的需求与日俱增,然而视频的数据量往往较大,存储和传输视频的硬件资源有限,成本较高,对视频进行编码压缩就显得尤为重要。这项技术深刻影响着人们生活的方方面面,包括数字电视、电影、网络视频、移动视频直播等等。

基于变换量化的编码方法,使用时频变换将图像映射到频域,选择性地减少图像中人类难以察觉的高频信息,能够在少量牺牲视觉质量的情况下,大大减小视频传输的码率,也减少了视频传输的体积。进一步地,由于视频两帧之间有着非常大的相关性和信息冗余,在一帧之内,块与块之间也有很大的纹理连续性,因此在现代编码器中,会使用帧间和帧内预测的方法,来进一步减小视频码率。

传统的帧内预测方法,基于自然图像中的纹理往往具有方向性这一假设,使用预定义的几个固定方向模式,在预测时,采用已编码块中与待编码快最邻近的一行像素作为参考像素。枚举地尝试每一个方向,选择编码代价最少的一个模式,编入码流中。该预测方法有效地减少了编码码率。然而,该方法存在缺点。一方面,该方法仅仅使用单行像素作为参考,在低码率高噪声的情形中,单行像素中的噪声会严重影响预测的准确度。另一方面,由于上述方向性假设,该方法无法处理弯曲边缘以及复杂纹理。



技术实现要素:

本发明的目的在于提供一种视频编码、解码方法及视频编码帧内预测器,增强现有视频编码器的编码性能。本发明通过块级参考像素的选取和端到端的预测方法解决上述存在的问题,提高编码效率。

本发明的技术方案为:

一种视频编码方法,其步骤包括:

1)利用待编码块的参考块的像素值均值对该待编码块进行填充,产生一图像;

2)将该图像映射到特征空间,并提取该图像的局部特征;然后利用所述局部特征对该待编码块的预测块进行填充,得到该待编码块的预测值;

3)对该待编码块的预测值和实际值的残差进行编码。

一种视频编码方法,其步骤包括:

1)取得当前待编码块周围已编码的编码块作为该待测编码块的参考块;分别使用hevc和循环神经网络生成该待编码块的预测值;其中,利用循环神经网络生成该待编码块的预测值的方法为:11)利用待编码块的参考块的像素值均值对该待编码块进行填充,产生一图像;12)将该图像映射到特征空间,并提取该图像的局部特征;然后利用所述局部特征对该待编码块的预测块进行填充,得到该待编码块的预测值;

2)计算使用hevc生成该待编码块的预测值与实际值的残差和码率代价大小,计算使用循环神经网络生成该待编码块的预测值与实际值的残差和码率代价大小;

3)如果hevc方式对应的码率代价小于循环神经网络对应的码率代价,则在码流中生成一预测模式标志位0,否则在码流中生成一预测模式标志位1,然后编码残差对应的码字。

进一步的,提取所述局部特征的方法为:对特征空间中产生的特征张量,在空间上分别使用横向和竖向的空间循环网络层提取该图像的局部特征。

进一步的,所述局部特征为刻画了参考块中像素的分布特性的特征。所述局部特征包括图像的边缘方向、像素的统计特征和像素之间纹理的方向。

进一步的,所述空间循环神经网络的第一部分为预处理卷积层、第二部分为串联循环网络预测单元、第三部分为重建卷积部分;其中,该预处理卷积层,用于将该图像映射到特征空间,该串联循环网络预测单元包括三个串联的空间循环神经网络单元,所述空间循环神经网络单元,用于将该特征空间内特征图组成的张量在空间上分别按横向和竖向切分成若干个平面,每一个平面被展开成向量,以从上到下和从左到右的顺序,分别使用门控循环单元空间循环神经网络进行处理,并将处理后得到的向量序列重新拼接成与原来平面形状一致的平面,以及根据处理后得到的向量序列在横向和竖向分别整合成一个与输入形状一致的特征张量;然后将得到的两个特征张量在通道维进行拼接;然后利用该重建卷积层对拼接后的特征张量进行融合,得到该待编码块的预测值。

进一步的,训练得到所述空间循环神经网络的方法为:

i.采集多个图像,利用采集的图像生成多个分辨率不同的视频,然后对每一视频在多个量化参数下进行编码;其中,在编码过程中,取得帧内预测的上下文作为训练数据;所述预测上下文包含预测可用的参考块和待编码块的实际值;

ii.将训练数据中待编码块周围的参考块作为输入数据,使用空间循环神经网络进行预测,得到对应待编码块的预测值;

iii.计算待编码块的预测值与实际值的satd;

iv.使用adam优化器,使用adam优化器和反向传播方法更新神经网络各层的参数;

v.重复步骤b)~步骤d),直到所述空间循环神经网络收敛。

一种视频进行解码的方法,其步骤包括:

a)从码流中读取预测模式标志位;

b)如果该预测模式标志位是0,则读取码流中表示hevc帧内预测描述的信息,使用对应的模式和已经解码的临近块,得到预测信号;如果该标志位是1,则使用空间循环神经网络进行预测,得到预测信号;

c)解码码流中编码的残差信息,将解码得到的残差信息与预测信号相加,得到对应编码块的解码重建信号。

一种视频编码帧内预测器,其特征在于,包括一循环神经网络,所述循环神经网络用于生成待编码块的预测值;其中,所述循环神经网络利用待编码块的参考块的像素值均值对该待编码块进行填充,产生一图像;然后将该图像映射到特征空间,并提取该图像的局部特征;然后利用所述局部特征对该待编码块的预测块进行填充,得到该待编码块的预测值。

具体来说,本发明以hevc编码器为基本框架。hevc会对视频的一帧进行分块编码。在编码一个待编码块(predictionunit,pu)时,编码器首先会使用已经编码的部分来预测该pu的像素,再编码预测值和实际值的残差。预测越准确,残差越稀疏,编码残差的代价越小。

在本发明中,重点改进了预测的方法。具体来说,本发明设计了适用于视频帧内预测编码的空间循环神经网络。在该神经网络中,首先使用参考块像素值的均值对待编码块进行填充产生输入图像,然后使用卷积神经网络,将上述图像映射到特征空间。在特征空间中,针对产生的特征张量,在空间上分别使用横向和竖向的空间循环网络层提取上述产生的输入图像的局部特征。自主学习提取的局部特征,例如图像中内容的边缘方向,像素的统计特征和像素之间纹理的方向,刻画了参考块中像素的分布特性。基于待编码块中的像素分布和参考块中的分布一致这一假设,自主学习的网络结构可以利用这些特征,根据已知区域逐渐产生未知区域的特征,来逐步补充待编码区域的内容。横向空间循环神经网络主要对纹理的横向分量进行处理,竖向空间循环神经网络主要对纹理的竖向分量进行处理。最终再使用卷积神经网络对横向预测和竖向预测进行融合,重复以上过程三次之后,使用卷积神经网络将特征空间中的特征图再次映射回像素空间,得到待编码块的预测值。使用该空间循环神经网络,提高了预测的准确度,减少了编码预测中需要记录的标志位所占的码率,从而整体提高了编码性能。

结合描述和附图1对本发明的空间循环神经网络进行介绍。该神经网络包括一预处理卷积层,该预处理卷积层包括两层,第一层为卷积层,滤波器卷积核大小为1×1,产生64个通道的特征图,第二层为卷积层,卷积核大小为3×3,产生8通道的特征图,之后是三个结构相同的空间循环神经网络单元构成的串联循环网络预测单元。如图所示,每一个单元首先将特征图组成的张量在空间上按横向和竖向切分成若干个平面,每一个平面被展开成向量,以从上到下和从左到右的顺序,分别使用门控循环单元(gatedrecurrentunits,gru)空间循环神经网络进行处理。处理之后的数据分别为横向切分的处理后的向量序列和纵向切分的处理后的向量序列。将横向切分的处理后的向量序列重新拼接成与原来平面形状一致的平面,再整合成与横向切分前形状一致的特征张量;将纵向切分的处理后的向量序列重新拼接成与原来平面形状一致的平面,再整合成与纵向切分前形状一致的特征张量,即得到两个特征张量。这两个特征张量在通道维进行拼接,使用卷积核大小为3×3,产生8个通道特征图的卷积层进行融合,得到该单元输出的预测性的特征张量。三个连续的单元均服从上述结构描述,不同的是,第一个预测单元中的卷积层会设置卷积步长(stride)为3,降低特征张量的空间尺寸,使其与输出一致。三个连续的单元之后,使用一个卷积核大小为1×1,产生1个通道特征图的卷积层,将输入的特征张量映射回到像素空间,得到待编码块的预测值。每一个卷积层后均prelu激活函数对该层和输出进行非线性映射。

接下来描述该装置的主要使用过程。

训练过程。由于神经网络的方法是基于数据和学习的方法,因此在实际使用之前,需要进行训练。训练使用反向传播算法进行。值得注意的是,由于训练的网络的目的是用于帧内预测,因此,不同于传统网络训练使用均方差(meansquareerror,mse)作为训练目标函数,本发明中的网络使用绝对变换误差和(sumofabsolutetransformeddifference,satd)作为目标函数进行网络训练。以下分别描述各个步骤:

步骤1:采集足够的图像,利用图像生成多个分辨率不同的视频,在多个量化参数(quantizationparameter,qp)下进行编码。在编码过程中,取得帧内预测的上下文。预测上下文中就包含了预测可用的参考块和待编码块的实际值,可以直接作为训练数据。

步骤2:将训练数据中,待编码块周围的参考像素块作为输入数据,使用空间循环神经网络进行预测,得到对应的待编码块的预测值。

步骤3:计算待编码块的预测值与实际值的satd。

步骤4:使用adam优化器和反向传播方法更新神经网络各层的参数。即使用adam优化器,计算satd值关于空间循环神经网络中各层中的可学习的卷积滤波器、空间循环神经网络变换矩阵中的可学习参数的梯度,根据该梯度更新空间循环神经网络中的上述参数。

步骤5:重复步骤2到步骤4,直到网络收敛。

网络训练完成之后,将网络整合到hevc编解码器中使用,在编码预测中,需要将hevc原先的方向性预测器和空间循环神经网络的预测器整合进行了率失真优化(ratedistortionoptimization,rdo)具体过程如下。

编码预测过程:

步骤1:取得当前pu周围已编码的参考块,分别使用hevc的35种模式和循环神经网络进行预测信号生成。

步骤2:使用hevc中rdo的策略,使用hevc设定的计算编码预测残差的率失真代价的计算函数,计算编码预测之后与pu的实际像素值的残差,以及编码该残差和模式标志位的码率代价大小,使用hevc帧内预测器时,还需要编码最终预测使用的方向模式。

步骤3:选择上述代价最小的方式(hevc方式和神经网络方式),如果hevc代价更小,在码流中生成一预测模式标志位编码0,如果神经网络代价更小,在码流中生成一预测模式标志位编码1,然后继续编码残差对应的码字。

步骤4:根据上述编码结果,解码得到该pu的重建像素值。继续进行下一块的预测编码。

步骤5:对每个待编码块的帧内预测部分,均进行步骤1-步骤4,直到视频编码结束。

解码中的预测过程:

步骤1:从码流中读取预测模式标志位。

步骤2:如果该标志位是0,读取码流中表示hevc帧内预测描述的信息,使用对应的模式和已经解码的临近块,得到预测信号;如果该标志位是1,直接使用空间循环神经网络进行预测,得到预测信号。

步骤3:解码码流中编码的残差信息,与预测信号相加,得到对应编码块的解码重建信号。

步骤4:对每个待解码块的帧内预测部分,均进行步骤1-步骤3,直到视频解码结束。

与现有技术相比,本发明的积极效果为:

1.本发明使用块级的参考像素,相比现有的使用单行像素作为参考像素的技术,能够一定程度抵御噪声的影响,提高预测准确度。

2.本发明使用端到端的空间循环神经网络进行预测,该网络能够对像素之间的关系进行建模,能够对弯曲边缘和复杂纹理进行预测。同时,端到端的方式节省了编码预测方向所需要的码流,带来了码率节省。

3.实验表明,在通用测试条件下,该方法相比hevc,在相同的质量下能够平均节省2.45%的码率。

实验结果如下表所示:

测试条件包含a-e5个class,分别对应不同的视频分辨率。测试使用的是在qp为22,27,32,37下的bd-rate作为指标,负的百分比表示码率节省。

附图说明

图1为本发明的流程图。

具体实施方式

为了对本发明的技术进行进一步阐释,下面结合说明书附图和具体事例,对本发明中的训练以及编解码流程进行进一步的详细说明。

由于本发明基于现有的hevc编码器,本发明的核心思想体现在帧内预测部分,因此本实例针对本发明中的关键部分—空间循环神经网络帧内预测器进行详细说明。假设我们已经构建了如图1所示的神经网络模型,本实例将首先描述训练过程:

步骤1:采集足够的图像,将图像分别缩放到原来的四分之三和二分之一线度尺寸大小,分别得到三组图像,每组图像数量一致,大小分别是1,3/4和1/2倍的原始大小。

步骤2:将每组图像,转化成yuv4:2:0格式,并且拼接得到视频,再使用hevc,对这些由图像得到的视频在22,27,32,37四个量化参数(quantizationparameter,qp)的配置下,进行编码和解码,得到对应质量的重建视频。

步骤3:在上述编码过程中,采集hevc进行一次帧内预测时,预测块的实际像素值,以及该预测块周围的作为预测上下文的块的像素值,这一组“上下文-预测块”对就作为一对训练数据。采集所有的训练数据对,组成集合。注意到,如图1所示,训练上下文中未知的区域会使用已知区域像素值的均值进行填充,补全得到一个完整的方形图像。

步骤4:在该集合中随机选取k个训练数据对,将补全后的方形的预测上下文图像输入到网络中。在网络中首先经过预处理卷积层进行像素空间到特征空间的变换,得到的特征图。

步骤5:接下来,在串联的空间循环神经网络中的第一个循环神经网络单元中,不断逐步递进地针对特征图产生预测输出特征图。如图1所示,在该特征图首先被分别按照行和列切成平面,每一个平面被展开成向量,以从上到下和从左到右的顺序,分别使用门控循环单元(gatedrecurrentunits,gru)空间循环神经网络进行处理。处理之后的数据仍然为向量的序列,将这些向量重新拼接成与原来平面形状一致的平面,横向和竖向分别整合成一个与输入形状一致的特征张量。

步骤6:使用步骤5分别得到的横切和竖切的循环神经网络输出的特征张量,重新拼合成特征张量,然后,两个特征张量组合并成一个特征张量。

步骤7:使用卷积层对上述特征图组进行卷积,得到融合的特征图组,作为该循环神经网络单元的输出。

步骤8:使用步长(stride)为3的卷积层,将原来的特征图的空间尺寸缩小到原来的1/3,和待预测块的尺寸一致。

步骤9:得到的缩小后的特征图,根据之前描述的循环神经网络单元的计算方式,使用另外两个相连的循环神经网络单元,依次类似步骤5-步骤7进行处理,进行循环神经网络处理。

步骤10:最终得到的特征图,使用一个卷机层映射到像素空间,得到输出的预测信号。

步骤11:计算预测信号与训练数据对中包含的实际像素信号的satd。

步骤12:获得satd值之后,计算该值关于网络每一层中参数的梯度,进行反向传播,训练网络。

步骤13:重复步骤4-步骤12,直到网络收敛。

接下来描述编码过程:

步骤1:将上述训练完成的模型整合到hevc编码器中。

步骤2:对于视频编码中的某一个待编码块,假设其左上侧数个最邻近的块均已经编码,并且已获得其解码重建的像素值。将这些重建的块作为预测上下文。

步骤3:将预测上下文按照之前描述的方法补全生成方形图像块,其中未知区域的像素用已知区域像素的均值来填补。将补全后的方形的预测上下文图像输入到网络中。

步骤4:按照之前描述的神经网络的处理方法,依次进行特征图映射,特征图上的循环神经网络预测处理融合,和最终特征图到预测信号的映射,得到最终的预测信号。

步骤5:对于上述预测上下文,再使用hevc原先的预测方法得到另一组预测结果。按照hevc的方法进行率失真优化,选择最好的结果。

步骤6:如果选择的结果是hevc的方法,在码流中编码0,如果选择的结果是网络的输出,在码流中编码1。之后按照现有hevc流程继续编码。

与编码过程相对的,解码过程中的预测的详细描述如下:

步骤1:将上述训练完成的模型整合到hevc解码器中。

步骤2:对于视频编码中的某一个待解码块,假设其左上侧数个最邻近的块均已经解码,并且已获得其解码重建的像素值。将这些重建的块作为预测上下文。

步骤3:从码流中提取编码过程中编入的标志位。如果标志位是0,使用hevc自身的预测器进行预测,按照现有hevc的解码流程继续解码。

步骤4:如果标志位是1,将预测上下文按照之前描述的方法补全生成方形图像块,其中未知区域的像素用已知区域像素的均值来填补。将补全后的方形的预测上下文图像输入到网络中。

步骤4:按照之前描述的神经网络的处理方法,依次进行特征图映射,特征图上的循环神经网络预测处理融合,和最终特征图到预测信号的映射,得到最终的预测信号。

步骤5:使用得到的预测信号,按照现有hevc流程继续解码。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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