HEVC学习之HM初使用

HEVC编码之HM学习

  • 欢迎一起学习HM
    • 1.如何下载HM
    • 2.搭配HM的运行环境
    • 3.HM生成解决方案
    • 4.HM环境配置
    • 5.对YUV视频进行编码
    • 6.运行HM
    • 7.查看HM生成的bin文件
    • 第一次学习HM,希望大家可以一起学习,谢谢!!!

欢迎一起学习HM

HM是HEVC的官方标准测试模型,想要对HEVC进行了解,需要对HM源码进行一定解读才能够更加深入。

1.如何下载HM

(1)HM不能直接下载,因为它是采用svn来管理代码的,因此需要利用svn下载,我们这里采用TortoiseSVN,TortoiseSVN的下载地址为:https://tortoisesvn.net/)。
下图是下载截图,有32和64位的,根据自己电脑系统位数下载相应版本。
HEVC学习之HM初使用_第1张图片
(2)下载并安装TortoiseSVN,在桌面右击,选择TortoiseSVN,打开repo-browser。然后,在弹出来的URL框填入HM的下载地址:https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/。
(3)最后就能看到HM相关文件夹,选择对应版本,右键选择“checkout”即可下载。所发布的HM版本在tags文件夹中

2.搭配HM的运行环境

HM源代码因为是C和C++混合代码,需要IDE打开才能运行,这里选择Visual Studiao,我的电脑装的是Visual Studio 2013。
首先找到自己下载的HM文件夹,然后打开build文件夹,可以看到里面有vs2010~vs2015各个版本的源代码,由于我的电脑是vs2015,我这里打开的是HM_vc2013.sln。
HEVC学习之HM初使用_第2张图片

3.HM生成解决方案

首先,双击打开HM_vc2013.sln,可以看到右侧出现了9个项目。
其中,
(1) TAppCommon 编码器和解码器共用的应用函数
(2) TAppDecoder 解码器的应用函数
(3)TAppDecoderAnalyser 解码器分析的应用函数
(4) TAppEncoder 编码器的应用函数
(5) TLibCommon 编码器和解码器共用的库函数
(6) TLibDecoder 解码器的库函数
(7)TLibDecoderAnalyser 编码器分析的应用函数
(8) TLibEncoder 编码器的库函数
(9) TLibVideoIO 视频输入、输出库函数
HEVC学习之HM初使用_第3张图片
右击 “解决方案’HM_vc2013’(9个项目)” ,选择 “属性”,选择单启动项目(S),选择TAppEncoder(这里是对其进行编码,后面如果对其进行解码的话,就选择 TAppDecoder),确定。
HEVC学习之HM初使用_第4张图片
然后,右击“解决方案‘HM_vc2013’(9个项目)”->”生成解决方案”。这里推荐选择Release,win64可选,这样运行会更快。
HEVC学习之HM初使用_第5张图片
生成成功后,在HM16.7下会生成一个“bin”文件夹,在bin\vc2013\Win64\Release中会有2个可执行文件:TAppEncoder.exe和TAppDecoder.exe
HEVC学习之HM初使用_第6张图片

4.HM环境配置

这里只是对编码部分进行配置。
首先,点击”调试“,选择”TAppEncoder属性“。
HEVC学习之HM初使用_第7张图片
在这之前需要在在HM文件夹下创建了一个workspace的文件夹作为工作目录,然后在工作目录栏选择刚刚新建的workspace工作目录路径,
HEVC学习之HM初使用_第8张图片
在命令参数栏中需要填写的是用到的配置文件名,包含2个:
编码器配置文件: encoder_intra_main.cfg,文件路径在你下载的HM文件夹下的cfg文件中。并把该文件复制到workspace中。
HEVC学习之HM初使用_第9张图片
HEVC学习之HM初使用_第10张图片

视频源配置文件:该用于指定输入yuv测试文件,分辨率,待编码帧数等。为了日后使用方便,我们在workspace中新建一个bitstream.cfg的配置文件。配置的编写复制cfg文件夹下per-sequence文件夹中的相应配置即可。并把名字改为bitstream.cfg。
HEVC学习之HM初使用_第11张图片
以下是配置文件:
HEVC学习之HM初使用_第12张图片
HEVC学习之HM初使用_第13张图片
在命令参数最后添加: >out.txt,中间有一个空格,这个是用于输出编码的一些参数。
HEVC学习之HM初使用_第14张图片

5.对YUV视频进行编码

首先需要有一个YUV格式的视频,如果没有YUV格式的视频,下载其他格式的也可以,网上有转换器可以转换成YUV格式,也可以用FFMPEG用命令进行转换,这里提供一个YUV视频下载地址:http://trace.eas.asu.edu/yuv/
下载好视频后,将视频的存放路径复制到刚刚设置的bitstream.cfg文件的InputFile参数后面,里面的参数不能乱改,SourceWidth和SourceHeight对应视频的宽高,FramesToBeEncoded是要编码的帧数,如下:
HEVC学习之HM初使用_第15张图片
HEVC学习之HM初使用_第16张图片

6.运行HM

点击运行,出现如下运行界面,即表示程序正常运行。
HEVC学习之HM初使用_第17张图片
运行结束后,在worksapce中会出现3个文件:str.bin、rec.yuv和out.txt。
其中,
rec.yuv是编码过程中重建的yuv图像。
str.bin是压缩后的二进制码流文件。
out.txt是编码基本信息文件。
HEVC学习之HM初使用_第18张图片
HEVC学习之HM初使用_第19张图片
HEVC学习之HM初使用_第20张图片

7.查看HM生成的bin文件

生成的bin文件可以利用各种工具进行查看,网上可以找到。
这里利用Elecard HEVC Analyzer观察分析str.bin:
打开Elecard HEVC Analyzer,选择刚刚生成的str.bin文件,效果如下图。
HEVC学习之HM初使用_第21张图片

第一次学习HM,希望大家可以一起学习,谢谢!!!

你可能感兴趣的:(视频编解码)