嵌入式GPS语音导航系统中MP3的解码与播放
时间:11-17
来源:与非网
点击:
0 引言
近年来,电子技术的迅猛发展,使得嵌入式系统在越来越广泛的领域得到应用。嵌入式系统平台的功能也越来越强大,复杂度也越来越高,同时对其开发的难度和要求也越来越高。在开发过程中需要将应用软件和系统软件作为一个整体考虑,而且软件和硬件的联系也更加密切。所以,嵌入式系统的开发是一个复杂的过程。随着嵌入式系统性能的大幅度提高,老式的GPS导航仪已开始向嵌入式方向发展。嵌入式GPS导航仪已越来越便携,功能越来越强大,语音导航和媒体功能已成为嵌入式GPS导航仪的一大突出的亮点。所以,MP3音频解码与播放技术现已成为嵌入式GPS导航系统中的一项基本技术。MP3的全称是MPEG Audio Layer 3,是目前流行的一种音频编码方案。它是1992年制定的MPEG-1标准的一部分,MPEG标准由系统、视频和伴音三部分组成。其中伴音标准共分三层,MP3作为其中的第三层,是运算复杂度最高而压缩效果最好的一层。比起传统的CD格式来,其音效已相差无几,但数据量却不及CD的十分之一。同时,MP3播放器的便携性和续航能力都比CD有大幅度的提高。MP3最初应用于数字音频广播以及数字电视伴音等;之后,随着其流行程度的提高,在其他场合,尤其是互联网音乐和便携式娱乐设备上也开始大量使用MP3格式;现在,几乎所有便携式语音导航设备都采用MP3作为其音频媒体格式。本文主要介绍了基于ARM核心的嵌入式GPS导航系统平台下MP3音频文件的解码技术。以便利用自行设计的方案在Windows CE.NET系统下运用三星公司S3C2410平台,从而实现MP3的解码播放功能。
1 MP3解码原理
1.1 MP3的文件格式
MP3文件由数量不等且相互独立的帧(frame)组成,每个帧包含1152个采样信息,一个MP3每帧包含帧头、错误校验、音频数据和辅助数据四部分。图1所示是MP3的帧结构示意图。MP3文件的最后128字节通常包含有ID3v1标签,并附加有用户定制的文件附加内容,如歌曲名称、演唱者、风格说明等。
1.2 MP3解码流程
原始PCM(脉冲编码调制)音频数据在经过压缩编码之后将得到MP3码流,MP3解码就是把MP3码流恢复成原始的PCM数据。MP3数据以帧为单位,解码应首先根据同步信息及错误校验CRC模块找出MP3帧在码流中的位置,并由此确定帧头、CRC校验、音频数据及辅助数据的所在位置。
图2所示是MP3的解码流程,它主要包括哈夫曼解码、反量化、反重排序、立体声解码、混叠消除、IMDCT、频率反转补偿、子带合成滤波等。图2中的预处理的作用是读取头部数据并将需要的信息按结构存放起来,以便后续解码。
哈夫曼解码时,MP3的音频数据将分为两节(gxanule),这两节在过程编解码时相对独立,每一节中可以解码出576个PCM采样数据,两节可解出 1152个采样数据。从二进制101……码流中得到我们所需要的信息的第一步就是解哈夫曼码。解哈夫曼码是一个查表过程,这576个值代表576个频率线上的值,其在不同的块中(如)有不同的含义,可根据不同的比例因子和频带查找相应的码表并解出576个值。
反量化过程就是根据反量化公式和帧边信息来对于长块、短块和混合块采用不同的反量化公式,以恢复576条频率线的真实值。反重排序的作用是为了让MP3编码器使霍夫曼编码更加有效率,而对某些块进行重排序。立体声解码部分的功能是在两个音频通道非独立编码时,进行立体声解码。
混叠消除是为了避免两个相邻子频带之间的混叠,而在解码过程中进行的混叠消除。IMDCT的作用首先是对长块进行18点到36点的IMDCT变换,并对短块进行3个G点到12点的IMDCT变换;其次是根据块类型的不同,分别使用不同的窗类型进行加窗。同时把这36个值的前半部分与上一帧的后半部分相叠加。而把当前块的后半部分存储起来用于和下一块叠加。频率反转补偿是在进入下一步之前对多项滤波器组进行的频率反转补偿,即对奇数子带的奇数时间样点取反。
子带合成滤波是将32个等频带宽内的频域信号反变换成时域信号,然后再经过加窗运算,以得到32个PCM值。
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的工作原理框图。
近年来,电子技术的迅猛发展,使得嵌入式系统在越来越广泛的领域得到应用。嵌入式系统平台的功能也越来越强大,复杂度也越来越高,同时对其开发的难度和要求也越来越高。在开发过程中需要将应用软件和系统软件作为一个整体考虑,而且软件和硬件的联系也更加密切。所以,嵌入式系统的开发是一个复杂的过程。随着嵌入式系统性能的大幅度提高,老式的GPS导航仪已开始向嵌入式方向发展。嵌入式GPS导航仪已越来越便携,功能越来越强大,语音导航和媒体功能已成为嵌入式GPS导航仪的一大突出的亮点。所以,MP3音频解码与播放技术现已成为嵌入式GPS导航系统中的一项基本技术。MP3的全称是MPEG Audio Layer 3,是目前流行的一种音频编码方案。它是1992年制定的MPEG-1标准的一部分,MPEG标准由系统、视频和伴音三部分组成。其中伴音标准共分三层,MP3作为其中的第三层,是运算复杂度最高而压缩效果最好的一层。比起传统的CD格式来,其音效已相差无几,但数据量却不及CD的十分之一。同时,MP3播放器的便携性和续航能力都比CD有大幅度的提高。MP3最初应用于数字音频广播以及数字电视伴音等;之后,随着其流行程度的提高,在其他场合,尤其是互联网音乐和便携式娱乐设备上也开始大量使用MP3格式;现在,几乎所有便携式语音导航设备都采用MP3作为其音频媒体格式。本文主要介绍了基于ARM核心的嵌入式GPS导航系统平台下MP3音频文件的解码技术。以便利用自行设计的方案在Windows CE.NET系统下运用三星公司S3C2410平台,从而实现MP3的解码播放功能。
1 MP3解码原理
1.1 MP3的文件格式
MP3文件由数量不等且相互独立的帧(frame)组成,每个帧包含1152个采样信息,一个MP3每帧包含帧头、错误校验、音频数据和辅助数据四部分。图1所示是MP3的帧结构示意图。MP3文件的最后128字节通常包含有ID3v1标签,并附加有用户定制的文件附加内容,如歌曲名称、演唱者、风格说明等。
1.2 MP3解码流程
原始PCM(脉冲编码调制)音频数据在经过压缩编码之后将得到MP3码流,MP3解码就是把MP3码流恢复成原始的PCM数据。MP3数据以帧为单位,解码应首先根据同步信息及错误校验CRC模块找出MP3帧在码流中的位置,并由此确定帧头、CRC校验、音频数据及辅助数据的所在位置。
图2所示是MP3的解码流程,它主要包括哈夫曼解码、反量化、反重排序、立体声解码、混叠消除、IMDCT、频率反转补偿、子带合成滤波等。图2中的预处理的作用是读取头部数据并将需要的信息按结构存放起来,以便后续解码。
哈夫曼解码时,MP3的音频数据将分为两节(gxanule),这两节在过程编解码时相对独立,每一节中可以解码出576个PCM采样数据,两节可解出 1152个采样数据。从二进制101……码流中得到我们所需要的信息的第一步就是解哈夫曼码。解哈夫曼码是一个查表过程,这576个值代表576个频率线上的值,其在不同的块中(如)有不同的含义,可根据不同的比例因子和频带查找相应的码表并解出576个值。
反量化过程就是根据反量化公式和帧边信息来对于长块、短块和混合块采用不同的反量化公式,以恢复576条频率线的真实值。反重排序的作用是为了让MP3编码器使霍夫曼编码更加有效率,而对某些块进行重排序。立体声解码部分的功能是在两个音频通道非独立编码时,进行立体声解码。
混叠消除是为了避免两个相邻子频带之间的混叠,而在解码过程中进行的混叠消除。IMDCT的作用首先是对长块进行18点到36点的IMDCT变换,并对短块进行3个G点到12点的IMDCT变换;其次是根据块类型的不同,分别使用不同的窗类型进行加窗。同时把这36个值的前半部分与上一帧的后半部分相叠加。而把当前块的后半部分存储起来用于和下一块叠加。频率反转补偿是在进入下一步之前对多项滤波器组进行的频率反转补偿,即对奇数子带的奇数时间样点取反。
子带合成滤波是将32个等频带宽内的频域信号反变换成时域信号,然后再经过加窗运算,以得到32个PCM值。
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的工作原理框图。
- 视频MP3音/视频设计的新需求 (03-09)
- 手机TFT显示驱动的解决方法和应用方法 (04-21)
- 基于MCU和音频解码器设计磁带式MP3播放器 (06-20)
- 基于AT90S2313-4PC的MP3无线遥控自动点播机 (上)(07-24)
- 基于AT90S2313-4PC的MP3无线遥控自动点播机(下)(07-24)
- 基于CH375的U盘MP3播放器设计(02-05)