Chinaunix首页 | 论坛 | 博客
  • 博客访问: 306503
  • 博文数量: 86
  • 博客积分: 2050
  • 博客等级: 大尉
  • 技术积分: 1215
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-29 10:29
文章分类

全部博文(86)

文章存档

2011年(2)

2010年(77)

2009年(7)

我的朋友

分类: 嵌入式

2010-01-14 19:18:04

 

 

随着嵌入式系统性能的提高,在ARM嵌入式系统中实现对各种音乐格式的解码和播放已有可能。如何在嵌入式系统中利用有限的计算能力达到播放音乐的功能,是一个值得关注的问题。一般常见的情况是,依赖嵌入式ARMDSP的处理能力,通过定点或浮点程序实现音频编解码过程。

 

一.           实例说明

 

音频编解码常用的实现方案有三种。

 

第一种就是采用专用的音频芯片对语音信号进行采集和处理,音频编解码算法集成在硬件内部,如MP3编解码芯片、语音合成分析芯片等。使用这种方案的优点就是处理速度块,设计周期短;缺点是局限性比较大,不灵活,难以进行系统升级。

 

第二种方案就是利用A/D采集卡加上计算机组成硬件平台,音频编解码算法由计算机上的软件来实现。使用这种方案的优点是价格便宜,开发灵活并且利于系统的升级;缺点是处理速度较慢,开发难度较大。

 

第三种方案是使用高精度、高速度的A/D采集芯片来完成语音信号的采集,使用可编程的数据处理能力强的芯片来实现语音信号处理的算法,然后用ARM进行控制。采用这种方案的优点是系统升级能力强,可以兼容多种音频压缩格式甚至未来的音频压缩格式,系统成本较低;缺点是开发难度较大,设计者需要移植音频的解码算法到相应的ARM芯片中去。

 

经过综合比较以上三种方案的优缺点,本实例选用第三种设计方案来实现语音信号的音频编解码。

 

二.音频编解码原理

 

对音频信号压缩编码的标准主要有ITU/CCITTG系列:G.711G.721G.722G.723G.728G.729MPEG系列的:MPEG-lMPEG-2MPEG-4MPEG-7中的音频编码和DOLBY(杜比)实验室的AC系列:AC-1AC-2AC-3等。它主要应用领域包括:

 

(1)消费电子类数字音响设备。如CDMP3播放器及MD(Mini Disc)唱机等。

 

(2)多媒体应用。主要是应用在VCDDVD、多媒体计算机和因特网上。

 

(3)广播节目制作系统。在声音节目制作系统中,录音、声音的处理加工、记录传输、非线性编辑等环节都采用了数字音频技术。

 

(4)广播电视数字化。在数字视频广播(DVB)、数字音频广播(DAB)和中短波数字调幅广播系统中都采用了数字音频技术。

 

2.1音频编解码框图

 

将模拟的、连续的声音波形数字化(离散化),可以得到数字音频。数字音频是把模拟的声音信号通过采样、量化和编码过程转变成数字信号,然后再进行记录、传输及其他加工处理;重放时再将这些记录的数字音频信号还原为模拟信号,获得连续的声音。

 

采用数字音频技术可以避免模拟信号容易受噪声和干扰的影响,可以扩大音频的动态范围,可以利用计算机进行数据处理,可以不失真地远距离传输,可以与图像、视频等其他媒体信息进行多路复用,以实现多媒体化和网络化。

 

24-l给出了音频编解码的一般模型。每个子带信号都在经过定标处理后被重新进行量化,量化编码过程引入的量化噪声不能超过已确定的对应子带的掩蔽门限。因此量化噪声频谱与信号频谱进行了动态自适应。“比例因子”和各子带所使用量化器的相关信息与编码后的子带样值一同进行传输,而解码器可以在不了解编码器如何确定编码所需信息的情况下对码流进行解码。这降低了解码器的复杂度,并为编码器的选择和解码器开发提供了很大的灵活性。
 

 
这里主要涉及的技术有:A/DD/A转换、压缩编码技术、数字信号处理技术、信道编码和调制技术。

   

2.2音频编码过程

 

     1.音频信号数字化

 

     信号的数字化就是将连续的模拟信号转换成离散的数字信号,一般需要完成采样、量化和编码三个步骤,如图24-2所示。采样是指用每隔一定时间间隔的信号样本值序列来代替原来在时间上连续的信号。量化是用有限个幅度近似表示原来在时间上连续变化的幅度值,把模拟信号的连续幅度变为有限数量、有一定时间间隔的离散值。编码则是按照一定的规律,把量化后的离散值用二进制数码表示。上述数字化的过程又称为脉冲编码调制(Pulse Code Modulation),通常由A/D转换器来实现。
 


数字音频信号经过处理、记录或传输后,当需要重现声音时,还必须还原为连续变化的模拟信号。将数字信号转换成模拟信号为D/A变换。

 

    数字音频的质量取决于采样频率和量化位数。采样频率越高,量化位数越多,数字化

后的音频质量越高。

 

  2.音频采样

 

采样就是从一个时间上连续变化的模拟信号取出若干个有代表性的样本值,来代表这个连续变化的模拟信号。一个在时间和幅值上都连续的模拟音频信号的函数表示为x(t),采样的过程就是在时间上将函数x(t)离散化的过程。一般的采样是按均匀的时间间隔进行的。设这一时间间隔为T,则取样后的信号为x(nT)n为自然数。

 

根据奈奎斯特采样定理:要从采样值序列完全恢复原始的波形,采样频率必须大于或等于原始信号最高频率的2倍。设连续信号x(t)的频谱为x(?),以采样间隔时间T抽样得到离散信号x(nT),如果满足??c时,其中?c是截止频率,即Tl/2?c时,可以由x(nT)完全确定连续信号x(?)
 

当采样频率为12T时,即?N=1/2T时,称?N为奈奎斯特采样频率。

 

3.音频量化

 

采样把模拟信号变成了时间上离散的样值序列,但每个样值的幅度仍然是一个连续的模拟量,因此还必须对其进行离散化处理,将其转换为有限个离散值,才能最终与数码来表示其幅值。量化过程是将采样值在幅度上再进行离散化处理的过程。所有的采样值可能出现的范围被划分成有限多个量化阶的集合,把凡是落入某个量化阶内的采样值都赋予相同的值,即量化值。通常这个量化值用二进制来表示,用N位二进制码字可以表示2N个不同的量化电平。存储数字音频信号的比特率为:

 

I=N·?s           24-3

 

其中的?s是采样率,N是每个采样值的比特数。

 

表示采样值的二进制的位数为量化位数,它反映出各采样值的精度,如3位能表示采样值的8个等级,8位能反映256个等级,其精度为音频信号最大振幅的1/256。量化位数越多,量化值越接近于采样值,其精度越高,但要求的信息存储量就越大。

 

根据公式(24-3)可知,要减小比特率I,在?s已经确定的情况下,只能去减少N的值。N的值降低会导致量化的精度降低,N的值增加又会导致信息存储量的增加。因此在编码时就需要合理地选择N的值。

 

均匀量化就是采用相等的量化间隔进行采样,也称为线性量化。用均匀量化来量化输入信号时,无论对大的输入信号还是小的输入信号都一律采用相同的量化间隔。因此,要想既适应幅度大的输入信号,同时又要满足精度高的要求,就需要增加采样样本的位数。

 

非均匀量化的基本思想是对输入信号进行量化时,大的输入信号采用大的量化间隔,小的输入信号采用小的量化间隔,这样就可以在满足精度要求的情况下使用较少的位数来表示。其中采样输入信号幅度和量化输出数据之间一般定义了两种对应关系,一种称为u律压缩算法,另一种称为A律压缩算法。

 

采用不同的量化方法,量化后的数据量也就不同。因此说量化也是一种压缩数据的方法。

 

4.音频编码

 

采样、量化后的信号还不是数字信号,需要把它转换成数字脉冲,这一过程称为编码。最简单的编码方式是二进制编码。具体说就是用n比特的二进制编码来表示已经量化了的样值,每个二进制数对应一个量化电平,然后把它们排列,得到由二值脉冲串组成的数字信息流。用这样方式组成的二值脉冲的频率等于采样频率与量化比特数的乘积,称为数字信号的数码率。采样频率越高,量化比特数越大,数码率就越高,所需要的传输带宽就越宽。

 

音频编码方法归纳起来可以分成三大类:波形编码、参数编码、混合编码。波形编码是尽量保持输入波形不变,即重建的语音信号基本上与原始语音信号波形相同,压缩比较低;参数编码是要求重建的信号听起来与输入语音一样,但其波形可以不同,它是以语音信号所产生的数学模型为基础的一种编码方法,压缩比较高;混合编码是综合了波形编码的高质量潜力和参数编码的高压缩效率的混合编码的方法,这类方法也是目前低码率编码的方向。

 

2.3   IIS音频总线

 

对于传输的声音格式一般分为两种:IIS总线格式和MSB(LEFT)JUSTIFIED格式。MSB JUSTIFIED格式与IIS格式不同的地方是它总是当IISLRCK变化时发送下一个字的高位。IIS总线格式如图24-3所示。

 

  IIS4条线:串行数据输入(IISDI)、串行数据输出(IISDO)、左右通道选择(IISLRCK)和串行位时钟(IISCLK)。产生:IISLRCKIISCLK信号的设备称为主设备。
 

 
串行数据以2的补码发送,首先发送高位。高位首先发送是因为发送方和接收方可以有不同的字长度。发送方知道接收方能处理的位数是不必要的,同样,接收方也不需要知道发送方正发送多少位的数据。当系统字长度大于发送方的字长度时,字被切断来发送。如果接收方收到比它的字长度更多的位时,多的位被忽略;若接收方接收比它字长度少的位时,不足的位被内部设置为0。所以高位有固定的位置,而低位的位置依赖于字长度。发送器总是在IISLRCK变化的下一个时钟周期发送下一个字的高位。

 

发送器的串行数据发送可以在时钟信号的上升沿或下降沿被同步。可是串行数据必须在串行时钟信号的上升沿锁存进接收器,所以当发送数据用上升沿来同步时有一些限制。LR通道选择可以指示当前正发送的通道。

阅读(1644) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~