首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FPGA 上的验证 - 一种基于USB2.0的视频图像处理芯片设计(2)

FPGA 上的验证 - 一种基于USB2.0的视频图像处理芯片设计(2)

4 PU模块中核心部件的设计
  图像处理单元所要完成的功能主要有:(1)图像滤波(Image Filte);(2)对比度(Contrast);(3)亮度(Brightness);(4)饱和度(Saturation);(5)色相(Hue);(6)锐化(Sharpness);(7)伽马校正(Gamma)等。图3 给出了PU 模块中核心部件的结构,其中图像滤波功能是通过一个1×5 窗口在图像上的遍历来完成,伽马校正主要是通过对ROM 的查表来实现。

  


  图3 PU 模块中核心部件结构图。


  5 设计的仿真和验证
  5.1 模块的功能仿真
  主要给出了对图像预处理模块中核心部件Bayer模块的仿真验证方法,其他模块的仿真验证与此类似。
  由于图像处理模块所涉及的数据量非常庞大,仅凭单一的一种或两种软件无法独立完成,所以这里仿真验证的工作是通过三个软件Xilinx ISE + ModelSim +Matlab 共同完成,图4 给出了Bayer 模块TestBench示意图,其实现的步骤主要分为以下三步:

  


  图4 Bayer 模块TestBench 模型示意图。


  (1)由MATLAB 从10 张有共同坏点位置的不同JPEG 图像中读取8bit 无符号RGB 数据,然后由相应的RGB 数据生成对应的Bayer 数据,并以10个。txt 文本文件来保留这10 张图像的Bayer 数据,这十张文本文件同坏点位置信息一起作为测试输入激励。
  (2)把测试输入激励,分别输入Bayer 模块和MATLAB 模拟Bayer 模块功能的程序中,可以分别得到大量的信息,这些信息都是由。txt 文本文件来保存,其中MATLAB 模拟程序完成的功能与Bayer 模块完成的功能相同,只是两者运行的平台不同。
  (3)比较由MATLAB 模拟程序与Bayer 模块所生成的大量。txt 文本文件,由于模拟程序和硬件模块具体实现的机制不同(模拟程序采用了矩阵运算,而硬件模块采用2 条线的行缓冲+六级流水线的方式实现),如果它们产生的数据一致,则可以很好的说明硬件模块完成了预期的功能, 然后再运用MATLAB 显示函数,把原始图像数据与修正后的数据以图像的形式显示出来,这样能以更加直观的形式来观察对应的图像效果。
继承事业,薪火相传
返回列表