从今天开始,会陆续发表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使用介绍完毕,欢迎大家对该文考虑不周和错误的地方进行补充和指定。
相关推荐
《HEVC测试代码详解——基于HM 5.0》 HEVC(High Efficiency Video Coding),即高效率视频编码,是继H.264/AVC之后的下一代视频压缩标准,旨在提供更高的压缩效率,降低视频存储和传输的需求。HM(Hevc Main Test ...
"HM4.0"是HEVC的参考模型之一,全称为“HEVC Main Profile Model 4.0”,它提供了实现HEVC编码标准的详细算法和软件框架,供研究人员和开发者进行测试和验证。 HEVC编码标准是国际电信联盟ITU-T的VCEG(视频编码...
《HEVC/H.265编码解码技术详解——基于HM-15.0官方原版》 在当今数字化时代,视频编码技术的发展对于优化存储空间、提高传输效率至关重要。HEVC(High Efficiency Video Coding,高效率视频编码)或H.265,作为新...
CABAC即上下文自适应二进制算术编码(Context-Adaptive Binary Arithmetic Coding),这是一种熵编码方法,最初是在H.264/AVC视频编码标准中引入,现在也被用于新的标准——高效视频编码(HEVC)。熵编码是视频压缩...
”提到了两个重要的视频编码标准——HEVC(High Efficiency Video Coding)和H.265,它们是目前广泛应用于高清视频编码的技术。HEVC是由MPEG(Moving Picture Experts Group)和VCEG(Video Coding Experts Group)...
《HEVC源代码详解——cfg.zip中的编码器配置文件解析》 HEVC(High Efficiency Video Coding,高效视频编码)是目前广泛使用的视频编码标准,它在视频压缩技术上相较于其前一代H.264/AVC有了显著的提升。在HEVC标准...
截至当前阶段,HEVC的测试模型HM3.0(参考软件)和工作草案文档WD3.0已经发布。预计最终的国际标准草案将在2013年1月公布。在第五次JCT-VC日内瓦会议上,已有多项关于可伸缩视频扩展的贡献被提出并讨论。 #### HEVC...
本文将深入探讨H.265编码技术,并特别关注最新的模型——HM6.2。 一、H.265基础 1. 背景与目标:H.265标准由ITU-T的VCEG(视频编码专家小组)和ISO/IEC的MPEG(动态图像专家组)共同制定,旨在提高编码效率,使得...
HM8编码器是High Efficiency Video Coding(HEVC)测试模型的第八个版本,由Joint Collaborative Team on Video Coding (JCT-VC)——一个由ITU-T SG16 WP3和ISO/IEC JTC1/SC29/WG11共同组成的联合工作组开发。...
本文将深入探讨这两个编码器的参考软件——H264JM和H265HM,以及它们的核心技术:运动估计和模式决策。 H264JM是H.264标准的官方参考实现,由JVT(Joint Video Team)开发,旨在提供一个公开的、可编译的代码库,...
为了验证上述混合并行解码策略的有效性,研究人员在HEVC参考软件HM-10.0上实现了这些加速策略。HM-10.0是一个遵循HEVC解码标准的示例实现,其设计目标是为了确保正确性、完整性和可读性,但并未采用任何并行化技术。...
而在使用常见的测试条件(CTC)下的特殊技术——"sign-bit-hiding"(SBH)技术时,比特率减少的数值略有下降,分别为0.7%和1.1%。同时,实验结果还显示,编码时间和解码时间仅轻微增加(约10%),并且这并没有特别...