FPGA图像处理错帧

64051216bit的图像,加了一个拉伸模块之后,变为6405128bit图像。图像稳定在370多行(大致范围)处有错帧现象,像是有一条隔断线。图像变化快了更明显。

行场信号的已经采过了,对齐了,时延合理,所以图像的370多行以上都是合理的。

如果把相机的采图频率由50hz降低到25hz,就无此现象。

初步考虑是不是相机的发图太快了导致一张图像没有处理完 下一张图就覆盖掉了。

但是项目需要相机工作在50hz,怎么样可以解决掉这个错帧现象。

如图是添加的拉伸模块的工程代码,从上位机接收到两个阈值Y_max,Y_min进行拉伸。初步考虑将乘除法用ip核例化。主要问题就是处理速度跟不上相机的刷新速度,怎么解决。

img

如果相机的采图频率由50hz降低到25hz,无此现象,很有可能是采集和绘制不协调导致的,有可能是采集太快,形成阻塞,可尝试做个缓冲列表试试

考虑下缓存设计,比如:帧缓存 行缓存 列对齐

1:乘除法不会产生这种错误。
2:图像经过拉伸后像素数量会变大,处理不过来是正常的,需要在拉伸前放一个 FIFO
3:这个 FIFO 需要大一点,需要能保存几线的图像数据
4:这个 FIFO 最好是异步的,写数据用原始视频时钟,读数据用较快的时钟,比如用 100MHz 。
5:原始的视频时钟可能是25MHz左右,用 100MHz 时钟去做视频处理能处理的数据量是输入的 4 倍左右,能用较大 FIFO 就能满足拉伸比例超过 4-6 倍的图像运算。

你可以降低相机的刷新频率,使它和你的处理可以匹配

尝试降低一下代码的时间复杂度,或者可以创建约束来解决

定义缓存