CN115714859A - 点云属性编码方法、点云属性解码方法及终端 - Google Patents
点云属性编码方法、点云属性解码方法及终端 Download PDFInfo
- Publication number
- CN115714859A CN115714859A CN202110970524.3A CN202110970524A CN115714859A CN 115714859 A CN115714859 A CN 115714859A CN 202110970524 A CN202110970524 A CN 202110970524A CN 115714859 A CN115714859 A CN 115714859A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- decoding
- target
- coding
- decoded
- 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 133
- 230000009466 transformation Effects 0.000 claims abstract description 180
- 238000013139 quantization Methods 0.000 claims abstract description 94
- 238000004364 calculation method Methods 0.000 claims description 37
- 238000006243 chemical reaction Methods 0.000 claims description 34
- 239000011159 matrix material Substances 0.000 claims description 19
- 238000006073 displacement reaction Methods 0.000 claims description 16
- 238000012163 sequencing technique Methods 0.000 claims description 16
- 108091026890 Coding region Proteins 0.000 claims description 11
- 230000003044 adaptive effect Effects 0.000 claims description 10
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000011895 specific detection Methods 0.000 description 1
Images
Classifications
-
- 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/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- 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/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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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/124—Quantisation
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- 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/48—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
-
- 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
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/64—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
- H04N19/645—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform
-
- 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/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种点云属性编码方法、点云属性解码方法及终端,属于点云处理技术领域,上述点云属性编码方法包括:获取待编码点云;基于待编码点云包含的编码点数量、编码点云对应的包围盒的体积信息和每个编码点的排序,将编码点云划分为至少一个编码点云块;对于每一包括至少两个编码点的编码点云块,基于编码点云块包含的编码点数量和预设最大变换阶数,将编码点云块划分为N个编码点云分组;对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数;对量化后的第一变换系数和第二目标编码点云分组对应的第二残差信息进行熵编码,生成目标码流。
Description
技术领域
本申请属于点云处理技术领域,具体涉及一种点云属性编码方法、点云属性解码方法及终端。
背景技术
点云是空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集。
点云的属性编码分为属性预测编码和属性变换编码,在属性预测编码过程中,在得到每个编码点对应的残差信息后,对该残差信息进行量化和熵编码,得到二进制码流;在属性变换编码过程中,在得到每个编码点对应的残差信息后,对该残差信息使用固定阶数的矩阵进行变换,得到变换系数。
在上述属性预测编码和属性变换编码过程中,均未考虑到各编码点对应的残差信息之间的相关性,导致残差信息和变换系数中存在冗余信息,这降低了点云的属性编码效率。此外,点云的属性解码过程与点云的属性编码过程一致,这也降低了点云的属性解码效率。
发明内容
本申请实施例提供一种点云属性编码方法、点云属性解码方法及终端,能够解决在属性编码和属性解码过程中,未考虑各编码点对应的残差信息之间的相关性,进而降低了点云的属性编解码效率。
第一方面,提供了一种点云属性编码方法,该方法包括:
获取待编码点云;所述待编码点云中的编码点按照预设编码顺序排序;
基于所述待编码点云包含的编码点数量、待编码点云对应的包围盒的体积信息和每个编码点的排序,将所述待编码点云划分为至少一个编码点云块;
对于每一包括至少两个编码点的编码点云块,基于所述编码点云块包含的编码点数量和预设最大变换阶数,将所述编码点云块划分为N个编码点云分组,N为正整数;
对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数;所述第一目标编码点云分组为至少部分所述N个编码点云分组,且所述第一目标编码点云分组为进行变换编码的编码点云分组;
对所述量化后的第一变换系数和第二目标编码点云分组对应的第二残差信息进行熵编码,生成目标码流;所述第二目标编码点云分组为所述N个编码点云分组中除所述第一目标编码点云分组之外的编码点云分组。
第二方面,提供了一种点云属性解码方法,该方法包括:
对待解码码流进行解码,得到待解码点云,所述待解码点云中的解码点按照预设编码顺序排序;
基于所述待解码点云包含的解码点数量、待解码点云对应的包围盒的体积信息和每个解码点的排序,将所述待解码点云划分为至少一个解码点云块;
对于每一包括至少两个解码点的解码点云块,基于所述解码点云块包含的解码点数量和预设最大变换阶数,将所述解码点云块划分为M个解码点云分组,M为正整数;
对第三目标解码点云分组对应的第二变换系数进行反量化处理,得到目标高频系数和目标低频系数;所述第三目标解码点云分组为至少部分所述M个解码点云分组,且所述第三目标解码点云分组为进行反量化处理的解码点云分组;
对所述目标高频系数和所述目标低频系数进行反变换处理,得到所述第三目标解码点云分组对应的第三残差信息。
第三方面,提供了一种编码器,包括:
第一获取模块,用于获取待编码点云;所述待编码点云中的编码点按照预设编码顺序排序;
第一划分模块,用于基于所述待编码点云包含的编码点数量、待编码点云对应的包围盒的体积信息和每个编码点的排序,将所述待编码点云划分为至少一个编码点云块;
第二划分模块,用于对于每一包括至少两个编码点的编码点云块,基于所述编码点云块包含的编码点数量和预设最大变换阶数,将所述编码点云块划分为N个编码点云分组,N为正整数;
第一编码模块,用于对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数;所述第一目标编码点云分组为至少部分所述N个编码点云分组,且所述第一目标编码点云分组为进行变换编码的编码点云分组;
第二编码模块,用于对所述量化后的第一变换系数和第二目标编码点云分组对应的第二残差信息进行熵编码,生成目标码流;所述第二目标编码点云分组为所述N个编码点云分组中除所述第一目标编码点云分组之外的编码点云分组。
第四方面,提供了一种解码器,包括:
解码模块,用于对待解码码流进行解码,得到待解码点云,所述待解码点云中的解码点按照预设编码顺序排序;
第三划分模块,用于基于所述待解码点云包含的解码点数量、待解码点云对应的包围盒的体积信息和每个解码点的排序,将所述待解码点云划分为至少一个解码点云块;
第四划分模块,用于对于每一包括至少两个解码点的解码点云块,基于所述解码点云块包含的解码点数量和预设最大变换阶数,将所述解码点云块划分为M个解码点云分组,M为正整数;
反量化模块,用于对第三目标解码点云分组对应的第二变换系数进行反量化处理,得到目标高频系数和目标低频系数;所述目标解码点云分组为至少部分所述M个解码点云分组,且所述第三目标解码点云分组为进行反量化处理的解码点云分组;
反变换模块,用于对所述目标高频系数和所述目标低频系数进行反变换处理,得到所述第三目标解码点云分组对应的第三残差信息。
第五方面,提供了一种终端,该终端包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的点云属性编码方法的步骤,或者实现如第二方面所述的点云属性解码方法的步骤。
第六方面,提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的点云属性编码方法的步骤,或者实现如第二方面所述的点云属性解码方法的步骤。
第七方面,提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的点云属性编码方法,或者实现如第二方面所述的点云属性解码方法的步骤。
第八方面,提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在非易失的存储介质中,所述程序/程序产品被至少一个处理器执行以实现如第一方面所述的点云属性编码方法的步骤,或者实现如第二方面所述的点云属性解码方法的步骤。
本申请实施例中,在得到待编码点云后,将待编码点云划分为至少一个编码点云块,并对每个编码点云块中的编码点进行点云分组,将编码点云块划分为N个编码点云分组。在变换编码过程中,充分考虑到各编码点对应的残差信息之间的相关性,对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数,其中,第一目标编码点云分组中的各编码点的残差信息之间存在相关性。进一步的,对量化后的第一变换系数和第二目标编码点云分组对应的第二残差信息进行熵编码,生成目标码流。上述编码过程充分考虑到各编码点对应的残差信息之间的相关性,通过对第一目标编码点云分组对应的第一残差信息进行变换编码,降低了变换系数中的冗余信息,以此提高了点云的属性编码效率。
附图说明
图1是点云AVS编码器框架示意图;
图2是点云AVS解码器框架示意图;
图3是现有的点云属性编码的流程图;
图4是本申请实施例提供的点云属性编码方法的流程图;
图5是本申请实施例提供的点云属性解码方法的流程图;
图6是本申请实施例提供的编码器的结构图;
图7是本申请实施例提供的解码器的结构图;
图8是本申请实施例提供的通信设备的结构图;
图9是本申请实施例提供的终端的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例中的点云属性编码方法对应的编码器和点云属性解码方法对应的解码器均可以为终端,该终端也可以称作终端设备或者用户终端(User Equipment,UE),终端可以是手机、平板电脑(Tablet Personal Computer)、膝上型电脑(Laptop Computer)或称为笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)、掌上电脑、上网本、超级移动个人计算机(ultra-mobile personal computer,UMPC)、移动上网装置(MobileInternet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴式设备(Wearable Device)或车载设备(VUE)、行人终端(PUE)等终端侧设备,可穿戴式设备包括:智能手表、手环、耳机、眼镜等。需要说明的是,在本申请实施例并不限定终端的具体类型。
为了方便理解,以下对本申请实施例涉及的一些内容进行说明:
请参阅图1,如图1所示,目前,在数字音视频编解码技术标准中,使用点云AVS编码器对点云的几何信息和属性信息是分开编码的。首先对几何信息进行坐标转换,使点云全部包含在一个包围盒(bounding box)中,然后再进行坐标量化。量化主要起到缩放的作用,由于量化会对几何坐标取整,使得一部分点的几何信息相同,称为重复点,根据参数来决定是否移除重复点,量化和移除重复点这两个步骤又被称为体素化过程。接下来,对包围盒进行多叉树划分,例如八叉树、四叉树或二叉树划分。在基于多叉树的几何信息编码框架中,将包围盒八等分为8个子立方体,对非空的的子立方体继续进行划分,直到划分得到叶子节点为1x1x1的单位立方体时停止划分,对叶子结点中的点数进行编码,生成二进制码流。
在对点云进行基于多叉树的几何编码中,待编码点需要存储邻居节点的占位信息来为待编码点的占位信息进行预测编码,这样,对于接近叶子节点的待编码点而言,需要存储大量的占位信息,占用了大量的内存空间。
几何编码完成后,对几何信息进行重建,用于后面的重着色。属性编码主要针对的是颜色和反射率信息。首先根据参数判断是否进行颜色空间转换,若进行颜色空间转换,则将颜色信息从红绿蓝(Red Green Blue,RGB)颜色空间转换到亮度色彩(YUV)颜色空间。然后,利用原始点云对几何重建点云进行重着色,使得未编码的属性信息与重建的几何信息对应起来。在颜色信息编码中,通过莫顿码或希尔伯特码对点云进行排序后,利用几何空间关系搜索待预测点的最近邻,并利用所找到邻居的重建属性值对待预测点进行预测得到预测属性值,然后将真实属性值和预测属性值进行差分得到预测残差,最后对预测残差进行量化并编码,生成二进制码流。
应理解,数字音视频编解码技术标准中的解码流程与上述编码流程对应,具体的,AVS解码器框架如图2所示。
请参阅图3,图3是现有的点云属性编码的流程图。现有的对点云进行属性编码的方式为:
首先由原始信号减去预测信号获得预测残差,该预测残差又称为残差信息。对该残差信息进行一次离散余弦变换(Discrete Cosine Transform,DCT),得到一次变换系数,该一次变换系数可以用一次变换系数块表示;对该一次变换系数块预设区域的低频分量进行二次变换,得到能量更为集中的二次变化系数,其中,如图3所示,该预设区域位于一次变换系数块的左上角。该二次变化系数可以用二次变换系数块表示;对该二次变换系数块预设区域的低频分量进行量化和熵编码,得到二进制码流。
此外,还可以将量化后的二次变换系数进行反向二次变换,得到一次变换系数,对一次变换系数进行反向一次变换,得到残差信息。进一步的,将该残差信息与预测属性值进行加法运算,得到重建信息,对该重建信息进行环路滤波处理,得到属性重建值。
其中,在某些特定编码场景中,上述二次变换和反向二次变换不会进行。
目前,通用点云技术标准具有以下技术问题:
在点云的属性编码过程中,未充分考虑到各编码点对应的残差信息之间的相关性,导致变换系数中仍存在部分冗余信息,导致点云的属性编码效率较低。
基于上述情况,如何在点云属性编码和属性解码过程中,充分利用各编码点对应的残差信息之间的相关性,进行属性编码和属性解码,以提高点云属性编码和点云属性解码效率,是一个待以解决的技术问题。
下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的点云属性编码方法进行详细地说明。
请参阅图4,图4是本申请提供的点云属性编码方法的流程图。本实施例提供的点云属性编码方法包括以下步骤:
S101,获取待编码点云。
本步骤中的待编码点云为经过重着色和颜色空间转换的点云,上述重着色是指利用原始点云对几何重建点云进行重着色,使得未编码的属性信息与重建的几何信息对应起来,得到重着色后的点云;上述颜色空间转换是指将点云的颜色信息从RGB空间转换到YUV空间。
其中,待编码点云可以理解为点云序列,待编码点云中的各编码点可以理解为该点云序列中的各个元素。点云序列中的待编码点按照预设编码顺序排序,可选的实施方式为,对点云序列中的待编码点进行希尔伯特排序,各待编码点按照希尔伯特码从大到小排序,或者对点云序列中的待编码点进行莫顿排序,按照莫顿码从大到小排序。
S102,基于所述待编码点云包含的编码点数量、待编码点云对应的包围盒的体积信息和每个编码点的排序,将所述待编码点云划分为至少一个编码点云块。
本步骤中,对待编码点云进行划分,得到编码点云块。其中,可以基于待编码点云包含的编码点数量、待解码点云对应的包围盒的体积信息和每个编码点的排序确定对待编码点云的划分方式,具体的技术方案请参阅后续实施例。
一种可选的实施方式为,编码点云块的数量为1,这种情况下,可以理解为将整个待编码点云视为一个编码点云块。
应理解,属于同一编码点云块的编码点对应的属性信息具有空间相关性,从而它们对应的属性信息也具有更强的相关性,也就是说,这些编码点在几何位置上更为接近,在颜色属性上更为相似。
应理解,若点云序列中的编码点按照希尔伯特码从大到小排序,则在对待编码点云进行划分后,属于同一编码点云块的编码点对应的希尔伯特码相同。
应理解,若待编码点云中的编码点按照莫顿码从大到小排序,则在对待编码点云进行划分后,属于同一编码点云块的编码点对应的莫顿码相同。
S103,对于每一包括至少两个编码点的编码点云块,基于所述编码点云块包含的编码点数量和预设最大变换阶数,将所述编码点云块划分为N个编码点云分组。
本步骤中,在对待编码点云划分为至少一个编码点云块后,对于包括至少两个编码点的编码点云块,对该编码点云块进行点云分组,将编码点云块划分为N个编码点云分组,N为正整数。应理解,可以使用编码点云块包含的编码点数量和预设最大变换阶数,对该编码点云块进行点云分组,具体的技术方案请参阅后续实施例。
一种可能存在的情况为,编码点云分组的数量为1,这种情况下,可以理解为将整个编码点云块视为1个编码点云分组。
应理解,在将编码点云块划分为N个编码点云分组,对于编码点云分组中的任一编码点,可以利用几何空间关系搜索该编码点的最近邻,并利用所找到邻居的重建属性值对该编码点进行预测得到预测属性值,然后将该编码点的真实属性值和预测属性值进行差分得到预测残差,上述预测残差又称为残差信息。以此,得到每个编码点云分组中每个编码点对应的残差信息。
S104,对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数。
本步骤中,可以将编码点云块中的全部编码点云分组确定为第一目标编码点云分组,或者,将编码点云块中的部分编码点云分组确定为第一目标编码点云分组,具体的如何确定目标编码点云分组的技术方案,请参阅后续实施例。
如上所述,在对编码点云块进行点云分组后,确定每个编码点云分组中每个编码点对应的残差信息。本步骤中,可以将第一目标点云分组中每个编码点对应的残差信息的集合,确定为第一目标编码点云分组对应的残差信息。
关于如何对第一目标编码点云分组对应的残差信息进行变换编码和量化处理,得到量化后的第一变换系数的具体技术方案,请参阅后续实施例。
S105,对所述量化后的第一变换系数和第二目标编码点云分组对应的第二残差信息进行熵编码,生成目标码流。
本步骤中,在得到第一变换系数和第二目标编码点云分组对应的残差信息后,对上述第一变换系数和第二残差信息进行熵编码,生成目标码流。
应理解,上述第二编码目标点云分组是N个编码点云分组中除第一目标编码点云分组之外的编码点云分组。
其中,熵编码是在编码过程中按熵原理不丢失任何信息的一种编码方式,上述熵编码可以是香农编码、哈夫曼编码或者其他类型的编码,本实施例在此不做具体限定。其中,上述目标码流为二进制码流。
应理解,在一些实施例中,可以对第一变换系数进行反量化和反变换操作,得到属性重建值。
本申请实施例中,在得到待编码点云后,将待编码点云划分为至少一个编码点云块,并对每个编码点云块中的编码点进行点云分组,将编码点云块划分为N个编码点云分组。在变换编码过程中,充分考虑到各编码点对应的残差信息之间的相关性,对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数,其中,第一目标编码点云分组中的各编码点的残差信息之间存在相关性;进一步的,对量化后的第一变换系数和第二目标编码点云分组对应的第二残差信息进行熵编码,生成目标码流。上述编码过程充分考虑到各编码点对应的残差信息之间的相关性,通过对第一目标编码点云分组对应的第一残差信息进行变换编码,降低了变换系数冗余信息,以此提高了点云的属性编码效率。
为便于理解本申请产生的技术效果,将本申请实施例提供的点云属性编码方法应用在PCEM平台上,检测点云的属性编码效率。具体的检测结果请参阅表一:
表一:
其中,表一中的BD-AttrRate表示变换系数中Y分量的压缩性能,BD-GeomRate 1表示变换系数中U分量的压缩性能,BD-GeomRate 2表示变换系数中V分量的压缩性能。表一中的序列为使用本申请实施例提供的点云属性编码方法和现有的点云属性编码方法对比后的码流序列,应理解,上述BD-AttrRate、BD-GeomRate 1和BD-GeomRate 2为负时表示性能变好,在此基础上BD-rate的绝对值越大,则性能的增益越大。
从表一中可以得到,使用本申请实施例提供的点云属性编码方法可以提高点云属性编码的编码性能。
可选地,所述基于所述待编码点云包含的编码点数量第一和每个编码点的排序,将所述待编码点云划分为至少一个编码点云块包括:
使用第一目标移位值,对每个编码点对应的排序码进行移位,得到每个编码点对应的第一目标排序码;所述目标移位值基于所述待编码点云包含的编码点数量和所述包围盒的体积信息确定;
将第一目标排序码相同的编码点划分在同一编码点云块。
本实施例中,对待编码点云的几何信息进行坐标转换,使点云全部包含在一个包围盒中。该包围盒可以理解为覆盖该待编码点云的一个六面体,且该六面体的每条棱位于上述坐标系中的X轴、Y轴或Z轴。基于该包围盒的大小,即包围盒在坐标系的X轴、Y轴和Z轴上对应的边长,确定待编码点云对应的第三移位参数。
获取待编码点云包含的编码点数量,基于编码点云包含的编码点数量,确定待编码点云对应的第四移位参数。
本实施例中还预设有移位计算公式,将上述第三移位参数和第四移位参数输入至移位计算公式中,得到待编码点云对应的第一目标移位值。其中,可以将上述包围盒对应的边长输入至第三移位参数计算公式中,得到第三移位参数;将待编码点云包含的编码点数量输入第四移位参数计算公式中,得到第四移位参数。
具体而言,上述移位计算公式与后续点云属性解码方法中的移位计算公式一致,上述第三移位参数计算公式与后续点云属性解码方法中的第三移位参数计算公式一致,上述第四移位参数计算公式与后续点云属性解码方法中的第四移位参数计算公式一致。
以下,以待编码点云中的编码点按照希尔伯特码从小到大排序为例进行阐述。
如上所述,待编码点云中的编码点按照希尔伯特码从小到大排序。在得到第一目标移位值后,使用第一目标移位值,对每个编码点对应的希尔伯特码向右进行移位,得到每个编码点对应的新的希尔伯特码,将上述新的希尔伯特码确定为目标希尔伯特码,目标希尔伯特码可以理解为目标排序码。应理解,上述第一目标移位值表征编码点在移位过程中的移动位数,上述第一目标移位值还可以表征待编码点云的疏密程度,目标移位值越小,则待编码点云中的各编码点越密集。
进一步的,根据各编码点对应的目标希尔伯特码对待编码点云进行划分,将目标希尔伯特码相同的编码点划分在同一编码点云块,也就是说,一个编码点云块中的每个编码点对应的目标希尔伯特码是相同的。
在其他实施例中,上述第一目标移位值可以自定义设置,或者,上述第一目标移位值可以基于编码点云的几何量化步长确定。
本实施例中,对待编码点云中的各编码点的希尔伯特码进行移位,根据移位后的各编码点对应的目标希尔伯特码,将待编码点云划分为编码点云块。其中,属于同一编码点云块中的编码点的目标希尔伯特码相同,从而认为这些点的属性信息之间具有更强的相关性,以此将属性信息具有空间相关性的编码点划分在同一编码点云块。
以下,具体阐述使用编码点云块包含的编码点数量和预设最大变换阶数,对该编码点云块进行点云分组的具体技术方案:
本实施例中,预设有最大变换阶数,上述预设最大变换阶数用于表征在变换编码的过程所使用的变换矩阵对应的最大阶数。获取编码点云块包含的编码点数量,在该编码点数量小于或等于预设最大变换阶数的情况下,将该编码点云块确定为1个编码点云分组,即不对该编码点云块进行点云分组。其中,可以将预设最大变换阶数写入码流。
在该编码点数量大于预设最大变换阶数的情况下,基于该编码点数量与第一预设数值,对该编码点云块进行点云分组,将编码点云块划分为至少两个编码点云分组。这里,基于编码点云块包含的编码点数量与第一预设数值,对该编码点云块进行点云分组的具体方案,请参阅后续实施例。
可选地,所述基于所述编码点云块包含的编码点数量与第一预设数值,将所述编码点云块划分为至少两个点云分组包括:
在第三数值大于预设最大变换阶数的情况下,使用所述第一预设数值对所述第三数值执行分组计算操作,得到第四数值;
按照所述编码点云块中编码点的预设编码顺序,将未进行点云分组的编码点中的至少部分编码点划分为一个编码点云分组,直到所有的编码点云块的所有编码点完成点云分组。
使用第三数值表示编码点云块未进行点云分组的编码点的数量,在第三数值大于预设最大变换阶数的情况下,使用第一预设数值对第三数值执行分组计算操作,得到第四数值,其中,第四数值小于预设最大变换阶数。这里,如何使用第一预设数值对第三数值执行分组计算操作,得到第四数值的具体方案,请参阅后续实施例。
在得到第四数值后,按照编码点云块中编码点的预设编码顺序,将未进行点云分组的编码点中的至少部分编码点划分为一个编码点云分组。也就是说,确定编码点云块中未进行点云分组的部分编码点,将这部分编码点划分至一个编码点云分组,或者,确定编码点云块中未进行点云分组的全部编码点,将这些编码点划分至一个编码点云分组。其中,上述划分至一个编码点云分组的编码点的数量等于第二数值。
将部分编码点进行点云分组后,更新第三数值,若更新后的第三数值仍然大于预设最大变换阶数,则继续对编码点云块中的至少部分编码点进行点云分组,直到编码点云块中的所有编码点完成点云分组。
以下,具体说明如何使用第一预设数值对第三数值执行分组计算操作,得到第四数值:
上述分组计算操作的过程为:对第三数值与第一预设数值做除法运算,得到除法结果;对该除法结果取整,得到目标数值。在目标数值大于预设最大变换阶数的情况下,将第三数值更新为目标数值,继续对该第三数值与第一预设数值做除法运算,直至目标数值小于或等于预设最大变换阶数,将目标数值确定为第四数值。
应理解,本实施例中对编码点云块进行点云分组的技术方案与后续对解码点云块进行点云分组的技术方案一致,这里不做重复阐述。
可选地,所述对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数之前,所述方法包括:
获取所述待编码点云中的第一变换标识;
在所述第一变换标识用于表征对全部编码点云分组进行变换编码的情况下,将所有编码点云分组确定为所述第一目标编码点云分组;
在所述第一变换标识用于表征对全部编码点云分组进行自适应变换编码的情况下,将所述N个编码点云分组中的至少一个编码点云分组确定为所述第一目标编码点云分组。
应理解,上述第一目标编码点云分组是指进行变换编码的点云分组,即第一目标编码点云分组中的每个编码点都需要进行变换编码。
本实施例中,待编码点云预先设置有第一变换标识,该第一变换标识又称为自适应变换标识,可以用AdpTransform表示,该第一变换标识可以自定义设置。
若AdpTransform=0,表示对全部编码点进行变换编码,即对全部编码点云分组进行变换编码,这种情况下,将所有编码点云分组确定为第一目标编码点云分组。
若AdpTransform=1,表示每个编码点云分组进行自适应变换编码,那么,需要根据每个编码点云分组的实际情况,确定是否对该编码点云分组进行变换编码,也就是说,将N个编码点云分组中的至少一个编码点云分组确定为第一目标编码点云分组。
应理解,编码点云块中的各个编码点云分组按照点云分组的分组时间先后顺序排序,将编码点云块中排序最前的编码点云分组确定为第三点云分组。
本实施例中,在编码点云块中预先设置有第四变换标识,在该第四变换标识用于表征对第三点云分组进行变换编码的情况下,将第三点云分组确定为第一目标编码点云分组。也就是说,在编码点云块中预先设置有第四变换标识,根据该第四变换标识确定第三点云分组是否为第一目标编码点云分组。
应理解,编码点云块中的各个编码点云分组按照点云分组的分组时间先后顺序排序,将编码点云块中除排序最前的编码点云分组之外的编码点云分组确定为第四点云分组。对于任一第四点云分组而言,将编码点云块中与该第四点云分组相邻,且位于第四点云分组之前的编码点云分组确定为相邻点云分组,将该相邻点云分组对应的重建信息中的最大值确定为第三重建值,将该相邻点云分组对应的重建信息中的最小值确定为第四重建值。
计算第三重建值与所述第四重建值之间的差值结果,并得到该差值结果的绝对值。进一步的,本实施例中还设置有第二预设数值,在绝对值小于第二预设数值的情况下,将第四点云分组确定为第一目标编码点云分组。
可选地,所述对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数包括:
计算变换矩阵与所述第一残差信息之间的乘积结果,将所述乘积结果确定为待量化的第一变换系数;
对所述待量化的第一变换系数进行量化,得到所述量化后的第一变换系数。
上述第一残差信息为第一目标编码点云分组对应的残差信息,如上所述,编码点云分组对应的残差信息为该编码分组各编码点对应的残差信息的集合,上述第一残差信息可以理解为1个一维的残差信息矩阵。
上述变换矩阵可以是离散正弦变换(Discrete Cosine Transform,DCT),或者离散正弦变换(Discrete Sine Transform,DST)矩阵,或者哈达玛变换矩阵,或者其他类型的变化矩阵。上述变换矩阵的变换阶数与第一目标编码点云分组包含的编码点数量相同,示例性的,第一目标编码点云分组包含的编码点数量为3,则变换矩阵的变换阶数也为3,变换矩阵为一个3*3的矩阵。
上述待量化的第一变换系数包括低频系数和高频系数,上述低频系数又称为DC系数,上述高频系数又称为AC系数。
将变换矩阵与第一目标编码点云分组对应的残差信息做乘法运算,得到待量化变换系数,示例性的,可以参考下述公式:
其中,上述公式中的DC表示低频系数,AC表示高频系数,AttrRes表示第一残差信息,T表示变换矩阵中的元素。从上述公式中可以得到,若第一目标编码点云分组包括K个编码点,则第一残差信息矩阵包括K个残差信息,待量化的第一变换系数包括1个低频系数,K-1个高频系数,变换矩阵的变换阶数为K。
上述待量化的第一变换系数的颜色属性为YUV颜色空间,可以将YUV颜色空间中的U分量和V分量确定为第一分量,将Y分量确定为第二分量。
对U分量和V分量中的高频系数,使用预设的第一量化步长进行量化,得到量化后的第三高频系数。
对U分量和V分量中的低频系数,使用预设的第二量化步长进行量化,得到量化后的第三低频系数。
对Y分量中的高频系数和低频系数,分布使用预设的第三量化步长进行量化,得到量化后的第四高频系数和第四低频系数。
本实施例中,将量化后的第三高频系数、量化后的第三低频系数、量化后的第四高频系数和量化后的第四低频系数确定为量化后的第一变换系数。
下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的点云属性解码方法进行详细地说明。
请参阅图5,图5是本申请提供的点云属性解码方法的流程图。本实施例提供的点云属性解码方法包括以下步骤:
S201,对待解码码流进行解码,得到待解码点云。
本步骤中,在得到待解码码流后,对待解码码流进行解码,得到待解码点云,上述待解码点云包括多个解码点,且待解码点云中的解码点按照预设编码顺序排序。其中,上述待解码点云的解码点可以按照希尔伯特码从大到小排序,或者按照莫顿码从大到小排序。
S202,基于所述待解码点云包含的解码点数量、待解码点云对应的包围盒的体积信息和每个解码点的排序,将所述待解码点云划分为至少一个解码点云块。
本步骤中,对待解码点云进行划分,得到解码点云块。其中,可以基于待解码点云包含的解码点数量、待解码点云对应的包围盒的体积信息和每个解码点的排序确定对待解码点云的划分方式,具体的技术方案请参阅后续实施例。
应理解,属于同一解码点云块的解码点对应的属性信息具有空间相关性,也就是说,这些解码点在几何位置上更为接近,在颜色属性上更为相似。
应理解,若待解码点云中的待解码点按照希尔伯特码从大到小排序,则在对待解码点云进行划分后,属于同一解码点云块的解码点对应的希尔伯特码相同。
应理解,若待解码点云中的待解码点按照莫顿码从大到小排序,则在对待解码点云进行划分后,属于同一解码点云块的解码点对应的莫顿码相同。
S203,对于每一包括至少两个解码点的解码点云块,基于所述待解码点云块包含的解码点数量和预设最大变换阶数,将所述解码点云块划分为M个解码点云分组。
本步骤中,在对待解码点云划分为至少一个解码点云块后,对于包括至少两个解码点的解码点云块,对该解码点云块进行点云分组,将解码点云块划分为M个解码点云分组,这里,将解码点云块划分为M个解码点云分组的实施方式请参阅实施例。
一种可能存在的情况为,解码点云分组的数量为1,这种情况下,可以理解为将整个解码点云块视为1个解码点云分组。
应理解,在将解码点云块划分为M个解码点云分组,对于解码点云分组中的任一解码点,可以利用几何空间关系搜索该解码点的最近邻,并利用所找到邻居的重建属性值对该解码点进行预测得到预测属性值,以得到每个解码点云分组中每个解码点对应的预测属性值,上述预测属性值又称预测信息。
S204,对第三目标解码点云分组对应的第二变换系数进行反量化处理,得到目标高频系数和目标低频系数。
所述第三目标解码点云分组为至少部分所述M个解码点云分组,且所述第三目标解码点云分组为进行反量化处理的解码点云分组
本步骤中,将M个解码点云分组中的至少部分解码点云分组确定为第三目标解码点云分组,应理解,第三目标解码点云分组为进行反量化处理的解码点云分组,具体的如何确定第三目标解码点云分组的技术方案请参阅后续实施例。
本步骤中,读取第三目标编码点云分组对应的第二变换系数,并对上述第二变换系数进行反量化处理,得到目标高频系数和目标低频系数。这里,具体的反量化处理的实施方式,请参阅后续实施例。
S205,对所述目标高频系数和所述目标低频系数进行反变换处理,得到所述第三目标解码点云分组对应的残差信息。
本步骤中,在得到目标高频系数和目标低频系数后,对目标高频系数和目标低频系数进行反变换处理,得到第三目标解码点云分组对应的残差信息。
可选的实施方式为,可以将M个解码点云分组中不进行反量化处理的解码点云分组确定为第四目标解码点云分组,对第四目标解码点云分组进行反量化处理,得到第四目标解码点云分组对应的残差信息。
如上所述,在将解码点云块划分为M个解码点云分组,对于解码点云分组中的任一解码点,可以利用几何空间关系搜索该解码点的最近邻,并利用所找到邻居的重建属性值对该解码点进行预测得到该编码点对应的预测信息。进一步的,在确定该编码点对应的残差信息后,可以将该解码点对应的残差信息与该解码点对应的预测信息相加,得到该解码点对应的属性信息重建。
本申请实施例提供的点云属性解码方法,充分考虑到各解码点对应的残差信息之间的相关性,通过对第三目标解码点云分组对应的第二变换系数进行反量化处理,得到第三目标解码点云分组对应的目标高频系数和目标低频系数,其中,第三目标解码点云分组中的各解码点的属性信息存在空间相关性。进一步的,对上述目标高频系数和目标低频系数进行反变换处理,得到第三目标解码点云分组对应的残差信息,进而降低了变换系数和残差信息中的冗余信息,以此提高了点云的属性解码效率。
可选地,所述基于所述待解码点云包含的解码点数量、待解码点云对应的包围盒的体积信息和每个解码点的排序,将所述待解码点云划分为至少一个解码点云块包括:
使用第二目标移位值,对每个解码点对应的排序码进行移位,得到每个解码点对应的第二目标排序码;
将第二目标排序码相同的解码点划分在同一解码点云块。
上述待解码点云中的解码点按照排序码从小到大排序,上述排序码包括希尔伯特码和莫顿码中的任意一种,也就是说,待解码点云中的解码点按照希尔伯特码从小到大排序,或者,待解码点云中的解码点按照莫顿码从小到大排序。
以下,以待解码点云中的解码点按照莫顿码从小到大排序为例,对方案进行阐述:
在得到第二目标移位值后,使用第二目标移位值,对每个解码点对应的希尔伯特码向右进行移位,得到每个解码点对应的新的希尔伯特码,将上述新的希尔伯特码确定为目标希尔伯特码,上述目标希尔伯特码可以理解为第二目标排序码。
应理解,上述第二目标移位值表征解码点在移位过程中的移动位数,上述第二目标移位值还可以表征待解码点云的疏密程度,目标移位值越小,则待解码点云中的各解码点越密集。
进一步的,根据各解码点对应的目标希尔伯特码对待解码点云进行划分,将目标希尔伯特码相同的解码点划分在同一解码点云块,也就是说,一个解码点云块中的每个解码点对应的目标希尔伯特码是相同的。
本实施例中,对待解码点云中的各解码点的排序码进行移位,根据移位后的各解码点对应的第二目标排序码,将待解码点云划分为解码点云块。其中,属于同一解码点云块中的解码点的第二目标排序码相同,表示这些解码点的属性信息具有空间相关性,以此将属性信息具有空间相关性的解码点划分在同一解码点云块。
可选地,所述使用第二目标移位值,对每个解码点对应的排序码进行移位,得到每个解码点对应的第二目标排序码之前,所述方法包括:
基于第一移位参数和第二移位参数,确定所述第二目标移位值;或者
基于所述待解码点云对应的几何量化步长,确定所述第二目标移位值;或者
将预设移位值确定为所述第二目标移位值;或者
从所述待解码码流中获得所述第二目标移位值。
本实施例中,本实施例中,对待解码点云的几何信息进行坐标转换,使点云全部包含在一个包围盒中。其中,可以以待解码点云为中心形成三维直角坐标系,该包围盒可以理解为覆盖该待解码点云的一个六面体,且该六面体的每条棱位于上述坐标系中的X轴、Y轴或Z轴。基于该包围盒的大小,即包围盒在坐标系的X轴、Y轴和Z轴上对应的边长,确定待解码点云对应的第一移位参数。
获取待解码点云包含的解码点数量,基于解码点云包含的解码点数量,确定待解码点云对应的第二移位参数。
本实施例中还预设有移位计算公式、第一移位参数计算公式和第二移位参数计算公式。将上述第一移位参数和第二移位参数输入至计算公式中,得到待解码点云对应的第二目标移位值。其中,可以将上述包围盒对应的边长输入至第一移位参数计算公式中,得到第一移位参数;将待解码点云包含的解码点数量输入第二移位参数计算公式中,得到第二移位参数。
具体而言,上述移位计算公式、第一移位参数计算公式和第二移位参数计算公式如下所示:
MaxBits=log2x+log2y+log2z
MinBits=log2voxelCount
其中,shiftBits表示第二目标移位值,MaxBits表示第一移位参数,MinBits表示第二移位参数,x表示包围盒在坐标系的X轴对应的边长,y表示包围盒在坐标系的Y轴对应的边长,z表示包围盒在坐标系的Z轴对应的边长,voxelCount表示待解码点云包含的解码点数量。
例如,在第一移位参数为9,第二移位参数为3的情况下,第二目标移位值为3。
可选的实施方式为,上述第二目标移位值可以基于解码点云的几何量化步长确定,例如,将第二目标移位值设置为几何量化步长对应的数值,或者将几何量化步长对应的数值与预设数值的加法结果作为第二目标移位值。
可选的实施方式为,上述第二目标移位值可以自定义设置。
可选的实施方式为,可以从待解码码流中读取该第二目标移位值。
可选地,所述基于所述解码点云块包含的解码点数量和预设最大变换阶数,将所述解码点云块划分为M个解码点云分组包括:
在所述解码点云块包含的解码点数量小于或等于所述预设最大变换阶数的情况下,将所述解码点云块确定为1个解码点云分组;
在所述解码点云块包含的解码点数量大于所述预设最大变换阶数的情况下,基于所述解码点云块包含的解码点数量与第一预设数值,将所述解码点云块划分为至少两个解码点云分组。
本实施例中,预设有最大变换阶数,上述预设最大变换阶数用于表征在反变换处理的过程中所使用的变换矩阵对应的最大阶数。获取编码点云块包含的编码点数量,在该编码点数量小于或等于预设最大变换阶数的情况下,将该编码点云块确定为1个编码点云分组,即不对该编码点云块进行点云分组。
在该编码点数量大于预设最大变换阶数的情况下,基于该编码点数量与第一预设数值,对该编码点云块进行点云分组,将编码点云块划分为至少两个编码点云分组。这里,基于编码点云块包含的编码点数量与第一预设数值,对该编码点云块进行点云分组的具体方案,请参阅后续实施例。
可选地,所述基于所述解码点云块包含的解码点数量与第一预设数值,将所述解码点云块划分为至少两个解码点云分组包括:
在第一数值大于预设最大变换阶数的情况下,使用所述第一预设数值对所述第一数值执行分组计算操作,得到第二数值;
按照所述解码点云块中解码点的预设解码顺序,将未进行点云分组的解码点中的至少部分解码点划分为一个解码点云分组,直到所有的解码点云块的所有解码点完成点云分组。
上述第一数值表示解码点云块未进行点云分组的解码点的数量,在第一数值大于预设最大变换阶数的情况下,使用第一预设数值对第一数值执行分组计算操作,得到第二数值,其中,第二数值小于预设最大变换阶数。这里,如何使用第一预设数值对第一数值执行分组计算操作,得到第二数值的具体方案,请参阅后续实施例。
在得到第二数值后,按照解码点云块中解码点的预设解码顺序,将未进行点云分组的解码点中的至少部分解码点划分为一个解码点云分组。也就是说,确定解码点云块中未进行点云分组的部分解码点,将这部分解码点划分至一个解码点云分组,或者,确定解码点云块中未进行点云分组的全部解码点,将这些解码点划分至一个解码点云分组。其中,上述划分至一个解码点云分组的解码点的数量等于第二数值。
将部分解码点进行点云分组后,更新第一数值,若更新后的第一数值仍然大于预设最大变换阶数,则继续对解码点云块中的至少部分解码点进行点云分组,直到解码点云块中的所有解码点完成点云分组。
可选地,所述使用所述第一预设数值对所述第一数值执行分组计算操作,得到第二数值包括:
在第一数值大于预设最大变换阶数的情况下,对所述第一数值与第一预设数值之间的除法结果取整,得到目标数值;
将所述第一数值更新为所述目标数值,直至所述目标数值小于或等于预设最大变换阶数,确定所述第二数值为所述目标数值。
上述分组计算操作的过程为:对第一数值与第一预设数值做除法运算,得到除法结果;对该除法结果取整,得到目标数值,其中,可以对除法结果向上取整或向下取整或四舍五入取整。在目标数值大于预设最大变换阶数的情况下,将第一数值更新为目标数值,继续对该第一数值与第一预设数值做除法运算,直至目标数值小于或等于预设最大变换阶数,将目标数值确定为第二数值。
为详尽阐述对解码点云块进行点云分组的技术方案,实例说明如下:
判断Mj1与Kmax之间的大小关系,上述Mj1表征解码点云块未进行点云分组的解码点的数量,即第一数值,上述Kmax等于预设最大变换阶数。若Mj1大于Kj,则对第一数值做分组计算操作:即对第一数值与2的除法结果向下取整,得到目标数值,其中,上述公式中的Mj表征目标数值,上述第一预设数值为2。应理解,在其他实施例中,上述第一预设数值可以自定义设置。
在目标数值大于Kmax的情况下,将第一数值更新为目标数值,并重复上述分组计算操作,直至第一数值小于或等于预设最大变换阶数。这种情况下,将最后更新的Mj1确定为第二数值,并按照解码块中各解码点的预设解码顺序,将部分解码点划分至一个解码点云分组中,其中,上述部分解码点的数量与第二数值相同。
然后,判断Mj2与Kj之间的大小关系,上述Mj2表征解码点云块未进行点云分组的解码点的数量,由于在上述步骤中已经对部分解码点进行了点云分组,因此Mj2的值等于解码点云块中全部解码点的数量与最后更新的Mj1之间的差值,也就是说,Mj2的值小于Mj1的值。若Mj2大于Kj,则对Mj2做分组计算操作,并根据计算结果,对解码块进行点云分组,具体的实施方式与上述根据Mj1对解码块进行点云分组的实施方式一致,这里不做重复阐述。
直至解码点云块未进行点云分组的解码点的数量小于或等于Kj,停止对解码块进行点云分组。
进一步的,请参考以下示例:
设解码点云块中包括12个未进行点云分组的解码点,预设最大变换阶数为5,第一预设值为2。
这种情况下,将第一数值12与第一预设值2做分组计算操作,得到目标数值6。又目标数值6大于预设最大变换阶数5,将第一数值更新为目标数值,即将第一数值更新为6。对更新后的第一数值6做分组计算操作,得到目标数值3,此时目标数值3小于预设最大变换阶数5,则按照解码点云块中各解码点的预设解码顺序,选取3个解码点划分至同一解码点云分组中。
在对解码点云块进行一次点云分组后,第一数值更新为9,将第一数值9与第一预设值2做分组计算操作,得到目标数值4。又目标数值4小于预设最大变换阶数5,按照解码点云块中各解码点的预设解码顺序,选取4个解码点划分至同一解码点云分组中。
在对解码点云块进行两次点云分组后,第一数值更新为5。又第一数值5与预设最大变换阶数5相同,则按照解码点云块中各解码点的预设解码顺序,选取5个解码点划分至同一解码点云分组中。
综上所述,对于包括12个未进行点云分组的解码点的解码点云块,可以将该解码点云块划分为3个点云分组,且这3个点云分组对应的解码点数量分别为3,4和5。
可选地,所述对第三目标解码点云分组对应的第二变换系数进行反量化处理,得到目标高频系数和目标低频系数之前,所述方法包括:
获取所述待解码点云中的第二变换标识;
在所述第二变换标识用于表征对全部解码点云分组进行反变换的情况下,将所有解码点云分组确定为所述第三目标解码点云分组;
在所述第二变换标识用于表征对全部解码点云分组进行自适应反变换的情况下,将所述M个解码点云分组中的至少一个解码点云分组确定为所述第三目标解码点云分组。
应理解,上述第三目标解码点云分组是指进行反变换的点云分组,即第三目标解码点云分组中的每个解码点都需要进行反变换。
本实施例中,待解码点云预先设置有第二变换标识,该第二变换标识又称为自适应变换标识,可选地,上述第二变换标识与第一变换标识为同一变换标识,该第二变换标识可以用AdpTransform表示,应理解,该第二变换标识可以自定义设置。
若AdpTransform=0,表示对全部解码点进行反变换,这种情况下,将所有解码点云分组确定为第三目标解码点云分组。
若AdpTransform=1,表示每个解码点云分组进行自适应反变换,那么,需要根据每个解码点云分组的实际情况,确定是否对该解码点云分组进行反变换,这种情况下,将N个解码点云分组中的至少一个解码点云分组确定为目标解码点云分组。
可选地,所述将所述M个解码点云分组中的至少一个解码点云分组确定为所述第三目标解码点云分组包括:
获取所述第一点云分组对应的第三变换标识;
在所述第三变换标识用于表征对所述第一点云分组进行反变换的情况下,将所述第一点云分组确定为所述第三目标解码点云分组。
应理解,解码点云块中的各个解码点云分组按照点云分组的分组时间先后顺序排序,将解码点云块中排序最前的解码点云分组确定为第一点云分组。
本实施例中,在解码点云块中预先设置有第三变换标识,在该第三变换标识用于表征对第一点云分组进行反变换的情况下,将第一点云分组确定为第三目标解码点云分组。也就是说,在解码点云块中预先设置有第三变换标识,根据该第三变换标识确定第一点云分组是否为第三目标解码点云分组。
可选地,所述将所述M个解码点云分组中的至少一个解码点云分组确定为所述第三目标解码点云分组包括:
对于任一第二点云分组,确定所述第二点云分组对应的第一重建值和第二重建值;
计算所述第一重建值与所述第二重建值的差值的绝对值;
在所述绝对值小于第二预设数值的情况下,将所述第二点云分组确定为第三目标解码点云分组。
应理解,解码点云块中的各个解码点云分组按照点云分组的分组时间先后顺序排序,将解码点云块中除排序最前的解码点云分组之外的解码点云分组确定为第二点云分组。例如,解码点云块包括3个解码点云分组,将排序第二和排序第三的解码点云分组,确定为第二点云分组。
对于任一第二点云分组而言,将解码点云块中与该第二点云分组相邻,且位于第二点云分组之前的解码点云分组确定为相邻点云分组,将该相邻点云分组对应的重建信息中的最大值确定为上述第一重建值,将该相邻点云分组对应的重建信息中的最小值确定为上述第二重建值。
应理解,该相邻点云分组对应的重建信息是相邻点云分组中各解码点对应的重建信息的集合,也就是说,上述第一重建值是相邻点云分组中各解码点对应的重建信息中的最大值,上述第二重建值是相邻点云分组中各解码点对应的重建信息中的最小值。
计算第一重建值与所述第二重建值之间的差值结果,并得到该差值结果的绝对值。进一步的,本实施例中还设置有第二预设数值,在绝对值小于第二预设数值的情况下,将第二点云分组确定为第三目标解码点云分组。
应理解,上述第三变换标识可以表示为TransformFlag,若TransformFlag=1,则将该解码点云分组确定为第三目标解码点云分组;若TransformFlag=0,则不将该解码点云分组确定为第三目标解码点云分组。
为便于理解,可以引入下述公式对本实施例的技术方案进一步说明:
在|AttRecmax-AttRecmin|≥Threshold的情况下,设置TransformFlag=0,不将解码点云分组确定为第三目标解码点云分组。
其中,AttRecmax表征第一重建值,AttRecmin表征第二重建值,Threshold表征第二预设数值。
在|AttRecmax-AttRecmin|<Threshold的情况下,设置TransformFlag=1,将解码点云分组确定为第三目标解码点云分组。
可选地,所述对第三目标解码点云分组对应的第二变换系数进行反量化处理,得到目标高频系数和目标低频系数包括:
分别使用预设的第一量化步长和预设的第二量化步长,对所述第一高频系数和所述第一低频系数进行反量化,得到反量化后的第一高频系数和反量化后的第一低频系数;
使用预设的第三量化步长对所述第二高频系数和所述第二低频系数进行量化,得到反量化后的第二高频系数和反量化后的第二低频系数;
将所述反量化后的第一高频系数和所述反量化后的第二高频系数,确定为所述目标高频系数;
将所述反量化后的第一低频系数和所述反量化后的第二低频系数,确定为所述目标低频系数。
上述第二变换系数的颜色属性为YUV颜色空间,可以将YUV颜色空间中的U分量和V分量确定为第一分量,将Y分量确定为第二分量,将第一分量中的高频系数确定为第一高频系数,将第一分量中的低频系数确定为第一低频系数,将第二分量中的高频系数确定为第二高频系数,将第二分量中的低频系数确定为第二低频系数。
对于第一高频系数,使用预设的第一量化步长对第一高频系数进行反量化,得到反量化后的第一高频系数。其中,第一量化步长等于初始步长、变换步长和高频步长的和值,上述初始步长、变换步长和高频步长均可以自定义设置。
应理解,可以通过下述公式确定第一量化步长:
Qfin1=Qori+Offsetcoeff+OffsetAC
其中,Qfin1表示第一量化步长,Qori表示初始步长,Offsetcoeff表示变换步长,OffsetAC表示高频步长。
对于第一低频系数,使用预设的第二量化步长对第一低频系数进行反量化,得到反量化后的第一低频系数。其中,第二量化步长等于初始步长、变换步长和低频步长的和值,上述初始步长、变换步长和低频步长均可以自定义设置。
应理解,可以通过下述公式确定第二量化步长:
Qfin2=Qori+Offsetcoeff+OffsetDC
其中,Qfin2表示第二量化步长,OffsetDC表示低频步长。
对于第二高频系数和第二低频系数,使用预设的第三量化步长对第二高频系数和第二低频系数进行反量化,得到反量化后的第二高频系数和量化后的第二低频系数。其中,第三量化步长等于初始步长、变换步长和低频步长的和值,或者,第三量化步长等于初始步长、变换步长和高频步长的和值,上述初始步长、变换步长、高频步长和低频步长均可以自定义设置,且上述高频步长和低频步长相同。
应理解,可以通过下述公式确定第三量化步长:
Qfin3=Qori+Offsetcoeff+OffsetDC
其中,Qfin3表示第三量化步长,上述公式中的OffsetDC也可以用OffsetAC替换。
本实施例中,将反量化后的第一高频系数和反量化后的第二高频系数,确定为目标高频系数;将反量化后的第一低频系数和反量化后的第二低频系数,确定为目标低频系数。
需要说明的是,本申请实施例提供的点云属性编码方法,执行主体可以为编码器,或者,该编码器中的用于执行点云属性编码的方法的控制模块。本申请实施例中以编码器执行点云属性编码方法为例,说明本申请实施例提供的编码器。
如图6所示,编码器300包括:
第一获取模块301,用于获取待编码点云;
第一划分模块302,用于基于所述待编码点云包含的编码点数量、待编码点云对应的包围盒的体积信息和每个编码点的排序,将所述待编码点云划分为至少一个编码点云块;
第二划分模块303,用于对于每一包括至少两个编码点的编码点云块,基于所述编码点云块包含的编码点数量和预设最大变换阶数,将所述编码点云块划分为N个编码点云分组;
第一编码模块304,用于对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数;第二编码模块305,用于对所述量化后的第一变换系数和第二目标编码点云分组对应的第二残差信息进行熵编码,生成目标码流。
可选地,所述第一划分模块302具体用于:
使用第一目标移位值,对每个编码点对应的排序码进行移位,得到每个编码点对应的第一目标排序码;
将第一目标排序码相同的编码点划分在同一编码点云块。
可选地,所述第二划分模块303具体用于:
在所述编码点云块包含的编码点数量小于或等于所述预设最大变换阶数的情况下,将所述编码点云块确定为1个编码点云分组;
在所述编码点云块包含的编码点数量大于所述预设最大变换阶数的情况下,基于所述编码点云块包含的编码点数量与第一预设数值,将所述编码点云块划分为至少两个编码点云分组。
可选地,所述编码器300还包括:
第二获取模块,用于获取所述待编码点云中的第一变换标识;
第一确定模块,用于在所述第一变换标识用于表征对全部编码点云分组进行变换编码的情况下,将所有编码点云分组确定为所述第一目标编码点云分组;
第二确定模块,用于在所述第一变换标识用于表征对全部编码点云分组进行自适应变换编码的情况下,将所述N个编码点云分组中的至少一个编码点云分组确定为所述第一目标编码点云分组。
可选地,所述第一编码模块304具体用于:
计算变换矩阵与所述第一残差信息之间的乘积结果,将所述乘积结果确定为待量化的第一变换系数;
对所述待量化的第一变换系数进行量化,得到所述量化后的第一变换系数。
本申请实施例提供的编码器能够实现图4的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例提供的点云属性解码方法,执行主体可以为解码器,或者,该解码器中的用于执行点云属性解码的方法的控制模块。本申请实施例中以解码器执行点云属性解码方法为例,说明本申请实施例提供的解码器。
如图7所示,解码器400包括:
解码模块401,用于对待解码码流进行解码,得到待解码点云;
第三划分模块402,用于基于所述待解码点云包含的解码点数量、待解码点云对应的包围盒的体积信息和每个解码点的排序,将所述待解码点云划分为至少一个解码点云块;
第四划分模块403,用于对于每一包括至少两个解码点的解码点云块,基于所述解码点云块包含的解码点数量和预设最大变换阶数,将所述解码点云块划分为M个解码点云分组;
反量化模块404,用于对第三目标解码点云分组对应的变换系数进行反量化处理,得到目标高频系数和目标低频系数;
反变换模块405,用于对所述目标高频系数和所述目标低频系数进行反变换处理,得到所述目标解码点云分组对应的第三残差信息。
可选地,所述第三划分模块402具体用于:
使用第二目标移位值,对每个解码点对应的排序码进行移位,得到每个解码点对应的第二目标排序码;
将第二目标排序码相同的解码点划分在同一解码点云块。
可选地,所述第三划分模块402具体用于:
基于第一移位参数和第二移位参数,确定所述第二目标移位值;或者
基于所述待解码点云对应的几何量化步长,确定所述第二目标移位值;或者
将预设移位值确定为所述第二目标移位值;或者
从所述待解码码流中获得所述第二目标移位值。
可选地,所述第四划分模块403具体用于:
在所述解码点云块包含的解码点数量小于或等于所述预设最大变换阶数的情况下,将所述解码点云块确定为1个解码点云分组;
在所述解码点云块包含的解码点数量大于所述预设最大变换阶数的情况下,基于所述解码点云块包含的解码点数量与第一预设数值,将所述解码点云块划分为至少两个解码点云分组。
可选地,所述第四划分模块403具体用于:
在第一数值大于预设最大变换阶数的情况下,使用所述第一预设数值对所述第一数值执行分组计算操作,得到第二数值;
按照所述解码点云块中解码点的预设解码顺序,将未进行点云分组的解码点中的至少部分解码点划分为一个解码点云分组,直到所有的解码点云块的所有解码点完成点云分组,所述至少部分解码点的数量等于所述第二数值。
可选地,所述第四划分模块403具体用于:
在第一数值大于预设最大变换阶数的情况下,对所述第一数值与第一预设数值之间的除法结果取整,得到目标数值;
将所述第一数值更新为所述目标数值,直至所述目标数值小于或等于预设最大变换阶数,确定所述第二数值为所述目标数值。
可选地,所述解码器400还包括:
第三获取模块,用于获取所述待解码点云中的第二变换标识;
第三确定模块,用于在所述第二变换标识用于表征对全部解码点云分组进行反变换的情况下,将所有解码点云分组确定为所述第三目标解码点云分组;
第四确定模块,用于在所述第二变换标识用于表征对全部解码点云分组进行自适应反变换的情况下,将所述M个解码点云分组中的至少一个解码点云分组确定为所述第三目标解码点云分组。
可选地,所述第三确定模块具体用于:
获取所述第一点云分组对应的第三变换标识;
在所述第三变换标识用于表征对所述第一点云分组进行反变换的情况下,将所述第一点云分组确定为所述第三目标解码点云分组。
可选地,所述第四确定模块具体用于:
对于任一第二点云分组,确定所述第二点云分组对应的第一重建值和第二重建值;
计算所述第一重建值与所述第二重建值的差值的绝对值;
在所述绝对值小于第二预设数值的情况下,将所述第二点云分组确定为第三目标解码点云分组。
可选地,所述反量化模块404具体用于:
分别使用预设的第一量化步长和预设的第二量化步长,对所述第一高频系数和所述第一低频系数进行反量化,得到反量化后的第一高频系数和反量化后的第一低频系数;
使用预设的第三量化步长对所述第二高频系数和所述第二低频系数进行量化,得到反量化后的第二高频系数和反量化后的第二低频系数;
将所述反量化后的第一高频系数和所述反量化后的第二高频系数,确定为所述目标高频系数;
将所述反量化后的第一低频系数和所述反量化后的第二低频系数,确定为所述目标低频系数。
本申请实施例中,在得到待编码点云后,将待编码点云划分为至少一个编码点云块,并对每个编码点云块中的编码点进行点云分组,将编码点云块划分为N个编码点云分组。在变换编码过程中,充分考虑到各编码点对应的残差信息之间的相关性,对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数,其中,第一目标编码点云分组中的各编码点的残差信息之间存在相关性。进一步的,对量化后的第一变换系数和第二目标编码点云分组对应的第二残差信息进行熵编码,生成目标码流。上述编码过程充分考虑到各编码点对应的残差信息之间的相关性,通过对第一目标编码点云分组对应的第一残差信息进行变换编码,降低了变换系数和残差信息中的冗余信息,以此提高了点云的属性编码效率。
本申请实施例中的编码器和解码器可以是装置,具有操作系统的装置或电子设备,也可以是终端中的部件、集成电路、或芯片。该装置或电子设备可以是移动终端,也可以为非移动终端。示例性的,移动终端可以包括但不限于上述所列举的终端11的类型,非移动终端可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例提供的编码器能够实现图4的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例提供的解码器能够实现图5的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
可选地,如图8所示,本申请实施例还提供一种通信设备500,包括处理器501,存储器502,存储在存储器502上并可在所述处理器501上运行的程序或指令,例如,该通信设备500为终端时,该程序或指令被处理器501执行时实现上述点云属性编码方法实施例的各个过程,且能达到相同的技术效果,或实现上述点云属性解码方法实施例的各个过程,且能达到相同的技术效果。
本申请实施例还提供一种终端,包括处理器和通信接口,处理器用于执行以下操作:
获取待编码点云;
基于所述待编码点云包含的编码点数量、待编码点云对应的包围盒的体积信息和每个编码点的排序,将所述待编码点云划分为至少一个编码点云块;
对于每一包括至少两个编码点的编码点云块,基于所述编码点云块包含的编码点数量和预设最大变换阶数,将所述编码点云块划分为N个编码点云分组;
对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数;
对所述量化后的第一变换系数和第二目标编码点云分组对应的第二残差信息进行熵编码,生成目标码流。
或者,处理器用于执行以下操作:
对待解码码流进行解码,得到待解码点云;
基于所述待解码点云包含的解码点数量、待解码点云对应的包围盒的体积信息和每个解码点的排序,将所述待解码点云划分为至少一个解码点云块;
对于每一包括至少两个解码点的解码点云块,基于所述解码点云块包含的解码点数量和预设最大变换阶数,将所述解码点云块划分为M个解码点云分组;
对第三目标解码点云分组对应的第二变换系数进行反量化处理,得到目标高频系数和目标低频系数;对所述目标高频系数和所述目标低频系数进行反变换处理,得到所述第三目标解码点云分组对应的残差信息。
该终端实施例是与上述终端侧方法实施例对应的,上述方法实施例的各个实施过程和实现方式均可适用于该终端实施例中,且能达到相同的技术效果。具体地,图8为实现本申请实施例的一种终端的硬件结构示意图。
该终端1000包括但不限于:射频单元1001、网络模块1002、音频输出单元1003、输入单元1004、传感器1005、显示单元1006、用户输入单元1007、接口单元1008、存储器1009、以及处理器1010等部件。
本领域技术人员可以理解,终端1000还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1010逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图9中示出的终端结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
应理解的是,本申请实施例中,输入单元1004可以包括图形处理器(GraphicsProcessing Unit,GPU)10041和麦克风10042,图形处理器10041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元1006可包括显示面板10061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板10071。用户输入单元1007包括触控面板10071以及其他输入设备10072。触控面板10071,也称为触摸屏。触控面板10071可包括触摸检测装置和触摸控制器两个部分。其他输入设备10072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
本申请实施例中,射频单元1001将来自网络侧设备的下行数据接收后,给处理器1010处理;另外,将上行的数据发送给网络侧设备。通常,射频单元1001包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。
存储器1009可用于存储软件程序或指令以及各种数据。存储器1009可主要包括存储程序或指令区和存储数据区,其中,存储程序或指令区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器1009可以包括高速随机存取存储器,还可以包括非易失性存储器,其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
处理器1010可包括一个或多个处理单元;可选的,处理器1010可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序或指令等,调制解调处理器主要处理无线通信,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器1010中。
其中,处理器用于执行以下操作:
获取待编码点云;
基于所述待编码点云包含的编码点数量、待编码点云对应的包围盒的体积信息和每个编码点的排序,将所述待编码点云划分为至少一个编码点云块;
对于每一包括至少两个编码点的编码点云块,基于所述编码点云块包含的编码点数量和预设最大变换阶数,将所述编码点云块划分为M个编码点云分组;
对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数;
对所述量化后的第一变换系数和第二目标编码点云分组对应的第二残差信息进行熵编码,生成目标码流。
或者,处理器用于执行以下操作:
对待解码码流进行解码,得到待解码点云;
基于所述待解码点云包含的解码点数量、待解码点云对应的包围盒的体积信息和每个解码点的排序,将所述待解码点云划分为至少一个解码点云块;
对于每一包括至少两个解码点的解码点云块,基于所述解码点云块包含的解码点数量和预设最大变换阶数,将所述解码点云块划分为M个解码点云分组;
对第三目标解码点云分组对应的第二变换系数进行反量化处理,得到目标高频系数和目标低频系数;对所述目标高频系数和所述目标低频系数进行反变换处理,得到所述第三目标解码点云分组对应的残差信息。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述点云属性编码方法实施例的各个过程,或实现上述点云属性解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的终端中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述点云属性编码方法实施例的各个过程,或实现上述点云属性解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (19)
1.一种点云属性编码方法,其特征在于,包括:
获取待编码点云;所述待编码点云中的编码点按照预设编码顺序排序;
基于所述待编码点云包含的编码点数量、待编码点云对应的包围盒的体积信息和每个编码点的排序,将所述待编码点云划分为至少一个编码点云块;
对于每一包括至少两个编码点的编码点云块,基于所述编码点云块包含的编码点数量和预设最大变换阶数,将所述编码点云块划分为N个编码点云分组,N为正整数;
对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数;所述第一目标编码点云分组为至少部分所述N个编码点云分组,且所述第一目标编码点云分组为进行变换编码的编码点云分组;
对所述量化后的第一变换系数和第二目标编码点云分组对应的第二残差信息进行熵编码,生成目标码流;所述第二目标编码点云分组为所述N个编码点云分组中除所述第一目标编码点云分组之外的编码点云分组。
2.根据权利要求1所述的方法,其特征在于,所述待编码点云中的编码点按照排序码从小到大排序,所述排序码包括希尔伯特码和莫顿码中的任意一种;
所述基于所述待编码点云包含的编码点数量、待编码点云对应的包围盒的体积信息和每个编码点的排序,将所述待编码点云划分为至少一个编码点云块包括:
使用第一目标移位值,对每个编码点对应的排序码进行移位,得到每个编码点对应的第一目标排序码;所述目标移位值基于所述待编码点云包含的编码点数量和所述包围盒的体积信息确定;
将第一目标排序码相同的编码点划分在同一编码点云块。
3.根据权利要求1所述的方法,其特征在于,所述基于所述编码点云块包含的编码点数量和预设最大变换阶数,将所述编码点云块划分为N个编码点云分组包括:
在所述编码点云块包含的编码点数量小于或等于所述预设最大变换阶数的情况下,将所述编码点云块确定为1个编码点云分组;
在所述编码点云块包含的编码点数量大于所述预设最大变换阶数的情况下,基于所述编码点云块包含的编码点数量与第一预设数值,将所述编码点云块划分为至少两个编码点云分组。
4.根据权利要求1所述的方法,其特征在于,所述对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数之前,所述方法包括:
获取所述待编码点云中的第一变换标识;
在所述第一变换标识用于表征对全部编码点云分组进行变换编码的情况下,将所有编码点云分组确定为所述第一目标编码点云分组;
在所述第一变换标识用于表征对全部编码点云分组进行自适应变换编码的情况下,将所述N个编码点云分组中的至少一个编码点云分组确定为所述第一目标编码点云分组。
5.根据权利要求1所述的方法,其特征在于,所述对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数包括:
计算变换矩阵与所述第一残差信息之间的乘积结果,将所述乘积结果确定为待量化的第一变换系数;所述变换矩阵的阶数基于所述第一目标编码点云分组包含的编码点数量确定;
对所述待量化的第一变换系数进行量化,得到所述量化后的第一变换系数。
6.一种点云属性解码方法,其特征在于,包括:
对待解码码流进行解码,得到待解码点云,所述待解码点云中的解码点按照预设编码顺序排序;
基于所述待解码点云包含的解码点数量、待解码点云对应的包围盒的体积信息和每个解码点的排序,将所述待解码点云划分为至少一个解码点云块;
对于每一包括至少两个解码点的解码点云块,基于所述解码点云块包含的解码点数量和预设最大变换阶数,将所述解码点云块划分为M个解码点云分组,M为正整数;
对第三目标解码点云分组对应的第二变换系数进行反量化处理,得到目标高频系数和目标低频系数;所述第三目标解码点云分组为至少部分所述M个解码点云分组,且所述第三目标解码点云分组为进行反量化处理的解码点云分组;
对所述目标高频系数和所述目标低频系数进行反变换处理,得到所述第三目标解码点云分组对应的第三残差信息。
7.根据权利要求6所述的方法,其特征在于,所述待解码点云中的解码点按照排序码从小到大排序,所述排序码包括希尔伯特码和莫顿码中的任意一种;
所述基于所述待解码点云包含的解码点数量、待解码点云对应的包围盒的体积信息和每个解码点的排序,将所述待解码点云划分为至少一个解码点云块包括:
使用第二目标移位值,对每个解码点对应的排序码进行移位,得到每个解码点对应的第二目标排序码;所述第二目标移位值基于所述待解码点云包含的解码点数量和所述包围盒的体积信息确定;
将第二目标排序码相同的解码点划分在同一解码点云块。
8.根据权利要求7所述的方法,其特征在于,所述使用第二目标移位值,对每个解码点对应的排序码进行移位,得到每个解码点对应的第二目标排序码之前,所述方法包括:
基于第一移位参数和第二移位参数,确定所述第二目标移位值,所述第一移位参数基于所述包围盒的体积信息确定,所述第二移位参数基于所述待解码点云包含的解码点数量确定;或者
基于所述待解码点云对应的几何量化步长,确定所述第二目标移位值;或者
将预设移位值确定为所述第二目标移位值;或者
从所述待解码码流中获得所述第二目标移位值。
9.根据权利要求6所述的方法,其特征在于,所述基于所述解码点云块包含的解码点数量和预设最大变换阶数,将所述解码点云块划分为M个解码点云分组包括:
在所述解码点云块包含的解码点数量小于或等于所述预设最大变换阶数的情况下,将所述解码点云块确定为1个解码点云分组;
在所述解码点云块包含的解码点数量大于所述预设最大变换阶数的情况下,基于所述解码点云块包含的解码点数量与第一预设数值,将所述解码点云块划分为至少两个解码点云分组。
10.根据权利要求9所述的方法,其特征在于,所述基于所述解码点云块包含的解码点数量与第一预设数值,将所述解码点云块划分为至少两个解码点云分组包括:
在第一数值大于预设最大变换阶数的情况下,使用所述第一预设数值对所述第一数值执行分组计算操作,得到第二数值;所述第一数值表示所述解码点云块未进行点云分组的解码点的数量,所述第二数值小于或等于预设最大变换阶数;
按照所述解码点云块中解码点的预设解码顺序,将未进行点云分组的解码点中的至少部分解码点划分为一个解码点云分组,直到所有的解码点云块的所有解码点完成点云分组,所述至少部分解码点的数量等于所述第二数值。
11.根据权利要求10所述的方法,其特征在于,所述使用所述第一预设数值对所述第一数值执行分组计算操作,得到第二数值包括:
在第一数值大于预设最大变换阶数的情况下,对所述第一数值与第一预设数值之间的除法结果取整,得到目标数值;
将所述第一数值更新为所述目标数值,直至所述目标数值小于或等于预设最大变换阶数,确定所述第二数值为所述目标数值。
12.根据权利要求6所述的方法,其特征在于,所述对第三目标解码点云分组对应的第二变换系数进行反量化处理,得到目标高频系数和目标低频系数之前,所述方法包括:
获取所述待解码点云中的第二变换标识;
在所述第二变换标识用于表征对全部解码点云分组进行反变换的情况下,将所有解码点云分组确定为所述第三目标解码点云分组;
在所述第二变换标识用于表征对全部解码点云分组进行自适应反变换的情况下,将所述M个解码点云分组中的至少一个解码点云分组确定为所述第三目标解码点云分组。
13.根据权利要求12所述的方法,其特征在于,所述M个解码点云分组在解码点云块中按照预设顺序排序,所述M个解码点云分组包括1个第一点云分组,所述第一点云分组为所述M个解码点云分组中排序最前的解码点云分组;
所述将所述M个解码点云分组中的至少一个解码点云分组确定为所述第三目标解码点云分组包括:
获取所述第一点云分组对应的第三变换标识;
在所述第三变换标识用于表征对所述第一点云分组进行反变换的情况下,将所述第一点云分组确定为所述第三目标解码点云分组。
14.根据权利要求12所述的方法,其特征在于,所述M个解码点云分组在解码点云块中按照预设顺序排序,所述M个解码点云分组包括M-1个第二点云分组,所述第二点云分组为所述M个解码点云分组中除排序最前的解码点云分组之外的解码点云分组;
所述将所述M个解码点云分组中的至少一个解码点云分组确定为所述第三目标解码点云分组包括:
对于任一第二点云分组,确定所述第二点云分组对应的第一重建值和第二重建值;所述第一重建值为相邻点云分组对应的重建信息中的最大值,所述第二重建值为相邻点云分组对应的重建信息中的最小值,所述相邻点云分组为所述解码点云块中与所述第二点云分组相邻且位于所述第二点云分组之前的解码点云分组;
计算所述第一重建值与所述第二重建值的差值的绝对值;
在所述绝对值小于第二预设数值的情况下,将所述第二点云分组确定为第三目标解码点云分组。
15.根据权利要求6所述的方法,其特征在于,所述第二变换系数包括第一分量和第二分量,所述第一分量包括第一高频系数和第一低频系数,所述第二分量包括第二高频系数和第二低频系数;
所述对第三目标解码点云分组对应的第二变换系数进行反量化处理,得到目标高频系数和目标低频系数包括:
分别使用预设的第一量化步长和预设的第二量化步长,对所述第一高频系数和所述第一低频系数进行反量化,得到反量化后的第一高频系数和反量化后的第一低频系数;
使用预设的第三量化步长对所述第二高频系数和所述第二低频系数进行量化,得到反量化后的第二高频系数和反量化后的第二低频系数;
将所述反量化后的第一高频系数和所述反量化后的第二高频系数,确定为所述目标高频系数;
将所述反量化后的第一低频系数和所述反量化后的第二低频系数,确定为所述目标低频系数。
16.一种编码器,其特征在于,包括:
第一获取模块,用于获取待编码点云;所述待编码点云中的编码点按照预设编码顺序排序;
第一划分模块,用于基于所述待编码点云包含的编码点数量、待编码点云对应的包围盒的体积信息和每个编码点的排序,将所述待编码点云划分为至少一个编码点云块;
第二划分模块,用于对于每一包括至少两个编码点的编码点云块,基于所述编码点云块包含的编码点数量和预设最大变换阶数,将所述编码点云块划分为N个编码点云分组,N为正整数;
第一编码模块,用于对第一目标编码点云分组对应的第一残差信息进行变换编码和量化处理,得到量化后的第一变换系数;所述第一目标编码点云分组为至少部分所述N个编码点云分组,且所述第一目标编码点云分组为进行变换编码的编码点云分组;
第二编码模块,用于对所述量化后的第一变换系数和第二目标编码点云分组对应的第二残差信息进行熵编码,生成目标码流;所述第二目标编码点云分组为所述N个编码点云分组中除所述第一目标编码点云分组之外的编码点云分组。
17.一种解码器,其特征在于,包括:
解码模块,用于对待解码码流进行解码,得到待解码点云,所述待解码点云中的解码点按照预设编码顺序排序;
第三划分模块,用于基于所述待解码点云包含的解码点数量、待解码点云对应的包围盒的体积信息和每个解码点的排序,将所述待解码点云划分为至少一个解码点云块;
第四划分模块,用于对于每一包括至少两个解码点的解码点云块,基于所述解码点云块包含的解码点数量和预设最大变换阶数预设最大变换阶数,将所述解码点云块划分为M个解码点云分组,M为正整数;
反量化模块,用于对第三目标解码点云分组对应的第二变换系数进行反量化处理,得到目标高频系数和目标低频系数;所述目标解码点云分组为至少部分所述解码点云分组,所述第三目标解码点云分组为至少部分所述M个解码点云分组,且所述第三目标解码点云分组为进行反量化处理的解码点云分组;
反变换模块,用于对所述目标高频系数和所述目标低频系数进行反变换处理,得到所述第三目标解码点云分组对应的第三残差信息。
18.一种终端,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-5任一项所述的点云属性编码方法的步骤,或者实现如权利要求6-15所述的点云属性解码方法的步骤。
19.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-5任一项所述的点云属性编码方法的步骤,或者实现如权利要求6-15所述的点云属性解码方法的步骤。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110970524.3A CN115714859A (zh) | 2021-08-23 | 2021-08-23 | 点云属性编码方法、点云属性解码方法及终端 |
EP22860370.0A EP4395323A1 (en) | 2021-08-23 | 2022-08-18 | Point cloud attribute coding method, point cloud attribute decoding method and terminal |
PCT/CN2022/113267 WO2023025024A1 (zh) | 2021-08-23 | 2022-08-18 | 点云属性编码方法、点云属性解码方法及终端 |
KR1020247003153A KR20240027756A (ko) | 2021-08-23 | 2022-08-18 | 포인트 클라우드 속성 코딩 방법, 포인트 클라우드 속성 디코딩 방법 및 단말 |
JP2023578761A JP2024523912A (ja) | 2021-08-23 | 2022-08-18 | 点群属性の符号化方法、点群属性の復号方法及び端末 |
US18/439,292 US20240185468A1 (en) | 2021-08-23 | 2024-02-12 | Point cloud attribute coding method, point cloud attribute decoding method, and terminal |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110970524.3A CN115714859A (zh) | 2021-08-23 | 2021-08-23 | 点云属性编码方法、点云属性解码方法及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115714859A true CN115714859A (zh) | 2023-02-24 |
Family
ID=85230352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110970524.3A Pending CN115714859A (zh) | 2021-08-23 | 2021-08-23 | 点云属性编码方法、点云属性解码方法及终端 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20240185468A1 (zh) |
EP (1) | EP4395323A1 (zh) |
JP (1) | JP2024523912A (zh) |
KR (1) | KR20240027756A (zh) |
CN (1) | CN115714859A (zh) |
WO (1) | WO2023025024A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170214943A1 (en) * | 2016-01-22 | 2017-07-27 | Mitsubishi Electric Research Laboratories, Inc. | Point Cloud Compression using Prediction and Shape-Adaptive Transforms |
CN108632621B (zh) * | 2018-05-09 | 2019-07-02 | 北京大学深圳研究生院 | 一种基于层次划分的点云属性压缩方法 |
WO2020189943A1 (ko) * | 2019-03-15 | 2020-09-24 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
CN111405281A (zh) * | 2020-03-30 | 2020-07-10 | 北京大学深圳研究生院 | 一种点云属性信息的编码方法、解码方法、存储介质及终端设备 |
-
2021
- 2021-08-23 CN CN202110970524.3A patent/CN115714859A/zh active Pending
-
2022
- 2022-08-18 KR KR1020247003153A patent/KR20240027756A/ko active Search and Examination
- 2022-08-18 EP EP22860370.0A patent/EP4395323A1/en active Pending
- 2022-08-18 JP JP2023578761A patent/JP2024523912A/ja active Pending
- 2022-08-18 WO PCT/CN2022/113267 patent/WO2023025024A1/zh active Application Filing
-
2024
- 2024-02-12 US US18/439,292 patent/US20240185468A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4395323A1 (en) | 2024-07-03 |
US20240185468A1 (en) | 2024-06-06 |
JP2024523912A (ja) | 2024-07-02 |
WO2023025024A1 (zh) | 2023-03-02 |
KR20240027756A (ko) | 2024-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101461209B1 (ko) | 2d 매트릭스들에 인코딩 파라미터들을 저장하는 이미지 압축을 위한 방법 및 장치 | |
CN115471627A (zh) | 点云的几何信息编码处理方法、解码处理方法及相关设备 | |
WO2022257971A1 (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
CN115474052A (zh) | 点云编码处理方法、解码处理方法及相关设备 | |
WO2022258009A1 (zh) | 熵编码、解码方法及装置 | |
US20240121439A1 (en) | Point cloud attribute information encoding method and apparatus, point cloud attribute information decoding method and apparatus, and related device | |
CN113573056A (zh) | 一种率失真优化量化的方法、装置、存储介质及终端 | |
WO2022257968A1 (zh) | 点云编码方法、点云解码方法及终端 | |
CN115714859A (zh) | 点云属性编码方法、点云属性解码方法及终端 | |
WO2024188138A1 (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
WO2023098802A1 (zh) | 点云属性编码方法、点云属性解码方法及终端 | |
WO2022257978A1 (zh) | 点云编码方法、解码方法及装置 | |
WO2023098803A1 (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
CN116233388B (zh) | 点云编、解码处理方法、装置、编码设备及解码设备 | |
WO2024120323A1 (zh) | 属性变换编码方法、属性变换解码方法及终端 | |
WO2023155779A1 (zh) | 编码方法、解码方法、装置及通信设备 | |
CN115474049A (zh) | 点云编码处理方法、解码处理方法及装置 | |
CN115474064A (zh) | 编码、解码控制方法及装置 | |
CN116233387A (zh) | 点云编码、解码方法、装置及通信设备 | |
CN118828020A (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
CN116233385A (zh) | 点云属性编码方法、点云解码方法及终端 | |
CN118175319A (zh) | 点云编码方法、点云解码方法及相关设备 | |
CN115914651A (zh) | 点云编解码方法、装置、设备及存储介质 | |
CN115474041A (zh) | 点云属性的预测方法、装置及相关设备 | |
CN116634179A (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 |