康婷婷
【摘要】隨著電子信息技術(shù)的發(fā)展,嵌入式系統(tǒng)在各行業(yè)都應(yīng)用廣泛起來。嵌入式圖像處理系統(tǒng)作為嵌入式系統(tǒng)應(yīng)用的一部分,在我們生活、工作中也越來越重要 。本文詳細(xì)描述了Linux下圖像采集模塊中串口攝像頭使用的JPEG技術(shù)的相關(guān)原理。
【關(guān)鍵詞】JPEG;圖片壓縮;嵌入式;串口攝像頭
1.引言
當(dāng)搭建起嵌入式系統(tǒng)的軟件平臺(tái),建立操作系統(tǒng)、文件系統(tǒng),開發(fā)對(duì)應(yīng)的應(yīng)用程序,即可建立相應(yīng)系統(tǒng)模塊。攝像頭的應(yīng)用程序在操作系統(tǒng)平臺(tái)上,要完成的是采集圖像數(shù)據(jù)信息,并把采集到的數(shù)據(jù)進(jìn)行打包。圖像采集即向串口設(shè)備輸入指令,進(jìn)而讀出數(shù)據(jù),獲得圖像。但是嵌入式系統(tǒng)資源有限,有時(shí)受傳輸帶寬及存貯容量的限制,常常需要使用圖像壓縮技術(shù)[1]來將原始數(shù)據(jù)壓縮后再存貯或傳輸,從而使嵌入系統(tǒng)的資源得到更好的利用。串口攝像頭輸出的文件數(shù)據(jù)是標(biāo)準(zhǔn)的16進(jìn)制JPEG文件格式。JPEG是一種基本的圖像壓縮方式,JPEG 壓縮充分利用了人類視覺對(duì)色彩空間中高頻數(shù)據(jù)信息不敏感的特性,將圖像壓縮損失部分定位到了視覺不易察覺的位置,從而簡(jiǎn)化了需處理的數(shù)據(jù)信息。本文對(duì)串口攝像頭的使用及JPEG編解碼過程做了概述。
2.串口攝像頭
串口攝像頭作為圖像采集處理設(shè)備具有采集圖像、控制拍攝、紅外補(bǔ)光、數(shù)據(jù)壓縮、數(shù)據(jù)傳輸?shù)裙δ?。可以和?biāo)準(zhǔn)的RS232接口進(jìn)行通信,數(shù)據(jù)傳輸協(xié)議可以使攝像頭與電腦及各種嵌入式設(shè)備進(jìn)行連接。
本文選用JPEG串口相機(jī)LS-Y201,通過簡(jiǎn)單的串口指令控制圖像的拍攝、獲取。攝像頭得到取圖命令便開始采集圖像,圖像壓縮為JPEG格式輸出,攝像頭傳遞方式采用分包傳遞,每傳遞一個(gè)數(shù)據(jù)包,在得到確認(rèn)命令之后,再傳遞下一個(gè)包,直到圖像傳輸完成。數(shù)據(jù)傳輸相關(guān)指令與攝像頭建立了同步連接,可設(shè)置圖像的大小,獲取圖像,并保存。 串口攝像頭拍攝流程圖如圖1所示。
圖1 串口攝像頭拍攝流程
串口攝像頭得到的數(shù)據(jù)中FF D8為圖片開始標(biāo)識(shí),F(xiàn)F D9為圖片結(jié)束標(biāo)識(shí),中間部分為標(biāo)準(zhǔn)JPEG文件數(shù)據(jù)。JPEG文件數(shù)據(jù)由頭文件和圖像數(shù)據(jù)兩大部分組成,而頭文件包含了圖像大小,采樣因子,量化表,Huffman表等重要信息。下面對(duì)JPEG 原理進(jìn)行詳細(xì)分析。
3.JPEG 原理詳細(xì)分析
3.1 色彩空間
人類視覺特性,通常會(huì)將RGB 空間表變換到其他色彩空間中。計(jì)算機(jī)顯示器的色彩空間是YCrCb。
YCrCb與RGB空間之間的轉(zhuǎn)換公式:
(1)
色彩空間是圖像采樣中的問題,不在數(shù)據(jù)壓縮部分。
圖2 JPEG文件數(shù)據(jù)壓縮流程
3.2 離散余弦變換(DCT)
DCT變換是將采集數(shù)據(jù)信息從色彩空間域轉(zhuǎn)換到頻率域,可將像素塊能量集中到位于矩陣左上角低頻域的低頻直流系數(shù),而變換后矩陣右下角高頻系數(shù)系數(shù)趨于0[2].DCT變換將信息能量集中,減少了表示圖像的數(shù)據(jù)量,壓縮了數(shù)據(jù)冗余,進(jìn)而減少了運(yùn)算時(shí)間。
DCT變換的公式為:
(2)
f(i,j)經(jīng)DCT變換之后,F(xiàn)(0,0) 是直流系數(shù),其他為交流系數(shù)。
3.3 量化
量化的算法描述是把頻域上各個(gè)元素,除以對(duì)應(yīng)該元素的相應(yīng)常數(shù),得到的結(jié)果再四舍五入取最接近的整數(shù)。
量化實(shí)質(zhì)是對(duì)DCT系數(shù)的一種優(yōu)化,利用人眼對(duì)高頻信息不敏感的特點(diǎn)來簡(jiǎn)化數(shù)據(jù)。量化在保證一定圖像質(zhì)量前提下,丟棄了圖像中對(duì)視覺效果影響不大的數(shù)據(jù)信息。量化的多對(duì)一映射,使得DCT編碼信息損失。量化是JPEG算法過程中主要的有損運(yùn)算,是圖像質(zhì)量下降最主要的原因。
3.4 “Z”字形排列掃描
量化后,為了減少儲(chǔ)存空間,可將低頻部份零值放在一起,這樣就用到了斜向掃描(Zigzag scan)。“Z”字掃描是對(duì)8*8數(shù)據(jù)塊[3]沿著空間頻率大小增加的方向進(jìn)行重新排列,使許多的零可以被串接在一起。
3.5 直流系數(shù)(DC)用差分脈沖編碼調(diào)制((DPCM)編碼
DPCM是一種預(yù)測(cè)編碼,直流系數(shù)即每個(gè)8*8塊圖進(jìn)行DCT運(yùn)算后的第(0,0)個(gè)元素。JPEG從0開始對(duì)DC編碼,定義DC(0)=0,當(dāng)前圖塊DC值減去前一個(gè)圖塊DC值等到差值,運(yùn)用DPCM技術(shù)進(jìn)行編碼。
3.6 交流系數(shù)(AC)用行程長(zhǎng)度編碼(RLE)編碼
因AC系數(shù)中有多個(gè)0值,且多數(shù)0是連續(xù)的,運(yùn)用RLE進(jìn)行編碼。即JPEG將連續(xù)0的個(gè)數(shù)放置在第一字節(jié)高四位,將非0數(shù)的位數(shù)放置在第一字節(jié)后四位,將AC系數(shù)的數(shù)值放置在后面的第二字節(jié)。行程編碼是連續(xù)且精確的編碼,一位錯(cuò)誤符號(hào)將影響整個(gè)編碼序列,且無法還原回原始的數(shù)據(jù)。
3.7 熵編碼
JPEG技術(shù)運(yùn)用的熵編碼是Huffman編碼,這是一種變長(zhǎng)編碼,將出現(xiàn)概率高的符號(hào)分配較少碼字,出現(xiàn)概率低的符號(hào)則分配較長(zhǎng)的碼字。Huffman編碼表有亮度信號(hào)的DC,AC表,色度信號(hào)的DC,AC表共四張表。這四張表可以事先進(jìn)行定義。
編碼的最后一步是將標(biāo)記代碼和編碼數(shù)據(jù)組成一幀幀數(shù)據(jù),這便形成JPEG碼流。
4.JPEG的解碼顯示
JPEG圖像的解碼就是圖像壓縮編碼的逆過程。JPEG解碼程序從JPEG文件中讀出各種有用的壓縮數(shù)據(jù)。檢測(cè)到SOI標(biāo)記開始讀取數(shù)據(jù),可通過熵解碼對(duì)AC、DC系數(shù)的量化表進(jìn)行還原,通過標(biāo)記碼中加權(quán)函數(shù)對(duì)DCT系數(shù)進(jìn)行還原,做相應(yīng)反離散余弦變換,將圖像從頻域轉(zhuǎn)換到空間域,即可得到RGB色彩圖像。
5.結(jié)束語
JPEG算法的解析對(duì)JPEG圖片優(yōu)化分析有重要作用,能有效提高圖片壓縮比,能有效的提高圖片質(zhì)量,改變圖片大小,更便于傳遞,也對(duì)系統(tǒng)后續(xù)圖像處理打下了堅(jiān)實(shí)基礎(chǔ)。
參考文獻(xiàn)
[1]高國(guó)芳.數(shù)字圖像壓縮處理技術(shù)[J].重慶科技學(xué)院學(xué)報(bào):自然科學(xué)版,2006,8(2):93-95.
[2]朱秀昌,劉峰,胡棟.數(shù)字圖像處理與圖像通信[M].北京:北京郵電大學(xué)出版社,2002.
[3]張旭東,盧國(guó)棟,馮健.圖像編碼基礎(chǔ)和小波壓縮技術(shù)——原理、算法和標(biāo)準(zhǔn)[M].清華大學(xué)出版社,2004:56-88.