>
首页 » 技术文章 » DMA在实时图像处理中的应用(三)

DMA在实时图像处理中的应用(三)

作者:  时间:2007-05-06 18:43  来源:

在数据重排中,主要是正确设置全局索引寄存器。在这里,可以将1帧看作1个数组,那么数据单元就是数组的元素。因此,如果假设共有f×e的矩阵,即有f帧数据,每帧e个数据单元,每个元素为s(byte),重排为e×f的矩阵。在这种情况下,源地址递增,目标地址根据全局索引寄存器的值进行调整。在帧内相邻的数据单元传输时,目标地址偏移应为f×s,所以传输完1帧后的地址总偏称为(e-1)×f,因此,下一帧的第1个数据单元地址为在当前的地址减去((e -1)×f-1)×s。也就是说,

*frame index应设为-((e-1)×f-1)×s

*element index应设为f×s

在上例中寄存器的设置为:

*frame index =-((2-1) ×4-1) ×2=0xffee

*element index=4×2=8

因此,寄存器设置如下:

primary control register =0x030001d0

transfer control register =0x00040002

source control register =0x02000000

destination control register =0x80000000

global index register a =0xfffa0008

global count reload a =0x00000002

3.2.2 取图像子图

图像处理中,往往要从图像中抠取一定大小的子图,然后对子图进行处理。对于大型图像,尺寸往往超过了dsp系统的片内存储器的大小,这种抠取的操作成了必不可少的步骤。这可以通过使用全局索引寄存器来完成。例如,从一个8×4的图像中抠取一个 2×4的子图,如图3所示,其中每个数据单元为1byte。

可以这样描述:有f1帧数据,每帧数据有e1个数据单元,每个数据单元为s(byte);从中抠取部分为f2帧数据,每帧数据e2个数据单元,数据单元为s (byte)。这种情况下,因为完成数据传输后,目标存储区为连续数据,因此目标地址递增;源地址根据全局索引寄存器的值进行调整。帧内相邻的数据单元传输时,源地址偏移应为s;当读完帧的最后一个数据单元,源地址指针跳过(e1-e2)个数据单元,即帧间的地址调整量为((e1-e1)+1)×s。这样全局寄存器的设置:

**frame index =((8-4)+1×1=4

*element index=1

*frame count =2

*element index=4

因此,寄存器设置如下:

primary control register =0x03000270

transfer control register =0x00020004

source control register =0x02000000

destination control register =0x80000000

global index register a =0x00050001

global reload register a =0x00000001

结束语

作为实时系统,选取合理有效的核心算法是至关重要的,同时,选择有效的数据传输方法也是不容忽视的。我们在实际工作中发现,在大多数情形下,数据传输所花费时间往往超过数据处理的时间,成为实时图像处理系统中的瓶颈。因此,合理使用dma提高数据传输效率,是很有实际价值和意义的。

相关推荐

CEVA凭借90%的市场份额继续领导DSP IP市场

CEVA  DSP  2012-05-30

欧胜推出带有语音处理器DSP的下一代音频中枢

欧胜  DSP  2012-05-07

Tensilica HiFi音频/语音DSP迎来又一里程碑

Tensilica  DSP  2012-04-25

Tensilica授权瑞萨电子ConnX BBE16 DSP IP核

Tensilica  DSP  2012-04-18

Tensilica HiFi音频DSP支持杜比数字+功能

Tensilica  DSP  2012-02-28

CEVA和Idea! 电子系统合作

CEVA  DSP  ISDB-T  2011-12-19
在线研讨会
焦点