运动矢量的生成方法、装置、存储介质及电子设备与流程
未命名
10-21
阅读:57
评论:0
1.本技术涉及视频编解码技术领域,具体涉及一种运动矢量的生成方法、装置、存储介质及电子设备。
背景技术:
2.视频压缩技术执行空间预测和/或时间预测,以减少视频序列中固有的冗余信息。通常情况下,使用位于同一图像帧中的相邻参考块的空间预测运动矢量来编码当前编码单元,但是,若相邻参考块的空间预测运动矢量缺失而出现无法充分利用的现象,则当前编码单元的运动矢量的预测效率也会大大下降。
技术实现要素:
3.有鉴于此,本技术实施例提供了一种运动矢量的生成方法,装置、存储介质及电子设备。
4.第一方面,本技术一实施例提供了一种运动矢量的生成方法,包括:确定当前编码单元对应的第一参考块集,第一参考块集中包含多个参考块,当前编码单元与第一参考块集中的多个参考块具有空域相关关系;若第一参考块集中存在缺失运动矢量的参考块,则根据第一参考块集中具有完备运动矢量的参考块,对缺失运动矢量的参考块的运动矢量进行预测,得到第二参考块集,第二参考块集中的参考块的运动矢量均已知;根据第二参考块集中的参考块的运动矢量,确定当前编码单元的运动矢量。
5.结合第一方面,在第一方面的某些实现方式中,确定当前编码单元对应的第一参考块集,包括:确定当前编码单元的第一侧边界和第二侧边界,第一侧边界和第二侧边界为优先编码侧的边界;根据当前编码单元的第一侧边界,向远离当前编码单元的方向外扩第一预设距离,得到第一区域;根据当前编码单元的第二侧边界,向远离当前编码单元的方向外扩第二预设距离,得到第二区域;将第一区域和第二区域中的已编码单元确定为当前编码单元对应的第一参考块集。
6.结合第一方面,在第一方面的某些实现方式中,根据第一参考块集中具有完备运动矢量的参考块,对缺失运动矢量的参考块的运动矢量进行预测,包括:根据具有完备运动矢量的参考块的运动矢量,确定缺失运动矢量的参考块的运动矢量估值;从具有完备运动矢量的参考块中确定与缺失运动矢量的参考块邻近空域的参考块;利用运动矢量预测模型,处理邻近空域的参考块各自对应的运动矢量、缺失运动矢量的参考块的运动矢量估值,得到缺失运动矢量的参考块的预测运动矢量。
7.结合第一方面,在第一方面的某些实现方式中,根据第一参考块集中具有完备运动矢量的参考块,对缺失运动矢量的参考块的运动矢量进行预测,包括:确定具有完备运动矢量的参考块各自对应的权重;根据具有完备运动矢量的参考块各自对应的权重,以及具有完备运动矢量的参考块各自对应的运动矢量,利用目标线性计算公式,对缺失运动矢量的参考块的运动矢量进行预测。
8.结合第一方面,在第一方面的某些实现方式中,根据第二参考块集中的参考块的运动矢量,确定当前编码单元的运动矢量,包括:确定第二参考块集中的参考块的运动矢量各自对应的概率,参考块的运动矢量对应的概率表征参考块的运动矢量与当前编码单元的运动矢量的相似度;根据第二参考块集中的参考块的运动矢量各自对应的概率的大小关系,确定第二参考块集中的参考块的运动矢量在运动矢量列表中的排序信息;基于第二参考块集中的参考块的运动矢量在运动矢量列表中的排序信息,确定当前编码单元的运动矢量。
9.结合第一方面,在第一方面的某些实现方式中,确定第二参考块集中的参考块的运动矢量各自对应的概率,包括:确定待编码单元对应的目标视频的运动矢量场的统计信息,统计信息包括均值和方差;根据待编码单元对应的目标视频的运动矢量场的统计信息,确定第二参考块集中的参考块的运动矢量各自对应的概率。
10.结合第一方面,在第一方面的某些实现方式中,确定第二参考块集中的参考块的运动矢量各自对应的概率,包括:利用概率预测模型处理第二参考块集中的参考块的运动矢量,得到第二参考块集中的参考块的运动矢量各自对应的概率。
11.第二方面,本技术一实施例提供了一种运动矢量的生成装置,包括:第一确定模块,用于确定当前编码单元对应的第一参考块集,第一参考块集中包含多个参考块,当前编码单元与第一参考块集中的多个参考块具有空域相关关系;预测模块,用于若第一参考块集中存在缺失运动矢量的参考块,则根据第一参考块集中具有完备运动矢量的参考块,对缺失运动矢量的参考块的运动矢量进行预测,得到第二参考块集,第二参考块集中的参考块的运动矢量均已知;第二确定模块,用于根据第二参考块集中的参考块的运动矢量,确定当前编码单元的运动矢量。
12.第三方面,本技术一实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序用于执行第一方面所述的运动矢量的生成方法。
13.第四方面,本技术一实施例提供了一种电子设备,该电子设备包括:处理器;用于存储处理器可执行指令的存储器;该处理器用于执行第一方面所述的运动矢量的生成方法。
14.本技术实施例解决了当前编码单元对应的参考块的运动矢量缺失的问题,缺失运动矢量的参考块是指用于预测当前编码单元运动矢量的参考块。在当前编码单元对应的参考块中存在缺失运动矢量的参考块时,利用与此参考块邻近空域的参考块的运动矢量,来生成缺失运动矢量的参考块的运动矢量。具体地,在本实施例中,在第一参考块集中存在缺失运动矢量的参考块的情况下,利用具有完备运动矢量的参考块的运动矢量,对缺失运动矢量的参考块的运动矢量进行预测,避免了所确定的参考块的运动矢量不可得时,难以对当前编码单元的运动矢量进行预测,因此,本技术实施例提高了对当前编码单元的运动矢量的预测精度。此外,本技术实施例中的第一参考块集中的多个参考块的位置信息不限于图1中示出出的参考块的位置,本技术实施例可划定更大的参考区域来确定第一参考块集中的多个参考块,增加参考块的数量,进一步提高对缺失运动矢量的参考块的运动矢量的预测精度,提高对当前编码单元的编码效率。
附图说明
15.通过结合附图对本技术实施例进行更详细地描述,本技术的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本技术实施例的进一步理解,并且构成说明书的一部分,与本技术实施例一起用于解释本技术,并不构成对本技术的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
16.图1所示为本技术一示例性实施例提供的候选参考块的位置信息的示意图。
17.图2所示为本技术一示例性实施例提供的运动矢量的生成方法的流程示意图。
18.图3所示为本技术一示例性实施例提供的确定第一参考块集的流程示意图。
19.图4所示为本技术一示例性实施例提供的确定第一区域和第二区域的示意图。
20.图5所示为本技术一示例性实施例提供的确定当前编码单元的运动矢量的流程示意图。
21.图6所示为本技术一实施例提供的运动矢量的生成装置的结构示意图。
22.图7所示为本技术一实施例提供的电子设备的结构示意图。
具体实施方式
23.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
24.图像/视频编码:指通过算法技术,将原始格式的图像/视频转换成数据量或码率较小的另一种图像格式的算法或过程。
25.帧间预测:一种视频编码方法。连续的视频帧之间的信息变化有限,因此,视频信息具有时间相关性。利用此时间相关性,通过参考当前待编码帧的已重建时域的相邻帧,对当前待编码帧中的待编码单元进行预测。
26.参考帧:帧间预测中被用作参考的、来预测当前待编码帧中的待编码单元的、已重建的相邻帧。
27.运动矢量:帧间预测中,用于表示待编码单元与其在参考帧中的最佳匹配单元之间的相对位移。
28.运动补偿:帧间预测中,在确定了当前编码单元的预测运动矢量的基础上,生成预测像素的过程,称为运动补偿。
29.神经网络:一个由人工神经元或节点组成的网络或电路,用于解决人工智能问题。神经元的连接在神经网络中被建模为节点之间的权重,正的权重反映了兴奋性连接,而负的权重反映了抑制性连接。所有的输入都被一个权重修改并加总,最后,一个激活函数控制输出的振幅。神经网络可用于预测建模、自适应控制和可通过数据集进行训练。
30.深度学习:一种机器学习算法。通过对大数据样本的多层传播的非线性学习方法,利用传播误差对多层神经网络的权重进行调整,从而掌握待处理问题的内在统计规律,并取得比传统处理方法更好的性能。
31.当前标准视频编码算法的帧间预测过程中,利用已知参考块的运动矢量信息构造运动矢量列表,对运动矢量列表进行索引,以对当前编码单元空间域的运动矢量进行编码。
由于运动矢量的空域连续性和相关性,对各参考块的运动矢量的空间预测是运动矢量列表的重要构成部分。然而,在实际编码过程中,各参考块的运动矢量可能无法全部获得,导致运动矢量列表的构造不准确,影响当前编码单元的编码效率。
32.图1所示为本技术一示例性实施例提供的候选参考块的位置信息的示意图。
33.在视频编解码技术领域,常用的预测当前编码单元的运动矢量的算法,一般是通过抽取与当前编码单元相邻区域的已编码空间的运动信息的方式获取。示例性地,通过对当前编码单元的左侧和上侧预定义的空间位置的运动信息进行抽取,并根据抽取的次序将上述各个空间位置的运动信息置入运动矢量列表。如图1所示,中间的矩形区域为当前编码单元,其运动矢量的空间预测结果来自左侧参考块a0和a1,上侧参考块b0和b1,左上侧参考块b2的运动信息。
34.需要注意的是,在对当前编码单元的运动矢量进行空间预测时,参考块a0、a1、b0、b1和b2的运动信息不一定可得,示例性地,如果当前编码单元的右侧边界正好与并行处理瓦片的边界重合时,则参考块b0的运动信息不可得,导致无法准确地对当前编码单元的运动矢量进行空间预测。
35.图2所示为本技术一示例性实施例提供的运动矢量的生成方法的流程示意图。如图2所示,在本技术实施例中,运动矢量的生成方法包括如下步骤。
36.步骤s210,确定当前编码单元对应的第一参考块集。
37.第一参考块集中包含多个参考块,当前编码单元与第一参考块集中的多个参考块具有空域相关关系,并且,第一参考块集中的各个参考块与当前编码单元均在同一图像帧中,第一参考块集中的多个参考块在图像帧中的位置包括但不限于图1中参考块的位置。也就是说,本技术实施例中的第一参考块集中的多个参考块既可以是图1中示出的a0、a1、b0、b1和b2等参考块,也可以是另外划定参考区域,在参考区域中进一步划分出多个参考块。需要说明的是,若另外划定参考区域获取多个参考块,则参考区域应比图1中示出的a0、a1、b0、b1和b2等参考块所组成的区域大,以便从参考区域中获取更多的参考块,提高对当前编码单元的运动矢量的空间预测精度。
38.步骤s220,若第一参考块集中存在缺失运动矢量的参考块,则根据第一参考块集中具有完备运动矢量的参考块,对缺失运动矢量的参考块的运动矢量进行预测,得到第二参考块集。
39.第二参考块集中的参考块的数量与第一参考块集中的参考块的数量相同,同时,第二参考块集中的所有参考块的运动矢量均已知。
40.在本实施例中,缺失运动矢量的参考块是指缺失空间域的运动矢量的参考块,具有完备运动矢量的参考块是指这些参考块的空间域的运动矢量已知。
41.示例性地,可以对具有完备运动矢量的参考块的运动矢量进行线性计算,将线性计算结果作为缺失运动矢量的参考块的运动矢量;或者,将具有完备运动矢量的参考块的运动矢量输入事先训练好的运动矢量预测模型中,将运动矢量预测模型的输出结果作为缺失运动矢量的参考块的运动矢量。
42.需要说明的是,本技术实施例不限制对缺失运动矢量的参考块的运动矢量的预测方式,本领域技术人员可根据实际情况选择合适的方法对此参考块的运动矢量进行预测,同时,提高预测结果的准确性。
43.步骤s230,根据第二参考块集中的参考块的运动矢量,确定当前编码单元的运动矢量。
44.在本实施例中,对当前编码单元的运动矢量的空间预测是通过相邻空域的参考块的运动矢量得到的,当前编码单元的运动矢量可指示当前编码单元与参考块之间的位移。
45.本技术实施例解决了当前编码单元对应的参考块的运动矢量缺失的问题,缺失运动矢量的参考块是指用于预测当前编码单元的运动矢量的参考块。在当前编码单元对应的参考块中存在缺失运动矢量的参考块时,利用与此参考块邻近空域的参考块的运动矢量,来生成缺失运动矢量的参考块的运动矢量。具体地,在本实施例中,在第一参考块集中存在缺失运动矢量的参考块的情况下,利用具有完备运动矢量的参考块的运动矢量,对缺失运动矢量的参考块的运动矢量进行预测,避免了所确定的参考块的运动矢量不可得时,难以对当前编码单元的运动矢量进行预测,因此,本技术实施例提高了对当前编码单元的运动矢量的预测精度。此外,本技术实施例中的第一参考块集中的多个参考块的位置信息不限于图1中示出出的参考块的位置,本技术实施例可划定更大的参考区域来确定第一参考块集中的多个参考块,增加参考块的数量,进一步提高对缺失运动矢量的参考块的运动矢量的预测精度,提高对当前编码单元的编码效率。
46.图3所示为本技术一示例性实施例提供的确定第一参考块集的流程示意图。在图2所示实施例的基础上延伸出图3所示实施例,下面着重叙述图3所示实施例与图2所示实施例的不同之处,相同之处不再赘述。
47.如图3所示,在本技术实施例中,确定当前编码单元对应的第一参考块集,包括如下步骤。
48.步骤s310,确定当前编码单元的第一侧边界和第二侧边界。
49.第一侧边界和第二侧边界为优先编码侧的边界。示例性地,对视频帧中的编码块的编码顺序是从上至下,由左至右,则第一侧边界为当前编码单元的上侧或左侧,在第一侧边界为当前编码单元的上侧时,第二侧边界为当前编码单元的左侧;当第一侧边界为当前编码单元的左侧时,第二侧边界为当前编码单元的上侧。
50.步骤s320,根据当前编码单元的第一侧边界,向远离当前编码单元的方向外扩第一预设距离,得到第一区域。
51.步骤s330,根据当前编码单元的第二侧边界,向远离当前编码单元的方向外扩第二预设距离,得到第二区域。
52.图4所示为本技术一示例性实施例提供的确定第一区域和第二区域的示意图。示例性地,在本实施例中,以第一侧边界为当前编码单元的左侧,第二侧边界为当前编码单元的上侧,对第一区域和第二区域的划分进行阐述。在图4中,根据当前编码单元的第一侧边界,向远离当前编码单元的方向外扩第一预设距离,即以第一侧边界为起始边界,向当前编码单元的左侧外扩第一预设距离。根据当前编码单元的第二侧边界,向远离当前编码单元的方向外扩第二预设距离,是指以第二侧边界为起始边界,向当前编码单元的上侧外扩第二预设距离。其中,第一预设距离和第二预设距离可根据实际情况设定。示例性地,在本技术实施例中,第一预设距离为3倍的参考块a1的长度,第二预设距离为2倍的参考块b2的宽度。
53.步骤s340,将第一区域和第二区域中的已编码单元确定为当前编码单元对应的第
一参考块集。
54.在图1中所示的常规方法中,只有5个参考块的运动矢量用于对当前编码单元的运动矢量进行预测,当5个参考块中存在缺失运动矢量的参考块时,对当前编码单元的运动矢量进行预测显然具有很多局限性。为了对缺失运动矢量的参考块的运动矢量、以及对当前编码单元的运动矢量进行更好地预测,本技术实施例不再局限于常规技术中设定的特定的参考块,而是使用一个预先定义的参考区域(第一区域和第二区域),便于利用参考区域内的所有已编码单元的运动矢量,对其他需要预测运动矢量的参考块或者当前编码单元的运动矢量进行更好地预测。
55.在一实施方式中,结合图2至图4,根据第一参考块集中具有完备运动矢量的参考块,对缺失运动矢量的参考块的运动矢量进行预测,包括:根据具有完备运动矢量的参考块的运动矢量,确定缺失运动矢量的参考块的运动矢量估值;从具有完备运动矢量的参考块中确定与缺失运动矢量的参考块邻近空域的参考块;利用运动矢量预测模型,处理邻近空域的参考块各自对应的运动矢量、缺失运动矢量的参考块的运动矢量估值,得到缺失运动矢量的参考块的预测运动矢量。
56.示例性地,参考图4,任意参考块的运动矢量缺失时,都可以将图4中其他具有完备运动矢量的参考块的运动矢量输入运动矢量预测模型中,得到缺失运动矢量的参考块的预测运动矢量。
57.需要指出的是,若图4中的参考块a1的运动矢量不可得,则可以先根据具有完备运动矢量的参考块的运动矢量,对参考块a1的运动矢量估计,得到参考块a1的一个运动矢量估值,再将参考块a1的运动矢量估值,以及其他具有完备运动矢量的参考块的运动矢量作为运动矢量预测模型的输入,并将运动矢量预测模型的输出作为参考块a1的预测运动矢量。
58.确定缺失运动矢量的参考块的运动矢量估值有多种方式,举例来说,以参考块a1的运动矢量缺失为例,如果参考块a0的运动矢量可得,则使a0的运动矢量等于参考块a1的运动矢量估值;如果参考块a0的运动矢量同样不可得,则取参考块a1的左侧、上侧和左上侧的参考块的运动矢量的平均值,将其平均值作为参考块a1的运动矢量估值。也就是说,优先选择与缺失运动矢量的参考块相邻空域的参考块的运动矢量,作为缺失运动矢量的参考块的运动矢量估值。若与缺失运动矢量的参考块相邻空域的参考块的运动矢量也不可得,则选择与缺失运动矢量的参考块在空域上最相近的参考块的运动矢量,确定缺失运动矢量的参考块的运动矢量估值。
59.在本实施例中,利用运动矢量预测模型来生成缺失运动矢量的参考块的运动矢量。具体地,将缺失运动矢量的参考块的运动矢量估值和其余邻近空域的参考块各自对应的运动矢量一并输入到运动矢量预测模型中,统一了运动矢量模型的输入范围。其次,利用与缺失运动矢量的参考块邻近空域的参考块,确定缺失运动矢量的参考块的运动矢量估值,能够保证其运动矢量估值的准确度,因为,邻近空域的参考块与其运动矢量的相似度较高,匹配程度也相对较高。
60.在另一实施方式中,结合图2至图4,根据第一参考块集中具有完备运动矢量的参考块,对缺失运动矢量的参考块的运动矢量进行预测,包括:确定具有完备运动矢量的参考块各自对应的权重;根据具有完备运动矢量的参考块各自对应的权重,以及具有完备运动
矢量的参考块各自对应的运动矢量,利用目标线性计算公式,对缺失运动矢量的参考块的运动矢量进行预测。
61.示例性地,第一参考块集中包含7个参考块,7个参考块分别记为p1、p2、p3、p4、p5、p6和p7,其中,参考块p3的运动矢量缺失,其余6个参考块的运动矢量均已知。p1、p2、p4至p7各个参考块的运动矢量分别对应的权重记为w1、w2、w4至w7,则参考块p3的运动矢量为:
62.p3=w1*p1+w2*p2+w4*p4+w5*p5+w6*p6+w7*p7
63.其中,w1+w2+w4+w5+w6+w7=1。
64.需要说明的是,在利用目标线性计算公式对缺失运动矢量的参考块的运动矢量进行预测时,可以优先选取与缺失运动矢量的参考块邻近空域的参考块的运动矢量,以免利用空域差距较远的参考块的运动矢量进行预测时,给缺失运动矢量的参考块的运动矢量的预测带来较大误差,进而影响对当前编码单元的运动矢量的预测。
65.另一个示例,以图4为参考,假设图4中的参考块b0的运动矢量缺失,而参考块b1和参考块b3的运动矢量已知,则根据参考块b1的运动矢量及其对应的权重、参考块b3的运动矢量及其对应的权重,利用目标线性计算公式,对参考块b0的运动矢量进行预测。同样地,参考块b1的运动矢量对应的权重和参考块b3的运动矢量对应的权重的加和等于1。
66.在本实施例中,利用目标线性计算公式,从已知运动矢量的参考块中使用目标线性计算公式,计算缺失运动矢量的参考块的运动矢量,本实施例中的方案简单方便,能够在参考块缺失运动矢量的情况下,对其运动矢量进行预测。优选地,利用所有可用的邻近空域的参考块的运动矢量,对其运动矢量进行预测,进而提高对当前编码单元的编码效率。
67.图5所示为本技术一示例性实施例提供的确定当前编码单元的运动矢量的流程示意图。在图2所示实施的基础上延伸出图5所示实施例,下面着重叙述图5所示实施例与图2所示实施例的不同之处,相同之处不再赘述。
68.如图5所示,在本技术实施例中,根据第二参考块集中的参考块的运动矢量,确定当前编码单元的运动矢量,包括如下步骤。
69.步骤s510,确定第二参考块集中的多个参考块的运动矢量各自对应的概率。
70.参考块的运动矢量对应的概率表征参考块的运动矢量与当前编码单元的运动矢量的相似度。
71.示例性地,可以利用概率预测模型,确定第二参考块集中多个参考块的运动矢量各自对应的概率,或者,根据待编码单元对应的目标视频的运动矢量场的统计信息,确定多个参考块的运动矢量各自对应的概率,本技术实施例不限制参考块的运动矢量的概率确定方式。
72.步骤s520,根据第二参考块集中的参考块的运动矢量各自对应的概率大小关系,确定第二参考块集中的参考块的运动矢量在运动矢量列表中的排序信息。
73.示例性地,通过概率预测模型输出每个参考块的运动矢量的概率,然后,根据概率从大到小的排列,形成运动矢量列表。举例来说,对于图4中的参考块a0、a1、b0、b1、b2,其对应的运动矢量的概率值越大,说明其与当前编码单元更相似。
74.作为一个示例,利用传统的方法所构造的运动矢量列表如下所示。
75.i=0
76.if(availableflaga1)
77.mvcandlist[i++]=a1
[0078]
if(availableflagb1)
[0079]
mvcandlist[i++]=b1
[0080]
if(availableflagb0)
[0081]
mvcandlist[i++]=b0
[0082]
if(availableflaga0)
[0083]
mvcandlist[i++]=a0
[0084]
if(availableflagb2)
[0085]
mvcandlist[i++]=b2
[0086]
当存在缺失运动矢量的参考块时,利用目标线性计算公式对缺失运动矢量的参考块的运动矢量进行预测,并构造的运动矢量列表如下所示。
[0087]
if(!availableflaga1)
[0088]
a1=linearpredicta1(a0,b0,b1,b2)
[0089]
if(!availableflagb1)
[0090]
b1=linearpredictb1(a0,a1,b0,b2)
[0091]
if(!availableflagb0)
[0092]
b0=linearpredictb0(a0,a1,b1,b2)
[0093]
if(!availableflaga0)
[0094]
a0=linearpredicta0(a1,b0,b1,b2)
[0095]
if(!availableflagb2)
[0096]
b2=linearpredictb2(a0,a1,b0,b1)
[0097]
mvcandlist[0]=a1
[0098]
mvcandlist[1]=b1
[0099]
mvcandlist[2]=b0
[0100]
mvcandlist[3]=a0
[0101]
mvcandlist[4]=b2
[0102]
其中,mvcandlist[a]表示在运动矢量列表中的排序值为a,!availableflag表示运动矢量不可得。
[0103]
当存在缺失运动矢量的参考块时,利用运动矢量预测模型,对缺失运动矢量的参考块的运动矢量进行预测,并构造的运动矢量列表如下所示。
[0104]
if(!availableflaga1)
[0105]
a1=dlderivenetworka1(inputvector)
[0106]
if(!availableflagb1)
[0107]
b1=dlderivenetworkb1(inputvector)
[0108]
if(!availableflagb0)
[0109]
b0=dlderivenetworkb0(inputvector)
[0110]
if(!availableflaga0)
[0111]
a0=dlderivenetworka0(inputvector)
[0112]
if(!availableflagb2)
[0113]
b2=dlderivenetworkb2(inputvector)
[0114]
mvcandlist[0]=a1
[0115]
mvcandlist[1]=b1
[0116]
mvcandlist[2]=b0
[0117]
mvcandlist[3]=a0
[0118]
mvcandlist[4]=b2
[0119]
步骤s530,基于第二参考块集中的参考块的运动矢量在运动矢量列表中的排序信息,确定当前编码单元的运动矢量。
[0120]
各个参考块的运动矢量在运动矢量列表中的位置,即为当前编码单元的运动矢量的索引值,显然,多个参考块在运动矢量列表中的排列次序,会影响当前编码单元最终的编码效率,而在相关技术中,多个参考块在运动矢量列表中的位置是固定的,不同位置的索引码字长度不同,不可避免地会对当前编码单元的编码效率造成影响。在本技术实施例中,对多个参考块的运动矢量各自对应的概率进行估计,并根据多个参考块的运动矢量各自对应的概率的大小关系,对多个参考块在运动矢量列表中的位置进行排列,使得运动矢量列表能够自适应当前编码单元的编码内容,提高对当前编码单元的编码效率和准确度。
[0121]
在一实施方式中,结合图5,确定第二参考块集中的参考块的运动矢量各自对应的概率,包括:确定待编码单元对应的目标视频的运动矢量场的统计信息;根据待编码单元对应的目标视频的运动矢量场的统计信息,确定第二参考块集中的参考块的运动矢量各自对应的概率。
[0122]
统计信息包括均值和方差。
[0123]
示例性地,根据统计信息,对第二参考块集中的多个参考块的运动矢量各自对应的概率进行预测,并对运动矢量列表进行排序的算法如下所示。
[0124]
problist[5]=statsestimate(inputvector,mvcandlist[])
[0125]
sortlist[5]=sortprob(problist[5])
[0126]
for(i=0;i《5;i++)
[0127]
mvcandlist[i]=sortlist[i]
[0128]
传统的运动矢量列表采用固定排列的方式,导致运动矢量列表无法自适应当前编码单元的编码内容。因此,在本实施例中,利用运动矢量场的统计信息,可以方便、快捷地对各个参考块的运动矢量各自对应的概率进行估计,并根据估计结果,确定各个参考块在运动矢量列表中的排列。使排列后的运动矢量列表能够适应当前编码单元的编码内容,进而提高对当前编码单元的编码效率。
[0129]
在另一实施方式中,结合图5,确定第二参考块集中的多个参考块的运动矢量各自对应的概率,包括:利用概率预测模型处理第二参考块集中的多个参考块的运动矢量,得到第二参考块集中的多个参考块的运动矢量各自对应的概率。
[0130]
示例性地,利用概率预测模型对多个参考块的运动矢量各自对应的概率进行估计,并根据估计结果对运动矢量列表进行排序的算法如下所示。
[0131]
problist[5]=deepprobnetwork(inputvector,mvcandlist[])
[0132]
sortlist[5]=sortprob(problist[5])
[0133]
for(i=0;i《5;i++)
[0134]
mvcandlist[i]=sortlist[i]
[0135]
在该算法中,deepprobnetwork为概率预测模型,该概率预测模型根据输入的多个参考块的运动矢量,对mvcandlist中的运动矢量采纳的概率,由大到小进行排序。
[0136]
同样地,传统的运动矢量列表采用固定排列的方式,导致运动矢量列表无法自适应当前编码单元的编码内容,因此,在本实施例中,利用概率预测模型,能够准确地根据多个参考块的运动矢量的内在特征,对其在运动矢量列表中的位置进行排序,使排列后的运动矢量列表能够适应当前编码单元的编码内容,进而提高对当前编码单元的编码效率。
[0137]
上文结合图2至图5,详细描述了本技术的运动矢量的生成方法实施例,下面结合图6,详细描述本技术的运动矢量的生成装置实施例。应理解,运动矢量的生成方法实施例的描述与运动矢量的生成装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
[0138]
图6所示为本技术一示例性实施例提供的运动矢量的生成装置的结构示意图。如图6所示,本技术实施例提供的运动矢量的生成装置60包括:
[0139]
第一确定模块610,用于确定当前编码单元对应的第一参考块集,第一参考块集中包含多个参考块,当前编码单元与第一参考块集中的多个参考块具有空域相关关系;
[0140]
预测模块620,用于若第一参考块集中存在缺失运动矢量的参考块,则根据第一参考块集中具有完备运动矢量的参考块,对缺失运动矢量的参考块的运动矢量进行预测,得到第二参考块集,第二参考块集中的参考块的运动矢量均已知;
[0141]
第二确定模块630,用于根据第二参考块集中的参考块的运动矢量,确定当前编码单元的运动矢量。
[0142]
在本技术一实施例中,第一确定模块610还用于,确定当前编码单元的第一侧边界和第二侧边界,第一侧边界和第二侧边界为优先编码侧的边界;根据当前编码单元的第一侧边界,向远离当前编码单元的方向外扩第一预设距离,得到第一区域;根据当前编码单元的第二侧边界,向远离当前编码单元的方向外扩第二预设距离,得到第二区域;将第一区域和第二区域中的已编码单元确定为当前编码单元对应的第一参考块集。
[0143]
在本技术一实施例中,预测模块620还用于,根据具有完备运动矢量的参考块的运动矢量,确定缺失运动矢量的参考块的运动矢量估值;从具有完备运动矢量的参考块中确定与缺失运动矢量的参考块邻近空域的参考块;利用运动矢量预测模型,处理邻近空域的参考块各自对应的运动矢量、缺失运动矢量的参考块的运动矢量估值,得到缺失运动矢量的参考块的预测运动矢量。
[0144]
在本技术一实施例中,预测模块620还用于,确定具有完备运动矢量的参考块各自对应的权重;根据具有完备运动矢量的参考块各自对应的权重,以及具有完备运动矢量的参考块各自对应的运动矢量,利用目标线性计算公式,对缺失运动矢量的参考块的运动矢量进行预测。
[0145]
在本技术一实施例中,第二确定模块630还用于,确定第二参考块集中的参考块的运动矢量各自对应的概率,参考块的运动矢量对应的概率表征参考块的运动矢量与当前编码单元的运动矢量的相似度;根据第二参考块集中的参考块的运动矢量各自对应的概率的大小关系,确定第二参考块集中的参考块的运动矢量在运动矢量列表中的排序信息;基于第二参考块集中的参考块的运动矢量在运动矢量列表中的排序信息,确定当前编码单元的
运动矢量。
[0146]
在本技术一实施例中,第二确定模块630还用于,确定待编码单元对应的目标视频的运动矢量场的统计信息,统计信息包括均值和方差;根据待编码单元对应的目标视频的运动矢量场的统计信息,确定第二参考块集中的参考块的运动矢量各自对应的概率。
[0147]
在本技术一实施例中,第二确定模块630还用于,利用概率预测模型处理第二参考块集中的参考块的运动矢量,得到第二参考块集中的参考块的运动矢量各自对应的概率。
[0148]
下面,参考图7来描述根据本技术实施例的电子设备。图7所示为本技术一示例性实施例提供的电子设备的结构示意图。
[0149]
如图7所示,电子设备70包括一个或多个处理器701和存储器702。
[0150]
处理器701可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备70中的其他组件以执行期望的功能。
[0151]
存储器702可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器701可以运行所述程序指令,以实现上文所述的本技术的各个实施例的运动矢量的生成方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如包括第一参考块集、第二参考块集、当前编码单元等各种内容。
[0152]
在一个示例中,电子设备70还可以包括:输入装置703和输出装置704,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
[0153]
该输入装置703可以包括例如键盘、鼠标等等。
[0154]
该输出装置704可以向外部输出各种信息,包括第一参考块集、第二参考块集、当前编码单元等。该输出装置704可以包括例如显示器、扬声器、打印机,以及通信网络及其所连接的远程输出设备等等。
[0155]
当然,为了简化,图7中仅示出了该电子设备70中与本技术有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备70还可以包括任何其他适当的组件。
[0156]
除了上述方法和设备以外,本技术的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述描述的根据本技术各种实施例的运动矢量的生成方法中的步骤。
[0157]
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本技术实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行,或者完全在远程计算设备或服务器上执行。
[0158]
此外,本技术的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述描述的根据本技术各种实施例的运动矢量的生成方法中的步骤。
[0159]
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线,或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件,或者上述的任意合适的组合。
[0160]
以上结合具体实施例描述了本技术的基本原理,但是,需要指出的是,在本技术中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本技术的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本技术为必须采用上述具体的细节来实现。
[0161]
本技术中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
[0162]
还需要指出的是,在本技术的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本技术的等效方案。
[0163]
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本技术。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本技术的范围。因此,本技术不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
[0164]
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本技术的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
技术特征:
1.一种运动矢量的生成方法,其特征在于,包括:确定当前编码单元对应的第一参考块集,所述第一参考块集中包含多个参考块,所述当前编码单元与所述第一参考块集中的多个参考块具有空域相关关系;若所述第一参考块集中存在缺失运动矢量的参考块,则根据所述第一参考块集中具有完备运动矢量的参考块,对所述缺失运动矢量的参考块的运动矢量进行预测,得到第二参考块集,所述第二参考块集中的参考块的运动矢量均已知;根据所述第二参考块集中的参考块的运动矢量,确定所述当前编码单元的运动矢量。2.根据权利要求1所述的运动矢量的生成方法,其特征在于,所述确定当前编码单元对应的第一参考块集,包括:确定所述当前编码单元的第一侧边界和第二侧边界,所述第一侧边界和所述第二侧边界为优先编码侧的边界;根据所述当前编码单元的第一侧边界,向远离所述当前编码单元的方向外扩第一预设距离,得到第一区域;根据所述当前编码单元的第二侧边界,向远离所述当前编码单元的方向外扩第二预设距离,得到第二区域;将所述第一区域和所述第二区域中的已编码单元确定为所述当前编码单元对应的第一参考块集。3.根据权利要求1或2所述的运动矢量的生成方法,其特征在于,所述根据所述第一参考块集中具有完备运动矢量的参考块,对所述缺失运动矢量的参考块的运动矢量进行预测,包括:根据所述具有完备运动矢量的参考块的运动矢量,确定所述缺失运动矢量的参考块的运动矢量估值;从所述具有完备运动矢量的参考块中确定,与所述缺失运动矢量的参考块邻近空域的参考块;利用运动矢量预测模型,处理所述邻近空域的参考块各自对应的运动矢量、所述缺失运动矢量的参考块的运动矢量估值,得到所述缺失运动矢量的参考块的预测运动矢量。4.根据权利要求1或2所述的运动矢量的生成方法,其特征在于,所述根据所述第一参考块集中具有完备运动矢量的参考块,对所述缺失运动矢量的参考块的运动矢量进行预测,包括:确定所述具有完备运动矢量的参考块各自对应的权重;根据所述具有完备运动矢量的参考块各自对应的权重,以及所述具有完备运动矢量的参考块各自对应的运动矢量,利用目标线性计算公式,对所述缺失运动矢量的参考块的运动矢量进行预测。5.根据权利要求1或2所述的运动矢量的生成方法,其特征在于,所述根据所述第二参考块集中的参考块的运动矢量,确定所述当前编码单元的运动矢量,包括:确定所述第二参考块集中的参考块的运动矢量各自对应的概率,所述参考块的运动矢量对应的概率表征所述参考块的运动矢量与所述当前编码单元的运动矢量的相似度;根据所述第二参考块集中的参考块的运动矢量各自对应的概率的大小关系,确定所述第二参考块集中的参考块的运动矢量在运动矢量列表中的排序信息;
基于所述第二参考块集中的参考块的运动矢量在运动矢量列表中的排序信息,确定所述当前编码单元的运动矢量。6.根据权利要求5所述的运动矢量的生成方法,其特征在于,所述确定所述第二参考块集中的参考块的运动矢量各自对应的概率,包括:确定所述待编码单元对应的目标视频的运动矢量场的统计信息,所述统计信息包括均值和方差;根据所述待编码单元对应的目标视频的运动矢量场的统计信息,确定所述第二参考块集中的参考块的运动矢量各自对应的概率。7.根据权利要求5所述的运动矢量的生成方法,其特征在于,所述确定所述第二参考块集中的参考块的运动矢量各自对应的概率,包括:利用概率预测模型处理所述第二参考块集中的参考块的运动矢量,得到所述第二参考块集中的参考块的运动矢量各自对应的概率。8.一种运动矢量的生成装置,其特征在于,包括:第一确定模块,用于确定当前编码单元对应的第一参考块集,所述第一参考块集中包含多个参考块,所述当前编码单元与所述第一参考块集中的多个参考块具有空域相关关系;预测模块,用于若所述第一参考块集中存在缺失运动矢量的参考块,则根据所述第一参考块集中具有完备运动矢量的参考块,对所述缺失运动矢量的参考块的运动矢量进行预测,得到第二参考块集,所述第二参考块集中的参考块的运动矢量均已知;第二确定模块,用于根据所述第二参考块集中的参考块的运动矢量,确定所述当前编码单元的运动矢量。9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1至7任一项所述的运动矢量的生成方法。10.一种电子设备,其特征在于,包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于执行上述权利要求1至7任一项所述的运动矢量的生成方法。
技术总结
本申请提供了一种运动矢量的生成方法、装置、存储介质及电子设备,涉及视频编解码技术领域。该运动矢量的生成方法包括:确定当前编码单元对应的第一参考块集,第一参考块集中包含多个参考块,当前编码单元与第一参考块集中的多个参考块具有空域相关关系;若第一参考块集中存在缺失运动矢量的参考块,则根据第一参考块集中具有完备运动矢量的参考块,对缺失运动矢量的参考块的运动矢量进行预测,得到第二参考块集,第二参考块集中的参考块的运动矢量均已知;根据第二参考块集中的参考块的运动矢量,确定当前编码单元的运动矢量。通过本申请中的方案,提高了对当前编码单元的运动矢量的预测精度,以及对当前编码单元的编码效率。以及对当前编码单元的编码效率。以及对当前编码单元的编码效率。
技术研发人员:昝劲文 周学武 张韵东
受保护的技术使用者:广东中星电子有限公司 中星电子股份有限公司 北京中星微电子有限公司
技术研发日:2023.08.23
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种铝卷生产转运装置的制作方法 下一篇:一种面粉加工的润麦装置的制作方法