優(yōu)勝從選擇開始,我們是您最好的選擇!—— 中州期刊聯(lián)盟(新鄉(xiāng)市博翰文化傳媒有限公司)
0373-5939925
2851259250@qq.com
我要檢測 我要投稿 合法期刊查詢

基于FPGA的多路實時視頻處理系統(tǒng)設(shè)計

作者:嚴(yán)飛 丁兆東 劉銀萍 陳偉 劉佳來源:《液晶與顯示》日期:2022-09-13人氣:2968

視頻顯示技術(shù)發(fā)展到21世紀(jì),同時顯示多個視頻的需求仍然存在,人們需要從單個顯示器獲得更多、更復(fù)雜的信息。因此,人們對圖像處理的效率、實時性、功耗以及處理設(shè)備的體積也有了更嚴(yán)格的要求1。當(dāng)前常用的嵌入式圖像處理平臺有ARM(Advanced RISC Machine)、數(shù)字信號處理(Digital Signal Processing,DSP)、專用集成電路(Application Specific Integrated Circuit,ASIC)以及現(xiàn)場可編程邏輯門陣列(FPGA)等。ARM平臺有較不錯的處理能力,配合一系列的開源處理算法,開發(fā)比較方便,因此這種方式能夠滿足部分圖像應(yīng)用場景的需求。但是隨著高速處理視頻圖像需求的增加以及算法的日趨復(fù)雜,單靠微處理器已經(jīng)無法滿足實時性處理的要求。DSP是一種專門用于實現(xiàn)快速數(shù)字信號處理算法的微處理器,其中有一些固定的運算模塊,使得其信號處理的速度優(yōu)于微處理器,適合操作性強和運算量大的場合,但是由于DSP采用的是串行指令系統(tǒng),使用起來有諸多限制。ASIC是為專門應(yīng)用場景下所設(shè)計的芯片,雖然在特定使用場景下功耗低、性能強,但是在其他使用場景時需要重新設(shè)計,適用性較差。FPGA由于可編程以及并行運算的特性,相比于ASIC雖然功耗較高,但其可無限重復(fù)編程2-5,因此,采用FPGA作為核心處理器能夠滿足高分辨率、高幀率等性能需求。

針對傳統(tǒng)的實時視頻處理系統(tǒng)大多存在分辨率低、控制不靈活、視頻處理算法單一、實時性差等問題6-8,本文設(shè)計了一款具有4通道高速并行處理能力的多路視頻實時處理系統(tǒng),采用高清多媒體接口(High Definition Multimedia Interface,HDMI)的視頻作為視頻源,經(jīng)過FPGA處理,最終實現(xiàn)將4路視頻任意比例縮放、漫游、疊加融合成一路視頻顯示。這使得用戶可以實時觀察真實直觀、細(xì)節(jié)豐富的多路超高清影像數(shù)據(jù),也符合市場需求。

2 系統(tǒng)設(shè)計

本設(shè)計發(fā)送卡和接收卡采用的FPGA芯片是由Xilinx生產(chǎn)的XC7K325系列的XC7K325-TFFG900,主要用來接收圖像、處理圖像以及驅(qū)動顯示器實時輸出顯示。

多路實時視頻處理系統(tǒng)采用一塊視頻發(fā)送卡對4路HDMI視頻數(shù)據(jù)進(jìn)行接收。系統(tǒng)上電后,首先將接收到的視頻數(shù)據(jù)進(jìn)行預(yù)處理,再根據(jù)串口接收到用戶的縮放參數(shù)、圖像裁剪參數(shù),將處理后的視頻數(shù)據(jù)根據(jù)用戶命令參數(shù)進(jìn)行實時縮放處理,然后將縮放后的視頻數(shù)據(jù)根據(jù)用戶需要的視頻圖像大小進(jìn)行裁剪,通過讀寫仲裁模塊按照一定的順序存儲到動態(tài)內(nèi)存DDR3中,最后將讀出的每個通道的數(shù)據(jù)通過光纖發(fā)送模塊發(fā)送出去。視頻發(fā)送卡的內(nèi)部邏輯框圖如圖1所示。

圖1  視頻發(fā)送卡FPGA內(nèi)部邏輯框圖

Fig.1  Internal logic block diagram of the video sending card FPGA


接收卡通過4路光模塊接口接收到視頻數(shù)據(jù),對數(shù)據(jù)進(jìn)行上采樣處理,再根據(jù)串口接收到用戶的旋轉(zhuǎn)角度參數(shù),對接收到的4個通道數(shù)據(jù)進(jìn)行旋轉(zhuǎn)處理,然后通過多通道讀寫仲裁模塊按照一定的順序存入到動態(tài)內(nèi)存DDR3中,按照用戶選擇通道的數(shù)據(jù)從DDR3讀出對應(yīng)通道的有效數(shù)據(jù),并對多通道視頻進(jìn)行疊加融合,最后進(jìn)行色彩空間轉(zhuǎn)換,并通過HDMI接口將融合后的一路數(shù)據(jù)在4K顯示器上顯示。視頻接收卡的內(nèi)部邏輯如圖2所示。

圖2  視頻接收卡FPGA內(nèi)部邏輯框圖

Fig.2  Internal logic block diagram of the video receiving card FPGA


3 雙線性插值縮放算法實現(xiàn)

常規(guī)視頻縮放算法有最鄰近插值算法、雙線性插值算法、雙三次插值縮放算法。由MATLAB仿真效果可知9,最臨近插值算法效果差;雙線性插值法計算量和效果居于兩者之間;雙三次插值縮放算法效果最好、畫面細(xì)膩但計算量大;在既要保證效果的同時又要考慮視頻處理的實時性以及算法的復(fù)雜情況下,本次設(shè)計選用雙線性插值算法進(jìn)行基于FPGA的縮放邏輯設(shè)計10-13

3.1 雙線性插值縮放算法邏輯設(shè)計

雙線性插值縮放算法的邏輯設(shè)計框圖如圖3所示。

圖3  雙線性插值算法邏輯設(shè)計圖

Fig.3  Logic design diagram of the bilinear interpolation algorithm


由于雙線性插值采用周圍4個像素點確定目標(biāo)像素點,因此至少緩存兩行以上的數(shù)據(jù)才能根據(jù)周圍像素點值計算目標(biāo)像素點的值14-16。本設(shè)計可以采用兩個RAM即可對目標(biāo)像素點周圍4個像素點進(jìn)行計算,但是為了提高處理速度,本設(shè)計采用4個雙口RAM進(jìn)行數(shù)據(jù)讀寫的乒乓操作。且為防止處理效率低,第一次計算時必須保證4個RAM存滿才開始進(jìn)行插值計算。

3.2 雙線性插值縮放計算

雙線性插值縮放計算流程如圖4所示。首先等待數(shù)據(jù)輸入,當(dāng)有效數(shù)據(jù)來臨時,將其存入RAM。本設(shè)計設(shè)定存滿4行視頻數(shù)據(jù)以后,系統(tǒng)才開始進(jìn)行計算。最后將數(shù)據(jù)取整輸出。

圖4  實時視頻縮放流程圖

Fig.4  Flow chart of real-time video scaling


縮放算法的仿真波形如圖5所示。仿真波形是以1 280×1 024為輸入,縮小到960×768,根據(jù)輸入輸出水平像素點個數(shù)可以求出縮放比例、插值系數(shù)以及插值點與原圖像中像素點的水平距離和垂直距離。通過使用4個RAM實現(xiàn)對兩行數(shù)據(jù)的緩存,實現(xiàn)對插值像素點周圍4個像素點的緩存輸出。其中dOut為輸出數(shù)據(jù),coeff為求得的插值系數(shù),xScale、yScale為水平和垂直方向因子,inputXres、inputYres表示輸入水平、垂直方向像素點個數(shù)。outputXres、outputYres為輸出水平、垂直方向的像素點個數(shù)。

圖5  縮放算法的仿真波形

Fig.5  Simulation waveform of the scaling algorithm


3.3 雙線性插值算法驗證與分析

在保證以上測試模塊均正常工作情況下,進(jìn)一步對縮放模塊進(jìn)行驗證。實際板上驗證時,通過HDMI接口輸入的1 080P視頻數(shù)據(jù)作為視頻源,ILA在線邏輯分析儀的波形窗口的顯示如圖6所示。在傳輸有效像素信號時,行同步(hs)信號、幀同步(vs)信號、有效信號(de)均符合圖像傳輸時序定義。從在線邏輯仿真圖中可以看出,在有效信號(de)保持為高電平時,從起始點1 130到終止點1 230,每行數(shù)據(jù)僅輸出100個有效數(shù)據(jù)其余數(shù)據(jù)均為0,說明實現(xiàn)了100×100縮放設(shè)計,接下來進(jìn)一步進(jìn)行板上驗證。

圖6  100×100縮放在線邏輯分析儀的波形圖

Fig.6  Waveform diagram of 100×100 zoom online logic analyzer


圖7所示,實際板上驗證時采用視頻流為1 080P的HDMI輸入作為視頻源,經(jīng)過縮放、緩存、同步等操作,最后再通過HDMI接口輸出至顯示器上顯示。圖7(a)、(b)分別為3 840×2 160縮放效果圖以及100×100縮放效果圖。實驗結(jié)果表明,本系統(tǒng)雙線性插值圖像縮放能夠支持圖像進(jìn)行任意比例的縮放,但是在實際縮放效果觀察過程中可以發(fā)現(xiàn),雖然理論上可以支持最低縮放到1×1分辨率,但是實際上板100×100效果已經(jīng)出現(xiàn)了比較嚴(yán)重的失真,縮放模塊滿足本次設(shè)計要求。


圖7雙線性插值在FPGA上實現(xiàn)效果圖

Fig.7Effect of bilinear interpolation on FPGA

4 實時圖像緩存實現(xiàn)

4.1 DDR讀寫邏輯設(shè)計

本次設(shè)計視頻發(fā)送卡和接收卡的核心處理器均采用Xilinx公司的7系列FPGA,采用4片4G的鎂光DDR3作為內(nèi)存。由于均支持Xilinx官方的DDR3控制器MIG IP核,本設(shè)計直接通過調(diào)用MIG IP核控制DDR3,降低了開發(fā)難度17-22

為了簡化操作,重新編寫了面向用戶的讀寫接口。讀寫操作如圖8所示。在初始狀態(tài)下,首先判斷是否有讀寫請求,當(dāng)兩個信號同時來臨時,優(yōu)先進(jìn)行寫操作,防止讀出數(shù)據(jù)為空的情況出現(xiàn)。當(dāng)寫請求信號為1時,首先判斷此時寫命令app_cmd是否為0和DDR3返回響應(yīng)信號是否為高,只有在兩種條件同時滿足情況下,才開始向DDR3中寫入數(shù)據(jù)。其次判斷DDR3寫完成信號是否拉高,若拉高則寫結(jié)束并返回初始狀態(tài),反之則繼續(xù)進(jìn)行寫操作。讀操作處理流程也是如此。

圖8  用戶接口突發(fā)讀寫流程圖

Fig.8  Flow chart of user interface burst read and write


針對DDR3讀寫測試,用戶接口讀寫控制的邏輯仿真波形如圖9所示。其中app_wdf_rdy和app_wdf_wren同時為高,并且app_cmd為000時,開始寫入數(shù)據(jù)進(jìn)DDR3。當(dāng)app_cmd為001則開始從DDR3讀出數(shù)據(jù)。當(dāng)初始化信號init_calib_complete拉高以后,在app_wdf_rdy、app_wdf_wren同時為高并且app_cmd為000時執(zhí)行寫操作。本次測試的突發(fā)長度設(shè)置為32,測試數(shù)據(jù)由計數(shù)器產(chǎn)生為0~127。在DDR3初始化完成以后,首先向DDR3中寫入測試數(shù)據(jù)。從仿真圖中可以看出,每次向DDR3中突發(fā)寫入32個數(shù)據(jù),實現(xiàn)了對DDR3的突發(fā)寫操作。

圖9  用戶接口讀寫控制

Fig.9  User interface read and write control


當(dāng)控制器處于讀狀態(tài),讀命令信號app_cmd為001并且讀數(shù)據(jù)有效信號app_rd_data_valid為高時,開始從DDR3中讀出數(shù)據(jù)。由于讀出DDR3數(shù)據(jù)比寫入DDR3的數(shù)據(jù)有一定的延遲,因此在實際觀察時要找到第一次讀出數(shù)位置,觀察是否錯位。DDR3第一次讀出數(shù)據(jù)為0~31,第二次讀出數(shù)據(jù)為32~63,讀突發(fā)長度為32。通過對比讀寫數(shù)據(jù)可以看出,兩者保持一致,且讀寫突發(fā)長度滿足設(shè)定要求。且錯誤信號error_num一直保持為0,說明DDR3數(shù)據(jù)讀寫正確。

4.2 讀寫模塊乒乓操作實現(xiàn)

在本次設(shè)計中數(shù)據(jù)存儲模塊主要是指將DDR3區(qū)域劃分兩個區(qū)域,乒乓操作如圖10所示。對多路實時視頻圖像數(shù)據(jù)進(jìn)行處理具有數(shù)據(jù)量大的特點,乒乓操作可以有效地控制數(shù)據(jù)流的快速傳輸,提高數(shù)據(jù)處理速度,縮短處理時間,提高圖像顯示的實時性。其實現(xiàn)的基礎(chǔ)是數(shù)據(jù)的緩存,采用數(shù)據(jù)選擇器將數(shù)據(jù)流分成兩部分,兩個數(shù)據(jù)緩存器交替地進(jìn)行數(shù)據(jù)輸入處理,這樣既保證了數(shù)據(jù)的完整性,又有效地提高了數(shù)據(jù)處理速度,保證數(shù)據(jù)不出現(xiàn)混亂。

圖10  乒乓操作示意圖

Fig.10  Schematic diagram of ping-pong operation


系統(tǒng)處于寫狀態(tài)時,寫數(shù)據(jù)選擇單元會根據(jù)場同步信號找到一幀圖像數(shù)據(jù)的開始點,然后緩存進(jìn)數(shù)據(jù)存儲模塊1。當(dāng)下一幀數(shù)據(jù)來到時則緩存進(jìn)數(shù)據(jù)存儲模塊2,如此反復(fù)進(jìn)行存儲模塊切換。系統(tǒng)處于讀狀態(tài)時,讀數(shù)據(jù)選擇單元會根據(jù)輸出視頻時序的場同步信號進(jìn)行存儲模塊切換并讀出數(shù)據(jù)。

4.3 多通道讀寫仲裁模塊邏輯設(shè)計

本次邏輯設(shè)計最大可支持7個通道仲裁。以三通道讀寫仲裁為例,其處理流程如圖11所示。當(dāng)數(shù)據(jù)開始輸入時,首先判斷當(dāng)前通道條件S:讀請求和讀突發(fā)長度是否都不為0,判斷是則進(jìn)行當(dāng)前通道數(shù)據(jù)處理并輸出當(dāng)前數(shù)據(jù),反之跳轉(zhuǎn)到下一個通道判斷條件,對下一個通道數(shù)據(jù)進(jìn)行處理,依次判斷可實現(xiàn)多通道讀寫仲裁,在多通道讀寫仲裁模塊邏輯設(shè)計同樣如此。

圖11  多通道仲裁處理流程圖

Fig.11  Multi-channel arbitration processing flowchart


5 視頻圖像疊加融合

視頻圖像疊加融合是將兩路視頻圖像信號中的一路作為背景,另一路為前景,在背景視頻圖中融入前景圖像,在同一終端上顯示多通道疊加圖像23-26。本次設(shè)計采用Alpha疊加融合算法,視頻圖像疊加融合模塊采用兩路視頻源疊加進(jìn)行測試,為了方便觀察,首先將背景的值設(shè)置為一個固定值24’h108080。其中背景視頻大小為1 920×1 080,前景視頻大小為100×100。Alpha融合疊加算法的ILA在線邏輯分析儀波形窗口如圖12所示。當(dāng)前景視頻處于有效數(shù)據(jù)范圍內(nèi)并且Alpha為16’hff時,全部顯示為前景,輸出融合視頻數(shù)據(jù)等于前景視頻的有效數(shù)據(jù);當(dāng)前景視頻處于無效數(shù)據(jù)范圍內(nèi)并且Alpha為16’h00時,輸出融合視頻數(shù)據(jù)等于背景視頻有效數(shù)據(jù)24’h108080。

圖12  Alpha融合疊加在線邏輯分析儀的波形

Fig.12  Waveform of Alpha fusion overlay on-line logic analyzer


Alpha融合疊加在FPGA上實現(xiàn)實際效果圖如圖13所示。其中圖13(a)為一路PC電腦桌面作為視頻源輸入,并將輸入的畫面進(jìn)行四通道復(fù)制。首先將輸入的1 080P視頻數(shù)據(jù)縮放至960×540大小,最后將4個通道數(shù)據(jù)進(jìn)行疊加融合輸出。實際上板驗證的疊加效果圖a~d的Alpha值分別為16’h00,16’h40,16’h80,16’hff,其畫面對應(yīng)的透明度也依次降低。圖13(b)將兩路輸入的1 080P視頻縮放為兩路960×480大小的視頻,且將背景畫面的Alpha值設(shè)置為16’hff,前景畫面的Alpha值設(shè)置為16’h80,960×480的前景圖疊加在960×480背景圖上,其余區(qū)域均為黑色。根據(jù)疊加融合輸出效果圖可以看出,圖像清晰,無閃屏、無錯位情況發(fā)生。另外可以通過串口設(shè)置參數(shù),靈活改變疊加位置的大小和位置,滿足系統(tǒng)的設(shè)計需求。


圖13圖像疊加融合算法在FPGA上實現(xiàn)效果圖

Fig.13Effect of image superimposition and fusion algorithm implemented on FPGA

6 實驗測試和功耗分析

片上總消耗主要由動態(tài)功耗和靜態(tài)功耗組成。從表1可以計算出,視頻發(fā)送卡的片上總功耗為1.479 W,其中動態(tài)功耗占93%。從表2可以計算出,視頻發(fā)送卡的片上總功耗為3.520 W,其中動態(tài)功耗占95%。系統(tǒng)在設(shè)計過程中對于功耗的分析是十分必要的,若功耗過高則會造成芯片發(fā)熱甚至損壞,其次會導(dǎo)致FPGA內(nèi)部時序的不穩(wěn)定,導(dǎo)致冒險與競爭的出現(xiàn)。為了進(jìn)一步降低功耗以及提高系統(tǒng)的穩(wěn)定性可以從以下兩個方面進(jìn)行優(yōu)化。

表1  視頻發(fā)送卡的片上功耗情況
Tab.1  On-chip power consumption of the video sending card
On-chipPower/WUtilization/%
Clocks0.0715
Signals0.0685
Logic0.0574
BRAMs0.1067
DSPs0.0121
PLLs0.0926
MMCM0.20214
PHASER0.25017
IOs0.61642
XADS0.004<1
DeviceStatic0.1087

表2  視頻接收卡的片上功耗情況
Tab.2  On-chip power consumption of the video receiving card
On-chipPower/WUtilization/%
Clocks0.2317
Signals0.1765
Logic0.1514
BRAMs0.41712
DSPs0.0351
PLLs0.1334
MMCM0.55816
PHASER0.66119
IOs1.15433
XADS0.004<1
DeviceStatic0.1895

(1)資源優(yōu)化:以存儲器為例,在設(shè)置雙端口RAM時設(shè)置成NO CHANGE模式以及設(shè)置時鐘使能的情況下,可以實現(xiàn)對存儲器功耗的降低。

(2)算法優(yōu)化:首先要設(shè)計最優(yōu)的算法,使資源占用達(dá)到最少。比如流水線和狀態(tài)機(jī)結(jié)構(gòu),需要根據(jù)實際情況進(jìn)行選擇,以達(dá)到面積和速度的平衡。

本次設(shè)計可以實現(xiàn)4K視頻的任意比例縮放、透明度調(diào)節(jié)以及4路視頻任意位置漫游、疊加與融合。首先進(jìn)行多通道縮放、漫游、旋轉(zhuǎn)以及疊加融合測試,其實際板上驗證效果如圖14所示。為了方便觀察,本次選用比較有代表性的結(jié)果圖進(jìn)行展示。


圖14多路視頻融合效果圖

Fig.14Effect of multichannel video fusion

測試多路視頻輸入采用筆記本作為視頻源,其分辨率為1 920×1 080@60 Hz;由于筆記本輸出分辨率的限制,單路視頻輸入測試時采用臺式電腦作為視頻源,其分辨率為3 840×2 160@30 Hz,最后均通過4K分辨率顯示器顯示。

圖14(a)將四通道輸入視頻縮放至不同大小,最后將4路視頻在沒有疊加的情況下進(jìn)行漫游輸出。圖14(b)將單通道分辨率為3 840×2 160@30 Hz的視頻源,復(fù)制為4路視頻進(jìn)行輸入。將4路視頻縮放至960×540大小以后,分別設(shè)置Alpha值為16’h00,16’h40,16’h80,16’hff,實現(xiàn)對畫面透明度由高到低的調(diào)節(jié)。由實驗結(jié)果可知,本系統(tǒng)實現(xiàn)了高清4K視頻的任意比例縮放、多路高清視頻的任意位置漫游、任意位置疊加融合。在實際調(diào)試過程中,由于時鐘速率不匹配,顯示效果圖可能會出現(xiàn)未知顯示效果,因此需要對系統(tǒng)進(jìn)行時序約束,防止競爭冒險的出現(xiàn)。

7 結(jié)論

本文基于FPGA開發(fā)平臺,實現(xiàn)了一種多路實時視頻處理系統(tǒng)。采用Vivado 2019.1作為軟件開發(fā)平臺完成了雙線性插值縮放算法設(shè)計,實現(xiàn)了最大分辨率為3 840×2 160、最低分辨率為100×100的縮放,滿足了用戶特殊分辨率的需求。同時可以將多路視頻數(shù)據(jù)進(jìn)行任意位置漫游以及疊加融合,滿足了人們需要從單個顯示器獲得更多、更復(fù)雜的信息的需求。

本系統(tǒng)目前僅支持單一的HDMI輸入輸出接口,為滿足用戶的各種需求,應(yīng)當(dāng)增加接口種類,并合理增加一些拓展接口。目前本系統(tǒng)在硬件上僅支持4路視頻源輸入,應(yīng)該在硬件上設(shè)計增加更多的視頻輸入接口數(shù)量,并對硬件進(jìn)行信號完整性驗證。為了滿足用戶多樣化需求可以在現(xiàn)有的基礎(chǔ)上增加多樣視頻算法,并優(yōu)化系統(tǒng)的整體延時。


關(guān)鍵字:優(yōu)秀論文

網(wǎng)絡(luò)客服QQ: 沈編輯

投訴建議:0373-5939925????投訴建議QQ:

招聘合作:2851259250@qq.com (如您是期刊主編、文章高手,可通過郵件合作)

地址:河南省新鄉(xiāng)市金穗大道東段266號中州期刊聯(lián)盟 ICP備案號:豫ICP備2020036848

【免責(zé)聲明】:中州期刊聯(lián)盟所提供的信息資源如有侵權(quán)、違規(guī),請及時告知。

版權(quán)所有:中州期刊聯(lián)盟(新鄉(xiāng)市博翰文化傳媒有限公司)

關(guān)注”中州期刊聯(lián)盟”公眾號
了解論文寫作全系列課程

核心期刊為何難發(fā)?

論文發(fā)表總嫌貴?

職院單位發(fā)核心?

掃描關(guān)注公眾號

論文發(fā)表不再有疑惑

論文寫作全系列課程

掃碼了解更多

輕松寫核心期刊論文

在線留言