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及在线观看| 波多野结衣一级毛片| 免费一级毛片在线观看| 精品国产美女福到在线不卡f| 毛片网站免费在线观看| 欧美亚洲香蕉| 亚洲久悠悠色悠在线播放| 中文字幕亚洲精品2页| 精品91视频| 亚洲欧美在线看片AI| 996免费视频国产在线播放| 72种姿势欧美久久久久大黄蕉| 片在线无码观看| 欧洲亚洲欧美国产日本高清| 亚洲性网站| 国产一区二区精品福利| 亚洲高清免费在线观看| 波多野结衣一区二区三区四区| 欧美日韩一区二区三| 精品国产福利在线| 人妻丰满熟妇αv无码| 国产色爱av资源综合区| 欧美人在线一区二区三区| 欧美午夜视频在线| 国产精品yjizz视频网一二区| 日韩视频精品在线| 99无码熟妇丰满人妻啪啪| 亚洲香蕉久久| 国产日本视频91| 亚洲熟妇AV日韩熟妇在线| 欧美日韩国产在线播放| 国产精品偷伦视频免费观看国产| 亚洲AⅤ永久无码精品毛片| 亚洲AV无码精品无码久久蜜桃| 国产精品久久久久久久伊一| 91视频国产高清| 欧美成人免费一区在线播放| 亚洲色成人www在线观看| 久久久精品国产亚洲AV日韩| 欧美爱爱网| 区国产精品搜索视频| 欧美视频免费一区二区三区| 免费无码网站| 午夜毛片福利| 色婷婷在线播放| 亚洲日韩久久综合中文字幕| 手机在线免费毛片| 国产91精选在线观看| 国产免费网址| 国产免费福利网站| 国产精品99r8在线观看| 日韩小视频在线播放| 狠狠色狠狠色综合久久第一次| 免费国产高清精品一区在线| 国产办公室秘书无码精品| 98超碰在线观看| 欧美日本中文| 久久综合九九亚洲一区| 麻豆国产精品一二三在线观看| 欧美日韩在线国产| 国产正在播放| 国产一级毛片yw| 免费一极毛片| 亚洲欧美精品一中文字幕| 伊人久久大线影院首页| 日韩A∨精品日韩精品无码| 色偷偷一区二区三区| 日韩精品资源| 无码网站免费观看| 99热这里只有精品久久免费| 日韩欧美中文| 特级毛片免费视频| 不卡无码网|