HEVC学习(一)HM模型代码下载,HEVC协议下载,HM模型运行
2014-09-27 01:08
465 查看
hevc
HM模型下载网址:https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/,
注:这个网址下有各个版本的HM,到目前为止,最新版本是HM 16,可以根据自己的实际需求进行选择。下载时需要使用SVN checkout即可 ;
HEVC协议下载_1:https://hevc.hhi.fraunhofer.de/
HEVC协议下载_2:http://www.itu.int/rec/T-REC-H.265/en
其次,最好附带下载HM的reference software manual即参考软件手册,这个手册的主要内容包括HM的下载地址和使用方法,更重要的是,里面包含了对配置文件各个参数的详细解释,可以说是使用HM的必备手册。
接下来就是知道如何去编译HM工程了。从运行环境来讲,既可以在linux系统下使用makefile对HM进行编译,也可以在windows系统下使用IDE如VS对HM进行编译。我个人是用VS2005作为开发环境,因此,这里也只介绍使用VS编译HM。关于linux下如何进行,本人也没有搞过,所以下文中也不做描述。
打开下载下来的HM文件夹,工程存放在build目录下,工程名为HM_vc8.sln(本人安装的VS2005,如果是其他版本的VS,请选择相应的工程名)。右击“Solution 'HM_VC8'(7 projects)”->“build solution”。正常的话,等待片刻所有工程都能得到正确的编译,并最终在HM文件夹下生成bin目录,在目录xxx\bin\vc8\Win32\Debug下,最终会生成两个可执行文件,TAppEncoder.exe和TAppDecoder.exe,分别问编码和解码的可执行文件,到了这一步,表明你之前的步骤都是正确的。接下来就能进入到编解码器的使用当中来了。
先说编码器的使用:右击“TAppEncoder”->“Set as Startup Project”, 接着,再次右击“TAppEncoder”->“Properties”->“Configuration Properties”->“Debugging”,在弹出的右窗口中有这么两行需要关注:“Command Arguments“和“Working
Directory”。前者用于输入运行时的命令参数,后者用于指定工程的工作目录。先说工作目录,将其保持不变。接下来,为了方便起见,我们可以把需要使用到的配置文件、yuv测试序列复制到xxx\bin\vc8目录下。与JM有所不同的是,我们需要至少使用两个配置文件,即在HM文件夹的cfg目录中的某一个配置文件如encoder_intra_main.cfg,以及per-sequence目录下的某一个配置文件如BasketballDrill.cfg。前者主要用于配置编码器的各种编码参数,后者主要用于指定输入yuv测试文件,分辨率,待编码帧数等等。在完成了上述步骤之后,我们就可以在“Command
Arguments”一栏填入-c encoder_intra_main.cfg -c BasketballDrill.cfg,表明这个编码器使用这两个配置文件所指定的参数进行编码。我自己配置的具体情况如下:(注意:BasketballDrill.cfg中的yuv文件名字以及分辨率要与你要编码的yuv文件的名字,以及分辨率一致,并且格式为yuv planar,如对图像的基础知识不是很熟悉,可以浏览:http://121.40.174.23/forum.php?mod=forumdisplay&fid=2 )
此外,值得一提的是,使用配置文件不是必须的,我们也可以使用纯命令行的输入方式对编码器的各个参数进行指定,具体使用方法,请参考软件手册。在一些特定情况下如只需修改其中的少数参数值,这种纯命令行方式还是比较方便的,但是,这种做法容易漏掉一些参数值的设置(尽管它们有默认值),而且对于经常修改多个参数来说,远不如直接修改配置文件来得方便和准确。因此,个人推荐使用上一种方法进行设置。
在进行如上配置后,正常情况下编码器就能将你指定的yuv测试文件编码为二进制码流文件了。
再说解码器的使用:在到填入“Command Arguments”之前,跟编码器是完全一样的,这里就不再重复了,输入的命令如下-b xxx.bin -o deco.yuv,-b指定输入的二进制码流,即编码输出码流文件,-o指定输出的yuv文件。设置完毕之后,运行解码器,应该能够解码出deco.yuv文件来了。
至此,简单的HM使用介绍完毕,欢迎大家对该文考虑不周和错误的地方进行补充和指定。
HM模型下载网址:https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/,
注:这个网址下有各个版本的HM,到目前为止,最新版本是HM 16,可以根据自己的实际需求进行选择。下载时需要使用SVN checkout即可 ;
HEVC协议下载_1:https://hevc.hhi.fraunhofer.de/
HEVC协议下载_2:http://www.itu.int/rec/T-REC-H.265/en
其次,最好附带下载HM的reference software manual即参考软件手册,这个手册的主要内容包括HM的下载地址和使用方法,更重要的是,里面包含了对配置文件各个参数的详细解释,可以说是使用HM的必备手册。
接下来就是知道如何去编译HM工程了。从运行环境来讲,既可以在linux系统下使用makefile对HM进行编译,也可以在windows系统下使用IDE如VS对HM进行编译。我个人是用VS2005作为开发环境,因此,这里也只介绍使用VS编译HM。关于linux下如何进行,本人也没有搞过,所以下文中也不做描述。
打开下载下来的HM文件夹,工程存放在build目录下,工程名为HM_vc8.sln(本人安装的VS2005,如果是其他版本的VS,请选择相应的工程名)。右击“Solution 'HM_VC8'(7 projects)”->“build solution”。正常的话,等待片刻所有工程都能得到正确的编译,并最终在HM文件夹下生成bin目录,在目录xxx\bin\vc8\Win32\Debug下,最终会生成两个可执行文件,TAppEncoder.exe和TAppDecoder.exe,分别问编码和解码的可执行文件,到了这一步,表明你之前的步骤都是正确的。接下来就能进入到编解码器的使用当中来了。
先说编码器的使用:右击“TAppEncoder”->“Set as Startup Project”, 接着,再次右击“TAppEncoder”->“Properties”->“Configuration Properties”->“Debugging”,在弹出的右窗口中有这么两行需要关注:“Command Arguments“和“Working
Directory”。前者用于输入运行时的命令参数,后者用于指定工程的工作目录。先说工作目录,将其保持不变。接下来,为了方便起见,我们可以把需要使用到的配置文件、yuv测试序列复制到xxx\bin\vc8目录下。与JM有所不同的是,我们需要至少使用两个配置文件,即在HM文件夹的cfg目录中的某一个配置文件如encoder_intra_main.cfg,以及per-sequence目录下的某一个配置文件如BasketballDrill.cfg。前者主要用于配置编码器的各种编码参数,后者主要用于指定输入yuv测试文件,分辨率,待编码帧数等等。在完成了上述步骤之后,我们就可以在“Command
Arguments”一栏填入-c encoder_intra_main.cfg -c BasketballDrill.cfg,表明这个编码器使用这两个配置文件所指定的参数进行编码。我自己配置的具体情况如下:(注意:BasketballDrill.cfg中的yuv文件名字以及分辨率要与你要编码的yuv文件的名字,以及分辨率一致,并且格式为yuv planar,如对图像的基础知识不是很熟悉,可以浏览:http://121.40.174.23/forum.php?mod=forumdisplay&fid=2 )
此外,值得一提的是,使用配置文件不是必须的,我们也可以使用纯命令行的输入方式对编码器的各个参数进行指定,具体使用方法,请参考软件手册。在一些特定情况下如只需修改其中的少数参数值,这种纯命令行方式还是比较方便的,但是,这种做法容易漏掉一些参数值的设置(尽管它们有默认值),而且对于经常修改多个参数来说,远不如直接修改配置文件来得方便和准确。因此,个人推荐使用上一种方法进行设置。
在进行如上配置后,正常情况下编码器就能将你指定的yuv测试文件编码为二进制码流文件了。
再说解码器的使用:在到填入“Command Arguments”之前,跟编码器是完全一样的,这里就不再重复了,输入的命令如下-b xxx.bin -o deco.yuv,-b指定输入的二进制码流,即编码输出码流文件,-o指定输出的yuv文件。设置完毕之后,运行解码器,应该能够解码出deco.yuv文件来了。
至此,简单的HM使用介绍完毕,欢迎大家对该文考虑不周和错误的地方进行补充和指定。
相关文章推荐
- Quick-Cocos2D-X学习(一)下载Quick-Cocos2D-X 并成功运行示例代码
- [置顶] HEVC代码学习0:HM使用+码流分析教程
- 【HEVC学习与研究】37、HM编码器的基本结构2:帧内编码部分的代码骨架
- HEVC学习:HM-10.1-dev代码分析之TLibVideoIO库
- HEVC学习:HM-10.1-dev代码分析之TLibVideoIO库
- HEVC码率控制算法研究与HM相应代码分析(二)——新的码率控制模型
- 解决"学习python-flask教程,下载源码运行的时候出现:TypeError: 'bool' object is not callable 错误代码:"
- 打算从今天开始写一写视频标准HEVC HM代码的学习的总结了
- 【HEVC学习与研究】7.HEVC参考代码HM10.0的使用
- [Quick-Cococs2DX] Quick-Cocos2D-X学习 (一) 下载Quick-Cocos2D-X 并成功运行示例代码 推荐
- JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载]
- 转载一个SAP下载工具的代码,仅用于学习(来源于:http://www.dalestech.com/)
- JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载]
- JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载]
- MonoRail学习笔记二:框架代码下载
- JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载]
- JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载]
- JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载]
- JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载]
- Discuz5.5.0代码高亮显示+运行代码框合成插件 下载第1/4页