CN116248893A - 基于预测树的点云编码方法、装置、设备及存储介质 - Google Patents

基于预测树的点云编码方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116248893A
CN116248893A CN202111484417.6A CN202111484417A CN116248893A CN 116248893 A CN116248893 A CN 116248893A CN 202111484417 A CN202111484417 A CN 202111484417A CN 116248893 A CN116248893 A CN 116248893A
Authority
CN
China
Prior art keywords
points
node
prediction tree
point cloud
point
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
CN202111484417.6A
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202111484417.6A priority Critical patent/CN116248893A/zh
Publication of CN116248893A publication Critical patent/CN116248893A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请提供了一种基于预测树的点云编码方法、装置、设备及存储介质,该方法包括:获取目标点云,目标点云包括N个点;基于N个点中的部分主节点,构建主预测树;针对主预测树中的每个主节点,将剩余点中主节点的邻近点,插入主节点处,得到目标点云的目标预测树;基于目标预测树,对目标点云进行编码。即本申请以主节点为中心,优化局部点之间的连接关系,防止距离较远的点相连,这样得到的目标预测树实现了局部的最优排序,提高了目标预测树的构建准确性。基于该准确构建的目标预测树进行预测时,可以提高目标点云的预测准确性,进而提高目标点云的编码效率。

Description

基于预测树的点云编码方法、装置、设备及存储介质
技术领域
本申请实施例涉及视频编解码技术领域,尤其涉及一种基于预测树的点云编码方法、装置、设备及存储介质。
背景技术
通过采集设备对物体表面进行采集,形成点云数据,点云数据包括几十万甚至更多的点。在视频制作过程中,将点云数据以点云媒体文件的形式在视频制作设备和点云编码设备之间传输。但是,如此庞大的点给传输带来了挑战,因此,视频制作设备需要对点云数据进行压缩后传输。
预测树编码作为点云编码的一种方式,其编码过程简单,得到了广泛应用。但是目前技术构建预测树时,可能将距离较远的两个点连接在一起,使得预测树不准确,基于该不准确的预测树进行点云编码时,编码效果差。
发明内容
本申请提供一种基于预测树的点云编码方法、装置、设备及存储介质,提高了预测树的构建准确性,进而提高了点云的编码效果。
第一方面,本申请提供一种基于预测树的点云编码方法,包括:
获取目标点云,所述目标点云包括N个点,所述N为大于1的正整数;
基于所述N个点中的部分主节点,构建主预测树;
针对所述主预测树中的每个主节点,将剩余点中所述主节点的邻近点,插入所述主节点处,得到所述目标点云的目标预测树,所述剩余点为所述N个点中除所述部分主节点之外的点;
基于所述目标预测树,对所述目标点云进行编码。
第二方面,本申请提供一种基于预测树的点云解码方法,包括:
解码码流,得到目标点云的目标预测树,所述目标点云包括N个点,所述N为大于1的正整数;
确定所述目标预测树中的主节点和从节点;
对所述主节点采用第一解码方式进行解码;
对所述从节点采用第二解码方式进行解码,所述第二解码方式与所述第一解码方式不同。
第三方面,提供了一种基于预测树的点云编码装置,包括:
获取单元,用于获取目标点云,所述目标点云包括N个点,所述N为大于1的正整数;
第一构建单元,用于基于所述N个点中的部分主节点,构建主预测树;
第二构建单元,用于针对所述主预测树中的每个主节点,将剩余点中所述主节点的邻近点,插入所述主节点处,得到所述目标点云的目标预测树,所述剩余点为所述N个点中除所述部分主节点之外的点;
编码单元,用于基于所述目标预测树,对所述目标点云进行编码。
第四方面,提供了一种基于预测树的点云解码装置,包括:
解码单元,用于解码码流,得到目标点云的目标预测树,所述目标点云包括N个点,所述N为大于1的正整数;
确定单元,用于确定所述目标预测树中的主节点和从节点;
解码单元,还用于对所述主节点采用第一解码方式进行解码;对所述从节点采用第二解码方式进行解码,所述第二解码方式与所述第一解码方式不同。
第五方面,提供了一种编码设备,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第一方面或其各实现方式中的方法。
第六方面,提供了一种解码设备,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第二方面或其各实现方式中的方法。
第七方面,提供了一种编解码系统,包括第五方面中的编码设备,以及第六方面中的解码设备。
第八方面,提供了一种芯片,用于实现上述第一方面至第二方面中任一方面或其各实现方式中的方法。具体地,所述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第九方面,提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第十方面,提供了一种计算机程序产品,包括计算机程序指令,所述计算机程序指令使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第十一方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第十二方面,提供了一种电设备,包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行第一方面和/或第二方面任一项所述的方法。
综上,本申请通过获取目标点云,所述目标点云包括N个点,所述N为大于1的正整数;基于所述N个点中的部分主节点,构建主预测树;针对所述主预测树中的每个主节点,将剩余点中所述主节点的邻近点,插入所述主节点处,得到所述目标点云的目标预测树,所述剩余点为所述N个点中除所述部分主节点之外的点;基于所述目标预测树,对所述目标点云进行编码。即本申请首先使用目标点云的部分点构建主预测树,接着,将主预测树中每个主节点的邻近点插入主节点处得到目标预测树。也就是说本申请以主节点为中心,优化局部点之间的连接关系,防止距离较远的点相连,这样得到的目标预测树实现了局部的最优排序,提高了目标预测树的构建准确性。基于该准确构建的目标预测树进行预测时,可以提高目标点云的预测准确性,进而提高目标点云的编码效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例涉及的一种点云编解码系统的示意性框图;
图2是本申请实施例提供的编码框架的示意性框图;
图3是本申请实施例提供的解码框架的示意性框图;
图4为一种点云包围盒示意图;
图5为一种八叉树编码示意图;
图6为一种预测树示意图;
图7为本申请一实施例提供的基于预测树的点云编码方法的流程图;
图8是本申请涉及的一种主预测树示意图;
图9是本申请涉及的一种目标预测树示意图;
图10为本申请一实施例提供的基于预测树的点云解码方法的流程图;
图11是本申请一实施例的基于预测树的点云编码装置的示意性框图;
图12是本申请一实施例的基于预测树的点云解码装置的示意性框图;
图13是本申请实施例提供的电子设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应理解,在本发明实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。
另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。为了便于理解本申请的实施例,首先对本申请实施例涉及到的相关概念进行如下简单介绍:
点云(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)、电磁定位信息等医学设备获取生物组织器官的点云数据。
点云可以按获取的途径分为:密集型点云和稀疏性点云。
点云按照数据的时序类型划分为:
第一静态点云:即物体是静止的,获取点云的设备也是静止的;
第二类动态点云:物体是运动的,但获取点云的设备是静止的;
第三类动态获取点云:获取点云的设备是运动的。
按点云的用途分为两大类:
类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;
类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
图1为本申请实施例涉及的一种点云编解码系统的示意性框图。需要说明的是,图1只是一种示例,本申请实施例的点云编解码系统包括但不限于图1所示。如图1所示,该点云编解码系统100包含编码设备110和解码设备120。其中编码设备用于对点云数据进行编码(可以理解成压缩)产生码流,并将码流传输给解码设备。解码设备对编码设备编码产生的码流进行解码,得到解码后的点云数据。
本申请实施例的编码设备110可以理解为具有点云编码功能的设备,解码设备120可以理解为具有点云解码功能的设备,即本申请实施例对编码设备110和解码设备120包括更广泛的装置,例如包含智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机等。
在一些实施例中,编码设备110可以经由信道130将编码后的点云数据(如码流)传输给解码设备120。信道130可以包括能够将编码后的点云数据从编码设备110传输到解码设备120的一个或多个媒体和/或装置。
在一个实例中,信道130包括使编码设备110能够实时地将编码后的点云数据直接发射到解码设备120的一个或多个通信媒体。在此实例中,编码设备110可根据通信标准来调制编码后的点云数据,且将调制后的点云数据发射到解码设备120。其中通信媒体包含无线通信媒体,例如射频频谱,可选的,通信媒体还可以包含有线通信媒体,例如一根或多根物理传输线。
在另一实例中,信道130包括存储介质,该存储介质可以存储编码设备110编码后的点云数据。存储介质包含多种本地存取式数据存储介质,例如光盘、DVD、快闪存储器等。在该实例中,解码设备120可从该存储介质中获取编码后的点云数据。
在另一实例中,信道130可包含存储服务器,该存储服务器可以存储编码设备110编码后的点云数据。在此实例中,解码设备120可以从该存储服务器中下载存储的编码后的点云数据。可选的,该存储服务器可以存储编码后的点云数据且可以将该编码后的点云数据发射到解码设备120,例如web服务器(例如,用于网站)、文件传送协议(FTP)服务器等。
一些实施例中,编码设备110包含点云编码器112及输出接口113。其中,输出接口113可以包含调制器/解调器(调制解调器)和/或发射器。
在一些实施例中,编码设备110除了包括点云编码器112和输入接口113外,还可以包括视频源111。
视频源111可包含视频采集装置(例如,视频相机)、视频存档、视频输入接口、计算机图形系统中的至少一个,其中,视频输入接口用于从视频内容提供者处接收点云数据,计算机图形系统用于产生点云数据。
点云编码器112对来自视频源111的点云数据进行编码,产生码流。点云编码器112经由输出接口113将编码后的点云数据直接/间接传输到解码设备120。编码后的点云数据还可存储于存储介质或存储服务器上,以供解码设备120后续读取。
在一些实施例中,解码设备120包含输入接口121和点云解码器122。
在一些实施例中,解码设备120除包括输入接口121和点云解码器122外,还可以包括显示装置123。
其中,输入接口121包含接收器及/或调制解调器。输入接口121可通过信道130接收编码后的点云数据。
点云解码器122用于对编码后的点云数据进行解码,得到解码后的点云数据,并将解码后的点云数据传输至显示装置123。
显示装置123显示解码后的点云数据。显示装置123可与解码设备120整合或在解码设备120外部。显示装置123可包括多种显示装置,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。
此外,图1仅为实例,本申请实施例的技术方案不限于图1,例如本申请的技术还可以应用于单侧的点云编码或单侧的点云解码。
由于点云是海量点的集合,存储所述点云不仅会消耗大量的内存,而且不利于传输,也没有这么大的带宽可以支持将点云不经过压缩直接在网络层进行传输,因此对点云进行压缩是很有必要的。
截止目前,可通过点云编码框架对点云进行压缩。
点云编码框架可以是运动图像专家组(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及AVS-PCC均针对静态的稀疏型点云,其编码框架大致相同。G-PCC编解码框架可用于针对第一静态点云和第三类动态获取点云进行压缩,V-PCC编解码框架可用于针对第二类动态点云进行压缩。G-PCC编解码框架也称为点云编解码器TMC13,V-PCC编解码框架也称为点云编解码器TMC2。
下面以G-PCC编解码框架对本申请实施例可适用的编解码框架进行说明。
图2是本申请实施例提供的编码框架的示意性框图。
如图2所示,编码框架200可以从采集设备获取点云的位置信息(也称为几何信息或几何位置)和属性信息。点云的编码包括位置编码和属性编码。
位置编码的过程包括:对原始点云进行坐标变换、量化去除重复点等预处理;构建八叉树后进行编码形成几何码流。
属性编码过程包括:通过给定输入点云的位置信息的重建信息和属性信息的真实值,选择三种预测模式的一种进行点云预测,对预测后的结果进行量化,并进行算术编码形成属性码流。
如图2所示,位置编码可通过以下单元实现:
坐标平移坐标量化单元201、八叉树构建单元202、八叉树重建单元203、熵编码单元204。
坐标平移坐标量化单元201可用于将点云中点的世界坐标变换为相对坐标,并对坐标进行量化,可减少坐标的数目;量化后原先不同的点可能被赋予相同的坐标。
八叉树构建单元202可利用八叉树(octree)编码方式编码量化的点的位置信息。例如,将点云按照八叉树的形式进行划分,由此,点的位置可以和八叉树的位置一一对应,通过统计八叉树中有点的位置,并将其标识(flag)记为1,以进行几何编码。
八叉树重建单元203用于重建点云中各点的几何位置,得到点的重建几何位置。
熵编码单元204可以采用熵编码方式对八叉树构建单元202输出的位置信息进行算术编码,即将八叉树构建单元202输出的位置信息利用算术编码方式生成几何码流;几何码流也可称为几何比特流(geometry bitstream)。
属性编码可通过以下单元实现:
空间变换单元210、属性插值单元211、属性预测单元212、残差量化单元213以及熵编码单元214。
空间变换单元210可用于将点云中点的RGB色彩空间变换为YCbCr格式或其他格式。
属性转化单元211可用于转换点云中点的属性信息,以最小化属性失真。例如,属性转化单元211可用于得到点的属性信息的真实值。例如,所述属性信息可以是点的颜色信息。
属性预测单元212可用于对点云中点的属性信息进行预测,以得到点的属性信息的预测值,进而基于点的属性信息的预测值得到点的属性信息的残差值。例如,点的属性信息的残差值可以是点的属性信息的真实值减去点的属性信息的预测值。
残差量化单元213可用于量化点的属性信息的残差值。
熵编码单元214可使用零行程编码(Zero run length coding)对点的属性信息的残差值进行熵编码,以得到属性码流。所述属性码流可以是比特流信息。
结合图2,本申请对于几何结构编码,主要操作和处理如下:
(1)预处理(Pre-processing):包括坐标变换(Transform coordinates)和体素化(Voxelize)。通过缩放和平移的操作,将3D空间中的点云数据转换成整数形式,并将其最小几何位置移至坐标原点处。
(2)几何编码(Geometry encoding):几何编码中包含两种模式,可在不同条件下使用。
(a)基于八叉树的几何编码(Octree):八叉树是一种树形数据结构,在3D空间划分中,对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用‘1’和‘0’指示,获得占用码信息(occupancy code)作为点云几何信息的码流。
(b)基于三角表示的几何编码(Trisoup):将点云划分为一定大小的块(block),定位点云表面在块的边缘的交点并构建三角形。通过编码交点位置实现几何信息的压缩。
(3)几何量化(Geometry quantization):量化的精细程度通常由量化参数(QP)来决定,QP取值越大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。在点云编码中,量化是直接对点的坐标信息进行的。
(4)几何熵编码(Geometry entropy encoding):针对八叉树的占用码信息,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常用的统计编码方式是基于上下文的二值化算术编码(CABAC,Content Adaptive Binary Arithmetic Coding)。
对于属性信息编码,主要操作和处理如下:
(1)属性重上色(Recoloring):有损编码情况下,在几何信息编码后,需编码端解码并重建几何信息,即恢复3D点云的各点坐标信息。在原始点云中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息。
(2)属性预测(Predict)及属性变换(Transform):
(a)预测:根据距离或空间关系等信息,在已编码点中确定待编码点的邻居点作为预测点,根据设定的准则计算该点的预测值。计算当前点属性值与预测值之间的差值作为残差,对残差信息进行量化、变换(可选)及熵编码。
(b)变换:利用离散余弦变换(Discrete Cosine Transform,简称DCT)、哈尔变换(简称Haar)等变换方法,对属性信息进行分组、变换,对变换系数做量化;通过逆量化,逆变换后得到属性重建值;计算原始属性和属性重建值的差得到属性残差并对其量化;将量化后的变换系数和属性残差编码。
(3)属性信息量化(Attribute quantization):量化的精细程度通常由量化参数(Quantization Parameter,简称QP)来决定。在预测编码中,是对残差值进行量化后进行熵编码;在变换编码中,是对变换系数进行量化后进行熵编码。
(4)属性熵编码(Attribute entropy coding):量化后的属性残差信号或变换系数一般使用行程编码(run length coding)及算数编码(arithmetic coding)实现最终的压缩。相应的编码模式,量化参数等信息也同样采用熵编码器进行编码。
由上述图2可知,点云编码器200从功能上主要包括了两部分:位置编码模块和属性编码模块,其中位置编码模块用于实现点云的位置信息的编码,形成几何码流,属性编码模块用于实现点云的属性信息的编码,形成属性码流,本申请主要涉及属性信息的编码。
图3是本申请实施例提供的解码框架的示意性框图。
如图3所示,解码框架300可以从编码设备获取点云的码流,通过解析码得到点云中的点的位置信息和属性信息。点云的解码包括位置解码和属性解码。
位置解码的过程包括:对几何码流进行算术解码;构建八叉树后进行合并,对点的位置信息进行重建,以得到点的位置信息的重建信息;对点的位置信息的重建信息进行坐标变换,得到点的位置信息。点的位置信息也可称为点的几何信息。
属性解码过程包括:通过解析属性码流,获取点云中点的属性信息的残差值;通过对点的属性信息的残差值进行反量化,得到反量化后的点的属性信息的残差值;基于位置解码过程中获取的点的位置信息的重建信息,选择三种预测模式的一种进行点云预测,得到点的属性信息的重建值;对点的属性信息的重建值进行颜色空间反转化,以得到解码点云。
如图3所示,位置解码可通过以下单元实现:
熵解码单元301、八叉树重建单元302、逆坐标量化单元303以及逆坐标平移单元304。
属性编码可通过以下单元实现:
熵解码单元310、逆量化单元311、属性重建单元312以及逆空间变换单元313。
解压缩是压缩的逆过程,类似的,解码框架300中的各个单元的功能可参见编码框架200中相应的单元的功能。
在解码端,解码器获得压缩码流后,首先进行熵解码,获得各种模式信息及量化后的几何信息以及属性信息。首先,几何信息经过逆量化,得到重建的3D点位置信息。另一方面,属性信息经过逆量化得到残差信息,并根据采用的变换模式确认参考信号,得到重建的属性信息,按顺序与几何信息一一对应,产生输出的重建点云数据。
需要说明的是,编码端属性信息编码时确定的预测、量化、编码、滤波等模式信息或者参数信息等在必要时携带在属性码流中。解码端通过解析属性码流及根据已有信息进行分析确定与编码端相同的预测、量化、编码、滤波等模式信息或者参数信息,从而保证编码端获得的属性信息的重建值和解码端获得的属性信息的重建值相同。
上述是基于G-PCC编解码框架下的点云编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本申请适用于该基于G-PCC编解码框架下的点云编解码器的基本流程,但不限于该框架及流程。
预处理
首先,确定包围盒的原点和尺寸。具体是,输入点云的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)和max(s0,s1,…,sK-1)表示取当前输入的最小值和最大值。
包围盒表示包含输入点云中所有点的最小长方体,如图4所示。
包围盒的原点(xorigin,yorigin,zorigin)可以计算如下:
xorigin=int(floor(xmin))
yorigin=int(floor(ymin))
zorigin=int(floor(zmin))
包围盒在x,y,z方向上的尺寸可以计算如下:
BoudingBoxSizex=int(xmax-xorigin)+1
BoudingBoxSizey=int(ymax-yorigin)+1
BoudingBoxSizez=int(zmax-zorigin)+1
上述的int(s)是取整函数,floor(s)函数返回小于或等于s的最大整数值。
八叉树编码
八叉树是一种树形数据结构,目前在G-PCC或是AVS-PCC中主要采用八叉树结构对点云进行划分。对3D空间中的点云数据,八叉树划分方式是逐层次地对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用‘1’和‘0’指示,如图5所示,获得占用码信息(occupancy code)作为点云几何信息的码流。
基于莫顿序(Morton)实现八叉树的构建,即将点云数据的3D坐标信息通过查询莫顿顺序表,转换成对应的莫顿码。根据每一位莫顿码的排序,获得每层八叉树的对应点。目前主流的点云编码技术是利用八叉树划分对点云数据进行表示,对几何信息和属性信息采用不同的处理流程。
旅行推销员问题(Traveling Salesman Problem,TSP)是一个经典的组合优化问题。经典的TSP可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要经过所有城市后,回到出发地。应如何选择行进路线,以使总的行程最短。从图论的角度来看,该问题实质是在一个带权完全无向图中,找一个权值最小的回路。由于该问题的可行解是所有顶点的全排列,随着顶点数的增加,会产生组合爆炸,它是一个NP完全问题。由于其在交通运输、电路板线路设计以及物流配送等领域内有着广泛的应用,国内外学者对其进行了大量的研究。早期的研究者使用精确算法求解该问题,常用的方法包括:分枝定界法、线性规划法、动态规划法等。但是,随着问题规模的增大,精确算法将变得无能为力,因此,在后来的研究中,国内外学者重点使用近似算法或启发式算法,主要有遗传算法、模拟退火法、蚁群算法、禁忌搜索算法、贪婪算法和神经网络等。
例如,用无向加权图来对TSP建模,则城市是图的顶点,道路是图的边,道路的距离就是该边的长度。它是起点和终点都在一个特定顶点,访问每个顶点恰好一次的最小化问题。通常,该模型是一个完全图(即每对顶点由一条边连接)。如果两个城市之间不存在路径,则增加一条非常长的边就可以完成图,而不影响计算最优回路。
在对称TSP问题中,两座城市之间来回的距离是相等的,形成一个无向图。这种对称性将解的数量减少了一半。在非对称TSP问题中,可能不是双向的路径都存在,或是来回的距离不同,形成了有向图。交通事故、单行道和出发与到达某些城市机票价格不同等都是打破这种对称性的例子。
预测编码技术
在一些实施例中,可以利用TSP生成对应信号间的预测关系。如图6所示,点云中的所有点链接成为一个单一的预测树,每个以其前一个点的信号值进行预测。该方法作为点云信号预测的一种选项,可设置为作用于整体原始点云数据,也可以作用于八叉树子节点或者其他方式获得的点云数据子集。
在一些实施例中,利用点间的距离搜索建立预测树。其中,每一个点都与其他点相连接,并指示每个点链接的点个数和四种预测模式之一,预测模式如下:
1)不预测;
2)采用parent点预测,即前一个点;
3)采用parent点和grandparent点预测;
4)采用parent,grandparent and grand-grandparent点预测。
目前构建预测树的方法主要包括如下两种:
第一种是,按照编码顺序,待编码节点在已编码节点集合中搜索最邻近点,若最邻近点的子节点个数小于某个阈值,则将该待编码节点加入该已编码节点的子节点,否则继续搜索。该方式一,构建预测树时依赖点云的编码顺序,当编码顺序不是以距离进行排列时,使得构建的预测树中的相邻点并不是距离最小的点,导出预测不准确,编码效果差。
第二种是,按照全局搜索的方法,即当前已编码节点在所有待编码节点集合中搜索距离最近的作为其子节点。该方式二,已编码节点会从搜索的节点集合中移除,最后被链接的节点可能被链接到极远距离的已编码节点上,产生异常值。
为了解决上述技术问题,本申请基于目标点云的部分主节点构建主预测树,针对主预测树中的每个主节点,将目标点云的剩余点中主节点附近的邻近点,插入主节点处,得到目标点云的目标预测树。本申请在构建目标预测树时,首先构建主预测树,再将剩余点中主节点附近的点插入主节点处,利用了点云数据的局部疏密特性,提高密集区域点的利用效率,提高局部点云的预测准确性,实现目标点云的编码效率。
下面通过一些实施例对本申请实施例的技术方案进行详细说明。下面这几个实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
首先以编码端为例,对本申请实施例提供的基于预测树的点云编码方法进行描述。
图7为本申请一实施例提供的基于预测树的点云编码方法的流程图。该方法的执行主体是具有编码点云功能的装置,例如点云编码装置,该点云编码装置可以为上述所述的点云编码设备或者为点云编码设备中的一部分。为了便于描述,下面实施例以执行主体为点云编码设备为例进行介绍。如图4所示,本实施例的方法包括:
S701、获取目标点云。
其中,目标点云包括N个点,N为大于1的正整数。
本申请实施例的目标点云可以是指整体点云,也可以是部分点云,例如通过八叉树或者其他方式获得的部分点云,比如整体点云的一个子集。
点云编码设备可以通过如下方式获取目标点云:
方式一,若点云编码设备具有点云采集功能,则该目标点云可以为点云编码设备采集得到的。
方式二,上述目标点云为点云编码设备从其他存储设备处获取的,例如点云采集设备将采集的目标点云存储在存储设备中,点云编码设备从该存储设备中读取上述目标点云。
方式三,上述目标点云为点云编码设备从点云采集设备处获取的,例如点云采集设备将采集的目标点云发送给点云编码设备。
在一些实施例中,若上述目标点云为整体点云,则点云编码设备将通过上述方式获得整体点云作为本申请的研究对象进行后续的编码步骤。
在一些实施例中,若上述点云为部分点云,则上述点云编码设备将获得的整体点云进行划分,获得部分点云。
在一种示例中,例如点云编码设备采用八叉树或四叉树等方法对整体点云进行划分,将一个节点对应的部分点云作为本申请的研究对象。
在另一种示例中,点云编码设备根据固定点数进行划分,例如将整体点云的每隔1万个点划分为一个点云集合,将一个点云集合确定为目标点云。
在又一种示例中,根据整体点云的排序特性进行划分,例如,按照莫顿顺序对整体点云进行排序,得到整体点云的莫顿顺序,在整体点云的莫顿顺序中,莫顿码跳变且点数大于阈值的位置进行划分,得到目标点云。
根据上述方法获得目标点云后,对目标点云中的点进行几何编码和属性编码,例如先进行几何编码,在几何编码结束后再进行属性编码。
上述目标点云的属性信息包括颜色属性、反射率属性、法向量属性、材质属性等。本申请对此不做限制。
本申请实施例基于预测树对上述目标点云进行编码,因此,在对上述目标点云进行编码之前,首先构建该目标点云的目标预测树。
S702、基于N个点中的部分主节点,构建主预测树。
本申请将N个点中用于构建主预测树的点记为主节点,也就是说,将主预测树中的每个点记为主节点。
可选的,上述部分主节点为目标点云的N个点中的任意点。
可选的,上述部分主节点为目标点云的N个点中相互距离较远的点。
本申请首先采用目标点云的部分主节点构建主预测树,以该主预测树为骨干,将剩余点中每个主节点附近的点插入预测树的对应主节点处,这样主节点及其附近的邻近点构建一个小集合,在该小集合实现点的最优排序,进而提高局部点云的预测准确性。
上述S702中基于N个点中的部分主节点,构建主预测树的方式包括但不限于如下几种:
方式一,通过距离搜索方法,构建主预测树,具体包括如下步骤:
S702-A1、将预设的起始点作为第一个主节点,在N个点中搜索距离第一个主节点最近的K个点,从K个点中选择一个第一点与第一个主节点连接,并将K个点从N个点中移除,得到搜索点集。
S702-A2、将第一点作为新的主节点,在搜索点集中,继续搜索距离主节点最近的K个点,从K个点中选择一个第一点与主节点连;
S702-A3、将K个点从搜索点集中移除,得到新的搜索点集,并判断新的搜索点集是否为空,不为空时,返回执行上面的S702-A2,为空时结束搜索,得到主预测树。
本申请对上述预设的起始点不作具体限制。
可选的,上述起始点为整体点云的包围盒原点。
可选的,上述起始点为整体点云的包围盒的一个顶点。
可选的,若目标点云为整体点云的一部分时,则起始点可以为目标点云的包围盒的一个顶点,或原点。
可选的,上述起始点为目标点云中的第一个点。
该方式一中,从起始点开始,即将起始点作为第一个主节点,在目标点云的N个点中按照距离进行搜索,即计算N个点中每个点到该第一个主节点的距离,得到距离最小的K个点。从这K个点中选出一个第一点1与该第一个主节点进行连接,并从N点中剔除这K个点,得到用于下一个搜索的搜索点集1,该搜索点集1包括N-K个点。接着,将上述第一点1作为新的主节点,在搜索点集1中继续搜索距离最近的K个点,从这K个点中选出一个第一点2与主节点(即第一点1)进行连接,并从搜索点集1剔除该K个点,得到用于下一个搜索的搜索点集2,该搜索点集2包括N-2K个点。接着,将上述第一点2作为新的主节点,继续在搜索点集2中搜索距离最近的K个点,从这K个点中选出一个第一点3与主节点(即第一点2)进行连接,并从搜索点集2剔除该K个点,得到用于下一个搜索的搜索点集3,该搜索点集3包括N-3K个点。将第一点3作为新的主节点,继续在搜索点集3中进行搜索,重复上述步骤,直到搜索点集为空为止,得到一个主预测树。
在该方式一中,局部稠密点被用于构建主预测树的概率较大,进而提高密集区域点的利用效率,提高局部点云的预测效率。
在一些实施例中,可以将上述K个点中用于主节点外的其他点作为该主节点的从节点。例如,从搜索点云中搜索距离第一点2最近的K个点,将这个K个点中的一个第一点3与第一点2进行连接,也就是说,K个点中的第一点3作为主预测树中的一个主节点,此时,可以将该K个点中除该第一点3外的其他点作为该第一点3的从节点。
在一些实施例中,从K个点中选择出的第一点可以是K个点中的任意一个点。
在一些实施例中,从K个点中选择出的第一点可以是K个点中距离主节点最远的一个点,这样可以使得主预测树中的各主节点之间的距离较大,使得将主节点附近的其他节点插入主节点时,主节点尽量位于中心位置,避免将距离主节点较远的点连接到该主节点上,进一步提高了构建预测树的准确性。
该方式一中,每个主节点包括的从节点数量相同,即均包括K-1个从节点。
方式二,另一种通过距离搜索方法,构建主预测树,具体包括如下步骤:
S702-B1、将预设的起始点作为第一个主节点,在N个点中搜索与第一个主节点之间的距离小于第一距离的P1个点,从P1个点中选择一个第一点与第一个主节点连接,并将P1个点从N个点中移除,得到搜索点集。
S702-B2、将第一点作为新的主节点,在搜索点集中,继续搜索与主节点之间的距离小于第一距离的P2个点,从P2个点中选择一个第一点与主节点连接。
S702-B3、将P2个点从搜索点集中移除,得到新的搜索点集,并判断新的搜索点集是否为空,不为空时,返回执行上面的S702-B2,为空时结束搜索,得到主预测树。
该方式二中,从起始点开始,即将起始点作为第一个主节点,在目标点云的N个点中按照距离进行搜索,即计算N个点中每个点到该第一个主节点的距离,得到距离最小第一距离的P1个点。从这P1个点中选出一个第一点1与该第一个主节点进行连接,并从N点中剔除这P1个点,得到用于下一个搜索的搜索点集1,该搜索点集1包括N-P1个点。接着,将上述第一点1作为新的主节点,在搜索点集1中继续搜索距离第一点1小于第一距离的P2个点,从这P2个点中选出一个第一点2与主节点(即第一点1)进行连接,并从搜索点集1剔除该P2个点,得到用于下一个搜索的搜索点集2,该搜索点集2包括N-P1-P2个点。接着,将上述第一点2作为新的主节点,继续在搜索点集2中搜索距离第一点2小于第一距离的P3个点,从这P3个点中选出一个第一点3与主节点(即第一点2)进行连接,并从搜索点集2剔除该P3个点,得到用于下一个搜索的搜索点集3,该搜索点集3包括N-P1-P2-P3个点。将第一点3作为新的主节点,继续在搜索点集3中进行搜索,重复上述步骤,直到搜索点集为空为止,得到一个主预测树。
在该方式二中,局部稠密点被用于构建主预测树的概率较大,进而提高密集区域点的利用效率,提高局部点云的预测效率。
在一些实施例中,针对每个主节点对应的距离小于第一距离的多个点,可以将用于构建主节点外的其他点作为该主节点的从节点。例如,从搜索点云中搜索距离第一点2小于第一距离的P3个点,将这个P3个点中的一个第一点3与第一点2进行连接,也就是说,P3个点中的第一点3作为主预测树中的一个主节点,此时,可以将该P3个点中除该第一点3外的其他点作为该第一点3的从节点。
在一些实施例中,从P(例如P1、P2等)个点中选择出的第一点可以是P个点中的任意一个点。
在一些实施例中,从P个点中选择出的第一点可以是P个点中距离主节点最远的一个点,这样可以使得主预测树中的各主节点之间的距离较大,使得将主节点附近的其他节点插入主节点时,主节点尽量位于中心位置,避免将距离主节点较远的点连接到该主节点上,进一步提高了构建预测树的准确性。
该方式二中,每个主节点包括的从节点数量可能不同,其中稠密位置处的主节点包括的从节点数量较多,进而提高密集区域点的利用效率,提高局部点云的预测效率。
本申请对上述用于邻近点搜索的第一距离的具体确定不做限制。
在一种示例中,上述第一距离为预设值。
在另一种示例中,上述第一距离为N个点与起始点之间的最小距离的Q倍,其中Q为大于1的正数。在该示例中,点云编码设备首先计算N个点中每一个点到起始点之间的距离,并获得其中的最小距离,将最小距离的Q倍(例如1.5倍或2倍)确定为第一距离。这样,主节点将距离该主节点第一距离范围内的点记为从节点。
在另一种示例中,第一距离为N个点中距离起始点最近的G个点对应的距离统计值,G为正整数。例如,点云编码设备首先计算N个点中每一个点到起始点之间的距离,获取距离最小的G个点,将这G个点到起始点之间的距离的统计值确定为第一距离。可选的,G个点到起始点之间的距离的统计值可以是G个点到起始点之间的距离的平均值,或者为G个点到起始点之间的距离的中位值。
该方式二中,可以将距离主节点为第一距离范围内的点,记为该主节点的从节点,该主节点及其从节点组成一个集合,该集合内的点之间的距离较近,在构建目标预测树时,可以对该集合内的点进行排序,实现局部排序最优。另外,稠密区域内的主节点的从节点数量较多,这样可以实现对稠密区域点云的充分和准确排序,进而提高局部点云的预测效率。
方式三,通过下采样的方法,构建主预测树。具体的,包括如下步骤:
S702-C1、对N个点进行下采样,得到R个点,R为小于N的正整数;
S702-C2、从预设的起始点开始,根据R个点分别与起始点之间的距离大小,将R个点逐一进行连接,得到主预测树。
该方式三中对N个点进行下采样的方式可以包括如下几种示例:
示例1,采用固定的才采样步长,对N个点进行才采样,得到R个点。例如,采样步长为a,在N个点中每隔a个点采样一次,进行得到R个点。使用这R个点构建主预测树。
在一些实施例中,该示例1中,在一个采样间隔内,将采样点记为主节点,将该间隔a中未采样上的点,记为该主节点的从节点。
示例2,将N个点划分为R个点云块,从每个点云块中采样一个点,得到所述R个点。例如,将点云块的中心点采样为主节点。
在一些实施例中,该示例2中,可以将点云块中未采样上的点记为采样点的从节点,例如,将点云块的中心点记为主节点,将该点云块中除中心点外的点记为该主节点的从节点。
需要说明的是,若该示例2中,点云块的中心点处没有点,则可以将点云块中距离中心点最近的点确定为采样点。
在该方式三中,通过上述方式,对N个点进行下采样,得到R个点,接着,从起始点开始,根据这N个点距离起始点的距离大小,按照从小到大的顺序,将这R个点逐一进行连接,得到主预测树。
上述步骤702中,根据上述方式一至方式三的方法,得到目标点云的主预测树,例如图8所示,该主预测树,从起始点开始,依次连接有主节点1,主节点2,主节点3等等,由此可知,主预测树为一个单链结构。接着执行如下703的步骤。
S703、针对主预测树中的每个主节点,将剩余点中主节点的邻近点,插入主节点处,得到目标点云的目标预测树。
其中,剩余点为N个点中除部分主节点之外的点。
本实施例中,通过上述S70的方法,使用目标点云中的部分点构建主预测树,接着,从剩余的点云中,搜索主预测树中每个主节点的邻近点,且将主节点的邻近点插入主预测树中该主节点处,进而得到一个完整的预测树,将该完整的预测树记为目标点云的目标预测树。该目标预测树至少满足局部最优,例如主节点和其从节点组成的集合中的点为距离最近的点,对该集合中的点进行排序,可以实现局部最优。使用该局部最优的目标预测树进行目标点云编码时,至少可以实现局部点云的预测准确性,进而提高了点云的编码效率。
本申请中上述S703的实现方式包括但不限于如下几种:
方式一,构建主预测树中每个主节点的从预测树,将从预测树插入主预测树中,得到目标预测树。具体包括如下步骤:
S703-A1、针对主预测树中的每个主节点,基于剩余点中主节点的邻近点,构建主节点对应的从预测树。
S703-A2、将该主节点对应的从预测树,插入该主节点与下一个主节点之间,得到目标预测树。
该方式一中,针对主预测树中的每一个主节点,在N个点中除主节点外的剩余点中,搜索每个主节点的邻近点,并对每个主节点的邻近点进行排序,得到每个主节点对应的从预测树。接着,将每个主节点对应的从预测树,插入主预测树中每个主节点处,例如插入每个主节点与相邻的下一个主节点处,得到完整的预测树,将该完整的预测树记为目标点云的目标预测树。
本申请中,根据主预测树构建方式不同,确定主预测树中每个主节点的从节点的方式也不同,下面结合上述S702中构建主预测树的三种方式,对本步骤中,构建从预测树的构成进行介绍。
示例1中,如上述S702的方式一中S702-A1至S702-A3的步骤,若主预测树中的每个主节点包括K-1个从节点,则上述S703-A1构建预测树的方式包括如下步骤:
S703-A1-a1,针对主预测树中的第i个主节点,将第i-1个主节点对应的搜索点集中距离第i-1个主节点最近的K个点中除第i个主节点外的剩余K-1个点,作为第i个主节点的从节点,i为大于1的正整数。
S703-A1-a2,将第i个主节点的从节点进行逐一连接,得到第i个主节点的从预测树。
例如,以主预测树中的第i个主节点为例进行说明,该第i主节点为第i-1个主节点对应的搜索点集中距离第i-1个主节点最近的K个点中的一个点,将这K个点中其他点记为该第i个主节点的从节点。接着,将第i个主节点的K-1个从节点逐一连接,得到该第i个主节点的从预测树,例如将第i个主节点的K-1个从节点,根据距离第i个主节点的距离大小,按照从小到大的顺序进行逐一连接,得到该第i个主节点的从预测树。
示例2中,如上述S702的方式二中S702-B1至S702-B3的步骤,若主预测树中的每个主节点包括不同的从节点,则上述S703-A1构建预测树的方式包括如下步骤:
S703-A1-b1,针对主预测树中的第i个主节点,将第i-1个主节点对应的搜索点集中,与第i-1个主节点的距离小于第一距离的各点中除第i个主节点外的其他点,作为第i个主节点的从节点,i为大于1的正整数;
S703-A1-b2,将第i个主节点的从节点进行逐一连接,得到第i个主节点的从预测树。
例如,以主预测树中的第i个主节点为例进行说明,该第i主节点为第i-1个主节点对应的搜索点集中距离第i-1个主节点的距离小于第一距离的多个点中的一个点,将这多个点中除第i个主节点外的其他点记为该第i个主节点的从节点。接着,将第i个主节点的从节点逐一连接,得到该第i个主节点的从预测树,例如将第i个主节点的从节点,根据距离第i个主节点的距离大小,按照从小到大的顺序进行逐一连接,得到该第i个主节点的从预测树。
该示例2中,每个主节点包括的从节点可能不完成不同,因此,构成的从预测树的大小也可能不同。
在上述示例1和2中,在构建从预测树时,若从节点中包括距离主节点距离相同的至少两个从节点时,根据这至少两个从节点的输入顺序进行排序,例如,输入顺序在前的从节点排列在输入顺序在后的从节点之前。
示例3,如上述S702的方式三中S702-C1至S702-C2的步骤,若主预测树是通过下采样方式构建的,则上述S703-A1构建预测树的方式包括如下步骤:
S703-A1-c1,针对所述主预测树中的每一个主节点,将该主节点所在的点云块中除主节点外的其他点作为该主节点的从节点。
S703-A1-c2,将该主节点的从节点进行逐一连接,得到该主节点的从预测树。
该示例3中,在构建主预测树时,基于空间划分的下采样方法,将目标点云划分为R个点云块,将点云块中的一个点,例如中心点确定为主节点,将该点云中除主节点外的其他点记为该主节点的从节点。其中,对于稠密区域,其主节点对应的从节点数量较多,进而可以将稠密区域内的点连接到一起,实现局部最优排序,防止将稠密区域内的点连接到其他距离较远的点上,造成预测不准确的问题。
示例4,如上述S702的方式三中S702-C1至S702-C2的步骤,若主预测树是通过下采样方式构建的,则上述S703-A1构建预测树的方式包括如下步骤:
S703-A1-d1,针对剩余点中的每一个第二点,将第二点作为主预测树中距离第二点最近的主节点的一个从节点,得到主预测树中每个主节点的从节点;
S703-A1-d2,将该主节点的从节点进行逐一连接,得到该主节点的从预测树。
在该示例4中,为了便于描述,将目标点云中除主节点外的剩余点中的每一个点记为第二点,针对每一个第二点,在主预测树中,搜索距离该第二点最近的主节点,进而将该第二点作为该最近的主节点的一个从节点,这样可以得到主预测树中每一个主节点的从节点。接着,将该主节点的从节点进行逐一连接,得到该主节点的从预测树,例如按照与主节点之间的距离大小,对主节点的各从节点进行逐一连接,形成主节点对应的从预测树。
根据上述各示例,可以的主预测树中每一个主节点的从预测树,接着,将每个主节点的从预测树插入主节点处,从如图9所示,将主节点1对应的从预测树1插入主节点1和主节点2中,该从预测树1包括从节点11、从节点12和从节点13。将主节点2对应的从预测树2插入主节点2和主节点3中,该从预测树2包括从节点21和从节点22。将主节点3对应的从预测树3插入主节点3和主节点4中,该从预测树3包括从节点31、从节点32和从节点33。依次类推,将每个主节点对应的从预测树插入主预测树中的各主节点处,得到目标预测树。
方式二,针对剩余点中的第j个点,在主预测树中搜索距离第j个点最近的第k个主节点,将第j个点插入第k个主节点和第k+1个主节点之间,构成新的主预测树,j为从1至M的正整数,M为剩余点的总个数;将j等于M时构建的新的主预测树,作为目标预测树。
该方式二中,将剩余点中每个点逐点插入主预测树中距离最近的主节点处,例如,针对剩余点中的第j个点,在主预测树中搜索距离第j个点最近的第k个主节点,将第j个点插入主预测树中第k个主节点和第k+1个主节点之间,构成新的主预测树。接着,将剩余点中的另一个点记为第j个点,即令j=j+1,参照上述步骤,在新的主预测树中,搜索最近的第k个主节点,将该第j个点插入新的主预测树中的第k个主节点和第k+1个主节点之间,构成新的主预测树,依次类推,直到将所有剩余点全部插入主预测树为止,得到目标预测树。
本申请在构建目标预测树时,首先使用目标点云的部分点构建主预测树,接着,将主预测树中每个主节点的邻近点作为该主节点的从节点,构建从预测树,进而将从预测树插入主节点处得到目标预测树。即本申请以主节点为中心,优化局部点之间的连接关系,即将目标点云中距离较近的点连接到一起,防止距离较远的点相连,进而实现了局部的最优排序,提高局部点云的预测准确性。
根据上述方法生成目标点云的目标预测树后,执行如下步骤S704,实现目标点云的编码。
S704、基于目标预测树,对目标点云进行编码。
上述目标预测树,将距离较近点排列在一起,这样在编码目标点云中的当前点时,以目标预测树中该当前点的前一个点或前几个点作为参考点进行预测编码。
例如,在几何编码时,将目标预测树中该当前点的前一个点的几何信息与当前点的几何信息的差值,作为该当前点的几何残差,对该几何残差进行量化,将量化后的几何残差进行编码,形成几何码流。
再例如,在属性编码时,将目标预测树中该当前点的前一个点的属性信息与当前点的属性信息的差值,作为该当前点的属性残差,对该属性残差进行量化,将量化后的属性残差进行编码,形成属性码流。
本申请实施例中,在构建目标预测树时,首先使用目标点云的部分点构建主预测树,接着,将主预测树中每个主节点的邻近点插入主节点处得到目标预测树。即本申请以主节点为中心,优化局部点之间的连接关系,即将目标点云中距离较近的点连接到一起,防止距离较远的点相连,这样得到的目标预测树实现了局部的最优排序,防止较远距离的点连接,提高了目标预测树的构建准确性。基于该准确构建的目标预测树进行预测时,可以提高目标点云的预测准确性,进而提高目标点云的编码效率。
在一些实施例中,本申请的目标预测树构成一个单链结构,根据该单链结构中各点的排列顺序,逐一对目标预测树中的各节点进行编码,其中主节点和从节点采用相同的编码方式进行编码。例如,采用相同的几何编码方法,对目标预测树中各节点的几何信息进行逐一编码,进而得到目标点云的几何码流。例如,采用相同的属性编码方法,对目标预测树中各节点的属性信息进行逐一编码,进而得到目标点云的属性码流。对应的,解码端采用相同的解码方法对目标预测树中的各节点进行逐一解码。例如,采用相同的几何解码方法,对目标预测树中各节点的几何信息进行逐一解码,进而得到目标点云中各点的几何信息。例如,采用相同的属性解码方法,对目标预测树中各节点的属性信息进行逐一解码,进而得到目标点云中各点的属性信息。
在一些实施例中,为了进一步提高编码效率,本申请对目标预测树中的主节点和从节点可以采用不用的编码方式进行编码。
示例性的,对目标预测树中的主节点采用第一编码方式进行编码;对目标预测树中的从节点采用第二编码方式进行编码,第二编码方式与第一编码方式不同。
本申请对第一编码方式和第二编码方式不做限制。
需要说明的是,上述第一解码方式和第二解码方式可以是几何解码方式,和/或,上述第一解码方式和第二解码方式可以是属性解码方式。
可选的,上述第一编码方式和第二编码方式可以是不同的量化步长。由于主节点为距离较远的点,而相连的从节点为距离较近的点,因此,可以采用较大的量化步长对主节点进行量化,采用较小的步长对从节点进行量化,在提升局部稠密点的编码效果的同时,降低编码的复杂度。
可选的,上述第一编码方式和第二编码方式可以是不同的编码比特位。由于主节点为距离较远的点,而相连的从节点为距离较近的点,因此,对主节点采用较大的比特位,对从节点采用较小的比特位,降低编码复杂度,提升编码效率。
可选的,上述第一编码方式和第二编码方式还可以是预测方式。由于主节点为距离较远的点,因此,目标预测树中主节点之前的点距离主节点的距离可能较远,此时,对主节点采用主节点之前的多个已编码点作为参考点进行预测,以提升主节点的预测准确性。相连的从节点为距离较近的点,为了降低编码复杂度,则使用该从节点之前的一个或少几个已编码作为参考点进行预测,提升编码效率。
由上述可知,当编码端采用不用的编码方式对主节点和从节点编码时,解码端也需要采用不同的解码方式对主节点和从节点进行解码,因此,解码端需要确定出目标预测树中的主节点和从节点。基于此,本申请实施例中编码端通过如下方式告知解码端那些点为主节点,那些为从节点。
方式1,点云编码设备为目标预测树中的主节点添加第一标志,和/或为目标预测树中的从节点添加第二标志,其中第一标志与第二标志不同。
例如,点云编码设备为目标预测树中的主节点添加第一标志,点云解码设备解码码流得到目标预测树后,将目标预测树中具有第一标志的点确定为主节点,不具有第一标志的点,确定为从节点。
再例如,点云编码设备为目标预测树中的从节点添加第二标志,点云解码设备解码码流得到目标预测树后,将目标预测树中具有第二标志的点确定为从节点,不具有第二标志的点,确定为主节点。
再例如,点云编码设备为目标预测树中的主节点添加第一标志,为从节点添加第二标志,点云解码设备解码码流得到目标预测树后,将目标预测树中具有第一标志的点确定为主节点,将具有第二标志的点确定为从节点。
方式2中,将目标预测树中每个主节点对应的从节点数目写入码流。
例如,目标预测树中主节点对应的从节点不同时,可以将每个主节点对应的从节点数目写入码流中,例如主节点对应的从节点数目编入该主节点之和。这样解码端在解码时,解码出第一个主节点,接着根据该主节点的从节点数量,可以确定该主节点后的这几位点为该主节点的从节点,进而确定出目标预测树中的主节点和从节点。
本实施例中,编码端还可以通过其他的方式将主节点和从节点的区分信息编入码流中,本申请对此不做限制。
本申请实施例提供的基于预测树的点云编码方法,通过获取目标点云,所述目标点云包括N个点,所述N为大于1的正整数;基于所述N个点中的部分主节点,构建主预测树;针对所述主预测树中的每个主节点,将剩余点中所述主节点的邻近点,插入所述主节点处,得到所述目标点云的目标预测树,所述剩余点为所述N个点中除所述部分主节点之外的点;基于所述目标预测树,对所述目标点云进行编码。即本申请首先使用目标点云的部分点构建主预测树,接着,将主预测树中每个主节点的邻近点插入主节点处得到目标预测树。也就是说本申请以主节点为中心,优化局部点之间的连接关系,防止距离较远的点相连,这样得到的目标预测树实现了局部的最优排序,提高了目标预测树的构建准确性。基于该准确构建的目标预测树进行预测时,可以提高目标点云的预测准确性,进而提高目标点云的编码效率。
上文以编码端为例对本申请实施例提供的点云编码方法进行描述,下面结合图10,以解码端为例,对本申请的技术方案进行介绍。
图10为本申请一实施例提供的基于预测树的点云解码方法的流程图。该方法的执行主体是具有解码点云功能的装置,例如点云解码装置,该点云解码装置可以为上述所述的点云解码设备或者为点云解码设备中的一部分。为了便于描述,下面实施例以执行主体为点云解码设备为例进行介绍。如图10所示,包括:
S801、解码码流,得到目标点云的目标预测树。
其中目标点云包括N个点,N为大于1的正整数。
在一些实施例中,解码端采用相同的解码方式,对目标预测树中的各节点进行逐一解码,得到目标点云。例如,采用相同的几何解码方法,对目标预测树中各节点的几何信息进行逐一解码,进而得到目标点云中各点的几何信息。例如,采用相同的属性解码方法,对目标预测树中各节点的属性信息进行逐一解码,进而得到目标点云中各点的属性信息。
在一些实施例中,解码端对目标预测树中的主节点和从节点采用不同的解码方式进行解码,具体参照如下S802和S803的步骤。
S802、确定目标预测树中的主节点和从节点。
上述S802包括但不限于如下几种方式:
方式一,按照预设的从节点数量,确定目标预测树中的主节点和从节点。例如,解码第一个主节点,接着将该主节点后的K-1个点确定为从节点,再将下一个点确定为下一个主节点,依次类推,可以确定出目标预测树中的主节点和从节点。
方式二,若主节点具有第一标志,和/或从节点具有第二标志时,则根据第一标志和/或第二标志,确定目标预测树中的主节点和从节点。
例如,将目标预测树中具有第一标志的点确定为主节点,不具有第一标志的点,确定为从节点。
例如,将目标预测树中具有第二标志的点确定为从节点,不具有第二标志的点,确定为主节点。
例如,将目标预测树中具有第一标志的点确定为主节点,将具有第二标志的点确定为从节点。
方式三,解码码流,得到目标预测树中每个主节点对应的从节点数目,根据每个主节点对应的从节点数目,确定目标预测树中的主节点和从节点。
这样解码端在解码时,解码出第一个主节点,接着根据该主节点的从节点数量,可以确定该主节点后的这几位点为该主节点的从节点,进而确定出目标预测树中的主节点和从节点。
S803、对主节点采用第一解码方式进行解码,对从节点采用第二解码方式进行解码,第二解码方式与第一解码方式不同。
需要说明的是,上述第一解码方式和第二解码方式可以是几何解码方式,和/或,上述第一解码方式和第二解码方式可以是属性解码方式。
可选的,上述第一编码方式和第二编码方式可以是不同的量化步长。由于主节点为距离较远的点,而相连的从节点为距离较近的点,因此,可以采用较大的量化步长对主节点进行量化,采用较小的步长对从节点进行量化,在提升局部稠密点的编码效果的同时,降低编码的复杂度。对应的,解码端采用较大的量化步长对主节点进行反量化,采用较小的量化步长对从节点进行反量化。
可选的,上述第一编码方式和第二编码方式还可以是预测方式。由于主节点为距离较远的点,因此,目标预测树中主节点之前的点距离主节点的距离可能较远,此时,对主节点采用主节点之前的多个已编码点作为参考点进行预测,以提升主节点的预测准确性。相连的从节点为距离较近的点,为了降低编码复杂度,则使用该从节点之前的一个或少几个已编码作为参考点进行预测,提升编码效率。对应的,对于主节点,解码端采用该主节点之前的多个已解码端作为参考点进行预测,对于从节点,解码端采用该从节点之前的一个或少数几个已解码端作为参考点进行预测。
应理解,点云的解码方法为上述点云的编码方法的逆过程。点云的云解码方法中的步骤可以参考点云的编码方法中的相应步骤,为了避免重复,在此不再赘述。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文结合图1至图10,详细描述了本申请的方法实施例,下文结合图11至图13,详细描述本申请的装置实施例。
图11是本申请一实施例的基于预测树的点云编码装置的示意性框图。
如图11所示,基于预测树的点云编码装置10可以包括:
获取单元11,用于获取目标点云,所述目标点云包括N个点,所述N为大于1的正整数;
第一构建单元12,用于基于所述N个点中的部分主节点,构建主预测树;
第二构建单元13,用于针对所述主预测树中的每个主节点,将剩余点中所述主节点的邻近点,插入所述主节点处,得到所述目标点云的目标预测树,所述剩余点为所述N个点中除所述部分主节点之外的点;
编码单元14,用于基于所述目标预测树,对所述目标点云进行编码。
在一些实施例中,第二构建单元13,具体用于针对所述主预测树中的每个主节点,基于所述剩余点中所述主节点的邻近点,构建所述主节点对应的从预测树,并将所述主节点对应的从预测树,插入所述主节点与下一个主节点之间,得到所述目标预测树;或者,针对所述剩余点中的第j个点,在所述主预测树中搜索距离所述第j个点最近的第k个主节点,将所述第j个点插入所述第k个主节点和所述第k+1个主节点之间,构成新的主预测树,所述j为从1至M的正整数,所述M为所述剩余点的总个数;将所述j等于M时构建的新的主预测树,作为所述目标预测树。
在一些实施例中,第一构建单元12,具体用于将预设的起始点作为第一个主节点,在所述N个点中搜索距离所述第一个主节点最近的K个点,从所述K个点中选择一个第一点与所述第一个主节点连接,并将所述K个点从所述N个点中移除,得到搜索点集;将所述第一点作为新的主节点,在所述搜索点集中,继续搜索距离所述主节点最近的K个点,从所述K个点中选择一个第一点与所述主节点连接,并将所述K个点从所述搜索点集中移除,得到新的搜索点集,将所述第一点作为新的主节点,继续进行搜索,直到所述搜索点集为空为止,得到所述主预测树。
在一些实施例中,第二构建单元13,具体用于针对所述主预测树中的第i个主节点,将第i-1个主节点对应的所述搜索点集中距离所述第i-1个主节点最近的K个点中除所述第i个主节点外的剩余K-1个点,作为所述第i个主节点的从节点,所述i为大于1的正整数;将所述第i个主节点的从节点进行逐一连接,得到所述第i个主节点的从预测树。
在一些实施例中,第一构建单元12,具体用于将预设的起始点作为第一个主节点,在所述N个点中搜索与所述第一个主节点之间的距离小于第一距离的P1个点,从所述P1个点中选择一个第一点与所述第一个主节点连接,并将所述P1个点从所述N个点中移除,得到搜索点集;将所述第一点作为新的主节点,在所述搜索点集中,继续搜索与所述主节点之间的距离小于所述第一距离的P2个点,从所述P2个点中选择一个第一点与所述主节点连接,并将所述P2个点从所述搜索点集中移除,得到新的搜索点集,将所述第一点作为新的主节点,继续进行搜索,直到所述搜索点集为空为止,得到所述主预测树。
在一些实施例中,所述第一距离为所述N个点与所述起始点之间的最小距离的Q倍,所述Q为大于1的正数;或者,所述第一距离为所述N个点中距离所述起始点最近的G个点对应的距离统计值,所述G为正整数。
在一些实施例中,第二构建单元13,具体用于针对所述主预测树中的第i个主节点,将第i-1个主节点对应的所述搜索点集中,与所述第i-1个主节点的距离小于所述第一距离的各点中除所述第i个主节点外的其他点,作为所述第i个主节点的从节点,所述i为大于1的正整数;将所述第i个主节点的从节点进行逐一连接,得到所述第i个主节点的从预测树。
在一些实施例中,第一构建单元12,具体用于对所述N个点进行下采样,得到R个点,所述R为小于N的正整数;从预设的起始点开始,根据所述R个点分别与所述起始点之间的距离大小,将所述R个点逐一进行连接,得到所述主预测树。
在一些实施例中,第一构建单元12,具体用于将所述N个点划分为R个点云块,从每个点云块中采样一个点,得到所述R个点。
在一些实施例中,第二构建单元13,具体用于针对所述主预测树中的每一个主节点,将所述主节点所在的点云块中除所述主节点外的其他点作为所述主节点的从节点;或者,针对所述剩余点中的每一个第二点,将所述第二点作为所述主预测树中距离所述第二点最近的主节点的一个从节点,得到所述主预测树中每个主节点的从节点;将所述主节点的从节点进行逐一连接,得到所述主节点的从预测树。
在一些实施例中,第二构建单元13,具体用于按照与所述主节点之间的距离大小,对所述主节点的各从节点进行逐一连接,形成所述主节点对应的从预测树。
在一些实施例中,编码单元14,还用于对所述目标预测树中的主节点采用第一编码方式进行编码;对所述目标预测树中的从节点采用第二编码方式进行编码,所述第二编码方式与所述第一编码方式不同。
在一些实施例中,编码单元14,还用于为所述目标预测树中的主节点添加第一标志,和/或为所述目标预测树中的从节点添加第二标志,所述第一标志与所述第二标志不同。
在一些实施例中,编码单元14,还用于将所述目标预测树中每个主节点对应的从节点数目写入码流。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图11所示的装置10可以执行上述点云编码方法的实施例,并且装置10中的各个模块的前述和其它操作和/或功能分别为了实现编码设备对应的方法实施例,为了简洁,在此不再赘述。
图12是本申请一实施例的基于预测树的点云解码装置的示意性框图。
如图12所示,基于预测树的点云解码装置20可以包括:
解码单元21,用于解码码流,得到目标点云的目标预测树,所述目标点云包括N个点,所述N为大于1的正整数;
确定单元22,用于确定所述目标预测树中的主节点和从节点;
解码单元21,还用于对所述主节点采用第一解码方式进行解码;对所述从节点采用第二解码方式进行解码,所述第二解码方式与所述第一解码方式不同。
在一些实施例中,确定单元22,具体用于按照预设的从节点数量,确定所述目标预测树中的主节点和从节点;或者,若所述主节点具有第一标志,和/或所述从节点具有第二标志时,则根据所述第一标志和/或所述第二标志,确定所述目标预测树中的主节点和从节点;或者,解码所述码流,得到所述目标预测树中每个主节点对应的从节点数目,根据每个主节点对应的从节点数目,确定所述目标预测树中的主节点和从节点。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图12所示的装置20可以执行点云解码方法实施例,并且装置20中的各个模块的前述和其它操作和/或功能分别为了实现解码设备对应的方法实施例,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图13是本申请实施例提供的电子设备的示意性框图,图13的电子设备可以为上述的点云编码设备或者为点云解码设备,或者同时具有编码设备和解码设备的功能。
如图13所示,该电子设备900可包括:
存储器910和处理器920,该存储器910用于存储计算机程序911,并将该程序代码911传输给该处理器920。换言之,该处理器920可以从存储器910中调用并运行计算机程序911,以实现本申请实施例中的方法。
例如,该处理器920可用于根据该计算机程序911中的指令执行上述方法200中的步骤。
在本申请的一些实施例中,该处理器920可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器910包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(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)。
在本申请的一些实施例中,该计算机程序911可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器910中,并由该处理器920执行,以完成本申请提供的录制页面的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序911在该电子设备900中的执行过程。
如图13所示,该电子设备900还可包括:
收发器930,该收发器930可连接至该处理器920或存储器910。
其中,处理器920可以控制该收发器930与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器930可以包括发射机和接收机。收发器930还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备900中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。

Claims (20)

1.一种基于预测树的点云编码方法,其特征在于,包括:
获取目标点云,所述目标点云包括N个点,所述N为大于1的正整数;
基于所述N个点中的部分主节点,构建主预测树;
针对所述主预测树中的每个主节点,将剩余点中所述主节点的邻近点,插入所述主节点处,得到所述目标点云的目标预测树,所述剩余点为所述N个点中除所述部分主节点之外的点;
基于所述目标预测树,对所述目标点云进行编码。
2.根据权利要求1所述的方法,其特征在于,所述针对所述主预测树中的每个主节点,将剩余点中所述主节点的邻近点,插入所述主节点处,得到所述目标点云的目标预测树,包括:
针对所述主预测树中的每个主节点,基于所述剩余点中所述主节点的邻近点,构建所述主节点对应的从预测树,并将所述主节点对应的从预测树,插入所述主节点与下一个主节点之间,得到所述目标预测树;或者,
针对所述剩余点中的第j个点,在所述主预测树中搜索距离所述第j个点最近的第k个主节点,将所述第j个点插入所述第k个主节点和所述第k+1个主节点之间,构成新的主预测树,所述j为从1至M的正整数,所述M为所述剩余点的总个数;将所述j等于M时构建的新的主预测树,作为所述目标预测树。
3.根据权利要求2所述的方法,其特征在于,所述基于所述N个点中的部分主节点,构建主预测树,包括:
将预设的起始点作为第一个主节点,在所述N个点中搜索距离所述第一个主节点最近的K个点,从所述K个点中选择一个第一点与所述第一个主节点连接,并将所述K个点从所述N个点中移除,得到搜索点集;
将所述第一点作为新的主节点,在所述搜索点集中,继续搜索距离所述主节点最近的K个点,从所述K个点中选择一个第一点与所述主节点连接,并将所述K个点从所述搜索点集中移除,得到新的搜索点集,将所述第一点作为新的主节点,继续进行搜索,直到所述搜索点集为空为止,得到所述主预测树。
4.根据权利要求3所述的方法,其特征在于,所述基于所述剩余点,构建所述主预测树中每个主节点对应的从预测树,包括:
针对所述主预测树中的第i个主节点,将第i-1个主节点对应的所述搜索点集中距离所述第i-1个主节点最近的K个点中除所述第i个主节点外的剩余K-1个点,作为所述第i个主节点的从节点,所述i为大于1的正整数;
将所述第i个主节点的从节点进行逐一连接,得到所述第i个主节点的从预测树。
5.根据权利要求2所述的方法,其特征在于,所述基于所述N个点中的部分主节点,构建主预测树,包括:
将预设的起始点作为第一个主节点,在所述N个点中搜索与所述第一个主节点之间的距离小于第一距离的P1个点,从所述P1个点中选择一个第一点与所述第一个主节点连接,并将所述P1个点从所述N个点中移除,得到搜索点集;
将所述第一点作为新的主节点,在所述搜索点集中,继续搜索与所述主节点之间的距离小于所述第一距离的P2个点,从所述P2个点中选择一个第一点与所述主节点连接,并将所述P2个点从所述搜索点集中移除,得到新的搜索点集,将所述第一点作为新的主节点,继续进行搜索,直到所述搜索点集为空为止,得到所述主预测树。
6.根据权利要求5所述的方法,其特征在于,所述第一距离为所述N个点与所述起始点之间的最小距离的Q倍,所述Q为大于1的正数;或者,
所述第一距离为所述N个点中距离所述起始点最近的G个点对应的距离统计值,所述G为正整数。
7.根据权利要求5所述的方法,其特征在于,所述基于所述剩余点,构建所述主预测树中每个主节点对应的从预测树,包括:
针对所述主预测树中的第i个主节点,将第i-1个主节点对应的所述搜索点集中,与所述第i-1个主节点的距离小于所述第一距离的各点中除所述第i个主节点外的其他点,作为所述第i个主节点的从节点,所述i为大于1的正整数;
将所述第i个主节点的从节点进行逐一连接,得到所述第i个主节点的从预测树。
8.根据权利要求2所述的方法,其特征在于,所述基于所述N个点中的部分主节点,构建主预测树,包括:
对所述N个点进行下采样,得到R个点,所述R为小于N的正整数;
从预设的起始点开始,根据所述R个点分别与所述起始点之间的距离大小,将所述R个点逐一进行连接,得到所述主预测树。
9.根据权利要求8所述的方法,其特征在于,所述对所述N个点进行下采样,得到R个点,包括:
将所述N个点划分为R个点云块,从每个点云块中采样一个点,得到所述R个点。
10.根据权利要求9所述的方法,其特征在于,所述基于所述剩余点,构建所述主预测树中每个主节点对应的从预测树,包括:
针对所述主预测树中的每一个主节点,将所述主节点所在的点云块中除所述主节点外的其他点作为所述主节点的从节点;或者,针对所述剩余点中的每一个第二点,将所述第二点作为所述主预测树中距离所述第二点最近的主节点的一个从节点,得到所述主预测树中每个主节点的从节点;
将所述主节点的从节点进行逐一连接,得到所述主节点的从预测树。
11.根据权利要求4、7或10所述的方法,其特征在于,所述将所述主节点的从节点进行逐一连接,得到所述主节点的从预测树,包括:
按照与所述主节点之间的距离大小,对所述主节点的各从节点进行逐一连接,形成所述主节点对应的从预测树。
12.根据权利要求11所述的方法,其特征在于,所述基于所述目标预测树,对所述目标点云进行编码,包括:
对所述目标预测树中的主节点采用第一编码方式进行编码;
对所述目标预测树中的从节点采用第二编码方式进行编码,所述第二编码方式与所述第一编码方式不同。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
为所述目标预测树中的主节点添加第一标志,和/或为所述目标预测树中的从节点添加第二标志,所述第一标志与所述第二标志不同。
14.根据权利要求12所述的方法,其特征在于,所述方法还包括:
将所述目标预测树中每个主节点对应的从节点数目写入码流。
15.一种基于预测树的点云解码方法,其特征在于,包括:
解码码流,得到目标点云的目标预测树,所述目标点云包括N个点,所述N为大于1的正整数;
确定所述目标预测树中的主节点和从节点;
对所述主节点采用第一解码方式进行解码;
对所述从节点采用第二解码方式进行解码,所述第二解码方式与所述第一解码方式不同。
16.根据权利要求15所述的方法,其特征在于,所述确定所述目标预测树中的主节点和从节点,包括:
按照预设的从节点数量,确定所述目标预测树中的主节点和从节点;或者,
若所述主节点具有第一标志,和/或所述从节点具有第二标志时,则根据所述第一标志和/或所述第二标志,确定所述目标预测树中的主节点和从节点;或者,
解码所述码流,得到所述目标预测树中每个主节点对应的从节点数目,根据每个主节点对应的从节点数目,确定所述目标预测树中的主节点和从节点。
17.一种基于预测树的点云编码装置,其特征在于,包括:
获取单元,用于获取目标点云,所述目标点云包括N个点,所述N为大于1的正整数;
第一构建单元,用于基于所述N个点中的部分主节点,构建主预测树;
第二构建单元,用于针对所述主预测树中的每个主节点,将剩余点中所述主节点的邻近点,插入所述主节点处,得到所述目标点云的目标预测树,所述剩余点为所述N个点中除所述部分主节点之外的点;
编码单元,用于基于所述目标预测树,对所述目标点云进行编码。
18.一种基于预测树的点云解码装置,其特征在于,包括:
解码单元,用于解码码流,得到目标点云的目标预测树,所述目标点云包括N个点,所述N为大于1的正整数;
确定单元,用于确定所述目标预测树中的主节点和从节点;
解码单元,还用于对所述主节点采用第一解码方式进行解码;对所述从节点采用第二解码方式进行解码,所述第二解码方式与所述第一解码方式不同。
19.一种电子设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1至14或15至16中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至14或15至16中任一项所述的方法。
CN202111484417.6A 2021-12-07 2021-12-07 基于预测树的点云编码方法、装置、设备及存储介质 Pending CN116248893A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111484417.6A CN116248893A (zh) 2021-12-07 2021-12-07 基于预测树的点云编码方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111484417.6A CN116248893A (zh) 2021-12-07 2021-12-07 基于预测树的点云编码方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116248893A true CN116248893A (zh) 2023-06-09

Family

ID=86633578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111484417.6A Pending CN116248893A (zh) 2021-12-07 2021-12-07 基于预测树的点云编码方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116248893A (zh)

Similar Documents

Publication Publication Date Title
JP7245244B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20210385303A1 (en) Attribute residual coding in g-pcc
CN114175100A (zh) 用于处理点云数据的方法和装置
CN114598892B (zh) 点云数据编码方法、解码方法、装置、设备及存储介质
US20220321912A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US11601488B2 (en) Device and method for transmitting point cloud data, device and method for processing point cloud data
TW202141984A (zh) 用於在基於幾何形狀的點雲壓縮中的預測變換的預測器索引訊號傳遞
US11910017B2 (en) Method for predicting point cloud attribute, encoder, decoder, and storage medium
CN115379191B (zh) 一种点云解码方法、点云编码方法及相关设备
CN115086658B (zh) 点云数据的处理方法、装置、存储介质及编解码设备
CN116248893A (zh) 基于预测树的点云编码方法、装置、设备及存储介质
CN115474041B (zh) 点云属性的预测方法、装置及相关设备
WO2024065269A1 (zh) 点云编解码方法、装置、设备及存储介质
CN115086716B (zh) 点云中邻居点的选择方法、装置及编解码器
WO2023024840A1 (zh) 点云编解码方法、编码器、解码器及存储介质
WO2024065271A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2024026712A1 (zh) 点云编解码方法、装置、设备及存储介质
US20240037799A1 (en) Point cloud coding/decoding method and apparatus, device and storage medium
WO2024065270A1 (zh) 点云编解码方法、装置、设备及存储介质
US20240087174A1 (en) Coding and decoding point cloud attribute information
WO2024065406A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2024065272A1 (zh) 点云编解码方法、装置、设备及存储介质
CN115733990A (zh) 点云编解码方法、设备及存储介质
CN117321991A (zh) 点云属性的预测方法、装置及编解码器
CN117354496A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40088748

Country of ref document: HK