CN115481280A - 容积视频的数据处理方法、装置、设备及可读存储介质 - Google Patents
容积视频的数据处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN115481280A CN115481280A CN202110660865.0A CN202110660865A CN115481280A CN 115481280 A CN115481280 A CN 115481280A CN 202110660865 A CN202110660865 A CN 202110660865A CN 115481280 A CN115481280 A CN 115481280A
- Authority
- CN
- China
- Prior art keywords
- video
- viewpoint
- viewpoint group
- group
- target
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/73—Querying
- G06F16/735—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/78—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/783—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computational Linguistics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供一种容积视频的数据处理方法、装置、设备及可读存储介质,方法包括:获取容积视频的G个视点组中的第i个视点组作为目标视点组;基于目标视点组对应的目标视频内容,构建目标视点组与目标空间位置信息之间的映射关系,将基于映射关系所生成的定时元数据信息写入容积视频对应的封装数据盒,得到第一扩展数据盒;基于第一扩展数据盒对与G个视点组相关联的编码视频码流进行封装处理,得到容积视频的视频媒体文件,将视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到第一扩展数据盒时,基于第一扩展数据盒中的目标空间位置信息,在视频客户端上展示目标视频内容。采用本申请,可以提升容积视频的解码呈现效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种容积视频的数据处理方法、装置、设备及可读存储介质。
背景技术
容积视频是指捕获自三维空间的视觉内容,可以为用户提供多自由度(例如,3DoF+、6DoF)的观看体验。这里的容积视频主要是指采用多组摄像机阵列,从多个角度拍摄的带有深度信息的多视角视频(也可以称之为多视点视频)。
在对容积视频(即多视点视频)进行视频处理的过程中,通常会对容积视频的不同视点进行分组,以得到多个视点组,进而可以将多个视点组对应的媒体内容进行编码处理,以得到相应的媒体封装文件。然而,发明人在实践中发现:当媒体封装文件中存在一个容积视频包含多个视点组时,通过视频客户端对该编码后的容积视频的编码流进行解码的过程中,会对容积视频的所有编码流进行解码处理,以至于会无差别的对多个视点组中的每个视点组所对应的媒体内容进行解码处理,从而会消耗较长的视频解码时长,进而降低了视频客户端的解码呈现效率。
发明内容
本申请实施例提供一种容积视频的数据处理方法、装置、设备以及可读存储介质,可以提高视频客户端的解码呈现效率。
本申请实施例一方面提供了一种容积视频的数据处理方法,方法由服务器执行,包括:
获取容积视频的G个视点组,将G个视点组中的第i个视点组作为目标视点组;i为小于G的非负整数;
基于目标视点组对应的目标视频内容,构建目标视点组与用于观看目标视频内容的目标空间位置信息之间的映射关系,基于映射关系生成目标视点组对应的定时元数据信息;
将目标视点组对应的定时元数据信息写入容积视频对应的封装数据盒,得到封装数据盒对应的第一扩展数据盒;第一扩展数据盒中包含G个视点组的每个视点组分别对应的定时元数据信息;
获取与G个视点组相关联的编码视频码流,基于第一扩展数据盒对编码视频码流进行封装处理,得到容积视频的视频媒体文件;
将视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到第一扩展数据盒时,根据第一扩展数据盒中的目标视点组对应的定时元数据信息所指示的目标空间位置信息,在视频客户端上展示目标视点组对应的目标视频内容。
本申请实施例一方面提供了一种容积视频的数据处理装置,包括:
视点组获取模块,用于获取容积视频的G个视点组,将G个视点组中的第i个视点组作为目标视点组;i为小于G的非负整数;
映射关系构建模块,用于基于目标视点组对应的目标视频内容,构建目标视点组与用于观看目标视频内容的目标空间位置信息之间的映射关系,基于映射关系生成目标视点组对应的定时元数据信息;
定时元数据写入模块,用于将目标视点组对应的定时元数据信息写入容积视频对应的封装数据盒,得到封装数据盒对应的第一扩展数据盒;第一扩展数据盒中包含G个视点组的每个视点组分别对应的定时元数据信息;
媒体文件下发模块,用于获取与G个视点组相关联的编码视频码流,基于第一扩展数据盒对编码视频码流进行封装处理,得到容积视频的视频媒体文件;
媒体文件下发模块,还用于将视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到第一扩展数据盒时,根据第一扩展数据盒中的目标视点组对应的定时元数据信息所指示的目标空间位置信息,在视频客户端上展示目标视点组对应的目标视频内容。
其中,视点组获取模块包括:
视点获取单元,用于获取容积视频的V个视点,基于V个视点之间的视点依赖关系,对V个视点进行视点分组,得到容积视频的G个视点组;其中,V用于表征容积视频的视点数量,V为大于或者等于2的正整数;视点依赖关系是由V个视点中的每个视点分别对应的视频内容之间的内容相关度所确定的。
其中,视点组获取模块包括:
视点组查找单元,用于获取与容积视频相关联的视频关联信息,在视频关联信息中查找与内容制作者相关联的指定视点组;指定视点组与拍摄容积视频的内容制作者的拍摄意图相关;
通知单元,用于若在视频关联信息中未查找到与内容制作者相关联的指定视点组,则从G个视点组中获取与内容制作者的拍摄意图无关的第i个视点组作为目标视点组,并通知映射关系构建模块执行基于目标视点组对应的目标视频内容,构建目标视点组与用于观看目标视频内容的目标空间位置信息之间的映射关系,基于映射关系生成目标视点组对应的定时元数据信息的步骤。
其中,装置还包括:
无效字段设置模块,用于在封装数据盒的视点组元数据样本中添加推荐视点组标识字段,并将推荐视点组标识字段的字段值设为无效字段值,且在第一扩展数据盒的视点组元数据样本中,将具有无效字段值的推荐视点组标识字段作为第一字段指示信息;第一字段指示信息用于指示视频客户端从第一扩展数据盒中获取G个视点组中的每个视点组的定时元数据信息。
其中,视点组获取模块还包括:
推荐视点组确定单元,用于若在视频关联信息中查找到与内容制作者相关联的指定视点组,则将查找到的指定视点组作为推荐视点组;
目标视点组确定单元,用于基于推荐视点组从G个视点组中获取与内容制作者的拍摄意图相关的第i个视点组,作为目标视点组。
其中,装置还包括:
推荐元数据写入模块,用于将目标视点组的标识符确定为推荐标识符,且将用于描述推荐标识符的元数据信息作为目标视点组的推荐元数据信息,将推荐元数据信息写入容积视频对应的封装数据盒,得到封装数据盒对应的第二扩展数据盒;
封装处理模块,用于获取与G个视点组相关联的编码视频码流,基于第二扩展数据盒对编码视频码流进行封装处理,得到容积视频的视频媒体文件,将视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到第二扩展数据盒时,基于第二扩展数据盒中的推荐元数据信息所指示的推荐标识符,在视频客户端上展示推荐标识符所指示的目标视点组对应的目标视频内容。
其中,在推荐元数据写入模块执行将推荐元数据信息写入容积视频对应的封装数据盒之前,装置还包括:
有效字段设置模块,用于在封装数据盒的视点组元数据样本中添加与推荐标识符相关联的推荐视点组标识字段,并将推荐视点组标识字段的字段值设为有效字段值,且在第二扩展数据盒的视点组元数据样本中,将具有有效字段值的推荐视点组标识字段作为第二字段指示信息;第二字段指示信息用于指示视频客户端从第二扩展数据盒中获取推荐元数据信息。
本申请实施例一方面提供了一种容积视频的数据处理方法,方法由视频客户端执行,包括:
接收服务器下发的容积视频的视频媒体文件,对视频媒体文件进行解封处理,得到容积视频的视频编码流和视频编码流对应的扩展数据盒;扩展数据盒中包含推荐视点组标识字段;
若推荐视点组标识字段的字段值为无效值,则在扩展数据盒的第一扩展数据盒中,获取与容积视频的G个视点组中的每个视点组分别对应的定时元数据信息;
获取G个视点组中的第i个视点组,将视频客户端的空间位置信息作为待比较空间位置信息,将待比较空间位置信息与第i个视点组对应的定时元数据信息所指示的空间位置信息进行比较,得到比较结果;i为小于G的非负整数;
若比较结果指示待比较空间位置信息与第i个视点组对应的定时元数据信息所指示的空间位置信息相同,则将第i个视点组作为匹配视点组,且将匹配视点组对应的定时元数据信息所指示的空间位置信息作为目标空间位置信息;
基于匹配视点组与目标空间位置信息之间的映射关系,从容积视频的视频编码流中解码得到匹配视点组对应的匹配视频内容,在视频客户端上展示匹配视点组对应的匹配视频内容。
本申请实施例一方面提供了一种容积视频的数据处理装置,包括:
媒体文件接收模块,用于接收服务器下发的容积视频的视频媒体文件,对视频媒体文件进行解封处理,得到容积视频的视频编码流和视频编码流对应的扩展数据盒;扩展数据盒中包含推荐视点组标识字段;
定时元数据获取模块,用于若推荐视点组标识字段的字段值为无效值,则在扩展数据盒的第一扩展数据盒中,获取与容积视频的G个视点组中的每个视点组分别对应的定时元数据信息;
信息比较模块,用于获取G个视点组中的第i个视点组,将视频客户端的空间位置信息作为待比较空间位置信息,将待比较空间位置信息与第i个视点组对应的定时元数据信息所指示的空间位置信息进行比较,得到比较结果;i为小于G的非负整数;
目标信息确定模块,用于若比较结果指示待比较空间位置信息与第i个视点组对应的定时元数据信息所指示的空间位置信息相同,则将第i个视点组作为匹配视点组,且将匹配视点组对应的定时元数据信息所指示的空间位置信息作为目标空间位置信息;
视频解码模块,用于基于匹配视点组与目标空间位置信息之间的映射关系,从容积视频的视频编码流中解码得到匹配视点组对应的匹配视频内容,在视频客户端上展示匹配视点组对应的匹配视频内容。
其中,定时元数据获取模块包括:
字段获取单元,用于若推荐视点组标识字段的字段值为无效值,则在扩展数据盒的第一扩展数据盒中,获取与G个视点组相关联的静态视点组元数据字段;
定时元数据获取单元,用于若静态视点组元数据字段的字段值为用于描述G个视点组中的每个视点组的映射关系保持不变的数值,则基于与推荐视点组标识字段相关联的第一字段指示信息,获取G个视点组中的每个视点组分别对应的定时元数据信息。
其中,静态视点组元数据字段部署在第一扩展数据盒的视点组静态元数据盒中;若静态视点组元数据字段的字段值为用于描述G个视点组中的视点组的映射关系保持不变的数值,则在第一扩展数据盒的视点组元数据样本入口中记录的静态视点组元数据:包括G个视点组中的每个视点组的视点组标识符。
其中,若静态视点组元数据字段的字段值为与动态视点组元数据相关联的数值,且动态视点组元数据用于描述G个视点组中存在映射关系随时间发生变化的视点组,则在视点组元数据样本入口对应的视点组元素样本中记录的动态视点组元数据:包括在样本时间戳时存在映射关系发生变化的可变视点组的标识符,且在样本时间戳之前,可变视点组与可变视点组所对应的视频内容之间的映射关系保持不变;可变视点组为G个视点组中所存在的映射关系随时间发生变化的视点组。
其中,视点组元数据样本入口和视点组元素样本用于构成容积视频的视点组定时元数据轨道,且视点组定时元数据轨道用于索引到与容积视频相关联的一个或者多个图集数据轨道。
其中,目标空间位置信息是由服务器在第一扩展数据盒的视点组元数据样本入口中所记录的与视点组相关联的判定信息的类型字段所确定的;判定信息的类型字段部署在视点组元数据样本入口的视点组静态元数据盒中;若判定类型的类型字段为第一数值,则与匹配视点组具有映射关系的目标空间位置信息为在视频客户端上所展示的匹配视频内容的三维空间区域信息;若判定类型的类型字段为第二数值,则与匹配视点组具有映射关系的目标空间位置信息为在视频客户端上观看匹配视频内容的用户的观看位置坐标信息;若判定类型的类型字段为第三数值,则与目标视点组具有映射关系的目标空间位置信息是由三维空间区域信息与观看位置坐标信息所联合确定的。
其中,装置还包括:
信息变更模块,用于当视频客户端的空间位置信息由目标空间位置信息变更为空间位置更新信息时,基于第一扩展数据盒中的空间位置更新信息所对应的定时元数据信息,将空间位置更新信息和变更视点组之间的映射关系作为更新关系;
更新解码模块,用于基于更新关系从容积视频的视频编码流中解码得到变更视点组对应的视频内容,在视频客户端上展示变更视点组对应的视频内容。
其中,装置还包括:
推荐标识符获取模块,用于若推荐视点组标识字段的字段值为有效值,则在扩展数据盒的第二扩展数据盒中,基于与推荐视点组标识字段相关联的第二字段指示信息,获取推荐元数据信息所指示的推荐视点组的推荐标识符;
推荐内容展示模块,用于从容积视频的视频编码流中解码得到推荐视点组对应的推荐视频内容,在视频客户端上展示推荐视点组对应的推荐视频内容。
本申请实施例一方面提供了一种计算机设备,计算机设备包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,处理器用于调用计算机程序,以使得计算机设备执行本申请实施例任一方面中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于由处理器加载并执行,以使得具有处理器的计算机设备执行本申请实施例任一方面中的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例任一方面中的方法。
在本申请实施例中,服务器(即编码端)在获取到容积视频的G个视点组时,可以将G个视点组中的第i个视点组作为目标视点组,这里的i为小于G的非负整数。其中,应当理解,对于G个视点组中的每个视点组均可以作为目标视点组,这里以第i个视点组为例进行举例说明。这样,服务器(即编码端)可以进一步构建目标视点组与用于观看目标视频内容的目标空间位置信息之间的映射关系,进而可以将基于映射关系所生成的目标视点组对应的定时元数据信息写入容积视频对应的封装数据盒,以得到该封装数据盒对应的第一扩展数据盒。应当理解,该第一扩展数据盒中可以包含G个视点组的每个视点组分别对应的定时元数据信息。换言之,该第一扩展数据盒中的定时元数据信息可以用于描述各个视点组与用于观看响应视频内容的空间位置关系的一一映射关系。这样,当服务器(即编码端)基于该第一扩展数据盒对这G个视点组所关联的编码视频流进行封装处理之后,可以得到用于下发给视频客户端(即解码端)的视频媒体文件。这样,当应用客户端在根据视频媒体文件解封得到添加有定时元数据信息的第一扩展数据盒时,就可以根据第一扩展数据盒中所写入的这些定时元数据信息和该视频客户端当前的空间位置信息(例如,目标空间位置信息),快速确定出该目标空间位置信息所映射得到的目标视点组,进而可以在视频客户端中解码得到该目标视点组对应的目标视频内容,以播放该特定视点组对应的视频内容,从而可以在容积视频的部分访问的过程中,提升视频客户端的解码呈现效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种容积视频***的架构图;
图2是本申请实施例提供的一种容积视频的数据处理方法的流程示意图;
图3是本申请实施例提供的一种容积视频的数据处理方法的流程示意图;
图4是本申请实施例提供的一种容积视频的数据处理方法的流程示意图;
图5是本申请实施例提供的一种容积视频的数据处理方法的流程示意图;
图6是本申请实施例提供的一种容积视频的数据处理装置的结构示意图;
图7是本申请实施例提供的一种容积视频的数据处理装置的结构示意图;
图8是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种容积视频***的架构图;如图1所示,该容积视频***包括编码设备和解码设备,编码设备可以是指容积视频的提供者所使用的计算机设备,该计算机设备可以是终端(如PC(Personal Computer,个人计算机)、智能移动设备(如智能手机)等)或服务器。解码设备可以是指容积视频的使用者所使用的计算机设备,该计算机设备可以是终端(如PC(Personal Computer,个人计算机)、智能移动设备(如智能手机)、VR设备(如VR头盔、VR眼镜等))。容积视频的数据处理过程包括在编码设备侧的数据处理过程及在解码设备侧的数据处理过程。
在编码设备侧的数据处理过程主要包括:(1)容积视频的媒体内容的获取过程;(2)容积视频的编码及文件封装的过程。在解码设备侧的数据处理过程主要包括:(1)容积视频的文件解封装及解码的过程;(2)容积视频的渲染过程。另外,编码设备与解码设备之间涉及容积视频的传输过程,该传输过程可以基于各种传输协议来进行,此处的传输协议可包括但不限于:DASH(Dynamic Adaptive Streaming over HTTP,动态自适应流媒体传输)协议、HLS(HTTP Live Streaming,动态码率自适应传输)协议、SMTP(Smart MediaTransport Protocaol,智能媒体传输协议)、TCP(Transmission Control Protocol,传输控制协议)等。
下面将结合图1,分别对容积视频的数据处理过程中涉及的各个过程进行详细介绍。
一、在编码设备侧的数据处理过程:
(1)容积视频的媒体内容的获取与制作过程。
1)容积视频的媒体内容的获取过程。
容积视频的媒体内容是通过捕获设备采集现实世界的声音-视觉场景获得的。在一种实现中,捕获设备可以是指设于编码设备中的硬件组件,例如捕获设备是指终端的麦克风、摄像头、传感器等。另一种实现中,该捕获设备也可以是与编码设备相连接的硬件装置,例如与服务器相连接的摄像头;用于为编码设备提供容积视频的媒体内容的获取服务。该捕获设备可以包括但不限于:音频设备、摄像设备及传感设备。其中,音频设备可以包括音频传感器、麦克风等。摄像设备可以包括普通摄像头、立体摄像头、光场摄像头等。传感设备可以包括激光设备、雷达设备等。捕获设备的数量可以为多个,这些捕获设备被部署在现实空间中的一些特定位置以同时捕获该空间内不同角度的音频内容和视频内容,捕获的音频内容和视频内容在时间和空间上均保持同步。本申请实施例可以将由部署在特定位置的捕获设备所采集到的用于提供多自由度观看体验的3维空间的媒体内容称作容积视频。
2)容积视频的媒体内容的制作过程。
应当理解,本申请实施例所涉及的容积视频的媒体内容的制作过程可以理解为容积视频的内容制作的过程,且这里的容积视频的内容制作主要由部署在多个位置的相机或相机阵列拍摄得到的多视点视频、点云数据、光场等形式的内容制作而成,比如,编码设备可以将容积视频从三维的表示转换成二维的表示。这里的容积视频可以包含几何信息、属性信息、占位图信息以及图集数据等,容积视频在编码前一般需要进行特定处理,例如点云数据在编码前需要切割、映射等过程。例如,多视点视频在编码前一般需要将多视点视频的不同视点进行分组,以在每个分组内进行主视点与辅助视点的区分。
具体的,①将采集输入的容积视频的三维表示数据(即上述点云数据)投影到二维平面,通常采用正交投影、透视投影、ERP投影方式,投影到二维平面的容积视频通过几何组件、占位组件和属性组件的数据表示,其中,几何组件的数据提供容积视频每个点在三维空间中的位置信息,属性组件的数据提供容积视频每个点的额外属性(如纹理或材质信息),占位组件的数据指示其他组件中的数据是否与容积视频关联;
②对容积视频的二维表示的组件数据进行处理生成图块,根据几何组件数据中表示的容积视频的位置,将容积视频的二维表示所在的二维平面区域分割成多个不同大小的矩形区域,一个矩形区域为一个图块,图块包含将该矩形区域反投影到三维空间的必要信息;
③打包图块生成图集,将图块放入一个二维网格中,并保证各个图块中的有效部分是没有重叠的。一个容积视频生成的图块可以打包成一个或多个图集;
④基于图集数据生成对应的几何数据、属性数据和占位数据,将图集数据、几何数据、属性数据、占位数据组合形成容积视频在二维平面的最终表示。
其中,需要注意的是,在容积视频的内容制作过程中,几何组件为必选,占位组件为条件必选,属性组件为可选。
此外,需要说明的是,由于采用捕获设备可以捕获到全景视频,这样的视频经编码设备处理并传输至解码设备进行相应的数据处理后,解码设备侧的用户需要通过执行一些特定动作(如头部旋转)来观看360度的视频信息,而执行非特定动作(如移动头部)并不能获得相应的视频变化,VR体验不佳,因此需要额外提供与全景视频相匹配的深度信息,来使用户获得更优的沉浸度和更佳的VR体验,这就涉及6DoF(Six Degrees of Freedom,六自由度)制作技术。当用户可以在模拟的场景中较自由的移动时,称为6DoF。采用6DoF制作技术进行容积视频的视频内容的制作时,捕获设备一般会选用光场摄像头、激光设备、雷达设备等,捕获空间中的点云数据或光场数据。
(2)容积视频的编码及文件封装的过程。
捕获到的音频内容可直接进行音频编码形成容积视频的音频码流。捕获到的视频内容可进行视频编码,得到容积视频的视频码流。此处需要说明的是,如果采用6DoF制作技术,在视频编码过程中需要采用特定的编码方式(如基于传统视频编码的点云压缩方式)进行编码。将音频码流和视频码流按照容积视频的文件格式(如ISOBMFF(ISO Base MediaFile Format,ISO媒体文件格式))封装在文件容器中形成容积视频的媒体文件资源,该媒体文件资源可以是媒体文件或媒体片段形成的容积视频的媒体文件;并按照容积视频的文件格式要求采用媒体呈现描述信息(Media presentation description,MPD)记录该容积视频的媒体文件资源的元数据,此处的元数据是对与容积视频的呈现有关的信息的总称,该元数据可包括对媒体内容的描述信息、对构建得到的每个视点组与观看媒体内容的空间位置信息之间的映射关系进行描述的定时元数据信息、对视窗的描述信息以及对媒体内容呈现相关的信令信息等等。如图1所示,编码设备会存储经过数据处理过程之后形成的媒体呈现描述信息和媒体文件资源,这里的媒体呈现描述信息和媒体文件资源可以根据一个特定的媒体文件格式,封装成一个用于下发给解码设备的媒体视频文件。
具体的,如图1所示,采集的音频会被编码成相应的音频码流,容积视频的几何信息、属性信息以及占位图信息可以采用传统的视频编码方式,而容积视频的图集数据可以采用熵编码方式。然后,按一定格式(如ISOBMFF、HNSS)将编码的媒体封装在文件容器中并结合描述媒体内容属性的元数据和视窗元数据,根据一个特定的媒体文件格式组成一个媒体文件或者组成一个初始化片段和媒体片段。在本申请实施例中,编码设备在根据一个特定的媒体文件格式组成一个媒体文件或者组成一个初始化片段和媒体片段时,可以将其组成的一个媒体文件或者组成一个初始化片段和媒体片段统称为视频媒体文件,进而可以将得到的视频媒体文件下发给图1所示的解码设备。
二、在解码设备侧的数据处理过程:
(3)容积视频的文件解封装及解码的过程;
解码设备可以通过编码设备的推荐或按照解码设备侧的用户需求自适应动态从编码设备获得容积视频的媒体文件资源和相应的媒体呈现描述信息,例如解码设备可根据用户的头部/眼睛/身体的跟踪信息确定用户的朝向和位置,再基于确定的朝向和位置动态向编码设备请求获得相应的媒体文件资源。媒体文件资源和媒体呈现描述信息通过传输机制(如DASH、SMT)由编码设备传输给解码设备。解码设备侧的文件解封装的过程与编码设备侧的文件封装过程是相逆的,解码设备按照容积视频的文件格式(例如,ISO媒体文件格式)要求对媒体文件资源进行解封装,得到音频码流和视频码流。解码设备侧的解码过程与编码设备侧的编码过程是相逆的,解码设备对音频码流进行音频解码,还原出音频内容;解码设备对视频码流进行视频解码,还原出视频内容。
(4)容积视频的渲染过程。
解码设备根据媒体文件资源对应的媒体呈现描述信息中与渲染相关的元数据,对音频解码得到的音频内容及视频解码得到的视频内容进行渲染,渲染完成即实现了对该图像的播放输出。
容积视频***支持数据盒(Box),数据盒是指包括元数据的数据块或对象,即数据盒中包含了相应媒体内容的元数据。容积视频可以包括多个数据盒,例如包括文件封装数据盒(ISO Base Media File Format Box,简称为ISOBMFF Box),其包含用于描述文件封装时的相应信息的元数据,例如,具体可以包含构建得到的定时元数据信息或者构建得到的推荐元数据信息;其中,ISO文件封装数据盒中可以包括第一扩展数据盒和第二扩展数据盒,其中,第一扩展数据所提供的元数据信息(例如,定时元数据信息)用于描述容积视频的视点组(即上述分组)与对应媒体内容之间的对应关系。其中,第二扩展数据盒所提供的元数据信息(例如,推荐元数据信息)用于描述与内容制作者相关的推荐视点组与对应媒体内容之间的对应关系。为便于理解,本申请实施例可以将上述第一扩展数据盒和第二扩展数据盒统称为扩展数据盒。
在本申请实施例中,为了提升解码终端的解码呈现效率,本申请实施例提出了一种基于上述扩展数据盒所提供的元数据信息实现容积视频的部分访问策略。比如,基于该容积视频的部分访问策略,编码设备在获取到容积视频的视点组时,可以基于确定出的该容积视频的视点组的拍摄意图,得到不同的元数据的指示信息。解码设备可以针对扩展数据盒所提供的元数据信息的指示信息不同,自适应为用户提供不同方式的解码呈现需求。其中,可以理解的是,这里的拍摄意图可以用于表征该容积视频的视点组中是否存在与内容制作者所指定的指定视点组相匹配的视点组。
如果不存在,则说明这里的容积视频的视点组中的每个视点组均为与内容制作者的拍摄意图无关的视点组,进而可以基于每个视点组对应的视频内容,构建该容积视频的视点组中的每个视点组与空间位置信息(例如,3D空间区域和用户位置等信息)之间的映射关系,以将这些构建的映射关系作为用于在解码设备中选择不同视点组的依据,生成每个视点组对应的定时元数据信息。这样,编码设备在将生成的每个视点组对应的定时元数据信息写入上述封装数据盒的过程中,可以得到该封装数据盒对应的第一扩展数据盒,进而可以基于该第一扩展数据盒对与每个视点组相关联的编码视频码流(即上述媒体文件资源)进行封装处理,以得到上述容积视频的视频媒体文件(例如,视频媒体文件A)。基于此,当解码设备获取到视频媒体文件时,可以对该视频媒体文件进行解封处理,以得到上述第一扩展数据盒和与每个视点组相关联的编码视频码流。此时,解码设备可以根据第一扩展数据盒所提供的容积视频的定时元数据信息和用户当前的空间位置信息(例如,用户当前的观看位置信息),快速选择与该用户当前的空间位置信息相匹配的空间位置信息所对应的视点组(例如,视点组1),以从这些编码视频码流中部分解码呈现该视点组1所对应的媒体内容。
可选的,如果存在,则可以直接将查找到的指定视点组作为推荐视点组。此时,编码设备可以将该推荐视点组的标识符确定为推荐标识符,进而可以将用于描述该推荐标识符的元数据信息作为推荐元数据信息,以将该推荐元数据信息写入容积视频对于的封装数据盒,得到上述第二扩展数据盒。这样,编码设备可以在获取到与每个视点组相关联的编码视频码流时,直接基于第二扩展数据盒对这些编码视频码流进行封装处理,以得到另一种视频媒体文件(例如,视频媒体文件B)。基于此,当解码设备获取到视频媒体文件时,可以对该视频媒体文件进行解封处理,以得到上述第二扩展数据盒和与每个视点组相关联的编码视频码流。此时,解码设备还可以直接根据第二扩展数据盒所提供的推荐元数据信息所指示的推荐标识符,快速确定出该推荐标识符所对应的推荐视点组,进而可以解码呈现该推荐视点组对应的媒体内容。
其中,编码设备基于上述部分访问策略构建得到每个视点组分别对应的定时元数据信息、或者基于上述部分访问策略构建得到用于表征内容拍摄者拍摄意图的推荐元数据信息的具体过程,可以参见下述图2-图3所对应实施例的描述。解码设备基于上述部分访问策略实现部分解码的具体过程,可以参见下述图4-图5所对应实施例的描述。
进一步地,请参见图2,图2是本申请实施例提供的一种容积视频的数据处理方法的流程示意图。该方法可以由容积视频***中的编码设备来执行,比如,该编码设备可以为服务器,该方法可以包括以下步骤S101-步骤S105:
步骤S101,获取容积视频的G个视点组,将G个视点组中的第i个视点组作为目标视点组;
其中,i为小于G的非负整数;
具体的,服务器可以在获取到容积视频的V个视点时,基于V个视点之间的视点依赖关系,对V个视点进行视点分组,以得到容积视频的G个视点组;其中,V用于表征容积视频的视点数量,由于这里的容积视频主要是指多视点视频。所以,该容积视频的视点数量(即V)为大于或者等于2的正整数;应当理解,这里的视点依赖关系是由V个视点中的每个视点分别对应的视频内容之间的内容相关度所确定的。
其中,应当理解,多视点视频通常由摄像机阵列从多个角度对场景进行拍摄,形成场景的纹理信息(色彩信息等)和深度信息(空间距离信息等),再加上2D平面帧到3D呈现空间的映射信息,即构成了可在用户侧进行消费的6DoF媒体。应该理解,该摄像机阵列中的每个摄像机可以对应相应的相机标识,在重构三维场景过程中,需要根据用户的观看位置、方向等使用一个或者多个视点的容积视频进行合成、渲染目标视点。其中,辅助视点对应的容积视频需要根据基础视点的容积视频数据合成。
其中,可以理解的是,本申请实施例可以通过容积视频的视点信息结构(例如,ViewInfoStruct)提供容积视频的相应视点信息。比如,该容积视频的视点信息结构可以用于根据相机参数的标识定义该容积视频的V个视点中的每个视点的视点标识、每个视点所属视点组的视点组标识、每个视点是否携带有效的基础视点标识等。
为便于理解,进一步的,请参见表1,该表1用于指示本申请实施例提供的一种容积视频的视点信息结构的语法:
表1
上述表1所示语法的语义如下;view_id指示视点的视点标识。view_group_id指示视点所属的视点组的视点组标识。view_descritption提供视点的文字描述,以空值结尾的UTF-8字符串。basic_view_flag(即基础视点标识字段)的字段值为1(即有效值)时,指出当前视点为基础视点;反之,basic_view_flag(即基础视点标识字段)的字段值为0(即无效值)时,指出当前视点不为基础视点。
进一步的,服务器可以基于每个视点分别对应的视点内容之间的内容相关度,确定上述V个视点之间的视点依赖关系,进而可以基于上述V个视点之间的视点依赖关系,对这V个视点进行视点分组,以得到容积视频的G个视点组。
其中,为便于理解,这里以G个视点组包括视点组1、视点组2、视点组3、视点组4以及视点组5为例。可以理解的是,本申请实施例可以通过容积视频的视点分组信息结构(例如,ViewGroupInfoStruc)提供容积视频的视点分组信息,其中,一个视点分组信息可以用于描述一个或多个视点。为便于理解,进一步的,请参见表2,该表用于指示本申请实施例提供的一种容积视频的视点分组信息结构的语法:
表2
上述表2所示语法的语义如下;view_group_id指示对容积视频的视点组的视点组标识,例如,上述视点组1的视点组标识可以为标识A1。view_group_descritption为视点组的文字描述,视点组的文字描述为以空值结尾的UTF-8字符串。num_views指示视点组中的视点数量,例如,前述视点组1中的视点数量至少应当为一个。为便于理解,这里以视点组1中的视点数据为3个为例,这3个视点(例如,视点1a、视点1b和视点1c)包括一个基础视点,两个辅助视点。其中,view_id指示视点组中视点的视点标识,比如,视点组1中的3个视点(例如,视点1a、视点1b和视点1c)的视点标识可以为标识A11、标识A12和标识A13,即视点组中的第j个视点的视点标识可以记为A1j。对于划分得到的容积视频的任意一个视点组而言,划分得到的任意一个视点组所包含的视点数量均为大于或者等于1的正整数。其中,basic_view_flag为该视点分组信息结构中的基础视点标识字段,此时,该基础视点标识字段的字段值为1时,指示该视点是基础视点。例如,对于上述视点组1中的第1个视点(例如,j=0时所指示的视点)为视点1a而言,若该视点1a所对应的基础视点标识字段为1,则指示该视点1a为基础视点;反之,可选的,若该视点1a所对应的基础视点标识字段为0时,则指示该视点1a不是基础视点,比如,该视点1a为辅助视点。
进一步的,可以理解的是,当服务器获取到容积视频的G个视点组时,为帮助视频客户端对应的用户选择合适的目标视点组,本申请实施例提出了针对该容积视频进行部分访问的策略,该策略应用在服务器、视频客户端以及中间节点等环节。
其中,对于服务器而言,该服务器在将G个视点组中的第i个视点组作为目标视点组之前,需要预先在G个视点组中查找是否存在与内容制作者的拍摄意图所关联的指定视点组相符的视点组。应当理解,这里的指定视点组与拍摄该容积视频的内容制作者的拍摄意图相关。
具体的,服务器可以在获取到与容积视频相关联的视频关联信息时,在视频关联信息中查找与内容制作者相关联的指定视点组,一旦内容制作者在拍摄容积视频时,指定贴合自己拍摄意图的视点组(即指定视点组),则该视频关联信息中将携带前述指定视点组。反之,若内容制作者在拍摄容积视频时,并未指定贴合自己拍摄意图的指定视点组,则该视频管理信息中将不会携带前述指定视点组。比如,内容制作者可以在拍摄该容积视频时,将与自己的拍摄意图相关的视点组统称为指定视点组,并将贴合自己拍摄意图的指定视点组和/或用于拍摄容积视频的相机参数等数据信息(即用于表征内容制作者的拍摄意图的数据信息)作为与该容积视频相关联的视频关联信息,以将该视频关联信息传输给服务器。
基于此,服务器在获取到与容积视频相关联的视频关联信息时,可以在视频关联信息中查找与内容制作者相关联的指定视点组;若该服务器在视频关联信息中未查找到与内容制作者相关联的指定视点组,则可以确定这G个视点组均为与内容制作者的拍摄意图无关的视点组,进而可以从这G个视点组中获取与内容制作者的拍摄意图无关的第i个视点组作为目标视点组,并通知执行下述S102,以根据目标视点组对应的目标视频内容,构建目标视点组与用于观看目标视频内容的目标空间位置信息之间的映射关系,进而可以基于构建的映射关系生成目标视点组对应的定时元数据信息。
可选的,若在视频关联信息中查找到与内容制作者相关联的指定视点组,则该服务器可以将查找到的指定视点组作为推荐视点组,并可以基于推荐视点组从G个视点组中获取与内容制作者的拍摄意图相关的第i个视点组,作为目标视点组。此时,目标视点组为与内容制作者的拍摄意图相关的视点组,该服务器将会跳过下述步骤S102-步骤S104,直接将此时的目标视点组的标识符确定为推荐标识符,且将用于描述推荐标识符的元数据信息作为目标视点组的推荐元数据信息,将推荐元数据信息写入容积视频对应的封装数据盒,得到封装数据盒对应的第二扩展数据盒;进一步的,服务器可以获取与G个视点组相关联的编码视频码流,并可以基于第二扩展数据盒对编码视频码流进行封装处理,以得到容积视频的视频媒体文件,并可以将视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到第二扩展数据盒时,可以基于第二扩展数据盒中的推荐元数据信息所指示的推荐标识符,快速在视频客户端上展示推荐标识符所指示的目标视点组对应的目标视频内容。
步骤S102,基于目标视点组对应的目标视频内容,构建目标视点组与用于观看目标视频内容的目标空间位置信息之间的映射关系,基于映射关系生成目标视点组对应的定时元数据信息;
应当理解,该服务器在上述图1所描述的容积视频的***架构下,在***层添加了若干描述性字段。比如,在***层添加了一些文件封装层面的字段扩展,以对ISOBMEF数据盒(即上述封装数据盒)进行扩展。比如,本申请实施例在上述封装数据盒扩展添加了视点组定时元数据轨道。换言之,本申请实施例在现有的封装数据盒的基础上,对该封装数据盒进行了扩展,以得到相应的扩展数据盒。其中,该扩展数据盒中可以添加视点组定时元数据轨道。该视点组定时元数据轨道是由视点组元数据样本入口(即简称为样本入口)和视点组元数据样本(即简称为样本)所确定的。
其中,可以理解的是,这里的视点组元数据样本入口和视点组元素样本可以用于构成容积视频的视点组定时元数据轨道,且这里的视点组定时元数据轨道可以用于索引到与容积视频相关联的一个或者多个图集数据轨道。
其中,应当理解,这里的视点组定时元数据轨道可以用于指示后续封装得到的视频媒体文件中的不同视点组与媒体内容之间的对应关系。比如,这里的定时元数据轨道可以用于直接关联到相应的图集数据轨道,而不与该容积视频的视频成分轨道直接关联。
其中,可以理解的是,该视点组定时元数据轨道可以通过轨道索引字符串“例如,'cdtg'字符串”快速索引到相关的轨道和轨道组,例如,可以通过'cdtg'字符串直接索引到与该视点组定时元数据轨道相关联的一个图集数据轨道,此时,一个视点组定时元数据轨道可以用于关联一个图集数据轨道。
可选的,该视点组定时元数据轨道还可以通过另一轨道索引字符串“例如,'cdsc'字符串”索引到一个或多个图集数据轨道,例如,当一个视点组定时元数据轨道用于关联一个或者多个图集数据轨道时,该视点组定时元数据轨道可以用于分别描述每个图集数据轨道,且这里的'cdsc'字符串可以具备索引共享功能,即通过该视点组定时元数据轨道可以索引到所有的图集数据轨道。其中,还可以理解的是,每个视点组定时元数据轨道中的样本都可以被标记为同步样本。每个视点组定时元数据轨道中的样本均是指带着元数据信息的数据盒。
其中,应当理解,这里的图集数据轨道可以用于描述上述2D平面到3D平面的映射关系,由于图集数据轨道也可以通过其他的轨道索引字符串索引到成分轨道,成分轨道里就是具体的纹理、颜色这些视频信息。然而,在本申请实施例中,为节约计算资源,提升后续视频客户端的解码呈现效率,这里强调服务器可以通过直接通过视点组定时元数据轨道关联到相应的图集数据轨道,以便于后续视频客户端在解码的过程中,可以通过该视点组定时元数据轨道所直接关的图集数据轨道快速得到上述2D平面到3D平面的映射关系,进而可以将上述二维表示的容积视频重构到三维空间。
其中,视点组元数据样本入口的定义如下:
样本入口类型:'vgme';
包含于:Sample Description Box('stsd');
是否强制:否;
数量:0个或1个;
如上视点组元数据样本入口的定义可知,这里的视点组元数据样本入口(即样本入口)的样本入口类型为“6vpt”,且该视点组元数据样本入口由ViewGroupMetadataSampleEntry定义。可以理解的是,这里的视点组元数据样本入口必须包含ViewGroupStaticMetaBox(即视点组静态元数据盒),这里的视点组静态元数据盒可以用来描述静态的样本组元数据,该视点组静态元数据盒中的静态的样本组元数据可以通过静态视点组元数据字段来描述。比如,该静态视点组元数据字段的字段值为1,则表示视点组元数据在样本入口对应的所有样本组元数据保持不变,进而可以通过样本入口中所记录的静态的样本组元数据,描述上述G个视点组中的视点组的映射关系保持不变。又比如,该静态视点组元数据字段的字段值为0,则表示视点组元数据会随着时间变化。此时,可以将会随着时间变化的视点组元数据统称为动态视点组元数据,进而需要将会随着时间变化的视点组元数据记录在该视点组样本入口所对应的视点组元数据样本中。
其中,该视点组样本入口所承载的元数据信息为静态视点组元数据,该静态视点组元数据可以用于描述G个视点组中映射关系保持不变的视点组(例如,上述视点组1、视点组2和视点组3),而该视点组元数据样本中所承载的元数据信息为动态视点组元数据,该动态视点组元数据用于描述G个视点组中存在映射关系随时间发生变化的视点组(例如,视点组4和视点组5)。这里不对视点组样本入口和视点组元数据样本中所写入的用于描述相应视点组的映射关系的定时元数据信息进行限定。
其中,静态视点组元数据字段部署在第一扩展数据盒的视点组静态元数据盒中;若静态视点组元数据字段的字段值为用于描述G个视点组中的视点组的映射关系保持不变的数值,则在第一扩展数据盒的视点组元数据样本入口中记录的静态视点组元数据:包括G个视点组中的每个视点组的视点组标识符。
为便于理解,进一步的,请参见表3,是本申请实施例提供的视点组元素样本入口的语法:
表3
其中,如上述表3所示,视点组元素样本入口的语义:ViewPositionStruct(即视点位置结构)指示视频客户端对应的用户在多视点视频的整体空间中的观看位置坐标信息,例如,如上述表3所示,ViewPositionStruct(即视点位置结构)中规定了视点的3D空间位置和视点的GPS位置。其中,view_position(即视点位置):指示用户观看的位置,该结构体包含用户在多视点媒体整体空间中的具体x、y、z坐标信息。其中,view_orientation(即视点朝向):指示用户观看的朝向,该结构体包含用户头部的旋转信息。其中,position_range_flag(即位置移动标识字段):指示是否包含用户的移动范围信息。其中,可以理解的是,若该位置移动标识字段的字段取值为有效值(例如,1),则该位置移动标识字段可以用于表示视点位置结构体(即上述表3中的ViewPositionStruct)包含用户的移动范围信息;可选的,若该位置移动标识字段的字段取值为无效值(例如,0),则该位置移动标识字段可以用于表示视点位置结构体(即上述表3中的ViewPositionStruct)不包含用户的移动范围信息。其中,position_range:指示用户以view_position为坐标起点,沿x,y,z轴的移动范围。
其中,如上述表3所示,该视点组元数据样本入口必须包含有扩展的ViewGroupStaticMetaBox(即视点组静态元数据盒,该视点组静态元数据盒部署在上述第一扩展数据盒中)。该第一扩展数据盒包含以下文件封装层面的扩展字段。其中,与视点组相关联的判定信息的类型字段可以为上述表3所示的扩展字段:view_associated_info_type,静态视点组元数据字段可以为上述表3所示的扩展字段:static_view_group_meta。
其中,如上述表3所示,view_associated_info_type:指示与视点组关联的判定信息的类型。其中,在一种实施方式中,若该字段取值为第一数值(例如,0),则表明关联信息为用户观看的媒体内容的空间区域,即指示与匹配视点组具有映射关系的目标空间位置信息为在视频客户端上所展示的匹配视频内容的三维空间区域信息。可选的,在另一种实施方式中,若该字段取值为第二数值(例如,1),则表明关联信息为用户观看位置信息,即指示与匹配视点组具有映射关系的目标空间位置信息为在视频客户端上观看匹配视频内容的用户的观看位置坐标信息。可选的,在又一种实施方式中,若该字段取值为第三数值(例如,2),则表明关联信息为用户观看的媒体内容的空间区域和用户观看位置信息的联合,即与目标视点组具有映射关系的目标空间位置信息是由三维空间区域信息与观看位置坐标信息所联合确定的。
由此可见,该目标空间位置信息是由服务器在第一扩展数据盒的视点组元数据样本入口中所记录的与视点组相关联的判定信息的类型字段所确定的;判定信息的类型字段部署在视点组元数据样本入口的视点组静态元数据盒中;若判定类型的类型字段为第一数值,则与匹配视点组具有映射关系的目标空间位置信息为在视频客户端上所展示的匹配视频内容的三维空间区域信息;若判定类型的类型字段为第二数值,则与匹配视点组具有映射关系的目标空间位置信息为在视频客户端上观看匹配视频内容的用户的观看位置坐标信息;若判定类型的类型字段为第三数值,则与目标视点组具有映射关系的目标空间位置信息是由三维空间区域信息与观看位置坐标信息所联合确定的。
其中,如上述表3所示,static_view_group_meta(即上述静态视点组元数据字段):指示上述G个视点组中的视点组所对应的视点组元数据(即)是否在样本入口对应的所有样本中保持不变。若静态视点组元数据字段的字段值为用于描述G个视点组中的视点组的映射关系保持不变的数值(即若该字段取值为1),则表示上述G个视点组中的视点组所对应的视点组元数据在样本入口对应的所有样本中保持不变,这样,在第一扩展数据盒的视点组元数据样本入口中记录的静态视点组元数据:可以包括G个视点组中的每个视点组的视点组标识符。
如上述表3所示,view_group_num(即在上述样本入口中所记录的所有视点组的数量,例如,上述G个):指示视点组的数量。view_group_id(即G个视点组中的第i个视点组的视点组标识):指示视点组的标识符。region_num(即第i个视点组所对应的空间区域的数量):指示3D空间区域的数量。3DSpatialRegionStruct[j](即3D空间区域结构):指示用户观看的媒体内容的空间区域。ViewPositionStruct(即视点位置结构):指示用户观看位置信息。
其中,为便于理解,进一步的,请参见表4,是本申请实施例提供的空间区域信息结构的语法。其中,该空间区域信息结构至少包括以下两个子结构:3D空间区域结构(3DSpatialRegionStruct)和3D边框结构(3DBoundingBoxStruct)。其中,3D空间区域结构(3DSpatialRegionStruct)提供了容积视频的空间区域信息(包括空间区域x,y,z轴的偏移,3D空间区域的宽度、高度和深度),3D边框结构(3DBoundingBoxStruct)提供了容积视频的边框信息。这意味着上述表3所调用的3D空间区域结构的语法,具体可以参见下述表4:
表4
其中,如上述表4所示,该空间区域信息结构的语义如下:该3d_region_id:指示空间区域的标识符;3D点结构中的x,y,z:分别指示笛卡尔坐标系下3D点的x,z,y坐标值。cuboid_dx,cuboid_dy,cuboid_dz:指示笛卡尔坐标系下的长方体子区域相对于锚点的沿x,y,z轴的尺寸。anchor:指示笛卡尔坐标系下作为3D空间区域锚的一个3D点。bb_dx,bb_dy,bb_dz:指示笛卡尔坐标系下整个容积视频3D边框的延伸相对于原点(0,0,0)的沿x,y,z轴的尺寸。dimensions_included_flag:一个指示空间区域维度是否已经被标明的标识符,该字段的值为1时,表明3DSpatialRegionStruct所指示的空间维度区域已经被标明。
其中,上述表3中的旋转结构,指示提供本地坐标轴转换到全局坐标轴所需的旋转信息,旋转信息以欧拉角或者四元数的方式表示。在立体的全景视频情况下,该旋转结构适用于每一幅双目视图。为便于理解,进一步的,请参见表5,是本申请实施例提供的旋转结构的语法:
表5
如上述表5所示,该旋转结构的语义如下:3D_rotation_type指示旋转信息的表示类型。该字段取值为0表示旋转信息以欧拉角的形式给出;该字段取值为1表示旋转信息以四元数的形式给出。其余取值保留。其中,rotation_yaw,rotation_pitch,和rotation_roll分别指沿着X轴、Y轴和Z轴旋转的偏航(yaw)角度,俯仰(pitch)角度和翻滚(roll)角度,用于单位球面的本地坐标轴到全局坐标轴的转换,以2-16为精度,与全局坐标轴相关。rotation_yaw的范围是[-180°*216,180°*216–1],rotation_pitch的范围是[-90°*216,90°*216],rotation_roll的范围是[-180°*216,180°*216–1]。其中,rotation_x,rotation_y,rotation_z和rotation_w分别指示四元数x,y,z和w分量的取值,用于单位球面的本地坐标轴到全局坐标轴的转换。
可选的,若在上述第一扩展数据盒的视点组静态元数据盒中部署的静态视点组元数据字段的字段值为与动态视点组元数据相关联的数值(即若该字段取值为0),且动态视点组元数据用于描述G个视点组中存在映射关系随时间发生变化的视点组,则表示G个视点组中存在视点组元数据会随时间变化的视点组。此时,在视点组元数据样本入口对应的视点组元素样本中记录的动态视点组元数据:包括在样本时间戳时存在映射关系发生变化的可变视点组的标识符,且在样本时间戳之前,可变视点组与可变视点组所对应的视频内容之间的映射关系保持不变;可变视点组为G个视点组中所存在的映射关系随时间发生变化的视点组。
比如,可以理解的是,考虑到一个视点组元数据样本可以对应多个视点组,所以,若视点组样本入口所记载的视点组2在某个样本时间戳(例如,容积视频的第10分钟所对应的播放时间戳)时,存在静态视点组元数据字段的字段值由有效值(例如,1)变成无效值(例如,0),则该服务器可以将在第10分钟发生映射关系变化的视点组2记录更新到视点组元数据样本中,这意味着在第10分钟之前,该视点组2的定时元数据信息所指示的映射关系(也可以称之为对应关系)是有效的、且保持不变的,即在第10分钟之前,该视点组2的定时元数据信息为上述静态视点组元数据。但是,在第10分钟之后,将需要进一步在下一样本(即下一视点组元数据样本)中对该视点组2的定时元数据信息进行重新定义,比如,可以在第10分钟之后,将该视点组2的定时元数据信息重新定义为前述动态视点组元数据。
其中,视点组元数据样本用于指示对应视点组的相关元数据信息,前一个样本中定义的某个视点组的元数据将保持不变,直至下一个样本中对该视点组的元数据信息进行重新定义。为便于理解,进一步的,请参见下述表6,是本申请实施例提供的视点组元数据样本的语法:
表6
如上述表6所示,视点组元数据样本的语义如下:view_group_num:指示在当前时间为样本时间戳时,在视点组元数据样本所记录的映射关系随时间变化的所有当前样本包含的视点组的数量。比如,对于上述5(例如,G=5)个视点组而言,有4(G1=4)个视点组的映射关系在当前随时间发生变化,1(例如,G2=1)个视点组的映射关系在上述样本入口相对于所有样本保持不变,则可以将该1个视点组的定时元数据记录在上述表3所示的样本入口中,并将当前发生变化的4个视点组的定时元数据保持不变,直至下一个样本中对这些视点组的定时元数据信息所指示的映射关系进行重新定义。这里将不对G个视点组中的G1和G2的数量进行限定。其中,在样本时间戳之前,上述G1个视点组的映射关系仍然是有效的、且保持不变的。其中,view_group_id:指示在视点组元数据样本中所记录的G1个视点组中的第i个视点组的标识符。基于上述样本入口中所记录的判定信息的类型字段的字段值,在该视点元数据样本的下一样本中重新定义与该判定信息的类型字段所关联的空间位置信息。比如,若判定信息的类型字段的字段值为上述第一数值(即为0),则表示与则与匹配视点组具有映射关系的目标空间位置信息为在视频客户端上所展示的匹配视频内容的三维空间区域信息,此时,region_num:指示3D空间区域的数量;3DSpatialRegionStruct[j]:指示用户观看的媒体内容的空间区域。可选的,若判定类型的类型字段为上述第二数值,则与匹配视点组具有映射关系的目标空间位置信息为在视频客户端上观看匹配视频内容的用户的观看位置坐标信息,此时,ViewPositionStruct:指示用户观看位置信息。可选的,若判定类型的类型字段为上述第三数值,则与目标视点组具有映射关系的目标空间位置信息是由三维空间区域信息与观看位置坐标信息所联合确定的。
其中,如上述表6所示,视点组元数据样本中还记录有推荐视点组标识字段(即recommended_view_group_flag)。其中,recommended_view_group_flag:指示是否包含推荐的视点组。该字段取值为1表明该样本中包含推荐的视点组,进而可以间接反映上述G个视点组中存在与内容制作者的拍摄意图相关的指定视点组;该字段取值为0表明该样本中不包含推荐的视点组,进而也可以间接反映上述G个视点组中不存在与内容制作者的拍摄意图相关的指定视点组。其中,rcmd_view_group_id(即推荐视点组的推荐标识符):推荐呈现的视点组的标识符。应当理解,该推荐视点组的推荐标识符可以用于指示视频客户端在获取到上述第二扩展数据盒时,快速确定该推荐标识符所对应的推荐视点组,进而可以从上述编码视频码流中快速解码得到该推荐视点组对应的视频内容,以进一步提升视频客户端的解码呈现效率。
步骤S103,将目标视点组对应的定时元数据信息写入容积视频对应的封装数据盒,得到封装数据盒对应的第一扩展数据盒;
其中,第一扩展数据盒中包含G个视点组的每个视点组分别对应的定时元数据信息;
步骤S104,获取与G个视点组相关联的编码视频码流,基于第一扩展数据盒对编码视频码流进行封装处理,得到容积视频的视频媒体文件;
步骤S105,将视频媒体文件下发至视频客户端。
应当理解,在服务器将视频媒体文件下发至视频客户端时,该视频客户端可以在基于视频媒体文件获取到第一扩展数据盒时,根据第一扩展数据盒中的目标视点组对应的定时元数据信息所指示的目标空间位置信息,在视频客户端上展示目标视点组对应的目标视频内容。
应当理解,本申请实施例可以在视频关联信息中未查找到与内容制作者的拍摄意图相关的指定视点组的情况下,可以将G个视点组中的第i个视点组作为目标视点组,以构建目标视点组与目标空间位置信息之间的映射关系。应当理解,参见对于构建该目标视点组与目标控件位置信息之间的映射关系的具体过程,可以进一步构建得到G个视点组中的每个视点组与用于观看对应视点组的视频内容的空间位置信息之间的映射关系,进而可以将用于描述相应映射关系的元数据信息统称为每个视点组对应的定时元数据信息,以便于可以进一步执行上述步骤S103-步骤S104,进而可以使得上述第一扩展数据盒可以智能提供每个视点组分别对应的定时元数据信息。这样,当该视频客户端在从视频媒体文件中解封得到该第一扩展数据盒时,可以将该视频客户端的当前空间位置信息与前述G个视点组中的某个视点组对应的定时元数据信息所指示的控件位置信息进行匹配,若与该视频客户端的当前空间位置信息相匹配的空间位置信息为前述目标空间位置信息,则可以从与G个视点组相关联的编码视频流中,部分解码得到该目标空间位置信息所关联的目标视点组的目标视频内容,进而可以在该视频客户端中展示该目标视点组的目标视频内容。比如,可以基于上述目标视点组所对应的图集轨道中所指示的由2D平面到3D平面的映射关系,尽可能准确地将上述二维表示的容积视频重构到三维空间,以最终在视频客户端上渲染呈现三维表示的目标视频内容。
在本申请实施例中,服务器(即编码端)在获取到容积视频的G个视点组时,可以将G个视点组中的第i个视点组作为目标视点组,这里的i为小于G的非负整数。其中,应当理解,对于G个视点组中的每个视点组均可以作为目标视点组,这里以第i个视点组为例进行举例说明。这样,服务器(即编码端)可以进一步构建目标视点组与用于观看目标视频内容的目标空间位置信息之间的映射关系,进而可以将基于映射关系所生成的目标视点组对应的定时元数据信息写入容积视频对应的封装数据盒,以得到该封装数据盒对应的第一扩展数据盒。应当理解,该第一扩展数据盒中可以包含G个视点组的每个视点组分别对应的定时元数据信息。换言之,该第一扩展数据盒中的定时元数据信息可以用于描述各个视点组与用于观看响应视频内容的空间位置关系的一一映射关系。这样,当服务器(即编码端)基于该第一扩展数据盒对这G个视点组所关联的编码视频流进行封装处理之后,可以得到用于下发给视频客户端(即解码端)的视频媒体文件。这样,当应用客户端在根据视频媒体文件解封得到添加有定时元数据信息的第一扩展数据盒时,就可以根据第一扩展数据盒中所写入的这些定时元数据信息和该视频客户端当前的空间位置信息(例如,目标空间位置信息),快速确定出该目标空间位置信息所映射得到的目标视点组,进而可以在视频客户端中解码得到该目标视点组对应的目标视频内容,以播放该特定视点组对应的视频内容,从而可以在容积视频的部分访问的过程中,提升视频客户端的解码呈现效率。
进一步地,请参见图3,图3是本申请实施例提供的一种容积视频的数据处理方法的流程示意图。该方法可以由容积视频***中的编码设备来执行,该编码设备可以为上述服务器,该方法可以包括以下步骤:
步骤S201,获取容积视频的G个视点组;
具体的,服务器可以获取容积视频的V个视点,并可以基于V个视点之间的视点依赖关系,对V个视点进行视点分组,得到容积视频的G个视点组;
其中,V用于表征容积视频的视点数量,V为大于或者等于2的正整数;视点依赖关系是由V个视点中的每个视点分别对应的视频内容之间的内容相关度所确定的。即本申请实施例可以将具有较高内容相关度(例如,内容相关度大于或者等于相关度阈值)的视频内容所对应的视点划分到同一视点组中,并将具有较低内容相关度(例如,内容相关度小于相关度阈值)的视频内容所对应的视点划分到不同视点组。
步骤S202,获取与容积视频相关联的视频关联信息,在视频关联信息中查找与内容制作者相关联的指定视点组;
其中,指定视点组与拍摄容积视频的内容制作者的拍摄意图相关。其中,应当理解,编码设备(即上述服务器)在执行完步骤S202的过程中,若在视频关联信息中未查找到与内容制作者相关联的指定视点组,则可以进一步执行下述步骤S203-步骤S207,进而可以将构建得到的每个视点组对应的定时元数据信息写入到封装数据盒,以得到用于指示按照上述ISOBMFF文件封装格式对编码视频码流进行文件封装的第一扩展数据盒。可选的,若在视频关联信息中查找到与内容制作者相关联的指定视点组,则可以进一步执行下述步骤S208-步骤S211。
步骤S203,若在视频关联信息中未查找到与内容制作者相关联的指定视点组,则从G个视点组中获取与内容制作者的拍摄意图无关的第i个视点组作为目标视点组;
步骤S204,基于目标视点组对应的目标视频内容,构建目标视点组与用于观看目标视频内容的目标空间位置信息之间的映射关系,基于映射关系生成目标视点组对应的定时元数据信息。
步骤S205,将目标视点组对应的定时元数据信息写入容积视频对应的封装数据盒,得到封装数据盒对应的第一扩展数据盒;
其中,第一扩展数据盒中包含G个视点组的每个视点组分别对应的定时元数据信息;应当理解,本申请实施例所涉及的编码设备(即上述服务器)在将定时元数据信息写入封装数据盒,对封装数据盒进行扩展的过程中,还会在在封装数据盒的视点组元数据样本中添加推荐视点组标识字段,并将推荐视点组标识字段的字段值设为无效字段值,且在第一扩展数据盒的视点组元数据样本中,将具有无效字段值的推荐视点组标识字段作为第一字段指示信息;第一字段指示信息用于指示视频客户端从第一扩展数据盒中获取G个视点组中的每个视点组的定时元数据信息。
步骤S206,获取与G个视点组相关联的编码视频码流,基于第一扩展数据盒对编码视频码流进行封装处理,得到容积视频的视频媒体文件;
步骤S207,将视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到第一扩展数据盒时,根据第一扩展数据盒中的目标视点组对应的定时元数据信息所指示的目标空间位置信息,在视频客户端上展示目标视点组对应的目标视频内容。
其中,应当理解,为便于进行区别,本申请实施例可以将通过步骤S203-步骤S207所封装得到的视频媒体文件称之为第一视频媒体文件,将通过下述步骤S208-步骤S211所封装得到的视频媒体文件称之为第二视频媒体文件。
其中,步骤S203-步骤S207的具体实现方式,可以参见上述图2所对应实施例中对得到第一扩展数据盒以及基于第一扩展数据盒对编码视频码流进行封装处理的具体过程的描述,这里将不再继续进行赘述。
可选的,步骤S208,若在视频关联信息中查找到与内容制作者相关联的指定视点组,则将查找到的指定视点组作为推荐视点组;
步骤S209,基于推荐视点组从G个视点组中获取与内容制作者的拍摄意图相关的第i个视点组,作为目标视点组。
步骤S210,将目标视点组的标识符确定为推荐标识符,且将用于描述推荐标识符的元数据信息作为目标视点组的推荐元数据信息,将推荐元数据信息写入容积视频对应的封装数据盒,得到封装数据盒对应的第二扩展数据盒;
其中,写入第二扩展数据盒中的推荐元数据信息所指示的推荐标识符可以参见上述表6所对应实施例中的视点组元数据样本的描述,这里将不再继续进行赘述。
其中,应当理解,编码设备(即上述服务器)在将推荐元数据信息写入容积视频对应的封装数据盒时,该编码设备(即上述服务器)还可以在封装数据盒的视点组元数据样本中添加与推荐标识符相关联的推荐视点组标识字段,并将推荐视点组标识字段的字段值设为有效字段值,且在第二扩展数据盒的视点组元数据样本中,将具有有效字段值的推荐视点组标识字段作为第二字段指示信息;第二字段指示信息用于指示视频客户端从第二扩展数据盒中获取推荐元数据信息;视频客户端为编码设备所对应的解码设备中的客户端。
步骤S211,获取与G个视点组相关联的编码视频码流,基于第二扩展数据盒对编码视频码流进行封装处理,得到容积视频的视频媒体文件,将视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到第二扩展数据盒时,基于第二扩展数据盒中的推荐元数据信息所指示的推荐标识符,在视频客户端上展示推荐标识符所指示的目标视点组对应的目标视频内容。
在本申请实施例中,服务器可以将容积视频的多个视点(即上述多视点视频的多个视点)划分为不同的视点组,并可以在这些视频组中判断是否存在与拍摄者的拍摄意图所关联的指定视点组相匹配的视点组。如果存在,则可以将与拍摄者的拍摄意图所关联的指定视点组相匹配的视点组(例如,G个视点组中的第i个视点组)作为推荐视点组,此时,这里的推荐视点组可以视为上述目标视点组,进而可以将该推荐视点组(即目标视点组)的标识符确定为推荐标识符,并可以将用于描述该推荐标识符的元数据信息作为推荐视点组(即目标视点组)的推荐元数据信息,以将该推荐元数据信息写入封装数据盒,以得到第二扩展数据盒。此时,服务器可以基于该第二扩展数据盒对编码视频码流进行封装处理,以得到用于下发给视频客户端的视频媒体文件(即上述第二视频媒体文件),这样,视频客户端在接收到该视频媒体文件(例如,第二视频媒体文件)时,可以直接基于第二扩展数据盒中的推荐元数据信息所指示的推荐标识符,在视频客户端上展示推荐标识符所指示的推荐视点组对应的视频内容。可选的,如果这些视频组中不存在与拍摄者的拍摄意图所关联的指定视点组相匹配的视点组,则可以在与内容制作者的拍摄意图无关的G个视点组中,将第i个视点组作为目标视点组,进而可以目标视频组对应的目标视频内容,构建目标视点组与用于观看目标视频内容的目标控件位置信息之间的映射关系,进而可以将基于映射关系所生成目标视点组对应的定时元数据信息,写入容积视频对应的封装数据盒,以得到上述第一扩展数据盒。应当理解,当视频客户端获取到基于第一扩展数据盒所封装得到的视频媒体文件(即上述第一视频媒体文件)时,可以解封得到该第一扩展数据盒,进而可以基于用户当前观看的空间位置信息(例如,用户当前观看的空间区域和用户位置等信息),与该第一扩展数据盒中每个视点组的定时元数据信息所指示的空间位置信息进行比较,以智能选取与当前观看的空间位置信息最匹配的视点组(例如,最匹配的视点组可以为上述目标视点组),以解码得到用于承载该目标视点组所对应的目标视点内容的文件轨道,进而可以在视频客户端中渲染呈现该目标视点组所对应的目标视点内容。
进一步地,请参见图4,图4是本申请实施例提供的一种容积视频的数据处理方法的流程示意图。该方法可以由容积视频***中的解码设备来执行,该编码设备可以为集成有上述视频客户端的用户终端,该方法可以包括以下步骤:
步骤S301,接收服务器下发的容积视频的视频媒体文件,对视频媒体文件进行解封处理,得到容积视频的视频编码流和视频编码流对应的扩展数据盒;
其中,扩展数据盒中包含推荐视点组标识字段;其中,这里的服务器可以为上述图2或者图3所对应实施例中的服务器。应当理解,运行在用户终端中的视频客户端所接收到的视频媒体文件可以为按照上述第一扩展数据盒所指示的文件封装格式所封装得到的第一视频媒体文件,或者为按照上述第二扩展数据盒所指示的文件封装格式所封装得到的第二视频媒体文件。应当理解,这里的视频媒体文件为第一视频媒体文件还是第二视频媒体文件,是由该扩展数据盒中所包含的推荐视点组标识字段的字段值所确定的。比如,若推荐视点组标识字段的字段值为无效值,则这里所接收到的视频媒体文件为第一视频媒体文件,可以进一步执行下述步骤S302-步骤S305;又比如,若推荐视点组标识字段的字段值为有效值,则这里所接收到的视频媒体文件为第二视频媒体文件,可以进一步执行下述步骤S306-步骤S307。
步骤S302,若推荐视点组标识字段的字段值为无效值,则在扩展数据盒的第一扩展数据盒中,获取与容积视频的G个视点组中的每个视点组分别对应的定时元数据信息;
具体的,若推荐视点组标识字段的字段值为无效值(例如,推荐视点组标识字段的字段值为0),则在扩展数据盒的第一扩展数据盒中,获取与G个视点组相关联的静态视点组元数据字段;若静态视点组元数据字段的字段值为用于描述G个视点组中的每个视点组的映射关系保持不变的数值(例如,静态视点组元数据字段的字段值为1),则基于与推荐视点组标识字段相关联的第一字段指示信息,获取G个视点组中的每个视点组分别对应的定时元数据信息,以进一步执行下述步骤S303。
其中,静态视点组元数据字段部署在第一扩展数据盒的视点组静态元数据盒中;若静态视点组元数据字段的字段值为用于描述G个视点组中的视点组的映射关系保持不变的数值,则在第一扩展数据盒的视点组元数据样本入口中记录的静态视点组元数据:包括G个视点组中的每个视点组的视点组标识符。
其中,若静态视点组元数据字段的字段值为与动态视点组元数据相关联的数值,且动态视点组元数据用于描述G个视点组中存在映射关系随时间发生变化的视点组,则在视点组元数据样本入口对应的视点组元素样本中记录的动态视点组元数据:包括在样本时间戳时存在映射关系发生变化的可变视点组的标识符,且在样本时间戳之前,可变视点组与可变视点组所对应的视频内容之间的映射关系保持不变。其中,应当理解,本申请实施例可以将G个视点组中存在映射关系随时间发生变化的视点组统称为可变视点组。
其中,视点组元数据样本入口和视点组元素样本用于构成容积视频的视点组定时元数据轨道,且视点组定时元数据轨道用于索引到与容积视频相关联的一个或者多个图集数据轨道。具体的,请参见上述图2所对应实施例中对第一扩展数据盒的描述。
步骤S303,获取G个视点组中的第i个视点组,将视频客户端的空间位置信息作为待比较空间位置信息,将待比较空间位置信息与第i个视点组对应的定时元数据信息所指示的空间位置信息进行比较,得到比较结果;
其中,i为小于G的非负整数;
比如,对于G个视点组中的每个视点组(例如,上述视点组1、视点组2、视点组3、视点组4和视点组5)而言,可以将每个视点组所对应的定时元数据信息所指示的空间位置信息与待比较空间位置信息(例如,用户当前观看的空间区域、用户位置信息等信息)进行比较,以得到该待比较空间位置信息与每个视点组所关联的空间位置信息之间的子比较结果,这些子比较结果均可以统称为比较结果,进而可以在待比较空间位置信息与G个视点组中的第i个视点组对应的定时元数据信息所指示的空间位置信息相同时,执行下述步骤S304。
步骤S304,若比较结果指示待比较空间位置信息与第i个视点组对应的定时元数据信息所指示的空间位置信息相同,则将第i个视点组作为匹配视点组,且将匹配视点组对应的定时元数据信息所指示的空间位置信息作为目标空间位置信息;
其中,目标空间位置信息是由服务器在第一扩展数据盒的视点组元数据样本入口中所记录的与视点组相关联的判定信息的类型字段所确定的;判定信息的类型字段部署在视点组元数据样本入口的视点组静态元数据盒中;若判定类型的类型字段为第一数值,则与匹配视点组具有映射关系的目标空间位置信息为在视频客户端上所展示的匹配视频内容的三维空间区域信息;若判定类型的类型字段为第二数值,则与匹配视点组具有映射关系的目标空间位置信息为在视频客户端上观看匹配视频内容的用户的观看位置坐标信息;若判定类型的类型字段为第三数值,则与目标视点组具有映射关系的目标空间位置信息是由三维空间区域信息与观看位置坐标信息所联合确定的。
步骤S305,基于匹配视点组与目标空间位置信息之间的映射关系,从容积视频的视频编码流中解码得到匹配视点组对应的匹配视频内容,在视频客户端上展示匹配视点组对应的匹配视频内容。
可选的,步骤S306,若推荐视点组标识字段的字段值为有效值,则在扩展数据盒的第二扩展数据盒中,基于与推荐视点组标识字段相关联的第二字段指示信息,获取推荐元数据信息所指示的推荐视点组的推荐标识符;
步骤S307,从容积视频的视频编码流中解码得到推荐视点组对应的推荐视频内容,在视频客户端上展示推荐视点组对应的推荐视频内容。
由此可见,在本申请实施例中,通过扩展数据盒中所提供的元数据信息的不同,可以自适应的获取不同的字段指示信息。例如,若获取到的字段指示信息为第一字段指示信息,则可以从第一扩展数据盒中写入的每个视点组对应的定时元数据信息,进而可以根据每个视点组对应的定时元数据信息和实时获取到的该视频客户端当前的空间位置信息,智能确定与该视频客户端当前的空间位置信息相匹配的空间位置信息,并可以将确定的与该视频客户端当前的空间位置信息相匹配的空间位置信息(例如,第i个视点组所对应的定时元数据信息所指示的空间位置信息)作为用于选择特定的视点组的依据,该选择的特定的视点组为匹配视点组,此时,视频客户端可以对该匹配视点组所对应的视频内容进行解码呈现,进而可以在对该容积视频的部分访问的过程中,实现部分解码,这样,可以从根源上避免对该容积视频的所有视频内容的整体解码,进而可以节约计算资源的目的。可选的,若获取到的字段指示信息为第二字段指示信息,则可以从第二扩展数据盒中写入的推荐视点组对应的推荐元数据信息,直接根据推荐元数据信息所指示的推荐视点组,直接解码得到推荐视点组对应的视频内容,以进一步提高视频客户端的解码呈现效率。
进一步地,请参见图5,图5是本申请实施例提供的一种容积视频的数据处理方法的流程示意图。该方法可以由容积视频***中的解码设备来执行,该编码设备可以为集成有上述视频客户端的用户终端,该方法可以包括以下步骤:
步骤S401,接收服务器下发的容积视频的视频媒体文件,对视频媒体文件进行解封处理,得到容积视频的视频编码流和视频编码流对应的扩展数据盒;扩展数据盒中包含推荐视点组标识字段;
步骤S402,若推荐视点组标识字段的字段值为无效值,则在扩展数据盒的第一扩展数据盒中,获取与容积视频的G个视点组中的每个视点组分别对应的定时元数据信息;
步骤S403,获取G个视点组中的第i个视点组,将视频客户端的空间位置信息作为待比较空间位置信息,将待比较空间位置信息与第i个视点组对应的定时元数据信息所指示的空间位置信息进行比较,得到比较结果;
其中,i为小于G的非负整数;
步骤S404,若比较结果指示待比较空间位置信息与第i个视点组对应的定时元数据信息所指示的空间位置信息相同,则将第i个视点组作为匹配视点组,且将匹配视点组对应的定时元数据信息所指示的空间位置信息作为目标空间位置信息;
步骤S405,基于匹配视点组与目标空间位置信息之间的映射关系,从容积视频的视频编码流中解码得到匹配视点组对应的匹配视频内容,在视频客户端上展示匹配视点组对应的匹配视频内容。
步骤S406,当视频客户端的空间位置信息由目标空间位置信息变更为空间位置更新信息时,基于第一扩展数据盒中的空间位置更新信息所对应的定时元数据信息,将空间位置更新信息和变更视点组之间的映射关系作为更新关系;
步骤S407,基于更新关系从容积视频的视频编码流中解码得到变更视点组对应的视频内容,在视频客户端上展示变更视点组对应的视频内容。
应当理解,在上述第一扩展数据盒中包括用于描述用户位置信息的视点位置结构,这里的视点位置结构包含用于指示用户观看位置的view_position的结构体、用于指示用户观看朝向的view_orientation结构体,以及用于指示是否包含用户的移动范围信息的position_range_flag字段。其中,view_position的结构体可以包含用户在多视点媒体整体空间中的具体x,y,z坐标信息,其中,view_orientation结构体可以包含用户头部的旋转信息,该用户头部的旋转信息的语义可以参见上述表5所示的用于指示用户旋转信息的旋转结构的描述。其中,position_range_flag字段的字段取值为1(即有效值),则表示部署在第一扩展数据盒中的视点位置结构体包含用户的移动范围信息;反之,若该position_range_flag字段的字段取值为0(即无效值),则表示部署在第一扩展数据盒中的视点位置结构体不包含用户的移动范围信息。
基于此,当用户在目标空间位置信息(例如,空间位置信息1,且该空间位置信息指示用户在观看位置P1处的旋转信息为旋转信息W1)观看视点组1所对应的视频内容时,一旦用户的头部发生旋转,将引起旋转信息的变更,进而导致空间位置信息的变更。此时,视频客户端可以在该用户所使用的视频客户端的空间位置信信息由目标空间位置信息变更为另一空间位置信息(例如,空间位置信息2,且该空间位置信息指示用户在观看位置P2处的旋转信息为旋转信息W2)时,将空间位置信息2统称为空间位置更新信息,进而可以基于第一扩展数据盒中的空间位置更新信息所对应的定时元数据信息,将空间位置更新信息和变更视点组(例如,视点组2)之间的映射关系作为更新关系,从而可以基于更新关系从容积视频的视频编码流中解码得到变更视点组(即视点组2)对应的视频内容,以在视频客户端上展示变更视点组对应的视频内容。由此可见,本申请实施例可以基于第一扩展数据盒所提供的与每个视点组相关联的映射关系,自适应的根据用户的观看需求自适应的进行视点组的切换,以在容积视频的部分访问过程中,在提升解码呈现效率的同时,提升用户的观看体验。
进一步地,请参见图6,图6是本申请实施例提供的一种容积视频的数据处理装置的结构示意图。该容积视频的数据处理装置可以是运行于编码设备中的一个计算机程序(包括程序代码),例如该容积视频的数据处理装置可以是编码设备中的一个应用软件。该容积视频的数据处理装置可以用于执行图2或者图3所对应实施例中的容积视频的数据处理方法的步骤。进一步的,请参见图6,该容积视频的数据处理装置1可以包括:视点组获取模块11、映射关系构建模块12、定时元数据写入模块13和媒体文件下发模块14。进一步的,该容积视频的数据处理装置1还可以包括:
视点组获取模块11,用于获取容积视频的G个视点组,将G个视点组中的第i个视点组作为目标视点组;
其中,i为小于G的非负整数;
其中,视点组获取模块11包括:视点获取单元111,视点组查找单元112,通知单元113,推荐视点组确定单元114和目标视点组确定单元115;
视点获取单元111,用于获取容积视频的V个视点,基于V个视点之间的视点依赖关系,对V个视点进行视点分组,得到容积视频的G个视点组;其中,V用于表征容积视频的视点数量,V为大于或者等于2的正整数;视点依赖关系是由V个视点中的每个视点分别对应的视频内容之间的内容相关度所确定的。
视点组查找单元112,用于获取与容积视频相关联的视频关联信息,在视频关联信息中查找与内容制作者相关联的指定视点组;指定视点组与拍摄容积视频的内容制作者的拍摄意图相关;
通知单元113,用于若在视频关联信息中未查找到与内容制作者相关联的指定视点组,则从G个视点组中获取与内容制作者的拍摄意图无关的第i个视点组作为目标视点组,并通知映射关系构建模块12执行基于目标视点组对应的目标视频内容,构建目标视点组与用于观看目标视频内容的目标空间位置信息之间的映射关系,基于映射关系生成目标视点组对应的定时元数据信息的步骤。
其中,可选的,推荐视点组确定单元114,用于若在视频关联信息中查找到与内容制作者相关联的指定视点组,则将查找到的指定视点组作为推荐视点组;
目标视点组确定单元115,用于基于推荐视点组从G个视点组中获取与内容制作者的拍摄意图相关的第i个视点组,作为目标视点组。
其中,应当理解,当该容积视频的数据处理装置1通过上述通知单元113执行上述步骤之后,还可以通过无效字段设置模块14执行下述步骤。其中,视点获取单元111,视点组查找单元112,通知单元113,推荐视点组确定单元114和目标视点组确定单元115的具体实现方式,可以参见上述图2所对应实施例对获取目标视点组的具体过程的描述,这里将不再继续进行赘述。
无效字段设置模块14,用于在封装数据盒的视点组元数据样本中添加推荐视点组标识字段,并将推荐视点组标识字段的字段值设为无效字段值,且在第一扩展数据盒的视点组元数据样本中,将具有无效字段值的推荐视点组标识字段作为第一字段指示信息;第一字段指示信息用于指示视频客户端从第一扩展数据盒中获取G个视点组中的每个视点组的定时元数据信息。
映射关系构建模块12,用于基于目标视点组对应的目标视频内容,构建目标视点组与用于观看目标视频内容的目标空间位置信息之间的映射关系,基于映射关系生成目标视点组对应的定时元数据信息;
定时元数据写入模块13,用于将目标视点组对应的定时元数据信息写入容积视频对应的封装数据盒,得到封装数据盒对应的第一扩展数据盒;第一扩展数据盒中包含G个视点组的每个视点组分别对应的定时元数据信息;
媒体文件下发模块14,用于获取与G个视点组相关联的编码视频码流,基于第一扩展数据盒对编码视频码流进行封装处理,得到容积视频的视频媒体文件;
进一步的,媒体文件下发模块14,还用于将视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到第一扩展数据盒时,根据第一扩展数据盒中的目标视点组对应的定时元数据信息所指示的目标空间位置信息,在视频客户端上展示目标视点组对应的目标视频内容。
其中,可选的,应当理解,当该容积视频的数据处理装置1通过上述通知单元115执行上述步骤之后,还可以通过推荐元数据写入模块16执行下述步骤。
推荐元数据写入模块16,用于将目标视点组的标识符确定为推荐标识符,且将用于描述推荐标识符的元数据信息作为目标视点组的推荐元数据信息,将推荐元数据信息写入容积视频对应的封装数据盒,得到封装数据盒对应的第二扩展数据盒;
封装处理模块17,用于获取与G个视点组相关联的编码视频码流,基于第二扩展数据盒对编码视频码流进行封装处理,得到容积视频的视频媒体文件,将视频媒体文件下发至视频客户端,以使视频客户端在基于视频媒体文件获取到第二扩展数据盒时,基于第二扩展数据盒中的推荐元数据信息所指示的推荐标识符,在视频客户端上展示推荐标识符所指示的目标视点组对应的目标视频内容。
可选的,其中,在推荐元数据写入模块16执行将推荐元数据信息写入容积视频对应的封装数据盒之前,该容积视频的数据处理装置1通过有效字段设置模块18执行下述步骤:
有效字段设置模块18,用于在封装数据盒的视点组元数据样本中添加与推荐标识符相关联的推荐视点组标识字段,并将推荐视点组标识字段的字段值设为有效字段值,且在第二扩展数据盒的视点组元数据样本中,将具有有效字段值的推荐视点组标识字段作为第二字段指示信息;第二字段指示信息用于指示视频客户端从第二扩展数据盒中获取推荐元数据信息。
其中,视点组获取模块11、映射关系构建模块12、定时元数据写入模块13和媒体文件下发模块14的具体实现方式,可以参见上述图2所对应实施例中对步骤S101-步骤S105的描述,这里将不再继续进行赘述。进一步的,无效字段设置模块15、推荐元数据写入模块16、封装处理模块17和有效字段设置模块18的具体实现方式,可以参见上述图3所对应实施例中对步骤S201-步骤S211描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步的,请参见图7,图7是本申请实施例提供的一种容积视频的数据处理装置的结构示意图。该容积视频的数据处理装置可以是运行于解码设备中的一个计算机程序(包括程序代码),例如该容积视频的数据处理装置可以是解码设备中的一个应用软件。该容积视频的数据处理装置可以用于执行图4或者图5所对应实施例中的容积视频的数据处理方法的步骤。进一步的,请参见图7,该容积视频的数据处理装置2可以包括:媒体文件接收模块21、定时元数据获取模块22、信息比较模块23、目标信息确定模块24以及视频解码模块24。可选的,该容积视频的数据处理装置2还可以包括:信息变更模块26、更新解码模块27、推荐标识符获取模块28和推荐内容展示模块29。
媒体文件接收模块21,用于接收服务器下发的容积视频的视频媒体文件,对视频媒体文件进行解封处理,得到容积视频的视频编码流和视频编码流对应的扩展数据盒;扩展数据盒中包含推荐视点组标识字段;
定时元数据获取模块22,用于若推荐视点组标识字段的字段值为无效值,则在扩展数据盒的第一扩展数据盒中,获取与容积视频的G个视点组中的每个视点组分别对应的定时元数据信息;
其中,定时元数据获取模块22包括:字段获取单元221和定时元数据获取单元222;
字段获取单元221,用于若推荐视点组标识字段的字段值为无效值,则在扩展数据盒的第一扩展数据盒中,获取与G个视点组相关联的静态视点组元数据字段;
定时元数据获取单元222,用于若静态视点组元数据字段的字段值为用于描述G个视点组中的每个视点组的映射关系保持不变的数值,则基于与推荐视点组标识字段相关联的第一字段指示信息,获取G个视点组中的每个视点组分别对应的定时元数据信息。
其中,字段获取单元221和定时元数据获取单元222的具体实现方式,可以参见上述图4所对应实施例中通过第一扩展数据盒对获取定时元数据信息的具体过程的描述,这里将不再继续进行赘述。
其中,静态视点组元数据字段部署在第一扩展数据盒的视点组静态元数据盒中;若静态视点组元数据字段的字段值为用于描述G个视点组中的视点组的映射关系保持不变的数值,则在第一扩展数据盒的视点组元数据样本入口中记录的静态视点组元数据:包括G个视点组中的每个视点组的视点组标识符。
其中,若静态视点组元数据字段的字段值为与动态视点组元数据相关联的数值,且动态视点组元数据用于描述G个视点组中存在映射关系随时间发生变化的视点组,则在视点组元数据样本入口对应的视点组元素样本中记录的动态视点组元数据:包括在样本时间戳时存在映射关系发生变化的可变视点组的标识符,且在样本时间戳之前,可变视点组与可变视点组所对应的视频内容之间的映射关系保持不变;可变视点组为G个视点组中所存在的映射关系随时间发生变化的视点组。
其中,视点组元数据样本入口和视点组元素样本用于构成容积视频的视点组定时元数据轨道,且视点组定时元数据轨道用于索引到与容积视频相关联的一个或者多个图集数据轨道。
信息比较模块23,用于获取G个视点组中的第i个视点组,将视频客户端的空间位置信息作为待比较空间位置信息,将待比较空间位置信息与第i个视点组对应的定时元数据信息所指示的空间位置信息进行比较,得到比较结果;i为小于G的非负整数;
目标信息确定模块24,用于若比较结果指示待比较空间位置信息与第i个视点组对应的定时元数据信息所指示的空间位置信息相同,则将第i个视点组作为匹配视点组,且将匹配视点组对应的定时元数据信息所指示的空间位置信息作为目标空间位置信息;
其中,目标空间位置信息是由服务器在第一扩展数据盒的视点组元数据样本入口中所记录的与视点组相关联的判定信息的类型字段所确定的;判定信息的类型字段部署在视点组元数据样本入口的视点组静态元数据盒中;若判定类型的类型字段为第一数值,则与匹配视点组具有映射关系的目标空间位置信息为在视频客户端上所展示的匹配视频内容的三维空间区域信息;若判定类型的类型字段为第二数值,则与匹配视点组具有映射关系的目标空间位置信息为在视频客户端上观看匹配视频内容的用户的观看位置坐标信息;若判定类型的类型字段为第三数值,则与目标视点组具有映射关系的目标空间位置信息是由三维空间区域信息与观看位置坐标信息所联合确定的。
视频解码模块25,用于基于匹配视点组与目标空间位置信息之间的映射关系,从容积视频的视频编码流中解码得到匹配视点组对应的匹配视频内容,在视频客户端上展示匹配视点组对应的匹配视频内容。
可选的,信息变更模块26,用于当视频客户端的空间位置信息由目标空间位置信息变更为空间位置更新信息时,基于第一扩展数据盒中的空间位置更新信息所对应的定时元数据信息,将空间位置更新信息和变更视点组之间的映射关系作为更新关系;
更新解码模块27,用于基于更新关系从容积视频的视频编码流中解码得到变更视点组对应的视频内容,在视频客户端上展示变更视点组对应的视频内容。
可选的,推荐标识符获取模块28,用于若推荐视点组标识字段的字段值为有效值,则在扩展数据盒的第二扩展数据盒中,基于与推荐视点组标识字段相关联的第二字段指示信息,获取推荐元数据信息所指示的推荐视点组的推荐标识符;
推荐内容展示模块29,用于从容积视频的视频编码流中解码得到推荐视点组对应的推荐视频内容,在视频客户端上展示推荐视点组对应的推荐视频内容。
其中,媒体文件接收模块21、定时元数据获取模块22、信息比较模块23、目标信息确定模块24以及视频解码模块25的具体实现方式,可以参见上述图4所对应实施例中步骤S301-步骤S305的描述,这里将不再进行赘述。可选的,信息变更模块26、更新解码模块27的具体实现方式,可以参见上述图4所对应实施例中步骤S306-步骤S307的描述,这里将不再进行赘述;推荐标识符获取模块28和推荐内容展示模块29的具体实现方式,可以参见上述图5所对应实施例中步骤S401-步骤S407的描述,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图8,图8是本申请实施例提供的一种计算机设备的示意图。如图8所示的计算机设备1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,网络接口1004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选地还可以是至少一个位于远离前述处理器1001的存储装置。如图8所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
在图8所示的计算机设备1000中,网络接口1004主要用于提供网络通信功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以执行前文图2、图3、图4或者图5所对应实施例中对容积视频的数据处理方法的描述,也可执行前文图6所对应实施例中对该容积视频的数据处理装置1的描述,还可以执行前述图7所对应实施例中对容积视频的数据处理2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的计算机设备1000所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图2、图3、图4或者图5所对应实施例中对上述容积视频的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (19)
1.一种容积视频的数据处理方法,其特征在于,所述方法由服务器执行,包括:
获取容积视频的G个视点组,将所述G个视点组中的第i个视点组作为目标视点组;所述i为小于所述G的非负整数;
基于所述目标视点组对应的目标视频内容,构建所述目标视点组与用于观看所述目标视频内容的目标空间位置信息之间的映射关系,基于所述映射关系生成所述目标视点组对应的定时元数据信息;
将所述目标视点组对应的定时元数据信息写入所述容积视频对应的封装数据盒,得到所述封装数据盒对应的第一扩展数据盒;所述第一扩展数据盒中包含所述G个视点组的每个视点组分别对应的定时元数据信息;
获取与所述G个视点组相关联的编码视频码流,基于所述第一扩展数据盒对所述编码视频码流进行封装处理,得到所述容积视频的视频媒体文件;
将所述视频媒体文件下发至视频客户端,以使所述视频客户端在基于所述视频媒体文件获取到所述第一扩展数据盒时,根据所述第一扩展数据盒中的所述目标视点组对应的定时元数据信息所指示的所述目标空间位置信息,在所述视频客户端上展示所述目标视点组对应的目标视频内容。
2.根据权利要求1所述的方法,其特征在于,所述获取容积视频的G个视点组,包括:
获取容积视频的V个视点,基于所述V个视点之间的视点依赖关系,对所述V个视点进行视点分组,得到所述容积视频的G个视点组;其中,所述V用于表征所述容积视频的视点数量,所述V为大于或者等于2的正整数;所述视点依赖关系是由所述V个视点中的每个视点分别对应的视频内容之间的内容相关度所确定的。
3.根据权利要求1~2任一项所述的方法,其特征在于,所述将所述G个视点组中的第i个视点组作为目标视点组,包括:
获取与所述容积视频相关联的视频关联信息,在所述视频关联信息中查找与内容制作者相关联的指定视点组;所述指定视点组与拍摄所述容积视频的所述内容制作者的拍摄意图相关;
若在所述视频关联信息中未查找到与内容制作者相关联的指定视点组,则从所述G个视点组中获取与所述内容制作者的拍摄意图无关的第i个视点组作为所述目标视点组,并通知执行所述基于所述目标视点组对应的目标视频内容,构建所述目标视点组与用于观看所述目标视频内容的目标空间位置信息之间的映射关系,基于所述映射关系生成所述目标视点组对应的定时元数据信息的步骤。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述封装数据盒的视点组元数据样本中添加推荐视点组标识字段,并将所述推荐视点组标识字段的字段值设为无效字段值,且在所述第一扩展数据盒的视点组元数据样本中,将具有所述无效字段值的推荐视点组标识字段作为第一字段指示信息;所述第一字段指示信息用于指示所述视频客户端从所述第一扩展数据盒中获取所述G个视点组中的每个视点组的定时元数据信息。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若在所述视频关联信息中查找到与内容制作者相关联的指定视点组,则将查找到的指定视点组作为推荐视点组;
基于所述推荐视点组从所述G个视点组中获取与所述内容制作者的拍摄意图相关的第i个视点组,作为所述目标视点组。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将所述目标视点组的标识符确定为推荐标识符,且将用于描述所述推荐标识符的元数据信息作为所述目标视点组的推荐元数据信息,将所述推荐元数据信息写入所述容积视频对应的封装数据盒,得到所述封装数据盒对应的第二扩展数据盒;
获取与所述G个视点组相关联的编码视频码流,基于所述第二扩展数据盒对所述编码视频码流进行封装处理,得到所述容积视频的视频媒体文件,将所述视频媒体文件下发至视频客户端,以使所述视频客户端在基于所述视频媒体文件获取到所述第二扩展数据盒时,基于所述第二扩展数据盒中的所述推荐元数据信息所指示的所述推荐标识符,在所述视频客户端上展示所述推荐标识符所指示的所述目标视点组对应的目标视频内容。
7.根据权利要求6所述的方法,其特征在于,在所述将所述推荐元数据信息写入所述容积视频对应的封装数据盒时,所述方法还包括:
在所述封装数据盒的视点组元数据样本中添加与所述推荐标识符相关联的推荐视点组标识字段,并将所述推荐视点组标识字段的字段值设为有效字段值,且在所述第二扩展数据盒的视点组元数据样本中,将具有所述有效字段值的推荐视点组标识字段作为第二字段指示信息;所述第二字段指示信息用于指示所述视频客户端从所述第二扩展数据盒中获取所述推荐元数据信息。
8.一种容积视频的数据处理方法,其特征在于,所述方法由视频客户端执行,包括:
接收服务器下发的容积视频的视频媒体文件,对所述视频媒体文件进行解封处理,得到所述容积视频的视频编码流和所述视频编码流对应的扩展数据盒;所述扩展数据盒中包含推荐视点组标识字段;
若所述推荐视点组标识字段的字段值为无效值,则在所述扩展数据盒的第一扩展数据盒中,获取与所述容积视频的G个视点组中的每个视点组分别对应的定时元数据信息;
获取所述G个视点组中的第i个视点组,将所述视频客户端的空间位置信息作为待比较空间位置信息,将所述待比较空间位置信息与所述第i个视点组对应的定时元数据信息所指示的空间位置信息进行比较,得到比较结果;所述i为小于所述G的非负整数;
若所述比较结果指示所述待比较空间位置信息与所述第i个视点组对应的定时元数据信息所指示的空间位置信息相同,则将所述第i个视点组作为匹配视点组,且将所述匹配视点组对应的定时元数据信息所指示的空间位置信息作为目标空间位置信息;
基于所述匹配视点组与所述目标空间位置信息之间的映射关系,从所述容积视频的视频编码流中解码得到所述匹配视点组对应的匹配视频内容,在所述视频客户端上展示所述匹配视点组对应的匹配视频内容。
9.根据权利要求8所述的方法,其特征在于,所述若所述推荐视点组标识字段的字段值为无效值,则在所述扩展数据盒的第一扩展数据盒中,获取与所述容积视频的G个视点组中的每个视点组分别对应的定时元数据信息,包括:
若所述推荐视点组标识字段的字段值为无效值,则在所述扩展数据盒的第一扩展数据盒中,获取与所述G个视点组相关联的静态视点组元数据字段;
若所述静态视点组元数据字段的字段值为用于描述所述G个视点组中的每个视点组的映射关系保持不变的数值,则基于与所述推荐视点组标识字段相关联的第一字段指示信息,获取G个视点组中的每个视点组分别对应的定时元数据信息。
10.根据权利要求9所述的方法,其特征在于,所述静态视点组元数据字段部署在所述第一扩展数据盒的视点组静态元数据盒中;若所述静态视点组元数据字段的字段值为用于描述所述G个视点组中的视点组的映射关系保持不变的数值,则在所述第一扩展数据盒的视点组元数据样本入口中记录的静态视点组元数据:包括所述G个视点组中的每个视点组的视点组标识符。
11.根据权利要求10所述的方法,其特征在于,若所述静态视点组元数据字段的字段值为与动态视点组元数据相关联的数值,且动态视点组元数据用于描述所述G个视点组中存在映射关系随时间发生变化的视点组,则在所述视点组元数据样本入口对应的视点组元素样本中记录的所述动态视点组元数据:包括在样本时间戳时存在映射关系发生变化的可变视点组的标识符,且在所述样本时间戳之前,所述可变视点组与所述可变视点组所对应的视频内容之间的映射关系保持不变;所述可变视点组为所述G个视点组中所存在的映射关系随时间发生变化的视点组。
12.根据权利要求11所述的方法,其特征在于,所述视点组元数据样本入口和所述视点组元素样本用于构成所述容积视频的视点组定时元数据轨道,且所述视点组定时元数据轨道用于索引到与所述容积视频相关联的一个或者多个图集数据轨道。
13.根据权利要求8~12任一项所述的方法,其特征在于,所述目标空间位置信息是由所述服务器在所述第一扩展数据盒的视点组元数据样本入口中所记录的与视点组相关联的判定信息的类型字段所确定的;所述判定信息的类型字段部署在所述视点组元数据样本入口的视点组静态元数据盒中;
若所述判定类型的类型字段为第一数值,则与所述匹配视点组具有所述映射关系的所述目标空间位置信息为在所述视频客户端上所展示的所述匹配视频内容的三维空间区域信息;
若所述判定类型的类型字段为第二数值,则与所述匹配视点组具有所述映射关系的所述目标空间位置信息为在所述视频客户端上观看所述匹配视频内容的用户的观看位置坐标信息;
若所述判定类型的类型字段为第三数值,则与所述目标视点组具有所述映射关系的所述目标空间位置信息是由所述三维空间区域信息与所述观看位置坐标信息所联合确定的。
14.根据权利要求8~12任一项所述的方法,其特征在于,所述方法还包括:
当所述视频客户端的空间位置信息由所述目标空间位置信息变更为空间位置更新信息时,基于所述第一扩展数据盒中的所述空间位置更新信息所对应的定时元数据信息,将所述空间位置更新信息和变更视点组之间的映射关系作为更新关系;
基于所述更新关系从所述容积视频的视频编码流中解码得到所述变更视点组对应的视频内容,在所述视频客户端上展示所述变更视点组对应的视频内容。
15.根据权利要求8~12任一项所述的方法,其特征在于,所述方法还包括:
若所述推荐视点组标识字段的字段值为有效值,则在所述扩展数据盒的第二扩展数据盒中,基于与所述推荐视点组标识字段相关联的第二字段指示信息,获取推荐元数据信息所指示的推荐视点组的推荐标识符;
从所述容积视频的视频编码流中解码得到所述推荐视点组对应的推荐视频内容,在所述视频客户端上展示所述推荐视点组对应的推荐视频内容。
16.一种容积视频的数据处理装置,其特征在于,包括:
视点组获取模块,用于获取容积视频的G个视点组,将所述G个视点组中的第i个视点组作为目标视点组;所述i为小于所述G的非负整数;
映射关系构建模块,用于基于所述目标视点组对应的目标视频内容,构建所述目标视点组与用于观看所述目标视频内容的目标空间位置信息之间的映射关系,基于所述映射关系生成所述目标视点组对应的定时元数据信息;
定时元数据写入模块,用于将所述目标视点组对应的定时元数据信息写入所述容积视频对应的封装数据盒,得到所述封装数据盒对应的第一扩展数据盒;所述第一扩展数据盒中包含所述G个视点组的每个视点组分别对应的定时元数据信息;
媒体文件下发模块,用于获取与所述G个视点组相关联的编码视频码流,基于所述第一扩展数据盒对所述编码视频码流进行封装处理,得到所述容积视频的视频媒体文件;
媒体文件下发模块,还用于将所述视频媒体文件下发至视频客户端,以使所述视频客户端在基于所述视频媒体文件获取到所述第一扩展数据盒时,根据所述第一扩展数据盒中的所述目标视点组对应的定时元数据信息所指示的所述目标空间位置信息,在所述视频客户端上展示所述目标视点组对应的目标视频内容。
17.一种容积视频的数据处理装置,其特征在于,包括:
媒体文件接收模块,用于接收服务器下发的容积视频的视频媒体文件,对所述视频媒体文件进行解封处理,得到所述容积视频的视频编码流和所述视频编码流对应的扩展数据盒;所述扩展数据盒中包含推荐视点组标识字段;
定时元数据获取模块,用于若所述推荐视点组标识字段的字段值为无效值,则在所述扩展数据盒的第一扩展数据盒中,获取与所述容积视频的G个视点组中的每个视点组分别对应的定时元数据信息;
信息比较模块,用于获取所述G个视点组中的第i个视点组,将所述视频客户端的空间位置信息作为待比较空间位置信息,将所述待比较空间位置信息与所述第i个视点组对应的定时元数据信息所指示的空间位置信息进行比较,得到比较结果;所述i为小于所述G的非负整数;
目标信息确定模块,用于若所述比较结果指示所述待比较空间位置信息与所述第i个视点组对应的定时元数据信息所指示的空间位置信息相同,则将所述第i个视点组作为匹配视点组,且将所述匹配视点组对应的定时元数据信息所指示的空间位置信息作为目标空间位置信息;
视频解码模块,用于基于所述匹配视点组与所述目标空间位置信息之间的映射关系,从所述容积视频的视频编码流中解码得到所述匹配视点组对应的匹配视频内容,在所述视频客户端上展示所述匹配视点组对应的匹配视频内容。
18.一种计算机设备,其特征在于,包括:处理器、存储器、网络接口;
所述处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以执行如权利要求1-15任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-15任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110660865.0A CN115481280A (zh) | 2021-06-15 | 2021-06-15 | 容积视频的数据处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110660865.0A CN115481280A (zh) | 2021-06-15 | 2021-06-15 | 容积视频的数据处理方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115481280A true CN115481280A (zh) | 2022-12-16 |
Family
ID=84419347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110660865.0A Pending CN115481280A (zh) | 2021-06-15 | 2021-06-15 | 容积视频的数据处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115481280A (zh) |
-
2021
- 2021-06-15 CN CN202110660865.0A patent/CN115481280A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11699211B2 (en) | Spherical rotation for encoding wide view video | |
CN109327699B (zh) | 一种图像的处理方法、终端和服务器 | |
CN113891117B (zh) | 沉浸媒体的数据处理方法、装置、设备及可读存储介质 | |
CN114189697B (zh) | 一种视频数据处理方法、装置以及可读存储介质 | |
CN113852829A (zh) | 点云媒体文件的封装与解封装方法、装置及存储介质 | |
CN114095737B (zh) | 媒体文件封装及解封装方法、装置、设备及存储介质 | |
US20240015197A1 (en) | Method, apparatus and device for encapsulating media file, and storage medium | |
US12015756B2 (en) | Multi-view video processing method and apparatus | |
CN114116617A (zh) | 点云媒体的数据处理方法、装置、设备及可读存储介质 | |
CN115225975A (zh) | 多自由度场景下的沉浸式媒体获取方法、设备及存储介质 | |
CN115086635B (zh) | 多视角视频的处理方法、装置、设备及存储介质 | |
CN115481280A (zh) | 容积视频的数据处理方法、装置、设备及可读存储介质 | |
CN115280336A (zh) | 通过沉浸式媒体引用神经网络模型以适配流式传输到异构客户端端点的媒体 | |
CN113497928B (zh) | 一种沉浸媒体的数据处理方法及相关设备 | |
EP4394718A1 (en) | Media file encapsulation method and device, media file decapsulation method and device, and storage medium | |
US20230403411A1 (en) | File decapsulation method and apparatus for free viewpoint video, device, and storage medium | |
US20230370638A1 (en) | Media file packing and unpacking method, apparatus and device, and storage medium | |
CN115733576B (zh) | 点云媒体文件的封装与解封装方法、装置及存储介质 | |
EP4373089A1 (en) | Data processing method and apparatus, computer, and readable storage medium | |
CN115623183A (zh) | 容积媒体的数据处理方法、装置、设备以及存储介质 | |
CN117082262A (zh) | 点云文件封装与解封装方法、装置、设备及存储介质 | |
CN116137664A (zh) | 点云媒体文件封装方法、装置、设备及存储介质 | |
CN116643644A (zh) | 一种沉浸媒体的数据处理方法、装置、设备及存储介质 | |
CN116800987A (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN116643643A (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 |