用于发送或接收包括相机镜头信息的360度视频的方法和设备与流程

文档序号:22124316发布日期:2020-09-04 17:00阅读:294来源:国知局
用于发送或接收包括相机镜头信息的360度视频的方法和设备与流程

本公开涉及360度视频,并且更具体地,涉及用于发送或接收包括相机镜头信息的360度视频的方法和设备。



背景技术:

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



技术实现要素:

技术问题

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

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

本公开的另一目的是提供用于发送vr视频数据和与vr视频数据的相机镜头信息有关的元数据的方法和设备。

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

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

技术方案

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

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

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

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

有益效果

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

根据本公开,能向用户提供消费360内容的交互式体验。

根据本公开,当用户消费360内容时,能执行信令,使得准确反映360内容制作方的意图。

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

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

根据本公开,可以通过基于关于360度图像的径向畸变类型信息反映镜头特性来推导径向畸变类型的模型,并且基于该模型来校正360度图像被投影到其上的图片中出现的畸变。由此,360度图像数据能被更精确地映射到3d空间。

附图说明

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

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

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

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

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

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

图8是例示了用于描述根据本公开的3d空间的飞行器主轴的概念的图。

图9a和图9b示例性例示了根据本发明的投影方案。

图10示例性示出了各种类型的径向畸变。

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

图12示例性示出了根据本公开的基于相机镜头信息和/或补充相机镜头信息执行的提供360度视频的整体架构。

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

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

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

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

图17示意性例示了根据本公开的被配置为执行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盒(轨道头盒)作为子盒。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中定义。

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

根据本公开的360度视频发送设备可以执行与上述准备过程或发送过程相关的操作。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度视频发送设备中添加补充元件。

图6是示意性例示了适用本公开的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度视频发送设备的实施方式。通过这种组合配置的实施方式也在本公开的范围内。

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

可以由如图7a和图7b中所示的架构提供360内容。360内容可以以文件的形式或以诸如dash这样的基于片段的下载或流传输服务的形式提供。这里,360内容可以被称为vr内容。

具体地,参照图7a,可以如上所述获取360内容的360度视频数据和/或360音频数据(获取)。即,可以通过360相机捕获360度视频,并且360度视频发送设备可以获取360度视频数据。另外,可以通过音频预处理过程和音频编码过程来处理360音频数据。在这些过程中,可以生成音频相关元数据。编码后的音频和音频相关元数据可以经历处理(文件/片段封装)以进行发送。

360度视频数据可以通过如上所述的过程来处理。参照图7a,360度视频发送设备的拼接器可以对360度视频数据执行拼接(可视拼接)。根据实施方式,可以跳过该过程并且可以在接收方执行该过程。

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

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

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

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

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

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

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

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

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

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

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

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

图8是例示了用于描述根据本公开的3d空间的飞行器主轴的概念的图。在本公开中,飞行器主轴的概念可以用于表示3d空间中的特定点、位置、方向、间隔、区域等。即,在本公开中,飞行器主轴的概念可以用于描述在投影之前或之后给出的3d空间的概念并为此执行信令。根据实施方式,可以使用基于x轴、y轴和z轴或球坐标系的概念的方法。

飞行器可以在三个维度上自由地旋转。构成三维的轴线被分别称为俯仰轴线、偏航轴线和滚转轴线。在本说明书中,这些轴线可以被简单地表示为俯仰、偏航和滚转或者俯仰方向、偏航方向、滚转方向。

俯仰轴线可以是指飞行器的前机头绕其向上/向下旋转的轴线。在飞行器主轴的所例示概念中,俯仰轴线可以是指飞行器的从一个机翼延伸到另一个机翼的轴线。

偏航轴线可以是指飞行器的前机头绕其向左/向右旋转的参考轴线。在飞行器主轴的所例示概念中,偏航轴线可以是指飞行器的从顶部延伸到底部的轴线。在飞行器主轴的概念中,滚转轴线可以是从飞行器的机头延伸到机尾的轴线,并且滚转方向上的旋转可以是指绕滚转轴线的旋转。如上所述,可以基于俯仰、偏航和滚转的概念来描述本公开中的3d空间。

图9a和图9b示例性例示了根据本公开的投影方案。如上所述,根据本公开的360度视频发送设备的投影处理器可以将拼接后的360度视频数据投影到2d图像上。在该操作中可以使用各种投影方案。即,投影处理器可以根据各种投影方案将360度视频数据投影到2d图像上。2d图像可以被表示为投影的图片。

根据本公开的实施方式,可以使用等矩柱状投影方案来执行投影。投影处理器可以使用等矩柱状投影方案来执行360度视频数据投影。图9a的(a)可以示出等矩柱状投影方案。等矩柱状投影方案也可以被称为等矩柱状投影(erp)。当应用等矩柱状投影方案时,球面上的点(r,θ0,0)(即,θ=θ0和的点)可以被映射到2d图像的中心像素。另外,前置相机的主点可以被假定为球面上的点(r,0,0)。可以被固定为0。因此,可以用下式将通过变换成xy坐标系而获得的(x,y)转变成2d图像上的像素(x,y)。

[式1]

x=kxx+x○=kx(θ-θ0)r+x○

y=-kyy-y○

另外,当2d图像的左上像素处于xy坐标系中的(0,0)时,可以用下式给出沿着x轴的偏移值和沿着y轴的偏移值。

[式2]

x○=kxπr

y○=-kyπ/2r

基于该式,可以如下地给出用于转变成xy坐标系的等式。

[式3]

x=kxx+x○=kx(π+θ-θ0)r

例如,当θ0=0时(即,当2d图像的中心像素指示球面上的θ=0的数据)时,球面可以被映射到由相对于(0,0)的2d图像中的宽度=2kxπr和高度=kxπr的区域。具有球面上的的数据可以被映射到2d图像上的整个上侧。另外,球面上的(r,π/2,0)的数据可以被映射到2d图像中的(3πkxr/2,πkxr/2)。

在接收方,2d图像上的360度视频数据可以被重新投影到球面上。具体地,上述360度视频接收设备的重新投影处理器可以将2d图像上的360度视频数据重新投影到球面上。2d图像可以被表示为投影的图片。可以如下地给出该操作的变换方程。

[式4]

θ=θ0+x/kxr-π

例如,在2d图像上,xy坐标为(kxπr,0)的像素可以被重新投影到球面上的θ=θ0且的点。

根据本公开的另一实施方式,可以使用立方投影方案来执行投影。投影处理器可以使用立方投影方案来执行360度视频数据的投影。立方投影方案也可以被称为立方映射投影(cmp)。图9a的(b)可以示出立方投影方案。例如,拼接后的360度视频数据可以被显示在球面上。投影处理器可以以立方体形状划分360度视频数据,以将360度视频数据投影到2d图像上。球面上的360度视频数据可以对应于立方体的每个面,并且被投影到2d图像上,如图9a的(b)的左侧或右侧所示。

根据本公开的另一实施方式,可以使用圆柱投影方案来执行投影。投影处理器可以使用圆柱投影方案来执行360度视频数据的投影。图9a的(c)可以示出圆柱投影方案。当假定拼接后的360度视频数据可以被显示在球面上时,投影处理器可以将360度视频数据按圆柱形状进行划分,并且将其投影到2d图像上。球面上的360度视频数据可以分别对应于圆柱的侧面、顶部和底部,并且被投影到2d图像上,如图9a的(c)的左侧或右侧所示。

根据本公开的另一实施方式,可以使用基于图块的投影方案来执行投影。投影处理器可以使用基于图块的投影方案来执行360度视频数据的投影。图9a的(d)可以示出基于图块的投影方案。当使用基于图块的投影方案时,上述投影处理器可以将球面上的360度视频数据划分成一个或更多个细分区域,以将其投影到2d图像上,如图9a的(d)中所示。细分区域可以被称为图块。

根据本公开的另一实施方式,可以使用金字塔投影方案来执行投影。投影处理器可以使用金字塔投影方案来执行360度视频数据的投影。图9b的(e)可以示出金字塔投影方案。当假定拼接后的360度视频数据可以被显示在球面上时,投影处理器可以将360度视频数据视为具有金字塔形状并且划分其相应的面,以将其投影到2d图像上。球面上的360度视频数据可以分别对应于金字塔的正面和金字塔的四个侧面(左上、左下、右上、右下),并且如图9b的(e)中的左侧或右侧所示地投影。这里,前部可以是包括由面向前的相机获取的数据的区域。

根据本公开的另一实施方式,可以使用全景投影方案来执行投影。投影处理器可以使用全景投影方案来执行360度视频数据的投影。图9b的(f)可以示出全景投影方案。当使用全景投影方案时,如图9b的(f)中所示,上述投影处理器可以仅将球面上的360度视频数据的侧表面投影到2d图像上,如图9b的(f)中所示。这可以与在圆柱投影方案中不存在顶部和底部的情况相同。

根据本公开的另一实施方式,可以在不进行拼接的情况下执行投影。图9b的(g)可以示出在不进行拼接的情况下执行投影的情况。当在不进行拼接的情况下执行投影时,上述投影处理器可以将360度视频数据投影到2d图像上,如图9b的(g)中所示。在这种情况下,可以跳过拼接,并且相机所获取的每个图像可以被直接投影到2d图像上。

参照图9b的(g),两个图像可以在不进行拼接的情况下被投影到2d图像上。每个图像可以是通过球形相机中的每个传感器获取的鱼眼图像。如上所述,接收方可以拼接从相机传感器获取的图像数据,并且将拼接后的图像数据映射到球面上,以渲染球形视频,即,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消息。

可以如下表中所示地推导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至232-2的范围内。

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_circular_images_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)可以指示就在调用针对pica的图片顺序计数的解码过程之后的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而获得的值可以指示编码图片的圆形图像(即,当前图片)的数目。

参照表2,camera_lens_information可以包括camera_lens_info_present_flag[i]字段、scene_radius_flag[i]字段、camera_center_offset_flag[i]字段、camera_rotation_flag[i]字段、lens_distortion_correction_flag[i]字段、circular_image_center_x[i]字段、circular_image_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]字段、camera_center_azimuth[i]字段、camera_center_elevation[i]字段、camera_center_tilt[i]字段、camera_center_offset_x[i]字段、camera_center_offset_y[i]字段、camera_center_offset_z[i]字段、field_of_view[i]字段、lens_projection_type[i]字段、num_polynomial_coefs_distortion[i]字段、distortion_angle[i][j]字段、num_polynomial_coefs_distortion[i][j]字段、polynomial_coef_k_distortion[i][j][k]字段和/或radial_distortion_type[i]字段。

camera_lens_info_present_flag[i]字段可以指示相机镜头信息中是否存在第i圆形图像的scene_radius_flag[i]字段、camera_center_offset_flag[i]字段、camera_rotation_flag[i]field和lens_distortion_correction_flag[i]字段。例如,当camera_lens_info_present_flag[i]字段的值为1时,camera_lens_info_present_flag[i]字段可以指示相机镜头信息中存在第i圆形图像的scene_radius_flag[i]、camera_center_offset_flag[i]字段、camera_rotation_flag[i]字段和lens_distortion_correction_flag[i]字段。当camera_lens_info_present_flag[i]字段的值为0时,camera_lens_info_present_flag[i]字段可以指示相机镜头信息中不存在第i圆形图像的scene_radius_flag[i]、camera_center_offset_flag[i]字段、camera_rotation_flag[i]字段和lens_distortion_correction_flag[i]字段。

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

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

camera_center_offset_flag[i]字段可以指示在相机镜头信息中是否存在与针对第i圆形图像的相机镜头的焦点中心有关的偏移信息。换句话说,camera_center_offset_flag[i]字段可以指示在相机镜头信息中是否存在第i圆形图像的camera_center_offset_x[i]字段、camera_center_offset_y[i]字段和camera_center_offset_z[i]字段。例如,当camera_center_offset_flag[i]字段的值为1时,camera_center_offset_flag[i]字段可以指示在相机镜头信息中存在第i圆形图像的camera_center_offset_x[i]字段、camera_center_offset_y[i]字段和camera_center_offset_z[i]字段。当camera_center_offset_flag[i]字段的值为0时,camera_center_offset_flag[i]字段可以指示在相机镜头信息中不存在第i圆形图像的camera_center_offset_x[i]字段、camera_center_offset_y[i]字段和camera_center_offset_z[i]字段。随后,将详细描述camera_center_offset_x[i]字段、camera_center_offset_y[i]字段和camera_center_offset_z[i]字段。

camera_rotation_flag[i]字段可以指示在相机镜头信息中是否存在关于与第i圆形图像的中心点对应的输出图像中的位置的球坐标的信息。换句话说,camera_rotation_flag[i]字段可以指示在相机镜头信息中是否存在第i圆形图像的camera_center_azimuth[i]字段、camera_center_elevation[i]字段和camera_center_tilt[i]字段。例如,当camera_rotation_flag[i]字段的值为1时,camera_rotation_flag[i]字段可以指示在相机镜头信息中存在第i圆形图像的camera_center_azimuth[i]字段、camera_center_elevation[i]字段和camera_center_tilt[i]字段。当camera_rotation_flag[i]字段的值为0时,camera_rotation_flag[i]字段可以指示在相机镜头信息中不存在第i圆形图像的camera_center_azimuth[i]字段、camera_center_elevation[i]字段和camera_center_tilt[i]字段。随后,将详细描述camera_center_azimuth[i]字段、camera_center_elevation[i]字段和camera_center_tilt[i]字段。

lens_distortion_correction_flag[i]字段可以指示在相机镜头信息中是否存在关于第i圆形图像的相机镜头畸变相关信息。换句话说,lens_distortion_correction_flag[i]字段可以指示在相机镜头信息中是否存在第i圆形图像的num_polynomial_coefs_distortion[i]字段、distortion_angle[i][j]字段、num_polynomial_coefs_distortion[i][j]字段和polynomial_coef_k_distortion[i][j][k]字段。例如,当lens_distortion_correction_flag[i]字段的值为1时,lens_distortion_correction_flag[i]字段可以指示在相机镜头信息中存在第i圆形图像的num_polynomial_coefs_distortion[i]字段、distortion_angle[i][j]字段、num_polynomial_coefs_distortion[i][j]字段和polynomial_coef_k_distortion[i][j][k]字段。当lens_distortion_correction_flag[i]字段的值为0时,lens_distortion_correction_flag[i]字段可以指示在相机镜头信息中不存在第i圆形图像的num_polynomial_coefs_distortion[i]字段、distortion_angle[i][j]字段、num_polynomial_coefs_distortion[i][j]字段和polynomial_coef_k_distortion[i][j][k]字段。随后,将详细描述num_polynomial_coefs_distortion[i]字段、distortion_angle[i][j]字段、num_polynomial_coefs_distortion[i][j]字段和polynomial_coef_k_distortion[i][j][k]字段。

circular_image_center_x[i]字段和circular_image_center_y[i]字段可以指示编码图片的第i圆形图像(即,当前图片)的中心点。换句话说,circular_image_center_x[i]字段可以指示当前图片的第i圆形图像的中心点的水平坐标(x分量),并且circular_image_center_y[i]字段可以指示当前图片的第i圆形图像可的中心点的垂直坐标(y分量)。这里,circular_image_center_x[i]字段和circular_image_center_y[i]字段可以指示以2-16个亮度样本为单位的中心点的水平坐标和垂直坐标。circular_image_center_x[i]字段和circular_image_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圆形图像的第i矩形区域的左上位置(左上点的位置)、宽度和高度。rect_region_top[i]字段、rect_region_left[i]字段、rect_region_width[i]字段和rect_region_height[i]字段可以指示以亮度样本为单位的第i矩形区域的左上位置(左上点的位置)、宽度和高度。

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

第i圆形图像的实际样本区域可以被定义为与基于rect_region_top[i]字段、rect_region_left[i]字段rect_region_width[i]字段、rect_region_height[i]字段推导出的矩形区域与基于circular_image_center_x[i]字段、circular_image_center_y[i]字段和full_radius[i]字段推导出的圆形图像的内部交叉处对应的区域。

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

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

camera_center_tilt[i]字段可以指示与第i圆形图像的中心点对应的输出图像中的位置的倾斜角。这里,camera_center_tilt[i]字段可以以2-16度为单位指示与中心点对应的输出图像中的位置的倾斜角。camera_center_tilt[i]字段的值可以在-180×216(即,-11796480)到180×216-1(即,11796479)的范围内。

camera_center_offset_x[i]字段、camera_center_offset_y[i]字段和camera_center_offset_z[i]字段可以指示第i圆形图像的相机镜头焦点中心的偏移。换句话说,camera_center_offset_x[i]字段可以指示第i圆形图像的相机镜头焦点中心的x偏移,并且camera_center_offset_y[i]字段可以指示第i圆形图像的相机镜头焦点中心的y偏移,并且camera_center_offset_z[i]字段可以指示第i圆形图像的相机镜头焦点中心的z偏移。这里,camera_center_offset_x[i]字段、camera_center_offset_y[i]字段和camera_center_offset_z[i]字段可以以2-16毫米为单位指示相机镜头焦点的x偏移、y偏移和z偏移。第i圆形图像的相机镜头可以是鱼眼镜头。camera_center_offset_x[i]字段、camera_center_offset_y[i]字段和camera_center_offset_z[i]字段的值可以在0至65536×216-1(即,4294967295)的范围内。

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

lens_projection_type[i]字段可以指示第i圆形图像的镜头投影的类型。这里,lens_projection_type[i]字段可以被表示为lens_type[i]字段。例如,当lens_projection_type[i]字段的值为0时,lens_projection_type[i]字段可以指示未指定第i圆形图像的镜头投影的类型。当lens_projection_type[i]字段的值为1时,lens_projection_type[i]字段可以指示用于第i圆形图像的镜头投影的类型是直线投影。当lens_projection_type[i]字段的值为2时,lens_projection_type[i]字段可以指示第i圆形图像的镜头投影的类型是立体投影。当lens_projection_type[i]字段的值为3时,lens_projection_type[i]字段可以指示第i圆形图像的镜头投影的类型是等距投影。当lens_projection_type[i]字段的值为4时,lens_projection_type[i]字段可以指示第i圆形图像的镜头投影的类型是等距投影。当lens_projection_type[i]字段的值为5时,lens_projection_type[i]字段可以指示第i圆形图像的镜头投影的类型是正射投影。当lens_projection_type[i]字段的值为255时,lens_projection_type[i]字段可以指示第i圆形图像的镜头投影的类型是角多项式投影。lens_projection_type[i]字段的从6至254的值被保留以备未来使用。

distortion_angle[i][j]字段可以指示用于描述第i圆形图像的第j多项式函数的角度值。即,distortion_angle[i][j]字段可以指示应用第i圆形图像的第j多项式函数的角度值。这里,distortion_angle[i][j]字段可以以2-7度为单位指示角度值。distortion_angle[i][j]的值可以在0至360×27-1的范围内。

num_polynomial_coefs_distortion[i][j]字段可以指示第i圆形图像的多项式系数的数量。换句话说,num_polynomial_coefs_distortion[i][j]字段可以指示第i圆形图像的多项式函数的数值。通过多项式函数校正畸变的过程可以被称为角度曲线函数变换。

polynomial_coef_k_distortion[i][j][k]字段指示亮度样本和第i圆形图像中的中心点之间的径向距离的第(j+1)角度曲线函数变换的第k多项式系数的值。第k多项式系数的值可以是将归一化圆形的角度变换成与亮度样本对应的矢量与中心点之间的角度的值。可以用原点与第i圆形图像的相机镜头的焦点对应的球坐标表示中心点。polynomial_coef_k_distortion[i][j][k]字段的值可以在0至256×224-1(即,4294967295)的范围内。

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

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

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

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

[式5]

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。

[式6]

随后,将描述将圆形图像的样本位置变换成全局坐标轴的球面坐标的过程。在随后将描述的变换过程中,可以顺序地应用0至num_circular_images_minus1字段的值的i。

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

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

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

-基于以2-16度为单位的field_of_view[i]字段而推导出的θv;

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

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

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

具体地,例如,当lens_projection_type[i]字段的值为3时,即,当第i圆形图像的镜头投影的类型是鱼眼投影(或等距投影)时,将圆形图像中的样本位置变换成球坐标系中的位置的过程可以被如下表中所示地执行。这里,可以基于lens_projection_type[i]字段来推导针对的等式,变换过程可以被表示为将第i圆形图像映射到球坐标的过程。

[表3]

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

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

[表4]

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

num_circular_images字段可以指示编码图片(即,应用supplemental_camera_lens_information的当前图片)的圆形图像的数目。例如,num_circular_images字段的值可以为2。另选地,num_circular_images字段的值可以为除了2之外的非零值。

参照表4,信息可以包括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]字段。

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

image_scale_axis_angle[i]字段、image_scale_x[i]字段和image_scale_y[i]字段可以指示是否以及如何沿着特定轴线缩放第i圆形图像的大小。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]字段可以被称为仿射参数,并且可以满足下式。

[式7]

式7是数学表达式,表示实际样本坐标(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圆形图像中的相邻圆形图像混合的情况下显示的区域。

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

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

start_radius[i][j]字段、end_radius[i][j]字段、start_angle[i][j]字段和end_angle[i][j]字段可以指示局部贴合/卷曲的第j区域。局部拟合/卷曲可以指示改变用于局部显示的实际fov。start_radius[i][j]字段和end_radius[i][j]的值可以是固定点16。start_radius[i][j]字段可以指示第j区域的最小半径值,并且end_radius[i][j]字段可以指示第j区域的最大半径值。start_angle[i][j]字段和end_angle[i][j]字段可以指示从第j区域的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圆形图像的镜头阴影补偿(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固定点格式。原始颜色要乘以的补偿权重可以通过曲线函数来逼近。可以使用下式来推导代表补偿权重的曲线函数。

[式8]

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

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圆形图像的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[i]字段可以指示编码图片(即,当前图片)中的盲区的数目。盲区可以是指包含当前图片的未使用样本的矩形区域,即,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这样的相机内参数以及诸如旋转参数和平移参数这样的相机外参数。

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

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

[式9]

图12示例性示出了根据本公开的基于相机镜头信息和/或补充相机镜头信息执行的提供360度视频的整体架构。

初始地,360度视频发送设备可以获取360相机所捕获的图像。

这里,360相机可以是指至少一台(鱼眼)相机或具有至少一个(鱼眼)镜头和传感器的相机。

360度视频发送设备的视频处理器可以将圆形图像映射/打包到图片上。此后,如上所述,视频处理器可以对图片进行编码,并且元数据处理器可以生成360度视频数据、关于圆形图像的信令信息、相机镜头信息和/或补充相机镜头信息。此后,如上所述,通过诸如文件封装这样的处理,360度视频数据、信令信息、相机镜头信息和/或补充相机镜头信息可以被发送到接收方。

如图中所示,视频处理器的诸如拼接、投影和/或逐区域打包等这样的操作可以被圆形图像的打包替换。

在鱼眼360度视频数据处理过程的一个实施方式中,360度视频接收设备的数据处理器可以从图片中提取与圆形图像对应的360度视频数据,将所提取的数据投影到平面上,并且将平面混合并拼接成一个平面。另外,数据处理器可以基于镜头类型和相机镜头信息和/或补充相机镜头信息的畸变相关信息来校正360度视频数据的畸变。

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

返回参照图12,360度视频接收设备的接收器可以从接收到的广播信号中获取360度视频数据和/或信令信息并进行处理。360度视频接收设备的数据处理器和元数据解析器可以从接收到的比特流中获取360度视频数据和/或信令信息。

360度视频接收设备的数据处理器可以从具有360度视频数据的图片中提取圆形图像(提取)。数据处理器可以提取单个(鱼眼)镜头的图像。

根据实施方式,数据处理器可以提取包含圆形图像的矩形区域,然后从对应的矩形区域中提取圆形图像被映射到的区域。与矩形区域和圆形图像被映射到的区域的内部交叉处对应的区域可以是通过镜头获取的实际的360度视频数据。其余的无效区域可以用黑色等标记,以便进行区分。根据实施方式,数据处理器可以提取与矩形区域和圆形图像被映射到的区域的交叉处对应的区域。

数据处理器可以使用上述相机镜头信息和/或补充相机镜头信息来指定矩形区域。在该操作中,可以使用通过相机镜头信息和/或补充相机镜头信息提供的与矩形区域的左上点有关的信息以及宽度和/或高度信息。另外,数据处理器可以使用上述相机镜头信息和/或补充相机镜头信息来指定圆形图像被映射到的区域。在该操作中,可以使用通过相机镜头信息和/或补充相机镜头信息提供的关于中心点的信息和/或半径信息。

360度视频接收设备的数据处理器可以将所提取的圆形图像投影到平面上(投影)。这里,平面可以是等矩柱状投影(erp)平面。该投影过程可以是将圆形图像重新投影到诸如球坐标系这样的3d空间中的中间步骤。

上述的具有实际360度视频数据的有效区域可以被定义为矩形区域与圆形图像被映射到的区域的交叉处。这里,数据处理器可以基于有效区域与有效区域在3d空间中具有的区域之间的一对一关系对有效区域执行erp。如上所述,可以基于视角信息和中心点信息来定义有效区域在3d空间中具有的区域。可以以偏航、俯仰和滚转或者方位角、仰角和倾斜度的形式表示关于中心点的信息。

根据实施方式,数据处理器可以根据视角基于标准化投影将所提取的有效区域的图像投影到平面上。根据实施方式,当由于机械特性而导致镜头的轴线在圆形图像之间不一致或者isp没有正确地执行镜头校正时,发送方的元数据处理器可以针对其生成场,并且将其包括在相机镜头信息中和/或补充相机镜头信息中。当数据处理器在接收方执行投影时,可以使用这些字段。这些字段可以包括镜片类型信息、畸变校正相关信息和/或镜片阴影校正相关信息。

360度视频接收设备的数据处理器可以将至少一个投影平面混合成为一个erp平面(混合)。根据实施方式,当由于鱼眼镜头的视角和中心点坐标而在圆形图像之间形成交叠部分时,数据处理器可以适当地组合与交叠部分有关的像素信息。

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

如图中所示,渲染数据处理器的图像的过程可以被诸如提取、投影和混合这样的上述操作替换。

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

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

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

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

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

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

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

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

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

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

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

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

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

图14示意性例示了根据本公开的由360度视频发送设备处理360度视频数据的方法。可以由图5中公开的360度视频发送设备执行图14中公开的方法。具体地,作为示例,在图14中,s1400可以由360度视频发送设备的数据输入单元执行,s1410可以由360度视频发送设备的投影处理器执行,并且s1420可以由360度视频发送设备的数据编码器执行。s1430可以由360度视频发送设备的元数据处理器执行,并且s1440可以由360度视频发送设备的发送处理器执行。发送处理器可以被包括在发送器中。

360度视频发送设备获取包括由具有至少一个镜头的相机捕获的360度图像的圆形图像(s1400)。360度视频发送设备可以获取包括由具有至少一个镜头的相机捕获的360度图像的圆形图像。例如,镜头可以是鱼眼镜头。

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

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

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

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

360度视频发送设备生成关于360度图像的元数据(s1430)。元数据可以包括相机镜头信息。

相机镜头信息可以包括如上所述的camera_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_circular_images_minus1字段、camera_lens_info_present_flag[i]字段、scene_radius_flag[i]字段、camera_center_offset_flag[i]字段、camera_rotation_flag[i]字段、lens_distortion_correction_flag[i]字段、circular_image_center_x[i]字段、circular_image_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]字段、camera_center_azimuth[i]字段、camera_center_elevation[i]字段、camera_center_tilt[i]字段、camera_center_offset_x[i]字段、camera_center_offset_y[i]字段、camera_center_offset_z[i]字段、field_of_view[i]字段、lens_projection_type[i]字段、num_polynomial_coefs_distortion[i]字段、distortion_angle[i][j]字段、num_polynomial_coefs_distortion[i][j]字段、polynomial_coef_k_distortion[i][j][k]字段和/或radial_distortion_type[i]字段。

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

具体地,作为示例,相机镜头信息可以包括指示圆形图像的镜头投影类型的信息。镜头投影类型可以是直线投影、立体投影、等距投影、等立体角投影(equisolidprojection)、正射投影和角多项式投影中的一种。

例如,当指示镜头投影类型的信息的值为1时,圆形图像的镜头投影类型可以被推导为直线投影。当指示镜头投影类型的信息的值为2时,圆形图像的镜头投影类型可以被推导为立体投影。当指示镜头投影类型的信息的值为3时,圆形图像的镜头投影类型可以被推导为等距投影。当指示镜头投影类型的信息的值为4时,圆形图像的镜头投影类型可以被推导为等立体角投影。当指示镜头投影类型的信息的值为5时,圆形图像的镜头投影类型可以被推导为正射投影。当指示镜头投影类型的信息的值为255时,圆形图像的镜头投影类型可以被推导为角多项式投影。当指示镜头投影类型的信息的值为0时,可以不指定圆形图像的镜头投影类型。指示镜头投影类型的信息可以表示lens_projection_type[i]字段。

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

多项式函数相关信息可以包括指示针对圆形图像的多项式函数的数值的信息。指示多项式函数的数值的信息可以表示num_polynomial_coefs_distortion[i][j]字段。

多项式函数相关信息可以包括指示应用针对圆形图像的多项式函数的角度的信息。指示应用多项式函数的角度的信息可以表示distortion_angle[i][j]字段。

多项式函数相关信息可以包括指示针对圆形图像的多项式函数的系数的数量的信息。指示多项式函数的系数的数量的信息可以表示num_polynomial_coefs_distortion[i][j]字段。

多项式函数相关信息可以包括指示针对圆形图像的多项式函数的系数的信息。指示多项式函数的系数的信息可以表示polynomial_coefs_distortion[i][j]字段。

可以基于多项式函数相关信息来推导用于校正圆形图像畸变的多项式函数,并且可以基于多项式函数来校正圆形图像的畸变。

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

例如,当指示径向畸变类型的信息的值为1时,圆形图像的径向畸变类型可以被推导为桶形畸变。当指示径向畸变类型的信息的值为2时,圆形图像的径向畸变类型可以被推导为枕形畸变。当指示径向畸变类型的信息的值为3时,圆形图像的径向畸变类型可以被推导为胡子畸变。

可以基于上述式5来校正圆形图像的径向畸变。在这种情况下,可以基于圆形图像的径向畸变类型来推导式5的径向畸变系数和切向畸变系数。

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

补充相机镜头信息可以包括如上所述的num_circular_images字段、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度视频发送设备对编码后的图片和元数据执行处理,以便被存储或发送(s1440)。360度视频发送设备可以将编码后的360度视频数据和/或元数据以文件等的形式封装。360度视频发送设备可以将编码后的360度视频数据和/或元数据以诸如isobmff、cff或其它dash片段这样的文件格式封装。360度视频发送设备可以包括文件格式的元数据。例如,元数据可以被包括在isobmff文件格式的各层的盒中,或者可以被包括作为文件中的单独轨道中的数据。360度视频发送设备可以将元数据封装为文件。360度视频发送设备可以对根据文件格式封装的360度视频数据执行发送处理。360度视频发送设备可以根据任何传输协议来处理360度视频数据。发送处理可以包括通过广播网络进行传送的处理或通过诸如宽带这样的通信网络进行传送的处理。另外,360度视频发送设备可以对元数据执行发送处理。360度视频发送设备可以通过广播网络和/或宽带发送处理后的360度视频数据和元数据。

根据本公开,可以基于与360度图像有关的多项式函数相关信息来推导针对畸变的多项式函数,并且可以基于作为多项式函数的针对360度图像的镜头特性来校正畸变。由此,可以考虑镜头的特性将360度图像数据更准确地映射到3d空间。

另外,根据本公开,可以基于关于360度图像的径向畸变类型信息来推导针对径向畸变类型的模型,并且可以针对360度图像基于镜头的特性来校正径向畸变。由此,可以考虑镜头的特性将360度图像数据更准确地映射到3d空间。

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

图16示意性例示了根据本公开的由360度视频接收设备处理360度视频数据的方法。图16中公开的方法可以由图6中公开的360度视频接收设备执行。具体地,例如,图16的s1600可以由360度视频接收设备的接收器执行,并且s1610可以由360度视频接收设备的接收处理器执行。360度视频的s1620可以由接收设备的数据解码器执行,并且s1630和s1640可以由360度视频接收设备的渲染器执行。

360度视频接收设备接收360度图像数据(s1600)。360度视频接收设备可以通过广播网络接收从360度视频发送设备发信号通知的360度视频数据。另外,360度视频接收设备可以通过诸如宽带这样的通信网络或存储介质接收360度视频数据。

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

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

相机镜头信息可以包括如上所述的camera_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_circular_images_minus1字段、camera_lens_info_present_flag[i]字段、scene_radius_flag[i]字段、camera_center_offset_flag[i]字段、camera_rotation_flag[i]字段、lens_distortion_correction_flag[i]字段、circular_image_center_x[i]字段、circular_image_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]字段、camera_center_azimuth[i]字段、camera_center_elevation[i]字段、camera_center_tilt[i]字段、camera_center_offset_x[i]字段、camera_center_offset_y[i]字段、camera_center_offset_z[i]字段、field_of_view[i]字段、lens_projection_type[i]字段、num_polynomial_coefs_distortion[i]字段、distortion_angle[i][j]字段、num_polynomial_coefs_distortion[i][j]字段、polynomial_coef_k_distortion[i][j][k]字段和/或radial_distortion_type[i]字段。

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

具体地,作为示例,相机镜头信息可以包括指示圆形图像的镜头投影类型的信息。镜头投影类型可以是直线投影、立体投影、等距投影、等立体角投影、正射投影和角多项式投影中的一种。

例如,当指示镜头投影类型的信息的值为1时,圆形图像的镜头投影类型可以被推导为直线投影。当指示镜头投影类型的信息的值为2时,圆形图像的镜头投影类型可以被推导为立体投影。当指示镜头投影类型的信息的值为3时,圆形图像的镜头投影类型可以被推导为等距投影。当指示镜头投影类型的信息的值为4时,圆形图像的镜头投影类型可以被推导为等立体角投影。当指示镜头投影类型的信息的值为5时,圆形图像的镜头投影类型可以被推导为正射投影。当指示镜头投影类型的信息的值为255时,圆形图像的镜头投影类型可以被推导为角多项式投影。当指示镜头投影类型的信息的值为0时,可以不指定圆形图像的镜头投影类型。指示镜头投影类型的信息可以表示lens_projection_type[i]字段。

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

多项式函数相关信息可以包括指示针对圆形图像的多项式函数的数值的信息。指示多项式函数的数值的信息可以表示num_polynomial_coefs_distortion[i][j]字段。

多项式函数相关信息可以包括指示应用针对圆形图像的多项式函数的角度的信息。指示应用多项式函数的角度的信息可以表示distortion_angle[i][j]字段。

多项式函数相关信息可以包括指示针对圆形图像的多项式函数的系数的数量的信息。指示多项式函数的系数的数量的信息可以表示num_polynomial_coefs_distortion[i][j]字段。

投影函数相关信息可以包括指示针对圆形图像的多项式函数的系数的信息。指示多项式函数的系数的信息可以表示polynomial_coef_k_distortion[i][j][k]字段。

360度视频接收设备可以基于多项式函数相关信息来推导用于校正圆形图像畸变的多项式函数,并且可以基于多项式函数来校正圆形图像的畸变。

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

例如,当指示径向畸变类型的信息的值为1时,圆形图像的径向畸变类型可以被推导为桶形畸变。当指示径向畸变类型的信息的值为2时,圆形图像的径向畸变类型可以被推导为枕形畸变。当指示径向畸变类型的信息的值为3时,圆形图像的径向畸变类型可以被推导为胡子畸变。

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

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

补充相机镜头信息可以包括如上所述的num_circular_images字段、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度视频接收设备基于关于编码后图片的信息对包括含360度图像的圆形图像的图片进行解码(s1620)。360度视频接收设备可以基于关于编码后图片的信息对包括圆形图像的图片进行解码。圆形图像可以是包括360度图像的区域。

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

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

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

相机镜头信息可以包括多项式函数相关信息。多项式函数相关信息可以包括指示针对圆形图像的多项式函数的应用角度的信息、指示多项式函数的系数的数量的信息以及指示多项式函数的系数的信息。360度视频接收设备可以基于多项式函数相关信息来推导用于校正圆形图像畸变的多项式函数,并且可以基于多项式函数来校正圆形图像的畸变。

相机镜头信息可以包括指示圆形图像的径向畸变类型的信息。360度视频接收设备可以基于上述式5来校正圆形图像的径向畸变。

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

根据本公开,可以基于关于360度图像的多项式函数相关信息来推导针对畸变的多项式函数,并且可以基于作为多项式函数的针对360度图像的镜头特性来校正畸变。由此,可以考虑镜头的特性将360度图像数据更准确地映射到3d空间。

另外,根据本公开,可以基于关于360度图像的径向畸变类型信息来推导针对径向畸变类型的模型,并且可以针对360度图像基于镜头的特性来校正径向畸变。由此,可以考虑镜头的特性将360度图像数据更准确地映射到3d空间。

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

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

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

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

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

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

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

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

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

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