基于FPGA+DSP架構(gòu)視頻處理系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:實(shí)時(shí)圖像處理技術(shù)在工業(yè)、醫(yī)學(xué)、軍事和商業(yè)等領(lǐng)域有廣泛的應(yīng)用。基于FPGA+DSP架構(gòu)的視頻處理系統(tǒng)充分發(fā)揮了各自器什的長(zhǎng)處,不儀設(shè)計(jì)周期短,開(kāi)發(fā)費(fèi)用低,而且設(shè)計(jì)靈活,更改方便,功耗較低,便于實(shí)現(xiàn)系統(tǒng)的小型化。因此對(duì)基與FPGA+DSP架構(gòu)的視頻處理系統(tǒng)進(jìn)行研究和設(shè)計(jì)具有重要的意義。
0 引言
本系統(tǒng)采用基于FPGA與DSP協(xié)同工作進(jìn)行視頻處理的方案,實(shí)現(xiàn)視頻采集、處理到傳輸?shù)恼麄€(gè)過(guò)程。
實(shí)時(shí)視頻圖像處理中,低層的預(yù)處理算法處理的數(shù)據(jù)量大,對(duì)處理速度要求高,但算法相對(duì)比較簡(jiǎn)單,適合于用FPGA進(jìn)行硬件實(shí)現(xiàn),這樣能兼顧速度及靈活性。高層的處理算法結(jié)構(gòu)復(fù)雜,適用于運(yùn)算速度高、尋址方式靈活、通信機(jī)制強(qiáng)的DSP芯片宋實(shí)現(xiàn)。
DSP+FPGA架構(gòu)的最大特點(diǎn)是結(jié)構(gòu)靈活、有較強(qiáng)的通用性、適合于模塊化設(shè)計(jì),從而能夠提高算法效率,同時(shí)其開(kāi)發(fā)周期短、系統(tǒng)易于維護(hù)和升級(jí),適合于實(shí)時(shí)視頻圖像處理。
系統(tǒng)采用模塊化的設(shè)計(jì)方法,將整個(gè)系統(tǒng)劃分為三部分:視頻采集單元、視頻處理單元和視頻傳輸單元。
整個(gè)系統(tǒng)以FPGA作為核心控制單元并完成視頻信號(hào)的中值濾波工作;以DSP作為整個(gè)系統(tǒng)的核心處理單元對(duì)采集的視頻圖像信息進(jìn)行JPEG壓縮;在視頻傳輸單元設(shè)計(jì)了以PDIUSBD12芯片為基礎(chǔ)的USB總線,負(fù)責(zé)視頻信號(hào)的傳輸。
1 系統(tǒng)硬件總體架構(gòu)
一個(gè)完整的視頻處理系統(tǒng),主要由視頻采集單元、視頻處理單元及視頻傳輸單元三部分組成。在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí)須確保各部分的無(wú)縫銜接。
圖像采集單元由FPGA和MB86S02視頻采集芯片組成,包括視頻信號(hào)的采集和預(yù)處理,把輸入的視頻信號(hào)轉(zhuǎn)換成系統(tǒng)能夠處理的數(shù)字圖像數(shù)據(jù),并按照一定的格式存儲(chǔ)在確定的存儲(chǔ)區(qū)域。
圖像處理單元是本系統(tǒng)的核心,對(duì)圖像數(shù)據(jù)進(jìn)行壓縮處理,實(shí)現(xiàn)系統(tǒng)要達(dá)到的功能。
圖像傳輸單元采用FPGA+USB的方式實(shí)現(xiàn)視頻數(shù)據(jù)的傳輸,通過(guò)基于PDIUSBD12芯片的USB總線,將壓縮后的視頻圖像信息發(fā)送到接收端,在接收端使用在PC上編寫的應(yīng)用程序?qū)D像解壓縮并顯示出來(lái)。
整個(gè)硬件系統(tǒng)由FPGA和DSP兩個(gè)分系統(tǒng)組成,F(xiàn)PGA作為視頻采集單元,將采集到的視頻信號(hào)預(yù)處理后傳給DSP,DSP作為圖像處理單元是本系統(tǒng)的核心,對(duì)FPGA預(yù)處理后的視頻圖像信息進(jìn)行JPEG壓縮處理,DSP單元的性能決定著整個(gè)系統(tǒng)的性能,DSP完成圖像處理任務(wù)后,將把結(jié)果返回給FPGA,F(xiàn)PGA將經(jīng)過(guò)壓縮處理后的圖像信息寫入接口控制芯片的數(shù)據(jù)緩沖區(qū),由接口控制芯片負(fù)責(zé)信息的傳輸,系統(tǒng)總體框圖如圖1所示。
如圖1所示,MB86S02視頻圖像傳感器在FPGA的控制下進(jìn)行視頻圖像信息的采集,在收到PC機(jī)的采集命令后MB86S02開(kāi)始視頻信號(hào)的采集FPGA作為系統(tǒng)的核心控制單元不僅負(fù)責(zé)視頻圖像的采集,而且負(fù)責(zé)視頻圖像信息的預(yù)處理和系統(tǒng)各單元模塊之間的數(shù)據(jù)交互。針對(duì)視頻圖像數(shù)據(jù)量大的特點(diǎn),為了保證系統(tǒng)的實(shí)時(shí)性要求,系統(tǒng)采用大容量的片外SDRAMR對(duì)采集到的視頻圖像信息進(jìn)行緩存,SDRAM控制器由FPGA實(shí)現(xiàn),視頻圖像信息經(jīng)過(guò)SDRAM緩存后首先要由FPGA對(duì)其進(jìn)行濾波處理,以消除圖像信息中的噪聲干擾,本系統(tǒng)中采用中值濾波的方式對(duì)采集到的視頻信息進(jìn)行處理,濾波后的數(shù)據(jù)通過(guò)FPGA內(nèi)部FIFO進(jìn)入DSP進(jìn)行下一步的壓縮處理。DSP上電后首先進(jìn)行引導(dǎo)程序的自加載,等待FPGA發(fā)送請(qǐng)求,在收到FPGA的請(qǐng)求后,DSP建立EDMA通道從FPGA獲取視頻數(shù)據(jù),存滿一幀后,開(kāi)始對(duì)視頻圖像進(jìn)行JPEG壓縮處理,壓縮處理后的視頻圖像信息經(jīng)過(guò)FIFO緩存后,在FPGA的控制下寫入U(xiǎn)SB接口控制器的數(shù)據(jù)緩存區(qū),等待PC機(jī)的讀數(shù)請(qǐng)求,USB接口控制器在收到PC機(jī)的讀數(shù)請(qǐng)求后將數(shù)據(jù)寫入PDIUSBD12的端口1,以便PC機(jī)下一步讀取數(shù)據(jù)。
2 系統(tǒng)軟件總體設(shè)計(jì)
系統(tǒng)的軟件設(shè)計(jì)根據(jù)硬件結(jié)構(gòu)的總體劃分,也可以分為兩大部分來(lái)描述。整個(gè)系統(tǒng)的運(yùn)行如圖2所示,F(xiàn)PGA和DSP各自的程序獨(dú)立運(yùn)行,通過(guò)中斷信號(hào)完成數(shù)據(jù)的實(shí)時(shí)交互。FPGA向DSP方向的指令是通過(guò)FPGA發(fā)送一個(gè)EDMA請(qǐng)求,DSP通過(guò)響應(yīng)EDMA請(qǐng)求,建立EDMA通道,開(kāi)始從FIFO中進(jìn)行預(yù)處理后數(shù)據(jù)的讀取,DSP向FPGA傳輸數(shù)據(jù)時(shí),通過(guò)向FPGA發(fā)送一個(gè)中斷信號(hào),讓其從FIFO中把壓縮后的圖像數(shù)據(jù)讀出來(lái)。
如圖2所示,整個(gè)系統(tǒng)工作流程可以簡(jiǎn)單描述如下:系統(tǒng)上電后,首先DSP由flash實(shí)現(xiàn)自舉,并運(yùn)行引導(dǎo)程序,之后轉(zhuǎn)入EDMA等待狀態(tài),F(xiàn)PGA初始化后等待外部圖像采集命令,收到圖像采集命令后開(kāi)始進(jìn)行圖像采集,并對(duì)采集到的圖像進(jìn)行預(yù)處理,預(yù)處理后的圖像經(jīng)過(guò)FIFO緩沖,在存儲(chǔ)一定量的數(shù)據(jù)之后,F(xiàn)PGA通過(guò)半滿信號(hào)向DSP發(fā)送EDMA請(qǐng)求,等待DSP響應(yīng),DSP一旦收到來(lái)自FPGA的EDMA請(qǐng)求,立即建立EDMA通道,從FIFO中讀取數(shù)據(jù)到L2存儲(chǔ)器,存滿一幀圖像后DSP開(kāi)始圖像壓縮,等待一幅圖像壓縮完成之后,DSP會(huì)向FPGA發(fā)送中斷信號(hào),F(xiàn)PGA在收到中斷信號(hào)后開(kāi)始從FIFO中讀取壓縮后的圖像數(shù)據(jù)。一幀數(shù)據(jù)讀完后,判斷編碼信號(hào)是否有效,如果有效則按同樣的規(guī)則對(duì)下一幀圖像進(jìn)行壓縮,如果無(wú)效則通知DSP結(jié)束。
3 結(jié)論
本設(shè)計(jì)方案已經(jīng)經(jīng)過(guò)了硬件驗(yàn)證,達(dá)到了預(yù)定的設(shè)計(jì)要求,實(shí)現(xiàn)了大數(shù)據(jù)量的實(shí)時(shí)處理。
系統(tǒng)體積僅為70×70mm,功耗小于5W,中值濾波速率平均20F/S,JPEG壓縮速率平均25F/s以上。不僅滿足了視頻處理系統(tǒng)的實(shí)時(shí)性要求,且體積小、功耗低,而且基于FPGA的可編程性,本系統(tǒng)具有良好的靈活性和擴(kuò)展性。