盧小冰
摘 要:該文介紹一種基于FPGA多視頻信號(hào)任意疊加的設(shè)計(jì)與實(shí)現(xiàn),給出了實(shí)現(xiàn)原理及模塊設(shè)計(jì)。設(shè)計(jì)包含視頻采集預(yù)處理模塊、I?C總線接口模塊、DDR3 SDRAM存儲(chǔ)模塊、放大疊加融合模塊、LVDS顯示輸出模塊等五個(gè)部分。該系統(tǒng)在LATTICE的LFE3-70EA-8FN484C芯片系統(tǒng)上得到實(shí)現(xiàn)并運(yùn)用到視頻監(jiān)控系統(tǒng)。
關(guān)鍵詞:疊加 LVDS顯示 FPGA
中圖分類(lèi)號(hào):TP302 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2017)05(c)-0162-02
隨著平安城市建設(shè)的不斷推進(jìn),視頻監(jiān)控系統(tǒng)成為社會(huì)立體化防控的重要組成部分。隨著城市的發(fā)展,監(jiān)控點(diǎn)位劇增,視頻信號(hào)隨之劇增,對(duì)于終端顯示能力的需求也不斷劇增。不僅要求實(shí)時(shí)顯示,還要求能夠同時(shí)顯示更多的信息,此時(shí)就需要視頻疊加技術(shù)。
1 系統(tǒng)整體設(shè)計(jì)
該文介紹了基于FPGA的多視頻疊加系統(tǒng),該系統(tǒng)支持多路視頻源的輸入。系統(tǒng)支持PAL、VGA、HDMI、SDI四種格式視頻源輸入,經(jīng)過(guò)FPGA系統(tǒng)處理,視頻數(shù)據(jù)最終完成視頻疊加并通過(guò)LVDS輸出到終端顯示。系統(tǒng)由五大模塊組成,包括視頻采集預(yù)處理模塊、I2C總線接口模塊、DDR3 SDRAM存儲(chǔ)模塊、放大疊加融合模塊、LVDS輸出顯示模塊。本設(shè)計(jì)的創(chuàng)新點(diǎn)在于系統(tǒng)可同時(shí)支持PAL、VGA、HDMI、SDI四種格式的視頻圖像的采集,并完成后續(xù)的視頻疊加動(dòng)作。作為一種新型的視頻疊加技術(shù),它具有靈活性強(qiáng),功能強(qiáng)大,實(shí)時(shí)性高,體積小,功耗低等特點(diǎn),具有廣泛的應(yīng)用前景。
本設(shè)計(jì)在以FPGA為主控芯片的硬件平臺(tái)上實(shí)現(xiàn)視頻圖像的縮放與疊加融合功能,可實(shí)現(xiàn)多路任意分辨率輸入視頻信號(hào)在屏幕任意位置疊加顯示,通過(guò)縮放算法對(duì)每一路視頻信號(hào)進(jìn)行放大或縮小,進(jìn)而調(diào)整各路視頻信號(hào)在終端顯示中的比例;還可通過(guò)更改各路視頻的相應(yīng)參數(shù),調(diào)節(jié)各路視頻在終端顯示的位置。該方案實(shí)時(shí)性好,處理速度快,靈活性較高。
2 I?C總線接口模塊
I?C總線是一種雙線串行總線,分別是串行數(shù)據(jù)SDA和串行時(shí)鐘SCL線。它采用多主多從的結(jié)構(gòu),所有連接在總線上的設(shè)備都有唯一的地址識(shí)別。為實(shí)現(xiàn)圖像位置、大小的可配置性,系統(tǒng)設(shè)置了I?C總線接口模塊,用于接收配置數(shù)據(jù)。FPGA僅接收配置數(shù)據(jù)值,所以只需要把FPGA作為從機(jī)設(shè)備且只有寫(xiě)操作。I?C主機(jī)將對(duì)應(yīng)的的輸入視頻信號(hào)的配置信息通過(guò)I2C總線發(fā)送至從機(jī)FPGA系統(tǒng)上,F(xiàn)PGA系統(tǒng)對(duì)接收到的數(shù)據(jù),通過(guò)建立視頻圖像信號(hào)配置信息對(duì)應(yīng)的表格進(jìn)行存儲(chǔ),待后續(xù)視頻數(shù)據(jù)采集后預(yù)處理做準(zhǔn)備。
3 視頻采集預(yù)處理模塊
視頻采集芯片,將輸入的PAL、VGA、HDMI三種信號(hào)轉(zhuǎn)為RGB格式后,同SDI一起輸入FPGA系統(tǒng)中進(jìn)行視頻采集預(yù)處理,根據(jù)由I?C總線傳輸過(guò)來(lái)的已保存的配置信息,對(duì)視頻信號(hào)進(jìn)行處理,對(duì)于只有部分顯示的視頻信號(hào)進(jìn)行裁剪,提高數(shù)據(jù)傳輸?shù)男剩粚?duì)于需要縮小顯示的視頻信號(hào)進(jìn)行壓縮處理,然后將輸入視頻圖像數(shù)據(jù)進(jìn)行保存。
4 讀寫(xiě)控制模塊
讀寫(xiě)控制模塊控制幀地址的切換。為了提高并行處理的速度,簡(jiǎn)化數(shù)據(jù)讀寫(xiě)沖突,視頻圖像數(shù)據(jù)分別存儲(chǔ)在DDR3 SDRAM中。
讀寫(xiě)控制模塊主要是先將DDR3 SDRAM空間進(jìn)行劃分,然后通過(guò)控制幀地址的切換進(jìn)行有效儲(chǔ)存。為了簡(jiǎn)化設(shè)計(jì),將視頻圖像信號(hào)劃分區(qū)域保存。輸入多視頻信號(hào)按幀劃分,同一幀,所有輸入視頻信號(hào)保存至同一bank中;輸入信號(hào)做3幀保存處理,即分別保存至3個(gè)bank中。視頻圖像放大、疊加處理及輸出顯示處理的存儲(chǔ)則全部保存至同一bank中。保存時(shí),一個(gè)bank分3塊區(qū)域,保存獨(dú)立的3幀視頻圖像。
此模塊的工作過(guò)程分為寫(xiě)操作和讀操作。
(1)寫(xiě)操作。主要處理輸入視頻圖像信號(hào)的存儲(chǔ)、視頻圖像信號(hào)處理后的存儲(chǔ)。輸入視頻圖像信號(hào)的存儲(chǔ)優(yōu)先級(jí)高于后處理的。輸入視頻圖像信號(hào)運(yùn)用乒乓效應(yīng)輪流緩存到FIFO中,當(dāng)緩存中數(shù)據(jù)滿足DDR3 SDRAM寫(xiě)操作數(shù)據(jù)量時(shí),申請(qǐng)寫(xiě)操作。FIFO中數(shù)據(jù)在每一幀視頻圖像信號(hào)完成后進(jìn)行清空處理,避免信號(hào)間數(shù)據(jù)交叉異常出錯(cuò)。視頻圖像信號(hào)是連續(xù)不中斷的且信息容量不一致,針對(duì)出現(xiàn)前一幀未處理完而新的一幀數(shù)據(jù)已到達(dá)情況,該系統(tǒng)采用了并行的2個(gè)FIFO交叉輪流處理數(shù)據(jù),有效及時(shí)地處理了前端輸入數(shù)據(jù)。視頻圖像信號(hào)處理過(guò)程則是通過(guò)對(duì)從DDR3 SDRAM存儲(chǔ)器中讀出的數(shù)據(jù),根據(jù)設(shè)置參數(shù)進(jìn)行放大,疊加處理后,存入FIFO中緩存,同樣的,也采用了2個(gè)FIFO交替處理,等待寫(xiě)入DDR3 SDRAM存儲(chǔ)器中。
(2)讀操作。主要是輸入視頻圖像信號(hào)的讀取處理操作及終端顯示數(shù)據(jù)讀取操作。此過(guò)程,讀取終端顯示數(shù)據(jù)操作優(yōu)先于讀取輸入視頻圖像信號(hào)待疊加放大處理操作。輸出視頻圖像信號(hào)顯示是一個(gè)連續(xù)的過(guò)程。所以讀取終端顯示數(shù)據(jù)的優(yōu)先級(jí)高。通過(guò)從DDR3 SDRAM存儲(chǔ)器中讀取視頻圖像信號(hào)的數(shù)據(jù)緩存到FIFO中,待終端顯示讀取或者信號(hào)縮放疊加處理。
5 DDR3 SDRAM仲裁器控制模塊
DDR3 SDRAM用戶(hù)接口仲裁控制模塊將每一個(gè)數(shù)據(jù)讀寫(xiě)請(qǐng)求設(shè)置成中斷,借鑒中斷處理思想來(lái)進(jìn)行仲裁控制,從而解決數(shù)據(jù)存儲(chǔ)的沖突。
每片DDR3 SDRAM只有一組控制、地址和數(shù)據(jù)總線,因此同一時(shí)刻只能有一個(gè)設(shè)備在訪問(wèn)。常見(jiàn)的總線切換方式有兩種:一種是輪詢(xún)機(jī)制,軟件實(shí)現(xiàn)簡(jiǎn)單,但實(shí)時(shí)性不高;一種是仲裁機(jī)制,設(shè)備發(fā)送中斷請(qǐng)求,從而進(jìn)行總線切換。由于視頻圖形顯示系統(tǒng)對(duì)實(shí)時(shí)性要求高,因此選擇仲裁機(jī)制。
為了提高并行速度,將視頻信號(hào)處理操作分別進(jìn)行中斷處理。將設(shè)備中斷請(qǐng)求解析成多個(gè)子請(qǐng)求,進(jìn)行優(yōu)先級(jí)判斷,每個(gè)子請(qǐng)求對(duì)應(yīng)一個(gè)中斷處理邏輯。
6 視頻放大疊加處理模塊
視頻疊加是指多幀視頻圖像信號(hào)按照一定的原則和順序疊加起來(lái),形成一幅完整的視頻圖像信號(hào)。依據(jù)確定最終信號(hào)中每個(gè)像素點(diǎn)對(duì)應(yīng)的坐標(biāo),完成疊加。若最終圖像N(x,y)為n幅小圖像n(x,y)組成,則
根據(jù)疊加的概念,本系統(tǒng)輸出顯示分辨率為1920*1080。模塊主要包括放大處理模塊、坐標(biāo)位置定位模塊、疊加模塊三部分。
放大處理模塊采用了Lattice芯片Scaler IP核對(duì)視頻信號(hào)進(jìn)行放大處理。視頻數(shù)據(jù)從DDR3 SDRAM中讀取出來(lái),通過(guò)查找I2C傳輸過(guò)來(lái)的已保存的配置信息表,查找到對(duì)應(yīng)視頻的配置信息,再依據(jù)配置信息對(duì)視頻圖像信號(hào)進(jìn)行放大處理。
坐標(biāo)位置定位模塊,通過(guò)配置信息表中的圖像位置信息進(jìn)行處理。顯示數(shù)據(jù)的存儲(chǔ)位置按照終端顯示位置保存。由于DDR3 SDRAM一行的容量不夠存儲(chǔ)分辨率為1920*1080的視頻圖像信號(hào)24位RGB數(shù)據(jù)一行的數(shù)據(jù),因此,將圖像一行數(shù)據(jù)分為2行數(shù)據(jù)進(jìn)行存儲(chǔ)。這意味著視頻圖像信號(hào)的坐標(biāo)都需要進(jìn)行調(diào)整。坐標(biāo)位置定位模塊則對(duì)每一個(gè)視頻圖像信號(hào)的位置信息進(jìn)行計(jì)算轉(zhuǎn)換處理。
疊加模塊,根據(jù)計(jì)算轉(zhuǎn)換好的位置信息,把經(jīng)過(guò)Scaler IP核處理好的視頻圖像信號(hào)存儲(chǔ)到相應(yīng)的位置。
7 LVDS輸出顯示模塊
LVDS,即Low Voltage Differential Signaling,是一種低壓差分信號(hào)技術(shù)接口。LVDS信號(hào)發(fā)送模塊主要由LVDS發(fā)送數(shù)據(jù)控制、雙口RAM、FIFO緩沖、LVDS信號(hào)發(fā)送器和DDS控制器組成。LVDS發(fā)送數(shù)據(jù)控制用于產(chǎn)生各模塊的地址、數(shù)據(jù)和控制總線,實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)移和交互。雙口RAM實(shí)現(xiàn)并串轉(zhuǎn)換和乒乓存儲(chǔ)。LVDS信號(hào)發(fā)送器為數(shù)據(jù)幀添加包頭,并連同幀數(shù)據(jù)發(fā)送至顯示端。
8 系統(tǒng)驗(yàn)證結(jié)果顯示
操作控制平臺(tái),設(shè)置畫(huà)面配置信息,PAL、VGA、HDMI、SDI四種格式視頻源同時(shí)輸入,配置軟件將配置完的信息通過(guò)I?C總線發(fā)送至FPGA系統(tǒng)平臺(tái)上,系統(tǒng)平臺(tái)根據(jù)收到的配置信息,對(duì)視頻信號(hào)準(zhǔn)確疊加處理。可以看到,多視頻信號(hào)任意位置的顯示配置,終端可以正常如設(shè)置要求顯示,如圖。
9 結(jié)語(yǔ)
該系統(tǒng)介紹了基于FPGA的多視頻信號(hào)疊加系統(tǒng),具有強(qiáng)大的視頻處理能力,同時(shí)由于可編程的特性,系統(tǒng)的升級(jí)、維護(hù)都較為靈活。
參考文獻(xiàn)
[1] 宋承杰,王景存.基于FPGA的視頻字符疊加的設(shè)計(jì)與實(shí)現(xiàn)[J].器件與應(yīng)用,2009(12):23-27.
[2] 鄭博文,胡小龍. 基于FPGA的多幅圖像融合疊加的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2009(9):85-87.