CN117813822A - 几何点云编解码中的属性编解码 - Google Patents
几何点云编解码中的属性编解码 Download PDFInfo
- Publication number
- CN117813822A CN117813822A CN202280046607.6A CN202280046607A CN117813822A CN 117813822 A CN117813822 A CN 117813822A CN 202280046607 A CN202280046607 A CN 202280046607A CN 117813822 A CN117813822 A CN 117813822A
- Authority
- CN
- China
- Prior art keywords
- points
- point
- candidate points
- index
- maximum number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 52
- 230000015654 memory Effects 0.000 claims description 44
- 238000002310 reflectometry Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 description 20
- 230000009466 transformation Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 238000013139 quantization Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
在一些方面,公开了一种用于对点云进行编码的方法。处理器以一维(1D)阵列表示点云。1D阵列包括一组点,所述一组点中的每个点与一个或多个属性相关联。处理器获得用于设置候选点的最大数量的索引,候选点用于对与每个点相关联的属性中的至少一个属性进行编码。处理器基于索引确定候选点的最大数量。处理器基于与一组候选点相关联的至少一个属性,将与所述一组点中的当前点相关联的至少一个属性编码成码流。所述一组候选点中的候选点的数量小于或等于确定的最大数量。
Description
交叉引用
本申请要求于2021年7月2日提交的、题为“G-PCC的基于邻近点云的灵活最大数量的属性编解码”的第63/218、215号美国临时专利申请,以及于2021年11月23日提交的、题为“几何点云编解码”的第63/264,509号美国临时专利申请的优先权权益,这些申请通过引用整体并入本文中。
背景技术
本公开的实施例涉及点云编解码。
点云是主要的三维(3D)数据表示方法之一,除了提供空间坐标之外,点云还提供与3D世界中的点相关联的属性。原始格式(raw format)的点云需要大量的存储空间或传输带宽。此外,更高分辨率的点云捕获技术的出现反过来对点云的大小提出了更高的要求。为了使点云可用,压缩是必要的。针对点云压缩/编解码(point cloud compression/coding,PCC)标准化活动,已经提出了两种压缩技术:基于视频的PCC(video-based PCC,V-PCC)和基于几何的PCC(geometry-based PCC,G-PCC)。V-PCC方法基于3D到二维(2D)的投影;相反地,G-PCC方法直接在3D空间中对内容进行编码。为了实现这一点,G-PCC利用了数据结构(例如描述3D空间中点的位置的八叉树)。
发明内容
根据本公开的一个方面,公开了一种用于对点云进行编码的方法。处理器以一维(1D)阵列表示点云。1D阵列包括一组点,所述一组点中的每个点与一个或多个属性相关联。处理器获得用于设置候选点的最大数量的索引,候选点用于对与每个点相关联的属性中的至少一个属性进行编码。处理器基于索引确定候选点的最大数量。处理器基于与一组候选点相关联的至少一个属性,将与所述一组点中的当前点相关联的至少一个属性编码成码流。所述一组候选点中的候选点的数量小于或等于所确定的最大数量。
根据本公开的另一方面,用于对点云进行编码的系统包括被配置为存储指令的存储器和耦接到存储器的处理器。处理器配置成在执行指令时,以1D阵列表示点云。1D阵列包括一组点,所述一组点中的每个点与一个或多个属性相关联。处理器还配置为在执行指令时,获得用于设置候选点的最大数量的索引,候选点用于对与每个点相关联的属性中的至少一个属性进行编码。处理器还配置成在执行指令时,基于索引确定候选点的最大数量。处理器还配置成在执行指令时,基于与一组候选点相关联的至少一个属性,将与所述一组点中的当前点相关联的至少一个属性编码成码流。所述一组候选点中的候选点的数量小于或等于所确定的最大数量。
根据本公开的又一个方面,公开了一种用于对点云进行解码的方法。点云被表示为一维(1D)阵列,1D阵列包括一组点,所述一组点中的每个点与一个或多个属性相关联。处理器对码流进行解码,以获得用于设置候选点的最大数量的索引,候选点用于对与每个点相关联的属性中的至少一个属性进行编码;以及获得与一组候选点相关联的至少一个属性,所述一组候选点用于对与一组点中的当前点相关联的至少一个属性进行编码。处理器基于索引确定候选点的最大数量。处理器基于与所述一组候选点相关联的至少一个属性,确定与当前点相关联的至少一个属性。所述一组候选点中的候选点的数量小于或等于所确定的最大数量。
根据本公开的又一方面,用于对点云进行解码的系统包括配置为存储指令的存储器和耦接到该存储器的处理器。点云被表示为1D阵列,1D阵列包括一组点,所述一组点中的每个点与一个或多个属性相关联。处理器配置为,在执行指令时,对码流进行解码以获得用于设置候选点的最大数量的索引,候选点用于对与每个点相关联的属性中的至少一个属性进行编码;以及获得与一组候选点相关联的至少一个属性,所述一组候选点用于对与一组点中的当前点相关联的至少一个属性进行编码。处理器还配置成在执行指令时,基于索引确定候选点的最大数量。处理器还配置成在执行指令时,基于与所述一组候选点相关联的至少一个属性,确定与当前点相关联的至少一个属性。所述一组候选点中的候选点的数量小于或等于确定的最大数量。
提及这些说明性实施例并不是为了限制或定义本公开,而是为了提供有助于理解的示例。在具体实施方式中描述了附加实施例,并且在那里提供了进一步的描述。
附图说明
并入本文并形成说明书一部分的附图示出了本公开的实施例,并且与具体实施方式一起进一步用于解释本公开的原理,并且使得相关领域的技术人员能够制作和使用本公开。
图1示出了根据本公开的一些实施例的示例性编码系统的框图。
图2示出了根据本公开的一些实施例的示例性解码系统的框图。
图3示出了根据本公开的一些实施例的、图1中的编码系统中的示例性编码器的详细框图。
图4示出了根据本公开的一些实施例的、图2中的解码系统中的示例性解码器的详细框图。
图5A和图5B分别示出了根据本公开的一些实施例的G-PCC的示例性八叉树结构和相应的数字表示。
图6示出了根据本公开的一些实施例的立方体的示例性结构以及与G-PCC的八叉树结构中的相邻立方体的关系。
图7示出了根据本公开的一些实施例的、表示点云、一组候选点和一组预测点的示例性1D点阵列。
图8示出了根据本公开的一些实施例的、表示点云和具有可配置的最大数量的一组候选点的示例性1D点阵列。
图9示出了根据本公开的一些实施例的、用于对点云进行编码的示例性方法的流程图。
图10示出了根据本公开的一些实施例的、用于点云编解码中的属性编解码的示例性方法的流程图。
图11示出了根据本公开的一些实施例的、用于对点云进行解码的示例性方法的流程图。
图12示出了根据本公开的一些实施例的、用于点云编解码中的属性编解码的示例性方法的流程图。
将参照附图描述本公开的实施例。
具体实施方式
尽管讨论了一些配置和布置,但应当理解,这仅仅是出于说明的目的。相关领域技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以使用其他的配置和布置。对于相关领域的技术人员来说明显的是,本公开也可以被用于各种其他应用。
注意,在说明书中引用的“一个实施例”、“一实施例”、“一个示例实施例”、“一些实施例”、“某些实施例”等表示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例不一定都包括特定的特征、结构或特性。此外,这些短语不一定指同一个实施例。此外,当结合一个实施例来描述特定特征、结构或特性时,无论是否明确描述,都将在相关领域技术人员的知识范围内结合其他实施例实现该特征、结构或特性。
一般来说,术语至少可以部分地从上下文中的用法来理解。例如,本文使用的术语“一个或多个”,至少部分取决于上下文,可以用于描述单数意义上的任何特征、结构或特征,或者可以用于描述复数意义上的特征、结构或特征的组合。类似地,诸如“一”、“一个”、“所述”之类的术语也可以被理解为传达单数用法或复数用法,这至少部分取决于上下文。此外,术语“基于”一词可以被理解为不一定意在传达一组排他性因素,而是可以允许存在不一定明确描述的其他因素,这也至少部分取决于上下文。
现在将参照各种装置和方法来描述点云编解码系统的各个方面。将在下面的详细描述中描述这些装置和方法,并在附图中通过各种模块、组件、电路、步骤、操作、过程、算法等(统称为“元素”)来说明。这些元素可以使用电子硬件、固件、计算机软件或其任意组合来实现。这些元素是作为硬件、固件还是软件实现,取决于特定应用和对整个系统施加的设计约束。本文描述的技术可用于各种点云编解码应用。如本文所述,点云编解码包括对点云进行编码和解码。
点云由3D空间中的点的集合组成。3D空间中的每个点与几何位置以及相关联的属性信息(例如,颜色、反射率、强度、分类等)相关联。为了有效地压缩点云数据,可以先压缩点云的几何图形,然后根据点云编解码技术(例如,G-PCC),基于几何图形信息压缩相应的属性,该属性包括颜色或反射率。G-PCC已广泛应用于虚拟现实/增强现实(VR/AR)、电信、自动驾驶等娱乐和工业应用,例如,用于汽车或机器人的光探测和测距(light detectionand ranging,LiDAR)扫描压缩以及用于导航的高清(HD)地图。运动图像专家组(MovingPicture Experts Group,MPEG)发布了第一版G-PCC标准,音频视频编解码标准(AudioVideo Coding Standard,AVS)也在开发G-PCC标准。
在现有的G-PCC标准中,在几何信息被编码之后,Morton码(Morton code,又名Morton曲线(Morton curve)、z阶曲线(z-order curve))或Hilbert码(Hilbert code,又名Hilbert曲线(Hilbert curve))可用于将3D的点云转换成1D阵列(数组)。属性编解码可以遵循预定义的Morton顺序(Morton order)或Hilbert顺序(Hilbert order)。可以根据Morton顺序或Hilbert顺序的先前编码点生成预测值。可以将当前点与其预测值之间的属性差编码到码流中。
为了减少存储器的使用,已经指定了一些预定义的数字来限制可用于生成预测值的邻近点的数量。例如,在先前最多N个连续的已编码点中,最多仅M个点可以被用于对当前点的属性进行编码。例如,在现有的AVS G-PCC规范中,M和N分别是预定义的固定数字3和128。然而,点云中预定义的、固定的先前的已编码点的最大数量(例如在AVS中用于属性编解码的128)是不够灵活的,即便编解码系统能够承担更多的计算并且具有更大的存储器。
为了提高点云编解码的灵活性,本公开提供了一种在点云编解码中用于属性编解码的点云(点云数据)中邻近的先前已编码点的可配置的最大数量的方案。本文公开的属性编解码方案不是预定义的、固定的最大数量,例如AVS G-PCC中的128,而是允许编解码系统例如基于它们的计算资源和/或存储器的大小动态地配置邻近的先前已编码的点云数据的最大数量。例如,N表示根据预定义的顺序(例如Morton顺序或Hilbert顺序),在1D阵列中当前点之前的邻近点的最大数量,并且N可以被动态地配置为等于一个数,例如2的幂(例如128、256、512或1024)。
在一些实施例中,最大数量N不需要被直接编码到码流中。相反,可以通过固定长度编码,例如使用2比特或3比特固定长度的二进制数,将由比最大数量N更小的比特数量表示的索引编码到码流中。然后可以基于索引来计算最大数量N,这减少了码流中用于表示可配置的最大数量N的附加比特的数量。
图1示出了根据本公开的一些实施例的示例性编码系统100的框图。图2示出了根据本公开的一些实施例的示例性解码系统200的框图。每个系统100或200可以被应用或被集成到能够进行数据处理的各种系统和装置中,例如计算机和无线通信设备。例如,系统100或200可以是移动电话、台式计算机、膝上型计算机、平板电脑、车载计算机、游戏控制台、打印机、定位设备、可穿戴电子设备、智能传感器、虚拟现实(virtual reality,VR)设备、增强现实(argument reality,AR)设备或任何其他具有数据处理能力的合适的电子设备的整体或部分。如图1和图2所示,系统100或200可以包括处理器102、存储器104和接口106。这些组件显示为通过总线相互连接,但也允许其他连接类型。应当理解,系统100或200可以包括用于执行本文描述的功能的任何其他合适的组件。
处理器102可以包括微处理器,例如图形处理单元(graphic processing unit,GPU)、图像信号处理器(image signal processor,ISP)、中央处理单元(centralprocessing unit,CPU)、数字信号处理器(digital signal processor,DSP)、张量处理单元(tensor processing unit,TPU)、视觉处理单元(vision processing unit,VPU)、神经处理单元(neural processing unit,NPU)、协同处理单元(synergistic processingunit,SPU)、或物理处理单元(physics processing unit,PPU)、微控制器单元(microcontroller units,MCU)、专用集成电路(application-specific integratedcircuits,ASICs)、现场可编程门阵列(field-programmable gate arrays,FPGAs)、可编程逻辑器件(programmable logic devices,PLDs)、状态机、门控制逻辑、分立式硬件电路、以及被配置成执行本公开中描述的各种功能的其他合适的硬件。尽管图1和图2中仅示出了一个处理器,应当理解,图1和图2中可以包括多个处理器。处理器102可以是具有一个或多个处理核心的硬件设备。处理器102可以执行软件。软件应被广义地解释为指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用程序、软件应用程序、软件包、例程、子例程、对象、可执行文件、执行线程、过程、函数等,无论被称为软件、固件、中间件、微码、硬件描述语言或其他。软件可以包括用解释语言、汇编语言或机器代码编写的计算机指令。其他指示硬件的技术也被允许在软件的大类下使用。
存储器104可以广泛地包括两种存储器,包括称为主/系统存储器的存储器和称为辅助存储器的存储器。例如,存储器104可以包括随机存取存储器(random-access memory,RAM)、只读存储器(read-only memory,ROM)、静态RAM(static RAM,SRAM)、动态RAM(dynamic RAM,DRAM)、铁电RAM(ferro-electric RAM,FRAM)、电可擦除可编程ROM(electrically erasable programmable ROM,EEPROM)、光盘只读存储器(compact discread-only memory,CD-ROM)或其他光盘存储器、硬盘驱动器(hard disk drive,HDD),例如磁盘存储器或其他磁性存储设备、闪存驱动器、固态驱动器(SSD),或者可用于以指令形式携带或存储所需程序代码的任何其他介质,这些指令可由处理器102访问和执行。广义地说,存储器104可以由任何计算机可读介质来实现,例如非暂时性计算机可读介质。尽管图1和图2中仅示出了一个存储器,但应当理解,图1和图2中可以包括多个存储器。
接口106可以宽泛地包括数据接口和通信接口,其被配置为在与其他外部网络元件接收和发送信息的过程中接收和发送信号。例如,接口106可以包括输入/输出(I/O)设备和有线或无线收发器。尽管图1和图2中仅示出了一个存储器,应当理解,图1和2中可以包括多个接口。
处理器102、存储器104和接口106可以在系统100或200中以各种形式实现,用于执行点云编解码功能。在一些实施例中,系统100或200的处理器102、存储器104和接口106在一个或多个片上系统(system-on-chips,SoC)上实现(例如,集成)。在一个示例中,处理器102、存储器104和接口106可以集成在应用处理器(application processor,AP)SoC上,该AP SoC可以处理在操作系统(operating system,OS)环境中的应用处理,包括运行点云编码和解码的应用。在另一个示例中,处理器102、存储器104和接口106可以集成在用于点云编解码的专用处理器芯片上,例如专用于实时操作系统(real-time operating system,RTOS)中的图形处理的GPU或ISP芯片。
如图1所示,在编码系统100中,处理器102可以包括一个或多个模块,例如编码器101。尽管图1示出了编码器101在一个处理器102内,但是应当理解,编码器101可以包括一个或多个子模块,这些子模块可以在彼此靠近或远离的不同处理器上实现。编码器101(以及任何相应的子模块或子单元)可以是处理器102的硬件单元(例如,集成电路的一部分),该硬件单元被设计用于与处理器102通过执行程序的至少一部分(即指令)实现的其他组件或软件单元一起使用。程序的指令可以存储在计算机可读介质上,例如存储器104,并且程序的指令在由处理器102执行时,可以执行具有与点云编码相关的一个或多个功能的过程,例如体素化(voxelization)、变换、量化、算术编码等,详见下文描述。
类似地,如图2所示,在解码系统200中,处理器102可以包括一个或多个模块,例如解码器201。尽管图2示出了解码器201在一个处理器102内,但是应当理解,解码器201可以包括一个或多个子模块,这些子模块可以在彼此靠近或远离的不同处理器上实现。解码器201(以及任何相应的子模块或子单元)可以是处理器102的硬件单元(例如,集成电路的一部分),该硬件单元被设计用于与处理器102通过执行程序的至少一部分(即指令)实现的其他组件或软件单元一起使用。程序的指令可以存储在计算机可读介质上,例如存储器104,并且程序的指令在由处理器102执行时,可以执行具有与点云解码相关的一个或多个功能的过程,例如算术解码、去量化、逆变换、重建、合成,详见下文描述。
图3示出了根据本公开的一些实施例的、图1中的编码系统100中的示例性编码器101的详细框图。如图3所示,编码器101可以包括坐标变换模块302、体素化模块304、几何分析模块306和算术编码模块308,这些模块一起被配置成将与点云的点相关联的位置编码成几何码流(即,几何编码)。如图3所示,编码器101还可以包括颜色变换模块310、属性变换模块312、量化模块314和算术编码模块316,这些模块一起被配置成将与点云的点相关联的属性编码成属性码流(即,属性编码)。应当理解,图3中所示的每个元素被独立示出,以表示点云编码器中彼此不同的特征功能,然而这并不意味着每个元素由单独的硬件或单个软件的配置单元形成。也就是说,将每个元素列为一个元素是为了便于理解,并且可以将这些元素中的至少两个元素组合以形成单个元素,或者可以将一个元素分成多个元素以执行功能。还应理解,这些元素中的一些不是执行本公开中描述的功能的必要元素,而是可以是用于改进性能的可选元素。还应理解,这些元素可以使用电子硬件、固件、计算机软件或其任何组合来实现。这些元素是否以硬件、固件或软件实现取决于施加在编码器101上的特定应用和设计约束。还应理解,图3中所示的模块仅用于说明目的,并且在一些示例中,编码器101可以包括用于点云编码不同的模块。
如图3所示,可以分别编码与点相关联的几何位置和属性。点云可以是多个点的集合,这些点具有位置Xk=(xk,yk,zk),k=1,…,K,其中K为点云中点的数量,并且具有属性Ak=(A1k,A2k,…,ADk),k=1,…,K,其中D是每个点的属性数量。在一些实施例中,属性编码依赖于解码的几何图形。因此,可以首先对点云的位置进行编码。因为几何位置可以由原始坐标系中的浮点数表示,所以坐标变换模块302和体素化模块304可以被配置成执行坐标变换,坐标变换之后是体素化(量化和移除重复点)。将位置量化、去除重复点以及为剩余点分配属性的过程称为体素化。经体素化的点云可以使用例如八叉树结构以无损方式表示。几何分析模块306可以被配置成使用例如八叉树或trisoup方案来执行几何分析。算术编码模块308可以被配置成将来自几何分析模块306得出的结构算术编码成几何码流。
在一些实施例中,几何分析模块306被配置成使用八叉树方案来执行几何分析。在八叉树方案中,可以由两个极值点(0,0,0)和(2d,2d,2d)来定义与立方体轴对齐的边界框B,其中,d是给定点云沿x、y或z方向的最大尺寸。点云的所有点都可以被包含在这个被定义的立方体中。如图5A所示,1个立方体可以被分成8个子立方体,这样就创建了允许一个立方体具有8个子立方体的八叉树结构,然后可以通过递归地细分子立方体来构建八叉树结构。如图5B所示,可以通过给每个子立方体关联一个1比特的值来生成8比特代码,这个1比特指示该子立方体是否包含点(即,满且值为1)或不包含点(即,空且值为0)。只有大小大于1的(即,非体素)完整的子立方体可以被进一步细分。一个位置的几何信息(x,y,z)可以由所定义的这种八叉树结构表示。由于点可以被复制,因此可以将多个点映射到大小为1的相同子立方体(即,相同体素)。为了处理这种情况,也将维度为1的每个子立方体的点的数量进行算术编码。通过构造八叉树,与当前节点相关联的当前立方体可以被与其共享一个面的相同深度的六个立方体所包围。如图6所示,根据当前立方体的位置,一个立方体可以有多达六个相同大小的立方体来共享一个面。此外,当前立方体还可以具有与当前立方体共享线或点的一些相邻立方体。
回到图3,关于属性编码,可选地,如果属性包括颜色,则颜色变换模块310可以被配置成将每个点的红/绿/蓝(RGB)颜色属性转换成YCbCr颜色属性。属性变换模块312可以被配置成基于来自几何分析模块306的结果(例如,使用八叉树方案)来执行属性变换,包括但不限于区域自适应分层变换(region adaptive hierarchical transform,RAHT)、基于插值的分层最近邻预测(预测变换)和具有更新/提升步骤的基于插值的分层最近邻预测(提升变换)。可选地。量化模块314可以被配置成量化来自属性变换模块312的属性的变换系数,以生成与每个点相关联的属性的量化级别,从而减小动态范围。算术编码模块316可以被配置成将所得到(即,量化后的)的属性的变换系数算术编码成属性码流,属性与每个点相关联或者与属性的量化级别相关联。
在一些实施例中,例如在属性变换模块312的预测变换和提升变换中,可以根据邻近的编码属性形成预测。然后,可以对当前属性和预测之间的差异进行编码。根据本公开的一些方面,如图7所示,在AVS G-PCC标准中,在几何位置被编码之后,可以使用Morton码或Hilbert码将3D空间中的点云(例如,点云立方体)转换成1D阵列。立方体中的每个位置都有相应的Morton码或Hilbert码,但有些位置可能没有任何相应的点云属性。换句话说,有些位置可能是空的。属性编码可以遵循预定义的Morton顺序或Hilbert顺序。可以根据按照Morton顺序或Hilbert顺序的1D阵列中的先前已编码点生成预测器。可以将当前点与其预测点之间的属性差异编码到码流中。
如图7所示,为了减少存储器的使用,已经指定了一些预定的数量来限制可用于生成预测的邻近点的数量。例如,在先前最多N个连续编码点中,最多可以将M个点用于对当前属性进行编码。即,在属性编码中,可以将一组n个候选点用作候选点,以选择一组m个预测点(m≤n)并将其用于预测当前点。集合中候选点的数量n小于或等于候选点的最大数目N(n≤N),并且集合中预测点的数目m小于或等于预测点的最大数量m(m≤M)。如图7所示,在按照Morton顺序或Hilbert顺序的1D阵列中,如果在当前点之前的邻近点的数量大于候选点的最大数量N,则(灰色阴影示出的)当前点的候选点集合中的候选点的数量n等于最大数量N;在按照Morton顺序或Hilbert顺序的1D阵列中,如果在当前点之前的邻近点的数量大于或等于候选点的最大数量N,则(灰色阴影示出的)当前点的候选点集合中的候选点的数量n小于最大数量N,则当前点之前的所有邻近点被用作当前点的候选点集合。在图7中,可以将预测点的最大数量M设置为3,并且可以例如基于与n个候选点和当前点相关联的位置信息(例如,每个候选点和当前点之间的距离),从n个候选点的集合中选择出具有3个预测点(由粗体和下划线示出的点P)的集合。
在当前的AVS G-PCC规范中,M和N分别被设置为固定数量3和128。如果在当前点之前已编码的点多于128个,那么根据预定义的顺序,先前128个邻近点中只有3个可以被用于形成属性预测值(预测点)。如果在当前点之前已编码点少于128个,那么当前点之前的所有已编码的点都将作为候选点来查找预测点。在之前的最多128个候选点中,选择最多3个预测点,这些预测点在这些候选点和当前点之间具有最近的“距离”(例如,欧几里德(Euclidean)距离)。作为一个示例,欧几里德距离d可以定义为如下,而在其他示例中也可以使用其他的距离度量方法:
d=|x1-x2|+|y1-y2|+|z1-z2| (1),
其中,(x1,y1,z1)和(x2,y2,z2)分别是按照Morton顺序或Hilbert顺序的当前点和候选点的坐标。根据一些实施例,一旦选择了m个预测点(例如,3个最近的候选点),可以根据这些m个点形成加权属性平均值并将其作为预测值,以编码当前点的属性。应当理解,在一些示例中,可以从与当前点云共享相同面/线/点的立方体中的候选点中选择预测点。
由于需要将n个候选点的集合存储在存储器中并进行遍历,以便选择m个预测点的集合来编码与当前位置相关联的属性,所以引入了候选点的最大数量M,以限制存储器的大小和候选点的存储和搜索可能占用的计算资源量。然而,因为不同的点云编解码系统和/或应用可能具有不同的要求来平衡存储器/计算资源消耗和预测的准确性,所以候选点的最大数量M(例如128)作为一个预定义的固定数量是不灵活的。例如,某些点云编解码系统和/或应用可以提供更多的计算资源并具有更大的存储器,并且可能要求更高的预测精度,这反过来又需要使用更多数量的候选点进行预测。相比之下,某些点云编解码系统和/或应用可以提供更少的计算资源并具有更小的内存,同时要求更低的预测精度,这反过来又需要使用更少数量的候选点进行预测。
与本公开的范围一致,引入了动态的、可配置的候选点的最大数量来代替预定义的、固定的候选点的最大数量,以用于点云编解码中的属性编解码,例如,用于预测变换。例如,图8示出了根据本公开的一些实施例的、用于表示点云的示例性1D点阵列和具有可配置的最大数量的候选点的集合。在1D阵列中,点(P)的集合可以按照Morton顺序或Hilbert顺序。候选点的集合可以是按照Morton顺序或Hilbert顺序的1D阵列中的、在当前点之前的邻近点。可以从候选点的集合中选择一组预测点(例如,由粗体和下划线示出的三个点P)。如图8所示,用于1D阵列中的(灰色阴影示出的)当前点的属性编解码的候选点的最大数量N是可动态配置的,例如,具有不同的可能的值N1、N2,...Ni。例如,N的值可以是正整数。在一个示例中,N的值可以是128的整数倍,例如128、256、384、512等,以便于更好地与现有的AVSG-PCC标准中的固定数量128兼容。在另一个示例中,N的值可以是2的幂,例如128、256、512、1024等,这也与现有的AVS G-PCC标准中的固定数量128兼容。在一些实施例中,从一致性的角度来看,N的值可以不超过1024。
在一些实施例中,为了进一步减少码流中表示可配置的最大数量(maxNumOfNeighbours)的比特数,可以通过固定长度编码(f(n))将索引(maxNumOfNeighbours_index)编码到码流中,而不是最大值本身,并将索引用于计算候选点的可配置的最大数量的值。即,编码器和解码器都可以首先获得索引,然后根据索引和最大候选点数量之间的预定义关系,基于索引确定可配置的最大候选点数量。
在一个示例中,候选点的最大数量的值N可以由以下等式确定:
N=2(idx+7) (2),
其中idx表示索引的值,索引的值是一个正整数。在一些实施例中,从由0、1、2和3组成的一组数中选择一个作为索引的值,并且候选点的最大数量分别为128、256、512或1024。也就是说,可以在码流中使用2比特固定长度的二进制数对索引进行编码,以通过f(2)来表示从0到3的索引值。换句话说,码流中只需要两个比特来表示可配置的最大候选点数的四个可能值128、256、512和1024,这最小化了在码流中需要传输的必要的表示比特。此外,通过将索引的值设置为不大于3,即可配置的最大候选点数的值为1024,这确保了方案与现有标准的一致性。
在另一个示例中,候选点的最大数量的值N可以由以下等式确定:
N=idx+1<<7 (3),
其中idx表示索引的值,索引的值是一个正整数。在一些实施例中,从由0、1、2、3、4、5、6、7组成的一组数中选择一个作为索引的值,并且候选点的最大数量的值分别为128、256、384、512、640、768、896或1024。也就是说,可以使用3比特固定长度的二进制数在码流中对索引进行编码,来用f(3)表示从0到7的索引值。
如上,点云中的每个点可以与一个或多个属性相关联,例如颜色和反射率。用于设置用于属性编解码的候选点的最大数量的索引和用于属性编解码的候选点的最大数量可以是特定的以用于对一个属性进行编解码,或者可以是通用的,以用于对每个属性进行编解码。在一些实施例中,索引用于设置对每个属性进行编解码的候选点的最大数量。例如,颜色编码和反射率编码可以使用相同的索引(以及由索引产生的相同的候选点的最大数量),以实现易于设置。在一些实施例中,索引用于设置仅对属性之一进行编码的候选点的最大数量。例如,可以使用第一索引,例如颜色索引(以及由此产生的候选点的第一最大数量)进行颜色编码,并且可以使用第二索引,例如反射索引(以及由此产生的候选点的第二最大数量)进行反射编码,以实现更大的灵活性。
应当理解,在一些示例中,预测点的最大数量M也可以具有可配置的值,类似于如上文详细描述的候选点的最大数量N。
图4示出了根据本公开的一些实施例的、图2中的解码系统200中的示例性解码器201的详细框图。如图4所示,解码器201可以包括算术解码模块402、几何合成模块404、重建模块406和坐标逆变换模块408,这些模块一起被配置为根据几何码流解码出与点云的点相关联的位置(即,几何解码)。如图4所示,解码器201还可以包括算术解码模块410、去量化模块412、属性逆变换模块414和颜色逆变换模块416,这些模块一起被配置为根据属性码流解码出与点云的点相关联的属性(即,属性解码)。应当理解,图4中所示的每个元素被独立示出,以表示点云解码器中彼此不同的特征函数,然而这并不意味着每个部件由单独的硬件或单个软件的配置单元形成。也就是说,将每个元素列为一个元素是为了便于理解,并且可以将元素中的至少两个元素组合以形成单个元素,或者可以将一个元素分成多个元素以执行功能。还应理解,元素中的一些不是执行本公开中描述的功能的必要元素,而是可以是用于改进性能的可选元素。还应理解,可以使用电子硬件、固件、计算机软件或其任何组合来实现这些元素。这些元素是否作为硬件、固件或软件实现取决于施加在解码器201上的特定应用和设计约束。还应理解,图4中所示的模块仅用于说明目的,并且在一些示例中,解码器201可以包括用于点云解码的不同模块。
当点云码流(例如,几何码流或属性码流)被从点云编码器(例如,编码器101)输入时,可以由解码器201以与点云编码器相反的过程对输入码流进行解码。因此,为了便于描述,可以跳过上文描述的与编码对应的解码细节。算术解码模块402和410可以分别被配置为对几何码流和属性码流进行解码,以获得编码到码流中的各种信息。例如,算术解码模块410可以对属性码流进行解码,以获得与每个点相关联的属性信息,例如与每个点相关联的属性的系数或量化级别。可选地,去量化模块412可以被配置为对与每个点相关联的属性的量化级别进行去量化,以获得与每个点相关联的属性的系数。除了属性信息之外,算术解码模块410可以解码出各种其他信息,例如用于设置属性编码的候选点的最大数量的索引。
属性逆变换模块414可以被配置为执行属性逆变换,例如逆RAHT、逆预测变换或逆提升变换,以将来自变换域的数据(例如,系数)变换回属性域(例如,颜色属性的亮度和/或色度信息)。可选地,颜色逆变换模块416可以被配置成将YCbCr颜色属性变换成RGB颜色属性。
对于几何解码,解码器201的几何合成模块404、重建模块406和坐标逆变换模块408可以被配置为分别执行编码器101的几何分析模块306、体素化模块304和坐标变换模块302的逆操作。
与本公开的范围一致,编码器101和解码器201可以被配置成采用改进的属性编码方案,该方案具有用于预测的动态的、可配置的候选点的最大数量,以提高点云编解码中不同系统和应用的编解码灵活性。
图9示出了根据本公开的一些实施例的、点云编码的示例性方法900的流程图。方法900可以由编码系统100的编码器101或任何其他合适的点云编码系统在变换单元级执行。方法900可以包括如下所述的操作902、904、906和908。应当理解,一些操作可以是可选的,并且一些操作可以同时执行,或者以不同于图9所示的顺序执行。
在操作902,以1D阵列表示点云。1D阵列包括一组点,每个点与一个或多个属性相关联。属性可以包括颜色或反射率中的至少一个。在一些实施例中,该组点中的每个点还与位置相关联。在一些实施例中,所述一组点在1D阵列中按照Morton顺序或Hilbert顺序(或从3D到1D的任何其他合适的空间填充曲线)。例如,如图3所示,坐标变换模块302、体素化模块304和几何分析模块306可以一起被配置成以1D阵列表示点云,该1D阵列包括一组点,该组点中的每个点与位置和一个或多个属性相关联。
在操作904,获得用于设置候选点的最大数量的索引,候选点用于对与每个点相关联的属性中的至少一个属性进行编码。在一些实施例中,候选点的集合是1D阵列中当前点之前的邻近点。在一些实施例中,索引用于设置用于对每个属性(例如颜色和反射率)进行编码的候选点的最大数量。在一些实施例中,索引用于设置仅对属性之一(例如颜色和反射率之一)进行编码的候选点的最大数量。例如,如图3所示,属性变换模块312可以被配置为获得索引。
在操作906,基于索引确定候选点的最大数量。在一些实施例中,为了确定最大数量,计算2(idx+7)的值,其中idx表示索引的值。在一些实施例中,从由0、1、2和3组成的一组数中选择索引。例如,如图3所示,属性变换模块312可以被配置为基于索引来确定候选点的最大数量。
在操作908,基于与一组候选点相关联的至少一个属性,将与该组点中的当前点相关联的至少一个属性编码成码流。一组候选点中的候选点的数量小于或等于所确定的最大数量。在一些实施例中,索引也被编码到码流中。如图3所示,算术编码模块316可以被配置成将当前位置的属性和索引编码成属性码流。
在一些实施例中,如图10所示,为了对与当前位置相关联的属性进行编码,在操作1002,从一组候选点中选择一组预测点。在一些实施例中,基于与候选点和当前点相关联的位置(例如,每个候选点和当前点之间的距离),来选择预测点的集合。在操作1004,基于与一组预测点相关联的至少一个属性(例如,一组预测点的加权属性平均值),对与当前点相关联的至少一个属性进行编码。在一些实施例中,在操作1006,将与候选点和当前点相关联的位置编码成几何码流。
图11示出了根据本公开的一些实施例的、点云解码的示例性方法1100的流程图。方法1100可以由解码系统200的解码器201或任何其他合适的点云解码系统在变换单元级执行。方法1100可以包括如下所述的操作1102、1104和1106。应当理解,一些操作可以是可选的,并且一些操作可以同时执行,或者以不同于图11所示的顺序执行。
以1D阵列表示点云。1D阵列包括一组点,该一组点中的每个点与一个或多个属性以及位置相关联。属性可以包括颜色或反射率中的至少一个。在一些实施例中,该一组点在1D阵列中按照Morton顺序或Hilbert顺序(或从3D到1D的任何其他合适的空间填充曲线)。
在操作1102,对码流进行解码以获得索引和与一组候选点相关联的至少一个属性,该索引用于设置候选点的最大数量,候选点用于对与每个点相关联的属性中的至少一个属性进行编码,该至少一个属性用于对与所述一组点中的当前点相关联的至少一个属性进行编码。在一些实施例中,所述一组候选点是1D阵列中当前点之前的邻近点。在一些实施例中,索引用于设置用于对每个属性(例如颜色和反射率)进行编码的候选点的最大数量。在一些实施例中,索引用于设置仅对属性之一(例如颜色和反射率之一)进行编码的候选点的最大数量。例如,如图4所示,算术解码模块410可以被配置为从属性码流获得索引和属性信息。
在操作1104,基于索引确定候选点的最大数量。在一些实施例中,为了确定最大数量,计算2(idx+7)的值,其中idx表示索引的值。在一些实施例中,从由0、1、2和3组成的一组数中选择索引的值。例如,如图4所示,属性逆变换模块414可以被配置为基于索引来确定候选点的最大数量。
在操作1106,基于与一组候选点相关联的至少一个属性来确定与当前点相关联的至少一个属性。所述一组候选点中的候选点的数量小于或等于所确定的最大数量。例如,如图4所示,属性逆变换模块414可以被配置为基于与候选点集合相关联的属性来确定与当前位置相关联的属性。
在一些实施例中,如图12所示,为了确定与当前位置相关联的属性,在操作1202,对几何码流进行解码,以获得与候选点和当前点相关联的位置。在操作1204,从一组候选点中选择出一组预测点。在一些实施例中,基于与候选点和当前点相关联的位置(例如,每个候选点和当前点之间的距离),来选择所述一组预测点。在操作1206,基于与所述一组预测点相关联的至少一个属性(例如,所述一组预测点的加权属性平均值),确定与当前点相关联的至少一个属性。
在本公开的各个方面,本文描述的功能可以用硬件、软件、固件或其任意组合来实现。如果在软件中实现,这些功能可以作为指令存储在非暂时性计算机可读介质上。计算机可读介质包括计算机存储介质。存储介质可以是处理器可以访问的任何可用介质,例如图1和图2中的处理器102。作为示例而非限制,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、HDD(例如磁盘存储器或其他磁性存储设备)、闪存驱动器、SSD或可以用于以指令形式或数据结构携带或存储所需程序代码并且可以由处理系统(例如移动设备或计算机)访问的任何其他介质。本文使用的磁盘(Disk)和光盘(disc)包括CD、激光盘、光盘、数字视频盘(DVD)和软盘,其中磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。上述组合也应包括在计算机可读介质的范围内。
根据本公开的一个方面,公开了一种用于对点云进行编码的方法。处理器以一维(1D)阵列表示点云。1D阵列包括一组点,所述一组点中的每个点与一个或多个属性相关联。处理器获得用于设置候选点最大数量的索引,候选点用于对与每个点相关联的属性中的至少一个属性进行编码。处理器基于索引确定候选点的最大数量。处理器基于与一组候选点相关联的至少一个属性,将与所述一组点中的当前点相关联的至少一个属性编码成码流。所述一组候选点中的候选点的数量小于或等于确定的最大数量。
在一些实施例中,为了确定候选点的最大数量,计算2(idx+7)的值,其中,idx表示索引的值。
在一些实施例中,从由0、1、2和3组成的一组数中选择索引的值。
在一些实施例中,索引用于设置用于对每个属性进行编码的候选点的最大数量。
在一些实施例中,索引用于设置仅对属性之一进行编码的候选点的最大数量。
在一些实施例中,属性包括颜色或反射率中的至少一种。
在一些实施例中,该一组点在1D阵列中按照Morton顺序或Hilbert顺序,并且该一组候选点是1D阵列中当前点之前的邻近点。
在一些实施例中,为了编码与当前点相关联的至少一个属性,从一组候选点中选择一组预测点,并且基于与所述一组预测点相关联的至少一个属性对与当前点相关联的至少一个属性进行编码。
在一些实施例中,所述一组点中的每个点还与位置相关联,并且所述一组预测点是基于与候选点和当前点相关联的位置选择的。
在一些实施例中,将索引编码到码流中。
根据本公开的另一方面,用于对点云进行编码的系统包括被配置为存储指令的存储器和耦接到该存储器的处理器。处理器被配置成在执行指令时,以1D阵列表示点云。1D阵列包括一组点,一组点中的每个点与一个或多个属性相关联。处理器还配置为在执行指令时,获得用于设置候选点的最大数量的索引,候选点用于对与每个点相关联的属性中的至少一个属性进行编码。处理器还配置成在执行指令时,基于索引确定候选点的最大数量。处理器还配置成在执行指令时,基于与一组候选点相关联的至少一个属性,将与一组点中的当前点相关联的至少一个属性编码成码流。一组候选点中的候选点的数量小于或等于所确定的最大数量。
在一些实施例中,为了确定候选点的最大数量,处理器配置为计算2(idx+7)的值,其中idx表示索引的值。
在一些实施例中,从由0、1、2和3组成的一组数中选择索引的值。
在一些实施例中,索引用于设置用于对每个属性进行编码的候选点的最大数量。
在一些实施例中,索引用于设置仅对属性之一进行编码的候选点的最大数量。
在一些实施例中,属性包括颜色或反射率中的至少一种。
在一些实施例中,该一组点在1D阵列中按照Morton顺序或Hilbert顺序,并且该组候选点是1D阵列中当前点之前的邻近点。
在一些实施例中,为了对与当前点相关联的至少一个属性进行编码,处理器配置为从一组候选点中选择一组预测点,基于与一组预测点相关联的至少一个属性对与当前点相关联的至少一个属性进行编码。
在一些实施例中,所述一组点中的每个点还与位置相关联,并且所述一组预测点是基于与候选点和当前点相关联的位置选择的。
在一些实施例中,处理器还配置成将索引编码到码流中。
根据本公开的又一个方面,公开了一种用于对点云进行解码的方法。点云被表示为一维(1D)阵列,该阵列包括一组点,一组点中的每个点与一个或多个属性相关联。处理器对码流进行解码,以获得用于设置候选点的最大数量的索引,所述候选点用于对与每个点相关联的属性中的至少一个属性进行编码,以及获得与一组候选点相关联的至少一个属性,所述一组候选点用于对与一组点中的当前点相关联的至少一个属性进行编码。处理器基于索引确定候选点的最大数量。处理器基于与所述一组候选点相关联的至少一个属性,确定与当前点相关联的至少一个属性。所述一组候选点中的候选点的数量小于或等于确定的最大数量。
在一些实施例中,为了确定候选点的最大数量,计算2(idx+7)的值,其中,idx表示索引的值。
在一些实施例中,从由0、1、2和3组成的一组数中选择索引的值。
在一些实施例中,索引用于设置对每个属性进行编码的候选点的最大数量。
在一些实施例中,索引用于设置仅对属性之一进行编码的候选点的最大数量。
在一些实施例中,属性包括颜色或反射率中的至少一种。
在一些实施例中,所述一组点在1D阵列中按照Morton顺序或Hilbert顺序,并且所述一组候选点是1D阵列中当前点之前的邻近点。
在一些实施例中,为了确定与当前点相关联的至少一个属性,从所述一组候选点中选择一组预测点,并且基于与所述一组预测点相关联的至少一个属性来确定与当前点相关联的至少一个属性。
在一些实施例中,所述一组点中的每个点还与位置相关联,并且所述一组预测点是基于与候选点和当前点相关联的位置选择的。
在一些实施例中,对码流进行解码以获得与候选点和当前点相关联的位置。
根据本公开的又一方面,用于对点云进行解码的系统包括配置为存储指令的存储器和耦接到该存储器的处理器。点云被表示为一维(1D)阵列,阵列包括一组点,一组点中的每个点与一个或多个属性相关联。处理器配置为,在执行指令时,解码码流以获得:用于设置候选点的最大数量的索引,候选点用于对与每个点相关联的属性中的至少一个属性进行编码;以及与一组候选点相关联的至少一个属性,一组候选点用于对与一组点中的当前点相关联的至少一个属性进行编码。处理器还配置成在执行指令时,基于索引确定候选点的最大数量。处理器还配置成在执行指令时,基于与一组候选点相关联的至少一个属性,确定与当前点相关联的至少一个属性。一组候选点中的候选点的数量小于或等于确定的最大数量。
在一些实施例中,为了确定候选点的最大数量,处理器配置为计算值2(idx+7),其中idx表示索引的值。
在一些实施例中,从由0、1、2和3组成的一组数中选择索引的值。
在一些实施例中,索引用于设置用于对每个属性进行编码的候选点的最大数量。
在一些实施例中,索引用于设置仅对属性之一进行编码的候选点的最大数量。
在一些实施例中,属性包括颜色或反射率中的至少一种。
在一些实施例中,所述一组点在1D阵列中按照Morton顺序或Hilbert顺序,并且所述一组候选点是1D阵列中当前点之前的邻近点。
在一些实施例中,为了确定与当前点相关联的至少一个属性,处理器配置为从所述一组候选点中选择一组预测点,并且基于与所述一组预测点相关联的至少一个属性来确定与当前点相关联的至少一个属性。
在一些实施例中,一组点中的每个点还与位置相关联,并且所述一组预测点是基于与候选点和当前点相关联的位置选择的。
在一些实施例中,处理器还配置为对码流进行解码以获得与候选点和当前点相关联的位置。
以上对实施例的描述将揭示本公开的一般性质,使得其他人可以通过应用本领域技术内的知识,在不脱离本公开的一般概念的情况下,以及在无需进行不适当的实验的情况下,就可以容易地修改和/或适应这些实施例的各种应用。因此,基于本文给出的教导和指导,这种调整和修改旨在在所公开的实施例的等同物的含义和范围内。应当理解,本文的术语或用语是为了描述而不是限制的目的,因此本说明书的术语或用语将由技术人员根据教导和指导进行解释。
本公开的实施例已经在前面借助功能构建块进行了描述,该功能构建块说明了特定功能及其关系的实现。为了便于描述,本文中已经任意定义了这些功能构建块的边界。只要适当地执行指定的功能及其关系,就可以定义替代的边界。
发明内容部分和摘要部分可以阐述发明人预期的本公开的一个或多个但不是所有的示例性实施例,因此,不旨在以任何方式限制本公开和所附权利要求。
上面公开了各种功能块、模块和步骤。所提供的布置是说明性的,但并非限制。因此,功能块、模块和步骤可以以不同于上面提供的示例的方式重新排序或组合。类似地,一些实施例仅包括功能块、模块和步骤的子集,并且任何这样的子集都是允许的。
本公开的广度和范围不应受到上述任何示例性实施例的限制,而应仅根据权利要求及其等同物进行定义。
Claims (40)
1.一种用于对点云进行编码的方法,包括:
处理器以一维(1D)阵列表示所述点云,其中,所述1D阵列包括一组点,所述一组点中的每个点与一个或多个属性相关联;
所述处理器获得用于设置候选点的最大数量的索引,所述候选点用于对与每个点相关联的所述属性中的至少一个属性进行编码;
所述处理器基于所述索引确定所述候选点的最大数量;以及
所述处理器基于与一组候选点相关联的至少一个属性,将与所述一组点中的当前点相关联的至少一个属性编码成码流,其中,所述一组候选点中的候选点的数量小于或等于所确定的最大数量。
2.根据权利要求1所述的方法,其中,确定所述候选点的最大数量包括计算2(idx+7)的值,其中,idx表示所述索引的值。
3.根据权利要求2所述的方法,其中,从由0、1、2和3构成的组中选择所述索引的值。
4.根据权利要求1所述的方法,其中,所述索引用于设置对每个所述属性进行编码的候选点的最大数量。
5.根据权利要求1所述的方法,其中,所述索引用于设置仅对所述属性之一进行编码的候选点的最大数量。
6.根据权利要求1所述的方法,其中,所述属性包括颜色或反射率中的至少一种。
7.根据权利要求1所述的方法,其中
所述一组点在所述1D阵列中遵循Morton顺序或Hilbert顺序;以及
所述一组候选点是所述1D阵列中所述当前点之前的邻近点。
8.根据权利要求7所述的方法,其中,对与所述当前点相关联的所述至少一个属性进行编码包括:
从所述一组候选点中选择一组预测点;以及
基于与所述一组预测点相关联的至少一个属性对与所述当前点相关联的所述至少一个属性进行编码。
9.根据权利要求8所述的方法,其中
所述一组点中的每个点还与位置相关联;以及
所述一组预测点是基于与所述候选点和所述当前点相关联的位置选择的。
10.根据权利要求1所述的方法,还包括将所述索引编码到所述码流。
11.一种用于对点云进行编码的系统,包括:
存储器,所述存储器配置为存储指令;以及
处理器,所述处理器耦接到所述存储器并配置为在执行所述指令时:
以一维(1D)阵列表示所述点云,其中,所述1D阵列包括一组点,所述一组点中的每个点与一个或多个属性相关联;
获得用于设置候选点的最大数量的索引,所述候选点用于对与每个点相关联的所述属性中的至少一个属性进行编码;
基于所述索引确定所述候选点的最大数量;以及
基于与一组候选点相关联的至少一个属性,将与所述一组点中的当前点相关联的至少一个属性编码成码流,其中,所述一组候选点中的候选点的数量小于或等于所确定的最大数量。
12.根据权利要求11所述的系统,其中,为了确定所述候选点的最大数量,所述处理器配置为计算2(idx+7)的值,其中,idx表示所述索引的值。
13.根据权利要求12所述的系统,其中,从由0、1、2和3构成的组中选择所述索引的值。
14.根据权利要求11所述的系统,其中,所述索引用于设置对每个所述属性进行编码的候选点的最大数量。
15.根据权利要求11所述的系统,其中,所述索引用于设置仅对所述属性之一进行编码的候选点的最大数量。
16.根据权利要求11所述的系统,其中,所述属性包括颜色或反射率中的至少一种。
17.根据权利要求11所述的系统,其中
所述一组点在所述1D阵列中遵循Morton顺序或Hilbert顺序;以及
所述一组候选点是所述1D阵列中所述当前点之前的邻近点。
18.根据权利要求17所述的系统,其中,为了对与所述当前点相关联的所述至少一个属性进行编码,所述处理器配置为:
从所述一组候选点中选择一组预测点;以及
基于与所述一组预测点相关联的至少一个属性对与所述当前点相关联的所述至少一个属性进行编码。
19.根据权利要求18所述的系统,其中
所述一组点中的每个点还与位置相关联;以及
所述一组预测点是基于与所述候选点和所述当前点相关联的位置选择的。
20.根据权利要求11所述的系统,其中,所述处理器还配置为将所述索引编码到所述码流。
21.一种用于对点云进行解码的方法,所述点云表示为一维(1D)阵列,所述1D阵列包括一组点,所述一组点中的每个点与一个或多个属性相关联,所述方法包括:
处理器对码流进行解码以获得:
用于设置候选点的最大数量的索引,所述候选点用于对与每个点相关联的所述属性中的至少一个属性进行编码;以及
与一组候选点相关联的至少一个属性,所述一组候选点用于对与所述一组点中的当前点相关联的所述至少一个属性进行编码;
所述处理器基于所述索引确定所述候选点的最大数量;以及
所述处理器基于与所述一组候选点相关联的至少一个属性,确定与所述当前点相关联的至少一个属性,其中,所述一组候选点中的候选点的数量小于或等于所确定的最大数量。
22.根据权利要求21所述的方法,其中,确定所述候选点的最大数量包括计算2(idx+7)的值,其中,idx表示所述索引的值。
23.根据权利要求22所述的方法,其中,从由0、1、2和3构成的组中选择所述索引的值。
24.根据权利要求21所述的方法,其中,所述索引用于设置对每个所述属性进行编码的候选点的最大数量。
25.根据权利要求21所述的方法,其中,所述索引用于设置仅对所述属性之一进行编码的所述候选点的最大数量。
26.根据权利要求21所述的方法,其中,所述属性包括颜色或反射率中的至少一种。
27.根据权利要求21所述的方法,其中
所述一组点在所述1D阵列中遵循Morton顺序或Hilbert顺序;以及
所述一组候选点是所述1D阵列中所述当前点之前的邻近点。
28.根据权利要求27所述的方法,其中,确定与所述当前点相关联的至少一个属性包括:
从所述一组候选点中选择一组预测点;以及
基于与所述一组预测点相关联的至少一个属性来确定与所述当前点相关联的所述至少一个属性。
29.根据权利要求28所述的方法,其中
所述一组点中的每个点还与位置相关联;以及
所述一组预测点是基于与所述候选点和所述当前点相关联的位置选择的。
30.根据权利要求29所述的方法,还包括对所述码流进行解码以获得与所述候选点和所述当前点相关联的所述位置。
31.一种用于对点云进行解码的系统,所述点云被表示为一维(1D)阵列,所述1D阵列包括一组点,所述一组点中的每个点与一个或多个属性相关联,所述系统包括:
存储器,所述存储器配置为存储指令;以及
处理器,所述处理器耦接到所述存储器并配置为在执行所述指令时:
对码流进行解码以获得:
用于设置候选点的最大数量的索引,所述候选点用于对与每个点相关联的所述属性中的至少一个属性进行编码;以及
与一组候选点相关联的至少一个属性,所述一组候选点用于对与所述一组点中的当前点相关联的至少一个属性进行编码;
基于所述索引确定所述候选点的最大数量;以及
基于与所述一组候选点相关联的至少一个属性,确定与所述当前点相关联的至少一个属性,其中,所述一组候选点中的候选点的数量小于或等于所确定的最大数量。
32.根据权利要求31所述的系统,其中,为了确定所述候选点的最大数量,所述处理器配置为计算2(idx+7)的值,其中,idx表示所述索引的值。
33.根据权利要求32所述的系统,其中,从由0、1、2和3构成的组中选择所述索引的值。
34.根据权利要求31所述的系统,其中,所述索引用于设置对每个所述属性进行编码的候选点的最大数量。
35.根据权利要求31所述的系统,其中,所述索引用于设置仅对所述属性之一进行编码的候选点的最大数量。
36.根据权利要求31所述的系统,其中,所述属性包括颜色或反射率中的至少一种。
37.根据权利要求31所述的系统,其中
所述一组点在所述1D阵列中遵循Morton顺序或Hilbert顺序;以及
所述一组候选点是所述1D阵列中所述当前点之前的邻近点。
38.根据权利要求37所述的系统,其中,为了确定与所述当前点相关联的至少一个属性,所述处理器配置为:
从所述一组候选点中选择一组预测点;以及
基于与所述一组预测点相关联的至少一个属性来确定与所述当前点相关联的所述至少一个属性。
39.根据权利要求38所述的系统,其中
所述一组点中的每个点还与位置相关联;以及
所述一组预测点是基于与所述候选点和所述当前点相关联的位置选择的。
40.根据权利要求39所述的系统,其中,所述处理器还配置为对所述码流进行解码以获得与所述候选点和所述当前点相关联的位置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/218,125 | 2021-07-02 | ||
US202163264509P | 2021-11-23 | 2021-11-23 | |
US63/264,509 | 2021-11-23 | ||
PCT/US2022/035927 WO2023278829A1 (en) | 2021-07-02 | 2022-07-01 | Attribute coding in geometry point cloud coding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117813822A true CN117813822A (zh) | 2024-04-02 |
Family
ID=90423724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280046607.6A Pending CN117813822A (zh) | 2021-07-02 | 2022-07-01 | 几何点云编解码中的属性编解码 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117813822A (zh) |
-
2022
- 2022-07-01 CN CN202280046607.6A patent/CN117813822A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11895307B2 (en) | Block-based predictive coding for point cloud compression | |
CN112771583B (zh) | 处理点云数据的方法、装置和存储介质 | |
US11132818B2 (en) | Predicting attributes for point cloud compression according to a space filling curve | |
US10904564B2 (en) | Method and apparatus for video coding | |
CN113615181A (zh) | 用于点云编码的隐式四叉树或二叉树几何形状分割 | |
JP2022526232A (ja) | 点群圧縮のための方法並びにその、装置およびコンピュータプログラム | |
KR20230131878A (ko) | 포인트 클라우드 프로세싱을 위한 장치 및 방법 | |
EP4463822A1 (en) | Scalable framework for point cloud compression | |
CN118338021A (zh) | 几何点云编码中的属性编码 | |
WO2023278829A1 (en) | Attribute coding in geometry point cloud coding | |
CN115474041A (zh) | 点云属性的预测方法、装置及相关设备 | |
WO2023172703A1 (en) | Geometry point cloud coding | |
US11915373B1 (en) | Attribute value compression for a three-dimensional mesh using geometry information to guide prediction | |
CN117813822A (zh) | 几何点云编解码中的属性编解码 | |
EP4364082A1 (en) | Attribute coding in geometry point cloud coding | |
CN115086716A (zh) | 点云中邻居点的选择方法、装置及编解码器 | |
CN119278628A (zh) | 几何点云编码的系统及方法 | |
CN118369921A (zh) | 用于几何点云编码的自适应属性编码 | |
WO2023096973A1 (en) | Geometry point cloud coding | |
WO2023172705A1 (en) | Attribute level coding for geometry point cloud coding | |
WO2024012381A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2023131132A1 (en) | Method, apparatus, and medium for point cloud coding | |
CN118805202A (zh) | 几何点云编码的属性等级编码 | |
JP2024542571A (ja) | 点群コーディングのための方法、装置及び媒体 | |
CN118575194A (zh) | 用于点云压缩的可缩放框架 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240410 Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Applicant after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. Country or region after: China Address before: 2479 Bay East Road, Palo Alto, California, USA, Room 110 Applicant before: Chuangfeng Technology Country or region before: U.S.A. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |