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)
HEVC参考软件HM的使用相关推荐
- HEVC参考软件HM源码分析--帧间预测(1)--xCompressCU
本文首先对HM中帧间预测的基本流程作简要介绍,接着对代码中关键变量的用途作出说明,最后以源代码+注释的形式进行具体分析. 备注:这位大神的博客对楼主帮助很大,解决了我的不少疑惑,最后才能顺利写下这篇博 ...
- HEVC参考软件HM源码分析--帧间预测(3)--predInterSearch
帧间预测基本知识 对帧间预测有所了解的同学应该都知道,帧间预测操作一般都是由两个最基本也是最核心的操作组成:运动估计(ME)和运动补偿(MC). 运动估计:负责找到当前帧和参考帧之间的匹配运动矢量(M ...
- HEVC官方软件HM源代码简单分析-解码器TAppDecoder
===================================================== H.264/H.265 官方源代码分析文章: H.264官方软件JM源代码简单分析-编码器l ...
- 【Codecs系列】HEVC官方软件HM源代码简单分析-解码器TAppDecoder
目录 函数调用关系图 普通内部函数 解析函数(Parser) 熵解码函数(Entropy Decoding) 解码函数(Decode) 环路滤波函数(Loop Filter) 本文记录HEVC官方参考 ...
- HEVC标准参考软件HM下载
(安装及运行环境Windows10+Visual Studio 2015) 1.首先进入链接页面 https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware ...
- 在 Linux 下安装 HM,运行 HEVC 参考代码
今天在 Linux 下学习 HEVC ,参考了这两个教程,完成了安装和运行,在这里记录下来 教程一:在ubuntu下编译运行HEVC参考软件HM-16.20 在ubuntu下编译运行HEVC参考软件H ...
- 视频压缩编码参考软件代码入门
代码学习0:参考软件的使用 视频压缩编码标准 参考软件获取 参考软件的使用 参考软件使用方法 VTM工程 cfg配置文件 工程命令设置 编码器 解码器 工程运行 编码器 解码器 结果输出 编码端 解码 ...
- 【AVS系列】AVS2参考软件RD17.0
Date: 2019-4-16 前言 AVS2标准从2017年开始批准使用,至今也有2年了,传说这个标准是对标H265,压缩效率在一些场景下的压缩率优于H.265,但是当前该标准的推广使用仍旧较 ...
- VVC参考软件——VTM的安装和编译
VVC参考软件VTM安装教程 一.官网下载VTM [VTM下载官网](https://jvet.hhi.fraunhofer.de/) 现在VTM版本更新到5.0,通过SVN只能下载2.0之前的版本, ...
最新文章
- “防爆”与“防暴” 这两种摄像机差别在哪?
- 用纯 CSS 创作一个小球反弹的动画
- apcloud混合式开发app学习笔记
- 【Android 逆向】Android 进程注入工具开发 ( SO 进程注入环境及 root 权限获取 | 进程注入时序分析 )
- 《剑指offer》连续子数组的最大和
- .NET Core玩转机器学习
- Cocos2d-x--开发参考资料
- Python地理数据处理库shapely支持函数总结
- 跟“网址”有关的$_SERVER[ ]变量
- java使用document解析xml文件
- 190119每日一句
- 浏览器是如何工作的:Chrome V8让你更懂JavaScript
- 计算机操作员评分标准,计算机操作员EXCEL操作竞赛样卷与评分标准.doc
- Java学习day096 并发(六)(线程安全的集合:高效的映射、集和队列、映射条目的原子更新、对并发散列映射的批操作、并发集视图、写数组的拷贝、并行数组算法、较早的线程安全集合)
- 前端实现文件在线预览功能
- 网易算法实习面经(2019.3)
- python对比两个数组的差异_数组对比差异
- Python网络爬虫-xpath模块
- CentOs7怎么查看系统版本
- MonoRail学习笔记四:MonoRail基本流程分析