CN114616592A - 用于云压缩的方位角先验和树表示的方法和系统 - Google Patents

用于云压缩的方位角先验和树表示的方法和系统 Download PDF

Info

Publication number
CN114616592A
CN114616592A CN201980101940.0A CN201980101940A CN114616592A CN 114616592 A CN114616592 A CN 114616592A CN 201980101940 A CN201980101940 A CN 201980101940A CN 114616592 A CN114616592 A CN 114616592A
Authority
CN
China
Prior art keywords
azimuth
angle
node
point cloud
prediction
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
CN201980101940.0A
Other languages
English (en)
Inventor
S·拉瑟雷
J·塔凯
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.)
BlackBerry Ltd
Original Assignee
BlackBerry 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 BlackBerry Ltd filed Critical BlackBerry Ltd
Publication of CN114616592A publication Critical patent/CN114616592A/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/40Tree coding, e.g. quadtree, octree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame

Landscapes

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

Abstract

一种对表示对象的三维位置的点云进行编码或解码的方法,该点云位于体积空间内,该方法包括:确定相对于方位距离到当前节点的至少一个最接近的编解码的节点;确定针对该至少一个最接近的编解码的节点中的每个最接近的编解码的节点的方位预测角;根据针对该至少一个最接近的编解码的节点中的每个最接近的所确定的编解码的节点的方位预测角来找到平均方位预测角;基于平均方位预测角来选择角方位上下文;基于该方位上下文来编码表示当前节点的信息以生成压缩点云数据的比特流或基于该方位上下文来解码表示当前节点的信息以生成点云数据。

Description

用于云压缩的方位角先验和树表示的方法和系统
技术领域
本公开一般涉及点云压缩,并且具体地涉及用于点云和点坐标数据的基于树的编解码中的占用数据的改进的压缩的方法和设备。
背景技术
数据压缩在通信和计算机网络中被用于高效地存储、传输和再现信息。人们对三维对象或空间的表示越来越感兴趣,其可以涉及大型数据集并且高效且有效的压缩对于其将是非常有用并且有价值的。在一些情况下,三维对象或空间可以使用点云来表示,点云是点集,其中每个点具有三维坐标位置(X,Y,Z)并且在一些情况下具有像颜色数据(例如亮度和色度)、透明度、反射率、法向量等的其他属性。点云可以是静态的(固定对象或在单个时间点的环境/对象的快照)或动态的(点云的时间排序序列)。
点云的示例应用包括地形和地图绘制应用。自动驾驶车辆和其他机器视觉应用可以依赖于以(诸如来自LiDAR扫描器的)环境的3D扫描的形式的点云传感器数据。虚拟现实仿真可以依赖于点云。
将认识到,点云可以涉及大量数据并且对快速地且准确地压缩(编码和解码)该数据是非常感兴趣的。因此,提供更高效地和/或有效地压缩点云的数据的方法和设备将是有利的。这样的方法可以通过改进的压缩得到对存储要求(存储器)的节省或者对用于压缩数据的传输的带宽的节省,由此得到(诸如用于自动驾驶应用的)3D视觉系统的改进的操作,或例如虚拟现实系统的改进的操作和渲染速度。
附图说明
现在将通过示例的方式对附图进行参考,附图示出了本申请的示例实施例,并且在附图中:
图1示出了示例点云编码器的简化框图;
图2示出了示例点云解码器的简化框图;
图3和图4图示了其被占据的孩子子体积中呈现平面性的体积的示例;
图5以流程图形式示出了使用平面编解码模式(mode)来对点云数据进行编码的一个示例方法;
图6示出了用于获取点云的光束组件的示例的简化图示;
图7示出了光束组件中的单个光束发射器的示例的简化图示;
图8示出了包括在(r,θ)平面中表达的示例点云的点的图解;
图9示出了相对于点云的点的坐标轴的示例指派;
图10示出了相对于光束组件的参考位置的光束组件的光束发射器的布置的示例;
图11示出了图8中的图的细节;
图12示出了在角θ的校正已经基于光束组件的特性而被执行之后包括在(r,θ)平面中表达的示例点云的点的图;
图13示出了相对于由光束组件发射的光束之间的角度差的点云数据的体积的角大小的示例;
图14示出了相对于光束发射器的点云数据的体积的子体积的组的角的示例;
图15示出了示例预测点树;
图16示出了球坐标、方位角
Figure BDA0003624590660000021
和仰角θ的图示;
图17示出了由旋转LiDAR头对点的感测;
图18示出了旋转LiDAR头的典型扫描顺序;
图19示出了LiDAR头的示例扫描,其中一些点未被登记,并且方位角先验基本上是
Figure BDA0003624590660000022
的倍数;
图20示出了用于使用方位预测角来解码表示当前节点占用的信息的过程图;
图21示出了平均预测角
Figure BDA0003624590660000023
的构建;
图22示出了用于建立节点用于方位编解码的资格的图示;
图23示出了平面定位的示例预测;
图24示出了通过预测角鉴别的当前节点接近x轴;
图25示出了通过预测角鉴别的当前节点接近y轴;
图26示出了x平面节点的虚拟平面的右方位角和左方位角;
图27示出了用于使用方位先验来预测平面模式中的平面的定位的过程图;
图28示出了用于对IDCM模式中使用方位编解码模式的过程图;
图29示出了从沿着x方向的节点大小获得的初始x区间;
图30示出了在对点的坐标x的比特进行解码或编码之后先前x区间的演变;
图31示出了用于对预测点树种使用方位编解码模式的过程图;
图32示出了编码器的示例简化框图;以及
图33示出了解码器的示例简化框图。
相似的附图标记可以已经在不同附图中用于表示相似的部件。
具体实施方式
本申请描述了对点云进行编码和解码的方法,以及用于对点云进行编码和解码的编码器和解码器。
在一个方面中,本公开描述了一种对点云进行编码以生成表示对象的三维位置的压缩点云数据的比特流的方法,点云位于体积空间内并且由树表示,该方法包括:确定相对于方位距离到树的当前节点的至少一个最接近的编解码的节点(coded node);确定针对至少一个最接近的编解码的节点中的每个最接近的编解码的节点的方位预测角;根据针对至少一个最接近的编解码的节点中的每个最接近的所确定的编解码的节点的方位预测角来找到平均方位预测角;基于平均方位预测角来选择角方位上下文;以及基于方位上下文来编码表示当前节点的信息以生成压缩点云数据的比特流。
在一个方面中,本公开还描述了一种对表示对象的三维位置的压缩点云数据的比特流进行解码以生成点云数据的方法,该点云位于体积空间内并且由树表示,该方法包括:确定相对于方位距离到树的当前节点的至少一个最接近的编解码的节点;确定针对至少一个最接近的编解码的节点中的每个最接近的编解码的节点的方位预测角;根据针对至少一个最接近的编解码的节点中的每个最接近的所确定的编解码的节点的方位预测角来找到平均方位预测角;基于平均方位预测角来选择角方位上下文;以及基于方位上下文来解码表示当前节点的信息以生成点云数据。
在另一方面中,本公开描述了预测角基于以下来确定:已经编码的节点方位角除以误差的总和全部除以针对已经编码的节点的误差的倒数的总和。
在另一方面中,本公开描述了确定至少一个最接近的编解码的节点不包括大小大于当前节点的节点并且/或者不包括与当前节点相距大于阈值方位距离的节点。
在另一方面中,本公开描述了编码或解码使用平面模式,并且其中该方法还包括确定针对当前节点的左方位角和右方位角,其中选择角还包括:基于方位预测角减去左方位角是否与方位预测角减去右方位角具有相同的符号来指派第一比特;基于方位预测角减去左方位角和方位预测角减去右方位角中的哪项具有最大绝对幅值来指派第二比特;以及基于方位预测角减去左方位角与方位预测角减去右方位角之间的幅值差乘以到当前节点的半径的倒数来提供量子化上下文指数。
在另一方面中,本公开描述了该方法还包括基于当前节点相对于x轴或y轴的位置来选择用于方位预测的x平面定位和/或y平面定位。
在另一方面中,本公开描述了编码或解码处于推断直接编解码模式(“IDCM”),并且其中该方法还包括:初始化坐标区间;通过以下操作来递归地拆分区间:确定针对当前节点的左方位角和右方位角;通过进一步使用左方位角和右方位角以及平均方位预测角来选择角方位上下文;在编码或解码之后更新坐标区间。
在另一方面中,本公开描述了确定左方位角和右方位角基于位于区间的1/4和3/4处的两个点。
在另一方面中,本公开描述了确定左方位角和右方位角使用来自左方位角和右方位角和/或方位预测角的先前值的一阶近似。
在另一方面中,本公开描述了编码或解码使用预测点树,并且其中该方法还包括:在确定方位预测角之前确定与当前节点相关联的点的预测;根据该预测和残差的大小来初始化针对坐标的坐标区间;针对残差中的每个比特:确定针对当前的左方位角和右方位角;通过进一步一起使用左方位角和右方位角与平均方位预测角来选择角方位上下文;执行对针对坐标的最高阶剩余位的编码或解码;以及在编码或解码之后更新坐标区间。
在另一方面中,本公开还描述了在更新坐标区间之后更新方位预测角。
在又一方面中,本申请描述了被配置为实现这样的编码和解码的方法的编码器和解码器。
在再一方面中,本申请描述了一种非瞬态计算机可读介质,其存储计算机可执行程序指令,该计算机可执行程序指令当被执行时使一个或多个处理器执行所描述的编码和/或解码的方法。
在又一方面中,本申请描述了一种计算机可读信号,其包含程序指令,该程序指令当由计算机执行时使该计算机执行所描述的编码和/或解码的方法。
关于本发明的一个方面或实施例描述的任何特征还可以关于一个或多个其他方面/实施例被使用。本发明的这些和其他方面将从本文描述的实施例变得明显并参考本文描述的实施例得到阐述。
有时在下面的描述中,术语“节点”、“体积”和“子体积”可以可互换地使用。将认识到,节点与体积或子体积相关联。该节点是树上的特定点,其可以是内部节点或叶子节点。体积或子体积是节点表示的有界物理空间。术语“体积”可以在一些情况下用于指代用于被定义用于包含点云的最大有界空间。体积可以被递归地划分成子体积以用于构建用于编解码点云数据的相互连接的节点的树结构。将体积分割成子体积的树状结构可以被称为“双亲”和“孩子”关系,其中子体积是双亲节点或双亲体积的孩子节点或孩子子体积。相同体积内的子体积可以被称为兄弟节点或兄弟子体积。
在本申请中,术语“和/或”旨在涵盖所列出的元件的所有可能组合和子组合,包括仅所列出的元件中的任何一个、元件的任何子组合、或全部,并且不一定不包括附加元件。
在本申请中,短语“...或...中的至少一个”旨在涵盖所列出的元件中的任何一个或多个,包括仅所列出的元件中的任何一个、元件的任何子组合、或全部,并且不一定不包括任何附加元件,并且不一定要求元件中的全部。
点云是三维坐标系中的点集。点通常旨在表示一个或多个对象的外表面。每个点具有三维坐标系中的一个位置(定位)。该定位可以由三个坐标(X,Y,Z)表示,其可以是笛卡尔或任何其他坐标系。点可以具有其他相关联的属性,诸如颜色,其在一些情况下也可以是三分量值,诸如R、G、B或Y、Cb、Cr。其他相关联的属性可以包括透明度、反射率、法向量等,这取决于点云数据的期望应用。
点云可以是静态的或动态的。例如,对象或地形的详细扫描或地图绘制可以是静态点云数据。用于机器视觉目的的环境的基于LiDAR的扫描可以是动态的,因为点云(至少潜在地)随时间变化,例如随着体积的每次连续扫描。动态点云因此是点云的时间排序序列。
点云数据可以被使用在许多应用中,举一些例子,应用包括保护(历史或文化物件的扫描)、地图绘制、机器视觉(诸如自动驾驶或半自动驾驶汽车)以及虚拟现实系统。针对像机器视觉的应用的动态点云数据可以与像用于保护目的那样的静态点云数据大不相同。自动驾驶视觉例如通常涉及通过具有高捕获频率的LiDAR(或类似)传感器获得的相对较小分辨率的、无颜色的、高度动态的点云。这样的点云的目标不是用于人类消费或查看,而是用于决策过程中的机器对象检测/分类。作为示例,典型的LiDAR帧包含大约成千上万个点,然而高质量虚拟现实应用要求几百万个点。可以预料到,随着时间当计算速度提高并且发现新应用时,将存在对更高分辨率数据的需求。
尽管点云数据是有用的,但是有效且高效的压缩(即编码和解码过程)的缺乏可以妨碍利用和部署。在对点云进行编解码中的特别挑战是点云的几何结构的编解码,其在像音频或视频的其他数据压缩的情况下不会出现。点云倾向于被稀疏地填充,其使高效地对点的位置进行编解码变得更加具有挑战性。
基于树的结构
用于对点云数据进行编码的更多常见机制中的一种是通过使用基于树的结构。在基于树的结构中,针对点云的边界三维体积被递归地划分成子体积。树的节点对应于子体积。是否进一步划分子体积的决策可以基于树的分辨率和/或是否存在包含于子体积中的任何点。节点可以具有指示其相关联的子体积是否包含一个点的占用标志。拆分标志可以示意节点是否具有孩子节点(即当前体积是否已经被进一步拆分成子体积)。这些标志可以在一些情况下被熵编码,并且在一些情况下,预测性编码可以被使用。
点云的三维体积还可以通过使用边界框来定义。针对边界框的四叉树加二叉树(QTBT)结构允许以非立方体积分割点云,该非立方体积可以更好地表示点云的总体形状或点云内的对象。四叉树(QT)分割将体积拆分成四个子体积,例如通过使用将体积切割成四个部分的两个平面来拆分体积。二叉树(BT)分割将体积拆分成两个子体积,例如通过使用将体积切割成两个部分的一个平面来拆分体积。
一种常用的树结构是八叉树。在该结构中,体积/子体积全部是立方体(或更一般地,长方体)并且子体积的每次拆分得到八个进一步的子体积/子立方体。另一常用的树结构是KD树,其中体积(立方体或矩形长方体)由正交于轴中的一个轴的平面递归地划分成两半。八叉树是KD树的特殊情况,其中体积由三个平面划分,每个平面正交于三个轴中的一个轴。KD树可以通常通过递归地应用二叉树(BT)分割来获得。
体积不一定分割成两个子体积(KD树)或八个子体积(八叉树),而是可以涉及其他分割,包括划分成非长方体形状或涉及非相邻子体积。
为了便于解释,本申请可以引用八叉树,并且因为它们是用于自动驾驶应用的流行候选树结构,但是将理解,本文描述的方法和设备可以使用其他树结构来实现。
现在参考图1,其示出了根据本申请的方面的点云编码器10的简化框图。点云编码器10包括树构建模块12,该树构建模块12用于接收点云数据并产生的树(在该示例中,八叉树),该树表示包含点云的体积空间的几何结构并在该几何结构中指示来自点云的点的位置或定位。
在均匀分割的树结构(如八叉树)的情况下,每个节点可以由占用比特的序列表示,其中每个占用比特对应于节点中的子体积中的一个子体积并示意该子体积是否包含至少一个点。被占用的子体积递归地被拆分,直到树的最大深度。这可以被命名为树的序列化或二值化。如图1中所示出的,在该示例中,点云编码器10包括二值化器14,二值化器14用于将八叉树二值化以产生表示树的二值化数据。
该比特序列可以然后使用熵编码器16来编码以产生压缩比特流。熵编码器16可以使用上下文模型18来编码比特序列,上下文模型18基于熵编码器16的上下文确定来指定用于对比特进行编码的概率。上下文模型18可以在对每个比特或比特的已定义集合的编码之后自适应地被更新。熵编码器16可以在一些情况下是二进制算术编码器。二进制算术编码器可以在一些实现中采用上下文自适应二进制算术编解码(CAB AC)。在一些实现中,除了算术编解码器以外的编解码器可以被使用。
在一些情况下,熵编码器16可以不是二进制编解码器,而是可以在非二进制数据上操作。来自树构建模块12的输出八叉树数据可以不以二进制形式被评估,而是可以被编码为非二进制数据。例如,在八叉树的情况下,子体积内的按它们的扫描顺序的八个标志(例如占用标志)可以被认为是28-1比特数(例如,具有1到255之间的值的整数,因为值0对于拆分的子体积来说是不可能的,即,在它完全未被占用的情况下其会未被拆分)。在一些实现中,该数可以由熵编码器使用多符号算术编解码器来编码。在子体积(例如立方体)内,定义该整数的标志的序列可以被命名为“样式(pattern)”。
通常在点云压缩中使用的惯例在于“1”的占用比特值示意相关联的节点或体积“被占用”,即,它包含至少一个点,并且“0”的占用比特值示意相关联的节点或体积“未被占用”,即,它没有包含点。更一般地,占用位可以具有指示被占用的值或指示未被占用的值。在下面的描述中,为了便于解释,可以描述示例实施例,其中1=被占用和0=未被占用的惯例被使用;然而,将理解,本申请不限于该惯例。
在图2中示出了对应于编码器10的示例点云解码器50的框图。点云解码器50包括熵解码器52,熵解码器52使用由编码器10使用的相同上下文模型54。熵解码器52接收压缩数据的输入比特流并且对数据进行熵解码以产生解压缩的比特的输出序列。该序列然后由树重构器56转换成重构的点云数据。树重构器56根据解压缩的数据和树数据被二值化的扫描顺序的知识来重建树结构。树重构器56因此能够重构来自点云的点的位置(受制于树编解码的分辨率)。
在欧洲专利申请18305037.6号中,本申请人描述了用于基于来自特定节点附近的先前编解码的节点的一些占用信息在可用样式分布之中进行选择以使用在编解码特定节点的占用样式中的方法和设备。在一个示例实现中,占用信息从特定节点的双亲的占用的样式被获得。在另一示例实现中,占用信息从与特定节点相邻的一个或多个节点获得。欧洲专利申请18305037.6号的内容通过引用并入本文中。这被称为确定“邻居配置”并至少部分地基于该邻居配置来选择上下文(即样式分布)。
在欧洲专利申请18305415.4号中,本申请人描述了用于二进制熵编解码占用样式的方法和设备。欧洲专利申请18305415.4号的内容通过引用并入本文中。
推断的直接编解码模式(IDCM)
关于用树结构压缩点云数据的问题之一是它不一定能很好地处理孤立点。子体积的递归拆分和所拆分的子体积内的点的位置涉及计算负担和时间,并且为了找准一个或几个孤立点的位置的子体积的递归拆分的信号示意(signaling)在带宽/存储器存储以及计算时间和资源方面可以是高代价的。另外,孤立点“污染”样式的分布,从而引发具有仅一个被占用孩子的许多样式,因此改变分布的平衡并惩罚其他样式的编解码。
因此,已经提出了针对孤立点的定位信息的直接编解码。点的位置(例如体积或子体积内的坐标)的直接编解码可以被命名为直接编解码模式(DCM)。因为对所有点使用DCM将是非常低效的,所以一个选项是针对每个被占用的节点,使用专用标志来示意DCM是否将被用于该节点内的任何点;然而,该选项可以导致示意的过多开销成本,由此产生更糟的压缩性能。
另一选项是基于来自其他节点的占用信息来确定针对被占用的节点使用DCM的资格。如果被占用的节点有资格使用DCM,那么标志被插入比特流中以示意DCM是否被应用。该方法可以被命名为推断的直接编解码模式(IDCM)。
针对其体积由相邻长方体组成的树的IDCM的资格条件可以是:A)六个相邻长方体(向上、向下、向前、向后、向左、向右)都未被占用;或者在相邻长方体的占用未知的情况下,B)双亲样式中的被占用的节点的数目等于一,即,当前节点在双亲层级上是孤立的。在一些情况下,将条件A)和B)中的任一个条件与如下条件C)一起应用可以是有益的:祖父样式中的被占用的节点的数目等于一,即,当前节点在祖父层级上也是孤立的。此外,针对被占用双亲或祖父节点的数目的阈值可以不同于一。
如果节点对于DCM有资格,那么标志被编码以示意DCM是否被应用。该标志可以由编码器基于属于被附接到该节点的体积的点的数目来确定。如果该数目小于或等于阈值,那么DCM被激活,否则其不被激活。
因此,根据本申请的另一方面,针对被占用的节点使用DCM的资格根据来自其他节点的占用信息来确定。如果被占用的节点有资格使用DCM,那么标志被插入比特流中以示意DCM是否被应用。
当DCM被应用时,点的编解码可以通过使用截断的一元二值化器跟着二进制熵编解码器对点的数目进行编码来执行,但是其他二值化可以取决于针对资格所选择的阈值、并且通过相对于与节点相关联的体积对每个点的X、Y和Z坐标独立地进行编解码而被使用。例如,如果体积是具有边长为2D的立方体,那么针对每个点的每个坐标将需要D比特。
阈值的值应当由解码器隐含地已知或已知为编解码参数。
平面模式
某些类型的点云数据倾向于具有强方向性。非自然环境尤其呈现强方向性,因为那些环境倾向于以均匀表面为特征。例如,在LiDAR的情况下,道路和相邻建筑物的墙壁一般是水平或竖直平面。在房间内的内部扫描的情况下,地板、天花板和墙壁全部是平面。用于自动驾驶视觉和类似应用的目的的LiDAR倾向于具有较低分辨率并且还需要被快速地且高效地压缩。
八叉树是高效树结构,因为它们基于在每种情况下使用三个正交平面将立方体均分成八个子立方体的均匀分割过程,因此用信号示意它们的结构是高效的。然而,使用当前信号示意过程的八叉树不能利用可从识别一些非自然环境的平面性质获取的效率。然而,KD树能够使分割更好地适应点云的方向性。这使它们成为用于这些类型的环境的更高效且有效的结构。KD树的不足之处在于它们的结构的信号示意需要比八叉树明显更多的数据。KD树是非均匀的事实意味着用于改进八叉树压缩的技术中的一些技术对KD树不可用或在计算上将难以实现。
因此,在一些情况下,具有以通过利用水平和/或竖直方向性来改进压缩的方式使用基于均匀分割的树结构来表示非自然环境的机制是有利的。
在一些情况下,点云压缩可以通过平面编解码模式来改进。平面模式用于指示体积在其占用方面满足针对平面性的某些要求。具体地,体积在所有其被占用的子体积被定位于或位于共同平面中的情况下是平面的。用于信号示意的语法可以指示体积是否是平面的,并且如果是,指示共同平面的位置。通过利用平面性的这种知识,可以实现压缩增益。应用启用平面模式的资格的准则和用于平面模式信号示意的上下文自适应编解码的机制帮助改进压缩性能。
平面性一般被假设为是相对于与体积和子体积的结构对齐的笛卡尔轴的。即,如果体积的所有被占用的子体积被定位于正交于轴中的一个轴的共同平面中,则体积是平面的。作为惯例,z轴是竖直的,意味着(水平)平面正交于z轴。
针对有资格的节点,在本文被称为“isPlanar”的标志可以被添加以示意该节点是否是平面的。标志可以使用预测技术被熵编解码。鉴于推广到x平面和y平面模式,语法可以由3个标志组成,在本文被称为:isZPlanar、isXPlanar和isYPlanar。
在一些实施例中,节点在所有其被占用的孩子节点属于相同水平平面的情况下被称为是平面的。在八叉树的情况下,这样的平面由四个孩子节点组成,其中的一个必须被占用。如图3和图4中所示出的,水平平面可以位于当前节点的底部,对应于标志“planePosition”的第一值,例如0,如由框300所示出的,或者位于当前节点的顶部,对应于标志“planePosition”的第二值,例如1,如由框400所示出的。
因此,如果当前节点是平面的,那么额外的比特planePosition被添加到语法以指示平面定位。该比特也被熵编解码。
当前节点的平面状态的知识帮助编解码占用样式。例如,如果节点是z平面的,那么与属于空水平平面的孩子节点相关联的四个占用比特不需要被编解码。类似地,如果当前节点不是平面的,则可以假设每个水平平面存在至少一个被占用的孩子节点,并且该知识可以用于更好地压缩比特流。
针对其中planePosition是底部的情况的各种占用示例在图3中被示出为框302、304、306和308。类似地,针对其中planePosition是顶部的情况的各种占用示例在图4中被示出为框402、404、406和408。
参考图5示出了用于以平面模式对节点进行编码的方法。图5的方法反映用于对针对体积的占用信息进行编码的过程。在该示例中,根据基于八叉树的编解码,体积被均匀地分割成八个子体积,每个子体积具有占用比特。为简单起见,本示例假设仅一个(例如水平)平面模式被使用。
在框502处,编码器评估体积是否有资格进行平面编码模式。在一个示例中,资格可以基于云密度,其可以使用被占用的孩子节点的平均数来评估。为了改进局部适应,资格可以基于概率因素跟踪。如果平面编码模式没有资格,那么针对体积的占用样式在不使用平面编码模式的情况下被编码,如由框504所指示的。
如果平面模式被启用,那么在框506中,编码器评估体积是否是平面的。如果不是,那么在框508中,该过程编码平面模式标志,例如isPlanar=0。在框510中,编码器然后使用每个平面存在至少一个被占用的子体积的事实来编码占用样式。即,占用样式被编码并且如果针对任一平面(上或下)编码的前三个比特是零,那么针对该平面的最后一个(第四个)比特不被编码并且被推断为一,因为对应的子体积必须被占用。
如果平面模式被启用并且体积是平面的,那么在框512中,平面模式标志被编码,例如isPlanar=1。因为体积是平面的,所以编码器然后还编码平面定位标志,planePosition。平面定位标志示意平面的被占用的子体积是在体积的上半部还是下半部中。例如,planePosition=0可以对应于下半部(即z轴定位下方)并且planePosition=1可以对应于上半部。平面定位标志然后在框514处被编码。占用位然后在框516处基于体积的平面性和被占用的子体积的定位的知识而被编码。即,上至四个比特被编码,因为四个可以被推断为零,并且第四比特可以在前三个被编码的比特是零的情况下被推断为一。
LiDAR获取的点云
通常,LiDAR获取的点云由一组旋转激光器来获取。参考图6示出了示例性LiDAR设备。
如图6中看到的,LiDAR设备601包括安装在旋转头上的竖直布置的激光器阵列604,使得每个激光器绕头轴602旋转。每个激光器发射激光光束606。
现在参考图7,其图示了绕头轴702旋转并具有相对于平面708的角θ的单个激光器704。平面708垂直于头轴702。自然地,由于噪声和测量精度,由激光器获取的点将具有将非常接近θ的获取角。
图8在图上图示了LiDAR获取的点云的点,其中竖直轴表示tan(θ)或z/r,并且水平轴表示r。通过定义并且如图9中所示出的,r是点距Lidar的头(或一般地,光束组件)的水平距离,并且竖直角的正切tan(θ)被定义为比率z/r,其中z是点905相对于LiDAR的头的竖直高度。
一定程度地固定的激光器角tan(θ)可以清楚地在图中观察到。正角意味着激光器指向水平平面上方(即,朝向天空),而负角意味着激光器指向水平平面下方(即,指向地面)。注意,LiDAR的激光器特意被取向在不同角度,例如,使得不同激光器拾取相同的高对象(如建筑物、柱子、树等)的不同部分。
如可以从图8中看到的,点云的点可以被表示在“准”2D空间中。例如,表示理论上在2D空间(x,y)和与激光光束对应的竖直角θ的有限集合中是可能的。或者等价地在2D极坐标空间
Figure BDA0003624590660000141
和竖直角θ的有限集合中,其中
Figure BDA0003624590660000143
是方位角。换言之,可以用球坐标
Figure BDA0003624590660000142
来表示这些点,其中θ可以仅取有限数目的值。这是遮挡的结果,其可以导致每个
Figure BDA0003624590660000144
仅至多一个点。该准2D空间是理论的,但是实际上,测量噪声/精度和时间积分不会得到严格的可能θ的有限集合,其是激光器的机械安装的结果。相反,观察到θ的值分散在有限数目的值θ激光附近并且必须处理这些值附近的“噪声”的问题。
前述准2D结构主要取决于一个或多个LiDAR(或一般地,光束组件)的定位/取向和(多个)LiDAR的内在特性。如下面将更详细地描述的,可以因此有利的是,将语法元素(例如,参数、标志)包括到描述(多个)LiDAR(或一般地,光束组件/多个光束组件)的特性的比特流中。这些语法元素可以指示以下至少一项:光束组件的参考位置、特定光束的原点位置、或特定光束的光束角。将这些语法元素包括到比特流中可以在帧或序列级别完成。在任何情况下,该数据应当被呈现为尽可能接近压缩的数据比特流以确保比特流的可解码性并使丢失可解码性所需要的数据的风险最小化。
注意到上文,本申请的一些实施例想要在点云的高效表示中使用从LiDAR特性(或相关光束组件的特性)获得的竖直激光器角θlaser的知识使得压缩得到改进。
经校正的仰角
使(xLidar,yLidar,zLidar)为沿着点云的点所属的三维空间XYZ(体积空间)中的z轴竖直地取向的LiDAR的头(或一般地,光束组件)的位置。点(x,y,z)的竖直角θ的正切tan(θ)是高度z-zLidar与点相对于头的距离r的比率。这例如被示出在式1中。
Figure BDA0003624590660000151
如可以从图11的图中看到的,其示出了与图8有关的详细视图,针对由相同光束探查的点,角tan(θ)一定程度地恒定,但不是严格恒定的。实际上,针对每个光束,在(r,tan(θ))图中存在包含由该光束获取的点的相应包络线。该包络线(在tan(θ)方向上)的宽度清楚地取决于距离r。该包络线的宽度是由于噪声和获取精度,并且随着r变小而变宽。注意,针对相邻光束的包络线不与彼此相交。
呈现通过r的宽范围的更稳定值的经校正的角θcorr可以通过将校正项添加到每个激光器相对于头定位的定位来获得。
图10示意性地图示了光束发射器1004相对于光束组件的参考位置的位置,用于解释校正角θ以获得经校正的角θcorr的示例方法。具体地,光束发射器1004的定位通过由相对于光束组件的参考定位的坐标(rL,zL)定义的移位1012校正,使得光束1006从竖直位置zLidar+zL发射并且点到光束发射器1004的距离被校准为变成r-rL,其中L是光束发射器指数。因此,光束发射器1004的经校正的位置可以被称为针对光束1006的原点位置或光束原点位置。经校正的角θcorr取决于光束发射器指数L并且由下面的式2提供。
Figure BDA0003624590660000161
针对不太接近光束组件的点,即,针对距离r的不太小的值,该角可以如式3中所示出的被近似。
Figure BDA0003624590660000162
仅需要竖直校正zL,而径向校正rL可以被忽略。因此,光束原点定位可以,从光束组件的参考位置开始,基于可以以(rt,zL)或仅以zL表达的相对位移来确定。
图12示出了对角θ的竖直校正zL的效果。面板(a)对应于图11中的面板(b),并且面板(b)对应于图11中的面板(c)。面板(a)中的上包络线和面板(b)中的下包络线与未经校正的(即,初始)角θ相关。面板(a)中的下包络线和面板(b)中的上包络线与经校正的角θcorr相关。如可以清楚地看到的,经校正的角呈现基本上不依赖于距离r的平均恒定特性。相应光束或光束发射器L的角θL被定义为该常数。
为了实现在编码器侧和解码器侧两者处对角θ的校正,以下值可以由编码器确定或被提供给编码器,并被编码成比特流使得解码过程可以使用与编码过程相同的光束组件信息:
1.光束组件的参考位置,诸如LiDAR的头定位(xLidar,yLidar,zLidar)
2.针对每个光束发射器的相对定位(rL,zL)
3.针对每个光束发射器的恒定角θL
描述已经被用于获取要被编解码的点云的光束组件或多个光束组件的特性的语法元素的示例将在下面更详细地描述。
作为示例,光束组件的参考位置可以由用户提供,并且光束组件的光束发射器的相对定位和经校正的角可以以算法方式被找到。在一个示例中,这可以被执行如下:
1.首先,通过分析未经校正的角θ的直方图,属于相同激光光束L的点被提取。
2.然后,激光光束L的相对定位(rL zL)通过使经校正的角θcorr,L在所提取的点上的标准差最小化来确定。这可以通过例如经典最小化算法来执行。在仅考虑竖直移位zL的情况下,这是对候选竖直相对定位的区间的最小化。
3.最后,激光器L的恒定角θL是经校正的角θcorr,L在所提取的点上的均值。
如将认识到的,如果节点与可以由多于一个激光光束相交的体积对应,那么哪个激光光束用于获取该节点内的点变得不清楚。这引入了用于角编解码的节点的资格的概念。
在一个示例中,体积(或其相关联的节点)的角度资格(angular eligibility)被确定如下:
1.计算节点的中心距光束组件的参考位置的距离r。
2.计算Δθ=E/r,其中E是与节点相关联的立方体的边的长度(或任何形状的体积的竖直大小)。
3.如果KΔθ≤Δθmin=min|tan(θLi)-tan(θLi+1)|,那么节点有资格,其中最小值(min)是针对所有相邻光束对采取得。这确保节点的角度大小小于角度上最接近的两个光束之间的角度差。因子K用于提供安全边际。在至少一些实施例中,K的值为2。
图13示出了有角度资格的体积和没有角度资格的体积的示例。即,体积1325的大小和它距光束组件1301的距离使得它由来自多个光束发射器1304的多个光束1306采样。另一方面,体积1320的大小和它距光束组件的距离使得它至多由单个样本1306采样。
一般,确定体积(或其相关联的节点)的角度资格可以通过首先确定如从光束组件的参考位置看到的体积的角度大小的度量来进行。参考位置可以是头的位置,如以上所指出的。角度大小的度量可以与从参考位置看到体积的边的角相关,并且可以例如基于体积的边的长度和体积(的参考位置)到光束组件的参考位置的距离来确定。因此,角度大小的度量可以例如是以上定义的角度大小Δθ。然后,角度大小的度量与光束组件的相邻光束之间的差角的度量(诸如以上定义的差角Δθmm)相比较。即,差角可以是光束组件的最接近的相邻光束的差角。最后,基于比较的结果来确定体积是否是有角度资格的。例如,确定角度资格可以基于角度大小是否小于差角的一半(或差角的任何其他适当的分数,以提供适当的安全边际)。
一旦已经确定了角度资格,有角度资格的体积所属的光束L可以例如通过以下方法来确定:
1.根据体积的参考位置(例如,体积的中心)的定位(x,y,z)来确定相对于光束组件的定位(xLidar,yLidar,zLidar)的z和r
2.计算未经校正的角tan(θ)=z/r
Figure BDA0003624590660000181
3.通过找到针对其|tan(θ)-tan(θL)|最小的光束指数L来确定体积属于哪个光束L
一旦已经确定了光束L,经校正的角可以通过式4的公式来计算:
Figure BDA0003624590660000182
或通过式5的公式来计算:
Figure BDA0003624590660000183
第二个等式可以是在实际上有用的,因为它避免了计算另一个平方根的倒数。
一般,之后可以跟着以下方法用于确定针对与节点相关联的体积的经校正的角θcorr。最初,针对体积内的参考位置,相对于光束组件的参考位置的第一角(例如,仰角)被确定。例如,体积内的参考位置可以是体积的中心。例如,光束组件的参考位置可以是光束组件的中心位置。基于第一仰角,被假设为已经获取了(或已经实际上获取了)体积内的点的特定光束(或对应的光束发射器)L被确定。接下来,针对该特定光束的原点位置(或光束原点位置)被确定或被获取。这可以通过以上描述的任何适当的方法来完成。有了特定光束的原点位置,针对子体积或子体积的组(例如,体积内的平面)的经校正的仰角可以相对于针对特定光束的原点位置被确定。
角编码模式
角编码模式已经被引入以从LiDAR获取的点的特性得益处并获取压缩的增益。其可以用于通过使用针对有角度资格的节点的tan(θcorr,L)的知识来增强或替换以上讨论的planeZPosition的预测性信息。
具体地,角编码模式使用角度信息来选择上下文以用于改进的压缩。参考图14图示了一种角编码方法。
如图14中看到的,有资格的节点1420被划分在顶部水平平面1430和底部水平平面1440中,顶部水平平面1430和底部水平平面1440分别包括顶部四个孩子节点的体积和底部四个孩子节点的体积。在顶部水平平面1430和底部水平平面1440中的每个平面的中间是虚拟平面1432和1442。顶部虚拟平面和底部虚拟平面不占用孩子节点的完整体积,而替代地仅仅是被定位在孩子节点的中间的二维表面。
角θ顶部,L和θ底部,L分别被定义为从由激光器1404发射到顶部虚拟平面和底部虚拟平面的中心的光束1406相对于水平平面1408的经校正的角。角θL是针对被假设为已经获取了(或已经实际上获取了)有资格的节点内的点的激光器L的经校正的角。经校正的角被理解为相对于经过光束发生器的可能通过zL和或rL从光束组件的参考位置被校正的位置的水平平面1408的角。在一些实施例中,未经校正的角可以被使用,然而这可以导致最糟的压缩结果。未经校正的角被理解为相对于经过光束组件的参考位置的水平平面1408的角。上下文可以然后根据这些角来确定,如下面所描述的。
上下文基于以下条件来确定:
1.Δ顶部=tan(θL)-tan(θtop,L)与Δ底部=tan(θL)-tan(θ底部,L)是否具有相同符号?
2.|Δ顶部|和|Δ底部|中的哪个更大?
3.D=||Δ顶部|-|Δ底部||/r的值在什么范围内?其中r是在水平平面中的激光器与有资格的节点之间的距离。根据至少一个实施例,四个不同的范围可以用于选择上下文,例如,小于0.5的值、在0.5到1之间的值、在1到1.5之间的值,或大于1.5的值。
从上文可知,条件1允许两种可能性,条件2允许两种可能性,并且条件3允许四种可能性。因此,角上下文可以取2×2×4=16个可能值中的一个可能值。
如以上所描述的确定的角上下文可以被独立地使用或与平面上下文组合地使用以选择针对熵编码器(或解码器)的上下文。
预测点树
在图15中图示了预测点树。树的每个节点由圆圈图示,例如节点1510、1512和1514,并且与点云的点相关联。每个箭头1520对应于树的预测性树枝。箭头的尖端指示节点的双亲节点。节点1510是树的根节点,因为它没有双亲节点。节点1512是树的内部节点,因为它有双亲和至少一个孩子。节点1514是树的叶子结点,因为它没有孩子。
与预测点树的节点相关联的点属于点云的部分,该部分被包含在体积1530中。预测点树的结构通过编码过程来确定以便通常获取在点云的该部分的几何结构的最大压缩方面的最优结构。
与预测点树的节点相关联的点的坐标(x,y,z)使用预测点树编解码结构通过以下操作而被编解码:首先确定从与节点的祖先(双亲、祖父等)节点或兄弟节点相关联的至少一个点获取的预测坐标(xp,yp,zp),然后将预测坐标与坐标相减以获取残差坐标,并且最终对残差坐标进行编解码。残差坐标可以使用熵编解码器而被编解码。
例如使用与祖先和/或兄弟节点相关联的点的坐标的线性组合来获取预测坐标(xp,yp,zp)。线性组合的系数可以从一组可能线性组合选择,并且选择指数可以被示意。例如,如果p0是与双亲节点相关联的点的坐标,p1是与祖父节点相关联的点的坐标并且p2是与太祖父节点相关联的点的坐标,则获取预测坐标的可能线性组合可以是:0*p0+0*p1+0*p2(无预测);1*p0+0*p1+0*p2(德尔塔预测);2*p0-1*p1+0*p2(线性预测);或2*p0+1*p1-1*p2(平行四边形预测器)。
与根节点相关联的点(本文被称为根点)不可以使用任何预测坐标来编解码(或等价地,可以仅使用无预测模式来编解码)并且其坐标与体积1530直接相关地被编解码。
Golomb Rice编码、exp-Golomb编码或另一可变长度编码方法可以被用作用于对残差坐标进行编解码的熵编解码器。备选地,上下文算术编解码也可以被使用。熵编解码器的参数可以取决于线性组合的指数或祖先之间的距离(例如,双亲与祖父之间和祖父与太祖父之间的平均距离)来选择。
由预测点树的编码器针对点集进行的构建可以如下执行。在一个实施例中,编码器首先从点集中选择一个点以与预测点树的根节点点相关联。该单个根节点首先被认为是叶子结点,因为它还没有孩子节点。所选择的点从点集移除。然后,编码器递归地从点集中选择点,将所选择的点与正被构建的预测点树的节点相关联,并且从点集移除所选择的点。递归过程当点集变空时停止。
在变型中,编码器首先标识点的集群并且通过以下来构建针对点的每个集群的预测点树:将最接近集群的中心的点当作根点(例如与根节点相关联的点)并且将集群的其他点关联为它的孩子。然后,根点的集合被认为是要被聚类的新点集,并且该过程被递归地应用直到根点的集合包含仅一个点。该变型是从叶子节点向上到根节点构建树的自底向上过程。
预测点树的预测性结构完全由与每个节点相关联的预测选择指数和针对每个节点的孩子节点的数目确定。点坐标可以然后由解码器从预测性结构和每个点的残差坐标来获取。因此,示意预测点树的比特流由每个节点的孩子节点数目、预测选择指数和针对每个节点的残差坐标组成。
树的扫描顺序可以遵循预定编码顺序被执行。例如,预测点树的扫描顺序可以遵循节点的深度优先遍历被执行。在另一示例中,预测点树的扫描顺序可以遵循节点的广度优先遍历被执行。
在变型中,针对节点的孩子节点的数目N小于或等于最大界限N_child_node(N个孩子节点)。在知道最大界限的情况下,数目N可以使用例如Golomb Rice编码被编码在针对每个节点的比特流中。最大界限还可以在比特流中被编解码。
在另一变型中,与节点的孩子节点相关联的点的数目是固定的或以算法方式从对解码器可用的信息推导出。在这样的情况下,无需示意针对节点的孩子节点的数目。
方位角
方位角
Figure BDA0003624590660000221
和仰角θ如图16中所示出的被定义。具体地,如果旋转LiDAR头的主轴是竖直轴1610,那么针对在被示出为点1620的“O”的竖直处的点“P”,仰角θ可以被定义为零(即θ是竖直轴线与线[OP]之间的角),或者备选地,针对属于经过“O”的水平平面的点,θ可以被定义为零(即θ是经过“O”的水平平面与穿越[OP]的线之间的角)。在后一情况下,通常将角称为高度角。
通常,LiDAR探头的旋转头在头持续旋转的同时以一定程度地恒定的速率例如从最高激光光束逐个地探查最低激光光束。例如,现在参考图17。
在图17的实施例中,LiDAR头1710沿着轴1712旋转。多个激光器1714可以感测多个点1720。
因为头在移动,所以扫描顺序在
Figure BDA0003624590660000222
角平面中遵循图18的实施例。由于头的连续且平滑的旋转,以及获取点的恒定速率,所以所获取的点之间的方位角距离是恒定的。
因此,如图18中看到的,由相同激光器探查的两个点之间的水平方位距离
Figure BDA0003624590660000223
1810是恒定的,其由一些不可避免的噪声和量子化的获取决定。此外,由两个相邻激光器探查的两个点之间的方位距离
Figure BDA0003624590660000224
(如由距离1820所示出的)也是恒定的。尽管这是水平距离,但是在本公开中,其被称为竖直方位距离,因为该距离是基于两个竖直移位的激光器来确定的。
然而,LiDAR不获取每一个点。具体地,激光器经常丢失点,因为没有对象反射激光。实际上,两个点之间的方位角距离是基础移位
Figure BDA0003624590660000231
Figure BDA0003624590660000232
的倍数,如图19中所描绘的。这些移位被称为方位先验。
如图19中看到的,两个点1910与1912之间的距离等于
Figure BDA0003624590660000233
使用上述内容,一个问题是如何通过使用为基础移位
Figure BDA0003624590660000234
Figure BDA0003624590660000235
的倍数的点之间的方位角距离来获得对LiDAR获取的点云的几何结构的更好压缩。
使用方位先验的改进的压缩
根据本公开的一个实施例,通过使用对表示代表点云的几何结构的树中的当前节点的占用的信息进行编解码的熵编码器来选择上下文,方位角先验可以用于改进该信息的压缩。这样的熵编解码器可以是例如CABAC编解码器。
具体地,现在参考图20。在图20的实施例中,在当前节点2010处,过程前进到框2012,其中解码器确定相对于方位距离的最接近的已经解码的节点。
该过程然后前进到框2020,其中做出至少一个最接近的节点是否存在的确定。如果否,那么过程前进到框2022,其中在没有方位预测的情况下基于表示当前节点占用的信息来解码或编码信息。
如果存在至少一个最接近的节点,那么过程从框2020前进到框2030。在框2030处,针对每个最接近的节点的方位预测角利用基础移位
Figure BDA0003624590660000236
Figure BDA0003624590660000237
的输入来确定。
过程然后前进到框2032,其中平均方位预测角被找到。平均方位预测角如下面所描述的被找到。
过程然后前进到框2034,其中角方位上下文被选择。该上下文如下面所描述的被选择。
过程然后前进到框2036,其中表示当前节点占用的信息利用上下文信息而被解码。
在框2034处的上下文可以在一个实例中基于当前节点在方位平面中的位置来选择。例如,这可以是与孩子节点的集合相关联的方位角。该上下文还可以基于从“最接近”的已经编解码的节点的方位角所确定的方位预测角来选择。
基本上,当前节点的方位预测和位置被比较以预料节点的哪个子集有可能被占用,并且适当的上下文因此被选择。
平均方位预测角的确定基本上通过以下操作从与最接近的已经编解码的节点相关联的方位角获得:将这些角移位基础移位
Figure BDA0003624590660000241
和/或
Figure BDA0003624590660000242
的适当倍数,并且然后经移位的角被求平均以获得唯一平均方位预测角。
下面描述上述内容的细节。
方位角预测
在一个实施例中,预测方位角可以基于与已经编解码的节点相关联的角来构建。例如,方位角
Figure BDA0003624590660000243
与其相关联的体积(诸如长方体)的中心位于坐标(xc,yc,zc)处的每个已经编解码的节点相关联。该方位角可以例如根据下面的式6通过反三角函数来确定。
Figure BDA0003624590660000244
在备选实施例中,角可以通过诸如下面的式7和8的其他三角函数公式来确定。
Figure BDA0003624590660000245
Figure BDA0003624590660000246
在以上的式7和8中,rc是方位半径,使得rc 2=xc 2+yc 2。在实践中,这些反三角函数可以被近似以获得快速实现。例如,这些函数可以使用低阶多项式通过诸如坐标旋转数字计算机(CORDIC)算法的递归方法来近似。在一些情况下,这些近似可以以定点来实现以便获得更快速且硬件友好的实现。
在一些情况下,为了进一步简化,可以在一些实现中通过使用坐标比率而非方位角来避免对三角函数的使用。例如,使用下面式9的符号,可以使用Ψ空间而非
Figure BDA0003624590660000251
空间中的先验。
Figure BDA0003624590660000252
然而,可能需要对基础移位的调整,并且对基础移位的调整一般可以使用诸如下面的式10中示出的那样的一阶近似来找到。
Figure BDA0003624590660000253
使用以上的式10,获得根据式11的调整移位。
Figure BDA0003624590660000254
在以上的式11中,n是指示要被应用的基础移位的倍数的整数。此后,所描述的实施例在
Figure BDA0003624590660000255
空间中详述,但是这仅出于说明目的而被提供,并且实施例可以通过以上的一阶近似被推广到Ψ空间,其中Ψ等于xc/yc、yc/rc和xc/rc
参考图21并且基于上述内容,具有方位角
Figure BDA0003624590660000256
的当前节点2120可以被认为是针对具有方位角
Figure BDA0003624590660000257
2112的已经编解码的节点2120的。这两个节点可以具有具有不同形状和大小的相关联的体积。如果Lcur是获取当前体积中的点的光束指数,并且是Lal是获取已经编解码的体积中的点的光束指数,那么已经编解码的体积的方位角如下移位以获得与已经编解码的节点相关联的预测方位角。
1.如果Lcur和Lal是不同的,那么
Figure BDA0003624590660000258
被移位两个激光器之间的基础竖直移位
Figure BDA0003624590660000259
以获得
Figure BDA00036245906600002510
2.
Figure BDA00036245906600002511
可以被移位基础水平移位
Figure BDA00036245906600002512
的n倍,n是正整数或负整数,使得得到的角
Figure BDA00036245906600002513
属于区间
Figure BDA00036245906600002514
得到的角
Figure BDA00036245906600002515
是与已经编解码的节点相关联的针对当前节点的预测方位角2122。
另外,在一些实施例中,可能期望将若干预测角组合成平均预测。在这方面,根据另一实施例,所有编解码的节点可以潜在地引起针对当前节点的预测方位角。一个或多个已经编解码的节点可以用于预测当前节点的角。相关联的预测方位角被求平均以获取唯一平均方位预测角。
然而,不是所有的预测方位角都具有相同“质量”。例如,质量可以是指这些节点是否具有准确地预测属于当前节点的被占用的孩子节点或点的方位角的相同能力。在方位上远离当前节点的已经编解码的节点要求具有大的n的
Figure BDA0003624590660000261
的移位,因此放大
Figure BDA0003624590660000262
的不准确性。
此外,具有大尺寸的已经编解码的节点具有关于与它们包含的点相关联的方位角的高不确定性。出于这些原因,用于当前节点的预测方位角的已经编解码的节点在以下之中被选择:
1.在尺寸上小于当前节点的已经编解码的节点;
2.在方位上充分接近当前节点,例如使得
Figure BDA0003624590660000263
的绝对值低于给定阈值;
3.可选地,已经编解码的节点与当前节点由相同的激光器探查。在这种情况下,激光器间竖直基础移位
Figure BDA0003624590660000264
不被使用。
取决于树中的节点的扫描顺序,顺序可以是深度优先的或广度优先的,并且使用IDCM节点来修剪树。各种大小的已经编解码的节点可以是可用的。准确地预测方位角的能力可以如下被确定。如果s是已经编解码的节点的大小,那么方位角
Figure BDA0003624590660000265
易遭受在xal/yal两者上的阶数误差“s”,使得比率xal/yal以及在s中的一阶处的角由下面的式12示出。
Figure BDA0003624590660000266
式12易遭受阶数误差eal=s/min(|xal|,|yal|)。通过使用该误差估计器eal,可以量化与预测方位角
Figure BDA0003624590660000267
相关联的质量。具有更高质量的角,诸如具有更低阶数eal的那些,可以在加权总和中具有更高权重,得到根据下面的式13的平均预测角
Figure BDA0003624590660000268
Figure BDA0003624590660000269
在不执行误差估计的情况下,可以认为所有误差eal具有相同幅度,并且平均预测角通过非加权和获得。
另外,在一些实施例中,节点可能没有资格进行方位编码。现在参考图22。在图22的实施例中,单个激光器2210绕轴2212旋转。如以上所描述的,读数之间的角是
Figure BDA0003624590660000271
没有资格的节点2220连同有资格的节点2230一起被示出。
有资格的节点2230是有资格的,因为它由至多一个激光器相交。这是以上描述的角度资格。
此外,有资格的节点2230是有资格的,因为它足够小以确保它不会被至多一个激光器探查两次。这等同于说,方位角截面小于基础移位
Figure BDA0003624590660000272
如图22的实施例中所描绘的。基本上,当不等式
Figure BDA0003624590660000273
成立时,满足方位资格,其中E是与节点相关联的长方体的最长边的长度。
根据方位角预测的用于熵编解码器的上下文确定;平面模式实施例
竖直平面模式
根据如以上所描述的平面模式编解码,已经观察到,在没有压缩的情况下直接对平面信息进行编解码导致非常低效的平面模式。因此,需要压缩与平面模式相关联的语法。具体地,被称为planePosition的比特通过基于预测方法来选择用于二进制熵编解码器的上下文而被压缩。
针对z平面模式,如果节点是平面的,使得标志“isPlanar”为真,那么平面定位(底部或顶部)由被称为planeZPosition的额外比特示意。该比特还使用二进制算术编解码器(其上下文取决于预测性信息)来编码。例如,现在参考图23。在图23的实施例中,预测性信息由以下组成:双亲节点的与当前节点相邻的竖直邻居的占用、距在相同z 2320和相同深度处的最接近的已经编解码的节点2312的距离d(被示出为附图标记2310)。值d被离散化成三个值,即“近”或“不太远”或“远”。
预测性信息由在与当前节点在相同的z和相同的深度处的最接近的已经编解码的节点的平面定位(如果有,底部或顶部)组成。
预测性信息还由当前节点相对于其双亲节点的竖直坐标z组成。
在与当前节点在相同的z和相同的深度处的最接近的已经编解码的节点是平面的情况下,这得到2×3×2×2=24个可能的预测性组合。否则,当在相同z和相同深度处的最接近的已经编解码的节点不是平面的时,额外的特定上下文被代替地使用。因此,24+1=25个上下文由二进制算术编解码器使用以对平面定位进行编解码。
方位先验可以提供一些有用信息来更好地压缩针对“竖直”平面模式的平面定位比特“planeXPosition”和“planeYPosition”。根据本文的实施例,针对比特planeXPosition和/或planeYPosition的预测性信息可以通过使用已经编解码的节点的方位角的知识来构建平均方位预测器而被增强或被替换,并且然后通过使用诸如CABAC的二进制熵编解码器来压缩这两个比特而推导出上下文。
水平x和/或y平面模式的选择
取决于当前节点在方位xy平面中的投影的定位,方位角预测可以预测x平面定位planeXPosition或y平面定位planeYPosition或两者,其中预测可以在一些情况下对一个平面比另一个平面更好。如图24中所图示的,针对x平面定位,由于小方位角,预测角
Figure BDA0003624590660000281
2410不能很好地鉴别当前节点内的点2420和2422的两个平面定位(左和右)。换言之,节点接近x轴并且因此点2420与2422之间的角具有小的差异。
另一方面,针对具有接近90°的方位角的节点,换言之,接近y轴的节点,鉴别是最大的。例如,参考图25,点2520与2522之间的角是最大的,因为节点接近y轴,从而允许预测角
Figure BDA0003624590660000282
2510在这些点之间鉴别。
因此,平面比特planeXPosition和planeYPosition取决于或不取决于当前节点在方位平面中的定位而被预测的。例如,可以如下选择水平x和/或y平面模式。如果当前节点的方位角距x轴小于50°,那么y平面定位planeYPosition使用方位预测来被编解码。否则不。
在其他情况下,如果当前节点的方位角距y轴小于50°,那么x平面定位planeXPosition使用方位预测来编解码。否则不。
其他小于50°的值可以在一些情况下被使用。在该示例中,具有在40°与50°之间的方位角的当前节点可以具有使用方位预测编解码的x平面定位和y平面定位两者。这些节点将接近xy对角线。
上下文确定
在下面描述的实施例中,在x平面定位的上下文中执行确定。针对y平面定位的情况将与下面描述的情况类似,其中x和y轴交换并且利用对称性。
现在参考图26。针对上下文确定,在当前节点是有方位资格的情况下,计算第一角、第二角,即左方位角和右方位角。这两个角对应于角
Figure BDA0003624590660000291
2610和
Figure BDA0003624590660000292
2612,角
Figure BDA0003624590660000293
2610和
Figure BDA0003624590660000294
2612与位于竖直平面的中心的点2620和2622相关联。
接下来,使用这两个角以及如以上所描述的确定的预测角
Figure BDA0003624590660000295
2630来确定平面定位上下文。通过根据下文计算上下文指数,方位上下文指数根据左方位角
Figure BDA0003624590660000296
和右方位角
Figure BDA0003624590660000297
来确定。上下文指数的第一比特取决于
Figure BDA0003624590660000298
Figure BDA0003624590660000299
之间的差是否具有相同符号。
上下文指数的第二比特取决于
Figure BDA00036245906600002910
Figure BDA00036245906600002911
中的哪个具有最高幅值。
上下文指数还取决于差
Figure BDA00036245906600002912
的量子化。该量子化可以相对于与当前节点中心相关联的倒半径(inverse radius)r被执行。换言之,值D*r被量子化。
在伪代码中,对方位上下文指数的确定可以根据下面的表1来获取。
Figure BDA0003624590660000301
表1:用于方位上下文确定的伪代码
在该实现中,量D*r在四个值{0,1,2,3}上被量子化,该四个值四个值{0,1,2,3}对应于小于0.5、在0.5到1之间、在1到1.5之间或大于1.5的D*r的值的。因此,方位上下文确定可以取2×2×4=16个值。
最后,方位上下文可以替换在平面模式上下文确定中使用的预测性信息、或增强预测性信息,以创建平面/方位上下文的新的且更大的集合。
现在参考图27,其示出了针对以上描述的用于在平面模式种使用方位先验来预测平面的定位的方法的过程图。
具体地,针对当前节点2710,在框2712处做出确定节点是否有方位资格的检查。如果不是,那么过程结束。
否则,过程前进到框2714,其中做出对方位平面方向的确定。
在对方位平面方向的确定之后,在框2720处做出确定节点是否是平面的检查。如果不是,那么过程结束。否则,过程从框2720前进到框2722,其中相对于方位距离的最接近的已经解码的节点被确定。
从框2722,过程前进到框2730,其中做出确定至少一个当前的最接近的节点是否已经在先前被解码的检查。如果不是,那么过程前进到框2732,其中平面定位在没有方位预测的情况下被解码。
从框2730,如果存在至少一个最接近的节点,那么过程前进到框2740,其中平均方位预测角
Figure BDA0003624590660000311
利用基础移位
Figure BDA0003624590660000312
Figure BDA0003624590660000313
被确定。
从框2740,过程前进到框2742,其中方位平面角
Figure BDA0003624590660000314
Figure BDA0003624590660000315
被确定。
过程然后前进到框2744,其中角方位上下文如以上所描述的被选择。
从框2744,过程然后前进到框2746,其中平面定位被解码。
IDCM节点中的方位角编码模式
以上实施例可以被应用于IDCM。例如,在当前节点中,IDCM可以受制于如以上所描述的激活条件。基本上,这些条件当节点孤立时被满足,其是预料可以得益于IDCM的后续点的孤立的良好先验。
为了确保IDCM中的角度一致性,获得高效角编解码需要的这样的一致性,额外条件可以被添加到针对IDCM资格的条件的列表。该额外条件可以是以上参考图13并且还参考图22描述的双角度资格条件。如果该双角度条件未被满足,那么IDCM不被应用于当前节点。
将上述内容应用于LiDAR并假设LiDAR主轴是竖直的并且平行于z轴,一旦角度IDCM针对当前节点被激活,以下信息就可以是已知的。第一条已知信息是距与当前节点相关联的体积的最接近的激光器指数L。第二条已知信息是方向x和/或y,方位先验被应用于该方向x和/或y以压缩属于IDCM节点的点的坐标x和/或y的。
在下面的示例中,假设点的坐标x被压缩。然而,坐标y的情况是类似的。针对每个点,点的相对坐标x的比特迭代地被编解码。相对坐标与体积的基准点有关。例如,这样的相对点可以是长方体体积的角点。
坐标x的迭代编码过程基于坐标所属的区间的递归拆分。现在参考图28。
在图28的实施例中,针对每个IDCM节点2810,过程前进到框2812,其中利用输入
Figure BDA0003624590660000316
Figure BDA0003624590660000317
来确定平均方位预测角
Figure BDA0003624590660000318
预测角
Figure BDA0003624590660000321
用于对属于IDCM节点的所有点的坐标x的所有比特进行编解码。
过程然后前进到框2814,其中点在节点中被拾取。针对每个点,其相对坐标x根据剩余过程而被解码。本领域技术人员将认识到,包括得过程是非常相似的。
过程然后前进到框2816,其中x区间被初始化。这例如被示出在图29中,其中x区间根据具有初始x和初始x的节点被初始化,初始x和初始x具有
Figure BDA0003624590660000322
2910和
Figure BDA0003624590660000323
2912的初始方位角值的。
方位xy平面中的初始x区间从IDCM被应用于的当前节点的(沿着x轴的)水平位置和大小获得。该初始区间确切地覆盖针对属于与节点相关联的体积的点的坐标x的所有可能值。区间的定位y可以被当作IDCM节点的中心的y坐标的值yc。在变型中,点的坐标yP在对坐标x进行解码之前首先被解码,并且区间的定位y被当作该点的经解码的坐标yP.
然后,
Figure BDA0003624590660000324
2910和
Figure BDA0003624590660000325
2912的角针对位于区间的1/4和3/4处的两个点x和x被计算。
再次参考图28,从框2816,过程前进到框2820,其中做出确定坐标X是否完成的检查。如果是,那么过程前进到框2822,其中其他坐标(即坐标y和z)被解码。
相反,如果坐标x未完成,那么过程从框2820前进到框2830,其中角
Figure BDA0003624590660000326
Figure BDA0003624590660000327
被确定。
过程然后前进到框2832,其中角上下文从
Figure BDA0003624590660000328
Figure BDA0003624590660000329
确定。
过程然后前进到框2840,其中针对该点的坐标x的最高阶剩余比特被编码/解码。过程然后前进到框2842,其中x区间被更新。
因此,如以上所描述的,方位上下文根据角
Figure BDA00036245906600003210
Figure BDA00036245906600003211
的知识被选择。知道了上下文,熵编码器(解码器)对针对该点的坐标x的最高阶的剩余比特进行编码(解码)。如图30中所示出的,x区间然后通过使用经编码(解码)的比特来更新。例如,如果该比特指示(例如比特等于1)该点的坐标x属于x区间的右边部分,那么新更新的x区间被当作该右边部分,其长度已经变成一半。这因此更新
Figure BDA0003624590660000331
3010和
Figure BDA0003624590660000332
3012两者。
确定角
Figure BDA0003624590660000333
Figure BDA0003624590660000334
然后上下文、然后对该点的坐标x的位进行编码(解码)、然后更新x区间被迭代地执行,直到不再有要被编码(解码)的位。停止准则可以是x区间的长度变为最小(例如一)。
为了获得更快的实现,角
Figure BDA0003624590660000335
Figure BDA0003624590660000336
的计算可以通过使用一阶近似根据较老的角
Figure BDA0003624590660000337
Figure BDA0003624590660000338
和/或预测角
Figure BDA0003624590660000339
来执行。
当计算平均预测角
Figure BDA00036245906600003310
时,使用属于已经编码(解码)的IDCM节点的点的方位角是有利的,因为这些点的坐标与仅仅是点定位的近似的与属于树的节点相关联的体积的中心相比是确切地已知的,因此得到具有低误差eal(等价地,高质量)的预测方位角
Figure BDA00036245906600003311
并且然后得到更可靠的平均预测角
Figure BDA00036245906600003312
可选地,平均预测角
Figure BDA00036245906600003313
可以在计算新x区间之后被更新。该角
Figure BDA00036245906600003314
相对于IDCM当前节点的中心的方位角
Figure BDA00036245906600003315
初始地被确定,并且可以证明,在已经使x区间变窄之后,额外的附加基础移位
Figure BDA00036245906600003316
Figure BDA00036245906600003317
可以将平均预测角
Figure BDA00036245906600003318
移动得更接近新x区间的中心。
因此,上述内容提供了用于IDCM的高效角编码。
预测点树中的简单方位角编解码模式
在另一实施例中,以上方位角编码可以与预测点树一起使用。在下面描述的实施例中,假设LiDAR主轴是竖直的,或换言之,平行于z轴。然而,主轴可以是不同的轴并且下面描述的方法和实施例可以适于这样的其他轴。
现在参考图31,其是用于预测点树中的简单方位角编解码模式的解码过程的框图。编码过程直接从该解码过程推导出。
针对预测点树3110,该过程前进到3112,其中做出确定是否存在任何剩余的节点的检查。如果否,那么过程结束。
如果存在剩余的节点,那么过程前进到框3114,其中做出与节点相关联的点的预测(xpred,ypred,zpred)。
该过程然后前进到框3120。在框3120处,平均预测角
Figure BDA00036245906600003319
相对于预测(xpred,ypred,zpred)的方位角被确定,该方位角可以通过
Figure BDA0003624590660000341
来计算。来自前面的已经编解码的节点的已经编码的点的方位角
Figure BDA0003624590660000342
然后被移位以获得区间
Figure BDA0003624590660000343
中的
Figure BDA0003624590660000344
针对预测性点树,空间中的节点的位置被同化到其唯一相关联的点的定位。因此,来自当前节点的最接近的已经编解码的节点被理解为其相关联的唯一点是距与当前节点相关联的唯一点最接近的已经编解码的节点。最接近被理解为最小方位距离。
用信号示意幅值的语法可以在比特流中被编解码,诸如用于残差xres的编解码的位数。该语法被解码,并且初始x区间的长度从经解码的幅值推导出,被示出在框3122处。例如,对xres进行编解码需要的位数可以使用一元可变长度编解码和/或熵编解码器被编解码。
初始x区间的定位y可以被当作预测(xpred,ypred,zpred)的y坐标的值ypred。在一个实施例中,点的坐标y=ypred+yres在对坐标x进行解码之前首先被解码,并且初始x区间的定位y被当作点的经解码的坐标y。
此外,在框3122中,残差xres的大小可以被初始化。更具体地,可以例如通过exp-Golomb类可变长度编解码来对残差xres进行编解码,其中前缀示意后缀的大小(=比特数)。后缀本身示意残差的值,其可以是有符号的。当初始化x区间时,前缀可以被解码,并且区间的长度从经解码的前缀推导出。区间的中心可以由预测器的坐标x的值xpred提供。后缀通过在x区间上的迭代过程而被解码。
从框3122,过程前进到框3130,其中做出确定xres是否完成的检查。如果是,那么过程前进到框3132以确定点的坐标x=xpred+xres
过程然后前进到框3134,其中解码器可以对点的其他坐标y和z进行解码。从框3134,过程可以前进到框3112以选择下一个剩余节点。
相反,从框3130,如果xres未完成,那么过程前进到框3140。在框3140处,解码器可以确定角
Figure BDA0003624590660000345
Figure BDA0003624590660000346
过程然后前进到框3142,其中根据
Figure BDA0003624590660000347
Figure BDA0003624590660000348
的角上下文被确定。
过程然后前进到框3144,其中针对该点的坐标x的最高阶剩余比特被解码。
过程然后前进到框3146,其中x区间被更新。从框3146,过程可以然后前进回到框3130以确定xres是否已经完成。框3130中的停止准则可以是x区间的长度变为最小(例如一)。
在针对图31的实施例的示例中,如果x=32并且xpred=43,那么xres=32-43=-11被编码在比特流中。残差-11属于区间[-15,16],其具有32=25个值,并且可以使用5位来编解码。编码器因此使用一元码来编码前缀5,一元码的每个比特在该示例中由CABAC熵编码器编解码。另外,编码器编码示意残差属于哪个子区间的比特(0=左,1=右):
0->区间变成[-15,0]
0->区间变成[-15,-8]
1->区间变成[-11,-8]
0->区间变成[-11,-10]
0->区间变成[-11,-11]
停止,因为区间具有长度1
这5个比特由使用在迭代过程期间确定的角上下文的熵编解码器(例如CABAC)来被编解码。定位x和x使用以预测器的位置(即xpred=43)为中心的区间来确定。因此,初始x区间是43+[-15,16]=[28,59],并且由于左定位和右定位位于区间的1/4和3/4处,所以得到x=35并且x=51,等等。
第二比特可以被推断,因为可以假设残差值xres不属于[-7,8],因为否则由前缀示意的比特数会是4或更小。第二比特的这种推断是系统性的,不管要编解码的残差的符号如何。
因为残差值的符号通常是不可预测的,所以通常通过标志来示意残差是否为零,如果不是,那么通过旁路编解码来对符号进行编解码,并且然后对幅值|xres-1|进行编解码。针对残差的编解码过程然后变成:
·对示意是否xres=0的标志f0进行编解码
·如果f0为假,那么
○通常通过使用旁路编解码(例如推送符号比特)来对xres的符号进行编解码;
○使用一元码来编码前缀(=比特数),一元码的每个比特由CABAC熵编解码器来编解码;
○对示意残差属于哪个子区间的比特(0=左,1=右)进行编解码。
使用以上示例,标志f0为假,因为xres不为零。然后,符号通过旁路比特(例如0)被示意为负(例如0=负,1=正)。示意第一个子区间的第一比特然后通过符号比特明显推断出。
可选地,平均预测角
Figure BDA0003624590660000361
可以在计算新x区间之后被更新。该角
Figure BDA0003624590660000362
相对于预测(xpred,ypred,zpred)的方位角初始地被确定,并且可以证明,在已经使x区间变窄之后,额外的附加基础移位
Figure BDA0003624590660000363
Figure BDA0003624590660000364
可以将平均预测角
Figure BDA0003624590660000365
移动得更接近新x区间的中心。
语法
本文描述的实施例要求解码器知道以
Figure BDA0003624590660000366
和/或
Figure BDA0003624590660000367
的基础移位。这些移位可以例如通过被包括到比特流压缩的点云数据中被发送给解码器。在这方面,附录A示出了可以被指定的各种语法,其中针对以上实施例的增加的语法以粗体和斜体突出显示。
装置
现在参考图32,其示出了编码器3200的示例实施例的简化框图。编码器3200包括处理器3202、存储器3204、以及编码应用3206。编码应用3206可以包括存储于存储器3204中并且包含指令的计算机程序或应用,该指令当被执行时使处理器3202执行诸如本文描述的那些的操作。例如,编码应用3206可以根据本文描述的过程来编码比特流并输出经编码的比特流。将理解,编码应用3206可以被存储在诸如压缩光盘、闪存设备、随机存取存储器、硬盘驱动器等的非瞬态计算机可读介质上。当指令被执行时,处理器3202执行指令中指定的操作和功能以便操作为实现(多个)所描述的过程的专用处理器。在一些示例中,这样的处理器可以被称为“处理器电路”或“处理器电路系统”。
现在还参考图33,其示出了解码器3300的示例实施例的简化框图。解码器3300包括处理器3302、存储器3304、以及解码应用3306。解码应用3306可以包括存储在存储器3304中并且包含指令的计算机程序或应用,该指令当被执行时使处理器3302执行诸如本文描述的那些的操作。将理解,解码应用3306可以被存储于诸如压缩光盘、闪存设备、随机存取存储器、硬盘驱动器等的计算机可读介质上。当指令被执行时,处理器3302执行指令中指定的操作和功能以便操作为实现(多个)所描述的过程的专用处理器。在一些示例中,这样的处理器可以被称为“处理器电路”或“处理器电路系统”。
将认识到,根据本申请的解码器和/或编码器可以被在许多计算设备中被实现,计算设备包括但不限于服务器、适当地编程的通用计算机、机器视觉系统以及移动设备。解码器或编码器可以通过包含用于将一个处理器或多个处理器配置为执行本文描述的功能的指令的软件来实现。软件指令可以被存储在包括CD、RAM、ROM、闪存等的任何适当的非瞬态计算机可读存储器上。
将理解,本文描述的解码器和/或编码器和实现用于配置编码器或解码器的所描述的方法/过程的模块、例程、进程、线程、或其他软件组件可以使用标准计算机编程技术和语言来实现。本申请不限于特定处理器、计算机语言、计算机编程惯例、数据结构、其他这样的实现细节。本领域技术人员将意识到,所描述的过程可以被实现为存储于易失性或非易失性存储器中的计算机可执行代码的部分、实现为专用集成电路芯片(ASIC)的部分等。
本申请还提供了一种计算机可读信号,其对通过根据本申请的编码过程的应用而产生的数据进行编码。
结果
在以上实施例中,通过使用平均预测角
Figure BDA0003624590660000371
来选择平面模式中的平面定位planeXPosition和planeYPosition的上下文,LiDAR获取的数据的无损压缩已经被发现为已经被改进大约15%,即,得到的比特流大小已经相较于作为当前在关于点云压缩的标准工作中开发的MPEG测试模型的锚被减小15%。
可以做出对所描述的实施例的某些适应和修改。因此,以上讨论的实施例被认为是说明性的而非限制性的。
附录A–语法
Figure BDA0003624590660000381
表2:语法
下面是表2的相关联的语义。
angular_flag等于0指示头和激光器信息不存在于语法中,Angular_flag等于1指示头和激光器信息存在于语法中。当等于0时,针对节点的编码方法不使用角度信息。参见IDF 50916。
num_of_heads_flag等于0指示number_of_of(Lidar’s)heads被推断为一。如果num_of_heads_flag等于1,那么其指示num_of_heads_minus2存在于语法中,并且Lidar/头的数目等于num_of_heads_minus2+2。当不存在于比特流中时,number_of_Lidars/heads被推断为零。
head_absolute_is_000_flag等于1指示头绝对定位被推断为x=y=z=0。当head_absolute_is_000_flag等于0时,其指示head_absolute_x、head_absolute_y和head_absolute_z存在于比特流中以示意绝对头定位。绝对被理解为在点云被表示于其中的xyz坐标系中。
head_absolute_x指示以具有3比特小数精度的32比特有符号整数的在头(捕获设备)的x轴上的绝对定位,使得头的x绝对定位是head_absolute_x/8。
head_absolute_y指示以具有3比特小数精度的32比特有符号整数的在头(捕获设备)的x轴上的绝对定位,使得头的x绝对定位是head_absolute_y/8。
head_absolute_z指示以具有3比特小数精度的32位有符号整数的在头(捕获设备)的x轴上的绝对定位,使得头的x绝对定位是head_absolute_z/8。
head_parallel_to_axis_flag等于1指示头平行于轴取向。在这种情况下,axis_index存在于流中。head_parallel_to_axis_flag等于0指示头不平行于轴取向,并且在这种情况下,head_orientation_phi和head_orientation_theta代替axis_index存在于流中。
axis_index指示头平行于哪个轴。axis_index等于0指示头平行于x轴取向,等于1指示头平行于y轴取向,并且等于2指示头平行于z轴取向。
head_orientation_phi和head_orientation_theta指示球坐标中的取向。head_orientation_phi是xy平面中的方位角,并且
head_orientation_theta是相对于z轴的极角。两者都是具有18比特小数精度的有符号的32比特整数。
num_of_lasers指定针对给定头的激光器(或光束)的数目。它是在1到1023的范围内的10比特整数。
elementary_shift_H指示由头的相同激光器连续探查的两个点之间的方位角基础移位
angle_is_tangent_flag等于1指示由laser_angle提供的信息是角的正切。
angle_is_tangent_flag等于0指示由laser_angle提供的信息是角。
elementary_shift_V[L]指示由头的激光器L和下一个激光器L+1连续探查的两个点之间的方位角基础移位
laser_angle是与给定激光器相关联的角(的正切),这是相对于垂直于头方向并且激光器(或光束发射器)定位所属的平面的高度角。它是具有18比特小数精度的有符号的32比特整数。
laser_relative_position_to_head_flag等于0指示激光器/光束发射器与头绝对定位相同。laser_relative_position_to_head_flag等于1指示激光器/光束发射器与头绝对定位不相同;在这种情况下,
laser_relative_position_dL和relative_position_rL_flag存在于比特流中。
laser_relative_position_dL指示激光器(光束发射器)沿着头的取向的方向相对于头绝对定位的定位。它是具有3比特小数精度的16比特有符号整数。
relative_position_rL等于0指示laser_relative_rL不存在于比特流中并且被推断为0。relative_position_rL等于1指示laser_relative_rL存在于比特流0中。
laser_relative_rL指示激光器(光束发射器)距平行于经过头绝对定位的头的取向的方向的线的距离。它是具有3比特小数精度的16比特有符号整数。

Claims (15)

1.一种对点云进行编码以生成表示对象的三维位置的压缩点云数据的比特流的方法,所述点云位于体积空间内并且由树表示,所述方法包括:
确定相对于方位距离到所述树的当前节点的至少一个最接近的编解码的节点;
确定针对所述至少一个最接近的编解码的节点中的每个最接近的编解码的节点的方位预测角;
根据针对所述至少一个最接近的编解码的节点中的每个最接近的编解码的节点的所确定的所述方位预测角来找到平均方位预测角;
基于所述平均方位预测角来选择角方位上下文;以及
基于所述方位上下文来对表示所述当前节点的信息进行编码以生成压缩点云数据的所述比特流。
2.一种对表示对象的三维位置的压缩点云数据的比特流进行解码以用于生成点云数据的方法,所述点云位于体积空间内并且由树表示,所述方法包括:
确定相对于方位距离到所述树的当前节点的至少一个最接近的编解码的节点;
确定针对所述至少一个最接近的编解码的节点中的每个最接近的编解码的节点的方位预测角;
根据针对所述至少一个最接近的编解码的节点中的每个最接近的编解码的节点的所确定的所述方位预测角来找到平均方位预测角;
基于所述平均方位预测角来选择角方位上下文;以及
基于所述方位上下文来从所述比特流解码表示所述当前节点的信息以生成所述点云数据。
3.根据权利要求1或权利要求2所述的方法,其中所述平均方位预测角基于以下被确定:
Figure FDA0003624590650000021
其中
Figure FDA0003624590650000022
是所述平均方位预测角,
Figure FDA0003624590650000023
是所述至少一个最接近的编解码的节点中的每个最接近的编解码的节点的对应的所述方位预测角,并且eal是所述至少一个最接近的编解码的节点中的每个最接近的编解码的节点中的误差。
4.根据权利要求1至3中的任一项所述的方法,其中所述确定至少一个最接近的编解码的节点不包括大小大于所述当前节点的节点和/或不包括与所述当前节点相距大于阈值方位距离的节点。
5.根据权利要求1至4中的任一项所述的方法,其中所述编码或解码处于平面模式,并且其中所述方法还包括确定针对所述当前节点的左方位角和右方位角,其中所述选择所述角方位上下文还包括以下至少一项:
基于所述平均方位预测角减去所述左方位角是否与所述平均方位预测角减去所述右方位角具有相同的符号来指派第一比特;
基于所述平均方位预测角减去所述左方位角、和所述平均方位预测角减去所述右方位角中的哪项具有最大绝对幅值来指派第二比特;以及
基于所述平均方位预测角减去所述左方位角与所述平均方位预测角减去所述右方位角之间的幅值差乘以到所述当前节点的半径的倒数,来提供量子化上下文指数。
6.根据权利要求5所述的方法,其中所述方法还包括:基于所述当前节点相对于x轴或y轴的位置来选择x平面定位和/或y平面定位以用于方位预测。
7.根据权利要求1至4中的任一项所述的方法,其中所述编码或解码处于推断直接编解码模式(“IDCM”),并且其中所述方法还包括:
初始化坐标区间;
通过以下操作来递归地拆分所述区间:
确定针对所述区间的左方位角和右方位角;
通过进一步一起使用所述左方位角和所述右方位角与所述平均方位预测角来执行所述选择所述角方位上下文;
执行对表示属于所述当前节点的点的坐标的信息的编码或解码;以及
在所述编码或解码之后更新所述坐标区间。
8.根据权利要求7所述的方法,其中所述确定所述左方位角和所述右方位角基于位于所述区间的1/4和3/4处的两个点。
9.根据权利要求7或权利要求8所述的方法,其中所述确定所述左方位角和右方位角使用来自所述左方位角和右方位角、和/或所述平均方位预测角的先前值的一阶近似。
10.根据权利要求1至4中的任一项所述的方法,其中所述编码或解码使用预测点树,并且其中所述方法还包括:
在确定所述平均方位预测角之前确定与对所述当前节点相关联的点的预测;
根据对所述点的所述预测和残差的大小来初始化针对坐标的坐标区间;
针对所述残差中的每个比特:
确定针对所述区间的左方位角和右方位角;
通过进一步一起使用所述左方位角和所述右方位角与所述平均方位预测角来执行所述选择所述角方位上下文;
执行对针对所述坐标的最高阶剩余比特的所述编码或解码;以及
在所述编码或解码之后更新所述坐标区间。
11.根据权利要求7或权利要求10所述的方法,还包括:在更新所述坐标区间之后更新所述平均方位预测角。
12.一种编码器,用于对点云进行编码以生成表示物理对象的三维位置的压缩点云数据的比特流,所述点云数据位于体积空间内,所述编码器包括:
处理器;
存储器;以及
编码应用,包含由所述处理器可执行的指令,所述指令在被执行时使所述处理器执行根据权利要求1或当从属于权利要求1时权利要求3至11中的任一项所述的方法。
13.一种解码器,用于对压缩点云数据的比特流进行解码以产生表示物理对象的三维位置的重构点云,所述点云数据位于体积空间内,所述解码器包括:
处理器;
存储器;以及
解码应用,包含由所述处理器可执行的指令,所述指令在被执行时使所述处理器执行根据权利要求2或当从属于权利要求2时权利要求3至11中的任一项所述的方法。
14.一种存储处理器可执行指令的非瞬态处理器可读介质,所述处理器可执行指令当由处理器执行时使所述处理器执行根据权利要求1至11中的任一项所述的方法。
15.一种包含程序指令的计算机可读信号,所述程序指令当由计算机执行时使所述计算机执行根据权利要求1至11中的任一项所述的方法。
CN201980101940.0A 2019-10-31 2019-10-31 用于云压缩的方位角先验和树表示的方法和系统 Pending CN114616592A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2019/001235 WO2021084292A1 (en) 2019-10-31 2019-10-31 Method and system for azimuthal angular prior and tree representation for cloud compression

Publications (1)

Publication Number Publication Date
CN114616592A true CN114616592A (zh) 2022-06-10

Family

ID=69143616

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980101940.0A Pending CN114616592A (zh) 2019-10-31 2019-10-31 用于云压缩的方位角先验和树表示的方法和系统

Country Status (5)

Country Link
US (1) US20220398784A1 (zh)
EP (1) EP4052227A1 (zh)
KR (1) KR20220093135A (zh)
CN (1) CN114616592A (zh)
WO (1) WO2021084292A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024083194A1 (en) * 2022-10-20 2024-04-25 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for point cloud coding

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11252439B2 (en) * 2020-02-10 2022-02-15 Tencent America LLC Flexible tree partition and representation for point cloud coding
US20230154052A1 (en) * 2020-04-24 2023-05-18 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method
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
WO2022247715A1 (zh) * 2021-05-26 2022-12-01 荣耀终端有限公司 一种点云坐标转换残差的编解码方法及装置
CN115412717B (zh) * 2021-05-26 2024-05-17 荣耀终端有限公司 一种点云方位角信息的预测编解码方法及装置
CN115412713A (zh) * 2021-05-26 2022-11-29 荣耀终端有限公司 一种点云深度信息的预测编解码方法及装置
EP4141794A1 (en) * 2021-08-31 2023-03-01 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
EP4141795A1 (en) * 2021-08-31 2023-03-01 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
US20230099908A1 (en) * 2021-09-27 2023-03-30 Qualcomm Incorporated Coding point cloud data using direct mode for inter-prediction in g-pcc
US20240144543A1 (en) * 2022-10-17 2024-05-02 Qualcomm Incorporated Predictive geometry coding of point cloud

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024083194A1 (en) * 2022-10-20 2024-04-25 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for point cloud coding

Also Published As

Publication number Publication date
KR20220093135A (ko) 2022-07-05
EP4052227A1 (en) 2022-09-07
WO2021084292A1 (en) 2021-05-06
US20220398784A1 (en) 2022-12-15

Similar Documents

Publication Publication Date Title
CN114616592A (zh) 用于云压缩的方位角先验和树表示的方法和系统
US11570481B2 (en) Methods and devices using direct coding in point cloud compression
CN114008997B (zh) 基于八叉树的点云编码中的平面模式的上下文确定
US20220358686A1 (en) Angular priors for improved prediction in point-predictive trees
US20220353549A1 (en) Angular mode for tree-based point cloud coding
JP7461389B2 (ja) オクツリーベースの点群コーディングにおける平面モード
US20210272324A1 (en) Methods and devices for neighbourhood-based occupancy prediction in point cloud compression
US20220366612A1 (en) Angular prior and direct coding mode for tree representation coding of a point cloud
US20220351423A1 (en) Angular mode syntax for tree-based point cloud coding
US20220376702A1 (en) Methods and devices for tree switching in point cloud compression
US20230048381A1 (en) Context determination for planar mode in octree-based point cloud coding
WO2024086123A1 (en) Decoding method, encoding method, decoder and encoder

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40075938

Country of ref document: HK