CN117061770A - 一种点云处理方法、装置、设备、存储介质及产品 - Google Patents

一种点云处理方法、装置、设备、存储介质及产品 Download PDF

Info

Publication number
CN117061770A
CN117061770A CN202210488291.8A CN202210488291A CN117061770A CN 117061770 A CN117061770 A CN 117061770A CN 202210488291 A CN202210488291 A CN 202210488291A CN 117061770 A CN117061770 A CN 117061770A
Authority
CN
China
Prior art keywords
point
cache
limiting
point cloud
points
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
CN202210488291.8A
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 CN202210488291.8A priority Critical patent/CN117061770A/zh
Priority to PCT/CN2022/137750 priority patent/WO2023213074A1/zh
Publication of CN117061770A publication Critical patent/CN117061770A/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • 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
    • H04N19/423Methods 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 characterised by memory arrangements
    • 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

Landscapes

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

Abstract

本申请实施例提供了一种点云处理方法、装置、设备、存储介质及产品。其中方法包括:当需要对点云中的待编码点进行编码处理时,可以设置点云的限制参数,获取点云中待编码点的属性信息,对待编码点的属性信息进行编码,以及按照限制参数对编码过程进行控制;当需要对点云中的待解码点进行解码处理时,可以获取点云中待解码点的编码码流和点云的限制参数,对待解码点的编码码流进行解码,以及按照限制参数对解码过程进行控制。本申请实施例通过点云的限制参数,使得点云中各个点的属性信息的编解码过程可控,进而提高点云属性信息的编解码性能。

Description

一种点云处理方法、装置、设备、存储介质及产品
技术领域
本申请涉及计算机技术领域,具体涉及编解码技术领域,尤其涉及一种点云处理方法、一种点云处理装置、一种计算机设备、一种计算机可读存储介质及一种点云处理产品。
背景技术
随着科学技术的不断发展,目前已经能够以较低的成本、在较短的时间周期内获得大量高精度的点云,点云中可以包括多个点,点云中的每个点具备几何信息和属性信息。为了提升点云的传输效率,在对点云进行传输之前,通常需要对点云进行编码处理;具体来说,编码端对点云中各点的几何信息和属性信息进行编码后,可以将编码后的点云传输至解码端,解码端可以对编码后的点云进行解码,以重建点云中各点的几何信息和属性信息。实践发现,由于编码过程需要对各个点的属性信息进行整理,点云中各点的属性信息在编码时的等待时间较长,编码性能较低。
发明内容
本申请实施例提供了一种点云处理方法及相关设备,可以提高点云属性信息的编码性能。
一方面,本申请实施例提供了一种点云处理方法,该点云处理方法包括:
设置点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
获取点云中待编码点的属性信息;
对待编码点的属性信息进行编码;以及,
按照限制参数对编码过程进行控制。
本申请实施例中,当需要对点云中的待编码点进行编码处理时,可以设置点云的限制参数,获取点云中待编码点的属性信息,对待编码点的属性信息进行编码,以及按照限制参数对编码过程进行控制。本申请实施例通过设置点云的限制参数,使得待编码点的属性信息编码过程可控,进而提高点云属性信息的编码性能。
一方面,本申请实施例提供了另一种点云处理方法,该点云处理方法包括:
获取点云中待解码点的编码码流;
获取点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
对待解码点的编码码流进行解码;以及,
按照限制参数对解码过程进行控制。
本申请实施例中,当需要对点云中的待解码点进行解码处理时,可以获取点云中待解码点的编码码流和点云的限制参数,对待解码点的编码码流进行解码,以及按照限制参数对解码过程进行控制。本申请实施例通过获取点云的限制参数,使得待解码点的属性信息解码过程可控,进而提高点云属性信息的解码性能。
一方面,本申请实施例提供了一种点云处理装置,该点云处理装置包括:
设置单元,用于设置点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
获取单元,用于获取点云中待编码点的属性信息;
处理单元,用于对待编码点的属性信息进行编码;以及,按照限制参数对编码过程进行控制。
一方面,本申请实施例提供了另一种点云处理装置,该点云处理装置包括:
获取单元,用于获取点云中待解码点的编码码流,以及,获取点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
处理单元,用于对待解码点的编码码流进行解码;以及,按照限制参数对解码过程进行控制。
相应地,本申请实施例提供一种计算机设备,该计算机设备包括处理器和计算机可读存储介质;其中,处理器适于实现计算机程序,计算机可读存储介质存储有计算机程序,计算机程序适于由处理器加载并执行上述的点云处理方法。
相应地,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,使得计算机设备执行上述的点云处理方法。
相应地,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的点云处理方法。
本申请实施例中,当需要对点云中的待编码点进行编码处理时,可以设置点云的限制参数,获取点云中待编码点的属性信息,对待编码点的属性信息进行编码,以及按照限制参数对编码过程进行控制。当需要对点云中的待解码点进行解码处理时,可以获取点云中待解码点的编码码流和点云的限制参数,对待解码点的编码码流进行解码,以及按照限制参数对解码过程进行控制。本申请实施例通过点云的限制参数,使得点云中各个点的属性信息的编解码过程可控,进而提高点云属性信息的编解码性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本申请实施例提供的一种编码框架的示意图;
图1b为本申请实施例提供的一种当前点所在块及其父块邻居的关系示意图;
图2为本申请实施例提供的一种点云处理系统的架构图;
图3为本申请实施例提供的一种点云处理方法;
图4为本申请实施例提供的另一种点云处理方法;
图5为本申请实施例提供的又一种点云处理方法;
图6为本申请实施例提供的再一种点云处理方法;
图7为本申请实施例提供的一种点云处理装置的结构示意图;
图8为本申请实施例提供的另一种点云处理装置的结构示意图;
图9为本申请实施例提供的一种编码设备的结构示意图;
图10为本申请实施例提供的一种解码设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更清楚地理解本申请实施例提供的技术方案,在此先对本申请实施例涉及的关键术语进行介绍:
(1)点云(Point Cloud)。点云是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。可以根据不同的分类标准将点云划分为不同的类别,例如,按照点云的获取方式划分,可以分为密集型点云和稀疏型点云,又如,按照点云的时序类型划分,可以分为静态点云和动态点云。
(2)点云数据(Point Cloud Data)。点云中各个点具备的几何信息和属性信息共同组成点云数据。其中,几何信息也可以称为三维位置信息,点云中某个点的几何信息是指该点的空间坐标(x,y,z),可以包括该点在三维坐标系统的各个坐标轴方向上的坐标值,例如,X轴方向上的坐标值x,Y轴方向上的坐标值y和Z轴方向上的坐标值z。点云中某个点的属性信息可以包括以下至少一种:颜色信息、材质信息、激光反射强度信息(也可以称为反射率);通常,点云中的每个点具有相同数量的属性信息,例如,点云中的每个点都可以具有颜色信息和激光反射强度两种属性信息,又如,点云中的每个点都可以具有颜色信息、材质信息和激光反射强度信息三种属性信息。
(3)点云编码(Point Cloud Compression,PCC)。点云编码是指对点云中各点的几何信息和属性信息进行编码,得到压缩码流的过程。点云编码可以包括几何信息编码和属性信息编码两个主要过程。目前主流的点云编码技术,针对点云的不同类型,可以分为基于几何结构的点云编码以及基于投影的点云编码,在此以MPEG(Moving Picture ExpertGroup,国际视音频编解码标准)中的G-PCC(Geometry-based Point Cloud Compression,基于几何结构的点云编码),以及AVS(AudioVideoCodingStandard,中国国家视频编解码标准)中的点云编码标准AVS-PCC为例进行介绍。
G-PCC及AVS-PCC的编码框架大致相同,如图1a所示,可以分为几何信息编码过程以及属性信息编码过程。几何信息编码过程对点云数据中各点的几何信息进行编码,得到几何比特流;属性信息编码过程对点云数据中各点的属性信息进行编码,得到属性比特流;几何比特流和属性比特流共同组成点云数据的压缩码流。
对于几何信息编码过程,主要操作和处理可以参见如下描述:
①预处理(Pre-Processing):可以包括坐标变换(Transform Coordinates)和体素化(Voxelize)。通过缩放和平移的操作,将三维空间中的点云数据转换成整数形式,并将其最小几何位置移至坐标原点处。
②几何八叉树(Octree)编码:八叉树是一种树形数据结构,在三维空间划分中,对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用“1”和“0”指示,获得占用码信息(Occ upancy Code)作为点云几何信息的码流。包围盒是一种求解离散点集最优包围空间的算法,基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象。
③几何熵编码(Geometry Entropy Encoding):针对八叉树的占用码信息,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常用的统计编码方式是基于上下文的二值化算术编码(Content Adaptive Binary Arithmetic Coding,CABAC)。
对于属性信息编码过程,主要操作和处理可以参见如下描述:
①属性重上色(Recoloring):有损编码情况下,在几何信息编码后,需编码端解码并重建几何信息,即恢复点云中各点的几何信息。在原始的点云中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息。
②属性变换(Transform attributes)编码:采用属性变换算法(如DCT、Haar等),对属性信息进行分组、变换,对变换系数做量化;通过逆量化,逆变换后得到属性重建值;计算原始属性和属性重建值的差得到属性残差并对其量化;将量化后的变换系数和属性残差编码。
③属性信息量化(Attribute Quantization):量化的精细程度通常由量化参数来决定。在属性预测编码中,是对量化后的预测残差信息进行熵编码;在属性变换编码及属性预测变换编码中,是对量化后的变换系数进行熵编码。
④属性熵编码(Attribute Entropy Coding):量化后的预测残差信息或变换系数一般使用行程编码(Run Length Coding)及算数编码(Arithmetic Coding)实现最终的压缩。相应的编码模式,量化参数等信息也同样采用熵编码器进行编码。
(4)点云解码。点云解码是指对点云编码得到的压缩码流进行解码,以重建点云的过程;详细地说,是指基于压缩码流中的几何比特流和属性比特流,重建点云中各点的几何信息和属性信息的过程。在解码端获得压缩码流之后,对于几何比特流,首先进行熵解码,得到点云中各点量化后的几何信息,然后进行反量化,重建点云中各点的几何信息。而对于属性比特流,首先进行熵解码,得到点云中各点量化后的预测残差信息或量化后的变换系数;然后对量化后的预测残差信息进行反量化得到重建残差信息,对量化后的变换系数进行反量化得到重建变换系数,重建变换系数经反变换后得到重建残差信息,根据点云中各点的重建残差信息可以重建点云中各点的属性信息。将点云中各点重建的属性信息,按顺序与重建的几何信息一一对应,以重建点云。
此外,本申请还涉及如下技术:
(1)属性预测:
①点云重排序,具体过程如下:
获取点云的坐标(x,y,z),基于空间填充曲线生成每个点的莫顿(Morton)码或希尔伯特(Hilbert)码,并按照各个点进行编码处理时的编码顺序(如由小到大排序)进行排序,得到莫顿序或希尔伯特序。以几何坐标的莫顿码为例,点云中点的几何位置用三维笛卡尔坐标(X,Y,Z)表示。用N比特来表示每个坐标值,k-th点的坐标(Xk,Yk,Zk)可以表示成:
k-th点对应的莫顿码可以表示如下:
将每三个比特用八进制数表示,则k-th点对应的莫顿码可以表示成:
②基于序的邻居点选择,具体过程如下:
基于序的邻居点选择包括基于距离的选择方法、基于空间关系和距离的选择方法。下面对上述方法进行介绍:
i)基于距离的方法,具体步骤如下:
在莫顿序或希尔伯特序的前P个邻居候选点中,P可以由最大邻居数量字段(maxNumOfNeighbours)确定,计算每个邻居候选点(第i个邻居候选点表示为(xi,yi,zi)),到当前待解码点(x,y,z)的曼哈顿距离d=|x-xi|+|y-yi|+|z-zi|。在得到每个邻居候选点到当前待解码点(x,y,z)的曼哈顿距离后,可以将曼哈顿距离最短的k个邻居候选点作为当前待解码点的邻居;或者,确定k个曼哈顿距离最短的点中的最大距离值,将所有曼哈顿距离小于等于最大距离值的邻居候选点作为当前点的邻居,最终确定曼哈顿距离最近的m个点作为当前待解码点的最近邻,m,k为正整数,且m≤k。
ii)基于空间关系和距离的选择方法,具体步骤如下:
首先,确定初始块大小,即确定各点对应码字的初始右移位数N。在此基础上,N+3则为对应的父块范围。
然后,点云按照一定顺序遍历,如图1b所示,当前待解码点(点P)在其所在B块的父块及与其共面、共线以及共点的邻居块的范围内的已解码点(限制在前k个点的范围内)进行最近邻的搜索。
若按照上述方法确定的当前待解码点的邻居点数量不足,则按i)中基于距离的方法进行邻居点选择。
③预测值计算,具体过程如下:
设每个邻居的属性重建值为则当前点的属性预测值/>为:
i)基于距离的加权计算:
在一种实施方式中,用当前待解码点与邻居点之间的曼哈顿距离的倒数作为权重,最后计算k个邻居点的属性重构值的加权平均获得属性预测值。设当前待解码点的几何坐标为(xi,yi,zi),第j个邻居点的几何坐标为(xij,yij,zij),则第j个邻居点的权重wij为:
在另一种实施方式中,若在x、y、z方向的分量采用不同权重,则第j个邻居点的权重wij为:
ii)基于距离和其他参数的加权计算:
当前待解码点的每个邻居点的权重为w=1/d,距离等于最大距离值的邻居候选点的优化权重为wm=(1/d)*dwm,其中dwm大小为Qstep(属性量化步长)和距离等于最大距离值的邻居候选点的个数两者之间的最小值。
(2)属性变换:
属性变换的核心是预测与变换融合的属性编码,具体过程如下:
首先,对经过颜色空间转换和重着色的待编码点云,按照希尔伯特码由小到大进行重排序,然后采用自适应的分组和相应的K元变换。具体过程如下:
i)点云分组:
基于空间填充曲线的序对点云依次进行分组,将希尔伯特码前L位相同的点归为一组。当同组的点数多于预设限制点数时,进行细分组。此外,在分组时还可以根据前序组的分组点数情况进行调整。
ii)组内预测:
预测点选择范围在当前组第一个点的前序P个点中,P可以由最大邻居数量字段(maxNumOfNeighbours)确定。对这P个点进行逐点预测,并对各组选择或计算统一的预测值。例如,采用当前组的第一个点的预测值作为当前组的预测值。
iii)基于残差值变换:
每组点的预测属性残差值进行K_i元离散余弦变换(DCT for Discrete CosineTransform,DCT变换),其中,K_i=2…8,将变换系数进行量化熵编码。当K_i=1时,无需进行任何变换计算,直接将属性残差值进行量化熵编码。对所得变换系数进行量化。
(3)熵编码:
对量化(有损情况下)后的有符号属性预测残差或变换系数进行二值化和处理。熵编码可以采用变长编码、基于上下文的自适应二进制算术编码、行程编码等方式,具体地:
①变长编码:
采用不同长度的码字表示需要编码的残差或系数。需要根据符号出现的概率设计码长。常用的变长编码包括指数哥伦布编码(exp-Golomb)和算术编码。
②基于上下文的自适应二进制算术编码(CABAC),主要包括如下步骤:
二值化:CABAC使用二进制算数编码,这意味着仅仅有两个数字(1或0)被编码。一个非二进制的数值符号,比如一个转换系数或者运动适量,在算术编码之前会首先被二值化或者转化成二进制码字。这个过程类似于将一个数值转化成可变长码字。在具体实现过程中,这个二进制码字在传输之前会通过算术编码器进一步的编码。
上下文模型选择:上下文模型是一个概率模型,这个模型是根据最近的被编码的数据符号的统计数字而选择的一个模型。这个模型保存了每个‘bin’是1或者0的概率。
算术编码:算术编码器根据选择的概率模型,对每一个‘bin’进行编码。
概率更新:被选中的上下文模型会根据实际的编码值而去更新。例如,如果‘bin’的值是1,那么1的频率计数会增加。
③行程编码(run-length coding):
统计数据中连续为特定符号的点数记为行程长度run-length。若当前符号为零,则run-length值增加1;若非零,则首先对run_length值进行编码,然后对该非零属性预测残差进行编码,最后将run-length值设置为0重新开始计数。其残差可采用常用的熵编码方法,如变长编码或CABAC。
具体的,行程编码分为定长行程编码和变长行程编码两种。定长行程编码是指编码的行程所使用的二进制位数固定。变长行程编码是指对不同范围的行程使用不同位数的二进制位数进行编码,需要增加标志位来表明所使用的二进制位数。
基于上述关于点云、点云数据、点云编码、点云解码、属性预测、属性变换和熵编码的相关描述,本申请实施例提供了一种点云处理方案,当需要对点云中的待编码点进行编码处理时,可以设置点云的限制参数,获取点云中待编码点的属性信息,对待编码点的属性信息进行编码,以及按照限制参数对编码过程进行控制。当需要对点云中的待解码点进行解码处理时,可以获取点云中待解码点的编码码流和点云的限制参数,对待解码点的编码码流进行解码,以及按照限制参数对解码过程进行控制。本申请实施例通过点云的限制参数,使得点云中各个点的属性信息的编解码过程可控,进而提高点云属性信息的编解码性能。
本申请实施例提供的点云处理方案还可与云技术中的云计算、云存储等技术结合。其中,云计算(Cloud Computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务,云计算可为点云属性的编码阶段和点云属性的解码阶段提供强大的计算支持,这样可以大大提升点云属性的编码效率,提升点云属性的解码效率。云存储(Cloud Storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统,云存储可为点云属性的编码阶段和点云属性的解码阶段提供强大的存储支持,这样可进一步提升点云属性的编码效率,提升点云属性的解码效率。
此外,本申请实施例提供的点云处理方案还可与人工智能结合。人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
AI技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大应用程序的处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是AI的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习/深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
深度学习:深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。本申请实施例主要涉及通过训练数据集,对编解码过程中所使用的模型进行优化训练。例如,可以通过训练数据集对初始模型进行训练,得到上下文模型。
基于上述描述,下面结合图2对适于实现本申请实施例提供的点云处理方案的点云处理系统进行介绍。如图2所示,点云处理系统20中可以包括编码设备201和解码设备202,编码设备201可以是终端,也可以是服务器,解码设备202可以是终端,也可以是服务器,编码设备201和解码设备202之间可以建立通信连接。其中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
(1)对于编码设备201:
编码设备201可以获取点云数据(即点云中各点的几何信息和属性信息),点云数据可以通过场景捕获或设备生成两种方式获取得到。场景捕获点云数据是指通过编码设备201关联的捕获设备采集真实世界的视觉场景得到点云数据;其中,捕获设备用于为编码设备201提供点云数据的获取服务,捕获设备可以包括但不限于以下任一种:摄像设备、传感设备、扫描设备;其中,摄像设备可以包括普通摄像头、立体摄像头、以及光场摄像头等,传感设备可以包括激光设备、雷达设备等,扫描设备可以包括三维激光扫描设备等;编码设备201关联的捕获设备可以是指设置于编码设备201中的硬件组件,例如捕获设备是终端的摄像头、传感器等,编码设备关联的捕获设备也可以是指与编码设备201相连接的硬件装置,例如与服务器相连接的摄像头等。设备生成点云数据是指编码设备201根据虚拟对象(例如通过三维建模得到的虚拟三维物体及虚拟三维场景)的生成点云数据。
编码设备201可以对点云中各点的几何信息进行编码处理,得到几何比特流(包含点云中各点的几何编码信息),以及可以对点云中各点的属性信息进行编码处理,得到属性比特流(包含点云中各点的属性编码信息)。特别地,编码设备201对点云中的待编码点的属性信息进行编码处理时,可以设置点云的限制参数,基于点云的限制参数,对获取的待编码点的属性信息进行编码,从而编码过程进行控制。在得到点云的压缩码流后,编码设备201将压缩码流(即属性比特流和几何比特流)传输至解码设备202。
(2)对于解码设备202:
解码设备202接收到编码设备201传输的压缩码流(即属性比特流和几何比特流)后,可以对几何比特流进行解码处理,重建点云中各点的几何信息,以及可以对属性比特流进行解码处理,得到点云中各点的属性信息。特别地,解码设备202对点云中的待解码点进行解码处理时,可以获取点云的限制参数,并基于点云的限制参数对获取的待解码点的编码码流进行解码,从而对解码过程进行控制。在得到点云中各点的重建几何信息和重建属性信息后,解码设备202将点云中各点的重建几何信息和重建属性信息一一对应,以重建点云。
本申请实施例中,当需要对点云中的待编码点进行编码处理时,可以设置点云的限制参数,获取点云中待编码点的属性信息,对待编码点的属性信息进行编码,以及按照限制参数对编码过程进行控制。当需要对点云中的待解码点进行解码处理时,可以获取点云中待解码点的编码码流和点云的限制参数,对待解码点的编码码流进行解码,以及按照限制参数对解码过程进行控制。本申请实施例通过点云的限制参数,使得点云中各个点的属性信息的编解码过程可控,进而提高点云属性信息的编解码性能。可以理解的是,本申请实施例描述的点云处理系统是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
基于上述点云处理系统的相关描述,下面结合附图对本申请实施例提供的点云处理方案进行更为详细地介绍。
请参阅图3,图3为本申请实施例提供的一种点云处理方法,该点云处理方法可以由计算机设备执行,该计算机设备具体可以是图2所示的点云处理系统20中的编码设备201。如图3所示,该点云处理方法可以包括以下步骤S301-步骤S303:
S301、设置点云的限制参数。
限制参数用于设置对点云中待编码点的属性信息进行编码的触发条件。限制参数可以包括缓存限制参数和延迟限制参数中的至少一种;其中,缓存限制参数用于对编码过程中的缓存逻辑进行控制,例如,当缓存队列中的待编码点的属性信息对应的中间系数(如待编码点的属性信息对应的残差、变换系数等)的数量满足基于缓存限制参数设置的触发条件(如缓存队列中的待编码点的属性信息对应的中间系数的数量达到缓存参数所指示的缓存阈值)时,计算机设备(编码设备)对缓存队列中的待编码点的属性信息对应的中间系数进行编码;类似地,延迟限制参数用于对编码过程中的编码逻辑进行控制,例如,当待编码点的属性信息对应的中间系数的延迟数量满足基于延迟限制参数设置的触发条件(如待编码点的属性信息对应的中间系数的延迟数量达到延迟参数所指示的延迟阈值)时,计算机设备(编码设备)对待编码点的属性信息对应的中间系数进行编码,延迟数量用于指示当前待编码点的属性信息对应的中间系数的数量。
限制参数的设置方式包括以下任一种或多种:将限制参数设置为默认值;将限制参数设置为固定值,并将设置好的限制参数封装至编码形成的编码码流中;将限制参数设置为可变值,并将设置好的限制参数封装至编码形成的编码码流中,例如,在编码码流1中将限制参数设置为a,在编码码流2中将限制参数设置为b,在编码码流3中将限制参数设置为c,且a,b,c互不相同;在编码过程中动态调整限制参数的值,并将动态调整后的限制参数封装至编码形成的编码码流中;以编码为行程编码为例,计算机设备可以统计前Q个行程的长度,并根据前Q个行程的长度动态调整限制参数的值,并将动态调整后的限制参数封装至编码形成的编码码流中。可以理解的是,若未对限制参数进行设置,则限制参数为默认值。
S302、获取点云中待编码点的属性信息。
待编码点的属性信息可以包括以下至少一种:颜色信息、材质信息、激光反射强度信息(也可以称为反射率);通常,点云中的每个点具有相同数量的属性信息,例如,点云中的每个点都可以具有颜色信息和激光反射强度两种属性信息,又如,点云中的每个点都可以具有颜色信息、材质信息和激光反射强度信息三种属性信息。待编码点的属性信息可以是基于采集设备(如摄像机、3D激光扫描仪)采集的数据生成的,也可以是计算机根据虚拟三维物体及场景直接生成的。
S303、对待编码点的属性信息进行编码,以及按照限制参数对编码过程进行控制。
对待编码点的属性信息进行编码的方式包括:以点数为单位对待编码点的属性信息进行编码,以及以组数为单位对待编码点的属性信息进行编码。以点数为单位进行编码是指将点云中的一个点作为基本编码单位进行编码;以组数为单位进行编码是指将点云中的一个分组(一个分组中可以包括点云中的至少一个点)作为基本编码单位进行编码。
在一种实施方式中,计算机设备以点数为单位对待编码点的属性信息进行编码的实施方式为:对待编码点的属性信息进行转换处理,得到待编码点的中间系数;其中,对待编码点的属性信息进行转换处理可以是:对待编码点的属性信息进行预测,得到待编码点的预测信息与待编码点的属性信息之间的残差;也可以是:在得到残差后,对残差进行变换得到变换系数;也就是说,对待编码点的属性信息进行转换处理,得到的待编码点的中间系数可以是残差或变换系数。
在得到待编码点的中间系数后,计算机设备可以将待编码点的中间系数写入至缓存中,并从缓存中读取待编码点的中间系数进行编码;例如,计算机设备可以将待编码点的中间系数写入至基于缓存限制参数设置的缓存队列中,当缓存队列中存满(如缓存队列汇总存储的待编码点的中间系数达到缓存阈值)时,计算机设备从缓存队列中读取待编码点的中间系数进行编码。计算机设备也可以获取当前待编码点的中间系数的延迟数量,若当前待编码点的中间系数的延迟数量达到延迟阈值,则计算机设备对当前待编码点的中间系数进行编码。计算机设备对待编码点的中间系数进行编码的具体实施方式可参考上述点云编码的实施方式,在此不再赘述。
在另一种实施方式中,计算机设备以组数为单位对待编码点的属性信息进行编码的实施方式为:对待编码点的属性信息进行分组处理,得到多组点云分组。分组的依据可以根据实际编码需求进行设定,在一个实施例中,计算机设备可以基于空间填充曲线的序对待编码点的属性信息进行分组;例如,计算机设备可以将希尔伯特码前L位相同的待编码点的属性信息归为一组。在得到多组点云分组后,计算机设备可以对点云分组中的待编码点的属性信息进行转换处理,得到转换后的点云分组;对点云分组中的待编码点的属性信息进行转换的具体实施方式可参考上一实施例,在此不再赘述,转换后的点云分组中包含待编码点的中间系数,中间系数包括残差或变换系数。
在得到转换后的点云分组后,计算机设备可以将转换后的点云分组写入至缓存中,并从缓存中依次读取转换后的点云分组中的待编码点的中间系数进行编码;例如,计算机设备可以将转换后的点云分组写入至基于缓存限制参数设置的缓存队列中,当缓存队列中存满(如缓存队列中存储的转换后的点云分组达到缓存阈值)时,计算机设备从缓存队列中读取转换后的点云分组进行编码。计算机设备也可以获取当前转换后的点云分组的延迟数量,若当前转换后的点云分组的延迟数量达到延迟阈值,则计算机设备对当前转换后的点云分组进行编码。计算机设备对转换后的点云分组进行编码的具体实施方式可参考上述点云编码的实施方式,在此不再赘述。
本申请实施例中,当需要对点云中的待编码点进行编码处理时,可以设置点云的限制参数,获取点云中待编码点的属性信息,对待编码点的属性信息进行编码,以及按照限制参数对编码过程进行控制。本申请实施例通过设置点云的限制参数,使得待编码点的属性信息编码过程可控,进而提高点云属性信息的编码性能。
请参阅图4,图4为本申请实施例提供的另一种点云处理方法,该点云处理方法可以由计算机设备执行,该计算机设备具体可以是图2所示的点云处理系统20中的编码设备201。如图4所示,该点云处理方法可以包括以下步骤S401-步骤S405:
S401、设置点云的限制参数。
限制参数包括缓存限制参数(coeffLengthControl)和延迟限制参数(maxNumofCoeff)中的一种或两种。限制参数用于确定编码限制点数阈值。
在一种实施方式中,限制参数仅包含一种参数时,限制参数的单位包括以下任一种:以点数为单位,以组数为单位。以点数为单位进行限制是指当以点数为单位进行编码时,限制待编码点的个数;以组数为单位进行限制是指当以组数为单位进行编码时,限制待编码的分组的组数。当限制参数为缓存限制参数时,编码限制点数阈值为缓存限制点数阈值;缓存限制参数的单位可以是点数,或者是组数。类似地,当限制参数为延迟限制参数时,编码限制点数阈值为延迟限制点数阈值;延迟限制参数的单位可以是点数,或者是组数。具体来说:
若限制参数以点数为单位,且限制参数的值为X1,则编码限制点数阈值为X1个待编码点的中间系数的实际总数量;例如,假设限制参数为缓存限制参数,以点数为单位,且缓存限制参数的值为1024,则编码限制点数阈值为1024个待编码点的中间系数的实际总数量;又例如,假设限制参数为延迟限制参数,以点数为单位,且延迟限制参数的值为2048,则编码限制点数阈值为2048个待编码点的中间系数的实际总数量。
若缓存限制参数以组数为单位,且限制参数的值为X2,则编码限制点数阈值为X2组点云分组中的待编码点的中间系数的实际总数量;例如,假设限制参数为缓存限制参数,以组数为单位,且缓存限制参数的值为64,则编码限制点数阈值为64组点云分组中的待编码点的中间系数的实际总数量;假设限制参数为延迟限制参数,以组数为单位,且延迟限制参数的值为128,则编码限制点数阈值为128组点云分组中的待编码点的中间系数的实际总数量。
若限制参数以组数为单位,且限制参数的值为X3,并且每组点云分组的点数限制为X4,则编码限制点数阈值为X3组点云分组中的待编码点的中间系数的总数量,总数量不超过X3*X4的值。例如,假设限制参数为缓存限制参数,以组数为单位,且缓存限制参数的值为64,并且每组点云分组的点数限制为4,则编码限制点数阈值为64组点云分组中的待编码点的中间系数的实际总数量,总数量不超过64*4=256;假设限制参数为延迟限制参数,以组数为单位,且延迟限制参数的值为128,并且每组点云分组的点数限制为4,则编码限制点数阈值为128组点云分组中的待编码点的中间系数的实际总数量,总数量不超过128*4=512。
在另一种实施方式中,当限制参数包含两种参数时,限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位和以倍数关系为单位;其中,限制参数1以倍数为单位是指:当限制参数2以点数为单位限制待编码的点数的数量时,限制参数1以点数为单位限制待编码的点数的数量,且限制参数1是限制待编码的点数的数量是限制参数2限制待编码的点数的数量的倍数;具体来说,若缓存限制参数以倍数关系为单位,且缓存限制参数的值为Y1,则缓存限制点数阈值是延迟限制点数阈值的Y1倍;若延迟限制参数以倍数关系为单位,且延迟限制参数的值为Y2,则延迟限制点数阈值是缓存限制点数阈值的Y2倍;例如,假设延迟限制参数(限制参数1)以倍数为单位,且值为2;当缓存限制参数(限制参数2)以点数为单位,且缓存限制参数的值为1024时,延迟限制参数以点数为单位,且延迟限制参数的值为1024*2=2048。
当限制参数2以组数为单位限制待编码分组的数量时,限制参数1以组数为单位限制待编码分组的数量,且限制参数1是限制待编码分组的数量是限制参数2限制待编码分组的数量的倍数;具体来说,若缓存限制参数以倍数关系为单位,且缓存限制参数的值为Y1,则缓存限制点数阈值是延迟限制点数阈值的Y1倍;若延迟限制参数以倍数关系为单位,且延迟限制参数的值为Y2,则延迟限制点数阈值是缓存限制点数阈值的Y2倍;例如,假设延迟限制参数(限制参数1)以倍数为单位,且值为2;当缓存限制参数(限制参数2)以组数为单位,且缓存限制参数的值为64时,延迟限制参数以组数为单位,且延迟限制参数的值为64*2=128。
由上述可知,组合的方式包括:限制参数1和限制参数2均以点数为单位,或者以组数为单位;限制参数1以点数为单位,限制参数2以组数为单位,或者限制参数2以倍数为单位;限制参数1以组数为单位,限制参数2以点数为单位,或者限制参数2以倍数为单位。可以理解的是,上述限制参数1可以是缓存限制参数和延迟限制参数中的任一个,上述限制参数2是缓存限制参数和延迟限制参数中的另一个。
S402、获取点云中待编码点的属性信息。
步骤S402的具体实施方式可参考图3中步骤S302的实施方式,在此不再赘述。
当限制参数为缓存限制参数时,继续执行步骤S403;当限制参数为延迟限制参数时,继续执行步骤S404;当限制参数包括缓存限制参数和延迟限制参数时,继续执行步骤S405。
S403、对待编码点的属性信息进行编码,以及按照缓存限制参数对编码过程中的缓存逻辑进行控制。
在一种实施方式中,缓存限制参数用于限制缓存中允许写入的待编码点的数量,每个待编码点可以包括一个或多个中间系数。计算机设备根据缓存限制参数确定缓存限制点数阈值,每当缓存中写入的待编码点的数量达到缓存限制点数阈值时,计算机设备从缓存中读取待编码点的中间系数进行编码。
在一个实施例中,编码方式为以组数为单位的编码方式,即将点云中的一个分组作为基本编码单位进行编码。计算机设备统计缓存中每组点云分组中包含的待编码点的总点数,当缓存中存储的分组数量为M,且这M组点云分组包含的待编码点的总点数达到缓存限制点数阈值时,计算机设备从缓存中读取这M组点云分组中包含的待编码点的中间系数进行编码。进一步地,计算机设备清空缓存,并继续将待编码点的中间系数写入缓存中。
在另一个实施例中,编码方式为以组数为单位的编码方式,即将点云中的一个分组作为基本编码单位进行编码。计算机设备统计缓存中包含的点云分组数M,基于M和点云分组的点数限制阈值计算缓存中包含的待编码点的总点数;例如,设M=64,点数限制阈值为8,则缓存中包含的待编码点的总点数=64*8=512。若缓存中包含的待编码点的总点数达到缓存限制点数阈值,则计算机设备控制从缓存中读取M组点云分组包含的待编码点的中间系数进行编码。进一步地,计算机设备清空缓存,并继续将待编码点的中间系数写入缓存中。
在另一种实施方式中,编码方式为以组数为单位的编码方式,即将点云中的一个分组(一个分组中可以包括点云中的至少一个点)作为基本编码单位进行编码。计算机设备根据缓存限制参数确定缓存中允许写入的点云分组的组数阈值;每当缓存中写入的点云分组的数量达到组数阈值时,计算机设备从缓存中读取缓存中写入的点云分组包含的待编码点的中间系数进行编码。例如,若缓存限制参数的值为64,则计算机设备根据缓存限制参数确定缓存中允许写入的点云分组的组数为64,每当缓存中写入的点云分组的数量为64时,计算机设备从缓存中读取这64组点云分组包含的待编码点的中间系数进行编码。
进一步地,计算机设备可以按照预设排列方式对缓存中写入的点云分组进行排列,并将预设排列方式封装至编码形成的编码码流中;计算机设备将缓存中的点云分组的中间系数排列方式封装至编码形成的编码码流中的一种具体实现方式为:每种排列方式对应一个索引值,计算机设备将缓存中点云分组的中间系数排列方式对应的索引值写入至编码码流中。计算机设备也可以按照预设排列方式对缓存中写入的点云分组进行排列,并将预设排列方式直接发送给解码设备;计算机设备还可以按照默认排列方式对缓存中写入的点云分组进行排列。可以理解的是,按照默认排列方式对缓存中写入的点云分组进行排列时,计算机设备无需告知解码设备排列方式。其中,预设排列方式包括以下任一种:固定排列方式和动态排列方式;固定排列方式是指每次缓存的点云分组的中间系数排列方式(如按照相似度、按照分组中包含的待编码点的点数等)相同,动态排列方式是指缓存的点云分组的中间系数排列方式存在变化;例如,第一次缓存的点云分组的中间系数排列方式与第二次缓存的点云分组的中间系数排列方式相同,且第三次缓存的点云分组的中间系数排列方式不同。
在再一种实施方式中,编码包括行程编码,计算机设备根据缓存限制参数确定缓存中允许写入的待编码点的缓存限制点数阈值,缓存限制点数阈值用于限制编码过程中允许写入缓存的待编码点的数量阈值;缓存限制点数阈值的确定方式可以参考步骤S401中编码限制点数阈值的确定方式,在此不再赘述。在行程编码过程中,计算机设备设置用于对连续特定符号进行计数的行程长度。在开始时,将行程长度设置为初始值,在从缓存中顺序读取待编码点的中间系数的过程中,若读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长;若读取的待编码点的数量等于缓存限制点数阈值,则对当前行程长度进行编码,或者对缓存限制点数阈值和值为特定符号的待编码点的中间系数进行编码,并将行程长度设置为初始值以重新计数。若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数。
举例来说,设缓存限制参数以点数为单位,且值为1024(即缓存限制点数为1024),若计算机设备采用行程编码对待编码点的属性信息的残差进行编码,则计算机设备统计待编码点的属性信息的残差中连续为特定符号(如0)的点数,记为run-length,若当前待编码点的属性信息的残差为特定符号,则run-length值增加1,每当缓存中待编码点的点数达到1024时,计算机设备编码run-length的值和当前编码点的属性信息的残差,将run-length设置为初始值(如0),并重新对run-length进行计数。若当前待编码点的属性信息的残差为非特定符号(如非0),则计算机设备对当前run-length值以及当前待编码点的属性信息的残差进行编码,将run-length设置为初始值(如0),并重新对run-length进行计数。
S404、对待编码点的属性信息进行编码,以及按照延迟限制参数对编码过程中的延迟逻辑进行控制。
计算机设备对待编码点的属性信息进行编码的具体编码方式为需要对前序进行统计的编码方式;例如,计算机设备对待编码点的属性信息进行编码的具体编码方式可以是行程编码。下面以编码方式为行程编码为例进行说明:
在一种实施方式中,计算机设备根据延迟限制参数确定延迟限制点数阈值,延迟限制点数阈值用于限制编码过程中允许延迟的待编码点的数量阈值;延迟限制点数阈值的确定方式可以参考步骤S401中编码限制点数阈值的确定方式,在此不再赘述。在行程编码的过程中,设置用于对连续特定符号进行计数的行程长度,将行程长度设置为初始值(如0),在从缓存中顺序读取待编码点的中间系数的过程中,若计算机设备读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长,计算机设备获取行程长度的计数值,若行程长度的计数值达到延迟限制点数阈值,则计算机设备进行参数编码处理,并将行程长度重置为初始值以重新计数。其中,计算机设备进行参数编码处理是指:计算机设备对当前行程长度进行编码;或者,计算机设备对限制标识符进行编码,限制标识符用于将行程长度设置为预设值(如预设值可以是延迟限制点数阈值);或者,计算机设备对延迟限制点数阈值,以及值为特定符号的待编码点的中间系数进行编码。若计算机设备读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数。
举例来说,假设当前行程长度为63,特定符号为0,延迟限制点数阈值为64;若计算机设备读取到待编码点的中间系数的值为0,则当前行程长度为63+1=64,计算机设备对当前行程长度(64)进行编码,或者计算机设备对限制标识符进行编码,或者计算机设备对延迟限制点数阈值(64),以及值为特定符号的待编码点的中间系数进行编码,并将行程长度重置为初始值以重新计数;若计算机设备读取到待编码点的中间系数的值为1(非0),则计算机设备对当前行程长度(63),及值为1的待编码点的中间系数进行编码,并将行程长度重置为初始值以重新计数。
在另一种实施方式中,计算机设备根据延迟限制参数确定延迟限制点数阈值,延迟限制点数阈值用于限制编码过程中允许延迟的待编码点的数量阈值,延迟限制点数阈值的确定方式可以参考步骤S401中编码限制点数阈值的确定方式,在此不再赘述。在行程编码的过程中,设置用于对连续特定符号进行计数的行程长度,将行程长度设置为初始值(如0),在从缓存中顺序读取待编码点的中间系数的过程中,若计算机设备读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长;若待编码点的数量达到延迟限制点数阈值,则计算机设备对当前行程长度进行编码,或者计算机设备对延迟限制点数阈值和值为特定符号的待编码点的中间系数进行编码,并将行程长度重置为初始值以重新计数。若计算机设备读取到值为非特定符号的待编码点的中间系数,则计算机设备对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数。
举例来说,假设当前延迟的中间系数的数量为58,特定符号为0,允许延迟的待编码点的数量阈值为64;若计算机设备读取到待编码点的中间系数的值为0,则当前行程长度为58+1=59,计算机设备继续读取下一个中间系数;若计算机设备读取到待编码点的中间系数的值为1(非0),则计算机设备对当前行程长度(59),及值为1的待编码点的中间系数进行编码,并将行程长度重置为初始值以重新计数。
可以理解的是,在上述实施例中行程编码中的行程长度小于或等于延迟限制点数阈值;基于此,计算机设备还可以按照延迟限制点数阈值设置行程长度的比特位数。
举例来说,设延迟限制参数以点数为单位,且值为1024(即延迟限制点数为1024),若计算机设备采用行程编码对待编码点的属性信息的残差进行编码,则计算机设备统计待编码点的属性信息的残差中连续为特定符号(如0)的点数,记为run-length,若当前待编码点的属性信息的残差为特定符号,则run-length值增加1,每当run-length的值达到1024时,计算机设备编码run-length的值和当前编码点的属性信息的残差,将run-length设置为初始值(如0),并重新对run-length进行计数。若当前待编码点的属性信息的残差为非特定符号(如非0),则计算机设备对当前run-length值以及当前待编码点的属性信息的残差进行编码,将run-length设置为初始值(如0),并重新对run-length进行计数。
S405、对待编码点的属性信息进行编码,以及按照缓存限制参数和延迟限制参数对编码过程中的编码逻辑进行控制。
在一种实施方式中,缓存限制参数和延迟限制参数相互独立。以待编码点的属性信息的中间系数为变换系数为例,计算机设备首先按照缓存限制参数对编码过程中的缓存逻辑进行控制;具体的实施方式可参考步骤S403中的实施方式,在此不再赘述。若以组为单位进行编码,则在将点云分组的中间系数进行缓存后,计算机设备可以对点云分组的中间系数进行排列,并可以将排列方式写入至编码码流中;或者,直接向解码设备指定排列方式。计算机设备清空缓存并重复上述步骤,直到所有点云分组的中间系数都编码完成。在编码过程中,计算机设备按照延迟限制参数,确定行程编码时的行程长度,并基于行程长度对编码过程中的编码逻辑进行控制;具体的实施方式可参考步骤S404中的实施方式,在此不再赘述。
例如,假设缓存限制参数和延迟限制参数均以点数为单位进行设置,且缓存限制参数为1024,延迟限制参数为2048,以组为单位进行编码;计算机设备统计缓存中各待编码点云分组中包含的待编码点的数量,基于缓存限制参数和缓存中各待编码点云分组中包含的待编码点的数量确定组数M;其中,M为正整数,M组待编码点云分组中包含的待编码点的总数量小于等于1024,且M+1组待编码点云分组中包含的待编码点的总数量大于1024。计算机设备逐一对M组待编码点云分组中的变换系数进行排列(如固定排列方式、随机排列方式、指定排列方式)。在获得M组待编码点云分组中的变换系数后,计算机设备对当前缓存进行清空重新开始缓存待编码分组的变换系数,直到所有点云分组中的变换系数都编码完成。在具体实现过程中,每个点云分组的变换系数包含一个第一变换系数DC和至少一个第二变换系数{AC}。变换系数的排列方式由计算机设备(编码设备)限定,例如,对偶数次的缓存限制参数点内的变换系数,或者说缓存中点云分组的组数为偶数,按[DC1,...,DCM,{AC1},...,{ACM}]排列;对奇数次的缓存限制参数点内的变换系数,或者说缓存中点云分组的组数为技术,按[{AC1},...,{ACM},DC1,...,DCM]排列。在编码过程中,计算机设备可以采用行程编码对待编码点的属性信息的残差进行编码,统计待编码点的属性信息的残差中连续为特定符号的点数记为行程长度run-length。若当前待编码点的属性信息的残差符号为特定值(如0),则run-length值增加1,每当run-length达到延迟限制参数指示的延迟限制点数时,编码run-length的值和当前待编码点的属性信息的残差,并将run-length置0,重新开始计数。若当前待编码点的属性信息的残差符号为非特定值(如非0),则计算机设备首先对run-length值进行编码,然后对当前待编码点的属性信息的残差进行编码,并将run-length置0,重新开始计数。
在另一种实施方式中,缓存限制参数和延迟限制参数相互关联;也就是说,缓存限制参数基于延迟限制参数确定,或者延迟限制参数基于缓存限制参数确定。以待编码点的属性信息的中间系数为变换系数为例,计算机设备在基于关联性确定缓存限制参数和延迟限制参数后,按照缓存限制参数对编码过程中的缓存逻辑进行控制;具体的实施方式可参考步骤S403中的实施方式,在此不再赘述。若以组为单位进行编码,则在将点云分组的中间系数进行缓存后,计算机设备可以对点云分组的中间系数进行排列,并可以将排列方式写入至编码码流中;或者,直接向解码设备指定排列方式。计算机设备清空缓存并重复上述步骤,直到所有点云分组的中间系数都编码完成。在编码过程中,计算机设备按照延迟限制参数,确定行程编码时的行程长度,并基于行程长度对编码过程中的编码逻辑进行控制;具体的实施方式可参考步骤S404中的实施方式,在此不再赘述。
例如,设延迟限制参数以倍数为单位,且值为2;缓存限制参数以组数为单位,且值为64,则基于缓存限制参数确定的缓存限制点数为64组点云分组中待编码点的总点数,基于延迟限制参数确定的延迟限制点数为64*2=128组点云分组中待编码点的总点数。又例如,设缓存限制参数以组数为单位,且值为64,且64组点云分组中第一组点云分组的第二变换系数为k个,则延迟限制参数以点数为单位,值为64+k,以保证第一组点云分组的实时解码。若以组为单位进行编码;计算机设备统计64组点云分组中包含的待编码点的数量,逐一对64组待编码点云分组中的变换系数进行排列(如固定排列方式、随机排列方式、指定排列方式)。在获得64组待编码点云分组中的变换系数后,计算机设备对当前缓存进行清空重新开始缓存待编码分组的变换系数,直到所有点云分组中的变换系数都编码完成。在具体实现过程中,每个点云分组的变换系数包含一个第一变换系数DC和至少一个第二变换系数{AC}。变换系数的排列方式由计算机设备(编码设备)限定,例如,对偶数次的缓存限制参数点内的变换系数,或者说缓存中点云分组的组数为偶数,按[DC1,...,DCM,{AC1},...,{ACM}]排列;对奇数次的缓存限制参数点内的变换系数,或者说缓存中点云分组的组数为技术,按[{AC1},...,{ACM},DC1,...,DCM]排列。在编码过程中,计算机设备可以采用行程编码对待编码点的属性信息的残差进行编码,统计待编码点的属性信息的残差中连续为特定符号的点数记为行程长度run-length。若当前待编码点的属性信息的残差符号为特定值(如0),则run-length值增加1,每当run-length达到延迟限制参数指示的延迟阈值时,编码run-length的值和当前待编码点的属性信息的残差,并将run-length置0,重新开始计数。若当前待编码点的属性信息的残差符号为非特定值(如非0),则计算机设备首先对run-length值进行编码,然后对当前待编码点的属性信息的残差进行编码,并将run-length置0,重新开始计数。
本申请实施例在图3实施例的基础上,一方面通过缓存限制参数和延迟限制参数中的一个或多个,来控制点云属性信息的编码过程;另一方面,支持多个待编码点,或者多个待编码点云分组的属性信息按照预设排列方式进行排列,提高了点云属性信息的编码性能。
请参阅图5,图5为本申请实施例提供的又一种点云处理方法,该点云处理方法可以由计算机设备执行,该计算机设备具体可以是图2所示的点云处理系统20中的解码设备202。如图5所示,该点云处理方法可以包括以下步骤S501-步骤S503:
S501、获取点云中待解码点的编码码流。
待解码点的编码码流是由编码设备对待编码点进行编码得到的,具体可参见图3和图4中的实施例,在此不再赘述。点云中待解码点的编码码流可以是由计算机设备实时从编码设备中获取的,也可以是由计算机设备从已下载的编码码流中获取的。
S502、获取点云的限制参数。
计算机设备获取点云的限制参数包括以下任一种或多种:从编码码流中解析出已设置好为固定值的限制参数,从编码码流中解析出已设置好为可变值的限制参数,从编码码流中解析出已设置好的动态调整后的限制参数。可以理解的是,若编码码流中未解析到点云的限制参数,则计算机设备确定点云的限制参数为默认值。
在一种实施方式中,当限制参数仅包含一种参数时,限制参数的单位包括以下任一种:以点数为单位,以组数为单位。以点数为单位进行限制是指当以点数为单位进行解码时,限制待解码点的个数;以组数为单位进行限制是指当以组数为单位进行解码时,限制待解码的分组的组数。当限制参数为缓存限制参数时,解码限制点数阈值为缓存限制点数阈值;缓存限制参数的单位可以是点数,或者是组数。类似地,当限制参数为延迟限制参数时,解码限制点数阈值为延迟限制点数阈值;延迟限制参数的单位可以是点数,或者是组数。
在另一种实施方式中,当限制参数包含两种参数时,限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位和以倍数关系为单位;其中,限制参数1以倍数为单位是指:当限制参数2以点数为单位限制待解码的点数的数量时,限制参数1以点数为单位限制待解码的点数的数量,且限制参数1是限制待解码的点数的数量是限制参数2限制待解码的点数的数量的倍数。当限制参数2以组数为单位限制待解码分组的数量时,限制参数1以组数为单位限制待解码分组的数量,且限制参数1是限制待解码分组的数量是限制参数2限制待解码分组的数量的倍数。
由上述可知,组合的方式包括:限制参数1和限制参数2均以点数为单位,或者以组数为单位;限制参数1以点数为单位,限制参数2以组数为单位,或者限制参数2以倍数为单位;限制参数1以组数为单位,限制参数2以点数为单位,或者限制参数2以倍数为单位。可以理解的是,上述限制参数1可以是缓存限制参数和延迟限制参数中的任一个,上述限制参数2是缓存限制参数和延迟限制参数中的另一个。
S503、对待解码点的编码码流进行解码,以及按照限制参数对解码过程进行控制。
解码方式包括行程解码,若编码设备以点数为单位进行编码,则计算机设备以点数为单位进行解码;若编码设备以组数为单位进行编码,则计算机设备以组数为单位进行解码。限制参数可以包括缓存限制参数和延迟限制参数中的至少一个。
在实现方式一中,计算机设备按照限制参数对解码过程进行控制的实施方式为:根据限制参数确定限制点数阈值,限制点数阈值用于限制待解码点的数量阈值;例如,若限制参数为缓存限制参数,则计算机设备根据缓存限制参数确定缓存中允许缓存的待解码点的数量阈值;若限制参数为延迟限制参数,则计算机设备根据延迟限制参数确定解码过程中允许延迟的待解码点的数量阈值。在行程解码的过程中,若计算机设备读取到限制标志位,则将第一行程长度的计数值设置为预设值(如限制点数阈值);若第一行程长度的计数值大于零且不等于限制点数阈值,则将当前待解码点的中间系数设置为特定值(如0),并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;计算机设备获取在第一行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
在实现方式二中,计算机设备按照限制参数对解码过程进行控制的实施方式为:根据限制参数确定限制点数阈值,限制点数阈值用于限制待解码点的数量阈值。在行程解码的过程中,从编码码流中读取第一行程长度的计数值;若第一行程长度的计数值大于零且等于限制点数阈值,则计算机设备将当前待解码点的中间系数设置为特定值,并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;从编码码流中读取第二行程长度的计数值,若第二行程长度的计数值大于零且不等于限制点数阈值,则将当前待解码点的中间系数设置为预设值,并将第二行程长度的计数值减少一个步长,直到第二行程长度的计数值等于零为止;获取在第二行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。需要说明的是,第二行程长度是第一行程长度的下一个行程长度,若第二行程长度的计数值大于零且等于限制点数阈值,计算机设备将当前待解码点的中间系数设置为特定值,并将第二行程长度的计数值减少一个步长,直到第二行程长度的计数值等于零为止;从编码码流中读取第三行程长度的计数值,并继续进行判断。也就是说,如果读取到的行程长度的计数值大于零且等于限制点数阈值,则在该行程长度的计数值为0时,计算机设备会继续读取下一个行程长度的计数值;如果读取到的行程长度的计数值大于零且不等于限制点数阈值,则在该行程长度的计数值为0时,计算机设备会获取在该行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
在实现方式三中,在行程解码的过程中,计算机设备从编码码流中读取第一行程长度的计数值;若第一行程长度的计数值大于零,则计算机设备将当前待解码点的中间系数设置为特定值,并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;获取在第一行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。需要说明的是,在本实现方式中,在第一行程长度的计数值等于零时读取到的待解码点的中间系数可能为特定值,在一种可能的实现方式中,值为特定值的中间系数可以累加多个行程长度。
可以理解的是,以组为单位进行编码的方式下,解码流程与上述实现方式一至实现方式三类似,在此不再赘述。存在的区别之处在于,当限制参数为缓存限制参数时,计算机设备在将读取的点云分组的中间参数进行缓存后,还可以按获取的排列方式对缓存中各点云分组的中间系数进行排列,再按照上述实现方式一至实现方式三进行解码。
在一种实施方式中,解码方式为以点数为单位的解码方式,即将点云中的一个点作为基本解码单位进行解码。计算机设备对待解码点的编码码流进行解码的具体实现方式为:对待解码点的编码码流进行解析,得到待解码点的中间系数,中间系数包括残差或变换系数,计算机设备将待解码点的中间系数写入至缓存中,并从缓存中读取待解码点的中间系数进行解码。在解码过程中,计算机设备可以基于限制参数对解码过程进行控制;例如,计算机设备可以基于延迟限制参数对解码过程进行控制;又例如,计算机设备可以基于缓存限制参数对解码过程进行控制;再例如,计算机设备可以基于缓存限制参数和延迟限制参数对解码过程进行控制。计算机设备对编码码流进行解码的具体实施方式可参考上述点云解码的实施方式,在此不再赘述。
在另一种实施方式中,解码方式为以组数为单位的解码方式,即将点云中的一个分组作为基本解码单位进行解码。计算机设备对待解码点的编码码流进行解码的具体实现方式为:对待解码点的编码码流进行解析,得到多组点云分组,每组点云分组中包含待解码点的中间系数,中间系数包括残差或变换系数,计算机设备将点云分组写入至缓存中,并从缓存中依次读取点云分组中的待解码点的中间系数进行解码。在解码过程中,计算机设备可以基于限制参数对解码过程进行控制;例如,计算机设备可以基于延迟限制参数对解码过程进行控制;又例如,计算机设备可以基于缓存限制参数对解码过程进行控制;再例如,计算机设备可以基于缓存限制参数和延迟限制参数对解码过程进行控制。计算机设备对编码码流进行解码的具体实施方式可参考上述点云解码的实施方式,在此不再赘述。
本申请实施例中,当需要对点云中的待解码点进行解码处理时,可以获取点云中待解码点的编码码流和点云的限制参数,对待解码点的编码码流进行解码,以及按照限制参数对解码过程进行控制。本申请实施例通过获取点云的限制参数,使得待解码点的属性信息解码过程可控,进而提高点云属性信息的解码性能。
请参阅图6,图6为本申请实施例提供的再一种点云处理方法,该点云处理方法可以由计算机设备执行,该计算机设备具体可以是图2所示的点云处理系统20中的解码设备202。如图5所示,该点云处理方法可以包括以下步骤S601-步骤S605:
S601、获取点云中待解码点的编码码流。
S602、获取点云的限制参数。
步骤S601和步骤S602的具体实施方式可参考图5中步骤S501和步骤S502的实施方式,在此不再赘述。
当限制参数为缓存限制参数时,继续执行步骤S603;当限制参数为延迟限制参数时,继续执行步骤S604;当限制参数包括缓存限制参数和延迟限制参数时,继续执行步骤S605。
S603、对待解码点的属性信息进行解码,以及按照缓存限制参数对解码过程中的缓存逻辑进行控制。
在一种实施方式中,缓存限制参数用于限制缓存中允许写入的待解码点的数量,每个待解码点可以包括一个或多个中间系数。计算机设备根据缓存限制参数确定缓存限制点数阈值,每当缓存中写入的待解码点的数量达到缓存限制点数阈值时,计算机设备从缓存中读取待解码点的中间系数进行解码。
在一个实施例中,解码方式为以组数为单位的解码方式,即将点云中的一个分组作为基本解码单位进行解码。计算机设备统计缓存中每组点云分组中包含的待解码点的总点数,当缓存中存储的分组数量为M,且这M组点云分组包含的待解码点的总点数达到缓存限制点数阈值时,计算机设备从缓存中读取这M组点云分组中包含的待解码点的中间系数进行解码。进一步地,计算机设备清空缓存,并继续将待解码点的中间系数写入缓存中。
在另一个实施例中,解码方式为以组数为单位的解码方式,即将点云中的一个分组作为基本解码单位进行解码。计算机设备统计缓存中每组点云分组中包含的目标待解码点的总点数,每组点云分组中目标待解码点的数量小于等于每组点云分组的点数限制阈值,若缓存中包括M组点云分组,且M组点云分组包含的目标待解码点的总点数达到缓存限制点数阈值,则控制从缓存中读取M组点云分组包含的待解码点的中间系数进行解码。进一步地,计算机设备清空缓存,并继续将待解码点的中间系数写入缓存中。
在另一种实施方式中,解码方式为以组数为单位的解码方式,即将点云中的一个分组(一个分组中可以包括点云中的至少一个点)作为基本解码单位进行解码。计算机设备统计缓存中包含的点云分组数M,基于M和点云分组的点数限制阈值计算缓存中包含的待解码点的总点数;例如,设M=64,点数限制阈值为8,则缓存中包含的待解码点的总点数=64*8=512。若缓存中包含的待解码点的总点数达到缓存限制点数阈值,则计算机设备控制从缓存中读取M组点云分组包含的待解码点的中间系数进行解码。进一步地,计算机设备清空缓存,并继续将待解码点的中间系数写入缓存中。
在一个实施例中,在解码过程中,计算机设备还可以获取缓存中的点云分组的预设排列方式。其中,预设排列方式包括以下任一种:固定排列方式和动态排列方式;固定排列方式是指每次缓存的点云分组的中间系数排列方式(如按照相似度、按照分组中包含的待编码点的点数等)相同,动态排列方式是指缓存的点云分组的中间系数排列方式存在变化;例如,第一次缓存的点云分组的中间系数排列方式与第二次缓存的点云分组的中间系数排列方式相同,且第三次缓存的点云分组的中间系数排列方式不同。计算机设备获取缓存中的点云分组的预设排列方式的具体实现方式为:每种排列方式对应一个索引值,计算机设备可以从编码码流中解析索引值,并根据该索引值确定点云分组的排列方式。
S604、对待解码点的属性信息进行解码,以及按照延迟限制参数对解码过程中的延迟逻辑进行控制。
步骤S604的具体实施方式可参考图5中步骤S503的实施方式,在此不再赘述。
S605、对待解码点的属性信息进行解码,以及按照缓存限制参数和延迟限制参数对解码过程中的解码逻辑进行控制。
在一种实施方式中,缓存限制参数和延迟限制参数相互独立。计算机设备首先按照延迟限制参数,将待解码点的中间参数,或者点云分组的中间参数读取到缓存中;具体的实施方式可参考步骤S604中的实施方式,在此不再赘述。若编码设备以组为单位进行编码,则在将读取的点云分组的中间参数进行缓存后,计算机设备还可以按获取的排列方式对缓存中各点云分组的中间系数进行排列。然后计算机设备可以按照延迟限制参数对解码过程中的解码逻辑进行控制;具体的实施方式可参考步骤S503中的实施方式,在此不再赘述。
在另一种实施方式中,缓存限制参数和延迟限制参数相互关联;也就是说,缓存限制参数基于延迟限制参数确定,或者延迟限制参数基于缓存限制参数确定。计算机设备首先按照延迟限制参数,将待解码点的中间参数,或者点云分组的中间参数读取到缓存中;具体的实施方式可参考步骤S604中的实施方式,在此不再赘述。若编码设备以组为单位进行编码,则在将读取的点云分组的中间参数进行缓存后,计算机设备还可以按获取的排列方式对缓存中各点云分组的中间系数进行排列。然后计算机设备可以按照延迟限制参数对解码过程中的解码逻辑进行控制;具体的实施方式可参考步骤S503中的实施方式,在此不再赘述。
本申请实施例在图5实施例的基础上,一方面通过缓存限制参数和延迟限制参数中的一个或多个,来控制点云属性信息的解码过程;另一方面,支持多个待解码点,或者多个待解码点云分组的属性信息按照编码码流指示的排列方式进行排列,提高了点云属性信息的解码性能。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
请参见图7,图7为本申请实施例提供的一种点云处理装置的结构示意图;该点云处理装置可以是运行于编码设备中的一个计算机程序(包括程序代码),例如该点云处理装置可以是编码设备中的一个应用软件。由图7所示,该点云处理装置包括设置单元701,获取单元702和处理单元703。请参见图7,各个单元的详细描述如下:
设置单元701,用于设置点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
获取单元702,用于获取点云中待编码点的属性信息;
处理单元703,用于对待编码点的属性信息进行编码;以及,按照限制参数对编码过程进行控制。
在一种实施方式中,编码的编码方式包括以点数为单位的编码方式;处理单元703用于,对待编码点的属性信息进行编码,具体用于:
对待编码点的属性信息进行转换处理,得到待编码点的中间系数;中间系数包括残差或变换系数;
将待编码点的中间系数写入至缓存中;
从缓存中读取待编码点的中间系数进行编码。
在一种实施方式中,编码的编码方式包括以组数为单位的编码方式;处理单元703用于,对待编码点的属性信息进行编码,具体用于:
对待编码点的属性信息进行分组处理,得到多组点云分组;
对点云分组中的待编码点的属性信息进行转换处理,得到转换后的点云分组,转换后的点云分组中包含待编码点的中间系数;中间系数包括残差或变换系数;
将转换后的点云分组写入至缓存中;
从缓存中依次读取转换后的点云分组中的待编码点的中间系数进行编码。
在一种实施方式中,限制参数包括缓存限制参数;处理单元703用于,按照限制参数对编码过程进行控制,具体用于:
按照缓存限制参数对编码过程中的缓存逻辑进行控制。
在一种实施方式中,处理单元703用于,按照缓存限制参数对编码过程中的缓存逻辑进行控制,具体用于:
根据缓存限制参数确定缓存限制点数阈值,缓存限制点数阈值用于限制缓存中允许写入的待编码点的数量阈值;
每当缓存中写入的待编码点的数量达到缓存限制点数阈值时,控制从缓存中读取待编码点的中间系数进行编码。
在一种实施方式中,编码的编码方式包括以组数为单位的编码方式;处理单元703用于,每当缓存中写入的待编码点的数量达到缓存限制点数阈值时,控制从缓存中读取待编码点的中间系数进行编码,具体用于:
统计缓存中每组点云分组中包含的待编码点的总点数,若缓存中包括M组点云分组,且M组点云分组包含的待编码点的总点数达到缓存限制点数阈值,则控制从缓存中读取M组点云分组包含的待编码点的中间系数进行编码;或者,
统计缓存中包含的点云分组数M,基于M和点云分组的点数限制阈值计算缓存中包含的待编码点的总点数,若缓存中包含的待编码点的总点数达到缓存限制点数阈值,则控制从缓存中读取M组点云分组包含的待编码点的中间系数进行编码。
在一种实施方式中,编码的编码方式包括以组数为单位的编码方式;处理单元703用于,按照缓存限制参数对编码过程中的缓存逻辑进行控制,具体用于:
根据缓存限制参数确定缓存中允许写入的点云分组的组数阈值;
每当缓存中写入的点云分组的数量达到组数阈值时,控制从缓存中读取缓存中写入的点云分组包含的待编码点的中间系数进行编码。
在一种实施方式中,处理单元703还用于:
按照预设排列方式对缓存中写入的点云分组进行排列;
预设排列方式包括以下任一种:固定排列方式,动态排列方式;固定排列方式是指缓存中点云分组的中间系数排列方式固定,动态排列方式是指缓存中点云分组的中间系数排列方式存在变化。
在一种实施方式中,每种排列方式对应一个索引值;处理单元703还用于:
将缓存中点云分组的中间系数排列方式对应的索引值写入至编码码流中。
在一种实施方式中,编码包括行程编码;处理单元703用于,按照缓存限制参数对编码过程中的缓存逻辑进行控制,具体用于:
根据缓存限制参数确定缓存中允许写入的待编码点的缓存限制点数阈值,缓存限制点数阈值用于限制编码过程中允许写入缓存的待编码点的数量阈值;
在行程编码过程中,设置用于对连续特定符号进行计数的行程长度;
将行程长度设置为初始值,在从缓存中顺序读取待编码点的中间系数的过程中:
若读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长;若读取的待编码点的数量等于缓存限制点数阈值,则对当前行程长度进行编码,或者对缓存限制点数阈值和值为特定符号的待编码点的中间系数进行编码,并将行程长度设置为初始值以重新计数;
若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数。
在一种实施方式中,限制参数包括延迟限制参数;处理单元703用于,按照限制参数对编码过程进行控制,具体用于:
按照延迟限制参数对编码过程中的延迟逻辑进行控制。
在一种实施方式中,编码包括行程编码;处理单元703用于,按照延迟限制参数对编码过程中的延迟逻辑进行控制,具体用于:
根据延迟限制参数确定延迟限制点数阈值,延迟限制点数阈值用于限制编码过程中允许延迟的待编码点的数量阈值;
在行程编码的过程中,设置用于对连续特定符号进行计数的行程长度;
将行程长度设置为初始值,在从缓存中顺序读取待编码点的中间系数的过程中:
若读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长;获取行程长度的计数值,若行程长度的计数值达到延迟限制点数阈值,则进行参数编码处理,并将行程长度重置为初始值以重新计数;
若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数;
其中,参数编码处理是指:对当前行程长度进行编码;或者,对限制标识符进行编码,限制标识符用于将行程长度设置为预设值;或者,对延迟限制点数阈值,以及值为特定符号的待编码点的中间系数进行编码。
在一种实施方式中,编码包括行程编码;处理单元703用于,按照延迟限制参数对编码过程中的延迟逻辑进行控制,具体用于:
根据延迟限制参数确定延迟限制点数阈值,延迟限制点数阈值用于限制编码过程中允许延迟的待编码点的数量阈值;
在行程编码的过程中,设置用于对连续特定符号进行计数的行程长度;
将行程长度设置为初始值,在从缓存中顺序读取待编码点的中间系数的过程中:
若读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长;若待编码点的数量达到延迟限制点数阈值,则对当前行程长度进行编码,或者对延迟限制点数阈值和值为特定符号的待编码点的中间系数进行编码,并将行程长度重置为初始值以重新计数;
若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数。
在一种实施方式中,延迟限制参数用于确定延迟限制点数阈值;编码包括行程编码,行程编码中的行程长度小于或等于延迟限制点数阈值;处理单元703还用于:
按照延迟限制点数阈值设置行程长度的比特位数。
在一种实施方式中,限制参数包括缓存限制参数和延迟限制参数;处理单元703用于,按照限制参数对编码过程进行控制,具体用于:
按照缓存限制参数和延迟限制参数对编码过程中的编码逻辑进行控制。
在一种实施方式中,限制参数的设置方式包括以下任一种或多种:
将限制参数设置为默认值;
将限制参数设置为固定值,并将设置好的限制参数封装至编码形成的编码码流中;
将限制参数设置为可变值,并将设置好的限制参数封装至编码形成的编码码流中;
在编码过程中动态调整限制参数的值,并将动态调整后的限制参数封装至编码形成的编码码流中。
在一种实施方式中,当限制参数仅包含一种参数时,限制参数的单位包括以下任一种:以点数为单位,以组数为单位;
当限制参数包含两种参数时,限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位和以倍数关系为单位。
在一种实施方式中,限制参数用于确定编码限制点数阈值;若限制参数为缓存限制参数,则编码限制点数阈值为缓存限制点数阈值;若限制参数为延迟限制参数,则编码限制点数阈值为延迟限制点数阈值;
若限制参数以点数为单位,且限制参数的值为X1,则编码限制点数阈值为X1个待编码点的中间系数的实际总数量;
若限制参数以组数为单位,且限制参数的值为X2,则编码限制点数阈值为X2组点云分组中的待编码点的中间系数的实际总数量;
若限制参数以组数为单位,且限制参数的值为X3,并且每组点云分组的点数限制为X4,则编码限制点数阈值为X3组点云分组中的待编码点的中间系数的总数量,总数量不超过X3*X4的值。
在一种实施方式中,限制参数包括缓存限制参数和延迟限制参数两种参数;缓存限制参数用于确定缓存限制点数阈值;延迟限制参数用于确定延迟限制点数阈值;
若缓存限制参数以倍数关系为单位,且缓存限制参数的值为Y1,则缓存限制点数阈值是延迟限制点数阈值的Y1倍;
若延迟限制参数以倍数关系为单位,且延迟限制参数的值为Y2,则延迟限制点数阈值是缓存限制点数阈值的Y2倍。
根据本申请的一个实施例,图3和图4所示的点云处理方法所涉及的部分步骤可由图7所示的点云处理装置中的各个单元来执行。例如,图3中所示的步骤S301可由图7所示的设置单元701执行,步骤S302可由图7所示的获取单元702执行,步骤S303可由图7所示的处理单元703执行。图4中所示的步骤S401可由图7所示的设置单元701执行,步骤S402可由图7所示的获取单元702执行,步骤S403-步骤S405可由图7所示的处理单元703执行。图7所示的点云处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,点云处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算装置上运行能够执行如图3和图4中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图7中所示的点云处理装置,以及来实现本申请实施例的点云处理方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。
基于同一发明构思,本申请实施例中提供的点云处理装置解决问题的原理与有益效果与本申请方法实施例中点云处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
请参见图8,图8为本申请实施例提供的另一种点云处理装置的结构示意图;该点云处理装置可以是运行于解码设备中的一个计算机程序(包括程序代码),例如该点云处理装置可以是解码设备中的一个应用软件。由图8所示,该点云处理装置包括获取单元801和处理单元802。请参见图8,各个单元的详细描述如下:
获取单元801,用于获取点云中待解码点的编码码流,以及,获取点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
处理单元802,用于对待解码点的编码码流进行解码;以及,按照限制参数对解码过程进行控制。
在一种实施方式中,获取单元801获取点云的限制参数包括以下任一种或多种:
将限制参数设置为默认值;
从编码码流中解析出已设置好为固定值的限制参数;
从编码码流中解析出已设置好为可变值的限制参数;
从编码码流中解析出已设置好的动态调整后的限制参数。
在一种实施方式中,解码的解码方式包括以点数为单位的解码方式;处理单元802用于,对待解码点的编码码流进行解码,具体用于:
对待解码点的编码码流进行解析,得到待解码点的中间系数;中间系数包括残差或变换系数;
将待解码点的中间系数写入至缓存中;
从缓存中读取待解码点的中间系数进行解码。
在一种实施方式中,解码的解码方式包括以组数为单位的解码方式;处理单元802用于,对待解码点的编码码流进行解码,具体用于:
对待解码点的编码码流进行解析,得到多组点云分组,点云分组中包含待解码点的中间系数;中间系数包括残差或变换系数;
将点云分组写入至缓存中;
从缓存中依次读取点云分组中的待解码点的中间系数进行解码。
在一种实施方式中,解码包括行程解码;处理单元802用于,按照限制参数对解码过程进行控制,具体用于:
根据限制参数确定限制点数阈值,限制点数阈值用于限制待解码点的数量阈值;
在行程解码的过程中,若读取到限制标志位,则将第一行程长度的计数值设置为预设值;
若第一行程长度的计数值大于零且不等于限制点数阈值,则将当前待解码点的中间系数设置为特定值,并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;
获取在第一行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
在一种实施方式中,解码包括行程解码;处理单元802用于,按照限制参数对解码过程进行控制,具体用于:
根据限制参数确定限制点数阈值,限制点数阈值用于限制待解码点的数量阈值;
在行程解码的过程中,从编码码流中读取第一行程长度的计数值;
若第一行程长度的计数值大于零且等于限制点数阈值,则将当前待解码点的中间系数设置为特定值,并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;
从编码码流中读取第二行程长度的计数值,若第二行程长度的计数值大于零且不等于限制点数阈值,则将当前待解码点的中间系数设置为预设值,并将第二行程长度的计数值减少一个步长,直到第二行程长度的计数值等于零为止;
获取在第二行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
在一种实施方式中,解码包括行程解码;处理单元802用于,按照限制参数对解码过程进行控制,具体用于:
在行程解码的过程中,从编码码流中读取第一行程长度的计数值;
若第一行程长度的计数值大于零,则将当前待解码点的中间系数设置为特定值,并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;
获取在第一行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
在一种实施方式中,限制参数包括缓存限制参数;处理单元802用于,按照限制参数对解码过程进行控制,具体用于:
按照缓存限制参数对解码过程中的缓存逻辑进行控制。
在一种实施方式中,处理单元802用于,按照缓存限制参数对解码过程中的缓存逻辑进行控制,具体用于:
根据缓存限制参数确定缓存限制点数阈值,缓存限制点数阈值用于限制缓存中允许写入的待解码点的数量阈值;
每当缓存中写入的待解码点的数量达到缓存限制点数阈值时,控制从缓存中读取待解码点的中间系数进行解码。
在一种实施方式中,解码的解码方式包括以组数为单位的解码方式;处理单元802用于,每当缓存中写入的待解码点的数量达到缓存限制点数阈值时,控制从缓存中读取待解码点的中间系数进行解码,具体用于:
统计缓存中每组点云分组中包含的待解码点的总点数,若缓存中包括M组点云分组,且M组点云分组包含的待解码点的总点数达到缓存限制点数阈值,则控制从缓存中读取M组点云分组包含的待解码点的中间系数进行解码;或者,
统计缓存中包含的点云分组数M,基于M和点云分组的点数限制阈值计算缓存中包含的待编码点的总点数,若缓存中包含的待编码点的总点数达到缓存限制点数阈值,则控制从缓存中读取M组点云分组包含的待解码点的中间系数进行解码。
在一种实施方式中,解码的解码方式包括以组数为单位的解码方式;处理单元802用于,按照缓存限制参数对解码过程中的缓存逻辑进行控制,具体用于:
根据缓存限制参数确定缓存中允许写入的点云分组的组数阈值;
每当缓存中写入的点云分组的数量达到组数阈值时,控制从缓存中读取缓存中写入的点云分组包含的待解码点的中间系数进行解码。
在一种实施方式中,处理单元802还用于:
按照预设排列方式对缓存中写入的点云分组进行排列;
预设排列方式包括以下任一种:固定排列方式,动态排列方式;固定排列方式是指缓存中点云分组的中间系数排列方式固定,动态排列方式是指缓存中点云分组的中间系数排列方式存在变化。
在一种实施方式中,每种排列方式对应一个索引值;处理单元802还用于:
从编码码流中解析出索引值,并根据索引值确定缓存中的点云分组的排列方式。
在一种实施方式中,限制参数包括延迟限制参数;处理单元802用于,按照限制参数对解码过程进行控制,具体用于:
按照延迟限制参数对解码过程中的延迟逻辑进行控制。
在一种实施方式中,限制参数包括缓存限制参数和延迟限制参数;处理单元802用于,按照限制参数对解码过程进行控制,具体用于:
按照缓存限制参数和延迟限制参数对解码过程中的解码逻辑进行控制。
在一种实施方式中,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
当限制参数仅包含一种参数时,限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位;
当限制参数包含两种参数时,限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位和以倍数关系为单位。
根据本申请的一个实施例,图5和图6所示的点云处理方法所涉及的部分步骤可由图8所示的点云处理装置中的各个单元来执行。例如,图5中所示的步骤S501和步骤S502可由图8所示的获取单元801执行,步骤S503可由图8所示的处理单元802执行。图6中所示的步骤S601和步骤S602可由图8所示的获取单元801执行,步骤S603-步骤S605可由图8所示的处理单元802执行。图8所示的点云处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,点云处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算装置上运行能够执行如图5和图6中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图8中所示的点云处理装置,以及来实现本申请实施例的点云处理方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。
基于同一发明构思,本申请实施例中提供的点云处理装置解决问题的原理与有益效果与本申请方法实施例中点云处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
图9为本申请实施例提供的一种编码设备的结构示意图;该编码设备可以是指点云媒体的提供者所使用的计算机设备,该计算机设备可以是终端(如PC、智能移动设备(如智能手机)等)或服务器。如图9所示,该编码设备包括捕获设备901、处理器902、存储器903和发射器904。其中:
捕获设备901用于采集现实世界的声音-视觉场景获得点云媒体的原始数据(包括在时间和空间上保持同步的音频内容和视频内容)。该捕获设备901可以包括但不限于:音频设备、摄像设备及传感设备。其中,音频设备可以包括音频传感器、麦克风等。摄像设备可以包括普通摄像头、立体摄像头、光场摄像头等。传感设备可以包括激光设备、雷达设备等。
处理器902(或称CPU(Central Processing Unit,中央处理器))是编码设备的处理核心,该处理器902适于实现一条或多条程序指令,具体适于加载并执行一条或多条程序指令从而实现图3和图4所示的点云处理方法的流程。
存储器903是编码设备中的记忆设备,用于存放程序和媒体资源。可以理解的是,此处的存储器903既可以包括编码设备中的内置存储介质,当然也可以包括编码设备所支持的扩展存储介质。需要说明的是,存储器可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的存储器。存储器提供存储空间,该存储空间用于存储编码设备的操作系统。并且,在该存储空间中还用于存储计算机程序,该计算机程序包括程序指令,且该程序指令适于被处理器调用并执行,以用来执行点云处理方法的各步骤。另外,存储器903还可用于存储经处理器处理后形成的点云媒体文件,该点云媒体文件包括媒体文件资源和媒体呈现描述信息。
发射器904用于实现编码设备与其他设备的传输交互,具体用于实现编码设备与内容播放设备之间关于进行点云媒体的传输。即编码设备通过发射器904来向内容播放设备传输点云媒体的相关媒体资源。
再请参见图9,处理器902可包括转换器921、编码器922和封装器923;其中:
转换器921用于对捕获到的视频内容进行一系列转换处理,使视频内容成为适合被执行点云媒体的视频编码的内容。转换处理可包括:拼接和投影,可选地,转换处理还包括区域封装。转换器921可以将捕获到的3D视频内容转换为2D图像,并提供给编码器进行视频编码。
编码器922用于对捕获到的音频内容进行音频编码形成点云媒体的音频码流。还用于对转换器921转换得到的2D图像进行视频编码,得到视频码流。
封装器923用于将音频码流和视频码流按照点云媒体的文件格式(如ISOBMFF)封装在文件容器中形成点云媒体的媒体文件资源,该媒体文件资源可以是媒体文件或媒体片段形成点云媒体的媒体文件;并按照点云媒体的文件格式要求采用媒体呈现描述信息记录该点云媒体的媒体文件资源的元数据。封装器处理得到的点云媒体的封装文件会保存在存储器中,并按需提供给内容播放设备进行点云媒体的呈现。
处理器902(具体是处理器包含的各器件)通过调用存储器中的一条或多条指令来执行图3和图4所示的点云处理方法的各步骤。具体地,存储器903存储有一条或多条第一指令,该一条或多条第一指令适于由处理器902加载并执行如下步骤:
设置点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
获取点云中待编码点的属性信息;
对待编码点的属性信息进行编码;以及,
按照限制参数对编码过程进行控制。
一种实施方式中,编码的编码方式包括以点数为单位的编码方式;处理器902对待编码点的属性信息进行编码的具体实施例为:
对待编码点的属性信息进行转换处理,得到待编码点的中间系数;中间系数包括残差或变换系数;
将待编码点的中间系数写入至缓存中;
从缓存中读取待编码点的中间系数进行编码。
一种实施方式中,编码的编码方式包括以组数为单位的编码方式;处理器902对待编码点的属性信息进行编码的具体实施例为:
对待编码点的属性信息进行分组处理,得到多组点云分组;
对点云分组中的待编码点的属性信息进行转换处理,得到转换后的点云分组,转换后的点云分组中包含待编码点的中间系数;中间系数包括残差或变换系数;
将转换后的点云分组写入至缓存中;
从缓存中依次读取转换后的点云分组中的待编码点的中间系数进行编码。
一种实施方式中,限制参数包括缓存限制参数;处理器902按照限制参数对编码过程进行控制的具体实施例为:
按照缓存限制参数对编码过程中的缓存逻辑进行控制。
一种实施方式中,处理器902按照缓存限制参数对编码过程中的缓存逻辑进行控制的具体实施例为:
根据缓存限制参数确定缓存限制点数阈值,缓存限制点数阈值用于限制缓存中允许写入的待编码点的数量阈值;
每当缓存中写入的待编码点的数量达到缓存限制点数阈值时,控制从缓存中读取待编码点的中间系数进行编码。
一种实施方式中,编码的编码方式包括以组数为单位的编码方式;处理器902每当缓存中写入的待编码点的数量达到缓存限制点数阈值时,控制从缓存中读取待编码点的中间系数进行编码的具体实施例为:
统计缓存中每组点云分组中包含的待编码点的总点数,若缓存中包括M组点云分组,且M组点云分组包含的待编码点的总点数达到缓存限制点数阈值,则控制从缓存中读取M组点云分组包含的待编码点的中间系数进行编码;或者,
统计缓存中包含的点云分组数M,基于M和点云分组的点数限制阈值计算缓存中包含的待编码点的总点数,若缓存中包含的待编码点的总点数达到缓存限制点数阈值,则控制从缓存中读取M组点云分组包含的待编码点的中间系数进行编码。
一种实施方式中,编码的编码方式包括以组数为单位的编码方式;处理器902按照缓存限制参数对编码过程中的缓存逻辑进行控制的具体实施例为:
根据缓存限制参数确定缓存中允许写入的点云分组的组数阈值;
每当缓存中写入的点云分组的数量达到组数阈值时,控制从缓存中读取缓存中写入的点云分组包含的待编码点的中间系数进行编码。
一种实施方式中,存储器903中的计算机程序由处理器902加载并且还执行如下步骤:
按照预设排列方式对缓存中写入的点云分组进行排列;
预设排列方式包括以下任一种:固定排列方式,动态排列方式;固定排列方式是指缓存中点云分组的中间系数排列方式固定,动态排列方式是指缓存中点云分组的中间系数排列方式存在变化。
一种实施方式中,每种排列方式对应一个索引值;存储器903中的计算机程序由处理器902加载并且还执行如下步骤:
将缓存中点云分组的中间系数排列方式对应的索引值写入至编码码流中。
一种实施方式中,编码包括行程编码;处理器902按照缓存限制参数对编码过程中的缓存逻辑进行控制的具体实施例为:
根据缓存限制参数确定缓存中允许写入的待编码点的缓存限制点数阈值,缓存限制点数阈值用于限制编码过程中允许写入缓存的待编码点的数量阈值;
在行程编码过程中,设置用于对连续特定符号进行计数的行程长度;
将行程长度设置为初始值,在从缓存中顺序读取待编码点的中间系数的过程中:
若读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长;若读取的待编码点的数量等于缓存限制点数阈值,则对当前行程长度进行编码,或者对缓存限制点数阈值和值为特定符号的待编码点的中间系数进行编码,并将行程长度设置为初始值以重新计数;
若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数。
一种实施方式中,限制参数包括延迟限制参数;处理器902按照限制参数对编码过程进行控制的具体实施例为:
按照延迟限制参数对编码过程中的延迟逻辑进行控制。
一种实施方式中,编码包括行程编码;处理器902按照延迟限制参数对编码过程中的延迟逻辑进行控制的具体实施例为:
根据延迟限制参数确定延迟限制点数阈值,延迟限制点数阈值用于限制编码过程中允许延迟的待编码点的数量阈值;
在行程编码的过程中,设置用于对连续特定符号进行计数的行程长度;
将行程长度设置为初始值,在从缓存中顺序读取待编码点的中间系数的过程中:
若读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长;获取行程长度的计数值,若行程长度的计数值达到延迟限制点数阈值,则进行参数编码处理,并将行程长度重置为初始值以重新计数;
若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数;
其中,参数编码处理是指:对当前行程长度进行编码;或者,对限制标识符进行编码,限制标识符用于将行程长度设置为预设值;或者,对延迟限制点数阈值,以及值为特定符号的待编码点的中间系数进行编码。
一种实施方式中,编码包括行程编码;处理器902按照延迟限制参数对编码过程中的延迟逻辑进行控制的具体实施例为:
根据延迟限制参数确定延迟限制点数阈值,延迟限制点数阈值用于限制编码过程中允许延迟的待编码点的数量阈值;
在行程编码的过程中,设置用于对连续特定符号进行计数的行程长度;
将行程长度设置为初始值,在从缓存中顺序读取待编码点的中间系数的过程中:
若读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长;若待编码点的数量达到延迟限制点数阈值,则对当前行程长度进行编码,或者对延迟限制点数阈值和值为特定符号的待编码点的中间系数进行编码,并将行程长度重置为初始值以重新计数;
若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数。
一种实施方式中,延迟限制参数用于确定延迟限制点数阈值;编码包括行程编码,行程编码中的行程长度小于或等于延迟限制点数阈值;存储器903中的计算机程序由处理器902加载并且还执行如下步骤:
按照延迟限制点数阈值设置行程长度的比特位数。
一种实施方式中,限制参数包括缓存限制参数和延迟限制参数;处理器902按照限制参数对编码过程进行控制的具体实施例为:
按照缓存限制参数和延迟限制参数对编码过程中的编码逻辑进行控制。
一种实施方式中,限制参数的设置方式包括以下任一种或多种:
将限制参数设置为默认值;
将限制参数设置为固定值,并将设置好的限制参数封装至编码形成的编码码流中;
将限制参数设置为可变值,并将设置好的限制参数封装至编码形成的编码码流中;
在编码过程中动态调整限制参数的值,并将动态调整后的限制参数封装至编码形成的编码码流中。
一种实施方式中,当限制参数仅包含一种参数时,限制参数的单位包括以下任一种:以点数为单位,以组数为单位;
当限制参数包含两种参数时,限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位和以倍数关系为单位。
一种实施方式中,限制参数用于确定编码限制点数阈值;若限制参数为缓存限制参数,则编码限制点数阈值为缓存限制点数阈值;若限制参数为延迟限制参数,则编码限制点数阈值为延迟限制点数阈值;
若限制参数以点数为单位,且限制参数的值为X1,则编码限制点数阈值为X1个待编码点的中间系数的实际总数量;
若限制参数以组数为单位,且限制参数的值为X2,则编码限制点数阈值为X2组点云分组中的待编码点的中间系数的实际总数量;
若限制参数以组数为单位,且限制参数的值为X3,并且每组点云分组的点数限制为X4,则编码限制点数阈值为X3组点云分组中的待编码点的中间系数的总数量,总数量不超过X3*X4的值。
一种实施方式中,限制参数包括缓存限制参数和延迟限制参数两种参数;缓存限制参数用于确定缓存限制点数阈值;延迟限制参数用于确定延迟限制点数阈值;
若缓存限制参数以倍数关系为单位,且缓存限制参数的值为Y1,则缓存限制点数阈值是延迟限制点数阈值的Y1倍;
若延迟限制参数以倍数关系为单位,且延迟限制参数的值为Y2,则延迟限制点数阈值是缓存限制点数阈值的Y2倍。
基于同一发明构思,本申请实施例中提供的编码设备解决问题的原理与有益效果与本申请方法实施例中点云处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
图10为本申请实施例提供的一种解码设备的结构示意图;该解码设备可以是指点云媒体的使用者所使用的计算机设备,该计算机设备可以是终端(如PC、智能移动设备(如智能手机)、VR设备(如VR头盔、VR眼镜等))。如图10所示,该解码设备包括接收器1001、处理器1002、存储器1003、显示/播放装置1004。其中:
接收器1001用于实现解码与其他设备的传输交互,具体用于实现编码设备与解码设备之间关于进行点云媒体的传输。即解码设备通过接收器1001来接收编码设备传输点云媒体的相关媒体资源。
处理器1002(或称CPU(Central Processing Unit,中央处理器))是编码设备的处理核心,该处理器1002适于实现一条或多条程序指令,具体适于加载并执行一条或多条程序指令从而实现图5和图6所示的点云处理方法的流程。
存储器1003是解码设备中的记忆设备,用于存放程序和媒体资源。可以理解的是,此处的存储器1003既可以包括解码设备中的内置存储介质,当然也可以包括解码设备所支持的扩展存储介质。需要说明的是,存储器1003可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的存储器。存储器1003提供存储空间,该存储空间用于存储解码设备的操作系统。并且,在该存储空间中还用于存储计算机程序,该计算机程序包括程序指令,且该程序指令适于被处理器调用并执行,以用来执行点云处理方法的各步骤。另外,存储器1003还可用于存储经处理器处理后形成的点云媒体的三维图像、三维图像对应的音频内容及该三维图像和音频内容渲染所需的信息等。
显示/播放装置1004用于输出渲染得到的声音和三维图像。
再请参见图10,处理器1002可包括解析器1021、解码器1022、转换器1023和渲染器1024;其中:
解析器1021用于对来自编码设备的渲染媒体的封装文件进行文件解封装,具体是按照点云媒体的文件格式要求对媒体文件资源进行解封装,得到音频码流和视频码流;并将该音频码流和视频码流提供给解码器1022。
解码器1022对音频码流进行音频解码,得到音频内容并提供给渲染器进行音频渲染。另外,解码器1022对视频码流进行解码得到2D图像。根据媒体呈现描述信息提供的元数据,如果该元数据指示点云媒体执行过区域封装过程,该2D图像是指封装图像;如果该元数据指示点云媒体未执行过区域封装过程,则该平面图像是指投影图像。
转换器1023用于将2D图像转换为3D图像。如果点云媒体执行过区域封装过程,转换器1023还会先将封装图像进行区域解封装得到投影图像。再对投影图像进行重建处理得到3D图像。如果渲染媒体未执行过区域封装过程,转换器1023会直接将投影图像重建得到3D图像。
渲染器1024用于对点云媒体的音频内容和3D图像进行渲染。具体根据媒体呈现描述信息中与渲染、视窗相关的元数据对音频内容及3D图像进行渲染,渲染完成交由显示/播放装置进行输出。
在一个示例性实施例中,处理器1002(具体是处理器包含的各器件)通过调用存储器中的一条或多条指令来执行图5和图6所示的点云处理方法的各步骤。具体地,存储器存储有一条或多条第一指令,该一条或多条第一指令适于由处理器1002加载并执行如下步骤:
获取点云中待解码点的编码码流;
获取点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
对待解码点的编码码流进行解码;以及,
按照限制参数对解码过程进行控制。
一种实施方式中,获取点云的限制参数包括以下任一种或多种:
将限制参数设置为默认值;
从编码码流中解析出已设置好为固定值的限制参数;
从编码码流中解析出已设置好为可变值的限制参数;
从编码码流中解析出已设置好的动态调整后的限制参数。
一种实施方式中,解码的解码方式包括以点数为单位的解码方式;处理器1002对待解码点的编码码流进行解码的具体实施例为:
对待解码点的编码码流进行解析,得到待解码点的中间系数;中间系数包括残差或变换系数;
将待解码点的中间系数写入至缓存中;
从缓存中读取待解码点的中间系数进行解码。
一种实施方式中,解码的解码方式包括以组数为单位的解码方式;处理器1002对待解码点的编码码流进行解码的具体实施例为:
对待解码点的编码码流进行解析,得到多组点云分组,点云分组中包含待解码点的中间系数;中间系数包括残差或变换系数;
将点云分组写入至缓存中;
从缓存中依次读取点云分组中的待解码点的中间系数进行解码。
一种实施方式中,解码包括行程解码;处理器1002按照限制参数对解码过程进行控制的具体实施例为:
根据限制参数确定限制点数阈值,限制点数阈值用于限制待解码点的数量阈值;
在行程解码的过程中,若读取到限制标志位,则将第一行程长度的计数值设置为预设值;
若第一行程长度的计数值大于零且不等于限制点数阈值,则将当前待解码点的中间系数设置为特定值,并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;
获取在第一行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
一种实施方式中,解码包括行程解码;处理器1002按照限制参数对解码过程进行控制的具体实施例为:
根据限制参数确定限制点数阈值,限制点数阈值用于限制待解码点的数量阈值;
在行程解码的过程中,从编码码流中读取第一行程长度的计数值;
若第一行程长度的计数值大于零且等于限制点数阈值,则将当前待解码点的中间系数设置为特定值,并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;
从编码码流中读取第二行程长度的计数值,若第二行程长度的计数值大于零且不等于限制点数阈值,则将当前待解码点的中间系数设置为预设值,并将第二行程长度的计数值减少一个步长,直到第二行程长度的计数值等于零为止;
获取在第二行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
一种实施方式中,解码包括行程解码;处理器1002按照限制参数对解码过程进行控制的具体实施例为:
在行程解码的过程中,从编码码流中读取第一行程长度的计数值;
若第一行程长度的计数值大于零,则将当前待解码点的中间系数设置为特定值,并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;
获取在第一行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
一种实施方式中,限制参数包括缓存限制参数;处理器1002按照限制参数对解码过程进行控制的具体实施例为:
按照缓存限制参数对解码过程中的缓存逻辑进行控制。
一种实施方式中,处理器1002按照缓存限制参数对解码过程中的缓存逻辑进行控制的具体实施例为:
根据缓存限制参数确定缓存限制点数阈值,缓存限制点数阈值用于限制缓存中允许写入的待解码点的数量阈值;
每当缓存中写入的待解码点的数量达到缓存限制点数阈值时,控制从缓存中读取待解码点的中间系数进行解码。
一种实施方式中,解码的解码方式包括以组数为单位的解码方式;处理器1002每当缓存中写入的待解码点的数量达到缓存限制点数阈值时,控制从缓存中读取待解码点的中间系数进行解码的具体实施例为:
统计缓存中每组点云分组中包含的待解码点的总点数,若缓存中包括M组点云分组,且M组点云分组包含的待解码点的总点数达到缓存限制点数阈值,则控制从缓存中读取M组点云分组包含的待解码点的中间系数进行解码;或者,
统计缓存中包含的点云分组数M,基于M和点云分组的点数限制阈值计算缓存中包含的待编码点的总点数,若缓存中包含的待编码点的总点数达到缓存限制点数阈值,则控制从缓存中读取M组点云分组包含的待解码点的中间系数进行解码。
一种实施方式中,解码的解码方式包括以组数为单位的解码方式;处理器1002按照缓存限制参数对解码过程中的缓存逻辑进行控制的具体实施例为:
根据缓存限制参数确定缓存中允许写入的点云分组的组数阈值;
每当缓存中写入的点云分组的数量达到组数阈值时,控制从缓存中读取缓存中写入的点云分组包含的待解码点的中间系数进行解码。
一种实施方式中,存储器1003中的计算机程序由处理器1002加载并且还执行如下步骤:
按照预设排列方式对缓存中写入的点云分组进行排列;
预设排列方式包括以下任一种:固定排列方式,动态排列方式;固定排列方式是指缓存中点云分组的中间系数排列方式固定,动态排列方式是指缓存中点云分组的中间系数排列方式存在变化。
一种实施方式中,每种排列方式对应一个索引值;存储器1003中的计算机程序由处理器1002加载并且还执行如下步骤:
从编码码流中解析出索引值,并根据索引值确定缓存中的点云分组的排列方式。
一种实施方式中,限制参数包括延迟限制参数;处理器1002按照限制参数对解码过程进行控制的具体实施例为:
按照延迟限制参数对解码过程中的延迟逻辑进行控制。
一种实施方式中,限制参数包括缓存限制参数和延迟限制参数;处理器1002按照限制参数对解码过程进行控制的具体实施例为:
按照缓存限制参数和延迟限制参数对解码过程中的解码逻辑进行控制。
一种实施方式中,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
当限制参数仅包含一种参数时,限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位;
当限制参数包含两种参数时,限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位和以倍数关系为单位。
基于同一发明构思,本申请实施例中提供的解码设备解决问题的原理与有益效果与本申请方法实施例中点云处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有一条或多条指令,一条或多条指令适于由处理器加载并执行上述方法实施例的点云处理方法。
本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例的点云处理方法。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的点云处理方法。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,可读存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于申请所涵盖的范围。

Claims (40)

1.一种点云处理方法,其特征在于,包括:
设置点云的限制参数,所述限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
获取所述点云中待编码点的属性信息;
对所述待编码点的属性信息进行编码;以及,
按照所述限制参数对所述编码过程进行控制。
2.如权利要求1所述的方法,其特征在于,所述编码的编码方式包括以点数为单位的编码方式;所述对所述待编码点的属性信息进行编码,包括:
对所述待编码点的属性信息进行转换处理,得到所述待编码点的中间系数;所述中间系数包括残差或变换系数;
将所述待编码点的中间系数写入至缓存中;
从所述缓存中读取所述待编码点的中间系数进行编码。
3.如权利要求1所述的方法,其特征在于,所述编码的编码方式包括以组数为单位的编码方式;所述对所述待编码点的属性信息进行编码,包括:
对所述待编码点的属性信息进行分组处理,得到多组点云分组;
对所述点云分组中的待编码点的属性信息进行转换处理,得到转换后的点云分组,所述转换后的点云分组中包含所述待编码点的中间系数;所述中间系数包括残差或变换系数;
将所述转换后的点云分组写入至缓存中;
从所述缓存中依次读取所述转换后的点云分组中的待编码点的中间系数进行编码。
4.如权利要求2或3所述的方法,其特征在于,所述限制参数包括缓存限制参数;所述按照所述限制参数对所述编码过程进行控制,包括:
按照所述缓存限制参数对所述编码过程中的缓存逻辑进行控制。
5.如权利要求4所述的方法,其特征在于,所述按照所述缓存限制参数对所述编码过程中的缓存逻辑进行控制,包括:
根据所述缓存限制参数确定缓存限制点数阈值,所述缓存限制点数阈值用于限制所述缓存中允许写入的待编码点的数量阈值;
每当所述缓存中写入的待编码点的数量达到所述缓存限制点数阈值时,控制从所述缓存中读取所述待编码点的中间系数进行编码。
6.如权利要求5所述的方法,其特征在于,所述编码的编码方式包括以组数为单位的编码方式;所述每当所述缓存中写入的待编码点的数量达到所述缓存限制点数阈值时,控制从所述缓存中读取所述待编码点的中间系数进行编码,包括:
统计所述缓存中每组点云分组中包含的待编码点的总点数,若所述缓存中包括M组点云分组,且所述M组点云分组包含的待编码点的总点数达到所述缓存限制点数阈值,则控制从所述缓存中读取所述M组点云分组包含的待编码点的中间系数进行编码;或者,
统计所述缓存中包含的点云分组数M,基于M和点云分组的点数限制阈值计算所述缓存中包含的待编码点的总点数,若所述缓存中包含的待编码点的总点数达到所述缓存限制点数阈值,则控制从所述缓存中读取所述M组点云分组包含的待编码点的中间系数进行编码。
7.如权利要求4所述的方法,其特征在于,所述编码的编码方式包括以组数为单位的编码方式;所述按照所述缓存限制参数对所述编码过程中的缓存逻辑进行控制,包括:
根据所述缓存限制参数确定所述缓存中允许写入的点云分组的组数阈值;
每当所述缓存中写入的点云分组的数量达到所述组数阈值时,控制从所述缓存中读取所述缓存中写入的点云分组包含的待编码点的中间系数进行编码。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
按照预设排列方式对所述缓存中写入的点云分组进行排列;
所述预设排列方式包括以下任一种:固定排列方式,动态排列方式;所述固定排列方式是指缓存中点云分组的中间系数排列方式固定,所述动态排列方式是指缓存中点云分组的中间系数排列方式存在变化。
9.如权利要求8所述的方法,其特征在于,每种所述排列方式对应一个索引值;所述方法进一步包括:
将所述缓存中点云分组的中间系数排列方式对应的索引值写入至所述编码码流中。
10.如权利要求4所述的方法,其特征在于,所述编码包括行程编码;所述按照所述缓存限制参数对所述编码过程中的缓存逻辑进行控制,包括:
根据所述缓存限制参数确定所述缓存中允许写入的待编码点的缓存限制点数阈值,所述缓存限制点数阈值用于限制编码过程中允许写入缓存的待编码点的数量阈值;
在行程编码过程中,设置用于对连续特定符号进行计数的行程长度;
将所述行程长度设置为初始值,在从所述缓存中顺序读取待编码点的中间系数的过程中:
若读取到值为特定符号的中间系数,则所述行程长度的计数值增加一个步长;若读取的待编码点的数量等于所述缓存限制点数阈值,则对当前行程长度进行编码,或者对所述缓存限制点数阈值和值为特定符号的待编码点的中间系数进行编码,并将行程长度设置为所述初始值以重新计数;
若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及所述非特定符号的中间系数进行编码,并将行程长度重置为所述初始值以重新计数。
11.如权利要求2或3所述的方法,其特征在于,所述限制参数包括延迟限制参数;所述按照所述限制参数对所述编码过程进行控制,包括:
按照所述延迟限制参数对所述编码过程中的延迟逻辑进行控制。
12.如权利要求11所述的方法,其特征在于,所述编码包括行程编码;所述按照所述延迟限制参数对所述编码过程中的延迟逻辑进行控制,包括:
根据所述延迟限制参数确定延迟限制点数阈值,所述延迟限制点数阈值用于限制编码过程中允许延迟的待编码点的数量阈值;
在所述行程编码的过程中,设置用于对连续特定符号进行计数的行程长度;
将所述行程长度设置为初始值,在从所述缓存中顺序读取待编码点的中间系数的过程中:
若读取到值为特定符号的中间系数,则所述行程长度的计数值增加一个步长;获取所述行程长度的计数值,若所述行程长度的计数值达到所述延迟限制点数阈值,则进行参数编码处理,并将行程长度重置为所述初始值以重新计数;
若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及所述非特定符号的中间系数进行编码,并将行程长度重置为所述初始值以重新计数;
其中,所述参数编码处理是指:对当前行程长度进行编码;或者,对限制标识符进行编码,所述限制标识符用于将所述行程长度设置为预设值;或者,对所述延迟限制点数阈值,以及值为特定符号的待编码点的中间系数进行编码。
13.如权利要求11所述的方法,其特征在于,所述编码包括行程编码;所述按照所述延迟限制参数对所述编码过程中的延迟逻辑进行控制,包括:
根据所述延迟限制参数确定延迟限制点数阈值,所述延迟限制点数阈值用于限制编码过程中允许延迟的待编码点的数量阈值;
在所述行程编码的过程中,设置用于对连续特定符号进行计数的行程长度;
将所述行程长度设置为初始值,在从所述缓存中顺序读取待编码点的中间系数的过程中:
若读取到值为特定符号的中间系数,则所述行程长度的计数值增加一个步长;若待编码点的数量达到所述延迟限制点数阈值,则对当前行程长度进行编码,或者对所述延迟限制点数阈值和值为特定符号的待编码点的中间系数进行编码,并将行程长度重置为所述初始值以重新计数;
若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及所述非特定符号的中间系数进行编码,并将行程长度重置为所述初始值以重新计数。
14.如权利要求11所述的方法,其特征在于,所述延迟限制参数用于确定延迟限制点数阈值;所述编码包括行程编码,所述行程编码中的行程长度小于或等于所述延迟限制点数阈值;所述方法还包括:
按照所述延迟限制点数阈值设置所述行程长度的比特位数。
15.如权利要求2或3所述的方法,其特征在于,所述限制参数包括缓存限制参数和延迟限制参数;所述按照所述限制参数对所述编码过程进行控制,包括:
按照所述缓存限制参数和所述延迟限制参数对所述编码过程中的编码逻辑进行控制。
16.如权利要求1所述的方法,其特征在于,所述限制参数的设置方式包括以下任一种或多种:
将所述限制参数设置为默认值;
将所述限制参数设置为固定值,并将设置好的所述限制参数封装至所述编码形成的编码码流中;
将所述限制参数设置为可变值,并将设置好的所述限制参数封装至所述编码形成的编码码流中;
在所述编码过程中动态调整所述限制参数的值,并将动态调整后的限制参数封装至所述编码形成的编码码流中。
17.如权利要求1所述的方法,其特征在于,当所述限制参数仅包含一种参数时,所述限制参数的单位包括以下任一种:以点数为单位,以组数为单位;
当所述限制参数包含两种参数时,所述限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位和以倍数关系为单位。
18.如权利要求17所述的方法,其特征在于,所述限制参数用于确定编码限制点数阈值;若所述限制参数为缓存限制参数,则所述编码限制点数阈值为缓存限制点数阈值;若所述限制参数为延迟限制参数,则所述编码限制点数阈值为延迟限制点数阈值;
若所述限制参数以点数为单位,且所述限制参数的值为X1,则所述编码限制点数阈值为X1个待编码点的中间系数的实际总数量;
若所述限制参数以组数为单位,且所述限制参数的值为X2,则所述编码限制点数阈值为X2组点云分组中的待编码点的中间系数的实际总数量;
若所述限制参数以组数为单位,且所述限制参数的值为X3,并且每组点云分组的点数限制为X4,则所述编码限制点数阈值为X3组点云分组中的待编码点的中间系数的总数量,所述总数量不超过X3*X4的值。
19.如权利要求17所述的方法,其特征在于,所述限制参数包括缓存限制参数和延迟限制参数两种参数;所述缓存限制参数用于确定缓存限制点数阈值;所述延迟限制参数用于确定延迟限制点数阈值;
若所述缓存限制参数以倍数关系为单位,且所述缓存限制参数的值为Y1,则所述缓存限制点数阈值是所述延迟限制点数阈值的Y1倍;
若所述延迟限制参数以倍数关系为单位,且所述延迟限制参数的值为Y2,则所述延迟限制点数阈值是所述缓存限制点数阈值的Y2倍。
20.一种点云处理方法,其特征在于,包括:
获取点云中待解码点的编码码流;
获取所述点云的限制参数,所述限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
对所述待解码点的编码码流进行解码;以及,
按照所述限制参数对所述解码过程进行控制。
21.如权利要求20所述的方法,其特征在于,所述获取所述点云的限制参数包括以下任一种或多种:
将所述限制参数设置为默认值;
从所述编码码流中解析出已设置好为固定值的限制参数;
从所述编码码流中解析出已设置好为可变值的限制参数;
从所述编码码流中解析出已设置好的动态调整后的限制参数。
22.如权利要求20所述的方法,其特征在于,所述解码的解码方式包括以点数为单位的解码方式;所述对所述待解码点的编码码流进行解码,包括:
对所述待解码点的编码码流进行解析,得到所述待解码点的中间系数;所述中间系数包括残差或变换系数;
将所述待解码点的中间系数写入至缓存中;
从所述缓存中读取所述待解码点的中间系数进行解码。
23.如权利要求20所述的方法,其特征在于,所述解码的解码方式包括以组数为单位的解码方式;所述对所述待解码点的编码码流进行解码,包括:
对所述待解码点的编码码流进行解析,得到多组点云分组,所述点云分组中包含所述待解码点的中间系数;所述中间系数包括残差或变换系数;
将所述点云分组写入至缓存中;
从所述缓存中依次读取所述点云分组中的待解码点的中间系数进行解码。
24.如权利要求20所述的方法,其特征在于,所述解码包括行程解码;所述按照所述限制参数对所述解码过程进行控制,包括:
根据所述限制参数确定限制点数阈值,所述限制点数阈值用于限制待解码点的数量阈值;
在所述行程解码的过程中,若读取到限制标志位,则将第一行程长度的计数值设置为预设值;
若所述第一行程长度的计数值大于零且不等于所述限制点数阈值,则将当前待解码点的中间系数设置为特定值,并将所述第一行程长度的计数值减少一个步长,直到所述第一行程长度的计数值等于零为止;
获取在所述第一行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
25.如权利要求20所述的方法,其特征在于,所述解码包括行程解码;所述按照所述限制参数对所述解码过程进行控制,包括:
根据所述限制参数确定限制点数阈值,所述限制点数阈值用于限制待解码点的数量阈值;
在所述行程解码的过程中,从所述编码码流中读取第一行程长度的计数值;
若所述第一行程长度的计数值大于零且等于所述限制点数阈值,则将当前待解码点的中间系数设置为特定值,并将所述第一行程长度的计数值减少一个步长,直到所述第一行程长度的计数值等于零为止;
从所述编码码流中读取第二行程长度的计数值,若所述第二行程长度的计数值大于零且不等于所述限制点数阈值,则将当前待解码点的中间系数设置为预设值,并将所述第二行程长度的计数值减少一个步长,直到所述第二行程长度的计数值等于零为止;
获取在所述第二行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
26.如权利要求20所述的方法,其特征在于,所述解码包括行程解码;所述按照所述限制参数对所述解码过程进行控制,包括:
在所述行程解码的过程中,从所述编码码流中读取第一行程长度的计数值;
若所述第一行程长度的计数值大于零,则将当前待解码点的中间系数设置为特定值,并将所述第一行程长度的计数值减少一个步长,直到所述第一行程长度的计数值等于零为止;
获取在所述第一行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
27.如权利要求22或23所述的方法,其特征在于,所述限制参数包括缓存限制参数;所述按照所述限制参数对所述解码过程进行控制,包括:
按照所述缓存限制参数对所述解码过程中的缓存逻辑进行控制。
28.如权利要求27所述的方法,其特征在于,所述按照所述缓存限制参数对所述解码过程中的缓存逻辑进行控制,包括:
根据所述缓存限制参数确定缓存限制点数阈值,所述缓存限制点数阈值用于限制所述缓存中允许写入的待解码点的数量阈值;
每当所述缓存中写入的待解码点的数量达到所述缓存限制点数阈值时,控制从所述缓存中读取所述待解码点的中间系数进行解码。
29.如权利要求28所述的方法,其特征在于,所述解码的解码方式包括以组数为单位的解码方式;所述每当所述缓存中写入的待解码点的数量达到所述缓存限制点数阈值时,控制从所述缓存中读取所述待解码点的中间系数进行解码,包括:
统计所述缓存中每组点云分组中包含的待解码点的总点数,若所述缓存中包括M组点云分组,且所述M组点云分组包含的待解码点的总点数达到所述缓存限制点数阈值,则控制从所述缓存中读取所述M组点云分组包含的待解码点的中间系数进行解码;或者,
统计所述缓存中包含的点云分组数M,基于M和点云分组的点数限制阈值计算所述缓存中包含的待编码点的总点数,若所述缓存中包含的待编码点的总点数达到所述缓存限制点数阈值,则控制从所述缓存中读取所述M组点云分组包含的待解码点的中间系数进行解码。
30.如权利要求27所述的方法,其特征在于,所述解码的解码方式包括以组数为单位的解码方式;所述按照所述缓存限制参数对所述解码过程中的缓存逻辑进行控制,包括:
根据所述缓存限制参数确定所述缓存中允许写入的点云分组的组数阈值;
每当所述缓存中写入的点云分组的数量达到所述组数阈值时,控制从所述缓存中读取所述缓存中写入的点云分组包含的待解码点的中间系数进行解码。
31.如权利要求30所述的方法,其特征在于,所述方法还包括:
按照预设排列方式对所述缓存中写入的点云分组进行排列;
所述预设排列方式包括以下任一种:固定排列方式,动态排列方式;所述固定排列方式是指缓存中点云分组的中间系数排列方式固定,所述动态排列方式是指缓存中点云分组的中间系数排列方式存在变化。
32.如权利要求31所述的方法,其特征在于,每种所述排列方式对应一个索引值;所述方法进一步包括:
从所述编码码流中解析出索引值,并根据所述索引值确定缓存中的点云分组的排列方式。
33.如权利要求22或23所述的方法,其特征在于,所述限制参数包括延迟限制参数;所述按照所述限制参数对所述解码过程进行控制,包括:
按照所述延迟限制参数对所述解码过程中的延迟逻辑进行控制。
34.如权利要求22或23所述的方法,其特征在于,所述限制参数包括缓存限制参数和延迟限制参数;所述按照所述限制参数对所述解码过程进行控制,包括:
按照所述缓存限制参数和所述延迟限制参数对所述解码过程中的解码逻辑进行控制。
35.如权利要求20所述的方法,其特征在于,所述限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
当所述限制参数仅包含一种参数时,所述限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位;
当所述限制参数包含两种参数时,所述限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位和以倍数关系为单位。
36.一种点云处理装置,其特征在于,所述装置包括:
设置单元,用于设置点云的限制参数,所述限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
获取单元,用于获取所述点云中待编码点的属性信息;
处理单元,用于对所述待编码点的属性信息进行编码;以及,按照所述限制参数对所述编码过程进行控制。
37.一种点云处理装置,其特征在于,所述装置包括:
获取单元,用于获取点云中待解码点的编码码流,以及,获取所述点云的限制参数,所述限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
处理单元,用于对所述待解码点的编码码流进行解码;以及,按照所述限制参数对所述解码过程进行控制。
38.一种计算机设备,其特征在于,所述计算机设备包括:
处理器,适于实现计算机程序;
计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1-19任一项所述的点云处理方法,或者如权利要求20-35任一项所述的点云处理方法。
39.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由处理器加载并执行如权利要求1-19任一项所述的点云处理方法,或者如权利要求20-35任一项所述的点云处理方法。
40.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如如权利要求1-19任一项所述的点云处理方法的步骤,或者实现如权利要求20-35任一项所述的点云处理方法的步骤。
CN202210488291.8A 2022-05-06 2022-05-06 一种点云处理方法、装置、设备、存储介质及产品 Pending CN117061770A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210488291.8A CN117061770A (zh) 2022-05-06 2022-05-06 一种点云处理方法、装置、设备、存储介质及产品
PCT/CN2022/137750 WO2023213074A1 (zh) 2022-05-06 2022-12-09 点云处理方法、装置、设备、存储介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210488291.8A CN117061770A (zh) 2022-05-06 2022-05-06 一种点云处理方法、装置、设备、存储介质及产品

Publications (1)

Publication Number Publication Date
CN117061770A true CN117061770A (zh) 2023-11-14

Family

ID=88646187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210488291.8A Pending CN117061770A (zh) 2022-05-06 2022-05-06 一种点云处理方法、装置、设备、存储介质及产品

Country Status (2)

Country Link
CN (1) CN117061770A (zh)
WO (1) WO2023213074A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11917205B2 (en) * 2019-07-05 2024-02-27 Tencent America LLC Techniques and apparatus for scalable lifting for point-cloud attribute coding
US20210407144A1 (en) * 2020-06-26 2021-12-30 Qualcomm Incorporated Attribute parameter coding for geometry-based point cloud compression
US20230291895A1 (en) * 2020-07-23 2023-09-14 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN116325731A (zh) * 2020-09-25 2023-06-23 Oppo广东移动通信有限公司 点云编解码方法与系统、及点云编码器与点云解码器

Also Published As

Publication number Publication date
WO2023213074A1 (zh) 2023-11-09

Similar Documents

Publication Publication Date Title
US11538196B2 (en) Predictive coding for point cloud compression
US11895307B2 (en) Block-based predictive coding for point cloud compression
US11620768B2 (en) Point cloud geometry compression using octrees with multiple scan orders
US11615557B2 (en) Point cloud compression using octrees with slicing
JP7257547B2 (ja) 点群圧縮のための方法及び装置、並びにコンピュータプログラム
US11132818B2 (en) Predicting attributes for point cloud compression according to a space filling curve
US20210264640A1 (en) Adaptive Distance Based Point Cloud Compression
WO2022121648A1 (zh) 点云数据编码方法、解码方法、设备、介质及程序产品
WO2022121649A1 (zh) 点云数据编码方法、解码方法、点云数据处理方法及装置、电子设备、计算机程序产品及计算机可读存储介质
KR20230087474A (ko) 병렬 코딩을 위한 양방향 데이터 블록들의 조인트 터미네이션
CN115396645B (zh) 一种沉浸媒体的数据处理方法、装置、设备及存储介质
WO2022121650A1 (zh) 点云属性的预测方法、编码器、解码器及存储介质
CN117061770A (zh) 一种点云处理方法、装置、设备、存储介质及产品
Shao et al. Point Cloud in the Air
CN116016951A (zh) 点云处理方法、装置、设备及存储介质
WO2023024840A1 (zh) 点云编解码方法、编码器、解码器及存储介质
WO2023103565A1 (zh) 点云属性信息的编解码方法、装置、设备及存储介质
WO2023024842A1 (zh) 点云编解码方法、装置、设备及存储介质
CN115474041B (zh) 点云属性的预测方法、装置及相关设备
WO2024060161A1 (zh) 编解码方法、编码器、解码器以及存储介质
CN116033186A (zh) 一种点云数据处理方法、装置、设备以及介质
WO2023169001A1 (zh) 一种沉浸媒体的数据处理方法、装置、设备及存储介质
CN117896536A (zh) 点云解码、编码方法、介质、电子设备及产品
CN115100302A (zh) 点云处理方法、装置、设备以及介质
CN115720273A (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: 40098429

Country of ref document: HK