目录

前言

一、摘要

二、概述

三、编解码器说明

3.1 预处理与后处理

3.1.1 坐标变换与逆变换

3.2  八叉树几何编解码

3.3 Trisoup几何编解码

3.4 预测几何编码

3.5 几何量化

3.6 几何熵编码

3.7 属性转移(重新着色)

3.8 属性编码(预测变换)

3.9 属性编码(提升变换)


前言

MPEG从2017年呼吁提出建议(CFP),并根据对此 CFP的响应,为点云压缩 (PCC) 标准化活动选择了两种不同的压缩技术:基于视频的 PCC (V-PCC) 和基于几何的 PCC (G-PCC),分别对应测试模型参考软件TMC13和TMC2。

GPCC标准文档目前最新为V12。本文将持续更新。

一、摘要

该文档详细介绍了点云压缩 G-PCC(基于几何的点云压缩)。

点云数据按照获取途径分为三类点云测试数据:静态点云、动态点云和动态获取点云。

G-PCC主要针对第一类静态点云和第三类动态获取点云进行压缩,对稀疏点云更优。V-PCC针对第二类动态点云进行压缩,对密集点云更优。

二、概述

图1描述了G-PCC编码器和解码器。首先对点云位置进行几何编码,然后对属性编码,属性编码要依靠重建后的几何信息。绿色模块通常用于1类数据(静态点云),橙色模块通常用于3类数据(动态获取点云),其他模块在类别1和类别3之间是通用的。

八叉树几何编解码器:

对第三类数据,压缩的几何图形通常表示为从根到叶子节点为单个体素的八叉树,因此对第三类数据的编解码器被称为八叉树几何编解码器。

trisoup几何编解码器:

对第一类数据,压缩的几何图形表示为由修剪的八叉树和表面模型组成,该表面模型是每块包含1-10个三角形的三角剖分,该表面模型近似于修剪后的八叉树的叶子节点的表面(体素)。因此第一类数据的编解码器被称为trisoup几何编解码器。

对第一类数据和第三类数据的编码都是基于八叉树的编码机制。

G-PCC中有3种属性编码方法:

区域自适应分层变换编码 ( Region Adaptive Hierarchical Transform (RAHT) coding)

基于插值的分层最近邻预测 (interpolation-based hierarchical nearest-neighbour prediction (Predicting Transform))

基于插值的带有更新/提升步骤的分层最近邻预测 (interpolation-based hierarchical nearest-neighbour prediction with an update/lifting step (Lifting Transform))

三、编解码器说明

3.1 预处理与后处理

点云的属性和位置表示:

位置表示: (其中N是点云中点的个数)

属性表示: (其中D是点云中属性个数)

点云的几何结构仅包括点的位置,点云的属性仅包含点的属性。在本测试模型中,仅支持三色和反射率(否则没有属性)。点云的几何图形和属性通常在特定于应用程序的空间中表示。测试模型提供了预处理和后处理,以在这些特定于应用程序的空间( application-specific spaces)和有限分辨率的内部空间(finite-resolution internal spaces)之间进行转换,在这些内部空间中,点云被压缩。在点云进行压缩之前会进行预处理,在点云解码完成后会进行后处理。

3.1.1 坐标变换与逆变换

1)编码:

原始点云空间坐标通常用浮点数表示:

包围盒空间坐标表示:

通过坐标变换将原始点云空间坐标转换为包围盒空间坐标,坐标变换公式,

,

其中 为包围盒中点的位置,s为包围盒大小。位于包围盒 内,其中d为包围盒划分次数。

在包围盒中,已压缩和解压缩的点的坐标表示为, 其中是解码点云中点的个数。可以不相等。

2)解码:

原始点云坐标通过坐标变换从包围盒中解码点云坐标获得,变换公式,

可以通过齐次变换表示,公式如下,

如果使用Trisoup几何编解码器,s由triSoupIntToOrigScale 参数指定,T=[0,0,0],d由triSoupDepth参数指定。如果有必要,可将包围盒  外的点  裁剪到 内。

如果使用八叉树几何编解码器,1/s由positionQuantizationScale参数指定,T和d分别由以下公式确定,

其中,Ceil,Log2,Max的定义如下,

Ceil(x) = the least integer greater than or equal to x.

Log2(x) = the base-2 logarithm of x.

Max(x1,...,xN) = the maximum of x1, …, xN.

3.1.2 颜色变换与逆变换

颜色分量的属性量化与分量的颜色空间无关,因为分量是独立处理的。然而,如果需要,TM支持从RGB到YCbCr再转换(ITU Rec.709)

3.1.3 点量化和重复点去除(体素化)

点位置在内部表示为非负d位整数。为了获得这些整数,将内部坐标系中的点位置舍入。设是内部坐标系中的一个点位置。则其作为非负d位整数的表示为:

其中Round()是将向量的分量舍入为最接近的整数的函数:

其中Floor(x)为小于或等于x的最大整数。

这样量化之后,可能存在具有相同位置的多个点,称为重复点。重复点删除过程是可选的。如果启用,将删除具有相同量化坐标的点。为了检测重复,利用STL中的set数据结构。

具有相同量化位置和不同属性的多个点将合并到单个点中。与单个点相关的属性将由第3.7节所描述的属性传递模块计算。

位置量化、删除重复点以及将属性分配给剩余点的过程称为体素化。即,体素化是将点分组为体素的过程。体素集合是单位立方体  ,其中i,j,k的值为0和之间的整数。具体地,将体素内所有点的位置量化到体素中心,并且将体素中所有点的属性组合(例如,平均)并分配给体素。如果体素包含点云的任何点,则称其被占用。

3.2  八叉树几何编解码

使用八叉树几何编码解码器,过程如下。首先,由两个端点(0,0,0)和(2^d,2^d、2^d)定义立方体轴对齐的边界框B。然后通过递归细分B来构建八叉树结构。在每个阶段,一个立方体被细分为8个子立方体。然后,通过将1位值与每个子立方体相关联来生成8位代码(称为占用代码),以指示其是否包含点(满且值为1)(空且值为0)。只有大小大于1的完整子立方体(即,非体素)被进一步细分。由于可以复制点,所以可以将多个点映射到大小为1的相同子立方体(即,相同体素)。为了处理这种情况,还对维度1的每个子立方体的点数进行算术编码。使用相同的算术编码器对放入比特流的所有信息进行编码。目前使用[1]中的实现。

3.3 Trisoup几何编解码

3.4 预测几何编码

3.5 几何量化

3.6 几何熵编码

3.7 属性转移(重新着色)

3.8 属性编码(预测变换)

参见:点云压缩 GPCC属性编码 LOD划分方式介绍_点云渣的博客-CSDN博客_点云压缩编码

3.9 属性编码(提升变换)

待续

MPEG-PCC基于几何点云压缩(G-PCC codec description v12)学习笔记相关推荐

  1. 阿里云CDN(内容分发网络)学习笔记day01

    阿里云CDN(内容分发网络)学习笔记day01 标签(空格分隔): linux Content Delivery Network 基于阿里云 文章目录 阿里云CDN(内容分发网络)学习笔记day01 ...

  2. 点云压缩 GPCC属性编码 LOD划分方式介绍(G-PCC codec description v12)

    目录 一.LOD生成 原理 代码实现 二.LOD生成的可扩展复杂性实现 原理 代码实现 三.LOD属性编码的dist2值计算方法 四.基于常规采样的LOD生成 未完待续 LOD是一种基于层次变换的方法 ...

  3. 《机器学习实战:基于Scikit-Learn、Keras和TensorFlow第2版》-学习笔记(8):降维

    · Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition, by Aurélien Géron ...

  4. 《机器学习实战:基于Scikit-Learn、Keras和TensorFlow第2版》-学习笔记(9):无监督学习技术

    · Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition, by Aurélien Géron ...

  5. AI语音技能云开发(天猫精灵技能)学习笔记之一

    打开网址:天猫精灵开放平台首页天猫精灵开放平台基于天猫精灵的硬件和生态,提供一站式语音开发能力.IoT设备控制能力.AI集成算法集成能力.数字内容变现能力等.https://aligenie.com/ ...

  6. 基于能量或过零率的实时语音分割--学习笔记

    重要假设/基础:采集到的音频在起始处有一小段静音,长度为几百毫秒,这是我们估计静音阈值E0的基础,也是语音降噪的基础. 1. 能量energy 选区一定数量的音频帧,计算其平均能量值,然后加上一个经验 ...

  7. 《机器学习实战:基于Scikit-Learn、Keras和TensorFlow第2版》-学习笔记(3)

    第三章 分类 · Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition, by Aurélie ...

  8. 基于篇章结构的英文作文自动评分方法(学习笔记)

    1.背景 在高水平英语考 试(如 托 福.雅 思.GRE 等)中,作 文 评 测 更 加 注重学生的结构表达,尤其是雅思考试,文章的结构表达在作文评分方面所占比重较大,因 此 篇 章 结 构 分 析 ...

  9. AI语音技能云开发(天猫精灵技能)学习笔记(结营)

    通过5天的学习,基本了解天猫精灵技能开发的流程,下面做一个小demo,作为结营作业 目标:购物清单中物品的价格查询 一.登录,进入控制台,创建新技能 天猫精灵开放平台首页 (aligenie.com) ...

最新文章

  1. jsp内置对象application
  2. Mckinsey insights 2
  3. HDU3474 Necklace
  4. 在Visual Studio 2010 中使用菱形向导对窗口进行布局
  5. sql server常用性能计数器
  6. 《 图解 TCP/IP 》读书笔记
  7. mysql总结 博客园_mysql 总结
  8. idea用maven启动zookeeper源码
  9. mysql中索引创建 查看和删除语句_MySQL索引的创建、删除和查看(学习中)
  10. Oracle RAC Failover机制分析
  11. 在使用Git提交代码的时候犯了个低级错误
  12. Julia: save 和load的用法 和与Matlab的效率比较
  13. github最全计算机类电子书下载
  14. 用mysql设计一个超市员工管理系统_数据库设计--小型超市管理系统
  15. clone远程代码 在不同电脑上git_Git 同一电脑配置多个远程仓库
  16. 滴滴打车CTO张博:我们要这样玩社区和大数据
  17. Redis的expire(过期时间)
  18. 服务器怎么安装exis系统,exis 服务器安装
  19. 临时表空间不足ORA-01652: unable to extend temp segment by 64 in tablespace
  20. html页面导出pdf截断问题,前端导出pdf以及导出内容截断的解决办法

热门文章

  1. python 爬取豆瓣书籍信息
  2. python框架django书籍_【2020Python修炼记】web框架之 Django的ORM语法
  3. 关于quartz调度器
  4. 红色通信史(一):红色通信的萌芽
  5. Cygwin安装GCC、G++、Python、git、vim教程
  6. toco生成tflite模型
  7. PHP-设计模式-外观模式
  8. python 指针数组_向python类传递指针数组
  9. OpenCV-Python 图像缩放
  10. 性能测试知多少 | 什么是性能测试?性能测试原理是什么?指标都有哪些?如何进行测试?