FPGA 学习小组
直播中

倪驰銮

7年用户 204经验值
私信 关注

基于FPGA的实时视频信号处理平台该怎么设计?

一般视频处理后的实时显示终端不能脱离PC机的束缚,而且数字图像传感器输出的图像帧率也比较低,分辨率也随着半导体行业的发展有了很大的提高,因此为了输出的图像能直接在VGA显示器上显示,需要对图像进行帧率提升、彩色空间转换等处理。FPGA器件具有可重复编程的灵活性以及并行处理能力,并且随着微处理器、专用硬件单元、DSP算法以及IP核的嵌入使其功能越来越强大。本系统的设计是基于Altera公司的EP2S60系列的开发板,板上集成两片SDRAM存储芯片、视频输入接口和VGA输出接口。

回帖(3)

王跃

2019-9-29 15:52:09
1 系统方案
   
设计的实时视频信号处理显示平台总框图如图1所示。


    CCD数字图像传感器口I输出分辨率为720×576,帧率为25 Hz的8位YChCr彩色空间信号,进入FPCA后,FPGA内部的图像处理模块将视频信号从YChCr信号转换成RGB空间信号,同时分辨率提升到1024*768,存储控制模块将帧数据存入SDRAM作为缓存,采用“乒乓”存储机制,然后通过同步VGA显示控制模块产生的60 Hz1024×768的行、场扫描时序把每帧图像的帧频从25 Hz提高到60 Hz并输出,经过DA和VGA接口后实时的显示在VGA显示器上。

举报

张鸿青

2019-9-29 15:52:17
2 系统内部模块设计
2.1 图像处理模块
   
图像处理部分内部功能模块如图2所示。


    输入的8位图像信号以YCbCr(4:2:2)格式进入输入缓存FIFO,然后通过格式转换模块将8位的YCbCr信号转换为16位的YCbCr信号,方法为在连续两个时钟下读取两次8位的数据然后合并到一个16位寄存器中,接着将16位的YCbCr(4:2:2)格式信号采用临近差值算法生成24位的YCbCr(4:4:4)格式信号,再将24位的YCbCr格式信号根据CCIR-601标准转换到RGB(8:8:8)彩色空间,数字YCbCr彩色空间到RGB
彩色空间转换的公式为:
   
    其中Y的取值范围是(16,240),Cb、Cr的取值范围是(16,235),所有运算均调用FPGA内部自带的乘法和实现。最后将24位的RGB彩色空间信号输出到缓存FIFO,供SDRAM存储使用。图像处理模块设计如图3所示。

   

2.2 存储控制模块
   
存储控制部分内部功能模块如图4所示。


    写SDRAM存储模块判断缓存FIFO中的RGB信号即像素点数据长度满足720个时,向SDRAM控制器发出启动存储请求,然后SDRAM控制器从缓存FIFO中依次读取数据存入片外的SDRAM中,存576次后即为一帧图像的数据,在SDRAM的2个Bank中各存入一帧图像数据,采用乒乓存储机制进行对帧数据的读出操作。由于采集到的图像帧频为25 Hz,要提高到VGA显示的刷新频率60 Hz,因此时序发生器要控制读SDRAM存储模块对SDRAM的帧数据进行读出,平均每帧图像数据要读取的次数为2.4次,规定每5帧为一次循环,这5帧数据共读取12次,比例为2:3:2:3:2,同时,每帧的数据分576行次读出打入缓存FIFO,但每次均写入3行,此处是为后级帧放大做准备,只要FIFO中的数据为空时,就立刻打入帧图像的下3行数据。SDRAM控制器模块设计如图5所示。


2.3 VGA显示控制模块
   
VGA显示控制部分内部功能模块如图6所示。


    VGA显示控制模块主要是产生满足分辨率为1 024x768的行频和场频,因此还要对720x576的分辨率进行放大,采用的方法是选择2个互质的整数m和n,使其比值m/n与给定的放大比例尽可能接近。720x7≈1 024x5,576x4≈768x3,因此水平方向的5个原始像素点放大为7个新像素点,垂直方向的3个原始像素点放大为4个新像素点,所以前一级每次存入缓存有3行数据,水平和垂直方向上的像素放大函数如下所示。   

    水平:f0=g0
          f1=2/7 g0+5/7 g1
          f2=4/7 g1+3/7 g2
          f3=6/7 g2+1/7 g3
          f4=1/7 g2+6/7 g3
          f5=3/7 g3=4/7 g4
          f6=6/7 g4+1/7 g5
    垂直:f0=g0
          f1=1/4 g0+3/4 g1
          f2=2/4 g1+2/4 g2
          f3=3/4 g2+1/4 g3
    其中g表示原始输入的像素数据,f表示放大处理后输出的新像素数据。分辨率提高后的数据再写入下一级缓存FIFO,然后依次读入VGA控制模块,在像素时钟的同步下输出给DA进而通过VGA接口显示在屏幕上。VGA显示控制模块设计如图7所示。


2.4 视频输出效果图
   
图8所示为本系统采集处理后分辨率为1 024x768的视频图像截图。可以看出经FPGA处理后的图像比较清晰,可以满足一般的使用需求。



举报

陈小艳

2019-9-29 15:52:20
3 结论
   
本项目设计的基于FPGA的实时视频信号处理平台实现了输入图像的格式转换、彩色空间转换、帧率提高和像素放大等功能,整个数据流处理过程均在100 MHz的同步时钟下完成,达到了视频采集显示的实时性,且脱离了原始PC机的束缚,实现了系统的小型化,便于推广和应用。但是本设计也存在一些可以优化的方面,例如可以将图像输出分辨率设置成多种模式,通过外部按键根据用户使用需求来控制分辨率的大小,还可以将视频输入端改成多通道输入,对不同区域的视频信息进行切换显示或同时显示。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分