tmc13是MPEG-PCC的点云压缩平台(Geometry-based (G-PCC),即基于几何的点云压缩),G-PCC 解决了静态点云和动态获取的点云中的点云压缩。本文记录在windows环境下如何配置、编译、使用tmc3。
一、软件准备
1、安装Visual Studio 2017:
官网下载链接:下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux (microsoft.com)
安装参考链接:https://blog.csdn.net/xucongyoushan/article/details/86030173
下载 community版本 ,安装完成登陆账号即可
2、Git
git是目前世界上最先进的分布式版本控制系统。
官方下载链接如下所示:Git - Downloads (git-scm.com)
安装教程可参考:https://blog.csdn.net/huangqqdy/article/details/83032408
Windows系统Git安装教程(详解Git安装过程)
安装完成即可。(下载git是为了在win0环境下运行shell脚本,生成配置文件的脚本存放在script文件夹下。)
也可以下载百度网盘上的版本。
链接:git-2.28.0-64-bit 提取码:psnx
3、CMake
CMake下载链接:https://cmake.org/download/
下载最新稳定的版本即可。
安装配置参考链接:https://blog.csdn.net/didi_ya/article/details/123029415
二、GPCC源代码
GitHub下载链接:https://github.com/MPEGGroup/mpeg-pcc-tmc13
测试数据下载:测试数据
提取码:amaf
三、生成所需配置文件
1、将mpeg-pcc-tmc13-master.zip解压后,打开git bash工具,如下图:
2、输入命令,进入到mpeg-pcc-tmc13-master\cfg目录下,如下图,
注意:不要直接粘贴路径,将反斜杠()改为斜杠(/)
【或者,直接打开进入到mpeg-pcc-tmc13-master\cfg文件夹下,在当前文件中右键点击git bash here】
3、输入如下命令,生成配置文件:
../scripts/gen-cfg.sh --all
问题
然后会提示出现缺少mudule文件:
说明缺少List::Moreutils module,需要在 …\Git\usr\share\perl5\core_perl (安装GIT的路径)路径下添加缺少的module。
解决方法
因为出现上述报错的原因是安装git时会自动安装perl,但是git自带的perl版本缺少部分依赖,因此可以把缺少的依赖文件添加上。在网站 meta::cpan 下载需要的module。
以List::MoreUtils为例,进入网页后输入“List::MoreUtils” 搜索,如下图:
点击检索到的内容进入,如下图:
点击download下载,如下图:
下载后将压缩包解压后,进入lib目录:
将lib目录下的List文件夹复制到Git安装目录 ** Git\usr\share\perl5\vendor_perl **(安装Git的路径)下,复制后,如下图:
再执行命令,
../scripts/gen-cfg.sh --all
这里还会有其他模块报错,使用上述步骤相同方法,将对应文件夹复制到Git安装目录下即可。
当输入…/scripts/gen-cfg.sh没有错误后,然后执行
../scripts/gen-cfg.sh --all
生成不同几何属性等配置文件。
最后执行成功后:
上述配置文件被打包放在了百度网盘中:
链接:https://pan.baidu.com/s/1SC7ofp0nsjOfzKYgyD65Ug
提取码:u6jd
4、查看mpeg-pcc-tmc13-master\cfg目录下有生成相关的配置文件
四、编译运行
1、CMake编译工程文件
打开cmake工具,选择tmc3源码路径,点击** configure **,(1是源代码位置,2是编译生成后的存放位置),如下图:
选择yes创建build目录,然后选择vs环境,点击finish,如下图
点击configure,然后点击generate
2、编译配置好后,在搜索栏里面输入cmd,打开命令提示符,进入目录mpeg-pcc-tmc13-master\build\tmc3\Debug(如果编译的是Release,则进入mpeg-pcc-tmc13-master\build\tmc3\Release目录)
3、将一帧点云数据放入工作目录下,在cfg文件夹中找到对应编码文件encoder.cfg和解码文件decoder.cfg也放入工作目录下。
(1)进入配置目录 ** mpeg-pcc-tmc13-master\cfg **,选择需要编码的参数文件,如下图:(其中octree-predlift是基于八叉树几何编码和预测提升变换属性编码,octree-raht是基于八叉树几何编码和区域自适应分层变换编码)。
以octree-predlift为例,进入该目录,如下图:(该目录下各文件夹分别表示无损/有损几何编码和无损/有损属性编码)
例如:用静态点云people中soldier数据集,选择有损几何和有损属性编解码,进入该文件夹,如下图,将下面的三个文件复制到mpeg-pcc-tmc13-master\build\tmc3\Debug目录下。
具体就是将以上图中三个文件从mpeg-pcc-tmc13-master\cfg\octree-predlift\lossy-geom-lossy-attrs\soldier_vox10_0690\r05 拷贝到项目文件夹mpeg-pcc-tmc13-master\build\tmc3\Debug 目录下。
r5是QP=28的编解码参数文件(查看encoder.cfg可知QP值等参数,选择哪种参数文件根据需求决定)
(2)解压缩之前下载的测试数据压缩包,找到people,解压缩后找到soldier_vox10_0690压缩包,解压出需要压缩的点云源文件:soldier_vox10_0690.ply,复制到mpeg-pcc-tmc13-master\build\tmc3\Debug 目录下。如下图所示:
(3)回到cmd命令界面,执行如下命令进行压缩,(其中encoder.cfg表示编码配置文件,uncompressedDataPath表示输入文件路径,compressedStreamPath表示输出文件路径)
压缩过程
tmc3.exe -c encoder.cfg --uncompressedDataPath="soldier_vox10_0690.ply" –compressedStreamPath="encodeCompressed.bin"
压缩完成后,生成的encodeCompressed.bin文件为压缩文件,如下图,
解压缩
执行如下命令:
tmc3.exe -c decoder.cfg --compressedStreamPath=" encodeCompressed.bin" --reconstructedDataPath="decodeOut.ply"
解压缩完成后,生成decodeOut.ply文件,如上图黄色框。
(4)压缩前后文件属性对比:
其他对比还在总结中。。。。。
参考链接
GPCC入门说明_凡心_07的博客-CSDN博客_gpcc
G-PCC点云压缩 tmc3参考软件编解码使用介绍_点云渣的博客-CSDN博客_g-pcc