Opus编解码协议入门

主要参考资料:
走进音视频的世界——Opus编解码协议: https://blog.csdn.net/u011686167/article/details/126647876
官网链接: https://www.opus-codec.org

1.简介

Opus是一种开源免费的音频编解码器,支持音乐和语音,具有低延时、带内FEC、DTX、PLC等特点,默认22.5ms延时,非常适用网络实时传输。Opus协议收录于RFC6716,使用SILK和CELT两种编码。

Opus在语音app应用很广泛,包括VoIP、视频会议、语音聊天、音乐直播演唱会等。即支持低码率语音,也支持高音质音乐。特点如下:

  • 码率支持从6kb/s到510kb/s;
  • 采样率支持从8kHz到48kHz;
  • 可变帧长从2.5ms到60ms;
  • 支持CBR和VBR两种码率模式;
  • 音频带宽从窄带到全频带;
  • 支持语音和音乐;
  • 支持多达255个声道;
  • 动态调整码率、带宽、帧大小;
  • 支持PLC丢包隐藏;

2.码率与音质、延时的关系

2.1 音质与码率比较

Opus、AAC、MP3、Vorbis等codec的质量与码率对比,如下图所示:
在这里插入图片描述
窄带音频主要覆盖了人声的主要信息频段(大约300Hz到3400Hz)。
全带(Full Band, FB)的音频覆盖范围是20kHz的音频带宽。

由图可见,Opus的码率从6kb/s到128kb/s都是音质最高的,接着是AAC、Vorbis,而MP3是在128kb/s时取得不错音质。

2.2 码率与延时对比

在这里插入图片描述

由图可见,Opus的码率从6kb/s到80kb/s时,延时都是最低的,编码效率非常高。

3.Opus编解码框架

Opus的编解码框架包括:VAD静音检测、音调分析、预测分析、噪声整形分析、长期预测量化、线谱频率量化、增益量化。如下图所示:
在这里插入图片描述

4.DTX非连续传输

DTX,Discontinuous Transmission,用于检测静音传输时,自动降低码率节省带宽。前面提及的VAD模块就是用来静音检测。DTX适用于VBR和CBR码率模式,会稍微降低声音质量。因此,建议在网络带宽受限条件下,才开启DTX。

5.FEC前向纠错

FEC,Forward Error Correct,通过添加先前数据包的冗余数据到当前包,实现前向纠错。Opus允许带内的FEC。编码器决定是否使用FEC取决以下条件:

  • 外部提供信道丢包率估计;
  • 外部提供信道容量估计;
  • 语音或音乐对丢包的敏感度;
  • 解码器有没请求带内FEC信息;

发生丢包时,接收端可以根据FEC重建数据包。但是,每个数据包加上FEC导致数据量变大,所以FEC需要根据实际情况使用(比如丢包率达到一定程度)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值