用于发送信号通知位置信息的系统和方法与流程

文档序号:22191643发布日期:2020-09-11 22:04阅读:164来源:国知局
用于发送信号通知位置信息的系统和方法与流程

本公开涉及交互式视频分发领域,并且更具体地涉及用于在虚拟现实应用程序中发送信号通知位置信息的技术。



背景技术:

数字媒体回放功能可以结合到各种设备中,这些设备包括:数字电视(包括所谓的“智能”电视)、机顶盒、膝上型电脑或台式电脑、平板电脑、数字录音设备、数字媒体播放器、视频游戏设备、蜂窝电话(包括所谓的“智能”电话)、专用视频流设备等。数字媒体内容(例如,视频和音频编程)可以源自多个源,包括例如无线电视提供商、卫星电视提供商、有线电视提供商、在线媒体服务提供商(包括所谓的流媒体服务提供商)等。数字媒体内容可以通过分组交换网络(包括双向网络诸如互联网协议(ip)网络,和单向网络诸如数字广播网络)来递送。

可以根据视频编码标准来对数字媒体内容中包括的数字视频进行编码。视频编码标准可以结合视频压缩技术。视频编码标准的示例包括iso/iecmpeg-4visual和itu-th.264(也称为iso/iecmpeg-4avc)和高效率视频编码(hevc)。视频压缩技术可减少存储和传输视频数据的数据需求。视频压缩技术可通过利用视频序列中固有的冗余来减少数据需求。视频压缩技术可将视频序列再分成连续较小的部分(即,视频序列内的帧组、帧组内的帧、帧内的片段、片段内的编码树单元(例如,宏块)、编码树单元内的编码块等)。可以使用预测编码技术来生成待编码的单位视频数据与参考单位视频数据之间的差值。该差值可被称为残差数据。残差数据可被编码为量化变换系数。语法元素可以涉及残差数据和参考编码单元。残差数据和语法元素可以被包括在兼容比特流中。可以根据数据结构来格式化兼容比特流和相关联的元数据。可以根据传输标准将兼容比特流和相关联的元数据从源传输到接收器设备(例如,数字电视或智能电话)。传输标准的示例包括数字视频广播(dvb)标准、综合业务数字广播标准(isdb)标准和由高级电视系统委员会(atsc)开发的标准,包括例如atsc2.0标准。atsc目前正在开发所谓的atsc3.0标准系列。



技术实现要素:

在一个示例中,发送信号通知与全向视频相关联的信息的方法包括发送信号通知指示沉浸式虚拟现实空间包括排除区域的标记以及发送信号通知指定排除区域的信息。

在一个示例中,确定与全向视频相关联的信息的方法包括解析指示沉浸式虚拟现实空间包括排除区域的标记以及解析信息以确定排除区域。

附图说明

[图1]图1是示出根据本公开的一种或多种技术的可被配置为传输编码视频数据的系统的示例的框图。

[图2a]图2a是示出根据本公开的一种或多种技术的编码视频数据和对应数据结构的概念图。

[图2b]图2b是示出根据本公开的一种或多种技术的编码视频数据和对应数据结构的概念图。

[图3]图3是示出根据本公开的一种或多种技术的编码视频数据和对应数据结构的概念图。

[图4]图4是示出根据本公开的一种或多种技术的坐标系的示例的概念图。

[图5a]图5a是示出根据本公开的一种或多种技术的指定球体上的区域的示例的概念图。

[图5b]图5b是示出根据本公开的一种或多种技术的指定球体上的区域的示例的概念图。

[图6]图6是示出根据本公开的一种或多种技术的投影图片区域和封装图片区域的示例的概念图。

[图7]图7是示出根据本公开的一种或多种技术的可被包括在可被配置为传输编码视频数据的系统的具体实施中的部件的示例的概念图。

[图8]图8是示出可实现本公开的一种或多种技术的数据封装器的示例的框图。

[图9]图9是示出可实现本公开的一种或多种技术的接收器设备的示例的框图。

[图10]图10是示出从球形图像导出封装图片或者从封装图片导出球形图像的处理阶段的示例的概念图。

具体实施方式

一般来讲,本公开描述了用于发送信号通知与虚拟现实应用程序相关联的信息的各种技术。具体地讲,本公开描述了用于发送信号通知位置信息的技术。应当指出的是,尽管在一些示例中,本公开的技术相对于传输标准进行描述,但本文所述的技术可以是普遍适用的。例如,本文所述的技术通常适用于dvb标准、isdb标准、atsc标准、数字地面多媒体广播(dtmb)标准、数字多媒体广播(dmb)标准、混合广播和宽带电视(hbbtv)标准、万维网联盟(w3c)标准和通用即插即用(upnp)标准中的任一者。此外,应当指出的是,尽管本公开的技术相对于itu-th.264和itu-th.265进行描述,但本公开的技术可普遍适用于视频编码,包括全向视频编码。例如,本文所述的编码技术可结合到视频编码系统(包括基于未来视频编码标准的视频编码系统)中,包括块结构、帧内预测技术、帧间预测技术、变换技术、滤波技术和/或熵编码技术,不同于itu-th.265中包括的那些技术。因此,对itu-th.264和itu-th.265的参考用于描述性目的,并且不应将其解释为限制本文所述的技术的范围。此外,应当指出的是,将文献以引用方式并入本文不应被解释为限制或产生关于本文所用术语的歧义。例如,在某个并入的参考文献中提供的对某个术语的定义不同于另一个并入的参考文献和/或如本文中使用的该术语的情况下,则该术语应以广泛地包括每个相应定义的方式和/或以在包括替代方案中每个特定定义的方式来解释。

在一个示例中,设备包括一个或多个处理器,该一个或多个处理器被配置为发送信号通知指示沉浸式虚拟现实空间包括排除区域的标记并且发送信号通知指定排除区域的信息。

在一个示例中,非暂态计算机可读存储介质包括存储在其上的指令,该指令在被执行时使得设备的一个或多个处理器发送信号通知指示沉浸式虚拟现实空间包括排除区域的标记并且发送信号通知指定排除区域的信息。

在一个示例中,装置包括用于发送信号通知指示沉浸式虚拟现实空间包括排除区域的标记的装置以及用于发送信号通知指定排除区域的信息的装置。

在一个示例中,设备包括一个或多个处理器,该一个或多个处理器被配置为解析指示沉浸式虚拟现实空间包括排除区域的标记并且解析信息以确定排除区域。

在一个示例中,非暂态计算机可读存储介质包括存储在其上的指令,该指令在被执行时使得设备的一个或多个处理器解析指示沉浸式虚拟现实空间包括排除区域的标记并且解析信息以确定排除区域。

在一个示例中,装置包括用于解析指示沉浸式虚拟现实空间包括排除区域的标记的装置以及用于解析信息以确定排除区域的装置。

在以下附图和描述中阐述了一个或多个示例的细节。其他特征、目的和优点将从描述和附图以及权利要求书中显而易见。

视频内容通常包括由一系列帧组成的视频序列。一系列帧也可以被称为一组图片(gop)。每个视频帧或图片可以包括一个或多个片段,其中一个片段包括多个视频块。视频块可被定义为可被预测性地编码的像素值(也被称为样本)的最大阵列。视频块可以根据扫描模式(例如,光栅扫描)来排序。视频编码器对视频块和其子分区执行预测编码。itu-th.264指定了包括16×16亮度样本的宏块。itu-th.265指定了类似的编码树单元(ctu)结构,其中图片可被分割成相同大小的ctu,并且每个ctu可包括具有16×16、32×32或64×64亮度样本的编码树块(ctb)。如本文所用,术语视频块通常可以指图片的区域,或者可以更具体地指可被预测性地编码的像素值的最大阵列、其子分区和/或对应结构。此外,根据itu-th.265,每个视频帧或图片可以被分区为包括一个或多个图块,其中图块是与图片的矩形区域相对应的编码树单元序列。

在itu-th.265中,可以根据对应的四叉树块结构将ctu的ctb分割成编码块(cb)。根据itu-th.265,一个亮度cb连同两个对应的色度cb和相关联的语法元素被称为编码单元(cu)。cu与为cu定义一个或多个预测单元(pu)的预测单元(pu)结构相关联,其中pu与对应的参考样本相关联。也就是说,在itu-th.265中,使用帧内预测或帧间预测来对图片区域进行编码的决定是在cu级别下进行的,并且对于cu,对应于帧内预测或帧间预测的一个或多个预测可用于生成cu的cb的参考样本。在itu-th.265中,pu可以包括亮度和色度预测块(pb),其中方形pb被支持用于帧内预测,并且矩形pb被支持用于帧间预测。帧内预测数据(例如,帧内预测模式语法元素)或帧间预测数据(例如,运动数据语法元素)可将pu与对应的参考样本相关联。残差数据可以包括对应于视频数据的每个分量(例如,亮度(y)和色度(cb和cr))的相应差值阵列。残差数据可在像素域中。可对像素差值应用变换诸如离散余弦变换(dct)、离散正弦变换(dst)、整数变换、小波变换或概念上类似的变换,以生成变换系数。应当指出的是,在itu-th.265中,cu可以进一步再分为变换单元(tu)。也就是说,为了生成变换系数,可以对像素差值阵列进行再分(例如,可以将四个8×8变换应用于对应于16×16亮度cb的16×16残差值阵列),此类子分区可以被称为变换块(tb)。可以根据量化参数(qp)来量化变换系数。可以根据熵编码技术(例如,内容自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)、概率区间分割熵编码(pipe)等)对量化变换系数(可称为位阶值)进行熵编码。此外,也可以对语法元素诸如指示预测模式的语法元素进行熵编码。熵编码的量化变换系数和对应的熵编码语法元素可形成可用于再现视频数据的兼容比特流。作为熵编码处理的一部分,可以对语法元素执行二值化处理。二值化是指将语法值转换为一个或多个比特的序列的过程。这些比特可以被称为“二进制位”。

虚拟现实(vr)应用程序可以包括可利用头戴式显示器渲染的视频内容,其中仅渲染与用户头部的取向相对应的球形视频的区域。vr应用程序可通过全向视频启用,全向视频也称为360°视频的360°球形视频。全向视频通常由多个相机捕获,这些相机覆盖高达360°的场景。与普通视频相比,全向视频的显著特征在于,通常仅显示整个捕获视频区域的子集,即,显示与当前用户的视场(fov)相对应的区域。fov有时也称为视区。在其他情况下,视区可被描述为球形视频中当前被显示并由用户查看的部分。应当指出的是,视区的尺寸可小于或等于视场。此外,应当指出的是,可以使用单视场相机或立体相机捕获全向视频。单视场相机可以包括捕获对象的单个视图的相机。立体相机可以包括捕获同一对象的多个视图(例如,使用两个镜头在略微不同的角度下捕获视图)的相机。此外,应当指出的是,在一些情况下,可以使用超广角镜头(即,所谓的鱼眼镜头)捕获用于全向视频应用程序中的图像。在任何情况下,通常可以将用于创建360°球形视频的过程描述为将输入图像拼接在一起并将拼接在一起的输入图像投影到三维结构(例如,球体或立方体)上,这可以得到所谓的投影帧。此外,在一些情况下,可以对投影帧的区域进行变换、尺寸调整和重新定位,这可以得到所谓的封装帧。

传输系统可被配置为将全向视频传输到一个或多个计算设备。计算设备和/或传输系统可以基于包括一个或多个抽象层的模型,其中每个抽象层的数据根据特定结构表示,例如,分组结构、调制方案等。包括已定义的抽象层的模型的示例是所谓的开放系统互连(osi)模型。osi模型定义了7层堆栈模型,包括应用层、呈现层、会话层、传输层、网络层、数据链路层和物理层。应当指出的是,关于描述堆栈模型中的层,术语“上”和“下”的使用可以基于作为最上层的应用层和作为最下层的物理层。此外,在一些情况下,术语“层1”或“l1”可以用于指物理层,术语“层2”或“l2”可以用于指链路层,并且术语“层3”或“l3”或“ip层”可以用于指网络层。

物理层通常可以指电信号形成数字数据的层。例如,物理层可以指定义调制的射频(rf)符号如何形成数字数据帧的层。数据链路层(也可以称为链路层)可以指在发送侧的物理层处理之前以及在接收侧的物理层接收之后使用的抽象层。如本文所用,链路层可以指用于在发送侧处将数据从网络层传输到物理层并且用于在接收侧处将数据从物理层传输到网络层的抽象层。应当指出的是,发送侧和接收侧是逻辑角色,并且单个设备可以在一个实例中作为发送侧操作并且在另一个实例中作为接收侧操作。链路层可以将封装在特定分组类型(例如,运动图像专家组-传输流(mpeg-ts)分组、互联网协议第4版(ipv4)分组等)中的各种类型的数据(例如,视频、音频或应用文件)抽象为单个通用格式,以供物理层处理。网络层通常可以指发生逻辑寻址的层。也就是说,网络层通常可以提供寻址信息(例如,互联网协议(ip)地址),使得数据分组可以被递送到网络内的特定节点(例如,计算设备)。如本文所用,术语网络层可以指链路层上方的层和/或结构中具有数据使得可接收数据以用于链路层处理的层。传输层、会话层、呈现层和应用层中的每一者均可以定义如何递送数据以供用户应用程序使用。

iso/iecfdis23090-12:201x(e);“informationtechnology-codedrepresentationofimmersivemedia(mpeg-i)-part2:omnidirectionalmediaformat(信息技术-沉浸式媒体的编码表示(mpeg-i)-第2部分:全向媒体格式)”,iso/iecjtc1/sc29/wg11(2017年12月11日)定义了启用全向媒体应用程序的媒体应用程序格式,该文献以引用方式并入本文并在本文中称为mpeg-i。mpeg-i指定了用于全向视频的坐标系;可用于分别将球形视频序列或球形图像转换成二维矩形视频序列或二维矩形图像的投影和矩形区域式封装方法;使用iso基础媒体文件格式(isobmff)的全向媒体和相关联的元数据的存储;媒体流传输系统中的全向媒体的封装、发送信号通知和流传输;以及媒体配置文件和呈现配置文件。应当指出的是,为简明起见,本文未提供对mpeg-i的完整描述。然而,参考了mpeg-i的相关部分。

mpeg-i提供其中根据itu-th.265对视频进行编码的媒体配置文件。itu-th.265在2016年12月的itu-th.265建议书的高效视频编码(hevc)中有所描述,该文献以引用方式并入本文并在本文中称为itu-th.265。如上所述,根据itu-th.265,每个视频帧或图片可以被分区为包括一个或多个片段,并且进一步被分区为包括一个或多个图块。图2a至图2b是示出包括片段并将图片进一步分区为图块的一组图片的示例的概念图。在图2a所示的示例中,图片4被示出为包括两个片段(即,片段1和片段2),其中每个片段包括ctu序列(例如,以光栅扫描顺序排列)。在图2b所示的示例中,图片4被示出为包括六个图块(即,图块1至图块6),其中每个图块是矩形的并且包括ctu序列。应当指出的是,在itu-th.265中,图块可以由包含在不止一个片段中的编码树单元组成,并且片段可以由包含在不止一个图块中的编码树单元组成。然而,itu-th.265规定应满足以下一个或两个条件:(1)片段中的所有编码树单元属于同一个图块;以及(2)图块中的所有编码树单元属于同一个片段。

360°球形视频可包括区域。参考图3所示的示例,360°球形视频包括区域a、区域b和区域c,并且如图3所示,图块(即,图块1至图块6)可形成全向视频的区域。在图3所示的示例中,这些区域中的每一个被示出为包括ctu。如上所述,ctu可形成编码视频数据的片段和/或视频数据的图块。此外,如上所述,视频编码技术可根据视频块、其子分区和/或对应结构对图片的区域进行编码,并且应当指出的是,视频编码技术允许在视频编码结构的各种水平上调整视频编码参数,例如,针对片段、图块、视频块和/或在子分区进行调整。在一个示例中,图3所示的360°视频可表示体育赛事,其中区域a和区域c包括体育场的看台的视图,区域b包括运动场的视图(例如,视频是通过位于50码线处的360°相机捕获的)。

如上所述,视区可以是球形视频中当前被显示并由用户查看的部分。因此,可根据用户的视区选择性地递送全向视频的区域,即,可在全向视频流传输中启用视区相关的递送。通常,为了实现视区相关的递送,在编码之前将源内容分成子图片序列,其中每个子图片序列覆盖全向视频内容的空间区域的子集,并且然后将子图片序列彼此独立地编码为单层比特流。例如,参考图3,区域a、区域b和区域c中的每一者或其部分可对应于独立编码的子图片比特流。每个子图片比特流可封装在文件中作为其自身的轨道,并且可基于视区信息选择性地将轨道递送到接收器设备。应当指出的是,在一些情况下,子图片可能重叠。例如,参考图3,图块1、图块2、图块4和图块5可形成子图片,并且图块2、图块3、图块5和图块6可形成子图片。因此,特定样本可被包括在多个子图片中。mpeg-i提供了组合对齐的样本包括与另一轨道相关联的轨道中的样本中的一个的情况,该样本具有与该另一轨道中的特定样本相同的组合时间,或者提供了当在该另一轨道中具有相同的组合时间的样本不可用时,该样本具有相对于该另一轨道中的特定样本的组合时间最接近的先前组合时间。此外,mpeg-i提供了组成图片包括对应于一个视图的空间帧封装的立体图片的一部分的情况,或者在不使用帧封装或使用时间交织帧封装结构时,提供图片本身。

如上所述,mpeg-i指定了用于全向视频的坐标系。在mpeg-i中,坐标系由单位球体和三个坐标轴组成,即x(从后往前)轴、y(侧向,从左往右)轴和z(竖直,从下往上)轴,其中三个轴交于球体的中心。球体上的点的位置由一对球体坐标方位角和仰角(θ)标识。图4示出了球体坐标方位角和仰角(θ)与如mpeg-i中指定的x、y和z坐标轴的关系。应当指出的是,在mpeg-i中,方位角的值范围为-180.0°(包括端值)至180.0°(不包括端值),并且仰角的值范围为-90.0°(包括端值)至90.0°(包括端值)。mpeg-i指定球体上的区域可通过四个大圆来指定的情况,其中大圆(也称为黎曼圆)是球体与穿过球体的中心点的平面的交点,其中球体的中心和大圆的中心是协同定位的。mpeg-i还描述了球体上的区域可由两个方位角圆和两个仰角圆指定的情况,其中方位角圆是球体上的连接具有相同方位角值的所有点的圆,并且仰角圆是球体上的连接具有相同仰角值的所有点的圆。mpeg-i中的球体区域结构形成用于发送信号通知各种类型的元数据的基础。

应当指出的是,关于本文所用的公式,可使用以下算术运算符:

+加法

-减法(作为双参数运算符)或负数(作为一元前缀运算符)

*乘法,包括矩阵乘法

xy求幂。将x指定为y的幂。在其他语境下,此类符号用于上标而非

旨在用于解释为求幂。

/将结果向着零截断的整数除法。例如,将7/4和-7/-4截断为1,将-7/4

和7/-4截断为-1。

÷在不旨在进行截断或舍入情况下用于表示数学公式中的除法。

在不旨在进行截断或舍入情况下用于表示数学公式中的除法。

x%y模量。x除以y的余数,仅针对x≥0且y>0的整数x和y定义。

应当指出的是,关于本文所用的公式,可以使用以下逻辑运算符:

x&&yx和y的布尔逻辑“和”

x||yx和y的布尔逻辑“或”

!布尔逻辑“否”

x?y:z如果x为true或不等于0,则求值为y;否则,求值为z。

应当指出的是,关于本文所用的公式,可使用以下关系运算符:

>大于

≥大于或等于

<小于

≤小于或等于

==等于

!=不等于

应当指出的是,在本文中使用的语法中,无符号整数(n)是指具有n比特的无符号整数。此外,位(n)是指具有n位的位值。

如上所述,mpeg-i指定了如何利用国际标准化组织(iso)基础媒体文件格式(isobmff)存储全向媒体和相关联的元数据。mpeg-i指定了支持指定被投影帧覆盖的球形表面的面积的元数据的文件格式。具体地讲,mpeg-i包括球体区域结构,该球体区域结构指定具有以下定义、语法和语义的球体区域:

定义

球体区域结构(sphereregionstruct)指定球体区域。

当centre_tilt等于0时,由该结构指定的球体区域如下导出:

-如果azimuth_range和elevation_range二者均等于0,则由该结构指定的球

体区域是球形表面上的点。

-否则,使用如下导出的变量centreazimuth、centreelevation、cazimuth1、

cazimuth、celevation1和celevation2来定义球体区域:

centreazimuth=centre_azimuth÷65536

centreelevation=centre_elevation÷65536

cazimuth1=(centre_azimuth–azimuth_range÷2)÷65536

cazimuth2=(centre_azimuth+azimuthrange÷2)÷65536

celevation1=(centre_elevation–elevation_range÷2)÷65536

celevation2=(centre_elevation+elevation_range÷2)÷65536

参考包含sphereregionstruct的该实例的结构的语义中指定的形状类型值来如下定义球体区域:

-当形状类型值等于0时,球体区域由四个点cazimuth1、cazimuth2、celevation1、

celevation2定义的四个大圆以及centreazimuth和centreelevation定义的中心点

指定,并且如图5a所示。

-当形状类型值等于1时,球体区域由四个点cazimuth1、cazimuth2、celevation1、

celevation2定义的两个方位角圆和两个仰角圆以及centreazimuth和centreelevation

定义的中心点指定,并且如图5b所示。

当centre_tilt不等于0时,首先如上导出球体区域,然后沿着源自球体原点穿过球体区域的中心点的轴线应用倾斜旋转,其中当从原点朝轴线的正方向观察时,角度值顺时针增大。最终球体区域是应用了倾斜旋转之后的那一个球体区域。

形状类型值等于0指定球体区域由四个大圆指定,如图5a中所示。

形状类型值等于1指定球体区域由两个方位角圆和两个仰角圆指定,如图5b所示。

保留大于1的形状类型值。

语法

语义

centre_azimuth和centre_elevation指定球体区域的中心。centre_azimuth应在-180*216至180*216-1(包括端值)的范围内。centre_elevation应在-90*216至90*216(包括端值)的范围内。

centre_tilt指定球体区域的倾斜角。centre_tilt应在-180*216至180*216-1(包括端值)的范围内。

azimuth_range和elevation_range(当存在时)分别指定由该结构指定的球体区域的以2-16°为单位的方位角和仰角范围,azimuth_range和elevation_range指定穿过球体区域的中心点的范围,如图5a或图5b所示。当sphereregionstruct的该实例中不存在azimuth_range和elevation_range时,如包含sphereregionstruct的该实例的结构的语义中所指定的那样推断它们。azimuth_range应在0至360*216(包括端值)的范围内。elevation_range应在0至180*216(包括端值)的范围内。

interpolate的语义由包含sphereregionstruct的该实例的结构的语义指定。

如上所述,mpeg-i中的球体区域结构形成用于发送信号通知各种类型的元数据的基础。关于为球体区域指定通用定时元数据轨道语法,mpeg-i指定了样本条目和样本格式。该样本条目结构被指定为具有以下定义、语法和语义:

定义

样本条目中应确切地存在一个sphereregionconfigbox。sphereregionconfigbox指定由样本指定的球体区域的形状。当样本中的球体区域的方位角和仰角范围不变时,可在样本条目中指示方位角和仰角范围。

语义

shape_type等于0指定球体区域由四个大圆指定。shape_type等于1指定球体区域由两个方位角圆和两个仰角圆指定。保留大于1的shape_type值。当将(上文提供的)描述球体区域的子句应用于球体区域元数据轨道的样本的语义时,shape_type值用作形状类型值。

dynamic_range_flag等于0指定球体区域的方位角和仰角范围在参考该样本条目的所有样本中保持不变。dynamic_range_flag等于1指定在样本格式中指示球体区域的方位角和仰角范围。

static_azimuth__range和static_elevation_range分别指定参考该样本条目的每个样本的以2-16°为单位的球体区域的方位角和仰角范围。static_azimuth_range和static_elevation_range指定穿过球体区域的中心点的范围,如图5a或图5b所示。static_azimuth_range应在0至360*216(包括端值)的范围内。static_elevation_range应在0至180*216(包括端值)的范围内。当static_azimuth_range和static_elevation_range存在且二者均等于0时,参考该样本条目的每个样本的球体区域是球形表面上的点。当static_azimuth_range和static_elevation_range存在时,当将(上文提供的)描述球体区域的子句应用于球体区域元数据轨道的样本的语义时,推断azimuth_range和elevation_range的值分别等于static_azimuth_range和static_elevation_range。

num_regions指定参考该样本条目的样本中的球体区域的数目。num_regions应等于1。保留num_regions的其他值。

该样本格式结构被指定为具有以下定义、语法和语义:

定义

每个样本指定球体区域。sphereregionsample结构可在派生的轨道格式中扩展。

语法

语义

将上文提供的球体区域结构子句应用于包含sphereregionstruct结构的样本。

假设目标媒体样本是参考媒体轨道中的媒体样本,其组合时间大于或等于该样本的组合时间且小于下一个样本的组合时间。

interpolate等于0指定该样本中的centre_azimuth、centre_elevation、centre_tilt、azimuth_range(如果存在的话)和elevation_range(如果存在的话)的值应用于目标媒体样本。interpolate等于1指定应用于目标媒体样本的centre_azimuth、centre_elevation、centre_tilt、azimuth_range(如果存在的话)和elevation_range(如果存在的话)的值是从该样本和先前样本中的对应字段的值线性插入的。

用于同步样本、轨道的第一样本和轨道片段的第一样本的interpolate的值应等于0。

在mpeg-i中,可基于样本条目和样本格式发送信号通知定时元数据。例如,mpeg-i包括具有以下定义、语法和语义的初始查看取向元数据:定义

该元数据指示当播放相关联的媒体轨道或存储为图像项的单个全向图像时应当使用的初始查看取向。在该类型的元数据不存在的情况下,应推断出centre_azimuth、centre_elevation和centre_tilt均等于0。

omaf(全向媒体格式)播放器应使用如下所示或推断的centre_azimuth、centre_elevation和centre_tilt值:

-如果omaf播放器的取向/视区元数据是基于包括在或附接到查看设备的取向传感器获得的,则omaf播放器应

о遵守仅centre_azimuth值,并且

о忽略centre_elevation和centre_tilt的值并使用来自取向传感器的相应值代替。

-否则,omaf播放器应遵守全部三个centre_azimuth、centre_elevation和centre_tilt。

应当使用轨道样本条目类型“初始查看取向定时元数据”。

在样本条目的sphereregionconfigbox中,shape_type应等于0,dynamic_range_flag应等于0,static_azimuth_range应等于0,并且static_elevation_range应等于0。

注意:该元数据应用于任何视区,无论视区覆盖哪个方位角和仰角范围。因此,dynamic_range_flag、static_azimuth_range和static_elevation_range不影响该元数据涉及的视区的尺寸,从而需要等于0。当omaf播放器遵守如上推断的centre_tilt值时,可以通过将视区的球体区域的方位角和仰角范围设置为等于实际用于显示视区的那些方位角和仰角范围来解释centre_tilt值。

语法

语义

注1:当样本结构从sphereregionsample扩展时,sphereregionsample的语法元素包括在样本中。

centre_azimuth、centre_elevation和centre_tilt指定相对于全局坐标轴以2-16°为单位的查看取向。centre_azimuth和centre_elevation指示视区的中心,centre_tilt指示视区的倾斜角。

interpolate应等于0。

refresh_flag等于0指定在从相关联的媒体轨道中的时间并行样本开始回放时应使用所指示的查看取向。refresh_flag等于1指定在渲染每个相关联的媒体轨道的时间并行样本(即均连续回放)时以及在从时间并行样本开始回放时应始终使用所指示的查看取向。

注2:refresh_flag等于1使内容作者能够指示即使在连续播放视频时也推荐特定的查看取向。例如,可针对场景剪辑位置指示等于1的refresh_flag。

如上所述,mpeg-i指定了可用于将球形视频序列转换成二维矩形视频序列的投影和矩形区域式封装方法。这样,mpeg-i指定了具有以下定义、语法和语义的区域式封装结构:

定义

regionwisepackingstruct指定封装区域和相应投影区域之间的映射,并且指定保护带(如果有的话)的位置和尺寸。

注意:在其他信息中,regionwisepackingstruct还在2d笛卡尔图片域中提供内容覆盖信息。

根据该语法结构的容器,该子句的语义中的解码图片是以下任一项:

-对于视频,解码图片是由视频轨道的样本产生的解码输出。

-对于图像项,解码图片是该图像项的重构图像。

regionwisepackingstruct的内容信息地汇总如下,而规范语义随后跟随在该子句中:

-分别用proj_picture_width和proj_picture_height明确地发送信号通知投影图片的宽度和高度。

-分别用packed_picture_width和packed_picture_height明确地发送信号通知封装图片的宽度和高度。

-当投影图片是立体的并且具有从上到下或并排的帧封装结构时,constituent_picture_matching_flag等于1指定

о该语法结构中的投影区域信息、封装区域信息和保护带区域信息各自应用于每个组成图片,

о封装图片和投影图片具有相同的立体帧封装格式,并且

о投影区域和封装区域的数量是语法结构中num_region的值所指示的数量的两倍。

-regionwisepackingstruct包含循环,其中循环条目对应于两个组成图片中的相应投影区域和封装区域(当constituent_picture_matching_flag等于1时),或者对应于投影区域和相应封装区域(当constituent_picture_matching_flag等于0时),并且循环条目包含下述:

о指示封装区域的保护带的存在的标记,

о封装类型(然而,在mpeg-i中指定仅矩形区域式封装),

о矩形区域封装结构rectregionpacking(i)中的投影区域和相应封装区域之间的映射,

о当保护带存在时,用于封装区域的保护带结构guardband(i)。

矩形区域封装结构rectregionpacking(i)的内容信息地汇总如下,而规范语义随后跟随在该子句中:

-proj_reg_width[i]、proj_reg_height[i]、proj_reg_top[i]和proj_reg_left[i]分别指定第i个投影区域的宽度、高度、顶部偏移和左侧偏移。

-transform_type[i]指定应用于第i个封装区域以将其重新映射到第i个投影区域的旋转和镜像(如果有的话)。

-packed_reg_width[i]、packed_reg_height[i]、packed_reg_top[i]和packed_reg_left[i]分别指定第i个封装区域的宽度、高度、顶部偏移和左侧偏移。

保护带结构guardband(i)的内容信息地汇总如下,而规范语义随后跟随在该子句中:

-left_gb_width[i]、right_gb_width[i]、top_gb_height[i]或bottom_gb_height[i]分别指定第i个封装区域的左侧、右侧、上方或下方的保护带尺寸。

-gb_not_used_for_pred_flag[i]指示编码是否以保护带在帧间预测过程中不用作参考的方式受到约束。

-gb_type[i][j]指定第i个封装区域的保护带的类型。

图6示出了投影图片(左侧)内的投影区域的位置和尺寸以及具有保护带的封装图片(右侧)内的封装区域的位置和尺寸的示例。当constituent_picture_matching_flag的值等于0时,应用该示例。

语法

语义

proj_reg_width[i]、proj_reg_height[i]、proj_reg_top[i]和proj_reg_left[i]分别指定在投影图片内(当constituent_picture_matching_flag等于0时)或在投影图片的组成图片内(当con-stituent_picture_matching_flag等于1时)的第i个投影区域的宽度、高度、顶部偏移和左侧偏移。以相对投影图片样本单位指示proj_reg_width[i]、proj_reg_height[i]、proj_reg_top[i]和proj_reg_left[i]。

注1:两个投影区域可彼此部分重叠或完全重叠。当存在质量差异的指示(例如,通过区域式质量排序指示)时,则对于任何两个重叠投影区域的重叠区域,应将对应于被指示为具有较高质量的投影区域的封装区域用于渲染。

transform_type[i]指定应用于第i个封装区域以将其重新映射到第i个投影区域的旋转和镜像。当transform_type[i]指定旋转和镜像两者时,在镜像之前应用旋转以用于将封装区域的样本位置转换为投影区域的样本位置。指定了以下值:

0:无变换

1:水平镜像

2:旋转180°(逆时针)

3:水平镜像前旋转180°(逆时针)

4:水平镜像前旋转90°(逆时针)

5:旋转90°(逆时针)

6:水平镜像前旋转270°(逆时针)

7:旋转270°(逆时针)

注2:mpeg-i指定了transform_type[i]的语义,用于将封装图片中的封装区域的样本位置转换为投影图片中的投影区域的样本位置。

packed_reg_width[i]、packed_reg_height[i]、packed_reg_top[i]和packed_reg_left[i]分别指定在封装图片内(当con-stituent_picture_matching_flag等于0时)或在封装图片的每个组成图片内(当constituent_picture_matching_flag等于1时)的第i个封装区域的宽度、高度、偏移和左侧偏移。以相对封装图片样本单位指示packed_reg_width[i]、packed_reg_height[i]、packed_reg_top[i]和packed_reg_left[i]。packed_reg_width[i]、packed_reg_height[i]、packed_reg_top[i]和packed_reg_left[i]应表示解码图片内的亮度样本单元的整数水平坐标和竖直坐标。

注1:两个封装区域可彼此部分重叠或完全重叠。

mpeg-i还指定了用于将封装区域中的亮度样本位置重新映射到对应投影区域的亮度样本位置上的矩形区域式封装过程的反转过程:

该过程的输入为:

-封装区域内的样本位置(x,y),其中x和y以相对封装图片样本单位计,而样本位置在封装图片内的整数样本位置处,

-以相对投影图片样本单位计的投影区域的宽度和高度(projregwidth,projregheight),

-以相对封装图片样本单位计的封装区域的宽度和高度(packedregwidth,packedregheight),

-变换类型(transformtype),以及

-分别以水平和竖直相对封装图片样本单位计的采样位置的偏移值(offsetx,offsety)在0(包括0)至1(不包括1)的范围内。

注意:以封装图片样本单位计的offsetx和offsety二者均等于0.5指示位于样本的中心点的采样位置。

该过程的输出为:

-投影区域内的样本位置的中心点(hpos,vpos),其中hpos和vpos以相对投影图片样本单位计并且可具有非整数实值。

输出如下导出:

应当指出的是,为简明起见,本文不提供矩形区域封装结构、保护带结构和区域式封装结构的完整语法和语义。此外,本文不提供对作为区域式封装结构的语法元素的区域式封装变量和约束的完整推导。然而,参考了mpeg-i的相关部分。

如上所述,mpeg-i指定了媒体流传输系统中的全向媒体的封装、发送信号通知和流传输。具体地讲,mpeg-i指定了如何利用超文本传输协议(http)上的动态自适应流传输(dash)来封装、发送信号通知和流传输全向媒体。dash在iso/iec:iso/iec23009-1:2014,“信息技术-http上的动态自适应流传输(dash)-第1部分:媒体呈现描述和分段格式”,国际标准化组织,第2版,2014年5月15日(在下文中,“iso/iec23009-1:2014”)中有所描述,该文献以引用方式并入本文。dash媒体呈现可以包括数据分段、视频分段和音频分段。在一些示例中,dash媒体呈现可以对应于由服务提供商定义的给定持续时间的线性服务或线性服务的一部分(例如,单个tv节目或在一段时间内连续的线性tv节目集)。根据dash,媒体呈现描述(mpd)是包括dash客户端构造适当的http-url以访问分段并向用户提供流传输服务所需的元数据的文档。mpd文档片段可以包括可延伸标记语言(xml)编码的元数据片段集。mpd的内容为媒体呈现内的所识别资源提供分段的资源标识符和上下文。描述了关于iso/iec23009-1:2014的mpd片段的数据结构和语义。此外,应当指出的是,目前正在提出iso/iec23009-1的草案版本。因此,如本文所用,mpd可以包括如iso/iec23009-1:2014中描述的mpd、当前提出的mpd和/或它们的组合。在iso/iec23009-1:2014中,如mpd中描述的媒体呈现可以包括一个或多个周期的序列,其中每个周期可以包括一个或多个适应集。应当指出的是,在适应集包括多个媒体内容部件的情况下,可以单独描述每个媒体内容部件。每个适应集可以包括一个或多个表示。在iso/iec23009-1:2014中,提供了每个表示:(1)作为单个分段,其中子分段在具有适应集的表示中对齐;以及(2)作为一系列分段,其中每个分段可以由模板生成的全球资源定位符(url)寻址。每个媒体内容部件的属性可以由适应集元素和/或适应集内的元素描述,包括例如内容部件元素。应当指出的是,球体区域结构形成dash描述符发送信号通知各种描述符的基础。

根据上述坐标系,在mpeg-i中,在omaf播放器中,用户的查看视角为从球体的中心朝球体的内表面向外看,并且仅支持三个自由度(3dof)。因此,在包括附加自由度的应用程序中,mpeg-i可能不太理想,例如,不支持六个自由度(6dof)或所谓的3dof+应用程序)或其中用户的查看视角可能从球体的中心移动的所谓的具有视差视频的系统。又如,视差可被称为头部运动视差,并且可被定义为从不同查看位置或查看取向查看的对象的表观位置的位移或差异。如下文进一步详细描述的,本文所述的技术可用于发送信号通知用户(或对象或区域)的位置信息,并且另外,发送信号通知用户位置移动的允许极限,超过该极限vr系统不支持沉浸式体验和/或可能失去观看者跟踪能力。此外,描述了可用于发送信号通知各种类型元数据的通用位置信息结构。在一个示例中,根据本文所述的技术,可通过另外发送信号通知位置信息结构来增强在mpeg-i中发送信号通知的使用球体区域结构的各种元数据片段,如本文所述。又如,用户的查看视角可被称为查看位置或一组查看位置。再如,用户的查看视角可被称为视点或一组视点。

图1是示出根据本公开的一种或多种技术的可被配置为对视频数据进行编码(例如,编码和/或解码)的系统的示例的框图。系统100表示可以根据本公开的一种或多种技术封装视频数据系统的示例。如图1所示,系统100包括源设备102、通信介质110和目标设备120。在图1所示的示例中,源设备102可包括被配置为对视频数据进行编码并将编码的视频数据传输到通信介质110的任何设备。目标设备120可包括被配置为经由通信介质110接收编码视频数据并且对编码的视频数据进行解码的任何设备。源设备102和/或目标设备120可包括配备用于进行有线和/或无线通信的计算设备,并且可以包括例如机顶盒、数字视频录像机、电视机、台式电脑、膝上型电脑或平板电脑、游戏控制台、医学成像设备和移动设备(包括例如智能电话、蜂窝电话、个人游戏设备)。

通信介质110可以包括无线和有线通信介质和/或存储设备的任意组合。通信介质110可以包括同轴电缆、光纤电缆、双绞线电缆、无线发射器和接收器、路由器、交换机、中继器、基站或可用于促进各种设备和站点之间的通信的任何其他设备。通信介质110可以包括一个或多个网络。例如,通信介质110可以包括被配置为允许访问万维网例如互联网的网络。网络可以根据一个或多个电信协议的组合来运营。电信协议可以包括专有方面并且/或者可以包括标准化电信协议。标准化电信协议的示例包括数字视频广播(dvb)标准、高级电视系统委员会(atsc)标准、综合业务数字广播(isdb)标准、有线数据业务接口规范(docsis)标准、全球移动通信系统(gsm)标准、码分多址(cdma)标准、第三代合作伙伴计划(3gpp)标准、欧洲电信标准协会(etsi)标准、互联网协议(ip)标准、无线应用协议(wap)标准以及电气与电子工程师协会(ieee)标准。

存储设备可以包括能够存储数据的任何类型的设备或存储介质。存储介质可以包括有形或非暂态计算机可读介质。计算机可读介质可以包括光盘、闪存、磁存储器或任何其他合适的数字存储介质。在一些示例中,存储器设备或其部分可以被描述为非易失性存储器,并且在其他示例中,存储器设备的部分可以被描述为易失性存储器。易失性存储器的示例可以包括随机存取存储器(ram)、动态随机存取存储器(dram)和静态随机存取存储器(sram)。非易失性存储器的示例可以包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(eprom)或电可擦除和可编程(eeprom)存储器的形式。一个或多个存储设备可以包括存储卡(例如,安全数字(sd)存储卡)、内部/外部硬盘驱动器和/或内部/外部固态驱动器。数据可以根据定义的文件格式存储在存储设备上。

图7是示出可被包括在系统100的具体实施中的部件的示例的概念图。在图7所示的示例性具体实施中,系统100包括一个或多个计算设备402a至402n、电视服务网络404、电视服务提供商站点406、广域网408、局域网410和一个或多个内容提供商站点412a至412n。图7中所示的具体实施表示系统的示例,该系统可被配置为允许数字媒体内容(诸如电影、现场体育赛事等)和与其相关联的数据和应用程序以及媒体呈现被分发到多个计算设备(诸如计算设备402a至402n)并由该多个计算设备访问。在图7所示的示例中,计算设备402a至402n可以包括被配置为从电视服务网络404、广域网408和/或局域网410中的一者或多者接收数据的任何设备。例如,计算设备402a至402n可被配备用于有线和/或无线通信,并且可被配置为通过一个或多个数据信道接收服务,并且可包括电视(包括所谓的智能电视)、机顶盒和数字视频记录器。此外,计算设备402a至402n可以包括台式计算机、膝上型计算机或平板计算机、游戏控制台、移动设备(包括例如“智能”电话、蜂窝电话和个人游戏设备)。

电视服务网络404是被配置为允许分发可包括电视服务的数字媒体内容的网络的示例。例如,电视服务网络404可以包括公共空中电视网络、公共或基于订阅的卫星电视服务提供商网络,以及公共或基于订阅的有线电视提供商网络和/或云上或互联网服务提供商。应当指出的是,尽管在一些示例中,电视服务网络404可以主要用于允许提供电视服务,但是电视服务网络404还可以根据本文所述的电信协议的任何组合允许提供其他类型的数据和服务。此外,应当指出的是,在一些示例中,电视服务网络404可以允许电视服务提供商站点406与计算设备402a至402n中的一个或多个之间的双向通信。电视服务网络404可以包括无线和/或有线通信媒体的任何组合。电视服务网络404可以包括同轴电缆、光纤电缆、双绞线电缆、无线发射器和接收器、路由器、交换机、中继器、基站或可用于促进各种设备和站点之间的通信的任何其他设备。电视服务网络404可根据一个或多个电信协议的组合来运营。电信协议可以包括专有方面并且/或者可以包括标准化电信协议。标准化电信协议的示例包括dvb标准、atsc标准、isdb标准、dtmb标准、dmb标准、有线数据服务接口规范(docsis)标准、hbbtv标准、w3c标准和upnp标准。

再次参考图7,电视服务提供商站点406可被配置为经由电视服务网络404分发电视服务。例如,电视服务提供商站点406可以包括一个或多个广播站、有线电视提供商、或卫星电视提供商、或基于互联网的电视提供商。例如,电视服务提供商站点406可被配置为通过卫星上行链路/下行链路接收传输(包括电视节目)。此外,如图7所示,电视服务提供商站点406可与广域网408通信,并且可被配置为从内容提供商站点412a至412n接收数据。应当指出的是,在一些示例中,电视服务提供商站点406可以包括电视演播室,并且内容可以源自该电视演播室。

广域网408可以包括基于分组的网络,并且根据一个或多个电信协议的组合运营。电信协议可以包括专有方面并且/或者可以包括标准化电信协议。标准化电信协议的示例包括全球系统移动通信(gsm)标准、码分多址(cdma)标准、第三代合作伙伴计划(3gpp)标准、欧洲电信标准协会(etsi)标准、欧洲标准(en)、ip标准、无线应用协议(wap)标准、以及电气与电子工程师协会(ieee)标准,诸如,一个或多个ieee802标准(例如,wi-fi)。广域网408可以包括无线和/或有线通信媒体的任何组合。广域网480可以包括同轴电缆、光纤电缆、双绞线电缆、以太网电缆、无线发射器和接收器、路由器、交换机、中继器、基站、或可用于促进各种设备和站点之间的通信的任何其他设备。在一个示例中,广域网408可以包括互联网。局域网410可以包括基于分组的网络,并且根据一个或多个电信协议的组合运营。可以基于访问级别和/或物理基础设施将局域网410与广域网408区分开。例如,局域网410可以包括安全家庭网络。

再次参考图7,内容提供商站点412a至412n表示可以向电视服务提供商站点406和/或计算设备402a至402n提供多媒体内容的站点的示例。例如,内容提供商站点可以包括具有一个或多个工作室内容服务器的工作室,该工作室内容服务器被配置为向电视服务提供商站点406提供多媒体文件和/或流。在一个示例中,内容提供商站点412a至412n可被配置为使用ip套件提供多媒体内容。例如,内容提供商站点可被配置为根据实时流协议(rtsp)、http等向接收器设备提供多媒体内容。此外,内容提供商站点412a至412n可被配置为通过广域网408向接收器设备计算设备402a至402n和/或电视服务提供商站点406中的一个或多个提供数据(包括基于超文本的内容等)。内容提供商站点412a至412n可包括一个或多个web服务器。可以根据数据格式来定义由数据提供商站点412a至412n提供的数据。

再次参考图1,源设备102包括视频源104、视频编码器106、数据封装器107和接口108。视频源104可包括被配置为捕获和/或存储视频数据的任何设备。例如,视频源104可以包括摄像机和可操作地与其耦接的存储设备。视频编码器106可以包括被配置为接收视频数据并生成表示视频数据的兼容比特流的任何设备。兼容比特流可以指视频解码器可以从其接收和再现视频数据的比特流。兼容比特流的各方面可根据视频编码标准来定义。当生成兼容比特流时,视频编码器106可以压缩视频数据。压缩可是有损的(观察者可觉察的或不可觉察的)或无损的。

再次参考图1,数据封装器107可以接收编码视频数据,并根据定义的数据结构生成兼容比特流,例如,nal单元序列。接收兼容比特流的设备可以从其再现视频数据。应当指出的是,可以使用术语符合性比特流来代替术语兼容比特流。应当指出的是,数据封装器107不必要位于与视频编码器106相同的物理设备中。例如,被描述为由视频编码器106和数据封装器107执行的功能可以分布在图7所示的设备中。

在一个示例中,数据封装器107可以包括被配置为接收一个或多个媒体部件并基于dash生成媒体呈现的数据封装器。图8是示出可实现本公开的一种或多种技术的数据封装器的示例的框图。数据封装器500可被配置为根据本文所述的技术生成媒体呈现。在图8所示的示例中,部件封装器500的功能块对应于用于生成媒体呈现(例如,dash媒体呈现)的功能块。如图8所示,部件封装器500包括媒体呈现描述生成器502、分段生成器504和系统存储器506。媒体呈现描述生成器502、分段生成器504和系统存储器506中的每一者可以互连(物理地、通信地和/或可操作地)以用于部件间的通信,并且可以被实现为各种合适电路中的任一者,诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件、或它们的任何组合。应当指出的是,尽管数据封装器500被示出为具有不同的功能块,但此类图示是出于描述的目的,并且不会将数据封装器500限制到特定的硬件构架。可以使用硬件、固件和/或软件具体实施的任意组合来实现数据封装器500的功能。

此外,媒体呈现描述生成器502可被配置为生成媒体呈现描述片段。分段生成器504可被配置为接收媒体部件并生成用于包括在媒体呈现中的一个或多个分段。系统存储器506可以被描述为非暂态或有形计算机可读存储介质。在一些示例中,系统存储器506可以提供临时和/或长期存储。在一些示例中,系统存储器506或其部分可以被描述为非易失性存储器,并且在其他示例中,系统存储器506的部分可以被描述为易失性存储器。系统存储器506可被配置为存储可在操作期间由数据封装器使用的信息。

如上所述,mpeg-i不支持其中用户的查看视角可从球体的中心移动的应用程序。在一个示例中,根据本文所述的技术,数据封装器107可被配置为基于以下示例性定义、语法和语义来发送信号通知位置信息:

定义

位置结构(positionstruct)指定位置信息和位置极限信息。

-如果xmin、xmax、ymin、ymax、zmin、zmax全部等于0,则该结构指定3d空间中的点。

-否则,该结构指定3d空间中的区域,在该3d区域中具有锚定位置。

语法

语义

xposition、yposition和zposition指定以(0,0,0)作为全局坐标系的中心的3d空间中的合适单位下的位置。

xposition应在xmin到xmax(包括端值)的范围内。

yposition应在ymin到ymax(包括端值)的范围内。

zposition应在zmin到zmax(包括端值)的范围内。

xmin、ymin和zmin指定全局坐标系中分别对应于由该结构指定的3d区域的合适单位下的x、y、z坐标的最小值。

xmax、ymax和zmax指定全局坐标系中分别对应于由该结构指定的3d区域的合适单位下的x、y、z坐标的最大值。

如果limits_flag等于0,则推断xmin、ymin、zmin的值各自等于0并且推断xmax、ymax和zmax的值各自等于1。

应当指出的是,关于本文所述的语义,合适单位可包括米、厘米或毫米中的一者,并且语义可对应于局部坐标系而不是全局坐标系。此外,对于语法元素,可使用固定点值和/或带符号32位整数值来代替浮点值。

这些值的示例性语法和语义可以如下所示。

xposition、yposition和zposition是合适单位下的16.16固定点值,该值指定以(0,0,0)作为全局坐标系的中心的3d空间中的位置。

xposition应在xmin到xmax(包括端值)的范围内。

yposition应在ymin到ymax(包括端值)的范围内。

zposition应在zmin到zmax(包括端值)的范围内。

xmin、ymin和zmin是合适单位下的16.16固定点值,这些值分别指定对应于由该结构指定的3d区域的全局坐标系中的x、y、z坐标的最小值。

xmax、ymax和zmax是合适单位下的16.16固定点值,这些值分别指定对应于由该结构指定的3d区域的全局坐标系中的x、y、z坐标的最大值。

如果limits_flag等于0,则推断xmin、ymin、zmin的值各自等于0并且推断xmax、ymax和zmax的值各自等于1。

在一个变体示例中:如果limits_flag等于1,则xposition应在xmin和xmax(包括端值)的范围内。

在另一个变体中,vrbb()结构可如下所示,具有如前定义的语义。

此外,应当指出的是,关于如上语义,又如:

如果limits_flag等于1,则xposition应在xmin和xmax(包括端值)的范围内。

如果limits_flag等于1,则yposition应在ymin和ymax(包括端值)的范围内。

如果limits_flag等于1,则zposition应在zmin和zmax(包括端值)的范围内。

在一个示例中,根据本文所述的技术,数据封装器107可被配置为发送信号通知位置信息为一组欧拉角和径向距离。例如,数据封装器107可被配置为基于以下示例性定义、语法和语义来发送信号通知位置信息:定义

位置结构(dpositionstruct)指定位置信息。

语法

语义

positionazimuth、positionelevation和positiontilt分别指定以(0,0,0)作为全局坐标系的中心的3d空间中的位置点的方位角、仰角和倾斜角。

positionazimuth应在-180*216至180*216-1(包括端值)的范围内。

positionelevation应在-90*216至90*216(包括端值)的范围内。

positiontilt应在-180*216至180*216-1(包括端值)的范围内。

distance指定3d空间中沿着从(0,0,0)到对应于3d空间中所指示的位置的由positionazimuth、positionelevation和positiontilt定义的点的矢量的合适单位下的距离。

在一个示例中,根据本文所述的技术,数据封装器107可被配置为通过以径向距离增强球体区域结构并且通过由要求用于位置指示的range_included_flag为零来约束球体区域,从而发送信号通知位置信息。例如,数据封装器107可被配置为基于以下示例性定义、语法和语义来发送信号通知位置信息:

定义

位置结构(rpositionstruct)指定位置信息。

语法

语义

distance指定3d空间中沿着从(0,0,0)到对应于3d空间中所指示的位置的由的center_azimuth、center_elevation和center_tilt定义的点的矢量的合适单位下的距离。

应当指出的是,在上述示例中,对于语法元素“distance”,可以使用固定点数据类型代替浮点数据类型。在这种情况下,在一个示例中,distance的语法和语义可以如下:

unsignedint(32)distance;

distance是合适单位下的16.16固定点值,该值指定沿着从(0,0,0)到对应于3d空间中的所指示的位置的3d空间中的由center_azimuth、center_elevation和center_tilt定义的点的矢量的距离。

又如,可将语法元素interpolate添加到positionstruct、rpositionstruct和/或dpositionstruct。例如,可基于以下语法将interpolate添加到positionstruct:

语法

在一个示例中,interpolate可基于以下语义:

语义

interpolate等于0指定该样本中的xposition、yposition、zposition的值应用于目标媒体样本。interpolate等于1指定应用于目标媒体样本的xposition、yposition、zposition的值是从该样本和先前样本中的对应字段的值线性插入的。

在一个示例中,根据本文所述的技术,数据封装器107可被配置为基于以下示例性定义、语法和语义来发送信号通知位置信息,其中附加标记可控制是否在位置结构中发送信号通知(x,y,z)点位置:

定义

位置结构(positionstruct)指定位置信息和位置极限信息。

-如果xmin、xmax、ymin、ymax、zmin、zmax全部等于0,则该结构指定3d空间中的点。

-否则,该结构指定3d空间中的区域,在该3d区域中具有锚定位置。

-如果xposition、yposition和zposition是未指定的,则该结构指定3d空间中的区域(或空间)。

语法

语义

xposition、yposition和zposition是合适单位下的16.16固定点值,该值指定以(0,0,0)作为全局坐标系的中心的3d空间中的位置。

xposition应在xmin到xmax(包括端值)的范围内。yposition应在ymin到ymax(包括端值)的范围内。zposition应在zmin到zmax(包括端值)的范围内。

xmin、ymin和zmin是合适单位下的16.16固定点值,这些值分别指定对应于由该结构指定的3d区域的全局坐标系中的x、y、z坐标的最小值。

xmax、ymax和zmax是合适单位下的16.16固定点值,这些值分别指定对应于由该结构指定的3d区域的全局坐标系中的x、y、z坐标的最大值。

如果limits_flag等于0,则推断xmin、ymin、zmin的值各自等于0并且推断xmax、ymax和zmax的值各自等于1。

在一个示例中,如果position_flag等于0,则推断xmin、ymin、zmin的值各自为未指定的。

在一个示例中,如果position_flag等于0,则推断xmin、ymin、zmin的值各自等于0。

应当指出的是,关于上述语义,合适单位可包括米、厘米或毫米中的一者,并且语义可对应于局部坐标系而不是全局坐标系。

数据封装器107可被配置为根据具有以下示例性定义和语法的文件格式位置框来发送信号通知位置信息:

定义

框类型:“posn”

容器:proiectedomnivideobox

强制性的:no

数量:零或一

该框中的字段提供x、y和z的值,这些值指定要应用于将局部坐标轴转换为全局坐标轴的平移。就立体全向视频而言,这些字段分别应用于每个视图。当positionbox不存在时,推断字段xposition、yposition和zposition均等于0。

语法

aligned(8)classpositionboxextendsfullbox(′posn′,0,0){

positionstruct(0);

}

又如,对于以上框,除projectedomnivideobox之外的一些其他容器可用作容器。另外,该框的数量可替换为如下:

数量:零或更多

数据封装器107可被配置为根据具有以下示例性定义和语法的文件格式位置框来发送信号通知位置信息:

定义

框类型:“vssn”

容器:projectedomnivideobox

强制性的:no

数量:零或一

该框中的(xmin、ymin和zmin)值和(xmax、ymax和zmax)值指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定在其中支持沉浸式vr体验的3d空间。

语法

aligned(8)classviewingspaceboxextendsfullbox(′vssn′,0,flags){

vrbb0;

}

又如,数据封装器107可被配置为根据具有以下示例性定义和语法的文件格式位置框来发送信号通知位置信息,其中除了查看空间边界框之外,在该isobmff框中发送信号通知优选查看位置:

定义

框类型:“vssn”

容器:projectedomnivideobox

强制性的:no

数量:零或一

该框中的(xmin、ymin和zmin)值和(xmax、ymax和zmax)值指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定在其中支持沉浸式vr体验的3d空间。

语法

aligned(8)classviewingspaceboxextendsfullbox(vssn′,0,flags){

positionstruct(1);

}

在一个示例中,在附加标记控制是否在位置结构中发送信号通知(x,y,z)点位置的情况下,数据封装器107可被配置为根据具有以下示例性定义和语法的文件格式位置框来发送信号通知位置信息:

定义

框类型:“vssn”

容器:projectedomnivideobox

强制性的:no

数量:零或一

该框中的(xmin、ymin和zmin)值和(xmax、ymax和zmax)值指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定在其中支持沉浸式vr体验的3d空间。

语法

aligned(8)classviewingspaceboxextendsfullbox(′vssn′,0,flags){

positionstruct(0,1);

}

又如,数据封装器107可被配置为根据具有以下示例性定义和语法的文件格式位置框来发送信号通知位置信息,其中可通过将position_flag和limits_flag二者均设置为1来定义查看空间框,如下所示:

定义

框类型:“vssn”

容器:proiectedomnivideobox

强制性的:no

数量:零或一

该框中的(xmin、ymin和zmin)值和(xmax、ymax和zmax)值指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定在其中支持沉浸式vr体验的3d空间。

语法

aligned(8)classviewingspaceboxextendsfullbox(′vssn′,0,flags){

positionstruct(1,1);

}

又如,上文关于“vssn”框数量的所有情况可替换为

数量:零或更多

而不是

数量:零或一

又如,上文关于“vssn”框数量的所有情况可替换为

数量:零或更多

而不是

数量:一

又如,框可被称为“vspc”或“vspa”或一些其他名称,而不是“vssn”。

又如,对于框,可使用一些其他容器例如visualsampleentry来代替容器projectedomnivideobox。

如上所述,mpeg-i包括初始查看取向元数据。在一个示例中,位置信息信令可用于增强初始查看取向和位置的信令。例如,数据封装器107可被配置为发送信号通知具有以下定义、语法和语义的初始查看取向元数据:

定义

该元数据指示当播放相关联的媒体轨道或存储为图像项的单个全向图像时应当使用的初始查看取向和位置。在该类型的元数据不存在的情况下,应推断出centre_azimuth、centre_elevation和centre_tilt均等于0,并且应推断出xposition、yposition和zposition均等于0。

omaf播放器应使用如下所示或推断的centre_azimuth、centre_elevation和centre_tilt值:

-如果omaf播放器的取向/视区元数据是基于包括在或附接到查看设备的取向传感器获得的,则omaf播放器应

о遵守仅centre_azimuth值,并且

о忽略centre_elevation和centre_tilt的值并使用来自取向传感器的相应值代替。

о并且遵守xposition、yposition和zposition的值。

-否则,omaf播放器应遵守全部三个centre_azimuth、centre_elevation和centre_tilt以及xposition、yposition和zposition的值。

应使用轨道样本条目类型“初始查看位置”(例如,“invp”)。

在样本条目的sphereregionconfigbox中,shape_type应等于0,dynamic_range_flag应等于0,static_azimuth_range应等于0,并且static_elevation_range应等于0。

注意:该元数据应用于任何视区,无论视区覆盖哪个方位角和仰角范围。因此,dynamic_range_flag、static_azimuth_range和static_elevation_range不影响该元数据涉及的视区的尺寸,从而需要等于0。当omaf播放器遵守如上推断的centre_tilt值时,可以通过将视区的球体区域的方位角和仰角范围设置为等于实际用于显示视区的那些方位角和仰角范围来解释centre_tilt值。

语法

语义

refresh_flag等于0指定在从相关联的媒体轨道中的时间并行样本开始回放时应使用由positionstruct(0)发送信号通知的所指示的查看取向和/或查看位置。refresh_flag等于1指定在渲染每个相关联的媒体轨道的时间并行样本(即均连续回放)时以及在从时间并行样本开始回放时,应始终使用由positionstruct(0)发送信号通知的所指示的查看取向和/或查看位置。

注2:refresh_flag等于1使内容作者能够指示即使在连续播放视频时也推荐特定的查看取向和/或查看位置。例如,可针对场景剪辑位置指示等于1的refresh_flag。

在一个示例中,可通过将用户的初始位置设定为发送信号通知的初始查看取向和位置来自动校准和设置用户的vr空间。

mpeg-i提供了描述解码图片与全局坐标轴的关系的信息区段。即,mpeg-i提供了可用于内容创作的有序过程和用于将封装图片的样本位置映射到用于内容渲染的单位球体的有序过程。在能够发送信号通知位置信息的情况下,可相对于全局坐标轴平移单位球体以用于内容创作。也就是说,平移量可由positionbox中指示的x、y、z的值指定。在这种情况下,局部坐标轴的中心因此相对于全局坐标轴的中心平移。在一个示例中,positionbox不存在可指示局部坐标轴中心与全局坐标轴中心相同。此外,对于内容渲染,如果指示平移,则可将相对于局部坐标轴的笛卡尔坐标转换成相对于全局坐标轴的笛卡尔坐标。否则,如果未指示平移,则全局坐标轴的中心与局部坐标轴的中心相同。在这种情况下,图10示出了从球形图片到可用于内容创作的封装图片的转换以及从封装图片到可用于omaf播放器中的待渲染的球形图片的对应转换。上述附加步骤如图10的部分b)所示。

在一个示例中,根据本文所述的技术,中心可以如下从局部坐标轴平移到全局坐标轴:

该过程的输入为:

-xposition、yposition、zposition,以及

-相对于局部坐标轴的笛卡尔坐标(x,y,z)。

该过程的输出为:

-相对于全局坐标轴的笛卡尔坐标(x',y',z'),以度数来表示。

该过程指定坐标系的中心的平移。

当xposition、yposition、zposition中的任一个不等于零时,播放器需要应用本子句中指定的平移过程来将局部坐标轴的中心转换为全局坐标轴的中心。

假设不同媒体类型的全局坐标系的中心在内容产生期间对齐。

输出如下导出:

x'=x+xposition

y'=y+yposition

z'=z+xposition

在另选的示例中,输出可如下导出:

x'=x-xposition

y'=y-yposition

z'=z-zposition

在一个示例中,根据本文所述的技术,数据封装器107可被配置为发送信号通知沉浸式体验空间。例如,数据封装器107可被配置为基于以下示例性定义、语法和语义发送信号通知沉浸式vr边界:

定义

用户可获得沉浸式vr体验的3d空间可被限制在3dof+或6dof或视差视频的应用程序中。沉浸式vr边界定时元数据轨道指示支持沉浸式体验的vr空间边界。该空间可为静态的或可基于样本动态变化。边界框指示沉浸式vr空间的极限。边界框内的某些空间可被指示为vr体验的排除空间。例如,环境内对应于相机/麦克风捕获设备的空间可被标记为整个沉浸式vr空间内的排除空间。在其他示例中,如果在非矩形棱柱/立方体中提供沉浸式vr体验,则可应用发送信号通知排除空间。可特别为了排除空间而存在应用程序/跟踪设备。

又如,用户可获得沉浸式vr体验的3d空间可如下被定义为查看空间:

查看空间是在其中启用图像和视频的渲染并且vr体验有效的查看位置的3d空间。

查看空间可随时间而变化,即,查看空间可为动态的并且可因此利用动态元数据发送信号通知关于查看空间的信息。

例如,查看空间可实现用于以下查看情况的沉浸式体验:

·用户自然地坐在沙发或转椅上。

·用户自然地站立,但不走动。

·用户坐在转椅上

另外,查看空间可包含受限于头部运动移动的查看位置。

语法和语义

应使用轨道样本条目类型“vrsp”。

该样本条目类型的样本条目如下指定:

static_vr_space_flag等于1指定沉浸式vr体验空间不针对参考该样本条目的每个样本变化。static_vr_space_flag等于0指定沉浸式3dvr空间可针对参考该样本条目的样本变化。

vr_space_exclusions_info_present_flag等于1指定沉浸式vr体验空间包括在用于沉浸式vr体验的边界框vrbb(0)内不支持沉浸式vr体验的排除区域。vr_space_exclusions_info_present_flag等于0指定沉浸式vr体验空间不包括用于沉浸式vr体验的边界框vrbb(0)内的任何排除区域。

当vr_space_exclusions_info_present_flag等于1时,发送信号通知static_vr_exclusions_flag。当vr_space_exclusions_info_present_flag等于0时,不发送信号通知static_vr_exclusions_flag。

static_vr_exclusions_flag等于1指定从沉浸式vr体验中排除的空间不针对参考该样本条目的每个样本变化。static_vr_exclusions_flag等于0指定从沉浸式vr体验中排除的空间可针对参考该样本条目的样本变化。当不存在时,推断static_vr_exclusions_flag等于1。

样本条目中的vrbb(0)指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定支持沉浸式vr体验的3d空间,在该3d空间内排除任何发送信号通知的排除vr空间区域。

static_num_excluded_regions_minus1加1指定在样本条目中发送信号通知的vrbb(i)结构的数量,该vrbb(i)结构的数量指示来自沉浸式vr体验的排除空间的数量。

样本条目中i大于0的vrbb(i)指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定在由vrbb(0)指定的3d空间中的不支持沉浸式vr体验的3d空间。符合性的要求是i大于0的vrbb(i)中的每一个应在由vrbb(0)指定的3d空间内。

应使用如vrspacesample所示的样本语法。

样本中的vrbb(0)指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定支持用于相关联的媒体轨道样本的沉浸式vr体验的3d空间,在该3d空间内排除任何发送信号通知的排除vr空间区域。

num_excluded_regions_minus1加1指定在样本条目中发送信号通知的vrbb(i)结构的数量,该vrbb(i)结构的数量指示来自沉浸式vr体验的排除空间的数量。

样本中i大于0的vrbb(i)指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定在由vrbb(0)指定的3d空间中的不支持用于相关联的媒体轨道样本的沉浸式vr体验的3d空间。符合性的要求是i大于0的vrbb(i)中的每一个应在由vrbb(0)指定的3d空间内。

在一个示例中,数据封装器107可被配置为基于以下示例性定义、语法和语义来发送信号通知isobmff的查看空间框:

定义

框类型:“vssn”

容器:projectedomnivideobox

强制性的:no

数量:零或一

该框中的字段指定3d查看空间,在该3d查看空间内提供沉浸式vr体验。

语法

语义

vrbb(0)指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定支持沉浸式vr体验的3d查看空间,在该3d查看空间内排除任何发送信号通知的排除的vr空间区域。

vr_space_exclusions_info_present_flag等于1指定沉浸式vr体验空间包括在边界框vrbb(0)内不支持沉浸式vr体验的排除区域。vr_space_exclusions_info_present_flag等于0指定沉浸式vr体验空间不包括边界框vrbb(0)内的任何排除区域。

num_excluded_regions_minus1加1指定发送信号通知的vrbb(i)结构的数量,该vrbb(i)结构的数量指示来自沉浸式vr体验的排除空间的数量。

i大于0的vrbb(i)指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定在由vrbb(0)指定的3d空间中的不支持沉浸式vr体验的3d空间。符合性的要求是i大于0的vrbb(i)中的每一个应在由vrbb(0)指定的3d空间内。

又如,可用positionstruct(0)或positionstruct(1)或positionstruct(1,1)或positionstruct(0,1)或positionstruct(1,0)替换上述一个或多个vrbb(0)和/或vrbb(i)结构。

又如,上述语义中的一些可以如下:

vrbb(0)指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定3d查看空间范围。

vr_space_exclusions_info_present_flag等于1指定沉浸式vr体验空间包括在查看空间内不支持沉浸式vr体验的排除区域。vr_space_exclusions_info_present_flag等于0指定沉浸式vr体验空间不包括在查看空间内的任何排除区域。

num_excluded_regions_minus1加1指定发送信号通知的vrbb(i)结构的数量,该vrbb(i)结构的数量指示来自查看空间的排除空间的数量。

i大于0的vrbb(i)指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定在由vrbb(0)指定的查看空间中不支持沉浸式vr体验的3d空间。符合性的要求是i大于0的vrbb(i)中的每一个应在由vrbb(0)指定的3d空间内。

此外,数据封装器107可被配置为发送信号通知可针对沉浸式vr体验空间指定的附加信息,该沉浸式vr体验空间可被称为查看空间和/或对应于排除区域的空间。为此,在一个示例中,可以发送信号通知与沉浸式vr体验空间和/或对应于排除区域的空间相关联的一个或多个轨道标识符(track_id)值的列表。从而,沉浸式vr体验空间和/或对应于排除区域的空间与一个或多个轨道的此类链接允许使用isobmff定义的机制(例如,与参考轨道相关联的样本条目/其他定时元数据轨道等)发送信号通知与那些空间相关联的样本的任何相关特征。在一个示例中,该关联可被定义为:相关联的/参考轨道包括对应于沉浸式vr体验空间和/或对应于排除区域的空间的内容。在一个示例中,可发送信号通知标记以指示是否发送信号通知沉浸式vr体验空间和/或对应于排除区域的空间与这些轨道的关联。在一个示例中,可如下发送信号通知该信息:

语法和语义

vr_space_track_association_info_present_flag等于1指定在vrbb(i)中发送信号通知与沉浸式vr体验空间和/或排除区域空间相关联的轨道id信息。vr_space_track_association_info_present_flag等于0指定在vrbb(i)中不发送信号通知与沉浸式vr体验空间和/或排除区域空间相关联的轨道id信息。

num_track_ids_minus1加1指定发送信号通知的assoc_track_ids的数量。

assoc_track_ids是提供对应于沉浸式vr体验空间和/或排除区域空间的参考轨道的轨道标识符的无符号32位整数的阵列。assoc_track_ids中的每个值应当是唯一的。保留值0。

又如,可以在样本条目(例如,vrspacesampleentry)中和/或在vrbb(i)外部的样本(例如,vrspacesample())中直接发送信号通知那些语法元素中的一个或多个,而不是在vrbb(i)中发送信号通知num_track_ids_minus1和assoc_track_ids[i]。

又如,可用positionstruct(0)或positionstruct(1)或positionstruct(1,1)或positionstruct(0,1)或positionstruct(1,0)替换上述一个或多个vrbb(0)和/或vrbb(i)结构。例如,上述viewingspacebox可被定义为:

在一个示例中,使用所指示的沉浸式vr空间边界的omaf播放器的期望操作可如下:

-从位置跟踪传感器获得和/或通过其他外部装置知道在任何给定时间的用户位置。用户位置被指示为(x,y,z)

-从vrspacesampleentry和/或vrspacesample解析发送信号通知的对于i=0和i>0的vrbb(i)的值。

-omaf播放器可将当前用户位置确定为以下类别之一:

о用户位置在由vrbb(o)指示的沉浸式vr体验空间之外:在这种情况下,期望omaf播放器不提供沉浸式体验。omaf播放器可选择显示警告或其他视觉/听觉指示,这些指示可向用户指示因为用户已经离开了内容支持沉浸式体验的空间/位置所以不提供沉浸式体验。另外,可向用户提供如何返回到提供沉浸式vr体验的空间的指示。

о用户位置在沉浸式vr体验空间内部并且在由每个o>1的vrbb(o)指示的排除区域空间的外部。

在这种情况下,期望omaf播放器基于当前用户位置提供由内容创建者提供的渲染和沉浸式体验。

о用户位置在由vrbb(o)指示的沉浸式vr体验空间内部,但在由vrbb(e)指示的排除区域e内部

在这种情况下,如果用户所在的排除空间具有关于相关联的轨道的信息,则期望omaf播放器基于样本条目、样本和那些轨道的任何相关联的元数据来解析那些轨道并随后进行渲染操作。

如果用户所在的排除空间不具有关于相关联的轨道的信息,则omaf播放器可选择显示警告或其他视觉/听觉指示,这些指示可向用户指示因为用户已经移出从用户的沉浸式体验中排除的位置所以不提供沉浸式体验。

在一个示例中,根据本文所述的技术,数据封装器107可被配置为发送信号通知多个标记视点位置。例如,数据封装器107可被配置为基于以下示例性定义、语法和语义来发送信号通知用户视点位置信息:

定义

用户视点位置定时元数据轨道指示在3d空间中用户将会处于的推荐位置以及任选的该位置处的推荐取向。根据应用程序,可引导用户物理地移动到推荐位置,或者另选地,可考虑到在当时当前用户位置将会处于的推荐位置和取向来渲染vr场景。在后一种情况下,如果不时地改变用户位置,可执行一些场景过渡效果。

语法和语义

应使用轨道样本条目类型“usvp”。

该样本条目类型的样本条目如下指定:

classusvpsampleentry(type)extendsmetadatasampleentry(‘usvp’){

stringuserposition_label;

}

userposition_label是提供对用户视点位置的文本描述的空封端的utf-8字符串。

应使用如usvpsample所示的样本语法。

positionstruct中的xposition、yposition和zposition指示局部坐标轴中的3d空间中的推荐(x,y,z)用户视点位置。

在一个示例中,positionstruct中的xposition、yposition和zposition指示全局坐标轴中的3d空间中的推荐(x,y,z)用户视点位置。

又如,可允许positionstruct中的limits_flag等于1或0。在这种情况下,如果limits_flag等于1,则xmin、ymin、zmin、xmax、ymax和zmax表示在提供沉浸式vr体验时允许用户移动局部坐标轴中的x、y、z坐标的范围。如果limits_flag等于0,则推断xmin、ymin、zmin、xmax、ymax和zmax的值等于前一个样本中的对应值。当在该定时元数据轨道中每个样本中的limits_flag等于0时(即未发送信号通知xmin、ymin、zmin、xmax、ymax和zmax的值),推断xmin、ymin、zmin各自等于0并且推断xmax、ymax和zmax各自等于1。

orientation_flag等于1指定sphereregionstruct(0)语法结构紧接在该标记之后。orientation_flag等于0指定sphereregionstruct(0)语法结构不跟随该标记,并且如下推断在该视点处的推荐取向参数:推断centre_azimuth、centre_elevation、centre_tilt均等于0。另外,推断shape_type等于0,推断azimuth_range和elevation_range二者均等于0,并且推断interpolate等于0。

当orientation_flag等于1时:

在样本条目的sphereregionconfigbox中,shape_type应等于0。

static_azimuth_range和static_elevation_range(当存在时)或者azimuth_range和elevation_range应各自等于0。

centre_azimuth、centre_elevation和center_tilt指示在由positionstruct指示的位置处的推荐查看取向。

又如,推荐用户位置和/或推荐用户取向中的任一个可以是静态的并且可以在样本条目中被发送信号通知。例如,数据封装器107可被配置为基于以下示例性语法和语义来发送信号通知用户视点位置信息:

语法和语义

static_position_flag等于1指定样本条目中的positionstruct中的xposition、yposition和zposition指示所有样本的局部坐标轴中的3d空间中的推荐(x,y,z)用户视点位置。static_position_flag等于0指定样本中的positionstruct指示局部坐标轴中的3d空间中的推荐(x,y,z)用户视点位置。

static_orientation_flag等于1指定样本条目中的sphereregionstruct指示所有样本的推荐取向。static_orientation_flag等于0指定样本中的sphereregionstruct指示推荐取向。

应使用如usvpsample所示的样本语法。

又如,可将基于逐个样本的推荐用户位置的变化发送信号通知为相比于先前样本的(x,y,z)位置中的相对变化。

在一个示例性变体中,可以在样本条目或样本中发送信号通知标记以指示发送信号通知的(x,y,z)位置是绝对的还是相对于先前样本的。例如,根据以下语法元素:

unsignedint(1)relative_position_flag;

relative_position_flag等于1指定该样本中positionstruct中的xposition、yposition和zposition指示局部坐标轴中的3d空间中的推荐(x,y,z)用户视点位置为与先前样本的推荐(x,y,z)用户视点位置相比的差值。relative_position_flag等于0指定该样本中positionstruct中的xposition、yposition和zposition指示局部坐标轴中的3d空间中的推荐(x,y,z)用户视点位置的绝对值。

在一个示例中,在使用相对用户位置发送信号通知的情况下,可以使用更少的位来指示xposition、yposition和zposition的值(全部以带符号整数的数据类型发送信号通知)。

在一个示例中,使用所指示的多个标记用户视点位置的omaf播放器的期望操作可如下:

-omaf播放器应解析一个或多个可用的定时元数据轨道样本条目类型“usvp”,并解析这些轨道中的每一个的usvpsampleentry和userposition_label。

-omaf播放器可基于来自上述一个或多个定时元数据轨道的解析的userposition_label字符串来选择显示可用用户视点位置列表。

-可要求用户从上述可用用户视点位置列表中选择优选视点位置。

-基于用户选择,omaf播放器可选择渲染如下vr场景,假设当前用户位置将处于由用于所选择的userposition_label的样本数据指示的位置处,并且在由发送信号通知的取向信息指示或推断的取向上。

应当指出的是,在一个示例中,可用“查看空间”替换“支持沉浸式vr体验的3d空间”的全部或一些情况。又如,可用“vr体验有效的查看空间”替换“支持沉浸式vr体验的3d空间”的全部或一些情况。

在一个示例中,根据本文所述的技术,数据封装器107可被配置为基于以下示例性定义、语法和语义来发送信号通知球形空间的查看空间信息:定义

球体空间结构(spherestruct)指定关于球体的信息。

语法

aligned(8)spherestruct(){

unsignedint(32)radius;

}

语义

radius指定3d空间中的合适单位下的球体的半径,其中球体的中心位于参考点处。保留值0。

在一个示例中,上述信息可对应于局部坐标系。在变体示例中,上述信息可对应于全局坐标系。在一个示例中,上述信息可对应于一些公共参考坐标系。例如,公共参考坐标系可以是对于多个视点公共的。在一个示例中,对于以上语义,合适单位可以是米。在一个示例中,对于以上语义,合适单位可以是厘米。在一个示例中,对于以上语义,合适单位可以是毫米。

在一个示例中,对于以上语义,合适单位可以在可以根据以下语法和语义发送信号通知的标度中:

语法

aligned(8)classspherestruct(scale){

unsignedint(32)radius;

}

语义

radius指定3d空间中的单位下的球体的半径,其中scale指定一厘米中的单位数,并且球体的中心位于参考点处。保留值0。

在一个示例中,当合适单位在标度中时,数据封装器107可被配置为基于以下示例性语法和语义发送信号通知球形空间的查看空间信息:语法

语义

scale指定对应于1厘米的单位数。

radius指定3d空间中的合适单位下的球体的半径,其中scale指定一厘米中的单位数,其中球体的中心位于参考点处。保留值0。

在一个示例中,可在spherestruct中发送信号通知保护范围空间半径值。保护范围空间可对应于提供沉浸式vr体验的3d空间,但不保证是最佳的。因此,沉浸式vr体验可在保护范围空间中正常(或逐渐)劣化。在一个示例中,当允许在spherestruct中发送信号通知保护范围半径值时,数据封装器107可被配置为基于以下示例性语法和语义来发送信号通知球形空间的查看空间信息:

语法

语义

guard_range_presence_flag等于1指示通过guard_radius_diff发送信号通知关于保护范围空间的信息。guard_presence_flag等于0指示不发送信号通知关于保护范围空间的信息并且保护范围空间可存在或可不存在。

guard_radius_diff指定为球形外壳的保护范围空间的厚度。

保护范围空间对应于半径等于radius(即,发送信号通知的语法元素)的外球体以及半径等于(radius-guard_radius_diff)的内球体之间的球形外壳。guard_radius_diff应小于radius。guard_radius_diff等于0指示保护范围空间不存在并且在半径等于radius的球体中保证沉浸式vr体验。

在一个示例中,可将guard_radius_diff发送信号通知为radius的百分比。

在一个示例中,可以不发送信号通知guard_range_presence_flag,并且可以始终发送信号通知guard_radius_diff。在一个示例中,这可在将guard_radius_diff发送信号通知为radius的百分比时完成。在这种情况下,值0可指示保护范围空间不存在,并且该信令可保存8位,如根据以下语法和语义所示:

语法

语义

guard_radius_diff指定半径等于radius的球体内的保护范围空间球形外壳的厚度作为radius的百分比。guard_radius_diff等于0指示保护范围空间不存在并且在半径等于radius的球体中保证沉浸式vr体验。guard_radius_diff应在0至100(包括端值)的范围内。保留值101至255。

又如,7位可用于guard_radius_diff,并且一位可保持保留,如下所示:语法

在这种情况下,guard_radius_diff应在0至100(包括端值)的范围内。保留值101至127。又如,guard_radius_diff的语义可如下所示:

guard_radius_diff指定半径等于radius的球体内的保护范围空间球形外壳的厚度作为radius的百分比。guard_radius_diff等于0表示保护范围空间不存在并且在半径等于radius的球体中保证沉浸式vr体验。guard_radius_diff等于101指示保护范围空间可存在或可不存在并且不发送信号通知关于保护范围空间的信息。guard_radius_diff应在0至101(包括端值)的范围内。保留值102至255。

在一个示例中,另外,可将语法元素scale与spherestruct()结构中的保护范围空间相关的语法元素一起发送信号通知。

数据封装器107可被配置为根据具有以下示例性定义和语法的文件格式位置框来发送信号通知位置信息:

定义

框类型:“vssn”

容器:projectedomnivideobox

强制性的:no

数量:零或一

spherestruct()中该框中的radius指定球体,该球体指定围绕观看者(或用户)的3d查看空间。

语法

aligned(8)classviewingspaceboxextendsfullbox(′vssn′,0,flags){

spherestruct();

}

在一个示例中,根据本文所述的技术,数据封装器107可被配置为基于以下示例性定义、语法和语义来发送信号通知椭球体空间的查看空间信息:

定义

椭球体空间结构(ellipsoidstruct)指定关于椭球体的信息。

语法

语义

radiusx、radiusy、radiusz分别指定3d空间中的合适单位下的椭球体x、y和z向的半轴长度,其中椭球体的中心位于参考点处。保留值0。

在一个示例中,上述信息可对应于局部坐标系。在变体示例中,上述信息可对应于全局坐标系。在一个示例中,上述信息可对应于一些公共参考坐标系。例如,公共参考坐标系可以是对于多个视点公共的。在一个示例中,对于以上语义,合适单位可以是米。在一个示例中,对于以上语义,合适单位可以是厘米。在一个示例中,对于以上语义,合适单位可以是毫米。

在一个示例中,合适单位可以在可以根据以下语法和语义发送信号通知的标度中:

语法

语义

radiusx、radiusy、radiusz分别指定3d空间中的合适单位下的椭球体x、y和z向的半轴长度,其中scale指定一厘米中的单位数,其中椭球体的中心位于参考点处。保留值0。

在一个示例中,当合适单位在标度中时,数据封装器107可被配置为根据以下语法和语义发送信号通知查看空间信息:

语法

语义

scale指定对应于1厘米的单位数。

radiusx、radiusy、radiusz分别指定3d空间中的合适单位下的椭球体x、y和z向的半轴长度,其中scale指定一厘米中的单位数,其中椭球体的中心位于参考点处。保留值0。

在一个示例中,可在ellipsoidstruct中发送信号通知保护范围半径值。在一个示例中,当允许在ellipsoidstruct中发送信号通知保护范围半径值时,数据封装器107可被配置为基于以下示例性语法和语义来发送信号通知球形空间的查看空间信息:

语法

语义

guard_range_presence_flag等于1指示通过guard_radius_diff发送信号通知关于保护范围空间的信息。guard_presence_flag等于0指示不发送信号通知关于保护范围空间的信息并且保护范围空间可存在或可不存在。

guard_radius_diffx、guard_radius_diffy、guard_radius_diffz分别用于指定内椭球体的形状,其中在内椭球体和外椭球体之间的空间对应于保护范围空间。

保护范围空间是在x、y和z半径中半轴长度分别等于radiusx、radiusy、radiusz的外椭球体以及x、y和z半轴长度分别等于(radiusx-guard_radius_diffx)、(radiusy-guard_radius_diffy)、(radiusz-guard_radius_diffz)的内椭球体之间的空间。guard_radius_diffx应小于radiusx。guard_radius_diffy应小于radiusy。guard_radius_diffz应小于radiusz。

当guard_radius_diffx、guard_radius_diffy和guard_radius_diffz各自等于0时,指示保护范围空间不存在,并且在由radiusx、radiusy、radiusz发送信号通知的椭球体中保证沉浸式vr体验。

在一个示例中,可分别将guard_radius_diffx、guard_radius_diffy和guard_radius_diffz发送信号通知为radiusx、radiusy和radius的百分比。

在一个示例中,可以不发送信号通知guard_range_presence_flag,并且可以始终发送信号通知guard_radius_diffx、guard_radius_diffy和guard_radius_diffz。这可在分别将guard_radius_diffx、guard_radius_diffy和guard_radius_diffz发送信号通知为radiusx、radiusy和radiusz的百分比时完成,如根据以下语法和语义所示:

语法

语义

guard_radius_diffx、guard_radius_diffy、guard_radius_diffz分别用于将内椭球体的形状指定为百分比值,其中在内椭球体和外椭球体之间的空间对应于保护范围空间。

保护范围空间是在x、y和z半轴长度分别等于radiusx、radiusy、radiusz的外椭球体以及x、y和z半轴长度分别等于(radiusx*-guard_radius_diffx)、(radiusy-guard_radius_diffy)、(radiusz-guard_radius_diffz)的内椭球体之间的空间。guard_radius_diffx应小于radiusx。guard_radius_diffxy应小于radiusy。guard_radius_diffz应小于radiusz。

又如,7位可用于guard_radius_diffx、guard_radius_diffy和guard_radius_diffz,并且剩余位可保持保留,如下所示:

语法

在这种情况下:guard_radius_diffx、guard_radius_diffy和guard_radius_diffz中的每一个应在0至100(包括端值)的范围内。保留值101至127。在一个示例中,可使用以下语义:

guard_radius_diffx、guard_radius_diffy、guard_radius_diffz分别用于将内椭球体的形状指定为百分比值,其中在内椭球体和外椭球体之间的空间对应于保护范围空间。

保护范围空间是在x、y和z半轴长度分别等于radiusx、radiusy、radiusz的外椭球体以及x、y和z半轴长度分别等于(radiusx*(100-guard_radius_diffx)/100)、(radiusy*(100-guard_radius_diffy)/100)、(radiusz*(100-guard_radius_diffz)/100)的内椭球体之间的空间。guard_radius_diffx、guard_radius_diffy、guard_radius_diffz各自应在0至100(包括端值)的范围内。保留值101至255。

在一个示例中,可使用以下语义:

保护范围空间是在x、y和z半轴长度分别等于radiusx、radiusy、radiusz的外椭球体以及x、y和z半轴长度分别等于(radiusx*(guard_radius_diffx)/100)、(radiusy*(guard_radius_diffy)/100)、(radiusz*(guard_radius_diffz)/100)的内椭球体之间的空间。guard_radius_diffx、guard_radius_diffy、guard_radius_diffz各自应在0至100(包括端值)的范围内。保留值101至255。

又如,可针对guard_radius_diffx、guard_radius_diffy、guard_radius_diffz定义如下特殊值:

guard_radius_diffx、guard_radius_diffy和guard_radius_diffz各自等于0指示保护范围空间不存在并且在x、y和z半轴长度等于radiusx、radiusy、radiusz的椭球体中保证沉浸式vr体验。

guard_radius_diffx、guard_radius_diffy和guard_radius_diffz应在0至100(包括端值)的范围内。保留值101至255。

在一个示例中,可使用以下语义:

guard_radius_diffx、guard_radius_diffy和guard_radius_diffz各自等于0指示保护范围空间不存在并且在x、y和z半轴长度等于radiusx、radiusy、radiusz的椭球体中保证沉浸式vr体验。guard_radius_diff等于101指示保护范围空间可存在或可不存在并且不发送信号通知关于保护范围空间的信息。guard_radius_diffx、guard_radius_diffy和guard_radius_diffz应在0至101(包括端值)的范围内。保留值102至255。

在一个示例中,另外,可将语法元素scale与ellipsoidstruct()结构中的保护范围空间相关的语法元素一起发送信号通知。

数据封装器107可被配置为根据具有以下示例性定义和语法的文件格式位置框来发送信号通知位置信息:

定义

框类型:“vssn”

容器:projectedomnivideobox

强制性的:no

数量:零或一

ellipsoidstruct()中该框中的radiusx、radiusy、radiusz指定椭球体,该椭球体指定围绕观看者(或用户)的3d查看空间。

语法

aligned(8)classviewingspaceboxextendsfullbox(′vssn′,0,flags){

ellipsoidstruct();

}

在一个示例中,根据本文所述的技术,数据封装器107可被配置为基于以下示例性定义、语法和语义来发送信号通知圆柱体空间的查看空间信息:

定义

圆柱体空间结构(cylinderstruct)指定关于圆柱体的信息。

语法

语义

radius指定3d空间中的合适单位下的圆柱体的半径,其中圆柱体围绕从point(0)至point(1)的线形成。保留值0。

x[i]、y[i]和z[i]是合适单位下的值,这些值指定以(0,0,0)作为全局坐标系的中心的3d空间中的点的x、y、z坐标。

在一个示例中,上述信息可对应于局部坐标系。在变体示例中,上述信息可对应于全局坐标系。在一个示例中,上述信息可对应于一些公共参考坐标系。例如,公共参考坐标系可以是对于多个视点公共的。在一个示例中,对于以上语义,合适单位可以是米。在一个示例中,对于以上语义,合适单位可以是厘米。在一个示例中,对于以上语义,合适单位可以是毫米。在一个示例中,对于以上语义,“合适单位”可以在发送信号通知的“标度”中。

在一个示例中,根据本文所述的技术,数据封装器107可被配置为基于以下示例性语法和语义来发送信号通知圆柱体空间的查看空间信息:语法

语义

radius指定3d空间中的合适单位下的圆柱体的半径,其中scale指定一厘米中的单位数,其中圆柱体围绕从point(0)至point(1)的线形成。保留值0。

在一个示例中,根据本文所述的技术,数据封装器107可被配置为基于以下示例性语法和语义来发送信号通知圆柱体空间的查看空间信息:语法

语义

scale指定对应于1厘米的单位数。

radius指定3d空间中的合适单位下的圆柱体的半径,其中scale指定一厘米中的单位数,其中圆柱体围绕从point(0)至point(1)的线形成。保留值0。

x[i]、y[i]和z[i]是合适单位下的值,这些值指定以(0,0,0)作为全局坐标系的中心的3d空间中的点的x、y、z坐标。

在一个示例中,可在cylinderstruct中发送信号通知保护范围半径值。保护范围空间可对应于提供沉浸式vr体验的3d空间,但不保证是最佳的。因此,沉浸式vr体验可在保护范围空间中正常劣化。在一个示例中,当允许在cylinderstruct中发送信号通知保护范围半径值时,数据封装器107可被配置为基于以下示例性语法和语义来发送信号通知圆柱体的查看空间信息:

语法

语义

guard_range_presence_flag等于1指示通过guard_radius_diff发送信号通知关于保护范围空间的信息。guard_presence_flag等于0指示不发送信号通知关于保护范围空间的信息并且保护范围空间可存在或可不存在。

guard_radius_diff指定为圆柱形外壳的保护范围空间的厚度。

保护范围空间对应于半径等于radius的外圆柱体以及半径等于(radius-guard_radius_diff)的内圆柱体之间的圆柱形外壳。guard_radius_diff应小于radius。guard_radius_diff等于0指示保护范围空间不存在并且在由point(0)、point(1)和radius定义的圆柱体中保证沉浸式vr体验。

在一个示例中,可将guard_radius_diff发送信号通知为radius的百分比。

在一个示例中,可以不发送信号通知guard_range_presence_flag,并且可以始终发送信号通知guard_radius_diff。在一个示例中,这可在将guard_radius_diff发送信号通知为radius的百分比时完成。在这种情况下,值0可指示保护范围空间不存在,并且该信令可保存8位。在一个示例中,在这种情况下,数据封装器107可被配置为基于以下示例性语法和语义来发送信号通知圆柱体空间的查看空间信息:

语法

语义

guard_radius_diff指定半径等于radius的圆柱体内的保护范围空间圆柱形外壳的厚度作为radius的百分比。guard_radius_diff等于0指示保护范围空间不存在并且在由point(0)、point(1)和radius定义的圆柱体中保证沉浸式vr体验。

guard_radius_diff应在0至100的范围内。保留值101至255。

又如,可针对guard_radius_diff定义如下特殊值:

guard_radius_diff指定半径等于radius的圆柱体内的保护范围空间圆柱形外壳的厚度作为radius的百分比。guard_radius_diff等于0指示保护范围空间不存在并且在由point(0)、point(1)和radius定义的圆柱体中保证沉浸式vr体验。guard_radius_diff等于101指示保护范围空间可存在或可不存在并且不发送信号通知关于保护范围空间的信息。guard_radius_diff应在0至101的范围内。保留值102至255。

在一个示例中,另外,可将语法元素scale与cylinderstruct()结构中的保护范围空间相关的语法元素一起发送信号通知。在一个示例中,可能需要约束圆柱体,使得圆柱体的轴线平行于坐标轴中的一个。例如,圆柱体的轴线可能需要平行于x轴。例如,圆柱体的轴线可能需要平行于y轴。例如,圆柱体的轴线可能需要平行于z轴。例如,可添加以下约束中的一个或多个:

比特流符合性的要求是x[0]应等于x[1]。

比特流符合性的要求是y[0]应等于y[1]。

比特流符合性的要求是z[0]应等于z[1]。

在一个示例中,可定义椭圆形圆柱体并将其用于发送信息通知查看空间,而不是使用由单个radius定义的圆柱体。在这种情况下,将发送信号通知指定半轴长度的两个语法元素r1和r2,而不是单个radius语法元素。

数据封装器107可被配置为根据具有以下示例性定义和语法的文件格式位置框来发送信号通知位置信息:

定义

框类型:“vssn”

容器:projectedomnivideobox

强制性的:no

数量:零或一

cylinderstruct()中该框中的point(0)、point(1)和radius指定圆柱体,该圆柱体指定围绕观看者(或用户)的3d查看空间。

语法

aligned(8)classviewingspaceboxextendsfullbox(′vssn′,0,flags){

cylinderstruct();

}

在一个示例中,根据本文所述的技术,数据封装器107可被配置为基于以下示例性定义、语法和语义来发送信号通知锥形截头空间的查看空间信息:

定义

锥形截头空间结构(conicalfrustumstruct)指定关于锥形截头的信息。

语法

语义

radius0、radius1分别指定3d空间中的合适单位下的锥形截头的半径,其中锥形截头围绕从point(0)至point(1)的线形成。保留值0。

x[i]、y[i]和z[i]是合适单位下的值,这些值指定以(0,0,0)作为全局坐标系的中心的3d空间中的点的x、y、z坐标。

在一个示例中,上述信息可对应于局部坐标系。在变体示例中,上述信息可对应于全局坐标系。在一个示例中,上述信息可对应于一些公共参考坐标系。例如,公共参考坐标系可以是对于多个视点公共的。在一个示例中,对于以上语义,合适单位可以是米。在一个示例中,对于以上语义,合适单位可以是厘米。在一个示例中,对于以上语义,合适单位可以是毫米。在一个示例中,对于以上语义,“合适单位”可以在发送信号通知的“标度”中。

在一个示例中,根据本文所述的技术,数据封装器107可被配置为基于以下示例性语法和语义来发送信号通知锥形截头空间的查看空间信息:语法

语义

radius0、radius1分别指定3d空间中的合适单位下的锥形截头的半径,其中scale指定一厘米中的单位数,其中锥形截头围绕从point(0)至point(1)的线形成。保留值0。

在一个示例中,根据本文所述的技术,数据封装器107可被配置为基于以下示例性语法和语义来发送信号通知锥形截头空间的查看空间信息:语法

语义

scale指定对应于1厘米的单位数。

radius0、radius1分别指定3d空间中的合适单位下的锥形截头的半径,其中scale指定一厘米中的单位数,其中锥形截头围绕从point(0)至point(1)的线形成。保留值0。

x[i]、y[i]和z[i]是合适单位下的值,这些值指定以(0,0,0)作为全局坐标系的中心的3d空间中的点的x、y、z坐标。

在一个示例中,可在conicalfrustum中发送信号通知保护范围半径值。保护范围空间可对应于提供沉浸式vr体验的3d空间,但不保证是最佳的。因此,沉浸式vr体验可在保护范围空间中正常劣化。在一个示例中,当允许在conicalfrustum中发送信号通知保护范围半径值时,数据封装器107可被配置为基于以下示例性语法和语义来发送信号通知锥形截头的查看空间信息:

语法

语义

guard_range_presence_flag等于1指示通过guard_radius_diff0、guard_radius_diff1发送信号通知关于保护范围空间的信息。guard_presence_flag等于0指示不发送信号通知关于保护范围空间的信息并且保护范围空间可存在或可不存在。

guard_radius_diff0、guard_radius_diff1分别用于指定为锥形截头外壳的保护范围空间的厚度。

保护范围空间对应于在由{point(0),radius0}和{point(1),radius1}定义的外锥形截头和由{point(0),(radius0-guard_radius_diff0)}和{point(1),(radius1-guard_radius_diff1)}定义的内锥形截头之间的锥形截头外壳。guard_radius_diff0应小于radius0。guard_radius_diff1应小于radius1。guard_radius_diff0和guard_radius_diff1二者均等于0指示保护范围空间不存在并且在由{point(0),radius0}和{point(1),radius1}定义的锥形截头体保证沉浸式vr体验。

在一个示例中,可将guard_radius_diff0和/或guard_radius_diff1发送信号通知为radius0和/或radius1的百分比。

在一个示例中,可以不发送信号通知guard_range_presence_flag,并且可以始终发送信号通知guard_radius_diff0和guard_radius_diff1。在一个示例中,这可在将guard_radius_diff0发送信号通知为radius0的百分比并且将guard_radius_diff0发送信号通知为radius1的百分比时完成。在这种情况下,guard_radius_diff0和guard_radius_diff1二者的值0可指示保护范围空间不存在,并且该信令可保存8位。在一个示例中,在这种情况下,数据封装器107可被配置为基于以下示例性语法和语义来发送信号通知锥形截头的查看空间信息:

语法

语义

guard_radius_diff0、guard_radius_diff1分别用于将为锥形截头外壳的保护范围空间的厚度分别指定为radius0和radius1的百分比。

guard_radius_diff0和guard_radius_diff1二者均等于0指示保护范围空间不存在并且在由{point(0),radius0}和{point(1),radius1}定义的锥形截头中保证沉浸式vr体验。

guard_radius_diff0和guard_radius_diff1二者均应在0至100的范围内。保留值101至255。

又如,可针对guard_radius_diff0和guard_radius_diff1定义如下特殊值:

guardr_adius_diff0和guard_radius_diff1分别用于将为锥形截头外壳的保护范围空间的厚度分别指定为radius0和radius1的百分比。guard_radius_diff0和guard_radius_diff1二者均等于0指示保护范围空间不存在并且在由point(0)、point(1)和radius定义的锥形截头体中保证沉浸式vr体验。guardr_adius_diff0和guard_radius_diff1二者均等于101指示保护范围空间可存在或可不存在并且不发送信号通知关于保护范围空间的信息。guard_radius_diff0和guard_radius_diff1均应在0至101的范围内。保留值102至255。

在一个示例中,另外,可将语法元素scale与conicalfrustum()结构中的保护范围空间相关的语法元素一起发送信号通知。在一个示例中,可能需要约束锥形截头,使得锥形截头的轴线平行于坐标轴中的一个。例如,锥形截头的轴线可能需要平行于x轴。例如,锥形截头的轴线可能需要平行于y轴。例如,锥形截头的轴线可能需要平行于z轴。例如,可添加以下约束中的一个或多个:

比特流符合性的要求是x[0]应等于x[1]。

比特流符合性的要求是y[0]应等于y[1]。

比特流符合性的要求是z[0]应等于z[1]。

数据封装器107可被配置为根据具有以下示例性定义和语法的文件格式位置框来发送信号通知位置信息:

定义

框类型:“vssn”

容器:projectedomnivideobox

强制性的:no

数量:零或一

conicalfrustum()中该框中的{point(0),radius0}和{point(1),radius1}指定锥形截头,该锥形截头指定围绕观察者(或用户)的3d查看空间。

语法

aligned(8)classviewingspaceboxextendsfullbox(′vssn′,0,flags){

conicalfrustum()

}

在一个示例中,数据封装器107可被配置为发送信号通知查看空间形状类型,并且基于查看空间形状类型有条件地发送信号通知查看空间信息。在一个示例中,可使用以下语法和语义:

语法

语义

viewing_space_shape_type指定查看空间的形状。viewing_space_shape_type等于0指定查看空间被指定为立方体。viewing_space_shape_type等于1指定查看空间被指定为球体。viewing_space_shape_type值大于1被保留。

在一个示例中,可使用以下语法和语义:

语法

语义

viewing_space_shape_type指定查看空间的形状。viewing_space_shape_type等于0指定查看空间被指定为立方体。viewing_space_shape_type等于1指定查看空间被指定为椭球体。viewing_space_shape_type值大于1被保留。

在一个示例中,可使用以下语法和语义:

语法

语义

viewing_space_shape_type指定查看空间的形状。viewing_space_shape_type等于0指定查看空间被指定为立方体。viewing_space_shape_type等于1指定查看空间被指定为球体。viewing_space_shape_type等于2指定查看空间被指定为椭球体。viewing_space_shape_type值大于2被保留。

数据封装器107可被配置为根据具有以下示例性定义和语法的文件格式位置框来发送信号通知位置信息:

定义

框类型:“vssn”

容器:projectedomnivideobox

强制性的:no

数量:零或一

vrbb()边界框或spherestruct()或ellipsoidstruct()指定围绕观看者(或用户)的3d查看空间。

语法

aligned(8)classviewingspaceboxextendsfullbox(′vssn′,0,flags){

viewingspacestruct();

}

在一个示例中,一个或多个排除区域可具有球体的形状并且可使用spherestruct()发送信号通知该一个或多个排除区域。在这种情况下,可用spherestruct()或spherestruct(i)替换以下语法中的vrbb(i)的一个或多个实例。在一个示例中,一个或多个排除区域可具有椭球体的形状并且可使用ellipsoidstruct()发送信号通知该一个或多个排除区域。在这种情况下,可用ellipsoidstruct()或ellipsoidstruct(i)替换以下语法中的vrbb(i)的一个或多个实例。在一个示例中,排除区域的形状可匹配总体查看空间的形状。例如,当总体查看空间具有立方体的形状时,其中的排除区域可具有立方体的形状。又如,排除区域的形状可不同于总体查看空间的形状。例如,当总体查看空间具有球体的形状时,其中的排除区域可具有立方体的形状。

在一个示例中,数据封装器107可被配置为发送信号通知查看空间形状类型,并且基于查看空间形状类型有条件地发送信号通知查看空间信息。在一个示例中,可使用以下语法和语义:

语法

语义

viewing_space_shape_type指定查看空间的形状。viewing_space_shape_type等于0指定查看空间被指定为立方体。viewing_space_shape_type等于1指定查看空间被指定为球体。viewing_space_shape_type等于2指定查看空间被指定为圆柱体。viewing_space_shape_type等于3指定查看空间被指定为锥形截头。viewing_space_shape_type值大于3被保留。

在一个示例中,数据封装器107可被配置为发送信号通知查看空间形状类型,并且基于以下语法和语义有条件地发送信号通知查看空间信息:语法

语义

viewing_space_shape_type指定查看空间的形状。viewing_space_shape_type等于0指定查看空间被指定为立方体。viewing_space_shape_type等于1指定查看空间被指定为椭球体。viewing_space_shape_type等于2指定查看空间被指定为圆柱体。viewing_space_shape_type等于3指定查看空间被指定为锥形截头。viewing_space_shape_type值大于3被保留。

在一个示例中,数据封装器107可被配置为发送信号通知查看空间形状类型,并且基于以下语法和语义有条件地发送信号通知查看空间信息:

语法

语义

viewing_space_shape_type指定查看空间的形状。viewing_space_shape_type等于0指定查看空间被指定为立方体。viewing_space_shape_type等于1指定查看空间被指定为球体。viewing_space_shape_type等于2指定查看空间被指定为椭球体。viewing_space_shape_type等于3指定查看空间被指定为圆柱体。viewing_space_shape_type等于4指定查看空间被指定为锥形截头。viewing_space_shape_type值大于4被保留。

在一个示例中,数据封装器107可被配置为根据具有以下示例性定义和语法的文件格式位置框来发送信号通知位置信息:

定义

框类型:“vssn”

容器:projectedomnivideobox

强制性的:no

数量:零或一

vrbb()边界框或spherestruct()或ellipsoidstruct()或cylinderstruct()指定围绕观看者(或用户)的3d查看空间。

语法

aligned(8)classviewingspaceboxextendsfullbox(′vssn′,0,flags){

viewingspacestruct();

}

在一个示例中,一个或多个排除区域可具有球体的形状并且可使用spherestruct()发送信号通知该一个或多个排除区域。在这种情况下,可用spherestruct()或spherestruct(i)替换以下语法中的vrbb(i)的一个或多个实例。在一个示例中,一个或多个排除区域可具有椭球体的形状并且可使用ellipsoidstruct()发送信号通知该一个或多个排除区域。在这种情况下,可用ellipsoidstruct()或ellipsoidstruct(i)替换以下语法中的vrbb(i)的一个或多个实例。在一个示例中,排除区域的形状可匹配总体查看空间的形状。例如,当总体查看空间具有立方体的形状时,其中的排除区域可具有立方体的形状。又如,排除区域的形状可不同于总体查看空间的形状。例如,当总体查看空间具有球体的形状时,其中的排除区域可具有立方体的形状。在一个示例中,锥形截头可代替地为锥形形状。在这种情况下,radius、radius0、radius1中的一者可以是零,并且因此不发送信号通知。另外,在这种情况下,可用“锥体”或“圆锥体”替换上述“锥形截头”的一种或多种情况。另外,在这种情况下,可用cone()替换conicalfrustum()。

在一个示例中,数据封装器107可被配置为发送信号通知查看空间形状类型,并且基于查看空间形状类型有条件地发送信号通知查看空间信息。在一个示例中,可使用以下语法和语义:

语法

语义

viewing_space_shape_type指定查看空间的形状。viewing_space_shape_type等于0指定查看空间被指定为立方体。viewing_space_shape_type等于1指定查看空间被指定为球体。viewing_space_shape_type等于2指定查看空间被指定为圆柱体。viewing_space_shape_type等于3指定查看空间被指定为椭球体。

distance_scale是指示对应于1cm的单位的正整数值。

radius将球体的半径指定为3d空间中的距离标度下的16.16固定点值。保留值0。

cylinder_radius指定3d空间中的合适单位下的圆柱体的半径,其中圆柱体围绕从point(0)至point(1)的线形成。保留值0。

x[i]、y[i]和z[i]是以距离标度为单位的值,这些值指定3d空间中的点相对于查看空间的中心点的x、y、z坐标。

lengthx、lengthy和lengthz分别指定具有与查看空间相同的中心的以2-16毫米为单位的椭球体的x、y和z半轴长度。lengthx、lengthy和lengthz应在1至65,536*216-1(即,4,294,967,295)(包括端值)的范围内。

当视点位置信息存在时,查看空间的中心位置等于视点位置。当视点位置信息不存在时,查看空间的中心位置等于公共参考坐标系中的(0,0,0)。在这两种情况下,x、y、z坐标轴都与参考全局坐标轴对齐。

在一个示例中,数据封装器107可被配置为根据具有以下示例性定义和语法的文件格式位置框来发送信号通知位置信息:

定义

框类型:“vssn”

容器:projectedomnivideobox

强制性的:no

数量:零或一

该框中的字段指定3d查看空间,在该3d查看空间内提供沉浸式vr体验。

语法

aligned(8)claassviewingspaceboxextendsfullbox(′vssn′0,flags){

viewingspacestruct(0);

}

语义

vrbb(0)指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定支持沉浸式vr体验的3d查看空间。

在一个示例中,根据本文所述的技术,数据封装器107可被配置为发送信号通知沉浸式体验空间。例如,数据封装器107可被配置为基于以下示例性定义、语法和语义发送信号通知沉浸式vr边界:

定义

沉浸式vr查看空间定时元数据轨道指示支持沉浸式体验的vr查看空间边界。该空间可为静态的或可基于样本动态变化。

语法和语义

应使用轨道样本条目类型“vrsp”。样本条目指定如下:

static_vr_space_flag等于1指定沉浸式vr体验查看空间不针对参考该样本条目的每个样本变化。static_vr_space_flag等于0指定沉浸式3dvr空间可针对参考该样本条目的样本变化。

样本条目中的vrbb(0)指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定支持沉浸式vr体验的3d空间。

应使用如vrspacesample所示的样本语法。

样本中的vrbb(0)指定边界框(x,y,z)的最小坐标和最大坐标,这些坐标指定支持用于相关联的媒体轨道样本的沉浸式vr体验的3d空间。

mpeg-i指定了如何使用mpeg媒体传输上的动态自适应流传输来封装、发送信号通知和流传输全向媒体。mmt在iso/iec:iso/iec23008-1,“informationtechnology-highefficiencycodingandmediadeliveryinheterogeneousenvironments-part1:mpegmediatransport(mmt)(信息技术-异质环境中的高效编码和媒体递送-第1部分:mpeg媒体传输(mmt))”中有所描述,该文献全文以引用方式并入本文。在mmt用于流传输视频数据的情况下,可将视频数据封装在媒体处理单元(mpu)中。mmt将mpu定义为“独立于其他mpu的可由mmt实体处理并由呈现引擎消耗的媒体数据项”。mpu的逻辑分组可形成mmt资产,其中mmt将资产定义为“要用于构建多媒体呈现的任何多媒体数据。资产是共享用于携带编码媒体数据的相同资产标识符的mpu的逻辑分组。”一个或多个资产可形成mmt包,其中mmt包是多媒体内容的逻辑集合。如iso/iec23008-1中所提供的,mmt内容由媒体片段单元(mfu)、mpu、mmt资产和mmt封装构成。为了产生mmt内容,编码媒体数据被分解成mfu,其中mfu可对应于可被独立解码的编码视频数据或其他单元的接入单元或片段。一个或多个mfu可组合成mpu。除了包括一个或多个资产之外,mmt包还包括呈现信息(pi)和资产递送特性(adc)。呈现信息包括指定资产间的空间和时间关系的文档(pi文档)。在一些情况下,pi文档可用于确定包中资产的递送顺序。pi文档可作为一条或多条信令消息递送。信令消息可包括一个或多个表。资产递送特性描述了递送的资产的服务质量(qos)要求和统计值。

mpeg-i提供了用于通知接收实体和vr应用程序关于携带vr内容的当前资产的内容的vr信息资产描述符。该信息描述了所使用的投影类型、vr内容如何按区域帧封装以及vr内容覆盖球体上的哪些区域。通过单独的资产描述符提供内容是否为立体帧封装的指示。表1提供了mpeg-i中的vr信息资产描述符的语法。在表1和本文的其他表中,助记符uimsbf对应于无符号整数,最高有效位首先对应,并且助记符bslbf对应于位串,左位首先对应。

表1

关于表1,mpeg-i提供了以下语义:

descriptor_tag指示描述符的类型。

descriptor_length指定从该字段后的下一个字节到描述符的最后一个字节的以字节计的长度。

rwfp_flag等于1指示已经将区域式帧封装应用于该资产的内容并且存在描述它的regionwisepackingstruct。

srqr_flag等于1指示存在球体区域质量信息。

2dqr_flag等于1指示存在2d区域质量信息。

projectionformatstruct()提供关于所使用的投影格式的信息。

initialviewingorientationsample()提供关于当前初始参考取向的信息。

contentcoveragestruct()指示由轨道覆盖的一个或多个球体区域。

根据所指示的区域式封装过程信息,regionwisepackingstruct()指示投影图片按区域封装并且需要在渲染之前解包。

sphereregionqualityrankingbox()指示质量排序球体区域的相对质量顺序。

2dregionqualityrankingbox()指示质量排序2d区域的相对质量顺序。

应当指出的是,mpeg-i中的vr信息资产描述符未能提供查看空间信息。在一个示例中,根据本文所述的技术,数据封装器107可被配置为发送信号通知有条件地包括查看空间信息的vr信息资产描述符。发送信号通知有条件地包括查看空间信息的vr信息资产描述符,使得能够向接收实体提供更多信息。被提供了更多信息的接收实体可具有增强的功能。在一个示例中,根据本文所述的技术,数据封装器107可被配置为基于表2中的以下示例性语法来发送信号通知vr信息资产描述符。

表2

关于表2,可使用以下语义:

descriptor_tag指示描述符的类型。

descriptor_length指定从该字段后的下一个字节到描述符的最后一个字节的以字节计的长度。

rwfp_flag等于1指示已经将区域式帧封装应用于该资产的内容并且存在描述它的regionwisepackingstruct。

srqr_flag等于1指示存在球体区域质量信息。

2dqr_flag等于1指示存在2d区域质量信息。

viewingspace_info_flag等于1指示在该vr_information_descriptor()中存在由viewingspacestruct()指定的查看空间信息。viewingspace_info_flag等于0指示在该vr_information_descriptor()中不存在由viewingspacestruct()指定的查看空间信息。

projectionformatstruct()提供关于所使用的投影格式的信息。

initialviewingorientationsample()提供关于当前初始参考取向的信息。

contentcoveragestruct()指示由轨道覆盖的一个或多个球体区域。

根据所指示的区域式封装过程信息,regionwisepackingstruct()指示投影图片按区域封装并且需要在渲染之前解包。

sphereregionqualityrankingbox()指示质量排序球体区域的相对质量顺序。

2dregionqualityrankingbox()指示质量排序2d区域的相对质量顺序。

viewingspacestruct()指示查看空间信息。viewingspacestruct()可与本文提供的任何定义相同。

这样,数据封装器107表示被配置为发送信号通知位置信息并且发送信号通知沉浸式体验空间的设备的示例。

再次参考图1,接口108可以包括被配置为接收由数据封装器107生成的数据并且将数据发送和/或存储到通信介质的任何设备。接口108可以包括网络接口卡诸如以太网卡,并且可以包括光收发器、射频收发器或者可以发送和/或接收信息的任何其他类型的设备。此外,接口108可以包括计算机系统接口,该计算机系统接口可以使文件能够存储在存储设备上。例如,接口108可以包括支持外围部件互连(pci)和高速外围部件互连(pcie)总线协议、专用总线协议、通用串行总线(usb)协议、i2c的芯片组、或可用于互连对等设备的任何其他逻辑和物理结构。

再次参考图1,目标设备120包括接口122、数据解封装器123、视频解码器124和显示器126。接口122可以包括被配置为从通信介质接收数据的任何设备。接口122可以包括网络接口卡诸如以太网卡,并且可以包括光收发器、射频收发器或者可接收和/或发送信息的任何其他类型的设备。此外,接口122可以包括计算机系统接口,使得能够从存储设备检索合规的视频比特流。例如,接口122可包括支持pci和pcie总线协议、专用总线协议、usb协议、i2c的芯片组、或可用于互连对等设备的任何其他逻辑和物理结构。数据解封装器123可被配置为根据本文所述的一种或多种技术接收由数据封装器107生成的比特流并且执行子比特流提取。

视频解码器124可以包括被配置为接收比特流和/或其可接受变体,并且从其再现视频数据的任何设备。显示器126可以包括被配置为显示视频数据的任何设备。显示器126可以包括各种显示设备诸如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另外的类型的显示器中的一种。显示器126可以包括高清显示器或超高清显示器。显示器126可以包括立体显示器。应当指出的是,虽然在图1所示的示例中,视频解码器124被描述为将数据输出到显示器126,但视频解码器124可被配置为将视频数据输出到各种类型的设备和/或其子部件。例如,视频解码器124可被配置为将视频数据输出到任何通信介质,如本文所述。目标设备120可以包括接收设备。

图9是示出可实现本公开的一种或多种技术的接收器设备的示例的框图。也就是说,接收器设备600可被配置为基于上述语义来解析信号。此外,接收器设备600可被配置为根据本文所述的期望播放行为来操作。此外,接收器设备600可被配置为执行本文所述的转换技术。接收器设备600是计算设备的示例,其可被配置为从通信网络接收数据并允许用户访问多媒体内容(包括虚拟现实应用程序)。在图9所示的示例中,接收器设备600被配置为经由电视网络(例如,上述电视服务网络404)接收数据。此外,在图9所示的示例中,接收器设备600被配置为经由广域网发送和接收数据。应当指出的是,在其他示例中,接收器设备600可被配置为通过电视服务网络404简单地接收数据。本文所述的技术可以由被配置为利用通信网络的任意和全部组合进行通信的设备使用。

如图9中所示,接收器设备600包括一个或多个中央处理单元602、系统存储器604、系统接口610、数据提取器612、音频解码器614、音频输出系统616、视频解码器618、显示系统620、一个或多个i/o设备622和网络接口624。如图9所示,系统存储器604包括操作系统606和应用程序608。一个或多个中央处理单元602、系统存储器604、系统接口610、数据提取器612、音频解码器614、音频输出系统616、视频解码器618、显示系统620、一个或多个i/o设备622和网络接口624中的每一者可以互连(物理地、通信地和/或可操作地)以用于部件间的通信,并且可以实现为各种合适的电路中的任一种,诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或它们的任何组合。应当指出的是,尽管接收器设备600被示出为具有不同的功能块,但是此类图示是出于描述的目的,并且不会将接收器设备600限制到特定的硬件构架。可以使用硬件、固件和/或软件具体实施的任意组合来实现接收器设备600的功能。

一个或多个cpu602可被配置为实现用于在接收器设备600中执行的功能和/或处理指令。一个或多个cpu602可以包括单核和/或多核中央处理单元。一个或多个cpu602能够检索和处理用于实现本文所述的技术中的一种或多种的指令、代码和/或数据结构。指令可以存储在计算机可读介质诸如系统存储器604上。

系统存储器604可以被描述为非暂态或有形计算机可读存储介质。在一些示例中,系统存储器604可以提供临时和/或长期存储。在一些示例中,系统存储器604或其部分可以被描述为非易失性存储器,并且在其他示例中,系统存储器604的部分可以被描述为易失性存储器。系统存储器604可被配置为存储可在操作期间由接收器设备600使用的信息。系统存储器604可以用于存储程序指令以供一个或多个cpu602执行,并且可以由在接收器设备600上运行的程序用于在程序执行期间临时存储信息。此外,在其中接收器设备600被包括为数字视频录像机的一部分的示例中,系统存储器604可被配置为存储多个视频文件。

应用程序608可以包括在接收器设备600内实现或由其执行的应用程序,并且可以被实现或包含在接收器设备600的部件内,可以由该接收器设备的部件操作、执行,并且/或者可操作地/通信地耦接到该接收器设备的部件。应用程序608可以包括可使接收器设备600的一个或多个cpu602执行特定功能的指令。应用程序608可以包括在计算机编程语句中表达的算法,诸如for循环、while循环、if语句、do循环等。可以使用指定的编程语言来开发应用程序608。编程语言的示例包括javatm、jinitm、c、c++、objectivec、swift、perl、python、php、unixshell、visualbasic和visualbasicscript。在其中接收器设备600包括智能电视的示例中,应用程序可以由电视制造商或广播公司开发。如图9所示,应用程序608可以结合操作系统606执行。也就是说,操作系统606可被配置为促进应用程序608与一个或多个cpu602以及接收器设备600的其他硬件部件的交互。操作系统606可以是被设计为安装在机顶盒、数字视频录像机、电视等上的操作系统。应当指出的是,本文所述的技术可被配置为利用软件架构的任意和全部组合进行操作的设备使用。

系统接口610可被配置为允许接收器设备600的部件之间的通信。在一个示例中,系统接口610包括使数据能够从一个对等设备传输到另一个对等设备或传输到存储介质的结构。例如,系统接口610可以包括支持基于加速图形端口(agp)的协议、基于外围部件互连(pci)总线的协议(诸如pciexpresstm(pcie)总线规范)的芯片组,其由外围部件互连专门兴趣组或者可用于互连对等设备的任何其他形式的结构(例如,专用总线协议)维护。

如上所述,接收器设备600被配置为经由电视服务网络接收并任选地发送数据。如上所述,电视服务网络可以根据电信标准进行操作。电信标准可限定通信属性(例如,协议层),例如物理信令、寻址、信道访问控制、分组属性和数据处理。在图9所示的示例中,数据提取器612可被配置为从信号中提取视频、音频和数据。可以根据例如dvb标准、atsc标准、isdb标准、dtmb标准、dmb标准和docsis标准等方面来定义信号。

数据提取器612可被配置为从信号中提取视频、音频和数据。也就是说,数据提取器612可以与服务分发引擎互逆的方式操作。此外,数据提取器612可被配置为基于上述结构中的一者或多者的任意组合来解析链路层分组。

数据分组可以由一个或多个cpu602、音频解码器614和视频解码器618来处理。音频解码器614可被配置为接收和处理音频包。例如,音频解码器614可以包括被配置为实现音频编解码器的各方面的硬件和软件的组合。也就是说,音频解码器614可被配置为接收音频包并将音频数据提供给音频输出系统616以进行渲染。音频数据可以使用多信道格式编码,诸如由杜比和数字影院系统开发的那些格式。可以使用音频压缩格式对音频数据进行编码。音频压缩格式的示例包括运动图像专家组(mpeg)格式、高级音频编码(aac)格式、dts-hd格式和杜比数字(ac-3)格式。音频输出系统616可被配置为渲染音频数据。例如,音频输出系统616可以包括音频处理器、数字-模拟转换器、放大器和扬声器系统。扬声器系统可以包括各种扬声器系统中的任一种,诸如耳机、集成立体声扬声器系统、多扬声器系统或环绕声系统。

视频解码器618可被配置为接收和处理视频包。例如,视频解码器618可以包括用于实现视频编解码器的各方面的硬件和软件的组合。在一个示例中,视频解码器618可被配置为解码根据任何数量的视频压缩标准编码的视频数据,这些视频压缩标准诸如itu-th.262或iso/iecmpeg-2visual、iso/iecmpeg-4visual、itu-th.264(也称为iso/iecmpeg-4高级视频编码(avc))、以及高效视频编码(hevc)。显示系统620可被配置为检索和处理视频数据以供显示。例如,显示系统620可以从视频解码器618接收像素数据并输出数据以用于视觉呈现。此外,显示系统620可被配置为结合视频数据输出图形(例如,图形用户界面)。显示系统620可以包括各种显示设备中的一者,诸如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器、或能够向用户呈现视频数据的其他类型的显示设备。显示设备可被配置为显示标准清晰度内容、高清晰度内容或超高清内容。

一个或多个i/o设备622可被配置为在接收器设备600的操作期间接收输入并提供输出。也就是说,一个或多个i/o设备622可允许用户选择要渲染的多媒体内容。可以从输入设备诸如按钮式遥控器、包括触敏屏幕的设备、基于运动的输入设备、基于音频的输入设备、或配置为接收用户输入的任何其他类型的设备处生成输入。一个或多个i/o设备622可以利用标准化通信协议可操作地耦接到接收器设备600,该标准化通信协议诸如通用串行总线协议(usb)、蓝牙、zigbee或专有通信协议(诸如,专有的红外通信协议)。

网络接口624可被配置为允许接收器设备600经由局域网和/或广域网发送和接收数据。网络接口624可以包括网络接口卡,诸如以太网卡、光收发器、射频收发器或者被配置为发送和接收信息的任何其他类型的设备。网络接口624可被配置为根据网络中利用的物理和媒体访问控制(mac)层执行物理信令、寻址和信道访问控制。接收器设备600可被配置为解析根据上文相对于图8所描述的任何技术生成的信号。这样,接收器设备600表示被配置为解析包括与虚拟现实应用程序相关联的信息的一个或多个语法元素的设备的示例。

在一个或多个示例中,所描述的功能可以通过硬件、软件、固件或它们的任何组合来实现。如果以软件实现,则可将功能作为一个或多个指令或代码存储在计算机可读介质上或经由计算机可读介质上传输,并且由基于硬件的处理单元执行。计算机可读介质可包括对应于有形介质诸如数据存储介质的计算机可读存储介质,或者包括例如根据通信协议促进计算机程序从一个地方传输到另一个地方的任何介质的传播介质。这样,计算机可读介质通常可对应于:(1)非暂态的有形计算机可读存储介质,或者(2)通信介质诸如信号或载波。数据存储介质可以是可以由一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。

以举例而非限制的方式,此类计算机可读存储介质可包括ram、rom、eeprom、cd-rom或其他光盘存储设备、磁盘存储设备或其他磁存储设备、闪存存储器、或可用于存储指令或数据结构形式的所需程序代码并且可由计算机访问的任何其他介质。而且,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(dsl)或无线技术诸如红外线、无线电和微波从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、dsl或无线技术诸如红外线、无线电和微波都包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂态介质,而是针对非暂态有形存储介质。如本文所用,磁盘和光盘包括压缩光盘(cd)、激光盘、光学光盘、数字通用光盘(dvd)、软磁盘及blu-ray光盘,其中磁盘通常以磁性方式复制数据,而光盘则利用激光以光学方式复制数据。上述的组合也应该包括在计算机可读介质的范围内。

可以由一个或多个处理器诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其他等效集成或离散逻辑电路执行指令。因此,如本文所用的术语“处理器”可以指任何前述结构或适用于实现本文所述的技术的任何其他结构。此外,在一些方面中,可以在被配置用于编码和解码的专用硬件和/或软件模块内提供本文所述的功能,或者将其结合到组合编解码器中。而且,这些技术可以在一个或多个电路或逻辑元件中完全实现。

本公开的技术可以在各种设备或装置包括无线手机、集成电路(ic)或一组ic(例如,芯片组)中实现。在本公开中描述了各种部件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,可以将各种单元组合在编解码器硬件单元中,或者通过互操作硬件单元包括如上所述的一个或多个处理器的集合,结合合适的软件和/或固件来提供各种单元。

此外,每个上述实施方案中所使用的基站设备和终端设备的每个功能块或各种特征可通过电路(通常为一个集成电路或多个集成电路)实施或执行。被设计为执行本说明书中所述的功能的电路可包括通用处理器、数字信号处理器(dsp)、专用或通用集成电路(asic)、现场可编程门阵列(fpga),或其他可编程逻辑设备、分立栅极或晶体管逻辑器、或分立硬件部件、或它们的组合。通用处理器可为微处理器,或另选地,该处理器可为常规处理器、控制器、微控制器或状态机。通用处理器或上述每种电路可由数字电路进行配置,或可由模拟电路进行配置。此外,当由于半导体技术的进步而出现制成取代当前集成电路的集成电路的技术时,也能够使用通过该技术生产的集成电路。

已经描述了各种示例。这些示例和其他示例在以下权利要求的范围内。

<交叉引用>

本非临时专利申请根据《美国法典》第35卷第119节(35u.s.c.§119)要求于2018年1月26日提交的临时申请62/622,701、2018年4月9日提交的临时申请62/655,156、2018年5月10日提交的临时申请62/669,828、2018年7月12日提交的临时申请62/697,240、2018年8月30日提交的临时申请62/725,145的优先权,这些临时申请的全部内容据此以引用方式并入。

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