视频编解码中的运动信息列表构建方法、装置及设备转让专利

申请号 : CN202010054758.9

文献号 : CN113141507B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王英彬许晓中刘杉

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请提供了一种视频编解码中的运动信息列表构建方法、装置及设备,涉及视频编解码技术领域。所述方法包括:获取候选运动信息以及运动信息列表的长度,运动信息列表的长度是指运动信息列表中包括的运动信息的数量;根据运动信息列表的长度,确定运动信息列表中与候选运动信息进行查重比对的目标运动信息;将候选运动信息与目标运动信息进行查重比对;根据查重比对结果对运动信息列表进行更新。本申请实施例提供的技术方案,实现了有选择性地从运动信息列表中选取一些运动信息进行查重比对,而不是每次都将运动信息列表中的全部运动信息进行全量的查重比对,这有助于减少查重操作的次数,从而降低视频编解码器的复杂度。

权利要求 :

1.一种视频编解码中的运动信息列表构建方法,其特征在于,所述方法包括:获取候选运动信息以及运动信息列表的长度,所述运动信息列表的长度是指所述运动信息列表中包括的运动信息的数量;

若所述运动信息列表的长度N小于或等于第一阈值T1,则确定目标运动信息包括所述运动信息列表中的全部N个运动信息;其中,所述第一阈值T1小于所述运动信息列表的最大长度,所述最大长度是指所述运动信息列表中最多包括的运动信息的数量;

若所述运动信息列表的长度N大于所述第一阈值T1,则确定所述目标运动信息包括所述运动信息列表中的T1个运动信息;

将所述候选运动信息与所述目标运动信息进行查重比对;

根据查重比对结果对所述运动信息列表进行更新。

2.根据权利要求1所述的方法,其特征在于,所述将所述候选运动信息与所述目标运动信息进行查重比对,包括:若所述目标运动信息包括所述N个运动信息,则按照从第1个运动信息至第N个运动信息的顺序,将所述候选运动信息与所述N个运动信息逐个依次进行查重比对;

或者,

若所述目标运动信息包括所述N个运动信息,则按照从第N个运动信息至第1个运动信息的顺序,将所述候选运动信息与所述N个运动信息逐个依次进行查重比对。

3.根据权利要求1所述的方法,其特征在于,所述T1个运动信息包括:所述运动信息列表中的第1个至第T1个运动信息,或者,所述运动信息列表中的第N个至第N‑T1+1个运动信息。

4.根据权利要求3所述的方法,其特征在于,所述将所述候选运动信息与所述目标运动信息进行查重比对,包括:若所述T1个运动信息包括所述运动信息列表中的第1个至第T1个运动信息,则按照从第

1个运动信息至第T1个运动信息的顺序,将所述候选运动信息与所述T1个运动信息逐个依次进行查重比对;

或者,

若所述T1个运动信息包括所述运动信息列表中的第1个至第T1个运动信息,则按照从第T1个运动信息至第1个运动信息的顺序,将所述候选运动信息与所述T1个运动信息逐个依次进行查重比对;

或者,

若所述T1个运动信息包括所述运动信息列表中的第N个至第N‑T1+1个运动信息,则按照从第N个运动信息至第N‑T1+1个运动信息的顺序,将所述候选运动信息与所述T1个运动信息逐个依次进行查重比对;

或者,

若所述T1个运动信息包括所述运动信息列表中的第N个至第N‑T1+1个运动信息,则按照从第N‑T1+1个运动信息至第N个运动信息的顺序,将所述候选运动信息与所述T1个运动信息逐个依次进行查重比对。

5.根据权利要求1所述的方法,其特征在于,所述根据查重比对结果对所述运动信息列表进行更新,包括:若所述查重比对结果为不存在重复,且所述运动信息列表的长度小于最大长度,则将所述候选运动信息插入至所述运动信息列表中;

若所述查重比对结果为不存在重复,且所述运动信息列表的长度等于所述最大长度,则结束所述运动信息列表的构建且不将所述候选运动信息插入至所述运动信息列表中,或者,按照先入先出的原则去除最先插入至所述运动信息列表中的运动信息,并将所述候选运动信息插入至所述运动信息列表中;

若所述查重比对结果为存在重复,则不将所述候选运动信息插入至所述运动信息列表中,或者,去除所述运动信息列表中与所述候选运动信息重复的运动信息,并将所述候选运动信息插入至所述运动信息列表中。

6.根据权利要求5所述的方法,其特征在于,所述将所述候选运动信息插入至所述运动信息列表中,包括:将所述候选运动信息插入至所述运动信息列表的列尾;

或者,

将所述候选运动信息插入至所述运动信息列表的列头。

7.根据权利要求1所述的方法,其特征在于,所述候选运动信息与所述运动信息列表中的运动信息重复,是指:所述候选运动信息中包含的矢量值与所述运动信息中包含的矢量值的横坐标和纵坐标均相等;

或者,

所述候选运动信息中包含的矢量值与所述运动信息中包含的矢量值的横坐标差值的绝对值,以及纵坐标差值的绝对值均小于预设阈值。

8.根据权利要求1所述的方法,其特征在于,所述获取运动信息列表的长度之后,还包括:若所述运动信息列表的长度为0,则直接将所述候选运动信息插入至所述运动信息列表中;

若所述运动信息列表的长度不为0,则基于所述运动信息列表的长度N和所述第一阈值T1,确定所述目标运动信息。

9.根据权利要求1所述的方法,其特征在于,所述运动信息列表为帧内块复制IBC模式的候选类列表,所述候选类列表用于记录编码单元对应的运动信息,所述运动信息包括块矢量、位置信息、尺寸信息及重复次数信息中的第一项或者第一项与其它至少一项的组合。

10.一种视频编解码中的运动信息列表构建装置,其特征在于,所述装置包括:信息获取模块,用于获取候选运动信息以及运动信息列表的长度,所述运动信息列表的长度是指所述运动信息列表中包括的运动信息的数量;

信息确定模块,用于若所述运动信息列表的长度N小于或等于第一阈值T1,则确定目标运动信息包括运动信息列表中的全部N个运动信息;其中,所述第一阈值T1小于所述运动信息列表的最大长度;若所述运动信息列表的长度N大于所述第一阈值T1,则确定所述目标运动信息包括所述运动信息列表中的T1个运动信息,所述最大长度是指所述运动信息列表中最多包括的运动信息的数量;

查重比对模块,用于将所述候选运动信息与所述目标运动信息进行查重比对;

列表更新模块,用于根据查重比对结果对所述运动信息列表进行更新。

11.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至9任一项所述的方法。

12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至9任一项所述的方法。

说明书 :

视频编解码中的运动信息列表构建方法、装置及设备

技术领域

[0001] 本申请实施例涉及视频编解码技术领域,特别涉及一种视频编解码中的运动信息列表构建方法、装置及设备。

背景技术

[0002] 在目前的视频压缩技术中,如VVC(Versatile Video Coding,通用视频编码)和AVS3(Audio Video coding Standard 3,音视频编码标准3)中,视频编解码器通常需要构建运动信息列表以导出IBC(Intra Block Copy,帧内块复制)模式的块矢量预测值。
[0003] 在构建IBC模式的运动信息列表的过程中,在将某一个候选运动信息插入运动信息列表中之前,首先需要检查运动信息列表中是否存在某个运动信息与该候选运动信息重复,不将重复的运动信息插入到运动信息列表中。当运动信息列表中已有M个运动信息时,最多需要进行M次查重才能决定是否插入候选运动信息,M为正整数。若使用N个运动信息构建运动信息列表,那么在可能情况下共需要进行[N×(N‑1)]/2次查重操作,N为正整数。
[0004] 显然,过多的查重操作会提升视频编解码器的复杂度。

发明内容

[0005] 本申请实施例提供了一种视频编解码中的运动信息列表构建方法、装置及设备,可以减少查重操作的次数,从而降低视频编解码器的复杂度。所述技术方案如下:
[0006] 一方面,本申请实施例提供了一种视频编解码中的运动信息列表构建方法,所述方法包括:
[0007] 获取候选运动信息以及运动信息列表的长度,所述运动信息列表的长度是指所述运动信息列表中包括的运动信息的数量;
[0008] 根据所述运动信息列表的长度,确定所述运动信息列表中与所述候选运动信息进行查重比对的目标运动信息;
[0009] 将所述候选运动信息与所述目标运动信息进行查重比对;
[0010] 根据查重比对结果对所述运动信息列表进行更新。
[0011] 另一方面,本申请实施例提供了一种视频编解码中的运动信息列表构建装置,所述装置包括:
[0012] 信息获取模块,用于获取候选运动信息以及运动信息列表的长度,所述运动信息列表的长度是指所述运动信息列表中包括的运动信息的数量;
[0013] 信息确定模块,用于根据所述运动信息列表的长度,确定所述运动信息列表中与所述候选运动信息进行查重比对的目标运动信息;
[0014] 查重比对模块,用于将所述候选运动信息与所述目标运动信息进行查重比对;
[0015] 列表更新模块,用于根据查重比对结果对所述运动信息列表进行更新。
[0016] 另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述视频编解码中的运动信息列表构建方法。
[0017] 再一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述视频编解码中的运动信息列表构建方法。
[0018] 还一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品被处理器执行时,用于实现上述视频编解码中的运动信息列表构建方法。
[0019] 本申请实施例提供的技术方案可以包括如下有益效果:
[0020] 通过获取运动信息列表的长度,根据该长度确定运动信息列表中与待插入的候选运动信息进行查重比对的目标运动信息,将候选运动信息与该目标运动信息进行查重比对,从而实现了有选择性地从运动信息列表中选取一些运动信息进行查重比对,而不是每次都将运动信息列表中的全部运动信息进行全量的查重比对,这有助于减少查重操作的次数,从而降低视频编解码器的复杂度。

附图说明

[0021] 图1是本申请示例性示出的一种视频编码的示意图;
[0022] 图2是本申请一个实施例提供的通信系统的简化框图;
[0023] 图3是本申请示例性示出的视频编码器和视频解码器在流式传输环境中的放置方式的示意图;
[0024] 图4是本申请一个实施例提供的帧间预测模式下的编码示意图;
[0025] 图5是本申请一个实施例提供的帧内预测模式下的编码示意图;
[0026] 图6是本申请一个实施例提供的视频编解码中的运动信息列表构建方法的流程图;
[0027] 图7是本申请一个实施例提供的视频编解码中的运动信息列表构建装置的框图;
[0028] 图8是本申请一个实施例提供的计算机设备的结构框图。

具体实施方式

[0029] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0030] 请参考图1,当前块101包括在运动搜索过程期间已由编码器发现的样本,根据已产生空间偏移的相同大小的先前块,可预测所述样本。另外,可从一个或多个参考图片相关联的元数据中导出所述MV(Motion Vector,运动矢量),而非对MV直接编码。例如,使用关联于A0、A1和B0、B1、B2(分别对应102到106)五个周围样本中的任一样本的MV,(按解码次序)从最近的参考图片的元数据中导出所述MV。
[0031] 如图2所示,其示出了本申请一个实施例提供的通信系统的简化框图。通信系统200包括多个设备,所述设备可通过例如网络250彼此通信。举例来说,通信系统200包括通过网络250互连的第一设备210和第二设备220。在图2的实施例中,第一设备210和第二设备
220执行单向数据传输。举例来说,第一设备210可对视频数据例如由第一设备210采集的视频图片流进行编码以通过网络250传输到第二设备220。已编码的视频数据以一个或多个已编码视频码流形式传输。第二设备220可从网络250接收已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。单向数据传输在媒体服务等应用中是较常见的。
[0032] 在另一实施例中,通信系统200包括执行已编码视频数据的双向传输的第三设备230和第四设备240,所述双向传输可例如在视频会议期间发生。对于双向数据传输,第三设备230和第四设备240中的每个设备可对视频数据(例如由设备采集的视频图片流)进行编码,以通过网络250传输到第三设备230和第四设备240中的另一设备。第三设备230和第四设备240中的每个设备还可接收由第三设备230和第四设备240中的另一设备传输的已编码视频数据,且可对所述已编码视频数据进行解码以恢复视频数据,且可根据恢复的视频数据在可访问的显示装置上显示视频图片。
[0033] 在图2的实施例中,第一设备210、第二设备220、第三设备230和第四设备240可为服务器、个人计算机和智能电话等计算机设备,但本申请公开的原理可不限于此。本申请实施例适用于PC(Personal Computer,个人计算机)、手机、平板电脑、媒体播放器和/或专用视频会议设备。网络250表示在第一设备210、第二设备220、第三设备230和第四设备240之间传送已编码视频数据的任何数目的网络,包括例如有线连线的和/或无线通信网络。通信网络250可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本申请的目的,除非在下文中有所解释,否则网络250的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。
[0034] 作为实施例,图3示出视频编码器和视频解码器在流式传输环境中的放置方式。本申请所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV(电视)、在包括CD(Compact Disc,光盘)、DVD(Digital Versatile Disc,数字通用光盘)、存储棒等的数字介质上存储压缩视频等等。
[0035] 流式传输系统可包括采集子系统313,所述采集子系统可包括数码相机等视频源301,所述视频源创建未压缩的视频图片流302。在实施例中,视频图片流302包括由数码相机拍摄的样本。相较于已编码的视频数据304(或已编码的视频码流),视频图片流302被描绘为粗线以强调高数据量的视频图片流,视频图片流302可由电子装置320处理,所述电子装置320包括耦接到视频源301的视频编码器303。视频编码器303可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于视频图片流302,已编码的视频数据304(或已编码的视频码流304)被描绘为细线以强调较低数据量的已编码的视频数据304(或已编码的视频码流304),其可存储在流式传输服务器305上以供将来使用。一个或多个流式传输客户端子系统,例如图3中的客户端子系统306和客户端子系统
308,可访问流式传输服务器305以检索已编码的视频数据304的副本307和副本309。客户端子系统306可包括例如电子装置330中的视频解码器310。视频解码器310对已编码的视频数据的传入副本307进行解码,且产生可在显示器312(例如显示屏)或另一呈现装置(未描绘)上呈现的输出视频图片流311。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频数据304、视频数据307和视频数据309(例如视频码流)进行编码。
[0036] 应注意,电子装置320和电子装置330可包括其它组件(未示出)。举例来说,电子装置320可包括视频解码器(未示出),且电子装置330还可包括视频编码器(未示出)。其中,视频解码器用于对接收到的已编码视频数据进行解码;视频编码器用于对视频数据进行编码。
[0037] 在对视频帧中的待编码块进行编码时,可以使用帧间预测模式或帧内预测模式,在一个或多个已编码参考块的基础上,生成一个预测块。预测块可以是待编码块的预估版本。可通过从预测块中减去该待编码块来生成残差块,反之亦然,该残差块可用于表示预测残差(或称为预测误差)。由于需要用于表示预测残差的数据量,通常可能少于需要用于表示待编码块的数据量,因此可以对残差块进行编码以实现较高的压缩比。例如,如图4所示,对于帧间预测模式,已编码参考块41和待编码块42位于两个不同的图像(即视频帧)中。如图5所示,对于帧内预测模式,已编码参考块51和待编码块52位于同一个图像(即视频帧)中。
[0038] 视频编码方式包括帧间编码和帧内编码。帧间编码是指使用帧间预测对编码单元或图像进行编码。帧内编码是指使用帧内预测对编码单元进行编码。需要注意的是,使用普通帧内预测的编码单元称为普通帧内编码单元;使用IBC模式的编码单元称为块复制帧内编码单元。
[0039] 帧间预测是指使用先前解码图像生成当前图像样本预测值的过程。帧内预测是指在相同解码图像中使用先前解码的样值生成当前样本预测值的过程。帧内预测分为普通帧内预测和IBC(也称为块复制帧内预测)。
[0040] 块矢量(Block Vector,BV)是指用于IBC模式的二维矢量,其值为当前块和参考块之间的坐标偏移量,其中,当前块与参考块均在当前图像中。在IBC模式中,可以引入块矢量预测,通过对当前块的块矢量进行预测,得到当前块对应的预测块矢量,对当前块对应的预测块矢量与实际块矢量之间的差值进行编码传输,相较于直接对当前块对应的实际块矢量进行编码传输,有利于节省比特开销。在本申请实施例中,预测块矢量是指通过块矢量预测技术,得到的当前块的块矢量的预测值。
[0041] 运动矢量(Motion Vector,MV)是指用于帧间预测的二维矢量,由当前图像指向参考图像,其值为当前块和参考块之间的坐标偏移量,其中,当前块与参考块在两个不同图像中。在帧间预测模式中,可以引入运动矢量预测,通过对当前块的运动矢量进行预测,得到当前块对应的预测运动矢量,对当前块对应的预测运动矢量与实际运动矢量之间的差值进行编码传输,相较于直接对当前块对应的实际运动矢量进行编码传输,有利于节省比特开销。在本申请实施例中,预测运动矢量是指通过运动矢量预测技术,得到的当前块的运动矢量的预测值。
[0042] 在本申请实施例中,运动信息列表是用于记录已编码单元的运动信息的列表,运动信息列表中可以包括若干个运动信息,且每一个运动信息对应有相应的索引值(index)。如果本申请技术方案应用于IBC模式,那么上述运动信息可以包括块矢量、位置信息、尺寸信息及重复次数信息等。如果本申请技术方案应用于帧间预测模式,那么上述运动信息可以包括运动矢量、参考帧信息等。编码端通过构建运动信息列表,在得到当前块对应的预测运动信息(包括预测矢量,如上文介绍的预测块矢量或预测运动矢量)之后,通过查找该运动信息列表,得到当前块对应的预测运动信息的索引值,然后对该索引值进行编码传输。相应地,解码端通过构建运动信息列表,在解码得到当前块对应的预测运动信息的索引值之后,通过查表即可获知当前块对应的预测运动信息。
[0043] 需要说明的是,在不同的应用场景中,或者随着技术的演进和发展,上述名词“运动信息列表”可能会发生变化,如在IBC模式中,“运动信息列表”也可称为“候选类列表(记为CbvpCandidateList)”,或者还可以称为运动信息索引列表、预测块矢量列表、块矢量索引列表等等。但是,本领域技术人员可以从其功能上理解其含义,本申请实施例对列表名称不作具体限定。
[0044] 在目前AVS3的IBC模式中,采用了一种基于类别的运动信息列表的构建方法。编码端与解码端采用同样的方法构建运动信息列表,编码端传送一个索引值(index),通过该索引值告知解码端上述运动信息列表中哪一个运动信息被选中,解码端挑选出被选中的运动信息,得到当前块的预测运动信息,该预测运动信息中包括当前块的块矢量的预测值。下面以编码端为例,介绍运动信息列表的构建方法:
[0045] 1、按照编码顺序,将已经编码完成的IBC编码块存入HBVP(History‑based Block Vector Prediction,基于历史的块矢量预测)列表,HBVP列表存储历史IBC编码块的BV、BV在HBVP中出现的频次、宽度、高度,以及编码块左上角的横坐标和纵坐标等信息;
[0046] 2、根据如下属性,将HBVP列表中的BV划分到对应的候选BV类别中:
[0047] 类别0:已编码块尺寸(width×height)大于等于阈值(64个亮度像素);
[0048] 类别1:已编码块BV在HBVP中出现频次大于等于2;
[0049] 类别2:已编码块坐标(左上角)在当前块左侧;
[0050] 类别3:已编码块坐标(左上角)在当前块上方;
[0051] 类别4:已编码块坐标(左上角)在当前块左上方;
[0052] 类别5:已编码块坐标(左上角)在当前块右上方;
[0053] 类别6:已编码块坐标(左上角)在当前块左下方。
[0054] 3、按照从类别0到类别6的顺序,若属于该类别的BV数量大于0,将该类中编码顺序与当前编码块最邻近的BV(记为候选BV),插入到运动信息列表的列尾中:
[0055] 3‑1、若运动信息列表为空,直接插入该候选BV;
[0056] 3‑2、若运动信息列表不为空,则需要检查运动信息列表中的BV是否与该候选BV重复。如果都不重复,则插入该候选BV,否则不插入该候选BV。
[0057] 当运动信息列表中已有M个运动信息时,最多需要进行M次查重才能决定是否插入候选运动信息,M为正整数。若使用N个运动信息构建运动信息列表,那么在可能情况下共需要进行[N×(N‑1)]/2次查重操作,N为正整数。显然,过多的查重操作会提升视频编解码器的复杂度。
[0058] 在本申请实施例提供的技术方案中,通过获取运动信息列表的长度,根据该长度确定运动信息列表中与待插入的候选运动信息进行查重比对的目标运动信息,将候选运动信息与该目标运动信息进行查重比对,从而实现了有选择性地从运动信息列表中选取一些运动信息进行查重比对,而不是每次都将运动信息列表中的全部运动信息进行全量的查重比对,这有助于减少查重操作的次数,从而降低视频编解码器的复杂度。
[0059] 需要说明的一点是,本申请实施例提供的技术方案可以应用于H.266/VCC标准、H.265/HEVC(High Efficient Video Coding,高效率视频压缩编码)、AVS(Audio Video coding Standard,音视频编码标准)(如AVS3)或者下一代视频编解码标准中,本申请实施例对此不作限定。
[0060] 还需要说明的一点是,本申请实施例提供的视频编解码中的运动信息列表构建方法,各步骤的执行主体可以是解码端设备,也可以是编码端设备。在视频解码和视频编码的过程中,都可以采用本申请实施例提供的技术方案,来构建运动信息列表。解码端设备和编码端设备均可以是计算机设备,该计算机设备是指具备数据计算、处理和存储能力的电子设备,如PC、手机、平板电脑、媒体播放器、专用视频会议设备、服务器等等。
[0061] 另外,本申请所提供的方法可以单独使用或以任意顺序与其他方法合并使用。基于本申请所提供方法的编码器和解码器,可以由1个或多个处理器或是1个或多个集成电路来实现。下面,通过几个实施例对本申请技术方案进行介绍说明。
[0062] 请参考图6,其示出了本申请一个实施例提供的视频编解码中的运动信息列表构建方法的流程图。为了便于说明,仅以各步骤执行主体为计算机设备进行介绍说明。该方法可以包括如下几个步骤(601~604):
[0063] 步骤601,获取候选运动信息以及运动信息列表的长度,运动信息列表的长度是指运动信息列表中包括的运动信息的数量。
[0064] 候选运动信息是指待插入至运动信息列表中的一个运动信息,在本申请实施例中,对候选运动信息的获取方式不作限定。例如,在IBC模式中,可以通过上文介绍的基于类别的方式确定候选运动信息,即上文介绍的候选BV。
[0065] 运动信息列表是用于记录和索引运动信息的列表。在本申请实施例中,运动信息是指基于矢量预测技术,通过对当前块的矢量进行预测,得到的当前块的矢量的预测值。上述“矢量”是用于表征运动信息的二维矢量,如上文介绍的块矢量或运动矢量。示例性地,运动信息列表可以是IBC模式的运动信息列表,也可以是帧间预测模式的运动信息列表。有关运动信息列表的介绍说明,可参见上文,此处不再赘述。
[0066] 运动信息列表的长度,是指该运动信息列表中当前包括的运动信息的数量,也即在执行步骤601的时刻,运动信息列表的实时长度。随着在运动信息列表中增减运动信息,运动信息列表的长度也会相应的发生变化。例如,在运动信息列表中插入一个运动信息,则该运动信息列表的长度加1;在运动信息列表中去除一个运动信息,则该运动信息列表的长度减1。
[0067] 步骤602,根据运动信息列表的长度,确定运动信息列表中与候选运动信息进行查重比对的目标运动信息。
[0068] 目标运动信息可以包括一个或者多个运动信息,该目标运动信息可以包括运动信息列表中的全部运动信息,也可以包括运动信息列表中的部分运动信息。
[0069] 在本申请实施例中,并非将运动信息列表中全量的运动信息与候选运动信息进行查重比对,从运动信息列表中选择哪个或哪些运动信息与候选运动信息进行查重比对,根据运动信息列表的长度确定,从而实现了有选择性地从运动信息列表中选取一些运动信息进行查重比对,而不是每次都将运动信息列表中的全部运动信息进行全量的查重比对,这有助于减少查重操作的次数,从而降低视频编解码器的复杂度。
[0070] 在示例性实施例中,通过设定阈值,通过将该运动信息列表的长度与上述阈值进行比较,根据两者的大小关系确定从运动信息列表中选择哪个或哪些运动信息与候选运动信息进行查重比对,具体可参见下文实施例中的介绍说明。
[0071] 步骤603,将候选运动信息与目标运动信息进行查重比对。
[0072] 在确定出目标运动信息之后,将候选运动信息与目标运动信息进行查重比对。可选地,将候选运动信息与目标运动信息逐个依次进行查重比对。当发现候选运动信息与某一个目标运动信息重复时,可以停止比对,确定查重比对结果为存在重复;当发现候选运动信息与某一个目标运动信息不重复时,选择下一个目标运动信息与候选运动信息进行查重比对;如果所有的目标运动信息查重比对完毕,与候选运动信息均不重复,那么确定查重比对结果为不存在重复。
[0073] 需要说明的是,由于运动信息中除了包括矢量值(如IBC模式对应的块矢量,帧间预测模式对应的运动矢量)之外,还包括其它信息,如IBC模式下还包括位置信息、尺寸信息及重复次数信息等,帧间预测模式下还包括参考帧信息等。在对两个运动信息进行查重比对时,仅将两者包含的矢量值进行查重比对。
[0074] 在一个示例中,候选运动信息与运动信息列表中的某一个运动信息重复,是指该候选运动信息中包含的矢量值与该运动信息中包含的矢量值的横坐标和纵坐标均相等。在本申请实施例中,候选运动信息中包含的矢量值和运动信息中包含的矢量值均可以采用二维坐标表示,假设候选运动信息中包含的矢量值的二维坐标表示为(x0,y0),运动信息中包含的矢量值的二维坐标表示为(x1,y1),那么如果x0=x1且y0=y1,则确定候选运动信息和运动信息重复;否则,确定候选运动信息和运动信息不重复。
[0075] 在另一个示例中,候选运动信息与运动信息列表中的某一个运动信息重复,是指该候选运动信息中包含的矢量值与运动信息中包含的矢量值的横坐标差值的绝对值,以及纵坐标差值的绝对值均小于预设阈值。在本申请实施例中,候选运动信息中包含的矢量值和运动信息中包含的矢量值均可以采用二维坐标表示,假设候选运动信息中包含的矢量值的二维坐标表示为(x0,y0),运动信息中包含的矢量值的二维坐标表示为(x1,y1),那么如果|x0‑x1|<a且|y0‑y1|<b,则确定候选运动信息和运动信息重复;否则,确定候选运动信息和运动信息不重复。其中,|x0‑x1|表示候选运动信息中包含的矢量值与运动信息中包含的矢量值的横坐标差值的绝对值,|y0‑y1|表示候选运动信息中包含的矢量值与运动信息中包含的矢量值的纵坐标差值的绝对值,a和b为预设阈值,a和b可以相等,也可以不相等。
[0076] 需要说明的一点是,对于IBC模式,在进行运动信息的查重比对时,仅需对块矢量进行查重比对即可。对于帧间预测模式,由于P帧采用单向预测模式,B帧采用双向预测模式,因此运动信息会包括前向参考帧的索引、前向运动矢量、后向参考帧的索引和后向运动矢量等信息。单向预测模式仅包括前向参考帧的索引和前向运动矢量,不包括后向参考帧的索引和后向运动矢量。所以在进行查重比对时,先对前向参考矢量进行查重比对,如果前向参考矢量重复,则确定查重比对结果为存在重复;如果前向参考矢量不重复,则检查是否存在后向参考矢量;如果不存在后向参考矢量,则确定查重比对结果为不存在重复;如果存在后向参考矢量,则对后向参考矢量进行查重比对,如果后向参考矢量重复,则确定查重比对结果为存在重复;如果后向参考矢量不重复,则确定查重比对结果为不存在重复。
[0077] 步骤604,根据查重比对结果对运动信息列表进行更新。
[0078] 在得到查重比对结果之后,可以进一步决定是否将该候选运动信息插入至运动信息列表中。可选地,如果查重比对结果为存在重复,那么可以决定不将候选运动信息插入至运动信息列表中;如果查重比对结果为不存在重复,那么可以决定将候选运动信息插入至运动信息列表中。
[0079] 在示例性实施例中,步骤604可以包括如下几种可能情况:
[0080] 1、若查重比对结果为不存在重复,且运动信息列表的长度小于最大长度,则将候选运动信息插入至运动信息列表中;
[0081] 其中,最大长度是指运动信息列表中最多可包括的运动信息的数量。如果运动信息列表的长度小于最大长度,则说明运动信息列表还没存满,可以继续往里插入运动信息,所以可以将候选运动信息插入至运动信息列表中。
[0082] 2、若查重比对结果为不存在重复,且运动信息列表的长度等于最大长度,则采用下述2.1或2.2所述的可选方式:
[0083] 2.1、结束运动信息列表的构建且不将候选运动信息插入至运动信息列表中;
[0084] 2.2、按照先入先出的原则去除最先插入至运动信息列表中的运动信息,并将候选运动信息插入至运动信息列表中;
[0085] 如果运动信息列表的长度小于最大长度,则说明运动信息列表还没存满,在一种可能的实现方式中,可以结束运动信息列表的构建且不将候选运动信息插入至运动信息列表中,这有助于简化编解码器的处理流程,节省处理开销;在另一种可能的实现方式中,可以将去除最先插入至运动信息列表中的运动信息,并将候选运动信息插入至运动信息列表中,从而实现对运动信息列表的更新。
[0086] 3、若查重比对结果为存在重复,则采用下述3.1或3.2所述的可选方式:
[0087] 3.1、不将候选运动信息插入至运动信息列表中;
[0088] 3.2、去除运动信息列表中与候选运动信息重复的运动信息,并将候选运动信息插入至运动信息列表中。
[0089] 如果查重比对结果为存在重复,那么在一种可能的实现方式中,可以不将候选运动信息插入至运动信息列表中,这有助于简化编解码器的处理流程,节省处理开销;在另一种可能的实现方式中,可以去除运动信息列表中与候选运动信息重复的运动信息,并将候选运动信息插入至运动信息列表中,从而实现对运动信息列表的更新。
[0090] 另外,将候选运动信息插入至运动信息列表中,可以包括如下两种可能的实现方式:第一种,将候选运动信息插入至运动信息列表的列尾;第二种,将候选运动信息插入至运动信息列表的列头。具体采用哪种方式,可以结合实际情况进行设计,本申请实施例对此不作限定。
[0091] 综上所述,本申请实施例提供的技术方案,通过获取运动信息列表的长度,根据该长度确定运动信息列表中与待插入的候选运动信息进行查重比对的目标运动信息,将候选运动信息与该目标运动信息进行查重比对,从而实现了有选择性地从运动信息列表中选取一些运动信息进行查重比对,而不是每次都将运动信息列表中的全部运动信息进行全量的查重比对,这有助于减少查重操作的次数,从而降低视频编解码器的复杂度。
[0092] 在本申请实施例中,提供了如下几种可能的实现方式,以实现根据运动信息列表的长度,确定运动信息列表中与候选运动信息进行查重比对的目标运动信息。
[0093] 在一种可能的实现方式中,若运动信息列表的长度N小于或等于第一阈值T1,则确定目标运动信息包括运动信息列表中的全部N个运动信息;若运动信息列表的长度N大于第一阈值T1,则确定目标运动信息包括运动信息列表中的T1个运动信息。
[0094] 也即,如果运动信息列表中当前包括的运动信息的数量小于或等于第一阈值T1,则说明运动信息列表中当前包括的运动信息的数量较少,确定目标运动信息包括运动信息列表中的全部N个运动信息,也即将候选运动信息与运动信息列表中的全部N个运动信息进行查重比对;如果运动信息列表中当前包括的运动信息的数量大于第一阈值T1,则说明运动信息列表中当前包括的运动信息的数量较多,确定目标运动信息包括运动信息列表中的T1个运动信息,也即将候选运动信息与运动信息列表中的部分运动信息进行查重比对,从而减少查重操作的次数,降低视频编解码器的复杂度。
[0095] 需要说明的是,上述第一阈值T1可以结合运动信息列表的最大长度进行设定,该第一阈值T1可以在协议中预定义,本申请实施例对此不作限定。第一阈值T1小于运动信息列表的最大长度。另外,当目标运动信息包括运动信息列表中的T1个运动信息时,该T1个运动信息可以是运动信息列表中头部的T1个运动信息,也可以是运动信息列表中尾部的T1个运动信息,或者是按照其它预定义规则从运动信息列表中选取的T1个运动信息,本申请实施例对此不作限定。
[0096] 在另一种可能的实现方式中,若运动信息列表的长度N小于或等于第二阈值T2,则确定目标运动信息包括运动信息列表中的全部N个运动信息;若运动信息列表的长度N大于第二阈值T2,则不执行查重比对,确定查重比对结果为不存在重复。
[0097] 也即,如果运动信息列表中当前包括的运动信息的数量小于或等于第二阈值T2,则说明运动信息列表中当前包括的运动信息的数量较少,确定目标运动信息包括运动信息列表中的全部N个运动信息,也即将候选运动信息与运动信息列表中的全部N个运动信息进行查重比对;如果运动信息列表中当前包括的运动信息的数量大于第二阈值T2,则说明运动信息列表中当前包括的运动信息的数量较多,可以不执行查重比对,直接确定查重比对结果为不存在重复,或者直接确定查重比对结果为存在重复,这能够更进一步地减少查重操作的次数,降低视频编解码器的复杂度。另外,在不执行查重比对的情况下,是直接确定查重比对结果为不存在重复,还是直接确定查重比对结果为存在重复,这可以在协议中预定义,本申请实施例对此不作限定。
[0098] 需要说明的是,上述第二阈值T2可以结合运动信息列表的最大长度进行设定,该第二阈值T2可以在协议中预定义,本申请实施例对此不作限定。第二阈值T2小于运动信息列表的最大长度。
[0099] 在另一种可能的实现方式中,若运动信息列表的长度N小于或等于第一阈值T1,则确定目标运动信息包括运动信息列表中的全部N个运动信息;若运动信息列表的长度N大于第一阈值T1,且小于或等于第二阈值T2,则确定目标运动信息包括运动信息列表中的T1个运动信息;若运动信息列表的长度N大于第二阈值T2,则不执行查重比对,确定查重比对结果为不存在重复;其中,第一阈值T1小于第二阈值T2。
[0100] 也即,如果运动信息列表中当前包括的运动信息的数量小于或等于第一阈值T1,则说明运动信息列表中当前包括的运动信息的数量较少,确定目标运动信息包括运动信息列表中的全部N个运动信息,也即将候选运动信息与运动信息列表中的全部N个运动信息进行查重比对;如果运动信息列表中当前包括的运动信息的数量大于第一阈值T1,且小于或等于第二阈值T2,则说明运动信息列表中当前包括的运动信息的数量较多,确定目标运动信息包括运动信息列表中的T1个运动信息,也即将候选运动信息与运动信息列表中的部分运动信息进行查重比对,从而减少查重操作的次数,降低视频编解码器的复杂度;如果运动信息列表中当前包括的运动信息的数量大于第二阈值T2,则说明运动信息列表中当前包括的运动信息的数量非常多,可以不执行查重比对,直接确定查重比对结果为不存在重复,或者直接确定查重比对结果为存在重复,这能够更进一步地减少查重操作的次数,降低视频编解码器的复杂度。另外,在不执行查重比对的情况下,是直接确定查重比对结果为不存在重复,还是直接确定查重比对结果为存在重复,这可以在协议中预定义,本申请实施例对此不作限定。
[0101] 需要说明的是,上述第一阈值T1和第二阈值T2可以结合运动信息列表的最大长度进行设定,该第一阈值T1和第二阈值T2可以在协议中预定义,本申请实施例对此不作限定。第一阈值T1和第二阈值T2均小于运动信息列表的最大长度。另外,当目标运动信息包括运动信息列表中的T1个运动信息时,该T1个运动信息可以是运动信息列表中头部的T1个运动信息,也可以是运动信息列表中尾部的T1个运动信息,或者是按照其它预定义规则从运动信息列表中选取的T1个运动信息,本申请实施例对此不作限定。
[0102] 可选地,如果目标运动信息包括上述N个运动信息,则在一种可能的实施方式中,可以按照从第1个运动信息至第N个运动信息的顺序,将候选运动信息与N个运动信息逐个依次进行查重比对;在另一种可能的实施方式中,可以按照从第N个运动信息至第1个运动信息的顺序,将候选运动信息与N个运动信息逐个依次进行查重比对。当然,在其它可能的实施方式中,还可以按照其它预定义的规则确定比对顺序进行查重比对,本申请实施例对此不作限定。
[0103] 可选地,如果目标运动信息包括上述T1个运动信息,则该T1个运动信息可以包括运动信息列表中的第1个至第T1个运动信息,或者包括运动信息列表中的第N个至第N‑T1+1个运动信息。
[0104] 若T1个运动信息包括运动信息列表中的第1个至第T1个运动信息,则按照从第1个运动信息至第T1个运动信息的顺序,将候选运动信息与T1个运动信息逐个依次进行查重比对;或者按照从第T1个运动信息至第1个运动信息的顺序,将候选运动信息与T1个运动信息逐个依次进行查重比对。若T1个运动信息包括运动信息列表中的第N个至第N‑T1+1个运动信息,则按照从第N个运动信息至第N‑T1+1个运动信息的顺序,将候选运动信息与T1个运动信息逐个依次进行查重比对;或者按照从第N‑T1+1个运动信息至第N个运动信息的顺序,将候选运动信息与T1个运动信息逐个依次进行查重比对。当然,在其它可能的实施方式中,还可以按照其它预定义的规则确定比对顺序进行查重比对,本申请实施例对此不作限定。
[0105] 综上所述,在本申请实施例中,提供了上述多种可能的实现方式,以实现根据运动信息列表的长度,确定运动信息列表中与候选运动信息进行查重比对的目标运动信息,从而提升了方案的灵活性和多样性。
[0106] 在示例性实施例中,以运动信息列表为IBC模式的候选类列表为例,对该候选类列表的构建过程进行介绍说明。候选类列表用于记录编码单元对应的运动信息,该运动信息包括块矢量、位置信息、尺寸信息及重复次数信息中的第一项或者第一项与其它至少一项的组合。当然,随着技术的演进,该运动信息所包括的内容也可能会发生变化,本申请实施例对此不作限定。另外,上述位置信息包括IBC编码块左上角的横坐标和纵坐标,尺寸信息包括IBC编码块的宽度和高度,重复次数信息包括IBC编码块的BV在HBVP中出现的频次。
[0107] 假设候选块矢量记为C={c0,c1,…,cm},候选类列表记为L={l0,l1,…,ln},其中,m和n均为整数。该候选类列表的构建过程可以如下:
[0108] 1)初始化候选类列表L的长度N为0,L的最大长度为Nmax;
[0109] 2)按照c0,c1,…,cm的顺序,根据以下方法决定是否将cx(0≤x≤m)插入到候选类列表L中:
[0110] 2‑1)若候选类列表L的长度为0,直接将cx插入到L中;
[0111] 2‑2)若候选类列表L的长度不为0,则根据3)或4)中的一种方法得到重复指示标志(记为flag)的值:
[0112] a)如果flag的值为0,且L的长度N小于Nmax,则将cx插入到L中;
[0113] b)如果flag的值为0,且L的长度N等于Nmax,有以下两种可选的方式:
[0114] b‑1)结束候选类列表L的构建,cx不插入到L中;
[0115] b‑2)按照先入先出的原则,去除最先插入L中的块矢量,然后将cx插入到L中;
[0116] c)如果flag的值为1,有以下两种可选的方式:
[0117] c‑1)不将cx插入到L中;
[0118] c‑2)去除L中重复的块矢量,L的长度N减1,然后将cx插入到L中。
[0119] 另外,在上述1)和2)中,将cx插入到L中有以下两种方式:
[0120] 方式1:cx插入至L的列尾,L的长度N加1;
[0121] 方式2:cx插入至L的列头,L的长度N加1。
[0122] 3)初始化flag的值为0,根据以下方法检查L中是否存在与cx重复的块矢量,如果存在重复的块矢量,则flag的值为1,否则flag的值为0:
[0123] 3‑1)设有阈值T1,L的长度为N:
[0124] a)若N≤T1,检查cx与l0,l1,…,lN‑1是否重复;
[0125] b)若N>T1,检查cx与l0,l1,…,lT1‑1是否重复。
[0126] 3‑2)设有阈值T2,L的长度为N:
[0127] a)若N≤T2,检查cx与l0,l1,…,lN‑1是否重复;
[0128] b)若N>T2,不进行查重,flag的值为0。
[0129] 3‑3)设有阈值T1和T2,且T1<T2,L的长度为N:
[0130] a)若N≤T1,检查cx与l0,l1,…,lN‑1是否重复;
[0131] b)若N>T1且N≤T2,检查cx与l0,l1,…,lT1‑1是否重复;
[0132] c)若N>T2,不进行查重,flag的值为0。
[0133] 4)初始化flag的值为0,根据以下方法检查L中是否存在与cx重复的块矢量,如果存在重复的块矢量,则flag的值为1,否则flag的值为0:
[0134] 3‑1)设有阈值T1,L的长度为N:
[0135] a)若N≤T1,检查cx与lN‑1,lN‑2,…,l0是否重复;
[0136] b)若N>T1,检查cx与lN‑1,lN‑2,…,lN‑T1是否重复。
[0137] 3‑2)设有阈值T2,L的长度为N:
[0138] a)若N≤T2,检查cx与lN‑1,lN‑2,…,l0是否重复;
[0139] b)若N>T2,不进行查重,flag的值为0。
[0140] 3‑3)设有阈值T1和T2,且T1<T2,L的长度为N:
[0141] a)若N≤T1,检查cx与lN‑1,lN‑2,…,l0是否重复;
[0142] b)若N>T1且N≤T2,检查cx与lN‑1,lN‑2,…,lN‑T1是否重复;
[0143] c)若N>T2,不进行查重,flag的值为0。
[0144] 在上述3)和4)中,判断cx与ln是否重复有以下两种方式:
[0145] 方式1:cx与ln的横坐标和纵坐标均相等;
[0146] 方式2:cx与ln的横坐标差值的绝对值和纵坐标差值的绝对值均小于预设阈值D。
[0147] 以下,基于AVS3中候选类列表的构建,给出本申请技术方案的一些具体实施例:
[0148] 设c0,c1,…,c6分别为AVS3中候选类列表构建过程中各类导出的块矢量,其中cx为类别x导出的块矢量,现需要由这些块矢量构建候选类列表L。
[0149] 在一个示例中,假设c0,c1,…,c6都存在,c0和c6重复,T1=1;
[0150] 构建L的过程如下:
[0151] 1、当前待插入的块矢量为c0:L的长度N为0,直接将c0插入L,即令l0=c0,N=1;
[0152] 2、当前待插入的块矢量为c1:L的长度N为1,由于N≤T1,检查c1与l0是否重复。结果为不重复,则令l1=c1,N=2;
[0153] 3、当前待插入的块矢量为c2:L的长度N为2,由于N>T1,检查c2与l0是否重复。结果为不重复,则令l2=c2,N=3;
[0154] 4、类似上述方法在L中插入c3、c4和c5,N=6;
[0155] 5、当前待插入的块矢量为c6:L的长度N为6,由于N>T1,检查c6与l0是否重复。结果为重复,不插入c6,N=6。
[0156] 在另一个示例中,假设c0,c1,…,c6都存在,T1=2,T2=4;
[0157] 构建L的过程如下:
[0158] 1、当前待插入的块矢量为c0:L的长度N为0,直接将c0插入L,即令l0=c0,N=1;
[0159] 2、当前待插入的块矢量为c1:L的长度N为1,由于N≤T1,检查c1与l0是否重复。结果为不重复,则令l1=c1,N=2;
[0160] 3、当前待插入的块矢量为c2:L的长度N为2,由于N≤T1,检查c2与l0,l1是否重复。结果为都不重复,令l2=c2,N=3;
[0161] 4、当前待插入的块矢量为c3:L的长度N为3,由于T1<N≤T2,检查c3与l0,l1是否重复。结果为都不重复,令l3=c3,N=4;
[0162] 5、当前待插入的块矢量为c4:L的长度N为4,由于T1<N≤T2,检查c4与l0,l1是否重复。结果为都不重复,令l4=c4,N=5;
[0163] 6、当前待插入的块矢量为c5:L的长度N为5,由于N>T2,不进行查重,直接令l5=c5,N=6;
[0164] 7、当前待插入的块矢量为c6:L的长度N为6,由于N>T2,不进行查重,直接令l6=c6,N=7。
[0165] 在另一个示例中,假设c0,c1,…,c6都存在,c0与c1、c6重复,T1设置为c0、c1存在且不重复的数量,T1=1,T2=4;
[0166] 构建L的过程如下:
[0167] 1、当前待插入的块矢量为c0:L的长度N为0,直接将c0插入L,即令l0=c0,N=1;
[0168] 2、当前待插入的块矢量为c1:L的长度N为1,由于N≤T1,检查c1与l0是否重复。结果为重复,不插入c1,N=1;
[0169] 3、当前待插入的块矢量为c2:L的长度N为1,由于N≤T1,检查c2与l0是否重复。结果为不重复,令l1=c2,N=2;
[0170] 4、当前待插入的块矢量为c3:L的长度N为2,由于T1<N≤T2,检查c3与l0是否重复。结果为不重复,令l2=c3,N=3;
[0171] 5、当前待插入的块矢量为c4:L的长度N为3,由于T1<N≤T2,检查c4与l0是否重复。结果为不重复,令l3=c4,N=4;
[0172] 6、当前待插入的块矢量为c5:L的长度N为4,由于T1<N≤T2,检查c5与l0是否重复。结果为不重复,令l4=c5,N=5;
[0173] 7、当前待插入的块矢量为c6:L的长度N为5,由于N>T2,不进行查重,直接令l5=c6,N=6。
[0174] 下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
[0175] 请参考图7,其示出了本申请一个实施例提供的视频编解码中的矢量列表构建装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以设置在计算机设备上。该装置700可以包括:信息获取模块701、信息确定模块702、查重比对模块703和列表更新模块704。
[0176] 信息获取模块701,用于获取候选运动信息以及运动信息列表的长度,所述运动信息列表的长度是指所述运动信息列表中包括的运动信息的数量。
[0177] 信息确定模块702,用于根据所述运动信息列表的长度,确定所述运动信息列表中与所述候选运动信息进行查重比对的目标运动信息。
[0178] 查重比对模块703,用于将所述候选运动信息与所述目标运动信息进行查重比对。
[0179] 列表更新模块704,用于根据查重比对结果对所述运动信息列表进行更新。
[0180] 综上所述,本申请实施例提供的技术方案,通过获取运动信息列表的长度,根据该长度确定运动信息列表中与待插入的候选运动信息进行查重比对的目标运动信息,将候选运动信息与该目标运动信息进行查重比对,从而实现了有选择性地从运动信息列表中选取一些运动信息进行查重比对,而不是每次都将运动信息列表中的全部运动信息进行全量的查重比对,这有助于减少查重操作的次数,从而降低视频编解码器的复杂度。
[0181] 在示例性实施例中,所述信息确定模块702,用于:
[0182] 若所述运动信息列表的长度N小于或等于第一阈值T1,则确定所述目标运动信息包括所述运动信息列表中的全部N个运动信息;
[0183] 若所述运动信息列表的长度N大于所述第一阈值T1,则确定所述目标运动信息包括所述运动信息列表中的T1个运动信息。
[0184] 在示例性实施例中,所述信息确定模块702,用于:
[0185] 若所述运动信息列表的长度N小于或等于第二阈值T2,则确定所述目标运动信息包括所述运动信息列表中的全部N个运动信息;
[0186] 若所述运动信息列表的长度N大于所述第二阈值T2,则不执行查重比对,确定所述查重比对结果为不存在重复。
[0187] 在示例性实施例中,所述信息确定模块702,用于:
[0188] 若所述运动信息列表的长度N小于或等于第一阈值T1,则确定所述目标运动信息包括所述运动信息列表中的全部N个运动信息;
[0189] 若所述运动信息列表的长度N大于所述第一阈值T1,且小于或等于第二阈值T2,则确定所述目标运动信息包括所述运动信息列表中的T1个运动信息;
[0190] 若所述运动信息列表的长度N大于所述第二阈值T2,则不执行查重比对,确定所述查重比对结果为不存在重复;
[0191] 其中,所述第一阈值T1小于所述第二阈值T2。
[0192] 在示例性实施例中,所述查重比对模块703,用于:
[0193] 若所述目标运动信息包括所述N个运动信息,则按照从第1个运动信息至第N个运动信息的顺序,将所述候选运动信息与所述N个运动信息逐个依次进行查重比对;或者,[0194] 若所述目标运动信息包括所述N个运动信息,则按照从第N个运动信息至第1个运动信息的顺序,将所述候选运动信息与所述N个运动信息逐个依次进行查重比对。
[0195] 在示例性实施例中,所述T1个运动信息包括:所述运动信息列表中的第1个至第T1个运动信息,或者,所述运动信息列表中的第N个至第N‑T1+1个运动信息。
[0196] 在示例性实施例中,所述查重比对模块703,用于:
[0197] 若所述T1个运动信息包括所述运动信息列表中的第1个至第T1个运动信息,则按照从第1个运动信息至第T1个运动信息的顺序,将所述候选运动信息与所述T1个运动信息逐个依次进行查重比对;或者,
[0198] 若所述T1个运动信息包括所述运动信息列表中的第1个至第T1个运动信息,则按照从第T1个运动信息至第1个运动信息的顺序,将所述候选运动信息与所述T1个运动信息逐个依次进行查重比对;或者,
[0199] 若所述T1个运动信息包括所述运动信息列表中的第N个至第N‑T1+1个运动信息,则按照从第N个运动信息至第N‑T1+1个运动信息的顺序,将所述候选运动信息与所述T1个运动信息逐个依次进行查重比对;或者,
[0200] 若所述T1个运动信息包括所述运动信息列表中的第N个至第N‑T1+1个运动信息,则按照从第N‑T1+1个运动信息至第N个运动信息的顺序,将所述候选运动信息与所述T1个运动信息逐个依次进行查重比对。
[0201] 在示例性实施例中,所述列表更新模块704,用于:
[0202] 若所述查重比对结果为不存在重复,且所述运动信息列表的长度小于最大长度,则将所述候选运动信息插入至所述运动信息列表中;
[0203] 若所述查重比对结果为不存在重复,且所述运动信息列表的长度等于所述最大长度,则结束所述运动信息列表的构建且不将所述候选运动信息插入至所述运动信息列表中,或者,按照先入先出的原则去除最先插入至所述运动信息列表中的运动信息,并将所述候选运动信息插入至所述运动信息列表中;
[0204] 若所述查重比对结果为存在重复,则不将所述候选运动信息插入至所述运动信息列表中,或者,去除所述运动信息列表中与所述候选运动信息重复的运动信息,并将所述候选运动信息插入至所述运动信息列表中。
[0205] 在示例性实施例中,所述将所述候选运动信息插入至所述运动信息列表中,包括:将所述候选运动信息插入至所述运动信息列表的列尾;或者,将所述候选运动信息插入至所述运动信息列表的列头。
[0206] 在示例性实施例中,所述候选运动信息与所述运动信息列表中的运动信息重复,是指:所述候选运动信息中包含的矢量值与所述运动信息中包含的矢量值的横坐标和纵坐标均相等;或者,所述候选运动信息中包含的矢量值与所述运动信息中包含的矢量值的横坐标差值的绝对值,以及纵坐标差值的绝对值均小于预设阈值。
[0207] 在示例性实施例中,所述列表更新模块704,还用于在获取运动信息列表的长度之后,若所述运动信息列表的长度为0,则直接将所述候选运动信息插入至所述运动信息列表中;
[0208] 所述信息确定模块702,还用于在获取运动信息列表的长度之后,若所述运动信息列表的长度不为0,则执行所述根据所述运动信息列表的长度,确定所述运动信息列表中与所述候选运动信息进行查重比对的目标运动信息的步骤。
[0209] 在示例性实施例中,所述运动信息列表为IBC模式的候选类列表,所述候选类列表用于记录编码单元对应的运动信息,所述运动信息包括块矢量、位置信息、尺寸信息及重复次数信息中的第一项或者第一项与其它至少一项的组合。
[0210] 需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0211] 请参考图8,其示出了本申请一个实施例提供的计算机设备的结构框图。该计算机设备可以是上文介绍的编码端设备,也可以是上文介绍的解码端设备。该计算机设备150可以包括:处理器151、存储器152、通信接口153、编码器/解码器154和总线155。
[0212] 处理器151包括一个或者一个以上处理核心,处理器151通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。
[0213] 存储器152可用于存储计算机程序,处理器151用于执行该计算机程序,以实现上述视频编解码中的运动信息列表构建方法。
[0214] 通信接口153可用于与其它设备进行通信,如收发音视频数据。
[0215] 编码器/解码器154可用于实现编码和解码功能,如对音视频数据进行编码和解码。
[0216] 存储器152通过总线155与处理器151相连。
[0217] 此外,存储器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,可编程只读存储器)。
[0218] 本领域技术人员可以理解,图8中示出的结构并不构成对计算机设备150的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0219] 在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被处理器执行时实现上述视频编解码中的运动信息列表构建方法。
[0220] 在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被处理器执行时,其用于实现上述视频编解码中的运动信息列表构建方法。
[0221] 应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0222] 以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。