新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 用DSP实现MPEG音频层III压缩的加速方法

用DSP实现MPEG音频层III压缩的加速方法

作者:时间:2011-09-29来源:网络收藏
3.1 Huffman编码的多重地址索引

本文引用地址://m.amcfsurvey.com/article/150148.htm

  层编码中的Huffman编码是一个穷举、查表的过程。在参考文献[1]表B.7中列出了用于层编码的32个Huffman码表。它们的最大值域范围,码表适用的信号统计特性都不相同。在编码过程中,首先找到能够将所要编码区域样值的最大值,并依次查询各个Huffman码表,直到该码表能够对这一最大值进行编码为止,然后计算用该表进行编码所需的比特数。再尝试相同编码值域范围的另一些码表,找到最小比特数需求的码表进行最后的编码。

  由于标准中所提供的32个表中,并非所有的表都能用,而且有大量的码表只是linbits不同。因此如何存储这些码表,并能够很方便地进行查询、编码,是编码过程中很关键的问题之一。但提出的“多级索引”可以很好地的解决这一问题。过程如图2所示。对可能的表有不同的处理方式:

  

Huffman编码的多重地址索引

  图2 Huffman编码的多重地址索引

  正常表 如表15,即每一级索引都是对应于表15的各项信息。

  无效表 如表14,其最终的指向是码表零,即相当于无效表。

  雷同表 如表16和17实际上只是在第II级索引的linbits不同,其最后的Huffman数据是相同的。通过这样的多级码表地址索引可以很好的解决程序的模块化

  3.2 层编码迭代循环的

  在迭代循环编码部分,对于使用标准中所建议的初始量化常数进行量化和编码时,初始比特数要求要远远大于所允许的上限值。这时,如果只是将步长加一进行再次量化编码,将会使得系统效率大大地降低。

  经过实际的实验结果,一般初始可获得比特数大约为700 bits/Granule,而初始的量化编码结果一般在5 000 bits以上。如果再次量化步长加上20,可以迅速地逼近所要求的比特数。表1列出了一种我们使用的可能逼近

  表1 一种可能的迭代循环

  

一种可能的迭代循环加速方法

  在AD(Analog Device)公司的定点芯片A2181上实际的运算结果表明,这种加速方法能够将原算法的指令运算周期减少2/3左右。

  4 结束语

  层III标准是一种高效、高保真的编码算法,但由于其复杂度和运算量较高,很难用一般的实时。在对该算法进行全面分析的基础上,提出了在用DSP时,降低复杂度、提高DSP运算效率的关键是优化循环迭代量化编码。提出“Huffman编码的多重地址索引”,对非规则性的大量数组寻址操作提供了简明清晰的线条,节省了寻址指令,提高了DSP的利用率。进一步还提出了“迭代循环的加速”方案,通过ADSP2181定点芯片的运算,表明该方案能减少2/3的指令周期。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭