CN117354496A - 点云编解码方法、装置、设备及存储介质 - Google Patents

点云编解码方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117354496A
CN117354496A CN202310884479.9A CN202310884479A CN117354496A CN 117354496 A CN117354496 A CN 117354496A CN 202310884479 A CN202310884479 A CN 202310884479A CN 117354496 A CN117354496 A CN 117354496A
Authority
CN
China
Prior art keywords
current node
point cloud
prediction mode
prediction
decoding
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
CN202310884479.9A
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 CN202310884479.9A priority Critical patent/CN117354496A/zh
Publication of CN117354496A publication Critical patent/CN117354496A/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/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/103Selection of coding mode or of prediction mode
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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 Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请提供了一种点云编解码方法、装置、设备及存储介质,可应用于沉浸式媒体、自动驾驶等领域,包括:在基于预测树的点云解码中,解码端确定点云的预测参数和当前节点所包括的重复点个数中的至少一个,接着,基于点云的预测参数和当前节点所包括的重复点个数中的至少一个,确定当前节点的预测模式,进而基于当前节点的预测模式,对当前节点的几何信息进行解码。也就是说,本申请实施例中解码端通过点云的预测参数和/或当前节点所包括的重复点个数,来确定当前节点的预测模式,编码端无需采用相同的方式对预测树中的每个节点的预测模式进行编码,进而降低了预测模式的编码代价,进而提升了点云的编解码效率。

Description

点云编解码方法、装置、设备及存储介质
技术领域
本申请实施例涉及点云编解码技术领域,尤其涉及一种点云解码方法、装置、设备及存储介质。
背景技术
点云数据包括几十万甚至更多的点,在视频制作过程中,将点云数据以点云媒体文件的形式在点云编码设备和点云解码设备之间传输。但是,如此庞大的点给传输带来了挑战,因此,点云编码设备需要对点云数据进行压缩后传输。
点云的压缩也称为点云的编码,在点云编码过程中,若采用预测树编码时,需要确定预测树中的每一个节点的预测模式,并将每个节点的预测模式写入码流。但是,目前预测模式的编解码代价较大,进而影响点云的编解码效率。
发明内容
本申请提供一种点云编解码方法、装置、设备及存储介质,可以降低预测模式的确定代价,进而提升点云的编解码效率。
第一方面,本申请提供一种点云解码方法,包括:
确定点云的预测参数和当前节点所包括的重复点个数中的至少一个,所述当前节点为点云的预测树中的一个节点;
基于所述预测参数和所述重复点个数中的至少一个,确定所述当前节点的预测模式;
基于所述预测模式,对所述当前节点的几何信息进行解码。
第二方面,本申请提供一种点云编码方法,包括:
确定点云的预测参数和当前节点所包括的重复点个数中的至少一个,所述当前节点为点云的预测树中的一个节点;
基于所述预测参数和所述重复点个数中的至少一个,确定所述当前节点的预测模式;
基于所述预测模式,对所当前节点的几何信息进行编码。
第三方面,本申请提供了一种点云解码装置,包括:
参数确定单元,用于确定点云的预测参数和当前节点所包括的重复点个数中的至少一个,所述当前节点为点云的预测树中的一个节点;
模式确定单元,用于基于所述预测参数和所述重复点个数中的至少一个,确定所述当前节点的预测模式;
解码单元,用于基于所述预测模式,对所述当前节点的几何信息进行解码。
第四方面,本申请提供了一种点云编码装置,包括:
参数确定单元,用于确定点云的预测参数和当前节点所包括的重复点个数中的至少一个,所述当前节点为点云的预测树中的一个节点;
模式确定单元,用于基于所述预测参数和所述重复点个数中的至少一个,确定所述当前节点的预测模式;
编码单元,用于基于所述预测模式,对所当前节点的几何信息进行编码。
第五方面,提供了一种解码器,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第一方面或其各实现方法中的方法。
第六方面,提供了一种编码器,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第二方面或其各实现方法中的方法。
第七方面,提供了一种芯片,用于实现上述第一方面至第二方面中任一方面或其各实现方法中的方法。具体地,所述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如上述第一方面至第二方面中任一方面或其各实现方法中的方法。
第八方面,提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述第一方面至第二方面中任一方面或其各实现方法中的方法。
第九方面,提供了一种计算机程序产品,包括计算机程序指令,所述计算机程序指令使得计算机执行上述第一方面至第二方面中任一方面或其各实现方法中的方法。
第十方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面至第二方面中任一方面或其各实现方法中的方法。
综上,在基于预测树的点云解码中,解码端确定点云的预测参数和当前节点所包括的重复点个数中的至少一个,接着,基于点云的预测参数和当前节点所包括的重复点个数中的至少一个,确定当前节点的预测模式,进而基于当前节点的预测模式,对当前节点的几何信息进行解码。也就是说,本申请实施例中解码端通过点云的预测参数和/或当前节点所包括的重复点个数,来确定当前节点的预测模式,编码端无需采用相同的方法对预测树中的每个节点的预测模式进行编码,进而降低了预测模式的编码代价,进而提升了点云的编解码效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为三维点云图像示意图;
图1B为图1A的局部放大图;
图2示出了点云图像的六个观看角度示意图;
图3为本申请实施例涉及的一种点云编解码系统的示意性框图;
图4A是本申请实施例提供的点云编码器的示意性框图;
图4B是本申请实施例提供的点云解码器的示意性框图;
图5为八叉树编码示意图;
图6A为AVS预测树编码结构示意图;
图6B为MPEG预测树编码结构示意图;
图7A为基于预测树的编码框架示意图;
图7B为基于预测树的解码框架示意图;
图8A和图8B为预测树编码示意图;
图9为本申请一实施例提供的点云解码方法流程示意图;
图10为本申请一实施例提供的点云编码方法流程示意图;
图11是本申请实施例提供的点云解码装置的示意性框图;
图12是本申请实施例提供的点云编码装置的示意性框图;
图13是本申请实施例提供的电子设备的示意性框图。
具体实施方法
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。在本发明实施例中,“与A对应的B”表示B与A相关联。在一种实现方法中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。
本申请可应用于点云编解码领域、硬件点云编解码领域、专用电路点云编解码领域、实时点云编解码领域等。例如,本申请的方案可结合至其它专属或行业标准而操作,所述标准包含ITU-TH.261、ISO/IECMPEG-1Visual、ITU-TH.262或ISO/IECMPEG-2Visual、ITU-TH.263、ISO/IECMPEG-4Visual,ITU-TH.264(还称为ISO/IECMPEG-4AVC),包含可分级视频编解码(SVC)及多视图视频编解码(MVC)扩展。应理解,本申请的技术不限于任何特定编解码标准或技术。
为了便于理解本申请的实施例,首先对本申请实施例涉及到的相关概念进行如下简单介绍:
点云(Point Cloud)是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。图1A为三维点云图像示意图,图1B为图1A的局部放大图,由图1A和图1B可知,点云表面是由分布稠密的点所组成的。
二维图像在每一个像素点均有信息表达,分布规则,因此不需要额外记录其位置信息;然而点云中的点在三维空间中的分布具有随机性和不规则性,因此需要记录每一个点在空间中的位置,才能完整地表达一幅点云。与二维图像类似,采集过程中每一个位置均有对应的属性信息。
点云数据(Point Cloud Data)是点云的具体记录形式,点云中的点可以包括点的位置信息和点的属性信息。例如,点的位置信息可以是点的三维坐标信息。点的位置信息也可称为点的几何信息。例如,点的属性信息可包括颜色信息、反射率信息、法向量信息等等。颜色信息反映物体的色彩,反射率(reflectance)信息反映物体的表面材质。所述颜色信息可以是任意一种色彩空间上的信息。例如,所述颜色信息可以是(RGB)。再如,所述颜色信息可以是于亮度色度(YcbCr,YUV)信息。例如,Y表示明亮度(Luma),Cb(U)表示蓝色色差,Cr(V)表示红色,U和V表示为色度(Chroma)用于描述色差信息。例如,根据激光测量原理得到的点云,所述点云中的点可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理得到的点云,所述点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原理得到点云,所述点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。如图2示出了一幅点云图像,其中,图2示出了点云图像的六个观看角度,表1示出了由文件头信息部分和数据部分组成的点云数据存储格式:
表1
表1中,头信息包含了数据格式、数据表示类型、点云总点数、以及点云所表示的内容,例如,本例中的点云为“.ply”格式,由ASCII码表示,总点数为207242,每个点具有三维位置信息XYZ和三维颜色信息RGB。
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,并且由于点云通过直接对真实物体采样获得,在保证精度的前提下能提供极强的真实感,因而应用广泛,其范围包括虚拟现实游戏、计算机辅助设计、地理信息系统、自动导航系统、数字文化遗产、自由视点广播、三维沉浸远程呈现、生物组织器官三维重建等。
点云数据的获取途径可以包括但不限于以下至少一种:(1)计算机设备生成。计算机设备可以根据虚拟三维物体及虚拟三维场景的生成点云数据。(2)3D(3-Dimension,三维)激光扫描获取。通过3D激光扫描可以获取静态现实世界三维物体或三维场景的点云数据,每秒可以获取百万级点云数据;(3)3D摄影测量获取。通过3D摄影设备(即一组摄像机或具有多个镜头和传感器的摄像机设备)对现实世界的视觉场景进行采集以获取现实世界的视觉场景的点云数据,通过3D摄影可以获得动态现实世界三维物体或三维场景的点云数据。(4)通过医学设备获取生物组织器官的点云数据。在医学领域可以通过磁共振成像(Magnetic Resonance Imaging,MRI)、电子计算机断层扫描(Computed Tomography,CT)、电磁定位信息等医学设备获取生物组织器官的点云数据。
点云数据,从数据的获取方法划分,可以分为密集型点云和稀疏型点云。
点云按照数据的时序类型划分为:
第一类静态点云:即物体是静止的,获取点云的设备也是静止的;
第二类动态点云:物体是运动的,但获取点云的设备是静止的;
第三类动态获取点云:获取点云的设备是运动的。
按点云的用途分为两大类:
类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;
类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
上述点云获取技术降低了点云数据获取成本和时间周期,提高了数据的精度。点云数据获取方法的变革,使大量点云数据的获取成为可能,伴随着应用需求的增长,海量3D点云数据的处理遭遇存储空间和传输带宽限制的瓶颈。
以帧率为30fps(帧每秒)的点云视频为例,每帧点云的点数为70万,每个点具有坐标信息xyz(float)和颜色信息RGB(uchar),则10s点云视频的数据量大约0.7million·(4Byte·3+1Byte·3)·30fps·10s=3.15GB,而YUV采样格式为4:2:0,帧率为24fps的1280·720二维视频,其10s的数据量约为1280·720·12bit·24frames·10s≈0.33GB,10s的两视角3D视频的数据量约为0.33X2=0.66GB。由此可见,点云视频的数据量远超过相同时长的二维视频和三维视频的数据量。因此,为更好地实现数据管理,节省服务器存储空间,降低服务器与客户端之间的传输流量及传输时间,点云压缩成为促进点云产业发展的关键问题。
下面对点云编解码的相关知识进行介绍。
图3为本申请实施例涉及的一种点云编解码系统的示意性框图。需要说明的是,图3只是一种示例,本申请实施例的点云编解码系统包括但不限于图3所示。如图3所示,该点云编解码系统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)显示器或其它类型的显示装置。
此外,图3仅为实例,本申请实施例的技术方案不限于图3,例如本申请的技术还可以应用于单侧的点云编码或单侧的点云解码。
现代主流的点云编码技术,针对不同的点云数据类型,可以分为基于几何结构的点云编码以及基于投影的点云编码。以国际标准组织运动图像专家组(Moving PictureExperts Group,MPEG)中的基于几何的点云压缩(Geometry-based Point CloudCompression,G-PCC),以及中国国家数字视音频编解码标准中点云编码标准AVS-PCC为例进行介绍。
G-PCC及AVS-PCC均针对静态的稀疏型点云,其编码框架大致相同,下面以GPCC编解码框架为例,对本申请实施例可适用的点云编码器和点云解码器进行说明。
图4A是本申请实施例提供的点云编码器的示意性框图。
由上述可知点云中的点可以包括点的位置信息和点的属性信息,因此,点云中的点的编码主要包括位置编码和属性编码。在一些示例中点云中点的位置信息又称为几何信息,对应的点云中点的位置编码也可以称为几何编码。
在GPCC编码框架中,点云的几何信息和对应的属性信息是分开编码的。
如下图4A所示,目前G-PCC的几何编解码可分为基于八叉树的几何编解码和基于预测树的几何编解码。
其中,对于几何结构编码,主要操作和处理如下:
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)。
如图4A所示,位置编码可通过以下单元实现:
坐标转换(Tanmsform coordinates)单元201、体素(Voxelize)单元202、八叉树划分(Analyze octree)单元203、几何重建(Reconstruct geometry)单元204、第一算术编码(Arithmetic enconde)单元205、表面拟合单元(Analyze surface approximation)206。
坐标转换单元201可用于将点云中点的世界坐标变换为相对坐标。例如,点的几何坐标分别减去xyz坐标轴的最小值,相当于去直流操作,以实现将点云中的点的坐标从世界坐标转换为相对坐标。
体素(Voxelize)单元202也称为量化和移除重复点(Quantize and removepoints)单元,可通过量化减少坐标的数目;量化后原先不同的点可能被赋予相同的坐标,基于此,可通过去重操作将重复的点删除;例如,具有相同量化位置和不同属性信息的多个云可通过属性转换合并到一个云中。在本申请的一些实施例中,体素单元202为可选的单元模块。
八叉树划分单元203可利用八叉树(octree)编码方法,编码量化的点的位置信息。例如,将点云按照八叉树的形式进行划分,由此,点的位置可以和八叉树的位置一一对应,通过统计八叉树中有点的位置,并将其标识(flag)记为1,以进行几何编码。
在一些实施例中,在基于三角面片集(trianglesoup,trisoup)的几何信息编码过程中,同样也要通过八叉树划分单元203对点云进行八叉树划分,但区别于基于八叉树的几何信息编码,该trisoup不需要将点云逐级划分到边长为1x1x1的单位立方体,而是划分到block(子块)边长为W时停止划分,基于每个block中点云的分布所形成的表面,得到该表面与block的十二条边所产生的至多十二个vertex(交点),通过表面拟合单元206对交点进行表面拟合,对拟合后的交点进行几何编码。
几何重建单元204可以基于八叉树划分单元203输出的位置信息或表面拟合单元206拟合后的交点进行位置重建,得到点云数据中各点的位置信息的重建值。
算术编码单元205可以采用熵编码方法对八叉树分析单元203输出的位置信息或对表面拟合单元206拟合后的交点进行算术编码,生成几何码流;几何码流也可称为几何比特流(geometry bitstream)。
对于属性信息编码,主要操作和处理如下:
1)属性重上色(Recoloring):有损编码情况下,在几何信息编码后,需编码端解码并重建几何信息,即恢复3D点云的各点坐标信息。在原始点云中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息。
2)属性变换编码(Transform):属性变换编码中包含三种模式,可在不同条件下使用。
(a)预测变换编码(Predicting Transform):根据距离选择子点集,将点云划分成多个不同的层级(Level of Detail,LoD),实现由粗糙到精细化的点云表示。相邻层之间可以实现自下而上的预测,即由粗糙层中的邻近点预测精细层中引入的点的属性信息,获得对应的残差信号。其中,最底层的点作为参考信息进行编码。
(b)提升变换编码(Lifting Transform):在LoD相邻层预测的基础上,引入邻域点的权重更新策略,最终获得各点的预测属性值,获得对应的残差信号。
(c)分层区域自适应变换编码(Region Adaptive Hierarchical Transform,RAHT):属性信息经过RAHT变换,将信号转换到变换域中,称之为变换系数。
3)属性信息量化(Attribute quantization):量化的精细程度通常由量化参数(QP)来决定。在预测变换编码及提升变换编码中,是对残差值进行量化后进行熵编码;在RAHT中,是对变换系数进行量化后进行熵编码。
4)属性熵编码(Attribute entropy coding):量化后的属性残差信号或变换系数一般使用行程编码(run length coding)及算数编码(arithmetic coding)实现最终的压缩。相应的编码模式,量化参数等信息也同样采用熵编码器进行编码。
属性编码可通过以下单元实现:
颜色转换(Transform colors)单元210、重着色(Transfer attributes)单元211、区域自适应分层变换(Region Adaptive Hierarchical Transform,RAHT)单元212、生成LOD(Generate LOD)单元213以及提升(lifting transform)单元214、量化系数(Quantizecoefficients)单元215以及算术编码单元216。
需要说明的是,点云编码器200可包含比图4A更多、更少或不同的功能组件。
颜色转换单元210可用于将点云中点的RGB色彩空间变换为YCbCr格式或其他格式。
重着色单元211利用重建的几何信息,对颜色信息进行重新着色,使得未编码的属性信息与重建的几何信息对应起来。
经过重着色单元211转换得到点的属性信息的原始值后,可选择任一种变换单元,对点云中的点进行变换。变换单元可包括:RAHT变换212和提升(lifting transform)单元214。其中,提升变化依赖生成细节层(level of detail,LOD)。
RAHT变换和提升变换中的任一项可以理解为用于对点云中点的属性信息进行预测,以得到点的属性信息的预测值,进而基于点的属性信息的预测值得到点的属性信息的残差值。例如,点的属性信息的残差值可以是点的属性信息的原始值减去点的属性信息的预测值。
量化单元215可用于量化点的属性信息的残差值。例如,若量化单元215和RAHT变换单元212相连,则量化单元215可用于量化RAHT变换单元212输出的点的属性信息的残差值。
算术编码单元216可使用零行程编码(Zero run length coding)对点的属性信息的残差值进行熵编码,以得到属性码流。所述属性码流可以是比特流信息。
图4B是本申请实施例提供的点云解码器的示意性框图。
如图4B所示,解码器300可以从编码设备获取点云码流,通过解析码得到点云中的点的位置信息和属性信息。点云的解码包括位置解码和属性解码。
位置解码的过程包括:对几何码流进行算术解码;构建八叉树后进行合并,对点的位置信息进行重建,以得到点的位置信息的重建信息;对点的位置信息的重建信息进行坐标变换,得到点的位置信息。点的位置信息也可称为点的几何信息。
属性解码过程包括:通过解析属性码流,获取点云中点的属性信息的残差值;通过对点的属性信息的残差值进行反量化,得到反量化后的点的属性信息的残差值;基于位置解码过程中获取的点的位置信息的重建信息,选择如下RAHT逆变换和提升逆变换中的一种进行点云预测,得到预测值,预测值与残差值相加得到点的属性信息的重建值;对点的属性信息的重建值进行颜色空间逆转换,以得到解码点云。
如图4B所示,位置解码可通过以下单元实现:
算数解码单元301、八叉树合成(synthesize octree)单元302、表面拟合单元(Synthesize suface approximation)303、几何重建(Reconstruct geometry)单元304、逆坐标变换(inverse transformcoordinates)单元305。
属性编码可通过以下单元实现:
算数解码单元310、反量化(inverse quantize)单元311、RAHT逆变换单元312、生成LOD(Generate LOD)单元313、提升逆变换(Inverse lifting)单元314以及逆颜色转换(inverse trasformcolors)单元315。
需要说明的是,解压缩是压缩的逆过程,类似的,解码器300中的各个单元的功能可参见编码器200中相应的单元的功能。另外,点云解码器300可包含比图4B更多、更少或不同的功能组件。
上述是基于GPCC编解码框架下的点云编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本申请适用于该基于GPCC编解码框架下的点云编解码器的基本流程,但不限于该框架及流程。
下面对基于八叉树的几何编码和基于预测树的几何编码进行介绍。
八叉树是一种树形数据结构,目前在G-PCC或是AVS-PCC中主要采用八叉树结构对点云进行划分。对3D空间中的点云数据,八叉树划分方法是逐层次地对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用‘1’和‘0’指示,如图5所示,获得占用码信息(occupancy code)作为点云几何信息的码流。
基于莫顿序(Morton)实现八叉树的构建,即将点云数据的3D坐标信息通过查询莫顿顺序表,转换成对应的莫顿码。根据每一位莫顿码的排序,获得每层八叉树的对应点。目前主流的点云编码技术是利用八叉树划分对点云数据进行表示,对几何信息和属性信息采用不同的处理流程。
预测树编码是,基于搜索集合,将所有点链接成为一个单一的预测树,每个点以其前一个点或前几个点的信号值进行预测。该方法作为点云信号预测的一种选项,可设置为作用于整体原始点云数据,也可以作用于八叉树子节点或者其他方法获得的点云数据子集。图6A为AVS预测树编码结构示意图,图6B为MPEG预测树编码结构示意图。
此外,G-PCC中已有的预测编码技术,利用点间的距离搜索建立预测树。每个顶点只能根据其在树中的前序点进行预测。每一个点都与其他点相连接,并指示每个点链接的点个数和四种预测模式之一。
示例性的,四种预测模式如下:
Mode0:无预测;
Mode1:Delta预测,采用parent点预测(i.e.,p0);
Mode2:Linear预测,采用parent点和grandparent点预测(i.e.,2p0-p1);
Mode3:Parallelogram预测,采用parent,grandparent and grand-grandparent点预测(i.e.,p0+p1-p2)。
其中,p0、p1、p2分别为当前节点的父结点、祖父结点、曾祖父结点的位置。通过对当前节点选取最佳的预测模式进行预测。例如将率失真代价最小的预测模式,确定为当前节点的最佳预测模式。
基于预测树的几何编码包括:首先,点云中的点按照一定的顺序进行排列(默认顺序,莫顿顺序,方位角顺序或径向距离顺序等)。接着,采用KD-Tree(高时延慢速模式)搜索或有限范围内的最近邻点搜索进行预测点的搜索及预测树构建。最开始搜索集合为空,所有的点按照预先排列的顺序进行处理。对当前点p在搜索集合中进行搜索k个最近邻点,选择其中一个作为预测点,将当前点连接到预测点(父节点)。编码预测点的子节点个数,根据对应的预测残差值估计比特位数,确定当前点对应的预测模式信息。其次,将当前点作为父节点,生成新的预测值被添加至搜索集合,直到所有点都遍历过。最后获得整体的预测树结构,编解码各个节点的重复点个数,子节点个数,预测模式,以及根据预测模式确定的预测残差值。
本申请实施例主要涉及预测树编解码,下面对预测树编解码框架进行介绍。
图7A为基于预测树的编码框架示意图,图7B为基于预测树的解码框架示意图。
目前,基于预测树的编解码技术至少包括两种,第一种是基于KD-Tree的编解码技术,另一种是基于角度模式的预测编码技术,下面对这两种技术进行介绍。
首先对基于KD-Tree的编码技术的过程进行介绍。
基于KD-Tree的编码技术的过程主要分为五步:重排序、建立预测树、选择预测模式、生成预测值。下面对这5个步骤分别进行介绍:
1)重排序
对体素化后的点云进行重排序以构建更高效的预测树。可选的,可用的排序方法有无序、莫顿序、方位角序和径向距离序。目前,默认的排序方法是按方位角排序。
2)建立预测树
示例性的,可以利用KD-Tree来进行最近邻查找。在开始时,KD-Tree是空的,按照选定的顺序进行依次访问每个节点,利用当前节点的位置在KD-Tree中查找K个最近邻,并且按照一定的准则将查找到的最近邻作为当前点的子节点进行预测。在预测过程中,确定出如下信息:
当前节点的几何预测残差大小;
当前节点的子节点数目;
每种预测模式所选取的频率。
接着,基于当前节点创建新的预测模式,并且将每种预测模式对应的位置添加到KD-Tree中。不断重复这个过程,直至遍历完所有节点,建立整个预测树编码结构。
3)选择预测模式
可选的,以深度优先顺序遍历建立的预测树,树中的每个节点只能由其祖先来预测。基于此,各种预测策略都是有可能的。
4)生成预测值
根据所选择的预测模式对树中每个节点的几何位置进行预测,并生成对应的预测值和预测残差。目前点的几何预测包括笛卡尔坐标预测,具体过程如下:
若当前节点为预测树的根节点,则预测模式选择Mode0,即当前节点的柱面坐标无预测,对应的笛卡尔坐标预测值为(0,0,0)。
若当前节点不是根节点,且预测模式选择Mode1时,当前点的笛卡尔坐标通过其父节点的几何重建坐标进行预测;
若当前节点不是根节点,且预测模式选择Mode2或Mode3时,当前点的笛卡尔坐标通过对应的预测方法进行预测,可得当前节点笛卡尔坐标的预测值为
利用当前节点最佳的预测模式,对当前点的笛卡尔坐标(x,y,z)进行预测,利用当前点的笛卡尔坐标(x,y,z)的笛卡尔坐标进行差分预测,得到笛卡尔坐标系下的预测残差(rx,ry,rz)。
此时,即为当前点的几何预测值,(rx,ry,rz)即为当前点的几何预测残差。在基于KD-Tree结构进行几何预测编码时,每个节点首先需要对当前节点的子节点数目进行编码,其次编码当前节点的预测模式,以及当前节点对应的(rx,ry,rz)预测残差。目前G_PCC针对(rx,ry,rz)采用的是无损的算术编码。
下面对基于KD-Tree的解码技术的过程进行介绍。
基于KD-Tree的解码技术主要包括四步:解析预测模式、生成预测值、重建预测树、重建几何点云。下面分别进行介绍:
1)生成预测值
根据解码得到的当前点采用的预测模式及其祖先的重建几何坐标对当前点的几何坐标进行预测并生成对应的预测值,具体过程如下:
若当前节点为预测树的根节点,则预测模式选择Mode0,即当前节点的柱面坐标无预测,对应的笛卡尔坐标预测值为(0,0,0)。
若当前节点不是根节点,且预测模式选择Mode1时,当前点的笛卡尔坐标通过其父节点的几何重建坐标进行预测;
若当前节点不是根节点,且预测模式选择Mode2或Mode3时,当前点的笛卡尔坐标通过对应的预测方法进行预测,可得当前节点笛卡尔坐标的预测值为
2)重建几何点云
按照以下公式(1)利用解码得到的笛卡尔坐标残差(rx,ry,rz)和当前点的预测笛卡尔坐标计算当前点的重建笛卡尔坐标(x,y,z)。
最终,即得到了重建的体素化后的点云。
下面对基于角度模式的预测编码技术的过程进行介绍。
基于角度模式的预测编码技术的过程主要分为五步:重排序、坐标转换、建立预测树、选择预测模式、生成预测值。下面分别进行介绍:
1)重排序
对体素化后的点云进行重排序以构建更高效的预测树,可用的排序方法有无序、莫顿序、方位角序和径向距离序,目前,默认的排序方法是按方位角排序。为此,将每个点的笛卡尔坐标(x,y,z)转化为极坐标(r,φ,tanθ),并依次根据方位角φ、半径r和仰角正切值tanθ对各点进行排序。
2)坐标转换
根据排序后的结果遍历点云,将点由笛卡尔坐标(x,y,z)按照以下公式(2)转换为柱面坐标(r,φ,i)并进行存储。
其中,i即点对应的LaserID(一个典型的激光雷达系统可能有16、32或64个LaserScanner,每个laser的先验信息不同即仰角θ和在垂直方向上的高度zlaser不同),i的确定是通过循环不同Laser的先验信息,在每次循环中利用点的r、先验信息和以上转换公式计算点的z分量,并计算该转换而来的z分量与点的原始z分量之间的偏差,进而从不同LaserID中选择出偏差最小的作为该点的i,此过程对点云在空间中垂直方向的非均匀分布进行了处理,使其规则化。
在一些实施例中,将上述柱面坐标(r,φ,i)使用如下公式(3)进行量化:
/>
其中,(qr,or)和(qφ,oφ)分别是控制和/>的精度的量化参数。sign(t)函数是如果t为正则返回1,否则返回(-1)。|t|是t的绝对值。
为避免浮点数计算,和tan(θ(i))i=1…N的值根据如下公式(4)被预先计算并量化如下:
其中,和(qθ,oθ)分别是控制/>和/>的精度的量化参数。
笛卡尔坐标系的重建过程如公式(5)所示:
其中,app_cos(.)和app_sin(.)是cos(.)和sin(.)的近似值。计算可以使用定点表示、查找表和线性插值。
注意,由于量化、近似、模型不精确和模型参数不精确等各种原因,可能与(x,y,z)不同:
设(rx,ry,rz)是如公式(6)定义的重建残差:
首先编码模型参数and/>and the量化参数qr/>qθand qφ
其次,基于LiDAR的特性来选择预测值(predictor)。比如,laser绕z轴的旋转速度一般是恒定的,角度预测如公式(7)所示:
其中,(δφ(k))k=1…K是设定的角速度。K是写在码流中或者由编解码端都可以通过计算获得的参数。n(j)是可能被跳过的点数。是写在码流中或者由编解码端都可以通过计算获得的参数。
最后编码残差值(rx,ry,rz)。
解码流程是对应的。
此方法还可以采用快速模式,简单快速的建立预测树,如8A和图8B图所示。每个点都采用相同laser id的前一个点作为父节点,若该父节点不可用,则采用不同laser id的最近距离点。
熵编码技术
对量化(有损情况下)后的有符号属性预测残差或变换系数进行二值化和处理。主要包括变长编码和基于上下文的自适应二进制算术编码(CABAC)。
变长编码,是采用不同长度的码字表示需要编码的残差或系数。需要根据符号出现的概率设计码长。常用的包括指数哥伦布编码(exp-Golomb)和算术编码。
基于上下文的自适应二进制算术编码(CABAC)主要包括如下步骤:
二值化:CABAC使用二进制算数编码,这意味着仅仅有两个数字(1或0)被编码。一个非二进制的数值符号,比如一个转换系数或者运动适量,在算术编码之前会首先被二值化或者转化成二进制码字。这个过程类似于将一个数值转化成可变长码字(7.4.1),但是这个二进制码字在传输之前会通过算术编码器进一步的编码。
上下文模型选择:上下文模型就是一个概率模型,这个模型是根据最近的被编码的数据符号的统计数字而选择的一个模型。这个模型保存了每个‘bin’是1或者0的概率。
算术编码:算术编码器根据选择的概率模型(参考第三章)对每一个‘bin’进行编码。
概率更新:被选中的上下文模型会根据实际的编码值而去更新。例如,如果bin的值是1,那么1的频率计数会增加。
由上述可知,目前在基于预测树的点云编解码中,编码端确定预测树中每个节点的预测模式,并将该每个节点的预测模式写入码流。这样解码端通过解码码流,得到预测树中每个节点的预测模式,进而基于每个节点的预测模式,确定每个节点的几何预测值,实现对预测树中每个节点的几何信息的解码,进而实现对点云中每个点的几何信息的解码。但是,目前编码端采样相同的编码方法,对预测树中的每个节点的预测模式进行编码,会增加编码代价。
为了解码该技术问题,本申请实施例中,解码端通过点云的预测参数和/或当前节点所包括的重复点个数,来确定当前节点的预测模式,编码端无需采用相同的方法对预测树中的每个节点的预测模式进行编码,进而降低了预测模式的编码代价,进而提升了点云的编解码效率。
下面结合具体的实施例,对本申请实施例涉及的点云编解码方法进行介绍。
首先,以解码端为例,对本申请实施例提供的点云解码方法进行介绍。
图9为本申请一实施例提供的点云解码方法流程示意图。本申请实施例的点云解码方法可以由上述图3或图4B所示的点云解码设备完成。
如图9所示,本申请实施例的点云解码方法包括:
S101、确定点云的预测参数和当前节点所包括的重复点个数中的至少一个。
其中,当前节点为点云的预测树中的一个节点。
由上述可知,点云包括几何信息和属性信息,对点云的解码包括几何解码和属性解码。本申请实施例涉及点云的几何解码。
在一些实施例中,点云的几何信息也称为点云的位置信息,因此,点云的几何解码也称为点云的位置解码。
在基于预测树的编码方法中,编码端基于点云的几何信息,构建点云的预测树结构,预测树由多个节点组成,每一个节点包括点云中的至少一个点。也就是说,在预测树编码中,将点云中的点划分至预测树中的节点上,通过对预测树中节点的解码,实现对点云中点的解码。
本申请实施例中,对于预测树中的每一个点的解码过程基本相同,为了便于描述,以预测树中的当前节点为例,对本申请实施例的解码过程进行介绍。
在一些实施例中,当前节点可以理解为预测树中的任意一个节点。
在一些实施例中,当前节点可以理解为预测树中当前正等待解码的一个节点。
在本申请实施例中,解码端解码当前节点时,需要确定当前节点的预测模式、重复点个数、子节点个数、残差值等信息。
目前在基于预测树的点云编解码中,编码端确定预测树中每个节点的预测模式,并将该每个节点的预测模式写入码流。这样解码端通过解码码流,得到预测树中每个节点的预测模式,进而基于每个节点的预测模式,确定每个节点的几何预测值,实现对预测树中每个节点的几何信息的解码,进而实现对点云中每个点的几何信息的解码。但是,目前编码端采样相同的编码方法,对预测树中的每个节点的预测模式进行编码,会增加编码代价。
为了解决该技术问题,本申请实施例中,解码端通过点云的预测参数和/或当前节点所包括的重复点个数,来确定当前节点的预测模式,编码端无需采用相同的方法对预测树中的每个节点的预测模式进行编码,进而降低了预测模式的编码代价,进而提升了点云的编解码效率。
本申请实施例对点云的预测参数可以理解为任意可以用于确定当前节点的预测模式的参数。例如,点云的预测参数可以指示当前节点的预测模式为默认预测模式的参数信息,或者为其他指示预测模式的参数信息。本申请实施例对点云的预测参数的具体类型和具体内容不做限制。
本申请实施例对解码端确定点云的预测参数的具体方法不做限制。
在一些实施例中,上述点云的预测参数为默认参数。也就是说,编码端和解码端将默认参数,确定为点云的预测参数,此时编码端无需将点云的预测参数写入码流,指示给解码端。
在一些实施例中,上述点云的预测参数为编码端确定的,编码端将该点云的预测参数编入码流。这样解码端可以通过解码码流,得到点云的预测参数。
由于点云中一些点的位置信息一致,或经过坐标转换后,使得转换后的一些点的位置信息一致,在构建预测树时,这些位置信息一致的点被划分在同一个节点中。也就是说,上述当前节点可能包括重复点,因此在对当前节点进行解码时,需要确定当前节点所包括的重复点个数。
在本申请实施例中,对解码端确定当前节点的预测模式和当前节点所包括的重复点个数的具体先后顺序不做限制。
在一些实施例中,若解码端先确定当前节点所包括的重复点个数,后确定当前节点的预测模式时,则解码端还可以基于当前节点所包括的重复点个数,来确定当前节点的预测模式。
本申请实施例对解码端确定当前节点所包括的重复点个数的具体方法不做限制。
在一种可能的实现方法中,编码端将点云预测树中每个节点所包括的重复点个数写入码流时,例如编码端将当前节点所包括的重复点个数写入码流。此时,解码端可以通过解码码流,得到当前节点所包括的重复点个数。
解码端确定点云的预测参数和当前节点所包括的重复点个数中的至少一个后,执行如下S102的步骤。
S102、基于预测参数和重复点个数中的至少一个,确定当前节点的预测模式。
解码端基于上述步骤,确定出点云的预测参数和当前节点所包括的重复点个数中的至少一个时,则解码端基于点云的预测参数和当前节点所包括的重复点个数中的至少一个,确定当前节点的预测模式。
本申请实施例对解码端基于点云的预测参数和当前节点所包括的重复点个数中的至少一个,确定当前节点的预测模式的具体方法不做限制。
在一些实施例中,上述S102包括如下S102-A的步骤:
S102-A、解码端基于点云的预测参数,确定当前节点的预测模式。
在该实施例中,编码端无需将点云预测树中每个节点的预测模式写入码流,解码端通过点云的预测参数,可以确定出点云预测树中节点的预测模式。例如,解码端基于点云的预测参数,确定预测树中当前节点的预测模式。
本申请实施例对点云的预测参数的具体类型不做限制,只要是任意可以指示预测模式的任意参数。
在一种示例中,上述点云的预测参数可以为标志位,通过该标志位来指示预测模式。例如,若该标志位的取值为第一数值(例如0)时指示点云对应的预测模式,若该标志位的取值为第二数值(例如1)时指示当前节点所在的第一点云组对应的预测模式。
在一种示例中,上述点云的预测参数可以包括第一预测参数和第二预测参数,其中第一预测参数用于指示点云对应的预测模式,第二预测参数用于指示当前节点所在的第一点云组对应的预测模式。
上述点云的预测参数可以是默认参数,也可以通过解码码流得到。
下面对解码端基于点云的预测参数,确定当前节点的预测模式的具体过程进行介绍。
本申请实施例中,解码端基于点云的预测参数,确定当前节点的预测模式包括但不限于几种:
方法一,若上述点云的预测参数指示点云对应的预测模式时,则解码端确定点云对应的预测模式,并将点云对应的预测模式,确定为当前节点的预测模式。
在该方法一中,点云中所有点的预测模式均相同,即整个点云使用一种预测模式。此时,编码端使用该点云对应的预测模式,对点云预测树中的每一个节点进行预测编码。对应的,解码端使用该点云对应的预测模式,对点云预测树中的每一个节点进行预测解码。例如,使用该点云对应的预测模式,对预测树中的当前节点进行预测。
在该方法一中,解码端基于上述S101的步骤,确定出点云的预测参数,若该预测参数指示点云对应的预测模式,例如该预测参数为标志位,且该标志位的取值为第一数值,或者该预测参数为第一预测参数时,则确定该预测参数指示点云对应的预测模式。此时,解码端确定点云对应的预测模式,并将点云对应的预测模式,确定为当前节点的预测模式。
在该方法一中,解码端确定点云对应的预测模式的方法包括但不限于如下几种示例所示:
在一种可能的实现方法中,解码端将第一默认预测模式,确定为点云对应的预测模式。
在该实现方法中,编码端和解码端将第一默认预测模式,确定为点云对应的预测模式,此时编码端无需编码点云对应的预测模式,或者说编码端无需编码预测树中每一个节点的预测模式。解码端将该第一默认预测模式,确定为点云中每一个点的预测模式,进而降低了编解码代价,提升点云的编解码效率。
在一种可能的实现方法中,解码端解码码流,得到点云对应的预测模式。
在该实现方法中,编码端确定点云对应的预测模式,例如编码端从预设的多个预测模式中选择一个预测模式,作为点云对应的预测模式。此时,编码端将确定的点云对应的预测模式,写入码流。对应的,解码端可以通过解码码流,得到点云对应的预测模式。
在该实现方法中,编码端编码一次点云对应的预测模式,对应的解码端解码一次点云对应的预测模式,进而将解码的点云对应的预测模式,作为点云中每一个点的预测模式。无需编解码点云中每一个点的预测模式,进而降低了预测模式的编解码次数,降低了点云的编解码代价,从而提升点云的编解码效率。
示例性的,上述点云对应的预测模式可以为上述Mode1:Delta预测、Mode2:Linear预测和Mode3:Parallelogram预测中的任意一个。
解码端基于上述步骤,确定出点云对应的预测模式后,将该点云对应的预测模式,确定为当前节点的预测模式。
由上述可知,在该方法一中,整个点云使用相同预测模式,这样编码端可以不编码点云对应的预测模式,或者只编码一次点云对应的预测模式。解码端不解码预测模式或解码一次预测模式,即可得到点云对应的预测模式,进而使用该点云对应的预测模式,实现对点云中每个点进行解码预测,这样可以减少或省略预测模式的解码,可以大大降低预测模式的解码代价,进而提升点云的解码效率。
方法二,若点云的预测参数指示第一点云组对应的预测模式时,则解码端确定当前节点所在的第一点云组对应的预测模式,并将第一点云组对应的预测模式,确定为当前节点的预测模式。
其中,第一点云组为点云被划分为M个点云组中的一个点云组,M为正整数。
在该方法二中,编码端将点云中的点划分为多个点云组,例如,对点云进行排序,将排序后点云均匀或非均匀的划分为M个点云组,每个点云组中包括多个点。示例性的,将排序后的点云每隔1000个点划分为一组,得到M个点云组。对于这M个点云组中的每一个点云组,同一个点云组中的点使用相同的预测模式进行预测。基于此,解码端在确定当前节点的预测模式时,首先确定当前节点所在的点云组,为了便于描述,将该当前节点所在的点云组记为第一点云组。需要说明的是,由于当前节点包括一个或几个点,因此当前节点所在的点云组可以理解为当前节点中的点所在的点云组。接着,确定该第一点云组对应的预测模式,进而将该第一点云组对应的预测模式,确定为当前节点的预测模式。
在该方法一中,解码端基于上述S101的步骤,确定出点云的预测参数,若该预测参数指示第一点云组对应的预测模式。例如该预测参数为标志位,且该标志位的取值为第二数值,或者该预测参数为第二预测参数时,则确定该预测参数指示第一点云组对应的预测模式。此时,解码端确定第一点云组对应的预测模式,并将点云对应的预测模式,确定为当前节点的预测模式。
在该方法二中,解码端确定第一点云组对应的预测模式的方法包括但不限于如下几种示例所示:
在一种可能的实现方法中,解码端将第二默认预测模式,确定为第一点云组对应的预测模式。
在该实现方法中,编码端和解码端将第二默认预测模式,确定为点云对应的预测模式,此时编码端无需编码第一点云组对应的预测模式。解码端将该第二默认预测模式,确定为第一点云组中每一个点的预测模式,进而降低了编解码代价,提升点云的编解码效率。
在一种可能的实现方法中解码端解码码流,得到第一点云组对应的预测模式。
在该实现方法中,编码端确定第一点云组对应的预测模式,例如编码端从预设的多个预测模式中选择一个预测模式,作为点云对应的预测模式。此时,编码端将确定的第一点云组对应的预测模式,写入码流。对应的,解码端可以通过解码码流,得到第一点云组对应的预测模式。
在该实现方法中,编码端编码一次第一点云组对应的预测模式,对应的解码端解码一次第一点云组对应的预测模式,进而将解码的第一点云组对应的预测模式,作为第一点云组中每一个点的预测模式。无需编解码第一点云组中每一个点的预测模式,进而降低了预测模式的编解码次数,降低了点云的编解码代价,从而提升点云的编解码效率。
示例性的,上述第一点云组对应的预测模式可以为上述Mode1:Delta预测、Mode2:Linear预测和Mode3:Parallelogram预测中的任意一个。
解码端基于上述步骤,确定出第一点云组对应的预测模式后,将该第一点云组对应的预测模式,确定为当前节点的预测模式。
在该方法二中,整个第一点云组使用相同预测模式,这样编码端可以不编码第一点云组对应的预测模式,或者只编码一次第一点云组对应的预测模式。解码端不解码第一点云组对应的预测模式或解码一次第一点云组对应的预测模式,即可得到第一点云组对应的预测模式,进而使用该第一点云组对应的预测模式,实现对第一点云组中每个点进行解码预测,这样可以减少或省略预测模式的解码,可以大大降低预测模式的解码代价,进而提升点云的解码效率。
上文对解码端基于点云的预测参数,确定当前节点的预测模式的具体方法进行介绍。需要说明的是,解码端除了使用上述方法一或方法二的方法,确定出当前节点的预测模式外,还可以采用其他的方法,基于点云的预测参数,确定当前节点的预测模式。
在一些实施例中,上述S102包括如下S102-B的步骤:
S102-B、解码端基于当前节点所包括的重复点个数,确定当前节点的预测模式。
在该实施例中,解码端在确定当前节点的预测模式之前,已确定出当前节点所包括的重复点个数,进而基于当前节点所包括的重复点个数,确定当前节点的预测模式。
目前基于预测树的点云编码中,编码端对于预测树中的每一个节点所包括的重复点个数均进行编码。例如,对于当前节点,若当前节点包括重复点时,则将当前节点所包括的重复点个数写入码流,若当前节点不包括重复点时,则将该当前节点所包括的重复点个数0编入码流。也就是说,目前对于预测树中的每一个节点,无论该节点是否包括重复点,均需要编码该节点的重复点个数,这样会浪费码字,增加编码代价。
为了降低编码代价,本申请实施例,编码端对于预测树中的每一个节点,若该节点的重复点个数大于0时,则强制使用N个特定预测模式中的一个预测模式进行预测。基于此,解码端在确定当前节点的预测模式时,可以基于当前节点的重复点个数来确定当前节点的预测模式。
例如,若当前节点所包括的重复点个数大于0时,则将N个特定预测模式中的一个预测模式,确定为当前节点的预测模式。若当前节点所包括的重复点个数为0时,则当前节点的预测模式可能为N个特定预测模式中的一个预测模式,也可能是其他的预测模式。此时,编码端将当前节点的预测模式写入码流,对应的解码端通过解码码流,得到当前节点的预测模式。
再例如,若当前节点所包括的重复点个数为0时,则将N个特定预测模式中的一个预测模式,确定为当前节点的预测模式。若当前节点所包括的重复点个数大于0时,则当前节点的预测模式可能为N个特定预测模式中的一个预测模式,也可能是其他的预测模式。此时,编码端将当前节点的预测模式写入码流,对应的解码端通过解码码流,得到当前节点的预测模式。
本申请实施例对上述N个特定预测模式的具体类型不做限制。例如,N个特定预测模式可以为上述Mode2:Linear预测模式和Mode3:Parallelogram预测模式中的至少一个。
在该实施例中,解码端基于当前节点所包括的重复点个数,确定当前节点的预测模式。若当前节点所包括的重复点个数大于0时,则将N个预测模式中的一个预测模式,确定为当前节点的预测模式。或者,若当前节点所包括的重复点个数等于0时,则将N个预测模式中的一个预测模式,确定为当前节点的预测模式。也就是说,对于预测树中的每一个节点,若该节点包括的重复点个数大于0或等于0时,则不编码该节点的预测模式,进而节约码字,降低预测模式的编码代价,进行提升点云的编解码性能。
在一些实施例中,解码端还可以基于点云的预测参数和当前节点所包括的重复点个数,确定当前节点的预测模式。
例如,点云的预测参数为第一预测参数,且当前节点所包括的重复点个数大于0时,则将Linear预测模式或Parallelogram预测模式,确定为当前节点的预测模式。
再例如,点云的预测参数为第二预测参数,且当前节点所包括的重复点个数大于0时,则将Linear预测模式或Parallelogram预测模式,确定为当前节点的预测模式。
本申请实施例对解码端确定当前节点的预测模式和当前节点的残差值的先后顺序不做限制。
在一些实施例中,若解码端先确定当前节点的残差值,后确定当前节点的预测模式时,则解码端可以基于当前节点的几何残差值,确定当前节点的预测模式。
例如,若当前节点的几何残差值为预设值时,则解码端确定当前节点的预测模式为N个特定预测模式中的一个预测模式,N为正整数。
本申请实施例对N个特定预测模式的具体类型不做限制。例如,N个特定预测模式为Linear预测模式和Parallelogram预测模式中的至少一个。
本申请实施例对上述预设值的具体取值不做限制。
在一种示例中,上述预测值为0。也就是说,若当前节点的残差值为0时,则说明当前节点的预测模式不是Mode1:Delta预测。此时,上述当前节点的预测模式可以为Mode2:Linear预测或Mode3:Parallelogram预测。
上述对解码端确定当前节点的预测模式过程进行介绍。需要说明的是,本申请实施例中,解码端除了使用上述方法,确定当前节点的预测模式外,还可以采用其他的方法,确定当前节点的预测模式,本申请实施例对此不做限制。
S103、基于预测模式,对当前节点的几何信息进行解码。
解码端基于上述步骤,确定出当前节点的预测模式后,基于当前节点的预测模式,对当前节点的几何信息进行解码。
本申请实施例对解码端基于当前节点的预测模式,对当前节点的几何信息进行解码的具有方法不做限制。
在一些实施例中,解码端基于当前节点的预测模式,确定当前节点的几何预测值。另外,解码端解码码流,得到当前节点的几何残差值,这样基于当前节点的几何预测值和几何残差值,确定当前节点的几何重建值。例如,将当前节点的几何预测值和几何残差值相加,得到当前节点的几何重建值。
在本申请实施例中,解码端在对当前节点进行解码时,除了确定当前节点的几何重建值外,还需要确定当前节点所包括的重复点个数、当前节点的子节点个数等信息。
由上述描述可知,目前基于预测树的点云编码中,对预测树中的每一个节点所包括的重复点个数均进行编码。例如,对于当前节点,若当前节点包括重复点时,则将当前节点所包括的重复点个数写入码流,若当前节点不包括重复点时,则将该当前节点所包括的重复点个数0编入码流。也就是说,目前对于预测树中的每一个节点,无论该节点是否包括重复点,均需要编码该节点的重复点个数,这样会浪费码字,增加编码代价。同时,解码端对每一个节点进行解码时,均需要解码每一个节点的重复点个数,这样也会增加解码端的解码代价,降低点云的解码效率。
为了解决该技术问题,本申请实施例,在对预测树中的节点的重复点个数进行编码时,若该节点的重复点个数不为0时,则强制使用N个特定预测模式中的一个预测模式进行预测。这样,解码端确定当前节点的重复点个数时,可以基于当前节点的预测模式,确定是否解码当前节点所包括的重复点个数。例如,基于当前节点的预测模式,确定当前节点是否包括重复点,若确定当前节点不包括重复点时,则无需解码重复点个数的字段,若确定当前节点包括重复点时,则解码重复点个数的字段,这样可以大大降低解码代价,提升解码性能。
也就是说,在本申请实施例中,若上述当前节点的预测模式是基于点云的预测参数确定的,而不是基于当前节点所包括的重复点个数确定的。即当前节点的预测模式在确定当前节点所包括的重复点个数之前已经确定时,上述S103还包括如下S103-A的步骤:
S103-A、解码端基于当前节点的预测模式,确定是否解码当前节点所包括的重复点个数。
本申请实施例中,解码端基于当前节点的预测模式,确定是否解码当前节点所包括的重复点个数的具体方法包括但不限于如下示例:
示例一,若当前节点的预测模式为N个特定预测模式中的一个预测模式时,则解码码流,得到当前节点所包括的重复点个数,N为正整数。
也就是说,若当前节点的预测模式为N个特定预测模式中的一个预测模式时,则说明当前节点可能包括重复点,即当前节点所包括的重复点个数可能不是0。此时,解码端继续解码码流,得到当前节点所包括的重复点个数。
示例二,若当前节点的预测模式不是N个特定预测模式中的一个预测模式时,则省略解码当前节点所包括的重复点个数。
也就是说,若当前节点的预测模式不是上述N个预测模式中的一个预测模式时,则说明当前节点不包括重复点,即确定当前节点所包括的重复点个数为0。此时,解码端无需解码当前节点对应的重复点个数的字段,进而降低解码代价,提升解码性能。
上述示例一和示例二是以当前节点的重复点个数大于0时,限制当前节点的预测模式为N个预测模式中的一个预测模式时,解码端基于当前节点的预测模式,确定当前节点所包括的重复点个数的具体方法。在一些实施例中,若当前节点的重复点个数等于0时,限制当前节点的预测模式为N个预测模式中的一个预测模式时,则解码端在当前节点的预测模式为N个特定预测模式中的一个预测模式时,则确定当前节点所包括的重复点个数为0。在当前节点的预测模式不是N个特定预测模式中的一个预测模式时,则解码码流,得到当前节点所包括的重复点个数。
在一些实施例中,上述S103还包括如下S103-B的步骤:
S103-B、基于当前节点的预测模式,确定当前节点的几何残差值。
由上述可知,若当前节点的几何残差值为预设值时,则确定当前节点的预测模式为N个特定预测模式中的一个预测模式。因此,解码端在确定出当前节点的预测模式后,还可以基于该预测模式,确定出当前节点的几何残差值。例如,若当前节点的预测模式为N个特定预测模式中的一个预测模式时,则确定当前节点的几何残差值可能为0。若当前节点的预测模式不是N个特定预测模式中的一个预测模式时,则确定当前节点的几何残差值不为0。
举例说明,若当前节点的几何残差值为0时,则说明当前节点的预测模式不是Delta预测模式,而是Linear预测模式或Parallelogram预测模式。基于此,若当前节点的预测模式为Delta预测模式时,则确定当前节点的残差值不为0,若当前节点的预测模式为Linear预测模式或Parallelogram预测模式,则可以确定当前节点的几何残差值可能为0。
在一些实施例中,本申请实施例的方法还包括如下步骤:
步骤1、确定当前节点的几何残差值;
步骤2、基于几何残差值,对当前节点的预测模式进行解码。
在该实施例中,解码端确定当前节点的几何残差值,例如解码端解码码流,得到当前节点的几何残差值。接着,基于当前节点的几何残差值,对当前节点的预测模式进行解码。
本申请实施例对解码端基于几何残差值,对当前节点的预测模式进行解码的具体方法不进行限制。
在一些实施例中,解码端基于当前节点的几何残差值,确定当前节点的预测模式的解码方法。例如,若当前节点的几何残差值为0时,则确定当前节点的预测模式的解码方法为第一解码方法,多当前节点的几何残差值不为0时,则确定当前节点的预测模式的解码方法为第二解码方法。其中第一解码方法的解码代价小于第二解码方法的解码代价。
在一些实施例中,上述步骤2包括如下步骤11和步骤12:
步骤11、基于几何残差值,确定当前节点的预测模式对应的待解码比特个数;
步骤12、基于待解码比特个数,对当前节点的预测模式进行编码。
在该实施例中,解码端基于当前节点的几何残差值,确定当前节点的预测模式对应的待解码比特个数,进而基于该待解码比特个数,对当前节点的预测模式进行解码。
例如,若当前节点的几何残差值为预设值时,则确定待解码比特个数为第一待解码比特个数。
再例如,若当前节点的几何残差值非预测值时,则确定待解决比特个数为第二待解码比特个数。
其中,第一待解码比特个数小于第二待解码比特个数。
本申请实施例对上述预设值的具体取值不做限制。
在一种示例中,上述预测值为0。也就是说,若当前节点的残差值为0时,则说明当前节点的预测模式不是Mode1:Delta预测。此时,上述当前节点的预测模式可以为Mode2:Linear预测或Mode3:Parallelogram预测。此时,编码端在编码当前节点的预测模式可以省略1bit。需要说明的是,本申请实施例中,对于不同的二值化方法和熵解码方法,解析预测模式所对应的比特数不同。示例性的,若目前编码端采用固定的2比特编码预测模式时,例如用00指示不预测,01指示Delta预测,10指示Linear预测,11指示Parallelogram。而本申请实施例中,若当前节点的残差值为0时,则可以确定当前节点的预测模式为Linear或Parallelogram预测模式,此时编码端可以使用1比特对当前节点的预测模式进行编码,例如使用0指示Linear预测,1指示Parallelogram,进而省略了预测模式的高1bit。
基于此,若解码端通过解码码流,得到当前节点的预测模式时,则解码端可以基于当前节点的残差值,来确定当前节点的预测模式对应的待解码比特个数。例如,若当前节点的残差值为0时,则确定待解码比特个数为第一待解码比特个数,若当前节点的残差值不是0时,则确定待解码比特个数为第二待解码比特个数,其中第一待解码比特个数小于第二待解码比特个数。
本申请实施例提供的点云解码方法,在基于预测树的点云解码中,解码端确定点云的预测参数和当前节点所包括的重复点个数中的至少一个,接着,基于点云的预测参数和当前节点所包括的重复点个数中的至少一个,确定当前节点的预测模式,进而基于当前节点的预测模式,对当前节点的几何信息进行解码。也就是说,本申请实施例中解码端通过点云的预测参数和/或当前节点所包括的重复点个数,来确定当前节点的预测模式,编码端无需采用相同的方法对预测树中的每个节点的预测模式进行编码,进而降低了预测模式的编码代价,进而提升了点云的编解码效率。
上文以编码端为例,对本申请实施例提供的点云编码方法进行详细介绍,下面以编码端为例,对本申请实施例提供的点云编码方法进行介绍。
图10为本申请一实施例提供的点云编码方法流程示意图。本申请实施例的点云编码方法可以由上述图3或图4A所示的点云编码设备完成。
如图10所示,本申请实施例的点云编码方法包括:
S201、确定点云的预测参数和当前节点所包括的重复点个数中的至少一个。
其中,当前节点为点云的预测树中的一个节点。
由上述可知,点云包括几何信息和属性信息,对点云的编码包括几何编码和属性编码。本申请实施例涉及点云的几何编码。
在一些实施例中,点云的几何信息也称为点云的位置信息,因此,点云的几何编码也称为点云的位置编码。
在基于预测树的编码方法中,编码端基于点云的几何信息,构建点云的预测树结构,预测树由多个节点组成,每一个节点包括点云中的至少一个点。也就是说,在预测树编码中,将点云中的点划分至预测树中的节点上,通过对预测树中节点的编码,实现对点云中点的编码。
本申请实施例中,对于预测树中的每一个点的编码过程基本相同,为了便于描述,以预测树中的当前节点为例,对本申请实施例的编码过程进行介绍。
在一些实施例中,当前节点可以理解为预测树中的任意一个节点。
在一些实施例中,当前节点可以理解为预测树中当前正等待编码的一个节点。
在本申请实施例中,编码端编码当前节点时,需要确定当前节点的预测模式、重复点个数、子节点个数、残差值等信息。
目前在基于预测树的点云编编码中,编码端确定预测树中每个节点的预测模式,并将该每个节点的预测模式写入码流。这样解码端通过解码码流,得到预测树中每个节点的预测模式,进而基于每个节点的预测模式,确定每个节点的几何预测值,实现对预测树中每个节点的几何信息的解码,进而实现对点云中每个点的几何信息的解码。但是,目前编码端采样相同的编码方法,对预测树中的每个节点的预测模式进行编码,会增加编码代价。
为了解决该技术问题,本申请实施例中,编码端通过点云的预测参数和/或当前节点所包括的重复点个数,来确定当前节点的预测模式,无需采用相同的方法对预测树中的每个节点的预测模式进行编码,进而降低了预测模式的编码代价,进而提升了点云的编码效率。
本申请实施例对点云的预测参数可以理解为任意可以用于确定当前节点的预测模式的参数。例如,点云的预测参数可以指示当前节点的预测模式为默认预测模式的参数信息,或者为其他指示预测模式的参数信息。本申请实施例对点云的预测参数的具体类型和具体内容不做限制。
本申请实施例对编码端确定点云的预测参数的具体方法不做限制。
在一些实施例中,上述点云的预测参数为默认参数。也就是说,编码端和解码端将默认参数,确定为点云的预测参数。此时编码端无需将点云的预测参数写入码流,指示给解码端。
在一些实施例中,上述点云的预测参数为编码端确定的,此时编码端将该点云的预测参数编入码流。这样解码端可以通过解码码流,得到点云的预测参数。
由于点云中一些点的位置信息一致,或经过坐标转换后,使得转换后的一些点的位置信息一致,在构建预测树时,这些位置信息一致的点被划分在同一个节点中。也就是说,上述当前节点可能包括重复点,因此在对当前节点进行编码时,需要确定当前节点所包括的重复点个数。
在本申请实施例中,对编码端确定当前节点的预测模式和当前节点所包括的重复点个数的具体先后顺序不做限制。
在一些实施例中,编码端将点云预测树中每个节点所包括的重复点个数写入码流时,例如编码端将当前节点所包括的重复点个数写入码流。此时,解码端可以通过解码码流,得到当前节点所包括的重复点个数。
编码端确定点云的预测参数和当前节点所包括的重复点个数中的至少一个后,执行如下S202的步骤。
S202、基于预测参数和重复点个数中的至少一个,确定当前节点的预测模式。
编码端基于上述步骤,确定出点云的预测参数和当前节点所包括的重复点个数中的至少一个时,则编码端基于点云的预测参数和当前节点所包括的重复点个数中的至少一个,确定当前节点的预测模式。
本申请实施例对编码端基于点云的预测参数和当前节点所包括的重复点个数中的至少一个,确定当前节点的预测模式的具体方法不做限制。
在一些实施例中,上述S202包括如下S202-A的步骤:
S202-A、编码端基于点云的预测参数,确定当前节点的预测模式。
本申请实施例对点云的预测参数的具体类型不做限制,只要是任意可以指示预测模式的任意参数。
在一种示例中,上述点云的预测参数可以为标志位,通过该标志位来指示预测模式。例如,若该标志位的取值为第一数值(例如0)时指示点云对应的预测模式,若该标志位的取值为第二数值(例如1)时指示当前节点所在的第一点云组对应的预测模式。
在一种示例中,上述点云的预测参数可以包括第一预测参数和第二预测参数,其中第一预测参数用于指示点云对应的预测模式,第二预测参数用于指示当前节点所在的第一点云组对应的预测模式。
可选地,上述点云的预测参数可以是默认参数。
可选地,上述点云的预测参数为编码端选择的。此时,编码端将选择的点云的预测参数,写入码流。
下面对解码端基于点云的预测参数,确定当前节点的预测模式的具体过程进行介绍。
本申请实施例中,编码端基于点云的预测参数,确定当前节点的预测模式包括但不限于几种:
方法一,若上述点云的预测参数指示点云对应的预测模式时,则编码端确定点云对应的预测模式,并将点云对应的预测模式,确定为当前节点的预测模式。
在该方法一中,点云中所有点的预测模式均相同,即整个点云使用一种预测模式。此时,编码端使用该点云对应的预测模式,对点云预测树中的每一个节点进行预测编码。对应的,解码端使用该点云对应的预测模式,对点云预测树中的每一个节点进行预测解码。例如,使用该点云对应的预测模式,对预测树中的当前节点进行预测。
在该方法一中,编码端基于上述S201的步骤,确定出点云的预测参数,若该预测参数指示点云对应的预测模式,例如该预测参数为标志位,且该标志位的取值为第一数值,或者该预测参数为第一预测参数时,则确定该预测参数指示点云对应的预测模式。此时,编码端确定点云对应的预测模式,并将点云对应的预测模式,确定为当前节点的预测模式。
在该方法一中,编码端确定点云对应的预测模式的方法包括但不限于如下几种示例所示:
在一种可能的实现方法中,编码端将第一默认预测模式,确定为点云对应的预测模式。
在该实现方法中,编码端和解码端将第一默认预测模式,确定为点云对应的预测模式,此时编码端无需编码点云对应的预测模式,或者说编码端无需编码预测树中每一个节点的预测模式。解码端将该第一默认预测模式,确定为点云中每一个点的预测模式,进而降低了编解码代价,提升点云的编解码效率。
在一种可能的实现方法中,编码端从预设的多个预测模式中,选择一个预测模式,作为点云对应的预测模式。
在该实现方法中,编码端确定点云对应的预测模式,例如编码端从预设的多个预测模式中选择一个预测模式,作为点云对应的预测模式。此时,编码端将确定的点云对应的预测模式,写入码流。对应的,解码端可以通过解码码流,得到点云对应的预测模式。
在该实现方法中,编码端编码一次点云对应的预测模式,对应的解码端解码一次点云对应的预测模式,进而将解码的点云对应的预测模式,作为点云中每一个点的预测模式。编码端无需编解码点云中每一个点的预测模式,进而降低了预测模式的编解码次数,降低了点云的编解码代价,从而提升点云的编解码效率。
示例性的,上述点云对应的预测模式可以为上述Mode1:Delta预测、Mode2:Linear预测和Mode3:Parallelogram预测中的任意一个。
编码端基于上述步骤,确定出点云对应的预测模式后,将该点云对应的预测模式,确定为当前节点的预测模式。
由上述可知,在该方法一中,整个点云使用相同预测模式,这样编码端可以不编码点云对应的预测模式,或者只编码一次点云对应的预测模式。可以大大降低预测模式的编码代价,进而提升点云的编码效率。
方法二,若点云的预测参数指示第一点云组对应的预测模式时,则编码端确定当前节点所在的第一点云组对应的预测模式,并将第一点云组对应的预测模式,确定为当前节点的预测模式。
其中,第一点云组为点云被划分为M个点云组中的一个点云组,M为正整数。
在该方法二中,编码端将点云中的点划分为多个点云组,例如,对点云进行排序,将排序后点云均匀或非均匀的划分为M个点云组,每个点云组中包括多个点。示例性的,将排序后的点云每隔1000个点划分为一组,得到M个点云组。对于这M个点云组中的每一个点云组,同一个点云组中的点使用相同的预测模式进行预测。基于此,编码端在确定当前节点的预测模式时,首先确定当前节点所在的点云组,为了便于描述,将该当前节点所在的点云组记为第一点云组。需要说明的是,由于当前节点包括一个或几个点,因此当前节点所在的点云组可以理解为当前节点中的点所在的点云组。接着,确定该第一点云组对应的预测模式,进而将该第一点云组对应的预测模式,确定为当前节点的预测模式。
在该方法一中,编码端基于上述S201的步骤,确定出点云的预测参数,若该预测参数指示第一点云组对应的预测模式。例如该预测参数为标志位,且该标志位的取值为第二数值,或者该预测参数为第二预测参数时,则确定该预测参数指示第一点云组对应的预测模式。此时,编码端确定第一点云组对应的预测模式,并将点云对应的预测模式,确定为当前节点的预测模式。
在该方法二中,编码端确定第一点云组对应的预测模式的方法包括但不限于如下几种示例所示:
在一种可能的实现方法中,编码端将第二默认预测模式,确定为第一点云组对应的预测模式。
在该实现方法中,编码端和解码端将第二默认预测模式,确定为点云对应的预测模式,此时编码端无需编码第一点云组对应的预测模式。解码端将该第二默认预测模式,确定为第一点云组中每一个点的预测模式,进而降低了编解码代价,提升点云的编解码效率。
在一种可能的实现方法中,编码端从预设的多个预测模式中选择一个预测模式,确定为第一点云组对应的预测模式。
在该实现方法中,编码端确定第一点云组对应的预测模式,例如编码端从预设的多个预测模式中选择一个预测模式,作为点云对应的预测模式。此时,编码端将确定的第一点云组对应的预测模式,写入码流。对应的,解码端可以通过解码码流,得到第一点云组对应的预测模式。
在该实现方法中,编码端编码一次第一点云组对应的预测模式,对应的解码端解码一次第一点云组对应的预测模式,进而将解码的第一点云组对应的预测模式,作为第一点云组中每一个点的预测模式。编码端无需编解码第一点云组中每一个点的预测模式,进而降低了预测模式的编次数,降低了点云的编码代价,从而提升点云的编码效率。
在一些实施例中,在该实现方法中,编码端确定第一点云组对应的预测模式,进而将确定的第一点云组对应的预测模式,写入码流。
示例性的,上述第一点云组对应的预测模式可以为上述Mode1:Delta预测、Mode2:Linear预测和Mode3:Parallelogram预测中的任意一个。
编码端基于上述步骤,确定出第一点云组对应的预测模式后,将该第一点云组对应的预测模式,确定为当前节点的预测模式。
在该方法二中,整个第一点云组使用相同预测模式,这样编码端可以不编码第一点云组对应的预测模式,或者只编码一次第一点云组对应的预测模式,可以减少或省略预测模式的编码,大大降低预测模式的编码代价,进而提升点云的编码效率。
上文对编码端基于点云的预测参数,确定当前节点的预测模式的具体方法进行介绍。需要说明的是,编码端除了使用上述方法一或方法二的方法,确定出当前节点的预测模式外,还可以采用其他的方法,基于点云的预测参数,确定当前节点的预测模式。
在一些实施例中,上述S202包括如下S202-B的步骤:
S202-B、编码端基于当前节点所包括的重复点个数,确定当前节点的预测模式。
在该实施例中,编码端在确定当前节点的预测模式之前,已确定出当前节点所包括的重复点个数,进而基于当前节点所包括的重复点个数,确定当前节点的预测模式。
目前基于预测树的点云编码中,编码端对于预测树中的每一个节点所包括的重复点个数均进行编码。例如,对于当前节点,若当前节点包括重复点时,则将当前节点所包括的重复点个数写入码流,若当前节点不包括重复点时,则将该当前节点所包括的重复点个数0编入码流。也就是说,目前对于预测树中的每一个节点,无论该节点是否包括重复点,均需要编码该节点的重复点个数,这样会浪费码字,增加编码代价。
为了降低编码代价,本申请实施例,编码端对于预测树中的每一个节点,若该节点的重复点个数大于0时,则强制使用N个特定预测模式中的一个预测模式进行预测。基于此,编码端在确定当前节点的预测模式时,可以基于当前节点的重复点个数来确定当前节点的预测模式。
例如,若当前节点所包括的重复点个数大于0时,则将N个特定预测模式中的一个预测模式,确定为当前节点的预测模式。若当前节点所包括的重复点个数为0时,则当前节点的预测模式可能为N个特定预测模式中的一个预测模式,也可能是其他的预测模式。此时,编码端将当前节点的预测模式写入码流。
再例如,若当前节点所包括的重复点个数为0时,则将N个特定预测模式中的一个预测模式,确定为当前节点的预测模式。若当前节点所包括的重复点个数大于0时,则当前节点的预测模式可能为N个特定预测模式中的一个预测模式,也可能是其他的预测模式。此时,编码端将当前节点的预测模式写入码流。
本申请实施例对上述N个特定预测模式的具体类型不做限制。例如,N个特定预测模式可以为上述Mode2:Linear预测模式和Mode3:Parallelogram预测模式中的至少一个。
在该实施例中,编码端基于当前节点所包括的重复点个数,确定当前节点的预测模式。若当前节点所包括的重复点个数大于0时,则将N个预测模式中的一个预测模式,确定为当前节点的预测模式。或者,若当前节点所包括的重复点个数等于0时,则将N个预测模式中的一个预测模式,确定为当前节点的预测模式。也就是说,对于预测树中的每一个节点,若该节点包括的重复点个数大于0或等于0时,则不编码该节点的预测模式,进而节约码字,降低预测模式的编码代价,进行提升点云的编编码性能。
在一些实施例中,编码端还可以基于点云的预测参数和当前节点所包括的重复点个数,确定当前节点的预测模式。
例如,点云的预测参数为第一预测参数,且当前节点所包括的重复点个数大于0时,则将Linear预测模式或Parallelogram预测模式,确定为当前节点的预测模式。
再例如,点云的预测参数为第二预测参数,且当前节点所包括的重复点个数大于0时,则将Linear预测模式或Parallelogram预测模式,确定为当前节点的预测模式。
上述对编码端确定当前节点的预测模式过程进行介绍。需要说明的是,本申请实施例中,编码端除了使用上述方法,确定当前节点的预测模式外,还可以采用其他的方法,确定当前节点的预测模式,本申请实施例对此不做限制。
S203、基于预测模式,对当前节点的几何信息进行编码。
编码端基于上述步骤,确定出当前节点的预测模式后,基于当前节点的预测模式,对当前节点的几何信息进行编码。
本申请实施例对编码端基于当前节点的预测模式,对当前节点的几何信息进行编码的具有方法不做限制。
在一些实施例中,编码端基于当前节点的预测模式,确定当前节点的几何预测值。接着,基于当前节点的几何信息和几何预测值,确定当前节点的几何残差值。
在本申请实施例中,编码端在对当前节点进行编码时,除了确定当前节点的几何残差值外,还需要确定当前节点所包括的重复点个数、当前节点的子节点个数等信息。
由上述描述可知,目前基于预测树的点云编码中,对预测树中的每一个节点所包括的重复点个数均进行编码。例如,对于当前节点,若当前节点包括重复点时,则将当前节点所包括的重复点个数写入码流,若当前节点不包括重复点时,则将该当前节点所包括的重复点个数0编入码流。也就是说,目前对于预测树中的每一个节点,无论该节点是否包括重复点,均需要编码该节点的重复点个数,这样会浪费码字,增加编码代价。
为了解决该技术问题,本申请实施例,在对预测树中的节点的重复点个数进行编码时,若该节点的重复点个数不为0时,则强制使用N个特定预测模式中的一个预测模式进行预测。这样,编码端确定当前节点的重复点个数时,可以基于当前节点的预测模式,确定是否编码当前节点所包括的重复点个数。例如,基于当前节点的预测模式,确定当前节点是否包括重复点,若确定当前节点不包括重复点时,则无需编码重复点个数的字段,若确定当前节点包括重复点时,则编码重复点个数的字段,这样可以大大降低编码代价,提升编码性能。
也就是说,在本申请实施例中,若上述当前节点的预测模式是基于点云的预测参数确定的,而不是基于当前节点所包括的重复点个数确定的。即当前节点的预测模式在确定当前节点所包括的重复点个数之前已经确定时,上述S203还包括如下S203-A的步骤:
S203-A、编码端可以基于当前节点的预测模式,确定是否编码当前节点所包括的重复点个数。
本申请实施例中,编码端基于当前节点的预测模式,确定是否编码当前节点所包括的重复点个数的具体方法包括但不限于如下示例:
示例一,若当前节点的预测模式为N个特定预测模式中的一个预测模式时,则编码当前节点所包括的重复点个数,N为正整数。
也就是说,若当前节点的预测模式为N个特定预测模式中的一个预测模式时,则说明当前节点可能包括重复点,即当前节点所包括的重复点个数可能不是0。此时,编码端继续编码码流,得到当前节点所包括的重复点个数。
示例二,若当前节点的预测模式不是N个特定预测模式中的一个预测模式时,则省略编码当前节点所包括的重复点个数。
也就是说,若当前节点的预测模式不是上述N个预测模式中的一个预测模式时,则说明当前节点不包括重复点,即确定当前节点所包括的重复点个数为0。此时,编码端无需编码当前节点对应的重复点个数的字段,进而降低编码代价,提升编码性能。
上述示例一和示例二是以当前节点的重复点个数大于0时,限制当前节点的预测模式为N个预测模式中的一个预测模式时,编码端基于当前节点的预测模式,确定当前节点所包括的重复点个数的具体方法。在一些实施例中,若当前节点的重复点个数等于0时,限制当前节点的预测模式为N个预测模式中的一个预测模式时,则编码端在当前节点的预测模式为N个特定预测模式中的一个预测模式时,则确定当前节点所包括的重复点个数为0。在当前节点的预测模式不是N个特定预测模式中的一个预测模式时,则编码码流,得到当前节点所包括的重复点个数。
在一些实施例中,上述S203还包括如下S203-B的步骤:
S203-B、基于当前节点的预测模式,确定当前节点的几何残差值。
由上述可知,若当前节点的几何残差值为预设值时,则确定当前节点的预测模式为N个特定预测模式中的一个预测模式。因此,编码端在确定出当前节点的预测模式后,还可以基于该预测模式,确定出当前节点的几何残差值。例如,若当前节点的预测模式为N个特定预测模式中的一个预测模式时,则确定当前节点的几何残差值可能为0。若当前节点的预测模式不是N个特定预测模式中的一个预测模式时,则确定当前节点的几何残差值不为0。
举例说明,若当前节点的几何残差值为0时,则说明当前节点的预测模式不是Delta预测模式,而是Linear预测模式或Parallelogram预测模式。基于此,若当前节点的预测模式为Delta预测模式时,则确定当前节点的残差值不为0,若当前节点的预测模式为Linear预测模式或Parallelogram预测模式,则可以确定当前节点的几何残差值可能为0。
在一些实施例中,本申请实施例的方法还包括如下步骤:
步骤3、基于当前节点的预测模式,确定当前节点的几何残差值;
步骤4、基于几何残差值,对当前节点的预测模式进行编码。
在该实施例中,编码端确定当前节点的几何残差值,例如编码端基于当前节点的预测模式,确定当前节点的几何预测值,进而基于当前节点的几何信息和几何预测值,得到当前节点的几何残差值。接着,基于当前节点的几何残差值,对当前节点的预测模式进行编码。
本申请实施例对编码端基于几何残差值,对当前节点的预测模式进行编码的具体方法不进行限制。
在一些实施例中,编码端基于当前节点的几何残差值,确定当前节点的预测模式的编码方法。例如,若当前节点的几何残差值为0时,则确定当前节点的预测模式的编码方法为第一编码方法,多当前节点的几何残差值不为0时,则确定当前节点的预测模式的编码方法为第二编码方法。其中第一编码方法的编码代价小于第二编码方法的编码代价。
在一些实施例中,上述步骤4包括如下步骤41和步骤42:
步骤41、基于几何残差值,确定当前节点的预测模式对应的待编码比特个数;
步骤42、基于待编码比特个数,对当前节点的预测模式进行编码。
在该实施例中,编码端基于当前节点的几何残差值,确定当前节点的预测模式对应的待编码比特个数,进而基于该待编码比特个数,对当前节点的预测模式进行编码。
例如,若当前节点的几何残差值为预设值时,则确定待编码比特个数为第一待编码比特个数。
再例如,若当前节点的几何残差值非预测值时,则确定待解决比特个数为第二待编码比特个数。
其中,第一待编码比特个数小于第二待编码比特个数。
本申请实施例对上述预设值的具体取值不做限制。
在一种示例中,上述预测值为0。也就是说,若当前节点的残差值为0时,则说明当前节点的预测模式不是Mode1:Delta预测。此时,上述当前节点的预测模式可以为Mode2:Linear预测或Mode3:Parallelogram预测。此时,编码端在编码当前节点的预测模式可以省略1bit。需要说明的是,本申请实施例中,对于不同的二值化方法和熵编码方法,编码预测模式所对应的比特数不同。示例性的,若目前编码端采用固定的2比特编码预测模式时,例如用00指示不预测,01指示Delta预测,10指示Linear预测,11指示Parallelogram。而本申请实施例中,若当前节点的残差值为0时,则可以确定当前节点的预测模式为Linear或Parallelogram预测模式,此时编码端可以使用1比特对当前节点的预测模式进行编码,例如使用0指示Linear预测,1指示Parallelogram,进而省略了预测模式的高1bit。
基于此,编码端可以基于当前节点的残差值,来确定当前节点的预测模式对应的待编码比特个数。例如,若当前节点的残差值为0时,则确定待编码比特个数为第一待编码比特个数,若当前节点的残差值不是0时,则确定待编码比特个数为第二待编码比特个数,其中第一待编码比特个数小于第二待编码比特个数。
本申请实施例提供的点云编码方法,在基于预测树的点云编码中,编码端确定点云的预测参数和当前节点所包括的重复点个数中的至少一个,接着,基于点云的预测参数和当前节点所包括的重复点个数中的至少一个,确定当前节点的预测模式,进而基于当前节点的预测模式,对当前节点的几何信息进行编码。也就是说,本申请实施例中编码端通过点云的预测参数和/或当前节点所包括的重复点个数,来确定当前节点的预测模式,编码端无需采用相同的方法对预测树中的每个节点的预测模式进行编码,进而降低了预测模式的编码代价,进而提升了点云的编编码效率。
应理解,图9至图10仅为本申请的示例,不应理解为对本申请的限制。
以上结合附图详细描述了本申请的优选实施方法,但是,本申请并不限于上述实施方法中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方法中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方法进行组合,为了避免不必要的重复,本申请对各种可能的组合方法不再另行说明。又例如,本申请的各种不同的实施方法之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。另外,本申请实施例中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。具体地,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
上文结合图9至图10,详细描述了本申请的方法实施例,下文结合图11至图12,详细描述本申请的装置实施例。
图11是本申请实施例提供的点云解码装置的示意性框图。
如图11所示,该点云解码装置10可包括:
参数确定单元11,用于确定点云的预测参数和当前节点所包括的重复点个数中的至少一个,所述当前节点为点云的预测树中的一个节点;
模式确定单元12,用于基于所述预测参数和所述重复点个数中的至少一个,确定所述当前节点的预测模式;
解码单元13,用于基于所述预测模式,对所述当前节点的几何信息进行解码。
在一些实施例中,模式确定单元12,具体用于基于所述预测参数,确定所述当前节点的预测模式。
在一些实施例中,模式确定单元12,具体用于若所述预测参数指示所述点云对应的预测模式时,则确定所述点云对应的预测模式,并将所述点云对应的预测模式,确定为所述当前节点的预测模式;或者,若所述预测参数指示第一点云组对应的预测模式时,则确定所述当前节点所在的第一点云组对应的预测模式,并将所述第一点云组对应的预测模式,确定为所述当前节点的预测模式,所述第一点云组为所述点云被划分为M个点云组中的一个点云组,所述M为正整数。
在一些实施例中,模式确定单元12,具体用于将第一默认预测模式,确定为所述点云对应的预测模式;或者,解码所述码流,得到所述点云对应的预测模式。
在一些实施例中,模式确定单元12,具体用于将第二默认预测模式,确定为所述第一点云组对应的预测模式;或者,解码码流,得到所述第一点云组对应的预测模式。
在一些实施例中,模式确定单元12,具体用于基于所述重复点个数,确定所述当前节点的预测模式。
在一些实施例中,模式确定单元12,具体用于若所述重复点个数大于0,则将N个特定预测模式中的一个预测模式,确定为所述当前节点的预测模式,所述N为正整数。
在一些实施例中,解码单元13,具体用于若所述当前节点的预测模式是基于所述点云的预测参数确定的时,基于所述预测模式,确定是否解码所述当前节点所包括的重复点个数。
在一些实施例中,解码单元13,具体用于若所述当前节点的预测模式为N个特定预测模式中的一个预测模式时,则解码码流,得到所述当前节点所包括的重复点个数,所述N为正整数;若所述当前节点的预测模式不是N个特定预测模式中的一个预测模式时,则省略解码所述当前节点所包括的重复点个数。
在一些实施例中,模式确定单元12,还用于确定所述当前节点的几何残差值;基于所述几何残差值,确定所述当前节点的预测模式。
在一些实施例中,模式确定单元12,具体用于若所述几何残差值为预设值时,则确定所述当前节点的预测模式为N个特定预测模式中的一个预测模式,所述N为正整数。
在一些实施例中,解码单元13,具体用于基于所述预测模式,确定所述当前节点的几何残差值。
在一些实施例中,解码单元13,还用于确定所述当前节点的几何残差值;基于所述几何残差值,对所述当前节点的预测模式进行解码。
在一些实施例中,解码单元13,具体用于基于所述几何残差值,确定所述当前节点的预测模式对应的待解码比特个数;基于所述待解码比特个数,对所述当前节点的预测模式进行编码。
在一些实施例中,解码单元13,具体用于若所述几何残差值为预设值时,则确定所述待解码比特个数为第一待解码比特个数;若所述几何残差值为非预设值时,则确定所述待解码比特个数为第二待解码比特个数,所述第一待解码比特个数小于所述第二待解码比特个数。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图11所示的点云解码装置10可以对应于执行本申请实施例的点云解码方法中的相应主体,并且点云解码装置10中的各个单元的前述和其它操作和/或功能分别为了实现点云解码方法中的相应流程,为了简洁,在此不再赘述。
图12是本申请实施例提供的点云编码装置的示意性框图。
如图12所示,点云编码装置20包括:
参数确定单元21,用于确定点云的预测参数和当前节点所包括的重复点个数中的至少一个,所述当前节点为点云的预测树中的一个节点;
模式确定单元22,用于基于所述预测参数和所述重复点个数中的至少一个,确定所述当前节点的预测模式;
编码单元23,用于基于所述预测模式,对所当前节点的几何信息进行编码。
在一些实施例中,模式确定单元22,具体用于基于所述点云的预测参数,确定所述当前节点的预测模式。
在一些实施例中,模式确定单元22,具体用于若所述预测参数指示所述点云对应的预测模式时,则确定所述点云对应的预测模式,并将所述点云对应的预测模式,确定为所述当前节点的预测模式;或者,若所述预测参数指示第一点云组对应的预测模式时,则确定所述当前节点所在的第一点云组对应的预测模式,并将所述第一点云组对应的预测模式,确定为所述当前节点的预测模式,所述第一点云组为所述点云被划分为M个点云组中的一个点云组,所述M为正整数。
在一些实施例中,模式确定单元22,具体用于将第一默认预测模式,确定为所述点云对应的预测模式;或者,将预设的多个预测模式中的一个预测模式,确定为所述点云对应的预测模式;
在一些实施例中,模式确定单元22,具体用于将第二默认预测模式,确定为所述第一点云组对应的预测模式;或者,将预设的多个预测模式中的一个预测模式,确定为所述第一点云组对应的预测模式。
在一些实施例中,编码单元23,还用于将所述点云对应的预测模式编入码流;或者,将所述第一点云组对应的预测模式编入所述码流。
在一些实施例中,编码单元23,具体用于基于所述重复个数,确定所述当前节点的预测模式。
在一些实施例中,编码单元23,具体用于若所述当前节点所包括的重复点个数大于0,则将N个特定预测模式中的一个预测模式,确定为所述当前节点的预测模式,所述N为正整数。
在一些实施例中,所述当前节点的预测模式是基于所述预测参数确定的时,编码单元23,还用于基于所述当前节点的预测模式,确定是否编码所述当前节点的重复点个数。
在一些实施例中,编码单元23,具体用于若所述当前节点的预测模式为N个特定预测模式中的一个预测模式时,则编码所述当前节点的重复点个数,所述N为正整数;若所述当前节点的预测模式不是所述N个特定预测模式中的一个预测模式时,则省略编码所述当前节点的重复点个数。
在一些实施例中,编码单元23,具体用于基于所述预测模式,确定所述当前节点的几何残差。
在一些实施例中,编码单元23,具体用于基于所述预测模式,确定所述当前节点的几何残差;基于所述几何残差值,对所述当前节点的预测模式进行编码。
在一些实施例中,编码单元23,具体用于基于所述几何残差值,确定所述当前节点的预测模式对应的待编码比特个数;基于所述预测模式对应的待编码比特个数,对所述当前节点的预测模式进行编码。
在一些实施例中,编码单元23,具体用于若所述几何残差值为预设值时,则确定所述待编码比特为第一待编码比特个数;若所述几何差值为非预设值时,则确定所述待编码比特为第二待编码比特个数,所述第一待编码比特个数小于所述第二待编码比特个数。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图12所示的点云编码装置20可以对应于执行本申请实施例的点云编码方法中的相应主体,并且点云编码装置20中的各个单元的前述和其它操作和/或功能分别为了实现点云编码方法中的相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能单元的角度描述了本申请实施例的装置和系统。应理解,该功能单元可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件单元组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。可选地,软件单元可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。。
图13是本申请实施例提供的电子设备的示意性框图,图13的电子设备可以为上述的解码器或者为编码器。
如图13所示,该电子设备30可包括:
存储器31和处理器32,该存储器31用于存储计算机程序33,并将该程序代码33传输给该处理器32。换言之,该处理器32可以从存储器31中调用并运行计算机程序33,以实现本申请实施例中的方法。
例如,该处理器32可用于根据该计算机程序33中的指令执行上述方法200中的步骤。
在本申请的一些实施例中,该处理器32可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器31包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(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)。
在本申请的一些实施例中,该计算机程序33可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器31中,并由该处理器32执行,以完成本申请提供的录制页面的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序33在该电子设备中的执行过程。
如图13所示,该电子设备30还可包括:
收发器34,该收发器34可连接至该处理器32或存储器31。
其中,处理器32可以控制该收发器34与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器34可以包括发射机和接收机。收发器34还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备30中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。
本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地实现本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方法向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方法来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方法实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方法,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上内容,仅为本申请的具体实施方法,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。

Claims (20)

1.一种点云解码方法,其特征在于,包括:
确定点云的预测参数和当前节点所包括的重复点个数中的至少一个,所述当前节点为点云的预测树中的一个节点;
基于所述预测参数和所述重复点个数中的至少一个,确定所述当前节点的预测模式;
基于所述预测模式,对所述当前节点的几何信息进行解码。
2.根据权利要求1所述的方法,其特征在于,所述基于所述预测参数和所述重复点个数中的至少一个,确定所述当前节点的预测模式,包括:
基于所述预测参数,确定所述当前节点的预测模式。
3.根据权利要求2所述的方法,其特征在于,所述基于所述预测参数,确定所述当前节点的预测模式,包括:
若所述预测参数指示所述点云对应的预测模式时,则确定所述点云对应的预测模式,并将所述点云对应的预测模式,确定为所述当前节点的预测模式;
或者,
若所述预测参数指示第一点云组对应的预测模式时,则确定所述当前节点所在的第一点云组对应的预测模式,并将所述第一点云组对应的预测模式,确定为所述当前节点的预测模式,所述第一点云组为所述点云被划分为M个点云组中的一个点云组,所述M为正整数。
4.根据权利要求3所述的方法,其特征在于,所述确定所述点云对应的预测模式,包括:
将第一默认预测模式,确定为所述点云对应的预测模式;
或者,
解码码流,得到所述点云对应的预测模式。
5.根据权利要求3所述的方法,其特征在于,所述确定所述当前节点所在的第一点云组对应的预测模式,包括:
将第二默认预测模式,确定为所述第一点云组对应的预测模式;
或者,
解码码流,得到所述第一点云组对应的预测模式。
6.根据权利要求1所述的方法,其特征在于,所述基于所述预测参数和所述重复点个数中的至少一个,确定所述当前节点的预测模式,包括:
基于所述重复点个数,确定所述当前节点的预测模式。
7.根据权利要求6所述的方法,其特征在于,所述基于所述重复个数,确定所述当前节点的预测模式,包括:
若所述重复点个数大于0,则将N个特定预测模式中的一个预测模式,确定为所述当前节点的预测模式,所述N为正整数。
8.根据权利要求1-5任一项所述的方法,其特征在于,若所述当前节点的预测模式是基于所述点云的预测参数确定的时,所述基于所述预测模式,对所述当前节点的几何信息进行解码,包括:
基于所述预测模式,确定是否解码所述当前节点所包括的重复点个数。
9.根据权利要求8所述的方法,其特征在于,所述基于所述预测模式,确定是否解码所述当前节点所包括的重复点个数,包括:
若所述当前节点的预测模式为N个特定预测模式中的一个预测模式时,则解码码流,得到所述当前节点所包括的重复点个数,所述N为正整数;
若所述当前节点的预测模式不是N个特定预测模式中的一个预测模式时,则省略解码所述当前节点所包括的重复点个数。
10.根据权利要求1-7、8任一项所述的方法,其特征在于,所述方法还包括:
确定所述当前节点的几何残差值;
基于所述几何残差值,确定所述当前节点的预测模式。
11.根据权利要求10所述的方法,其特征在于,所述基于所述几何残差值,确定所述当前节点的预测模式,包括:
若所述几何残差值为预设值时,则确定所述当前节点的预测模式为N个特定预测模式中的一个预测模式,所述N为正整数。
12.根据权利要求1-7、8任一项所述的方法,其特征在于,所述基于所述预测模式,对所述当前节点的几何信息进行解码,包括:
基于所述预测模式,确定所述当前节点的几何残差值。
13.根据权利要求1-7、8任一项所述的方法,其特征在于,所述方法还包括:
确定所述当前节点的几何残差值;
基于所述几何残差值,对所述当前节点的预测模式进行解码。
14.根据权利要求13所述的方法,其特征在于,所述基于所述几何残差值,对所述当前节点的预测模式进行解码,包括:
基于所述几何残差值,确定所述当前节点的预测模式对应的待解码比特个数;
基于所述待解码比特个数,对所述当前节点的预测模式进行编码。
15.根据权利要求14所述的方法,其特征在于,所述基于所述几何残差值,确定所述当前节点的预测模式对应的待解码比特个数,包括:
若所述几何残差值为预设值时,则确定所述待解码比特个数为第一待解码比特个数;
若所述几何残差值为非预设值时,则确定所述待解码比特个数为第二待解码比特个数,所述第一待解码比特个数小于所述第二待解码比特个数。
16.一种点云编码方法,其特征在于,包括:
确定点云的预测参数和当前节点所包括的重复点个数中的至少一个,所述当前节点为点云的预测树中的一个节点;
基于所述预测参数和所述重复点个数中的至少一个,确定所述当前节点的预测模式;
基于所述预测模式,对所当前节点的几何信息进行编码。
17.一种点云解码装置,其特征在于,包括:
参数确定单元,用于确定点云的预测参数和当前节点所包括的重复点个数中的至少一个,所述当前节点为点云的预测树中的一个节点;
模式确定单元,用于基于所述预测参数和所述重复点个数中的至少一个,确定所述当前节点的预测模式;
解码单元,用于基于所述预测模式,对所述当前节点的几何信息进行解码。
18.一种点云编码装置,其特征在于,包括:
参数确定单元,用于确定点云的预测参数和当前节点所包括的重复点个数中的至少一个,所述当前节点为点云的预测树中的一个节点;
模式确定单元,用于基于所述预测参数和所述重复点个数中的至少一个,确定所述当前节点的预测模式;
编码单元,用于基于所述预测模式,对所当前节点的几何信息进行编码。
19.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现如上述权利要求1至15或16任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,用于存储计算机程序;
所述计算机程序使得计算机执行如上述权利要求1至15或16任一项所述的方法。
CN202310884479.9A 2023-07-18 2023-07-18 点云编解码方法、装置、设备及存储介质 Pending CN117354496A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310884479.9A CN117354496A (zh) 2023-07-18 2023-07-18 点云编解码方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310884479.9A CN117354496A (zh) 2023-07-18 2023-07-18 点云编解码方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117354496A true CN117354496A (zh) 2024-01-05

Family

ID=89362033

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310884479.9A Pending CN117354496A (zh) 2023-07-18 2023-07-18 点云编解码方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117354496A (zh)

Similar Documents

Publication Publication Date Title
US20220343548A1 (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) 用於在基於幾何形狀的點雲壓縮中的預測變換的預測器索引訊號傳遞
EP4258671A1 (en) Point cloud attribute predicting method, encoder, decoder, and storage medium
JP2023543752A (ja) 点群コーデック方法及びシステム、並びに点群エンコーダ及び点群デコーダ
CN117354496A (zh) 点云编解码方法、装置、设备及存储介质
WO2024065269A1 (zh) 点云编解码方法、装置、设备及存储介质
CN116866615A (zh) 点云编码方法及设备
WO2024065271A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2024065270A1 (zh) 点云编解码方法、装置、设备及存储介质
CN115474041B (zh) 点云属性的预测方法、装置及相关设备
CN115086716B (zh) 点云中邻居点的选择方法、装置及编解码器
WO2023024840A1 (zh) 点云编解码方法、编码器、解码器及存储介质
WO2023024842A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2024065272A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2023103565A1 (zh) 点云属性信息的编解码方法、装置、设备及存储介质
WO2024065406A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
US20240135597A1 (en) Enhanced Edge Neighborhood for Coding Vertex Information
US20240187648A1 (en) Coding Vertex Information of a Point Cloud
US20230412837A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
US20230206510A1 (en) Point cloud data processing device and processing method
WO2022257145A1 (zh) 点云属性的预测方法、装置及编解码器
CN115733990A (zh) 点云编解码方法、设备及存储介质
CN118055254A (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