CN117121489A - 点云编解码方法、编码器、解码器及计算机可读存储介质 - Google Patents

点云编解码方法、编码器、解码器及计算机可读存储介质 Download PDF

Info

Publication number
CN117121489A
CN117121489A CN202180096768.1A CN202180096768A CN117121489A CN 117121489 A CN117121489 A CN 117121489A CN 202180096768 A CN202180096768 A CN 202180096768A CN 117121489 A CN117121489 A CN 117121489A
Authority
CN
China
Prior art keywords
point
current point
quantization
points
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
Application number
CN202180096768.1A
Other languages
English (en)
Inventor
元辉
王璐
李明
王晓辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Publication of CN117121489A publication Critical patent/CN117121489A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种点云编解码方法、编码器、解码器及计算机可读存储介质,该方法包括:根据点云中的当前点的属性信息的预测值,确定当前点的属性信息的预测残差值;确定当前点的索引;若当前点的索引属于第一点的索引范围,则对当前点的属性信息的预测残差值进行无损编码;其中,第一点为进行无损编码的至少一个点;若当前点的索引不属于第一点的索引范围,则基于当前点的量化权重和当前点的量化步长,对当前点的属性信息的预测残差值进行量化,得到当前点的属性信息的量化残差值;并对量化残差值进行编码。

Description

点云编解码方法、编码器、解码器及计算机可读存储介质 技术领域
本申请实施例涉及点云编解码技术领域,尤其涉及一种点云编解码方法、编码器、解码器及计算机可读存储介质。
背景技术
通过采集设备对物体表面进行采集,形成点云数据,点云数据包括几十万甚至更多的点。在视频制作过程中,将点云数据以点云媒体文件的形式在编码设备和解码设备之间传输。但是,如此庞大的点给传输带来了挑战,因此,点云编码设备需要对点云数据进行压缩后传输。在基于几何的点云压缩(G-PCC,Geometry-based Point Cloud Compression)编码器框架中,将输入点云进行slice划分后,会对每一个slice进行独立编码,而在每一个slice中,点云的几何信息和每个点云所对应的属性信息是分开进行编码的。
对于点云的压缩来说,点云数据的压缩主要包括几何信息的压缩和属性信息的压缩,在属性信息压缩时,通过预测来减小或消除点云数据中的冗余信息,例如,从已编码的点中获得当前点的一个或多个相邻点,根据相邻点的属性信息,来预测当前点的属性信息。
目前存在点云预测不准确的问题,进而降低点云编解码的效果。
发明内容
本申请实施例提供了一种点云编解码方法、编码器、解码器及计算机可读存储介质,能够提升点云属性信息的预测准确性。
本申请实施例的技术方案可以如下实现:
第一方面,本申请实施例提供了一种点云编码方法,包括:
根据点云中的当前点的属性信息的预测值,确定所述当前点的属性信息的预测残差值;
确定当前点的索引;
若所述当前点的索引属于第一点的索引范围,则对所述当前点的属性信息的预测残差值进行无损编码;其中,所述第一点为进行无损编码的至少一个点;
若所述当前点的索引不属于第一点的索引范围,则基于所述当前点的量化权重和当前点的量化步长,对所述当前点的属性信息的预测残差值进行量化,得到所述当前点的属性信息的量化残差值;并对所述量化残差值进行编码,得到码流;其中,所述当前点的量化权重为对所述当前点的预测残差值进行加权时采用的权重。
第二方面,本申请实施例提供了一种点云解码方法,包括:
解码码流,确定点云中点的预测值和所述点云的当前点的属性信息的预测残差信息;
确定所述当前点的索引;
若所述当前点的索引属于第一点的索引范围,则所述预测残差信息为所述当前点的预测残差值,基于所述预测残差值和所述当前点的预测值,确定所述当前点的重建值;其中,所述第一点为进行无损编码的至少一个点;
若所述当前点的索引不属于第一点的索引范围,则所述预测残差信息为所述当前点的量化残差值;基于当前点的量化权重和当前点的量化步长,对所述量化残差值进行反量化,得到所述当前点的属性信息的重建残差值;以及根据所述重建残差值和所述当前点的属性信息的预测值,得到所述当前点的属性信息的重建值,其中,所述当前点的量化权重为对所述当前点的预测残差值进行加权时采用的权重。
第三方面,本申请实施例提供了一种编码器,包括:
第一确定部分,被配置为根据点云中的当前点的属性信息的预测值,确定所述当前点的属性信息的预测残差值;以及确定当前点的索引;
编码部分,被配置为若所述当前点的索引属于第一点的索引范围,则对所述当前点的属性信息的预测残差值进行无损编码;其中,所述第一点为进行无损编码的至少一个点;以及,
若所述当前点的索引不属于第一点的索引范围,则基于所述当前点的量化权重和当前点的量化步长,对所述当前点的属性信息的预测残差值进行量化,得到所述当前点的属性信息的量化残差值;并对所述量化残差值进行编码;其中,所述当前点的量化权重为对所述当前点的预测残差值进行加权时采用的权重。
第四方面,本申请实施例还提供了一种编码器,包括:
第一存储器,用于存储可执行点云编码指令;
第一处理器,用于执行所述第一存储器中存储的可执行点云编码指令时,实现编码器所述的点云编码方法。
第五方面,本申请实施例提供了一种解码器,包括:
解码部分,被配置为解码码流,确定点云中点的预测值和所述点云的当前点的属性信息的预测残差信息;
第二确定部分,被配置为确定所述当前点的索引;及,
若所述当前点的索引属于第一点的索引范围,则所述预测残差信息为所述当前点的预测残差值,基于所述预测残差值和所述当前点的预测值,确定所述当前点的重建值;其中,所述第一点为进行无损编码的至少一个点;或者,
若所述当前点的索引不属于第一点的索引范围,则所述预测残差信息为所述当前点的量化残差值;基于当前点的量化权重和当前点的量化步长,对所述量化残差值进行反量化,得到所述当前点的属性信息的重建残差值;以及根据所述重建残差值和所述当前点的属性信息的预测值,得到所述当前点的属性信息的重建值,其中,所述当前点的量化权重为对所述当前点的预测残差值进行加权时采用的权重。
第六方面,本申请实施例还提供了一种解码器,包括:
第二存储器,用于存储可执行点云解码指令;
第二处理器,用于执行所述第二存储器中存储的可执行点云解码指令时,实现解码器所述的点云解码方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,存储有可执行点云编码指令,用于引起第一处理器执行时,实现编码器所述的点云编码方法;或者,存储有可执行点云解码指令,用于引起第二处理器执行时,实现解码器所述的点云解码方法。
本申请实施例提供了一种点云编解码方法、编码器、解码器及计算机可读存储介质,方法包括:根据点云中的当前点的属性信息的预测值,确定当前点的属性信息的预测残差值;确定当前点的索引;若当前点的索引属于第一点的索引范围,则对当前点的属性信息的预测残差值进行无损编码;其中,第一点为进行无损编码的至少一个点;若当前点的索引不属于第一点的索引范围,则基于当前点的量化权重和当前点的量化步长,对当前点的属性信息的预测残差值进行量化,得到当前点的属性信息的量化残差值;并对量化残差值进行编码。采用上述技术实现方案,针对当前点进行编码时,不仅可以针对通过对点云中至少一个点的属性信息的残差值进行无损编码(即不进行量化),以减少量化对属性信息的重建值的影响,进而提高属性信息预测的准确性,还引入了除无损编码之外的点的量化权重,利用除无损编码之外的点的不同的量化权重,自适应的进行除无损编码之外的点的预测残差值进行量化,在对所述点云中的点的属性信息进行预测的过程中,针对在编码顺序中位置靠前的点,当其在预测中比较重要时,能够避免其量化步长过大,进而能够避免产生较大的重建误差,相当于量化权重高的点采用较小的量化步长量化以降低其重建误差,针对在编码顺序中位置靠后的点,能够提升其预测准确性。
附图说明
图1为本申请实施例提供的示例性的编码系统框图;
图2为本申请实施例提供的示例性的LOD层示意图一;
图3为本申请实施例提供的示例性的解码系统框图;
图4为本申请实施例提供的一种点云编码方法的流程图一;
图5A为本申请实施例提供的示例性的LOD3层示意图;
图5B为本申请实施例提供的示例性的LOD8层示意图;
图6为本申请实施例提供的一种点云编码方法的流程图二;
图7为本申请实施例提供的示例性的LOD层示意图二;
图8为本申请实施例提供的一种点云解码方法的流程图一;
图9为本申请实施例提供的一种点云解码方法的流程图二;
图10为本申请实施例提供的一种编码器的结构图一;
图11为本申请实施例提供的一种编码器的结构图二;
图12为本申请实施例提供的一种解码器的结构图一;
图13为本申请实施例提供的一种解码器的结构图二。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
为了便于理解本申请的实施例,首先对本申请实施例涉及到的相关概念进行如下简单介绍:
点云(Point Cloud)是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。
点云数据(Point Cloud Data)是点云的具体记录形式,点云中的点可以包括点的位置信息和点的属性信息。例如,点的位置信息可以是点的三维坐标信息。点的位置信息也可称为点的几何信息。例如,点的属性信息可包括颜色信息和/或反射率等等。例如,所述颜色信息可以是任意一种色彩空间上的信息。例如,所述颜色信息可以是(RGB)。再如,所述颜色信息可以是于亮度色度(YcbCr,YUV)信息。例如,Y表示明亮度(Luma),Cb(U)表示蓝色色差,Cr(V)表示红色,U和V表示为色度(Chroma)用于描述色差信息。例如,根据激光测量原理得到的点云,所述点云中的点可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理得到的点云,所述点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原理得到点云,所述点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。
点云数据的获取途径可以包括但不限于以下至少一种:(1)计算机设备生成。计算机设备可以根据虚拟三维物体及虚拟三维场景的生成点云数据。(2)3D(3-Dimension,三维)激光扫描获取。通过3D激光扫描可以获取静态现实世界三维物体或三维场景的点云数据,每秒可以获取百万级点云数据;(3)3D摄影测量获取。通过3D摄影设备(即一组摄像机或具有多个镜头和传感器的摄像机设备)对现实世界的视觉场景进行采集以获取现实世界的视觉场景的点云数据,通过3D摄影可以获得动态现实世界三维物体或三维场景的点云数据。(4)通过医学设备获取生物组织器官的点云数据。在医学领域可以通过磁共振成像(Magnetic Resonance Imaging,MRI)、电子计算机断层扫描(Computed Tomography,CT)、电磁定位信息等医学设备获取生物组织器官的点云数据。
点云可以按获取的途径分为:密集型点云和稀疏性点云。
点云按照数据的时序类型划分为:
第一类静态点云:即物体是静止的,获取点云的设备也是静止的;
第二类动态点云:物体是运动的,但获取点云的设备是静止的;
第三类动态获取点云:获取点云的设备是运动的。
按点云的用途分为两大类:
类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;
类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
点云数据可用于形成点云媒体,点云媒体可以是一个媒体文件。点云媒体可包括多个媒体帧,点云媒体中的每个媒体帧由点云数据组成。点云媒体可以灵活方便地表达三维物体或三维场景的空间结构及表面属性,因此被广泛应用。对点云媒体进行编码后,再对编码后的码流进行封装可形成封装文件,封装文件可用于传输给用户。相对应的,在点云媒体播放器端,需要先对封装文件进行解封装,然后再进行解码,最后对解码后的数据流进行呈现。封装文件也可称为点云文件。
截止目前,可通过点云编码框架对点云进行编码。
点云编码框架可以是运动图象专家组(Moving Picture Experts Group,MPEG)提供的基于几何 的点云压缩(Geometry Point Cloud Compression,G-PCC)编解码框架或基于视频的点云压缩(Video Point Cloud Compression,V-PCC)编解码框架,也可以是音视频编码标准(Audio Video Standard,AVS)提供的AVS-PCC编解码框架。G-PCC编解码框架可用于针对第一静态点云和第三类动态获取点云进行压缩,V-PCC编解码框架可用于针对第二类动态点云进行压缩。G-PCC编解码框架也称为点云编解码器TMC13,V-PCC编解码框架也称为点云编解码器TMC2。下面以G-PCC编解码框架对本申请实施例可适用的编解码框架进行说明。
图1是本申请实施例提供的编码框架100的示意性框图。
如图1所示,编码框架100可以从采集设备获取点云的位置信息(几何信息)和属性信息。点云的编码包括几何编码和属性编码。在一个实施例中,几何编码的过程包括:对原始点云进行坐标变换、量化去除重复点等预处理;构建八叉树后进行编码形成几何码流。属性编码过程包括:通过给定输入点云的位置信息的重建信息和属性信息的真实值,选择三种预测模式的一种进行点云预测,对预测后的结果进行量化,并进行算术编码形成属性码流。
如图1所示,位置编码可通过以下单元实现:
坐标变换(Tanmsform coordinates)单元101、量化和移除重复点(Quantize and remove points)单元102、八叉树分析(Analyze octree)单元103、几何重建(Reconstruct geometry)单元104以及第一算术编码(Arithmetic enconde)单元105。
坐标变换单元101可用于将点云中点的世界坐标变换为相对坐标。例如,点的几何坐标分别减去xyz坐标轴的最小值,相当于去直流操作,以实现将点云中的点的坐标从世界坐标变换为相对坐标。量化和移除重复点单元102可通过量化减少坐标的数目;量化后原先不同的点可能被赋予相同的坐标,基于此,可通过去重操作将重复的点删除;例如,具有相同量化位置和不同属性信息的多个云可通过属性变换合并到一个云中。在本申请的一些实施例中,量化和移除重复点单元102为可选的单元模块。八叉树分析单元103可利用八叉树(octree)编码方式编码量化的点的位置信息。例如,将点云按照八叉树的形式进行划分,由此,点的位置可以和八叉树的位置一一对应,通过统计八叉树中有点的位置,并将其标识(flag)记为1,以进行几何编码。第一算术编码单元105可以采用熵编码方式对八叉树分析单元103输出的位置信息进行算术编码,即将八叉树分析单元103输出的位置信息利用算术编码方式生成几何码流;几何码流也可称为几何比特流(geometry bitstream)。
属性编码可通过以下单元实现:
颜色空间变换(Transform colors)单元110、属性变换(Transfer attributes)单元111、区域自适应分层变换(Region Adaptive Hierarchical Transform,RAHT)单元112、预测变化(predicting transform)单元113以及提升变化(lifting transform)单元114、量化(Quantize)单元115以及第二算术编码单元116。
颜色空间变换单元110可用于将点云中点的RGB色彩空间变换为YCbCr格式或其他格式。属性变换单元111可用于变换点云中点的属性信息,以最小化属性失真。例如,属性变换单元111可用于得到点的属性信息的真实值。例如,所述属性信息可以是点的颜色信息。经过属性变换单元111变换得到点的属性信息的真实值后,可选择任一种预测单元,对点云中的点进行预测。用于对点云中的点进行预测的单元可包括:RAHT 112、预测变化(predicting transform)单元113以及提升变化(lifting transform)单元114中的至少一项。换言之,RAHT 112、预测变化(predicting transform)单元113以及提升变化(lifting transform)单元114中的任一项可用于对点云中点的属性信息进行预测,以得到点的属性信息的预测值,进而可基于点的属性信息的预测值得到点的属性信息的残差值。例如,点的属性信息的残差值可以是点的属性信息的真实值减去点的属性信息的预测值。
预测变换单元113还可用于生成细节层(level of detail,LOD),对LOD中点的属性信息依次进行预测,计算得到预测残差以便后续进行量化编码。具体地,对LOD中的每一个点,在其前面的LOD中找到3个距离最近的邻居点,然后利用3个邻居点的重建值对当前点进行预测,得到预测值;基于此,可基于当前点的预测值和当前点的真实值得到当前点的残差值。例如,可基于下述方公式(1)确定残差值:
attrResidualQuant=(attrValue-attrPred)/Qstep (1)
其中,attrResidualQuant表示当前点的预测残差值,attrPred表示当前点的预测值,attrValue表示当前点的真实值,Qstep表示量化步长。其中,Qstep由量化参数(Quantization Parameter,Qp)计算得到。
当前点将会作为后续点的最近邻居,并利用当前点的重建值对后续点的属性信息进行预测。当前点的属性信息的重建值可通过以下公式(2)得到:
reconstructedColor=attrResidualQuant×Qstep+attrPred (2)
其中,reconstructedColor表示当前点的重建值,attrResidualQuant表示当前点的预测残差值,Qstep表示量化步长,attrPred表示当前点的预测值。其中,Qstep由量化参数(Quantization Parameter,Qp)计算得到。
LOD的生成过程包括:根据点云中点的位置信息,获取点与点之间的欧式距离;根据欧式距离,将点分为不同的LOD层。在一个实施例中,可以将欧式距离进行排序后,将不同范围的欧式距离划分为不同的LOD层。例如,可以随机挑选一个点,作为第一LOD层。然后计算剩余点与该点的欧式距离,并将欧式距离符合第一阈值要求的点,归为第二LOD层。获取第二LOD层中点的质心,计算除第一、第二LOD层以外的点与该质心的欧式距离,并将欧式距离符合第二阈值的点,归为第三LOD层。以此类推,将所有的点都归到LOD层中。通过调整欧式距离的阈值,可以使得每层LOD的点的数量是递增的。应理解,LOD层划分的方式还可以采用其它方式,本申请对此不进行限制。需要说明的是,可以直接将点云划分为一个或多个LOD层,也可以先将点云划分为多个点云切块(slice),再将每一个点云切块划分为一个或多个LOD层。例如,可将点云划分为多个点云切块,每个点云切块的点的个数可以在55万-110万之间。每个点云切块可看成单独的点云。每个点云切块又可以划分为多个LOD层,每个LOD层包括多个点。在一个实施例中,可根据点与点之间的欧式距离,进行LOD层的划分。
图2是本申请实施例提供的LOD层的示意性框图。
如图2所示,假设点云包括按照原始顺序(original order)排列的多个点,即P0,P1,P2,P3,P4,P5,P6,P7,P8以及P9,假设可基于点与点之间的欧式距离可将点云划分为3个LOD层,即LOD0、LOD1以及LOD2。其中,LOD0可包括P0,P5,P4以及P2,LOD2可包括P1,P6以及P3,LOD3可包括P9,P8以及P7。此时,LOD0、LOD1以及LOD2可用于形成该点云的基于LOD的顺序(LOD-based order),即P0,P5,P4,P2,P1,P6,P3,P9,P8以及P7。所述基于LOD的顺序可作为该点云的编码顺序。
量化单元115可用于量化点的属性信息的残差值。例如,若所述量化单元115和所述预测变换单元113相连,则所述量化单元可用于量化所述预测变换单元113输出的点的属性信息的残差值。例如,对预测变换单元113输出的点的属性信息的残差值使用量化步长进行量化,以实现提升系统性能。第二算术编码单元116可使用零行程编码(Zero run length coding)对点的属性信息的残差值进行熵编码,以得到属性码流。所述属性码流可以是比特流信息。
应当理解,本申请实施例中,点云中点的属性信息的预测值(predictedvalue)也可称为LOD模式下的颜色预测值(predictedColor)。点的属性信息的真实值减去点的属性信息的预测值可得到点的残差值(residualvalue)。点的属性信息的残差值也可称为LOD模式下的颜色残差值(residualColor)。点的属性信息的预测值和点的属性信息的残差值相加可生成点的属性信息的重建值(reconstructedvalue)。点的属性信息的重建值也可称为LOD模式下的颜色重建值(reconstructedColor)。
图3是本申请实施例提供的解码框架200的示意性框图。
如图3所示,解码框架200可以从编码设备获取点云的码流,通过解析码得到点云中的点的位置信息和属性信息。点云的解码包括位置解码和属性解码。
在一个实施例中,位置解码的过程包括:对几何码流进行算术解码;构建八叉树后进行合并,对点的位置信息进行重建,以得到点的位置信息的重建信息;对点的位置信息的重建信息进行坐标变换,得到点的位置信息。点的位置信息也可称为点的几何信息。
属性解码过程包括:通过解析属性码流,获取点云中点的属性信息的残差值;通过对点的属性信息的残差值进行反量化,得到反量化后的点的属性信息的残差值;基于位置解码过程中获取的点的位置信息的重建信息,选择三种预测模式的一种进行点云预测,得到点的属性信息的重建值;对点的属性信息的重建值进行颜色空间反变换,以得到解码点云。
如图3所示,位置解码可通过以下单元实现:第一算数解码单元201、八叉树分析(synthesize octree)单元202、几何重建(Reconstruct geometry)单元203以及坐标反变化(inverse transform coordinates)单元204。属性编码可通过以下单元实现:第二算数解码单元210、反量化(inverse quantize)单元211、RAHT单元212、预测变化(predicting transform)单元213、提升变化(lifting transform)单元214以及颜色空间反变换(inverse trasform colors)单元215。
需要说明的是,解压缩是压缩的逆过程,类似的,解码框架200中的各个单元的功能可参见编码框架100中相应的单元的功能。另外,解码框架200可包含比图3更多、更少或不同的功能组件。
例如,解码框架200可根据点云中点与点之间的欧式距离将点云划分为多个LOD;然后,依次对LOD中点的属性信息进行解码;例如,计算零行程编码技术中零的数量(zero_cnt),以基于zero_cnt对残差进行解码;接着,解码框架200可基于解码出的残差值进行反量化,并基于反量化后的残差值与当前点的预测值相加得到该点云的重建值,直到解码完所有的点云。当前点将会作为后续LOD中点的最邻近点,并利用当前点的重建值对后续点的属性信息进行预测。
基于上述介绍的背景下,下面介绍本申请实施例提供的点云编码方法。
如图4所示,本申请实施例提供了一种点云编码方法,应用于编码器中,该方法可以包括:
S101、根据点云中的当前点的属性信息的预测值,确定当前点的属性信息的预测残差值;
S102、确定当前点的索引;
S103、若当前点的索引属于第一点的索引范围,则对当前点的属性信息的预测残差值进行无损编码;其中,第一点为进行无损编码的至少一个点;
S104、若当前点的索引不属于第一点的索引范围,则基于当前点的量化权重和当前点的量化步长,对当前点的属性信息的预测残差值进行量化,得到当前点的属性信息的量化残差值;并对量化残差值进行编码;其中,当前点的量化权重为对当前点的预测残差值进行加权时采用的权重。
在本申请实施例中,针对一个待处理图像(例如三维图像模型)的编码处理过程中,获取待编码的三维图像模型在空间中点云,点云中可以三维图像模型的几何信息和属性信息。在对三维图像模型进行编码的过程中,点云的几何信息和每点所对应的属性信息是分开进行编码。点的几何信息也可称为点的位置信息,点的位置信息可以是点的三维坐标信息。其中,点的属性信息可包括颜色信息和/或反射率等等。
在本申请实施例中,编码器根据点云中点的属性信息的预测值,确定点云中点的属性信息的预测残差值;对点云中的第一点的属性信息的预测残差值进行无损编码,得到第一编码结果;基于点云中的第二点的量化权重和第二点的量化步长,对第二点的属性信息的预测残差值进行量化,得到第二点的属性信息的量化残差值;其中,第二点为点云中除第一点之外的点;第二点的量化权重为对第二点的预测残差值进行加权时采用的权重;对量化残差值进行编码,得到第二编码结果;基于第一编码结果和第二编码结果,生成码流。
在本申请实施例中,编码器对点云中点的几何进行编码,得到点云中点的几何信息的重建值;根据点云中点的几何信息的重建值,确定点云中点的属性信息的预测值。在对当前点进行编码的过程中,编码器可以根据点云中的当前点的属性信息的预测值,确定出当前点的属性信息的预测残差值。基于预测残差值得到码流。
详细的,编码器对点云中的当前点的几何信息进行处理,得到点云中的包含了当前点的几何信息的重建信息;根据当前点的几何信息的重建信息,得到当前点的属性信息的预测值;对当前点的属性信息进行处理,得到当前点的属性信息的真实值;根据当前点的属性信息的预测值和当前点的属性信息的真实值,得到当前点的预测残差值。
需要说明的是,编码器对点云中点的几何信息进行编码完成后,再对点云中点的属性信息进行编码。编码器将点云中点的属性信息的原始值(即真实值)与属性信息的预测值的差值,确定为点云中点的属性信息的残差值(即预测残差值)。
在一种示例中,编码器可以将获得点云中点的原始属性信息,作为点的属性信息的原始值,即真实值。
在另一种示例中,如图1所示,编码器获得点云中点的原始属性信息后,对该原始属性信息进行颜色空间转换,例如将点的RGB色彩空间变换为YCbCr格式或其他格式。对颜色空间转换后的点进行属性转化,以最小化属性失真,得到点的属性信息的原始值,即真实值。
例如,针对点云中的一个当前点,根据上述步骤可以获得该当前点的属性信息的预测值和属性信息的真实值,将该当前点的属性信息的真实值与属性信息的预测值的差值,作为该点的属性信息的预测残差值。
例如,根据如下公式(3),确定点的属性信息的预测残差值:
attrResidual=attrValue-attrPredValue (3)
其中,attrResidual为属性信息的残差值,attrValue为属性信息的真实值,attrPredValue为属性信息的预测值。
编码器在对当前点进行编码的时候,可以确定出当前点的索引。
需要说明的是,在本申请实施例中,点云中的点可以有索引,索引可以理解为当前点的标识。 另外,编码器还可以将无损编码的点的索引写入码流,传给解码器,本申请实施例不作限制。
在本申请的一些实施例中,编码器可以根据预设间隔,对点云中的点进行划分(例如等间隔划分),确定出第一点的索引范围。其中,第一点为进行无损编码的至少一个点。第一点的索引范围为可以进行无损编码的点的索引的信息集合。
在本申请实施例中,在对当前点编码的过程中,若当前点的索引属于第一点的索引范围,则对当前点的属性信息的预测残差值进行无损编码,得到码流;或者,
若当前点的索引不属于第一点的索引范围,则基于当前点的量化权重和当前点的量化步长,对当前点的属性信息的预测残差值进行自适应量化的过程,得到当前点的属性信息的量化残差值;接着再对量化残差值进行编码,得到码流;其中,当前点的量化权重为对当前点的预测残差值进行加权时采用的权重。
可以理解的是,目前在属性信息的编码过程中,残差单元可基于点云中点的属性信息的原始值与属性信息的预测值,计算属性信息的残差值。该残差值经由量化单元量化,可以去除人眼不敏感的信息,以消除视觉冗余。反量化单元也可以接收到量化单元输出的量化后的属性信息的残差值,并对量化后的属性信息的残差值进行反量化,得到点云中点的属性信息的残差值。重建单元得到反量化单元输出的点云中点的属性信息的残差值,以及预测单元输出的点云中点的属性信息的预测值,将点云中点的属性信息的残差值和预测值进行相加,得到点的属性信息的重建值。点的属性信息的重建值缓存在解码缓存单元中,用于后续其他点的预测过程。
由上述可知,目前在属性信息的编码过程中,对当前点的属性信息的残差值进行量化,但是量化会对属性信息的重建值造成误差,进而降低后续属性信息预测的准确性,从而降低整个属性信息的编码效果。为了解决该技术问题,本申请对点云中的当前点的属性信息的残差值进行处理,即对点云中的至少一个点的属性信息的残差值进行无损编码,以减少量化对属性信息的重建值的影响,进而提高属性信息预测的准确性,且不会对属性码流的大小产生较大影响,从而提高属性信息的编码效果。
另外,在对点云中的其他除无损编码的第一点的属性信息进行预测的过程中,引入了用于对当前点的量化步长进行加权的量化权重,通过结合当前点的量化权重和当前点的量化步长对当前点的预测残差值进行量化,得到当前点的属性信息的量化残差值,进而对量化残差值进行编码,得到码流。通过引入当前点的量化权重,相当于基于当前点的量化权重对当前点的量化步长进行了修正,即根据当前点的重要程度可自适应调整当前点的量化步长,进而基于调整后的量化步长对当前点的预测残差值进行量化,在对点云中的点的属性信息进行预测的过程中,针对在编码顺序中位置靠前的点,当其在预测中比较重要时,能够避免其量化步长过大,进而能够避免产生较大的重建误差,相当于,量化权重高的点采用较小的量化步长量化以降低其重建误差,针对在编码顺序中位置靠后的点,能够提升其预测准确性,提升编码效果。
在本申请的一些实施例中,本申请中对的当前点的属性信息的预测残差值进行无损编码也可以称为对当前点的属性信息的残差值不量化。
本申请对属性信息的残差值进行无损编码的点的个数不做限制,例如对点云中部分点的属性信息的残差值进行量化,部分点的属性信息的残差值不进行量化(即进行无损编码);或者,对点云中所有点的属性信息的残差值不进行量化(即无损编码)等,本申请实施例不作限制。
在一种示例中,上述属性信息的预测残差值进行无损编码的至少一个点可以包括N个点。
可选的,该N为2的整数倍,例如,对点云中的2个、4个、16个或24个点的属性信息的残差值进行无损编码。
可选的,上述N个点可以为点云中任意的N个点,例如为排序后的点云中连续的N个点,或者为随机选取的N个点,或者为指定的N个点,或者为根据预设的取点间隔选取的N个点,其中取点间隔可以是不均匀间隔。
可选的,上述N个点中每相邻的两个点之间的间隔相等,例如,上述点云包括1200个点,假设N为24,则这24个点之间的间隔相等,均为50个点。
示例性的,例如,上述点云包括1200个点,预设间隔为10,则对排序后的点云中每隔10个点的点的属性信息的残差值进行无损编码。其中,可以将1200个点中的第一点作为第一个属性信息的残差值不量化的点,间隔10个点,将第11点作为第二个属性信息的残差值不量化的点,依次类推。可选的,可以将1200个点中的第11个点作为第一个属性信息的残差值进行无损编码的点,间隔10个点,将第21点作为第二个属性信息的残差值进行无损编码的点,依次类推。
在本申请的一些实施例中,编码器是可以根据点云中点的几何信息,对点云进行渐近层次表 达LOD划分,得到点云的多个LOD层,每个LOD层中包括一个或多个点。其中,预设间隔可以包括:第一预设间隔和第二预设间隔;第一点的索引范围包括:第一索引范围和第二索引范围。那么,编码器可以按照第一预设间隔,对多个LOD层中的前M个LOD层中的至少一个点进行划分(如等间隔划分),得到第一点的第一索引范围;以及按照第二预设间隔,对多个LOD层中的除M个LOD层之外的剩余LOD层中的至少一个点进行划分(如等间隔划分),得到第一点的第二索引范围;其中,M大于等于1,且小于多个LOD层的总层数;第一预设间隔小于第二预设间隔。
需要说明的是,本申请实施例不限制第一预设间隔与第二预设间隔之间的大小。
也就是说,针对每个LOD层中的多个点,可以进行不同的预设间隔的第一点的选取。由于前几层的LOD的点会影响后续层的LOD中点的预测结果,所以前几层LOD中的点的预测结果就更重要,因此,前M层的第一预设间隔小于剩余M层的前七层每一层LOD(LOD0~LOD6)的第二预设间隔,即编码器可以从前M个LOD层中选取的等间隔不进行量化的属性残差值的点数多一些,例如32(intermittent_unquantized_num),后续的每一层LOD的等间隔不进行量化的点数相对少一些,例如10(intermittent_unquantized_num/3)。
示例性的,假设LOD层的层数大于8,则从LOD0到LOD6中,intermittent_unquantized_num=32;以第3层LOD为例,即LOD3,如图5A所示,从第1个点开始,为无损编码的点,之后每间隔32个,取一个点作为无损编码的第一点1 其中,除第一点之外的其他点2(,)在编码时进行自适应量化处理。从LOD7到LODend:intermittent_unquantized_num/3=10,以第8层LOD为例,即LOD8,如图5B所示,从第1个点开始,为无损编码的点,之后每间隔10个,取一个点作为无损编码的第一点1 其中,除第一点之外的其他点(,)在编码时进行自适应量化处理。
需要说明的是,针对每个LOD层中的点,第一个点可以是无损编码的点,但也可以不是,本申请实施例不作限制。
在本申请的一些实施例中,编码器正在进行的当前点的编码过程中,当前点为多个LOD层中的任意一个LOD层中的点。并且,编码器在获取点云中点的索引属于第一点的索引范围内的点的数量之后,可以将点的数量写入码流,供解码器解码时使用。其中,点的数量包括:每个LOD层中属于第一点的点的数量,即编码器获取每个LOD层中点的索引属于所述第一点的索引范围内的点的数量。也就是说,码流中携带有每个LOD层中属性信息的残差值等间隔无损编码的点的具体数量(num),即属性码流中携带num。
在实际应用时,编码器对当前点的属性信息的预测残差值进行无损编码的过程可以包括:
方式一:跳过当前点的点的属性信息的预测残差值的量化过程。
方式二:将当前点的量化步长设置为1。例如,目前根据如下公式(4)进行点的属性信息的残差值的量化:
其中,attrResidualQuant为量化后的属性信息的残差值,Qstep为量化步长。
方式三:将当前点的量化参数QP设置为目标值;目标值为量化步长为1时对应的QP值。
由于量化步长是由量化参数QP值计算得到,QP值通常通过配置文件预先配置。基于此,可以将QP设置为量化步长为1时对应的QP值。
可以理解的是,针对比较重要的前M个LOD层的无损编码的点的选取较多,而针对不重要的后几个LOD层的无损编码的点的选取相对少一些,这样可以有效的保证重要的点的编码信息的准确性,从而提高整个编码的准确性。
在本申请实施例中,编码器可以对至少一个LOD层中的至少一个点的属性残差值进行无损编码。
在一些实施例中,编码器可以对一个LOD层中的至少一个点的属性残差值进行无损编码;或者,对多个LOD层中的部分LOD层中的至少一个点的属性残差值进行无损编码,再对多个LOD层中的部分LOD层中的每个点的属性残差值进行自适应量化;或者,对多个LOD层中的每个LOD层中的至少一个点的属性残差值进行无损编码等,本申请实施例不作限制。
在本申请的一些实施例中,编码器可以获得多个LOD层中所包括的点的总个数小于或等于第一预设值的至少一个第一类LOD层,以及所包括的点的总个数大于第一预设值的至少一个第二类LOD层;其中,第一预设值的具体取值根据实际需要进行确定,本申请对此不做限制。编码器还可以对 第一类LOD层中的所有点的属性信息的残差值进行无损编码;对第二类LOD层中的至少一个点的属性信息的残差值进行无损编码。
由上述可知,多个LOD层中各层所包括的点的数量可能相同也可以不同。基于此,根据多个LOD层中每个LOD层所包括的总个数,将多个LOD层划分为第一类LOD层和第二类LOD层,其中第一类LOD层所包括的点的总个数小于或等于第一预设值,第二类第二类LOD层包括的点的总个数大于第一预设值。在选择属性信息的残差值进行无损编码的第一点时,不同的第二类LOD层可以采用不同的跳跃量化(skip quantization)选点方式,例如每一层第二类第二类LOD层有不同的选点方式。可选的,不同的第二类第二类LOD层可以采用相同的跳跃量化(skip quantization)选点方式,例如每一层第二类第二类LOD层的选点方式相同。
在一些实施例中,为了保持编码端和解码端的一致,则编码端可以将上述第一类LOD层和第二类LOD层的相关信息携带在属性码流中。这样解码端可以从属性码流中解析出第一类LOD层和第二类LOD层的相关信息,并根据解析出的第一类LOD层和第二类LOD层的相关信息进行点的属性信息的重建。
在本申请的一些实施例中,每个第二类LOD层中属性信息的残差值进行无损编码的点的数量相同,则对第二类LOD层中的M个点的属性信息的残差值进行无损编码,其中,M为2的正整数倍,例如为2、4、24、32等。另外,同一层第二类LOD层中的M个点中相邻两个点之间的间隔相等。
在本申请的一些实施例中,若至少一个第二类LOD层包括L个第二类LOD层,不同的第二类LOD层中属性信息的残差值进行无损编码的第一点的数量可以不同。其中,对P个第二类LOD层中每个第二类LOD层中的第一数量个点的属性信息的残差值进行无损编码;对Q个第二类LOD层中每个第二类LOD层中的第二数量个点的属性信息的残差值进行无损编码;其中,L为大于或等于2的正整数,P、Q均为正整数,且P与Q之和小于或等于L,P个第二类LOD层与Q个第二类LOD层不重叠,第一数量与第二数量不同。
上述P个第二类LOD层可以为L个第二类LOD层中任意P个第二类LOD层,这P个第二LOD层可以是连续的第二类LOD层,也可以是不连续的第二类LOD层。
上述Q个第二类LOD层可以为L个第二类LOD层中除P个第二类LOD层之外的任意Q个第二类LOD层,这Q个第二LOD层可以是连续的第二类LOD层,也可以是不连续的第二类LOD层。
若L等于12,从这12个第二类LOD层中任意选取P个(例如P=7)第二类LOD层,从剩余的7个第二类LOD层中任意选取Q个(例如Q=7)第二类LOD层。
在一种示例中,P个第二类LOD层为L个第二类LOD层中的前P个第二类LOD层。
在一种示例中,Q个第二类LOD层为L个第二类LOD层中的后Q个第二类LOD层。
若将12个第二类LOD层中前P个(例如P=7)第二类LOD层,作为上述P个第二类LOD层,将12个第二类LOD层中的后Q个(例如Q=7)第二类LOD层,作为Q个第二类LOD层。其中,P个第二类LOD层之间相互连续,Q个第二类LOD层之间相互连续。
在一些实施例中,若点云的多层LOD层包括14层细节表达,则P可以取7或8。
在一种示例中,P个第二类LOD层中的最后一个第二类LOD层与Q个第二类LOD层的第一个第二类LOD层相邻。例如,假设P=7,Q=7,P个第二类LOD层中最后一个第二类LOD层为第7层LOD层,Q个第二类LOD层中第一个第二类LOD层为第8层LOD层,第7层LOD层与第8层LOD层相邻。
根据上述方法将L个第二类LOD层划分为P个第二类LOD层和Q个第二类LOD层,针对P个第二类LOD层中的每个第二类LOD层,对该第二类LOD层中的第一数量个点的属性信息的残差值不进行量化。针对Q个第二类LOD层中的每个第二类LOD层,对该第二类LOD层中的第二数量个点的属性信息的残差值不进行量化。
若P个第二类LOD层位于Q个第二类LOD层之前,则第一数量大于第二数量,例如,第一数量为24、32或64,对应的第二数量可以为8、16或32。这是由于在属性信息的预测过程中,按照层数从低到高对多层LOD层进行排序,得到点云的LOD顺序,根据点云的LOD顺序进行属性信息的编码。在预测的过程中,在LOD顺序中排列靠前的点被后续预测过程中用于作为参考点的机会较大,因此,为了降低量化对属性信息的重建值的影响,则将靠前的P个第二类LOD层中的较多点的属性信息的残差值不进行量化。而为了消除冗余,对靠后的Q个第二类LOD层中的较少点的属性信息的残差值不进行量化。
在一些实施例中,第一数量为第二数量的正整数倍,例如,第一数量为第二数量的3倍或2倍,例如第一数据为24,第二数量为8。
在一种示例中,P个第二类LOD层中每个第二类LOD层的第一数量个点中相邻两个点之间的间隔相等。
在一种示例中,Q个第二类LOD层中每个第二类LOD层的第二数量个点中相邻两个点之间的间隔相等。
可以理解的是,针对比较重要的一类LOD层的无损编码的点的选取较多,而针对不重要的一类LOD层的无损编码的点的选取相对少一些,这样可以有效的保证重要的点的编码信息的准确性,从而提高整个编码的准确性。
在本申请的一些实施例中,基于图4,如图6所示,本申请实施例提供的一种点云编码方法中还包括:S105。如下:
S105、根据当前点的索引所,确定当前点的量化权重。
在本申请实施例中,编码器可以基于点的索引获取点的量化权重。
在本申请实施例中,点云的量化权重存储为数组,数组的维度和点云中点的个数相同。例如,QuantWeight[index]表示点索引为index的量化权重,此时,QuantWeight[]可以理解为是存储了点云中的所有点的量化权重的数组,数组的维度与点云中点的个数一致,通过点的索引便可以查询到点的量化权重。
在本申请的一些实施例中,编码器将点云划分为一个或多个LOD层,每个LOD层包括一个或多个点;多个LOD层中的前M层LOD中的点的量化权重的初始值,大于多个LOD层中剩余LOD中的点的量化权重的初始值。M为大于0的整数。例如,前7层LOD中每个点的量化权重的初始值设为512,其余LOD中每个点的量化权重的初始值设为256。
在一种实现方式中,编码器可以按照点云的编码顺序的倒序,遍历点云中的点,并基于当前点的量化权重更新当前点的N个最邻近点的量化权重,N为大于0的整数。例如,针对当前点而言,基于当前点的量化权重,更新当前点的N个最邻近点中的每一个最邻近点的量化权重;N为大于0的整数。在一种实现方式中,获取当前点对N个最邻近点中的每一个最邻近点的影响权重,影响权重取决于当前点和N个最邻近点的位置信息;基于当前点的量化权重和当前点对N个最邻近点中的每一个最邻近点的影响权重,更新N个最邻近点的量化权重。在一种实现方式中,点云的属性参数集包括当前点对N个最邻近点中的每一个最邻近点的影响权重;根据属性参数集,获取当前点对N个最邻近点中的每一个最邻近点的影响权重。即,根据点云的属性参数集,获取当前点对N个最邻近点中的每一个最邻近点的影响权重;其中,点云的属性参数集中包括预设的当前点对N个最邻近点中的每一个最邻近点的影响权重。
需要说明的是,点云中的每一个点的量化权重的初始值为预设值。
需要说明的是,本申请实施例对初始值的具体数值不作限定。作为示例,初始值可以是256、512或其他具体数值。初始化为256就是将点云中所有点的量化权重的值都设为256。
在本申请实施例中,编码器在倒序遍历完点云中的每个点后,每个点的量化权重会根据其在对点云的点的属性信息进行预测的过程中的重要性得到更新,越重要的点其量化权重数值越大。即,当前点与N个最邻近点中的每一个最邻近点的影响权重随当前点与每一个最邻近点之间距离的增大而减小。
在一种实现方式中,将当前点的量化权重,与N个最邻近点中的每一个最邻近点的影响权重相乘后,右移第二预设位,再与每一个最邻近点的更新前的量化权重进行求和,来更新N个最邻近点的量化权重。
基于以下公式(5)更新N个最邻近点的量化权重:
newneighborQuantWeight[i]=neighborQuantWeight[i]+(T[i]*QuantWeight[index-c])>>k (5)
其中,newneighborQuantWeight[i]表示第i个最邻近点的基于当前点的量化权重更新后的量化权重,neighborQuantWeight[i]表示第i个最邻近点的基于当前点的量化权重更新前的量化权重,QuantWeight[index-c]表示当前点的量化权重,T[i]表示当前点对第i个最邻近点的影响权重,k表示对T[i]*QuantWeight[index-c]进行右移运算的位数,即第二预设位。其中,T[i]的值随i的增大而减小。例如,k=8,T[i]为2的次幂,例如2 5-i
示例性的,如图7所示,假设点云中的所有点的量化权重的初始值设为256,然后按编码顺序的倒序(即点P1-P7-P6-P12-P8-P9-P11-P10-P3-P4-P2-P5-P0-)遍历每个点更新其三个最邻近点的量化权重,假设当前遍历到的点索引为index1,当前点三个最邻近点的索引分别为indexN10,indexN11,indexN3,则当前点三个最邻近点的量化权重可以记为公式(6)-(8):
neighborQuantWeight[0]=QuantWeight[indexN10] (6)
neighborQuantWeight[1]=QuantWeight[indexN11](7)
neighborQuantWeight[2]=QuantWeight[indexN3] (8)
利用当前点的量化权重按照以下方式对其三个最邻近点的量化权重进行更新为公式(9)-(11):
newneighborQuantWeight[0]=neighborQuantWeight[10]+(16×QuantWeight[index1])>>8 (9)
newneighborQuantWeight[1]=neighborQuantWeight[11]+(8×QuantWeight[index1])>>8 (10)
newneighborQuantWeight[2]=neighborQuantWeight[3]+(4×QuantWeight[index1])>>8 (11)
其中,k的值为8。16、8、4分别为当前点对第10、11、3最邻近点的影响权重,该影响权重可作为语法定义在点云的属性参数集中,即可通过属性参数集设置影响权重的值。编码器在编码属性信息的过程中可激活或访问所述属性参数集,继而从所述属性参数集中调用点的影响权重的值。>>表示右移运算。当然,本申请实施例对k以及影响权重的具体取值不作限定,上述数字仅为示例性说明,不应理解为对本申请的限制。例如,在本申请的可替代实施例中,还可以将第1、2、3最邻近点的影响权重分别改为64、32、16或32、16、8。假设当前点的量化权重为256,最邻近点0(即第1最邻近点)的量化权重也为256,将第1、2、3最邻近点的影响权重分别为32、16、8时,(32×256)>>8的结果为32,即运算结果右移了8位,此时,最邻近点0的量化权重便更新为256+32=288,此结果可同时保存在包含了点云的所有点的量化权重的数组QuantWeight[]中,当遍历到最邻近点0时,便使用量化权重288对最邻近点10的三个邻居进行更新。
需要说明的是,在本申请实施例中,点云中的点的量化权重都是这么更新后才使用的。
在本申请的一些实施例中,编码器基于当前点的量化权重和当前点的量化步长,对当前点的属性信息的预测残差值进行量化,得到当前点的属性信息的量化残差值的实现还可以包括:
S1041、基于当前点的量化权重,确定当前点的有效量化权重;
在本申请实施例中,有效量化权重小于或等于当前点的量化步长。
编码器实现基于当前点的量化权重,确定当前点的有效量化权重的过程可以包括以下两种:
方式一:编码器将当前点的量化权重与当前点的量化步长进行比较,确定第一最小值;将第一最小值作为当前点的有效量化权重。
示例性的,利用以下公式(12)确定当前点的有效量化权重:
effectiveQuantWeight=min(QuantWeight[index],Qstep) (12)
方式二:编码器将当前点的量化权重右移第一预设位后与当前点的量化步长进行比较,确定第二最小值;将第二最小值作为当前点的有效量化权重。
示例性的,利用以下公式(13)确定当前点的有效量化权重:
effectiveQuantWeight=min(QuantWeight[index]>>k,Qstep) (13)
其中,effectiveQuantWeight表示当前点的有效量化权重,QuantWeight[index]表示当前点的量化权重,k表示对所述QuantWeight[index]进行右移运算的位数,Qstep表示当前点的量化步长。
在本申请的一些实施例中,有效量化权重的数值等于2的整数次幂。
在本申请的一些实施例中,当前点的量化权重的数值不等于2的整数次幂,基于当前点的量化权重的数值,将最接近当前点的量化权重的2的整数次幂,确定为有效量化权重。
例如,假设当前点的量化权重的值为18,为了方便硬件实现,可以将18转换为距离其最近的2的整数次幂,即16或者32,例如将18转换为16,即将18替换为16。假设当前点的量化权重的值为30,距离其最近的2的整数次幂将变为了32,此时,当前点的量化权重将会转换为32;针对2的整数次幂,通过二进制移位操作即可实现自适应量化的功能,便于硬件实现。
本申请实施例中,通过将有效量化权重的数值构造为2的整数次幂,可将加权的乘法运算处理为移位运算,能够提升编码器的处理效率,进而提升编码器的性能。
需要说明的是,本申请的其他可替代实施例中,可以先在当前点的量化权重和当前点的量化步长中取最小值,然后将最接近最小值的2的整数次幂,确定为有效量化权重。当然,也可以通过其他方式确定有效量化权重,本申请实施例对此不作具体限定。例如可直接将当前点的量化权重确定为当前点的有效量化权重。
S1042、利用当前点的有效量化权重和当前点的量化步长,对预测残差值进行量化,得到量化残差值。
在本申请的一些实施例中,编码器利用有效量化权重乘以预测残差值,得到加权残差值;利用当前点的量化步长对加权残差值进行量化,得到量化残差值。
在本申请的实施例中,编码器通过预测变换可以得到当前点的属性信息的预测值,已知当前点的属性信息的真实值,则通过真实值减去预测值可得到当前点的属性信息的预测残差值,预测残差值乘以有效量化权重得到加权预测残差值,利用量化步长对加权预测残差值进行量化,可以得到量化加权预测残差值,即量化残差值,随后对当前点的量化残差值进行熵编码写进码流。
本申请实施例中,编码器在量化前,对预测残差值乘以有效量化权重进行加权。需要说明的是,由于量化不是无损的,因此解码器得到的加权预测残差值不一定等于编码器得到的加权预测残差值。
示例性的,利用以下公式(14)对预测残差值进行量化,得到量化残差值:
attrResidualQuant2=attrResidualQuant1×effectiveQuantWeight/Qstep (14)
其中,attrResidualQuant2表示所述量化残差值,attrResidualQuant1表示预测残差值,effectiveQuantWeight表示当前标点的有效量化权重,Qstep表示当前点的量化步长。
本申请实施例中,当当前点的量化步长设置较小时,当前点的量化权重可能会超过量化步长,此时,需要对量化权重和量化步长取二者中的较小值得到有效量化权重,由此,保证编码器能够对预测残差值进行量化操作,即保证编码器的编码性能。
下面介绍本申请实施例提供的点云解码方法。
如图8所示,本申请实施例提供了一种点云解编码方法,应用于解码器中,该方法可以包括:
S201、解码码流,确定点云中点的预测值和点云的当前点的属性信息的预测残差信息;
S202、确定当前点的索引;
在本申请的一些实施例中,解码器可以解码码流,确定点云中点的几何信息和点云的当前点的属性信息的预测残差信息;根据点云中点的几何信息,确定点云中的当前点的属性信息的预测值。
在本申请实施例中,点云中点的几何信息的解码完成后,执行属性信息的解码。在对几何码流解码完成后,可以得到点云中点的几何信息。解码器对点云中点的几何信息进行解码码流,得到点云中点的几何信息的重建值,根据点云中点的几何信息的重建值,确定点云中每个点的属性信的预测值,其中,也包括了当前点的属性信息的预测差值。并且,还从码流中可以解析出当前点的预测残差信息。
需要说明的是,在本申请实施例中,预测残差信息可以包括预测残差值(针对无损编码的第一点解析出的),或者,量化残差值(针对除无损编码的第一点之外的点解析出的)。
解码器在对当前点进行编码的时候,可以确定出当前点的索引。也可以是通过码流解析出可以进行无损编码的点的索引,从而区别出当前点要进行何种解码操作。但是,解码器直接确定当前点的索引,再计算当前点是不是属于第一点,判断是不是无损编码的话,可以提高码流传输速率,节省码字。
S203、若当前点的索引属于第一点的索引范围,则预测残差信息为当前点的预测残差值,基于预测残差值和当前点的预测值,确定当前点的重建值;其中,第一点为进行无损编码的至少一个点;
S204、若当前点的索引不属于第一点的索引范围,则预测残差信息为当前点的量化残差值;基于当前点的量化权重和当前点的量化步长,对量化残差值进行反量化,得到当前点的属性信息的重建残差值;以及根据重建残差值和当前点的属性信息的预测值,得到当前点的属性信息的重建值,其中,当前点的量化权重为对当前点的预测残差值进行加权时采用的权重。
在本申请的一些实施例中,解码器可以根据预设间隔,对点云中的点进行划分(如等间隔划分),确定出第一点的索引范围。其中,第一点为进行无损编码的至少一个点。第一点的索引范围为可以进行无损编码的点的索引的信息集合。在本申请的一些实施例中,解码器可以根据预设间隔,对点云中的点进行等间隔划分,确定出第一点的索引范围。其中,第一点为进行无损编码的至少一个点。第一点的索引范围为可以进行无损编码的点的索引的信息集合。
在本申请实施例中,在对当前点解码的过程中,若当前点的索引属于第一点的索引范围,则预测残差信息为当前点的预测残差值,基于预测残差值和当前点的预测值,确定当前点的重建值;或者,
若当前点的索引不属于第一点的索引范围,则预测残差信息为当前点的量化残差值;基于当前点的量化权重和当前点的量化步长,对量化残差值进行反量化,得到当前点的属性信息的重建残差值;以及根据重建残差值和当前点的属性信息的预测值,得到当前点的属性信息的重建值;其中,当前点的量化权重为对当前点的预测残差值进行加权时采用的权重。
可以理解的是,目前在属性信息的编码过程中,残差单元可基于点云中点的属性信息的原始值与属性信息的预测值,计算属性信息的残差值。该残差值经由量化单元量化,可以去除人眼不敏感 的信息,以消除视觉冗余。反量化单元也可以接收到量化单元输出的量化后的属性信息的残差值,并对量化后的属性信息的残差值进行反量化,得到点云中点的属性信息的残差值。重建单元得到反量化单元输出的点云中点的属性信息的残差值,以及预测单元输出的点云中点的属性信息的预测值,将点云中点的属性信息的残差值和预测值进行相加,得到点的属性信息的重建值。点的属性信息的重建值缓存在解码缓存单元中,用于后续其他点的预测过程。
由上述可知,目前在属性信息的解码过程中,对当前点的属性信息的预测残差信息进行量化,但是反量化会对属性信息的重建值造成误差,进而降低后续属性信息预测的准确性,从而降低整个属性信息的解码效果。为了解决该技术问题,本申请中,点云中的当前点是第一点的属性信息的预测残差信息就是预测残差值,没有进行量化,因此解码是也不进行反量化,直接使用,实现了对点云中的至少一个点的属性信息的残差值进行无损解码,减少了量化对属性信息的重建值的影响,进而提高属性信息预测的准确性,且不会对属性码流的大小产生较大影响,从而提高属性信息的解码效果。
另外,在对点云中的其他除无损编码的第一点的属性信息进行解码的过程中,引入了用于对当前点的量化步长进行加权的量化权重,通过结合当前点的量化权重和当前点的量化步长对当前点的预测残差信息进行反量化,得到当前点的属性信息的量化残差值,进而对量化残差值进行解码,得到码流。通过引入当前点的量化权重,相当于基于当前点的量化权重对当前点的量化步长进行了修正,即根据当前点的重要程度可自适应调整当前点的量化步长,进而基于调整后的量化步长对当前点的预测残差值进行反量化,在对点云中的点的属性信息进行解码的过程中,针对在解码顺序中位置靠前的点,当其在预测中比较重要时,能够避免其量化步长过大,进而能够避免产生较大的重建误差,相当于,量化权重高的点采用较小的量化步长量化以降低其重建误差,针对在解码顺序中位置靠后的点,能够提升其预测准确性,提升解码效果。
在本申请的一些实施例中,解码器是可以根据点云中点的几何信息,对点云进行渐近层次表达LOD划分,得到点云的多个LOD层,每个LOD层中包括一个或多个点。其中,预设间隔可以包括:第一预设间隔和第二预设间隔;第一点的索引范围包括:第一索引范围和第二索引范围。那么,编码器可以按照第一预设间隔,对多个LOD层中的前M个LOD层中的至少一个点进行划分(如等间隔划分),得到第一点的第一索引范围;以及
按照第二预设间隔,对多个LOD层中的剩余LOD层中的至少一个点进行划分(如等间隔划分),得到第一点的第二索引范围;其中,M为正整数,且小于多个LOD层的总层数;第一预设间隔小于第二预设间隔。
在本申请的一些实施例中,解码器正在进行的当前点的解码过程中,当前点为多个LOD层中的任意一个LOD层中的点。并且,解码器解码码流,确定点云中的点的索引属于第一点的索引范围内的点的数量,在获取点云中属于第一点的点的数量之后,可以根据预设间隔,找出需要无损解码的点的数量个的点。其中,点的数量包括:每个LOD层中属于第一点的点的数量。也就是说,码流中携带有每个LOD层中属性信息的残差值等间隔无损编码的点的具体数量(num),即属性码流中携带num。这样,解码器可以从每个LOD层中确定出该层对应数量的无损解码的点。这与编码器在编码时的划分方式一致。
在实际应用时,解码器器对当前点的属性信息的预测残差信息进行无损解码的过程可以可以通过如下方式对待解码的当前点的属性信息的残差信息不进行反量化:
方式一,在对点云中的点的属性信息的残差信息进行反量化的过程中,跳过该待解码的当前点。
方式二,将该待解码的当前点的反量化步长设置为1。
方式三,将该待解码的当前点的量化参数QP设置为目标值,目标值为反量化步长为1时对应的QP值。
在本申请实施例中,当当前点属于第一点时,以点云中一待解码的当前点为例,若确定编码端对当前点的属性信息的预测残差值经过无损编码,则解码端确定对该当前点的属性信息的预测残差信息进行无损解码,即采用如下公式(15),确定待解码点的属性信息的重建值:
reconstructedColor=attrResidual+attrPredValue (15)
其中,reconstructedColor为当前点的属性信息的重建值,也称为当前点的颜色属性信息的重建值,attrPredValue为当前点的属性信息的预测值,attrResidual为待当前点的属性信息的预测残差信息或预测残差值。
可以理解的是,针对比较重要的前M个LOD层的无损解码的点的选取较多,而针对不重要的后几个LOD层的无损解码的点的选取相对少一些,这样可以有效的保证重要的点的解码信息的准确性,从而提高整个解码的准确性。
在本申请的一些实施例中,基于图8,如图9所示,本申请实施例提供的一种点云编码方法中还包括:S205。如下:
S205、根据当前点的索引,确定当前点的量化权重。
在本申请实施例中,解码器可以基于点的索引获取点的量化权重。
在本申请实施例中,点云的量化权重存储为数组,数组的维度和点云中点的个数相同。例如,QuantWeight[index]表示点索引为index的量化权重,此时,QuantWeight[]可以理解为是存储了点云中的所有点的量化权重的数组,数组的维度与点云中点的个数一致,通过点的索引便可以查询到当前点的量化权重。
在本申请的一些实施例中,解码器将点云划分为一个或多个LOD层,每个LOD层包括一个或多个点;多个LOD层中的前M个LOD层中的点的量化权重的初始值,大于多个LOD层中除前M个LOD层之外的剩余LOD中的点的量化权重的初始值。M为大于0的整数。例如,前7层LOD中每个点的量化权重的初始值设为512,其余LOD中每个点的量化权重的初始值设为256。
在一种实现方式中,解码器可以按照点云的解码顺序的倒序,遍历点云中的点,并基于当前点的量化权重更新当前点的N个最邻近点的量化权重,N为大于0的整数。例如,针对当前点而言,基于当前点的量化权重,更新当前点的N个最邻近点中的每一个最邻近点的量化权重;N为大于0的整数。在一种实现方式中,获取当前点对N个最邻近点中的每一个最邻近点的影响权重,影响权重取决于当前点和N个最邻近点的位置信息;基于当前点的量化权重和当前点对N个最邻近点中的每一个最邻近点的影响权重,更新N个最邻近点的量化权重。在一种实现方式中,点云的属性参数集包括当前点对N个最邻近点中的每一个最邻近点的影响权重;通过查询属性参数集,获取当前点对N个最邻近点中的每一个最邻近点的影响权重。即,根据点云的属性参数集,获取当前点对N个最邻近点中的每一个最邻近点的影响权重;其中,点云的属性参数集中包括预设的当前点对N个最邻近点中的每一个最邻近点的影响权重。
需要说明的是,点云中的每一个点的量化权重的初始值为预设值。
需要说明的是,本申请实施例对初始值的具体数值不作限定。作为示例,初始值可以是256、512或其他具体数值。初始化为256就是将点云中所有点的量化权重的值都设为256。
在本申请实施例中,解码器在倒序遍历完点云中的每个点后,每个点的量化权重会根据其在对点云的点的属性信息进行预测的过程中的重要性得到更新,越重要的点其量化权重数值越大。即,当前点与N个最邻近点中的每一个最邻近点的影响权重随当前点与每一个最邻近点之间距离的增大而减小。
在本申请的一些实施例中,解码器将当前点的量化权重,与N个最邻近点中的每一个最邻近点的影响权重相乘后,右移第二预设位,在与每一个最邻近点的更新前的量化权重进行求和,来更新N个最邻近点的量化权重。
在本申请的一些实施例中,当当前点不属于第一点时,解码器基于当前点的量化权重和当前点的量化步长,对量化残差值进行反量化,得到当前点的属性信息的重建残差值的实现包括:解码器基于当前点的量化权重,确定当前点的有效量化权重;利用当前点的有效量化权重和当前点的量化步长对量化残差值进行反量化,得到重建残差值。
在本申请的一些实施例中,解码器将当前点的量化权重与当前点的量化步长进行比较,确定出第一最小值;将第一最小值作为当前点的有效量化权重。
在本申请的一些实施例中,解码器将当前点的量化权重右移第一预设位后与当前点的量化步长进行比较,确定出第二最小值;将第二最小值作为当前点的有效量化权重。
在本申请的一些实施例中,有效量化权重的数值等于2的整数次幂。
在本申请的一些实施例中,当前点的量化权重的数值不等于2的整数次幂,基于当前点的量化权重的数值,将最接近当前点的量化权重的2的整数次幂,确定为有效量化权重。
本申请实施例中,通过将有效量化权重的数值构造为2的整数次幂,可将加权的乘法运算处理为移位运算,能够提升解码器的处理效率,进而提升解码器的性能。
需要说明的是,本申请的其他可替代实施例中,可以先在当前点的量化权重和当前点的量化步长中取最小值,然后将最接近最小值的2的整数次幂,确定为有效量化权重。当然,也可以通 过其他方式确定有效量化权重,本申请实施例对此不作具体限定。例如可直接将当前点的量化权重确定为当前点的有效量化权重。
在本申请的一些实施例中,解码器利用当前点的量化步长对量化残差值进行反量化,得到加权残差值;利用加权残差值除以有效量化权重,得到重建残差值。
解码器首先根据重建的位置信息计算点云中每个点的量化权重,通过与量化步长比较确定每个点的有效量化权重,然后解码码流得到当前点的量化残差值,反量化得到加权预测残差值,加权预测残差值除以有效量化权重得到预测残差值,解码器通过预测变换确定当前点的属性信息的预测值,随后基于当前点的属性信息的预测值和预测残差值得到当前点的属性信息的重建值,解码器获取当前点的属性信息的重建值后,按顺序遍历下一个点进行解码和重建。
解码器在反量化后,对反量化的加权预测残差值除以有效量化权重去除加权影响,得到预测残差值。需要说明的是,由于量化不是无损的,因此解码器得到的加权预测残差值不一定等于编码器得到的加权预测残差值。
示例性的,在本申请的一些实施例中,利用以下公式(16)对所述量化残差值进行反量化,得到所述重建残差值:
attrResidualQuant1=(attrResidualQuant2×Qstep)/effectiveQuantWeight (16)
其中,attrResidualQuant2表示量化残差值,attrResidualQuant1表示重建残差值,effectiveQuantWeight表示当前点的有效量化权重,Qstep表示当前点的量化步长。
需要说明的是,解码器与编码器的部分实现原理一致,此处不再赘述。
可以理解的是,解码器针对当前点进行解码时,不仅可以针对通过对点云中至少一个点的属性信息的残差值进行无损解码(即不进行反量化),以减少量化对属性信息的重建值的影响,进而提高属性信息预测的准确性,还引入了除无损解码之外的点的量化权重,利用除无损解码之外的点的不同的量化权重,自适应的进行除无损解码之外的点的预测残差值进行反量化,在对点云中的点的属性信息进行预测的过程中,针对在解码顺序中位置靠前的点,当其在预测中比较重要时,能够避免其量化步长过大,进而能够避免产生较大的重建误差,相当于量化权重高的点采用较小的量化步长量化以降低其重建误差,针对在解码顺序中位置靠后的点,能够提升其预测的准确性。
需要说明的是,本申请的技术方案在G-PCC参考软件TMC13V12.0上实现后,在通用测试配置CTC CY测试条件下对运动图象专家组(MPEG)要求的部分点云测试系列(cat1-A)进行测试,测试结果如表1-表2所示:
表1
由表1可知,cat1-A点云系列中的点包括颜色属性信息和其他属性信息,例如反射率属性信息,BD-AttrRate是评价视频编码算法性能的主要参数之一,表示新算法(即本申请技术方案)编码的视频相对于原来的算法在码率和PSNR(Peak Signal to Noise Ratio,峰值信噪比)上的变化情况,即新算法与原有算法在相同信噪比情况下码率的变化情况。“-”表示性能提升,例如码率和PSNR性能提升。如表1所示,对于cat1-A点云系列,采用本申请的技术方案相比于原有技术,其中亮度分量(Luma)、色度分量(Cb)和色度分量(Cr)上均有性能提升。
表2
由表2可知,对于cat1-A点云系列,采用本申请的技术方案相比于只采用部分无损压缩的技术,其中,亮度分量(Luma)的平均值提升了3.9%、色度分量Cb的平均值提升了6.4%和色度分量Cr的平均值提升了5.9%。
基于前述实施例的实现基础,如图10所示,本申请实施例提供了一种编码器1,包括:
第一确定部分10,被配置为根据点云中的当前点的属性信息的预测值,确定所述当前点的属性信息的预测残差值;以及确定当前点的索引;
编码部分11,被配置为若所述当前点的索引属于第一点的索引范围,则对所述当前点的属性信息的预测残差值进行无损编码;其中,所述第一点为进行无损编码的至少一个点;以及,
若所述当前点的索引不属于第一点的索引范围,则基于所述当前点的量化权重和当前点的量化步长,对所述当前点的属性信息的预测残差值进行量化,得到所述当前点的属性信息的量化残差值;并对所述量化残差值进行编码;其中,所述当前点的量化权重为对所述当前点的预测残差值进行加权时采用的权重。
在本申请的一些实施例中,所述编码器1还包括:第一划分部分12(图中未示出);所述第一划分部分12,还被配置为根据预设间隔,对所述点云中的点进行划分,确定所述第一点的索引范围。
在本申请的一些实施例中,所述第一划分部分12,还被配置为根据所述点云中点的几何信息,对所述点云进行渐近层次表达LOD划分,得到所述点云的多个LOD层,其中,每个LOD层中包括一个或多个点。
在本申请的一些实施例中,所述预设间隔包括:第一预设间隔和第二预设间隔;所述第一点的索引范围包括:第一索引范围和第二索引范围;
所述第一划分部分12,还被配置为按照第一预设间隔,对所述多个LOD层中的前M个LOD层中的至少一个点进行划分,得到第一点的所述第一索引范围;按照第二预设间隔,对所述多个LOD层中的剩余LOD层中的至少一个点进行划分,得到第一点的所述第二索引范围;其中,M为正整数,且小于所述多个LOD层的总层数;所述第一预设间隔小于所述第二预设间隔。
在本申请的一些实施例中,所述当前点为所述多个LOD层中的任意一个LOD层中的点。
在本申请的一些实施例中,所述编码器1还包括:第一获取部分13和写入部分14(图中未示出);
所述第一获取部分13,被配置为获取所述点云中点的索引属于所述第一点的索引范围内的点的数量;
所述写入部分14,还被配置为将所述点的数量写入码流。
在本申请的一些实施例中,所述第一获取部分13,被配置为获取每个LOD层中点的索引属于所述第一点的索引范围内的点的数量。
在本申请的一些实施例中,所述编码部分11,还被配置为跳过对所述当前点的属性信息的预测残差值放入量化过程;或者,
将所述当前点的量化步长设置为1;或者,
将所述当前点的量化参数QP设置为目标值;其中,所述目标值为量化步长为1时对应的QP值。
在本申请的一些实施例中,所述第一确定部分10,还被配置为根据所述当前点的索引,确定 所述当前点的量化权重。
在本申请的一些实施例中,所述编码部分11,还被配置为基于所述当前点的量化权重,确定所述当前点的有效量化权重;利用所述当前点的有效量化权重和所述当前点的量化步长,对所述预测残差值进行量化,得到所述量化残差值。
在本申请的一些实施例中,所述编码部分11,还被配置为将所述当前点的量化权重与所述当前点的量化步长进行比较,确定第一最小值;将所述第一最小值作为所述当前点的有效量化权重。
在本申请的一些实施例中,所述编码部分11,还被配置为将所述当前点的量化权重右移第一预设位后与所述当前点的量化步长进行比较,确定第二最小值;将所述第二最小值作为所述当前点的有效量化权重。
在本申请的一些实施例中,所述编码部分11,还被配置为利用所述有效量化权重乘以所述预测残差值,得到加权残差值;利用所述当前点的量化步长对所述加权残差值进行量化,得到所述量化残差值。
在本申请的一些实施例中,所述编码器1还包括:第一更新部分15(图中未示出);
所述第一更新部分15,被配置为按照所述点云的编码顺序的倒序,遍历所述点云中的点,并基于当前点的量化权重更新所述当前点的N个最邻近点的量化权重,N为大于0的整数;其中,所述点云中的点的量化权重的初始值为预设值。
在本申请的一些实施例中,多个LOD层中的前M个LOD层中的点的量化权重的初始值,大于所述多个LOD层中除所述M个LOD层之外剩余LOD层中的点的量化权重的初始值。
在本申请的一些实施例中,所述第一更新部分15,被配置为获取所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重,所述影响权重取决于所述当前点和所述N个最邻近点的位置信息;基于所述当前点的量化权重和所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重,更新所述N个最邻近点的量化权重。
在本申请的一些实施例中,所述第一更新部分15,被配置为根据点云的属性参数集,获取所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重;其中,所述点云的属性参数集中包括预设的所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重。
在本申请的一些实施例中,所述第一更新部分15,被配置为将所述当前点的量化权重,与所述N个最邻近点中的每一个最邻近点的影响权重相乘后,右移第二预设位,再与每一个最邻近点的更新前的量化权重进行求和,来更新所述N个最邻近点的量化权重。
在本申请的一些实施例中,所述当前点与所述N个最邻近点中的每一个最邻近点的影响权重随所述当前点与所述每一个最邻近点之间距离的增大而减小。
在本申请的一些实施例中,所述点云中的点的量化权重存储为数组,所述数组的维度和所述点云中点的个数相同。
在本申请的一些实施例中,所述第一确定部分10,还被配置为对所述点云中的当前点的几何信息进行处理,确定所述点云中的当前点的几何信息的重建信息;根据所述当前点的几何信息的重建信息,确定所述当前点的属性信息的预测值;对所述当前点的属性信息进行处理,确定当前点的属性信息的真实值;根据所述当前点的属性信息的预测值和所述当前点的属性信息的真实值,确定所述当前点的预测残差值。
可以理解的是,编码器针对当前点进行编码时,不仅可以针对通过对点云中至少一个点的属性信息的残差值进行无损编码(即不进行量化),以减少量化对属性信息的重建值的影响,进而提高属性信息预测的准确性,还引入了除无损编码之外的点的量化权重,利用除无损编码之外的点的不同的量化权重,自适应的进行除无损编码之外的点的预测残差值进行量化,在对所述点云中的点的属性信息进行预测的过程中,针对在编码顺序中位置靠前的点,当其在预测中比较重要时,能够避免其量化步长过大,进而能够避免产生较大的重建误差,相当于量化权重高的点采用较小的量化步长量化以降低其重建误差,针对在编码顺序中位置靠后的点,能够提升其预测准确性。
在实际应用中,如图11所示,本申请实施例还提供了一种编码器,包括:
第一存储器16,用于存储可执行点云编码指令;
第一处理器17,用于执行所述第一存储器16中存储的可执行点云编码指令时,实现点云编码方法。
其中,第一处理器17可以通过软件、硬件、固件或者其组合实现,可以使用电路、单个或多个专用集成电路(application specific integrated circuits,ASIC)、单个或多个通用集成电路、单个或多 个微处理器、单个或多个可编程逻辑器件、或者前述电路或器件的组合、或者其他适合的电路或器件,从而使得该第一处理器17可以执行前述实施例中的点云编码方法的相应步骤。
在本公开实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:磁性随机存取存储器(FRAM,ferromagnetic random access memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory)等各种可以存储程序代码的介质,本公开实施例不作限制。
本申请实施例还提供了一种计算机可读存储介质,存储有可执行点云编码指令,用于引起第一处理器执行时,实现本申请实施例提供的点云编码方法。
基于前述实施例的实现基础,如图12所示,本申请实施例提供了一种解码器2,包括:
解码部分20,被配置为解码码流,确定点云中点的预测值和所述点云的当前点的属性信息的预测残差信息;
第二确定部分21,被配置为确定所述当前点的索引;及,
若所述当前点的索引属于第一点的索引范围,则所述预测残差信息为所述当前点的预测残差值,基于所述预测残差值和所述当前点的预测值,确定所述当前点的重建值;其中,所述第一点为进行无损编码的至少一个点;或者,
若所述当前点的索引不属于第一点的索引范围,则所述预测残差信息为所述当前点的量化残差值;基于当前点的量化权重和当前点的量化步长,对所述量化残差值进行反量化,得到所述当前点的属性信息的重建残差值;以及根据所述重建残差值和所述当前点的属性信息的预测值,得到所述当前点的属性信息的重建值,其中,所述当前点的量化权重为对所述当前点的预测残差值进行加权时采用的权重。
在本申请的一些实施例中,所述解码部分20,还被配置为解码码流,确定点云中点的几何信息和所述点云的当前点的属性信息的所述预测残差信息;根据所述点云中点的几何信息,确定所述点云中的当前点的属性信息的预测值。
在本申请的一些实施例中,所述解码器2还包括:第二划分部分22(图中未示出);所述第二划分部分22,还被配置为根据预设间隔,对所述点云中的点进行划分,确定出所述第一点的索引范围。
在本申请的一些实施例中,所述第二划分部分22,还被配置为根据点云中点的几何信息,对所述点云进行渐近层次表达LOD划分,得到所述点云的多个LOD层,其中,每个LOD层中包括一个或多个点。
在本申请的一些实施例中,所述预设间隔包括:第一预设间隔和第二预设间隔;所述第一点的索引范围包括:第一索引范围和第二索引范围;
所述第二划分部分22,还被配置为按照第一预设间隔,对所述多个LOD层中的前M个LOD层中的至少一个点进行划分,得到第一点的所述第一索引范围;按照第二预设间隔,对所述多个LOD层中的剩余LOD层中的至少一个点进行划分,得到第一点的所述第二索引范围;其中,M为正整数,且小于所述多个LOD层的总层数;所述第一预设间隔小于所述第二预设间隔。
在本申请的一些实施例中,所述当前点为所述多个LOD层中的任意一个LOD层中的点。
在本申请的一些实施例中,所述解码部分20,还被配置为解码码流,确定所述点云中点的索引属于所述第一点的索引范围内的点的数量;所述点的数量供进行第一点的索引范围划分时使用。
在本申请的一些实施例中,所述点的数量包括:每个LOD层中属于所述第一点的索引范围内的点的数量。
在本申请的一些实施例中,所述第二确定部分21,还被配置为根据所述当前点的索引,确定所述当前点的量化权重。
在本申请的一些实施例中,所述第二确定部分21,还被配置为基于所述当前点的量化权重,确定所述当前点的有效量化权重;利用所述当前点的有效量化权重和所述当前点的量化步长对所述量化残差值进行反量化,得到所述重建残差值。
在本申请的一些实施例中,所述第二确定部分21,还被配置为将所述当前点的量化权重与所述当前点的量化步长进行比较,确定第一最小值;将所述第一最小值作为所述当前点的有效量化权重。
在本申请的一些实施例中,所述第二确定部分21,还被配置为将所述当前点的量化权重右移第一预设位后与所述当前点的量化步长进行比较,确定第二最小值;将所述第二最小值作为所述当前点的有效量化权重。
在本申请的一些实施例中,所述第二确定部分21,还被配置为利用所述当前点的量化步长对所述量化残差值进行反量化,得到加权残差值;利用所述加权残差值除以所述有效量化权重,得到所述重建残差值。
在本申请的一些实施例中,所述解码器2还包括:第二更新部分23(图中未示出);所述第二更新部分23,被配置为按照所述点云的编码顺序的倒序,遍历所述点云中的点,并基于当前点的量化权重更新所述当前点的N个最邻近点的量化权重,N为大于0的整数;其中,所述点云中的每一个点的量化权重的初始值为预设值。
在本申请的一些实施例中,多个LOD层中的前M个LOD层中的点的量化权重的初始值,大于所述多个LOD层中除所述M个LOD层之外剩余LOD层中的点的量化权重的初始值。
在本申请的一些实施例中,所述第二更新部分23,还被配置为获取所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重,所述影响权重取决于所述当前点和所述N个最邻近点的位置信息;基于所述当前点的量化权重和所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重,更新所述N个最邻近点的量化权重。
在本申请的一些实施例中,所述第二更新部分23,还被配置为根据点云的属性参数集,获取所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重;其中,所述点云的属性参数集中包括预设的所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重。
在本申请的一些实施例中,所述第二更新部分23,还被配置为将所述当前点的量化权重,与所述N个最邻近点中的每一个最邻近点的影响权重相乘后,右移第二预设位,再与每一个最邻近点的更新前的量化权重进行求和,来更新所述N个最邻近点的量化权重。
在本申请的一些实施例中,所述当前点与所述N个最邻近点中的每一个最邻近点的影响权重随所述当前点与所述每一个最邻近点之间距离的增大而减小。
在本申请的一些实施例中,所述点云中的点的量化权重存储为数组,所述数组的维度和所述点云中点的个数相同。
可以理解的是,解码器针对当前点进行解码时,不仅可以针对通过对点云中至少一个点的属性信息的残差值进行无损解码(即不进行反量化),以减少量化对属性信息的重建值的影响,进而提高属性信息预测的准确性,还引入了除无损解码之外的点的量化权重,利用除无损解码之外的点的不同的量化权重,自适应的进行除无损解码之外的点的预测残差值进行反量化,在对点云中的点的属性信息进行预测的过程中,针对在解码顺序中位置靠前的点,当其在预测中比较重要时,能够避免其量化步长过大,进而能够避免产生较大的重建误差,相当于量化权重高的点采用较小的量化步长量化以降低其重建误差,针对在解码顺序中位置靠后的点,能够提升其预测的准确性。
在实际应用中,如图13所示,本申请实施例还提供了一种解码器,包括:
第二存储器24,用于存储可执行点云解码指令;
第二处理器25,用于执行所述第二存储器24中存储的可执行点云解码指令时,实现解码器的点云解码方法。
本申请实施例还提供了一种计算机可读存储介质,存储有可执行点云解码指令,用于引起第二处理器执行时,实现本申请实施例提供的点云解码方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元以及流程步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
最后需要说明的是,以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
工业实用性
本申请实施例提供了一种点云编解码方法、编码器、解码器及计算机可读存储介质,针对当前点进行编码时,不仅可以针对通过对点云中至少一个点的属性信息的残差值进行无损编码(即不进行量化),以减少量化对属性信息的重建值的影响,进而提高属性信息预测的准确性,还引入了除无损编码之外的点的量化权重,利用除无损编码之外的点的不同的量化权重,自适应的进行除无损编码之外的点的预测残差值进行量化,在对所述点云中的点的属性信息进行预测的过程中,针对在编码顺序中位置靠前的点,当其在预测中比较重要时,能够避免其量化步长过大,进而能够避免产生较大的重建误差,相当于量化权重高的点采用较小的量化步长量化以降低其重建误差,针对在编码顺序中位置靠后的点,能够提升其预测准确性。

Claims (46)

  1. 一种点云编码方法,包括:
    根据点云中的当前点的属性信息的预测值,确定所述当前点的属性信息的预测残差值;
    确定当前点的索引;
    若所述当前点的索引属于第一点的索引范围,则对所述当前点的属性信息的预测残差值进行无损编码;其中,所述第一点为进行无损编码的至少一个点;
    若所述当前点的索引不属于第一点的索引范围,则基于所述当前点的量化权重和当前点的量化步长,对所述当前点的属性信息的预测残差值进行量化,得到所述当前点的属性信息的量化残差值;并对所述量化残差值进行编码;其中,所述当前点的量化权重为对所述当前点的预测残差值进行加权时采用的权重。
  2. 根据权利要求1所述的方法,其中,所述方法还包括:
    根据预设间隔,对所述点云中的点进行划分,确定所述第一点的索引范围。
  3. 根据权利要求2所述的方法,其中,所述方法还包括:
    根据所述点云中点的几何信息,对所述点云进行渐近层次表达LOD划分,得到所述点云的多个LOD层,其中,每个LOD层中包括一个或多个点。
  4. 根据权利要求3所述的方法,其中,所述预设间隔包括:第一预设间隔和第二预设间隔;所述第一点的索引范围包括:第一索引范围和第二索引范围;
    所述根据预设间隔,对所述点云中的点进行划分,确定所述第一点的索引范围,包括:
    按照第一预设间隔,对所述多个LOD层中的前M个LOD层中的至少一个点进行划分,得到第一点的所述第一索引范围;
    按照第二预设间隔,对所述多个LOD层中的剩余LOD层中的至少一个点进行划分,得到第一点的所述第二索引范围;其中,M为正整数,且小于所述多个LOD层的总层数;所述第一预设间隔小于所述第二预设间隔。
  5. 根据权利要求3所述的方法,其中,
    所述当前点为所述多个LOD层中的任意一个LOD层中的点。
  6. 根据权利要求1至5任一项所述的方法,其中,所述方法还包括:
    获取所述点云中点的索引属于所述第一点的索引范围内的点的数量;
    将所述点的数量写入码流。
  7. 根据权利要求6所述的方法,其中,所述获取所述点云中点的索引属于所述第一点的索引范围内的点的数量,包括:
    获取每个LOD层中点的索引属于所述第一点的索引范围内的点的数量。
  8. 根据权利要求1至7任一项所述的方法,其中,所述对所述当前点的属性信息的预测残差值进行无损编码,包括:
    跳过对所述当前点的属性信息的预测残差值的量化的过程;或者,
    将所述当前点的量化步长设置为1;或者,
    将所述当前点的量化参数QP设置为目标值;其中,所述目标值为量化步长为1时对应的QP值。
  9. 根据权利要求1至8任一项所述的方法,其中,所述方法还包括:
    根据所述当前点的索引,确定所述当前点的量化权重。
  10. 根据权利要求1至9任一项所述的方法,其中,所述基于所述当前点的量化权重和当前点的量化步长,对所述当前点的属性信息的预测残差值进行量化,得到所述当前点的属性信息的量化残差值,包括:
    基于所述当前点的量化权重,确定所述当前点的有效量化权重;
    利用所述当前点的有效量化权重和所述当前点的量化步长,对所述预测残差值进行量化,得到所述量化残差值。
  11. 根据权利要求10所述的方法,其中,所述基于所述当前点的量化权重,确定所述当前点的有效量化权重,包括:
    将所述当前点的量化权重与所述当前点的量化步长进行比较,确定第一最小值;
    将所述第一最小值作为所述当前点的有效量化权重。
  12. 根据权利要求10所述的方法,其中,所述基于所述当前点的量化权重,确定所述当前点的有效量化权重,包括:
    将所述当前点的量化权重右移第一预设位后与所述当前点的量化步长进行比较,确定第二最小值;
    将所述第二最小值作为所述当前点的有效量化权重。
  13. 根据权利要求10至12任一项所述的方法,其中,所述利用所述当前点的有效量化权重和所述当前点的量化步长,对所述预测残差值进行量化,得到所述量化残差值,包括:
    利用所述有效量化权重乘以所述预测残差值,得到加权残差值;
    利用所述当前点的量化步长对所述加权残差值进行量化,得到所述量化残差值。
  14. 根据权利要求1或3所述的方法,其中,所述方法还包括:
    按照所述点云的编码顺序的倒序,遍历所述点云中的点,并基于当前点的量化权重更新所述当前点的N个最邻近点的量化权重,N为大于0的整数;其中,所述点云中的点的量化权重的初始值为预设值。
  15. 根据权利要求14所述的方法,其中,
    多个LOD层中的前M个LOD层中的点的量化权重的初始值,大于所述多个LOD层中除所述M个LOD层之外剩余LOD层中的点的量化权重的初始值。
  16. 根据权利要求14所述的方法,其中,所述基于当前点的量化权重更新所述当前点的N个最邻近点的量化权重,包括:
    获取所述当前点对所述N个最邻近点所述当前点对所述N个最邻近点中的中的每一个最邻近点的影响权重,所述影响权重取决于所述当前点和所述N个最邻近点的位置信息;
    基于所述当前点的量化权重和所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重,更新所述N个最邻近点的量化权重。
  17. 根据权利要求16所述的方法,其中,所述获取所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重,包括:
    根据点云的属性参数集,确定所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重;其中,所述点云的属性参数集中包括预设的所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重。
  18. 根据权利要求16所述的方法,其中,所述基于所述当前点的量化权重和所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重,更新所述N个最邻近点的量化权重,包括:
    将所述当前点的量化权重,与所述N个最邻近点中的每一个最邻近点的影响权重相乘后,右移第二预设位,再与每一个最邻近点的更新前的量化权重进行求和,来更新所述N个最邻近点的量化权重。
  19. 根据权利要求18所述的方法,其中,
    所述当前点与所述N个最邻近点中的每一个最邻近点的影响权重随所述当前点与所述每一个最邻近点之间距离的增大而减小。
  20. 根据权利要求1所述的方法,其中,
    所述点云中的点的量化权重存储为数组,所述数组的维度和所述点云中点的个数相同。
  21. 根据权利要求1所述的方法,其中,所述根据点云中的当前点的属性信息的预测值,确定所述当前点的属性信息的预测残差值,包括:
    对所述点云中的当前点的几何信息进行处理,确定所述点云中的当前点的几何信息的重建信息;
    根据所述当前点的几何信息的重建信息,确定所述当前点的属性信息的预测值;
    对所述当前点的属性信息进行处理,确定当前点的属性信息的真实值;
    根据所述当前点的属性信息的预测值和所述当前点的属性信息的真实值,确定所述当前点的预测残差值。
  22. 一种点云解码方法,包括:
    解码码流,确定点云中点的预测值和所述点云的当前点的属性信息的预测残差信息;
    确定所述当前点的索引;
    若所述当前点的索引属于第一点的索引范围,则所述预测残差信息为所述当前点的预测残差值,基于所述预测残差值和所述当前点的预测值,确定所述当前点的重建值;其中,所述第一 点为进行无损编码的至少一个点;
    若所述当前点的索引不属于第一点的索引范围,则所述预测残差信息为所述当前点的量化残差值;基于当前点的量化权重和当前点的量化步长,对所述量化残差值进行反量化,得到所述当前点的属性信息的重建残差值;以及根据所述重建残差值和所述当前点的属性信息的预测值,得到所述当前点的属性信息的重建值,其中,所述当前点的量化权重为对所述当前点的预测残差值进行加权时采用的权重。
  23. 根据权利要求22所述的方法,其中,所述解码码流,确定点云中点的预测值和所述点云的当前点的属性信息的预测残差信息,包括:
    解码码流,确定点云中点的几何信息和所述点云的当前点的属性信息的所述预测残差信息;
    根据所述点云中点的几何信息,确定所述点云中的当前点的属性信息的预测值。
  24. 根据权利要求22或23所述的方法,其中,所述方法还包括:
    根据预设间隔,对所述点云中的点进行划分,确定所述第一点的索引范围。
  25. 根据权利要求24所述的方法,其中,所述方法还包括:
    根据点云中点的几何信息,对所述点云进行渐近层次表达LOD划分,得到所述点云的多个LOD层,其中,每个LOD层中包括一个或多个点。
  26. 根据权利要求25所述的方法,其中,所述预设间隔包括:第一预设间隔和第二预设间隔;所述第一点的索引范围包括:第一索引范围和第二索引范围;
    所述根据预设间隔,对所述点云中的点进行划分,确定出所述第一点的索引范围,包括:
    按照第一预设间隔,对所述多个LOD层中的前M个LOD层中的至少一个点进行划分,得到第一点的所述第一索引范围;
    按照第二预设间隔,对所述多个LOD层中的剩余LOD层中的至少一个点进行划分,得到第一点的所述第二索引范围;其中,M为正整数,且小于所述多个LOD层的总层数;所述第一预设间隔小于所述第二预设间隔。
  27. 根据权利要求25所述的方法,其中,
    所述当前点为所述多个LOD层中的任意一个LOD层中的点。
  28. 根据权利要求22至27任一项所述的方法,其中,所述方法还包括:
    解码码流,确定所述点云中点的索引属于所述第一点的索引范围内的点的数量;所述点的数量供进行第一点的索引范围划分时使用。
  29. 根据权利要求28所述的方法,其中,
    所述点的数量包括:每个LOD层中属于所述第一点的索引范围内的点的数量。
  30. 根据权利要求22至29任一项所述的方法,其中,所述方法还包括:
    根据所述当前点的索引,确定所述当前点的量化权重。
  31. 根据权利要求22至30任一项所述的方法,其中,所述基于当前点的量化权重和当前点的量化步长,对所述量化残差值进行反量化,得到所述当前点的属性信息的重建残差值,包括:
    基于所述当前点的量化权重,确定所述当前点的有效量化权重;
    利用所述当前点的有效量化权重和所述当前点的量化步长对所述量化残差值进行反量化,得到所述重建残差值。
  32. 根据权利要求31所述的方法,其中,所述基于所述当前点的量化权重,确定所述当前点的有效量化权重,包括:
    将所述当前点的量化权重与所述当前点的量化步长进行比较,确定第一最小值;
    将所述第一最小值作为所述当前点的有效量化权重。
  33. 根据权利要求31所述的方法,其中,所述基于所述当前点的量化权重,确定所述当前点的有效量化权重,包括:
    将所述当前点的量化权重右移第一预设位后与所述当前点的量化步长进行比较,确定第二最小值;
    将所述第二最小值作为所述当前点的有效量化权重。
  34. 根据权利要求31至33任一项所述的方法,其中,所述利用所述当前点的有效量化权重和所述当前点的量化步长对所述量化残差值进行反量化,得到所述重建残差值,包括:
    利用所述当前点的量化步长对所述量化残差值进行反量化,得到加权残差值;
    利用所述加权残差值除以所述有效量化权重,得到所述重建残差值。
  35. 根据权利要求22或25所述的方法,其中,所述方法还包括:
    按照所述点云的编码顺序的倒序,遍历所述点云中的点,并基于当前点的量化权重更新所述当前点的N个最邻近点的量化权重,N为大于0的整数;其中,所述点云中的点的量化权重的初始值为预设值。
  36. 根据权利要求35所述的方法,其中,
    多个LOD层中的前M个LOD层中的点的量化权重的初始值,大于所述多个LOD层中除所述M个LOD层之外剩余LOD层中的点的量化权重的初始值。
  37. 根据权利要求35所述的方法,其中,所述基于当前点的量化权重更新所述当前点的N个最邻近点的量化权重,包括:
    获取所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重,所述影响权重取决于所述当前点和所述N个最邻近点的位置信息;
    基于所述当前点的量化权重和所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重,更新所述N个最邻近点的量化权重。
  38. 根据权利要求37所述的方法,其中,所述获取所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重,包括:
    根据点云的属性参数集,获取所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重;其中,所述点云的属性参数集中包括预设的所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重。
  39. 根据权利要求37所述的方法,其中,所述基于所述当前点的量化权重和所述当前点对所述N个最邻近点中的每一个最邻近点的影响权重,更新所述N个最邻近点的量化权重,包括:
    将所述当前点的量化权重,与所述N个最邻近点中的每一个最邻近点的影响权重相乘后,右移第二预设位,再在与每一个最邻近点的更新前的量化权重进行求和,来更新所述N个最邻近点的量化权重。
  40. 根据权利要求39所述的方法,其中,
    所述当前点与所述N个最邻近点中的每一个最邻近点的影响权重随所述当前点与所述每一个最邻近点之间距离的增大而减小。
  41. 根据权利要求22所述的方法,其中,
    所述点云中的点的量化权重存储为数组,所述数组的维度和所述点云中点的个数相同。
  42. 一种编码器,包括:
    第一确定部分,被配置为根据点云中的当前点的属性信息的预测值,确定所述当前点的属性信息的预测残差值;以及确定当前点的索引;
    编码部分,被配置为若所述当前点的索引属于第一点的索引范围,则对所述当前点的属性信息的预测残差值进行无损编码;其中,所述第一点为进行无损编码的至少一个点;以及,
    若所述当前点的索引不属于第一点的索引范围,则基于所述当前点的量化权重和当前点的量化步长,对所述当前点的属性信息的预测残差值进行量化,得到所述当前点的属性信息的量化残差值;并对所述量化残差值进行编码;其中,所述当前点的量化权重为对所述当前点的预测残差值进行加权时采用的权重。
  43. 一种编码器,包括:
    第一存储器,用于存储可执行点云编码指令;
    第一处理器,用于执行所述第一存储器中存储的可执行点云编码指令时,实现权利要求1至21任一项所述的方法。
  44. 一种解码器,包括:
    解码部分,被配置为解码码流,确定点云中点的预测值和所述点云的当前点的属性信息的预测残差信息;
    第二确定部分,被配置为确定所述当前点的索引;及,
    若所述当前点的索引属于第一点的索引范围,则所述预测残差信息为所述当前点的预测残差值,基于所述预测残差值和所述当前点的预测值,确定所述当前点的重建值;其中,所述第一点为进行无损编码的至少一个点;或者,
    若所述当前点的索引不属于第一点的索引范围,则所述预测残差信息为所述当前点的量化残差值;基于当前点的量化权重和当前点的量化步长,对所述量化残差值进行反量化,得到所述当前点的属性信息的重建残差值;以及根据所述重建残差值和所述当前点的属性信息的预测值,得到所述当前点的属性信息的重建值,其中,所述当前点的量化权重为对所述当前点的预测残差 值进行加权时采用的权重。
  45. 一种解码器,包括:
    第二存储器,用于存储可执行点云解码指令;
    第二处理器,用于执行所述第二存储器中存储的可执行点云解码指令时,实现权利要求22至41任一项所述的方法。
  46. 一种计算机可读存储介质,存储有可执行点云编码指令,用于引起第一处理器执行时,实现权利要求1至21任一项所述的方法;或者,存储有可执行点云解码指令,用于引起第二处理器执行时,实现权利要求22至41任一项所述的方法。
CN202180096768.1A 2021-04-13 2021-04-13 点云编解码方法、编码器、解码器及计算机可读存储介质 Pending CN117121489A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/087076 WO2022217472A1 (zh) 2021-04-13 2021-04-13 点云编解码方法、编码器、解码器及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN117121489A true CN117121489A (zh) 2023-11-24

Family

ID=83639971

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180096768.1A Pending CN117121489A (zh) 2021-04-13 2021-04-13 点云编解码方法、编码器、解码器及计算机可读存储介质

Country Status (4)

Country Link
US (1) US20240037801A1 (zh)
EP (1) EP4325857A1 (zh)
CN (1) CN117121489A (zh)
WO (1) WO2022217472A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112997498A (zh) * 2018-11-13 2021-06-18 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
WO2020256244A1 (ko) * 2019-06-21 2020-12-24 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN110418135B (zh) * 2019-08-05 2022-05-27 北京大学深圳研究生院 一种基于邻居的权重优化的点云帧内预测方法及设备
WO2021049758A1 (ko) * 2019-09-11 2021-03-18 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11409998B2 (en) * 2019-10-02 2022-08-09 Apple Inc. Trimming search space for nearest neighbor determinations in point cloud compression
US11568571B2 (en) * 2019-10-03 2023-01-31 Tencent America LLC Techniques and apparatus for lossless lifting for attribute coding

Also Published As

Publication number Publication date
US20240037801A1 (en) 2024-02-01
EP4325857A1 (en) 2024-02-21
WO2022217472A1 (zh) 2022-10-20

Similar Documents

Publication Publication Date Title
EP2723071A1 (en) Encoder, decoder and method
EP4088447A1 (en) Method and apparatus for haar-based point cloud coding
US11580670B2 (en) Method and apparatus for inter-channel prediction and transform for point cloud attribute coding
WO2022062369A1 (zh) 点云编解码方法与系统、及点云编码器与点云解码器
KR20210136082A (ko) 포인트 클라우드 속성 코딩을 위한 채널간 예측 및 변환을 위한 기술들 및 장치
US20230342985A1 (en) Point cloud encoding and decoding method and point cloud decoder
US11202085B1 (en) Low-cost hash table construction and hash-based block matching for variable-size blocks
EP4258671A1 (en) Point cloud attribute predicting method, encoder, decoder, and storage medium
CN117321991A (zh) 点云属性的预测方法、装置及编解码器
CN116250008A (zh) 点云的编码、解码方法、编码器、解码器以及编解码系统
CN110710208B (zh) 嵌入关于eob位置的信息
WO2023015530A1 (zh) 点云编解码方法、编码器、解码器及计算机可读存储介质
CN117121489A (zh) 点云编解码方法、编码器、解码器及计算机可读存储介质
CN116325732A (zh) 点云的解码、编码方法、解码器、编码器和编解码系统
CN116601947A (zh) 点云的解码方法、编码方法、解码器以及编码器
KR20170098163A (ko) 이미지 부호화 및 복호화 방법, 이를 이용하는 이미지 부호화기 및 이미지 복호화기
CN117337449A (zh) 点云质量增强方法、编码和解码方法及装置、存储介质
CN116980624A (zh) 点云编解码方法、编码器、解码器以及计算机存储介质
CN112509107A (zh) 一种点云属性重着色方法、装置及编码器
CN116783887A (zh) 点云的编码方法、解码方法、编码器以及解码器
CN116708769A (zh) 点云编解码方法与系统、及点云编码器与点云解码器
CN118765499A (zh) 编码方法、编码器以及存储介质
CN118805200A (zh) 索引确定方法、装置、解码器以及编码器
CN118435598A (zh) 一种解码方法、编码方法、解码器、编码器及存储介质
CN118303029A (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