基于FPGA的多路實時視頻處理系統(tǒng)設(shè)計
視頻顯示技術(shù)發(fā)展到21世紀(jì),同時顯示多個視頻的需求仍然存在,人們需要從單個顯示器獲得更多、更復(fù)雜的信息。因此,人們對圖像處理的效率、實時性、功耗以及處理設(shè)備的體積也有了更嚴(yán)格的要求[
針對傳統(tǒng)的實時視頻處理系統(tǒng)大多存在分辨率低、控制不靈活、視頻處理算法單一、實時性差等問題[
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 視頻發(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 視頻接收卡FPGA內(nèi)部邏輯框圖
Fig.2 Internal logic block diagram of the video receiving card FPGA
3 雙線性插值縮放算法實現(xiàn)
常規(guī)視頻縮放算法有最鄰近插值算法、雙線性插值算法、雙三次插值縮放算法。由MATLAB仿真效果可知[
3.1 雙線性插值縮放算法邏輯設(shè)計
圖3 雙線性插值算法邏輯設(shè)計圖
Fig.3 Logic design diagram of the bilinear interpolation algorithm
由于雙線性插值采用周圍4個像素點確定目標(biāo)像素點,因此至少緩存兩行以上的數(shù)據(jù)才能根據(jù)周圍像素點值計算目標(biāo)像素點的值[
3.2 雙線性插值縮放計算
雙線性插值縮放計算流程如
圖4 實時視頻縮放流程圖
Fig.4 Flow chart of real-time video scaling
縮放算法的仿真波形如
圖5 縮放算法的仿真波形
Fig.5 Simulation waveform of the scaling algorithm
3.3 雙線性插值算法驗證與分析
在保證以上測試模塊均正常工作情況下,進(jìn)一步對縮放模塊進(jìn)行驗證。實際板上驗證時,通過HDMI接口輸入的1 080P視頻數(shù)據(jù)作為視頻源,ILA在線邏輯分析儀的波形窗口的顯示如
圖6 100×100縮放在線邏輯分析儀的波形圖
Fig.6 Waveform diagram of 100×100 zoom online logic analyzer
如
圖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ā)難度[
為了簡化操作,重新編寫了面向用戶的讀寫接口。讀寫操作如
圖8 用戶接口突發(fā)讀寫流程圖
Fig.8 Flow chart of user interface burst read and write
針對DDR3讀寫測試,用戶接口讀寫控制的邏輯仿真波形如
圖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 乒乓操作示意圖
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 多通道仲裁處理流程圖
Fig.11 Multi-channel arbitration processing flowchart
5 視頻圖像疊加融合
視頻圖像疊加融合是將兩路視頻圖像信號中的一路作為背景,另一路為前景,在背景視頻圖中融入前景圖像,在同一終端上顯示多通道疊加圖像[
圖12 Alpha融合疊加在線邏輯分析儀的波形
Fig.12 Waveform of Alpha fusion overlay on-line logic analyzer
Alpha融合疊加在FPGA上實現(xiàn)實際效果圖如
圖13圖像疊加融合算法在FPGA上實現(xiàn)效果圖
Fig.13Effect of image superimposition and fusion algorithm implemented on FPGA
6 實驗測試和功耗分析
片上總消耗主要由動態(tài)功耗和靜態(tài)功耗組成。從
On-chip | Power/W | Utilization/% |
---|---|---|
Clocks | 0.071 | 5 |
Signals | 0.068 | 5 |
Logic | 0.057 | 4 |
BRAMs | 0.106 | 7 |
DSPs | 0.012 | 1 |
PLLs | 0.092 | 6 |
MMCM | 0.202 | 14 |
PHASER | 0.250 | 17 |
IOs | 0.616 | 42 |
XADS | 0.004 | <1 |
DeviceStatic | 0.108 | 7 |
On-chip | Power/W | Utilization/% |
---|---|---|
Clocks | 0.231 | 7 |
Signals | 0.176 | 5 |
Logic | 0.151 | 4 |
BRAMs | 0.417 | 12 |
DSPs | 0.035 | 1 |
PLLs | 0.133 | 4 |
MMCM | 0.558 | 16 |
PHASER | 0.661 | 19 |
IOs | 1.154 | 33 |
XADS | 0.004 | <1 |
DeviceStatic | 0.189 | 5 |
(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多路視頻融合效果圖
Fig.14Effect of multichannel video fusion
測試多路視頻輸入采用筆記本作為視頻源,其分辨率為1 920×1 080@60 Hz;由于筆記本輸出分辨率的限制,單路視頻輸入測試時采用臺式電腦作為視頻源,其分辨率為3 840×2 160@30 Hz,最后均通過4K分辨率顯示器顯示。
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)的整體延時。
欄目分類
- 2025年中科院分區(qū)表已公布!Scientific Reports降至三區(qū)
- 官方認(rèn)定!CSSCI南大核心首批191家“青年學(xué)者友好期刊名單”
- 2023JCR影響因子正式公布!
- 國內(nèi)核心期刊分級情況概覽及說明!本篇適用人群:需要發(fā)南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的學(xué)者
- 我用了一個很復(fù)雜的圖,幫你們解釋下“23版最新北大核心目錄有效期問題”。
- 重磅!CSSCI來源期刊(2023-2024版)最新期刊目錄看點分析!全網(wǎng)首發(fā)!
- CSSCI官方早就公布了最新南核目錄,有心的人已經(jīng)拿到并且投入使用!附南核目錄新增期刊!
- 北大核心期刊目錄換屆,我們應(yīng)該熟知的10個知識點。
- 注意,最新期刊論文格式標(biāo)準(zhǔn)已發(fā)布,論文寫作規(guī)則發(fā)生重大變化!文字版GB/T 7713.2—2022 學(xué)術(shù)論文編寫規(guī)則
- 盤點那些評職稱超管用的資源,1,3和5已經(jīng)“絕種”了