从今天开始,会陆续发表HEVC学习过程中的一些总结,主要目的是与大家一起交流学习,由于水平有限,恳请大家能够不吝赐教。

由于这是第一次写博客,而且学习也是个循序渐进的过程,第一篇文章就简单介绍下如何使用HEVC的官方标准测试模型HM吧。其实如果之前学习过H.264的话,肯定也是用过JM的,HM的使用方法与JM基本上是相同的,只是配置文件的内容有所不同罢了。好了,不多说,马上进入正题。

首先自然是先把这个测试模型下载下来,链接地址如下:https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/,这个网址下有各个版本的HM,到目前为止,最新版本是HM 9.0,可以根据自己的实际需求进行选择。这里需要注意的是,下载时需要使用SVN,如windows下的TortoiseSVN 。

其次,最好附带下载HM的reference software manual即参考软件手册,这个手册的主要内容包括HM的下载地址和使用方法,更重要的是,里面包含了对配置文件各个参数的详细解释,可以说是使用HM的必备手册。

最后,就是真正地编译HM工程了。从运行环境来讲,既可以在linux系统下使用makefile对HM进行编译,也可以在windows系统下使用IDE如VS对HM进行编译。我个人是用VS2008作为开发环境,因此,这里也只介绍使用VS编译HM。关于linux下如何进行,请参看前面提到的参看软件手册吧

打开下载下来的HM文件夹,工程存放在build目录下,工程名为HM_VC9(对VS2008而言)。右击“Solution 'HM_VC9'(7 projects)”->“build solution”。正常的话,等待片刻所有工程都能得到正确的编译,并最终在HM文件夹下生成bin目录,在目录xxx\bin\vc9\Win32\Debug下,最终会生成两个可执行文件,TAppEncoder.exe和TAppDecoder.exe,分别问编码和解码的可执行文件,到了这一步,表明你之前的步骤都是正确的。接下来就能进入到编解码器的使用当中来了。

先说编码器的使用:右击“TAppEncoder”->“Set as Startup Project”, 接着,再次右击“TAppEncoder”->“Properties”->“Configuration Properties”->“Debugging”,在弹出的右窗口中有这么两行需要关注:“Command Arguments“和“Working Directory”。前者用于输入运行时的命令参数,后者用于指定工程的工作目录。先说工作目录,将其设置为xxx\bin\vc9\Win32\Debug,即上一步中编译生成的可执行文件的绝对路径。接下来,为了方便起见,我们可以把需要使用到的配置文件、yuv测试序列复制到该目录下。与JM有所不同的是,我们需要至少使用两个配置文件,即在HM文件夹的cfg目录中的某一个配置文件如encoder_intra_main.cfg,以及per-sequence目录下的某一个配置文件如BasketballDrill.cfg。前者主要用于配置编码器的各种编码参数,后者主要用于指定输入yuv测试文件,分辨率,待编码帧数等等。在完成了上述步骤之后,我们就可以在“Command Arguments”一栏填入-c encoder_intra_main.cfg -c BasketballDrill.cfg,表明这个编码器使用这两个配置文件所指定的参数进行编码。

此外,值得一提的是,使用配置文件不是必须的,我们也可以使用纯命令行的输入方式对编码器的各个参数进行指定,具体使用方法,请参考软件手册。在一些特定情况下如只需修改其中的少数参数值,这种纯命令行方式还是比较方便的,但是,这种做法容易漏掉一些参数值的设置(尽管它们有默认值),而且对于经常修改多个参数来说,远不如直接修改配置文件来得方便和准确。因此,个人推荐使用上一种方法进行设置。

在进行如上配置后,正常情况下编码器就能将你指定的yuv测试文件编码为二进制码流文件了。

再说解码器的使用:在到填入“Command Arguments”之前,跟编码器是完全一样的,这里就不再重复了,输入的命令如下-b xxx.bin -o deco.yuv,-b指定输入的二进制码流,即编码输出码流文件,-o指定输出的yuv文件。设置完毕之后,运行解码器,应该能够解码出deco.yuv文件来了。

至此,简单的HM使用介绍完毕,欢迎大家对该文考虑不周和错误的地方进行补充和指定。

原文地址:http://blog.csdn.net/hevc_cjl/article/details/8169182

HEVC学习 —— HM的使用相关推荐

  1. [HEVC] HEVC学习(五) —— 帧内预测系列之三

    [HEVC] HEVC学习(五) -- 帧内预测系列之三 今天主要介绍帧内预测一个很重要的函数initAdiPattern,它的主要功能有三个,(1)检测当前PU的相邻样点包括左上.上.右上.左.左下 ...

  2. 【HEVC学习与研究】

      [HEVC学习与研究]1.HEVC概览(1) [HEVC学习与研究]2.HEVC概览(2) [HEVC学习与研究]3.HEVC概览(3) [HEVC学习与研究]4.关于IEEE TCSVT的HEV ...

  3. HEVC学习-帧内预测-亮度分量预测主函数

    QP的详解:https://blog.csdn.net/liangjiubujiu/article/details/80569391 代码部分:https://blog.csdn.net/HEVC_C ...

  4. HEVC学习(一) —— HM的使用

    从今天开始,会陆续发表HEVC学习过程中的一些总结,主要目的是与大家一起交流学习,由于水平有限,恳请大家能够不吝赐教. 由于这是第一次写博客,而且学习也是个循序渐进的过程,第一篇文章就简单介绍下如何使 ...

  5. HEVC学习(二) —— HM的整体结构及一些基本概念

    这篇博客写得不错,觉得对我对大家刚开始学习时会有帮助,于是转载之.原文地址:http://blog.csdn.net/hevc_cjl/article/details/8170646 在刚开始看HM的 ...

  6. HEVC学习-帧内预测-initAdiPattern函数

    本文章主要参考 https://blog.csdn.net/HEVC_CJL/article/details/8184276 https://blog.csdn.net/sujunzy666/arti ...

  7. HEVC学习笔记(二)整体介绍

    参考书目 初次接触HEVC,我用的参考书是<H.265/HEVC视频编码新标准及其扩展 [朱秀昌等 编著]2016年版><新一代高效视频编码技术_卓力 张菁等著.2013年11月第1 ...

  8. HEVC解码器HM源码阅读(一)介绍

    介绍 之前看HM的编码器,总觉得理解得不够深入,很多地方只是了解大概的处理流程,具体含义没有理解.为了更加深入理解HEVC,现在开始从解码器的角度分析HEVC,说不定能够取得不错的效果. HM解码器包 ...

  9. H.265/HEVC学习笔记:量化

    量化是指将信号的连续取值(或者大量可能的离散取值)映射为有限多个离散幅值的过程,实现信号取值多对一的映射.在视频编码中,残差信号经过DCT后,变换系数往往具有较大的动态范围.因此对变换系数进行量化可以 ...

最新文章

  1. 微软的漏洞攻击与防御
  2. 尚学linux课程---8、rpm软件包安装
  3. 用python将数据标准化
  4. 博士当中学老师是“人才浪费”?
  5. python3.6 try except,python中try except处理程序异常的三种常用方法
  6. linux内核网络栈代码的准备知识
  7. webp环境搭建和使用过程
  8. 使用libsvm(faruto)工具箱问题小结
  9. java集成 腾讯信鸽_java后台集成腾讯信鸽消息推送
  10. Matlab下的整数规划(CVX)
  11. 对两个等长升序的序列查找中位数
  12. Docker 搭建 YApi 可视化接口管理平台
  13. icon php图标集合,iconfont字体图标和各种css小图标的详解
  14. mysql学生课程表试题_Mysql练习之 学生表、课程表 、教师表、成绩表 50道练习题...
  15. cf_global_round7
  16. 写论文之mathpix snipping tool识别图片中的公式并通过MathType粘贴到word
  17. Android系统添加USB共享网络
  18. 同步异步与阻塞非阻塞的区别 (不定时更新)
  19. Abaqus2021关联Solidworks2022成功方法
  20. 查看Windows XP是否已激活的方法

热门文章

  1. WPF中改进自定义Command一些想法
  2. CCF202009-4 星际旅行(100分题解链接)
  3. 小乐乐与二段数(2019哈理工新生赛第20题)
  4. UVA11005 Cheapest Base【数学】
  5. 架构设计 —— 子系统与包
  6. Tricks(四十八)—— 注释一段代码
  7. matlab 神经网络工具箱的实用
  8. 词汇的积累 —— 同义反复、写景状物
  9. 深度学习实践指南(四)—— 一个典型的深度学习的实践流程
  10. fire.php,php代码调试利器firephp安装与使用方法分析