国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      哈夫曼樹的存儲方法及利用數(shù)組進行數(shù)據(jù)解碼的方法

      文檔序號:7517274閱讀:791來源:國知局
      專利名稱:哈夫曼樹的存儲方法及利用數(shù)組進行數(shù)據(jù)解碼的方法
      技術領域
      本發(fā)明涉及一種數(shù)據(jù)編解碼方法,尤其涉及一種哈夫曼樹的存儲方法及利用數(shù)組進行數(shù)據(jù)解碼的方法。
      背景技術
      傳統(tǒng)的哈夫曼編碼(Huffman Coding)采用哈夫曼表格來存儲哈夫曼樹的節(jié)點信息,其中,每個節(jié)點通常具備以下三種信息回傳值(Value)、編碼(Code)和編碼長度(Code Length)。當解碼時,便可根據(jù)編碼值,從哈夫曼表格中查找到對應到的回傳值。由于每個節(jié)點包含三種信息,所以哈夫曼表格中的每一筆資料都需要三個字段來儲存,不利于節(jié)省存儲空間。

      發(fā)明內(nèi)容
      鑒于以上內(nèi)容,有必要提供一種哈夫曼樹的存儲方法,其可利用數(shù)組來存儲哈夫曼樹的節(jié)點信息。鑒于以上內(nèi)容,還有必要提供一種利用數(shù)組進行數(shù)據(jù)解碼的方法,其可利用數(shù)組來查找哈夫曼樹節(jié)點的回傳值,對數(shù)據(jù)進行解碼。一種哈夫曼樹的存儲方法,該方法包括如下步驟根據(jù)廣度優(yōu)先搜索算法,依序建立哈夫曼樹中每個節(jié)點的索引值,其中,每個節(jié)點都包含有一個回傳值;從根節(jié)點開始,根據(jù)該索引值的順序,依次讀取該哈夫曼樹中的每個節(jié)點;及將每個節(jié)點的信息分成第一部分信息和第二部分信息,存儲在一個數(shù)組中。一種利用數(shù)組進行數(shù)據(jù)解碼的方法,該數(shù)組存儲有哈夫曼樹中每個節(jié)點的信息, 每個節(jié)點的信息分為第一部分信息和第二部分信息,該方法包括如下步驟(a)獲取待解碼的比特流;(b)從哈夫曼樹中讀取第一個節(jié)點;(c)判斷該節(jié)點是否為葉子節(jié)點;(d)如果該節(jié)點不是葉子節(jié)點,則依次從該比特流中讀取一比特,根據(jù)該比特的數(shù)值確定下一個搜尋的節(jié)點,然后返回步驟(C),繼續(xù)判斷該下一個搜尋的節(jié)點是否為葉子節(jié)占.(e)如果該節(jié)點是葉子節(jié)點,則根據(jù)該節(jié)點的索引值,從該數(shù)組中查找該節(jié)點的存儲值,從該節(jié)點的存儲值中獲取該節(jié)點的第一部分信息的值,作為該節(jié)點的回傳值;(f)判斷該比特流是否讀取完畢;(g)如果該比特流沒有讀取完畢,則返回步驟(b);(h)如果該比特流讀取完畢,輸出步驟(e)中獲取的每個節(jié)點的回傳值,以完成該比特流的解碼過程。相較于現(xiàn)有技術,所述的哈夫曼樹的存儲方法及利用數(shù)組進行數(shù)據(jù)解碼的方法,其可利用數(shù)組來存儲哈夫曼樹的節(jié)點信息,當解碼時,再利用該數(shù)組來查找哈夫曼樹節(jié)點的回傳值,節(jié)省了存儲空間,提高了哈夫曼編碼的效率。


      圖1是本發(fā)明存儲模塊和解碼模塊的應用環(huán)境圖。圖2是本發(fā)明哈夫曼樹存儲方法的較佳實施例的流程圖。圖3是現(xiàn)有技術中的一個哈夫曼表格的示意圖。圖4是根據(jù)圖3中的哈夫曼表格得出的哈夫曼樹。圖5是根據(jù)圖4中的哈夫曼樹進行索引值編號的示意圖。圖6是本發(fā)明存儲每個節(jié)點信息的數(shù)據(jù)結(jié)構(gòu)示意圖。圖7是本發(fā)明利用數(shù)組進行數(shù)據(jù)解碼的方法的較佳實施例的流程圖。主要元件符號說明
      權(quán)利要求
      1.一種哈夫曼樹的存儲方法,其特征在于,該方法包括如下步驟根據(jù)廣度優(yōu)先搜索算法,依序建立哈夫曼樹中每個節(jié)點的索引值,其中,每個節(jié)點都包含有一個回傳值;從根節(jié)點開始,根據(jù)該索引值的順序,依次讀取該哈夫曼樹中的每個節(jié)點;及將每個節(jié)點的信息分成第一部分信息和第二部分信息,存儲在一個數(shù)組中。
      2.如權(quán)利要求1所述的哈夫曼樹的存儲方法,其特征在于,所述將每個節(jié)點的信息分成第一部分信息和第二部分信息,存儲在一個數(shù)組中的步驟包括將每個節(jié)點的第一部分信息的二進制數(shù)值和第二部分信息的二進制數(shù)值合并在一起;及將該合并后的二進制數(shù)值對應的十進制數(shù)值存儲在一個數(shù)組中。
      3.如權(quán)利要求2所述的哈夫曼樹的存儲方法,其特征在于,所述將每個節(jié)點的信息分成第一部分信息和第二部分信息,存儲在一個數(shù)組中的步驟包括如果目前節(jié)點為內(nèi)部節(jié)點,則目前節(jié)點第一部分信息的值為目前節(jié)點的左子節(jié)點的索引值與目前節(jié)點的索引值之差,第二部分信息的值為1 ;及如果目前節(jié)點為外部節(jié)點,則目前節(jié)點第一部分信息的值為目前節(jié)點的回傳值,第二部分信息的值為0。
      4.如權(quán)利要求2所述的哈夫曼樹的存儲方法,其特征在于,所述第一部分信息的存儲長度為7bits,所述第二部分信息的存儲長度為lbit。
      5.一種利用數(shù)組進行數(shù)據(jù)解碼的方法,其特征在于,該數(shù)組存儲有哈夫曼樹中每個節(jié)點的信息,每個節(jié)點的信息包括第一部分信息和第二部分信息,該方法包括如下步驟(a)獲取待解碼的比特流;(b)從哈夫曼樹中讀取第一個節(jié)點;(c)判斷該節(jié)點是否為葉子節(jié)點;(d)如果該節(jié)點不是葉子節(jié)點,則依次從該比特流中讀取一比特,根據(jù)該比特的數(shù)值確定下一個搜尋的節(jié)點,然后返回步驟(c),繼續(xù)判斷該下一個搜尋的節(jié)點是否為葉子節(jié)點;(e)如果該節(jié)點是葉子節(jié)點,則根據(jù)該節(jié)點的索引值,從該數(shù)組中查找該節(jié)點的存儲值,并從該節(jié)點的存儲值中獲取該節(jié)點的第一部分信息的值,作為該節(jié)點的回傳值;(f)判斷該比特流是否讀取完畢;(g)如果該比特流沒有讀取完畢,則返回步驟(b);(h)如果該比特流讀取完畢,輸出步驟(e)中獲取的每個節(jié)點的回傳值,以完成該比特流的解碼過程。
      6.如權(quán)利要求5所述的利用數(shù)組進行數(shù)據(jù)解碼的方法,其特征在于,所述數(shù)組存儲每個節(jié)點的第一部分信息和第二部分信息包括將每個節(jié)點的第一部分信息的二進制數(shù)值和第二部分信息的二進制數(shù)值合并在一起;及將該合并后的二進制數(shù)值對應的十進制數(shù)值存儲在一個數(shù)組中。
      7.如權(quán)利要求6所述的利用數(shù)組進行數(shù)據(jù)解碼的方法,其特征在于,所述數(shù)組存儲每個節(jié)點的第一部分信息和第二部分信息包括如果目前節(jié)點為內(nèi)部節(jié)點,則目前節(jié)點第一部分信息的值為目前節(jié)點的左子節(jié)點的索引值與目前節(jié)點的索引值之差,第二部分信息的值為1 ;及如果目前節(jié)點為外部節(jié)點,則目前節(jié)點第一部分信息的值為目前節(jié)點的回傳值,第二部分信息的值為0。
      8.如權(quán)利要求7所述的利用數(shù)組進行數(shù)據(jù)解碼的方法,其特征在于,所述判斷該節(jié)點是否為葉子節(jié)點的步驟包括如果該節(jié)點的第二部分信息的值為1,則判定該節(jié)點為內(nèi)部節(jié)點;及如果該節(jié)點的第二部分信息的值為0,則判定該節(jié)點為葉子節(jié)點。
      9.如權(quán)利要求7所述的利用數(shù)組進行數(shù)據(jù)解碼的方法,其特征在于,所述根據(jù)該比特的數(shù)值確定下一個搜尋的節(jié)點的步驟包括如果該比特的數(shù)值為0,則下一個搜尋的節(jié)點的索引值為(目前節(jié)點的索引值+目前節(jié)點的第一部分信息的值);及如果該比特的數(shù)值為1,則下一個搜尋的節(jié)點的索引值為(目前節(jié)點索引值+目前節(jié)點的第一部分信息的值+1)。
      10.如權(quán)利要求9所述的利用數(shù)組進行數(shù)據(jù)解碼的方法,其特征在于,所述目前節(jié)點的第一部分信息的值由以下規(guī)則確定將目前節(jié)點的存儲值對應的二進制數(shù)值右移一位,得到一個右移后的二進制數(shù)值;及將該右移后的二進制數(shù)值轉(zhuǎn)換成十進制數(shù)值即得到目前節(jié)點第一部分信息的值。
      全文摘要
      一種哈夫曼樹的存儲方法及利用數(shù)組進行數(shù)據(jù)解碼的方法,該存儲方法包括如下步驟根據(jù)廣度優(yōu)先搜索算法,依序建立哈夫曼樹中每個節(jié)點的索引值,其中,每個節(jié)點都包含有一個回傳值;從根節(jié)點開始,根據(jù)該索引值的順序,依次讀取該哈夫曼樹中的每個節(jié)點;將每個節(jié)點的信息分成第一部分信息和第二部分信息,存儲在一個數(shù)組中。利用本發(fā)明可以節(jié)省存儲空間,提高哈夫曼編碼的效率。
      文檔編號H03M7/42GK102255617SQ20101017672
      公開日2011年11月23日 申請日期2010年5月19日 優(yōu)先權(quán)日2010年5月19日
      發(fā)明者盧秋樺, 葉建發(fā), 李忠一, 簡裕峰, 蔡程豐, 鄭山川, 顏宗信 申請人:鴻富錦精密工業(yè)(深圳)有限公司, 鴻海精密工業(yè)股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1