基于Camera Link接口的圖像壓縮解壓縮系統(tǒng)設(shè)計(jì)
摘 要: 應(yīng)用Altera公司的StratixTMII系列FPGA EP2S30F484I5芯片和基于Camera Link接口的數(shù)碼相機(jī)CV-A10CL,設(shè)計(jì)實(shí)現(xiàn)了對(duì)高分辨率黑白數(shù)字圖像進(jìn)行拆分壓縮、解壓縮及PCI總線接入拼接恢復(fù)的系統(tǒng)。系統(tǒng)分為數(shù)碼相片壓縮單元、數(shù)碼相片解壓縮單元和基于MFC的圖像拼接恢復(fù)程序。數(shù)碼相片壓縮單元完成對(duì)來(lái)自相機(jī)Camera Link接口數(shù)據(jù)的接收、緩存、圖像數(shù)據(jù)壓縮并發(fā)送,數(shù)碼相片解壓縮單元完成對(duì)接收到的已壓縮的圖像數(shù)據(jù)進(jìn)解壓縮,并將解壓縮后的圖像數(shù)據(jù)通過(guò)PCI總線傳輸至PC上顯示。
關(guān)鍵詞: FPGA;Camera Link;ADV202;PCI總線;圖像的拆分壓縮;解壓縮拼接
Camera Link[1]是工業(yè)高速串口數(shù)據(jù)和連接協(xié)議,它由世界數(shù)碼相機(jī)供應(yīng)商和圖像采集公司在2000年10月聯(lián)合推出,旨在為數(shù)碼相機(jī)和PC機(jī)間的高速、高精度數(shù)字傳輸提供一種標(biāo)準(zhǔn)連接。本設(shè)計(jì)就是基于Altera公司的StratixTM II系列芯片中的FPGA EP2S30F484I5芯片和數(shù)碼相機(jī)CV-A10CL[2]設(shè)計(jì)的一個(gè)可以實(shí)時(shí)顯示的圖像傳輸系統(tǒng)。由于ADV202所能壓縮的每幅圖像最大樣本數(shù)為1.048 M,即1 024×1 024分辨率的圖像。對(duì)于本設(shè)計(jì)中的4 008×5 344分辨率的圖像進(jìn)行傳輸必須要對(duì)圖像進(jìn)行分割壓縮,然后在接收端合并恢復(fù)出完整的圖像。在本設(shè)計(jì)中,F(xiàn)PGA的作用是對(duì)通信的所有過(guò)程進(jìn)行控制和對(duì)數(shù)據(jù)進(jìn)行處理。
1 高分辨率圖像拆分與合并傳輸原理
由于ADV202[3]所能壓縮的每幅圖像最大樣本數(shù)為1.048 M,即1 024×1 024分辨率的圖像。所以4 008×5 344分辨率的圖像進(jìn)行傳輸必須要對(duì)圖像進(jìn)行分割壓縮,然后在接收端合并恢復(fù)出完整的圖像。
按照ADV202的技術(shù)手冊(cè),在采用低壓縮比對(duì)圖像進(jìn)行壓縮時(shí),在解壓端可以不考慮圖像拆分時(shí)的邊界效應(yīng),直接對(duì)圖像進(jìn)行合并。但是在本項(xiàng)目中,必須支持8~80倍的圖像壓縮。而在80倍圖像壓縮時(shí),還是會(huì)明顯感覺(jué)出圖像間的拼接效果,所以必須要考慮圖像的邊界效應(yīng)。
針對(duì)以上分析,將4 008×5 344分辨率的圖像水平方向拆分成4幅圖,垂直方向拆分成6幅圖,總共拆成24幅1 024×1 024分辨率的圖像進(jìn)行傳輸。拆分方法如圖1所示。
為了解決圖像間水平方向的邊界效應(yīng),水平方向上每幅圖都需要和相鄰的圖像有一定的圖像數(shù)據(jù)冗余。在接收端,通過(guò)冗余的圖像數(shù)據(jù)來(lái)覆蓋掉邊界圖像。例如Pic1和Pic2為水平方向相鄰的兩幅圖像,在它們之間引入水平方向24個(gè)像素的圖像冗余。在接收端,將Pic1每行的最后12個(gè)像素點(diǎn)用Pic2的對(duì)應(yīng)像素點(diǎn)替換,這樣就可以消除圖像間的水平邊界效應(yīng)。每幅圖像水平方向的起始像素點(diǎn)和結(jié)束像素點(diǎn)如圖1(a)所示。
同理,也可以在垂直方向采用相同的方法,每幅圖像垂直方向的起始像素點(diǎn)和結(jié)束像素點(diǎn)如圖1(b)所示。
采用以上方法就可以將4 008×5 344分辨率的圖像拆分成如圖1(c)所示的24幅具有冗余度的圖像。
2 系統(tǒng)整體設(shè)計(jì)方案
圖像傳輸系統(tǒng)由數(shù)碼相片壓縮單元和數(shù)碼相片解壓縮單元組成[4-5]。數(shù)碼相片壓縮單元通過(guò)Camera Link接口連接數(shù)碼相機(jī)接收數(shù)碼相片原始數(shù)據(jù),并對(duì)數(shù)碼相片原始數(shù)據(jù)進(jìn)行壓縮,然后將要測(cè)數(shù)據(jù)與壓縮數(shù)據(jù)合成為數(shù)碼相片數(shù)據(jù)流,最后將數(shù)碼相片數(shù)據(jù)流和碼同步時(shí)鐘通過(guò)RS422同步接口輸出到下一個(gè)設(shè)備;數(shù)碼相片解壓?jiǎn)卧邮盏綌?shù)碼相片數(shù)據(jù)流后,通過(guò)RS422同步接口傳送給解壓卡,解壓卡進(jìn)行解壓后,通過(guò)PCI總線把數(shù)據(jù)傳輸?shù)絇C機(jī)上,最后進(jìn)行數(shù)據(jù)顯示、存儲(chǔ)和網(wǎng)絡(luò)發(fā)送等。壓縮與解壓縮單元組成框圖如圖2所示。
3 系統(tǒng)工作原理
3.1 圖像壓縮單元工作原理
即使同時(shí)使用兩片圖像壓縮芯片ADV202,也僅僅能夠支持一路高清電視的分辨率的圖像,與4 008×5 344仍然存在較大差距。因此,考慮采用將一幅圖片進(jìn)行拆分,分為多幀壓縮傳送,保證整幅照片的數(shù)據(jù)傳送。工作邏輯框圖如圖3所示。
從Camera Link接收的數(shù)據(jù)在SDRAM[6-7]中緩存,當(dāng)數(shù)據(jù)存滿一張完整照片時(shí),采用連續(xù)發(fā)送的方式將數(shù)據(jù)送入ADV202壓縮,ADV202返回的數(shù)據(jù)與遙測(cè)數(shù)據(jù)混合成幀,然后發(fā)送到AHA4501[8]芯片完成信道編碼編碼的數(shù)據(jù),在FPGA控制下,采用同步方式從RS422數(shù)據(jù)口輸出。
3.2 圖像解壓縮單元工作原理
在接收端,采用如圖4的結(jié)構(gòu)。接收到的信道數(shù)據(jù),首先在FPGA內(nèi)部進(jìn)行信道解碼恢復(fù)成圖像數(shù)據(jù)和遙測(cè)數(shù)據(jù)幀,將遙測(cè)數(shù)據(jù)從RS422接口輸出,完成遙測(cè)數(shù)據(jù)的處理。