CN112438049B - 编码和解码方法、编码器、解码器以及存储介质 - Google Patents

编码和解码方法、编码器、解码器以及存储介质 Download PDF

Info

Publication number
CN112438049B
CN112438049B CN202080003878.4A CN202080003878A CN112438049B CN 112438049 B CN112438049 B CN 112438049B CN 202080003878 A CN202080003878 A CN 202080003878A CN 112438049 B CN112438049 B CN 112438049B
Authority
CN
China
Prior art keywords
plane
context information
node
current
parent node
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.)
Active
Application number
CN202080003878.4A
Other languages
English (en)
Other versions
CN112438049A (zh
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.)
Xidian University
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Xidian University
Beijing Xiaomi Mobile Software 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 Xidian University, Beijing Xiaomi Mobile Software Co Ltd filed Critical Xidian University
Priority to CN202210788141.9A priority Critical patent/CN115529463A/zh
Publication of CN112438049A publication Critical patent/CN112438049A/zh
Application granted granted Critical
Publication of CN112438049B publication Critical patent/CN112438049B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • G06T9/40Tree coding, e.g. quadtree, octree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

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

Abstract

本申请公开了用于对点云进行编码和解码的方法、编码器和解码器以及存储介质。用于对点云进行编码以生成压缩点云数据的比特流的方法,其中,所述点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个子体与基于八叉树的结构的节点相关联,所述方法包括以下步骤:确定编码方式,其中,编码方式包括平面编码方式和角编码方式;获得当前子节点的编码上下文信息,其中,如果编码方式为平面编码方式,则编码上下文信息包括平面上下文信息,其中,当前子节点的平面上下文信息根据当前父节点的占位模式和紧邻当前父节点的至少一个相邻父节点的占位模式来确定;如果编码方式为角度编码方式,则当前子节点的编码上下文信息包括当前父节点的平面信息和与当前父节点相邻的垂直相邻父节点的占位。最后基于所确定的编码上下文信息对当前子节点的占位进行熵编码以产生针对比特流的编码数据。

Description

编码和解码方法、编码器、解码器以及存储介质
技术领域
本申请总体涉及点云压缩。本申请尤其涉及用于改进点云的熵编码的编码和解码方法以及编码器和解码器。
背景技术
3D点云替代3D网格,最近成为流行的3D媒体信息表征。与点云数据相关联的用例非常多样化,包括:
·电影制作中的3D资产,
·用于实时3D沉浸式临场感或虚拟现实(VR)应用的3D资产,
·3D自由视点视频(例如,用于观看体育运动),
·地理信息系统(制图),
·文化遗产(以数字形式存储易损资产),
·自动驾驶(大型3D环境映射),等等。
点云是3D空间中的点集,每个点都具有关联的属性,例如颜色、材质特性等。可利用点云将对象或场景重构为这些点的组合。可利用具有不同设置的多个相机和深度传感器来采集点云,点云可由数千个甚至多达数十亿个点组成,以便真实地再现重构的场景。
需要存储点云的各个点的位置(通常将X、Y、Z信息编码为32位或64位的浮点数)及其属性(通常至少呈现24位编码的RGB颜色)。有时点云中有数十亿个点,因而很容易解释点云的原始数据可多达数千兆字节。因此,迫切需要压缩技术以减少表征点云所需的数据量。
针对点云压缩,开发了两种不同的方法:
首先,在基于视频的点云压缩(VPCC)方法中,点云压缩通过以下方式进行:使点云在3个不同的轴X、Y、Z和不同深度上进行多次投影,从而所有的点都出现在一个投影图像中。然后,将投影得到的多个投影图像处理成多个部分(patch)以消除冗余,并重新排列得到最终图像,在该最终图像中附加的元数据被用来将像素位置转换为空间中的点位置。然后,使用传统的图像/视频MPEG编码器来执行压缩。这种方法的优势在于,其再利用现有的编码器并且自然支持动态点云(使用视频编码器),但是这种方法几乎不适用于稀疏点云,并且预期使用点云专用方法可以提高压缩增益。
其次,在基于几何结构的点云压缩(GPCC)方法中,点位置(通常称为几何结构)和点属性(颜色、透明度等)被分别编码。为了对几何结构进行编码,使用了八叉树结构。将整个点云适配到一个立方体,不断地将该立方体分割为八个子立方体,直到每个子立方体只包含单个点。因此,点的位置被树的每个节点的占位信息所取代。由于每个立方体只有8个子立方体,所以3比特就足以对占位进行编码,因此对于深度D 的树,需要3D比特来编码一个点的位置。虽然这种变换单独并不足以提供显著的压缩增益,但应注意的是,由于是树结构,因此很多点共享相同的节点值,而且由于使用了熵编码器,因此可以显著减少信息量。
了解到许多点云包括表面,因此在GPCC的当前设计中,引入了平面编码方式来对适用八叉树的此类节点进行更有效的编码。
因此,引入了标志isPlanar,该标志指示占位子节点是否属于同一水平面。如果isPlanar为真,则利用额外的比特来标志planePosition,以指示该平面是下平面还是上平面。
通过使用二进制算术编码器对isPlanar标志进行编码,其中8(即, 2×2×2)比特的上下文信息作为平面上下文信息。此外,如果节点是平面的,则通过使用二进制算术编码器来对平面位置信息进行编码,其中 24(即,2×3×2×2)比特的上下文信息作为平面位置上下文信息。
另外,引入了角度编码方式,以使用用于稀疏点云数据的角度上下文来增强平面编码方式,其中,大多数情况下在稀疏点云数据中相邻占位趋向于零(即空)。更具体地,当用减少的上下文信息对planePosition 进行编码时,角度编码方式替代上下文信息,并且仍然使用与平面编码方式中相同的上下文模型对isPlanar标志进行算术编码。
然而,在用于对点云进行编码和解码的当前方法中,未考虑相邻节点的信息。
因此,本发明的目的是提供一种编码和解码方法以及一种编码器和解码器,以能够改进点云的快速且准确的数据压缩。
发明内容
在本发明的一方面,提供一种用于对点云进行编码以生成压缩点云数据的比特流的方法,其中,所述点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个所述子体与基于八叉树的结构的节点相关联,所述方法包括以下步骤:
确定编码方式,其中,编码方式包括平面编码方式和角度编码方式;
获得当前子节点的编码上下文信息;其中,
如果编码方式为平面编码方式,则编码上下文信息包括平面上下文信息,其中,当前子节点的平面上下文信息根据当前父节点的占位模式和紧邻当前父节点的至少一个相邻父节点的占位模式来确定;
如果编码方式为角度编码方式,则当前子节点的编码上下文信息包括当前父节点的平面信息和与当前父节点邻近的垂直相邻父节点的占位;以及
基于确定的编码上下文信息对当前子节点的占位进行熵编码,以生成用于比特流的编码数据。
因此,先确定编码方式,根据编码方式确定出上下文信息,该上下文信息包含两种不同的上下文信息,从而进行有效的熵编码。
其中,对于平面编码方式,当前父节点和相邻父节点处于树的相同深度D。当前父节点和相邻父节点由于其位置而共用一个公共表面。对于当前子节点,其作为当前父节点在树的深度D+1处的直接子节点,平面上下文信息是取决于当前父节点和至少一个相邻父节点的占位模式来确定的。其中,占位模式包括占位子节点在相应父节点内的分布。其中,平面上下文信息包括关于由穿过当前子节点的点云表征的可能平面或表面的信息。因此,关于当前父节点的至少一个紧邻节点的占位模式的信息被考虑为用于熵编码的上下文信息。
对于角度编码方式,替代地实现了更有效的平面上下文方式。与平面编码方式的平面上下文信息相比,仅考虑在稀疏分布的云数据中可访问的信息。
结果是,能够更可靠地预测出当前子节点的占位,该预测结果可以被熵编码器利用以进一步降低数据量。以这种方式,整个树被遍历以确定每个节点的占位,并为熵编码器提供足够的上下文信息。
优选地,相邻父节点是紧邻当前子节点的节点,其与当前子节点共用一个表面。
优选地,对于平面编码方式,编码上下文信息包括平面上下文信息,其中,当前子节点的唯一平面上下文信息是根据当前父节点的占位模式以及紧邻当前父节点的至少一个相邻父节点的占位模式来确定。
优选地,对于角度编码方式,当前子节点的编码上下文信息包括当前父节点的平面信息以及与当前父节点邻近的垂直相邻父节点的占位。
优选地,如果编码方式为平面编码方式,则编码上下文信息包括平面位置上下文信息,其中,平面位置上下文信息包括以下项中的一个或多个:
与基于八叉树的结构中的相同深度D处的相应父节点中的相同坐标上的最近已编码节点之间的距离d;
基于八叉树的结构中的相同深度D处的、相应父节点中的相同坐标上的最近已编码节点的平面位置;
根据紧邻当前父节点的至少一个相邻父节点的占位模式确定的当前子节点的平面位置。
其中,特别地,将距离d离散化为值“近”、“不太远”和“远”。如果在相同深度D的相同坐标处存在已编码节点,则平面位置,即“高”或“低”也可以被包括到平面位置上下文信息中。其中,子节点的坐标是相应父节点内的相对位置。此外,平面位置可被包括在根据与当前父节点相邻的至少一个相邻父节点的占位模式确定的平面位置上下文信息中。特别地,平面位置上下文信息包括一个以上或全部上述信息。特别地,在平面编码方式中,平面位置上下文信息可以包括上述信息。
优选地,如果在基于八叉树的结构中的相同深度D处的相应父节点中的相同坐标上不存在最近已编码节点,则平面位置上下文信息仅包括根据紧邻当前父节点的至少一个相邻父节点的占位模式确定的当前子节点的平面位置。因此,在这种情况下,仅根据从相邻节点收集的信息来确定平面位置上下文信息。进一步的信息无法获得,因此也无法被使用。但是由于包括来自相邻节点的信息,因此即使在这种情况下,也可实现有效压缩。特别地,在当前GPCC规范中提出的识别垂直于用于对 planePosition进行编码的平面的轴的axisIdx语句被根据相邻节点的占位确定的上下文信息替代。
优选地,如果编码方式为角度编码方式并且当前子节点不适用角度编码方式,则编码上下文信息包括平面位置上下文信息,其中,平面位置上下文信息包括以下项中的一个或多个:
与基于八叉树的结构中的相同深度D处的相应父节点中的相同坐标上的最近已编码节点之间的距离d;
基于八叉树的结构中的相同深度d处的相应父节点中的相同坐标上的最近已编码节点的平面位置;
根据紧邻当前父节点的至少一个相邻父节点的占位模式的当前子节点的平面位置。
因此,在这种情况下,平面位置上下文信息可以与平面编码方式下的平面位置信息相同。特别地,平面位置上下文信息包括一个以上或全部上述信息。特别地,在角度编码方式中,如果当前子节点不适用角度编码方式,则平面位置上下文信息可以包括上述信息。
优选地,为了根据至少一个相邻节点的占位模式确定平面上下文信息和平面位置上下文信息,当前子节点相对于当前父节点的当前平面位置被确定,其中,当前平面位置包括高平面位置和低平面位置。其中,对于所考虑的某个几何轴,沿着穿过父节点的轴,如果首先在当前父节点内存在垂直于该轴的、包括当前子节点的子节点的平面,则当前平面位置为低平面位置。如果首先在当前父节点内存在垂直于该轴的、不包括当前子节点的子节点的平面,则当前平面位置为高平面位置。因此,当前平面位置被确定以用于平面编码方式下的平面上下文信息,以及在平面编码方式和角度编码方式下的平面位置上下文信息的一部分。
优选地,如果当前平面位置为低平面位置,则平面上下文信息和平面位置上下文信息是根据以下确定的:相邻父节点的紧邻当前父节点的第一组四个子节点的占位以及当前父节点的与第一组正相对的第二组四个子节点的占位。换句话说,相邻父节点的第一组四个子节点与当前父节点和相邻父节点的公共表面紧邻,并且第二组在当前父节点内紧邻当前父节点的相对侧布置。每个组优选地由四个子节点限定一个平面,其中,每个平面垂直于所考虑的几何轴并且紧邻待评估的当前子节点。因此,可以获取足够的信息以提供关于当前子节点中的平面的可能性及其位置的可能性的可靠预测。
优选地,对于当前平面位置处于低平面位置,如果第一组的至少一个子节点被占位并且第二组未被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。
优选地,对于当前平面位置处于低平面位置,如果第一组未被占位并且第二组的至少一个子节点被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
优选地,对于当前平面位置处于低平面位置,如果第一组未被占位并且第二组未被占位,则平面上下文信息包括平面的可能性,其中,如果相邻父节点中不属于第一组的至少一个或多个子节点被占位,则平面位置上下文信息包括低平面的可能性,否则为“UNKNOWN”。
优选地,对于当前平面位置处于低平面位置,如果第一组的至少一个子节点被占位且第二组的至少一个子节点被占位,并且 #FirstGroup>#SecondGroup+1,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性,其中,#FirstGroup指示第一组中的占位节点的数量,#SecondGroup指示第二组中的占位节点的数量。
优选地,对于当前平面位置处于低平面位置,如果第一组的至少一个子节点被占位且第二组的至少一个子节点被占位,并且 #FirstGroup<#SecondGroup+1,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性;其中,#FirstGroup指示第一组中的占位节点的数量,#SecondGroup指示第二组中的占位节点的数量。
优选地,如果当前平面位置高,则平面上下文信息和平面位置上下文信息是根据以下确定的:沿着所考虑的轴在当前父节点紧后面的相邻父节点的占位模式,以及当前父节点的在垂直于所考虑的轴的平面中并紧邻当前子节点的四个子节点的组的占位。换句话说,与当前父节点的公共表面紧邻(即,在该公共表面之后)的相邻父节点的子节点的占位因解码顺序而未知。因此,与当前子节点共用一个公共表面的相邻父节点本身的占位与下面的组的占位在一起使用:该组在当前父节点内紧邻当前子节点的相对侧布置,即与相邻父节点相对(即编码/解码顺序在前)。因此,子节点组不包括要编码的当前子节点。其中,每个组优选地由四个子节点限定一个平面,其中,每个平面垂直于所考虑的几何轴并且紧邻当前父节点内待评估的当前子节点。因此,可以获取足够的信息以提供关于当前子节点中的平面的可能性及其位置的可能性的可靠预测。
优选地,对于当前平面位置处于高平面位置,如果该组的至少一个子节点被占位并且相邻父节点未被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。
优选地,对于当前平面位置处于高平面位置,如果该组未被占位并且相邻父节点被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
优选地,对于当前平面位置处于高平面位置,如果该组未被占位并且相邻父节点未被占位,则平面上下文信息包括平面的可能性,其中,如果沿着所考虑的轴在当前父节点紧前面的相邻父节点中的至少一个或多个子节点被占位,则平面位置上下文信息包括低平面的可能性,否则为“UNKNOWN”。
优选地,对于当前平面位置处于高平面位置,如果该组的至少一个子节点被占位且相邻父节点被占位,并且#Group>2,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性,其中,#Group指示该组中的占位节点的数量。其中,假设统计上相邻父节点中的一个子节点被占位。
优选地,对于当前平面位置处于高平面位置,如果该组的至少一个子节点被占位且相邻父节点被占位,并且#Group<2,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性,其中,#Group指示该组中的占位节点的数量。
优选地,对于当前平面位置处于高平面位置,如果该组的至少一个子节点被占位且相邻父节点被占位,并且#Group=2,则平面上下文信息包括不存在平面的可能性并且平面位置被推断为未知;其中,#Group指示该组中的占位节点的数量。
优选地,相邻父节点是沿着几何轴之一布置的。如果沿几何轴之一 (X、Y、Z)评估平面上下文信息,则相邻父节点沿着该特定轴位于当前父节点紧前面或紧后面。
优选地,平面上下文信息是沿着所有三个几何轴确定的。因此,由点云的点表示的平面或表面是沿着每个轴评估的。
优选地,当前父节点按解码的顺序相对于相邻父节点布置。在解码期间,相继评估基于八叉树的结构的节点。因此,关于解码顺序在当前父节点之前的占位模式的信息已经可以访问,并因此可以用于确定用于解码的平面上下文信息。特别地,解码顺序与编码顺序完全相反。但是,在编码期间,点云中每个点的确切位置是已知的。
在本发明的一个方面,一种用于对压缩点云数据的比特流进行解码以生成重构点云的方法,其中,所述点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个所述子体与基于八叉树的结构的节点相关联,包括以下步骤:
确定编码方式,其中,所述编码方式包括平面编码方式和角度编码方式;
获得当前子节点的编码上下文信息,其中
如果所述编码方式为所述平面编码方式,则编码上下文信息包括平面上下文信息,其中,所述当前子节点的平面上下文信息根据所述当前父节点的占位模式和紧邻所述当前父节点的至少一个相邻父节点的占位模式来确定;
如果所述编码方式为所述角度编码方式,则所述当前子节点的编码上下文信息包括所述当前父节点的平面信息和与所述当前父节点相邻的垂直相邻父节点的占位;以及
基于所述当前子节点的编码上下文信息对所述比特流进行熵解码以重构所述点云。
其中,对于平面编码方式,当前父节点和相邻父节点处于树的相同深度D。当前父节点和相邻父节点由于其位置而共用一个公共表面。对于当前子节点,其作为当前父节点在树的深度D+1处的直接子节点,平面上下文信息是取决于当前父节点和至少一个相邻父节点的占位模式来确定的。其中,平面上下文信息包括关于由穿过当前子节点的点云表征的可能平面或表面的信息。因此,关于当前父节点的至少一个紧邻节点的占位的信息被考虑为用于熵解码的上下文信息。
对于角度编码方式,替代地实现了更有效的平面上下文方式。与平面编码方式的平面上下文信息相比,仅考虑在稀疏分布的云数据中可访问的信息。
结果是,能够更可靠地预测出当前子节点的占位,该预测结果可以被熵解码器利用以进一步降低数据量。以这种方式,整个树被遍历以确定每个节点的占位,并为熵编码器提供足够的上下文信息。
优选地,根据上述关于编码方法的特征进一步构建解码方法。这些特征可以与解码方法自由组合。
在本发明的一方面,提供了一种编码器,用于对点云进行编码以生成压缩点云数据的比特流,其中,所述点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个所述子体与基于八叉树的结构的节点相关联,所述编码器包括:
处理器,以及
存储器存储设备,其中,所述存储器存储设备中存储有可由所述处理器执行的指令,当所述指令被执行时,促使所述处理器执行根据上述用于编码和解码的方法。
在本发明的一方面,提供了一种用于对压缩点云数据的比特流进行解码以生成重构点云的解码器,其中,所述点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个所述子体与基于八叉树的结构的节点相关联,所述解码器包括:
处理器,以及
存储器存储设备,其中,所述存储器存储设备中存储有可由所述处理器执行的指令,当所述指令被执行时,促使所述处理器执行上述解码的方法。
在本发明的一方面,提供了一种非暂时性计算机可读存储介质,该介质存储有处理器执行的指令,当所述指令由处理器执行时,促使所述处理器执行上述编码和/或解码的方法。
附图说明
现在将以举例的方式参考附图,其中附图示出了本申请的示例性实施例,在附图中:
图1是示出点云编码器的整体示图的框图,
图2是示出点云解码器的整体示图的框图,
图3是八叉树数据结构的示意图,
图4对每个节点中的八个子节点进行了编号,
图5示出了具有已知占位信息的节点的相邻节点,
图6是上下文信息的图示,
图7示出了本发明的具体实施例,
图8示出了本发明的具体实施例,
图9示出了本发明的具体实施例,
图10是示出本发明的第一实施例和第二实施例的步骤的流程图,
图11是编码器设备的示意图,以及
图12是解码器设备的示意图。
具体实施方式
本申请描述了用于对点云进行编码和解码的方法以及用于对点云进行编码和解码的编码器和解码器。与子体相关联的当前父节点被进一步分割为多个子体,每个进一步的子体对应于当前父节点的子节点,并且在编码器基于子节点的占位状态确定当前父节点的占位模式。根据当前父节点的占位模式和紧邻当前父节点的相邻父节点的占位模式来确定平面上下文信息(planar context information)。熵编码器基于所确定的平面上下文信息来对占位模式进行编码,以产生针对比特流的编码数据。解码器确定相同的平面上下文信息,并对比特流进行熵解码,以重构占位模式。
通过结合附图研读以下对示例的描述,本领域的普通技术人员将理解本申请的其他方面和特征。
有时在下面的描述中,术语“节点”和“子体(sub-volume)”可以互换使用。应理解的是,节点与子体相关联。节点是树上的特定点,该特定点可以是内部节点或叶节点。子体是节点表征的有界物理空间。术语“体(volume)”可用来指所定义的包含点云的最大有界空间。为了构建互连节点的树结构以对点云数据进行编码,将“体”递归地划分为子体。
点云是三维坐标系中的点的集合。这些点通常旨在表征一个或多个对象的外表面。每个点在三维坐标系中都有一个定位(位置)。该位置可以由笛卡尔坐标系或任何其他坐标系中的三个坐标(X,Y,Z)表示。这些点可能具有例如颜色的其他关联属性,在某些情况下可以是例如R、 G、B或Y、Cb、Cr的三分量值。其他关联属性还可以包括透明度、反射率、法线矢量等,这取决于所期望的点云数据的应用。
点云可以是静态的或动态的。例如,对物体或地形的详细扫描或映射可以是静态点云数据。用于机器视觉用途的基于LiDAR的环境扫描可以是动态点云数据,因为点云(至少潜在地)随时间(例如,随着“体”的每次连续扫描)而变化。因此,动态点云是按时间排序的点云序列。
点云数据可以用于许多应用中,例如,包括保藏(对历史文物的扫描)、地图绘制、机器视觉(例如,自动驾驶或半自动驾驶汽车)和虚拟现实系统。用于如机器视觉等应用的动态点云数据可以与用于如保藏用途的静态点云数据完全不同。例如,汽车视觉通常涉及相对较低的分辨率、无色彩高动态点云,所述点云是通过具有高采集频率的LiDAR(或类似)传感器获得的。这种点云的目的不是供人类使用或查看,而是用于决策过程中的机器对象检测/分类。例如,典型LiDAR框架(frame) 包含顺序的数万个点,而高质量的虚拟现实应用则需要数百万个点。可以预期,随着计算速度提高和新应用出现,随着时间的推移,将会需要更高分辨率的数据。
尽管点云数据很有用,但缺乏有效和高效的压缩、即编码和解码处理,可能会妨碍采用和部署。
用于对点云数据进行编码的较为常见机制之一是使用基于树的结构。在基于树的结构中,将点云的有界三维体递归划分为子体。树的节点对应于子体。可以基于树的分辨率和/或子体中是否包含任何点来确定是否进一步划分子体。叶节点可以具有占位标志,该占位标志指示其关联子体是否包含点。分割标志可以表示节点是否具有子节点(即,当前体是否已被进一步分割为子体)。在一些情况下,可以对这些标志进行熵编码,并且在一些情况下,可以使用预测编码。
常用的树结构是八叉树。在这种结构中,体/子体都是立方体,并且子体的每次分割都会进一步产生八个子体/子立方体。这种树结构的示例在图3中示出,其具有可以表征包含完整点云的体的节点30。该体被分割成八个子体32,每个子体与图3的八叉树中的一个节点相关联。包含点的节点指示包含点云的至少一个点35的占位节点34,而空节点36表征不包含点云的点的子体。如图3所示,占位节点可以进一步被分割成八个子体,这八个字体分别与特定父节点40的各子节点38相关联,以确定父节点40的占位模式。如图3所示,示例性父节点40的占位模式可以以二进制形式表示为“00100000”,其指示被占位的第三子节点38。在一些实施方式中,这种占位模式由二进制熵编码器进行编码以生成点云数据的比特流。
现在参考图1,其示出了根据本申请的方面的点云编码器10的简化框图。点云编码器10接收点云数据,并且可以包括用于产生八叉树的树构建模块,八叉树表征包含点云的体空间的几何结构,并指示点云的点在该几何结构中的定位或位置。
用于创建八叉树以对点云进行编码的基本处理可以包括:
1.在坐标系中从包含点云的有界体(立方体)开始;
2.将该有界体分割成8个子体(八个子立方体);
3.对于每个子体,如果该子体为空,则用0标记该子体;或者,如果该子体中有至少一个点,则用1标记该子体;
4.对于所有标记为1的子体,重复(2)以分割这些子体,直到达到最大分割深度;以及
5.对于所有最大深度的叶子体(子立方体),如果叶立方体不是空的,则将其标记为1,否则标记为0。
可以以预定义顺序(在每个划分出的子体内,在宽度上优先或在深度上优先,并且根据扫描模式/顺序)遍历树,以产生表征各节点的占位模式的比特序列。
然后,可以使用熵编码器16对该比特序列进行编码以产生压缩比特流14。熵编码器16可以使用上下文模型18对比特序列进行编码,该上下文模型18指定熵编码器16基于上下文确定来对比特进行编码的概率。在对每个比特或定义的比特集进行编码之后,可以自适应地更新上下文模型18。
像视频编码或图像编码一样,点云编码可以包括预测性操作,在这些操作中,会努力预测子体的模式,并对预测的残差进行编码,而不是对模式本身进行编码。预测可以是空间的(取决于相同点云中先前编码的子体)或时间的(取决于按时间排序的点云序列中的先前编码的点云)。
在图2中示出了对应于编码器10的示例性点云解码器20的框图。点云解码器20包括熵解码器22,熵解码器22使用与编码器10所使用的相同的上下文模型24。熵解码器22接收压缩数据的输入比特流26,并且对该数据进行熵解码以产生解压缩比特的输出序列。然后,该序列由树重构器转换为重构的点云数据。树重构器根据解压缩的数据和将树数据二进制化的扫描顺序的知识来重建树结构28。因此,树重构器能够重构点云中点的位置。
参照图4,其示出了父节点112被分割成八个子节点110,这八个子节点110为2×2×2个立方体,其中每个立方体具有相同的大小,并且边长为与父节点112相关联的立方体的边长的一半。此外,图4指示父节点112内的子节点110使用的编号。在进一步的说明中将使用图4中所示的编号系统。其中,图4还指示了所示的父节点112在由几何轴X、 Y、Z表示的三维空间中的空间方位。
其中,占位模式可以包括关于特定节点是否被占位的概率的平面信息,因为该节点中的点属于表面。通常,在现实世界中,封闭表面占主导地位。对于室内房间尤其如此,对于城市户外场景也是如此。熵编码器和解码器利用了这一事实。如果可以检测到由点云表征的表面,则可以对点在此表面上的分布进行预测,从而可以确定属于该表面的特定节点的占位概率。这可以通过定义上下文信息来完成,该上下文信息用于使用isPlanar标志对比特流进行编码和解码。其中,平面上下文信息通常是二进制值,其中特定节点的所设置的isPlanar标志(isPlanar=1) 被解释为该节点很可能属于特定表面。除了节点中存在表面的事实外,还可以考虑其他平面信息,例如,planePosition标志实现的平面位置信息,planePosition标志指示平面在当前子节点内的位置。planePosition 标志也可以是二进制值,其具有指示对应位置的值“高”和“低”。熵编码器/解码器通过使用平面上下文信息来将该平面信息编码到比特流中,从而减少比特流的数据。
此外,还存在其他编码方式,其使用不同的上下文信息应用于不同类型的点云。因此,定义了平面编码方式和角度编码方式。其中,角度编码方式优选地应用于稀疏分布的点云,意图在于向熵编码器/解码器提供角度上下文信息。其中,编码方式可以在比特流的元数据中被指示。
因此,根据本公开,在平面编码方式的情况下,上下文信息包括如上所述的平面上下文信息和平面位置上下文信息。其中,平面上下文信息根据要编码的当前子节点的当前父节点的占位模式和相邻节点中的至少一个节点的占位模式来确定,如下文更详细描述的。另外,图6描述了平面位置上下文信息。平面位置上下文信息包括以下信息:
a)与八叉树结构中的深度D处的、相同坐标上的最近已编码节点 121的距离d;d被离散化为三个值:“近”或“不太远”或“远”;
b)在相同深度(低或高)以及相同坐标上的最近已编码节点121 的平面位置(如果有);
c)根据至少一个相邻父节点的占位模式的当前子节点的平面位置,如下文更详细描述的。
其中,平面上下文信息为1比特(平面或无平面),并且平面位置上下文信息为3×2×2比特信息。
此外,根据本公开,在角度编码方式的情况下,上下文信息包括如上所述的平面上下文信息和平面位置上下文信息。其中,平面上下文信息包括:
a)当前父节点的isPlanar标志,即当前父节点中是否存在平面;和
b)与当前父节点垂直相邻的垂直相邻父节点124的占位。
另外,用于角度编码方式的平面位置上下文信息包括以下信息:
a)根据已可用节点与当前子节点之间的角度所识别的已可用节点的planePosition。
现在参考图5,其示出了具有两个子节点102、103的当前父节点100,两个子节点102、103被示例为占位节点,即,两个子节点的子体各自包含点云的至少一个点。此外,在图5中指示的是相邻父节点104、106、 108,每个本身包括至少一个占位子节点。其中,在预测位于特定八叉树等级的子节点102、103的平面上下文信息之前,在该八叉树中与当前父节点100相同等级D处的三个邻近的相邻父节点104、106、108的占位信息在解码器侧是已知的。由于给定解码顺序,因此在评估当前父节点 100的子节点102、103时,关于相邻父节点104、108、106的信息在解码器侧是已知的,并且可以用于确定上下文信息。由于这三个相邻父节点104、106、108邻近当前子节点102、103,因此在这些相邻父节点104、 106、108的占位模式与要编码的当前子节点102、103的占位模式之间存在相关性。其中,占位模式是指各个父节点的子节点的占位。该信息容易获得,但目前尚未在现有的编码和解码方法中使用。例如,如果沿 X轴评估当前子节点102的上下文信息,则可以将沿X轴与当前父节点 100紧邻的相邻父节点104纳入考虑。此外,如上所述,考虑紧邻的父节点,该父节点按解码的顺序处于当前父节点之前。因此,在解码期间,先前节点的占位模式是解码器已知的,并且可用于确定上下文信息。如果沿Y轴评估上下文信息,则可以将沿Y轴与当前父节点100相邻的相邻父节点106纳入考虑。该信息对于解码器也是已知的,并且可以容易地用于获取当前子节点102的可靠平面上下文信息。
然而,当考虑当前子节点的占位与至少一个相邻父节点的占位模式之间的相关性时,也必须考虑要编码的当前子节点的位置。这样,要确定当前子节点的当前平面位置。其中,当前平面位置指示当前父节点内的当前子节点沿着所考虑的轴的平面以及垂直于该几何轴的平面。例如,沿着X轴,第一低平面由子节点0、1、2、3定义,而高平面由子节点4、 5、6、7定义。沿着Y轴,低平面由子节点0、1、4、5定义,而高平面由子节点2、3、6、7定义。沿着Z轴,低平面由子节点0、2、4、6定义,而高平面由子节点1、3、5、7定义。因此,在图5的示例中,子节点102沿着X轴的当前平面位置为低平面位置,并且子节点103沿着X 轴的当前平面位置为高平面位置。
现在参考图7,其示出了如何根据当前子节点的相邻节点的占位来确定平面上下文信息和平面位置上下文信息的配置,所述信息然后可以在熵编码中被使用以压缩点云数据。就这一点而言,本发明的目标之一是考虑到当前子节点120的相邻父节点的占位模式,并且在对平面信息进行编码时,将此类信息并入上下文信息中。其中图7示出了要编码的当前子节点处于当前父节点的低位置的情况。
图7(a)示出了沿X轴的平面上下文信息的确定。当前子节点120 的平面上下文信息要被评估。因此,评估当前父节点122以及与当前父节点122紧邻的相邻父节点123的占位模式。其中,待评估的相邻父节点124沿着X轴布置。此外,相邻父节点124的解码顺序被布置在当前父节点122之前。因此,在对当前父节点122进行解码时,关于相邻父节点124的所有信息已经可用。另外,由于点云的位置和占位模式对于编码器而言是完全已知的,因此在对当前子节点120的信息进行编码期间,关于相邻父节点124的占位信息也是已知的。
特别地,为了确定当前子节点120的上下文信息,考虑作为相邻父节点124的子节点的第一组子节点126和作为当前父节点122的子节点的第二组子节点128。其中,相邻父节点124的第一组126的四个子节点与当前父节点122直接相邻。因此,第一组子节点126各自与当前父节点122共用公共表面。当前父节点122的第二组128的四个子节点与第一组126正相对。因此,第二组128的四个子节点形成当前父节点122 的侧面,该侧面与作为相邻父节点124和当前父节点122之间的公共面的侧面正相对。换句话说,由第一组子节点126和第二组子节点128定义的平面位于当前子节点120的两侧,并且垂直于所考虑的轴。因此,通过这两个平面,可以提供对上下文信息的可靠确定。点云中穿过当前子节点120的表面也极有可能穿过由第一组子节点126或第二组子节点 128定义的平面中的一个,因此当前子节点120的上下文信息很大程度取决于第一组子节点126的占位和/或第二组子节点128的占位。
一般而言,对于当前平面位置低的情况,如果第一组的至少一个子节点被占位并且第二组未被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。如果第一组未被占位并且第二组的至少一个子节点被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。如果第一组未被占位并且第二组未被占位,则平面上下文信息包括平面的可能性,其中,如果相邻父节点中不属于第一组的至少一个或多个子节点被占位,则平面位置上下文信息包括低平面的可能性,否则为“UNKNOWN(未知)”。如果第一组的至少一个子节点被占位且第二组的至少一个子节点被占位,并且#FirstGroup>#SecondGroup+1,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。如果第一组的至少一个子节点被占位且第二组的至少一个子节点被占位,并且#FirstGroup<#SecondGroup+1,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。其中,#FirstGroup 指示第一组中的占位节点的数量,#SecondGroup指示第二组中的占位节点的数量。
更具体地说,对于沿着X轴的评估以及图4所示的编号系统:
·如果第一组的子节点4至7中的至少一个子节点被占位并且第二组的子节点4至7未被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。
·如果第一组的子节点4至7未被占位并且第二组的子节点4至7 中的至少一个子节点被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
·如果第一组的子节点4至7未被占位并且第二组的子节点4至7 未被占位,则平面上下文信息包括平面的可能性,其中,如果相邻父节点中的至少一个或多个子节点0至3被占位,则平面位置上下文信息包括低平面的可能性,否则为“UNKNOWN”。
·如果第一组的子节点4至7中的至少一个子节点被占位且第二组的子节点4至7中的至少一个子节点被占位,并且 #FirstGroup>#SecondGroup+1,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。
·如果第一组的子节点4至7中的至少一个子节点被占位且第二组的子节点4至7中的至少一个子节点被占位,并且 #FirstGroup<#SecondGroup+1,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
因此,对于编码,当对为低位置的当前平面位置执行熵编码时,在当前子节点中存在或不存在垂直于X轴的平面的概率被视为上下文信息。其中,该信息可以用作平面编码方式和角度编码方式中的平面上下文信息,并且可以被包括作为平面编码方式中的平面位置上下文信息。
为了根据图6(b)沿着Y轴评估,以确定当前子节点120的平面上下文信息,设置如下:
·如果第一组的子节点2、3、6、7中的至少一个子节点被占位并且第二组的子节点2、3、6、7未被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。
·如果第一组的子节点2、3、6、7未被占位并且第二组的子节点2、 3、6、7中的至少一个子节点被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
·如果第一组的子节点2、3、6、7未被占位并且第二组的子节点2、3、6、7未被占位,则平面上下文信息包括平面的可能性,其中,如果相邻父节点中的至少一个或多个子节点0、1、4、5被占位,则平面位置上下文信息包括低平面的可能性,否则为“UNKNOWN”。
·如果第一组的子节点2、3、6、7中的至少一个子节点被占位且第二组的子节点2、3、6、7中的至少一个子节点被占位,并且 #FirstGroup>#SecondGroup+1,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。
·如果第一组的子节点2、3、6、7中的至少一个子节点被占位并且第二组的子节点2、3、6、7中的至少一个子节点被占位,并且 #FirstGroup<#SecondGroup+1,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
因此,对于编码,当对为低位置的当前平面位置执行熵编码时,在当前子节点中存在或不存在垂直于Y轴的平面的概率被视为上下文信息。其中,该信息可以用作平面编码方式和角度编码方式中的平面上下文信息,并且可以被包括作为平面编码方式中的平面位置上下文信息。
为了根据图6(c)沿着Z轴评估,以确定当前子节点120的平面上下文信息,设置如下:
·如果第一组的子节点1、3、5、7中的至少一个被占位并且第二组的子节点1、3、5、7未被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。
·如果第一组的子节点1、3、5、7未被占位并且第二组的子节点1、 3、5、7中的至少一个子节点被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
·如果第一组的子节点1、3、5、7未被占位并且第二组的子节点1、 3、5、7未被占位,则平面上下文信息包括平面的可能性,其中,如果相邻父节点中的至少一个或多个子节点0、2、4、6被占位,则平面位置上下文信息包括低平面的可能性,否则为“UNKNOWN”。
·如果第一组的子节点1、3、5、7中的至少一个子节点被占位且第二组的子节点1、3、5、7中的至少一个子节点被占位,并且#FirstGroup>#SecondGroup+1,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。
·如果第一组的子节点1、3、5、7中的至少一个子节点被占位且第二组的子节点1、3、5、7中的至少一个子节点被占位,并且 #FirstGroup<#SecondGroup+1,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
因此,对于编码,当对为低位置的当前平面位置执行熵编码时,在当前子节点中存在或不存在垂直于Z轴的平面的概率被视为上下文信息。其中,该信息可以用作平面编码方式和角度编码方式中的平面上下文信息,并且可以被包括作为平面编码方式中的平面位置上下文信息。
如上所示,如果要编码的当前子节点的当前平面位置为高平面位置,则情况会不同。然后,与当前子节点邻近的相邻父节点的编码顺序在当前父节点之后。在这种情况下,相邻父节点的子节点的占位是未知的,仅可以使用相邻父节点自身的占位以确定上下文信息。
特别地,如果当前平面位置高,则平面上下文信息和平面位置上下文信息根据以下信息来确定:沿着所考虑的轴在当前父节点紧后面的相邻父节点的占位,以及当前父节点内的在垂直于所考虑的轴的平面中并且紧邻当前子节点的四个子节点的组的占位。换句话说,与当前父节点的公共表面紧邻的相邻父节点的子节点的占位因解码顺序而通常未知。因此,与当前子节点共用一个公共表面的相邻父节点本身的占位,与当前父节点内紧邻当前父节点的相对侧布置(即,与相邻父节点相对)的组一起使用。其中,该组优选地由四个子节点定义一个平面,其中该平面垂直于所考虑的几何轴并且紧邻当前父节点内要被评估的当前子节点。
一般而言,对于当前平面位置低的情况,如果该组的至少一个子节点被占位并且相邻父节点未被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。如果该组未被占位并且相邻父节点被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。如果该组未被占位并且相邻父节点未被占位,则平面上下文信息包括平面的可能性,其中,如果沿着所考虑的轴在当前父节点紧前面的相邻父节点中的至少一个或多个子节点被占位,则平面位置上下文信息包括低平面的可能性,否则为“UNKNOWN”。如果该组的至少一个子节点被占位且相邻父节点被占位,并且#Group>2,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。如果该组的至少一个子节点被占位且相邻父节点被占位,并且#Group<2,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。如果该组的至少一个子节点被占位且相邻父节点被占位,并且#Group=2,则平面上下文信息包括不存在平面的可能性并且因此平面位置未知。其中, #Group指示该组中的占位子节点的数量。
更具体地说,对于参照图8(a)沿着X轴的评估:
如果该组的子节点0至3中的至少一个子节点被占位并且相邻父节点未被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。
如果该组的子节点0至3未被占位并且相邻父节点被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
如果该组的子节点0至3未被占位并且相邻父节点未被占位,则平面上下文信息包括平面的可能性,其中,如果相邻父节点中沿着所考虑的轴在当前父节点紧前面的至少一个或多个子节点4至7(如图9(a) 中所描绘)被占位,则平面位置上下文信息包括低平面的可能性,否则为“UNKNOWN”。
如果该组的子节点0至3中的至少一个子节点被占位且相邻父节点被占位,并且#Group>2,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。
如果该组的子节点0至3中的至少一个子节点被占位且相邻父节点被占位,并且#Group<2,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
如果该组的子节点0至3中的至少一个子节点被占位且相邻父节点被占位,并且#Group=2,则平面上下文信息包括不存在平面的可能性并且平面位置被推断为未知。其中,#Group指示该组中的占位节点的数量。
因此,对于编码,当对为低位置的当前平面位置执行熵编码时,在当前子节点中存在或不存在垂直于X轴的平面的概率被视为上下文信息。其中,该信息可以用作平面编码方式和角度编码方式中的平面上下文信息,并且可以被包括作为平面编码方式中的平面位置上下文信息。
为了根据图8(b)沿着Y轴评估,以确定当前子节点120的平面上下文信息,设置如下:
·如果该组的子节点0、1、4、5中的至少一个子节点被占位并且相邻父节点未被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。
·如果该组的子节点0、1、4、5未被占位并且相邻父节点被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
·如果该组的子节点0、1、4、5未被占位并且相邻父节点未被占位,则平面上下文信息包括平面的可能性,其中,如果相邻父节点中沿着所考虑的轴在当前父节点紧前面的至少一个或多个子节点2、3、6、7(如图 9(b)中所描绘)被占位,则平面位置上下文信息包括低平面的可能性,否则为“UNKNOWN”。
·如果该组的子节点0、1、4、5中的至少一个子节点被占位且相邻父节点被占位,并且#Group>2,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。
·如果该组的子节点0、1、4、5中的至少一个子节点被占位且相邻父节点被占位,并且#Group<2,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
·如果该组的子节点0、1、4、5中的至少一个子节点被占位且相邻父节点被占位,并且#Group=2,则平面上下文信息包括不存在平面的可能性并且平面位置被推断为未知。其中,#Group指示该组中的占位节点的数量。
因此,对于编码,当对为低位置的当前平面位置执行熵编码时,在当前子节点中存在或不存在垂直于Y轴的平面的概率被视为上下文信息。其中,该信息可以用作平面编码方式和角度编码方式中的平面上下文信息,并且可以被包括作为平面编码方式中的平面位置上下文信息。
为了根据图8(c)沿着Z轴评估,以确定当前子节点120的平面上下文信息,设置如下:
·如果该组的子节点0、2、4、6中的至少一个被占位并且相邻父节点未被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。
·如果该组的子节点0、2、4、6未被占位并且相邻父节点被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
·如果该组的子节点0、2、4、6未被占位并且相邻父节点未被占位,则平面上下文信息包括平面的可能性,其中,如果相邻父节点中沿着所考虑的轴在当前父节点紧前面的至少一个或多个子节点1、3、5、7(如图 9(c)中所描绘)被占位,则平面位置上下文信息包括低平面的可能性,否则为“UNKNOWN”。
·如果该组的子节点0、2、4、6中的至少一个子节点被占位且相邻父节点被占位,并且#Group>2,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括较低平面位置的可能性。
·如果该组的子节点0、2、4、6中的至少一个子节点被占位且相邻父节点被占位,并且#Group<2,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
·如果该组的子节点0、2、4、6中的至少一个子节点被占位且相邻父节点被占位,并且#Group=2,则平面上下文信息包括不存在平面的可能性并且平面位置被推断为未知。其中,#Group指示该组中的占位节点的数量。
因此,对于编码,当对为低位置的当前平面位置执行熵编码时,在当前子节点中存在或不存在垂直于Y轴的平面的概率被视为上下文信息。其中,该信息可以用作平面编码方式和角度编码方式中的平面上下文信息,并且可以被包括作为平面编码方式中的平面位置上下文信息。
总而言之,在所有情况下,都建立了可用于熵编码的可靠平面上下文信息模型,以考虑各个节点中表面或平面的出现,并使用此知识来有效地预测节点的占位,用以由熵编码器/解码器进行数据压缩。
在某些情况下,实现上述上下文信息集是不可能或没有用的。因此,对于平面编码方式下的平面位置上下文信息,如果在相同深度处,在相同坐标上的最近已编码节点不是平面的或不存在,则当前GPCC规范建议使用特定上下文模型,该模型使用axisIdx语句(值=0、1或2)来识别垂直于对planePosition进行编码的平面的轴。但是,这种方法忽略了相邻节点的占位所提供的信息。根据本发明,仍然可以根据在与当前子节点相同的父节点中并且垂直于所考虑的轴的同一平面内的相邻子节点的占位来进行推断。例如,如果考虑X轴并且当前子节点位于坐标2,则在当前父节点中并且在垂直于X轴的同一垂直平面中的子节点0和1 的信息是已知的,并且可用于确定平面位置上下文信息,例如通过使用这些节点之一或这些节点中的大多数节点的平面位置上下文信息作为要编码的当前子节点的平面位置上下文信息。例如,如果考虑X轴并且当前子节点位于坐标7,则在当前父节点中并且垂直于X轴的同一垂直平面中的子节点4至6的信息是已知的并且可以用于确定平面位置上下文信息。因此,如果在相同深度D处,在相同坐标上不存在最近已编码节点,则平面位置上下文信息可以替代提出的axisIdx语句来提供改进的上下文信息,以用于更有效的熵编码。因此,以上提出的平面编码方式下的用于平面位置上下文信息的上下文模型被以下所替代:
a)根据至少一个相邻节点的占位的当前子节点的平面位置。
此外,对于角度编码方式,即使指示点云通过角度编码方式被编码,该点云的一个或多个节点也可能不适合该编码方式。在这种情况下,角度编码方式的平面位置上下文信息被根据平面模式的平面位置上下文信息所替代,如以上更详细描述的。
现在参考图10(a),其示出了用于对点云进行编码的方法,包括以下步骤:
确定编码方式,其中,编码方式包括平面编码方式和角度编码方式 (步骤10);
获得当前子节点的编码上下文信息(步骤11),其中
如果编码方式为平面编码方式,则编码上下文信息包括平面上下文信息,其中,当前子节点的平面上下文信息根据当前父节点的占位和紧邻当前父节点的至少一个相邻父节点的占位来确定(步骤111);
如果编码方式为角度编码方式,则当前子节点的编码上下文信息包括当前父节点的平面信息和与当前父节点邻近的垂直相邻父节点的占位 (步骤112);以及
基于确定的编码上下文信息对当前子节点进行熵编码,以生成针对比特流的编码数据(步骤12)。
现在参考图10(b),其示出了用于对点云进行解码的方法,包括以下步骤:
确定编码方式,其中,编码方式包括平面编码方式和角度编码方式(步骤20);
获得当前子节点的编码上下文信息(步骤21),其中
如果编码方式为平面编码方式,则编码上下文信息包括平面上下文信息,其中,当前子节点的平面上下文信息根据当前父节点的占位和紧邻当前父节点的至少一个相邻父节点的占位来确定(步骤211);
如果编码方式为角度编码方式,则当前子节点的编码上下文信息包括当前父节点的平面信息和与当前父节点邻近的垂直相邻父节点的占位 (步骤212);以及
基于当前子节点的上下文信息对比特流进行熵解码以重构点云(步骤22)。
因此,根据本发明,使用和评估关于相邻节点的信息以获取上下文信息模型,从而更可靠地预测当前子节点内出现表面。此信息可用来减少压缩点云数据的数据量,其中,相同的上下文信息模型也用于解码器,以能够高效且准确地对提供的比特流进行可靠地解码。因此,相对于先前的编码方法和当前的GPCC规范,可以使得数量量显著降低至少1%。然而,这个值取决于点的密度,其中,特别是对于室内点云,例如LiDAR 点云,假定可以将它们视为密集点云。
在编码或解码方法的实施例中,如果编码方式为平面编码方式,则编码上下文信息包括平面上下文信息,平面上下文信息包括:
根据当前父节点的占位模式和紧邻当前父节点的至少一个相邻父节点的占位模式确定平面存在。
在编码或解码方法的实施例中,如果编码方式为平面编码方式,则编码上下文信息包括平面位置上下文信息,其中,平面位置上下文信息包括以下项中的一个或多个:
与基于八叉树的结构中的相同深度D处的相应父节点中的相同坐标上的最近已编码节点之间的距离d;
基于八叉树的结构中的相同深度D处的相应父节点中的相同坐标上的最近已编码节点的平面位置;
根据紧邻当前父节点的至少一个相邻父节点的占位模式确定的当前子节点的平面位置。
在编码或解码方法的实施例中,如果在基于八叉树的结构中的相同深度D处的相应父节点中的相同坐标上不存在最近已编码节点,则平面位置上下文信息仅包括根据紧邻当前父节点的至少一个相邻父节点的占位模式确定的当前子节点的平面位置。
在编码或解码方法的实施例中,如果编码方式为角度编码方式,则编码上下文信息包括平面上下文信息,其中,平面上下文信息包括以下项中的一个或多个:
当前父节点的isPlanar标志;和
紧邻当前父节点的垂直相邻父节点(即,垂直于所考虑的轴并且按解码的顺序在当前父节点紧前面)的占位。
在编码或解码方法的实施例中,如果编码方式为角度编码方式并且当前子节点不适用角度编码方式,则编码上下文信息包括平面位置上下文信息,其中,平面位置上下文信息包括以下项中的一个或多个:
与基于八叉树的结构中的相同深度D处的相应父节点中的相同坐标上的最近已编码节点之间的距离d;
基于八叉树的结构中的相同深度D处的相应父节点中的相同坐标上的最近已编码节点的平面位置;
根据紧邻当前父节点的至少一个相邻父节点的占位模式确定的当前子节点的平面位置。
在编码或解码方法的实施例中,为了根据至少一个相邻父节点的占位模式确定平面上下文信息和平面位置上下文信息,当前子节点相对于当前父节点的当前平面位置被确定,其中,当前平面位置包括高平面位置和低平面位置。
在编码或解码方法的实施例中,如果当前平面位置为低平面位置,则平面上下文信息和平面位置上下文信息是根据以下确定的:相邻父节点的紧邻当前父节点的第一组四个子节点的占位以及当前父节点的与第一组正相对的第二组四个子节点的占位。
在编码或解码方法的实施例中,对于当前平面位置处于低平面位置,如果第一组的至少一个子节点被占位并且第二组未被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性。
在编码或解码方法的实施例中,对于当前平面位置处于低平面位置,如果第一组未被占位并且第二组的至少一个子节点被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性。
在编码或解码方法的实施例中,对于当前平面位置处于低平面位置,如果第一组未被占位并且第二组未被占位,则平面上下文信息包括平面的可能性,其中,如果相邻父节点中不属于第一组的至少一个或多个子节点被占位,则平面位置上下文信息包括低平面的可能性,否则为“UNKNOWN”。
在编码或解码方法的实施例中,对于当前平面位置处于低平面位置,如果第一组的至少一个子节点被占位且第二组的至少一个子节点被占位,并且#FirstGroup>#SecondGroup+1,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性,其中,#FirstGroup 指示第一组中的占位节点的数量,#SecondGroup指示第二组中的占位节点的数量。
在编码或解码方法的实施例中,对于当前平面位置处于低平面位置,如果第一组的至少一个子节点被占位且第二组的至少一个子节点被占位,并且#FirstGroup<#SecondGroup+1,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性;其中,#FirstGroup 指示第一组中的占位节点的数量,#SecondGroup指示第二组中的占位节点的数量。
在编码或解码方法的实施例中,如果当前平面位置为高,则平面上下文信息和平面位置上下文信息是根据以下确定的:沿着所考虑的轴在当前父节点紧后面的相邻父节点的占位,以及当前父节点的在垂直于所考虑的轴的平面中并紧邻当前子节点的四个子节点的组的占位。
在编码或解码方法的实施例中,对于当前平面位置处于高平面位置,如果该组的至少一个子节点被占位并且相邻父节点未被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性
在编码或解码方法的实施例中,对于当前平面位置处于高平面位置,如果该组未被占位并且相邻父节点被占位,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性
在编码或解码方法的实施例中,对于当前平面位置处于高平面位置,如果该组未被占位并且相邻父节点未被占位,则平面上下文信息包括平面的可能性,其中,如果沿着所考虑的轴在当前父节点紧前面的相邻父节点中的至少一个或多个子节点被占位,则平面位置上下文信息包括低平面的可能性,否则为“UNKNOWN”。
在编码或解码方法的实施例中,对于当前平面位置处于高平面位置,如果该组的至少一个子节点被占位且相邻父节点被占位,并且#Group>2,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括低平面位置的可能性,其中,#Group指示该组中的占位节点的数量。
在编码或解码方法的实施例中,对于当前平面位置处于高平面位置,如果该组的至少一个子节点被占位且相邻父节点被占位,并且#Group<2,则平面上下文信息包括平面的可能性,并且平面位置上下文信息包括高平面位置的可能性,其中,#Group指示该组中的占位节点的数量。
在编码或解码方法的实施例中,对于当前平面位置处于高平面位置,如果该组的至少一个子节点被占位且相邻父节点被占位,并且#Group=2,则平面上下文信息包括不存在平面的可能性并且平面位置被推断为未知;其中,#Group指示该组中的占位节点的数量。
在编码或解码方法的实施例中,相邻父节点沿着几何轴之一布置。
在编码或解码方法的实施例中,沿着所有三个几何轴确定平面上下文信息。
在编码或解码方法的实施例中,当前父节点按解码的顺序相对于相邻父节点布置。
在优选实施例中,用于对点云进行编码/解码以生成压缩点云数据的比特流的方法在LIDAR(光检测和测距)设备中实现。LIDAR设备包括光传输模块和传感器模块。其中,光传输模块被配置为用激光扫描环境,并且利用传感器模块的传感器来测量由环境中的对象反射的激光的回波 (echo)。此外,LIDAR设备包括评估模块,该评估模块被配置为优选地通过激光返回时间和/或反射的激光的波长的差异来确定环境在点云中的3D表征。因此,回波可以包括对象或环境的多达数百万个位置信息点,从而导致大型点云,这增加了对计算设备进一步处理或评估该点云的需求。在例如自动驾驶的特定应用中,由于安全要求,LIDAR点云的处理必须几乎是实时的。因此,对点云数据进行有效且准确的压缩是必需的。因此,LIDAR设备可以包括编码器,该编码器包括处理器和存储器存储设备。存储器存储设备可以存储包含指令的计算机程序或应用,该指令在被执行时使处理器执行诸如本文所述的操作。例如,指令可以编码和输出根据本文描述的方法编码的比特流。附加地或替代地,LIDAR设备可以包括解码器,该解码器包括处理器和存储器存储设备。存储器存储设备可以包括包含指令的计算机程序或应用,该指令在被执行时促使处理器执行诸如本文所述的操作。因此,通过编码器/解码器,能够对点云数据进行有效且准确的压缩,从而提供了更有效且优选实时地处理所获取的点云数据的概率。优选地,编码器的处理器和解码器的处理器相同。优选地,编码器的存储器存储设备和解码器的存储器存储设备相同。优选地,编码器和/或解码器的处理器还被配置为进一步处理或评估点云,甚至更优选地实时地处理或评估点云。特别地,对于自动驾驶的示例,点云的评估可以包括确定在驾驶方向上的障碍物。
现在参考图8,其示出了编码器1100的示例性实施例的简化框图。编码器1100包括处理器1102和存储器存储设备1104。存储器存储设备 1104可以存储包含指令的计算机程序或应用,该指令在被执行时促使处理器1102执行诸如本文所述的操作。例如,指令可以编码和输出根据本文描述的方法编码的比特流。应理解的是,指令可以存储在非暂时性计算机可读介质上,例如压缩盘、闪存设备、随机存取存储器、硬盘驱动器等。当指令被执行时,处理器1102执行指令中指定的操作和功能,以便用作实现上述处理的专用处理器。在一些示例中,这样的处理器可以被称为“处理器电路”或“处理器回路”。
现在还参考图9,其示出了解码器1200的示例性实施例的简化框图。解码器1200包括处理器1202和存储器存储设备1204。存储器存储设备 1204可以包括包含指令的计算机程序或应用,该指令在被执行时促使处理器1202执行诸如本文所述的操作。应理解的是,指令可以存储在计算机可读介质上,例如压缩盘、闪存设备、随机存取存储器、硬盘驱动器等。当指令被执行时,处理器1202执行指令中指定的操作和功能,以便用作实现上述处理和方法的专用处理器。在一些示例中,这样的处理器可以被称为“处理器电路”或“处理器回路”。
应理解,根据本申请的解码器和/或编码器可以在多个计算设备中实现,包括但不限于服务器、适当编程的通用计算机、机器视觉系统和移动设备。可以通过包含用于配置一个或多个处理器以执行本文所述功能的指令的软件来实现解码器或编码器。可以将软件指令存储在任何合适的非暂时性计算机可读存储器上,包括CD、RAM、ROM、闪存等。
应理解,本文中描述的解码器和/或编码器以及实现所描述的用于配置编码器或解码器的方法/处理的模块、例程、处理、线程或其他软件组件可以使用标准的计算机编程技术和语言来实现。本申请不限于特定的处理器、计算机语言、计算机编程协议、数据结构,其他这样的实现细节。本领域技术人员将认识到,所描述的处理可以被实现为存储在易失性或非易失性存储器中的计算机可执行代码的一部分、作为专用集成芯片(ASIC)的一部分等。
本申请还提供了对通过根据本申请的编码处理的应用而产生的数据进行编码的计算机可读信号。
在本发明的一个方面中,提供一种用于对点云进行编码以生成压缩点云数据的比特流的方法,其中,点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含点云的体空间分割成子体而具有父子关系的多个节点,每个子体与基于八叉树的结构的节点相关联,所述方法包括以下步骤:
确定编码方式;
获得当前子节点的编码上下文信息;
基于确定的编码上下文信息对当前子节点的占位进行熵编码,以生成针对比特流的编码数据。
优选地,编码方式包括平面编码方式和/或角度编码方式。
优选地,其中,如果编码方式为平面编码方式,则编码上下文信息包括平面上下文信息。
优选地,其中,当前子节点的平面上下文信息根据当前父节点的占位模式和紧邻当前父节点的至少一个相邻父节点的占位模式来确定;
优选地,其中,如果编码方式为角度编码方式,则当前子节点的编码上下文信息包括当前父节点的平面信息和与当前父节点相邻的垂直相邻父节点的占位。
在本发明的一个方面中,一种用于对压缩点云数据的比特流进行解码以生成重构点云的方法,其中,点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含点云的体空间分割成子体而具有父子关系的多个节点,每个子体与基于八叉树的结构的节点相关联,所述方法包括以下步骤:
确定编码方式;
获得当前子节点的编码上下文信息;
基于当前子节点的编码上下文信息对比特流进行熵解码以重构点云。
优选地,其中,编码方式包括平面编码方式和/或角度编码方式。
优选地,其中,如果编码方式为平面编码方式,则编码上下文信息包括平面上下文信息。
优选地,其中,当前子节点的平面上下文信息根据当前父节点的占位模式和紧邻当前父节点的至少一个相邻父节点的占位模式来确定。
优选地,其中,如果编码方式为角度编码方式,则当前子节点的编码上下文信息包括当前父节点的平面信息和与当前父节点相邻的垂直相邻父节点的占位。
可以对所描述的实施例进行某些调整和修改。因此,以上讨论的实施例被认为是说明性的而非限制性的。特别地,实施例可以彼此自由地组合。

Claims (15)

1.一种用于对点云进行编码以生成压缩点云数据的比特流的方法,其中,所述点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个所述子体与所述基于八叉树的结构的节点相关联,所述方法包括以下步骤:
确定编码方式,其中,所述编码方式包括平面编码方式和角度编码方式;
获得当前子节点的编码上下文信息,其中
如果所述编码方式为所述平面编码方式,则编码上下文信息包括平面上下文信息,其中,所述当前子节点的平面上下文信息根据当前父节点的占位模式和紧邻所述当前父节点的至少一个相邻父节点的占位模式来确定;其中,当前父节点的至少一个紧邻节点的占位模式的信息被考虑为用于熵编码的上下文信息;其中,占位模式包括占位子节点在相应父节点内的分布;平面上下文信息包括关于由穿过当前子节点的点云表征的可能平面或表面的信息;
如果所述编码方式为所述角度编码方式,则所述当前子节点的编码上下文信息包括所述当前父节点的平面信息和与所述当前父节点相邻的垂直相邻父节点的占位,
基于确定的编码上下文信息对所述当前子节点进行熵编码,以生成针对所述比特流的编码数据。
2.一种用于对压缩点云数据的比特流进行解码以生成重构点云的方法,其中,所述点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个所述子体与所述基于八叉树的结构的节点相关联,所述方法包括以下步骤:
确定编码方式,其中,所述编码方式包括平面编码方式和角度编码方式;
获得当前子节点的编码上下文信息,其中
如果所述编码方式为所述平面编码方式,则编码上下文信息包括平面上下文信息,其中,所述当前子节点的平面上下文信息根据当前父节点的占位模式和紧邻所述当前父节点的至少一个相邻父节点的占位模式来确定;当前父节点的至少一个紧邻节点的占位模式的信息被考虑为用于熵编码的上下文信息;其中,占位模式包括占位子节点在相应父节点内的分布;平面上下文信息包括关于由穿过当前子节点的点云表征的可能平面或表面的信息;
如果所述编码方式为所述角度编码方式,则所述当前子节点的编码上下文信息包括所述当前父节点的平面信息和与所述当前父节点相邻的垂直相邻父节点的占位;以及
基于所述当前子节点的编码上下文信息对所述比特流进行熵解码以重构所述点云。
3.如权利要求1或2所述的方法,其特征在于,如果所述编码方式为所述平面编码方式,则所述编码上下文信息包括平面位置上下文信息,其中,所述平面位置上下文信息包括以下项中的一个或多个:
与所述基于八叉树的结构中的相同深度D处的、相应父节点中的相同坐标上的最近已编码节点之间的距离d;
所述基于八叉树的结构中的相同深度d处的、相应父节点中的相同坐标上的最近已编码节点的平面位置;
根据紧邻所述当前父节点的至少一个相邻父节点的占位模式确定的所述当前子节点的平面位置。
4.如权利要求3所述的方法,其特征在于,如果在所述基于八叉树的结构中的相同深度D处的、相应父节点中的相同坐标上不存在最近已编码节点,则所述平面位置上下文信息仅包括根据紧邻所述当前节点的至少一个相邻父节点的占位模式确定的所述当前子节点的平面位置。
5.如权利要求3所述的方法,其特征在于,如果所述编码方式为所述角度编码方式并且所述当前子节点不适用所述角度编码方式,则所述编码上下文信息包括所述平面位置上下文信息,其中,所述平面位置上下文信息包括以下项中的一个或多个:
与所述基于八叉树的结构中的相同深度D处的、相应父节点中的相同坐标上的最近已编码节点之间的距离d;
所述基于八叉树的结构中的相同深度d处的、相应父节点中的相同坐标上的最近已编码节点的平面位置;
根据紧邻所述当前父节点的至少一个相邻父节点的占位模式确定的所述当前子节点的平面位置。
6.如权利要求1或2所述的方法,其特征在于,为了根据所述至少一个相邻父节点的占位模式确定所述平面上下文信息和所述平面位置上下文信息,所述当前子节点相对于所述当前父节点的当前平面位置被确定,其中,所述当前平面位置包括高平面位置和低平面位置。
7.如权利要求6所述的方法,其特征在于,如果所述当前平面位置为低平面位置,则所述平面上下文信息和所述平面位置上下文信息是根据以下确定的:
所述相邻父节点的紧邻所述当前父节点的第一组四个子节点的占位,以及
所述当前父节点的与所述第一组正相对的第二组四个子节点的占位。
8.如权利要求7所述的方法,其特征在于,
如果所述第一组的至少一个子节点被占位并且所述第二组未被占位,则所述平面上下文信息包括平面的可能性概率参数,并且所述平面位置上下文信息包括低平面位置的可能性概率参数;或者
如果所述第一组未被占位并且所述第二组的至少一个子节点被占位,则所述平面上下文信息包括平面的可能性概率参数,并且所述平面位置上下文信息包括高平面位置的可能性概率参数;或者
如果所述第一组未被占位并且所述第二组未被占位,则所述平面上下文信息包括平面的可能性概率参数,其中,如果所述相邻父节点中不属于所述第一组的至少一个或多个子节点被占位,则所述平面位置上下文信息包括低平面的可能性概率参数;或者
如果所述第一组的至少一个子节点被占位且所述第二组的至少一个子节点被占位,并且#FirstGroup>#SecondGroup+1,则所述平面上下文信息包括平面的可能性概率参数,并且所述平面位置上下文信息包括低平面位置的可能性概率参数;或者
如果所述第一组的至少一个子节点被占位且所述第二组的至少一个子节点被占位,并且#FirstGroup<#SecondGroup+1,则所述平面上下文信息包括平面的可能性概率参数,并且所述平面位置上下文信息包括高平面位置的可能性概率参数;
其中,#FirstGroup指示所述第一组中的占位子节点的数量,#SecondGroup指示所述第二组中的占位子节点的数量。
9.如权利要求6所述的方法,其特征在于,如果所述当前平面位置为高,则所述平面上下文信息和所述平面位置上下文信息是根据以下确定的:
沿着所考虑的轴在所述当前父节点紧后面的所述相邻父节点的占位,以及
所述当前父节点的在垂直于所考虑的轴的平面中并紧邻所述当前子节点的四个子节点的组的占位。
10.如权利要求9所述的方法,其特征在于,
如果组的至少一个子节点被占位并且所述相邻父节点未被占位,则所述平面上下文信息包括平面的可能性概率参数,并且所述平面位置上下文信息包括低平面位置的可能性概率参数;或者
如果所述组未被占位并且所述相邻父节点被占位,则所述平面上下文信息包括平面的可能性概率参数,并且所述平面位置上下文信息包括高平面位置的可能性概率参数;或者
如果所述组未被占位并且所述相邻父节点未被占位,则所述平面上下文信息包括平面的可能性概率参数,其中,如果沿着所考虑的轴在所述当前父节点紧前面的相邻父节点中的至少一个或多个子节点被占位,则所述平面位置上下文信息包括低平面的可能性概率参数;或者
如果所述组的至少一个子节点被占位且所述相邻父节点被占位,并且#Group>2,则所述平面上下文信息包括平面的可能性概率参数,并且所述平面位置上下文信息包括低平面位置的可能性概率参数;或者
如果所述组的至少一个子节点被占位且所述相邻父节点被占位,并且#Group<2,则所述平面上下文信息包括平面的可能性概率参数,并且所述平面位置上下文信息包括高平面位置的可能性概率参数;或者
如果所述组的至少一个子节点被占位且所述相邻父节点被占位,并且#Group=2,则所述平面上下文信息包括不存在平面的可能性概率参数并且所述平面位置被推断为未知;
其中,#Group指示所述组中的占位节点的数量。
11.如权利要求1或2所述的方法,其特征在于,所述相邻父节点是沿着所考虑的轴中的一个几何轴布置的。
12.如权利要求1或2所述的方法,其特征在于,所述上下文信息是沿着所有三个几何轴确定的。
13.一种用于对点云进行编码以生成压缩点云数据的比特流的编码器,其中,所述点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个所述子体与所述基于八叉树的结构的节点相关联,所述编码器包括:
处理器,以及
存储器存储设备,其中,所述存储器存储设备中存储有能够由所述处理器执行的指令,当所述指令被执行时,促使所述处理器执行权利要求1以及从属于权利要求1的权利要求3至12中任一项所述的方法。
14.一种用于对压缩点云数据的比特流进行解码以生成重构点云的解码器,其中,所述点云的几何结构是通过基于八叉树的结构表征的,所述基于八叉树的结构包括通过递归地将包含所述点云的体空间分割成子体而具有父子关系的多个节点,每个所述子体与所述基于八叉树的结构的节点相关联,所述解码器包括:
处理器,以及
存储器存储设备,其中,所述存储器存储设备中存储有能够由所述处理器执行的指令,当所述指令被执行时,促使所述处理器执行权利要求2至12中任一项所述的方法。
15.一种非暂时性计算机可读存储介质,存储有处理器执行的指令,当所述指令由处理器执行时,促使所述处理器执行权利要求1至12中任一项所述的方法。
CN202080003878.4A 2020-06-24 2020-06-24 编码和解码方法、编码器、解码器以及存储介质 Active CN112438049B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210788141.9A CN115529463A (zh) 2020-06-24 2020-06-24 编码和解码方法、编码器、解码器以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/098267 WO2021258373A1 (en) 2020-06-24 2020-06-24 Method of encoding and decoding, encoder, decoder and software

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210788141.9A Division CN115529463A (zh) 2020-06-24 2020-06-24 编码和解码方法、编码器、解码器以及存储介质

Publications (2)

Publication Number Publication Date
CN112438049A CN112438049A (zh) 2021-03-02
CN112438049B true CN112438049B (zh) 2022-07-22

Family

ID=72560450

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210788141.9A Pending CN115529463A (zh) 2020-06-24 2020-06-24 编码和解码方法、编码器、解码器以及存储介质
CN202080003878.4A Active CN112438049B (zh) 2020-06-24 2020-06-24 编码和解码方法、编码器、解码器以及存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210788141.9A Pending CN115529463A (zh) 2020-06-24 2020-06-24 编码和解码方法、编码器、解码器以及存储介质

Country Status (7)

Country Link
US (1) US20230224506A1 (zh)
EP (1) EP3929874A1 (zh)
JP (1) JP2023531706A (zh)
KR (1) KR20230021675A (zh)
CN (2) CN115529463A (zh)
BR (1) BR112022026393A2 (zh)
WO (1) WO2021258373A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019182102A1 (ja) * 2018-03-23 2019-09-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
EP4071716A1 (en) * 2021-04-08 2022-10-12 Beijing Xiaomi Mobile Software Co., Ltd. Method of encoding point cloud geometry data using azimuthal coding mode
CN115249033A (zh) * 2021-04-09 2022-10-28 华为技术有限公司 一种数据处理方法及装置
CN117426086A (zh) * 2021-06-11 2024-01-19 Oppo广东移动通信有限公司 解码方法、编码方法、解码器、编码器以及编解码设备
CN113676738B (zh) * 2021-08-19 2024-03-29 上海交通大学 一种三维点云的几何编解码方法及装置
EP4160925A1 (en) * 2021-09-30 2023-04-05 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
US11910021B2 (en) * 2021-10-04 2024-02-20 Qualcomm Incorporated Planar and direct mode signaling in G-PCC
WO2023133710A1 (zh) * 2022-01-11 2023-07-20 Oppo广东移动通信有限公司 编码方法、解码方法、编码器、解码器和编解码系统
EP4220561A1 (en) * 2022-02-01 2023-08-02 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus of encoding/decoding a slice of point cloud data
WO2024082135A1 (zh) * 2022-10-18 2024-04-25 Oppo广东移动通信有限公司 编解码方法、编解码器、码流以及计算机存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019140510A1 (en) * 2018-01-18 2019-07-25 Blackberry Limited Methods and devices for entropy coding point clouds
WO2019140508A1 (en) * 2018-01-18 2019-07-25 Blackberry Limited Methods and devices using direct coding in point cloud compression
CN110915219A (zh) * 2017-07-13 2020-03-24 交互数字Vc控股公司 用于对几何形状由基于八叉树的结构表示的有色点云的颜色进行编码/解码的方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10674165B2 (en) * 2016-12-21 2020-06-02 Arris Enterprises Llc Constrained position dependent intra prediction combination (PDPC)
EP3816939A4 (en) * 2018-06-15 2021-06-30 Panasonic Intellectual Property Corporation of America THREE-DIMENSIONAL DATA ENCODING PROCESS, THREE-DIMENSIONAL DATA DECODING PROCESS, THREE-DIMENSIONAL DATA ENCODING DEVICE, AND TRIDIMENSIONAL DATA DECODING DEVICE
US10693492B1 (en) * 2019-06-28 2020-06-23 Blackberry Limited Context determination for planar mode in octree-based point cloud coding
EP3800886A1 (en) * 2019-10-01 2021-04-07 BlackBerry Limited Angular mode for tree-based point cloud coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110915219A (zh) * 2017-07-13 2020-03-24 交互数字Vc控股公司 用于对几何形状由基于八叉树的结构表示的有色点云的颜色进行编码/解码的方法和装置
WO2019140510A1 (en) * 2018-01-18 2019-07-25 Blackberry Limited Methods and devices for entropy coding point clouds
WO2019140508A1 (en) * 2018-01-18 2019-07-25 Blackberry Limited Methods and devices using direct coding in point cloud compression

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
[GPCC] [CE 13.22 related] An improvement of the planar coding mode;Sébastien Lasserre等;《INTERNATIONAL ORGANISATION FOR STANDARDISATION ISO/IEC JTC1/SC29/WG11,m50642》;20191031;第1-5章,PPT第7-17页 *
[GPCC] _Planar mode in octree-based geometry coding;Sébastien Lasserre等;《INTERNATIONAL ORGANISATION FOR STANDARDISATION ISO/IEC JTC1/SC29/WG11,m48906》;20190731;PPT第4-23页 *

Also Published As

Publication number Publication date
BR112022026393A2 (pt) 2023-01-17
EP3929874A1 (en) 2021-12-29
JP2023531706A (ja) 2023-07-25
WO2021258373A1 (en) 2021-12-30
US20230224506A1 (en) 2023-07-13
CN115529463A (zh) 2022-12-27
CN112438049A (zh) 2021-03-02
KR20230021675A (ko) 2023-02-14

Similar Documents

Publication Publication Date Title
CN112438049B (zh) 编码和解码方法、编码器、解码器以及存储介质
EP3896657A1 (en) Method and apparatus for processing a point cloud
CN111615792B (zh) 用于对点云进行熵编码的方法和设备
CN114008997B (zh) 基于八叉树的点云编码中的平面模式的上下文确定
JP7461389B2 (ja) オクツリーベースの点群コーディングにおける平面モード
US20200396489A1 (en) Methods and devices using direct coding in point cloud compression
CN112385236B (zh) 点云的编码和解码方法、编码器和解码器、以及存储介质
KR20200141065A (ko) 포인트 클라우드의 이진 엔트로피 코딩을 위한 방법 및 장치
US20230048381A1 (en) Context determination for planar mode in octree-based point cloud coding
CN114586287A (zh) 针对基于树的点云编解码的角度模式句法
WO2022073156A1 (en) Method of encoding and decoding, encoder, decoder and software
CN117581537A (zh) 用于对点云进行编码和解码的方法
WO2023056677A1 (en) Method of encoding and decoding, encoder, decoder and software for encoding and decoding a point cloud
RU2812090C1 (ru) Способ кодирования и декодирования, кодер и декодер
CN118119975A (zh) 编码和解码方法、编码器、解码器及软件,以对点云编码和解码
RU2800579C1 (ru) Способ кодирования и декодирования облака точек
CN116868572A (zh) 用于编码及解码3d点云的方法、编码器及解码器
CN116997931A (zh) 用于编码及解码trisoup顶点位置的方法

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
GR01 Patent grant
GR01 Patent grant