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

作者: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的使用相关推荐

  1. HEVC参考软件HM源码分析--帧间预测(1)--xCompressCU

    本文首先对HM中帧间预测的基本流程作简要介绍,接着对代码中关键变量的用途作出说明,最后以源代码+注释的形式进行具体分析. 备注:这位大神的博客对楼主帮助很大,解决了我的不少疑惑,最后才能顺利写下这篇博 ...

  2. HEVC参考软件HM源码分析--帧间预测(3)--predInterSearch

    帧间预测基本知识 对帧间预测有所了解的同学应该都知道,帧间预测操作一般都是由两个最基本也是最核心的操作组成:运动估计(ME)和运动补偿(MC). 运动估计:负责找到当前帧和参考帧之间的匹配运动矢量(M ...

  3. HEVC官方软件HM源代码简单分析-解码器TAppDecoder

    ===================================================== H.264/H.265 官方源代码分析文章: H.264官方软件JM源代码简单分析-编码器l ...

  4. 【Codecs系列】HEVC官方软件HM源代码简单分析-解码器TAppDecoder

    目录 函数调用关系图 普通内部函数 解析函数(Parser) 熵解码函数(Entropy Decoding) 解码函数(Decode) 环路滤波函数(Loop Filter) 本文记录HEVC官方参考 ...

  5. HEVC标准参考软件HM下载

    (安装及运行环境Windows10+Visual Studio 2015) 1.首先进入链接页面 https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware ...

  6. 在 Linux 下安装 HM,运行 HEVC 参考代码

    今天在 Linux 下学习 HEVC ,参考了这两个教程,完成了安装和运行,在这里记录下来 教程一:在ubuntu下编译运行HEVC参考软件HM-16.20 在ubuntu下编译运行HEVC参考软件H ...

  7. 视频压缩编码参考软件代码入门

    代码学习0:参考软件的使用 视频压缩编码标准 参考软件获取 参考软件的使用 参考软件使用方法 VTM工程 cfg配置文件 工程命令设置 编码器 解码器 工程运行 编码器 解码器 结果输出 编码端 解码 ...

  8. 【AVS系列】AVS2参考软件RD17.0

    Date: 2019-4-16 前言    AVS2标准从2017年开始批准使用,至今也有2年了,传说这个标准是对标H265,压缩效率在一些场景下的压缩率优于H.265,但是当前该标准的推广使用仍旧较 ...

  9. VVC参考软件——VTM的安装和编译

    VVC参考软件VTM安装教程 一.官网下载VTM [VTM下载官网](https://jvet.hhi.fraunhofer.de/) 现在VTM版本更新到5.0,通过SVN只能下载2.0之前的版本, ...

最新文章

  1. “防爆”与“防暴” 这两种摄像机差别在哪?
  2. 用纯 CSS 创作一个小球反弹的动画
  3. apcloud混合式开发app学习笔记
  4. 【Android 逆向】Android 进程注入工具开发 ( SO 进程注入环境及 root 权限获取 | 进程注入时序分析 )
  5. 《剑指offer》连续子数组的最大和
  6. .NET Core玩转机器学习
  7. Cocos2d-x--开发参考资料
  8. Python地理数据处理库shapely支持函数总结
  9. 跟“网址”有关的$_SERVER[ ]变量
  10. java使用document解析xml文件
  11. 190119每日一句
  12. 浏览器是如何工作的:Chrome V8让你更懂JavaScript
  13. 计算机操作员评分标准,计算机操作员EXCEL操作竞赛样卷与评分标准.doc
  14. Java学习day096 并发(六)(线程安全的集合:高效的映射、集和队列、映射条目的原子更新、对并发散列映射的批操作、并发集视图、写数组的拷贝、并行数组算法、较早的线程安全集合)
  15. 前端实现文件在线预览功能
  16. 网易算法实习面经(2019.3)
  17. python对比两个数组的差异_数组对比差异
  18. Python网络爬虫-xpath模块
  19. CentOs7怎么查看系统版本
  20. MonoRail学习笔记四:MonoRail基本流程分析

热门文章

  1. Fiddler无法抓手机APP数据包的解决办法
  2. 使用GoogleCode管理你的代码
  3. testpmd csum engine 测试 checksum hw offload
  4. 完美解决Windows10安装HCL模拟器各种疑难问题!!!
  5. Linux 并发与竞争
  6. 基于PT8.2柔性传感器使用
  7. CAN光端机在西门子FC18/720消防主机海上风电厂之星型联网方式
  8. 域名系统(DNS)反向查询
  9. Android 刘海屏的适配
  10. 文华财经期货量化短线策略支撑压力指标公式,短线行情无未来函数多空均线红涨绿跌信号