Webrtc AGC 算法原理介绍(一)
来源:互联网 发布:删除数据库 drop 编辑:程序博客网 时间:2024/05/22 23:11
Webrtc AGC 算法原理介绍(一)
标签(空格分隔): 音频算法
零、前言
本系列介绍Webrtc的agc算法。webrtc的agc算法对各种情况作了较为详尽的考虑,而且使用了的定点数的方法来实现,因此内容比较多。尽量再这几篇文章中描述清楚。
一、AGC模块的结构与简介
较新的webrtc已经把原来的agc模块移动到了一个叫做legacy的文件夹。这个回头再写文章详细介绍。我还是从旧的agc算法开始讲起。Webrtc 的AGC算法的结构如下
|–\include |–gain_control.h
agc—|–analog_agc.c
|–analog_agc.h
|–digital_agc.c
|–digital_agc.h
gain_control.h是包装的头文件,在apm里头gain_control_impl调用。主要包括了接口定义函数和参数配置。
对于该文件着预先说一下配置的含义。
enum{ kAgcModeUnchanged, kAgcModeAdaptiveAnalog, kAgcModeAdaptiveDigital, kAgcModeFixedDigital};typedef struct{ int16_t targetLevelDbfs; // default 3 (-3 dBOv) int16_t compressionGaindB; // default 9 dB uint8_t limiterEnable; // default kAgcTrue (on)} WebRtcAgc_config_t;
枚举是agc的使用模式,一个是kAgcModeAdaptiveAnalog、kAgcModeAdaptiveDigital和kAgcModeFixedDigital是常用的三种模式。kAgcModeAdaptiveAnalog带有模拟音量调节的功能。kAgcModeAdaptiveDigital是可变增益agc,但是不调节系统音量。kAgcModeFixedDigital是固定增益的agc。
WebRtcAgc_config_t是配置targetLevelDbfs和compressionGaindB用于调节agc的动态范围。
analog_agc.h包括模拟的agc结构体声明,而gain_control.h中的接口函数在analog_agc.c中实现。
另外在analog_agc.c还包括以下函数:
digital_agc.h包括数字的agc结构体声明,Vad结构声明,而gain_control.h中的接口函数在analog_agc.c中实现。
- Webrtc AGC 算法原理介绍(一)
- Webrtc AGC 算法原理介绍(二)
- Webrtc AGC 算法原理介绍(三)
- Webrtc AGC 算法原理介绍(四)
- #Webrtc AGC 算法原理介绍(五)
- Webrtc AGC 算法原理介绍(六)
- webrtc(一) agc
- webrtc agc
- WebRTC之AGC自动增益控制
- 单独编译和使用webrtc音频增益模块(AGC)
- Android 单独抽取 WebRtc-AGC(音频增益) 模块
- WebRTC GCC算法介绍
- WebRTC GCC算法介绍
- 自动增益(AGC)算法小结
- Android之WebRTC介绍(一)
- AGC算法分析
- 自适应增益AGC算法
- Webrtc 回声消除 三(NS、VAD、AEC、AGC设备端终结篇)
- u-boot-2016.09 make工具之fixdep
- iOS开发 强制竖屏。系统KVO 强制竖屏—>适用于支持各种方向屏幕启动时,竖屏展示广告
- Linux网络协议栈之数据包处理过程
- VR/AR时代最大的瓶颈是什么?
- JNI 方法
- Webrtc AGC 算法原理介绍(一)
- Android程序开发————ActionBar和ToolsBar
- 49. Group Anagrams
- RIOT操作系统的介绍
- C语言学习笔记 lesson9 scanf 详解
- maven 加入本地仓库
- 蒙特卡罗算法 与 拉斯维加斯算法
- xmapp_mysql端口冲突解决---Port 3306 in use by......
- android studio中写中文注释时,输入法不跟随光标问题