一种基于双向预测的B帧图像的参考帧生成方法及装置与流程

文档序号:16519513发布日期:2019-01-05 09:52阅读:288来源:国知局
一种基于双向预测的B帧图像的参考帧生成方法及装置与流程

本申请涉及视频编码技术领域,尤其涉及一种基于双向预测的b帧图像的参考帧生成方法及装置。



背景技术:

随着多媒体技术的广泛应用,以及多媒体数据的日渐膨胀,视频编码技术的重要性日渐突显。现代编码技术采用混合编码框架,包括预测、变换、量化和熵编码等过程。其中,预测编码包括帧内预测和帧间预测,前者是利用同一帧图像中已经编码并重建的图像块对当前要编码的图像块进行预测,后者是利用已经编码并重建的其它帧的图像对当前要编码的图像进行预测。由于帧间预测编码利用了视频序列的时间相关性,去除了空间冗余,因而是目前视频编码框架中的重要环节。

最新一代视频编码标准(hevc)[1]中引入了双向运动估计的方法,在randomaccess配置下,b帧图像使用前向参考帧和后向参考帧作为参考,通过运动估计获得当前待编码图像的参考图像。然后,由于参考图像与当前待编码图像位于不同时刻,导致图像内容存在较大程度的差异,预测性能偏低。因而,急需一种高效的参考帧生成方法,使得参考图像与待编码图像位于同一时刻,进而提升预测性能。



技术实现要素:

为解决现有技术的不足,本申请提出一种基于双向预测的b帧图像的参考帧生成方法及装置。

一方面,本申请提出一种基于双向预测的b帧图像的参考帧生成方法,包括:

获取与待编码b帧图像时间距离相等且反向的第一重构图像和第二重构图像;

根据所述第一重构图像和所述第二重构图像,生成所述待编码b帧图像的预测图像;

对所述预测图像进行质量增强,得到所述待编码b帧图像的参考帧。

可选的,所述获取与待编码b帧图像时间距离相等且反向的第一重构图像和第二重构图像,包括:

根据待编码b帧图像所在的当前时刻,在已解码缓冲区中获取所在时刻与所述当前时刻的时间间隔相等、方向相反的第一重构图像和第二重构图像,且所述第一重构图像的所在时刻与所述第二重构图像的所在时刻之间的时间间隔最小。

可选的,所述根据所述第一重构图像和所述第二重构图像,生成所述待编码b帧图像的预测图像,包括:

采用帧率提升算法对所述第一重构图像和所述第二重构图像进行重构,得到所述待编码b帧图像的预测图像。

可选的,所述对所述预测图像进行质量增强,包括:

采用深度学习方法对所述预测图像进行质量增强。

可选的,所述得到所述待编码b帧图像的参考帧之后,还包括:

将所述参考帧保存至参考列表,并根据所述参考列表中的各参考帧对所述待编码b帧图像进行编码。

另一方面,本申请提出一种基于双向预测的b帧图像的参考帧生成装置,包括:

获取模块,用于获取与待编码b帧图像时间距离相等且反向的第一重构图像和第二重构图像;

生成模块,用于根据所述获取模块获取的第一重构图像和第二重构图像,生成所述待编码b帧图像的预测图像;

增强模块,用于对所述生成模块生成的预测图像进行质量增强,得到所述待编码b帧图像的参考帧。

可选的,所述获取模块具体用于:

根据待编码b帧图像所在的当前时刻,在已解码缓冲区中获取所在时刻与所述当前时刻的时间间隔相等、方向相反的第一重构图像和第二重构图像,且所述第一重构图像的所在时刻与所述第二重构图像的所在时刻之间的时间间隔最小。

可选的,所述生成模块具体用于:

采用帧率提升算法对所述第一重构图像和所述第二重构图像进行重构,得到所述待编码b帧图像的预测图像。

可选的,所述增强模块具体用于:

采用深度学习方法对所述预测图像进行质量增强。

可选的,装置还包括:保存模块和编码模块;

所述保存模块,用于将所述增强模块得到的参考帧保存至参考列表;

所述编码模块,用于根据所述参考列表中的各参考帧对所述待编码b帧图像进行编码。

本申请的优点在于:

通过双向预测,使得生成的参考帧与待编码b帧图像位于同一时刻,并且,将该参考帧保存至参考列表,实现了参考列表的扩充,从而在基于参考列表对待编码b帧图像进行帧间编码时,提升了待编码b帧图像的预测质量。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

附图1为根据本申请实施方式的层次b帧编码结构示意图;

附图2为根据本申请实施方式的一种基于双向预测的b帧图像的参考帧生成方法流程图;

附图3为根据本申请实施方式的参考列表管理示意图;

附图4为根据本申请实施方式的一种待编码b帧图像的编码方法流程图;

附图5为根据本申请实施方式的另一种待编码b帧图像的编码方法流程图;

附图6为根据本申请实施方式的一种基于双向预测的b帧图像的参考帧生成装置框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

最新一代的视频编码标准(hevc)采用层次b帧编码结构,其示意图如图1所示,其中i0和b8属于第0层,b4属于第1层,b2和b6属于第2层,b1、b3、b5、b7属于第3层。本申请中,在双向预测待编码b帧图像时,利用与待编码b帧图像时间间隔最近的一对重构图像生成待编码b帧图像的预测图像,并基于该预测图像对待编码b帧图像进行帧间编码;以下对本申请中的方法及装置进行进一步详述。

实施例一

根据本申请的实施方式,提出一种基于双向预测的b帧图像的参考帧生成方法,如图2所示,包括:

步骤101:获取与待编码b帧图像时间距离相等且反向的第一重构图像和第二重构图像;

具体的,根据待编码b帧图像所在的当前时刻,在已解码缓冲区(dpb)中获取所在时刻与所述当前时刻的时间间隔相等、方向相反的第一重构图像和第二重构图像,且第一重构图像的所在时刻与第二重构图像的所在时刻之间的时间间隔最小。

更加具体的,将待编码b帧图像记为bcurrent,将第一重构图像记为pi,将第二重构图像记为pj,将已解码缓冲区中的所有已解码图像记为第一重构图像与第二重构图像满足以下条件:

abs(t(pi)-t(bcurrent))=abs(t(pj)-t(bcurrent));

min(abs(t(pj)-t(pi)));

其中,abs表示绝对值算子,t(pi)为第一重构图像的所在时刻,t(bcurrent)为待编码b帧图像所在的当前时刻,t(pj)为第二重构图像的所在时刻。

步骤102:根据获取的第一重构图像和第二重构图像,生成待编码b帧图像的预测图像;

具体的,采用帧率提升算法对获取的第一重构图像和第二重构图像进行重构,得到待编码b帧图像的预测图像;该过程表示为:

bcurrent`=f(rec(pi),rec(pj))

其中,bcurrent`为待编码b帧图像的预测图像,rec表示重构过程,f表示帧率提升过程。

以图1中位于第三层图像为例,在生成图像b1的预测图像时,对应的第一重构图像为i0、第二重构图像为b2;在生成图像b3的预测图像时,对应的第一重构图像为b2、第二重构图像为b4;在生成图像b5的预测图像时,对应的第一重构图像为b4、第二重构图像为b6;在生成图像b7的预测图像时,对应的第一重构图像为b6、第二重构图像为b8;预测图像的生成过程可表示为:

其中,b1`、b3`、b5`、b7`分别为图像b1、b3、b5、b7的预测图像。

步骤103:对生成的预测图像进行质量增强,得到待编码b帧图像的参考帧。

具体的,采用深度学习方法对生成的预测图像进行质量增强。

更加具体的,采用神经网络模型对生成的预测图像进行质量增强,该神经网络模型的目标为最小化预测图像与待编码b帧图像的均方误差,即:

其中,l(θ)为训练过程的损失函数,θ表示卷积模型参数,e表示增强过程,n为图像中像素的总数量,1≤i≤n,增强后的结果为e(bcurrent`;θ)。

进一步的,该神经网络模型的生成过程包括:

在原始视频帧序列中获取相邻帧作为帧率提升方法的输入,并将经过帧率提升方法处理的输出作为标注数据;

对获取的相邻帧分别进行基于量化步长(qp)的编码,并将编码后的相邻帧作为帧率提升方法的输入,将将经过帧率提升方法处理的输出作为输入数据;

将标注数据和输入数据作为训练数据,以l(θ)作为模型优化目标进行训练,收敛后得到模型参数。

需要说明的,本申请中,对于不同的量化步长训练对应模型。

更进一步的,在hevc参考软件hm16.6上,对于hevc通用测试序列,在测试时间2s,以及randomaccess配置下,对于本申请生成的预测图像,在未进行质量增强处理时,预测图像的性能如表1所示,在进行了质量增强处理后的预测图像的性能如表2所示。

表1

表2

通过上述实验数据可知,本申请中生成的预测图像在不进行质量增强处理时,在hm16.6平台上y分量可以获得平均5.9%的性能增益;而进行了质量增强处理后,在hm16.6平台上y分量可以获得平均6.8%的性能增益;在进行质量增强处理后,图片质量显著提高。

需要说明的是,本申请中的方法不限于集成在hevc参考软件hm16.6中,同样适用于其他的编解码平台,如jem,h.264/avc,avs2等。

本申请中,由于步骤102中对第一重构图像和第二重构图像进行了重构,使得生成的预测图像的图像内容包含了编码带来的量化噪声,失真严重。通过质量增强操作,提升了生成的预测图像的质量,以在后续基于参考帧对待编码b帧图像进行编码时,提升编码质量。

根据本申请的实施方式,步骤103之后,还包括:

步骤f:将得到的参考帧保存至参考列表,并根据参考列表中的各参考帧对待编码b帧图像进行编码。

其中,参考列表中存有多个原始参考帧,用于图像编码时进行参考。

具体的,将得到的参考帧作为预测参考帧保存至待编码b帧图像的两个参考列表list0和list1中,并根据参考列表中的预测参考帧及原始参考帧对待编码b帧图像进行帧间编码。其中参考列表管理示意图如图3所示。

可选的,如图4所示,对待编码b帧图像进行帧间编码的过程,包括:

步骤a1:对待编码b帧图像进行分块,得到多个图像块;

步骤a2:在得到的多个图像块中选取一个图像块作为当前图像块;

步骤a3:基于运动搜索,在参考列表中的预测参考帧及原始参考帧中搜索与当前图像块最相似的图像块作为参考块;

步骤a4:计算当前图像块与参考块的残差;

步骤a5:使用预设的各编码方法对残差进行编码,得到各编码方法对应的率失真代价;

步骤a6:在得到的各率失真代价中确定最小率失真代价,并使用最小率失真代价对应的编码方法对当前图像块进行编码,得到对应的编码图像;

步骤a7:判断是否得到所有图像块的编码图像,是则执行步骤a8,否则返回步骤a2;

步骤a8:对得到的所有编码图像进行组合,得到待编码b帧图像的编码图像。

或者,如图5所示,对待编码b帧图像进行帧间编码的过程,包括:

步骤b1:对待编码b帧图像进行分块,得到多个图像块;

步骤b2:在得到的多个图像块中选取一个图像块作为当前图像块;

步骤b3:根据当前图像块在待编码b帧图像中的位置,基于零运动搜索,将参考列表中预测参考帧的相应位置的图像作为第一参考块;

步骤b4:计算当前图像块与第一参考块的第一残差,使用预设的各编码方法对第一残差进行编码,得到各编码方法对应的率失真代价,并在得到的各率失真代价中确定第一最小率失真代价;

步骤b5:基于运动搜索,在参考列表中的原始参考帧中搜索与当前图像块最相似的图像块作为第二参考块;

步骤b6:计算当前图像块与第二参考块的第二残差,使用预设的各编码方法对第二残差进行编码,得到各编码方法对应的率失真代价,并在得到的各率失真代价中确定第二最小率失真代价;

步骤b7:比较第一最小率失真代价与第二最小率失真代价的大小,当第一最小率失真代价小于第二最小率失真代价时,使用第一最小率失真代价对应的编码方法对当前图像块编码;否则使用第二最小率失真代价对应的编码方法对当前图像块编码。

步骤b8:判断是否得到所有图像块的编码图像,是则执行步骤b9,否则返回步骤b2;

步骤b9:对得到的所有编码图像进行组合,得到待编码b帧图像的编码图像。

需要指出的,上述步骤b3和步骤b4,与步骤b5和步骤b6的执行顺序可以互换,还可以同时执行。

进一步的,步骤b6中,还可以包括:根据比较结果设置当前图像块的标志位及编码方法标识;

例如,当第一最小率失真代价小于第二最小率失真代价时,设置当前图像块的标志位为0以及对应的编码方法标识,当第一最小率失真代价大于第二最小率失真代价时,设置当前图像块的标志位为1以及对应的编码方法标识;以根据标志位的值和编码方法标识,识别当前图像块的参考块及编码方法。

更进一步的,本申请中的方法,不仅适用于帧级图像参考帧的生成及编码,而且适用于块级图像参考块的生成及编码,即根据待编码块(pu,cu,ctu)的位置,获取第一重构图像相应位置的图像块作为第一重构图像块,并获取第二重构图像相应位置的图像块作为第二重构图像块,根据第一重构图像块和第二重构图像块生成待编码块的预测块,对预测块进行质量增强,得到待编码块的参考块;对待编码块的ctu进行编码的过程可参见上述步骤a1-a8,或者步骤b1-b9,在此不再详述。

由此,通过双向预测,使得生成的参考帧与待编码b帧图像位于同一时刻,并且,将该参考帧保存至参考列表,实现了参考列表的扩充,从而在基于参考列表对待编码b帧图像进行帧间编码时,提升了待编码b帧图像的预测质量。

实施例二

根据本申请的实施方式,还提出一种基于双向预测的b帧图像的参考帧生成装置如图6所示,包括:

获取模块,用于获取与待编码b帧图像时间距离相等且反向的第一重构图像和第二重构图像;

生成模块,用于根据获取模块获取的第一重构图像和第二重构图像,生成待编码b帧图像的预测图像;

增强模块,用于对生成模块生成的预测图像进行质量增强,得到待编码b帧图像的参考帧。

根据本申请的实施方式,获取模块具体用于:

根据待编码b帧图像所在的当前时刻,在已解码缓冲区中获取所在时刻与当前时刻的时间间隔相等、方向相反的第一重构图像和第二重构图像,且第一重构图像的所在时刻与第二重构图像的所在时刻之间的时间间隔最小。

更加具体的,将待编码b帧图像记为bcurrent,将第一重构图像记为pi,将第二重构图像记为pj,将已解码缓冲区中的所有已解码图像记为第一重构图像与第二重构图像满足以下条件:

abs(t(pi)-t(bcurrent))=abs(t(pj)-t(bcurrent));

min(abs(t(pj)-t(pi)));

其中,abs表示绝对值算子,t(pi)为第一重构图像的所在时刻,t(bcurrent)为待编码b帧图像所在的当前时刻,t(pj)为第二重构图像的所在时刻。

根据本申请的实施方式,生成模块具体用于:

采用帧率提升算法对第一重构图像和第二重构图像进行重构,得到待编码b帧图像的预测图像。

该重构过程表示为:

bcurrent`=f(rec(pi),rec(pj))

其中,bcurrent`为待编码b帧图像的预测图像,rec表示重构过程,f表示帧率提升过程。

根据本申请的实施方式,增强模块具体用于:

采用深度学习方法对预测图像进行质量增强。

更加具体的,增强模块采用神经网络模型对生成的预测图像进行质量增强,该神经网络模型的目标为最小化预测图像与待编码b帧图像的均方误差,即:

其中,l(θ)为训练过程的损失函数,θ表示卷积模型参数,e表示增强过程,n为图像中像素的总数量,1≤i≤n,增强后的结果为e(bcurrent`;θ)。

根据本申请的实施方式,装置还包括:保存模块和编码模块;

保存模块,用于将增强模块得到的参考帧保存至参考列表;

编码模块,用于根据参考列表中的各参考帧对待编码b帧图像进行编码。

根据本申请的实施方式,还提出一种基于双向预测的b帧图像的参考帧生成设备,包括:

一个或多个处理器,存储一个或多个程序的存储装置,当所述一个或多个程序被所述一个或多个处理器执行时,实现如本申请实施例一所述的方法。

根据本申请的实施方式,还提出一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,实现如本申请实施例一所述的方法。

需要说明的,本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参考即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请中,通过双向预测,使得生成的参考帧与待编码b帧图像位于同一时刻,并且,将该参考帧保存至参考列表,实现了参考列表的扩充,从而在基于参考列表对待编码b帧图像进行帧间编码时,提升了待编码b帧图像的预测质量。

以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

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