一种运动信息确定方法、装置及其设备与流程

文档序号:32213021发布日期:2022-11-16 06:40阅读:41来源:国知局
一种运动信息确定方法、装置及其设备与流程

1.本技术涉及编解码技术领域,尤其是涉及一种运动信息确定方法及其设备。


背景技术:

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


技术实现要素:

6.本技术提供了一种运动信息确定确定方法及其设备,可以节约大量比特。
7.本技术提供一种运动信息确定方法,应用于解码端,包括:
8.创建当前图像块的运动信息预测模式候选列表;其中,所述运动信息预测模式候选列表包括至少一个运动信息预测模式;
9.从所述运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为所述当前图像块的目标运动信息预测模式;
10.根据所述目标运动信息预测模式确定所述当前图像块的目标运动信息。
11.本技术提供一种运动信息确定方法,应用于编码端,包括:
12.创建当前图像块的运动信息预测模式候选列表;其中,所述运动信息预测模式候选列表包括至少一个运动信息预测模式;
13.从所述运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为所述当前图像块的目标运动信息预测模式。
14.本技术提供一种解码方法,应用于解码端,包括:
15.创建当前图像块的运动信息预测模式候选列表;其中,所述运动信息预测模式候选列表包括至少一个运动信息预测模式;
16.从所述运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为所述当前图像块的目标运动信息预测模式;
17.根据所述目标运动信息预测模式确定所述当前图像块的目标运动信息;
18.根据所述目标运动信息对接收的编码比特流进行解码。
19.本技术提供一种编码方法,应用于编码端,包括:
20.创建当前图像块的运动信息预测模式候选列表;其中,所述运动信息预测模式候选列表包括至少一个运动信息预测模式;
21.从所述运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为所述当前图像块的目标运动信息预测模式;
22.根据所述目标运动信息预测模式对比特流进行编码得到编码比特流。
23.本技术提供一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述的运动信息确定方法步骤。
24.本技术提供一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述的预测模式确定方法步骤。
25.由以上技术方案可见,本技术实施例中,可以确定当前图像块的目标运动信息预测模式,并根据目标运动信息预测模式确定当前图像块的目标运动信息,不需要对当前图像块进行划分,有效解决子块划分带来的比特开销,在不对当前图像块进行子块划分的基础上,为当前图像块的每个指定区域提供运动信息,且当前图像块的不同指定区域可以对应相同或者不同的运动信息,从而带来编码性能的提高,解决了传输大量运动矢量的问题,可以节约大量比特。
附图说明
26.为了更加清楚地说明本技术实施例或者现有技术中的技术方案,下面将对本技术实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本技术实施例的这些附图获得其他的附图。
27.图1是本技术一种实施方式中的视频编码框架的示意图;
28.图2a和图2b是本技术一种实施方式中的划分方式的示意图;
29.图3a和图3b是merge模式和amvp模式的处理示意图;
30.图4是本技术一种实施方式中的应用场景示意图;
31.图5是本技术一种实施方式中的运动信息确定方法的流程图;
32.图6是本技术一种实施方式中的预测模式确定方法的流程图;
33.图7是本技术一种实施方式中的运动信息确定方法的流程图;
34.图8a-图8d是本技术一种实施方式中的匹配块的示意图;
35.图9a-图9g是本技术一种实施方式中的匹配块的示意图;
36.图10和图11是编码端和解码端的处理流程示意图;
37.图12是本技术一种实施方式中的运动信息确定装置的结构图;
38.图13是本技术一种实施方式中的预测模式确定装置的结构图;
39.图14是本技术一种实施方式中的解码端设备的硬件结构图;
40.图15是本技术一种实施方式中的编码端设备的硬件结构图。
具体实施方式
41.在本技术实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本技术。本技术和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
42.应当理解,尽管在本技术实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
43.本技术实施例提出一种运动信息确定、预测模式确定方法,涉及如下概念:
44.运动矢量(motion vector,mv):在帧间编码中,使用运动矢量表示当前帧视频图像的当前图像块与参考帧视频图像的参考图像块之间的相对位移,例如,当前帧的视频图像a与参考帧的视频图像b存在很强的时域相关性,在传输视频图像a的图像块a1(当前图像块)时,可以在视频图像b中进行运动搜索,找到与图像块a1最匹配的图像块b1(参考图像块),并确定图像块a1与图像块b1之间的相对位移,该相对位移也就是图像块a1的运动矢量。其中,每个划分的图像块都有相应的运动矢量传送到解码端,如果对每个图像块的运动矢量进行独立编码和传输,特别是划分成小尺寸的大量图像块,则消耗相当多的比特。为降低用于编码运动矢量的比特数,可以利用相邻图像块之间的空间相关性,根据相邻已编码图像块的运动矢量对当前待编码图像块的运动矢量进行预测,然后对预测差进行编码,这样可以有效降低表示运动矢量的比特数。
45.进一步的,在对当前图像块的运动矢量编码过程中,可以先使用相邻已编码图像块的运动矢量预测当前宏块的运动矢量,然后对该运动矢量的预测值(mvp,motion vector prediction)与运动矢量的真正估值之间的差值(mvd,motionvector difference)进行编码,从而有效降低运动矢量的编码比特数。
46.运动信息(motion information):由于运动矢量表示当前图像块与某个参考图像块的位置偏移,为了准确获取指向图像块的信息,除了运动矢量,还需要参考帧图像的索引信息来表示使用哪个参考帧图像。在视频编码技术中,对于当前帧图像,通常可以建立一个参考帧图像列表,参考帧图像索引信息则表示当前图像块采用了参考帧图像列表中的第几个参考帧图像。此外,很多编码技术还支持多个参考图像列表,因此,还可以使用一个索引值来表示使用了哪一个参考图像列表,这个索引值可以称为参考方向。在视频编码技术中,可以将运动矢量、参考帧索引、参考方向等与运动相关的信息统称为运动信息。
47.率失真原则(rate-distortion optimized):评价编码效率的有两大指标:码率和psnr(peak signal to noise ratio,峰值信噪比),比特流越小,则压缩率越大,psnr越大,则重建图像质量越好,在模式选择时,判别公式实质上也就是对二者的综合评价。例如,模
式对应的代价:j(mode)=d+λ*r,其中,d表示distortion(失真),通常可以使用sse指标来进行衡量,sse是指重建图像块与源图像的差值的均方和;λ是拉格朗日乘子,r就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。
48.帧内预测与帧间预测(intra prediction and inter prediction)技术:帧内预测是指,可以利用当前图像块的空域相邻图像块(即与当前图像块处于同一帧图像)的重建像素值进行预测编码,而帧间预测是指,可以利用当前图像块的时域相邻图像块(与当前图像块处于不同帧图像)的重建像素值进行预测编码。
49.ctu(coding tree unit,编码树单元),是编码端支持的最大编码单元、以及解码端支持的最大解码单元。进一步的,一帧图像可以先分成若干个不相交的ctu,每个ctu再基于实际情况确定是否进一步划分成更小的块。
50.在介绍本技术实施例的技术方案之前,先简单介绍如下的基础知识:
51.参见图1所示,为视频编码框架的示意图,可以使用视频编码框架实现本技术实施例的编码端处理流程,此外,视频解码框架的示意图与图1类似,在此不再赘述,可以使用视频解码框架实现本技术实施例的解码端处理流程。
52.具体的,在视频编码框架和视频解码框架中,可以包括帧内预测、运动估计/运动补偿、参考图像缓冲器、环内滤波、重建、变换、量化、反变换、返量化、熵编码器等模块。在编码端,通过这些模块之间的配合,可以实现编码端处理流程,在解码端,通过这些模块之间的配合,可以实现解码端处理流程。
53.在图像块的划分技术中,一个ctu(coding tree unit,编码树单元)可以使用四叉树递归划分成cu(coding unit,编码单元),cu可以进一步的划分成两个或者四个pu(prediction unit,预测单元)。在预测完成且得到残差信息后,cu还可以进一步的四叉划分成多个tu(transform units,传输单元)。
54.在vvc(versatile video coding,通用视频编码)中对图像块的划分有了较大变化,混合了二叉树/三叉树/四叉树的划分结构,即取消了cu、pu、tu的概念,支持cu更灵活的划分方式,cu可以是正方形或矩形划分,ctu首先进行四叉树划分,然后四叉树划分的叶子节点进行二叉树和三叉树的划分。
55.参见图2a所示,cu可以有五种划分类型,分别为四叉树划分,水平二叉树划分,垂直二叉树划分,水平三叉树划分和垂直三叉树划分等。此外,参见图2b所示,ctu内的cu的划分可以是上述五种划分类型的任意组合。
56.merge(合并)模式的简单介绍:在帧间预测模块,由于视频存在很强的时域相关性,即时域相邻的两帧图像存在很多相似图像块,当前帧的图像块往往在相邻参考图像中进行运动搜索,找到与当前图像块最匹配的块作为参考图像块。由于参考图像块与当前图像块的相似度高,两者的差值非常小,因此,编码差值的码率开销通常远小于直接编码当前图像块的像素值带来的码率开销。
57.为了表示与当前图像块最匹配的参考图像块的位置,需要编码很多运动信息传递到解码端,使得解码端可以知晓参考图像块的位置,而运动信息,尤其是运动矢量,需要消耗非常多的码率进行编码传递。为了节省这部分的码率开销,当前设计了一种比较节省运动信息的编码模式,即merge模式。
58.在merge模式下,当前图像块的运动信息完全复用时域或空域某个相邻块的运动
信息,即,从周围多个图像块的运动信息集合中,选择一个运动信息作为当前图像块的运动信息。因此,在merge模式下,只需要编码一个索引值表示当前图像块使用运动信息集合中的哪个运动信息,从而节省编码开销。
59.amvp(advanced motion vector prediction,高级运动矢量预测)模式的简单介绍:amvp模式与merge模式类似,均使用了空域和时域的运动信息预测思想,通过建立候选运动信息列表,通过率失真代价选择最优的一个候选者作为当前图像块的运动信息。amvp模式与merge模式的主要区别体现在:merge模式下,当前单元的mv直接由空域或者时域上相邻的预测单元预测得到,不存在运动矢量差(motion vector difference,mvd),而amvp可以看做是mv预测技术,编码器只需要对实际mv和预测mv的差值进行编码,因此是存在mvd的。二者候选者mv队列长度是不同的,构建mv列表的方式也有所区别。
60.虽然merge模式可以大大节省运动信息的编码开销,amvp模式可以提高运动信息的预测精度,但是,如果未对当前编码单元进行划分,则当前编码单元只有一个运动信息,预测精度并不是很高。例如,参见图3a所示,区域c、区域g和区域h是当前编码单元内的区域,并不是划分的子图像块。假设当前编码单元使用图像块f的运动信息,则当前编码单元内的各个区域均使用图像块f的运动信息,显然,由于当前编码单元内的区域h与图像块f的距离很远,若区域h也使用图像块f的运动信息,则运动信息的预测精度并不是很高。
61.若采用图2a或图2b的划分方式对当前编码单元进行划分,则可以得到多个子图像块,例如,参见图3b所示,子图像块c、子图像块g、子图像块h和子图像块i是当前编码单元内划分的子图像块。显然,由于对当前编码单元进行划分,因此,需要消耗额外的比特来传输划分方式,带来一定的比特开销。
62.基于merge模式和amvp模式的工作原理,当前编码单元内部的部分子图像块的运动信息,无法利用当前编码单元周围的已编码运动信息,造成可利用的运动信息减少,运动信息的准确度并不高。例如,针对当前编码单元内部的子图像块i,只能利用子图像块c、子图像块g、子图像块h的运动信息,而无法利用图像块a、图像块b、图像块f、图像块d、图像块e的运动信息。
63.针对上述发现,本技术实施例中提出一种运动信息确定、预测模式确定方法,在不对当前图像块进行划分的基础上,即不增加子块划分带来的开销的基础上,可以使当前图像块对应多个运动信息,从而提高当前图像块的运动信息的预测精度。由于未对当前图像块进行划分,因此,可以避免消耗额外的比特来传输划分方式,节约这部分比特开销。针对当前图像块的每个区域(注意,这里是当前图像块内的任意一个区域,该区域的尺寸小于当前图像块的尺寸,并不是对当前图像块进行划分得到的子图像块),可以利用当前图像块周围的已编码运动信息,为每个区域提供更多的运动信息,提高运动信息的准确度。
64.本技术实施例中的当前图像块,是编解码过程中的任意图像单元,以当前图像块为单位进行编解码处理。当前图像块可以是当前编码单元,即上述实施例的cu,后续以当前图像块为例。
65.例如,参见图4所示,当前图像块包括9个区域,如区域f1-区域f9,这些是当前图像块内的区域,并不是对当前图像块进行划分后的子图像块。
66.针对区域f1-区域f9中的不同区域,可以对应相同或者不同的运动信息,因此,在不对当前图像块进行划分的基础上,可以使当前图像块对应多个运动信息,如区域f1对应
运动信息1,区域f2对应运动信息2,以此类推。
67.此外,在确定区域f5的运动信息时,可以利用图像块a1、图像块a2、图像块a3、图像块e、图像块b1、图像块b2、图像块b3的运动信息,即利用当前图像块周围的已编码图像块的运动信息,从而为区域f5提供更多的运动信息。当然,针对当前图像块的其它区域的运动信息时,也可以利用图像块a1、图像块a2、图像块a3、图像块e、图像块b1、图像块b2、图像块b3的运动信息。
68.以下结合几个具体实施例,对运动信息确定、预测模式确定方法进行说明。
69.实施例1:参见图5所示,为本技术实施例中的运动信息确定方法的流程示意图,该方法可以应用于解码端,该方法可以包括以下步骤:
70.步骤501,创建当前图像块的运动信息预测模式候选列表;其中,该运动信息预测模式候选列表可以包括至少一个运动信息预测模式。
71.其中,该运动信息预测模式可以包括但不限于:第一运动信息预测模式(如dc预测模式)和/或第二运动信息预测模式(如角度预测模式)。
72.在一个例子中,第一运动信息预测模式用于指示从当前图像块的周边块中选择指定的至少两个块作为匹配块,将匹配块的运动信息进行加权计算作为当前图像块的目标运动信息。第二运动信息预测模式用于指示预配置角度,以及根据预配置角度从当前图像块的周边块中为当前图像块内部的指定区域选择匹配块,并根据匹配块的运动信息确定所述指定区域的目标运动信息,匹配块是按照预配置角度从所述周边块中确定出的指定位置处的一个块或多个块。其中,指定位置包括多种情况,一种是预配置角度指向的一个块,一种是预配置角度指向两个块的中间时,可以是其中一个块,也可以是两个块,也可以是两个块和两个块周边的块。
73.其中,周边块包括与当前图像块相邻的块;或者,周边块包括与当前图像块相邻的块和非相邻的块。当然,周边块还可以包括其它块,如当前图像块是边界块时,针对当前图像块缺失的周边块而填充的配置块,对此不做限制。
74.步骤502,从该运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为当前图像块的目标运动信息预测模式。
75.步骤503,根据该目标运动信息预测模式确定当前图像块的目标运动信息。
76.具体的,可以根据该目标运动信息预测模式确定当前图像块对应的匹配块,并根据匹配块的可用运动信息确定当前图像块的目标运动信息。
77.在一个例子中,根据该目标运动信息预测模式确定当前图像块对应的匹配块,可以包括:若目标运动信息预测模式是第一运动信息预测模式,则根据第一运动信息预测模式,从当前图像块的周边块中选取至少两个块作为当前图像块的匹配块。通过这种运动信息预测模式的方式,可以为当前图像块确定可以共享的运动信息,这些运动信息是周边块的已有运动信息。
78.若目标运动信息预测模式是第二运动信息预测模式,则根据当前图像块内部的指定区域的位置和第二运动信息预测模式指示的预配置角度,从当前图像块周边块中确定出指定位置处的一个块或多个块作为所述匹配块。通过这种运动信息预测模式的方式,可以为当前图像块的不同区域配置不同的运动信息,这些运动信息是周边块的已有运动信息。
79.在一个例子中,在根据目标运动信息预测模式确定当前图像块对应的匹配块之
后,若根据所述目标运动信息预测模式生成所述当前图像块对应的所述匹配块为帧内块,则,根据所述帧内块周边的帧间块(如相邻的帧间块,或者,不相邻的帧间块)的运动信息,生成所述帧内块的运动信息;或者,可以为所述帧内块生成一个包含零运动矢量的运动信息;或者,根据时域可用运动信息为所述帧内块生成一个运动信息。
80.在根据目标运动信息预测模式确定当前图像块的目标运动信息之前,还可以通过对任一周边块进行以下至少一种的处理,获取周边块的可用运动信息;(1)若周边块为帧间块,将所述帧间块的运动信息和所述帧间块周边的至少一个块的运动信息进行加权计算得到所述帧间块调整后的运动信息;(2)若周边块为未编码块,将所述未编码块的至少一个空域可用运动信息和/或时域可用运动信息确定为所述未编码块的运动信息;或,将所述未编码块的至少两个空域可用运动信息和/或时域可用运动信息进行加权计算,得到所述未编码块的运动信息;或者,为所述未编码块生成一个包含零运动矢量的运动信息;(3)若周边块为帧内块,则根据所述帧内块周边的帧间块(如相邻的帧间块,或,不相邻的帧间块)的运动信息,确定所述帧内块的运动信息;或,为所述帧内块生成一个包含零运动矢量的运动信息;或者,根据时域可用运动信息为所述帧内块生成一个运动信息;(4)若当前图像块为边界块,所述周边块包括至少一个配置块,根据空域可用运动信息生成所述配置块的运动信息;或者,为所述配置块生成一个包含零运动矢量的运动信息;或者,根据时域可用运动信息为所述帧内块生成一个运动信息。
81.在一个例子中,根据匹配块的可用运动信息确定当前图像块的目标运动信息,可以包括但不限于:若匹配块的数量为一个,则将一个匹配块的可用运动信息确定为当前图像块的目标运动信息;或者,若匹配块的数量为一个,则对一个匹配块的可用运动信息进行变换,并将变换后的运动信息确定为当前图像块的目标运动信息;或者,若匹配块的数量为至少两个,则从至少两个匹配块中选择一个匹配块,并将选择的匹配块的可用运动信息确定为当前图像块的目标运动信息;或者,若匹配块的数量为至少两个,则从至少两个匹配块中选择一个匹配块,对选择的匹配块的可用运动信息进行变换,并将变换后的运动信息确定为当前图像块的目标运动信息;或者,若匹配块的数量为至少两个,则对至少两个匹配块的可用运动信息进行加权运算,并将加权运算后的运动信息确定为当前图像块的目标运动信息;或者,若匹配块的数量为至少两个,则对至少两个匹配块的可用运动信息先变换,再对变换后的运动信息进行加权运算,并将加权运算后得到的运动信息确定为当前图像块的目标运动信息。
82.其中,对匹配块的可用运动信息进行变换,可以包括但不限于:在指定方向上对匹配块的可用运动信息进行伸缩变换,得到变换后的运动信息。
83.在上述实施例中,从运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为当前图像块的目标运动信息预测模式,可以包括:接收来自编码端的编码比特流,编码比特流携带第一指示信息,第一指示信息用于指示目标运动信息预测模式的索引信息;基于第一指示信息,从运动信息预测模式候选列表中选择与该索引信息所对应的运动信息预测模式,并将选择的运动信息预测模式确定为当前图像块的该目标运动信息预测模式。
84.在另一个例子中,还可以接收来自编码端的编码比特流,该编码比特流可以携带第二指示信息,该第二指示信息用于指示预配置运动信息;基于该第二指示信息,根据当前
图像块的预配置运动信息确定当前图像块的目标运动信息;或者,可以接收来自编码端的编码比特流,该编码比特流可以携带第三指示信息,该第三指示信息用于指示预配置差值信息,所述预配置差值信息用于指示运动矢量差值;基于该第三指示信息,根据当前图像块的预配置差值信息确定当前图像块的目标运动信息。
85.由以上技术方案可见,本技术实施例中,可以确定当前图像块的目标运动信息预测模式,并根据目标运动信息预测模式确定当前图像块的目标运动信息,不需要对当前图像块进行划分,有效解决子块划分带来的比特开销,在不对当前图像块进行子块划分的基础上,为当前图像块的每个指定区域提供运动信息,且当前图像块的不同指定区域可以对应相同或者不同的运动信息,从而带来编码性能的提高,解决了传输大量运动矢量的问题,可以节约大量比特。
86.实施例2:参见图6所示,为本技术实施例中的运动信息确定方法的流程示意图,该方法可以应用于编码端,该方法可以包括以下步骤:
87.步骤601,创建当前图像块的运动信息预测模式候选列表;其中,该运动信息预测模式候选列表可以包括至少一个运动信息预测模式。
88.其中,该运动信息预测模式可以包括但不限于:第一运动信息预测模式(如dc预测模式)和/或第二运动信息预测模式(如角度预测模式)。
89.在一个例子中,第一运动信息预测模式用于指示从当前图像块的周边块中选择指定的至少两个块作为匹配块,将匹配块的运动信息进行加权计算作为当前图像块的目标运动信息。第二运动信息预测模式用于指示预配置角度,以及根据预配置角度从当前图像块的周边块中为当前图像块内部的指定区域选择匹配块,并根据匹配块的运动信息确定所述指定区域的目标运动信息,匹配块是按照预配置角度从所述周边块中确定出的指定位置处的一个块或多个块。其中,指定位置包括多种情况,一种是预配置角度指向的一个块,一种是预配置角度指向两个块的中间时,可以是其中一个块,也可以是两个块,也可以是两个块和两个块周边的块。
90.其中,周边块包括与当前图像块相邻的块;或者,周边块包括与当前图像块相邻的块和非相邻的块。当然,周边块还可以包括其它块,如当前图像块是边界块时,针对当前图像块缺失的周边块而填充的配置块,对此不做限制。
91.步骤602,从该运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为当前图像块的目标运动信息预测模式。
92.具体的,针对该运动信息预测模式候选列表中的每个运动信息预测模式,根据该运动信息预测模式,从所述当前图像块的周边块中确定当前图像块对应的匹配块,并,获取所述匹配块的可用运动信息,至少根据该匹配块的可用运动信息,确定该运动信息预测模式对应的率失真代价。然后,可以根据该运动信息预测模式候选列表中的每个运动信息预测模式对应的率失真代价,从该运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为该当前图像块的该目标运动信息预测模式。
93.其中,根据该运动信息预测模式,确定当前图像块对应的匹配块,可以包括但不限于:若该运动信息预测模式是第一运动信息预测模式,则根据第一运动信息预测模式,从当前图像块的周边块中选取至少两个块作为当前图像块的匹配块。或者,若该运动信息预测模式是第二运动信息预测模式,则根据当前图像块内部的指定区域的位置和第二运动信息
预测模式指示的预配置角度,从当前图像块周边块中确定出指定位置处的一个块或多个块作为所述匹配块。
94.在一个例子中,在根据运动信息预测模式,确定当前图像块对应的匹配块之后,若根据所述目标运动信息预测模式生成所述当前图像块对应的所述匹配块为帧内块,则,还可以根据所述帧内块周边的帧间块(如相邻的帧间块,或者,不相邻的帧间块)的运动信息,生成所述帧内块的运动信息;或者,可以为所述帧内块生成一个包含零运动矢量的运动信息;或者,根据时域可用运动信息为所述帧内块生成一个运动信息。
95.在所述获取所述匹配块的可用运动信息之前,通过对任一周边块进行以下至少一种的处理,获取周边块的可用运动信息;(1)若周边块为帧间块,将所述帧间块的运动信息和所述帧间块周边的至少一个块的运动信息进行加权计算得到所述帧间块调整后的运动信息;(2)若周边块为未编码块,将所述未编码块的至少一个空域可用运动信息和/或时域可用运动信息确定为所述未编码块的运动信息;或,将所述未编码块的至少两个空域可用运动信息和/或时域可用运动信息进行加权计算,得到所述未编码块的运动信息;或者,为所述未编码块生成一个包含零运动矢量的运动信息;(3)若周边块为帧内块,则根据所述帧内块周边的帧间块(如相邻的帧间块,或,不相邻的帧间块)的运动信息,确定所述帧内块的运动信息;或,为所述帧内块生成一个包含零运动矢量的运动信息;或者,根据时域可用运动信息为所述帧内块生成一个运动信息;(4)若当前图像块为边界块,所述周边块包括配置块,根据空域可用运动信息生成配置块的运动信息,所述周边块包括至少一个配置块,根据空域可用运动信息生成所述配置块的运动信息;或者,为所述配置块生成一个包含零运动矢量的运动信息;或者,根据时域可用运动信息为所述帧内块生成一个运动信息。
96.其中,根据该运动信息预测模式候选列表中的每个运动信息预测模式对应的率失真代价,从该运动信息预测模式候选列表中选择运动信息预测模式,可以包括但不限于:基于每个运动信息预测模式对应的率失真代价,从该运动信息预测模式候选列表中选择率失真代价最小的运动信息预测模式。
97.在一个例子中,将选择的运动信息预测模式确定为当前图像块的目标运动信息预测模式之后,还可以获取目标运动信息预测模式对应的第一率失真代价,并获取当前图像块的预配置运动信息或者预配置差值信息对应的第二率失真代价,所述差值信息用于指示运动矢量差值。若第一率失真代价小于第二率失真代价,则可以向解码端发送携带第一指示信息的编码比特流,该第一指示信息用于指示目标运动信息预测模式的索引信息。若第一率失真代价大于第二率失真代价,则可以向解码端发送携带第二指示信息的编码比特流,该第二指示信息用于指示预配置运动信息;或者,若第一率失真代价大于第二率失真代价,则可以向解码端发送携带第三指示信息的编码比特流,该第三指示信息用于指示预配置差值信息。
98.由以上技术方案可见,本技术实施例中,可以确定当前图像块的目标运动信息预测模式,并根据目标运动信息预测模式确定当前图像块的目标运动信息,不需要对当前图像块进行划分,有效解决子块划分带来的比特开销,在不对当前图像块进行子块划分的基础上,为当前图像块的每个指定区域提供运动信息,且当前图像块的不同指定区域可以对应相同或者不同的运动信息,从而带来编码性能的提高,解决了传输大量运动矢量的问题,可以节约大量比特。
99.实施例3:参见图7所示,为运动信息确定方法的流程示意图,该方法包括:
100.步骤701,编码端创建当前图像块的运动信息预测模式候选列表;其中,该运动信息预测模式候选列表可以包括至少一个运动信息预测模式。
101.步骤702,解码端创建当前图像块的运动信息预测模式候选列表;其中,该运动信息预测模式候选列表可以包括至少一个运动信息预测模式。
102.其中,编码端的运动信息预测模式候选列表与解码端的运动信息预测模式候选列表相同,即二者的运动信息预测模式的顺序完全相同。
103.步骤703,编码端从运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为当前图像块的目标运动信息预测模式。
104.步骤704,编码端向解码端发送编码比特流,该编码比特流用于携带第一指示信息,且该第一指示信息用于指示目标运动信息预测模式的索引信息。
105.步骤705,解码端接收来自编码端的编码比特流,该编码比特流携带第一指示信息,该第一指示信息用于指示目标运动信息预测模式的索引信息。
106.步骤706,解码端从运动信息预测模式候选列表(即步骤702中获取的运动信息预测模式候选列表)中选择与该索引信息对应的运动信息预测模式,并将选择的运动信息预测模式确定为当前图像块的该目标运动信息预测模式。
107.步骤707,解码端根据该目标运动信息预测模式确定当前图像块的目标运动信息。具体的,可以根据该目标运动信息预测模式确定当前图像块对应的匹配块,并根据匹配块的可用运动信息确定当前图像块的目标运动信息。
108.由以上技术方案可见,本技术实施例中,可以确定当前图像块的目标运动信息预测模式,并根据目标运动信息预测模式确定当前图像块的目标运动信息,不需要对当前图像块进行划分,有效解决子块划分带来的比特开销,在不对当前图像块进行子块划分的基础上,为当前图像块的每个指定区域提供运动信息,且当前图像块的不同指定区域可以对应相同或者不同的运动信息,从而带来编码性能的提高,解决了传输大量运动矢量的问题,可以节约大量比特。
109.实施例4:在上述实施例中,涉及创建当前图像块的运动信息预测模式候选列表,即编码端和解码端均需要创建当前图像块的运动信息预测模式候选列表。
110.编码端的运动信息预测模式候选列表与解码端的运动信息预测模式候选列表根据协议约定为相同。编码端和解码端可以采用相同的策略,创建相同的运动信息预测模式候选列表。当然,上述方式只是几个示例,对此创建方式不做限制,只要编码端和解码端具有相同的运动信息预测模式候选列表即可。
111.其中,可以为当前图像块创建一个运动信息预测模式候选列表,即,当前图像块内的所有区域,可以对应相同的运动信息预测模式候选列表;或者,可以为当前图像块创建多个运动信息预测模式候选列表。此外,针对不同的当前图像块,可以对应相同或者不同的运动信息预测模式候选列表。
112.为了方便描述,本实施例中,以为每个当前图像块创建一个运动信息预测模式候选列表为例,例如,可以为当前图像块a创建运动信息预测模式候选列表1,可以为当前图像块b创建运动信息预测模式候选列表2,以此类推。
113.在一个例子中,运动信息预测模式候选列表可以包括至少一个运动信息预测模
式,该运动信息预测模式可以包括但不限于:第一运动信息预测模式(如dc预测模式)和/或第二运动信息预测模式(如角度预测模式)。本实施例中,以第一运动信息预测模式是用于预测当前图像块的运动信息的dc预测模式,第二运动信息预测模式是用于预测当前图像块的运动信息的角度预测模式为例进行说明。当然,第一运动信息预测模式还可以是其它类型的预测模式,第二运动信息预测模式还可以是其它类型的预测模式,对此不做限制。
114.例如,该运动信息预测模式候选列表可以包括dc预测模式1、dc预测模式2和dc预测模式3。或者,该运动信息预测模式候选列表可以包括角度预测模式1、角度预测模式2和角度预测模式3。或者,该运动信息预测模式候选列表可以包括dc预测模式2、角度预测模式2和角度预测模式3。为了方便描述,后续以dc预测模式2、角度预测模式2和角度预测模式3为例进行说明。
115.针对运动信息预测模式候选列表中的每个dc预测模式,用于指示从当前图像块的周边块中选择指定的至少两个块作为匹配块,并将匹配块的运动信息进行加权计算作为当前图像块的目标运动信息。其中,当前图像块的周边块可以包括但不限于:与当前图像块相邻的块,或者,与当前图像块相邻的块和非相邻的块。当然,周边块还可以包括其它块,对此周边块不做限制。
116.例如,参见图8a所示,当前图像块的周边块可以包括当前图像块左上方的相邻图像块(即图像块e);当前图像块上侧周边区域中,从图像块e开始向右遍历的n1个相邻图像块,如图像块b1、图像块b2、图像块b3、图像块d1,以此类推,一直遍历n1个图像块;当前图像块左侧周边区域中,从图像块e开始向下遍历的n2个相邻图像块,如图像块a1、图像块a2、图像块a3、图像块c1,以此类推,一直遍历n2个图像块。
117.综上所述,当前图像块的周边块可以包括但不限于与当前图像块相邻的块,与当前图像块非相邻的块,甚至包括其它相邻帧中的图像块,对此不做限制。
118.在图8a中,虚线经过的图像块均可以是当前图像块的周边块,对此不做限制,当然,虚线未经过的图像块也可以是当前图像块的周边块,对此不做限制。
119.例如,dc预测模式1用于指示从当前图像块的周边块中选择指定的图像块a1和图像块b2作为匹配块,并对图像块a1的运动信息和图像块b2的运动信息进行加权计算,然后,将计算结果作为当前图像块的目标运动信息。又例如,dc预测模式2用于指示从当前图像块的周边块中选择指定的图像块a2和图像块b2作为匹配块,并对图像块a2的运动信息和图像块b2的运动信息进行加权计算,然后,将计算结果作为当前图像块的目标运动信息,以此类推。
120.其中,dc预测模式1用于指示图像块a1的位置索引和图像块b2的位置索引,这样,就可以将图像块a1和图像块b2作为当前图像块的匹配块。此外,dc预测模式2用于指示图像块a2的位置索引和图像块b2的位置索引,这样,就可以将图像块a2和图像块b2作为当前图像块的匹配块,以此类推。
121.其中,对图像块a1的运动信息和图像块b2的运动信息进行加权计算,包括:对图像块a1的运动矢量和图像块b2的运动矢量取平均值;或,为图像块a1的运动矢量设置系数1,为图像块b2的运动矢量设置系数2,利用图像块a1的运动矢量和系数1,图像块b2的运动矢量和系数2,进行加权计算。
122.当然,上述只是对运动信息进行加权计算的示例,对此不做限制。
123.针对运动信息预测模式候选列表中的每个角度预测模式,用于指示预配置角度,且角度预测模式用于指示根据该预配置角度从当前图像块的周边块中为当前图像块内部的指定区域选择匹配块,并根据所述匹配块的运动信息确定指定区域的目标运动信息。匹配块可以是按照该预配置角度从所述周边块中确定出的指定位置处的一个块或多个块。其中,指定位置可以包括多种情况,一种是角度指向的一个块,另一种是角度指向两个块的中间时,可以是其中一个块,也可以是两个块,也可以是两个块以及周边的块,对此不做限制。当前图像块的周边块可以包括但不限于:与当前图像块相邻的块,或者,与当前图像块相邻的块和非相邻的块。当然,周边块还可以包括其它块,对此周边块不做限制。
124.例如,角度预测模式1用于指示预配置角度为90度,根据预配置角度从当前图像块的周边块中为指定区域选择匹配块,参见图8b所示,指定区域f1的匹配块是图像块b1,并根据图像块b1的运动信息确定指定区域f1的目标运动信息。指定区域f2的匹配块是图像块b2,并根据图像块b2的运动信息确定指定区域f2的目标运动信息。指定区域f3的匹配块是图像块b3,并根据图像块b3的运动信息确定指定区域f3的目标运动信息,以此类推。
125.又例如,角度预测模式2用于指示预配置角度为180度,根据预配置角度从当前图像块的周边块中为指定区域选择匹配块,参见图8c所示,指定区域f1的匹配块是图像块a1,并根据图像块a1的运动信息确定指定区域f1的目标运动信息。指定区域f2的匹配块是图像块a1,并根据图像块a1的运动信息确定指定区域f2的目标运动信息。指定区域f3的匹配块是图像块a1,并根据图像块a1的运动信息确定指定区域f3的目标运动信息,以此类推
126.又例如,角度预测模式3用于指示预配置角度为45度,根据预配置角度从当前图像块的周边块中为指定区域选择匹配块,参见图8d所示,指定区域f5的匹配块是图像块b3和图像块d1,可以根据图像块b3的运动信息和图像块d1的运动信息确定指定区域f5的目标运动信息,具体方式参见后续实施例。
127.当然,上述方式只是预配置角度的几个示例,对此预配置角度不做限制,预配置角度可以是0-360度之间的任意角度,可以将指定区域的中心点向右的水平方向定位为0度,这样,从0度逆时针旋转的任意角度均可以为预配置角度,但不限于将指定区域的中心点向右的水平方向定位为0度,也可以将指定区域的中心点向左的水平方向定位为0度,或指定区域的中心点向其他方向为0度。
128.在实际应用中,预配置角度可以是分数角度,如22.5度等,对此不做限制。
129.在一个例子中,本技术实施例中的dc预测模式,可以是预测运动信息的dc预测模式,即用于帧间编码过程,而不是应用于帧内编码过程,而且,dc预测模式选择的是匹配块,而不是匹配的像素点。同理,角度预测模式可以是预测运动信息的角度预测模式,即用于帧间编码过程,而不是应用于帧内编码过程,而且,角度预测模式选择的是匹配块,而不是匹配的像素点。
130.基于上述分析过程,编码端和解码端均可以创建运动信息预测模式候选列表,后续以dc预测模式2、角度预测模式2和角度预测模式3为例进行说明。
131.实施例5:在上述实施例中,涉及编码端从运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为当前图像块的目标运动信息预测模式,以下对此过程进行说明,该过程可以包括以下步骤:
132.步骤a1、针对该运动信息预测模式候选列表中的每个运动信息预测模式,根据该
运动信息预测模式,确定当前图像块对应的匹配块。
133.在一个例子中,所述步骤a1可以包括但不限于:若该运动信息预测模式是dc预测模式(第一运动信息预测模式),则根据dc预测模式从当前图像块的周边块中选取至少两个块作为当前图像块的匹配块。若该运动信息预测模式是角度预测模式(第二运动信息预测模式),则根据当前图像块内部的指定区域的位置和角度预测模式指示的预配置角度,从当前图像块周边块中确定出指定位置处的一个块或多个块作为匹配块。
134.例如,运动信息预测模式候选列表可以包括dc预测模式2、角度预测模式2和角度预测模式3,针对dc预测模式2,用于指示图像块a2的位置索引和图像块b2的位置索引,因此,可以从当前图像块的周边块中选择指定的图像块a2和图像块b2作为匹配块。针对角度预测模式2,用于指示预配置角度为180度,因此,指定区域f1的匹配块是图像块a1,指定区域f2的匹配块是图像块a1,指定区域f3的匹配块是图像块a1。针对角度预测模式3,用于指示预配置角度为45度,因此,指定区域f5的匹配块是图像块b3和图像块d1。当然,上述只是以几个指定区域为示例,还可以为其它指定区域,对此不做限制。
135.步骤a2,根据匹配块的运动信息确定运动信息预测模式对应的率失真代价。
136.在一个例子中,编码端可以根据图像块a2的运动信息和图像块b2的运动信息,确定dc预测模式2的率失真代价。此外,编码端可以根据图像块a1的运动信息,确定角度预测模式2的率失真代价。此外,编码端可以根据图像块b3的运动信息和图像块d1的运动信息,确定角度预测模式3的率失真代价。
137.在一个例子中,基于图像块a2的运动信息和图像块b2的运动信息,可以采用率失真原则确定dc预测模式2的率失真代价,率失真代价可以通过如下公式确定:j(mode)=d+λ*r,其中,d表示distortion(失真),通常可以使用sse指标来进行衡量,sse是指重建图像块与源图像的差值的均方和;λ是拉格朗日乘子,r就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和,对此确定方式不做限制。同理,也可以确定出角度预测模式2的率失真代价和角度预测模式3的率失真代价。
138.步骤a3,根据运动信息预测模式候选列表中的每个运动信息预测模式对应的率失真代价,从该运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为当前图像块的目标运动信息预测模式。
139.具体的,基于每个运动信息预测模式对应的率失真代价,从该运动信息预测模式候选列表中选择率失真代价最小的运动信息预测模式。当然,上述方式只是示例,对此运动信息预测模式的选择方式不做限制。
140.例如,假设dc预测模式2的率失真代价小于角度预测模式2的率失真代价,dc预测模式2的率失真代价小于角度预测模式3的率失真代价,则选择率失真代价最小的dc预测模式2,即dc预测模式2是目标运动信息预测模式。
141.实施例6:在上述实施例中,涉及解码端从运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为当前图像块的目标运动信息预测模式,以下对此过程进行说明,该过程可以包括以下步骤:
142.步骤b1、编码端向解码端发送编码比特流,该编码比特流用于携带第一指示信息,且该第一指示信息用于指示目标运动信息预测模式的索引信息。
143.例如,编码端将选择的运动信息预测模式确定为当前图像块的目标运动信息预测
模式后,可以确定目标运动信息预测模式在运动信息预测模式候选列表中的索引信息,如目标运动信息预测模式是运动信息预测模式候选列表中的第2个运动信息预测模式,则目标运动信息预测模式的索引信息可以是10,表示2。
144.步骤b2、解码端接收来自编码端的编码比特流,该编码比特流携带第一指示信息,该第一指示信息用于指示目标运动信息预测模式的索引信息。
145.步骤b3、解码端从运动信息预测模式候选列表中选择与该索引信息对应的运动信息预测模式,并将选择的运动信息预测模式确定为当前图像块的目标运动信息预测模式。例如,当第一指示信息用于指示目标运动信息预测模式的索引信息是2时,则解码端可以将运动信息预测模式候选列表中的第2个运动信息预测模式,确定为当前图像块的目标运动信息预测模式。
146.在一个例子中,编码端和解码端可以固定一个运动信息预测模式,这样,解码端不需要进行任何的语法解析,可以直接确定目标运动信息预测模式。进一步的,可以首先编码一个flag来确定是否采用运动信息预测模式确定目标运动信息,在采用运动信息预测模式确定目标运动信息的情况下,编码端可以固定一个运动信息预测模式,编码端不需要任何的比特开销,而且,解码端不需要进行任何的语法解析,可以直接确定目标运动信息预测模式。
147.实施例7:在上述实施例中,涉及解码端根据目标运动信息预测模式确定当前图像块的目标运动信息,以下对此过程进行说明,该过程可以包括:
148.步骤c1、根据目标运动信息预测模式确定当前图像块对应的匹配块。
149.在一个例子中,所述步骤c1可以包括:若目标运动信息预测模式是dc预测模式,则可以根据dc预测模式从当前图像块的周边块中选取至少两个块作为当前图像块的匹配块。若目标运动信息预测模式是角度预测模式,则可以根据当前图像块内部的指定区域的位置和角度预测模式指示的预配置角度,从当前图像块周边块中确定出指定位置处的一个块或多个块作为匹配块。
150.例如,若目标运动信息预测模式是dc预测模式2,由于dc预测模式2用于指示图像块a2的位置索引和图像块b2的位置索引,则从当前图像块的周边块中选择指定的图像块a2和图像块b2作为匹配块。若目标运动信息预测模式是角度预测模式2,由于角度预测模式2用于指示预配置角度为180度,则指定区域f1的匹配块是图像块a1,指定区域f2的匹配块是图像块a1,以此类推。
151.步骤c2,根据匹配块的运动信息确定当前图像块的目标运动信息。
152.其中,根据匹配块的运动信息确定当前图像块的目标运动信息,可以包括:
153.方式一、若匹配块的数量为一个,则可以将一个匹配块的运动信息确定为当前图像块的目标运动信息。例如,若匹配块是图像块a1,则可以将图像块a1的运动信息确定为当前图像块的目标运动信息,对此不再赘述。
154.方式二、若匹配块的数量为一个,则可以对一个匹配块的运动信息进行变换,并将变换后的运动信息确定为当前图像块的目标运动信息。例如,若匹配块是图像块a1,则可以对图像块a1的运动信息进行变换,得到变换后的运动信息,并将变换后的运动信息确定为当前图像块的目标运动信息。
155.方式三、若匹配块的数量为至少两个,则从至少两个匹配块中选择一个匹配块,将
选择的匹配块的运动信息确定为当前图像块的目标运动信息。例如,若图像块a2和图像块b2作为匹配块,则从图像块a2和图像块b2中选择一个图像块a2,将图像块a2的运动信息确定为当前图像块的目标运动信息。
156.方式四、若匹配块的数量为至少两个,则从至少两个匹配块中选择一个匹配块,对选择的匹配块的运动信息进行变换,并将变换后的运动信息确定为当前图像块的目标运动信息。例如,若图像块a2和图像块b2作为匹配块,则从图像块a2和图像块b2中选择一个图像块a2,对图像块a2的运动信息进行变换,并将变换后的运动信息确定为当前图像块的目标运动信息。
157.方式五、若匹配块的数量为至少两个,则可以对至少两个匹配块的运动信息进行加权运算,并将加权运算后的运动信息确定为当前图像块的目标运动信息。例如,若图像块a2和图像块b2作为匹配块,则可以对图像块a2的运动信息和图像块b2的运动信息进行加权运算,具体的加权运算方式不做限制,并将加权运算后的运动信息确定为当前图像块的目标运动信息。
158.方式六、若匹配块的数量为至少两个,则对至少两个匹配块的运动信息先变换,再对变换后的运动信息进行加权运算,并将加权运算后得到的运动信息确定为当前图像块的目标运动信息。例如,若图像块a2和图像块b2作为匹配块,则可以对图像块a2的运动信息进行变换,得到变换后的运动信息1,并可以对图像块b2的运动信息进行变换,得到变换后的运动信息2,然后,对运动信息1和运动信息2进行加权运算,具体的加权运算方式不做限制,并可以将加权运算后的运动信息确定为当前图像块的目标运动信息。
159.当然,上述方式只是示例,对此目标运动信息的确定方式不做限制。
160.在上述实施例中,对匹配块的运动信息进行变换,可以包括但不限于:在指定方向上对匹配块的运动信息进行伸缩变换,得到变换后的运动信息。当然,伸缩变换只是一种变换方式,还可以采用其它变换方式,对此不做限制。其中,指定方向可以为当前图像块的运动矢量的运动方向,或者,匹配块的运动矢量的运动方向,当然,还可以为其它方向,对此不做限制。其中,对运动信息进行伸缩变换的方式,可以采用传统方式实现,在此不再重复赘述。
161.实施例8:除了采用上述方式得到目标运动信息,还可以采用传统方式得到当前图像块的运动信息,为了区分方便,可以将采用传统方式得到的运动信息称为预配置运动信息,在此基础上,本技术实施例的方法还可以包括:
162.编码端确定当前图像块的目标运动信息预测模式后,可以获取目标运动信息预测模式对应的第一率失真代价,如采用率失真原则确定目标运动信息预测模式对应的第一率失真代价,并获取当前图像块的预配置运动信息对应的第二率失真代价,如采用率失真原则确定预配置运动信息对应的第二率失真代价。
163.进一步的,若该第一率失真代价小于该第二率失真代价,则编码端可以向解码端发送携带第一指示信息的编码比特流,其中,该第一指示信息用于指示目标运动信息预测模式的索引信息,参见实施例6中的第一指示信息。若该第一率失真代价大于该第二率失真代价,则编码端可以向解码端发送携带第二指示信息的编码比特流,其中,该第二指示信息用于指示预配置运动信息。
164.解码端接收来自编码端的编码比特流,若该编码比特流携带第一指示信息,该第
一指示信息用于指示目标运动信息预测模式的索引信息,因此,基于第一指示信息,解码端从运动信息预测模式候选列表中选择与该索引信息所对应的运动信息预测模式,并将选择的运动信息预测模式确定为当前图像块的目标运动信息预测模式,具体实现方式可以参见实施例6,在此不再赘述。
165.此外,若该编码比特流携带第二指示信息,该第二指示信息用于指示预配置运动信息,因此,基于第二指示信息,解码端可以根据当前图像块的预配置运动信息确定当前图像块的目标运动信息,例如,可以将当前图像块的预配置运动信息确定为当前图像块的目标运动信息,对此确定方式不做限制。
166.在另一个例子中,编码端确定当前图像块的目标运动信息预测模式后,可以获取目标运动信息预测模式对应的第一率失真代价,如采用率失真原则确定目标运动信息预测模式对应的第一率失真代价,并获取当前图像块的预配置差值信息对应的第二率失真代价,如采用率失真原则确定预配置差值信息对应的第二率失真代价。若该第一率失真代价小于该第二率失真代价,则编码端可以向解码端发送携带第一指示信息的编码比特流,该第一指示信息用于指示目标运动信息预测模式的索引信息,参见实施例6的第一指示信息。若该第一率失真代价大于该第二率失真代价,则编码端可以向解码端发送携带第三指示信息的编码比特流,该第三指示信息用于指示预配置差值信息,所述预配置差值信息用于指示运动矢量差值。
167.解码端接收来自编码端的编码比特流,若该编码比特流携带第一指示信息,该第一指示信息用于指示目标运动信息预测模式的索引信息,因此,基于第一指示信息,解码端从运动信息预测模式候选列表中选择与该索引信息所对应的运动信息预测模式,并将选择的运动信息预测模式确定为当前图像块的目标运动信息预测模式,具体实现方式可以参见实施例6,在此不再赘述。
168.若该编码比特流携带第三指示信息,该第三指示信息用于指示预配置差值信息,所述预配置差值信息用于指示运动矢量差值,基于第三指示信息,解码端根据当前图像块的预配置差值信息确定当前图像块的目标运动信息,例如,根据当前图像块的预配置差值信息与某个指定运动信息确定为当前图像块的目标运动信息,如将预配置差值信息与指定运动信息的和确定为目标运动信息,对此确定方式不做限制。
169.在上述实施例中,针对编码比特流中的索引信息,可以是经由一元截断码进行编码的索引信息,或者,经由定长编码方式进行编码的索引信息。当然,还可以采用其它编码方式对索引信息进行编码,对此编码方式不做限制。
170.其中,一元截断码可以用于编码目标运动信息预测模式的索引信息。例如,运动信息预测模式候选列表包括5个运动信息预测模式,分别为运动信息预测模式{0,1,2,3,4}。假设目标运动信息预测模式是运动信息预测模式3,即目标运动信息预测模式的索引信息为4,则编码端可以将索引信息编码成0001,这样,解码端需要解码到1为止,即第4个数值为1,因此,解码端获知目标运动信息预测模式的索引信息为4。
171.其中,可以采用定长编码方式来编码目标运动信息预测模式的索引信息。例如,运动信息预测模式候选列表包括5个运动信息预测模式,分别为运动信息预测模式{0,1,2,3,4},总共需要3个比特来编码。例如,可以使用000表示第一个运动信息预测模式,即运动信息预测模式0,可以使用001表示第二个运动信息预测模式,即运动信息预测模式1,以此类
推。
172.实施例9:运动信息预测模式候选列表的构建,至少包含dc预测模式和角度预测模式中的一种。角度预测模式中的角度为任一角度,比如22.5度,dc预测模式包括至少两个匹配块的运动信息的加权,如图9a所示,图像块c1-图像块c4、图像块d1-图像块d4虽然未编码,但是,可以由时域或者空域的已编码块的运动信息填充,也可以由已编码块的运动信息进行一定的处理来填充,因此,也可以将图像块c1-图像块c4、图像块d1-图像块d4作为匹配块。具体的,填充的含义是,将至少一个空域可用运动信息和/或时域可用运动信息确定为所述未编码块的运动信息;或者,将所述未编码块的至少两个空域可用运动信息和/或时域可用运动信息进行加权计算,得到所述未编码块的运动信息。当然还是可以为所述未编码块生成一个包含零运动矢量的运动信息,作为未编码块的填充。
173.在另一个例子中,针对dc预测模式和角度预测模式,参见图9b所示,如果上边位置的图像块和左边位置的图像块都可用,则可以按照顺序将水平、垂直、水平向上、水平向下以及垂直向右的运动信息预测模式,添加到运动信息预测模式候选列表,即图9b中所示的添加顺序。或者,如果只有上边位置的图像块可用,则可以按照顺序将运动信息预测模式1、运动信息预测模式2和运动信息预测模式4添加到运动信息预测模式候选列表。或者,如果只有左边位置的图像块可用,则可以按照顺序将运动信息预测模式0、运动信息预测模式2和运动信息预测模式3,添加到运动信息预测模式候选列表。或者,如果上边位置的图像块和左边位置的图像块都不可用,则可以不将任何角度的运动信息预测模式添加到运动信息预测模式候选列表。
174.在上述实施例中,运动信息预测模式选用角度预测模式,根据所选的角度,将所指向的周围4x4块的运动信息作为当前图像块内部的4x4块的运动信息,当前图像块内部的所有4x4块都是相同的操作。
175.在一个例子中,可以对周边块的运动信息进行处理,也可以不对周边块的运动信息进行处理,若不对周边块的运动信息进行处理,则采用上述实施例4、5、9,若对周边块的运动信息进行处理,则可以采用后续的实施例10。
176.实施例10:在上述实施例中,需要使用匹配块的运动信息进行相关处理,这样,在匹配块存在运动信息时,如何使用匹配块存在运动信息,在匹配块不存在运动信息时,如何确定匹配块存在运动信息,本实施例还提供如下方式:
177.在一个例子中,若根据目标运动信息预测模式生成当前图像块对应的匹配块为帧内块,由于这个帧内块没有运动信息,因此,可以根据所述帧内块周边的帧间块(如相邻的帧间块,或,不相邻的帧间块)的运动信息,生成所述帧内块的运动信息;或者,为所述帧内块生成一个包含零运动矢量的运动信息;或者,根据时域可用运动信息为所述帧内块生成一个运动信息。
178.在另一个例子中,可以通过对任一周边块进行以下至少一种的处理,获取周边块的可用运动信息:(1)若周边块为帧间块,将帧间块的运动信息和帧间块周边的至少一个块的运动信息进行加权计算得到帧间块调整后的运动信息;(2)若周边块为未编码块,将未编码块的至少一个空域可用运动信息和/或时域可用运动信息确定为未编码块的运动信息;或,将所述未编码块的至少两个空域可用运动信息和/或时域可用运动信息进行加权计算,得到未编码块的运动信息;或者,为所述未编码块生成一个包含零运动矢量的运动信息;
(3)若周边块为帧内块,则根据帧内块周边的帧间块(如相邻的帧间块,或,不相邻的帧间块)的运动信息,确定所述帧内块的运动信息;或,为所述帧内块生成一个包含零运动矢量的运动信息;或者,根据时域可用运动信息为所述帧内块生成一个运动信息;(4)若当前图像块为边界块,所述周边块包括至少一个配置块,根据空域可用运动信息生成所述配置块的运动信息;或者,为所述配置块生成一个包含零运动矢量的运动信息;或者,根据时域可用运动信息为所述帧内块生成一个运动信息。
179.其中,针对方式(1),若周边块为帧间块,则可以对帧间块的运动信息进行滤波,而滤波后的运动信息作为匹配块的运动信息,具体的,可以将帧间块的运动信息和帧间块周边的至少一个块的运动信息进行加权计算,得到帧间块调整后的运动信息,这样调整后的运动信息作为匹配块的运动信息。
180.针对方式(2),若周边块为未编码块,则可以对未编码块的运动信息进行填充,如填充右边列,可以由时域或者空域的运动信息直接填充,也可以做一定的变换后填充;或者,可以对未编码块的运动信息进行填充,如填充下边行,可以由时域或者空域的运动信息直接填充,也可以做一定的变换后填充。
181.进一步的,则可以将未编码块的至少一个空域可用运动信息和/或时域可用运动信息确定为未编码块的运动信息;或,将未编码块的至少两个空域可用运动信息和/或时域可用运动信息进行加权计算,得到未编码块的运动信息。
182.针对方式(3),若周边块为帧内块,则可以利用其它帧间块的运动信息进行填充,或填充零运动矢量,或填充其它运动信息。基于此,可以根据帧内块周边的帧间块(如相邻的帧间块,或,不相邻的帧间块)的运动信息,确定所述帧内块的运动信息;或,为帧内块生成一个包含零运动矢量的运动信息。
183.针对方式(4),若当前图像块为边界块,即当前图像块的相邻位置不可用,则可以使用其它可用的块的运动信息进行填充,或者,填充零运动矢量,或填充其它运动信息。基于此,可以将配置块(即预设的任意可用块)确定为当前图像块的周边块,并根据空域可用运动信息生成配置块的运动信息。
184.以下结合几个具体的应用场景,对上述过程中如何对周边块的运动信息进行处理的过程进行详细说明。
185.应用场景1,从左下到右上进行4x4块的运动信息填充处理,其中,左下长度为当前图像块的宽度,右上长度为当前图像块的高度。对于某个周边块,如4x4块,如果采用帧内编码方式,则可以使用其旁边最近的4x4的帧间块的运动信息来填充,如果旁边两个帧间块距离填充块的距离相等,则选择上方块或者右边块。
186.参见图9c所示,对于左边列的帧内块a2,a3和a4,距离帧内块最近的帧间块为a1和a5,可以选择a1的运动信息来填充帧内块a2,a3和a4的运动信息。此外,对于左边列的从上到下的第三个帧内块,距离这个帧内块最近的帧间块为a5,可以选择a5的运动信息来填充这个帧内块的运动信息。对于上边行的帧内块b2,b3和b4,距离帧内块最近的帧间块为b1和b5,可以选择a1的运动信息来填充帧内块b2,b3和b4的运动信息。此外,对于上边行的三个帧内块,距离最近的帧间块为5,可以选择b5的运动信息来填充这个帧内块的运动信息。
187.应用场景2,运动信息的滤波处理,将周围块的运动信息进行加权处理。
188.参见图9d所示,对于每一个运动信息,比如帧间块a4的运动信息,可以由周围至少
一个帧间块的运动信息和a4的运动信息的加权得到。例如,可以由a4的运动信息与帧间块a5的运动信息的加权得到,可以由帧间块a4的运动信息与帧间块a3的运动信息的加权得到,可以由帧间块a4的运动信息、帧间块a5的运动信息、帧间块a3的运动信息的加权得到设置是由帧间块a2的运动信息、帧间块a4的运动信息、帧间块a5的运动信息、帧间块a6的运动信息和帧间块a3的运动信息的加权得到。
189.应用场景3,对于周围未编码的块,参见图9e所示,灰色图像块(b6,b7,c1至c4,e,d1至d3,a7,a8)是未编码的块,可以利用周围可用的运动信息,包括时域(未示出)和空域(a1至a6,以及b1至b5,以及d)的可用运动信息对这些未编码的块进行填充,或者,可以采用至少两个可用运动信息的加权,对这些未编码的块进行填充,或者,可以填充零运动矢量的运动信息,对此不做限制。
190.应用场景4,参见图9f所示,a3为帧内块,可以使用帧内块a3周围图像块的可用的运动信息,确定帧内块a3的运动信息;或者,可以为帧内块a3生成一个包含零运动矢量的运动信息,对此运动信息的确定不做限制。
191.应用场景5,参见图9g所示,当前图像块是图像的边界块,b4、b5、b6和b7是当前图像块在边界之外的配置块,可以采用时域或者空域的可用运动信息对b4、b5、b6和b7进行填充,或者,对至少两个空域的可用运动信息和/或时域的可用运动信息进行加权计算,利用加权计算后的可用运动信息对b4、b5、b6和b7进行填充,或者,填充零运动矢量的运动信息。
192.实施例11:本技术实施例提出一种解码方法,可以应用于解码端,包括:
193.步骤d1、创建当前图像块的运动信息预测模式候选列表;其中,所述运动信息预测模式候选列表可以包括至少一个运动信息预测模式。
194.步骤d2、从运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为当前图像块的目标运动信息预测模式。
195.步骤d3、根据目标运动信息预测模式确定当前图像块的目标运动信息。
196.其中,步骤d1-步骤d3的流程,可以参见上述实施例,在此不再赘述。
197.步骤d4、根据该目标运动信息对接收的编码比特流进行解码。
198.具体的,解码端在得到目标运动信息后,就可以根据目标运动信息对编码比特流进行解码,具体的解码方式可以参见传统方式,在此不再赘述。
199.实施例12:本技术实施例提出一种编码方法,可以应用于编码端,包括:
200.步骤e1、创建当前图像块的运动信息预测模式候选列表;其中,所述运动信息预测模式候选列表可以包括至少一个运动信息预测模式。
201.步骤e2、从运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为当前图像块的目标运动信息预测模式。
202.其中,步骤e1-步骤e3的流程,可以参见上述实施例,在此不再赘述。
203.步骤e3、根据目标运动信息预测模式对比特流进行编码得到编码比特流。
204.具体的,编码端在得到目标运动信息预测模式后,就可以根据目标运动信息预测模式对比特流进行编码,具体编码方式参见传统方式,在此不再赘述。
205.实施例13:参见图10所示,为编码端的处理流程示意图,编码端可以构建当前图像块的运动信息预测模式候选列表,并从运动信息预测模式候选列表中选择目标运动信息预测模式,若使用本方案的运动信息,则将目标运动信息预测模式在运动信息预测模式候选
列表中的索引信息携带进编码比特流,若不使用本方案的运动信息,则将其它运动信息携带进编码比特流。
206.参见图11所示,为解码端的处理流程示意图,解码端可以解析编码比特流中的指示信息。若指示信息指示采用本方案的运动信息,则构建当前图像块的运动信息预测模式候选列表,根据索引信息从运动信息预测模式候选列表中选择目标运动信息预测模式,并利用目标运动信息预测模式推导当前图像块的目标运动信息。若指示信息指示不采用本方案的运动信息,则采用其它运动信息。
207.在一个例子中,可以构建运动信息预测模式候选列表,候选列表中包含dc预测模式和角度预测模式的至少一种。其中,dc预测模式为当前图像块的周围块的运动信息的加权,周围块包含与当前图像块相邻的块,也包含非相邻的块,比如左下列和右上行。角度预测模式是指类似于帧内预测模式的原理,按照一定的角度进行对当前图像块内部的子块的运动信息进行预测。如了水平、垂直、水平向上、水平向下以及垂直向右等5种角度,但是本方案并不局限于该5种,所有的角度都包含在本方案内。
208.对当前图像块周围块进行参考运动信息的处理,处理包括以下至少一种:参考运动信息的滤波。对参考运动信息进行填充,填充右边列,可以由时域或者空域的运动信息直接填充,也可以做一定的变换后填充。对参考运动信息进行填充,填充下边行,可以由时域或者空域的运动信息直接填充,也可以做一定的变换后填充。对参考运动信息如果是帧内编码块,则用其他帧间编码块的运动信息填充,或者填充零运动矢量,其它运动信息(除运动矢量外)可以自由选择。对参考运动信息如果相邻位置不可用,则用其他可用的块的运动信息填充,或者填充零运动矢量,其它运动信息(除运动矢量外)可以自由选择。
209.在一个例子中,选用dc预测模式来对当前图像块的每个区域赋值运动信息时,包括周围至少两个不同的运动信息的加权计算作为当前图像块的运动信息。
210.在一个例子中,选用角度预测模式来对当前图像块的每个区域赋值运动信息时,角度可以为水平角度模式,如第一行的区域均采用a1块的运动信息。
211.在一个例子中,选用角度预测模式来对当前图像块的每个区域赋值运动信息时,角度可以为水平角度模式,在采用水平预测模式时,第一行的区域均采用a1块的运动信息,可以对a1块的运动信息进行一定的scale操作,然后赋值给第一行的各个区域。其余几行的处理类似,其余角度预测模式也类似。
212.在一个例子中,选用角度预测模式来对当前图像块的每个区域赋值运动信息时,角度可以为水平角度模式,在采用水平预测模式时,如果对应的a1块有多个不同的运动信息,则选取a1中的任意一个运动信息,或者周围至少两个运动信息的加权处理,然后赋值给第一行的各个区域,其余几行类似。
213.在一个例子中,选用角度预测模式来对当前图像块的每个区域赋值运动信息时,若角度所对应的方向并不是恰好一个子块,则可以将角度左右两边至少两个运动信息进行一定加权处理,然后赋给当前图像块的区域。
214.在一个例子中,如果方案中的运动信息预测模式候选列表和其它方案的预测模式列表为同一个,则只需要采用一元截断码来编码本技术方案在运动信息预测模式候选列表中的索引位置信息,具体编码方式参见上述实施例。
215.在一个例子中,可以首先编码一个flag来确定是否使用运动信息预测模式,如果
使用运动信息预测模式,编码端固定一个运动信息预测模式,则编码端不需要任何的比特开销。
216.在一个例子中,可以首先解码一个flag来确定是否使用运动信息预测模式,如果使用运动信息预测模式,则采用一元截断码来解码具体的运动信息预测模式在运动信息预测模式候选列表中的索引信息,解码端只需要解到1为止即可,
217.在一个例子中,可以首先解码一个flag来确定是否使用运动信息预测模式,如果使用运动信息预测模式,则采用定长方式来解码具体的预测模式在候选列表中的索引信息。在一个例子中,如果本技术方案的列表与其他技术方案的列表为同一个,则采用现有方案来解码具体的预测模式在候选列表中的索引信息。
218.实施例14:基于与上述方法同样的申请构思,本技术实施例还提出一种运动信息确定装置,应用于解码端,如图12所示,为所述装置的结构图,包括:
219.创建模块1201,用于创建当前图像块的运动信息预测模式候选列表;所述运动信息预测模式候选列表包括至少一个运动信息预测模式;选择模块1202,用于从所述运动信息预测模式候选列表中选择运动信息预测模式,将选择的运动信息预测模式确定为所述当前图像块的目标运动信息预测模式;确定模块1203,用于根据目标运动信息预测模式确定所述当前图像块的目标运动信息。
220.基于与上述方法同样的申请构思,本技术实施例还提出一种运动信息确定装置,应用于编码端,如图13所示,为所述装置的结构图,包括:
221.创建模块1301,用于创建当前图像块的运动信息预测模式候选列表;其中,所述运动信息预测模式候选列表包括至少一个运动信息预测模式;选择模块1302,用于从所述运动信息预测模式候选列表中选择运动信息预测模式,并将选择的运动信息预测模式确定为所述当前图像块的目标运动信息预测模式。
222.本技术实施例提供的解码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图14所示。包括:处理器141和机器可读存储介质142,其中:所述机器可读存储介质142存储有能够被所述处理器141执行的机器可执行指令;所述处理器141用于执行机器可执行指令,以实现本技术上述示例公开的方法。
223.本技术实施例提供的编码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图15所示。包括:处理器151和机器可读存储介质152,其中:所述机器可读存储介质152存储有能够被所述处理器151执行的机器可执行指令;所述处理器151用于执行机器可执行指令,以实现本技术上述示例公开的方法。
224.基于与上述方法同样的申请构思,本技术实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本技术上述示例公开的方法。
225.其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
226.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,
或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
227.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
228.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
229.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
230.而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
231.这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
232.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1