ov5640采集到rgb565格式的图像数据,通过Sccb控制端口传输传入fpga通过图像去雾模块,将采集到的rgb565数据转化为rgb888的视频流数据格式数据再通过ip核 AXI4-stream 将数据转化为VDMA 所能接受的AXI4-stream格式。vdma将数据转化为memory-map存储到ddr3中, 从ddr3中读出axi-stream格式,转化为rgb888,通过rgb2lcdip核显示在lcd屏幕上。
构建针对交通视频实时去雾模块,该系统包括图像采集模块,视频处理模块VIP模块,存储模块,显示模块,以及PS和PL交互模块。
其中采集模块通过OV5640采集图像,VIP模块基于暗通道先验的引导滤波去雾算法实现,存储模块包括了DDR3,提供给程序暂存空间,显示模块包括HDMI接口输出图像去雾图像.
图像采集模块 以及存储模块 全部基于PS端实现,去雾算法模块以及显示模块基于PL端实现。两者的交互通过AXI接口实现。
系统PS端通过SCCB协议配置OV5640采集图片数据,随后将采集到的图片通过去雾模块, 处理后的数据为摄像头输出的行、场同步信号并不能直接作为视频流出,需要对数据进行转换,
通过Xilinx提供的video to AXI-Stream IP核进行数据转换,把处理后的数据通过VDMA写入帧缓存,VDMA支持将AXI-Stream数据转化成AXI-Memory Map格式,通过HP接口连接,从而高效的访问DDR3。
VDMA从DDR3中在将数据通过AXI-Stream to Video Out IP核,在VTC IP核控制下,可以产生时序信号,将帧缓存的数据转化成视频输出的数据格式。
VDMA从DDR3中在将数据通过AXI-Stream to Video Out IP核,在VTC IP核控制下,可以产生时序信号,将帧缓存的数据转化成视频输出的数据格式。
VTC:video timing controller ip核用于控制AXI stream接口和视频输出的时序参数。 时序发生器,用于对显示器输出所需的时序信号,方便再下一帧图像对行,场消隐区进行逻辑处理。
HDMI 驱动 IP 核的输入接口连接到 AXI_Stream to Video Out 的输出接口,其需要两个不同频率的输入时钟,HDMI的串行时钟是像素时钟的5倍,均由动态时钟生成 IP 核来提供。
动态时钟配置为VTC和HDMI提供时钟信号,其主要功能是根据不同的分辨率配置出不同的时钟输出,本质上是锁相环(PLL)。
一些细节
1280 720 大气光值通过前百分之0.1像素的均值。通过直方图统计区间像素数目,间接计算大气光值。
透射率粗估计为 rgb三通道求最小值图像,再最小值滤波。行缓存+窗口化5*5 得到粗估计透射率. fifo+移位寄存器
透射率细估计:引导滤波,粗估计的图像为输入图像,引导图像为灰度图像或者最小值图像,根据输出图像和引导图像的局部线性关系。通过这个输出图像 和通过输入图像加噪后的输出图像做岭回归。 灰度图像可以提供边缘细节。 做均值滤波5*5.
数据运算*/. 对于透射率因为为小数,所以要进行定点化操作, 移位的方式扩大数据倍数,同时扩大1024倍。对数值左移10位。最后进行移位恢复位数,完成对图像的恢复。
DDR存储三帧图像。
浮点定标 进行浮点数运算。
利用暗通道先验知识,根据雾天退化模型。
对雾天退化方程进行局部最小处理,三个通道独立执行,利用暗通道先验知识对三个通道之间进行最小值操作:
过程
1 根据雾天成像模型得到,雾天退化模型:
2 暗通道先验去雾
3 大气光值
4 引导滤波来优化去雾图像的透射率
引导滤波来优化去雾图像的透射率,引导滤波器可以保持平滑特性。在引导图像的帮助下,它可以帮助使滤波输出比输入更有结构化,更加凸显细节。