嵌入式圖像采集系統(tǒng)的JPEG算法改進(jìn)
引言
目前,嵌入式系統(tǒng)已逐漸成為后PC時(shí)代的主導(dǎo),但當(dāng)?shù)投说?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/嵌入式">嵌入式系統(tǒng)無法滿足信息化、智能化、網(wǎng)絡(luò)化時(shí)代的更高要求時(shí),32位嵌入式系統(tǒng)應(yīng)運(yùn)而生。圖像采集系統(tǒng)正從模擬采集向數(shù)字采集發(fā)展,其中數(shù)字圖像采集系統(tǒng)中的嵌入式圖像采集系統(tǒng)由于其優(yōu)越的性能越來越受到人們的關(guān)注。對于家庭視頻監(jiān)控這樣的應(yīng)用,并不需要很多的功能,只要簡單的視頻傳輸和存儲就夠了,體積也要盡可能的小。正是基于這種考慮,筆者設(shè)計(jì)了一款基于以太網(wǎng)的嵌入式視頻監(jiān)控系統(tǒng),該系統(tǒng)具有視頻圖像采集、壓縮、解壓、傳輸和存儲等功能。在整個(gè)系統(tǒng)中,由于圖像數(shù)據(jù)需在互聯(lián)網(wǎng)上傳輸,因此傳輸?shù)臄?shù)據(jù)流量的大小對系統(tǒng)性能的影響是非常大的,因此采用了改進(jìn)的 JPEG算法使得在保證圖像質(zhì)量的情況下,盡可能的提高壓縮比,以實(shí)現(xiàn)該系統(tǒng)互聯(lián)網(wǎng)監(jiān)控的功能。并且由于使用嵌入式系統(tǒng),使該系統(tǒng)體積小巧,功能簡化,而且使用免費(fèi)的開源的操作系統(tǒng)ARM-Linux,使系統(tǒng)的成本大為降低。
圖像采集系統(tǒng)的構(gòu)成
圖像采集系統(tǒng)主要由4部分構(gòu)成,分別為圖像采集、圖像壓縮、圖像傳輸和圖像顯示。圖像采集部分由數(shù)字?jǐn)z像頭、USB通道和嵌入式處理器構(gòu)成,其中數(shù)字?jǐn)z像頭用來完成圖像數(shù)據(jù)的采集,USB通道將數(shù)據(jù)傳送至處理器進(jìn)行處理;圖像壓縮部分主要是由軟件完成,將攝像頭采集的BMP格式的圖像數(shù)據(jù)通過改進(jìn)的 JPEG算法壓縮為JPEG格式的圖像數(shù)據(jù);圖像傳輸部分則完成由圖像數(shù)據(jù)由本地向遠(yuǎn)程的傳輸;圖像顯示部分則可以將采集到的圖像數(shù)據(jù)在遠(yuǎn)程的瀏覽器上顯示出來,供用戶瀏覽,保存,編輯等等。該系統(tǒng)如圖1所示。
圖像采集系統(tǒng)中的壓縮算法的改進(jìn)
在系統(tǒng)中采用了ARM920T核的S3C2410嵌入式處理器。為了盡可能的降低成本,對采集的圖像采用了軟件壓縮的方法,同時(shí)為實(shí)現(xiàn)在保證圖像質(zhì)量的情況下盡可能的提高壓縮比,對原有的JPEG算法進(jìn)行了改進(jìn)。基本的JPEG算法是由以下步驟完成:①通過離散余弦變換(DCT)消除數(shù)據(jù)冗余;②使用量化系數(shù)矩陣對離散余弦變換系數(shù)進(jìn)行量化;③對量化后的系數(shù)進(jìn)行編碼,使其熵最小,熵編碼通常采用huffman可變字長編碼。
在JPEG圖像壓縮的技術(shù)中,DCT占據(jù)重要的位置,因此對它的改進(jìn)對于整個(gè)算法來說,有著非常重要的意義。在JPEG算法中通常是先將圖像分成一個(gè)個(gè)8×8的圖像子塊,對每一個(gè)圖像子塊進(jìn)行離散余弦變換,所使用的二維離散余弦變換公式如下:
其逆變換如下:
其中:
在離散余弦變換中,由于要將壓縮的圖像分成8×8的子塊,對于圖像壓縮會(huì)帶來塊效應(yīng),即對相鄰的圖像子塊進(jìn)行獨(dú)立的數(shù)據(jù)處理時(shí)會(huì)帶來的失真,從而使塊與塊之間的邊界不連續(xù);并且相鄰塊之間的冗余數(shù)據(jù)也是不容忽視的。經(jīng)過實(shí)驗(yàn)發(fā)現(xiàn),如果能設(shè)法使變換后的圖像子塊的能量下降速度加快,就可以減少塊效應(yīng)并可能使細(xì)節(jié)部分清晰。正是基于這一點(diǎn),通過實(shí)驗(yàn)發(fā)現(xiàn)可以通過收斂性良好的Chebychev多項(xiàng)式來擬合離散余弦變換,使得變換后的圖像子塊的能量下降速度加快,從而提高圖像數(shù)據(jù)的壓縮比,同時(shí)還能夠改善圖像的塊效應(yīng)。這樣,在離散余弦變換中如何應(yīng)用Chebychev多項(xiàng)式來計(jì)算就成為問題的關(guān)鍵。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論