具体实施方式
在多视角视频序列中,相邻视角的两个视频序列的对应帧存在着相当大
的相关性,即相邻视角的两个视频序列的对应帧场景内容大部分相同,运动
趋势相同,所不同的地方是角度不同,或者整个场景之间存在相对位移,这
也隐含一个视(目标视)的前后帧之间的运动向量可以通过另一个视(参考
视)前后帧之间的运动向量预测来获得。它们经过简单的变形(平移、旋转、
仿射变换等)后,大部分图像非常相似。如果能利用这些特性,在两个对应
帧之间采用全局运动预测补偿方式,及在目标视的前后帧之间采用运动向量
预测补偿方式,就可以提高多视角视频的编码效率。包括如下步骤:
编码步骤如下:
首先使用其中的一个视作为参考视,另一个相邻视(以下称为目标视)
经过变形后对参考视进行全局运动预测,获得全局运动预测参数。然后进入
每个宏块全局运动预测补偿和运动向量预测补偿的编码过程,其步骤如下:
步骤1、全局运动预测补偿编码过程:
步骤1.1、利用获得的全局运动预测参数计算宏块的全局运动预测代
价(一般使用原始宏块与对编码后的宏块进行解码得到的重构宏块各个象素
之间的绝对差和来衡量);
步骤1.2、计算获得该宏块的全局运动向量,将其保存,已备后用;
步骤2、运动向量预测补偿编码过程:
步骤2.1、利用获得的该宏块的全局运动向量和前一帧已保存的全局
运动向量及已编码的参考视前后帧之间的运动向量预测获得目标视前后帧
之间的运动向量;
步骤2.2、利用预测得到的运动向量计算宏块的局部运动预测代价;
步骤3、选择计算获得的全局运动预测代价和局部运动预测代价中较小
的预测补偿作为宏块的预测补偿;
步骤4、根据选定的预测补偿或者进行宏块的全局运动补偿(若是全局
运动预测补偿方法被选中)或者进行宏块的局部运动补偿(若运动向量预测
补偿方法被选中),进而与原始宏块做差获得宏块残差图像;
步骤5、对残差图像进行变换、量化、熵编码,最终输出宏块编码码流。
解码步骤如下:
首先解码获得目标视中当前帧对参考视的全局运动预测参数,然后进入
每个宏块解码过程,其步骤如下:
步骤1、进行熵解码、反量化及反变换,获得宏块采用的预测补偿方式、
残差图像等信息;
步骤2、利用获得的全局运动预测参数计算获得当前解码宏块的全局运
动向量,并保存,以备后用;
步骤3、若宏块采用的是全局运动预测补偿,则按如下步骤进行解码:
步骤3.1、将参考视中对应的参考帧按照获得的全局运动预测参数进
行变形;
步骤3.2、利用获得的全局运动向量参考变形后的参考帧对当前解码
宏块进行全局运动补偿,获得宏块补偿图像;
步骤3.3、宏块补偿图像与解码的残差图像合并得到解码宏块图像。
步骤4、若宏块采用的是运动预测补偿,则按如下步骤进行解码:
步骤4.1、利用已保存的解码后的全局运动向量和已解码的参考视前
后帧间的运动向量,计算获得目标视前后帧间的运动向量;
步骤4.2、利用计算获得的运动向量参考目标视的前一解码帧对当前
解码宏块进行运动补偿,获得宏块补偿图像;
步骤4.3、宏块补偿图像与解码的残差图像合并得到解码宏块图像。
图1是运动向量关系示意图,图1中目标视和参考视是多视角视频序列
中的两个视,一个被作为参考视,另一个作为目标视。它表示的是某一编码
时刻序列参考视和目标视前后帧之间的关系(第i-1帧表示前一帧,第i帧
表示当前帧),描述了参考视和目标视之间的全局运动向量(在图1中使用
GMC0和GMC1来标明)和同一个视中的运动向量(在图1中使用MV0和MV1
来标明)之间的关系,其中:
上面的两个网格表示某一时刻目标视的前后两帧图像,下面的两个网格
表示某一时刻参考视的前后两帧图像,网格中的每个小方块表示一个宏块
(图像象素块),目标视网格中的灰色方块表示当前编码宏块。
GMC0表示前一个已编码目标帧到前一个已编码参考帧之间的全局运动
向量;
GMC1表示当前编码目标帧到对应的已编码参考帧之间的全局运动向量;
MV0表示参考视前后帧间的运动向量;
MV1表示目标视前后帧间的运动向量,它也是本发明中需要进行运动向
量预测获得的运动向量。
图2是本发明提出的运动向量中心点预测流程图。它描述的是目标视
序列通过参考视的前后帧运动向量及已获得的全局运动向量,来预测目标视
对应前后帧运动向量的一种预测编码的做法。
具体做法是,当编码目标视的某个宏块(在图1中以灰色方块来表示)
时,完成如下步骤:
步骤1、获得全局运动向量GMC0和GMC1(解释见图1说明,在全局运
动预测补偿过程中已经获得,见编码实施步骤1.2)及局部运动向量MV0(在
编码参考视时产生);
步骤2、计算获得当前宏块的中心点(CurXcent,CurYcent),(图1
中用CurCentPos来表示,即灰色方块中的小黑点);
步骤3、通过GMC1运动向量和位置(CurXcent,CurYcent)计算获得
点(CurXcent,CurYcent)在参考视图像中的位置(CurRefX,CurRefY),
(图1中用CurPosRef来表示);
步骤4、利用MV0,计算获得点(CurRefX,CurRefY)在其前一帧参考
视图像中对应的位置(PreRefX,PreRefY),(图1中用PrePosRef来表示);
步骤5、利用GMC0,通过迭代匹配获得参考视到目标视的全局运动向量
(GMVX,GMVY),(即将图1中的GMC0反向),详细过程将在图3中描述;
步骤6、将获得的全局运动向量(GMVX,GMVY)反向,进而利用其计算
位置(PreRefX,PreRefY)在目标视的前一帧图像中的对应位置(PreXcent,
PreYcent),(图1中用PrePosCur来表示);
步骤7、计算获得运动向量MV1,MV1X=PreXcent-CurXcent,MV1Y=
PreXcent-CurYcent;(图1中粗虚线表示的向量)。
值得指出的是,如果为了追求更高的预测精度,除了本发明提出的中心
点预测方式外,也可以采用多点预测,然后求其平均值的方式,但这仍然属
于本发明的处理思路。
图3是迭代匹配获取参考视到目标视的全局运动向量的方法。它描述了
图2中加粗功能框的实现。它的输入是经过计算得到的在参考视中的对应位
置点(PreRefX,PreRefY)、目标视到参考视的全局运动向量GMC0,最终
输出获得对应的参考视到目标视的全局运动向量(GMVX,GMVY)。其中,
MBSIZE表示宏块的大小,可以根据不同的环境来取不同的值;
N控制最大的迭代次数,可根据实际需要设置。它用来保证当通过迭代
不能获得完全匹配时,控制迭代结束。它的大小控制迭代搜索的范围;
Minerr初始化时,为MAXERROR,MAXERROR可以根据实际情况取任何最
大阈值。Minerr记录迭代过程中最小的迭代误差,最终采用Minerr(迭代
误差)最小的目标视宏块的全局运动向量来表示参考视到目标视的全局运动
向量(GMVX,GMVY)。
具体地,Minerr初始化,令迭代误差Minerr=MAXERROR;
计算获得点(PreRefX,PreRefY)所在的宏块位置(PreMBX,PreMBY),
通过GMC0和宏块位置(PreMBX,PreMBY)获得全局运动向量(GMVX,GMVY);
用点(PreRefX,PreRefY)减去全局运动向量(GMVX,GMVY),获得新
的位置(PreCurX,PreCurY);再计算获得点(PreCurX,PreCurY)所在的
宏块位置(PreCurMBX,PreCurMBY)。
迭代过程是这样的:将迭代后获得的宏块位置(PreCurMBX,PreCurMBY)
与迭代前的宏块位置(PreMBX,PreMBY)比较,若相等,则表示完全获得,
迭代误差Minerr为0,直接退出迭代过程,如果不相等,若在迭代前的宏
块位置的左侧,则获得宏块左边X方向位置和迭代后的对应位置点的X方向
位置的绝对差Xerr,否则获得宏块右边X方向位置和迭代后的对应位置点
的X方向位置的绝对差Xerr,与此类似,若在上方,则获得宏块上边Y方
向位置和迭代后的对应位置点的Y方向位置的绝对差Yerr,否则获得宏块
下边Y方向位置和迭代后的对应位置点的Y方向位置的绝对差Yerr,最后
Xerr和Yerr的和与Minerr比较,取其最小值给Minerr。
图4作为本发明的具体实施例,表示的是多视角视频编码预测补偿装置
1。该装置的输入是多视角视频中任意两个视的原始视频流(相邻视效果更
佳),其中一个视称为参考视,另一个视称为目标视。参考视图像经过局部
运动预测补偿方法进行编码,最终输出编码后的参考视码流;目标视图像经
过全局运动预测补偿和运动向量预测补偿进行编码,最后输出编码后的目标
视码流。其中,
参考视图像和目标视图像分别是输入的参考视原始视频图像和目标视
原始视频图像;
参考视重构图像缓冲区和目标视重构图像缓冲区分别存储前一帧编码
后重构的参考视图像和目标视图像。
它的工作顺序是首先对一帧参考视图像进行编码,然后再对一帧目标视
图像进行编码。下面分别是参考视图像编码和目标视图像编码的过程:
1、参考视图像编码单元
它实现一帧参考视图像的预测补偿编码。它采用局部运动估计,并由此
获得运动向量,将其进行熵编码。在运动向量缓冲区中保存该运动向量以备
在编码目标视图像时使用。运动向量与前一帧重构参考视图像合作完成参考
视运动补偿,获得补偿后的参考图像,即图4中参考视预测图像,该图像在
与原始参考视图像做差,求得残差图像。残差图像经过变换、量化和熵编码,
最终形成参考视码流。经过量化后的残差图像再经过反量化和反变换,并与
参考视预测图像累加,进而得到参考视重构图像,并将其放入参考视重构缓
冲区,以备下一帧参考视图像和目标视图像编码时使用。
2、目标视图像编码单元
它实现一帧目标视图像的预测补偿编码。
在输入的目标视原始图像和参考视重构图像之间进行全局运动估计,获
得全局运动参数,并由此获得全局运动预测代价和全局运动向量,并将全局
运动向量保存在全局运动向量缓冲区中,以备后用;
利用前一帧目标视图像编码时获得的全局运动向量及当前获得的全局
运动向量和对应的参考视图像编码时保存的运动向量进行目标视运动向量
预测,得到目标视图像参考前一帧重构目标视的局部运动向量;
计算目标视图像的局部运动预测代价,并通过选择控制器选择它和全局
运动预测代价中较小的预测补偿方法进行下面的工作;
根据选定的预测补偿方法或者进行全局运动补偿(若是全局运动预测补
偿方法被选中)或者进行局部运动补偿(若运动向量预测补偿方法被选中),
获得补偿后的目标图像,即图4中目标视预测图像,该图像在与原始目标视
图像做差,求得残差图像;
残差图像经过变换、量化和熵编码,最终形成目标视码流。经过量化后
的残差图像再经过反量化和反变换,并与目标视预测图像累加,进而得到目
标视重构图像,并将其放入目标视重构缓冲区,以备下一帧目标视图像编码
时使用。
图5是本发明的另一个实施例,表示的是多视角视频编码预测补偿装置
2。该装置2与装置1不同之处在于在编码目标视图像时,全局运动预测补
偿和运动向量预测补偿作为两种预测模式与其它的预测模式共同完成编码
工作。即,目标视图像除了使用全局运动预测补偿和运动向量预测补偿进行
编码外,还可以引入当前已经被使用的其它预测补偿方法(例如,直接预测
补偿方法),它们有助于多视角视频编码效率的提高。该装置2的输入是多
视角视频中任意两个视的原始视频流(相邻视效果更佳),其中一个视称为
参考视,另一个视称为目标视。
图5的上半部分(上面矩形框包含的部分)是参考视图像的编码过程,
下半部分(下面矩形框包含的部分)是目标视图像的编码过程;虚粗线框中
包含的是全局运动预测补偿模块和运动向量预测模块,它们作为两种模式加
入到整个装置中;
参考视图像和目标视图像分别是输入的参考视原始视频图像和目标视
原始视频图像;
参考帧缓冲区和目标帧缓冲区分别存储前一帧编码后重构的参考视图
像和目标视图像。
它的工作顺序是首先对一帧参考视图像进行编码,然后再对一帧目标视
图像进行编码。下面分别是参考视图像编码和目标视图像编码的过程:
1、参考视图像编码单元
该过程与装置1中的相同,详细叙述参见图4中参考视图像编码说明。
2、目标视图像编码单元
它实现一帧目标视图像的预测补偿编码。
在输入的目标视原始图像和参考视之间进行全局运动估计,获得全局运
动参数,并由此获得全局运动预测代价和全局运动向量,并将全局运动向量
保存,以备后用。在全局运动估计模块中完成;
利用前一帧目标视图像编码时获得的全局运动向量及当前获得的全局
运动向量和对应的参考视图像编码时保存的运动向量进行目标视运动向量
预测,得到目标视图像参考前一帧重构目标视的局部运动向量,并计算目标
视图像的局部运动预测代价。在运动向量预测模块中完成;
进行其它的预测补偿方法,并由此获得运动向量,将其进行熵编码。计
算该种预测补偿方法的预测代价。在目标帧运动估计模块中完成;
按照预测代价最小的原则选择合适的预测补偿方法。根据选定的预测补
偿方法或者进行全局运动补偿(若是全局运动预测补偿方法被选中,在全局
运动补偿模块中完成),或者进行局部运动补偿(若运动向量预测补偿方法
被选中,在目标帧运动补偿模块中完成),或者进行其它方式的补偿(在目
标帧运动补偿模块中完成),获得补偿后的目标视图像,该图像与原始目标
视图像做差,求得残差图像;
残差图像经过变换、量化和熵编码,最终形成目标视码流。经过量化后
的残差图像再经过反量化和反变换,并与补偿后的目标视图像累加,进而得
到目标视重构图像,并将其放入目标帧缓冲区,以备下一帧目标视图像编码
时使用。
图6描述了基于MPEG-4时间可扩展编码方法的预测原理:
本发明的在两个相关视序列之间采用全局运动估计预测和运动向量预测
方法较之现有编码方法可以更充分利用多视角视频中各个视之间的相关性,
因此可以有效对多视角视频进行编解码。它们可以与MPEG-4编码标准结合
使用,采用如下步骤实现全局运动估计预测和运动向量预测处理(以立体视
序列为例,它只有两个视,分别称为左视和右视,因此是最简单的多视角视
频序列)。
一、编码端处理:
图6中,左视图像作为参考视序列,右视图像作为当前视序列,GMC0表
示前一帧左右图像间的全局运动估计预测,GMC1表示当前帧左右图像间的
全局运动估计预测,MV0表示参考视(即左视图像)前后帧之间的运动预测
向量,MV1表示当前视(即右视图像)前后帧之间的运动预测向量,它需要
通过使用GMC0、GMC1和MV0进行运动向量预测获得。I表示帧内编码,P表
示预测编码,B表示双向预测编码。为了与MPEG-4标准兼容,本发明采用
增加宏块预测模式的方式嵌入全局运动估计预测和运动向量预测。因此,B
图像除了原有的预测模式外,又增加两种预测模式,分别是全局运动预测(使
用GME来表示)和运动向量预测(使用MVP来表示)。其具体的实现过程如
下:
1.参考视图像编码:这一步与MPEG-4原有步骤相同,并由此获
得前后帧之间的运动向量MV0。
2.当前视图像不仅可以参考参考视图像,还可以参考当前视的前
一帧图像,因此这里除了第一帧外使用MPEG-4中的B帧图像来编
码实现。这里局部运动估计预测方式与MPEG-4原有步骤相同。
3.当前视图像与参考视图像间进行全局运动估计和补偿,并获得
全局运动参数GMC1和宏块的全局运动向量。
4.利用已经编码的MV0、GMC0和GMC1进行当前视前后帧之间的
运动向量预测。采用中心点预测的方法,其预测方法见附图2。
5.模式选择方法:
1)在MPEG-4中的B帧原有的模式之间选出最优的,采用MPEG-4
原有的选择策略;
2)在选择出的B帧最优的原有模式、GME和MVP模式中通过率失
真优化(RDO-rate-distortion optimization)策略选择最优
预测模式。选择方法是选择MSE+λRate最小的模式,其中,
MSE是宏块原始图像与宏块重构图像的均方差,Rate是该宏块
编码后的码位。λ是拉格朗日算子,这里λ=(0.85×2QP/3)1/2,
QP是量化系数。
6.进行运动补偿。GME模式采用全局运动估计补偿,其它的模式
均采用MPEG-4原有的补偿方法。
7.形成宏块码流。采用GME和MVP模式的宏块无需编码运动向量,
其它的采用MPEG-4原有的方法。
二、解码端处理:
1.解码参考视图像,采用MPEG-4原有的解码方法。
2.解码当前视图像,采用如下步骤:
1)解码当前帧的全局运动估计参数;
2)若当前宏块是MPEG-4原有预测模式,则按照MPEG-4原有解码
方法解码,否则若是GME类型,则进行全局运动补偿重构该宏
块,否则若是MVP类型,则按照编码步骤4的方法来预测获得
运动向量,然后在利用MPEG-4原有的补偿方法进行运动补偿。
3)解码残差图像,并与补偿的图像合并产生解码图像。
以上实施例仅用以说明而非限制本发明的技术方案,本领域的普通技术
人员应当理解:可以对本发明进行修改或者等同替换,而不脱离本发明的精
神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当
中。