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