一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种双向预测帧的编码方法、解码方法以及编解码系统与流程

2022-02-20 19:40:34 来源:中国专利 TAG:


1.本技术涉及图像编码技术领域,特别涉及一种双向预测帧的编码方法、解码方法以及编解码系统。


背景技术:

2.视频编码压缩技术中的双向预测帧是视频压缩中压缩率最大的部分,可以有效地降低视频的编码码率。双向预测帧在编码过程中主要基于双向预测的光流技术确定双向预测帧对应的运动补偿,在基于运动补偿对应双向预测帧进行编码,运动补偿基于人工设计运动补偿算法确定得到的。然而,人工设计运动补充算法依赖于先验知识,那么在先验知识不足是会造成运动补偿存在误差,因而造成基于运动补偿确定重构双向预测帧的效果差。


技术实现要素:

3.本技术要解决的技术问题在于,针对现有技术的不足,提供一种双向预测帧的编码方法、解码方法以及编解码系统。
4.为了解决上述技术问题,本技术实施例第一方面提供了一种双向预测帧的编码方法,所述方法包括
5.获取待编码的双向预测帧对应的第一光流和第二光流,其中,所述第一光流为所述双向预测帧的前向帧对应的光流,所述第二光流为所述双向预测帧的后向帧对应的光流;
6.基于所述双向预测帧、第一光流以及第二光流,通过预设的图像编码模型确定所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件。
7.在一个可能实施例中,所述获取待编码的双向预测帧对应的第一光流和第二光流具体包括:
8.获取所述双向预测帧对应的前向帧以及后向帧,其中,所述前向帧位于所述双向预测帧之前且与所述双向预测帧相邻,所述后向帧位于所述双向预测帧之后且与所述双向预测帧相邻;
9.获取所述前向帧对应的第一光流,以及所述后向帧对应的第二光流,以得到双向预测帧对应的第一光流和第二光流。
10.在一个可能实施例中,所述基于所述双向预测帧、第一光流以及第二光流,通过预设的图像编码模型确定所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件具体包括:
11.基于所述双向预测帧、所述第一光流以及所述第二光流,确定所述双向预测帧对应的编码图像帧;
12.将所述编码图像帧输入所述图像编码模型,通过所述图像编码模型确定所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件。
13.在一个可能实施例中,所述基于所述双向预测帧、所述第一光流以及所述第二光
流,确定所述双向预测帧对应的编码图像帧具体包括:
14.基于所述第一光流对所述前向帧进行仿射变换,以得到所述目标前向帧;
15.基于所述第二光流对所述后向帧进行仿射变换,以得到所述目标后向帧;
16.将所述双向预测帧、所述第一光流、所述第二光流、所述目标前向帧以及所述目标后向帧按通道拼接,以得到所述双向预测帧对应的编码图像帧。
17.所述所述双向预测帧的编码方法,其中,所述仿射变换具体为:对所述参考图像帧进行空间移动的warp操作以得到目标图像帧,其中,当参考图像帧为前向帧时,目标图像帧为目标前向帧;当参考图像帧为后向帧时,目标图像帧为目标后向帧。
18.在一个可能实施例中,所述图像编码模型包括若干级联的卷积模块和融合模块;所述将所述编码图像帧输入至预设的图像编码模型,通过图像编码模型确定所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件具体包括:
19.基于若干级联的卷积模块,确定所述图像编码模型对应的若干特征图,其中,所述若干特征图与若干级联的卷积模块一一对应;
20.将所述若干特征图输入至所述融合模块,通过所述融合模块确定所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件。
21.在一个可能实施例中,所述图像编码模型包括量化模块,所述将所述若干特征图输入至所述融合模块,通过所述融合模块确定所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件具体包括:
22.将所述若干特征图输入至所述融合模块,通过所述融合模块确定所述双向预测帧对应的运动补偿信息;
23.将所述运动补偿信息输入所述量化模块,通过所述量化模块生成所述双向预测帧对应的编码文件。
24.本实施例第二方面提供了一种双向预测帧的解码方法,用于解码基于权利要求1-7任一所述的双向预测帧的编码方法编码得到的编码文件,所述方法包括:
25.将编码文件输入预设的图像解码模型,通过所述图像解码模型输出所述编码文件对应的第一光流、第二光流以及融合系数;
26.基于所述第一光流确定目标前向帧,并基于第二光流确定目标后向帧;
27.根据所述目标前向帧、所述目标后向帧以及所述融合系数,确定所述编码文件对应的运动补偿帧。
28.在一个可能实施例中,所述基于所述第一光流确定目标前向帧,并基于第二光流确定目标后向帧具体包括:
29.获取所述双向预测帧对应的重构前向帧以及重构后向帧;
30.基于所述第一光流对所述重构前向帧进行仿射变换,以得到所述目标前向帧;
31.基于所述第二光流对所述重构后向帧进行仿射变换,以得到所述目标后向帧。
32.本实施例第三方面提供了一种双向预测帧的编解码系统,其特征在于,所述编解码系统包括编码模块以及解码模块;
33.所述编码模块用于获取待编码的双向预测帧对应的第一光流和第二光流,其中,所述第一光流为所述双向预测帧的前向帧对应的光流,所述第二光流为所述双向预测帧的后向帧对应的光流;基于所述双向预测帧、第一光流以及第二光流,通过图像编码模型确定
所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件;
34.所述解码模块用于将编码文件输入预设的图像解码模型,通过所述图像解码模型输出所述编码文件对应的第一光流、第二光流以及融合系数;基于所述第一光流确定目标前向帧,并基于第二光流确定目标后向帧;根据所述目标前向帧、所述目标后向帧以及所述融合系数,确定所述编码文件对应的运动补偿帧。
35.本实施例第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的双向预测帧的编码方法中的步骤,或者以实现如上所述的双向预测帧的解码方法中的步骤。
36.本实施例第五方面提供了一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
37.所述通信总线实现处理器和存储器之间的连接通信;
38.所述处理器执行所述计算机可读程序时实现如上所述的双向预测帧的编码方法中的步骤,或者实现如上所述的双向预测帧的解码方法中的步骤。
39.有益效果:与现有技术相比,本技术提供了一种双向预测帧的编码方法,所述方法包括:获取待编码的双向预测帧对应的前向帧的第一光流和后向帧的第二光流;基于所述双向预测帧、第一光流以及第二光流,通过图像编码模型确定所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件。本技术实施例通过将双向预测帧、第一光流和第二光流作为图像编码模型的输入项,并通过图像编码模型输出双向预测帧对应的运动补偿信息,这样通过图像编码模型获取运动补偿信息,可以提高运动补偿信息的准确性,进而避免基于运动补偿信息得到的双向预测帧对应的运动补偿帧失真,因而提高双向预测帧对应的运动补偿帧的效果。
附图说明
40.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员而言,在不符创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.图1为本技术提供的双向预测帧的编码方法的流程图。
42.图2为本技术提供的双向预测帧的编码方法中一个画面组的示例图。
43.图3为本技术提供的双向预测帧的编码方法中一个双向预测帧的示例图。
44.图4为本技术提供的双向预测帧的编码方法中一个双向预测帧对应的第一光流的示例图。
45.图5为本技术提供的双向预测帧的编码方法中一个双向预测帧对应的目标前向帧的示例图。
46.图6为本技术提供的双向预测帧的解码方法的流程图。
47.图7为本技术提供的双向预测帧的编码方法中编码文件对应的第一预测光流的示例图。
48.图8为本技术提供的双向预测帧的编码方法中编码文件对应的融合系数图的示例
图。
49.图9为本技术提供的双向预测帧的编码方法中编码文件对应的双向预测帧对应的运动补偿帧的示例图。
50.图10为本技术提供的终端设备的结构原理图。
具体实施方式
51.本技术提供一种双向预测帧的编码方法、解码方法以及编解码系统,为使本技术的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
52.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
53.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
54.为了方便理解本技术实施例,首先在此介绍本技术实施例涉及到的相关要素。
55.视频编码(video encoding):将视频(图像序列)压缩成码流的处理过程。
56.视频解码(video decoding):将码流按照特定的语法规则和处理方法恢复成重构双向预测帧的处理过程。
57.在大多数的编码框架中,视频包括一系列图像(picture),一个图像称为一帧(frame)。图像被划分为至少一个条带,每个条带又被划分为图像块(block)。视频编码或视频解码以图像块为单位。例如,可从图像的左上角位置开始从左到右、从上到下、一行一行进行编码处理或解码处理。这里,图像块可以为视频编解码标准h.264中的宏块(macroblock,mb),也可以为高效视频编码(figh efficiency video coding,hevc)标准中的编码单元(coding unit,cu),本技术实施例对此不作具体限定。
58.在视频编码时,根据图像帧的预测类型,图像帧可分为i帧、p帧和b帧。i帧是作为独立静态图像编码的帧,在视频流中提供随机存取点。p帧是由与其相邻的前一个i帧或者p帧预测而得到的帧,能作为接下来的p帧或b帧的参考帧。b帧是采用最邻近的前一帧和后一帧(可以是i帧或p帧)作为参考帧,进行双向预测得到的帧。本技术实施例中,双向预测帧为b帧。
59.运动补偿是一种描述相邻帧(相邻在这里表示在编码关系上相邻,在播放顺序上两帧未必相邻)差别的方法。
60.发明人经过研究发现,视频编码压缩技术主要采用基于块的混合视频编码,通过
帧内预测(intra prediction)、帧间预测(interprediction)、变换(transform)、量化(quantization)、熵编码(entropy encode)和环内滤波(in-loop filtering)(主要为去块滤波(de-blocking filtering))等步骤实现视频编码压缩。帧间预测也可以称为运动补偿预测(motion compensation prediction,mcp),即先得到视频帧的运动信息,然后根据运动信息确定该视频帧的预测像素值。计算视频帧的运动信息的过程称为运动估计(motion estimation,me),根据运动信息确定该视频帧的预测像素值的过程称为运动补偿(motion compensation,mc)。根据预测方向的不同,帧间预测包括前向预测、后向预测和双向预测。
61.对于双向预测帧,双向预测帧在编码过程中主要基于双向预测的光流技术确定双向预测帧对应的运动补偿,在基于运动补偿对应双向预测帧进行编码,运动补偿基于人工设计运动补偿算法确定得到的。然而,人工设计运动补充算法依赖于先验知识,那么在先验知识不足是会造成运动补偿存在误差,因而造成基于运动补偿确定重构双向预测帧的效果差。
62.为了解决上述问题,在本技术实施例中,在获取待编码的双向预测帧对应的前向帧的第一光流和后向帧的第二光流后,基于所述双向预测帧、第一光流以及第二光流,通过预设的图像编码模型确定所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件。本技术实施例通过将双向预测帧、第一光流和第二光流作为图像编码模型的输入项,并通过图像编码模型输出双向预测帧对应的运动补偿信息,这样通过图像编码模型获取运动补偿信息,可以提高运动补偿信息的准确性,进而避免基于运动补偿信息得到的重构双向预测帧失真,因而提高重构双向预测帧的效果。
63.本实施例提供的一种双向预测帧的编码方法可以由编码装置来执行,所述装置可以由软件或者硬件来实现,并可以应用于诸如智能手机、平板电脑或个人数字助理等之类的安装有操作系统的智能终端上。参见图1,本实施提供了一种双向预测帧的编码方法具体包括:
64.s10、获取待编码的双向预测帧对应的第一光流和第二光流,其中,所述第一光流为所述双向预测帧的前向帧对应的光流,所述第二光流为所述双向预测帧的后向帧对应的光流;
65.具体地,所述双向预测帧为采用最邻近的前一帧和后一帧作为两帧参考帧,并基于两帧参考帧进行预测得到的图像帧,所述双向预测帧又称b帧。所述第一光流为双向预测帧对应的前向帧的光流,第二光流为双向预测帧对应的后向帧的光流,其中,所述前向帧可以为i帧或p帧,所述后向帧可以为i帧或p帧。例如,所述前向帧为i帧,后向帧为i帧,或者前向帧为p帧,后向帧为p帧,或者前向帧为i帧,后向帧为p帧,或者前向帧为p帧,后向帧为i帧。其中,所述i帧是作为独立静态图像编码的帧,在解码i帧时,不需要其他图像帧参与,仅基于i帧对应的编码文件就可重构得到i帧对应的完整图像;p帧(又叫预测帧)是由与其相邻的前一个i帧或者p帧预测而得到的帧,p帧通过降低图像序列中前面已编码帧的冗余信息来压缩传输数据量,并且p帧可以作为位于其后的p帧或b帧的参考帧。
66.进一步,所述双向预测帧、前向帧以及后向帧为同一视频序列的中的视频帧,并且按照视频序列的播放顺序,所述前向帧位于所述双向预测帧之前,后向帧位于所述双向预测帧之后;按照编码顺序,前向帧的编码时间早于双向预测帧的编码时间,后向帧的编码时间也早于所述双向预测帧。可以理解的是,在对编码后的双向预测帧进行解码重构时,可以
获取到解码重构后的前向帧以及后向帧。
67.举例说明:双向预测帧、前向帧以及后向帧为视频序列中的一个画面组gop(即视频序列中的一组连续画面);画面组中i帧、p帧以及b帧的分配如图2(其中,横坐标表示帧号,纵坐标表示编码大小)所示,画面组中包括13帧视频帧,其中,i1表示画面组gop里的第1个i帧(主帧),b1表示画面组gop里的第1个b帧,p1表示画面组gop里的第1个p帧,以此类推,所述in表示画面组gop里的第n个i帧,bn表示画面组gop里的第n个b帧,pn表示画面组gop里的第n个p帧,其中,n为正整数。其中,对于每个b帧,该b帧对应的前向帧为位于其前方的i帧或p帧,该b帧对应的后向帧为位于其后方的i帧或p帧。例如,对于第一个b帧b1,b1对应的前向帧为第一个i帧i1;b1对应的后向帧为第一个p帧p1;对于第三个b帧b3,b3对应的前向帧为第一个p帧p1;b2对应的后向帧为第二个p帧p2。
68.进一步,在本实施例的一个实现方式中,所述获取待编码的双向预测帧对应的第一光流和第二光流具体包括:
69.s11、获取所述双向预测帧对应的前向帧以及后向帧;
70.s12、获取所述前向帧对应的第一光流,以及所述后向帧对应的第二光流,以得到双向预测帧对应的第一光流和第二光流。
71.具体地,所述光流用于反映图像中模式运动速度与方向,其中,所述模式运动指的是当对象运动时,对象在图像上对应像素点的亮度模式也在运动。基于此,所述光流包含了对象运动的信息(例如,画面移动过程中对象对应的像素的x,y位移量),可以基于光流确定对象的目标的运动信息。例如,图3为一双向预测帧,双向预测帧对应的光流图可以如图4所示。此外,所述第一光流用于反映前向帧与所述双向预测帧之间的运动信息,所述第二光流用于反映后向帧与所述双向预测帧之间的运行信息。由此,所述第一光流为基于前向帧与双向预测帧确定,所述第二光流为基于后向帧和双向预测帧确定。
72.进一步,所述第一光流和所述第二光流可以通过传统方法(例如,lucas-kanade光流法等)计算得到,也可以是通过深度学习网络确定的。在本实施例的一个实现方式中,所述第一光流和所述第二光流均是基于深度学习网络(例如,卷积神经网络等)确定,所述第一光流对应的输入项为前向帧和双向预测光流,第二光流对应的输入项为双向预测光流和后向帧。由此,假设深度学习网络为irr_pwc,第一光流为v
t-1
,第二光流为v
t 1
,双向预测帧为f
t
,前向帧为f
t-1
,后向帧为f
t 1
,所述第一光流v
t-1
和第二光流v
t 1
的计算可以分别表示为:v
t-1
=irr_pwc(f
t-1
,f
t
);v
t 1
=irr_pwc(f
t
,f
t 1
)。
73.s20、基于所述双向预测帧、第一光流以及第二光流,通过预设的图像编码模型确定所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件。
74.具体地,所述图像编码模型为经过训练的网络模型,用于确定双向预测帧对应的运动补偿信息,其中,所述图像编码模型基于预设训练样本集序列得到,预设训练样本集包括若干训练图像组,每组训练图像组均包括训练双向预测帧,训练双向预测帧对应的前向帧以及训练双向预测帧对应的后向帧。此外,所述图像编码模型的输出项为双向预测帧对应的运动补偿信息,并且所述运动补偿信息为基于所述双向预测帧、第一光流和第二光流通过图像编码模型生成,因而所述运动补偿信息对应的输入项为基于所述双向预测帧、第一光流以及第二光流确定。
75.基于此,所述基于所述双向预测帧、所述第一光流以及所述第二光流,确定所述双
向预测帧对应的编码图像帧具体包括:
76.基于所述第一光流对所述重构前向帧进行仿射变换,以得到所述目标前向帧;
77.基于所述第一光流对所述重构后向帧进行仿射变换,以得到所述目标前向帧;
78.将所述双向预测帧、所述第一光流、所述第二光流、所述目标前向帧以及所述目标后向帧按通道拼接,以得到所述双向预测帧对应的编码图像帧。
79.具体地,所述仿射变换为对所述图像帧进行空间移动的warp操作,其中,所述warp操作根据光流对图像中的各像素进行空间移动(即对图像中的像素按照光流中的x,y位移量进行移动)。可以理解的是,目标前向帧为基于第一光流对前向帧进行warp操作得到,目标后向帧为基于第二光流对后向帧进行warp操作得的,例如,如图3所述的双向预测帧对应的目标前向帧可以如图5所示。由此可知,目标前向帧的图像尺度与前向帧对应的图像尺度相同,目标后向帧对应的图像尺度与后向帧对应的图像尺度相同。又由于前向帧和后向帧为同一视频训练中的视频帧,从而前向帧的图像尺度与后向帧的图像尺度相同,进而目标前向帧的图像尺度和目标后向帧的图像尺度相同。
80.所述双向预测帧的图像尺度与前向帧的图像尺度相同,相应的,所述双向预测帧的图像尺度与目标前向帧的图像尺度相同。同理,双向预测帧的图像尺度与目标后向帧的图像尺度相同。此外,第一光流为前向帧对应的光流图,第一光流的图像尺寸与前向帧的图像尺寸相同,同理,第二光流的图像尺寸与候选帧的图像尺寸相同。例如,所述双向预测帧的图像尺度为224*224*3;那么第一光流预测图的图像尺度为224*224*3,第二光流预测图的图像尺度为224*224*3,第一光流的图像尺度为224*224*2;第二光流的图像尺度为224*224*2。
81.进一步,在获取到所述双向预测帧、所述第一光流、所述第二光流、所述目标前向帧以及所述目标后向帧后,所述双向预测帧、所述第一光流、所述第二光流、所述目标前向帧以及所述目标后向帧的图像尺寸相同,从而将所述双向预测帧、所述第一光流、所述第二光流、所述目标前向帧以及所述目标后向帧按照通道拼接可以形成一张多通道图像,其中,所述拼接得到多通道的编码特征图为所述图像编码模型的输入项。例如,当双向预测帧的图像尺度为224*224*3,那么拼接得到的编码特征图的图像尺度为224*224*13,也就是说,编码特征图为13通道图像。
82.进一步,在本实施例的一个实现方式中,所述图像编码模型包括若干级联的卷积模块和融合模块;所述将所述编码图像帧输入至预设的图像编码模型,通过图像编码模型确定所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件具体包括:
83.基于若干级联的卷积模块,确定所述图像编码模型对应的若干特征图,其中,所述若干特征图与若干级联的卷积模块一一对应;
84.将所述若干特征图输入至所述融合模块,通过所述融合模块确定所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件。
85.具体地,所述若干级联的卷积模块依次堆叠,并各卷积模块的结构相同。其中,若干级联的卷积模块中的两个相邻采样模块中,按照级联顺序位于前面的卷积模块的输出项为位于后面的卷积模块的输入项;按照级联顺序位于第一位的卷积模块的输入项为编码特征图;并若干级联的卷积模块的输出项均输入所述融合模块。可以理解的是,若干级联的卷
积模块输出的特征图均为融合模块的输入项,融合模块用于各卷积模块输出的特征图进行拼接,以得到所述双向预测帧对应的运动补偿信息。
86.在本实施例的一个实现方式中,所述图像编码模型包括四个卷积模块,四个卷积模块可以均采用双线性插值下采样,其中,双线性插销下采样为2倍双线性插值下采样,以使得卷积模块的输出的特征图的宽和高变为输入项的二分之一。此外,由于每个卷积模块均对输入的特征图进行2倍下采样,从而各卷积模块输入项的图像图的图像尺寸不同。而为了使得融合模块可以将输入的各特征图进行拼接,除第四个卷积模块外的其他卷积模块在将输出的特征图输入融合模块之前,需要将特征模块输入一个卷积模块,通过该卷积模块输出图像尺寸与第四卷积模块输出的特征图的图像尺寸相同的特征图。
87.基于此,所述图像编码模块包括三个卷积单元,分别记为第一卷积单元、第二卷积单元和第三卷积单元;并将四个卷积模块分别记为第一卷积模块,第二卷积模块、第三卷积模块以及第四卷积模块;所述第一卷积模块通过所述第一卷积单元与所述融合模块相连接,第二卷积模块通过第二卷积单元与融合模块相连接,第三卷积模块通过第三卷积单元与融合模块相连接,所述第四卷积模块与所述融合模块相连接。其中,所述第一卷积单元输出的特征图的图像尺寸、第二卷积单元输出的特征图的图像尺寸、第三卷积单元输出的特征图的图像尺寸以及第四卷积模块输出的特征图的图像尺寸相同。例如,编码特征图的图像尺寸为224*224,那么第一卷积模块的输出的特征图的图像尺寸为112*112;第二卷积模块的输出的特征图的图像尺寸为56*56;第三卷积模块的输出的特征图的图像尺寸为28*28;第四卷积模块输出的特征图的图像尺寸为14*14;所述第一卷积单元输出的特征图的图像尺寸、第二卷积单元输出的特征图的图像尺寸以及第三卷积单元输出的特征图的图像尺寸均为14*14。
88.此外,在本实施例的一个具体实现方式中,所述四个卷积模块的模型结构相同,均包括卷积层和归一化层,卷积层的参数为:卷积核为5*5,卷积核数量为192,步长为2,所述归一化层为gdn层,通过所述gdn层对卷积层输出的特征图进行广义分歧归一化变化,以将所述特图进行归一化。所述第一卷积单元的参数为:9*9,卷积核数量为192,步长为8;第二卷积单元的参数为:5*5,卷积核数量为192,步长为4,第三卷积单元的参数为3*3,卷积核数量为192,步长为4。
89.进一步,为了降低编码特征图的数据量,在对编码特征图进行编码之前,可以对编码特征图进行量化,并对量化后的编码特征图进行编码。相应的,在本实施例的一个实现方式中,所述图像编码模型包括量化模块,所述将所述若干特征图输入至所述融合模块,通过所述融合模块确定所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件具体包括:
90.将所述若干特征图输入至所述融合模块,通过所述融合模块确定所述双向预测帧对应的运动补偿信息;
91.将所述运动补偿信息输入所述量化模块,通过所述量化模块生成所述双向预测帧对应的编码文件。
92.具体地,所述量化模块用于对运动补偿信息进行量化,其中,量化指的是将所述编码特征图的每个像素点的取值范围分成若干区间,并每个区间中所有像素点的值均采用设置为相同数值。所述对运动补偿信息进行量化可以采用现有的可以实现图像量化的量化方
法。在本实施例的一个实现方式中,所述对所述运动补偿信息进行量化的方式可以为采用聚类量化方式对所述运动补偿信息进行量化。所述采用聚类量化方式对运动补偿信息进行量化的过程可以为:给定聚类量化中心点计算运动补偿信息中每个像素点与量化中心点的距离,并将获取到的所有距离中的最小距离作为量化值,其中,每个像素点与量化中心点的距离的计算公式可以为:
93.q(input_xi):=argminj(input_x
i-cj),
94.其中,input_xi表示输入运动补偿信息的第i个数据,cj表示聚类量化中心点c={c1,c2,...,c
l
}的第j个分量,j∈[1,l],l为正整数。
[0095]
进一步,为了保证误差反向传播,需要对每个像素点与量化中心点的距离先进行软量化处理,再进行硬量化处理。所述软量化处理的处理方式为:
[0096][0097]
所述硬量化处理的处理过程为:
[0098]
stop_gradient(q(input_xi)-soft_q(input_xi)) soft_q(input_xi)
[0099]
其中,stop_gradient(
·
)停止梯度计算。
[0100]
在量化处理后,对量化得到各距离进行取整,根据取整得到的各距离来确定量化值,最后根据量化值对运动补偿信息进行量化,以得到量化后的运动补偿信息。
[0101]
进一步,在本实施例的一个实现方式中,所述图像编码模型对应一图像解码模型,基于图像解码模型确定双向预测帧对应的运动补偿帧与双向预测帧的差异数量满足预设条件,所述差异数量指的是双向预测帧对应的运动补偿帧中差异像素点的数量,差异像素点为像素值与目标像素点的像素值不同的像素点,目标像素点为待编码图像中与差异像素点相对应的像素点。例如,差异像素点为双向预测帧对应的运动补偿帧中的位置信息为(5,5)像素点,像素值为155,那么目标像素点为待编码图像中位置信息为(5,5)像素点,并且目标像素点的像素值不为155。此外,所述预设条件可以为基于图像解码模型确定的双向预测帧对应的运动补偿帧与双向预测帧的差异数量小于预设阈值,例如,10等。
[0102]
进一步,所述图像编码模型与所述图像解码模型可以是经过同步训练而一起完成的,其中,所述同步训练指的是在对图像编码模型进行训练的过程同步对所述图像解码模型进行训练,并且所述图像编码模型和图像解码模型完成的训练的条件相同。相应的,所述图像编码模块与图像解码模块的训练过程可以为:
[0103]
l10、获取训练双向预测帧对应的第一光流和第二光流,其中,所述第一光流为所述训练双向预测帧的前向帧的光流,所述第二光流为所述双向预测帧的后向帧对应的光流;
[0104]
l20、基于所述训练双向预测帧、第一光流以及第二光流确定所述训练双向预测帧对应的编码图像帧,并通过图像编码模型确定所述训练双向预测帧对应的运动补偿信息,以得到编码文件;
[0105]
l30、基于所述图像解码模型,确定所述编码文件对应的运动补偿帧;
[0106]
l40、基于所述双向预测帧对应的运动补偿帧以及双向预测帧构建损失函数;
[0107]
l50、基于损失函数更新图像编码模型的模型参数和/或图像解码模型的模型参
数。
[0108]
具体地,在所述步骤l10中,所述训练双向预测帧可以是从视频序列的一个画面组中随机选择的b帧,其中,所述视频序列可以是在不同场景中采集的实际视频,也可以是网络视频训练等。可选地,训练双向预测帧可以根据视频训练格式、所针对的场景类型等确定,例如视频序列为监控场景的图像,则训练双向预测帧可以从已采集得到是监控视频中选取的画面组中的b帧。此外,所述第一光流和第二光流的确定过程与步骤s10的过程一样,具体可以参照步骤s10,这里就不在赘述。
[0109]
进一步,在所述步骤l20中,在第一次将基于训练双向预测帧确定编码图像帧输入至图像编码模型时,可以设定图像编码模型的初始模型参数,以初始化图像编码模型,在执行后续的输入操作时,可以确定图像编码模型对应的模型参数为上一次执行输入操作之后更新的模型参数。此外,在将编码图像帧输入至图像编码模型,利用图像编码模型包括的若干级联的卷积模块对编码图像帧进行特征提取,得到训练双向预测帧的运动补充信息,并对所述运动补充信息进行编码,以得到编码文件。
[0110]
进一步,在所述步骤l30中,所述图像解码模块的输入项为编码文件,所述图像解码模块的输出项为第一预测光流、第二预测光流以及融合系数,其中,所述第一预测光流、第二预测光流以及融合系数用于基于前向帧对应的重构前向帧和后向帧对应的重构后向帧确定所述训练双向预测帧对应的双向预测帧对应的运动补偿帧。在本实施例的一个实现方式中,所述图像解码模块可以包括残差模块、第一反卷积模块和第二反卷积模块;所述残差模块与所述第一反卷积模块相连接,所述第二反卷积模块与所述第一反卷积模块相连接。其中,所述残差模块包括3个级联的残差块。所述第一反卷积模块包括两个级联的反卷积单元,两个反卷积单元的模型结构相同,均包括igdn层(即gdn的反向变换),反卷积层以及卷积层;所述反卷积层的参数为卷积核为3*3,卷积核数量为192,步长为2;所述卷积层的参数为卷积核为3*3,卷积核数量为193,步长为2。所述第二反卷积模块包括igdn层(即gdn的反向变换)和反卷积层,反卷积层的参数为卷积核为3*3,卷积核数量为5,步长为2.
[0111]
此外,所述图像解码模块还包括第一反卷积层、第一卷积层和第二卷积层,所述第一反卷积层位于所述第一卷积层与所述残差模块之间,所述残差模块的输出项为所述第一反卷积层的输入项,所述第一反卷积层的输出项为第一卷积层的输入项,所述第一卷积层与所述第一反卷积模块相连接,所述第一卷积层的输出项为第一反卷积模块的输入项;所述第二卷积层位于所述第二反卷积模块之后,所述第二反卷积模块的输出项为第二卷积层的输入项,所述第二卷积层的输出项为图像解码模型的输出项,即所述第二卷积层的输出项为第一预测光流、第二预测光流以及融合系数。
[0112]
进一步,在所述图像解码模型输出第一预测光流、第二预测光流以及融合系数后,基于所述第一预测光流确定参考前向帧,并基于第二光流确定参考后向帧;根据所述参考前向帧、所述参考后向帧以及所述融合系数,确定所述编码文件对应的运动补偿帧。其中,所述参考后向帧为基于所述第一预测光流对重构前向帧进行warp操作得到,所述参考后向帧为基于所述第二预测光流对重构后向帧进行warp操作得到;所述双向预测帧对应的运动补偿帧与所述参考前向帧和参考后向帧的对应关系为:
[0113]
[0114]
其中,为双向预测帧对应的运动补偿帧,为参考前向帧,为重构前向帧,为第一预测光流;为参考后向帧,为重构后向帧,为第二预测光流,α为融合系数。
[0115]
进一步,在所述步骤l40中,所述损失函数可以用于表示神经网络的预测结果与真实值之间的差异,也即用于表征神经网络的预测结果的精确度。在本实施例中,可以基于所述双向预测帧对应的运动补偿帧以及双向预测帧构建损失函数之间的差异构建损失函数。例如,损失函数l可以构建为:其中,ii为训练双向预测帧中的第i个元素的元素值,ji为双向预测帧对应的运动补偿帧中的第i个元素的元素值。
[0116]
进一步,在所述步骤l50中,基于损失函数更新图像编码模型的模型参数和/或图像解码模型的模型参数是可以采用梯度下降法更新图像编码模型的模型参数和/或图像解码模型的模型参数。在本实施例中,可以采用梯度下降法图像编码模型的模型参数和/或图像解码模型的模型参数,使得更新参数后图像编码模型和图像解码模型的模型得出的训练图像与对应的预测编码图像之间的差异缩小,这样通过多次迭代执行步骤l10-l50,使损失函数的值逐渐缩小,也即使得训练双向预测帧与对应的双向预测帧对应的运动补偿帧之间的误差逐渐缩小。
[0117]
进一步,在基于损失函数更新图像编码模型的模型参数和/或图像解码模型的模型参数之前,可以判断损失函数是否满足预设条件,若损失函数不满足预设条件,执行基于损失函数更新图像编码模型的模型参数和/或图像解码模型的模型参数的步骤。其中,所述预设条件包括损失函数值满足预设要求或者训练次数达到预设次数,例如,5000次等。由此,判断损失函数是否满足预设条件的过程可以为:首先判断所述损失函数值是否满足预设要求;若损失函数值满足预设要求,则结束训练;若损失函数值不满足预设要求,则判断所述预设网络模型的训练次数是否达到预测次数,若未达到预设次数,则根据所述损失函数值对所述预设网络模型的网络参数进行修正;若达到预设次数,则结束训练。这样通过损失函数值和训练次数来判断预设网络模型训练是否结束,可以避免因损失函数值无法达到预设要求而造成预设网络模型的训练进入死循环。
[0118]
综上,本实施例提供了一种双向预测帧的编码方法,所述方法包括:获取待编码的双向预测帧对应的前向帧的第一光流和后向帧的第二光流;基于所述双向预测帧、第一光流以及第二光流,通过图像编码模型确定所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件。本技术实施例通过将双向预测帧、第一光流和第二光流作为图像编码模型的输入项,并通过图像编码模型输出双向预测帧对应的运动补偿信息,这样通过图像编码模型获取运动补偿信息,可以提高运动补偿信息的准确性,进而避免基于运动补偿信息得到的双向预测帧对应的运动补偿帧失真,因而提高双向预测帧对应的运动补偿帧的效果。
[0119]
基于上述双向预测帧的编码方法,本实施例提供了一种双向预测帧的解码方法,如图6所示,所述方法包括:
[0120]
m10、将编码文件输入预设的图像解码模型,通过所述图像解码模型输出所述编码文件对应的第一光流、第二光流以及融合系数。
[0121]
具体地,所述编码文件中携带有双向预测帧对应的运动补偿信息。在获取到编码文件后,可以对所述编码文件进行解码,以得到所述编码文件包括的运动补偿信息。在本实施例的一个实现方式,所述运动补偿信息采用无损解码方式进行解码,这样可以使得获取得到的运动补偿信息携带的双向预测帧对应的所有运动补偿信息,避免了运动补偿信息丢失,避免了重建双向预测帧相对于编码文件对应的双向预测帧的图像失真率。此外,所述编码文件为采用上述编码方法生成的,其中,所述编码文件为通过上述实施例所述的双向预测帧的编码方法编码得到编码文件,具体可以参照上述实施例中的步骤s10和步骤s20的说明。
[0122]
进一步,所述图像解码模型为所述图像编码模型对应的图像解码模型,所述图像解码模型的模型结构以及工作过程,均与双向预测帧的编码方法中所述的图像编码模型对应的图像解码模型的模型结构以及工作过程相同,具体请参照双向预测帧的编码方法中图像编码模型对应的图像解码模型的说明,这里就不在一一赘述。此外,所述图像解码模型的训练过程与上述实例中的图像解码模型的训练过程相同,具体可以参照上述实例所述的训练过程。例如,所述图像解码模型与所述图像编码模型同步训练。
[0123]
进一步,所述图像解码模型的输出项为第一光流、第二光流以及融合系数,其中,所述第一光流用于反映前向帧与所述双向预测帧之间的运动信息,所述第二光流用于反映后向帧与所述双向预测帧之间的运行信息;例如,所述第一光流可以对应为如图7所述的光流图。所述融合系数用于目标前向帧和目标后向帧融合时,目标前向帧和目标后向帧的权重系数。所述融合系数可以表示为融合系数图,例如,如图8所示的融合系数图,其中,融合系数图中的每个元素的元素值均为融合系数,并且所述融合系数大于0,且小于1。
[0124]
m20、基于所述第一光流确定目标前向帧,并基于第二光流确定目标后向帧。
[0125]
具体地,所述第一光流用于反映前向帧与所述双向预测帧之间的运动信息,所述第二光流用于反映后向帧与所述双向预测帧之间的运行信息。所述目标前向帧为基于第一光流和双向预测帧对应的前向帧对应的重构前向帧确定,所述目标后向帧为基于第一光流和双向预测帧对应的后向帧对应的重构后向帧确定。
[0126]
基于此,所述基于所述第一光流确定目标前向帧,并基于第二光流确定目标后向帧具体包括:
[0127]
获取所述双向预测帧对应的重构前向帧以及重构后向帧;
[0128]
基于所述第一光流对所述重构前向帧进行仿射变换,以得到所述目标前向帧;
[0129]
基于所述第二光流对所述重构后向帧进行仿射变换,以得到所述目标后向帧。
[0130]
具体地,所述仿射变换为对所述图像帧进行空间移动的warp操作,其中,所述warp操作根据光流对图像中的各像素进行空间移动(即对图像中的像素按照光流中的x,y位移量进行移动)。可以理解的是,目标前向帧为基于第一光流对重构前向帧进行warp操作得到,目标后向帧为基于第二光流对重构后向帧进行warp操作得的。由此可知,目标前向帧的图像尺度与重构前向帧对应的图像尺度相同,目标后向帧对应的图像尺度与重构后向帧对应的图像尺度相同。
[0131]
m30、根据所述目标前向帧、所述目标后向帧以及所述融合系数,确定所述编码文件对应的运动补偿帧。
[0132]
具体地,所述融合系数用于目标前向帧和目标后向帧融合时,目标前向帧和目标
后向帧的权重系数。所述融合系数可以表示为融合系数图,例如,如图6所示的融合系数图,其中,融合系数图中的每个元素的元素值均为融合系数,并且所述融合系数大于0,且小于1。此外,在确定得到融合系数后,所述目标前向帧对应的权重系数以及目标后向帧对应的权重系数可以基于所述融合系数确定,例如,所述目标前向帧对应的权重系数为融合系数,目标后向帧对应的权重系数为1-融合系数。
[0133]
此外,在确定得到目标前向帧对应的权重系数以及目标后向帧对应的权重系数,可以将所述目标前向帧和目标后向帧进行加权,得到双向预测帧对应的运动补偿帧(如图9所示)。由此,所述双向预测帧对应的运动补偿帧的融合公式可以为:
[0134][0135]
其中,为双向预测帧对应的运动补偿帧,为参考前向帧,为重构前向帧,为第一预测光流;为参考后向帧,为重构后向帧,为第二预测光流,α为融合系数。
[0136]
基于上述双向预测帧的编码方法,本实施例还提供了一种双向预测帧的编解码系统,所述编解码系统包括编码模块以及解码模块;
[0137]
所述编码模块用于获取待编码的双向预测帧对应的第一光流和第二光流,其中,所述第一光流为所述双向预测帧的前向帧对应的光流,所述第二光流为所述双向预测帧的后向帧对应的光流;基于所述双向预测帧、第一光流以及第二光流,通过图像编码模型确定所述双向预测帧对应的运动补偿信息,以得到所述双向预测帧对应的编码文件;
[0138]
所述解码模块用于将编码文件输入预设的图像解码模型,通过所述图像解码模型输出所述编码文件对应的第一光流、第二光流以及融合系数;基于所述第一光流确定目标前向帧,并基于第二光流确定目标后向帧;根据所述目标前向帧、所述目标后向帧以及所述融合系数,确定所述编码文件对应的运动补偿帧。
[0139]
具体地,所述编码模块的执行过程与上述实施例中双向预测帧的编码方法的执行过程相同,所述解码模块的执行过程与上述实施例中双向预测帧的解码方法的执行过程相同,这里就不在一一赘述,具体可以参照上述双向预测帧的编码方法以及双向预测帧的解码方法的说明。
[0140]
基于上述双向预测帧的编码方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的双向预测帧的编码方法中的步骤。
[0141]
基于上述双向预测帧的编码方法,本技术还提供了一种终端设备,如图10所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(communications interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
[0142]
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
[0143]
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行
程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
[0144]
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所重构的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
[0145]
此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
[0146]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献