• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于S3C6410的JPEG圖像編碼與解碼的研究與實現(xiàn)

      2019-01-08 08:37:44藍(lán)麗金江勇捷

      藍(lán)麗金 江勇捷

      摘要:為了提高圖片的傳輸速度和質(zhì)量,需對圖片信息先壓縮后傳輸,從而數(shù)據(jù)的儲存減少,傳輸速度提高,傳輸時間縮短,傳輸質(zhì)量大大提高。本文采用ARM作為主控芯片充分利用了它的硬件資源和軟件資源,實現(xiàn)圖像對圖像的編碼和解碼過程。本研究根據(jù)要求設(shè)計了一套實驗樣機,最后的測試結(jié)果表明,該方案設(shè)計基本合理,具有一定的可行性。實驗調(diào)試效果不錯,基本能滿足設(shè)計要求,且經(jīng)過處理過后的圖像能清晰的顯示。

      關(guān)鍵詞:JPEG;圖像壓縮;圖像編碼;圖像解碼

      中圖分類號:TP302 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2019)10-0105-02

      0 引言

      隨著多媒體技術(shù)的高速發(fā)展,靜態(tài)圖像的應(yīng)用越來越廣泛,圖像的存儲和圖像的傳輸是靜態(tài)圖像應(yīng)用的兩個重要方面;但根據(jù)現(xiàn)實應(yīng)用情況來看,靜態(tài)圖像的存儲過程中占用了我們越來越多的存儲空間[1]。因此,對靜態(tài)圖像的壓縮成為了一個研究熱點。

      由于圖像文件傳輸占用大量帶寬,同時圖像文件存儲也占用了大量內(nèi)存空間,故近年來,研究人員對圖像壓縮技術(shù)越來越重視,而大部分信息行業(yè)依賴于圖像壓縮技術(shù)來解決圖像傳輸占用大量帶寬和浪費大量內(nèi)存空間的問題,這就進(jìn)一步推動了圖像壓縮技術(shù)的發(fā)展。有了圖像壓縮技術(shù),人們不再因移動存儲設(shè)容量不足而無法拷貝圖像等資料的困擾。此外,很多新的圖像處理技術(shù)也隨著數(shù)字化媒體技術(shù)的發(fā)展而逐步優(yōu)化,如圖像的建檔和遠(yuǎn)程診斷以及通信系統(tǒng)等應(yīng)用場合。本文采用JPEG標(biāo)準(zhǔn)對圖像進(jìn)行編、解碼的研究。圖像的解碼是編碼的逆過程,由于本文是對已壓縮的JPEG圖像進(jìn)行再次壓縮(有損壓縮),因此,只需要先熵解碼,反量化,然后進(jìn)行新的表量化,刪除了冗余圖像數(shù)據(jù),并再編碼,省去了DCT和IDCT、顏色轉(zhuǎn)換,使得讓轉(zhuǎn)換速度大大提高。

      1 系統(tǒng)硬件組成

      Tiny6410是一款以ARM11作為主處理器的核心控制器,該CPU設(shè)計是基于ARM1176JZF-S核,大量的多媒體處理單元集成在內(nèi)部,支持多種格式的視頻文件硬件編碼和解碼,可在LCD和TV端顯示;它同時帶有3D圖形加速器,以實現(xiàn)加速渲染功能,它支持2D圖形圖像的平滑縮放、翻轉(zhuǎn)等動作。它集成了128M DDR RAM,256M/1GB SLC Nand Flash存儲器。本文的圖片獲取采用天敏mini眼攝像頭,ARM采用Linux系統(tǒng),圖形界面使用QT。

      2 圖像解碼

      2.1 讀入圖像的標(biāo)志信息

      根據(jù)JPEG專家組定義的JFIF交換格式,JPEG文件的組成有8個部分[2]:圖像開始SOI標(biāo)記、APP0標(biāo)記、APPn標(biāo)記(其中n=1~15任選)、一個或者多個量化表DQT、幀圖像開始SOF0、一個或者多個霍夫曼表DHT、掃描開始SOS、壓縮圖像數(shù)據(jù)、圖像結(jié)束EOI。通過這些標(biāo)志,把要解碼的文件的相關(guān)信息都讀出來,做好解碼工作的準(zhǔn)備。

      不同的的變量結(jié)構(gòu)體首先被定義出來,該變量結(jié)構(gòu)體對應(yīng)各個標(biāo)記,用來存儲標(biāo)記內(nèi)表示的信息。其中有以下幾項信息是比較重要的,即圖像長寬、水平/垂直采樣因子、哈夫曼表和多個量化表等多項信息。(1)根據(jù)標(biāo)志位讀入圖像信息;(2)確定字的高低位;(3)掃描并讀出出哈夫曼表;(4)通過哈夫曼表建立哈夫曼樹。

      2.2 熵解碼

      由于8*8數(shù)據(jù)塊是JPEG圖片格式的一般結(jié)構(gòu),圖像數(shù)據(jù)是存儲信息的單位是位,同時,內(nèi)部數(shù)據(jù)實際是在編碼過程中實現(xiàn)時域到頻域的變換,從而得到結(jié)果。所以,1個直流分量與63個交流分量構(gòu)成了每個單元顏色分量。而查找哈夫曼樹的思路其實就是解碼的步驟。

      各個顏色分量所相應(yīng)的直流和交流分量使用的哈夫曼樹編號是通過先獲取標(biāo)記段SOS中的各個顏色分量的信息而獲取的,如表1所示,為各個顏色分量對應(yīng)的編號。

      以下為解析一個顏色分量單元的步驟:

      (1)從需要的顏色分量單元數(shù)據(jù)流的開頭開始一位一位的讀取,然后再查直流哈夫曼樹,直到該分量直流哈夫曼樹的某個碼字與讀入的編碼進(jìn)行比較而一致時獲得該碼字對應(yīng)的權(quán)值。通過8個位的位數(shù)來表示權(quán)值直流分量數(shù)值,這也是作為接下來所讀入的解碼位數(shù)。

      (2)再繼續(xù)的一位位的讀入數(shù)據(jù),直到該分量交流哈夫曼樹的某個碼字(葉子結(jié)點)與讀入的編碼一致,然后用交流哈夫曼樹取得該碼字的權(quán)值。權(quán)值的低4位表示該交流分量數(shù)值的二進(jìn)制位數(shù),高4位表示當(dāng)前數(shù)值前面有多少個連續(xù)的零,因此,第低4位就是接下來要讀入的位數(shù)。

      (3)連續(xù)不斷重復(fù)以上第2個步驟,直到滿足兩個交流分量數(shù)據(jù)結(jié)束條件其中一個即可,兩個結(jié)束條件為:

      第一,當(dāng)讀入碼字的權(quán)值為零時表示接下來的交流分量全部為零;

      第二,已經(jīng)讀入63個交流分量。

      2.3 直流系數(shù)的差分解碼

      把所有單元的顏色分量分別按Y分量、Cr分量、Cb分量進(jìn)行分類。每種分量內(nèi),兩個相鄰的顏色分量的直流變量的編碼方式為差分方式,意味著,熵解碼出來的直流變量數(shù)值只是當(dāng)前顏色分量單元的相鄰兩個單元的差值。所以當(dāng)前得到的變量值需要加上他們的差分變量[3]進(jìn)行校正,即如公式(1)所示。

      2.4 反量化

      從獲取的JPEG的文件信息中,在標(biāo)記段SOF中的信息字段可以查出亮度和色度各自使用不同的量化表。

      圖像的所有圖片數(shù)據(jù)都要進(jìn)行反量化,反量化的過程相對比較簡單,只需要對8*8的顏色分量單元里的64個值一一對應(yīng)的乘以所對應(yīng)的量化表內(nèi)相同位置的值即可。

      3 圖像編碼

      3.1 量化

      由于人眼視覺特性,JPEG針對此特性設(shè)計了相應(yīng)的量化表。量化對于前面得到的64個空間頻率振幅值按比例縮小,并取四舍五入的整數(shù)值的處理過程稱為量化。JPEG標(biāo)準(zhǔn)中推薦的量化表[5]如表2所示。共有64個元素,按照從上到下,從左到右的順序與FDCT變換后的幅值對應(yīng),每一元素記為Q(u,v),u和v對應(yīng)行和列,量化公式[4]為式(2):

      本設(shè)計采用有損壓縮,亮度量化表采用Q=100,色彩量化表Q=50。這樣,圖像看起來就跟灰度圖像差不多,把色度都過濾掉。大大壓縮了圖片。

      3.2 熵編碼

      熵編碼也可以說是哈夫曼編碼,其編碼步驟是重復(fù)使用的數(shù)據(jù)采取較短的代碼代替,較長的代碼代替較少使用的數(shù)據(jù),每個數(shù)據(jù)的代碼各不相同。由于這些代碼都是二進(jìn)制碼,同時代碼的長度是可變的,所以就實現(xiàn)了代碼壓縮的目的[5]。

      以下為具體的哈夫曼編碼步驟:

      第一步,每個符號出現(xiàn)頻率首先被統(tǒng)計出來;

      第二步,按從小到大的順序排列上述得到的從左到右的頻率;

      第三步, 每一次選出最小的兩個值就是二叉樹的兩個葉子節(jié)點,這就是它們的根節(jié)點,該節(jié)點不再參與比較,而新的根節(jié)點參與比較。

      (4)重復(fù)(3),直到最后得到和為1的根節(jié)點。

      產(chǎn)生哈夫曼編碼需要對原始數(shù)據(jù)掃描兩遍。第一遍掃描要精確地統(tǒng)計出原始數(shù)據(jù)中每個值出現(xiàn)的頻率,第二遍是建立哈夫曼樹并進(jìn)行編碼。需要建立二叉樹并遍歷二叉樹生成編碼,因此數(shù)據(jù)壓縮和還原速度都較慢,但簡單有效,因而得到廣泛應(yīng)用。

      4 實驗測試及結(jié)果分析

      圖1中左邊為經(jīng)過解碼之后再編碼的的圖像,右邊為攝像頭直接獲取的圖片??梢詮膱D片看出,經(jīng)過處理后的圖像色彩已經(jīng)失真的,是由于本設(shè)計采用的是有損壓縮,而且為了達(dá)到更大的壓縮比,把原始圖像里面的色度給剔除。

      圖2為處理前后的圖片的大小,abc.jpg為處理后的圖像,bac.jpg為原始圖像??梢钥闯?,把原始圖像從19.3K壓縮到4.7K左右。剔除色彩后,可以再次壓縮4倍。這使得網(wǎng)絡(luò)傳輸?shù)乃俣却蟠筇岣吡恕?/p>

      參考文獻(xiàn)

      [1] 陳雪松,王海巍.JPEG壓縮編碼算法應(yīng)用及發(fā)展前景研究[J].計算機應(yīng)用與數(shù)字工程,2009,1:57-90.

      [2] 許剛,廖斌,李承毅.JPEG圖象文件格式分析[J].計算機系統(tǒng)應(yīng)用,1998(10):37-39.

      [3] 劉方敏,等.JPEG2000圖像壓縮過程廈原理概述[J].計算機輔助設(shè)計與圖形學(xué)報,2002:3-6.

      [4] 吳樂南.數(shù)據(jù)壓縮[M].電子工業(yè)出版社,2005.

      [5] 嚴(yán)劍.Huffman算法及其在數(shù)據(jù)壓縮中的應(yīng)用[J].計算機與現(xiàn)代化,1996(48):15-20.

      万年县| 应用必备| 长沙县| 雷波县| 始兴县| 淮南市| 天津市| 湖北省| 滨海县| 达尔| 岑溪市| 天长市| 毕节市| 张家港市| 万年县| 玉山县| 平远县| 扎鲁特旗| 无为县| 巴林左旗| 南皮县| 光泽县| 丘北县| 玉屏| 烟台市| 新邵县| 儋州市| 固镇县| 泸溪县| 天全县| 福贡县| 丽水市| 白玉县| 新竹县| 渭南市| 台北县| 山阴县| 贡嘎县| 登封市| 射洪县| 卓资县|