APP下载

基于FPGA的多路视频实时处理系统

2017-04-12易子川刘先明NicolaasFransdeROOIJ周国富

关键词:视频信号插值灰度

易子川, 林 跃, 王 利,, 刘先明, Nicolaas Frans de ROOIJ, 周国富,4*

(1. 电子科技大学中山学院,中山 528402; 2. 华南师范大学华南先进光电子研究院,广州 510006; 3. 深圳市国华光电科技有限公司研发中心,深圳 518110; 4. 深圳市国华光电研究院,深圳 518110)

基于FPGA的多路视频实时处理系统

易子川1,3,4, 林 跃1, 王 利1,2,3, 刘先明2,3, Nicolaas Frans de ROOIJ3, 周国富2,3,4*

(1. 电子科技大学中山学院,中山 528402; 2. 华南师范大学华南先进光电子研究院,广州 510006; 3. 深圳市国华光电科技有限公司研发中心,深圳 518110; 4. 深圳市国华光电研究院,深圳 518110)

针对传统多路视频监控系统控制不灵活、处理速度慢、系统无法对各路视频信号进行视频算法等问题,介绍了一种采用FPGA设计多路视频实时处理和显示的系统方案. 通过使用单片FPGA硬件方式实现多路视频的采集、格式转化、视频缓存、视频算法处理、视频拼接和显示,并可以进行多路视频与其中任意一路视频切换显示和处理,同时系统支持对每一路视频进行不同的算法处理. 该方案利用FPGA的并行处理能力,可以实时处理和显示4路视频,帧频达到了15帧/s,每一路视频信号的处理时间不超过4 ms. 该方案具有低成本、低功耗、实时性好、扩展性强等特点,适用于目前常用的视频监控应用场景.

FPGA; 多路视频处理; 视频切换; 视频拼接

当今社会信息化步伐加快,科技发展日新月异,视频监控为当前的生活创造了巨大的便利,已广泛应用于各个领域,如:智能交通监控、银行安保系统、航天航空、小区安防等,具有较大的研究价值与现实意义. 当前视频监控方案众多,为了达到全方位的监控,一般采用多路视频监控,将多路信号显示在一个区域,便于管理的同时还提高监控效果.

在已有多路视频监控方案中,有的基于PC机方案[1-2],有的基于ARM平台实现方式[3]、基于DSP平台方案[4-5]、基于现场可编程门阵列(Field-Programmable Gate Array,FPGA)的方案[6]、基于DSP+FPGA平台或者其他不同处理器相结合的方式[7-8]. 这些实现方案存在一定的缺陷,基于PC机的实现方案具有高功耗和高成本的特点,还存在便携性差、处理速度慢等缺点[9-10];基于ARM为核心的方案处理能力较弱,无法进行复杂视频算法;基于DSP的实现方案处理速度比FPGA慢[11],采用较为高端的芯片可以达到较好的效果,但是成本较高[12-13];目前,基于FPGA方案的系统无法实时地进行每一路视频的算法处理[14-15];其他微处理器结合方案的实现较为复杂,增加了人力和硬件成本. 上述方案都很难进行高分辨率视频处理,不利于小型化,成本较高[16].

针对这些情况,本文提出了基于单片FPGA实现多路视频监控的处理系统设计,充分利用FPGA的并行处理能力,视频采集、处理和显示模块全部在FPGA内部实现,无需过多的外设电路,并可以对每一路信号进行算法处理,还可以实现单路和多路视频的切换显示. 单片FPGA的设计成本低、功耗低、利于集成,具有较好的应用价值.

1 系统设计

系统设计的原理框图如图1所示,采用4路视频信号输入,每一路视频信号单独处理,由于采用的是相同型号的摄像头,模块均可以复用,通过模块复用可节省FPGA资源,降低系统开发难度和成本,同时充分利用了FPGA的并行处理能力.

图1 系统设计原理框图

系统主要包括6个模块:视频采集、格式转化、视频缓存、视频算法实现、视频拼接和视频显示模块,根据需要可以在视频拼接模块中加入不同的视频算法模块,算法选择和视频切换通过外部开关控制. 系统设计的核心部分是视频缓存、视频算法处理和视频拼接,视频缓存采用同步动态随机存储器(SDRAM)器件,视频拼接模块将4路视频信号进行拼接显示.

1.1 视频采集与格式转化

该系统采用的摄像头是数字摄像头,通过I2C对摄像头进行配置,视频采集模块通过读取摄像头通用输入/输出(GPIO)传输的视频信号,通过GPIO接口采集的数字图像是Bayer格式,若要正常显示需要进行格式转化. 本系统要转化为30位标准RGB格式,R、G、B各10 bit,转化通过插值完成. 该模块将视频分辨率从1 280×1 024降为320×240,满足了SDRAM的存储器大小要求. 由于VGA显示的分辨率是640×480,降低后分辨率恰好与4路信号拼接之后的分辨率相同. 如果要提高显示视频的分辨率,可以参考VGA协议手册,通过增大存储器和提高显示时钟来实现.

1.2 视频缓存

视频缓存是为了实现多路信号的同步和视频拼接. 图2是本系统SDRAM视频缓存模块原理,采用设计的8端口SDRAM控制器:包括4路输入和4路视频输出. 各读写端口与SDRAM之间采用异步的先入先出队列(FIFO),达到SDRAM与外部写入和读出时钟不一致时的数据缓存. 为了有效利用资源和SDRAM的数据16 bit位宽,对于系统的10 bit的R、G、B的信号采取只存储高5位的形式,读出时低5位补零. 以便节省资源,且不影响显示效果.

对于16路或者多路的视频信号,可采用更大的SDRAM存储器,同时开发多端口的控制器,即可实现功能.

图2 SDRAM视频缓存原理

1.3 视频算法处理

系统中4路视频信号均可独立进行算法处理,且每个算法都可以在4路信号中同时使用,也可以单独对其中一路视频进行处理. 为了保证显示的同步性,可计算每一个算法模块的处理时间,所有算法模块结束后,会以处理时间最长的模块作为基准信号. 为了保持信号同步,其他算法模块做延时处理,算法处理模块信号处理如图3所示.

图3 算法处理模块

图3列出了系统实现的4种算法处理模块,实际应用中可以在系统中加入更多的算法. 视频信号经过一个算法模块之后还可以送入另外一个模块进行处理,二值化处理与边缘检测算法模块均在灰度处理模块的基础上进行.

(1)灰度处理. 采集的视频帧序列为f(x,y,1)、f(x,y,2)、….、f(x,y,n),从SDRAM中读取做灰度处理和二值化处理.R、G、B转化为灰度图常用公式:

Gray=0.299R+0.587G+0.114B.

(1)

在FPGA中涉及到浮点运算,会消耗大量的逻辑资源,实际实现过程中将系数量化成3/10、6/10和1/10. 除法采用FPGA的除法器可以加快信号处理速度,该处理方式能达到很好的效果.

(2)二值化处理. 二值化采用自适应阈值,计算一幅图像的灰度分量的平均值为二值化的阈值,以有效减少环境变化(如光线变化)对系统的干扰. 二值化公式:

(2)

其中,iTH为二值化的阈值.

(3)边缘检测. 边缘检测采用Sobel检测算子,采用3×3的Sobel算子核,先对图像垂直方向进行边缘检测,再对水平方向进行边缘检测,image为输入图像信号,Gx和Gy分别是垂直方向和水平方向Sobel算子核:

(3)

计算出图像的每一个像素的垂直方向及水平方向灰度值,则该点灰度值:

(4)

FPGA实现过程则是采用3个FIFO缓存3行图像,FIFO输出通过与Sobel算子进行乘加运算,充分利用FPGA的宏单元模块,主要调用其乘法器与并行加模块,而开平方运算也是调用开方宏单元模块,宏单元模块可以加速运算,提高系统的运算能力.

(4)图像放大. 图像放大采用的双线性插值算法[17],双线性插值算法原理: 首先在图像x方向(水平方向)进行线性插值,然后在图像y方向(垂直方向)进行线性插值,得到插值点f(x,y). 如果选择一个坐标系统使得的4个已知点坐标分别为 (0, 0)、(0, 1)、(1, 0) 和 (1, 1)则插值公式可化简为:

f(x,y)=f(0,0)(1-x)(1-y)+f(0,1)(1-x)y+f(1,1)xy+f(1,0)x(1-y),

(5)

其中f(x,y)就是经过插值之后的输出信号.

在FPGA中双线性插值通过2个双口RAM缓存2行图像数据实现,在1个时钟周期内同时在每一行提供2个输入像素,从而提供了所有的4个像素. 将4个像素输入到插值模块,最终可以得到插值后的点. 在本系统中,由于显示器分辨率受限,如果需要显示插值之后的1路视频,则只能切换到1路视频显示模式.

1.4 视频拼接和显示

视频拼接是将多路视频采集的视频显示在同一画面,拼接过程与不同画面的时序同步,同步信号是由VGA控制器模块产生,VGA控制器模块根据时序读取显示所需的视频信号. 视频拼接模块根据地址选择读取其中一路信号,所以每一路视频的显示顺序是可以任意调整的,只需将VGA显示的起始地址和其中的一路信号关联起来. 图4是多画面视频拼接模块处理流程图,其中VGA_X和VGA_Y是VGA控制器模块显示1个像素点的地址.

视频拼接功能是该系统的重要模块,在8端口SDRAM控制器中,每一路信号都设置了read data使能信号,该读使能信号是通过图4判断之后赋值的. 更多路信号的拼接可采用同样的原理,只需将判断地址做相应的变化,同时,增大视频存储器即可.

2 系统验证

根据以上设计,编写相关的代码模块,采用DE2开发板作为验证平台,该开发板采用的是Altera公司的Cyclone II系列FPGA芯片EP2C35F672C6,使用开发软件是Quartus II 9.0,通过VGA接口连接通用液晶显示器显示,TRDB-DC2摄像模块摄像头采用的是Micron公司推出的一款RGB三基色数字式130万像素CMOS摄像头MT9M011,原始分辨率是1 280×1 024. 编译成功后下载至FPGA,系统4路视频显示效果如图5A所示,系统将一路信号作为2路显示画面,视频算法和视频切换选择通过开发平台上的按键和开关确定. 图5B是经过算法处理模块之后的多路视频显示,第一路视频是彩色视频,第二路视频是灰度处理显示,第三路是第一路视频的二值化处理显示,第四路视频是第二路视频的边缘检测处理显示. 图5C是图5B的第一路视频双线性插值之后的显示效果,如果要显示插值之后的视频,则只能显示一路视频. 可以看出双线性插值具有较好的插值效果,但是放大后图像相对于原始信号清晰度还需要进一步优化.

图4 视频拼接过程

图5 多路视频、算法处理和放大后的显示效果

3 结论

采用Altera公司的低成本Cyclone II系列FPGA设计了一个多路视频实时处理系统,系统设计全部采用FPGA硬件设计,充分利用FPGA的并行处理能力,帧频达到了15帧/s,算法中每一路视频信号的处理时间不超过4 ms. 经过系统长时间运行结果显示,每一路视频实时性良好,并且系统具有很好的稳定性. 该系统采用的单片FPGA的实现方式是一种低成本、低功耗和易于集中到其他系统中的方案,有利于进一步的应用.

[1] OH K J,KIM M,YOON J S,et al. Multi-view video and multi-channel audio broadcasting system[C]∥3DTV Conference,2007. Kos Island:IEEE,2007:1-4.

[2] LOU J G,CAI H,LI J. A real-time interactive multi-view video system[C]∥Proceedings of the 13th annual ACM international conference on Multimedia. New York:ACM,2005:161-170.

[3] 王鹏,黄建,吕志刚. 基于ARM9的嵌入式多路视频监控系统设计[J]. 电视技术,2008,32(7):84-86.

WANG P,HUANG J,LÜ Z G. Design of embedded multi-channel video monitoring system based on Arm9[J]. Video Engineering,2008,32(7):84-86.

[4] ZHAO J,WANG Q,MEN G Z. The design of multi-channel video network transmission Embedded System based on DM642[C]∥Control and Decision Conference (CCDC). Xuzhou:IEEE,2010:3229-3232.

[5] ZHANG Z K,LIU Z H,JIAO J B. DSP implementation of a multi-channel video display system with image stitching[C]∥Information,Computing and Telecommunication. Beijing:IEEE,2009:204-207.

[6] XIA J B,ZHAO X H,GUO W W. Research on the method of multi-channel video acquisition and display based on FPGA[J]. International Journal of Computer Network and Information Security,2010,2(1):17-17.

[7] ZHOU Y B,YANG Y N. Real-time multi-channel vsion processing based on DSP&FPGA[C]∥AASRI Winter International Conference on Engineering and Technology.[S.l.]:Atlantis Press,2013:162-165.

[8] 胡健生,张倩,蔡艳军. 基于ARM11+FPGA的多路视频监控系统关键技术研究[J]. 电视技术,2011,35(21):120-123.

HU J S,ZHANG Q,CAI Y J. Research of Multi-channel video monitoring system based on ARM11&FPGA[J]. Video Engineering,2011,35(21):120-123.

[9] 李晓光,刘宏哲,袁家政. 基于GPU实时视频处理的多投影融合系统研究[J]. 计算机科学,2015,42(9):285-288.

LI X G,LIU H Z,YUAN J Z. Multi-projector displays system research based on GPU real-time video processing[J]. Computer Science,2015,42(9):285-288.

[10] 谢逸群,王慧雅,许华虎. 基于视频实时处理的多投影曲面拼接系统的研究[J]. 中国图象图形学报,2009,4(2):286-291.

XIE Y Q,WANG Y H,XU H H. Achievingmulti-projector displays stitching based on real-time video processing[J]. Journal of Image and Graphics,2009,4(2):286-291.

[11]朱美能,李德华,金良海,等. 基于多DSP的并行实时视频处理系统[J]. 计算机与数字工程,2007,35(8):41-44.

[12] 周滨,谢晓霞,傅其祥,等. 基于多DSP的高速通用并行处理系统研究与设计[J]. 电子设计工程,2012,20(17):175-179.

ZHOU B,XIE X X,FU Q X,et al. Design of high-speed general parallel processing system based on multi-DSP[J]. Electronic Design Engineering,2012,20(17):175-179.

[13] 刘贵宝. 双DSP的多路视频监控系统设计[J]. 单片机与嵌入式系统应用,2011,11(1):58-61.

LIU G B. Multi-channel video surveillance system based on dual DSP[J]. Microcontrollers & Embedded Systems,2011,11(1):58-61.

[14]CROOKES D,BENKRID K,BOURIDANE A,et al. Design and implementation of a high level programming environment for FPGA-based image processing[C]∥Proceedings-vision Image and Signal Processing,[S.l.]:IET,2000,147(4):377-384.

[15]LIU X,SUN D J,TENG T T,et al. FPGA Implement of Multi-channel real-time correlation processing system[J]. Applied Mechanics and Materials,2013,303(306):1925-1929.

[16]BENKRID K,ALOTAIBI K,CROOKES D,et al. Image processing coprocessor implementation for Xilinx XC6000 series FPGAs[J]. Proceedings of SPIE,1999,3844(1):104-111.

[17]BAILEY D G. Design for embedded image processing on FPGAs[M].[S.l]:IEEE press,2011.

【中文责编:谭春林 英文审校:肖菁】

Multi-Channel Real-Time Video Processing System Based on FPGA

YI Zichuan1,3,4, LIN Yue1, WANG Li1,2,3, LIU Xianming2,3, Nicolaas Frans de ROOIJ3, ZHOU Guofu2,3,4*

(1. University of Electronic Science and Technology of China, Zhongshan Institute; 2. South China Academy of Advanced Optoelectronics, South China Normal University, Guangzhou 510006, China; 3. R&D Center, Shenzhen Guohua Optoelectronic Technology, Co., Ltd., Shenzhen 518051, China; 4. Academy of Shenzhen Guohua Optoelectronics, Shenzhen 518110, China)

Traditional video monitoring system control is not flexible; processing speed is slow, and video algorithms for each video signal cannot be supported in the system. A multi-channel real-time video processing and display system based on FPGA is proposed in this paper. A single chip FPGA hardware is used in the system to realize multi-channel video acquisition, video format conversion, video caching, algorithm processing, video splicing and information display. Video switching display and processing can be realized among multi-channel video, and the system supports different algorithms for each channel video at the same time. The parallel processing capabilities of the FPGA is used to realize real-time processing and display of 4-channel video, and the frame rate is up to 15 frames per second; processing time of each video signal is less than 4 ms. The proposed system has advantages of low cost, low power consumption, real-time, expansibility. And it is suitable for daily video monitoring application.

FPGA; multi-channel video processing; video stitching; video splicing

2016-11-21 《华南师范大学学报(自然科学版)》网址:http://journal.scnu.edu.cn/n

教育部长江学者和创新团队发展计划项目(IRT13064);国家高等学校学科创新引智计划111引智基地-光信息引智基地项目;广东省引进创新科研团队计划项目(2011D039);广东省引进第四批领军人才专项资金项目(Nicolaas Frans de ROOIJ,2014年);广东省科技计划项目(2014A030308013,2014B090914004);2016年广东大学生科技创新培育专项项目(pdjh2016a0906)

TN911.72

A

1000-5463(2017)01-0051-05

*通讯作者:周国富,教授,国家“千人计划”入选者,广东省领军人才,Email: guofu.zhou@m.scnu.edu.cn.

猜你喜欢

视频信号插值灰度
采用改进导重法的拓扑结构灰度单元过滤技术
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
基于Sinc插值与相关谱的纵横波速度比扫描方法
基于pade逼近的重心有理混合插值新方法
浅析新一代视频信号ICtCp
混合重叠网格插值方法的改进及应用
短距视频信号无线通信网络
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于像素重排比对的灰度图彩色化算法研究
基于混合并行的Kriging插值算法研究