VTM版本:15.0
操作系统:Win10 x64位
IDE:Visual Studio 2019
编译器:cmake
利用VS2019运行VTM15.0
前言
初次学习使用H.266/VVC参考软件(VTM15.0),记录详细过程,避免遗忘。
ECM软件的编译过程与VTM类似,可参考如下过程。
一、下载VTM15.0
VTM下载地址:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM
点击下图左侧选择VTM版本,然后点击右侧下载选择下载格式(zip、tar.gz、tar等,我选择zip)
补充ECM参考软件下载地址:
https://vcgit.hhi.fraunhofer.de/ecm/ECM/-/tags/ECM-6.0
下载之后可以先解压,放置在你想保存的文件夹,我的保存位置是D:\VVC_study\VVCSoftware_VTM-VTM-15.0(后面使用cmake编译是需要用到此位置的),可以在此目录下新建文件夹build,cmake编译后会在build里生成相应的编译文件(cmake编译时需要此build目录,即D:\VVC_study\VVCSoftware_VTM-VTM-15.0\build)。
二、下载安装cmake
阅读VTM参考软件的手册software-manual(在目录D:\VVC_study\VVCSoftware_VTM-VTM-15.0\doc中),知道编译VTM的方法之一是使用cmake,这种方法比较简单,下面使用此方法编译VTM。
1. 下载cmake并安装
选择x64位的版本,如下图黄色标记的Files,然后双击msi文件出现对话框后选择“运行”,我设置的安装目录是D:\VVC_study\CMake。
安装过程中需要勾选“把cmake加入系统变量”这一选项,这样在安装结束后就无需再把cmake相关路径加入到系统变量中。
2. 检查cmake是否安装成功
win+r后输入cmd:然后命令行输入cmake,若出现如下信息表明cmake安装成功,接下来就可以使用cmake编译VTM。
三、VTM编译
至此正确编译VTM的所有准备工作已结束,下面是具体的编译步骤。
编译方法可打开cmake软件,使用对话框方式,也可使用命令行方法,但是初学者对命令行方法比较陌生,因此这里采用对话框方法。
1. 打开cmake-gui.exe
在cmake安装目录的bin文件夹双击打开exe文件
2. 设置待编译的VTM路径以及VS版本配置
首先黄色标记的第一行路径是VTM根目录的路径;
第二行路径是在VTM根目录下新建build的路径,设置完两个路径之后点击下面的Configure,就会出现另一个对话框,要求配置VS版本,选择与系统安装VS版本一致的(VS2019),然后选择x64位,也是得与系统一致,最后勾选第一项“use default native compilers”,点击Finish。
(第一次编译时中间的Name和Value是空白的,因为我已经编译成功,这是第二次打开,所以就显示了Configuring done,以及显示了中间的文件。)
3. 生成build文件
点击Generate,显示Generating done表示配置成功,此时已在build文件夹生成相应的编译文件(注意bin文件夹是在后面sln工程里生成解决方案时才有的,此时是没有的)。若cmake编译之后没有build文件里的相关编译文件,则表明编译出现错误,需要重新编译。
(若第一次编译,在Generating done之后,中间的Name和Value显示红色背景,包含的文件与下图相同。)
【补充命令行方法】
第一,win+R后cmd进入命令行窗口,然后进入VTM参考软件存放的目录(比如:cd D:\VVC_study\VVCSoftware_VTM-VTM-15.0);
第二,输入
mkdir build
(即在此目录下创建build文件夹,存放cmake编译的工程);
第三,输入
cd build
cmake .. -G "Visual Studio 16 2019"
(“Visual Studio 14 2015 Win64”)或( “Visual Studio 15 2017 Win64”)
4. 打开build文件的sln工程进行编译
使用cmake成功编译之后,在build文件夹可以找到VTM的sln工程,打开方式为VS2019。
第一步:右击EncoderApp,设置为启动项目;(编译方式默认Debug,可改为Release,区别是Release编译速度比Debug快,后面学习代码需要设置断点时必须为Degub模式)
第二步:点击生成或重新生成,此时工程会生成EncoderApp的可执行文件,VTM根目录会出现bin文件夹,此时生成的EncoderApp.exe在bin路径下(D:\VVC_study\VVCSoftware_VTM-VTM-15.0\bin\vs16\msvc-19.29\x86_64\release)。
第三步,若生成整个解决方案,则会出现其他exe,比如,设置DecoderApp为启动项目,生成exe的结果与EncoderApp相同。
第四步:ctrl+F5 运行程序,命令行显示运行结果,包括各种工具的激活状态等。
EncoderApp.exe:编码器
DecoderApp.exe:解码器
总结
以上是H.266/VVC参考软件VTM的下载、安装、编译的过程,之后可在此基础上修改编码器的输入输出参数,进行调试。
ECM编译过程类似,可参考上述步骤。