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

2012-07-13 06:29孙军文肖金明王中训
电子设计工程 2012年14期
关键词:像素点图像处理分辨率

孙军文,肖金明,王中训

(烟台大学 光电信息科学技术学院,山东 烟台 264005)

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

1 系统方案

设计的实时视频信号处理显示平台总框图如图1所示。

图1 实时视频信号处理显示平台总框图Fig.1 Diagram of real-time video signal processing and display platform

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

2 系统内部模块设计

2.1 图像处理模块

图像处理部分内部功能模块如图2所示。

图2 图像处理部分内部功能框图Fig.2 Diagram of image processing part of internal function

输入的 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彩色空间转换的公式[4]为:

其中 Y 的取值范围是 (16,240),Cb、Cr的取值范围是(16,235),所有运算均调用FPGA内部自带的乘法和实现。最后将24位的RGB彩色空间信号输出到缓存FIFO,供SDRAM存储使用[7]。图像处理模块设计如图3所示。

图3 图像处理模块设计原理图Fig.3 Diagram of image processing module

2.2 存储控制模块

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

图4 存储控制部分内部功能框图Fig.4 Diagram of storage control part

写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所示。

图5 SDRAM控制器模块设计原理图Fig.5 Diagram of SDRAM controller module

2.3 VGA显示控制模块

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

图6 VGA显示控制部分内部功能Fig.6 Internal functions of VGA display and control

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

其中g表示原始输入的像素数据,f表示放大处理后输出的新像素数据。 分辨率提高后的数据再写入下一级缓存FIFO,然后依次读入VGA控制模块,在像素时钟的同步下输出给DA进而通过VGA接口显示在屏幕上。VGA显示控制模块设计如图7所示。

图7 VGA显示控制模块设计原理图Fig.7 Diagram of VGA display and control module

2.4 视频输出效果图

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

图8 视频输出效果图Fig.8 Result of video output

3 结 论

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

[1]郭祥东.基于FPGA的视频图像采集系统的设计[J].九江学院学报,2009(6):15-18.

GUO Xiang-dong.Design of video capture system based on FPGA[J].Joumal of Jiujiang University,2009(6):15-18.

[2]米本和也,陈榕庭.CCD/CMOS图像传感器基础与应用[M].北京:科学出版社,2006.

[3]赵雅兴.FPGA原理、设计与应用[M].天津:天津大学出版社,1999.

[4]朱虹.数字图像处理基础[M].北京:科学出版社,2005.

[5]Rafael C.Gonzalez&RichardE.Woods.数字图像处理 [M].2版.北京:电子工业出版社,2003.

[6]吴继华,王诚.Altera FPGACPLD设计[M].北京:人民邮电出版社,2005.

[7]陈忠平.基于Quartus II的FPGACPLD设计与实践 [M].北京:电子工业出版社,2010.

[8]夏宇闻.数字系统设计—Verilog实现[M].北京:高等教育出版社,2006.

[9]焦宾,吕霞付,李愿,等.基于CPLD的嵌入式真彩色液晶显示卡的设计[J].工业仪表与自动化装置,2012(2):55-58.

JIAO Bin,Lv Xia-fu,LI Yuan,et al.The design of the embedded true color LCD display card based on CPLD[J].Industrial Instrumentation&Automation,2012(2):55-58.

猜你喜欢
像素点图像处理分辨率
基于局部相似性的特征匹配筛选算法
基于ARM嵌入式的关于图像处理的交通信号灯识别
EM算法的参数分辨率
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
原生VS最大那些混淆视听的“分辨率”概念
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
基于深度特征学习的图像超分辨率重建
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割