CN116781674A - 一种沉浸媒体的数据处理方法、装置、设备及存储介质 - Google Patents

一种沉浸媒体的数据处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116781674A
CN116781674A CN202210227641.5A CN202210227641A CN116781674A CN 116781674 A CN116781674 A CN 116781674A CN 202210227641 A CN202210227641 A CN 202210227641A CN 116781674 A CN116781674 A CN 116781674A
Authority
CN
China
Prior art keywords
point cloud
header
multiplexing
header information
information
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
CN202210227641.5A
Other languages
English (en)
Inventor
胡颖
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210227641.5A priority Critical patent/CN116781674A/zh
Priority to PCT/CN2022/135538 priority patent/WO2023169001A1/zh
Priority to US18/351,899 priority patent/US20230360277A1/en
Publication of CN116781674A publication Critical patent/CN116781674A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种沉浸媒体的数据处理方法、装置、设备及存储介质,该方法包括:对点云数据进行编码,得到包含复用指示信息的点云码流,复用指示信息是基于头信息集合的复用状态所确定的,头信息集合是在对点云数据进行编码的过程中所生成的;根据复用状态生成针对点云码流的解码器配置记录信息;将点云码流和解码器配置记录信息封装为沉浸媒体的媒体文件,复用指示信息和解码器配置记录信息为点云码流提供解码所需的头信息集合以及头信息集合的复用状态。采用本申请,可以避免重复解码相同的头信息,节省解码资源。

Description

一种沉浸媒体的数据处理方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种沉浸媒体的数据处理方法、装置、设备及存储介质。
背景技术
沉浸媒体是指能为业务对象带来沉浸式体验的媒体内容,点云媒体即一种典型的沉浸媒体。现有技术中,点云媒体对应的点云码流中的每个点云帧均包含相应的头信息,因此每解码一个点云帧就需要解码其所包含的头信息,当不同点云帧中存在相同的头信息时,必然会导致重复解码相同的头信息,以至于造成了解码资源的浪费。
发明内容
本申请实施例提供了一种沉浸媒体的数据处理方法、装置、设备及存储介质,可以避免重复解码相同的头信息,节省解码资源。
本申请实施例一方面提供了一种沉浸媒体的数据处理方法,包括:
对点云数据进行编码,得到包含复用指示信息的点云码流;复用指示信息是基于头信息集合的复用状态所确定的,头信息集合是在对点云数据进行编码的过程中所生成的;
根据复用状态生成针对点云码流的解码器配置记录信息;
将点云码流和解码器配置记录信息封装为沉浸媒体的媒体文件;复用指示信息和解码器配置记录信息为点云码流提供解码所需的头信息集合以及头信息集合的复用状态。
本申请实施例一方面提供了一种沉浸媒体的数据处理方法,包括:
获取沉浸媒体的媒体文件,对媒体文件进行解封装,得到媒体文件中的点云码流以及与点云码流相关联的解码器配置记录信息;解码器配置记录信息是根据头信息集合的复用状态所生成的,头信息集合是在对点云数据进行编码的过程中所生成的,点云码流包含复用指示信息,复用指示信息是基于复用状态所确定的;复用指示信息和解码器配置记录信息为点云码流提供解码所需的头信息集合以及头信息集合的复用状态;
基于解码器配置记录信息对点云码流进行解码。
本申请实施例一方面提供了一种沉浸媒体的数据处理装置,包括:
编码模块,用于对点云数据进行编码,得到包含复用指示信息的点云码流;复用指示信息是基于头信息集合的复用状态所确定的,头信息集合是在对点云数据进行编码的过程中所生成的;
生成模块,用于根据复用状态生成针对点云码流的解码器配置记录信息;
封装模块,用于将点云码流和解码器配置记录信息封装为沉浸媒体的媒体文件;复用指示信息和解码器配置记录信息为点云码流提供解码所需的头信息集合以及头信息集合的复用状态。
其中,复用指示信息用于添加至点云码流对应的序列头信息;复用指示信息包括第一参数复用状态字段,第一参数复用状态字段用于指示头信息集合的复用状态。
其中,头信息集合包括几何头信息;第一参数复用状态字段包括第一几何头复用状态字段,第一几何头复用状态字段用于指示点云码流中的几何头信息的复用状态;当第一几何头复用状态字段的字段值为第一状态值时,表示点云码流中存在可复用的几何头信息;当第一几何头复用状态字段的字段值为第二状态值时,表示点云码流中不存在可复用的几何头信息。
其中,当第一几何头复用状态字段的字段值为第一状态值时,表示点云码流中的每个点云帧均不包含几何头信息,复用指示信息还包括几何头数量字段和几何头指示信息;几何头数量字段用于指示点云码流中可复用的几何头信息的数量,几何头数量字段的字段值为M,M为正整数;几何头指示信息包括M个可复用的几何头信息;具有第一状态值的第一几何头复用状态字段还用于指示客户端在对点云码流中的每个点云帧进行解码时,分别参考M个可复用的几何头信息中的一个几何头信息。
其中,当第一几何头复用状态字段的字段值为第二状态值时,表示点云码流中的每个点云帧均包含一个几何头信息;具有第二状态值的第一几何头复用状态字段还用于指示客户端在对点云码流中的每个点云帧进行解码时,分别参考每个点云帧所包含的几何头信息。
其中,头信息集合包括属性头信息;第一参数复用状态字段包括第一属性头复用状态字段,第一属性头复用状态字段用于指示点云码流中的属性头信息的复用状态;当第一属性头复用状态字段的字段值为第三状态值时,表示点云码流中存在可复用的属性头信息;当第一属性头复用状态字段的字段值为第四状态值时,表示点云码流中不存在可复用的属性头信息。
其中,当第一属性头复用状态字段的字段值为第三状态值时,表示点云码流中的每个点云帧均不包含属性头信息,复用指示信息还包括属性头数量字段和属性头指示信息;属性头数量字段用于指示点云码流中可复用的属性头信息的数量,属性头数量字段的字段值为N,N为正整数;属性头指示信息包括N个可复用的属性头信息;具有第三状态值的第一属性头复用状态字段还用于指示客户端在对点云码流中的每个点云帧进行解码时,分别参考N个可复用的属性头信息中的一个或多个属性头信息。
其中,当第一属性头复用状态字段的字段值为第四状态值时,表示点云码流中的每个点云帧均包含一个或多个属性头信息;具有第四状态值的第一属性头复用状态字段还用于指示客户端在对点云码流中的每个点云帧进行解码时,分别参考每个点云帧所包含的属性头信息。
其中,复用指示信息用于添加至点云码流所包含的点云帧;点云码流包括多个点云帧,多个点云帧包括目标点云帧;目标点云帧中的复用指示信息包括第二参数复用状态字段,第二参数复用状态字段用于指示解码目标点云帧所参考的头信息集合的复用状态。
其中,多个点云帧还包括第一历史点云帧,第一历史点云帧的生成时间戳早于目标点云帧的生成时间戳;第一历史点云帧为目标点云帧的上一帧;头信息集合包括几何头信息;第二参数复用状态字段包括第二几何头复用状态字段,第二几何头复用状态字段用于指示解码目标点云帧所参考的几何头信息的复用状态;当第二几何头复用状态字段的字段值为第五状态值时,表示解码目标点云帧时重复使用第一历史点云帧所参考的几何头信息。
其中,多个点云帧还包括第二历史点云帧,第二历史点云帧的生成时间戳早于目标点云帧的生成时间戳;头信息集合包括几何头信息;第二参数复用状态字段包括第二几何头复用状态字段,第二几何头复用状态字段用于指示解码目标点云帧所参考的几何头信息的复用状态;当第二几何头复用状态字段的字段值为第五状态值时,目标点云帧中的复用指示信息还包括复用几何头标识字段,具有第五状态值的第二几何头复用状态字段用于指示解码目标点云帧时参考复用几何头标识字段所指示的几何头信息;复用几何头标识字段所指示的几何头信息为第二历史点云帧所参考的几何头信息。
其中,当第二几何头复用状态字段的字段值为第六状态值时,表示目标点云帧包含几何头信息,具有第六状态值的第二几何头复用状态字段还用于指示客户端在对目标点云帧进行解码时,参考目标点云帧所包含的几何头信息。
其中,多个点云帧还包括第三历史点云帧,第三历史点云帧的生成时间戳早于目标点云帧的生成时间戳;第三历史点云帧为目标点云帧的上一帧;头信息集合包括属性头信息;第二参数复用状态字段包括第二属性头复用状态字段,第二属性头复用状态字段用于指示解码目标点云帧所参考的属性头信息的复用状态;当第二属性头复用状态字段的字段值为第七状态值时,表示解码目标点云帧时重复使用第三历史点云帧所参考的属性头信息。
其中,多个点云帧还包括第四历史点云帧,第四历史点云帧的生成时间戳早于目标点云帧的生成时间戳;头信息集合包括属性头信息;第二参数复用状态字段包括第二属性头复用状态字段,第二属性头复用状态字段用于指示解码目标点云帧所参考的属性头信息的复用状态;当第二属性头复用状态字段的字段值为第七状态值时,目标点云帧中的复用指示信息还包括复用属性头标识字段,具有第七状态值的第二属性头复用状态字段用于指示解码目标点云帧时参考复用属性头标识字段所指示的属性头信息;复用属性头标识字段所指示的属性头信息为第四历史点云帧所参考的属性头信息。
其中,当第二属性头复用状态字段的字段值为第八状态值时,表示目标点云帧包含属性头信息;具有第八状态值的第二属性头复用状态字段还用于指示客户端在对目标点云帧进行解码时,参考目标点云帧所包含的属性头信息。
其中,上述生成模块,具体用于基于复用状态确定头信息数量和头指示信息,生成包含头信息数量字段和头指示信息的解码器配置记录信息;头信息数量字段用于指示解码点云码流所参考的头信息的数量;头信息数量字段的字段值为K,K为正整数;头指示信息包括K个头基础信息。
其中,每个头基础信息中均包含头信息类型字段、头信息标识字段、头信息长度字段以及头信息描述字段;头信息类型字段用于指示K个头信息中的第i个头信息的类型,i为小于或者等于K的正整数;头信息标识字段用于指示第i个头信息的标识符;头信息长度字段用于指示第i个头信息的长度;头信息描述字段用于指示第i个头信息。
其中,当头信息类型字段的字段值为第一类型字段值时,表示第i个头信息为序列头信息;当头信息类型字段的字段值为第二类型字段值时,表示第i个头信息为几何头信息;当头信息类型字段的字段值为第三类型字段值时,表示第i个头信息为属性头信息。
其中,每个头基础信息还包括最小点云帧索引字段和最大点云帧索引字段;最小样本索引字段用于指示参考第i个头信息的点云帧索引号范围的最小值;最大样本索引字段用于指示参考第i个头信息的点云帧索引号范围的最大值;处于点云帧索引号范围内的点云帧均参考第i个头信息,处于点云帧索引号范围内的点云帧属于点云码流。
其中,上述封装模块,包括:
分组单元,用于当点云码流中存在可复用的头信息时,基于点云码流中的点云帧与可复用的头信息之间的对应关系,对点云码流中的点云帧进行分组,得到一个或多个参数集合索引样本群组;每个参数集合索引样本群组对应一个参考头信息标识字段,参考头信息标识字段用于指示解码一个参数集合索引样本群组中的点云帧时所参考的头信息的标识符;
封装单元,用于将一个或多个参数集合索引样本群组和解码器配置记录信息封装为沉浸媒体的媒体文件。
其中,该装置还包括:
传输模块,用于对媒体文件进行切片,得到初始化片段和媒体片段;初始化片段包含解码器配置记录信息;通过流化传输方式将初始化片段和媒体片段传输至客户端。
本申请实施例一方面提供了一种沉浸媒体的数据处理装置,包括:
解封装模块,用于获取沉浸媒体的媒体文件,对媒体文件进行解封装,得到媒体文件中的点云码流以及与点云码流相关联的解码器配置记录信息;解码器配置记录信息是根据头信息集合的复用状态所生成的,头信息集合是在对点云数据进行编码的过程中所生成的,点云码流包含复用指示信息,复用指示信息是基于复用状态所确定的;复用指示信息和解码器配置记录信息为点云码流提供解码所需的头信息集合以及头信息集合的复用状态;
解码模块,用于基于解码器配置记录信息对点云码流进行解码。
其中,上述解码模块,包括:
第一确定单元,用于基于解码器配置记录信息所包含的头数量信息字段和头指示信息,确定头信息集合的复用状态;
第一解码单元,用于当复用状态指示点云码流中存在可复用的头信息时,从点云码流对应的序列头信息中获取复用指示信息,基于复用指示信息所指示的头信息对点云码流进行解码;
第二解码单元,用于当复用状态指示点云码流中不存在可复用的头信息时,基于点云码流中的点云帧所包含的头信息对点云帧进行解码。
其中,上述第一解码单元,具体用于若在对点云码流中的点云帧进行解码之前,复用指示信息所指示的头信息已经解码,则获取已解码的头信息,使用已解码的头信息对点云帧进行解码。
其中,上述第二解码单元,具体用于对点云码流中的点云帧所包含的头信息进行解码,得到已解码的头信息,使用已解码的头信息对点云帧进行解码。
其中,上述解码模块,包括:
第二确定单元,用于基于解码器配置记录信息所包含的头数量信息字段和头指示信息,确定头信息集合的复用状态;
第三解码单元,用于当复用状态指示点云码流中存在可复用的头信息时,从点云码流所包含的点云帧中获取复用指示信息,基于复用指示信息所指示的头信息对点云帧进行解码;
第四解码单元,用于当复用状态指示点云码流中不存在可复用的头信息时,基于点云帧所包含的头信息对点云帧进行解码。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例可以通过对点云数据进行编码,以得到包含复用指示信息的点云码流,这里的复用指示信息是基于头信息集合的复用状态所确定的,该头信息集合是在对点云数据进行编码的过程中所生成的。进一步,可以根据该复用状态生成针对点云码流的解码器配置记录信息,进而可以将得到的点云码流和解码器配置记录信息封装为沉浸媒体的媒体文件,其中,复用指示信息和解码器配置记录信息为点云码流提供解码所需的头信息集合以及头信息集合的复用状态。由此可见,本申请实施例可以通过复用指示信息和解码器配置记录信息来指示点云码流中是否存在可复用的头信息,从而可以避免重复解码相同的头信息,进而节省解码资源。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的3DoF的示意图;
图1b是本申请实施例提供的3DoF+的示意图;
图1c是本申请实施例提供的6DoF的示意图;
图2是本申请实施例提供的一种沉浸媒体从采集到被消费的流程示意图;
图3是本申请实施例提供的一种沉浸媒体系统的架构示意图;
图4是本申请实施例提供的一种沉浸媒体的数据处理方法的流程示意图;
图5是本申请实施例提供的一种沉浸媒体的数据处理方法的流程示意图;
图6是本申请实施例提供的一种沉浸媒体的数据处理方法的交互流程示意图;
图7是本申请实施例提供的一种沉浸媒体的数据处理装置的结构示意图;
图8是本申请实施例提供的一种沉浸媒体的数据处理装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的结构示意图;
图10是本申请实施例提供的一种数据处理系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面对本申请实施例涉及的一些技术术语进行介绍:
一、沉浸媒体:
沉浸媒体(也可称为沉浸式媒体)是指能够提供沉浸式的媒体内容,使沉浸于该媒体内容中的业务对象能够获得现实世界中视觉、听觉等感官体验的媒体文件。沉浸媒体按照业务对象在消费媒体内容时的自由度(Degree of Freedom,简称DoF),可以分为3DoF媒体、3DoF+媒体以及6DoF媒体。其中,点云媒体即为一种典型的6DoF媒体。在本申请实施例中,可以将进行沉浸式媒体(例如点云媒体)消费的用户(即观看者)统称为业务对象。
二、点云:
点云是空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集。点云中的每个点至少具有三维位置信息,根据应用场景的不同,还可能具有色彩、材质或其他信息。通常,点云中的每个点都具有相同数量的附加属性。
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,因而应用广泛,包括虚拟现实(Virtual Reality,VR)游戏、计算机辅助设计(Computer Aided Design,CAD)、地理信息系统(Geography Information System,GIS)、自动导航系统(AutonomousNavigation System,ANS)、数字文化遗产、自由视点广播、三维沉浸远程呈现、生物组织器官三维重建等。
点云的获取主要有以下途径:计算机生成、3D(3-Dimension,三维)激光扫描、3D摄影测量等。计算机可以生成虚拟三维物体及场景的点云。3D扫描可以获得静态现实世界三维物体或场景的点云,每秒可以获取百万级点云。3D摄像可以获得动态现实世界三维物体或场景的点云,每秒可以获取千万级点云。此外,在医学领域,由MRI(Magnetic ResonanceImaging,磁共振成像)、CT(Computed Tomography,电子计算机断层扫描)、电磁定位信息,可以获得生物组织器官的点云。这些技术降低了点云数据获取成本和时间周期,提高了数据的精度。点云数据获取方式的变革,使大量点云数据的获取成为可能。伴随着大规模的点云数据不断积累,点云数据的高效存储、传输、发布、共享和标准化,成为点云应用的关键。
三、轨道(Track):
轨道是媒体文件封装过程中的媒体数据集合,一个媒体文件可由一个或多个轨道组成,例如常见的:一个媒体文件可以包含一个视频轨道、一个音频轨道及一个字幕轨道。
四、样本(Sample):
样本是媒体文件封装过程中的封装单位,一个轨道由很多个样本组成,例如:一个视频轨道可以由很多个样本组成,一个样本通常为一个视频帧。在本申请实施例中,一个样本可以为一个点云帧。
五、DoF(自由度):
本申请中DoF是指业务对象在观看沉浸媒体(如点云媒体)时支持的运动并产生内容交互的自由度,可以包括3DoF(三自由度)、3DoF+和6DoF(六自由度)。其中,3DoF是指业务对象头部围绕x轴、y轴、z轴旋转的三种自由度。3DoF+是在三自由度的基础上,业务对象还拥有沿x轴、y轴、z轴有限运动的自由度。6DoF是在三自由度的基础上,业务对象还拥有沿x轴、y轴、z轴自由运动的自由度。
六、ISOBMFF(ISO Based Media File Format,基于ISO(International StandardOrganization,国际标准化组织)标准的媒体文件格式):是媒体文件的封装标准,较为典型的ISOBMFF文件即MP4(Moving Picture Experts Group 4,动态图像专家组4)文件。
七、DASH(Dynamic Adaptive Streaming over HTTP,基于HTTP的动态自适应流):是一种自适应比特率技术,使高质量流媒体可以通过传统的HTTP网络服务器在互联网传递。
八、MPD(Media Presentation Description,DASH中的媒体演示描述信令),用于描述媒体文件中的媒体片段信息。
九、表示层级(Representation):是指DASH中一个或多个媒体成分的组合,比如某种分辨率的视频文件可以看做一个Representation。
十、自适应集层级(Adaptation Sets):是指DASH中一个或多个视频流的集合,一个Adaptation Sets中可以包含多个Representation。
十一、媒体片段(Media Segment):符合一定的媒体格式、可播放的片段。播放时可能需要与其前面的0个或多个片段以及初始化片段(Initialization Segment)配合。
本申请实施例涉及沉浸媒体的数据处理技术,下面将对沉浸媒体的数据处理过程中的一些概念进行介绍,特别说明的是,本申请后续实施例中均以沉浸媒体为点云媒体为例进行说明。
请参见图1a,图1a是本申请实施例提供的3DoF的示意图。如图1a所示,3DoF是指消费沉浸媒体的业务对象在一个三维空间的中心点固定,业务对象头部沿着X轴、Y轴和Z轴旋转来观看媒体内容提供的画面。
请参见图1b,图1b是本申请实施例提供的3DoF+的示意图。如图1b所示,3DoF+是指当沉浸媒体提供的虚拟场景具有一定的深度信息,业务对象头部可以基于3DoF在一个有限的空间内移动来观看媒体内容提供的画面。
请参见图1c,图1c是本申请实施例提供的6DoF的示意图。如图1c所示,6DoF分为窗口6DoF、全方向6DoF和6DoF,其中,窗口6DoF是指业务对象在X轴、Y轴的旋转移动受限,以及在Z轴的平移受限;例如,业务对象不能够看到窗户框架外的景象,以及业务对象无法穿过窗户。全方向6DoF是指业务对象在X轴、Y轴和Z轴的旋转移动受限,例如,业务对象在受限的移动区域中不能自由的穿过三维的360度VR内容。6DoF是指业务对象在3DoF的基础上,可以沿着X轴、Y轴、Z轴自由平移,例如,业务对象可以在三维的360度VR内容中自由的走动。
请参见图2,图2是本申请实施例提供的一种沉浸媒体从采集到被消费的流程示意图。如图2所示,针对沉浸媒体的完整处理过程具体可以包括:视频采集,视频编码,视频文件封装,视频文件传输,视频文件解封装,视频解码和最终的视频呈现。
其中,视频采集用于将模拟视频转换为数字视频,并按数字视频文件的格式进行保存,也就是说,视频采集可将多个相机从不同角度采集到的视频信号(例如,点云数据)转换为二进制数字信息,其中,由视频信号转换为的二进制数字信息是一种二进制数据流,该二进制数字信息也可称为该视频信号的码流或者位流(Bitstream)。视频编码则是指通过压缩技术,将原始视频格式的文件转换为另一种视频格式文件。从视频信号的获取方式看,视频信号可以分为相机拍摄到的以及计算机生成的两种方式,由于统计特性的不同,其对应的压缩编码方式也可能有所区别,常用的压缩编码方式具体可以包括HEVC(HighEfficiency Video Coding,国际视频编码标准HEVC/H.265),VVC(Versatile VideoCoding,国际视频编码标准VVC/H.266),AVS(Audio Video Coding Standard,中国国家视频编码标准),AVS3(由AVS标准组推出的第三代视频编码标准)等。
在视频编码后,则需要对编码后的数据流(例如,点云码流)进行封装并传输给业务对象,视频文件封装是指按照封装格式(或容器,或文件容器),将已经编码压缩好的视频码流和音频码流按照一定的格式存放在一个文件中,常见的封装格式包括AVI格式(AudioVideo Interleaved,音频视频交错格式)或者ISOBMFF格式。在一个实施例中,将音频码流和视频码流按照如ISOBMFF的文件格式封装在文件容器中形成媒体文件(也可称为封装文件、视频文件),该媒体文件可由多个轨道组成,比如可以包含一个视频轨道、一个音频轨道以及一个字幕轨道。
内容制作设备执行上述编码过程和文件封装过程后,可以将媒体文件传输到内容消费设备上的客户端,客户端则可在进行解封装、解码等逆操作后,在客户端中进行最终视频内容的呈现。其中,媒体文件可基于各种传输协议发送到客户端,这里的传输协议可包括但不限于:DASH协议、HLS(HTTP Live Streaming,动态码率自适应传输)协议、SMTP(SmartMedia TransportProtocol,智能媒体传输协议)、TCP(Transmission Control Protocol,传输控制协议)等。
可以理解,客户端的文件解封装的过程与上述的文件封装过程是相逆的,客户端可按照封装时的文件格式要求对媒体文件进行解封装,得到音频码流和视频码流。客户端的解码过程与编码过程也是相逆的,例如,该客户端可对视频码流解码,还原出视频内容,且可对音频码流解码,还原出音频内容。
为便于理解,请一并参见图3,图3是本申请实施例提供的一种沉浸媒体系统的架构示意图。如图3所示,该沉浸媒体系统可以包括内容制作设备(例如,内容制作设备200A)和内容消费设备(例如,内容消费设备200B),内容制作设备可以是指点云媒体的提供者(例如点云媒体的内容制作者)所使用的计算机设备,该计算机设备可以是终端(如PC(Personal Computer,个人计算机)、智能移动设备(如智能手机)等)或服务器。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。内容消费设备可以是指点云媒体的使用者(例如点云媒体的观看者,即业务对象)所使用的计算机设备,该计算机设备可以是终端(如PC(Personal Computer,个人计算机)、智能移动设备(如智能手机)、VR设备(如VR头盔、VR眼镜等)、智能家电、车载终端、飞行器等),该计算机设备集成有客户端。其中,这里的客户端可以为具有显示文字、图像、音频以及视频等数据信息功能的客户端,包括但不限于多媒体客户端(例如,视频客户端)、社交类客户端(例如,即时通信客户端)、资讯类应用(例如,新闻客户端)、娱乐客户端(例如,游戏客户端)、购物客户端、车载客户端、浏览器等。其中,该客户端可以为独立的客户端,也可以为集成在某客户端(例如,社交客户端)中的嵌入式子客户端,在此不做限定。
可以理解的是,本申请涉及沉浸媒体的数据处理技术可以依托于云技术进行实现;例如,将云服务器作为内容制作设备。云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
点云媒体的数据处理过程包括在内容制作设备侧的数据处理过程及在内容消费设备侧的数据处理过程。
在内容制作设备侧的数据处理过程主要包括:(1)点云媒体的媒体内容的获取与制作过程;(2)点云媒体的编码及文件封装的过程。在内容消费设备侧的数据处理过程主要包括:(1)点云媒体的文件解封装及解码的过程;(2)点云媒体的渲染过程。另外,内容制作设备与内容消费设备之间涉及点云媒体的传输过程,该传输过程可以基于各种传输协议来进行,此处的传输协议可包括但不限于:DASH协议、HLS协议、SMTP协议、TCP协议等。
下面将结合图3,分别对点云媒体的数据处理过程中涉及的各个过程进行详细介绍。
一、在内容制作设备侧的数据处理过程:
(1)点云媒体的媒体内容的获取与制作过程。
1)点云媒体的媒体内容的获取过程。
点云媒体的媒体内容是通过捕获设备采集现实世界的声音-视觉场景获得的。在一种实现中,捕获设备可以是指设于内容制作设备中的硬件组件,例如捕获设备是指终端的麦克风、摄像头、传感器等。另一种实现中,该捕获设备也可以是与内容制作设备相连接的硬件装置,例如与服务器相连接的摄像头,用于为内容制作设备提供点云媒体的媒体内容的获取服务。该捕获设备可以包括但不限于:音频设备、摄像设备及传感设备。其中,音频设备可以包括音频传感器、麦克风等。摄像设备可以包括普通摄像头、立体摄像头、光场摄像头等。传感设备可以包括激光设备、雷达设备等。捕获设备的数量可以为多个,这些捕获设备被部署在现实空间中的一些特定位置以同时捕获该空间内不同角度的音频内容和视频内容,捕获的音频内容和视频内容在时间和空间上均保持同步。本申请实施例可以将由部署在特定位置的捕获设备所采集到的用于提供多自由度(如6DoF)观看体验的三维空间的媒体内容称作点云媒体。
例如,以获取点云媒体的视频内容为例进行说明,如图3所示,视觉场景20A(例如真实世界的视觉场景)可以由内容制作设备200A相连接的一组相机阵列捕获,或者,可以由与内容制作设备200A相连接的具有多个摄像头和传感器的摄像设备捕获。采集结果可以为源点云数据20B(即点云媒体的视频内容)。
2)点云媒体的媒体内容的制作过程。
应当理解,本申请实施例所涉及的点云媒体的媒体内容的制作过程可以理解为点云媒体的内容制作的过程,且这里的点云媒体的内容制作主要由部署在多个位置的相机或相机阵列拍摄得到的点云数据等形式的内容制作而成,比如,内容制作设备可以将点云媒体从三维的表示转换成二维的表示。这里的点云媒体可以包含几何信息、属性信息、占位图信息以及图集数据等,点云媒体在编码前一般需要进行特定处理,例如点云数据在编码前需要切割、映射等过程。
具体的,①将采集输入的点云媒体的三维表示数据(即上述点云数据)投影到二维平面,通常采用正交投影、透视投影、ERP投影(Equi-Rectangular Projection,等距柱状投影)方式,投影到二维平面的点云媒体通过几何组件、占位组件和属性组件的数据表示,其中,几何组件的数据提供点云媒体每个点在三维空间中的位置信息,属性组件的数据提供点云媒体每个点的额外属性(如颜色、纹理或材质信息),占位组件的数据指示其他组件中的数据是否与点云媒体关联;
②对点云媒体的二维表示的组件数据进行处理生成图块,根据几何组件数据中表示的点云媒体的位置,将点云媒体的二维表示所在的二维平面区域分割成多个不同大小的矩形区域,一个矩形区域为一个图块,图块包含将该矩形区域反投影到三维空间的必要信息;
③打包图块生成图集,将图块放入一个二维网格中,并保证各个图块中的有效部分是没有重叠的。一个点云媒体生成的图块可以打包成一个或多个图集;
④基于图集数据生成对应的几何数据、属性数据和占位数据,将图集数据、几何数据、属性数据、占位数据组合形成点云媒体在二维平面的最终表示。
其中,需要注意的是,在点云媒体的内容制作过程中,几何组件为必选,占位组件为条件必选,属性组件为可选。
此外,需要说明的是,由于采用捕获设备可以捕获到全景视频,这样的视频经内容制作设备处理并传输至内容消费设备进行相应的数据处理后,内容消费设备侧的业务对象需要通过执行一些特定动作(如头部旋转)来观看360度的视频信息,而执行非特定动作(如移动头部)并不能获得相应的视频变化,VR体验不佳,因此需要额外提供与全景视频相匹配的深度信息,来使业务对象获得更优的沉浸度和更佳的VR体验,这就涉及6DoF制作技术。当业务对象可以在模拟的场景中较自由地移动时,称为6DoF。采用6DoF制作技术进行点云媒体的视频内容的制作时,捕获设备一般会选用激光设备、雷达设备等,捕获空间中的点云数据。
(2)点云媒体的编码及文件封装的过程。
捕获到的音频内容可直接进行音频编码形成点云媒体的音频码流。捕获到的视频内容可进行视频编码,得到点云媒体的视频码流。此处需要说明的是,如果采用6DoF制作技术,在视频编码过程中需要采用特定的编码方式(如基于传统视频编码的点云压缩方式)进行编码。将音频码流和视频码流按照点云媒体的文件格式(如ISOBMFF)封装在文件容器中形成点云媒体的媒体文件资源,该媒体文件资源可以是媒体文件或媒体片段形成的点云媒体的媒体文件;并按照点云媒体的文件格式要求采用媒体呈现描述信息(即MPD)记录该点云媒体的媒体文件资源的元数据,此处的元数据是对与点云媒体的呈现有关的信息的总称,该元数据可包括对媒体内容的描述信息、对视窗的描述信息以及对媒体内容呈现相关的信令信息等等。可以理解,内容制作设备会存储经过数据处理过程之后形成的媒体呈现描述信息和媒体文件资源。
具体的,采集的音频会被编码成相应的音频码流,点云媒体的几何信息、属性信息以及占位图信息可以采用传统的视频编码方式,而点云媒体的图集数据可以采用熵编码方式。然后,按一定格式(如ISOBMFF、HNSS)将编码的媒体封装在文件容器中并结合描述媒体内容属性的元数据和视窗元数据,根据一个特定的媒体文件格式组成一个媒体文件或者组成一个初始化片段和媒体片段。
例如,如图3所示,内容制作设备200A对源点云数据20B中的一个或多个数据帧进行点云媒体编码,例如,采用基于几何模型的点云压缩(Geometry-based Point CloudCompression,G-PCC,其中,PCC即点云压缩),从而得到编码后的点云码流20E(即视频码流,例如G-PCC码流),包括几何码流(即对几何信息进行编码后得到的码流)以及属性码流(即对属性信息进行编码后得到的码流)。随后,内容制作设备200A可以根据特定的媒体文件格式(如ISOBMFF),将一个或多个编码后的码流封装成一个用于本地回放的媒体文件20F,或者,封装成一个用于流式传输的包含一个初始化片段和多个媒体片段的片段序列20Fs。此外,内容制作设备200A中的文件封装器也可以将相关元数据添加到媒体文件20F或片段序列20Fs中。进一步,内容制作设备200A可以采用某种传输机制(如DASH、SMT)将片段序列20Fs传输到内容消费设备200B,或者,将媒体文件20F传输到内容消费设备200B。在一些实施方式中,内容消费设备200B可以为一个播放器。
二、在内容消费设备侧的数据处理过程:
(3)点云媒体的文件解封装及解码的过程。
内容消费设备可以通过内容制作设备的推荐或按照内容消费设备侧的业务对象需求自适应动态从内容制作设备获得点云媒体的媒体文件资源和相应的媒体呈现描述信息,例如内容消费设备可根据业务对象的头部/眼睛的位置信息确定业务对象的观看方向和观看位置,再基于确定的观看方向和观看位置动态向内容制作设备请求获得相应的媒体文件资源。媒体文件资源和媒体呈现描述信息通过传输机制(如DASH、SMT)由内容制作设备传输给内容消费设备。内容消费设备侧的文件解封装的过程与内容制作设备侧的文件封装过程是相逆的,内容消费设备按照点云媒体的文件格式(例如,ISOBMFF)要求对媒体文件资源进行解封装,得到音频码流和视频码流。内容消费设备侧的解码过程与内容制作设备侧的编码过程是相逆的,内容消费设备对音频码流进行音频解码,还原出音频内容;内容消费设备对视频码流进行视频解码,还原出视频内容。
例如,如图3所示,内容制作设备200A中的文件封装器输出的媒体文件20F与内容消费设备200B中输入文件解封装器的媒体文件20F'是相同的。文件解封装器对媒体文件20F'或接收到的片段序列20F's进行文件解封装处理,并提取出编码后的点云码流20E',同时解析相应的元数据,随后可以对点云码流20E'进行点云媒体解码,得到解码后的视频信号20D',且可以从视频信号20D'生成点云数据(即还原出的视频内容)。其中,媒体文件20F和媒体文件20F'可以包括轨道格式定义,它可能包含对轨道中的样本所包含的基本流的约束。
(4)点云媒体的渲染过程。
内容消费设备根据媒体文件资源对应的媒体呈现描述信息中与渲染相关的元数据,对音频解码得到的音频内容及视频解码得到的视频内容进行渲染,渲染完成即实现了对该内容的播放输出。
沉浸媒体系统支持数据盒,数据盒是指包括元数据的数据块或对象,即数据盒中包含了相应媒体内容的元数据。在实际应用中,内容制作设备可通过数据盒来指导内容消费设备对点云媒体的媒体文件进行消费。点云媒体可以包括多个数据盒,例如包括ISOBMFF数据盒(ISO Base Media File Format Box,简称为ISOBMFF Box),其包含用于描述文件封装时的相应信息的元数据。
例如,如图3所示,内容消费设备200B可以基于当前的观看位置、观看方向或视窗,对上述生成的点云数据进行渲染,并显示在头戴式显示器或任何其他显示设备的屏幕上。其中,当前的视窗可以由各种类型的传感器确定,例如,这里的传感器可以包括头部检测传感器,可能还有位置检测传感器或者眼睛检测传感器。除了被内容消费设备200B用来获取解码后的点云数据的适当部分外,当前的观看位置或观看方向也可以用于解码优化。此外,在视窗相关的传输中,当前的观看位置和观看方向也会被传递给内容消费设备200B中的策略模块,该策略模块可以根据当前的观看位置和观看方向确定要接收的轨道。
上述可知,内容消费设备可以动态地从内容制作设备侧获取点云媒体对应的媒体文件资源,由于媒体文件资源是由内容制作设备对捕获到的音视频内容进行编码以及封装后所得到的,因此,内容消费设备接收到内容制作设备返回的媒体文件资源后,需要先对该媒体文件资源进行解封装,得到相应的音视频码流,随后再对该音视频码流进行解码,最终才能将解码后的音视频内容呈现给业务对象。这里的点云媒体可以包括但不限于VPCC(Video-based Point Cloud Compression,基于传统视频编码的点云压缩)点云媒体、GPCC(Geometry-based Point Cloud Compression,基于几何模型的点云压缩)点云媒体。
可以理解的是,点云序列是点云码流的最高层语法结构,点云序列由序列头信息(简称序列头)开始,后面跟着一个或多个点云帧,每个点云帧可以由几何头信息(简称几何头)、属性头信息(简称属性头)和一个或多个点云片数据组成。这里的点云片数据(slice)由几何片头、几何信息、属性片头和属性信息组成。极端情况下,假设每一个点云帧的几何头信息、属性头信息都存在差异,那么当点云帧的数量很多时,当前头信息的标识符的定义(界于0-31的整数,即表示最多只需要32个头信息)则不再适用,由此可见,不同点云帧的几何头信息或属性头信息有可能产生重复。基于此,为了避免内容消费设备在对点云帧进行解码时重复解码相同的头信息,本申请提供了一种点云媒体解码信息的指示方法,可以有效节省解码资源。具体来说,在获取到点云数据后,内容制作设备可以对该点云数据进行编码,从而得到包含复用指示信息的点云码流,这里的复用指示信息是基于头信息集合的复用状态所确定的,该头信息集合是在对点云数据进行编码的过程中所生成的。在本申请实施例中,头信息集合可以包括解码上述点云码流所需的所有头信息,例如一个序列头信息、一个或多个几何头信息以及一个或多个属性头信息,这里将不对头信息集合中的头信息的数量进行限定,头信息集合中的每个头信息均包含解码点云帧时所需的解码参数。进一步,在文件封装过程中,内容制作设备可以根据该复用状态生成针对点云码流的解码器配置记录信息,进而可以将得到的点云码流和解码器配置记录信息封装为沉浸媒体的媒体文件,其中,复用指示信息和解码器配置记录信息可以为点云码流提供解码所需的头信息集合以及该头信息集合的复用状态。可以理解,在本申请实施例中,头信息集合的复用状态可以指示哪些头信息可以被复用,因此后续内容消费设备可以基于解码器配置记录信息来选择相应的解码策略,这样,在头信息可复用的场景下,能够避免重复解码相关头信息带来的解码资源浪费。
应当理解,本申请实施例提供的方法可以应用于沉浸媒体系统的服务器端(即内容制作设备侧)、播放器端(即内容消费设备侧)以及中间节点(例如,SMT(Smart MediaTransport,智能媒体传输)接收实体、SMT发送实体)等环节。其中,内容制作设备生成包含复用指示信息的点云码流,并根据头信息集合的复用状态生成解码器配置记录信息,最终得到媒体文件的具体过程,以及内容消费设备基于解码器配置记录信息对点云码流进行解码的具体过程可以参见下述图4-图6所对应实施例的描述。
进一步地,请参见图4,图4是本申请实施例提供的一种沉浸媒体的数据处理方法的流程示意图。该方法可由沉浸媒体系统中的内容制作设备(例如,上述图3所对应实施例中的内容制作设备200A)来执行,比如,该内容制作设备可以为服务器,本申请实施例以服务器执行为例进行说明。该方法至少可以包括以下步骤S101-步骤S103:
步骤S101,对点云数据进行编码,得到包含复用指示信息的点云码流;
具体的,服务器可以通过捕获设备(例如,包含多个相机的相机阵列)获取现实世界三维物体或场景的点云数据,或者,服务器可以生成虚拟三维物体或场景的点云数据。这里的点云数据可以用于表征对应三维物体或场景的空间结构以及表面属性(例如色彩、材质等)。进一步,服务器可以对获取到的点云数据进行编码,从而得到包含复用指示信息的点云码流。在一些实施例中,在对点云数据进行编码之前,服务器需要对其进行特定处理,例如进行切割、映射等处理。可以理解,服务器可以采用特定的编码方式对点云数据进行编码,这里的编码方式例如可以为基于几何模型的点云压缩方式(即GPCC),或者还可以采用其他编码方式,本申请实施例对此不进行限定。
在本申请实施例中,复用指示信息是基于头信息集合的复用状态所确定的,头信息集合则是在对点云数据进行编码的过程中所生成的,其中,头信息集合可以包括解码点云码流所需的所有头信息,由于序列头信息是点云码流中层级最高的头信息,对整个点云码流生效,通常情况下一个点云码流中存在一个序列头信息,因此本申请主要考虑的是几何头信息和属性头信息的复用情况。可以理解,头信息集合中的每个几何头信息和每个属性头信息均可以对应于一种复用状态,例如包括可复用状态和不可复用状态,可复用状态表示当前头信息可以在解码过程中被多个点云帧重复使用,不可复用状态则表示当前头信息在解码过程至多会被一个点云帧使用。也就是说,在编码阶段,服务器可以根据头信息集合(包括几何头信息、属性头信息)在整体点云码流中的复用情况,指示头信息集合中是否存在可被复用的头信息以及这些可被复用的头信息的数量与具体参数信息,这在本申请实施例中可以通过添加复用指示信息来实现。
基于此,本申请实施例提供了两类方式来添加复用指示信息,包括在点云码流对应的序列头信息中添加复用指示信息,以及在点云码流包含的点云帧中添加复用指示信息,具体如下:
在第一种可选的实施方式中,复用指示信息用于添加至点云码流对应的序列头信息。其中,复用指示信息可以包括第一参数复用状态字段,这里的第一参数复用状态字段可用于指示头信息集合的复用状态,例如,可以将第一参数复用状态字段设置为不同的字段值来分别指示点云码流中的头信息是具备可复用状态还是不可复用状态,这种方式对几何头信息和属性头信息均适用。
例如,在一个实施例中,头信息集合可以包括几何头信息,相应的,第一参数复用状态字段可以包括第一几何头复用状态字段,这里的第一几何头复用状态字段可用于指示点云码流中的几何头信息的复用状态。例如,可选的,当第一几何头复用状态字段的字段值为第一状态值时(例如,取值为0),表示点云码流中存在可复用的几何头信息,也就是说,此时该点云码流中存在一个或多个可重复参考的几何头信息;可选的,当第一几何头复用状态字段的字段值为第二状态值时(例如,取值为1),表示点云码流中不存在可复用的几何头信息,也就是说,点云码流的每个点云帧中均包含独立的几何头信息。需要说明的是,本申请实施例将不对第一状态值和第二状态值的具体取值进行限定。
其中,可以理解,当第一几何头复用状态字段的字段值为第一状态值时,表示点云码流中的每个点云帧均不包含几何头信息,此时,上述复用指示信息还可以包括几何头数量字段和几何头指示信息。这里的几何头数量字段用于指示点云码流中可复用的几何头信息的数量,其中,可复用的几何头信息包括点云码流中所有互不相同的几何头信息。例如,该几何头数量字段的字段值为M,M为正整数。相应的,几何头指示信息则可以包括M个可复用的几何头信息,可以理解,这里的M个几何头信息互不相同。此时,具有第一状态值的第一几何头复用状态字段还可用于指示客户端在对点云码流中的每个点云帧进行解码时,分别参考M个可复用的几何头信息中的一个几何头信息。例如,假设当前有一个点云码流A,该点云码流A包括多个(例如100个)点云帧,例如,具体可以包括点云帧A1、点云帧A2、…、点云帧A100,若此时有5个可复用的几何头信息(即M=5),例如,几何头信息B1、几何头信息B2、…、几何头信息B5,则客户端在对点云帧A1进行解码时,可以参考这5个几何头信息中的一个几何头信息(例如,几何头信息B1),类似的,对其他点云帧进行解码时也可以参考几何头信息B1~几何头信息B5中的某一个几何头信息,这里不再进行赘述。
同理,可以理解,当第一几何头复用状态字段的字段值为第二状态值时,表示点云码流中的每个点云帧均包含一个几何头信息,此时,具有第二状态值的第一几何头复用状态字段还可用于指示客户端在对点云码流中的每个点云帧进行解码时,分别参考每个点云帧所包含的几何头信息。例如,仍以上述点云码流A为例,对于点云帧A1~点云帧A100,若不存在可复用的几何头信息(即每个点云帧均包含有自身的几何头信息),则客户端在对点云帧A1进行解码时,可以参考点云帧A1中包含的几何头信息,类似的,对其他点云帧进行解码时也可以参考各自携带的几何头信息。
上述可知,在编码过程中,服务器可以先区分每个几何头信息在点云码流中的复用状态,当识别到点云码流中存在具有可复用状态的几何头信息时,可以获取具有可复用状态的几何头信息的复用次数与点云帧总数的比例(可称为第一复用比例),若第一复用比例小于或等于第一阈值,则此时将不对第一几何头复用状态字段的字段值进行限定,也就是说,在这种情况下,既可以将第一几何头复用状态字段的字段值设置为第一状态值,也可以将第一几何头复用状态字段的字段值设置为第二状态值。例如,假设在100个点云帧中有98个点云帧使用不重复的几何头信息,只有2个点云帧使用同一个几何头信息,虽然此时服务器也会识别到当前点云码流中存在一个具有可复用状态的几何头信息,但是该几何头信息的复用比例(2/100)较小,因此没必要限定第一几何头复用状态字段的字段值必须为第一状态值。反之,若第一复用比例大于第一阈值,即几何头信息的复用比例较大的情况下,则可以将第一几何头复用状态字段的字段值设置为第一状态值。本申请实施例对第一阈值的大小不做限定。
当第一几何头复用状态字段取值为第一状态值时,表明当前点云码流中的所有点云帧均不再保留原有的几何头信息,而是将每个点云帧所参考的几何头信息都集合到一起,并进行去重处理,最终可以将去重处理后得到的互不相同的一个或多个几何头信息作为可复用的几何头信息,并放置在序列头信息中,相当于把所有点云帧所参考的几何头信息变为对整个点云码流而言唯一的一组几何头信息。例如,假设某个点云码流总计有10个可复用的几何头信息,那么这10个几何头信息就可以成为序列头信息中的一部分,这样即使有1000个点云帧,也不需要在每个点云帧中重复指示这10个几何头信息了。
可以理解,上述经过去重处理后所得到的一个或多个几何头信息可以均具有可复用状态,或者,也可以包括至少一个具有可复用状态的几何头信息,其余的几何头信息则可以是具有不可复用状态的,但这种情况下也仍然能达到不重复解码相同的几何头信息的目的,也就是说,即使一个几何头信息只被某一个点云帧使用了一次,在第一几何头复用状态字段取值为第一状态值的场景下,也可以称其为可复用的几何头信息。此外,即使所有的几何头信息均具有不可复用状态(即每个点云帧所参考的几何头信息均不相同),也可以通过将第一几何头复用状态字段的字段值设置为第二状态值的方式来指示相关信息(即将几何头信息放在对应的点云帧内),因此,本申请实施例提供的方法可以兼容几何头信息可复用的场景和几何头信息不可复用的场景。
类似的,在一个实施例中,头信息集合可以包括属性头信息,相应的,第一参数复用状态字段可以包括第一属性头复用状态字段,这里的第一属性头复用状态字段可用于指示点云码流中的属性头信息的复用状态。例如,可选的,当第一属性头复用状态字段的字段值为第三状态值时(例如,取值为0),表示点云码流中存在可复用的属性头信息,也就是说,此时该点云码流中存在一个或多个可重复参考的属性头信息;可选的,当第一属性头复用状态字段的字段值为第四状态值时(例如,取值为1),表示点云码流中不存在可复用的属性头信息,也就是说,点云码流的每个点云帧中均包含独立的属性头信息。需要说明的是,本申请实施例将不对第三状态值和第四状态值的具体取值进行限定。
其中,可以理解,当第一属性头复用状态字段的字段值为第三状态值时,表示点云码流中的每个点云帧均不包含属性头信息,此时,上述复用指示信息还可以包括属性头数量字段和属性头指示信息。这里的属性头数量字段用于指示点云码流中可复用的属性头信息的数量,其中,可复用的属性头信息包括点云码流中所有互不相同的属性头信息。例如,该属性头数量字段的字段值为N,N为正整数。相应的,属性头指示信息则可以包括N个可复用的属性头信息,可以理解,这里的N个属性头信息互不相同。此时,具有第三状态值的第一属性头复用状态字段还可用于指示客户端在对点云码流中的每个点云帧进行解码时,分别参考N个可复用的属性头信息中的一个或多个属性头信息。例如,仍以上述点云码流A为例,若点云码流A中存在8个可复用的属性头信息(即N=8),例如,属性头信息C1、属性头信息C2、…、属性头信息C8,则客户端在对点云帧A1进行解码时,可以参考这8个属性头信息中的一个或多个属性头信息(例如,属性头信息C1和属性头信息C2),类似的,对其他点云帧进行解码时也可以参考属性头信息C1~属性头信息C8中的一个或多个属性头信息,这里不再进行赘述。
同理,可以理解,当第一属性头复用状态字段的字段值为第四状态值时,表示点云码流中的每个点云帧均包含一个或多个属性头信息,这里将不对每个点云帧所包含的属性头信息的数量进行限定,此时,具有第四状态值的第一属性头复用状态字段还可用于指示客户端在对点云码流中的每个点云帧进行解码时,分别参考每个点云帧所包含的属性头信息。例如,仍以上述点云码流A为例,对于点云帧A1~点云帧A100,若不存在可复用的属性头信息(即每个点云帧均包含有自身的属性头信息),则客户端在对点云帧A1进行解码时,可以参考点云帧A1中包含的属性头信息,类似的,对其他点云帧进行解码时也可以参考各自携带的属性头信息。
上述可知,在编码过程中,服务器可以先区分每个属性头信息在点云码流中的复用状态,当识别到点云码流中存在具有可复用状态的属性头信息时,可以获取具有可复用状态的属性头信息的数量与属性头信息总数的比例(可称为第二复用比例),若第二复用比例小于或等于第二阈值,则此时将不对第一属性头复用状态字段的字段值进行限定,也就是说,在这种情况下,既可以将第一属性头复用状态字段的字段值设置为第三状态值,也可以将第一属性头复用状态字段的字段值设置为第四状态值。反之,若第二复用比例大于第二阈值,即属性头信息的复用比例较大的情况下,则可以将第一属性头复用状态字段的字段值设置为第三状态值。本申请实施例对第二阈值的大小不做限定。
当第一属性头复用状态字段取值为第三状态值时,表明当前点云码流中的所有点云帧均不再保留原有的属性头信息,而是将每个点云帧所参考的属性头信息都集合到一起,并进行去重处理,最终可以将去重处理后得到的互不相同的一个或多个属性头信息作为可复用的属性头信息,并放置在序列头信息中,相当于把所有点云帧所参考的属性头信息变为对整个点云码流而言唯一的一组属性头信息。可以理解,上述经过去重处理后所得到的一个或多个属性头信息可以均具有可复用状态,或者,也可以包括至少一个具有可复用状态的属性头信息,其余的属性头信息则可以是具有不可复用状态的,但这种情况下也仍然能达到不重复解码相同的属性头信息的目的,也就是说,即使一个属性头信息只被某一个点云帧使用了一次,在第一属性头复用状态字段取值为第三状态值的场景下,也可以称其为可复用的属性头信息。此外,即使所有的属性头信息均具有不可复用状态(即每个点云帧所参考的属性头信息均不相同),也可以通过将第一属性头复用状态字段的字段值设置为第四状态值的方式来指示相关信息(即将属性头信息放在对应的点云帧内),因此,本申请实施例提供的方法可以兼容属性头信息可复用的场景和属性头信息不可复用的场景。
可以理解,在实际编码过程中,当采用第一种实施方式时,服务器可以根据头信息集合的具体复用情况来为复用指示信息中的第一几何头复用状态字段和第一属性头复用状态字段分别设置相应的字段值。
为支持上述步骤,本申请实施例在系统层添加了若干描述性字段,以扩展AVSGPCC码流高层语法的形式举例,定义了相关的字段以支持点云解码信息的指示,下面结合相关的语法,对在AVS GPCC码流高层语法中扩展的相关字段进行详细说明。
其中,可以理解的是,本申请实施例可以通过点云媒体的序列头信息结构(例如,sequence_header)提供序列头信息。为便于理解,请参见表1,该表1用于指示本申请实施例提供的一种点云媒体的序列头信息结构的语法:
表1
/>
上述表1所示语法的语义如下:profile_id为档次标号字段,取值为8位无符号整数,用于表示位流(即点云码流)符合的档次。level_id为级别标号字段,取值为8位无符号整数,用于表示位流符合的级别。sequence_parameter_set_id提供一个SPS(Sequenceparameter set,序列参数集)识别符,供其它语法元素参考,这一识别符是一个界于0到31的整数。marker_bit为标记位,指该位的值应为‘1’。
bounding_box_offset_x_upper为包围盒(bounding box,包含整个点云帧的立方体)原点x坐标高位部分,取值为无符号整数,表示包围盒x坐标高于16位的位数。bounding_box_offset_x_lower为包围盒原点x坐标低位部分,取值为无符号整数,表示包围盒原点x坐标低16位。其中,包围盒原点x坐标即为:
bounding_box_offset_x=(bounding_box_offset_x_upper)<<16+bounding_box_offset_x_lower
bounding_box_offset_y_upper为包围盒原点y坐标高位部分,取值为无符号整数,表示包围盒y坐标高于16位的位数。bounding_box_offset_y_lower为包围盒原点y坐标低位部分,取值为无符号整数,表示包围盒原点y坐标低16位。其中,包围盒原点y坐标即为:
bounding_box_offset_y=(bounding_box_offset_y_upper)<<16+bounding_box_offset_y_lower
bounding_box_offset_z_upper为包围盒原点z坐标高位部分,取值为无符号整数,表示包围盒z坐标高于16位的位数。bounding_box_offset_z_lower包围盒原点z坐标低位部分,取值为无符号整数,表示包围盒原点z坐标低16位。其中,包围盒原点z坐标即为:
bounding_box_offset_z=(bounding_box_offset_z_upper)<<16+bounding_box_offset_z_lower
bounding_box_size_width_upper为包围盒宽度高位部分,取值为无符号整数,表示包围盒宽度高于16位的位数。bounding_box_size_width_lower为包围盒宽度低位部分,取值为无符号整数,表示包围盒宽度低16位。其中,包围盒宽度即为:
bounding_box_size_width=(bounding_box_size_width_upper)<<16+bounding_box_size_width_lower
bounding_box_size_height_upper为包围盒高度高位部分,取值为无符号整数,表示包围盒高度高于16位的位数。bounding_box_size_height_lower为包围盒高度低位部分,取值为无符号整数,表示包围盒高度低16位。其中,包围盒高度即为:
bounding_box_size_height=(bounding_box_size_height_upper)<<16+bounding_box_size_height_lower
bounding_box_size_depth_upper为包围盒深度高位部分,取值为无符号整数,表示包围盒深度高于16位的位数。bounding_box_size_depth_lower为包围盒深度低位部分,取值为无符号整数,表示包围盒深度低16位。其中,包围盒深度即为:
bounding_box_size_depth=(bounding_box_size_depth_upper)<<16+bounding_box_size_depth_lower
quant_step_lower为量化步长高位部分,取值为16位数,表示量化步长32位浮点数的高16位。quant_step_upper为量化步长低位部分,取值为16位数。
表示量化步长32位浮点数的低16位。其中,量化步长即为:
quant_step=(float)((quant_step_upper<<16)+quant_step_lower)
geomRemoveDuplicateFlag为几何移除重复点标志字段,为二值变量,其中,取值为‘1’表示几何编码前去除重复点,即几何位置相同的点;取值为‘0’表示不去除重复点。attribute_adapt_pred为属性自适应预测标志字段,为二值变量,取值为‘0’表示无自适应选择预测值方法;取值为‘1’表示允许从基于几何位置的预测值方法切换到基于属性值的预测值方法。attribute_qp为属性量化参数字段,取值为无符号整数,表示属性量化参数。
geometry_header_per_frame为第一几何头复用状态字段,取值为0(即第一状态值)时,表明当前点云码流中存在一个或多个可重复参考的几何头信息(也可称为几何头参数集合),且当前点云码流中的点云帧在解码时,参考其中的某一个几何头信息,点云帧内不再包含几何头信息。取值为1(即第二状态值)时,表明每个点云帧中均包含一个几何头信息,点云帧在解码时参考其帧内包含的几何头信息。
attribute_header_per_frame为第一属性头复用状态字段,取值为0(即第三状态值)时,表明当前点云码流中存在一个或多个可重复参考的属性头信息(也可称为属性头参数集合),且当前点云码流中的点云帧在解码时,参考其中的某一个或多个属性头信息,点云帧内不再包含属性头信息。取值为1(即第四状态值)时,表明每个点云帧中均包含一个或多个属性头信息,点云帧在解码时参考其帧内包含的属性头信息。
sh_num_geometry_headers为几何头数量字段,用于指示当前点云码流中可重复参考的几何头信息的个数。geometry_header用于指示一个几何头信息。其中,本申请实施例可以通过点云媒体的几何头信息结构(例如,geometry_header)提供几何头信息。为便于理解,请一并参见表2,该表2用于指示本申请实施例提供的一种点云媒体的几何头信息结构的语法:
表2
上述表2所示语法的语义如下:geometry_parameter_set_id提供一个几何参数识别符,供其它语法元素参考,这一识别符是一个界于0到31的整数。geometry_sequence_parameter_set_id确定一个SPS识别符供当前几何头信息使用,该识别符是一个界于0到31的整数,对同一点云下所有几何头信息该值保持一致。gps_lcu_node_size_log2_minus_one表示几何宏块的节点大小,取值为无符号整数,取值为‘0’表示关闭块结构编码;取值大于‘0’表示打开块结构编码,并且定义了宏块的几何节点大小,即gps_lcu_node_size_log2=gps_lcu_node_size_log2_minus_one+1。gps_implicit_geom_partition_flag为几何隐式划分标志字段,为二值变量,取值为‘0’表示关闭几何隐式划分;取值为‘1’表示打开几何隐式划分。gps_max_num_implicit_qtbt_before_ot表示在八叉树划分前最大四叉树/二叉树划分数量,取值为无符号整数,表示在几何隐式划分中,在八叉树划分之前,最大被允许的四叉树或者二叉树划分数量。gps_min_size_implicit_qtbt表示四叉树/二叉树划分的最小尺寸,取值为无符号整数,表示在几何隐式划分中,四叉树或者二叉树划分最小被允许的划分尺寸。gps_single_mode_flag为几何孤立点编码模式标志字段,为二值变量,取值为‘0’表示关闭几何孤立点编码模式;取值为‘1’表示打开几何孤立点编码模式。当几何隐式划分标志字段取值为‘1’时,gps_max_num_implicit_qtbt_before_ot和gps_min_size_implicit_qtbt需要根据根节点对数尺寸进行限制。gps_save_state_flag为几何编码状态存储标志字段,为二值变量,取值为‘0’表示不存储编码状态,即熵编码上下文和几何编码的哈希表信息;取值为‘1’表示存储编码状态。byte_alignment表示字节对齐。
请再次参见上述表1,sh_num_attribute_headers为属性头数量字段,用于指示当前点云码流中可重复参考的属性头信息的个数。attribute_header用于指示一个属性头信息。其中,本申请实施例可以通过点云媒体的属性头信息结构(例如,attribute_header)提供属性头信息。为便于理解,请一并参见表3,该表3用于指示本申请实施例提供的一种点云媒体的属性头信息结构的语法:
表3
/>
上述表3所示语法的语义如下:attribute_parameter_set_id提供一个属性参数识别符,供其它语法元素参考,这一识别符是一个界于0到31的整数。attribute_sequence_parameter_set_id确定一个SPS识别符供当前属性头信息使用,该识别符是一个界于0到31的整数,对同一点云下所有属性头信息该值保持一致。withColor为包含颜色属性标志字段,为二值变量,取值为‘1’表示点云包含颜色属性;取值为‘0’表示点云不包含颜色属性。withRef为包含反射率属性标志字段,为二值变量,取值为‘1’表示点云包含反射率属性;取值为‘0’表示点云不包含反射率属性。transform为属性变换算法标志字段,为二值变量,用于控制是否使用小波变换对属性编码,取值为‘1’时使用小波变换,取值为‘0’时使用预测方法对属性编码。attrTransformQpDelta为属性变换系数量化参数差值,为无符号整数,用于表示与属性残差量化参数的差值。attrTransformQp(属性变换系数量化参数)=attrQuantParam(属性量化参数)+attrTransformQpDelta。attrTransformNumPoints表示属性变换点数,为无符号整数,用于表示属性变换的点数,即使用attrTransformNumPoints点的小波变换。attrTransformNumPoints=0表示使用片中所有的点进行小波变换。QpOffsetDC表示亮度分量的DC(直流)系数的量化偏移。QpOffsetAC表示亮度分量的AC(交流)系数的量化偏移。chromaQpOffsetDC表示色度分量的DC系数的量化偏移。chromaQpOffsetAC表示色度分量的AC系数的量化偏移。maxNumOfNeighbours表示最大搜索的邻居点数,为无符号整数,用于控制在属性预测时邻居候选点的搜索范围及硬件缓存的点的数目。符合本部分的码流中maxNumOfNeighbours不应大于1024。cross_component_pred表示属性残差二次预测,为二值变量,取值为‘1’表示允许属性残差二次预测;取值为‘0’表示不允许属性残差二次预测。chromaQpOffsetCb表示色度通道Cb量化参数偏移量,有符号整数,用于控制Cb通道量化参数,取值范围为-16~16,如果当前属性头信息中不存在chromaQpOffsetCb,则chromaQpOffsetCb的值为0。即choramQpCb(即色度通道Cb量化参数)=Clip3(minQP,maxQP,attribute_qp+chromaQpOffsetCb)。注意亮度通道的量化参数lumaQp=attribute_qp,最小所支持的量化参数为minQP=0,最大所支持的量化参数为maxQP=63。chromaQpOffsetCr表示色度通道Cr量化参数偏移量,有符号整数,用于控制Cr通道量化参数,取值范围为-16~16,如果当前属性头信息中不存在chromaQpOffsetCr,则chromaQpOffsetCr的值为0。即choramQpCr=Clip3(minQP,maxQP,attribute_qp+chromaQpOffsetCr)。注意亮度通道的量化参数lumaQp=attribute_qp,最小所支持的量化参数为minQP=0,最大所支持的量化参数为maxQP=63。nearestPredParam1为最近邻点预测参数一,无符号整数,用于控制最近邻点预测的阈值。nearestPredParam2为最近邻点预测参数二,无符号整数,用于控制最近邻点预测的阈值,该阈值表示为attrQuantParam*nearestPredParam1+nearestPredParam1。axisBias为空间偏倚系数,无符号整数,用于控制属性预测值计算中在Z方向上的偏移量。outputBitDepth表示属性输出比特深度,无符号整数,用于控制属性输出比特深度。numOflevelOfDetail表示LoD(Level of Detail,模型精度等级)层数,无符号整数,用于控制在属性预测时划分的LOD的层数,符合本部分的码流中numOflevelOfDetail不应大于32。maxNumOfPredictNeighbours表示最大选取的用于预测的邻居点数,无符号整数,用于限制在属性预测时所选邻居点的点数,符合本部分的码流中maxNumOfPredictNeighbours不应大于16。intraLodFlag为LoD层内预测标志字段,为二值变量,用于控制是否开启层内的预测,取值为‘1’时开启层内预测,取值为‘0’时关闭层内预测。
其中,上述表1所示的序列头信息可以包含在点云码流中,例如可以在点云码流最前面出现一次,也有可能在整个点云码流中出现多次,以便采取随机访问的方式时从点云码流中间开始也可以正常解码,本申请实施例对序列头信息在点云码流中的位置不进行限定。上述可知,在序列头信息中添加geometry_header、attribute_header等信息后,就不需要在点云帧中再携带这些头信息了,这样在相关头信息可复用的场景下,对每个头信息解码一次即可,相当于对点云帧的结构进行了优化,从而可以节省解码所占用的资源。表1所示的序列头信息结构还可以支持进一步优化和拓展,本申请对此不进行限定。
在第二种可选的实施方式中,复用指示信息用于添加至点云码流所包含的点云帧。其中,点云码流可以包括多个点云帧,这多个点云帧可以包括目标点云帧,目标点云帧可以是多个点云帧中的任意一帧,则目标点云帧中的复用指示信息可以包括第二参数复用状态字段,这里的第二参数复用状态字段可用于指示解码目标点云帧所参考的头信息集合的复用状态,例如,可以将第二参数复用状态字段设置为不同的字段值来指示解码目标点云帧所使用的头信息是否可被复用,这种方式对几何头信息和属性头信息均适用。
例如,在第一个实施例中,上述多个点云帧还可以包括第一历史点云帧,第一历史点云帧的生成时间戳早于目标点云帧的生成时间戳,且第一历史点云帧为目标点云帧的上一帧。头信息集合可以包括几何头信息,相应的,第二参数复用状态字段可以包括第二几何头复用状态字段,这里的第二几何头复用状态字段可用于指示解码目标点云帧所参考的几何头信息的复用状态。例如,可选的,当第二几何头复用状态字段的字段值为第五状态值时(例如,取值为1),表示解码目标点云帧时可以重复使用第一历史点云帧所参考的几何头信息。可选的,当第二几何头复用状态字段的字段值为第六状态值时(例如,取值为0),表示目标点云帧中包含几何头信息,此时,具有第六状态值的第二几何头复用状态字段还可用于指示客户端在对目标点云帧进行解码时,参考目标点云帧所包含的几何头信息。
为支持上述步骤,这里仍以扩展AVS GPCC码流高层语法的形式举例。可以理解的是,本申请实施例可以通过点云媒体的几何头信息结构(例如,geometry_header)提供几何头信息相关的复用指示信息。为便于理解,请参见表4,该表4用于指示本申请实施例提供的一种点云媒体的几何头信息结构的语法:
表4
上述表4所示语法的语义如下:reuse_pre_geo_header_flag为第二几何头复用状态字段,取值为1(即第五状态值)表示当前点云帧解码所使用的几何头信息与前一帧使用的几何头信息相同,取值为0(即第六状态值)表示当前点云帧解码使用独立的几何头信息,此时可以进一步指示相关参数字段,例如geometry_parameter_set_id、gps_lcu_node_size_log2_minus_one等,这些字段的具体语义可以参见上述表2所示语法的语义,这里不再进行赘述。表4所示的几何头信息结构还可以支持进一步优化和拓展,本申请对此不进行限定。
又例如,在第二个实施例中,上述多个点云帧还可以包括第二历史点云帧,第二历史点云帧的生成时间戳早于目标点云帧的生成时间戳,也就是说,第二历史点云帧可以为目标点云帧之前的任意一帧,本申请实施例对此不进行限定。头信息集合可以包括几何头信息,相应的,第二参数复用状态字段可以包括第二几何头复用状态字段,这里的第二几何头复用状态字段可用于指示解码目标点云帧所参考的几何头信息的复用状态。例如,可选的,当第二几何头复用状态字段的字段值为第五状态值时(例如,取值为1),目标点云帧中的复用指示信息还可以包括复用几何头标识字段,该复用几何头标识字段用于指示解码目标点云帧时使用的几何头信息的标识符。此时,具有第五状态值的第二几何头复用状态字段可用于指示解码目标点云帧时参考该复用几何头标识字段所指示的几何头信息,且该复用几何头标识字段所指示的几何头信息为第二历史点云帧所参考的几何头信息。可选的,当第二几何头复用状态字段的字段值为第六状态值时(例如,取值为0),表示目标点云帧中包含几何头信息,此时,具有第六状态值的第二几何头复用状态字段还可用于指示客户端在对目标点云帧进行解码时,参考目标点云帧所包含的几何头信息。
为支持上述步骤,这里仍以扩展AVS GPCC码流高层语法的形式举例。可以理解的是,本申请实施例可以通过点云媒体的几何头信息结构(例如,geometry_header)提供几何头信息相关的复用指示信息。为便于理解,请参见表5,该表5用于指示本申请实施例提供的一种点云媒体的几何头信息结构的语法:
表5
上述表5所示语法的语义如下:reused_geo_parameter_set_flag为第二几何头复用状态字段,取值为1(即第五状态值)表示当前点云帧解码所使用的几何头信息重复使用当前点云帧之前的某一帧的几何头信息,此时可以进一步指示reused_geometry_parameter_set_id,这里的reused_geometry_parameter_set_id为复用几何头标识字段,用于指示当前点云帧解码时使用的几何头信息的标识符。reused_geo_parameter_set_flag取值为0(即第六状态值)表示当前点云帧解码使用独立的几何头信息,此时可以进一步指示相关参数字段,例如geometry_parameter_set_id、gps_lcu_node_size_log2_minus_one等,这些字段的具体语义可以参见上述表2所示语法的语义,这里不再进行赘述。表5所示的几何头信息结构还可以支持进一步优化和拓展,本申请对此不进行限定。
对比上述举例的两个实施例可知,在第一个实施例中,当第二几何头复用状态字段取值为第五状态值时,表示目标点云帧解码所使用的几何头信息默认与前一帧(即第一历史点云帧)使用的几何头信息相同,因此可以不使用相应的标识字段来指示;当第二几何头复用状态字段取值为第六状态值时,表示目标点云帧解码使用独立的几何头信息。在第二个实施例中,当第二几何头复用状态字段取值为第五状态值时,目标点云帧解码所使用的几何头信息为目标点云帧之前的某一帧(即第二历史点云帧)的几何头信息;当第二几何头复用状态字段取值为第六状态值时,表示目标点云帧解码使用独立的几何头信息。可以看到,第二个实施例描述的方式可以兼容第一个实施例描述的方式,即第二历史点云帧可以包括第一历史点云帧,两种方式都相当于对几何头信息的结构进行了优化,具体采用哪种方式可以根据实际情况来选择,这里不进行限定。
需要说明的是,本申请实施例将不对五状态值和第六状态值的具体取值进行限定。
类似的,在上述第一个实施例中,多个点云帧还可以包括第三历史点云帧,第三历史点云帧的生成时间戳早于目标点云帧的生成时间戳,且第三历史点云帧为目标点云帧的上一帧,可以理解,这里的第三历史点云帧与上述第一历史点云帧为同一个点云帧。头信息集合可以包括属性头信息,相应的,第二参数复用状态字段可以包括第二属性头复用状态字段,这里的第二属性头复用状态字段可用于指示解码目标点云帧所参考的属性头信息的复用状态。例如,当第二属性头复用状态字段的字段值为第七状态值时(例如,取值为1),表示解码目标点云帧时可以重复使用第三历史点云帧所参考的属性头信息。可选的,当第二属性头复用状态字段的字段值为第八状态值时(例如,取值为0),表示目标点云帧中包含属性头信息,此时,具有第八状态值的第二属性头复用状态字段还可用于指示客户端在对目标点云帧进行解码时,参考目标点云帧所包含的属性头信息。
为支持上述步骤,这里仍以扩展AVS GPCC码流高层语法的形式举例。可以理解的是,本申请实施例可以通过点云媒体的属性头信息结构(例如,attribute_header)提供属性头信息相关的复用指示信息。为便于理解,请参见表6,该表6用于指示本申请实施例提供的一种点云媒体的属性头信息结构的语法:
表6
/>
上述表6所示语法的语义如下:reuse_pre_attr_header_flag为第二属性头复用状态字段,取值为1(第七状态值)表示当前点云帧解码所使用的属性头信息与前一帧使用的属性头信息相同,取值为0(即第八状态值)表示当前点云帧解码使用独立的属性头信息,此时可以进一步指示相关参数字段,例如attribute_parameter_set_id、withColor等,这些字段的具体语义可以参见上述表3所示语法的语义,这里不再进行赘述。表6所示的属性头信息结构还可以支持进一步优化和拓展,本申请对此不进行限定。
类似的,在上述第二个实施例中,多个点云帧还可以包括第四历史点云帧,第四历史点云帧的生成时间戳早于目标点云帧的生成时间戳,也就是说,第四历史点云帧可以为目标点云帧之前的任意一帧,这里的第四历史点云帧与上述第二历史点云帧可以为同一个点云帧,也可以是不同的点云帧,本申请实施例对此不进行限定。头信息集合可以包括属性头信息,相应的,第二参数复用状态字段可以包括第二属性头复用状态字段,这里的第二属性头复用状态字段用于指示解码目标点云帧所参考的属性头信息的复用状态。例如,可选的,当第二属性头复用状态字段的字段值为第七状态值时(例如,取值为1),目标点云帧中的复用指示信息还可以包括复用属性头标识字段,该复用属性头标识字段用于指示解码目标点云帧时使用的属性头信息的标识符。此时,具有第七状态值的第二属性头复用状态字段可用于指示解码目标点云帧时参考该复用属性头标识字段所指示的属性头信息,且该复用属性头标识字段所指示的属性头信息为第四历史点云帧所参考的属性头信息。可选的,当第二属性头复用状态字段的字段值为第八状态值时(例如,取值为0),表示目标点云帧中包含属性头信息,此时,具有第八状态值的第二属性头复用状态字段还可用于指示客户端在对目标点云帧进行解码时,参考目标点云帧所包含的属性头信息。
为支持上述步骤,这里仍以扩展AVS GPCC码流高层语法的形式举例。可以理解的是,本申请实施例可以通过点云媒体的属性头信息结构(例如,attribute_header)提供属性头信息相关的复用指示信息。为便于理解,请参见表7,该表7用于指示本申请实施例提供的一种点云媒体的属性头信息结构的语法:
表7
上述表7所示语法的语义如下:reused_attr_parameter_set_flag为第二属性头复用状态字段,取值为1(即第七状态值)表示当前点云帧解码所使用的属性头信息重复使用当前点云帧之前的某一帧的属性头信息,此时可以进一步指示reused_attribute_parameter_set_id,这里的reused_attribute_parameter_set_id为复用属性头标识字段,用于指示当前点云帧解码时使用的属性头信息的标识符。reused_attr_parameter_set_flag取值为0(即第八状态值)表示当前点云帧解码使用独立的属性头信息,此时可以进一步指示相关参数字段,例如attribute_parameter_set_id、withColor等,这些字段的具体语义可以参见上述表3所示语法的语义,这里不再进行赘述。表7所示的属性头信息结构还可以支持进一步优化和拓展,本申请对此不进行限定。
对比上述举例的两个实施例可知,在第一个实施例中,当第二属性头复用状态字段取值为第七状态值时,表示目标点云帧解码所使用的属性头信息默认与前一帧(即第三历史点云帧)使用的属性头信息相同,因此可以不使用相应的标识字段来指示;当第二属性头复用状态字段取值为第八状态值时,表示目标点云帧解码使用独立的属性头信息。在第二个实施例中,当第二属性头复用状态字段取值为第七状态值时,目标点云帧解码所使用的属性头信息为目标点云帧之前的某一帧(即第四历史点云帧)的属性头信息;当第二属性头复用状态字段取值为第八状态值时,表示目标点云帧解码使用独立的属性头信息。可以看到,第二个实施例描述的方式可以兼容第一个实施例描述的方式,即第四历史点云帧可以包括第三历史点云帧,两种方式都相当于对属性头信息的结构进行了优化,具体采用哪种方式可以根据实际情况来选择,这里不进行限定。
需要说明的是,本申请实施例将不对七状态值和第八状态值的具体取值进行限定。
可以理解,在实际编码过程中,当采用第二种实施方式时,服务器可以根据头信息集合的具体复用情况来为复用指示信息中的第二几何头复用状态字段和第二属性头复用状态字段分别设置相应的字段值。
与上述第一种实施方式对比可知,在第一种实施方式中,当点云码流中存在可复用的头信息(例如几何头信息或者属性头信息)时,在点云帧中可以不再保留相应头信息的结构,而是将其添加在序列头信息中;而当点云码流中不存在可复用的头信息时,在点云帧中可以保留相应头信息的结构。在第二种实施方式中,无论是否存在可复用的头信息,均可以保留每一个点云帧内头信息的结构,但在存在可复用的头信息的情况下,会对相应的头信息进行结构优化,用于指示重复使用的头信息,以避免重复解码。在实际应用中可以选择上述列举的任意一种方式来添加复用指示信息,本申请实施例对此不进行限定。
可以理解,对于一个点云码流,可以同时存在可复用的几何头信息和可复用的属性头信息,也可以既不存在可复用的几何头信息也不存在可复用的属性头信息,或者,可选的,还可以只存在可复用的几何头信息,或者,只存在可复用的属性头信息,本申请实施例对此不进行限定。
需要说明的是,除了本申请实施例举例说明的几种实施方式外,还可以通过其他方式来实现类似效果,以便区分头信息的可复用性,这里不再一一列举。
步骤S102,根据复用状态生成针对点云码流的解码器配置记录信息;
服务器在对上述步骤S101得到的点云码流进行文件封装时,可以根据头信息集合的复用情况,添加解码器配置相关的元数据信息,该元数据信息可以称为解码器配置记录信息,定义了点云内容解码器(在客户端中)所需要的配置信息,可支持该解码器的初始化。具体的,服务器可以基于头信息集合的复用状态确定头信息数量和头指示信息,从而生成包含头信息数量字段和头指示信息的解码器配置记录信息。其中,头信息数量字段用于指示解码点云码流所参考的头信息(包括序列头信息、几何头信息、属性头信息)的数量,例如,该头信息数量字段的字段值为K,K为正整数,可以理解,这里的K个头信息互不相同,可以包括头信息集合中可复用的头信息,此处对K的取值不做限定。相应的,头指示信息则可以包括K个头基础信息,每个头基础信息对应于一个头信息。
在一个实施例中,每个头基础信息中均可以包含头信息类型字段、头信息标识字段、头信息长度字段以及头信息描述字段,或者其他拓展字段,这里不进行一一列举。为便于理解,这里以K个头信息中的第i个头信息为例进行说明,其中,i为小于或者等于K的正整数。
可以理解,在第i个头信息对应的头基础信息中,头信息类型字段可用于指示第i个头信息的类型。其中,头信息类型字段的不同取值可以指示不同的头信息类型。例如,可选的,当头信息类型字段的字段值为第一类型字段值时(例如,取值为0),表示第i个头信息为序列头信息,可以理解,由于序列头信息对所有点云帧均生效,因此可以将其理解为可复用的头信息;可选的,当头信息类型字段的字段值为第二类型字段值时(例如,取值为1),表示第i个头信息为几何头信息;当头信息类型字段的字段值为第三类型字段值时(例如,取值为2),表示第i个头信息为属性头信息。本申请实施例对第一类型字段值、第二类型字段值、第三类型字段值的取值均不进行限定。此外,头信息标识字段可用于指示第i个头信息的标识符,其中,每个头信息的标识符是唯一的。头信息长度字段可用于指示第i个头信息的长度,本申请实施例将不对第i个头信息的长度进行限定。头信息描述字段可用于指示第i个头信息,可以理解,这里对第i个头信息的具体类型和结构均不做限定,因此后续可以按照头信息长度字段所指示的长度(例如,20个字节)来解析相应的头信息。
可以理解,文件封装的过程,就是构造多个数据盒的过程,这些数据盒多种多样,本申请实施例中的解码器配置记录信息可以作为元数据信息添加至某个数据盒中,用来描述媒体文件的头信息,且这个媒体文件可以包括一个或多个轨道,本申请实施例对此不做限定。一般情况下,一个媒体文件可以包含一个解码器配置记录信息,比如当点云媒体的几何数据和属性数据分别封装在不同的轨道时,解码器配置记录信息可以放在几何数据所在的轨道中;或者,可选的,一个轨道可以对应一个解码器配置记录信息,比如,可以将序列头和几何头相关的解码器配置记录信息放在几何数据所在的轨道中,将属性头相关的解码器配置记录信息放在属性数据所在的轨道中,本申请实施例对此不进行限定。
可以理解,本申请实施例提供的解码器配置记录信息可以适用于上述步骤S101所列举的几种生成复用指示信息的方式,同时也可以适用于头信息可复用的场景和头信息不可复用的场景。例如,当点云码流中不存在可复用的头信息时,解码器配置记录信息至少可以包括一个头基础信息,即序列头信息对应的头基础信息。又例如,当点云码流中存在可复用的几何头信息/属性头信息时,解码器配置记录信息可以包括这些可复用的几何头信息/属性头信息对应的头基础信息以及序列头信息对应的头基础信息,这样,由于解码器配置记录信息指示了可复用的头信息相关的数据,当解码器配置记录信息在轨道入口出现一次后,相关的样本(即点云帧)中就可以不再携带头信息,解码器也就只需要对这些头信息解码一次即可,而不需要重复解码,因此可以节省解码资源。
为支持上述步骤,这里以扩展ISOBMFF数据盒的形式举例,以描述本申请实施例在文件封装层面的字段扩展。可以理解的是,本申请实施例可以通过点云解码器配置记录结构(例如,GPCCDecoderConfigurationRecord)提供解码器配置记录信息。为便于理解,请参见表8,该表8用于指示本申请实施例提供的一种点云解码器配置记录结构的语法:
表8
上述表8所示语法的语义如下:configurationVersion用于指示解码器配置记录信息的版本,若该字段取值解码器无法识别,则解码器不应解码对应点云内容。num_parameter_headers为头信息数量字段,用于指示当前轨道解码所需的序列头信息、几何头信息或属性头信息的总数。header_type为头信息类型字段,用于指示头信息的类型,该字段取值为0(即第一类型字段值)表示当前头信息为序列头信息;取值为1(即第二类型字段值)表示当前头信息为几何头信息;取值为2(即第三类型字段值)表示当前头信息为属性头信息。header_id为头信息标识字段,用于指示当前头信息的标识符。header_length为头信息长度字段,用于指示当前头信息的长度。header为头信息描述字段,用于指示具体的头信息相关字段,该字段的解析应遵循相应编码标准中的头信息的定义,例如,当头信息为序列头信息时,header的语法可以参见上述表1所示的sequence_header的语法;当头信息为几何头信息时,header的语法可以参见上述表2、表4或表5所示的geometry_header的语法;当头信息为属性头信息时,header的语法可以参见表3、表6或表7所示的attribute_header的语法。表8所示的点云解码器配置记录结构还可以支持进一步优化和拓展,本申请对此不进行限定。
此外,为了能够更细致地指示点云帧与可复用的头信息之间的对应关系,以便客户端在合适的时间点解码相应的头信息,本申请实施例提供了两种指示方式,包括直接在解码器配置记录信息中指示点云帧与可复用的头信息之间的对应关系,以及通过划分参数集合索引样本群组的方式来指示点云帧与可复用的头信息之间的对应关系,具体如下:
可选的,在第一种实施方式中,可以通过指示头信息对应的点云帧索引号范围来指示点云帧与头信息之间的对应关系。例如,每个头基础信息还可以包括最小点云帧索引字段和最大点云帧索引字段。例如,仍以第i个头信息为例进行说明,在第i个头信息对应的头基础信息中,最小样本索引字段可用于指示参考第i个头信息的点云帧索引号范围的最小值,最大样本索引字段可用于指示参考第i个头信息的点云帧索引号范围的最大值。可以理解,处于该点云帧索引号范围内的点云帧在解码时均可参考第i个头信息,且处于点云帧索引号范围内的点云帧属于点云码流。
可以理解,每个点云帧(样本)对应一个唯一的点云帧索引号(例如采用1、2、3等数字表示),处于点云帧索引号范围内的点云帧的数量可以为一个或多个,也就是说,最大点云帧索引字段的字段值大于或者等于最小点云帧索引字段的字段值。其中,当点云帧索引号范围内的点云帧的数量为多个时,这多个点云帧是点云帧索引号连续的点云帧。
例如,仍以上述点云码流A为例,对于点云帧A1~点云帧A100,当点云帧A1(其点云帧索引号为1)~点云帧A50(其点云帧索引号为50)均参考几何头信息B1时,相应的,在几何头信息B1对应的头基础信息中,其最小点云帧索引字段取值为1,最大点云帧索引字段取值为50。
为支持上述步骤,仍以GPCCDecoderConfigurationRecord为例进行说明。为便于理解,请参见表9,该表9用于指示本申请实施例提供的一种点云解码器配置记录结构的语法:
表9
/>
上述表9所示语法的语义如下:sample_index_min为最小点云帧索引字段,用于指示参考当前头信息的样本索引号范围(即点云帧索引号范围)的最小值。sample_index_max为最大点云帧索引字段,用于指示参考该头信息的样本索引号范围的最大值。其他字段的语义可以参考上述表8所对应的相关描述,这里不再进行赘述。
可选的,在第二种实施方式中,可以通过划分为样本群组(SampleGroup)来指示样本群组中的点云帧在解码时所参考的头信息。例如,在进行文件封装时,服务器可以将点云码流中的点云帧划分为一个或多个参数集合索引样本群组,并为每个参数集合索引样本群组添加相应的参考头信息标识字段,这里的参考头信息标识字段可以用于指示当前参数集合索引样本群组中的样本(即点云帧)在解码时所参考的头信息的标识符,且每个头信息的标识符是唯一的,也就是说,在对同一个参数集合索引样本群组中的点云帧进行解码时,均参考相同的头信息,该头信息可以用参考头信息标识字段来指示。
可以理解,具有相同特性的点云帧可以属于同一个样本群组,把点云帧通过样本群组的方式组织起来,相当于定义了一种类型的样本群组。基于此,在本申请实施例中,可以将参考同一个头信息的点云帧划分到同一个参数集合索引样本群组,这样,在这个参数集合索引样本群组中的所有点云帧都需要参考其参考头信息标识字段所指示的头信息来进行相应的解码。
例如,仍以上述点云码流A为例,对于点云帧A1~点云帧A100,当点云帧A1、点云帧A3、点云帧A7、点云帧A10均参考属性头信息C2时,相应的,点云帧A1、点云帧A3、点云帧A7以及点云帧A10可以归类为一个参数集合索引样本群组X,该参数集合索引样本群组X对应的参考头信息标识字段取值为属性头信息C2的标识符。
为支持上述步骤,这里以扩展ISOBMFF数据盒的形式举例,以描述本申请实施例在文件封装层面的字段扩展。可以理解的是,本申请实施例可以通过扩展样本群组入口(例如,SampleGroupEntry)定义参数集合索引样本群组。为便于理解,请参见表10,该表10用于指示本申请实施例提供的一种参数集合索引样本群组结构的语法:
表10
上述表10所示语法的语义如下:header_id为参考头信息标识字段,用于指示此参数集合索引样本群组中的样本在解码时所参考的头信息的标识符。表10所示的参数集合索引样本群组结构还可以支持进一步优化和拓展,本申请对此不进行限定。
可以理解的是,对于一个点云码流,可以划分一个或多个参数集合索引样本群组来对应到不同的几何头信息,同理,也可以划分一个或多个参数集合索引样本群组对应到不同的属性头信息,两边划分出的参数集合索引样本群组可能是相同的,也可能是不相同的,本申请实施例对此不进行限定。
可以理解,即使不采用上述举例说明的两种方式来指示点云帧与头信息之间的对应关系,实际上一个点云帧中也可以包含有对应到某一个头信息的信息(即点云码流本身可以包含有这些对应关系),这种情况下,如果不划分参数集合索引样本群组,其实客户端上的解码器也可以先把所有的头信息全部解析出来,然后在解析每一个点云帧的码流层面的信息时,也能够找到对应头信息中的参数来进行具体的解码。但是,划分参数集合索引样本群组的好处是,假如一个点云码流中有10个可复用的头信息,那么一开始可以不需要将这10个头信息全部解析出来,而只需要先解析当前所需的头信息即可,例如,假设解码前20个点云帧的时候,这20个点云帧均对应于头信息D1,此时只需要先解析该头信息D1,其余还未用到的头信息(例如,头信息D2、头信息D3等)则可以暂时不去解析。也就是说,通过划分参数集合索引样本群组,能够更加精细地告知解码器当前解码所需的头信息,以便解码器在合适的时间点快速解码相应的参数。
步骤S103,将点云码流和解码器配置记录信息封装为沉浸媒体的媒体文件。
由上述步骤S102可知,可选的,当点云码流中存在可复用的头信息时,服务器可以基于点云码流中的点云帧与可复用的头信息之间的对应关系,对点云码流中的点云帧进行分组,从而得到一个或多个参数集合索引样本群组。这里的每个参数集合索引样本群组均对应一个参考头信息标识字段,参考头信息标识字段可用于指示解码一个参数集合索引样本群组中的点云帧时所参考的头信息的标识符。此时,解码器配置记录信息中的头信息数量字段的字段值大于1,同时包含有多个头基础信息,多个头基础信息可包括序列头信息对应的头基础信息以及其他类型的头信息(几何头信息和/或属性头信息)对应的头基础信息,进一步,可以将一个或多个参数集合索引样本群组和解码器配置记录信息封装为沉浸媒体的媒体文件。
可选的,当点云码流中存在可复用的头信息时,服务器可以基于点云码流中的点云帧与可复用的头信息之间的对应关系,将轨道中的不同点云帧(样本)对应到相应的头信息,这里可以不对点云帧进行分组,最终同样可以将点云帧和解码器配置记录信息封装为沉浸媒体的媒体文件。
可选的,当点云码流中不存在可复用的头信息时,每个点云帧均包含自身的几何头信息和属性头信息,此时解码器配置记录信息中的头信息数量字段的字段值为1,同时包含有一个头基础信息,该头基础信息为序列头信息对应的头基础信息,因此,服务器可以将包含头信息的多个点云帧和解码器配置记录信息封装为沉浸媒体的媒体文件。
在本申请实施例中,服务器可以按照某种封装格式(例如AVI、ISOBMFF等),将点云码流封装为相应的媒体文件。可以理解,服务器可以将点云码流和解码器配置记录信息封装到一个或多个轨道,这里不进行限定。
可以理解,复用指示信息和解码器配置记录信息可以为点云码流提供解码所需的头信息集合以及头信息集合的复用状态。
进一步,在得到沉浸媒体的媒体文件后,服务器可以将该媒体文件传输至客户端。例如,在流媒体场景中,服务器可以对媒体文件进行切片,以得到适应于流媒体传输的初始化片段和媒体片段,其中,初始化片段可以包含解码器配置记录信息。初始化片段的数量通常为一个,媒体片段的数量为一个或多个,这里将不对媒体片段的数量进行限定。最终,可以通过流化传输方式(例如,可基于DASH、SMT等协议)将初始化片段和媒体片段传输至客户端,后续客户端也可以通过流化传输方式拉取业务对象需要观看的片段。
可以理解,在流媒体传输中,初始化片段要包含客户端去初始化它的解码器所需要的一些信息,因此可以将解码器配置记录信息放置在初始化片段中。例如对于DASH协议,本申请实施例指示了一种传输层的约束,即DASH约束扩展,每个DASH初始化片段应包含一个解码器配置记录信息(例如上述表8或表9所示的GPCCDecoderConfigurationRecord),以支持初始化片段的解码和解码器的初始化。
又例如,在本地播放场景中,服务器不需要对媒体文件进行切片,而是可以将整个媒体文件直接发送至客户端。
上述可知,在码流层面,通过区分头信息的可复用性,后续可以使客户端的解码器根据实际复用情况来选择解码策略,在头信息可复用的场景下,能够避免重复解码相关参数带来的资源浪费。在文件封装层面,可以兼容头信息可复用和头信息不可复用这两种情况,在头信息能够复用的场景,通过引用头信息的标识符,可以更为细致地指示点云帧和头信息之间的对应关系,从而使得客户端能够在合适的时间点解码相应的头信息,同时可以提升解码效率。也就是说,本申请实施例可以通过复用指示信息和解码器配置记录信息来指示点云码流中是否存在可复用的头信息,从而可以避免重复解码相同的头信息,进而节省解码资源。
进一步地,请参见图5,图5是本申请实施例提供的一种沉浸媒体的数据处理方法的流程示意图。该方法可由沉浸媒体系统中的内容消费设备(例如,上述图3所对应实施例中的内容消费设备200B)来执行,比如,该内容消费设备可以为集成有客户端(例如视频客户端)的终端。该方法至少可以包括以下步骤S201-步骤S202:
步骤S201,获取沉浸媒体的媒体文件,对媒体文件进行解封装,得到媒体文件中的点云码流以及与点云码流相关联的解码器配置记录信息;
具体的,客户端可以获取服务器发送的沉浸媒体的媒体文件,并对该媒体文件进行解封装,从而得到该媒体文件中的点云码流以及与该点云码流相关联的解码器配置记录信息。可以理解,解封装的过程与上述封装的过程是相逆的,客户端可以按照封装时采用的文件格式要求来对媒体文件进行解封装,从而得到点云码流。其中,解码器配置记录信息是根据头信息集合的复用状态所生成的,头信息集合是在对点云数据进行编码的过程中所生成的,点云码流包含复用指示信息,复用指示信息是基于复用状态所确定的。在本申请实施例中,复用指示信息和解码器配置记录信息可以为点云码流提供解码所需的头信息集合以及头信息集合的复用状态。服务器生成并发送媒体文件的具体过程可以参见上述图4所对应的实施例,这里不再进行赘述。
步骤S202,基于解码器配置记录信息对点云码流进行解码。
对于在序列头信息中添加复用指示信息的场景(可参见上述图4所对应的实施例的步骤S101中的第一种实施方式的描述),客户端可以基于解码器配置记录信息所包含的头数量信息字段和头指示信息,确定头信息集合的复用状态。例如,当解码器配置记录信息中仅包含序列头信息对应的头基础信息时,表示几何头信息和属性头信息存在于每一个点云帧中,几何头信息和属性头信息无法复用。又例如,当解码器配置记录信息中包含几何头信息/属性头信息对应的头基础信息时,表示该几何头信息/属性头信息可以被复用。
进一步,可选的,当上述头信息集合的复用状态指示点云码流中存在可复用的头信息时,客户端可以从点云码流对应的序列头信息中获取复用指示信息,这里的复用指示信息可以包括可复用的头信息的数量以及这些头信息的具体参数,进而可以基于该复用指示信息所指示的头信息对点云码流进行解码。在一个实施例中,若在对点云码流中的点云帧进行解码之前,复用指示信息所指示的头信息已经解码,则客户端可以直接获取已解码的头信息,并使用已解码的头信息对点云帧进行解码。反之,若在对该点云帧进行解码之前,该复用指示信息所指示的头信息还未解码,则客户端可以先对该头信息进行解码,进而可以使用解码后的头信息对点云帧进行解码。也就是说,这些重复使用的头信息只需要解码一次,后续的点云帧即可直接使用,因此可以节省解码资源,并提升解码效率。
可选的,当复用状态指示点云码流中不存在可复用的头信息时,客户端可以基于点云码流中的点云帧所包含的头信息对点云帧进行解码。在一个实施例中,客户端可以对点云码流中的每个点云帧所包含的头信息进行解码,得到已解码的头信息,进而可以使用已解码的头信息对该点云帧进行解码,也就是说,每个点云帧所包含的头信息均需要进行解码。
类似的,对于在点云帧中添加复用指示信息的场景(可参见上述图4所对应的实施例的步骤S101中的第二种实施方式的描述),客户端同样可以基于解码器配置记录信息所包含的头数量信息字段和头指示信息,确定头信息集合的复用状态。
进一步,可选的,当上述头信息集合的复用状态指示点云码流中存在可复用的头信息时,客户端可以从点云码流所包含的点云帧中获取复用指示信息,进而可以基于该复用指示信息所指示的头信息(例如复用几何头标识字段所指示的几何头信息,以及复用属性头标识字段所指示的属性头信息,或者,当前点云帧的上一帧所使用的几何头信息和属性头信息)对点云帧进行解码。
可选的,当复用状态指示点云码流中不存在可复用的头信息时,客户端可以基于点云帧所包含的头信息对点云帧进行解码。
在这种实施方式下对点云帧进行解码的过程可以参见上述实施方式中所描述的解码过程,这里不再进行赘述。
上述可知,在码流层面,通过区分头信息的可复用性,可以使客户端的解码器根据实际复用情况来选择解码策略,在头信息可复用的场景下,能够避免重复解码相关参数带来的资源浪费。在文件封装层面,可以兼容头信息可复用和头信息不可复用这两种情况,在头信息能够复用的场景,通过引用头信息的标识符,可以更为细致地指示点云帧和头信息之间的对应关系,从而使得客户端能够在合适的时间点解码相应的头信息,同时可以提升解码效率。
进一步地,请参见图6,图6是本申请实施例提供的一种沉浸媒体的数据处理方法的交互流程示意图。该方法可由沉浸媒体系统中的内容制作设备(例如,上述图3所对应实施例中的内容制作设备200A)和内容消费设备(例如,上述图3所对应实施例中的内容消费设备200B)共同执行,比如,该内容制作设备可以为服务器,该内容消费设备可以为集成有客户端(例如视频客户端)的终端。该方法至少可以包括以下步骤:
步骤S301,服务器获取点云数据;
该步骤的具体实现过程可以参见上述图4所对应实施例中的步骤S101,这里不再进行赘述。
步骤S302,服务器对点云数据进行编码,得到包含复用指示信息的点云码流;
该步骤的具体实现过程可以参见上述图4所对应实施例中的步骤S101,这里不再进行赘述。
步骤S303,服务器基于头信息集合的复用状态确定头信息数量和头指示信息,生成包含头信息数量字段和头指示信息的解码器配置记录信息;
该步骤的具体实现过程可以参见上述图4所对应实施例中的步骤S102,这里不再进行赘述。
步骤S304,服务器将点云码流和解码器配置记录信息封装为沉浸媒体的媒体文件;
该步骤的具体实现过程可以参见上述图4所对应实施例中的步骤S103,这里不再进行赘述。
步骤S305,服务器将媒体文件传输至客户端;
该步骤的具体实现过程可以参见上述图4所对应实施例中的步骤S103,这里不再进行赘述。
步骤S306,客户端对获取到的媒体文件进行解封装,得到媒体文件中的点云码流以及与点云码流相关联的解码器配置记录信息;
该步骤的具体实现过程可以参见上述图5所对应实施例中的步骤S201,这里不再进行赘述。
步骤S307,客户端基于解码器配置记录信息对点云码流进行解码;
该步骤的具体实现过程可以参见上述图5所对应实施例中的步骤S202,这里不再进行赘述。
步骤S308,客户端基于解码后的点云数据,渲染得到沉浸媒体的视频内容。
为便于理解,下面结合流媒体场景和本地播放场景进行举例说明。
例如,在流媒体场景中,主要可以包括以下处理流程:
(1)服务器在编码阶段,可以根据几何头信息、属性头信息在整体点云码流中的复用情况,指示是否存在可被复用的头信息以及这些头信息的数量与具体参数信息(即复用指示信息,这里以添加至序列头信息的方式为例进行说明)。
a)例如,假设一个点云码流包含100个点云帧,该点云码流中的0-49帧参考的是header_id=10的几何头信息和header_id=20的属性头信息,50-99帧参考的是header_id=11的几何头信息和header_id=21的属性头信息,则复用指示信息S1:
geometry_header_per_frame=0;//第一几何头复用状态字段
attribute_header_per_frame=0;//第一属性头复用状态字段
sh_num_geometry_headers=2;几何头数量字段
sh_num_attribute_headers=2;属性头数量字段
b)例如,假设点云码流中没有可复用的头信息,则复用指示信息S2:
geometry_header_per_frame=1;
attribute_header_per_frame=1
(2)服务器在对(1)中的点云码流进行文件封装时,可以根据头信息的复用情况,添加解码器配置相关的元数据信息(即解码器配置记录信息)。
a)解码器配置记录信息F1:
num_parameter_headers=5;//头信息数量字段
{header_type=0;header_id=0;header_length=120}//依次为头信息类型字段、头信息标识字段、头信息长度字段
{header_type=1;header_id=10;header_length=20}
{header_type=1;header_id=11;header_length=20}
{header_type=2;header_id=20;header_length=20}
{header_type=2;header_id=21;header_length=20}
b)解码器配置记录信息F2:
num_parameter_headers=1;
{header_type=0;header_id=100;header_length=20}
(3)若(2)中存在可复用的头信息,则服务器可以根据点云帧和头信息的对应关系,将文件轨道中的不同样本对应到相应的头信息。
例如,对于解码器配置记录信息F1,轨道中的样本分别对应至参考{header_id=10与header_id=20}头信息集合的参数集合索引样本群组(例如,0-49帧)以及参考{header_id=11与header_id=21}头信息集合的参数集合索引样本群组(例如,50-99帧)。
(4)服务器对媒体文件(或称为点云文件)进行流化(即切片),得到多个片段(segment),其中的初始化片段中包含(2)中的解码器配置记录信息。
(5)客户端请求流媒体。
a)对于解码器配置记录信息F1相关的文件流,通过解码器配置记录信息F1可知,其指示的头信息集合中包含多个几何头信息和属性头信息,说明这些几何头信息和属性头信息可以被复用,因此在解码时仅需解码一次。
b)对于解码器配置记录信息F2相关的文件流,通过解码器配置记录信息F2可知,其指示的头信息集合中仅包含序列头信息,说明几何头信息和属性头信息存在于每一帧点云帧中,无法复用,需要在解码每一帧时解析其包含的几何头信息和属性头信息。
又例如,在本地播放场景中,主要可以包括以下处理流程:
(1)服务器在编码阶段,可以根据几何头信息、属性头信息在整体点云码流中的复用情况,指示是否存在可被复用的头信息以及这些头信息的数量与具体参数信息(即复用指示信息,这里以添加至序列头信息的方式为例进行说明)。
a)例如,假设一个点云码流包含100个点云帧,该点云码流中的0-49帧参考的是header_id=10的几何头信息和header_id=20的属性头信息,50-99帧参考的是header_id=11的几何头信息和header_id=21的属性头信息,则复用指示信息S1:
geometry_header_per_frame=0;
attribute_header_per_frame=0;
sh_num_geometry_headers=2;
sh_num_attribute_headers=2;
b)例如,假设点云码流中没有可复用的头信息,则复用指示信息S2:
geometry_header_per_frame=1;
attribute_header_per_frame=1
(2)服务器在对(1)中的点云码流进行文件封装时,可以根据头信息的复用情况,添加解码器配置相关的元数据信息(即解码器配置记录信息)。
a)解码器配置记录信息F1:
num_parameter_headers=5;
{header_type=0;header_id=0;header_length=120}
{header_type=1;header_id=10;header_length=20}
{header_type=1;header_id=11;header_length=20}
{header_type=2;header_id=20;header_length=20}
{header_type=2;header_id=21;header_length=20}
b)解码器配置记录信息F2:
num_parameter_headers=1;
{header_type=0;header_id=100;header_length=20}
(3)若(2)中存在可复用的头信息,则服务器可以根据点云帧和头信息的对应关系,将文件轨道中的不同样本对应到相应的头信息。
例如,对于解码器配置记录信息F1,轨道中的样本分别对应至参考{header_id=10与header_id=20}头信息集合的参数集合索引样本群组(例如,0-49帧)以及参考{header_id=11与header_id=21}头信息集合的参数集合索引样本群组(例如,50-99帧)。
(4)服务器将媒体文件发送给客户端。
(5)客户端解封装与解码整体文件。
a)对于解码器配置记录信息F1相关的媒体文件,通过解码器配置记录信息F1可知,其指示的头信息集合中包含多个几何头信息和属性头信息,说明这些几何头信息和属性头信息可以被复用,因此在解码时仅需解码一次。
更进一步地,由于每一个样本(即一个点云帧)都对应到{header_id=10与header_id=20}头信息集合或者{header_id=11与header_id=21}头信息集合,因此,客户端可以在消费相应点云帧时,精准地解析相应的头信息。
b)对于解码器配置记录信息F2相关的媒体文件,通过解码器配置记录信息F2可知,其指示的头信息集合中仅包含序列头信息,说明几何头信息和属性头信息存在于每一帧点云帧中,无法复用,需要在解码每一帧时解析其包含的几何头信息和属性头信息。
上述可知,本申请实施例可以通过复用指示信息和解码器配置记录信息来指示点云码流中是否存在可复用的头信息,从而可以避免重复解码相同的头信息,进而节省解码资源。
请参见图7,图7是本申请实施例提供的一种沉浸媒体的数据处理装置的结构示意图。该沉浸媒体的数据处理装置可以是运行于内容制作设备的一个计算机程序(包括程序代码),例如该沉浸媒体的数据处理装置为内容制作设备中的一个应用软件;该装置可以用于执行本申请实施例提供的沉浸媒体的数据处理方法中的相应步骤。如图7所示,该沉浸媒体的数据处理装置1可以包括:编码模块11、生成模块12、封装模块13、传输模块14;
编码模块11,用于对点云数据进行编码,得到包含复用指示信息的点云码流;复用指示信息是基于头信息集合的复用状态所确定的,头信息集合是在对点云数据进行编码的过程中所生成的;
在一种实施方式中,复用指示信息用于添加至点云码流对应的序列头信息;复用指示信息包括第一参数复用状态字段,第一参数复用状态字段用于指示头信息集合的复用状态。
在一种实施方式中,头信息集合包括几何头信息;第一参数复用状态字段包括第一几何头复用状态字段,第一几何头复用状态字段用于指示点云码流中的几何头信息的复用状态;当第一几何头复用状态字段的字段值为第一状态值时,表示点云码流中存在可复用的几何头信息;当第一几何头复用状态字段的字段值为第二状态值时,表示点云码流中不存在可复用的几何头信息。
在一种实施方式中,当第一几何头复用状态字段的字段值为第一状态值时,表示点云码流中的每个点云帧均不包含几何头信息,复用指示信息还包括几何头数量字段和几何头指示信息;几何头数量字段用于指示点云码流中可复用的几何头信息的数量,几何头数量字段的字段值为M,M为正整数;几何头指示信息包括M个可复用的几何头信息;具有第一状态值的第一几何头复用状态字段还用于指示客户端在对点云码流中的每个点云帧进行解码时,分别参考M个可复用的几何头信息中的一个几何头信息。
在一种实施方式中,当第一几何头复用状态字段的字段值为第二状态值时,表示点云码流中的每个点云帧均包含一个几何头信息;具有第二状态值的第一几何头复用状态字段还用于指示客户端在对点云码流中的每个点云帧进行解码时,分别参考每个点云帧所包含的几何头信息。
在一种实施方式中,头信息集合包括属性头信息;第一参数复用状态字段包括第一属性头复用状态字段,第一属性头复用状态字段用于指示点云码流中的属性头信息的复用状态;当第一属性头复用状态字段的字段值为第三状态值时,表示点云码流中存在可复用的属性头信息;当第一属性头复用状态字段的字段值为第四状态值时,表示点云码流中不存在可复用的属性头信息。
在一种实施方式中,当第一属性头复用状态字段的字段值为第三状态值时,表示点云码流中的每个点云帧均不包含属性头信息,复用指示信息还包括属性头数量字段和属性头指示信息;属性头数量字段用于指示点云码流中可复用的属性头信息的数量,属性头数量字段的字段值为N,N为正整数;属性头指示信息包括N个可复用的属性头信息;具有第三状态值的第一属性头复用状态字段还用于指示客户端在对点云码流中的每个点云帧进行解码时,分别参考N个可复用的属性头信息中的一个或多个属性头信息。
在一种实施方式中,当第一属性头复用状态字段的字段值为第四状态值时,表示点云码流中的每个点云帧均包含一个或多个属性头信息;具有第四状态值的第一属性头复用状态字段还用于指示客户端在对点云码流中的每个点云帧进行解码时,分别参考每个点云帧所包含的属性头信息。
在一种实施方式中,复用指示信息用于添加至点云码流所包含的点云帧;点云码流包括多个点云帧,多个点云帧包括目标点云帧;目标点云帧中的复用指示信息包括第二参数复用状态字段,第二参数复用状态字段用于指示解码目标点云帧所参考的头信息集合的复用状态。
在一种实施方式中,多个点云帧还包括第一历史点云帧,第一历史点云帧的生成时间戳早于目标点云帧的生成时间戳;第一历史点云帧为目标点云帧的上一帧;头信息集合包括几何头信息;第二参数复用状态字段包括第二几何头复用状态字段,第二几何头复用状态字段用于指示解码目标点云帧所参考的几何头信息的复用状态;当第二几何头复用状态字段的字段值为第五状态值时,表示解码目标点云帧时重复使用第一历史点云帧所参考的几何头信息。
在一种实施方式中,多个点云帧还包括第二历史点云帧,第二历史点云帧的生成时间戳早于目标点云帧的生成时间戳;头信息集合包括几何头信息;第二参数复用状态字段包括第二几何头复用状态字段,第二几何头复用状态字段用于指示解码目标点云帧所参考的几何头信息的复用状态;当第二几何头复用状态字段的字段值为第五状态值时,目标点云帧中的复用指示信息还包括复用几何头标识字段,具有第五状态值的第二几何头复用状态字段用于指示解码目标点云帧时参考复用几何头标识字段所指示的几何头信息;复用几何头标识字段所指示的几何头信息为第二历史点云帧所参考的几何头信息。
在一种实施方式中,当第二几何头复用状态字段的字段值为第六状态值时,表示目标点云帧包含几何头信息,具有第六状态值的第二几何头复用状态字段还用于指示客户端在对目标点云帧进行解码时,参考目标点云帧所包含的几何头信息。
在一种实施方式中,多个点云帧还包括第三历史点云帧,第三历史点云帧的生成时间戳早于目标点云帧的生成时间戳;第三历史点云帧为目标点云帧的上一帧;头信息集合包括属性头信息;第二参数复用状态字段包括第二属性头复用状态字段,第二属性头复用状态字段用于指示解码目标点云帧所参考的属性头信息的复用状态;当第二属性头复用状态字段的字段值为第七状态值时,表示解码目标点云帧时重复使用第三历史点云帧所参考的属性头信息。
在一种实施方式中,多个点云帧还包括第四历史点云帧,第四历史点云帧的生成时间戳早于目标点云帧的生成时间戳;头信息集合包括属性头信息;第二参数复用状态字段包括第二属性头复用状态字段,第二属性头复用状态字段用于指示解码目标点云帧所参考的属性头信息的复用状态;当第二属性头复用状态字段的字段值为第七状态值时,目标点云帧中的复用指示信息还包括复用属性头标识字段,具有第七状态值的第二属性头复用状态字段用于指示解码目标点云帧时参考复用属性头标识字段所指示的属性头信息;复用属性头标识字段所指示的属性头信息为第四历史点云帧所参考的属性头信息。
在一种实施方式中,当第二属性头复用状态字段的字段值为第八状态值时,表示目标点云帧包含属性头信息;具有第八状态值的第二属性头复用状态字段还用于指示客户端在对目标点云帧进行解码时,参考目标点云帧所包含的属性头信息。
生成模块12,用于根据复用状态生成针对点云码流的解码器配置记录信息;
上述生成模块12,具体用于基于复用状态确定头信息数量和头指示信息,生成包含头信息数量字段和头指示信息的解码器配置记录信息;头信息数量字段用于指示解码点云码流所参考的头信息的数量;头信息数量字段的字段值为K,K为正整数;头指示信息包括K个头基础信息。
在一种实施方式中,每个头基础信息中均包含头信息类型字段、头信息标识字段、头信息长度字段以及头信息描述字段;头信息类型字段用于指示K个头信息中的第i个头信息的类型,i为小于或者等于K的正整数;头信息标识字段用于指示第i个头信息的标识符;头信息长度字段用于指示第i个头信息的长度;头信息描述字段用于指示第i个头信息。
在一种实施方式中,当头信息类型字段的字段值为第一类型字段值时,表示第i个头信息为序列头信息;当头信息类型字段的字段值为第二类型字段值时,表示第i个头信息为几何头信息;当头信息类型字段的字段值为第三类型字段值时,表示第i个头信息为属性头信息。
在一种实施方式中,每个头基础信息还包括最小点云帧索引字段和最大点云帧索引字段;最小样本索引字段用于指示参考第i个头信息的点云帧索引号范围的最小值;最大样本索引字段用于指示参考第i个头信息的点云帧索引号范围的最大值;处于点云帧索引号范围内的点云帧均参考第i个头信息,处于点云帧索引号范围内的点云帧属于点云码流。
封装模块13,用于将点云码流和解码器配置记录信息封装为沉浸媒体的媒体文件;复用指示信息和解码器配置记录信息为点云码流提供解码所需的头信息集合以及头信息集合的复用状态;
其中,该封装模块13可以包括:分组单元131、封装单元132;
分组单元131,用于当点云码流中存在可复用的头信息时,基于点云码流中的点云帧与可复用的头信息之间的对应关系,对点云码流中的点云帧进行分组,得到一个或多个参数集合索引样本群组;每个参数集合索引样本群组对应一个参考头信息标识字段,参考头信息标识字段用于指示解码一个参数集合索引样本群组中的点云帧时所参考的头信息的标识符;
封装单元132,用于将一个或多个参数集合索引样本群组和解码器配置记录信息封装为沉浸媒体的媒体文件。
其中,分组单元131、封装单元132的具体实现方式可以参见上述图4所对应实施例中的步骤S103,这里不再进行赘述。
传输模块14,用于对媒体文件进行切片,得到初始化片段和媒体片段;初始化片段包含解码器配置记录信息;通过流化传输方式将初始化片段和媒体片段传输至客户端。
其中,编码模块11、生成模块12、封装模块13、传输模块14的具体实现方式可以参见上述图4所对应实施例中的步骤S101-步骤S103,这里不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
请参见图8,图8是本申请实施例提供的一种沉浸媒体的数据处理装置的结构示意图。该沉浸媒体的数据处理装置可以是运行于内容消费设备的一个计算机程序(包括程序代码),例如该沉浸媒体的数据处理装置为内容消费设备中的一个应用软件(例如,视频客户端);该装置可以用于执行本申请实施例提供的沉浸媒体的数据处理方法中的相应步骤。如图8所示,该沉浸媒体的数据处理装置2可以包括:解封装模块21、解码模块22;
解封装模块21,用于获取沉浸媒体的媒体文件,对媒体文件进行解封装,得到媒体文件中的点云码流以及与点云码流相关联的解码器配置记录信息;解码器配置记录信息是根据头信息集合的复用状态所生成的,头信息集合是在对点云数据进行编码的过程中所生成的,点云码流包含复用指示信息,复用指示信息是基于复用状态所确定的;复用指示信息和解码器配置记录信息为点云码流提供解码所需的头信息集合以及头信息集合的复用状态;
解码模块22,用于基于解码器配置记录信息对点云码流进行解码;
其中,该解码模块22可以包括:第一确定单元221、第一解码单元222、第二解码单元223、第二确定单元224、第三解码单元225、第四解码单元226;
第一确定单元221,用于基于解码器配置记录信息所包含的头数量信息字段和头指示信息,确定头信息集合的复用状态;
第一解码单元222,用于当复用状态指示点云码流中存在可复用的头信息时,从点云码流对应的序列头信息中获取复用指示信息,基于复用指示信息所指示的头信息对点云码流进行解码;
上述第一解码单元222,具体用于若在对点云码流中的点云帧进行解码之前,复用指示信息所指示的头信息已经解码,则获取已解码的头信息,使用已解码的头信息对点云帧进行解码;
第二解码单元223,用于当复用状态指示点云码流中不存在可复用的头信息时,基于点云码流中的点云帧所包含的头信息对点云帧进行解码。
上述第二解码单元223,具体用于对点云码流中的点云帧所包含的头信息进行解码,得到已解码的头信息,使用已解码的头信息对点云帧进行解码;
第二确定单元224,用于基于解码器配置记录信息所包含的头数量信息字段和头指示信息,确定头信息集合的复用状态;
第三解码单元225,用于当复用状态指示点云码流中存在可复用的头信息时,从点云码流所包含的点云帧中获取复用指示信息,基于复用指示信息所指示的头信息对点云帧进行解码;
第四解码单元226,用于当复用状态指示点云码流中不存在可复用的头信息时,基于点云帧所包含的头信息对点云帧进行解码。
其中,第一确定单元221、第一解码单元222、第二解码单元223、第二确定单元224、第三解码单元225、第四解码单元226的具体实现方式可以参见上述图5所对应实施例中的步骤S202,这里不再进行赘述。
其中,解封装模块21、解码模块22的具体实现方式可以参见上述图5所对应实施例中的步骤S201-步骤S202,这里不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
请参见图9,是本申请实施例提供的一种计算机设备的结构示意图。如图9所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图9所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以执行前文图4、图5、图6任一个所对应实施例中对该沉浸媒体的数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的沉浸媒体的数据处理装置1和沉浸媒体的数据处理装置2所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图4、图5、图6任一个所对应实施例中对沉浸媒体的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的沉浸媒体的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flashcard)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
此外,这里需要指出的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图4、图5、图6任一个所对应实施例提供的方法。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步的,请参见图10,图10是本申请实施例提供的一种数据处理系统的结构示意图。该数据处理系统3可以包含数据处理装置1a和数据处理装置2a。其中,数据处理装置1a可以为上述图7所对应实施例中的沉浸媒体的数据处理装置1,可以理解的是,该数据处理装置1a可以集成在上述图3所对应实施例中的内容制作设备200A,因此,这里将不再进行赘述。其中,数据处理装置2a可以为上述图8所对应实施例中的沉浸媒体的数据处理装置2,可以理解的是,该数据处理装置2a可以集成在上述图3对应实施例中的内容消费设备200B,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的数据处理系统实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (31)

1.一种沉浸媒体的数据处理方法,其特征在于,包括:
对点云数据进行编码,得到包含复用指示信息的点云码流;所述复用指示信息是基于头信息集合的复用状态所确定的,所述头信息集合是在对所述点云数据进行编码的过程中所生成的;
根据所述复用状态生成针对所述点云码流的解码器配置记录信息;
将所述点云码流和所述解码器配置记录信息封装为沉浸媒体的媒体文件;所述复用指示信息和所述解码器配置记录信息为所述点云码流提供解码所需的所述头信息集合以及所述头信息集合的复用状态。
2.根据权利要求1所述的方法,其特征在于,所述复用指示信息用于添加至所述点云码流对应的序列头信息;所述复用指示信息包括第一参数复用状态字段,所述第一参数复用状态字段用于指示所述头信息集合的复用状态。
3.根据权利要求2所述的方法,其特征在于,所述头信息集合包括几何头信息;所述第一参数复用状态字段包括第一几何头复用状态字段,所述第一几何头复用状态字段用于指示所述点云码流中的所述几何头信息的复用状态;
当所述第一几何头复用状态字段的字段值为第一状态值时,表示所述点云码流中存在可复用的几何头信息;当所述第一几何头复用状态字段的字段值为第二状态值时,表示所述点云码流中不存在可复用的几何头信息。
4.根据权利要求3所述的方法,其特征在于,当所述第一几何头复用状态字段的字段值为所述第一状态值时,表示所述点云码流中的每个点云帧均不包含几何头信息,所述复用指示信息还包括几何头数量字段和几何头指示信息;所述几何头数量字段用于指示所述点云码流中可复用的几何头信息的数量,所述几何头数量字段的字段值为M,M为正整数;所述几何头指示信息包括M个可复用的几何头信息;具有所述第一状态值的第一几何头复用状态字段还用于指示客户端在对所述点云码流中的每个点云帧进行解码时,分别参考所述M个可复用的几何头信息中的一个几何头信息。
5.根据权利要求3所述的方法,其特征在于,当所述第一几何头复用状态字段的字段值为所述第二状态值时,表示所述点云码流中的每个点云帧均包含一个几何头信息;具有所述第二状态值的第一几何头复用状态字段还用于指示客户端在对所述点云码流中的每个点云帧进行解码时,分别参考所述每个点云帧所包含的几何头信息。
6.根据权利要求2所述的方法,其特征在于,所述头信息集合包括属性头信息;所述第一参数复用状态字段包括第一属性头复用状态字段,所述第一属性头复用状态字段用于指示所述点云码流中的所述属性头信息的复用状态;
当所述第一属性头复用状态字段的字段值为第三状态值时,表示所述点云码流中存在可复用的属性头信息;当所述第一属性头复用状态字段的字段值为第四状态值时,表示所述点云码流中不存在可复用的属性头信息。
7.根据权利要求6所述的方法,其特征在于,当所述第一属性头复用状态字段的字段值为所述第三状态值时,表示所述点云码流中的每个点云帧均不包含属性头信息,所述复用指示信息还包括属性头数量字段和属性头指示信息;所述属性头数量字段用于指示所述点云码流中可复用的属性头信息的数量,所述属性头数量字段的字段值为N,N为正整数;所述属性头指示信息包括N个可复用的属性头信息;具有所述第三状态值的第一属性头复用状态字段还用于指示客户端在对所述点云码流中的每个点云帧进行解码时,分别参考所述N个可复用的属性头信息中的一个或多个属性头信息。
8.根据权利要求6所述的方法,其特征在于,当所述第一属性头复用状态字段的字段值为所述第四状态值时,表示所述点云码流中的每个点云帧均包含一个或多个属性头信息;具有所述第四状态值的第一属性头复用状态字段还用于指示客户端在对所述点云码流中的每个点云帧进行解码时,分别参考所述每个点云帧所包含的属性头信息。
9.根据权利要求1所述的方法,其特征在于,所述复用指示信息用于添加至所述点云码流所包含的点云帧;所述点云码流包括多个点云帧,所述多个点云帧包括目标点云帧;所述目标点云帧中的复用指示信息包括第二参数复用状态字段,所述第二参数复用状态字段用于指示解码所述目标点云帧所参考的头信息集合的复用状态。
10.根据权利要求9所述的方法,其特征在于,所述多个点云帧还包括第一历史点云帧,所述第一历史点云帧的生成时间戳早于所述目标点云帧的生成时间戳;所述第一历史点云帧为所述目标点云帧的上一帧;
所述头信息集合包括几何头信息;所述第二参数复用状态字段包括第二几何头复用状态字段,所述第二几何头复用状态字段用于指示解码所述目标点云帧所参考的几何头信息的复用状态;
当所述第二几何头复用状态字段的字段值为第五状态值时,表示解码所述目标点云帧时重复使用所述第一历史点云帧所参考的几何头信息。
11.根据权利要求9所述的方法,其特征在于,所述多个点云帧还包括第二历史点云帧,所述第二历史点云帧的生成时间戳早于所述目标点云帧的生成时间戳;
所述头信息集合包括几何头信息;所述第二参数复用状态字段包括第二几何头复用状态字段,所述第二几何头复用状态字段用于指示解码所述目标点云帧所参考的几何头信息的复用状态;
当所述第二几何头复用状态字段的字段值为第五状态值时,所述目标点云帧中的复用指示信息还包括复用几何头标识字段,具有所述第五状态值的第二几何头复用状态字段用于指示解码所述目标点云帧时参考所述复用几何头标识字段所指示的几何头信息;所述复用几何头标识字段所指示的几何头信息为所述第二历史点云帧所参考的几何头信息。
12.根据权利要求10或11所述的方法,其特征在于,当所述第二几何头复用状态字段的字段值为第六状态值时,表示所述目标点云帧包含几何头信息,具有所述第六状态值的第二几何头复用状态字段还用于指示客户端在对所述目标点云帧进行解码时,参考所述目标点云帧所包含的几何头信息。
13.根据权利要求9所述的方法,其特征在于,所述多个点云帧还包括第三历史点云帧,所述第三历史点云帧的生成时间戳早于所述目标点云帧的生成时间戳;所述第三历史点云帧为所述目标点云帧的上一帧;
所述头信息集合包括属性头信息;所述第二参数复用状态字段包括第二属性头复用状态字段,所述第二属性头复用状态字段用于指示解码所述目标点云帧所参考的属性头信息的复用状态;
当所述第二属性头复用状态字段的字段值为第七状态值时,表示解码所述目标点云帧时重复使用所述第三历史点云帧所参考的属性头信息。
14.根据权利要求9所述的方法,其特征在于,所述多个点云帧还包括第四历史点云帧,所述第四历史点云帧的生成时间戳早于所述目标点云帧的生成时间戳;
所述头信息集合包括属性头信息;所述第二参数复用状态字段包括第二属性头复用状态字段,所述第二属性头复用状态字段用于指示解码所述目标点云帧所参考的属性头信息的复用状态;
当所述第二属性头复用状态字段的字段值为所述第七状态值时,所述目标点云帧中的复用指示信息还包括复用属性头标识字段,具有所述第七状态值的第二属性头复用状态字段用于指示解码所述目标点云帧时参考所述复用属性头标识字段所指示的属性头信息;所述复用属性头标识字段所指示的属性头信息为所述第四历史点云帧所参考的属性头信息。
15.根据权利要求13或14所述的方法,其特征在于,当所述第二属性头复用状态字段的字段值为第八状态值时,表示所述目标点云帧包含属性头信息;具有所述第八状态值的第二属性头复用状态字段还用于指示客户端在对所述目标点云帧进行解码时,参考所述目标点云帧所包含的属性头信息。
16.根据权利要求1所述的方法,其特征在于,所述根据所述复用状态生成针对所述点云码流的解码器配置记录信息,包括:
基于所述复用状态确定头信息数量和头指示信息,生成包含头信息数量字段和所述头指示信息的解码器配置记录信息;所述头信息数量字段用于指示解码所述点云码流所参考的头信息的数量;所述头信息数量字段的字段值为K,K为正整数;所述头指示信息包括K个头基础信息。
17.根据权利要求16所述的方法,其特征在于,每个头基础信息中均包含头信息类型字段、头信息标识字段、头信息长度字段以及头信息描述字段;所述头信息类型字段用于指示K个头信息中的第i个头信息的类型,i为小于或者等于K的正整数;所述头信息标识字段用于指示所述第i个头信息的标识符;所述头信息长度字段用于指示所述第i个头信息的长度;所述头信息描述字段用于指示所述第i个头信息。
18.根据权利要求17所述的方法,其特征在于,当所述头信息类型字段的字段值为第一类型字段值时,表示所述第i个头信息为序列头信息;当所述头信息类型字段的字段值为第二类型字段值时,表示所述第i个头信息为几何头信息;当所述头信息类型字段的字段值为第三类型字段值时,表示所述第i个头信息为属性头信息。
19.根据权利要求17所述的方法,其特征在于,每个头基础信息还包括最小点云帧索引字段和最大点云帧索引字段;所述最小样本索引字段用于指示参考所述第i个头信息的点云帧索引号范围的最小值;所述最大样本索引字段用于指示参考所述第i个头信息的点云帧索引号范围的最大值;处于所述点云帧索引号范围内的点云帧均参考所述第i个头信息,处于所述点云帧索引号范围内的点云帧属于所述点云码流。
20.根据权利要求1所述的方法,其特征在于,所述将所述点云码流和所述解码器配置记录信息封装为沉浸媒体的媒体文件,包括:
当所述点云码流中存在可复用的头信息时,基于所述点云码流中的点云帧与可复用的头信息之间的对应关系,对所述点云码流中的点云帧进行分组,得到一个或多个参数集合索引样本群组;每个参数集合索引样本群组对应一个参考头信息标识字段,所述参考头信息标识字段用于指示解码一个参数集合索引样本群组中的点云帧时所参考的头信息的标识符;
将所述一个或多个参数集合索引样本群组和所述解码器配置记录信息封装为沉浸媒体的媒体文件。
21.根据权利要求1所述的方法,其特征在于,还包括:
对所述媒体文件进行切片,得到初始化片段和媒体片段;所述初始化片段包含所述解码器配置记录信息;
通过流化传输方式将所述初始化片段和所述媒体片段传输至客户端。
22.一种沉浸媒体的数据处理方法,其特征在于,包括:
获取沉浸媒体的媒体文件,对所述媒体文件进行解封装,得到所述媒体文件中的点云码流以及与所述点云码流相关联的解码器配置记录信息;所述解码器配置记录信息是根据头信息集合的复用状态所生成的,所述头信息集合是在对点云数据进行编码的过程中所生成的,所述点云码流包含复用指示信息,所述复用指示信息是基于所述复用状态所确定的;所述复用指示信息和所述解码器配置记录信息为所述点云码流提供解码所需的所述头信息集合以及所述头信息集合的复用状态;
基于所述解码器配置记录信息对所述点云码流进行解码。
23.根据权利要求22所述的方法,其特征在于,所述基于所述解码器配置记录信息对所述点云码流进行解码,包括:
基于所述解码器配置记录信息所包含的头数量信息字段和头指示信息,确定所述头信息集合的所述复用状态;
当所述复用状态指示所述点云码流中存在可复用的头信息时,从所述点云码流对应的序列头信息中获取所述复用指示信息,基于所述复用指示信息所指示的头信息对所述点云码流进行解码;
当所述复用状态指示所述点云码流中不存在可复用的头信息时,基于所述点云码流中的点云帧所包含的头信息对所述点云帧进行解码。
24.根据权利要求23所述的方法,其特征在于,所述基于所述复用指示信息所指示的头信息对所述点云码流进行解码,包括:
若在对所述点云码流中的点云帧进行解码之前,所述复用指示信息所指示的头信息已经解码,则获取已解码的头信息,使用所述已解码的头信息对所述点云帧进行解码。
25.根据权利要求23所述的方法,其特征在于,所述基于所述点云码流中的点云帧所包含的头信息对所述点云帧进行解码,包括:
对所述点云码流中的点云帧所包含的头信息进行解码,得到已解码的头信息,使用所述已解码的头信息对所述点云帧进行解码。
26.根据权利要求22所述的方法,其特征在于,所述基于所述解码器配置记录信息对所述点云码流进行解码,包括:
基于所述解码器配置记录信息所包含的头数量信息字段和头指示信息,确定所述头信息集合的所述复用状态;
当所述复用状态指示所述点云码流中存在可复用的头信息时,从所述点云码流所包含的点云帧中获取所述复用指示信息,基于所述复用指示信息所指示的头信息对所述点云帧进行解码;
当所述复用状态指示所述点云码流中不存在可复用的头信息时,基于所述点云帧所包含的头信息对所述点云帧进行解码。
27.一种沉浸媒体的数据处理装置,其特征在于,包括:
编码模块,用于对点云数据进行编码,得到包含复用指示信息的点云码流;所述复用指示信息是基于头信息集合的复用状态所确定的,所述头信息集合是在对所述点云数据进行编码的过程中所生成的;
生成模块,用于根据所述复用状态生成针对所述点云码流的解码器配置记录信息;
封装模块,用于将所述点云码流和所述解码器配置记录信息封装为沉浸媒体的媒体文件;所述复用指示信息和所述解码器配置记录信息为所述点云码流提供解码所需的所述头信息集合以及所述头信息集合的复用状态。
28.一种沉浸媒体的数据处理装置,其特征在于,包括:
解封装模块,用于获取沉浸媒体的媒体文件,对所述媒体文件进行解封装,得到所述媒体文件中的点云码流以及与所述点云码流相关联的解码器配置记录信息;所述解码器配置记录信息是根据头信息集合的复用状态所生成的,所述头信息集合是在对点云数据进行编码的过程中所生成的,所述点云码流包含复用指示信息,所述复用指示信息是基于所述复用状态所确定的;所述复用指示信息和所述解码器配置记录信息为所述点云码流提供解码所需的所述头信息集合以及所述头信息集合的复用状态;
解码模块,用于基于所述解码器配置记录信息对所述点云码流进行解码。
29.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与所述存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使所述计算机设备执行权利要求1-26任一项所述的方法。
30.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行,以使具有所述处理器的计算机设备执行权利要求1-26任一项所述的方法。
31.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,该计算机指令适于由处理器读取并执行,以使具有所述处理器的计算机设备执行权利要求1-26任一项所述的方法。
CN202210227641.5A 2022-03-08 2022-03-08 一种沉浸媒体的数据处理方法、装置、设备及存储介质 Pending CN116781674A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202210227641.5A CN116781674A (zh) 2022-03-08 2022-03-08 一种沉浸媒体的数据处理方法、装置、设备及存储介质
PCT/CN2022/135538 WO2023169001A1 (zh) 2022-03-08 2022-11-30 一种沉浸媒体的数据处理方法、装置、设备及存储介质
US18/351,899 US20230360277A1 (en) 2022-03-08 2023-07-13 Data processing method and apparatus for immersive media, device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210227641.5A CN116781674A (zh) 2022-03-08 2022-03-08 一种沉浸媒体的数据处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116781674A true CN116781674A (zh) 2023-09-19

Family

ID=87937128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210227641.5A Pending CN116781674A (zh) 2022-03-08 2022-03-08 一种沉浸媒体的数据处理方法、装置、设备及存储介质

Country Status (3)

Country Link
US (1) US20230360277A1 (zh)
CN (1) CN116781674A (zh)
WO (1) WO2023169001A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783698B2 (en) * 2018-07-31 2020-09-22 Intel Corporation Point cloud operations
CN111479114B (zh) * 2019-01-23 2022-07-22 华为技术有限公司 点云的编解码方法及装置
US11581022B2 (en) * 2019-05-29 2023-02-14 Nokia Technologies Oy Method and apparatus for storage and signaling of compressed point clouds
US11716474B2 (en) * 2020-01-02 2023-08-01 Samsung Electronics Co., Ltd. Storage of EVC decoder configuration information
CN114095737B (zh) * 2021-11-29 2023-03-31 腾讯科技(深圳)有限公司 媒体文件封装及解封装方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2023169001A1 (zh) 2023-09-14
US20230360277A1 (en) 2023-11-09

Similar Documents

Publication Publication Date Title
CN115443652B (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
CN117978994A (zh) 对点云数据进行编码/解码的方法和存储介质
CN114946179B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN114503587A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115396645B (zh) 一种沉浸媒体的数据处理方法、装置、设备及存储介质
CN113891117B (zh) 沉浸媒体的数据处理方法、装置、设备及可读存储介质
JP2021536163A (ja) サブピクチャ時限メタデータ情報をシグナリングするシステム及び方法
CN115398890A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115769583A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
WO2024037247A1 (zh) 一种点云媒体的数据处理方法及相关设备
WO2024060793A1 (zh) 一种点云媒体的数据处理方法及相关设备
CN118138737A (zh) 对点云数据进行编解码的方法和存储介质
WO2024041239A1 (zh) 一种沉浸媒体的数据处理方法、装置、设备、存储介质及程序产品
CN115022715B (zh) 一种沉浸媒体的数据处理方法及设备
WO2023226504A1 (zh) 一种媒体数据处理方法、装置、设备以及可读存储介质
CN116456166A (zh) 媒体数据的数据处理方法及相关设备
WO2023169001A1 (zh) 一种沉浸媒体的数据处理方法、装置、设备及存储介质
WO2023169004A1 (zh) 点云媒体的数据处理方法、装置、设备及介质
CN115428442B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115379188B (zh) 点云数据处理方法、装置、设备及存储介质
CN115733576B (zh) 点云媒体文件的封装与解封装方法、装置及存储介质
CN116033186A (zh) 一种点云数据处理方法、装置、设备以及介质
CN115037943A (zh) 一种媒体数据处理方法、装置、设备以及可读存储介质
CN116347118A (zh) 一种沉浸媒体的数据处理方法及相关设备
CN115426502A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40092357

Country of ref document: HK