FPGA图像处理3_基础功能_二维缓冲

本文介绍了如何在FPGA中实现二维缓冲,主要用于图像处理的插值计算和二维卷积。通过Verilog和sysgen模块,设计了一个3x3的二维缓冲,利用FIFO进行行缓冲和寄存器进行列缓冲,实现了像素点数据的并行化。文章详细讲解了行缓冲、列数据缓冲的实现以及整个系统的组装和特定情况下的数据截取。
摘要由CSDN通过智能技术生成
二维缓冲

二维缓冲的功能是将串行的像素点数据转化为并行的多个像素点的滑窗,将滑窗内的坐标中心点作为当前并行数据对应的像素点,一般用于插值计算或者二维卷积。

由于二维缓冲主要是逻辑控制,不涉及数值计算,最简单的方法是使用 Verilog 实现,但是由于二维缓冲在图像处理算法中应用十分广泛,做成 sysgen 模块更适合在 sysgen 中直接调用。

根据图像处理原理,大部分计算用的滑窗都是 3 × 3 3\times 3 3×3 或者 5 × 5 5\times 5 5×5,设计思想一致。

下文以 3 × 3 3\times 3 3×3 的二维缓冲为例说明设计方法。

Subsystem 封装如下:

在这里插入图片描述

rst 为高电平复位,用于复位缓冲数据。

in_pix 为输入的串行像素点值。

in_lv 为输入的行有效信号。

out_pix00~22 为输出的并行像素点数据,序号对应各像素点在当前滑窗内的坐标,其中滑窗中心点 pix11 作为当前并行数据对应的像素点。

out_x、out_y、out_fv、out_lv分别指示当前点 pix11 的列坐标,行坐标,帧有效和行有效信号,具体时序与图像数据流水线格式的说明一致。

3 × 3 3\times 3 3×3 二维缓冲的实现原理是用 FIFO 进行行缓冲,用寄存器进行列缓冲。

行缓冲设计:

  • 前 1 个 FIFO 的读数据接口连接下个 FIFO 的写数据接口;
  • 每个 FIFO 都设置 FWFT 属性,使用读使能信号与读数据同步;
  • 每个 FIFO 都使用 lv 信号同时作为读使能和写使能信号,但是只有 FIFO 首次装入 1 行数据后才产生读使能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值