陳 亢, 費聚鋒, 嚴(yán) 鵬, 唐 佳
(上海無線電設(shè)備研究所,上海200090)
SP-20 000系列是丹麥JAI公司推出的高性能的面陣工業(yè)攝像機[1],采用2 000萬像素超高分辨率的CMOS傳感器,輸出Bayer格式的彩色高清圖像,在分辨率和采集速度方面均可達到極佳的性能,又因其較小的體積,廣泛應(yīng)用于航空監(jiān)測和航天測繪等領(lǐng)域。該相機在5 120×3 840的全分辨率下,采集幀率可達30幀/秒。
利用工業(yè)攝像機可以在星上對地進行超高分辨率的實時觀測,實現(xiàn)方法是對星上高分辨率圖像先進行圖像數(shù)據(jù)壓縮處理,再通過高速數(shù)傳將壓縮數(shù)據(jù)傳輸?shù)降孛妗_@就需要突破高分辨率圖像壓縮以及高速數(shù)傳的相關(guān)技術(shù),進而研制出星上圖像壓縮處理與高速數(shù)傳一體化的模塊,來達到對星上圖像數(shù)據(jù)實時處理并傳輸?shù)哪康摹?/p>
ADV212是美國ADI公司生產(chǎn)的一款能對圖像進行JPEG2 000壓縮/解壓縮的專用編解碼芯片,采用SRAM 工藝構(gòu)造硬件,延遲小,功耗低[2]。
文章通過對工業(yè)相機的配置和控制拍攝出超高清分辨率5 120×3 840的圖像,基于Xilinx公司的V5系列FPGA 和TI公司的DSP28xx的開發(fā)平臺,并結(jié)合圖像的特點對圖像進行相應(yīng)的分割算法處理,再配合ADV212強大的編解碼功能實現(xiàn)了對超高分辨率圖像的壓縮。最后,用大容量的NANDFLASH 進行壓縮數(shù)據(jù)的存儲,既可以實現(xiàn)實時壓縮傳輸功能,也可以滿足大批量數(shù)據(jù)存儲的需求。
實驗表明,對超高分辨率圖像進行壓縮處理后再重構(gòu)還原,不僅視覺效果較好,也達到了較高的指標(biāo)。
實驗中采用的是JAI公司的SP-20 000系列相機,拍攝出Bayer格式的彩色圖像,由紅色像素點R,藍色像素點B,綠色像素點(G1、G2)組成,每個像素點大小為一個字節(jié)。此類圖像的構(gòu)成格式提高了圖像的色度信息量,比普通的RGB格式更為清晰,同時也增大了整幅圖像的分辨率[1],其排列模式如圖1所示。

圖1 彩色圖像Bayer格式的組合模式
第一行以R、G1像素點循環(huán)的方式排列,第二行以G2、B 像素點循環(huán)的方式排列,這種排列較為復(fù)雜,給壓縮處理帶來了難度[2]。
相機采 用2 個Camera link 接 口,分 控 制 線和數(shù)據(jù)線來實現(xiàn)對相機的配置和圖片數(shù)據(jù)傳輸。
采用異步422串口對相機進行拍攝參數(shù)的配置,主要參數(shù)有相機的拍攝幀數(shù)、輸出圖像數(shù)據(jù)位寬、曝光時間、增益等。
由于上位機串口默認(rèn)波特率與相機默認(rèn)的不匹配,需要在FPGA 中實現(xiàn)控制命令的波特率轉(zhuǎn)換,轉(zhuǎn)換后輸入給相機,相機配置完畢后開始正常工作,輸出所拍攝的圖像數(shù)據(jù)。整個控制與數(shù)據(jù)傳輸?shù)目驁D,如圖2所示。

圖2 相機控制與數(shù)據(jù)傳輸框圖
其中,上位機與FPGA 通過異步422 相連,上位機發(fā)送相機命令,F(xiàn)PGA 轉(zhuǎn)發(fā)相機的配置回復(fù)信息;FPGA 內(nèi)部將波特率進行轉(zhuǎn)換后,將相機配置命令以異步422 方式發(fā)送給接口轉(zhuǎn)發(fā)芯片,同時接收相機的配置回告信息和圖像數(shù)據(jù)。
相機工作模式配置成FULL 模式,該模式的傳輸標(biāo)準(zhǔn)格式,如圖3所示。

圖3 相機FULL模式的傳輸格式示意圖
一幅圖像總大小為5 120×3 840像素,一次傳輸8個像素,每行分640次傳輸,每一個像素大小為8bit。
專用轉(zhuǎn)換芯片DS90CR 系列可對相機接口Camera link進行高速的數(shù)據(jù)轉(zhuǎn)換[3],其數(shù)據(jù)傳輸時序如圖4所示,實現(xiàn)了接口電平和位寬的轉(zhuǎn)換,轉(zhuǎn)換完之后將圖像數(shù)據(jù)送入FPGA。

圖4 接口數(shù)據(jù)傳輸時序圖
考慮到相機圖像數(shù)據(jù)輸入FPGA 的速度很快,可達到640 Mbyte/s,F(xiàn)ULL 模式下傳輸完一幅5 120×3 840 的 圖 片 只 需30.72 ms。而ADV212芯片最大輸入吞吐率為65 Msamples/s,四片212同時工作,最大可達到260 Mbyte/s的吞吐率[3],遠(yuǎn)小于數(shù)據(jù)的輸入速度,所以在抽取像素之后必須要加入外置緩存模塊。
本文選用鎂光公司MT47系列的一對DDR2來實現(xiàn)對一幅完整圖像的高速數(shù)據(jù)緩存[4],其單片的緩存容量可達1 GB,工作頻率可達400 MHz。利用FPGA 中的IP 核生成DDR2的主控制模塊,選用Burst 讀寫模式來實現(xiàn)對DDR2的讀寫。
一般格式的圖像可以轉(zhuǎn)換成“YUV”或是“YCbCr”標(biāo)準(zhǔn)格式送入專用壓縮芯片進行后續(xù)的處理,而高分辨率Bayer格式的圖像中“R、G1、G2、B”每個像素點有8bit,這樣的像素組合方式若轉(zhuǎn)換成“YUV”或“YCbCr”的格式:
a)一是轉(zhuǎn)換運算較復(fù)雜會帶來更多的計算量和系統(tǒng)處理時間上的損失;
b)二是轉(zhuǎn)換算法會損失原始圖像精度[4]。
考慮到時間、空間復(fù)雜度和精度的要求,決定保留“R、G1、G2、B”這樣的像素組合方式,為了方便之后的壓縮處理,就要求對圖像像素進行合理的分割。圖像分割預(yù)處理的流程框圖如圖5所示。

圖5 圖像分割預(yù)處理的流程框圖
將原圖像分成由R、G1、G2、B 四個像素元單獨組成的大圖并存入DDR2,之后再讀入FPGA,各自進行合理適應(yīng)性的分塊發(fā)送到ADV212 進行壓縮處理。
一幅圖像可分成32 塊,由4 片ADV212 同時進行壓縮,每片ADV212 負(fù)責(zé)其中的8 塊。ADV212通過DSP 來進行初始化配置,上電之后,通過FPGA 給DSP 發(fā)送初始化起始命令I(lǐng)NIT_START,DSP通過總線將配置參數(shù)由FPGA 發(fā)送給ADV212,配置完成后給FPGA 發(fā)送完成信號INIT_DONE[5],F(xiàn)PGA 即可將數(shù)據(jù)送至ADV212中進行壓縮。
其中,將ADV212配置為VDATA 的輸入模式和JDATA 的輸出模式[6]。整個壓縮系統(tǒng)基本的設(shè)計框圖,如圖6所示。

圖6 壓縮系統(tǒng)框圖
根據(jù)設(shè)計方案將5 120×3 840的原圖分成4塊由單一像素元組成的圖像,每個像素元組成圖像的大小為2 560×1 920,約5 Mbyte,一片ADV212每一次壓縮過程可以處理的最大數(shù)據(jù)總量為1 Mbyte,因此就需要把圖像分塊送進ADV212中,依次進行壓縮,具體流程圖如圖7所示。

圖7 壓縮碼流的存儲流程圖
由于4片ADV212 同時對不同的塊進行壓縮,這就會使解壓縮和重構(gòu)圖像難度增大。為了方便后面的處理,在對ADV212 發(fā)送圖像數(shù)據(jù)時,保持4個通道同步,在接收端,對4片212的輸出長度分別進行計算,對壓縮數(shù)據(jù)尾部進行判別(若壓縮選為JP2 格式,則數(shù)據(jù)流尾部為“FF D9”),以最大的長度值作為4個通道輸出的統(tǒng)一的數(shù)據(jù)長度來進行存儲,這樣就給后面的重構(gòu)處理提供了方便。
由于速率匹配等因素,對212芯片輸出的圖像壓縮數(shù)據(jù)先進行存儲。
考慮到整個系統(tǒng)設(shè)計的可移植性和多用性,本文選用了4片鎂光公司MT29F64G 系列的大容量存儲芯片NANDFLASH,每片容量為64 GB,讀寫周期可達12ns,吞吐量最大約為83 Mbyte/s。這樣的設(shè)計即可以在實時壓縮傳輸系統(tǒng)中實現(xiàn)高速緩存的功能,又可以用在先大批量壓縮存儲、再讀出、傳輸及重構(gòu)的設(shè)計系統(tǒng)中,增加了系統(tǒng)設(shè)計的靈活性。
利用工業(yè)相機在實驗室對相距10m 外某標(biāo)牌進行拍攝,設(shè)定相機幀頻為8fps,每幀像素5 120×3 840拍攝圖像,設(shè)定ADV212的壓縮倍數(shù)為16 倍,經(jīng)過系統(tǒng)緩存、分割處理、壓縮和存儲,再通過串口將存儲的圖像壓縮數(shù)據(jù)讀出。
利用MATLAB 對壓縮碼流進行解壓和重構(gòu),得到分辨率為2 560×1 920的4幅單色像元構(gòu)成的圖像。再將這4幅單色圖按照原圖格式重新插值還原,組合成5 120×3 840分辨率的大圖,如圖8所示。

圖8 重構(gòu)圖
由圖中可以得出,采用此分割壓縮處理方式得到的重構(gòu)后的完整圖像,能較清晰地分辨出其中的紋理。
利用專用相機板卡和軟件讀取原始圖像。將其與重構(gòu)完成的圖像進行計算,得到圖像像素幅度值的均方根誤差eMSE。

式中:M、N 為圖片行、列像素數(shù)的總數(shù);f0(i,j)、f(i,j)為原始圖像和重構(gòu)圖像坐標(biāo)為(i,j)處的像素幅度值。根據(jù)圖像的均方根誤差即可得峰值信噪比為

式中:fmax表示原始圖像像素點幅度值的最大可能值,若一個像素點位寬為8bit,fmax=28-1=255。
通過調(diào)整壓縮倍數(shù),對系統(tǒng)壓縮結(jié)果進行了多組測試,得到本文設(shè)計的壓縮系統(tǒng)的壓縮倍數(shù)與峰值信噪比的對應(yīng)表格,如表1所示。

表1 不同壓縮倍數(shù)對應(yīng)的峰值信噪比值
通過計算結(jié)果可以得出,壓縮倍數(shù)越大,重構(gòu)圖像的峰值信噪比越低,不過在壓縮比適中的情況峰值信噪比基本能控制在30dB以上。
綜上所述,壓縮系統(tǒng)很好地適應(yīng)了此類超高清分辨率圖像的特點,通過合理的硬件設(shè)計和軟件處理,完成了超高清分辨率圖像實時壓縮存儲的功能。
設(shè)計了一個針對星載超高清分辨率工業(yè)相機拍攝出的Bayer格式圖像進行實時壓縮處理的系統(tǒng),綜合了FPGA、DSP 和ADV212等多個應(yīng)用平臺,配置了高速緩存芯片DDR2和大容量存儲芯片NANDFLASH,靈活、高效的完成了整個功能。將其與高速數(shù)傳系統(tǒng)進行整合,來達到星上圖像數(shù)據(jù)實時壓縮處理并高速傳輸?shù)哪康摹?/p>
另外,經(jīng)過實驗驗證,該壓縮系統(tǒng)最大可適應(yīng)高清工業(yè)相機10fps的幀頻輸出速率,若在此基礎(chǔ)上再增加兩個同樣的系統(tǒng),便可達到30fps的處理速度,這樣就可完成對超高清視頻模式的壓縮處理。
[1] Koh C C,Mitra S K.New Efficient Method of Image Compression in Digital Cameras with Color Filter Array[J].IEEE Trans on Consumer Electronics,2003,49(4):148-1456.
[2] 王金濤,王驍男,張忠華,等.基于FPGA 的彩色圖像Bayer變換實現(xiàn)[J].現(xiàn)代電子技術(shù),2010,(10):75-77.
[3] 余建宇,侯顏平,李勇.JPEG2000 編解碼芯片ADV212的原理及應(yīng)用[J].國外電子元器件,2005,(7):36-38.
[4] 劉方.基于Bayer彩色濾波陣列差值算法的研究[D].成都:電子科技大學(xué),2006.
[5] 費聚鋒.一種提高無線低傳輸率下實時傳輸圖像質(zhì)量的方法[J].制導(dǎo)與引信,2009,(4):49-54.
[6] 魏忠義,朱磊.基于DSP的JPEG 圖像解碼算法的實現(xiàn)[J].現(xiàn)代電子技術(shù),2005,(2):66-68.