CN117917078A - 计算用于点云编解码的基于距离的加权平均的方法和装置 - Google Patents
计算用于点云编解码的基于距离的加权平均的方法和装置 Download PDFInfo
- Publication number
- CN117917078A CN117917078A CN202280003759.8A CN202280003759A CN117917078A CN 117917078 A CN117917078 A CN 117917078A CN 202280003759 A CN202280003759 A CN 202280003759A CN 117917078 A CN117917078 A CN 117917078A
- Authority
- CN
- China
- Prior art keywords
- point
- current point
- attribute
- conversion
- distance
- 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 title claims abstract description 105
- 238000012545 processing Methods 0.000 claims abstract description 44
- 238000006243 chemical reaction Methods 0.000 claims description 55
- 238000007667 floating Methods 0.000 claims description 23
- 238000004364 calculation method Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 13
- 230000009466 transformation Effects 0.000 claims description 6
- 230000006835 compression Effects 0.000 abstract description 37
- 238000007906 compression Methods 0.000 abstract description 37
- 230000006837 decompression Effects 0.000 abstract description 13
- 238000005192 partition Methods 0.000 description 50
- 238000010586 diagram Methods 0.000 description 35
- 230000008569 process Effects 0.000 description 28
- 230000033001 locomotion Effects 0.000 description 25
- 238000013139 quantization Methods 0.000 description 17
- 239000013598 vector Substances 0.000 description 16
- 238000000638 solvent extraction Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 11
- 238000009499 grossing Methods 0.000 description 9
- 239000000872 buffer Substances 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000000354 decomposition reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000002310 reflectometry Methods 0.000 description 3
- 101150114515 CTBS gene Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 241000283973 Oryctolagus cuniculus Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 230000001012 protector Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- 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/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Remote Sensing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Analysis (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本公开的各方面提供点云压缩和解压缩的方法和装置。在一些示例中,点云压缩/解压缩的装置包括处理电路。所述处理电路确定用于编解码(编码/解码)与点云中的当前点相关联的信息的预测模式。在所述预测模式中,与所述当前点相关联的所述信息根据所述当前点的一个或多个相邻点来预测。所述处理电路根据所述一个或多个相邻点到所述当前点的距离,使用整数运算来计算基于距离的加权平均值;以及根据所述基于距离的加权平均值,确定与所述当前点相关联的所述信息。
Description
通过引用并入本文
本申请要求于2022年5月23日提交的、申请号为17/751,413、名称为“计算用于点云编解码的基于距离的加权平均的方法和装置”的美国专利申请的优先权,其要求于2021年6月8日提交的、申请号为63/208,340、名称为“计算用于点云编解码的基于距离的加权平均的方法和装置”的美国临时申请的优先权。在先申请的公开内容通过引用整体并入本文。
技术领域
本公开描述了总体上涉及点云编解码的实施例。
背景技术
本文所提供的背景描述旨在总体上呈现本公开的背景。在背景技术部分以及本说明书的各个方面中所描述的目前已署名的发明人的工作所进行的程度,并不表明其在本公开提交时作为现有技术,且从未明示或暗示其被承认为本公开的现有技术。
人们开发了各种技术来捕获和表示世界,例如世界中的对象、世界中的环境以及3维(3D)空间中的类似事物。世界的3D表示可以实现更身临其境的交互和沟通形式。点云可用作世界的3D表示。点云是3D空间中点的集合,每个点都具有关联的属性,例如颜色、材料特性、纹理信息、强度属性、反射率属性、运动相关属性、模态属性以及其它各种属性。这样的点云可能包含大量的数据,并且存储和传输可能既昂贵且又耗时。
发明内容
本公开的方面提供了用于点云压缩和解压缩的方法和装置。在一些示例中,用于点云压缩/解压缩的装置包括处理电路。所述处理电路确定用于编解码与点云中的当前点相关联的信息的预测模式,在所述预测模式中,与所述当前点相关联的所述信息根据所述当前点的一个或多个相邻点来预测。所述处理电路根据所述一个或多个相邻点到所述当前点的距离,使用整数运算来计算基于距离的加权平均值;以及根据所述基于距离的加权平均值,确定与所述当前点相关联的所述信息。
在示例中,与所述当前点相关联的所述信息是所述当前点的几何信息。在另一示例中,与所述当前点相关联的所述信息是所述当前点的属性信息。
为了计算所述基于距离的加权平均值,在一些示例中,所述处理电路在权重计算中不使用浮点数据类型。在一些示例中,所述处理电路基于将被除数除以除数的整数除法运算,计算用于加权第一相邻点的信息的第一转换权重,所述被除数是绝对值大于1的整数,所述除数基于所述第一相邻点和所述当前点之间的距离。在一些示例中,所述处理电路基于按位左移来获得所述被除数。在一些示例中,所述处理电路根据所述除数按位左移获得的第一整数和所述除数按位右移获得的第二整数的和,确定所述被除数。
在一些示例中,所述处理电路计算所述一个或多个相邻点的加权属性的和,所述加权属性中的第一加权属性与所述第一相邻点相关联,并根据与所述第一相邻点相关联的第一属性和所述第一转换权重的乘法来计算。所述处理电路计算与所述一个或多个相邻点相关联的转换权重的和,所述转换权重包括所述第一转换权重。所述处理电路根据所述加权属性的和除以所述转换权重的和,确定所述基于距离的加权平均值。
在一些示例中,所述处理电路响应于基于所述第一属性和所述第一转换权重的查找运算,接收从查找表输出的所述第一加权属性。
在一些示例中,所述处理电路响应于所述转换权重中的至少一个大于上限,分别降低所述转换权重。
在示例中,所述处理电路响应于所述转换权重的和为零,根据所述一个或多个相邻点中的最近相邻点来确定与所述当前点相关联的属性值。
在另一示例中,所述处理电路响应于所述转换权重的和为零,根据所述一个或多个相邻点的属性的平均值来确定与所述当前点相关联的属性值。
在一些示例中,所述处理电路根据变换模型计算基于所述距离的权重;以及根据所述权重,使用所述整数运算来计算所述基于距离的加权平均值。所述变换模型包括线性模型、二次模型和非线性模型中的一种。
本公开的方面还提供了一种非易失性计算机可读介质,用于存储指令,当所述指令由用于点云编码/解码的计算机执行时,使所述计算机执行所述点云编码/解码的方法中的任意一种或组合。
附图说明
根据以下详细描述和附图,所公开的主题的其他特征、性质和各种优点将进一步明确,其中
图1是根据一实施例的通信系统的简化框图的示意图;
图2是根据一实施例的流式传输系统的简化框图的示意图;
图3示出了根据一些实施例的用于编码点云帧的编码器的框图;
图4示出了根据一些实施例的用于解码与点云帧对应的压缩比特流的解码器的框图;
图5是根据一实施例的视频解码器的简化框图的示意图;
图6是根据一实施例的视频编码器的简化框图的示意图;
图7示出了根据一些实施例的用于编码点云帧的编码器的框图。
图8示出了根据一些实施例的用于解码与点云帧对应的压缩比特流的解码器的框图。
图9示出了根据本公开一些实施例的基于八叉树分区技术的立方体的分区的示意图。
图10示出了根据本公开一些实施例的八叉树分区和与该八叉树分区对应的八叉树结构的示例。
图11示出了三个四叉树分区示例。
图12示出了三个二叉树分区示例。
图13示出了图示宽度优先编码顺序的八叉树结构的示意图。
图14示出了图示深度优先编码顺序的八叉树结构的示意图。
图15示出了预测树示例。
图16示出了在编码器侧的基于提升的属性编码中使用直接/正向变换架构的示意图。
图17示出了在解码器侧的基于提升的属性编码中使用反向变换架构的示意图。
图18示出了区域自适应层次变换(RAHT)正向变换架构的示意图和RAHT反向变换架构的示意图。
图19示出了根据一些实施例的概述过程示例的流程图。
图20是根据一实施例的计算机系统的示意图。
具体实施方式
本公开的各方面提供了点云编解码(PCC)技术。PCC可以根据各种方案来执行,例如称为G-PCC的基于几何形状的方案、称为V-PCC的基于视频编解码的方案等。根据本公开的一些方面,G-PCC直接编码3D几何形状,并且是一种完全基于几何形状的方法,与视频编解码没有太多共享,V-PCC很大程度上基于视频编解码。例如,V-PCC可以将3D云的点映射到2D网格(图像)的像素。V-PCC方案可以利用通用的视频编解码器进行点云压缩。运动图像专家组(MPEG)正在研究分别使用G-PCC方案和V-PCC方案的G-PCC标准和V-PCC标准。
点云可以广泛应用于许多应用中。例如,可以在自动驾驶车辆中使用点云进行对象检测和定位,可以在地理信息系统(GIS)中使用点云进行映射,并且可以在文化遗产中使用点云以可视化和存档文化遗产物品和收藏品等。
在下文中,点云通常可以指3D空间中点的集合,每个点都具有关联的属性,例如颜色、材料特性、纹理信息、强度属性、反射率属性、运动相关属性、模态属性以及其它各种属性。点云作为这些点的组合,可用于重建一个对象或场景。这些点可以在各种设置中使用多个相机、深度传感器或雷达来捕获,并且可以由数千到数十亿个点组成,以便真实地表示重建的场景或对象。补丁通常可以指由点云描述的表面的连续子集。在示例中,补丁包括表面法向量相互偏离小于阈值的点。
压缩技术可以减少表示点云所需的数据量,以加快传输或减少存储。因此,需要一些技术对点云进行有损压缩,以便将其用于实时通信和六自由度(6DoF)虚拟现实中。另外,在针对自动驾驶和文化遗产应用等的动态映射的环境中,寻求无损点云压缩的技术。
根据本公开的方面,V-PCC背后的主要理念是利用现有的视频编解码器将动态点云的几何形状、占用和纹理压缩为三个单独的视频序列。解释这三个视频序列所需的额外元数据被单独压缩。总比特流的一小部分是元数据,可以使用软件实现对其进行有效地编码/解码。大部分信息由视频编解码器处理。
图1示出了根据本公开一实施例的通信系统(100)的简化框图。通信系统(100)包括多个终端装置,所述终端装置可以通过例如网络(150)彼此通信。例如,通信系统(100)包括通过网络(150)互连的一对终端装置(110)和(120)。在图1的示例中,第一对终端装置(110)和(120)可以执行点云数据的单向传输。例如,终端装置(110)可以压缩由与终端装置(110)连接的传感器(105)捕获的点云(例如,表示结构的点)。压缩的点云可以例如以比特流的形式通过网络(150)传输到终端装置(120)。终端装置(120)可以从网络(150)接收压缩的点云,解压缩该比特流以重建点云,并根据重建的点云适当地显示。单向数据传输在媒体服务等应用中可能很常见。
在图1的示例中,终端装置(110)和(120)可以为服务器和个人计算机,但是本公开的原理可以不限于此。本公开的实施例适用于膝上型计算机、平板电脑、智能电话、游戏终端、媒体播放器和/或专用三维(3D)设备。网络(150)表示在终端装置(110)和(120)之间传输压缩的点云的任何数目的网络。网络(150)可以包括例如有线(连线的)和/或无线通信网络。网络(150)可以在电路交换和/或分组交换信道中交换数据。代表性网络包括电信网络、局域网、广域网、和/或互联网。出于本讨论的目的,除非在下文中有所解释,否则网络(150)的架构和拓扑对于本公开的操作来说可能是无关紧要的。
图2示出了根据一实施例的流式传输系统(200)的简化框图。图2的示例是一种针对点云的所公开主题的应用。所公开的主题可以等同地应用于其他支持点云的应用,例如,3D远程呈现应用、虚拟现实应用等。
流式传输系统(200)可以包括捕获子系统(213)。捕获子系统(213)可以包括点云源(201),例如光检测和测距(LIDAR)系统、3D相机、3D扫描仪、在软件中生成未压缩的点云的图形生成组件、以及生成例如未压缩的点云(202)的类似组件。在一个示例中,点云(202)包括由3D相机捕获的点。与压缩的点云(204)(压缩的点云的比特流)相比,点云(202)被描绘为粗线以强调高数据量。压缩的点云(204)可以由电子设备(220)生成,所述电子设备(220)包括耦合到点云源(201)的编码器(203)。编码器(203)可以包括硬件、软件或硬件和软件的组合,以使能或实现如下文更详细地描述的所公开主题的各个方面。与点云(202)的流相比,压缩的点云(204)(或压缩的点云(204)的比特流)被描绘为细线以强调较低的数据量,其可以存储在流式传输服务器(205)上以供将来使用。一个或多个流式传输客户端子系统,例如图2中的客户端子系统(206)和(208),能够访问流式传输服务器(205)以检索压缩的点云(204)的副本(207)和(209)。客户端子系统(206)可以包括例如在电子设备(230)中的解码器(210)。解码器(210)对压缩的点云的输入副本(207)进行解码,并创建可以在呈现设备(212)上呈现的重建的点云(211)的输出流。
应注意,电子装置(220)和(230)可包括其它组件(未示出)。举例来说,电子装置(220)可包括解码器(未示出),且电子装置(230)还可包括编码器(未示出)。
在一些流式传输系统中,可以根据某些标准对压缩的点云(204)、(207)和(209)(例如,压缩的点云的比特流)进行压缩。在一些示例中,视频编码标准被用于点云的压缩。这些标准的示例包括高效视频编码(HEVC)、通用视频编码(VVC)等。
图3示出了根据一些实施例的用于编码点云帧的V-PCC编码器(300)的框图。在一些实施例中,V-PCC编码器(300)可用于通信系统(100)和流式传输系统(200)中。例如,编码器(203)可以以与V-PCC编码器(300)类似的方式配置和操作。
V-PCC编码器(300)接收作为未压缩的输入的点云帧,并生成与压缩的点云帧对应的比特流。在一些实施例中,V-PCC编码器(300)可以从诸如点云源(201)等的点云源接收点云帧。
在图3的示例中,V-PCC编码器(300)包括补丁生成模块(306)、补丁打包模块(308)、几何图像生成模块(310)、纹理图像生成模块(312)、补丁信息模块(304)、占用图模块(314)、平滑模块(336)、图像填充模块(316)和(318)、组扩展模块(320)、视频压缩模块(322)、(323)和(332)、辅助补丁信息压缩模块(338)、熵压缩模块(334)和多路复用器(324)。
根据本公开的实施例,V-PCC编码器(300)将3D点云帧转换成基于图像的表示、以及将压缩的点云转换回解压缩的点云所使用的一些元数据(例如,占用图和补丁信息)。在一些示例中,V-PCC编码器(300)可以将3D点云帧转换为几何图像、纹理图像和占用图,然后使用视频编码技术将几何图像、纹理图像和占用图编码为比特流。通常,几何图像是一个2D图像,其像素填充了与投影到像素的点相关联的几何值,并且填充了几何值的象素可以称为几何样本。纹理图像是一个2D图像,其像素填充了与投影到像素的点相关联的纹理值,并且填充了纹理值的像素可以称为纹理样本。占用图是一个2D图像,其像素填充了指示被补丁占用或未占用的值。
补丁生成模块(306)将点云分割成补丁的集合(例如,将补丁定义为由点云描述的表面的连续子集)。该补丁可以重叠或不重叠,使得每个补丁可以由相对于2D空间中的平面的深度场来描述。在一些实施例中,补丁生成模块(306)旨在将点云分解为具有平滑边界的最小数量的补丁,同时还最小化重建误差。
补丁信息模块(304)可以收集指示补丁的大小和形状的补丁信息。在一些示例中,补丁信息可以被打包到图像帧中,然后由辅助补丁信息压缩模块(338)进行编码以生成压缩的辅助补丁信息。
补丁打包模块(308)被配置为将提取的补丁映射到2维(2D)网格上,同时最小化未使用的空间,并确保网格的每个M×M(例如,16×16)块都与唯一补丁相关联。有效的补丁打包可以通过最小化未使用的空间或确保时间一致性来直接影响压缩效率。
几何图像生成模块(310)可以在给定的补丁位置处生成与点云的几何形状相关联的2D几何图像。纹理图像生成模块(312)可以在给定的补丁位置处生成与点云的纹理相关联的2D纹理图像。几何图像生成模块(310)和纹理图像生成模块(312)利用在打包过程中计算的3D到2D映射,将点云的几何形状和纹理存储为图像。为了更好地处理多个点被投影到同一样本的情况,每个补丁被投影到两个图像上,称为图层。在一个示例中,几何图像由YUV420-8位格式的WxH的单色帧表示。为了生成纹理图像,纹理生成过程利用了重建的/平滑的几何形状,以便计算要与重采样点相关联的颜色。
占用图模块(314)可以生成描述每个单元处的填充信息的占用图。例如,占用图像包括二进制图,所述二进制图指示网格的每个单元是属于空白空间还是属于点云。在一个示例中,占用图使用二进制信息描述每个像素是否被填充。在另一个示例中,占用图使用二进制信息描述每个像素块是否被填充。
由占用图模块(314)生成的占用图可以使用无损编码或有损编码进行压缩。当使用无损编码时,熵压缩模块(334)用于压缩占用图;当使用有损编码时,视频压缩模块(332)用于压缩占用图。
应注意,补丁打包模块(308)可以在图像帧中打包的2D补丁之间留下一些空白空间。图像填充模块(316)和(318)可以填充该空白空间(称为填充),以便生成适合于2D视频和图像编解码器的图像帧。图像填充也称为背景填充,其可以通过冗余信息填充未使用的空间。在一些示例中,良好的背景填充可最小程度地增加比特率,同时不会在补丁边界周围引入明显的编码失真。
视频压缩模块(322)、(323)和(332)可以基于诸如HEVC、VVC等合适的视频编码标准对2D图像(例如填充的几何图像、填充的纹理图像和占用图)进行编码。在一个示例中,视频压缩模块(322)、(323)和(332)是单独操作的独立组件。应注意,在另一个示例中,视频压缩模块(322)、(323)和(332)可以实现为单个组件。
在一些示例中,平滑模块(336)被配置为生成重建的几何图像的平滑图像。平滑图像可以被提供给纹理图像生成模块(312)。然后,纹理图像生成模块(312)可以基于重建的几何图像来调整纹理图像的生成。例如,当补丁形状(例如,几何形状)在编码和解码过程中稍微失真时,在生成纹理图像时可以考虑该失真以校正补丁形状的失真。
在一些实施例中,组扩展模块(320)被配置为用冗余低频内容填充对象边界周围的像素,以提高编解码增益以及重建点云的视觉质量。
多路复用器(324)可以将压缩的几何图像、压缩的纹理图像、压缩的占用图、压缩的辅助补丁信息复用到压缩的比特流中。
图4示出了根据一些实施例的用于将与点云帧对应的压缩的比特流进行解码的V-PCC解码器(400)的框图。在一些实施例中,V-PCC解码器(400)可以用于通信系统(100)和流式传输系统(200)中。例如,解码器(210)可以配置为以与V-PCC解码器(400)类似的方式操作。V-PCC解码器(400)接收压缩的比特流,并基于压缩的比特流生成重建的点云。
在图4的示例中,V-PCC解码器(400)包括解复用器(432)、视频解压缩模块(434)和(436)、占用图解压缩模块(438)、辅助补丁信息解压缩模块(442)、几何形状重建模块(444)、平滑模块(446)、纹理重建模块(448)和颜色平滑模块(452)。
解复用器(432)可以接收压缩的比特流并分离成压缩的纹理图像、压缩的几何图像、压缩的占用图和压缩的辅助补丁信息。
视频解压缩模块(434)和(436)可以根据适当的标准(例如,HEVC、VVC等)解码压缩的图像,并输出解压缩的图像。例如,视频解压缩模块(434)解码压缩的纹理图像,并输出解压缩的纹理图像;视频解压缩模块(436)解码压缩的几何图像,并输出解压缩的几何图像。
占用图解压缩模块(438)可以根据适当的标准(例如,HEVC、VVC等)解码压缩的占用图,并输出解压缩的占用图。
辅助补丁信息解压缩模块(442)可以根据适当的标准(例如,HEVC、VVC等)解码压缩的辅助补丁信息,并输出解压缩的辅助补丁信息。
几何形状重建模块(444)可以接收解压缩的几何图像,并基于解压缩的占用图和解压缩的辅助补丁信息生成重建的点云几何形状。
平滑模块(446)可以平滑补丁边缘处的不一致。平滑过程旨在减轻由于压缩伪像而可能在补丁边界处出现的潜在不连续性。在一些实施例中,可以对位于补丁边界上的像素应用平滑滤波器,以减轻可能由压缩/解压缩引起的失真。
纹理重建模块(448)可以基于解压缩的纹理图像和平滑几何形状来确定点云中的点的纹理信息。
颜色平滑模块(452)可以平滑着色的不一致。3D空间中的非相邻补丁通常在2D视频中彼此相邻。在一些示例中,来自非相邻补丁的像素值可能被基于块的视频编解码器混合。颜色平滑的目标是减少在补丁边界处出现的可见伪像。
图5示出了根据本公开一实施例的视频解码器(510)的框图。视频解码器(510)可用于V-PCC解码器(400)中。例如,视频解压缩模块(434)和(436)、占用图解压缩模块(438)可以被类似地配置到视频解码器(510)。
视频解码器(510)可包括解析器(520)以根据被压缩图像,例如已编码视频序列重建符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息。解析器(520)可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器(520)可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(Group of Pictures,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。解析器(520)还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。
解析器(520)可对从缓冲存储器接收的视频序列执行熵解码/解析操作,从而创建符号(521)。
取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号(521)的重建可涉及多个不同单元。涉及哪些单元以及涉及方式可由解析器(520)从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描述解析器(520)与下文的多个单元之间的此类子群控制信息流。
除已经提及的功能块以外,视频解码器(510)可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互并且可以彼此集成。然而,出于描述所公开主题的目的,概念上细分成下文的功能单元是适当的。
第一单元是缩放器/逆变换单元(551)。缩放器/逆变换单元(551)从解析器(520)接收作为符号(521)的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(551)可输出包括样本值的块,所述样本值可输入到聚合器(555)中。
在一些情况下,缩放器/逆变换单元(551)的输出样本可属于帧内编码块;即:不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元(552)提供。在一些情况下,帧内图片预测单元(552)采用从当前图片缓冲器(558)提取的已重建信息生成大小和形状与正在重建的块相同的周围块。举例来说,当前图片缓冲器(558)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些情况下,聚合器(555)基于每个样本,将帧内预测单元(552)生成的预测信息添加到由缩放器/逆变换单元(551)提供的输出样本信息中。
在其它情况下,缩放器/逆变换单元(551)的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元(553)可访问参考图片存储器(557)以提取用于预测的样本。在根据符号(521)对提取的样本进行运动补偿之后,这些样本可由聚合器(555)添加到缩放器/逆变换单元(551)的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(553)从参考图片存储器(557)内的地址获取预测样本可受到运动矢量控制,且所述运动矢量以所述符号(521)的形式而供运动补偿预测单元(553)使用,所述符号(521)例如是包括X、Y和参考图片分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器(557)提取的样本值的内插、运动矢量预测机制等等。
聚合器(555)的输出样本可在环路滤波器单元(556)中被各种环路滤波技术采用。视频压缩技术可包括环路内滤波器技术,所述环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频码流)中的参数,且所述参数作为来自解析器(520)的符号(521)可用于环路滤波器单元(556)。然而,在其他实施例中,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。
环路滤波器单元(556)的输出可以是样本流,所述样本流可输出到显示装置以及存储在参考图片存储器(557),以用于后续的帧间图片预测。
一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。举例来说,一旦对应于当前图片的已编码图片被完全重建,且已编码图片(通过例如解析器(520))被识别为参考图片,则当前图片缓冲器(558)可变为参考图片存储器(557)的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。
视频解码器(510)可根据例如ITU-T H.265标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体地说,配置文件可从视频压缩技术或标准中可用的所有工具中选择某些工具作为在所述配置文件下可供使用的仅有工具。对于合规性,还要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(Hypothetical ReferenceDecoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。
图6示出了根据本公开一实施例的视频编码器(603)的框图。视频编码器(603)可用于压缩点云的V-PCC编码器(300)中。在一个示例中,视频压缩模块(322)和(323)以及视频压缩模块(332)被类似地配置到视频编码器(603)。
视频编码器(603)可以接收图像,例如填充的几何图像、填充的纹理图像等,并生成压缩的图像。
根据实施例,视频编码器(603)可实时或在由应用所要求的任何其它时间约束下,将源视频序列(图像)的图片编码且压缩成已编码视频序列(被压缩图像)。施行适当的编码速度是控制器(650)的一个功能。在一些实施例中,控制器(650)控制如下文所描述的其它功能单元且在功能上耦接到这些单元。为了简洁起见,图中未标示耦接。由控制器(650)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group of pictures,GOP)布局,最大运动矢量搜索范围等。控制器(650)可用于具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(603)。
在一些实施例中,视频编码器(603)在编码环路中进行操作。作为简单的描述,在实施例中,编码环路可包括源编码器(630)(例如,负责基于待编码的输入图片和参考图片创建符号,例如符号流)和嵌入于视频编码器(603)中的(本地)解码器(633)。解码器(633)以类似于(远程)解码器创建样本数据的方式重建符号以创建样本数据(因为在本公开所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(634)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(634)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)也用于一些相关技术。
“本地”解码器(633)的操作可与例如已在上文结合图5详细描述视频解码器(510)的“远程”解码器相同。然而,另外简要参考图5,当符号可用且熵编码器(645)和解析器(520)能够无损地将符号编码/解码为已编码视频序列时,包括解析器(520)在内的视频解码器(510)的熵解码部分,可能无法完全在本地解码器(633)中实施。
此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于此原因,本公开侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。
在操作期间,在一些实施例中,源编码器(630)可执行运动补偿预测编码。参考来自视频序列中被指定为“参考图片”的一个或多个先前已编码图片,所述运动补偿预测编码对输入图片进行预测性编码。以此方式,编码引擎(632)对输入图片的像素块与参考图片的像素块之间的差异进行编码,所述参考图片可被选作所述输入图片的预测参考。
本地视频解码器(633)可基于源编码器(630)创建的符号,对可指定为参考图片的图片的已编码视频数据进行解码。编码引擎(632)的操作可为有损过程。当已编码视频数据可在视频解码器(图6中未示)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(633)复制解码过程,所述解码过程可由视频解码器对参考图片执行,且可使重建的参考图片存储在参考图片高速缓存(634)中。以此方式,视频编码器(603)可在本地存储重建的参考图片的副本,所述副本与将由远端视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。
预测器(635)可针对编码引擎(632)执行预测搜索。即,对于将要编码的新图片,预测器(635)可在参考图片存储器(634)中搜索可作为所述新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(635)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器(635)获得的搜索结果,可确定输入图片可具有从参考图片存储器(634)中存储的多个参考图片取得的预测参考。
控制器(650)可管理源编码器(630)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
可在熵编码器(645)中对所有上述功能单元的输出进行熵编码。熵编码器(645)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。
控制器(650)可管理视频编码器(603)的操作。在编码期间,控制器(650)可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种图片类型:
帧内图片(I图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。所属领域的技术人员了解I图片的变体及其相应的应用和特征。
预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。
源图片通常可在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定所述其它块。举例来说,I图片的块可进行非预测编码,或所述块可参考同一图片的已经编码的块来进行预测编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。
视频编码器(603)可根据例如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(603)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。
视频可作为呈时间序列的多个源图片(图像)。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在实施例中,将正在编码/解码的特定图片分割成块,正在编码/解码的特定图片被称作当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称作运动矢量的矢量对当前图片中的块进行编码。所述运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,所述运动矢量可具有识别参考图片的第三维度。
在一些实施例中,双向预测技术可用于帧间图片预测中。根据双向预测技术,使用两个参考图片,例如按解码次序都在视频中的当前图片之前(但按显示次序可能分别是过去和将来)第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。具体来说,可通过第一参考块和第二参考块的组合来预测所述块。
此外,合并模式技术可用于帧间图片预测中以改善编码效率。
根据本申请公开的一些实施例,帧间图片预测和帧内图片预测等预测的执行以块为单位。举例来说,根据HEVC标准,将视频图片序列中的图片分割成编码树单元(codingtree unit,CTU)以用于压缩,图片中的CTU具有相同大小,例如64×64像素、32×32像素或16×16像素。一般来说,CTU包括三个编码树块(coding tree block,CTB),所述三个编码树块是一个亮度CTB和两个色度CTB。更进一步的,还可将每个CTU以四叉树拆分为一个或多个编码单元(coding unit,CU)。举例来说,可将64×64像素的CTU拆分为一个64×64像素的CU,或4个32×32像素的CU,或16个16×16像素的CU。在实施例中,分析每个CU以确定用于CU的预测类型,例如帧间预测类型或帧内预测类型。此外,取决于时间和/或空间可预测性,将CU拆分为一个或多个预测单元(prediction unit,PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。以亮度预测块作为预测块为例,预测块包括像素值(例如,亮度值)的矩阵,例如8×8像素、16×16像素、8×16像素、16×8像素等等。
图7示出了根据一些实施例的G-PPC编码器(700)的框图。编码器(700)可以被配置为接收点云数据并对该点云数据进行压缩,以生成携带压缩的点云数据的比特流。在实施例中,编码器(700)可以包括位置量化模块(710)、重复点去除模块(712)、八叉树编码模块(730)、属性转移模块(720)、细节层次(LOD,level of detail)生成模块(740)、属性预测模块(750)、残差量化模块(760)、算术编码模块(770)、逆残差量化模块(780)、加法模块(781)、以及用于存储重建属性值的存储器(790)。
如图所示,可以在编码器(700)处接收输入点云(701)。将点云(701)的位置(例如,3D坐标)提供给量化模块(710)。量化模块(710)被配置为对坐标进行量化以生成量化位置。重复点去除模块(712)被配置为接收量化位置,并执行滤波过程以识别和去除重复点。八叉树编码模块(730)被配置为从重复点去除模块(712)接收滤波后的位置,并执行基于八叉树的编码过程,以生成描述3D体素(voxels)网格的占用代码的序列。将占用代码提供给算术编码模块(770)。
属性转移模块(720)被配置为接收输入点云的属性,并且当多个属性值与相应体素相关联时,执行属性转移过程,以确定每个体素的属性值。可以对八叉树编码模块(730)输出的重新排序的点执行属性转移过程。将转移操作后的属性提供给属性预测模块(750)。LOD生成模块(740)被配置为对八叉树编码模块(730)输出的重新排序的点进行操作,并将这些点重新组织成不同的LOD。将LOD信息提供给属性预测模块(750)。
属性预测模块(750)根据LOD生成模块(740)的LOD信息指示的基于LOD的顺序来处理这些点。属性预测模块(750)根据存储在存储器(790)中的当前点的一组相邻点的重建属性来生成当前点的属性预测。随后,可以根据从属性转移模块(720)接收的原始属性值和本地生成的属性预测来获得预测残差。当候选索引在相应的属性预测过程中使用时,可以将与所选预测候选相对应的索引提供给算术编码模块(770)。
残差量化模块(760)被配置为从属性预测模块(750)接收预测残差,并执行量化以生成量化残差。将量化残差提供给算术编码模块(770)。
逆残差量化模块(780)被配置为从残差量化模块(760)接收量化残差,并通过执行在残差量化模块(760)处执行的量化操作的逆操作来生成重建预测残差。加法模块(781)被配置为从逆残差量化模块(780)接收重建预测残差,并从属性预测模块(750)接收相应的属性预测。通过组合重建预测残差和属性预测,生成重建属性值并将其存储到存储器(790)。
算术编码模块(770)被配置为接收占用代码、候选索引(如果使用)、量化残差(如果生成)和其它信息,并执行熵编码以进一步压缩接收的值或信息。因此,可以生成携带压缩信息的压缩的比特流(702)。比特流(702)可以被传输或以其它方式提供给对压缩的比特流进行解码的解码器,或者可以存储在存储设备中。
图8示出了根据实施例的G-PCC解码器(800)的框图。解码器(800)可以被配置为接收压缩的比特流,并执行点云数据解压缩,以对该比特流进行解压缩从而生成解码的点云数据。在实施例中,解码器(800)可以包括算术解码模块(810)、逆残差量化模块(820)、八叉树解码模块(830)、LOD生成模块(840)、属性预测模块(850)、以及用于存储重建属性值的存储器(860)。
如图所示,可以在算术解码模块(810)处接收压缩的比特流(801)。算术解码模块(810)被配置为解码压缩的比特流(801)以获得点云的量化残差(如果生成)和占用代码。八叉树解码模块(830)被配置为根据占用代码确定点云中点的重建位置。LOD生成模块(840)被配置为根据重建位置将这些点重新组织成不同的LOD,并确定基于LOD的顺序。逆残差量化模块(820)被配置为根据从算术解码模块(810)接收的量化残差来生成重建残差。
属性预测模块(850)被配置为执行属性预测过程,以根据基于LOD的顺序确定这些点的属性预测。例如,可以根据存储在存储器(860)中的当前点的相邻点的重建属性值来确定当前点的属性预测。在一些示例中,属性预测可以与相应的重建残差组合,以生成当前点的重建属性。
在一个示例中,从属性预测模块(850)生成的重建属性的序列与从八叉树解码模块(830)生成的重建位置对应于从解码器(800)输出的已解码点云(802)。此外,重建属性也存储在存储器(860)中,随后可用于导出后续点的属性预测。
在各种实施例中,编码器(300)、解码器(400)、编码器(700)和/或解码器(800)可以使用硬件、软件或其组合来实现。例如,编码器(300)、解码器(400)、编码器(700)和/或解码器(800)可以使用处理电路来实现,例如一个或多个使用或不使用软件进行操作的集成电路(IC),例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。在另一示例中,编码器(300)、解码器(400)、编码器(700)和/或解码器(800)可以实现为软件或固件,包括存储在非易失性(或非暂时性)计算机可读存储介质中的指令。这些指令在由处理电路(例如一个或多个处理器)执行时,使该处理电路执行编码器(300)、解码器(400)、编码器(700)和/或解码器(800)的功能。
应注意,被配置为实现本文所公开的属性预测技术的属性预测模块(750)和(850)可以包括在其它解码器或编码器中,这些解码器或编码器可以具有与图7和图8所示的结构相似或不同的结构。此外,在各种示例中,编码器(700)和解码器(800)可以包括在同一设备或单独的设备中。
本公开的各方面提供用于G-PCC的技术。具体地,以下描述中描述了用于G-PCC的基于节点的几何形状和/或属性编码技术。
根据本公开的一些方面,点云的几何信息和相关属性(例如颜色、反射率等)可以分开压缩(例如,在MPEG G-PCC测试模型13(TMC13)模型中)。点云的几何信息(包括点云中的点的3D坐标)可以通过具有分区的占用信息的分区来编码,例如具有分区的占用信息的八叉树分区、四叉树分区和二叉树分区。在对几何信息编码之后,可以根据重建的几何图形,使用例如预测、提升和区域自适应层次变换技术来压缩属性。
对于几何编码,可以使用几种技术。这几种技术可以包括基于树的几何编码、基于预测树的几何编码和基于trisoup的几何编码。将分别描述基于树的几何编码、基于预测树的几何编码和基于trisoup的几何编码。
根据本公开的一个方面,可以使用树分区(例如八叉树分区、四叉树分区、二叉树分区等)对三维空间进行划分。以八叉树分区为例,八叉树是二维空间中四叉树的三维模拟。八叉树分区技术是指将三维空间递归地细分为八个八分位(octant)的分区技术,八叉树结构是指表示分区的树结构。在示例中,八叉树结构中的每个节点对应一个三维空间,该节点可以是端节点(end node)(不再有分区,在一些示例中也称为叶节点)或者是具有进一步分区的节点。节点处的八叉树分区可以将该节点表示的三维空间划分成八个八分位。在一些示例中,与特定节点的分区相对应的节点可以称为特定节点的子节点。
图9示出了根据本公开一些实施例的基于八叉树分区技术的3D立方体(900)(对应于节点)的分区的示意图。如图9所示,分区可以将3D立方体(900)划分成八个较小的大小相等的立方体0-7。在图9中,3D立方体(900)的x、y和z维度分别被划分成两半,并且划分成8个大小相同的子立方体。
八叉树分区技术(例如,在TMC13中)可以将原始3D空间递归地划分成较小的单元,并且可以对每个子空间的占用信息进行编码以表示几何位置。
在一些实施例中(例如,在TMC13中),使用八叉树几何编解码器。八叉树几何编解码器可以执行几何编码。在一些示例中,对立方体框(box)执行几何编码。例如,立方体框可以是由两个点(0,0,0)和(2M-1,2M-1,2M-1)定义的轴对齐的边界框B,其中2M-1定义边界框B的大小,M可以在比特流中指定。
然后,通过递归地细分立方体框来构建八叉树结构。例如,由两个点(0,0,0)和(2M -1,2M-1,2M-1)定义的立方体框被划分成8个子立方体框,然后生成8位代码,称为占用代码。占用代码的每个位都与一个子立方体框相关联,并且该位的值用于指示相关联的子立方体框是否包含点云的任何点。例如,一个位的值为1表示与该位相关联的子立方体框包含点云的一个或多个点;一个位的值为0表示与该位相关联的子立方体框不包含点云的点。
此外,对于空的子立方体框(例如,与该子立方体框相关联的位的值是0),不再对该子立方体框应用划分。当子立方体框包含点云的一个或多个点时(例如,与该子立方体框相关联的位的值是1),该子立方体框被进一步划分成8个较小的子立方体框,并且可以为子立方体框生成占用代码,以指示较小的子立方体框的占用。在一些示例中,可以对非空的子立方体框重复执行细分操作,直到该子立方体框的大小等于预定阈值,例如大小为1。在一些示例中,大小为1的子立方体框称为体素(voxels),大小大于体素的子立方体框可以称为非体素。
图10示出了根据本公开一些实施例的八叉树分区(1010)和与该八叉树分区(1010)相对应的八叉树结构(1020)的示例。图10示出了八叉树分区(1010)中的两层分区。八叉树结构(1020)包括与八叉分区(1010)的立方体框相对应的节点(N0)。节点N0位于八叉树结构(1020)的深度0处。在第一层分区中,立方体框被划分成8个子立方体框,根据图9所示的编号技术,这些子立方体框被编号为0-7。节点N0的分区的占用代码是二进制的“10000001”,其表示由节点N0-0表示的第一个子立方体框和由节点N0-7表示的第八个子立方体框包含点云中的点,其它子立方体框是空的。节点N0-0到节点N0-7位于八叉树结构(1020)的深度1处。
然后,在第二层分区中,第个一子立方体框(由节点N0-0表示)和第八个子立方体框(由节点N0-7表示)分别被进一步细分成八个八分位。例如,第一个子立方体框(由节点N0-0表示)被划分成8个较小的子立方体框,根据图9所示的编号技术,这些子立方体框被编号为0-7。节点N0-0的分区的占用代码是二进制的“00011000”,其表示第四个较小的子立方体框(由节点N0-0-3表示)和第五个较小的子立方体框(由节点N0-0-4表示)包含点云中的点,其它较小的子立方体框是空的。节点N0-0-0到节点N0-0-7位于八叉树结构(1020)的深度2处。在第二层中,第八个子立方体框(由节点N0-7表示)被类似地划分成8个较小的子立方体框,如图10所示。节点N0-7-0到节点N0-7-7位于八叉树结构(1020)的深度2处。
在图10的示例中,对应于非空的立方体空间(例如,立方体框、子立方体框、较小的子立方体框等)的节点被涂成灰色,并称为阴影节点。对应于空的立方体空间(例如,立方体框、子立方体框、较小的子立方体框等)的节点被涂成白色,并可以称为空白节点。
虽然上述描述中描述了八叉树分区,但基于树的几何编码技术通常可以使用其它分区(例如四叉树或二叉树分区)来对点云进行划分。
更一般地,对于点云,点云的边界框B不限于在所有方向上具有相同的大小,反而边界框B可以是任意大小的矩形长方体,以更好地适合3D场景或对象的形状。在一些示例中,边界框B的大小可以表示为2的幂,例如在示例中,dx,dy,dz不相等。
为了对点云的边界框B进行划分,除了上述描述中的八叉树分区之外,还可以使用以下描述中的四叉树分区和二叉树分区。
图11示出了一些示例中的三个四叉树分区。对于四叉树分区,边界框B的三个维度(例如,x、y和z维度)中的两个可以被分割成两半,四叉树分区可以生成4个大小相同的子框。
在图11的示例中,边界框(1110)在x和y维度上被四叉树分区分割,四叉树分区的结果由4个大小相同的子框示出,标记为0、2、4和6。
此外,在图11的示例中,边界框(1120)在x和z维度上被四叉树分区分割,四叉树分区的结果由4个大小相同的子框示出,标记为0、1、4和5。
此外,在图11的示例中,边界框(1130)在y和z维度上被四叉树分区分割,四叉树分区的结果由4个大小相同的子框示出,标记为0、1、2和3。
图12示出了一些示例中的三个二叉树分区。对于二叉树分区,边界框B的三个维度(例如,x、y和z维度)中的一个可以被分割成两半,二叉树分区可以生成2个大小相同的子框。
在图12的示例中,边界框(1210)在x维度上被二叉树分区分割,二叉树分区的结果由2个大小相同的子框示出,标记为0和4。
此外,在图12的示例中,边界框(1220)在y维度上被二叉树分区分割,二叉树分区的结果由2个大小相同的子框示出,标记为0和2。
此外,在图12的示例中,边界框(1230)在z维度上被二叉树分区分割,二叉树分区的结果由2个大小相同的子框示出,标记为0和1。
因此,点云可以用一个通用树结构来表示,该树结构具有八叉树分区、四叉树分区和二叉树分区的适当混合。为了遍历树结构,在一些示例(例如,TMC13模型的一个版本)中,采用宽度优先的方法。在其它一些示例中,也可以使用深度优先的方法。
在一些相关示例(例如,TMC13的一个版本)中,为了对占用代码进行编码,以宽度优先的顺序遍历树结构。根据宽度优先的顺序,一个层中的树节点(例如,树结构中的节点)可以在访问了上一层中的所有树节点之后再访问。在实施示例中,可以使用先进先出(FIFO)数据结构。
图13示出了图示宽度优先编码顺序的八叉树结构(1300)的示意图。八叉树结构(1300)中的阴影节点是与立方体空间相对应的节点,这些立方体空间不是空的,并且被点云中的一个或多个点占用。阴影节点的占用代码可以按照图13所示的从0到8的宽度优先编码顺序进行编码。在宽度优先编码顺序中,逐层访问八叉树节点。根据本公开的一个方面,因为当前层必须等待上一层被解码,所以宽度优先编码顺序本身不适合并行处理。
在一些示例中,混合编码顺序包括使用深度优先编码顺序而不是宽度优先编码顺序编码的至少一个层。因此,在一些实施例中,使用深度优先编码顺序的层中的节点和该节点的后代节点可以形成树结构的子树结构。当使用深度优先编码顺序的层中包含分别对应于非空立方体空间的多个节点时,该多个节点及其对应的后代节点可以形成多个子树结构。在一些实施例中,可以并行编码该多个子树结构。
图14示出了图示深度优先编码顺序的八叉树结构(1400)的示意图。八叉树结构(1400)中的阴影节点是与非空立方体空间相对应的节点。八叉树结构(1400)可以对应于与八叉树结构(1300)相同的点云的占用几何图形。阴影节点的占用代码可以按照图14所示的从0到8的深度优先编码顺序进行编码。
在图14的示例中,节点“0”可以位于任何合适的分区深度处,例如PD0处,节点“0”的子节点位于分区深度PD0+1处,节点“0”的孙节点位于分区深度PD0+2处。在图14的示例中,分区深度PD0+1处的节点可以按照深度优先编码顺序进行编码。分区深度PD0+1处的节点包括两个对应于非空空间的节点。这两个节点及其各自的后代节点可以形成第一子八叉树结构(1410)和第二子八叉树结构(1420),这两个节点可以分别称为这两个子八叉树结构的根节点。
图14中的深度优先编码顺序被称为深度优先编码顺序的预序(preorder)版本。在深度优先编码顺序的预序版本中,对于每个子八叉树结构,在访问子八叉树结构的子节点之前首先访问子八叉树结构的根节点。此外,首先访问最深的节点,然后追踪回父节点的兄弟节点。
在图14的示例中,在一些实施方式中,可以在并行处理中对第一子八叉树结构(1410)和第二子八叉树结构(1420)进行编码。例如,可以同时访问节点1和节点5。在一些示例中,可以使用递归编程或堆栈数据结构来实现深度优先编码顺序。
在一些实施例中,混合编码顺序从宽度优先遍历(编码)开始,并且在多个层的宽度优先遍历之后,可以启用深度优先遍历(编码)。
在一些示例中,可以使用基于预测树的几何编码。当可以在点云中的所有点上构造预测树(例如生成树)时,可以使用基于预测树的几何编码。在示例中,对于点的预测,可以使用所有祖先。
图15示出了预测树(1510)的一部分,该预测树跨越兔子的点云(1500)。在一些示例中,预测树(1510)中的点的位置可以根据其父点的位置、或者根据其父点和其祖父点的位置来预测。
在一些示例中,可以使用基于trisoup的几何编码。基于trisoup的几何编码方法可以将对象的表面表示为一系列三角形网格。在示例中,基于trisoup的几何编码方法应用于密集表面点云。使用基于trisoup的几何编码的解码器可以按照指定的体素粒度从网格表面生成点云,以确保重建点云的密度。根据本公开的一个方面,基于trisoup的几何编码虽然可能给原始点云带来失真,但是可以提供减小比特流大小的好处。
对于属性编码,可以使用几种技术。这些技术包括基于预测的属性编码、基于提升的属性编码、基于区域自适应层次变换(RAHT)的属性编码等。以下描述将分别描述基于预测的属性编码、基于提升的属性编码和基于RAHT的属性编码等。
为了简单起见,以下描述中使用一个细节层次(LOD)。对于基于预测的属性编码,令(Pi)i=1...N表示与点云中的点相关联的一组位置。对于由多维数据表示的每个位置,可以确定一个维度的Morton代码以与该位置相关联。令(Mi)i=1...N表示分别与位置(Pi)i=1...N相关联的Morton代码。基于预测的属性编码包括排序步骤,然后是编码步骤。在排序步骤中,点云中的点根据相关联的Morton代码进行排序,例如升序。例如,令I表示根据排序步骤排序的点的索引数组。
在编码步骤中,编码器/解码器可以根据在迭代中I定义的顺序分别压缩/解压缩这些点。在每次迭代i中,按照I定义的顺序选择点Pi。Pi到按照这个顺序分析的多个先前点的距离。例如,s(例如,s=64)表示分析的多个先前点的数量。基于分析的多个点,选择Pi的k(例如,k=3)个最近邻居用于属性预测。具体地,在一些示例中,点i的属性(ai)可以使用k个最近邻居(ah)h∈0...k-1的属性的线性插值过程来预测,k个最近邻居(ah)h∈0…k-1的属性基于这些最近邻居到点i的距离进行加权。在示例中,在解码器侧,令表示当前点i的k个最近邻居的集合,令/>表示邻居的解码/重建属性值,并令/>表示它们到当前点i的距离。然后,可以根据基于邻居(相邻点)的属性值和它们到当前点的距离计算的基于距离的加权平均,计算当前点i的预测属性值/>例如,可以根据等式(1)来计算当前点i的预测属性值/>
对于基于提升的属性编码,对基于预测的编码应用附加步骤。在示例中,使用了两个附加步骤,分别称为更新运算符的第一步骤和自适应量化的第二步骤。
图16示出了在G-PCC的编码器侧的基于提升的属性编码中使用直接/正向变换架构(1600)的示意图。在一些示例中,为了便于预测和更新,直接/正向变换架构(1600)包括多个预测/更新(P/U)分解阶段,以分解属性信号。在多个P/U分解阶段的每个阶段,来自前一阶段的信号(近似信号)被拆分成高相关性的两组。在示例中,在G-PCC的基于提升的属性编码方案中,利用细节层次(LOD)结构来执行拆分,其中在多个层次之间期望这样的高相关性,并且通过最近邻居搜索来构造每个层次,以将非均匀点云组织成结构化数据。阶段(N)的P/U分解阶段产生细节信号D(N)和近似信号L’(N),其在下一阶段(例如,阶段(N-1))中进一步分解成D(N-1)和L’(N-1)。重复地应用分解,直到在示例中获得基础层近似信号L’(0)。因此,在基于提升的属性编码方案中,不是对包含各层细节的输入属性信号本身进行编码,而是可以对细节信号D(N)、D(N-1)……D(0)和基础层近似信号L’(0)进行编码。
应注意,P/U分解阶段的应用可以产生D(N)……D(0)中的系数中的稀疏子带,从而提供变换编解码增益的优点。
图17示出了在G-PCC的解码器侧的基于提升的属性编码中使用反向变换架构(1700)的示意图。反向变换架构(1700)包括多个预测/更新(P/U)合并阶段,以重建属性信号。在每个P/U合并阶段,细节信号被解码,并与来自前一阶段的近似信号合并,以生成新的近似信号提供给下一P/U合并阶段。
对于基于RAHT的属性编码,可以使用自适应层次变换。
图18示出了可以在G-PCC的编码器侧使用的RAHT正向变换架构(1810)的示意图、以及可以在G-PCC的解码器侧使用的RAHT反向变换架构(1820)的示意图。在图18的示例中,和/>w0是输入系数Fl+1,2n的加权表示法,而w1对于Fl+1,2n+1是相同的。
根据本公开的一个方面,在基于预测的几何编码和/或属性编码方法中,当前点的几何信息和/或属性信息的预测是基于从一个或多个预测相邻点计算加权平均的。加权平均计算中的加权通常基于一个或多个预测相邻点和当前点之间的距离,例如在等式(1)中使用的。
根据本公开的一个方面,等式(1)中的计算涉及浮点运算。例如,预测相邻点的属性值的权重是根据预测相邻点到当前点之间的距离的倒数来计算的。预测相邻点到当前点之间的距离的倒数可以使用除法运算来计算,其中被除数为1,除数是预测相邻点到当前点之间的距离。在计算机技术中,当该距离大于1时,整数除法运算可以输出0。通常,使用浮点除法运算来计算预测相邻点与当前点之间的距离的倒数,以获得较高的精度。
此外,在一些示例中,由于点云中的点的不规则分布,相邻点到当前点的距离范围可能会有显著变化。浮点运算可以支持范围与精度之间的权衡,并且用于例如根据等式(1)实现基于距离的加权平均计算。例如,在一些计算机技术中实现浮点运算时,数学运算(例如加法运算、减法运算、乘法运算、除法运算等)中的一个或多个操作数被声明为浮点数据类型。然后,使用浮点运算来执行数学运算。
通常,浮点运算可能需要硬件支持,并且对硬件实现不友好。例如,为了加快浮点处理速度,浮点运算可能需要由浮点单元(FPU)执行。然而,许多处理器,例如嵌入式处理器,可能不具有FPU的硬件支持。
本公开的各方面提供了在计算基于距离的加权平均时使用整数运算而非浮点运算的技术。在一些示例中,在几何编码中使用基于距离的加权平均方法。在一些示例中,在属性编码中使用基于距离的加权平均方法。
应注意,本公开中所公开的技术可以在一些示例中单独使用。在一些示例中,可以将这些技术中的两种或多种组合起来,并在某些实施方式中使用。
还应注意,基于距离的加权平均方法中使用的距离(例如等式(1)中的δj和δt)可以是任何坐标系(例如笛卡尔坐标系、球面坐标系等)中的任何距离度量(例如,L1范数距离、L2范数距离)。
在一些示例中,对于当前点i,中的最近邻居被确定为预测值,以预测当前点i的几何信息和/或属性信息。
在一些示例中,对于当前点i,当前点i的几何信息和/或属性信息可以基于相邻点的相等权重预测为相邻点的平均值。例如,基于相邻点的相等权重,将等式(1)转换为等式(2):
/>
其中,表示当前点i的k个最近相邻点的集合,k表示集合/>中的相邻点的数量。当前点i的预测属性值/>可以计算为相邻点的预测属性的平均属性。
应注意,等式(2)不计算预测相邻点到当前点之间的距离的倒数。可以使用整数运算来执行根据等式(2)的计算。例如,等式(2)中的操作数(例如相邻点的预测属性值(对于的/>))、相邻点的数量(k)等)被声明为整数数据类型。预测属性值的总和可以通过整数加法运算来执行。在示例中,取整运算是向下取整运算,等式(2)转换为等式(3),并且可以通过整数除法运算来执行预测属性值之和除以整数k的除法运算。/>表示产生整数的向下取整运算。
应注意,当取整运算不是向下取整运算时,可以适当地调整等式(2)。在示例中,取整运算是取整到最接近的整数的运算,等式(2)转换为等式(4),并且可以通过整数运算来执行根据等式(4)的计算。
在一些实施例中,可以适当地转换权重计算,以便可以使用整数运算(例如整数乘法、整数除法等)代替浮点运算来执行权重计算。例如,使用放大的被除数来转换权重计算以提高精度。放大的被除数是绝对值大于1的整数。在一些示例中,可以根据等式(5)来计算基于δj的转换权重Qj:
其中,M和N是正整数。在示例中,M=32,N=δj>>1。放大的被除数可以提高等式(5)的除法运算的精度。可以使用整数除法运算来执行除法运算以提高精度。
在一些示例中,根据所需精度适当地选择M,N用于在整数除法运算中取整到最接近的整数。等式(5)中的计算可以使用整数运算来执行,例如移位运算、整数加法运算和整数除法运算等。在实现示例中,等式(5)中的操作数(例如M、N、δj等)被声明为整数数据类型,转换权重Qj被声明为整数数据类型。
在示例中,基于转换权重,可以根据等式(6)的计算来预测当前点的属性:
应注意,等式(6)中的运算可以使用整数运算来执行,例如整数乘法、整数加法、整数除法等。在实现示例中,等式(6)中的操作数(例如对于的Qj,/>)被声明为整数数据类型。
应注意,可以使用任何合适的取整运算,例如向下取整、向上取整、取整到最接近的整数等。
在示例中,当使用向下取整运算时,等式(6)中的除法运算可以使用整数除法运算,并且等式(6)可以使用等式(7)来表示:
/>
在另一示例中,当使用取整到最接近的整数运算时,等式(6)可以转换为等式(8),并且等式(8)中的除法运算可以使用整数除法运算来执行:
在一些示例中,计算除数,例如等式(6)至等式(8)中的如果除数等于零,则可以使用不同的方法来确定当前点的属性/>在示例中,当除数等于零时,最近相邻点可以用作预测值,以预测当前点的属性。在另一示例中,当除数等于零时,当前点的属性计算为相邻点的属性的平均值,例如使用等式(3)。
根据本公开的一个方面,较大的M值可以提高转换权重的精度,但也可能引起一些问题,例如过载(overflow)、降低整数除法运算速度等。在一些实施例中,转换权重的值可以自适应地调整,以避免引起这些问题。在一些示例中,转换权重的值基于该转换权重的上限来调整。在示例中,上限是基于参数L定义的。L是预定义的整数。例如,将上限设置为2L。在一些示例中,如果转换权重等于或大于上限,则降低所有转换权重(例如,通过按位右移),直到所有转换权重小于2L(例如,转换权重的最大值小于2L)。
根据本公开的一个方面,可以在基于距离的加权模型中使用合适的变换模型。例如,可以在基于距离的加权模型中使用线性模型、二次模型和/或其它非线性模型。然后,根据基于距离的加权模型进行的权重计算可以适当地转换,以便可以通过整数运算来执行。
在示例中,基于距离的加权模型可以使用变换模型其中A和B是正整数,δj是相邻点和当前点之间的距离。在一些实施例中,权重计算可以适当地转换,以便可以使用整数运算(例如整数乘法、整数除法等)代替浮点运算来执行。例如,使用放大的被除数来转换权重计算以提高精度。放大的被除数是绝对值大于1的整数。在一些示例中,可以根据等式(9)来计算基于δj的转换权重Qj:
其中,M和N是正整数。
根据本公开的一个方面,可以使用查找表来加快整数乘法运算的速度。例如,可以预先计算整数乘法运算,并将结果存储在查找表中。
在示例中,Qj的值是第一范围中的整数,属性值是第二范围中的整数,然后可以预先计算第一范围中的第一值和第二范围中的第二值的所有可能组合的乘法结果,并将乘法结果存储在查找表中。查找表可以基于第一输入值和第二输入值生成乘法结果。在示例中,查找表的运算可以用等式(10)表示。
LUT[输入1][输入2]=输入1×输入2 等式(10)
基于转换权重,可以根据等式(11)来计算当前点的预测属性:
应注意,在一些示例中,上述描述中使用的各种参数(例如M、N、L、A、B等)是固定的,并且由编码器侧和解码器侧知道。在其它一些示例中,编码器可以确定各种参数(例如M、N、L、A、B等),并将比特流中的参数从编码器侧发信号通知到解码器侧以进行序列自适应。解码器可以从比特流中解码参数,并可以基于相邻点和解码参数预测当前点的信息。在示例中,各种参数可以在高级语法中发信号通知,例如在序列参数集、属性参数集、几何参数集、切片头等中。
图19示出了根据本公开实施例的概述过程(1900)的流程图。过程(1900)可用于编解码过程中,例如点云的编码过程或解码过程。在各种实施例中,过程(1900)由处理电路执行,例如终端装置(110)中的处理电路、执行编码器(203)和/或解码器(210)、编码器(700)和/或解码器(800)的功能的处理电路等。在一些实施例中,过程(1900)以软件指令实现,因此,当处理电路执行该软件指令时,处理电路执行过程(1900)。该过程从(S1901)开始并进行到(S1910)。
在(s1901),确定用于编解码(编码/解码)与点云中的当前点相关联的信息的预测模式,在所述预测模式中,与所述当前点相关联的所述信息根据所述当前点的一个或多个相邻点来预测。
在一些示例中,与所述当前点相关联的所述信息是所述当前点的几何信息。在一些示例中,与所述当前点相关联的所述信息是所述当前点的属性信息。
在(S1902),根据所述一个或多个相邻点到所述当前点的距离,计算基于距离的加权平均值。在计算期间,至少使用整数运算计算权重值,至少在计算权重值时不使用浮点运算。
在一些示例中,为了计算权重值,权重计算中各种运算的操作数不是浮点数据类型。在一些示例中,各种数学运算(例如,加法运算、减法运算、乘法运算、除法应用等)的操作数被声明为整数数据类型。浮点数据类型不包括在权重计算的数学运算中。
根据本公开的一个方面,在一些计算机技术中,当数学运算中的操作数为浮点数据类型时,使用基于浮点的运算执行数学运算。当数学运算中的所有操作数都不是浮点数据类型时,可以避免浮点运算。例如,当除数和被除数都是整数数据类型时,执行整数除法运算;当除数或被除数是浮点数时,执行浮点除法。
在一些示例中,权重计算被转换为在除法运算中使用放大的被除数。例如,使用具有放大的被除数的除法运算计算相邻点的加权信息的权重(称为转换权重)。放大的被除数是绝对值大于1的整数,除数基于相邻点和当前点之间的距离。在示例中,被除数基于按位左移来放大。在示例中,被除数是基于除数按位左移计算的第一整数和除数按位右移计算的第二个整数的和。
在一些示例中,计算一个或多个相邻点的加权属性的和。加权属性根据与相邻点相关联的属性和转换权重的乘法来计算。在示例中,根据基于属性和转换权重的查找运算,从查找表中输出加权属性。此外,计算与一个或多个相邻点相关联的转换权重的和。然后,根据加权属性的和除以转换权重的和,确定基于距离的加权平均值。
在一些示例中,响应于所述转换权重中的至少一个大于上限,可以降低(例如,使用按位右移)所述转换权重。
在示例中,响应于所述转换权重的和为零,根据所述一个或多个相邻点中的最近相邻点来确定所述基于距离的加权平均值。
在另一示例中,响应于所述转换权重的和为零,根据所述一个或多个相邻点的属性值的平均值来确定所述基于距离的加权平均值。
在(S1930),根据所述基于距离的加权平均值,确定与所述当前点相关联的所述信息。
然后,该过程进行到(S1999)并结束。
本公开中公开的技术可以单独使用,也可以以任何顺序组合使用。此外,多个技术(例如,方法、实施例)中的每一个、编码器和解码器都可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一些示例中,该一个或多个处理器执行存储在非易失性计算机可读介质中的程序。
上述技术可以通过计算机可读指令实现为计算机软件,并且物理地存储在一个或多个计算机可读介质中。例如,图20示出了计算机系统(2000),其适于实现所公开主题的某些实施例。
所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由一个或多个计算机中央处理单元(CPU),图形处理单元(GPU)等直接执行或通过译码、微代码等方式执行。
所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。
图20所示的用于计算机系统(2000)的组件本质上是示例性的,并不用于对实现本公开实施例的计算机软件的使用范围或功能进行任何限制。也不应将组件的配置解释为与计算机系统(2000)的示例性实施例中所示的任一组件或其组合具有任何依赖性或要求。
计算机系统(2000)可以包括某些人机界面输入设备。这种人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出),对一个或多个人类用户的输入做出响应。所述人机界面设备还可用于捕获某些媒体,气与人类有意识的输入不必直接相关,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
人机界面输入设备可包括以下中的一个或多个(仅绘出其中一个):键盘(2001)、鼠标(2002)、触控板(2003)、触摸屏(2010)、数据手套(未示出)、操纵杆(2005)、麦克风(2006)、扫描仪(2007)、照相机(2008)。
计算机系统(2000)还可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。这样的人机界面输出设备可包括触觉输出设备(例如通过触摸屏(2010)、数据手套(未示出)或操纵杆(2005)的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如,扬声器(2009)、耳机(未示出))、视觉输出设备(例如,包括阴极射线管屏幕、液晶屏幕、等离子屏幕、有机发光二极管屏的屏幕(2010),其中每一个都具有或没有触摸屏输入功能、每一个都具有或没有触觉反馈功能——其中一些可通过诸如立体画面输出的手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱(未示出))以及打印机(未示出)。
计算机系统(2000)还可以包括人可访问的存储设备及其相关介质,如包括具有CD/DVD的高密度只读/可重写式光盘(CD/DVD ROM/RW)(2020)或类似介质(2021)的光学介质、拇指驱动器(2022)、可移动硬盘驱动器或固体状态驱动器(2023),诸如磁带和软盘(未示出)的传统磁介质,诸如安全软件保护器(未示出)等的基于ROM/ASIC/PLD的专用设备,等等。
本领域技术人员还应当理解,结合所公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它瞬时信号。
计算机系统(2000)还可以包括通往一个或多个通信网络(2055)的接口(2054)。例如,网络可以是无线的、有线的、光学的。网络还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。网络还包括以太网、无线局域网、蜂窝网络(GSM、3G、4G、5G、LTE等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括CANBus)等等。某些网络通常需要外部网络接口适配器,用于连接到某些通用数据端口或外围总线(2049)(例如,计算机系统(2000)的USB端口);其它系统通常通过连接到如下所述的系统总线集成到计算机系统(2000)的核心(例如,以太网接口集成到PC计算机系统或蜂窝网络接口集成到智能电话计算机系统)。通过使用这些网络中的任何一个,计算机系统(2000)可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如CAN总线到某些CAN总线设备),或双向的,例如通过局域或广域数字网络到其它计算机系统。上述的每个网络和网络接口可使用某些协议和协议栈。
上述的人机界面设备、人可访问的存储设备以及网络接口可以连接到计算机系统(2000)的核心(2040)。
核心(2040)可包括一个或多个中央处理单元(CPU)(2041)、图形处理单元(GPU)(2042)、以现场可编程门阵列(FPGA)(2043)形式的专用可编程处理单元、用于特定任务的硬件加速器(2044)、图形适配器(2050)等。这些设备以及只读存储器(ROM)(2045)、随机存取存储器(2046)、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘等)(2047)等可通过系统总线(2048)进行连接。在某些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(2048),以便可通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线(2048),或通过外围总线(2049)进行连接。在示例中,屏幕(2010)可以连接到图形适配器(2050)。外围总线的体系结构包括外部外围组件互联PCI、通用串行总线USB等。
CPU(2041)、GPU(2042)、FPGA(2043)和加速器(2044)可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在ROM(2045)或RAM(2046)中。过渡数据也可以存储在RAM(2046)中,而永久数据可以存储在例如内部大容量存储器(2047)中。通过使用高速缓冲存储器可实现对任何存储器设备的快速存储和检索,高速缓冲存储器可与一个或多个CPU(2041)、GPU(2042)、大容量存储器(2047)、ROM(2045)、RAM(2046)等紧密关联。
所述计算机可读介质上可具有计算机代码,用于执行各种计算机实现的操作。介质和计算机代码可以是为本公开的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。
作为实施例而非限制,具有体系结构(2000)的计算机系统,特别是核心(2040),可以作为处理器(包括CPU、GPU、FPGA、加速器等)提供执行包含在一个或多个有形的计算机可读介质中的软件的功能。这种计算机可读介质可以是与上述的用户可访问的大容量存储器相关联的介质,以及具有非易失性的核心(2040)的特定存储器,例如核心内部大容量存储器(2047)或ROM(2045)。实现本公开的各种实施例的软件可以存储在这种设备中并且由核心(2040)执行。根据特定需要,计算机可读介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心(2040)特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在RAM(2046)中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机系统可以提供逻辑硬连线或以其它方式包含在电路(例如,加速器(2044))中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(IC)),包含执行逻辑的电路,或两者兼备。本公开包括任何合适的硬件和软件组合。
虽然本公开已对多个示例性实施例进行了描述,但实施例的各种变更、排列和各种等同替换均属于本公开的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确示出或描述,但其体现了本公开的原则,因此属于本公开的精神和范围之内。
Claims (20)
1.一种点云编解码的方法,其特征在于,包括:
确定用于编解码与点云中的当前点相关联的信息的预测模式,在所述预测模式中,与所述当前点相关联的所述信息根据所述当前点的一个或多个相邻点来预测;
根据所述一个或多个相邻点到所述当前点的距离,使用整数运算来计算基于距离的加权平均值;以及
根据所述基于距离的加权平均值,确定与所述当前点相关联的所述信息。
2.根据权利要求1所述的方法,其特征在于,与所述当前点相关联的所述信息包括所述当前点的几何信息和所述当前点的属性信息中的至少一个。
3.根据权利要求1所述的方法,其特征在于,所述计算基于距离的加权平均值包括:
在权重计算中不使用浮点数据类型。
4.根据权利要求1所述的方法,其特征在于,所述计算基于距离的加权平均值包括:
基于将被除数除以除数的整数除法运算,计算用于加权第一相邻点的信息的第一转换权重,所述被除数是绝对值大于1的整数,所述除数基于所述第一相邻点和所述当前点之间的距离。
5.根据权利要求4所述的方法,其特征在于,所述计算第一转换权重包括:
基于按位左移来获得所述被除数。
6.根据权利要求5所述的方法,其特征在于,所述计算第一转换权重进一步包括:
根据所述除数按位左移获得的第一整数和所述除数按位右移获得的第二整数的和,确定所述被除数。
7.根据权利要求4所述的方法,其特征在于,所述计算基于距离的加权平均值包括:
计算所述一个或多个相邻点的加权属性的和,所述加权属性中的第一加权属性与所述第一相邻点相关联,并根据与所述第一相邻点相关联的第一属性和所述第一转换权重的乘法来计算;
计算与所述一个或多个相邻点相关联的转换权重的和,所述转换权重包括所述第一转换权重;以及
根据所述加权属性的和除以所述转换权重的和,确定所述基于距离的加权平均值。
8.根据权利要求7所述的方法,其特征在于,进一步包括:
响应于基于所述第一属性和所述第一转换权重的查找运算,接收从查找表输出的所述第一加权属性。
9.根据权利要求7所述的方法,其特征在于,进一步包括:
响应于所述转换权重中的至少一个大于上限,分别降低所述转换权重。
10.根据权利要求7所述的方法,其特征在于,进一步包括以下至少一个:
响应于所述转换权重的和为零,根据所述一个或多个相邻点中的最近相邻点来确定与所述当前点相关联的属性值;以及
响应于所述转换权重的和为零,根据所述一个或多个相邻点的属性的平均值来确定与所述当前点相关联的属性值。
11.根据权利要求1所述的方法,其特征在于,进一步包括:
根据变换模型计算基于所述距离的权重;以及
根据所述权重,使用所述整数运算来计算所述基于距离的加权平均值,其中所述变换模型包括线性模型、二次模型和非线性模型中的一种。
12.一种点云编解码的装置,其特征在于,包括处理电路,被配置为:
确定用于编解码与点云中的当前点相关联的信息的预测模式,在所述预测模式中,与所述当前点相关联的所述信息根据所述当前点的一个或多个相邻点来预测;
根据所述一个或多个相邻点到所述当前点的距离,使用整数运算来计算基于距离的加权平均值;以及
根据所述基于距离的加权平均值,确定与所述当前点相关联的所述信息。
13.根据权利要求12所述的装置,其特征在于,与所述当前点相关联的所述信息包括所述当前点的几何信息和所述当前点的属性信息中的至少一个。
14.根据权利要求12所述的装置,其特征在于,所述处理电路被配置为:
在权重计算中不使用浮点数据类型。
15.根据权利要求12所述的装置,其特征在于,所述处理电路被配置为:
基于将被除数除以除数的整数除法运算,计算用于加权第一相邻点的信息的第一转换权重,所述被除数是绝对值大于1的整数,所述除数基于所述第一相邻点和所述当前点之间的距离。
16.根据权利要求15所述的装置,其特征在于,所述处理电路被配置为:
基于按位左移来获得所述被除数。
17.根据权利要求16所述的装置,其特征在于,所述处理电路被配置为:
根据所述除数按位左移获得的第一整数和所述除数按位右移获得的第二整数的和,确定所述被除数。
18.根据权利要求15所述的装置,其特征在于,所述处理电路被配置为:
计算所述一个或多个相邻点的加权属性的和,所述加权属性中的第一加权属性与所述第一相邻点相关联,并根据与所述第一相邻点相关联的第一属性和所述第一转换权重的乘法来计算;
计算与所述一个或多个相邻点相关联的转换权重的和,所述转换权重包括所述第一转换权重;以及
根据所述加权属性的和除以所述转换权重的和,确定所述基于距离的加权平均值。
19.根据权利要求18所述的装置,其特征在于,所述处理电路被配置为:
响应于基于所述第一属性和所述第一转换权重的查找运算,接收从查找表输出的所述第一加权属性。
20.根据权利要求18所述的装置,其特征在于,所述处理电路被配置为:响应于所述转换权重中的至少一个大于上限,分别降低所述转换权重。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163208340P | 2021-06-08 | 2021-06-08 | |
US63/208,340 | 2021-06-08 | ||
US17/751,413 | 2022-05-23 | ||
US17/751,413 US20220392114A1 (en) | 2021-06-08 | 2022-05-23 | Method and apparatus for calculating distance based weighted average for point cloud coding |
PCT/US2022/072707 WO2022261605A2 (en) | 2021-06-08 | 2022-06-02 | Method and apparatus for calculating distance based weighted average for point cloud coding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117917078A true CN117917078A (zh) | 2024-04-19 |
Family
ID=84284255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280003759.8A Pending CN117917078A (zh) | 2021-06-08 | 2022-06-02 | 计算用于点云编解码的基于距离的加权平均的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220392114A1 (zh) |
EP (1) | EP4139899A4 (zh) |
JP (1) | JP7470211B2 (zh) |
KR (1) | KR20230017301A (zh) |
CN (1) | CN117917078A (zh) |
WO (1) | WO2022261605A2 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2840488A1 (en) | 2011-06-28 | 2013-01-03 | Samsung Electronics Co., Ltd. | Prediction method and apparatus for chroma component of image using luma component of image |
US10502549B2 (en) * | 2015-03-24 | 2019-12-10 | Kla-Tencor Corporation | Model-based single parameter measurement |
US11010928B2 (en) * | 2018-04-10 | 2021-05-18 | Apple Inc. | Adaptive distance based point cloud compression |
US10853973B2 (en) | 2018-10-03 | 2020-12-01 | Apple Inc. | Point cloud compression using fixed-point numbers |
KR102295825B1 (ko) * | 2019-10-03 | 2021-08-31 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
-
2022
- 2022-05-23 US US17/751,413 patent/US20220392114A1/en active Pending
- 2022-06-02 CN CN202280003759.8A patent/CN117917078A/zh active Pending
- 2022-06-02 JP JP2022567067A patent/JP7470211B2/ja active Active
- 2022-06-02 WO PCT/US2022/072707 patent/WO2022261605A2/en active Application Filing
- 2022-06-02 KR KR1020227046110A patent/KR20230017301A/ko active Search and Examination
- 2022-06-02 EP EP22790201.2A patent/EP4139899A4/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4139899A2 (en) | 2023-03-01 |
US20220392114A1 (en) | 2022-12-08 |
WO2022261605A3 (en) | 2023-01-19 |
KR20230017301A (ko) | 2023-02-03 |
WO2022261605A2 (en) | 2022-12-15 |
EP4139899A4 (en) | 2023-11-01 |
JP2023533899A (ja) | 2023-08-07 |
JP7470211B2 (ja) | 2024-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102584867B1 (ko) | 포인트 클라우드 코딩을 위한 방법 및 장치 | |
AU2020397870B2 (en) | Method and apparatus for point cloud coding | |
JP7478816B2 (ja) | ポイントクラウドコーディングのための方法及び装置 | |
JP7325534B2 (ja) | 点群符号化のための方法および装置 | |
CN113632142A (zh) | 点云压缩的方法和装置 | |
KR20220127837A (ko) | Haar 기반 포인트 클라우드 코딩을 위한 방법 및 장치 | |
US20220180567A1 (en) | Method and apparatus for point cloud coding | |
JP7470211B2 (ja) | ポイントクラウドコーディングのための距離ベースの加重平均を計算する方法および装置 | |
US11611775B2 (en) | Method and apparatus for point cloud coding | |
JP7497443B2 (ja) | 点群コーディングのための方法、装置、およびコンピュータプログラム | |
CN115152225A (zh) | 用于点云译码的方法和设备 | |
CN116635905A (zh) | 非流形网格中边界环的检测 | |
CN117178299A (zh) | 将3d网格快速且紧凑地打包到2d地图中的卷积方法 | |
CN116368526A (zh) | 在用于网格压缩的顶点重新排序方法中编码连接性 | |
CN117461054A (zh) | 具有推导的纹理坐标的网格压缩 | |
CN116368523A (zh) | Uv坐标编码 | |
CN117242777A (zh) | 具有受限几何动态范围的网格压缩 | |
CN116711305A (zh) | 用于解码器执行网格压缩的自适应采样方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |