新闻中心

EEPW首页>嵌入式系统>设计应用> 用CPLD实现嵌入式平台上的实时图像增强

用CPLD实现嵌入式平台上的实时图像增强

作者: 时间:2010-12-03 来源:网络 收藏


对于连续图像P,其局部边缘可由对应空间梯度的幅值


,取其一阶近似ΔPi,j=2Pi,j-Pi,j-Pi-1,j,可得图像{Pi,j|i=1,2,...,n;j=1,2,...,m}在(i,j)的边缘信息

如果不计Pi,j的取值范围,可直接对图像{Pi,j|i=1,2,...,n;j=1,2,...,m}进行修正:

P′i,j=Pi,j+ΔPi,j,

其中,P′i,j表示Pi,j修正后的值显然,图像{Pi,j|i=1,2,...,n;j=1,2,...,m}按此规则修正后边缘值的变化更为强烈,边缘更为突出,可达到边缘增强的效果同时,由于在原图像上叠加了梯度值,使得修正后的图像的频谱有一定的扩展但由于没有对Pi,j的取值作约束, 这样处理后的象素值可能会溢出,例如对于每个色彩通道为8位的图像,处理后的数值可能会大于255或小于0因此,通常要对其进行归一化处理,即:

Pnew=255%26;#215;(P′-P′min)/(P′max-P′min)

但用硬件实现乘除运算可能会占用很多资源,上述公式即便以运算实现都是很不经济的本文采用预拉伸加饱和/截止的方法,在不牺牲频率特性的基础上达到减少计算量的目的

考察ΔPi,j与Pi,j的直方图,分别取得它们的右峰值所对应的横座标,记为GΔ和G,并找到k,使得kGΔ+G=255,则修正公式变为P′ i,j=Pi,j+kΔPi,j其中kΔPi,j可以LUT实现修正后的P′i,j可在[0,255]上进行饱和/截止运算

2 用实现实时的图像增强

本文所采用的改进图像增强算法的主要成份是差分累加以及饱和/截止这些运算都是加减法及逻辑运算,都属于ALU的简单操作,适合硬件实现本文采用实现所提出的算法以对具有30fps的1280 1024 RGB图像计算ΔPi,j为例,每计算一点ΔPi,j需要4次加(减)运算,即总的需要1280 1024 5;3 30 4=471,895,200次加(减)运算如果采用的的速度是100MHz,且假定所有运算都是单周期的,则仅仅该运算就需要4.7s!所以采用实现某些运算是必需的

图3 图像增强算法的硬件实现结构

采用CPLD实现运算(例如边缘处理中涉及的求梯度运算),还需解决数据的暂存问题本文以一片高速SRAM作为数据缓冲区由于图像数据的采样输入的频率也很高,需要充分合理地安排好每一次操作的时序,充分利用已参与运算的数据及中间结果,减少数据进出SRAM的次数

2.1 基于E1-的网络图像采集平台

在分析具体实现方法前,先简要介绍所采用的硬件平台该平台主要用于远程图像采集和以太网传输,其图像通道结构如图1所示
OV9620是CMOS的数字图像传感器,负责采集连续的数字图像;中央处理器使用德国HYPERSTONE公司的E1系列RISC,它集DSP和RISC于一身,可以加载OS,方便地实现任务调度内存管理等功能,大大提高系统的总体性能;CPLD的基本功能是作为E1总线接口控制模块,本文还将用它实现图像增强运算

2.2 算法的总流程

为了实现实时的读写和运算,需要由外部电路产生24MHz%26;#215;4的时钟EXCLK作为读写时钟,所有时序都由CMOS时钟和EXCLK控制,可以做到完全同步具体流程如图2所示

(1)在CMOS时钟到来时,从CMOS传感器的数据输出口采集Pi,j,并实现加法运算RESULT=Pi,j+Pi,j,同时用EXCLK的第0个时钟向SRAM写入P′i,j-1或P′i,m-1 (本行最后一个数据,下一次操作应换行);



(2)在EXCLK的第1个时钟锁存RUSELT,由SRAM读入Pi-1,j,并做减法运算RESULT=RESULT-Pi-1,j;
(3)在EXCLK的第2个时钟锁存RUSELT,由SRAM读入Pi,j-1,并做减法运算RESULT=RESULT-Pi,j-1;
(4)在EXCLK的第3个时钟锁存RUSELT,同时写入Pi,j


关键词:DSPCPLDFPGA

评论


相关推荐

技术专区

关闭