FPGA图像处理--------常用的图像处理信号实例

1、信号的边缘检测(上升沿、下降沿)

        首先,同步待检测信号,得到本地的同步信号vsync_r,然后打一拍得到vsync_r2,对第二拍的信号取反,得到vsync_r2n,最后将vsync_r2n与vsynr_r相与得到上升沿有效信号。

input   vsync ;
reg     vsync_r;
wire    vsync_r2;
wire    vsync_r2n;
wire    vsync_rise;
always@(posedge clk ) begin
    vsync_r <= vsync;
	vsync_r2<= vsync_r;
end
assign vsync_r2n = ~vsync_r2;
assign vsync_rise=vsync_r & vsync_r2n;

        关于下降沿同理,首先对待检测信号进行同步,得到本地的同步信号vsync_r,然后vsync_rn一直对vsync取反,并且第二拍信号vsync_r2对vsync_rn取反,在下降沿的时候将vsync_r2与vsync_rn相与

input vsync ;
reg   vsync_r;
wire  vsync_rn;
wire  vsync_r2;
wire  vsync_down;
always@(posedge clk) begin
	vsync_r  <= vsync ;
	vsync_rn <= vsync_r ;
end
assign vsync_r2 = ~vsync_rn;
assign vsync_down = vsync_rn & vsync_r2 ; 

 

2、多拍处理

        (1)时钟多拍处理:将一个信号连续打多拍,这个操作在时序对齐和防止亚稳态应用中十分常见 。

parameter       VSYNC_WIDTH  = 9 ;
reg        vsync_async ;
reg        vsync_async_r1 ;
reg        [VSYNC_WIDTH:0] vsync_async_r ;
input 	    vsync;
always@(posedge clk)
begin
	vsync_async    <= ~vsync;
	vsync_async_r1 <=  vsync_async;    //打一拍处理
	vsync_async_r  <= {vsync_async_r[8:0],vsync_async_r1}; //打连续的九拍。
end

        (2)数据多拍处理

        数据多拍在处理图像的时候主要用在两个计算模块处理速度不匹配的情况,当一个计算模块处理速度较快,但是有需要啊另一个模块计算结果,就需要吧当前的计算结果多缓存几拍。 

parameter DW_INEO  = 3 ;
parameter LATENCY  = 8 ;
integer   n;
input   [DW_INEO-1:0] din_fifo;
reg     [DW_INEO-1:0] din_fifo_r[LATENCY-1:0]
always@(posedge clk )
begin
	din_fifo_r[0]  <= din_fifo;
	for(n=1;n<LATENCY;n=n+1)
		din_fifo_r[n] <= dinfifo_r[n-1];
end

3、图像行列计数

        在图像处理算法中,大部分算法需要精准的像素定位,行列计数算法是像素定位点的基本算法。其中行列计数的最简单方法是通过行场同步信号和像素有效信号进行计数。实际原则如下:

        第一、每一个场信号到来时行列信号清零

        第二、每一个行信号到来时,行信号加一同时列信号清零。

        第三、像素信号有效时列计数加一。 

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值