编解码学习笔记(十):Ogg系列
Ogg是一个自由且开放标准的容器格式,由Xiph.Org 基金会所维护。Ogg格式并不受到软件专利的限制,并设计用于有效率地串流媒体和处理高质量的数字多媒体。
Ogg意指一种文件格式,能够纳入各式各样自由和开放源码的编解码器,包括音效、视频、 文字(像字幕)与元数据的处理。
Ogg Theora
Theora是一个免权利金、开放格式的有损影像压缩技术,由Xiph.Org 基金会开发,该基金会还开发了著名的声音编码技术Vorbis, 以及多媒体容器档案Ogg。Theora 是由 On2 Technologies 公司专属的 VP3 编码器经过开放源码后衍生而来。Theora 的命名来自于一个电视节目Max Headroom。
Theora是一个可 变位速率、以DCT为基础的影像压缩格式。和多 数的影像编码格式一样,Theora 使用了色度抽样、block based motion compensation 和 8×8 DCT block,也支援视 讯压缩图像类型 和 视 讯压缩图像类型,可是不支持使用在 H.264 和 VC-1 的 bi-predictive frames(B-frame),Theora 也不支援 隔 行扫描, variable frame rates, 或 bit-depths larger than 8 bits per component。
Theora 的影像流能够储存在不论什么的容器档案格式中,最经常使用的是和声音编码Vorbis一起储存在Ogg档案格式中,这样的方式能够提供全然开放、免权利金的多媒体档案。此外Theora影像也能够储存在Matroska档 案中。
Google官方blog称,Web视频眼下没有一个标准,有些站点使用Flash,但这要求用户有Flash播放 器;有些使用Java播放器,但为了在JVM虚拟机中解码视频和音频用户须要一个配置非常高的机器;等等诸如此类。
好消息是新一代的 HTML 5标准引入了视频元素,Web开发人员能够用一种标准的方式指定视频的外观。如今问题变成了使用哪一种视频格式。
Google 觉得开放标准格式能够成为眼下无序的视频格式之争的底线。最后的权益方案不须要最复杂的格式,或者是最大张旗鼓宣传,差点儿已成为行业标准的格式,因此他们决定选择支持使用广泛的开源Ogg Theora格式。
Theora是On2 Technologies 公司的 VP3 编码器的开源衍生版,Google于去年收购了On2公司。
资料来源:http://tech.it168.com/a2010/0412/872/000000872493.shtml
在2002年3月,On2将许可改为下周VP3开源码为LGPL。在2002年6月,On2将VP3作为Xiph.Org只和下的一个相似BSD的开源许可。On2还制定了一个不可更改的免版权费的声明,不论什么人能够用于不论什么软件,不论什么的衍生产品以及不论什么目的。2002年88月,On2与Xiph.Org签订一项协议,将VP3作为一个新的,免费的视频编解码,成为Theora。On2宣称Theora是VP3的一个继任者。在2002年10月3日,On2和Xiph宣布Theora最早的Alpha代码释放。
比特流格式在2004年冻结(version 1.0 alpha3),有经过了几年的beta版本号,Theora第一稳定版本号(v1.0)在2008年11月释放。Theora不论什么版本号的视频编码在格式冻结后都与未来的播放器兼容。眼下的工作集中在“Thusnelda”分支的bug修复,眼下为beta版本号,将最后作为Theora1.1版本号释放。
Theora视频压缩格式基本上与VP3视频压缩格式兼容,包括一个后先兼容的超集。Theora是VP3和VP3流(有小量语法修订)的超集,VP3流能够不经过又一次压缩改为Theora流,可是反过来把成立。VP3视频压缩能够由Theora来实现解码,可是Theora视频演示通常不能够使用古老的VP3来进行解码。
Theora将视频格式建立在开源的基础上,并作为基百科视频内容选择的编码格式。然而,Theora缺少商业支持,并正努力获取分销商尤其是网络分销商接受。
Mozilla使用这项技术在Firefox上提供HTML5视频。苹果和微软的HTML5视频都准备採用 MPEG LA管理的H.264。该团体的成员包含微软和苹果,及很多科技公司。
这里面的争议关键在于license的问题,H.264是须要给license的。
Mozilla则发出下面声明:“我们相信,HTML5视频在多方、开放和无权利金的编/解码器,以同于W3C授权标准之方式支持下,才符合公众利益。如 果MPGA LA愿意依据W3C标准定义的开放网络条件提供H.264,我们绝对会考虑採用这项技术。本组织坚持我们对Theora的立场。”
Opera首席技术官Hakon Wium Lie也提供下列声明;“为了开放网络的成长茁壮,全部媒体(包含视频),必须在无需支付编/解码器授权费的前提下使用。真正支持一个开放网络的浏览器制造商,必须努力建造一个无授权费的基本影音编/解码器。”
微软的公司博客写道:“源码是否能取得,与知识产权之间的差别,在于可取用的源码是极度必要的。眼下,H.264的知识产权,可通过MPEG LA管理的一个定义明白的方案取得。其他编/解码器的权利通常较不清楚。”
Ogg Vorbis
Ogg 的音频编码, 质量很优秀,特别是低码率下,支持多声道。最高码率可以达到 500kbps,是 AAC 的有力竞争者。
「Ogg」这个词汇通常意指Ogg Vorbis此一音频文件格式,也就是将Vorbis编码的音效包括在Ogg的容器中所成的格式。在以往,.ogg此一扩展名以前被用在不论什么Ogg支持格式下的内容,但在2007年,Xiph.Org基金会为了向后兼容的考虑,提出请求,将.ogg仅仅留给Vorbis格式来使用。 Xiph.Org基金会决定创造一些新的扩展名和媒体格式来描写叙述不同类型的内容,像是仅仅包括音效所用的.oga,包括或不含声音的影片(涵盖 Theora)所用的.ogv和程序所用的.ogx。
Vorbis的是一个 开源自由软件 项目负责人是 Xiph.Org 基金会。该项目产生的数位音频格式规范和软件实施(编译码器)为有损音频压缩。 Vorbi是最经常使用的结合与Ogg容器格式,因此通常被称为 Ogg Vorbis格式.
Vorbis是一个延续的音频压缩的开发始于 1993年 克里斯蒙哥马利.集约发展始于1998年9月后,信弗劳恩霍夫协会 该公司宣布将收取许可费为 MP3音频格式。Vorbis的项目開始作为公司的一部分,Xiph.Org 基金会的Ogg项目(也称为 OggSquish多媒体项目)。克里斯蒙哥马利開始工作的项目,并协助越来越多的其他开发商。他们继续完好 源码 直到Vorbis的文件格式被冻结 2000年5月为 1.0 和一个稳定的版本号(1.0)的參考软件公布于 2002年7月19日。
Ogg Speex
Ogg 的语音编码,专门针对低码率的语音编码。
Ogg FLAC
Ogg 的无损音频编码。
On2 VPX 系列
On2 公司开发了一系列优秀的视频编码,如今应用得最多的恐怕是 Nullsoft Video 的视频,它们就採用了 VP3,VP5,VP6 视频编码。
VP3
已经作为开放源码发布,如今 是 Ogg Theora 项目,当然,Theora 的质量可比 VP3 好多了。
VP4
On2 公司当年吹牛全球最好的视频编码,后来证明质量非常一般。
VP5
至今还非常神奇,On2 并没有放出来,仅仅在 Nullsoft Video 里面见到他的身影。
VP6
从一開始,On2 就把这个编码器提供给大家下载,质量还是不错的。只是近期似乎又关闭了,主页上仅仅有一个解码器。On2 TrueMotion VP6是一个专有的有损视频编解码格式和视频编解码器。它是TrueMotion视频编解码的详细体现,是一系列由On2开发的视频编解码,通产个用于Adobe flash,Flash Video和JavaFX媒体文件。
VP7
On2 最新的编码器,在 VP6 上有不少进步。在2005年1月,On2宣布推出比VP6有更好的压缩比的新的编解码VP7。在2005ian4月,On2公司许可On2视频编码器9包含VP6和VP7)用于Macromedia Flash。在2005年8月,Macromedia宣布他们选择VP6作为新的Flash Player8的视频回放的旗舰式编解码。
VP8
Google在2009年收购了On2 Technologies,并于2010年5月19日在Google I/O会议上宣布将VP8以BSD许可证的形式开源。。VP8是On2 Technologies继VP3之后宣布开源的第二个编解码器。(Xiph.Org 基金会于2002年接手VP3并将之冠名以Theora,之后以BSD许可证的形式将Theora开源)。要求Google将VP8开源的最大呼声来自于自由软件基金会。2010年3月12日,自由软件基金会给Google发了一封公开信,请求Google逐渐用开源形式的VP8和HTML 5代替YouTube上的Adobe Flash和H.264。
2010年5月19日,WebM启动。WebM包括了来自于Mozilla、Opera、Google以及其它四十多家出版商和计算机软硬件供应商(包括AMD、NVIDIA)的贡献,旨在大力倡导在HTML5中使用VP8。Internet Explorer 9在安装了适合的编解码器之后也能支持VP8。
注:上述材料来源于wiki的整理。
关链接: 我的产业生态链和杂谈文章
编解码学习笔记(十):Ogg系列的更多相关文章
- 我的Android进阶之旅------>Android中编解码学习笔记
编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...
- 【视频编解码·学习笔记】8. 熵编码算法:基本算法列举 & 指数哥伦布编码
一.H.264中的熵编码基本方法: 熵编码具有消除数据之间统计冗余的功能,在编码端作为最后一道工序,将语法元素写入输出码流 熵解码作为解码过程的第一步,将码流解析出语法元素供后续步骤重建图像使用 在H ...
- 【视频编解码·学习笔记】11. 提取SPS信息程序
一.准备工作: 回到之前SimpleH264Analyzer程序,找到SPS信息,并对其做解析 调整项目目录结构: 修改Global.h文件中代码,添加新数据类型UINT16,之前编写的工程中,UIN ...
- 【视频编解码·学习笔记】3. H.264视频编解码工程JM的下载与编解码
一.下载JM工程: JM是H.264标准制定团队所认可的官方参考软件.网址如下 http://iphome.hhi.de/suehring/tml/ 从页面中可找到相应的工程源码,本次选择JM 8.6 ...
- 【视频编解码·学习笔记】6. H.264码流分析工程创建
一.准备工作: 新建一个VS工程SimpleH264Analyzer, 修改工程属性参数-> 输出目录:$(SolutionDir)bin\$(Configuration)\,工作目录:$(So ...
- 【视频编解码·学习笔记】13. 提取PPS信息程序
PPS结构解析 与之前解析SPS方式类似 一.定义PPS类: 在3.NAL Unit目录下,新建PicParamSet.cpp和PicParamSet.h,在这两个文件中写入类的定义和函数实现. 类定 ...
- 【视频编解码·学习笔记】5. NAL Unit 结构分析
在上篇笔记中通过一个小程序,可以提取NAL Unit所包含的的字节数据.H.264码流中的每一个NAL Unit的作用并不是相同的,而是根据不同的类型起不同的作用.下面将对NAL Unit中的数据进行 ...
- 【视频编解码·学习笔记】7. 熵编码算法:基础知识 & 哈夫曼编码
一.熵编码概念: 熵越大越混乱 信息学中的熵: 用于度量消息的平均信息量,和信息的不确定性 越是随机的.前后不相关的信息,其熵越高 信源编码定理: 说明了香农熵越信源符号概率之间的关系 信息的熵为信源 ...
- 【视频编解码·学习笔记】2. H.264简介
一.H.264视频编码标准 H.264视频编码标准是ITU-T与MPEG合作产生的又一巨大成果,自颁布之日起就在业界产生了巨大影响.严格地讲,H.264标准是属于MPEG-4家族的一部分,即MPEG- ...
随机推荐
- Weblogic的Admin server进程将CPU消耗尽问题解决
1.serverCPU被耗尽,持续100% 以下附nmon图 2.两个weblogicadmin server进程将CPU耗尽 问题:24298进程,占用百分之四千多的CPU资源 23529进程,占用 ...
- Android应用程序资源的查找过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8806798 我们知道,在Android系统中, ...
- 虚拟机VirtualBox和Ubutu
虚拟机的作用1. 演示环境,可以安装各种演示环境,便于做各种例子: 2. 保证主机的快速运行,减少不必要的垃圾安装程序,偶尔使用的程序,或者测试用的程序在虚拟机上运行: 3. 避免每次重新安装,银行等 ...
- UVa1592 数据库(摘)
输入一个n行m列的数据库(1<=n<=10000,1<=m<=10),是否存在两个不同行r1,r2和两个不同列c1,c2,使得这两行和这两行相同(即(r1,c1)和(r2,c1 ...
- HibernateTemplate类的方法flush()
hibernate的实体都是存储在缓存中的,所以你会发现有的时候当你创建出两个主键相通的实体的时候会报错.正常情况是当你调用save方法的时候,这个实体对象未必已经保存到数据库了,调用close方法的 ...
- 如何解决安卓SDK无法下载Package的问题
转载自:http://jingyan.baidu.com/article/8275fc86dbe84046a03cf69d.html 有些用户在安装好Android SDK后,打开Android SD ...
- [转载]Silverlight实用窍门系列:71.Silverlight的Style
本文版权归作者和博客园共有,欢迎转载,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 原文链接:http://www.cnblogs.com/chengx ...
- Qt中一些常用的格式转换
转自:http://blog.csdn.NET/yh_1988/article/details/7190356 用Qt经常头痛于一些格式不能通用的问题 在此记录备用 1 (20120112)QStri ...
- 超大批量删除redis中无用key+配置
目前线上一个单实例redis中无用的key太多,决定删除一部分. 1.删除指定用户的key,使用redis的pipeline 根据一定条件把需要删除的用户统计出来,放到一个表里面,表为 del_use ...
- OpenCV在ARM上的移植
OpenCV在ARM上的移植 与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方 ...