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热这里只有精品免费| 男女男精品视频| 色国产视频| 国产日韩欧美成人| 伊人久综合| 就去色综合| 精品少妇人妻av无码久久| 亚洲免费播放| 国模私拍一区二区| 久久熟女AV| 97视频免费看| 老色鬼欧美精品| 色妺妺在线视频喷水| 国产91丝袜在线观看| 91原创视频在线| 性色一区| 99中文字幕亚洲一区二区| 中文精品久久久久国产网址 | 成人午夜视频网站| 最新日韩AV网址在线观看| 欧美午夜一区| 日韩福利视频导航| 激情亚洲天堂| 日韩欧美中文字幕在线精品| 久久黄色视频影| 亚洲成年网站在线观看| 色婷婷狠狠干| 丁香六月激情综合| 69av在线| 国产高潮流白浆视频| 国国产a国产片免费麻豆| 欧美日韩午夜视频在线观看 | 国产h视频免费观看| 久久亚洲精少妇毛片午夜无码| 精品欧美日韩国产日漫一区不卡| 99re热精品视频国产免费| 亚洲精品第五页| 99久久99视频| 91口爆吞精国产对白第三集| 真实国产乱子伦视频| 色妺妺在线视频喷水| 福利一区在线| 97亚洲色综久久精品| 亚洲精品自拍区在线观看| 91视频日本| 亚洲欧美在线综合一区二区三区| 一级毛片高清| 亚洲精品国偷自产在线91正片| 在线无码私拍| 国产女人18水真多毛片18精品| 一级片一区| 国产在线精彩视频二区| 小13箩利洗澡无码视频免费网站| 国产一区二区影院| 日韩国产另类| 欧美日韩综合网| 亚洲精品中文字幕午夜| 亚洲国产一区在线观看| 欧美成a人片在线观看| 欧美日韩亚洲综合在线观看| 高清精品美女在线播放| 日本91在线| 欧美亚洲国产一区| 最新精品久久精品| 久综合日韩| 超清人妻系列无码专区| 一级福利视频| 国产三级精品三级在线观看| 中文字幕永久在线看| a天堂视频在线| 成人欧美在线观看| 狠狠亚洲婷婷综合色香| 久草热视频在线| 欧美一区二区三区不卡免费| 亚洲精品大秀视频| 欧美国产成人在线| 老司机久久99久久精品播放 | 国产日韩精品欧美一区灰| 国产不卡在线看| 亚洲AⅤ波多系列中文字幕| www.亚洲天堂|