一、实验环境
1.系统:windows
2.软件安装:visual studio,git,Cmake(可自行网上搜索下载安装)
参考:Visual Studio 2017安装使用方法_visual studio2017怎么安装.net4.6_独孤过的博客-CSDN博客
windows下cmake的安装教程_向阳+的博客-CSDN博客
Git下载、安装与环境配置_git 配置_糖葫芦的小黑屋的博客-CSDN博客
3.源代码:https://github.com/MPEGGroup/mpeg-pcc-tmc13
二、 配置文件下载
1.生成编解码参数文件
打开mpeg-pcc-tmc13-master\cfg,在当前文件中右键打开git bash here,输入:
../sctipts/gen-cfg.sh
可能会出现缺失文件的错误:
在https://metacpan.org/author/REHSACK网站下搜索下载需要的module
将下载的module下的lib文件夹下的所有内容复制到Git\usr\share\perl5\core_perl(安装GIT的路径)路径即可。
没有错误后,然后执行:
../scripts/gen-cfg.sh --all
生成不同几何属性等配置文件
2.cmake编译工程文件
在代码文件相同目录下创建工作文件夹,打开camke,点击configure,如下错误可忽略,点击generate即可:
3.编解码
将一帧点云数据放入工作目录下,在cfg文件夹中找到对应编码文件和解码文件也放入工作目录下。(我用的是longdress这一帧点云,下图选择的是有损几何有损属性,r级别代表不同的qp值,pcerror这个文件不知道有什么用处,在结果中并没有计算点云的失真,仔细看了代码G-PCC并没有计算失真的地方)
debug模式:
右键设置tmc3为启动项,右键属性
编码参数:
-c encoder.cfg --uncompressedDataPath="longdress_vox10_1300.ply" --compressedStreamPath=compressed.bin
编码结果:
生成 compressed.bin文件
解码参数:
-c decoder.cfg --compressedStreamPath=compressed.bin --reconstructedDataPath="chongjian.ply"
生成重建结果:
小问题:
在选择有损几何压缩时,重建的点数和原始点云时不一致的;使用无损压缩,点数是不变的,但是我通过将原始点云与重建点云做残差,发现几何坐标的差异非常大(以下是x方向的分布):
我曾一度怀疑无损是否是真的无损,当用点云度量软件测试之后,其失真的确为0,我不免陷入沉思。
后面仔细研究之后发现,其实是压缩之后,坐标的位置顺序变化了,也就是说点的坐标并没有变,只是顺序打乱了,按照对应顺序直接相减得到残差的方法就不对了。(重建得到的点能在原始点云中找到对应的点,但是所在行发生了变化)