亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        范氏哈夫曼編碼在圖像壓縮中的應(yīng)用

        2022-04-29 13:49:01宦暉
        計(jì)算機(jī)應(yīng)用文摘 2022年20期

        宦暉

        關(guān)鍵詞:圖像壓縮;哈夫曼編碼;范氏哈夫曼編碼

        1引言

        近年來,圖像壓縮技術(shù)快速發(fā)展,各種新技術(shù)得以應(yīng)用。但哈夫曼編碼作為一種傳統(tǒng)的基礎(chǔ)算法[1-2],一直在圖像壓縮技術(shù)中占有重要地位。

        哈夫曼編碼基于數(shù)據(jù)的統(tǒng)計(jì)特性,可以實(shí)現(xiàn)無損的圖像壓縮與解壓縮。范氏哈夫曼編碼是對(duì)傳統(tǒng)哈夫曼編碼的優(yōu)化改進(jìn),通過對(duì)編碼規(guī)則約定限制,能更加高效地對(duì)哈夫曼樹進(jìn)行編碼,減少編解碼過程所消耗的計(jì)算資源與存儲(chǔ)空間。

        對(duì)范氏哈夫曼編碼在圖像壓縮中的實(shí)際效果進(jìn)行驗(yàn)證分析,是本文研究的出發(fā)點(diǎn)。通過對(duì)多組24位BMP圖像文件以及不同格式的BMP圖像文件進(jìn)行壓縮與解壓縮,并對(duì)最終的壓縮效率進(jìn)行對(duì)比,以得出相關(guān)結(jié)論。

        2哈夫曼編碼

        哈夫曼編碼是基于數(shù)據(jù)源的統(tǒng)計(jì)特性建立哈夫曼樹,再進(jìn)行編碼的算法。建立哈夫曼樹是一個(gè)循環(huán)迭代的過程,每一步驟中的工作過程相同,具體過程為:編碼器獲取所有符號(hào)( Symbol)的統(tǒng)計(jì)頻率,并將所有符號(hào)放置在一個(gè)集合中:從集合中選取統(tǒng)計(jì)頻率最低的兩個(gè)符號(hào)作為節(jié)點(diǎn),并創(chuàng)建一個(gè)新的內(nèi)部節(jié)點(diǎn)且放回集合中,原來的兩個(gè)節(jié)點(diǎn)被新創(chuàng)建的節(jié)點(diǎn)代替,新創(chuàng)建節(jié)點(diǎn)的統(tǒng)計(jì)頻率為所選兩個(gè)節(jié)點(diǎn)的統(tǒng)計(jì)頻率之和:將所選的兩個(gè)節(jié)點(diǎn)與新創(chuàng)建節(jié)點(diǎn)構(gòu)成一個(gè)最小二叉樹。如此不斷地循環(huán)迭代,直到集合中只剩下一個(gè)節(jié)點(diǎn)(根節(jié)點(diǎn)),此時(shí)哈夫曼樹構(gòu)建完成。

        哈夫曼編碼壓縮后的數(shù)據(jù)量等于哈夫曼樹帶權(quán)路徑長度(Weighted Path Length,WPL)。哈夫曼樹的帶權(quán)路徑長度指的是所有節(jié)點(diǎn)的帶權(quán)路徑長度之和。n個(gè)編碼長度為Li(i=1,2,…,n)的葉節(jié)點(diǎn)的哈夫曼樹的帶權(quán)路徑長度為:

        哈夫曼樹是帶權(quán)路徑長度最小的二叉樹,是最優(yōu)二叉樹。在哈夫曼編碼表的結(jié)構(gòu)中,每一棵最小二叉樹的左右子節(jié)點(diǎn)位置是隨機(jī)的,如果將哈夫曼樹中的任意一個(gè)最小二叉樹的左右節(jié)點(diǎn)位置互換,只會(huì)導(dǎo)致某些字符的具體編碼改變,但整個(gè)哈夫曼樹的帶權(quán)路徑總長度并不會(huì)發(fā)生變化,也不會(huì)影響哈夫曼編碼的壓縮率。如果能約定規(guī)則,限制哈夫曼樹中的最小二叉樹左右節(jié)點(diǎn)位置的不確定性,則表明哈夫曼樹所需的數(shù)據(jù)量可以有效降低。另外,傳統(tǒng)的哈夫曼編碼是通過將出現(xiàn)頻率較高的符號(hào)以較短編碼,從而提高壓縮率。但該方法有兩大缺點(diǎn):首先,每一個(gè)樹節(jié)點(diǎn)都要儲(chǔ)存其父節(jié)點(diǎn)與子節(jié)點(diǎn)等相關(guān)信息,符號(hào)集合包含很多不同概率的符號(hào),其數(shù)量越多,對(duì)應(yīng)存儲(chǔ)空間將會(huì)增加越多;其次,哈夫曼樹的跟蹤和維護(hù)需要消耗非常大的計(jì)算資源。由于這兩個(gè)原因,傳統(tǒng)哈夫曼編碼在儲(chǔ)存空間以及計(jì)算效率上都需要提升、優(yōu)化。

        3范氏哈夫曼編碼

        范氏哈夫曼編碼(Canonical Huffman Code)是施瓦茲(SCHWARTZ E S)提出的[4],對(duì)傳統(tǒng)哈夫曼編碼進(jìn)行優(yōu)化的算法,通過對(duì)符號(hào)和編碼的下列三個(gè)數(shù)字序列屬性進(jìn)行編碼規(guī)則約定限制,從而可以更加高效地對(duì)哈夫曼樹進(jìn)行編碼。

        范氏哈夫曼編碼約束規(guī)則如下。

        (1)具有相同哈夫曼編碼長度的符號(hào)編碼是連續(xù)二進(jìn)制整數(shù),對(duì)應(yīng)原碼的值越小,則對(duì)應(yīng)哈夫曼編碼也越小。

        (2)編碼長度為i的第一個(gè)符號(hào)的編碼H(i)與長度為i-l的最后~個(gè)符號(hào)的編碼H(i-l)的關(guān)系滿足以下公式:

        該約束公式的含義是,長度為i第一個(gè)符號(hào)的編碼,是將長度為i-l的最后一個(gè)符號(hào)的編碼進(jìn)行左移一位并補(bǔ)零。

        (3)哈夫曼編碼長度最小的第一個(gè)符號(hào)從0開始。第一個(gè)符號(hào)的編碼方式是依照符號(hào)的編碼長度分配相同長度的“0”值。

        根據(jù)以上三個(gè)約束規(guī)則,可按順序?yàn)榇_定了長度的每個(gè)符號(hào)分配唯一可譯碼(unique decodable code)。如此,就把存儲(chǔ)整個(gè)哈夫曼樹編碼表的任務(wù)簡化為存儲(chǔ)每個(gè)符號(hào)編碼長度的任務(wù)。

        范氏霍夫曼編碼要求相同長度編碼必須是連續(xù)的[5]:為盡可能減小儲(chǔ)存空間,編碼長度為i的第一個(gè)符號(hào)可以從編碼長度為i-1的最后一個(gè)符號(hào)所獲得。另外,最小編碼長度的第一個(gè)編碼必須從0開始。范氏哈夫曼編碼通過其約束規(guī)則,可以根據(jù)每個(gè)符號(hào)的長度,按照范氏哈夫曼編碼的規(guī)則重構(gòu)出整個(gè)編碼表。

        在圖像數(shù)據(jù)的壓縮過程中,應(yīng)實(shí)現(xiàn)兩方面的最小化,即存儲(chǔ)編碼表和哈夫曼樹的存儲(chǔ)空間最小化:編解碼過程所消耗的計(jì)算資源的最小化。范式哈夫曼編碼技術(shù)能同時(shí)滿足這兩方面的需求,比傳統(tǒng)的哈夫曼編碼技術(shù)更加有效[6]。

        4對(duì)位圖文件進(jìn)行壓縮、解壓縮

        在本文研究中,以范氏哈夫曼編碼取代傳統(tǒng)哈夫曼編碼,對(duì)BMP圖像文件進(jìn)行壓縮與解壓縮,并觀察實(shí)際的壓縮效率。

        BMP是位圖(Bit Map)的簡稱,是未實(shí)行壓縮處理的原始圖像,存儲(chǔ)格式是位映射。在Windows操作系統(tǒng)自帶的畫圖軟件中可按單色、16色、256色、24位四種格式保存BMP圖像。BMP圖像主要有三個(gè)特點(diǎn):一是格式簡單:二是圖像信息量豐富:三是存儲(chǔ)時(shí)所占用的內(nèi)存較大。BMP圖像由四部分組成,如表1所列。

        傳統(tǒng)哈夫曼編碼必須保存哈夫曼樹,本文研究中采用靜態(tài)數(shù)組實(shí)現(xiàn)哈夫曼樹的構(gòu)建,哈夫曼樹節(jié)點(diǎn)包括權(quán)值、父節(jié)點(diǎn)、左右子節(jié)點(diǎn),數(shù)據(jù)結(jié)構(gòu)如下所示:

        與傳統(tǒng)哈夫曼編碼相比,范式哈夫曼編碼節(jié)省了保存哈夫曼樹本身所需的數(shù)據(jù)量。

        本文研究中的圖像壓縮解壓縮程序采用C++語言編寫,在CPU為Intel Core i5-102IOU,RAM為16CB的個(gè)人計(jì)算機(jī)上運(yùn)行。

        該程序的流程圖如圖1所示。

        以24位位圖為樣本,對(duì)多組24位位圖進(jìn)行測試,并選取三組不同壓縮效果的測試結(jié)果進(jìn)行對(duì)比,如表2所列。

        對(duì)于不同內(nèi)容的圖像,壓縮率會(huì)根據(jù)內(nèi)容而變化,這與圖像數(shù)據(jù)的統(tǒng)計(jì)特性有關(guān)[7]。統(tǒng)計(jì)上冗余信息較多的圖像,壓縮率較高。

        在本文研究中,針對(duì)同一幅圖像,轉(zhuǎn)換為四種BMP格式,分別為單色位圖、16色位圖、256色位圖、24位位圖,然后進(jìn)行壓縮與解壓測試,相應(yīng)的測試數(shù)據(jù)如表3所列。

        對(duì)同一幅圖像的不同位圖格式的壓縮率進(jìn)行對(duì)比,程序?qū)紊粓D的壓縮效果最好,對(duì)16色位圖的壓縮效果也較為理想,對(duì)256色位圖也有較高的壓縮率,而對(duì)24位位圖的壓縮效果最差。

        就壓縮耗時(shí)與解壓耗時(shí)而言,對(duì)于字節(jié)長度較小的文件,壓縮耗時(shí)比解壓耗時(shí)長;對(duì)于字節(jié)長度較大的文件,壓縮耗時(shí)比解壓耗時(shí)短。

        5結(jié)束語

        本文研究使用范式哈夫曼編碼對(duì)BMP圖像進(jìn)行壓縮處理,并得到相關(guān)測試數(shù)據(jù)。在相關(guān)程序的哈夫曼編碼過程中,判斷圖像是否全部出現(xiàn)256個(gè)顏色像素點(diǎn)后,僅讓有權(quán)值的像素點(diǎn)作為哈夫曼樹的葉結(jié)點(diǎn),未出現(xiàn)的像素點(diǎn)不涉及哈夫曼樹的構(gòu)建,由此可提高哈夫曼編碼的壓縮效率。由程序測試結(jié)果可知,屬于無損壓縮算法的范氏哈夫曼編碼的確能夠很好地?zé)o失真還原圖像壓縮文件。

        在使用范氏哈夫曼編碼進(jìn)行圖像壓縮的過程中,硬件平臺(tái)對(duì)于軟件算法上也有影響,可以針對(duì)不同硬件平臺(tái)的數(shù)據(jù)吞吐量和緩存資源來改進(jìn)和優(yōu)化算法。

        区一区二区三免费观看视频| 日韩精品人妻系列无码专区免费| 亚洲精品中文字幕无乱码麻豆| 无码91 亚洲| 国产日本精品一区二区免费| 亚洲熟妇av一区二区三区| 无码日韩精品一区二区三区免费| 人妻丰满熟妇av无码区hd| 91青青草免费在线视频| 久久精品av在线观看| 琪琪的色原网站| 揄拍成人国产精品视频| 中文字幕人妻一区色偷久久| 免费国产在线精品一区二区三区免| 亚洲啪av永久无码精品放毛片| 国产福利午夜波多野结衣| 91久久精品国产性色tv| 老熟女富婆激情刺激对白| 高清不卡一区二区三区| 四虎在线播放免费永久视频| 亚洲区一区二区三区四| 色偷偷久久久精品亚洲| 国产av人人夜夜澡人人爽麻豆| 亚洲成年国产一区二区| 亚洲av无码专区在线观看下载| 国产精品亚洲综合一区在线观看| 中国人妻沙发上喷白将av| 国产亚洲精品在线视频| 777精品久无码人妻蜜桃| 国产精品公开免费视频| 免费看男女啪啪的视频网站| 在厨房拨开内裤进入毛片| 亚洲精品无码成人片久久不卡 | 在线观看av国产自拍| 一个人午夜观看在线中文字幕| 成年性生交大片免费看| 中文无码精品一区二区三区| 亚洲国产av自拍精选| 天堂一区二区三区在线观看视频| 国产成年女人特黄特色毛片免| 欧美激情国产一区在线不卡|