Linux下运行VTM

Linux下运行VTM

  • 下载参考软件
  • cmake
  • 编译
    • 解决方法1
    • 解决方法2
  • 运行

下载参考软件

首先下载VTM,可以压缩包,也可以使用git clone,仓库地址为:https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM.git
其中直接下载会是最新的版本,目前是VTM4.0, 如果想要切换到之前的历史版本,比如VTM3.0, 在下载后切换tag,注意不是切换分支branch。它们的区别在于:tag是对历史提交的一个id的引用,相当于是一个快照,是不能更改它的代码的,但是branch可以。
Linux下运行VTM_第1张图片

  • 查看所有tag:
    git tag  //查看tag
  • 切换到某一个tag
    git checkout tag
    Linux下运行VTM_第2张图片

cmake

第二步,进入VTM目录下,进行cmake(具体步骤以及其他平台可以看官方gitLab How to build VTM部分:https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM):
记得先看下cmake版本,升级以下,太低版本的cmake会报错。

cd build

生成release编译器:
cmake .. -DCMAKE_BUILD_TYPE=Release

生成debug编译器:
cmake .. -DCMAKE_BUILD_TYPE=Debug

编译

第三步,对source中的代码进行编译:

cd build
make -j

这里遇到一些问题,windows平台下运行没有问题的代码在linux下面由于G++设置会报error:
在这里插入图片描述

解决方法1

在Makefile中找到 -Werror项,删除即可。删除后重新编译。
Makefile由于VTM和HEVC中目录不太一样,可以直接搜Werror:

   grep -r Werror ./

   格式:  grep -r 字符 目录

在这里插入图片描述根据搜索的结果显示的目录,找到对应文件把 -Werror项删除即可。

sed -i "s/ -Wno-class-memaccess/ /g" `grep " -Wno-class-memaccess" -rl .`

格式:
sed -i "s/源字串/目标字串/g"  `find . -type f | xargs grep -ri "源字串"`
find /yourfolder/subdir -exec {sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`}

解决方法2

或者直接在windows下把代码写规范,把未使用的变量定义删干净,再拖过去linux下面跑。
先解压命令:

unzip filename.zip

cd build
make -j

运行

顺利生成EncoderApp之后就可以开始运行,配置规则和windows下面一致。

./EncoderApp -c encoder_intra_vtm_qp22.cfg -c SlideEditing.cfg > SlideEditing_logfile_22.txt

可以将以上命令直接写进sh文件,比如命名run_qp22.sh,运行命令直接:

sh run_qp22.sh

如果对不同qp或者序列并行运行脚本,并行命令:

(sh run_qp22.sh &); (sh run_qp27.sh &); (sh run_qp32.sh&); (sh run_qp37.sh&)

你可能感兴趣的:(视频压缩编码,VTM)