一種支持特大型數(shù)據窗口的無損壓縮編碼方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種支持特大型數(shù)據窗口的無損壓縮編碼方法,包含以下步驟:字符串匹配編碼器對未壓縮數(shù)據進行字符串匹配,生成包含了單字符編碼和控制指令編碼的多級長度編碼、多級索引編碼;分段切割器將多級長度編碼、多級索引編碼分割成二進制8位或者其他固定長度的編碼分段,且從多級長度編碼、多級索引編碼中提取出編碼分類信息;分類統(tǒng)計表對固定長度的編碼分段進行動態(tài)統(tǒng)計,且根據統(tǒng)計表的數(shù)值計算概率預測表;根據概率預測表,熵編碼器使用基于概率統(tǒng)計的壓縮編碼算法,對固定長度編碼分段進行壓縮編碼,輸出二進制的已壓縮數(shù)據。本發(fā)明的方法及系統(tǒng),能夠支持GB級以至EB級的特大型數(shù)據窗口,并且不會因為索引編碼長度變大而降低壓縮率。
【專利說明】
【技術領域】
[0001] 本發(fā)明涉及數(shù)據無損壓縮的信息編碼【技術領域】,特別涉及一種支持特大型數(shù)據窗 口的無損壓縮編碼方法及系統(tǒng)。 一種支持特大型數(shù)據窗口的無損壓縮編碼方法及系統(tǒng)
【背景技術】
[0002] 隨著云計算的迅速發(fā)展,數(shù)據量正在以驚人的速度增長。作為信息產業(yè)的發(fā)展趨 勢,大數(shù)據正變得越來越重要。與此同時也出現(xiàn)了問題:如何能夠高效地處理這些TB級、 PB級甚至更多的大數(shù)據?我們需要在網絡環(huán)境中存儲和傳輸這些大數(shù)據,這對存儲空間、 網絡帶寬和計算資源都是一種挑戰(zhàn)。
[0003] 數(shù)據壓縮是節(jié)省數(shù)據存儲和傳輸成本的一種明智的方法,然而面對大數(shù)據,傳統(tǒng) 的壓縮和加密技術顯得能力不足。例如軟件WinRAR只有一個4MB的小數(shù)據窗口,這會限制 壓縮率,并且其壓縮速度并不足夠快。
[0004] 大的數(shù)據窗口有可能提高壓縮率。但是擴大數(shù)據窗口很難,因為索引長度會增長, 導致壓縮率降低。
[0005] 無損壓縮又稱為無失真壓縮,是數(shù)據壓縮技術之中的一類,特點是解壓縮時能夠 把數(shù)據一模一樣地還原出來。例如WinZip、WinRAR、7-zip等軟件采用的就是無損壓縮技 術。數(shù)據壓縮技術的另一類稱為有損壓縮,通常壓縮的對象是聲音、圖片、視頻等多媒體數(shù) 據,其特點是解壓縮得到的數(shù)據與原始數(shù)據有差異,但是給人的感覺差距不明顯。例如JPG 圖片、DVD視頻就用到了有損壓縮技術。所有的有損壓縮編碼方法,都需要在壓縮系統(tǒng)末端 采用一個無損壓縮的編碼部件來完成壓縮,因此本專利對于有損壓縮的情況同樣適用。
[0006] 熵編碼器是無損壓縮技術中的重要部件,其原理是根據字符出現(xiàn)的概率來確定字 符編碼的長短,概率大的字符采用短編碼,概率小的字符采用長編碼,從而使輸出的數(shù)據 編碼盡可能短,達到數(shù)據壓縮的效果。熵編碼器采用的常見算法有算術編碼、區(qū)間編碼、 Huffman編碼等,例如WinZip用了 Huffman編碼,7-zip用了區(qū)間編碼的算法。本專利對于 采用了其他熵編碼算法的情況同樣適用。
[0007] 從理論分類的角度看,當前的無損壓縮數(shù)學模型和方法可以分為如下3種類型:
[0008] 1)基于概率統(tǒng)計的壓縮,例如哈夫曼編碼、算術編碼等。這一類型中,基于馬可夫 鏈模型的PPM (Partial Prediction Match,部分預測匹配)算法具有良好的壓縮率。
[0009] 2)基于字典索引的壓縮,例如LZ77/LZSS算法、LZ78/LZW算法等。LZ系列的壓縮 模型具有速度上的優(yōu)勢。
[0010] 3)基于符號的順序和重復情況的壓縮,例如游程編碼、BWT(Burrows-Wheeler轉 換)編碼等。
[0011] 當前流行的壓縮軟件是以上基礎壓縮理論的復合應用。每種軟件通常整合不同的 壓縮模型和方法來達到更好的效果。下面列舉了一些流行壓縮軟件的特點:
[0012] 1)軟件名稱:WinZip
[0013] 壓縮格式:Deflat ;
[0014] 基本算法:LZSS&Huffman 編碼;
[0015] 數(shù)據窗口大小上限:512KB ;
[0016] 不足之處:數(shù)據窗口?。粔嚎s率低;大數(shù)據支持能力弱。
[0017] 2)軟件名稱:WinRAR
[0018] 壓縮格式:RAR;
[0019] 基本算法:LZSS&Huffman 編碼;
[0020] 數(shù)據窗口大小上限:4MB ;
[0021] 不足之處:數(shù)據窗口小;壓縮率低;大數(shù)據支持能力弱。
[0022] 3)軟件名稱:Bzip2
[0023] 壓縮格式:BZ2 ;
[0024] 基本算法:BWT&Huffman 編碼;
[0025] 數(shù)據窗口(數(shù)據塊)大小上限:900KB ;
[0026] 不足之處:BWT數(shù)據塊?。粔嚎s率低;大數(shù)據支持能力弱。
[0027] 4)軟件名稱:7-zip
[0028] 壓縮格式:7z ;
[0029] 基本算法:LZSS&算術編碼(區(qū)間編碼與算術編碼本質相同);
[0030] 數(shù)據窗口大小上限:4GB ;
[0031] 不足之處:數(shù)據窗口較小;有限的大數(shù)據支持能力。
[0032] 還有其他壓縮軟件,例如PAQ、WinUDA等。它們可能有較高的壓縮率,但速度較慢, 不適合大數(shù)據壓縮。
[0033] 綜上所述,現(xiàn)有的數(shù)據無損壓縮技術要么速度慢,不適合進行GB級、TB級甚至更 多的大數(shù)據壓縮,要么數(shù)據窗口較小,導致壓縮率偏低。但是直接增大數(shù)據窗口并不能有效 提高壓縮率,因為大的數(shù)據窗口需要用更長的索引,而索引長度的增加會降低壓縮率,得不 償失,除非能找到有效的壓縮編碼方法和壓縮格式。
【發(fā)明內容】
[0034] 本發(fā)明的目的在于克服現(xiàn)有技術的缺點與不足,提供一種支持特大型數(shù)據窗口的 無損壓縮編碼方法。
[0035] 本發(fā)明的另一目的在于提供一種支持特大型數(shù)據窗口的無損壓縮編碼系統(tǒng)。
[0036] 本發(fā)明的目的通過以下的技術方案實現(xiàn):
[0037] -種支持特大型數(shù)據窗口的無損壓縮編碼方法,包含以下順序的步驟:
[0038] S1.字符串匹配編碼器對未壓縮數(shù)據進行字符串匹配,生成包含了單字符編碼和 控制指令編碼的多級長度編碼、多級索引編碼;
[0039] S2.分段切割器將多級長度編碼、多級索引編碼分割成二進制8位或者其他固定 長度的編碼分段,提供給分類統(tǒng)計表和熵編碼器;同時,從多級長度編碼、多級索引編碼中 提取出編碼分類信息,提供給分類統(tǒng)計表;
[0040] S3.根據編碼分類信息,分類統(tǒng)計表首先將固定長度的編碼分段放到不同的統(tǒng)計 表中進行動態(tài)統(tǒng)計,然后根據統(tǒng)計表的數(shù)值,向熵編碼器提供概率預測表;
[0041] S4.根據概率預測表,熵編碼器使用基于概率統(tǒng)計的壓縮編碼算法,對固定長度編 碼分段進行壓縮編碼,輸出二進制的已壓縮數(shù)據。
[0042] 步驟S1中,所述的多級長度編碼,根據待編碼的字符串長度來分級,并遵循特定 的長度編碼格式。
[0043] 所述的根據帶編碼的字符串長度來分級,具體包括:采用至少3級的長度編碼,同 一級別的編碼長度相同;較低級別的長度編碼,比較高級別的長度編碼短;較短的字符串 采用較低級別的長度編碼,較長的字符串采用較高級別的長度編碼,具體的級別劃分與特 定的長度編碼格式相關;
[0044] 所述的多級長度編碼格式,具體包括:L0長度編碼,代表單個字符;L1長度編碼, 代表字符串長度2至11 ;L2長度編碼,代表字符串長度12至75 ;可選的L3長度編碼,代表 字符串長度76至325 ;可選的L4長度編碼,包括L4線性長度編碼和L4指數(shù)長度編碼,能 夠支持最大16EB的字符串長度,并且遵循特定的線性長度編碼與指數(shù)長度編碼相結合的 格式。
[0045] 步驟S1中,所述的多級索引編碼,根據待編碼的字符串與匹配字符串的距離來分 級,并遵循特定的索引編碼格式。
[0046] 所述的根據待編碼的字符串與匹配字符串的距離來分級,具體包括:采用至少3 級的索引編碼,同一級別的編碼長度相同;較低級別的索引編碼,比較高級別的索引編碼 短;索引值等于待編碼的字符串與匹配字符串的距離值;較小的索引值采用較低級別的索 引編碼,較大的索引值采用較高級別的索引編碼,具體的級別劃分與特定的索引編碼格式 相關;
[0047] 所述的多級索引編碼格式,具體包括:L1索引編碼,代表索引值XI至X1+Y1-1,其 中XI = 1,Y1等于2的8次方;L2索引編碼,代表索引值X2至X2+Y2-1,其中X2 = X1+Y1, Υ2等于2的16次方;L3索引編碼,代表索引值Χ3至Χ3+Υ3-1,其中Χ3 = Χ2+Υ2, Υ3等于2 的24次方;可選的L4索引編碼,代表索引值Χ4至Χ4+Υ4-1,其中Χ4 = Χ3+Υ3,Υ4等于2的 32次方;可選的L5索引編碼,代表索引值Χ5至Χ5+Υ5-1,其中Χ5 = Χ4+Υ4,Υ5等于2的40 次方;可選的L6索引編碼,代表索引值Χ6至Χ6+Υ6-1,其中Χ6 = Χ5+Υ5,Υ6等于2的48次 方;可選的L7索引編碼,代表索引值Χ7至Χ7+Υ7-1,其中Χ7 = Χ6+Υ6,Υ7等于2的56次方; 可選的L8索引編碼,代表索引值Χ8至Χ8+Υ8-1,其中Χ8 = Χ7+Υ7, Υ8等于2的64次方;L1、 L2、L3、L4、L5、L6、L7、L8索引編碼能夠支持的數(shù)據窗口大小依次為256B、64KB、16MB、4GB、 1TB、256TB、64PB、16EB。
[0048] 步驟S2中,所述的分類統(tǒng)計表中的分類為一種以上級別的編碼。
[0049] 步驟S3中,所述的統(tǒng)計表按照0階、1階或2階PPM概率統(tǒng)計模型來設計。
[0050] 步驟S4中,所述的基于概率統(tǒng)計的壓縮編碼算法為算術編碼、區(qū)間編碼或 Huffman編碼中的一種。
[0051] 本發(fā)明的另一目的通過以下的技術方案來實現(xiàn):
[0052] -種支持特大型數(shù)據窗口的無損壓縮編碼系統(tǒng),包括順序相連的字符串匹配編碼 器、分段切割器、分類統(tǒng)計表、熵編碼器,其中
[0053] 字符串匹配編碼器,用于對未壓縮數(shù)據進行字符串匹配,生成包含了單字符編碼 和控制指令編碼的多級長度編碼、多級索引編碼,提供給分段切割器;
[0054] 分段切割器,用于把多級長度編碼、多級索引編碼分割成二進制8位或者其他固 定長度的編碼分段,提供給分類統(tǒng)計表和熵編碼器,與此同時,從多級長度編碼、多級索引 編碼中提取出編碼分類信息,提供給分類統(tǒng)計表,一個分類可以是一種級別的編碼,也可以 是一種以上級別的編碼;
[0055] 分類統(tǒng)計表,用于根據編碼分類信息,把固定長度的編碼分段放到不同的統(tǒng)計表 中進行動態(tài)統(tǒng)計,所用的各個統(tǒng)計表可以是按照〇階、1階或2階PPM概率統(tǒng)計模型來設計, 與此同時,根據統(tǒng)計表的數(shù)值,向熵編碼器提供概率預測表;
[0056] 熵編碼器,用于根據概率預測表,使用算術編碼、區(qū)間編碼、Huffman編碼或其他基 于概率統(tǒng)計的壓縮編碼算法,對固定長度編碼分段進行壓縮編碼,輸出二進制的已壓縮數(shù) 據。
[0057] 本發(fā)明與現(xiàn)有技術相比,具有如下優(yōu)點和有益效果:
[0058] 本發(fā)明的方法,索引編碼能夠支持特大型的數(shù)據窗口,可達到PB、EB級,遠遠大于 當前常見壓縮軟件WinRAR和7-zip的MB、GB級數(shù)據窗口,并且不會因為數(shù)據窗口的增大、 索引長度的增加而降低壓縮率;能夠同時支持線性長度編碼和指數(shù)長度編碼,可以編碼長 達16EB的字符串長度;以上索引、長度的編碼優(yōu)勢,使本發(fā)明在壓縮GB、TB級或以上的海量 數(shù)據時,能夠獲得高于當前常見壓縮軟件的壓縮率。
【專利附圖】
【附圖說明】
[0059] 圖1為本發(fā)明所述的一種支持大型數(shù)據窗口的無損壓縮編碼方法的流程圖;
[0060] 圖2為本發(fā)明所述的一種支持大型數(shù)據窗口的無損壓縮編碼系統(tǒng)的結構示意圖; [0061] 圖3為圖2所述系統(tǒng)的字符串匹配編碼器輸出的多級長度編碼、多級引索編碼格 式示意圖。
【具體實施方式】
[0062] 下面結合實施例及附圖對本發(fā)明作進一步詳細的描述,但本發(fā)明的實施方式不限 于此。
[0063] 一種支持特大型數(shù)據窗口的無損壓縮編碼方法,包含以下順序的步驟:
[0064] S1.字符串匹配編碼器對未壓縮數(shù)據進行字符串匹配,生成包含了單字符編碼和 控制指令編碼的多級長度編碼、多級索引編碼;
[0065] 所述的多級長度編碼,根據待編碼的字符串長度來分級,并遵循特定的長度編碼 格式。
[0066] 所述的根據帶編碼的字符串長度來分級,具體包括:采用至少3級的長度編碼,同 一級別的編碼長度相同;較低級別的長度編碼,比較高級別的長度編碼短;較短的字符串 采用較低級別的長度編碼,較長的字符串采用較高級別的長度編碼,具體的級別劃分與特 定的長度編碼格式相關。
[0067] 所述的多級長度編碼格式,具體包括:L0長度編碼,代表單個字符;L1長度編碼, 代表字符串長度2至11 ;L2長度編碼,代表字符串長度12至75 ;可選的L3長度編碼,代表 字符串長度76至325 ;可選的L4長度編碼,包括L4線性長度編碼和L4指數(shù)長度編碼,能 夠支持最大16EB的字符串長度,并且遵循特定的線性長度編碼與指數(shù)長度編碼相結合的 格式;
[0068] 步驟S1中,所述的多級索引編碼,根據待編碼的字符串與匹配字符串的距離來分 級,并遵循特定的索引編碼格式。
[0069] 所述的根據待編碼的字符串與匹配字符串的距離來分級,具體包括:采用至少3 級的索引編碼,同一級別的編碼長度相同;較低級別的索引編碼,比較高級別的索引編碼 短;索引值等于待編碼的字符串與匹配字符串的距離值;較小的索引值采用較低級別的索 引編碼,較大的索引值采用較高級別的索引編碼,具體的級別劃分與特定的索引編碼格式 相關。
[0070] 所述的多級索引編碼格式,具體包括:L1索引編碼,代表索引值XI至X1+Y1-1,其 中XI = 1,Y1等于2的8次方;L2索引編碼,代表索引值X2至X2+Y2-1,其中X2 = X1+Y1, Υ2等于2的16次方;L3索引編碼,代表索引值Χ3至Χ3+Υ3-1,其中Χ3 = Χ2+Υ2, Υ3等于2 的24次方;可選的L4索引編碼,代表索引值Χ4至Χ4+Υ4-1,其中Χ4 = Χ3+Υ3,Υ4等于2的 32次方;可選的L5索引編碼,代表索引值Χ5至Χ5+Υ5-1,其中Χ5 = Χ4+Υ4,Υ5等于2的40 次方;可選的L6索引編碼,代表索引值Χ6至Χ6+Υ6-1,其中Χ6 = Χ5+Υ5,Υ6等于2的48次 方;可選的L7索引編碼,代表索引值Χ7至Χ7+Υ7-1,其中Χ7 = Χ6+Υ6,Υ7等于2的56次方; 可選的L8索引編碼,代表索引值Χ8至Χ8+Υ8-1,其中Χ8 = Χ7+Υ7, Υ8等于2的64次方;L1、 L2、L3、L4、L5、L6、L7、L8索引編碼能夠支持的數(shù)據窗口大小依次為256B、64KB、16MB、4GB、 1TB、256TB、64PB、16EB ;
[0071] S2.分段切割器將多級長度編碼、多級索引編碼分割成二進制8位或者其他固定 長度的編碼分段,提供給分類統(tǒng)計表和熵編碼器;同時,從多級長度編碼、多級索引編碼中 提取出編碼分類信息,提供給分類統(tǒng)計表;
[0072] 所述的分類統(tǒng)計表中的分類為一種以上級別的編碼;
[0073] S3.根據編碼分類信息,分類統(tǒng)計表首先將固定長度的編碼分段放到不同的統(tǒng)計 表中進行動態(tài)統(tǒng)計,然后根據統(tǒng)計表的數(shù)值,向熵編碼器提供概率預測表;
[0074] 所述的統(tǒng)計表按照0階、1階或2階PPM概率統(tǒng)計模型來設計;
[0075] S4.根據概率預測表,熵編碼器使用基于概率統(tǒng)計的壓縮編碼算法,對固定長度編 碼分段進行壓縮編碼,輸出二進制的已壓縮數(shù)據;
[0076] 所述的基于概率統(tǒng)計的壓縮編碼算法為算術編碼、區(qū)間編碼或Huffman編碼中的 一種。
[0077] 下面對該方法,做更進一步地介紹:
[0078] 如圖1所示,一種支持特大型數(shù)據窗口的無損壓縮編碼方法,包含以下順序的步 驟:
[0079] S301 :初始化索引分段統(tǒng)計表tabl[i],其中i從1至8,共有8組索引分段統(tǒng)計 表;
[0080] S302 :初始化長度分段統(tǒng)計表tabL[i],其中i從0至4,共有5組長度分段統(tǒng)計 表;
[0081] S303 :判斷是否已經沒有尚未壓縮的數(shù)據,是則流程結束,否則繼續(xù)步驟S304 ;
[0082] S304 :判斷是否進行特別功能,是則轉步驟S305,否則轉步驟S306 ;
[0083] S305 :設置變量C為控制類,I為控制指令代碼,L為控制操作數(shù),轉步驟S311 ;
[0084] S306 :讀取新的未壓縮數(shù)據;
[0085] S307 :在數(shù)據窗口中進行字符串匹配;
[0086] S308 :判斷字符串匹配是否成功,是則轉步驟S309,否則轉步驟S310 ;
[0087] S309 :設置變量C為字典類,I為匹配的索引值,L為匹配的字符串長度值,轉步驟 S311 ;
[0088] S310 :設置變量C為單字符類,I為字符ASCII碼,轉步驟S311 ;
[0089] S311 :把C代表的三類代碼整合成統(tǒng)一編碼,根據I作分級索引編碼,根據L作分 級長度編碼;
[0090] S312 :設置變量Idx為分級索引編碼,S1為索引級別,Len為分級長度編碼,S2為 長度級別;
[0091] S313 :對索引編碼Idx進行分段切割,成為固定長度的編碼分段Idxl,IdX2, Idx3 等,編碼分段的個數(shù)取決于索引編碼Idx的位數(shù);
[0092] S314 :對索引編碼Len進行分段切割,成為固定長度的編碼分段Lenl,Len2, Len3 等,編碼分段的個數(shù)取決于長度編碼Len的位數(shù);
[0093] S315 :采用0階、1階或2階PPM概率統(tǒng)計表tabL[S2]對編碼分段Lenl,Len2,Len3 等進行熵編碼;
[0094] S316 :采用0階、1階或2階PPM概率統(tǒng)計表tabI[Sl]對編碼分段Idxl,Idx2,Idx3 等進行熵編碼;
[0095] S317 :把熵編碼得到的已壓縮數(shù)據輸出;
[0096] S318:根據編碼分段Idxl,IdX2, Idx3等,更新統(tǒng)計表tabI[Sl],根據編碼分段 Lenl,Len2, Len3等,更新統(tǒng)計表tabL[S2],并跳轉到步驟S303。
[0097] 如圖2, 一種支持特大型數(shù)據窗口的無損壓縮編碼系統(tǒng),包括順序相連的字符串匹 配編碼器、分段切割器、分類統(tǒng)計表、熵編碼器,其中
[0098] 字符串匹配編碼器101,用于對未壓縮數(shù)據進行字符串匹配,生成包含了單字符編 碼和控制指令編碼的多級長度編碼、多級索引編碼,提供給分段切割器102 ;
[0099] 分段切割器102,用于把多級長度編碼、多級索引編碼分割成二進制8位或者其他 固定長度的編碼分段,提供給分類統(tǒng)計表103和熵編碼器104,與此同時,從多級長度編碼、 多級索引編碼中提取出編碼分類信息,提供給分類統(tǒng)計表103, 一個分類可以是一種級別的 編碼,也可以是一種以上級別的編碼;
[0100] 分類統(tǒng)計表103,用于根據編碼分類信息,把固定長度的編碼分段放到不同的統(tǒng)計 表中進行動態(tài)統(tǒng)計,所用的各個統(tǒng)計表可以是按照〇階、1階或2階PPM概率統(tǒng)計模型來設 計,與此同時,根據統(tǒng)計表的數(shù)值,向熵編碼器104提供概率預測表;
[0101] 熵編碼器104,用于根據概率預測表,使用算術編碼、區(qū)間編碼、Huffman編碼或其 他基于概率統(tǒng)計的壓縮編碼算法,對固定長度編碼分段進行壓縮編碼,輸出二進制的已壓 縮數(shù)據。
[0102] 如圖3,字符串匹配編碼器輸出的多級長度編碼、多級索引編碼格式包括:
[0103] 對于每一段未壓縮數(shù)據進行字符串匹配編碼,得到的結果是一個分級長度編碼, 后面緊跟著一個分級索引編碼,其中分級長度編碼格式來自長度編碼分離201,分級索引編 碼格式來自索引編碼分尚212 ;
[0104] 長度編碼分離201 :根據不同情況,對單個字符可編碼為L0長度編碼202,對長度 2至11可編碼為L1長度編碼203,對長度12至75可編碼為L2長度編碼204,其他情況的 編碼則來自L3長度分離205 ;
[0105] L3長度分離205 :根據不同情況,對控制字可編碼為控制指令編碼210,對長度76 至325可編碼為L3線性長度編碼206,對長度326及以上的情況,編碼則來自L4長度分離 207 ;
[0106] L4長度分離207 :根據不同情況,對長度326至65535可編碼為L4線性長度編碼 208,對長度2的16次方至2的64次方可編碼為L4指數(shù)長度編碼209 ;
[0107] 控制指令編碼210 :后面緊跟著控制操作數(shù)編碼211 ;
[0108] 索引編碼分離212 :根據不同情況,對匹配位置在256字節(jié)的數(shù)據窗口 1范圍內 可編碼為L1索引編碼213,對匹配位置在64KB的數(shù)據窗口 2范圍內可編碼為L2索引編碼 214,對匹配位置在16MB的數(shù)據窗口 3范圍內可編碼為L3索引編碼215,對匹配位置在4GB 的數(shù)據窗口 4范圍內可編碼為L4索引編碼216,對匹配位置在1TB的數(shù)據窗口 5范圍內可 編碼為L5索引編碼217,對匹配位置在256TB的數(shù)據窗口 6范圍內可編碼為L6索引編碼 218,對匹配位置在64PB的數(shù)據窗口 7范圍內可編碼為L7索引編碼219,對匹配位置在16EB 的數(shù)據窗口 8范圍內可編碼為L8索引編碼220。
[0109] 上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的 限制,其他的任何未背離本發(fā)明的精神實質與原理下所作的改變、修飾、替代、組合、簡化, 均應為等效的置換方式,都包含在本發(fā)明的保護范圍之內。
【權利要求】
1. 一種支持特大型數(shù)據窗口的無損壓縮編碼方法,其特征在于,包含以下順序的步 驟:
51. 字符串匹配編碼器對未壓縮數(shù)據進行字符串匹配,生成包含了單字符編碼和控制 指令編碼的多級長度編碼、多級索引編碼;
52. 分段切割器將多級長度編碼、多級索引編碼分割成二進制8位或者其他固定長度 的編碼分段,提供給分類統(tǒng)計表和熵編碼器;同時,從多級長度編碼、多級索引編碼中提取 出編碼分類信息,提供給分類統(tǒng)計表;
53. 根據編碼分類信息,分類統(tǒng)計表首先將固定長度的編碼分段放到不同的統(tǒng)計表中 進行動態(tài)統(tǒng)計,然后根據統(tǒng)計表的數(shù)值,向熵編碼器提供概率預測表;
54. 根據概率預測表,熵編碼器使用基于概率統(tǒng)計的壓縮編碼算法,對固定長度編碼分 段進行壓縮編碼,輸出二進制的已壓縮數(shù)據。
2. 根據權利要求1所述的支持特大型數(shù)據窗口的無損壓縮編碼方法,其特征在于:步 驟S1中,所述的多級長度編碼,根據待編碼的字符串長度來分級,并遵循特定的長度編碼 格式。
3. 根據權利要求2所述的支持特大型數(shù)據窗口的無損壓縮編碼方法,其特征在于,所 述的根據帶編碼的字符串長度來分級,具體包括:采用至少3級的長度編碼,同一級別的編 碼長度相同;較低級別的長度編碼,比較高級別的長度編碼短;較短的字符串采用較低級 別的長度編碼,較長的字符串采用較高級別的長度編碼,具體的級別劃分與特定的長度編 碼格式相關; 所述的多級長度編碼格式,具體包括:L0長度編碼,代表單個字符;L1長度編碼,代表 字符串長度2至11 ;L2長度編碼,代表字符串長度12至75 ;可選的L3長度編碼,代表字符 串長度76至325 ;可選的L4長度編碼,包括L4線性長度編碼和L4指數(shù)長度編碼,能夠支 持最大16EB的字符串長度,并且遵循特定的線性長度編碼與指數(shù)長度編碼相結合的格式。
4. 根據權利要求1所述的支持特大型數(shù)據窗口的無損壓縮編碼方法,其特征在于:步 驟S1中,所述的多級索引編碼,根據待編碼的字符串與匹配字符串的距離來分級,并遵循 特定的索引編碼格式。
5. 根據權利要求4所述的支持特大型數(shù)據窗口的無損壓縮編碼方法,其特征在于,所 述的根據待編碼的字符串與匹配字符串的距離來分級,具體包括:采用至少3級的索引編 碼,同一級別的編碼長度相同;較低級別的索引編碼,比較高級別的索引編碼短;索引值等 于待編碼的字符串與匹配字符串的距離值;較小的索引值采用較低級別的索引編碼,較大 的索引值采用較高級別的索引編碼,具體的級別劃分與特定的索引編碼格式相關; 所述的多級索引編碼格式,具體包括:L1索引編碼,代表索引值XI至X1+Y1-1,其中XI =1,Y1等于2的8次方;L2索引編碼,代表索引值X2至X2+Y2-1,其中X2 = Xl+Yl,Y2等 于2的16次方;L3索引編碼,代表索引值X3至X3+Y3-1,其中X3 = X2+Y2,Y3等于2的24 次方;可選的L4索引編碼,代表索引值Χ4至Χ4+Υ4-1,其中Χ4 = Χ3+Υ3,Υ4等于2的32次 方;可選的L5索引編碼,代表索引值Χ5至Χ5+Υ5-1,其中Χ5 = Χ4+Υ4,Υ5等于2的40次方; 可選的L6索引編碼,代表索引值Χ6至Χ6+Υ6-1,其中Χ6 = Χ5+Υ5,Υ6等于2的48次方;可 選的L7索引編碼,代表索引值Χ7至Χ7+Υ7-1,其中Χ7 = Χ6+Υ6,Υ7等于2的56次方;可選 的L8索引編碼,代表索引值Χ8至Χ8+Υ8-1,其中Χ8 = Χ7+Υ7, Υ8等于2的64次方;L1、L2、 L3、L4、L5、L6、L7、L8索引編碼能夠支持的數(shù)據窗口大小依次為256B、64KB、16MB、4GB、1TB、 256TB、64PB、16EB。
6. 根據權利要求1所述的支持特大型數(shù)據窗口的無損壓縮編碼方法,其特征在于:步 驟S2中,所述的分類統(tǒng)計表中的分類為一種以上級別的編碼。
7. 根據權利要求1所述的支持特大型數(shù)據窗口的無損壓縮編碼方法,其特征在于:步 驟S3中,所述的統(tǒng)計表按照0階、1階或2階PPM概率統(tǒng)計模型來設計。
8. 根據權利要求1所述的支持特大型數(shù)據窗口的無損壓縮編碼方法,其特征在于:步 驟S4中,所述的基于概率統(tǒng)計的壓縮編碼算法為算術編碼、區(qū)間編碼或Huffman編碼中的 一種。
9. 一種支持特大型數(shù)據窗口的無損壓縮編碼系統(tǒng),其特征在于:包括順序相連的字符 串匹配編碼器、分段切割器、分類統(tǒng)計表、熵編碼器,其中 字符串匹配編碼器,用于對未壓縮數(shù)據進行字符串匹配,生成包含了單字符編碼和控 制指令編碼的多級長度編碼、多級索引編碼,提供給分段切割器; 分段切割器,用于把多級長度編碼、多級索引編碼分割成二進制8位或者其他固定長 度的編碼分段,提供給分類統(tǒng)計表和熵編碼器,與此同時,從多級長度編碼、多級索引編碼 中提取出編碼分類信息,提供給分類統(tǒng)計表,一個分類可以是一種級別的編碼,也可以是一 種以上級別的編碼; 分類統(tǒng)計表,用于根據編碼分類信息,把固定長度的編碼分段放到不同的統(tǒng)計表中進 行動態(tài)統(tǒng)計,所用的各個統(tǒng)計表可以是按照0階、1階或2階PPM概率統(tǒng)計模型來設計,與此 同時,根據統(tǒng)計表的數(shù)值,向熵編碼器提供概率預測表; 熵編碼器,用于根據概率預測表,使用算術編碼、區(qū)間編碼、Huffman編碼或其他基于概 率統(tǒng)計的壓縮編碼算法,對固定長度編碼分段進行壓縮編碼,輸出二進制的已壓縮數(shù)據。
【文檔編號】G06T9/00GK104156990SQ201410317732
【公開日】2014年11月19日 申請日期:2014年7月3日 優(yōu)先權日:2014年7月3日
【發(fā)明者】覃健誠, 鐘宇, 陸以勤 申請人:華南理工大學