认识王立众,是通过一位热心的读者引荐,一番波折后才有了此文,这也是『下一代编解码器』系列采访的第9篇。随着云平台服务的普及,大多数多媒体开发者并不需要了解底层技术。但如果有兴趣扎根于多媒体技术,就需要学习底层技术,而编解码器则是关键的一环。中国三星研究院的音频研发负责人王立众通过LiveVideoStack分享了音频编解码器生态的方方面面。

责编 / Ant

关于编解码器

LiveVideoStack:相对于视频编解码器,音频编解码器有哪些特点?

王立众:简而言之, 我认为音频编解码器要比想象的复杂。

音频编解码, 也就是音频Codec, 实际上分成两类:

一种是在电声领域的硬件音频编解码器, 严格说应称作D/A(数字/模拟)转换器, 其主要作用是编码端把模拟音频信号转换成数字信号,解码端把读取的数字音频信息转换成模拟音频信号输出,供功率放大重放。

另一种即是经常和视频编解码器并列的基于软件的音频编解码器,也就是我们以下讨论的主要内容。

无论音频编码器还是视频编码器, 都是信源编码器,其本质是在尽可能保证编码质量情况下,对信源信号进行压缩, 降低音视频文件需要的存储空间和传输码率。而对信源信号的压缩, 是依靠音视频信号本身的冗余性和相关性, 音频是一维信号, 一维信号的音频可利用的冗余性和相关性要少,因此音频编码器的设计并不简单。

说到音频编码器, 实际上在业内又细分为两个领域,Voice Codec和Audio Codec,Voice Codec一般是指对人的语音进行编码压缩,而Audio Codec是指对音乐信号进行编码压缩。Voice Codec主要用于电信领域,比如手机通话,VoIP,军事保密通信等领域,它要求低延迟,低码率,一般是采用对人的发声过程进行建模,比如经典的CELP模型,就是完美的模拟了人的发声过程。而对于音乐信号,CELP模型就无法完美的模拟各种乐器的发音过程了,所以针对音乐的Audio Codec则从听觉的角度来出发,利用心理声学模型来进行编码。

由于Voice Codec和Audio Codec在各个领域有着不同的应用,也就带来有很多组织在做音频编码器,使得音频编码器种类繁多,既有标准的音频编码器,也有开源的音频编码器,还有各个公司私有的音频编码器。

无论音频编码器还是视频编码器,商用化的时候都需要二次开发。而二次开发的过程,它俩也是存在很大差别。视频编码器一般会给出一套庞大的参考代码,由具体商用化的组织根据自己的需求进行裁减、算法层面的优化、以及针对目标平台的优化。而音频编码器给出的参考代码相对精简一些,尤其是Voice Codec, 在商用化的过程要求任何的优化必须保证bit exact。音频编码器之所以要求这么严格, 是因为人的耳朵会对异常的声音特别敏感,突兀的噪声或者短暂严重的损伤都会严重影响听感,这也是音频编解码的难度所在。所以Voice Codec算法一旦固定下来,商用化的任何改动都要求与原始算法保持bit exact。

LiveVideoStack:评定编解码器质量的标准有哪些?

王立众:音频编码器质量的评定,是一个研究领域。很多人说,音频不止是一门科学,还是一门艺术。所以音频编码的质量评价,也需要从主客观多个维度考察,尤其是需要注重主观评价标准, 因为很多音频编码器的最终目的是给人听的。

音频编码的客观评价标准,也是需要根据具体的情况来分别考虑,比如Voice Codec,常用的有PESQ,最近新出的客观测试标准是POLQA,而Audio Codec,常用的客观测试标准有PSNR、PEAQ等。

而无论客观评价如何,对于音频来说都只是个参考,人的真正的听觉感受更重要。

对于Voice Codec来说,常见的主观评价方法是MOS值评分,就是找一些人根据自己的听觉感受进行打分,最后得出1~5分的一个评价指标。

对于Audio Codec来说就更加复杂,需要根据设计的Audio Codec所面向的应用,选择目标用户进行专业的主观测试,一些专业的主观评价组织,会储备一些“金耳朵”来专门进行高端应用的音频性能评价。

为此ITU-T 设计了一系列的音频主观评价方法,例如:

  1. ITU-T Rec.P.800《Methods for subjective determination of transmission quality》/ITU-T Rec.P.830《Subjective performance assessment of telephone-band and wideband digital codecs》:主要针对各类语音处理系统的输出声音质量进行主观评价,典型方法为MOS平均意见分测试。单次32人次的听音测试项目周期为2-3周。

  2. ITU-T P.805《Subjective evaluation of conversational quality》:对话意见测试,能够提供更接近真实环境下双向交互通讯系统的话音质量评估。典型的单次对话测试实验规模为16组成对测试人员,一般项目周期为1-2个月。

  3. ITU-R Rec.BS.1534《Method for the subjective assessment of intermediate quality level of coding systems》:带隐藏参考和基准的多激励测试(MUSHRA),宜评估中等音频质量的数字音频系统。单次20人次的测试实验周期为3-4周。

  4. ITU-R  BS.1116《Methods for the subjective assessment of small impairments in audio systems》:带隐藏参考的三次听音双盲听评法,宜评估小损伤的高质量音频系统。单次15人次的测试实验周期为1-2月。

  5. ITU-R BS.1285《Pre-Selection Methods for the Subjective Assessment of Small Impairments in Audio Systems》:用于预选测试的双向比较听评方法,宜作为BS1116小损伤音频系统主观测试的预选实验方法。单次15人次的测试实验周期为2-3周。

上面谈到的,仅仅是对编码质量的评价,实际上音频编码的目的,主要还是为了压缩,那么编解码的码率,也是评价编解码的一个因素,它主要反应反映在对音频信息的压缩程度上。从编码后的码率,和编码前的码率对比上,就可以得出一个编码器的压缩率。

除此之外,音频编码的复杂度和延迟,也是一个重要的考察指标,在某些特定领域,如蓝牙可穿戴设备,音频编码的复杂度就占据了更重要的地位。

LiveVideoStack:主流的音频编解码器各自的特点及应用场景分别是什么?

王立众:正如前面说的,大体上音频编解码主要分为两类Voice Codec 和Audio Codec,而且从事音频编解码的组织众多。

从标准化组织看,有ISO/IEC组织制定的MEPEG系列标准,最著名的MP3就是出自这个标准,从MP3的应用可以看出来,MPEG主要面向的是音乐存储和传输的Audio Codec。还有主要面向VoIP应用的ITU-T的G.7xx系列的Voice Codec。针对移动电话的应用,有两大组织3GPP和3GPP2各自推出了以AMR WB、AMR NB、EVRC、EVS为代表的一系列Voice Codec。

各大公司也有各自私有的音频编解码, 因为针对的应用不同,不再一一列举。目前比较有代表性的开源音频编解码是OPUS,他融合了SILK编码器和CELT编码器,在开源音频编解码器中具有较好的性能。

LiveVideoStack:既然主流的音频编解码器有很多, 那么如果使用的话,行业内是怎么付费的呢?

王立众:对于使用音频编码器的收费, 有两种费用: 1. 是算法和专利的费用 2.是商用化代码的费用.

在各个标准化的音频编码器中, 都会有对于音频编码器的专利费的规定, 所以使用标准化的音频编码器,要遵守各标准化组织的收费规定. 对于开源的音频编码器, 要注重其遵守的开源协议, 每个开源的音频编码器都会声明其遵守的开源协议, 使用的时候也需要注意. 如果需要使用各大公司私有的音频编解码, 则需要和他们单独联系商讨费用事宜.

上面说到的是算法和专利方面的费用, 交了这笔费用只代表可以使用这些音频编码器, 但是他们不一定提供商用化的代码. 有不少公司, 可以提供很多音频编码器的商用化代码, 并且收取费用, 那么一定问清楚他们这笔费用, 是仅仅代码的使用费, 还是包括了音频编码器的专利费.

LiveVideoStack:当下对于音频编解码器的研发,业界主要的研究方向是什么?其难点是什么?

王立众:前几年,业界音频编解码器算法研究工作主要集中于Voice Codec 和Audio Codec的联合编码,也就是把两种应用统一到一个音频编码器中,于是在电信领域3GPP组织就诞生了庞大的EVS音频编码器,EVS的推广比较成功,目前已经被选为5G的音频编码器。

随着EVS的成功诞生和推广,大家也在考虑下一步应该做什么的问题。目前不少研究者在研究针对特定场景的音频编码器。

例如目前一些标准化组织正在进行的沉浸式音频编码器,MPEG,3GPP和中国AVS等标准化组织都在积极推进沉浸式音频编码器标准。沉浸式音频编码器的难点在于高质量的还原原始声音,它可能用在音乐会的录制和传输中,那么对于音质,方位感,主观听觉感受的要求都非常高。

针对一些特定领域音频编码起器,如蓝牙设备,可穿戴设备,加密通信领域的音频编码器也在继续的研究中。 这些领域的音频编码器,则要求低延迟,低码率,当然音质本身也要保证。

LiveVideoStack:对于应届生或从其他研发领域转行学习编解码、多媒体开发的技术人,有哪些建议?

王立众:对于学生,如果有意从事音频编码行业,我建议选择业内著名导师和实验室,音频编码是需要一定的积累,国内有不少老师和实验室长期从事音频编码行业,投身到一个有着深厚积累的实验室和严谨治学的导师门下,会打下终身受用的牢固的理论基础。

对从其他研发领域转行学习编解码,建议还是根据工作需要,选择适合的编解码参考代码和参考文档来学习。如果工作中没有需要,需要有强烈的学习兴趣才能坚持下来,毕竟编解码需要一定的积累,而且短期不会带来什么收益的任务,确实有强烈的兴趣学习的话,建议从一些标准化的音频编解码器学习入手。

对于想从事多媒体开发的技术人来说,从编解码入手是一个很好的选择,编解码涉及到多媒体技术的很多知识。比如音频领域,常见的还有音频预处理和音频后处理,这里所谓的“预”和“后”, 其实都是以音频编码器为中心来说的,可见音频编码器在音频领域的地位。

当然,还需要考虑将来目标公司的需求,如果目标是互联网,则需要能够快速的应用,所以需要把目前开源的和标准化的音频编码器都能快速的掌握起来。如果想专心做算法,那么应该选择一家具有雄厚积累的公司,正如之前说的,做音频编码器的算法短期不会带来什么收益,大公司和专业的音频公司会注重这方面的储备,通过产生自己的音频编码算法,申请专利后加入到标准化组织的标准中,然后通过标准中的专利带来长期的收益和回报,这个过程是比较长的, 一个音频编码器的标准,需要数年的制定过程。

LiveVideoStack:能否推荐一些系统学习编解码、多媒体开发的图书、资料?

王立众:学习音频编码的话,可以从标准化的代码和文档入手,学习Voice Codec,可以学习3GPP的AMR WB和EVS, ,3GPP官网的代码和文档都非常的详细。学习Audio Codec,可以选择MPEG的MP3和AAC。

至于图书,因为我个人接触面有局限性,不好一一列举,但是正如之前说过的,选择业内著名导师和实验室就没有错,对于具体方向,Voice Codec要学CELP模型,Audio Codec要学心理声学模型。

王立众:学习多媒体开发从编解码开始相关推荐

  1. 高端对话 | 深度学习能颠覆视频编解码吗

    智能手机的普及降低了音视频创作的门槛,短视频以不同于文字的视觉呈现与信息表达,受到普通人的青睐,也成为企业数字化转型的重要入口. 2016年以来直播市场的爆发,将图像.语音信息的全面数字化进一步向前推 ...

  2. 多媒体基础知识--编解码学习

    视频是现在电脑中多媒体系统中的重要一环.为了适应储存视频的需要,人们设定了不同的视频文件格式来把视频和音频放在一个文件中,以方便同时回放.视频档实际上都是一个容器里面 包裹着不同的轨道,使用的容器的格 ...

  3. 学习多媒体开发的正确姿势?陈功:看书 啃代码 搞插件

    陈功说,要想学好多媒体开发,首先需要兴趣,接下来还需要好的方法.LiveVideoStack邮件采访了声网Agora首席WebRTC架构师,畅聊了自己的成长经历,WebRTC的演进趋势等.陈功表示,W ...

  4. 各种音视频编解码学习详解之 编解码学习笔记(三):Mpeg系列——Mpeg 1和Mpeg 2

    最近在研究音视频编解码这一块儿,看到@bitbit大神写的[各种音视频编解码学习详解]这篇文章,非常感谢,佩服的五体投地.奈何大神这边文章太长,在这里我把它分解很多小的篇幅,方便阅读.大神博客传送门: ...

  5. 各种音视频编解码学习详解之 编解码学习笔记(四):Mpeg系列——Mpeg 4

    最近在研究音视频编解码这一块儿,看到@bitbit大神写的[各种音视频编解码学习详解]这篇文章,非常感谢,佩服的五体投地.奈何大神这边文章太长,在这里我把它分解成很多小的篇幅,方便阅读.大神博客传送门 ...

  6. 各种音视频编解码学习详解之 编解码学习笔记(十三):容器

    最近在研究音视频编解码这一块儿,看到@bitbit大神写的[各种音视频编解码学习详解]这篇文章,非常感谢,佩服的五体投地.奈何大神这边文章太长,在这里我把它分解成很多小的篇幅,方便阅读.大神博客传送门 ...

  7. 各种音视频编解码学习详解之 编解码学习笔记(六):H.26x系列

    最近在研究音视频编解码这一块儿,看到@bitbit大神写的[各种音视频编解码学习详解]这篇文章,非常感谢,佩服的五体投地.奈何大神这边文章太长,在这里我把它分解成很多小的篇幅,方便阅读.大神博客传送门 ...

  8. 学习ffmpeg视音频编解码

    在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的"大神",有的是刚开始学习的初学者.在和大家探讨的过程中,我忽然 ...

  9. 各种音视频编解码学习详解之 编解码学习笔记(十):Ogg系列

    最近在研究音视频编解码这一块儿,看到@bitbit大神写的[各种音视频编解码学习详解]这篇文章,非常感谢,佩服的五体投地.奈何大神这边文章太长,在这里我把它分解成很多小的篇幅,方便阅读.大神博客传送门 ...

最新文章

  1. 史上最全《知识图谱》2020综述论文!!!
  2. pmp知识点详解-项目大牛整理_PMP核心知识点第六章:项目进度管理(3)
  3. css实现垂直居中的几种方式(布局常用)
  4. ArrayBlockingQueue源码
  5. matlab怎么删除上一条命令_怎么恢复电脑上删除的图片?四大步搞定
  6. 部分Dell 740 不支持 Xen Server?
  7. java开源播放器_JavaFX/Java8开发的开源音乐播放器
  8. 谷歌宣布开源 Live Transcribe 语音识别转文字工具
  9. spring,springmvc,mybatis整合ssm框架出现ORA-02289:序列不存在问题
  10. 锁定Excel部分单元格不能编辑,可以这样操作
  11. 多线段几何图形—— 简单几何图形(判断一个点是否在图形的内部)
  12. 没有明星代言,如何让用户相信你的产品?
  13. kafka connector使用(单机手动启动版)
  14. poi-tl导出word复杂表格(单元格合并,生成复杂表格)
  15. 揭秘京东区块链开源项目——JD Chain
  16. 推荐系统实践Task1:熟悉新闻推荐系统基本流程
  17. ORACLE连接不上 Linux网络 端口 问题判断
  18. dubbo2.7.x
  19. 新鲜出炉2018年上半年(低、中、高价位)SUV车型销量排行榜
  20. 构建ubuntu下的JXTA-C开发环境

热门文章

  1. SQL Server表结构和数据导入到MySQL
  2. Open*** 安装脚本
  3. ASP.NET 2.0+Atlas编写鼠标拖放程序(2)
  4. HDU - 3126 Nova(最大流+二分+简单几何)
  5. CodeForces - 1095C Powers Of Two(思维)
  6. 计算机硬盘满了怎么解决,使用SSD硬盘空间清理 C盘爆满怎么办
  7. java oss 批量传输_阿里云OSS对象存储,服务端签名后直传阿里云OSS
  8. 0459-Repeated Substring Pattern(重复的子字符串)
  9. Python基础01-变量及数据类型
  10. NJUST4316(立体几何投影的面积交)