一种全景视频编码方法和装置转让专利

申请号 : CN201710294859.1

文献号 : CN107135397B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘东王叶斐吴枫李厚强

申请人 : 中国科学技术大学

摘要 :

本申请公开了一种全景视频编码方法和装置。该方法将当前预测单元中的某个参考点在当前帧的当前预测单元、当前帧的最相邻预测单元、参考帧的当前预测单元以及参考帧的最相邻预测单元的平面坐标转换为球面坐标,从而根据参考点的球面坐标确定当前预测单元在三维空间内的三维运动矢量。进而,根据该三维运动矢量确定当前帧中当前预测单元的所有目标点在参考帧的对应目标参考点,并根据该目标参考点的像素对目标点像素进行补偿。与现有技术相比,本发明采用球面坐标系转换运动模型进行像素补偿,消除了视频中畸变带来的影响,从而提高视频编码效率。

权利要求 :

1.一种全景视频编码方法,其特征在于,包括:

确定当前预测单元的最相邻预测单元;

获取参考点的第一平面坐标、第二平面坐标、第三平面坐标以及第四平面坐标;

其中,所述第一平面坐标为所述参考点在当前帧的当前预测单元中的坐标、所述第二平面坐标为所述参考点在当前帧的最相邻预测单元中的坐标,所述第三平面坐标为所述参考点在参考帧的当前预测单元中的坐标,所述第四平面坐标为所述参考点在参考帧的最相邻预测单元中的坐标;

分别将所述第一平面坐标、所述第二平面坐标、所述第三平面坐标以及所述第四平面坐标转换为球面坐标,并根据所述球面坐标计算所述当前预测单元在三维空间内的三维运动矢量;

对于当前帧的当前预测单元中所有目标点,根据所述三维运动矢量确定所述目标点在参考帧内对应的目标参考点;

利用所述目标参考点的像素对所述目标点像素进行补偿,以实现对所述当前预测单元的球坐标变换运动模型补偿;

对所述当前预测单元进行编码;

其中,所述确定当前预测单元的最相邻预测单元,包括:获取所述当前预测单元的二维运动矢量,以及多个相邻预测单元的二维运动矢量;

比较所述当前预测单元的二维运动矢量和相邻预测单元的二维运动矢量;

将与所述当前预测单元二维运动矢量最近的相邻预测单元作为所述当前预测单元的最相邻预测单元。

2.根据权利要求1所述的方法,其特征在于,所述获取参考点的第一平面坐标、第二平面坐标、第三平面坐标以及第四平面坐标,包括:获取所述参考点的所述第一平面坐标和所述第二平面坐标;

计算所述当前预测单元与所述最相邻预测单元的二维运动矢量差值;

根据所述二维运动矢量差值和所述第一平面坐标确定所述第三平面坐标,以及根据所述二维运动矢量差值和所述第二平面坐标确定所述第四平面坐标。

3.根据权利要求1所述的方法,其特征在于,所述分别将所述第一平面坐标、所述第二平面坐标、所述第三平面坐标以及所述第四平面坐标转换为球面坐标,包括:基于公式 z=Rcosθ计算所述球面坐

标;

其中,θ表示球面坐标的纬度,且 表示球面坐标的经度,且(u,v)表示所述参考点的平面坐标,H表示图像的高度,W表示图像的宽度,R表示所述参考点的深度。

4.根据权利要求3所述的方法,其特征在于,所述根据所述球面坐标计算所述当前预测单元在三维空间内的三维运动矢量,包括:根据所述第一平面坐标对应的第一球面坐标和所述第三平面坐标对应的第三球面坐标,计算第一三维运动矢量;

根据所述第二平面坐标对应的第二球面坐标和所述第四平面坐标对应的第四球面坐标,计算第二三维运动矢量;

利用所述第一三维运动矢量和所述第二三维运动矢量的相等性以及参考点在参考帧的当前预测单元中的预设深度分别确定参考点在当前帧的当前预测单元中的深度、在当前帧的最相邻预测单元中的深度以及在参考帧的最相邻预测单元中的深度;

根据参考点在参考帧的当前预测单元中的预设深度和参考点在当前帧的当前预测单元中的深度计算所述当前预测单元在三维空间内的三维运动矢量;

或根据参考点在参考帧的最相邻预测单元中的深度和参考点在当前帧的最相邻预测单元中的深度计算所述当前预测单元在三维空间内的三维运动矢量。

5.根据权利要求1所述的方法,其特征在于,所述对所述当前预测单元进行编码,包括;

计算经过球坐标变换运动模型补偿后的所述当前预测单元的第一代价函数值;

计算经过平动模型补偿后的所述当前预测单元的第二代价函数值;

比较所述第一代价函数值和所述第二代价函数值,根据比较结果选取所述当前预测单元的补偿方式。

6.一种全景视频编码装置,其特征在于,包括:

筛选单元,用于确定当前预测单元的最相邻预测单元;

坐标采集单元,用于获取参考点的第一平面坐标、第二平面坐标、第三平面坐标以及第四平面坐标;

其中,所述第一平面坐标为所述参考点在当前帧的当前预测单元中的坐标、所述第二平面坐标为所述参考点在当前帧的最相邻预测单元中的坐标,所述第三平面坐标为所述参考点在参考帧的当前预测单元中的坐标,所述第四平面坐标为所述参考点在参考帧的最相邻预测单元中的坐标;坐标转换单元,用于分别将所述第一平面坐标、所述第二平面坐标、所述第三平面坐标以及所述第四平面坐标转换为球面坐标;

三维运动矢量计算单元,用于根据所述球面坐标计算所述当前预测单元在三维空间内的三维运动矢量;

目标参考点确定单元,用于对于当前帧的当前预测单元中所有目标点,根据所述三维运动矢量确定所述目标点在参考帧内对应的目标参考点;

补偿单元,用于利用所述目标参考点的像素对所述目标点像素进行补偿,以实现对所述当前预测单元的球坐标变换运动模型补偿;

编码单元,用于对所述当前预测单元进行编码;

其中,所述筛选单元包括:

二维运动矢量搜索模块,用于获取所述当前预测单元的二维运动矢量,以及多个相邻预测单元的二维运动矢量;

比较模块,用于比较所述当前预测单元的二维运动矢量和相邻预测单元的二维运动矢量;

预测单元选取模块,用于将与所述当前预测单元二维运动矢量最近的相邻预测单元作为所述当前预测单元的最相邻预测单元。

7.根据权利要求6所述的装置,其特征在于,所述坐标采集单元包括:坐标采集模块,用于获取所述参考点的所述第一平面坐标和所述第二平面坐标;

第一计算模块,用于计算所述当前预测单元与所述最相邻预测单元的二维运动矢量差值;

第二计算模块,用于根据所述二维运动矢量差值和所述第一平面坐标确定所述第三平面坐标,以及根据所述二维运动矢量差值和所述第二平面坐标确定所述第四平面坐标。

8.根据权利要求6所述的装置,其特征在于,所述坐标转换单元具体用于:基于公式 z=Rcosθ计算所述球面坐标;

其中,θ表示球面坐标的纬度,且 表示球面坐标的经度,且(u,v)表示所述参考点的平面坐标,H表示图像的高度,W表示图像的宽度,R表示所述参考点的深度。

9.根据权利要求6所述的装置,其特征在于,所述三维运动矢量计算单元,包括:第三计算模块,用于根据所述第一平面坐标对应的第一球面坐标和所述第三平面坐标对应的第三球面坐标,计算第一三维运动矢量;

第四计算模块,用于根据所述第二平面坐标对应的第二球面坐标和所述第四平面坐标对应的第四球面坐标,计算第二三维运动矢量;

第五计算模块,用于利用所述第一三维运动矢量和所述第二三维运动矢量的相等性以及参考点在参考帧的当前预测单元中的预设深度分别确定参考点在当前帧的当前预测单元中的深度、在当前帧的最相邻预测单元中的深度以及在参考帧的最相邻预测单元中的深度;

第六计算模块,用于根据参考点在参考帧的当前预测单元中的预设深度和参考点在当前帧的当前预测单元中的深度计算所述当前预测单元在三维空间内的三维运动矢量;

或根据参考点在参考帧的最相邻预测单元中的深度和参考点在当前帧的最相邻预测单元中的深度计算所述当前预测单元在三维空间内的三维运动矢量。

10.根据权利要求6所述的装置,其特征在于,所述编码单元包括;

第一代价函数计算模块,用于计算经过球坐标变换运动模型补偿后的所述当前预测单元的第一代价函数值;

第二代价函数计算模块,用于计算经过平动模型补偿后的所述当前预测单元的第二代价函数值;

比较模块,用于比较所述第一代价函数值和所述第二代价函数值,根据比较结果选取所述当前预测单元的补偿方式。

说明书 :

一种全景视频编码方法和装置

技术领域

[0001] 本申请涉及视频编码领域,更具体地说,涉及一种全景视频编码方法和装置。

背景技术

[0002] 近年来虚拟现实(VR)在研究和应用领域成为了热点。而VR应用的一大核心便是全景视频,全景视频在实际播放的时候是在VR头显设备上,其空间结构是一个三维的球面,但在实际存储在计算机上时必须要映射到平面上,其中最广泛采用的是经纬图映射方式,这种方式把球面映射成一个长宽2:1的矩形,但是会造成严重的图像形状畸变,这会给编码时的运动估计带来麻烦。
[0003] 传统的通用视频编码标准如H.264(Advanced Video Coding)和HEVC(High Efficiency Video Coding)都采用平动运动模型(translational motionmodel),这种运动模型只能刻画物体的平移,却无法刻画旋转,缩放和其他的一些复杂的运动。而全景视频映射到平面由于存在畸变,这导致平动运动模型存在编码效率低的问题。

发明内容

[0004] 有鉴于此,本申请提供一种全景视频编码方法和装置,基于球面坐标系对全景视频进行运动估计和补偿,以消除视频中畸变带来的影响,从而提高视频编码效率。
[0005] 为了实现上述目的,现提出的方案如下:
[0006] 一种全景视频编码方法,包括:
[0007] 确定当前预测单元的最相邻预测单元;
[0008] 获取参考点的第一平面坐标、第二平面坐标、第三平面坐标以及第四平面坐标;
[0009] 其中,所述第一平面坐标为所述参考点在当前帧的当前预测单元中的坐标、所述第二平面坐标为所述参考点在当前帧的最相邻预测单元中的坐标,所述第三平面坐标为所述参考点在参考帧的当前预测单元中的坐标,所述第四平面坐标为所述参考点在参考帧的最相邻预测单元中的坐标;
[0010] 分别将所述第一平面坐标、所述第二平面坐标、所述第三平面坐标以及所述第四平面坐标转换为球面坐标,并根据所述球面坐标计算所述当前预测单元在三维空间内的三维运动矢量;
[0011] 对于当前帧的当前预测单元中所有目标点,根据所述三维运动矢量确定所述目标点在参考帧内对应的目标参考点;
[0012] 利用所述目标参考点的像素对所述目标点像素进行补偿,以实现对所述当前预测单元的球坐标变换运动模型补偿;
[0013] 对所述当前预测单元进行编码。
[0014] 优选的,所述确定当前预测单元的最相邻预测单元,包括:
[0015] 获取所述当前预测单元的二维运动矢量,以及多个相邻预测单元的二维运动矢量;
[0016] 比较所述当前预测单元的二维运动矢量和相邻预测单元的二维运动矢量;
[0017] 将与所述当前预测单元二维运动矢量最近的相邻预测单元作为所述当前预测单元的最相邻预测单元。
[0018] 优选的,所述获取参考点的第一平面坐标、第二平面坐标、第三平面坐标以及第四平面坐标,包括:
[0019] 获取所述参考点的所述第一平面坐标和所述第二平面坐标;
[0020] 计算所述当前预测单元与所述最相邻预测单元的二维运动矢量差值;
[0021] 根据所述二维运动矢量差值和所述第一平面坐标确定所述第三平面坐标,以及根据所述二维运动矢量差值和所述第二平面坐标确定所述第四平面坐标。
[0022] 优选的,所述分别将所述第一平面坐标、所述第二平面坐标、所述第三平面坐标以及所述第四平面坐标转换为球面坐标,包括:
[0023] 基于公式 z=Rcosθ计算所述球面坐标;
[0024] 其中,θ表示球面坐标的纬度,且 表示球面坐标的经度,且
[0025]
[0026] (u,v)表示所述参考点的平面坐标,H表示图像的高度,W表示图像的宽度,R表示所述参考点的深度。
[0027] 优选的,所述根据所述球面坐标计算所述当前预测单元在三维空间内的三维运动矢量,包括:
[0028] 根据所述第一平面坐标对应的第一球面坐标和所述第三平面坐标对应的第三球面坐标,计算第一三维运动矢量;
[0029] 根据所述第二平面坐标对应的第二球面坐标和所述第四平面坐标对应的第四球面坐标,计算第二三维运动矢量;
[0030] 利用所述第一三维运动矢量和所述第二三维运动矢量的相等性以及参考点在参考帧的当前预测单元中的预设深度分别确定参考点在当前帧的当前预测单元中的深度、在当前帧的最相邻预测单元中的深度以及在参考帧的最相邻预测单元中的深度;
[0031] 根据参考点在参考帧的当前预测单元中的预设深度和参考点在当前帧的当前预测单元中的深度计算所述当前预测单元在三维空间内的三维运动矢量;
[0032] 或根据参考点在参考帧的最相邻预测单元中的深度和参考点在当前帧的最相邻预测单元中的深度计算所述当前预测单元在三维空间内的三维运动矢量。
[0033] 优选的,所述对所述当前预测单元进行编码,包括;
[0034] 计算经过球坐标变换运动模型补偿后的所述当前预测单元的第一代价函数值;
[0035] 计算经过平动模型补偿后的所述当前预测单元的第二代价函数值;
[0036] 比较所述第一代价函数值和所述第二代价函数值,根据比较结果选取所述当前预测单元的补偿方式。
[0037] 一种全景视频编码装置,包括:
[0038] 筛选单元,用于确定当前预测单元的最相邻预测单元;
[0039] 坐标采集单元,用于获取参考点的第一平面坐标、第二平面坐标、第三平面坐标以及第四平面坐标;
[0040] 其中,所述第一平面坐标为所述参考点在当前帧的当前预测单元中的坐标、所述第二平面坐标为所述参考点在当前帧的最相邻预测单元中的坐标,所述第三平面坐标为所述参考点在参考帧的当前预测单元中的坐标,所述第四平面坐标为所述参考点在参考帧的最相邻预测单元中的坐标;
[0041] 坐标转换单元,用于分别将所述第一平面坐标、所述第二平面坐标、所述第三平面坐标以及所述第四平面坐标转换为球面坐标;
[0042] 三维运动矢量计算单元,用于根据所述球面坐标计算所述当前预测单元在三维空间内的三维运动矢量;
[0043] 目标参考点确定单元,用于对于当前帧的当前预测单元中所有目标点,根据所述三维运动矢量确定所述目标点在参考帧内对应的目标参考点;
[0044] 补偿单元,用于利用所述目标参考点的像素对所述目标点像素进行补偿,以实现对所述当前预测单元的球坐标变换运动模型补偿;
[0045] 编码单元,用于对所述当前预测单元进行编码。
[0046] 优选的,所述筛选单元包括:
[0047] 二维运动矢量搜索模块,用于获取所述当前预测单元的二维运动矢量,以及多个相邻预测单元的二维运动矢量;
[0048] 比较模块,用于比较所述当前预测单元的二维运动矢量和相邻预测单元的二维运动矢量;
[0049] 预测单元选取模块,用于将与所述当前预测单元二维运动矢量最近的相邻预测单元作为所述当前预测单元的最相邻预测单元。
[0050] 优选的,所述坐标采集单元包括:
[0051] 坐标采集模块,用于获取所述参考点的所述第一平面坐标和所述第二平面坐标;
[0052] 第一计算模块,用于计算所述当前预测单元与所述最相邻预测单元的二维运动矢量差值;
[0053] 第二计算模块,用于根据所述二维运动矢量差值和所述第一平面坐标确定所述第三平面坐标,以及根据所述二维运动矢量差值和所述第二平面坐标确定所述第四平面坐标。
[0054] 优选的,所述坐标转换单元具体用于:
[0055] 基于公式 z=Rcosθ计算所述球面坐标;
[0056] 其中,θ表示球面坐标的纬度,且 表示球面坐标的经度,且
[0057]
[0058] (u,v)表示所述参考点的平面坐标,H表示图像的高度,W表示图像的宽度,R表示所述参考点的深度。
[0059] 优选的,所述三维运动矢量计算单元,包括:
[0060] 第三计算模块,用于根据所述第一平面坐标对应的第一球面坐标和所述第三平面坐标对应的第三球面坐标,计算第一三维运动矢量;
[0061] 第四计算模块,用于根据所述第二平面坐标对应的第二球面坐标和所述第四平面坐标对应的第四球面坐标,计算第二三维运动矢量;
[0062] 第五计算模块,用于利用所述第一三维运动矢量和所述第二三维运动矢量的相等性以及参考点在参考帧的当前预测单元中的预设深度分别确定参考点在当前帧的当前预测单元中的深度、在当前帧的最相邻预测单元中的深度以及在参考帧的最相邻预测单元中的深度;
[0063] 第六计算模块,用于根据参考点在参考帧的当前预测单元中的预设深度和参考点在当前帧的当前预测单元中的深度计算所述当前预测单元在三维空间内的三维运动矢量;
[0064] 或根据参考点在参考帧的最相邻预测单元中的深度和参考点在当前帧的最相邻预测单元中的深度计算所述当前预测单元在三维空间内的三维运动矢量。
[0065] 优选的,所述编码单元包括;
[0066] 第一代价函数计算模块,用于计算经过球坐标变换运动模型补偿后的所述当前预测单元的第一代价函数值;
[0067] 第二代价函数计算模块,用于计算经过平动模型补偿后的所述当前预测单元的第二代价函数值;
[0068] 比较模块,用于比较所述第一代价函数值和所述第二代价函数值,根据比较结果选取所述当前预测单元的补偿方式。
[0069] 经由上述技术方案可知,本申请公开了一种全景视频编码方法和装置。该方法将当前预测单元中的某个参考点在当前帧的当前预测单元、当前帧的最相邻预测单元、参考帧的当前预测单元以及参考帧的最相邻预测单元的平面坐标转换为球面坐标,从而根据参考点的球面坐标确定当前预测单元在三维空间内的三维运动矢量。进而,根据该三维运动矢量确定当前帧中当前预测单元的所有目标点在参考帧的对应目标参考点,并根据该目标参考点的像素对目标点像素进行补偿。与现有技术相比,本发明采用球面坐标系转换运动模型进行像素补偿,消除了视频中畸变带来的影响,从而提高视频编码效率。

附图说明

[0070] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0071] 图1示出了本发明一个实施例公开的一种全景视频编码方法的流程示意图;
[0072] 图2示出了本发明另一个实施例公开的一种最相邻预测单元位置图;
[0073] 图3示出了一种球面模型示意图;
[0074] 图4示出了本发明另一个实施例公开的一种全景视频编码装置的结构示意图。

具体实施方式

[0075] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0076] 参见图1示出了本发明一个实施例公开的一种全景视频编码方法的流程示意图。
[0077] 在本实施例中,该方法包括:
[0078] 由图1可知,该方法包括:
[0079] S101:确定当前预测单元的最相邻预测单元。
[0080] 对于一个预测单元,首先在它的领域进行搜索,搜索位置如图2所示的a0、a1、b0、b1和b2。
[0081] 首先比较当前预测单元的二维运动矢量与上述5个候选位置所在的预测单元的二维运动矢量。确定二维运动矢量距离最近的候选位置,将该候选位置所在的预测单元作为当前预测单元的最相邻预测单元。
[0082] S102:获取参考点的第一平面坐标、第二平面坐标、第三平面坐标以及第四平面坐标。
[0083] 当前帧包含2个预测单元(当前预测单元以及最相邻预测单元),设参考点(通常选取预测单元中心点为参考点)在当前帧的当前预测单元中的坐标为第一平面坐标c1=(u1c,v1c),参考点在当前帧的最相邻单元中的坐标为第二平面坐标c2=(u2c,v2c),参考点在参考帧的当前预测单元中的坐标为第三平面坐标a1=(u1,v1),参考点在参考帧的最相邻预测单元中的坐标为第四平面坐标a1=(u1,v1)。
[0084] S103:分别将所述第一平面坐标、所述第二平面坐标、所述第三平面坐标以及所述第四平面坐标转换为球面坐标。
[0085] 基于公式 z=Rcosθ计算所述球面坐标。
[0086] 参见图3示出了一种球面模型示意图。其中,θ表示球面坐标的纬度,且表示球面坐标的经度,且
[0087] (u,v)表示所述参考点的平面坐标,H表示图像的高度,W表示图像的宽度,R表示所述参考点的深度。
[0088] 我们可以很容易的用经纬图投影公式算出每一点的纬度θ和经度 而4个点的深度未知,我们假设为ra1,ra2,rc1和rc2,那么就可以使用球坐标变换得到4个点在三维空间的坐标如下。
[0089]
[0090]
[0091]
[0092]
[0093] S104:根据所述球面坐标计算所述当前预测单元在三维空间内的三维运动矢量。
[0094] 在本实施例中我们设定:a.一个预测单元中所有点共用一个深度。b.相邻预测单元的二维运动矢量如果相似,则它们应当对应于同一个物体。c.同一个物体上的点相对于相机的运动也是相同的。
[0095] 基于上述三个设定,则可计算出由此可以计算出2个三维运动矢量且2个三维运动矢量是相等的:
[0096]
[0097] 这样可以得到如下方程组
[0098]
[0099]
[0100] ra1cosθa1-rc1cosθc1=ra2cosθa2-rc2cosθc2
[0101] 在这里我们规定ra1=1可以将上面的方程组写成矩阵形式:
[0102]
[0103]
[0104]
[0105] 则:
[0106] r=Φ-1a
[0107] 可以看到,我们估计出的是当前PU的相对深度而不是绝对深度,但是相[0108] 对深度对于运动补偿已经足够了。当Φ不可逆时,令ra2=rc1=rc2=1。
[0109] 估计出所有的深度后,可以计算出当前预测单元在三维空间的MV
[0110] 值
[0111]
[0112]
[0113]
[0114] Δz=rc1cosθc1-ra1cosθa1
[0115] S105:对于当前帧的当前预测单元中所有目标点,根据所述三维运动矢量确定所述目标点在参考帧内对应的目标参考点。
[0116] 对于当前帧的任一目标点p,使用球坐标变换得到三维空间的p3D,[0117]
[0118] 利用p3D加上 就可以得到p点对于的目标参考点在参考帧上的坐标
[0119] S106:利用所述目标参考点的像素对所述目标点像素进行补偿,以实现对所述当前预测单元的球坐标变换运动模型补偿。
[0120] 对 使用球坐标反变换,就可以得到参考帧中像素porg=(uorg,vorg):
[0121]
[0122]
[0123] 用得到的参考帧中的像素点porg的像素值对当前点p做补偿。这里,如果p(org)的坐标(u org,vorg)不是整数,则我们在参考帧上进行插值,得出p(org)的像素值。
[0124] S107:对所述当前预测单元进行编码。
[0125] 具体的,计算经过球坐标变换运动模型补偿后的所述当前预测单元的第一代价函数值;
[0126] 计算经过平动模型补偿后的所述当前预测单元的第二代价函数值;
[0127] 比较所述第一代价函数值和所述第二代价函数值,根据比较结果选取所述当前预测单元的补偿方式。
[0128] 由以上实施例可知,本申请公开了一种全景视频编码方法。该方法将当前预测单元中的某个参考点在当前帧的当前预测单元、当前帧的最相邻预测单元、参考帧的当前预测单元以及参考帧的最相邻预测单元的平面坐标转换为球面坐标,从而根据参考点的球面坐标确定当前预测单元在三维空间内的三维运动矢量。进而,根据该三维运动矢量确定当前帧中当前预测单元的所有目标点在参考帧的对应目标参考点,并根据该目标参考点的像素对目标点像素进行补偿。与现有技术相比,本发明采用球面坐标系转换运动模型进行像素补偿,消除了视频中畸变带来的影响,从而提高视频编码效率。
[0129] 需要说明的是,在上述实施例中,为了降低运算复杂度,在步骤S101确定当前预测单元和最相邻预测单元的二维运动矢量时,我们的二维运动矢量的搜索分为2次,第一次二维运动矢量搜索中使用平动模型来做运动补偿,第二次采用基于球坐标的模型,但是在第二次搜索时,我们以第一次搜索的运动矢量作为基础二维运动矢量,把第二次搜索的范围缩小到3×3像素大小的区域。另外如果第一次搜索的基础二维运动矢量满足如下条件:
[0130] |Δu|+|Δv|≤4
[0131] 就在第二次搜索时只做分数像素搜索。要说明的一点是我们采用的MV精度是1/4像素精度,不过我们做球坐标变换可以扩展为任意精度。
[0132] 另外,在本发明公开的其他实施例中,一种特殊的模式称为合并模式(Merge Mode),就是当前预测单元使用合并候选(Merge Candidate)位置的二维运动矢量,其中空域合并候选的位置也是图2中的5个位置,我们的模型中为了防止出现使用合并模式的预测单元选中的邻接预测单元始终为其合并候选,采用一种新的合并模式:
[0133] 如图2所示,如果当前预测单元用a1作为其最佳合并候选,意味着预测单元的二维运动矢量等于MV1。这就导致了a1所在的预测单元必然成为最相邻预测单元。
[0134] 为了避免这情况,我们不直接设置MV等于MV1,而是在其他的合并候选位置中搜索离MV1欧氏距离最近的MV,比如说是MV3,那么就用MV1,MV3来确定当前预测单元的的二维运动矢量,设为:
[0135]
[0136] 参见图4示出了本发明另一个实施例公开的一种全景视频编码装置的结构示意图。
[0137] 由图4可知,该装置包括:筛选单元1、坐标采集单元2、坐标转换单元3、三维运动矢量计算单元4、目标参考点确定单元5、补偿单元6以及编码单元7。
[0138] 其中,筛选单元1用于确定当前预测单元的最相邻预测单元。
[0139] 坐标采集单元2用于获取参考点的第一平面坐标、第二平面坐标、第三平面坐标以及第四平面坐标。
[0140] 其中,所述第一平面坐标为所述参考点在当前帧的当前预测单元中的坐标、所述第二平面坐标为所述参考点在当前帧的最相邻预测单元中的坐标,所述第三平面坐标为所述参考点在参考帧的当前预测单元中的坐标,所述第四平面坐标为所述参考点在参考帧的最相邻预测单元中的坐标;
[0141] 坐标转换单元3用于分别将所述第一平面坐标、所述第二平面坐标、所述第三平面坐标以及所述第四平面坐标转换为球面坐标。
[0142] 三维运动矢量计算单元4用于根据所述球面坐标计算所述当前预测单元在三维空间内的三维运动矢量。
[0143] 目标参考点确定单元5用于对于当前帧的当前预测单元中所有目标点,根据所述三维运动矢量确定所述目标点在参考帧内对应的目标参考点。
[0144] 补偿单元6用于利用所述目标参考点的像素对所述目标点像素进行补偿,以实现对所述当前预测单元的球坐标变换运动模型补偿.
[0145] 编码单元7用于对所述当前预测单元进行编码。
[0146] 具体的,所述筛选单元包括:
[0147] 二维运动矢量搜索模块,用于获取所述当前预测单元的二维运动矢量,以及多个相邻预测单元的二维运动矢量。
[0148] 比较模块,用于比较所述当前预测单元的二维运动矢量和相邻预测单元的二维运动矢量。
[0149] 预测单元选取模块,用于将与所述当前预测单元二维运动矢量最近的相邻预测单元作为所述当前预测单元的最相邻预测单元。
[0150] 所述坐标采集单元包括:
[0151] 坐标采集模块,用于获取所述参考点的所述第一平面坐标和所述第二平面坐标。
[0152] 第一计算模块,用于计算所述当前预测单元与所述最相邻预测单元的二维运动矢量差值。
[0153] 第二计算模块,用于根据所述二维运动矢量差值和所述第一平面坐标确定所述第三平面坐标,以及根据所述二维运动矢量差值和所述第二平面坐标确定所述第四平面坐标。
[0154] 所述坐标转换单元具体用于:
[0155] 基于公式 z=Rcosθ计算所述球面坐标;
[0156] 其中,θ表示球面坐标的纬度,且 表示球面坐标的经度,且
[0157]
[0158] (u,v)表示所述参考点的平面坐标,H表示图像的高度,W表示图像的宽度,R表示所述参考点的深度。
[0159] 所述三维运动矢量计算单元,包括:
[0160] 第三计算模块,用于根据所述第一平面坐标对应的第一球面坐标和所述第三平面坐标对应的第三球面坐标,计算第一三维运动矢量。
[0161] 第四计算模块,用于根据所述第二平面坐标对应的第二球面坐标和所述第四平面坐标对应的第四球面坐标,计算第二三维运动矢量。
[0162] 第五计算模块,用于利用所述第一三维运动矢量和所述第二三维运动矢量的相等性以及参考点在参考帧的当前预测单元中的预设深度分别确定参考点在当前帧的当前预测单元中的深度、在当前帧的最相邻预测单元中的深度以及在参考帧的最相邻预测单元中的深度。
[0163] 第六计算模块,用于根据参考点在参考帧的当前预测单元中的预设深度和参考点在当前帧的当前预测单元中的深度计算所述当前预测单元在三维空间内的三维运动矢量;或根据参考点在参考帧的最相邻预测单元中的深度和参考点在当前帧的最相邻预测单元中的深度计算所述当前预测单元在三维空间内的三维运动矢量。
[0164] 所述编码单元包括;
[0165] 第一代价函数计算模块,用于计算经过球坐标变换运动模型补偿后的所述当前预测单元的第一代价函数值;
[0166] 第二代价函数计算模块,用于计算经过平动模型补偿后的所述当前预测单元的第二代价函数值;
[0167] 比较模块,用于比较所述第一代价函数值和所述第二代价函数值,根据比较结果选取所述当前预测单元的补偿方式。
[0168] 需要说明的是该装置实施例与方法实施例相对应,其执行过程和执行原理相同,在此不作赘述。
[0169] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0170] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0171] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。