一种沉浸媒体的数据处理方法及相关设备与流程

文档序号:26939599发布日期:2021-10-12 14:55阅读:90来源:国知局
一种沉浸媒体的数据处理方法及相关设备与流程

1.本技术涉及计算机技术领域,具体涉及虚拟现实(virtual reality,vr)技术领域,尤其涉及一种沉浸媒体的数据处理方法、一种沉浸媒体的数据处理装置、一种编码设备及一种解码设备。


背景技术:

2.在沉浸媒体的视频处理过程中,对于投影图像进行区域封装后再进行编码能够大幅提升视频的编码效率,因此区域封装技术已经广泛应用到沉浸媒体的视频处理过程中。但实践中发现,现有的区域封装过程会带来较大计算和存储开销,从而影响沉浸媒体的视频编码效率。


技术实现要素:

3.本技术实施例提供一种沉浸媒体的数据处理方法及相关设备,可减少沉浸媒体的数据处理开销。
4.一方面,本技术实施例提供一种沉浸媒体的数据处理方法,包括:
5.获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区域处理信息;当区域处理信息指示沉浸媒体的第i个映射区域需要被执行第一转换处理时,区域形状信息指示第i个映射区域的形状是目标形状,其中i为正整数;
6.按照区域封装数据盒对沉浸媒体执行区域封装处理。
7.本技术实施例在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的映射区域才能够在区域封装过程中被执行第一转换处理(如旋转),由于目标形状的映射区域在区域封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域封装过程中的存储和计算开销。
8.一方面,本技术实施例提供一种沉浸媒体的数据处理方法,包括:
9.获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区域处理信息;当区域处理信息指示沉浸媒体的第i个封装区域需要被执行第一逆转换处理时,区域形状信息指示第i个封装区域的形状是目标形状,其中i为正整数;
10.按照区域封装数据盒对沉浸媒体执行区域解封装处理。
11.本技术实施例在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的封装区域才能够在区域解封装过程中被执行第一逆转换处理(如旋转),由于目标形状的封装区域在区域解封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域解封装过程中的存储和计算开销。
12.一方面,本技术实施例提供一种沉浸媒体的数据处理方法,包括:
13.获取沉浸媒体的投影图像及投影图像的区域配置;
14.按照区域配置从投影图像中划分出n个映射区域,n为正整数;
15.根据区域配置和n个映射区域生成沉浸媒体的区域封装数据盒;区域封装数据盒
包括区域形状信息和区域处理信息,当区域处理信息指示沉浸媒体的第i个映射区域需要被执行第一转换处理时,区域形状信息指示第i个映射区域的形状是目标形状,其中i为正整数且1≤i≤n;
16.按照区域封装数据盒对投影图像进行区域封装处理,得到沉浸媒体的封装图像,封装图像中包括n个封装区域,一个映射区域对应一个封装区域;
17.对封装图像进行编码处理,得到沉浸媒体的编码文件。
18.本技术实施例在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的映射区域才能够在区域封装过程中被执行第一转换处理(如旋转),由于目标形状的映射区域在区域封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域封装过程中的存储和计算开销,并且有利于提升沉浸媒体的编码效率。
19.一方面,本技术实施例提供一种沉浸媒体的数据处理方法,包括:
20.对沉浸媒体的编码文件进行解码处理,得到沉浸媒体的封装图像,封装图像中包括n个封装区域,n为正整数;
21.获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区域处理信息;当区域处理信息指示沉浸媒体的第i个封装区域需要被执行第一逆转换处理时,区域形状信息指示第i个封装区域的形状是目标形状,其中i为正整数;
22.按照区域封装数据盒对封装图像执行区域解封装处理,得到沉浸媒体的投影图像,投影图像包括n个映射区域,一个封装区域对应一个映射区域;
23.对投影图像进行三维重建处理,得到沉浸媒体的三维图像。
24.本技术实施例在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的封装区域才能够在区域解封装过程中被执行第一逆转换处理(如旋转),由于目标形状的封装区域在区域解封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域解封装过程中的存储和计算开销,并且有利于提升沉浸媒体的解码效率。
25.一方面,本技术实施例提供一种沉浸媒体的数据处理装置,包括:
26.获取单元,用于获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区域处理信息;当区域处理信息指示沉浸媒体的第i个映射区域需要被执行第一转换处理时,区域形状信息指示第i个映射区域的形状是目标形状,其中i为正整数;
27.处理单元,用于按照区域封装数据盒对沉浸媒体执行区域封装处理。
28.本技术实施例在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的映射区域才能够在区域封装过程中被执行第一转换处理(如旋转),由于目标形状的映射区域在区域封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域封装过程中的存储和计算开销。
29.一方面,本技术实施例提供另一种沉浸媒体的数据处理装置,包括:
30.获取单元,用于获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区域处理信息;当区域处理信息指示沉浸媒体的第i个封装区域需要被执行第一逆转换处理时,区域形状信息指示第i个封装区域的形状是目标形状,其中i为正整数;
31.处理单元,用于按照区域封装数据盒对沉浸媒体执行区域解封装处理。
32.本技术实施例在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方
形)的封装区域才能够在区域解封装过程中被执行第一逆转换处理(如旋转),由于目标形状的封装区域在区域解封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域解封装过程中的存储和计算开销。
33.一方面,本技术实施例提供另一种沉浸媒体的数据处理装置,包括:
34.获取单元,用于获取沉浸媒体的投影图像及投影图像的区域配置;
35.处理单元,用于按照区域配置从投影图像中划分出n个映射区域,n为正整数;以及,
36.用于根据区域配置和n个映射区域生成沉浸媒体的区域封装数据盒;区域封装数据盒包括区域形状信息和区域处理信息,当区域处理信息指示沉浸媒体的第i个映射区域需要被执行第一转换处理时,区域形状信息指示第i个映射区域的形状是目标形状,其中i为正整数且1≤i≤n;以及,
37.用于按照区域封装数据盒对投影图像进行区域封装处理,得到沉浸媒体的封装图像,封装图像中包括n个封装区域,一个映射区域对应一个封装区域;以及,
38.用于对封装图像进行编码处理,得到沉浸媒体的编码文件。
39.本技术实施例在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的映射区域才能够在区域封装过程中被执行第一转换处理(如旋转),由于目标形状的映射区域在区域封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域封装过程中的存储和计算开销,并且有利于提升沉浸媒体的编码效率。
40.一方面,本技术实施例提供另一种沉浸媒体的数据处理装置,包括:
41.处理单元,用于对沉浸媒体的编码文件进行解码处理,得到沉浸媒体的封装图像,封装图像中包括n个封装区域,n为正整数;
42.获取单元,用于获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区域处理信息;当区域处理信息指示沉浸媒体的第i个封装区域需要被执行第一逆转换处理时,区域形状信息指示第i个封装区域的形状是目标形状,其中i为正整数;
43.处理单元,还用于按照区域封装数据盒对封装图像执行区域解封装处理,得到沉浸媒体的投影图像,投影图像包括n个映射区域,一个封装区域对应一个映射区域;以及,
44.还用于对投影图像进行三维重建处理,得到沉浸媒体的三维图像。
45.本技术实施例在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的封装区域才能够在区域解封装过程中被执行第一逆转换处理(如旋转),由于目标形状的封装区域在区域解封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域解封装过程中的存储和计算开销,并且有利于提升沉浸媒体的解码效率。
46.一方面,本技术实施例提供一种编码设备,包括:
47.处理器,适于实现一条或多条指令;以及,
48.存储器,存储有一条或多条第一指令(或第二指令),一条或多条第一指令(或第二指令)适于由处理器加载并执行上述相关的沉浸媒体的数据处理方法。
49.本技术实施例在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的映射区域才能够在区域封装过程中被执行第一转换处理(如旋转),由于目标形状的映射区域在区域封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸
媒体在区域封装过程中的存储和计算开销,并且有利于提升沉浸媒体的编码效率。
50.一方面,本技术实施例提供一种解码设备,包括:
51.处理器,适于实现一条或多条指令;以及,
52.存储器,存储有一条或多条第一指令(或第二指令),一条或多条第一指令(或第二指令)适于由处理器加载并执行上述相关的沉浸媒体的数据处理方法。
53.本技术实施例在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的封装区域才能够在区域解封装过程中被执行第一逆转换处理(如旋转),由于目标形状的封装区域在区域解封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域解封装过程中的存储和计算开销,并且有利于提升沉浸媒体的解码效率。
附图说明
54.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
55.图1示出了本技术一个示例性实施例提供的一种沉浸媒体系统的架构图;
56.图2示出了本技术一个示例性实施例提供的6dof的示意图;
57.图3示出了本技术一个示例性实施例提供的3dof的示意图;
58.图4示出了本技术一个示例性实施例提供的3dof+的示意图;
59.图5示出了本技术一个示例性实施例提供的映射区域和设有保护带的封装区域的示意图;
60.图6a示出了本技术一个示例性实施例提供的长方形映射区域进行旋转的效果示意图;
61.图6b示出了本技术一个示例性实施例提供的将长方形映射区域拆分为正方形映射区域再进行旋转的效果示意图;
62.图7示出了本技术一个示例性实施例提供的一种沉浸媒体的数据处理方法的流程图;
63.图8示出了本技术一个示例性实施例提供的一种沉浸媒体的数据处理方法的流程图;
64.图9示出了本技术一个示例性实施例提供的一种沉浸媒体的数据处理方法的流程图;
65.图10示出了本技术一个示例性实施例提供的一种沉浸媒体的数据处理方法的流程图;
66.图11示出了本技术一个示例性实施例提供的一种沉浸媒体的数据处理装置的结构示意图;
67.图12示出了本技术一个示例性实施例提供的一种沉浸媒体的数据处理装置的结构示意图;
68.图13示出了本技术一个示例性实施例提供的一种编码设备的结构示意图;
69.图14示出了本技术一个示例性实施例提供的一种解码设备的结构示意图。
具体实施方式
70.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
71.本技术实施例涉及沉浸媒体的数据处理技术。所谓沉浸媒体是指能够提供沉浸式的媒体内容,使沉浸于该媒体内容中的用户能够获得现实世界中视觉、听觉等感官体验的媒体文件。沉浸式的媒体内容包括以各种形式在三维(3-dimension,3d)空间中表示的视频内容,例如以球面形式表示的三维视频内容。具体地,沉浸式的媒体内容可以是vr(virtual reality,虚拟现实)视频内容、全景视频内容、球面视频内容或360度视频内容;所以,沉浸媒体又可称为vr视频、全景视频、球面视频或360度视频。另外,沉浸式的媒体内容还包括与三维空间中表示的视频内容相同步的音频内容。
72.图1示出了本技术一个示例性实施例提供的一种沉浸媒体系统的架构图;如图1所示,沉浸媒体系统包括编码设备和解码设备,编码设备可以是指沉浸媒体的提供者所使用的计算机设备,该计算机设备可以是终端(如pc(personal computer,个人计算机)、智能移动设备(如智能手机)等)或服务器。解码设备可以是指沉浸媒体的使用者所使用的计算机设备,该计算机设备可以是终端(如pc(personal computer,个人计算机)、智能移动设备(如智能手机)、vr设备(如vr头盔、vr眼镜等))。沉浸媒体的数据处理过程包括在编码设备侧的数据处理过程及在解码设备侧的数据处理过程。
73.在编码设备端的数据处理过程主要包括:(1)沉浸媒体的媒体内容的获取与制作过程;(2)沉浸媒体的编码及文件封装的过程。在解码设备端的数据处理过程主要包括:(3)沉浸媒体的文件解封装及解码的过程;(4)沉浸媒体的渲染过程。另外,编码设备与解码设备之间涉及沉浸媒体的传输过程,该传输过程可以基于各种传输协议来进行,此处的传输协议可包括但不限于:dash(dynamic adaptive streaming over http,动态自适应流媒体传输)协议、hls(http live streaming,动态码率自适应传输)协议、smtp(smart media transport protocaol,智能媒体传输协议)、tcp(transmission control protocol,传输控制协议)等。
74.下面将结合图1,分别对沉浸媒体的数据处理过程中涉及的各个过程进行详细介绍。
75.一、在编码设备端的数据处理过程:
76.(1)沉浸媒体的媒体内容的获取与制作过程。
77.1)沉浸媒体的媒体内容的获取过程。
78.沉浸媒体的媒体内容是通过捕获设备采集现实世界的声音-视觉场景获得的。在一种实现中,捕获设备可以是指设于编码设备中的硬件组件,例如捕获设备是指终端的麦克风、摄像头、传感器等。另一种实现中,该捕获设备也可以是与编码设备相连接的硬件装置,例如与服务器相连接摄像头;用于为编码设备提供沉浸媒体的媒体内容的获取服务。该捕获设备可以包括但不限于:音频设备、摄像设备及传感设备。其中,音频设备可以包括音
频传感器、麦克风等。摄像设备可以包括普通摄像头、立体摄像头、光场摄像头等。传感设备可以包括激光设备、雷达设备等。捕获设备的数量可以为多个,这些捕获设备被部署在现实空间中的一些特定位置以同时捕获该空间内不同角度的音频内容和视频内容,捕获的音频内容和视频内容在时间和空间上均保持同步。通过捕获设备采集到的媒体内容称作沉浸媒体的原始数据。
79.2)沉浸媒体的媒体内容的制作过程。
80.捕获到的音频内容本身就是适合被执行沉浸媒体的音频编码的内容。捕获到的视频内容进行一系列制作流程后才可成为适合被执行沉浸媒体的视频编码的内容,该制作流程包括:
81.①
拼接。由于捕获到的视频内容是捕获设备在不同角度下拍摄得到的,拼接就是指对这些各个角度拍摄的视频内容拼接成一个完整的、能够反映现实空间360度视觉全景的视频,即拼接后的视频是一个在三维空间表示的全景视频(或球面视频)。
82.②
投影。投影就是指将拼接形成的一个三维视频映射到一个二维(3-dimension,2d)图像上的过程,投影形成的2d图像称为投影图像;投影的方式可包括但不限于:经纬图投影、正六面体投影。
83.③
区域封装。投影图像可以被直接进行编码,也可以对投影图像进行区域封装之后再进行编码。实践中发现,在沉浸媒体的数据处理过程中,对于二维投影图像进行区域封装之后再进行编码能够大幅提升沉浸媒体的视频编码效率,因此区域封装技术被广泛应用到沉浸媒体的视频处理过程中。所谓区域封装是指将投影图像按区域执行转换处理的过程,区域封装过程使投影图像被转换为封装图像。区域封装的过程具体包括:将投影图像划分为多个映射区域,然后再对多个映射区域分别进行转换处理得到多个封装区域,将多个封装区域映射到一个2d图像中得到封装图像。其中,映射区域是指执行区域封装前在投影图像中经划分得到的区域;封装区域是指执行区域封装后位于封装图像中的区域。转换处理可以包括但不限于:镜像、旋转、重新排列、上采样、下采样、改变区域的分辨率及移动等处理。
84.需要说明的是,由于采用捕获设备只能捕获到全景视频,这样的视频经编码设备处理并传输至解码设备进行相应的数据处理后,解码设备侧的用户只能通过执行一些特定动作(如头部旋转)来观看360度的视频信息,而执行非特定动作(如移动头部)并不能获得相应的视频变化,vr体验不佳,因此需要额外提供与全景视频相匹配的深度信息,来使用户获得更优的沉浸度和更佳的vr体验,这就涉及6dof(six degrees of freedom,六自由度)制作技术。当用户可以在模拟的场景中较自由的移动时,称为6dof。采用6dof制作技术进行沉浸媒体的视频内容的制作时,捕获设备一般会选用光场摄像头、激光设备、雷达设备等,捕获空间中的点云数据或光场数据,并且在执行上述制作流程
①-③
的过程中还需要进行一些特定处理,例如对点云数据的切割、映射等过程,深度信息的计算过程等。图2示出了本技术一个示例性实施例提供的6dof的示意图;6dof分为窗口6dof、全方向6dof和6dof,其中,窗口6dof是指用户在x轴、y轴的旋转移动受限,以及在z轴的平移受限;例如,用户不能够看到窗户框架外的景象,以及用户无法穿过窗户。全方向6dof是指用户在x轴、y轴和z轴的旋转移动受限,例如,用户在受限的移动区域中不能自由的穿过三维的360度vr内容。6dof是指用户可以沿着x轴、y轴、z轴自由平移,例如,用户可以在三维的360度vr内容中自
由的走动。与6dof相类似的,还有3dof和3dof+制作技术。图3示出了本技术一个示例性实施例提供的3dof的示意图;如图3所示,3dof是指用户在一个三维空间的中心点固定,用户头部沿着x轴、y轴和z轴旋转来观看媒体内容提供的画面。图4示出了本技术一个示例性实施例提供的3dof+的示意图,如图4所示,3dof+是指当沉浸媒体提供的虚拟场景具有一定的深度信息,用户头部可以基于3dof在一个有限的空间内移动来观看媒体内容提供的画面。
85.(2)沉浸媒体的编码及文件封装的过程。
86.捕获到的音频内容可直接进行音频编码形成沉浸媒体的音频码流。经过上述制作流程
①-②

①-③
之后,对投影图像或封装图像进行视频编码,得到沉浸媒体的视频码流。此处需要说明的是,如果采用6dof制作技术,在视频编码过程中需要采用特定的编码方式(如点云编码)进行编码。将音频码流和视频码流按照沉浸媒体的文件格式(如isobmff(iso base media file format,iso基媒体文件格式))封装在文件容器中形成沉浸媒体的媒体文件资源,该媒体文件资源可以是媒体文件或媒体片段形成沉浸媒体的媒体文件;并按照沉浸媒体的文件格式要求采用媒体呈现描述信息(media presentation description,mpd)记录该沉浸媒体的媒体文件资源的元数据,此处的元数据是对与沉浸媒体的呈现有关的信息的总称,该元数据可包括对媒体内容的描述信息、对视窗的描述信息以及对媒体内容呈现相关的信令信息等等。如图1所示,编码设备会存储经过数据处理过程之后形成的媒体呈现描述信息和媒体文件资源。
87.二、在解码设备端的数据处理过程:
88.(3)沉浸媒体的文件解封装及解码的过程;
89.解码设备可以通过编码设备的推荐或按照解码设备端的用户需求自适应动态从编码设备获得沉浸媒体的媒体文件资源和相应的媒体呈现描述信息,例如解码设备可根据用户的头部/眼睛/身体的跟踪信息确定用户的朝向和位置,再基于确定的朝向和位置动态向编码设备请求获得相应的媒体文件资源。媒体文件资源和媒体呈现描述信息通过传输机制(如dash、smt)由编码设备传输给解码设备。解码设备端的文件解封装的过程与编码设备端的文件封装过程是相逆的,解码设备按照沉浸媒体的文件格式要求对媒体文件资源进行解封装,得到音频码流和视频码流。解码设备端的解码过程与编码设备端的编码过程是相逆的,解码设备对音频码流进行音频解码,还原出音频内容。另外,解码设备对视频码流的解码过程包括如下:
90.①
对视频码流进行解码,得到平面图像;根据媒体呈现描述信息提供的元数据,如果该元数据指示沉浸媒体执行过区域封装过程,该平面图像是指封装图像;如果该元数据指示沉浸媒体未执行过区域封装过程,则该平面图像是指投影图像;
91.②
如果元数据指示沉浸媒体执行过区域封装过程,解码设备就将封装图像进行区域解封装得到投影图像。此处区域解封装与区域封装是相逆的,区域解封装是指将封装图像按照区域执行逆转换处理的过程,区域解封装使封装图像被转换为投影图像。区域解封装的过程具体包括:按照元数据的指示对封装图像中的多个封装区域分别进行逆转换处理得到多个映射区域,将该多个映射区域映射至一个2d图像从而得到投影图像。逆转换处理是指与转换处理相逆的处理,例如:转换处理是指逆时针旋转90度,那么逆转换处理是指顺时针旋转90度。
92.③
根据媒体呈现描述信息将投影图像进行重建处理以转换为3d图像,此处的重建
处理是指将二维的投影图像重新投影至3d空间中的处理。
93.(4)沉浸媒体的渲染过程。
94.解码设备根据媒体呈现描述信息中与渲染、视窗相关的元数据对音频解码得到的音频内容及视频解码得到的3d图像进行渲染,渲染完成即实现了对该3d图像的播放输出。特别地,如果采用3dof和3dof+的制作技术,解码设备主要基于当前视点、视差、深度信息等对3d图像进行渲染,如果采用6dof的制作技术,解码设备主要基于当前视点对视窗内的3d图像进行渲染。其中,视点指用户的观看位置点,视差是指用户的双目产生的视线差或由于运动产生的视线差,视窗是指观看区域。
95.沉浸媒体系统支持数据盒(box),数据盒是指包括元数据的数据块或对象,即数据盒中包含了相应媒体内容的元数据。沉浸媒体可以包括多个数据盒,例如包括球面区域缩放数据盒(sphere region zooming box),其包含用于描述球面区域缩放信息的元数据;2d区域缩放数据盒(2dregionzoomingbox),其包含用于描述2d区域缩放信息的元数据;区域封装数据盒(region wise packing box),其包含用于描述区域封装过程中的相应信息的元数据;等等。
96.在上述关于沉浸媒体系统的相关描述中可知,在沉浸媒体的数据处理过程中,对于二维投影图像进行区域封装之后再进行编码能够大幅提升沉浸媒体的视频编码效率,因此区域封装技术被广泛应用到沉浸媒体的视频处理过程中。区域封装结构(region wise packing struct)规定了封装区域与相应的映射区域之间的映射关系,另外,如果区域封装过程中为封装区域设置了保护带(guardband),区域封装结构(region wise packing struct)中还规定了保护带的位置和大小。保护带是为了避免出现边界误差的问题而设置的。
97.依据沉浸媒体的现有编码标准(如avs(audio video coding standard,信源编码标准)),目前沉浸媒体的区域封装过程仅支持矩形(包括长方形和正方形)区域封装结构。基于现有编码标准,沉浸媒体的区域封装数据盒的语法可参见下述表1:
98.表1
99.[0100][0101]
上述表1所示语法的语义如下:regionwisepackingstruct()表示区域封装结果;constituent_picture_matching_flag表示组成图片匹配标志,对于立体投影图像(即有左目和右目两个图像成分),当两个图像成分的帧封装方式确定为上下或左右并排时,如果constituent_picture_matching_flag等于1表示对投影图像的两个图像成分各自的映射区域信息和封装区域信息在语法上单独应用,并且封装图像和投影图像有相同的立体封装格式;如果constituent_picture_matching_flag等于0表示映射区域信息和封装区域信息对应于整个投影图像。constituent_picture_matching_flag为0时num_regions标识封装区域的数量,此时num_regions的0值意义保留。当constituent_picture_matching_flag为1时,封装区域的总数量等于2*num_regions,每一个rectregionpacking(i)描述一个图像成分对应的投影图像和封装图像的信息。proj_picture_width表示投影图像的宽度;proj_picture_height表示投影图像的高度;packed_picture_width表示封装图像的宽度;packed_picture_height表示封装图像的高度。guard_band_flag[i]表示第i个封装区域的保护带的标志,guard_band_flag[i]等于1表示第i个封装区域设置有保护带,guard_band_flag[i]等于1表示第i个封装区域未设置保护带。packing_type[i]表示第i个映射区域的区域封装类型。
[0102]
表1中示出的类矩形区域封装(rectregionpacking)的语法可参见下述表2:
[0103]
表2
[0104][0105]
上述表2所示语法的语义如下:rectregionpacking(i)表示第i个映射区域与对应第i个封装区域之间的区域封装映射关系;proj_reg_width[i],proj_reg_height[i],proj_reg_top[i]和proj_reg_left[i]分别表示第i个映射区域的宽度,高度,顶端的偏移量和左端的偏移量;transform_type[i]表示第i个封装区域逆转换到第i个映射区域时的转换类型;当transform_type[i]中既包括旋转也包括镜像时,先做旋转,后做镜像:transform_type[i]的取值范围为[0,7],各取值所表示的转换类型如下:
[0106]
0:无转换
[0107]
1:水平镜像
[0108]
2:顺时针旋转180度
[0109]
3:先顺时针旋转180度再水平镜像
[0110]
4:先顺时针旋转90度再水平镜像
[0111]
5:顺时针旋转90度
[0112]
6:先顺时针旋转270度再水平镜像
[0113]
7:顺时针旋转270度
[0114]
当transform_type[i]中既包括旋转也包括镜像时,先做旋转,后做镜像;packed_reg_width[i],packed_reg_height[i],packed_reg_top[i]和packed_reg_left[i]分别表示第i个封装区域的宽度,高度,顶端的偏移量和左端的偏移量。需要说明的是,proj_reg_width[i],proj_reg_height[i],packed_reg_width[i]和packed_reg_height[i]的取值均应大于0。
[0115]
表1中示出的类保护带(guardband)的语法可参见下述表3:
[0116]
表3
[0117][0118]
上述表3所示语法的语义如下:guardband(i)表示第i个封装区域的保护带;left_gb_width[i],right_gb_width[i],top_gb_height[i]和bottom_gb_height[i]分别表示第i个封装区域的边界左侧,右侧,上侧和下侧保护带的尺寸大小;gb_not_used_for_pred_flag[i]表示第i个封装区域未使用保护带;gb_type[i][j]表示了第i个封装区域的保护带类型。
[0119]
图5示出了本技术一个示例性实施例提供的第i个映射区域和设有保护带的第i个封装区域的示意图;图5中,501表示投影图像的宽度pro_picture_width;502表示投影图像的高度proj_picture_height;503表示第i个映射区域左端的偏移量proj_reg_left[i];504表示第i个映射区域顶端的偏移量proj_reg_top[i];505表示第i个映射区域的高度proj_rge_height[i];506表示第i个映射区域的宽度proj_reg_width[i]。507表示封装图像的宽度packed_picture_width;508表示封装图像的高度packed_picture_height;509表示第i个封装区域左端的偏移量packed_reg_left[i];510表示第i个封装区域顶端的偏移量packed_reg_top[i];511表示第i个封装区域的高度packed_reg_height[i];512表示第i个封装区域的宽度packed_reg_width[i];513表示第i个封装区域的边界上侧保护带的尺寸大小top_gb_height[i];514表示第i个封装区域的边界左侧保护带的尺寸大小left_gb_width[i];515表示第i个封装区域的边界右侧保护带的尺寸大小right_gb_width[i];516表示第i个封装区域的边界下侧保护带的尺寸大小bottom_gb_height[i]。
[0120]
根据上述沉浸媒体的区域封装数据盒的语法和语义可知,在现有的沉浸媒体的区域封装技术中,映射区域和封装区域均为矩形(包括长方形和正方形)。从映射区域到封装区域的转换可以对映射区域执行任一种方式的转换处理:(1)无转换;(2)水平镜像;(3)逆时针旋转180度;(4)先逆时针旋转180度再水平镜像;(4)先逆时针旋转90度再水平镜像;(5)逆时针旋转90度;(6)先逆时针旋转270度再水平镜像;(8)逆时针旋转270度。相应地,从封装区域到映射区域的转换可以对封装区域执行上述8种方式中的任一种方式的逆转换处理。
[0121]
本技术发明人在实践中发现,上述基于现有的编码标准在沉浸媒体的区域封装技
术中会存在一些问题,具体是:当映射区域的形状为长方形时,编码设备在执行区域封装过程中会产生巨大的存储和计算开销,同理,当封装区域的形状为长方形时,解码设备在执行区域解封装过程中产生的存储和计算开销较大。基于此发现,为了减少沉浸媒体在区域封装过程和区域解封装过程中的存储和计算开销,本技术实施例提出一种沉浸媒体的数据处理方案,该方案针对基于现有编码标准的区域封装技术作出如下两点改进:
[0122]
改进一:规定只有形状为正方形的映射区域才能够在区域封装过程中被进行旋转,同理,规定只有形状为正方形的封装区域才能够在区域解封装过程中被进行旋转。
[0123]
基于此改进一的想法,本技术实施例对基于现有编码标准的沉浸媒体的区域封装数据盒的语法和语义进行了相应修改,具体对上述表2所示的矩形区域封装(rectregionpacking)的语法进行修改,修改后的矩形区域封装(rectregionpacking)的语法可参见下述表4:
[0124]
表4
[0125][0126]
上述表4相对于表2所作修改部分的语法的语义如下:horizontal_flip_flag[i]
指示第i个封装区域逆转换到第i个映射区域时是否进行水平镜像,horizontal_flip_flag[i]取值为0表示无需进行水平镜像,horizontal_flip_flag[i]取值为1表示需要进行水平镜像。可以理解的是,horizontal_flip_flag[i]同样可指示第i个映射区域转换到第i个封装区域时是否进行水平镜像,horizontal_flip_flag[i]取值为0表示无需进行水平镜像,horizontal_flip_flag[i]取值为1表示需要进行水平镜像。
[0127]
rotation_flag[i]指示第i个封装区域逆转换到第i个映射区域时是否进行旋转,rotation_flag[i]取值为0表示无需进行旋转,rotation_flag[i]取值为1表示需要进行旋转。当封装区域的宽度不等于其高度时,该字段rotation_flag[i]的取值为0。可以理解的是,rotation_flag[i]同样可指示第i个映射区域转换到第i个封装区域时是否进行旋转,rotation_flag[i]取值为0表示无需进行旋转,rotation_flag[i]取值为1表示需要进行旋转。当映射区域的宽度不等于其高度时,该字段rotation_flag[i]的取值为0。
[0128]
rotation_degree[i]指示第i个封装区域逆转换到第i个映射区域时旋转的角度,以90度为单位,该字段取值不能为0。可以理解的是,rotation_degree[i]同样可指示第i个映射区域转换到第i个封装区域时旋转的角度,以90度为单位,该字段取值不能为0。
[0129]
改进二:允许将需要旋转且满足拆分条件的长方形映射区域拆分成多个正方形映射区域后再进行旋转;同理,允许将需要旋转且满足拆分条件的长方形封装区域拆分成多个正方形封装区域后再进行旋转。
[0130]
基于上述改进,本技术实施例提出的沉浸媒体的数据处理方案能够极大地降低沉浸媒体在区域封装过程和区域解封装过程中的存储和计算开销。下面以一个具体实例来进行对比说明,图6a示出了本技术一个示例性实施例提供的长方形映射区域进行旋转的效果示意图;图6b示出了本技术一个示例性实施例提供的将长方形映射区域拆分为正方形映射区域再进行旋转的效果示意图。按照区域封装过程中的计算要求,映射区域在区域封装过程中所需的计算矩阵的大小为max(width,height)
×
max(width,height),其中,width表示映射区域的宽度,height表示映射区域的高度。即在区域封装过程中,映射区域中各个像素点被执行转换处理时的计算矩阵的大小取决于该映射区域的宽度和高度之中的较大者。如图6a所示,长方形映射区域的高度为h,宽度为4h,该长方形映射区域在进行区域封装过程中所需的计算矩阵的大小为4h*4h。如图6b所示,按照本技术实施例提出的改进方案,将图6a所示的长方形映射区域拆分为4个边长为h的正方形映射区域分别进行旋转,每个正方形映射区域对应的计算矩阵的大小为h*h,那么4个正方形映射区域所需的计算矩阵的大小为4*h*h。对比可发现,采用本技术实施例对需要旋转的长方形映射区域拆分为正方形映射区域之后再进行旋转,其旋转所需的计算矩阵的大小降低了3/4,该计算矩阵所占据的存储空间减小了3/4,大大降低了存储开销;与此同时,由于计算矩阵的大小被缩减,其计算复杂度也大大降低,这就极大减少了区域封装过程中的计算开销,有利于进一步提升沉浸媒体的编解码效率。
[0131]
图7示出了本技术一个示例性实施例提供的一种沉浸媒体的数据处理方法的流程图;该方法由沉浸媒体系统中的编码设备来执行,该方法包括以下步骤s701-s702:
[0132]
s701,获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区域处理信息;当区域处理信息指示沉浸媒体的第i个映射区域需要被执行第一转换处理时,区域形状信息指示第i个映射区域的形状是目标形状,其中i为正整数。
[0133]
s702,按照区域封装数据盒对沉浸媒体执行区域封装处理。
[0134]
步骤s701-s702中,区域封装数据盒(region wise packing box)的语法可以参见上述表1、表4和表3。其中,区域形状信息是指用于指示区域(映射区域和/或封装区域)的形状的信息,参见上述表4,区域形状信息包括第i个映射区域的宽度proj_reg_width[i]和高度proj_reg_height[i]。当第i个映射区域的宽度proj_reg_width[i]的取值和其高度proj_reg_height[i]的取值相等时,区域形状信息可用于指示第i个映射区域的形状是目标形状,此处目标形状是指正方形。当第i个映射区域的宽度proj_reg_width[i]的取值和其高度proj_reg_height[i]的取值不相等时,区域形状信息可用于指示第i个映射区域的形状是长方形。
[0135]
区域处理信息是指用于指示区域(映射区域和/或封装区域)应当被执行怎样的处理的信息。区域处理信息包括第一转换处理的标志;当第一转换处理的标志为有效数值时,区域处理信息用于指示第i个映射区域需要被执行第一转换处理。当第一转换处理的标志为无效数值时,区域处理信息用于指示第i个映射区域不需要被执行第一转换处理。此处,有效数值和无效数值按照编码标准的要求来设置,例如:按照现有的avs标准,有效数值为1;无效数值为0。区域处理信息还包括第一转换处理的幅度;幅度为非零值,且幅度按转换步长的倍数进行变化。当第一转换处理的标志为有效数值时,步骤s702具体包括:按照幅度对第i个映射区域执行第一转换处理。
[0136]
在一种实施方式中,第一转换处理是指沿逆时针方向的旋转,参见上述表4,则第一转换处理的标志是指旋转标志rotation_flag[i],有效数值是1,即rotation_flag[i]取值为1表示第i个映射区域需要进行旋转。在此实施方式下,第一转换处理的幅度是指旋转角度rotation_degree[i],转换步长为90度,即映射区域以90度为单位进行逆时针旋转,例如:逆时针旋转90度、180度、270度;那么步骤s702具体包括:按照rotation_degree[i]所指示的旋转角度对第i个映射区域执行逆时针旋转。
[0137]
另外,区域处理信息还可包括第二转换处理的标志;当第二转换处理的标志为有效数值时,区域处理信息用于指示第i个映射区域需要被执行第二转换处理。当第二转换处理的标志为无效数值时,区域处理信息用于指示第i个映射区域不需要被执行第二转换处理。
[0138]
在一种实施方式中,第二转换处理是指水平镜像,参见上述表4,第二转换处理的标志为horizontal_flip_flag[i],有效数值为1,horizontal_flip_flag[i]取值为1表示需要进行水平镜像;那么步骤s702具体包括:对第i个映射区域执行水平镜像;镜像是指像镜子反射一样以穿过中心点的垂直轴为中心所执行的对称翻转的动作。水平镜像则是指像镜子反射一样以穿过中心点的垂直轴为中心,沿水平方向所执行的对称翻转的动作。
[0139]
本技术实施例中,在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的映射区域才能够在区域封装过程中被执行第一转换处理(如旋转),由于目标形状的映射区域在区域封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域封装过程中的存储和计算开销。
[0140]
图8示出了本技术一个示例性实施例提供的一种沉浸媒体的数据处理方法的流程图;该方法由沉浸媒体系统中的解码设备来执行,该方法包括以下步骤s801-s802:
[0141]
s801,获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区
域处理信息;当区域处理信息指示沉浸媒体的第i个封装区域需要被执行第一逆转换处理时,区域形状信息指示第i个封装区域的形状是目标形状,其中i为正整数。
[0142]
s802,按照区域封装数据盒对沉浸媒体执行区域解封装处理。
[0143]
步骤s801-s802中,区域封装数据盒(region wise packing box)的语法可以参见上述表1、表4和表3。其中,区域形状信息是指用于指示区域(映射区域和/或封装区域)的形状的信息,参见上述表4,区域形状信息包括第i个封装区域的宽度packed_reg_width[i]和高度packed_reg_height[i]。当第i个封装区域的宽度packed_reg_width[i]的取值和其高度packed_reg_height[i]的取值相等时,区域形状信息用于指示第i个封装区域的形状为目标形状,此处的目标形状是指正方形。当第i个封装区域的宽度packed_reg_width[i]的取值和其高度packed_reg_height[i]的取值不相等时,区域形状信息用于指示第i个封装区域的形状是长方形。
[0144]
区域处理信息是指用于指示区域(映射区域和/或封装区域)应当被执行怎样的处理的信息。区域处理信息包括第一转换处理的标志;当第一转换处理的标志为有效数值时,区域处理信息用于指示第i个封装区域需要被执行第一逆转换处理。当第一转换处理的标志为无效数值时,区域处理信息用于指示第i个封装区域不需要被执行第一逆转换处理。区域处理信息还包括第一转换处理的幅度;幅度为非零值,且幅度按转换步长的倍数进行变化。当第一转换处理的标志为有效数值时,步骤s802具体包括:按照幅度对第i个封装区域执行第一逆转换处理。
[0145]
在一种实施方式中,第一转换处理是指沿逆时针方向的旋转;第一逆转换处理是指与第一转换处理相逆的处理,则第一逆转换处理是指沿顺时针方向的旋转。参见上述表4,第一转换处理的标志是指旋转标志rotation_flag[i],有效数值是1,即rotation_flag[i]取值为1表示第i个封装区域需要进行旋转。在此实施方式下,幅度是指旋转角度rotation_degree[i],转换步长为90度,即封装区域以90度为单位进行顺时针旋转,例如:顺时针旋转90度、180度、270度;那么步骤s802具体包括:按照rotation_degree[i]所指示的旋转角度对第i个映射区域执行顺时针旋转。
[0146]
另外,区域处理信息还可包括第二转换处理的标志;当第二转换处理的标志为有效数值时,区域处理信息用于指示第i个封装区域需要被执行第二逆转换处理。当第二转换处理的标志为无效数值时,区域处理信息用于指示第i个封装区域不需要被执行第二逆转换处理。
[0147]
在一种实施方式中,第二转换处理是指水平镜像,第二逆转换处理是指与第二转换处理相逆的处理,则第二逆转换处理同样是指水平镜像。参见上述表4,第二转换处理的标志为horizontal_flip_flag[i],有效数值为1,horizontal_flip_flag[i]取值为1表示需要进行水平镜像;那么步骤s802具体包括:对第i个封装区域执行水平镜像。
[0148]
本技术实施例中,在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的封装区域才能够在区域解封装过程中被执行第一逆转换处理(如旋转),由于目标形状的封装区域在区域解封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域解封装过程中的存储和计算开销。
[0149]
图9示出了本技术一个示例性实施例提供的一种沉浸媒体的数据处理方法的流程图;该方法由沉浸媒体系统中的编码设备来执行,该方法包括以下步骤s901-s905:
[0150]
s901,获取沉浸媒体的投影图像及投影图像的区域配置。
[0151]
区域配置是指编码设备按照实际需求来为区域封装过程所设置的配置信息,此处的实际需求可以包括但不限于:编码效率需求、编码计算需求以及编码设备自身的编码能力信息等。区域配置可包括分区配置和区域处理配置。其中,分区配置是指用于描述投影图像的分区计划的信息,即分区配置规定了如何对投影图像进行区域划分,以得到多个映射区域。区域处理配置是指用于描述映射区域的转换处理计划的信息,即区域处理配置规定了如何对投影图像中的各个映射区域进行转换处理。
[0152]
s902,按照区域配置从投影图像中划分出n个映射区域,n为正整数。
[0153]
在一种实施方式中,步骤s902可包括以下步骤s11-s12:
[0154]
s11,按照分区配置对投影图像进行划分得到多个初始区域。
[0155]
s12,根据区域处理配置将多个初始区域转换为n个映射区域。
[0156]
步骤s11-12中,按照分区配置对投影图像划分得到的初始区域的形状既可能是正方形,也可能是长方形。按照本技术实施例的改进设计可知,只有正方形的映射区域才能被旋转,所以步骤s12需根据区域处理配置的指示来判断初始区域是否需要旋转,以及根据初始区域的形状来确定该初始区域是否可作为映射区域被执行旋转处理;具体地,采用目标初始区域来指代多个初始区域中的任一个,以目标初始区域为例来说明步骤s12的具体流程,那么,步骤s12根据区域配置将目标初始区域转换为映射区域的方式包括:
[0157]
(1)如果目标初始区域的形状为目标形状(即正方形),则将目标初始区域直接设置为映射区域。
[0158]
此方式下,目标初始区域可以直接被作为映射区域,并且,由于目标初始区域的形状是正方形,因此当该目标初始区域需要旋转时,该目标初始区域被允许旋转。
[0159]
(2)如果目标初始区域的形状为非目标形状(即长方形),且区域处理配置指示目标初始区域需要被执行第一转换处理,则将目标初始区域拆分为至少一个目标形状的映射区域。
[0160]
此方式下,第一转换处理可以指逆时针旋转。由于目标初始区域的形状是长方形,按照本技术实施例的改进规则,该目标初始区域不允许被直接旋转,这样会带来巨大的存储和计算开销。因此,需要将目标初始区域拆分为至少一个正方形映射区域之后再进行旋转。可以理解的是,在对目标初始区域拆分为至少一个正方形的映射区域之前,可先判断该目标初始区域是否满足拆分条件,拆分条件是指目标初始区域能够被拆分得到正方形的映射区域的条件,如果目标初始区域满足拆分条件,即采用某种拆分方式能够从目标初始区域中拆分出一个或多个正方形映射区域,此时才对目标初始区域进行拆分。如果目标初始区域不满足拆分条件,即无论采用何种拆分方式都不能从目标初始区域中得到正方形映射区域,那么可以直接将该目标初始区域设置为映射区域,但同时设置该映射区域不能旋转,即在表4所示的语法中,将该映射区域对应的旋转标志的取值置为无效数值(例如置为0)。
[0161]
(3)若目标初始区域的形状为非目标形状,且区域处理配置指示目标初始区域不需要被执行第一转换处理,则将目标初始区域设置为映射区域。
[0162]
此方式下,第一转换处理可以指逆时针旋转。虽然目标初始区域的形状是长方形,但由于该目标初始区域不需要被执行旋转,并不会由于旋转给区域封装过程带来存储和计算开销,因此可以直接将该目标初始区域作为映射区域,此时该目标初始区域还是被允许
执行除旋转之外的转换处理,例如水平镜像。
[0163]
s903,根据区域配置和n个映射区域生成沉浸媒体的区域封装数据盒;区域封装数据盒包括区域形状信息和区域处理信息,当区域处理信息指示沉浸媒体的第i个映射区域需要被执行第一转换处理时,区域形状信息指示第i个映射区域的形状是目标形状,其中i为正整数且1≤i≤n。
[0164]
区域处理信息是指用于指示映射区域应当被执行怎样的转换处理的信息。区域封装数据盒(region wise packing box)的语法可以参见上述表1、表4和表3。步骤s903是编码设备按照实际需求来对区域封装数据盒中相应的语法字段进行赋值的过程。
[0165]
在一种实施方式中,步骤s903具体包括以下步骤s21-s23:
[0166]
s21,获取第i个映射区域的宽度和高度。
[0167]
s22,将第i个映射区域的宽度和高度添加至区域封装数据盒中的区域形状信息中;以及,
[0168]
s23,比较第i个映射区域的宽度与高度之间的大小,根据比较结果及区域配置设置区域封装数据盒中的区域处理信息。
[0169]
步骤s21-s22中,对投影图像划分出n个映射区域之后,每个映射区域的宽度和高度的取值就确定了,可以获得第i个映射区域的宽度和高度的取值,并将该取值添加至区域封装数据盒中的区域形状信息中,这即是为区域封装数据盒中的proj_reg_width[i]和proj_reg_height[i]这两个字段进行赋值的过程,将第i个映射区域的宽度值赋值给proj_reg_width[i],将第i个映射区域的高度值赋值给proj_reg_height[i]。步骤s23中,比较第i个映射区域的宽度与高度之间的大小,是为了检查第i个映射区域的形状,进而为区域封装数据盒中的区域处理信息的相应字段进行赋值。
[0170]
在一种实施方式中,区域处理信息包括第一转换处理的标志,第一转换处理可以是旋转,该第一转换处理的标识例如可以是表4所示的rotation_flag[i];那么步骤s23具体包括以下步骤s231-s233:
[0171]
s231,当第i个映射区域的宽度和高度不相等时,即第i个映射区域为长方形,则将区域封装数据盒中的第一转换处理的标志设置为无效数值,例如将rotation_flag[i]的取值置为0,表示该第i个映射区域不进行旋转。
[0172]
s232,当第i个映射区域的宽度和高度相等时,即第i个映射区域为正方形,若区域配置指示第i个映射区域需要被执行第一转换处理,则将区域封装数据盒中的第一转换处理的标志设置为有效数值,例如将rotation_flag[i]的取值置为1,表示该第i个映射区域需要进行旋转。
[0173]
s233,当第i个映射区域的宽度和高度相等时,即第i个映射区域为正方形,若区域配置指示第i个映射区域不需要被执行第一转换处理,则将区域封装数据盒中的第一转换处理类型的标志设置为无效数值;例如将rotation_flag[i]的取值置为0,表示该第i个映射区域不需要进行旋转。
[0174]
在一种实施方式中,区域处理信息包括第一转换处理的幅度;该第一转换处理的幅度例如可以是旋转角度。那么步骤s23具体包括以下步骤s234:
[0175]
s234,当第i个映射区域的宽度和高度相等时,即第i个映射区域为正方形,若区域配置指示第i个映射区域需要被执行第一转换处理,则按照区域配置的指示设置区域封装
数据盒中的第一转换处理的幅度,例如:区域配置指示该第i个映射区域需要被旋转90度,则将区域封装数据盒中的rotation_degree[i]设置为90度。
[0176]
在一种实施方式中,区域处理信息包括第二转换处理的标志;该第二转换处理可以是水平镜像,那么步骤s23具体包括以下步骤s235-s236:
[0177]
s235,若区域配置指示第i个映射区域需要被执行第二转换处理,则将区域封装数据盒中的第二转换处理的标志设置为有效数值;例如,将horizontal_flip_flag[i]取值置为1。
[0178]
s236,若区域配置指示第i个映射区域不需要被执行第二转换处理,则将区域封装数据盒中的第二转换处理的标志设置为无效数值;例如,将horizontal_flip_flag[i]取值置为0。
[0179]
s904,按照区域封装数据盒对投影图像进行区域封装处理,得到沉浸媒体的封装图像,封装图像中包括n个封装区域,一个映射区域对应一个封装区域。
[0180]
s905,对封装图像进行编码处理,得到沉浸媒体的编码文件。
[0181]
编码文件是指视频码流。参见图1实施例所述,编码设备经步骤s902得到视频码流之后,还会将该视频码流与音频码流按照沉浸媒体的文件格式进行文件封装,形成沉浸媒体的媒体文件资源,而经上述步骤s903形成的区域封装数据盒则会被封装至该媒体文件资源的媒体呈现描述信息中,以用于解码设备根据该媒体呈现描述信息对该媒体文件资源进行呈现。
[0182]
本技术实施例中,在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的映射区域才能够在区域封装过程中被执行第一转换处理(如旋转),由于目标形状的映射区域在区域封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域封装过程中的存储和计算开销,并且有利于提升沉浸媒体的编码效率。
[0183]
图10示出了本技术一个示例性实施例提供的一种沉浸媒体的数据处理方法的流程图;该方法由沉浸媒体系统中的解码设备来执行,该方法包括以下步骤s1001-s1004。
[0184]
s1001,对沉浸媒体的编码文件进行解码处理,得到沉浸媒体的封装图像,封装图像中包括n个封装区域,n为正整数。
[0185]
解码设备接收编码设备传输的沉浸媒体的媒体文件资源和媒体呈现描述信息,解码设备首先对该媒体文件资源进行文件解封装处理,得到沉浸媒体的音频码流和视频码流。此处的视频码流即是步骤s1001所述的编码文件。本实施例的编码文件是指编码设备经图9所示实施例的步骤处理后得到的视频码流,即编码设备执行了区域封装过程之后得到的视频码流,该视频码流是对封装图像进行编码得到的。本步骤中,解码设备对该视频码流进行解码处理,得到沉浸媒体的封装图像。可以理解的是,如果视频码流是对投影图像直接进行编码得到的,那么解码设备对视频码流进行解码处理,得到的是投影图像。
[0186]
s1002,获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区域处理信息;当区域处理信息指示沉浸媒体的第i个封装区域需要被执行第一逆转换处理时,区域形状信息指示第i个封装区域的形状是目标形状,其中i为正整数。
[0187]
s1003,按照区域封装数据盒对封装图像执行区域解封装处理,得到沉浸媒体的投影图像,投影图像包括n个映射区域,一个封装区域对应一个映射区域。
[0188]
步骤s1002-s1003中,区域处理信息是指用于指示封装区域应当被执行怎样的逆
转换处理的信息。区域封装数据盒(region wise packing box)的语法可以参见上述表1、表4和表3。区域解封装处理与区域封装处理是相逆的,区域解封装是指将封装图像按照区域执行逆转换处理的过程,区域解封装使封装图像被转换为投影图像。区域解封装的过程具体包括:按照区域封装数据盒中的相应指示对封装图像中的多个封装区域分别进行逆转换处理得到多个映射区域,将该多个映射区域映射至一个2d图像从而得到投影图像。逆转换处理是指与转换处理相逆的处理,例如:转换处理是指逆时针旋转90度,那么逆转换处理是指顺时针旋转90度。
[0189]
区域处理信息包括第一转换处理的标志;当第一转换处理的标志为有效数值时,区域处理信息用于指示第i个封装区域需要被执行第一逆转换处理。当第一转换处理的标志为无效数值时,区域处理信息用于指示第i个封装区域不需要被执行第一逆转换处理。当第一转换处理的标志为有效数值时,步骤s1003具体包括:对第i个封装区域执行第一逆转换处理,得到投影图像的第i个映射区域。区域处理信息还包括第一转换处理的幅度;幅度为非零值,且幅度按转换步长的倍数进行变化;当第一转换处理的标志为有效数值时,步骤s1003具体包括:按照幅度对第i个封装区域执行第一逆转换处理,得到投影图像的第i个映射区域。
[0190]
在一种实施方式中,第一转换处理是指沿逆时针方向的旋转;第一逆转换处理是指与第一转换处理相逆的处理,则第一逆转换处理是指沿顺时针方向的旋转。参见上述表4,第一转换处理的标志是指旋转标志rotation_flag[i],有效数值是1,即rotation_flag[i]取值为1表示第i个封装区域需要进行旋转。在此实施方式下,幅度是指旋转角度rotation_degree[i],转换步长为90度,即封装区域以90度为单位进行顺时针旋转,例如:顺时针旋转90度、180度、270度;那么步骤s1003具体包括:按照rotation_degree[i]所指示的旋转角度对第i个映射区域执行顺时针旋转,得到投影图像的第i个映射区域。
[0191]
另外,区域处理信息还可包括第二转换处理的标志;当第二转换处理的标志为有效数值时,区域处理信息用于指示第i个封装区域需要被执行第二逆转换处理。当第二转换处理的标志为无效数值时,区域处理信息用于指示第i个封装区域不需要被执行第二逆转换处理。当第二转换处理的标志为有效数值时,步骤s1003具体包括:对第i个封装区域执行第二逆转换处理,得到投影图像的第i个映射区域。
[0192]
在一种实施方式中,第二转换处理是指水平镜像,第二逆转换处理是指与第二转换处理相逆的处理,则第二逆转换处理同样是指水平镜像。参见上述表4,第二转换处理的标志为horizontal_flip_flag[i],有效数值为1,horizontal_flip_flag[i]取值为1表示需要进行水平镜像;那么步骤s1003具体包括:对第i个封装区域执行水平镜像,得到投影图像的第i个映射区域。
[0193]
s1004,对投影图像进行三维重建处理,得到沉浸媒体的三维图像。
[0194]
解码设备对投影图像进行三维重建处理得到三维图像之后,参见图1所示实施例的描述,解码设备还会根据媒体呈现描述信息中与渲染、视窗相关的元数据对音频解码得到的音频内容及视频解码得到的3d图像进行渲染,渲染完成即实现了对该3d图像的播放输出。
[0195]
本技术实施例中,在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的封装区域才能够在区域解封装过程中被执行第一逆转换处理(如旋转),由于目
标形状的封装区域在区域解封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域解封装过程中的存储和计算开销,并且有利于提升沉浸媒体的解码效率。
[0196]
图11示出了本技术一个示例性实施例提供的一种沉浸媒体的数据处理装置的结构示意图;该沉浸媒体的数据处理装置可以是运行于编码设备中的一个计算机程序(包括程序代码),例如该沉浸媒体的数据处理装置可以是编码设备中的一个应用软件。参见图11,该沉浸媒体的数据处理装置包括获取单元1101和处理单元1102。
[0197]
在一个示例性实施例中,该沉浸媒体的数据处理装置可以用于执行图7所示的方法中的相应步骤;则:
[0198]
获取单元1101,用于获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区域处理信息;当区域处理信息指示沉浸媒体的第i个映射区域需要被执行第一转换处理时,区域形状信息指示第i个映射区域的形状是目标形状,其中i为正整数;
[0199]
处理单元1102,用于按照区域封装数据盒对沉浸媒体执行区域封装处理。
[0200]
在一种实施方式中,区域形状信息包括第i个映射区域的宽度和高度;
[0201]
当第i个映射区域的宽度和高度相等时,区域形状信息用于指示第i个映射区域的形状是目标形状。
[0202]
在一种实施方式中,区域处理信息包括第一转换处理的标志;
[0203]
当第一转换处理的标志为有效数值时,区域处理信息用于指示第i个映射区域需要被执行第一转换处理。
[0204]
在一种实施方式中,区域处理信息包括第一转换处理的幅度;幅度为非零值,且幅度按转换步长的倍数进行变化;则处理单元1102具体用于:按照幅度对第i个映射区域执行第一转换处理。
[0205]
在一种实施方式中,第一转换处理是指沿逆时针方向的旋转;幅度是指旋转角度,转换步长为90度。
[0206]
在一种实施方式中,区域处理信息包括第二转换处理的标志;
[0207]
当第二转换处理的标志为有效数值时,区域处理信息用于指示第i个映射区域需要被执行第二转换处理。
[0208]
在一种实施方式中,第二转换处理是指水平镜像。
[0209]
在另一个示例性实施例中,该沉浸媒体的数据处理装置可以用于执行图9所示的方法中的相应步骤;则:
[0210]
获取单元1101,用于获取沉浸媒体的投影图像及投影图像的区域配置;
[0211]
处理单元1102,用于按照区域配置从投影图像中划分出n个映射区域,n为正整数;以及,
[0212]
用于根据区域配置和n个映射区域生成沉浸媒体的区域封装数据盒;区域封装数据盒包括区域形状信息和区域处理信息,当区域处理信息指示沉浸媒体的第i个映射区域需要被执行第一转换处理时,区域形状信息指示第i个映射区域的形状是目标形状,其中i为正整数且1≤i≤n;以及,
[0213]
用于按照区域封装数据盒对投影图像进行区域封装处理,得到沉浸媒体的封装图像,封装图像中包括n个封装区域,一个映射区域对应一个封装区域;以及,
[0214]
用于对封装图像进行编码处理,得到沉浸媒体的编码文件。
[0215]
在一种实施方式中,区域配置包括分区配置和区域处理配置;处理单元1102具体用于:
[0216]
按照分区配置对投影图像进行划分得到多个初始区域;
[0217]
根据区域处理配置将多个初始区域转换为n个映射区域。
[0218]
在一种实施方式中,处理单元1102根据区域处理配置将目标初始区域转换为映射区域的方式包括:
[0219]
若目标初始区域的形状为目标形状,则将目标初始区域设置为映射区域;
[0220]
若目标初始区域的形状为非目标形状,且区域处理配置指示目标初始区域需要被执行第一转换处理,则将目标初始区域拆分为至少一个目标形状的映射区域;
[0221]
若目标初始区域的形状为非目标形状,且区域处理配置指示目标初始区域不需要被执行第一转换处理,则将目标初始区域设置为映射区域;
[0222]
其中,目标初始区域是多个初始区域中的任一个。
[0223]
在一种实施方式中,处理单元1102具体用于:
[0224]
获取第i个映射区域的宽度和高度;
[0225]
将第i个映射区域的宽度和高度添加至区域封装数据盒中的区域形状信息中;以及,
[0226]
比较第i个映射区域的宽度与高度之间的大小,根据比较结果及区域配置设置区域封装数据盒中的区域处理信息。
[0227]
在一种实施方式中,区域处理信息包括第一转换处理的标志;处理单元1102具体用于:
[0228]
当第i个映射区域的宽度和高度不相等时,将区域封装数据盒中的第一转换处理的标志设置为无效数值;
[0229]
当第i个映射区域的宽度和高度相等时,若区域配置指示第i个映射区域需要被执行第一转换处理,则将区域封装数据盒中的第一转换处理的标志设置为有效数值;
[0230]
当第i个映射区域的宽度和高度相等时,若区域配置指示第i个映射区域不需要被执行第一转换处理,则将区域封装数据盒中的第一转换处理类型的标志设置为无效数值。
[0231]
在一种实施方式中,区域处理信息包括第一转换处理的幅度;
[0232]
当第i个映射区域的宽度和高度相等时,若区域配置指示第i个映射区域需要被执行第一转换处理,则按照区域配置的指示设置区域封装数据盒中的第一转换处理的幅度。
[0233]
在一种实施方式中,区域处理信息包括第二转换处理的标志;处理单元1102还用于:
[0234]
若区域配置指示第i个映射区域需要被执行第二转换处理,则将区域封装数据盒中的第二转换处理的标志设置为有效数值;
[0235]
若区域配置指示第i个映射区域不需要被执行第二转换处理,则将区域封装数据盒中的第二转换处理的标志设置为无效数值。
[0236]
根据本发明的一个实施例,图11所示的沉浸媒体的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例
的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本技术的其它实施例中,该沉浸媒体的数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。根据本技术的另一个实施例,可以通过在包括中央处理单元(cpu)、随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图7或图9所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图7或图9所示的沉浸媒体的数据处理装置,以及来实现本技术实施例的沉浸媒体的数据处理方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
[0237]
本技术实施例中,在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的映射区域才能够在区域封装过程中被执行第一转换处理(如旋转),由于目标形状的映射区域在区域封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域封装过程中的存储和计算开销,并且有利于提升沉浸媒体的编码效率。
[0238]
图12示出了本技术一个示例性实施例提供的一种沉浸媒体的数据处理装置的结构示意图;该沉浸媒体的数据处理装置可以是运行于解码设备中的一个计算机程序(包括程序代码),例如该沉浸媒体的数据处理装置可以是解码设备中的一个应用软件。参见图12,该沉浸媒体的数据处理装置包括获取单元1201和处理单元1202。
[0239]
在一个示例性实施例中,该沉浸媒体的数据处理装置可以用于执行图8所示的方法中的相应步骤;则:
[0240]
获取单元1201,用于获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区域处理信息;当区域处理信息指示沉浸媒体的第i个封装区域需要被执行第一逆转换处理时,区域形状信息指示第i个封装区域的形状是目标形状,其中i为正整数;
[0241]
处理单元1202,用于按照区域封装数据盒对沉浸媒体执行区域解封装处理。
[0242]
在一种实施方式中,区域形状信息包括第i个封装区域的宽度和高度;
[0243]
当第i个封装区域的宽度和高度相等时,区域形状信息用于指示第i个封装区域的形状为目标形状。
[0244]
在一种实施方式中,区域处理信息包括第一转换处理的标志;
[0245]
当第一转换处理的标志为有效数值时,区域处理信息用于指示第i个封装区域需要被执行第一逆转换处理。
[0246]
在一种实施方式中,区域处理信息包括第一转换处理的幅度;幅度为非零值,且幅度按转换步长的倍数进行变化;则处理单元1202具体用于:按照幅度对第i个封装区域执行第一逆转换处理。
[0247]
在一种实施方式中,第一转换处理是指沿逆时针方向的旋转;第一逆转换处理是指沿顺时针方向的旋转;幅度是指旋转角度,转换步长为90度。
[0248]
在一种实施方式中,区域处理信息包括第二转换处理的标志;
[0249]
当第二转换处理的标志为有效数值时,区域处理信息用于指示第i个封装区域需要被执行第二逆转换处理。
[0250]
在一种实施方式中,第二逆转换处理是指水平镜像。
[0251]
在另一个示例性实施例中,该沉浸媒体的数据处理装置可以用于执行图10所示的
方法中的相应步骤;则:
[0252]
处理单元1201,用于对沉浸媒体的编码文件进行解码处理,得到沉浸媒体的封装图像,封装图像中包括n个封装区域,n为正整数;
[0253]
获取单元1202,用于获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区域处理信息;当区域处理信息指示沉浸媒体的第i个封装区域需要被执行第一逆转换处理时,区域形状信息指示第i个封装区域的形状是目标形状,其中i为正整数;
[0254]
处理单元1202,还用于按照区域封装数据盒对封装图像执行区域解封装处理,得到沉浸媒体的投影图像,投影图像包括n个映射区域,一个封装区域对应一个映射区域;以及,还用于对投影图像进行三维重建处理,得到沉浸媒体的三维图像。
[0255]
在一种实施方式中,区域处理信息包括第一转换处理的标志;当第一转换处理的标志为有效数值时,处理单元1202具体用于:
[0256]
对第i个封装区域执行第一逆转换处理,得到投影图像的第i个映射区域。
[0257]
在一种实施方式中,区域处理信息包括第一转换处理的幅度;幅度为非零值,且幅度按转换步长的倍数进行变化;处理单元1202具体用于:
[0258]
按照幅度对第i个封装区域执行第一逆转换处理,得到投影图像的第i个映射区域。
[0259]
在一种实施方式中,区域处理信息包括第二转换处理的标志;当第二转换处理的标志为有效数值时,处理单元1202还用于:
[0260]
对第i个封装区域执行第二逆转换处理,得到投影图像的第i个映射区域。
[0261]
根据本发明的一个实施例,图12所示的沉浸媒体的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本技术的其它实施例中,该沉浸媒体的数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。根据本技术的另一个实施例,可以通过在包括中央处理单元(cpu)、随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图8或图10所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图8或图10所示的沉浸媒体的数据处理装置,以及来实现本技术实施例的沉浸媒体的数据处理方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
[0262]
本技术实施例中,在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的封装区域才能够在区域解封装过程中被执行第一逆转换处理(如旋转),由于目标形状的封装区域在区域解封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域解封装过程中的存储和计算开销,并且有利于提升沉浸媒体的解码效率。
[0263]
图13示出了本技术一个示例性实施例提供的一种编码设备的结构示意图;该编码设备可以是指沉浸媒体的提供者所使用的计算机设备,该计算机设备可以是终端(如pc、智能移动设备(如智能手机)等)或服务器。如图13所示,该编码设备包括捕获设备1301、处理
器1302、存储器1303和发射器1304。其中:
[0264]
捕获设备1301用于采集现实世界的声音-视觉场景获得沉浸媒体的原始数据(包括在时间和空间上保持同步的音频内容和视频内容)。该捕获设备1301可以包括但不限于:音频设备、摄像设备及传感设备。其中,音频设备可以包括音频传感器、麦克风等。摄像设备可以包括普通摄像头、立体摄像头、光场摄像头等。传感设备可以包括激光设备、雷达设备等。
[0265]
处理器1302(或称cpu(central processing unit,中央处理器))是编码设备的处理核心,该处理器1302适于实现一条或多条程序指令,具体适于加载并执行一条或多条程序指令从而实现图7或图9所示的沉浸媒体的数据处理方法的流程。
[0266]
存储器1303是编码设备中的记忆设备,用于存放程序和媒体资源。可以理解的是,此处的存储器1303既可以包括编码设备中的内置存储介质,当然也可以包括编码设备所支持的扩展存储介质。需要说明的是,存储器可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的存储器。存储器提供存储空间,该存储空间用于存储编码设备的操作系统。并且,在该存储空间中还用于存储计算机程序,该计算机程序包括程序指令,且该程序指令适于被处理器调用并执行,以用来执行沉浸媒体的数据处理方法的各步骤。另外,存储器1303还可用于存储经处理器处理后形成的沉浸媒体文件,该沉浸媒体文件包括媒体文件资源和媒体呈现描述信息。
[0267]
发射器1304用于实现编码设备与其他设备的传输交互,具体用于实现编码设备与解码设备之间关于进行沉浸媒体的传输。即编码设备通过发射器1304来向解码设备传输沉浸媒体的相关媒体资源。
[0268]
再请参见图13,处理器1302可包括转换器1321、编码器1322和封装器1323;其中:
[0269]
转换器1321用于对捕获到的视频内容进行一系列转换处理,使视频内容成为适合被执行沉浸媒体的视频编码的内容。转换处理可包括:拼接和投影,可选地,转换处理还包括区域封装。转换器1321可以将捕获到的3d视频内容转换为2d图像,并提供给编码器进行视频编码。
[0270]
编码器1322用于对捕获到的音频内容进行音频编码形成沉浸媒体的音频码流。还用于对转换器1321转换得到的2d图像进行视频编码,得到视频码流。
[0271]
封装器1323用于将音频码流和视频码流按照沉浸媒体的文件格式(如isobmff)封装在文件容器中形成沉浸媒体的媒体文件资源,该媒体文件资源可以是媒体文件或媒体片段形成沉浸媒体的媒体文件;并按照沉浸媒体的文件格式要求采用媒体呈现描述信息记录该沉浸媒体的媒体文件资源的元数据。封装器处理得到的沉浸媒体的封装文件会保存在存储器中,并按需提供给解码设备进行沉浸媒体的呈现。
[0272]
在一个示例性实施例中,处理器1302(具体是处理器包含的各器件)通过调用存储器中的一条或多条指令来执行图7所示的沉浸媒体的数据处理方法的各步骤。具体地,存储器1303存储有一条或多条第一指令,该一条或多条第一指令适于由处理器1302加载并执行如下步骤:
[0273]
获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区域处理信息;当区域处理信息指示沉浸媒体的第i个映射区域需要被执行第一转换处理时,区域形
状信息指示第i个映射区域的形状是目标形状,其中i为正整数;
[0274]
按照区域封装数据盒对沉浸媒体执行区域封装处理。
[0275]
一种实施方式中,区域形状信息包括第i个映射区域的宽度和高度;
[0276]
当第i个映射区域的宽度和高度相等时,区域形状信息用于指示第i个映射区域的形状是目标形状。
[0277]
一种实施方式中,区域处理信息包括第一转换处理的标志;
[0278]
当第一转换处理的标志为有效数值时,区域处理信息用于指示第i个映射区域需要被执行第一转换处理。
[0279]
一种实施方式中,,区域处理信息包括第一转换处理的幅度;幅度为非零值,且幅度按转换步长的倍数进行变化;则一条或多条第一指令适于由处理器1302加载并执行按照区域封装数据盒对沉浸媒体执行区域封装处理的步骤时,具体执行如下步骤:按照幅度对第i个映射区域执行第一转换处理。
[0280]
一种实施方式中,第一转换处理是指沿逆时针方向的旋转;幅度是指旋转角度,转换步长为90度。
[0281]
一种实施方式中,区域处理信息包括第二转换处理的标志;
[0282]
当第二转换处理的标志为有效数值时,区域处理信息用于指示第i个映射区域需要被执行第二转换处理。
[0283]
一种实施方式中,第二转换处理是指水平镜像。
[0284]
在另一个示例性实施例中,处理器(具体是处理器包含的各器件)通过调用存储器1303中的一条或多条指令来执行图9所示的沉浸媒体的数据处理方法的各步骤。具体地,存储器存储有一条或多条第二指令,该一条或多条第二指令适于由处理器1302加载并执行如下步骤:
[0285]
获取沉浸媒体的投影图像及投影图像的区域配置;
[0286]
按照区域配置从投影图像中划分出n个映射区域,n为正整数;
[0287]
根据区域配置和n个映射区域生成沉浸媒体的区域封装数据盒;区域封装数据盒包括区域形状信息和区域处理信息,当区域处理信息指示沉浸媒体的第i个映射区域需要被执行第一转换处理时,区域形状信息指示第i个映射区域的形状是目标形状,其中i为正整数且1≤i≤n;
[0288]
按照区域封装数据盒对投影图像进行区域封装处理,得到沉浸媒体的封装图像,封装图像中包括n个封装区域,一个映射区域对应一个封装区域;
[0289]
对封装图像进行编码处理,得到沉浸媒体的编码文件。
[0290]
一种实施方式中,区域配置包括分区配置和区域处理配置;该一条或多条第二指令适于由处理器1302加载并执行按照区域配置从投影图像中划分出n个映射区域的步骤时,具体执行如下步骤:
[0291]
按照分区配置对投影图像进行划分得到多个初始区域;
[0292]
根据区域处理配置将多个初始区域转换为n个映射区域。
[0293]
一种实施方式中,根据区域处理配置将目标初始区域转换为映射区域的方式包括:
[0294]
若目标初始区域的形状为目标形状,则将目标初始区域设置为映射区域;
[0295]
若目标初始区域的形状为非目标形状,且区域处理配置指示目标初始区域需要被执行第一转换处理,则该一条或多条第二指令适于由处理器1302加载并执行将目标初始区域拆分为至少一个目标形状的映射区域;
[0296]
若目标初始区域的形状为非目标形状,且区域处理配置指示目标初始区域不需要被执行第一转换处理,则该一条或多条第二指令适于由处理器1302加载并执行将目标初始区域设置为映射区域;
[0297]
其中,目标初始区域是多个初始区域中的任一个。
[0298]
一种实施方式中,该一条或多条第二指令适于由处理器1302加载并执行根据区域配置和n个映射区域生成沉浸媒体的区域封装数据盒的步骤时,具体执行如下步骤:
[0299]
获取第i个映射区域的宽度和高度;
[0300]
将第i个映射区域的宽度和高度添加至区域封装数据盒中的区域形状信息中;以及,
[0301]
比较第i个映射区域的宽度与高度之间的大小,根据比较结果及区域配置设置区域封装数据盒中的区域处理信息。
[0302]
一种实施方式中,区域处理信息包括第一转换处理的标志;则该一条或多条第二指令适于由处理器1302加载并执行根据比较结果及区域配置设置区域封装数据盒中的区域处理信息的步骤时,具体执行如下步骤:
[0303]
当第i个映射区域的宽度和高度不相等时,将区域封装数据盒中的第一转换处理的标志设置为无效数值;
[0304]
当第i个映射区域的宽度和高度相等时,若区域配置指示第i个映射区域需要被执行第一转换处理,则将区域封装数据盒中的第一转换处理的标志设置为有效数值;
[0305]
当第i个映射区域的宽度和高度相等时,若区域配置指示第i个映射区域不需要被执行第一转换处理,则将区域封装数据盒中的第一转换处理类型的标志设置为无效数值。
[0306]
一种实施方式中,区域处理信息包括第一转换处理的幅度;
[0307]
当第i个映射区域的宽度和高度相等时,若区域配置指示第i个映射区域需要被执行第一转换处理,则该一条或多条第二指令适于由处理器1302加载并执行按照区域配置的指示设置区域封装数据盒中的第一转换处理的幅度。
[0308]
一种实施方式中,区域处理信息包括第二转换处理的标志;
[0309]
若区域配置指示第i个映射区域需要被执行第二转换处理,则该一条或多条第二指令适于由处理器1302加载并执行将区域封装数据盒中的第二转换处理的标志设置为有效数值;
[0310]
若区域配置指示第i个映射区域不需要被执行第二转换处理,则该一条或多条第二指令适于由处理器1302加载并执行将区域封装数据盒中的第二转换处理的标志设置为无效数值。
[0311]
本技术实施例中,在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的映射区域才能够在区域封装过程中被执行第一转换处理(如旋转),由于目标形状的映射区域在区域封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域封装过程中的存储和计算开销,并且有利于提升沉浸媒体的编码效率。
[0312]
图14示出了本技术一个示例性实施例提供的一种解码设备的结构示意图;该解码
设备可以是指沉浸媒体的使用者所使用的计算机设备,该计算机设备可以是终端(如pc、智能移动设备(如智能手机)、vr设备(如vr头盔、vr眼镜等))。如图14所示,该解码设备包括接收器1401、处理器1402、存储器1403、显示/播放装置1404。其中:
[0313]
接收器1401用于实现解码与其他设备的传输交互,具体用于实现编码设备与解码设备之间关于进行沉浸媒体的传输。即解码设备通过接收器1401来接收编码设备传输沉浸媒体的相关媒体资源。
[0314]
处理器1402(或称cpu(central processing unit,中央处理器))是编码设备的处理核心,该处理器1402适于实现一条或多条程序指令,具体适于加载并执行一条或多条程序指令从而实现图8或图10所示的沉浸媒体的数据处理方法的流程。
[0315]
存储器1403是解码设备中的记忆设备,用于存放程序和媒体资源。可以理解的是,此处的存储器1403既可以包括解码设备中的内置存储介质,当然也可以包括解码设备所支持的扩展存储介质。需要说明的是,存储器1403可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的存储器。存储器1403提供存储空间,该存储空间用于存储解码设备的操作系统。并且,在该存储空间中还用于存储计算机程序,该计算机程序包括程序指令,且该程序指令适于被处理器调用并执行,以用来执行沉浸媒体的数据处理方法的各步骤。另外,存储器1403还可用于存储经处理器处理后形成的沉浸媒体的三维图像、三维图像对应的音频内容及该三维图像和音频内容渲染所需的信息等。
[0316]
显示/播放装置1404用于输出渲染得到的声音和三维图像。
[0317]
再请参见图14,处理器1402可包括解析器1421、解码器1422、转换器1423和渲染器1424;其中:
[0318]
解析器1421用于对来自编码设备的渲染媒体的封装文件进行文件解封装,具体是按照沉浸媒体的文件格式要求对媒体文件资源进行解封装,得到音频码流和视频码流;并将该音频码流和视频码流提供给解码器1422。
[0319]
解码器1422对音频码流进行音频解码,得到音频内容并提供给渲染器进行音频渲染。另外,解码器1422对视频码流进行解码得到2d图像。根据媒体呈现描述信息提供的元数据,如果该元数据指示沉浸媒体执行过区域封装过程,该2d图像是指封装图像;如果该元数据指示沉浸媒体未执行过区域封装过程,则该平面图像是指投影图像。
[0320]
转换器1423用于将2d图像转换为3d图像。如果沉浸媒体执行过区域封装过程,转换器1423还会先将封装图像进行区域解封装得到投影图像。再对投影图像进行重建处理得到3d图像。如果渲染媒体未执行过区域封装过程,转换器1423会直接将投影图像重建得到3d图像。
[0321]
渲染器1424用于对沉浸媒体的音频内容和3d图像进行渲染。具体根据媒体呈现描述信息中与渲染、视窗相关的元数据对音频内容及3d图像进行渲染,渲染完成交由显示/播放装置进行输出。
[0322]
在一个示例性实施例中,处理器1402(具体是处理器包含的各器件)通过调用存储器中的一条或多条指令来执行图8所示的沉浸媒体的数据处理方法的各步骤。具体地,存储器存储有一条或多条第一指令,该一条或多条第一指令适于由处理器1402加载并执行如下步骤:
[0323]
获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区域处理信息;当区域处理信息指示沉浸媒体的第i个封装区域需要被执行第一逆转换处理时,区域形状信息指示第i个封装区域的形状是目标形状,其中i为正整数;
[0324]
按照区域封装数据盒对沉浸媒体执行区域解封装处理。
[0325]
一种实施方式中,区域形状信息包括第i个封装区域的宽度和高度;
[0326]
当第i个封装区域的宽度和高度相等时,区域形状信息用于指示第i个封装区域的形状为目标形状。
[0327]
一种实施方式中,区域处理信息包括第一转换处理的标志;
[0328]
当第一转换处理的标志为有效数值时,区域处理信息用于指示第i个封装区域需要被执行第一逆转换处理。
[0329]
一种实施方式中,区域处理信息包括第一转换处理的幅度;幅度为非零值,且幅度按转换步长的倍数进行变化;该一条或多条第一指令适于由处理器1402加载并执行按照区域封装数据盒对沉浸媒体执行区域解封装处理的步骤时,具体执行如下步骤:按照幅度对第i个封装区域执行第一逆转换处理。
[0330]
一种实施方式中,第一转换处理是指沿逆时针方向的旋转;第一逆转换处理是指沿顺时针方向的旋转;幅度是指旋转角度,转换步长为90度。
[0331]
一种实施方式中,区域处理信息包括第二转换处理的标志;
[0332]
当第二转换处理的标志为有效数值时,区域处理信息用于指示第i个封装区域需要被执行第二逆转换处理。
[0333]
一种实施方式中,第二逆转换处理是指水平镜像。
[0334]
在另一个示例性实施例中,处理器1402(具体是处理器包含的各器件)通过调用存储器中的一条或多条指令来执行图10所示的沉浸媒体的数据处理方法的各步骤。具体地,存储器1403存储有一条或多条第二指令,该一条或多条第二指令适于由处理器1402加载并执行如下步骤:
[0335]
对沉浸媒体的编码文件进行解码处理,得到沉浸媒体的封装图像,封装图像中包括n个封装区域,n为正整数;
[0336]
获取沉浸媒体的区域封装数据盒,区域封装数据盒包括区域形状信息和区域处理信息;当区域处理信息指示沉浸媒体的第i个封装区域需要被执行第一逆转换处理时,区域形状信息指示第i个封装区域的形状是目标形状,其中i为正整数;
[0337]
按照区域封装数据盒对封装图像执行区域解封装处理,得到沉浸媒体的投影图像,投影图像包括n个映射区域,一个封装区域对应一个映射区域;
[0338]
对投影图像进行三维重建处理,得到沉浸媒体的三维图像。
[0339]
一种实施方式中,区域处理信息包括第一转换处理的标志;当第一转换处理的标志为有效数值时,该一条或多条第二指令适于由处理器1402加载并执行按照区域封装数据盒对封装图像执行区域解封装处理,得到沉浸媒体的投影图像的步骤时,具体执行如下步骤:
[0340]
对第i个封装区域执行第一逆转换处理,得到投影图像的第i个映射区域。
[0341]
一种实施方式中,区域处理信息包括第一转换处理的幅度;幅度为非零值,且幅度按转换步长的倍数进行变化;该一条或多条第二指令适于由处理器1402加载并执行按照区
域封装数据盒对封装图像执行区域解封装处理,得到沉浸媒体的投影图像的步骤时,具体执行如下步骤:
[0342]
按照幅度对第i个封装区域执行第一逆转换处理,得到投影图像的第i个映射区域。
[0343]
一种实施方式中,区域处理信息包括第二转换处理的标志;当第二转换处理的标志为有效数值时,该一条或多条第二指令适于由处理器1402加载并执行按照区域封装数据盒对封装图像执行区域解封装处理,得到沉浸媒体的投影图像的步骤时,具体执行如下步骤:
[0344]
对第i个封装区域执行第二逆转换处理,得到投影图像的第i个映射区域。
[0345]
本技术实施例中,在沉浸媒体的区域封装数据盒中规定只有形状为目标形状(如正方形)的封装区域才能够在区域解封装过程中被执行第一逆转换处理(如旋转),由于目标形状的封装区域在区域解封装过程中所需的计算矩阵的大小较小,这样的规定能够极大地降低沉浸媒体在区域解封装过程中的存储和计算开销,并且有利于提升沉浸媒体的解码效率。
[0346]
以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1