一、HM安装及使用
1.下载HM
需要手动cmake:
jvet / HM ·GitLab (fraunhofer.de)
(建议)直接下载包含解决方案的代码(用SVN下载)
svn_HEVCSoftware - Revision 4998: /tags (fraunhofer.de)
SVN下载界面如下图,选择需要的版本下载
2.cmake(如果直接使用下载的解决方案则不需要cmake)
下载后在命令行进入项目根目录,运行以下命令
mkdir build
cd build
cmake .. -G "Visual Studio 16 2019" -A x64
build文件夹中会出现
或者使用CMake的GUI界面
选择路径后,点击Configure,done之后点击Generate,在build文件夹会出现和上面一样的文件
3.编译
在vs中打开生成的解决方案bin/HM.sln后,右击->生成解决方案(注意要选择x64)
(使用手动cmake生成的解决方案会报错,不知道怎么解决)
生成成功后\bin\vc2015\x64\Debug文件夹中会出现许多相关文件
4.编码
编码有两种方式,一种是在VS里进行编码操作,另一种是利用.bat文件进行编码
把视频序列以及如下文件拷到D:\HM-master\bin\vs16\msvc-19.29\x86_64\debug中
要找与输入的测试序列名相同的cfg文件
测试序列相关参数文件:cfg\per-sequence\BasketballPass.cfg
编码相关参数配置文件:cfg\encoder_intra_main.cfg(帧内)encoder_randomaccess_main(帧间)
方法一:
通过VS进行编码
将TAppEncoder设为启动项,右击属性->调试,将工作目录改为Debug,命令参数改为
-c encoder_intra_main.cfg -c BasketballPass.cfg -q 27 -f 50 >BasketballPass_27.txt
-c 编码配置文件 -c 视频配置文件 -q 量化参数 -f 编码帧数 > 输出文件名
注意修改的时候要看好右上角的配置是否是debug!!!
修改完成后,在VS中运行即可进行编码,编码后在Debug文件中生成编码信息文件,包括一个yuv文件和一个bin文件,使用时间、比特率、PSNR等。
生成的文件名可以在这里改,也可以直接在命令中加上-o xxx.yuv -b xxx.bin
方法二:
通过.bat文件进行编码
新建一个txt文件,输入如下命令后,将其后缀改为.bat,直接双击运行即可
EncoderApp.exe -c encoder_randomaccess_main.cfg -c BasketballDrillText.cfg -q 22 -o test.yuv -b test.bin >test.txt
5.解码
解码则将DncoderAPP设为启动项,在属性->调试界面输入命令参数和工作路径,工作路径与编码的路径一致,命令参数输入
-b str.bin -o dec.yuv
二、VTM安装及使用
1.VTM下载
jvet / VVCSoftware_VTM · GitLab (fraunhofer.de)
其余步骤和HM一模一样,一定要cmake
VVC的设置
参数TemporalSubsampleRatio : 8
表示降采样,每8帧编码一帧,如果设为1,则类似HM,全部编码。