HEVC参考软件HM的使用

文章写得很好,转载以防丢失

作者:66

(转载请务必注明出处)

学习HEVC的相关知识已经快一个月了,以前从来没有记笔记的习惯,现在自学,在理解和记忆上都比以前要迟钝许多,养成定期总结是非常有必要的。

先把需要的工具准备好,HEVC(High Efficiency Video Coding高效视频编码标准)。由国际电信联盟ITU-T与国际标准化组织ISO/IEC于2013年合作共同发布,其相应的参考软件HM已经由0.1更新到了最近的16.9版本(2018.1.16),我用的是HM14.0。HM的下载地址为:https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/。另外,其HM对应的测试序列(用来测试编解码用的短视频码流)的下载地址为:http://ftp.kw.bbc.co.uk/hevc/hm-10.0-anchors/bitstreams/i_main/约20个左右的测试序列,在HM的/cfg/per-sequence中有对应的配置文件,一会说怎么用,帧大小416*240到2560*1600,QP(量化步长)共四个测试模型22、27、32、37,50/60fps。

我是在window下用的visual studio 2010,软件中也给了在Linux中编译的make文件,也可以试试在Linux中编译。

开始使用HM,进入HM14.0的文件夹,cfg为各种配置文件,doc里有相应的文档、软件手册,compat中就一个统一变量类型长度的宏定义。打开/build/HM_vc10.sln,可以看到有7个工程,运行或生成解决方案,在HM14.0/bin/vc10/win32/Debug/中会生成解码器TAppDecoder.exe与TAppEncoder.exe编码器。

我在编译时出现了问题,LNK1123:转换到COFF期间失败:文件无效或损坏。解决方法:将C盘下的C:\Windows\winsxs\x86_netfxcvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7601.22733_none_a350e9690a5779a6\cvtres.exe(路径太长了,直接盘下搜索)文件夹下的cvtres.exe复制替换到vs安装目录下..\vc\bin\cvtres.exe。

在调试编译的时候可以将命令行参数加进编解码器中,解决方案管理器下,右击工程->属性->配置属性->调试,其中工作目录和命令参数是按需要添加的。工作目录可以定为Debug下,将配置文件和测试视频也复制过来,方便测试。HM命令参数下至少需要两个配置文件,例如:-c encoder_intra_main.cfg -c BasketballDrill.cfg。另外,-b是输入文件,-o为输出文件。

由这些可以对测试序列进行操作。

也可以在HM14.0\...\Debug文件夹下,使用批处理文件.bat,或者在cmd命令行中操作。解码批处理文件:

解码运行中:

 

编码批处理文件:

结果:

编码特别慢,不要以为卡了。

附解码效果图:

yuv视频播放器下载链接:http://download.csdn.net/download/m0_37579288/10208775


 (写博不易,转载请注明出处)
--------------------- 
作者:失去的都是人生 
来源:CSDN 
原文:https://blog.csdn.net/m0_37579288/article/details/79078669 
版权声明:本文为博主原创文章,转载请附上博文链接!

文章2

HEVC编码学习(一)HM配置

      在园子里注册很久了,今天第一次写博客。虽然已经接触HEVC编码断断续续两三个月了,但是依旧感觉还是没有入门。这次恰逢HM公布了新版本,就写一篇博客,回忆一下HM的相关配置,希望与大家多多交流。

      我以VS2012作为开发环境,用的HM版本是HM_16.4+SCM_4.0。

      首先,在bulid目录下,打开工程HM_vc10。右击“解决方案‘ HM_vc10'(9个项目)’”,然后选“生成解决方案”。等编译结束后,在HM文件夹下会生成bin目录。然后在..\bin\vc10\Win32\Debug下,生成了两个成编码和解码的可执行文件:TAppEncoder.exe和TAppDecoder.exe。接下来就可以使用编解码器了。

      编码器:

      1、右击“TAppEncoder”->“设为启动项目”。

      2、再右击“TAppEncoder”->"属性"->"调试",需要修改的是“命令参数”和“工作目录”。在“命令参数”中,设置两种配置文件:在HM文件夹的cfg目录中的配置文件用来设置编码器的各种参数,如encoder_intra_main_scc.cfg,在per-sequence目录下的文件用来设置输入的测试序列,如SlideShow_444.cfg。

      3、在“命令参数”项指定配置文件,如:-c encoder_intra_main_scc.cfg -c SlideShow_444.cfg。

      4、“工作目录”可以设置为上步中可执行文件的路径..\..\bin\vc10\Win32\Debug。

      5、我们需要将指定的两个配置文件拷贝到设置的工作目录下,同时,按需要修改配置文件里的参数,如修改测试序列配置文件中的测试文件路径、视频格式和编码帧数等信息。

      6、运行编码器

      (PS:看网上说可以通过命令行修改参数,但是还没有尝试过。。。)   

      解码器:

      1、重复编码器的前两步

      2、“命令参数”的设置:-b xx.bin -o dec.yuv,前者用来指定需要解码的二进制码流,后者用来指定解码输出的YUV文件。“工作目录”可不修改。

      3、运行解码器。

      菜鸟一枚,希望与大家多多交流,共同进步。

(参考:http://blog.csdn.net/hevc_cjl/article/details/8169182

展开阅读全文

没有更多推荐了,返回首页