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

视频编解码中的位移矢量预测方法、装置及设备与流程

2021-11-26 23:40:00 来源:中国专利 TAG:


1.本技术实施例涉及视频编解码技术领域,特别涉及一种视频编解码中的位移矢量预测方法、装置及设备。


背景技术:

2.在目前的视频编解码标准中,如vvc(versatile video coding,通用视频编码)和avs3(audio video coding standard 3,音视频编码标准3)中,引入了帧间预测、ibc(intra block copy,帧内块复制)预测等位移矢量预测技术。
3.以ibc预测模式为例,基于历史块的bv(block vector,块矢量)构建hbvp(history based block vector prediction,基于历史的块矢量预测)列表,然后从该hbvp列表中导出cbvp(class based block vector prediction,基于类别的块矢量预测)列表,在从cbvp列表中导出当前块的bvp(block vector predictor,预测块矢量)。
4.目前的位移矢量预测方法较为单一,不利于提升位移矢量的编码性能。


技术实现要素:

5.本技术实施例提供了一种视频编解码中的位移矢量预测方法、装置及设备,能够结合多种预测模式相关的位移矢量来构建候选位移矢量,然后从该候选位移矢量中导出当前单元的预测位移矢量,从而提升位移矢量的编码性能。所述技术方案如下:
6.一方面,本技术实施例提供了一种视频编解码中的位移矢量预测方法,所述方法包括:
7.获取候选位移矢量,所述候选位移矢量包括与至少两种预测模式相关的位移矢量;
8.从所述候选位移矢量中导出当前单元的预测位移矢量;
9.基于所述预测位移矢量对所述当前单元进行编码或解码。
10.另一方面,本技术实施例提供了一种视频编解码中的串矢量预测方法,所述方法包括:
11.获取候选位移矢量;
12.从所述候选位移矢量中导出当前串的预测位移矢量;
13.基于所述预测位移矢量对所述当前串进行编码或解码。
14.另一方面,本技术实施例提供了一种视频编解码中的位移矢量预测装置,所述装置包括:
15.候选矢量获取模块,用于获取候选位移矢量,所述候选位移矢量包括与至少两种预测模式相关的位移矢量;
16.预测矢量导出模块,用于从所述候选位移矢量中导出当前单元的预测位移矢量;
17.编码或解码模块,用于基于所述预测位移矢量对所述当前单元进行编码或解码。
18.另一方面,本技术实施例提供了一种视频编解码中的串矢量预测装置,所述装置
包括:
19.候选矢量获取模块,用于获取候选位移矢量;
20.预测矢量导出模块,用于从所述候选位移矢量中导出当前串的预测位移矢量;
21.编码或解码模块,用于基于所述预测位移矢量对所述当前串进行编码或解码。
22.另一方面,本技术实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述视频编解码中的位移矢量预测方法,或者实现上述视频编解码中的串矢量预测方法。
23.再一方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述视频编解码中的位移矢量预测方法,或者实现上述视频编解码中的串矢量预测方法。
24.还一方面,本技术实施例提供了一种计算机程序产品,所述计算机程序产品被处理器执行时,用于实现上述视频编解码中的位移矢量预测方法,或者实现上述视频编解码中的串矢量预测方法。
25.本技术实施例提供的技术方案可以包括如下有益效果:
26.通过联合多种预测模式相关的位移矢量来构建候选位移矢量,然后从该候选位移矢量中导出当前单元的预测位移矢量,该方案不仅能够利用与当前单元具有相同预测模式的已编码/解码单元的信息,还允许结合与当前单元具有不同预测模式的已编码/解码单元的信息,导出当前单元的预测位移矢量,从而使得候选位移矢量有更高的概率被选中为预测位移矢量,提升位移矢量的编码性能。
27.另外,针对帧内串复制技术提供了一种串矢量预测方法,在帧内串复制中也可以采用矢量预测技术来提高串矢量的编码性能。
附图说明
28.图1是本技术一个实施例提供的帧间预测模式的示意图;
29.图2是本技术一个实施例提供的候选运动矢量的示意图;
30.图3是本技术一个实施例提供的帧内块复制模式的示意图;
31.图4是本技术一个实施例提供的帧内串复制模式的示意图;
32.图5是本技术一个实施例提供的通信系统的简化框图;
33.图6是本技术示例性示出的视频编码器和视频解码器在流式传输环境中的放置方式的示意图;
34.图7是本技术一个实施例提供的视频编解码中的位移矢量预测方法的流程图;
35.图8是本技术一个实施例提供的生成候选位移矢量列表的示意图;
36.图9是本技术一个实施例提供的视频编解码中的串矢量预测方法的流程图;
37.图10是本技术一个实施例提供的视频编解码中的位移矢量预测装置的框图;
38.图11是本技术一个实施例提供的视频编解码中的串矢量预测装置的框图;
39.图12是本技术一个实施例提供的计算机设备的结构框图。
具体实施方式
40.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
41.一些主流的视频编码标准中,如hevc(high efficiency video coding,高性能视频编码)、vvc、avs3等标准中,均采用基于块的混合编码框架。它们将原始的视频数据分成一系列的编码块,结合预测、变换和熵编码等视频编码方法,实现视频数据的压缩。其中,运动补偿是视频编码常用的一类预测方法,运动补偿基于视频内容在时域或空域的冗余特性,从已编码的区域导出当前编码块的预测值。这类预测方法包括:帧间预测、帧内块复制预测、帧内串复制预测等,在具体的编码实现中,可能单独或组合使用这些预测方法。对于使用了这些预测方法的编码块,通常需要在码流显式或隐式地编码一个或多个二维的位移矢量,指示当前块(或当前块的同位块)相对它的一个或多个参考块的位移。
42.需要注意的是,在不同的预测模式下及不同的实现,位移矢量可能有不同的名称,本文统一按照以下方式进行描述:1)帧间预测模式中的位移矢量称为运动矢量(motion vector,简称mv);2)ibc预测模式中的位移矢量称为块矢量(block vector,简称bv);3)isc(intra string copy,帧内串复制)预测模式中的位移矢量称为串矢量(string vector,简称sv)。帧内串复制也称作“串预测”或“串匹配”等。
43.mv是指用于帧间预测模式的位移矢量,由当前图像指向参考图像,其值为当前块和参考块之间的坐标偏移量,其中,当前块与参考块在两个不同图像中。在帧间预测模式中,可以引入运动矢量预测,通过对当前块的运动矢量进行预测,得到当前块对应的预测运动矢量,对当前块对应的预测运动矢量与实际运动矢量之间的差值进行编码传输,相较于直接对当前块对应的实际运动矢量进行编码传输,有利于节省比特开销。在本技术实施例中,预测运动矢量是指通过运动矢量预测技术,得到的当前块的运动矢量的预测值。
44.bv是指用于ibc预测模式的位移矢量,其值为当前块和参考块之间的坐标偏移量,其中,当前块与参考块均在当前图像中。在ibc模式中,可以引入块矢量预测,通过对当前块的块矢量进行预测,得到当前块对应的预测块矢量,对当前块对应的预测块矢量与实际块矢量之间的差值进行编码传输,相较于直接对当前块对应的实际块矢量进行编码传输,有利于节省比特开销。在本技术实施例中,预测块矢量是指通过块矢量预测技术,得到的当前块的块矢量的预测值。
45.sv是指用于isc预测模式的位移矢量,其值为当前串和参考串之间的坐标偏移量,其中,当前串与参考串均在当前图像中。在isc模式中,可以引入串矢量预测,通过对当前串的串矢量进行预测,得到当前串对应的预测串矢量,对当前串对应的预测串矢量与实际串矢量之间的差值进行编码传输,相较于直接对当前串对应的实际串矢量进行编码传输,有利于节省比特开销。在本技术实施例中,预测串矢量是指通过串矢量预测技术,得到的当前串的串矢量的预测值。
46.下面对几种不同的预测模式进行介绍:
47.一、帧间预测模式
48.如图1所示,帧间预测利用视频时间域的相关性,使用邻近已编码图像的像素预测当前图像的像素,以达到有效去除视频时域冗余的目的,能够有效节省编码残差数据的比特。其中,p为当前帧,pr为参考帧,b为当前待编码块,br是b的参考块。b’与b在图像中的坐
unit,编码树单元)行时hmvp列表将重置(清空)。在h.266/vvc中,hmvp表大小s设置为6,为了减少冗余检查操作的数量,引入了以下简化:
57.1.将用于merge列表生成的hmvp候选的数量设置为(n<=4)?m:(8-n),其中,n表示merge列表中现有候选的数量,m表示merge列表中可用的hmvp候选的数量。
58.2.一旦可用merge列表的长度达到最大允许的长度减1,则hmvp的合并候选者列表构建过程终止。
59.二、ibc预测模式
60.ibc是hevc屏幕内容编码(screen content coding,简称scc)扩展中采纳的一种帧内编码工具,它显著的提升了屏幕内容的编码效率。在avs3和vvc中,也采纳了ibc技术以提升屏幕内容编码的性能。ibc利用屏幕内容视频在空间的相关性,使用当前图像上已编码图像像素预测当前待编码块的像素,能够有效节省编码像素所需的比特。如图3所示,在ibc中当前块与其参考块之间的位移,称为bv(块矢量)。h.266/vvc采用了类似于帧间预测的bv预测技术进一步节省编码bv所需的比特。
61.avs3中采纳了基于类别的块矢量预测(class based block vector prediction,简称cbvp),类似于hmvp,该方法首先使用一个hbvp(history based block vector prediction,基于历史的块矢量预测)列表存储历史的ibc编码块的信息,除了记录历史编码块的bv信息以外,还记录了历史编码块的位置、大小等信息。对于当前编码块,按以下条件对hbvp中的候选bv进行分类:
62.类别0:历史编码块的面积大于或等于64像素;
63.类别1:bv的频率大于或等于2;
64.类别2:历史编码块左上角的坐标位于当前块左上角坐标的左方;
65.类别3:历史编码块左上角的坐标位于当前块左上角坐标的上方;
66.类别4:历史编码块左上角的坐标位于当前块左上角坐标的左上方;
67.类别5:历史编码块左上角的坐标位于当前块左上角坐标的右上方;
68.类别6:历史编码块左上角的坐标位于当前块左上角坐标的左下方;
69.其中,每个类别中的实例按编码顺序的逆序排列(编码顺序距离当前块越近,排序越靠前),第一个历史编码块对应的bv为该类对应的候选bv。然后按类别0到类别6的顺序添加每个类别对应的候选bv至cbvp列表。在向cbvp列表中添加新的bv时,需要检查cbvp列表中是否已存在重复的bv。仅当不存在重复的bv时,才将该bv添加至cbvp列表中。编码端在cbvp列表中选择最佳的候选bv作为bvp,并在码流中编码一个索引,表示最佳的候选bv所对应类别在cbvp列表中的索引。解码端根据该索引从cbvp列表中解码得到bvp。
70.三、isc预测模式
71.isc技术按照某种扫描顺序(如光栅扫描、往返扫描和zig-zag扫描等)将一个编码块分成一系列像素串或未匹配像素。类似于ibc,每个串在当前图像已编码区域中寻找相同形状的参考串,导出当前串的预测值,通过编码当前串像素值与预测值之间残差,代替直接编码像素值,能够有效节省比特。图4给出了帧内串复制的示意图,深灰色的区域为已编码区域,白色的28个像素为串1,浅灰色的35个像素为串2,黑色的1个像素表示未匹配像素。串1与其参考串之间的位移,即为图4中的串矢量1;串2与其参考串之间的位移,即为图4中的串矢量2。
72.帧内串复制技术需要编码当前编码块中各个串对应的sv、串长度以及是否有匹配串的标志等。其中,sv表示待编码串到其参考串的位移。串长度表示该串所包含的像素数量。在不同的实现方式中,串长度的编码有多种方式,以下给出几种示例(部分示例可能组合使用):1)直接在码流中编码串的长度;2)在码流中编码处理该串后续的待处理像素数量,解码端则根据当前块的大小n,已处理的像素数量n1,解码得到的待处理像素数量n2,计算得到当前串的长度,l=n-n1-n2;3)在码流中编码一个标志指示该串是否为最后一个串,如果是最后一个串,则根据当前块的大小n,已处理的像素数量n1,计算得到当前串的长度l=n-n1。如果一个像素在可参考的区域中没有找到对应的参考,将直接对未匹配像素的像素值进行编码。
73.帧间预测、帧内块复制中的位移矢量预测技术,在帧内串复制中也可以结合类似的预测技术来提高sv的编码性能。在相关技术中,帧间预测、帧内块复制和帧内串复制技术所使用的位移矢量(包括mv、bv和sv)预测技术仅利用了同种模式的编码块的信息,而忽略了不同模式之间的位移矢量的相关性。以vvc/avs3的bv预测技术为例,相关的bv预测技术仅利用ibc编码块的bv构建hbvp,不会使用帧间预测或帧内串复制编码块的位移矢量信息更新hbvp。特别的,ibc模式和isc模式的参考区域都为当前图像上的已编码区域,它们的位移矢量具有较高的相关性。
74.本技术提出了一种视频编解码中的位移矢量预测方法,通过联合多种预测模式相关的位移矢量来构建候选位移矢量,然后从该候选位移矢量中导出当前单元的预测位移矢量,该方案不仅能够利用与当前单元具有相同预测模式的已编码/解码单元的信息,还允许结合与当前单元具有不同预测模式的已编码/解码单元的信息,导出当前单元的预测位移矢量,从而使得候选位移矢量有更高的概率被选中为预测位移矢量,提升位移矢量的编码性能。
75.如图5所示,其示出了本技术一个实施例提供的通信系统的简化框图。通信系统200包括多个设备,所述设备可通过例如网络250彼此通信。举例来说,通信系统200包括通过网络250互连的第一设备210和第二设备220。在图5的实施例中,第一设备210和第二设备220执行单向数据传输。举例来说,第一设备210可对视频数据例如由第一设备210采集的视频图片流进行编码以通过网络250传输到第二设备220。已编码的视频数据以一个或多个已编码视频码流形式传输。第二设备220可从网络250接收已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。单向数据传输在媒体服务等应用中是较常见的。
76.在另一实施例中,通信系统200包括执行已编码视频数据的双向传输的第三设备230和第四设备240,所述双向传输可例如在视频会议期间发生。对于双向数据传输,第三设备230和第四设备240中的每个设备可对视频数据(例如由设备采集的视频图片流)进行编码,以通过网络250传输到第三设备230和第四设备240中的另一设备。第三设备230和第四设备240中的每个设备还可接收由第三设备230和第四设备240中的另一设备传输的已编码视频数据,且可对所述已编码视频数据进行解码以恢复视频数据,且可根据恢复的视频数据在可访问的显示装置上显示视频图片。
77.在图5的实施例中,第一设备210、第二设备220、第三设备230和第四设备240可为服务器、个人计算机和智能电话等计算机设备,但本技术公开的原理可不限于此。本技术实
施例适用于pc(personal computer,个人计算机)、手机、平板电脑、媒体播放器和/或专用视频会议设备。网络250表示在第一设备210、第二设备220、第三设备230和第四设备240之间传送已编码视频数据的任何数目的网络,包括例如有线连线的和/或无线通信网络。通信网络250可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本技术的目的,除非在下文中有所解释,否则网络250的架构和拓扑对于本技术公开的操作来说可能是无关紧要的。
78.作为实施例,图6示出视频编码器和视频解码器在流式传输环境中的放置方式。本技术所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字tv(电视)、在包括cd(compact disc,光盘)、dvd(digital versatile disc,数字通用光盘)、存储棒等的数字介质上存储压缩视频等等。
79.流式传输系统可包括采集子系统313,所述采集子系统可包括数码相机等视频源301,所述视频源创建未压缩的视频图片流302。在实施例中,视频图片流302包括由数码相机拍摄的样本。相较于已编码的视频数据304(或已编码的视频码流),视频图片流302被描绘为粗线以强调高数据量的视频图片流,视频图片流302可由电子装置320处理,所述电子装置320包括耦接到视频源301的视频编码器303。视频编码器303可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于视频图片流302,已编码的视频数据304(或已编码的视频码流304)被描绘为细线以强调较低数据量的已编码的视频数据304(或已编码的视频码流304),其可存储在流式传输服务器305上以供将来使用。一个或多个流式传输客户端子系统,例如图6中的客户端子系统306和客户端子系统308,可访问流式传输服务器305以检索已编码的视频数据304的副本307和副本309。客户端子系统306可包括例如电子装置330中的视频解码器310。视频解码器310对已编码的视频数据的传入副本307进行解码,且产生可在显示器312(例如显示屏)或另一呈现装置(未描绘)上呈现的输出视频图片流311。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频数据304、视频数据307和视频数据309(例如视频码流)进行编码。
80.应注意,电子装置320和电子装置330可包括其它组件(未示出)。举例来说,电子装置320可包括视频解码器(未示出),且电子装置330还可包括视频编码器(未示出)。其中,视频解码器用于对接收到的已编码视频数据进行解码;视频编码器用于对视频数据进行编码。
81.需要说明的一点是,本技术实施例提供的技术方案可以应用于h.266/vcc标准、h.265/hevc(high efficient video coding,高效率视频压缩编码)标准、avs(audio video coding standard,音视频编码标准)(如avs3)或者下一代视频编解码标准中,本技术实施例对此不作限定。
82.还需要说明的一点是,本技术实施例提供的方法,各步骤的执行主体可以是解码端设备,也可以是编码端设备。在视频解码和视频编码的过程中,都可以采用本技术实施例提供的技术方案,来进行位移矢量预测。解码端设备和编码端设备均可以是计算机设备,该计算机设备是指具备数据计算、处理和存储能力的电子设备,如pc、手机、平板电脑、媒体播放器、专用视频会议设备、服务器等等。
83.另外,本技术所提供的方法可以单独使用或以任意顺序与其他方法合并使用。基于本技术所提供方法的编码器和解码器,可以由1个或多个处理器或是1个或多个集成电路
来实现。下面,通过几个实施例对本技术技术方案进行介绍说明。
84.请参考图7,其示出了本技术一个实施例提供的视频编解码中的位移矢量预测方法的流程图。为了便于说明,仅以各步骤执行主体为计算机设备进行介绍说明。该方法可以包括如下几个步骤(701~703):
85.步骤701,获取候选位移矢量,该候选位移矢量包括与至少两种预测模式相关的位移矢量。
86.候选位移矢量的作用为导出当前单元的预测位移矢量提供候选项。候选位移矢量的数量可以有多个。对于编码过程来说,该候选位移矢量可以是一些已编码单元的位移矢量;对于解码过程来说,该候选位移矢量可以是一些已解码单元的位移矢量。
87.在本技术实施例中,当前单元是指当前待编码(或待解码)的图像单元,该图像单元可以包括一个或者多个像素,该图像单元可以是如上文介绍的块状或是串状。对于帧间预测模式和ibc预测模式来说,当前单元也称为当前块,是指当前待编码(或待解码)的图像块。对于isc预测模式来说,当前单元也称为当前串,是指当前待编码(或待解码)的图像串。
88.在本技术实施例中,候选位移矢量包括与至少两种预测模式相关的位移矢量。可选地,上述至少两种预测模式包括:ibc预测模式和isc预测模式。此时,候选位移矢量可以包括基于ibc预测模式生成的位移矢量(即块矢量),还可以包括基于isc预测模式生成的位移矢量(即串矢量)。
89.当然,在一些其他实施例中,上述至少两种预测模式可以包括下列预测模式中的至少两种:帧间预测模式、ibc预测模式、isc预测模式以及后续可能引入的新的预测模式,本技术实施例对此不作限定。
90.步骤702,从候选位移矢量中导出当前单元的预测位移矢量。
91.在本技术实施例中,预测位移矢量是指基于位移矢量预测技术,通过对当前单元的位移矢量进行预测,得到的当前单元的位移矢量的预测值。上述“位移矢量”是用于表征运动信息的二维矢量,如上文介绍的mv、bv或sv等。
92.可选地,计算机设备构建候选位移矢量列表,该候选位移矢量列表是用于存储候选位移矢量的列表。候选位移矢量列表中可以包括若干个候选位移矢量,且每一个候选位移矢量对应有相应的索引值(index)。可选地,候选位移矢量列表中除了包括候选位移矢量之外,还可以包括相应的辅助信息,如尺寸信息、位置信息、重复次数、预测模式等。计算机设备从该候选位移矢量列表中导出当前单元的预测位移矢量。例如,计算机设备采用位移矢量预测技术,从该候选位移矢量列表中选择最佳的候选位移矢量,作为当前单元的预测位移矢量。可选地,计算机设备可以采用类似于merge模式、amvp模式或者其他位移矢量预测技术,导出当前单元的预测位移矢量。需要说明的是,上述最佳的候选位移矢量,可以是指率失真代价最小的候选位移矢量。
93.步骤703,基于预测位移矢量对当前单元进行编码或解码。
94.在导出当前单元的预测位移矢量之后,对于编码过程来说,即可基于该预测位移矢量对当前单元进行编码;对于解码过程来说,即可基于该预测位移矢量对当前单元进行解码。
95.本实施例提供的位移矢量预测技术可以称为混合矢量预测技术,因为其联合了多种预测模式相关的位移矢量来构建候选位移矢量。
96.可选地,仅在当前单元的预测模式为规定模式时才使用该混合矢量预测技术。例如,仅在当前单元的预测模式为ibc模式的情况下,使用混合矢量预测技术导出当前单元的预测位移矢量。又例如,仅在当前单元的预测模式为isc模式的情况下,使用混合矢量预测技术导出当前单元的预测位移矢量。再例如,在当前单元的预测模式为ibc模式或isc模式的情况下,使用混合矢量预测技术导出当前单元的预测位移矢量。
97.综上所述,本技术实施例提供的技术方案,通过联合多种预测模式相关的位移矢量来构建候选位移矢量,然后从该候选位移矢量中导出当前单元的预测位移矢量,该方案不仅能够利用与当前单元具有相同预测模式的已编码/解码单元的信息,还允许结合与当前单元具有不同预测模式的已编码/解码单元的信息,导出当前单元的预测位移矢量,从而使得候选位移矢量有更高的概率被选中为预测位移矢量,提升位移矢量的编码性能。
98.本技术实施例提供了几种获取候选位移矢量的方法,下面将对此进行介绍说明。
99.在示例性实施例中,通过如下步骤获取候选位移矢量:
100.1、构建基于历史的位移矢量预测列表,该基于历史的位移矢量预测列表中包括历史单元的位移矢量;
101.2、从基于历史的位移矢量预测列表中导出候选位移矢量。
102.在本技术实施例中,历史单元是指已编码(或已解码)的图像单元,该图像单元可以包括一个或者多个像素,该图像单元可以是块状也可以是串状。对于帧间预测模式和ibc模式来说,历史单元也称为历史块,是指已编码(或已解码)的图像块。对于isc模式来说,历史单元也称为历史串,是指已编码(或已解码)的图像串。
103.可选地,在将第一位移矢量添加至基于历史的位移矢量预测列表之前,执行针对该第一位移矢量的查重操作;根据查重结果对该基于历史的位移矢量预测列表进行更新。其中,第一位移矢量可以是任意一个待添加的位移矢量。例如,在将第一位移矢量添加至基于历史的位移矢量预测列表之前,可以将该第一位移矢量与目标位移矢量进行查重比对,该目标位移矢量可以是基于历史的位移矢量预测列表中的全部位移矢量,也可以是基于历史的位移矢量预测列表中的部分位移矢量。可选地,将第一位移矢量与目标位移矢量逐个依次进行查重比对。当发现第一位移矢量与某一个目标位移矢量重复时,可以停止比对,确定查重结果为存在重复;当发现第一位移矢量与某一个目标位移矢量不重复时,选择下一个目标位移矢量与第一位移矢量进行查重比对;如果所有的目标位移矢量查重比对完毕,与第一位移矢量均不重复,那么确定查重结果为不存在重复。通过上述查重操作,能够避免基于历史的位移矢量预测列表中存在重复的实例。
104.可选地,执行针对第一位移矢量的查重操作,查重范围包括但不限于以下几种可选的形式:(1)将第一位移矢量与基于历史的位移矢量预测列表中的全部位移矢量进行查重比对;(2)将第一位移矢量与基于历史的位移矢量预测列表中的m个位移矢量进行查重比对,该m为设定值,如可以是基于历史的位移矢量预测列表中排序最靠前的m个位移矢量,也可以是基于历史的位移矢量预测列表中排序最靠后的m个位移矢量;(3)将第一位移矢量与预设位移矢量进行查重比对,如该预设位移矢量可以是(0,1)。通过将第一位移矢量与列表中的全部位移矢量进行查重比对,能够使得查重比对地更加全面;通过将第一位移矢量与列表中的部分位移矢量或预设位移矢量进行查重比对,相比于进行全量查重比对,这有助于减少查重比对的次数,从而降低编解码器的处理复杂度。
105.若查重结果为不存在重复,则将第一位移矢量添加至基于历史的位移矢量预测列表中。若查重结果为存在重复,则不将第一位移矢量添加至基于历史的位移矢量预测列表中,或者,去除基于历史的位移矢量预测列表中与第一位移矢量重复的位移矢量,并将第一位移矢量添加至基于历史的位移矢量预测列表中。
106.可选地,将第一位移矢量添加至基于历史的位移矢量预测列表中,包括:若基于历史的位移矢量预测列表的长度小于最大长度,则将第一位移矢量插入至基于历史的位移矢量预测列表的列尾或列头;若基于历史的位移矢量预测列表的长度等于最大长度,则按照先入先出的原则去除最先插入至基于历史的位移矢量预测列表中的位移矢量,并将第一位移矢量插入至基于历史的位移矢量预测列表的列尾或列头。
107.在一个示例中,第一位移矢量和第二位移矢量不重复,是指第一位移矢量和第二位移矢量不相同。在另一个示例中,第一位移矢量和第二位移矢量不重复,是指第一位移矢量和第二位移矢量不相同,且第一位移矢量对应的辅助信息和第二位移矢量对应的辅助信息也不相同。可选地,该辅助信息包括但不限于以下至少一项:尺寸信息、位置信息、重复次数,以及预测模式。
108.可选地,若查重结果为存在重复,还执行以下至少一项操作,对基于历史的位移矢量预测列表中已有实例的信息进行更新:(1)存储第一位移矢量以及与第一位移矢量重复的位移矢量中,尺寸的较大值;(2)存储第一位移矢量的位置信息;(3)将与第一位移矢量重复的位移矢量的重复次数加1。通过上述方式,在查重结果为存在重复的情况下,通过对列表中已有实例的信息(如尺寸信息、位置信息、重复次数等辅助信息)进行更新,从而保证该列表中已有实例的信息的有效性。
109.可选地,从基于历史的位移矢量预测列表中导出的候选位移矢量,按以下任意一种方式排序:按编码顺序排序、按尺寸信息排序、按与当前单元之间的距离排序、按预测模式排序。例如,按编码顺序从后到前导出候选位移矢量,按编码顺序从后到前对导出的候选位移矢量进行排序,即编码顺序离当前单元越近的实例具有更高的优先级。又例如,按尺寸(如块大小或串长度)从大到小进行排序。再例如,按距离当前单元从近到远进行排序。
110.在示例性实施例中,通过以下方式确定待添加至基于历史的位移矢量预测列表的实例:
111.1)在每完成一个ibc块的编码或解码的情况下,采用以下方式之一:
112.方式1:新建一个实例,记录该ibc块的bv;
113.方式2:若该ibc块的面积(如宽*高)大于或等于预设面积,则新建一个实例,记录该ibc块的bv;
114.2)在每完成一个isc块的编码或解码的情况下,采用以下方式之一:
115.方式1:新建多个实例,记录该isc块中所有串的sv;
116.方式2:新建一个或多个实例,记录该isc块中长度大于预设长度的串的sv;
117.方式3:新建一个实例,记录该isc块中长度最大的串的sv;
118.方式4:新建一个实例,记录该isc块中第一个或最后一个串的sv;
119.方式5:若该isc块的面积(如宽*高)大于或等于预设面积,则执行上述2)中的方式1至方式4中的任一项操作;
120.方式6:若该isc块中最大串长度大于或等于预设长度,则执行上述2)中的方式1至
方式4中的任一项操作;
121.3)作为2)的可替代实现方式,在每完成isc块中一个串的编码或解码的情况下,采用以下方式之一:
122.方式1:新建一个实例,记录该串的sv;
123.方式2:若该串的长度大于或等于预设长度,则新建一个实例,记录该串的sv;
124.方式3:若该串为isc块中第一个或最后一个串,则新建一个实例,记录该串的sv;
125.方式4:若该isc块的面积(如宽*高)大于或等于预设面积,则新建一个实例,记录该串的sv。
126.上述方式1)至方式3)中新建的任意一个实例,即可作为待添加的第一位移矢量,后续经过上文介绍的查重操作,确定是否将该第一位移矢量添加至基于历史的位移矢量预测列表中。
127.另外,考虑到块面积或串长度越大,与其他编码或解码单元相关的可能性也就越大,因此仅当ibc块的面积大于或等于预设面积时,或者当串长度大于或等于预设长度时,新建实例并记录该ibc块的bv或记录该串的sv,有助于提升该位移矢量被选中作为预测位移矢量的概率,从而提升编码性能。另外,如果不考虑块面积或串长度,编解码器的处理复杂度则会更低。
128.另外,上述方式3)与方式2)相比,在每完成一个串的编码或解码时就对基于历史的位移矢量预测列表进行更新,这样在开始下一个串的编码或解码时,就可以利用前一个串的信息,而且因为通常来讲越邻近的单元之间的相关性越大,因此方式3)有助于进一步提升编码性能。
129.可选地,在上述方式1)至方式3)中,除了记录历史单元的位移矢量之外,还可以记录一些辅助信息,包括但不限于以下一种或多种的组合:
130.a.历史单元的尺寸信息。可选地,如果历史单元的预测模式为ibc预测模式,则该历史单元的尺寸信息包括与bv相对应的块的面积(如该块包含的像素个数);如果历史单元的预测模式为isc预测模式,则该历史单元的尺寸信息包括与sv相对应的串的长度(如该串包含的像素个数)。
131.b.历史单元的位置信息。可选地,如果历史单元的预测模式为ibc预测模式,则该历史单元的位置信息包括与bv相对应的块的左上角的坐标;如果历史单元的预测模式为isc预测模式,则该历史单元的位置信息包括与sv相对应的串中代表像素的坐标,或者与sv相对应的串的外接矩形的角点的坐标。例如,上述代表像素可以是按串扫描顺序的第一个像素,也可以是按串扫描顺序的最后一个像素等等。另外,串的外接矩形是指包含该串且面积最小的矩形区域。可选地,该外接矩形的角点可以是该外接矩形的左上角顶点。
132.c.历史单元的位移矢量的重复次数。可选地,新加入的实例的重复次数设为1。
133.d.历史单元的预测模式。
134.通过记录上述辅助信息,可以在查重比对或者排序等操作时,以该辅助信息作为参考。
135.综上所述,本实施例通过构建基于历史的位移矢量预测列表,记录多种预测模式相关的历史单元的位移矢量,由该列表导出当前单元的预测位移矢量,实现了获取包含多种预测模式相关的位移矢量作为候选位移矢量。
136.在示例性实施例中,通过如下步骤获取候选位移矢量:
137.1、构建基于历史的位移矢量预测列表,该基于历史的位移矢量预测列表中包括历史单元的位移矢量和辅助信息;
138.2、根据辅助信息对基于历史的位移矢量预测列表中的位移矢量进行分类;
139.3、基于各个分类中的位移矢量,生成基于类别的位移矢量预测列表;
140.4、从基于类别的位移矢量预测列表中导出候选位移矢量。
141.有关基于历史的位移矢量预测列表的介绍说明及其构建过程,可参见上文实施例,此处不再赘述。
142.在一个示例中,根据尺寸信息对基于历史的位移矢量预测列表中的位移矢量进行分类。
143.例如,设置一个或者多个尺寸阈值,根据基于历史的位移矢量预测列表中的位移矢量的尺寸信息与该尺寸阈值的大小关系,确定该位移矢量所属的分类。例如,设置尺寸阈值t
s
,将尺寸大于(或大于等于)t
s
的位移矢量归为一类,将尺寸小于等于(或小于)t
s
的位移矢量归为一类。
144.在另一示例中,根据位置信息对基于历史的位移矢量预测列表中的位移矢量进行分类。
145.假设当前块的左上角坐标为(x0,y0)、宽和高分别为w和h,待分类的实例的左上角坐标为(x1,y1),有以下可选的分类方法:
146.1)将左方(x
i
<x0)的实例分为一类;
147.2)将上方(y
i
<y0)的实例分为一类;
148.3)将正左方(x
i
<x0且y
i
≥y0且y
i
<y0 h)的实例分为一类;
149.4)将正上方(y
i
<y0且x
i
≥x0且x
i
<x0 w)的实例分为一类;
150.5)将左上方(y
i
<y0且x
i
<x0)的实例分为一类;
151.6)将右上方(y
i
<y0且x
i
≥x0 w)的实例分为一类;
152.7)将左下方(y
i
≥y0 h且x
i
<x0)的实例分为一类。
153.在另一示例中,根据重复次数对基于历史的位移矢量预测列表中的位移矢量进行分类。
154.例如,设置一个或者多个重复次数阈值,根据基于历史的位移矢量预测列表中的位移矢量的重复次数与该重复次数阈值的大小关系,确定该位移矢量所属的分类。例如,设置重复次数阈值t
c
,将重复次数大于(或大于等于)t
c
的位移矢量归为一类,将重复次数小于等于(或小于)t
c
的位移矢量归为一类。
155.需要说明的是,上文介绍的分类方式仅是示例性和解释性的。在可能的实施例中,还可以综合多种分类方式对基于历史的位移矢量预测列表中的位移矢量进行分类,如综合尺寸信息和位置信息对位移矢量进行分类,本技术实施例对此不作限定。
156.可选地,分类中的位移矢量按以下任意一种方式排序:按编码顺序排序、按尺寸信息排序、按与当前单元之间的距离排序、按重复次数排序。例如,按编码顺序从后到前进行排序,即编码顺序离当前单元越近的实例在类中具有更高的优先级。又例如,按尺寸(如块大小或串长度)从大到小进行排序。再例如,按距离当前单元从近到远进行排序。再例如,按重复次数从多到少进行排序。
157.可选地,基于分类结果生成基于类别的位移矢量预测列表,当选择某一类时,按照预设的规则,导出该类中的第k个实例(即位移矢量)作为当前单元的预测位移矢量,k为正整数。
158.综上所述,本实施例通过构建基于历史的位移矢量预测列表,记录多种预测模式相关的历史单元的位移矢量,通过对该基于历史的位移矢量预测列表中的位移矢量进行分类,生成基于类别的位移矢量预测列表,由该基于类别的位移矢量预测列表导出当前单元的预测位移矢量,实现了获取包含多种预测模式相关的位移矢量作为候选位移矢量。
159.在示例性实施例中,通过如下步骤获取候选位移矢量:获取当前单元的邻近单元的位移矢量,作为候选位移矢量。
160.当前单元的邻近单元是指与当前单元之间的距离小于一定值的图像单元。在ibc预测模式下,当前单元即为当前块,当前单元的邻近单元即为当前块的邻近块;在isc预测模式下,当前单元即为当前串,当前单元的邻近单元即为当前串的邻近串,该当前串的邻近串可以是指当前块的邻近块中的串,当前块是指当前串所属的编码/解码块。另外,假设当前块的左上角坐标为(x,y),宽度为w,高度为h,当前块的邻近块的位置可以为但不限于包含图2中(a)部分所示的a0、a1、b0、b1和b2位置的块。
161.可选地,若邻近单元的预测模式为ibc预测模式,则将邻近单元的块矢量导出为候选位移矢量。
162.可选地,若邻近单元的预测模式为isc预测模式,则按以下任意一种方式导出候选位移矢量:
163.1)导出邻近单元中包含当前单元的位置信息的串的串矢量;
164.2)导出邻近单元中长度大于预设阈值的串的串矢量;
165.3)导出邻近单元中长度最大的串的串矢量;
166.4)导出邻近单元中第一个或最后一个串的串矢量;
167.5)导出邻近单元中全部串的串矢量。
168.综上所述,本实施例通过获取当前单元的邻近单元的位移矢量作为候选位移矢量,由于邻近单元可以包括多种预测模式相关的位移矢量,因此实现了获取包含多种预测模式相关的位移矢量作为候选位移矢量。
169.在示例性实施例中,通过如下步骤获取候选位移矢量:获取预设位移矢量作为候选位移矢量。
170.可选地,获取与当前单元的预测模式相关的预设位移矢量,作为候选位移矢量。例如,针对不同的预测模式,对应设置预设位移矢量;在确定当前单元的预测模式之后,基于上述对应关系,获取与当前单元的预测模式对应设置的预设位移矢量,作为候选位移矢量。
171.可选地,若当前单元的预测模式为ibc预测模式或isc预测模式,且当前单元的宽度为w且高度为h,则候选位移矢量包括以下至少一种:(-w,-h)、(-w,0)、(0,-h)、(-2*w,0)、(0,-2*h);若当前单元的预测模式为isc预测模式,且当前单元的外接矩形的宽度为ws且高度为hs,则候选位移矢量包括以下至少一种:(-ws,-hs)、(-ws,0)、(0,-hs)、(-2*ws,0)、(0,-2*hs)。其中,当前单元的外接矩形是指包含该当前单元的最小外接矩形;例如,在当前单元为串的情况下,其外接矩形是指包含该串且面积最小的矩形区域。
172.综上所述,本实施例通过针对不同的预测模式,对应设置预设位移矢量,获取预设
位移矢量作为候选位移矢量,实现了获取包含多种预测模式相关的位移矢量作为候选位移矢量。
173.如图8所示,上文实施例介绍了多种获取候选位移矢量的方式,包括从基于历史的位移矢量预测列表中获取候选位移矢量、从基于类别的位移矢量预测列表中获取候选位移矢量、从当前单元的邻近单元的位移矢量中获取候选位移矢量,以及从预设位移矢量中获取候选位移矢量等,上述多种方式可以某一种方式单独使用,也可以两种或两种以上方式结合使用,本技术实施例对此不作限定。
174.可选地,上文实施例介绍的基于历史的位移矢量预测列表的长度可以采用预设值,也可以根据码流中存在的预测模式进行设定。假设基于历史的位移矢量预测列表的长度为n,若码流中仅存在ibc块,则n=n1;若码流中仅存在isc块,则n=n2;若码流中存在ibc块和isc块,则n=n1 n2;其中,n1为码流中允许ibc块存在时的列表长度,n2为码流中允许isc块存在时的列表长度。可选地,码流中是否存在ibc模式或isc模式,由其模式对应的序列级头信息(如sps(sequence parameter set,序列参数集))中的标志位决定。
175.请参考图9,其示出了本技术一个实施例提供的视频编解码中的串矢量预测方法的流程图。为了便于说明,仅以各步骤执行主体为计算机设备进行介绍说明。该方法可以包括如下几个步骤(901~903):
176.步骤901,获取候选位移矢量。
177.在本实施例中,候选位移矢量的作用为导出当前串的预测位移矢量提供候选项。候选位移矢量的数量可以有多个。对于编码过程来说,该候选位移矢量可以是一些已编码单元的位移矢量;对于解码过程来说,该候选位移矢量可以是一些已解码单元的位移矢量。
178.步骤902,从候选位移矢量中导出当前串的预测位移矢量。
179.在本实施例中,预测位移矢量是指基于位移矢量预测技术,通过对当前串的位移矢量进行预测,得到的当前串的位移矢量的预测值。该预测位移矢量可以是预测串矢量(string vector predictor,简称svp)。
180.在一个示例中,针对串矢量预测场景,候选位移矢量仅包括采用isc预测模式生成的串矢量。
181.在另一个示例中,针对串矢量预测场景,候选位移矢量包括与至少两种预测模式相关的位移矢量。例如,上述至少两种预测模式可以包括ibc预测模式和isc预测模式。在这种情况下,有关候选位移矢量的获取方式可参见上文实施例中的介绍说明,本实施例对此不再赘述。
182.步骤903,基于预测位移矢量对当前串进行编码或解码。
183.在导出当前串的预测位移矢量之后,对于编码过程来说,即可基于该预测位移矢量对当前串进行编码;对于解码过程来说,即可基于该预测位移矢量对当前串进行解码。
184.综上所述,本技术实施例提供的技术方案,通过获取候选位移矢量,从候选位移矢量中导出当前串的预测位移矢量,针对帧内串复制技术提供了一种串矢量预测方法,在帧内串复制中也可以采用矢量预测技术来提高串矢量的编码性能。
185.另外,当候选位移矢量包括与至少两种预测模式相关的位移矢量时,通过联合多种预测模式相关的位移矢量来构建候选位移矢量,然后从该候选位移矢量中导出当前串的预测位移矢量,该方案不仅能够利用与当前串具有相同预测模式的已编码/解码单元的信
息,还允许结合与当前串具有不同预测模式的已编码/解码单元的信息,导出当前串的预测位移矢量,从而使得候选位移矢量有更高的概率被选中为预测位移矢量,提升位移矢量的编码性能。
186.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
187.请参考图10,其示出了本技术一个实施例提供的视频编解码中的位移矢量预测装置的框图。该装置具有实现上述视频编解码中的位移矢量预测方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以设置在计算机设备上。该装置1000可以包括:候选矢量获取模块1010、预测矢量导出模块1020,以及编码或解码模块1030。
188.候选矢量获取模块1010,用于获取候选位移矢量,所述候选位移矢量包括与至少两种预测模式相关的位移矢量。
189.预测矢量导出模块1020,用于从所述候选位移矢量中导出当前单元的预测位移矢量。
190.编码或解码模块1030,用于基于所述预测位移矢量对所述当前单元进行编码或解码。
191.在示例性实施例中,所述至少两种预测模式包括:ibc预测模式和isc预测模式。
192.在示例性实施例中,所述候选矢量获取模块1010,用于:
193.构建基于历史的位移矢量预测列表,所述基于历史的位移矢量预测列表中包括历史单元的位移矢量;
194.从所述基于历史的位移矢量预测列表中导出所述候选位移矢量。
195.在示例性实施例中,所述装置1000还包括列表更新模块,用于:
196.在将第一位移矢量添加至所述基于历史的位移矢量预测列表之前,执行针对所述第一位移矢量的查重操作;
197.若查重结果为不存在重复,则将所述第一位移矢量添加至所述基于历史的位移矢量预测列表中;
198.若查重结果为存在重复,则不将所述第一位移矢量添加至所述基于历史的位移矢量预测列表中,或者,去除所述基于历史的位移矢量预测列表中与所述第一位移矢量重复的位移矢量,并将所述第一位移矢量添加至所述基于历史的位移矢量预测列表中。
199.在示例性实施例中,从所述基于历史的位移矢量预测列表中导出的所述候选位移矢量,按以下任意一种方式排序:按编码顺序排序、按尺寸信息排序、按与所述当前单元之间的距离排序、按预测模式排序。
200.在示例性实施例中,所述候选矢量获取模块1010,用于:
201.构建基于历史的位移矢量预测列表,所述基于历史的位移矢量预测列表中包括历史单元的位移矢量和辅助信息;
202.根据所述辅助信息对所述基于历史的位移矢量预测列表中的位移矢量进行分类;
203.基于各个分类中的位移矢量,生成基于类别的位移矢量预测列表;
204.从所述基于类别的位移矢量预测列表中导出所述候选位移矢量。
205.在示例性实施例中,所述候选矢量获取模块1010,用于:
206.根据尺寸信息对所述基于历史的位移矢量预测列表中的位移矢量进行分类;和/或,
207.根据位置信息对所述基于历史的位移矢量预测列表中的位移矢量进行分类;和/或,
208.根据重复次数对所述基于历史的位移矢量预测列表中的位移矢量进行分类。
209.在示例性实施例中,所述分类中的位移矢量按以下任意一种方式排序:按编码顺序排序、按尺寸信息排序、按与所述当前单元之间的距离排序、按重复次数排序。
210.在示例性实施例中,所述候选矢量获取模块1010,用于:获取所述当前单元的邻近单元的位移矢量,作为所述候选位移矢量。
211.在示例性实施例中,所述候选矢量获取模块1010,用于:
212.若所述邻近单元的预测模式为ibc预测模式,则将所述邻近单元的块矢量导出为所述候选位移矢量;
213.若所述邻近单元的预测模式为isc预测模式,则按以下任意一种方式导出所述候选位移矢量:
214.导出所述邻近单元中包含所述当前单元的位置信息的串的串矢量;
215.导出所述邻近单元中长度大于预设阈值的串的串矢量;
216.导出所述邻近单元中长度最大的串的串矢量;
217.导出所述邻近单元中第一个或最后一个串的串矢量;
218.导出所述邻近单元中全部串的串矢量。
219.在示例性实施例中,所述候选矢量获取模块1010,用于:获取预设位移矢量作为所述候选位移矢量。
220.在示例性实施例中,所述候选矢量获取模块1010,用于:获取与所述当前单元的预测模式相关的预设位移矢量,作为所述候选位移矢量。
221.在示例性实施例中,若所述当前单元的预测模式为ibc预测模式或isc预测模式,且所述当前单元的宽度为w且高度为h,则所述候选位移矢量包括以下至少一种:(-w,-h)、(-w,0)、(0,-h)、(-2*w,0)、(0,-2*h);
222.若所述当前单元的预测模式为isc预测模式,且所述当前单元的外接矩形的宽度为ws且高度为hs,则所述候选位移矢量包括以下至少一种:(-ws,-hs)、(-ws,0)、(0,-hs)、(-2*ws,0)、(0,-2*hs)。
223.在示例性实施例中,仅在所述当前单元的预测模式为ibc预测模式的情况下,使用混合矢量预测技术导出所述当前单元的预测位移矢量;
224.或者,仅在所述当前单元的预测模式为isc预测模式的情况下,使用混合矢量预测技术导出所述当前单元的预测位移矢量;
225.或者,在所述当前单元的预测模式为ibc预测模式或isc预测模式的情况下,使用混合矢量预测技术导出所述当前单元的预测位移矢量。
226.在示例性实施例中,通过以下方式确定待添加至所述基于历史的位移矢量预测列表的实例:
227.在每完成一个ibc块的编码或解码的情况下,采用以下方式之一:
228.方式1:新建一个实例,记录所述ibc块的bv;
229.方式2:若所述ibc块的面积大于或等于预设面积,则新建一个实例,记录所述ibc块的bv:
230.在每完成一个isc块的编码或解码的情况下,采用以下方式之一:
231.方式1:新建多个实例,记录所述isc块中所有串的sv;
232.方式2:新建一个或多个实例,记录所述isc块中长度大于预设长度的串的sv;
233.方式3:新建一个实例,记录所述isc块中长度最大的串的sv;
234.方式4:新建一个实例,记录所述isc块中第一个或最后一个串的sv;
235.方式5:若所述isc块的面积大于或等于预设面积,则执行上述方式1至方式4中的任一项操作;
236.方式6:若所述isc块中最大串长度大于或等于预设长度,则执行上述方式1至方式4中的任一项操作;
237.在每完成isc块中一个串的编码或解码的情况下,采用以下方式之一:
238.方式1:新建一个实例,记录所述串的sv;
239.方式2:若所述串的长度大于或等于预设长度,则新建一个实例,记录所述串的sv;
240.方式3:若所述串为所述isc块中第一个或最后一个串,则新建一个实例,记录所述串的sv;
241.方式4:若所述isc块的面积大于或等于预设面积,则新建一个实例,记录所述串的sv。
242.在示例性实施例中,所述历史单元的辅助信息包括以下至少一项:尺寸信息、位置信息、位移矢量的重复次数、预测模式;其中,
243.如果所述历史单元的预测模式为ibc预测模式,则所述历史单元的尺寸信息包括与bv相对应的块的面积;如果所述历史单元的预测模式为isc预测模式,则所述历史单元的尺寸信息包括与sv相对应的串的长度;
244.如果所述历史单元的预测模式为ibc预测模式,则所述历史单元的位置信息包括与bv相对应的块的左上角的坐标;如果所述历史单元的预测模式为isc预测模式,则所述历史单元的尺寸信息包括与sv相对应的串中代表像素的坐标,或者与sv相对应的串的外接矩形的角点的坐标。
245.在示例性实施例中,所述基于历史的位移矢量预测列表的长度为n;
246.若码流中仅存在ibc块,则n=n1;
247.若码流中仅存在isc块,则n=n2;
248.若码流中存在ibc块和isc块,则n=n1 n2;
249.其中,n1为码流中允许ibc块存在时的列表长度,n2为码流中允许isc块存在时的列表长度。
250.综上所述,本技术实施例提供的技术方案,通过联合多种预测模式相关的位移矢量来构建候选位移矢量,然后从该候选位移矢量中导出当前单元的预测位移矢量,该方案不仅能够利用与当前单元具有相同预测模式的已编码/解码单元的信息,还允许结合与当前单元具有不同预测模式的已编码/解码单元的信息,导出当前单元的预测位移矢量,从而使得候选位移矢量有更高的概率被选中为预测位移矢量,提升位移矢量的编码性能。
251.请参考图11,其示出了本技术一个实施例提供的视频编解码中的串矢量预测装置
的框图。该装置具有实现上述视频编解码中的串矢量预测方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以设置在计算机设备上。该装置1100可以包括:候选矢量获取模块1110、预测矢量导出模块1120,以及编码或解码模块1130。
252.候选矢量获取模块1110,用于获取候选位移矢量。
253.预测矢量导出模块1120,用于从所述候选位移矢量中导出当前串的预测位移矢量。
254.编码或解码模块1130,用于基于所述预测位移矢量对所述当前串进行编码或解码。
255.在示例性实施例中,所述候选位移矢量仅包括采用isc预测模式生成的串矢量。
256.在示例性实施例中,所述候选位移矢量包括与至少两种预测模式相关的位移矢量。
257.综上所述,本技术实施例提供的技术方案,通过获取候选位移矢量,从候选位移矢量中导出当前串的预测位移矢量,针对帧内串复制技术提供了一种串矢量预测方法,在帧内串复制中也可以采用矢量预测技术来提高串矢量的编码性能。
258.需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
259.请参考图12,其示出了本技术一个实施例提供的计算机设备的结构框图。该计算机设备可以是上文介绍的编码端设备,也可以是上文介绍的解码端设备。该计算机设备150可以包括:处理器151、存储器152、通信接口153、编码器/解码器154和总线155。
260.处理器151包括一个或者一个以上处理核心,处理器151通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。
261.存储器152可用于存储计算机程序,处理器151用于执行该计算机程序,以实现上述视频编解码中的位移矢量预测方法,或者实现上述视频编解码中的串矢量预测方法。
262.通信接口153可用于与其它设备进行通信,如收发音视频数据。
263.编码器/解码器154可用于实现编码和解码功能,如对音视频数据进行编码和解码。
264.存储器152通过总线155与处理器151相连。
265.此外,存储器152可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,易失性或非易失性存储设备包括但不限于:磁盘或光盘,eeprom(electrically erasable programmable read-only memory,电可擦除可编程只读存储器),eprom(erasable programmable read-only memory,可擦除可编程只读存储器),sram(static random-access memory,静态随时存取存储器),rom(read-only memory,只读存储器),磁存储器,快闪存储器,prom(programmable read-only memory,可编程只读存储器)。
266.本领域技术人员可以理解,图12中示出的结构并不构成对计算机设备120的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
267.在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被处理器执行时实现上述视频编解码中的位移矢量预测方法,或者实现上述视频编解码中的串矢量预测方法。
268.在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被处理器执行时,其用于实现上述视频编解码中的位移矢量预测方法,或者实现上述视频编解码中的串矢量预测方法。
269.应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
270.以上所述仅为本技术的示例性实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

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

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

相关文献