基于FPGA的并行DSP芯片實時圖像編碼平臺
引言
本文引用地址:http://www.104case.com/article/81619.htm圖像壓縮技術在現代生活中的地位越來越重要,隨著現在的DSP處理數據速度的提高,對傳統的圖像壓縮而言,單片DSP即可達到很好的效果。但由于信息量的增長,尤其是高清晰度等概念的提出,系統的處理數據能力也需要提高,尤其是要求實時圖像壓縮編碼時,單片DSP無法勝任這樣的工作,即使是專用芯片也無法達到相應的要求。近十年來DSP技術飛速發展,在DSP主頻得到重大突破的同時,其并行技術和外部通信技術也得到了很大的提高。現在各大DSP廠商所生產的DSP都在數據級和指令級上實現了不同的并行技術,如TI公司的TMS320 C64XX系列和ADI公司的Tiger SHARC系列芯片。本文主要介紹的是采用ADI公司的ADSP-TS201S芯片實現的多DSP系統。
ADSP-TS201S的并行技術
ADSP-TS201S芯片是ADI公司在2004年推出的一款芯片,具有600MHz的時鐘頻率,1.67ns的指令周期。ADSP-TS201S芯片通過外部口(External Port)和鏈路口(Link Ports)兩種接口技術對多處理器提供了有力的支持,這種多處理能力有以下特性:
·同一條通用總線支持多達8片DSP同時工作;
·提供多處理器的分布式總線仲裁邏輯,實現多處理器的無縫連接;
·用Link port 實現多處理器間的高速點對點通信。
External Port提供了一個統一的地址空間,這個地址空間可以讓每個處理器直接訪問ADSP-TS201S芯片內部的內存和寄存器。該DSP的分布式總線仲裁邏輯可實現多處理器的無縫連接,并且支持多達八片ADSP-TS201S芯片和一片主處理器同時工作。仲裁邏輯還可以防止一個處理器占用外部總線時間過長。
ADSP-TS201S芯片的四個Link Ports端口是多處理器方案的另一條實現路徑,Link Ports支持處理器間高達4GB每秒的數據傳輸速率,每條總線也提供1GB每秒的速率,也就是說四條總線總共提供4.87GB每秒的處理器間通信帶寬。
共享存儲并行DSP系統
根據結構的不同,多處理器并行系統可以分為分布式并行DSP系統和共享存儲器式并行DSP系統,ADSP-TS201S 均支持這兩種并行處理器結構。常見的共享存儲并行DSP系統結構如圖1所示。
共享存儲并行DSP系統的優勢:由于它采用共享存儲結構,所以比較節省存儲資源。其次,共享總線節省了總線資源,可以提高系統的資源使用率。最后,也是最主要的,它采用主從式協同工作,使得各處理器分工明確,便于實現和調試。
然而考慮到圖像編解碼時,完全共享存儲和總線往往會引起系統資源緊缺,而且在要求大量數據實時處理(如對高清圖像、視頻編解碼)時,完全共享存儲不能勝任。同時,采用DSP作為主控制器,不便于以后的系統升級和維護。最后,單一的共享存儲式結構在DSP之間的通信方面明顯不如分布式。下文介紹的基于FPGA的改進共享存儲并行DSP系統,更好的發揮了共享存儲并行DSP系統的優勢,同時改進了上述缺點。
實時圖像編碼系統實現
本系統采用改進的共享存儲結構設計,對一般的共享存儲并行DSP系統而言具有以下特點:
·SP之間采用分布耦合式,更加便于DSP之間的數據交換;
·引入DSP簇的概念,采用DSP簇共享存儲,解決存儲資源瓶頸;
·FPGA做主控制器,利于硬件實現并易于維護;
·擴展性較強,可以級聯以適應更高要求;
·采用獨立電源供電,減少電源線路對系統線路影響
本系統由兩部分組成,第一部分為處理部分(Processboard),第二部分為控制預處理部分(Mainboard)。
處理部分結構
Processboard由四片ADSP-TS201S組成,DSP之間采用松緊耦合的方式,構成一個靈活高效的多處理單元并行結構。所謂的松耦合是指四片DSP采用Link ports實現雙向互聯的方式。緊耦合是指兩片DSP構成一個簇,DSP的外部總線連在簇總線上,外部存儲器也接在簇總線上。外部存儲器和各DSP的片內存儲器作為共享資源都可以被總線上的DSP訪問。這種方式充分利用AD I公司DSP片上無縫連接的優勢。Processboard結構圖如圖2所示。
本系統四片DSP拿出三組Link ports資源構成雙向十字環連接,另外每片DSP還有一組Link ports與Mainboard連接,用于系統連部分之間的數據通信。這種主芯片近似完全對稱的結構有利于PCB的合理布線。所有DSP的數據、地址以及控制信號等均通過一個150針的接口與Mainboard相連,構成一個完整的系統平臺。
在這樣的系統結構中,待處理的信號可以經過Link ports送至Mainboard上的FPGA,或者通過速度更快的LVDS接口經串并轉換芯片輸入。由于兩個簇總線均接至FPGA,故輸入數據可以通過FPGA內部做成數據總線開關,使得兩個DSP簇可以“乒乓”讀取和處理連續不斷輸入的待處理信號。處理完成的數據經Link ports送回至Mainboard。對于一個DSP簇,利用緊耦合的方式,用一片8M×32位的SDRAM存放數據塊,通過DMA技術可在DSP內核進行信號處理時高速傳輸數據,提高了實時性并最大限度緩解了總線瓶頸。簇內的DSP及外圍設備接口通過32位地址總線互聯,映射到統一存儲空間。因此對外部存儲空間的訪問就等同于訪問外部接口設備。外部總線工作在100 MHz,單片DSP的總線吞吐率達到1 GB 每秒。
控制預處理部分結構
Mainboard由兩個FPGA和一片ADSP-TS201S組成。系統采用模塊化設計,可分為三個模塊。控制模塊由兩個FPGA完成系統的控制功能。后處理模塊包括DSP及其外圍電路。擴展模塊由八個150針的接口組成,完成與Processboard的通信。為擴展存儲空間,該系統上包含了四片SRAM和四片16位SDRAM(均分為兩組,擴展為32位),兩個FPGA還可以用來做一部分預處理(如JPEG2000圖像壓縮編碼中的小波預處理)。Mainboard結構如圖3所示。
系統供電方案
由于本系統的元器件較多且大部分工作功率較大,在每塊板上各自設計供電系統是不合適的。同時由于系統內數據交換速度達到數百兆每秒,將電源集成至系統內部電路板會影響系統正常工作甚至導致各種布線問題。
本系統采用了獨立電源供電,即整個系統供電都來自一個獨立設計的電源系統。這種供電方式類似于個人PC上的供電系統。電源系統結構如圖4所示。
電源系統芯片采用TI公司的電源模塊PTH系列,該系列芯片具有穩定易使用且供電功率高的特點。5V輸入電壓系統后經過五片PTH芯片轉換成所需的電壓(1.0V,1.5V,1.8V,2.5V,3.3V),經電源接口送入Mainboard和Processboard。
系統工作流程
當高速圖像數據傳入Mainboard上的大FPGA時,該FPGA實現對數據的分組和預處理,如果數據量超過FPGA內部存儲器的范圍,則將數據放入外部存儲器中進行緩存;數據分組完畢后由大FPGA負責將數據傳輸至Processboard,Processboard并行處理完后再分別傳送回Mainboard的小FPGA(如果數據分組適當,數據將同步傳送至小FPGA),最后由小FPGA實現數據重組和合并功能后,送至Mainboard的DSP進行后期處理,處理完再由輸出端口輸出。這樣系統完成了一次處理過程。
系統工作時最大的問題是并行任務分配與調度問題。任務分配和算法的好壞直接影響到并行系統的性能,影響系統執行任務的效率,進而影響系統的實時性。在多DSP 系統中,任務分配使得各個處理器能夠均勻分配到子任務,使各處理單元的空閑時間減少,從而得到較高的執行效率。例如在圖像編碼中把一幅圖像平均分割,使各處理器得到相同大小的子圖像,有效提高了系統編碼效率,滿足其實時性要求。由于本系統的復雜度,采用FPGA來做任務分配與調度是可行的。
實時圖像編碼系統的擴展
由于在設計上采用控制與處理的分離設計,這個系統有非常好的擴展性。如圖5所示,系統對Processboard和Mainboard的擴展都支持,具體表現在以下幾方面:
(1)Processboard的擴展—Mainboard給出了四組有效的Processboard擴展接口,也就是說最多可以擴展至四塊Processboard。圖中畫出了八個接口,其中兩兩一組,目的是方便調試兩板之間的通信,還利于整個系統的散熱。
(2)Mainboard的板級擴展—通過板上預留的接口,Mainboard可實現32位的級聯擴展。當接上其余Mainboard時,系統工作方式如下:級聯后,每一級專門負責自己的任務,第一塊板的所有FPGA都用來實現預處理和基本控制,其余級聯板可以用來完成類似于Processboard的任務,也可以完成多級處理的任務,這種工作方式適用于多級處理。
Processboard擴展時會遇到時鐘資源匱乏的問題,由于每片FPGA所提供的全局始終資源僅為16個,而每擴展一塊Processboard時所需的資源是5個,所以采用單片FPGA時最多只能實現三塊Processboard的擴展。為解決這個問題,我們采用了雙FPGA的設計方法,兩塊FPGA分別掌管Processboard的進出時鐘,這樣設計最大的不僅將時鐘資源翻倍,同時還可以方便FPGA的編程,便于系統調試。
系統性能
選取分辨率分別為1600×1280、1280×1024、1024×960的6副圖像,利用實時圖像編碼系統進行圖像編碼,采用JPEG2000圖像壓縮編碼標準,表1為該系統的壓縮結果和采用KDU算法的軟件壓縮結果,通過對比能發現,該系統壓縮效果的PSNR值與KDU的相差甚小,而且可以達到在分辨率1440×1280的情況下實現每秒45幀的素壓縮速度,完全可以勝任圖像序列和高清視頻的實時壓縮要求。
結語
通過對共享存儲并行DSP系統的研究與改進,本文以高性能的 ADSP-TS201S芯片為基礎,設計出一個改進的基于FPGA的多處理器并行系統。通過實踐證明,該系統能夠實現對高清圖像和視頻的實時壓縮編碼。
參考文獻:
1. Analog Devices INC. ADSP-TS201 TigerSHARC Embedded Processor Data Sheet (Rev. A). 2004
2. Analog Devices INC. ADSP-TS201 TigerSHARC Processor Hardware Reference, Revision 1.0, November 2004
3. 劉書明,蘇 濤等. TigerSHARC DSP應用系統設計. 北京:電子工業出版社, 2004.
4. 王二力,李世杰.基于ADSP-TS101的多DSP并行處理系統.單片基于嵌入式應用,2005(12)
評論