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