999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Matlab文本文件哈夫曼編解碼仿真

2013-04-12 00:00:00王向鴻
現代電子技術 2013年20期

摘 要: 根據當前數據壓縮技術的現狀,論述了Huffman可變長壓縮的編解碼方法。為了驗證Huffman編解碼的具體過程和特點,采用Matlab軟件編程仿真的方法,將優先隊列轉成二叉樹并建立編碼和解碼的字典表。對一隨機英文文本文件進行了Huffman編解碼仿真,得到了各個字母的概率、碼字、平均信息量、平均長度、冗余度以及編碼解碼序列輸出,具有明確的壓縮特點。

關鍵詞: 數據壓縮; Huffman編解碼; Matlab; 二叉樹

中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2013)20?0031?02

根據數據的完整度,數據壓縮技術可分為無損壓縮和有損壓縮兩大類。無損壓縮利用數據的統計冗余進行壓縮,可完全恢復原始數據而無任何失真,但壓縮率受到數據統計冗余度的限制,一般為2∶1到5∶1。有損壓縮方法利用了人類對數據中的某些頻率成分不敏感的特性,允許壓縮過程中損失部分對理解原始數據影響較小的信息,以得到較大的壓縮比。實際應用中常用的壓縮方法有脈沖編碼調制、預測編碼、變換編碼、統計編碼等,Huffman編碼是統計編碼中的一種無損壓縮方法[1?2]。

1 Huffman編碼標準

Huffman編碼法是一種無損壓縮方法,是可變字長編碼的一種。在可變字長編碼中,對出現概率大的信號編以字長較短的碼字,對出現概率小的信號編以字長較長的碼字。這種方法完全依據字符出現概率來給不同的信號分配碼字,構造出平均長度最短的編碼,并使編碼的碼字是可辨識的,能夠避免譯碼的二義性或多義性,一般稱之為Huffman編碼[3?4]。Huffman編碼方法較為實用,是消除編碼冗余最常用的技術,一般用來壓縮文本和程序文件。當對信源符號逐個編碼時,能夠給出最短的碼字,編碼和解碼時間較短。信號可以是ASCII碼,也可以是其他形式的信號,如灰度值等。具體實現時,使用一張特殊的編碼表將源字符進行編碼,根據每一個源字符出現的估算概率而建立。

2 Huffman編解碼的過程

產生Huffman編碼要對原始數據掃描兩遍,第一遍掃描要精確地統計出原始數據中每個值出現的頻率,第二遍是建立Huffman樹,并進行編碼。Huffman編碼是最優編碼,效率很高,主要涉及到二叉樹并遍歷二叉樹的算法。

2.1 Huffman編碼的過程

(1)將消息按照出現概率大小從大到小排列,記為:[p1≥p2≥…≥pm-1≥pm]。

(2)給最小的概率[pm]賦予符號1,倒數第二小的概率[pm-1]賦予符號0。

(3)計算聯合概率[pi=pm+pm-1],將未處理的m-2個概率與[pi]一起重新排序。

(4)重復步驟(1)~步驟(3),直到所有的概率都被賦予了一個符號為止[1]。

2.2 Huffman樹的構造與實現

要構造Huffman編碼,需要構造Huffman樹,即最優樹。Huffman算法過程如下:

(1)根據給定的n個概率(或頻率)構造一個集合[F=f1,f2,…,fn],同時這n個值對應樹T的n個結點,置[i=n+1]。

(2)在集合F中選擇兩個最小的值求和作為[fi]加入集合F中;在樹T中構造一結點,使得該結點是兩最小值對應結點的父結點。

(3)在集合F中刪除兩最小值,并置[i=i+1]。

(4)重復(2)和(3),直到[i=2n-1]或集合F只有一個元素為止。這樣形成的一棵樹就是Huffman樹(最優樹)。

對一個經過Huffman編碼的文件進行解碼,首先構造相應的Huffman樹,然后按位從文件讀入數據流,查找Huffman樹,即可得到相應編碼所對應的字符,從而解碼文件。

2.3 Matlab仿真算法

在Matlab中實現Huffman算法,可用一個矩陣來表示Huffman樹,該矩陣的含義如表1所示。

表1 Huffman算法數據結構

3 文本文件的Huffman編解碼仿真

ASCII碼是用8位表示一個字符,方法簡單易于理解,是常用的計算機字符表示方法。在信息傳輸領域,字符出現的頻率不同,若用傳統方法表示數據,則冗余度大,如果用Huffman方法表示字符,頻率出現高的字符用較短的編碼表示,頻率出現低的字符用較長的編碼表示,則可以使得數據量減少。在具體的英文文本中,對于各個字母出現概率的準確估算,就可以大幅度提高無損壓縮的比例。Matlab可以應用于科學計算、控制系統設計與分析、數字信號處理、數字圖像處理、通信系統仿真與設計等領域,專門以矩陣的形式處理數據,功能強大[5?6]。

采用Matlab軟件,對一個輸入的文本進行Huffman編解碼編程仿真。輸入文本字符為“ABCADDDEEFFHHACCAAGGGCCCACCCAAABBBAACCKKKWWWCBBBLLYY”,運行結果如下:

4 結 語

文本文件的Huffman壓縮是靜態Huffman編碼,使用一棵在壓縮之前就建好的編碼樹,它是根據可能的字符出現的概率表來生成的。采用Huffman編碼要注意錯誤傳播的產生,原因是沒有錯誤保護功能,而且很難隨意查找或調用壓縮文件中的內容。

參考文獻

[1] 章毓晉.圖像工程(上冊):圖像分析和處理[M].北京:清華大學出版社,2002.

[2] 徐飛,施曉紅.Matlab應用圖像處理[M].西安:西安電子科技大學出版社,2003.

[3] 陳天華.數字圖像處理[M].北京:清華大學出版社,2007.

[4] 高成.Matlab圖像處理與應用[M].北京:國防工業出版社,2007.

[5] 陳杰.Mmatlab寶典[M].北京:電子工業出版社,2008.

[6] 張威.Matlab基礎與編程入門[M].西安:西安電子科技大學出版社,2004.

主站蜘蛛池模板: 99精品影院| 国产靠逼视频| 亚洲国产精品人久久电影| 欧美另类图片视频无弹跳第一页| 免费不卡视频| 国内精品视频在线| 制服丝袜一区二区三区在线| 欧美成人午夜视频| 在线看片国产| 一级不卡毛片| 欧美在线综合视频| 9久久伊人精品综合| 亚洲天堂网站在线| www.亚洲国产| 久久久噜噜噜久久中文字幕色伊伊| 又大又硬又爽免费视频| 久久久亚洲色| 久久毛片基地| 精品99在线观看| 亚洲中文字幕国产av| 91福利免费| 亚洲三级视频在线观看| 99久久精品久久久久久婷婷| 青青网在线国产| 国产xx在线观看| 色悠久久综合| 亚洲人成网站色7799在线播放| 国产97视频在线| 日韩欧美91| 日韩成人免费网站| 国产97公开成人免费视频| 久久婷婷色综合老司机| 凹凸精品免费精品视频| 久久这里只有精品23| 午夜免费小视频| 亚洲第一区在线| 国产精品亚洲一区二区三区在线观看| 免费观看男人免费桶女人视频| 一本综合久久| 日本精品视频| 少妇高潮惨叫久久久久久| 精品三级在线| 亚洲成a人在线播放www| 国产男女免费视频| 激情成人综合网| 亚洲啪啪网| a级毛片免费网站| 影音先锋亚洲无码| 亚洲国产精品一区二区高清无码久久| 国产精品冒白浆免费视频| 亚洲欧美不卡| 成人福利在线视频免费观看| 91精品啪在线观看国产91九色| 亚洲性视频网站| 欧美天堂久久| 一本色道久久88亚洲综合| 国产成人精品一区二区| 首页亚洲国产丝袜长腿综合| 亚洲中文字幕久久精品无码一区| 日韩免费成人| 日韩精品一区二区三区大桥未久| 女人一级毛片| 玖玖精品在线| 亚洲av色吊丝无码| 无码内射在线| 亚洲色成人www在线观看| 免费看一级毛片波多结衣| 国产精品v欧美| 亚洲国产日韩在线成人蜜芽| 青青草91视频| 亚洲伊人天堂| 成人在线综合| 波多野吉衣一区二区三区av| 四虎免费视频网站| 99久久性生片| 国产精品免费入口视频| 高清色本在线www| 波多野结衣二区| 亚洲91精品视频| 97av视频在线观看| 久久亚洲AⅤ无码精品午夜麻豆| 最新日韩AV网址在线观看|