记录了 HM 软件的安装过程。
HEVC
高效视频编码(HEVC)是ITU-T视频编码专家组(ITU-T Q.6/SG 16) 和 ISO/IEC运动图像专家组 (ISO/IEC JTC 1/ SC 29/WG 11) 成立了视频编码联合协作小组(JCT-VC)来开展该项目。该小组的范围已扩展为继续研究格式范围扩展 (RExt)、可扩展HEVC (SHVC) 和屏幕内容编码 (SCC) 作为 HEVC 的扩展。HEVC 标准的第一个版本于 2013 年 4 月完成。HEVC 的第二个版本,包括RExt、SHVC和MV-HEVC扩展,于 2014 年 10 月完成。包括3D-HEVC扩展在内的第三版HEVC已于 2015 年 2 月完成。
HM
HM(HEVC Test Model)是官方定义的HEVC参考软件,包括编码器和解码器功能。
HM软件有助于帮助视频编码标准的用户建立和测试一致性和可操作性,具有用于教育和展示标准的功能。该软件由ITU-T 视频编码专家组(VCEG,ITU-T 第 16 研究组第 6 题)和 ISO/IEC运动图像专家组(MPEG,ISO/IEC 第 29 分委员会第 11 工作组)联合开发联合技术委员会),由联合视频专家组 (JVET) 维护,该组是 ITU-T 视频编码专家组(VCEG,ITU-T 第 16 研究组的第 6 题)和 ISO/IEC 运动图像专家组(MPEG , ISO/IEC 联合技术委员会 1) 第 29 分委员会第 5 工作组。
实验环境
-
实验软件:HM 16.20,Vitural Stuidio 2019
-
实验设备:Legion Y7000 2019 PG0。
-
操作系统:Windows 10 家庭中文版20H2版本
HM安装步骤及操作说明
Tortoise SVN下载
HM采用SVN进行代码管理,不能直接从网页下载。因此需要利用SVN软件下载。Tortoise SVN下载链接:https://tortoisesvn.net/ 。打开链接后,点击 Download 标签栏,在出现的下载选项中选择合适的版本进行下载。

HM下载
完成上一节的下载后,回到桌面,右键空白处即可看到Tortise SVN选项,如图2所示。点击后进入Repo-browser,在弹出的URL输入框中输入HM的下载地址:https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/ 。输入后点击OK,可以获得不同版本的HM软件,如图3所示。选定合适的版本后右击其对应的文件夹,点击Checkout即可下载。


HM安装
完成HM下载后,打开对应的文件夹,进入 build 文件夹,如图4所示。其中包含了不同环境下的编译文件,支持Linux系统和Windows系统。根据电脑中存在的编译环境,选择并打开 HM_vc2015.sln 文件。

打开sln文件后,可以看到解决方案资源管理器中有10个项目,如图5所示。右击 解决方案”HM_vc2015”,选择 属性,选择 单启动项目,单启动项目中选择 TAppEncoder,如图6所示。此处为对其进行编码。如果需要进行解码,则在单启动项目中应选择AppDecoder。点击 确定 保存设置。完成后右击 解决方案,在弹出的菜单栏中点击 生成解决方案。
生成解决方案成功后,在 HM 文件夹下会生成一个 bin 文件夹。进入 bin 文件夹,看到有一个 vc2015 文件夹。继续进入 vc2015 文件夹,点击 Win32 文件夹,可以看到 debug 文件夹。进入 debug 文件夹,可以看到有两个可执行文件 TAppDecoder.exe 和TAppEncoder.exe


编码配置
完成上述步骤后,回到 Virtual Studio 软件。点击顶部菜单栏中的 调试,选择 TAppEncoder调试属性 ,在配置属性中点击 调试 进行配置。这里需要更改 工作目录 和 命令参数。在配置工作目录时,需要现在 HM 文件夹下创建一个 workspace 文件夹作为工作目录,再在工作目录中选择新建的 workspace 路径。在命令参数中输入:
-c encoder_intra_main.cfg -c bitstream.cfg> >out.txt
并将 HM 文件夹中 cfg 文件夹里的 encoder_intra_main.cfg 文件复制到 workspace 文件夹下。此外,还需要在 workspace文件夹下新建 bitstream.cfg 文件。bitstream.cfg 文件格式可以直接复制 HM 文件夹中 per-sequence 文件夹下的任意配置文件。bitstream.cfg 文件的内容如下所示。
#======== File I/O ===============
InputFile : E:\HM-16.20+SCM-8.8\workspace\yuv\salesman_qcif.yuv
InputBitDepth : 8 # Input bitdepth
InputChromaFormat : 420 # Ratio of luminance to chrominance samples
FrameRate : 50 # Frame Rate per second
FrameSkip : 0 # Number of frames to be skipped in input
SourceWidth : 176 # Input frame width
SourceHeight : 144 # Input frame height
FramesToBeEncoded : 449 # Number of frames to be coded
Level : 3.1
其中,参数由上至下分别为输入文件路径、位深度、亮度与色度比值、帧率、输入帧跳过帧数、输入帧宽度、输入帧高度以及编码帧数。这些参数需要根据输入的文件进行调整。
完成上述步骤后,就可以对YUV文件进行编码了。
YUV到HEVC的编码过程和结果分析
YUV视频下载
YUV视频可以通过网址 http://trace.eas.asu.edu/yuv/ 进行下载。该网址中还提供了我们所需要的 YUV 视频的各种参数。下载好视频后,将其放在 workspace 的 yuv 文件夹中,并将文件路径和参数更新到 bitstream.cfg 文件中。
HEVC编码
完成5.1节中的操作后,回到 Visual Stuidio,按下 Ctrl + F5 开始执行。执行后会弹出一个命令行窗口,如图7所示。

完成执行后,在 workspace 文件夹下会多出3个文件,分别为 out.txt,rec.yuv,str.bin。out.txt 文件是基本编码信息的输出文件,包含编码后的比特数、编码信息、编码时间等各种信息。rec.yuv 是编码过程中重建的YUV图像。str.bin 是压缩后的二进制码流文件。可以利用 Elecard HEVC Analyzer 软件进行查看,软件下载链接为:https://elecard-hevc-analyzer.software.informer.com/download/。
5.3 结果分析
使用Elecard HEVC Analyzer打开str.bin文件后,得到的结果如图8所示。左上角选择chart bar可以查看每帧视频码流的分配情况。thumbnails可以查看视频的缩略图以及对应的编码索引和时间索引,左侧可以看到帧级别的统计信息,如色度、格式、分辨率、各类行帧所分配的比特比率等,并可以更换查看vps、sps等其他级别的信息,右侧可以查看cu级别的信息,包括块的位置、尺寸、预测方向等。

