在H.264的研究中,我们可以看到目前有三种开源编码,很多测试都是在一个开源编码中实现的,这个开源编码就叫做:JM86。在这里呢具体介绍一下这三种开源编码:

一、三大开源编码器介绍

1、JM

H.264的官方测试源码,由德国hhi研究所负责开发。

特点:实现了264所有的特性,由于是官方的测试源码,所以学术研究的算法都是在JM基础上实现并和JM进行比较。但其程序结构冗长,只考虑引入各种新特性以提高编码性能,忽视了编码复杂度,其编码复杂度极高,不宜实用。

开发起始时间:2002.2

2、X264

网上自由组织联合开发的兼容264标准码流的编码器,创始人是一个法国人。X264在网上的口碑极佳。

特点:注重实用。和JM相比,在不明显降低编码性能的前提下,努力降低编码的计算复杂度,故X264摈弃了264中一些对编码性能贡献微笑但计算复杂度极高的新特性,如多参考帧、帧间预测中不必要的块模式、CABAC等。

开发起始时间:2004.6

3、T264

中国视频编码自由组织联合开发的264编解码器,编码器编码输出标准的264码流,解码器只能解T264编码器生成的码流。

特点:和X264的出发点相似,并吸收了JM、X264、XVID的优点。

开发起始时间:2004.10

附:

编码器版本

JM: JM86(选用的原因:90之后的版本主要是针对高保真的视频,不适合本文的测试序列),VC71编译。很多人选择这个平台估计是这个东西的效率最低,最好发paper。

X264: 2005.06.16版本,VC6编译

T264: 0.14版本,VC71编译

note: 三个编码器生成的都是release版本,通常release版本的执行速度比debug版本的执行速度快。

编码选项

由于x264和t264是基于baseline的,所以JM采用baseline profile.

另注:t264采用fast mode

三个编码器都采用默认的编码选项。

量化步长选择:24、28、32、36

二、对于H.264的简介:(摘自:http://blog.csdn.net/wcjy07220114/article/details/6155757)

从应用角度看,H.264有三个层次,分为主要用于电视会议等通信的基本层次,面向高画质用途和录像的主层次以及面向内容配送的扩展层次。各层次的清晰度和编码速度取值不同。基本层次(baseline profile)的主要技术为图像只含有I帧,P帧,支持帧内和帧间编码,系统内有环路滤波,1/4帧间预测,4:2:0 YUV格式输入,基于VLC的纠错编码(CAVLC),弹性宏块指令等。主要用于可视电话、会议电话,无线通信等实时性强的视频通信。

主要层次(main profile)则支持隔行视频,在基本层次基础上加入了CABAC运算编码技术和基于双向预测的B帧,滤波(接口)等技术,但不含弹性宏块指令。主要用于数字广播电视和数字视频存储。

扩展层次(extended profile)则在基线层次里加入B帧和滤波编码等,支持码流之间的切换(SP slice, SI slice)、改进误码性能,但不支持隔行视频和CABAC。主要应用于流媒体。

理论上Profile级别越高,表示采样精度越高,也就是视频越清晰。但有个前提就是,Profile级别高低和你要观看的载体有关系,相对来说在越是在大屏幕上观看,那所需要Profile级别也应相对应的提高,但与此同时带来的副作用就是你所观看视频的硬件环境也要提高。换句话说,Profile3.1对于IPAD足够用了,级别在高的话其视频观看效果质量也不会有明显提高。

还有重要一点,Profile的结果好还和片源的质量有直接关系,片源质量差,多高的Profile也没用。

参考文档:

http://3y.uu456.com/bp-84cfef2b4b73f242336c5fb3-1.html

http://www.gpxz.com/diannao/tongxin/143863.html                                              基于ADSP-BF5619处理的H.264视频编码器设计

http://blog.csdn.net/wcjy07220114/article/details/6155757

http://blog.chinaunix.net/uid-11134731-id-33170.html?%2F10557_html=&page=3           FFMpeg.H264解码win开发环境搭建

http://www.doc88.com/p-0963761178097.html                                                                           JM86流程图

错误隐藏学习手记(五)相关推荐

  1. 错误隐藏学习手记(六)

    现在又出了H.265,我觉得有必要在错误隐藏方面也要跟进,采用和H.265标准一致的东西才好!那么H.264和H.265的区别在于哪里呢? 随着用户对监控视频质量的要求越来越高,高清视频在安防监控中的 ...

  2. C++学习手记五:C++流操作

    为什么80%的码农都做不了架构师?>>>    写在前面: 说到流操作,则与程序的输入输出(简记为I/O)有关,本文讲述C++的一些I/O操作.本文所用的一些操作虽然都是基于标准输入 ...

  3. Direct3D学习手记五:纹理映射

    本文介绍纹理映射:将2D图像映射到3D物体上 纹理坐标: 使用纹理映射将图片贴到3D物体表面必须物体的顶点指定纹理坐标,最多指定8级纹理坐标,本次我们只使用一级 可以像以下方式定义定点格式: //自定 ...

  4. 大数据学习系列:Hadoop3.0苦命学习(五)

    传送门: 大数据学习系列:Hadoop3.0苦命学习(一) 大数据学习系列:Hadoop3.0苦命学习(二) 大数据学习系列:Hadoop3.0苦命学习(三) 大数据学习系列:Hadoop3.0苦命学 ...

  5. aspmaker学习手记

    aspmaker学习手记 一.汉化提示信息 自动生成出来的网页中许多提示信息都是英文.修改x:\aspmaker\src\lang.xml文件,找到要改的地方比如把Please select改成&qu ...

  6. 强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例----Sarsa算法, Q学习, 期望Sarsa算法

    强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例 5.1 TD预测 例5.1 回家时间的估计 5.2 TD预测方法的优势 例5.2 随机移动 5.3 ...

  7. nginx学习总结五(nginx反向代理)

    nginx学习总结五(nginx反向代理)                             2011-02-28 12:59:33标签:反向代理nginx负载均衡            原创作 ...

  8. webpack入门学习手记(一)

    本人微信公众号:前端修炼之路,欢迎关注. 之前用过gulp.grunt,但是一直没有学习过webpack.这两天刚好有时间,学习了下webpack.webpack要想深入研究,配置的东西比较多,网上的 ...

  9. PostgreSQL学习手册(五) 函数和操作符

    PostgreSQL学习手册(五) 函数和操作符 一.逻辑操作符:     常用的逻辑操作符有:AND.OR和NOT.其语义与其它编程语言中的逻辑操作符完全相同. 二.比较操作符:     下面是Po ...

最新文章

  1. |DataDirectory|的使用
  2. Discuz!X安装配置
  3. RFID位置数据这么多,企业应该怎么利用?
  4. 【渝粤题库】广东开放大学 标准的研制与编制 形成性考核
  5. cubemx串口的发送与接收_串口收发模块设计
  6. 第三季度营收不及预期 拼多多收盘跌超15%
  7. 大数据_Flink_数据处理_运行时架构6_slot和并行度的关系---Flink工作笔记0021
  8. python locust post 参数拼接md5_Locust性能测试--接口加密参数关联
  9. JAVA基础【刘意】27天全集【Day02小结】
  10. 谷歌app使用的是什么字体_如何使用Google字体
  11. IEEE年度薪酬报告发布!美国程序员薪资中位数7年来首次下降2.4万
  12. java phaser 实用场景_猿灯塔-Phaser 使用介绍
  13. Matlab中ind2sub函数的使用
  14. css横排文字光影效果_css实现发光文字,以及一点点js特效
  15. 在office2016中,安装mathtype6.9后出现的dll文件缺失问题
  16. 尘埃粒子计数器帮助实时监测半导体车间空气中的粒子数
  17. Mac 安装CodeBlocks
  18. Android学习之利用Intent传递数据
  19. Java细枝末节:运算符优先级表
  20. 【电商项目实战】新增收货地址(详细篇)

热门文章

  1. 【modelsim和debussy】设置
  2. 异常---编译时异常和运行时异常:IO异常、NullPointerException、ArrayIndexOutBoundsException、ClassCastExoeption
  3. arcgis10之生成无背景色的png图片
  4. qq安装路径无效Linux,QQ提示安装路径无效您没有权限的两种解决办法
  5. 【K210】K210学习笔记七——使用K210拍摄照片并在MaixHub上进行训练
  6. mysql 推送微信公众号_10分钟完成微信公众号第三方平台全网发布
  7. SwiftUI 2 redacted新功能超实用的占位符功能(教程含源码)
  8. CH340 和 CH341 使用心得
  9. 跨平台应用即将死亡!
  10. Java计算机毕业设计水果购物商城源码+系统+数据库+lw文档