CN111316331A - 使用非正交投影的点云压缩 - Google Patents
使用非正交投影的点云压缩 Download PDFInfo
- Publication number
- CN111316331A CN111316331A CN201880072736.6A CN201880072736A CN111316331A CN 111316331 A CN111316331 A CN 111316331A CN 201880072736 A CN201880072736 A CN 201880072736A CN 111316331 A CN111316331 A CN 111316331A
- Authority
- CN
- China
- Prior art keywords
- metadata
- frame
- point cloud
- flag
- patch
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Information Transfer Between Computers (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种操作用于点云解码的解码设备的方法,包括接收压缩比特流。该方法还包括将压缩比特流解码成表示三维(3‑D)点云的二维(2‑D)帧。2‑D帧中的每一个包括补片集合,并且每个补片包括3‑D点云中的点的聚类。点的聚类对应于与3‑D点云相关联的属性。补片集合中的一个补片、补片集合和2‑D帧对应于表示3‑D点云的各个访问级别。该方法还包括识别第一标志和第二标志。响应于识别到第一标志和第二标志,该方法包括从比特流读取元数据。该方法还包括基于元数据并使用2‑D帧集合来生成3‑D点云。
Description
技术领域
本公开一般涉及多媒体数据的压缩和编码。更具体地,本公开涉及用于压缩和解压缩点云的装置和方法。
背景技术
由于诸如智能电话的功能强大的手持设备随时可用,三百六十度(360°)视频正在成为体验沉浸式视频的一种新方式。360°视频通过捕获世界的360°视图,为消费者带来沉浸式的“真实生活”、“身临其境”体验。用户可以交互地改变他们的视点,并动态地观看他们期望的捕获场景或对象的任何部分。显示和导航传感器实时地跟踪头部移动,以确定用户想要观看的360°视频的区域。360°视频提供三自由度(three Degrees of Freedom,3DoF)沉浸式体验。六自由度(six Degrees of Freedom,6DoF)是沉浸式体验的下一级别,其中用户可以在虚拟/增强环境中转动其头部和四处移动。提供6DoF的体验需要本质上是三维(three-dimensional,3-D)的多媒体数据(诸如点云)。
点云和网格是表示对象或场景的表面模型的3-D点的集合。点云常见于各种应用中,诸如游戏、3-D地图、可视化、医疗应用、增强现实、虚拟现实、自主驾驶、多视图回放、6DoF沉浸式媒体,仅举几例。点云如果不压缩则一般需要大量的带宽用于传输。由于大比特率要求,点云通常在传输前被压缩。点云的压缩硬件和过程不同于用于传统二维(two-dimensional,2-D)多媒体的传统压缩硬件和过程。
发明内容
技术方案
本公开提供使用非正交投影的点云压缩。
在第一实施例中,提供了一种用于点云解码的解码设备。该解码设备包括通信接口和可操作地耦合到通信接口的处理器。通信接口被配置为接收压缩比特流。处理器被配置为将压缩比特流解码成表示三维(3-D)点云的二维(2-D)帧。2-D帧中的每一个包括补片集合,并且补片集合中的每个补片包括3-D点云中的点的聚类。点的聚类对应于与3-D点云相关联的属性。补片集合中的一个补片、补片集合和2-D帧对应于表示3-D点云的各个访问级别。处理器还被配置为识别第一标志是否被包括在压缩比特流中并被设置为真(true),该第一标志信令通知应用于各个访问级别中的第一访问级别的元数据的修改何时被启用。处理器还被配置为识别第二标志是否被包括在压缩比特流中并被设置为真,该第二标志指示与各个访问级别中的第一访问级别的修改相关联的元数据的存在。响应于识别到第一标志和第二标志被包括在压缩比特流中并被设置为真,处理器被配置为从压缩比特流读取元数据。响应于识别到第一标志或第二标志中的至少一个要么未被包括在压缩比特流中要么被设置为假(false),处理器被配置为向元数据分配预定参数。处理器还被配置为基于元数据并使用2-D帧集合和元数据来生成3-D点云。
在另一实施例中,提供了一种用于点云编码的编码设备。该编码设备包括处理器和可操作地耦合到处理器的通信接口。处理器被配置为生成表示3-D点云的2-D帧。2-D帧中的每一个包括补片集合,并且补片集合中的每个补片包括3-D点云中的点的聚类。点的聚类对应于与3-D点云相关联的属性。补片集合中的一个补片、补片集合和2-D帧对应于表示3-D点云的各个访问级别。处理器还被配置为生成指示各个访问级别中的一个的修改的元数据。处理器还被配置为生成第一标志和生成第二标志,该第一标志信令通知应用于各个访问级别中的第一访问级别的元数据的修改何时被启用,该第二标志指示与各个访问级别中的第一访问级别的修改相关联的元数据的存在。处理器还被配置为对2-D帧、第一标志、第二标志和元数据进行编码,以生成压缩比特流。通信接口被配置为传输压缩比特流。
在又一实施例中,提供了一种用于解码的方法。该方法包括接收压缩比特流。该方法还包括将压缩比特流解码成表示3-D点云的2-D帧。2-D帧中的每一个包括补片集合,并且补片集合中的每个补片包括3-D点云中的点的聚类。点的聚类对应于与3-D点云相关联的属性。补片集合中的一个补片、补片集合和2-D帧对应于表示3-D点云的各个访问级别。该方法包括识别第一标志是否被包括在压缩比特流中并被设置为真,该第一标志信令通知应用于各个访问级别中的第一访问级别的元数据的修改何时被启用。该方法还包括识别第二标志是否被包括在压缩比特流中并被设置为真,该第二标志指示与各个访问级别中的第一访问级别的修改相关联的元数据的存在。响应于识别到第一标志和第二标志被包括在压缩比特流中并被设置为真,该方法包括从压缩比特流读取元数据。响应于识别到第一标志或第二标志中的至少一个要么未被包括在压缩比特流中要么被设置为假,该方法包括向元数据分配预定参数。该方法还包括基于元数据并使用2-D帧的集合和元数据来生成3-D点云。
对于本领域的技术人员来说,从以下附图、描述和权利要求中,其它技术特征是很清楚的。
附图说明
为了更完整地理解本公开及其优点,现在结合附图参考以下描述,其中相同的附图标记表示相同的部分:
图1示出根据本公开的实施例的示例通信系统;
图2示出根据本公开的实施例的示例电子设备;
图3示出根据本公开的实施例的示例电子设备;
图4示出根据本公开的实施例的点云和网格;
图5A示出根据本公开的实施例的编码器的示例框图;
图5B示出根据本公开的实施例的解码器的示例框图;
图6A、图6B和图6C示出根据本公开的实施例的示例3-D点云和表示3-D点云的2-D帧;
图7A示出根据本公开的实施例的以缩放后的分辨率接收补片的示例流程图;
图7B和图7C示出根据本公开的实施例的创建包括补片的比特流和接收比特流的过程;
图8A示出根据本公开的实施例的生成点云的渐进非正交投影的过程;
图8B示出根据本公开的实施例的解码器的示例框图;
图9示出根据本公开的实施例的点云密度的自适应区域;
图10示出根据本公开的实施例的点云的自适应点尺寸和形状;
图11示出根据本公开的实施例的用于解码点云的示例流程图;和
图12示出根据本公开的实施例的用于编码点云的示例流程图。
具体实施方式
在进行下面的详细描述之前,阐述贯穿本专利文档使用的特定单词和短语的定义可能是有利的。术语“耦合”及其派生词是指两个或更多个元件之间的任何直接或间接通信,无论这些元件是否彼此物理接触。术语“发送”、“接收”和“通信”及其派生词包括直接和间接通信。术语“包括”和“包含”及其派生词意味着包括但不限于。术语“或”是包含性的,意思是和/或。短语“与...相关联”及其派生词是指包括、被包括在...内、与...互连、包含、被包含在...内、连接到或与...连接、耦合到或与...耦合、与...可通信、与...协作、交错、并置、接近、结合到或与...结合、具有、具有...属性、与...有关系等。术语“控制器”是指控制至少一个操作的任何设备、系统或其部分。这种控制器可以用硬件或硬件和软件和/或固件的组合来实施。与任何特定控制器相关联的功能可以是集中式的或分布式的,无论是本地的还是远程的。当与项目列表一起使用时,短语“至少一个”意味着可以使用所列项目中的一个或多个的不同组合,并且可能只需要列表中的一个项目。例如,“A、B和C中的至少一个”包括以下组合中的任何一个:A、B、C、A和B、A和C、B和C以及A和B和C。
此外,下面描述的各种功能可以由一个或多个计算机程序来实施或支持,每个计算机程序由计算机可读程序代码形成并体现在计算机可读介质中。术语“应用”和“程序”是指一个或多个计算机程序、软件组件、指令集、过程、功能、对象、类、实例、相关数据或其适于在合适的计算机可读程序代码中实现的部分。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够被计算机访问的任何类型的介质,诸如只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、硬盘驱动器、光盘(Compact Disc,CD)、数字视频光盘(Digital Video Disc,DVD)或任何其它类型的存储器。“非暂时性”计算机可读介质不包括传送暂时性电信号或其它信号的有线、无线、光学或其它通信链路。非暂时性计算机可读介质包括其中数据可以被永久存储的介质和其中数据可以被存储并随后被重写的介质,诸如可重写光盘或可擦除存储器设备。
贯穿本专利文档提供了其它特定单词和短语的定义。本领域普通技术人员应该理解,在许多(如果不是大多数)情况下,这样的定义适用于这样定义的单词和短语的先前和将来使用。
下面讨论的图1至图12以及在本专利文档中用于描述本公开的原理的各种实施例仅仅是示例性的,并且不应以任何方式解释为限制本公开的范围。本领域技术人员将理解,本公开的原理可以在任何适当布置的系统或设备中实施。
虚拟现实(Virtual Reality,VR)是视觉场景的渲染版本。在特定实施例中,VR是视觉和音频场景两者的渲染版本。当个体在由应用或VR场景定义的范围内移动时,渲染被设计成尽可能自然地向观察者或用户模拟真实世界的视觉刺激,并且如果可用的话模拟音频感官刺激。例如,VR将用户置于与他们的头部移动进行交互的沉浸式世界。在视频级别,VR通过提供覆盖尽可能多的视场(Field Of View,FOV)的视频体验以及渲染视频的视角与头部移动的同步来实现。尽管许多不同类型的设备能够提供这样的体验,但头戴式显示器(Head-Mounted Display,HMD)是使用户能够观看VR场景并基于用户头部的移动来调整显示内容的流行设备。通常,HMD要么依靠集成到设备中(拴系的)并与外部计算机一起运行的专用屏幕,要么依靠插入到HMD中的设备(未拴系的),诸如智能电话。第一种方法利用轻量级屏幕并受益于高计算能力。相反,基于智能电话的系统利用更高的移动性,并且生产成本可以更低。在这两种情况下,生成的视频体验是相同的。注意,如本文所使用的,术语“用户”可以表示使用电子设备的人或另一设备(诸如人工智能电子设备)。
点云是类似于VR环境中的对象的对象的3-D表示。类似地,点网格是类似于VR环境中的对象的对象的3-D表示。点云或点网格可以包括场景,诸如环境中的对象的表面。
一般地,点云是由坐标系定义的数据点的集合。例如,在3-D笛卡尔坐标系中,点云中的每个点由三个坐标(即X、Y和Z)来标识。当每个点由三个坐标来标识时,就标识了3-D环境或空间中相对于原点的精确位置。原点是X轴、Y轴和Z轴相交的位置。点云中的点通常表示对象的外表面。点云中的每个点由诸如三个坐标内每个点的几何位置和纹理(诸如颜色、强度、法线、反射率等)的属性来定义。
类似地,3-D网格是类似于点云的对象的3-D表示。3-D网格示出由多边形构成的对象的外部结构。例如,3-D网格是定义对象形状的顶点、边和面的集合。又例如,网格(或点云)可以在球面坐标系上渲染。在特定实施例中,每个点可以位于球体内的X、Y、Z坐标中。类似地,纹理坐标U和V指示图像纹理的位置。当对象被渲染时,网格的顶点、对应的纹理坐标和纹理图像被输入到将网格映射到3-D几何形状上的图形处理单元。用户可以具有位于虚拟球体的中心的FOV,并看到对应于该视口的360°场景的一部分。在特定实施例中,可以使用替代的形状来代替球体,诸如立方体、二十面体、八面体等。点云和网格将在下面参考图4进行更详细的说明和讨论。
点云和网格通常用于各种应用,包括游戏、3-D制图、可视化、医学、增强现实、VR、自主驾驶、多视图回放、6自由度沉浸式媒体,仅举几例。如在下文中所使用的,术语“点云”也指“3-D点云”和“3-D网格”。
由于与单个点云相关联的数据的大小和复杂性,将点云从一个电子设备传输到另一个电子设备通常需要大量的带宽。点云的传输通常需要特定的压缩技术,以在传输之前减小数据的大小。例如,压缩点云可能需要专用硬件或特定的压缩算法或其组合。一般地,点云的压缩算法不同于其它多媒体形式(诸如图像和视频、VR等)的压缩算法。
如上所述,点云是具有属性的点的集合,并且每个属性需要一定数量的比特。例如,对于具有十比特几何形状数据的点云,每点三十比特可以用于几何坐标(诸如X、Y和Z坐标),使得每个坐标为十比特。类似地,对于具有八比特颜色数据的点云,每点二十四比特可以用于颜色坐标(诸如红、绿、蓝(RGB)),使得每个坐标为八比特颜色坐标。因此,具有十比特几何属性和八比特颜色属性的单个点使用五十四比特。如果一帧包括一百万个点,则每帧的比特数为五千四百万比特(每点五十四比特乘以每帧一百万个点)。对于每个对象,每秒有三十帧。在没有压缩的情况下,每秒1.62千兆字节(每帧五千四百万比特乘以每秒30帧)用于将点云从一个电子设备传输到另一个电子设备。因此,将点云从一个电子设备传输到另一个电子设备需要进行大量压缩。
本公开的实施例考虑到由于带宽的大小约束,压缩点云对于加速和改善点云从源设备到另一设备(诸如用户设备)的传输是必要的。也就是说,未压缩的点云使用大量的带宽进行传输,并且导致点云的渲染被延迟。特定的专用硬件组件可以用于满足实时需求或减少点云渲染中的延迟或滞后。这种硬件组件通常很昂贵。根据本公开的实施例,使用编解码器来压缩点云减少传输带宽以及特定类型的硬件。例如,当操纵点云以适合2-D帧时,诸如HEVC、AVC、VP9、VP8、JVNET等的视频编解码器可以用于压缩点云。例如,点云从其原始的3-D形状被操纵成在2-D中表示点云的多个补片。
因此,本公开的实施例提供用于操纵诸如点云的3-D对象的系统和方法。操纵3-D对象包括将3-D对象投影到2-D帧上,使得该帧可以被压缩、传输到显示设备,并且2-D帧内的内容可以被重构成3-D对象,并且最终被渲染,使得3-D对象可以被用户观看。在3-D点云被投影到多个2-D视频帧之后,各种2-D压缩硬件和软件组件可以压缩所述点云。当点云被解构以适合多个2-D帧时,可以使用比传输原始点云更少的带宽来传输帧。
3-D对象可以由编码器操纵、被传输到解码器,解码器重构3-D对象以被用户观看。编码器将3-D对象投影到一个或多个2-D帧上、压缩这些帧、并生成和传输包括压缩帧的压缩比特流。解码器接收比特流、解压缩帧、重构并渲染3-D对象,以便用户可以观看显示的对象。
根据本公开的实施例,提供了使用视频编解码器执行点云压缩的架构。本公开的实施例提供使用视频编解码器的点云压缩的架构。可以解构点云,并且生成多个2-D帧,其包括点云中的每个点的几何形状的规则补片,以及点云的各种属性或纹理。例如,点云可以被解构并映射到2-D帧上。可以使用各种视频或图像或两者的压缩来压缩2-D帧。
本公开的实施例包括用于操纵点云的方法和系统。例如,本公开的实施例包括操纵稀疏点云、缩放点云、点云的感兴趣区域(Region Of Interest,ROI)识别以及点云的自适应点尺寸渲染。本公开的实施例包括使用非正交投影进行点云压缩的方法和系统。此外,本公开的实施例包括支持包括缩放、偏移、旋转、点尺寸和点形状的功能的元数据。
图1示出根据本公开的示例计算系统100。图1所示的系统100的实施例仅用于说明。在不脱离本公开的范围的情况下,可以使用系统100的其它实施例。
系统100包括促进系统100中的各种组件之间的通信的网络102。例如,网络102可以在网络地址之间通信传送互联网协议(Intemet Protocol,IP)分组、帧中继帧、异步传输模式(Asynchronous Transfer Mode,ATM)信元或其它信息。网络102包括一个或多个局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(WideArea Network,WAN)、诸如互联网的全球网络的全部或一部分、或一个或多个位置处的(多个)任何其它通信系统。
网络102促进服务器104和各种客户端设备106-116之间的通信。客户端设备106-116可以是例如智能电话、平板计算机、膝上型计算机、个人计算机、可穿戴设备或头戴式显示器(HMD)。服务器104可以表示一个或多个服务器。每个服务器104包括能够为一个或多个客户端设备提供计算服务的任何合适的计算或处理设备。每个服务器104可以例如包括一个或多个处理设备、一个或多个存储指令和数据的存储器、以及一个或多个促进通过网络102的通信的网络接口。如下面更详细描述的,服务器104可以将点云传输到一个或多个显示设备,诸如客户端设备106-116。在特定实施例中,每个服务器104可以包括编码器。
每个客户端设备106-116表示通过网络102与至少一个服务器或(多个)其它计算设备交互的任何合适的计算或处理设备。在该示例中,客户端设备106-116包括桌上型计算机106、移动电话或移动设备108(诸如智能电话)、个人数字助理(Personal DigitalAssistant,PDA)110、膝上型计算机112、平板计算机114和HMD 116。然而,系统100中可以使用任何其它或附加的客户端设备。在特定实施例中,每个客户端设备106-116可以包括解码器。
在该示例中,一些客户端设备108-116间接与网络102通信。例如,客户端设备108和110(分别是移动设备108和PDA 110)经由一个或多个基站118(诸如蜂窝网络基站或eNodeB(eNB))进行通信。移动设备108包括智能电话。此外,客户端设备112、114和116(分别是膝上型计算机、平板计算机和HMD)经由一个或多个无线接入点120(诸如IEEE 802.11无线接入点)进行通信。如下面更详细描述的,HMD 116可以显示包括一个或多个点云的360°场景。注意,这些仅用于说明,并且每个客户端设备106-116可以直接与网络102通信,或者经由任何合适的(多个)中间设备或(多个)网络间接与网络102通信。在特定实施例中,服务器104或任何客户端设备106-114可以用于压缩点云并将数据传输到另一客户端设备,诸如任何客户端设备106-116。
在特定实施例中,移动设备108(或任何其它客户端设备106-116)可以安全且高效地将信息传输到另一设备,诸如,例如服务器104。当移动设备108(或任何其它客户端设备106-116)经由支架附接到头部装置(headset)时,移动设备108可以用作VR显示器,并且类似于HMD 116运行。移动设备108(或任何其它客户端设备106-116)可以触发其自身和服务器104之间的信息传输。
尽管图1示出系统100的一个示例,但是可以对图1进行各种改变。例如,系统100可以包括任何合适布置的任何数量的每个组件。一般地,计算和通信系统有各种各样的配置,并且图1不将本公开的范围限制到任何特定配置。尽管图1示出其中可以使用本专利文档中公开的各种特征的一个操作环境,但是这些特征可以用在任何其它合适的系统中。
本公开中提供的过程和系统允许客户端设备106-116或服务器104压缩、发送、接收、渲染点云或其组合。例如,服务器104然后可以压缩点云数据并将其传输到客户端设备106-116。又例如,任何客户端设备106-116可以压缩点云数据并将其传输到任何客户端设备106-116或服务器104。
图2和图3示出根据本公开的实施例的计算系统中的示例设备。具体地,图2示出示例服务器200,并且图3示出示例电子设备300。服务器200可以表示图1的服务器104,并且电子设备300可以表示图1的客户端设备106-116中的一个或多个。
服务器200可以表示一个或多个本地服务器、一个或多个压缩服务器、或者一个或多个编码服务器。如图2所示,服务器200包括总线系统205,其支持至少一个(多个)处理器210、至少一个(多个)存储设备215、至少一个通信接口220和至少一个输入/输出(I/O)单元225之间的通信。在特定实施例中,服务器200是编码器。
处理器210执行可以存储在存储器230中的指令。存储在存储器230中的指令可以包括用于分解点云、压缩点云的指令。存储在存储器230中的指令还可以包括用于编码点云以便生成比特流的指令。存储在存储器230中的指令还可以包括用于在全向360°场景上渲染点云(如通过VR头部装置(诸如图1的HMD 116)观看到的)的指令。处理器210可以包括任何合适布置的任何合适(多个)数量和(多个)类型的处理器或其它设备。(多个)处理器210的示例类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立电路。
存储器230和永久存储装置235是存储设备215的示例,其表示能够存储和促进信息(诸如数据、程序代码或临时或永久的其它合适信息)的检索的任何(多个)结构。存储器230可以表示随机存取存储器或(多个)任何其它合适的易失性或非易失性存储设备。永久存储装置235可以包含支持数据的长期存储的一个或多个组件或设备,诸如只读存储器、硬盘驱动器、闪存或光盘。
通信接口220支持与其它系统或设备的通信。例如,通信接口220可以包括促进通过图1的网络102进行通信的网络接口卡或无线收发器。通信接口220可以支持通过(多个)任何合适的物理或无线通信链路的通信。
I/O单元225允许数据的输入和输出。例如,I/O单元225可以通过键盘、鼠标、小键盘、触摸屏、运动传感器或任何其它合适的输入设备为用户输入提供连接。I/O单元225还可以向显示器、打印机或任何其它合适的输出设备发送输出。
在特定实施例中,服务器200实施点云的压缩,这将在下面更详细地讨论。在特定实施例中,服务器200生成对应于点云的三维的多个2-D帧。在特定实施例中,服务器200将点云的三维映射成2-D。在特定实施例中,服务器200通过编码表示点云的压缩二维帧来生成压缩比特流。
注意,虽然图2被描述为表示图1的服务器104,但是相同或类似的结构可以用于各种客户端设备106-116中的一个或多个。例如,桌上型计算机106或膝上型计算机112可以具有与图2所示的相同或类似的结构。
图3示出根据本公开的实施例的电子设备300。图3所示的电子设备300的实施例仅用于说明,并且在不脱离本公开的范围的情况下,可以使用其它实施例。电子设备300可以有各种各样的配置,并且图3不将本公开的范围限制到电子设备的任何特定实施方式。在特定实施例中,图1的客户端设备106-116中的一个或多个可以包括与电子设备300相同或类似的配置。在特定实施例中,电子设备300是编码器、解码器或两者。
在特定实施例中,电子设备300可用于数据传输、图像或视频压缩、图像或视频解压缩、编码、解码和媒体渲染应用。电子设备300可以是移动通信设备,诸如,例如无线终端、桌上型计算机(类似于图1的桌上型计算机106)、移动设备(类似于图1的移动设备108)、PDA(类似于图1的PDA110)、膝上型计算机(类似于图1的膝上型计算机112)、平板计算机(类似于图1的平板计算机114)、头戴式显示器(类似于图1的HMD 116)等。
如图3所示,电子设备300包括天线305、射频(Radio-Frequency,RF)收发器310、发送(TX)处理电路315、麦克风320和接收(RX)处理电路325。电子设备300还包括扬声器330、一个或多个处理器340、输入/输出(I/O)接口(IF)345、输入350、显示器355和存储器360。存储器360包括操作系统(Operating System,OS)361、一个或多个应用362和点云363。
RF收发器310从天线305接收由系统上的另一组件发送的输入RF信号。例如,RF收发器310从网络102(诸如WI-FI、蓝牙、蜂窝网络、5G、LTE、LTE-A、WiMAX或任何其它类型的无线网络)的接入点(诸如基站、WI-FI路由器、蓝牙设备)接收通过蓝牙或WI-FI信号发送的RF信号。RF收发器310可以对输入RF信号进行下变频以生成中频或基带信号。中频或基带信号被发送到RX处理电路325,RX处理电路325通过对基带或中频信号进行滤波、解码或数字化或其组合,以生成经处理的基带信号。RX处理电路325将经处理的基带信号发送到扬声器330(诸如对于语音数据)或处理器340用于进一步处理(诸如对于网络浏览数据)。
TX处理电路315从麦克风320接收模拟或数字语音数据,或者从处理器340接收其它输出基带数据。输出基带数据可以包括网络数据、电子邮件或交互式视频游戏数据。TX处理电路315对输出基带数据进行编码、复用、数字化或其组合,以生成经处理的基带或中频信号。RF收发器310从TX处理电路315接收输出的经处理的基带或中频信号,并将基带或中频信号上变频为经由天线305发送的RF信号。
处理器340可以包括一个或多个处理器或其它处理设备,并且执行存储在存储器360中的OS 361,以便控制电子设备300的整体操作。例如,处理器340可以根据众所周知的原理,通过RF收发器310、RX处理电路325和TX处理电路315来控制前向信道信号的接收和后向信道信号的发送。处理器340还能够执行驻留在存储器360中的其它应用362,诸如解压缩和生成接收到的点云。
处理器340可以执行存储在存储器360中的指令。处理器340可以包括任何合适布置的任何合适(多个)数量和(多个)类型的处理器或其它设备。例如,在一些实施例中,处理器340包括至少一个微处理器或微控制器。处理器340的示例类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立电路。
处理器340还能够执行驻留在存储器360中的其它过程和程序,诸如通过提供图像捕获和处理来接收、存储和及时指示的操作。处理器340可以根据执行过程的需要将数据移入或移出存储器360。在一些实施例中,处理器340被配置为基于OS 361或响应于从eNB(类似于图1的基站118)或操作者接收的信号来执行多个应用362。处理器340还耦合到I/O IF345,该I/O IF 345向电子设备300提供连接到其它设备(诸如客户端设备106-116)的能力。I/O IF 345是这些附件和处理器340之间的通信路径。
处理器340还耦合到输入350。电子设备300的操作者可以使用输入350向电子设备300输入数据或输入。输入350可以是键盘、触摸屏、鼠标、轨迹球、语音输入或能够充当用户界面以允许用户与电子设备300进行交互的任何其它设备。例如,输入350可以包括语音识别处理,从而允许用户经由麦克风320输入语音命令。又例如,输入350可以包括触摸面板、(数字)笔传感器、按键或超声波输入设备。触摸面板可以识别例如电容方案、压敏方案、红外方案或超声波方案当中的至少一种方案的触摸输入。例如,在电容方案中,输入350可以识别触摸或接近。输入350还可以包括控制电路。通过向处理器340提供附加的输入,输入350可以与(多个)传感器365和/或相机相关联。如下面更详细讨论的,传感器365包括惯性传感器(诸如加速度计、陀螺仪和磁力计)、光学传感器、运动传感器、相机、压力传感器、心率传感器、高度计等。例如,输入350可以利用由与传感器365相关联的运动传感器检测到的运动作为输入。
处理器340还耦合到显示器355。显示器355可以是液晶显示器(Liquid CrystalDisplay,LCD)、发光二极管(Light-Emitting Diode,LED)显示器、有机LED(Organic LED,OLED)、有源矩阵OLED(Active Matrix OLED,AMOLED),或者能够渲染(诸如来自网站、视频、游戏、图像等的)文本和/或图形的其它显示器。显示器355可以被调整尺寸来适合于置入HMD。显示器355可以是能够创建立体显示的单个显示屏或多个显示屏。在特定实施例中,显示器355是抬头显示器(Heads-Up Display,HUD)。
存储器360耦合到处理器340。存储器360的一部分可以包括随机存取存储器(RAM),并且存储器360的另一部分可以包括闪存或其它只读存储器(ROM)。
存储器360可以包括永久存储装置(未示出),其表示能够存储和促进信息(诸如数据、程序代码和/或临时或永久的其它合适信息)检索的任何(多个)结构。存储器360可以包含支持数据的更长期存储的一个或多个组件或设备,诸如只读存储器、硬盘驱动器、闪存或光盘。点云363可以包括各种3-D点云、3-D网格、3-D对象等。在特定实施例中,点云363可以包括一个或多个2-D帧上的3-D对象的补片的投影。点云363还可以包括能够渲染在显示器355上的一个或多个3-D点云。
电子设备300还可以包括一个或多个传感器365,其计量物理量或检测电子设备300的激活状态,并将计量或检测的信息转换成电信号。例如,(多个)传感器365可以包括用于触摸输入的一个或多个按钮(位于头部装置或电子设备300上)、一个或多个相机、姿势传感器、眼睛跟踪传感器、陀螺仪或陀螺仪传感器、气压传感器、磁传感器或磁力计、加速度传感器或加速度计、抓握传感器、接近传感器、颜色传感器(诸如红绿蓝(RGB)传感器)、生物物理传感器、温度/湿度传感器、照度传感器、紫外线(Ultraviolet,UV)传感器、肌电图(Electromyography,EMG)传感器、脑电图(Electroencephalogram,EEG)传感器、心电图(Electrocardiogram,ECG)传感器、红外(Infrared,IR)传感器、超声波传感器、虹膜传感器、指纹传感器等。(多个)传感器365还可以包括控制电路,用于控制被包括在其中的传感器中的至少一个。如将在下面更详细讨论的,这些(多个)传感器365中的一个或多个可以用于控制用户界面(User Interface,UI)、检测UI输入、确定用于三维内容显示识别的朝向和面向用户的方向等。这些(多个)传感器365中的任何一个可以位于电子设备300内、可以位于可操作地连接到电子设备300的辅助设备内、可以位于被配置为保持电子设备300的头部装置内,或者可以位于其中电子设备300包括头部装置的单个设备中。
如下面将更详细讨论的,在该说明性实施例中,电子设备300接收编码和压缩比特流。电子设备300将接收到的比特流解码成多个2-D帧。在特定实施例中,解码的比特流还包括占用图。解码的比特流还可以包括指示特定元数据是否被应用于修改点云的标志。电子设备300解压缩多个2-D帧。多个2-D帧可以包括指示坐标(诸如点云中的每个点的地理位置)的帧集合。例如,帧可以包括图形描绘,诸如以2-D表示的点云的每个几何点的一个或多个补片。另一帧集合可以包括与每个点相关联的纹理,诸如每个点的颜色。电子设备300然后可以以三维重构和渲染点云。
如下面将更详细讨论的,在该说明性实施例中,电子设备300可以类似于服务器200,并编码点云。电子设备300可以生成表示点云的几何形状和纹理的多个2-D帧。点云可以映射到一个或多个2-D帧。例如,一个帧集合可以包括补片中描绘的几何点。在另一示例中,另一帧集合可以包括点云的纹理或颜色或两者。
2-D帧表示表示3-D点云的各个层次级别。例如,最低级别可以是位于帧上的单个补片。单个补片是表示3-D点云的属性的点的单个聚类。例如,补片的点的聚类可以表示点的几何形状,诸如点云内的每个点的地理位置。在另一示例中,补片的点的聚类可以表示与聚类中的每个点相关联的颜色值。下一级别可以是单个2-D帧。单个2-D帧包括表示3-D点云的一个或多个补片。下一级别是2-D帧组(GOF)。下一级别是序列。序列包括两个或更多个GOF。最大级别是包括两个或更多个序列的视频。在特定实施例中,更多或更少的级别可以表示3-D点云。例如,级别可以由补片、帧和序列来表示。在另一示例中,补片和帧之间可以存在中间级别,称为补片组。
电子设备300可以识别帧内的元数据。元数据可以在不同的层次级别信令通知。不同的级别用于分配一个或多个标志,以指示特定元数据是否被应用于每个相应的级别。例如,应用于帧的元数据修改帧中的每个补片。在另一示例中,应用于GOF的元数据随后被应用于GOF的每个帧内的每个补片。在另一示例中,应用于序列的元数据随后被应用于特定序列内的GOF的每个帧内的每个补片。在另一示例中,在补片级别应用的元数据可以应用于特定帧的特定补片。
尽管图2和图3示出计算系统中的设备的示例,但是可以对图2和图3进行各种改变。例如,图2和图3中的各种组件可以被组合、进一步细分或省略,并且可以根据特定需要添加附加的组件。作为特定示例,处理器340可以被划分成多个处理器,诸如一个或多个中央处理单元(Central Processing Unit,CPU)和一个或多个图形处理单元(GraphicsProcessing Unit,GPU)。此外,如同计算和通信网络一样,电子设备和服务器可以有各种各样的配置,并且图2和图3不将本公开限制于任何特定的电子设备或服务器。
图4示出根据本公开的实施例的点云405和示例网格410。点云405描绘点云的图示。点云是在3-D空间中可视地定义对象的数字化数据。如所描绘的,点云405包括多个点,每个点表示对象的外部坐标,类似于地形图。例如,每个点可以包括一个或多个属性。属性可以包括几何形状,诸如地理位置。每个点的属性还可以包括颜色、强度、纹理、运动、材料属性等。除几何形状之外的属性可以被称为纹理,使得纹理表示与点云中的每个点相关联的各个方面和性质。
类似地,网格410描绘3-D网格的图示。网格410是在3-D空间中可视地定义对象的数字化数据。网格410的图形描绘由各个点之间的信息的许多多边形或三角形互连来定义。每个多边形可以包括各种信息,诸如属性。属性可以包括几何形状和纹理。纹理包括颜色反射率、运动等。例如,拓扑数据提供顶点之间的连接信息,诸如顶点、边和面的邻接关系。几何信息提供3-D空间中每个顶点的几何位置。属性信息为每个单独的顶点提供法线、颜色和应用相关的信息。每个多边形的顶点类似于点云405中的点。网格410的每个多边形表示对象的外表面。
点云(诸如点云405)和网格(诸如网格410)利用相当大的带宽来从一个计算设备传输到另一个计算设备。压缩对于减小存储和带宽需求是必要的。例如,有损压缩可以压缩点云和网格,同时将失真保持在可容忍级别内,同时减小数据的大小。
图5A示出根据本公开的实施例的编码器500的示例框图。图5B示出根据本公开的实施例的解码器550的示例框图。
编码器500可以类似于图1的服务器104、图1的客户端设备106-116中的任何一个,并且包括类似于图2的服务器200以及图3的电子设备300的内部组件。解码器550可以类似于图1的客户端设备106-116中的任何一个,并且包括类似于图3的电子设备300的内部组件。编码器500可以经由图1的网络102与解码器550通信。编码器500和解码器550的实施例仅用于说明。在不脱离本公开的范围的情况下,可以使用其它实施例。
编码器500可以压缩、编码和传输点云、网格或两者,作为编码比特流。在特定实施例中,编码器500生成点云或网格被映射或投影到其上的多个2-D帧。例如,点云被展开并映射到多个2-D帧上。例如,点云可以沿一个轴(诸如Y轴)展开,并且图像沿其余轴(诸如X轴和Z轴)映射。在另一示例中,3-D点云中的点的聚类可以被投影到2-D帧上。例如,3-D点云中的点的几何坐标Z被投影在2-D帧的X和Y坐标上,其中2-D帧的X和Y坐标对应于3-D点云中的点的X和Y坐标。在特定实施例中,当点云被映射到2-D帧上时,编码器500生成指示点云的每个像素所处位置的占用图(诸如占用图帧522)。例如,被包括在占用图帧522中的占用图指示每个帧的有效点和无效点。无效点是不对应于点云中的点的帧的位置,而有效点是对应于3-D点云中的点的帧的位置。占用图帧522表示为包括占用图的一个或多个帧。
在特定实施例中,编码器500可以将3-D点云502表示为等式。
等式1:
pn=<xn,yn,zn,rn,gn,bn,nxn,nyn,nzn,un,Vn>,n=1,...,N
在等式1中,(xn,yn,zn)表示3-D空间中3-D点云502中的点“n”的X、Y和Z坐标。此外,(rn,gn,bn)表示3-D点云502中的点“n”的颜色。类似地,(nxn,nyn,nzn)表示3-D空间中3-D点云502中的点“n”的法线。此外,(un,vn)表示3-D点云502中的点“n”的纹理。在特定实施例中,点“n”可以具有等式1中给出的属性的子集。在特定实施例中,点“n”可以具有附加属性,诸如材料属性、运动等。这些属性可以与不同的帧(诸如一个或多个几何形状帧514和一个或多个纹理帧518)相关联。通过帧封装512可以生成附加的帧集合,以表示附加属性,诸如材料属性、运动等。
函数g(y,z)可以表示几何形状帧,诸如几何形状帧514中的一个。诸如点pn的点的示例正交投影可以表示为pn=<xn,yn,zn>。例如,点“n”在几何形状帧(Y,Z)平面上的正交投影表示为g(yn,zn)=xn。也就是说,在特定帧的位置(yn,zn)处,存储X坐标的值或X坐标的量化版本。在特定实施例中,2-D帧中的点的实际位置不是(yn,zn)。注意,在其它平面(诸如(X,Z)、(X,Y)或任意平面)上的投影可以类似地定义。在特定实施例中,被压缩的实际值是“xn”的偏移,其中该偏移对于整个补片是恒定的。
在特定实施例中,编码器500是网络服务器、诸如管理服务器的服务器计算机、或者能够将点云的三维映射成二维、压缩帧并编码图像用于传输的任何其它电子计算系统。在特定实施例中,编码器500可以是通过一个或多个网络互连的计算机的“云”,其中每个计算机是计算系统,其在通过图1的网络102被访问时利用集群计算机和组件充当无缝资源的单个池。
解码器550可以解码、解压缩和生成接收到的编码比特流,该编码比特流包括点云、网格或两者的表示。在特定实施例中,解码器550可以从包括多个2-D帧的接收到的比特流中生成多个点云。例如,点云的像素中的每一个可以基于在2-D帧中接收到的信息和接收到的占用图来映射。
编码器500示出编码和压缩点云用于传输的电子设备的本公开的实施例的高级概述。在特定实施例中,编码器500将点云的表示进行打包,用于通过比特流传输到一个或多个解码器(诸如解码器550)。编码器500包括接收到的3-D点云502、补片生成器504、辅助信息506、帧封装512、各种帧(诸如一个或多个几何形状帧514、一个或多个纹理帧518和一个或多个占用图帧522)、各种编码器(诸如编码引擎516、编码引擎520和编码引擎524)和复用器526。
3-D点云502表示编码器500的输入。3-D点云502可以存储在与编码器500相关联的存储器中。3-D点云502可以是单个3-D对象或包括3-D对象的移动的视频。
补片生成器504分解3-D点云502并创建多个补片。补片可以按属性组织。例如,属性可以包括几何形状、纹理、反射率、材料等。附加的帧集合(除了几何形状帧514、纹理帧518和占用图帧522之外)可以表示附加的属性,诸如颜色、反射率、材料、强度、法线等。几何形状(诸如几何形状帧514)是3-D点云502的每个点的地理位置。纹理(诸如纹理帧518)表示3-D点云502的每个点的单个方面,诸如颜色。如上所述,可以创建表示其它属性的附加帧。补片生成器504可以将几何形状属性和纹理属性聚类到不同的2-D帧上。聚类可以基于诸如法线方向、到投影帧的距离、连续性等标准。每个生成的聚类被表示为补片,如下面关于图6A、图6B和图6C所描述的。
在特定实施例中,补片生成器504经由一对一映射将点云中的点投影和映射到2-D帧上。补片生成器504可以通过将点投影到不同的平面上来将点的点投影和映射到2-D帧上。在特定实施例中,将点云中的点投影和映射到2-D帧上可以基于光栅扫描映射、基于X几何坐标的映射、基于Y几何坐标的映射、基于Z几何坐标的映射、基于颜色的映射、基于法线方向的映射等。
补片生成器504还生成辅助信息506。辅助信息506是与每个补片、单个帧、多个帧等相关联的信息。在特定实施例中,辅助信息506是元数据,其基于在生成帧时编码器执行的修改,向解码器指示在重构点云时要执行的各种修改。例如,补片和帧可以包括辅助信息,诸如(i)缩放,(ii)偏移,诸如空间位置偏移和深度偏移,(iii)旋转,(iv)每个点的尺寸,(v)每个点的形状,(vi)分辨率,(vii)点密度,等。
在特定实施例中,用于缩放的元数据可以基于几何坐标“x”、“y”和“z”来表示。例如,关于x坐标,元数据可以表示为“scale_metadata_on_axis_x”。关于y坐标,元数据可以表示为“scale_metadata_on_axis_y”。类似地,关于z坐标,元数据可以表示为“scale_metadata_on_axis_z”。在特定实施例中,点云中的点包括使用缩放被转换成实际物理坐标的整数坐标。
在特定实施例中,用于偏移的元数据可以基于几何坐标“x”、“y”和“z”来表示。例如,关于x坐标,元数据可以表示为“offset_metadata_on_axis_x”。关于y坐标,元数据可以表示为“offset_metadata_on_axis_y”。类似地,关于z坐标,元数据可以表示为“offset_metadata_on_axis_z”。在特定实施例中,点云中的点包括使用偏移被转换成实际物理坐标的整数坐标。
在特定实施例中,用于旋转的元数据可以基于几何坐标“x”、“y”和“z”来表示。例如,关于x坐标,元数据可以表示为“rotation_metadata_on_axis_x”。关于y坐标,元数据可以表示为“rotation_metadata_on_axis_y”。类似地,关于z坐标,元数据可以表示为“rotation_metadata_on_axis_z”。在特定实施例中,点云中的点包括使用旋转被转换成实际物理坐标的整数坐标。注意,在特定实施例中,点云中的点包括使用缩放、偏移和旋转被转换成实际物理坐标的整数坐标。
在特定实施例中,用于在解码的点云中渲染的点的尺寸的元数据可以表示为“point_size_metadata”。当由解码器550重构时,点尺寸元数据调整3-D点云502中的点或像素的尺寸。如果使用小的点尺寸,则重构的点云可能包括孔洞。相反,如果点尺寸太大,则重构的点云可能出现模糊。因此,被包括在重构的点云(诸如由解码器550重构之后的3-D点云502)中的点具有最佳尺寸,使得点云不包括孔洞,同时不出现模糊。可以预定义点尺寸元数据。例如,3-D点云502的创建者可以信令通知元数据中的最佳点尺寸,以供解码器550使用。
类似于点尺寸,用于在解码的点云中渲染的点的形状的元数据可以表示为“point_shape_metadata”。点形状控制点云的视觉质量。类似于每个点的尺寸,每个点的形状可以确保重构的3-D点云不会出现模糊或包括孔洞。如下所示,表1包括可以指示每个点的不同形状的示例元数据值。注意,附加的形状可以用于3-D点云502中的点。注意,附加的“Point_Shape”整数值可以指示附加的点形状。
表1:
诸如解码器550的解码器使用辅助信息506来重构点云。如果编码器500在生成2-D帧的同时修改3-D点云,则生成辅助信息(诸如元数据)。例如,如果通过对被包括在3-D点云中的多个点或像素进行二次采样(sub-sample),3-D点云被缩放到更小的尺寸,则缩放参数可以被表示为元数据并且被包括在辅助信息506中。对3-D点云进行二次采样以降低分辨率减少了被包括在每个2-D帧中的点的数量,这可以在将帧作为编码比特流528进行传输时降低比特率。解码器然后可以重构点云,并基于缩放参数对帧进行上采样(up-sample),并以更高的分辨率重构3-D点云。
此外,辅助信息506可以指示3-D点云502的ROI。ROI可以指示点云的一部分,该部分被与3D点云502的其余部分不同地修改。ROI可以被缩放为第一参数,而将3-D点云的其余部分被缩放为另一参数。3-D点云502的创建者可以识别ROI。例如,3-D点云502的创建者可以将人形的面部识别为ROI,因为面部是重要的,并且与3-D点云502的其余部分相比,应当经由缩放参数进行最低程度的压缩。下面的图9进一步描述3-D点云502的ROI。
辅助信息506还可以包括标志508。标志508指示辅助信息何时被应用于特定补片、补片集合、单个帧、帧组、序列或视频等。访问级别是指组成3-D点云的2-D表示的各种元素的层(tier)或级别,诸如补片、帧、帧组、序列、视频等。访问级别是补片或帧的一个或多个分组。例如,帧中的单个补片可以是一个访问级别。另一访问级别可以是包括许多补片的单个2-D帧。另一访问级别可以是包括两个或更多个帧的帧组(Group Of Frames,GOF),每个帧包括补片。另一访问级别可以是序列。序列表示3-D点云移动的视频的一部分。例如,如果点云正在道路上行走、从地面上提起某物、爬楼梯等。序列包括一个或多个GOF。视频可以包括多个序列。注意,单个点云可以由更多或更少的访问级别来表示,因为访问级别提供3D点云502的各种层次类别。例如,访问级别可以由补片、帧和序列表示。在另一示例中,在补片和帧之间可以存在中间级别,称为补片组。可以定义附加或替代的访问级别。
除了上述元数据类型,元数据还可以应用于点云的特定访问级别。例如,用于缩放的元数据可以在补片级别应用于特定补片。在表示补片的访问级别上调整x、y和z坐标的缩放的示例元数据可以分别表示为“patch_scale_metadata_on_axis_x”、“patch_scale_metadata_on_axis_y”和“patch_scale_metadata_on_axis_z”。用于偏移、旋转等的元数据可以类似地表示。此外,表示不同访问级别的元数据可以以类似的方式对于帧、GOF、序列、视频等进行表示。
诸如缩放、分辨率、点密度、偏移、旋转、点尺寸、点形状等的元数据可以被称为参数集,并且被应用于不同的访问级别。例如,补片参数集(Patch Parameter Set,PPS)包括用于表示3-D点云的一部分的单个帧中的单个补片的元数据的类型。注意,表示几何形状的帧上的补片在表示另一属性(诸如纹理、颜色、材料等)的帧上具有对应的对应部分。在另一示例中,帧参数集(Frame Parameter Set,FPS)包括与每个帧相关的元数据的类型,使得该帧内的所有补片具有相同的帧级别参数。类似地,GOF参数集(GOF Parameter Set,GofPS)定义GOF级别元数据,该元数据对于被包括在GOF中的所有帧都是相同的。同样地,序列参数集(Sequence Parameter Set,SPS)包括序列级别的元数据,该元数据对于所有2-D帧以及对应于被包括在序列中的补片的帧都是相同的。此外,视频参数集(Video Parameter Set,VPS)包括对于所有点云序列都相同的元数据,诸如当比特流包括不同分辨率的多个序列时。在特定实施例中,优先级的顺序是(i)PPS,(ii)FPS,(iii)GofPS,(iv)SPS,以及(v)VPS。注意,一些参数集(诸如PPS、FPS、GofPS、SPS和VPS)或访问级别可以不一定是为点云定义的。此外,可以为点云定义附加的参数集或访问级别。
例如,如果为补片信令通知补片级别的缩放元数据参数,则元数据被视为该补片的缩放值。相反,如果没有为补片信令通知补片级别的缩放元数据参数,而是为包含该补片的帧信令通知帧级别缩放参数,则帧级别缩放元数据参数被分配给该补片的缩放参数。
辅助信息506可以包括非正交变换参数。例如,当补片生成器504生成补片时,补片生成器504可以使用非正交投影而不是正交投影。当在解码器(诸如解码器550)处被识别时,非正交变换参数被用于重构3-D点云。
标志508可以包括向解码器指示辅助信息506何时被应用于2-D帧以重构3-D点云的一个或多个控制标志。标志508可以信令通知被包括在辅助信息506中的信息(诸如元数据)何时被应用于每个相应的访问级别。在特定实施例中,标志508与辅助信息506分离,并经由复用器526复用到编码比特流528中。在特定实施例中,标志508被省略。
每个访问级别可以具有控制元数据参数集是否在比特流中被信令通知的一个或多个标志508。各种标志508可以信令通知特定元数据何时可应用于特定访问级别。如上所述,元数据可以包括控制以下各项的元数据:(i)缩放,(ii)偏移,(iii)旋转,(iv)每个点的尺寸,(v)每个点的形状,等。在特定实施例中,标志508可以是通过(i)通过重用先前信令通知的元数据的绝对信令,(ii)通过重用先前信令通知的元数据的条件信令,以及(iii)使用参考标识的单个控制二进制标志。下面参考语法1、2、3和4讨论使用两个控制二进制标志的绝对信令。下面参考语法6和7讨论使用一个控制二进制标志的绝对信令。下面参考语法8讨论通过重用先前信令通知的元数据的绝对信令。下面参考语法9讨论通过重用先前信令通知的元数据的条件信令。下面参考语法10讨论信令通知元数据的参考标识。
在特定实施例中,可以使用两个控制二进制标志508来信令通知元数据。两个标志508可以包括在每个指定访问级别与每种类型的元数据相关联的(i)启用标志和(ii)存在标志。访问级别可以包括补片级别、帧级别、GOF级别、序列级别和视频级别等。与点云(诸如3-D点云502)相关联的访问级别的数量或描述可以是预定义的或预定的。在特定实施例中,定义两个访问级别,诸如补片和帧。在特定实施例中,除了补片级别、帧级别、GOF级别、序列级别和视频级别的访问级别之外,还定义多个访问级别。
如果标志508包括两个控制标志(诸如启用标志和存在标志),则启用标志比存在标志高一个访问级别被信令通知。如果启用标志为真,则存在标志在相同的访问级别被信令通知。
语法1:
语法1示出如果帧级别的启用标志为真,则解码器550将读取帧级别的帧级别存在标志。此后,如果帧级别的存在标志为真,则解码器550将读取帧级别元数据参数集。此后,如果补片级别的启用标志为真,则解码器550读取各种类型的补片级别元数据(诸如缩放、偏移、旋转、点尺寸和点形状)中的每一个的启用标志。
例如,如果语法元素“patch_metadata_enabled_flag”在帧级别(与帧相关联的访问级别)被信令通知,则该语法元素识别在帧内是否存在补片参数集针对其被信令通知的至少一个补片。如果该标志为真,则语法元素“patch_metadata_present_flag”在补片级别被信令通知,并识别补片参数集是针对哪些补片被信令通知的。缩放元数据的样本语法如下所示。如果标志没有被信令通知,则该标志被解码器550推断为假。
语法2:
此外,关于两个标志508,如果启用标志为假或者如果存在标志为假,则最高访问级别的元数据被设置为默认值。如果没有被信令通知,则低于最高访问级别的一个访问级别的元数据被设置为高一个访问级别的对应元数据。如果启用标志为假或者如果存在标志为假,则可以不信令通知元数据。
语法3:
上面的语法3示出不同访问级别的各种元数据参数集(Parameters Set,PS),诸如GOF参数集(语法元素“GofPS”)、帧参数集(语法元素“FPS”)和补片参数集(语法元素“PPS”)。每个参数集包括指示元数据参数集是否在比特流中被信号通知的标志(诸如标志508)。在每个参数集内,每个元数据都具有控制该元数据是否在参数集中被信令通知的标志。例如,GofPS中的元数据参数被初始化为默认值。FPS中的元数据参数被初始化为它们在GofPS中的对应参数。此后,PPS中的元数据参数被初始化为它们在FPS中的对应参数。此外,语法2示出用于缩放、偏移、旋转、点尺寸、点形状的元数据。
语法3示出如果在帧级别存在启用标志,则解码器550执行两个动作之一。如果帧级别的存在标志存在,则解码器550读取缩放元数据并将其分别应用于x、y和z坐标。如果帧级别的启用标志不存在,则解码器550将来自帧访问级别的高一个访问级别的元数据用于x、y和z元数据。在特定实施例中,高一个访问级别可以是GOF访问级别。
下面的语法4示出应用两个控制标志(启用标志和存在标志(表示为标志508))来信令通知是否在特定访问级别应用元数据。
语法4:
语法4示出信令通知元数据何时可应用于不同访问级别的标志508。解码器550可以接收编码比特流528。编码比特流528可以包括辅助信息506,辅助信息506包括标志508和元数据两者。语法4的第1行至第13行示出示例比特流报头。从语法4的第14行开始,示出GOF报头语法。GOF语法报头对应于GOF的访问级别。从第47行开始,示出GOF元数据语法。GOF元数据语法被表示为GOF参数集。从第95行开始,示出帧辅助信息。从第151行开始,示出帧级别元数据语法。帧元数据语法被表示为帧参数集。帧级别对应于帧的访问级别。此外,从第199行开始,示出补片级别元数据语法。补片元数据语法被表示为补片参数集。补片级别对应于补片的访问级别。当默认值被分配给特定访问级别的元数据时,默认值可以是预定的,或者元数据可以被分配给来自下一最高访问级别的值。在特定实施例中,预定值仅被分配给最高访问级别,而更低访问级别被分配来自下一最高访问级别的值。注意,标志可以可互换地被设置为零或假。还需要注意的是,标志可以可互换地被设置为一或真。
参考上面的语法4,语法元素“gof_metadata_enabled_flag”、“gof_scale_enabled_flag”、“gof_offset_enabled_flag”、“gof_rotation_enabled_flag”、“gof_point_size_enabled_flag”和“gof_point_shape_enabled_flag”被包括在比特流报头语义中。语法4的第5行和第6行的语法元素“gof_metadata_enabled_flag”指示GOF级别元数据参数集是否在比特流中被信令通知。如果“gof_metadata_enabled_flag”等于一(或真),则向解码器550指示可以针对一些GOF用信令通知GOF级别元数据参数集。替代地,如果“gof_metadata_enabled_flag”等于零(或假),则向解码器550指示GOF级别元数据参数集没有被信令通知。当GOF级别元数据参数集没有被信令通知时,GOF级别中的元数据参数被分配默认值。例如,默认值可以是来自下一最高访问级别的值。在另一示例中,如果GOF访问级别是最高定义的访问级别,则默认值可以是预定义值。
语法4的第7行和第48行的语法元素“gof_scale_metadata_enabled_flag”指示GOF级别缩放元数据参数是否在比特流中被信令通知。如果“gof_scale_metadata_enabled_flag”等于一(或真),则向解码器550指示可以针对一些GOF信令通知GOF级别缩放元数据参数。替代地,如果“gof_scale_metadata_enabled_flag”等于零(或假),则向解码器550指示GOF级别缩放元数据参数没有被信令通知。当GOF级别缩放元数据参数没有被信令通知时,GOF级别中的缩放元数据参数被分配默认值。例如,默认值可以是来自下一最高访问级别的值。在另一示例中,如果GOF访问级别是最高定义的访问级别,则默认值可以是预定义值。注意,如果语法4中不存在“gof_scale_metadata_enabled_flag”,则它被假设为零。
类似地,语法4的第8行和第58行的语法元素“gof_offset_metadata_enabled_flag”指示GOF级别偏移元数据参数是否在比特流中被信令通知。如果“gof_offset_metadata_enabled_flag”等于一(或真),则向解码器550指示可以针对一些GOF信令通知GOF级别偏移元数据参数。替代地,如果“gof_offset_metadata_enabled_flag”等于零(或假),则指示GOF级别偏移元数据参数没有被信令通知。当GOF级别偏移元数据参数没有被信令通知时,GOF级别中的偏移元数据参数被分配默认值。例如,默认值可以是来自下一最高访问级别的值。在另一示例中,如果GOF访问级别是最高定义的访问级别,则默认值可以是预定义值。注意,如果语法4中不存在“gof_offset_metadata_enabled_flag”,则它被假设为零。
此外,语法4的第9行和第68行的语法元素“gof_rotation_metadata_enabled_flag”指示GOF级别旋转元数据参数是否在比特流中被信令通知。如果“gof_rotation_metadata_enabled_flag”等于一(或真),则向解码器550指示可以针对一些GOF信令通知GOF级别旋转元数据参数。替代地,如果“gof_rotation_metadata_enabled_flag”等于零(或假),则指示GOF级别旋转元数据参数没有被信令通知。当GOF级别旋转元数据参数没有被信令通知时,GOF级别中的旋转元数据参数被分配默认值。例如,默认值可以是来自下一最高访问级别的值。在另一示例中,如果GOF访问级别是最高定义的访问级别,则默认值可以是预定义值。注意,如果语法4中不存在“gof_rotation_metadata_enabled_flag”,则它被假设为零。
此外,语法4的第10行和第78行的语法元素“gof_point_size_metadata_enabled_flag”指示GOF级别点尺寸元数据参数是否在比特流中被信令通知。如果“gof_point_size_metadata_enabled_flag”等于一(或真),则向解码器550指示可以针对一些GOF信令通知GOF级别点尺寸元数据参数。替代地,如果“gof_point_size_metadata_enabled_flag”等于零(或假),则指示GOF级别点尺寸元数据参数没有被信令通知。当GOF级别点尺寸元数据参数没有被信令通知时,GOF级别中的点尺寸元数据参数被分配给其默认值。例如,默认值可以是来自下一最高访问级别的值。在另一示例中,如果GOF访问级别是最高定义的访问级别,则默认值可以是预定义值。注意,如果语法4中不存在“gof_point_size_metadata_enabled_flag”,则它被假设为零。
此外,语法4的第11行和第86行的语法元素“gof_point_shape_metadata_enabled_flag”指示GOF级别点形状元数据参数是否在比特流中被信令通知。如果“gof_point_shape_metadata_enabled_flag”等于一(或真),则向解码器550指示可以针对一些GOF信令通知GOF级别点形状元数据参数。替代地,如果“gof_point_shape__metadata_enabled_flag”等于零(或假),则指示GOF级别点形状元数据参数没有被信令通知。当GOF级别点形状元数据参数没有被信令通知时,GOF级别中的点形状元数据参数被分配给其默认值。例如,默认值可以是来自下一最高访问级别的值。在另一示例中,如果GOF访问级别是最高定义的访问级别,则默认值可以是预定义值。注意,如果语法4中不存在“gof_point_shape_metadata_enabled_flag”,则它被假设为零。
参考上面的语法4,语法元素“gof_metadata_present_flag”、“gof_scale_metadata_present_flag”、“gof_offset_metadata_enabled_flag”、“gof_rotation_metadata_enabled_flag”、“gof_point_size_metadata_present_flag”、“gof_point_shape_metadata_present_flag”、“frame_metadata_enabled_flag”、“frame_scale_metadata_enabled_flag”、“frame_offset_metadata_enabled_flag”、“frame_rotation_metadata_enabled_flag”、“frame_point_size_metadata_enabled_flag”和“frame_point_shape_metadata_enabled_flag”被包括在帧组报头语义中。
语法4的第31行和第33行的语法元素“gof_metadata_present_flag”指示是否针对当前GOF信令通知gof级别元数据参数集。如果“gof_metadata_present_flag”等于一(或真),则向解码器550指示针对当前GOF信令通知gof级别无数据参数集。替代地,如果“gof_metadata_present_flag”等于零(或假),则向解码器550指示没有针对当前GOF信令通知gof级别元数据参数集。当没有针对当前GOF信令通知gof级别元数据参数集时,当前GOF中的缩放元数据参数被分配默认值。例如,默认值可以是来自下一最高访问级别的值。在另一示例中,如果GOF访问级别是最高定义的访问级别,则默认值可以是预定义值。注意,如果语法4中不存在“gof_metadata_present_flag”,则它被假设为零。
类似地,语法4的第49行和第51行的语法元素“gof_scale_metadata_present_flag”指示是否针对当前GOF信令通知GOF级别缩放元数据参数。如果“gof_scale_metadata_present_flag”等于一(或真),则向解码器550指示针对当前GOF信令通知沿x、y和z轴的GOF级别缩放元数据参数。语法元素“gof_scale_metadata_on_axis_x”、“gof_scale_metadata_on_axis_y”和“gof_scale_metadata_on_axis_z”分别指示针对当前GOF的沿x轴、y轴和z轴的GOF级别缩放的值。如果“gof_scale_metadata_present_flag”等于零(或假),则向解码器550指示没有针对当前GOF信令通知GOF级别缩放元数据参数。当没有针对当前GOF信令通知GOF级别缩放元数据参数时,语法元素“gof_scale_metadata_on_axis_x”、“gof_scale_metadata_on_axis_y”和“gof_scale_metadata_on_axis_z”被设置为默认值,诸如一。如果语法4中不存在“gof_scale_metadata_present_flag”,则它被假设为零。
语法4的第58行的语法元素“gof_offset_metadata_enabled_flag”指示是否针对当前GOF信令通知GOF级别偏移元数据参数。如果“gof_offset_metadata_present_flag”等于一(或真),则向解码器550指示针对当前GOF信令通知沿x、y和z轴的GOF级别偏移元数据参数。例如,“gof_offset_metadata_on_axis_x”、“gof_offset_metadata_on_axis_y”和“gof_offset_metadata_on_axis_z”分别指示针对当前GOF的沿x轴、y轴和z轴的GOF级别偏移的值。替代地,如果“gof_offset_metadata_present_flag”等于零(或假),则向解码器550指示没有针对当前GOF信令通知GOF级别偏移元数据参数。当没有针对当前GOF信令通知GOF级别偏移元数据参数时,“gof_offset_metadata_on_axis_x”、“gof_offset_metadata_on_axis_y”和“gof_offset_metadata_on_axis_z”被设置为默认值,诸如零。例如,默认值可以是来自下一最高访问级别的值。在另一示例中,如果GOF访问级别是最高定义的访问级别,则默认值可以是预定义值。如果语法4中不存在“gof_offset_metadata_present_flag”,则它被假设为零。
语法4的第68行的语法元素“gof_rotation_metadata_enabled_flag”指示是否针对当前GOF信令通知GOF级别旋转元数据参数。如果“gof_rotation_metadata_present_fla”等于一(或真),则向解码器550指示针对当前GOF信令通知沿x、y和z轴的GOF级别旋转元数据参数。替代地,如果“gof_rotation_metadata_present_flag”等于零(或假),则指示没有针对当前GOF信令通知GOF级别旋转元数据参数。当没有针对当前GOF信令通知GOF级别旋转元数据参数时,语法元素“gof_rotation_metadata_on_axis_x”、“gof_rotation_metadata_on_axis_y”和“gof_rotation_metadata_on_axis_z”被设置为默认值,诸如零。例如,默认值可以是来自下一最高访问级别的值。在另一示例中,如果GOF访问级别是最高定义的访问级别,则默认值可以是预定义值。注意,如果语法4中不存在“gof_rotation_metadata_present_flag”,则它被假设为零。
参考旋转元数据,语法元素“gof_rotation_metadata_on_axis_x”指示针对当前GOF沿x轴的GOF级别旋转角度的值,以2-16度为单位。“gof_rotation_metadata_on_axis_x”的值范围为-180*216到180*216-1。类似地,语法元素“gof_rotation_metadata_on_axis_y”指示针对当前GOF沿y轴的GOF级别旋转角度的值,以2-16度为单位。“gof_rotation_metadata_on_axis_y”的值范围为-180*216到180*216-1。此外,语法元素“gof_rotation_metadata_on_axis_z”指示针对当前GOF沿z轴的GOF级别旋转角度的值,以2-16度为单位。“gof_rotation_metadata_on_axis_z”的值范围为-180*216到180*216-1。在特定实施例中,可以以更低的精度发送旋转角度,诸如2-8。
语法4的第79行和第81行的语法元素“gof_point_size_metadata_present_flag”指示是否针对当前GOF信令通知GOF级别点尺寸元数据参数。如果“gof_point_size_metadata_present_flag”等于一(或真),则向解码器550指示针对当前GOF信令通知GOF级别点尺寸元数据参数。替代地,如果“gof_point_size_metadata_present_flag”等于零(或假),则指示没有针对当前GOF信令通知GOF级别点尺寸元数据参数。当GOF级别点尺寸元数据参数没有被信令通知时,gof_point_size_metadata被设置为默认值,诸如一。注意,如果语法4中不存在“gof_point_size_metadata_present_flag”,则它被假设为零。此外,项“gof_point_size_metadata”指示针对当前GOF的GOF级别点尺寸的值。
类似地,语法4的第87行的语法元素“gof_point_shape_metadata_present_flag”指示是否针对当前GOF信令通知GOF级别点形状元数据参数。如果“gof_point_shape_metadata_present_flag”等于一(或真),则指示针对当前GOF信令通知GOF级别点形状元数据参数。替代地,如果“gof_point_shape_metadata_present_flag”等于零(或假),则指示没有针对当前GOF信令通知GOF级别点形状元数据参数。当GOF级别点形状元数据参数没有被信令通知时,“gof_point_shape_metadata”被设置为默认值,诸如零。例如,默认值可以是来自下一最高访问级别的值。在另一示例中,如果GOF访问级别是最高定义的访问级别,则默认值可以是预定义值。注意,如果语法4中不存在“gof_point_snape_metadata_present_flag”,则它被假设为零。此外,语法元素“gof_point_shape_metadata”指示针对当前GOF的GOF级别点形状的值。针对当前GOF的GOF级别点形状的值可以类似于上面表1的值来识别。
语法3的第105行的语法元素“frame_metadata_enabled_flag”指示帧级别元数据参数集是否在比特流中被信令通知。如果“frame_metadata_enabled_flag”等于一(或真),则向解码器550指示可以针对一些帧信令通知帧级别元数据参数集。替代地,如果“frame_metadata_enabled_flag”等于零(或假),则指示帧级别元数据参数集没有被信令通知,因此帧级别中的元数据参数被分配来自GOF级别的对应值。
语法4的第38行和第152行的语法元素“frame_scale_metadata_enabled_flag”指示帧级别缩放元数据参数是否在比特流中被信令通知。如果“frame_scale_metadata_enabled_flag”等于一(或真),则指示可以针对一些帧信令通知帧级别缩放元数据参数。替代地,如果“frame_scale_metadata_enabled_flag”等于零(或假),则指示帧级别缩放元数据参数没有被信令通知。如果帧级别缩放元数据参数没有被信令通知,则帧级别中的缩放元数据参数被分配给来自GOF级别的对应值。注意,如果语法4中不存在“frame_scale_metadata_enabled_flag”,则它被假设为零。
类似地,语法4的第39行和第162行的语法元素“frame_offset_metadata_enabled_flag”指示帧级别偏移元数据参数是否在比特流中被信令通知。如果“frame_offset_metadata_enabled_flag”等于一(或真),则向解码器550指示可以针对一些帧信令通知帧级别偏移元数据参数。替代地,如果“frame_offset_metadata_enabled_flag”等于零(或假),则指示帧级别偏移元数据参数没有被信令通知。如果帧级别偏移元数据参数没有被信令通知,则帧级别中的偏移元数据参数被分配来自GOF级别的对应值。注意,如果语法4中不存在“frame_offset_metadata_enabled_flag”,则它被假设为零。
类似地,语法4的第40行和第172行的语法元素“frame_rotation_metadata_enabled_flag”指示帧级别旋转元数据参数是否在比特流中被信令通知。如果“frame_rotation_metadata_enabled_flag”等于一(或真),则指示可以针对一些帧信令通知帧级别旋转元数据参数。替代地,如果“frame_rotation_metadata_enabled_flag”等于零(或假),则指示帧级别旋转元数据参数没有被信令通知。如果帧级别旋转元数据参数没有被信令通知,则帧级别中的旋转元数据参数被分配来自GOF级别的对应值。注意,如果语法4中不存在“frame_rotation_metadata_enabled_flag”,则它被假设为零。
此外,语法3的第41行和第182行的语法元素“frame_point_size_metadata_enabled_flag”指示帧级别点尺寸元数据参数是否在比特流中被信令通知。如果“frame_point_size_metadata_enabled_flag”等于一(或真),则指示可以针对一些帧信令通知帧级别点尺寸元数据参数。替代地,如果“frame_point_size_metadata_enabled_flag”等于零(或假),则指示帧级别点尺寸元数据参数没有被信令通知。如果帧级别点尺寸元数据参数没有被信令通知,则帧级别中的点尺寸元数据参数被分配来自GOF级别的对应值。如果语法4中不存在“frame_point_size_metadata_enabled_flag”,则它被假设为零。
此外,语法元素“frame_point_shape_metadata_enabled_flag”指示帧级别点形状元数据参数是否在比特流中被信令通知。如果“frame_point_shape_metadata_enabled_flag”等于一(或真),则向解码器550指示可以针对一些帧信令通知帧级别点形状元数据参数。替代地,如果“frame_point_shape__metadata_enabled_flag”等于零(或假),则指示帧级别点形状元数据参数没有被信令通知。如果帧级别点形状元数据参数没有被信令通知,则帧级别中的点形状元数据参数被分配给GOF级别中的对应值。注意,如果语法4中不存在“frame_point_shape_metadata_enabled_flag”,则它被假设为零。
参考上面的语法4,语法元素“frame_metadata_present_flag”、“frame_scale_metadata_present_flag”、“frame_offset_metadata_enabled_flag”、“frame_rotation_metadata_enabled_flag”、“frame_point_size_metadata_present_flag”、“frame_point_shape_metadata_present_flag”、“patch_metadata_enabled_flag”、“patch_scale_metadata_enabled_flag”、“patch_offset_metadata_enabled_flag”、“patchrotation_metadata_enabled_flag”、“patch_point_size_metadata_enabled_flag”和“patch_point_shape-_metadata_enabled_flag”被包括在帧组辅助信息语义中。这些元素被每帧组一个地指定。
例如,语法4的第106行和第108行的语法元素“frame_metadata_present_flag”指示是否针对当前帧信令通知帧级别元数据参数集。如果“frame_metadata_present_flag”等于一(或真),则向解码器550指示针对当前帧信令通知帧级别元数据参数集。替代地,如果“frame_metadata_present_flag”等于零(或假),则指示没有针对当前帧信令通知帧级别元数据参数集。当没有针对当前帧信令通知帧级别元数据参数集时,当前帧中的缩放元数据参数被分配来自GOF级别的对应值。如果语法4中不存在“frame_metadata_present_flag”,则它被假设为零。
类似地,语法4的第153行和第155行的语法元素“frame_scale_metadata_present_flag”指示是否针对当前帧信令通知帧级别缩放元数据参数。如果“frame_scale_metadata_present_flag”等于一(或真),则向解码器550指示针对当前帧信令通知沿x、y和z轴的帧级别缩放元数据参数。例如,语法元素“frame_scale_metadata_on_axis_x”、“frame_scale_metadata_on_axis_y”和“frame_scale_metadata_on_axis_z”分别指示当前帧沿x轴、y轴和z轴的帧级别缩放的值。替代地,如果“frame_scale_metadata_present_flag”等于零(或假),则指示没有针对当前帧信令通知帧级别缩放元数据参数,因此“frame_scale_metadata_on_axis_x”、“frame_scale_metadata_on_axis_y”和“frame_scale_metadata_on_axis_z”被设置为默认值,诸如一。注意,如果语法4中不存在“frame_scale_metadata_present_flag”,则它被假设为零。
语法4的第162行至第171行的语法元素“frame_offset_metadata_enabled_flag”指示是否针对当前帧信令通知帧级别偏移元数据参数。语法元素“frame_offset_metadata_on_axis_x”、“frame_offset_metadata_on_axis_y”和“frame_offset_metadata_on_axis_z”指示当前帧沿x轴、y轴和z轴的帧级别偏移的值。如果“frame_offset_metadata_present_flag”等于一(或真),则向解码器550指示针对当前帧信令通知沿x、y和z轴的帧级别偏移元数据参数。替代地,如果“frame_offset_metadata_present_flag”等于零(或假),则指示没有针对当前帧信令通知帧级别偏移元数据参数。注意,如果没有针对当前帧信令通知帧级别偏移元数据参数,则“frame_offset_metadata_on_axis_x”、“frame_offset_metadata_on_axis_y”和“frame_offset_metadata_on_axis_z”被设置为默认值,诸如零。例如,默认值可以是来自下一最高访问级别(诸如GOF访问级别)的值。在另一示例中,如果帧访问级别是最高定义的访问级别,则默认值可以是预定义值。如果语法4中不存在“frame_offset_metadata_present_flag”,则它被假设为零。
语法4的第172行的语法元素“frame_rotation_metadata_enabled_flag”指示是否针对当前帧信令通知帧级别旋转元数据参数。如果“frame_rotation_metadata_present_flag”等于一(或真),则指示针对当前帧信令通知沿x、y和z轴的帧级别旋转元数据参数。替代地,如果“frame_rotation_metadata_present_flag”等于零(或假),则指示没有针对当前帧信令通知帧级别旋转元数据参数。当帧级别旋转元数据参数没有被信令通知时,“frame_rotation_metadata_on_axis_x”、“frame_rotation_metadata_on_axis_y”和“frame_rotation_metadata_on_axis_z”被设置为默认值,诸如零。例如,默认值可以是来自下一最高访问级别(诸如GOF访问级别)的值。在另一示例中,如果帧访问级别是最高定义的访问级别,则默认值可以是预定义值。注意,如果语法4中不存在“frame_rotation_metadata_present_flag”,则它被假设为零。
参考帧旋转元数据,语法元素“frame_rotation_metadata_on_axis_x”指示针对当前帧沿x轴的帧级别旋转角度的值,以2-16度为单位。类似地,“frame_rotation_metadata_on_axis_y”指示针对当前帧沿y轴的帧级别旋转角度的值,以2-16度为单位。此外,“frame_rotation_metadata_on_axis_z”指示针对当前帧沿z轴的帧级别旋转角度的值,以2-16度为单位。“frame_rotation_metadata_on_axis_x”、“frame_rotation_metadata_on_axis_y”和“frame_rotation_metadata_on_axis_z”的值范围为-180*216到180*216-1。
语法4的第183行的语法元素“frame_point_size_metadata_present_flag”指示是否针对当前帧信令通知帧级别点尺寸元数据参数。如果“frame_point_size_metadata_present_flag”等于一(或真),则向解码器550指示针对当前帧信令通知帧级别点尺寸元数据参数。替代地,如果“frame_point_size_metadata_present_flag”等于零(或假),则指示没有针对当前帧信令通知帧级别点尺寸元数据参数。当没有针对当前帧信令通知帧级别点尺寸元数据参数时,“frame_point_size_metadata”被设置为默认值,诸如一。注意,如果语法4中不存在“frame_point_size_metadata_present_flag”,则该项被假设为零。此外,语法4的第186行的“frame_point_size_metadata”指示针对当前帧的帧级别点尺寸的值。
此外,语法4的第191行的语法元素“frame_point_shape_metadata_present_flag”指示是否针对当前帧信令通知帧级别点形状元数据参数。如果“frame_point_shape_metadata_present_flag”等于一(或真),则向解码器550指示针对当前帧信令通知帧级别点形状元数据参数。替代地,如果“frame_point_shape_metadata_present_flag”等于零(或假),则指示没有针对当前帧信令通知帧级别点形状元数据参数。如果没有针对当前帧信令通知帧级别点形状元数据参数,则语法元素“frame_point_shape_metadata”被设置为默认值,诸如零。例如,默认值可以是来自下一最高访问级别(诸如GOF访问级别)的值。在另一示例中,如果帧访问级别是最高定义的访问级别,则默认值可以是预定义值。注意,如果语法4中不存在“frame_point_shape_metadata_present_flag”,则它被假设为零。此外,语法元素“frame_point_shape_metadata”指示针对当前帧的帧级别点形状的值。针对当前帧的帧级别点形状的值可以类似于上面表1的值来识别。
语法4的第110行和第112行的语法元素“patch_metadata_enabled_flag”指示补片级别元数据参数集是否在比特流中被信令通知。如果“patch_metadata_enabled_flag”等于一(或真),则向解码器550指示可以针对一些补片信令通知补片级别元数据参数集。替代地,patch_metadata_enabled_flag等于零(或假),则指示补片级别元数据参数集没有被信令通知。当补片级别元数据参数集没有被信令通知时,补片级别中的元数据参数被分配来自帧级别的对应值。
此外,语法4的第113行和第200行的语法元素“patch_scale_metadata_enabled_flag”指示补片级别缩放元数据参数是否在比特流中被信令通知。如果“patch_scale_metadata_enabled_flag”等于一(或真),则向解码器550指示可以针对一些补片信令通知补片级别缩放元数据参数。替代地,如果“patch_scale_metadata_enabled_flag”等于零(或假),则指示补片级别缩放元数据参数没有被信令通知。如果补片级别缩放元数据参数没有被信令通知,则补片级别中的缩放元数据参数被分配来自GOF级别的对应值。注意,如果“patch_scale_metadata_enabled_flag”不存在,则它被假设为零。
语法4的第114行和第210行的语法元素“patch_offset_metadata_enabled_flag”指示补片级别偏移元数据参数是否在比特流中被信令通知。如果“patch_offset_metadata_enabled_flag”等于一(或真),则向解码器550指示可以针对一些补片信令通知补片级别偏移元数据参数。替代地,如果“patch_offset_metadata_enabled_flag”等于零(或假),则指示补片级别偏移元数据参数没有被信令通知。如果补片级别偏移元数据参数没有被信令通知,则补片级别中的偏移元数据参数被分配帧级别中的对应值。注意,如果语法4中不存在“patch_offset_metadata_enabled_flag”,则它被假设为零。
类似地,语法4的第115行和第220行的语法元素“patch_rotation_metadata_enabled_flag”指示补片级别旋转元数据参数是否在比特流中被信令通知。如果“patch_rotation_metadata_enabled_flag”等于一(或真),则向解码器550指示可以针对一些补片信令通知补片级别旋转元数据参数。替代地,如果“patch_rotation_metadata_enabled_flag”等于零(或假),则指示补片级别旋转元数据参数没有被信令通知。如果补片级别旋转元数据参数没有被信令通知,则补片级别中的旋转元数据参数被分配帧级别的对应值。注意,如果语法4中不存在“patch_rotation_metadata_enabled_flag”,则它被假设为零。
语法4的第116行和第230行的语法元素“patch_point_size_metadata_enabled_flag”指示补片级别点尺寸元数据参数是否在比特流中被信令通知。如果“patch_point_size_metadata_enabled_flag”等于一(或真),则指示可以针对一些补片信令通知补片级别点尺寸元数据参数。替代地,如果“patch_point_size_metadata_enabled_flag”等于零(或假),则指示补片级别点尺寸元数据参数没有被信令通知。如果补片级别点尺寸元数据参数没有被信令通知,则补片级别中的点尺寸元数据参数被分配帧级别的对应值。注意,如果语法4中不存在“patch_point_size_metadata_enabled_flag”,则它被假设为零。
此外,语法4的第117行和第238行的语法元素“patch_point_shape_metadata_enabled_flag”指示补片级别点形状元数据参数是否在比特流中被信令通知。如果“patch_point_shape_metadata_enabled_flag”等于一(或真),则向解码器550指示可以针对一些补片信令通知补片级别点形状元数据参数。替代地,如果“patch_point_shape_metadata_enabled_flag”等于零(或假),则指示补片级别点形状元数据参数没有被信令通知。如果补片级别点形状元数据参数没有被信令通知,则补片级别中的点形状元数据参数被分配来自帧级别的对应值。注意,如果语法4中不存在“patch_point_shape_metadata_enabled_flag”,则它被假设为零。
参考上面的语法4,语法元素“patch_metadata_present_flag”、“patch_scale_metadata_present_flag”、“patch_offset_metadata_enabled_flag”、“patch_rotation_metadata_enabled_flag”、“patch_point_size_metadata_present_flag”和“patch_point_shape_metadata_present_flag”被每补片一次地指定。
例如,语法4的第132行和第134行的语法元素“patch_metadata_present_flag”指示是否针对当前补片信令通知补片级别元数据参数集。如果‘patch_metadata_present_flag’等于一(或真),则向解码器550指示针对当前补片信令通知补片级别元数据参数集。替代地,如果“patch_metadata_present_flag”等于零(或假),则指示没有针对当前补片信令通知补片级别元数据参数集。如果没有针对当前补片信令通知补片级别元数据参数集,则当前补片中的缩放元数据参数被分配来自帧级别的对应值。注意,如果语法4中不存在“patch_metadata_present_flag”,则它被假设为零。
语法4的行的语法元素“patch_scale_metadata_present_flag”指示是否针对当前补片信令通知补片级别缩放元数据参数。如果“patch_scale_metadata_present_flag”等于一(或真),则指示针对当前补片信令通知沿x、y和z轴的补片级别缩放元数据参数。替代地,如果“patch_scale_metadata_present_flag”等于零(或假),则指示没有针对当前补片信令通知补片级别缩放元数据参数,因此“patch_scale_metadata_on_axis_x”、“patch_scale_metadata_on_axis_y”和“patch_scale_metadata_on_axis_z”被设置为默认值,诸如一。注意,如果语法4中不存在“patch_scale_metadata_present_flag”,则它被假设为零。此外,语法元素“patch_scale_metadata_on_axis_x”、“patch_scale_metadata_on_axis_y”和“patch_scale_metadata_on_axis_z”分别指示针对当前补片沿x轴、y轴和轴的补片级别缩放的值。
此外,语法4的第114行和第210行的语法元素“patch_offset_metadata_enabled_flag”指示是否针对当前补片信令通知补片级别偏移元数据参数。如果“patch_offset_metadata_present_flag”等于一(或真),则向解码器550指示针对当前补片信令通知沿x、y和z轴的补片级别偏移元数据参数。替代地,如果“patch_offset_metadata_present_flag”等于零(或假),则指示没有针对当前补片信令通知补片级别偏移元数据参数,因此patch_offset_metadata_on_axis_x、patch_offset_metadata_on_axis_y和patch_offset_metadata_on_axis_z被设置为默认值,诸如零。例如,默认值可以是来自下一最高访问级别(诸如帧访问级别)的值。在另一示例中,如果补片访问级别是最高定义的访问级别,则默认值可以是预定义值。注意,如果语法4中不存在“patch_offset_metadata_present_flag”,则它被假设为零。语法元素“patch_offset_metadata_on_axis_x”、“patch_offset_metadata_on_axis_y”和“patch_offset_metadata_on_axis_z”分别指示针对当前补片沿x轴、y轴和z轴的补片级别偏移的值。
此外,语法4的第115行和第220行的语法元素“patch_rotation_metadata_enabled_flag”指示是否针对当前补片信令通知补片级别旋转元数据参数。如果“patch_rotation_metadata_present_flag”等于一(或真),则向解码器550指示针对当前补片信令通知沿x、y和z轴的补片级别旋转元数据参数。替代地,如果“patch_rotation_metadata_present”等于零(或假),则指示没有针对当前补片信令通知补片级别旋转元数据参数。如果没有针对当前补片信令通知补片级别旋转元数据参数,则“patchrotation_metadata_on_axis_x”、“patch_rotation_metadata_on_axis_y”和“patch_rotation_metadata_on_axis_z”被设置为默认值,诸如零。例如,默认值可以是来自下一最高访问级别(诸如帧访问级别)的值。在另一示例中,如果补片访问级别是最高定义的访问级别,则默认值可以是预定义值。注意,如果语法4中不存在“patch_rotation_metadata_present_flag”,则它被假设为零。
参考旋转元数据,语法元素“patch_rotation_metadata_on_axis_x”指示针对当前补片沿x轴的补片级别旋转角度的值,以2-16度为单位。类似地,语法元素“patch_rotation_metadata_on_axis_y”指示针对当前补片沿y轴的补片级别旋转角度的值,以2-16度为单位。此外,语法元素“patch_rotation_metadata_on_axis_z”指示针对当前补片沿z轴的补片级别旋转角度的值,以2-16度为单位。“patch_rotation_metadata_on_axis_x”、“patchrotation_metadata_on_axis_y”和“patch_rotation_metadata_on_axis_z”的值范围为-180*216到180*216-1。
语法4的第231行和第233行的语法元素“patch_point_size_metadata_present_flag”指示是否针对当前补片信令通知补片级别点尺寸元数据参数。例如,如果“patch_point_size_metadata_present_flag”等于一(或真),则向解码器550指示针对当前补片信令通知补片级别点尺寸元数据参数。替代地,如果“patch_point_size_metadata_present_flag”等于零(或假),则指示没有针对当前补片信令通知补片级别点尺寸元数据参数。如果没有针对当前补片信令通知补片级别点尺寸元数据参数,则patch_point_size_metadata被设置为默认值,诸如一。注意,如果语法4中不存在“patch_point_size_metadata_present_flag”,则它被假设为零。语法元素“patch_point_size_metadata”指示针对当前补片的补片级别点尺寸的值。
最后,语法4的第239行和第241行的语法元素“patch_point_shape_metadata_present_flag”指示是否针对当前补片信令通知补片级别点形状元数据参数。例如,如果“patch_point_shape_metadata_present_flag”等于一(或真),则向解码器550指示针对当前补片信令通知补片级别点形状元数据参数。替代地,如果“patch_point_shape_metadata_present_flag”等于零(或假),则指示没有针对当前补片信令通知补片级别点形状元数据参数。如果没有针对当前补片信令通知补片级别点形状元数据参数,则“patch_point_shape_metadata”被设置为默认值,诸如零。例如,默认值可以是来自下一最高访问级别(诸如帧访问级别)的值。在另一示例中,如果补片访问级别是最高定义的访问级别,则默认值可以是预定义值。注意,如果语法4中不存在语法元素“patch_point_shape_metadata_present_flag”,则它被假设为零。此外,语法元素“patch_point_shape_metadata”指示针对当前补片的补片级别点形状的值。针对当前补片的补片级别点形状的值可以类似于上面表1中的值来识别。
在特定实施例中,在最高访问级别,只有存在标志被信令通知,而启用标志没有被信令通知。在特定实施例中,在最高访问级别,启用标志被假设为一(或真)。
元数据的类型,诸如缩放、偏移、旋转、点尺寸和点形状,可以修改解码器550如何重构3-D点云502。具体地,元数据可以(i)修改稀疏的点云,(ii)执行渐进缩放、指示ROI、并将点云的一部分与点云的其余部分不同地修改为所指示的ROI,以及(iii)当解码器550重构点云时,执行自适应点尺寸和形状渲染以减少或去除点云中的孔洞。
在特定实施例中,在将点云中的点投影和映射到2-D帧上之后,这些点可以被分类(sort)并封装(pack)在2-D帧中。帧封装512将点分类并封装在补片内。
帧封装512将补片分类并封装到一个或多个几何形状帧514和一个或多个纹理帧518中。在特定实施例中,补片生成器生成一个或多个占用图,并且帧封装512将占用图封装到一个或多个占用图帧522上,其中一个或多个占用图帧522对应于一个或多个几何形状帧514和一个或多个纹理帧518。对应于由补片生成器504生成的补片的几何形状和纹理信息被封装到单独的视频帧中,诸如一个或多个几何形状帧514和一个或多个纹理帧518。在特定实施例中,帧封装512创建一个或多个几何形状帧514和一个或多个纹理帧518。帧封装512可以基于补片如何被布置并封装到帧中来确定帧的高度和宽度。在特定实施例中,被包括在单个帧中的补片被布置成占据帧中的最小空间。也就是说,帧的尺寸是基于帧内每个补片的位置来确定的。因此,在帧尺寸至少对于每个GOF恒定的约束下,基于补片在帧内如何被定向和定位,帧是可能的最小尺寸。在特定实施例中,对于每个视频序列,帧尺寸也是恒定的。
占用图帧522表示占用图,该占用图指示帧(诸如一个或多个几何形状帧514和一个或多个纹理帧518)中的像素位置,所述帧包含被投影或映射到相应帧上的点云的有效点。例如,占用图帧522指示每个帧(诸如一个或多个几何形状帧514和一个或多个纹理帧518)上的每个像素是有效像素还是空白。占用图上的有效像素指示2-D帧上对应于点云中的3-D点的像素。在特定实施例中,被包括在占用图帧522中的占用图对于每个帧可以是相同的,这类似于一个或多个几何形状帧514和一个或多个纹理帧518。在特定实施例中,占用图帧522表示多个占用图,其中每个占用图对应于单个帧(诸如一个或多个几何形状帧514和一个或多个纹理帧518)。在特定实施例中,占用图帧522可以作为元数据作为单独的比特流来传输。
一个或多个几何形状帧514和一个或多个纹理帧518分别经由编码引擎516和编码引擎520进行编码。编码引擎524还对占用图帧522进行编码。在特定实施例中,辅助信息506由另一编码引擎编码。编码引擎516、520和524可以是单独的编码引擎或相同的编码引擎。例如,编码引擎516、520和524是相同的组件,使得一个或多个几何形状帧514、一个或多个纹理帧518和一个或多个占用图帧由相同的编码引擎编码。在特定实施例中,编码引擎516、520和524可以被配置为支持8比特、10比特、12比特、14比特或16比特的数据精度。编码引擎516、520和524可以是诸如HEVC、AVC、VP9、VP8、JVNET等的视频或图像编解码器,可以用于压缩表示3-D点云的2-D帧。
辅助信息506、编码的一个或多个几何形状帧514、编码的一个或多个纹理帧518以及编码的一个或多个占用图帧522经由复用器526被复用。复用器526组合辅助信息506、编码的一个或多个几何形状帧514、编码的一个或多个纹理帧518以及编码的一个或多个占用图帧522,以创建单个编码比特流528。在特定实施例中,编码引擎516、编码引擎520和编码引擎524是单个编码引擎。
编码引擎516、520和522可以包括有损点云压缩或无损点云压缩。如果使用有损点云,则占用图帧522被包括在比特流中并被传输到解码器(诸如解码器550)。解码器550使用占用图帧522来识别每个帧(诸如一个或多个几何形状帧514和一个或多个纹理帧518)中的有效点。如果使用无损压缩来压缩帧(诸如一个或多个几何形状帧514),则解码器550可以直接从一个或多个几何形状帧514中推导有效点。例如,解码器550可以以与对被包括在占用图帧522中的占用图类似的方式使用一个或多个几何形状帧514。作为结果,可以从比特流中省略占用图帧522,以提高压缩率。例如,补片生成器504和帧封装512不创建占用图帧522,因此复用器526不将占用图帧522与编码的一个或多个几何形状帧514(来自编码引擎516)、编码的一个或多个纹理帧518(来自编码引擎520)和辅助信息506进行复用。
上面的等式1解决了正交投影。在特定实施例中,3-D点云502是稀疏的,使得在点云中存在孔洞。当点或像素在点云中没有密集填充时,就会出现稀疏点云。点云中的孔洞可以劣化编码引擎516、520和524的压缩性能。具有缩放的非正交投影可以对点云进行二次采样,从而有效地浓缩点云本身。例如,g(y,z)是几何形状帧(诸如几何形状帧514之一)。点pn=<xn,yn,zn>在几何形状帧(y,z)平面上的示例非正交投影由以下等式给出。
等式2:
G(<yn/scale_fractor_y+offset_y,
zn/scale_fractorz+offset_z)=xn/scale_fractorx
在等式2中,“scale_fractor_y”、“scale_fractor_z”和“scale_fractor_x”表示用于缩放3-D点云502到2-D帧(诸如几何形状帧514)上的投影中的几何坐标的缩放因子。“offset_y”、“offset_z”和“offset_x”表示图像中存储投影补片的位置。注意,在其它平面(诸如(X,Z),(X,Y)或任意平面)上的投影可以类似地定义。在特定实施例中,帧中的补片位置的偏移为零,除非在等式或元数据中识别出特定的偏移值。指示缩放或偏移的等式和元数据可以被包括在辅助信息506中。在特定实施例中,如果缩放因子被设置为“2”,则3-D点云以因子八进行二次采样。例如,如果原始点云由1024、1024、1024体素立方体表示,然后以因子4进行二次采样,则二次采样的点云由512、512、512体素立方体表示。
在特定实施例中,缩放因子被编码为元数据,并被传输到包括解码器(诸如解码器550)的接收器。不失一般性地,一个或多个缩放因子可以被传输到解码器。在特定实施例中,缩放因子对于所有坐标可以具有相同的值。例如,针对x坐标的缩放因子与针对y坐标的缩放因子相同,针对y坐标的缩放因子与针对z坐标的缩放因子相同。在特定实施例中,缩放因子对于每个坐标可以具有不同的值。例如,针对x坐标的缩放因子与针对y坐标的缩放因子不同,针对y坐标的缩放因子与针对z坐标的缩放因子不同。下面提供了示例语法来说明缩放因子元数据。
语法5:
语法5示出将缩放因子应用于3-D点云(诸如3-D点云502)中的点。项“single_scale_factor”是指示是否相同的缩放因子被用于所有几何坐标的标志。项“scale_factor”指示用于所有几何坐标的公共缩放因子。项“scale_factor_x”是用于“x”几何坐标的公共缩放因子。类似地,项“scale_factor_y”是用于“y”几何坐标的公共缩放因子。此外,项“scale_factor_z”是用于“z”几何坐标的公共缩放因子。在特定实施例中,缩放因子可以每点云传输一次,每2-D帧(诸如几何形状帧514之一)传输一次,每2-D帧(诸如几何形状帧514之一)的区域传输一次,或每补片(包括在几何形状帧514之一中的)传输一次。
在特定实施例中,点云中的点密度可以通过控制点云的特定不同补片或特定区域处的缩放因子来变化。例如,人形点云的面部或手部可以用更高的点云密度(诸如分辨率)编码,而另一身体部位(诸如手臂或腿)可以用更低的点云密度(诸如分辨率)编码。
为了通过缩放因子缩放3-D点云的一部分,编码器500可以在压缩比特流中包括缩放因子列表。例如,缩放因子列表可以被包括在辅助信息506中。在另一示例中,缩放因子列表可以通过复用器526被包括在编码比特流528中。对于每个补片,可以使用到缩放因子列表中的索引。索引可以用于信令通知缩放因子以使用补片中的点。下面的等式3示出对3-D点云的一部分进行缩放的非正交变换。
上面的等式3示出在非正交变换中应用缩放因子的示例矩阵。由坐标(xn,yn,zn)标识的点表示3-D空间中3-D点云502中的点“n”的X、Y和Z坐标。对应的投影值由(x’n,y’n,z’n)指示。因此,x’n=g(y’n,z’n)指示编码在帧(诸如几何形状帧514)中的几何坐标信息。注意,其它平面上的投影,诸如z’n=g(x’n,y’n)或y’n=g(x’n,z’n)。解码器(诸如解码器550,下面将更详细地讨论)从视频帧中提取以获得点在3-D空间中的(xn,yn,zn)坐标。在特定实施例中,类似于等式3的矩阵可以用于将元数据应用于点云的特定部分。例如,缩放元数据可以应用于点云的一部分,而不是整个点云。
在特定实施例中,点属性信息存储在共位位置。共位位置对应于另一视频帧中几何坐标的投影位置。例如,当x’n=g(y’n,z’n)时,对应于点(xn,yn,zn)的颜色坐标可以存储在帧f中。例如,点云中的点的红色分量可以由f(y’n,z’n,1)表示。类似地,点云中的点的蓝色分量可以由f(y’n,z’n,2)表示,并且点云中的点的绿色分量可以由f(y’n,z’n,3)表示。在特定实施例中,点属性信息与空间偏移一起存储在相同帧(诸如几何形状帧514之一)中。
非正交投影可以缩放3-D点云(诸如3-D点云502)的一部分。例如,ROI编码、渐进或缩放编码、对稀疏点云进行编码等可以使用非正交投影。感兴趣区域编码在下面参考图9更详细地描述。渐进或缩放编码在下面参考图8更详细地描述。对稀疏点云进行编码在下面参考图7B和图7C更详细地描述。
解码器550示出解码和重构点云用于渲染的电子设备的本公开的实施例的高级概述。在特定实施例中,解码器从编码比特流528中提取压缩的几何形状和属性。在特定实施例中,解码器550映射几何形状和属性以生成3-D点云502。解码器550包括解复用器552、解码引擎554、解码的几何形状帧556、解码的纹理帧558、解码的占用图帧560、辅助信息562和重构引擎564。在特定实施例中,解码器650包括两个或更多个解码引擎554。编码器500的一个或多个几何形状帧514是解码器550的解码的几何形状帧556。类似地,编码器500的一个或多个纹理帧518是解码器550的解码的纹理帧558。此外,编码器500的一个或多个占用图帧522是解码器550的解码的占用图帧560。编码器500的辅助信息506是解码器550的辅助信息562。
解码器550使用各种帧(诸如一个或多个几何形状帧514、一个或多个纹理帧518、一个或多个占用图帧522)的补片内的信息以及辅助信息506来重构3-D点云。解码器550接收源自编码器500的编码比特流528。一旦接收到编码比特流528,解复用器552就从编码比特流528中分离各种数据流。例如,解复用器552分离各种数据流,诸如几何形状帧信息、纹理帧信息、占用图信息和辅助信息562。解码引擎554解码几何形状帧信息以生成解码的几何形状帧556。类似地,解码引擎554解码纹理帧信息以生成解码的纹理帧558。在特定实施例中,对于被包括在编码比特流528中的每个信息集合,存在单独的解码引擎。例如,类似于解码引擎554的单独的并行解码引擎可以处理每个接收到的流。解码引擎554解压缩各种数据流。在特定实施例中,解码引擎554可以是无损的或有损的。在特定实施例中,解码引擎554可以从有损或无损编码的比特流528中重构信号。
辅助信息562包括元数据,诸如(i)缩放,(ii)偏移,(iii)旋转,(iv)点尺寸,(v)点形状,等。辅助信息562还可以包括一个或多个标志(诸如标志508),其指示元数据将关于重构3-D点云被应用于何处。在特定实施例中,辅助信息562可以包括元数据和用于信令通知何时应用元数据的技术。例如,可以使用(i)单个控制标志(诸如标志508)、(ii)诸如启用标志和存在标志的两个标志(诸如标志508)、(iii)通过重用先前信令通知的元数据的绝对信令、(iv)通过重用先前信令通知的元数据的条件信令、以及(y)以及重用先前利用参考标识信令通知的元数据,来信令通知元数据。
重构引擎564基于从各种帧(几何形状帧556、纹理帧558、占用图帧560)接收的数据和辅助信息重构3-D点云。3-D点云502点是从被包括在几何形状帧556和纹理帧558的补片中的点重构的。可以基于被包括在辅助信息562中的元数据来修改被包括在来自解码的辅助补片信息670的每个帧(几何形状帧556和纹理帧558)中的补片。重构引擎564基于标志来确定在哪里应用每种类型的元数据。例如,标志可以信令通知哪些元数据被应用于补片或帧的特定部分以及元数据何时被应用于补片或帧的特定部分。
如上面关于标志508所讨论的,标志可以包括与每种类型的元数据相关联的两个标志:启用标志和存在标志。标志控制元数据参数是否被信令通知。标志可以与各种访问级别(诸如补片级别、帧级别、GOF级别、序列级别、视频级别等)相关联。取决于标志与哪个访问级别相关联,将指示元数据是否应用于该特定访问级别以及该访问级别中包括的所有数据,诸如层次分层结构。例如,如果元数据在补片级别被信令通知,则该特定补片通过元数据被修改。在该示例中,元数据可以不应用于其它补片或其它帧。在另一示例中,如果元数据在帧级别(诸如在几何形状帧556中的一帧中)被信令通知,则元数据被应用于该帧内的一个或多个补片。在该示例中,元数据可以不应用于另一帧的补片。在另一示例中,如果元数据在GOF级别被信令通知,则元数据被应用于一个或多个帧以及被包括在所述帧中的各种补片。在该示例中,元数据可以不应用于另一GOF的补片。
如以上关于图5A的标志508所讨论的,标志508可以信令通知元数据何时在解码器(诸如图5B的解码器550)处被应用。除了使用两个二进制控制标志(启用标志和存在标志,上面关于语法1、2、3和4所讨论的)的绝对信令之外,辅助信息506可以包括附加的信令技术来指示元数据何时被应用于修改点云。在特定实施例中,元数据可以通过(i)使用单个控制二进制标志的绝对信令、(ii)通过重用先前信令通知的元数据的绝对信令、(iii)通过重用先前信令通知的元数据的条件信令、以及(iv)参考标识,来信令通知。
例如,编码器500可以经由单个控制二进制标志来指示解码器应该何时将元数据应用于点云。每个参数集都具有控制该元数据参数集是否在比特流中被信令通知的启用标志。
语法6:
语法6示出首先从比特流中读取最高级别参数集中的元数据参数(如果它们被信令通知),否则参数集被设置为一些默认值。接下来,从比特流中读取一个更低级别的参数集中的元数据参数(如果它们被信令通知)。否则,参数集被设置为其在高一个级别的对应参数的值。该过程继续,直到最低级别参数集中的元数据参数要么从比特流中读取、要么从高一个级别的对应参数分配。下面的语法7示出用于缩放的元数据参数集。
语法7:
语法7示出当缩放参数集在特定级别不存在时,值被推断为下一更高级别的参数值。例如,如果语法元素“patch_resolution_metadata”不存在,则“patch_resolution_metadata”的值是从高一个访问级别的“frame_resolution_metadata”推断的。如果参数集不存在(使得针对该参数集的存在标志的值为假),则该参数集中所有元数据参数的值都是从下一更高级别的那些值中推断的。在最高访问级别(诸如在特定实施例中的视频参数集),如果特定参数不存在,则其值被推断为默认值。作为结果,在每一级别,通过推断或通过比特流中的显式信令,每个参数被分配有效值。
在另一示例中,编码器500可以经由通过重用先前信令通知的元数据的绝对信令来指示,以指示解码器550关于何时将元数据应用于点云。例如,标志(诸如图5的标志508)指示参数集元数据是否与先前集合相同。一个单个标志或不同的标志可以指示每个参数集中的不同元数据参数。类似地,一个单个标志或不同的标志可以指示不同的参数集。下面的语法8示出缩放元数据参数,其中在重用标志之前检查存在标志。如果标志没有被信令通知,则它被推断为假。
语法8:
在语法8中,类似的语法元素可以在序列访问级别、GOF访问级别、帧访问级别和补片访问级别表示。在另一示例中,一个二进制标志被信令通知以确定元数据参数是从比特流中读取还是被分配给一个先前信令通知的。
在另一示例中,编码器500可以经由通过重用先前信令通知的元数据的条件信令来指示,以指示解码器550关于何时将元数据应用于点云。例如,两个二进制标志(或一个整数标志)可以指示参数集是被分配给先前集合还是从先前集合预测。
语法9:
在语法9中,类似的语法元素可以在序列访问级别、GOF访问级别、帧访问级别和补片访问级别表示。语法9示出分配给先前集合具有高于从先前集合预测的优先级。注意,预测可以以不同的顺序被信令通知。
在另一示例中,编码器500可以经由参考标识来指示,以便指示解码器550关于何时将元数据应用于点云。也就是说,使用列表来在不同的访问级别维护多个先前显式信令通知的元数据参数集。此后,每个参数集使用参考或标识参数来引用列表中的那些参数集之一。
语法10:
在语法10中,参数集的固定尺寸缓冲区利用用于填充列表的设置规则被使用:例如,序列访问级别和GOF访问级别的所有参数集被包括。剩余的列表使用先前信令通知的参数集填充。
图6A、图6B和图6C示出根据本公开的实施例的示例3-D点云和表示3-D点云的2-D帧。具体地,图6A示出3-D点云610,而图6B、图6C示出2-D帧,包括规则补片。图6A、图6B和图6C的实施例仅用于说明,并且在不脱离本公开的范围的情况下,可以使用其它实施例。
3-D点云610类似于图4的点云405、图4的网格410、图5A和图5B的3-D点云502。3-D点云610是3-D空间中的数据点的集合。3-D点云中的每个点包括(i)提供3-D点云的结构的几何位置和(ii)提供关于每个点的信息的一个或多个纹理,诸如颜色、反射率、材料等。
图6B和图6C分别示出2-D帧620和630。帧620描绘表示3-D点云610的纹理的规则补片(诸如补片622)。帧630描绘表示3-D点云610的深度值的规则补片(诸如补片632)。帧620和630可以类似于图5A的一个或多个纹理帧518和一个或多个几何形状帧514。
下面更详细讨论的图7A至图10B示出使用诸如缩放、偏移、旋转、点尺寸和点形状的元数据来修改3-D点云。非正交投影可以调整3-D点云的缩放,以指示ROI、渐进编码和操纵稀疏点云。例如,缩放和偏移可以将3-D点云(类似于图4的点云405、图4的网格410、图5A和图5B的3-D点云502以及图6A的3-D点云610)归一化为体素化栅格(voxelized grid)。在接收到压缩比特流之后,解码器(诸如图5B的解码器550)对接收到的比特流进行解压缩。如果全局缩放和偏移元数据对解码器可用,则点云可以被缩放回原始坐标。
自适应流式传输是相同的3-D点云以不同的比特率和分辨率的流式传输。例如,可以创建不同比特率和分辨率的3-D点云,并将其存储在信息库(诸如数据库或服务器)中。渲染客户端根据网络带宽请求特定的比特率/分辨率。如果接收到的点云的分辨率不同于设备的显示分辨率,则设备适当地缩放点云。通过(i)在原始体素栅格分辨率上对点云进行二次采样,或者(ii)可以减少体素栅格,来创建不同分辨率的点云。对点云进行二次采样可以导致稀疏点云。相反,通过缩放几何坐标,减少体素栅格可以导致密集点云。缩放元数据中包括的缩放因子在编码器处改变体素栅格,并且在解码器处,元数据用于将点云返回到其原始坐标系。
缩放点云是经由非正交投影可以分解稀疏点云。例如,x、y和z是稀疏点云的坐标,xs、ys和zs是输入编码器(诸如图5A的编码器500)的缩放后的点云的坐标。缩放后的点云在x坐标中表示为“xs=(x+offset_x)*scale_factor_x”。缩放后的点云在y坐标中表示为“ys=(y+offset_y)*scale_factor_y”。缩放后的点云在z坐标中表示为“zs=(z+offset_z)*scale_factor_z”。如果xr、yr和zr是解码器(诸如图5B的解码器550)的输出处的重构的点云处的坐标,并且xo、yo和zo是最终缩放后的点云中的点的坐标,则每个点的输出由下面的等式4表示。
等式4:
xo=xr/scale_factor_x+offset_x
yo=yr/scale_factor_y+offset_y
zo=zr/scale_factor_x+offset_z
旋转元数据用于控制投影的平面。例如,图5A的补片生成器504生成点云的补片。当补片在解码器处被重构成点云时,补片边界伪影出现在补片的边界线处。为了避免补片边界伪影,点云可以被旋转,从而不会在点云的特定部分上创建补片。例如,如果在人形点云的面部上创建了补片,则编码器可以旋转点云,以避免点云的面部被分裂在两个或更多个补片之间。旋转点云可以导致面部出现在单个补片上。旋转的幅度被存储为旋转元数据,以使解码器能够重构点云。基于旋转元数据将解压缩的点云逆旋转回原始坐标。
图7A和图7B示出从补片重构点云的过程。具体地,图7A示出根据本公开的实施例的以缩放后的分辨率接收补片的示例流程图700。图7B和图7C示出根据本公开的实施例的创建包括补片的比特流的过程760和接收比特流的过程780。图7A、图7B和图7C的实施例仅用于说明,并且在不脱离本公开的范围的情况下,可以使用其它实施例。
流程图700被描述为由图1的客户端设备106-114、图5B的解码器550中的任何一个实施,并且包括类似于图2的服务器200 00、图3的电子设备300的内部组件的内部组件。该过程开始于解码器550检测解压缩帧(诸如几何形状帧556和纹理帧558)内的补片(710)。该过程确定补片正常(720)。也就是说,解码器550确定补片是否通过类似于图5A的编码器500的编码器经历了密度、分辨率或缩放的改变。
如果补片没有经历修改,则解码器550将补片重构成3-D点云(740)。如果补片通过编码器经历了密度、分辨率或缩放的改变,则修改补片数据以将补片返回到补片的原始形式(730)。在补片被返回到其原始形式之后,解码器550将补片重构成3-D点云(740)。在解码器重构补片之后,解码器输出重构的3-D点云(750)。重构的3-D点云可以显示在显示器(诸如图3的显示器355)上,供用户观看。
图7B示出创建3-D点云762a的比特流的过程760。3-D点云762a通过类似于图5A的编码器500的编码器被表示为补片。编码器将点云缩放和偏移为归一化的3-D点云762b(764)。压缩引擎768将归一化的3-D点云762b压缩成编码比特流770。偏移元数据766的缩放被复用到编码比特流770中。
图7C示出诸如图5B的解码器550的解码器接收编码比特流770的过程780。编码比特流770被解复用成缩放和偏移元数据772以及压缩的归一化3-D点云762b。在特定实施例中,缩放和偏移元数据766和缩放和偏移元数据772是相同的,使得缩放和偏移元数据766由编码器(诸如编码器500)创建来被包括在编码比特流770中,并由解码器(诸如解码器550)使用以重构3-D点云762a。解压缩引擎774对压缩的归一化3-D点云762b进行解压缩。解码器然后取缩放和偏移元数据772的倒数(inverse)来生成原始的3-D点云762a(776)。
图8A示出根据本公开的实施例的生成点云的渐进非正交投影的过程800。图8B示出根据本公开的实施例的接收缩放后的点云的解码器的示例框图。图8A类似于图5A的编码器500。类似地,图8B类似于图5B的解码器550。图8A和图8B的实施例仅用于说明,并且在不脱离本公开的范围的情况下,可以使用其它实施例。
从源设备(诸如图1的服务器104)到客户端设备(诸如客户端设备106-116中的任何一个)的3-D点云的渐进和自适应比特率传输允许变化的网络条件以及设备(诸如解码器550或客户端设备106-116)的个体能力。例如,当网络带宽、解码器的处理能力、渲染3D点云的设备的处理能力或其组合低时,解码器可以接收包括更低细节级别(Lower Level OfDetail,LLOD)的压缩比特流。相反,当网络带宽或设备处理能力高时,解码器可以接收包括高细节级别(High Level Of Detail,HLOD)的压缩比特流。LLOD可以通过执行3-D点云到2-D帧的非正交投影来创建,类似于上面的等式2和等式3。
过程800类似于图5A的编码器500,使得点云被投影到帧上并被复用到压缩比特流中。3-D点云802a和802b类似于图7B和图7C的3-D点云762a、图6A的3-D点云610、图5A和图5B的3-D点云502、图4的点云405和点网格410。3-D点云802a是HLOD,而3-D点云802b是LLOD。在特定实施例中,通过缩放变换或通过非正交投影到更小的视频帧(诸如帧806)上,3D点云802b是3D点云802a的紧凑版本。
3-D点云802a可以经由正交投影被投影到帧804上。3-D点云802b可以经由非正交投影被投影到帧806上。帧804和806可以类似于图5A的几何形状帧514、纹理帧518和占用图帧522。注意,帧806(非正交投影)小于帧804(正交投影)。帧804和806表示分别表示3-D点云802a和802b的各种属性(诸如几何形状、纹理、占用图等)的帧。帧806小于帧804,因此当帧806被传输到解码器时使用更少的带宽。
上采样模块808对帧806进行上采样,使得帧与帧804具有相同或类似的尺寸(dimension)。在特定实施例中,上采样模块808对帧806进行上采样的量是预定的。在特定实施例中,上采样模块808识别帧804的尺寸,并将帧806上采样到对应的量,使得帧804的尺寸和帧806的尺寸相同。
比较引擎810将帧804与上采样后的帧806进行比较,并提取帧之间的残差。例如,比较引擎810提取表示3-D点云802a和3-D点云802b的每个几何形状帧、每个纹理帧之间的残差。也就是说,比较引擎810提取帧804中的每一个和帧806中的每一个之间的差。帧804中的每一个和帧806中的每一个之间的差表示3-D点云802a的HLOD和3-D点云802b的LLOD之间的分辨率的差。
编码引擎812和编码引擎814类似于图5A的编码引擎516、520和524。在特定实施例中,编码引擎812和814表示对不同类型的帧(诸如几何形状帧、纹理帧、占用图帧等)进行编码的多个编码引擎。编码引擎814对LLOD帧806进行编码。编码引擎814然后生成LLOD点云802b的编码比特流822。编码引擎812对提取的LLOD帧806和HLOD帧804之间的差进行编码。编码引擎812然后生成HLOD点云802a的编码比特流820。
在特定实施例中,编码比特流820和编码比特流822被分别传输到解码器。编码比特流822是基本层,而编码比特流820是增强层。增强层和基本层可以被传输到解码器,并且解码器确定是仅解码基本层,还是解码基本层和增强层两者。
在特定实施例中,编码比特流820和编码比特流822通过复用器818复用在一起,并作为单个压缩比特流824传输到解码器。复用器818类似于图5A的复用器526。
图8B示出解码器850。解码器850示出解码和重构点云用于渲染的电子设备的本公开的实施例的高级概述。解码器850类似于图5B的解码器550。解码器850包括两个子解码器,解码器850a和解码器850b。解码器850a解码HLOD,而解码器850b解码LLOD。解码器850接收来自图8A的压缩比特流824。解码器850包括解复用器852、辅助信息上缩放854、纹理上缩放856、几何形状上缩放858和占用图上缩放859。
辅助信息上缩放854、纹理上缩放856、几何形状上缩放858和占用图上缩放859表示对来自解码器850b(经由比特流822a)的解码内容进行上采样的元数据。来自解码器850b的上缩放后的内容增加了解码器850a的信息(比特流820a)。例如,解码器850b解码表示3-D点云802b的LLOD帧(图8A的帧806),而解码器850a解码提取的3-D点云802a的HLOD和3-D点云802b的LLOD之间的差。解码器850a接收的内容不足以重构3-D点云802a,因为该内容是3-D点云802a的HLOD和3-D点云802b的LLOD之间的差。因此,上缩放元数据(辅助信息上缩放854、纹理上缩放856、几何形状上缩放858和占用图上缩放859)被应用于解码器850b的各种数据元素,然后其增加解码器850a的对应内容。从而使解码器850a能够重构3-D点云802a的HLOD。
解复用器852类似于图5B的解复用器552。注意,解码器850包括与解码器550的类似的两个单独的解码器,即解码器850a和解码器850b。解码器850a包括解复用器860、解码引擎862(其解码几何形状帧864、纹理帧866和占用图帧868)、辅助信息870和重构引擎872。解码器850a的组件类似于图5B的解码器550的相应组件。例如,解复用器860类似于解复用器552,解码引擎862类似于解码引擎554,并且重构引擎872类似于重构引擎564。类似地,解码器850b包括解复用器880、解码引擎882(其解码几何形状帧884、纹理帧886和占用图帧888)、辅助信息890和重构引擎892。解码器850b的组件类似于图5B的解码器550的相应组件。例如,解复用器880类似于解复用器552,解码引擎882类似于解码引擎554,重构引擎892类似于重构引擎564。
如果接收到单个比特流,诸如比特流824,则解复用器852将接收到的比特流分离成增强层比特流820a(类似于图8A的增强层比特流820)和基本层比特流822a(类似于图8A的基本层比特流822)。增强层比特流820a然后由解复用器860进一步解复用。基本层比特流822a然后由解复用器880进一步解复用。
在特定实施例中,解码器850可以接收两个单独的比特流(而不是单个比特流824),即增强层比特流820a(类似于图8A的增强层比特流820)和基本层比特流822a(类似于图8A的基本层比特流822)(未示出)。比特流被导向相应的解码器850a和850b,并绕过解复用器852。(图8A的)增强层比特流820由解复用器860解复用。(图8A的)基本层比特流822由解复用器880解复用。
重构相应的3-D点云802a和802b的过程类似于上述图5B的解码器550的过程。重构相应的3-D点云802a的过程利用应用于比特流822a中包括的内容的上缩放元数据来增加接收到的比特流820a的内容。几何形状上缩放858对解码的LLOD几何形状帧884进行上采样。LLOD几何形状帧884是来自图8A的帧806的解码的几何形状帧。LLOD几何形状帧884的上采样包括对空间值和深度值两者进行上采样。
例如,LLOD几何形状帧884的上采样在空间上缩放几何坐标中的两个,而LLOD几何形状帧884的深度值的上采样缩放点云的第三几何坐标。上缩放后的几何坐标然后被包括在解码的几何形状帧864中。解码的几何形状帧864表示上采样后的LLOD帧806、HLOD帧804以及上缩放后的几何形状帧884之间的全部提取的差。
纹理上缩放856对解码的LLOD纹理帧886进行上采样。LLOD纹理帧886是图8A的帧806的解码纹理帧。上缩放后的纹理帧然后被包括在解码的纹理帧866中。解码的纹理帧866表示上采样后的LLOD帧806、HLOD帧804以及上缩放后的纹理帧886之间的全部提取的差。
辅助信息上缩放854对分别与解码的LLOD几何形状帧884和纹理帧886相关联的任何辅助信息890进行上采样。此后,上采样后的辅助信息890被应用于辅助信息870。
被包括在占用图帧888中的占用图是二进制图。因此,占用图上缩放859使用最近邻解释来对占用图帧888进行上采样。上采样后的占用图帧888可以被应用于占用图帧868。
注意,基本层(在比特流822a中表示)和增强层(在比特流820a中表示)之间的补片信息被同步以确保LLOD帧和HLOD帧之间的相关性。在特定实施例中,编码器同步相应的比特流。
图9示出根据本公开的实施例的点云密度的自适应区域。根据图9修改ROI的实施例仅用于说明,并且在不脱离本公开的范围的情况下,可以使用其它实施例。
ROI编码可以为ROI分配更高的质量,而为没有被包括在ROI中的3-D点云区域分配更低的质量。例如,可以通过增加点云密度和减少ROI中几何形状和颜色属性的量化误差来执行为ROI分配更高的质量。例如,如果将ROI分配到人形点云的面部,那么点云的面部可以与点云的其余部分被不同地编码。
图9包括3-D点云902和两个帧,帧910和帧920。3-D点云902类似于图8A和图8B的3-D点云802a和802b、图7B和图7C的3-D点云762a、图6A的3-D点云610、图5A和图5B的3-D点云502、图4的点云405和点网格410。帧910和帧920表示3-D点云902的补片。帧910是所有补片的均匀点密度,而帧920指示基于ROI的自适应点密度的区域。
帧910包括许多补片,诸如补片914。补片914描绘3-D点云902的面部。补片914以与帧中包括的其它补片相同的点密度编码。帧920包括许多补片,诸如补片924。补片924描绘3-D点云902的面部。补片924以比帧920中包括的其它补片更高的点密度投影。通过将补片924缩放到不同的缩放因子,补片924具有更高的点密度。不同的缩放因子可以被包括在图5A的编码器500的辅助信息506的元数据中。编码器500的标志508用于信令通知解码器550在重构3-D点云902时基于每补片应用缩放因子。当面部被指定为ROI时,用与点云的其余部分相比更高的点密度来编码点云的面部(如补片924所指示的)使得3-D点云902的面部与3-D点云902的身体相比具有更高的质量。在特定实施例中,如果指示了ROI,则帧910不在压缩比特流中传输,而帧920在压缩比特流中传输。在特定实施例中,改变ROI的缩放因子可以基于每补片来修改点密度、分辨率、缩放等。
非正交投影可以用于在补片级别指示点云的ROI。例如,x、y和z是点云的补片中的点的坐标,xs、ys和zs是输入到编码器(诸如图5A的编码器500)中的缩放后的点云补片的坐标。缩放后的点云在x坐标中表示为“xs=(x+offset_x)*scale_factor_x”。缩放后的点云在y坐标中表示为“ys=(y+offset_y)*scale_factor_y”。缩放后的点云在z坐标中表示为“zs=(z+offset_z)*scale_factor_z”。如果xr、yr和zr是解码器(诸如图5B的解码器550)的输出处的点云的重构补片处的坐标,并且xo、yo和zo是补片中最终缩放后的输出的点的坐标,则每个点的输出由下面的等式4表示。
等式4:
xo=xr/scale_factor_x+offset_x
yo=yr/scale_factor_y+offset_y
zo=zr/scale_factor_x+offset_z
在特定实施例中,点云的非相邻部分可以被定位为2-D帧上的相邻补片。例如,图5A的帧封装512将各种补片组织并放置在帧上的某个位置,使得最小化帧的尺寸。作为结果,点云的非相邻部分通常可以被定位为2-D帧上的相邻补片。如果非相邻的补片在2-D帧上彼此相邻,那么当补片被重构成点云时,一个补片与另一个补片邻接的像素可以与邻接补片混合,这导致伪影。伪影是解码器重构点云时出现的点云的可见缺陷。
图10示出根据本公开的实施例的点云的自适应点尺寸和形状。根据图10适应点云中的点的形状和尺寸的实施例仅用于说明,并且在不脱离本公开的范围的情况下,可以使用其它实施例。
图10包括重构的点云1002a和重构的点云1002b。重构的点云1002a包括伪影1004。重构的点云1002b是在调整点的形状、点的尺寸或其组合以去除伪影1004之后的重构的点云1002a。
在特定实施例中,当对点云进行重构时,解码器可以在补片的边界线处执行平滑步骤,以便最小化可见伪影。在特定实施例中,解码器可以调整沿补片边界的点的尺寸,以便最小化可见伪影。在特定实施例中,解码器可以调整沿补片边界的点的形状,以便最小化可见伪影。
诸如图5B的解码器550的解码器可以从多个2-D帧重构3-D点云。当重构3-D点云时,重构的点云中的每个点作为单个像素被显示在显示设备(诸如图3的电子设备300的显示器355)上。例如,可以调整显示器上的点尺寸与像素的比率,以去除补片边界处的伪影。通过增加单个点可以降低显示的点云的分辨率。
为了调整补片边界处的点尺寸,解码器识别重构的点云的边界附近的点。解码器然后可以排除与相邻点不同的点。例如,解码器可以基于颜色、纹理、几何位置等来识别与相邻点不相似的点。解码器可以比较这些点,以识别超过阈值水平的不相似的任何点。如果点被排除,则解码器可以增加补片边界附近的点的点尺寸,以减少重构的点云中任何孔洞的存在。编码器可以包括元数据,该元数据信令通知解码器在渲染点云时应该使用的平均点尺寸。在特定实施例中,解码器可以改变补片边界附近的点的形状,以减少重构的点云中任何孔洞的存在。编码器可以包括类似于表1的元数据的元数据,以指示一个或多个点的形状。此外,基于接收到的元数据和信令,可以在点云的补片、ROI或区域上改变点尺寸。
图11示出根据本公开的实施例的用于解码点云的示例流程图。图11描绘用于点云解码的流程图1100。例如,图11中描绘的过程被描述为由图1的客户端设备106-114、图5B的解码器550、图8B的解码器中的任何一个实施,并且包括类似于图2的服务器200 00、图3的电子设备300的内部组件的内部组件。流程图1100的实施例仅用于说明,并且在不脱离本公开的范围的情况下,可以使用其它实施例。
该过程开始于解码器(诸如解码器550)接收压缩比特流(1102)。接收到的比特流可以包括编码的点云,该编码的点云被映射到多个2-D帧上,被压缩,然后被传输并最终被解码器接收。
该过程解码压缩比特流(1104)。解码器550将压缩比特流解码成表示3-D点云的两个2-D帧。2-D帧中的每一个包括补片集合。补片集合中的每个补片包括3-D点云中的点的聚类。点的聚类对应于与3-D点云相关联的属性(诸如几何形状和纹理)。补片集合中的一个补片、补片集合和2-D帧对应于表示3-D点云的各个访问级别。
该过程然后识别指示各个访问级别中的一个的修改的元数据(1106)。元数据可以指示表示3-D点云的各个访问级别的缩放、分辨率、点密度、偏移、旋转、点尺寸和点形状中的至少一个的修改。
该过程还可以识别第一标志和第二标志(1108)。第一标志信令通知元数据何时被应用于各个访问级别中的第一访问级别。第一标志可以被称为启用标志。第二标志指示与第一访问级别的修改相关联的元数据。第二标志可以被称为存在标志。如果第一标志可以被包括在第一访问级别以上的一个访问级别,则第一标志指示第一访问级别的一部分是否被修改。在第一访问级别包括第二标志,以指示通过元数据被修改的第一访问级别的部分。
当第一访问级别对应于一个2-D帧中包括的补片集合时,在一个2-D帧中信令通知第一标志。类似地,当第一访问级别对应于包括在一个2-D帧内的补片集合时,在第一访问级别信令通知第二标志,并且第二标志指示通过元数据被修改的特定补片。
当第一访问级别对应于一个2-D帧时,在2-D帧中信令通知第一标志。类似地,当第一访问级别对应于一个2-D帧时,在第一访问级别信令通知第二标志,并且第二标志指示包括在一个2-D帧中的补片集合通过元数据被修改。
当第一访问级别对应于2-D帧时,在帧序列中信令通知第一标志。类似地,当第一访问级别对应于2-D帧时,在第一访问级别信令通知第二标志,并且第二标志指示包括在帧序列中的2-D帧中的每一个通过元数据被修改。
响应于识别到第一标志和第二标志两者,该过程还可以从比特流读取元数据(1108)。比特流包括指示访问级别的修改的元数据。例如,当解码器识别到两个标志时,它向解码器指示用于在生成3-D点云时修改2-D帧内的内容的元数据存在于比特流中。
响应于识别到第一标志或第二标志,该过程还可以向元数据分配预定参数(1110)。也就是说,如果解码器仅识别到两个标志中的一个,则将预定参数分配给元数据。当元数据被应用到的访问级别是最高级别时,预定参数是默认值。例如,如果访问级别包括(i)补片,(ii)帧,(iii)GOF,(iv)序列,和(v)视频,则最高级别是视频级别。预定参数可以是比当前访问级别高一个级别的访问级别的元数据。例如,应用于帧级别的元数据可以是应用于GOF级别的元数据。
该过程使用2-D帧的集合和元数据来生成3-D点云(1112)。当重构3-D点云时,解码器可以将任何接收到的元数据应用于补片。在特定实施例中,如果元数据与补片一起被识别,则解码器550识别元数据是否是缩放因子。响应于识别到元数据是缩放因子,解码器550将缩放因子的倒数应用于3-D点云中的每个点,以增加2-D帧集合的分辨率。
在特定实施例中,如果解码器550接收不同分辨率的两个比特流,其中一个分辨率低于另一个分辨率。解码器可以解码这两个比特流。解码器550可以识别元数据是否包括缩放因子和偏移。此后,解码器应用被包括在更高分辨率的比特流中的缩放因子、偏移和补片。
解码器还可以基于生成的占用图来识别被包括在位于每个补片的边界处的补片集合中的点。此后,解码器550可以基于元数据来调整位于每个补片的边界处的点的尺寸和位于每个补片的边界处的点的形状中的至少一个。
图12示出根据本公开的实施例的用于编码点云的示例流程图。图12描绘用于点云编码的流程图1200。例如,图12中描绘的过程被描述为由图1的服务器104、图1的客户端设备106-114中的任何一个、图5A的编码器500实施,并且包括与图2的服务器200 00、图3的电子设备300的内部组件类似的内部组件。流程图1200的实施例仅用于说明,并且在不脱离本公开的范围的情况下,可以使用其它实施例。
该过程开始于编码器(诸如图5A的编码器500)生成表示3-D点云的2-D帧(1202)。2-D帧中的每一个包括补片集合。补片集合中的每个补片包括3-D点云中的点的聚类。点的聚类对应于与3-D点云相关联的属性。补片集合中的一个补片、补片集合和2-D帧对应于表示3-D点云的各个访问级别。
在特定实施例中,2-D帧包括第一2-D帧集合和第二2-D帧集合。当生成第二2-D帧集合时,编码器500对3-D点云中的每个点应用缩放,以与第一2-D帧集合相比降低第二2-D帧集合的分辨率。编码器500对第二2-D帧集合进行上采样,以匹配第一2-D帧集合的维度尺寸。编码器然后将第一2-D帧集合和上采样后的第二2-D帧集合进行比较。在将第一2-D帧集合和上采样后的第二2-D帧集合进行比较之后,编码器500提取第一2-D帧集合和上采样后的第二2-D帧集合之间的点的差。
在特定实施例中,当编码器500正在生成2-D帧时,编码器500基于生成的占用图来识别被包括在位于每个补片的边界处的补片集合中的点。编码器500然后生成元数据以调整位于每个补片的边界处的点的尺寸和位于每个补片的边界处的点的形状中的至少一个。
该过程生成指示各个访问级别中的一个的修改的元数据。(1204)。元数据指示表示3-D点云的各个访问级别的缩放、分辨率、点密度、偏移、旋转、点尺寸和点形状中的至少一个的修改。
该过程生成标志来信令通知元数据何时被应用于各个访问级别中的第一访问级别(1206)。在特定实施例中,标志包括第一标志和第二标志。例如,第一标志是启用标志,第二标志是存在标志。第一标志可以信令通知元数据何时被应用于第一访问级别,并且第二标志指示与第一访问级别的修改相关联的元数据。为了信令通知元数据何时被应用于第一访问级别,编码器500包括比第一访问级别高一个访问级别的第一标志,第一标志指示第一访问级别的部分是否被修改。解码器还包括第一访问级别的第二标志,以指示通过元数据被修改的第一访问级别的部分。
当第一访问级别对应于被包括在一个2-D帧中的补片集合时,第一标志在一个2-D帧中被信令通知。类似地,第一访问级别对应于被包括在一个2-D帧内的补片集合,第二标志在第一访问级别被信令通知,并且第二标志指示通过元数据被修改的特定补片。
当第一访问级别对应于一个2-D帧时,第一标志在该2-D帧处被信令通知,第二标志在第一访问级别被信令通知。类似地,当第一访问级别对应于一个2-D帧时,第一标志在该2-D帧处被信令通知,第二标志指示被包括在一个2-D帧中的补片集合通过元数据被修改。
当第一访问级别对应于2-D帧时,第一标志在帧序列处被信令通知。类似地,当第一访问级别对应于2-D帧时,第二标志在第一访问级别被信令通知,并且第二标志指示被包括在帧序列中的2-D帧中的每一个通过元数据被修改。
该过程对2-D帧、标志和元数据进行编码,以生成压缩比特流(1208)。该过程传输压缩比特流(1210)。压缩比特流可以最终被传输到解码器,诸如解码器550。
尽管这些附图示出用户设备的不同示例,但是可以对这些附图进行各种改变。例如,用户设备可以包括任何合适布置的任何数量的每个组件。一般地,附图不将本公开的范围限制于任何(多个)特定配置。此外,尽管附图示出可以使用在本专利文档中公开的各种用户设备特征的操作环境,但是这些特征可以用于任何其它合适的系统中。
本申请中的任何描述都不应被解读为暗示任何特定元件、步骤或功能是必须被包括在权利要求范围中的基本元件。申请专利的主题的范围仅由权利要求限定。此外,任何权利要求都不旨在引起排异,除非确切的词语“用于...的装置”中间有分词。权利要求中的任何其它术语,包括但不限于“机构”、“模块”、“设备”、“单元”、“组件”、“元件”、“构件”、“装置”、“机器”、“系统”、“处理器”或“控制器”的使用,被申请人理解为是指相关领域技术人员已知的结构,而不旨在引起排异。
尽管已经用示例性实施例描述了本公开,但是可以向本领域技术人员建议各种改变和修改。本公开旨在涵盖落入所附权利要求范围内的这些改变和修改。
Claims (15)
1.一种操作用于点云解码的解码设备的方法,所述方法包括:
接收压缩比特流;
将压缩比特流解码成二维(2-D)帧,所述二维(2-D)帧表示三维(3-D)点云;
识别用于指示各个访问级别中的一个的修改的元数据;以及
基于所述元数据和所述2-D帧生成所述3-D点云。
2.根据权利要求1所述的方法,
其中,所述2-D帧中的每一个包括补片集合,
其中,所述补片集合中的每个补片包括所述3-D点云中的点的聚类,
其中,所述点的聚类对应于与所述3-D点云相关联的属性,并且
其中,所述补片集合中的一个补片、所述补片集合和所述2-D帧对应于表示所述3-D点云的各个访问级别。
3.根据权利要求2所述的方法,还包括:
识别标志,所述标志信令通知所述元数据的参数集是否与所述各个访问级别中的第一访问级别相关联,以及各个元数据参数是否在所述第一访问级别内。
4.根据权利要求3所述的方法,
其中,识别所述标志包括识别与所述参数集相关联的第一标志和与所述参数集内的元数据参数相关联的第二标志,
其中,当所述第一标志被包括在所述第一访问级别中并且所述第一访问级别被分级在所述各个访问级别中的任何一个以上时,所述第一标志指示应用于所述第一访问级别或所述第一访问级别的一部分的元数据的修改是否被启用,
其中,当所述第一标志被包括在所述第一访问级别以上的一个访问级别时,所述第一标志指示应用于所述第一访问级别或所述第一访问级别的一部分的元数据的修改是否被启用,
其中,当所述第二标志被包括在所述第一访问级别时,所述第二标志指示与所述第一访问级别或所述第一访问级别的一部分的修改相关联的元数据的存在,并且
其中,生成所述3-D点云还包括将所述元数据应用于处于所述第一访问级别和更低访问级别的各个访问级别中的至少一个。
5.根据权利要求2所述的方法,其中,所述2-D帧是第一2-D帧集合,并且所述方法还包括:
解码表示所述3-D点云的第二2-D帧集合,所述第二2-D帧集合中的每一个帧包括补片,所述补片中的每个补片包括所述3-D点云中的点的聚类;
识别所述元数据是否是缩放因子;以及
响应于识别到所述元数据是缩放因子,将所述缩放因子的倒数应用于所述3-D点云中的每个点,以修改所述第二2-D帧集合的分辨率。
6.根据权利要求1所述的方法,
其中,生成所述3-D点云包括:
将所述压缩比特流解码成所述2-D帧和增强层;识别所述元数据是否包括缩放因子和偏移;以及
将所述缩放因子、所述偏移和所述增强层应用于所述2-D帧以生成所述3-D点云,
其中,所述增强层表示所述3-D点云的第二分辨率和所述2-D帧的第二分辨率之间的差,并且
其中,所述第一分辨率低于所述第二分辨率。
7.根据权利要求2所述的方法,还包括:
基于生成的占用图,识别被包括在位于每个补片的边界处的补片集合中的点;以及
基于所述元数据,调整位于每个补片的边界处的点的尺寸和位于每个补片的边界处的点的形状中的至少一个。
8.一种操作用于点云编码的编码设备的方法,所述方法包括:
生成表示三维3-D点云的二维2-D帧;
生成用于指示各个访问级别中的一个的修改的元数据,
编码所述2-D帧和所述元数据以生成压缩比特流,以及
传输所述压缩比特流。
9.根据权利要求8所述的方法,
其中,所述2-D帧中的每一个帧包括补片集合,
其中,所述补片集合中的每个补片包括所述3-D点云中的点的聚类,
其中,所述点的聚类对应于与所述3-D点云相关联的属性,并且
其中,所述补片集合中的一个补片、所述补片集合和所述2-D帧对应于表示所述3-D点云的各个访问级别。
10.根据权利要求9所述的方法,还包括:
生成标志,所述标志信令通知所述元数据何时被应用于所述各个访问级别中的第一访问级别;以及
编码所述标志以生成所述压缩比特流。
11.根据权利要求10所述的方法,
其中,当所述元数据由第一标志或第二标志中的至少一个信令通知时,将所述元数据分配给处于所述第一访问级别或更低访问级别的各个访问级别中的至少一个;当所述第一标志被包括在所述第一访问级别中并且所述第一访问级别被分级在所述各个访问级别中的任何一个以上时,所述第一标志指示应用于所述第一访问级别或所述第一访问级别的一部分的元数据的修改是否被启用;
其中,当所述第一标志被包括在所述第一访问级别以上的一个访问级别时,所述第一标志指示应用于所述第一访问级别或所述第一访问级别的一部分的元数据的修改是否被启用;并且
其中,当所述第二标志被包括在所述第一访问级别时,所述第二标志指示与所述第一访问级别或所述第一访问级别的一部分的修改相关联的元数据的存在。
12.根据权利要求8所述的方法,其中:
所述2-D帧是第一2-D帧集合;
所述元数据是缩放因子;并且
其中,所述方法还包括:
生成表示所述3-D点云的第二2-D帧集合,所述第二2-D帧集合中的每一个帧包括补片,所述补片中的每个补片包括所述3-D点云中的点的聚类;
当生成所述第二2-D帧集合时,将所述缩放因子应用于所述3-D点云中的每个点,以与所述第一2-D帧集合相比降低所述第二2-D帧集合的分辨率,以及
编码所述第一2-D帧集合和所述第二2-D帧集合以生成所述压缩比特流。
13.根据权利要求11所述的方法,其中,为编码所述第一2-D帧集合和所述第二2-D帧集合以生成所述压缩比特流,处理器还被配置为:
对所述第二2-D帧集合进行上采样,以匹配所述第一2-D帧集合的维度尺寸;
将所述第一2-D帧集合与上采样后的第二2-D帧集合进行比较,以提取所述第一2-D帧集合和所述上采样后的第二2-D帧集合之间的点的差;以及
将所述第二2-D帧集合编码为基本层比特流,并将所提取的差编码为增强层比特流,以生成两个压缩比特流。
14.根据权利要求8所述的方法,其中,所述处理器还被配置为:
基于生成的占用图,识别被包括在位于每个补片的边界处的补片集合中的点;以及
生成所述元数据以调整位于每个补片的边界处的点的尺寸和位于每个补片的边界处的点的形状中的至少一个。
15.一种装置,被配置为执行权利要求1至14中任一项所述的方法。
Applications Claiming Priority (23)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201762583795P | 2017-11-09 | 2017-11-09 | |
| US62/583,795 | 2017-11-09 | ||
| US201862618226P | 2018-01-17 | 2018-01-17 | |
| US62/618,226 | 2018-01-17 | ||
| US201862653248P | 2018-04-05 | 2018-04-05 | |
| US62/653,248 | 2018-04-05 | ||
| US201862653918P | 2018-04-06 | 2018-04-06 | |
| US62/653,918 | 2018-04-06 | ||
| US201862656182P | 2018-04-11 | 2018-04-11 | |
| US201862656171P | 2018-04-11 | 2018-04-11 | |
| US62/656,171 | 2018-04-11 | ||
| US62/656,182 | 2018-04-11 | ||
| US201862688173P | 2018-06-21 | 2018-06-21 | |
| US62/688,173 | 2018-06-21 | ||
| US201862688835P | 2018-06-22 | 2018-06-22 | |
| US62/688,835 | 2018-06-22 | ||
| US201862697842P | 2018-07-13 | 2018-07-13 | |
| US62/697,842 | 2018-07-13 | ||
| US201862711955P | 2018-07-30 | 2018-07-30 | |
| US62/711,955 | 2018-07-30 | ||
| US16/182,465 | 2018-11-06 | ||
| US16/182,465 US10535161B2 (en) | 2017-11-09 | 2018-11-06 | Point cloud compression using non-orthogonal projection |
| PCT/KR2018/013668 WO2019093834A1 (en) | 2017-11-09 | 2018-11-09 | Point cloud compression using non-orthogonal projection |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111316331A true CN111316331A (zh) | 2020-06-19 |
| CN111316331B CN111316331B (zh) | 2025-02-07 |
Family
ID=66327446
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201880072736.6A Active CN111316331B (zh) | 2017-11-09 | 2018-11-09 | 使用非正交投影的点云压缩 |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US10535161B2 (zh) |
| EP (1) | EP3695386A4 (zh) |
| KR (1) | KR102580711B1 (zh) |
| CN (1) | CN111316331B (zh) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113284248A (zh) * | 2021-06-10 | 2021-08-20 | 上海交通大学 | 一种点云有损压缩的编解码方法、装置和系统 |
| CN115086672A (zh) * | 2021-03-11 | 2022-09-20 | 鹏城实验室 | 点云属性编码方法、装置、解码方法、装置及相关设备 |
| CN115804096A (zh) * | 2020-06-23 | 2023-03-14 | Lg电子株式会社 | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 |
| CN115918093A (zh) * | 2020-06-21 | 2023-04-04 | Lg电子株式会社 | 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法 |
| WO2024244900A1 (zh) * | 2023-05-31 | 2024-12-05 | 腾讯科技(深圳)有限公司 | 点云处理方法、装置及计算机设备、存储介质 |
Families Citing this family (116)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3349182A1 (en) * | 2017-01-13 | 2018-07-18 | Thomson Licensing | Method, apparatus and stream for immersive video format |
| US10462495B2 (en) * | 2017-08-09 | 2019-10-29 | Vital Images, Inc. | Progressive lossless compression of image data |
| US10861196B2 (en) | 2017-09-14 | 2020-12-08 | Apple Inc. | Point cloud compression |
| US11818401B2 (en) | 2017-09-14 | 2023-11-14 | Apple Inc. | Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables |
| US10897269B2 (en) | 2017-09-14 | 2021-01-19 | Apple Inc. | Hierarchical point cloud compression |
| US11113845B2 (en) * | 2017-09-18 | 2021-09-07 | Apple Inc. | Point cloud compression using non-cubic projections and masks |
| US10909725B2 (en) | 2017-09-18 | 2021-02-02 | Apple Inc. | Point cloud compression |
| US10699444B2 (en) | 2017-11-22 | 2020-06-30 | Apple Inc | Point cloud occupancy map compression |
| US10529086B2 (en) * | 2017-11-22 | 2020-01-07 | Futurewei Technologies, Inc. | Three-dimensional (3D) reconstructions of dynamic scenes using a reconfigurable hybrid imaging system |
| US10607373B2 (en) | 2017-11-22 | 2020-03-31 | Apple Inc. | Point cloud compression with closed-loop color conversion |
| EP3496388A1 (en) * | 2017-12-05 | 2019-06-12 | Thomson Licensing | A method and apparatus for encoding a point cloud representing three-dimensional objects |
| WO2019142667A1 (ja) * | 2018-01-17 | 2019-07-25 | ソニー株式会社 | 画像処理装置および方法 |
| CN110049323B (zh) * | 2018-01-17 | 2021-09-07 | 华为技术有限公司 | 编码方法、解码方法和装置 |
| EP3515067A1 (en) * | 2018-01-19 | 2019-07-24 | Thomson Licensing | A method and apparatus for encoding and decoding three-dimensional scenes in and from a data stream |
| US11010928B2 (en) | 2018-04-10 | 2021-05-18 | Apple Inc. | Adaptive distance based point cloud compression |
| US10867414B2 (en) | 2018-04-10 | 2020-12-15 | Apple Inc. | Point cloud attribute transfer algorithm |
| US10909726B2 (en) | 2018-04-10 | 2021-02-02 | Apple Inc. | Point cloud compression |
| US10939129B2 (en) | 2018-04-10 | 2021-03-02 | Apple Inc. | Point cloud compression |
| US10909727B2 (en) | 2018-04-10 | 2021-02-02 | Apple Inc. | Hierarchical point cloud compression with smoothing |
| SG11202012837QA (en) * | 2018-06-25 | 2021-01-28 | Huawei Tech Co Ltd | Hybrid geometric coding of point clouds |
| US11017566B1 (en) | 2018-07-02 | 2021-05-25 | Apple Inc. | Point cloud compression with adaptive filtering |
| US11202098B2 (en) * | 2018-07-05 | 2021-12-14 | Apple Inc. | Point cloud compression with multi-resolution video encoding |
| US11138762B2 (en) * | 2018-07-11 | 2021-10-05 | Samsung Electronics Co., Ltd. | Visual quality of video based point cloud compression using one or more additional patches |
| EP3595319A1 (en) * | 2018-07-12 | 2020-01-15 | InterDigital VC Holdings, Inc. | Methods and apparatus for volumetric video transport |
| US11012713B2 (en) | 2018-07-12 | 2021-05-18 | Apple Inc. | Bit stream structure for compressed point cloud data |
| JP7100523B2 (ja) * | 2018-07-27 | 2022-07-13 | 京セラ株式会社 | 表示装置、表示システムおよび移動体 |
| WO2020036389A1 (en) * | 2018-08-13 | 2020-02-20 | Lg Electronics Inc. | Method for transmitting video, apparatus for transmitting video, method for receiving video, and apparatus for receiving video |
| CN109146938B (zh) * | 2018-08-30 | 2020-09-15 | 百度在线网络技术(北京)有限公司 | 动态障碍物的位置校准方法、装置、设备及存储介质 |
| US11386524B2 (en) | 2018-09-28 | 2022-07-12 | Apple Inc. | Point cloud compression image padding |
| US11367224B2 (en) | 2018-10-02 | 2022-06-21 | Apple Inc. | Occupancy map block-to-patch information compression |
| US11430155B2 (en) | 2018-10-05 | 2022-08-30 | Apple Inc. | Quantized depths for projection point cloud compression |
| CN110163863B (zh) | 2018-11-06 | 2022-11-04 | 腾讯科技(深圳)有限公司 | 三维物体分割方法、设备和介质 |
| JP2020088694A (ja) * | 2018-11-28 | 2020-06-04 | キヤノン株式会社 | 画像処理装置、画像処理方法 |
| US20220028119A1 (en) * | 2018-12-13 | 2022-01-27 | Samsung Electronics Co., Ltd. | Method, device, and computer-readable recording medium for compressing 3d mesh content |
| US11039115B2 (en) * | 2018-12-21 | 2021-06-15 | Samsung Electronics Co., Ltd. | Low complexity color smoothing of reconstructed point clouds |
| US11956478B2 (en) * | 2019-01-09 | 2024-04-09 | Tencent America LLC | Method and apparatus for point cloud chunking for improved patch packing and coding efficiency |
| JP7511488B2 (ja) * | 2019-02-12 | 2024-07-05 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ多重化方法、三次元データ逆多重化方法、三次元データ多重化装置、及び三次元データ逆多重化装置 |
| US11457231B2 (en) * | 2019-03-15 | 2022-09-27 | Mediatek Singapore Pte. Ltd. | Methods and apparatus for signaling spatial relationships for point cloud multimedia data tracks |
| CN111726616B (zh) * | 2019-03-19 | 2024-03-01 | 华为技术有限公司 | 点云编码方法、点云解码方法、装置及存储介质 |
| WO2020193038A1 (en) * | 2019-03-22 | 2020-10-01 | Interdigital Vc Holdings France | Processing a point cloud |
| WO2020197228A1 (ko) * | 2019-03-22 | 2020-10-01 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
| US11057564B2 (en) | 2019-03-28 | 2021-07-06 | Apple Inc. | Multiple layer flexure for supporting a moving image sensor |
| WO2020230710A1 (ja) * | 2019-05-10 | 2020-11-19 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
| US11210812B2 (en) | 2019-05-15 | 2021-12-28 | Samsung Electronics Co., Ltd. | Single-pass boundary detection in video-based point cloud compression |
| WO2020237072A1 (en) | 2019-05-23 | 2020-11-26 | Vid Scale, Inc. | Video-based point cloud streams |
| WO2020235979A1 (ko) * | 2019-05-23 | 2020-11-26 | 삼성전자 주식회사 | 포인트 클라우드 기반 데이터를 렌더링하는 방법 및 장치 |
| US20220239946A1 (en) * | 2019-06-04 | 2022-07-28 | Lg Electronics Inc. | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method |
| CN113940083A (zh) * | 2019-06-14 | 2022-01-14 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置 |
| CN114009046B (zh) | 2019-06-21 | 2025-08-19 | Lg电子株式会社 | 用于处理点云数据的装置和方法 |
| WO2020256244A1 (ko) * | 2019-06-21 | 2020-12-24 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
| CN112153391B (zh) * | 2019-06-28 | 2022-07-29 | 腾讯美国有限责任公司 | 视频编码的方法、装置、电子设备及存储介质 |
| US11711544B2 (en) | 2019-07-02 | 2023-07-25 | Apple Inc. | Point cloud compression with supplemental information messages |
| US12159435B2 (en) | 2019-08-02 | 2024-12-03 | Lg Electronics Inc. | Point cloud data processing device and method |
| US11803986B2 (en) | 2019-08-08 | 2023-10-31 | Lg Electronics Inc. | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method |
| CN114503553B (zh) | 2019-09-19 | 2025-02-11 | 诺基亚技术有限公司 | 基于视频的点云压缩模型到世界信令信息 |
| WO2021060850A1 (ko) * | 2019-09-24 | 2021-04-01 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
| US11562507B2 (en) | 2019-09-27 | 2023-01-24 | Apple Inc. | Point cloud compression using video encoding with time consistent patches |
| US11627314B2 (en) | 2019-09-27 | 2023-04-11 | Apple Inc. | Video-based point cloud compression with non-normative smoothing |
| WO2021061725A1 (en) * | 2019-09-27 | 2021-04-01 | Vid Scale, Inc | Video-based point cloud streams |
| JP7402976B2 (ja) | 2019-09-30 | 2023-12-21 | 中興通訊股▲ふん▼有限公司 | 点群データのためのファイルフォーマット |
| WO2021066445A1 (en) * | 2019-10-01 | 2021-04-08 | Samsung Electronics Co., Ltd. | Method, apparatus and computer-readable recording medium for transmitting or receiving vpcc data |
| US11538196B2 (en) | 2019-10-02 | 2022-12-27 | Apple Inc. | Predictive coding for point cloud compression |
| US11461933B2 (en) | 2019-10-02 | 2022-10-04 | Samsung Electronics Co., Ltd. | Decision-making rules for attribute smoothing |
| KR102295825B1 (ko) * | 2019-10-03 | 2021-08-31 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
| PL4011088T3 (pl) * | 2019-10-03 | 2024-09-16 | Lg Electronics Inc. | Urządzenie transmisyjne danych z chmury punktów, sposób transmisji danych z chmury punktów, urządzenie odbiorcze danych z chmury punktów oraz sposób odbioru danych z chmury punktów |
| US11895307B2 (en) | 2019-10-04 | 2024-02-06 | Apple Inc. | Block-based predictive coding for point cloud compression |
| CN114503164B (zh) * | 2019-10-07 | 2025-06-27 | 华为技术有限公司 | 基于视频的点云压缩(v-pcc)分量同步 |
| WO2021022266A2 (en) * | 2019-10-07 | 2021-02-04 | Futurewei Technologies, Inc. | Video-based point cloud compression (v-pcc) timing information |
| JP7376705B2 (ja) * | 2019-10-07 | 2023-11-08 | エルジー エレクトロニクス インコーポレイティド | ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置およびポイントクラウドデータ受信方法 |
| WO2021095565A1 (ja) * | 2019-11-13 | 2021-05-20 | ソニーグループ株式会社 | 画像処理装置および方法 |
| JP7430792B2 (ja) | 2019-12-02 | 2024-02-13 | オッポ広東移動通信有限公司 | 属性情報の予測方法、エンコーダ、デコーダ及び記憶媒体 |
| US20210211723A1 (en) * | 2020-01-08 | 2021-07-08 | Mediatek Singapore Pte. Ltd. | Methods and apparatus for signaling 2d and 3d regions in immersive media |
| US11350132B2 (en) * | 2020-01-08 | 2022-05-31 | Qualcomm Incorporated | High level syntax for geometry-based point cloud compression |
| JP7477617B2 (ja) * | 2020-01-08 | 2024-05-01 | エルジー エレクトロニクス インコーポレイティド | ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法 |
| US11798196B2 (en) | 2020-01-08 | 2023-10-24 | Apple Inc. | Video-based point cloud compression with predicted patches |
| KR102373833B1 (ko) * | 2020-01-09 | 2022-03-14 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
| US11475605B2 (en) | 2020-01-09 | 2022-10-18 | Apple Inc. | Geometry encoding of duplicate points |
| CN113114608B (zh) * | 2020-01-10 | 2022-06-10 | 上海交通大学 | 点云数据封装方法及传输方法 |
| WO2021146041A1 (en) * | 2020-01-14 | 2021-07-22 | Futurewei Technologies, Inc. | Scaling parameters for v-pcc |
| US11315329B1 (en) * | 2020-02-25 | 2022-04-26 | Facebook Technologies, Llc. | Scene reconstruction from sparse data |
| KR102378138B1 (ko) * | 2020-03-16 | 2022-03-25 | 엘지전자 주식회사 | 포인트 클라우드 데이터 전송 장치, 전송 방법, 처리 장치 및 처리 방법 |
| US11373339B2 (en) * | 2020-03-18 | 2022-06-28 | Sony Group Corporation | Projection-based mesh compression |
| WO2021187565A1 (ja) * | 2020-03-19 | 2021-09-23 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
| US20230113736A1 (en) * | 2020-03-25 | 2023-04-13 | Sony Group Corporation | Image processing apparatus and method |
| WO2021193088A1 (ja) * | 2020-03-25 | 2021-09-30 | ソニーグループ株式会社 | 画像処理装置および方法 |
| CN118138736A (zh) * | 2020-04-11 | 2024-06-04 | Lg电子株式会社 | 点云数据编码设备和点云数据解码设备 |
| KR102355634B1 (ko) * | 2020-04-14 | 2022-02-08 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
| US20230196700A1 (en) * | 2020-05-26 | 2023-06-22 | Sony Group Corporation | Image processing apparatus and image processing method |
| WO2021256885A1 (ko) * | 2020-06-18 | 2021-12-23 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
| US11770562B2 (en) * | 2020-06-23 | 2023-09-26 | Qualcomm Incorporated | High-level syntax for geometry-based point cloud compression |
| US11615557B2 (en) | 2020-06-24 | 2023-03-28 | Apple Inc. | Point cloud compression using octrees with slicing |
| US11620768B2 (en) | 2020-06-24 | 2023-04-04 | Apple Inc. | Point cloud geometry compression using octrees with multiple scan orders |
| KR102417959B1 (ko) * | 2020-07-28 | 2022-07-06 | 주식회사 엘지유플러스 | 3차원 입체 콘텐츠 제공 장치 및 그 방법 |
| US11706450B2 (en) * | 2020-09-18 | 2023-07-18 | Samsung Electronics Co., Ltd. | Partial decoding and reconstruction of a video-based point cloud compression bitstream |
| WO2022074286A1 (en) * | 2020-10-05 | 2022-04-14 | Nokia Technologies Oy | A method, an apparatus and a computer program product for video encoding and video decoding |
| WO2022075074A1 (ja) * | 2020-10-07 | 2022-04-14 | ソニーグループ株式会社 | 画像処理装置および方法 |
| KR102882093B1 (ko) * | 2020-10-08 | 2025-11-07 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
| US12314859B2 (en) | 2020-10-08 | 2025-05-27 | Samsung Electronics Co., Ltd. | Electronic apparatus for decompressing a compressed artificial intelligence model and control method therefor |
| KR102451419B1 (ko) * | 2020-10-30 | 2022-10-06 | 주식회사 이엠솔루션 | 포인트 클라우드를 이용한 게임 리플레이 시스템 |
| CN112423111A (zh) * | 2020-11-05 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 图形引擎和适用于播放器的图形处理方法 |
| US12125249B2 (en) * | 2020-11-24 | 2024-10-22 | Samsung Electronics Co., Ltd. | Overlapped patches for mesh coding for video based point cloud compression |
| US11948338B1 (en) | 2021-03-29 | 2024-04-02 | Apple Inc. | 3D volumetric content encoding using 2D videos and simplified 3D meshes |
| CN115243053B (zh) | 2021-04-22 | 2024-04-16 | 腾讯科技(深圳)有限公司 | 点云编解码方法及相关设备 |
| US12192519B2 (en) * | 2021-06-04 | 2025-01-07 | Tencent America LLC | Non-binary occupancy map for video based point cloud coding |
| CN113327328B (zh) * | 2021-08-02 | 2021-10-29 | 苏州鼎纳自动化技术有限公司 | 一种三维点云数据精简方法 |
| US12394101B2 (en) * | 2021-09-07 | 2025-08-19 | Tencent America LLC | Segment based compression methods for mesh compression |
| WO2023066345A1 (en) * | 2021-10-21 | 2023-04-27 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus and medium for point cloud coding |
| WO2023084789A1 (ja) * | 2021-11-15 | 2023-05-19 | 日本電信電話株式会社 | 配信装置、配信方法及びプログラム |
| US12309424B1 (en) * | 2021-11-15 | 2025-05-20 | Tencent America LLC | Grid-based patch generation for video-based point cloud coding |
| US12125250B2 (en) | 2021-11-22 | 2024-10-22 | Tencent America LLC | Decoding of patch temporal alignment for mesh compression |
| KR102506751B1 (ko) * | 2021-12-10 | 2023-03-08 | 주식회사 이안에스아이티 | 3차원 객체 시각화 방법 및 장치 |
| WO2023142132A1 (zh) * | 2022-01-30 | 2023-08-03 | 浙江大学 | 基于分辨率的解码方法、编码方法、解码器以及编码器 |
| US12536736B2 (en) | 2022-03-11 | 2026-01-27 | Apple Inc. | 3D representation of physical environment objects |
| US20240355004A1 (en) * | 2023-04-19 | 2024-10-24 | Sony Group Corporation | Variable rate compression of point cloud geometry |
| US20250030889A1 (en) * | 2023-07-19 | 2025-01-23 | Tencent America LLC | Adaptive linear lifting transform |
| WO2025061451A1 (en) * | 2023-09-20 | 2025-03-27 | Interdigital Ce Patent Holdings, Sas | Signaling point size information for v-pcc rendering |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8358818B2 (en) * | 2006-11-16 | 2013-01-22 | Vanderbilt University | Apparatus and methods of compensating for organ deformation, registration of internal structures to images, and applications of same |
| CN106937531A (zh) * | 2014-06-14 | 2017-07-07 | 奇跃公司 | 用于产生虚拟和增强现实的方法和系统 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU2008249145A1 (en) * | 2008-11-21 | 2010-06-10 | Canon Kabushiki Kaisha | Resolution independent image degradation |
| CN107076838B (zh) * | 2014-08-15 | 2021-11-05 | 艾耶股份有限公司 | 用于光雷达发射的方法和系统 |
| US9734595B2 (en) | 2014-09-24 | 2017-08-15 | University of Maribor | Method and apparatus for near-lossless compression and decompression of 3D meshes and point clouds |
| US10694210B2 (en) * | 2016-05-28 | 2020-06-23 | Microsoft Technology Licensing, Llc | Scalable point cloud compression with transform, and corresponding decompression |
| US10223810B2 (en) * | 2016-05-28 | 2019-03-05 | Microsoft Technology Licensing, Llc | Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression |
-
2018
- 2018-11-06 US US16/182,465 patent/US10535161B2/en active Active
- 2018-11-09 KR KR1020180137584A patent/KR102580711B1/ko active Active
- 2018-11-09 EP EP18875676.1A patent/EP3695386A4/en active Pending
- 2018-11-09 CN CN201880072736.6A patent/CN111316331B/zh active Active
-
2020
- 2020-01-13 US US16/741,303 patent/US10853974B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8358818B2 (en) * | 2006-11-16 | 2013-01-22 | Vanderbilt University | Apparatus and methods of compensating for organ deformation, registration of internal structures to images, and applications of same |
| CN106937531A (zh) * | 2014-06-14 | 2017-07-07 | 奇跃公司 | 用于产生虚拟和增强现实的方法和系统 |
Non-Patent Citations (2)
| Title |
|---|
| KHALED MAMMOU: "Point Cloud compression :Test Model Category 2 version0.0", 120 MPEG MEETING, 23 October 2017 (2017-10-23), pages 1 - 7 * |
| MADHUKAR BUDAGAVI: "samsung’s response to cfp for point cloud compression(category 2)", 120 MPEG MEETING, 18 October 2017 (2017-10-18), pages 1 - 10 * |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115918093A (zh) * | 2020-06-21 | 2023-04-04 | Lg电子株式会社 | 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法 |
| CN115804096A (zh) * | 2020-06-23 | 2023-03-14 | Lg电子株式会社 | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 |
| CN115086672A (zh) * | 2021-03-11 | 2022-09-20 | 鹏城实验室 | 点云属性编码方法、装置、解码方法、装置及相关设备 |
| CN115086672B (zh) * | 2021-03-11 | 2024-08-23 | 鹏城实验室 | 点云属性编码方法、装置、解码方法、装置及相关设备 |
| CN113284248A (zh) * | 2021-06-10 | 2021-08-20 | 上海交通大学 | 一种点云有损压缩的编解码方法、装置和系统 |
| CN113284248B (zh) * | 2021-06-10 | 2022-11-15 | 上海交通大学 | 一种点云有损压缩的编解码方法、装置和系统 |
| WO2024244900A1 (zh) * | 2023-05-31 | 2024-12-05 | 腾讯科技(深圳)有限公司 | 点云处理方法、装置及计算机设备、存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20190053129A (ko) | 2019-05-17 |
| US20190139266A1 (en) | 2019-05-09 |
| US10535161B2 (en) | 2020-01-14 |
| KR102580711B1 (ko) | 2023-09-20 |
| EP3695386A1 (en) | 2020-08-19 |
| US20200151913A1 (en) | 2020-05-14 |
| CN111316331B (zh) | 2025-02-07 |
| US10853974B2 (en) | 2020-12-01 |
| EP3695386A4 (en) | 2020-08-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10853974B2 (en) | Point cloud compression using non-orthogonal projection | |
| US12125249B2 (en) | Overlapped patches for mesh coding for video based point cloud compression | |
| US11373338B2 (en) | Image padding in video-based point-cloud compression CODEC | |
| US10916041B2 (en) | Method for depth image di coding | |
| US10424083B2 (en) | Point cloud compression using hybrid transforms | |
| US11348283B2 (en) | Point cloud compression via color smoothing of point cloud prior to texture video generation | |
| CN110892453B (zh) | 使用图像/视频编解码器的点云和网格压缩 | |
| US11216984B2 (en) | Patch splitting for improving video-based point cloud compression performance | |
| US11514613B2 (en) | Point cloud and mesh compression using image/video codecs | |
| US11665372B2 (en) | Fast projection method in video-based point cloud compression codecs | |
| US12100184B2 (en) | Attribute transfer in V-PCC | |
| US11210812B2 (en) | Single-pass boundary detection in video-based point cloud compression | |
| US20200020132A1 (en) | Visual quality of video based point cloud compression using one or more additional patches | |
| US10964067B2 (en) | Visual quality enhancement of reconstructed point clouds via color smoothing | |
| US11922663B2 (en) | Decision-making rules for attribute smoothing | |
| KR20230025777A (ko) | 비디오 기반 포인트 클라우드 압축을 위한 타일링 | |
| KR20210095224A (ko) | 포인트 클라우드를 압축 및 압축 해제하기 위한 장치 및 방법 | |
| US12094178B2 (en) | Complexity reduction of video-based point cloud compression encoding using grid-based segmentation |
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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant | ||
| TG01 | Patent term adjustment | ||
| TG01 | Patent term adjustment |