專利名稱:一種針對二進(jìn)制數(shù)據(jù)的多字符組合無損數(shù)據(jù)壓縮方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)據(jù)處理技術(shù)領(lǐng)域,涉及一種針對二進(jìn)制數(shù)據(jù)的多字符組合無損數(shù)據(jù) 壓縮方法。
背景技術(shù):
信息技術(shù)的飛速發(fā)展,不斷影響著人類的日常生活和工作,改變著人們的活動方 式。目前,人類社會已經(jīng)進(jìn)入了信息時代。人們每天都可以通過各種渠道(如PDA、網(wǎng)絡(luò)、電 視、廣播等)獲得大量的信息,這些信息給我們的生活增加了很多色彩。然而,龐大的信息數(shù)據(jù)量一方面帶來數(shù)據(jù)存儲和傳輸?shù)睦щy,另一方面出于通信 帶寬和通信傳輸速度的限制,使得數(shù)據(jù)不經(jīng)過壓縮處理而直接傳輸所付出的代價極大。雖 然存儲器硬件容量在不斷增加,在一定程度上緩解了數(shù)據(jù)存儲的需求,但現(xiàn)階段解決海量 數(shù)據(jù)存儲和傳輸問題的根本途徑還是要研究更為有效的壓縮方法。數(shù)據(jù)壓縮技術(shù)分類一般是分為無損壓縮和有損壓縮。對于不是很注重細(xì)節(jié)的數(shù)據(jù) 如圖像、視頻等,當(dāng)今流行的壓縮技術(shù)大都采用有損壓縮技術(shù),如MPEG,H. 263,H. 264等。而 對于程序、電子檔案、指紋識別以及醫(yī)學(xué)圖像等重要信息,則必須采用無損壓縮技術(shù),以使 數(shù)據(jù)恢復(fù)時不會破壞其完整性。目前現(xiàn)有無損壓縮算法中,有壓縮速度較慢,但是壓縮比高的算法;也有壓縮速度 較快,但壓縮比較低的算法;但是壓縮比高,壓縮速度快的算法還不多見。
發(fā)明內(nèi)容
本發(fā)明的目的是提供了一種針對二進(jìn)制數(shù)據(jù)的多字符組合無損數(shù)據(jù)壓縮方法,解 決了數(shù)據(jù)完整性壓縮和還原的問題,不僅壓縮比高,而且算法復(fù)雜度低,壓縮速度較快,為 數(shù)據(jù)的無損壓縮提供了新的思路。本發(fā)明所采用的技術(shù)方案是,一種針對二進(jìn)制數(shù)據(jù)的多字符組合無損數(shù)據(jù)壓縮方 法,包括以下步驟A、數(shù)據(jù)的壓縮包括對待壓縮的原始二進(jìn)制數(shù)據(jù)運用多字符組合捆綁式字典壓縮 算法進(jìn)行的初次壓縮,以及對初次壓縮得到的字符串運用Huffman算法進(jìn)行的二次壓縮;其中,初次壓縮包括1)、選定組合因子個數(shù)m,m的選值滿足2彡m彡8 ;2)、初始化字典將組合因子個數(shù)為m的二進(jìn)制字符排列組合得到的不同字符串, 以及特殊字符和自定義字符作為字典條目構(gòu)建字典,并依次賦予字典序號,其中,所述二進(jìn) 制字符排列組合得到的字符串的個數(shù)η滿足n = 2m ;3)、初次壓縮數(shù)據(jù)依次讀入待壓縮的原始二進(jìn)制數(shù)據(jù),先讀入待壓縮字符串的前 m個字符作為前綴,再讀入接下來的m個字符作為后綴,將前綴和后綴組成的2m個字符作為 整體,在字典中查找是否有相同條目;若有相同條目,則將前2m個字符在字典中的序號作 為前綴,再讀入m個字符作為后綴,將其作為整體再在字典中查找是否有相同條目,若有相
3同條目,按照此做法繼續(xù)進(jìn)行;若無相同條目,則先將這2m個字符添加到字典中,作為新的 字典條目,并賦予字典序號,再將前綴m個字符對應(yīng)的字典條目的序號輸出,舍去前綴的m 個字符,將后綴作為前綴,再讀入待壓縮原始數(shù)據(jù)的m個字符,作為后綴,把現(xiàn)有的2m個字 符作為整體再在字典中查找是否有相同條目,依次循環(huán)直至讀入全部待壓縮的原始二進(jìn)制 數(shù)據(jù),最終得到初次壓縮后的字符串;二次壓縮包括4)、對上述步驟3)得到的字符串中的每個字符進(jìn)行概率統(tǒng)計,使用的公式為P(X) = TjP^i)
XiGS其中,P(X)表示整個字符中某一字符X出現(xiàn)的總概率,S表示整個字符串,P(Xi)表 示每一個X出現(xiàn)的概率;5)、根據(jù)步驟4)得到的概率統(tǒng)計結(jié)果,運用Huffman算法對步驟3)得到的字符串 進(jìn)行進(jìn)行編碼儲存,最終實現(xiàn)數(shù)據(jù)的無損壓縮;B、數(shù)據(jù)的解壓縮包括依次完成Huffman算法的解壓縮,以及多字符組合捆綁式 字典壓縮算法的解壓縮。其中,數(shù)據(jù)壓縮的過程中,步驟3)里,字典查找采用哈希算法。本發(fā)明的針對二進(jìn)制數(shù)據(jù)的多字符組合無損數(shù)據(jù)壓縮方法主要優(yōu)點是壓縮速度 快,壓縮比高。其基于多字符組合捆綁構(gòu)建字典思想的無損壓縮方法,該方法突出的特點是 打破了 LZ系列字典算法單個處理源字符流的方式,將多個待處理字符組合捆綁起來一起 處理,并計算出它們的每種不同排列的組合方式,隨后把按照不同排列組合構(gòu)成的字符串 存入字典,這樣構(gòu)建無損壓縮模型的好處是可以大大降低壓縮后的數(shù)據(jù)量,進(jìn)而提高信道 的傳輸和存儲器的存儲能力,對無損壓縮算法的創(chuàng)新開發(fā),尤其是對LZ系列壓縮算法的發(fā) 展具有重要意義。
具體實施例方式本發(fā)明多字符組合無損數(shù)據(jù)壓縮方法,包括以下步驟
權(quán)利要求
1.一種針對二進(jìn)制數(shù)據(jù)的多字符組合無損數(shù)據(jù)壓縮方法,其特征在于,包括以下步驟A、數(shù)據(jù)的壓縮包括對待壓縮的原始二進(jìn)制數(shù)據(jù)運用多字符組合捆綁式字典壓縮算法 進(jìn)行的初次壓縮,以及對初次壓縮得到的字符串運用Huffman算法進(jìn)行的二次壓縮;其中,所述初次壓縮包括1)、選定組合因子個數(shù)m,m的選值滿足2< m < 8 ;2)、初始化字典將組合因子個數(shù)為m的二進(jìn)制字符排列組合得到的不同字符串,以及 特殊字符和自定義字符作為字典條目構(gòu)建字典,并依次賦予字典序號,其中,所述二進(jìn)制字 符排列組合得到的字符串的個數(shù)η滿足m = 2m ;3)、初次壓縮數(shù)據(jù)依次讀入待壓縮的原始二進(jìn)制數(shù)據(jù),先讀入待壓縮字符串的前m個 字符作為前綴,再讀入接下來的m個字符作為后綴,將前綴和后綴組成的2m個字符作為整 體,在字典中查找是否有相同條目;若有相同條目,則將前2m個字符在字典中的序號作為 前綴,再讀入m個字符作為后綴,將其作為整體再在字典中查找是否有相同條目,若有相同 條目,按照此做法繼續(xù)進(jìn)行;若無相同條目,則先將這2m個字符添加到字典中,作為新的字 典條目,并賦予字典序號,再將前綴m個字符對應(yīng)的字典條目的序號輸出,舍去前綴的m個 字符,將后綴作為前綴,再讀入待壓縮原始數(shù)據(jù)的m個字符,作為后綴,把現(xiàn)有的2m個字符 作為整體再在字典中查找是否有相同條目,依次循環(huán)直至讀入全部待壓縮的原始二進(jìn)制數(shù) 據(jù),最終得到初次壓縮后的字符串;所述二次壓縮包括4)、對上述步驟3)得到的字符串中的每個字符進(jìn)行概率統(tǒng)計,使用的公式為P(X) = YjP(Xi)XiGS其中,P(X)表示整個字符中某一字符X出現(xiàn)的總概率,S表示整個字符串,P(Xi)表示 每一個X出現(xiàn)的概率;5)、根據(jù)步驟4)得到的概率統(tǒng)計結(jié)果,運用Huffman算法對步驟3)得到的字符串進(jìn)行 進(jìn)行編碼儲存,最終實現(xiàn)數(shù)據(jù)的無損壓縮;B、數(shù)據(jù)的解壓縮包括依次完成Huffman算法的解壓縮,以及多字符組合捆綁式字典 壓縮算法的解壓縮。
2.按照權(quán)利要求1所述的針對二進(jìn)制數(shù)據(jù)的多字符組合無損數(shù)據(jù)壓縮方法,其特征在 于,所述數(shù)據(jù)壓縮的過程中,步驟3)里,字典查找采用哈希算法。
全文摘要
一種針對二進(jìn)制數(shù)據(jù)的多字符組合無損數(shù)據(jù)壓縮方法,數(shù)據(jù)的壓縮包括對待壓縮的原始二進(jìn)制數(shù)據(jù)運用多字符組合式字典壓縮算法的初次壓縮,以及對初次壓縮得到的字符串運用Huffmnan算法進(jìn)行的二次壓縮;數(shù)據(jù)的解壓縮包括依次完成Huffmnan算法的解壓縮,以及字典構(gòu)建方式的無損壓縮模型的解壓縮。本發(fā)明解決了數(shù)據(jù)完整性還原的問題,不僅壓縮比高,而且算法復(fù)雜度低,壓縮速度較快,為數(shù)據(jù)的無損壓縮提供了新的思路。
文檔編號H03M7/42GK102122960SQ201110009620
公開日2011年7月13日 申請日期2011年1月18日 優(yōu)先權(quán)日2011年1月18日
發(fā)明者華燈鑫, 張毅坤, 李嘯, 陳浩, 黑新宏 申請人:西安理工大學(xué)