首页> 中国专利> 运动估计方法、基于运动估计的多视编解码方法及装置

运动估计方法、基于运动估计的多视编解码方法及装置

摘要

本发明实施例中公开了一种多视运动估计方法。该方法包括以下步骤:将视频序列中的帧分为直接估算帧和间接估算帧;计算直接估算帧的运动矢量;根据相邻视摄像机的相对位置、相邻视间的视差图像和直接估算帧的运动矢量计算间接估算帧的运动矢量。本发明实施例中还公开了另一种运动估计方法,以及基于上述运动估计方法进行多视编码的方法和装置、进行多视解码方法和装置。应用本发明能够保证运动估计准确率的前提下,充分利用多视视频中相邻视之间的时间相关性和空间相关性,减少码流传输量,提高多视编码的效率。

著录项

  • 公开/公告号CN101242530A

    专利类型发明专利

  • 公开/公告日2008-08-13

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN200710007573.7

  • 发明设计人 史舒娟;陈海;

    申请日2007-02-08

  • 分类号H04N7/26(20060101);H04N7/32(20060101);H04N7/50(20060101);

  • 代理机构11018 北京德琦知识产权代理有限公司;

  • 代理人宋志强;麻海明

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-17 20:36:43

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-03-29

    未缴年费专利权终止 IPC(主分类):H04N7/26 授权公告日:20110601 终止日期:20160208 申请日:20070208

    专利权的终止

  • 2011-06-01

    授权

    授权

  • 2008-10-08

    实质审查的生效

    实质审查的生效

  • 2008-08-13

    公开

    公开

说明书

技术领域

本发明涉及视频图像编解码技术,特别涉及运动估计方法、基于运动估计的多视编解码方法及装置。

背景技术

目前的视频编码标准如国际电信联盟(ITU,InternationalTelecommunication Union)制定的H.261、H.263、H.263+、H.264标准,以及运动图像专家组(MPEG,Moving Picture Experts Group)制定的MPEG-1、MPEG-2、MPEG-3、MPEG-4等,都是建立在混合编码(Hybrid Coding)框架之上的。所谓混合编码框架是一种混合时间空间的视频图像编码方法,编码时,先进行帧内、帧间的预测,得到原始图像预测图像,以消除时间域的相关性;然后根据原始图像预测图像与原始图像实际图像的差值,得到残差图像,对残差图像采用离散余弦变换法或其它的变换法进行二维变换,以消除空间域的相关性;最后对变换后的数据进行熵编码,以消除统计上的冗余度,再将熵编码后的数据与解码所需的包括运动矢量在内的一些变量信息,组成一个编码码流,供后续传输和存储用,从而达到压缩视频图像的目的。相应地,在解码时,对接收到的编码码流按照熵解码、反变换以及预测补偿等一系列解码过程重建出图像。这里,一帧即为视频序列中的一个图像。

由于在单个摄像机拍摄到的视频序列中,相邻图像之间存在着很强的相关性;而在多视视频编码领域,采用多个摄像机对同一个场景进行拍摄时,所拍摄到的多个视频序列的图像之间也存在较大的相关性,因此,采用预测技术能够充分利用帧内以及帧间的空间、时间相关性,在消除相关性的基础上减小码率,提高压缩码流与原始图像的数据量压缩比。现有技术中主要存在两种预测方法,下面分别予以介绍。

第一种预测方法是利用同一个视频序列中相邻图像之间的时间相关性,对当前图像进行运动估计。具体而言,已知参考帧在t时刻的运动矢量,利用二维(2D)直接模式预测当前帧在t-i时刻的运动矢量,其中,i表示参考帧与当前帧的时间差值。为后续描述方便,将该方法称为单视编码运动估计算法。

在多视编码中,同一时刻相邻视之间存在很强的相关性,上述单视编码运动估计算法没有很好地利用这种空间相关性,使得编码效率较低。

第二种预测方法是在第一种预测方法的基础上利用多视几何中各视间的相关性,即利用参考视图像与当前视图像之间的视差图像,由参考视图像预测当前视图像。在单视或多视编码中,为了进行预测,通常将编码图像分为三类,分别称为I帧,P帧和B帧。其中,I帧采用帧内编码方式,P帧采用前向帧间预测方式,B帧采用双向帧间预测方式。下面以8个摄像机、且每个摄像机取连续9帧图像为一组的情况为例,说明现有视频联合工作组(JVT)多视时空编码框架中多视编码方法的实施过程。

图1为现有JVT中提出的多视时空编码框架示意图。参见图1,S0~S7分别代表8个摄像机所拍摄到的视频序列;T代表时刻,各视在T0~T8时刻所对应的图像即为各视频序列中的连续9帧,也称为一个视频段;图中箭头表示:箭头目的帧是由箭头源帧预测得到的。图1所示框架中,S0、S2、S4、S6和S7视的编码先于其相邻视,该编码方法包括以下步骤:

(1)对T0时刻和T8时刻S0视的I帧进行帧内编码,分别得到该两个时刻的I帧;再以T0时刻S0视的I帧预测T0时刻S2视的P帧、T8时刻S0视的I帧预测T8时刻S2视的P帧;以T0时刻S2视的P帧预测T0时刻S4视的P帧、T8时刻S2视的P帧预测T8时刻S4视的P帧,同理得到S6视和S7视在T0时刻和T8时刻的P帧;

(2)以T0时刻S0视的I帧和T0时刻S2视的P帧预测T0时刻S1视的B帧、T8时刻S0视的I帧和T8时刻S2视的P帧预测T8时刻S1视的B帧;同理,得到S3和S5视T0时刻和T8时刻的B帧;

(3)对于S0、S2、S4、S6和S7视,采用如前所述的单视编码运动估计算法,分别以各视T0时刻和T8时刻的P帧预测T4时刻的B帧,并以T0时刻的帧和T4时刻的B帧预测T2时刻的B帧、以T4时刻的B帧和T8时刻的帧预测T6时刻的B帧,再以T0时刻的帧和T2时刻的B帧预测T1时刻的B帧、以T2时刻的B帧和T4时刻的B帧预测T3时刻的B帧、以T4时刻的B帧和T6时刻的B帧预测T5时刻的B帧、以T6时刻的B帧和T8时刻的帧预测T7时刻的B帧。

(4)对于S1、S3和S5视,分别以各视T0时刻和T8时刻的B帧预测T4时刻的B帧,并以T0时刻的B帧和T4时刻的B帧预测T2时刻的B帧、以T4时刻的B帧和T8时刻的帧预测T6时刻的B帧,最后,对于各视中奇数时刻所对应的帧,即b帧,采用本视中与该奇数时刻相邻的偶数时刻所对应的帧、以及相邻视中该奇数时刻所对应的帧进行预测。

从而完成这8个摄像机在T0~T8这段时间内视频段的编码。为后续描述方便,将该方法称为传统多视编码运动估计算法。在该算法中,需要对各视进行运动估计得到运动矢量,然后以所得到的运动矢量采用基于运动补偿的帧间预测对当前视进行预测。该算法存在如下缺点:一方面,在计算运动矢量时,虽然从整体上来看兼顾了多视视频的时间相关性和空间相关性,但是,对于每一个待编码帧,要么只利用了时间相关性,要么只利用了空间相关性,即对于任意一个待编码帧都没有同时利用多视视频中各视之间的时间、空间相关性,导致编码效率较低;另一方面,该算法需要将所有帧的运动矢量置于编码码流中传输到解码端才能进行解码,这样,也导致编解码效率较低。

由上述技术方案可见,现有多视编码中,尚不存在能较好利用多视视频中时间空间相关性的运动估计方法,使得采用该运动估计方法得到的运动矢量的码流传输量较小,并得到较高的编码效率,相应地,现有多视解码算法需要根据所有帧的运动矢量,才能进行正确的解码。

发明内容

有鉴于此,本发明实施例所公开的多视运动估计方法,提供了一种在保证运动估计准确率的前提下,减少运动矢量传输量的运动估计方法。

本发明实施例所公开的基于运动估计的多视编码方法,提供了一种减少码流传输量的多视编码方法,在保证运动估计准确率的前提下提高了多视编码的编码效率。

本发明实施例所公开的基于运动估计的多视编码装置,提供了一种减少码流传输量的多视编码装置,在保证运动估计准确率的前提下提高了多视编码的编码效率。

本发明实施例所公开的基于运动估计的多视解码方法,提供了一种根据部分帧的运动矢量进行多视解码的方法,并保证了多视解码的准确率。

本发明实施例所公开的基于运动估计的多视解码装置,提供了一种根据部分帧的运动矢量进行多视解码的装置,并保证了多视解码的准确率。

本发明实施例所公开的另一种多视运动估计方法,提供了一种能够提高运动估计准确率的多视运动估计方法。

为达到上述目的,本发明实施例的技术方案具体是这样实现的:

一种多视运动估计方法,该方法包括以下步骤:

将视频序列中的帧分为直接估算帧和间接估算帧;

计算直接估算帧的运动矢量;

根据相邻视摄像机的相对位置、相邻视间的视差图像和直接估算帧的运动矢量计算间接估算帧的运动矢量。

一种基于运动估计的多视编码方法,该方法包括以下步骤:

将视频序列中的帧分为直接估算帧和间接估算帧;

计算直接估算帧的运动矢量;

根据相邻视摄像机的相对位置、相邻视间的视差图像和直接估算帧的运动矢量计算间接估算帧的运动矢量;

根据所得到的运动矢量,对各视的视频段做基于运动补偿的帧间预测,得到各帧的预测图像,再由所述各帧的预测图像与各帧的实际图像得到各帧的残差图像;

将所述各帧的残差图像、直接估算帧的运动矢量、相邻视摄像机的相对位置信息和相邻视间的视差图像写入编码码流。

一种基于运动估计的多视解码方法,该方法包括以下步骤:

将视频序列中的帧分为直接估算帧和间接估算帧;

解析接收到的编码码流,得到各帧的残差图像、直接估算帧的运动矢量、相邻视摄像机的相对位置信息和相邻视间的视差图像;

根据相邻视摄像机的相对位置、相邻视间的视差图像和直接估算帧的运动矢量计算间接估算帧的运动矢量;

根据所得到的直接估算帧的运动矢量和间接估算帧的运动矢量以及各帧的残差图像,得到各帧的预测图像;

由各帧的残差图像及其相对应的预测图像重建各帧的实际图像。

一种多视运动估计方法,该方法包括以下步骤:

将视频序列中的帧分为直接估算帧和间接估算帧;

计算各帧的运动矢量初算值;

根据相邻视摄像机的相对位置、相邻视间的视差图像和直接估算帧的运动矢量计算间接估算帧的运动矢量参考值;

根据计算所得到的每个间接估算帧的运动矢量初算值和运动矢量参考值计算间接估算帧的运动矢量。

一种基于运动估计的多视编码装置,该装置包括:编码端运动矢量计算模块和帧间预测模块,所述编码端运动矢量计算模块,用于计算直接估算帧的运动矢量,并根据相邻视摄像机的相对位置、相邻视间的视差图像和直接估算帧的运动矢量计算间接估算帧的运动矢量,并将所述间接估算帧的运动矢量和直接估算帧的运动矢量发送给所述帧间预测模块;

所述帧间预测模块,用于根据来自于所述编码端运动矢量计算模块的间接估算帧的运动矢量和直接估算帧的运动矢量对各帧做基于运动补偿的帧间预测,得到各帧的残差图像。

一种基于运动估计的多视解码装置,该装置包括:解析模块、解码端运动矢量计算模块和预测重建模块,所述解析模块,用于解析接收到的编码码流,并将解析得到的直接估算帧的运动矢量、相邻视间的视差图像和相邻视摄像机的相对位置信息发送给所述解码端运动矢量计算模块,将直接估算帧的运动矢量和各帧的残差图像发送给所述预测重建模块;

所述解码端运动矢量计算模块,用于根据相邻视摄像机的相对位置、相邻视间的视差图像和直接估算帧的运动矢量计算间接估算帧的运动矢量,并将所述间接估算帧的运动矢量发送给所述预测重建模块;

所述预测重建模块,用于根据所述间接估算帧的运动矢量、直接估算帧的运动矢量和各帧的残差图像重建各帧的实际图像。

由上述技术方案可见,本发明实施例的技术方案根据多视编码中相邻视之间图像的相似性,充分考虑多视时空框架下的摄像机位置和视间的视差图像,由参考直接估算帧的运动矢量预测当前间接估算帧的运动矢量,如此,可以在保证运动估计的准确性的前提下提高多视编码效率,并使得解码端可以根据部分帧的运动矢量进行较为准确的多视解码。

本发明实施例所提供的方案符合多视时空框架下的编解码顺序,并且通过对间接估算帧运动矢量的估计,可以减少多视时空编码框架中帧间视间的冗余度。对冗余度的减少体现在:在编码时利用现有多视码流中诸如相邻视摄像机的相对位置、相邻视间的视差图像和某些已知帧(即本发明所述直接估算帧)的运动矢量来计算某些未知特定帧(即本发明所述间接估算帧)的运动矢量,从而无需将间接估算帧的运动矢量写入码流,减少了冗余度和码流传输量;而在解码时根据相邻的直接估算帧的运动矢量可以计算出编码时所采用的运动矢量,如此,有效地减少了多视编码中编码码流的比特数,从而使得编码效率得以提高,解码准确率得到保证,存储和网络资源得以充分利用。

附图说明

图1为现有JVT中提出的多视时空编码框架示意图。

图2本发明实施例一中多视运动估计方法的流程示意图。

图3为本发明实施例一中直接估算帧与间接估算帧的运动矢量关系示意图。

图4为本发明实施例二中基于运动估计的多视编码方法的流程示意图。

图5为本发明实施例二中基于运动估计的多视编码装置的组成结构示意图。

图6为本发明实施例三中基于运动估计的多视解码方法的流程示意图。

图7为本发明实施例三中基于运动估计的多视解码装置的组成结构示意图。

图8为本发明实施例四中多视运动估计方法的流程示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。

在多视视频编码领域,采用多个摄像机对同一个场景进行拍摄时,所拍摄到的多个视频序列的图像之间存在较大的相关性,尤其是在较短时间内、多个摄像机位置相隔较近时,多个摄像机所拍摄到的图像之间的相关性就更强,有效利用这种相关性进行预测编码,可以降低对多个视频序列同时编码所需要的码率,从而提高编码效率。

本发明实施例所提供的多视编码中的运动估计方案和基于运动估计的多视解码方案均基于图1所示JVT多视时空编码框架,并且,对于该多视时空编码框架中的不同帧,本发明实施例采取了不同的运动矢量估计方法。

具体而言,由于图1所示S0、S2、S4、S6和S7视的编解码先于其相邻视,对于这些视中的所有帧,本发明实施例中均采取背景技术中的第二种预测方法,即传统多视编码运动估计算法对其进行运动估计,得到其对应的运动矢量;对于S1、S3和S5视中T0时刻和T8时刻的帧,也采用传统多视编码运动估计算法计算其运动矢量;对于S1、S3和S5视中T1~T7时刻的帧,由于其编解码均后于其相邻视,本发明利用相邻视的运动矢量、其与相邻视的视差矢量以及其与相邻视的位置关系计算其对应的运动矢量。在下面的描述中,将采用传统多视编码运动估计算法进行运动估计的帧称为直接估算帧,如S0、S2、S4、S6和S7视中的帧,以及S1、S3和S5视中T0时刻和T8时刻的帧;将利用相邻视的运动矢量及其与相邻视的位置关系进行运动估计的帧称为间接估算帧,如S1、S3和S5视中T1~T7时刻的帧。

由图1可知,每个间接估算帧在该帧所在时刻均存在两个相邻的直接估算帧,在本发明的后续描述中,将当前待编码或待解码的间接估算帧称为当前间接估算帧,将该间接估算帧的两个相邻直接估算帧称为参考直接估算帧。

下面通过四个实施例对本发明技术方案进行详细说明。

在下面的实施例中,假设图1所示T4时刻S1视为当前待编码或解码的视,将S1视称为当前编码视或解码视,则T4时刻S1视所对应的帧为当前间接估算帧;T4时刻S0视和S2视为当前编码视或解码视的参考视,T4时刻S0视和S2视所对应的帧为参考直接估算帧。

由于在视频图像处理领域,帧相对于像素点或块来说是一个宏观的概念,因此,本发明在进行具体的运动估计时,可以使用视差图像或深度图像进行更为微观的、对应像素点或块的匹配,即利用与当前间接估算帧相邻的直接估算帧中某个像素点或某个块的运动矢量来估算当前间接估算帧中对应像素点或对应块的运动矢量。

在本发明的后续描述中,对T4时刻S1视的图像的编解码以块为单位进行,块的大小为MxN,其中M的取值可以为16,8,4等,N的取值可以为16,8,4等,将T4时刻S1视图像中块的个数记为R,编解码顺序从左至右,由上至下。并且,假设T4时刻,S0视的第r(r=1,2,..R)块的运动矢量为M0,S2视的第r(r=1,2,..R)块的运动矢量为M2;T4时刻,S0与S1视的第r(r=1,2,..R)块的视差图像为D0,S2与S1视的第r(r=1,2,..R)块的视差图像为D2。

实施例一:

本实施例结合附图说明本发明运动估计方法的具体实施方式。

图2为本发明实施例一多视运动估计方法的流程示意图。参见图2,该方法包括以下步骤:

步骤201:将视频序列中的帧分为直接估算帧和间接估算帧。

本步骤中,可以按照上述关于直接估算帧和间接估算帧的定义将视频序列中的帧分为直接估算帧和间接估算帧。

步骤202:计算直接估算帧的运动矢量。

本步骤中,可以按照背景技术中所介绍的传统多视编码运动估计算法或者现有技术中的其他运动估计算法对直接估算帧进行运动估计,得到其对应的运动矢量。

步骤203:根据相邻视摄像机的相对位置、相邻视间的视差图像和直接估算帧的运动矢量计算间接估算帧的运动矢量。

本发明实施例中,视频序列由各视摄像机拍摄得到,且各视摄像机的光学成像中心为同一平面。假设当前间接估算帧的摄像机中心在世界坐标系中的坐标为原点,两个参考直接估算帧的摄像机中心的坐标分别为(-x1,-y1)和(x2,y2),摄像机中心坐标为(-x1,-y1)的参考直接估算帧的运动矢量为(u′,v′),摄像机中心坐标为(x2,y2)的参考直接估算帧的运动矢量为(u″,v″),以u表示当前间接估算帧运动矢量的X轴分量,以v表示当前间接估算帧运动矢量的Y轴分量,则可以按照如下关系计算当前间接估算帧的运动矢量:

u=ux2+ux1x1+x2v=vy2+vy1y1+y2---(1)

至此,结束本实施例的多视运动估计方法,得到直接估算帧和间接估算帧的运动矢量。

由于在多视编码中,时间轴上的帧间图像相关性大于空间轴上的视间图像相关性,而空间轴上视间的运动矢量相关性大于时间轴上的帧间运动矢量相关性,因此,在本发明上述实施例中充分利用了各视之间的空间运动矢量相关性和视间图像相关性,使用相邻视摄像机的相对位置、相邻视间的视差图像和直接估算帧的运动矢量来计算间接估算帧的运动矢量,从而无需将间接估算帧的运动矢量写入编码码流,减少了冗余度和运动矢量的传输量,并且保证了运动估计的准确率。

下面对上述步骤203中根据相邻视摄像机的相对位置和直接估算帧的运动矢量计算间接估算帧的运动矢量的方法进行详细说明。由于在摄像机位置固定的情况下,同一时刻、不同视之间对应像素的运动矢量只取决于以摄像机为视点该象素在物体可见外表面上对应点的深度和摄像机之间的位置关系。这里,以摄像机为视点物体可见外表面上点的深度即在世界坐标下该点与摄像机中心的欧式距离。因此,如图2所示,在步骤203中用左右摄像机作为参考,找到物体上所有点的共性--只与摄像机位置有关而跟点的深度值无关,最后计算同一时刻不同视中各图像之间的运动矢量。

图3为本发明实施例一中直接估算帧与间接估算帧的运动矢量关系示意图。参见图3,A、B和C为多视中的任意三个摄像机的位置,假设A对应于T4时刻S1视中的当前间接估算帧,B和C分别对应于T4时刻S0视和S2视中的两个参考直接估算帧。令摄像机A、B、C所对应的成像平面与世界坐标系中的x-y平面重合,并且A摄像机的中心为世界坐标系的原点,B和C的坐标分别为(-x1,-y1)和(x2,y2)。

在当前多视视频拍摄的情况下,各摄像机之间的间距都很小,所以可以认为每个视都是用等焦距的摄像机所拍摄的。P(x,y,z)为3个摄像机所拍摄的同一个空间物体。x-y平面为成像面,(u,v)表示摄像机A所拍摄的物体P中的某个像素点I,(u’,v’)表示摄像机B所拍摄的物体P中与像素点I对应的像素点,记为I’,(u”,v”)表示摄像机C所拍摄的物体P中与像素点I对应的像素点,记为I”,(u′,v′)表示B摄像机所拍摄像素点I’的运动矢量,(u″,v″)表示C摄像机所拍摄像素点I”的运动矢量。(u,v)表示摄像机A所拍摄像素点I的运动矢量。

基于上述各个视的摄像机都是等焦距的假设,可以认为三个摄像机的内参矩阵K是一样的,即为:

K=xsxo0yyo001---(2)

(2)式中,,分别为摄像机在成像平面中x,y轴的焦距;s为摄像机的成像失真度,x0,y0为光学中心与成像平面原点的位移。

因此,由摄像机A的中心坐标(0,0,0),可得到A的投影矩阵P0为:

P0=K[I|0]                         (3)

由摄像机B的中心坐标(-x1,-y1,0),可得到B的投影矩阵P1为:

P1=K100-x1010-y20010---(4)

同理,由摄像机C的中心坐标(x2,y2,0),可得到C的投影矩阵P2为:

P2=K100x2010y20010---(5)

P(x,y,z)在摄像机A和B的成像分别为(失真s可视为0):

uvα=P0xyz1=K[I|0]xyz1=Kxyzxx+x0zyy+y0zz---(6)

uvα=P1xyz1=K100-x1010-y10010xyz1=Kx-x1y-y1z(x-x1)x+x0z(y-y1)y+y0zz---(7)

由(6)式和(7)式可以计算得出A视和B视的运动矢量:

uv=xxz-xzz(z+z)yyz-yzz(z+z)---(8)

uv=xxz-xzz(z+z)+xx1z2yyz-yzz(z+z)+yy1z2---(9)

同理可以得到C视的运动矢量:

uv=xxz-xzz(z+z)-xx2z2yyz-yzz-(z+z)-yy2z2---(10)

由公式(8-10),得到A视的运动矢量:

u=ux2+ux1x1+x2v=vy2+vy1y1+y2---(1)

按照上述运动估计方法得到的运动矢量可以应用于多视编码和多视解码中,以减少码流的传输量,并在保证运动估计准确率的前提下提高多视编码的编码效率。下面通过两个实施例对本发明基于运动估计的多视编解码方法及装置进行说明。

实施例二:

本实施例结合附图说明本发明基于运动估计的多视编码方法的具体实施方式。

图4为本发明实施例二中基于运动估计的多视编码方法的流程示意图。参见图4,该方法包括以下步骤:

步骤401:将视频序列中的帧分为直接估算帧和间接估算帧。

步骤402:计算直接估算帧的运动矢量。

本步骤中,可以按照背景技术中所介绍的传统多视编码运动估计算法或者现有技术中的其他运动估计算法对直接估算帧进行运动估计,得到其对应的运动矢量。

步骤403:根据相邻视摄像机的相对位置、相邻视间的视差图像和直接估算帧的运动矢量计算间接估算帧的运动矢量。

本步骤中,计算间接估算帧的方法与实施例一步骤203所述方法相同,请参照上述方法进行,在此不再赘述。

步骤404:根据所得到的运动矢量,对各视的视频段做基于运动补偿的帧间预测,得到各帧的预测图像,再由所述各帧的预测图像与各帧的实际图像得到各帧的残差图像。

本步骤中,得到各帧的运动矢量之后,可以按照与现有技术相同的方式对各视的视频段做基于运动补偿的帧间预测,得到各帧的预测图像,再由所述各帧的预测图像与各帧的实际图像得到各帧的残差图像,在此不再赘述。

步骤405:将所述各帧的残差图像、直接估算帧的运动矢量、相邻视摄像机的相对位置和相邻视间的视差图像写入编码码流。

至此,结束本实施例基于运动估计的多视编码方法。在得到本实施例步骤405所述的各帧的残差图像、直接估算帧的运动矢量、相邻视摄像机的相对位置和相邻视间的视差图像之后,可以将其写入编码码流,或者将其作为下一步视频编码处理的输入数据,继续进行下一步的编码处理。关于如何采用运动估计结果进行下一步的编码处理请参见现有技术的有关方法进行,在此不再赘述。

下面介绍与图4所示方法相对应的基于运动估计的多视编码装置。图5为本发明实施例二中基于运动估计的多视编码装置的组成结构示意图。参见图5,该装置包括:编码端运动矢量计算模块501和帧间预测模块502。

其中,编码端运动矢量计算模块501,用于计算直接估算帧的运动矢量,并根据相邻视摄像机的相对位置、相邻视间的视差图像和直接估算帧的运动矢量计算间接估算帧的运动矢量,并将所述间接估算帧的运动矢量和直接估算帧的运动矢量发送给帧间预测模块502;

帧间预测模块502,用于根据来自于编码端运动矢量计算模块501的间接估算帧的运动矢量和直接估算帧的运动矢量对各帧做基于运动补偿的帧间预测,得到各帧的残差图像。

其中,编码端运动矢量计算模块501可以进一步包括:X轴分量计算子模块和Y轴分量计算子模块;

X轴分量计算子模块,用于根据计算当前间接估算帧运动矢量的X轴分量;

Y轴分量计算子模块,用于根据计算当前间接估算帧运动矢量的Y轴分量;

其中,(u′,v′)表示摄像机中心坐标为(-x1,-y1)的参考直接估算帧的运动矢量,(u″,v″)表示摄像机中心坐标为(x2,y2)的参考直接估算帧的运动矢量。

由上述实施例可见,本发明实施例二充分利用了各视之间的空间运动矢量相关性和视间图像相关性来计算当前视的运动矢量,然后再将计算得到的运动矢量运用于现有编码算法中,进行基于运动补偿的帧间预测,从而减少了编码码流的传输量,并在保证运动估计准确率的前提下实现了编码效率的提高。

实施例三:

本实施例结合附图说明本发明基于运动估计的多视解码方法及装置的具体实施方式。

本实施例中,与实施例一相同,将S1视对应于图3所示摄像机A所拍摄的视频序列,S0视对应于图3所示摄像机B所拍摄的视频序列,S2视对应于图3所示摄像机C所拍摄的视频序列,因此,图3所述摄像机之间的相对位置关系以及各摄像机的坐标同样适用于本实施例。

图6为本发明实施例三中基于运动估计的多视解码方法的流程示意图。参见图6,该方法包括以下步骤:

步骤601:将视频序列中的帧分为直接估算帧和间接估算帧。

步骤602:解析接收到的编码码流,得到各帧的残差图像、直接估算帧的运动矢量、相邻视摄像机的相对位置信息和相邻视间的视差图像。

由前述可知,块由多个像素点组成,块的运动矢量与像素点的运动矢量是一一对应的,可以根据一定的规律进行相互转换,因此,所述解析得到的直接估算帧的运动矢量可以是像素点的运动矢量,也可以是块的运动矢量。

步骤603:根据相邻视摄像机的相对位置、相邻视间的视差图像和直接估算帧的运动矢量计算间接估算帧的运动矢量。

本步骤中,首先可以根据步骤601解析得到的相邻视摄像机的相对位置计算S0视和S2视相对于S1视的位置关系,即S0视对应摄像机的坐标为(-x1,-y1),S2视对应摄像机的坐标为(x2,y2);

然后根据S0视的块运动矢量M0和S2视的块运动矢量M2,以及S1视与S0视之间的视差图像和S1视与S2视之间的视差图像得出与S1视中像素点I所对应的像素点的运动矢量,即(u′,v′)和(u″,v″);

最后,根据两个参考直接估算帧的运动矢量以及摄像机之间的相对位置信息,对当前间接估算帧的运动矢量(u,v)进行计算,得到:

u=ux2+ux1x1+x2v=vy2+vy1y1+y2---(1)

步骤604:根据所得到的直接估算帧的运动矢量和间接估算帧的运动矢量以及各帧的残差图像,得到各帧的预测图像。

步骤605:由各帧的残差图像及其相对应的预测图像重建各帧的实际图像。

至此,结束本实施例基于运动估计的多视解码方法。在得到当前间接估算帧的运动矢量之后,可以按照现有技术的有关方法由残差图像、与参考视之间的视差图像重建相应的实际图像,在此不再赘述。

下面介绍与图6所示方法相对应的基于运动估计的多视解码装置。图7为本发明实施例三中基于运动估计的多视解码装置的组成结构示意图。参见图7,该装置包括:解析模块701、解码端运动矢量计算模块702和预测重建模块703。

其中,解析模块701,用于解析接收到的编码码流,并将解析得到的直接估算帧的运动矢量、相邻视间的视差图像和相邻视摄像机的相对位置信息发送给解码端运动矢量计算模块702,将直接估算帧的运动矢量和各帧的残差图像发送给预测重建模块703;

解码端运动矢量计算模块702,用于根据相邻视摄像机的相对位置、相邻视间的视差图像和直接估算帧的运动矢量计算间接估算帧的运动矢量,并将间接估算帧的运动矢量发送给预测重建模块703;

预测重建模块703,用于根据间接估算帧的运动矢量、直接估算帧的运动矢量和各帧的残差图像重建各帧的实际图像。

其中,解码端运动矢量计算模块702可以进一步包括:X轴分量计算子模块和Y轴分量计算子模块;

X轴分量计算子模块,用于根据计算当前间接估算帧运动矢量的X轴分量;

Y轴分量计算子模块,用于根据计算当前间接估算帧运动矢量的Y轴分量;

其中,(u′,v′)表示摄像机中心坐标为(-x1,-y1)的参考直接估算帧的运动矢量,(u″,v″)表示摄像机中心坐标为(x2,y2)的参考直接估算帧的运动矢量。由上述实施例可见,本发明技术方案利用各摄像机之间的相对位置信息、相邻直接估算帧的运动矢量来计算当前间接估算帧的运动矢量,并结合相邻直接估算帧与当前间接估算帧的视差图像来预测、重建当前间接估算帧的实际图像,使得解码端根据直接估算帧的运动矢量即可计算出间接估算帧的运动矢量,在减少码流传输量的同时,保证了多视解码的准确率。

以上通过两个实施例对相邻摄像机之间的位置非常靠近的多视拍摄情况下,本发明编码、解码方案进行了详细说明。在这种情况下,相邻视的运动矢量差异很小,可以通过上述方案中的视间运动矢量计算方法来计算当前视的运动矢量。然而在各摄像机之间间隔比较大的应用场合下,视差图像就会因为遮挡等关系变得不完整。下面通过一个实施例说明本发明为各摄像机之间间隔比较大的应用场合所提供的多视运动估计解决方案。

实施例四:

对于各摄像机之间间隔比较大的情况,本实施例采取仅在编码端用视间运动矢量计算方法来优化各视的运动矢量。图8为本发明实施例四中多视运动估计方法的流程示意图。参见图8,该方法包括以下步骤:

步骤801:将视频序列中的帧分为直接估算帧和间接估算帧。

步骤802:计算各帧的运动矢量,得到运动矢量初算值。

本步骤中,可以采取背景技术中介绍的单视编码算法、传统多视编码运动估计算法或其他编码算法计算各视中各帧的运动矢量,将所得到的运动矢量称为运动矢量初算值,记为(u0,v0)。

步骤803:根据相邻视摄像机的相对位置、相邻视间的视差图像和直接估算帧的运动矢量计算间接估算帧的运动矢量参考值。

本步骤中,按照与实施例一步骤203相同的方法计算间接估算帧运动矢量,得到如下所示当前间接估算帧的运动矢量(u1,v1):

u1=u0x2+u0x1x1+x2v1=v0y2+v0y1y1+y2---(11)

将所得到的运动矢量(u1,v1)称为运动矢量参考值。

步骤804:根据计算所得到的每个间接估算帧的运动矢量初算值和运动矢量参考值计算间接估算帧的运动矢量。

本步骤中,可以运用如下公式对间接估算帧的运动矢量进行优化计算:

(u,v)=γ(u0,v0)+(1-γ)(u1,v1)                  (12)

式(12)中,γ为优化系数,取值范围为0到1之间,且包括0和1。

至此,结束本发明实施例四的多视运动估计方法。

实施例四所述多视运动估计方法与传统单视编码中基于运动补偿的帧间预测方法相比,加入了使用运动矢量初算值和运动矢量参考值进行运动矢量优化计算的操作,该操作能够提升运动矢量估算的准确性,从而能够进行更为准确的预测。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号