CN116918338A - 用于由流式媒体数据定义的虚拟交互场景中的虚拟相机的对象碰撞数据 - Google Patents

用于由流式媒体数据定义的虚拟交互场景中的虚拟相机的对象碰撞数据 Download PDF

Info

Publication number
CN116918338A
CN116918338A CN202280018913.9A CN202280018913A CN116918338A CN 116918338 A CN116918338 A CN 116918338A CN 202280018913 A CN202280018913 A CN 202280018913A CN 116918338 A CN116918338 A CN 116918338A
Authority
CN
China
Prior art keywords
virtual
data
camera
solid object
collision
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280018913.9A
Other languages
English (en)
Inventor
I·布阿齐齐
T·施托克哈默
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/654,023 external-priority patent/US20220292770A1/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Priority claimed from PCT/US2022/071056 external-priority patent/WO2022192886A1/en
Publication of CN116918338A publication Critical patent/CN116918338A/zh
Pending legal-status Critical Current

Links

Abstract

一种用于检索媒体数据的示例设备包括:存储器,其被配置为存储媒体数据;以及一个或多个处理器,其在电路中实现并且被配置为执行呈现引擎,呈现引擎被配置为:接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据;从用户接收相机移动数据,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用对象碰撞数据来防止所述虚拟相机响应于相机移动数据而穿越至少一个虚拟固体对象。

Description

用于由流式媒体数据定义的虚拟交互场景中的虚拟相机的对 象碰撞数据
本申请要求享受于2022年3月8日提交的美国专利申请No.17/654,023的优先权,以及于2021年3月10日提交的美国临时申请No.63/159,379的优先权;上述申请中的每个申请的全部内容通过引用被并入本文。于2022年3月8日提交的美国专利申请No.17/654,023要求享受于2021年3月10日提交的美国临时申请No.63/159,379的权益。
技术领域
本公开内容涉及经编码的视频数据的存储和传输。
背景技术
数字视频能力可以被合并到各种各样的设备中,包括数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型计算机或台式计算机、数字相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话、视频电话会议设备等。数字视频设备实现视频压缩技术(诸如在由MPEG-2、MPEG-4、ITU-T H.263或ITU-TH.264/MPEG-4(第10部分,高级视频译码(AVC))、ITU-T H.265(也被称为高效率视频译码(HEVC))定义的标准以及此类标准的扩展中描述的那些技术),以更加高效地发送和接收数字视频信息。
视频压缩技术执行空间预测和/或时间预测,以减少或去除在视频序列中固有的冗余。对于基于块的视频译码,可以将视频帧或切片划分为宏块。每个宏块可以被进一步划分。经帧内译码的(I)帧或切片中的宏块是使用相对于相邻宏块的空间预测进行编码的。经帧间译码的(P或B)帧或切片中的宏块可以使用相对于相同帧或切片中的相邻宏块的空间预测,或者使用相对于其它参考帧的时间预测。
在视频数据已经被编码之后,视频数据可以被分组化以进行发送或存储。视频数据可以被组装成符合各种标准(诸如国际标准化组织(ISO)的基媒体文件格式以及其扩展(诸如AVC))中的任何一种的视频文件。
发明内容
概括而言,本公开内容描述了与流式交互式媒体数据相关的技术。此类交互式媒体数据可以是例如虚拟现实、增强现实或其它此类交互式内容(诸如其它三维视频内容)。最新的MPEG场景描述元素包括对glTF 2.0中的定时媒体的支持。媒体访问功能(MAF)向呈现引擎提供应用编程接口(API),呈现引擎可以通过该接口请求定时媒体。执行MAF的检索单元可以处理所检索到的定时媒体数据,并且通过循环缓冲器将所处理的媒体数据以期望格式传递给呈现引擎。当前的MPEG场景描述允许用户在6个自由度(6DoF)中消耗场景媒体数据。因此,用户通常能够在3D场景中自由地移动(例如,穿过在3D场景中显示的墙)。然而,内容作者可能希望对观看者在特定区域的移动施加限制,例如以防止移动穿过所显示的墙或其它对象。本公开内容描述了施加此类限制的技术,这些限制可以改善用户的体验,因为可以通过防止用户穿越虚拟世界中的障碍物而使体验变得更真实。
在一个示例中,一种检索媒体数据的方法包括:由呈现引擎接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;由所述呈现引擎接收用于所述三维场景的相机控制数据,所述相机控制数据包括定义限制以防止虚拟相机穿越所述至少一个虚拟固体对象的数据;由所述呈现引擎从用户接收相机移动数据,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述相机控制数据,由所述呈现引擎防止所述虚拟相机响应于所述相机移动数据而穿越所述至少一个虚拟固体对象。
在另一示例中,一种用于检索媒体数据的设备包括:存储器,其被配置为存储媒体数据;以及一个或多个处理器,其在电路中实现并且被配置为执行呈现引擎,所述呈现引擎被配置为:接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;接收用于所述三维场景的相机控制数据,所述相机控制数据包括定义限制以防止虚拟相机穿越所述至少一个虚拟固体对象的数据;从用户接收相机移动数据,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述相机控制数据,防止所述虚拟相机响应于所述相机移动数据而穿越所述至少一个虚拟固体对象。
在另一示例中,一种计算机可读存储介质具有存储在其上的指令,所述指令在被执行时使得客户端设备的处理器进行以下操作:接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;接收用于所述三维场景的相机控制数据,所述相机控制数据包括定义限制以防止虚拟相机穿越所述至少一个虚拟固体对象的数据;从用户接收相机移动数据,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述相机控制数据,防止所述虚拟相机响应于所述相机移动数据而穿越所述至少一个虚拟固体对象。
在另一示例中,一种用于检索媒体数据的设备包括:用于接收流式媒体数据的单元,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;用于接收用于所述三维场景的相机控制数据的单元,所述相机控制数据包括定义限制以防止虚拟相机穿越所述至少一个虚拟固体对象的数据;用于从用户接收相机移动数据的单元,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及用于使用所述相机控制数据来防止所述虚拟相机响应于所述相机移动数据而穿越所述至少一个虚拟固体对象的单元。
在另一示例中,一种检索媒体数据的方法包括:由呈现引擎接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;由所述呈现引擎接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据;由所述呈现引擎从用户接收相机移动数据,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述对象碰撞数据,由所述呈现引擎防止所述虚拟相机响应于所述相机移动数据而穿越所述至少一个虚拟固体对象。
在另一示例中,一种用于检索媒体数据的设备包括:存储器,其被配置为存储媒体数据;以及一个或多个处理器,其在电路中实现并且被配置为执行呈现引擎,所述呈现引擎被配置为:接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据;从用户接收相机移动数据,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述对象碰撞数据,防止所述虚拟相机响应于所述相机移动数据而穿越所述至少一个虚拟固体对象。
在另一示例中,一种计算机可读存储介质具有存储在其上的指令,所述指令在被执行时使得客户端设备的处理器进行以下操作:接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据;从用户接收相机移动数据,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述对象碰撞数据,防止所述虚拟相机响应于所述相机移动数据而穿越所述至少一个虚拟固体对象。
在另一示例中,一种用于检索媒体数据的设备包括:用于接收流式媒体数据的单元,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;用于接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据的单元;用于从用户接收相机移动数据的单元,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及用于使用所述对象碰撞数据来防止所述虚拟相机响应于所述相机移动数据而穿越所述至少一个虚拟固体对象的单元。
在附图和以下描述中阐述了一个或多个示例的细节。根据说明书和附图以及根据权利要求书,其它特征、目的和优点将是显而易见的。
附图说明
图1是示出实现用于在网络上对媒体数据进行流式传输的技术的示例系统的框图。
图2是更详细地示出图1的检索单元的示例组件集合的框图。
图3是示出示例多媒体内容的元素的概念图。
图4是示出可以对应于表示的分段的示例视频文件的元素的框图。
图5是示出根据本公开内容的技术的具有边界体积的示例相机路径分段的概念图。
图6是示出示例虚拟对象的概念图,虚拟对象在该示例中是椅子。
图7是示出根据本公开内容的技术的检索媒体数据的示例方法的流程图。
图8是示出根据本公开内容的技术的检索媒体数据的示例方法的流程图。
具体实施方式
交互式媒体数据可以通过网络进行流式传输。例如,客户端设备可以使用单播、广播、多播等来检索交互式媒体数据。交互式媒体数据可以是例如用于扩展现实(XR)、增强现实(AR)、虚拟现实(VR)等的三维(3D)媒体数据。因此,当被呈现给用户时,用户可以导航根据交互式媒体数据而渲染的3D虚拟场景。
MPEG场景描述可以描述用于虚拟世界或体验的三维(3D)场景,例如用于XR、VR、AR或其它交互式媒体体验。根据本公开内容的技术,MPEG场景描述可以描述3D场景内的对象,诸如椅子、墙、桌子、柜台、门、窗或其它固体对象。本公开内容描述了如下的技术:通过所述技术,可以增强MPEG场景描述(或其它这样的描述数据集),以对虚拟相机的移动施加限制,例如以防止相机穿过诸如墙壁之类的固体对象。
具体地,场景描述可以描述允许相机移动的路径集合。路径可以被描述为通过路径分段连接的锚点集合。为了增强相机控制的表现力,每个路径分段可以利用边界体积进行增强,边界体积允许沿着路径的运动的某种自由。
另外或替代地,场景描述可以描述场景中的虚拟固体对象。场景描述可以提供信息,其表示例如对象的边界、对象是否可能受到与用户或其它对象的碰撞的影响(诸如对象是否移动或将响应此类碰撞而保持静止)、表示碰撞的对象如何与对象交互的用于对象的材料、和/或表示响应于碰撞而播放或应用于对象的动画的动画数据。
本公开内容的技术可以应用于符合根据以下各项中的任何一项封装的视频数据的视频文件:ISO基媒体文件格式、可缩放视频译码(SVC)文件格式、高级视频译码(AVC)文件格式、第三代合作伙伴计划(3GPP)文件格式、和/或多视图视频译码(MVC)文件格式、或其它类似的视频文件格式。
在HTTP流式传输中,频繁使用的操作包括HEAD、GET和部分GET。HEAD操作检索与给定的统一资源定位符(URL)或统一资源名称(URN)相关联的文件的报头,而不检索与URL或URN相关联的有效载荷。GET操作检索与给定的URL或URN相关联的整个文件。部分GET操作接收作为输入参数的字节范围,并且检索文件的连续数量的字节,其中字节数量对应于所接收的字节范围。因此,可以提供电影片段以用于HTTP流式传输,因为部分GET操作可以获得一个或多个个体电影片段。在电影片段中,可以存在不同轨道的若干轨道片段。在HTTP流式传输中,媒体呈现可以是客户端可访问的结构化数据集合。客户端可以请求并且下载媒体数据信息以向用户呈现流式服务。
在使用HTTP流式传输来对3GPP数据进行流式传输的示例中,针对多媒体内容的视频和/或音频数据可以存在多个表示。如下文所解释的,不同的表示可以对应于不同的译码特性(例如,视频译码标准的不同简档或级别)、不同的译码标准或译码标准的扩展(诸如多视图和/或可缩放扩展)、或不同的比特率。这样的表示的清单可以是在媒体呈现描述(MPD)数据结构中定义的。媒体呈现可以对应于HTTP流式传输客户端设备可访问的结构化数据集合。HTTP流式传输客户端设备可以请求并且下载媒体数据信息以向客户端设备的用户呈现流式传输服务。媒体呈现可以是在MPD数据结构中描述的,MPD数据结构可以包括MPD的更新。
媒体呈现可以包含一个或多个时段的序列。每个时段可以延长直到下一时段的开始为止,或者直到媒体呈现的结束为止(在最后一个时段的情况下)。每个时段可以包含针对相同媒体内容的一个或多个表示。表示可以是音频、视频、定时文本或其它此类数据的多个替代经编码版本之一。表示可以在编码类型(例如,对于视频数据而言,比特率、分辨率和/或编解码器、以及对于音频数据而言,比特率、语言和/或编解码器)方面不同。术语表示可以用于指代经编码的音频或视频数据中的与多媒体内容的特定时段相对应并且以特定方式编码的一部分。
特定时段的表示可以被分配给由MPD中的指示这些表示所属的适配集合的属性所指示的组。同一适配集合中的表示通常被认为是彼此的替代,因为客户端设备可以在这些表示之间动态且无缝地切换,例如以执行带宽适配。例如,用于特定时段的视频数据的每个表示可以被分配给相同的适配集合,使得可以选择这些表示中的任何表示进行解码以呈现多媒体内容的用于对应时段的媒体数据,诸如视频数据或音频数据。在一些示例中,在一个时段内的媒体内容可以通过来自组0的任何一个表示(如果存在的话)或者来自每个非零组的至多一个表示的组合来表示。用于时段的每个表示的时序数据可以是相对于该时段的开始时间来表达的。
表示可以包括一个或多个分段。每个表示可以包括初始化分段,或者表示的每个分段可以是自初始化的。当存在时,初始化分段可以包含用于访问表示的初始化信息。通常,初始化分段不包含媒体数据。分段可以由标识符唯一地引用,诸如统一资源定位符(URL)、统一资源名称(URN)或统一资源标识符(URI)。MPD可以为每个分段提供标识符。在一些示例中,MPD还可以以range属性的形式提供字节范围,字节范围可以对应于用于在文件内通过URL、URN或URI可访问的分段的数据。
可以选择不同的表示以用于基本上同时地检索不同类型的媒体数据。例如,客户端设备可以选择要从其检索分段的音频表示、视频表示和定时文本表示。在一些示例中,客户端设备可以选择特定的适配集合以执行带宽适配。也就是说,客户端设备可以选择包括视频表示的适配集合、包括音频表示的适配集合和/或包括定时文本的适配集合。替代地,客户端设备可以为某些类型的媒体(例如,视频)选择适配集合,而为其它类型的媒体(例如,音频和/或定时文本)直接选择表示。
图1是示出实现用于在网络上对媒体数据进行流式传输的技术的示例系统10的框图。在该示例中,系统10包括内容准备设备20、服务器设备60和客户端设备40。客户端设备40和服务器设备60通过可以包括互联网的网络74通信地耦合。在一些示例中,内容准备设备20和服务器设备60也可以通过网络74或另一网络耦合,或者可以直接通信地耦合。在一些示例中,内容准备设备20和服务器设备60可以包括相同的设备。
在图1的示例中,内容准备设备20包括音频源22和视频源24。音频源22可以包括例如麦克风,其产生表示被捕获的要由音频编码器26编码的音频数据的电信号。替代地,音频源22可以包括存储先前记录的音频数据的存储介质、音频数据生成器(诸如计算机化的合成器)、或任何其它音频数据源。视频源24可以包括产生要由视频编码器28编码的视频数据的摄像机、利用先前记录的视频数据而编码的存储介质、视频数据生成单元(诸如计算机图形源)、或任何其它视频数据源。在所有示例中,内容准备设备20不一定通信地耦合到服务器设备60,而是可以将多媒体内容存储到由服务器设备60读取的单独介质。
原始音频和视频数据可以包括模拟或数字数据。模拟数据可以在被音频编码器26和/或视频编码器28编码之前被数字化。音频源22可以在讲话参与者正在讲话时从讲话参与者获得音频数据,并且视频源24可以同时获得讲话参与者的视频数据。在其它示例中,音频源22可以包括包含存储的音频数据的计算机可读存储介质,而视频源24可以包括包含存储的视频数据的计算机可读存储介质。以这种方式,在本公开内容中描述的技术可以被应用于实况的(live)、流式传输的、实时的(real-time)音频和视频数据或者被应用于被存档的、预先记录的音频和视频数据。
与视频帧相对应的音频帧通常是包含音频数据的音频帧,音频数据是与由视频源24捕获(或生成)的被包含在视频帧内的视频数据同时地、由音频源22捕获(或生成)的。例如,当讲话参与者通常通过讲话产生音频数据时,音频源22捕获音频数据,而视频源24同时(即,当音频源22正在捕获音频数据时)捕获讲话参与者的视频数据。因此,音频帧可以在时间上对应于一个或多个特定视频帧。相应地,对应于视频帧的音频帧通常对应于以下情形:其中音频数据和视频数据是同时被捕获的,并且针对其音频帧和视频帧分别包括同时被捕获的音频数据和视频数据。
在一些示例中,音频编码器26可以将表示用于每个经编码的音频帧的音频数据被记录的时间的时间戳编码到该经编码的音频帧中,并且类似地,视频编码器28可以将表示用于每个经编码的视频帧的视频数据被记录的时间的时间戳编码在该经编码的视频帧中。在这样的示例中,音频帧对应于视频帧可以包括含有时间戳的音频帧和含有相同时间戳的视频帧。内容准备设备20可以包括内部时钟,其中音频编码器26和/或视频编码器28可以根据该内部时钟来生成时间戳,或者音频源22和视频源24可以使用该内部时钟将音频数据和视频数据分别与时间戳进行关联。
在一些示例中,音频源22可以向音频编码器26发送与音频数据被记录的时间相对应的数据,而视频源24可以向视频编码器28发送与视频数据被记录的时间相对应的数据。在一些示例中,音频编码器26可以将序列标识符编码到经编码的音频数据中,以指示经编码的音频数据的相对时间顺序,但是不一定指示音频数据被记录的绝对时间,并且类似地,视频编码器28也可以使用序列标识符来指示经编码的视频数据的相对时间顺序。类似地,在一些示例中,序列标识符可以被映射或以其它方式与时间戳相关。
音频编码器26通常产生经编码的音频数据的流,而视频编码器28产生经编码的视频数据的流。每个个别的数据流(无论是音频还是视频)都可以被称为基本流。基本流是表示的单个的、经数字译码的(可能被压缩的)分量。例如,表示的经译码的视频或音频部分可以是基本流。在将基本流封装在视频文件内之前,可以将其转换为分组化基本流(PES)。在同一表示内,流ID可以用于将属于一个基本流的PES分组与属于另一基本流的PES分组区分开。基本流的基础数据单元是分组化基本流(PES)分组。因此,经译码的视频数据通常对应于基本视频流。类似地,音频数据对应于一个或多个相应的基本流。
许多视频译码标准(诸如ITU-T H.264/AVC、以及即将产生的高效率视频译码(HEVC)标准)定义了用于无错误比特流的语法、语义和解码过程,其中的任何一者符合某个简档或级别。视频译码标准通常不指定编码器,但是编码器被派给有保证所生成的比特流对于解码器来说是符合标准的任务。在视频译码标准的背景下,“简档”对应于应用于它们的算法、特征、或工具和约束的子集。例如,如由H.264标准所定义的,“简档”是由H.264标准所指定的整个比特流语法的子集。“级别”对应于与图片的分辨率、比特率和块处理率有关的解码器资源消耗的限制,诸如例如,解码器存储器和计算。可以利用profile_idc(简档指示符)值来用信号通知简档,而可以利用level_idc(级别指示符)值来用信号通知级别。
例如,H.264标准认可的是,在由给定简档的语法施加的界限内,仍然可能需要编码器和解码器的性能的大变化,这取决于由比特流中的语法元素所采用的值,诸如指定的经解码的图片大小。H.264标准进一步认可的是,在许多应用中,实现能够处理特定简档内的语法的所有假设用途的解码器是既不实用也不经济的。因此,H.264标准将“级别”定义为对在比特流中的语法元素的值施加的指定的约束集合。这些约束可能是对值的简单限制。替代地,这些约束可以采取对值的算术组合的约束的形式(例如,图片宽度乘以图片高度乘以每秒解码的图片数量)。H.264标准还提供了个体实现针对每个支持的简档可以支持不同级别。
符合简档的解码器通常支持在简档中定义的所有特征。例如,作为译码特征,B图片译码在H.264/AVC的基准简档中是不支持的,但是在H.264/AVC的其它简档中是支持的。符合级别的解码器应当能够对不需要超出在该级别中定义的限制的资源的任何比特流进行解码。简档和级别的定义可以有助于可解释性。例如,在视频传输期间,可以为整个传输会话协商并且商定一对简档和级别定义。更具体地说,在H.264/AVC中,级别可以定义对以下各项的限制:需要被处理的宏块数量、经解码图片缓冲器(DPB)大小、经译码图片缓冲器(CPB)大小、垂直运动矢量范围、每两个连续MB的运动矢量的最大数量、以及B块是否可以具有小于8x8个像素的子宏块划分。以这种方式,解码器可以确定该解码器是否能够对比特流进行正确地解码。
在图1的示例中,内容准备设备20的封装单元30从视频编码器28接收包括经译码的视频数据的基本流,并且从音频编码器26接收包括经译码的音频数据的基本流。在一些示例中,视频编码器28和音频编码器26可以分别包括用于从经编码的数据形成PES分组的分组化器。在其它示例中,视频编码器28和音频编码器26可以分别与用于从经编码的数据形成PES分组的相应的分组化器进行对接。在又其它示例中,封装单元30可以包括用于从经编码的音频和视频数据形成PES分组的分组化器。
视频编码器28可以以各种方式对多媒体内容的视频数据进行编码,以产生多媒体内容的处于各种比特率并且具有各种特性(诸如像素分辨率、帧速率、符合各种译码标准、符合用于各种译码标准的各个简档和/或简档的级别、具有一个或多个视图的表示(例如,用于二维或三维回放)或其它这样的特性)的不同表示。如在本公开内容中使用的表示可以包括音频数据、视频数据、文本数据(例如,用于隐藏式字幕)或其它这样的数据中的一者。表示可以包括基本流,诸如音频基本流或视频基本流。每个PES分组可以包括标识该PES分组所属的基本流的stream_id。封装单元30负责将基本流组装成各个表示的视频文件(例如,分段)。
封装单元30从音频编码器26和视频编码器28接收用于表示的基本流的PES分组,并且从PES分组形成对应的网络抽象层(NAL)单元。可以将经译码的视频分段组织为NAL单元,这些NAL单元提供了寻址到诸如视频电话、存储、广播或流式传输之类的应用的“网络友好”视频表示。NAL单元可以被分类为视频译码层(VCL)NAL单元和非VCL NAL单元。VCL单元可以包含核心压缩引擎,并且可以包括块、宏块和/或切片级数据。其它NAL单元可以是非VCL NAL单元。在一些示例中,在一个时间实例中通常被呈现为基本经译码图片的经译码图片可以被包含在访问单元中,访问单元可以包括一个或多个NAL单元。
非VCL NAL单元还可以包括参数集NAL单元和SEI NAL单元以及其它单元。参数集可以包含序列级别报头信息(在序列参数集(SPS)中)和不频繁变化的图片级别报头信息(在图片参数集(PPS)中)。利用参数集(例如,PPS和SPS),不需要为每个序列或图片重复不频繁变化的信息;因此可以提高译码效率。此外,使用参数集可以实现对重要报头信息的带外传输,从而避免为了错误恢复而对于冗余传输的需求。在带外传输示例中,可以在与其它NAL单元(诸如SEI NAL单元)不同的信道上发送参数集NAL单元。
补充增强信息(SEI)可能包含对于从VCL NAL单元解码经译码的图片样本而言不必要的信息,但是可能有助于与解码、显示、错误恢复和其它目的有关的过程。SEI消息可以被包含在非VCL NAL单元中。SEI消息是一些标准规范的规范性部分,并且因此对于符合标准的解码器实现而言并非总是强制的。SEI消息可以是序列级别SEI消息或图片级别SEI消息。一些序列级别信息可以被包含在SEI消息中,诸如在SVC示例中的可缩放性信息SEI消息、以及在MVC中的视图可缩放性信息SEI消息。这些示例SEI消息可以传递关于例如操作点的提取和操作点的特性的信息。另外,封装单元30可以形成清单文件,诸如描述表示的特性的媒体呈现描述符(MPD)。封装单元30可以根据可扩展标记语言(XML)来将MPD格式化。
封装单元30可以将用于多媒体内容的一个或多个表示的数据以及清单文件(例如,MPD)一起提供给输出接口32。输出接口32可以包括网络接口、或用于写入存储介质的接口(诸如通用串行总线(USB)接口、CD或DVD刻录机或烧录机、与磁或闪速存储介质的接口、或用于存储或发送媒体数据的其它接口)。封装单元30可以将多媒体内容的表示中的每个表示的数据提供给输出接口32,输出接口32可以经由网络传输或存储介质将数据发送给服务器设备60。在图1的示例中,服务器设备60包括用于存储各种多媒体内容64的存储介质62,每种多媒体内容包括相应的清单文件66和一个或多个表示68A-68N(表示68)。在一些示例中,输出接口32还可以直接向网络74发送数据。
在一些示例中,表示68可以被分成适配集合。也就是说,表示68的各个子集可以包括相应的公共特性集,诸如编解码器、简档和级别、分辨率、视图数量、用于分段的文件格式、可以标识将与表示和/或要被解码和例如由扬声器呈现的音频数据一起显示的文本的语言或其它特性的文本类型信息、可以描述针对适配集合中的表示的场景的相机角度或现实世界视角的相机角度信息、描述内容对于特定观众的适合性的评级信息等。
清单文件66可以包括指示与特定的适配集合相对应的表示68的子集以及用于适配集合的公共特性的数据。清单文件66还可以包括表示用于适配集合中的个别表示的个别特性的数据,诸如比特率。以这种方式,适配集合可以提供简化的网络带宽适配。可以使用清单文件66的适配集合元素中的子元素来指示在适配集合中的表示。
服务器设备60包括请求处理单元70和网络接口72。在一些示例中,服务器设备60可以包括多个网络接口。此外,服务器设备60的任何或所有特征可以在内容递送网络的其它设备上实现,诸如路由器、桥接器、代理设备、交换机或其它设备。在一些示例中,内容递送网络的中间设备可以对多媒体内容64的数据进行高速缓存,并且包括基本上与服务器设备60的组件一致的组件。通常,网络接口72被配置为经由网络74发送和接收数据。
请求处理单元70被配置为从诸如客户端设备40之类的客户端设备接收对存储介质62的数据的网络请求。例如,请求处理单元70可以实现如在RFC 2616中(1999年6月,IETF,网络工作组,R.Fielding等人的“Hypertext Transfer Protocol–HTTP/1.1”)中描述的超文本传输协议(HTTP)版本1.1。也就是说,请求处理单元70可以被配置为接收HTTP GET或部分GET请求,并且响应于所述请求而提供多媒体内容64的数据。请求可以指定表示68中的一个表示的分段(例如,使用该分段的URL)。在一些示例中,请求还可以指定分段的一个或多个字节范围,由此包括部分GET请求。请求处理单元70还可以被配置为对HTTP HEAD请求进行服务以提供表示68中的一个表示的分段的报头数据。在任何情况下,请求处理单元70可以被配置为处理请求以将请求的数据提供给进行请求的设备(诸如客户端设备40)。
另外或替代地,请求处理单元70可以被配置为经由诸如eMBMS之类的广播或多播协议来递送媒体数据。内容准备设备20可以以与所描述的基本相同的方式来创建DASH分段和/或子分段,但是服务器设备60可以使用eMBMS或另一广播或多播网络传输协议来递送这些分段或子分段。例如,请求处理单元70可以被配置为从客户端设备40接收多播组加入请求。也就是说,服务器设备60可以向包括客户端设备40的客户端设备通告与多播组相关联的互联网协议(IP)地址,该多播组与特定的媒体内容(例如,实况事件的广播)相关联。客户端设备40进而可以提交用于加入多播组的请求。该请求可以在整个网络74(例如,组成网络74的路由器)中传播,从而使路由器将去往与多播组相关联的IP地址的业务引导到订制客户端设备(诸如客户端设备40)。
如在图1的示例中所示,多媒体内容64包括清单文件66,清单文件66可以对应于媒体呈现描述(MPD)。清单文件66可以包含对不同替代表示68(例如,具有不同质量的视频服务)的描述,并且该描述可以包括例如表示68的编解码器信息、简档值、级别值、比特率和其它描述性特性。客户端设备40可以检索媒体呈现的MPD以确定如何访问表示68的分段。
具体地,检索单元52可以检索客户端设备40的配置数据(未示出)以确定视频解码器48的解码能力和视频输出44的渲染能力。视频输出44可以被包括在用于扩展现实、增强现实或虚拟现实的显示设备(诸如耳机)中。同样,配置数据可以指示视频输出44是否能够呈现三维视频数据,例如,用于扩展现实、增强现实、虚拟现实等。配置数据还可以包括以下各项中的任何一项或全部:由客户端设备40的用户选择的语言偏好、与由客户端设备40的用户设置的深度偏好相对应的一个或多个相机视角、和/或由客户端设备40的用户选择的评级偏好。
检索单元52可以包括例如被配置为提交HTTP GET和部分GET请求的网页浏览器或媒体客户端。检索单元52可以对应于由客户端设备40的一个或多个处理器或处理单元(未示出)执行的软件指令。在一些示例中,关于检索单元52描述的功能中的全部或部分功能可以用硬件、或者用硬件、软件和/或固件的组合来实现,其中可以提供必需的硬件来执行针对软件或固件的指令。
检索单元52可以将客户端设备40的解码和渲染能力与由清单文件66的信息所指示的表示68的特性进行比较。检索单元52可以初始地检索清单文件66的至少一部分以确定表示68的特性。例如,检索单元52可以请求清单文件66的描述一个或多个适配集合的特性的一部分。检索单元52可以选择表示68的具有可以由客户端设备40的译码和渲染能力满足的特性的子集(例如,适配集合)。检索单元52然后可以确定用于在适配集合中的表示的比特率,确定当前可用的网络带宽量,并且从表示中的一个表示中检索具有网络带宽可以满足的比特率的分段。
通常,较高比特率的表示可以产生较高质量的视频回放,而较低比特率的表示可以在可用网络带宽减小时提供足够质量的视频回放。相应地,当可用网络带宽是相对高的时,检索单元52可以从相对高比特率的表示中检索数据,而当可用网络带宽是低的时,检索单元52可以从相对低比特率的表示中检索数据。以这种方式,客户端设备40可以在网络74上对多媒体数据进行流式传输,同时还适配网络74的变化的网络带宽可用性。
另外或替代地,检索单元52可以被配置为根据诸如eMBMS或IP多播之类的广播或多播网络协议来接收数据。在这样的示例中,检索单元52可以提交用于加入与特定的媒体内容相关联的多播网络组的请求。在加入多播组之后,检索单元52可以接收该多播组的数据,而无需向服务器设备60或内容准备设备20发出另外的请求。当不再需要多播组的数据时,检索单元52可以提交用于离开该多播组的请求,例如,停止回放或者将信道改变到不同的多播组。
网络接口54可以接收所选择的表示的分段的数据并且将其提供给检索单元52,检索单元52进而可以将分段提供给解封装单元50。解封装单元50可以将视频文件的元素解封装为组成的PES流,对PES流进行解分组化以检索经编码的数据,并且向音频解码器46或视频解码器48发送经编码的数据,这取决于经编码的数据是音频流还是视频流的一部分(例如,如由该流的PES分组报头所指示的)。音频解码器46对经编码的音频数据进行解码并且将经解码的音频数据发送到音频输出42,而视频解码器48对经编码的视频数据进行解码并且将经解码的视频数据(其可以包括流的多个视图)发送到视频输出44。
视频编码器28、视频解码器48、音频编码器26、音频解码器46、封装单元30、检索单元52和解封装单元50均可以在适用的情况下被实现为各种适当的处理电路中的任何一者,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑电路、软件、硬件、固件或其任何组合。视频编码器28和视频解码器48中的每一者可以被包括在一个或多个编码器或解码器中,其中的任一者可以被集成为组合的视频编码器/解码器(CODEC)的一部分。同样,音频编码器26和音频解码器46中的每一者可以被包括在一个或多个编码器或解码器中,其中的任一者可以被集成为组合的CODEC的一部分。包括视频编码器28、视频解码器48、音频编码器26、音频解码器46、封装单元30、检索单元52和/或解封装单元50的装置可以包括集成电路、微处理器和/或无线通信设备(诸如蜂窝电话)。
客户端设备40、服务器设备60和/或内容准备设备20可以被配置为根据本公开内容的技术进行操作。出于示例的目的,本公开内容关于客户端设备40和服务器设备60描述了这些技术。然而,应当理解的是,内容准备设备20可以被配置为执行这些技术,代替(或者除了)服务器设备60。
封装单元30可以形成NAL单元,NAL单元包括标识该NAL单元所属的节目的报头以及有效载荷(例如,音频数据、视频数据、或描述NAL单元所对应的传输或节目流的数据)。例如,在H.264/AVC中,NAL单元包括1字节的报头和可变大小的有效载荷。在其有效载荷中包括视频数据的NAL单元可以包括各种粒度级别的视频数据。例如,NAL单元可以包括视频数据块、多个块、视频数据的切片、或视频数据的整个图片。封装单元30可以以基本流的PES分组的形式从视频编码器28接收经编码的视频数据。封装单元30可以将每个基本流与对应的节目进行关联。
封装单元30还可以从多个NAL单元组装访问单元。通常,访问单元可以包括一个或多个NAL单元,其用于表示视频数据的帧、以及与该帧相对应的音频数据(当这样的音频数据是可用的时)。访问单元通常包括用于一个输出时间实例的所有NAL单元,例如,用于一个时间实例的所有音频和视频数据。例如,如果每个视图具有20帧每秒(fps)的帧速率,则每个时间实例可以对应于0.05秒的时间间隔。在该时间间隔期间,可以同时渲染用于同一访问单元(同一时间实例)的所有视图的特定帧。在一个示例中,访问单元可以包括在一个时间实例中的经译码的图片,其可以被呈现为基本经译码图片。
相应地,访问单元可以包括公共时间实例的所有音频和视频帧,例如,对应于时间X的所有视图。本公开内容还将特定视图的经编码的图片称为“视图分量”。也就是说,视图分量可以包括在特定时间处用于特定视图的经编码的图片(或帧)。相应地,访问单元可以被定义为包括公共时间实例的所有视图分量。访问单元的解码顺序不一定需要与输出或显示顺序相同。
媒体呈现可以包括媒体呈现描述(MPD),其可以包含不同替代表示(例如,具有不同质量的视频服务)的描述,并且该描述可以包括例如编解码器信息、简档值和级别值。MPD是清单文件的一个示例,诸如清单文件66。客户端设备40可以检索媒体呈现的MPD,以确定如何访问各个呈现的电影片段。电影片段可以位于视频文件的电影片段盒(box)(moof盒)中。
清单文件66(其可以包括例如MPD)可以通告表示68的分段的可用性。也就是说,MPD可以包括指示表示68中的一个表示的第一分段变得可用的时钟时间的信息、以及指示表示68内的分段的持续时间的信息。以这种方式,客户端设备40的检索单元52可以基于在特定分段之前的分段的开始时间以及持续时间来确定每个分段何时可用。
在封装单元30已经基于所接收的数据将NAL单元和/或访问单元组装为视频文件之后,封装单元30将视频文件传递到输出接口32以进行输出。在一些示例中,封装单元30可以将视频文件进行本地存储或者经由输出接口32将视频文件发送给远程服务器,而不是将视频文件直接发送给客户端设备40。输出接口32可以包括例如发射机、收发机、用于将数据写入计算机可读介质的设备(诸如例如,光学驱动器、磁介质驱动器(例如,软盘驱动器))、通用串行总线(USB)端口、网络接口或其它输出接口。输出接口32将视频文件输出到计算机可读介质,诸如例如,传输信号、磁介质、光学介质、存储器、闪存驱动器或其它计算机可读介质。
网络接口54可以经由网络74接收NAL单元或访问单元,并且经由检索单元52将NAL单元或访问单元提供给解封装单元50。解封装单元50可以将视频文件的元素解封装为组成PES流,将PES流进行解分组化以检索经编码的数据,并且向音频解码器46或视频解码器48(取决于经编码的数据是音频流还是视频流的一部分,例如如由流的PES分组报头指示的)发送经编码的数据。音频解码器46对经编码的音频数据进行解码并且将经解码的音频数据发送到音频输出42,而视频解码器48对经编码的视频数据进行解码并且将经解码的视频数据(其可以包括流的多个视图)发送到视频输出44。
根据本公开内容的技术,客户端设备40的用户可以获得与诸如用于扩展现实(XR)、增强现实(AR)、虚拟现实(VR)等的3D虚拟场景相关的媒体数据。用户可以使用与客户端设备40相通信的一个或多个设备(诸如控制器)来导航穿过3D虚拟场景。另外或替代地,客户端设备40可以包括用于确定用户已经在真实世界空间中移动的传感器、相机等,并且客户端设备40可以将此类真实世界移动转化为虚拟空间移动。
3D虚拟场景可以包括一个或多个虚拟固体对象。此类对象可以包括例如墙、窗、桌子、椅子或可能出现在虚拟场景中的任何其它此类对象。根据本公开内容的技术,由检索单元52检索的媒体数据可以包括描述此类虚拟固体对象的场景描述。场景描述可以符合例如glTF 2.0的MPEG场景描述元素。
在一些示例中,场景描述可以包括可允许相机移动的描述。例如,场景描述可以描述允许虚拟相机在其中移动使得不允许虚拟相机移动超出形状的边界的一个或多个边界体积(例如,根据形状的体积,诸如球体、立方体、圆锥体、平截头体等)。也就是说,边界体积可以描述允许虚拟相机在其中移动的可允许相机移动体积。另外或替代地,场景描述可以描述一个或多个顶点或锚点以及顶点或锚点之间的允许路径(例如,分段)。客户端设备40可以仅允许虚拟相机沿着允许路径和/或在边界体积内移动。
在一些示例中,另外或替代地,场景描述可以描述在场景中虚拟相机无法穿过的一个或多个虚拟固体对象。
图2是更详细地示出图1的检索单元52的示例组件集合的框图。在该示例中,检索单元52包括eMBMS中间件单元100、DASH客户端110、媒体应用112以及呈现引擎114。
在该示例中,eMBMS中间件单元100还包括eMBMS接收单元106、高速缓存104和代理服务器单元102。在该示例中,eMBMS接收单元106被配置为经由eMBMS,例如,根据基于单向传输的文件传送(FLUTE)来接收数据,FLUTE是在2012年11月、RFC 6726、网络工作组、T.Paila等人的“FLUTE—File Delivery over Unidirectional Transport”中描述的,其可在tools.ietf.org/html/rfc6726处获得。也就是说,eMBMS接收单元106可以经由广播从例如服务器设备60接收文件,服务器设备60可以充当广播/多播服务中心(BM-SC)。
随着eMBMS中间件单元100接收用于文件的数据,eMBMS中间件单元可以将所接收的数据存储在高速缓存104中。高速缓存104可以包括计算机可读存储介质,诸如闪存、硬盘驱动器、RAM或任何其它适当的存储介质。
代理服务器单元102可以充当用于DASH客户端110的服务器。例如,代理服务器单元102可以向DASH客户端110提供MPD文件或其它清单文件。代理服务器单元102可以在MPD文件中通告针对分段的可用性时间以及分段可以从其中被检索的超链接。这些超链接可以包括与客户端设备40相对应的本地主机地址前缀(例如,对于IPv4而言,为127.0.0.1)。以这种方式,DASH客户端110可以使用HTTP GET或部分GET请求从代理服务器单元102请求分段。例如,对于可从链接http://127.0.0.1/rep1/seg3得到的分段,DASH客户端110可以构造包括针对http://127.0.0.1/rep1/seg3的请求的HTTP GET请求,并且向代理服务器单元102提交该请求。代理服务器单元102可以响应于这样的请求来从高速缓存104检索所请求的数据,并且将该数据提供给DASH客户端110。
DASH客户端110将所检索到的媒体数据提供给媒体应用112。例如,媒体应用112可以是网页浏览器、游戏引擎或接收和呈现媒体数据的另一应用。此外,呈现引擎114表示与媒体应用112进行交互以在3D虚拟环境中呈现所检索到的媒体数据的应用。呈现引擎114可以例如将二维媒体数据映射到3D投影上。呈现引擎114还可以接收来自客户端设备40的其它元件的输入,以确定用户在3D虚拟环境中的位置以及用户在该位置中正在面对的朝向。例如,呈现引擎114可以确定用户位置的X、Y和Z坐标、以及用户正在观看的朝向,以便确定要向用户显示的适当媒体数据。此外,呈现引擎114可以接收表示真实世界用户移动数据的相机移动数据,并且将真实世界用户移动数据转化为3D虚拟空间移动数据。
根据本公开内容的技术,eMBMS中间件单元100可以经由广播或多播来接收媒体数据(例如,根据glTF 2.0),然后DASH客户端110可以从eMBMS中间件单元100检索媒体数据。媒体数据可以包括场景描述,场景描述包括指示虚拟相机可以如何移动穿过虚拟场景的相机控制信息。例如,场景描述可以包括描述穿过虚拟场景的可允许路径的数据,例如,沿着锚点之间的定义路径。另外或替代地,场景描述可以包括描述边界体积的数据,边界体积表示允许虚拟相机在其中移动的体积。另外或替代地,场景描述可以包括描述3D虚拟环境中的一个或多个固体虚拟对象(诸如墙、桌子、椅子等)的数据。例如,场景描述的数据可以定义3D虚拟对象的碰撞边界。场景描述还可以包括表示在与此类对象的碰撞的情况下发生哪种情况的数据,诸如要使用该对象播放的动画,无论该对象是静态的(例如,在墙的情况下)还是动态的(例如,在椅子的情况下)。
呈现引擎114可以使用场景描述来确定在与3D虚拟对象的碰撞和/或尝试移动到可允许路径或体积之外的情况下要呈现什么。例如,如果场景描述包括用于可允许路径或边界体积的数据,并且用户尝试移动超出可允许路径或边界体积,则呈现引擎114可以简单地避免更新显示器,从而指示不允许此类移动。作为另一示例,如果场景描述包括用于3D虚拟固体对象的数据,并且用户尝试移动穿过3D虚拟固体对象,那么,如果3D虚拟固体对象是静态的,则呈现引擎114可以避免更新显示器。如果3D虚拟固体对象不是静态的,则呈现引擎114可以确定要为该对象显示的动画,例如,要应用于该对象的平移移动和/或旋转移动。例如,如果3D虚拟固体对象是一把椅子,则动画数据可以指示椅子将沿着地板被推动,或者在碰撞的情况下摔倒。
图3是示出示例多媒体内容120的元素的概念图。多媒体内容120可以对应于多媒体内容64(图1)或被存储在存储介质62中的另一多媒体内容。在图3的示例中,多媒体内容120包括媒体呈现描述(MPD)122和多个表示124A-124N(表示124)。表示124A包括可选的报头数据126和分段128A-128N(分段128),而表示124N包括可选的报头数据130和分段132A-132N(分段132)。为了方便起见,字母N用于指定表示124中的每个表示中的最后一个电影片段。在一些示例中,在表示124之间可以存在不同数量的电影片段。
MPD 122可以包括与表示124分开的数据结构。MPD 122可以对应于图1的清单文件66。同样,表示124可以对应于图1的表示68。通常,MPD 122可以包括通常描述表示124的特性的数据,诸如译码和渲染特性、适配集合、MPD 122所对应的简档、文本类型信息、相机角度信息、评级信息、特技模式信息(例如,指示包括时间子序列的表示的信息)、和/或用于检索远程时段的信息(例如,用于在回放期间将目标广告插入到媒体内容中)。
报头数据126(在存在时)可以描述分段128的特性,例如,随机访问点(RAP,也被称为流访问点(SAP))的时间位置、分段128中的哪个包括随机访问点、与分段128内的随机访问点的字节偏移、分段128的统一资源定位符(URL)、或分段128的其它方面。报头数据130(当存在时)可以描述分段132的类似特性。另外或替代地,这样的特性可以被完全包括在MPD 122中。
分段128、132包括一个或多个经译码的视频样本,其中的每个经译码的视频样本可以包括视频数据的帧或切片。分段128的经译码的视频样本中的每一者可以具有类似的特性,例如,高度、宽度和带宽要求。这样的特性可以由MPD 122的数据来描述,虽然在图3的示例中未示出这样的数据。MPD 122可以包括如由3GPP规范描述的特性,其中添加了在本公开内容中描述的用信号通知的信息中的任何或全部信息。
分段128、132中的每个分段可以与唯一的统一资源定位符(URL)相关联。因此,分段128、132中的每个分段可以是可使用诸如DASH之类的流式传输网络协议来独立地检索的。以这种方式,诸如客户端设备40之类的目的地设备可以使用HTTP GET请求来检索分段128或132。在一些示例中,客户端设备40可以使用HTTP partial GET请求来检索分段128或132的特定字节范围。
图4是示出示例视频文件150的元素的框图,视频文件150可以对应于表示的分段,诸如图3的分段128、132之一。分段128、132中的每个分段可以包括基本上符合在图4的示例中示出的数据的布置的数据。视频文件150可以被认为是封装分段。如上所述,根据ISO基媒体文件格式以及其扩展的视频文件将数据存储在被称为“盒”的一系列对象中。在图4的示例中,视频文件150包括文件类型(FTYP)盒152、电影(MOOV)盒154、分段索引(sidx)盒162、电影片段(MOOF)盒164、以及电影片段随机访问(MFRA)盒166。尽管图4表示视频文件的示例,但是应当理解的是,其它媒体文件可以包括根据ISO基媒体文件格式以及其扩展而与视频文件150的数据类似地构造的其它类型的媒体数据(例如,音频数据、定时文本数据等)。
文件类型(FTYP)盒152通常描述用于视频文件150的文件类型。文件类型盒152可以包括标识描述用于视频文件150的最佳用途的规范的数据。文件类型盒152可以替代地被放置在MOOV盒154、电影片段盒164和/或MFRA盒166之前。
在一些示例中,诸如视频文件150之类的分段可以在FTYP盒152之前包括MPD更新盒(未示出)。MPD更新盒可以包括指示与包括视频文件150的表示相对应的MPD将被更新的信息以及用于更新MPD的信息。例如,MPD更新盒可以提供用于将用于更新MPD的资源的URI或URL。作为另一示例,MPD更新盒可以包括用于更新MPD的数据。在一些示例中,MPD更新盒可以紧跟在视频文件150的分段类型(STYP)盒(未显示)之后,其中STYP盒可以定义用于视频文件150的分段类型。
在图4的示例中,MOOV盒154包括电影报头(MVHD)盒156、轨道(TRAK)盒158以及一个或多个电影扩展(MVEX)盒160。通常,MVHD盒156可以描述视频文件150的一般特性。例如,MVHD盒156可以包括描述视频文件150最初何时被创建、视频文件150最近何时被修改、用于视频文件150的时间标度、用于视频文件150的回放的持续时间的数据、或者通常描述视频文件150的其它数据。
TRAK盒158可以包括用于视频文件150的轨道的数据。TRAK盒158可以包括描述与TRAK盒158相对应的轨道的特性的轨道报头(TKHD)盒。在一些示例中,TRAK盒158可以包括经译码的视频图片,而在其它示例中,轨道的经译码的视频图片可以被包括在电影片段164中,电影片段164可以通过TRAK盒158和/或sidx盒162的数据来引用。
在一些示例中,视频文件150可以包括一个以上的轨道。因此,MOOV盒154可以包括一数量的TRAK盒,TRAK盒的数量等于视频文件150中的轨道的数量。TRAK盒158可以描述视频文件150的对应轨道的特性。例如,TRAK盒158可以描述用于对应轨道的时间和/或空间信息。当封装单元30(图3)在诸如视频文件150之类的视频文件中包括参数集轨道时,类似于MOOV盒154的TRAK盒158的TRAK盒可以描述参数集轨道的特性。封装单元30可以在描述参数集轨道的TRAK盒内用信号通知序列级别SEI消息在参数集轨道中的存在。
MVEX盒160可以描述对应的电影片段164的特性,例如,以用信号通知除了被包括在MOOV盒154内的视频数据(如果有的话)之外,视频文件150还包括电影片段164。在流式传输视频数据的背景下,经译码的视频图片可以被包括在电影片段164中,而不是在MOOV盒154中。因此,所有经译码的视频样本可以被包括在电影片段164中,而不是在MOOV盒154中。
MOOV盒154可以包括一数量的MVEX盒160,MVEX盒160的数量等于视频文件150中的电影片段164的数量。MVEX盒160中的每一者可以描述电影片段164中的相应电影片段的特性。例如,每个MVEX盒可以包括电影扩展报头盒(MEHD)盒,其描述用于电影片段164中的对应电影片段的时间上的持续时间。
如上所述,封装单元30可以将序列数据集存储在不包括实际经译码的视频数据的视频样本中。视频样本通常可以对应于访问单元,访问单元是在特定时间实例处的经译码的图片的表示。在AVC的背景下,经译码的图片包括包含要构造访问单元的所有像素的信息的一个或多个VCL NAL单元和其它相关联的非VCL NAL单元(诸如SEI消息)。相应地,封装单元30可以在电影片段164中的一个电影片段中包括序列数据集,序列数据集可以包括序列级别SEI消息。封装单元30还可以在MVEX盒160内的与电影片段164之一相对应的MVEX盒中将序列数据集和/或序列级别SEI消息的存在用信号通知为存在于电影片段164中的该电影片段中。
SIDX盒162是视频文件150的可选元素。也就是说,符合3GPP文件格式或其它这样的文件格式的视频文件不一定包括SIDX盒162。根据3GPP文件格式的示例,SIDX盒可以用于标识分段(例如,被包含在视频文件150内的分段)的子分段。3GPP文件格式将子分段定义为“具有对应媒体数据盒的一个或多个连续电影片段盒的自包含集,并且包含由电影片段盒引用的数据的媒体数据盒必须跟随在该电影片段盒之后并且在包含关于相同轨道的信息的下一电影片段盒之前。”3GPP文件格式还指示SIDX盒“包含对由该盒所记载的(子)分段的子分段的引用序列。所引用的子分段在呈现时间上是连续的。类似地,由分段索引盒所引用的字节在分段内始终是连续的。所引用的大小给出了在所引用的材料中的字节数量的计数。”
SIDX盒162通常提供表示被包括在视频文件150中的分段的一个或多个子分段的信息。例如,此类信息可以包括子分段开始和/或结束的回放时间、针对子分段的字节偏移、子分段是否包括流访问点(SAP)(例如,从其开始)、用于SAP的类型(例如,SAP是即时解码器刷新(IDR)图片、干净随机访问(CRA)图片、断链访问(BLA)图片、还是其它图片)、SAP在子分段中的位置(依据回放时间和/或字节偏移)等。
电影片段164可以包括一个或多个经译码的视频图片。在一些示例中,电影片段164可以包括一个或多个图片组(GOP),其中的每个图片组可以包括多个经译码的视频图片,例如,帧或图片。另外,如上所述,在一些示例中,电影片段164可以包括序列数据集。电影片段164中的每个电影片段可以包括电影片段报头盒(MFHD,在图4中未示出)。MFHD盒可以描述对应电影片段的特性,诸如用于该电影片段的序列号。电影片段164可以按照序列号的顺序被包括在视频文件150中。
MFRA盒166可以描述在视频文件150的电影片段164内的随机访问点。这可以辅助执行特技模式,诸如对通过视频文件150封装的分段内的特定时间位置(即,回放时间)执行搜索。MFRA盒166通常是可选的,并且在一些示例中不需要被包括在视频文件中。同样,客户端设备(例如,客户端设备40)不一定需要引用MFRA盒166来正确地解码和显示视频文件150的视频数据。MFRA盒166可以包括一数量的轨道片段随机访问(TFRA)盒(未示出),TFRA盒的数量等于视频文件150的轨道数量,或者在一些示例中,等于视频文件150的媒体轨道(例如,非提示轨道)的数量。
在一些示例中,电影片段164可以包括一个或多个流访问点(SAP),诸如IDR图片。同样,MFRA盒166可以提供对SAP在视频文件150内的位置的指示。相应地,视频文件150的时间子序列可以从视频文件150的SAP形成。时间子序列还可以包括其它图片,诸如依赖于SAP的P帧和/或B帧。可以将时间子序列的帧和/或切片布置在分段内,使得可以正确地解码时间子序列的、依赖于该子序列的其它帧/切片的帧/切片。例如,在数据的分层布置中,用于针对其它数据的预测的数据也可以被包括在时间子序列中。
图5是示出根据本公开内容的技术的具有边界体积的示例相机路径分段212的概念图。具体地,在3D场景200中,相机202表示用户能够观看3D场景200的一部分的视点。在该示例中,路径分段212被定义在点204和点206之间。此外,通过沿着路径分段212将点从边界框208挤压到边界框210来定义边界体积。因此,在该示例中,允许相机202沿着路径分段212在边界体积内移动,但限制其移动超出边界体积。
场景描述可以描述允许相机(诸如相机202)沿着其移动的路径集合。路径可以被描述为锚点集合(诸如点204、206),它们通过路径分段(诸如路径分段212)连接。在一些示例(诸如图5的示例)中,每个路径分段可以利用允许沿着路径的某种运动自由的边界体积来增强。
因此,场景相机以及因此观看者将能够在边界体积内沿着路径分段自由地移动。可以使用更复杂的几何形状来描述路径分段,以允许对路径进行更精细的控制。
此外,相机参数可能在沿着路径的每个点处受到约束。可以提供用于每个锚点的参数,并且然后与插值函数一起使用,以计算用于沿着路径分段的每个点的相应参数。插值函数可以适用于所有参数,包括边界体积。
本公开内容的相机控制扩展机制可以被实现为定义用于场景的相机控制的glTF2.0扩展。相机控制扩展可以由“MPEG_camera_control”标签来标识,该标签可以被包括在extensionsUsed元素中,并且可以被包括在用于3D场景的extensionsRequired元素中。
下面在表1中示出了示例“MPEG_camera_control”扩展,并且可以在场景描述的“camera”元素上定义。
表1
相机控制信息可以如下构造:
·对于每个锚点,锚点的(x,y,z)坐标可以使用浮点值来表示
·对于每个路径分段,路径分段的第一锚点和第二锚点的(i,j)索引可以表示为整数值
·对于边界体积:
o如果边界体积为BV_CONE,则可以提供第一锚点和第二锚点的圆的(r1,r2)半径。
o如果边界体积为BV_FRUSTUM,则可以针对路径分段的每个锚点提供
((x,y,z)_topleft,w,h)。
o如果边界体积为BV_SPHERE,则可以针对路径分段的每个锚点提供作为球体的半径的r。
·如果固有参数为true,则可以修改固有参数对象。
呈现引擎(例如,图2的呈现引擎114或客户端设备40的另一元件,其可以不同于在图1和图2中所示的组件)可以支持MPEG_camera_control扩展或其它此类数据结构。如果场景提供相机控制信息,则呈现引擎可以将相机移动限制在所指示的路径上,使得相机的(x,y,z)坐标始终位于路径分段上或路径分段的边界体积内。当观看者接近边界体积的边界时,呈现引擎可以向他们提供视觉、听觉和/或触觉反馈。
图6是示出示例虚拟对象220的概念图,在该示例中虚拟对象220是椅子。为了向观看者提供沉浸式体验,重要的是观看者与场景中的对象正确地交互。观看者不应当能够穿行场景中的固体对象(诸如墙、椅子和桌子)或其它此类固体对象。
图6描绘了椅子的3D网格表示以及被定义为长方体集合的碰撞边界。可以定义MPEG_mesh_collision扩展数据结构,以提供此类3D网格的碰撞边界的描述。扩展数据结构可以在网格对象上定义为在网格几何体周围的长方体集合。下面的表2表示了可以被包括在此类扩展数据结构中的示例属性集合。
表2
网格碰撞信息可以包括长方体边界的长方体顶点坐标(x,y,z)、或球形边界的球体中心和半径。这些值可以作为浮点数来提供。
呈现引擎可以支持MPEG_mesh_collision扩展或其它此类数据结构。呈现引擎可以确保相机位置(x,y,z)在任何时间点都不会变得被包含在所定义的网格长方体中的一者内。可以通过视觉、听觉和/或触觉反馈将碰撞用信号通知给观看者。呈现引擎可以使用关于用于节点的边界的信息来初始化和配置将检测碰撞的3D物理引擎。
图7是示出根据本公开内容的技术的检索媒体数据的示例方法的流程图。关于图1的客户端设备40和图2的检索单元52解释了图7的方法。其它此类设备可以被配置为执行该方法或类似方法。
最初,客户端设备40可以检索媒体数据(250)。例如,检索单元52可以检索例如符合glTF 2.0的媒体数据。在一些示例中,检索单元52可以例如根据单播(诸如使用DASH)来直接检索媒体数据。在一些示例中,检索单元52的中间件单元(诸如图2的eMBMS中间件100)可以经由广播或多播接收媒体数据,然后DASH客户端(例如,图2的DASH客户端110)可以从中间件单元检索媒体数据。
媒体数据可以包括场景描述。因此,检索单元52或客户端设备40的另一组件可以从媒体数据中提取场景描述(252)。根据本公开内容的技术,场景描述可以是包括相机控制数据的MPEG场景描述。检索单元52可以向呈现引擎114提供场景描述。呈现引擎114因此可以接收场景描述,并且进而根据场景描述来确定用于三维场景的相机控制数据(254)。相机控制数据可以符合上面的表1。也就是说,例如,相机控制数据可以包括用于相机路径的一个或多个锚点、用于相机路径的锚点之间的一个或多个分段、诸如圆锥体、平截头体或球体之类的边界体积、可以在每个锚点处修改的固有参数、和/或提供相机控制信息的存取器。
呈现引擎114还可以根据相机控制数据来确定移动限制(256)。例如,呈现引擎114可以根据相机控制数据的移动限制来确定两个或更多个锚点以及锚点之间的允许路径。另外或替代地,呈现引擎114可以根据相机控制数据的移动限制来确定边界体积,诸如立方体、球体、平截头体、圆锥体等。呈现引擎114可以使用允许路径来确定允许虚拟相机沿着其移动的路径和/或允许虚拟相机在边界体积内移动但不在边界体积之外的路径。可以定义允许路径和/或边界体积,以确保虚拟相机不会超过3D固体虚拟对象,诸如墙。也就是说,可以将边界体积或允许路径定义为在一个或多个3D固体虚拟对象(诸如墙、地板、天花板或3D虚拟场景中的其它对象)内。
呈现引擎114然后可以接收相机移动数据(258)。例如,呈现引擎114可以从一个或多个控制器(诸如手持控制器和/或包括显示器的耳机)接收数据,其表示耳机的朝向以及耳机和/或虚拟相机的移动(诸如定向移动和/或旋转移动)。呈现引擎114可以确定相机移动数据请求相机穿过3D固体虚拟对象的移动(诸如超出边界体积的边界或沿着不是所定义的允许路径之一的路径)(260)。作为响应,呈现引擎114可以防止虚拟相机穿越3D固体虚拟对象(262)。
以这种方式,图7的方法表示一种检索媒体数据的方法的示例,包括由呈现引擎接收流式媒体数据,流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;由呈现引擎接收用于三维场景的相机控制数据,相机控制数据包括定义限制以防止虚拟相机穿越至少一个虚拟固体对象的数据;由呈现引擎从用户接收相机移动数据,相机移动数据请求虚拟相机移动穿过至少一个虚拟固体对象;以及使用相机控制数据,由呈现引擎响应于相机移动数据来防止虚拟相机穿越至少一个虚拟固体对象。
图8是示出根据本公开内容的技术的检索媒体数据的示例方法的流程图。关于图1的客户端设备40和图2的检索单元52解释了图8的方法。其它此类设备可以被配置为执行该方法或类似方法。
最初,客户端设备40可以检索媒体数据(280)。例如,检索单元52可以检索例如符合glTF 2.0的媒体数据。在一些示例中,检索单元52可以例如根据单播(诸如使用DASH)直接地检索媒体数据。在一些示例中,检索单元52的中间件单元(诸如图2的eMBMS中间件100)可以经由广播或多播接收媒体数据,然后DASH客户端(例如,图2的DASH客户端110)可以从中间件单元检索媒体数据。
媒体数据可以包括场景描述。因此,检索单元52或客户端设备40的另一组件可以从媒体数据中提取场景描述(282)。根据本公开内容的技术,场景描述可以是包括对象碰撞数据的MPEG场景描述。检索单元52可以向呈现引擎114提供场景描述。呈现引擎114因此可以接收场景描述,并且进而根据场景描述来确定用于一个或多个3D固体虚拟对象的对象碰撞数据(284)。对象碰撞数据可以符合上面的表2。也就是说,对象碰撞数据可以包括表示例如以下各项的数据:表示定义网格(3D虚拟固体)对象的碰撞边界的边界形状阵列的边界;指示对象是否是静态(即,可移动)的数据;表示用于对象的碰撞材料的材料;和/或在碰撞的情况下要针对该对象呈现的动画。
呈现引擎114还可以根据相机控制数据来确定对象碰撞数据(286)。例如,呈现引擎114可以确定表示定义网格(3D虚拟固体)对象的碰撞边界的边界形状阵列的边界、指示该对象是否是静态(即,可移动)的数据、表示用于该对象的碰撞材料的材料、和/或在碰撞的情况下要针对该对象呈现的动画。呈现引擎114可以使用对象碰撞数据来确定在与3D固体虚拟对象的碰撞的情况下如何反应。
呈现引擎114然后可以接收相机移动数据(288)。例如,呈现引擎114可以从一个或多个控制器(诸如手持控制器和/或包括显示器的耳机)接收数据,其表示耳机的朝向以及耳机和/或虚拟相机的移动(诸如定向移动和/或旋转移动)。呈现引擎114可以确定相机移动数据请求相机穿过3D固体虚拟对象的移动(诸如进入由对象碰撞数据定义的3D固体虚拟对象)(290)。作为响应,呈现引擎114可以防止虚拟相机穿越3D固体虚拟对象(292)。例如,如果对象是静态的(如对象碰撞数据所指示的),则呈现引擎114可以防止虚拟相机移动进入和穿过对象。作为另一示例,如果对象不是静态的(例如,可移动的),则呈现引擎114可以根据对象碰撞数据来确定响应于与对象的碰撞的反应,诸如将在对象上播放的动画,例如,如果对象将翻倒或移动。
以这种方式,图8的方法表示一种检索媒体数据的方法的示例,该方法包括:由呈现引擎接收流式媒体数据,流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;由呈现引擎接收表示至少一个虚拟固体对象的边界的对象碰撞数据;由呈现引擎从用户接收相机移动数据,相机移动数据请求虚拟相机移动穿过至少一个虚拟固体对象;以及使用对象碰撞数据,由呈现引擎响应于相机移动数据来防止虚拟相机穿越至少一个虚拟固体对象。
在以下条款中概述了本公开内容的技术的某些示例:
条款1:一种检索媒体数据的方法,所述方法包括:由呈现引擎接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;由所述呈现引擎接收用于所述三维场景的相机控制数据,所述相机控制数据包括定义用于虚拟相机的可允许位置的数据;由所述呈现引擎从用户接收相机移动数据,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述相机控制数据,由所述呈现引擎更新所述虚拟相机的位置,以确保所述虚拟相机保持在所述可允许位置内。
条款2:根据条款1所述的方法,其中,更新所述虚拟相机的所述位置包括:防止所述虚拟相机穿越所述至少一个虚拟固体对象。
条款3:根据条款1所述的方法,其中,所述流式媒体数据包括glTF 2.0媒体数据。
条款4:根据条款1所述的方法,其中,接收所述流式媒体数据包括:经由应用编程接口(API)从检索单元请求所述流式媒体数据。
条款5:根据条款1所述的方法,其中,所述相机控制数据被包括在MPEG场景描述中。
条款6:根据条款1所述的方法,其中,所述相机控制数据包括定义两个或更多个锚点和所述锚点之间的一个或多个分段的数据,所述分段表示用于所述虚拟相机的可允许相机移动矢量,并且其中,更新所述虚拟相机的所述位置包括允许所述虚拟相机仅越过所述锚点之间的所述分段。
条款7:根据条款1所述的方法,其中,所述相机控制数据包括定义边界体积的数据,所述边界体积表示用于所述虚拟相机的可允许相机移动体积,并且其中,更新所述虚拟相机的所述位置包括允许所述虚拟相机仅越过所述可允许相机移动体积。
条款8:根据条款7所述的方法,其中,定义所述边界体积的所述数据包括定义圆锥体、平截头体或球体中的至少一者的数据。
条款9:根据条款1所述的方法,其中,所述相机控制数据被包括在MPEG_camera_control扩展中。
条款10:根据条款9所述的方法,其中,所述MPEG_camera_control扩展包括以下各项中的一项或多项:锚点数据,其表示用于所述虚拟相机的可允许路径的锚点数量;分段数据,其表示用于所述锚点之间的所述可允许路径的路径分段数量;边界体积数据,其表示用于所述虚拟相机的边界体积;固有参数,其指示相机参数是否在所述锚点中的每个锚点处被修改;以及存取器数据,其表示提供所述相机控制数据的存取器的索引。
条款11:根据条款1所述的方法,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
条款12:根据条款1所述的方法,还包括:根据所述相机控制数据来确定用于所述虚拟相机的可允许路径,其中,更新所述虚拟相机的所述位置包括确保所述虚拟相机仅沿着在所述相机控制数据中定义的所述可允许路径内的虚拟路径移动。
条款13:根据条款1所述的方法,其中,所述相机控制数据被包括在MPEG_mesh_collision扩展中。
条款14:一种用于检索媒体数据的设备,所述设备包括:存储器,其被配置为存储媒体数据;以及一个或多个处理器,其在电路中实现并且被配置为执行呈现引擎,所述呈现引擎被配置为:接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;接收用于所述三维场景的相机控制数据,所述相机控制数据包括定义用于虚拟相机的可允许位置的数据;从用户接收相机移动数据,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述相机控制数据,更新所述虚拟相机的位置,以确保所述虚拟相机保持在所述可允许位置内。
条款15:根据条款14所述的设备,其中,所述呈现引擎被配置为:防止所述虚拟相机穿越所述至少一个虚拟固体对象。
条款16:根据条款14所述的设备,其中,所述流式媒体数据包括glTF 2.0媒体数据。
条款17:根据条款14所述的设备,其中,所述呈现引擎被配置为:经由应用编程接口(API)从检索单元请求所述流式媒体数据。
条款18:根据条款14所述的设备,其中,所述相机控制数据被包括在MPEG场景描述中。
条款19:根据条款14所述的设备,其中,所述相机控制数据包括定义两个或更多个锚点和所述锚点之间的一个或多个分段的数据,所述分段表示用于所述虚拟相机的可允许相机移动矢量,并且其中,为了更新所述虚拟相机的所述位置,所述呈现引擎被配置为允许所述虚拟相机仅越过所述锚点之间的所述分段。
条款20:根据条款14所述的设备,其中,所述相机控制数据包括定义边界体积的数据,所述边界体积表示用于所述虚拟相机的可允许相机移动体积,并且其中,为了更新所述虚拟相机的所述位置,所述呈现引擎被配置为允许所述虚拟相机仅越过所述可允许相机移动体积。
条款21:根据条款20所述的设备,其中,定义所述边界体积的所述数据包括定义圆锥体、平截头体或球体中的至少一者的数据。
条款22:根据条款14所述的设备,其中,所述相机控制数据被包括在MPEG_camera_control扩展中。
条款23:根据条款22所述的设备,其中,所述MPEG_camera_control扩展包括以下各项中的一项或多项:锚点数据,其表示用于所述虚拟相机的可允许路径的锚点数量;分段数据,其表示用于所述锚点之间的所述可允许路径的路径分段数量;边界体积数据,其表示用于所述虚拟相机的边界体积;固有参数,其指示相机参数是否在所述锚点中的每个锚点处被修改;以及存取器数据,其表示提供所述相机控制数据的存取器的索引。
条款24:根据条款14所述的设备,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
条款25:根据条款14所述的设备,其中,所述呈现引擎还被配置为:根据所述相机控制数据来确定用于所述虚拟相机的可允许路径,其中,为了更新所述虚拟相机的所述位置,所述呈现引擎被配置为确保所述虚拟相机仅沿着在所述相机控制数据中定义的所述可允许路径内的虚拟路径移动。
条款26:根据条款14所述的设备,其中,所述相机控制数据被包括在MPEG_mesh_collision扩展中。
条款27:一种具有存储在其上的指令的计算机可读存储介质,所述指令在被执行时使得执行呈现引擎的处理器进行以下操作:接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;接收用于所述三维场景的相机控制数据,所述相机控制数据包括定义用于虚拟相机的可允许位置的数据;从用户接收相机移动数据,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述相机控制数据,更新所述虚拟相机的位置,以确保所述虚拟相机保持在所述可允许位置内。
条款28:根据条款27所述的计算机可读存储介质,其中,使得所述处理器更新所述虚拟相机的所述位置的所述指令包括:使得所述处理器防止所述虚拟相机穿越所述至少一个虚拟固体对象的指令。
条款29:根据条款27所述的计算机可读介质,其中,所述流式媒体数据包括glTF2.0媒体数据。
条款30:根据条款27所述的计算机可读介质,其中,使得所述处理器接收所述流式媒体数据的所述指令包括使得:所述处理器经由应用编程接口(API)从检索单元请求所述流式媒体数据的指令。
条款31:根据条款27所述的计算机可读介质,其中,所述相机控制数据被包括在MPEG场景描述中。
条款32:根据条款27所述的计算机可读介质,其中,所述相机控制数据包括定义两个或更多个锚点和所述锚点之间的一个或多个分段的数据,所述分段表示用于所述虚拟相机的可允许相机移动矢量,并且其中,使得所述处理器更新所述虚拟相机的所述位置的所述指令包括使得所述处理器允许所述虚拟相机仅越过所述锚点之间的所述分段的指令。
条款33:根据条款27所述的计算机可读介质,其中,所述相机控制数据包括定义边界体积的数据,所述边界体积表示用于所述虚拟相机的可允许相机移动体积,并且其中,使得所述处理器更新所述虚拟相机的所述位置的所述指令包括使得所述处理器允许所述虚拟相机仅越过所述可允许相机移动体积的指令。
条款34:根据条款20所述的计算机可读介质,其中,定义所述边界体积的所述数据包括定义圆锥体、平截头体或球体中的至少一者的数据。
条款35:根据条款27所述的计算机可读介质,其中,所述相机控制数据被包括在MPEG_camera_control扩展中。
条款36:根据条款22所述的计算机可读介质,其中,所述MPEG_camera_control扩展包括以下各项中的一项或多项:锚点数据,其表示用于所述虚拟相机的可允许路径的锚点数量;分段数据,其表示用于所述锚点之间的所述可允许路径的路径分段数量;边界体积数据,其表示用于所述虚拟相机的边界体积;固有参数,其指示相机参数是否在所述锚点中的每个锚点处被修改;以及存取器数据,其表示提供所述相机控制数据的存取器的索引。
条款37:根据条款27所述的计算机可读介质,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
条款38:根据条款27所述的计算机可读介质,还包括:使得所述处理器根据所述相机控制数据来确定用于所述虚拟相机的可允许路径的指令,其中,使得所述处理器更新所述虚拟相机的所述位置的所述指令包括使得所述处理器确保所述虚拟相机仅沿着在所述相机控制数据中定义的所述可允许路径内的虚拟路径移动的指令。
条款39:根据条款27所述的计算机可读介质,其中,所述相机控制数据被包括在MPEG_mesh_collision扩展中。
条款40:一种用于检索媒体数据的设备,所述设备包括:用于接收流式媒体数据的单元,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;用于接收用于所述三维场景的相机控制数据的单元,所述相机控制数据包括定义用于虚拟相机的可允许位置的数据;用于从用户接收相机移动数据的单元,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及用于使用所述相机控制数据来更新所述虚拟相机的位置以确保所述虚拟相机保持在所述可允许位置内的单元。
条款41:一种检索媒体数据的方法,所述方法包括:由呈现引擎接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;由所述呈现引擎接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据;由所述呈现引擎从用户接收相机移动数据,所述相机移动数据请求虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述对象碰撞数据,由所述呈现引擎更新所述虚拟相机的位置,以确保所述虚拟相机响应于所述相机移动数据而保持在所述至少一个虚拟固体对象之外。
条款42:根据条款41所述的方法,其中,更新所述虚拟相机的所述位置包括:防止所述虚拟相机穿越所述至少一个虚拟固体对象。
条款43:根据条款41所述的方法,其中,接收所述对象碰撞数据包括:接收MPEG_mesh_collision扩展。
条款44:根据条款43所述的方法,其中,所述MPEG_mesh_collision扩展包括定义用于所述至少一个虚拟固体对象的至少一个3D网格的数据。
条款45:根据条款44所述的方法,其中,所述MPEG_mesh_collision扩展包括定义以下各项中的至少一项的数据:用于所述至少一个虚拟固体对象的3D网格的边界、用于所述3D网格的材料、或将响应于所述虚拟相机接触所述3D网格而呈现的动画。
条款46:根据条款41所述的方法,其中,接收所述对象碰撞数据包括接收包括以下各项中的一项或多项的数据:边界数据,其表示所述至少一个虚拟固体对象的一个或多个碰撞边界;静态数据,其表示所述至少一个虚拟固体对象是否受到碰撞影响;材料数据,其表示碰撞对象如何与所述至少一个虚拟固体对象交互;或者动画数据,其表示由与所述至少一个虚拟固体对象的碰撞触发的动画。
条款47:根据条款41所述的方法,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
条款48:根据条款41所述的方法,其中,所述流式媒体数据包括glTF 2.0媒体数据。
条款49:根据条款41所述的方法,其中,接收所述流式媒体数据包括:经由应用程序编程接口(API)从检索单元请求所述流式媒体数据。
条款50:根据条款41所述的方法,其中,所述对象碰撞数据被包括在MPEG场景描述中。
条款51:一种用于检索媒体数据的设备,所述设备包括:存储器,用于存储媒体数据;以及一个或多个处理器,其在电路中实现并且被配置为执行呈现引擎,所述呈现引擎被配置为:接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据;从用户接收相机移动数据,所述相机移动数据请求虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述对象碰撞数据,更新所述虚拟相机的位置,以确保所述虚拟相机响应于所述相机移动数据而保持在所述至少一个虚拟固体对象之外。
条款52:根据条款51所述的设备,其中,为了更新所述虚拟相机的所述位置,所述呈现引擎被配置为:防止所述虚拟相机穿越所述至少一个虚拟固体对象。
条款53:根据条款51所述的设备,其中,为了接收接收所述对象碰撞数据,所述呈现引擎被配置为:接收MPEG_mesh_collision扩展。
条款54:根据条款53所述的设备,其中,所述MPEG_mesh_collision扩展包括定义用于所述至少一个虚拟固体对象的至少一个3D网格的数据。
条款55:根据条款54所述的设备,其中,所述MPEG_mesh_collision扩展包括定义以下各项中的至少一项的数据:用于所述至少一个虚拟固体对象的3D网格的边界、用于所述3D网格的材料、或将响应于所述虚拟相机接触所述3D网格而呈现的动画。
条款56:根据条款51所述的设备,其中,为了接收所述对象碰撞数据,所述呈现引擎被配置为接收包括以下各项中的一项或多项的数据:边界数据,其表示所述至少一个虚拟固体对象的一个或多个碰撞边界;静态数据,其表示所述至少一个虚拟固体对象是否受到碰撞影响;材料数据,其表示碰撞对象如何与所述至少一个虚拟固体对象交互;或者动画数据,其表示由与所述至少一个虚拟固体对象的碰撞触发的动画。
条款57:根据条款51所述的设备,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
条款58:根据条款51所述的设备,其中,所述流式媒体数据包括glTF 2.0媒体数据。
条款59:根据条款51所述的设备,其中,为了接收所述流式媒体数据,所述呈现引擎被配置为:经由应用程序编程接口(API)从检索单元请求所述流式媒体数据。
条款60:根据条款51所述的设备,其中,所述对象碰撞数据被包括在MPEG场景描述中。
条款61:一种具有存储在其上的指令的计算机可读存储介质,所述指令在被执行时使得处理器进行以下操作:接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据;从用户接收相机移动数据,所述相机移动数据请求虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述对象碰撞数据,更新所述虚拟相机的位置,以确保所述虚拟相机响应于所述相机移动数据而保持在所述至少一个虚拟固体对象之外。
条款62:根据条款61所述的计算机可读介质,其中,使得所述处理器更新所述虚拟相机的所述位置的所述指令包括:使得所述处理器防止所述虚拟相机穿越所述至少一个虚拟固体对象的指令。
条款63:根据条款61所述的计算机可读介质,其中,使得所述处理器接收所述对象碰撞数据的所述指令包括:使得所述处理器接收MPEG_mesh_collision扩展的指令。
条款64:根据条款62所述的计算机可读介质,其中,所述MPEG_mesh_collision扩展包括定义用于所述至少一个虚拟固体对象的至少一个3D网格的数据。
条款65:根据条款63所述的计算机可读介质,其中,所述MPEG_mesh_collision扩展包括定义以下各项中的至少一项的数据:用于所述至少一个虚拟固体对象的3D网格的边界、用于所述3D网格的材料、或将响应于所述虚拟相机接触所述3D网格而呈现的动画。
条款66:根据条款61所述的计算机可读介质,其中,使得所述处理器接收所述对象碰撞数据的所述指令包括使得所述处理器接收包括以下各项中的一项或多项的数据的指令:边界数据,其表示所述至少一个虚拟固体对象的一个或多个碰撞边界;静态数据,其表示所述至少一个虚拟固体对象是否受到碰撞影响;材料数据,其表示碰撞对象如何与所述至少一个虚拟固体对象交互;或者动画数据,其表示由与所述至少一个虚拟固体对象的碰撞触发的动画。
条款67:根据条款61所述的计算机可读介质,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
条款68:根据条款61所述的计算机可读介质,其中,所述流式媒体数据包括glTF2.0媒体数据。
条款69:根据条款61所述的计算机可读介质,其中,使得所述处理器接收所述流式媒体数据的所述指令包括:使得所述处理器经由应用程序编程接口(API)从检索单元请求所述流式媒体数据的指令。
条款70:根据条款61所述的计算机可读介质,其中,所述对象碰撞数据被包括在MPEG场景描述中。
条款71:一种用于检索媒体数据的设备,所述设备包括:用于接收流式媒体数据的单元,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;用于接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据的单元;用于从用户接收相机移动数据的单元,所述相机移动数据请求虚拟相机移动穿过所述至少一个虚拟固体对象;以及用于更新所述虚拟相机的位置,以确保所述虚拟相机响应于所述相机移动数据而保持在所述至少一个虚拟固体对象之外的单元。
条款72:一种检索媒体数据的方法,所述方法包括:由呈现引擎接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;由所述呈现引擎接收用于所述三维场景的相机控制数据,所述相机控制数据包括定义用于虚拟相机的可允许位置的数据;由所述呈现引擎从用户接收相机移动数据,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述相机控制数据,由所述呈现引擎更新所述虚拟相机的位置,以确保所述虚拟相机保持在所述可允许位置内。
条款73:根据条款72所述的方法,其中,更新所述虚拟相机的所述位置包括:防止所述虚拟相机穿越所述至少一个虚拟固体对象。
条款74:根据条款72和73中任一项所述的方法,其中,所述流式媒体数据包括glTF2.0媒体数据。
条款75:根据条款72-74中任一项所述的方法,其中,接收所述流式媒体数据包括:经由应用编程接口(API)从检索单元请求所述流式媒体数据。
条款76:根据条款72-75中任一项所述的方法,其中,所述相机控制数据被包括在MPEG场景描述中。
条款77:根据条款72-76中任一项所述的方法,其中,所述相机控制数据包括定义两个或更多个锚点和所述锚点之间的一个或多个分段的数据,所述分段表示用于所述虚拟相机的可允许相机移动矢量,并且其中,更新所述虚拟相机的所述位置包括允许所述虚拟相机仅越过所述锚点之间的所述分段。
条款78:根据条款72-77中任一项所述的方法,其中,所述相机控制数据包括定义边界体积的数据,所述边界体积表示用于所述虚拟相机的可允许相机移动体积,并且其中,更新所述虚拟相机的所述位置包括允许所述虚拟相机仅越过所述可允许相机移动体积。
条款79:根据条款78所述的方法,其中,定义所述边界体积的所述数据包括定义圆锥体、平截头体或球体中的至少一者的数据。
条款80:根据条款72-79中任一项所述的方法,其中,所述相机控制数据被包括在MPEG_camera_control扩展中。
条款81:根据条款80所述的方法,其中,所述MPEG_camera_control扩展包括以下各项中的一项或多项:锚点数据,其表示用于所述虚拟相机的可允许路径的锚点数量;分段数据,其表示用于所述锚点之间的所述可允许路径的路径分段数量;边界体积数据,其表示用于所述虚拟相机的边界体积;固有参数,其指示相机参数是否在所述锚点中的每个锚点处被修改;以及存取器数据,其表示提供所述相机控制数据的存取器的索引。
条款82:根据条款72-81中任一项所述的方法,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
条款83:根据条款72所述的方法,还包括:根据所述相机控制数据来确定用于所述虚拟相机的可允许路径,其中,更新所述虚拟相机的所述位置包括确保所述虚拟相机仅沿着在所述相机控制数据中定义的所述可允许路径内的虚拟路径移动。
条款84:根据条款72-83中任一项所述的方法,其中,所述相机控制数据被包括在MPEG_mesh_collision扩展中。
条款85:一种用于检索媒体数据的设备,所述设备包括:存储器,其被配置为存储媒体数据;以及一个或多个处理器,其在电路中实现并且被配置为执行呈现引擎,所述呈现引擎被配置为:接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;接收用于所述三维场景的相机控制数据,所述相机控制数据包括定义用于虚拟相机的可允许位置的数据;从用户接收相机移动数据,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述相机控制数据,更新所述虚拟相机的位置,以确保所述虚拟相机保持在所述可允许位置内。
条款86:根据条款85所述的设备,其中,所述呈现引擎被配置为:防止所述虚拟相机穿越所述至少一个虚拟固体对象。
条款87:根据条款85和86中任一项所述的设备,其中,所述流式媒体数据包括glTF2.0媒体数据。
条款88:根据条款85-87中任一项所述的设备,其中,所述呈现引擎被配置为:经由应用编程接口(API)从检索单元请求所述流式媒体数据。
条款89:根据条款85-88中任一项所述的设备,其中,所述相机控制数据被包括在MPEG场景描述中。
条款90:根据条款85-89中任一项所述的设备,其中,所述相机控制数据包括定义两个或更多个锚点和所述锚点之间的一个或多个分段的数据,所述分段表示用于所述虚拟相机的可允许相机移动矢量,并且其中,为了更新所述虚拟相机的所述位置,所述呈现引擎被配置为允许所述虚拟相机仅越过所述锚点之间的所述分段。
条款91:根据条款85-90中任一项所述的设备,其中,所述相机控制数据包括定义边界体积的数据,所述边界体积表示用于所述虚拟相机的可允许相机移动体积,并且其中,为了更新所述虚拟相机的所述位置,所述呈现引擎被配置为允许所述虚拟相机仅越过所述可允许相机移动体积。
条款92:根据条款91所述的设备,其中,定义所述边界体积的所述数据包括定义圆锥体、平截头体或球体中的至少一者的数据。
条款93:根据条款85-92中任一项所述的设备,其中,所述相机控制数据被包括在MPEG_camera_control扩展中。
条款94:根据条款93所述的设备,其中,所述MPEG_camera_control扩展包括以下各项中的一项或多项:锚点数据,其表示用于所述虚拟相机的可允许路径的锚点数量;分段数据,其表示用于所述锚点之间的所述可允许路径的路径分段数量;边界体积数据,其表示用于所述虚拟相机的边界体积;固有参数,其指示相机参数是否在所述锚点中的每个锚点处被修改;以及存取器数据,其表示提供所述相机控制数据的存取器的索引。
条款95:根据条款85-94中任一项所述的设备,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
条款96:根据条款85-95中任一项所述的设备,其中,所述呈现引擎还被配置为:根据所述相机控制数据来确定用于所述虚拟相机的可允许路径,其中,为了更新所述虚拟相机的所述位置,所述呈现引擎被配置为确保所述虚拟相机仅沿着在所述相机控制数据中定义的所述可允许路径内的虚拟路径移动。
条款97:根据条款85-96中任一项所述的设备,其中,所述相机控制数据被包括在MPEG_mesh_collision扩展中。
条款98:一种具有存储在其上的指令的计算机可读存储介质,所述指令在被执行时使得执行呈现引擎的处理器进行以下操作:接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;接收用于所述三维场景的相机控制数据,所述相机控制数据包括定义用于虚拟相机的可允许位置的数据;从用户接收相机移动数据,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述相机控制数据,更新所述虚拟相机的位置,以确保所述虚拟相机保持在所述可允许位置内。
条款99:根据条款98所述的计算机可读存储介质,其中,使得所述处理器更新所述虚拟相机的所述位置的所述指令包括:使得所述处理器防止所述虚拟相机穿越所述至少一个虚拟固体对象的指令。
条款100:根据条款98和99中任一项所述的计算机可读介质,其中,所述流式媒体数据包括glTF 2.0媒体数据。
条款101:根据条款98-100中任一项所述的计算机可读介质,其中,使得所述处理器接收所述流式媒体数据的所述指令包括使得:所述处理器经由应用编程接口(API)从检索单元请求所述流式媒体数据的指令。
条款102:根据条款98-101中任一项所述的计算机可读介质,其中,所述相机控制数据被包括在MPEG场景描述中。
条款103:根据条款98-102中任一项所述的计算机可读介质,其中,所述相机控制数据包括定义两个或更多个锚点和所述锚点之间的一个或多个分段的数据,所述分段表示用于所述虚拟相机的可允许相机移动矢量,并且其中,使得所述处理器更新所述虚拟相机的所述位置的所述指令包括使得所述处理器允许所述虚拟相机仅越过所述锚点之间的所述分段的指令。
条款104:根据条款103所述的计算机可读介质,其中,所述相机控制数据包括定义边界体积的数据,所述边界体积表示用于所述虚拟相机的可允许相机移动体积,并且其中,使得所述处理器更新所述虚拟相机的所述位置的所述指令包括使得所述处理器允许所述虚拟相机仅越过所述可允许相机移动体积的指令。
条款105:根据条款98-104中任一项所述的计算机可读介质,其中,定义所述边界体积的所述数据包括定义圆锥体、平截头体或球体中的至少一者的数据。
条款106:根据条款105所述的计算机可读介质,其中,所述相机控制数据被包括在MPEG_camera_control扩展中。
条款107:根据条款98-106中任一项所述的计算机可读介质,其中,所述MPEG_camera_control扩展包括以下各项中的一项或多项:锚点数据,其表示用于所述虚拟相机的可允许路径的锚点数量;分段数据,其表示用于所述锚点之间的所述可允许路径的路径分段数量;边界体积数据,其表示用于所述虚拟相机的边界体积;固有参数,其指示相机参数是否在所述锚点中的每个锚点处被修改;以及存取器数据,其表示提供所述相机控制数据的存取器的索引。
条款108:根据条款98-107中任一项所述的计算机可读介质,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
条款109:根据条款98-108中任一项所述的计算机可读介质,还包括:使得所述处理器根据所述相机控制数据来确定用于所述虚拟相机的可允许路径的指令,其中,使得所述处理器更新所述虚拟相机的所述位置的所述指令包括使得所述处理器确保所述虚拟相机仅沿着在所述相机控制数据中定义的所述可允许路径内的虚拟路径移动的指令。
条款110:根据条款98-109中任一项所述的计算机可读介质,其中,所述相机控制数据被包括在MPEG_mesh_collision扩展中。
条款111:一种用于检索媒体数据的设备,所述设备包括:用于接收流式媒体数据的单元,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;用于接收用于所述三维场景的相机控制数据的单元,所述相机控制数据包括定义用于虚拟相机的可允许位置的数据;用于从用户接收相机移动数据的单元,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及用于使用所述相机控制数据来更新所述虚拟相机的位置以确保所述虚拟相机保持在所述可允许位置内的单元。
条款112:一种检索媒体数据的方法,所述方法包括:由呈现引擎接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;由所述呈现引擎接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据;由所述呈现引擎从用户接收相机移动数据,所述相机移动数据请求虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述对象碰撞数据,由所述呈现引擎更新所述虚拟相机的位置,以确保所述虚拟相机响应于所述相机移动数据而保持在所述至少一个虚拟固体对象之外。
条款113:一种方法,包括根据条款72-84中任一项所述的方法和根据条款112所述的方法的组合。
条款114:根据条款112和113中任一项所述的方法,其中,更新所述虚拟相机的所述位置包括:防止所述虚拟相机穿越所述至少一个虚拟固体对象。
条款115:根据条款112-114中任一项所述的方法,其中,接收所述对象碰撞数据包括:接收MPEG_mesh_collision扩展。
条款116:根据条款115所述的方法,其中,所述MPEG_mesh_collision扩展包括定义用于所述至少一个虚拟固体对象的至少一个3D网格的数据。
条款117:根据条款116所述的方法,其中,所述MPEG_mesh_collision扩展包括定义以下各项中的至少一项的数据:用于所述至少一个虚拟固体对象的3D网格的边界、用于所述3D网格的材料、或将响应于所述虚拟相机接触所述3D网格而呈现的动画。
条款118:根据条款112-117中任一项所述的方法,其中,接收所述对象碰撞数据包括接收包括以下各项中的一项或多项的数据:边界数据,其表示所述至少一个虚拟固体对象的一个或多个碰撞边界;静态数据,其表示所述至少一个虚拟固体对象是否受到碰撞影响;材料数据,其表示碰撞对象如何与所述至少一个虚拟固体对象交互;或者动画数据,其表示由与所述至少一个虚拟固体对象的碰撞触发的动画。
条款119:根据条款112-118中任一项所述的方法,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
条款120:根据条款112-119中任一项所述的方法,其中,所述流式媒体数据包括glTF 2.0媒体数据。
条款121:根据条款112-120中任一项所述的方法,其中,接收所述流式媒体数据包括:经由应用程序编程接口(API)从检索单元请求所述流式媒体数据。
条款122:根据条款112-121中任一项所述的方法,其中,所述对象碰撞数据被包括在MPEG场景描述中。
条款123:一种用于检索媒体数据的设备,所述设备包括:存储器,用于存储媒体数据;以及一个或多个处理器,其在电路中实现并且被配置为执行呈现引擎,所述呈现引擎被配置为:接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据;从用户接收相机移动数据,所述相机移动数据请求虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述对象碰撞数据,更新所述虚拟相机的位置,以确保所述虚拟相机响应于所述相机移动数据而保持在所述至少一个虚拟固体对象之外。
条款124:一种设备,包括根据条款85-97中任一项所述的设备和根据条款123所述的设备的组合。
条款125:根据条款123和124中任一项所述的设备,其中,为了更新所述虚拟相机的所述位置,所述呈现引擎被配置为:防止所述虚拟相机穿越所述至少一个虚拟固体对象。
条款126:根据条款123-125中任一项所述的设备,其中,为了接收接收所述对象碰撞数据,所述呈现引擎被配置为:接收MPEG_mesh_collision扩展。
条款127:根据条款126所述的设备,其中,所述MPEG_mesh_collision扩展包括定义用于所述至少一个虚拟固体对象的至少一个3D网格的数据。
条款128:根据条款127所述的设备,其中,所述MPEG_mesh_collision扩展包括定义以下各项中的至少一项的数据:用于所述至少一个虚拟固体对象的3D网格的边界、用于所述3D网格的材料、或将响应于所述虚拟相机接触所述3D网格而呈现的动画。
条款129:根据条款123-128中任一项所述的设备,其中,为了接收所述对象碰撞数据,所述呈现引擎被配置为接收包括以下各项中的一项或多项的数据:边界数据,其表示所述至少一个虚拟固体对象的一个或多个碰撞边界;静态数据,其表示所述至少一个虚拟固体对象是否受到碰撞影响;材料数据,其表示碰撞对象如何与所述至少一个虚拟固体对象交互;或者动画数据,其表示由与所述至少一个虚拟固体对象的碰撞触发的动画。
条款130:根据条款123-129中任一项所述的设备,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
条款131:根据条款123-130中任一项所述的设备,其中,所述流式媒体数据包括glTF 2.0媒体数据。
条款132:根据条款123-131中任一项所述的设备,其中,为了接收所述流式媒体数据,所述呈现引擎被配置为:经由应用程序编程接口(API)从检索单元请求所述流式媒体数据。
条款133:根据条款123-132中任一项所述的设备,其中,所述对象碰撞数据被包括在MPEG场景描述中。
条款134:一种具有存储在其上的指令的计算机可读存储介质,所述指令在被执行时使得处理器进行以下操作:接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据;从用户接收相机移动数据,所述相机移动数据请求虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述对象碰撞数据,更新所述虚拟相机的位置,以确保所述虚拟相机响应于所述相机移动数据而保持在所述至少一个虚拟固体对象之外。
条款135:一种计算机可读存储介质,其包括根据条款98-110中任一项所述的计算机可读存储介质和根据条款134所述的计算机可读存储介质的组合。
条款136:根据条款134和135中任一项所述的计算机可读介质,其中,使得所述处理器更新所述虚拟相机的所述位置的所述指令包括:使得所述处理器防止所述虚拟相机穿越所述至少一个虚拟固体对象的指令。
条款137:根据条款134-136中任一项所述的计算机可读介质,其中,使得所述处理器接收所述对象碰撞数据的所述指令包括:使得所述处理器接收MPEG_mesh_collision扩展的指令。
条款138:根据条款134-137中任一项所述的计算机可读介质,其中,所述MPEG_mesh_collision扩展包括定义用于所述至少一个虚拟固体对象的至少一个3D网格的数据。
条款139:根据条款134-138中任一项所述的计算机可读介质,其中,所述MPEG_mesh_collision扩展包括定义以下各项中的至少一项的数据:用于所述至少一个虚拟固体对象的3D网格的边界、用于所述3D网格的材料、或将响应于所述虚拟相机接触所述3D网格而呈现的动画。
条款140:根据条款134-139中任一项所述的计算机可读介质,其中,使得所述处理器接收所述对象碰撞数据的所述指令包括使得所述处理器接收包括以下各项中的一项或多项的数据的指令:边界数据,其表示所述至少一个虚拟固体对象的一个或多个碰撞边界;静态数据,其表示所述至少一个虚拟固体对象是否受到碰撞影响;材料数据,其表示碰撞对象如何与所述至少一个虚拟固体对象交互;或者动画数据,其表示由与所述至少一个虚拟固体对象的碰撞触发的动画。
条款141:根据条款134-140中任一项所述的计算机可读介质,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
条款142:根据条款134-141中任一项所述的计算机可读介质,其中,所述流式媒体数据包括glTF 2.0媒体数据。
条款143:根据条款134-142中任一项所述的计算机可读介质,其中,使得所述处理器接收所述流式媒体数据的所述指令包括:使得所述处理器经由应用程序编程接口(API)从检索单元请求所述流式媒体数据的指令。
条款144:根据条款134-143中任一项所述的计算机可读介质,其中,所述对象碰撞数据被包括在MPEG场景描述中。
条款145:一种检索媒体数据的方法,所述方法包括:由呈现引擎接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;由所述呈现引擎接收用于所述三维场景的相机控制数据,所述相机控制数据包括定义限制以防止虚拟相机穿越所述至少一个虚拟固体对象的数据;由所述呈现引擎从用户接收相机移动数据,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及使用所述相机控制数据,防止所述虚拟相机响应于所述相机移动数据而穿越所述至少一个虚拟固体对象。
条款146:根据条款145所述的方法,其中,所述流式媒体数据包括glTF 2.0媒体数据。
条款147:根据条款145和146中任一项所述的方法,其中,接收所述流式媒体数据包括:经由应用编程接口(API)从检索单元请求所述流式媒体数据。
条款148:根据条款145-147中任一项所述的方法,其中,所述相机控制数据被包括在MPEG场景描述中。
条款149:根据条款145-148中任一项所述的方法,其中,所述相机控制数据被包括在MPEG_camera_control扩展中。
条款150:根据条款149所述的方法,其中,所述MPEG_camera_control扩展包括定义两个或更多个锚点和所述锚点之间的一个或多个分段的数据,所述分段表示可允许相机移动矢量。
条款151:根据条款145-148中任一项所述的方法,其中,所述MPEG_camera_control扩展包括定义表示可允许相机移动体积的边界体积的数据。
条款152:根据条款151所述的方法,其中,定义所述边界体积的所述数据包括定义圆锥体、平截头体或球体中的至少一者的数据。
条款153:根据条款149-152中任一项所述的方法,其中,所述MPEG_camera_control扩展符合以上表1的数据。
条款154:根据条款149-153中任一项所述的方法,其中,所述至少一个虚拟固体对象包括虚拟墙。
条款155:根据条款149-154中任一项所述的方法,其中,防止所述虚拟相机穿越所述至少一个虚拟固体对象包括:防止所述虚拟相机沿着超出在所述MPEG_camera_control扩展中定义的可允许路径的虚拟路径移动。
条款156:根据条款145-155中任一项所述的方法,其中,所述相机控制数据被包括在MPEG_mesh_collision扩展中。
条款157:根据条款145-155中任一项所述的方法,其中,所述MPEG_mesh_collision扩展包括定义用于所述至少一个虚拟固体对象的至少一个3D网格的数据。
条款158:根据条款157所述的方法,其中,所述MPEG_mesh_collision扩展包括定义以下各项中的至少一项的数据:所述3D网格的边界、用于所述3D网格的材料、或将响应于所述虚拟相机接触所述3D网格而呈现的动画。
条款159:根据条款156-158中任一项所述的方法,其中,所述MPEG_mesh_collision扩展符合以上表2。
条款160:根据条款156-159中任一项所述的方法,其中,防止所述虚拟相机穿越所述至少一个虚拟固体对象包括:使用所述MPEG_mesh_collision扩展来防止所述虚拟相机进入所述至少一个虚拟固体对象。
条款161:一种用于检索媒体数据的设备,所述设备包括用于执行根据条款145-160中任一项所述的方法的一个或多个单元。
条款162:根据条款161所述的设备,其中,所述一个或多个单元包括在电路中实现的一个或多个处理器。
条款163:根据条款161所述的设备,其中,所述装置包括以下各项中的至少一项:集成电路;微处理器;以及无线通信设备。
条款164:一种用于检索媒体数据的设备,所述设备包括:用于接收流式媒体数据的单元,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;用于接收用于所述三维场景的相机控制数据的单元,所述相机控制数据包括定义限制以防止虚拟相机穿越所述至少一个虚拟固体对象的数据;用于从用户接收相机移动数据的单元,所述相机移动数据请求所述虚拟相机移动穿过所述至少一个虚拟固体对象;以及用于使用所述相机控制数据来防止所述虚拟相机响应于所述相机移动数据而穿越所述至少一个虚拟固体对象的单元。
在一个或多个示例中,所描述的功能可以用硬件、软件、固件或其任何组合来实现。如果用软件来实现,则所述功能可以作为一个或多个指令或代码存储在计算机可读介质上或者通过其进行传输并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质,或者包括例如根据通信协议来促进计算机程序从一个地方传送到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质、或者(2)诸如信号或载波之类的通信介质。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器访问以检索用于实现在本公开内容中描述的技术的指令、代码和/或数据结构的任何可用的介质。计算机程序产品可以包括计算机可读介质。
通过举例而非限制性的方式,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或者能够用于以指令或数据结构形式存储期望的程序代码以及能够由计算机访问的任何其它介质。此外,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者无线技术(诸如红外线、无线电和微波)从网站、服务器或其它远程源传输指令,则同轴电缆、光纤光缆、双绞线、DSL或者无线技术(诸如红外线、无线电和微波)被包括在介质的定义中。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性介质,而是替代地针对非暂时性的有形存储介质。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则利用激光来光学地复制数据。上述各项的组合也应当被包括在计算机可读介质的范围之内。
指令可以由一个或多个处理器来执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、或其它等效的集成或分立逻辑电路。因此,如本文所使用的术语“处理器”可以指代前述结构中的任何一者或者适于实现本文描述的技术的任何其它结构。另外,在一些方面中,本文描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或者被并入经组合的编解码器中。此外,所述技术可以完全在一个或多个电路或逻辑元件中实现。
本公开内容的技术可以在多种多样的设备或装置中实现,包括无线手机、集成电路(IC)或一组IC(例如,芯片组)。在本公开内容中描述了各种组件、模块或单元以强调被配置以执行所公开的技术的设备的功能性方面,但是不一定需要通过不同的硬件单元来实现。确切而言,如上所述,各种单元可以被组合在编解码器硬件单元中,或者由互操作的硬件单元的集合(包括如上所述的一个或多个处理器)结合适当的软件和/或固件来提供。
已经描述了各个示例。这些和其它示例在随后的权利要求的范围内。

Claims (31)

1.一种检索媒体数据的方法,所述方法包括:
由呈现引擎接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;
由所述呈现引擎接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据;
由所述呈现引擎从用户接收相机移动数据,所述相机移动数据请求虚拟相机移动穿过所述至少一个虚拟固体对象;以及
使用所述对象碰撞数据,由所述呈现引擎更新所述虚拟相机的位置,以确保所述虚拟相机响应于所述相机移动数据而保持在所述至少一个虚拟固体对象之外。
2.根据权利要求1所述的方法,其中,更新所述虚拟相机的所述位置包括:防止所述虚拟相机穿越所述至少一个虚拟固体对象。
3.根据权利要求1所述的方法,其中,接收所述对象碰撞数据包括:接收MPEG_mesh_collision扩展。
4.根据权利要求3所述的方法,其中,所述MPEG_mesh_collision扩展包括定义用于所述至少一个虚拟固体对象的至少一个3D网格的数据。
5.根据权利要求4所述的方法,其中,所述MPEG_mesh_collision扩展包括定义以下各项中的至少一项的数据:用于所述至少一个虚拟固体对象的3D网格的边界、用于所述3D网格的材料、或将响应于所述虚拟相机接触所述3D网格而呈现的动画。
6.根据权利要求1所述的方法,其中,接收所述对象碰撞数据包括接收包括以下各项中的一项或多项的数据:
边界数据,其表示所述至少一个虚拟固体对象的一个或多个碰撞边界;
静态数据,其表示所述至少一个虚拟固体对象是否受到碰撞影响;
材料数据,其表示碰撞对象如何与所述至少一个虚拟固体对象交互;或者
动画数据,其表示由与所述至少一个虚拟固体对象的碰撞触发的动画。
7.根据权利要求1所述的方法,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
8.根据权利要求1所述的方法,其中,所述流式媒体数据包括glTF 2.0媒体数据。
9.根据权利要求1所述的方法,其中,接收所述流式媒体数据包括:经由应用程序编程接口(API)从检索单元请求所述流式媒体数据。
10.根据权利要求1所述的方法,其中,所述对象碰撞数据被包括在MPEG场景描述中。
11.一种用于检索媒体数据的设备,所述设备包括:
存储器,用于存储媒体数据;以及
一个或多个处理器,其在电路中实现并且被配置为执行呈现引擎,所述呈现引擎被配置为:
接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;
接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据;
从用户接收相机移动数据,所述相机移动数据请求虚拟相机移动穿过所述至少一个虚拟固体对象;以及
使用所述对象碰撞数据,更新所述虚拟相机的位置,以确保所述虚拟相机响应于所述相机移动数据而保持在所述至少一个虚拟固体对象之外。
12.根据权利要求11所述的设备,其中,为了更新所述虚拟相机的所述位置,所述呈现引擎被配置为防止所述虚拟相机穿越所述至少一个虚拟固体对象。
13.根据权利要求11所述的设备,其中,为了接收所述对象碰撞数据,所述呈现引擎被配置为接收MPEG_mesh_collision扩展。
14.根据权利要求13所述的设备,其中,所述MPEG_mesh_collision扩展包括定义用于所述至少一个虚拟固体对象的至少一个3D网格的数据。
15.根据权利要求14所述的设备,其中,所述MPEG_mesh_collision扩展包括定义以下各项中的至少一项的数据:用于所述至少一个虚拟固体对象的3D网格的边界、用于所述3D网格的材料、或将响应于所述虚拟相机接触所述3D网格而呈现的动画。
16.根据权利要求11所述的设备,其中,为了接收所述对象碰撞数据,所述呈现引擎被配置为接收包括以下各项中的一项或多项的数据:
边界数据,其表示所述至少一个虚拟固体对象的一个或多个碰撞边界;
静态数据,其表示所述至少一个虚拟固体对象是否受到碰撞影响;
材料数据,其表示碰撞对象如何与所述至少一个虚拟固体对象交互;或者
动画数据,其表示由与所述至少一个虚拟固体对象的碰撞触发的动画。
17.根据权利要求11所述的装置,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
18.根据权利要求11所述的设备,其中,所述流式媒体数据包括glTF 2.0媒体数据。
19.根据权利要求11所述的设备,其中,为了接收所述流式媒体数据,所述呈现引擎被配置为经由应用程序编程接口(API)从检索单元请求所述流式媒体数据。
20.根据权利要求11所述的设备,其中,所述对象碰撞数据被包括在MPEG场景描述中。
21.一种具有存储在其上的指令的计算机可读存储介质,所述指令在被执行时使得处理器进行以下操作:
接收流式媒体数据,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;
接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据;
从用户接收相机移动数据,所述相机移动数据请求虚拟相机移动穿过所述至少一个虚拟固体对象;以及
使用所述对象碰撞数据,更新所述虚拟相机的位置,以确保所述虚拟相机响应于所述相机移动数据而保持在所述至少一个虚拟固体对象之外。
22.根据权利要求21所述的计算机可读介质,其中,使得所述处理器更新所述虚拟相机的所述位置的所述指令包括:使得所述处理器防止所述虚拟相机穿越所述至少一个虚拟固体对象的指令。
23.根据权利要求21所述的计算机可读介质,其中,使得所述处理器接收所述对象碰撞数据的所述指令包括:使得所述处理器接收MPEG_mesh_collision扩展的指令。
24.根据权利要求22所述的计算机可读介质,其中,所述MPEG_mesh_collision扩展包括定义用于所述至少一个虚拟固体对象的至少一个3D网格的数据。
25.根据权利要求23所述的计算机可读介质,其中,所述MPEG_mesh_collision扩展包括定义以下各项中的至少一项的数据:用于所述至少一个虚拟固体对象的3D网格的边界、用于所述3D网格的材料、或将响应于所述虚拟相机接触所述3D网格而呈现的动画。
26.根据权利要求21所述的计算机可读介质,其中,使得所述处理器接收所述对象碰撞数据的所述指令包括使得所述处理器接收包括以下各项中的一项或多项的数据的指令:
边界数据,其表示所述至少一个虚拟固体对象的一个或多个碰撞边界;
静态数据,其表示所述至少一个虚拟固体对象是否受到碰撞影响;
材料数据,其表示碰撞对象如何与所述至少一个虚拟固体对象交互;或者
动画数据,其表示由与所述至少一个虚拟固体对象的碰撞触发的动画。
27.根据权利要求21所述的计算机可读介质,其中,所述至少一个虚拟固体对象包括虚拟墙、虚拟椅子或虚拟桌子中的一者。
28.根据权利要求21所述的计算机可读介质,其中,所述流式媒体数据包括glTF 2.0媒体数据。
29.根据权利要求21所述的计算机可读介质,其中,使得所述处理器接收所述流式媒体数据的所述指令包括:使得所述处理器经由应用程序编程接口(API)从检索单元请求所述流式媒体数据的指令。
30.根据权利要求21所述的计算机可读介质,其中,所述对象碰撞数据被包括在MPEG场景描述中。
31.一种用于检索媒体数据的设备,所述设备包括:
用于接收流式媒体数据的单元,所述流式媒体数据表示包括至少一个虚拟固体对象的虚拟三维场景;
用于接收表示所述至少一个虚拟固体对象的边界的对象碰撞数据的单元;
用于从用户接收相机移动数据的单元,所述相机移动数据请求虚拟相机移动穿过所述至少一个虚拟固体对象;以及
用于使用所述对象碰撞数据来更新所述虚拟相机的位置,以确保所述虚拟相机响应于所述相机移动数据而保持在所述至少一个虚拟固体对象之外的单元。
CN202280018913.9A 2021-03-10 2022-03-09 用于由流式媒体数据定义的虚拟交互场景中的虚拟相机的对象碰撞数据 Pending CN116918338A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US63/159,379 2021-03-10
US17/654,023 US20220292770A1 (en) 2021-03-10 2022-03-08 Object collision data for virtual camera in virtual interactive scene defined by streamed media data
US17/654,023 2022-03-08
PCT/US2022/071056 WO2022192886A1 (en) 2021-03-10 2022-03-09 Object collision data for virtual camera in virtual interactive scene defined by streamed media data

Publications (1)

Publication Number Publication Date
CN116918338A true CN116918338A (zh) 2023-10-20

Family

ID=88361409

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280018913.9A Pending CN116918338A (zh) 2021-03-10 2022-03-09 用于由流式媒体数据定义的虚拟交互场景中的虚拟相机的对象碰撞数据

Country Status (1)

Country Link
CN (1) CN116918338A (zh)

Similar Documents

Publication Publication Date Title
KR102614207B1 (ko) Mime 타입 파라미터들을 이용하는 네트워크 비디오 스트리밍에서의 중요 비디오 정보 시그널링
KR102342274B1 (ko) 이미지에서 가장 관심있는 영역의 진보된 시그널링
EP3459247B1 (en) Most-interested region in an image
JP6342457B2 (ja) コード化ビデオデータのネットワークストリーミング
US11405699B2 (en) Using GLTF2 extensions to support video and audio data
JP2020526982A (ja) メディアコンテンツのためのリージョンワイズパッキング、コンテンツカバレッジ、およびシグナリングフレームパッキング
CN111034203A (zh) 处理具有动态逐区封装的全向媒体
US20220295034A1 (en) Camera control data for virtual camera in virtual interactive scene defined by streamed media data
US10587904B2 (en) Processing media data using an omnidirectional media format
WO2022192886A1 (en) Object collision data for virtual camera in virtual interactive scene defined by streamed media data
TW202249493A (zh) 將場景描述錨定到使用者環境以用於串流沉浸式媒體內容
CN116918338A (zh) 用于由流式媒体数据定义的虚拟交互场景中的虚拟相机的对象碰撞数据
CN116918339A (zh) 流式传输的媒体数据定义的虚拟交互场景中的虚拟相机的相机控制数据
WO2022192885A1 (en) Camera control data for virtual camera in virtual interactive scene defined by streamed media data
US20220335694A1 (en) Anchoring a scene description to a user environment for streaming immersive media content
CN117242780A (zh) 将场景描述锚定到用户环境以用于流式传输沉浸式媒体内容

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination