在便携式手持设备上实现MPEG-4视频功能具有很大的挑战,必须满足低功耗和高性能。通过用CLIW结构和PowerPlug模块动态重构CARMEL20xx DSP,充分利用存储器、数据路径和可执行单元,可以实现高性能、低功耗的MPEG-4解码器设计。
手机设计工程师在集成MPEG-4视频功能时面临两难的选择:采用软件方案可以实现设计的灵活性,而采用硬件方案具有功耗低的特点,两者各有优点和缺点。然而任何一种方案都难以满足当今用户的要求,他们希望功耗低同时能满足升级更新,采用最好的解码器。
CARMEL20xx的PowerPlug模块解决了这个矛盾,同时能满足功耗和灵活性要求。事实上,一个多媒体PowerPlug模块能扩展CARMEL DSP指令集,使手持设备能高效地执行视频解码功能。
这个PowerPlug模块通过指令集的动态重构实现功耗节省。PowerPlug执行部件在一个时钟周期内执行视频操作原语,使解码的处理既快又节省功耗。通过CARMEL CLIW技术,控制软件与这些原语结合在一起实现完整的视频解码器。
为了在便携式手持设备上成功地实现MPEG-4解码器,视频解码器必须尽可能地少占用计算资源。减少解码器计算量的最好方法是:最高效率地使用可用的数据路径、存储器和执行单元。
当前的便携式手持视频设备几乎无一例外地基于第二或第三代蜂窝电话技术,这些设备采用标准的16位通信用DSP。虽然MPEG-4标准能实现4~12位视频,但最常用的格式是8位。为了满足设备的低功耗的要求,DSP必须能高效地处理16位无线通信和8位视频数据。而灵活的可编程方案必须采用动态可重构DSP,并实现高性能和低功耗。
在坎特伯雷大学第二季度报告中,描述了采用动态可重构的CARMEL20xx DSP实现MPEG-4解码器的优越性。这项研究集中在利用DSP的可重构特性,以使16位处理器对8位视频实现高效解码。16位CARMEL20xx 是为高性能的应用而设计的,如下一代的无线通讯工具。DSP的动态可重构特性是由于采用了可配置长指令字(CLIW)结构,以及将PowerPlug 模块(PPM)加速器添加到内核中。
8位视频的高效处理
非常明显,用16位处理器,可以将两个8位运算连接来提高某个算法的效率。设想在一个MPEG-4解码器里,将像素值截短到7位以避免任何溢出的可能,从而可以将两个值在一个16位字里储存和操作。虽然MPEG-4允许4~12位视频,但它必须在同样的精确度下进行编解码,因此,在一个解码器里将8位视频截短至7位的处理不符合标准要求。
研究表明,像素截短将产生不能接受的画面质量下降。当一个画面包含有柔和色彩或亮度梯度时,这种由于将8位截短为7位而导致的画面质量降低将会特别明显。
事实上,在一个精度为8位的解码器里,产生溢出的可能性很小。直接修改8位像素值的唯一意义是在运动补偿过程,这个过程包括将一个余值加入到一个预计或估计值中。这两个值最初由原始图像的反向处理得到,因此可以在没有溢出的情况下重组。对余值执行的量化处理将产生一个不可逆的改变,而这因此可能或多或少地影响结果。量化值的硬极限溢出不会对色彩和亮度有很大的影响,因为在这个处理过程可能中出现很多的小溢出。由于产生溢出的可能很小,因此可将两个8位值组成单个16位字节来运算,这充分利用了处理器的计算资源。
可重构DSP的MPEG-4解码
便携式手持设备必须采用非常简单的MPEG-4实现标准,该标准提供了QCIF(176×144像素)格式,每秒10~15帧(fps)。对一个10帧/秒的QCIF MPEG-4解码器的分析表明,在柔化环状亮度色斑(deringing)后置滤波器(30%)、运动补偿(7%)和柔化色度马赛克(deblocking)滤波(6%)同时存在的情况下计算量最大。这些算法主要由8位非MAC运算组成。
柔化色度马赛克和柔化环状亮度色斑滤波器主要需要8位比较功能和存储器访问,而运动补偿由8位加法和存储器存取组成。如果在16位的DSP上实现这些8位操作将效率低,而且浪费。而PowerPlug 模块与CLIW结合,允许DSP通过用特定指令动态重构来实现更高的效率。
PowerPlug模块专为8位结构和滤波而设计,同时,由于支持8位存储器访问,大大地提高了16位DSP的效率。一个字节的代数单元可以实现并行的8位 add/sub、max/min和一个解码器中计算密集算法的累计距离运算。字节处理单元实现了高效的8位存储器访问,该字节处理单元允许将8位字打包存储到16位或32位存储器中。在加速器中还集成了一阶平滑滤波器,这样,在一个时钟周期中将能对两个像素进行滤波。
PowerPlug模块指令提供访问内置CLIW的指令。例如,通过ppmax (dest,src)指令对两对8位数字进行比较,然后将最大的一对数存储到16位存储器的一个存储单元(dest)。在一个时钟周期里,通过并行完成这样四个指令可以显著增加这些算法的速度和效率。
表1显示了在一个MPEG视频加速PowerPlug模块上包含的指令,这儿将这些操作数类型以CARMEL 10xx的标准指令集相类似的形式描述。Mx描述x位内部PPM寄存器或者可能被拆分成高、低8位字的16位CARMEL存储器。
计算表明,在时钟周期上动态地重构PPM和CLIW可以大大提升速度。表2显示了这些算法所需要的周期数。对整个解码操作而言,没有加速器的CARMEL10xx在最糟糕的估计情况下将需要32兆周期(Mcycle),而现在可以减少到20Mcycle。这种减少是在采用将8位数装载到16位字中的并行算法上实现的。
在任何给定的周期里,重构DSP使其象一个具有多个并行执行单元的8位处理器工作,这种重构能力可以节省大量时钟周期。通过重构DSP,充分利用了存储器、数据路径,以及通过常规PPM单元的特殊指令可用执行单元,这样大大节省了计算量。
进一步优化
通过一些其它方法还可以进一步优化MPEG-4视频解码算法,如:
1. 深入研究解码器处理中的其它计算密集算法,通过优化可以进一步减少计算量;
2.通过研究编码器的算法和实现方式,可以减少运算要求,实现在3G上的双向无线视频功能。
表2所示为在MPEG-4解码过程中的其它三个计算最密集的算法,如宏块填充(MB padding)和反离散余弦变换(IDCT)。在为提高速度的分析中,这些功能是主要的考虑对象。
表2中的“其它”部分是解码器中计算最密集的,占总计算需求的61%。这部分包括位处理操作,例如码流分析和反可变长解码等。
在编码器端,采用PowerPlug来减少计算要求是一种有效的方法。当前,编码器需要的周期数估计为800~1000 Mcycle, 对便携式设备而言,周期数太多。编码器的复杂性远高于解码器,这为基于PowerPlug的加速方法的应用提供了更多可能。
本文总结
要成功地在便携式手持设备上实现MPEG-4视频,必须有一种在标准的16位电信用DSP上有效地处理8位数据的方法,这些设备必须是低功耗而高效。通过用CLIW和PPM动态地重构CARMEL20xx DSP,充分利用存储器、数据路径和可用执行单元,以确保达到高效率。通过动态重构DSP,使其像一个具有4个并行执行单元的8位处理器一样工作,通过计算发现可以节省高达90%的时钟周期。
英飞凌公司供稿
参考资料
[1]: "Information technology-Generic coding of audio-visual objects - Part 2: Visual",ISO/IEC JTC1/SC29/WG11/N2802, July 1999, Vancouver
京公网安备 11011202001138号
