CN116261856A - 一种点云分层方法及解码器、编码器、存储介质 - Google Patents

一种点云分层方法及解码器、编码器、存储介质 Download PDF

Info

Publication number
CN116261856A
CN116261856A CN202080105639.XA CN202080105639A CN116261856A CN 116261856 A CN116261856 A CN 116261856A CN 202080105639 A CN202080105639 A CN 202080105639A CN 116261856 A CN116261856 A CN 116261856A
Authority
CN
China
Prior art keywords
point cloud
value
determining
maximum allowable
code stream
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
CN202080105639.XA
Other languages
English (en)
Inventor
万帅
魏磊
杨付正
丁晓斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202310888271.4A priority Critical patent/CN116744013A/zh
Publication of CN116261856A publication Critical patent/CN116261856A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/136Incoming video signal characteristics or properties
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

本申请一示例性实施例公开了一种点云分层方法,所述方法应用于解码器中,包括:接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;确定所述点云码流中包含的第一语法元素的最大容许取值;解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。本申请一示例性实施例还同时提供了一种编码器、解码器及存储介质。

Description

一种点云分层方法及解码器、编码器、存储介质 技术领域
本申请涉及视频编码领域,涉及但不限于一种点云分层方法及解码器、编码器、存储介质。
背景技术
在相关技术中,在点云属性细节层次(Level of Detail,LOD)划分的过程中,由用户手动设置对LOD的划分层数。在点云根据几何的点云压缩编码(Geometry-based Point Cloud Compression,G-PCC)框架的通用测试条件中,通常将LOD的划分层数设置为一个较大的数,这样,造成设置值与实际的划分层数不符。
发明内容
有鉴于此,本申请一示例性实施例为解决相关技术中存在的至少一个问题而提供一种点云分层方法及解码器、编码器、存储介质。
本申请一示例性实施例的技术方案是这样实现的:
第一方面,本申请一示例性实施例提供了一种点云分层方法,应用于解码器,包括:
接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;
确定所述点云码流中包含的第一语法元素的最大容许取值;
解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;
根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;
根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。
第二方面,本申请一示例性实施例提供了一种点云分层方法,应用于编码器,包括:
获取点云的几何信息和属性信息;
确定第一语法元素的最大容许取值,其中,所述第一语法元素表示对所述点云的属性信息进行编码过程中细节层次的数量;
根据所述最大容许取值和所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值;
根据对所述点云的细分层次划分,对所述点云进行编码,生成码流;
对所述第一语法元素取值进行编码,将编码比特写入码流。
第三方面,本申请实施例提供一种解码器,包括:
第一接收模块,用于接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;
第一确定模块,用于确定所述点云码流中包含的第一语法元素的最大容许取值;
第一解析模块,用于解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;
第二确定模块,用于根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;
第一解码模块,用于根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。
第四方面,本申请实施例提供一种编码器,包括:
第一获取模块,用于获取点云的几何信息和属性信息;
第一确定模块,用于确定第一语法元素的最大容许取值,其中,所述第一语法元素表示对所述点云的属性信息进行编码过程中细节层次的数量;
第一划分模块,用于根据所述最大容许取值和所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值;
第一编码模块,用于根据对所述点云的细分层次划分,对所述点云进行编码,生成码流;
第二编码模块,用于对所述第一语法元素取值进行编码,将编码比特写入码流。
第五方面,本申请实施例提供一种解码器,包括:
第二存储器和第二处理器;
所述第二存储器存储有可在第二处理器上运行的计算机程序,所述第二处理器执行所述程序时实现第一方面所述点云分层方法。
第三方面,本申请实施例提供一种编码器,包括:
第一存储器和第一处理器;
所述第一存储器存储有可在第一处理器上运行的计算机程序,所述第一处理器执行所述程序时实现第二方面所述点云分层方法。
本申请一示例性实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述点云分层方法中的步骤。
附图说明
图1A为本申请一示例性实施例点云分层方法实现流程示意图;
图1B为本申请一示例性实施例提供的点云分层方法的另一实现流程示意图;
图2A为本申请实施例提供的一种点云分层方法的流程示意图;
图2B为本申请一示例性实施例提供的点云分层方法的另一实现流程示意图;
图3为本申请一示例性实施例点云压缩编码流程示意图;
图4为本申请一示例性实施例进行LOD划分的实现流程示意图;
图5为本申请一示例性实施例提供的根据莫顿码进行LOD划分的结构示意图;
图6为本申请一示例性实施例根据距离进行LOD划分的结构示意图;
图7A为本申请实施例一种解码器的硬件结构示意图;
图7B为本申请实施例另一种解码器的硬件结构示意图;
图8A为本申请实施例一种编码器的硬件结构示意图;
图8B为本申请实施例另一种编码器的硬件结构示意图。
具体实施方式
下面将结合本申请一示例性实施例中的附图,对本申请一示例性实施例中的技术方案进行清楚、完整地描述。
本申请一示例性实施例提出一种点云分层方法,该方法应用于具有前置摄像或者后置摄像功能的移动设备,所述移动设备可以以各种形式来实施。例如,本申请一示例性实施例中所描述的移动设备可以包括手机、平板电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)等。另外,该方法所实现的功能可以通过移动设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该移动设备至少包括处理器和存储介质。
本申请实施例提供一种点云分层方法,该方法应用于视频解码设备,即解码器。该方法所实现的功能可以通过视频解码设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该视频解码设备至少包括处理器和存储介质。参见图1A,图1A为本申请一示例性实施例点云分层方法实现流程示意图,结合图1A进行以下说明:
步骤S101,接收点云码流。
这里,点云码流包括:所述点云的几何信息(geometry)和属性信息(Attribute)。点云码流可以理解为是需要进行分层的点云数据,比如,用于形成三维视频的点云数据等。对点云数据进行分层的方式可以是根据莫顿码实现,还可以是根据采样距离实现。在步骤S101中,点云码流的几何信息包括:点云法向量、曲率、点云密度、点云表面粗糙度、点云重心、点云权重重心、点云协方差和点云互协方差等。属性信息包括:输入点云的划分距离的平方、划分总层数、颜色空间的信息、空间分辨率、点位精度和表面法向量等。
在一些可能的实现方式中,根据莫顿码实现对点云数据进行LOD分层的过程如下:
首先,假设变量(P i) i=1...N保存原始的输入点云,变量(M i) i=1....N为与每个点相关的莫顿值。并且设置D0和ρ分别为两个用户设置的初始参数,用于作为划分LOD距离阈值的参数,其中,ρ>1。其中计算莫顿码的具体方法描述如下所示,对于每一个分量用d比特二进制数表示的三维坐标,其三个分量可以表示为公式(1)所示:
Figure PCTCN2020119707-APPB-000001
其中,x l,y l,z l∈{0,1}分别是x,y,z的最高位(l=1)到最低位(l=d)对应的二进制数值。莫顿码M是对x,y,z从最高位开始,依次交叉排列x l,y l,z l到最低位,M的计算公式如下公式(2)所示:
Figure PCTCN2020119707-APPB-000002
其中,m l'∈{0,1}分别是M的最高位(l'=1)到最低位(l'=3d)的值。在得到点云中每个点的莫顿码M后,将点云中的点按莫顿码由小到大的顺序进行排列。变量I中保存着所有点的索引,该算法进行不断地迭代,在第k迭代时,属于LODk中的点会从LOD0到第LODk-1层中进行查找最近邻居。该算法的具体过程如下:
首先,初始化采样距离D=D 0
然后,在第k次迭代时,k=0,1…N-1(N为LOD划分的总层数)。变量L(k)保存属于第k层LOD中的点,变量O(k)属于比LODk层更高的点集。其中,L(k)和O(k)的计算步骤如下:
第一步,首先,O(k)和L(k)被初始化;
其中,L(k)被初始化为空集;O(k)初始化为空集。
第二步,每一次迭代按照变量I中保存点的索引进行遍历。每一次遍历都会计算当前点到集合O(k)中一定范围内所有点的距离。根据当前点所对应的莫顿序值,在集合O(k)的一个搜索范围SR1内进行查找(SR1代表根据莫顿序的搜索范围,一般为8,16,64),如果在该范围内查找到距离当前点距离小于阈值dl,就将当前的点加入到集合L(k)中,否则加入到集合O(k)中。
第三步,在每一次迭代的过程中,集合L(k)和O(K)分别进行计算,并且O(k)中的点会被用来作为集合L(k)中点的预测点,如此,实现对点云数据的LOD分层。假设集合R(k)=L(k)\L(k-1),其中R(k)代表LOD(k-1)与LOD(k)集合相差部分的点集。
在另一实现方式中,根据采样距离实现对点云数据进行LOD分层的过程如下:
LOD的生成过程是通过一组用户设置的不同距离阈值(d l) l=0...L-1将原始输入点云划分为不同的细化级别(R l) l=0...L-1。注意该距离阈值(d l) l=0...L-1需要满足两个条件:即,
Figure PCTCN2020119707-APPB-000003
该LOD的划分过程是确定的,是在点云几何重建之后,这时候可以得到点云的几何坐标信息。该划分LOD的过程同时应用在点云的编码和解码端,LOD划分的具体过程如下:
1)首先,将所有的点标记为“未访问过”的点集,并且初始化“访问过”的点集为V为空集。
2)该算法过程是不断地进行迭代。每一次迭代l所对应的细化级别R l生成步骤如下所示:
第一步,该算法迭代遍历所有的点;
第二步,如果当前的点已经遍历过,则忽略该点;
第三步,否则,计算该点到集合V最近的距离D;
第四步,如果该最近距离D大于等于阈值d l,则将该点添加到细化级别R l和V中;
第五步,该过程进行不断地迭代直至所有的点都被遍历过。
3)第l个LOD集合,即LOD l是通过将精细化级别R 0,R 1, ....,R l中的点进行合并得到。
4)该过程进行不断地迭代直到所有的LOD生成或者所有的点都被遍历过,如此实现对点云数据的LOD分层。
步骤S102,确定点云码流中包含的第一语法元素的最大容许取值。
这里,最大容许取值用于指定属性编码的详细程度等级,可以是在0到X的范围之内,X为正整数。可以通过参考点云码流的档次(Profile)、等级(Tier)或级别(Level),确定点云码流进行分层的最大容许取值。或者将最大容许取值设定为常数,即根据该常数对点云码流进行LOD分层。
步骤S103,解析点云码流,根据最大容许取值,确定第一语法元素取值。
这里,对点云码流进行解析,获取到对该点云码流进行分层的最大容许取值。然后,可以通过参考点云码流的档次(Profile)、等级(Tier)或级别(Level),从最大容许取值中确定出第一语法元素取值,或者将第一语法元素取值设定为常数,即根据该常数对点云码流进行LOD分层。
在一些可能的实现方式中,确定第一语法元素取值的过程可以通过以下两种方式实现:
方式一:首先,解析所述点云码流,获得符合性(Conformance)参数。
这里,符合性参数用于表征该点云码流的自身属性,至少包括以下参数之一:档次、等级和级别。
然后,根据预设的所述符合性参数与所述最大容许取值之间的对应关系,确定所述最大容许取值。
这里,符合性参数与所述最大容许取值之间的对应关系,为预设的对应关系,包括:档次、等级和级别与最大容许取值之间的对应关系。在一个具体例子中,将级别划分为高中低三个等级,设定不同的等级对应不同的最大容许取值,等级越大对应的最大容许取值越高,比如,高等级对应的最大容许取值为31,中等级对应的最大容许取值为21,低等级对应的最大容许取值为16;档次和级别与最大容许取值之间的对应关系也可以如此设定。如此,可根据符合性参数与所述最大容许取值之间的对应关系,确定出最大容许取值。
方式二:将最大容许取值设置为预设的常数值,其中,常数值为大于0的整数。
在一些可能的实现方式中,常数值为大于0,且小于或等于预设阈值的整数。在一个具体例子中,预设阈值可以是31,在其他实施例中,预设阈值还可以取其他数值,比如,6、7、8、16、21、32或64等。
步骤S104,根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量。
这里,设定第一语法元素取值之后,可采用该取值减去1,作为对点云属性信息解码过程中细节层次的数量。
在一些实施例中,在确定第一语法元素取值之后,首先,获取所述点云码流的莫顿码集合;在一些可能的实现方式中,首先,获取待搜索点云数据;比如,用于形成三维视频的点云数据等。然后,确定所述点云数据的莫顿码;比如,可以通过先确定点云数据的二进制编码数据流,然后根据该二进制编码数据流,确定点云数据的莫顿码。最后,将所述点云数据的莫顿码按照升序进行排列,得到包含多个莫顿码的所述莫顿码集合。在其他实施例中,也可以将点云数据的莫顿码按照降序进行排列,得到包含多个莫顿码的所述莫顿码集合;还可以是将点云数据的莫顿码按照任意特定的顺序(比如,任意设定的,中间最大,往两端依次减小的顺序等)进行排列,以得到莫顿码集合。然后,根据所述莫顿码集合和所述几何信息,在所述最大容许取值范围内,确定所述第一语法元素取值;最后,根据所述第一语法元素取值,对所述点云进行细分层次划分。
步骤S105,根据细节层次的数量和点云的几何信息,对属性信息进行解码,获得点云的重建点云。
这里,细节层次的数量,可以理解为是对点云进行LOD分层的层数,通过综合考虑该层数和点云的几何信息,对点云的属性信息仅解码,实现点云重建。在一些可能的实现方式中,首先,根据细节层次的数量和点云的几何信息,确定点云中一个或多个细节层次的重建值。然后,根据所述一个或多个细节层次的重建值,获得点云的重建点云。比如,根据所述细节层次的数量和所述点云的几何信息,对所述点云进行细节层次划分,获得一个或多个细节层次的重建值。在一示例性实施例中,解码器在进行点云重建时,可以从码流中,解析出n个条带中每个条带交点位置信息,以及n个条带对应的点云信息,那么在点云模型的重建时,就可以根据n个条带中每个条带交点位置信息和n个条带对应的点云信息,进行点云模型的重建。
在本申请一示例性实施例中,通过获取点云的几何信息和属性信息,确定第一语法元素的最大容许取值,然后,根据最大容许取值和点云的几何信息,确定第一语法元素取值;最后,根据对点云的细分层次划分,对点云进行编码;并对第一语法元素取值进行编码,将编码比特写入码流。如此,根据点云数据的几何信息和属性信息,自适应的确定该点云数据最大容许取值,从而规定了对点云数据进行分层的第一语法元素的取值的范围,进而能够在编码端和解码端对用户设置的LOD划分层数进行检查,能够增加用户设置的划分层数与实际划分层数的一致性。
在一些实施例中,在确定第一语法元素取值之后,即步骤S103之后,所述方法还包括以下过程:
首先,获取所述点云码流的莫顿码集合;在一些可能的实现方式中,首先,获取待搜索点云数据;比如,用于形成三维视频的点云数据等。然后,确定所述点云数据的莫顿码;比如,可以通过先确定点云数据的二进制编码数据流,然后根据该二进制编码数据流,确定点云数据的莫顿码。最后,将所述点云数据的莫顿码按照升序进行排列,得到包含多个莫顿码的所述莫顿码集合。在其他实施例中,也可以将点云数据的莫顿码按照降序进行排列,得到包含多个莫顿码的所述莫顿码集合;还可以是将点云数据的莫顿码按照任意特定的顺序(比如,任意设定的,中间最大,往两端依次减小的顺序等)进行排列,以得到莫顿码集合。然后,根据所述莫顿码集合和所述几何信息,在所述最大容许取值范围内,确定所述第一语法元素取值;最后,根据所述第一语法元素取值,对所述点云进行细分层次划分。
在一些实施例中,在根据莫顿码实现LOD划分的情况下,可根据点云数据的属性信息自适应的确定对点云数据进行分层的最大容许取值,即步骤S102,可以通过以下步骤实现,参见图1B,图1B为本申请一示例性实施例提供的点云分层方法的另一实现流程示意图,进行以下说明:
步骤S121,解析所述点云码流,确定根节点的长度、宽度和高度的取值。
这里,根节点表示点云中最深的节点,可以采用包围盒来表示。
在一些可能的实现方式中,解析所述点云码流中包含的几何信息,确定所述根节点的长度、宽度和高度的取值。比如,解析所述几何信息中的单元头信息,确定所述根节点的长度、宽度和高度的取值。因为在编码侧,将根节点的长度、宽度和高度的取值编码写入几何信息中的单元头信息(其中,单元头信息可以表示为geometry_data_unit_header()),所以在解码侧可以通过解析几何信息中的单元头信息,确定所述根节点的长度、宽度和高度的取值。这里,在编码器中根据所述点云的几何信息,确定所述点云的包围盒,根据包围盒,确定所述点云的根节点,以得到所述点云的根节点的长度、宽度和高度的取值,并将得到的点云的根节点的长度、宽度和高度的取值编码为码流写入单元头信息中。
步骤S122,解析所述点云码流,确定右移第一参数的取值。
这里,根据点云的几何信息,确定点云进行分层的右移第一参数的取值,比如,用户输入的初始采样距离。在一些可能的实现方式中,通过解析点云码流,确定点云的初始采样距离,将该初始采样距离设置为右移第一参数的取值。初始采样距离可以是用户设定的,也可以是根据点云的属性信息设定的。
步骤S123,根据右移第一参数的取值和根节点的长度、宽度和高度的取值,确定所述最大容许取值。
这里,无论是根据采样距离实现对点云数据进行LOD分层,还是根据莫顿码实现对点云数据进行LOD分层,综合考虑点云的属性信息确定对点云数据进行分层的第N层,通过判断第N层和目标长度之间的关系,来设定最大容许取值。
在一些可能的实现方式中,确定对点云码流进行划分的最大容许取值,包括以下两种实现方式:
方式一:在根据莫顿码实现对点云数据进行LOD分层的方式下,可以通过以下步骤实现:
第一步,将根节点维度最大值设置为根节点的长度、宽度和高度三个取值中的最大值。
这里,将根节点的长度、宽度和高度三个取值中的最大值(gbh.maxRootNodeDimLog2),设置为根节点维度最大值。通过属性信息中包括的:点云初始划分距离,划分总层数和颜色空间的变换等参数,对点云进行处理,以最终确定出第N层的节点的大小,如果第N层的节点的大小与根节点的大小之间的差值较小,或二者相等,那么将第N层所在的层数,确定为最大容许取值。
在该步骤中,在根据莫顿码实现LOD划分的场景下,通过对比第N层的节点的大小与根节点的大小之间的大小关系,自适应的确定出最大LOD可划分层数,明确规定了语法元素(lifting_num_detail_levels_minus1)的范围。
第二步,解析所述点云码流,确定右移第二参数的取值。
这里,右移第二参数的取值,可以理解为是对右移第一参数的取值的微调量,通过解析点云码流,确定每一分块的初始采样距离,并求和,将初始采样距离和值与右移第一参数相减,即可得到右移第二参数的取值。在一些可能的实现方式中,通过对点云数据进行编码时,首先,将点云数据划分为多个小模块,然后,在几何信息中,确定点云中每一分块的初始采样距离,并对多个模块的初始采样距离求和,将初始采样距离和值与右移第一参数的差值,确定为右移第二参数,即右移第二参数可以理解为是对右移第一参数进行微调的调整量。
第三步,将所述根节点维度最大值与所述右移第一参数和所述右移第二参数的差值设置为所述 最大容许值。
这里,对右移第一参数和右移第二参数进行求和,比如,根据输入的初始划分距离和划分总层数,对点云进行计算,以确定出该初始采样距离和值。在本申请一示例性实施例中,根据右移第一参数aps.dist2和输入点云进行计算得到右移第二参数abh.attr_dist2_delta,然后,根据aps.dist2和abh.attr_dist2_delta计算得到初始右移位数shiftbits0。
在一些可能的实现方式中,可以通过以下过程确定最大容许值:
步骤A,确定属性信息的头文件函数。
这里,根据属性信息中包括的输入参数(比如,云初始划分距离,划分总层数和颜色空间的变换等),对点云数据进行处理,得到该头文件函数(比如,得到abh.attr_dist2_delta)。该头文件函数用于表征点云数据的属性参数。
步骤B,将头文件函数的数值和属性信息对应的参数值相加,得到初始采样距离和值。
这里,将abh.attr_dist2_delta的数值(对应于右移第二参数的取值)与属性信息对应的参数值进行相加,将相加得到的结果作为初始右移位数。如此,通过根据输入的属性信息对点云数据进行处理,从而确定出对点云进行划分时的初始右移位数。
步骤C,将根节点维度最大值与该初始采样距离和值相减,得到最大容许值。
这里,步骤C可以通过以下过程实现:
步骤C1,根据初始采样距离和值,确定对点云进行划分的第N层所属的节点。
其中,N为大于等于2的整数;在得到初始右移位数的基础上,每划分一层,初始右移位数增加1,对应的叶子节点的大小增加2倍。比如,初始右移位数为shiftbits0,对应的节点大小为2 shifbits0,每划分一层,shiftbits0+1,对应的叶子节点增加为前一层节点的2倍;所以,当划分到第N层时,右移位数shiftbits=shiftbits0+(N-1),第N层所属的节点的大小为2 N-1+shifbits0
在一些可能的实现方式中,确定第N层所属的节点的过程如下:
首先,根据初始右移位数和预设底数,确定对点云码流进行分层的初始层所属节点的尺寸信息。
这里,以预设底数为底数,以初始右移位数为指数,将得到的结果作为对点云码流进行分层的初始层所属节点的大小;比如,以2为底数,以shiftbits0为初始右移位数,那么对点云码流进行分层的初始层所属节点的大小为2 shifbits0
其次,确定第N层与初始层之间相差的层数差值。
这里,假设初始层为1,那么差值为N-1。
再次,按照层数差值对初始层所属节点的尺寸信息进行调整,得到已调尺寸信息。
这里,在初始右移位数的基础上,与层数差值相加,即可得到第N层右移的位数,采用第N层右移的位数对初始层所属的节点的大小进行调整,从而得到已调尺寸信息。比如,层数差值为N-1,那么第N层右移的位数为shiftbits0+(N-1),根据此,在2 shifbits0的基础上,增加2 N-1倍,从而得到已调尺寸信息2 N-1+shifbits0
最后,根据已调尺寸信息,确定第N层所属的节点。
这里,将该已调尺寸信息,作为第N层所属的节点的大小。比如,将2 N-1+shifbits0作为第N层所属节点的大小。
步骤C2,根据第N层所属的节点和根节点,确定最大容许取值。
这里,通过比较第N层所属的节点的尺寸与根节点的尺寸之间的大小关系,确定层数最大值。
在一些可能的实现方式中,根据第N层所属的节点和根节点,确定最大容许取值,可以通过以下过程实现:
首先,确定根节点的尺寸信息。
这里,根节点的尺寸信息即为包围盒中最长边的长度。
其次,确定已调尺寸信息和根节点的尺寸信息之间的第一差值。
这里,比较已调尺寸信息和根节点的尺寸信息之间的大小,将根节点的尺寸信息与已调尺寸信息相减,得到第一差值。比如,已调尺寸信息为2 N-1+shifbits0,根节点的尺寸信息为2 maxRootNodeDimLog2,那么第一差值为2 maxRootNodeDimLog2-2 N-1+shifbits0
最后,如果第一差值小于等于第一预设阈值,确定第N层对应的层数为最大容许取值。
这里,第一预设阈值为接近0的整数,即在第一差值接近于0的情况下,说明第N层所属的节 点的大小与根节点的大小很接近,进而说明第N层对应的层数已是对点云码流进行分层的最大层数,如此,将所属节点的大小与根节点的大小非常接近的第N层对应的层数,作为最大容许取值,实现了根据点云的属性信息自适应的设定语法元素lifting_num_detail_levels_minus1的范围。
在方式一中,采用输入的点云的属性参数集对点云数据进行处理,从而确定出点云的初始右移位数;在初始右移位数的基础上,确定出初始划分层对应节点的大小;然后,每划分一层,初始右移位数增加,并且划分层对应的节点大小也增加,从而可以确定出第N层右移的位数,以及第N层对应节点的大小,最后,通过对比第N层节点的大小与目标长度之间的大小关系,设定最大容许取值。
方式二:在根据采样距离实现对点云进行LOD分层的方式下,首先,通过结合属性信息中的初始采样距离和相邻两层的采样距离之比,确定出第N层的采样距离;然后,通过对比第N层的采样距离与目标长度之间的大小关系,设定最大容许取值,可以通过以下步骤实现:
步骤A,根据所述根节点的长度、宽度和高度的取值,确定所述根节点对角线距离取值。
这里,将包围盒中最长对角线的长度,确定为目标长度。根据点云码流的属性信息中的根节点的大小,确定包围盒中相互垂直的三条边的长度,根据这三条边的长度,确定出包围盒中两个距离最远的顶点之间的长度,即最长对角线的长度,从而得到目标长度。在一个具体例子中,根节点的尺寸为2 maxRootNodeDimLog2,那么这三条边的边长分别为2 gbh.rootNodeSizeLog2[k](k=0,1,2)。
步骤B,根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值。
在一些可能的实现方式中,步骤B可以通过以下步骤实现:
步骤B1,确定第一比值。
这里,第一比值为所述根节点对角线距离取值与所述右移第一参数值的算术平方根之间的比值。比如,第一层与第二层的采样距离之间的比值。在本申请一示例性实施例中,可以设定每相邻两层之间的采样距离之间的比值相同,比如,都为P。在其他实施例中,还可以设定每相邻两层之间的采样距离之间的比值不同。
步骤B2,确定第一比值的对数值。
这里,第一比值的对数值可以理解为是第N层的采样距离,根据包围盒中最长对角线的长度和第一比值,可以确定第N层的采样距离。比如,在初始采样距离的基础上乘以第一比值,即可确定出下一层的采样距离,以此类推,可确定出第N层的采样距离。
在一些可能的实现方式中,通过解析点云码流,确定相邻细节层次的采样距离之间的第一比值,根据点云的几何信息中点云坐标的稀疏情况,设定第一比值。该第一比值可以设定为任意大于1的数,以保证对点云进行分层的过程中,对点云的采集是随着层数的递增,逐层稀疏的。
步骤B3,将所述对数值,确定为所述最大容许取值。
这里,所述对数值对应的底数设置为相邻细节层次的采样距离之间的比值。在一些实施例中,通过比较第N层的采样距离与包围盒中最长对角线的长度的大小,如果第N层的采样距离与包围盒中最长对角线的长度非常接近,说明第N层即是对点云进行分层的最后一层,即第N层对应的层数为最大容许取值。
在一些示例性实施例中,在根据距离实现LOD划分的情况下,可通过包围盒最长的对角线来设定最大容许取值,可以通过以下过程实现:
第一步,确定包围盒中互相垂直的三条边的边长。
这里,在包围盒为立方体的情况下,包围盒中互相垂直的三条边可以理解为是立方体的长宽高。
第二步,根据三条边的边长,确定最长对角线的长度。
这里,如果这三条边的边长分别为2 gbh.rootNodeSizeLog2[k](k=0,1,2)。根据勾股定理,最长对角线的长度为
Figure PCTCN2020119707-APPB-000004
通过上述第一步和第二步实现了根据距离对LOD进行划分时,采用包围盒中相互垂直的三条边的边长,确定出最长对角线的长度,即可得到目标长度,以用于设定最大容许取值。
在一些示例性实施例中,在根据距离实现LOD划分的情况下,可以通过相邻两层的采样距离和采样距离比值,来确定第N层的采样距离,可以通过以下过程实现:
第一步,获取至少两个相邻两层的采样距离,得到采样距离集合。
这里,通过分析属性信息包括的初始采样距离和总共采样层数,确定多个相邻层的采样距离。 比如,分别获取第一层与第二层采样距离,第三层与第四层的采样距离,第五层与第六层的采样距离等,组成采样距离集合。也就是说,该采样距离集合中包括多个相邻层的采样距离。
第二步,确定采样距离集合中相邻两层的采样距离之间的比值,以得到预设采样距离比值。
这里,对采样距离集合中相邻两层的采样距离求比值,从而得到相邻两层之间的采样距离之比。在本申请一示例性实施例中,每相邻两层之间的采样距离之比相同,将该相同的比值作为预设采样距离比值。该预设距离比值,可以是这样通过对相邻两层的采样距离求比值得到的,还可以是事先设定的。
第三步,根据预设采样距离比值和属性信息中的初始采样距离,确定第N层的采样距离。
这里,首先,确定第N层与属性信息中初始采样距离对应的层之间的层数差值,然后,将层数差值个预设采样距离比值相乘,最后,将乘积结果与目标长度相乘即可得到第N层的采样距离。比如,第N层与初始采样距离对应的层之间的层数差值为N-1,预设采样距离比值为P,那么第N层的采样距离为P N-1D 1
在本申请一示例性实施例中,通过在属性信息中获取相邻两层的采样距离,来确定采样距离比值,并结合初始采样距离,来确定第N层的采样距离;如此,实现了在根据距离实现LOD划分的情况下,对每一层的采样距离的确定,从而可以设定最大容许取值。
在一些示例性实施例中,在根据距离实现LOD划分的情况下,可以通过判断第N层的采样距离与目标长度之间的关系,来设定最大容许取值,可以通过以下过程实现:
第一步,确定第N层的采样距离和目标长度之间的第二差值。
这里,确定第N层的采样距离与包围盒的最长对角线之间的差值,得到第二差值。比如,第N层的采样距离为P N-1D 1,包围盒的最长对角线为
Figure PCTCN2020119707-APPB-000005
第二差值为
Figure PCTCN2020119707-APPB-000006
第二步,如果第二差值小于等于第二预设阈值,确定第N层对应的层数为所述最大容许取值。
这里,第二预设阈值为接近0的正数,可以与第一预设阈值相同或不同。如果第二差值小于等于第二预设阈值,说明第N层的采样距离与包围盒的最长对角线的长度非常接近,从而说明第N层为对点云码流进行分层的最后一层,从而可以将第N层对应的层数作为最大容许取值。
在方式二中,首先,响应于接收到的设置指令,在最大容许取值范围内,确定第一语法元素取值。即,接收到用户输入的进行层数设置的指令时,可在该最大容许取值内,选择一个层数作为第一语法元素取值;比如,最大容许取值为[0,20],那么可以选择18作为第一语法元素取值。然后,按照第一语法元素取值,对点云进行划分。如此,在本申请一示例性实施例中,根据点云数据的几何信息和属性信息,自适应的确定该点云数据最大可划分层数,从而规定了对点云数据进行分层的最大容许取值,进而能够在编码端和解码端对用户设置的LOD划分层数进行检查,能够增加用户设置的划分层数与实际划分层数的一致性。
在一些示例性实施例中,设定对点云数据进行分层的最大容许取值之后,能够在编码端和解码端可以对用户设置的LOD划分层数进行检查,以增加系统的一致性,即在按照所述最大容许取值,对所述点云码流进行划分之后,所述方法还包括以下过程:
第一步,获取输入的对点云进行分层的预设层数。
这里,在编码端或解码端,当用户对点云进行分层时,可以获取用户对点云码流进行分层的预设层数。比如,用户设定的对点云码流进行分层的预设层数为30。
第二步,根据最大容许取值,确定预设层数的合法性。
这里,判断预设层数是否在最大容许取值之内,如果预设层数在最大容许取值之内,确定该预设层数是合法的,即该预设层数是可用的,如果预设层数不在最大容许取值之内,确定该预设层数是不合法的,即该预设层数是不可用的。在一个具体例子中,如果预设层数为30,最大容许取值为21,则说明预设层数是不合法的。
第三步,如果预设层数的合法性表明预设层数小于等于最大容许取值,按照预设层数对点云进行分层。
这里,预设层数小于等于最大容许取值,即预设层数在最大容许取值之内,说明预设层数是可用的,那么可以按照该预设层数对点云进行分层。如此,能够在编码端和解码端可以对用户设置的 LOD划分层数进行检查,从而提高了用户设置的期望LOD划分层数与实际LOD划分层数的一致性。
本申请实施例提供一种点云分层方法,该方法应用于视频编码设备,即编码器。该方法所实现的功能可以通过视频编码设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该视频编码设备至少包括处理器和存储介质。参见图2A,图2A为本申请实施例提供的一种点云分层方法的流程示意图。如图2A所示,该方法可以包括:
步骤S201,获取点云的几何信息和属性信息。
这里,点云码流可以理解为是需要进行分层的点云数据,比如,用于形成三维视频的点云数据等。对点云数据进行分层的方式可以是根据莫顿码实现,还可以是根据采样距离实现。在步骤S101中,点云码流的几何信息包括:点云法向量、曲率、点云密度、点云表面粗糙度、点云重心、点云权重重心、点云协方差和点云互协方差等。属性信息包括:输入点云的划分距离的平方、划分总层数、颜色空间的信息、空间分辨率、点位精度和表面法向量等。
在一些可能的实现方式中,根据莫顿码实现对点云数据进行LOD分层的过程如下:
假设变量(P i) i=1...N保存原始的输入点云,变量(M i) i=1....N为与每个点相关的莫顿值。并且设置D0和ρ分别为两个用户设置的初始参数,用于作为划分LOD距离阈值的参数,其中,ρ>1。其中计算莫顿码的具体方法描述如下所示,对于每一个分量用d比特二进制数表示的三维坐标,其三个分量可以表示上述公式(1)。
莫顿码M是对x,y,z从最高位开始,依次交叉排列x l,y l,z l到最低位,M的计算公式如公式(2)。
在得到点云中每个点的莫顿码M后,将点云中的点按莫顿码由小到大的顺序进行排列。变量I中保存着所有点的索引,该算法进行不断地迭代,在第k迭代时,属于LODk中的点会从LOD0到第LODk-1层中进行查找最近邻居。该算法的具体过程如下:
首先,初始化采样距离D=D 0
然后,在第k次迭代时,k=0,1…N-1(N为LOD划分的总层数)。变量L(k)保存属于第k层LOD中的点,变量O(k)属于比LODk层更高的点集。其中,L(k)和O(k)的计算步骤如下:
第一步,对O(k)和L(k)进行初始化;
其中,L(k)被初始化为空集;O(k)初始化为空集。
第二步,每一次迭代按照变量I中保存点的索引进行遍历。每一次遍历都会计算当前点到集合O(k)中一定范围内所有点的距离。根据当前点所对应的莫顿序值,在集合O(k)的一个搜索范围SR1内进行查找(SR1代表根据莫顿序的搜索范围,一般为8,16,64),如果在该范围内查找到距离当前点距离小于阈值dl,就将当前的点加入到集合L(k)中,否则加入到集合O(k)中。
第三步,在每一次迭代的过程中,集合L(k)和O(K)分别进行计算,并且O(k)中的点会被用来作为集合L(k)中点的预测点,如此,实现对点云数据的LOD分层。假设集合R(k)=L(k)\L(k-1),其中R(k)代表LOD(k-1)与LOD(k)集合相差部分的点集。
在另一实现方式中,根据采样距离实现对点云数据进行LOD分层的过程如下:
LOD的生成过程是通过一组用户设置的不同距离阈值(d l) l=0...L-1将原始输入点云划分为不同的细化级别(R l) l=0...L-1。注意该距离阈值(d l) l=0...L-1需要满足两个条件:即,
Figure PCTCN2020119707-APPB-000007
该LOD的划分过程是确定的,是在点云几何重建之后,这时候可以得到点云的几何坐标信息。该划分LOD的过程同时应用在点云的编码和解码端,LOD划分的具体过程如下:
1)首先,将所有的点标记为“未访问过”的点集,并且初始化“访问过”的点集为V为空集。
2)该算法过程是不断地进行迭代。每一次迭代l所对应的细化级别R l生成步骤如下所示:
第一步,该算法迭代遍历所有的点;
第二步,如果当前的点已经遍历过,则忽略该点;
第三步,否则,计算该点到集合V最近的距离D;
第四步,如果该最近距离D大于等于阈值d l,则将该点添加到细化级别R l和V中;
第五步,该过程进行不断地迭代直至所有的点都被遍历过。
3)第l个LOD集合,即LOD l是通过将精细化级别R 0,R 1, ....,R l中的点进行合并得到。
4)该过程进行不断地迭代直到所有的LOD生成或者所有的点都被遍历过,如此实现对点云数 据的LOD分层。
步骤S202,确定第一语法元素的最大容许取值。
这里,第一语法元素表示对所述点云的属性信息进行编码过程中细节层次的数量。可以通过参考点云码流的档次(Profile)、等级(Tier)或级别(Level),确定点云码流进行分层的最大容许取值。或者将最大容许取值设定为常数,即根据该常数对点云码流进行LOD分层。
在一些可能的实现方式中,确定最大容许取值的过程可以通过以下量种方式实现:
方式一:首先,确定符合性(Conformance)参数。
这里,符合性参数用于表征该点云码流的自身属性,至少包括以下参数之一:档次、等级和级别。在一些可能的实现方式中,可以根据编码器的配置参数,设置该符合性参数。比如,编码器的配置参数中级别为高,则设置符合性参数中的级别为高,同理,可将编码器中配置参数的档次设定为符合性参数中的档次。或,将编码器中配置参数的等级设定为符合性参数中的等级。对于符合性参数的设置,还可以是根据会话协商过程确定的参数来确定。比如,在会话协商过程中,确定了级别为高,那么设定符合性参数中级别为高。
然后,根据预设的所述符合性参数与所述最大容许取值之间的对应关系,确定所述最大容许取值。
这里,符合性参数与所述最大容许取值之间的对应关系,为预设的对应关系,包括:档次、等级和级别与最大容许取值之间的对应关系。在一个具体例子中,将级别划分为高中低三个等级,设定不同的等级对应不同的最大容许取值,等级越大对应的最大容许取值越高,比如,高等级对应的最大容许取值为31,中等级对应的最大容许取值为21,低等级对应的最大容许取值为16;档次和级别与最大容许取值之间的对应关系也可以如此设定。如此,可根据符合性参数与所述最大容许取值之间的对应关系,确定出最大容许取值。
最后,对所述符合性参数进行编码,将编码比特写入所述码流。
方式二:将最大容许取值设置为预设的常数值,其中,常数值为大于0的整数。
在一些可能的实现方式中,常数值为大于0,且小于或等于预设阈值的整数。在一个具体例子中,预设阈值可以是31,在其他实施例中,可以根据编码器的配置参数,对应设备该常数值,还可以是将编码器本身固化的参数,设置为该参数值。预设阈值还可以取其他数值,比如,6、7、8、16、21、32或64等。
步骤S203,根据所述最大容许取值和所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值。
这里,第一语法元素取值不大于所述最大容许取值。确定最大容许取值之后,可以在该最大容许取值范围内,通过综合考虑点云的几何信息,对点云进行LOD划分,从而确定第一语法元素取值。
在一些可能的实现方式中,在确定第一语法元素取值之后,首先,获取所述点云码流的莫顿码集合;在一些可能的实现方式中,首先,获取待搜索点云数据;比如,用于形成三维视频的点云数据等。然后,确定所述点云数据的莫顿码;比如,可以通过先确定点云数据的二进制编码数据流,然后根据该二进制编码数据流,确定点云数据的莫顿码。最后,将所述点云数据的莫顿码按照升序进行排列,得到包含多个莫顿码的所述莫顿码集合。在其他实施例中,也可以将点云数据的莫顿码按照降序进行排列,得到包含多个莫顿码的所述莫顿码集合;还可以是将点云数据的莫顿码按照任意特定的顺序(比如,任意设定的,中间最大,往两端依次减小的顺序等)进行排列,以得到莫顿码集合。然后,根据所述莫顿码集合和所述几何信息,在所述最大容许取值范围内,确定所述第一语法元素取值;最后,根据所述第一语法元素取值,对所述点云进行细分层次划分。
步骤S204,根据对所述点云的细分层次划分,对所述点云进行编码,生成码流。
这里,根据对点云的LOD分层情况,对每一层的点云进行编码。
步骤S205,对所述第一语法元素取值进行编码,将编码比特写入码流。
这里,确定第一语法元素取值之后,首先,确定出该取值在码流中占据的比特数N。在一些可能的实现方式中,将第一语法元素在码流中对应的比特数N设置为使用无符号二进制数表示最大容许取值所需的最少比特位数。比如,使用无符号二进制数表示最大容许取值所需的最少比特位数为64,将64设置为第一语法元素在码流中对应的比特数N。然后,将第一语法元素取值转换为N个比特,即将第一语法元素取值转换为使用N个无符号二进制数所对应的比特,并将N个比特写入码流,从而实现了对第一语法元素取值进行编码,将编码比特写入码流。
在本申请一示例性实施例中,通过获取点云的几何信息和属性信息,确定第一语法元素的最大容许取值,然后,根据最大容许取值和点云的几何信息,确定第一语法元素取值;最后,根据对点 云的细分层次划分,对点云进行编码;并对第一语法元素取值进行编码,将编码比特写入码流。如此,根据点云数据的几何信息和属性信息,自适应的确定该点云数据最大容许取值,从而规定了对点云数据进行分层的第一语法元素的取值的范围,进而能够在编码端和解码端对用户设置的LOD划分层数进行检查,能够增加用户设置的划分层数与实际划分层数的一致性。
在一些实施例中,在根据莫顿码实现LOD划分的情况下,可根据点云数据的属性信息自适应的确定对点云数据进行分层的最大容许取值,即步骤S202,可以通过以下步骤实现,参见图2B,图2B为本申请一示例性实施例提供的点云分层方法的另一实现流程示意图,进行以下说明:
步骤S221,确定根节点的长度、宽度和高度的取值。
这里,根节点表示点云中最深的节点,可以采用包围盒来表示。
在一些可能的实现方式中,可以通过以下步骤实现:
第一步,根据所述点云的几何信息,确定所述点云的包围盒。
这里,通过对点云数据的点云法向量、曲率、点云密度、点云表面粗糙度、点云重心、点云权重重心、点云协方差和点云互协方差等几何信息进行编码,可以确定点云的坐标信息,然后,根据该坐标信息可以确定包围点云数据的立方体的大小,从而得到包围盒的尺寸。其中,包围盒的尺寸包括:包围盒的长、宽、高以及对角线长度等。
第二步,根据包围盒,确定所述点云的根节点,以得到所述点云的根节点的长度、宽度和高度的取值。
这里,首先,确定所述包围盒尺寸中满足预设条件的目标长度;比如,将所述包围盒的最长边长的尺寸,确定为所述目标长度。预设条件可以理解为是与当前对点云进行分层方式相匹配的最长尺寸。比如,在根据采样距离实现对点云数据进行LOD分层的方式下,预设条件为包围盒中最长对角线,即,包围盒中距离最远的两个顶点之间的连线。在根据莫顿码实现对点云数据进行LOD分层的方式下,预设条件为包围盒最长的边,并且将这条边的长度作为点云码流的根节点的长度。
然后,根据所述目标长度,创建所述点云的根节点。这里,目标长度为包围盒中最长的边长,根据该最长的边构造一个立方体,并且将该立方体作为点云的根节点,即作为该点云中最大的节点。比如,包围盒中最长的边长为2 maxRootNodeDimLog2,根据此,根节点的大小也是2 maxRootNodeDimLog2。通过获得包围盒大小,根据其中最长的边构造一个立方体,作为点云的根节点,从而确定出能够对该点云进行分层的最大的节点。
步骤S222,根据所述点云的几何信息,确定右移第一参数的取值。
这里,根据点云的几何信息,确定点云进行分层的右移第一参数的取值,比如,用户输入的初始采样距离。在一些可能的实现方式中,在几何信息中,确定点云的初始采样距离,将该初始采样距离设置为右移第一参数的取值。初始采样距离可以是用户设定的,也可以是根据点云的属性信息设定的。
步骤S223,根据右移第一参数的取值和根节点的长度、宽度和高度的取值,确定所述最大容许取值。
这里,无论是根据采样距离实现对点云数据进行LOD分层,还是根据莫顿码实现对点云数据进行LOD分层,综合考虑点云的属性信息确定对点云数据进行分层的第N层,通过判断第N层和目标长度之间的关系,来设定最大容许取值。
在一些可能的实现方式中,确定对点云进行划分的最大容许取值,包括以下两种实现方式:
方式一:在根据莫顿码实现对点云数据进行LOD分层的方式下,可以通过以下步骤实现:
第一步,将根节点维度最大值设置为根节点的长度、宽度和高度三个取值中的最大值。
这里,通过属性信息中包括的:点云初始划分距离,划分总层数和颜色空间的变换等参数,对点云进行处理,以最终确定出第N层的节点的大小,如果第N层的节点的大小与根节点的大小之间的差值较小,或二者相等,那么将第N层所在的层数,确定为最大容许取值。
在该步骤中,在根据莫顿码实现LOD划分的场景下,通过对比第N层的节点的大小与根节点的大小之间的大小关系,自适应的确定出最大LOD可划分层数,明确规定了语法元素lifting_num_detail_levels_minus1的范围。
第二步,根据所述点云的几何信息,确定右移第二参数的取值。
这里,右移第二参数的取值,可以理解为是对右移第一参数的取值的微调量,通过对输入点云进行细分为多个模块之后,确定每一分块的初始采样距离,并求和,将初始采样距离和值与右移第一参数相减,即可得到右移第二参数的取值。在一些可能的实现方式中,通过对点云数据进行编码时,首先,将点云数据划分为多个小模块,然后,在几何信息中,确定点云中每一分块的初始采样 距离,并对多个模块的初始采样距离求和,将初始采样距离和值与右移第一参数的差值,确定为右移第二参数,即右移第二参数可以理解为是对右移第一参数进行微调的调整量。
第三步,将所述根节点维度最大值与所述右移第一参数和所述右移第二参数的差值设置为所述最大容许值。
这里,对右移第一参数和右移第二参数进行求和,比如,根据输入的初始划分距离和划分总层数,对点云进行计算,以确定出该初始采样距离和值。在本申请一示例性实施例中,根据右移第一参数aps.dist2和输入点云进行计算得到右移第二参数abh.attr_dist2_delta,然后,根据aps.dist2和abh.attr_dist2_delta计算得到初始右移位数shiftbits0。
在一些可能的实现方式中,可以通过以下过程确定最大容许值:
步骤A,确定属性信息的头文件函数。
这里,根据属性信息中包括的输入参数(比如,云初始划分距离,划分总层数和颜色空间的变换等),对点云数据进行处理,得到该头文件函数(比如,得到abh.attr_dist2_delta)。该头文件函数用于表征点云数据的属性参数。
步骤B,将头文件函数的数值和属性信息对应的参数值相加,得到初始采样距离和值。
这里,将abh.attr_dist2_delta的数值(对应于右移第二参数的取值)与属性信息对应的参数值进行相加,将相加得到的结果作为初始右移位数。如此,通过根据输入的属性信息对点云数据进行处理,从而确定出对点云进行划分时的初始右移位数。
步骤C,将根节点维度最大值与该初始采样距离和值相减,得到最大容许值。
这里,步骤C可以通过以下过程实现:
步骤C1,根据初始采样距离和值,确定对点云进行划分的第N层所属的节点。
其中,N为大于等于2的整数;在得到初始右移位数的基础上,每划分一层,初始右移位数增加1,对应的叶子节点的大小增加2倍。比如,初始右移位数为shiftbits0,对应的节点大小为2 shifbits0,每划分一层,shiftbits0+1,对应的叶子节点增加为前一层节点的2倍;所以,当划分到第N层时,右移位数shiftbits=shiftbits0+(N-1),第N层所属的节点的大小为2 N-1+shifbits0
在一些可能的实现方式中,确定第N层所属的节点的过程如下:
首先,根据初始右移位数和预设底数,确定对点云码流进行分层的初始层所属节点的尺寸信息。
这里,以预设底数为底数,以初始右移位数为指数,将得到的结果作为对点云码流进行分层的初始层所属节点的大小;比如,以2为底数,以shiftbits0为初始右移位数,那么对点云码流进行分层的初始层所属节点的大小为2 shifbits0
其次,确定第N层与初始层之间相差的层数差值。
这里,假设初始层为1,那么差值为N-1。
再次,按照层数差值对初始层所属节点的尺寸信息进行调整,得到已调尺寸信息。
这里,在初始右移位数的基础上,与层数差值相加,即可得到第N层右移的位数,采用第N层右移的位数对初始层所属的节点的大小进行调整,从而得到已调尺寸信息。比如,层数差值为N-1,那么第N层右移的位数为shiftbits0+(N-1),根据此,在2 shifbits0的基础上,增加2 N-1倍,从而得到已调尺寸信息2 N-1+shifbits0
最后,根据已调尺寸信息,确定第N层所属的节点。
这里,将该已调尺寸信息,作为第N层所属的节点的大小。比如,将2 N-1+shifbits0作为第N层所属节点的大小。
步骤C2,根据第N层所属的节点和根节点,确定最大容许取值。
这里,通过比较第N层所属的节点的尺寸与根节点的尺寸之间的大小关系,确定层数最大值。
在一些可能的实现方式中,根据第N层所属的节点和根节点,确定最大容许取值,可以通过以下过程实现:
首先,确定根节点的尺寸信息。
这里,根节点的尺寸信息即为包围盒中最长边的长度。
其次,确定已调尺寸信息和根节点的尺寸信息之间的第一差值。
这里,比较已调尺寸信息和根节点的尺寸信息之间的大小,将根节点的尺寸信息与已调尺寸信息相减,得到第一差值。比如,已调尺寸信息为2 N-1+shifbits0,根节点的尺寸信息为2 maxRootNodeDimLog2, 那么第一差值为2 maxRootNodeDimLog2-2 N-1+shifbits0
最后,如果第一差值小于等于第一预设阈值,确定第N层对应的层数为最大容许取值。
这里,第一预设阈值为接近0的整数,即在第一差值接近于0的情况下,说明第N层所属的节点的大小与根节点的大小很接近,进而说明第N层对应的层数已是对点云码流进行分层的最大层数,如此,将所属节点的大小与根节点的大小非常接近的第N层对应的层数,作为最大容许取值,实现了根据点云的属性信息自适应的设定语法元素lifting_num_detail_levels_minus1的范围。
在方式一中,采用输入的点云的属性参数集对点云数据进行处理,从而确定出点云的初始右移位数;在初始右移位数的基础上,确定出初始划分层对应节点的大小;然后,每划分一层,初始右移位数增加,并且划分层对应的节点大小也增加,从而可以确定出第N层右移的位数,以及第N层对应节点的大小,最后,通过对比第N层节点的大小与目标长度之间的大小关系,设定最大容许取值。
方式二:在根据采样距离实现对点云数据进行LOD分层的方式下,首先,通过结合属性信息中的初始采样距离和相邻两层的采样距离之比,确定出第N层的采样距离;然后,通过对比第N层的采样距离与目标长度之间的大小关系,设定最大容许取值,可以通过以下步骤实现:
步骤A,根据所述根节点的长度、宽度和高度的取值,确定所述根节点对角线距离取值。
这里,将包围盒中最长对角线的长度,确定为目标长度。根据点云码流的属性信息中的根节点的大小,确定包围盒中相互垂直的三条边的长度,根据这三条边的长度,确定出包围盒中两个距离最远的顶点之间的长度,即最长对角线的长度,从而得到目标长度。在一个具体例子中,根节点的尺寸为2 maxRootNodeDimLog2,那么这三条边的边长分别为2 gbh.rootNodeSizeLog2[k](k=0,1,2)。
步骤B,根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值。
在一些可能的实现方式中,步骤B可以通过以下步骤实现:
步骤B1,确定第一比值。
这里,第一比值为所述根节点对角线距离取值与所述右移第一参数值的算术平方根之间的比值。比如,第一层与第二层的采样距离之间的比值。在本申请一示例性实施例中,可以设定每相邻两层之间的采样距离之间的比值相同,比如,都为P。在其他实施例中,还可以设定每相邻两层之间的采样距离之间的比值不同。
步骤B2,确定第一比值的对数值。
这里,第一比值的对数值可以理解为是第N层的采样距离,根据包围盒中最长对角线的长度和第一比值,可以确定第N层的采样距离。比如,在初始采样距离的基础上乘以第一比值,即可确定出下一层的采样距离,以此类推,可确定出第N层的采样距离。
在一些可能的实现方式中,根据点云的几何信息,确定相邻细节层次的采样距离之间的第一比值,根据点云的几何信息中点云坐标的稀疏情况,设定第一比值。该第一比值可以设定为任意大于1的数,以保证对点云进行分层的过程中,对点云的采集是随着层数的递增,逐层稀疏的。
步骤B3,将所述对数值,确定为所述最大容许取值。
这里,所述对数值对应的底数设置为相邻细节层次的采样距离之间的比值。在一些实施例中,通过比较第N层的采样距离与包围盒中最长对角线的长度的大小,如果第N层的采样距离与与包围盒中最长对角线的长度非常接近,说明第N层即是对点云进行分层的最后一层,即第N层对应的层数为最大容许取值。
在一些示例性实施例中,在根据距离实现LOD划分的情况下,可通过包围盒最长的对角线来设定最大容许取值,可以通过以下过程实现:
第一步,确定包围盒中互相垂直的三条边的边长。
这里,在包围盒为立方体的情况下,包围盒中互相垂直的三条边可以理解为是立方体的长宽高。
第二步,根据三条边的边长,确定最长对角线的长度。
这里,如果这三条边的边长分别为2 gbh.rootNodeSizeLog2[k](k=0,1,2)。根据勾股定理,最长对角线的长度为
Figure PCTCN2020119707-APPB-000008
通过上述第一步和第二步实现了根据距离对LOD进行划分时,采用包围盒中相互垂直的三条边的边长,确定出最长对角线的长度,即可得到目标长度,以用于设定最大容许取值。
在一些示例性实施例中,在根据距离实现LOD划分的情况下,可以通过相邻两层的采样距离和 采样距离比值,来确定第N层的采样距离,可以通过以下过程实现:
第一步,获取至少两个相邻两层的采样距离,得到采样距离集合。
这里,通过分析属性信息包括的初始采样距离和总共采样层数,确定多个相邻层的采样距离。比如,分别获取第一层与第二层采样距离,第三层与第四层的采样距离,第五层与第六层的采样距离等,组成采样距离集合。也就是说,该采样距离集合中包括多个相邻层的采样距离。
第二步,确定采样距离集合中相邻两层的采样距离之间的比值,以得到预设采样距离比值。
这里,对采样距离集合中相邻两层的采样距离求比值,从而得到相邻两层之间的采样距离之比。在本申请一示例性实施例中,每相邻两层之间的采样距离之比相同,将该相同的比值作为预设采样距离比值。该预设距离比值,可以是这样通过对相邻两层的采样距离求比值得到的,还可以是事先设定的。
第三步,根据预设采样距离比值和属性信息中的初始采样距离,确定第N层的采样距离。
这里,首先,确定第N层与属性信息中初始采样距离对应的层之间的层数差值,然后,将层数差值个预设采样距离比值相乘,最后,将乘积结果与目标长度相乘即可得到第N层的采样距离。比如,第N层与初始采样距离对应的层之间的层数差值为N-1,预设采样距离比值为P,那么第N层的采样距离为P N-1D 1
在本申请一示例性实施例中,通过在属性信息中获取相邻两层的采样距离,来确定采样距离比值,并结合初始采样距离,来确定第N层的采样距离;如此,实现了在根据距离实现LOD划分的情况下,对每一层的采样距离的确定,从而可以设定最大容许取值。
在一些示例性实施例中,在根据距离实现LOD划分的情况下,可以通过判断第N层的采样距离与目标长度之间的关系,来设定最大容许取值,可以通过以下过程实现:
第一步,确定第N层的采样距离和目标长度之间的第二差值。
这里,确定第N层的采样距离与包围盒的最长对角线之间的差值,得到第二差值。比如,第N层的采样距离为P N-1D 1,包围盒的最长对角线为
Figure PCTCN2020119707-APPB-000009
第二差值为
Figure PCTCN2020119707-APPB-000010
第二步,如果第二差值小于等于第二预设阈值,确定第N层对应的层数为所述最大容许取值。
这里,第二预设阈值为接近0的正数,可以与第一预设阈值相同或不同。如果第二差值小于等于第二预设阈值,说明第N层的采样距离与包围盒的最长对角线的长度非常接近,从而说明第N层为对点云码流进行分层的最后一层,从而可以将第N层对应的层数作为最大容许取值。
在方式二中,首先,响应于接收到的设置指令,在最大容许取值范围内,确定第一语法元素取值。即,接收到用户输入的进行层数设置的指令时,可在该最大容许取值内,选择一个层数作为第一语法元素取值;比如,最大容许取值为[0,20],那么可以选择18作为第一语法元素取值。然后,按照第一语法元素取值,对点云进行划分。如此,在本申请一示例性实施例中,根据点云数据的几何信息和属性信息,自适应的确定该点云数据最大可划分层数,从而规定了对点云数据进行分层的最大容许取值,进而能够在编码端和解码端对用户设置的LOD划分层数进行检查,能够增加用户设置的划分层数与实际划分层数的一致性。
在一些示例性实施例中,设定对点云数据进行分层的最大容许取值之后,能够在编码端和解码端可以对用户设置的LOD划分层数进行检查,以增加系统的一致性,即在按照所述最大容许取值,对所述点云码流进行划分之后,所述方法还包括以下过程:
第一步,获取输入的对点云进行分层的预设层数。
这里,在编码端或解码端,当用户对点云进行分层时,可以获取用户对点云码流进行分层的预设层数。比如,用户设定的对点云码流进行分层的预设层数为30。
第二步,根据最大容许取值,确定预设层数的合法性。
这里,判断预设层数是否在最大容许取值之内,如果预设层数在最大容许取值之内,确定该预设层数是合法的,即该预设层数是可用的,如果预设层数不在最大容许取值之内,确定该预设层数是不合法的,即该预设层数是不可用的。在一个具体例子中,如果预设层数为30,最大容许取值为21,则说明预设层数是不合法的。
第三步,如果预设层数的合法性表明预设层数小于等于最大容许取值,按照预设层数对点云进行分层。
这里,预设层数小于等于最大容许取值,即预设层数在最大容许取值之内,说明预设层数是可用的,那么可以按照该预设层数对点云进行分层。如此,能够在编码端和解码端可以对用户设置的LOD划分层数进行检查,从而提高了用户设置的期望LOD划分层数与实际LOD划分层数的一致性。
在一些实施例中,点云的压缩编码流程如图3所示,图3为本申请一示例性实施例点云压缩编码流程示意图,结合图3所示的步骤进行以下说明:
步骤S301,将点云划分为几何信息和每点对应的属性信息。
这里,在点云根据几何的点云压缩编码的(Geometry-based Point Cloud Compression,G-PCC)编码器框架中,点云的几何信息和每点所对应的属性信息是分开进行编码的。
步骤S302,对几何信息进行坐标转换。
这里,对几何信息进行坐标转换,使点云全都包含在一个包围盒(bounding box)中。
步骤S303,对坐标转换后的几何信息进行体素化。
这里,对坐标转换后的几何信息进行体素化,可以理解为对坐标转换后的几何信息进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点的几何信息相同,根据参数来决定是否移除重复点,量化和移除重复点。
步骤S304,对包围盒进行八叉树划分。
这里,对bounding box进行八叉树划分。在根据八叉树的几何信息编码框架中,将包围盒八等分为8个子立方体,对非空的(包含点云中的点)的子立方体继续进行八等分,直到划分得到的叶子结点为1x1x1的单位立方体时停止划分,对叶子结点中的点进行编码,生成二进制码流。
步骤S305,对叶子节点进行算术编码,得到多个交点。
这里,对叶子节点进行表面拟合,用于对得到的几何信息的二进制码流进行几何重建。在根据三角面片集(triangle soup,trisoup)的几何信息编码框架中,同样也要先进行八叉树划分,但区别于根据八叉树的几何信息编码,该方法不需要将点云逐级划分到边长为1×1×1的单位立方体,而是划分到子块(block)边长为W时停止划分,根据每个子块中点云的分布所形成的表面,得到该表面与子块的十二条边所产生的至多十二个交点(vertex)。依次编码每个子块的交点坐标,生成二进制码流。
步骤S306,对每个子块的交点坐标进行编码,生成二进制码流。
这里,对每个子块的交点坐标进行编码,生成几何比特流。
上述步骤S301至步骤S306完成了对几何信息的编码过程,几何编码完成后,对几何信息进行重建,即进入步骤S307。
步骤S307,对几何信息进行重建。
这里,对几何信息进行重建,可以理解为对已经编码的比特流进行解码,重新得到解码后的几何信息,即重建的几何信息。
在本申请一示例性实施例中,属性编码主要针对颜色信息进行。
步骤S308,将属性信息中的颜色信息从RGB颜色空间转换到YUV颜色空间。
步骤S309,利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。
这里,在颜色信息编码中,主要有两种变换方法,一是在生成细节层次划分模块(LOD)310中,实现依赖于LOD划分的根据距离的提升变换,二是直接进行区域自适应分层变换(Region Adaptive Hierarchal Transform,RAHT)311变换,这两种方法都会将颜色信息从空间域转换到频域,通过变换得到高频系数和低频系数。最后对系数进行量化并编码,生成二进制码流。
步骤S312,对颜色信息从空间域转换到频域,得到高频系数和低频系数进行量化。
步骤S313,对量化的结果进行算术编码。
步骤S314,根据算术编码的结果,生成属性比特流。
上述步骤S308至步骤S314实现了属性信息进行编码的过程,属性信息的编码分为三种模式:预测模式、提升模式和RAHT模式。对于预测模式和提升模式,需要对点云进行LOD划分。LOD就是根据某种方式将点云划分为一系列的增强层和细节层,如图4所示,图4为本申请一示例性实施例进行LOD划分的实现流程示意图,结合图4进行以下说明:
对于点集合401(LOD1),将其划分为表示点云细节信息的集合A1,与表示点云的骨架信息的点集合402(LOD2);然后,针对点集合402,将其划分为表示点云细节信息的集合A2,与表示点云的骨架信息的点集合403(LOD3)。
在相关技术中,对于LOD的划分层数没有规定,由用户手动设置,但是同时也没有规定LOD划分层数的范围。在G-PCC的通用测试条件中往往将LOD的划分层数设置为一个较大的数,造成设置值与实际的划分层数经常不符。
根据此,本申请一示例性实施例提供一种点云分层方法,对于语法元素lifting_num_detail_levels_minus1参数的最大范围进行限定,定义lifting_num_detail_levels_minus1最大值MAX_minus1,其区间为0到MAX_minus1。
图5为本申请一示例性实施例提供的根据莫顿码进行LOD划分的结构示意图,结合图5进行以下说明:
图5中框501表示点云的包围盒,虚线502为以包围盒最长边为边长的立方体。
在一些实施例中,在点云的压缩过程中,根据几何信息的编码可以得到点云的包围盒大小,根据最长的边构造一个立方体,即为点云的根节点。
在一些可能的实现方式中,根据莫顿码右移的LOD生成过程中,首先根据aps.dist2和输入点云进行计算得到abh.attr_dist2_delta,然后根据aps.dist2和abh.attr_dist2_delta计算得到初始右移位数shiftbits0,如公式(3)所示:
shiftbits0=aps.dist2+abh.attr_dist2_delta(3);
其中,第一次右移位数shiftbits为shiftbits0,对应的节点大小为2 shifbits0,表示为图5中的A。接着进行LOD划分时,每划分一层,shiftbits加1;而每右移1位,节点的边长增加为前一层节点的2倍,表示为图5中的2A。
当划分到第N层时,shiftbits=shiftbits0+(N-1),此时节点大小为2 N-1+shifbits0。在本申请一示例性实施例中,LOD划分终止的条件为:当划分到根节点时,结束LOD划分,此时根节点大小为2 maxRootNodeDimLog2,可以得到公式(4):
2 N-1+shifbits0≤2 maxRootNodeDimLog2 (4);
从而可得公式(5):
N≤maxRootNodeDimLog2-shiftbits0+1 (5);
那么LOD最大的划分层数为max(N)如公式(6)所示:
max(N)=maxRootNodeDimLog2-shiftbits0+1 (6);
对于lifting_num_detail_levels_minus1,最大值应为max(N)-1,如公式(7)所示:
Figure PCTCN2020119707-APPB-000011
根据公式(7)可以得出,lifting_num_detail_levels_minus1的范围可以表示为[0,MAX_minus1]。
在本申请一示例性实施例中,根据点云内容自适应的计算出其最大LOD可划分层数,明确规定了语法元素lifting_num_detail_levels_minus1的范围,在编码端和解码端可以对用户设置的levelOfDetailCount参数(LOD划分层数)进行检查,增加了系统的一致性。
在一些实施例中,在根据距离的LOD划分的场景下,设定LOD划分的最大层数的过程如图6所示,图6为本申请一示例性实施例根据距离进行LOD划分的结构示意图,结合图6进行以下说明:
对于根据距离的LOD划分方式,找到点云最远的两个点的距离,可以根据包围盒601来近似计算点云中最远的两个点(点602和点603)的距离,将点602和点603之间的距离作为包围盒的对角线长度,包围盒三条边x、y和z分别为2 gbh.rootNodeSizeLog2[k](其中,k=0,1或2),那么理论上最远两个点的距离设为maxDist如公式(8)所示:
Figure PCTCN2020119707-APPB-000012
在公式(8)中,设初始采样距离为D1,设置相邻两层的采样距离比为P,那么第N层的采样距离可以表示为D N=P N-1D 1
对于划分层数N,由于D N≤maxDist,那么
Figure PCTCN2020119707-APPB-000013
那么对于语法元素lifting_num_detail_levels_minus1,最大值MAX_minus1应为max(N)-1,可以 表示为公式(9):
Figure PCTCN2020119707-APPB-000014
其中,
Figure PCTCN2020119707-APPB-000015
根据此,MAX_minus1可以表示为公式(10):
Figure PCTCN2020119707-APPB-000016
在本申请一示例性实施例中,根据点云内容自适应的计算出其最大LOD可划分层数,明确规定了语法元素lifting_num_detail_levels_minus1的范围;从而能够在编码端对用户设置的LOD划分层数进行检查,提高用户设置的期望LOD划分层数与实际LOD划分层数的一致性。
如图7A所示,本申请实施例提供一种解码器1,包括:
第一接收模块701,用于接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;
第一确定模块702,用于确定所述点云码流中包含的第一语法元素的最大容许取值;
第一解析模块703,用于解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;
第二确定模块704,用于根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;
第一解码模块705,用于根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。
在本申请的一些实施例中,所述第一确定模块702,还用于:解析所述点云码流,获得符合性参数;根据所述符合性参数与所述最大容许取值之间的对应关系,确定所述最大容许取值;其中,所述符合性参数至少包括以下参数之一:档次、等级和级别。
在本申请的一些实施例中,所述第一确定模块702,还用于:将所述最大容许取值设置为预设的常数值,其中,所述常数值为大于0的整数。
在本申请的一些实施例中,还包括:所述常数值为大于0,且小于或等于预设阈值的整数。
在本申请的一些实施例中,所述第一确定模块702,还用于:解析所述点云码流,确定根节点的长度、宽度和高度的取值;解析所述点云码流,确定右移第一参数的取值;根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值。
在本申请的一些实施例中,所述第一解析模块703,还用于:解析所述点云码流,确定用于表征所述点云码流的初始采样距离;将所述初始采样距离,确定为所述定右移第一参数的取值。
在本申请的一些实施例中,所述第一确定模块702,还用于:
解析所述点云码流中包含的几何信息,确定所述根节点的长度、宽度和高度的取值。
在本申请的一些实施例中,所述第一确定模块702,还用于:
解析所述几何信息中的单元头信息,确定所述根节点的长度、宽度和高度的取值。
在本申请的一些实施例中,所述第一确定模块702,还用于:将所述根节点维度最大值设置为所述根节点的长度、宽度和高度三个取值中的最大值;解析所述点云码流,确定右移第二参数的取值;将所述最大容许值设置为所述根节点维度最大值与所述右移第一参数和所述右移第二参数的差值。
在本申请的一些实施例中,所述第一确定模块702,还用于:解析所述点云码流,确定所述点云码流中每一分块的初始采样距离;计算所述每一分块的初始采样距离的和,得到初始采样距离和值;将所述初始采样距离和值与所述右移第一参数的差值,确定为所述右移第二参数。
在本申请的一些实施例中,所述第一确定模块702,还用于:根据所述根节点的长度、宽度和高度的取值,确定所述根节点对角线距离取值;根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值。
在本申请的一些实施例中,所述第一确定模块702,还用于:确定第一比值,其中,所述第一比值为所述根节点对角线距离取值与所述右移第一参数值的算术平方根之间的比值;确定所述第一比值的对数值;将所述对数值确定为所述最大容许取值;其中,所述对数值对应的底数设置为相邻细节层次的采样距离之间的比值。
在本申请的一些实施例中,所述第一确定模块702,还用于:解析所述点云,确定所述相邻细节层次的采样距离之间的所述第一比值。
在本申请的一些实施例中,所述第一确定模块702,还用于:根据所述最大容许取值,确定所述第一语法元素在码流中对应的比特数N;从所述点云码流中读取N个比特,并将所述N个比特转换为所述第一语法元素的取值。
在本申请的一些实施例中,所述第一确定模块702,还用于:确定使用无符号二进制数表示所述最大容许取值所需的最少比特位数;将所述最少比特位数,确定为所述比特数N。
在本申请的一些实施例中,所述第一确定模块702,还用于:将所述第一语法元素取值设置为所述N个比特的无符号二进制数所对应的数值。
在本申请的一些实施例中,所述第一确定模块702,还用于:比较所述第一语法元素取值与所述最大容许取值之间的大小;当所述第一语法元素取值大于所述最大容许取值时,生成异常错误报告信息。
在本申请的一些实施例中,第一解码模块705,还用于:根据所述细节层次的数量和所述几何信息,确定所述点云码流中一个或多个细节层次的重建值;根据所述一个或多个细节层次的重建值,获得所述点云的重建点云。
在本申请的一些实施例中,第一解码模块705,还用于:
根据所述细节层次的数量和所述几何信息,对所述点云码流进行细节层次划分,获得所述一个或多个细节层次的重建值。
在实际应用中,如图7B所示,本申请实施例还提供了一种解码器,包括:第一存储器721和第一处理器722;所述第一存储器721存储有可在第一处理器722上运行的计算机程序,所述第一处理器722执行所述程序时解码器侧的点云分层方法。
如图8A所示,本申请实施例提供一种编码器2,包括:
第一获取模块801,用于获取点云的几何信息和属性信息;
第一确定模块802,用于确定第一语法元素的最大容许取值,其中,所述第一语法元素表示对所述点云的属性信息进行编码过程中细节层次的数量;
第一划分模块803,用于根据所述最大容许取值和所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值;
第一编码模块804,用于根据对所述点云的细分层次划分,对所述点云进行编码,生成码流;
第二编码模块805,用于对所述第一语法元素取值进行编码,将编码比特写入码流。
在本申请的一些实施例中,所述第一确定模块802,还用于:确定所述点云的符合性参数;其中,所述符合性参数至少包括以下参数之一:档次、等级和级别;根据所述符合性参数与所述最大容许取值之间的对应关系,确定所述最大容许取值;对所述符合性参数进行编码,将编码比特写入所述码流。
在本申请的一些实施例中,所述第一确定模块802,还用于:根据编码器的配置参数,设置所述符合性参数。
在本申请的一些实施例中,所述第一确定模块802,还用于:根据会话协商过程中确定的参数,设置所述符合性参数。
在本申请的一些实施例中,所述第一确定模块802,还用于:将所述最大容许取值设置为预设的常数值,其中,所述常数值为大于0的整数。
在本申请的一些实施例中,所述第一确定模块802,还用于:根据所述编码器的配置参数,设置所述预设的常数值;所述常数值为大于0,且小于或等于预设阈值的整数。
在本申请的一些实施例中,所述第一确定模块802,还用于:确定根节点的长度、宽度和高度的取值;根据所述点云的几何信息,确定右移第一参数的取值;根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值。
在本申请的一些实施例中,所述第一确定模块802,还用于:在所述几何信息中,确定用于表征所述点云的初始采样距离;将所述初始采样距离,确定为所述定右移第一参数的取值。
在本申请的一些实施例中,所述第一确定模块802,还用于:根据所述点云的几何信息,确定所述点云的包围盒;根据所述包围盒,确定所述点云的根节点,以得到所述点云的根节点的长度、宽度和高度的取值。
在本申请的一些实施例中,所述第一确定模块802,还用于:确定所述包围盒尺寸中满足预设条件的目标长度;根据所述目标长度,创建所述点云的根节点。
在本申请的一些实施例中,所述第一确定模块802,还用于:将所述包围盒的最长边长的尺寸,确定为所述目标长度。
在本申请的一些实施例中,所述第一确定模块802,还用于:对所述根节点的长度、宽度和高度的取值进行编码,将编码比特写入所述码流。
在本申请的一些实施例中,所述第一确定模块802,还用于:将所述编码比特写入所述码流中的几何数据单元头信息中。
在本申请的一些实施例中,所述第一确定模块802,还用于:将所述根节点的长度、宽度和高度三个取值中的最大值设置为所述根节点维度最大值;根据所述点云的几何信息,确定右移第二参数的取值;将所述根节点维度最大值与所述右移第一参数和所述右移第二参数的差值设置为所述最大容许值。
在本申请的一些实施例中,所述第一确定模块802,还用于:在所述几何信息中,确定所述点云中每一分块的初始采样距离;计算所述每一分块的初始采样距离的和,得到初始采样距离和值;将所述初始采样距离和值与所述右移第一参数的差值,确定为所述右移第二参数。
在本申请的一些实施例中,所述第一确定模块802,还用于:根据所述根节点的长度、宽度和高度的取值,确定所述根节点对角线距离取值;根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值。
在本申请的一些实施例中,所述第一确定模块802,还用于:确定第一比值,其中,所述第一比值等于所述根节点对角线距离取值与所述右移第一参数值的算术平方根之间的比值;计算所述第一比值的对数值,将将所述最大容许取值设置为所述对数值;其中,所述计算对数值运算中,底数设置为相邻细节层次的采样距离的比值。
在本申请的一些实施例中,所述第一编码模块804,还用于:根据所述点云的几何信息,确定所述相邻细节层次的采样距离之间的所述第一比值。
在本申请的一些实施例中,所述第一确定模块802,还用于:根据所述最大容许取值,确定所述第一语法元素在码流中占据的比特数N;将所述第一语法元素取值转换为N个比特,并将所述N个比特写入所述码流。
在本申请的一些实施例中,所述第一确定模块802,还用于:确定采用无符号二进制数表示所述最大容许取值所需的最少比特位数;将所述最少比特位数,确定为所述比特数N。
在本申请的一些实施例中,所述第一确定模块802,还用于:将所述第一语法元素取值转换为使用所述N个无符号二进制数所对应的比特。
在本申请的一些实施例中,所述第一语法元素取值不大于所述最大容许取值。
在本申请的一些实施例中,第一划分模块803,还用于获取所述点云的莫顿码集合;根据所述莫顿码集合和所述几何信息,在所述最大容许取值范围内,确定所述第一语法元素取值;根据所述第一语法元素取值,对所述点云进行细分层次划分。
在实际应用中,如图8B所示,本申请实施例还提供了一种编码器,包括:
第二存储器821和第二处理器822;
所述第二存储器821存储有可在第二处理器822上运行的计算机程序,所述第二处理器822执行所述程序时实现解码器侧的点云分层方法。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
相应的,本申请实施例提供了一种存储介质,其上存储有计算机程序,该计算机程序被第一处理器执行时,实现编码器的点云分层方法;或者,该计算机程序被第二处理器执行时,实现解码器的点云分层方法。
这里需要指出的是:以上存储介质和装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
工业实用性
本申请一示例性实施例中的点云分层方法,包括:接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;确定所述点云码流中包含的第一语法元素的最大容许取值;解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。

Claims (48)

  1. 一种点云分层方法,应用于解码器,所述方法包括:
    接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;
    确定所述点云码流中包含的第一语法元素的最大容许取值;
    解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;
    根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;
    根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。
  2. 根据权利要求1所述的方法,所述确定所述点云码流中包含的第一语法元素的最大容许取值,包括:
    解析所述点云码流,获得符合性参数;其中,所述符合性参数至少包括以下参数之一:档次、等级和级别;
    根据预设的所述符合性参数与所述最大容许取值之间的对应关系,确定所述最大容许取值。
  3. 根据权利要求1所述的方法,所述确定所述点云码流中包含的第一语法元素的最大容许取值,包括:
    将所述最大容许取值设置为预设的常数值,其中,所述常数值为大于0的整数。
  4. 根据权利要求3所述的方法,还包括:
    所述常数值为大于0,且小于或等于预设阈值的整数。
  5. 根据权利要求1所述的方法,所述确定所述码流中包含的第一语法元素的最大容许取值,包括:
    解析所述点云码流,确定根节点的长度、宽度和高度的取值;
    解析所述点云码流,确定右移第一参数的取值;
    根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值。
  6. 根据权利要求5所述的方法,所述解析所述点云码流,确定右移第一参数的取值,包括:
    解析所述点云码流,确定用于表征所述点云码流的初始采样距离;
    将所述初始采样距离,确定为所述右移第一参数的取值。
  7. 根据权利要求5所述的方法,所述解析所述点云码流,确定根节点的长度、宽度和高度的取值,包括:
    解析所述点云码流中包含的几何信息,确定所述根节点的长度、宽度和高度的取值。
  8. 根据权利要求7所述的方法,所述解析所述点云码流的几何信息,确定根节点的长度、宽度和高度的取值,包括:
    解析所述几何信息中的单元头信息,确定所述根节点的长度、宽度和高度的取值。
  9. 根据权利要求5所述的方法,所述根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值,包括:
    将所述根节点维度最大值设置为所述根节点的长度、宽度和高度三个取值中的最大值;
    解析所述点云码流,确定右移第二参数的取值;
    将所述最大容许值设置为所述根节点维度最大值与所述右移第一参数和所述右移第二参数的差值。
  10. 根据权利要求9所述的方法,所述解析所述点云码流,确定右移第二参数的取值,包括:
    解析所述点云码流,确定所述点云码流中每一分块的初始采样距离;
    计算所述每一分块的初始采样距离的和,得到初始采样距离和值;
    将所述初始采样距离和值与所述右移第一参数的差值,确定为所述右移第二参数。
  11. 根据权利要求5所述的方法,所述根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值,包括:
    根据所述根节点的长度、宽度和高度的取值,确定所述根节点对角线距离取值;
    根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值。
  12. 根据权利要求11所述的方法,所述根据所述根节点对角线距离取值和所述右移第一参数值, 确定所述最大容许取值,包括:
    确定第一比值,其中,所述第一比值为所述根节点对角线距离取值与所述右移第一参数值的算术平方根之间的比值;
    确定所述第一比值的对数值;
    将所述对数值确定为所述最大容许取值;
    其中,所述对数值对应的底数设置为相邻细节层次的采样距离之间的比值。
  13. 根据权利要求12所述的方法,所述确定第一比值,包括:
    解析所述点云,确定所述相邻细节层次的采样距离之间的所述第一比值。
  14. 根据权利要求1所述的方法,所述解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值,包括:
    根据所述最大容许取值,确定所述第一语法元素在码流中对应的比特数N;
    从所述点云码流中读取N个比特,将所述N个比特转换为所述第一语法元素的取值。
  15. 根据权利要求14所述的方法,所述根据所述最大容许取值,确定所述第一语法元素在码流中对应的比特数N,包括:
    确定使用无符号二进制数表示所述最大容许取值所需的最少比特位数;
    将所述最少比特位数,确定为所述比特数N。
  16. 根据权利要求14所述的方法,所述从所述点云码流中读取N个比特,并将所述N个比特转换为所述第一语法元素取值,包括:
    将所述第一语法元素取值设置为所述N个比特的无符号二进制数所对应的数值。
  17. 根据权利要求1所述的方法,所述解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值,包括:
    比较所述第一语法元素取值与所述最大容许取值之间的大小;
    当所述第一语法元素取值大于所述最大容许取值时,生成异常错误报告信息。
  18. 根据权利要求1所述的方法,所述根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云,包括:
    根据所述细节层次的数量和所述几何信息,确定所述点云码流中一个或多个细节层次的重建值;
    根据所述一个或多个细节层次的重建值,获得所述点云的重建点云。
  19. 根据权利要求18所述的方法,所述根据所述细节层次的数量和所述几何信息,确定所述点云码流中一个或多个细节层次的重建值,包括:
    根据所述细节层次的数量和所述几何信息,对所述点云码流进行细节层次划分,获得所述一个或多个细节层次的重建值。
  20. 一种点云分层方法,用于编码器,所述方法包括:
    获取点云的几何信息和属性信息;
    确定第一语法元素的最大容许取值,其中,所述第一语法元素表示对所述点云的属性信息进行编码过程中细节层次的数量;
    根据所述最大容许取值和所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值;
    根据对所述点云的细分层次划分,对所述点云进行编码,生成码流;
    对所述第一语法元素取值进行编码,将编码比特写入码流。
  21. 根据权利要求20所述的方法,所述确定第一语法元素的最大容许取值,包括:
    确定所述点云的符合性参数;其中,所述符合性参数至少包括以下参数之一:档次、等级和级别;
    根据预设的所述符合性参数与所述最大容许取值之间的对应关系,确定所述最大容许取值;
    对所述符合性参数进行编码,将编码比特写入所述码流。
  22. 根据权利要求21所述的方法,所述确定所述点云的符合性参数,包括:
    根据编码器的配置参数,设置所述符合性参数。
  23. 根据权利要求21所述的方法,所述确定所述点云的符合性参数,包括:
    根据会话协商过程中确定的参数,设置所述符合性参数。
  24. 根据权利要求20所述的方法,所述确定所述码流中包含的第一语法元素的最大容许取值,包括:
    将所述最大容许取值设置为预设的常数值,其中,所述常数值为大于0的整数。
  25. 根据权利要求24所述的方法,所述将所述最大容许取值设置为预设的常数值,还包括:
    根据所述编码器的配置参数,设置所述预设的常数值。
  26. 根据权利要求24所述的方法,还包括:
    所述常数值为大于0,且小于或等于预设阈值的整数。
  27. 根据权利要求20所述的方法,所述确定第一语法元素的最大容许取值,包括:
    确定根节点的长度、宽度和高度的取值;
    根据所述点云的几何信息,确定右移第一参数的取值;
    根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值。
  28. 根据权利要求27所述的方法,所述根据所述点云的几何信息,确定右移第一参数的取值,包括:
    在所述几何信息中,确定用于表征所述点云的初始采样距离;
    将所述初始采样距离,确定为所述定右移第一参数的取值。
  29. 根据权利要求27所述的方法,所述确定根节点的长度、宽度和高度的取值,包括:
    根据所述点云的几何信息,确定所述点云的包围盒;
    根据所述包围盒,确定所述点云的根节点,以得到所述点云的根节点的长度、宽度和高度的取值。
  30. 根据权利要求29所述的方法,所述根据所述包围盒,确定所述点云的根节点,包括:
    确定所述包围盒尺寸中满足预设条件的目标长度;
    根据所述目标长度,创建所述点云的根节点。
  31. 根据权利要求30所述的方法,所述确定所述包围盒尺寸中满足预设条件的目标长度,包括:
    将所述包围盒的最长边长的尺寸,确定为所述目标长度。
  32. 根据权利要求27所述的方法,还包括:
    对所述根节点的长度、宽度和高度的取值进行编码,将编码比特写入所述码流。
  33. 根据权利要求32所述的方法,还包括:
    将所述编码比特写入所述码流中的几何数据单元头信息中。
  34. 根据权利要求27所述的方法,所述根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值,包括:
    将所述根节点的长度、宽度和高度三个取值中的最大值设置为所述根节点维度最大值;
    根据所述点云的几何信息,确定右移第二参数的取值;
    将所述根节点维度最大值与所述右移第一参数和所述右移第二参数的差值设置为所述最大容许值。
  35. 根据权利要求27所述的方法,所述根据所述点云的几何信息,确定右移第二参数的取值,包括:
    在所述几何信息中,确定所述点云中每一分块的初始采样距离;
    计算所述每一分块的初始采样距离的和,得到初始采样距离和值;
    将所述初始采样距离和值与所述右移第一参数的差值,确定为所述右移第二参数。
  36. 根据权利要求27所述的方法,所述根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值,包括:
    根据所述根节点的长度、宽度和高度的取值,确定所述根节点对角线距离取值;
    根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值。
  37. 根据权利要求36所述的方法,所述根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值,包括:
    确定第一比值,其中,所述第一比值等于所述根节点对角线距离取值与所述右移第一参数值的算术平方根之间的比值;
    计算所述第一比值的对数值,将所述最大容许取值设置为所述对数值;
    其中,所述计算对数值运算中,底数设置为相邻细节层次的采样距离的比值。
  38. 根据权利要求37所述的方法,还包括:
    根据所述点云的几何信息,确定所述相邻细节层次的采样距离之间的所述第一比值。
  39. 根据权利要求20所述的方法,所述对所述第一语法元素取值进行编码,将编码比特写入码流,包括:
    根据所述最大容许取值,确定所述第一语法元素在码流中占据的比特数N;
    将所述第一语法元素取值转换为N个比特,并将所述N个比特写入所述码流。
  40. 根据权利要求39所述的方法,所述根据所述最大容许取值,确定所述第一语法元素在码流中对应的比特数N,包括:
    确定采用无符号二进制数表示所述最大容许取值所需的最少比特位数;
    将所述最少比特位数,确定为所述比特数N。
  41. 根据权利要求40所述的方法,所述将所述第一语法元素取值转换为N个比特,包括:
    将所述第一语法元素取值转换为使用所述N个无符号二进制数所对应的比特。
  42. 根据权利要求20所述的方法,所述第一语法元素取值不大于所述最大容许取值。
  43. 根据权利要求20或42所述的方法,所述根据所述最大容许取值,根据所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值之后,所述方法还包括:
    获取所述点云的莫顿码集合;
    根据所述莫顿码集合和所述几何信息,在所述最大容许取值范围内,确定所述第一语法元素取值;
    根据所述第一语法元素取值,对所述点云进行细分层次划分。
  44. 一种解码器,包括:
    第一接收模块,用于接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;
    第一确定模块,用于确定所述点云码流中包含的第一语法元素的最大容许取值;
    第一解析模块,用于解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;
    第二确定模块,用于根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;
    第一解码模块,用于根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。
  45. 一种编码器,包括:
    第一获取模块,用于获取点云的几何信息和属性信息;
    第一确定模块,用于确定第一语法元素的最大容许取值,其中,所述第一语法元素表示对所述点云的属性信息进行编码过程中细节层次的数量;
    第一划分模块,用于根据所述最大容许取值和所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值;
    第一编码模块,用于根据对所述点云的细分层次划分,对所述点云进行编码,生成码流;
    第二编码模块,用于对所述第一语法元素取值进行编码,将编码比特写入码流。
  46. 一种解码器,包括:
    第二存储器和第二处理器;
    所述第二存储器存储有可在第二处理器上运行的计算机程序,所述第二处理器执行所述程序时实现权利要求1至19任一项所述点云分层方法。
  47. 一种编码器,包括:
    第一存储器和第一处理器;
    所述第一存储器存储有可在第一处理器上运行的计算机程序,所述第一处理器执行所述程序时实现权利要求20至43任一项所述点云分层方法。
  48. 一种存储介质,其上存储有计算机程序,该计算机程序被第一处理器执行时,实现权利要求1至19任一项所述点云分层方法;或者,该计算机程序被第二处理器执行时,实现权利要求20至43任一项所述点云分层方法。
CN202080105639.XA 2020-09-30 2020-09-30 一种点云分层方法及解码器、编码器、存储介质 Pending CN116261856A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310888271.4A CN116744013A (zh) 2020-09-30 2020-09-30 一种点云分层方法及解码器、编码器、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/119707 WO2022067790A1 (zh) 2020-09-30 2020-09-30 一种点云分层方法及解码器、编码器、存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310888271.4A Division CN116744013A (zh) 2020-09-30 2020-09-30 一种点云分层方法及解码器、编码器、存储介质

Publications (1)

Publication Number Publication Date
CN116261856A true CN116261856A (zh) 2023-06-13

Family

ID=80949480

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310888271.4A Pending CN116744013A (zh) 2020-09-30 2020-09-30 一种点云分层方法及解码器、编码器、存储介质
CN202080105639.XA Pending CN116261856A (zh) 2020-09-30 2020-09-30 一种点云分层方法及解码器、编码器、存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202310888271.4A Pending CN116744013A (zh) 2020-09-30 2020-09-30 一种点云分层方法及解码器、编码器、存储介质

Country Status (5)

Country Link
US (1) US11983905B2 (zh)
JP (1) JP2023549447A (zh)
KR (1) KR20230079188A (zh)
CN (2) CN116744013A (zh)
WO (1) WO2022067790A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115063459B (zh) * 2022-08-09 2022-11-04 苏州立创致恒电子科技有限公司 点云配准方法及装置、全景点云融合方法及系统
CN115175248B (zh) * 2022-09-06 2023-01-24 北京智芯微电子科技有限公司 用于通信系统的定点数据压缩、解压方法、装置及设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6331826B1 (en) * 2000-01-04 2001-12-18 International Business Machines Corporation Method for providing an improved run-length encoding algorithm for data compression
CN103077549B (zh) 2012-10-24 2016-12-21 华南理工大学 一种基于kd树的实时大规模地形可视化实现方法
US20140198097A1 (en) 2013-01-16 2014-07-17 Microsoft Corporation Continuous and dynamic level of detail for efficient point cloud object rendering
US10897269B2 (en) * 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
CN108470374B (zh) * 2018-04-08 2022-03-25 中煤航测遥感集团有限公司 海量点云数据处理方法及装置
CN109257604B (zh) * 2018-11-20 2020-11-27 山东大学 一种基于tmc3点云编码器的颜色属性编码方法
CA3134855A1 (en) * 2019-06-26 2020-12-30 Tencent America LLC Implicit quadtree or binary-tree geometry partition for point cloud coding
CN110418135B (zh) * 2019-08-05 2022-05-27 北京大学深圳研究生院 一种基于邻居的权重优化的点云帧内预测方法及设备
US11350132B2 (en) * 2020-01-08 2022-05-31 Qualcomm Incorporated High level syntax for geometry-based point cloud compression
CN111641984B (zh) 2020-05-28 2022-11-04 哲库科技(北京)有限公司 一种小区选择方法及终端、存储介质

Also Published As

Publication number Publication date
KR20230079188A (ko) 2023-06-05
WO2022067790A1 (zh) 2022-04-07
US20230237705A1 (en) 2023-07-27
CN116744013A (zh) 2023-09-12
US11983905B2 (en) 2024-05-14
JP2023549447A (ja) 2023-11-27

Similar Documents

Publication Publication Date Title
JP6676193B2 (ja) シーンを表す点群を符号化する方法、符号化器システム、及びプログラムを記憶した非一時的コンピューター可読記録媒体
CN109889840B (zh) 点云编码和解码的方法、编码设备和解码设备
Schnabel et al. Octree-based Point-Cloud Compression.
Huang et al. Octree-Based Progressive Geometry Coding of Point Clouds.
US11785216B2 (en) Point cloud coding methods, encoder, and decoder
US11983905B2 (en) Methods for level partition of point cloud, and decoder
US11936909B2 (en) Prediction method, encoder, decoder, and computer storage medium
US20230101072A1 (en) Nearest neighbour search method, encoder, decoder and storage medium
US20220329833A1 (en) Nearest neighbor search method, apparatus, device, and storage medium
US20220207781A1 (en) Transform method, inverse transform method, encoder, decoder and storage medium
CN114009014A (zh) 颜色分量预测方法、编码器、解码器及计算机存储介质
CN113906681A (zh) 点云数据的编解码方法、系统和存储介质
CN116601944A (zh) 点云编解码方法、编码器、解码器及计算机存储介质
CN110349228B (zh) 一种数据驱动最小二乘预测的三角网格压缩方法
WO2022067782A1 (zh) 一种点云数据的层次划分方法、编码器及存储介质
CN114730474A (zh) 点云处理方法、编码器、解码器及存储介质
CN116458158A (zh) 帧内预测方法及装置、编解码器、设备、存储介质
Kolesnikov Optimal algorithm for lossy vector data compression
CN117321996A (zh) 帧内预测、编解码方法及装置、编解码器、设备、介质
CN116941242A (zh) 帧内预测方法及装置、编解码器、设备、存储介质
CN117157973A (zh) 编解码方法及相关设备、存储介质
CN116233387A (zh) 点云编码、解码方法、装置及通信设备
CN118175319A (zh) 点云编码方法、点云解码方法及相关设备
Lincoln et al. Plane-Tree Low-Bitrate Mesh Compression
CN117581549A (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