摘要:本文提出了一種高效、壓縮比在線可調(diào)的實(shí)時(shí)圖像壓縮系統(tǒng)方案,并且詳細(xì)說明了硬件設(shè)計(jì)結(jié)構(gòu)。與現(xiàn)有的結(jié)構(gòu)相比,該結(jié)構(gòu)具有并行度高,抗誤碼能力強(qiáng)等特點(diǎn),圖像質(zhì)量可滿足大多數(shù)應(yīng)用要求。本系統(tǒng)中采用Xilinx最新推出的Virtex ll Pro系列產(chǎn)品中的XC2VP40來實(shí)現(xiàn)在FPGA上的設(shè)計(jì)。
關(guān)鍵詞:高效實(shí)時(shí);圖像壓縮;FPGA
引言
在信息化時(shí)代,對圖像信息的處理、存儲(chǔ)和傳輸在社會(huì)生活中所起到的作用也越來越突出,人們對接受圖像信息的要求也越來越迫切。圖像編碼的目的是在保證圖像質(zhì)量的前提下,用盡可能少的比特?cái)?shù)來表示數(shù)字圖像中所包含的信息。本文所介紹的是一種壓縮比在線可調(diào)的圖像編碼傳輸系統(tǒng),在不改變硬件框架的條件下可按用戶要求實(shí)現(xiàn)多種壓縮比,可以獲得較高的圖像質(zhì)量;在圖像傳輸?shù)倪^程中,傳輸噪聲是無法避免的,因而會(huì)形成誤碼。本系統(tǒng)對壓縮碼流進(jìn)行RS編碼,采用包(Packet)格式輸出,起到了很好的容錯(cuò)及抗誤碼效果。
VinexⅡPro系列產(chǎn)品是Xilinx最新推出的高端FPGA產(chǎn)品。它沿用成熟和完善的VinexⅡ體系結(jié)構(gòu)。它利用IP植入技術(shù)(IP-Immersion),無縫嵌入了32的IBM PowerPC 405 RISC處理器內(nèi)核和RocketIO多路吉比特串行收發(fā)器MGT(Multi-Gigabit Transceiver)。使得Xilinx的PLD技術(shù)從傳統(tǒng)的可編程功能向網(wǎng)絡(luò)、通信和存儲(chǔ)業(yè)務(wù)服務(wù)器設(shè)計(jì)平臺的功能轉(zhuǎn)變,并將FPGA器件推向了更廣泛的應(yīng)用領(lǐng)域。
RS碼基本原理
RS碼是一種具有很強(qiáng)的糾錯(cuò)能力的BCH碼,也是一種典型的代數(shù)幾何碼和優(yōu)良的線性分組碼。在同樣的編碼效率下,RS碼的糾錯(cuò)能力很強(qiáng),特別是在短的中等碼長下,其性能很接近于理論值。它不但可以糾正隨機(jī)錯(cuò)誤、突發(fā)錯(cuò)誤以及二者的結(jié)合,而且可以用來構(gòu)造其它碼類,如級聯(lián)碼。
在GF(q)(q≠2)上,碼長n=q—I的本原BCH碼稱為RS碼。由此可知,RS碼最主要的特點(diǎn)之一就是碼元取自GF(q)上,而它的生成多項(xiàng)式的根也在GF(q)上,所以RS碼是碼元的符號域與根域一致的BCH碼。因?yàn)?/p>
能糾正t個(gè)錯(cuò)誤的RS碼具有如下參數(shù):
碼長,2=q-1
校驗(yàn)位數(shù)目,2—k=2f
最小距離d=2t+l
由于線性碼的最大可能的最小距離為校驗(yàn)元的個(gè)數(shù)加1,這就是所謂的Singleton限界,而RS碼恰好做到了這一點(diǎn)。因此,稱RS碼為極大最小距離可分碼,簡稱MDS碼。顯然,RS碼的設(shè)計(jì)距離和實(shí)際距離D是一致的。
XC2VP40特點(diǎn)及應(yīng)用
FPGA/CPLD以其功能強(qiáng)大,開發(fā)過程投資少、周期短,可反復(fù)修改,保密性能好,開發(fā)工具智能化等特點(diǎn)成為當(dāng)今硬件設(shè)計(jì)的首選方式之一。采用FPGA內(nèi)部集成的數(shù)百萬個(gè)邏輯門、豐富的布線資源及內(nèi)嵌的功能模塊和專用硬核,將電路的控制指令,數(shù)據(jù)輸入、輸出,對外部存儲(chǔ)器的地址控制等全部集成在一片芯片中,大大減小了系統(tǒng)體積,縮短了開發(fā)時(shí)間,降低了設(shè)計(jì)成本。
本系統(tǒng)中使用的FPGA采用了Xilinx公司的VirtexⅡPro系列產(chǎn)品中的XC2VP40來實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)。VirtexⅡPro系列產(chǎn)品是Xilinx公司推出的高端FPGA產(chǎn)品,它采用0.13urn的9層全銅工藝生產(chǎn),并其特性主要為:
1.高性能的內(nèi)部存儲(chǔ)器SelectRAM結(jié)構(gòu),每個(gè)存儲(chǔ)塊容量18Kb,并且是完全的雙端口存儲(chǔ)器結(jié)構(gòu)。最多可提供3Mb的塊存儲(chǔ)資源,以及1.5Mb的分布式存儲(chǔ)器資源。支持高性能的外部存儲(chǔ)器接口,這些接口包括SDR/DDR、SDRAM/SRAM、FCRAM、QDSRAM和CAM等接口;
2、專用的18位×18位乘法器模塊和超前進(jìn)位邏輯鏈(Look-ahead Carry)構(gòu)成了高性能的算術(shù)處理功能;
3.多達(dá)l2個(gè)數(shù)字時(shí)鐘管理器(DCM,Digital Clock Manager)模塊和16個(gè)全局時(shí)鐘多路復(fù)用緩沖器,構(gòu)成了內(nèi)部高性能和豐富的時(shí)鐘資源,從而可以提供靈活的系統(tǒng)時(shí)鐘解決方案;
4.支持多達(dá)19種的單端接口標(biāo)準(zhǔn)和6種差分接口標(biāo)準(zhǔn)。這些接口主要包括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.片內(nèi)的數(shù)字化阻抗匹配(DCI,Digitally Controlled Impedance)技術(shù)和可編程的輸出電流(從2mA到24mA),克服了因阻抗不匹配而造成的系統(tǒng)不穩(wěn)定性(信號完整性)問題;
6.特有的配置數(shù)據(jù)三重加密技術(shù),最大限度地保護(hù)設(shè)計(jì)者的知識產(chǎn)權(quán)。
圖像壓縮和傳輸碼流結(jié)構(gòu)
該實(shí)時(shí)圖像壓縮系統(tǒng)主要完成的功能是:實(shí)時(shí)接收CCD(Charge CoupledDevice)連續(xù)采集輸入的圖像數(shù)據(jù)。根據(jù)原始圖像數(shù)據(jù)的速率自動(dòng)選擇壓縮比,將圖象數(shù)據(jù)壓縮變換成符合CCIR-D視頻標(biāo)準(zhǔn)的、受外部輸入復(fù)合同步信號同步的模擬視頻信號輸出。
壓縮部分的框架如圖1所示:
其中數(shù)據(jù)1為并串轉(zhuǎn)換后數(shù)據(jù),數(shù)據(jù)2為小波變換后數(shù)據(jù),數(shù)據(jù)3為量化后的結(jié)果。
系統(tǒng)工作時(shí),將外部數(shù)據(jù)依次存放到外部存儲(chǔ)器A和B中,寫A則讀B,反之亦然。寫入的順序是遞增的,但讀出的順序則有所不同。首先對輸入數(shù)據(jù)進(jìn)行小波變換和量化,結(jié)果保存在存儲(chǔ)器E和F中。在對外輸出壓縮碼流時(shí),根據(jù)得到的外部指令給出的壓縮比決定輸出壓縮碼流的大小以實(shí)現(xiàn)壓縮比在線可調(diào)。圖2為對壓縮碼流進(jìn)行編碼的碼流組織模塊框圖。
經(jīng)過壓縮后的碼流按照包(Packet)的格式進(jìn)行輸出。編碼器硬件結(jié)構(gòu)如如圖2所示。前端的壓縮模塊每完成一幀圖像的壓縮后會(huì)給出一個(gè)啟動(dòng)信號。編碼模塊根據(jù)這個(gè)啟動(dòng)信號開始編碼打包。每個(gè)包的內(nèi)容由同步信息和實(shí)際碼流組成。其中同步信息包括:(1)包頭標(biāo)識;(2)類型標(biāo)識;(3)幀標(biāo)識;(4)子幀計(jì)數(shù);(5)包計(jì)數(shù)。同時(shí)從CCD相機(jī)采集到的圖像數(shù)據(jù)伴有詳細(xì)的注釋信息,該信息由單片機(jī)模塊接收422端口數(shù)據(jù)后翻譯給出。該注釋信息需要寫入對應(yīng)幀的碼流中。從接受圖像數(shù)據(jù)到壓縮完成輸出壓縮碼流會(huì)有一定時(shí)間的延遲。因而,系統(tǒng)中設(shè)計(jì)了一個(gè)BlockRam用來緩存注釋信息。碼流打包時(shí),首先進(jìn)行包頭組織。若判斷是每個(gè)子幀的第一個(gè)包則將緩存中相應(yīng)的注釋信息填入,放在包計(jì)數(shù)的后面;普通的包沒有注釋信息,以節(jié)省處理時(shí)間并節(jié)約了碼流。本設(shè)計(jì)中RS部分采用RS(255,243)進(jìn)行編碼。其碼長為255個(gè)字節(jié),信息數(shù)據(jù)的長度為243個(gè)字節(jié),校驗(yàn)位的長度為12個(gè)字節(jié),糾錯(cuò)能力為6個(gè)字節(jié),滿足系統(tǒng)設(shè)計(jì)指標(biāo)要求。由于系統(tǒng)后端輸出為串行碼流,因此在RS編碼模塊后需要進(jìn)行并串轉(zhuǎn)換。串行碼流的時(shí)鐘頻率比并行碼流的低,在轉(zhuǎn)換過程中會(huì)有很大的時(shí)間延遲。因此在該RS模塊后設(shè)置了一個(gè)512字節(jié)大小的FIFO。每次RS編碼模塊只打一個(gè)包(255字節(jié)),經(jīng)過校驗(yàn)?zāi)K后存入該FIFO。并串轉(zhuǎn)換模塊對校驗(yàn)后輸出的數(shù)據(jù)進(jìn)行并串轉(zhuǎn)換。當(dāng)FIFO中的數(shù)據(jù)量小于255字節(jié)時(shí),即令RS編碼模塊打下一個(gè)包,以此類推,以保證串行碼流的連續(xù)輸出。工作流程如圖3。
系統(tǒng)時(shí)鐘、資源和仿真波形
本設(shè)計(jì)在xilinx公司生產(chǎn)的XC2VP40芯片上實(shí)現(xiàn)了全部功能。使用的是該公司提供的集成綜合環(huán)境ISE。它是XilinxFPGA/CPLD的綜合性集成設(shè)計(jì)平臺,該平臺集成了從設(shè)計(jì)輸入、仿真、邏輯綜合、布局布線與實(shí)現(xiàn)、時(shí)序分析、芯片下載與配置、功率分析等幾乎所有設(shè)計(jì)流程所需工具。
本文設(shè)計(jì)的RS編/解碼模塊采用VHDL語言描述各個(gè)模塊,并在ModelSim SE6.0環(huán)境下進(jìn)行仿真。仿真波形如圖4。表1給出了具體的實(shí)現(xiàn)參數(shù)。
結(jié)語
本文結(jié)合VirtexⅡPro系列芯片中的XC2VP40的主要性能特點(diǎn),詳細(xì)介紹一種高效實(shí)時(shí)圖像壓縮系統(tǒng)方案,并給出了詳盡的硬件設(shè)計(jì)結(jié)構(gòu)。本文提出的結(jié)構(gòu)大大提高了系統(tǒng)處理速度,可實(shí)時(shí)相應(yīng)可變壓縮比的要求,避免了時(shí)鐘浪費(fèi),并具有較強(qiáng)抗誤碼性能。本系統(tǒng)能夠滿足大多數(shù)硬件要求,并成功應(yīng)用于實(shí)際的高速圖像實(shí)時(shí)壓縮傳輸系統(tǒng)中,最高工作頻率可達(dá)80MHz。
參考文獻(xiàn):
1.王新梅,肖國鎮(zhèn)編著,‘糾錯(cuò)碼—原理與方法’,西安電子科技大學(xué)出版社.2001