摘要:本文提出了一種高效、壓縮比在線可調的實時圖像壓縮系統方案,并且詳細說明了硬件設計結構。與現有的結構相比,該結構具有并行度高,抗誤碼能力強等特點,圖像質量可滿足大多數應用要求。本系統中采用Xilinx最新推出的Virtex ll Pro系列產品中的XC2VP40來實現在FPGA上的設計。
關鍵詞:高效實時;圖像壓縮;FPGA
引言
在信息化時代,對圖像信息的處理、存儲和傳輸在社會生活中所起到的作用也越來越突出,人們對接受圖像信息的要求也越來越迫切。圖像編碼的目的是在保證圖像質量的前提下,用盡可能少的比特數來表示數字圖像中所包含的信息。本文所介紹的是一種壓縮比在線可調的圖像編碼傳輸系統,在不改變硬件框架的條件下可按用戶要求實現多種壓縮比,可以獲得較高的圖像質量;在圖像傳輸的過程中,傳輸噪聲是無法避免的,因而會形成誤碼。本系統對壓縮碼流進行RS編碼,采用包(Packet)格式輸出,起到了很好的容錯及抗誤碼效果。
VinexⅡPro系列產品是Xilinx最新推出的高端FPGA產品。它沿用成熟和完善的VinexⅡ體系結構。它利用IP植入技術(IP-Immersion),無縫嵌入了32的IBM PowerPC 405 RISC處理器內核和RocketIO多路吉比特串行收發器MGT(Multi-Gigabit Transceiver)。使得Xilinx的PLD技術從傳統的可編程功能向網絡、通信和存儲業務服務器設計平臺的功能轉變,并將FPGA器件推向了更廣泛的應用領域。
RS碼基本原理

RS碼是一種具有很強的糾錯能力的BCH碼,也是一種典型的代數幾何碼和優良的線性分組碼。在同樣的編碼效率下,RS碼的糾錯能力很強,特別是在短的中等碼長下,其性能很接近于理論值。它不但可以糾正隨機錯誤、突發錯誤以及二者的結合,而且可以用來構造其它碼類,如級聯碼。
在GF(q)(q≠2)上,碼長n=q—I的本原BCH碼稱為RS碼。由此可知,RS碼最主要的特點之一就是碼元取自GF(q)上,而它的生成多項式的根也在GF(q)上,所以RS碼是碼元的符號域與根域一致的BCH碼。因為

能糾正t個錯誤的RS碼具有如下參數:
碼長,2=q-1
校驗位數目,2—k=2f
最小距離d=2t+l
由于線性碼的最大可能的最小距離為校驗元的個數加1,這就是所謂的Singleton限界,而RS碼恰好做到了這一點。因此,稱RS碼為極大最小距離可分碼,簡稱MDS碼。顯然,RS碼的設計距離和實際距離D是一致的。
XC2VP40特點及應用
FPGA/CPLD以其功能強大,開發過程投資少、周期短,可反復修改,保密性能好,開發工具智能化等特點成為當今硬件設計的首選方式之一。采用FPGA內部集成的數百萬個邏輯門、豐富的布線資源及內嵌的功能模塊和專用硬核,將電路的控制指令,數據輸入、輸出,對外部存儲器的地址控制等全部集成在一片芯片中,大大減小了系統體積,縮短了開發時間,降低了設計成本。
本系統中使用的FPGA采用了Xilinx公司的VirtexⅡPro系列產品中的XC2VP40來實現系統設計。VirtexⅡPro系列產品是Xilinx公司推出的高端FPGA產品,它采用0.13urn的9層全銅工藝生產,并其特性主要為:
1.高性能的內部存儲器SelectRAM結構,每個存儲塊容量18Kb,并且是完全的雙端口存儲器結構。最多可提供3Mb的塊存儲資源,以及1.5Mb的分布式存儲器資源。支持高性能的外部存儲器接口,這些接口包括SDR/DDR、SDRAM/SRAM、FCRAM、QDSRAM和CAM等接口;
2、專用的18位×18位乘法器模塊和超前進位邏輯鏈(Look-ahead Carry)構成了高性能的算術處理功能;
3.多達l2個數字時鐘管理器(DCM,Digital Clock Manager)模塊和16個全局時鐘多路復用緩沖器,構成了內部高性能和豐富的時鐘資源,從而可以提供靈活的系統時鐘解決方案;
4.支持多達19種的單端接口標準和6種差分接口標準。這些接口主要包括LVTTL、LVCMOS(3.3V、2.5V、1.8V、1.5V)、PCI-X133、PCI64/66、GTL、GTL+、AGP、AGP-2X、HSTL(Ⅰ、Ⅱ、Ⅲ、Ⅳ),SSTL3,SSTL2、LVDS(3.3V,2.5V)、LVPECL、BLVDS、ULVDS和LDT
5.片內的數字化阻抗匹配(DCI,Digitally Controlled Impedance)技術和可編程的輸出電流(從2mA到24mA),克服了因阻抗不匹配而造成的系統不穩定性(信號完整性)問題;
6.特有的配置數據三重加密技術,最大限度地保護設計者的知識產權。
圖像壓縮和傳輸碼流結構

該實時圖像壓縮系統主要完成的功能是:實時接收CCD(Charge CoupledDevice)連續采集輸入的圖像數據。根據原始圖像數據的速率自動選擇壓縮比,將圖象數據壓縮變換成符合CCIR-D視頻標準的、受外部輸入復合同步信號同步的模擬視頻信號輸出。

壓縮部分的框架如圖1所示:
其中數據1為并串轉換后數據,數據2為小波變換后數據,數據3為量化后的結果。
系統工作時,將外部數據依次存放到外部存儲器A和B中,寫A則讀B,反之亦然。寫入的順序是遞增的,但讀出的順序則有所不同。首先對輸入數據進行小波變換和量化,結果保存在存儲器E和F中。在對外輸出壓縮碼流時,根據得到的外部指令給出的壓縮比決定輸出壓縮碼流的大小以實現壓縮比在線可調。圖2為對壓縮碼流進行編碼的碼流組織模塊框圖。
經過壓縮后的碼流按照包(Packet)的格式進行輸出。編碼器硬件結構如如圖2所示。前端的壓縮模塊每完成一幀圖像的壓縮后會給出一個啟動信號。編碼模塊根據這個啟動信號開始編碼打包。每個包的內容由同步信息和實際碼流組成。其中同步信息包括:(1)包頭標識;(2)類型標識;(3)幀標識;(4)子幀計數;(5)包計數。同時從CCD相機采集到的圖像數據伴有詳細的注釋信息,該信息由單片機模塊接收422端口數據后翻譯給出。該注釋信息需要寫入對應幀的碼流中。從接受圖像數據到壓縮完成輸出壓縮碼流會有一定時間的延遲。因而,系統中設計了一個BlockRam用來緩存注釋信息。碼流打包時,首先進行包頭組織。若判斷是每個子幀的第一個包則將緩存中相應的注釋信息填入,放在包計數的后面;普通的包沒有注釋信息,以節省處理時間并節約了碼流。本設計中RS部分采用RS(255,243)進行編碼。其碼長為255個字節,信息數據的長度為243個字節,校驗位的長度為12個字節,糾錯能力為6個字節,滿足系統設計指標要求。由于系統后端輸出為串行碼流,因此在RS編碼模塊后需要進行并串轉換。串行碼流的時鐘頻率比并行碼流的低,在轉換過程中會有很大的時間延遲。因此在該RS模塊后設置了一個512字節大小的FIFO。每次RS編碼模塊只打一個包(255字節),經過校驗模塊后存入該FIFO。并串轉換模塊對校驗后輸出的數據進行并串轉換。當FIFO中的數據量小于255字節時,即令RS編碼模塊打下一個包,以此類推,以保證串行碼流的連續輸出。工作流程如圖3。
系統時鐘、資源和仿真波形
本設計在xilinx公司生產的XC2VP40芯片上實現了全部功能。使用的是該公司提供的集成綜合環境ISE。它是XilinxFPGA/CPLD的綜合性集成設計平臺,該平臺集成了從設計輸入、仿真、邏輯綜合、布局布線與實現、時序分析、芯片下載與配置、功率分析等幾乎所有設計流程所需工具。
本文設計的RS編/解碼模塊采用VHDL語言描述各個模塊,并在ModelSim SE6.0環境下進行仿真。仿真波形如圖4。表1給出了具體的實現參數。

結語
本文結合VirtexⅡPro系列芯片中的XC2VP40的主要性能特點,詳細介紹一種高效實時圖像壓縮系統方案,并給出了詳盡的硬件設計結構。本文提出的結構大大提高了系統處理速度,可實時相應可變壓縮比的要求,避免了時鐘浪費,并具有較強抗誤碼性能。本系統能夠滿足大多數硬件要求,并成功應用于實際的高速圖像實時壓縮傳輸系統中,最高工作頻率可達80MHz。
參考文獻:
1.王新梅,肖國鎮編著,‘糾錯碼—原理與方法’,西安電子科技大學出版社.2001