TMC2参考软件编译

TMC2是点云编码的参考软件,我的电脑的操作系统是Windows10,使用的工具是Visual Studio 2019,TMC2的编译过程大致分为以下几步:

1. 参考软件的下载,包括TMC2,以及TMC2调用的HM和HDRTools共3个参考软件

    我是根据 N18665_PCC_CTC.doc 这篇文档上的链接来下载对应版本的软件的,链接如下:

    TMC2:http://mpegx.int-evry.fr/software/MPEG/PCC/TM/mpeg-pcc-tmc2.git

    HM    :https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/HM-16.20+SCM-8.8

    HDRTools:https://gitlab.com/standards/HDRTools/tags/v0.18

    注:以上材料下载不到的话直接去百度云上下载吧。。。

    链接:https://pan.baidu.com/s/1gLPmOlbOlJb2WG8MUxA7uw 提取码:vgnb

    下载完成后,新建一个文件夹TMC2_test,将TMC2的压缩包解压到TMC2_test中,再在TMC2_test中新建external文件夹,

    将HM和HDRTools解压到external中,然后在TMC2_test中新建ply文件夹,用来存放待编码的点云序列,我这里存放

    loot_vox10_1000.ply 到 loot_vox10_1009.ply 共十帧ply文件

    注:TMC2需要账号密码才能下载(我也没有),HM要用TortoiseSVN来下载

2. 生成可执行文件( .exe ),都以Release版本举例

    2.1 生成TMC2可执行文件:

    打开解TMC2解压后的文件夹 -- 新建 build 文件夹 -- 打开命令行,使用cd命令切换到 build 目录下 -- 根据自己的VS版本在命令

    行输入如下命令:VS2019就输入:cmake .. -G "Visual Studio 16 2019"

                                 VS2017就输入:cmake .. -G "Visual Studio 15 2017 Win64"

                                 VS2015就输入:cmake .. -G "Visual Studio 14 2015 Win64"

     执行命令完成后会发现build文件夹下生成sln文件,双击打开 -- 选择Release,x64(VS上方的菜单中有两个下三角选项,一

     个用来选择是生成Release还是Debug版本的可执行文件,Release版本速度很快,Debu版本用来调试;另一个选项就选 x64

     就可以了,应该会快一点)-- 直接按快捷键 F7 生成解决方案(或者点击 生成 -- 生成解决方案 ),可以在TMC2解压后文件

     夹的 bin 目录下的 Release 目录下发现生成的可执行程序

     2.2 生成HM的可执行文件

     虽然 N18665_PCC_CTC.doc 这篇文档中有说到要给HM打上一个补丁,但是我发现不打补丁也可以正常运行,因此我的博客

     中省去了打补丁的步骤(注:打补丁的方法参考这篇博客 https://blog.csdn.net/machuang1996/article/details/100773444

     具体做法就是在Linux操作系统下,先使用cd命令切换到HM的目录下,然后在命令行输入 svn + patch + patch文件所在的路

     径,回车。亲测这个方法可以正确给HM打补丁。但是目前为止我还没有使用打过补丁的HM来压缩点云序列),对了,

     在TMC2解压目录下的 -> dependencies -> hm-modification 目录下有两个patch文件,两个分别都试一下,哪个能用就用哪个

     -----------------------------------------------------接下来才是真正的生成HM可执行文件的步骤-------------------------------------------------

     来看看如何生成HM的可执行文件:打开解压后的HM的文件夹 -- 打开 build 文件夹,打开sln文件,由于HM只是被TMC2调用

     的,只追求速度最快就好,因此选择Release,x64 -- 在TAppEncoder项目上右击,选择属性,可以看到 配置属性 -> 常规

     -> 输出目录这一栏有一长串地址,为了让路径变的简单,我这里删去了后面多余的路径,只保留到了bin目录下面 -- 对于

     TAppDecoder 执行相同的操作 -- F7编译,可以发现 bin 目录下生成了两个exe

     2.3 生成 HDRTools 的可执行文件

     打开解压后的HDRTools的目录,打开sln,因为同样只是被TMC2调用,所以也选择Release,x64,经查看发现项目的输出目

     录原本就在 bin 目录下,因此直接F7编译生成可执行文件即可

3. 运行,分为Release版本和Debug版本下的运行

    为了方便寻找目录,在 TMC2 解压后的目录下 -- 打开 cfg 文件夹 -- 打开 sequence 文件夹 -- 调用了哪个序列的配置文件,就

    打开哪个配置文件,这里我打开 loot_vox10.cfg ,将 uncompressedDataPath 的值修改为 loot_vox10_%04d.ply

    3.1 Release版本的运行

    编码

    打开powershell(不知道怎么打开就去百度)-- 使用cd命令切换到 TMC2 解压后的文件夹下,复制以下命令行(其中

    frameCount=1 是编码1帧的意思,想编几帧就改成几,由于我的电脑配置还可以,再加上使用的都是Release版本的exe,

    因此编码1帧只用了1分多钟,还是挺快的,但是如果是Debug版的跑一帧就要运行二十分钟。。):

    注:第一个配置文件好像只能用ctc-common.cfg,用其他的会出错,不知道为什么

./bin/Release/PccAppEncoder.exe --configurationFolder=cfg/  --config=cfg/common/ctc-common.cfg  --config=cfg/condition/ctc-all-intra.cfg  --config=cfg/sequence/loot_vox10.cfg --config=cfg/rate/ctc-r3.cfg --uncompressedDataFolder=../ply/ --frameCount=1 --videoEncoderPath=../external/HM-16.20+SCM-8.8/bin/TAppEncoder.exe --colorSpaceConversionPath=../external/HDRTools-v0.18/bin/HDRConvert.exe --reconstructedDataPath=S26C03R03_rec_%04d.ply --compressedStreamPath=S26C03R03.bin --keepIntermediateFiles=1 --apply3dMotionCompensation=0

   解码

   使用powershell在同样的路径下,复制以下命令行:

./bin/Release/PccAppDecoder.exe --compressedStreamPath=S26C03R03.bin --videoDecoderPath=../external/HM-16.20+SCM-8.8/bin/TAppDecoder.exe --colorSpaceConversionPath=../external/HDRTools-v0.18/bin/HDRConvert.exe --inverseColorSpaceConversionConfig=cfg/hdrconvert/yuv420torgb444.cfg --reconstructedDataPath=S26C03R03_dec_%04d.ply --keepIntermediateFiles=1

   3.2 Debug版本的运行

   运行Debug版本是为了能够调试,方便看代码

   编码

   打开TMC2,选择Debug,x64 -- PccAppEncoder项目上右击 -- 设为启动项目 -- 再右击 -- 属性 -> 配置属性 -> 调试 -- 修改工作

   目录,改为 $(SolutionDir).. -- 再添加命令参数如下:

--configurationFolder=cfg/  --config=cfg/common/ctc-common.cfg  --config=cfg/condition/ctc-all-intra.cfg  --config=cfg/sequence/loot_vox10.cfg --config=cfg/rate/ctc-r3.cfg --uncompressedDataFolder=../ply/ --frameCount=1 --videoEncoderPath=../external/HM-16.20+SCM-8.8/bin/TAppEncoder.exe --colorSpaceConversionPath=../external/HDRTools-v0.18/bin/HDRConvert.exe --reconstructedDataPath=S26C03R03_rec_%04d.ply --compressedStreamPath=S26C03R03.bin --keepIntermediateFiles=1 --apply3dMotionCompensation=0

  然后关键的一步!!将 PccLibEncoder 项目中 PCCPatchSegmenter.cpp 文件下的第316行内容为:

  assert( enablePointCloudPartitioning && patchExpansionEnabled == false );  的这一行给注释掉!!不然会报错

  然后 ctrl + F5 运行即可(我实验室的电脑跑一帧大概20分钟)

  解码

  将 PccAppDecoder 设为启动项目,工作目录同样修改为 $(SolutionDir).. ,命令参数如下:

--compressedStreamPath=S26C03R03.bin --videoDecoderPath=../external/HM-16.20+SCM-8.8/bin/TAppDecoder.exe --colorSpaceConversionPath=../external/HDRTools-v0.18/bin/HDRConvert.exe --inverseColorSpaceConversionConfig=cfg/hdrconvert/yuv420torgb444.cfg --reconstructedDataPath=S26C03R03_dec_%04d.ply --keepIntermediateFiles=1

  有了编码产生的 bin 文件的话,直接运行就好啦

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值