嵌入式GPS语音导航系统中 MP3的解码与播放
哈夫曼解码时,MP3的音频数据将分为两节(gxanule),这两节在过程编解码时相对独立,每一节中可以解码出576个PCM采样数据,两节可解出1152个采样数据。从二进制101……码流中得到我们所需要的信息的第一步就是解哈夫曼码。解哈夫曼码是一个查表过程,这576个值代表576个频率线上的值,其在不同的块中(如)有不同的含义,可根据不同的比例因子和频带查找相应的码表并解出576个值。
反量化过程就是根据反量化公式和帧边信息来对于长块、短块和混合块采用不同的反量化公式,以恢复576条频率线的真实值。反重排序的作用是为了让MP3编码器使霍夫曼编码更加有效率,而对某些块进行重排序。立体声解码部分的功能是在两个音频通道非独立编码时,进行立体声解码。
混叠消除是为了避免两个相邻子频带之间的混叠,而在解码过程中进行的混叠消除。IMDCT的作用首先是对长块进行18点到36点的IMDCT变换,并对短块进行3个G点到12点的IMDCT变换;其次是根据块类型的不同,分别使用不同的窗类型进行加窗。同时把这36个值的前半部分与上一帧的后半部分相叠加。而把当前块的后半部分存储起来用于和下一块叠加。频率反转补偿是在进入下一步之前对多项滤波器组进行的频率反转补偿,即对奇数子带的奇数时间样点取反。
子带合成滤波是将32个等频带宽内的频域信号反变换成时域信号,然后再经过加窗运算,以得到32个PCM值。本文引用地址://m.amcfsurvey.com/article/166839.htm
2 硬件设计
2.1系统硬件设计
在处理器的选择上,本系统选用SAMSUNG公司的S3C2410。它是基于ARM920T内核的16/32位精简指令集微控制器,是为手持设备和通用设备提供的一款低成本、高效率的微控制器。整个系统硬件的设计过程中主要应用S3C2410 ARM芯片,存储设备外扩SD或MMC存储卡模块,并外接320x240象素的真彩TFT LCD屏进行显示,操控采用四线电阻触摸屏并辅以GPIO外扩的键盘。
2.2音频硬件设计
IIS(Inter-IC Sound)总线是Philips公司提出的串行数字音频总线协议。它是一种面向多媒体应用的音频总线,专用于音频设备之间的数据传输,即把PCM音频数据传至标准编解码器(CODEC)。IIS总线只处理声音数据,其他信号(如控制信号)必须单独传输。为了使电路的引出引脚尽可能少,IIS只使用了3条串行总线,即提供分时复用功能的数据线、左右声道选择线和时钟信号线。
CODEC芯片主要负责模拟信号和数字信号的相互转换。对于本系统来说,更加关心的是将数字PCM信号换为模拟信号,主要是将要播放的文件的音频数字信号通过SC2410的IIS送给CODEC芯片,然后将其转换为模拟信号,进而通过音箱或者耳机等设备输出。
根据采样定理,采样频率至少要是信号频率的2倍以上,再就是要支持IIS接口标准,因为本系统是通过IIS总线向CODEC芯片传输数据的。在本系统的CODEC选用Philips公司的U-DA1341,该芯片采用3.0 V电压供电,并对ADC和DAC分别供电,系统的时钟频率可选256fs、348fs和512fs,采样频率从16 kHz到48 kHz,由于是采用数字音质控制,因此具有重低音效果,并支持IIS总线,可确保高保真的立体声输出。图3所示是UDA1341的工作原理框图。
整个音频系统的硬件设计主要是S3C2410的IIS总线接口和CODEC的连接与实现。其具体电路如图4所示。本系统采用Philips基于IIS音频总线的UDA1341型音频CODEC芯片。该CODEC支持ⅡS总线数据格式,并采用位元流转换技术进行信号处理,具有可编程增益放大器(PGA)和数字自动增益控制器(AGC)。
S3C2410内置IIS总线接口,可直接外接8/16比特的立体声CODEC,还可以给FIFO通道提供DMA传输模式而非中断模式,从而使数据发送和接收同时进行。该IIS接口有3种工作方式,可以通过设置IIS的CON寄存器来选择。本文介绍的硬件框架主要基于传输和接收模式。在这种模式下,IIS数据线将通过双通道DMA同时接收和发送音频数据,其DMA服务请求可由FIFO只读寄存器自动完成。
图4中,S3C2410的IIS总线信号与UDA1341的IIS信号直接相连,L3接口引脚L3MODE、L3CLOCK和L3DATA分别连接到S3-C2410的GP-B1、GPB2和GPB3三个通用数据输出引脚。U-DA1341对外可提供两组音频信号输入接口,每组包括左右2个声道。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论