HEVC——HM的运行

时间:2024-04-13 12:09:09

1,HM下载
(1) HM不能直接网页下载,因为它是采用svn来管理代码的,因此需要利用svn下载,这里采用TortoiseSVN(软件下载地址为https://tortoisesvn.net/)进行下载。
HEVC——HM的运行

(2) 下载并安装TortoiseSVN,在桌面任意位置右键,打开repo-browser
HEVC——HM的运行

(3) 在弹出来的URL框填入HM的下载地址:https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/
HEVC——HM的运行

(4) 然后就能看到HM相关文件夹,所发布的HM版本在tags文件夹中
HEVC——HM的运行

(5) 在需要的版本中右键选择“checkout”,即可进行下载。这里选择的是最新版HM-16.17
关于版本,可以看到早期版本中有“RExt”字样,RExt表示Format Range Extension,用于支持4:0:0,4:2:2,4:4:4的颜色空间和额外比特深度。但到HM16.0后,RExt已经并入HM主线,因此不再单独列出RExt。而对于有”SCM”字样版本,即包含SHVC,MV-HEVC,3D-HEVC版本分支。

2,HM运行环境的搭建
在HM16.7->build文件夹下,可以看到如下文件:
HEVC——HM的运行
以上表明的是支持的编译环境,我们选择的是vc2013,安装vc2013即可。

3,HM运行
(1) 双击打开HM_vc2013.sln,可以看到右侧出现了9个项目。这些项目功能日后在讨论。
HEVC——HM的运行

(2) 右击“解决方案‘HM_vc2013’(9个项目)”->”生成解决方案”。debug,win32可选,与系统是否是64位的无关,不影响工程运行。
HEVC——HM的运行
生成成功后,在HM16.7下会生成一个“bin”文件夹,在bin\vc2013\Win32\Debug中会有2个可执行文件:TAppEncoder.exe和TAppDecoder.exe

3) 我们主要研究对象是HEVC编码器,即把yuv格式码流编码成HEVC格式数据。因此主要关注TAppEncoder.
右击解决方案中“TAppEncoder”->“设为启动项目”
再右击“TAppEncoder”->”属性”->”配置属性”->”调试”
工作目录栏指定工作目录路径,这里在HM16.7下创建了一个workspace的文件夹作为工作目录。
命令参数栏中需要填写的是用到的配置文件名,包含2个:
编码器配置文件: encoder_intra_main.cfg,文件路径:D:\HEVC\HM16.7\cfg。并把该文件复制到workspace中。
视频源配置文件:该用于指定输入yuv测试文件,分辨率,待编码帧数等。为了日后使用方便,我们在workspace中新建一个bitstream.cfg的配置文件。配置的编写复制HM16.7\cfg\per-sequence中的相应配置即可。如,我们需要压缩BasketballDrill视频文件,则打开BasketballDrill.cfg并把其中的配置复制到bitstram.cfg中。但注意要修改InputFile的地址,这个后面会提到。
HEVC——HM的运行
HEVC——HM的运行

(4) 接下来就是添加视频源文件。
视频源文件下载地址1:http://ftp.kw.bbc.co.uk/hevc/hm-15.0-anchors/bitstreams/i_main/ ;
该地址下载下来的是.bin格式的265压缩文件,需经265解码器解码成yuv格式文件才可为编码器使用。
视频源文件下载地址2:https://pan.baidu.com/share/link?shareid=976413622&uk=204312922#list/path=%2F
该地址下载下来的是.yuv的yuv文件,可用于265编码器编码。这里下载了一个BasketballDrill_832x480_50.yuv文件用于编码测试

(5) 在HM16.7\cfg\per-sequence中找到BasketballDrill.cfg,并把其中的配置复制到bitstream.cfg
修改bitstream.cfg中的配置:
InputFile修改为码流路径,注意路径不能有中文字符,斜线方向不影响。
FramesToBeEncoded修改为5.即只编码5帧,以缩短编码时间。
HEVC——HM的运行
也可修改encoder_intra_main.cfg中的配置:
把QP修改为51,以减小压缩后码流。
HEVC——HM的运行
注意:以上配置不能乱改,一旦不满足规范,则程序无法正常运行。
如IntraPeriod和GOPSize这两个参数的修改就有点复杂,一些都选1,即都是I帧,如果不是,还要设置一些参数,而不是简单改变数值。例子见encoder_lowdelay_main_rext.cfg。

(6) 点击运行,出现如下运行界面,即表示程序正常运行。
HEVC——HM的运行
运行结束后,在worksapce中会出现2个文件:str.bin和rec.yuv。其中rec.yuv应该是编码过程中重建的yuv图像,str.bin则是压缩后的码流。
可利用Elecard HEVC Analyzer观察分析str.bin:
HEVC——HM的运行
也可以利用YUV Player观察原始yuv数据BasketballDrill_832x480_50.yuv,与压缩后图像进行对比
HEVC——HM的运行

1,HM下载
(1) HM不能直接网页下载,因为它是采用svn来管理代码的,因此需要利用svn下载,这里采用TortoiseSVN(软件下载地址为https://tortoisesvn.net/)进行下载。
HEVC——HM的运行