獨(dú)立式多分辨率VGA/DVI壓縮存儲(chǔ)系統(tǒng)
隨著計(jì)算機(jī)應(yīng)用的快速普及,視頻圖像的壓縮存儲(chǔ)在信息記錄和安防監(jiān)控等領(lǐng)域起著重要作用。但是,目前市場(chǎng)上的多數(shù)圖像壓縮系統(tǒng)很難支持多種分辨率或者高分辨率圖像的實(shí)時(shí)壓縮,如ADV212[1]難以滿足UXGA(1 600×1 200)或更高分辨率1080p等的應(yīng)用場(chǎng)合。此外,市場(chǎng)上也存在一些基于DSP的解決方案,它們多采用FPGA+DSP架構(gòu)對(duì)圖像進(jìn)行壓縮。此類系統(tǒng)的最大缺點(diǎn)在于DSP的數(shù)據(jù)接口不夠靈活,加上DSP的并行度不高,因此大大限制了其在高分辨率圖像壓縮方面的應(yīng)用。所以,研究一套支持多種分辨率以及高分辨率的視頻圖像壓縮和存儲(chǔ)系統(tǒng)具有重要的現(xiàn)實(shí)意義。
基于上述需求,開發(fā)了一套基于雙FPGA+ARM架構(gòu)的獨(dú)立式多分辨率VGA/GVI壓縮和存儲(chǔ)系統(tǒng)。該系統(tǒng)支持DVI/VGA接口輸入,并支持SVGA、XGA、SXGA、UXGA、1080p等任意分辨率的圖像壓縮和存儲(chǔ),同時(shí)能做到音視頻同步。另外,該系統(tǒng)采用了雙FPGA+ARM架構(gòu),提高了系統(tǒng)的靈活性及平臺(tái)可升級(jí)性,拓寬了其應(yīng)用場(chǎng)合。
本文主要介紹獨(dú)立式多分辨率VGA/DVI圖像壓縮存儲(chǔ)系統(tǒng)的核心架構(gòu),并給出系統(tǒng)的性能。
1 系統(tǒng)架構(gòu)與實(shí)現(xiàn)
該系統(tǒng)的整體架構(gòu)如圖1所示。系統(tǒng)采用了雙FPGA+ARM的架構(gòu),主要包括四部分:圖像前端接口電路、預(yù)處理模塊、圖像壓縮模塊和管理模塊。它同時(shí)支持VGA和DVI圖像源輸入,圖像源的緩存或部分運(yùn)算的中間結(jié)果通過(guò)Flash和外部存儲(chǔ)器實(shí)現(xiàn)。這里主要介紹該系統(tǒng)中涉及到前端預(yù)處理模塊和圖像壓縮核心模塊。
圖1中左面一片F(xiàn)PGA主要完成前端預(yù)處理,如分辨率檢測(cè)、色彩轉(zhuǎn)換和圖像分析等功能;右面一片F(xiàn)PGA主要用來(lái)實(shí)現(xiàn)圖像實(shí)時(shí)壓縮;ARM對(duì)系統(tǒng)進(jìn)行管理,如壓縮后碼流管理、網(wǎng)絡(luò)管理和音頻錄制等。
1.1 前端預(yù)處理模塊
前端接口電路采用AD9888作為前端的視頻模數(shù)轉(zhuǎn)換器,TI公司推出的TFP403作為DVI接收芯片。前端預(yù)處理模塊采用Xilinx公司的Virtex4[2]系列的FPGA(XC4VLX40) ,它主要完成的功能是分辨率的檢測(cè)和色彩空間轉(zhuǎn)換等,如圖2所示。
1.1.1 分辨率檢測(cè)
對(duì)于標(biāo)準(zhǔn)的VGA接口,不同分辨率下其HSYNC與VSYNC時(shí)序不同,系統(tǒng)設(shè)計(jì)時(shí)用一個(gè)單獨(dú)的模塊來(lái)檢測(cè)輸入端的分辨率。該模塊可以通過(guò)檢測(cè)兩個(gè)相鄰VSYNC上升沿間的HSYNC數(shù)目來(lái)識(shí)別VGA信號(hào)的分辨率,然后將檢測(cè)到的分辨率參數(shù)送給后端的圖像壓縮模塊,讓系統(tǒng)根據(jù)對(duì)應(yīng)參數(shù)來(lái)配置圖像采集和圖像壓縮。
1.1.2 色彩轉(zhuǎn)換
標(biāo)準(zhǔn)的VGA接口輸出為RGB信號(hào),在進(jìn)行壓縮之前,先對(duì)圖像進(jìn)行色彩空間轉(zhuǎn)換,將RGB信號(hào)轉(zhuǎn)換為YUV信號(hào)。色彩空間轉(zhuǎn)換公式為:
系統(tǒng)實(shí)現(xiàn)時(shí)采用4:2:2采樣模式,F(xiàn)PGA采用定點(diǎn)化處理后,將得到的Y 和UV分量送給后端的編碼模塊進(jìn)行編碼。
1.2 圖像壓縮部分
在系統(tǒng)設(shè)計(jì)時(shí),考慮到不同分辨率的圖像壓縮和后續(xù)功能擴(kuò)展,需要采用硬件資源豐富的FPGA,后端模塊采用Xilinx公司的Virtex4系列的FPGA(XC4VLX100)。圖像壓縮的核心架構(gòu)如圖3所示,它主要涉及圖像緩存、圖像壓縮和碼流緩存三部分。
1.2.1 圖像緩存模塊
為了提高系統(tǒng)的處理速度和數(shù)據(jù)吞吐效率,圖像采集模塊中采用圖4所示的“乒乓操作”緩存圖像,即把一幀圖像的Y和UV分量緩存到片外的SDRAM1中,同時(shí),系統(tǒng)會(huì)從SDRAM2讀取另一幀已經(jīng)緩存的圖像到后端的圖像壓縮模塊。這樣圖像緩存和壓縮可以并行處理,提高系統(tǒng)的壓縮效率。
系統(tǒng)設(shè)計(jì)時(shí)采用Micron公司16 MB的SDRAM[3],它包含了4個(gè)bank。其中,bank0與bank1用來(lái)緩存Y分量,bank2與bank3用來(lái)緩存UV分量,為了提高讀寫SDRAM的效率,采用burst讀寫數(shù)據(jù)方式,可以減少仲裁操作。
1.2.2 圖像并行壓縮模塊
在系統(tǒng)算法設(shè)計(jì)時(shí),圖像變換采用了基于離散小波變換的空間推舉算法(SCLA[4]),相對(duì)常見的離散小波變換(DWT),SCLA算法的行與列變換同時(shí)進(jìn)行,乘法次數(shù)最少,且重建圖像的PSNR值更高。編碼算法采用改進(jìn)的無(wú)鏈表零樹編碼算法(SLC),它融合了多層次零樹編碼算法(SPIHT[5])和無(wú)鏈表零樹編碼(LZC[6])的思想,在性能上逼近SPIHT,但更易于硬件實(shí)現(xiàn)。
系統(tǒng)在實(shí)現(xiàn)架構(gòu)上采用了圖3所示的雙通道并行壓縮架構(gòu),即Y和UV分量的小波變換和編碼并行進(jìn)行,極大地提高了系統(tǒng)的并行度和壓縮效率。兼顧數(shù)據(jù)讀取效率和內(nèi)存考慮,本系統(tǒng)設(shè)計(jì)時(shí)采用了片外SDRAM和片內(nèi)SRAM結(jié)合的方法來(lái)緩存小波系數(shù),所以小波變換和編碼模塊主要由FPGA和2塊片外SDRAM協(xié)同完成。SCLA算法采用9/7小波的五層分解,其中SDRAM3用來(lái)緩存Y通道分解過(guò)程中產(chǎn)生的部分小波系數(shù),SDRAM4用來(lái)緩存UV通道分解過(guò)程中產(chǎn)生的部分小波系數(shù),向SDRAM中讀寫數(shù)據(jù)時(shí)仍然采用burst方式。SLC算法以一棵小波樹為基本單元,且壓縮比可自由控制,完成一幀圖像所有小波樹的編碼。
1.2.3 碼流緩存模塊
圖3中Y通道和UV通道編碼后的碼流,需要合理的碼流管理機(jī)制。在此,為了提高系統(tǒng)的吞吐效率,壓縮后的碼流緩存也采用2片SDRAM進(jìn)行“乒乓操作”,即向SDRAM5寫一幀碼流時(shí),從SDRAM6中讀取前一幀壓縮后的碼流;同理,向SDRAM6寫一幀碼流時(shí),同時(shí)從SDRAM5中讀取前一幀緩存的碼流,原理與圖4類似。
2 實(shí)驗(yàn)結(jié)果與性能
該系統(tǒng)的電路板采用10層板制作工藝,電路板大小30.8 cm×16.7 cm。測(cè)試結(jié)果表明,當(dāng)系統(tǒng)工作頻率為100 MHz時(shí),可以對(duì)分辨率1 280×1 024的圖像進(jìn)行實(shí)時(shí)壓縮(約25幀/s) ,對(duì)分辨率1 600×1 200的圖像壓縮速率為17幀/s,同時(shí)也支持其他更高分辨率的壓縮。
本系統(tǒng)對(duì)分辨率為1 600×1 200的計(jì)算機(jī)屏幕的PPT文檔界面操作過(guò)程進(jìn)行了測(cè)試,實(shí)驗(yàn)結(jié)果表明其壓縮比約為25倍,重建PSNR值約為38 dB,近年來(lái), 視頻圖像的壓縮和存儲(chǔ)在信息處理和安防監(jiān)控等領(lǐng)域起著重要作用。鑒于市場(chǎng)上大多數(shù)圖像壓縮系統(tǒng)很難支持多種分辨率和高分辨率的實(shí)時(shí)壓縮,本文設(shè)計(jì)了一款雙FPGA+ARM架構(gòu)的獨(dú)立式多分辨率VGA/DVI圖像壓縮存儲(chǔ)系統(tǒng)。該系統(tǒng)能接收VGA/DVI接口輸入,支持SVGA、XGA、SXGA、UXGA、1080p等任意分辨率的連續(xù)壓縮和存儲(chǔ),并能實(shí)現(xiàn)音視頻同步。在正常工作頻率100 MHz時(shí),可以對(duì)SXGA(1 280×1 024)的圖像進(jìn)行實(shí)時(shí)壓縮(25幀/s),對(duì)UXGA(1 600×1 200)的圖像壓縮為17幀/s,且圖像重建后的PSNR值要優(yōu)于JPEG標(biāo)準(zhǔn),壓縮性能與JPEG2000標(biāo)準(zhǔn)近似。另外,該系統(tǒng)設(shè)計(jì)時(shí)采用雙FPGA+ARM架構(gòu),提高了系統(tǒng)的靈活性和平臺(tái)可升級(jí)性,具有廣闊的應(yīng)用前景。
評(píng)論