登录站点

用户名

密码

具有DAC和电源优化功能的MP3解码器

已有 924 次阅读  2009-09-28 11:15   标签MP3  DAC  解码器  电源  功能 

具有DAC和电源优化功能的MP3解码器

    MP3主要是指MPEG1 layer3和MPEG2 layer3及最新的MPEG2.5 layer3。它们均能提供高效的压缩编码方法。由于MP3具有高保真度、低码率的语音数据,所以广泛应用在各种消费类电子产品中,典型的设备如:MP3随身听、新型的车载声频设备等。这些设备具有大容量的Flash存储器(通常在32 MB以上)和标准的外设接口,可以从计算机或Inetrnet上下载MP3音乐,并送到本地存储和离线播放,能满足个人的各种需要。

    MP3是一种标准的声频压缩方法,它能够产生位速率为128KB/s的高质量CD声频。MP3固有的特性和大容量的Flash存储器的组合,能为设计固态便携式声频播放机提供可能性。这种播放机并不需要像CD或MD播放机所要的机械部分,因此,它们的体积能做得更小和更轻。由于没有敏感的机械元件,所以这种固态播放机对冲击和振动具有更大的承受能力,特别适合长途巴士、旅客列车的语音和放音设备。另外,在特殊条件下,如连续振动时不中断音乐传播性能,对消费者来说具有极大的吸引力。

    目前高科技生产的32MB和64MB Flash存储器的播放机,其价格仍能满足广大消费者对便携式播放机购买的能力。假设MP3的位数据流传送速率是128KB/s,那么这些存储器的容量能够存储音乐的时间为35~70min,这个时间足够播放机使用,但唯一不足的是需要较长的播放时间。

    为了降低成本,在便携式固态播放机中使用专用的MP3解码器集成电路。目前,大部分可用的MPEG声频解码器芯片是layerI/II芯片,它们能够应用在各种领域,如机顶盒、数字声频接收机和多媒体个人计算机(PC)。而MP3解码器是由一个声频解码器Ic和一个独立的数模转换器(DAC)组成。最近,已有集成一个DAC的解码器Ic,但是IC包含一个锁相环(PLL),为了能正常工作,还需要外加一个缓冲器驱动头载耳机。 
 
    本节提出一种较为新颖的低功耗解码器,由于这种解码器芯片内包含一个可变采样速率的DAC,所以无需锁相环。另外,芯片内还具有头载耳机的驱动器,因此,无需要外加缓冲器,这样就可以进一步优化芯片内部结构和外圈电路设计。只要利用芯片内DSP核和软件优化技术就能完成解码的目的,并使该芯片具有低功耗、低成本,高集成度和高性能的特点。

1  系统结构

    MP3解码器的内部框图如图5-1所示。从图中看出,它由数字信号处理器、数/模转换器(DAC)和存储器等多个模块电路组成。其中DAC和超大规模的数字信号处理器(VLSISolution Digital Signal Processor,VSDSP)是主要电路。另外,IMEM包含一个程序ROM和一个程序RAM,而X和Y MEM分别包含数据RAM和数据ROM。声频解码器读入MP3编码数据和产生数字声频采样,然后利用DAC就能把数字声频转换成模拟声频信号。整个系统控制和解码均是由DSP通过串行口实现的,而系统的时钟是由一个晶体振荡器(24.576MHz)产生的。

(1) 结构说明

a.为了提高系统的集成度,特把DAC和声频解码器集成到一块芯片上,这样就能降低系统的功耗,减少芯片与芯片之间的通信。更高的集成度也能降低系统的成本,这是由于减少电路的元件数。

b.声频解码器是在一个专用的16位DSP内核上使用软件完成的,除解码器软件外,系统也能够运行用户码。在实际操作时,通常解码器软件存储在一个程序ROM,而用户软件装入一个程序ROM。如果选择用户编码,则能完成像一个量化器或低音/高音控制所具有的特性。由于解码功能是用软件完成的,所以只要改变程序ROM就能方便地修改解码算法。这样就允许使用相同芯片的结构实现不同解码算法的目的,从而进一步拓宽应用领域和提高系统性价比。为了改变程序(ROM码),对集成电路(IC)仅需要一次掩模,这和芯片重新设计或对芯片全掩模相比较,前者的费用更便宜。

c.因为MP3编码声频信号面对一个采样速率(8~48kHz),而DAC必须适应多个采样速率。要完上述任务的通用方法是根据采样速率改变DAC的时钟频率。为此,在系统内必须设置一个振荡器(PLL),这样它能为DAC时钟提供可变频率。支持多个采样频率的另一种方法是使用具有固定输出采样频率的DAC,它能把可变采样速率的输人数据转换为频率。这种采样速率转换线路能使系统省掉PLL,而本系统中的DAC也是使用采样速率转换器。因此,它很容易实现速率转换,以满足多个采样频率的需求。

d.系统中无PLL具有下列优点:首先能降低电源功耗,这是因为采样速率转换器的功耗比PLL电路的功耗要小;其次,当电路启动后,PLL电路需要一些时间延迟,输出时钟才能稳定,而数字采样速率转换器不需要任何稳定时间,它能迅速地从掉电状态恢复到正常工作;最后能简化芯片内部结构设计,降低成本。

e.DAC是基于∑一△调制技术,它使用固定输出采样频率能把输人采样速率转换为采样速率转换器所需的频率。根据输入采样速率,DAC过采样速率能在128~512kHz之间变化。为了模拟输出,DAC输出还需要经过一级立体声头载耳机缓冲器。

(2) 结构配置

    a.VSDSP核

VSDSP核是一种16位定点DSP芯片,它具有多种特性的加载/存储结构。这些特性将涉及到单周期乘法/累加、零开销循环、饱和模式、算法寄存器的保护位、并行数据传送、并行地址计算和特殊寻址模式(模寻址)。VSDSP核的结构框图如图5-2所示。处理器中的存储器结构是一种改进型的哈佛结构,它由三个总线(指令总线、X数据总线和Y数据总线,其中数据总线是16位,而指令总线是32位)和三个存储器组成。从图中看出,VS-DSP核是由三个主要部件组成:数据通路、数据地址发生器和程序控制单元。

(a) 数据通路

数据通路包括一个乘法器、一个乘法器用的流水线寄存器、一个算术逻辑单元(ALU)和一个包含算法寄存器的寄存器库。其中ALU将涉及到标准算法和众多的逻辑功能,它能利用饱和模式或非饱和模式完成计算。在计算过程中,选择保护位能够防止溢出。另外,算法寄存器是成双成对地进行分组,所有的算法和许多逻辑功能均是在一个指令周期里利用单精度或双精度数据完成。数据通路中的乘法器能够支持整数、小数和饱和逻辑的乘法。

(b) 数据地址发生器

数据地址发生器是由两个相同地址算术逻辑单元(ALU)和一个地址寄存器文件组成。其中两个ALU能够以平行方式工作,并为X和Y存储器提供模拟地址。地址算术逻辑单元能够支持线性算后增量/算后减量寻址和模量寻址。

(c) 程序控制单元

程序控制单元是VSDSP中的第三个主要部件,它包含一个指令地址发生器、指令解码逻辑、一个中断控制和控制寄存器。其中控制寄存器将涉及到状态位和分支地址信息。另外,回路硬件很容易实现零开销的循环。

b.主要技术

为了满足VSDSP内核的优良性能,必须使用高效指令和各种实用技术,现将主要技术说明如下:

    (a) 高效指令

在VSDSP核中,使用的指令是一种具有35条指令的简易指令集计算机(Recuced In-struction Set Computer,RISC)结构所提供的,是一种高效、高速指令。内核中的指令均是32位字长,并具有三种操作方式(数据通路、数据地址发生器和程序控制单元),其中数据通路和数据地址发生器操作是以并行方式进行的。另外,程序控制单元操作时,它的指令能够控制CPU或把文献值装入到指定的寄存器。

(b) 低电压实用技术

VSDSP使用的低电压实用技术是输入锁存和时钟选通。其中输入锁存技术能够预防VSDSP内不用的模块电路(如乘法器、ALU、寄存器)的数据和控制输入发生变化,这样就能降低信号的误操作,从而避免不必要的功耗。时钟选通技术能够改变处理器的时钟,以满足实时要求,使系统处在最佳状态运行。例如,ALU寄存器文件(对所有寄存器而言)具有各种独立时钟,此时,只要把一个指令写入寄存器,就能够同步一个特定的寄存器。因此,这种技术可有效地降低VSDSP内的时钟切换次数,并相应地降低时钟树的功耗。

(c) 静态CMOS技术

    在VSDSP内核中,采用一种静态CMOS工艺技术,这种技术能够允许处理器在低电源
电压下工作。另外,静态逻辑也允许时钟放慢或完全停止运行。具有暂停(HALT)指令的
VSDSP内核能够终止处理器的时钟,直到下一个中断发生为止。

(d) 低功耗措施

在解码器中的RAM存储器里,广泛使用各种低功耗措施。例如,脉冲字线选择信号和多级输出缓冲器。其中脉冲字线技术能够降低位线路摆动(变化),它是在传感放大器锁存位线值后,立即屏蔽存储器单元来改善位线路变化。而多级输出缓冲器能够降低装入系统存储器总线的次数,它是把局部总线用到存储器模块来完成的。在实际运行过程中,用存储器的并行字驱动局部总线,由于几个并行驱动器,相对地加重了装载量。从上分析可以得出,虽然一个存储器模块的功耗增加,但是系统的总功耗却下降。从而可以看出,这种驱动技术对系统功耗降低也能起到至关重要的作用。

在1.8V电源电压供电情况下,对VSDSP和存储器的功耗进行实地测量,则得到的功耗值为0.65 mW/MIPS。另外,要注意的是该系统的功耗在很大程序上决定程序运行情况,所以在软件设计时要特别当心。

c.DAC

数/模转换器(DAC)是MP3解码器的主要模块电路。它基于∑一△调制技术,并具有一个固定的输出采样速率和宽的输入采样速率范围(8kHz,11.025kHz,12kHz,16kHz,22.05kHz,24kHz,32kHz,44.1kHz,48kHz)。DAC的内部框图如图5-3所示。

∑一△调制器的输出采样速率是6.144MHz,能产生过采样比率为128~512,这个比率的大小主要取决于输入采样速率。对于6.144MHz采样速率的内插法是由4级FIR滤波器完成,其中前面3级是以步长为2、4、16完成内插法,而第4级(时域内插法)是利用线性内插法完成采样速率转换。在实时处理时,线性内插法是利用改变比率来完成采样速率的转换。而比率变化决定输入和输出的采样速率,比率变化通常在1和4之间。


    DAC中的数字滤波器特性有很多,但可以归纳见表5-1,而它的频率响应曲线如图5-4所示。FIR滤波器能有效地确定DAC的通带,它们是用特殊算法结构来完成高阶滤波器,并具有体积小和功耗低的特点。3阶内插法是一种简单的采样/保持结构,它与2阶IIR滤波器一起能进一步增加阻带衰减。

利用线性内插法完成采样速率转换,能把较低采样速率的输入信号转换为较高采样速率的输出信号,其工作原理如图5-5所示。图中的输出采样是用“X”表示,而输入采样是用“0”表示。另外,图中的实线为连续时间信号。

内插法需要有关输入和输出采样时钟相位差的信号,它们均由时钟发生器提供。相位的绝对值与操作无关,仅与精度有关。由于相位误差累加的原因,所以在计算相位时,使用高精度的方法尤为重要。

∑一△调制器是一种3阶结构,能为电流型DAC提供噪声整形的5位数据流,并利用连续时间模拟滤波器对DAC输出进行滤波,而滤波器的输出为后级提供合适的输入信号。在实际运行中,DAC的功耗很小,仅为2 mW,而头载耳机的功耗较大,大约为12 mW。

2  声频解码软件

    (1) 软件优化处理

在软件设计时,如能对声频解码软件进行优化处理,则能给系统带来以下好处。

    a.降低功耗

在声频解码软件优化处理后,它能使声频解码器进入低功耗工作状态。此时处理器的功耗仅决定所使用的时钟频率,且与它成线性关系,即较低MIPS要求直接映射较低功耗。另外,低MIPS要求意味着较低时钟频率,这本身也允许降低电源电压。同样,存储器被优化处理后,则它的功耗也降低。

b.减少编码指令

MP3解码算法具有4个模块,它们分别为位数据流解压缩(拆包)、霍夫曼解码、反向离散余弦变换(Inverse Discrete Cosine Transform,IDCT)和合成。这些算法软件通常以ANSI-C语言写入,并用VSDSP C编译器进行编码。如对4.41kHz的立体声位数据流,以128kB/s进行编码处理,则MP3解码算法所需要的编译码大约为70 MIPS。如果算法的编码能进行优化处理,则上述的要求可能更低些,也就是所需要的编译码能够减少。

(2) 软件优化措施

在实时操作时,声频解码软件优化处理可以采用多种方法,下面叙述其将主要措施。

    a.计算方法

提高编码运算能力的方法是通过改变C语言级别来实现,在实际运行过程中,通常改变某些码的段落,以最大限度来满足VSDSP内核的结构。而某些其他码的改变能有利编译器的编译,从而产生更好的编码。另外,这些码的改变,也能改善C编译器码生成和后端优化程序(优化器)。如用C语言编写,则完成MP3解码算法所需要编译码大约为26MIPS;如采用汇编编码子程序,对于相同速率(128KB/s)的位数据流进行解码和放音,则需要编译码大约为17 MIPS。从而可以看出软件选择的重要性。对于不同的软件算法,其性能也有明显的区别,详细情况见表5-2。


b.处理器的选择

在DSP和一般用途的处理器中,优化(最佳化)编码的原则是不同的。当普通处理器进行操作时,如乘法器和存储器访问,它们运行的速度是比较慢的,而在DSP中,它能较好较快地支持这些操作,这是因为它在许多DSP应用中是个基本模块。VSDSP在一个时钟周期里能完成许多操作,如一个16×16位乘法(具有可选择移位器,能移出32位结果);一个具有饱和位的40位加法;两个16位数据访问;两个数据指针更新。同时,回路硬件能够处理零开销循环,更新程序计数器和循环计数数。在实践中就意味着一个FIR滤波器分抽头的计算能够在一个时钟周期里完成,而Intel 80×86处理器却需要10个汇编指令才能实现。显然,它需要的时间比一个时钟周期长得多。

把DSP编码写入VSDSP中的另一个优点是能够简化VSDSP结构,具体内容如下:VSDSP无需断开芯片上存储器就能进行访问;一个指令里的所有操作均在一个时钟周期里完成;VSDSP能直接计算在一个程序中所需的时钟周期,这点与深度流水线和多级高速缓冲结构的CPU是不同的。

现举一个例子说明使用不同处理器进行计算,其速度是截然不同的。用VSDSP和80×86处理器分别计算一个10抽头FIR滤波器的程序如下: 

从以上程序计算中可以看出,VSDSP在一个时钟周期里就能完成10个抽头FIR滤波器,而80×86却要8条指令才能完成,这就说明VSDSP的计算速度比80×86快得多(在一个回路中,80×86使用浮点数进行编码,如使用整型数编码,则程序更长,所需时间更长)。

c.语言的选择

在软件设计和优化处理时,系统中计算语言的选择是很重要的,它直接影响系统运行质量。为此,必须根据实际情况科学地选择,这样才能使系统软件设计达到最佳状态。

在MP3解码器中,如果选择C语言,则需要指令约为9000条;而使用汇编语言,则需要约为3000条指令;如果选用C语言+汇编的混合编程,则需要的指令更少。

没有了 下一篇: 具有DAC和电源优化功能的MP3解码器

分享 举报