OGG的孩子-有损音频编码opus

dylancao 2018-01-19 原文

OGG的孩子-有损音频编码opus

  

  Opus是一个有损声音编码的格式,由Xiph.Org基金会开发,之后由互联网工程任务组(IETF)进行标准化,目标用希望用单一格式包含声音和语音,

取代Speex和Vorbis,且适用于网络上低延迟的即时声音传输,标准格式定义于RFC 6716文件。Opus格式是一个开放格式,使用上没有任何专利或限制

Opus集成了两种声音编码的技术:以语音编码为导向的SILK和低延迟的CELT。Opus可以无缝调节高低比特率。在编码器内部它在较低比特率时使用线

性预测编码在高比特率时候使用变换编码(在高低比特率交界处也使用两者结合的编码方式)。Opus具有非常低的算法延迟(默认为22.5 ms),非常适

合用于低延迟语音通话的编码,像是网络上的即时声音流、即时同步声音旁白等等,此外Opus也可以通过降低编码比特率,达成更低的算法延迟,最低可

以到5 ms。在多个听觉盲测中,Opus都比MP3、AAC、HE-AAC等常见格式,有更低的延迟和更好的声音压缩率。

  从技术上来讲,它的指标是非常高的,具体的技术特性如下所示:性能比较如下图所示:

  1. 6 kb/秒到510 kb/秒的比特率;单一频道最高256 kb/秒
  2. 采样率从8 kHz(窄带)到48 kHz(全频)
  3. 帧大小从2.5毫秒到60毫秒
  4. 支持恒定比特率(CBR)、受约束比特率(CVBR)和可变比特率(VBR)
  5. 支持语音(SILK层)和音乐(CELT层)的单独或混合模式
  6. 支持单声道和立体声;支持多达255个音轨(多数据流的帧)
  7. 可动态调节比特率,音频带宽和帧大小
  8. 良好的鲁棒性丢失率和数据包丢失隐藏(PLC)
  9. 浮点和定点实现
  10.  

  提起opus,不能不提对opus发展贡献很大的两家伟大公司google和skype 以及一个开源组织Xiph。它的开发者是Xiph和skype,其中,它支持音乐(CELT层)

的这部分是由Xiph在继承speex的基础上开发的,这里面的主要贡献者是Jean-Marc Valin(这位老兄十分专注于研究音频编解码,音频编码领域两个开源项目speex

和opus的核心开发者,作为一个程序员,能有这般的贡献,绝对是属于程序员中的第一梯队了)。它支持语音(SILK层)的部分是由skype公司贡献的,skype在是

网络语音服务的执牛耳者,以它的开发实力和在网络音频领域业界的广泛应用,使得silk在语音压缩传输这块绝对可以独步武林。在近十年来,凡是能够领先世界的

互联网技术,总少不了gooole的身影,google在opus的普及中做了大量的贡献,一则就是把opus的性能做了一个严谨的数据分析,给出了opus为什么那么优秀的数

据支撑。另外一个就是在它的产品中广推opus,这个广告效应不是花钱能够搞定的。

  随着opus在最近几年的迭代速度逐渐加快,代码的已经非常成熟了,文档和测试代码也都非常的详尽,很容易上手。后面我会对opus的代码做一个分析。包括移植

使用等。

 

参考文档:

1 https://zh.wikipedia.org/wiki/Xiph.Org%E5%9F%BA%E9%87%91%E6%9C%83 

2 https://jmvalin.ca/ 

3 https://opus-codec.org/comparison/ 

4 https://opus-codec.org/ 

发表于 2018-01-19 09:41 沧海粟 阅读() 评论() 编辑 收藏

 

版权声明:本文为dylancao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/dylancao/p/8315418.html

OGG的孩子-有损音频编码opus的更多相关文章

  1. 音频增益响度分析 ReplayGain 附完整C代码示例

    人们所熟知的图像方面的3A算法有: AF自动对焦(Automatic Focus)自动对焦即调节摄像头焦距自动 […]...

  2. ogg的孩子-无损音频编解码flac

    ogg的孩子-无损音频编解码flac   flac是一款无损的音频压缩编码,它的特点是对音频文件进行无损压缩, […]...

  3. 算法踩坑小记

    经过前面研究图像算法和近阶段研究视频和音频算法的经历经验. 在2019年快要来临的时候,写下这篇小记. 目的很 […]...

随机推荐

  1. 生态和场景一站式集成?来看看小程序的“共享主义”

    mPaaS 小程序市场正式上线,海量小程序一站式集成,用场景拉高终端活跃水位。 点击这里,立即尝试接入第三方应 […]...

  2. mybatis 源码分析(六)StatementHandler 主体结构分析

    分析到这里的时候,mybatis 初始化、接口、事务、缓存等主要功能都已经讲完了,现在就还剩下 Stateme […]...

  3. 跨境电商平台还有哪些?跨境电商出口平台排名 – Austin Liu\’s Fashion

    说到跨境电商平台,大部分人跟我一样,最先想到的就是亚马逊、eBay、速卖通、Wish这四大目前主流的平台。而除 […]...

  4. 【决战西二旗】|理解Sort算法

    前言 前面两篇文章介绍了快速排序的基础知识和优化方向,今天来看一下STL中的sort算法的底层实现和代码技巧。 […]...

  5. W3C标准

           今天在一些招聘要求上有看到这么一条要求“熟悉W3C标准”,什么是W3C标准,说实话当看到这个题目 […]...

  6. ThinkPHP中使用PHPMailer发送邮件

    ThinkPHP中使用PHPMailer发送邮件 1、设置我们的邮箱客户端授权码 2、下载第三方类库 PHPM […]...

  7. 5.4数据准备之抽样和权重计算

     一.抽样方法 随机抽样可以用来开发训练和测试样本 均衡抽样(对称抽样)中,设计的样本中的目标变量具有特定的构 […]...

  8. ABP框架 – 启动配置

    ABP可以在启动的时候对模块进行配置。 配置ABP 在模块的PreInitialize方法中,可以对ABP进行 […]...

展开目录

目录导航