下载HM代码
https://vcgit.hhi.fraunhofer.de/jct-vc/HM
可以直接下载zip压缩包或者使用git clone
下载HEVC测试序列
https://pan.baidu.com/s/1zAbtVaA2fXLiGgoVlvMiMA 提取码:e671
运行HM代码
我这里使用的IDE是VS2017。
- 文件 - 打开 - 项目/解决方案
在弹出的对话框中选择刚刚下载的 HM-16.20/build/HM_vc2015.sln - 右键 解决方案HM_vc2015 选择 生成解决方案
这时候在HM-16.20\bin\vc2015\x64\Debug 目录下会生成许多相关文件。这里的x64是因为我编译的时候选择的是x64,如果你选的是Win32,则对应的目录是Win32。
- 将测试序列拷到该文件夹下,我这里选择的测试序列是BasketballPass_416x240_50.yuv,同时将HM-16.20\cfg\per-sequence\BasketballPass.cfg文件(与测试序列对应,测试序列相关参数)拷贝到该文件夹下,还有HM-16.20\cfg\encoder_intra_main.cfg(编码相关参数配置文件)也拷贝过来。最后该文件夹内容如下:
注意:这里之所以将文件都拷贝到该目录只是为了后续填写相关目录方便,并不是必须的操作。 - 对相关配置文件进行更改。打开BasketballPass.cfg,如下:
主要需要注意的有一下几点
InputFile 测试序列(可以是绝对路径,也可以是相对路径)
SourceWidth 分辨率(宽度)
SourceHeight 分辨率(高度)
FramesToBeEncoded 要编码的帧数
这里为了节省时间我们把FramesToBeEncoded的500改为10,即只编码10帧。其余的配置检查一遍都没问题就不需要改了。
另一个encoder_intra_main.cfg主要配置编码相关的参数,这里暂不需要改。 - 在VS2017 中右键TAppEncoder 选择 设为启动项目,表明我们想要对序列进行编码。
- 还是右键TAppEncoder,选择最下面的属性
并进行如下配置
这三个配置就是调用我们HM-16.20\bin\vc2015\x64\Debug目录下的TAppEncoder.exe并输入两个配置文件作为参数。 - 运行编码器
编码成功的界面:
总结
本文主要介绍了HM代码及测试序列的下载,还有相关编码器的运行。
更新
h.266(vvc)的参考软件VTM使用同上,不过下载地址有变化:https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM