首 页电子文章电子资料客户留言最新文章最新下载繁體中文
设为首页
加入收藏
联系我们
您当前的位置:中国电子前沿 -> DSP技术 -> TI OMAP应用 -> 电子文章内容 退出登录 用户管理
栏目导航
· TI DSP综合 · TI2000应用
· TIDSP Boot · TI5000应用
· TI OMAP应用 · TI6000应用
· ADIdsp
广告专栏
热门电子文章
· [51系列] 单片机c语言学..
· [ucos相关] uC/OS-II 初级..
· [linux移植] Linux 嵌入式..
· [无线开发] 收发一体超声..
· [linux移植] YAFFS文件系..
· [TI DSP综合] DSP环境下C..
· [linux移植] cs8900a驱动..
· [ucos相关] uC/OS-II在AR..
· [linux移植] 触摸屏驱动移..
· [linux移植] LCD驱动移植..
· [ucos相关] uC/OS V2.51安..
· [ARM入门] 一步一步制作A..
相关电子文章
· [组图] 基于FPGA和SR..
· [组图] 基于PLC的嵌入..
· [组图] 基于CPLD的模..
· [组图] 基于FPGA的生..
· [组图] 基于XC2V1000..
· [组图] 基于FPGA的前..
· [组图] 基于DSP Buil..
· [组图] 基于FPGA的IJ..
· [组图] 基于现场可编..
· [组图] 基于FPGA的线..
基于OMAP平台的AVS解码实现2
作者:本站  来源:本站原创  发布时间:2006-11-15 8:29:50  发布人:okyang
减小字体 增大字体

3 AVS-M实时视频解码在OMAP上的软件实现

3.1 在OMAP1510上的程序结构

在OMAP上开发程序通常分为两部分,一部分是ARM端,负责控制、显示等,另一端是DSP端,主要负责数据处理,我们都采用TI提供的CCS在这两端分别开发,程序流程框图如图3所示

图3  基于OMAP的AVS-M程序流程框图

ARM端的主要功能是初始化整个OMAP1510芯片,包括ARM、DSP、TC等的时钟的设置,DSP的开启关闭以及复位,LCD、定时器等各个外设的初始化。在启动完成后,ARM就一直查询共享内存中的某一标志位,当查询到一帧解码结束时,就启动LCD专用DMA,在LCD上进行显示。

DSP端的主要工作是负责AVS-M码流的解码。我们将AVS-M码流放置在SDRAM中。与基于PC的解码程序得主要的区别在于,由于DSP的片内内存有限,所以我们不可能将当前帧以及参考帧都放在片内,所以,以宏块为单位在SDRAM与片内内存之间进行数据传递。另外,由于在液晶屏上显示的时候需要转换成RGB图像显示,所以,在每一帧结束后,要通过YUV转RGB来实现实时显示 

 3.2 程序优化的主要过程

我们采用标准C语言,一方面是出于可移植性的考虑,另一方面是由于TI编译器效率的不断提高。但是,假如仅仅依靠编译器的优化是远远不够的,我们采用以下手段进行优化:

(1)DMA的合理利用。

对于同一段程序来说,只用片内数据与只用片外数据时速度差别相当大。所以要尽量采用片内数据,这就需要提前采用DMA将片外数据导入片内。如前文所说,我们广泛采用了DMA,用于SDRAM与片内内存之间以及SDRAM内部的数据交换。DMA不占用DSP时间,可以相当于并行操作。表1我们列出了memcpy命令与等待状态下DMA耗时,移动的数据为256个16bit数。

耗时(指令周期)

DMA

SDRAM 到 DARAM

1041

DARAM 到 SDRAM

620

SDRAM 到 SDRAM

1621

Memcpy()

SDRAM 到 DARAM

1893

DARAM 到 SDRAM

2168

SDRAM 到 SDRAM

3282

表1 DMA与非DMA方式传输耗时比

由表1可以看出,采用DMA方式只需要直接传输的时间的1/2到1/3,所以即使在传输过程中DSP完全处于等待状态,也较对内存的直接操作要高效得多。考虑到实际使用时DMA与CPU读写总线操作是并行运行的,那么采用DMA节省的时间会更多。

(2)对循环的优化策略。

我们采用restrict关键词进行编译,同时将递增改为递减,这样循环计数时将采用硬件循环计数器(RPTC),大大缩短了循环操作本身的判断耗时,得到更为高效的循环解决方案,以下面一段代码为例,功能是相同的

loop((int*)0x2600,(int *)0x2700,0x100);

void loop(int * restrict i,int * restrict j,int counter)

{while(counter--)

*(j++)=*(i++)+*(j++);

 }

耗时558个时钟周期

for(i=0x2600;i<0x2700;i++)

   {

*((int *)(j++))=*((int *)(i))+*((int *)(j++));

   }

耗时2564个时钟周期

两者相差5倍,因此,尽量采用对循环的优化策略成为系统加速的关键。

(3)64K边界长度的问题。

 由于DSP55X采用了16位的数据宽度,所以寄存器也是16位的,经常会出现64K边界的问题,例如开辟一个数组,当数组元素到达0XFFFF时,下一个并不是到达0X10000,而是回到0X0000,即是采用long型定义数组元素个数也是如此。所以,我们采用long 型指针,采用绝对地址间接寻址的方式来解决。

(4)ARM与DSP的通信机制问题。

OMAP提供了两种通信方式,一是采用MAILBOX中断方式,另外一种是采用共享内存查询方式。MAILBOX方式的优点是实时性强,缺点是数据量小,查询方式可以一次性传递大量数据,但是要通过查询某一位共享内存来实现,实时性较差,所以,一般是采用两种方法结合,兼顾效率和速度。

(5)合理设置DSP时钟。

在系统上电复位时,DSP的时钟等于晶振的固有频率,由于OMAP采用了数字倍频以及数字锁相环,所以可以通过设置频率控制寄存器来更改DSP的时钟。具体的原则是在满足系统实时要求的情况下,尽可能低的设置时钟,这是显而易见的,因为高的时钟频率必然带来大的系统能耗。

(6)LCD的DMA。

采用OMAP系统的LCD专用DMA,可以使ARM系统独立出来,可以执行操作系统的任务,同时,采用DMA也比直接移动指令更为有效。

(7)使用DSP55X内部的instrinsic 指令。

 这些指令是由优化的汇编代码写成,可以显著提高代码执行的效率,包括乘法,取最大最小值等,使用instrinsic一般可以提速5%左右。

(8)注意数据格式的转换。

在DSP采用大端模式ARM端采用小端模式组织数据,所以,在采用共享内存时存在模式转换的问题,通过ARM的大小端转换模式寄存器自动转换。另外,ARM端能够处理8 位、16 位、32 位、64 位的数据,DSP端能够处理16 位、32 位、40位、64 位数据。int型变量在ARM端是32位,在DSP端是16位宽度,要注意数据格式的比较。

(9)数据宽度的考虑(16位 8位 )。DSP55X采用16位的数据总线,所以采用16位的数据宽度是最高效的。DSP55X也支持8位的数据,这样数据得到了一倍的压缩,但每次取操作数都要进行高低位选择。从这两种方式中,我们认为,以宏块为单位进行操作时,实际上用到的空间并不大,而速度是更关键的问题,所以我们将原始的8位的AVS-M码流统一以16位(高8位置零)的格式进行存放与计算。

(10)合理安排内存。

原则上,程序应该放在片外,数据应该放在片内,特别是常用的码表等要放在DARAM中,同时,使能指令Cache可以有效加速执行速度。

4 实现的性能与结果

我们在两个平台上实现了该算法。

基于闻亭公司的TDS-OMAP1510 开发板,没有采用Linux操作系统,利用串口下载AVS码流,在开发板的液晶上显示;

基于合众达公司提供的Spectrum公司的OMAP5912 OSK,采用了Linux操作系统,利用以太网口下载AVS码流,在开发板的液晶上或者远端显示器上显示。

表3给出了OMAP5910/12上的实验数据

序列

帧数

耗时(秒)

速度(fps)

5910

5912

5910

5912

Mobile

400

16

15

25.0

26.7

Foreman

400

15

15

26.7

26.7

News

400

11

10

36.4

40.0

Highway

400

10

10

40.0

40.0

表3不同测试序列的解码结果比较

注:上述序列大小均为 QCIF(176x144)

参考文献

1中华人民共和国国家标准 信息技术  先进音视频编码第7部分:移动视频 2005.3

2 TI公司 OMAP5910 Dual-Core Processor

Technical Reference Manual July 2002

3 姜超 基于OMAP 的MPEG4 实时解码器的实现

电子技术应用2004 (11)

4 虞露  AVS熵解码与DSP实现 电视技术 2004(10)

[] [返回上一页] [打 印] [收 藏]
上一篇电子文章:嵌入式操作系统uCLinux
下一篇电子文章:基于OMAP平台的AVS解码实现1
∷相关电子文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
关于本站网站帮助广告合作下载声明友情连接网站地图 ┆ 在线客服: 点这里与管理员交谈
Copyright © 2006-2008 EMB-CN.com. All Rights Reserved .鲁ICP备06032441号