基于ARM的MPEG4视频解码器

[10-10 20:38:44]   来源:http://www.88dzw.com  电子制作   阅读:8940

文章摘要: 在同时对4像素进行补偿的过程中,只有当相邻两像素的最高位都为1时,才会有进位产生。使用这种补偿方法其实牺牲了部分精度,但这里只是使所影响的像素值增加了1,所以影响并不大,而且可以使补偿速度大大提升。同时对4像素进行补偿的过程中,寄存器加载需要3个周期,存储需要2个周期,共有两次加载和一次存储操作,中间的加法和移位操作需要6个指令周期,共需14个周期。如果对上面4个像素分别进行补偿,则需5次加载操作和4次存储操作,共23个周期,另外中间计算还需12个周期,所以共需35个周期。可见,牺牲部分精度换取补偿速度是很值得的。 对于垂直方向和水平垂直方向的半像素补偿,其原理与水平方向相同。3

基于ARM的MPEG4视频解码器,标签:电子小制作,http://www.88dzw.com

    在同时对4像素进行补偿的过程中,只有当相邻两像素的最高位都为1时,才会有进位产生。使用这种补偿方法其实牺牲了部分精度,但这里只是使所影响的像素值增加了1,所以影响并不大,而且可以使补偿速度大大提升。同时对4像素进行补偿的过程中,寄存器加载需要3个周期,存储需要2个周期,共有两次加载和一次存储操作,中间的加法和移位操作需要6个指令周期,共需14个周期。如果对上面4个像素分别进行补偿,则需5次加载操作和4次存储操作,共23个周期,另外中间计算还需12个周期,所以共需35个周期。可见,牺牲部分精度换取补偿速度是很值得的。
    对于垂直方向和水平垂直方向的半像素补偿,其原理与水平方向相同。

3  实验结果与数据分析

    通过优化,MPEG4的解码性能有了较大的提升。在ADS1.2环境下分别对各模块进行C算法优化和ARM代码优化,结果如表3所列。按调用一次模块函数所需周期数进行统计。

表3  仿真器上各模块单独统计(使用QCIF格式图像news)

所优化模块名称

C优化(cycles)/个

ARM优化(cycles)/个

优化率/%

DC/AC预测

703

534

24.04

逆扫描/VLD

1 730

1 118

35.38

逆量化/IDCT

6 032

2 562

57.53

运动补偿

17 143

8 471

50.59

    这些模块是解码过程中经常会调用的函数,因此,这些函数的优化将使解码速度有明显的提高。
    表4比较了不同序列的15帧QCIF格式视频解码优化前后所需的带宽。这些图像具有不同的复杂度,因而结果也不一样。

表4  对不同序列的优化结果(15fps QCIF格式)

视频序列①

优化前所需带宽/MHz

优化后所需带宽/MHz

news

27.24

16.86

foreman

64.83

48.78

miss_am

27.71

15.95

carphone

52.54

34.52

salesman

28.06

16.56

trevor

52.56

34.24

 注: ① 为标准视频测试序列。

    解码速度基本取决于图像画面的运动情况和颜色是否丰富。从上面的数据可以看出对于不同的序列,其解码速度也不同。news、salesman和miss_am之所以很快,是因为图像背景静止,只有肩部和头部有运动,所以P帧的编码数据量较少,解码速度较高。另外,如果图像很简单(单调),其能量集中到DC系数(直流分量)上,交流系数会出现多个零,因此变长解码速度就会较高,从而节约了解码时间。 
    从仿真速度分析,通过本文所总结的ARM7TDMI上视频解码的优化方法,可以使MPEG4视频解码节约大量的数据处理时间。由实验结果可见,本视频解码器能较好地满足低分辨率、低帧率场合实时解码的要求。

4  MPEG4视频解码的嵌入式系统实现

    实现本解码器的主要硬件平台是Easy ARM2200,如图5所示。它是一款功能强大的32位ARM单片机开发板,采用了Philips公司的ARM7TDMI?S核,以及总线开放的单片机LPC2210,具有JTAG调试功能。

上一页  [1] [2] [3] [4] [5]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作