新四季網

一種整型數據無損壓縮方法、解壓縮方法及裝置的製作方法

2023-05-26 06:10:01

專利名稱:一種整型數據無損壓縮方法、解壓縮方法及裝置的製作方法
技術領域:
本發明涉及數據壓縮技術領域,具體地,涉及一種整型數據無損壓縮、無損解壓縮方法及裝置。
背景技術:
數據壓縮是一種消除原始數據之間的冗餘性,將原始數據文件轉化為另一個佔用存儲空間更小的數據文件的技術。數據壓縮的目的是儘可能地減小數據文件的大小,以節省數據傳輸和存儲的成本。我們通常所說的數據壓縮實質上包括兩個部分第一部分是通過壓縮算法將原始數據文件轉化為壓縮數據文件,即壓縮部分;另一部分是通過解壓算法對壓縮數據文件進行解壓,以重構出原始數據文件,即解壓部分。根據不同壓縮方法對應的解壓方法,可由壓縮數據文件基本或完全準確地重構出原始數據文件。根據是否可以通過壓縮數據文件無失真地恢復原始數據文件,數據壓縮方法可分為兩大類無損壓縮(重構數據與原始數據完全一致)和有損壓縮(允許重構數據與原始數據存在偏差,因而一般可以取得比無損壓縮更好的壓縮效果)。數據壓縮技術在過去20年裡得到了快速的發展。目前,它已廣泛應用於數字通信、數字廣播、數位電視、數字存儲、計算機、網際網路、數字攝影、數字出版、多媒體娛樂、玩具、家電、石油勘探以及智能控制等眾多領域。根據不同的應用需求,需要選擇不同類型的壓縮方法。對於可執行電腦程式、法律文本文檔、醫學X光映像和遺傳(基因)信息等數據文件,任何一位(或一個字)信息的改變或缺失將導致程序不能執行或不能按照正確的思路執行或將導致原始信息意義的改變,而這類文件是不允許出現這種情況的;因此,這類數據文件的壓縮需要採用無損壓縮方法。對於一般的圖像、視頻和音頻等數據文件,當其中部分數據發生較小的改變時,我們很難甚至完全不能發現其中信息的改變,不會影響這些數據文件的正常使用;因此,這類數據文件可以採用有損壓縮方法,以在不影響它們正常使用的情況下獲得更好的壓縮效果。目前已有的數據壓縮方法主要包括統計類編碼(Shannon-Fano編碼,Huffman編碼,Run-Length編碼,Arithmetic編碼等)方法、字典類編碼(LZ編碼,LZ77編碼,LZ78編碼,LZff編碼等)方法、變換類(K-L變換,W-H變換,離散餘弦變換,Haar變換,小波變換等)壓縮方法、圖像壓縮方法(Image Transforms, JPEG, JBIG,矢量量化等)、視頻壓縮方法(MPEG,MPEG-4, H. 261, H. 264 等)、音頻壓縮方法(ADPCM 音頻壓縮,FLAC,Monkey』 s Audio,AAC 等)
坐寸o編碼是所有數據壓縮方法的關鍵組成部分,它直接影響著壓縮方法的壓縮效果,有些壓縮方法的壓縮效果甚至完全取決於所使用的編碼方式。所謂編碼就是將原始數據流或經過處理的數據流以某種特殊的方式記錄下來。不同的編碼方法對不同類型的數據序列有效。例如,Shannon-Fano編碼和Huffman編碼適用於文件中各符號出現的概率為2的負指數次方的文件壓縮;算術編碼適用於文件中少數符號出現的概率明顯大於其他符號出現的概率的文件壓縮;LZW編碼適用於文件中相同符號組合出現頻率較高的數據文件壓縮;專門為視頻或音頻數據文件設計的編碼方法適用於視頻或音頻數據文件壓縮等。如果我們用一種專門為圖像或音頻數據設計的壓縮程序(或編碼方式)對文本文件進行壓縮的話,那麼壓縮後文件大小常常大於甚至遠大於原始數據文件。因此,針對不同類型的數據文件,選擇或設計合適的編碼方式是壓縮成功的關鍵。對經典的算術編碼方法和LZW編碼方法、通用的WinRAR軟體以及專業音頻數據壓縮軟體FLAC (Free Lossless Audio Codec)進行無損壓縮測試表明,這些編碼(或壓縮)方法的壓縮效果並不足夠理想(算術編碼、LZW、WinRAR和FLAC對經過去相關處理的聲波測井波形數據文件的平均壓縮比分別為1.32、1. 12,1.38和1. 01),壓縮比有進一步提升的空間。

發明內容
本發明實施例的主要目的在於提供一種整型數據無損壓縮方法、解壓縮方法及裝置,以提供一種相比現有技術能夠獲得更好壓縮效果的壓縮技術。為了實現上述目的,本發明實施例提供一種整型數據無損壓縮方法,包括讀取原始整型數據序列;確定原始比特位總數,所述原始比特位總數為所述原始整型數據的完整二進位碼對應的比特位數;針對所述原始比特位總數中的每一比特位,依次提取所有原始整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串;按照設定比特位順序對所述原始比特位總數中所有比特位對應的二進位碼串進行排列,得到位重組二進位碼序列;以第一設定數目的碼值為一組完整二進位碼,順序提取所述位重組二進位碼序列中的各組碼值並確定對應的整型數據,將確定的整型數據組成位重組整型數據序列;以第二設定數目個整型數據為一數據塊,將所述位重組整型數據序列順序劃分成至少一個數據塊;存儲壓縮文件基本信息,所述壓縮文件基本信息包括原始整型數據總數、所述原始比特位總數、所述設定比特位順序、所述第一設定數目、所述第二設定數目;針對所述每一數據塊執行以下編碼處理確定當前數據塊中出現概率最大的整型數據及對應的概率值,判斷所述概率值是否大於設定閾值,若是,則根據標記編碼方式對當前數據塊進行編碼,否則,根據常規編碼方式對當前數據塊進行編碼;對所有數據塊完成所述編碼處理後,將輸出的二進位碼組成二進位壓縮文件;其中,根據標記編碼方式對當前數據塊進行編碼,具體包括輸出標記編碼方式標記符;輸出當前數據塊中出現概率最大的整型數據的完整二進位碼;順序讀取當前數據塊中的每一整型數據,判斷該整型數據是否為所述出現概率最大的整型數據,若是,則輸出替代標記符,否則,依次輸出非替代標記符和該整型數據的完整二進位碼;根據常規編碼方式對當前數據塊進行編碼,具體包括輸出常規編碼方式標記符;順序讀取當前數據塊中的每一整型數據,並輸出該整型數據的完整二進位碼。優選的,所述整型數據無損壓縮方法中,所述設定閾值按照如下方式確定假設所述第二設定數目個整型數據滿足條件分別採用標記編碼方式和常規編碼方式進行編碼時,得到的編碼結果佔用相同大小的存儲空間;
則將該第二設定數目個整型數據中各整型數據的出現概率的最大值確定為所述設定閾值。優選的,所述整型數據無損壓縮方法中,讀取原始整型數據序列之前,還包括對所述原始整型數據序列進行預處理獲得預處理整型數據序列,所述預處理整型數據序列的均方值小於所述原始整型數據序列的均方值;則針對所述原始比特位總數中的每一比特位,依次提取所有原始整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串,具體為針對所述原始比特位總數中的每一比特位,依次提取所述預處理整型數據序列中所有預處理整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串;所述壓縮文件基本信息還包括所述預處理的過程信息。優選的,所述整型數據無損壓縮方法中,對所述原始整型數據序列進行預處理,具體包括對所述原始整型數據進行線性預測處理/非線性預測處理/小波變換處理;和/或,將所述原始整型數據中的有符號整型數據轉換為無符號整型數據。一種整型數據解壓縮方法,包括對壓縮文件基本信息進行解析,獲取所述壓縮文件基本信息中存儲的原始整型數據總數、原始比特位總數、設定比特位順序、第一設定數目、第二設定數目;對二進位壓縮文件執行以下解碼處理過程順序讀取一個未讀碼值;確定所述未讀碼值為標記編碼方式標記符時,根據標記解碼方式對後續碼值進行解碼,直至得到所述第二設定數目的解碼整型數據;確定所述未讀碼值為常規編碼方式標記符時,根據常規解碼方式對後續碼值進行解碼,直至得到所述第二設定數目的解碼整型數據;重複執行上述解碼處理過程,直至得到數目為所述原始整型數據總數乘以原始比特位總數再除以第一設定數目個解碼整型數據;將所述解碼處理過程得到的所有解碼整型數據的完整二進位碼順序組合為位恢復二進位碼序列;定義多個整型數據,所述定義的多個整型數據總數等於所述原始整型數據總數,且所述定義的每一整型數據的完整二進位碼對應的比特位數等於所述原始比特位總數;以所述原始整型數據總數為一組,順序提取所述位恢復二進位碼序列中的各組碼值,按照所述設定比特位順序將每一組碼值包括的各碼值依次賦值給所述定義的各整型數據的相應比特位;將所述賦值後的整型數據順序組成解壓縮整型數據序列;其中,根據標記解碼方式對後續碼值進行解碼,具體包括讀取所述第一設定數目的後續碼值作為一組完整二進位碼,將其對應的整型數據確定為被替代整型數據,並循環執行以下步驟繼續讀取一個後續碼值;確定該後續碼值為替代標記符時,將所述被替代整型數據確定為解碼整型數據;確定該後續碼值為非替代標記符時,繼續讀取所述第一設定數目的後續碼值作為一組完整二進位碼,將其對應的整型數據確定為解碼整型數據;根據常規解碼方式對後續碼值進行解碼,具體包括循環執行以下步驟讀取所述第一設定數目的後續碼值作為一組完整二進位碼,將其對應的整型數據確定為解碼整型數據。
優選的,所述整型數據解壓縮方法還包括獲取所述壓縮文件基本信息中存儲的預處理過程信息;則將所述賦值後的整型數據順序組成解壓縮整型數據序列之前,還包括對所述賦值後的整型數據進行反預處理,所述反預處理的過程與所述預處理的過程互逆;將所述賦值後的整型數據順序組成解壓縮整型數據序列,具體為將所述反預處理後得到的整型數據順序組成解壓縮整型數據序列。一種整型數據無損壓縮裝置,包括位重組處理模塊,用於讀取原始整型數據序列;確定原始比特位總數,所述原始比特位總數為所述原始整型數據的完整二進位碼對應的比特位數;針對所述原始比特位總數中的每一比特位,依次提取所有原始整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串;按照設定比特位順序對所述原始比特位總數中所有比特位對應的二進位碼串進行排列,得到位重組二進位碼序列;以第一設定數目的碼值為一組完整二進位碼,順序提取所述位重組二進位碼序列中的各組碼值並確定對應的整型數據,將確定的整型數據組成位重組整型數據序列;數據塊劃分及基本信息存儲模塊,用於以第二設定數目個整型數據為一數據塊,將所述位重組整型數據序列順序劃分成至少一個數據塊;存儲壓縮文件基本信息,所述壓縮文件基本信息包括原始整型數據總數、所述原始比特位總數、所述設定比特位順序、所述第一設定數目、所述第二設定數目;編碼處理模塊,用於針對所述每一數據塊執行以下編碼處理確定當前數據塊中出現概率最大的整型數據及對應的概率值,判斷所述概率值是否大於設定閾值,若是,則根據標記編碼方式對當前數據塊進行編碼,否則,根據常規編碼方式對當前數據塊進行編碼;對所有數據塊完成所述編碼處理後,將輸出的二進位碼組成二進位壓縮文件;其中,編碼處理模塊根據標記編碼方式對當前數據塊進行編碼時,具體用於輸出標記編碼方式標記符;輸出當前數據塊中出現概率最大的整型數據的完整二進位碼;順序讀取當前數據塊中的每一整型數據,判斷該整型數據是否為所述出現概率最大的整型數據,若是,則輸出替代標記符,否則,依次輸出非替代標記符和該整型數據的完整二進位碼;編碼處理模塊根據常規編碼方式對當前數據塊進行編碼時,具體用於輸出常規編碼方式標記符;順序讀取當前數據塊中的每一整型數據,並輸出該整型數據的完整二進位碼。優選的,所述整型數據無損壓縮裝置還包括預處理模塊,用於對所述原始整型數據序列進行預處理獲得預處理整型數據序列,所述預處理整型數據序列的均方值小於所述原始整型數據序列的均方值;則所述位重組處理模塊針對所述原始比特位總數中的每一比特位,依次提取所有原始整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串時,具體用於針對所述原始比特位總數中的每一比特位,依次提取所述預處理整型數據序列中所有預處理整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串;所述數據塊劃分及基本信息存儲模塊還用於將所述預處理的過程信息存儲至壓縮文件基本信息中。一種整型數據解壓縮裝置,包括基本信息解析模塊,用於對壓縮文件基本信息進行解析,獲取所述壓縮文件基本信息中存儲的原始整型數據總數、原始比特位總數、設定比特位順序、第一設定數目、數據塊個數、第二設定數目;解碼處理模塊,用於對二進位壓縮文件執行以下解碼處理過程順序讀取一個未讀碼值;確定所述未讀碼值為標記編碼方式標記符時,根據標記解碼方式對後續碼值進行解碼,直至得到所述第二設定數目的解碼整型數據;確定所述未讀碼值為常規編碼方式標記符時,根據常規解碼方式對後續碼值進行解碼,直至得到所述第二設定數目的解碼整型數據;重複執行上述解碼處理過程,直至得到數目為所述原始整型數據總數乘以原始比特位總數再除以第一設定數目個解碼整型數據;位恢復處理模塊,用於將所述解碼處理過程得到的所有解碼整型數據的完整二進位碼順序組合為位恢復二進位碼序列;定義多個整型數據,所述定義的多個整型數據總數等於所述原始整型數據總數,且所述定義的每一整型數據的完整二進位碼對應的比特位數等於所述原始比特位總數;以所述原始整型數據總數為一組,順序提取所述位恢復二進位碼序列中的各組碼值,按照所述設定比特位順序將每一組碼值包括的各碼值依次賦值給所述定義的各整型數據的相應比特位;將所述賦值後的整型數據順序組成解壓縮整型數據序列;其中,解碼處理模塊根據標記解碼方式對後續碼值進行解碼時,具體用於讀取所述第一設定數目的後續碼值作為一組完整二進位碼,將其對應的整型數據確定為被替代整型數據,並循環執行以下步驟繼續讀取一個後續碼值;確定該後續碼值為替代標記符時,將所述被替代 整型數據確定為解碼整型數據;確定該後續碼值為非替代標記符時,繼續讀取所述第一設定數目的後續碼值作為一組完整二進位碼,將其對應的整型數據確定為解碼整型數據;解碼處理模塊根據常規解碼方式對後續碼值進行解碼時,具體用於循環執行以下步驟讀取所述第一設定數目的後續碼值作為一組完整二進位碼,將其對應的整型數據確定為解碼整型數據。優選的,所述整型數據解壓縮裝置中,所述基本信息解析模塊還用於獲取所述壓縮文件基本信息中存儲的預處理過程信息;所述整型數據解壓縮裝置還包括反預處理模塊,用於對所述賦值後的整型數據進行反預處理,所述反預處理的過程與所述預處理的過程互逆;則所述位恢復處理模塊將所述賦值後的整型數據順序組成解壓縮整型數據序列時,具體用於將所述反預處理後得到的整型數據順序組成解壓縮整型數據序列。藉助於上述技術方案,本發明算法簡單、易於實現,編碼解碼效率高,壓縮效果好,可用於對音頻數據、地震勘探信號、地球物理測井波形數據和圖像數據等多種類型的整型數據進行無損壓縮和解壓縮;測試表明,本方法對經過去相關處理後的聲波測井波形數據無損壓縮的平均壓縮比比算術編碼、LZff, WinRAR軟體和FLAC軟體高14. 59^56. 4%,具有良好的應用前景。


為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖1是本發明實施例一提供的整型數據無損壓縮方法流程圖;圖2是本發明實施例二提供的整型數據解壓縮方法流程圖;圖3是本發明實施例三提供的整型數據無損壓縮方法和解壓縮方法流程示意圖;圖4是本發明實施例三提供的位重組處理過程具體流程圖;圖5是本發明實施例三提供的編碼處理過程具體流程圖;圖6是本發明實施例三提供的標記編碼方式編碼過程具體流程圖;圖7是本發明實施例三提供的解碼處理過程具體流程圖;圖8是本發明實施例三提供的位恢復處理過程具體流程圖;圖9是本發明實施例四提供的整型數據無損壓縮裝置結構示意圖;圖10是本發明實施例五提供的整型數據解壓縮裝置結構示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。需要說明的是,本發明實施例中所說的「原始整型數據序列」為採用本發明提供的整型數據無損壓縮方法進行壓縮的原始文件;本發明實施例中所說的「二進位壓縮文件」為採用本發明提供的整型數據無損壓縮方法對「原始整型數據序列」進行壓縮後得到的文件;本發明實施例中所說的「解壓縮整型數據序列」為採用本發明提供的整型數據解壓縮方法對「二進位壓縮文件」進行解壓後得到的文件,該文件與壓縮前的原始文件一致,即與「原始整型數據序列」 一致本發明實施例中所說的「完整二進位碼」是指一個整型數據在計算機內存中以二進位形式存儲時對應的全部二進位碼。實施例一本實施例提供一種整型數據無損壓縮方法,如圖1所示,該方法包括位重組處理過程101 :讀取原始整型數據序列;確定原始比特位總數,所述原始比特位總數為所述原始整型數據的完整二進位碼對應的比特位數;針對所述原始比特位總數中的每一比特位,依次提取所有原始整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串;按照設定比特位順序對所述原始比特位總數中所有比特位對應的二進位碼串進行排列,得到位重組二進位碼序列;以第一設定數目的碼值為一組完整二進位碼,順序提取所述位重組二進位碼序列中的各組碼值並確定對應的整型數據,將確定的整型數據組成位重組整型數據序列;數據塊劃分及基本信息生成過程102 :以第二設定數目個整型數據為一數據塊,將所述位重組整型數據序列順序劃分成至少一個數據塊;存儲壓縮文件基本信息,所述壓縮文件基本信息包括原始整型數據總數、所述原始比特位總數、所述設定比特位順序、所述第一設定數目、所述第二設定數目;編碼處理過程103 :針對每一數據塊執行以下編碼處理確定當前數據塊中出現概率最大的整型數據及對應的概率值,判斷所述概率值是否大於設定閾值,若是,則根據標記編碼方式對當前數據塊進行編碼,否則,根據常規編碼方式對當前數據塊進行編碼;對所有數據塊完成所述編碼處理後,將輸出的二進位碼組成二進位壓縮文件;其中,編碼處理過程103中,根據標記編碼方式對當前數據塊進行編碼,具體包括輸出標記編碼方式標記符;輸出當前數據塊中出現概率最大的整型數據的完整二進位碼;順序讀取當前數據塊中的每一整型數據,判斷該整型數據是否為所述出現概率最大的整型數據,若是,則輸出替代標記符,否則,依次輸出非替代標記符和該整型數據的完整二進位碼;編碼處理過程103中,根據常規編碼方式對當前數據塊進行編碼,具體包括輸出常規編碼方式標記符;順序讀取當前數據塊中的每一整型數據,並輸出該整型數據的完整二進位碼。具體的,原始比特位總 數為原始整型數據在計算機內存中以二進位形式存儲所佔用的比特位數,如8比特位、16比特位、32比特位等。位重組處理過程101中,針對所述原始比特位總數中的每一比特位,依次提取所有原始整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串,具體如下確定原始比特位總數的最高比特位和最低比特位(一般最左邊的一位為最高比特位,最右邊一位是最低比特位),針對第k (k=l, 2,3....,最高比特位彡k彡最低比特位)比特位,依次提取所有原始整型數據的完整二進位碼中第k比特位的碼值,得到第k比特位對應的二進位碼串。位重組處理過程101中,按照設定比特位順序對所述原始比特位總數中所有比特位對應的二進位碼串進行排列,得到位重組二進位碼序列,具體可以如下設定比特位順序為從高比特位到低比特位,則按照從最高比特位至最低比特位的順序排列各比特位對應的二進位碼串,得到相應的位重組二進位碼序列;其中,本實施例對所述設定比特位順序不作限定,可以從高比特位到低比特位,也可以從低比特位到高比特位,還可以為任意比特位順序。位重組處理過程101中,以第一設定數目的碼值為一組完整二進位碼,順序提取所述位重組二進位碼序列中的各組碼值並確定對應的整型數據,將確定的整型數據組成位重組整型數據序列,具體可以為以16個碼值為一組完整二進位碼,順序提取所述位重組二進位碼序列中的碼值,並且每提取16個碼值作為一組完整二進位碼確定對應的整型數據,將依次確定的整型數據組合成位重組整型數據序列;需要說明的是,本實施例中第一設定數目可以等於或不等於原始比特位總數,例如,原始整型數據的完整二進位碼佔用16比特位時,第一設定數目可以為8或32,即位重組整型數據序列中各整型數據的完整二進位碼佔用8比特位或32比特位;對於某一類型的原始整型數據序列而言,其包含的原始整型數據的完整二進位碼往往具有高比特位(或低比特位)全部或大部分為碼值0 (或碼值I)的共性特徵;位重組處理過程101就是利用這種共性特徵,對所有原始整型數據的二進位碼進行重新排列組合,使得到的位重組二進位碼序列中連續出現碼值0 (或碼值I)的概率較高,相應的,根據位重組二進位碼序列得到的位重組整型數據序列中,某一整型數據出現的概率會明顯高於該序列中其他整型數據出現的概率,利用這個特點,就可以使編碼處理過程103取得較好的編碼處理效果,即獲得較好的無損壓縮效果;需要說明的是,當原始整型數據序列包含的原始整型數據不具有上述共性特徵時,也可以採用本實施例提供的整型數據無損壓縮方法,但是獲得的壓縮效果不如壓縮具有上述共性特徵的原始整型數據序列獲得的壓縮效果好。數據塊劃分及基本信息生成過程102中,第二設定數目表徵了數據塊的大小,一般情況下,對於相同類型的原始整型數據序列(如相同類型的音樂文件、相同條件下採集得到的地球物理勘探信號等),其最佳數據塊的大小是相近的,因此可依據經驗確定數據塊的大小,即第二設定數目可依據經驗設置;若根據第二設定數目不能將位重組整型數據序列順序劃分成整數個數據塊,則將最後不足一個數據塊的若干整型數據作為一個特殊的數據塊。數據塊劃分及基本信息生成過程102中,存儲壓縮文件基本信息,主要包括存儲原始整型數據總數、所述原始比特位總數、所述設定比特位順序、所述第一設定數目、所述第二設定數目等信息,這些信息是解壓縮過程所必須的信息。編碼處理過程103中,標記編碼方式是利用了位重組整型數據序列或其局部子序列具有某一整型數據出現的概率會明顯高於該序列中其他整型數據出現的概率的特點,採用替代標記符代替數據塊中出現概率最大的整型數據的方式對位重組整型數據序列進行編碼,即輸出替代標記符以代替數據塊中出現概率最大的整型數據的二進位碼,同時原樣輸出數據塊中其他整型數據的二進位碼,使標記編碼方式的編碼結果佔用的存儲空間小於位重組整型數據序列的二進位碼佔用的存儲空間,以達到壓縮文件的目的;標記編碼方式中,利用替代標記符代替數據塊中出現概率最大的整型數據的完整二進位碼能夠起到節省存儲空間的作用,但是每原樣輸出數據塊中的一個其他整型數據(非數據塊中出現概率最大的整型數據)的完整二進位碼之前都要輸出一位非替代標記符,這在一定程度上增加了編碼結果佔用的存儲空間,因此要想達到壓縮文件的目的,只能在數據塊中某一整型數據的出現概率大於設定閾值時才能使用標記編碼方式進行編碼,否貝U,就使用常規編碼方式進行編碼。編碼處理過程103中,標記編碼方式標記符標識了數據塊採用標記編碼方式進行編碼,常規編碼方式標記符標識了數據塊採用常規編碼方式進行編碼,以便於解壓縮過程中解碼處理的順利實現。需要說明的是,本實施例提供的整型數據無損壓縮方法,對原始整型數據序列進行壓縮後最終生成的的文件中包含兩部分壓縮文件基本信息和二進位壓縮文件;具體實施中,可以將壓縮文件基本信息與二進位壓縮文件順序存儲為一個文件,也可以將壓縮文件基本信息與二進位壓縮文件存儲至一個文件夾中,但無論怎樣存儲,在執行解壓縮過程時都需要先對壓縮文件基本信息進行解析,然後才能對二進位壓縮文件進行解壓縮。本實施例提供的整型數據無損壓縮方法的壓縮處理速度快,算法簡單、易於實現,編碼效率高,具有較好的壓縮效果,可適用於對音頻數據、地震勘探信號、地球物理測井波形數據和圖像數據等多種類型的整型數據進行壓縮,具有良好的應用前景。優選的,所述設定閾值按照如下方式確定
假設所述第二設定數目個整型數據滿足條件分別採用標記編碼方式和常規編碼方式進行編碼時,得到的編碼結果佔用相同大小的存儲空間;則將該第二設定數目個整型數據中各整型數據的出現概率的最大值確定為所述設定閾值。具體的,以整型數據的完整二進位碼比特位數為16位(第一設定數目為16),每一數據塊包含100個(第二設定數目為100)整型數據為例,假設某一數據塊滿足上述條件,設該數據塊中各數據出現概率的最大值Pmax = Po,則採用標記編碼方式的編碼結果佔用17+100XPJ17X 100X (1-P0)位比特位的存儲空間,採用常規編碼方式的編碼結果佔用16X100+1位比特位的存儲空間,通過解方程17+100XP0+17X100X (1-P0) = 16X100+1,即可計算出Ptl的值,相應的就可確定出設定閾值的大小;一般情況下,計算得到的P。為小數,只需根據精度需求按照四捨五入的方法取有限精度的值作為閾值即可。優選的,本實施例提供的整型數據無損壓縮方法中,位重組處理過程101之前,還包括預處理過程對所述原始整型數據序列進行預處理獲得預處理整型數據序列,所述預處理整型數據序列的均方值小於所述原始整型數據序列的均方值;則位重組處理過程101中,針對所述原始比特位總數中的每一比特位,依次提取所有原始整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串,具體為針對所述原始比特位總數中的每一比特位,依次提取所述預處理整型數據序列中所有預處理整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串;數據塊劃分及基本信息生成過程102中形成的所述壓縮文件基本信息還包括所述預處理的過程信息。具體的,預處理過程是通過採用數據處理方法對原始整型數據序列進行處理,預處理後得到的整型數據序列的均方值減小,其目的是提高整型數據序列的二進位碼的共性特徵,該過程的處理效果越好,則編碼處理過程103得到的編碼結果越好,壓縮效果越好;當對原始整型數據序列進行預處理後得到預處理整型數據序列,並且預處理整型數據序列的均方值較小(越小越好)或均值為零且具有小方差正態分布特徵時,該預處理整型數據序列中各預處理整型數據的二進位碼具有較好的共性特徵,例如該預處理整型數據序列中各預處理整型數據的高比特位(或低比特位)全部或大部分為碼值0 (或碼值I);當原始整型數據序列本身即滿足均方值較小或均值為零且具有小方差正態分布特徵時,其中各原始整型數據的二進位碼就會具有較好的共性特徵時,此時,不必再進行數據預處理,即省略預處理過程;壓縮文件基本信息中包含的預處理過程信息可以包括預處理狀態信息(例如為I時表不未做預處理)、預處理方法信息(例如為2時表不米用小波變換方法,為3時表不米用線性預測處理,為4時表示採用非線性預測處理)等。需要說明的是,預處理過程必須是可逆的,以便在解壓縮時通過採用與數據預處理過程互逆的反預處理過程進行恢復。優選的,對所述原始整型數據序列進行預處理,具體包括對所述原始整型數據進行線性預測處理/非線性預測處理/小波變換處理;和/或,將所述原始整型數據中的有符號整型數據轉換為無符號整型數據。具體的,可以採用線性預測處理/非線性預測處理/小波變換處理等數據處理方法對原始整型數據序列進行數據預處理,使其滿足均方值較小或均值為零且具有小方差正態分布特徵;當經過上述處理之後的整型數據序列中既包括正整型數據,又包括負整型數據時,為了進一步提高二進位碼的共性特徵,可將有符號整型數據轉換為無符號整型數據,例如可採用如下轉換公式實現該目的
權利要求
1.一種整型數據無損壓縮方法,其特徵在於,包括 讀取原始整型數據序列;確定原始比特位總數,所述原始比特位總數為所述原始整型數據的完整二進位碼對應的比特位數;針對所述原始比特位總數中的每一比特位,依次提取所有原始整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串;按照設定比特位順序對所述原始比特位總數中所有比特位對應的二進位碼串進行排列,得到位重組二進位碼序列;以第一設定數目的碼值為一組完整二進位碼,順序提取所述位重組二進位碼序列中的各組碼值並確定對應的整型數據,將確定的整型數據組成位重組整型數據序列; 以第二設定數目個整型數據為一數據塊,將所述位重組整型數據序列順序劃分成至少一個數據塊;存儲壓縮文件基本信息,所述壓縮文件基本信息包括原始整型數據總數、所述原始比特位總數、所述設定比特位順序、所述第一設定數目、所述第二設定數目; 針對所述每一數據塊執行以下編碼處理確定當前數據塊中出現概率最大的整型數據及對應的概率值,判斷所述概率值是否大於設定閾值,若是,則根據標記編碼方式對當前數據塊進行編碼,否則,根據常規編碼方式對當前數據塊進行編碼;對所有數據塊完成所述編碼處理後,將輸出的二進位碼組成二進位壓縮文件; 其中,根據標記編碼方式對當前數據塊進行編碼,具體包括 輸出標記編碼方式標記符;輸出當前數據塊中出現概率最大的整型數據的完整二進位碼;順序讀取當前數據塊中的每一整型數據,判斷該整型數據是否為所述出現概率最大的整型數據,若是,則輸出替代標記符,否則,依次輸出非替代標記符和該整型數據的完整二進位碼; 根據常規編碼方式對當前數據塊進行編碼,具體包括 輸出常規編碼方式標記符;順序讀取當前數據塊中的每一整型數據,並輸出該整型數據的完整二進位碼。
2.根據權利要求1所述的整型數據無損壓縮方法,其特徵在於,所述設定閾值按照如下方式確定 假設所述第二設定數目個整型數據滿足條件分別採用標記編碼方式和常規編碼方式進行編碼時,得到的編碼結果佔用相同大小的存儲空間; 則將該第二設定數目個整型數據中各整型數據的出現概率的最大值確定為所述設定閾值。
3.根據權利要求1或2所述的整型數據無損壓縮方法,其特徵在於,讀取原始整型數據序列之前,還包括對所述原始整型數據序列進行預處理獲得預處理整型數據序列,所述預處理整型數據序列的均方值小於所述原始整型數據序列的均方值; 則針對所述原始比特位總數中的每一比特位,依次提取所有原始整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串,具體為針對所述原始比特位總數中的每一比特位,依次提取所述預處理整型數據序列中所有預處理整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串; 所述壓縮文件基本信息還包括所述預處理的過程信息。
4.根據權利要求3所述的整型數據無損壓縮方法,其特徵在於,對所述原始整型數據序列進行預處理,具體包括對所述原始整型數據進行線性預測處理/非線性預測處理/小波變換處理;和/或, 將所述原始整型數據中的有符號整型數據轉換為無符號整型數據。
5.一種整型數據解壓縮方法,其特徵在於,包括 對壓縮文件基本信息進行解析,獲取所述壓縮文件基本信息中存儲的原始整型數據總數、原始比特位總數、設定比特位順序、第一設定數目、第二設定數目; 對二進位壓縮文件執行以下解碼處理過程順序讀取一個未讀碼值;確定所述未讀碼值為標記編碼方式標記符時,根據標記解碼方式對後續碼值進行解碼,直至得到所述第二設定數目的解碼整型數據;確定所述未讀碼值為常規編碼方式標記符時,根據常規解碼方式對後續碼值進行解碼,直至得到所述第二設定數目的解碼整型數據;重複執行上述解碼處理過程,直至得到數目為所述原始整型數據總數乘以原始比特位總數再除以第一設定數目個解碼整型數據; 將所述解碼處理過程得到的所有解碼整型數據的完整二進位碼順序組合為位恢復二進位碼序列;定義多個整型數據,所述定義的多個整型數據總數等於所述原始整型數據總數,且所述定義的每一整型數據的完整二進位碼對應的比特位數等於所述原始比特位總數;以所述原始整型數據總數為一組,順序提取所述位恢復二進位碼序列中的各組碼值,按照所述設定比特位順序將每一組碼值包括的各碼值依次賦值給所述定義的各整型數據的相應比特位;將所述賦值後的整型數據順序組成解壓縮整型數據序列; 其中,根據標記解碼方式對後續碼值進行解碼,具體包括 讀取所述第一設定數目的後續碼值作為一組完整二進位碼,將其對應的整型數據確定為被替代整型數據,並循環執行以下步驟繼續讀取一個後續碼值;確定該後續碼值為替代標記符時,將所述被替代整型數據確定為解碼整型數據;確定該後續碼值為非替代標記符時,繼續讀取所述第一設定數目的後續碼值作為一組完整二進位碼,將其對應的整型數據確定為解碼整型數據; 根據常規解碼方式對後續碼值進行解碼,具體包括 循環執行以下步驟讀取所述第一設定數目的後續碼值作為一組完整二進位碼,將其對應的整型數據確定為解碼整型數據。
6.根據權利要求5所述的整型數據解壓縮方法,其特徵在於,還包括獲取所述壓縮文件基本信息中存儲的預處理過程信息;則 將所述賦值後的整型數據順序組成解壓縮整型數據序列之前,還包括對所述賦值後的整型數據進行反預處理,所述反預處理的過程與所述預處理的過程互逆; 將所述賦值後的整型數據順序組成解壓縮整型數據序列,具體為將所述反預處理後得到的整型數據順序組成解壓縮整型數據序列。
7.—種整型數據無損壓縮裝置,其特徵在於,包括 位重組處理模塊,用於讀取原始整型數據序列;確定原始比特位總數,所述原始比特位總數為所述原始整型數據的完整二進位碼對應的比特位數;針對所述原始比特位總數中的每一比特位,依次提取所有原始整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串;按照設定比特位順序對所述原始比特位總數中所有比特位對應的二進位碼串進行排列,得到位重組二進位碼序列;以第一設定數目的碼值為一組完整二進位碼,順序提取所述位重組二進位碼序列中的各組碼值並確定對應的整型數據,將確定的整型數據組成位重組整型數據序列; 數據塊劃分及基本信息存儲模塊,用於以第二設定數目個整型數據為一數據塊,將所述位重組整型數據序列順序劃分成至少一個數據塊;存儲壓縮文件基本信息,所述壓縮文件基本信息包括原始整型數據總數、所述原始比特位總數、所述設定比特位順序、所述第一設定數目、所述第二設定數目; 編碼處理模塊,用於針對所述每一數據塊執行以下編碼處理確定當前數據塊中出現概率最大的整型數據及對應的概率值,判斷所述概率值是否大於設定閾值,若是,則根據標記編碼方式對當前數據塊進行編碼,否則,根據常規編碼方式對當前數據塊進行編碼;對所有數據塊完成所述編碼處理後,將輸出的二進位碼組成二進位壓縮文件; 其中,編碼處理模塊根據標記編碼方式對當前數據塊進行編碼時,具體用於輸出標記編碼方式標記符;輸出當前數據塊中出現概率最大的整型數據的完整二進位碼;順序讀取當前數據塊中的每一整型數據,判斷該整型數據是否為所述出現概率最大的整型數據,若是,則輸出替代標記符,否則,依次輸出非替代標記符和該整型數據的完整二進位碼; 編碼處理模塊根據常規編碼方式對當前數據塊進行編碼時,具體用於輸出常規編碼方式標記符;順序讀取當前數據塊中的每一整型數據,並輸出該整型數據的完整二進位碼。
8.根據權利要求7所述的整型數據無損壓縮裝置,其特徵在於,還包括 預處理模塊,用於對所述原始整型數據序列進行預處理獲得預處理整型數據序列,所述預處理整型數據序列的均方值小於所述原始整型數據序列的均方值; 則所述位重組處理模塊針對所述原始比特位總數中的每一比特位,依次提取所有原始整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串時,具體用於針對所述原始比特位總數中的每一比特位,依次提取所述預處理整型數據序列中所有預處理整型數據的完整二進位碼中該比特位的碼值,得到該比特位對應的二進位碼串;所述數據塊劃分及基本信息存儲模塊還用於將所述預處理的過程信息存儲至壓縮文件基本信息中。
9.一種整型數據解壓縮裝置,其特徵在於,包括 基本信息解析模塊,用於對壓縮文件基本信息進行解析,獲取所述壓縮文件基本信息中存儲的原始整型數據總數、原始比特位總數、設定比特位順序、第一設定數目、第二設定數目; 解碼處理模塊,用於對二進位壓縮文件執行以下解碼處理過程順序讀取一個未讀碼值;確定所述未讀碼值為標記編碼方式標記符時,根據標記解碼方式對後續碼值進行解碼,直至得到所述第二設定數目的解碼整型數據;確定所述未讀碼值為常規編碼方式標記符時,根據常規解碼方式對後續碼值進行解碼,直至得到所述第二設定數目的解碼整型數據;重複執行上述解碼處理過程,直至得到數目為所述原始整型數據總數乘以原始比特位總數再除以第一設定數目個解碼整型數據; 位恢復處理模塊,用於將所述解碼處理過程得到的所有解碼整型數據的完整二進位碼順序組合為位恢復二進位碼序列;定義多個整型數據,所述定義的多個整型數據總數等於所述原始整型數據總數,且所述定義的每一整型數據的完整二進位碼對應的比特位數等於所述原始比特位總數;以所述原始整型數據總數為一組,順序提取所述位恢復二進位碼序列中的各組碼值,按照所述設定比特位順序將每一組碼值包括的各碼值依次賦值給所述定義的各整型數據的相應比特位;將所述賦值後的整型數據順序組成解壓縮整型數據序列; 其中,解碼處理模塊根據標記解碼方式對後續碼值進行解碼時,具體用於 讀取所述第一設定數目的後續碼值作為一組完整二進位碼,將其對應的整型數據確定為被替代整型數據,並循環執行以下步驟繼續讀取一個後續碼值;確定該後續碼值為替代標記符時,將所述被替代整型數據確定為解碼整型數據;確定該後續碼值為非替代標記符時,繼續讀取所述第一設定數目的後續碼值作為一組完整二進位碼,將其對應的整型數據確定為解碼整型數據; 解碼處理模塊根據常規解碼方式對後續碼值進行解碼時,具體用於 循環執行以下步驟讀取所述第一設定數目的後續碼值作為一組完整二進位碼,將其對應的整型數據確定為解碼整型數據。
10.根據權利要求9所述的整型數據解壓縮裝置,其特徵在於, 所述基本信息解析模塊還用於獲取所述壓縮文件基本信息中存儲的預處理過程信息; 所述整型數據解壓縮裝置還包括反預處理模塊,用於對所述賦值後的整型數據進行反預處理,所述反預處理的過程與所述預處理的過程互逆; 則所述位恢復處理模塊將所述賦值後的整型數據順序組成解壓縮整型數據序列時,具體用於將所述反預處理後得到的整型數據順序組成解壓縮整型數據序列。
全文摘要
本發明提供一種整型數據無損壓縮方法、解壓縮方法及裝置,所述整型數據壓縮方法包括位重組處理過程、數據塊劃分及基本信息存儲過程和編碼處理過程;所述整型數據解壓縮方法包括基本信息解析過程、解碼處理過程和位恢復處理過程;所述整型數據壓縮裝置包括位重組處理模塊、數據塊劃分及基本信息存儲模塊和編碼處理模塊;所述整型數據解壓縮裝置包括基本信息解析模塊、解碼處理模塊和位恢復處理模塊。本發明算法簡單、易於實現,編碼解碼效率高,壓縮效果好,可用於對音頻數據、地震勘探信號、地球物理測井波形數據和圖像數據等多種類型的整型數據進行無損壓縮和解壓縮。
文檔編號H03M7/30GK103067022SQ20121055486
公開日2013年4月24日 申請日期2012年12月19日 優先權日2012年12月19日
發明者蔡明 , 喬文孝, 鞠曉東, 車小花, 盧俊強 申請人:中國石油天然氣集團公司, 中國石油大學(北京)

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀