用于发送和接收包括相机镜头信息的360度视频的方法及其装置与流程

文档序号:21945083发布日期:2020-08-21 15:30阅读:311来源:国知局
用于发送和接收包括相机镜头信息的360度视频的方法及其装置与流程

本公开涉及360度视频,并且更具体地,涉及用于用于发送和接收包括相机镜头信息的3dof+内容的360度视频的方法及其装置。



背景技术:

虚拟现实(vr)系统允许用户体验电子投影环境。用于提供vr内容的系统可以被进一步改善,以提供较高质量的图像和立体声。vr系统可以允许用户交互性消费vr内容。

3dof+(六个自由度+)内容通过提供根据用户的位置间移动而新创建的3dof或360度视频,允许用户通过多个视点的360度视频而具有更多样的感官体验。



技术实现要素:

技术问题

本公开的目的是提供用于增加提供vr系统的vr视频数据发送的效率的方法和装置。

本公开的另一目的是提供用于发送关于vr视频数据的vr视频数据和元数据的方法和装置。

本公开的另一方面是提供用于发送vr视频数据和关于vr视频数据的相机镜头信息的元数据的方法和装置。

本公开的另一目的是提供用于增加提供3dof+系统的360度视频数据发送的效率的方法和装置。

本公开的另一目的是提供用于发送与用于提供3dof+系统的视点/头部位置/眼睛视线的位置和/或角度有关的元数据的方法和装置。

本公开的另一目的是提供基于与变形校正相关的信息通过反映镜头的特性来校正变形的方法和装置。

本公开的另一目的是提供用于基于指示径向变形类型的信息通过反映镜头的特性来校正变形的方法和装置。

技术方案

在本公开的一个方面,本文中提供了一种通过360度视频发送装置处理360度图像数据的方法。该方法可以包括以下步骤:获取包括由具有至少一个镜头的相机获取的360度图像的目标圆形区域;将所述目标圆形区域映射到图片;对映射到所述目标圆形区域的所述图片进行编码,生成针对所述360度图像的元数据;以及处理编码后图片和所述元数据进行存储或发送,其中,所述元数据可以包含相机镜头信息。

在本公开的另一方面,本文中提供了一种用于处理360度视频数据的360度视频发送设备。该360度视频发送设备可以包括:数据输入单元,该数据输入单元被配置为获取包括由具有至少一个镜头的相机获取的360度图像的目标圆形区域;投影处理器,该投影处理器被配置为将所述目标圆形区域映射到图片;数据编码器,该数据编码器对映射到所述目标圆形区域的所述图片进行编码;元数据处理器,该元数据处理器被配置为生成所述360度图像的元数据;以及发送处理器,该发送处理器处理编码后图片和所述元数据以便进行存储或发送,其中,所述元数据可以包含相机镜头信息。

在本公开的另一方面,本文中提供了一种通过360度视频接收设备处理360度图像数据的方法。该设备可以包括:接收360度图像数据;从所述360度图像数据获取关于编码后图片的信息和元数据,所述元数据包含相机镜头信息;基于关于所述编码后图片的信息来解码包括目标圆形区域的图片;以及基于所述相机镜头信息来处理和渲染所述目标圆形区域。

在本公开的另一方面,本文中提供了一种用于处理360度视频数据的360度视频接收设备。该设备可以包括:接收器,该接收器接收360度图像数据;接收处理器,该接收处理器被配置为从所述360度图像数据获取关于编码后图片的信息和元数据,所述元数据包含相机镜头信息;数据解码器,该数据解码器基于关于所述编码后图片的信息来解码包括目标圆形区域的图片;以及渲染器,该渲染器基于所述相机镜头信息来处理和渲染所述目标圆形区域。

有益效果

根据本公开,能在支持使用地面广播网络和互联网网络提供的下一代混合广播的环境中高效地发送3dof+内容。

根据本公开,能在用户消费3dof+内容时向用户提供交互式体验。

根据本公开,当用户消费3dof+内容时,能执行信令,使得准确反映3dof+内容产生方的意图。

根据本公开,在传递3dof+内容时,能高效地增加传输容量并且能传递必要的信息。

根据本公开,可基于相机镜头信息从3dof+内容的360度图像数据推导用于目标视点、目标头部位置和/或目标眼睛视线的圆形区域并进行渲染。由此,能在用户消费3dof+内容时向用户提供交互式体验。

根据本公开,可以通过基于相机镜头信息中所包括的投影功能相关信息和/或变形校正函数相关信息反映镜头的特性来推导多项式函数,并且可以基于多项式函数来校正360度图像被投影到其上的图片中出现的变形。由此,360度图像数据能被更精确地映射到3d空间。

附图说明

图1是示出了根据本公开的用于提供360度视频的整体架构的图。

图2和图3例示了根据本公开的实施方式的媒体文件的结构。

图4例示了基于dash的自适应流传输模型的整体操作的示例。

图5示例性示出了3dof+vr系统。

图6是示出了根据本公开的用于提供3dof+视频的整体架构的图。

图7示例性示出了根据本公开的基于相机镜头信息和/或补充相机镜头信息将360度视频拼接成全景图像的示例。

图8a和图8b示例性例示了通过360度视频发送设备/360度视频接收设备执行的用于提供360内容/3dof+内容的整体架构。

图9例示了由360度视频接收设备基于相机镜头信息处理360度视频的示例。

图10是示意性例示了适用本公开的360度视频发送设备的配置的图。

图11是示意性例示了适用本公开的360度视频接收设备的配置的图。

图12示例性示出了径向投影功能。

图13示例性示出了各种类型的径向变形。

图14例示了通过相机镜头捕获360度视频的示例。

图15示意性例示了根据本公开的由360度视频发送设备处理360度视频数据的方法。

图16示意性例示了根据本公开的被配置为执行360度图像数据处理方法的360度视频发送设备。

图17示意性例示了根据本公开的由360度视频接收设备处理360度视频数据的方法。

图18示意性例示了根据本公开的被配置为执行360度图像数据处理方法的360度视频接收设备。

具体实施方式

本公开可以进行各种改变并且可以有各种实施方式,并且将参照附图详细描述具体实施方式。然而,这并不旨在将本公开限制于具体实施方式。本说明书中使用的术语仅仅被用于描述具体实施方式,而不旨在限制本公开的技术精神。除非上下文另有明确指示,否则单数措辞也包括复数措辞。在本说明书中,术语“包括”或“具有”旨在指示存在说明书中公开的特性、图、步骤、操作、构成和部件或其组合,并且应该被理解为不排除存在或添加一个或更多个其它特性、图、步骤、操作、构成、部件或其组合。

尽管为了方便描述不同功能而在附图中独立地示出了本公开中描述的各个元件,但这并不意味着这些元件以彼此分离的硬件或软件元件来实现。例如,这些元件中的两个或更多个元件可以被组合,以形成一个元件,或者一个元件可以被划分成多个元件。在不脱离本公开的实质的情况下,相应元件被集成和/或分离的实施方式也在本公开的范围内。

下文中,将参照附图来详细描述本公开的示例性实施方式。在附图中,相同的附图标记将用于相同的部件,并且可以省略对相同部件的冗余描述。

图1是示出了根据本公开的用于提供360度视频的整体架构的图。

本公开提出了提供360内容以便向用户提供虚拟现实(vr)的方法。vr可以是指用于复制真实或虚拟环境的技术或环境。vr可以人为地为用户提供感官体验,因此用户可能通过其体验到电子投影环境。

360内容可以是指用于实现和提供vr的所有内容,并且可以包括360度视频和/或360音频。360度视频可以是指需要提供vr并同时在所有方向上(360度)捕获或再现的视频或图像内容。下文中,360度视频可以是指360度视频。360度视频可以是指根据3d模型在各种类型的3d空间中呈现的视频或图像。例如,可以在球面上呈现360度视频。360音频可以是用于提供vr的音频内容,并且可以是指可以使音频生成源被识别为位于3d空间的特定空间上的空间音频内容。可以针对用户生成、处理和发送360内容,并且用户可以使用该360内容消费vr体验。

本公开提出了一种有效提供360度视频的方法。为了提供360度视频,可以使用一台或更多台相机捕获360度视频。可以通过一系列处理来发送所捕获的360度视频,并且在接收侧接收的数据可以被处理成原始的360度视频并被渲染。然后,360度视频可以被提供给用户。

具体地,用于提供360度视频的整个过程可以包括捕获过程、准备过程、发送过程、处理过程、渲染过程和/或反馈过程。

捕获过程可以是指通过一台或更多台相机捕获针对多个视点的图像或视频的过程。可以通过捕获过程生成如图1的部分110中所示的图像/视频数据。图1的部分110中的每个平面可以是指针对每个视点的图像/视频。所捕获的图像/视频可以被称为原始数据。在捕获过程中,可以生成与捕获相关的元数据。

为了进行捕获,可以使用用于vr的专用相机。根据实施方式,当要提供使用计算机生成的虚拟空间的360度视频时,可以不执行使用实际相机进行的捕获操作。在这种情况下,捕获过程可以被简单生成相关数据的过程替换。

准备过程可以是处理所捕获的图像/视频以及在捕获过程中生成的元数据的过程。在准备过程中,所捕获的图像/视频可以经历拼接、投影、按区域打包和/或编码。

首先,可以使图像/视频经历拼接过程。拼接过程可以是连接所捕获的图像/视频以形成单个全景图像/视频或球形图像/视频的过程。

然后,可以使拼接后的图像/视频经历投影过程。在投影过程中,可以将拼接后的图像/视频投影到2d图像上。可以根据上下文将2d图像称为2d图像帧。投影到2d图像上可以被称为映射到2d图像。所投影的图像/视频数据可以采取图1的部分120中所示的2d图像的形式。

投影到2d图像上的视频数据可以经历按区域打包过程,以便增加视频编码效率。按区域打包可以是指将投影到2d图像上的视频数据划分成各区域并处理这些区域的过程。这里,区域可以是指通过划分在其上投影了360度视频数据的2d图像而获得的区域。根据实施方式,可以通过均等或随机地划分2d图像来区分这些区域。根据实施方式,可以根据投影方案来划分区域。按区域打包过程可以是可选过程,因此在准备过程中可以被省略。

根据实施方式,处理过程可以包括在2d图像上旋转区域或重新布置区域以便增强视频编码效率的过程。例如,可以旋转这些区域,使得区域的特定面彼此靠近地设置。因此,可以提高编码效率。

根据实施方式,处理过程可以包括增大或减小特定区域的分辨率以便区分360度视频的区域的分辨率的过程。例如,与360度视频的相对重要区域对应的区域的分辨率可以增大超过其它区域的分辨率。可以通过采用视频编解码器的编码过程,使投影到2d图像上的视频数据或按区域打包的视频数据经历编码处理。

根据实施方式,准备过程还可以包括编辑过程。在编辑过程中,可以在投影之前或之后编辑图像/视频数据。在准备过程中,可以生成关于拼接/投影/编码/编辑的元数据。另外,可以生成与投影到2d图像上的视频数据的初始视点或感兴趣区域(roi)有关的元数据。

发送过程可以是处理和发送通过准备过程获得的元数据和图像/视频数据的过程。可以根据任意传输协议执行处理以进行发送。可以通过广播网络和/或宽带来传送已被处理以进行发送的数据。可以以按需方式为基础将该数据传送到接收方。接收方可以通过各种路径接收数据。

处理过程可以是指对接收到的数据进行解码并且将所投影的图像/视频数据重新投影到3d模型上的过程。在该过程中,投影到2d图像上的图像/视频数据可以被重新投影到3d空间上。可以根据上下文,将该过程称为映射投影。这里,数据被映射到的3d空间的形状可以取决于3d模型。例如,3d模型可以包括球体、立方体、圆柱体和角锥体。

根据实施方式,处理过程还可以包括编辑过程和放大过程。在编辑过程中,可以在重新投影之前或之后编辑图像/视频数据。当图像/视频数据减小时,可以通过在放大过程中放大样本来增加图像/视频数据的大小。在有必要时,可以通过缩小来减小尺寸。

渲染过程可以是指渲染和显示重新投影到3d空间上的图像/视频数据的过程。重新投影和渲染可以被一起表示为3d模型上的渲染。在3d模型上重新投影(或渲染)的图像/视频可以采用如图1的部分130中所示的形式。图1的部分130对应于图像/视频数据被重新投影到球形的3d模型上的情况。用户可以通过vr显示器等观看渲染后的图形/视频的区域的部分。这里,用户观看的区域可以采取如图1的部分140中所示的形式。

反馈过程可以是指将可以在显示过程中获取的各种类型的反馈信息传送到发送方的过程。通过反馈过程,可以在360度视频消费时提供交互性。根据实施方式,可以在反馈过程中将头部方向信息、指示用户当前观看区域的视口信息等传送到发送方。根据实施方式,用户可以与在vr环境中实现的内容进行交互。在这种情况下,可以在反馈过程中将交互相关信息传送到发送方或服务供应商。在实施方式中,可以跳过反馈过程。

头部方向信息可以是指关于用户头部的位置、角度和运动的信息。基于该信息,可以计算与用户当前在360度视频中观看的区域有关的信息(即,视口信息)。

视口信息可以是与用户当前在360度视频中观看的区域有关的信息。可以使用该信息来执行注视分析,以检查用户如何消费360度视频以及用户注视360度视频的区域有多长时间。可以在接收方执行注视分析,并且可以将分析结果在反馈信道上传送到发送方。诸如vr显示器这样的装置可以基于用户头部的位置/方向、该装置所支持的垂直或水平视场(fov)信息等来提取视口区域。

根据实施方式,以上提到的反馈信息除了被传送到发送方之外,还可以在接收方被消费。即,可以使用以上提到的反馈信息执行接收方的解码、重新投影和渲染过程。例如,可以优先地使用头部方向信息和/或视口信息仅对与用户当前观看的区域对应的360度视频进行解码和渲染。

这里,视口或视口区域可以是指360度视频中的用户当前观看的区域。视点可以是在360度视频中用户观看的点,并且可以表示视口区域的中心点。即,视口是视点处于其中心的区域,并且该区域的大小和形状可以由将在随后描述的fov确定。

在上述用于提供360度视频的架构中,经历一系列捕获/投影/编码/发送/解码/重新投影/渲染过程的图像/视频数据可以被称为360度视频数据。术语“360度视频数据”可以被用作包括与此图像/视频数据相关的元数据和信令信息的概念。

为了存储和发送诸如上述音频或视频数据这样的媒体数据,可以定义标准化的媒体文件格式。根据实施方式,媒体文件可以具有以基于iso的媒体文件格式(isobmff)为基础的文件格式。

图2和图3例示了根据本公开的实施方式的媒体文件的结构。

根据本公开的媒体文件可以包括至少一个盒。这里,盒可以是包含媒体数据或者与媒体数据相关的元数据的数据块或对象。盒可以布置成分层结构。因此,可以根据盒对数据进行分类,并且媒体文件可以采取适于大型媒体数据的存储和/或发送的形式。另外,媒体文件可以具有如在用户移动到媒体内容中特定点的情况下一样有助于访问媒体信息的结构。

根据本公开的媒体文件可以包括ftyp盒、moov盒和/或mdat盒。

ftyp盒(文件类型盒)可以提供与文件类型或媒体文件的兼容性相关的信息。ftyp盒可以包括与媒体文件的媒体数据有关的配置版本信息。解码器可以参考ftyp盒识别媒体文件。

moov盒(电影盒)可以包括与媒体文件的媒体数据有关的元数据。moov盒可以用作所有元数据的容器。moov盒可以是元数据相关盒当中的最高层的盒。根据实施方式,媒体文件中仅可以存在一个moov盒。

mdat盒(媒体数据盒)可以是实际上包含媒体文件的媒体数据的盒。媒体数据可以包含音频样本和/或视频样本,并且mdat盒可以用作包含这些媒体样本的容器。

根据实施方式,moov盒可以包括作为子盒的mvhd盒、trak盒和/或mvex盒。

mvhd盒(电影头盒)可以包含与媒体文件中所包括的媒体数据有关的媒体呈现相关信息。即,mvhd盒可以包含诸如媒体生成时间、改变时间、时间标准和媒体呈现的时段这样的信息。

trak盒(轨道盒)可以提供与媒体数据的轨道相关的信息。trak盒可以包含诸如关于音频轨道或视频轨道的流相关信息、呈现相关信息和访问相关信息这样的信息。可以根据轨道的数目来提供多个trak盒。

根据实施方式,trak盒可以包括tkhd盒(轨道头盒)作为子盒(sub-box)。tkhd盒可以包含关于trak盒所指示的轨道的信息。tkhd盒可以包含诸如轨道的生成时间、改变时间和轨道标识符这样的信息。

mvex盒(电影扩展盒)可以指示媒体文件可以包括随后将描述的moof盒。可能需要扫描moov盒,以识别特定轨道的所有媒体样本。

根据实施方式,根据本公开的媒体文件可以被划分成多个片段(200)。因此,媒体文件可以被分段并被存储或发送。媒体文件的媒体数据(mdat盒)可以被划分成多个片段,并且片段中的每一个都可以包括moof盒和划分的mdat盒。根据实施方式,可能需要ftyp盒和/或moov盒的信息来使用片段。

moof盒(电影片段盒)可以提供与对应片段的媒体数据有关的元数据。moof盒可以是与对应片段的元数据相关的盒当中的最高层的盒。

mdat盒(媒体数据盒)可以包含如上所述的实际媒体数据。mdat盒可以包含与每个片段对应的媒体数据的媒体样本。

根据实施方式,上述moof盒可以包括mfhd盒和/或traf盒作为子盒。

mfhd盒(电影片段头盒)可以包含与所划分的多个片段的关系相关的信息。mfhd盒可以包含用于指示所划分数据当中的对应片段的元数据的序列位置的序列号。另外,可以基于mfhd盒来检查所划分数据当中是否存在丢失数据。

traf盒(轨道片段盒)可以包含关于对应轨道片段的信息。traf盒可以提供片段中所包括的所划分轨道片段的元数据。traf盒可以提供用于解码/再现轨道片段中的媒体样本的元数据。根据轨道片段的数目,可以提供多个traf盒。

根据实施方式,上述traf盒可以包括tfhd盒和/或trun盒作为子盒。

tfhd盒(轨道片段头盒)可以包含关于对应轨道片段的头信息。tfhd盒可以针对traf盒所指示的轨道片段的媒体样本提供诸如默认样本大小、时段、偏移和标识符这样的信息。

trun盒(轨道片段run盒)可以包含与对应轨道片段相关的信息。trun盒可以包含诸如每个媒体样本的时段、大小和再现时间这样的信息。

媒体文件或媒体文件的片段可以被处理成多个片段并被发送。这些片段可以包括初始化片段和/或媒体片段。

所例示实施方式210的文件可以是除了媒体数据之外、包含与媒体解码器的初始化相关的信息的文件。该文件可以对应于上述的初始化片段。初始化片段可以包括上述的ftyp盒和/或moov盒。

所例示实施方式220的文件可以是包括上述片段的文件。例如,该文件可以对应于上述的媒体片段。媒体片段可以包括上述的moof盒和/或mdat盒。媒体片段还可以包括styp盒和/或sidx盒。

styp盒(片段类型盒)可提供用于识别所划分的片段的媒体数据的信息。styp盒可以针对划分的片段执行与上述ftyp盒相同的功能。根据实施方式,styp盒可以具有与ftyp盒相同的格式。

sidx盒(片段索引盒)可以提供指示划分的片段的索引的信息。因此,可以指示划分的片段的序列位置。

还可以根据实施方式230提供ssix盒。当片段被进一步划分成多个子片段时,ssix盒(子片段索引盒)可以提供指示子片段索引的信息。

媒体文件中的盒还可以包含基于如实施方式250中所示的盒或fullbox的扩展信息。在该实施方式中,size字段和largesize字段可以指示对应盒的长度(单位:字节)。version字段可以指示对应盒格式的形式。type字段可以指示盒的类型或标识符。flags字段可以指示与盒相关的标志。

根据本公开的360度视频的字段(属性)可以被携带在基于dash的自适应流传输模型中。

图4例示了基于dash的自适应流传输模型的整体操作的示例。根据图中示出的实施方式400的基于dash的自适应流传输模型描述在http服务器和dash客户端之间的操作。这里,dash(通过http进行的动态自适应流传输)是用于支持基于http的自适应流传输的协议,并且可以根据网络状况动态地支持流传输。因此,能无缝地再现av内容。

首先,dash客户端可以获取mpd。可以从诸如http服务器这样的服务供应商传送mpd。dash客户端可以基于用于访问片段的信息向服务器请求mpd中描述的片段。可以基于网络状况进行请求。

dash客户端可以获取分段,通过媒体引擎处理片段并且将处理后的片段显示在屏幕上。dash客户端可以通过实时地反映回放时间和/或网络状况来请求和获取必要的片段(自适应流传输)。因此,能无缝地回放内容。

mpd(媒体呈现描述)是包含允许dash客户端动态获取片段的详细信息的文件,并且可以以xml格式表现。

dash客户端控制器可以考虑网络状况来生成请求mpd和/或片段的命令。另外,dash客户端控制器可以控制诸如媒体引擎这样的内部块,以使用所获取的信息。

mpd解析器可以实时地解析所获取的mpd。因此,dash客户端控制器可以生成获取所需片段的命令。

片段解析器可实时地解析所获取的分段。诸如媒体引擎这样的内部块可以根据片段中所包含的信息来执行特定操作。

http客户端可以向http服务器请求必要的mpd和/或片段。另外,http客户端可以将从服务器获取的mpd和/或片段传送到mpd解析器或片段解析器。

媒体引擎可以基于片段中所包括的媒体数据将内容显示在屏幕上。在该操作中,可以使用mpd的信息。

dash数据模型可以具有分层结构410。可以通过mpd描述媒体呈现。mpd可以描述用于媒体呈现的多个时段的时间序列。时段可以表示媒体内容的一个片段。

在一个时段中,数据可以被包括在自适应集中。自适应集可以是可以交换的多个媒体内容组件的集合。自适应可以包括表现的集合。表现可以对应于媒体内容组件。在一个表现中,内容可以在时间上被划分成多个片段,该多个片段意在适当的可访问性和传送。为了访问每个片段,可以提供每个片段的url。

mpd可以提供与媒体呈现相关的信息。时段元素、自适应集元素和表现元素可以分别描述对应的时段、对应的自适应集和对应的表现。表现可以被分成子表现。子表现元素可以描述对应的子表现。

这里,可以定义公共属性/元素。公共属性/元素可以应用于(被包括在)子表现中。公共属性/元素可以包括essentialproperty和/或supplementalproperty。

essentialproperty可以是包括在处理对应媒体呈现相关数据时被视为基本元素的元素的信息。supplementalproperty可以是包括可以在处理对应媒体呈现相关数据时使用的元素的信息。在实施方式中,稍后将描述的描述符可以在通过mpd传送的essentialproperty和/或supplementalproperty中定义。

本公开涉及提供一种除了提供上述360度内容的方法之外还提供3个自由度+(3dof+)内容以允许用户体验沉浸式媒体的方法。

尽管上述传统的基于3dof的vr系统(即,上述传统的基于360度内容的系统)为用户提供用户的固定位置处的不同观看方向上的视觉/听觉体验,而基于3dof+的vr系统旨在为用户提供不同的视点和不同观看位置处的扩展视觉/听觉体验。即,基于3dof+的vr系统可以表示被配置为提供被渲染至多个视点处的多个观看位置的360度内容。

如下图中所示,可以说明在3dof+vr系统中补充定义的视点和观看位置的概念。

图5示例性示出了3dof+vr系统。

具体地,图5(a)示例性例示了3dof+vr系统向其提供360度内容的多个视点。例如,如图5(a)中所示,特定空间(诸如,剧院)中的多个特定位置可以被视为被提供360度内容的视点。在这种情况下,可以假定相同的特定空间中提供给相应视点的视频/音频具有相同的时间流。

可以在特定视点呈现多个观看位置的360度内容。因此,可以根据特定视点处的用户观看位置改变(头部运动)来提供不同的视觉/听觉体验。这里,360度内容可以被称为3dof+内容。3dof+内容可以包括3dof+视频和3dof+音频。

例如,图5(a)中示出的3dof+内容中的camera_id_type[i]字段的值可以被指定为1。这里,camera_id_type[i]字段可以指示第i相机的目的、实施方式或类型。随后,将详细地描述camera_id_type[i]字段。

当camera_id_type[i]字段的值为1时,可以定义在特定视点处支持3dof+应用的另一头部位置。由此,可以支持头部运动视差。

另外,camera_id_type[i]字段的值可以被指定为2。当camera_id_type[i]字段的值为2时,可以提供头部位置和头部方向。另外,在3dof+应用中支持双目视差时,可以通过将3设置为camera_id_type[i]字段的值来指定左眼或右眼观看子图片。即,当camera_id_type[i]字段的值为3时,camera_id_type[i]字段可以指示针对其支持双眼视差的左眼或右眼观看子图片。

基于诸如3dof+内容的camera_id[i]字段和对应的camera_id_type[i]字段这样的相机镜头信息,可以在诸如拼接或渲染处理器这样的后期处理器分析图片之前处理图片。拼接或渲染处理器可以基于上述的相机镜头信息根据特定目的来选择子图片。例如,可以基于上述相机镜头信息来显示用于单像管显示器(monoscopicdisplay)的一个视图,并且可以根据特定视点或头部位置来可选地对该视图进行处理。

相机镜头信息的应用的另一示例可以是生成全景图像。可以基于通过多个相机同时捕获的图像或使用单台相机在多个位置处捕获的图像来生成全景图像。另外,对于通过阵列中的多台相机捕获的光场视频,可以基于相机镜头信息来指定相机中的每台的位置和镜头特性。

图5(b)示例性例示了在特定视点处的多个观看位置的3d空间。3d空间可以是球体。由于可以根据用户在特定视点处的观看位置改变(头部动作)提供不同的视觉/听觉体验,因此可以提供反映相应观看位置的相对位置的视频/语音/文本信息。

另外,在特定视点的特定观看位置处,可以传送诸如现有360度内容这样的关于各种方向的视觉/听觉信息。即,可以在3d空间中渲染特定视点的特定观看位置的360度内容。在这种情况下,不仅可以集成和提供包括视频/语音/文本等的主要来源,而且还可以集成和提供各种附加来源,并且可以与用户的观看方向关联地或独立于用户的观看方向传送关于附加来源的信息。

图5(c)示例性示出了其中渲染了观看位置的360度视频的3d空间。如图5(c)中所示,可以使用球坐标系用r(球的半径)、θ(绕z轴的旋转方向和旋转度)和(朝向z轴方向的x-y平面的旋转方向和旋转度)来表示球面上的每个点。在实施方式中,球面可以对应于世界坐标系,或者前置相机的主点可以被假定为球面的点(r,0,0)。

可以基于飞机主轴的概念来表达球面上每个点的位置。例如,可以从俯仰、偏航和滚转方面来表示球面上每个点的位置。

飞机可以在三个维度上自由地旋转。三维轴分别被称为俯仰轴、偏航轴和滚转轴。在本说明书中,这些轴可以被简单地表示为俯仰、偏航和滚转或者俯仰方向、偏航方向、滚转方向。俯仰轴可以是指飞机的前机头绕其向上/向下旋转的轴。在飞行器主轴的例示概念中,俯仰轴可以是指飞机的从一个机翼延伸到另一个机翼的轴。偏航轴可以是指飞机的前机头绕其向左/向右旋转的轴。在飞行器主轴的例示概念中,偏航轴可以是指从飞机的顶部延伸到底部的轴。在所例示飞机主轴的概念中,滚转轴可以是指飞机的从前机头延伸到机尾的轴,并且在滚转方向上的旋转可以是指绕滚转轴的旋转。如上所述,可以基于俯仰、偏航和滚转的概念来描述本公开中的3d空间。在实施方式中,可以使用基于x、y和z轴或球坐标系的概念的方法。

图6是示出了根据本公开的用于提供3dof+视频的整体架构的图。

参照图6,可以获取3dof+视频数据和/或3dof+音频数据。具体地,可以使用高密度相机阵列(hdca)、小透镜(微透镜)相机等来捕获3dof+内容,或者可以使用被设计用于3dof+视频捕获的新装置。可以根据用于捕获的相机位置来生成诸如图6中示出的所获取图像610这样的多个图像/视频数据集。即,可以根据多个位置处的头部运动获取多条图像/音频信息。在这种情况下,图像信息可以包括深度信息以及纹理信息。如在图6中示出的所获取图像610的情况下,可以根据不同的捕获位置(视点)获取关于不同观看位置的多条信息。另外,在捕获3dof内容的过程中,可以生成指示相机的内部/外部设置值的元数据。对于由计算机而非相机生成的图像,可以跳过捕获过程。

一旦执行了图像获取过程,就可以执行构图过程。构图过程可以被定义为合成过程,执行该合成过程以在用户体验时包括通过图像/音频输入装置获取的图像610以及通过外部媒体装置输入的图片(视频/图像等)、声音(音频/效果声音等)、文本(字幕等)。

所获取图像610的预处理过程可以是处理在捕获过程中传送的所捕获的图像/视频和元数据的过程。预处理过程可以包括用于在进行发送之前处理内容的所有类型的预处理步骤,包括拼接过程、颜色校正过程、投影过程、将视图分割成主视图和辅视图以增加编码效率的视图分割过程以及编码过程。

具体地,拼接过程可以是通过连接360度方向上的相应相机的位置处捕获的图像来创建以每个相机位置为中心的全景或球形图像/视频的过程。

此后,可以使拼接后的图像/视频经历投影过程。投影过程可以是指通过将每个拼接图像投影到2d图像上来推导投影图片620的过程。这里,投影可以被表示为映射到2d图像。映射到每个相机位置处的图像可以被分割为主视图和辅视图,并且可以将不同的分辨率应用于相应视图以提高视频编码效率。通过改变映射图像的布置或分辨率,甚至在主视图内也可以提高编码效率。根据视图的图像分割过程可以被称为视图分割过程。根据捕获环境,可以不存在辅视图。辅视图可以是指在用户从主视图移动到另一主视图时需要回放的图像/视频,并且其分辨率可以低于主视图。然而,在有必要时,它的分辨率可以与主视图相同。在某些情况下,辅视图可以被接收器重新生成为虚拟信息。

在实施方式中,预处理过程还可以包括编辑过程。编辑过程可以表示去除360度视频的区域之间的边界,减小颜色/亮度的差异或者向图像添加视觉效果的过程。另外,预处理过程可以包括根据区域重新布置图像的打包过程以及压缩图像信息的编码过程。如同被投影的图片620,可以根据不同的捕获位置(视点)基于不同视点位置的多个投影图像来生成投影图片。

另外,在预处理过程中,可以在投影之前或之后进一步执行图像/视频数据的编辑,并且可以生成元数据。另外,在预处理过程中,可以生成与所提供的图像/视频应该首先被回放的初始观看位置、用户的初始位置、感兴趣区域(roi)等有关的元数据。

图6中例示的媒体传送过程(传送)可以表示处理和传送在预处理过程中获得的图像/视频数据和元数据的过程。为了传送图像/视频数据和元数据,可以执行根据任何传输协议的处理,并且可以通过广播网络和/或宽带传送预处理后的数据。另外,可以按需将预处理后的数据传送到接收方。

该处理过程可以包括在用于回放图像/视频的图像创建之前执行的所有过程,包括对接收到的图像/视频数据和元数据进行解码的过程、将解码后的投影图片的图像/视频数据映射或投影到三维(3d)模型上的重新投影过程以及创建并合成虚拟观察位置的过程。类似于传统360度视频,映射的3d模型或投影图可以是球体、立方体、圆柱体或角锥体。另选地,3d模型或投影图可以采用现有360度视频投影图的修改形式。在某些情况下,它可以是自由类型投影图。

这里,生成并合成虚拟视图的过程可以表示当用户在主视图和辅视图之间或者在主视图之间移动时生成并合成应该回放的图像/视频数据的过程。为了生成虚拟视图,可能需要处理从捕获过程和预处理过程传送的元数据的过程。在某些情况下,可以仅在虚拟视图中生成/合成360图像/视频的部分。

根据实施方式,处理过程还可以包括编辑过程、放大过程和缩小过程。在编辑过程中,可以在处理过程之后应用在回放之前所需的附加编辑过程。在有必要时,可以执行放大或缩小接收到的图像/视频。

渲染过程可以表示渲染在发送或生成之后重新投影的图像/视频使得可以显示图像/视频的过程。渲染和重新投影过程可以被统称为渲染。因此,重新投影过程可以被包括在渲染过程中。以创建以用户为中心的360度视频/图像和以用户根据移动方向而移动到达的位置中的每一个为中心的360度视频/图像的方式,可以产生诸如图6的部分630这样的形式的多个重新投影结果。用户可以根据用于显示视频/图像的装置观看360度视频/图像的区域的部分,并且可以推导图6的部分640的形式的用户观看的区域。另外,当用户移动时,不能充分渲染360度视频/图像,而只能渲染与用户正观看位置对应的图像。另外,360度视频接收设备可以接收与用户的位置和移动有关的元数据,并且附加地渲染用户将要移动到达的位置(即,预计用户移动到的位置)的视频/图像。

反馈过程可以表示将可以在显示过程中获取的各种类型的反馈信息传送到发送方的过程。通过反馈过程,可以在360度内容与用户之间发生交互。根据实施方式,可以在反馈过程中传送与用户的头部/位置方向和用户当前正观看的区域(视口)有关的信息。可以在反馈过程中将该信息传送到发送方或服务供应商。根据实施方式,可以跳过反馈过程。

关于用户位置的信息可以是与用户头部位置、角度、移动和移动距离有关的信息,并且可以基于该信息来计算用户正观看的视口。

图7示例性示出了根据本公开的基于相机镜头信息和/或补充相机镜头信息将360度视频拼接成全景图像的示例。

图8a和图8b示例性例示了通过360度视频发送设备/360度视频接收设备执行的用于提供360内容/3dof+内容的整体架构。

可以由如图8a和图8b中所示的架构提供360内容/3dof+内容。3dof+内容可以以文件的形式或以诸如dash这样的基于片段的下载或流传输服务的形式提供。

具体地,参照图8a,可以如上所述获取3dof+内容的360度视频数据和/或360度音频数据(获取)。即,可以通过360相机捕获360度视频,并且360度视频发送设备可以获取360度视频数据。根据传感器的传感器方向、传感器位置和信息获取点,可以通过执行信息获取的360度视频发送设备的元件同时地或顺序地获取不同的信息。另外,在图像的情况下,执行信息获取的360度视频发送设备的元件可以根据观看方向、观看位置和视点同时地或顺序地获取图像信息。在这种情况下,图像信息可以包括视频、图像、音频和位置信息。

另外,可以通过音频预处理过程和音频编码过程来处理360度音频数据。在这些过程中,可以生成音频相关元数据。编码后的音频和音频相关元数据可以经历处理(文件/片段封装)以进行发送。

360度视频数据可以经过如上所述的过程。参照图8a,360度视频发送设备的拼接器可以对360度视频数据执行拼接(可视拼接)。例如,360度视频数据可以包含纹理信息和深度信息。360度视频发送设备可以获取纹理信息和深度信息,并且根据每个组件的特性对纹理信息和深度信息执行不同的预处理。例如,在纹理信息的情况下,360度视频发送设备可以使用图像传感器位置信息,使用在同一视点处获取的同一观看位置的不同方向的图像来配置360度全向图像。为此,该设备可以执行图像拼接过程。根据实施方式,可以跳过该过程并且可以在接收方执行该过程。

另外,参照图8a,360度视频发送设备的投影处理器可以将360度视频数据投影到2d图像上(投影和映射(打包))。投影处理器可以接收360度视频数据(输入图像)。在这种情况下,处理器可以执行拼接和投影过程。具体地,在投影过程中,拼接后的360度视频数据可以被投影到3d空间上,并且投影后的360度视频数据可以被布置在2d图像上。在本说明书中,该过程可以被表示为将360度视频数据投影到2d图像上。这里,3d空间可以是球体或立方体。该3d空间可以与用于在接收方处重新投影的3d空间相同。

2d图像可以被称为投影的帧或投影的图片。另外,可以对2d图像执行按区域打包过程。当执行按区域打包过程时,可以通过指定每个区域的位置、形状和大小,将2d图像上的区域映射到打包的帧上。打包的帧可以被称为打包的图片。当不对投影的帧执行按区域打包过程时,投影的帧可以与打包的帧相同。稍后,将描述区域。投影过程和按区域打包过程可以被表示为将360度视频数据的每个区域投影到2d图像上。根据设计,360度视频数据可以被直接转换成打包的帧,而不用进行中间处理。

另外,通常可以通过深度相机获取深度图像。在这种情况下,可以以与纹理图像相同的形式生成深度图像。另选地,可以基于单独测得的数据来生成深度数据。在按组件生成图像之后,360度视频发送设备可以执行附加变换(打包)成用于高效压缩的视频格式或者通过将图像划分成实际需要的多个部分来重构图像的处理(子图片生成)。

当视频/音频/文本信息与所获取的图像数据(或用于主服务的数据)一起被附加地提供时,可以生成并提供在最后回放时合成附加提供的信息的信息。例如,360度视频发送设备的构图生成终端可以生成在最终回放终端处合成基于制作方的意图而在外部生成的媒体数据(如果附加提供的信息是视频,则是视频/图像信息;如果附加提供的信息是声音,则是音频/声音效果;如果附加提供的信息是文本,则是字幕)的信息。该信息可以通过构图元数据发送。

参照图8a,360度视频数据的打包的帧可以被图像编码或视频编码。即使相同的3dof+内容,也可以具有针对每个视点的360度视频数据。在这种情况下,内容的每个视点的360度视频数据可以被编码成不同的比特流。编码后的360度视频数据可以被上述的封装处理器处理成诸如isobmff这样的文件格式。另选地,封装处理器可以将编码后的360度视频数据处理成片段。这些片段可以被包括在用于基于dash的发送的单独的轨道中。

在处理360度视频数据的同时,可以如上所述生成360度视频相关元数据。该元数据可以按视频流或文件格式传送。该元数据也可以用在诸如编码、文件格式封装和发送处理这样的过程中。

360音频/视频数据可以根据传输协议来进行发送处理,然后被发送。上述的360度视频接收设备可以通过广播网络或宽带接收数据。

如图8a中例示的,通过360度视频接收设备的外部装置或vr应用来驱动扬声器/耳机、显示器和头部/眼睛跟踪部件。根据实施方式,360度视频接收设备可以包括所有扬声器/耳机、显示器和头部/眼睛跟踪部件。根据实施方式,头部/眼睛跟踪部件可以对应于上述的接收方反馈处理器。

360度视频接收设备可以执行360音频/视频数据的接收处理(文件/片段解封装)。在通过音频解码和音频渲染而进行处理后,可以通过扬声器/耳机将360音频数据提供给用户。

在通过图像解码、视频解码和可视渲染而进行处理之后,可以通过显示器将360度视频数据提供给用户。这里,显示器可以是支持显示的vr或典型显示器。

具体地,如上所述,在渲染过程中,可以将360度视频数据重新投影到3d空间上,并且可以渲染重新投影后的360度视频数据。该过程也可以被视为3d空间中渲染360度视频数据。

头部/眼睛跟踪部件可以获取并处理与用户有关的头部方向信息、注视信息和视口信息。相关细节可以与上述那些相同。

可以在接收方提供与上述接收方处理进行通信的vr应用。

图8b示例性示出了根据360度视频的处理过程和投影方案对其应用按区域打包过程的2d图像。图8b中例示的处理可以表示处理所输入的360度视频数据的过程。具体地,参照图8b,可以根据各种投影方案将输入的观看位置的360度视频数据拼接并投影到3d投影结构上。投影到3d投影结构上的360度视频数据可以被表示为2d图像。即,360度视频数据可以被拼接并且被投影到2d图像上。360度视频数据被投影到的2d图像可以被表示为投影的帧。另外,可以对投影的帧执行上述按区域打包过程。即,可以执行诸如将包括投影的帧上的投影的360度视频数据的区域划分成多个区域、旋转或重新布置每个区域或者改变每个区域的分辨率这样的处理。换句话讲,按区域打包过程可以表示将投影的帧映射到一个或更多个打包的帧的过程。执行按区域打包过程可以是可选的。当跳过按区域打包过程时,打包的帧可以与投影的帧相同。当应用按区域打包过程时,可以将投影的帧的每个区域映射到打包的帧的区域,并且可以推导指示投影的帧的每个区域被映射到的打包的帧的区域的位置、形状和大小的元数据。

图9例示了由360度视频接收设备基于相机镜头信息处理360度视频的示例。

参照图9,可以用从解码的图片提取的子图片生成一个球形图像或多个球形图像。用从解码图片提取的子图片生成。

例如,参照图9,可以提取与圆形图像和矩形区域的交集对应的有效区域作为用于生成一个球形图像或多个球形图像的子图片。可以基于circular_region_center_x[i]字段、circular_region_center_y[i]字段、rect_region_top[i]字段、rect_region_left[i]字段、rect_region_width[i]字段、rect_region_height[i]字段、full_radius[i]字段和scene_radius[i]字段来推导球形图像和矩形区域。随后,将描述circle_region_center_x[i]字段、circular_region_center_y[i]字段、rect_region_top[i]字段、rect_region_left[i]字段、rect_region_width[i]字段、rect_region_height[i]字段、full_radius[i]字段和scene_radius[i]字段。

参照图9,可以基于以redial_distortion_type[i]字段为基础推导的模型来校正因镜头缺陷而造成的子图片的径向变形。随后,可以通过基于lens_projection_type[i]字段推导出的建模的投影式或基于通过作为angle_projection[i][j]字段和polynomial_coeff_projection[i][j][k]字段所指示的角度的函数的多项式的系数推导出的投影式来映射子图片。随后,将描述redial_distortion_type[i]字段、lens_projection_type[i]字段、angle_projection[i][j]字段和polynomial_coeff_projection[i][j][k]字段的细节。

可以基于给定参数(angle_correction[i][j]字段和polynomial_coeff_correction[i][j][k]字段)来校正镜头变形。

当由特定镜头捕获的图像(即,解码图片)存在旋转和偏移时,可以基于local_sphere_rotation_azimuth[i]字段、local_sphere_rotation_elevation[i]字段和local_sphere_rotation_tilt[i]字段在全局球坐标系中相对旋转映射的球体图像。另外,基于local_sphere_rotation_azimuth[i]字段、local_sphere_rotation_elevation[i]字段和local_sphere_rotation_tilt[i]字段,可以校正球心偏移,以便匹配与构成视点的头部位置的眼睛视线的单位球体的镜头对应的球心。随后,将描述local_sphere_rotation_azimuth[i]字段、local_sphere_rotation_elevation[i]字段和local_sphere_rotation_tilt[i]字段的细节。

如上所述,可以执行拼接过程,以形成球体图像。例如,当解码后的图片包括不同视点和头部位置的子图片时,camera_id[i]字段和camera_id_type[i]字段可以用于提取特定视点、头部位置和/或眼睛视线的子图片。例如,在依赖视口进行的处理的情况下,可以基于camera_id[i]字段、camera_id_type[i]字段,视场(fov)信息和/或旋转信息来选择可以在减少处理时间和延迟方面提高效率的子图片。

图10是示意性例示了适用本公开的360度视频发送设备的配置的图。

根据本公开的360度视频发送设备可以执行与上述准备过程和发送过程相关的操作。360度视频发送设备可以包括数据输入单元、构图信息处理器(compositioninformationprocessor)、拼接器、投影处理器、(按区域)打包处理器、子图片处理器、数据编码器、封装处理器、文件提取器、发送处理器、发送器、视点/观看位置/观看方向信息和元数据处理器和/或(发送方)反馈处理器作为内部/外部元件。当输入数据是相机输出图像时,360度视频发送设备可以针对每个视点/观看位置/组件执行用于构造球体图像(即,在3d空间中渲染的360度图像)的拼接。视点/观看位置/观看方向信息和元数据处理器可以被称为元数据处理器。

数据输入单元可以接收每个捕获的视点的图像/视频。这些视点特定的图像/视频可以是由一台或更多台相机捕获的图像/视频。即,每个视点的图像/视频可以包括多个观看位置的图像/视频。数据输入单元还可以接收在捕获过程期间生成的元数据。数据输入单元可以将每个观看位置的输入图像/视频传送到拼接器,并且将捕获过程的元数据传送到信令处理器。

拼接器可以对每个观看位置捕获的图像/视频进行拼接。拼接器可以将拼接后的360度视频数据传送到投影处理器。在有必要时,拼接器可以从元数据处理器接收必要的元数据,并且将其用于拼接。拼接器可以将在拼接过程中生成的元数据传送到元数据处理器。拼接过程的元数据可以包括诸如是否已经执行拼接的表示以及拼接类型这样的信息。

投影处理器可以将拼接后的360度视频数据投影到2d图像上。投影处理器可以根据随后将描述的各种方案来执行投影。投影处理器可以在考虑每个观看位置的360度视频数据的对应深度的情况下执行映射。在有必要时,投影处理器可以从元数据处理器接收投影必需的元数据,并且将其用于投影操作。投影处理器可以将在投影过程中生成的元数据传送到元数据处理器。投影处理器的元数据可以包括投影方案的类型。

(按区域)打包处理器可以执行上述的按区域打包过程。即,按区域打包处理器可以执行诸如将投影的360度视频数据划分成多个区域,旋转或重新布置每个区域,或改变每个区域的分辨率这样的过程。如上所述,按区域打包过程是可选的。当跳过按区域打包时,可以省略按区域打包处理器。在有必要时,按区域打包处理器可以从元数据处理器接收按区域打包必需的元数据,并且将元数据用于按区域打包操作。按区域打包处理器可以将在按区域打包过程中生成的元数据传送到元数据处理器。按区域打包处理器的元数据可以包括每个区域的旋转度和大小。

根据实施方式,上述的拼接器、投影处理器和/或按区域打包处理器可以由一个硬件部件来实现。

根据应用,子图片处理器可以执行打包以用多个图像创建集成的图像,或者生成将图像划分为详细区域图像的子图片。另外,当输入数据包含视频/语音/文本补充信息时,可以生成与将补充信息添加到中央图像并显示其的方法有关的信息,并且可以将该信息与补充信息一起发送。

元数据处理器可以处理可以在捕获过程、拼接过程、投影过程、按区域打包过程、编码过程、封装过程和/或发送过程中生成的元数据。使用元数据,元数据处理器可以生成360度视频相关元数据。根据实施方式,元数据处理器可以以信令表的形式生成360度视频相关元数据。根据信令上下文,360度视频相关元数据可以被称为元数据或360度视频相关信令信息。元数据处理器还可以在需要时将所获取或生成的元数据传送到360度视频发送设备的内部元件。元数据处理器可以将360度视频相关元数据发送到数据编码器、封装处理器和/或发送处理器,使得元数据可以被发送到接收方。

数据编码器可以对投影到2d图像上的360度视频数据和/或按区域打包的360度视频数据进行编码。可以以各种格式对360度视频数据进行编码。

封装处理器可以将编码后的360度视频数据和/或360度视频相关元数据按文件形式封装。这里,可以从上述的元数据处理器接收360度视频相关元数据。封装处理器可以以诸如isobmff或cff这样的文件格式封装数据,或者将数据处理成dash片段等。根据实施方式,封装处理器可以包括文件格式的360度视频相关元数据。360相关元数据可以被包括例如在isobmff的各种层的盒中,或者被包括为文件中单独轨道中的数据。根据实施方式,封装处理器可以将360度视频相关元数据封装成文件。发送处理器可以根据要发送的文件格式来处理封装的360度视频数据。发送处理器可以根据任意传输协议来处理360度视频数据。发送处理可以包括通过广播网络进行的传送处理和通过宽带进行的传送处理。根据实施方式,发送处理器不仅可以从元数据处理器接收360度视频数据,而且可以接收360度视频相关元数据,并且可以对其进行处理以便进行发送。

发送器可以通过广播网络和/或宽带发送经处理以便进行发送的360度视频数据和/或360度视频相关元数据。发送器可以包括通过广播网络进行发送的元件和/或通过宽带进行发送的元件。

根据本公开的实施方式,360度视频发送设备还可以包括数据存储单元(未示出)作为内部/外部元件。数据存储单元可以在将编码后的360度视频数据和/或360度视频相关的元数据发送到发送处理器之前,将其存储。这些数据可以以诸如isobmff这样的文件格式存储。当实时发送360度视频时,可能不需要数据存储单元。然而,当视频被按需、按nrt(非实时)或通过宽带发送时,封装后的360度数据可以在数据存储单元中存储一定时间段,然后被发送。

根据本公开的另一实施方式,360度视频发送设备还可以包括(发送方)反馈处理器和/或网络接口(未示出)作为内部/外部元件。网络接口可以从根据本公开的360度视频接收设备接收反馈信息,并且将其传送到发送方反馈处理器。发送方反馈处理器可以将反馈信息传送到拼接器、投影处理器、按区域打包处理器、数据编码器、封装处理器、元数据处理器和/或发送处理器。根据实施方式,在反馈信息被传送到元数据处理器之后,它进而可以被传送到每个内部元件。接收反馈信息的内部元件可以在后续360度视频数据的处理中反映反馈信息。

根据本公开的360度视频发送设备的另一实施方式,按区域打包处理器可以旋转每个区域,并且将其映射到2d图像上。在该操作中,相应区域可以在不同方向上以不同角度旋转,然后被映射到2d图像上。可以考虑与球形表面上的360度视频数据相邻或在投影之前拼接的部分来执行区域的旋转。可以通过360度视频相关元数据来发信号通知关于区域旋转的信息,即,旋转方向、角度等。根据本公开的360度视频发送设备的另一实施方式,数据编码器可以针对每个区域不同地执行编码。数据编码器可以以高质量对特定区域进行编码而以低质量对其它区域进行编码。发送方反馈处理器可以将从360度视频接收设备接收到的反馈信息传送到数据编码器,使得数据编码器使用针对每个区域而区分的编码方法。例如,发送方反馈处理器可以将从接收方接收到的视口信息传送到数据编码器。数据编码器可以以比其它区域更高的质量(uhd等)对包括视口信息所指示的区域的区域进行编码。

根据本公开的360度视频发送设备的另一实施方式,发送处理器可以针对每个区域不同地执行发送处理。发送处理器可以将不同的发送参数(调制阶数、编码速率等)应用于相应区域,使得针对每个区域发送的数据可以具有不同的鲁棒性。

然后,发送方反馈处理器可以将从360度视频接收设备接收到的反馈信息传送到发送处理器,从而执行针对每个区域而区分的发送处理。例如,发送方反馈处理器可以将从接收方接收到的视口信息传送给发送处理器。发送处理器可以在包括视口信息所指示的区域的区域上执行发送处理,使得这些区域可以具有比其它区域更高的鲁棒性。

根据本公开的360度视频发送设备的内部/外部元件可以是用硬件实现的硬件元件。根据实施方式,内部/外部元件可以被改变、省略、或被其它元件替换。根据实施方式,可以在360度视频发送设备中添加补充元件。

图11是示意性例示了适用本公开的360度视频接收设备的配置的图。

根据本公开的360度视频接收设备可以执行与上述处理过程和/或渲染过程相关的操作。360度视频接收设备可以包括接收器、接收处理器/文件提取器、解封装处理器、数据解码器、元数据解析器、解包/选择处理器、渲染器、构图处理器、(接收方)反馈处理器和/或重新投影处理器作为内部/外部元件。信令解析器可以被称为元数据解析器。

接收器可以接收根据本公开的360度视频发送设备发送的360度视频数据。根据发送信道,接收方可以通过广播网络或宽带接收360度视频数据。在接收到从发送器传送的比特流之后,接收方可以提取必要的文件。

接收处理器可以根据传输协议来处理接收到的360度视频数据。接收处理器可以执行上述发送处理器的过程的逆过程,使得逆过程对应于在发送方的发送处理。接收处理器可以将所获取的360度视频数据传送到解封装处理器,并且将所获取的360度视频相关元数据传送到元数据解析器。接收处理器所获取的360度视频相关元数据可以采取信令表的形式。

解封装处理器可以对从接收处理器接收的文件形式的360度视频数据进行解封装。解封装处理器可以根据isobmff等对文件进行解封装,以获取360度视频数据或360度视频相关元数据。解封装处理器可以使用视点/观看位置/观看方向信息和从反馈处理器传送的视频元数据来选择所生成文件格式的视频流。可以通过解码器将所选择的比特流重构为图像信息。所获取的360度视频数据可以被传送到数据解码器,并且所获取的360度视频相关元数据可以被传送到元数据解析器。解封装处理器所获取的360度视频相关元数据可以采取文件格式的盒或轨道的形式。在有必要时,解封装处理器可以从元数据解析器接收解封装所需的元数据。

数据解码器可以解码360度视频数据。数据解码器可以从元数据解析器接收解码所需的元数据。在数据解码过程中获取的360度视频相关元数据可以被传送到元数据解析器。

对于打包图像,解包/选择处理器可以基于通过元数据传送的打包信息,对打包图像执行解包。在有必要时,解包/选择处理器可以执行选择图像和适于从反馈处理器传送的视点/观看位置/观看方向的必要组件的过程。

元数据解析器可以解析/解码360度视频相关元数据。元数据解析器可以将所获取的元数据传送到数据解封装处理器、数据解码器、重新投影处理器和/或渲染器。

重新投影处理器可以对解码后的360度视频数据进行重新投影。重新投影处理器可以将360度视频数据重新投影到3d空间上。3d空间的形状可以取决于所采用的3d模型。重新投影处理器可以从元数据解析器接收重新投影所需的元数据。例如,重新投影处理器可以从元数据解析器接收关于所采用3d模型的类型的信息和对应的详细信息。根据实施方式,重新投影处理器可以使用重新投影所需的元数据,仅将与3d空间中的特定区域对应的360度视频数据重新投影到3d空间上。

渲染器可以渲染重新投影的360度视频数据。如上所述,可以在3d空间中渲染360度视频数据。在两个过程如上所述发生一次的情况下,重新投影处理器和渲染器可以被集成在一起,并且这些处理全都可以由渲染器执行。根据实施方式,渲染器可以根据与用户有关的观看位置信息仅渲染用户正观看的部分。

另外,渲染器可以执行以适于回放的格式重构与图像有关的纹理、深度和覆盖信息的渲染处理。在生成最终图像之前,可以执行整合不同层的信息的构图处理,并且可以生成并回放适于显示视口的图像。

用户可以通过vr显示器等观看渲染后的360度视频的一些区域。vr显示器是回放360度视频的装置,并且可以(在系绳状态下)被包括在360度视频接收设备中或(在非系绳状态下)作为单独的装置连接到360度视频接收设备。

根据本公开的实施方式,360度视频接收设备还可以包括(接收方)反馈处理器和/或网络接口(未示出)作为内部/外部元件。接收方反馈处理器可以从渲染器、重新投影处理器、数据解码器、解封装处理器和/或vr显示器获取反馈信息,并且处理该反馈信息。反馈信息可以包括视口信息、头部方向信息和注视信息。网络接口可以从接收方反馈处理器接收反馈信息并且将该反馈信息发送到360度视频发送设备。

如上所述,反馈信息不仅可以被传送到发送方,而且也在接收方被消费。接收方反馈处理器可以将所获取的反馈信息传送到360度视频接收设备的内部元件,使得在诸如渲染这样的过程中反映该信息。接收方反馈处理器可以将反馈信息传送到渲染器、重新投影处理器、数据解码器和/或解封装处理器。例如,渲染器可以基于反馈信息优先渲染用户观看的区域。解封装处理器和数据解码器可以优先解封装和解码用户正观看的区域或用户将观看的区域。

根据本公开的360度视频接收设备的内部/外部元件可以是用硬件实现的硬件元件。根据实施方式,内部/外部元件可以被改变、省略、或被其它元件替换。根据实施方式,可以在360度视频接收设备中添加补充元件。

本公开的另一方面可以涉及发送360度视频的方法和接收360度视频的方法。根据本公开的发送/接收360度视频的方法可以由上述的根据本公开的360度视频发送/接收设备或设备的实施方式实现。

上述的根据本公开的360度视频发送/接收设备、发送/接收方法及其内部/外部元件的实施方式可以被彼此组合。例如,投影处理器的实施方式与数据编码器的实施方式可以被彼此组合,以配置与组合一样多的360度视频发送设备的实施方式。通过这种组合配置的实施方式也在本公开的范围内。

如上所述,根据用于360度视频的相机和镜头的特性,可能出现变形。在这种情况下,360度视频发送设备和360度视频接收设备可以校正和处理360度视频的变形,以便改善图像质量等。例如,360度视频发送设备/360度视频接收设备可以校正360度视频的变形并且将视频投影到2d图像上。另选地,360度视频发送设备/360度视频接收设备可以在针对360度视频的拼接过程和/或渲染过程中校正变形。

为了校正360度视频的变形,需要与用于360度视频的相机和/或镜头有关的信息。由于对于相机和/或镜头而言特性可能不同,因此可以考虑根据特性而发生的变形执行校正。

因此,本公开提出了定义和发信号通知用于相机和镜头参数的相机镜头信息的方法。根据实施方式,可以以视频编解码器的元数据的形式来传送相机镜头信息。它可以在诸如高效视频编码(hevc)或通用视频编码(vvc)这样的视频编解码器的sei消息中传送,也可以以vps、sps或pps的形式传送。根据实施方式,相机镜头信息可以通过数字有线/无线接口、系统级文件格式等来传送。

例如,相机镜头信息可以在下表中示出的sei消息中呈现。

[表1]

参照表1,sei消息可以包括与相机镜头信息对应的camera_lens_information和/或与补充相机镜头信息对应的supplemental_camera_lens_information。camera_lens_information可以被表示为相机镜头信息sei消息,并且supplemental_camera_lens_information可以被表示为补充相机镜头信息sei消息。相机镜头信息可以被表示为视点、头部位置和/或眼睛视线轨迹信息,并且补充相机镜头信息可以被表示为补充视点、头部位置和/或眼睛视线轨迹信息。

clvs中存在相机镜头信息sei消息指示clvs中的编码视频图片包括由鱼眼镜头、多台相机或具有多个镜头(该多个镜头包括相机结构或相机阵列的组合)的相机结构或相机阵列捕获的多个子图片。

360度视频接收设备可以使用相机镜头信息sei消息中所包含的信息来针对诸如3dof、3dof+、6dof或全景图像的应用更适当地渲染全向相机输出。相机和镜头信息sei消息可以被应用于包括sei消息的当前clvs。当相机和镜头信息sei消息被包括在cvls中时,相机镜头信息sei消息应该出现在clvs的第一访问单元中。它可以出现在clvs的另一个访问单元中。

可以如下表中所示地推导camera_lens_information。

[表2]

参照表2,camera_lens_information可以包括camera_lens_info_id字段和/或camera_lens_info_cancel_flag字段。

camera_lens_info_id字段可以指示用于标识相机镜头信息目的的标识符。例如,camera_lens_info_id字段的值可以指示sei消息的相机镜头信息的使用情况。另选地,camera_lens_info_id字段的值可以用于支持接收器性能。另选地,camera_lens_info_id字段的值可以指示可以由单个图像构成的子图片。例如,单个图像可以是球体图像或全景图像。

举例来说,当一条或更多条相机镜头信息包含具有相同值的camera_lens_info_id字段时,多条相机镜头信息中所包括的字段可以相同。可以存在包含值不同的camera_lens_info_id字段的多条相机镜头信息。在这种情况下,camera_lens_info_id字段可以指示多条相机镜头信息是出于不同目的,或者基于相机镜头信息顺序地应用校正或投影的级联。这里,可以根据应用程序指定顺序。camera_lens_info_idfield的值可以在0至215-1的范围内。

camera_lens_info_cancel_flag字段可以指示是否根据应用于当前层的输出顺序来取消在相机镜头信息之前的先前相机镜头信息的持久性。例如,当camera_lens_info_cancel_flag字段的值为1时,camera_lens_info_cancel_flag字段可以指示在取消相机镜头信息之前的先前相机镜头信息的持久性。当camera_lens_info_cancel_flag字段的值为0时,camera_lens_info_cancel_flag字段可以指示没有取消相机镜头信息之前的先前相机镜头信息的持久性。

参照表2,camera_lens_information可以包括camera_lens_info_persistence_flag字段、supplemental_info_present_flag字段、view_dimension_idc_flag字段和/或num_camera_id_minus1字段。

camera_lens_info_persistence_flag字段可以指示当前层的相机镜头信息sei消息的持久性。例如,当camera_lens_info_persistence_flag字段的值为0时,相机镜头信息可以仅应用于当前解码的图片。当camera_lens_info_persistence_flag字段的值为1时,可以根据当前层中的输出顺序来保持相机镜头信息,直到满足下述条件中的任一个为止。即,可以根据当前层中的输出顺序来应用相机镜头信息,直到满足下述条件中的任一个为止。

条件如下:

-当前层的新clvs开始;

-比特流结束;以及

-输出包括适用于当前层的相机镜头信息的访问单元的当前层的图片picb,并且picordercnt(picb)大于picordercnt(pica)。

这里,pica可以表示当前图片,并且picordercnt(picb)可以指示就在调用针对picb的图片顺序计数的解码过程之后的picb的picordercntval值。picordercnt(pica)可以指示就在调用针对picb的图片顺序计数的解码过程之后的pica的picordercntval的值。

supplemental_info_present_flag字段可以指示在包含相机镜头信息的sei消息的外部是否存在相机镜头信息的补充信息。例如,当supplemental_info_present_flag字段的值为1时,supplemental_info_present_flag字段可以指示相机镜头信息的补充信息被包括在相机镜头信息中或者值与相机镜头信息的camera_lens_info_id字段不同的camera_lens_info_id字段的相机镜头信息或补充信息中。当supplemental_info_present_flag字段的值为0时,supplemental_info_present_flag字段可以指示不存在相机镜头信息的补充信息。

view_dimension_idc_flag字段可以指示在相机镜头信息中是否存在view_dimension_idc字段。例如,当view_dimension_idc_flag字段的值为1时,view_dimension_idc_flag字段可以指示在相机镜头信息中存在view_dimension_idc字段。当view_dimension_idc_flag字段的值为1时,view_dimension_idc_flag字段可以指示相机镜头信息中不存在view_dimension_idc字段。

view_dimension_idc字段可以指示鱼眼镜头的对准和观看方向。例如,当view_dimension_idc字段的值为0时,view_dimension_idc字段可以指示num_circular_images字段的值为2,camera_center_elevation字段、camera_center_tilt字段、camera_center_offset_x字段、camera_center_offset_y字段和camera_center_offset_z字段的值具有造成圆形图像具有对齐的光轴并面向相反方向的值,并且field_of_view字段的值之和大于或等于360×216。这里,num_circular_images字段可以指示圆形图像的数目。

例如,当view_dimension_idc字段的值为1时,view_dimension_idc字段可以指示num_circular_images字段的值为2,并且camera_center_eltation字段、camera_center_tilt字段、camera_center_offset_x字段、camera_center_offset_y字段和camera_center_offset_z字段的值造成圆形图像具有与和相机中点交叉的线正交的平行光轴,并且当i为0时,第i相机是左视图。即,当view_dimension_idc字段的值为1时,第0相机可以代表用于左视图的相机。

例如,当view_dimension_idc字段的值为2时,view_dimension_idc字段可以指示num_circular_images字段的值为2,并且camera_center_eltation字段、camera_center_tilt字段、camera_center_offset_x字段、camera_center_offset_y字段和camera_center_offset_z字段的值造成圆形图像具有与和相机中点交叉的线正交的平行光轴,并且当i为0时,第i相机是右视图。即,当view_dimension_idc字段的值为2时,第0相机可以代表用于右视图的相机。

例如,当view_dimension_idc字段的值为7时,view_dimension_idc字段可以指示不暗示对全向鱼眼视频sei消息中的语法元素的附加约束。

对于view_dimension_idc字段,保留3到6之间的值以备未来使用。

通过将num_circular_images_minus1字段的值加上1而获得的值可以指示相机标识符(id)的数目。

参照表2,camera_lens_information可以包括camera_id[i]字段、camera_id_type[i]字段、camera_location_per_viewpoint_x[i]字段、camera_location_per_viewpoint_y[i]字段、camera_location_per_viewpoint_z[i]字段、camera_rotation_per_view_yaw[i]字段、camera_rotation_per_viewpoint_pitch[i]字段、camera_rotation_per_viewpoint_roll[i]字段、camera_location_per_head_position_x[i]字段、camera_location_per_head_position_y[i]字段、camera_location_per_head_position_z[i]字段、camera_rotation_per_head_position_yaw[i]字段、camera_rotation_per_head_position_pitch[i]字段、camera_rotation_per_head_position_roll[i]字段、left_eye_view_flag[i]字段、camera_location_per_eye_x[i]字段、camera_location_per_eye_y[i]字段、camera_location_per_eye_z[i]字段、camera_rotation_per_eye_yaw[i]字段、camera_rotation_per_eye_pitch[i]和/或camera_rotation_per_eye_roll[i]字段。

camera_id[i]字段可以指示用于标识相机的标识号。即,camera_id[i]字段可以表示第i相机的标识符。camera_id[i]字段的值可以用于指示由一个或更多个镜头构成的第i相机。另外,出于特定目的,camera_id[i]字段可以用于指示单个图像或多个图像。单个图像或多个图像可以是与第i相机对应的一个图像或多个图像。例如,camera_id[i]字段可以指示与特定相机位置对应的子图片。另选地,camera_id[i]字段可以指示支持视点/头部位置的双眼视差的子图片对。另选地,camera_id[i]字段可以指示与特定镜头对应的传感器的波长和/或滤色器。

camera_id_type[i]字段可以指示camera_id[i]字段的类型、用例或目的。即,camera_id_type[i]字段可以指示camera_id[i]字段所指示的第i相机的图像的类型、用例或目的。

例如,当camera_id_type[i]字段的值为0时,camera_id_type[i]字段可以指示未指定与camera_id[i]字段对应的子图片的类型(即,由camera_id[i]字段指示的子图片)。

当camera_id_type[i]字段的值为1时,camera_id_type[i]字段可以指示与camera_id[i]字段对应的子图片应该配置视点的球体。换句话说,当camera_id_type[i]字段的值为1时,camera_id_type[i]字段可以指示与camera_id[i]字段对应的子图片是构成视点的球体的图片(例如,在视点的球体上渲染的图片)。这里,视点的球体可以表示视点中的3d空间。在这种情况下,可以处理诸如与视点的观看球体的中心锚点对应的相机位置和方向这样的补充信息,以指示与以上提到的视点不同的视点。

当camera_id_type[i]字段的值为2时,camera_id_type[i]字段可以指示与camera_id[i]字段对应的子图片应该构成头部位置的球体。换句话说,当camera_id_type[i]字段的值为2时,camera_id_type[i]字段可以指示与camera_id[i]字段对应的子图片是构成头部位置的球体的图片(例如,在头部位置的球体上渲染的图片)。这里,头部位置的球体可以表示头部位置处的3d空间。在这种情况下,可以处理诸如与头部位置的观看球体的中心对应的相机位置和方向这样的补充信息,以指示与以上提到的头部位置不同的头部位置。

当camera_id_type[i]字段的值为3时,camera_id_type[i]字段可以指示与camera_id[i]字段对应的子图片应该构成立体视频。换句话说,当camera_id_type[i]字段的值为3时,camera_id_type[i]字段可以指示与camera_id[i]字段对应的子图片是构成立体视频的图片。在这种情况下,可以处理诸如与眼睛视线的观看球体的中心对应的眼睛视线、相机位置和方向这样的补充信息,以指示与以上提到的眼睛视线不同的眼睛视线。camera_id_type[i]字段的4至15的值被保留以备未来使用。

camera_location_per_viewpoint_x[i]字段、camera_location_per_viewpoint_y[i]字段和camera_location_per_viewpoint_z[i]字段可以以2-16毫米为单位指示camera_id[i]字段的视点位置。即,camera_location_per_viewpoint_x[i]字段、camera_location_per_viewpoint_y[i]字段和camera_location_per_viewpoint_z[i]字段可以以2-16毫米为单位指示camera_id[i]字段的视点的x分量、y分量和z分量。视点的位置可以对应于视点锚点的中心位置。例如,视点锚点的中心位置可以是中心头部位置的单位球体中心。camera_location_per_viewpoint_x[i]字段、camera_location_per_viewpoint_y[i]字段和camera_location_per_viewpoint_z[i]字段的值可以在-32768×216-1(即,-2147483647)至32768×216(即,2147483648)的范围内。

camera_rotation_per_viewpoint_yaw[i]字段、camera_rotation_per_viewpoint_pitch[i]字段和camera_rotation_per_viewpoint_roll[i]字段可以以2-16度为单位指示camera_id[i]字段的视点的偏航角、俯仰角和滚转角。偏航角、俯仰角和滚转角可以应用于camera_id[i]字段的视点锚点的单位球体,并且视点锚点的单位球体上的坐标可以从局部坐标轴变换成全局坐标轴。camera_rotation_per_viewpoint_yaw[i]字段的值可以在-180×216(即,-11796480)至180×216-1(即,11796479)的范围内。camera_rotation_per_viewpoint_pitch[i]字段的值可以在-90×216(即,-5898240)至90×216(即,5898240)的范围内。camera_rotation_per_viewpoint_roll[i]字段的值可以在-180×216(即,-11796480)到180×216-1(即,11796479)的范围内。camera_rotation_per_viewpoint_yaw[i]字段、camera_rotation_per_viewpoint_pitch[i]字段和camera_rotation_per_viewpoint_roll[i]字段可以以2-16度为单位指示camera_id[i]字段的视点的方向角、仰角和倾斜角。

camera_location_per_head_position_x[i]字段、camera_location_per_head_position_y[i]字段和camera_location_per_head_position_z[i]字段可以以2-16毫米为单位指示camera_id[i]字段的头部位置的位置。即,camera_location_per_head_position_x[i]字段、camera_location_per_head_position_y[i]字段和camera_location_per_head_position_z[i]字段可以2-16毫米为单位指示camera_id[i]字段的头部位置的x分量、y分量和z分量。头部位置的位置可以对应于头部位置锚点的中心位置。例如,头部位置点的中心位置可以是中心头部位置的单位球体中心。camera_location_per_head_position_x[i]字段、camera_location_per_head_position_y[i]字段和camera_location_per_head_position_z[i]字段的值可以在-32768×216-1(即,-2147483647)至32768×216(即,2147483648)的范围内。

camera_rotation_per_head_position_yaw[i]字段、camera_rotation_per_head_position_pitch[i]字段和camera_rotation_per_head_position_roll[i]字段可以以2-16度为单位指示camera_id[i]字段的头部位置的偏航角、俯仰角和滚转角。偏航角、俯仰角和滚转角可以应用于camera_i[i]字段的头部位置锚点的单位球体,并且头部位置锚点的单位球体上的坐标可以从局部坐标轴变换成全局坐标轴。camera_location_per_head_position_yaw[i]字段的值可以在-180×216(即,-11796480)到180×216-1(即,11796479)的范围内。camera_location_head_position_pitch[i]字段的值可以在-90×216(即,-5898240)至90×216(即,5898240)的范围内。camera_location_per_head_position_roll[i]字段的值可以在-180×216(即,-11796480)到180×216-1(即,11796479)的范围内。camera_rotation_per_head_position_yaw[i]字段、camera_rotation_per_head_position_pitch[i]字段和camera_rotation_per_head_position_roll[i]字段可以以2-16度为单位指示camera_id[i]字段的视点的方向角、仰角和倾斜角。

left_eye_view_flag[i]字段可以指示与camera_id[i]字段对应的子图片是左眼视图还是右眼视图。例如,当left_eye_view_flag[i]字段的值为1时,left_eye_view_flag[i]字段可以指示与camera_id[i]字段对应的子图片是左眼视图。当left_eye_view_flag[i]字段的值为0时,left_eye_view_flag[i]字段可以指示与camera_id[i]字段对应的子图片是右眼视图。

camera_location_per_eye_x[i]字段、camera_location_per_eye_y[i]字段和camera_location_per_eye_z[i]字段可以以2-16毫米为单位指示camera_id[i]字段的眼睛视线的位置。即,camera_location_per_eye_x[i]字段、camera_location_per_eye_y[i]字段和camera_location_per_eye_z[i]字段可以2-16毫米为单位指示camera_id[i]字段的眼睛视线的x分量、y分量和z分量。眼睛视线可以对应于左眼或右眼的单位球体。camera_location_per_eye_x[i]字段、camera_location_per_eye_y[i]字段和camera_location_per_eye_z[i]字段的值可以在-32768×216-1(即,-2147483647)至32768×216(即,2147483648)的范围内。

camera_rotation_per_eye_yaw[i]字段、camera_rotation_per_eye_pitch[i]字段和camera_rotation_per_eye_roll[i]字段可以以2-16度为单位指示camera_id[i]字段的眼睛视线的偏航角、俯仰角和滚转角。偏航角、俯仰角和滚转角可以应用于camera_id[i]字段的眼睛视线的单位球体,并且眼睛视线的单位球体上的坐标可以从局部坐标轴变换成全局坐标轴。camera_rotation_per_eye_yaw[i]字段的值可以在-180×216(即,-11796480)到180×216-1(即,11796479)的范围内。camera_rotation_eye_pitch[i]字段的值可以在-90×216(即,-5898240)至90×216(即,5898240)的范围内。camera_rotation_per_eye_roll[i]字段的值可以在-180×216(即,-11796480)到180×216-1(即,11796479)的范围内。camera_rotation_per_eye_yaw[i]字段、camera_rotation_per_eye_pitch[i]字段和camera_rotation_per_eye_roll[i]字段可以以2-16度为单位指示camera_id[i]字段的视点的方向角、仰角和倾斜角。

参照表2,camera_lens_information可以包括num_subpicture_minus1字段、scene_radius_flag[i]字段、local_sphere_center_offset_flag[i]字段、local_sphere_rotation_flag[i]字段、lens_distortion_correction_flag[i]字段和/或num_minera_idx_minus1字段。

通过将num_subpicture_minus1字段的值加上1而获得的值可以指示编码图片的子图片的数目。

scene_radius_flag[i]字段、local_sphere_center_offset_flag[i]字段、local_sphere_rotation_flag[i]字段和lens_distortion_correction_flag[i]字段可以指示在相机镜头信息中是否存在用于每个字段的字段。

具体地,scene_radius_flag[i]字段可以指示在相机镜头信息中是否存在关于第(i+1)子图片的圆形区域的信息。换句话说,scene_radius_flag[i]字段可以指示在相机镜头信息中是否存在用于第(i+1)子图片的scene_radius[i]字段。这里,第(i+1)子图片可以是编码图片中的第(i+1)圆形区域。另外,第(i+1)圆形区域的圆形区域可以表示在第(i+1)圆形区域中不可见诸如相机主体这样的障碍物的区域。例如,当scene_radius_flag[i]字段的值为1时,scene_radius_flag[i]字段可以指示在相机镜头信息中存在第(i+1)圆形区域的scene_radius[i]字段。当scene_radius_flag[i]字段的值为0时,scenic_radius_flag[i]字段可以指示相机镜头信息中不存在第(i+1)圆形区域的scene_radius[i]字段。随后,将详细地描述scene_radius[i]字段。

local_sphere_center_offset_flag[i]字段可以指示在相机镜头信息中是否存在关于第i圆形区域的相机镜头的焦点中心的偏移信息。换句话说,local_sphere_center_offset_flag[i]字段可以指示相机镜头信息中是否存在第(i+1)圆形区域的local_sphere_center_offset_x[i]字段、local_sphere_center_offset_y[i]字段和local_sphere_center_offset_z[i]字段。例如,当local_sphere_center_offset_flag[i]字段的值为1时,local_sphere_center_offset_flag[i]字段可以指示相机镜头信息中存在第(i+1)圆形区域的的local_sphere_center_offset_x[i]字段、local_sphere_center_offset_y[i]字段和local_sphere_center_offset_z[i]字段。当local_sphere_center_offset_flag[i]字段的值为0时,local_sphere_center_offset_flag[i]字段可以指示相机镜头信息中不存在第(i+1)圆形区域的的local_sphere_center_offset_x[i]字段、local_sphere_center_offset_y[i]字段和local_sphere_center_offset_z[i]字段。随后,将详细描述local_sphere_center_offset_x[i]字段、local_sphere_center_offset_y[i]字段和local_sphere_center_offset_z[i]字段。

local_sphere_rotation_flag[i]字段可以指示在相机镜头信息中是否存在关于与裁剪后的输出图片的第(i+1)圆形区域的中心点对应的球体区域的球坐标的信息。换句话说,local_sphere_rotation_flag[i]字段可以指示相机镜头信息中是否存在第(i+1)圆形区域的local_sphere_center_azimuth[i]字段、local_sphere_center_elevation[i]字段和local_sphere_center_tilt[i]字段。例如,当local_sphere_rotation_flag[i]字段的值为1时,local_sphere_rotation_flag[i]字段可以指示相机镜头信息中存在第(i+1)圆形区域的local_sphere_center_azimuth[i]字段、local_sphere_center_elevation[i]字段和local_sphere_center_tilt[i]字段。当local_sphere_rotation_flag[i]字段的值为0时,local_sphere_rotation_flag[i]字段可以指示相机镜头信息中不存在第(i+1)圆形区域的的local_sphere_center_azimuth[i]字段、local_sphere_center_elevation[i]字段和local_sphere_center_tilt[i]字段。随后,将详细描述local_sphere_center_azimuth[i]字段、local_sphere_center_elevation[i]字段和local_sphere_center_tilt[i]字段。

lens_distortion_correction_flag[i]字段可以指示在相机镜头信息中是否存在关于第(i+1)圆形区域的相机镜头变形相关信息。换句话说,lens_distortion_correction_flag[i]字段可以指示相机镜头信息中是否存在第(i+1)圆形区域的num_angle_correction_minus1[i]字段、angle_correction[i][j]字段、num_polynomial_coeff_correction_minus1[i][j]和polynomial_coeff_correction[i][j][k]字段。例如,当lens_distortion_correction_flag[i]字段的值为1时,lens_distortion_correction_flag[i]字段可以指示相机镜头信息中存在第(i+1)圆形区域的num_angle_correction_minus1[i]字段、angle_correction[i][j]字段、num_polynomial_coeff_correction_minus1[i][j]和polynomial_coeff_correction[i][j][k]字段。当lens_distortion_correction_flag[i]字段的值为0时,lens_distortion_correction_flag[i]字段可以指示相机镜头信息中不存在第(i+1)圆形区域的num_angle_correction_minus1[i]字段、angle_correction[i][j]字段、num_polynomial_coeff_correction_minus1[i][j]字段和polynomial_coeff_correction[i][j][k]字段。随后,将详细地描述num_angle_correction_minus1[i]字段、angle_correction[i][j]字段、num_polynomial_coeff_correction_minus1[i][j]字段和polynomial_coeff_correction[i][j][k]字段。

通过将num_camera_idx_minus1字段的值加上1而获得的值可以指示参照第i子图片的相机标识符的数目。另选地,通过将num_camera_idx_minus1字段的值加上1而获得的值可以指示参照第(i+1)子图片的相机标识符的数目。这里,第(i+1)子图片可以是第(i+1)圆形区域。

参照表2,camera_lens_information可以包括camera_idx[i][j]field,circular_region_center_x[i]字段、circular_region_center_y[i]字段、rect_region_top[i]字段、rect_region_left[i]字段、rect_region_width[i]字段、rect_region_height[i]字段、full_radius[i]字段、scene_radius[i]字段、local_sphere_rotation_azimuth[i]字段、local_sphere_rotation_elevation[i]字段、local_sphere_center_offset_x[i]字段、local_sphere_center_offset_y[i]字段、local_sphere_center_offset_z[i]字段、field_of_view[i]字段、lens_projection_type[i]字段、scaling_factor[i]字段、num_angle_projection_minus1[i]字段、angle_projection[i][j]字段、num_polynomial_coeff_projection_minus1[i][j]字段、polynomial_coeff_projection[i][j][k]字段、num_angle__correction_minus1[i]字段、angle_correction[i][j]字段、num_polynomial_coeff_correction_minus1[i][j]字段、polynomial_coeff_correction[i][j][k]字段和/或redial_distortion_type[i]字段。

camera_idx[i][j]字段可以指示存在于相机镜头信息sei消息中的camera_id的第i子图片的第j相机指示符。另选地,camera_idx[i][j]字段可以指示在相机镜头信息sei消息中存在的camera_id的第(i+1)子图片的第(j+1)相机指示符。这里,第(i+1)子图片可以是第(i+1)圆形区域。

circle_region_center_x[i]字段和circular_region_center_y[i]字段可以指示以2-16亮度样本为单位编码的图片中的第(i+1)圆形区域的中心点。即,circular_region_center_x[i]字段和circular_region_center_y[i]字段可以以2-16个亮度样本为单位指示第(i+1)圆形区域的中心点的水平坐标(x分量)和垂直坐标(y分量)。round_region_center_x[i]字段和circle_region_center_y[i]字段的值可以在0至65536×216-1(即,4294967295)的范围内。

rect_region_top[i]字段、rect_region_left[i]字段、rect_region_width[i]字段和rect_region_height[i]字段可以以亮度样本为单位指示左上角位置(左上角的位置)、包括的第(i+1)圆形区域的第(i+1)矩形区域的宽度和高度。rect_region_top[i]字段、rect_region_left[i]字段、rect_region_width[i]字段和rect_region_height[i]字段可以以亮度样本为单位指示左上角位置的水平坐标(x分量)和垂直坐标(y分量)以及第(i+1)矩形区域的宽度和高度。

full_radius[i]字段可以指示第(i+1)圆形区域的半径。第(i+1)圆形区域的半径可以被定义为从第(i+1)圆形区域的中心点到最外样本边界的长度。可以以2-16亮度样本为单位用circular_region_center_x[i]字段和circular_region_center_y[i]字段指示中心点。另外,第(i+1)圆形区域的半径可以对应于field_of_view[i]字段所指示的第(i+1)圆形区域的第(i+1)镜头的最大视场。另选地,半径可以对应于field_of_view[i]字段所指示的第i圆形区域的第i镜头的最大视场。full_radius[i]字段的值可以在0至65536×216-1(即,4294967295)的范围内。

第(i+1)圆形区域的实际样本区域可以被定义为与基于rect_region_top[i]字段、rect_region_left[i]字段rect_region_width[i]字段、rect_region_height[i]字段推导出的矩形区域与基于circular_region_center_x[i]字段、circular_region_center_y[i]字段和full_radius[i]字段推导出的圆形区域的内部交集对应的区域。

scene_radius[i]字段可以指示第(i+1)圆形区域中的圆形区域的半径。这里,第(i+1)圆形区域中的圆形区域可以表示在第(i+1)圆形区域中不可见的诸如相机主体这样的障碍物的区域。可以通过以2-16亮度样本为单位的scene_radius[i]字段指示第(i+1)圆形区域中的圆形区域的半径。另外,scene_radius[i]字段的值可以小于或等于full_radius[i]字段的值,并且可以在0至65536×216-1(即,4294967295)的范围内。圆形区域可以是由内容供应商提出的、在拼接过程中使用的区域。

local_sphere_rotation_azimuth[i]字段和local_sphere_rotation_elevation[i]字段可以指示与裁剪后的输出图片的第(i+1)圆形区域的中心点对应的球体区域的球坐标。换句话说,local_sphere_rotation_azimuth[i]字段可以指示与第(i+1)圆形区域的中心点对应的球体区域的球坐标的方向角,并且local_sphere_rotation_elevation[i]字段可以指示与第(i+1)圆形区域的中心点对应的球体区域的球坐标的仰角。这里,local_sphere_rotation_azimuth[i]字段和local_sphere_rotation_elevation[i]字段可以以2-16度为单位指示与中心点对应的球体区域的球坐标的方向角和仰角。local_sphere_rotation_azimuth[i]字段的值可以在-180×216(即,-11796480)到180×216-1(即,11796479)的范围内。另外,local_sphere_rotation_elevation[i]字段的值可以在-90×216(即,-5898240)至90×216(即,5898240)的范围内。

local_sphere_rotation_tilt[i]字段可以指示与第(i+1)圆形区域的中心点对应的球体区域的球坐标的倾斜角。这里,local_sphere_rotation_tilt[i]字段可以以2-16度为单位指示与中心点对应的球体区域的球坐标的倾斜角。local_sphere_rotation_tilt[i]字段的值可以在-180×216(即,-11796480)到180×216-1(即,11796479)的范围内。

local_sphere_center_offset_x[i]字段、local_sphere_center_offset_y[i]字段和local_sphere_center_offset_z[i]字段可以指示第(i+1)圆形区域的相机镜头焦点中心的偏移。可以通过基于整个相机配置的焦点中心原点的偏移来指示相机镜头的焦点中心。换句话说,local_sphere_center_offset_x[i]字段可以指示第(i+1)圆形区域的相机镜头的焦点中心的x偏移,并且local_sphere_center_offset_y[i]字段可以指示第(i+1)圆形区域的相机镜头的焦点中心的y偏移,并且local_sphere_center_offset_z[i]字段可以指示第(i+1)圆形区域的相机镜头的焦点中心的z偏移。这里,local_sphere_center_offset_x[i]字段、local_sphere_center_offset_y[i]字段和local_sphere_center_offset_z[i]字段可以以2-16毫米为单位指示相机镜头的焦点中心的x偏移、y偏移和z偏移。local_sphere_center_offset_x[i]字段、local_sphere_center_offset_y[i]字段和local_sphere_center_offset_z[i]字段的值可以在0至65536×216-1(即,4294967295)的范围内。

在生成360度视频时,local_sphere_center_offset_x[i]字段、local_sphere_center_offset_y[i]字段和local_sphere_center_offset_z[i]字段可以指示单位球体的球心的xyz位置。可以基于单位球体的球心映射第(i+1)子图片(第(i+1)圆形区域),并且可以提供拼接成单位球体的360度视频。当不存在local_sphere_center_offset_x[i]字段、local_sphere_center_offset_y[i]字段和local_sphere_center_offset_z[i]字段时,可以推导出local_sphere_center_offset_x[i]字段、local_sphere_center_offset_y[i]字段和local_sphere_offset_i的值为0。

field_of_view[i]字段可以指示编码图片的第(i+1)圆形区域的球形域覆盖范围。这里,field_of_view[i]字段可以以2-16度为单位指示球形域覆盖范围。field_of_view[i]字段的值可以在0至360×2-16的范围内。

lens_projection_type[i]字段可以指示第(i+1)圆形区域的镜头投影的类型。例如,当lens_projection_type[i]字段的值为0时,lens_projection_type[i]字段可以指示未指定第(i+1)圆形区域的镜头投影的类型。当lens_projection_type[i]字段的值为1时,lens_projection_type[i]字段可以指示用于第(i+1)圆形区域的镜头投影的类型是透视投影。当lens_projection_type[i]字段的值为2时,lens_projection_type[i]字段可以指示第(i+1)圆形区域的镜头投影的类型是立体投影。当lens_projection_type[i]字段的值为3时,lens_projection_type[i]字段可以指示第(i+1)圆形区域的镜头投影的类型是等距投影。当lens_projection_type[i]字段的值为4时,lens_projection_type[i]字段可以指示用于第(i+1)圆形区域的镜头投影的类型是正弦定律投影。当lens_projection_type[i]字段的值为5时,lens_projection_type[i]字段可以指示第(i+1)圆形区域的镜头投影的类型是等立体角投影。当lens_projection_type[i]字段的值为255时,lens_projection_type[i]字段可以指示第(i+1)圆形区域的镜头投影的类型是角多项式投影。lens_projection_type[i]字段的6至254的值被保留以备未来使用。

图12示例性示出了径向投影功能。径向投影函数可以代表上述镜头投影的类型。

scale_factor[i]字段可以以2-8为单位指示第(i+1)镜头投影类型的比例因子。第(i+1)镜头投影类型可以指示第(i+1)圆形区域的镜头投影类型。field_of_view[i]字段的值可以在0至256×2-8-1的范围内。

通过将num_angle_projection_minus1[i]字段的值加上1而获得的值可以指示用于指示第(i+1)圆形区域的投影函数的角方向的角度值的数量。当num_angle_projection_minus1[i]字段的值为0时,num_angle_projection_minus1[i]字段可以指示针对第(i+1)圆形区域的球坐标投影函数的圆形区域中的亮度样本被假定为相对于所有角度值是对称的。

angle_projection[i][j]字段可以指示用于指示第(i+1)圆形区域的第(j+1)多项式函数的方向的角度值。即,angle_projection[i][j]字段可以指示第(i+1)圆形区域的第(j+1)角度值。这里,angle_projection[i][j]字段可以以2-7度为单位指示角度值。angle_projection[i][j]字段的值可以在0至360×27-1的范围内。

通过将num_polynomial_coeff_projection_minus1[i][j]字段的值加上1而获得的值可以指示与第(i+1)圆形区域中的第(j+1)角度值对应的第(j+1)镜头变形校正函数的多项式系数的数量。这里,第(j+1)镜头变形校正函数可以表示第(j+1)多项式函数。多项式函数可以被表示为角度曲线函数变换。

polynomial_coeff_projection[i][j][k]字段指示亮度样本和第(i+1)圆形区域中的中心点之间的径向距离的第(j+1)角度曲线函数变换的第k多项式系数的值。另选地,polynomial_coeff_projection[i][j][k]字段可以指示亮度样本和第(i+1)圆形区域中的中心点之间的径向距离的第(j+1)角度曲线函数变换的第(k+1)多项式系数的值。第(k+1)多项式系数的值可以是基于full_radius[i]字段而归一化的值,并且可以是与亮度样本和中心点对应的向量之间的角度值。另外,亮度样本和中心点可以由原点与第(i+1)圆形区域中的镜头的焦点对应的球坐标表示。polynomial_coeff_projection[i][j][k]字段的值可以在-128×224(即,2147483648)到128×224-1(即,2147483647)的范围内。

通过将num_angle_correction_minus1[i]字段的值加上1而获得的值可以指示用于指示第(i+1)圆形区域的镜头变形校正函数的角方向的角度值的数量。当num_angle_correction_minus1[i]字段的值为0时,num_angle_correction_minus1[i]字段可以指示针对第(i+1)圆形区域的镜头变形校正函数的圆形区域中的亮度样本被假定为相对于所有角度值是对称的。

angle_correction[i][j]字段可以指示角度值,该角度值表示从(i+1)圆形区域的第(j+1)镜头变形校正函数的第(i+1)圆形区域的中心点到边界的方向。即,angle_correction[i][j]字段可以指示第(i+1)圆形区域的第(j+1)角度值。这里,angle_correction[i][j]字段可以以2-7度为单位指示角度值。angle_correction[i][j]字段的值可以在0至360×27-1的范围内。

通过将num_polynomial_coeff_correction_minus1[i][j]字段的值加上1而获得的值可以指示与第(i+1)圆形区域中的第(j+1)角度值对应的第(j+1)镜头变形校正函数的多项式系数的数量。

polynomial_coeff_correction[i][j][k]字段可以以2-24个亮度样本为单位指示第(i+1)圆形区域的第(j+1)镜头变形校正函数的第k多项式系数的值。另选地,polynomial_coeff_correction[i][j][k]字段可以以2-24个亮度样本为单位指示第(i+1)圆形区域的第(j+1)镜头变形校正函数的第(k+1)多项式系数的值。polynomial_coeff_correction[i][j][k]字段的值可以在-128×224(即,2147483648)到128×224-1(即,2147483647)的范围内。

radial_distortion_type[i]字段可以指示第(i+1)圆形区域的镜头径向变形的类型。例如,当radial_distortion_type[i]字段的值为0时,radial_distortion_type[i]字段可以指示未指定第(i+1)圆形区域的镜头径向变形的类型。当radial_distortion_type[i]字段的值为1时,radial_distortion_type[i]字段可以指示第(i+1)圆形区域的镜头径向变形的类型是桶形变形。当radial_distortion_type[i]字段的值为2时,radial_distortion_type[i]字段可以指示第(i+1)圆形区域的镜头径向变形的类型是枕形变形。当radial_distortion_type[i]字段的值为3时,radial_distortion_type[i]字段可以指示第(i+1)圆形区域的镜头径向变形的类型是胡子变形。radial_distortion_type[i]字段的值4至254被保留以备未来使用。

图13示例性示出了各种类型的径向变形。根据用于捕获的镜头,圆形图像中可能出现不同类型的径向变形,并且图10可以示出各种类型的径向变形。图13中的(a)可以示出桶形变形,图13中的(b)可以示出枕形变形,并且图13中的(c)可以示出胡子变形。

可以基于布朗变形(brown'sdistortion)模型或布朗-康拉迪(brow-conrady)模型来校正圆形图像的径向变形。另外,基于布朗-康拉迪模型,可以校正因镜头的物理元件的不完好对准引起的径向变形和切向变形。切向变形也可以称为偏心变形。

可以如下式地推导校正圆形图像的径向变形的过程。

[式1]

xu=xd+(xd-xc)(k1r2+k2r4+…)+(p1(r2+2(xd-xc)2)+2p2(xd-xc)(yd-yc))(1+p3r2+p4r4…)

yu=yd+(yd-yc)(k1r2+k2r4+…)+(2p1(xd-xc)(yd-yc)+p2(r2+2(yd-yc)2))(1+p3r2+p4r4…),

通过校正变形的过程,圆形图像的坐标样本(xd,yd)可以移位到基于该式推导出的坐标(xu,yu)。由此,可以消除圆形图像的变形。

这里,r可以表示变形的像点与变形中心之间的距离,xd和yd可以表示使用所设计镜头将360度视频投影到其上的图片的变形像点的x分量和y分量。这里,xu和yu可以表示使用理想的针孔相机将360度视频投影到其上的图片的未变形像点的x和y分量。另外,xc和yc可以表示变形中心的x分量和y分量。变形中心可以被假定是主点。kn可以表示第n径向变形系数,而pn可以表示第n切向变形系数。可以基于圆形图像的径向变形的类型来推导径向变形系数和切向变形系数。

这里,可以用下式来推导r。

[式2]

当存在未映射到球坐标的图像时,上述径向变形相关信息可以用于校正2d域的变形。

随后,将描述将圆形区域的样本位置变换成全局坐标轴的球面坐标的过程。可以向从i等于0的圆形区域到i等于num_subpictures_minus1字段的值的圆形区域的圆形区域顺序地应用随后将描述的变换过程。另选地,可以向从i等于0的圆形区域到i等于特定值的圆形区域的圆形区域顺序地应用变换过程。特定值可以是与由camera_idx[i][j]字段指示的子图片对应的圆形区域的数量。

变换过程的输入可以如下:

-以亮度样本为单位的样本位置(x,y);

-基于以2-16个亮度样本为单位的circular_region_center_x[i]字段和circular_region_center_y[i]字段而推导出的第i图像(或第(i+1)圆形区域)的中心点位置(xc,yc)以及基于full_radius[i]字段而推导出的第i圆形图像(或第(i+1)圆形区域)的半径rc;

-与基于以2-16度为单位的field_of_view[i]字段而推导出的第i圆形区域(或第(i+1)圆形区域)对应的镜头的fov(视场)θv;

-基于以2-16度为单位的local_sphere_center_azimuth[i]字段、local_sphere_center_elevation[i]字段和local_sphere_center_tilt[i]字段而推导出的旋转参数αc、βc和γc;以及

-针对角方向ωj的以2-24度为单位的第(i+1)圆形区域的多项式系数n、镜头投影类型m、比例因子σ和多项式系数pk(ωj)的数量。

变换过程的输出可以如下:

-针对样本位置(x,y)的全局坐标轴的球坐标位置

如下表中所示,可以执行将第(i+1)圆形区域中的样本位置变换成球坐标系中的位置的过程。变换过程可以被表示为将第(i+1)圆形区域映射到球坐标的过程。

[表3]

这里,可以如下表中所示基于lens_projection_type[i]字段来推导的方程。

[表4]

另选地,可以如下基于插值函数f用的角方向θ'和最近角方向推导出

[式3]

φ′=f(φ′(ωj),φ′(ωj-1))

ωj和ωj+1可以表示角方向θ’的最接近角方向,并且θ’可以大于ωj并小于ωj+1。

参考上表1,sei消息可以包括与补充相机镜头信息对应的supplemental_camera_lens_information。

可以如下表中所示地推导supplemental_camera_lens_information。

[表5]

参照表5,supplemental_camera_lens_information可以包括num_circular_images字段。

num_circular_images字段可以指示对其应用supplemental_camera_lens_information的编码图片的圆形图像的数量。例如,num_circular_images字段的值可以为2。另选地,num_circular_images字段的值可以为除了2之外的非零值。这里,num_circular_images字段可以被称为num_subpictures字段,并且圆形图像可以被称为圆形区域或子图片。

参照表5,信息可以包括num_camera_idx_minus1字段、camera_idx[i][j]字段、image_flip[i]字段、image_scale_axis_angle[i]字段、image_scale_x[i]字段、image_scale_y[i]字段、num_angle_for_displaying_fov[i]字段、displayed_fov[i][j]字段、overlapped_fov[i][j]字段、num_local_fov_region[i]字段、start_radius[i][j]字段、end_radius[i][j]字段、start_angle[i][j]字段、end_angle[i][j]字段、radius_delta[i][j]字段、angle_delta[i][j]字段、local_fov_weight[i][j][k][l]字段、num_polynomial_coefficients_lsc[i]字段、polynomial_coefficient_k_lsc_r[i][j]字段、polynomial_coefficient_k_lsc_g[i][j]字段、polynomial_coefficient_k_lsc_b[i][j]字段、num_deadzones字段、deadzone_left_horizontal_offset[i]字段、deadzone_top_vertical_offset[i]字段、deadzone_width[i]字段和/或deadzone_height[i]字段。

通过将num_camera_idx_minus1字段的值加上1而获得的值可以指示参照第i子图片的相机标识符的数目。另选地,通过将num_camera_idx_minus1字段的值加上1而获得的值可以指示参照第(i+1)子图片的相机标识符的数目。这里,第(i+1)子图片可以是第(i+1)圆形区域。

camera_idx[i][j]字段可以指示存在于相机镜头信息sei消息中的camera_id的第i子图片的第j相机指示符。另选地,camera_idx[i][j]字段可以指示在相机镜头信息sei消息中存在的camera_id的第(i+1)子图片的第(j+1)相机指示符。这里,第(i+1)子图片可以是第(i+1)圆形区域。

image_flip[i]字段可以指示第(i+1)圆形区域是否被翻转以及如何被翻转。因此,image_flip[i]字段可以指示在拼接过程和/或渲染过程中是否应该向第(i+1)圆形区域应用反向翻转操作。例如,当image_flip[i]字段的值为0时,image_flip[i]字段可以指示第(i+1)圆形区域未被翻转。当image_flip[i]字段的值为1时,image_flip[i]字段可以指示第(i+1)圆形区域被垂直翻转。当image_flip[i]字段的值为2时,image_flip[i]字段可以指示第(i+1)圆形区域被水平翻转。当image_flip[i]字段的值为3时,image_flip[i]字段可以指示第(i+1)圆形区域被垂直和水平地翻转。

image_scale_axis_angle[i]字段、image_scale_x[i]字段和image_scale_y[i]字段可以指示是否以及如何沿着特定轴缩放第(i+1)圆形区域的大小。image_scale_axis_angle[i]字段、image_scale_x[i]字段和image_scale_y[i]字段的值可以是固定点16。image_scale_axis_angle[i]字段、image_scale_x[i]字段和image_scale_y[i]字段可以用于考虑相机镜像设置中的自然误差。特定轴可以被定义为image_scale_axis_angle[i]字段的值所指示的单个角度。单个角度的单位可以是度。例如,当单个角度为0时,这可以指示水平向量可以完好地水平,并且垂直向量可以完好地垂直。image_scale_x[i]字段和image_scale_y[i]字段可以指示缩放。image_scale_axis_angle[i]字段、image_scale_x[i]字段和image_scale_y[i]字段可以被称为仿射参数,并且可以满足下式。

[式4]

式4是数学表达式,表示实际样本坐标(u,v)与理想样本坐标(un,vn)之间的关系,其中,cx和cy分别表示值image_center_x[i]字段和image_center_y[i]字段的值。另外,c、d和e分别表示image_scale_x[i]字段、image_scale_axis_angle[i]字段和image_scale_y[i]字段的值。

num_angle_for_displaying_fov[i]字段可以指示定义显示区域和交叠区域的角度的数值。基于num_angle_for_displaying_fov[i]字段的值,可以按恒定间隔定义display_fov[i][j]字段和overlayped_fov[i][j]字段的值。displayed_fov[i][j]字段和overlapped_fov[i][j]字段的值可以被定义为从12点开始并顺时针增加。

display_fov[i][j]字段可以指示推荐在不与第(i+1)圆形区域中的相邻圆形区域混合的情况下显示的区域。

overlayped_fov[i][j]字段可以指示与第(i+1)圆形区域的球面上的相邻圆形区域交叠的视场(fov)。overlayped_fov[i][j]字段所指示的fov可以指定相邻圆形区域和待显示fov中的一个、或者通过与相邻圆形区域混合而推荐显示的区域。

num_local_fov_region[i]字段可以指示具有不同视场(fov)的第(i+1)圆形区域的局部拟合区域的数量。

start_radius[i][j]字段、end_radius[i][j]字段、start_angle[i][j]字段和end_angle[i][j]字段可以指示局部拟合/弯曲的第(j+1)区域。局部拟合/弯曲可以指示改变用于局部显示的实际fov。start_radius[i][j]字段和end_radius[i][j]字段的值可以是固定点16。start_radius[i][j]字段可以指示第(j+1)区域的最小半径值,并且end_radius[i][j]字段可以指示第(j+1)区域的最大半径值。start_angle[i][j]字段和end_angle[i][j]字段可以指示从第(j+1)区域的12点开始并顺时针增大的最小角度值和最大角度值。这里,start_angle[i][j]字段和end_angle[i][j]字段可以以2-16度为单位指示角度值。start_angle[i][j]字段和end_angle[i][j]字段的值可以在-180×216到180×216-1的范围内。

radius_delta[i][j]字段可以指示代表每个半径的不同fov的增量半径值。radius_delta[i][j]字段可以是固定点16。

angle_delta[i][j]字段可以指示用于代表每个角度的不同fov的增量角度值。start_angle[i][j]字段和angle_delta[i][j]字段可以以2-16度为单位指示增量角度值。

local_fov_weight[i][j][k][l]字段可以指示角度索引i和半径索引j所指定的位置的fov(即,基于start_radius[i][j]字段、end_radius[i][j]字段、start_angle[i][j]字段和end_angle[i][j]字段而推导出的位置的fov)的权重值。local_fov_weight[i][j][k][l]字段的值可以是8.24固定点形式。local_fov_weight[i][j][k][l]字段的正值可以指示fov的扩展,而local_fov_weight[i][j][k][l]字段的负值可以指示fov的收缩。

num_polynomial_coefficients_lsc[i]字段可以指示第(i+1)圆形区域的镜头阴影补偿(lsc)参数的多项式系数的数量。

多项式_系数_k_lsc_r[i][j]字段、多项式_系数_k_lsc_g[i][j]字段和多项式_系数_k_lsc_b[i][j]字段可以指示抑制了径向方向上的颜色的用于补偿镜头(例如,鱼眼镜头)的阴影伪影的lsc参数(阴影补偿)。polynomial_coefficient_k_lsc_r[i][j]字段、polynomial_coefficient_k_lsc_g[i][j]字段和polynomial_coefficient_k_lsc_b[i][j]字段的值可以采取8.24固定点格式。原始颜色要乘以的补偿权重可以通过曲线函数来逼近。可以使用下式来推导代表补偿权重的曲线函数。

[式5]

这里,r可以表示归一化半径。换句话说,r可以表示基于full_radius[i]字段归一化的第(i+1)圆形区域的中心处的半径。

p可以表示lsc参数。这里,polynomial_coefficient_k_lsc_r[i][j]字段、polynomial_coefficient_k_lsc_g[i][j]字段和polynomial_coefficient_k_lsc_b[i][j]字段可以分别指示针对红色的lsc参数、针对绿色的lsc参数以及针对蓝色的lsc参数。在这种情况下,可以分别计算红色的权重因子、绿色的权重因子和蓝色的权重因子。

可以推导出n是num_polynomial_coefficients_lsc[i]字段的值。即,n可以指示第(i+1)圆形区域的lsc参数的多项式系数的数值。

display_fov[i][j]字段和overlayped_fov[i][j]字段的值可以小于或等于field_of_view[i]字段的值。可以由每个镜头的物理属性来确定field_of_view[i]字段的值,而可以由多个镜头的配置来确定display_fov[i][j]字段和overlapped_fov[i][j]字段的值。例如,当num_circular_images字段的值为2并且两个镜头被对称设置时,display_fov[i][j]字段和overlayped_fov[i][j]字段的值可以被默认地设置为180和190。然而,display_fov[i][j]字段和overlayped_fov[i][j]字段的值可以根据镜头的配置和360度视频内容的特性而变化。例如,如果具有displayed_fov值(例如,对于左相机,170;而对于右相机,190)和overlapped_fov值(例如,对于左相机,185;对于右相机,190)的值的拼接质量优于具有displayed_fov默认值和overlapped_fov默认值(即,180和190)的质量,或者如果相机的物理配置不对称,则可以推导display_fov字段和overlapped_fov字段的不相等值。另外,在n(n>2)个图像(即,圆形区域)的情况下,不能通过display_fov字段的单个值来指定每个图像的确切区域。即,displayed_fov字段可以根据方向而变化。因此,为了控制n个图像,可以引入上述num_angle_for_displaying_fov[i]字段。例如,当num_angle_for_displaying_fov[i]字段的值为12时,图像可以被划分成12个扇区。每个扇区的角度可以是30度。

num_deadzones字段可以指示编码图片中的盲区的数量。盲区可以是指包含编码图片的未使用样本的矩形区域,即,360度视频未被映射到的矩形区域。

deadzone_left_horizontal_offset[i]字段和deadzone_top_vertical_offset[i]字段可以指示对应盲区的左上位置(左上点的位置)。deadzone_width[i]字段可以指示盲区的宽度,并且deadzone_height[i]字段可以指示盲区的高度。为了减少360度视频的比特量,盲区中的所有样本可以被设置为相同的样本值。例如,盲区中的所有样本可以被设置为指示黑色的样本值。

也可以在上述的相机镜头信息sei消息或补充相机镜头信息sei消息中定义诸如相机或镜头的焦距(fx,fy)、主点(cx,cy)和偏斜系数skew_c这样的相机固有参数以及诸如旋转参数和平移参数这样的相机非固有参数。

图14例示了通过相机镜头捕获360度视频的示例。参照图14中的(a)和图14中的(b),可以根据相机或镜头的焦距来推导所捕获的360度视频。可以在像平面的位置(fxxc/zc,fyyc/zc)处捕获坐标(xc,yc,zc)处的样本,并且可以推导出标准化样本的位置是通过将像平面的位置除以焦距而获得的(xc/zc,yc/zc)。标准化像平面可以表示距相机或镜头的焦点的焦距为1的位置处的像平面。

图14中的(c)可以例示以特定角度倾斜地捕获的360度视频的样本。可以基于上述偏斜系数skew_c来推导表示倾斜程度的特定角度。例如,可以使用下式来推导偏斜系数。

[式6]

如上所述的相机镜头信息和/或补充相机镜头信息可以以盒的形式在如上所述的isobmff文件中传送。可以基于isobmff文件存储和发送360视频数据,并且相机镜头信息和/或补充相机镜头信息可以以盒的形式在isobmff文件中传送。

根据实施方式,可以针对通过对应的视频轨道(流)、样本、样本组等存储/传送的360度视频数据发信号通知相机镜头信息和/或补充相机镜头信息的盒。根据实施方式,可以在对应360度视频数据被存储/发送到的轨道的视觉样本条目下方布置相机镜头信息和/或补充相机镜头信息的盒。根据实施方式,可以通过诸如cff这样的格式传送视频信息。

作为示例,相机镜头信息和/或补充相机镜头信息的盒可以包括seinal单元。另外,作为示例,相机镜头信息和/或补充相机镜头信息的盒可以被包括在与对应的360度视频信息关联的visualsampleentry、avcsampleentry、mvcsampleentry、svcsampleentry、hevcsampleentry等中。

根据实施方式,相机镜头信息和/或补充相机镜头信息的盒可以被包括在根据区域提供相关信息的sei或视频可用性信息(vui)中。因此,可以针对文件格式中所包括的视频帧的每个区域提供不同的信令信息。

根据实施方式,相机镜头信息和/或补充相机镜头信息的盒可以在定时元数据中被传送。

当在定时元数据中传送的相机镜头信息和/或补充相机镜头信息的内容等同地应用于所有视频样本时,相机镜头信息和/或补充相机镜头信息的盒可以被包括在定时元数据轨道的头(诸如,moov或moof盒)中的样本条目中。

另选地,当需要根据视频样本不同地应用通过定时元数据传送的相机镜头信息和/或补充相机镜头信息的内容时,相机镜头信息和/或补充相机镜头信息的盒可以被包括在定时元数据样本中。在这种情况下,相机镜头信息和/或补充相机镜头信息的盒的字段可以被应用于对应的视频样本。

另选地,当应该向整个视频序列应用通过定时元数据传送的相机镜头信息和/或补充相机镜头信息的内容时,相机镜头信息和/或补充相机镜头信息的盒可以被包括在如上所述的定时元数据轨道的样本条目中,但是盒的信息(字段)可以被应用于整个视频序列。

可以根据dash来传送相机镜头信息和/或补充相机镜头信息。

基于dash的描述符可以包括@schemeiduri字段、@value字段和/或@id字段。@schemeiduri字段可以提供用于识别描述符的方案的uri。@value字段可以具有其含义由@schemeiduri字段所指示的方案定义的值。即,根据方案,@value字段可以具有可以被称为参数的描述符元素的值。这些参数可以通过“,”彼此分离。@id可以指示描述符的标识符。当给出相同的标识符时,可以包括相同的方案id、值和参数。

当根据dash传送相机镜头信息和/或补充相机镜头信息时,可以以dash描述符的形式描述相机镜头信息和/或补充相机镜头信息,并且将其包括在mpd等中并将其传送到接收方。可以以上述必需属性描述符和/或补充属性描述符的形式来传送用于相机镜头信息和/或补充相机镜头信息的描述符。这些描述符可以在mpd的自适应集、呈现、子呈现形式等中进行传送。

还可以以基于dash的描述符的形式描述根据所有上述实施方式的相机镜头信息和/或补充相机镜头信息。即,对于相机镜头信息和/或补充相机镜头信息的所有上述实施方式,可以通过用@value的参数替换每个信令字段来描述信息。

根据本公开的相机镜头信息和/或补充相机镜头信息的上述实施方式可以被彼此组合。在根据本公开的360度视频发送设备和/或360度视频接收设备的实施方式中,相机镜头信息和/或补充相机镜头信息可以是根据上述实施方式的相机镜头信息和/或补充相机镜头信息。

图15示意性例示了根据本公开的由360度视频发送设备处理360度视频数据的方法。可以由图10中公开的360度视频发送设备执行图15中公开的方法。具体地,作为示例,图15中的s1500可以由360度视频发送设备的数据输入单元执行,s1510可以由360度视频发送设备的投影处理器执行,并且s1520可以由360度视频发送设备的数据编码器执行。s1530可以由360度视频发送设备的元数据处理器执行,并且s1540可以由360度视频发送设备的发送处理器执行。发送处理器可以被包括在发送器中。

360度视频发送设备获取包括由具有至少一个镜头的相机捕获的360度图像的目标圆形区域(s1500)。360度视频发送设备可以获取包括由具有至少一个镜头的相机捕获的360度图像的目标圆形区域。例如,镜头可以是鱼眼镜头。这里,360度图像可以是3dof+内容的360度图像。3dof+内容的360度图像可以表示多个视点、多个头部位置和/或多个眼睛视线的360度图像。

360度视频传发送设备将目标圆形区域映射到图片(s1510)。360度视频发送设备可以将目标圆形图像区域映射到图片的矩形区域。360度视频发送设备可以获取多个圆形图像,并且图片可以包括至少一个矩形区域。在这种情况下,360度视频发送设备可以将多个圆形图像中的至少一个映射到矩形区域。

另外,360度视频发送设备可以执行诸如旋转、重新排列或改变图片矩形区域分辨率的处理。该处理可以被称为按区域打包或帧打包。

另外,360度视频发送设备可以校正图片的目标圆形区域的变形。由此,360度视频发送设备可以推导校正后的图片。

360度视频发送设备对目标圆形区域被映射到的图片进行编码(s1520)。360度视频发送设备可以对图片进行编码。另外,360度视频发送设备可以对目标圆形区域的元数据进行编码。

360度视频发送设备生成360度图像的元数据(s1530)。

元数据可以包括相机镜头信息。

相机镜头信息可以包括如上所述的acamera_lens_info_id字段、camera_lens_info_cancel_flag字段、camera_lens_info_persistence_flag字段、supplemental_info_present_flag字段、view_dimension_idc_flag字段、view_dimension_idc字段、num_camera_id_minus1字段、camera_id[i]字段、camera_id_type[i]字段、camera_location_per_viewpoint_x[i]字段、camera_location_per_viewpoint_y[i]字段、camera_location_per_viewpoint_z[i]字段、camera_rotation_per_viewpoint_yaw[i]字段、camera_rotation_per_viewpoint_pitch[i]字段、camera_rotation_per_viewpoint_roll[i]字段、camera_location_per_head_position_x[i]字段、camera_location_per_head_position_y[i]字段、camera_location_per_head_position_z[i]字段、camera_rotation_per_head_position_yaw[i]字段、camera_rotation_per_head_position_pitch[i]字段、camera_rotation_per_head_position_roll[i]字段、left_eye_view_flag[i]字段、camera_location_per_eye_x[i]字段、camera_location_per_eye_y[i]字段、camera_location_per_eye_z[i]字段、camera_rotation_per_eye_yaw[i]字段、camera_rotation_per_eye_pitch[i]字段、camera_rotation_per_eye_roll[i]字段、num_subpicture_minus1字段、scene_radius_flag[i]字段、local_sphere_center_offset_flag[i]字段、local_sphere_rotation_flag[i]字段、lens_distortion_correction_flag[i]字段、num_camera_idx_minus1字段、camera_idx[i][j]字段、circular_region_center_x[i]字段、circular_region_center_y[i]字段、rect_region_top[i]字段、rect_region_left[i]字段、rect_region_width[i]字段、rect_region_height[i]字段、full_radius[i]字段、scene_radius[i]字段、local_sphere_rotation_azimuth[i]字段、local_sphere_rotation_elevation[i]字段、local_sphere_center_offset_x[i]字段、local_sphere_center_offset_y[i]字段、local_sphere_center_offset_z[i]字段、field_of_view[i]字段、lens_projection_type[i]字段、scaling_factor[i]字段、num_angle_projection_minus1[i]字段、angle_projection[i][j]字段、num_polynomial_coeff_projection_minus1[i][j]字段、polynomial_coeff_projection[i][j][k]字段、num_angle__correction_minus1[i]字段、angle_correction[i][j]字段、num_polynomial_coeff_correction_minus1[i][j]字段、polynomial_coeff_correction[i][j][k]字段和/或redial_distortion_type[i]字段。

这些字段具有如上所述的含义。

具体地,作为示例,相机镜头信息可以包括指示目标圆形区域的相机类型的信息。相机类型可以是视点、头部位置和眼睛视线中的一个。

例如,当指示相机类型的信息的值为1时,可以推导出目标圆形区域的相机类型是视点。当指示相机类型的信息的值为2时,可以推导出目标圆形区域的相机类型是头部位置。当指示相机类型的信息的值为3时,可以推导出目标圆形区域的相机类型是眼睛视线。

目标圆形区域可以是指示相机类型的信息所指示的相机类型的图像。相机镜头信息可包括关于目标圆形区域的相机类型相关信息。指示相机类型的信息可以表示camera_id_type[i]字段。

例如,相机镜头信息可以包括指示目标圆形区域的目标视点的x分量、y分量和z分量的信息。即,相机镜头信息可以包括指示目标圆形区域的目标视点的位置的信息。指示目标圆形区域的目标视点的x分量、y分量和z分量的信息可以表示camera_location_per_viewpoint_x[i]字段、camera_location_per_viewpoint_y[i]字段和camera_location_per_viewpoint_z[i]字段。相机镜头信息可以包括指示目标圆形区域的目标视点的偏航角、俯仰角和滚转角的信息。即,相机镜头信息可以包括指示目标圆形区域的目标视点的旋转角度的信息。指示目标圆形区域的目标视点的偏航角、俯仰角和滚转角的信息可以表示camera_rotation_per_viewpoint_yaw[i]字段、camera_rotation_per_viewpoint_pitch[i]字段和camera_rotation_per_viewpoint_roll[i]字段。在这种情况下,例如,指示相机类型的信息的值可以为1。即,指示相机类型的信息所指示的目标圆形区域的相机类型可以是视点。

另选地,相机镜头信息可以包括例如指示目标圆形区域的目标头部位置的x分量、y分量和z分量的信息。即,相机镜头信息可以包括指示目标圆形区域的目标头部位置的信息。指示目标圆形区域的目标头部位置的x分量、y分量和z分量的信息可以表示camera_location_per_head_position_x[i]字段、camera_location_per_head_position_y[i]字段和camera_location_per_head_position_z[i]字段。相机镜头信息可以包括指示目标圆形区域的目标头部位置的偏航角、俯仰角和滚转角的信息。即,相机镜头信息可以包括指示目标圆形区域的目标头部位置的旋转角度的信息。指示目标圆形区域的目标头部位置的偏航角、俯仰角和滚转角的信息可以表示camera_rotation_per_head_position_yaw[i]字段、camera_rotation_per_head_position_pitch[i]字段和camera_rotation_per_head_position_roll[i]字段。在这种情况下,例如,指示相机类型的信息的值可以为2。即,指示相机类型的信息所指示的目标圆形区域的相机类型可以是头部位置。

另选地,相机镜头信息可以包括例如指示目标圆形区域的目标眼睛视线的x分量、y分量和z分量的信息。即,相机镜头信息可以包括指示目标圆形区域的目标眼睛视线的位置的信息。指示目标圆形区域的目标眼睛视线的x分量、y分量和z分量的信息可以表示camera_location_per_eye_x[i]字段、camera_location_per_eye_y[i]字段和camera_location_per_eye_z[i]字段。相机镜头信息可以包括指示目标圆形区域的目标眼睛视线的偏航角、俯仰角和滚转角的信息。即,相机镜头信息可以包括指示目标圆形区域的目标眼睛视线的旋转角度的信息。指示目标圆形区域的目标眼睛视线的偏航角、俯仰角和滚转角的信息可以表示camera_rotation_per_eye_yaw[i]字段、camera_rotation_per_eye_pitch[i]字段和camera_rotation_per_eye_roll[i]字段。相机镜头信息可以包括指示目标圆形区域的目标眼睛视线是否是左眼视线的标志。当标志的值为1时,目标眼睛视线可以是左眼视线。当标志的值为0时,目标眼睛视线可以是右眼视线。该标志可以表示left_eye_view_flag[i]字段。在这种情况下,例如,指示相机类型的信息的值可以为3。即,指示相机类型的信息所指示的目标圆形区域的相机类型可以是眼睛视线。

作为另一示例,相机镜头信息可以包括指示目标圆形区域的镜头投影类型的信息。镜头投影类型可以是透视投影、立体投影、等距投影、正弦定律投影、等立体角投影和角多项式投影中的一种。

例如,当指示镜头投影类型的信息的值为1时,可以推导出目标圆形区域的镜头投影类型是透视投影。当指示镜头投影类型的信息的值为2时,可以推导出目标圆形区域的镜头投影类型是立体投影。当指示镜头投影类型的信息的值为3时,可以推导出目标圆形区域的镜头投影类型是等距投影。当指示镜头投影类型的信息的值为4时,可以推导出目标圆形区域的镜头投影类型是正弦定律投影。当指示镜头投影类型的信息的值为5时,可以推导出目标圆形区域的镜头投影类型是等立体角投影。当指示镜头投影类型的信息的值为255时,可以推导出目标圆形区域的镜头投影类型是角多项式投影。当指示镜头投影类型的信息的值为2时,可以不指定目标圆形区域的镜头投影类型。指示镜头投影类型的信息可以表示lens_projection_type[i]字段。

例如,当目标圆形区域的镜头投影类型是透视投影、立体投影、等距投影、正弦定律投影或等立体角投影时,相机镜头信息可以包括指示目标圆形区域的比例因子的信息。即,当指示镜头投影类型的信息的值大于或等于1且小于或等于5时,相机镜头信息可以包括指示针对目标圆形区域的比例因子的信息。指示目标圆形区域的比例因子的信息可以表示scaling_factor[i]字段。

作为另一示例,相机镜头信息可以包括投影功能相关信息。投影功能相关信息可以包括指示目标圆形区域的投影函数的数值的信息。指示投影函数的数值的信息可以表示num_angle_projection_minus1[i][j]字段。

投影函数相关信息可以包括指示应用针对目标圆形区域的投影函数的角度的信息。指示应用投影函数的角度的信息可以表示angle_projection[i][j]字段。

投影函数相关信息可以包括指示目标圆形区域的投影函数的系数的数值的信息。指示投影函数的系数的数值的信息可以表示num_polynomial_coeff_projection_minus1[i][j]字段。

投影功能相关信息可以包括指示目标圆形区域的投影函数的系数的信息。指示投影函数的系数的信息可以表示polynomial_coeff_projection[i][j][k]字段。

作为另一示例,相机镜头信息可以包括指示是否存在与用于校正目标圆形区域变形的变形校正函数相关的信息的标记。例如,当标志的值为1时,相机镜头信息可以包括变形校正函数相关信息。当标志的值为0时,相机镜头信息可以不包括变形校正函数相关信息。该标志可以表示lens_distortion_correction_flag[i]字段。

变形校正函数相关信息可以包括指示目标圆形区域的变形校正函数的数值的信息。指示变形校正函数的数值的信息可以表示num_angle_correction_minus1[i][j]字段。

变形校正函数相关信息可以包括指示应用针对目标圆形区域的变形校正函数的角度的信息。指示应用变形校正函数的角度的信息可以表示angle_correction[i][j]字段。

变形校正函数相关信息可以包括指示目标圆形区域的变形校正函数的系数的数值的信息。指示变形校正函数的系数的数值的信息可以表示num_polynomial_coeff_correction_minus1[i][j]字段。

变形校正函数相关信息可以包括指示目标圆形区域的变形校正函数的系数的信息。指示变形校正函数的系数的信息可以表示polynomial_coeff_correction[i][j][k]字段。

可以基于投影函数相关信息和/或变形校正函数相关信息来推导用于校正目标圆形区域变形的多项式函数,并且可以基于多项式函数来校正目标圆形区域的变形。

作为另一示例,相机镜头信息可以包括指示目标圆形区域的径向变形类型的信息。径向变形类型可以是桶形变形、枕形变形和胡子变形中的一种。

例如,当指示径向变形类型的信息的值为1时,可以推导出目标圆形区域的径向变形类型是桶形变形。当指示径向变形类型的信息的值为2时,可以推导出目标圆形区域的径向变形类型是枕形变形。当指示径向变形类型的信息的值为3时,可以推导出目标圆形区域的径向变形类型是胡子变形。

可以基于上述式1来校正目标圆形区域的径向变形。在这种情况下,可以基于目标圆形区域的径向变形类型来推导式1的径向变形系数和切向变形系数。

另外,元数据可以包括补充相机镜头信息。

补充相机镜头信息可以包括如上所述的num_subpictures字段、num_camera_idx_minus1字段、camera_idx[i][j]字段、image_flip[i]字段、image_scale_axis_angle[i]字段、image_scale_x[i]字段、image_scale_y[i]字段、num_angle_for_displaying_fov[i]字段、displayed_fov[i][j]字段、overlapped_fov[i][j]字段、num_local_fov_region[i]字段、start_radius[i][j]字段、end_radius[i][j]字段、start_angle[i][j]字段、end_angle[i][j]字段、radius_delta[i][j]字段、angle_delta[i][j]字段、local_fov_weight[i][j][k][l]字段、num_polynomial_coefficients_lsc[i]字段、polynomial_coefficient_k_lsc_r[i][j]字段、polynomial_coefficient_k_lsc_g[i][j]字段、polynomial_coefficient_k_lsc_b[i][j]字段、num_deadzones字段、deadzone_left_horizontal_offset[i]字段、deadzone_top_vertical_offset[i]字段、deadzone_width[i]字段和/或deadzone_height[i]字段。

这些字段具有如上所述的含义。

可以通过sei消息发送元数据。另外,元数据可以被包括在媒体呈现描述(mpd)的adaptationset、representation或subrepresentation中。例如,鱼眼视频信息可以以mpd中所包括的通过http进行的动态自适应流传输(dash)描述符的形式发送。这里,sei消息可以用于辅助解码2d图像或在3d空间中显示2d图像。

360度视频发送设备对编码后的图片和元数据执行处理,以便进行存储或发送(s1540)。360度视频发送设备可以将编码后的360度视频数据和/或元数据以文件等的形式封装。360度视频发送设备可以将编码后的360度视频数据和/或元数据以诸如isobmff、cff或其它dash片段这样的文件格式封装。360度视频发送设备可以包括文件格式的元数据。例如,元数据可以被包括在isobmff文件格式的各层的盒中,或者可以被包括作为文件中的单独轨道中的数据。360度视频发送设备可以将元数据封装为文件。360度视频发送设备可以对根据文件格式封装的360度视频数据执行发送处理。360度视频发送设备可以根据任何传输协议来处理360度视频数据。发送处理可以包括通过广播网络进行传送的处理以及通过诸如宽带这样的通信网络进行传送的处理。另外,360度视频发送设备可以对元数据执行发送处理。360度视频发送设备可以通过广播网络和/或宽带发送处理后的360度视频数据和元数据。

根据本公开,可基于相机镜头信息从3dof+内容的360度图像数据推导用于目标视点、目标头位置和/或目标眼睛视线的圆形区域并进行渲染。由此,可以为用户提供消费3dof+内容的交互式体验。

另外,根据本公开,可以基于相机镜头信息中所包括的投影函数相关信息和/或变形校正函数相关信息,通过反映镜头的特性来推导多项式函数。另外,基于多项式函数,可以提供通过校正360度图像被投影到的图片上出现的变形来更准确地将360度图像数据映射到3d空间上的方法。

图16示意性例示了根据本公开的被配置为执行360度图像数据处理方法的360度视频发送设备。可以由图16中公开的360度视频发送设备执行图15中公开的方法。具体地,例如,图16的360度视频发送设备的数据输入单元可以执行图15的s1500,并且图16的360度视频发送设备的投影处理器可以执行图15的s1510。图16的360度视频发送设备的数据编码器可以执行图15的s1520,并且图16的360度视频发送设备的元数据处理器可以执行图15的s1530。图16的360度视频发送设备的发送处理器可以执行图15的s1540。发送处理器可以被包括在发送器中。

图17示意性例示了根据本公开的由360度视频接收设备处理360度视频数据的方法。图17中公开的方法可以由图11中公开的360度视频接收设备执行。具体地,例如,图17的s1700可以由360度视频接收设备的接收器执行,并且s1710可以由360度视频接收设备的接收处理器执行。360度视频的s1720可以由接收设备的数据解码器执行,并且s1730可以由360度视频接收设备的渲染器执行。

360度视频接收设备接收360度图像数据(s1700)。360度视频接收设备可以通过广播网络接收从360度视频发送设备发信号通知的360度视频数据。另外,360度视频接收设备可以通过诸如宽带这样的通信网络或存储介质接收360度视频数据。这里,360度视频数据可以是3dof+内容的360度视频数据。3dof+内容的360度视频数据可以表示多个视点、多个头部位置和/或多个眼睛视线的360度图像数据。

360度视频接收设备从360度视频数据获取关于编码后图片的信息和元数据(s1710)。360度视频接收设备可以根据传输协议来处理接收到的360度视频数据,并且从360度视频数据获取关于编码后的图片和元数据的信息。另外,360度视频接收设备可以执行与用于发送的360度视频发送设备的处理的过程的逆过程。

元数据可以包括相机镜头信息。

相机镜头信息可以包括如上所述的acamera_lens_info_id字段、camera_lens_info_cancel_flag字段、camera_lens_info_persistence_flag字段、supplemental_info_present_flag字段、view_dimension_idc_flag字段、view_dimension_idc字段、num_camera_id_minus1字段、camera_id[i]字段、camera_id_type[i]字段、camera_location_per_viewpoint_x[i]字段、camera_location_per_viewpoint_y[i]字段、camera_location_per_viewpoint_z[i]字段、camera_rotation_per_viewpoint_yaw[i]字段、camera_rotation_per_viewpoint_pitch[i]字段、camera_rotation_per_viewpoint_roll[i]字段、camera_location_per_head_position_x[i]字段、camera_location_per_head_position_y[i]字段、camera_location_per_head_position_z[i]字段、camera_rotation_per_head_position_yaw[i]字段、camera_rotation_per_head_position_pitch[i]字段、camera_rotation_per_head_position_roll[i]字段、left_eye_view_flag[i]字段、camera_location_per_eye_x[i]字段、camera_location_per_eye_y[i]字段、camera_location_per_eye_z[i]字段、camera_rotation_per_eye_yaw[i]字段、camera_rotation_per_eye_pitch[i]字段、camera_rotation_per_eye_roll[i]字段、num_subpicture_minus1字段、scene_radius_flag[i]字段、local_sphere_center_offset_flag[i]字段、local_sphere_rotation_flag[i]字段、lens_distortion_correction_flag[i]字段、num_camera_idx_minus1字段、camera_idx[i][j]字段、circular_region_center_x[i]字段、circular_region_center_y[i]字段、rect_region_top[i]字段、rect_region_left[i]字段、rect_region_width[i]字段、rect_region_height[i]字段、full_radius[i]字段、scene_radius[i]字段、local_sphere_rotation_azimuth[i]字段、local_sphere_rotation_elevation[i]字段、local_sphere_center_offset_x[i]字段、local_sphere_center_offset_y[i]字段、local_sphere_center_offset_z[i]字段、field_of_view[i]字段、lens_projection_type[i]字段、scaling_factor[i]字段、num_angle_projection_minus1[i]字段、angle_projection[i][j]字段、num_polynomial_coeff_projection_minus1[i][j]字段、polynomial_coeff_projection[i][j][k]字段、num_angle__correction_minus1[i]字段、angle_correction[i][j]字段、num_polynomial_coeff_correction_minus1[i][j]字段、polynomial_coeff_correction[i][j][k]字段和/或redial_distortion_type[i]字段。

这些字段具有如上所述的含义。

具体地,作为示例,相机镜头信息可以包括指示目标圆形区域的相机类型的信息。相机类型可以是视点、头部位置和眼睛视线中的一个。

例如,当指示相机类型的信息的值为1时,可以推导出目标圆形区域的相机类型是视点。当指示相机类型的信息的值为2时,可以推导出目标圆形区域的相机类型是头部位置。当指示相机类型的信息的值为3时,可以推导出目标圆形区域的相机类型是眼睛视线。

目标圆形区域可以是指示相机类型的信息所指示的相机类型的图像。相机镜头信息可包括关于目标圆形区域的相机类型相关信息。指示相机类型的信息可以表示camera_id_type[i]字段。

例如,相机镜头信息可以包括指示目标圆形区域的目标视点的x分量、y分量和z分量的信息。即,相机镜头信息可以包括指示目标圆形区域的目标视点的位置的信息。指示目标圆形区域的目标视点的x分量、y分量和z分量的信息可以表示camera_location_per_viewpoint_x[i]字段、camera_location_per_viewpoint_y[i]字段和camera_location_per_viewpoint_z[i]字段。相机镜头信息可以包括指示目标圆形区域的目标视点的偏航角、俯仰角和滚转角的信息。即,相机镜头信息可以包括指示目标圆形区域的目标视点的旋转角度的信息。指示目标圆形区域的目标视点的偏航角、俯仰角和滚转角的信息可以表示camera_rotation_per_viewpoint_yaw[i]字段、camera_rotation_per_viewpoint_pitch[i]字段和camera_rotation_per_viewpoint_roll[i]字段。在这种情况下,例如,指示相机类型的信息的值可以为1。即,指示相机类型的信息所指示的目标圆形区域的相机类型可以是视点。

另选地,相机镜头信息可以包括例如指示目标圆形区域的目标头部位置的x分量、y分量和z分量的信息。即,相机镜头信息可以包括指示目标圆形区域的目标头部位置的信息。指示目标圆形区域的目标头部位置的x分量、y分量和z分量的信息可以表示camera_location_per_head_position_x[i]字段、camera_location_per_head_position_y[i]字段和camera_location_per_head_position_z[i]字段。相机镜头信息可以包括指示目标圆形区域的目标头部位置的偏航角、俯仰角和滚转角的信息。即,相机镜头信息可以包括指示目标圆形区域的目标头部位置的旋转角度的信息。指示目标圆形区域的目标头部位置的偏航角、俯仰角和滚转角的信息可以表示camera_rotation_per_head_position_yaw[i]字段、camera_rotation_per_head_position_pitch[i]字段和camera_rotation_per_head_position_roll[i]字段。在这种情况下,例如,指示相机类型的信息的值可以为2。即,指示相机类型的信息所指示的目标圆形区域的相机类型可以是头部位置。

另选地,相机镜头信息可以包括例如指示目标圆形区域的目标眼睛视线的x分量、y分量和z分量的信息。即,相机镜头信息可以包括指示目标圆形区域的目标眼睛视线的位置的信息。指示目标圆形区域的目标眼睛视线的x分量、y分量和z分量的信息可以表示camera_location_per_eye_x[i]字段、camera_location_per_eye_y[i]字段和camera_location_per_eye_z[i]字段。相机镜头信息可以包括指示目标圆形区域的目标眼睛视线的偏航角、俯仰角和滚转角的信息。即,相机镜头信息可以包括指示目标圆形区域的目标眼睛视线的旋转角度的信息。指示目标圆形区域的目标眼睛视线的偏航角、俯仰角和滚转角的信息可以表示camera_rotation_per_eye_yaw[i]字段、camera_rotation_per_eye_pitch[i]字段和camera_rotation_per_eye_roll[i]字段。相机镜头信息可以包括指示目标圆形区域的目标眼睛视线是否是左眼视线的标志。当标志的值为1时,目标眼睛视线可以是左眼视线。当标志的值为0时,目标眼睛视线可以是右眼视线。该标志可以表示left_eye_view_flag[i]字段。在这种情况下,例如,指示相机类型的信息的值可以为3。即,指示相机类型的信息所指示的目标圆形区域的相机类型可以是眼睛视线。

作为另一示例,相机镜头信息可以包括指示目标圆形区域的镜头投影类型的信息。镜头投影类型可以是透视投影、立体投影、等距投影、正弦定律投影、等立体角投影和角多项式投影中的一种。

例如,当指示镜头投影类型的信息的值为1时,可以推导出目标圆形区域的镜头投影类型是透视投影。当指示镜头投影类型的信息的值为2时,可以推导出目标圆形区域的镜头投影类型是立体投影。当指示镜头投影类型的信息的值为3时,可以推导出目标圆形区域的镜头投影类型是等距投影。当指示镜头投影类型的信息的值为4时,可以推导出目标圆形区域的镜头投影类型是正弦定律投影。当指示镜头投影类型的信息的值为5时,可以推导出目标圆形区域的镜头投影类型是等立体角投影。当指示镜头投影类型的信息的值为255时,可以推导出目标圆形区域的镜头投影类型是角多项式投影。当指示镜头投影类型的信息的值为0时,可以不指定目标圆形区域的镜头投影类型。指示镜头投影类型的信息可以表示lens_projection_type[i]字段。

例如,当目标圆形区域的镜头投影类型是透视投影、立体投影、等距投影、正弦定律投影或等立体角投影时,相机镜头信息可以包括指示目标圆形区域的比例因子的信息。即,当指示镜头投影类型的信息的值大于或等于1且小于或等于5时,相机镜头信息可以包括指示针对目标圆形区域的比例因子的信息。指示目标圆形区域的比例因子的信息可以表示scaling_factor[i]字段。

作为另一示例,相机镜头信息可以包括投影功能相关信息。投影功能相关信息可以包括指示目标圆形区域的投影函数的数值的信息。指示投影函数的数值的信息可以表示num_angle_projection_minus1[i][j]字段。

投影函数相关信息可以包括指示应用针对目标圆形区域的投影函数的角度的信息。指示应用投影函数的角度的信息可以表示angle_projection[i][j]字段。

投影函数相关信息可以包括指示目标圆形区域的投影函数的系数的数值的信息。指示投影函数的系数的数值的信息可以表示num_polynomial_coeff_projection_minus1[i][j]字段。

投影功能相关信息可以包括指示目标圆形区域的投影函数的系数的信息。指示投影函数的系数的信息可以表示polynomial_coeff_projection[i][j][k]字段。

作为另一示例,相机镜头信息可以包括指示是否存在与用于校正目标圆形区域变形的变形校正函数相关的信息的标记。例如,当标志的值为1时,相机镜头信息可以包括变形校正函数相关信息。当标志的值为0时,相机镜头信息可以不包括变形校正函数相关信息。该标志可以表示lens_distortion_correction_flag[i]字段。

变形校正函数相关信息可以包括指示目标圆形区域的变形校正函数的数值的信息。指示变形校正函数的数值的信息可以表示num_angle_correction_minus1[i][j]字段。

变形校正函数相关信息可以包括指示应用针对目标圆形区域的变形校正函数的角度的信息。指示应用变形校正函数的角度的信息可以表示angle_correction[i][j]字段。

变形校正函数相关信息可以包括指示目标圆形区域的变形校正函数的系数的数值的信息。指示变形校正函数的系数的数值的信息可以表示num_polynomial_coeff_correction_minus1[i][j]字段。

变形校正函数相关信息可以包括指示目标圆形区域的变形校正函数的系数的信息。指示变形校正函数的系数的信息可以表示polynomial_coeff_correction[i][j][k]字段。

360度视频接收设备可以基于变形校正函数相关信息来推导用于校正目标圆形区域变形的变形校正函数,并且基于变形校正函数来校正目标圆形区域的变形。

作为另一示例,相机镜头信息可以包括指示目标圆形区域的径向变形类型的信息。径向变形类型可以是桶形变形、枕形变形和胡子变形中的一种。

例如,当指示径向变形类型的信息的值为1时,可以推导出目标圆形区域的径向变形类型是桶形变形。当指示径向变形类型的信息的值为2时,可以推导出目标圆形区域的径向变形类型是枕形变形。当指示径向变形类型的信息的值为3时,可以推导出目标圆形区域的径向变形类型是胡子变形。

360度视频接收设备可以基于上述式1来校正目标圆形区域的径向变形。在这种情况下,可以基于目标圆形区域的径向变形类型来推导式1的径向变形系数和切向变形系数。

另外,元数据可以包括补充相机镜头信息。

补充相机镜头信息可以包括如上所述的num_subpictures字段、num_camera_idx_minus1字段、camera_idx[i][j]字段、image_flip[i]字段、image_scale_axis_angle[i]字段、image_scale_x[i]字段、image_scale_y[i]字段、num_angle_for_displaying_fov[i]字段、displayed_fov[i][j]字段、overlapped_fov[i][j]字段、num_local_fov_region[i]字段、start_radius[i][j]字段、end_radius[i][j]字段、start_angle[i][j]字段、end_angle[i][j]字段、radius_delta[i][j]字段、angle_delta[i][j]字段、local_fov_weight[i][j][k][l]字段、num_polynomial_coefficients_lsc[i]字段、polynomial_coefficient_k_lsc_r[i][j]字段、polynomial_coefficient_k_lsc_g[i][j]字段、polynomial_coefficient_k_lsc_b[i][j]字段、num_deadzones字段、deadzone_left_horizontal_offset[i]字段、deadzone_top_vertical_offset[i]字段、deadzone_width[i]字段和/或deadzone_height[i]字段。

这些字段具有如上所述的含义。

可以通过sei消息接收元数据。另外,元数据可以被包括在媒体呈现描述(mpd)的adaptationset、representation或subrepresentation中。例如,鱼眼视频信息可以以mpd中所包括的通过http进行的动态自适应流传输(dash)描述符的形式接收。这里,sei消息可以用于辅助解码2d图像或在3d空间中显示2d图像。

360度视频接收设备基于关于编码后图片的信息来解码包括目标圆形区域的图片(s1720)。360度视频接收设备可以基于关于编码后图片的信息来解码包括目标圆形区域的图片。目标圆形区域可以是包括360度图像的区域。

360度视频接收设备基于相机镜头信息来处理并渲染目标圆形区域(s1730)。

例如,360度视频接收设备可以基于相机镜头信息用图片推导出目标圆形区域。作为示例,360度视频接收设备可以基于相机镜头信息来推导针对特定位置的目标视点,并且推导出针对目标视点的目标圆形区域。作为另一示例,360度视频接收设备可以基于相机镜头信息来推导针对特定位置的目标头部位置,并且针对目标头部位置来推导目标圆形区域。作为另一示例,360度视频接收设备可以基于相机镜头信息来推导特定位置的目标眼睛视线,并且推导针对目标眼睛视线的目标圆形区域。这里,特定位置可以是通过局部坐标系和全局坐标系中的至少一个指示的位置和/或旋转角度。特定位置可以是由用户选择的位置和/或旋转角度。此外,局部坐标系可以是用x分量、y分量和z分量指示坐标的坐标系,并且全局坐标系可以是用偏航角、俯仰角和滚转角指示坐标的坐标系。

作为示例,元数据的相机镜头信息可以包括描述目标圆形区域的信息以及目标圆形区域被映射到的矩形区域的信息。360度视频接收设备可以基于描述矩形区域的信息来推导矩形区域,并且基于描述目标圆形区域的信息来推导映射到矩形区域的目标圆形区域。在这种情况下,与矩形区域和目标圆形区域被映射到的区域的内部交集对应的区域可以是实际360度图像数据。其余的无效区域可以用黑色标记,以便识别。根据实施方式,360度视频接收设备可以推导与矩形区域和目标圆形区域被映射到的区域的交集对应的区域。

作为示例,相机镜头信息可以包括与360度图像数据未映射到的盲区有关的信息。360度视频接收设备可以基于与360度图像数据没有被映射到的盲区有关的信息来推导360度图像数据未被映射到的盲区。

相机镜头信息可以包括指示镜头投影类型的信息,并且360视频接收设备可以基于以镜头投影类型为基础推导出的球坐标映射式将目标圆形区域映射到3d空间。具体地,例如,360视频接收设备可以基于以镜头投影类型为基础推导出的球坐标系映射式将目标圆形区域映射到平面上(投影)。这里,该平面可以是等量矩形投影(erp)平面。该投影过程可以是将目标圆形区域重新投影到诸如球坐标系这样的3d空间上的中间步骤。

相机镜头信息可以包括投影函数相关信息和/或变形校正函数相关信息。360视频接收设备可以基于投影函数相关信息和/或变形校正函数相关信息来推导用于校正目标圆形区域变形的多项式函数,并且可以基于多项式函数来校正目标圆形区域的变形。

相机镜头信息可以包括指示目标圆形区域的径向变形类型的信息,并且360视频接收设备可以基于上述式1来校正目标圆形区域的径向变形。

360视频接收设备可以基于最终合成的erp平面(图片)执行渲染,以生成对应的视口。

根据本公开,可以基于相机镜头信息用3dof+内容的360度图像数据推导用于目标视点、目标头位置和/或目标眼睛视线的圆形区域并进行渲染。由此,可以向用户提供消费3dof+内容的交互式体验。

另外,根据本公开,可以基于相机镜头信息中所包括的投影函数相关信息和/或变形校正函数相关信息,通过反映镜头的特性来推导多项式函数。另外,基于多项式函数,可以提供通过校正360度图像被投影到的图片上出现的变形来更准确地将360度图像数据映射到3d空间上的方法。

图18示意性例示了根据本公开的被配置为执行360度图像数据处理方法的360度视频接收设备。图17中公开的方法可以由图18中公开的360度视频接收设备执行。具体地,例如,图18的360度视频接收设备的接收器可以执行图17的s1700,并且图18的360度视频接收设备的接收处理器可以执行图17的s1710。图18的360度视频接收设备的数据解码器可以执行图17的s1720,并且图18的360度视频接收设备的渲染器可以执行图17的s1730。

根据实施方式,上述步骤可以被跳过或被执行相似/相同操作的其它步骤替换。

根据本公开的实施方式,360度视频发送设备可以包括如上所述的数据输入单元、拼接器、信令处理器、投影处理器、数据编码器、发送处理器和/或发送器。如上所述地配置内部部件。根据本公开的实施方式,360度视频发送设备及其内部部件可以执行根据本公开的发送360度视频的方法的上述实施方式。

根据本公开的实施方式,360度视频接收设备可以包括如上所述的接收器、接收处理器、数据解码器、信令解析器、重新投影处理器和/或渲染器。如上所述地配置内部部件。根据本公开的实施方式,360度视频接收设备及其内部部件可以执行根据本公开的接收360度视频的方法的上述实施方式。

上述装置的内部部件可以是被配置为执行存储在存储器中的连续过程的处理器,或者可以是其它硬件部件。这些部件可以处于装置的内部/外部。

根据实施方式,上述模块可以被省略或者被配置为执行相似/相同操作的其它模块替换。

上述每个部分、模块或单元可以是执行存储在存储器(或存储单元)中的连续过程的处理器或硬件部分。在上述实施方式中描述的步骤中的每个可以由处理器或硬件部件执行。在上述实施方式中描述的每个模块/块/单元可以作为硬件元件/处理器操作。另外,本公开中描述的方法可以被作为代码执行。该代码可以被写入处理器可读的记录介质中,因此,可以供设备提供的处理器读取。

虽然基于具有一系列步骤或框的流程图描述上述实施方式中的方法,但是本公开不限于所述步骤的顺序。某些步骤可以按不同的顺序或同时地发生。本领域的技术人员将理解,流程图示出的步骤不是排他性的,并且在本公开的范围内,可以包括其它步骤或者可以删除流程图中的步骤中的一个或更多个。

当用软件实现本公开的实施方式时,上述方法可以被实现为被配置为执行上述功能的模块(进程、功能等)。模块可以被存储在存储器中并且可以由处理器执行。存储器可以在处理器的内部或外部,并且可以用各种公知装置连接到处理器。处理器可以包括专用集成电路(asic)、其它芯片集、逻辑电路和/或数据处理装置。存储器可以包括只读存储器(rom)、随机存取存储器(ram)、闪速存储器、存储卡、存储介质和/或其它存储装置。

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