登录站点

用户名

密码

双内核DSP组成的新型解码器

已有 721 次阅读  2009-09-28 11:24   标签DSP  解码器  内核 

双内核DSP组成的新型解码器

MPEG-l/2声频层Ⅲ(MP3)是一种声频编码标准,它能在低位速率的条件下提供高质量的声频输出。这种标准特别在编码器中,已经广泛应用在各种消费类电子产品中。当许多消费类电子设备变成便携式时,MP3解码算法的实现,通常要使用专用的低功耗DSP。即使便携式通信设备(蜂窝电话和PDA)能支持解码特性,但是并不能保证在任何情况下提供高质量声频输出。

本文提出一种新型的MP3系统结构,它是利用双内核处理器(一个16位定点DSP和一个32位RISC MCU内核)实现的。这种DSP-MCU双内核处理器的主要优点是把系统控制的各种功能和MP3解码任务均集成在一个单块芯片上。如果DSP和MCU内核是可编程的,并能以并行的方式处理数据,则能得到更多的实惠。在这种系统中,MP3解码算法是利用高精度的DSP内核来实现,而RISC内核能完成位流缓冲和包含用户接口在内的各种控制。由于这种系统结构能够有效地支持DSP和RISC内核之间的并行处理,所以它在处理声频位流时所需要计算开销能降到最少。

在实际应用中,对于完成MP3解码算法的内核程度,使用一个可编程的DSP就能足以满足运行要求。但是,当考虑到一个完整的MP3解码系统时,必须增加一个MCU,才能完成位流取指令和包含用户接口的系统控制。此时就应该把多块处理器集成到一块芯片,从而使系统的功耗、成本和硬件开销降到最小。在电路设计时,双内核DSP-MCU电路也可使用其他方法,如使用一片DSP、外扩MCU,或使用一片MCU,外扩DSP。利用外扩处理器组成的MP3解码系统,其性能是要比文中推荐的单片双内核解码系统差些,但是在无单片双内核解码时,也是一种较好的选择。

由DSP和MCU内核组成的双内核处理器,特别适合低功耗的MP3解码系统。由于MP3解码系统是根据双内核结构的原理,所以它适用于便携式通信设备,如蜂窝电话,这是因为它能提供高性价比的声频输出(具有低功耗,低成本和高质量的声频)。

1  系统结构

MP3解码器的内部结构如图5-26所示。它是由一个数字声频处理和一个系统控制组成。在数字声频处理中,通过MP3解码算法,把来自编码输入数据进行解码和转换成模拟声频信号。在电路设计时,这部分应强调硬件开销要少,如低的计算复杂性和低的存储器及容量。在系统控制部分里,它的主要功能是管理编码数据文件和把存储在媒体里的存储文件传送给声频处理。另外,它也能处理来自用户接口的有关信息,并把信息传给数字声频处理或报告系统和数据当前的状态。在电路设计时,这部分应重点放在无硬件开销情况下处理器能力的充分利用。

 


双内核MP3解码器的内部结构如图5-27所示。只要利用合适的配置功能,就能使这种双内核MP3解码器具有并行处理能力,即数字信号处理和系统控制分别由DSP和RISC来处理。MP3解码算法是由计算性能极好的DSP来完成,而MP3的帧缓冲文件管理和用户接口是由RISC内核来实现。在普通系统中,MP3的帧缓冲是作为DSP功能的一部分经常在DSP里执行。而在双核MP3解码器中,RISC是DSP工作的一部分,这样就能进一步提高双内核并行操作的能力。

2硬件设计

MP3解码器的硬件框图如图5-28所示。这个电路是由双内核DSP、程序ROM、多媒体卡(Multimedia Card,MMC)立体声声频的DAC、LCD、键盘、串行通信接口和电源组成。其中双内核(双芯片)DSP是用作解码算法和系统控制,而MMC是存储编码后的声频数据。另外,串行通信口用做与PC交换数据。

 


(1) 公共的系统时钟

在电路硬件设计时,其时钟频率应该支持MPEG-1/2标准规定的所有采样速率(48kHz、44.1kHz、32kHz、24kHz、22.05kHz、16kHz)。为了支持这些多采样速率,必须设计一个时钟发生器,其内部结构图如图5-29所示。其中DAC的主时钟频率为6.1440MHz和11.2886MHz,它能支持公共的多采样速率的需求(128/256/384倍),而RISC内核使用低时钟(6.1440MHz)作为工作时钟频率。另外,DSP内核的工作时钟是由低时钟(6.1440MHz)经内嵌DSP里的PLL 8倍频产生的,因此,它的工作时钟频率为6.1440×8=49.152MHz。

 


(2) 模拟声频输出

为了满足低成本、高质量声频输出,硬件电路中的DAC应该采用∑一△调制技术的芯片。在分析MP3第一帧的边缘信息后,就能确定DAC的主时钟,而在时钟分频后就能产生精确的DAC时钟。通常,DAC时钟是由位时钟(采样速率×32)和帧同步时钟(采样速率×2)组成。所有的系统时钟均是由处理器时钟产生的,无需外部时钟和任何元件,从而大大优化硬件电路的设计。

(3) 数据存储

为了存储编码后的各种声频数据媒体,其硬件电路设计必须满足下列条件:

    ①高采样速率,通常大于几十MB;   
②快速访问时间,以满足实时操作的要求;
    ③接口简单,特别是与微处理器的接口;
    ④便携性能;
⑤成本低。

为了满足上述条件,系统中的数据存储电路应使用多媒体卡(MMC),并利用一个串行通信口作为数据发送。通常MMC是直接连到RISC内核,同样,LCD通过用户接口,能显示当前系统的各种状态和文件索引。另外,具有矩阵结构的键盘是人机对话的重要电路,它能把用户指令(激活、停止和文件选择等)馈入,从而实现控制系统的各种操作。

3  软件设计

双内核MP3解码器的软件主要涉及到两部分:第一部分是DSP内核的MP3解码算法的优化;第二部分是基于用户接口的RISC内核的系统软件设计。在软件设计时,应重点分析这两部分的算法和相关软件。

    (1) MP3解码算法的优化

由于MP3解码算法是由DSP来完成,为了降低功耗和使声音质量的影响减小到最低,必须对计算的复杂性和数据精度进行优化处理。

    a.计算复杂性优化处理

输入模式离散余弦变换(Input Mode Disrete Cosine Transform,IMDCT)和子带合成程序的特性是通过具有余弦系数的乘法一累加器操作来表示的,这是因为这些程序的计算负担是很重的,所以必须用快速算法来完成计算优化。但是,通常快速计算的实现是要受到数据精度的制约,这是因为快速算法较普通算法具有更多的量化噪声。对于IMDCT和子带合成程序的快速算法,推荐使用李氏快速DCT算法和IMDCT李氏快速算法,而对于子带合成矩阵程序,应使用64点的李氏快速DCT。

表5-14列出定点模拟结果,在这个表中的定点误差是定义为定点模拟和浮点模拟结果之差,并以dB表示差的均方根(Root Mean Square,RMS)。由表5-14中可以看出,对于IMDCT和子带合成程序,快速算法的优点是定点误差分别小于0.5dB和0.1dB。因此,在实际操作时,如果使用IMDCT和子带合成算法是能够降低功耗和减少计算负担的。


b.数据精度优化处理

由于DSP处理器的数据处理能力为16位,所以它基本上能够完成16位数据的DSP算法。但是,当输出声频需要更高精度时,则必须使用双精度表示数据,此时要以增加操作复杂性为代价,这是不可避免的现象。因此,在使用双精度表示以前,不仅要考虑到输出数据的精度,还要考虑到处理器实时的复杂性。

为了确定数据的精度,必须完成对不同数据精度的定点模拟,其结果如图5-30所示。

 


从图中看出,仅列出四种模拟情况,但是对于每种模拟情况,必须测量定点误差。由于余弦和开窗口值均是利用16位查表法完成的,所以对于32位数据的解码程序,必须采用32位×16位双精度才能实现。

定点模拟的结果见表5-15,根据表5-15的结果可以看出,Ⅳ模拟的误差大约为6dB,这个值相应于1位误差(平均值)。因此,考虑到解码器输出数据的质量,表5-15中的Ⅳ模拟是最佳的选择。


 


(2) 系统软件设计

双内核处理器的系统软件将涉及到良好的用户接口和开销最少的系统控制。为了支持用户接口,必须采用与PC兼容的一个文件管理系统。

    a.软件结构
本文推荐的系统软件结构如图5-31所示。该软件由5层组成,它能与各种软件接口。在图中底部有几个硬件,专门用来存储编码数据和模拟声频输出。文件管理的文件系统是位于硬件器件的右上方,它是与PC的MS-DOS文件系统兼容。同样,文件管理层上面是一个数据流控制器,它能完成MP3解码算法的输入输出位流控制。MP3解码算法是一种应用层,它位于软件结构中的最高层。由于输入位流的数据流控制位于文件管理层的上面,所以声频输出的数据流控制直接位于硬件器件层的上面,利用这种独特的配置结构,使得各层之间的通路达到最少。系统控制层是位于软件结构的顶部,它能接收用户指令和控制系统中的所有软件。

 


b.软件处理流程

为了更好地说明软件处理流程,必须对MP3解码系统中的各种状态进行简要说明。基于推荐软件结构的MP3解码系统的状态如图5-32所示。图中的所有状态均遵守用户指令,分别为:放音(PLAY)、停止(STOP)、下一个(NEXT)、前一个(PREV)和空闲(IDLE)。其中IDLE是等待状态,是等待另一个状态的到来,即转换到其他状态。而PLAY状态能够完成当前文件的解码算法。STOP状态能够使解码算法的操作停止,并使文件指针返回到文件的起始端。另外,NEXT和PREV状态能分别完成打开下一个和前一个文件。当从IDLE状态转变为NEXT/PREV状态时,就能使一个相邻的文件打开,并使当前状态返回到IDLE状态。但是,当转换到PLAY状态时,则必须转换到STOP状态后,才能完成PREV或NEXT状态的选择,并返回到PLAY状态。


这些状态转换的过程如下:当电源接通时,RISC首先对系统进行初始化处理,并读出文件存储器中的文件分配表(File Assortment Table,FAT),然后进入IDLE状态。在PLAY状态中,RISC内核激活DSP内核中的MP3解码程序,然后DSP内核查询下一个帧缓冲的RISC内核的情况(通常是在处理重要边缘信息)。同时,RISC内核以并行方式完成帧缓冲处理,当帧解码处理完后,就进入STOP状态。此时能够对解码程序进行初始化操作,然后转到IDLE状态。在这种双内核结构中RISC内核仅完成MP3解码处理工作的一部分(除控制系统外)。在这里应注意到,RISC内核在帧处理方面要比DSP更好,因此,它能够提高整个系统的效率。

4  试验结果

为了测量系统产生的PCM输出声音的质量,必须完成ISO/IEC 13818-4兼容试验,试验结果见表5-16。在表中第一列表示浮点解码器和已实现解码器之间差的RMS电平,而第二列为差的最大值(最大的差值)。根据这个表中所列的试验方式,其中Ⅳ和无快速计算的Ⅳ是两种满足设计的重要试验。因此,由Ⅳ表示的解码计算能保证与ISO/IEC 13818-3声频解码器完全兼容。考虑到解码后声频的质量和计算负担,表中的Ⅳ(快速)是适合高质量MPEG-声频解码计算,它也是实际试验时首选的方式。

 



因为输出的PCM位长度将要影响输出声频质量,所以必须通过兼容试验来比较几种PCM位长度,试验结果见表5-17。

 


根据表5-17中的试验数据可以得到,只要PCM输出位长度大于16位,就能保证完全的兼容性能。

为了验证推荐的算法能够满足实时要求,特用汇编语言编程和测量时钟周期,试验结果见表5-18。

 


从表5-18中可以看出,推荐计算需要20.7MIPS而处理器能约束在60MIPS(60MHz时钟)工作,因此,试验结果完全能满足推荐算法的实时处理。

现对双内核DSP构成的实时系统进行分析,由于本系统具有下列性能:

            指令执行速度    20.7MTPS;
            程序存储器    4K;
            数据存储器    9K;
            表格ROM    5.7K;
            采样速度48/44.1/32/24/22.05/16kHz;
            数据速率    32~320Kbps。

另外,它还完全满足ISO/IEC 13818-4兼容试验。而MP3解码器完成设计任务所需要提供下列参数:

            指令执行速度    20.7MIPS;
            数据存储器    10K×16位RAM,5.7×16位RAM;
            程序存储器    4K×16位。

从上比较可以得出,本文推荐的双内核DSP的实时系统完全能满足MP3解码器高质量声频输出,符合原设计的预想要求。

上一篇: 具有DAC和电源优化功能的MP3解码器 下一篇: 集成外设及DSP/BIOS应用实例(上)

分享 举报