图像预测的方法及设备与流程

文档序号:15568626发布日期:2018-09-29 03:56阅读:148来源:国知局

本发明涉及视频图像处理领域,尤其涉及图像预测的方法及设备。



背景技术:

随着互联网科技的迅猛发展以及人们物质精神文化的日益丰富,在互联网中针对视频的应用需求尤其是针对高清视频的应用需求越来越多,而高清视频的数据量非常大,要想高清视频能在带宽有限的互联网中传输,必须首先解决的问题就是高清视频压缩编码问题。目前,国际上有两个国际组织专门进行视频编码标准的制定工作,即国际标准化组织(internationalorganizationforstandardization,简称为“iso”)/国际电工委员会(internationalelectrotechnicalcommission,简称为“iec”)下的运动图像专家组(motionpictureexpertsgroup,简称为“mpeg”)和国际电信联盟电信标准化组(internationaltelecommunicationunion-telecommunicationstandardizationsector,简称为“itu-t”)的视频编码专家组(videocodingexpertsgroup,简称为“vceg”)。成立于1986年的mpeg专门负责制定多媒体领域内的相关标准,主要应用于存储、广播电视、因特网或无线网上的流媒体等。itu-t则主要制定面向实时视频通信领域的视频编码标准,如视频电话、视频会议等应用。

在过去的几十年里,国际上已经成功制定了面向各种应用的视频编码标准,主要包括:用于影音光碟(videocompactdisc,简称为“vcd”)的mpeg-1标准,用于竖直多功能光盘(digitalvideodisc,简称为“dvd”)和数字视频广播(digitalvideobroadcasting,简称为“dvb”)的mpeg-2标准,用于视频会议的h.261标准以及h.263标准、h.264标准,允许对任意形状的对象编码的mpeg-4标准,以及最新的高性能视频编码(highefficiencyvideocoding,简称为“hevc”)标准。

相比于最新的视频编码标准hevc,对于包含旋转、缩放运动的序列,基于线性变化的运动矢量场的运动补偿预测技术可以显著提高编码性能,在现有的基于仿射变换的运动补偿预测技术中,在获得图像块的仿射变换参数后,要计算图像块内每个点的运动矢量,根据每个点的运动矢量做运动补偿预测,从而获取每个点的运动补偿预测信号。

基于仿射变换的运动模型是一种针对旋转、缩放运动进行有效编码的方法,待处理块中每个像素的运动矢量可以通过该块四个顶点的运动矢量推导出来。对于只存在旋转和缩放的运动,只需要获得待处理块的任意两个控制点的运动矢量即可获得仿射变换模型。所谓控制点利用其运动矢量计算仿射变换模型参数,进而计算获得当前块中每个像素点的运动矢量。将仿射运动预测模式的率失真代价与视频编码标准中的帧间预测模式的率失真代价进行比较,若仿射运动预测模式的率失真代价较小,则待处理块使用仿射运动预测模式进行编码,这样的块称为仿射运动预测块,对应的预测单元称为仿射运动预测单元。同时以4×4为基本单元存储仿射运动预测块四个顶点的运动信息和中心位置的运动信息,中心位置的运动矢量值为两个控制点运动矢量值得平均值,运动信息包括运动矢量,参考帧索引、预测方向等。

为提高编码效率,待处理块控制点的运动信息可以直接复用其相邻块的运动信息,而不需要进一步地使用相邻块的运动矢量作为搜索起始点进行运动搜索,也就无需编码运动矢量差值,节省了编码运动矢量差值所消耗的比特。这样的方法就需要当前块所复用的其相邻块的运动矢量信息的准确程度要求较高,而现有技术无法保证相邻块运动矢量信息的准确程度,从而无法提高编码效率。



技术实现要素:

本发明提供了一种可以提高编码效率的图像预测的方法及设备。

第一方面,提供了一种图像预测的方法,包括:

获取图像单元的第一参考单元,该图像单元和该第一参考单元使用相同的仿射模型获取各自的预测图像;

获取该第一参考单元的至少两个预置位置的基本运动补偿单元的运动信息;

根据该运动信息,获取该图像单元的基本运动补偿单元的运动信息。

结合第一方面,在第一方面的第一种可能的实现方式中,获取图像单元的第一参考单元,包括:

按照预置的顺序,检查该图像单元的相邻预测单元是否使用该仿射模型获取预测图像;

若是,则停止该检查并将该预测单元作为该第一参考单元。

结合第一方面,在第一方面的第二种可能的实现方式中,预置位置是该第一参考单元中的单元角点位置。

结合第一方面,第一方面的第一种可能的实现方式,第一方面的第二种可能的实现方式中的任一可能的实现方式,在第一方面的第三种可能的实现方式中,获取该第一参考单元的至少两个预置位置的基本运动补偿单元的运动信息,包括:

获取该第一参考单元的三个预置位置的基本运动补偿单元的运动信息;

对应,根据该运动信息,获取该图像单元的基本运动补偿单元的运动信息,包括:

根据该第一参考单元的三个预置位置的基本运动补偿单元的预测方向、参考帧索引和运动矢量,获取该图像单元的基本运动补偿单元的预测方向、参考帧索引和运动矢量。

结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,根据该第一参考单元的三个预置位置的基本运动补偿单元的预测方向、参考帧索引和运动矢量,获取该图像单元的基本运动补偿单元的预测方向、参考帧索引和运动矢量,包括:

赋予该图像单元的基本运动补偿单元和该第一参考单元的三个预置位置的基本运动补偿单元相同的预测方向;

赋予该图像单元的基本运动补偿单元和该第一参考单元的三个预置位置的基本运动补偿单元相同的参考帧索引;

根据该第一参考单元的三个预置位置的基本运动补偿单元的运动矢量,插值获取该图像单元的基本运动补偿单元的运动矢量。

结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,根据该第一参考单元的三个预置位置的基本运动补偿单元的运动矢量,插值获取该图像单元的基本运动补偿单元的运动矢量,通过如下方式实现:

vx=ax-by-e

vy=cx-dy-f

e=ax1-by1-vx1

f=cx1-dy1-vy1

其中,x和y分别为该图像单元的基本运动补偿单元的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x1、x2、x3和y1、y2、y3分别为该第一参考单元的三个预置位置的基本运动补偿单元的水平、竖直坐标,vx1、vx2、vx3和vy1、vy2、vy3为对应的水平、竖直运动矢量。

结合第一方面,第一方面的第一种可能的实现方式,第一方面的第二种可能的实现方式中的任一可能的实现方式,在第一方面的第六种可能的实现方式中,获取该第一参考单元的至少两个预置位置的基本运动补偿单元的运动信息,包括:

获取该第一参考单元的两个预置位置的基本运动补偿单元的运动信息;

对应,根据该运动信息,获取该图像单元的基本运动补偿单元的运动信息,包括:根据该第一参考单元的两个预置位置的基本运动补偿单元的预测方向、参考帧索引和运动矢量,获取该图像单元的基本运动补偿单元的预测方向、参考帧索引和运动矢量。

结合第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,根据该第一参考单元的两个预置位置的基本运动补偿单元的预测方向、参考帧索引和运动矢量,获取该图像单元的基本运动补偿单元的预测方向、参考帧索引和运动矢量,包括:

赋予该图像单元的基本运动补偿单元和该第一参考单元的两个预置位置的基本运动补偿单元相同的预测方向;

赋予该图像单元的基本运动补偿单元和该第一参考单元的两个预置位置的基本运动补偿单元相同的参考帧索引;

根据该第一参考单元的两个预置位置的基本运动补偿单元的运动矢量,插值获取该图像单元的基本运动补偿单元的运动矢量。

结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,根据该第一参考单元的两个预置位置的基本运动补偿单元的运动矢量,插值获取该图像单元的基本运动补偿单元的运动矢量,通过如下方式实现:

vx=a2x-a3y-a0

vy=a2y+a3x-a1

a0=a2x2-a3y2-vx2

a1=a2y2+a3x2-vy2

其中,x和y分别为该图像单元的基本运动补偿单元的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x1、x2和y1、y2分别为该第一参考单元的两个预置位置的基本运动补偿单元的水平、竖直坐标,vx1、vx2和vy1、vy2为对应的水平、竖直运动矢量。

第二方面,提供了一种图像预测的设备,包括:

第一获取模块,用于获取图像单元的第一参考单元,该图像单元和该第一参考单元使用相同的仿射模型获取各自的预测图像;

第二获取模块,用于获取该第一参考单元的至少两个预置位置的基本运动补偿单元的运动信息;

第三获取模块,用于根据该位置信息和运动信息,获取该图像单元的基本运动补偿单元的运动信息。

结合第二方面,在第二方面的第一种可能的实现方式中,第一获取模块用于:

按照预置的顺序,检查该图像单元的相邻预测单元是否使用该仿射模型获取预测图像;

若是,则停止该检查并将该预测单元作为该第一参考单元。

结合第二方面,在第二方面的第二种可能的实现方式中,预置位置是该第一参考单元中的单元角点位置。

结合第二方面,第二方面的第一种可能的实现方式,第二方面的第二种可能的实现方式中的任一可能的实现方式,在第二方面的第三种可能的实现方式中,第三获取模块用于:

获取该第一参考单元的三个预置位置的基本运动补偿单元的运动信息;

对应,根据该运动信息,获取该图像单元的基本运动补偿单元的运动信息,包括:

根据该第一参考单元的三个预置位置的基本运动补偿单元的预测方向、参考帧索引和运动矢量,获取该图像单元的基本运动补偿单元的预测方向、参考帧索引和运动矢量。

结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,第三获取模块还用于:

赋予该图像单元的基本运动补偿单元和该第一参考单元的三个预置位置的基本运动补偿单元相同的预测方向;

赋予该图像单元的基本运动补偿单元和该第一参考单元的三个预置位置的基本运动补偿单元相同的参考帧索引;

根据该第一参考单元的三个预置位置的基本运动补偿单元的运动矢量,插值获取该图像单元的基本运动补偿单元的运动矢量。

结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,根据该第一参考单元的三个预置位置的基本运动补偿单元的运动矢量,插值获取该图像单元的基本运动补偿单元的运动矢量,通过如下方式实现:

vx=ax-by-e

vy=cx-dy-f

e=ax1-by1-vx1

f=cx1-dy1-vy1

其中,x和y分别为该图像单元的基本运动补偿单元的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x1、x2、x3和y1、y2、y3分别为该第一参考单元的三个预置位置的基本运动补偿单元的水平、竖直坐标,vx1、vx2、vx3和vy1、vy2、vy3为对应的水平、竖直运动矢量。

结合第二方面,第二方面的第一种可能的实现方式,第二方面的第二种可能的实现方式中的任一可能的实现方式,在第二方面的第六种可能的实现方式中,第三获取模块用于:

获取该第一参考单元的两个预置位置的基本运动补偿单元的运动信息;

对应,根据该运动信息,获取该图像单元的基本运动补偿单元的运动信息,包括:

根据该第一参考单元的两个预置位置的基本运动补偿单元的预测方向、参考帧索引和运动矢量,获取该图像单元的基本运动补偿单元的预测方向、参考帧索引和运动矢量。

结合第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,第三获取模块还用于:

赋予该图像单元的基本运动补偿单元和该第一参考单元的两个预置位置的基本运动补偿单元相同的预测方向;

赋予该图像单元的基本运动补偿单元和该第一参考单元的两个预置位置的基本运动补偿单元相同的参考帧索引;

根据该第一参考单元的两个预置位置的基本运动补偿单元的运动矢量,插值获取该图像单元的基本运动补偿单元的运动矢量。

结合第二方面的第七种可能的实现方式,在第二方面的第八种可能的实现方式中,根据该第一参考单元的两个预置位置的基本运动补偿单元的运动矢量,插值获取该图像单元的基本运动补偿单元的运动矢量,通过如下方式实现:

vx=a2x-a3y-a0

vy=a2y+a3x-a1

a0=a2x2-a3y2-vx2

a1=a2y2+a3x2-vy2

其中,x和y分别为该图像单元的基本运动补偿单元的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x1、x2和y1、y2分别为该第一参考单元的两个预置位置的基本运动补偿单元的水平、竖直坐标,vx1、vx2和vy1、vy2为对应的水平、竖直运动矢量。

基于上述技术方案,本发明实施例的图像预测的方法及设备,通过复用采用相同的仿射预模型的第一参考单元的运动信息,更为准确的获得当前图像单元的运动矢量,不需要编解码运动矢量差异,不需要额外的高精度运动矢量搜索,由此,提高了预测准确度的同时,维持了编解码的复杂度,提升编解码性能。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的图像预测的方法的示意性流程图;

图2是根据本发明实施例的候选预测单元的示意图;

图3是根据本发明实施例的仿射图像块及控制点的示意图;

图4是根据本发明实施例的图像预测的方法的另一示意性流程图;

图5是根据本发明实施例的图像预测的设备的示意性框图;

图6是根据本发明实施例的图像预测的设备的另一示意性框图;

图7是根据本发明实施例的图像预测的设备的另一示意性框图;

图8是根据本发明实施例的图像预测的设备的另一示意性框图;

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应理解,在本发明实施例中,采用两个预测单元控制点(4参数)的旋转缩放仿射模型,还可以采用三个预测单元控制点(6参数)的旋转缩放仿射模型,或者四个预测单元控制点(8参数)的透视仿射模型等,不作限定。

应理解,基本运动补偿单元是进行运动补偿的最小单元,在单元内具有统一的运动信息,在本发明实施例中,采用像素点作为基本运动补偿单元,也可以使用像素矩阵作为基本运动补偿单元等,不作限定。

应理解,在4参数仿射模型中,任意两个基本运动补偿单元的运动信息都可以插值出其所在的仿射预测单元内的所有运动补偿单元的运动信息。优选地,选择仿射预测单元的任意两个单元角点处的基本运动补偿单元能够获得更准确的插值运动信息。其中,单元角点的位置指的是仿射预测单元,也即第一参考单元,相邻的两边交汇的点,例如,若仿射预测单元为三角形时,单元角点指三角形的三个顶点,四边形时指四边形的四个顶点,以此类推。在本实施例中,为了描述简单,把插值出所在的仿射预测单元内的所有运动补偿单元的运动信息的基本运动补偿单元称为控制点。

本发明实施例提供一种图像预测方法,其通过解码器来实现,该方法具体包括:

获取图像单元的第一参考单元,其中,图像单元和所述第一参考单元使用相同的仿射模型获取各自的预测图像;

获取第一参考单元的至少两个预置位置的基本运动补偿单元的运动信息;根据运动信息,获取图像单元的基本运动补偿单元的运动信息。

本发明实施例的图像预测的方法及设备,通过复用采用相同的仿射预模型的第一参考单元的运动信息,更为准确的获得当前图像单元的运动矢量,不需要编解码运动矢量差异,不需要额外的高精度运动矢量搜索,由此,提高了预测准确度的同时,维持了编解码的复杂度,提升编解码性能。

优选地,所述预置位置是第一参考单元中的单元角点位置,所谓角点位置是第一参考单元相邻的两边交汇的点。

优选地,获取所述第一参考单元的至少两个预置位置的基本运动补偿单元的运动信息,示例性地,包括:

获取第一参考单元的三个预置位置的基本运动补偿单元的运动信息;对应,根据运动信息,获取图像单元的基本运动补偿单元的运动信息,包括:根据第一参考单元的三个预置位置的基本运动补偿单元的预测方向、参考帧索引和运动矢量,获取图像单元的基本运动补偿单元的预测方向、参考帧索引和运动矢量。

其中,根据第一参考单元的三个预置位置的基本运动补偿单元的预测方向、参考帧索引和运动矢量,获取图像单元的基本运动补偿单元的预测方向、参考帧索引和运动矢量,可以是:

赋予图像单元的基本运动补偿单元和第一参考单元的两个预置位置的基本运动补偿单元相同的预测方向;赋予图像单元的基本运动补偿单元和第一参考单元的两个预置位置的基本运动补偿单元相同的参考帧索引;根据第一参考单元的三个预置位置的基本运动补偿单元的运动矢量,插值获取图像单元的基本运动补偿单元的运动矢量。

其中,根据第一参考单元的三个预置位置的基本运动补偿单元的运动矢量,插值获取图像单元的基本运动补偿单元的运动矢量,通过如下方式实现:

vx=a2x-a3y-a0

vy=a2y+a3x-a1

a0=a2x2-a3y2-vx2

a1=a2y2+a3x2-vy2

其中,x和y分别为图像单元的基本运动补偿单元的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x1、x2和y1、y2分别为第一参考单元的两个预置位置的基本运动补偿单元的水平、竖直坐标,vx1、vx2和vy1、vy2为对应的水平、竖直运动矢量;

上述插值获取图像单元的基本运动补偿单元的运动矢量的公式是任意选择预置位置的第一参考单元的基本运动补偿单元的运动信息来完成插值的普遍的公式,在具体实施例中,根据不同的应用场景,该公式可以根据预置位置选择的特殊性进行简化,比如在本发明具体实施例中,预置位置选择为单元左上、左下和右上单元角点,则公式简化为:

其中,x和y分别为待处理块的像素点的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x1、x2、x3和y1、y2、y3分别为仿射预测单元的三个控制点的水平、竖直坐标,vx1、vx2、vx3和vy1、vy2、vy3为对应的水平、竖直运动矢量。

示例性地,还包括:

获取第一参考单元的两个预置位置的基本运动补偿单元的运动信息;对应,根据运动信息,获取图像单元的基本运动补偿单元的运动信息,包括:根据第一参考单元的两个预置位置的基本运动补偿单元的预测方向、参考帧索引和运动矢量,获取图像单元的基本运动补偿单元的预测方向、参考帧索引和运动矢量;

根据第一参考单元的两个预置位置的基本运动补偿单元的运动矢量,插值获取图像单元的基本运动补偿单元的运动矢量,通过如下方式实现:

vx=a2x-a3y-a0

vy=a2y+a3x-a1

a0=a2x2-a3y2-vx2

a1=a2y2+a3x2-vy2

其中,x和y分别为图像单元的基本运动补偿单元的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x1、x2和y1、y2分别为第一参考单元的两个预置位置的基本运动补偿单元的水平、竖直坐标,vx1、vx2和vy1、vy2为对应的水平、竖直运动矢量。

上述插值获取图像单元的基本运动补偿单元的运动矢量的公式是任意选择预置位置的第一参考单元的基本运动补偿单元的运动信息来完成插值的普遍的公式,在具体实施例中,根据不同的应用场景,该公式可以根据预置位置选择的特殊性进行简化,比如在本发明具体实施例中,预置位置选择为单元左上和右上单元角点,则公式简化为:

其中,x和y分别为待处理图像块的像素点的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x0、x1和y0、y1分别为仿射预测单元的两个控制点的水平、竖直坐标,其中y0和y1相等,vx0、vx1和vy0、vy1为对应的水平、竖直运动矢量。

此外,本发明还提供一种应用编码过程中的图像预测方法,该应用与编码过程中的图像预测方法与本发明提供的上述应用于解码过程中的图像预测方法相同,因此,可以获得相同的提升编码性能的效果。

以下通过具体的例子来说明本发明的具体实现方式。

图1示出了根据本发明实施例的图像预测方法的示意性流程图。图1所示的方法可以由解码设备执行,例如解码器。

具体地,如图1所示,方法1000包括:

s1100,读取码流,解析语法元素,该语法元素用来判断当前待处理块是否复用相邻块的仿射模型运动信息,当确定当前待处理块复用相邻块仿射模型运动信息时,继续步骤s1200。

s1200,确定作为当前待处理块参考的仿射运动预测单元。

该步骤的第一种具体实施方法1210,包括:

s1211,确定当前待处理块的候选预测单元集合。

如图2所示,本发明实施例中选择当前待处理块空间相邻a,b,c,d,e五个位置的4x4块分别所在的预测单元组成集合,应理解,也可以选择a,b,c,d,e中的其中几个位置,也可以选择其他时域相邻块所在的预测单元组成集合,不作限定。

s1212,按照预置的顺序,检查集合中的预测单元是否是仿射运动预测单元。

其中,预置的顺序为编、解码端通过协议预先确定并编、解码端保持一致的顺序,本发明实施例中预置的顺序为a,b,c,d,e,应理解,也可以为b,d,a,e,c等其它顺序,不作限定。

s1213,若检查到的预测单元是仿射运动预测单元,则停止检查,并将这个预测单元作为当前待处理块参考的仿射运动预测单元。

该步骤的第二种具体实施方法1220,包括:

s1221,确定当前待处理块的候选预测单元集合。

除了和s1211相同的集合确定方式之外,还可以包括,将上述集合中非仿射预测单元块移出集合,例如s1211的确定方式所确定的集合为a,b,c,d,e所在的预测单元,其中c,d所在的预测单元不是仿射预测单元,则将c,d从集合中移出,确定的候选预测单元集合为a,b,e所在的预测单元。

还可以包括,限制集合的容量,将检查顺序排在容许数量之外的候选预测单元移出集合,例如限定集合中最多有2个候选预测单元,s1211的确定方式和s1212的检查顺序所确定的集合及检查顺序为a,d,c,e,b,则将c,e,b从集合中移出,确定的候选预测单元集合为a,d所在的预测单元。应理解,也可以限定集合的容量为3,4,在大于0且小于等于s1211的确定方式所确定的最大数量的范围内不作限定。

上述两种集合的确定方式,还可以叠加使用。

s1222,读取码流,解析语法元素,该语法元素用来表示作为当前待处理块参考的仿射运动预测单元在候选预测单元集合中的索引信息。

s1223,根据索引信息,确定作为当前待处理块参考的仿射运动预测单元。

示例性的,如果候选预测单元集合中,包含两个候选预测单元a和b,则a的索引为0,b的索引为1。读取码流,解析索引信息,如果索引信息为0,则a所在的预测单元为当前待处理块参考的仿射运动预测单元,反之,则b所在的预测单元为当前待处理块参考的仿射运动预测单元。

s1300,获取仿射预测单元的控制点的位置信息和运动信息。

该步骤的第一种具体实施方法1310,包括:从仿射预测单元的四个控制点中任选三个控制点,获得它们的位置信息,运动矢量信息,预测方向和参考帧索引,其中由于同一仿射预测单元的所有像素点具有相同的预测方向和参考帧索引,所以所有控制点的预测方向和参考帧索引也相同。

该步骤的第二种具体实施方法1320,包括:从仿射预测单元的四个控制点中任选两个控制点,不妨称为第一和第二控制点,获得它们的位置信息,运动矢量信息,预测方向和参考帧索引,再从余下的两个控制点中,再任选一个控制点,不妨称为第三控制点,获得它的位置信息。可以根据第一和第二控制点推导第三控制点的运动矢量信息,通过如下方式获得:

其中,x和y分别为第三控制点的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x1、x2和y1、y2分别为第一和第二控制点的水平、竖直坐标,vx1、vx2和vy1、vy2为对应的水平、竖直运动矢量。

由于同一仿射预测单元的所有像素点具有相同的预测方向和参考帧索引,所以所有控制点的预测方向和参考帧索引也相同。第三控制点具有和第一、第二控制点相同的预测方向和参考帧索引。

根据上述两种具体的实施方式中的任意一种,在s1300步骤之后,获得了至少三个控制点的运动信息和位置信息。

如图3所示,本发明实施例选择了待处理块的相邻块a所在的仿射预测单元的左上(x2,y2)、右上(x3,y3)、左下(x4,y4)三个顶点所代表的控制点,在该实施例中,x2和x4相等,y2和y3相等。

应理解,控制点的选择是任意的,不作限定。

s1400,根据上述选择的三个控制点的位置信息和运动信息,获取所述图像块的像素点的运动信息。

该步骤的第一种具体实施方法1410,包括:

s1411,由于所有控制点的预测方向和参考帧索引相同,将任一控制点的预测方向和参考帧索引赋予待处理图像块的像素点。还可以通过解析码流,获得待处理块的参考帧信息,参考帧信息包括预测方向和参考帧索引。

s1412,根据s1300中获取的任意三个控制点的位置信息和运动矢量,获取待处理图像块的像素点的运动矢量,通过如下方式实现:

其中,x和y分别为待处理块的像素点的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x1、x2、x3和y1、y2、y3分别为仿射预测单元的任意三个控制点的水平、竖直坐标,vx1、vx2、vx3和vy1、vy2、vy3为对应的水平、竖直运动矢量。

该步骤的第二种具体实施方法1420,包括:

s1421,由于所有控制点的预测方向和参考帧索引相同,将任一控制点的预测方向和参考帧索引赋予待处理图像块的像素点。还可以通过解析码流,获得待处理块的参考帧信息,参考帧信息包括预测方向和参考帧索引。

s1422,如图3所示,根据s1300中获取的任意三个控制点的位置信息和运动矢量,获取待处理块的任意两个控制点的运动矢量,通过如下方式实现:

其中,x0、x1和y0、y1分别为待处理图像块的两个控制点的水平、竖直坐标,其中y0和y1相等,vx0、vx1和vy0、vy1为对应的水平、竖直运动矢量,x2、x3、x4和y2、y3、y4分别为仿射预测单元的三个控制点的水平、竖直坐标,vx2、vx3、vx4和vy2、vy3、vy4为对应的水平、竖直运动矢量。

s1423,根据s1422中获取的两个控制点的运动矢量,获取待处理图像块的像素点的运动矢量,通过如下方式实现:

其中,x和y分别为所述图像块的像素点的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x0、x1和y0、y1分别为所述仿射预测单元的两个控制点的水平、竖直坐标,其中y0和y1相等,vx0、vx1和vy0、vy1为对应的水平、竖直运动矢量。

该步骤的第三种具体实施方法1430,包括:

s1431,由于所有控制点的预测方向和参考帧索引相同,将任一控制点的预测方向和参考帧索引赋予待处理图像块的像素点。还可以通过解析码流,获得待处理块的参考帧信息,参考帧信息包括预测方向和参考帧索引。

s1432,如图3所示,根据s1400中获取的任意三个控制点的位置信息和运动矢量,获取待处理图像块的任意两个控制点的运动矢量,通过如下方式实现:

其中,x0、x1和y0、y1分别为待处理图像块的两个控制点的水平、竖直坐标,其中y0和y1相等,vx0、vx1和vy0、vy1为对应的水平、竖直运动矢量,x2、x3、x4和y2、y3、y4分别为仿射预测单元的三个控制点的水平、竖直坐标,vx2、vx3、vx4和vy2、vy3、vy4为对应的水平、竖直运动矢量。

s1433,解析码流,获得待处理图像块的两个控制点的运动矢量的残差,将残差和根据s1432获得的两个控制点的运动矢量相加,得到更新后的待处理图像块的两个控制点的运动矢量。由于加入了残差,使更新后的运动矢量更准确。

s1434,根据s1433中获取的两个控制点的运动矢量,获取待处理图像块的像素点的运动矢量,通过如下方式实现:

其中,x和y分别为待处理图像块的像素点的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x0、x1和y0、y1分别为仿射预测单元的两个控制点的水平、竖直坐标,其中y0和y1相等,vx0、vx1和vy0、vy1为对应的水平、竖直运动矢量。

s1500,根据获得的预测方向,参考帧索引和运动矢量,进行运动补偿,找到待处理图像块像素点的预测值,所有像素点的预测值组成待处理图像的预测图像。

应理解,在本发明实施例中,第一、第二、第三和第四只是为了区分像素点,而不应该对本发明的保护范围构成任何限定,例如,第一控制点也可以称为第二控制点,第二控制点可以成为第一控制点等。

还应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

还应理解,在采用6参数仿射变换模型或8参数仿射变换模型时,获得预测图像的方法和采用4参数仿射变换模型时的获得方法本质上是相同的,为了简便,在此不再赘述。

具体而言,解码端通过复用采用相同的仿射预模型的仿射预测单元的运动信息,更为准确的获得当前图像单元的运动矢量,不需要编解码运动矢量差异,不需要额外的高精度运动矢量搜索,由此,提高了预测准确度的同时,维持了编解码的复杂度,提升编解码性能。

为了更好地证明本发明的有益效果,本发明实施例与现有技术中基于两个控制点的仿射变换模型的预测方法,在随机接入(randomaccess),低时延(lowdelay)的编码配置下进行性能对比,负值表示编码性能提升的百分比,正值表示编码性能下降的百分比。

表1仿射序列

可见,在随机接入低码率、随机接入高码率、低时延低码率和低时延高码率的测试条件下,本发明在复杂度基本保持不变的情况下,分别节省了2.7%,2.1%,5.7%和4.3%的码率,提高了编码效率。

以上结合图1至图3详细描述了根据本发明实施例的图像预测的方法在解码端的实现,下面将结合图2至图4详细描述根据本发明实施例的图像预测的方法在编码端的实现。应注意,编码端的有关操作本质上与解码端的一致,为了避免重复,在此不再赘述。

图4示出了根据本发明实施例的图像预测的方法的另一示意性流程图。图4所示的方法可以由编码设备执行,例如编码器。

具体地,如图4所示,方法2000包括:

s2100,确定作为当前待处理块参考的仿射运动预测单元。

该步骤的第一种具体实施方法2110,包括:

s2111,确定当前待处理块的候选预测单元集合。

如图2所示,本发明实施例中选择当前待处理块空间相邻a,b,c,d,e五个位置的4x4块分别所在的预测单元组成集合,应理解,也可以选择a,b,c,d,e中的其中几个位置,也可以选择其他时域相邻块所在的预测单元组成集合,不作限定。

s2112,按照预置的顺序,检查集合中的预测单元是否是仿射运动预测单元。

其中,预置的顺序为编、解码端通过协议预先确定并编、解码端保持一致的顺序,本发明实施例中预置的顺序为a,b,c,d,e,应理解,也可以为b,d,a,e,c等其它顺序,不作限定。

s2113,若检查到的预测单元是仿射运动预测单元,则停止检查,并将这个预测单元作为当前待处理块参考的仿射运动预测单元。

s2114,如果所有候选预测单元都不是仿射预测单元,编码语法元素,该语法元素用来表示当前待处理块不复用相邻块仿射预测信息,并停止执行后续步骤,否则继续执行后续步骤。

该步骤的第二种具体实施方法2120,包括:

s2121,确定当前待处理块的候选预测单元集合。

除了和s2111相同的集合确定方式之外,还可以包括,将上述集合中非仿射预测单元块移出集合,例如s1211的确定方式所确定的集合为a,b,c,d,e所在的预测单元,其中c,d所在的预测单元不是仿射预测单元,则将c,d从集合中移出,确定的候选预测单元集合为a,b,e所在的预测单元。

还可以包括,限制集合的容量,将检查顺序排在容许数量之外的候选预测单元移出集合,例如限定集合中最多有2个候选预测单元,s2111的确定方式和s2112的检查顺序所确定的集合及检查顺序为a,d,c,e,b,则将c,e,b从集合中移出,确定的候选预测单元集合为a,d所在的预测单元。应理解,也可以限定集合的容量为3,4,在大于0且小于等于s2111的确定方式所确定的最大数量的范围内不作限定。

上述两种集合的确定方式,还可以叠加使用。

s2122,如果所有候选预测单元都不是仿射预测单元,编码语法元素,该语法元素用来表示当前待处理块不复用相邻块仿射预测信息,并停止执行后续步骤,否则继续执行后续步骤。

s2123,为候选预测单元集合中的每一个候选预测单元赋予一个索引值,编、解码端通过协议预先确定每一个索引值所代表的候选预测单元,并编、解码端保持一致。

s2124,遍历候选预测单元集合中的每一个候选预测单元,按照后续步骤s2200至s2400处理,获得待处理块的预测图像,并且完成待处理块的编码。比较选择每一个候选预测矢量所带来的编码增益,选择编码增益最大的候选预测单元,作为待处理图像块参考的仿射运动预测单元。

示例性的,如果候选预测单元集合中,包含两个候选预测单元a和b,则a的索引为0,b的索引为1。如果以a为当前待处理块参考的仿射运动预测单元,完成后续处理步骤,得待处理块的预测图像,并且完成待处理块的编码,获得的增益最大,则以a为当前待处理块参考的仿射运动预测单元,反之,则b为当前待处理块参考的仿射运动预测单元。

应理解,为了提高编码速度,s2124步骤还可以用快速算法来替换,比如,可以选取候选预测单元集合中的部分候选预测单元,而不是全部候选预测单元进行遍历;还可以,不完成待处理块的完整编码过程,当得到预测图像以后,仅按照预测图像的准确度,选择能得到最准确预测图像的预测单元作为待处理块的参考的仿射运动预测单元。

s2200,获取仿射预测单元的控制点的位置信息和运动信息,该步骤与s1300一致,不再重复。

s2300,根据上述选择的三个控制点的位置信息和运动信息,获取所述图像块的像素点的运动信息,该步骤与s1400一致,不再重复。

s2400,根据获得的预测方向,参考帧索引和运动矢量,进行运动补偿,找到待处理图像块像素点的预测值,所有像素点的预测值组成待处理图像的预测图像,该步骤与s1500一致,不再重复。

s2500,比较采用步骤s2100至s2400获得的预测图像完成编码的编码性能和采用其他方法获得预测图像完成编码的编码性能,选择编码增益最大的方法,作为编码预测图像的方法。

应理解,为了提高编码速度,s2500也可以采用s2124中描述的快速算法,不再重复。

s2600,如果采用步骤s2100至s2400获得的预测图像的方法在s2500中被采用,编码语法元素,该语法元素用来表示当前待处理块采用步骤s2100至s2400获得的预测图像的方法获得预测图像,并且编码另一个语法元素,该语法元素用来表示s2124中选择的预测单元的索引信息。

应理解,本发明实施例中的图像预测方法作为一种预测技术,同样可以和现有技术中的其他预测技术进行技术融合,比如使用多个参考帧进行预测的技术,不作限定。

具体而言,编码端通过复用采用相同的仿射预模型的第一参考单元的运动信息,更为准确的获得当前图像单元的运动矢量,不需要编解码运动矢量差异,不需要额外的高精度运动矢量搜索,由此,提高了预测准确度的同时,维持了编解码的复杂度,提升编解码性能。

下面将结合图5详细描述本发明实施例的解码设备。如图5所示,该解码设备10包括:

第一获取模块11,用于获取图像单元的仿射运动预测单元;

第二获取模块12,用于获取该仿射运动预测单元的位置信息和运动信息;

第三获取模块13,用于根据该位置信息和运动信息,获取该图像单元的运动信息。

具体而言,编码端通过复用采用相同的仿射预模型的第一参考单元的运动信息,更为准确的获得当前图像单元的运动矢量,不需要编解码运动矢量差异,不需要额外的高精度运动矢量搜索,由此,提高了预测准确度的同时,维持了编解码的复杂度,提升编解码性能。

在本发明实施例中,可选地,读取码流,解析语法元素,该语法元素用来判断当前待处理块是否复用相邻块的仿射模型运动信息,当确定当前待处理块复用相邻块仿射模型运动信息时,继续执行。

在本发明实施例中,可选地,第一获取模块11具体用于:确定作为当前待处理块参考的仿射运动预测单元,包括:确定当前待处理块的候选预测单元集合,按照预置的顺序,检查集合中的预测单元是否是仿射运动预测单元,若检查到的预测单元是仿射运动预测单元,则停止检查,并将这个预测单元作为当前待处理块参考的仿射运动预测单元;或者,确定当前待处理块的候选预测单元集合,读取码流,解析语法元素,该语法元素用来表示作为当前待处理块参考的仿射运动预测单元在候选预测单元集合中的索引信息,根据索引信息,确定作为当前待处理块参考的仿射运动预测单元。

在本发明实施例中,可选地,第二获取模块12具体用于:获取仿射预测单元的控制点的位置信息和运动信息,包括:从仿射预测单元的四个控制点中任选三个控制点,获得它们的位置信息,运动矢量信息,预测方向和参考帧索引;或者,从仿射预测单元的四个控制点中任选两个控制点,不妨称为第一和第二控制点,获得它们的位置信息,运动矢量信息,预测方向和参考帧索引,再从余下的两个控制点中,再任选一个控制点,不妨称为第三控制点,获得它的位置信息,可以根据第一和第二控制点推导第三控制点的运动矢量信息,通过如下方式获得:

其中,x和y分别为第三控制点的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x1、x2和y1、y2分别为第一和第二控制点的水平、竖直坐标,其中y1和y2相等,vx1、vx2和vy1、vy2为对应的水平、竖直运动矢量。

由于同一仿射预测单元的所有像素点具有相同的预测方向和参考帧索引,所以所有控制点的预测方向和参考帧索引也相同。第三控制点具有和第一、第二控制点相同的预测方向和参考帧索引。

在本发明实施例中,可选地,第三获取模块13具体用于:根据上述选择的三个控制点的位置信息和运动信息,获取所述图像块的像素点的运动信息,包括:将任一控制点的预测方向和参考帧索引赋予待处理图像块的像素点,还可以通过解析码流,获得待处理块的参考帧信息,参考帧信息包括预测方向和参考帧索引。

在本发明实施例中,可选地,第三获取模块13具体用于:根据上述选择的三个控制点的位置信息和运动信息,获取所述图像块的像素点的运动信息,包括:根据获取的任意三个控制点的位置信息和运动矢量,获取待处理图像块的像素点的运动矢量,通过如下方式实现:

其中,x和y分别为待处理块的像素点的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x1、x2、x3和y1、y2、y3分别为仿射预测单元的任意三个控制点的水平、竖直坐标,vx1、vx2、vx3和vy1、vy2、vy3为对应的水平、竖直运动矢量;

或者,根据获取的任意三个控制点的位置信息和运动矢量,获取待处理块的任意两个控制点的运动矢量,通过如下方式实现:

其中,x0、x1和y0、y1分别为待处理图像块的两个控制点的水平、竖直坐标,其中y0和y1相等,vx0、vx1和vy0、vy1为对应的水平、竖直运动矢量,x0和y0分别为待处理图像块的一个控制点的水平、竖直坐标,x2、x3、x4和y2、y3、y4分别为仿射预测单元的三个控制点的水平、竖直坐标,vx2、vx3、vx4和vy2、vy3、vy4为对应的水平、竖直运动矢量。

根据获取的两个控制点的运动矢量,获取待处理图像块的像素点的运动矢量,通过如下方式实现:

其中,x和y分别为所述图像块的像素点的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x0、x1和y0、y1分别为所述仿射预测单元的两个控制点的水平、竖直坐标,其中y0和y1相等,vx0、vx1和vy0、vy1为对应的水平、竖直运动矢量。

或者,根据获取的任意三个控制点的位置信息和运动矢量,获取待处理图像块的任意两个控制点的运动矢量,通过如下方式实现:

其中,x0、x1和y0、y1分别为待处理图像块的两个控制点的水平、竖直坐标,其中y0和y1相等,vx0、vx1和vy0、vy1为对应的水平、竖直运动矢量,x2、x3、x4和y2、y3、y4分别为仿射预测单元的三个控制点的水平、竖直坐标,vx2、vx3、vx4和vy2、vy3、vy4为对应的水平、竖直运动矢量。

解析码流,获得待处理图像块的两个控制点的运动矢量的残差,将残差和获得的两个控制点的运动矢量相加,得到更新后的待处理图像块的两个控制点的运动矢量。

根据获取的两个控制点的运动矢量,获取待处理图像块的像素点的运动矢量,通过如下方式实现:

其中,x和y分别为待处理图像块的像素点的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x0、x1和y0、y1分别为仿射预测单元的两个控制点的水平、竖直坐标,其中y0和y1相等,vx0、vx1和vy0、vy1为对应的水平、竖直运动矢量。

在本发明实施例中,可选地,第三获取模块13具体用于:根据获得的预测方向,参考帧索引和运动矢量,进行运动补偿,找到待处理图像块像素点的预测值,所有像素点的预测值组成待处理图像的预测图像。

应理解,根据本发明实施例的编码设备10可对应于执行本发明实施例中的图像预测的方法1000,并且编码设备10中的各个模块的上述和其它操作和/或功能分别为了实现图1中的各个方法的相应流程,为了简洁,在此不再赘述。

因此,本发明实施例的解码设备通过复用采用相同的仿射预模型的第一参考单元的运动信息,更为准确的获得当前图像单元的运动矢量,不需要编解码运动矢量差异,不需要额外的高精度运动矢量搜索,由此,提高了预测准确度的同时,维持了编解码的复杂度,提升编解码性能。

下面将结合图6详细描述本发明实施例的编码设备。如图6所示,该编码设备20包括:

第一获取模块11,用于获取图像单元的仿射运动预测单元;

第二获取模块12,用于获取该仿射运动预测单元的位置信息和运动信息;

第三获取模块13,用于根据该位置信息和运动信息,获取该图像单元的运动信息。

具体而言,编码端通过复用采用相同的仿射预模型的第一参考单元的运动信息,更为准确的获得当前图像单元的运动矢量,不需要编解码运动矢量差异,不需要额外的高精度运动矢量搜索,由此,提高了预测准确度的同时,维持了编解码的复杂度,提升编解码性能。

在本发明实施例中,可选地,该第一获取模块21具体用于:确定作为当前待处理块参考的仿射运动预测单元,包括:确定当前待处理块的候选预测单元集合,按照预置的顺序,检查集合中的预测单元是否是仿射运动预测单元,若检查到的预测单元是仿射运动预测单元,则停止检查,并将这个预测单元作为当前待处理块参考的仿射运动预测单元,如果所有候选预测单元都不是仿射预测单元,编码语法元素,该语法元素用来表示当前待处理块不复用相邻块仿射预测信息,并停止执行,否则继续执行;或者,确定当前待处理块的候选预测单元集合,如果所有候选预测单元都不是仿射预测单元,编码语法元素,该语法元素用来表示当前待处理块不复用相邻块仿射预测信息,并停止执行,否则继续执行,为候选预测单元集合中的每一个候选预测单元赋予一个索引值,编、解码端通过协议预先确定每一个索引值所代表的候选预测单元,并编、解码端保持一致,遍历候选预测单元集合中的每一个候选预测单元,获得待处理块的预测图像,并且完成待处理块的编码。比较选择每一个候选预测矢量所带来的编码增益,选择编码增益最大的候选预测单元,作为待处理图像块参考的仿射运动预测单元。

在本发明实施例中,可选地,该第二获取模块22具体用于:获取仿射预测单元的控制点的位置信息和运动信息,该模块与第二获取模块12作用相同,不再重复。

在本发明实施例中,可选地,该第三获取模块23具体用于:根据上述选择的三个控制点的位置信息和运动信息,获取所述图像块的像素点的运动信息,该模块与第三获取模块13作用相同,不再重复。

在本发明实施例中,可选地,该第三获取模块23具体用于:根据获得的预测方向,参考帧索引和运动矢量,进行运动补偿,找到待处理图像块像素点的预测值,所有像素点的预测值组成待处理图像的预测图像,该模块与第三获取模块13作用相同,不再重复。

在本发明实施例中,可选地,比较采用本设备获得的预测图像完成编码的编码性能和采用其他设备获得预测图像完成编码的编码性能,选择编码增益最大的设备,作为编码预测图像的设备。

在本发明实施例中,可选地,如果采用本设备获得的预测图像被采用,编码语法元素,该语法元素用来表示本设备获得的预测图像的方法被采用,并且编码另一个语法元素,该语法元素用来表示被选择的预测单元的索引信息。

应理解,根据本发明实施例的编码设备20可对应于执行本发明实施例中的图像预测的方法2000,并且编码设备20中的各个模块的上述和其它操作和/或功能分别为了实现图4中的各个方法的相应流程,为了简洁,在此不再赘述。

因此,本发明实施例的编码设备通过复用采用相同的仿射预模型的第一参考单元的运动信息,更为准确的获得当前图像单元的运动矢量,不需要编解码运动矢量差异,不需要额外的高精度运动矢量搜索,由此,提高了预测准确度的同时,维持了编解码的复杂度,提升编解码性能。

如图7所示,本发明实施例还提供了一种解码设备30,包括处理器31、存储器32和总线系统33。其中,处理器31和存储器32通过总线系统33相连,该存储器32用于存储指令,该处理器31用于执行该存储器32存储的指令。解码设备30的存储器32存储程序代码,且处理器31可以调用存储器32中存储的程序代码执行以下操作:获取图像单元的第一参考单元,所述图像单元和所述第一参考单元使用相同的仿射模型获取各自的预测图像;获取所述第一参考单元的至少两个预置位置的基本运动补偿单元的运动信息;根据所述运动信息,获取所述图像单元的基本运动补偿单元的运动信息。

因此,本发明实施例的解码设备通过复用采用相同的仿射预模型的第一参考单元的运动信息,更为准确的获得当前图像单元的运动矢量,不需要编解码运动矢量差异,不需要额外的高精度运动矢量搜索,由此,提高了预测准确度的同时,维持了编解码的复杂度,提升编解码性能。

应理解,在本发明实施例中,该处理器31可以是中央处理单元(centralprocessingunit,简称为“cpu”),该处理器31还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

该存储器32可以包括只读存储器和随机存取存储器,并向处理器31提供指令和数据。存储器32的一部分还可以包括非易失性随机存取存储器。例如,存储器32还可以存储设备类型的信息。

该总线系统33除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统33。

在实现过程中,上述方法的各步骤可以通过处理器31中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器32,处理器31读取存储器32中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

可选地,作为一个实施例,该处理器31具体用于:读取码流,解析语法元素,该语法元素用来判断当前待处理块是否复用相邻块的仿射模型运动信息,当确定当前待处理块复用相邻块仿射模型运动信息时,继续执行。

可选地,作为一个实施例,该处理器31具体用于:确定作为当前待处理块参考的仿射运动预测单元,包括:确定当前待处理块的候选预测单元集合,按照预置的顺序,检查集合中的预测单元是否是仿射运动预测单元,若检查到的预测单元是仿射运动预测单元,则停止检查,并将这个预测单元作为当前待处理块参考的仿射运动预测单元;或者,确定当前待处理块的候选预测单元集合,读取码流,解析语法元素,该语法元素用来表示作为当前待处理块参考的仿射运动预测单元在候选预测单元集合中的索引信息,根据索引信息,确定作为当前待处理块参考的仿射运动预测单元。

可选地,作为一个实施例,该处理器31具体用于:获取仿射预测单元的控制点的位置信息和运动信息,包括:从仿射预测单元的四个控制点中任选三个控制点,获得它们的位置信息,运动矢量信息,预测方向和参考帧索引;或者,从仿射预测单元的四个控制点中任选两个控制点,不妨称为第一和第二控制点,获得它们的位置信息,运动矢量信息,预测方向和参考帧索引,再从余下的两个控制点中,再任选一个控制点,不妨称为第三控制点,获得它的位置信息,可以根据第一和第二控制点推导第三控制点的运动矢量信息,通过如下方式获得:

其中,x和y分别为第三控制点的水平、竖直坐标,其中y1和y2相等vx和vy为对应的水平、竖直运动矢量,x1、x2和y1、y2分别为第一和第二控制点的水平、竖直坐标,vx1、vx2和vy1、vy2为对应的水平、竖直运动矢量。

由于同一仿射预测单元的所有像素点具有相同的预测方向和参考帧索引,所以所有控制点的预测方向和参考帧索引也相同。第三控制点具有和第一、第二控制点相同的预测方向和参考帧索引。

可选地,作为一个实施例,该处理器31具体用于:根据上述选择的三个控制点的位置信息和运动信息,获取所述图像块的像素点的运动信息,包括:将任一控制点的预测方向和参考帧索引赋予待处理图像块的像素点,还可以通过解析码流,获得待处理块的参考帧信息,参考帧信息包括预测方向和参考帧索引。

可选地,作为一个实施例,该处理器31具体用于:根据上述选择的三个控制点的位置信息和运动信息,获取所述图像块的像素点的运动信息,包括:根据获取的任意三个控制点的位置信息和运动矢量,获取待处理图像块的像素点的运动矢量,通过如下方式实现:

其中,x和y分别为待处理块的像素点的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x0和y0分别为待处理图像块的一个控制点的水平、竖直坐标,x1、x2、x3和y1、y2、y3分别为仿射预测单元的任意三个控制点的水平、竖直坐标,vx1、vx2、vx3和vy1、vy2、vy3为对应的水平、竖直运动矢量;

或者,根据获取的任意三个控制点的位置信息和运动矢量,获取待处理块的任意两个控制点的运动矢量,通过如下方式实现:

其中,x0、x1和y0、y1分别为待处理图像块的两个控制点的水平、竖直坐标,其中y0和y1相等,vx0、vx1和vy0、vy1为对应的水平、竖直运动矢量,x2、x3、x4和y2、y3、y4分别为仿射预测单元的三个控制点的水平、竖直坐标,vx2、vx3、vx4和vy2、vy3、vy4为对应的水平、竖直运动矢量。

根据获取的两个控制点的运动矢量,获取待处理图像块的像素点的运动矢量,通过如下方式实现:

其中,x和y分别为所述图像块的像素点的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x0、x1和y0、y1分别为所述仿射预测单元的两个控制点的水平、竖直坐标,其中y0和y1相等,vx0、vx1和vy0、vy1为对应的水平、竖直运动矢量。

或者,根据获取的任意三个控制点的位置信息和运动矢量,获取待处理图像块的任意两个控制点的运动矢量,通过如下方式实现:

其中,x0、x1和y0、y1分别为待处理图像块的两个控制点的水平、竖直坐标,其中y0和y1相等,vx0、vx1和vy0、vy1为对应的水平、竖直运动矢量,x2、x3、x4和y2、y3、y4分别为仿射预测单元的三个控制点的水平、竖直坐标,vx2、vx3、vx4和vy2、vy3、vy4为对应的水平、竖直运动矢量。

解析码流,获得待处理图像块的两个控制点的运动矢量的残差,将残差和获得的两个控制点的运动矢量相加,得到更新后的待处理图像块的两个控制点的运动矢量。

根据获取的两个控制点的运动矢量,获取待处理图像块的像素点的运动矢量,通过如下方式实现:

其中,x和y分别为待处理图像块的像素点的水平、竖直坐标,vx和vy为对应的水平、竖直运动矢量,x0、x1和y0、y1分别为仿射预测单元的两个控制点的水平、竖直坐标,其中y0和y1相等,vx0、vx1和vy0、vy1为对应的水平、竖直运动矢量。

可选地,作为一个实施例,该处理器31具体用于:根据获得的预测方向,参考帧索引和运动矢量,进行运动补偿,找到待处理图像块像素点的预测值,所有像素点的预测值组成待处理图像的预测图像。

应理解,根据本发明实施例的解码设备30可对应于本发明实施例中的解码设备10,并可以对应于执行根据本发明实施例的方法1000中的相应主体,并且解码设备30中的各个模块的上述和其它操作和/或功能分别为了实现图1中的各个方法的相应流程,为了简洁,在此不再赘述。

因此,本发明实施例的解码设备通过复用采用相同的仿射预模型的第一参考单元的运动信息,更为准确的获得当前图像单元的运动矢量,不需要编解码运动矢量差异,不需要额外的高精度运动矢量搜索,由此,提高了预测准确度的同时,维持了编解码的复杂度,提升编解码性能。

如图8所示,本发明实施例还提供了一种编码设备40,包括处理器41、存储器42和总线系统43。其中,处理器41和存储器42通过总线系统43相连,该存储器42用于存储指令,该处理器41用于执行该存储器42存储的指令。编码设备40的存储器42存储程序代码,且处理器41可以调用存储器42中存储的程序代码执行以下操作:获取图像单元的第一参考单元,所述图像单元和所述第一参考单元使用相同的仿射模型获取各自的预测图像;获取所述第一参考单元的至少两个预置位置的基本运动补偿单元的运动信息;根据所述运动信息,获取所述图像单元的基本运动补偿单元的运动信息。

因此,本发明实施例的编码设备通过通过复用采用相同的仿射预模型的第一参考单元的运动信息,更为准确的获得当前图像单元的运动矢量,不需要编解码运动矢量差异,不需要额外的高精度运动矢量搜索,由此,提高了预测准确度的同时,维持了编解码的复杂度,提升编解码性能。

应理解,在本发明实施例中,该处理器41可以是中央处理单元(centralprocessingunit,简称为“cpu”),该处理器41还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

该存储器42可以包括只读存储器和随机存取存储器,并向处理器41提供指令和数据。存储器42的一部分还可以包括非易失性随机存取存储器。例如,存储器42还可以存储设备类型的信息。

该总线系统43除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统43。

在实现过程中,上述方法的各步骤可以通过处理器41中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器42,处理器41读取存储器42中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

可选地,作为一个实施例,该处理器41具体用于:确定作为当前待处理块参考的仿射运动预测单元,包括:确定当前待处理块的候选预测单元集合,按照预置的顺序,检查集合中的预测单元是否是仿射运动预测单元,若检查到的预测单元是仿射运动预测单元,则停止检查,并将这个预测单元作为当前待处理块参考的仿射运动预测单元,如果所有候选预测单元都不是仿射预测单元,编码语法元素,该语法元素用来表示当前待处理块不复用相邻块仿射预测信息,并停止执行,否则继续执行;或者,确定当前待处理块的候选预测单元集合,如果所有候选预测单元都不是仿射预测单元,编码语法元素,该语法元素用来表示当前待处理块不复用相邻块仿射预测信息,并停止执行,否则继续执行,为候选预测单元集合中的每一个候选预测单元赋予一个索引值,编、解码端通过协议预先确定每一个索引值所代表的候选预测单元,并编、解码端保持一致,遍历候选预测单元集合中的每一个候选预测单元,获得待处理块的预测图像,并且完成待处理块的编码。比较选择每一个候选预测矢量所带来的编码增益,选择编码增益最大的候选预测单元,作为待处理图像块参考的仿射运动预测单元。

可选地,作为一个实施例,该处理器41具体用于:获取仿射预测单元的控制点的位置信息和运动信息,该模块与处理器31作用相同,不再重复。

可选地,作为一个实施例,该处理器41具体用于:根据上述选择的三个控制点的位置信息和运动信息,获取所述图像块的像素点的运动信息,该模块与处理器31作用相同,不再重复。

可选地,作为一个实施例,该处理器41具体用于:根据获得的预测方向,参考帧索引和运动矢量,进行运动补偿,找到待处理图像块像素点的预测值,所有像素点的预测值组成待处理图像的预测图像,该模块与处理器31作用相同,不再重复。

可选地,作为一个实施例,该处理器41具体用于:比较采用本设备获得的预测图像完成编码的编码性能和采用其他设备获得预测图像完成编码的编码性能,选择编码增益最大的设备,作为编码预测图像的设备。

可选地,作为一个实施例,该处理器41具体用于:如果采用本设备获得的预测图像被采用,编码语法元素,该语法元素用来表示本设备获得的预测图像的方法被采用,并且编码另一个语法元素,该语法元素用来表示被选择的预测单元的索引信息。

应理解,根据本发明实施例的编码设备40可对应于本发明实施例中的编码设备20,并可以对应于执行根据本发明实施例的方法2000中的相应主体,并且编码设备40中的各个模块的上述和其它操作和/或功能分别为了实现图4中的各个方法的相应流程,为了简洁,在此不再赘述。

因此,本发明实施例的编码设备通过复用采用相同的仿射预模型的第一参考单元的运动信息,更为准确的获得当前图像单元的运动矢量,不需要编解码运动矢量差异,不需要额外的高精度运动矢量搜索,由此,提高了预测准确度的同时,维持了编解码的复杂度,提升编解码性能。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。

在本发明的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

另外,本文中术语“系统”和“网络”在本文中常可互换使用。应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

在本申请所提供的实施例中,应理解,“与a相应的b”表示b与a相关联,根据a可以确定b。但还应理解,根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其它信息确定b。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称为“rom”)、随机存取存储器(randomaccessmemory,简称为“ram”)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1