CN117615136A - 点云解码方法、点云编码方法、解码器、电子设备以及介质 - Google Patents
点云解码方法、点云编码方法、解码器、电子设备以及介质 Download PDFInfo
- Publication number
- CN117615136A CN117615136A CN202311626550.XA CN202311626550A CN117615136A CN 117615136 A CN117615136 A CN 117615136A CN 202311626550 A CN202311626550 A CN 202311626550A CN 117615136 A CN117615136 A CN 117615136A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- target
- information
- determining
- value
- 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 201
- 230000008569 process Effects 0.000 claims abstract description 74
- 238000003860 storage Methods 0.000 claims abstract description 24
- 230000006870 function Effects 0.000 claims description 73
- 238000013507 mapping Methods 0.000 claims description 61
- 238000013139 quantization Methods 0.000 claims description 33
- 230000015654 memory Effects 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 27
- 238000004364 calculation method Methods 0.000 claims description 22
- 230000009466 transformation Effects 0.000 claims description 20
- 238000011426 transformation method Methods 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 239000000523 sample Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 11
- 230000009286 beneficial effect Effects 0.000 description 7
- 238000002310 reflectometry Methods 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007654 immersion Methods 0.000 description 3
- 238000002595 magnetic resonance imaging Methods 0.000 description 3
- 210000000056 organ Anatomy 0.000 description 3
- 238000012669 compression test Methods 0.000 description 2
- 238000002591 computed tomography Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100207005 Caenorhabditis elegans tmc-2 gene Proteins 0.000 description 1
- 101000638069 Homo sapiens Transmembrane channel-like protein 2 Proteins 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 102100032054 Transmembrane channel-like protein 2 Human genes 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- 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/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
-
- 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)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供了一种点云解码方法、点云编码方法、解码器、编码器以及计算机可读存储介质,应用于点云编解码技术领域。该点云解码方法包括:根据目标点云的目标特征确定解码分组信息。在属性解码过程中,解码器通过上述分组信息对第一重建位置点进行分组,得到多个分组。进一步地,解码器对每个分组进行属性解码。本申请提供的解码方案中,解码器根据在编解码器端默认的或解析所述目标点云的码流得到的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息及目标参数信息,来确定解码分组信息,可见本申请根据目标点云自身相关的多样化特征来确定分组信息,能够提升分组多样性,有利于提升点云的解码性能。
Description
技术领域
本申请实施例涉及点云编解码技术领域,尤其涉及一种点云解码方法、点云编码方法、解码器、电子设备以及计算机可读存储介质。
背景技术
相关的点云编解码技术中,在编码器完成几何编码之后,根据固定公式将重建位置点进行分组,以基于每组重建位置点进行属性编码。类似的,编码器完成几何解码之后,根据预先设定的公式将重建位置点进行分组,以基于每组重建位置点进行属性编码。相关技术提供的分组方式单一,不利于提升点云的编解码性能。
发明内容
本申请提供一种点云解码方法、点云编码方法、解码器、电子设备以及计算机可读存储介质,至少在一定程度上提升点云的编解码性能。
第一方面,本申请提供一种点云解码方法,该方法包括:根据目标点云的目标特征,确定解码分组信息,其中,上述目标特征包括解析上述目标点云的码流得到的或编解码端默认的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息;通过上述解码分组信息对第一重建位置点进行分组处理,得到多个分组,其中,上述第一重建位置点基于解码器对上述目标点云的几何码流进行解码得到;对每个分组进行属性解码。
第二方面,本申请提供一种点云编码方法,应用于编码器,该方法包括:根据目标点云的目标特征,确定编码分组信息,其中,上述目标特征包括编码上述目标点云相关的或编码端默认的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息;通过上述编码分组信息对第二重建位置点进行分组处理,得到多个分组,其中,上述第二重建位置点为上述编码器对上述目标点云的几何码流进行解码得到;对每个分组进行属性编码。
第三方面,本申请提供一种解码器,该解码器包括:第一确定模块、解码分组模块以及属性解码模块;
其中,上述第一确定模块,用于根据目标点云的目标特征,确定解码分组信息,其中,上述目标特征包括解析上述目标点云的码流得到的或编解码端默认的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息;上述解码分组模块,用于通过上述解码分组信息对第一重建位置点进行分组处理,得到多个分组,其中,上述第一重建位置点基于解码器对上述目标点云的几何码流进行解码得到;上述属性解码模块,用于对每个分组进行属性解码。
第四方面,本申请提供一种解码器,包括处理器和存储器;上述存储器,用于存储计算机程序;以及,上述处理器,用于执行上述计算机程序以实现如上述第一方面所提供的点云解码方法。
第五方面,本申请提供一种编码器,该编码器包括:第二确定模块、编码分组模块以及属性编码模块;
其中,上述第二确定模块,用于根据目标点云的目标特征,确定编码分组信息,其中,上述目标特征包括编码上述目标点云相关的或编码端默认的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息;上述编码分组模块,用于通过上述编码分组信息对第二重建位置点进行分组处理,得到多个分组,其中,上述第二重建位置点为上述编码器对上述目标点云的几何码流进行解码得到;上述属性预测模块,用于对每个分组进行属性编码。
第六方面,本申请提供一种电子设备,包括处理器和存储器;所述存储器,用于存储计算机程序;以及,所述处理器,用于执行所述计算机程序以实现如上述第一方面或上述第二方面所提供的点云编码方法。
第七方面,本申请提供一种芯片,用于实现上述第一方面或第二方面所提供的方法。具体地,所述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如上述第一方面或第二方面所提供的方法。
第八方面,本申请提供一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述第一方面或第二方面所提供的方法。
第九方面,本申请提供一种计算机程序产品,包括计算机程序指令,所述计算机程序指令使得计算机执行上述第一方面或第二方面所提供的方法。
第十方面,本申请提供一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所提供的方法。
综上,本申请实施例提供的点云解码方案中,根据目标点云的目标特征确定解码分组信息。在属性解码过程中,解码器通过上述分组信息对第一重建位置点进行分组,得到多个分组。其中,上述第一重建位置点为解码器对目标点云的几何码流进行解码得到的。进一步地,解码器对每个分组进行属性解码。本申请实施例提供的解码方案中,解码器根据在编解码器端默认或解析所述目标点云的码流得到的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息,来确定解码分组信息,可见本申请实施例中根据目标点云自身相关的多样化特征来确定分组信息,能够提升分组多样性,有利于提升点云的解码性能。
同理,本申请实施例提供的点云编码方案中,根据对目标点云的目标特征确定编码分组信息。在属性编码过程中,编码器通过编码分组信息对第二重建位置点进行分组,得到多个分组。其中,上述第二重建位置点为编码器解码上述目标点云的几何码流得到的。进一步地,编码器对每个分组进行属性编码。本申请实施例提供的编码方案中,编码器根据在编解码器端默认的或编码所述目标点云的码流相关的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息,来确定上述编码分组信息,可见本申请实施例中根据目标点云自身相关的多样化特征来确定分组信息,能够提升分组多样性,有利于提升点云的编码性能。
附图说明
为了更清楚地说明本发明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种点云编解码的网络架构示意图;
图2为本申请实施例提供的一种点云视频编解码系统的示意性框图;
图3A为本申请实施例提供的一种编码框架的示意性框图;
图3B为本申请实施例提供的一种解码框架的示意性框图;
图4为本申请实施例提供的一种点云解码方法的流程示意图;
图5为本申请实施例提供的一种点云的包围盒的示意图;
图6为本申请另一实施例提供的一种点云解码方法的流程示意图;
图7为本申请实施例提供的一种点云编码方法的流程示意图;
图8为本申请另一实施例提供的一种点云编码方法的流程示意图;
图9为本申请实施例提供的解码器的结构示意图;
图10为本申请实施例提供的编码器的结构示意图;
图11为本申请实施例提供的电子设备的结构示意图;
图12是本申请实施例提供的编解码系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够除了在这里图示或描述的那些以外的顺序实施。在本发明本申请实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分
点云(Point Cloud)为空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集。
点云数据(PointCloudData)为点云数据为点云的具体记录形式。具体的,点云数据可以记录的点云中每个点的位置信息和属性信息。其中,点的位置信息可以是点的三维坐标信息。点的位置信息也可称为点的几何信息。点的属性信息可以包括颜色信息和/或反射率信息等。其中,颜色信息可以是任意一种色彩空间上的信息。例如,上述颜色信息可以是(RGB)。在这里,“R”表示红色(Red,R),“G”表示绿色(Green,G),“B”表示蓝色(Blue,B)。再如,上述颜色信息可以是于亮度色度(YCbCr,YUV)信息,其中,“Y”表示明亮度(Luma),“Cb(U)”表示蓝色色差,“Cr(V)”表示红色色差。
例如,根据激光测量原理采集得到的点云,其点云数据可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理采集得到的点云,其点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原理采集得到点云,其点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。
其中,点云数据的获取途径可以包括但不限于以下至少一种:(1)计算机设备生成。计算机设备可以根据虚拟三维物体及虚拟三维场景的生成点云数据。(2)3D(3-Dimension,三维)激光扫描获取。通过3D激光扫描可以获取静态现实世界三维物体或三维场景的点云数据,每秒可以获取百万级点云数据;(3)3D摄影测量获取。通过3D摄影设备(即一组摄像机或具有多个镜头和传感器的摄像机设备)对现实世界的视觉场景进行采集以获取现实世界的视觉场景的点云数据,通过3D摄影可以获得动态现实世界三维物体或三维场景的点云数据。(4)通过医学设备获取生物组织器官的点云数据。在医学领域可以通过磁共振成像(MagneticResonanceImaging,MRI)、电子计算机断层扫描(ComputedTomography,CT)、电磁定位信息等医学设备获取生物组织器官的点云数据。
点云可以按获取的途径分为:静态点云、动态点云和动态获取点云;其中,静态点云,是指采取点云时物体是静止的,获取点云的设备也是静止的;动态点云,是指采取点云时物体是运动的,但获取点云的设备是静止的;动态获取点云,是指采取点云时获取点云的设备是运动的。
另外,按点云的用途分为两大类:机器感知点云和人眼感知点云;其中,上述机器感知点云,可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;上述人眼感知点云,可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,并且由于点云通过直接对真实物体采样获得,在保证精度的前提下能提供极强的真实感,因而应用广泛,其范围包括虚拟现实游戏、计算机辅助设计、地理信息系统、自动导航系统、数字文化遗产、自由视点广播、三维沉浸远程呈现、生物组织器官三维重建等。其中,随着点云数据获取方式的变革,可以实现点云数据的大量获取。但是,伴随着应用需求的增长,海量的点云数据的处理遭遇存储空间和传输带宽限制的瓶颈。
例如,以帧率为30帧每秒(Frameper Second,FPS)的点云视频为例,每帧点云的点数为60万,每个点具有坐标信息xyz(float)和颜色信息RGB(uchar)。则时长为15s点云视频的数据量大约为0.6million×(4Byte×3+1Byte×3)×30fps×10s=4.05GB。可见,点云视频的数据量较大。因此,为了节省储空间、降低点云数据传输流量及传输时间,需对点云数据陷阱压缩处理。
目前,可对点云进行压缩的点云编码框架可以是运动图像专家组(MovingPicture Experts Group,MPEG)提供的基于几何的点云压缩(Geometry-based PointCloud Compression,G-PCC)编解码框架,或基于视频的点云压缩(Video-based PointCloud Compression,V-PCC)编解码框架,也可以是音视频编解码标准(Audio VideoCoding Standard,AVS)提供的AVS-PCC编解码框架。具体的,G-PCC编解码框架可用于针对第一类静态点云和第三类动态获取点云进行压缩,其可以是基于点云压缩测试平台(TestModel Compression 13,TMC13);V-PCC编解码框架可用于针对第二类动态点云进行压缩,其可以是基于点云压缩测试平台(Test Model Compression 2,TMC2)。故G-PCC编解码框架也称为点云编解码器TMC13,V-PCC编解码框架也称为点云编解码器TMC2。
图1为本申请实施例提供的一种点云编解码的网络架构示意图。示例性地示出了本申请实施例提供的包含解码方法和编码方法的点云编解码系统的网络架构。
参考图1,该网络架构包括通信网络100以及一个或多个电子设备。其中电子设备可以是如图1示出的服务器102、笔记本104、台式机106、手机108,以及平板电脑110等。具体地,电子设备之间可以通过通信网络100进行视频传输交互。电子设备在实施的过程中可以为各种类型的具有点云编解码功能的设备,例如,上述电子设备可以包括智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板电脑、机顶盒、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机、导航仪、数字电话、视频电话、电视机、传感设备以及服务器等,本申请实施例不作限制。本申请实施例中的解码器或编码器可以为上述电子设备。本申请实施例中的电子设备具有点云编解码功能,一般包括点云编码器(本申请实施例中可以称为编码器)和点云解码器(本申请实施例中可以称为解码器)。
需要说明的是,图1只是本申请实施例所提供的点云编解码的网络架构的一种示例,本申请实施例的点云视频编解码网络构建包括但不限于图1所示。
图2为本申请实施例提供的一种点云视频编解码系统的示意性框图。
参考图2,该点云视频编解码系统示例性的包含两个电子设备:用作编码端的电子设备210和用作解码端的电子设备220。其中,电子设备210用于对点云数据进行编码产生码流,并将码流传输给电子设备220。电子设备220对接收到的码流进行解码,得到解码后的点云数据。
在一些实施例中,电子设备210编码生成的码流可以经由信道200传输给电子设备220。其中,信道200可以包括能够将编码后的点云数据从电子设备210传输到电子设备220的一个或多个媒体和/或装置。
在一个实例中,信道200包括使电子设备210能够实时地将编码后的点云数据直接发射到电子设备220的一个或多个通信媒体。在此实例中,电子设备210可根据通信标准来调制编码后的点云数据,且将调制后的点云数据发射到电子设备220。其中通信媒体包含无线通信媒体,例如射频频谱,可选的,通信媒体还可以包含有线通信媒体,例如一根或多根物理传输线。
在另一实例中,信道200包括存储介质,该存储介质可以存储电子设备210编码后的点云数据。存储介质包含多种本地存取式数据存储介质,例如光盘、DVD、快闪存储器等。在该实例中,电子设备220可从该存储介质中获取编码后的点云数据。
在另一实例中,信道200可包含存储服务器,该存储服务器可以存储电子设备210编码后的点云数据。在此实例中,电子设备220可以从该存储服务器中下载存储的编码后的点云数据。可选的,该存储服务器可以存储编码后的点云数据且可以将该编码后的点云数据发射到电子设备220,例如web服务器(例如,用于网站)、文件传送协议(File TransferProtocol,FTP)服务器等。
一些实施例中,电子设备210包含编码器214及输出接口216。其中,输出接口216可以包含调制器/解调器(调制解调器)和/或发射器。
在一些实施例中,电子设备210除了包括编码器214和输出接口216外,还可以包括视频源212。其中,视频源212可包含视频采集装置(例如,视频相机)、视频存档、视频输入接口、计算机图形系统中的至少一个,其中,视频输入接口用于从视频内容提供者处接收点云数据,计算机图形系统用于产生点云数据。编码器214对来自视频源212的点云数据进行编码,产生码流。编码器214经由输出接口216将编码后的点云数据直接/间接传输到电子设备220。编码后的点云数据还可存储于存储介质或存储服务器上,以供电子设备220后续读取。
在一些实施例中,电子设备220除包括输入接口226和解码器224外,还可以包括显示装置222。其中,输入接口226包含接收器及/或调制解调器。输入接口226可通过信道200接收编码后的点云数据。解码器224用于对编码后的点云数据进行解码,得到解码后的点云数据,并将解码后的点云数据传输至显示装置222。显示装置222显示解码后的点云数据。显示装置222可与电子设备220整合或在电子设备220外部。显示装置222可包括多种显示装置,例如液晶显示器(Liquid Crystal Display,LCD)、等离子体显示器、有机发光二极管(Organic Light-Emitting Diode,OLED)显示器或其它类型的显示装置。
需要说明的是,图2只是本申请实施例所提供的点云编解码系统的一种示例,本申请实施例的点云视频编解码系统包括但不限于图2所示。
图3A为本申请实施例提供的一种编码框架的示意性框图。
参考图3A,编码框架可以从采集设备获取点云的几何信息(也称为位置信息或几何位置)和属性信息。其中,点云数据的编码包括位置编码和属性编码。
(一)、关于位置编码
上述位置编码的过程包括:对原始点云进行坐标平移和坐标量化等预处理;其中,通过对原始点云进行坐标变换,可以将点云中点的世界坐标变换为相对坐;坐标量化可减少坐标的数目;经过量化后,原先不同位置的点可能被赋予相同的坐标,相同的坐标可以称为重复点。
上述位置编码的过程还包括:八叉树(octree)构建;可利用八叉树编码方式编码量化的点的位置信息。例如,将点云按照八叉树的形式进行划分,由此,点的位置可以和八叉树的位置一一对应,通过统计八叉树中有点的位置,并将其标识(flag)记为1。
其中,几何编码(Geometryencoding)除了上述八叉树编码模式外还包括基于三角表示的几何编码(Trisoup)。具体地。基于三角表示的编码模式中,将点云划分为一定大小的块(block),定位点云表面在块的边缘的交点并构建三角形。通过编码交点位置实现几何信息的压缩。
上述位置编码的过程还包括:量化;其中,量化的精细程度通常由量化参数(QP)来决定,QP取值越大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。
上述位置编码的过程还包括:熵编码;可以采用熵编码方式对八叉树构建得到的位置信息进行算术编码,即将八叉树构建后的位置信息利用算术编码方式生成几何比特流(geometrybitstream),又称作几何码流。
上述位置编码的过程还包括:八叉树重建;对八叉树构建得到的位置信息进行重建,以重建点云中各点的几何位置,得到点的重建几何位置。具体地,点的重建几何位置用于属性编码过程。
(二)、关于属性编码
上述属性编码过程包括:空间变换;可用于将点云中点的RGB色彩空间变换为YCbCr格式或其他格式。
上述属性编码过程包括:属性插值。
其中,通过属性插值可以实现属性重上色(Recoloring)。有损编码情况下,在几何信息编码后,需编码端解码并重建几何信息,即恢复点云的各点的三维坐标信息。并在原始点云中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息。通过上述属性插值,可以用于转换点云中点的属性信息,以最小化属性失真。具体地,属性插值后可以得到点的属性信息的真实值。
上述属性编码过程还包括:属性预测;本阶段可用于对点云中点的属性信息进行预测,以得到点的属性信息的预测值。示例性的,通过对几何信息或属性信息的邻近关系,选择一个或多个重建位置点的属性预测值,并求加权平均获得当前点的属性预测值。进而基于点的属性信息的预测值得到点的属性信息的残差值。其中,点的属性信息的残差值可以是点的属性信息的真实值减去点的属性信息的预测值。
示例性的,属性变换编码包含三种模式,可在不同条件下使用。
(a)预测变换编码(PredictingTransform):根据距离选择子点集,将点云划分成多个不同的层级(LevelofDetail,LoD),实现由粗糙到精细化的点云表示。相邻层之间可以实现自下而上的预测,即由粗糙层中的邻近点预测精细层中引入的点的属性信息,获得对应的残差信号。其中,最底层的点作为参考信息进行编码。
(b)提升变换编码(LiftingTransform):在LoD相邻层预测的基础上,引入邻域点的权重更新策略,最终获得各点的预测属性值,获得对应的残差信号。
(c)分层区域自适应变换编码(RegionAdaptiveHierarchicalTransform,RAHT):属性信息经过RAHT变换,将信号转换到变换域中,称之为变换系数。
上述属性编码过程还包括:量化和熵编码;具体地可以量化点的属性信息的残差值。进一步地,对于量化后的残差值可使用零行程编码(Zerorunlengthcoding)对点的属性信息的残差值进行熵编码,以得到属性比特流,也称作属性码流。
图3B为本申请实施例提供的一种解码框架的示意性框图。
参考图3B,解码框架获取点云的码流后,通过解析码流得到点云中的点的位置信息和属性信息。其中,点云的解码包括位置解码和属性解码。
位置解码的过程包括:对几何码流进行算术解码;构建八叉树后进行合并,对点的位置信息进行重建,以得到点的位置信息的重建信息;对点的位置信息的重建信息进行坐标变换,得到点的位置信息。点的位置信息也可称为点的几何信息。
属性解码过程包括:通过解析属性码流,获取点云中点的属性信息的残差值;通过对点的属性信息的残差值进行反量化,得到反量化后的点的属性信息的残差值;基于位置解码过程中获取的点的位置信息的重建信息,选择三种预测模式的一种进行点云预测,得到点的属性信息的重建值;对点的属性信息的重建值进行颜色空间反转化,以得到解码点云。
相关的点云编解码技术中,参考图3A,在属性预测(如图3A中虚线框)阶段,一般根据固定公式将重建位置点进行分组,以基于每组中包含的重建位置点进行属性编码。参考图3B,编码器完成几何解码之后,在属性重建(如图3B中虚线框)阶段根据预先设定的公式将重建位置点进行分组。可见,在编码过程的属性预测阶段、解码过程的属性重建阶段,相关技术提供的分组方式单一,不利于提升点云的编解码性能。
本申请实施例提供的方案能够解决相关技术中存在的问题,以下先对本申请实施例提供的点云解码方法进行详细介绍。
图4为本申请实施例提供的一种点云解码方法P400的流程示意图。其中,点云解码方法P400的执行主体可以是解码器,可以是执行解码过程的电子设备。参考图4,点云解码方法P400包括:S410-S430。
在S410中,根据目标点云的目标特征,确定解码分组信息,其中,上述目标特征包括解析上述目标点云的码流得到的或编解码端默认的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息。
其中,上述目标点云为任一点云数据,例如可以是某一视频帧对应的点云数据。
需要说明的是,在编码器对目标点云进行预处理之前,会根据参数配置确定是否要将整体点云序列划分成多个点云片(slice)。在根据上述参数配置确定将整个点云序列划分为多个点云片的情况下,可以将每个点云片slice视为单个独立点云进行串行处理。因此,在一些实施例中,上述目标点云可以是整体级别的点云;在一些实施例中,上述目标点云还可以是对整体级别的点云序列就行划分得到的点云片,即上述目标点云可以是点云片级别的点云。
同理,上述目标特征可以是整体级别点云的特征,也可以是点云片级别的特征。例如,目标特征为点云密度,则若上述目标点云为整体级别的点云,该目标特征指的是整体级别点云的密度;若上述目标点云为点云片级别的点云,该目标特征指的是对整体级别点云划分后得到的点云片的密度。
本申请一种实施例中,解码器接收到目标点云的码流后,可以通过解析该码流的方式获得上述目标特征,例如以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息。在本申请另一种实施例中,上述目标特征还可以是在编解码端默认的信息。另外,解码器也可以查找预设表来确定上述目标特征,其中,上述预设表为对所述目标点云进行编码前或编码时生成的。在编解码器端默认的参数是指在编码器端和对应的解码器端之间相互默认的信息,是在点云编解码过程中无需进行编解码的信息。上述目标参数信息可以包括常数值(或称作固定值、默认值),还可以包括至少一个预设标识,其中每个预设标识均对应有固定值。
在示例性的实施例中,上述编码参数信息是指编码上述目标点云时采用的特征参数,可以包括以下信息中的一种或多种:解码器解码属性码流得到的属性预测变换最大变换阶数、属性输出比特位深以及属性量化参数;解码器解码几何码流得到的几何输出比特位深以及几何量化参数。上述编码参数信息还可以包括:变换方法、预测方法以及排序方法等。
在示例性的实施例中,上述点云特性信息可以反映上述目标点云的特性,例如可以包括以下信息中的一种或多种:点云类型、点云密度、点云空间占有率、分辨率以及点云点数。
同前所述,本申请实施例中所提供的上述点云特性信息具体可以是指整体点云级别的点云密度、点云空间占有率、分辨率以及点云点数,上述属性信息具体还可以是指点云片slice级别的点云密度、点云空间占有率、分辨率以及点云点数。
在示例性的实施例中,上述包围盒信息具体为该目标点云的包围盒的特征。
可以理解的是,编码器在预处理阶段对目标点云的几何信息进行坐标转换,具体地可以使点云全都包含在一个包围盒(bounding box)中。参考图5,包围盒表示包含输入点云中所有点的最小长方体。其中,上述包围盒的原点和尺寸确定实施例如下:
输入点云的k-th点的浮点类型的坐标表示为(xk,yk,zk),k=0,...,K-1,K是点云中的点数,坐标信息xmin,ymin,zmin,xmax,ymax,zmax分别表示如下:
xmin=min(x0,x1,...,xK-1)
ymin=min(y0,y1,...,yK-1)
zmin=min(z0,z1,...,zK-1)
xmax=max(x0,x1,...,xK-1)
ymax=max(y0,y1,...,yK-1)
zmax=max(z0,z1,...,zK-1)
上述函数min(s0,s1,...,sK-1)表示取当前输入(s0,s1,...,sK-1)中的最小值,max(s0,s1,...,sK-1)表示取当前输入(s0,s1,...,sK-1)中的最大值。
进一步地,包围盒的原点(xorigin,yorigin,zorigin)的确定实施例如下:
xorigin=int(floor(xmin))
yorigin=int(floor(ymin))
zorigin=int(floor(zmin))
包围盒在x,y,z方向上的尺寸可以计算如下:
Bounding_Box_Size_x=int(xmax-xorigin)+1
Bounding_Box_Size_y=int(ymax-yorigin)+1
Bounding_Box_Size_z=int(zmax-zorigin)+1
其中,int(s)表示取整函数,floor(s)函数返回小于或等于s的最大整数值。
本申请实施例中,上述目标点云的包围盒信息可以包括以下信息中的一种或多种:包围盒三个边的长度与方向,以及关于包围盒三个边的长度统计值。其中,关于包围盒三个边的长度统计值包括以下信息中的一种或多种:三个边的长度均值、长度中数值、长度众数值、三个边中的长度最大值、三个边中的长度最小值、至少两个边的长度之间的线性组合、包围盒的体积相关计算以及包围盒的表面积相关计算,等。例如,上述至少两个边的长度之间的线性组合可以包括:边长之和、边长之差,边长对应的取对数之间的组合等。上述包围盒的表面积相关计算可以包括:最短边长对应的表面积、较长的两个边长对应的表面积,以及如上述不同的类型的表面积之间的组合,以及如上述不同类型表面积的对数之间的组合等信息。可以理解的是,凡是基于包围盒信息所确定的统计值,均可以认为是上述目标特征。
在上述实施例介绍了获取目标特征的实施例之后,接下来介绍如何根据上述目标特征来确定解码分组信息。
S410-1:通过目标函数对至少一种上述目标特征进行映射,得到至少一个映射值。
其中,通过目标函数f()对于目标特征x,进行映射,得到目标特征对应的映射值f(x)。
本申请实施例中,上述目标函数f()可以是一次函数、二次函数、正比例函数、反比例函数、三角函数、指数函数和对数函数等。例如,采用对数函数f(x)=log2x。
本申请实施例中,上述目标特征表现为参数值或特征值的情况下,可以通过上述目标函数对该值进行映射处理。示例性的,在上述目标特征包含两个或两个以上参数值的情况下,可以通过不同类型的目标函数对不同的参数值进行映射。例如,当前参数值为x1和x2,则可以对应的映射值可以是:lg(x1)和ex2。
示例性的,上述映射处理还可以是点数相关的线性组合;例如,Log2(a*num_points+/-b),其中,a和b为常数;或者,上述映射处理还可以是与点数的取对数值相关的线性组合;例如,b-a*Log2(num_points),或b+a*Log2(num_points)其中,a和b为常数。
可以理解的是,上述映射值还可以是目标特征的参数值本身。例如,目标特征的参数值为x3,经过本实施例的映射操作后,映射值仍为x3。
需要说明的是,本申请实施例中,根据上述目标函数对目标特征进行映射处理后,所确定映射值为整数。具体地,在上述目标函数包含取对数处理的情况下,在取对数处理后进行取整计算;在上述目标函数包含除法处理的情况下,在除法处理后进行取整计算。需要说明的是,在基于其他目标函数的映射过程中出现小数的情况下,或者经过目标函数映射后仍为目标特征本身,且该目标特征包含小数的情况下,也需要进行取整操作。
在示例性的实施例中,上述取整计算可以是:向上取整、向下取整或四舍五入取整等。当然还可以是其他形式的取整计算方式,例如三舍四入等等,本申请实施例对此不做限定。例如,目标特征为目标点云的点数且取值为10000,目标函数为以2为底的对数函数,则通过上述目标函数所确定的映射值为:round(log2(10000))。
在确定上述映射值后,可以执行以下S410-2A或S410-2B方式中来确定解码分组信息。
在S410-2A中,根据至少一个映射值之间的组合或映射值与常数值之间的组合,确定解码分组信息。
其中,上述组合可以是线性组合或非线性组合。
示例性的实施例中,上述至少一个映射值可以表示为f(x)和g(y),则示例性的分组解码信息可以表示为:A×f(x)+B×g(y)、A×f(x)-B×g(y)、A×f(x)2+A×g(y)2、A×f(x)2-A×g(y)2、A×f(x)3+B×g(y),等等。其中,f()和g()可以表示两个相同或不同的目标函数,A和B为正数常数值。
在S410-2B中,根据上述至少一个映射值与未经过映射的目标特征之间的组合,确定解码分组信息。
同上所述,上述未经过映射的目标特征,也可以认为是经过目标函数映射后仍为本身的情况。假如x对应的映射值仍为x,经过目标函数映射至少一个映射值可以表示为g(y),则示例性的分组解码信息可以表示为:C×x+B×g(y)、C×x-B×g(y)、C×x2+A×g(y)2、C×x 2-A×g(y)2、C×x 3+B×g(y),等等。其中,f()和g()可以表示两个相同或不同的目标函数,A、B和C为正数常数值。
在示例性的实施例中,上述解码分组信息可以包括初始分组步长,也可以包括用于计算初始分组步长中的中间量,还可以包括上述初始分组步长的取值上限值和/或下限值。从而,作为S410的具体实施方式,可以包括以下步骤中的任意一个或多个:
S410-A:确定解码分组信息中初始分组步长。
S410-B:确定用于计算初始分组步长的中间量;以及,根据所述中间量确定上述初始分组步长,得到所述解码分组信息。
S410-C:确定解码分组信息中初始分组步长的上限值和/或下限值,确定解码分组信息中中间量的上限值和/或下限值。
其中,上述初始分组步长表示解码器在对重建位置点进行重排序之后,对第一重建位置点(解码器端对几何码流就行解码得的重建位置点)进行初始分组所采用的步长。也就是说,未对分组步长进行任何更新情况下的分组步长。也可以说是,在对目标点云的属性重建过程中,解码器第一次对重建位置点进行分组时候所采用的步长。
以下介绍S410-A的具体实施方式,即确定初始分组步长Lb的具体实施方式:
具体实施方式一:
L1=Logs(gsh_bounding_box_size_x)+Logs(gsh_bounding_box_size_y)+
Logs(gsh_bounding_box_size_z);
L2=Logs(slice_num_points);
Lb=L1–L2,且Lb≥1;
其中,所述Logs()为ceilLog s()、floorLog s()或roundLog s();
Lb表示所述初始分组步长,gsh_bounding_box_size为点云片级的包围盒尺寸,slice_num_points为点云片级的点云点数,s表示大于1的常数,L1和L2表示中间值。
具体实施方式二:
L1=Logs(bounding_box_size_x)+Logs(bounding_box_size_y)+Logs(bounding_box_size_z);
Lb=max(3,3×round(L1/3));
其中,所述Logs()为ceilLog s()、floorLog s()或roundLog s();
Lb表示所述初始分组步长,bounding_box_size_x、bounding_box_size_y以及bounding_box_size_z分别表示所述目标点云的包围盒的三个边的长度,s表示大于1的常数,L1表示中间值。
具体实施方式三:
L1=2×Logs(gsh_bounding_box_size_x);
L2=Logs(slice_num_points);
Lb=L1–L2+shift;且Lb≥1;也可以表示为:Lb=max(1,L1-L2+shift);或者,
Lb=max(1,L1-L2)+shift;
其中,所述Logs()为ceilLog s()、floorLog s()或roundLog s();
Lb表示所述初始分组步长,gsh_bounding_box_size_x表示点云片的三个边中长度最大值,slice_num_points表示所述点云片中的点数,shift表示偏移值,s表示大于1的常数,L1和L2表示中间值。
具体实施方式四:
L1=Logs(bounding_box_size_x)+Logs(bounding_box_size_y)+Logs(bounding_box_size_z);
Lb=max(3,3×round(L1/3));
其中,所述Logs()为ceilLog s()、floorLog s()或roundLog s();
Lb表示所述初始分组步长,bounding_box_size_x、bounding_box_size_y以及bounding_box_size_z分别表示所述目标点云的包围盒的三个边的长度,s表示大于1的常数,L1表示中间值。
具体实施方式五:本实施例中基于包围盒的表面积信息确定Lb;
L1=gsh_bounding_box_size_x_log2+gsh_bounding_box_size_z_log2;或,
L1=ceilLog2(gsh_bounding_box_size_x*gsh_bounding_box_size_z));
L2=ceillog2(num_points);
其中,x和z表示包围盒六个面中最小面积对应的面的边长;或,x和z表示包围盒六个面中最大面积对应的面的边长;或,x和z其中之一表示包围盒三个边中最小长度边的边长;或,x和z其中之一表示包围盒三个边中最大长度边的边长;
Lb=max(1,max(3,3×round(L1–L2/3))+shift)。
具体实施方式六:本实施例中基于包围盒的全部或部分表面积信息确定Lb;
L1=ceilLog2(gsh_bounding_box_size_x*gsh_boundingbox_size_z+gsh_bounding_box_size_y*gsh_boundingbox_size_z);
L2=ceilog2(num_points);
Lb=max(3,3×round(L1–L2/3))+shift。
具体实施方式七:
码流中解析得到L1;可以理解为,解码器解析码流得到关于初始分组步长的固定值,并将该固定值作为L1;
Lb=L1+shift;
具体实施方式八:
L1=32;
L2=log2(num_points);
Lb=max(3,3×round(L1–L2/3))+shift。
具体实施方式九:
L1=min(A,ceillog2(xyz));
L2=log2(num_points);
Lb=max(3,3×round(L1–L2/3))+shift;
其中,A表示上述目标参数信息中的固定值,xyz表示包围盒的体积。
需要说明的是,在任意一个具体实施方式中,在确定中间值L1和L2后,均可以根据以下方式来确定初始分组步长Lb:
Lb=max(3,3×round(L1–L2/3))+shift;或,
Lb=max(3,3×round(L1–L2/3)+shift);或
Lb=max(1,max(3,3×round(L1–L2/3))+shift)。
针对以上具体实施方案中shift的计算方式可以是以下方式的任一种:
1),基于预设查找表T。示例性的,由几何量化参数、属性量化参数及量化偏移参数计算获取查找表的索引值,进而根据所确定的索引值在查找表T中确定shift取值。
2),根据解析所述目标点云的码流得到的属性特征,如头信息参数attrQuantParam和可能的QPOffset等,确定上述偏移值;
3),解码器还可以直接获取到shift的固定值,并将该固定值确定为shift的取值。其中上述直接获取的固定值可以是编解码端默认的,也可以是解码器通过解码获得的。
4),解码器还可以将预设标识对应的固定值确定为偏移值shift,其中不同的预设标识对应于不同的固定值。如上述预设标识为C1情况下,偏移值取值为c1,上述预设标识为C2情况下,偏移值取值为c2,c1和c2均为正数;其中上述预设标识可以是编解码端默认的,也可以是解码器通过解码获得的,也可以是查找表确定的。
具体实施方式十:
本实施例中,上述解码分组信息中初始分组步长的取值为目标固定值的整数倍,例如上述“具体实施方式八”中‘L1=32’,其中L1取值为1的整数倍,该实施例中“目标固定值”即为1。其中,本申请实施例中,上述目标固定值可以是解码器根据目标点云的目标特征确定的;或,上述目标固定值可以是解码器根据预设标识确定目标固定值,而不同的所述预设标识对应于不同的固定值,从而可以根据预设标识确定上述目标固定值;或,上述目标固定值可以是解码器将目标参数信息中的第一默认值确定为所述目标固定值。具体地:
S1:根据目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定目标固定值;或,根据所述目标参数信息中的预设标识确定目标固定值,其中不同的所述预设标识对应于不同的固定值;或,将所述目标参数信息中的第一默认值确定为所述目标固定值。
S2:将上述目标固定值的整数倍,确定为初始分组步长的取值。
在一些实施例中,S1中所利用的目标特征可以是编解码端默认的固定参数,也可以是上述编码参数信息、点云特征信息和包围盒信息中的一种或多种。
示例性的,在上述目标特征采用点云特性信息中的点云类型的情况下,在点云类型为密集类型或人眼视觉点云的情况下,确定上述目标固定值取值为m;或者,在上述点云类型为稀疏类型或机器视觉点云的情况下,确定上述目标固定值取值n,其中m和n取值为正整数。
例如,上述m取值为3,上述n取值为1。例如,若目标特征为点云类型且上述点云类型为密集类型,则上述初始分组步长的取值可以为3的整数倍。当然,本申请实施例对m、n的取值不做限定。
示例性的,在上述目标特征采用包围盒信息的情况下,在包围盒的三个边相关性满足预设条件的情况下,确定上述目标固定值取值为p;或者,在包围盒的三个边相关性不满足预设条件的情况下,确定上述目标固定值取值为q,其中,p和q取值为正整数。其中,上述预设条件具体可以是相关性是否大于预设值(如80%)。具体地,可以通过三个边的长度方差或标准差来确定三个边的长度之间的相关性。例如,若boundingbox_size_z远小于或远大于boundingbox_size_x或boundingbox_size_y,说明包围盒的三个边的长度相似度较小。
示例性的,上述p的取值为3,上述q的取值为1。例如,若boundingbox_size_z、boundingbox_size_x以及boundingbox_size_y之间方差小于预设值,说明包围盒的三个边的长度相似度较高,则上述初始分组步长的取值可以为3的整数倍。当然,本申请实施例对p、q的取值不做限定。
示例性的,上述目标固定值还可以根据上述编码参数信息去确定,例如根据几何量化参数和/或属性量化参数确定。
在另一些实施例中,S1中的预设标识可以是编解码端默认的,也可以是解码器通过解码获得的,还可以是根据预设查找表确定的。例如,解码器确定标识为Q1的情况下,将标识Q1对应的固定值确定为上述目标固定值。另外,解码器还可以直接获取到上述第一默认值,并将该第一默认值确定为上述目标固定值。其中上述第一默认值可以是编解码端默认的,也可以是解码器通过解码获得的。
可以理解的是,用于确定初始分组步长的具体实施方式不限于上述实施例。例如还可以是目标特征之间以及目标特征与常数之间的其他组合方式,本申请对此不做限定。
以下介绍S410-B的具体实施方式,即确定用于计算初始分组步长Lb的中间量的具体实施方式:
相关技术中,在属性为反射率的情况下,在属性重建过程中,初始分组步长的表达公式如下:
其中,用于确定上述初始分组步长Lbase的中间量为上述偏移值shift、也可以是最大比特数maxBits和最小比特数minBits。
本申请实施例可以如同S410-A对应的实施例,解码器可以根据上述目标特征直接确定初始分组步长Lb,还可以根据上述目标特征来确定相关技术中上述初始分组步长Lbase的中间量。解码器还可以将目标参数信息中的第二默认值确定为所述中间量,其中上述第二默认值可以是编解码端默认的,也可以是解码器通过解码获得的,还可以是根据预设查找表确定的。解码器还可以将目标参数信息中的预设标识对应的固定值确定为上述中间量,其中不同的预设标识对应于不同的固定值。
示例性的,最大比特数maxbits=Logs(V(bounding_box));最小比特数minbits=ceilLogs(A);其中,maxbits表示所述最大比特数,V(bounding_box)表示所述包络盒的体积,minbits表示所述最小比特数,A表示固定参数。
示例性的,最大比特数maxbits=Logs(num_points);最小比特数minbits根据目标点云的类型不同取值为不同的参数值;其中,num_points表示目标点云中的点数。
示例性的,可以通过解析上述目标点云的码流得到的属性特征,如,头信息参数attrQuantParam和可能的QPOffset,来确定上述偏移值shift。
示例性的,还可以通过查找预设表所确定的固定参数X1来确定所述偏移值,其中,同前所述预设表为在编码器对上述目标点云进行编码前或编码时生成的。
示例性的,可以通过解析上述目标点云的码流得到的固定参数X2,来确定上述偏移值shift。例如,shift=ceil(log2(X2))。
可见,本申请实施例可以通过S420-2A或S420-2B的方式确定关于上述目标特征间或其映射值之间的多种多样的组合,从而提供的上述中间量的多种确定方式。本申请实施例对具体的组合方式不做限定。
作为S410-C的具体实施方式,即确定中间量或初始分组步长Lb的上限值、下限值的具体实施方式,包括但是不限于以下方式:
(1)、解码器将获得的第三默认值确定为所述中间量(如,shift、maxbits、minbits)上限值,将获得的第四默认值确定为所述中间量(如,shift、maxbits、minbits)下限值;例如,解码器将固定值a作为中间量shift的上限值,将固定值b作为shift的上限值。可以理解的是,a、b取值为正数,且a大于b;其中,示例性的,上述固定值a和上述固定值b可以是编解码端默认的,也可以是解码器解码码流直接获得的;另一示例性的实施例中,解码器可以根据第一预设标识确定上述固定值a,根据第二预设标识确定上述固定值b,其中第一预设标识表示将shift的上限值设置为对应的固定值a,第二预设标识表示将shift的下限值设置为对应的固定值b。上述第一预设标识和第二预设标识,可以是编解码端默认的,也可以是解码器解码码流直接获得的。
同理,解码器还可以将固定值a’作为初始分组步长Lb的上限值,将固定值b’作为初始分组步长Lb的上限值。可以理解的是,a’、b’取值为正数,且a’大于b’;其中,示例性的,上述固定值a’和上述固定值b’可以是编解码端默认的,也可以是解码器解码码流直接获得的;另一示例性的实施例中,解码器可以根据第一预设标识确定上述固定值a’,根据第二预设标识确定上述固定值b’,其中第一预设标识表示将Lb的上限值设置为对应的固定值a’,第二预设标识表示将Lb的下限值设置为对应的固定值b’。上述第一预设标识和第二预设标识,可以是编解码端默认的,也可以是解码器解码码流直接获得的。
(2)、可以根据点云类型确定初始分组步长Lb或中间量的上限值和下限值;例如,相较于稀疏类型的点云,对于稠密类型的点云,上述初始分组步长Lb的上限值和下限值均较小。例如,对于稠密类型的点云,上述初始分组步长Lb的上限值为z1和下限值为z2;对于稠密类型的点云,上述初始分组步长Lb的上限值为z3和下限值为z4;则z1取值小于z3,z2取值小于z4;
(3)、可以根据编码参数信息确定初始分组步长Lb或中间量的上限值和下限值;如根据几何输出比特位深、属性输出比特位深、几何量化参数以及属性量化参数确定Lb的上限值和下限值;示例性的,还可以根据变换方法、预测方法以及排序方法确定Lb的上限值和下限值,如变换方式为预测变换编码的情况下,确定初始分组步长Lb的上限值为s1,下限值为s2,s1大于s2;变换方式为提升变换编码的情况下,确定初始分组步长Lb的上限值为s3,下限值为s4,s3大于s4;其中,s1和s3可以是不同的正数,s2和s4可以是不同的正数。
(4)、可以根据包围盒的参数信息,如包围盒边长,边长的相关性等,确定初始分组步长Lb或中间量的上限值和下限值。
可以理解的是,确定初始分组步长Lb的上限值和下限值的具体实施方式不限于上述内容,可以是根据上述目标特征确定的其他表现形式。
继续参考图4,在S420中,通过上述解码分组信息对第一重建位置点进行分组处理,得到多个分组,其中,上述第一重建位置点基于解码器对上述目标点云的几何码流进行解码得到;以及,在S430中,对每个分组进行属性解码。
在示例性的实施例中,根据上述实施例确定解码分组信息中的初始分组步长。解码器根据上述初始分组步长对重排序后的重建位置点进行分组处理。关于分组的具体实施方式将在图6对应的实施例中详细描述。进一步地,基于分组处理后的重建位置点进行属性解码,从而完成对目标点云码流的解码过程,得到目标点云的重建点云。
本申请实施例提供的P400点云解码方案中,解码器根据在编解码器端默认的或,解析所述目标点云的码流得到的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息,来确定解码分组信息。在属性解码过程中,解码器通过上述分组信息对第一重建位置点进行分组,得到多个分组。其中,上述第一重建位置点为解码器对目标点云的几何码流进行解码得到的。进一步地,解码器对每个分组进行属性解码。本申请实施例提供的解码方案中,解码器根据上述目标特征确定解码分组信息,解码分组信息如初始分组步长、用于确定初始分组步长的中间量、上述初始分组步长的上下限值等,可见本申请实施例中根据目标点云自身相关的多样化特征来确定分组信息。相较于相关技术提供的初始分组步长的确定方式,本申请实施例能够提升分组多样性,有利于提升点云的解码性能。
图6为本申请另一实施例提供的一种点云解码方法P500的流程示意图。其中,点云解码方法P500的执行主体可以是解码器,可以是执行解码过程的电子设备。参考图5,点云解码方法P500包括:S52-S58。
在S52中,解码器对目标点云的几何码流进行解码,得到第一重建位置点。
示例性的,将解码器端对几何码流就行解码得的重建位置点,记作第一重建位置点。另外,把编码器端在进行属性预测阶段得到的重建位置点,记作第二重建位置点。
本申请实施例中,对点云几何坐标的重建顺序,包括但是不限于以下方式:
a)在片几何信息完成解码和重建后xyz,对当前片的几何信息进行整体重建,即最终重建几何信息为rec_xyz=xyz+gsh_bounding_box_offset。其中gsh_bounding_box_offset为片包围盒原点xyz坐标;
b)在片属性信息完成解码和重建后,对当前片的几何信息进行整体重建。
在S54中,解码器对第一重建位置点进行重排序。
其中,本申请实施例对上述第一重建位置点进行重排序的方式不做限定。例如,可以是解码器按照点云输入顺序进行重排序;还可以是解码器按照点云空间曲线(包括莫顿序、希尔伯特序)的顺序进行重排序;还可以是根据输入参数的信息(如采集信息,Lidar信息等)进行重排序,等等。
在S56中,确定解码分组信息,并根据解码分组信息对第一重建位置点进行分组。
其中,确定解码分组信息的具体实施方式已在P400对应的实施例中进行了详细描述,在此不再赘述。
本申请实施例中,本申请实施例中例如以希尔伯特序对上述第一重建位置点进行的重排序,重排序后的点对应于希尔伯特码。在通过上述实施例确定的解码分组信息为初始分组步长Lb的情况下,可以通过以下方式对第一重建位置点对应的希尔伯特码进行分组:
(1)通过所确定的初始分组步长Lb,对第一重建位置点进行初次分组;
将希尔伯特码右移位初始分组步长Lb后相同的的点划分至同一个宏块。
(2)确定是否需对同一宏块内的希尔伯特码进行细分组;
需要说明的是,对每个宏块中的点,可以判断当前宏块中是否存在重复点。若当前宏块中存在重复点,则在重复点处截断分组,并将重复点独立分组,即对重复点按点数为1进行分组。假如当前宏块中包含4个点,第4个点为重复点,则可以将前3个作为一个分组,第4个重复点单独作为一个分组。
在相关技术中,在颜色重建过程中,若当前块内的点数小于等于最大变换阶数colorMaxTransNum,则该宏块内的点成为一组,若当前块内的点数大于colorMaxTransNum,则对该块内的点进行细分组,细分组的规则为:获取当前右移位数L,则当前细分组的右移位数L1取值为L-1,然后将希尔伯特码右移L1位后相同的点归为新的一细分组;并继续判断该细分组内的点数是否大于colorMaxTransNum,直至每个细分组内的点数都小于等于colorMaxTransNum。
在相关技术中,在反射率重建过程中,若当前宏块内点的个数大于最大变换阶数reflMaxTransNum,则依次取最大变换阶数reflMaxTransNum个点作为一个细分组,直至该块内各个分组中的点数都小于等于reflMaxTransNum。
本申请实施例可以采取相关技术提供的方式来确定是否需对宏块内的点进行细分组。
(3)确定是否需更新分组步长;
在相关技术中,在颜色重建过程中,统计前序3个连续分组组内的点数的和值,并将和值右移三位(即,除以8)后记作B,如果B的值小于2,则更新后的步长L=L+1;如果B的值大于8,则更新后的步长L=L-1;若B大于或等于2且小于或等于8,则不更新步长L。
在相关技术中,在反射率重建过程中,若最大变换阶数reflMaxTransNum>2且初始分组步长中偏移值shift>0,则更新分组步长;否则保持当前的分组步长不更新。具体地,统计前序N组的总点个数,计算N(如,N=8)组的平均点数,如果平均点数小于2,则更新后的分组步长L=L+1;如果上述平均点数大于最大变换阶数reflMaxTransNum,则新后的分组步L=L-1;如果上述平均点数大于或等于2且小于或等于最大变换阶数reflMaxTransNum,也保持分组步长L不变。
可见,相关技术中在确定是否更新分组步长时均考虑前序多个分组中的点数。需要说明的是,相关技术中均将重复点形成的一个点分组也可以作为上述前序分组并用于确定是否更新分组步长,即相关技术中均考虑重复点所形成的组的点数。
本申请实施例中,对当前宏块内的点进行细分组的方式包括但是不限于以下:
a)统计前序N个通过分组步长信息直接分组的组对应的点数,其中前述直接分组为非细分组,即根据分组步长确定的分组。具体根据该点数确定是否更新分组步长。
b)统计前序N个不含重复点的组对应的点数。需要说明的是,该方式不同于相关技术中判断是否更新分组步长时需要统计重复点的点数。本申请实施例中通过统计不包含重复点的分组中点数的方式,来确定是否需更新分组步长。
本申请实施例中对分组步长的更新方式更加灵活,有利于提升解码性能。
继续参考图6,在S58中,解码器进行组内属性解码。
在一种实施例中,可以在对所有第一重建位置点分组结束后,再在对分组得到的每个组执行属性编码过程。在另一种实施例中,也可以在确定每个宏块的细分组之后,边进行下一个宏块的处理边对当前宏块已完成的分组进行属性编码过程,以提升编码整体效率。
本申请实施例提供的点云解码方法P500中,同方法P400中解码器根据在编解码器端默认的或解析所述目标点云的码流得到的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息,来确定解码分组信息。同时,本实施例提供的点云解码方法P500相较于相关技术,不仅初始分组步长及其中间量的确定方式进行了改进,使得分组更加多样性;同时还对是否更新分组步长的确定方式进行了扩展,对属性解码过程提供了优化处理方案,以及几何重建方式进行了扩展,以上改进均有利于提升点云的解码性能。
上面通过一些实施例对本申请实施例提供的点云编码方法进行详细说明。下面将通过一些实施例对本申请实施例提供的点云编码方法进行详细说明。
图7为本申请实施例提供的一种点云编码方法P600的流程示意图。其中,点云编码方法P600的执行主体可以是编码器,可以是执行编码过程的电子设备。参考图7,点云编码方法P600包括:S610-S630。
在S610中,根据目标点云的目标特征,确定编码分组信息,其中,所述目标特征包括编码所述目标点云的码流相关的或编码端默认的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息。
其中,上述目标点云为任一点云数据,例如可以是某一视频帧对应的点云数据。
需要说明的是,在编码器对目标点云进行预处理之前,会根据参数配置确定是否要将整体点云序列划分成多个点云片(slice)。在根据上述参数配置确定将整个点云序列划分为多个点云片的情况下,可以将每个点云片slice视为单个独立点云进行串行处理。因此,在一些实施例中,上述目标点云可以是整体级别的点云;在一些实施例中,上述目标点云还可以是对整体级别的点云序列就行划分得到的点云片,即上述目标点云可以是点云片级别的点云。
同理,上述目标特征可以是整体级别点云的特征,也可以是点云片级别的特征。例如,目标特征为点云密度,则若上述目标点云为整体级别的点云,该目标特征指的是整体级别点云的密度;若上述目标点云为点云片级别的点云,该目标特征指的是对整体级别点云划分后得到的点云片的密度。
本申请一种实施例中,编码器可以将编码目标点云所需的信息确定为上述目标特征,例如以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息。在本申请另一种实施例中,上述目标特征还可以是在编解码端默认的信息。另外,编码器也可以查找预设表来确定上述目标特征,其中,上述预设表为对所述目标点云进行编码前或编码时生成的。在编解码器端默认的参数是指在编码器端和对应的解码器端之间相互默认的信息,是在点云编解码过程中无需进行编解码的信息。上述目标参数信息可以包括常数值(或称作固定值、默认值),还可以包括至少一个预设标识,其中每个预设标识均对应有固定值。
在示例性的实施例中,上述编码参数信息是指编码上述目标点云时采用的特征参数,可以包括以下信息中的一种或多种:编码器编码属性信息所需的属性预测变换最大变换阶数、属性输出比特位深以及属性量化参数;编码器编码几何信息所需的的几何输出比特位深以及几何量化参数。上述编码参数信息还可以包括:变换方法、预测方法以及排序方法等。
在示例性的实施例中,上述点云特性信息可以反映上述目标点云的特性,例如可以包括以下信息中的一种或多种:点云类型、点云密度、点云空间占有率、分辨率以及点云点数。
本申请实施例中所提供的上述点云特性信息具体可以是指整体点云级别的点云密度、点云空间占有率、分辨率以及点云点数,上述属性信息具体还可以是指点云片slice级别的点云密度、点云空间占有率、分辨率以及点云点数。
在示例性的实施例中,上述包围盒信息具体为该目标点云的包围盒的特征。
可以理解的是,编码器在预处理阶段对目标点云的几何信息进行坐标转换,具体地可以使点云全都包含在一个包围盒(bounding box)中。参考图5,包围盒表示包含输入点云中所有点的最小长方体。
其中,上述包围盒的原点和尺寸确定实施例如下:
输入点云的k-th点的浮点类型的坐标表示为(xk,yk,zk),k=0,...,K-1,K是点云中的点数,坐标信息xmin,ymin,zmin,xmax,ymax,zmax分别表示如下:
xmin=min(x0,x1,...,xK-1)
ymin=min(y0,y1,...,yK-1)
zmin=min(z0,z1,...,zK-1)
xmax=max(x0,x1,...,xK-1)
ymax=max(y0,y1,...,yK-1)
zmax=max(z0,z1,...,zK-1)
上述函数min(s0,s1,...,sK-1)表示取当前输入(s0,s1,...,sK-1)中的最小值,max(s0,s1,...,sK-1)表示取当前输入(s0,s1,...,sK-1)中的最大值。
进一步地,包围盒的原点(xorigin,yorigin,zorigin)的确定实施例如下:
xorigin=int(floor(xmin))
yorigin=int(floor(ymin))
zorigin=int(floor(zmin))
包围盒在x,y,z方向上的尺寸可以计算如下:
Bounding_Box_Size_x=int(xmax-xorigin)+1
Bounding_Box_Size_y=int(ymax-yorigin)+1
Bounding_Box_Size_z=int(zmax-zorigin)+1
其中,int(s)表示取整函数,floor(s)函数返回小于或等于s的最大整数值。
本申请实施例中,上述目标点云的包围盒信息可以包括以下信息中的一种或多种:包围盒三个边的长度与方向,以及关于包围盒三个边的长度统计值。其中,关于包围盒三个边的长度统计值包括以下信息中的一种或多种:三个边的长度均值、长度中数值、长度众数值、三个边中的长度最大值、三个边中的长度最小值、至少两个边的长度之间的线性组合、包围盒的体积相关计算以及包围盒的表面积相关计算,等。例如,上述至少两个边的长度之间的线性组合可以包括:边长之和、边长之差,边长对应的取对数之间的组合等。上述包围盒的表面积相关计算可以包括:最短边长对应的表面积、较长的两个边长对应的表面积,以及如上述不同的类型的表面积之间的组合,以及如上述不同类型表面积的对数之间的组合等信息。可以理解的是,凡是基于包围盒信息所确定的统计值,均可以认为是上述目标特征。
在上述实施例介绍了关于目标特征的实施例之后,接下来介绍如何根据上述目标特征来确定编码分组信息。
S610-1:通过目标函数对至少一种上述目标特征进行映射,得到至少一个映射值。
其中,通过目标函数f()对于目标特征x,进行映射,得到目标特征对应的映射值f(x)。
本申请实施例中,上述目标函数f()可以是一次函数、二次函数、正比例函数、反比例函数、三角函数、指数函数和对数函数等。例如,采用对数函数f(x)=log2x。
本申请实施例中,上述目标特征表现为参数值或特征值的情况下,可以通过上述目标函数对该值进行映射处理。示例性的,在上述目标特征包含两个或两个以上参数值的情况下,可以通过不同类型的目标函数对不同的参数值进行映射。例如,当前参数值为x1和x2,则可以对应的映射值可以是:lg(x1)和ex2。
示例性的,上述映射处理还可以是点数相关的线性组合;例如,Log2(a*num_points+/-b),其中,a和b为常数;或者,上述映射处理还可以是与点数的取对数值相关的线性组合;例如,b-a*Log2(num_points),或b+a*Log2(num_points)其中,a和b为常数。
可以理解的是,上述映射值还可以是目标特征的参数值本身。例如,目标特征的参数值为x3,经过本实施例的映射操作后,映射值仍为x3。
需要说明的是,本申请实施例中,根据上述目标函数对目标特征进行映射处理后,所确定映射值为整数。具体地,在上述目标函数包含取对数处理的情况下,在取对数处理后进行取整计算;在上述目标函数包含除法处理的情况下,在除法处理后进行取整计算。需要说明的是,在基于其他目标函数的映射过程中出现小数的情况下,或者经过目标函数映射后仍为目标特征本身,且该目标特征包含小数的情况下,也需要进行取整操作。
在示例性的实施例中,上述取整计算可以是:向上取整、向下取整或四舍五入取整等。当然还可以是其他形式的取整计算方式,例如三舍四入等等,本申请实施例对此不做限定。例如,目标特征为目标点云的点数且取值为10000,目标函数为以2为底的对数函数,则通过上述目标函数所确定的映射值为:round(log2(10000))。
在确定上述映射值后,可以执行以下S610-2A或S610-2B方式中来确定编码分组信息。
在S610-2A中,根据至少一个映射值之间的组合或映射值与常数值之间的组合,确定编码分组信息。
其中,上述组合可以是线性组合或非线性组合。
示例性的实施例中,上述至少一个映射值可以表示为f(x)和g(y),则示例性的分组编码信息可以表示为:A×f(x)+B×g(y)、A×f(x)-B×g(y)、A×f(x)2+A×g(y)2、A×f(x)2-A×g(y)2、A×f(x)3+B×g(y),等等。其中,f()和g()可以表示两个相同或不同的目标函数,A和B为正数常数值。
在S610-2B中,根据上述至少一个映射值与未经过映射的目标特征之间的组合,确定编码分组信息。
同上所述,上述未经过映射的目标特征,也可以认为是经过目标函数映射后仍为本身的情况。假如x对应的映射值仍为x,经过目标函数映射至少一个映射值可以表示为g(y),则示例性的分组编码信息可以表示为:C×x+B×g(y)、C×x-B×g(y)、C×x2+A×g(y)2、C×x 2-A×g(y)2、C×x 3+B×g(y),等等。其中,f()和g()可以表示两个相同或不同的目标函数,A、B和C为正数常数值。
在示例性的实施例中,上述编码分组信息可以包括初始分组步长,也可以包括用于计算初始分组步长中的中间量,还可以包括上述初始分组步长的取值上限值和/或下限值。从而,作为S610的具体实施方式,可以包括以下步骤中的任意一个:
S610-A:确定编码分组信息中初始分组步长。
S610-B:确定用于计算初始分组步长的中间量;以及,根据所述中间量确定上述初始分组步长,得到所述编码分组信息。
S610-C:确定编码分组信息中初始分组步长的上限值和/或下限值,确定解码分组信息中中间量的上限值和/或下限值。
其中,上述初始分组步长表示编码器在对重建位置点进行重排序之后,对第二重建位置点(编码器端在进行属性预测阶段得到的重建位置点)进行初始分组所采用的步长。也就是说,未对分组步长进行任何更新情况下的分组步长。也可以说是,在对目标点云的属性预测过程中,编码器第一次对上述第二重建位置点进行分组时候所采用的步长。
以下介绍S610-A的具体实施方式,即根据上述目标特征确定初始分组步长Lb的具体实施方式:
具体实施方式一:
L1=Logs(gsh_bounding_box_size_x)+Logs(gsh_bounding_box_size_y)+
Logs(gsh_bounding_box_size_z);
L2=Logs(slice_num_points);
Lb=L1–L2,且Lb≥1;
其中,所述Logs()为ceilLog s()、floorLog s()或roundLog s();
Lb表示所述初始分组步长,gsh_bounding_box_size为点云片级的包围盒尺寸,slice_num_points为点云片级的点云点数,s表示大于1的常数,L1和L2表示中间值。
具体实施方式二:
L1=Logs(bounding_box_size_x)+Logs(bounding_box_size_y)+Logs(bounding_box_size_z);
Lb=max(3,3×round(L1/3));
其中,所述Logs()为ceilLog s()、floorLog s()或roundLog s();
Lb表示所述初始分组步长,bounding_box_size_x、bounding_box_size_y以及bounding_box_size_z分别表示所述目标点云的包围盒的三个边的长度,s表示大于1的常数,L1表示中间值。
具体实施方式三:
L1=2×Logs(gsh_bounding_box_size_x);
L2=Logs(slice_num_points);
Lb=L1–L2+shift;且Lb≥1;也可以表示为:Lb=max(1,L1-L2+shift);或者,
Lb=max(1,L1-L2)+shift;
其中,所述Logs()为ceilLog s()、floorLog s()或roundLog s();
Lb表示所述初始分组步长,gsh_bounding_box_size_x表示点云片的三个边中长度最大值,slice_num_points表示所述点云片中的点数,shift表示偏移值,s表示大于1的常数,L1和L2表示中间值。
具体实施方式四:
L1=Logs(bounding_box_size_x)+Logs(bounding_box_size_y)+Logs(bounding_box_size_z);
Lb=max(3,3×round(L1/3));
其中,所述Logs()为ceilLogs()、floorLogs()或roundLogs();
Lb表示所述初始分组步长,bounding_box_size_x、bounding_box_size_y以及bounding_box_size_z分别表示所述目标点云的包围盒的三个边的长度,s表示大于1的常数,L1表示中间值。
具体实施方式五:本实施例中基于包围盒的表面积信息确定Lb;
L1=gsh_bounding_box_size_x_log2+gsh_bounding_box_size_z_log2;或,
L1=ceilLog2(gsh_bounding_box_size_x*gsh_bounding_box_size_z));
L2=ceillog2(num_points);
其中,x和z表示包围盒六个面中最小面积对应的面的边长;或,x和z表示包围盒六个面中最大面积对应的面的边长;或,x和z其中之一表示包围盒三个边中最小长度边的边长;或,x和z其中之一表示包围盒三个边中最大长度边的边长;
Lb=max(1,max(3,3×round(L1-L2/3))+shift)。
具体实施方案六:本实施例中基于包围盒的全部或部分表面积信息确定Lb;
L1=ceilLog2(gsh_bounding_box_size_x*gsh_boundingbox_size_z+gsh_bounding_box_size_y*gsh_boundingbox_size_z);
L2=ceilog2(num_points);
Lb=max(3,3×round(L1-L2/3))+shift。
具体实施方案七:
码流中解析得到L1;可以理解为,编码器确定固定值并将该固定值作为L1;
Lb=L1+shift;
具体实施方案八:
L1=32;
L2=log2(num_points);
Lb=max(3,3×round(L1-L2/3))+shift。
具体实施方式九:
L1=min(A,ceillog2(xyz));
L2=log2(num_points);
Lb=max(3,3×round(L1-L2/3))+shift;
其中,A表示上述目标参数信息中的固定值,xyz表示包围盒的体积。
需要说明的是,在任意一个具体实施方式中,在确定中间值L1和L2后,均可以根据以下方式来确定初始分组步长:
Lb=max(3,3×round(L1-L2/3))+shift;或,
Lb=max(3,3×round(L1-L2/3)+shift);或
Lb=max(1,max(3,3×round(L1-L2/3))+shift)。
针对以上具体实施方案中shift的计算方式可以是以下方式的任一种:
1),基于预设查找表T。示例性的,由几何量化参数、属性量化参数及量化偏移参数计算获取查找表的索引值,进而根据所确定的索引值在查找表T中确定shift取值。
2),根据解析所述目标点云的码流得到的属性特征,如头信息参数attrQuantParam和可能的QPOffset等,确定上述偏移值;
3),编码器还可以直接获取到shift的固定值,并将该固定值确定为shift的取值。其中上述直接获取的固定值可以是编解码端默认的,也可以是编码器编码目标点云过程中所需的参数。
4),编码器还可以将预设标识对应的固定值确定为偏移值shift,其中不同的预设标识对应于不同的固定值。如上述预设标识为C1情况下,偏移值取值为c1,上述预设标识为C2情况下,偏移值取值为c2,c1和c2均为正数;其中上述预设标识可以是编解码端默认的,也可以是编码器编码目标点云过程中所需的,也可以是查找表确定的。
具体实施方式十:
本实施例中,上述编码分组信息中初始分组步长的取值为目标固定值的整数倍,例如上述“具体实施方式八”中‘L1=32’,其中L1取值为1的整数倍,该实施例中“目标固定值”即为1。其中,本申请实施例中,上述目标固定值可以是编码器根据目标点云的目标特征确定的;或,上述目标固定值可以是编码器根据预设标识确定目标固定值,而不同的所述预设标识对应于不同的固定值,从而可以根据预设标识确定上述目标固定值;或,上述目标固定值可以是编码器将所述目标参数信息中第一默认值确定为所述目标固定值。具体地:
S1:根据目标点云的目标特征,确定目标固定值;或,根据预设标识确定目标固定值,其中不同的所述预设标识对应于不同的固定值;或,将所述目标参数信息中第一默认值确定为所述目标固定值。
S2:将上述目标固定值的整数倍,确定为初始分组步长的取值。
在一些实施例中,S1中所利用的目标特征可以是编解码端默认的固定参数,也可以是上述编码参数信息、点云特征信息和包围盒信息中的一种或多种。
示例性的,在上述目标特征采用点云特性信息中的点云类型的情况下,在点云类型为密集类型或人眼视觉点云的情况下,确定上述目标固定值取值为m;或者,在点云类型为稀疏类型或密集视觉点云的情况下,确定上述目标固定值取值n,其中m和n取值为正整数。
例如,上述m取值为3,上述n取值为1。例如,若目标特征为点云类型且上述点云类型为密集类型,则上述初始分组步长的取值可以为3的整数倍。当然,本申请实施例对m、n的取值不做限定。
示例性的,在上述目标特征采用包围盒信息的情况下,在上述包围盒的三个边相关性满足预设条件的情况下,确定上述目标固定值取值为p;或者,在上述包围盒的三个边相关性不满足预设条件的情况下,确定上述目标固定值取值为q,其中,p和q取值为正整数。其中,上述预设条件具体可以是相关性是否大于预设值(如80%)。具体地,可以通过三个边的长度方差或标准差来确定三个边的长度之间的相关性。例如,若boundingbox_size_z远小于或远大于boundingbox_size_x或boundingbox_size_y,说明包围盒的三个边的长度相似度较小。
示例性的,上述p的取值为3,上述q的取值为1。例如,若boundingbox_size_z、boundingbox_size_x以及boundingbox_size_y之间方差小于预设值,说明包围盒的三个边的长度相似度较高,则上述初始分组步长的取值可以为3的整数倍。当然,本申请实施例对p、q的取值不做限定。
示例性的,上述目标固定值还可以根据上述编码参数信息去确定,例如根据几何量化参数和/或属性量化参数确定。
在另一些实施例中,S1中的预设标识可以是编解码端默认的,也可以是编码器编码目标点云所需的信息,还可以是根据预设查找表确定的。例如,编码器在编码过程中确定标识为Q1的情况下,将标识Q1对应的固定值确定为上述目标固定值。另外,编码器还可以直接将上述第一默认值编入码流,并将该第一默认值确定为上述目标固定值。其中上述第一默认值可以是编解码端默认的,也可以是编码上述目标点云所需的。
可以理解的是,用于确定初始分组步长的具体实施方式不限于上述实施例。例如还可以是目标特征之间以及目标特征与常数之间的其他组合方式,本申请对此不做限定。
以下介绍S610-B的具体实施方式,即确定用于计算初始分组步长Lb的中间量的具体实施方式:
相关技术中,在属性为反射率的情况下,在属性预测过程中,初始分组步长的表达公式如下:
其中,用于确定上述初始分组步长Lbase的中间量为上述偏移值shift、也可以是最大比特数maxBits和最小比特数minBits。
本申请实施例可以如同S610-A对应的实施例,编码器可以根据上述目标特征直接确定初始分组步长Lb,还可以根据上述目标特征来确定相关技术中上述初始分组步长Lbase的中间量。编码器还可以将目标参数信息中的第二默认值确定为所述中间量,其中上述第二默认值可以是编解码端默认的,也可以是编码器编码目标点云所需的,还可以是根据预设查找表确定的。编码器还可以将目标参数信息中的预设标识对应的固定值确定为上述中间量,其中不同的预设标识对应于不同的固定值。
示例性的,最大比特数maxbits=Logs(V(bounding_box));最小比特数minbits=ceilLogs(B);其中,maxbits表示所述最大比特数,V(bounding_box)表示所述包络盒的体积,minbits表示所述最小比特数,B表示固定参数。
示例性的,最大比特数maxbits=Logs(num_points);最小比特数minbits根据目标点云的类型不同取值为不同的参数值;其中,num_points表示目标点云中的点数。
示例性的,可以通过解析上述目标点云的码流得到的属性特征,如,头信息参数attrQuantParam和可能的QPOffset,来确定上述偏移值shift。
示例性的,还可以通过查找预设表所确定的固定参数X1来确定所述偏移值,其中,同前所述预设表为在编码器对上述目标点云进行编码前或编码时生成的。
示例性的,可以通过解析上述目标点云的码流得到的固定参数X2,来确定上述偏移值shift。例如,shift=ceil(log2(X2))。
可见,本申请实施例可以通过S420-2A或S420-2B的方式确定关于上述目标特征间或其映射值之间的多种多样的组合,从而提供的上述中间量的多种确定方式。本申请实施例对具体的组合方式不做限定。
作为S410-C的具体实施方式,即确定初始分组步长Lb的上限值、下限值的具体实施方式,包括但是不限于以下方式:
(1)、编码器将获得的第三默认值确定为所述中间量(如,shift、maxbits、minbits)上限值,将获得的第四默认值确定为所述中间量(如,shift、maxbits、minbits)下限值;例如,编码器将固定值a作为中间量shift的上限值,将固定值b作为shift的上限值。可以理解的是,a、b取值为正数,且a大于b;其中,示例性的,上述固定值a和上述固定值b可以是编解码端默认的,也可以是编码器编码目标点云所需的;另一示例性的实施例中,编码器可以根据第一预设标识确定上述固定值a,根据第二预设标识确定上述固定值b,其中第一预设标识表示将shift的上限值设置为对应的固定值a,第二预设标识表示将shift的下限值设置为对应的固定值b。上述第一预设标识和第二预设标识,可以是编解码端默认的,也可以是编码器编码目标点云所需的。
具体地,编码器将固定值c作为初始分组步长Lb的上限值,将固定值d作为初始分组步长Lb的上限值。可以理解的是,c、d取值为正数,且c大于d;其中,示例性的,上述固定值c和上述固定值d可以是编解码端默认的,也可以是编码器编码上述目标点云所需的特征;另一示例性的实施例中,编码器可以根据第一预设标识确定上述固定值c,根据第二预设标识确定上述固定值d,其中第一预设标识表示将Lb的上限值设置为对应的固定值c,第二预设标识表示将Lb的下限值设置为对应的固定值d。上述第一预设标识和第二预设标识,可以是编解码端默认的,也可以是编码器编码上述目标点云所需的特征。
(2)、可以根据点云类型确定初始分组步长Lb或中间量的上限值和下限值;例如,相较于稀疏类型的点云,对于稠密类型的点云,上述初始分组步长Lb的上限值和下限值均较小。例如,对于稠密类型的点云,上述初始分组步长Lb的上限值为z1和下限值为z2;对于稠密类型的点云,上述初始分组步长Lb的上限值为z3和下限值为z4;则z1取值小于z3,z2取值小于z4;
(3)、可以根据编码参数信息确定初始分组步长Lb或中间量的上限值和下限值;如根据几何输出比特位深、属性输出比特位深、几何量化参数以及属性量化参数确定Lb的上限值和下限值;示例性的,还可以根据变换方法、预测方法以及排序方法确定Lb的上限值和下限值,如变换方式为预测变换编码的情况下,确定初始分组步长Lb的上限值为s1,下限值为s2,s1大于s2;变换方式为提升变换编码的情况下,确定初始分组步长Lb的上限值为s3,下限值为s4,s3大于s4;其中,s1和s3可以是不同的正数,s2和s4可以是不同的正数。
(4)、可以根据包围盒的参数信息,如包围盒边长,边长的相关性等,确定初始分组步长Lb或中间量的上限值和下限值。
可以理解的是,确定初始分组步长Lb或中间量的上限值和下限值的具体实施方式不限于上述内容,可以是根据上述目标特征确定的其他表现形式。
继续参考图7,在S620中,通过上述编码分组信息对第二重建位置点进行分组处理,得到多个分组,其中,上述第二重建位置点为上述编码器对所述目标点云的几何码流进行解码得到;以及,在S630中,对每个分组进行属性编码。
在示例性的实施例中,根据上述实施例确定编码分组信息中的初始分组步长。编码器根据上述初始分组步长对重排序后的重建位置点进行分组处理。关于分组的具体实施方式将在图8对应的实施例中详细描述。进一步地,基于分组处理后的重建位置点进行属性编码,从而完成对目标点云码流的编码过程,得到目标点云的重建点云。
本申请实施例提供的P600点云编码方案中,编码器根据在编解码器端默认的或,编码所述目标点云的码流相关的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息,来确定上述编码分组信息。在属性编码过程中,编码器通过上述分组信息对第一重建位置点进行分组,得到多个分组。其中,上述第二重建位置点为编码器对目标点云的几何码流进行解码得到的。进一步地,编码器对每个分组进行属性编码。本申请实施例提供的编码方案中,编码器根据上述目标特征确定编码分组信息,编码分组信息如初始分组步长、用于确定初始分组步长的中间量、上述初始分组步长的上下限值等,可见本申请实施例中根据目标点云自身相关的多样化特征来确定分组信息。相较于相关技术提供的初始分组步长的确定方式,本申请实施例能够提升分组多样性,有利于提升点云的编码性能。
图8为本申请另一实施例提供的一种点云编码方法P700的流程示意图。其中,点云编码方法P700的执行主体可以是编码器,可以是执行编码过程的电子设备。参考图8,点云编码方法P700包括:S72-S78。
在S72中,编码器对目标点云的几何码流进行几何编码,得到第二重建位置点。
本申请实施例中,把编码器端在进行属性预测阶段得到的重建位置点,记作第一重建位置点。另外,将解码器端在进行属性重建阶段对几何码流就行编码得的重建位置点,记作第一重建位置点。
本申请实施例中,对点云几何坐标的重建顺序,包括但是不限于以下方式:
a)在片几何信息完成解码和重建后xyz,对当前片的几何信息进行整体重建,即最终重建几何信息为rec_xyz=xyz+gsh_bounding_box_offset。其中gsh_bounding_box_offset为片包围盒原点xyz坐标;
b)在片属性信息完成解码和重建后,对当前片的几何信息进行整体重建。
在S74中,编码器对第二重建位置点进行重排序。
其中,本申请实施例对上述第二重建位置点进行重排序的方式不做限定。例如,可以是编码器按照点云输入顺序进行重排序;还可以是编码器按照点云空间曲线(包括莫顿序、希尔伯特序)的顺序进行重排序;还可以是根据输入参数的信息(如采集信息,Lidar信息等)进行重排序,等等。
在S76中,确定编码分组信息,并根据编码分组信息对第二重建位置点进行分组。
其中,确定编码分组信息的具体实施方式已在P600对应的实施例中进行了详细描述,在此不再赘述。
本申请实施例中,本申请实施例中例如以希尔伯特序,对上述第二重建位置点进行的重排序,重排序后的点对应于希尔伯特码。在通过上述实施例确定的编码分组信息为初始分组步长Lb的情况下,可以通过以下方式对第二重建位置点对应的希尔伯特码进行分组:
(1)通过所确定的初始分组步长Lb,对第二重建位置点进行初次分组;
将希尔伯特码右移位初始分组步长Lb后相同的的点划分至同一个宏块。
(2)确定是否需对同一宏块内的希尔伯特码进行细分组;
需要说明的是,对每个宏块中的点,可以判断当前宏块中是否存在重复点。若当前宏块中存在重复点,则在重复点处截断分组,并将重复点独立分组,即对重复点按点数为1进行分组。假如当前宏块中包含4个点,第4个点为重复点,则可以将前3个作为一个分组,第4个重复点单独作为一个分组。
在相关技术中,在颜色重建过程中,若当前块内的点数小于等于最大变换阶数colorMaxTransNum,则该宏块内的点成为一组,若当前块内的点数大于colorMaxTransNum,则对该块内的点进行细分组,细分组的规则为:获取当前右移位数L,则当前细分组的右移位数L1取值为L-1,然后将希尔伯特码右移L1位后相同的点归为新的一细分组;并继续判断该细分组内的点数是否大于colorMaxTransNum,直至每个细分组内的点数都小于等于colorMaxTransNum。
在相关技术中,在反射率重建过程中,若当前宏块内点的个数大于最大变换阶数reflMaxTransNum,则依次取最大变换阶数reflMaxTransNum个点作为一个细分组,直至该块内各个分组中的点数都小于等于reflMaxTransNum。
本申请实施例可以采取相关技术提供的方式来确定是否需对宏块内的点进行细分组。
(3)确定是否需更新分组步长;
在相关技术中,在颜色重建过程中,统计前序3个连续分组组内的点数的和值,并将和值右移三位(除以8)后记作B,如果B的值小于2,则更新后的步长L=L+1;如果B的值大于8,则更新后的步长L=L-1;若B大于或等于2且小于或等于8,则不更新步长L。
在相关技术中,在反射率重建过程中,若最大变换阶数reflMaxTransNum>2且初始分组步长中偏移值shift>0,则更新分组步长;否则保持当前的分组步长不更新。具体地,统计前序N组的总点个数,计算N(N=8)组的平均点数,如果平均点数小于2,则更新后的分组步长L=L+1;如果上述平均点数大于最大变换阶数reflMaxTransNum,则新后的分组步L=L-1;如果上述平均点数大于或等于2且小于或等于最大变换阶数reflMaxTransNum,也保持分组步长L不变。
可见,相关技术中在确定是否更新分组步长时均考虑前序多个分组中的点数。需要说明的是,相关技术中均将重复点形成的一个点分组也可以作为上述前序分组并用于确定是否更新分组步长,即相关技术中均考虑重复点所形成的组的点数。
本申请实施例中,对当前宏块内的点进行细分组的方式包括但是不限于以下:
a)统计前序N个通过分组步长信息直接分组的组对应的点数,前述直接分组为非细分组,即根据分组步长确定的分组。具体根据该点数确定是否更新分组步长。
b)统计前序N个不含重复点的组对应的点数。需要说明的是,该方式不同于相关技术中判断是否更新分组步长时需要统计重复点的点数。本申请实施例中通过统计不包含重复点的分组中点数的方式,来确定是否需更新分组步长。
本申请实施例中对分组步长的更新方式更加灵活,有利于提升编码性能。
继续参考图8,在S78中,编码器进行组内属性编码。
在一种实施例中,可以在对所有第二重建位置点分组结束后,再在对分组得到的每个组执行属性编码过程。在另一种实施例中,也可以在确定每个宏块的细分组之后,边进行下一个宏块的处理边对当前宏块已完成的分组进行属性编码过程,以提升编码整体效率。
本申请实施例提供的点云编码方法P700中,同方法P600中编码器根据在编解码器端默认的目标参数或,编码所述目标点云的码流相关的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息,来确定上述编码分组信息,从而能够提升分组多样性,有利于提升点云的编码性能。同时,本实施例提供的点云编码方法P700相较于相关技术,不仅初始分组步长及其中间量的确定方式进行了改进,使得分组更加多样性;同时还对是否更新分组步长的确定方式进行了扩展,对属性编码过程提供了优化处理方案,以及几何重建方式进行了扩展,以上改进均有利于提升点云的编码性能。
上文详细描述了本申请的点云解码方法以及点云编码方法实施例,下文结合图9至图12,分别详细描述本申请实施例提供的解码器和编码器实施例。
图9是本申请实施例提供的解码器的结构示意图。该解码器900可以为对目标点云的码流就行解码的电子设备。参考图9,解码器900包括:第一确定模块910、解码分组模块920以及属性解码模块930。
其中,上述第一确定模块910,用于根据目标点云的目标特征,确定解码分组信息,其中,上述目标特征包括解析上述目标点云的码流得到的或编解码端默认的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息;上述解码分组模块920,用于通过上述解码分组信息对第一重建位置点进行分组处理,得到多个分组,其中,上述第一重建位置点基于解码器对上述目标点云的几何码流进行解码得到;以及,上述属性解码模块930,用于对每个分组进行属性解码。
在一些实施例中,基于上述方案,上述点云特性信息包括以下信息中的一种或多种:点云类型、点云密度、点云空间占有率、分辨率以及点云点数。
在一些实施例中,基于上述方案,上述包围盒信息包括以下信息中的一种或多种:三个边的长度与方向,以及上述三个边的长度统计值;其中,上述三个边的长度统计值包括以下信息中的一种或多种:上述三个边的长度均值、长度中数值、长度众数值、上述三个边中的长度最大值、上述三个边中的长度最小值、至少两个边的长度之间的线性组合、至少一个边的长度与常数之间的线性组合、上述包围盒的体积以及上述包围盒的表面积。
在一些实施例中,基于上述方案,上述编码参数信息包括以下信息中的一种或多种:属性预测变换最大变换阶数、几何输出比特位深、属性输出比特位深、几何量化参数、属性量化参数、变换方法、预测方法以及排序方法。
在一些实施例中,基于上述方案,上述目标参数信息还可以是上述解码器查找预设表确定,上述预设表为上述编码器编码上述目标点云时确定。
在一些实施例中,基于上述方案,上述第一确定模块910具体用于:通过目标函数对至少一种上述目标特征进行映射,得到至少一个映射值;根据上述至少一个映射值与常数值之间的组合,确定解码分组信息;或者,根据上述映射值之间的组合,确定解码分组信息;或者,根据上述至少一个映射值与未经过映射的目标特征之间的组合,确定解码分组信息。
在一些实施例中,基于上述方案,上述解码器900还包括:取整模块;
其中,上述取整模块用于:在上述目标函数包含取对数处理的情况下,在上述取对数处理后进行取整计算;或者,在上述目标函数包含除法处理的情况下,在上述除法处理后进行取整计算。
在一些实施例中,基于上述方案,上述第一确定模块910包括:步长确定单元;
其中,上述步长确定单元用于:根据目标点云的目标特征,确定解码分组信息中初始分组步长。
在一些实施例中,基于上述方案,上述步长确定单元,包括:固定值确定子单元和步长确定子单元;
上述固定值确定子单元用于:根据上述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定目标固定值;或,根据上述目标参数信息中的预设标识确定目标固定值,其中不同的上述预设标识对应于不同的固定值;或,将上述目标参数信息中的第一默认值确定为上述目标固定值;上述步长确定子单元用于:将上述目标固定值的整数倍,确定为上述初始分组步长的取值。
在一些实施例中,基于上述方案,上述固定值确定子单元具体用于:在上述目标特征为点云类型的情况下,在上述点云类型为密集类型或人眼视觉点云的情况下,确定上述目标固定值取值为m;或者,在上述点云类型为稀疏类型或机器视觉点云的情况下,确定上述目标固定值取值n,其中m和n取值均为正整数;
在一些实施例中,基于上述方案,上述固定值确定子单元具体用于:在上述目标特征为包围盒信息的情况下,在上述目标特征为上述包围盒的三个边相关性满足预设条件的情况下,确定上述目标固定值取值为p;或者,在上述目标特征为上述包围盒的三个边相关性不满足预设条件的情况下,确定上述目标固定值取值为q,其中,p和q取值均为正整数。
在一些实施例中,基于上述方案,上述第一确定模块910包括:中间量确定单元;
其中,上述中间量确定单元用于:根据上述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定用于计算初始分组步长的中间量;或,将上述目标参数信息中的预设标识对应的固定值确定为上述中间量,其中不同的上述预设标识对应于不同的固定值;或,将上述目标参数信息中的第二默认值确定为上述中间量;以及,根据上述中间量确定上述初始分组步长,得到上述解码分组信息。
在一些实施例中,基于上述方案,上述第一确定模块910包括:限值确定单元;
其中,上述限值确定单元用于:
根据上述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定解码分组信息中初始分组步长的上限值和/或下限值;或,将上述目标参数信息中的第三默认值确定为上述中间量上限值,将上述目标参数信息中的第四默认值确定为上述中间量下限值;或,将上述目标参数信息中的第一预设标识对应的固定值确定为上述上限值,将上述目标参数信息中的第二预设标识对应的固定值确定为上述下限值,其中不同的上述预设标识对应于不同的固定值。
应理解的是,解码器实施例与点云解码方法实施例可以相互对应,类似的描述可以参照点云解码方法实施例。为避免重复,此处不再赘述。具体地,图9所示的解码器可以执行上述点云解码方法的实施例,并且装置中的各个模块的前述和其它操作和/或功能分别为了实现主节点组中的节点对应的方法实施例,为了简洁,在此不再赘述。
图10是本申请实施例提供的编码器的结构示意图。该编码器1000可以为对目标点云的码流就行编码的电子设备。参考图10,编码器1000包括:第二确定模块1010、编码分组模块1020以及属性编码模块1030。
其中,上述第二确定模块1010,用于根据目标点云的目标特征,确定编码分组信息,其中,上述目标特征包括编码上述目标点云相关的或编码端默认的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息;上述编码分组模块1020,用于通过上述编码分组信息对第二重建位置点进行分组处理,得到多个分组,其中,上述第二重建位置点为上述编码器对上述目标点云的几何码流进行几何编码得到;以及,上述属性编码模块1030,用于对每个分组进行属性编码。
在一些实施例中,基于上述方案,上述点云特性信息包括以下信息中的一种或多种:点云类型、点云密度、点云空间占有率、分辨率以及点云点数。
在一些实施例中,基于上述方案,上述包围盒信息包括以下信息中的一种或多种:三个边的长度与方向,以及上述三个边的长度统计值;其中,上述三个边的长度统计值包括以下信息中的一种或多种:上述三个边的长度均值、长度中数值、长度众数值、上述三个边中的长度最大值、上述三个边中的长度最小值、至少两个边的长度之间的线性组合、至少一个边的长度与常数之间的线性组合、上述包围盒的体积以及上述包围盒的表面积。
在一些实施例中,基于上述方案,上述编码参数信息包括以下信息中的一种或多种:属性预测变换最大变换阶数、几何输出比特位深、属性输出比特位深、几何量化参数、属性量化参数、变换方法、预测方法以及排序方法。
在一些实施例中,基于上述方案,上述目标参数信息还可以是上述编码器查找预设表确定,上述预设表为上述编码器编码上述目标点云时确定。
在一些实施例中,基于上述方案,上述第二确定模块1010具体用于:通过目标函数对至少一种上述目标特征进行映射,得到至少一个映射值;根据上述至少一个映射值与常数值之间的组合,确定编码分组信息;或者,根据上述映射值之间的组合,确定编码分组信息;或者,根据上述至少一个映射值与未经过映射的目标特征之间的组合,确定编码分组信息。
在一些实施例中,基于上述方案,上述编码器1000还包括:取整模块;
其中,上述取整模块用于:在上述目标函数包含取对数处理的情况下,在上述取对数处理后进行取整计算;或者,在上述目标函数包含除法处理的情况下,在上述除法处理后进行取整计算。
在一些实施例中,基于上述方案,上述第二确定模块1010包括:步长确定单元;
其中,上述步长确定单元用于:根据目标点云的目标特征,确定编码分组信息中初始分组步长。
在一些实施例中,基于上述方案,包括:固定值确定子单元和步长确定子单元;
上述固定值确定子单元用于:根据上述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定目标固定值;或,根据上述目标参数信息中的预设标识确定目标固定值,其中不同的上述预设标识对应于不同的固定值;或,将上述目标参数信息中的默认值确定为上述目标固定值;上述步长确定子单元用于:将上述目标固定值的整数倍,确定为上述初始分组步长的取值。
在一些实施例中,基于上述方案,上述固定值确定子单元具体用于:在上述目标特征为点云类型的情况下,在上述点云类型为密集类型或人眼视觉点云的情况下,确定上述目标固定值取值为m;或者,在上述点云类型为稀疏类型或机器视觉点云的情况下,确定上述目标固定值取值n,其中m和n取值均为正整数;
在一些实施例中,基于上述方案,上述固定值确定子单元具体用于:在上述目标特征为包围盒信息的情况下,在上述包围盒的三个边相关性满足预设条件的情况下,确定上述目标固定值取值为p;或者,在上述包围盒的三个边相关性不满足预设条件的情况下,确定上述目标固定值取值为q,其中,p和q取值均为正整数。
在一些实施例中,基于上述方案,上述第二确定模块1010包括:中间量确定单元;
其中,上述中间量确定单元用于:根据上述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定用于计算初始分组步长的中间量;或,将上述目标参数信息中的预设标识对应的固定值确定为上述中间量,其中不同的上述预设标识对应于不同的固定值;或,将上述目标参数信息中的第二默认值确定为上述中间量;以及,根据上述中间量确定上述初始分组步长,得到上述编码分组信息。
在一些实施例中,基于上述方案,上述第二确定模块1010包括:限值确定单元;
其中,上述限值确定单元用于:
根据上述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定编码分组信息中初始分组步长的上限值和/或下限值;或,将上述目标参数信息中的第三默认值确定为上述中间量上限值,将上述目标参数信息中的第四默认值确定为上述中间量下限值;或,将上述目标参数信息中的第一预设标识对应的固定值确定为上述上限值,将上述目标参数信息中的第二预设标识对应的固定值确定为上述下限值,其中不同的上述预设标识对应于不同的固定值。
应理解的是,编码器实施例与点云编码方法实施例可以相互对应,类似的描述可以参照点云编码方法实施例。为避免重复,此处不再赘述。具体地,图10所示的编码器可以执行上述点云编码方法的实施例,并且编码器装置中的各个模块的前述和其它操作和/或功能分别为了实现主节点组中的节点对应的方法实施例,为了简洁,在此不再赘述。
图11是本申请另一实施例提供的电子设备的结构示意图,图11示出的电子设备1100可以可以用于执行上述点云编码方法。
如图11所示,该电子设备1100可包括:存储器1110和处理器1120,该存储器1110用于存储计算机程序1130,并将该程序代码1130传输给该处理器1120。换言之,该处理器1120可以从存储器1110中调用并运行计算机程序1130,以实现本申请实施例中的点云解码方法或实现本申请实施例中的点云编码方法。
例如,该处理器1120可用于根据该计算机程序1130中的指令执行上述方法中的步骤。
在本申请的一些实施例中,该处理器1120可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器1130包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序1130可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器1110中,并由该处理器1120执行,以完成本申请提供的录制页面的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序1130在该电子设备中的执行过程。
如图11所示,该电子设备1100还可包括:收发器1140,该收发器1140可连接至该处理器1120或存储器1110。
其中,处理器1120可以控制该收发器1140与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器1140可以包括发射机和接收机。收发器1140还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备1100中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
图12为本申请实施例提供的编解码系统的结构示意图。如图12所示,编解码系统1200可以包括编码器1210和解码器1220。
在本申请实施例中,编码器1210可以是前述实施例中任一项所述的编码器,解码器1220可以是前述实施例中任一项所述的解码器。
上文中结合附图从功能模块的角度描述了本申请实施例的装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (20)
1.一种点云解码方法,其特征在于,所述方法包括:
根据目标点云的目标特征,确定解码分组信息,其中,所述目标特征包括解析所述目标点云的码流得到的或编解码端默认的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息;
通过所述解码分组信息对第一重建位置点进行分组处理,得到多个分组,其中,所述第一重建位置点基于解码器对所述目标点云的几何码流进行解码得到;
对每个分组进行属性解码。
2.根据权利要求1所述的方法,其特征在于,所述点云特性信息包括以下信息中的一种或多种:点云类型、点云密度、点云空间占有率、分辨率以及点云点数。
3.根据权利要求1所述的方法,其特征在于,所述包围盒信息包括以下信息中的一种或多种:三个边的长度与方向,以及所述三个边的长度统计值;
其中,所述三个边的长度统计值包括以下信息中的一种或多种:所述三个边的长度均值、长度中数值、长度众数值、所述三个边中的长度最大值、所述三个边中的长度最小值、至少两个边的长度之间的线性组合、至少一个边的长度与常数之间的线性组合、所述包围盒的体积以及所述包围盒的表面积。
4.根据权利要求1所述的方法,其特征在于,所述编码参数信息包括以下信息中的一种或多种:属性预测变换最大变换阶数、几何输出比特位深、属性输出比特位深、几何量化参数、属性量化参数、变换方法、预测方法以及排序方法。
5.根据权利要求1所述的方法,其特征在于,所述根据目标点云的目标特征,确定解码分组信息,包括:
通过目标函数对至少一种所述目标特征进行映射,得到至少一个映射值;
根据所述至少一个映射值与常数值之间的组合,确定解码分组信息;或者,根据所述映射值之间的组合,确定解码分组信息;或者,根据所述至少一个映射值与未经过映射的目标特征之间的组合,确定解码分组信息。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述目标函数包含取对数处理的情况下,在所述取对数处理后进行取整计算;或者,在所述目标函数包含除法处理的情况下,在所述除法处理后进行取整计算。
7.根据权利要求1至6中任意一项所述的方法,其特征在于,所述根据目标点云的目标特征,确定解码分组信息,包括:
根据所述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定目标固定值;或,根据所述目标参数信息中的预设标识确定目标固定值,其中不同的所述预设标识对应于不同的固定值;或,将所述目标参数信息中的第一默认值确定为所述目标固定值;
根据所述目标固定值的整数倍,确定所述解码分组信息中的初始分组步长的取值。
8.根据权利要求7所述的方法,其特征在于,
在所述目标特征为点云类型的情况下,所述根据所述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定目标固定值,包括:
在所述点云类型为密集类型或人眼视觉点云的情况下,确定所述目标固定值取值为m;或者,
在所述点云类型为稀疏类型或机器视觉点云的情况下,确定所述目标固定值取值n,其中m和n取值均为正整数;
在所述目标特征为包围盒信息的情况下,所述根据所述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定目标固定值,包括:
在所述包围盒的三个边相关性满足预设条件的情况下,确定所述目标固定值取值为p;或者,
在所述包围盒的三个边相关性不满足预设条件的情况下,确定所述目标固定值取值为q,其中,p和q取值均为正整数。
9.根据权利要求1至6中任意一项所述的方法,其特征在于,所述根据目标点云的目标特征,确定解码分组信息,包括:
根据所述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定用于计算初始分组步长的中间量;或,将所述目标参数信息中的预设标识对应的固定值确定为所述中间量,其中不同的所述预设标识对应于不同的固定值;或,将所述目标参数信息中的第二默认值确定为所述中间量;
根据所述中间量确定所述初始分组步长,得到所述解码分组信息。
10.根据权利要求1至6中任意一项所述的方法,其特征在于,所述根据目标点云的目标特征,确定解码分组信息,包括:
根据所述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定解码分组信息中初始分组步长的上限值和/或下限值;或,
将所述目标参数信息中的第三默认值确定为中间量上限值,将所述目标参数信息中的第四默认值确定为中间量下限值;或,
将所述目标参数信息中的第一预设标识对应的固定值确定为所述上限值,将所述目标参数信息中的第二预设标识对应的固定值确定为所述下限值,其中不同的所述预设标识对应于不同的固定值。
11.一种点云编码方法,其特征在于,应用于编码器,所述方法包括:
根据目标点云的目标特征,确定编码分组信息,其中,所述目标特征包括编码所述目标点云的码流相关的或编码端默认的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息;
通过所述编码分组信息对第二重建位置点进行分组处理,得到多个分组,其中,所述第二重建位置点为所述编码器对所述目标点云的几何码流进行解码得到;
对每个分组进行属性编码。
12.根据权利要求11所述的方法,其特征在于,所述点云特性信息包括以下信息中的一种或多种:点云类型、点云密度、点云空间占有率、分辨率以及点云点数;
所述包围盒信息包括以下信息中的一种或多种:三个边的长度与方向,以及所述三个边的长度统计值;
其中,所述三个边的长度统计值包括以下信息中的一种或多种:所述三个边的长度均值、长度中数值、长度众数值、所述三个边中的长度最大值、所述三个边中的长度最小值、至少两个边的长度之间的线性组合、至少一个边的长度与常数之间的线性组合、所述包围盒的体积以及所述包围盒的表面积;
所述编码参数信息包括以下信息中的一种或多种:属性预测变换最大变换阶数、几何输出比特位深、属性输出比特位深、几何量化参数、属性量化参数、变换方法、预测方法以及排序方法。
13.根据权利要求11所述的方法,其特征在于,所述根据目标点云的目标特征,确定编码分组信息,包括:
通过目标函数对至少一种所述目标特征进行映射,得到至少一个映射值;
根据所述至少一个映射值与常数值之间的组合,确定编码分组信息;或者,根据所述映射值之间的组合,确定编码分组信息;或者,根据所述至少一个映射值与未经过映射的目标特征之间的组合,确定编码分组信息。
14.根据权利要求11至13中任意一项所述的方法,其特征在于,所述根据目标点云的目标特征,确定编码分组信息,包括:
根据所述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定目标固定值;或,根据所述目标参数信息中的预设标识确定目标固定值,其中不同的所述预设标识对应于不同的固定值;或,将所述目标参数信息中的默认值确定为所述目标固定值;
根据所述目标固定值的整数倍,确定所述编码分组信息中的初始分组步长的取值。
15.根据权利要求14所述的方法,其特征在于,
在所述目标特征为点云类型的情况下,所述根据所述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定目标固定值,包括:
在所述点云类型为密集类型或人眼视觉点云的情况下,确定所述目标固定值取值为m;或者,
在所述点云类型为稀疏类型或机器视觉点云的情况下,确定所述目标固定值取值n,其中m和n取值均为正整数;
在所述目标特征为包围盒信息的情况下,所述根据所述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定目标固定值,包括:
在所述包围盒的三个边相关性满足预设条件的情况下,确定所述目标固定值取值为p;或者,
在所述包围盒的三个边相关性不满足预设条件的情况下,确定所述目标固定值取值为q,其中,p和q取值均为正整数。
16.根据权利要求11至13中任意一项所述的方法,其特征在于,所述根据目标点云的目标特征,确定编码分组信息,包括:
根据所述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定用于计算初始分组步长的中间量;或,将所述目标参数信息中的预设标识对应的固定值确定为所述中间量,其中不同的所述预设标识对应于不同的固定值;或,将所述目标参数信息中的第二默认值确定为所述中间量;
根据所述中间量确定所述初始分组步长,得到所述编码分组信息。
17.根据权利要求11至13中任意一项所述的方法,其特征在于,所述根据目标点云的目标特征,确定编码分组信息,包括:
根据所述目标特征中的点云特性信息、包围盒信息以及编码参数信息中的至少一种,确定编码分组信息中初始分组步长的上限值和/或下限值;或,
将所述目标参数信息中的第三默认值确定为中间量上限值,将所述目标参数信息中的第四默认值确定为中间量下限值;或,
将所述目标参数信息中的第一预设标识对应的固定值确定为所述上限值,将所述目标参数信息中的第二预设标识对应的固定值确定为所述下限值,其中不同的所述预设标识对应于不同的固定值。
18.一种解码器,其特征在于,所述解码器包括:
第一确定模块,用于根据目标点云的目标特征,确定解码分组信息,其中,所述目标特征包括:解析所述目标点云的码流得到的或编解码端默认的以下信息中的一种或多种:点云特性信息、包围盒信息、编码参数信息以及目标参数信息;
解码分组模块,用于通过所述解码分组信息对第一重建位置点进行分组处理,得到多个分组,其中,所述第一重建位置点为所述解码器对所述目标点云的几何码流进行解码得到;
属性解码模块,用于对每个分组进行属性解码。
19.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现如上述权利要求1至17中任意一项所述的方法。
20.一种计算机可读存储介质,其特征在于,用于存储计算机程序;
所述计算机程序使得计算机执行如上述权利要求1至10中任意一项所述的点云解码方法,或执行如上述权利要求11至17中任意一项所述的点云编码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311626550.XA CN117615136A (zh) | 2023-11-28 | 2023-11-28 | 点云解码方法、点云编码方法、解码器、电子设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311626550.XA CN117615136A (zh) | 2023-11-28 | 2023-11-28 | 点云解码方法、点云编码方法、解码器、电子设备以及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117615136A true CN117615136A (zh) | 2024-02-27 |
Family
ID=89954502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311626550.XA Pending CN117615136A (zh) | 2023-11-28 | 2023-11-28 | 点云解码方法、点云编码方法、解码器、电子设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117615136A (zh) |
-
2023
- 2023-11-28 CN CN202311626550.XA patent/CN117615136A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202141984A (zh) | 用於在基於幾何形狀的點雲壓縮中的預測變換的預測器索引訊號傳遞 | |
US20220321912A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
TW202249488A (zh) | 點雲屬性的預測方法、裝置及編解碼器 | |
WO2022121650A1 (zh) | 点云属性的预测方法、编码器、解码器及存储介质 | |
CN115086658B (zh) | 点云数据的处理方法、装置、存储介质及编解码设备 | |
CN116250008A (zh) | 点云的编码、解码方法、编码器、解码器以及编解码系统 | |
US12113963B2 (en) | Method and apparatus for selecting neighbor point in point cloud, encoder, and decoder | |
CN117615136A (zh) | 点云解码方法、点云编码方法、解码器、电子设备以及介质 | |
CN116325732A (zh) | 点云的解码、编码方法、解码器、编码器和编解码系统 | |
WO2023024842A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
CN115474041B (zh) | 点云属性的预测方法、装置及相关设备 | |
WO2024011381A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2024026712A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2022257150A1 (zh) | 点云编解码方法、装置、点云编解码器及存储介质 | |
WO2024207463A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2022140937A1 (zh) | 点云编解码方法与系统、及点云编码器与点云解码器 | |
WO2024065269A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2024145911A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2024197680A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2024145912A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
US20240087174A1 (en) | Coding and decoding point cloud attribute information | |
CN118055254A (zh) | 点云属性编解码方法、装置、设备 | |
CN117354496A (zh) | 点云编解码方法、装置、设备及存储介质 | |
CN115733990A (zh) | 点云编解码方法、设备及存储介质 | |
CN117221551A (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 |