音频Audio模块

2024-11-18  本文已影响0人  xqiiitan

一、概述
音频(AUDIO)模块包括四个子模块:

二、音频输入(AI) 和 音频输出(AO)
2.1 音频接口和 AI、 AO 设备

音频输入输出接口简称为AIO( Audio Input/Output)接口,用于和Audio Codec对接,完成声音的录制和播放。
AIO接口分为两种类型:只支持输入或只支持输出。

当为输入类型时,又称为AIP;
当为输出类型时,又称为AOP
AI设备:在海思媒体处理软件中,将音频输入(AI)接口抽象为 AI设备;
AO设备:在海思媒体处理软件中,负责抽象音频接口输出功能的单元;

SS528芯片内部集成 1 个 AIO, 包含 2 个 AIP(Audio Input Port)和 2 个 AOP(Audio Output Port),也就是有2个AI设备、2个AO设备。

2.2 录音和播放原理
录音:采集声音,转换成数字信号并保存起来的过程,一般有如下三个过程:

播放:将保存的数字信号的声音取出,转换成模拟信号输出的过程:

播放.png

2.3 AI、AO 通道
AIO在不同协议时,支持的AI、 AO多路复用模式有差异,不同的解决方案也不相同。
AI、 AO可以在AI/AO设备最大支持的比特范围内,按采样精度拆分AI和AO通道,并按照时序上的顺序,依次视为AiChn0、 AiChn1等或AoChn0、 AoChn1等。例如:SS528的AIO最大支持左右声道各160bit,可以拆分为16bit 20通道,也可以拆分32bit 10通道等等。
SS528V100 AIO 最大支持 AI、 AO 通道数如下图:

AI、AO 通道.png

SS528V100/SS524V100上音频AI支持的最大通道数为20通道, I2S模式下AO支持的最大通道数为8通道(每根数据线支持2通道,受I2S数据线数量限制,最大仅4通道有效), PCM模式下AO支持的最大通道数为1通道。多通道情况下, AI、 AO视通道排列中相对应的两通道为立体声输入输出。

2.4 重采样
重采样:将一个音频信号从一个采样率转换为另一个采样率。

音频输入和音频输出模块支持对音频数据实施重采样。

音频重采样支持任意两种不同采样率( 64k、 96k除外)之间的重采样,也支持64kHz下采样到8kHz或16kHz。

三、音频编码和解码

海思SS528的音频编码、解码都是用软件的,而非硬件。
SDK音频的编码类型G711、 G726、 ADPCM_DVI4、 ADPCM_ORG_DVI4、ADPCM_IMA均使用CPU软件编解码。
所有的解码功能都基于独立封装的音频解码库,核心解码器工作在用户态,使用CPU软件解码。
SDK支持通过SYS模块的绑定接口,将一个AI通道绑定到AENC通道,实现录音编码功能;
也可以将一个ADEC通道绑定到AO通道,实现解码播放功能。

3.2 音频编解码协议


音频编解码协议说明.png

表中列出来的编码协议,仅支持对单个声道的音频帧进行编码,如果送给编码通道的是立体声音频帧,则只会对左声道数据进行编码,编码出来的码流只带左声道数据。

3.3 语音帧结构
使用语音编解码库进行G711、 G726、 ADPCM格式的编码,编码后的码流遵循以下表格中描述的帧结构,即在每帧码流数据的净荷数据之前填充有4个字节的帧头;使用语音编解码库进行以上格式的解码时,需要读取相应的帧头信息。

帧头中的数据净荷长度(单位:short)字段计算公式:
数据净荷长度 = (每帧采样点数 – 输入预测采样点数)/压缩率 + 输出预测帧头长度。

下图是语音帧结构:


语音帧结构.png
上一篇 下一篇

猜你喜欢

热点阅读