易子川, 林 躍, 王 利,, 劉先明, Nicolaas Frans de ROOIJ, 周國富,4*
(1. 電子科技大學中山學院,中山 528402; 2. 華南師范大學華南先進光電子研究院,廣州 510006; 3. 深圳市國華光電科技有限公司研發(fā)中心,深圳 518110; 4. 深圳市國華光電研究院,深圳 518110)
基于FPGA的多路視頻實時處理系統(tǒng)
易子川1,3,4, 林 躍1, 王 利1,2,3, 劉先明2,3, Nicolaas Frans de ROOIJ3, 周國富2,3,4*
(1. 電子科技大學中山學院,中山 528402; 2. 華南師范大學華南先進光電子研究院,廣州 510006; 3. 深圳市國華光電科技有限公司研發(fā)中心,深圳 518110; 4. 深圳市國華光電研究院,深圳 518110)
針對傳統(tǒng)多路視頻監(jiān)控系統(tǒng)控制不靈活、處理速度慢、系統(tǒng)無法對各路視頻信號進行視頻算法等問題,介紹了一種采用FPGA設計多路視頻實時處理和顯示的系統(tǒng)方案. 通過使用單片F(xiàn)PGA硬件方式實現(xiàn)多路視頻的采集、格式轉(zhuǎn)化、視頻緩存、視頻算法處理、視頻拼接和顯示,并可以進行多路視頻與其中任意一路視頻切換顯示和處理,同時系統(tǒng)支持對每一路視頻進行不同的算法處理. 該方案利用FPGA的并行處理能力,可以實時處理和顯示4路視頻,幀頻達到了15幀/s,每一路視頻信號的處理時間不超過4 ms. 該方案具有低成本、低功耗、實時性好、擴展性強等特點,適用于目前常用的視頻監(jiān)控應用場景.
FPGA; 多路視頻處理; 視頻切換; 視頻拼接
當今社會信息化步伐加快,科技發(fā)展日新月異,視頻監(jiān)控為當前的生活創(chuàng)造了巨大的便利,已廣泛應用于各個領域,如:智能交通監(jiān)控、銀行安保系統(tǒng)、航天航空、小區(qū)安防等,具有較大的研究價值與現(xiàn)實意義. 當前視頻監(jiān)控方案眾多,為了達到全方位的監(jiān)控,一般采用多路視頻監(jiān)控,將多路信號顯示在一個區(qū)域,便于管理的同時還提高監(jiān)控效果.
在已有多路視頻監(jiān)控方案中,有的基于PC機方案[1-2],有的基于ARM平臺實現(xiàn)方式[3]、基于DSP平臺方案[4-5]、基于現(xiàn)場可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)的方案[6]、基于DSP+FPGA平臺或者其他不同處理器相結(jié)合的方式[7-8]. 這些實現(xiàn)方案存在一定的缺陷,基于PC機的實現(xiàn)方案具有高功耗和高成本的特點,還存在便攜性差、處理速度慢等缺點[9-10];基于ARM為核心的方案處理能力較弱,無法進行復雜視頻算法;基于DSP的實現(xiàn)方案處理速度比FPGA慢[11],采用較為高端的芯片可以達到較好的效果,但是成本較高[12-13];目前,基于FPGA方案的系統(tǒng)無法實時地進行每一路視頻的算法處理[14-15];其他微處理器結(jié)合方案的實現(xiàn)較為復雜,增加了人力和硬件成本. 上述方案都很難進行高分辨率視頻處理,不利于小型化,成本較高[16].
針對這些情況,本文提出了基于單片F(xiàn)PGA實現(xiàn)多路視頻監(jiān)控的處理系統(tǒng)設計,充分利用FPGA的并行處理能力,視頻采集、處理和顯示模塊全部在FPGA內(nèi)部實現(xiàn),無需過多的外設電路,并可以對每一路信號進行算法處理,還可以實現(xiàn)單路和多路視頻的切換顯示. 單片F(xiàn)PGA的設計成本低、功耗低、利于集成,具有較好的應用價值.
系統(tǒng)設計的原理框圖如圖1所示,采用4路視頻信號輸入,每一路視頻信號單獨處理,由于采用的是相同型號的攝像頭,模塊均可以復用,通過模塊復用可節(jié)省FPGA資源,降低系統(tǒng)開發(fā)難度和成本,同時充分利用了FPGA的并行處理能力.
圖1 系統(tǒng)設計原理框圖
系統(tǒng)主要包括6個模塊:視頻采集、格式轉(zhuǎn)化、視頻緩存、視頻算法實現(xiàn)、視頻拼接和視頻顯示模塊,根據(jù)需要可以在視頻拼接模塊中加入不同的視頻算法模塊,算法選擇和視頻切換通過外部開關(guān)控制. 系統(tǒng)設計的核心部分是視頻緩存、視頻算法處理和視頻拼接,視頻緩存采用同步動態(tài)隨機存儲器(SDRAM)器件,視頻拼接模塊將4路視頻信號進行拼接顯示.
1.1 視頻采集與格式轉(zhuǎn)化
該系統(tǒng)采用的攝像頭是數(shù)字攝像頭,通過I2C對攝像頭進行配置,視頻采集模塊通過讀取攝像頭通用輸入/輸出(GPIO)傳輸?shù)囊曨l信號,通過GPIO接口采集的數(shù)字圖像是Bayer格式,若要正常顯示需要進行格式轉(zhuǎn)化. 本系統(tǒng)要轉(zhuǎn)化為30位標準RGB格式,R、G、B各10 bit,轉(zhuǎn)化通過插值完成. 該模塊將視頻分辨率從1 280×1 024降為320×240,滿足了SDRAM的存儲器大小要求. 由于VGA顯示的分辨率是640×480,降低后分辨率恰好與4路信號拼接之后的分辨率相同. 如果要提高顯示視頻的分辨率,可以參考VGA協(xié)議手冊,通過增大存儲器和提高顯示時鐘來實現(xiàn).
1.2 視頻緩存
視頻緩存是為了實現(xiàn)多路信號的同步和視頻拼接. 圖2是本系統(tǒng)SDRAM視頻緩存模塊原理,采用設計的8端口SDRAM控制器:包括4路輸入和4路視頻輸出. 各讀寫端口與SDRAM之間采用異步的先入先出隊列(FIFO),達到SDRAM與外部寫入和讀出時鐘不一致時的數(shù)據(jù)緩存. 為了有效利用資源和SDRAM的數(shù)據(jù)16 bit位寬,對于系統(tǒng)的10 bit的R、G、B的信號采取只存儲高5位的形式,讀出時低5位補零. 以便節(jié)省資源,且不影響顯示效果.
對于16路或者多路的視頻信號,可采用更大的SDRAM存儲器,同時開發(fā)多端口的控制器,即可實現(xiàn)功能.
圖2 SDRAM視頻緩存原理
1.3 視頻算法處理
系統(tǒng)中4路視頻信號均可獨立進行算法處理,且每個算法都可以在4路信號中同時使用,也可以單獨對其中一路視頻進行處理. 為了保證顯示的同步性,可計算每一個算法模塊的處理時間,所有算法模塊結(jié)束后,會以處理時間最長的模塊作為基準信號. 為了保持信號同步,其他算法模塊做延時處理,算法處理模塊信號處理如圖3所示.
圖3 算法處理模塊
圖3列出了系統(tǒng)實現(xiàn)的4種算法處理模塊,實際應用中可以在系統(tǒng)中加入更多的算法. 視頻信號經(jīng)過一個算法模塊之后還可以送入另外一個模塊進行處理,二值化處理與邊緣檢測算法模塊均在灰度處理模塊的基礎上進行.
(1)灰度處理. 采集的視頻幀序列為f(x,y,1)、f(x,y,2)、….、f(x,y,n),從SDRAM中讀取做灰度處理和二值化處理.R、G、B轉(zhuǎn)化為灰度圖常用公式:
Gray=0.299R+0.587G+0.114B.
(1)
在FPGA中涉及到浮點運算,會消耗大量的邏輯資源,實際實現(xiàn)過程中將系數(shù)量化成3/10、6/10和1/10. 除法采用FPGA的除法器可以加快信號處理速度,該處理方式能達到很好的效果.
(2)二值化處理. 二值化采用自適應閾值,計算一幅圖像的灰度分量的平均值為二值化的閾值,以有效減少環(huán)境變化(如光線變化)對系統(tǒng)的干擾. 二值化公式:
(2)
其中,iTH為二值化的閾值.
(3)邊緣檢測. 邊緣檢測采用Sobel檢測算子,采用3×3的Sobel算子核,先對圖像垂直方向進行邊緣檢測,再對水平方向進行邊緣檢測,image為輸入圖像信號,Gx和Gy分別是垂直方向和水平方向Sobel算子核:
(3)
計算出圖像的每一個像素的垂直方向及水平方向灰度值,則該點灰度值:
(4)
FPGA實現(xiàn)過程則是采用3個FIFO緩存3行圖像,F(xiàn)IFO輸出通過與Sobel算子進行乘加運算,充分利用FPGA的宏單元模塊,主要調(diào)用其乘法器與并行加模塊,而開平方運算也是調(diào)用開方宏單元模塊,宏單元模塊可以加速運算,提高系統(tǒng)的運算能力.
(4)圖像放大. 圖像放大采用的雙線性插值算法[17],雙線性插值算法原理: 首先在圖像x方向(水平方向)進行線性插值,然后在圖像y方向(垂直方向)進行線性插值,得到插值點f(x,y). 如果選擇一個坐標系統(tǒng)使得的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)就是經(jīng)過插值之后的輸出信號.
在FPGA中雙線性插值通過2個雙口RAM緩存2行圖像數(shù)據(jù)實現(xiàn),在1個時鐘周期內(nèi)同時在每一行提供2個輸入像素,從而提供了所有的4個像素. 將4個像素輸入到插值模塊,最終可以得到插值后的點. 在本系統(tǒng)中,由于顯示器分辨率受限,如果需要顯示插值之后的1路視頻,則只能切換到1路視頻顯示模式.
1.4 視頻拼接和顯示
視頻拼接是將多路視頻采集的視頻顯示在同一畫面,拼接過程與不同畫面的時序同步,同步信號是由VGA控制器模塊產(chǎn)生,VGA控制器模塊根據(jù)時序讀取顯示所需的視頻信號. 視頻拼接模塊根據(jù)地址選擇讀取其中一路信號,所以每一路視頻的顯示順序是可以任意調(diào)整的,只需將VGA顯示的起始地址和其中的一路信號關(guān)聯(lián)起來. 圖4是多畫面視頻拼接模塊處理流程圖,其中VGA_X和VGA_Y是VGA控制器模塊顯示1個像素點的地址.
視頻拼接功能是該系統(tǒng)的重要模塊,在8端口SDRAM控制器中,每一路信號都設置了read data使能信號,該讀使能信號是通過圖4判斷之后賦值的. 更多路信號的拼接可采用同樣的原理,只需將判斷地址做相應的變化,同時,增大視頻存儲器即可.
根據(jù)以上設計,編寫相關(guān)的代碼模塊,采用DE2開發(fā)板作為驗證平臺,該開發(fā)板采用的是Altera公司的Cyclone II系列FPGA芯片EP2C35F672C6,使用開發(fā)軟件是Quartus II 9.0,通過VGA接口連接通用液晶顯示器顯示,TRDB-DC2攝像模塊攝像頭采用的是Micron公司推出的一款RGB三基色數(shù)字式130萬像素CMOS攝像頭MT9M011,原始分辨率是1 280×1 024. 編譯成功后下載至FPGA,系統(tǒng)4路視頻顯示效果如圖5A所示,系統(tǒng)將一路信號作為2路顯示畫面,視頻算法和視頻切換選擇通過開發(fā)平臺上的按鍵和開關(guān)確定. 圖5B是經(jīng)過算法處理模塊之后的多路視頻顯示,第一路視頻是彩色視頻,第二路視頻是灰度處理顯示,第三路是第一路視頻的二值化處理顯示,第四路視頻是第二路視頻的邊緣檢測處理顯示. 圖5C是圖5B的第一路視頻雙線性插值之后的顯示效果,如果要顯示插值之后的視頻,則只能顯示一路視頻. 可以看出雙線性插值具有較好的插值效果,但是放大后圖像相對于原始信號清晰度還需要進一步優(yōu)化.
圖4 視頻拼接過程
圖5 多路視頻、算法處理和放大后的顯示效果
采用Altera公司的低成本Cyclone II系列FPGA設計了一個多路視頻實時處理系統(tǒng),系統(tǒng)設計全部采用FPGA硬件設計,充分利用FPGA的并行處理能力,幀頻達到了15幀/s,算法中每一路視頻信號的處理時間不超過4 ms. 經(jīng)過系統(tǒng)長時間運行結(jié)果顯示,每一路視頻實時性良好,并且系統(tǒng)具有很好的穩(wěn)定性. 該系統(tǒng)采用的單片F(xiàn)PGA的實現(xiàn)方式是一種低成本、低功耗和易于集中到其他系統(tǒng)中的方案,有利于進一步的應用.
[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的嵌入式多路視頻監(jiān)控系統(tǒng)設計[J]. 電視技術(shù),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的多路視頻監(jiān)控系統(tǒng)關(guān)鍵技術(shù)研究[J]. 電視技術(shù),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實時視頻處理的多投影融合系統(tǒng)研究[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] 謝逸群,王慧雅,許華虎. 基于視頻實時處理的多投影曲面拼接系統(tǒng)的研究[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的并行實時視頻處理系統(tǒng)[J]. 計算機與數(shù)字工程,2007,35(8):41-44.
[12] 周濱,謝曉霞,傅其祥,等. 基于多DSP的高速通用并行處理系統(tǒng)研究與設計[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的多路視頻監(jiān)控系統(tǒng)設計[J]. 單片機與嵌入式系統(tǒng)應用,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 《華南師范大學學報(自然科學版)》網(wǎng)址:http://journal.scnu.edu.cn/n
教育部長江學者和創(chuàng)新團隊發(fā)展計劃項目(IRT13064);國家高等學校學科創(chuàng)新引智計劃111引智基地-光信息引智基地項目;廣東省引進創(chuàng)新科研團隊計劃項目(2011D039);廣東省引進第四批領軍人才專項資金項目(Nicolaas Frans de ROOIJ,2014年);廣東省科技計劃項目(2014A030308013,2014B090914004);2016年廣東大學生科技創(chuàng)新培育專項項目(pdjh2016a0906)
TN911.72
A
1000-5463(2017)01-0051-05
*通訊作者:周國富,教授,國家“千人計劃”入選者,廣東省領軍人才,Email: guofu.zhou@m.scnu.edu.cn.