劉金龍
(江蘇無線電廠有限公司,江蘇 南京 210012)
基于FPGA和DSP的視頻處理系統(tǒng)分析
劉金龍
(江蘇無線電廠有限公司,江蘇 南京 210012)
文章首先對(duì)FPGA技術(shù)與DSP技術(shù)聯(lián)合的優(yōu)勢(shì)進(jìn)行了簡(jiǎn)要分析,隨后提出基于FPGA與DSP的視頻處理系統(tǒng)設(shè)計(jì)方案,在此基礎(chǔ)上對(duì)FPGA的實(shí)現(xiàn)及DSP的移植進(jìn)行論述,期望該研究能夠?qū)σ曨l處理系統(tǒng)設(shè)計(jì)水平的提升有所幫助。
DSP;FPGA;視頻處理系統(tǒng)
在視頻處理系統(tǒng)設(shè)計(jì)中,降低數(shù)據(jù)處理深度、減少算法能夠提高系統(tǒng)實(shí)時(shí)處理能力,而對(duì)現(xiàn)場(chǎng)可編邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)與數(shù)字信號(hào)處理(Digital Signal Processing,DSP)技術(shù)進(jìn)行聯(lián)合應(yīng)用可達(dá)到這一目的。
1.1 FPGA技術(shù)優(yōu)勢(shì)
FPGA能夠?qū)崿F(xiàn)分布式算法,其芯片具備超大運(yùn)算能力,該技術(shù)具備的應(yīng)用優(yōu)勢(shì)如下:可快速查詢和讀取設(shè)置表中的數(shù)據(jù);利用觸發(fā)指令對(duì)狀態(tài)信息進(jìn)行快速存儲(chǔ);快速完成圖像數(shù)據(jù)運(yùn)算、圖像分割、區(qū)域特征提取等處理任務(wù)。
1.2 DSP技術(shù)優(yōu)勢(shì)
DSP是一種適用于各種數(shù)字信號(hào)處理運(yùn)算的處理器,其應(yīng)用優(yōu)勢(shì)如下:DSP芯片與SDRAM實(shí)現(xiàn)無縫對(duì)接,能夠高速讀取不同類型存儲(chǔ)器中的數(shù)據(jù),滿足圖像處理需求;DSP芯片可實(shí)現(xiàn)數(shù)據(jù)流水化操作,提高算法運(yùn)行效率,同時(shí)處理大量圖像數(shù)據(jù)[1]。
1.3 FPGA+DSP的優(yōu)勢(shì)
在系統(tǒng)設(shè)計(jì)中,F(xiàn)PGA作為控制器,可接收、存儲(chǔ)、預(yù)處理、傳輸視頻圖像;DSP作為主處理器,可利用高速的運(yùn)算能力對(duì)復(fù)雜的跟蹤算法進(jìn)行快速處理。通過FPGA+DSP的分工合作,能夠保證視頻處理系統(tǒng)的處理速度和處理質(zhì)量。對(duì)視頻處理系統(tǒng)進(jìn)行模塊化設(shè)計(jì),可保證系統(tǒng)結(jié)構(gòu)的靈活性和通用性,縮短系統(tǒng)開發(fā)周期,提高算法運(yùn)算效率,同時(shí)在系統(tǒng)使用過程中便于升級(jí)和維護(hù)。
2.1 系統(tǒng)架構(gòu)
本次設(shè)計(jì)選用FPGA技術(shù)和DSP技術(shù)構(gòu)建一套相對(duì)完整的視頻處理系統(tǒng),在系統(tǒng)的硬件設(shè)計(jì)中,以FPGA和DSP作為平臺(tái),前者主要負(fù)責(zé)完成對(duì)采集到的視頻圖像數(shù)據(jù)進(jìn)行預(yù)處理,并與DSP進(jìn)行數(shù)據(jù)交互;后者是視頻圖像處理的核心,具體負(fù)責(zé)相關(guān)算法的實(shí)現(xiàn)和系統(tǒng)的運(yùn)行管理[2]。系統(tǒng)的總體框架結(jié)構(gòu)如圖1所示。
系統(tǒng)硬件采用當(dāng)前較為流行的模塊化設(shè)計(jì)方法,根據(jù)不同的功能,共設(shè)計(jì)了以下幾個(gè)模塊:FPGA,DSP、擴(kuò)展存儲(chǔ)、視頻采集、視頻傳輸,各個(gè)模塊負(fù)責(zé)實(shí)現(xiàn)不同的功能。
圖1 系統(tǒng)總體框架結(jié)構(gòu)示意
2.2 FPGA與DSP芯片
2.2.1 FPGA芯片
①選型。在本系統(tǒng)中,F(xiàn)PGA芯片主要負(fù)責(zé)控制系統(tǒng)的視頻圖像采集與存儲(chǔ)的時(shí)序邏輯,并實(shí)現(xiàn)對(duì)相關(guān)圖像數(shù)據(jù)的處理,同時(shí)還要完成與DSP芯片的數(shù)據(jù)通信。為確保上述功能的實(shí)現(xiàn),通過經(jīng)濟(jì)技術(shù)性比選,最終決定選用Altera公司設(shè)計(jì)研發(fā)的EP2C70[3]。
②功能。FPGA內(nèi)部集成了大量的模塊,每個(gè)模塊都有自己的功能,如采集模塊主要負(fù)責(zé)對(duì)CCD輸入的圖像信號(hào)進(jìn)行接收,并將之緩存至板上的存儲(chǔ)器當(dāng)中;無線傳輸模塊負(fù)責(zé)實(shí)現(xiàn)無線信號(hào)的收發(fā),這在一定程度上提高了系統(tǒng)的靈活性和便攜性,從而使系統(tǒng)可以適應(yīng)各種不同工作環(huán)境的要求。
2.2.2 DSP芯片
在本系統(tǒng)的設(shè)計(jì)中,將DSP芯片作為數(shù)據(jù)處理的核心部分,為保證數(shù)據(jù)處理的效果和質(zhì)量,要求所選的DSP必須具備強(qiáng)大的圖像處理運(yùn)算能力,通過經(jīng)濟(jì)技術(shù)性比選之后,最終決定選用TI公司研發(fā)的TMS320C6416芯片。
①DSP電源設(shè)計(jì)。由于C6000系列DSP的CPU內(nèi)核與I/O接口所需要的工作電壓有所不同,前者為1.4V,后者為3.3V,故此在系統(tǒng)設(shè)計(jì)的過程中,必須充分考慮到DSP的供電問題,系統(tǒng)設(shè)計(jì)時(shí),選用了一個(gè)5V的電源,并借助TPS電源模塊生成了一個(gè)1.4V CVDD和一個(gè)3.3V DVDD,設(shè)計(jì)中還加入了一個(gè)三極管,以此來確保上電次序的正確。
②DSP時(shí)鐘設(shè)計(jì)。對(duì)于本系統(tǒng)而言,時(shí)鐘可以觸發(fā)模塊啟動(dòng),C6000系列DSP的CLKIN引腳從外部引入時(shí)鐘源為CPU提供時(shí)鐘控制功能。為有效防止時(shí)鐘信號(hào)失真的情況發(fā)生,在設(shè)計(jì)時(shí)應(yīng)當(dāng)確保所有時(shí)鐘導(dǎo)線的長(zhǎng)度盡可能短一些。
③復(fù)位電路設(shè)計(jì)。本系統(tǒng)的復(fù)位電路選用的是TPS3823核心芯片,當(dāng)系統(tǒng)運(yùn)行出錯(cuò)時(shí),通過RESET輸出端可以使系統(tǒng)恢復(fù)初始設(shè)置。
3.1 算法的FPGA實(shí)現(xiàn)
在本系統(tǒng)的設(shè)計(jì)過程中,通過FPGA芯片對(duì)中值濾波算法進(jìn)行實(shí)現(xiàn)?;诖它c(diǎn),開發(fā)了模塊生成模板和濾波模板,以此來完成中值濾波算法的硬件設(shè)計(jì),具體思路如下:通過模板生成模塊將所需處理的像素根據(jù)窗口的大小截取領(lǐng)域,并生成算法所需的模板,隨后將像素分為3行4列的數(shù)據(jù)格式,并將該陣列傳至濾波模塊當(dāng)中,借助中值濾波算法,對(duì)窗口中的每一列數(shù)據(jù)進(jìn)行并行處理,將最終獲得的中間值作為算法的處理結(jié)果。
(1)模板生成。模板生成的具體流程如下:先對(duì)某一行圖像數(shù)據(jù)進(jìn)行采集,開啟寫功能,將采集到的數(shù)據(jù)寫入linebuffer1當(dāng)中,完成模板當(dāng)中數(shù)據(jù)的單行輸入,隨后將linebuffer2開通讀功能,將1緩存器中的數(shù)據(jù)寫到2中,新采集到的數(shù)據(jù)寫到1中,這樣模板中的第2行數(shù)據(jù)便輸入完成,后續(xù)數(shù)據(jù)的輸入同理[4]。
(2)算法的實(shí)現(xiàn)模塊。該模塊需要先在系統(tǒng)的開發(fā)環(huán)境當(dāng)中生成,可將中值濾波算法改寫成計(jì)算機(jī)語(yǔ)言,并在QUARTUS軟件環(huán)境下,將算法改寫成軟件的通用語(yǔ)言,語(yǔ)言格式為V-HDL。程序改寫完畢之后,應(yīng)對(duì)其進(jìn)行功能和時(shí)序的仿真,確認(rèn)無誤后,便可生成算法模塊。中值濾波算法的FPGA硬件結(jié)構(gòu)設(shè)計(jì)如圖2所示。
圖2 中值濾波算法的FPGA硬件結(jié)構(gòu)設(shè)計(jì)示意
圖2中的COM1為四進(jìn)二出比較模塊,該模塊中含有4個(gè)比較器,能夠?qū)崿F(xiàn)輸入端4個(gè)像素灰度的最大和最小值輸出;COM2為三進(jìn)一出比較模塊,該模塊中含有2個(gè)比較器,可對(duì)3個(gè)比較數(shù)據(jù)的中值進(jìn)行輸出。
3.2 DSP移植
DSP移植實(shí)質(zhì)上就是算法移植,也就是通常所說的編碼和代碼移植,具體指將算法的代碼移植到硬件DSP的CCS仿真軟件當(dāng)中。由于移植環(huán)境本身存在一定的差異,若是不修改代碼,可能會(huì)影響其在目標(biāo)平臺(tái)的運(yùn)行效果。為此,需要通過重建程序框架的方法對(duì)代碼進(jìn)行修改,同時(shí)調(diào)整參數(shù)的配置方式。除此之外還需要對(duì)系統(tǒng)資源進(jìn)行重新分配,確保系統(tǒng)的存儲(chǔ)空間分配合理。
(1)調(diào)整參數(shù)的配置方式。在對(duì)代碼進(jìn)行移植的過程中,要修改其參數(shù)配置,將命令行的輸入方式舍去,將算法代碼的參數(shù)配置改在函數(shù)內(nèi)部完成,這樣便可以使算法程序與CCS的編寫規(guī)則相符。
(2)調(diào)整變量的存取方式。在對(duì)代碼進(jìn)行移植的過程中,需要對(duì)變量的存取方式進(jìn)行對(duì)應(yīng)的調(diào)整,從而使其滿足CCS的存儲(chǔ)要求。一方面要考慮變量的類型,另一方面要考慮變量存儲(chǔ)所需的內(nèi)存,據(jù)此對(duì)段名及存儲(chǔ)內(nèi)容進(jìn)行合理設(shè)置。
(3)存儲(chǔ)空間的分配。優(yōu)化存儲(chǔ)空間分配是避免程序代碼運(yùn)行溢出的重要手段,有利于提高存儲(chǔ)資源使用效率。在算法程序中,存儲(chǔ)參考幀和其他結(jié)構(gòu)體需要占用大部分內(nèi)存,而DSP芯片的內(nèi)存空間無法滿足存儲(chǔ)要求,所以在本系統(tǒng)設(shè)計(jì)中,可將動(dòng)態(tài)存儲(chǔ)空間放置到芯片外的存儲(chǔ)工具上,即SDRAM模塊,在該模塊上進(jìn)行圖像數(shù)據(jù)緩存。同時(shí),為了保證stack的存儲(chǔ)空間,本系統(tǒng)設(shè)計(jì)將算法移植后的代碼程序放在Flash芯片中,從而實(shí)現(xiàn)各程序的獨(dú)立運(yùn)行。
綜上所述,本文在簡(jiǎn)要分析FPGA技術(shù)與DSP技術(shù)聯(lián)合優(yōu)勢(shì)的基礎(chǔ)上,基于這兩項(xiàng)技術(shù)提出了視頻處理系統(tǒng)的設(shè)計(jì)方案,并對(duì)FPGA的實(shí)現(xiàn)及DSP的移植進(jìn)行論述。在視頻處理系統(tǒng)設(shè)計(jì)中,聯(lián)合應(yīng)用FPGA技術(shù)與DSP技術(shù),不僅能夠提高系統(tǒng)的設(shè)計(jì)效率,而且還能使系統(tǒng)的功能更加完善。
[1]范超,趙琳,陳國(guó).基于FPGA+DSP架構(gòu)視頻處理系統(tǒng)設(shè)計(jì)[J].電子技術(shù),2014(6):142-144.
[2]王富偉.基于DSP和FPGA的嵌入式視頻系統(tǒng)研究[D].鄭州:河南科技大學(xué),2012.
[3]周宇.基于FPGA和DSP的圖像處理技術(shù)研究[D].西安:西安電子科技大學(xué),2013.
[4]于龍.基于FPGA+DSP的H.264視頻編解碼系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2014.
Analysis of video processing system based on FPGA and DSP
Liu Jinlong
(Jiangsu Radio Power Plant Co., Ltd., Nanjing 210012, China)
This paper first gives a brief analysis of the FPGA technology and DSP technology combined with the advantages of FPGA and DSP, then put forward the design scheme based on video processing system, based on the implementation of DSP and FPGA on the transplant were discussed. It is expected that the research of this paper can help to improve the design level of video processing system.
DSP; FPGA; video processing system
劉金龍(1988— ),男,江蘇靖江,本科,助理工程師;研究方向:基于FPGA和DSP的產(chǎn)品開發(fā)及應(yīng)用。