2010年10月份开始到11年一月期间,也就是保研的事定下来以后,根据老师安排,我就在实验室用TI公司的DM642(用的是SSD的开发板)改编了一段用ITU的G.723.1标准的采集和编码、解码和播放程序。主要功能是实现麦克风采集和编码同时进行,解码和话筒播放同时进行。
本来觉得挺简单的,起码比实验室师兄们做的H.264的视频编解码改编简单,因为音频的数据量小的多嘛!基本不用做啥优化的。不过后来改编的时候倒还真的要做点程序优化来提高编解码速度,这倒不是主要工作量,而是音频的采集、播放、编码解码的输入输出等程序接口问题困扰了我很久。
废话不说,先上图:两边就是两个程序实现功能的原理图
上图为本实验需要实现的最终原理图:左侧是发送端,用话筒采集话音并实时根据G.723.1编码,编码后的码流通过网络传输给接收端,接收端解码接收到的码流并实时地播放输出给耳机。
但是由于本实验不涉及数据的传输,所以,期望获得的程序只包含发送端的采集和编码程序,以及接收端的解码和播放程序,前者的输出用写入硬盘的PCM文件模拟,后者的输入用从硬盘中读取的PCM文件模拟。
为了确保采集与编码、解码与播放能同时进行,需要满足以下条件:发送端的编码速率V2大于采集速度V1,接收端解码速率V4大于播放速度V3。
1、 用AD芯片TLV320AIC23配合DM642完成音频的采集与播放
音频的采集与播放的原理:TLV320AIC23对输入的模拟信号进行采样、量化和编码,数据自动传给多信道缓冲串行端口McBsp。若要采集声音信息,需用与AIC23采样频率相同的频率从McBsp中取数到