用CPLD实现嵌入式平台上的实时图像增强
范围,可直接对图像{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×(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用CPLD实现实时的图像增强
本文所采用的改进图像增强算法的主要成份是差分、累加以及饱和/截止。这些运算都是加减法及逻辑运算,都属于ALU的简单操作,适合硬件实现。本文采用CPLD实现所提出的算法。以对具有30fps的1280×1024RGB图像计算ΔPi,j为例,每计算一点ΔPi,j需要4次加(减)运算,即总的需要1280×1024×3×30×4=471,895,200次加(减)运算。如果采用的DSP的速度是100MHz,且假定所有运算都是单周期的,则仅仅该运算就需要4.7s!所以采用CPLD实现某些运算是必需的。
图3图像增强算法的硬件实现结构
采用CPLD实现运算(例如边缘处理中涉及的求梯度运算),还需解决数据的暂存问题。本文以一片高速SRAM作为数据缓冲区。由于图像数据的采样输入的频率也很高,需要充分合理地安排好每一次操作的时序,充分利用已参与运算的数据及中间结果,减少数据进出SRAM的次数。
2.1基于E1-DSP的网络图像采集平台
在分析具体实现方法前,先简要介绍所采用的硬件平台。该平台主要用于远程图像采集和以太网传输,其图像通道结构如图1所示。
OV9620是CMOS的数字图像传感器,负责采集连续的数字图像;中央处理器使用德国HYPERSTONE公司的E1系列RISCDSP,它集DSP和RISC于一身,可以加载OS,方便地实现任务调度、内存管理等功能,大大提高系统的总体性能;CPLD的基本功能是作为E1总线接口控制模块,本文还将用它实现图像增强运算。
2.2算法的总流程
为了实现实时的读写和运算,需要由外部电路产生24MHz×4的时钟EXCLK作为读写时钟,所有时序都由CMOS时钟和EXCLK控制,可以做到完全同步。具体流程如图2所示。
(1)在CMOS时钟到来时,从CMOS传感器的数据输出口采集Pi,j,并实现加法运算RESULT=Pi,j+Pi, 《用CPLD实现嵌入式平台上的实时图像增强(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/168874.html
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×(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用CPLD实现实时的图像增强
本文所采用的改进图像增强算法的主要成份是差分、累加以及饱和/截止。这些运算都是加减法及逻辑运算,都属于ALU的简单操作,适合硬件实现。本文采用CPLD实现所提出的算法。以对具有30fps的1280×1024RGB图像计算ΔPi,j为例,每计算一点ΔPi,j需要4次加(减)运算,即总的需要1280×1024×3×30×4=471,895,200次加(减)运算。如果采用的DSP的速度是100MHz,且假定所有运算都是单周期的,则仅仅该运算就需要4.7s!所以采用CPLD实现某些运算是必需的。
图3图像增强算法的硬件实现结构
采用CPLD实现运算(例如边缘处理中涉及的求梯度运算),还需解决数据的暂存问题。本文以一片高速SRAM作为数据缓冲区。由于图像数据的采样输入的频率也很高,需要充分合理地安排好每一次操作的时序,充分利用已参与运算的数据及中间结果,减少数据进出SRAM的次数。
2.1基于E1-DSP的网络图像采集平台
在分析具体实现方法前,先简要介绍所采用的硬件平台。该平台主要用于远程图像采集和以太网传输,其图像通道结构如图1所示。
OV9620是CMOS的数字图像传感器,负责采集连续的数字图像;中央处理器使用德国HYPERSTONE公司的E1系列RISCDSP,它集DSP和RISC于一身,可以加载OS,方便地实现任务调度、内存管理等功能,大大提高系统的总体性能;CPLD的基本功能是作为E1总线接口控制模块,本文还将用它实现图像增强运算。
2.2算法的总流程
为了实现实时的读写和运算,需要由外部电路产生24MHz×4的时钟EXCLK作为读写时钟,所有时序都由CMOS时钟和EXCLK控制,可以做到完全同步。具体流程如图2所示。
(1)在CMOS时钟到来时,从CMOS传感器的数据输出口采集Pi,j,并实现加法运算RESULT=Pi,j+Pi, 《用CPLD实现嵌入式平台上的实时图像增强(第2页)》