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

一种编解码方法、装置及其设备与流程

2021-12-14 23:55:00 来源:中国专利 TAG:


1.本技术涉及编解码技术领域,尤其是涉及一种编解码方法、装置及其设备。


背景技术:

2.为了达到节约空间的目的,视频图像都是经过编码后才传输的,完整的视频编码方法可以包括预测、变换、量化、熵编码、滤波等过程。预测编码包括帧内编码和帧间编码,帧间编码是利用视频时间域的相关性,使用邻近已编码图像的像素预测当前图像的像素,以达到有效去除视频时域冗余的目的。在帧间编码中,使用运动矢量表示当前帧视频图像的当前图像块与参考帧视频图像的参考图像块之间的相对位移。例如,当前帧的视频图像a与参考帧的视频图像b存在很强的时域相关性,在需要传输视频图像a的图像块a1(当前块)时,则可以在视频图像b中进行运动搜索,找到与图像块a1最匹配的图像块b1(即参考块),并确定图像块a1与图像块b1之间的相对位移,该相对位移也就是图像块a1的运动矢量。
3.现有技术中,不需要对当前编码单元进行块划分,而是直接通过指示运动信息索引或差值信息索引,只能为当前编码单元确定出一个运动信息。由于当前编码单元内部的所有子块均共享一个运动信息,因此,对于一些运动目标较小,需要对编码单元进行块划分后,才能获取最佳的运动信息。但是,如果当前编码单元划分成多个子块,又会产生额外的比特开销。


技术实现要素:

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.针对待遍历的第一周边匹配块和第二周边匹配块,若所述第一周边匹配块和所述第二周边匹配块都存在可用运动信息,当所述第一周边匹配块和所述第二周边匹配块的运动信息不同时,将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表;或者,
29.所述处理器用于执行机器可执行指令,以实现如下步骤:
30.构建当前块的运动信息预测模式候选列表,从所述运动信息预测模式候选列表中选择所述当前块的目标运动信息预测模式;若所述目标运动信息预测模式为目标运动信息角度预测模式,则对所述当前块的周边块的运动信息进行填充;
31.根据所述目标运动信息角度预测模式的预配置角度指向的多个周边匹配块的运动信息,确定当前块的运动信息;根据所述当前块的运动信息,确定所述当前块的预测值。
32.本技术提供一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
33.所述处理器用于执行机器可执行指令,以实现如下步骤:
34.针对当前块的任意一个运动信息角度预测模式,基于所述运动信息角度预测模式的预配置角度,从所述当前块的周边块中选择所述预配置角度指向的多个周边匹配块;所述多个周边匹配块至少包括待遍历的第一周边匹配块和第二周边匹配块;
35.针对待遍历的第一周边匹配块和第二周边匹配块,若所述第一周边匹配块和所述第二周边匹配块都存在可用运动信息,当所述第一周边匹配块和所述第二周边匹配块的运动信息不同时,将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表;或者,
36.所述处理器用于执行机器可执行指令,以实现如下步骤:
37.构建当前块的运动信息预测模式候选列表,若所述运动信息预测模式候选列表中存在运动信息角度预测模式,则对所述当前块的周边块的运动信息进行填充;
38.针对所述运动信息预测模式候选列表中的每个运动信息角度预测模式,根据所述运动信息角度预测模式的预配置角度指向的多个周边匹配块的运动信息,确定当前块的运动信息;
39.根据所述当前块的运动信息,确定所述当前块的预测值。
40.由以上技术方案可见,本技术实施例中,不需要对当前块进行划分,能够有效解决子块划分带来的比特开销,比如说,在不对当前块进行子块划分的基础上,为当前块的每个子区域提供运动信息,且当前块的不同子区域可以对应相同或者不同的运动信息,从而带来编码性能的提高,解决了传输大量运动信息的问题,可以节约大量比特。通过将运动信息不完全相同的运动信息角度预测模式添加到运动信息预测模式候选列表中,从而减少运动信息预测模式候选列表中的运动信息角度预测模式的数量,可以进一步的提高编码性能。
附图说明
41.图1是本技术一种实施方式中的视频编码框架的示意图;
42.图2a

图2b是本技术一种实施方式中的当前块的划分示意图;
43.图3是本技术一种实施方式中的几个子区域的示意图;
44.图4是本技术一种实施方式中的编解码方法的流程图;
45.图5a和图5b是本技术实施方式中的运动信息角度预测模式的示意图;
46.图6是本技术一种实施方式中的编解码方法的流程图;
47.图7是本技术一种实施方式中的编解码方法的流程图;
48.图8a

图8c是本技术一种实施方式中的当前块的周边块的示意图;
49.图9a

图9n是本技术一种实施方式中的运动补偿的示意图;
50.图10a

图10c是本技术一种实施方式中的编解码装置的结构图;
51.图11a是本技术一种实施方式中的解码端设备的硬件结构图;
52.图11b是本技术一种实施方式中的编码端设备的硬件结构图。
具体实施方式
53.本技术使用的术语仅仅是出于描述特定实施例的目的,而非限制本技术。本技术所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本技术可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
54.本技术实施例中提出一种编解码方法,该编解码方法可以涉及如下概念:
55.运动矢量(motion vector,mv):在帧间编码中,使用运动矢量表示当前帧图像的当前块与参考帧图像的参考块之间的相对位移,例如,当前帧的图像a与参考帧的图像b存在很强的时域相关性,在传输图像a的图像块a1(当前块)时,可以在图像b中进行运动搜索,找到与图像块a1最匹配的图像块b1(参考块),并确定图像块a1与图像块b1之间的相对位移,该相对位移也就是图像块a1的运动矢量。每个划分的图像块都有相应的运动矢量传送到解码端,如果对每个图像块的运动矢量进行独立编码和传输,特别是划分成小尺寸的大量图像块,则消耗相当多的比特。为降低用于编码运动矢量的比特数,可以利用相邻图像块之间的空间相关性,根据相邻已编码图像块的运动矢量对当前待编码图像块的运动矢量进行预测,然后对预测差进行编码,这样可以有效降低表示运动矢量的比特数。在对当前块的运动矢量编码过程中,可以先使用相邻已编码块的运动矢量预测当前块的运动矢量,然后对该运动矢量的预测值(mvp,motion vector prediction)与运动矢量的真正估值之间的差值(mvd,motionvector difference)进行编码,从而有效降低运动矢量的编码比特数。
56.运动信息(motion information):为了准确获取参考块的信息,除了运动矢量,还需要参考帧图像的索引信息来表示使用哪个参考帧图像。在视频编码技术中,对于当前帧图像,通常可以建立一个参考帧图像列表,参考帧图像索引信息则表示当前块采用了参考帧图像列表中的第几个参考帧图像。很多编码技术还支持多个参考图像列表,因此,还可以使用一个索引值来表示使用了哪一个参考图像列表,这个索引值可以称为参考方向。在视频编码技术中,可以将运动矢量、参考帧索引、参考方向等与运动相关的信息统称为运动信息。
57.率失真原则(rate

distortion optimized):评价编码效率的有两大指标:码率和psnr(peak signal to noise ratio,峰值信噪比),比特流越小,则压缩率越大,psnr越大,则重建图像质量越好,在模式选择时,判别公式实质上也就是对二者的综合评价。例如,模式对应的代价:j(mode)=d λ*r,示例性的,d表示distortion(失真),通常可以使用sse指标来进行衡量,sse是指重建图像块与源图像的差值的均方和;λ是拉格朗日乘子,r就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总
和。
58.帧内预测与帧间预测(intra prediction and inter prediction)技术:帧内预测是指,利用当前块的空域相邻块(即与当前块处于同一帧图像)的重建像素值进行预测编码。帧间预测是指,利用当前块的时域相邻块(与当前块处于不同帧图像)的重建像素值进行预测编码,帧间预测是利用视频时域的相关性,由于视频序列包含较强的时域相关性,使用邻近已编码图像像素预测当前图像的像素,达到有效去除视频时域冗余的目的。
59.视频编码框架:参见图1所示,为视频编码框架的示意图,可以使用视频编码框架实现本技术实施例的编码端处理流程,视频解码框架的示意图与图1类似,在此不再赘述,可以使用视频解码框架实现本技术实施例的解码端处理流程。示例性的,在视频编码框架和视频解码框架中,可以包括帧内预测、运动估计/运动补偿、参考图像缓冲器、环内滤波、重建、变换、量化、反变换、反量化、熵编码器等模块。在编码端,通过这些模块之间的配合,可以实现编码端处理流程,在解码端,通过这些模块之间的配合,可以实现解码端处理流程。
60.在传统方式中,对于当前块只有一个运动信息,即当前块内部的所有子块共享一个运动信息。对于运动目标较小,需要对当前块进行块划分后,才能获取最佳运动信息的场景,如果未对当前块进行划分,则当前块只有一个运动信息,预测精度不高。参见图2a所示,区域c、区域g和区域h是当前块内的区域,并不是当前块内划分的子块。假设当前块使用块f的运动信息,则当前块内的各个区域均使用块f的运动信息。由于当前块内的区域h与块f的距离很远,若区域h也使用块f的运动信息,则区域h的运动信息的预测精度不高。当前块内部子块的运动信息,无法利用当前块周围的已编码运动信息,造成可利用的运动信息减少,运动信息的准确度不高。例如,针对当前块的子块i,只能利用子块c、子块g、子块h的运动信息,无法利用图像块a、图像块b、图像块f、图像块d、图像块e的运动信息。
61.针对上述发现,本技术实施例中提出一种编解码方法,在不对当前块进行划分的基础上,即不增加子块划分带来的开销的基础上,可以使当前块对应多个运动信息,从而提高当前块的运动信息的预测精度。由于未对当前块进行划分,因此,避免消耗额外的比特来传输划分方式,节约这部分比特开销。针对当前块的每个区域(这里是当前块内的任意一个区域,该区域的尺寸小于当前块的尺寸,并不是对当前块进行划分得到的子块),可以利用当前块周围的已编码运动信息,来获取当前块的每个区域的运动信息,换句话说,当前块的不同区域可以对应相同或者不同的运动信息,当前块可能会有多个不同的运动信息,从而为当前块的区域提供更多的运动信息,提高运动信息的准确度。参见图2b所示,c为当前块内部的一个子区域,a、b、d、e和f为当前块周围的已编码块,当前子区域c的运动信息可以采用角度的预测方式来直接获取,当前块内部的其它子区域也采用同样的方法获得。这样,对于当前块,不用对当前块进行块划分,就能获得不同的运动信息,节省一部分块划分的比特开销。
62.参见图3所示,当前块包括9个区域(后续称为当前块内的子区域),如子区域f1

子区域f9,这些是当前块内的子区域,不是对当前块进行划分后的子块。针对子区域f1

子区域f9中的不同子区域,可以对应相同或者不同的运动信息,因此,在不对当前块进行划分的基础上,也可以使当前块对应多个运动信息,如子区域f1对应运动信息1,子区域f2对应运动信息2,以此类推。示例性的,在确定子区域f5的运动信息时,可以利用图像块a1、图像块
a2、图像块a3、图像块e、图像块b1、图像块b2、图像块b3的运动信息,即利用当前块周围的已编码块的运动信息,从而为子区域f5提供更多的运动信息。当然,针对当前块的其它子区域的运动信息,也可以利用图像块a1、图像块a2、图像块a3等的运动信息。
63.本技术实施例中,涉及运动信息预测模式候选列表的构建过程,比如说,针对任意一个运动信息角度预测模式,决策运动信息预测模式候选列表中的运动信息角度预测模式的查重,包括如何决策将该运动信息角度预测模式添加到运动信息预测模式候选列表或者禁止将该运动信息角度预测模式添加到运动信息预测模式候选列表。涉及运动信息的填充过程,比如说,当前块的周边块存在不可用运动信息时,如何对周边块的运动信息进行填充,以及对周边块的运动信息进行填充的时机。涉及当前块的运动信息的运动补偿过程,比如说,利用运动信息角度预测模式的预配置角度指向的多个周边匹配块的运动信息,确定当前块的运动信息,并根据当前块的运动信息确定当前块的预测值。
64.在一个实施例中,可以实现运动信息预测模式候选列表的构建过程。在另一个实施例中,可以实现运动信息预测模式候选列表的构建过程和运动信息的填充过程。在另一个实施例中,可以实现运动信息预测模式候选列表的构建过程、运动信息的填充过程和运动补偿过程。在另一个实施例中,可以实现运动信息预测模式候选列表的构建过程和运动补偿过程。在另一个实施例中,可以实现运动信息的填充过程。在另一个实施例中,可以实现运动信息的填充过程和运动补偿过程。在后续实施例中,会介绍这几个过程的详细处理流程。
65.本技术实施例中,在实现运动信息预测模式候选列表的构建过程和运动信息的填充过程时,先对运动信息角度预测模式进行查重处理,后对周边块的运动信息进行填充,从而降低解码端的复杂度,提高解码性能。例如,针对水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式等,先进行查重处理,将不重复的水平向下预测模式和垂直向右预测模式添加到运动信息预测模式候选列表中,这样,能够先得到运动信息预测模式候选列表,此时,还未对周边块的运动信息进行填充。
66.解码端从运动信息预测模式候选列表中选择当前块的目标运动信息预测模式后,若目标运动信息预测模式不是运动信息角度预测模式,则不需要对周边块的运动信息进行填充,从而使得解码端能够减少运动信息的填充操作。
67.以下结合几个具体实施例,对本技术实施例中的编解码方法进行说明。
68.实施例1:参见图4所示,为本技术实施例中提出的编解码方法的流程示意图,该方法可以应用于解码端或者编码端,该方法可以包括以下步骤:
69.步骤401,针对当前块的任意一个运动信息角度预测模式,基于该运动信息角度预测模式的预配置角度,从当前块的周边块中选择该预配置角度指向的多个周边匹配块。
70.运动信息角度预测模式用于指示预配置角度,根据预配置角度从当前块的周边块中为当前块的子区域选择周边匹配块,并根据周边匹配块的运动信息确定当前块的一个或多个运动信息,即,针对当前块的每个子区域,根据周边匹配块的运动信息确定所述子区域的运动信息。而且,周边匹配块是按照预配置角度从当前块的周边块中确定出的指定位置处的块。
71.示例性的,周边块可以包括与当前块相邻的块;或者,周边块可以包括与当前块相邻的块和非相邻的块。当然,周边块还可以包括其它块,对此不做限制。
72.示例性的,运动信息角度预测模式可以包括但不限于以下之一或者任意组合:水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式。当然,上述只是运动信息角度预测模式的几个示例,还可以有其它类型的运动信息角度预测模式,运动信息角度预测模式与预配置角度有关,例如,预配置角度还可以为10度、20度等。参见图5a所示,为水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式的示意图,不同运动信息角度预测模式对应不同的预配置角度。
73.综上所述,可以基于运动信息角度预测模式的预配置角度,从当前块的周边块中选择该预配置角度指向的多个周边匹配块。例如,参见图5a所示,示出了水平预测模式的预配置角度指向的多个周边匹配块、垂直预测模式的预配置角度指向的多个周边匹配块、水平向上预测模式的预配置角度指向的多个周边匹配块、水平向下预测模式的预配置角度指向的多个周边匹配块、垂直向右预测模式的预配置角度指向的多个周边匹配块。
74.步骤402,若多个周边匹配块至少包括待遍历的第一周边匹配块和第二周边匹配块,针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块都存在可用运动信息,当第一周边匹配块和第二周边匹配块的运动信息不同时,则将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
75.在一种可能的实施方式中,从所述多个周边匹配块中选择待遍历的第一周边匹配块和第二周边匹配块后,若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,则将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
76.在一种可能的实施方式中,从所述多个周边匹配块中选择待遍历的第一周边匹配块和第二周边匹配块后,若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,则禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
77.在一种可能的实施方式中,从所述多个周边匹配块中选择待遍历的第一周边匹配块和第二周边匹配块后,针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块都存在可用运动信息,当第一周边匹配块和第二周边匹配块的运动信息不同时,则可以将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
78.在一种可能的实施方式中,从所述多个周边匹配块中选择待遍历的第一周边匹配块和第二周边匹配块后,针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块都存在可用运动信息,当第一周边匹配块和第二周边匹配块的运动信息相同时,则可以禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
79.在一种可能的实施方式中,从所述多个周边匹配块中选择待遍历的第一周边匹配块和第二周边匹配块后,针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块中存在帧内块和/或未编码块,则可以将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
80.在一种可能的实施方式中,从所述多个周边匹配块中选择待遍历的第一周边匹配块和第二周边匹配块后,针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块中存在帧内块和/或未编码块,则可以禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
81.在一种可能的实施方式中,从所述多个周边匹配块中选择待遍历的第一周边匹配块和第二周边匹配块后,针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块中有至少一个位于当前块所在图像之外或者当前块所在图像片之外,则可以将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
82.在一种可能的实施方式中,从所述多个周边匹配块中选择待遍历的第一周边匹配块和第二周边匹配块后,针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块中有至少一个位于当前块所在图像之外或者当前块所在图像片之外,则可以禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
83.在一种可能的实施方式中,从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块都存在可用运动信息,且第一周边匹配块和第二周边匹配块的运动信息不同,则将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
84.在一种可能的实施方式中,从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块都存在可用运动信息,且第一周边匹配块和第二周边匹配块的运动信息相同,则可以继续判断第二周边匹配块和第三周边匹配块是否都存在可用运动信息。若第二周边匹配块和第三周边匹配块都存在可用运动信息,则当第二周边匹配块和第三周边匹配块的运动信息不同时,将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
85.在一种可能的实施方式中,从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块都存在可用运动信息,且第一周边匹配块和第二周边匹配块的运动信息相同,则可以继续判断第二周边匹配块和第三周边匹配块是否都存在可用运动信息。若第二周边匹配块和第三周边匹配块都存在可用运动信息,则当第二周边匹配块和第三周边匹配块的运动信息相同时,禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
86.在一种可能的实施方式中,从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,则可以将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
87.在一种可能的实施方式中,从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,则可以禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
88.在一种可能的实施方式中,从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,则可以继续判断第二周边匹配块和第三周边匹配块是否都存在可用运动信息。若第二周边匹配块和
第三周边匹配块都存在可用运动信息,则当第二周边匹配块和第三周边匹配块的运动信息不同时,则可以将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
89.在一种可能的实施方式中,从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,则可以继续判断第二周边匹配块和第三周边匹配块是否都存在可用运动信息。若第二周边匹配块和第三周边匹配块都存在可用运动信息,则当第二周边匹配块和第三周边匹配块的运动信息相同时,则可以禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
90.在一种可能的实施方式中,从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,则继续判断第二周边匹配块和第三周边匹配块是否都存在可用运动信息。若第二周边匹配块和第三周边匹配块中的至少一个不存在可用运动信息,则可以将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
91.在一种可能的实施方式中,从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,则继续判断第二周边匹配块和第三周边匹配块是否都存在可用运动信息。若第二周边匹配块和第三周边匹配块中的至少一个不存在可用运动信息,则可以禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
92.在上述实施例中,判断任意一个周边匹配块是否存在可用运动信息的过程,可以包括但不限于:若周边匹配块是位于当前块所在图像之外或者周边匹配块是位于当前块所在图像片之外,则确定该周边匹配块不存在可用运动信息。若周边匹配块是未编码块,则确定该周边匹配块不存在可用运动信息。若周边匹配块是帧内块,则确定该周边匹配块不存在可用运动信息。若周边匹配块是帧间已编码块,则确定该周边匹配块存在可用运动信息。
93.一种可能的实施方式中,针对编码端来说,在按照前述实施例构建和查重得到当前块的运动信息预测模式候选列表之后,所述方法还包括:
94.若运动信息预测模式候选列表中存在运动信息角度预测模式,则对当前块的周边块的运动信息进行填充;针对运动信息预测模式候选列表中的每个运动信息角度预测模式,根据该运动信息角度预测模式的预配置角度指向的多个周边匹配块的运动信息,确定当前块的运动信息;根据当前块的运动信息,确定当前块的预测值。
95.一种可能的实施方式中,针对解码端来说,在按照前述实施例构建和查重得到当前块的运动信息预测模式候选列表之后,所述方法还包括:可以从运动信息预测模式候选列表中选择当前块的目标运动信息预测模式;若目标运动信息预测模式为目标运动信息角度预测模式,则对当前块的周边块的运动信息进行填充;根据目标运动信息角度预测模式的预配置角度指向的多个周边匹配块的运动信息,确定当前块的运动信息;根据当前块的运动信息,确定当前块的预测值。
96.作为示例,对当前块的周边块的运动信息进行填充,包括:对当前块的周边块,按
照从当前块的左边周边块到上边周边块的遍历顺序进行遍历,遍历出首个存在可用运动信息的周边块;若该周边块之前包括不存在可用运动信息的第一周边块,则将该周边块的运动信息填充给第一周边块;继续遍历该周边块之后的周边块,若该周边块之后的周边块中包括不存在可用运动信息的第二周边块,则将遍历过的第二周边块的上一个周边块的运动信息填充给第二周边块。
97.示例性的,按照从当前块的左边周边块到上边周边块的遍历顺序进行遍历,可以包括:如果当前块不存在左边周边块,则对当前块的上边周边块进行遍历;如果当前块不存在上边周边块,则对当前块的左边周边块进行遍历。左边周边块可以包括与当前块左侧相邻的块和不相邻的块。上边周边块可以包括与当前块上侧相邻的块和不相邻的块。第一周边块的数量可以为一个或者多个,是遍历出的首个存在可用运动信息的周边块之前的所有周边块。第一周边块可以是未编码块或者帧内块;第二周边块可以是未编码块或者帧内块。
98.在另一种可能的实施方式中,针对编码端来说,在按照前述实施例构建和查重得到当前块的运动信息预测模式候选列表之后,所述方法还包括:针对运动信息预测模式候选列表中的每个运动信息角度预测模式,若该运动信息角度预测模式的预配置角度指向的多个周边匹配块包括不存在可用运动信息的周边块,则对所述当前块的周边块的运动信息进行填充;根据填充后多个周边匹配块的运动信息确定当前块的运动信息;根据当前块的运动信息确定当前块的预测值。
99.在另一种可能的实施方式中,针对解码端来说,在按照前述实施例构建和查重得到当前块的运动信息预测模式候选列表之后,所述方法还包括:从运动信息预测模式候选列表中选择当前块的目标运动信息预测模式;若目标运动信息预测模式为目标运动信息角度预测模式、且目标运动信息角度预测模式的预配置角度指向的多个周边匹配块包括不存在可用运动信息的周边块,则对所述当前块的周边块的运动信息进行填充;根据填充后多个周边匹配块的运动信息确定当前块的运动信息;根据当前块的运动信息确定当前块的预测值。
100.在上述实施例中,根据多个周边匹配块的运动信息,确定当前块的运动信息,可以包括但不限于:将当前块划分为至少一个子区域;针对每个子区域,从多个周边匹配块中选择与该子区域对应的周边匹配块;根据选择的周边匹配块的运动信息确定该子区域的运动信息。
101.由以上技术方案可见,本技术实施例中,不需要对当前块进行子块的划分,可以基于运动信息角度预测模式来确定当前块的每个子区域的划分信息,能够有效解决子块划分带来的比特开销,比如说,在不对当前块进行子块划分的基础上,为当前块的每个子区域提供运动信息,且当前块的不同子区域可以对应相同或者不同的运动信息,从而带来编码性能的提高,解决了传输大量运动信息的问题,可以节约大量编码比特的开销。通过将运动信息不完全相同的运动信息角度预测模式添加到运动信息预测模式候选列表中,从而去除只具有单一运动信息的运动信息角度预测模式,减少运动信息预测模式候选列表中的运动信息角度预测模式的数量,能够降低编码多个运动信息的比特数,进一步提高编码性能。
102.参见图5b所示,为水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式的示意图。从图5b可以看出,有些运动信息角度预测模式,会使得当前块内部的每个子区域的运动信息相同,例如,水平预测模式、垂直预测模式、水平向
上预测模式,这样的运动信息角度预测模式需要剔除。有些运动信息角度预测模式,会使得当前块内部的每个子区域的运动信息不同,例如,水平向下预测模式、垂直向右预测模式,这样的运动信息角度预测模式需要保留,即可以添加到运动信息预测模式候选列表中。
103.显然,若将水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式均添加到运动信息预测模式候选列表中,在编码水平向下预测模式的索引时,由于前面存在水平预测模式、垂直预测模式、水平向上预测模式(每个运动信息角度预测模式的顺序不固定,这里只是示例),则可能需要编码0001来表示。
104.但是,本技术实施例中,只将水平向下预测模式和垂直向右预测模式添加到运动信息预测模式候选列表中,而禁止将水平预测模式、垂直预测模式、水平向上预测模式添加到运动信息预测模式候选列表中,即水平向下预测模式前面不存在水平预测模式、垂直预测模式和水平向上预测模式,因此,在编码水平向下预测模式的索引时,可能只需要编码0来表示即可。综上所述,上述方式能够减少编码运动信息角度预测模式的索引信息带来的比特开销,在节省比特开销的同时降低硬件复杂度,避免单个运动信息的运动信息角度预测模式所带来的低性能增益问题,降低编码多个运动信息角度预测模式的比特数。
105.本技术实施例中,先对运动信息角度预测模式进行查重处理,后对周边块的运动信息进行填充,从而降低解码端的复杂度,提高解码性能。例如,针对水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式等,先进行查重处理,将不重复的水平向下预测模式和垂直向右预测模式添加到运动信息预测模式候选列表中,这样,能够先得到运动信息预测模式候选列表,此时,还未对周边块的运动信息进行填充。
106.解码端从运动信息预测模式候选列表中选择当前块的目标运动信息预测模式后,若目标运动信息预测模式为水平向下预测模式和垂直向右预测模式之外的其它模式,则不需要对周边块的运动信息进行填充,从而使得解码端能够减少运动信息的填充操作。
107.实施例2:基于与上述方法同样的申请构思,参见图6所示,为本技术实施例中提出的编解码方法的流程示意图,该方法可以应用于编码端,该方法可以包括:
108.步骤601,编码端构建当前块的运动信息预测模式候选列表,该运动信息预测模式候选列表可以包括至少一个运动信息角度预测模式。当然,该运动信息预测模式候选列表也可以包括其它类型的运动信息预测模式(采用传统方式获得),对此不做限制。
109.示例性的,可以为当前块构建一个运动信息预测模式候选列表,即当前块内的所有子区域,可以对应相同的运动信息预测模式候选列表;或者,可以为当前块构建多个运动信息预测模式候选列表,即当前块内的所有子区域,可以对应相同或不同的运动信息预测模式候选列表。为了方便描述,以为当前块构建一个运动信息预测模式候选列表为例。
110.运动信息角度预测模式可以是预测运动信息的角度预测模式,即用于帧间编码,而不是应用于帧内编码,运动信息角度预测模式选择的是匹配块,而不是匹配的像素点。
111.其中,运动信息预测模式候选列表的构建方式可以采用传统方式,也可以采用实施例1的构建方式,对此构建方式不做限制。
112.步骤602,若运动信息预测模式候选列表中存在运动信息角度预测模式,则编码端对当前块的周边块的运动信息进行填充。例如,对当前块的周边块,按照从当前块的左边周边块到上边周边块的遍历顺序进行遍历,遍历出首个存在可用运动信息的周边块;若该周边块之前包括不存在可用运动信息的第一周边块,将该周边块的运动信息填充给第一周边
块;继续遍历该周边块之后的周边块,若该周边块之后的周边块中包括不存在可用运动信息的第二周边块,将遍历过的第二周边块的上一个周边块的运动信息填充给第二周边块。
113.步骤603,编码端依次遍历运动信息预测模式候选列表中的每个运动信息角度预测模式。针对当前遍历的运动信息角度预测模式,根据该运动信息角度预测模式的预配置角度指向的多个周边匹配块的运动信息确定当前块的运动信息。例如,将当前块划分为至少一个子区域;针对每个子区域,从该运动信息角度预测模式的预配置角度指向的多个周边匹配块中选择与该子区域对应的周边匹配块;根据选择的周边匹配块的运动信息确定该子区域的运动信息。
114.需要说明的是,由于步骤602对当前块周边块中不存在可用运动信息的周边块进行了填充,步骤603中的根据该运动信息角度预测模式的预配置角度指向的多个周边匹配块都是存在可用运动信息的。
115.步骤604,编码端根据当前块的运动信息确定当前块的预测值。例如,根据当前块内的每个子区域的运动信息确定当前块内的每个子区域的预测值,这个过程称为运动补偿。
116.步骤605,编码端从运动信息预测模式候选列表中选择当前块的目标运动信息预测模式,该目标运动信息预测模式为目标运动信息角度预测模式,或其它类型的运动信息预测模式。
117.例如,针对运动信息预测模式候选列表中的每个运动信息角度预测模式(如水平向下预测模式、垂直向右预测模式等),在根据该运动信息角度预测模式的预配置角度指向的多个周边匹配块的运动信息确定当前块的运动信息,并根据当前块的运动信息确定当前块的预测值后,编码端可以确定该运动信息角度预测模式的率失真代价值。例如,采用率失真原则确定该运动信息角度预测模式的率失真代价值,对此确定方式不做限制。
118.针对运动信息预测模式候选列表中的其它类型的运动信息预测模式r(采用传统方式得到),可以根据运动信息预测模式r确定当前块的运动信息,并根据当前块的运动信息确定当前块的预测值,继而确定运动信息预测模式r的率失真代价值,对此过程不做限制。
119.然后,编码端可以将最小的率失真代价对应的运动信息预测模式确定为目标运动信息预测模式,该目标运动信息预测模式可以为目标运动信息角度预测模式(如水平向下预测模式或者垂直向右预测模式),也可以为其它类型的运动信息预测模式r。
120.实施例3:基于与上述方法同样的申请构思,参见图7所示,为本技术实施例中提出的编解码方法的流程示意图,该方法可以应用于解码端,该方法可以包括:
121.步骤701,解码端构建当前块的运动信息预测模式候选列表,该运动信息预测模式候选列表可以包括至少一个运动信息角度预测模式。当然,该运动信息预测模式候选列表也可以包括其它类型的运动信息预测模式(采用传统方式获得),对此不做限制。
122.步骤702,解码端从运动信息预测模式候选列表中选择当前块的目标运动信息预测模式,该目标运动信息预测模式为目标运动信息角度预测模式,或其它类型的运动信息预测模式。
123.解码端选择目标运动信息预测模式的过程,可以包括:在接收到编码比特流后,从编码比特流中获取指示信息,该指示信息用于指示目标运动信息预测模式在运动信息预测
模式候选列表中的索引信息。例如,编码端在向解码端发送编码比特流时,该编码比特流携带指示信息,该指示信息用于指示目标运动信息预测模式在运动信息预测模式候选列表的索引信息。假设运动信息预测模式候选列表依次包括:水平向下预测模式、垂直向右预测模式、运动信息预测模式r,且指示信息用于指示索引信息1,索引信息1表示运动信息预测模式候选列表中的第一个运动信息预测模式。基于此,解码端从编码比特流中获取索引信息1。
124.解码端从运动信息预测模式候选列表中选择与该索引信息对应的运动信息预测模式,并将选择的运动信息预测模式确定为当前块的目标运动信息预测模式。例如,当指示信息用于指示索引信息1时,则解码端可以将运动信息预测模式候选列表中的第1个运动信息预测模式,确定为当前块的目标运动信息预测模式。
125.步骤703,若目标运动信息预测模式为目标运动信息角度预测模式,则解码端对当前块的周边块的运动信息进行填充。
126.例如,对当前块的周边块,按照从当前块的左边周边块到上边周边块的遍历顺序进行遍历,遍历出首个存在可用运动信息的周边块;若该周边块之前包括不存在可用运动信息的第一周边块,将该周边块的运动信息填充给第一周边块;继续遍历该周边块之后的周边块,若该周边块之后的周边块中包括不存在可用运动信息的第二周边块,将遍历过的第二周边块的上一个周边块的运动信息填充给第二周边块。
127.在一种可能的实现方式中,若目标运动信息预测模式不是运动信息角度预测模式,则不需要当前块的周边块的运动信息进行填充,使得解码端能够减少运动信息的填充操作。
128.步骤704,解码端根据目标运动信息角度预测模式的预配置角度指向的多个周边匹配块的运动信息确定当前块的运动信息。例如,将当前块划分为至少一个子区域;针对每个子区域,从该目标运动信息角度预测模式的预配置角度指向的多个周边匹配块中选择与该子区域对应的周边匹配块;根据选择的周边匹配块的运动信息确定该子区域的运动信息。
129.需要说明的是,由于步骤703对当前块周边块中不存在可用运动信息的周边块进行了填充,步骤704中的根据该运动信息角度预测模式的预配置角度指向的多个周边匹配块都是存在可用运动信息的。
130.步骤705,解码端根据当前块的运动信息确定当前块的预测值。例如,根据当前块内的每个子区域的运动信息,确定当前块内的每个子区域的预测值,这个过程也称为运动补偿。
131.实施例4:本技术实施例提出另一种编解码方法,该方法可以包括:
132.步骤a1、编码端构建当前块的运动信息预测模式候选列表,该运动信息预测模式候选列表可以包括至少一个运动信息角度预测模式。
133.步骤a2、编码端依次遍历运动信息预测模式候选列表中的每个运动信息角度预测模式。针对当前遍历的运动信息角度预测模式,若该运动信息角度预测模式的预配置角度指向的多个周边匹配块包括不存在可用运动信息的周边块,对当前块的周边块的运动信息进行填充。
134.例如,针对不存在可用运动信息的周边块,将该周边块的邻近块的可用运动信息,
填充为该周边块的运动信息;或,将该周边块在时域参考帧中对应位置的参考块的可用运动信息,填充为该周边块的运动信息;或,将默认运动信息填充为该周边块的运动信息。
135.再例如,对当前块的周边块进行填充时,按照从当前块的左边周边块到上边周边块的遍历顺序进行遍历,遍历出首个存在可用运动信息的周边块;若该周边块之前包括不存在可用运动信息的第一周边块,将该周边块的运动信息填充给第一周边块;继续遍历该周边块之后的周边块,若该周边块之后的周边块中包括不存在可用运动信息的第二周边块,将遍历过的第二周边块的上一个周边块的运动信息填充给第二周边块。
136.步骤a3、编码端根据该运动信息角度预测模式的预配置角度指向的多个周边匹配块的运动信息确定当前块的运动信息。例如,将当前块划分为至少一个子区域;针对每个子区域,从该运动信息角度预测模式的预配置角度指向的多个周边匹配块中选择与该子区域对应的周边匹配块;根据选择的周边匹配块的运动信息确定该子区域的运动信息。
137.步骤a4、编码端根据当前块的运动信息确定当前块的预测值。例如,根据当前块内的每个子区域的运动信息确定当前块内的每个子区域的预测值,这个过程称为运动补偿。
138.步骤a5、编码端从运动信息预测模式候选列表中选择当前块的目标运动信息预测模式。
139.实施例5:本技术实施例提出另一种编解码方法,该方法可以包括:
140.步骤b1、解码端构建当前块的运动信息预测模式候选列表,该运动信息预测模式候选列表可以包括至少一个运动信息角度预测模式。
141.步骤b2、解码端从运动信息预测模式候选列表中选择当前块的目标运动信息预测模式,该目标运动信息预测模式为目标运动信息角度预测模式,或其它类型的运动信息预测模式。
142.步骤b3、若目标运动信息预测模式为目标运动信息角度预测模式、且目标运动信息角度预测模式的预配置角度指向的多个周边匹配块包括不存在可用运动信息的周边块,则解码端对所述当前块的周边块的运动信息进行填充。
143.例如,针对不存在可用运动信息的周边块,将该周边块的邻近块的可用运动信息,填充为该周边块的运动信息;或,将该周边块在时域参考帧中对应位置的参考块的可用运动信息,填充为该周边块的运动信息;或,将默认运动信息填充为该周边块的运动信息。
144.再例如,对当前块的周边块进行填充时,按照从当前块的左边周边块到上边周边块的遍历顺序进行遍历,遍历出首个存在可用运动信息的周边块;若该周边块之前包括不存在可用运动信息的第一周边块,将该周边块的运动信息填充给第一周边块;继续遍历该周边块之后的周边块,若该周边块之后的周边块中包括不存在可用运动信息的第二周边块,将遍历过的第二周边块的上一个周边块的运动信息填充给第二周边块。
145.步骤b4、解码端根据目标运动信息角度预测模式的预配置角度指向的多个周边匹配块的运动信息确定当前块的运动信息。例如,将当前块划分为至少一个子区域;针对每个子区域,从该目标运动信息角度预测模式的预配置角度指向的多个周边匹配块中选择与该子区域对应的周边匹配块;根据选择的周边匹配块的运动信息确定该子区域的运动信息。
146.步骤b5,解码端根据当前块的运动信息确定当前块的预测值。例如,根据当前块内的每个子区域的运动信息,确定当前块内的每个子区域的预测值。
147.实施例6:在上述实施例中,涉及运动信息预测模式候选列表的构建过程,即,针对
任意一个运动信息角度预测模式,决策将该运动信息角度预测模式添加到运动信息预测模式候选列表或者禁止将该运动信息角度预测模式添加到运动信息预测模式候选列表,该过程包括:
148.步骤c1、获取当前块的至少一个运动信息角度预测模式。
149.例如,可以获取如下运动信息角度预测模式:水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式。当然,上述方式只是示例,对此不做限制,预配置角度可以是0

360度之间的任意角度,可以将子区域的中心点向右的水平方向定位为0度,这样,从0度逆时针旋转的任意角度均可以为预配置角度,或者,将子区域的中心点向其他方向定位为0度。在实际应用中,预配置角度可以是分数角度,如22.5度等。
150.步骤c2、针对当前块的任意一个运动信息角度预测模式,基于该运动信息角度预测模式的预配置角度,从当前块的周边块中选择该预配置角度指向的多个周边匹配块。
151.步骤c3、基于所述多个周边匹配块是否存在可用运动信息、所述多个周边匹配块的可用运动信息是否相同等特征,将该运动信息角度预测模式添加到运动信息预测模式候选列表中,或者,禁止将该运动信息角度预测模式添加到运动信息预测模式候选列表中。
152.以下结合几个具体情况,对步骤c3的决策过程进行说明。
153.情况一、从所述多个周边匹配块中选择待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,则可以将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
154.从所述多个周边匹配块中选择待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,则可以禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
155.例如,若第一周边匹配块和第二周边匹配块中存在帧内块和/或未编码块,则将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
156.若第一周边匹配块和第二周边匹配块中存在帧内块和/或未编码块,则禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
157.若第一周边匹配块和第二周边匹配块中有至少一个位于当前块所在图像之外或者当前块所在图像片之外,则将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
158.若第一周边匹配块和第二周边匹配块中有至少一个位于当前块所在图像之外或者当前块所在图像片之外,则禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
159.情况二、从所述多个周边匹配块中选择待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块都存在可用运动信息,当第一周边匹配块和第二周边匹配块的运动信息不同时,则可以将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
160.从所述多个周边匹配块中选择待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块都存在可用运动信息,当第一周边匹配块和第二周边匹配块的运动信息相同时,则可以禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
161.情况三、从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。若第一周边匹配块和第二周边匹配块都存在可用运动信息,且第一周边匹配块和第二周边匹配块的运动信息不同,则将运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
162.从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。若第一周边匹配块和第二周边匹配块都存在可用运动信息,且第一周边匹配块和第二周边匹配块的运动信息相同,则继续判断第二周边匹配块和第三周边匹配块是否都存在可用运动信息。若第二周边匹配块和第三周边匹配块都存在可用运动信息,则当第二周边匹配块和第三周边匹配块的运动信息不同时,将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
163.从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。若第一周边匹配块和第二周边匹配块都存在可用运动信息,且第一周边匹配块和第二周边匹配块的运动信息相同,则继续判断第二周边匹配块和第三周边匹配块是否都存在可用运动信息。若第二周边匹配块和第三周边匹配块都存在可用运动信息,则当第二周边匹配块和第三周边匹配块的运动信息相同时,禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
164.情况四、从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
165.从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
166.从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,继续判断第二周边匹配块和第三周边匹配块是否都存在可用运动信息;若第二周边匹配块和第三周边匹配块都存在可用运动信息,当第二周边匹配块和第三周边匹配块的运动信息不同时,将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
167.从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,继续判断第二周边匹配块和第三周边匹配块是否都存在可用运动信息;若第二周边匹配块和第三周边匹配块都存在可用运动信息,当第二周边匹配块和第三周边匹配块的运动信息相同时,禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
168.从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块。若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,继续判断第二周边匹配块和第三周边匹配块是否都存在可用运动信息;若第二周边匹配块和第三周边匹配块中的至少一个不存在可用运动信息,将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
169.从所述多个周边匹配块中选择待依次遍历的第一周边匹配块、第二周边匹配块和
第三周边匹配块。若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,继续判断第二周边匹配块和第三周边匹配块是否都存在可用运动信息;若第二周边匹配块和第三周边匹配块中的至少一个不存在可用运动信息,禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
170.情况五、若所述多个周边匹配块均存在可用运动信息,且所述多个周边匹配块的运动信息不完全相同,则将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
171.若所述多个周边匹配块均存在可用运动信息,且所述多个周边匹配块的运动信息完全相同,则可以禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
172.情况六、若所述多个周边匹配块中的至少一个不存在可用运动信息,则可以将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
173.若所述多个周边匹配块中的至少一个不存在可用运动信息,则可以禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
174.若所述多个周边匹配块中的至少一个不存在可用运动信息,且所述多个周边匹配块的运动信息不完全相同,则可以将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
175.若所述多个周边匹配块中的至少一个不存在可用运动信息,且所述多个周边匹配块的运动信息完全相同,则可以禁止将该运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
176.针对情况五和情况六,多个周边匹配块的运动信息不完全相同/完全相同的确定方式,可以包括但不限于:从多个周边匹配块中选择至少一个第一周边匹配块(如所有周边匹配块的全部或部分);针对每个第一周边匹配块,从多个周边匹配块中选择该第一周边匹配块对应的第二周边匹配块。若该第一周边匹配块的运动信息与该第二周边匹配块的运动信息不同,则确定二者的运动信息不同;若该第一周边匹配块的运动信息与该第二周边匹配块的运动信息相同,则确定二者的运动信息相同。基于此,若任意一对待比较周边匹配块的运动信息不同,则确定所述多个周边匹配块的运动信息不完全相同。若所有待比较周边匹配块的运动信息均相同,则确定所述多个周边匹配块的运动信息完全相同。
177.针对情况五和情况六,多个周边匹配块中的至少一个不存在可用运动信息的确定方式,可以包括但不限于:从多个周边匹配块中选择至少一个第一周边匹配块;针对每个第一周边匹配块,从多个周边匹配块中选择该第一周边匹配块对应的第二周边匹配块。若任意一对待比较周边匹配块(即第一周边匹配块和第二周边匹配块)中的至少一个不存在可用运动信息,则确定所述多个周边匹配块中的至少一个不存在可用运动信息。若所有待比较周边匹配块均存在可用运动信息,则确定所述多个周边匹配块均存在可用运动信息。
178.在上述各种情况中,从所述多个周边匹配块中选择第一周边匹配块,可以包括:将所述多个周边匹配块中的任意一个作为第一周边匹配块;或者,将所述多个周边匹配块中指定的一个作为第一周边匹配块。从所述多个周边匹配块中选择第二周边匹配块,可以包括:根据遍历步长和第一周边匹配块的位置,从所述多个周边匹配块中选择第一周边匹配块对应的第二周边匹配块;该遍历步长可以是该第一周边匹配块与该第二周边匹配块之间
的块间隔。
179.针对情况三和情况四,从所述多个周边匹配块中选择第三周边匹配块,可以包括:根据遍历步长和第二周边匹配块的位置,从所述多个周边匹配块中选择第二周边匹配块对应的第三周边匹配块;该遍历步长可以是该第二周边匹配块与该第三周边匹配块之间的块间隔。
180.例如,针对按照顺序依次排列的周边匹配块a1、周边匹配块a2、周边匹配块a3、周边匹配块a4和周边匹配块a5,则针对不同的情况,各周边匹配块的示例如下所示:
181.针对情况一和情况二,假设将周边匹配块a1作为第一周边匹配块,且遍历步长是2,则周边匹配块a1对应的第二周边匹配块是周边匹配块a3。针对情况三和情况四,假设将周边匹配块a1作为第一周边匹配块,且遍历步长是2,则周边匹配块a1对应的第二周边匹配块是周边匹配块a3。周边匹配块a3对应的第三周边匹配块是周边匹配块a5。
182.针对情况五和情况六,假设将周边匹配块a1和周边匹配块a3均作为第一周边匹配块,且遍历步长是2,在周边匹配块a1作为第一周边匹配块时,则第二周边匹配块是周边匹配块a3。在周边匹配块a3作为第一周边匹配块时,则第二周边匹配块是周边匹配块a5。
183.示例性的,从所述多个周边匹配块中选择周边匹配块之前,还可以基于当前块的尺寸,确定所述遍历步长。通过所述遍历步长控制运动信息的比较次数。例如,假设周边匹配块的尺寸为4*4,当前块的尺寸为16*16,针对水平预测模式,当前块对应4个周边匹配块。为了控制运动信息的比较次数为1,遍历步长可以为2或者3,若遍历步长为2,则第一周边匹配块为第1个周边匹配块,第二周边匹配块为第3个周边匹配块;或者,第一周边匹配块为第2个周边匹配块,第二周边匹配块为第4个周边匹配块。若遍历步长为3,则第一周边匹配块为第1个周边匹配块,第二周边匹配块为第4个周边匹配块。又例如,为了控制运动信息的比较次数为2,遍历步长可以为1,第一周边匹配块为第1个周边匹配块和第3个周边匹配块,第1个周边匹配块对应的第二周边匹配块为第2个周边匹配块,第3个周边匹配块对应的第二周边匹配块为第4个周边匹配块。当然,上述只是针对水平预测模式的示例,还可以采用其它方式确定遍历步长,对此不做限制。而且,针对水平预测模式之外的其它运动信息角度预测模式,确定遍历步长的方式参见水平预测模式,在此不再重复赘述。
184.在上述各种情况中,判断任意一个周边匹配块是否存在可用运动信息的过程,可以包括但不限于:若周边匹配块是位于当前块所在图像之外或者周边匹配块是位于当前块所在图像片之外,则确定该周边匹配块不存在可用运动信息。若周边匹配块是未编码块,则确定该周边匹配块不存在可用运动信息。若周边匹配块是帧内块,则确定该周边匹配块不存在可用运动信息。若周边匹配块是帧间已编码块,则确定该周边匹配块存在可用运动信息。
185.实施例7:在上述实施例中,涉及运动信息预测模式候选列表的构建过程,以下结合几个具体应用场景,对运动信息预测模式候选列表的构建过程进行说明。
186.应用场景1:当前块的周边块存在表示该周边块位于当前块所在图像之内,当前块的周边块不存在表示该周边块位于当前块所在图像之外。若周边块不存在、或周边块尚未解码(即周边块是未编码块)、或周边块是帧内块,则说明周边块不存在可用运动信息。若周边块存在、且周边块不是未编码块、且周边块不是帧内块,则说明周边块存在可用运动信息。
187.参见图8a所示,当前块的宽度w大于或等于8,当前块的高度h大于或等于8,令m的大小为w/4,n的大小为h/4,当前块左上角的像素点为(x,y),(x

1,y h w

1)所在周边块为a0,a0的大小为4*4。按照顺时针方向对这些周边块进行遍历,每一个4*4的周边块分别记为a1、a2、

、a
2m 2n
,a
2m 2n
是像素点(x w h

1,y

1)所在的周边块。
188.针对每个运动信息角度预测模式,基于该运动信息角度预测模式的预配置角度,从上述周边块中选择该预配置角度指向的多个周边匹配块,并从多个周边匹配块中选择待遍历的周边匹配块(如选择待遍历的第一周边匹配块和第二周边匹配块;或者,选择待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块)。若第一周边匹配块和第二周边匹配块都存在可用运动信息、且第一周边匹配块和第二周边匹配块的运动信息不同,则这两个周边匹配块的比较结果为不同,将运动信息角度预测模式添加到运动信息预测模式候选列表。若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,或者,第一周边匹配块和第二周边匹配块都存在可用运动信息、且第一周边匹配块和第二周边匹配块的运动信息相同,则这两个周边匹配块的比较结果为相同,禁止将运动信息角度预测模式添加到运动信息预测模式候选列表。
189.若第一周边匹配块和第二周边匹配块都存在可用运动信息、且第一周边匹配块和第二周边匹配块的运动信息不同,则这两个周边匹配块的比较结果为不同,将运动信息角度预测模式添加到运动信息预测模式候选列表。若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,或者,第一周边匹配块和第二周边匹配块都存在可用运动信息、且第一周边匹配块和第二周边匹配块的运动信息相同,则这两个周边匹配块的比较结果为相同,继续比较第二周边匹配块和第三周边匹配块。
190.若第二周边匹配块和第三周边匹配块都存在可用运动信息、且第二周边匹配块和第三周边匹配块的运动信息不同,则这两个周边匹配块的比较结果为不同,将运动信息角度预测模式添加到运动信息预测模式候选列表。若第二周边匹配块和第三周边匹配块中的至少一个不存在可用运动信息,或者,第二周边匹配块和第三周边匹配块都存在可用运动信息、且第二周边匹配块和第三周边匹配块的运动信息相同,则这两个周边匹配块的比较结果为相同,禁止将运动信息角度预测模式添加到运动信息预测模式候选列表。
191.例如,若当前块的左边相邻块存在,上边相邻块不存在,对于水平预测模式,将a
m

1 h/8
作为第一周边匹配块,将a
m n
‑1作为第二周边匹配块,当然,a
m

1 h/8
和a
m n
‑1只是一个示例,还可以将水平预测模式的预配置角度指向的其它周边匹配块作为第一周边匹配块或者第二周边匹配块,其实现方式类似,后续不再赘述。利用上述比较方法判断a
m

1 h/8
和a
m n
‑1的比较结果是否相同。如果相同,则禁止将水平预测模式添加到当前块的运动信息预测模式候选列表。如果不同,则将水平预测模式添加到当前块的运动信息预测模式候选列表。
192.对于水平向下预测模式,将a
w/8
‑1作为第一周边匹配块,将a
m
‑1作为第二周边匹配块,将a
m

1 h/8
作为第三周边匹配块,当然,上述只是一个示例,还可以将水平向下预测模式的预配置角度指向的其它周边匹配块作为第一周边匹配块、第二周边匹配块或者第三周边匹配块,其实现方式类似,后续不再赘述。利用上述比较方法判断a
w/8
‑1和a
m
‑1的比较结果是否相同。如果不同,将水平向下预测模式添加到当前块的运动信息预测模式候选列表。如果相同,利用上述比较方法判断a
m
‑1和a
m

1 h/8
的比较结果是否相同。若a
m
‑1和a
m

1 h/8
的比较结果为不同,将水平向下预测模式添加到当前块的运动信息预测模式候选列表。若a
m
‑1和a
m

1 h/8
的比较结果为相同,禁止将水平向下预测模式添加到当前块的运动信息预测模式候选列表。
193.例如,若当前块的左边相邻块不存在,上边相邻块存在,对于垂直预测模式,将a
m n 1 w/8
作为第一周边匹配块,将a
m n 1
作为第二周边匹配块,当然,上述只是一个示例,对此第一周边匹配块和第二周边匹配块不做限制。利用上述比较方法判断a
m n 1 w/8
和a
m n 1
的比较结果是否相同。如果相同,则禁止将垂直预测模式添加到当前块的运动信息预测模式候选列表。如果不同,则将垂直预测模式添加到当前块的运动信息预测模式候选列表。
194.对于垂直向右预测模式,将a
m n 1 w/8
作为第一周边匹配块,将a
2m n 1
作为第二周边匹配块,将a
2m n 1 h/8
作为第三周边匹配块,当然,上述只是示例,对此第一周边匹配块、第二周边匹配块和第三周边匹配块不做限制。利用上述比较方法判断a
m n 1 w/8
和a
2m n 1
的比较结果是否相同。若不同,则将垂直向右预测模式添加到运动信息预测模式候选列表。若相同,利用上述比较方法判断a
2m n 1
和a
2m n 1 h/8
的比较结果是否相同。若a
2m n 1
和a
2m n 1 h/8
的比较结果为不同,将垂直向右预测模式添加到运动信息预测模式候选列表。若a
2m n 1
和a
2m n 1 h/8
的比较结果为相同,禁止将垂直向右预测模式添加到运动信息预测模式候选列表。
195.例如,若当前块的左边相邻块存在,当前块的上边相邻块也存在,对于水平向下预测模式,将a
w/8
‑1作为第一周边匹配块,将a
m
‑1作为第二周边匹配块,将a
m

1 h/8
作为第三周边匹配块,当然,上述只是示例,对此第一周边匹配块、第二周边匹配块和第三周边匹配块不做限制。利用上述比较方法判断a
w/8
‑1和a
m
‑1的比较结果是否相同。如果不同,则可以将水平向下预测模式添加到当前块的运动信息预测模式候选列表。如果相同,则利用上述比较方法判断a
m
‑1和a
m

1 h/8
的比较结果是否相同。若a
m
‑1和a
m

1 h/8
的比较结果为不同,则将水平向下预测模式添加到当前块的运动信息预测模式候选列表。若a
m
‑1和a
m

1 h/8
的比较结果为相同,则禁止将水平向下预测模式添加到当前块的运动信息预测模式候选列表。
196.对于水平预测模式,将a
m

1 h/8
作为第一周边匹配块,将a
m n
‑1作为第二周边匹配块,当然,上述只是一个示例,对此第一周边匹配块和第二周边匹配块不做限制。利用上述比较方法判断a
m

1 h/8
和a
m n
‑1的比较结果是否相同。若相同,不将水平预测模式添加到运动信息预测模式候选列表。若不同,将水平预测模式添加到运动信息预测模式候选列表。
197.对于水平向上预测模式,将a
m n
‑1作为第一周边匹配块,将a
m n
作为第二周边匹配块,将a
m n 1
作为第三周边匹配块,当然,上述只是示例,对此第一周边匹配块、第二周边匹配块和第三周边匹配块不做限制。利用上述比较方法判断a
m n
‑1和a
m n
的比较结果是否相同。如果不同,则将水平向上预测模式添加到当前块的运动信息预测模式候选列表。如果相同,则利用上述比较方法判断a
m n
和a
m n 1
的比较结果是否相同。若a
m n
和a
m n 1
的比较结果为不同,则将水平向上预测模式添加到运动信息预测模式候选列表。若a
m n
和a
m n 1
的比较结果为相同,则禁止将水平向上预测模式添加到运动信息预测模式候选列表。
198.对于垂直预测模式,将a
m n 1 w/8
作为第一周边匹配块,将a
m n 1
作为第二周边匹配块,当然,上述只是一个示例,对此第一周边匹配块和第二周边匹配块。利用上述比较方法判断a
m n 1 w/8
和a
m n 1
的比较结果是否相同。如果相同,则可以禁止将垂直预测模式添加到当前块的运动信息预测模式候选列表。如果不同,则可以将垂直预测模式添加到当前块的运动信息预测模式候选列表。
199.对于垂直向右预测模式,将a
m n 1 w/8
作为第一周边匹配块,将a
2m n 1
作为第二周边
匹配块,将a
2m n 1 h/8
作为第三周边匹配块,当然,上述只是示例,对此第一周边匹配块、第二周边匹配块和第三周边匹配块不做限制。利用上述比较方法判断a
m n 1 w/8
和a
2m n 1
的比较结果是否相同。若不同,则将垂直向右预测模式添加到运动信息预测模式候选列表。若相同,利用上述比较方法判断a
2m n 1
和a
2m n 1 h/8
的比较结果是否相同。若a
2m n 1
和a
2m n 1 h/8
的比较结果为不同,将垂直向右预测模式添加到运动信息预测模式候选列表。若a
2m n 1
和a
2m n 1 h/8
的比较结果为相同,禁止将垂直向右预测模式添加到运动信息预测模式候选列表。
200.应用场景2:与应用场景1的实现方式类似,不同之处在于:应用场景2中,不用区分当前块的左边相邻块是否存在,也不用区分当前块的上边相邻块是否存在。比如说,无论当前块的左边相邻块是否存在、当前块的上边相邻块是否存在,均采用上述方式处理。
201.应用场景3:与应用场景1的实现方式类似,不同之处在于:当前块的周边块存在表示该周边块位于当前块所在图像之内、且该周边块位于当前块所在图像片之内;当前块的周边块不存在表示该周边块位于当前块所在图像之外,或该周边块位于当前块所在图像之内,但该周边块位于当前块所在图像片之外。其它过程与应用场景1类似,在此不再赘述。
202.应用场景4:与应用场景1的实现方式类似,不同之处在于:当前块的周边块存在表示该周边块位于当前块所在图像之内、且该周边块位于当前块所在图像片之内;当前块的周边块不存在表示该周边块位于当前块所在图像之外,或该周边块位于当前块所在图像之内,但该周边块位于当前块所在图像片之外。不用区分当前块的左边相邻块是否存在,也不用区分当前块的上边相邻块是否存在。其它过程与应用场景1类似,在此不再赘述。
203.应用场景5:当前块的周边块存在表示该周边块位于当前块所在图像之内、且周边块位于当前块所在图像片之内;当前块的周边块不存在表示该周边块位于当前块所在图像之外,或周边块位于当前块所在图像之内,但周边块位于当前块所在图像片之外。若周边块不存在、或周边块是未编码块、或周边块是帧内块,说明周边块不存在可用运动信息。若周边块存在、且周边块不是未编码块、且周边块不是帧内块,说明周边块存在可用运动信息。
204.参见图8a所示,当前块的宽度w大于或等于8,当前块的高度h大于或等于8,令m的大小为w/4,n的大小为h/4,当前块左上角的像素点为(x,y),(x

1,y h w

1)所在周边块为a0,a0的大小为4*4。按照顺时针方向对这些周边块进行遍历,每一个4*4的周边块分别记为a1、a2、

、a
2m 2n
,a
2m 2n
是像素点(x w h

1,y

1)所在的周边块。
205.针对每个运动信息角度预测模式,基于该运动信息角度预测模式的预配置角度,从上述周边块中选择该预配置角度指向的多个周边匹配块,并从多个周边匹配块中选择待遍历的周边匹配块。与应用场景1不同的是,若第一周边匹配块和第二周边匹配块中的至少一个不存在可用运动信息,或者,第一周边匹配块和第二周边匹配块都存在可用运动信息、且第一周边匹配块和第二周边匹配块的运动信息不同,则这两个周边匹配块的比较结果为不同,将运动信息角度预测模式添加到运动信息预测模式候选列表。
206.若第一周边匹配块和第二周边匹配块都存在可用运动信息、且第一周边匹配块和第二周边匹配块的运动信息相同,则这两个周边匹配块的比较结果为相同,禁止将运动信息角度预测模式添加到运动信息预测模式候选列表;或,继续比较第二周边匹配块和第三周边匹配块。
207.若第二周边匹配块和第三周边匹配块中的至少一个不存在可用运动信息,或者,第二周边匹配块和第三周边匹配块都存在可用运动信息、且第二周边匹配块和第三周边匹
配块的运动信息不同,则这两个周边匹配块的比较结果为不同,将运动信息角度预测模式添加到运动信息预测模式候选列表。或者,若第二周边匹配块和第三周边匹配块都存在可用运动信息、且第二周边匹配块和第三周边匹配块的运动信息相同,则这两个周边匹配块的比较结果为相同,禁止将运动信息角度预测模式添加到运动信息预测模式候选列表。
208.基于上述比较方法,相应的处理流程参见应用场景1,例如,若当前块的左边相邻块存在,上边相邻块不存在,对于水平预测模式,利用上述比较方法判断a
m

1 h/8
和a
m n
‑1的比较结果是否相同。如果相同,禁止将水平预测模式添加到运动信息预测模式候选列表。如果不同,将水平预测模式添加到运动信息预测模式候选列表。
209.对于水平向下预测模式,利用上述比较方法判断a
w/8
‑1和a
m
‑1的比较结果是否相同。如果不同,将水平向下预测模式添加到运动信息预测模式候选列表。如果相同,利用上述比较方法判断a
m
‑1和a
m

1 h/8
的比较结果是否相同。若a
m
‑1和a
m

1 h/8
的比较结果为不同,则可以将水平向下预测模式添加到运动信息预测模式候选列表。若a
m
‑1和a
m

1 h/8
的比较结果为相同,则可以禁止将水平向下预测模式添加到运动信息预测模式候选列表。
210.应用场景6:与应用场景5的实现方式类似,不同之处在于:不用区分当前块的左边相邻块是否存在,也不用区分当前块的上边相邻块是否存在。比如说,无论当前块的左边相邻块是否存在、当前块的上边相邻块是否存在,均采用应用场景5的方式进行处理。
211.应用场景7:与应用场景5的实现方式类似,不同之处在于:当前块的周边块存在表示该周边块位于当前块所在图像之内,当前块的周边块不存在表示该周边块位于当前块所在图像之外。其它处理过程与应用场景5类似,在此不再重复赘述。
212.应用场景8:与应用场景5的实现方式类似,不同之处在于:当前块的周边块存在表示该周边块位于当前块所在图像之内,当前块的周边块不存在表示该周边块位于当前块所在图像之外。应用场景8中,不用区分当前块的左边相邻块是否存在,也不用区分当前块的上边相邻块是否存在。其它处理过程与应用场景5类似,在此不再重复赘述。
213.应用场景9:当前块的周边块存在表示该周边块位于当前块所在图像之内,当前块的周边块不存在表示该周边块位于当前块所在图像之外。若周边块不存在、或周边块是未编码块、或周边块是帧内块,说明周边块不存在可用运动信息。若周边块存在、且周边块不是未编码块、且周边块不是帧内块,说明周边块存在可用运动信息。针对每个运动信息角度预测模式,基于该运动信息角度预测模式的预配置角度,从周边块中选择该预配置角度指向的多个周边匹配块,从多个周边匹配块中选择至少一个第一周边匹配块(如一个或者多个);针对每个第一周边匹配块,从所述多个周边匹配块中选择该第一周边匹配块对应的第二周边匹配块。
214.将每个第一周边匹配块和第二周边匹配块的组合记为匹配块组,例如,从多个周边匹配块中选择a1、a3、a5作为第一周边匹配块,从多个周边匹配块中选择a2作为a1对应的第二周边匹配块,从多个周边匹配块中选择a4作为a3对应的第二周边匹配块,从多个周边匹配块中选择a6作为a5对应的第二周边匹配块,则匹配块组1包括a1和a2,匹配块组2包括a3和a4,匹配块组3包括a5和a6。上述a1、a2、a3、a4、a5和a6是所述多个周边匹配块中的任意周边匹配块,其选择方式可以根据经验配置,对此不做限制。
215.针对每个匹配块组,若该匹配块组中的两个周边匹配块都存在可用运动信息、且这两个周边匹配块的运动信息不同,则该匹配块组的比较结果为不同。若该匹配块组中的
两个周边匹配块中的至少一个不存在可用运动信息,或者,这两个周边匹配块都存在可用运动信息、且这两个周边匹配块的运动信息相同,则该匹配块组的比较结果为相同。若所有匹配块组的比较结果为相同,禁止将运动信息角度预测模式添加到运动信息预测模式候选列表;若任一匹配块组的比较结果为不同,将运动信息角度预测模式添加到运动信息预测模式候选列表。
216.例如,若当前块的左边相邻块存在,上边相邻块不存在,对于水平预测模式,利用上述比较方法判断至少一匹配块组a
i
和a
j
(i和j的取值范围为[m,m n

1],且i和j不相同,i和j可以任意选取,位于该取值范围即可)的比较结果。如果所有匹配块组的比较结果都相同,则禁止将水平预测模式添加到运动信息预测模式候选列表。否则,将水平预测模式添加到当前块的运动信息预测模式候选列表。对于水平向下预测模式,利用上述比较方法判断至少一匹配块组a
i
和a
j
(i和j的取值范围为[0,m n

2],且i和j不相同)的比较结果。如果所有匹配块组的比较结果都相同,则禁止将水平向下预测模式添加到运动信息预测模式候选列表。否则,将水平向下预测模式添加到运动信息预测模式候选列表。
[0217]
例如,若当前块的左边相邻块不存在,上边相邻块存在,对于垂直预测模式,利用上述比较方法判断至少一匹配块组a
i
和a
j
(i和j的取值范围为[m n 1,2m n],且i和j不相同)的比较结果。如果所有匹配块组的比较结果都相同,则禁止将垂直预测模式添加到运动信息预测模式候选列表。否则,将垂直预测模式添加到运动信息预测模式候选列表。对于垂直向右预测模式,利用上述比较方法判断至少一匹配块组a
i
和a
j
(i和j的取值范围为[m n 2,2m 2n],且i和j不相同)的比较结果。如果所有匹配块组的比较结果都相同,则禁止将垂直向右预测模式添加到运动信息预测模式候选列表。否则,将垂直向右预测模式添加到运动信息预测模式候选列表。
[0218]
例如,若当前块的左边相邻块存在,当前块的上边相邻块也存在,对于水平向下预测模式,则利用上述比较方法判断至少一匹配块组a
i
和a
j
(i和j的取值范围为[0,m n

2],且i和j不相同)的比较结果。如果所有匹配块组的比较结果都相同,则禁止将水平向下预测模式添加到运动信息预测模式候选列表。否则,将水平向下预测模式添加到运动信息预测模式候选列表。对于水平预测模式,则利用上述比较方法判断至少一匹配块组a
i
和a
j
(i和j的取值范围为[m,m n

1],且i和j不相同)的比较结果。如果所有匹配块组的比较结果都相同,则禁止将水平预测模式添加到运动信息预测模式候选列表。否则,将水平预测模式添加到当前块的运动信息预测模式候选列表。对于水平向上预测模式,则利用上述比较方法判断至少一匹配块组a
i
和a
j
(i和j的取值范围为[m 1,2m n

1],且i和j不相同)的比较结果。如果所有匹配块组的比较结果都相同,则禁止将水平向上预测模式添加到运动信息预测模式候选列表。否则,将水平向上预测模式添加到运动信息预测模式候选列表。对于垂直预测模式,则利用上述比较方法判断至少一匹配块组a
i
和a
j
(i和j的取值范围为[m n 1,2m n],且i和j不相同)的比较结果。如果所有匹配块组的比较结果都相同,则禁止将垂直预测模式添加到运动信息预测模式候选列表。否则,将垂直预测模式添加到运动信息预测模式候选列表。对于垂直向右预测模式,则利用上述比较方法判断至少一匹配块组a
i
和a
j
(i和j的取值范围为[m n 2,2m 2n],且i和j不相同)的比较结果。如果所有匹配块组的比较结果都相同,则禁止将垂直向右预测模式添加到运动信息预测模式候选列表。否则,将垂直向右预测模式添加到运动信息预测模式候选列表。
[0219]
应用场景10:与应用场景9的实现方式类似,不同之处在于:应用场景10中,不用区分当前块的左边相邻块是否存在,也不用区分当前块的上边相邻块是否存在。
[0220]
应用场景11:与应用场景9的实现方式类似,不同之处在于:当前块的周边块存在表示该周边块位于当前块所在图像之内、且该周边块位于当前块所在图像片之内;当前块的周边块不存在表示该周边块位于当前块所在图像之外,或该周边块位于当前块所在图像之内,但该周边块位于当前块所在图像片之外。其它过程与应用场景9类似,在此不再赘述。
[0221]
应用场景12:与应用场景9的实现方式类似,不同之处在于:当前块的周边块存在表示该周边块位于当前块所在图像之内、且该周边块位于当前块所在图像片之内;当前块的周边块不存在表示该周边块位于当前块所在图像之外,或该周边块位于当前块所在图像之内,但该周边块位于当前块所在图像片之外。不用区分当前块的左边相邻块是否存在,也不用区分当前块的上边相邻块是否存在。其它过程与应用场景9类似,在此不再赘述。
[0222]
应用场景13:与应用场景9的实现方式类似,不同之处在于:当前块的周边块存在表示该周边块位于当前块所在图像之内、且该周边块位于当前块所在图像片之内;当前块的周边块不存在表示该周边块位于当前块所在图像之外,或该周边块位于当前块所在图像之内,但该周边块位于当前块所在图像片之外。与应用场景9不同的是,比较方式可以为:
[0223]
针对每个匹配块组,若该匹配块组中的两个周边匹配块中的至少一个不存在可用运动信息,或者,这两个周边匹配块都存在可用运动信息、且这两个周边匹配块的运动信息不同,则该匹配块组的比较结果为不同。若该匹配块组中的两个周边匹配块都存在可用运动信息、且这两个周边匹配块的运动信息相同,则该匹配块组的比较结果为相同。若所有匹配块组的比较结果为相同,禁止将运动信息角度预测模式添加到运动信息预测模式候选列表;若任一匹配块组的比较结果为不同,将运动信息角度预测模式添加到运动信息预测模式候选列表。
[0224]
基于上述比较方式,其它过程与应用场景9类似,在此不再重复赘述。
[0225]
应用场景14:与应用场景9的实现方式类似,不同之处在于:当前块的周边块存在表示该周边块位于当前块所在图像之内、且该周边块位于当前块所在图像片之内;当前块的周边块不存在表示该周边块位于当前块所在图像之外,或该周边块位于当前块所在图像之内,但该周边块位于当前块所在图像片之外。不用区分当前块的左边相邻块是否存在,也不用区分当前块的上边相邻块是否存在。与应用场景9的比较方式不同,其比较方式可以参见应用场景10。基于上述比较方式,其它过程与应用场景9类似,在此不再重复赘述。
[0226]
应用场景15:与应用场景9的实现方式类似,不同之处在于:与应用场景9的比较方式不同,其比较方式可以参见应用场景10。其它过程与应用场景9类似,在此不再重复赘述。
[0227]
应用场景16:与应用场景9的实现方式类似,不同之处在于:不用区分当前块的左边相邻块是否存在,也不用区分当前块的上边相邻块是否存在。与应用场景9的比较方式不同,其比较方式可以参见应用场景10。其它过程与应用场景9类似,在此不再重复赘述。
[0228]
实施例8:在上述实施例中,涉及对周边块的运动信息进行填充,以下结合几个具体应用场景,对运动信息的填充过程进行说明。
[0229]
应用场景1:当前块的周边块存在表示该周边块位于当前块所在图像之内,当前块的周边块不存在表示该周边块位于当前块所在图像之外。若周边块不存在、或周边块尚未解码(即周边块是未编码块)、或周边块是帧内块,则说明周边块不存在可用运动信息。若周
边块存在、且周边块不是未编码块、且周边块不是帧内块,则说明周边块存在可用运动信息。
[0230]
参见图8a所示,当前块的宽度w大于或等于8,当前块的高度h大于或等于8,令m的大小为w/4,n的大小为h/4,当前块左上角的像素点为(x,y),(x

1,y h w

1)所在周边块为a0,a0的大小为4*4。按照顺时针方向对这些周边块进行遍历,每一个4*4的周边块分别记为a1、a2、

、a
2m 2n
,a
2m 2n
是像素点(x w h

1,y

1)所在的周边块。
[0231]
例如,当前块的左边相邻块存在,上边相邻块不存在,则填充过程如下:从a0到a
m n
‑1进行顺序遍历,找到第一个存在可用运动信息的周边块,记为a
i
。若i大于1,则将a
i
之前遍历的周边块的运动信息,全部用a
i
的运动信息进行填充。判断i是否等于m n

1,如果是,则填充结束,退出填充过程;否则,从a
i 1
到a
m n
‑1进行遍历,如果遍历的周边块的运动信息不可用,则使用与该周边块最相邻的前一个周边块的运动信息进行填充,直至遍历结束。
[0232]
参见图8a所示,假设a
i
是a4,则可以将a
i
之前遍历的周边块(如a0、a1、a2、a3)的运动信息,全部用a4的运动信息进行填充。假设遍历到a5时,发现a5不存在可用运动信息,则使用a5最相邻的前一个周边块a4的运动信息进行填充,假设遍历到a6时,发现a6不存在可用运动信息,则使用a6最相邻的前一个周边块a5的运动信息进行填充,以此类推。
[0233]
当前块的左边相邻块不存在,上边相邻块存在,填充过程如下:从a
m n 1
到a
2m 2n
进行顺序遍历,找到第一个存在可用运动信息的周边块,记为a
i
。若i大于m n 1,则将a
i
之前遍历的周边块的运动信息,全部用a
i
的运动信息进行填充。判断i是否等于2m 2n,如果是,则填充结束,退出填充过程;否则,从a
i 1
到a
2m 2n
进行遍历,如果遍历的周边块的运动信息不可用,则使用与该周边块最相邻的前一个周边块的运动信息进行填充,直至遍历结束。
[0234]
当前块的左边相邻块和上边相邻块均存在,填充过程如下:从a0到a
2m 2n
进行顺序遍历,找到第一个存在可用运动信息的周边块,记为a
i
。如果i大于1,则将a
i
之前遍历的周边块的运动信息,全部用a
i
的运动信息进行填充。判断i是否等于2m 2n,如果是,则填充结束,退出填充过程;否则,从a
i 1
到a
2m 2n
进行遍历,如果遍历的周边块的运动信息不可用,则使用与该周边块最相邻的前一个周边块的运动信息进行填充,直至遍历结束。
[0235]
在上述实施例中,不存在可用运动信息的周边块,可以是未编码块,也可以是帧内块。
[0236]
应用场景2:与应用场景1的实现方式类似,不同之处在于:不用区分当前块的左边相邻块是否存在,也不用区分当前块的上边相邻块是否存在,比如说,无论当前块的左边相邻块是否存在、当前块的上边相邻块是否存在,均采用如下方式处理:从a0到a
2m 2n
进行顺序遍历,找到第一个存在可用运动信息的周边块,记为a
i
。如果i大于1,则将a
i
之前遍历的周边块的运动信息,全部用a
i
的运动信息进行填充。判断i是否等于2m 2n,如果是,则填充结束,退出填充过程;否则,从a
i 1
到a
2m 2n
进行遍历,如果遍历的周边块的运动信息不可用,则使用与该周边块最相邻的前一个周边块的运动信息进行填充,直至遍历结束。
[0237]
应用场景3:与应用场景1的实现方式类似,不同之处在于:当前块的周边块存在表示该周边块位于当前块所在图像之内、且该周边块位于当前块所在图像片之内;当前块的周边块不存在表示该周边块位于当前块所在图像之外,或该周边块位于当前块所在图像之内,但该周边块位于当前块所在图像片之外。其它实现过程参见应用场景1,在此不再赘述。
[0238]
应用场景4:与应用场景1的实现方式类似,不同之处在于:当前块的周边块存在表
示该周边块位于当前块所在图像之内、且该周边块位于当前块所在图像片之内;当前块的周边块不存在表示该周边块位于当前块所在图像之外,或该周边块位于当前块所在图像之内,但该周边块位于当前块所在图像片之外。不用区分当前块的左边相邻块是否存在,也不用区分当前块的上边相邻块是否存在。其它实现过程参见应用场景1,在此不再赘述。
[0239]
应用场景5:当前块的周边块存在表示该周边块位于当前块所在图像之内,当前块的周边块不存在表示该周边块位于当前块所在图像之外。若周边块不存在、或周边块尚未解码(即周边块是未编码块)、或周边块是帧内块,则说明周边块不存在可用运动信息。若周边块存在、且周边块不是未编码块、且周边块不是帧内块,则说明周边块存在可用运动信息。
[0240]
当前块的左边相邻块存在,上边相邻块不存在,则填充过程如下:从a0到a
m n
‑1进行顺序遍历,如果遍历的周边块的运动信息不可用,则利用零运动信息或者该周边块的时域对应位置的运动信息,对该周边块的运动信息进行填充。当前块的左边相邻块不存在,上边相邻块存在,则填充过程如下:从a
m n 1
到a
2m 2n
进行顺序遍历,如果遍历的周边块的运动信息不可用,则利用零运动信息或者该周边块的时域对应位置的运动信息,对该周边块的运动信息进行填充。当前块的左边相邻块存在,上边相邻块存在,则填充过程如下:从a0到a
2m 2n
进行顺序遍历,如果遍历的周边块的运动信息不可用,则利用零运动信息或者该周边块的时域对应位置的运动信息,对该周边块的运动信息进行填充。
[0241]
应用场景6:与应用场景5的实现方式类似,不同之处在于:不用区分当前块的左边相邻块是否存在,也不用区分当前块的上边相邻块是否存在,无论当前块的左边相邻块和上边相邻块是否存在,均从a0到a
2m 2n
进行顺序遍历,如果遍历的周边块的运动信息不可用,则利用零运动信息或者该周边块的时域对应位置的运动信息,对该周边块的运动信息进行填充。
[0242]
应用场景7:与应用场景5的实现方式类似,不同之处在于:当前块的周边块存在表示该周边块位于当前块所在图像之内、且该周边块位于当前块所在图像片之内;当前块的周边块不存在表示该周边块位于当前块所在图像之外,或该周边块位于当前块所在图像之内,但该周边块位于当前块所在图像片之外。其它实现过程参见应用场景5,在此不再赘述。
[0243]
应用场景8:与应用场景5的实现方式类似,不同之处在于:当前块的周边块存在表示该周边块位于当前块所在图像之内、且该周边块位于当前块所在图像片之内;当前块的周边块不存在表示该周边块位于当前块所在图像之外,或该周边块位于当前块所在图像之内,但该周边块位于当前块所在图像片之外。不用区分当前块的左边相邻块是否存在,也不用区分当前块的上边相邻块是否存在。其它实现过程参见应用场景5,在此不再赘述。
[0244]
应用场景9

应用场景16:与应用场景1

应用场景8的实现方式类似,不同之处在于:当前块的宽度w大于或等于8,当前块的高度h大于或等于8,令m的大小为w/8,n的大小为h/8,周边块a0的大小为8*8,每一个8*8的周边块分别记为a1、a2、

、a
2m 2n
,即,每个周边块的大小从4*4变更为8*8,其它实现过程参见上述应用场景,在此不再赘述。
[0245]
应用场景17:参见图8b所示,当前块的宽和高都为16,周边块的运动信息按照4*4的最小单位进行保存。假设a
14
、a
15
、a
16
和a
17
为未编码块,则对这些未编码块进行填充,其填充方法可以为以下任意一种:采用邻近块的可用运动信息进行填充;采用默认运动信息进行填充;采用时域参考帧对应位置块的可用运动信息进行填充。当然,上述方式只是示例,
对此不做限制。若当前块的尺寸为其它大小,也可以采用上述方式填充,在此不再赘述
[0246]
应用场景18:参见图8c所示,当前块的宽和高都为16,周围块的运动信息按照4*4的最小单位进行保存。假设a7为帧内块,则需要对帧内块进行填充,其填充方法可以为以下任意一种:采用邻近块的可用运动信息进行填充;采用默认运动信息进行填充;采用时域参考帧对应位置块的可用运动信息进行填充。当然,上述方式只是示例,对此不做限制。若当前块的尺寸为其它大小,也可以采用上述方式填充,在此不再赘述。
[0247]
实施例9:在上述实施例中,涉及利用运动信息角度预测模式进行运动补偿,比如说,根据运动信息角度预测模式的预配置角度指向的多个周边匹配块的运动信息,确定当前块的运动信息,并根据当前块的运动信息确定当前块的预测值。编码端是基于运动信息预测模式候选列表中的每个运动信息角度预测模式,确定当前块的预测值;解码端是基于目标运动信息角度预测模式,确定当前块的预测值。在后续实施例中,以基于某个运动信息角度预测模式确定当前块的预测值为例。以下结合具体应用场景,对运动补偿过程进行说明。
[0248]
应用场景1:基于运动信息角度预测模式对应的预配置角度,从当前块的周边块中选择该预配置角度指向的多个周边匹配块。将当前块划分为至少一个子区域,对此划分方式不做限制。针对当前块的每个子区域,从所述多个周边匹配块中选择与该子区域对应的周边匹配块,并根据选择的周边匹配块的运动信息确定该子区域的运动信息。将当前块的所有子区域的运动信息确定为当前块的运动信息,至此,得到当前块的运动信息。
[0249]
示例性的,可以将选择的周边匹配块的运动信息作为该子区域的运动信息。假设该周边匹配块的运动信息是单向运动信息,则可以将该单向运动信息作为该子区域的运动信息;假设该周边匹配块的运动信息是双向运动信息,则可以将该双向运动信息作为该子区域的运动信息,或者,将该双向运动信息中的前向运动信息作为该子区域的运动信息,或者,将该双向运动信息中的后向运动信息作为该子区域的运动信息。
[0250]
示例性的,子区域划分信息可以与运动信息角度预测模式无关,如根据当前块的尺寸确定当前块的子区域划分信息,根据该子区域划分信息将当前块划分为至少一个子区域。例如,若当前块的尺寸满足:宽大于或等于预设尺寸参数(根据经验配置,如8),高大于或等于预设尺寸参数,则子区域的大小为8*8,即按照8*8的方式将当前块划分为至少一个子区域。
[0251]
示例性的,子区域划分信息可以与运动信息角度预测模式有关,例如,当运动信息角度预测模式为水平向上预测模式、水平向下预测模式或垂直向右预测模式时,若当前块的宽大于或等于预设尺寸参数,当前块的高大于或等于预设尺寸参数,则子区域的大小为8*8;若当前块的宽小于预设尺寸参数,或,当前块的高小于预设尺寸参数,则子区域的大小为4*4。当运动信息角度预测模式为水平预测模式时,若当前块的宽大于预设尺寸参数,则子区域的大小为当前块的宽*4,或者,子区域的大小为4*4;若当前块的宽等于预设尺寸参数,且当前块的高大于或等于预设尺寸参数,则子区域的大小为8*8;若当前块的宽小于预设尺寸参数,则子区域的大小为4*4。当运动信息角度预测模式为垂直预测模式时,若当前块的高大于预设尺寸参数,则子区域的大小为4*当前块的高,或者,子区域的大小为4*4;若当前块的高等于预设尺寸参数,且当前块的宽大于或等于预设尺寸参数,则子区域的大小为8*8;若当前块的高小于预设尺寸参数,则子区域的大小为4*4。当运动信息角度预测模式
为水平预测模式时,若当前块的宽大于8,则子区域的大小也可以为4*4。当运动信息角度预测模式为垂直预测模式时,若当前块的高大于8,则子区域的大小也可以为4*4。
[0252]
当然,上述只是几个示例,对此不做限制,预设尺寸参数可以是8,也可以大于8。
[0253]
应用场景2:基于运动信息角度预测模式对应的预配置角度,从当前块的周边块中选择该预配置角度指向的多个周边匹配块。按照8*8的方式将当前块划分为至少一个子区域(即子区域的大小为8*8)。针对当前块的每个子区域,从所述多个周边匹配块中选择与该子区域对应的周边匹配块,并根据选择的周边匹配块的运动信息确定该子区域的运动信息。将当前块的所有子区域的运动信息确定为当前块的运动信息,至此,得到当前块的运动信息。
[0254]
应用场景3:参见图9a所示,当前块的宽度w(4)乘以当前块的高度h(8)小于等于32,针对当前块内的每个4*4的子区域,按照一定角度进行运动补偿。若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息确定为子区域的运动信息,或者,将双向运动信息中的前向运动信息或者后向运动信息确定为子区域的运动信息。
[0255]
根据图9a,当前块的尺寸为4*8,当前块的目标运动信息预测模式为水平模式时,划分两个尺寸一致的子区域,其中一个4*4的子区域对应周边匹配块a1,根据a1的运动信息,确定该4*4的子区域的运动信息。另一个4*4的子区域对应周边匹配块a2,根据a2的运动信息,确定该4*4的子区域的运动信息。当前块的目标运动信息预测模式为垂直模式时,划分两个尺寸一致的子区域,其中一个4*4的子区域对应周边匹配块b1,根据b1的运动信息,确定该4*4的子区域的运动信息。另一个4*4的子区域对应周边匹配块b1,根据b1的运动信息,确定该4*4的子区域的运动信息。当前块的目标运动信息预测模式为水平向上时,划分两个尺寸一致的子区域,其中一个4*4的子区域对应周边匹配块e,根据e的运动信息,确定该4*4的子区域的运动信息。另一个4*4的子区域对应周边匹配块a1,根据a1的运动信息,确定该4*4的子区域的运动信息。当前块的目标运动信息预测模式为水平向下时,划分两个尺寸一致的子区域,其中一个4*4的子区域对应周边匹配块a2,根据a2的运动信息,确定该4*4的子区域的运动信息。另一个4*4的子区域对应周边匹配块a3,根据a3的运动信息,确定该4*4的子区域的运动信息。当前块的目标运动信息预测模式为水平向下时,划分两个尺寸一致的子区域,其中一个4*4的子区域对应周边匹配块b2,根据b2的运动信息,确定该4*4的子区域的运动信息。另一个4*4的子区域对应周边匹配块b3,根据b3的运动信息,确定该4*4的子区域的运动信息。
[0256]
应用场景4:参见图9b所示,当前块的宽度w小于8,当前块的高度h大于8,则可以采用如下方式对当前块内的每个子区域进行运动补偿:如果角度预测模式为针对垂直预测模式,将每个4*h的子区域按照垂直角度进行运动补偿。如果角度预测模式为其它角度预测模式(如水平预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式等),则针对当前块内的每个4*4的子区域,可以按照一定角度进行运动补偿。
[0257]
根据图9b,当前块的尺寸为4*16,当前块的目标运动信息预测模式为水平模式时,划分4个尺寸为4*4的子区域,其中一个4*4的子区域对应周边匹配块a1,根据a1的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块a2,根据a2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块a3,根据a3
的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块a4,根据a4的运动信息,确定该4*4的子区域的运动信息。当前块的目标运动信息预测模式为垂直模式时,可以划分4个尺寸为4*4的子区域,每一个4*4的子区域都对应周边匹配块b1,根据b1的运动信息,确定每一个4*4的子区域的运动信息。四个子区域的运动信息都相同,所以在该实施例中也可以不对当前块进行子区域划分,该当前块本身作为一个子区域对应一个周边匹配块b1,根据b1的运动信息,确定当前块的运动信息。
[0258]
当前块的目标运动信息预测模式为水平向上模式时,划分4个尺寸为4*4的子区域,其中一个4*4的子区域对应周边匹配块e,根据e的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块a1,根据a1的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块a2,根据a2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块a3,根据a3的运动信息,确定该4*4的子区域的运动信息。当前块的目标运动信息预测模式为水平向下模式时,划分4个尺寸为4*4的子区域,一个4*4的子区域对应周边匹配块a2,根据a2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块a3,根据a3的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块a5,根据a4的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块a5,根据a5的运动信息,确定该4*4的子区域的运动信息。当前块的目标运动信息预测模式为水平向下模式时,划分4个尺寸为4*4的子区域,一个4*4的子区域对应周边匹配块b2,根据b2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块b3,根据b3的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块b4,根据b4的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块b5,根据b5的运动信息,确定该4*4的子区域的运动信息。
[0259]
应用场景5:参见图9c所示,当前块的宽度w大于8,当前块的高度h小于8,则可以采用如下方式对当前块内的每个子区域进行运动补偿:如果角度预测模式为水平预测模式,将每个w*4的子区域按照水平角度进行运动补偿。如果角度预测模式为其它角度预测模式,针对当前块内的每个4*4的子区域,则可以按照一定角度进行运动补偿。
[0260]
根据图9c,当前块的尺寸为16*4,当前块的目标运动信息预测模式为水平模式时,可以划分4个尺寸为4*4的子区域,每一个4*4的子区域都对应周边匹配块a1,根据a1的运动信息,确定每一个4*4的子区域的运动信息。四个子区域的运动信息都相同,所以在该实施例中也可以不对当前块进行子区域划分,该当前块本身作为一个子区域对应一个周边匹配块a1,根据a1的运动信息,确定当前块的运动信息。当前块的目标运动信息预测模式为垂直模式时,划分4个尺寸为4*4的子区域,其中一个4*4的子区域对应周边匹配块b1,根据b1的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块b2,根据b2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块b3,根据b3的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块b4,根据b4的运动信息,确定该4*4的子区域的运动信息。
[0261]
当前块的目标运动信息预测模式为水平向上模式时,划分4个尺寸为4*4的子区域,其中一个4*4的子区域对应周边匹配块e,根据e的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块b1,根据b1的运动信息,确定该4*4的子区域的
运动信息。其中一个4*4的子区域对应周边匹配块b2,根据b2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块b3,根据b3的运动信息,确定该4*4的子区域的运动信息。当前块的目标运动信息预测模式为水平向下模式时,划分4个尺寸为4*4的子区域,其中一个4*4的子区域对应周边匹配块a2,根据a2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块a3,根据a3的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块a4,根据a4的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块a5,根据a5的运动信息,确定该4*4的子区域的运动信息。当前块的目标运动信息预测模式为垂直向右模式时,划分4个尺寸为4*4的子区域,其中一个4*4的子区域对应周边匹配块b2,根据b2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块b3,根据b3的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块b4,根据b4的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块b5,根据b5的运动信息,确定该4*4的子区域的运动信息。
[0262]
应用场景6:当前块的宽度w等于8,当前块的高度h等于8,则对当前块内的每个8*8的子区域(即子区域就是当前块本身),按照一定角度进行运动补偿。若子区域对应多个周边匹配块,针对子区域的运动信息,可以按照对应的角度,从多个周边匹配块的运动信息中选用任意一个周边匹配块的运动信息。
[0263]
例如,参见图9d所示,针对水平预测模式,可以选择周边匹配块a1的运动信息,也可以选择周边匹配块a2的运动信息。参见图9e所示,针对垂直预测模式,可以选择周边匹配块b1的运动信息,也可以选择周边匹配块b2的运动信息。参见图9f所示,针对水平向上预测模式,可以选择周边匹配块e的运动信息,选择周边匹配块b1的运动信息,可以选择周边匹配块a1的运动信息。参见图9g所示,针对水平向下预测模式,可以选择周边匹配块a2的运动信息,选择周边匹配块a3的运动信息,可以选择周边匹配块a4的运动信息。参见图9h所示,针对垂直向右预测模式,可以选择周边匹配块b2的运动信息,选择周边匹配块b3的运动信息,可以选择周边匹配块b4的运动信息。
[0264]
根据图9d,当前块的尺寸为8*8,当前块的目标运动信息预测模式为水平模式时,划分尺寸为8*8的子区域,子区域对应周边匹配块a1,根据a1的运动信息,确定该子区域的运动信息。或者,子区域对应周边匹配块a2,根据a2的运动信息,确定该子区域的运动信息。
[0265]
根据图9e,当前块的尺寸为8*8,当前块的目标运动信息预测模式为垂直模式时,划分一个尺寸为8*8的子区域,这个子区域对应周边匹配块b1,根据b1的运动信息,确定该子区域的运动信息。或者,这个子区域对应周边匹配块b2,根据b2的运动信息,确定该子区域的运动信息。
[0266]
根据图9f,当前块的尺寸为8*8,当前块的目标运动信息预测模式为水平向上模式时,划分尺寸为8*8的子区域,子区域对应周边匹配块e,根据e的运动信息,确定该子区域的运动信息。或者,子区域对应周边匹配块b1,根据b1的运动信息,确定该子区域的运动信息。或者,子区域对应周边匹配块a1,根据a1的运动信息,确定该子区域的运动信息。
[0267]
根据图9g,当前块的尺寸为8*8,当前块的目标运动信息预测模式为水平向下模式时,划分尺寸为8*8的子区域,子区域对应周边匹配块a2,根据a2的运动信息,确定该子区域的运动信息。或者,子区域对应周边匹配块a3,根据a3的运动信息,确定该子区域的运动信
息。或者,子区域对应周边匹配块a4,根据a4的运动信息,确定该子区域的运动信息。
[0268]
根据图9h,当前块的尺寸为8*8,当前块的目标运动信息预测模式为垂直向右模式时,划分尺寸为8*8的子区域,子区域对应周边匹配块b2,根据b2的运动信息,确定该子区域的运动信息。或者,子区域对应周边匹配块b3,根据b3的运动信息,确定该子区域的运动信息。或者,子区域对应周边匹配块b4,根据b4的运动信息,确定该子区域的运动信息。
[0269]
应用场景7:当前块的宽度w可以大于等于16,当前块的高度h可以等于8,基于此,可以采用如下方式对当前块内的每个子区域进行运动补偿:如果角度预测模式为水平预测模式,将每个w*4的子区域按照水平角度进行运动补偿。如果角度预测模式为其它角度预测模式,针对当前块内的每个8*8的子区域,按照一定角度进行运动补偿。针对每个8*8的子区域,若子区域对应多个周边匹配块,针对子区域的运动信息,从多个周边匹配块的运动信息中选用任意一个周边匹配块的运动信息。例如,参见图9i所示,针对水平预测模式,针对第一个w*4的子区域,可以选择周边匹配块a1的运动信息,针对第二个w*4的子区域,可以选择周边匹配块a2的运动信息。参见图9j所示,针对垂直预测模式,针对第一个8*8的子区域,可以选择周边匹配块b1的运动信息,可以选择周边匹配块b2的运动信息。针对第二个8*8的子区域,可以选择周边匹配块b3的运动信息,可以选择周边匹配块b4的运动信息。其它角度预测模式类似,在此不再赘述。
[0270]
根据图9i,当前块的尺寸为16*8,当前块的目标运动信息预测模式为水平模式时,划分2个尺寸为16*4的子区域,其中一个16*4的子区域对应周边匹配块a1,根据a1的运动信息,确定该16*4的子区域的运动信息。另一个16*4的子区域对应周边匹配块a2,根据a2的运动信息,确定该16*4的子区域的运动信息。
[0271]
根据图9j,当前块的尺寸为16*8,目标运动信息预测模式为垂直模式时,划分2个尺寸为8*8的子区域,其中一个8*8的子区域对应周边匹配块b1或者b2,根据b1或者b2的运动信息,确定该8*8的子区域的运动信息。另一个8*8的子区域对应周边匹配块b3或者b4,根据b3或者b4的运动信息,确定该8*8的子区域的运动信息。
[0272]
应用场景8:当前块的宽度w可以等于8,当前块的高度h可以大于等于16,基于此,可以采用如下方式对当前块内的每个子区域进行运动补偿:如果角度预测模式为垂直预测模式,将每个4*h的子区域按照垂直角度进行运动补偿。如果角度预测模式为其它角度预测模式,针对当前块内的每个8*8的子区域,按照一定角度进行运动补偿。针对每个8*8的子区域,若子区域对应多个周边匹配块,针对子区域的运动信息,从多个周边匹配块的运动信息中选用任意一个周边匹配块的运动信息。例如,参见图9k所示,针对垂直预测模式,针对第一个4*h的子区域,可以选择周边匹配块b1的运动信息,针对第二个4*h的子区域,可以选择周边匹配块b2的运动信息。参见图9l所示,针对水平预测模式,针对第一个8*8的子区域,可以选择周边匹配块a1的运动信息,可以选择周边匹配块a2的运动信息。针对第二个8*8的子区域,可以选择周边匹配块a1的运动信息,可以选择周边匹配块a2的运动信息。其它角度预测模式类似,在此不再赘述。
[0273]
根据图9k,当前块的尺寸为8*16,当前块的目标运动信息预测模式为垂直模式时,划分2个尺寸为4*16的子区域,其中一个4*16的子区域对应周边匹配块b1,根据b1的运动信息,确定该4*16的子区域的运动信息。另一个4*16的子区域对应周边匹配块b2,根据b2的运动信息,确定该4*16的子区域的运动信息。
[0274]
根据图9l,当前块的尺寸为16*8,目标运动信息预测模式为水平模式时,划分2个尺寸为8*8的子区域,一个8*8的子区域对应周边匹配块a1或者a2,根据对应周边匹配块的运动信息,确定该8*8的子区域的运动信息。另一个8*8的子区域对应周边匹配块a1或a2,根据对应周边匹配块的运动信息,确定该8*8的子区域的运动信息。
[0275]
应用场景9:当前块的宽度w可以大于等于16,当前块的高度h可以大于等于16,基于此,可以采用如下方式对当前块内的每个子区域进行运动补偿:如果角度预测模式为垂直预测模式,将每个4*h的子区域按照垂直角度进行运动补偿。如果角度预测模式为水平预测模式,将每个w*4的子区域按照水平角度进行运动补偿。如果角度预测模式为其它角度预测模式,针对当前块内的每个8*8的子区域,按照一定角度进行运动补偿。针对每个8*8的子区域,若子区域对应多个周边匹配块,针对子区域的运动信息,从多个周边匹配块的运动信息中选用任意一个周边匹配块的运动信息。
[0276]
参见图9m所示,针对垂直预测模式,针对第一个4*h的子区域,可以选择周边匹配块b1的运动信息,针对第二个4*h的子区域,可以选择周边匹配块b2的运动信息,针对第三个4*h的子区域,可以选择周边匹配块b3的运动信息,针对第四个4*h的子区域,可以选择周边匹配块b4的运动信息。针对水平预测模式,针对第一个w*4的子区域,选择周边匹配块a1的运动信息,针对第二个w*4的子区域,选择周边匹配块a2的运动信息,针对第三个w*4的子区域,选择周边匹配块a3的运动信息,针对第四个w*4的子区域,选择周边匹配块a4的运动信息。其它角度预测模式类似,在此不再赘述。
[0277]
根据图9m,当前块的尺寸为16*16,目标运动信息预测模式为垂直模式时,划分4个尺寸为4*16的子区域,一个4*16的子区域对应周边匹配块b1,根据b1的运动信息,确定4*16的子区域的运动信息。一个4*16的子区域对应周边匹配块b2,根据b2的运动信息,确定4*16的子区域的运动信息。一个4*16的子区域对应周边匹配块b3,根据b3的运动信息,确定该4*16的子区域的运动信息。一个4*16的子区域对应周边匹配块b4,根据b4的运动信息,确定4*16的子区域的运动信息。
[0278]
根据图9m,当前块的尺寸为16*16,当前块的目标运动信息预测模式为水平模式时,划分4个尺寸为16*4的子区域,其中一个16*4的子区域对应周边匹配块a1,根据a1的运动信息,确定该16*4的子区域的运动信息。其中一个16*4的子区域对应周边匹配块a2,根据a2的运动信息,确定该16*4的子区域的运动信息。其中一个16*4的子区域对应周边匹配块a3,根据a3的运动信息,确定该16*4的子区域的运动信息。其中一个16*4的子区域对应周边匹配块a4,根据a4的运动信息,确定该16*4的子区域的运动信息。
[0279]
应用场景10:当前块的宽度w可以大于等于8,当前块的高度h可以大于等于8,则对当前块内的每个8*8的子区域进行运动补偿。参见图9n所示,针对每个8*8的子区域,若子区域对应多个周边匹配块,针对子区域的运动信息,从多个周边匹配块的运动信息中选用任意一个周边匹配块的运动信息。子区域划分尺寸与运动信息角度预测模式无关,无论是哪种运动信息角度预测模式,只要宽大于等于8,高大于等于8,子区域划分尺寸可以为8*8。
[0280]
根据图9n,当前块的尺寸为16*16,当前块的目标运动信息预测模式为水平模式时,划分4个尺寸为8*8的子区域,其中一个8*8的子区域对应周边匹配块a1或a2,根据a1或a2的运动信息,确定该8*8的子区域的运动信息。其中一个8*8的子区域对应周边匹配块a1或a2,根据a1或a2的运动信息,确定该8*8的子区域的运动信息。其中一个8*8的子区域对应
周边匹配块a3或a4,根据a3或a4的运动信息,确定该8*8的子区域的运动信息。其中一个8*8的子区域对应周边匹配块a3或a4,根据a3或a4的运动信息,确定该8*8的子区域的运动信息。当前块的目标运动信息预测模式为水平模式时,划分4个尺寸为8*8的子区域,其中一个8*8的子区域对应周边匹配块b1或b2,根据b1或b2的运动信息,确定该8*8的子区域的运动信息。其中一个8*8的子区域对应周边匹配块b1或b2,根据b1或b2的运动信息,确定该8*8的子区域的运动信息。其中一个8*8的子区域对应周边匹配块b3或b4,根据b3或b4的运动信息,确定该8*8的子区域的运动信息。其中一个8*8的子区域对应周边匹配块b3或b4,根据b3或b4的运动信息,确定该8*8的子区域的运动信息。当前块的目标运动信息预测模式为水平向上模式时,可以划分4个尺寸为8*8的子区域。然后,针对每个8*8的子区域,可以确定该8*8的子区域对应的周边匹配块(e、b2或a2),对此确定方式不做限制,并根据周边匹配块的运动信息,确定该8*8的子区域的运动信息。当前块的目标运动信息预测模式为水平向下模式时,划分4个尺寸为8*8的子区域。然后,针对每个8*8的子区域,可以确定该8*8的子区域对应的周边匹配块(a3、a5或a7),对此不做限制,并根据周边匹配块的运动信息,确定该8*8的子区域的运动信息。当前块的目标运动信息预测模式为垂直向右模式时,划分4个尺寸为8*8的子区域。然后,针对每个8*8的子区域,可以确定该8*8的子区域对应的周边匹配块(b3、b5或b7),对此不做限制,并根据周边匹配块的运动信息,确定该8*8的子区域的运动信息。
[0281]
应用场景11:当前块的宽度w大于等于8并且高度h大于等于8时,则对当前块内每个8*8的子区域进行运动补偿,针对每个子区域来说,按照对应的角度选用周围匹配块的几个运动信息中的任意一个,参见图9n所示。
[0282]
基于与上述方法同样的申请构思,本技术实施例提出一种编解码装置,应用于解码端或编码端,如图10a所示,为所述装置的结构图,包括:
[0283]
选择模块111,用于针对当前块的任意一个运动信息角度预测模式,基于所述运动信息角度预测模式的预配置角度,从所述当前块的周边块中选择所述预配置角度指向的多个周边匹配块;所述多个周边匹配块至少包括待遍历的第一周边匹配块和第二周边匹配块;
[0284]
处理模块112,用于针对待遍历的第一周边匹配块和第二周边匹配块,若第一周边匹配块和第二周边匹配块都存在可用运动信息,当所述第一周边匹配块和所述第二周边匹配块的运动信息不同时,将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
[0285]
所述处理模块112还用于:若所述第一周边匹配块和所述第二周边匹配块中的至少一个不存在可用运动信息,则将所述运动信息角度预测模式添加到所述当前块的运动信息预测模式候选列表。
[0286]
所述处理模块112还用于:若所述第一周边匹配块和所述第二周边匹配块中的至少一个不存在可用运动信息,则禁止将所述运动信息角度预测模式添加到所述当前块的运动信息预测模式候选列表。
[0287]
所述处理模块112还用于:若所述第一周边匹配块和所述第二周边匹配块都存在可用运动信息,当所述第一周边匹配块和所述第二周边匹配块的运动信息相同时,禁止将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
[0288]
所述处理模块112还用于:若周边匹配块是位于当前块所在图像之外或者周边匹
配块是位于当前块所在图像片之外,则确定该周边匹配块不存在可用运动信息;
[0289]
若周边匹配块是未编码块,则确定该周边匹配块不存在可用运动信息;
[0290]
若周边匹配块是帧内块,则确定该周边匹配块不存在可用运动信息;
[0291]
若周边匹配块是帧间已编码块,则确定该周边匹配块存在可用运动信息。
[0292]
所述处理模块112还用于:若所述第一周边匹配块和所述第二周边匹配块中存在帧内块和/或未编码块,则将所述运动信息角度预测模式添加到所述当前块的运动信息预测模式候选列表;或者,若所述第一周边匹配块和所述第二周边匹配块中存在帧内块和/或未编码块,则禁止将所述运动信息角度预测模式添加到所述当前块的运动信息预测模式候选列表;或者,
[0293]
若所述第一周边匹配块和所述第二周边匹配块中有至少一个位于当前块所在图像之外或者位于当前块所在图像片之外,则禁止将所述运动信息角度预测模式添加到所述当前块的运动信息预测模式候选列表。
[0294]
所述处理模块112还用于:若所述多个周边匹配块至少包括待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块,针对待遍历的第一周边匹配块和第二周边匹配块,若所述第一周边匹配块和所述第二周边匹配块都存在可用运动信息,且所述第一周边匹配块和所述第二周边匹配块的运动信息相同,则继续判断所述第二周边匹配块和所述第三周边匹配块是否都存在可用运动信息;若所述第二周边匹配块和所述第三周边匹配块都存在可用运动信息,则当所述第二周边匹配块和所述第三周边匹配块的运动信息不同时,将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
[0295]
所述处理模块112还用于:若所述多个周边匹配块至少包括待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块,针对待遍历的第一周边匹配块和第二周边匹配块,若所述第一周边匹配块和所述第二周边匹配块都存在可用运动信息,且所述第一周边匹配块和所述第二周边匹配块的运动信息相同,则继续判断所述第二周边匹配块和所述第三周边匹配块是否都存在可用运动信息;若所述第二周边匹配块和所述第三周边匹配块都存在可用运动信息,则当所述第二周边匹配块和所述第三周边匹配块的运动信息相同时,禁止将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
[0296]
所述处理模块112还用于:若所述多个周边匹配块至少包括待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块,针对待遍历的第一周边匹配块和第二周边匹配块,若所述第一周边匹配块和所述第二周边匹配块都存在可用运动信息,且所述第一周边匹配块和所述第二周边匹配块的运动信息不同,则将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
[0297]
所述处理模块112还用于:若所述多个周边匹配块至少包括待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块,针对待遍历的第一周边匹配块和第二周边匹配块,若所述第一周边匹配块和所述第二周边匹配块中的至少一个不存在可用运动信息,则将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表;或者,禁止将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
[0298]
所述处理模块112还用于:若所述多个周边匹配块至少包括待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块,针对待遍历的第一周边匹配块和第二周边匹配块,若所述第一周边匹配块和所述第二周边匹配块中的至少一个不存在可用运动信
息,则继续判断所述第二周边匹配块和所述第三周边匹配块是否都存在可用运动信息;若所述第二周边匹配块和所述第三周边匹配块都存在可用运动信息,则当所述第二周边匹配块和所述第三周边匹配块的运动信息不同时,将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
[0299]
所述处理模块112还用于:若所述多个周边匹配块至少包括待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块,针对待遍历的第一周边匹配块和第二周边匹配块,若所述第一周边匹配块和所述第二周边匹配块中的至少一个不存在可用运动信息,则继续判断所述第二周边匹配块和所述第三周边匹配块是否都存在可用运动信息;若所述第二周边匹配块和所述第三周边匹配块都存在可用运动信息,则当所述第二周边匹配块和所述第三周边匹配块的运动信息相同时,禁止将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
[0300]
所述处理模块112还用于:若所述多个周边匹配块至少包括待依次遍历的第一周边匹配块、第二周边匹配块和第三周边匹配块,针对待遍历的第一周边匹配块和第二周边匹配块,若所述第一周边匹配块和所述第二周边匹配块中的至少一个不存在可用运动信息,则继续判断所述第二周边匹配块和所述第三周边匹配块是否都存在可用运动信息;
[0301]
若所述第二周边匹配块和所述第三周边匹配块中的至少一个不存在可用运动信息,则将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表,或者,禁止将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表。
[0302]
基于与上述方法同样的申请构思,本技术实施例提出一种编解码装置,应用于编码端,如图10b所示,为所述装置的结构图,包括:
[0303]
填充模块121,用于构建当前块的运动信息预测模式候选列表,若所述运动信息预测模式候选列表中存在运动信息角度预测模式,则对所述当前块的周边块的运动信息进行填充;
[0304]
确定模块122,用于针对所述运动信息预测模式候选列表中的每个运动信息角度预测模式,根据所述运动信息角度预测模式的预配置角度指向的多个周边匹配块的运动信息,确定当前块的运动信息;根据所述当前块的运动信息,确定所述当前块的预测值。
[0305]
所述填充模块121具体用于:对所述当前块的周边块,按照从当前块的左边周边块到上边周边块的遍历顺序进行遍历,遍历出首个存在可用运动信息的周边块;若该周边块之前包括不存在可用运动信息的第一周边块,则将该周边块的运动信息填充给所述第一周边块;继续遍历该周边块之后的周边块,若该周边块之后的周边块中包括不存在可用运动信息的第二周边块,则将遍历过的第二周边块的上一个周边块的运动信息填充给所述第二周边块。
[0306]
基于与上述方法同样的申请构思,本技术实施例提出一种编解码装置,应用于解码端,如图10c所示,为所述装置的结构图,包括:
[0307]
选择模块131,用于构建当前块的运动信息预测模式候选列表,从所述运动信息预测模式候选列表中选择所述当前块的目标运动信息预测模式;
[0308]
处理模块132,用于若所述目标运动信息预测模式为目标运动信息角度预测模式,则对所述当前块的周边块的运动信息进行填充;
[0309]
确定模块133,用于根据所述目标运动信息角度预测模式的预配置角度指向的多
个周边匹配块的运动信息确定当前块的运动信息;根据当前块的运动信息确定所述当前块的预测值。
[0310]
所述处理模块132具体用于:对所述当前块的周边块,按照从当前块的左边周边块到上边周边块的遍历顺序进行遍历,遍历出首个存在可用运动信息的周边块;若该周边块之前包括不存在可用运动信息的第一周边块,则将该周边块的运动信息填充给所述第一周边块;继续遍历该周边块之后的周边块,若该周边块之后的周边块中包括不存在可用运动信息的第二周边块,则将遍历过的第二周边块的上一个周边块的运动信息填充给所述第二周边块。
[0311]
本技术实施例提供的解码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图11a所示。包括:处理器141和机器可读存储介质142,所述机器可读存储介质142存储有能够被所述处理器141执行的机器可执行指令;所述处理器141用于执行机器可执行指令,以实现本技术上述示例公开的方法。
[0312]
例如,所述处理器141用于执行机器可执行指令,以实现如下步骤:
[0313]
针对当前块的任意一个运动信息角度预测模式,基于所述运动信息角度预测模式的预配置角度,从所述当前块的周边块中选择所述预配置角度指向的多个周边匹配块;所述多个周边匹配块至少包括待遍历的第一周边匹配块和第二周边匹配块;
[0314]
针对待遍历的第一周边匹配块和第二周边匹配块,若所述第一周边匹配块和所述第二周边匹配块都存在可用运动信息,当所述第一周边匹配块和所述第二周边匹配块的运动信息不同时,将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表;或者,
[0315]
所述处理器141用于执行机器可执行指令,以实现如下步骤:
[0316]
构建当前块的运动信息预测模式候选列表,从所述运动信息预测模式候选列表中选择所述当前块的目标运动信息预测模式;若所述目标运动信息预测模式为目标运动信息角度预测模式,则对所述当前块的周边块的运动信息进行填充;
[0317]
根据所述目标运动信息角度预测模式的预配置角度指向的多个周边匹配块的运动信息,确定当前块的运动信息;根据所述当前块的运动信息,确定所述当前块的预测值。
[0318]
本技术实施例提供的编码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图11b所示。包括:处理器151和机器可读存储介质152,所述机器可读存储介质152存储有能够被所述处理器151执行的机器可执行指令;所述处理器151用于执行机器可执行指令,以实现本技术上述示例公开的方法。
[0319]
例如,所述处理器151用于执行机器可执行指令,以实现如下步骤:
[0320]
针对当前块的任意一个运动信息角度预测模式,基于所述运动信息角度预测模式的预配置角度,从所述当前块的周边块中选择所述预配置角度指向的多个周边匹配块;所述多个周边匹配块至少包括待遍历的第一周边匹配块和第二周边匹配块;
[0321]
针对待遍历的第一周边匹配块和第二周边匹配块,若所述第一周边匹配块和所述第二周边匹配块都存在可用运动信息,当所述第一周边匹配块和所述第二周边匹配块的运动信息不同时,将所述运动信息角度预测模式添加到当前块的运动信息预测模式候选列表;或者,
[0322]
所述处理器151用于执行机器可执行指令,以实现如下步骤:
[0323]
构建当前块的运动信息预测模式候选列表,若所述运动信息预测模式候选列表中存在运动信息角度预测模式,则对所述当前块的周边块的运动信息进行填充;
[0324]
针对所述运动信息预测模式候选列表中的每个运动信息角度预测模式,根据所述运动信息角度预测模式的预配置角度指向的多个周边匹配块的运动信息,确定当前块的运动信息;
[0325]
根据所述当前块的运动信息,确定所述当前块的预测值。
[0326]
基于与上述方法同样的申请构思,本技术实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本技术上述示例公开的编解码方法。示例性的,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0327]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0328]
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0329]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0330]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0331]
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
[0332]
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图
一个方框或多个方框中指定的功能的步骤。
[0333]
以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

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

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

相关文献