yyzn  2022-04-07 17:02:25  C++ |   查看评论   

实时图像处理一直是视觉领域的一个研究热点,为了突破图像处理速度的设计瓶颈,人们作了大量的工作,一般情况下,单片机和数字信号处理器是主要实现途径. 随着集成电路工艺的快速发展和产业化进步,高速可编程逻辑器件CPLD和FPGA 得以迅速普及,并日益复杂. 配合图像主处理器,利用EDA 技术并使用CPLD和FPGA 开发相应的图像处理模块以加快处理速度,提高设计效率,已成为目前一种崭新的解决方案. 本文以图像中值滤波器为例探讨其在可编程逻辑器件上的实现方案,功能单元的模块化设计及相对独立性,使得系统具有良好的扩充性和重构能力. 1 中值滤波原理 中值滤波是一种非线性平滑法,它对一个滑动窗口内的像素灰度值排序,并用其中值代替窗口中心像素的灰度值. 对脉冲干扰及椒盐噪声具有良好的抑制作用,并且在抑制随机噪声的同时能有效保护边缘少受模糊. 二维中值滤波的窗口形状有多种,如线状、方形、十字形、圆形、菱形等. 不同形状的窗口产生不同的滤波效果. 通过研究,不少文献认为十字中值滤波的效果优于方形的中值滤波,而且十字中值滤波也有不同的形式以形成不同的滤波特性,其数据可从方形数据获得. 最常使用的十字中值滤波是对五个相邻像素进行排序,以确定中心点的数值. 2. 1 帧窗口接收模块 来自图像主处理器的数据可利用FPGA 中 LPM- FIFO 来接收. FIFO(First In First Out) 是一种参数可设置的先进先出存储器模块,在高速数字系统中常用作缓存,用以实现快速数据采集、顺序储存和传送. 由于FIFO 的写入(读出) 时间只需要一个时钟周期,不需要对地址进行加1 操作,相比于传统的RAM型存储器,存储速度大大提高. 根据十字滤波原理,可将待处理的图像数据按每三列划分为一帧的原则进行处理,帧窗口在图形窗口中以一列的步距从左向右移动. 图像主处理器与可编程芯片 之间的传送以帧同步方式进行传送. 帧窗口中的图形数据再按每三行构成一个像素处理窗口,以一行的步长从上向下移动. LPM- FIFO 模块可用原理图方式或VHDL 语言两种方式定制. 该模块的设计通过调用LPM- FIFO 模块及加入相关辅助电路完成. 端口信号设计如图3 所示. 3 系统软件设计 系统软件的设计应用EDA 设计思想,采用自顶向下设计方案,根据系统需求,先进行总体逻辑设计,建立顶层框图,然后细分各个功能模块,对每一个具体模块再进一步进行设计. 设计过程以 VHDL 描述语言为主,还可以结合原理图、状态图进行描述,对设计结果可以针对器件特性进行仿真和综合,最后下载到FPGA和 CPLD 实现硬件功能. 本项目软件模块的设计与上述所需实现的硬件电路功能相适应,主要由FIFO 电路模块、SIPO 串入并出模块、像素刷新模块、中值滤波模块构成. 软件部分主要用VHDL 语言完成,为了减少设计复杂度,某些功能的实现直接调用LPM兆功能块以简化设计.LPM兆功能块可以使用原理图或VHDL 文本调用方式进行定制. 在完成各个功能模块设计基础上,将其打包成元件,并在顶层设计文件中用元件例化语句将它们连接起来.

 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自一个数字图像处理系统由哪几个模块组成

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]