CN116996674A - 一种编码方法、解码方法、通信节点及存储介质 - Google Patents
一种编码方法、解码方法、通信节点及存储介质 Download PDFInfo
- Publication number
- CN116996674A CN116996674A CN202210451656.XA CN202210451656A CN116996674A CN 116996674 A CN116996674 A CN 116996674A CN 202210451656 A CN202210451656 A CN 202210451656A CN 116996674 A CN116996674 A CN 116996674A
- Authority
- CN
- China
- Prior art keywords
- attribute
- current point
- point
- coding
- point cloud
- 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 124
- 238000004891 communication Methods 0.000 title claims abstract description 25
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 15
- 238000002310 reflectometry Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 12
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 238000013139 quantization Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 108091026890 Coding region Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/161—Encoding, multiplexing or demultiplexing different image signal components
-
- 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
本申请提供一种编码方法、解码方法、通信节点及存储介质。该方法包括:确定点云的属性信息的待编码属性数据;确定点云中当前点的编码阶数;根据所述编码阶数对所述当前点的待编码属性数据进行编码;继续确定点云中下一当前点的编码阶数并对所述下一当前点的待编码属性数据进行编码,直至所述点云内所有点均编码完成,得到编码后的属性数据。
Description
技术领域
本申请涉及通信技术领域,例如涉及一种编码方法、解码方法、通信节点及存储介质。
背景技术
点云是由空间中一组无规则分布、表达三维物体或场景空间结构和表面属性的离散点集所构成的。
目前点云的压缩算法已经有了较为***的研究,其中基于几何的点云压缩算法的熵编码中,所使用的指数哥伦布编码的阶数是固定的。固定阶数的指数哥伦布编码在某些场景下编码性能较低。
发明内容
本申请提供一种编码方法、解码方法、通信节点及存储介质。
本申请实施例提供了一种编码方法,包括:
确定点云的属性信息的待编码属性数据;
确定点云中当前点的编码阶数;
根据所述编码阶数对所述当前点的待编码属性数据进行编码;
继续确定点云中下一当前点的编码阶数并对所述下一当前点的待编码属性数据进行编码,直至所述点云内所有点均编码完成,得到编码后的属性数据。
本申请实施例还提供了一种解码方法,包括:
获取点云的编码后的属性数据;
获取所述点云中当前点的编码后的属性数据;
确定所述当前点的编码后的属性数据对应的编码阶数;
基于所述编码阶数对所述当前点的编码后的属性数据进行解码,得到所述当前点的属性数据;
继续确定所述点云中下一当前点的属性数据,直至所述点云中所有点均解码完成。
本申请实施例还提供了一种通信节点,包括:存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的编码方法或解码方法。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述的编码方法或解码方法。
关于本申请的以上实施例和其他方面以及其实现方式,在附图说明、具体实施方式和权利要求中提供更多说明。
附图说明
图1为一实施例提供的一种AVS-PCC框架的实现示意图;
图2为一实施例提供的一种编码方法的流程图;
图3为一实施例提供的一种点云熵编码方法的实现示意图;
图4为一实施例提供的另一种点云熵编码方法的实现示意图;
图5为一实施例提供的又一种点云熵编码方法的实现示意图;
图6为一实施例提供的一种解码方法的流程图;
图7为一实施例提供的一种点云熵解码方法的实现示意图;
图8为一实施例提供的一种编码装置的结构示意图;
图9为一实施例提供的一种解码装置的结构示意图;
图10为一实施例提供的一种通信节点的硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
点云(Point Cloud)是由空间中一组无规则分布、表达三维物体或场景空间结构和表面属性的离散点集所构成的。点云中的点除了几何坐标还包括一些附加属性,比如颜色、反射率等。获取物体表面每个采样点的空间坐标后,得到的是一个点的集合,称之为“点云”。点云可应用在测绘、汽车驾驶、农业、规划设计、考古与文物保护、医疗和游戏娱乐等领域。随着三维扫描技术和***日趋成熟,基于实际物体表面的三维坐标信息的点云数据可以快速并精确的获取并存储,使得点云数据逐渐在各种图像处理领域中得到广泛应用。点云数据根据获得方式不同,可以分为:一、根据激光测量原理得到的点云,包括三维坐标(XYZ)和激光反射强度(Reflectance);二、根据摄影测量原理得到的点云,包括三维坐标(XYZ)和颜色信息(即红绿蓝(Red-Green-Blue,RGB));三、结合激光测量和摄影测量原理得到点云,包括三维坐标(XYZ)、激光反射强度(Reflectance)和颜色信息(RGB)。不管是何种获取方式,扫描后点云数据量都将达到几百万比特甚至更大的数量级,因此,为了降低点云的存储和传输数据量,针对点云数据的编码压缩算法是重要的技术之一。
目前,点云的压缩算法已经有了较为***的研究,可以分为基于视频的点云编码(Video-based Point Cloud Coding,V-PCC)和基于几何的点云编码(Geometry-basedPoint Cloud Coding,G-PCC)。其中,基于几何的点云编码G-PCC主要应用于静态点云(即物体是静止的,获取点云的设备也是静止的),和动态获取点云(即物体是运动的,获取点云的设备是运动的)。G-PCC的压缩方法通常是将点云数据转化为几何信息和属性信息等,再分别将几何信息和属性信息编码为码流,其中几何信息是指点的位置信息或三维坐标的八叉树(Octree)或K维树(k-dimensional树,KD树)等描述,属性信息是指点的颜色和反射率等多个不同的组成(Component)。
属性信息编码主要可以分为三类:基于变换的方法、基于映射的方法和基于预测的方法。基于变换的方法是利用重建的几何信息来设计属性信息变换,以去除属性信息之间的相关性。基于映射的方法是采用与基于映射的几何编码方法相同的投影方式,再使用视频编码技术对重着色之后的属性视频进行编码。基于预测的方法是利用现有的属性信息对当前属性信息进行预测,降低当前属性信息的编码代价。
图1为一实施例提供的一种AVS-PCC框架的实现示意图。如图1所示,是音视频编码标准的点云压缩(Point Cloud Compression of Audio Video coding Standard,AVS-PCC)框架的编码器与解码器的总体框图,图中呈现了各模块的逻辑关系。在编码器和解码器中,首先处理点云几何位置,再基于解码后的几何位置处理属性信息。
本实施例中,AVS-PCC框架中对点云属性信息的压缩流程可以如下,由于点云的几何位置通过坐标平移、量化和八叉树重建,所以需要对点云中的每个点进行属性插值进行重上色的操作。为了进一步压缩数据,使用差分预测的方法,通过前面的若干点去预测得到当前点的预测属性值,当前属性值与预测属性值相减从而得到属性预测残差。再对属性预测残差进行量化及熵编码。
但是,目前AVS-PCC的熵编码中,所使用的指数哥伦布编码的阶数是固定的。当属性信息为反射率时,采用3阶指数哥伦布编码,当属性信息为颜色时,采用1阶指数哥伦布编码。
在面对不同的数据集和测试条件下,所产生的非零属性编码序列值的范围差异性较大。在遍历所有点的时候,在局部纹理比较平滑的时候,属性编码序列值会比较小;在局部纹理突变性比较大的时候,属性编码序列值会比较大。进一步地,亮点云的局部纹理中,明亮度Y的变化会比较大,而对于色度U和V,变化会比较小。而针对上述这些情况,固定阶数的指数哥伦布编码的编码性能会比较低。
为解决上述技术问题,图2为一实施例提供的一种编码方法的流程图,如图2所示,本实施例提供的方法包括步骤110、步骤120、步骤130和步骤140。
在步骤110中,确定点云的属性信息的待编码属性数据。
本实施例中,点云的属性信息可以指表征点云属性特征的信息,如可包括点云的颜色信息和反射率信息等。点云中可包括多个点。每一种属性信息在点云中的每一个点上都可对应有一个属性值,也就是说,点云中的每个点都可对应存在一种属性信息的属性值。例如,在颜色信息中,属性值可以是RGB颜色空间中的一个值(如R、G、或B对应的值),也可以是YUV颜色空间中的一个值(如Y、U、或V对应的值)。
待编码属性数据可以指等待编码的属性信息的属性数据,如待编码属性数据可以是点云的属性信息对应的属性值,也可以是点云的属性信息对应的属性残差。在点云中的每一个点上,每一种属性信息的属性值可对应一个属性残差。属性残差可理解为点云中每个点的属性值与对应预测值之间的差值。每个点的一种属性信息的属性值可对应一个预测值,该预测值可以理解为根据点云中所有当前属性信息(即当前点云中所有点对应的当前属性信息,当前属性信息可以认为是当前处理的属性信息,如当前待进行编码的属性信息)在该点的属性值进行预测所确定的一个值;如可以是点云中所有当前属性信息在该点的属性值中与当前属性值最接近的一个属性值;也可以是点云中部分当前属性信息在该点的属性值中与当前属性值最接近的一个属性值,其中部分当前属性信息可以是已经编码过的属性信息。
点云可以是一帧图像中的点云,也可以是一帧图像中部分区域的点云。部分区域不作限定可以根据实际情况确定。
本步骤可以基于每个点的属性信息进行编码;也可以基于每个点中部分属性信息进行编码;还可以基于每个点中某一属性信息进行编码,本实施例对此并不限定。基于每种属性信息进行编码的手段上可以是相互独立的。
在步骤120中,确定点云中当前点的编码阶数。
本实施例中,编码阶数可理解为对点云中当前点进行编码的阶数。编码阶数的个数可以为一个或多个。此处对如何确定点云中当前点的编码阶数不作具体限定;如可以是根据点云中当前点的特征信息确定编码阶数;也可以是根据相应的配置文件确定编码阶数等。
其中,当前点的特征信息可理解为表征当前点特征的信息,此处对当前点的特征信息不作具体限定。如当前点的特征信息可以是指当前点在遍历点云序列中所处的顺序特征;例如,当遍历到点云序列中第一个点时,当前点的顺序特征为1,当遍历点云序列中第N个点时,当前点的顺序特征则为N。顺序特征在编码时可以对应当前点在整个点云序列中的编码顺序。或者,当前点的特征信息也可以是指当前点所在的局部纹理特征,例如当前点处的局部纹理特征是纹理平滑区域或者是纹理突变区域等。又或者,当前点的特征信息可以是指当前点的属性特征,例如当前点的属性特征可以为反射率属性或者颜色属性等。又或者,当前点的特征信息还可以是当前点在点云中的几何位置特征,例如几何位置特征可以是当前点位于点云中心或者点云边缘位置等。
在步骤130中,根据所述编码阶数对所述当前点的待编码属性数据进行编码。
本实施例中,在确定点云中当前点的编码阶数之后,可以根据所确定的编码阶数对当前点的待编码属性数据进行编码,其中编码可以是指数哥伦布编码。
此处对如何根据编码阶数对当前点的待编码属性数据进行编码不作具体限定。不同的编码阶数个数可以对应不同的编码方法。示例性的,若编码阶数的个数为1个,则可以对当前点的属性信息的待编码属性数据采用该编码阶数进行编码。
若编码阶数的个数为2个或2个以上,则可以对当前点的属性信息的各个属性分量分别进行编码,其中属性分量可理解为表征属性信息的各个子属性特征分量。具体的,假设当前点的属性信息为颜色信息(如YUV),如若编码阶数的个数为2个,则可以对当前点的属性信息的一个属性分量(如Y)采用其中一个编码阶数进行编码,对当前点的属性信息的另外两个属性分量(如U何V)采用另一个编码阶数进行编码。若编码阶数的个数为2个以上(如3个),则可以分别对当前点的属性信息的每一个属性分量采用一个编码阶数进行编码,可理解的是,每个属性分量所采用的编码阶数可以是不同的。需要说明的是,本实施例对如何采用编码阶数进行编码的编码过程不作具体限定。
在步骤140中,继续确定点云中下一当前点的编码阶数并对所述下一当前点的待编码属性数据进行编码,直至所述点云内所有点均编码完成,得到编码后的属性数据。
本实施例中,点云中包括多个点。为了实现对点云的编码,针对点云中的每个点,都可执行步骤110至步骤130的操作以实现对点云中每个点的编码。具体的,遍历点云中的点,在对当前点的待编码属性数据进行编码之后,继续确定点云中下一当前点的编码阶数并对下一当前点的待编码属性数据进行编码,直至点云内所有点均编码完成,得到编码后的属性数据。其中,下一当前点可以理解为点云中的下一个未进行编码的点。编码后的属性数据可理解为对点云的属性信息的待编码数据进行编码后得到的数据。
在本实施例中,对于编码后的属性数据,可以生成一个对应的文件以用于存储,也可以生成码流以用于传输,此处对此不作限定。本实施例中,通过所确定的点云中每个点的编码阶数,对所确定的每个点的属性信息的待编码属性数据进行编码,能够使得点云中每个点对应一个适合自身的编码阶数进行编码,避免了采用固定阶数编码造成的编码性能低下等问题,有效提升了编码的灵活性和性能。
在一实施例中,编码阶数的个数为一个。
在一实施例中,根据编码阶数对当前点的待编码属性数据进行编码,包括:
对当前点的属性信息的待编码属性数据采用对应的编码阶数编码。
本实施例中,当编码阶数的个数为一个时,可以对当前点的属性信息的待编码属性数据采用该编码阶数进行编码。如对当前点的颜色信息的待编码属性数据采用该编码阶数进行编码。
在一实施例中,编码阶数的个数为至少两个。
在一实施例中,根据编码阶数对所述当前点的待编码属性数据进行编码,包括:
对当前点的属性信息中每个属性分量的待编码属性数据分别采用对应的编码阶数编码。
本实施例中,当编码阶数的个数为至少两个时,可以对当前点的属性信息中每个属性分量的待编码属性数据分别采用对应的编码阶数进行编码。
如编码阶数的个数为两个时,可以对当前点的属性信息中的部分属性分量采用一个编码阶数进行编码,对剩余的部分属性分量采用另一个编码阶数进行编码。例如,若当前点的属性信息中包含3个属性分量,则可以对其中任一个属性分量采用一个编码阶数进行编码,对剩余的两个属性分量采用另一个编码阶数进行编码。
同理,如编码阶数的个数为两个以上时,可以分别对当前点的属性信息中的一个或多个属性分量采用不同的编码阶数进行编码。具体的,如编码阶数的个数为3个时,当前点的属性信息的属性分量也为3个时,可以每个属性分量对应采用一个不同的编码阶数。
在一实施例中,确定点云中当前点的编码阶数,包括:
根据点云中当前点的特征信息确定编码阶数。
本实施例中,确定点云中当前点的编码阶数的方法可以与当前点的特征信息相关,即根据点云中当前点的特征信息可以确定编码阶数。
当前点的特征信息可以包括如下一个或多个:当前点在遍历点云序列中所处的顺序特征;当前点所在的局部纹理特征;当前点的属性特征;当前点在点云中的几何位置特征等。
此处对如何根据点云中当前点的特征信息确定编码阶数不作具体限定,不同的特征信息确定编码阶数的方式可以不同。例如,当特征信息为当前点在遍历点云序列中所处的顺序特征时,可以根据当前点和/或在当前点顺序之前指定数量的点所对应的属性残差的平均值确定编码阶数。当特征信息为当前点所在的局部纹理特征时,可以根据当前点处于纹理平滑区域还是纹理突变区域来确定对应的编码阶数。当特征信息为当前点的属性特征,可以根据当前点的属性特征是反射率属性还是颜色属性或者其他属性,分别确定对应的编码阶数。当特征信息为当前点在点云中的几何位置特征时,可以根据当前点位于点云中心或者点云边缘位置分别确定对应的编码阶数。
在一实施例中,确定点云中当前点的编码阶数,包括:
根据当前点的属性信息和/或点云中与当前点关联的点的属性信息,确定当前点的编码阶数。
本实施例中,点云中与当前点关联的点可理解为点云中顺序在当前点之前的指定数量的点,指定数量可以为一个或多个。其中,顺序可以认为是点云中各点的排列顺序,或编码顺序,此处不作限定。顺序可以基于各点在实际图像中的位置确定。
此处对如何根据当前点的属性信息和/或点云中与当前点关联的点的属性信息确定当前点的编码阶数不作具体限定。例如,根据当前点的属性信息和/或点云中与当前点关联的点的属性信息,可以确定每个属性信息对应的属性值和属性残差中的至少一个,根据所确定的属性值和/或属性残差可以计算当前点的编码阶数,此处对如何计算也不作具体限定。其中,所确定的属性值和/或属性残差可以以一个属性数组的形式存储,也可以以其他形式存储,此处对此不作限定。
在一实施例中,根据当前点的属性信息和/或点云中与当前点关联的点的属性信息,确定当前点的编码阶数,包括:
根据当前点的属性信息和/或点云中与当前点关联的点的属性信息,确定当前点对应的属性数组;
根据属性数组,确定当前点的编码阶数。
本实施例中,当前点的属性信息和/或点云中与当前点关联的点的属性信息可对应至少一个属性数组,该属性数组可理解为将点的属性信息的属性值和/或点的属性信息的属性残差作为元素的数组。属性数组中可包含一个或多个元素;属性数组的长度可理解为属性数组可包含元素的个数大小,如属性数组的长度为n,则该属性数组可包含的元素为n个(n大于等于1),即最多可包含n个元素。此处对属性数组的长度不作具体限定,如可以是预先设定的长度值,也可以是按照预定规则计算得到的长度值,或者可以是通过相关的配置文件所进行配置的长度值,又或者可以是通过码流进行传输所确定的长度值。
此处对如何根据当前点的属性信息和/或点云中与当前点关联的点的属性信息确定当前点的属性信息对应的属性数组不作具体限定。如根据当前点的属性信息和/或点云中与当前点关联的点的属性信息可得到当前点的属性信息的属性残差和/或属性值、以及点云中与当前点关联的点的属性信息的属性残差和/或属性值。在此基础上,根据所得到的当前点的属性信息的属性残差和/或属性值、以及点云中与当前点关联的点的属性信息的属性残差和/或属性值可以确定一个当前点对应的属性数组。如,属性数组中可以包含当前点的属性信息的属性残差、当前点的属性信息的属性值、点云中与当前点关联的点的属性信息的属性残差、和/或点云中与当前点关联的点的属性信息的属性值。
当前点的属性信息的至少一个属性分量可对应一个属性数组,如可以是为一个属性分量对应一个属性数组,或者可以是多个属性分量可对应一个属性数组。该属性数组可理解为将点的属性信息的属性分量的属性值和/或点的属性信息的属性分量的属性残差作为元素的数组。不同属性分量对应的属性数组可以是相同的,也可以是不同的。属性分量对应的属性数组的长度可参见上述当前点的属性信息的属性数组的长度描述,此处不作赘述。
此处对如何根据当前点的属性信息和/或点云中与当前点关联的点的属性信息确定当前点的属性信息的至少一个属性分量对应的属性数组也不作具体限定。如根据当前点的属性信息和/或点云中与当前点关联的点的属性信息可分别得到当前点的属性信息的各个属性分量对应的属性残差和/或属性值、以及点云中与当前点关联的点的属性信息的各个属性分量的属性残差和/或属性值。在此基础上,根据所得到的当前点的属性信息的各个属性分量的属性残差和/或属性值、以及点云中与当前点关联的点的各个属性分量的属性信息的属性残差和/或属性值可以确定当前点的属性信息至少一个属性分量对应的一个属性数组。如,属性数组中可以包含当前点的属性信息的各个属性分量的属性残差、当前点的属性信息的各个属性分量的属性值、点云中与当前点关联的点的属性信息的各个属性分量的属性残差、和/或点云中与当前点关联的点的属性信息的各个属性分量的属性值。
在此基础上,可以根据属性数组中元素的个数来确定编码阶数的计算方式,属性数组的元素个数的不同,可对应不同的编码阶数计算方式,此处对此不作限定。
在一实施例中,根据属性数组,确定当前点的编码阶数,包括:
在属性数组中元素个数小于设定阈值的情况下,将初始阶数确定为编码阶数;
在属性数组中元素个数大于或等于设定阈值的情况下,根据属性数组中的元素取值确定编码阶数。
本实施例中,设定阈值可以指预先设定的阈值,此处对设定阈值的具体数值不作具体限定,可根据实际需求灵活设置。
属性数组的长度n与设定阈值N可以是相同的,也可以是不同的。例如,与属性数组的长度n相类似的,设定阈值N可以是预设值;或者可以是按照预定规则计算得到的;也可以是通过相应的配置文件进行配置的,即点云编码后的数据发送端和接收端都默认的值,不在点云编码后数据中保存。
在属性数组中元素个数小于设定阈值的情况下,可以将初始阶数确定为编码阶数。初始阶数可以指在初始阶段设置的编码阶数;如初始阶数可以是预设值,或者是按照预定规则计算得到的;或者也可以是通过相应的配置文件进行配置得到的,即点云编码后的数据发送端和接收端都默认的值,不在点云编码后数据中保存,也可以编码到点云编码后的数据中,再由发送端将编码后数据发送给接收端,接收端对编码后数据解码后得到初始阶数。
在属性数组中元素个数大于或等于设定阈值的情况下,可以根据属性数组中的元素取值确定编码阶数,如可以基于属性数组中各元素取值的均值来计算编码阶数。
在一实施例中,根据属性数组中的元素取值确定编码阶数,包括:
基于属性数组中元素取值的平均值,确定编码阶数。
本实施例中对如何基于属性数组中元素取值的平均值确定编码阶数不作具体限定。可以对确定的平均值进行数学运算得到编码阶数,如可以基于如下公式计算编码阶数:
k=floor(log2(attravg))+1;
其中,floor(x)可表示向下取整函数,即取不大于x的最大整数;attravg可表示属性数组中元素取值的平均值。
在确定了k值之后,可以直接将k值作为最终的编码阶数,也可以根据k的取值在预先设置好的表中查找其对应的阶数作为编码阶数。
在一实施例中,当前点的属性信息对应一个属性数组。
在一实施例中,属性数组包括如下一个或多个:
属性信息的属性值;
属性信息的属性残差。
在一实施例中,当前点的属性信息的至少一个属性分量对应一个属性数组。
在一实施例中,属性数组包括如下一个或多个:
属性分量的属性值;
属性分量的属性残差。
以下通过不同实施例对编码方法进行示例性说明。
实施例一
图3为一实施例提供的一种点云熵编码方法的实现示意图。如图3所示,本实施例提供的点云熵编码方法的实现过程可以包含以下步骤:
步骤11.对点云的属性信息进行预测并生成属性残差(即待编码属性数据);
遍历点云的某一属性信息的所有属性值,为每一个点的属性值寻找预测值,每一个点的属性值和对应的预测值相减生成属性残差。
其中,属性信息是指点云的颜色和反射率等信息,每一种属性信息在点云中的每个点上都有一个属性值,比如颜色信息,可以是RGB颜色空间中的一个值(R,G,B),也可以是YUV颜色空间中的一个值(Y,U,V),其中Y用于表示点的亮度,U和V用于表示点的色度。
预测值可以是所有点云的当前属性信息里与当前属性值最接近的值,也可以是在一部分点云的当前属性信息里与当前属性值最接近的值,比如已经编码过的属性信息。
需要说明的是,本步骤还可以进一步包括选取量化参数对属性残差进行量化。其中,量化是指将信号的连续取值或者大量可能的离散取值近似为有限多个或较少的离散值的过程,量化参数反映了量化过程对原有信号的压缩幅度。因此,本实施例后续描述中提到的属性残差可能是未经量化的属性残差或者是经过量化的属性残差。
步骤12.获取当前点的属性残差及其特征信息。
特征信息可以是当前点在遍历点云序列中所处的顺序特征,例如,当遍历到点云序列中第一个点时,当前点的顺序特征为1,当遍历点云序列中第N个点时,当前点的顺序特征则为N。
此外,特征信息还可以是当前点所在的局部纹理特征,例如当前点所在的局部纹理特征是纹理平滑区域或者是纹理突变区域等;或者特征信息还可以是当前点的属性特征,例如当前点的属性特征为反射率属性或者颜色属性等;又或者特征信息还可以是当前点在点云中的几何位置特征,例如当前点位于点云中心或者点云边缘位置等。顺序特征在编码时可以对应当前点在整个点云序列中的编码顺序。
步骤13.根据当前点的特征信息确定编码阶数K。
根据步骤12中获取到的特征信息可以确定编码阶数K。确定编码阶数K的方法可以与具体的特征信息种类相关。本实施例对如何根据当前点的特征信息确定编码阶数K不作具体限定。例如,当特征信息为当前点的顺序特征时,确定编码阶数K的方法为,根据当前点和/或点云中顺序在当前点之前指定数量的点所对应的属性残差值的平均值确定;当特征信息为当前点所在的局部纹理特征时,确定编码阶数K的方法可以为,根据当前点处于纹理平滑区域还是纹理突变区域确定对应的编码阶数K;当特征信息为当前点的属性特征时,根据当前点的属性是反射率属性还是颜色属性或者其他属性,分别确定对应的编码阶数K;当特征信息为当前点在点云中的几何位置特征时,根据当前点位于点云中心或者点云边缘位置分别确定对应的编码阶数K等。
进一步地,编码阶数K可以是一个数值;也可以是一个数组,数组中可至少包括两个以上数值元素(即编码阶数的个数可以是一个,也可以是至少两个)。
步骤14.根据编码阶数K对当前点的属性残差进行指数哥伦布编码。
本实施例不对如何根据编码阶数K对当前点的属性残差进行指数哥伦布编码作具体限定。
当编码阶数K为一个数值时,对当前点的属性残差采用K阶指数哥伦布编码(即编码阶数的个数为一个时,对当前点的属性信息的待编码属性数据采用对应的编码阶数编码)。此时属性信息可以是颜色属性也可以是反射率属性,或者是点云的其他属性。
当编码阶数K为二元数组,表示为K=(k1,k2)时,对当前点的颜色属性中亮度分量Y上的属性残差采用k1阶指数哥伦布编码,对当前点的色度分量U和V上的属性残差采用k2阶指数哥伦布编码。(即编码阶数的个数为至少两个时,对当前点的属性信息中每个属性分量的待编码属性数据分别采用对应的编码阶数编码)。
当编码阶数K为三元数组,表示为K=(k1,k2,k3)时,对当前点的颜色属性中亮度分量Y上的属性残差采用k1阶指数哥伦布编码,对当前点的色度分量U上的属性残差采用k2阶指数哥伦布编码,对当前点的色度分量V上的属性残差采用k3阶指数哥伦布编码。(即编码阶数的个数为至少两个时,对当前点的属性信息中每个属性分量的待编码属性数据分别采用对应的编码阶数编码)。
需要说明的是,本实施例中颜色属性以YUV颜色空间为例进行说明,也可以是RGB颜色空间,相应的,例如分别对RGB颜色空间中的R分量、G分量和B分量中的一个或两个分量采用不同阶数的指数哥伦布编码。
本实施例对如何实现K阶指数哥伦布编码的熵编码过程也不作具体限定。
需要说明的是,步骤12至步骤14需要循环执行,直到当前点遍历点云中的每一个点为止(即继续确定点云中下一当前点的编码阶数并对下一当前点的待编码属性数据进行编码,直至点云内所有点均编码完成,得到编码后的属性数据)。
在本实施例中,编码后的数据可以生成文件用于存储,也可以生成码流用于传输,此处对此不作限定。
实施例二
图4为一实施例提供的另一种点云熵编码方法的实现示意图。如图4所示,本实施例提供的点云属性信息熵编码方法的实现过程可以包含以下步骤:
步骤21.对点云的属性信息进行预测并生成属性残差;
可参见上述实施例一中的步骤11。
步骤22.获取当前点的属性残差及其特征信息;
如实施例一中步骤22所述,当前点的特征信息可以是当前点在遍历点云序列中所处的顺序特征,还可以是当前点所在的局部纹理特征,或者可以是当前点的属性特征,又或者可以是当前点在点云中的几何位置特征等。本实施例中将以顺序特征为例进行示例性说明。
步骤23.根据特征信息获取属性信息对应的数组(即当前点的属性信息对应一个属性数组);
当前点的属性信息对应的数组中的元素为遍历点云中顺序在当前点之前的点的属性值。可以设置数组的最大长度(即属性数组长度)为n,即数组中最多可以有n个元素。数组的最大长度n可以是预设值;或者是按照预定规则计算得到;也可以是通过配置文件进行配置,或者通过码流进行传输。
一种获取当前点的特征信息对应的数组的方法可以包括如下步骤:1、当前点是第一个点时,创建一个空数组,并将当前点的属性残差值加入该空数组;2、当前点不是第一个点时,获取当前点之前一个点对应的数组,并将当前点的属性残差值加入该数组。
另一种获取当前点的特征信息对应的数组的方法可以包括如下步骤:1、当前点是第一个点时,创建一个空数组;2、当前点不是第一个点时,获取当前点之前一个点对应的数组,该数组中包括当前点之前一个点对应的属性残差值。
进一步的,当该数组中的元素个数超过数组最大长度n时,需要删除至少一个元素以保证数组中的元素个数满足数组的最大长度要求。此处对如何确定被删除元素的方法不作具体限定。例如,可以按照加入数组的先后顺序,将最先加入的元素删除;或者可以按照与当前点的距离排序,将与当前点距离最远的一个或者多个点所对应的元素删除;又或者可以按照元素取值顺序排序,将最大值和/或最小值元素删除等。
步骤24.判断数组(即属性数组)中的元素个数是否达到阈值N(即设定阈值),若是,则执行步骤25,否则执行步骤27;
在本实施例中,步骤23中提到的数组最大长度n和阈值N可以是相同的,也可以是不同的。
数组最大长度n和/或阈值N可以是预设值;或者可以是按照预定规则计算得到;或者也可以是通过配置文件进行配置,即点云编码后的数据发送端和接收端都默认的值,不在点云编码后数据中保存。
数组最大长度n和/或阈值N可以编码到点云编码后的数据中,再由发送端将编码数据发送给接收端,接收端对编码数据解码后得到阈值N。例如:
数组最大长度n和/或阈值信息可以放在序列头中,也可以放在属性头中,也可以放在属性片头中,或者也可以放在对应的属性信息中。
又或者数组最大长度n和/或阈值也可以通过带外的方式传输,比如在视频码流的辅助信息(补充增强信息(Supplementary and enhanced information,SEI)消息),或者***层中进行传输。
当只能获取到数组最大长度n或阈值N时,则可默认两者取值是相同的。
步骤25.根据数组中的元素取值计算阶数k1(即在属性数组中元素个数大于或等于设定阈值的情况下,根据属性数组中的元素取值确定编码阶数);
本实施例对如何计算阶数的方法不作具体限定。例如,一种计算阶数的方法可以是:计算数组中所有元素的平均值attravg,计算指数哥伦布编码阶数k的公式可以表示为:
k=floor(log2(attravg))+1
即基于属性数组中元素取值的平均值,确定编码阶数)。可以直接使用k作为当前点属性编码的指数哥伦布编码阶数k1。又或者可以根据k的取值在预先设置好的表中查找其对应的阶数k1等。
步骤26.对当前点的属性残差采用k1阶指数哥伦布编码;
本实施例对如何实现k1阶指数哥伦布编码的熵编码过程也不作具体限定。。
步骤27.对当前点的属性残差采用初始k0阶(即初始阶数)指数哥伦布编码;
与阈值N类似,初始阶数k0同样可以是预设值;或者可以是按照预定规则计算得到;或者也可以通过配置文件进行配置,即点云编码后的数据发送端和接收端都默认的值,不在点云编码后数据中保存。
又或者初始阶数k0也可以编码到点云编码后的数据中,再由发送端将编码数据发送给接收端,接收端对编码数据解码后得到初始阶数k0。例如,初始阶数k0可以放在序列头中,也可以放在属性头中,也可以放在属性片头中,或者也可以放在对应的属性信息中;又或者初始阶数k0也可以通过带外的方式传输,比如在视频码流的辅助信息(即SEI消息),或者***层中进行传输。
步骤28.判断当前点是否为遍历点云序列中的最后一个点,若是,则结束流程,否则继续返回执行步骤22;
判断当前点是否为遍历点云序列中的最后一个点,即可理解为判断是否遍历完点云序列中所有的点,若是,则结束流程,否则,继续返回执行步骤22。
实施例三
图5为一实施例提供的又一种点云熵编码方法的实现示意图。如图5所示,本实施例提供的点云颜色属性信息熵编码方法的实现过程可包含以下步骤:
步骤31.对点云的属性信息进行预测并生成属性残差;
可参见上述实施例一中的步骤11。
步骤32.获取当前点的属性残差及其特征信息;
可参见上述实施例一中的步骤12。
步骤33.根据特征信息确定获取属性信息对应的分量数组(即当前点的属性信息的至少一个属性分量对应一个属性数组);
分量数组(即属性数组)是指属性信息的至少一个属性分量i都对应一个属性数组,分量数组中的元素为遍历点云中顺序在当前点之前的点的属性分量i值(i值即为属性分量i对应的属性值)。以YUV空间的颜色属性为例进行示例性说明,分量数组可以是:亮度Y分量对应一个数组,色度U和V分量对应一个数组;或者分量数组也可以是:亮度U分量对应一个数组,色度U分量对应一个数组,色度V分量对应一个数组。
可以设置数组的最大长度(即属性数组长度)为n,即数组中最多可以有n个元素。不同分量对应的数组的最大长度可以相同也可以不同。数组的最大长度n可以是预设值;或者可以是按照预定规则计算得到;或者也可以通过配置文件进行配置,或者通过码流进行传输。
在实际应用过程中,可以用一个二维数组来表示各属性分量及其对应的数组,也可以对每一个属性分量都维护一个一维数组。
根据特征信息确定获取分量数组的方法包括但不限于以下方法之一:根据点云的局部纹理特征确定;或者根据配置文件确定;或者根据点云的类型确定;又或者根据点云各属性分量取值变化情况确定等。
步骤34.判断分量数组中的元素个数是否达到阈值N(即设定阈值),若是,则执行步骤35,否则执行步骤38;
分别判断各属性分量对应的数组中的元素个数是否达到阈值N,例如,判断亮色Y分量对应的数组中的元素个数是否达到阈值N,色度U分量对应的数组中的元素个数是否达到阈值N,以及色度V分量对应的数组中的元素个数是否达到阈值N。判断某一属性分量对应的数组中的元素个数是否达到阈值N,可参考上述实施例二中步骤24;
另外,不同分量对应数组的阈值N可以是相同的,也可以是不同的。
步骤35.根据分量数组中的元素取值分别计算属性分量i对应的阶数ki(即在属性数组中元素个数大于或等于设定阈值的情况下,根据属性数组中的元素取值确定编码阶数);
根据属性分量i对应的数组中的元素取值计算属性分量i对应的阶数ki,具体方法可以参考上述实施例二中步骤25。
具体的,本实施例对如何计算阶数的方法不作具体限定。例如,一种计算阶数的方法可以是:计算分量数组中所有元素取值的平均值attravg,计算指数哥伦布编码阶数k的公式可以表示为:
k=floor(log2(attravg))+1;
可以直接使用k作为属性分量i对应的阶数ki。又或者可以根据k的取值在预先设置好的表中查找其对应的阶数ki等。
针对不同属性分量i计算阶数ki的方法可以是相同的,也可以是不同的。
步骤36.对当前点的属性分量i的属性残差采用ki阶指数哥伦布编码;
本实施例对对当前点的属性分量i的残差采用ki阶指数哥伦布编码的方法可以参考实施例二中步骤26。
步骤37.判断当前点的属性分量是否全部编码完,若是,则执行步骤39,否则继续返回执行步骤34;
以YUV空间的颜色属性为例,判断当前点的属性分量是否全部编码完,即可理解为判断亮度Y,色度U和色度V的残差值是否都已进行编码。
步骤38.对当前点的属性分量的属性残差采用初始k0阶(即初始阶数)指数哥伦布编码;
此处可参考上述实施例二中步骤27。
不同属性分量对应的初始阶数可以是相同的,也可以是不同的。
步骤39.判断当前点是否为遍历点云序列中的最后一个点,若是,则结束流程,否则继续返回执行步骤32;
判断当前点是否为遍历点云序列中的最后一个点,即可理解为判断是否遍历完点云序列中所有的点,若是,则结束流程,否则,继续返回执行步骤32。
需要说明的是,可以先对一帧点云进行区域分割,再对每个分区的属性残差值分别进行编码,每个分区的点云属性残差编码可以采用上述实施一至实施例三中的任意一种方法,不同分区的点云属性残差编码方法可以相同也可以不同。
同一帧点云或者同一分区的点云中的不同属性信息的属性残差编码也可以采用上述实施一至实施例三中的任意一种方法,同一点的不同属性信息对应属性残差编码方法可以相同也可以不同。
图6为一实施例提供的一种解码方法的流程图,如图6所示,本实施例提供的方法包括步骤210、步骤220、步骤230、步骤240和步骤250。
在步骤210中,获取点云的编码后的属性数据。
本实施例中,编码后的属性数据可以理解为待编码属性数据进行编码后得到的数据。如对点云的属性信息的属性残差和/或属性值进行编码后得到的数据,其中,编码可以指上述实施例所提供的任一编码方法。此处对如何获取点云的编码后的属性数据不作具体限定。
在步骤220中,获取所述点云中当前点的编码后的属性数据。
本实施例中,当前点的编码后的属性数据可理解为对点云中当前点的属性信息的属性残差和/或属性值进行编码后得到的数据。同样的,编码可以指上述实施例所提供的任一编码方法。此处对如何获取点云中当前点的编码后的属性数据不作具体限定。
在步骤230中,确定所述当前点的编码后的属性数据对应的编码阶数。
本实施例中,对如何确定当前点的编码后的属性数据对应的编码阶数不作具体限定。如可以根据点云中当前点的特征信息确定当前点的编码后的属性数据对应的编码阶数;也可以是根据相应的配置文件确定当前点的编码后的属性数据对应的编码阶数等。
同样的,当前点的特征信息可以包括:当前点在遍历点云序列中所处的顺序特征、当前点所在的局部纹理特征、当前点的属性特征、或者当前点在点云中的几何位置特征等。
此处对如何根据点云中当前点的特征信息确定当前点的编码后的属性数据对应的编码阶数不作具体限定,不同的特征信息确定编码阶数的方式可以不同。例如,当特征信息为当前点在遍历点云序列中所处的顺序特征时,可以根据当前点和/或在当前点顺序之前指定数量的点所对应的属性残差的平均值确定当前点的编码后的属性数据对应的编码阶数。当特征信息为当前点所在的局部纹理特征时,可以根据当前点处于纹理平滑区域还是纹理突变区域来确定对应的当前点的编码后的属性数据对应的编码阶数。当特征信息为当前点的属性特征,可以根据当前点的属性特征是反射率属性还是颜色属性或者其他属性,分别确定对应的当前点的编码后的属性数据对应的编码阶数。当特征信息为当前点在点云中的几何位置特征时,可以根据当前点位于点云中心或者点云边缘位置分别确定对应的当前点的编码后的属性数据对应的编码阶数。
当前点的编码后的属性数据对应的编码阶数的个数可以是一个,也可以是多个(即至少两个)。当属性信息包含多个属性分量时,若编码阶数的个数为一个时,可表示多个属性分量的属性残差可对应相同的编码阶数;若编码阶数的个数为多个时,可表示多个属性分量的属性残差可以存在各自对应的编码阶数,如可以是每个属性分量对应不同的编码阶数。
在步骤240中,基于所述编码阶数对所述当前点的编码后的属性数据进行解码,得到所述当前点的属性数据。
本实施例中,在确定点云中当前点的编码后的属性数据对应的编码阶数之后,可以根据所确定的编码阶数对当前点的编码后的属性数据进行解码,得到当前点的属性数据。当前点的属性数据可理解为当前点的编码后的属性数据进行解码后得到的数据。
此处对如何基于编码阶数对当前点的编码后的属性数据进行解码不作具体限定。不同的编码阶数个数可以对应不同的解码方法。示例性的,若编码阶数的个数为1个,则可以对当前点的编码后的属性数据采用该编码阶数进行解码。
若编码阶数的个数为2个或2个以上,则可以分别采用各属性分量对应的编码阶数对当前点的各个属性分量的编码后的属性数据进行解码。具体的,假设当前点的属性信息为颜色信息(如YUV),如若编码阶数的个数为2个,其中当前点的属性信息的一个属性分量(如Y)对应一个编码阶数,当前点的属性信息的另外两个属性分量(如U何V)对应另一个编码阶数,则可以采用每个属性分量对应的编码阶数对对应的属性分量的编码后的属性数据进行解码得到该属性分量的属性数据。若编码阶数的个数为2个以上(如3个),其中当前点的属性信息的每一个属性分量可采用一个编码阶数进行编码,每个属性分量所采用的编码阶数是不同的,则同样可以采用每个属性分量对应的编码阶数对对应的属性分量的编码后的属性数据进行解码得到该属性分量的属性数据。需要说明的是,本实施例对如何解码的解码过程不作具体限定。
在步骤250中,继续确定所述点云中下一当前点的属性数据,直至所述点云中所有点均解码完成。
本实施例中,在进行解码得到当前点的属性数据之后,可以继续确定点云中下一当前点得到属性数据,直至点云中所有点均解码完成。
本实施例中,通过基于所确定的当前点的编码后的属性数据对应的编码阶数,可以实现对当前点的编码后的属性数据的解码,利用该装置可以对点云中的每个点的编码后的属性数据采用对应的编码阶数进行解码,避免了采用固定阶数解码造成的解码性能低下等问题,有效提升了解码的灵活性和性能。
在一实施例中,编码阶数的个数为一个。
在一实施例中,基于编码阶数对当前点的编码后的属性数据进行解码,得到当前点的属性数据,包括:
基于编码阶数对当前点的编码后的属性数据进行解码,得到当前点的属性数据。
本实施例中,当编码阶数的个数为一个时,可以对当前点的编码后的属性数据采用该编码阶数进行解码,得到当前点的属性数据。
在一实施例中,编码阶数的个数为至少两个。
在一实施例中,基于编码阶数对当前点的编码后的属性数据进行解码,得到当前点的属性数据,包括:
针对每个编码阶数,基于编码阶数对当前点的编码后的属性数据进行解码,得到当前点的属性分量中对应编码阶数的属性分量的属性数据。
本实施例中,当编码阶数的个数为至少两个时,可以对当前点的属性分量的编码后的属性数据采用该属性分量对应的编码阶数进行编码。
可理解的是,各个属性分量所对应的编码阶数可以是不同的;也可以是部分属性分量对应的编码阶数是相同的。
在一实施例中,确定当前点的编码后的属性数据对应的编码阶数,包括:
根据当前点的编码后的属性数据和/或点云中与当前点关联的点的编码后的属性数据,确定当前点的编码阶数。
本实施例中,此处对如何根据当前点的编码后的属性数据和/或点云中与当前点关联的点的编码后的属性数据,确定当前点的编码阶数不作具体限定。例如,根据当前点的编码后的属性数据和/或点云中与当前点关联的点的编码后的属性数据,可以确定每个属性信息对应的属性值和/或属性残差,根据所确定的属性值和/或属性残差可以确定当前点的编码阶数。其中,所确定的属性值和/或属性残差可以以一个属性数组的形式存储,也可以以其他形式存储,此处对此不作限定。
在一实施例中,根据当前点的编码后的属性数据和点云中与当前点关联的点的编码后的属性数据,确定当前点的编码阶数,包括:
根据当前点的编码后的属性数据和/或点云中与当前点关联的点的编码后的属性数据,确定当前点对应的属性数组;
基于属性数组,确定当前点的编码阶数。
本实施例中,当前点对应的属性数组可包括当前点的属性信息的编码后的属性数据对应一个属性数组,或者当前点的属性信息的至少一个属性分量的编码后的属性数据对应一个属性数组。
此处对如何当前点的编码后的属性数据和/或点云中与当前点关联的点的编码后的属性数据,确定当前点对应的属性数组不作具体限定。例如,当当前点的属性信息的编码后的属性数据对应一个属性数组时,根据当前点的编码后的属性数据和/或点云中与当前点关联的点的编码后的属性数据可以确定当前点的属性信息的属性残差和/或属性值、以及点云中与当前点关联的点的属性信息的属性残差和/或属性值,在此基础上,当前点的属性信息的编码后的属性数据所对应的属性数组中可以包含当前点的属性信息的属性残差、当前点的属性信息的属性值、点云中与当前点关联的点的属性信息的属性残差、和/或点云中与当前点关联的点的属性信息的属性值。
当当前点的属性信息的至少一个属性分量的编码后的属性数据对应一个属性数组时,根据当前点的编码后的属性数据和/或点云中与当前点关联的点的编码后的属性数据可以确定当前点的属性信息的各个属性分量对应的属性残差和/或属性值、以及点云中与当前点关联的点的属性信息的各个属性分量的属性残差和/或属性值。在此基础上,当前点的属性信息的至少一个属性分量的编码后的属性数据所对应的属性数组可以包括当前点的属性信息的各个属性分量的属性残差、当前点的属性信息的属性值、点云中与当前点关联的点的属性信息的各个属性分量的属性残差、和/或点云中与当前点关联的点的属性信息的各个属性分量的属性值。
在一实施例中,当前点的属性信息的编码后的属性数据对应一个属性数组。
在一实施例中,属性数组包括如下一个或多个:
属性信息的属性值;
属性信息的属性残差。
在一实施例中,当前点的属性信息的至少一个属性分量的编码后的属性数据对应一个属性数组。
在一实施例中,属性数组包括如下一个或多个:
属性分量的属性值;
属性分量的属性残差。
在一实施例中,确定当前点的编码后的属性数据对应的编码阶数,包括:
根据点云中当前点的特征信息确定当前点的编码后的属性数据对应的编码阶数。
在一实施例中,基于属性数组,确定当前点的编码阶数,包括:
在属性数组中元素个数小于设定阈值的情况下,将初始阶数确定为编码阶数;
在属性数组中元素个数大于或等于设定阈值的情况下,根据属性数组中的元素取值确定编码阶数。
在一实施例中,根据属性数组中的元素取值确定编码阶数,包括:
基于属性数组中元素取值的平均值,确定编码阶数。
以下通过不同实施例对解码方法进行示例性说明。
实施例四
图7为一实施例提供的一种点云熵解码方法的实现示意图。如图7所示,本实施例提供的点云熵解码方法的实现过程可以包含以下步骤:
步骤41.获取编码后点云的属性信息的属性残差(即获取点云的编码后的属性数据);
所述编码后点云的属性信息的属性残差(即点云的编码后的属性数据)是指点云的属性残差经过实施例1至3中任意一种方法进行编码后得到的值。
其中,属性信息是指点云的颜色和反射率等信息,每一种属性信息在点云中的每个点上都有一个属性值,比如颜色信息,可以是RGB颜色空间中的一个值(R,G,B),也可以是YUV颜色空间中的一个值(Y,U,V)。
步骤42.获取当前点的编码后属性残差(即获取点云中当前点的编码后的属性数据)及其特征信息;
如实施例一中所述,特征信息可以是当前点在遍历点云序列中所处的顺序特征,例如,当遍历到点云序列中第一个点时,当前点的顺序特征为1,当遍历点云序列中第N个点时,当前点的顺序特征则为N。顺序特征在解码时可以对应当前点在整个点云序列中的解码顺序。
此外,特征信息还可以是当前点所在的局部纹理特征,例如当前点处的局部纹理特征是纹理平滑区域或者是纹理突变区域等;或者特征信息还可以是当前点的属性特征,例如当前点的属性特征为反射率属性或者颜色属性等;又或者特征信息还可以是当前点在点云中的几何位置特征,例如当前点位于点云中心或者点云边缘位置等。获取的特征信息可以是上述特征信息中的一种或多种。
步骤43.根据当前点的特征信息确定当前点的编码后属性残差对应的编码阶数(即确定所述当前点的编码后的属性数据对应的编码阶数);
根据步骤42中获取到的特征信息确定当前点的编码后属性残差(即当前点的编码后的属性数据)对应的编码阶数K。确定编码阶数K的方法可以与具体的特征信息种类有关。本实施例对如何根据当前点的特征信息确定当前点的编码后属性残差对应的编码阶数K不作具体限定。例如,当特征信息为当前点的顺序特征时,确定编码阶数K的方法为,根据当前点和/或点云中顺序在当前点之前指定数量的点所对应的属性残差值的平均值确定;当特征信息为当前点所在的局部纹理特征时,确定编码阶数K的方法可以为,根据当前点处于纹理平滑区域还是纹理突变区域确定对应的编码阶数K;当特征信息为当前点的属性特征时,根据当前点的属性是反射率属性还是颜色属性或者其他属性,分别确定对应的编码阶数K;当特征信息为当前点在点云中的几何位置特征时,根据当前点位于点云中心或者点云边缘位置分别确定对应的编码阶数K等。
进一步地,编码后属性残差对应的编码阶数K可以是一个数值,也可以是两个以上数值(即编码阶数的个数可以是一个,也可以是至少两个)。当属性信息包含多个属性分量时,若编码阶数K为一个数值时,表示多个属性信息分量的属性残差对应相同的编码阶数;若编码阶数K包含两个以上数值时,表示多个属性信息分量的属性残差存在各自对应的编码阶数;
步骤44.基于编码阶数对编码后属性残差进行解码(即基于编码阶数对当前点的编码后的属性数据进行解码,得到当前点的属性数据);
当编码阶数K为一个数值时,基于编码阶数K对当前点的编码后属性残差进行解码得到当前点的属性残差(即编码阶数的个数为一个时,基于编码阶数对当前点的编码后的属性数据进行解码,得到当前点的属性数据)。此时属性信息可以是颜色属性信息也可以是反射率属性信息,或者是点云的其他属性信息。
以下以颜色属性信息为例进行说明,编码阶数K包含两个数值时,当编码阶数K包含两个数值时,实际可以表示为K=(k1,k2)时,表示当前点的颜色属性中亮度分量Y上的编码后属性残差对应的编码阶数为k1,当前点的色度分量U和V上的编码后属性残差对应的编码阶数为k2。
当编码阶数K包含三个数值时,表示为K=(k1,k2,k3)时,表示对当前点的颜色属性中亮度分量Y上的编码后属性残差对应的编码阶数为k1,当前点的色度分量U上的编码后属性残差对应的编码阶数为k2,当前点的色度分量V上的编码后属性残差对应的编码阶数为k3。(即编码阶数的个数为至少两个时,针对每个编码阶数,基于编码阶数对当前点的编码后的属性数据进行解码,得到当前点的属性分量中对应编码阶数的属性分量的属性数据)
本实施例中颜色属性以YUV颜色空间为例进行说明,也可以是RGB颜色空间,例如分别对RGB颜色空间中的R分量、G分量和B分量中的一个或两个属性分量采用不同编码阶数的指数哥伦布编码。
对经过K阶指数哥伦布编码后的属性残差进行解码得到编码前的属性残差为现有技术,本方案中对具体的解码推理过程不进行具体描述。
需要说明的是,步骤42至步骤44需要循环执行,直到解码得到点云中的每一个点的属性残差为止(即继续确定点云中下一当前点的属性数据,直至点云中所有点均解码完成)。
本申请实施例还提供一种编码装置。图8为一实施例提供的一种编码装置的结构示意图。如图8所示,所述编码装置包括:
第一确定模块310,设置为确定点云的属性信息的待编码属性数据;
第二确定模块320,设置为确定点云中当前点的编码阶数;
第一编码模块330,设置为根据所述编码阶数对所述当前点的待编码属性数据进行编码;
第二编码模块340,设置为继续确定点云中下一当前点的编码阶数并对所述下一当前点的待编码属性数据进行编码,直至所述点云内所有点均编码完成,得到编码后的属性数据。
本实施例的编码装置,通过所确定的点云中每个点的编码阶数,对所确定的每个点的属性信息的待编码属性数据进行编码,能够使得点云中每个点对应一个适合自身的编码阶数进行编码,避免了采用固定阶数编码造成的编码性能低下等问题,有效提升了编码的灵活性和性能。。
在一实施例中,编码阶数的个数为一个。
在一实施例中,第一编码模块330,包括:
第一编码单元,设置为对当前点的属性信息的待编码属性数据采用对应的编码阶数编码。
在一实施例中,编码阶数的个数为至少两个。
在一实施例中,第一编码模块330,包括:
第二编码单元,设置为对当前点的属性信息中每个属性分量的待编码属性数据分别采用对应的编码阶数编码。
在一实施例中,第二确定模块320,包括:
第一阶数确定单元,设置为根据点云中当前点的特征信息确定编码阶数。
在一实施例中,第二确定模块320,包括:
第二阶数确定单元,设置为根据当前点的属性信息和/或点云中与当前点关联的点的属性信息,确定当前点的编码阶数。
在一实施例中,第二阶数确定单元,包括:
第一数组确定子单元,设置为根据当前点的属性信息和/或点云中与当前点关联的点的属性信息,确定当前点对应的属性数组;
第一阶数确定子单元,设置为根据属性数组,确定当前点的编码阶数。
在一实施例中,第一阶数确定子单元,具体设置为:
在属性数组中元素个数小于设定阈值的情况下,将初始阶数确定为编码阶数;
在属性数组中元素个数大于或等于设定阈值的情况下,根据属性数组中的元素取值确定编码阶数。
在一实施例中,根据属性数组中的元素取值确定编码阶数,包括:
基于属性数组中元素取值的平均值,确定编码阶数。
在一实施例中,当前点的属性信息对应一个属性数组。
在一实施例中,属性数组包括如下一个或多个:
属性信息的属性值;
属性信息的属性残差。
在一实施例中,当前点的属性信息的至少一个属性分量对应一个属性数组。
在一实施例中,属性数组包括如下一个或多个:
属性分量的属性值;
属性分量的属性残差。
本实施例提出的编码装置与上述实施例提出的编码方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述任意实施例,并且本实施例具备与执行编码方法相同的有益效果。
本申请实施例还提供一种解码装置。图9为一实施例提供的一种解码装置的结构示意图。如图9所示,所述解码装置包括:
第一获取模块410,设置为获取点云的编码后的属性数据;
第二获取模块420,设置为获取所述点云中当前点的编码后的属性数据;
第三确定模块430,设置为确定所述当前点的编码后的属性数据对应的编码阶数;
第一解码模块440,设置为基于所述编码阶数对所述当前点的编码后的属性数据进行解码,得到所述当前点的属性数据;
第二解码模块450,设置为继续确定所述点云中下一当前点的属性数据,直至所述点云中所有点均解码完成。
本实施例的解码装置,通过基于所确定的当前点的编码后的属性数据对应的编码阶数,可以实现对当前点的编码后的属性数据的解码,利用该装置可以对点云中的每个点的编码后的属性数据采用对应的编码阶数进行解码,避免了采用固定阶数解码造成的解码性能低下等问题,有效提升了解码的灵活性和性能。。
在一实施例中,编码阶数的个数为一个。
在一实施例中,第一解码模块440,包括:
第一解码单元,设置为基于编码阶数对当前点的编码后的属性数据进行解码,得到当前点的属性数据。
在一实施例中,编码阶数的个数为至少两个。
在一实施例中,第一解码模块440,还包括:
第二解码单元,设置为针对每个编码阶数,基于编码阶数对当前点的编码后的属性数据进行解码,得到当前点的属性分量中对应编码阶数的属性分量的属性数据。
在一实施例中,第三确定模块430,包括:
第三阶数确定单元,设置为根据当前点的编码后的属性数据和/或点云中与当前点关联的点的编码后的属性数据,确定当前点的编码阶数。
在一实施例中,第三阶数确定单元,包括:
第二数组确定子单元,设置为根据当前点的编码后的属性数据和/或点云中与当前点关联的点的编码后的属性数据,确定当前点对应的属性数组;
第二阶数确定子单元,设置为基于属性数组,确定当前点的编码阶数。
在一实施例中,当前点的属性信息的编码后的属性数据对应一个属性数组。
在一实施例中,属性数组包括如下一个或多个:
属性信息的属性值;
属性信息的属性残差。在一实施例中,当前点的属性信息的至少一个属性分量的编码后的属性数据对应一个属性数组。
在一实施例中,属性数组包括如下一个或多个:
属性分量的属性值;
属性分量的属性残差。
在一实施例中,第三确定模块430,包括:
第四阶数确定单元,设置为根据点云中当前点的特征信息确定当前点的编码后的属性数据对应的编码阶数。
在一实施例中,基于属性数组,确定当前点的编码阶数,包括:
在属性数组中元素个数小于设定阈值的情况下,将初始阶数确定为编码阶数;
在属性数组中元素个数大于或等于设定阈值的情况下,根据属性数组中的元素取值确定编码阶数。
在一实施例中,根据属性数组中的元素取值确定编码阶数,包括:
基于属性数组中元素取值的平均值,确定编码阶数。
本实施例提出的解码装置与上述实施例提出的解码方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述任意实施例,并且本实施例具备与执行解码方法相同的有益效果。
本申请实施例还提供了一种通信节点,图10为一实施例提供的一种通信节点的硬件结构示意图,如图10所示,本申请提供的通信节点,可以包括第一终端、第二终端和第三终端,通信节点包括存储器520、处理器510以及存储在存储器上并可在处理器上运行的计算机程序,处理器510执行所述程序时实现上述的编码方法或解码方法。
通信节点还可以包括存储器520;该通信节点中的处理器510可以是一个或多个,图10中以一个处理器510为例;存储器520用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器510执行,使得所述一个或多个处理器510实现如本申请实施例中所述的编码方法或解码方法。
通信节点还包括:通信装置530、输入装置540和输出装置550。
通信节点中的处理器510、存储器520、通信装置530、输入装置540和输出装置550可以通过总线或其他方式连接,图10中以通过总线连接为例。
输入装置540可用于接收输入的数字或字符信息,以及产生与通信节点的用户设置以及功能控制有关的按键信号输入。输出装置550可包括显示屏等显示设备。
通信装置530可以包括接收器和发送器。通信装置530设置为根据处理器510的控制进行信息收发通信。
存储器520作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序以及模块,如本申请实施例所述编码方法或解码方法对应的程序指令/模块(例如,编码装置中的第一确定模块310、第二确定模块320、第一编码模块330和第二编码模块340;或,解码装置中的第一获取模块410、第二获取模块420、第三确定模块430、第一解码模块440和第二解码模块450)。存储器520可包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据通信节点的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器520可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至通信节点。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例中任一所述的编码方法或解码方法。
可选的,该编码方法,包括:确定点云的属性信息的待编码属性数据;
确定点云中当前点的编码阶数;
根据所述编码阶数对所述当前点的待编码属性数据进行编码;
继续确定点云中下一当前点的编码阶数并对所述下一当前点的待编码属性数据进行编码,直至所述点云内所有点均编码完成,得到编码后的属性数据。
可选的,该解码方法,包括:获取点云的编码后的属性数据;
获取所述点云中当前点的编码后的属性数据;
确定所述当前点的编码后的属性数据对应的编码阶数;
基于所述编码阶数对所述当前点的编码后的属性数据进行解码,得到所述当前点的属性数据;
继续确定所述点云中下一当前点的属性数据,直至所述点云中所有点均解码完成。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于:电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上所述,仅为本申请的示例性实施例而已,并非用于限定本申请的保护范围。
本领域内的技术人员应明白,术语用户终端涵盖任何适合类型的无线用户设备,例如移动电话、便携数据处理装置、便携网络浏览器或车载移动台。
一般来说,本申请的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理器或其它计算装置执行的固件或软件中,尽管本申请不限于此。
本申请的实施例可以通过移动装置的数据处理器执行计算机程序指令来实现,例如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。计算机程序指令可以是汇编指令、指令集架构(Instruction Set Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
本申请附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(Read-Only Memory,ROM)、随机访问存储器(Random Access Memory,RAM)、光存储器装置和***(数码多功能光碟(Digital Video Disc,DVD)或光盘(Compact Disk,CD)等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑器件(Field-Programmable Gate Array,FPGA)以及基于多核处理器架构的处理器。
通过示范性和非限制性的示例,上文已提供了对本申请的示范实施例的详细描述。但结合附图和权利要求来考虑,对以上实施例的多种修改和调整对本领域技术人员来说是显而易见的,但不偏离本申请的范围。因此,本申请的恰当范围将根据权利要求确定。
Claims (25)
1.一种编码方法,其特征在于,包括:
确定点云的属性信息的待编码属性数据;
确定点云中当前点的编码阶数;
根据所述编码阶数对所述当前点的待编码属性数据进行编码;
继续确定点云中下一当前点的编码阶数并对所述下一当前点的待编码属性数据进行编码,直至所述点云内所有点均编码完成,得到编码后的属性数据。
2.根据权利要求1所述的方法,其特征在于,所述编码阶数的个数为一个。
3.根据权利要求2所述的方法,其特征在于,所述根据所述编码阶数对所述当前点的待编码属性数据进行编码,包括:
对所述当前点的属性信息的待编码属性数据采用对应的编码阶数编码。
4.根据权利要求1所述的方法,其特征在于,所述编码阶数的个数为至少两个。
5.根据权利要求4所述的方法,其特征在于,所述根据所述编码阶数对所述当前点的待编码属性数据进行编码,包括:
对所述当前点的属性信息中每个属性分量的待编码属性数据分别采用对应的编码阶数编码。
6.根据权利要求1所述的方法,其特征在于,所述确定点云中当前点的编码阶数,包括:
根据点云中当前点的特征信息确定编码阶数。
7.根据权利要求1所述的方法,其特征在于,所述确定点云中当前点的编码阶数,包括:
根据所述当前点的属性信息和/或所述点云中与所述当前点关联的点的属性信息,确定所述当前点的编码阶数。
8.根据权利要求7所述的方法,其特征在于,所述根据所述当前点的属性信息和/或所述点云中与所述当前点关联的点的属性信息,确定所述当前点的编码阶数,包括:
根据所述当前点的属性信息和/或所述点云中与所述当前点关联的点的属性信息,确定所述当前点对应的属性数组;
根据所述属性数组,确定所述当前点的编码阶数。
9.根据权利要求8所述的方法,其特征在于,所述根据所述属性数组,确定所述当前点的编码阶数,包括:
在所述属性数组中元素个数小于设定阈值的情况下,将初始阶数确定为编码阶数;
在所述属性数组中元素个数大于或等于设定阈值的情况下,根据所述属性数组中的元素取值确定编码阶数。
10.根据权利要求9所述的方法,其特征在于,所述根据所述属性数组中的元素取值确定编码阶数,包括:
基于所述属性数组中元素取值的平均值,确定编码阶数。
11.根据权利要求8所述的方法,其特征在于,所述当前点的属性信息对应一个属性数组。
12.根据权利要求11所述的方法,其特征在于,所述属性数组包括如下一个或多个:
属性信息的属性值;
属性信息的属性残差。
13.根据权利要求8所述的方法,其特征在于,所述当前点的属性信息的至少一个属性分量对应一个属性数组。
14.根据权利要求13所述的方法,其特征在于,所述属性数组包括如下一个或多个:
属性分量的属性值;
属性分量的属性残差。
15.一种解码方法,其特征在于,包括:
获取点云的编码后的属性数据;
获取所述点云中当前点的编码后的属性数据;
确定所述当前点的编码后的属性数据对应的编码阶数;
基于所述编码阶数对所述当前点的编码后的属性数据进行解码,得到所述当前点的属性数据;
继续确定所述点云中下一当前点的属性数据,直至所述点云中所有点均解码完成。
16.根据权利要求15所述的方法,其特征在于,所述编码阶数的个数为一个。
17.根据权利要求16所述的方法,其特征在于,所述基于所述编码阶数对所述当前点的编码后的属性数据进行解码,得到所述当前点的属性数据,包括:
基于所述编码阶数对所述当前点的编码后的属性数据进行解码,得到所述当前点的属性数据。
18.根据权利要求15所述的方法,其特征在于,所述编码阶数的个数为至少两个。
19.根据权利要求18所述的方法,其特征在于,所述基于所述编码阶数对所述当前点的编码后的属性数据进行解码,得到所述当前点的属性数据,包括:
针对每个编码阶数,基于所述编码阶数对所述当前点的编码后的属性数据进行解码,得到所述当前点的属性分量中对应所述编码阶数的属性分量的属性数据。
20.根据权利要求15所述的方法,其特征在于,所述确定所述当前点的编码后的属性数据对应的编码阶数,包括:
根据所述当前点的编码后的属性数据和/或所述点云中与所述当前点关联的点的编码后的属性数据,确定所述当前点的编码阶数。
21.根据权利要求20所述的方法,其特征在于,所述根据所述当前点的编码后的属性数据和所述点云中与所述当前点关联的点的编码后的属性数据,确定所述当前点的编码阶数,包括:
根据所述当前点的编码后的属性数据和/或所述点云中与所述当前点关联的点的编码后的属性数据,确定所述当前点对应的属性数组;
基于所述属性数组,确定所述当前点的编码阶数。
22.根据权利要求21所述的方法,其特征在于,所述当前点的属性信息的编码后的属性数据对应一个属性数组。
23.根据权利要求21所述的方法,其特征在于,所述当前点的属性信息的至少一个属性分量的编码后的属性数据对应一个属性数组。
24.一种通信节点,其特征在于,包括:
存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-23中任一项所述的方法。
25.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-23中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210451656.XA CN116996674A (zh) | 2022-04-26 | 2022-04-26 | 一种编码方法、解码方法、通信节点及存储介质 |
PCT/CN2023/090000 WO2023207824A1 (zh) | 2022-04-26 | 2023-04-23 | 一种编码方法、解码方法、通信节点及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210451656.XA CN116996674A (zh) | 2022-04-26 | 2022-04-26 | 一种编码方法、解码方法、通信节点及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116996674A true CN116996674A (zh) | 2023-11-03 |
Family
ID=88517697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210451656.XA Pending CN116996674A (zh) | 2022-04-26 | 2022-04-26 | 一种编码方法、解码方法、通信节点及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116996674A (zh) |
WO (1) | WO2023207824A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR112020024566A2 (pt) * | 2018-06-14 | 2021-03-09 | Panasonic Intellectual Property Corporation Of America | Método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais |
CN111247798B (zh) * | 2019-01-10 | 2022-03-15 | 深圳市大疆创新科技有限公司 | 对三维数据点集进行编码或解码的方法和设备 |
US11317117B2 (en) * | 2020-03-30 | 2022-04-26 | Tencent America LLC | Method of coding attributes for point cloud coding |
CN111405281A (zh) * | 2020-03-30 | 2020-07-10 | 北京大学深圳研究生院 | 一种点云属性信息的编码方法、解码方法、存储介质及终端设备 |
-
2022
- 2022-04-26 CN CN202210451656.XA patent/CN116996674A/zh active Pending
-
2023
- 2023-04-23 WO PCT/CN2023/090000 patent/WO2023207824A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023207824A1 (zh) | 2023-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11956470B2 (en) | Predictor index signaling for predicting transform in geometry-based point cloud compression | |
JP2023510179A (ja) | ポイントクラウドデータ送信装置、送信方法、処理装置および処理方法 | |
US20210385303A1 (en) | Attribute residual coding in g-pcc | |
KR102300045B1 (ko) | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 | |
US11657543B2 (en) | Trisoup syntax signaling for geometry-based point cloud compression | |
US11651551B2 (en) | Coding of component of color attributes in geometry-based point cloud compression (G-PCC) | |
US20230224508A1 (en) | Point cloud decoding device, point cloud decoding method, and program | |
US20230222700A1 (en) | Point cloud decoding device, point cloud decoding method, and program | |
EP4272166A1 (en) | Hybrid-tree coding for inter and intra prediction for geometry coding | |
KR20230075426A (ko) | 포인트 클라우드 인코딩 및 디코딩 방법과 시스템 및 포인트 클라우드 인코더와 포인트 클라우드 디코더 | |
US20230342984A1 (en) | Inter prediction in point cloud compression | |
US20230222699A1 (en) | Point cloud decoding device, point cloud decoding method, and program | |
US20230222701A1 (en) | Point cloud decoding device, point cloud decoding method, and program | |
US12003768B2 (en) | Residual coding for geometry point cloud compression | |
CN116996674A (zh) | 一种编码方法、解码方法、通信节点及存储介质 | |
WO2023116443A1 (zh) | 点云编码方法、点云解码方法、通信节点及存储介质 | |
US20240037800A1 (en) | Encoding and decoding methods, related devices and storage medium | |
US20230177739A1 (en) | Local adaptive inter prediction for g-pcc | |
WO2022140937A1 (zh) | 点云编解码方法与***、及点云编码器与点云解码器 | |
CN115733990A (zh) | 点云编解码方法、设备及存储介质 | |
EP4320865A1 (en) | Residual coding for geometry point cloud compression | |
WO2024086808A1 (en) | Attribute coding for point cloud compression | |
WO2024086508A1 (en) | Predictive geometry coding of point cloud | |
CN115914651A (zh) | 点云编解码方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |