什么是 Opus 音频编解码器?
Opus 是一种完全开放、免版税、用途广泛的音频编解码器,由多个组织共同努力创建,融合了 Skype 的 SILK 编解码器和 Xiph.Org 的 CELT 编解码器的技术。它由互联网工程任务组(IETF)以 RFC 6716 的形式标准化,因此受到媒体的广泛关注。除了新标准之外,Opus 还因其技术主张、为各种比特率和采样率提供高质量实时音频编码和解码的能力而受到广泛应用。
Opus 音频编解码器的历史与发展
Opus 最初来自两个独立的项目:Skype 于 2007 年开始开发的 SILK 编解码器,以及 Xiph.org 于 2007 年开发的 CELT 编解码器。CELT 的第一个版本于 2009 年推出,此后不久,Skype 加入了 IETF,并要求创建一个工作组来开发标准化的“互联网宽带音频编解码器”。在经过激烈的辩论和许多拥有与当前编解码器技术相关的专利的组织的反对后,IETF 于 2010 年 2 月成立了一个工作组。
该工作组促成了 Xiph.org、Broadcom 和 Skype(微软)等多家组织的合作。到 2010 年 7 月,他们已经创建了 SILK+CELT 混合编解码器的第一个工作原型。2011 年 3 月,Opus 实现在人类听力测试中击败了 AAC 和 Vorbis。
Opus 于 2012 年标准化为RFC 6716。作为互联网标准,它随后被浏览器、操作系统和流行的音频/视频软件广泛采用。后来,当 Opus 被规定为 WebRTC 的一部分时,它作为实时通信事实上的编解码器的地位得到了巩固。
为什么选择 Opus?
在音频编解码器方面,Opus 是一个毫无争议的 “万金油”,它汇集了一系列现代功能,可在各种环境下使用。作为互联网标准的事实当然有助于它的普及,但它之所以能成为标准,首先是因为它的性能、独特的功能、无需版税以及许多开源参考资料。
质量
性能不佳的编解码器不会长久。互联网编解码器需要提供压缩功能以尽量减少带宽,但压缩率必须与输出音频质量以及编码和解码音频信息所需的处理过程相平衡。Opus 成功的主要原因之一是它在各种环境中都有出色的表现。
下图来自 opus-codec.org,清楚地说明了 Opus 的性能优势:
如上图所示,在最低比特率下,Opus 比其他流行的互联网音频编解码器提供更好的质量。
低延迟
从用户说话到互联网另一端的其他人听到之间的延迟被称为音频延迟。一般来说,低延迟总是比较好的,在需要双方进行实时互动时,这一点尤为重要。 物理和互联网的特性会带来一些固有的延迟,因此在编码和解码过程中,编解码器最好不要在此基础上增加大量延迟。
Opus 采用默认设置(20 毫秒帧大小),可提供 26.5 毫秒的延迟,因此非常适合 VoIP 通信。
窄带到全带
Opus 的一个独特功能是它既可用于人声采样,也可用于音乐采样。人声大部分时间使用相对有限的频率范围,因此可以更轻松地压缩为所谓的窄带。窄带语音在听时会产生细微但明显的失真。大多数面向语音的编解码器都力求实现能够捕捉整个人类语音范围的宽带音频。另一方面,音乐包含了我们耳朵所能听到的全部频谱范围。这些额外功能的编码需要更多比特,通常被称为全带。
提供低比特率高压缩率的编解码器本质上针对有限的频率范围进行了优化。其他编解码器则针对全频带。Opus 能够支持低带宽语音通信和我们听到的音乐等声音的全频谱,因为它实际上结合了两种不同编解码器的部分内容——用于窄带的 SILK 和用于宽带的 CELT。在编解码器的最新版本中,实际上使用基于深度学习的神经网络算法来确定在给定时间点使用哪种编解码器,因此即使同时存在语音和音乐,也始终会自动使用最佳方法。
控制流量
互联网以数据包为基础,其设计假设其中一些数据包会丢失,因此需要重新传输。然而,在实时通信应用中,重传的时间并不多,因此需要一种不同的方法。流量控制机制用于防止发送方发送的信息超过接收方的接收能力。通常情况下,流量控制是在编解码器之外处理的;但 Opus 实际上内置了流量控制,以获得更好的性能。
Opus 经过高度优化,可根据可用带宽在最佳保真度之间进行快速优化。它还有一个可变比特率(VBR)模式,范围从 6 kbit/s 到 510 kbit/s,以帮助最大限度地减少带宽,同时为有此要求的应用保持稳定的质量。
此外,Opus 还包括掩盖错误和数据包丢失的机制,如前向纠错(FEC)。FEC 可让您在知道某些信息会丢失的情况下发送额外的信息,从而牺牲带宽以获得更高的质量。
免费开源
开发一个编解码器需要大量的工程投资,因此历史上大多数编解码器的使用都需要支付各种许可费用,这一点也不足为奇。使用费的存在,甚至是专利申请的威胁是使用编解码器的巨大障碍。没有人愿意冒突然面临数百万美元或更多费用的风险。因此,市场已经转向免版税的编解码器选择。Opus 就是这一运动的典型代表。
专利制度从来都不是没有风险的,但 Opus 规范作为互联网标准(RFC 6716)是免费提供的。该规范包括一个参考实现,该参考实现也可根据流行的许可条款(BSD 三条款)免费获得,相关版权和专利许可由其持有者自动授予。
这意味着任何人都可以使用 Opus,而不必担心被起诉。经过近十年的使用,Opus 在这个问题上经受住了时间的考验,没有人提出任何法律诉讼。
Opus 选项参考
如前所述,Opus 是一种多用途编解码器,在带宽消耗方面具有灵活性。在大多数情况下,如果用户是在互联网上,并且可能获得最佳性能,实施者应允许默认的 48kHz 完全采样,并允许编解码器根据音频输入和网络条件自动调整。
虽然 Opus 的处理效率通常很高,但在某些情况下,例如在受限设备上支持纯语音对话时,开发者可能会选择限制 Opus 的采样率和最大比特率,以节省 CPU、节约带宽或为视频留出更多带宽。
媒体类型 | 典型用例 | 建议比特率范围 |
窄带语音(NB) | 低带宽网络上纯语音 | 8 至 12 kbps |
宽带语音(WB) | 典型网络上的语音 | 16 至 20 kbps |
全频段语音 (FB) | 良好网络中的语音 | 28 至 40 kbps |
全频带单声道音乐(FB mono) | 使用立体声麦克风的音乐流 | 48 至 64 kbps |
全波段立体声音乐(FB立体声) | 音乐流 | 64 至 128 kbps |
总之,Opus 可以处理各种音频应用,包括 VoIP、视频会议、游戏内聊天,甚至远程现场音乐表演。它可以从低比特率窄带语音扩展到非常高质量的立体声音乐。
ZEGO 实时音视频 SDK 默认支持 Opus 音频编码,如果您想要更好的实时语音效果,可以了解我们新升级的AI音频引擎Purio,带来更纯净、更保真、更舒适的听觉体验。了解更多,请联系我们👇
原创文章,作者:ZEGO即构科技,如若转载,请注明出处:https://market-blogs.zego.im/reports-baike/2029/