Audio: 音频系统

1. Codec – (Coder-Decoder)

英文缩写:Codec, 支持视频和音频压缩(CO)与解压缩( DEC ) 的编解码器或软件。CODEC技术能有效减少数字存储占用的空间,在计算机系统中,使用硬件完成CODEC可以节省CPU的资源,提高系统的运行效率。

Codec对AD变换后的音视频数字信号的传输进行编码、压缩,在接收端对信号解码。一般用在视频会议、流媒体、视频应用等场合。

CODEC就是多媒体数字信号编解码器,主要负责数字->模拟信号转换(DAC)和模拟->数字信号的转换(ADC)。不管是音频加速器好,还是I/O控制器好,他们输入输出的都是纯数字信号,我们要使用声卡上的Line Out插孔输出信号的话,信号就必须经过声卡上的CODEC的转换处理。可以说,声卡模拟输入输出的品质和CODEC的转换品质有着重大的关系,音频加速器或I/O控制器决定了声卡内部数字信号的质量,而CODEC则决定了模拟输入输出的好坏。

2. 物理结构

音频编解码器Codec负责处理音频信息,包括ADC,DAC,Mixer,DSP,输入输出以及音量控制等所有与音频相关的功能。

            Codec与处理器之间通过I2C总线和数字音频接口DAI进行通信。

            I2C总线 - 实现对Codec寄存器数据的读写。

    DAI - 实现音频数据在CPU和Codec间的通信。

以Codec作为研究对象,它的输入有Mic(Microphone),PhoneIn电话信号等,输出有耳机HP(HeadPhone),扬声器Speaker和PhoneOut电话信号。另外需要注意在Codec与CPU端间也有音频数字信号的输入输出。

 3. 应用情景

3.1. 播放音乐

 3.2. 录音 

 

 3.3. 打电话

 3.4. 接电话

 3.5. 通过蓝牙打电话

 3.6. 通过蓝牙接电话

 4. Android音频系统架构

Android的音频系统拥有一个比较标准和健全的架构,从上层应用,java framework服务AudioMananger,本地服务AudioFlinger,抽象层AlsaHAL,本地库,再调用external的Alsa-lib外部支持库,最后到底层驱动的codec,可谓"五脏俱全"。

猜你喜欢

转载自www.cnblogs.com/dongshenscut/p/12757408.html