劉金龍
(江蘇無線電廠有限公司,江蘇 南京 210012)
基于FPGA和DSP的視頻處理系統分析
劉金龍
(江蘇無線電廠有限公司,江蘇 南京 210012)
文章首先對FPGA技術與DSP技術聯合的優勢進行了簡要分析,隨后提出基于FPGA與DSP的視頻處理系統設計方案,在此基礎上對FPGA的實現及DSP的移植進行論述,期望該研究能夠對視頻處理系統設計水平的提升有所幫助。
DSP;FPGA;視頻處理系統
在視頻處理系統設計中,降低數據處理深度、減少算法能夠提高系統實時處理能力,而對現場可編邏輯門陣列(Field Programmable Gate Array,FPGA)與數字信號處理(Digital Signal Processing,DSP)技術進行聯合應用可達到這一目的。
1.1 FPGA技術優勢
FPGA能夠實現分布式算法,其芯片具備超大運算能力,該技術具備的應用優勢如下:可快速查詢和讀取設置表中的數據;利用觸發指令對狀態信息進行快速存儲;快速完成圖像數據運算、圖像分割、區域特征提取等處理任務。
1.2 DSP技術優勢
DSP是一種適用于各種數字信號處理運算的處理器,其應用優勢如下:DSP芯片與SDRAM實現無縫對接,能夠高速讀取不同類型存儲器中的數據,滿足圖像處理需求;DSP芯片可實現數據流水化操作,提高算法運行效率,同時處理大量圖像數據[1]。
1.3 FPGA+DSP的優勢
在系統設計中,FPGA作為控制器,可接收、存儲、預處理、傳輸視頻圖像;DSP作為主處理器,可利用高速的運算能力對復雜的跟蹤算法進行快速處理。通過FPGA+DSP的分工合作,能夠保證視頻處理系統的處理速度和處理質量。對視頻處理系統進行模塊化設計,可保證系統結構的靈活性和通用性,縮短系統開發周期,提高算法運算效率,同時在系統使用過程中便于升級和維護。
2.1 系統架構
本次設計選用FPGA技術和DSP技術構建一套相對完整的視頻處理系統,在系統的硬件設計中,以FPGA和DSP作為平臺,前者主要負責完成對采集到的視頻圖像數據進行預處理,并與DSP進行數據交互;后者是視頻圖像處理的核心,具體負責相關算法的實現和系統的運行管理[2]。系統的總體框架結構如圖1所示。
系統硬件采用當前較為流行的模塊化設計方法,根據不同的功能,共設計了以下幾個模塊:FPGA,DSP、擴展存儲、視頻采集、視頻傳輸,各個模塊負責實現不同的功能。

圖1 系統總體框架結構示意
2.2 FPGA與DSP芯片
2.2.1 FPGA芯片
①選型。在本系統中,FPGA芯片主要負責控制系統的視頻圖像采集與存儲的時序邏輯,并實現對相關圖像數據的處理,同時還要完成與DSP芯片的數據通信。為確保上述功能的實現,通過經濟技術性比選,最終決定選用Altera公司設計研發的EP2C70[3]。
②功能。FPGA內部集成了大量的模塊,每個模塊都有自己的功能,如采集模塊主要負責對CCD輸入的圖像信號進行接收,并將之緩存至板上的存儲器當中;無線傳輸模塊負責實現無線信號的收發,這在一定程度上提高了系統的靈活性和便攜性,從而使系統可以適應各種不同工作環境的要求。
2.2.2 DSP芯片
在本系統的設計中,將DSP芯片作為數據處理的核心部分,為保證數據處理的效果和質量,要求所選的DSP必須具備強大的圖像處理運算能力,通過經濟技術性比選之后,最終決定選用TI公司研發的TMS320C6416芯片。
①DSP電源設計。由于C6000系列DSP的CPU內核與I/O接口所需要的工作電壓有所不同,前者為1.4V,后者為3.3V,故此在系統設計的過程中,必須充分考慮到DSP的供電問題,系統設計時,選用了一個5V的電源,并借助TPS電源模塊生成了一個1.4V CVDD和一個3.3V DVDD,設計中還加入了一個三極管,以此來確保上電次序的正確。
②DSP時鐘設計。對于本系統而言,時鐘可以觸發模塊啟動,C6000系列DSP的CLKIN引腳從外部引入時鐘源為CPU提供時鐘控制功能。為有效防止時鐘信號失真的情況發生,在設計時應當確保所有時鐘導線的長度盡可能短一些。
③復位電路設計。本系統的復位電路選用的是TPS3823核心芯片,當系統運行出錯時,通過RESET輸出端可以使系統恢復初始設置。
3.1 算法的FPGA實現
在本系統的設計過程中,通過FPGA芯片對中值濾波算法進行實現?;诖它c,開發了模塊生成模板和濾波模板,以此來完成中值濾波算法的硬件設計,具體思路如下:通過模板生成模塊將所需處理的像素根據窗口的大小截取領域,并生成算法所需的模板,隨后將像素分為3行4列的數據格式,并將該陣列傳至濾波模塊當中,借助中值濾波算法,對窗口中的每一列數據進行并行處理,將最終獲得的中間值作為算法的處理結果。
(1)模板生成。模板生成的具體流程如下:先對某一行圖像數據進行采集,開啟寫功能,將采集到的數據寫入linebuffer1當中,完成模板當中數據的單行輸入,隨后將linebuffer2開通讀功能,將1緩存器中的數據寫到2中,新采集到的數據寫到1中,這樣模板中的第2行數據便輸入完成,后續數據的輸入同理[4]。
(2)算法的實現模塊。該模塊需要先在系統的開發環境當中生成,可將中值濾波算法改寫成計算機語言,并在QUARTUS軟件環境下,將算法改寫成軟件的通用語言,語言格式為V-HDL。程序改寫完畢之后,應對其進行功能和時序的仿真,確認無誤后,便可生成算法模塊。中值濾波算法的FPGA硬件結構設計如圖2所示。

圖2 中值濾波算法的FPGA硬件結構設計示意
圖2中的COM1為四進二出比較模塊,該模塊中含有4個比較器,能夠實現輸入端4個像素灰度的最大和最小值輸出;COM2為三進一出比較模塊,該模塊中含有2個比較器,可對3個比較數據的中值進行輸出。
3.2 DSP移植
DSP移植實質上就是算法移植,也就是通常所說的編碼和代碼移植,具體指將算法的代碼移植到硬件DSP的CCS仿真軟件當中。由于移植環境本身存在一定的差異,若是不修改代碼,可能會影響其在目標平臺的運行效果。為此,需要通過重建程序框架的方法對代碼進行修改,同時調整參數的配置方式。除此之外還需要對系統資源進行重新分配,確保系統的存儲空間分配合理。
(1)調整參數的配置方式。在對代碼進行移植的過程中,要修改其參數配置,將命令行的輸入方式舍去,將算法代碼的參數配置改在函數內部完成,這樣便可以使算法程序與CCS的編寫規則相符。
(2)調整變量的存取方式。在對代碼進行移植的過程中,需要對變量的存取方式進行對應的調整,從而使其滿足CCS的存儲要求。一方面要考慮變量的類型,另一方面要考慮變量存儲所需的內存,據此對段名及存儲內容進行合理設置。
(3)存儲空間的分配。優化存儲空間分配是避免程序代碼運行溢出的重要手段,有利于提高存儲資源使用效率。在算法程序中,存儲參考幀和其他結構體需要占用大部分內存,而DSP芯片的內存空間無法滿足存儲要求,所以在本系統設計中,可將動態存儲空間放置到芯片外的存儲工具上,即SDRAM模塊,在該模塊上進行圖像數據緩存。同時,為了保證stack的存儲空間,本系統設計將算法移植后的代碼程序放在Flash芯片中,從而實現各程序的獨立運行。
綜上所述,本文在簡要分析FPGA技術與DSP技術聯合優勢的基礎上,基于這兩項技術提出了視頻處理系統的設計方案,并對FPGA的實現及DSP的移植進行論述。在視頻處理系統設計中,聯合應用FPGA技術與DSP技術,不僅能夠提高系統的設計效率,而且還能使系統的功能更加完善。
[1]范超,趙琳,陳國.基于FPGA+DSP架構視頻處理系統設計[J].電子技術,2014(6):142-144.
[2]王富偉.基于DSP和FPGA的嵌入式視頻系統研究[D].鄭州:河南科技大學,2012.
[3]周宇.基于FPGA和DSP的圖像處理技術研究[D].西安:西安電子科技大學,2013.
[4]于龍.基于FPGA+DSP的H.264視頻編解碼系統設計與實現[D].西安:西安電子科技大學,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的產品開發及應用。