0.什么是点云
参考链接:https://cloud.tencent.com/developer/article/1522263
用激光雷达或者摄像机矩阵将一个三维物体直接数字化,变成一个点的数据。每一个点会包括它的位置x、y、z和其他信息包括r、g、b和色彩信息y、u、v等,这样的描述方式我们称之为点云。
点云数据结构包括:
- 位置信息(geometry ):x,y,z 坐标
- 属性信息(attribute ):该点的颜色(RGB)等
其中属性信息是可选的,就像二维图像可以没有rgb分量一样,如果没有属性信息,点云就是二值化的黑白体。
点云的描述方式有一些特性,点和点之间没有联系,没有顺序。因此可以根据这样的特性进行随意的排序,用来未来压缩技术的优化。(如果不压缩,点云数据会十分庞大,或者说至少是冗余的)。点云压缩分两种,一种是V-PCC,将所有三维物体投影到不同的平面上;另外一种是G-PCC,基于几何的点云压缩。
1.编码框图
图片来自ISO/IEC JTC 1/SC 29/WG 11 N18673 Coding of moving pictures and audio
绿色模块是通常用于1类数据的选项,橙色模块是通常用于3类数据的选项
2.模块简介
0)部分关键词
- occupancy code(占用码): An 8-bit code, named an occupancy code, is then generated by associating a 1-bit value with each sub-cube in order to indicate whether it contains points (i.e., full and has value 1) or not (i.e., empty and has value 0).
- voxel(体素):可以理解成三维像素
- LOD(The level of detail):详细等级。在Predicting Transform中根据用户指定的一组欧几里德距离d,将一组点重新组织为一组按细化等级排序的点。
1) 几何信息部分
- 坐标变换:世界坐标变换为内部坐标。
- 位置量化与重复点移除:通过量化减少坐标不同坐标的数目;量化后原先不同的点可能被赋予相同的坐标,需要去除多余的点(去除多余点这一步骤可省略,具有相同量化位置和不同属性的多个点可通过属性转换合并到一个点中。)
- 几何信息编码–八叉树编码:与平面视频编码类似,八叉树编码首先由两点
(0,0,0)
和(2^d, 2^d,2^d)
划定立方体(d是任意非负整数),通过递归细分立方体来构建八叉树结构,在每个阶段,一个立方体被细分为8个子立方体,只有大小大于1的完整子立方体(即非体素)才能进一步细分。使用占用码(occupancy code)表示一个立方体是否包含子立方体。 - 几何熵编码(算数编码):将之前的信息利用算数编码方式生成几何比特流信息。
2)属性信息部分
- 颜色变换:将RGB色彩空间变换为YCbCr格式或其他(此模块可选用)。
- 属性转换(重着色):给定点云几何、属性和重构的几何信息,确定使属性失真最小化的转换属性。
- 属性信息编码:对于1类数据,可采用Region Adaptive Hierarchical Transform (RAHT) 编码;3类数据可采用interpolation-based hierarchical nearest-neighbour prediction (Predicting Transform), 之后使用 interpolation-based hierarchical nearest-neighbour prediction with an update/lifting step (Lifting Transform)编码.
- 属性量化:使用QP表,同时进行量化和左移位处理,生成量化后的属性信息以及残差。
- 属性熵编码:使用零行程编码(Zero run length coding)对残差进行熵编码,对编码后的属性信息使用算数编码最终得到属性比特流信息。
3)补充
- 几何和属性信息并非完全独立的,属性信息的编码需要利用重建之后的几何信息。
- 位置量化、重复点移除和属性分配到剩余点的过程称为体素化。
- Predicting Transform与Lifting Transform关系:通过Predicting Transform获得LOD、重排的数据;Lifting Transform则根据LOD,进行自适应更新以最小残差方式对属性信息预测。
来源:CSDN
作者:aperture0
链接:https://blog.csdn.net/aperture0/article/details/103533391