解壓縮電路與相關的壓縮方法與解壓縮方法
【專利摘要】本發明涉及一用以解壓縮一數據的解壓縮電路以及相關的壓縮方法與解壓縮方法。解壓縮電路包含有一第一解壓縮單元以及一第二解壓縮單元,其中該數據依序包含有被壓縮的一第一字串、一距離長度對以及一第二字串,該第一解壓縮單元用以對該數據進行一第一解壓縮操作以依序得到該第一字串、該距離長度對以及該第二字串;該第二解壓縮單元用以接收并解壓縮該第一字串、該距離長度對以及該第二字串;其中該第一解壓縮單元在解壓縮到該第二字串時,不需要使用到有關于該距離長度對的數據。
【專利說明】解壓縮電路與相關的壓縮方法與解壓縮方法
【技術領域】
[0001] 本發明有關于一種解壓縮電路,尤指一種采用藍培爾-西弗-馬可夫鏈演算法 (Lempel-Ziv-Markov chain-Algorithm,LZMA)的解壓縮電路及其相關的解壓縮方法。
【背景技術】
[0002] 在使用藍培爾-西弗-馬可夫鏈演算法(Lempel-Ziv-Markov chain-Algorithm, LZMA)的壓縮操作中,會將重復的字元壓縮為一距離長度對(distance-length pair),舉 例來說,字串"ABCDABCE"可以被壓縮為"A、B、C、D、(4,3)、E",其中(4,3)被稱為距離長度 對,且用來表示往前四個字元后的三個字元(亦即"ABC"),之后再進行另一壓縮操作以產生 一壓縮后數據。另一方面,在解壓縮的過程中,會先使用二元算術編碼(Binary Arithmetic 〇)虹叩,84〇先將壓縮數據解壓縮為"4、8、(:、0、(4,3)3",之后再使用1^77解壓縮操作來 將"A、B、C、D、(4, 3)、E"解壓縮還原為"ABCDABCE"。然而,使用二元算術編碼方式對距離長 度對的后一個字元(亦即俗稱的"delta literal",本例中的"E")解壓縮時會使用到前一個 字元(本例中的第7個字元"C")以及距離長度對所對應的字串的后一個字元(本例中的第4 個字元"D")的數據,因此,當使用二元算術編碼解壓縮到"E"時,需要等到使用LZ77將距 離長度對(4, 3)解壓縮結束之后才能將"C"、"D"提供給前端進行二元算術編碼解壓縮,因 而降低了解壓縮效率。此外,目前使用藍培爾-西弗-馬可夫鏈演算法的壓縮/解壓縮方 式均是使用軟體來實作。
【發明內容】
[0003] 因此,本發明的目的之一在于提供一種解壓縮電路及其相關的壓縮方法與解壓縮 方法,其可以有效率地進行解壓縮,以解決已知技術中的問題。
[0004] 依據本發明一實施例,一種壓縮方法,用于對一字串進行壓縮,包含:依據該字串 中的多個字元產生一距離長度對;以及壓縮該些字元后的下一個字元;其中壓縮該下一個 字元時不使用到與該距離長度對相關的資訊。
[0005] 依據本發明另一實施例,一用以解壓縮一數據的解壓縮電路包含有一第一解壓縮 單元以及一第二解壓縮單元,其中該數據依序包含有被壓縮的一第一字串、一距離長度對 以及一第二字串,該第一解壓縮單元用以對該數據進行一第一解壓縮操作以依序得到該第 一字串、該距離長度對以及該第二字串;該第二解壓縮單元用以接收并解壓縮該第一字串、 該距離長度對以及該第二字串;其中該第一解壓縮單元在解壓縮到該第二字串時,不需要 使用到有關于該距離長度對的數據。
[0006] 依據本發明另一實施例,一種解壓縮方法,用以解壓縮一數據,該數據依序包含有 被壓縮的一第一字串、一距離長度對以及一第二字串,該解壓縮方法包含有:對該數據進行 一第一解壓縮操作以依序得到該第一字串、該距離長度對以及該第二字串;以及接收并解 壓縮該第一字串、該距離長度對以及該第二字串;其中該數據進行該第一解壓縮操作以依 序得到該第一字串、該距離長度對以及該第二字串的步驟包含有:在對該第二字串進行該 第一解壓縮時,不需要使用到有關于該距離長度對的數據。
【專利附圖】
【附圖說明】
[0007] 圖1為依據本發明一實施例的一種壓縮方法的流程圖。
[0008] 圖2為依據本發明一實施例的解壓縮電路的示意圖。
[0009] 圖3為依據本發明一實施例的解壓縮方法的流程圖。
[0010] 符號說明
[0011] 100、102、300、302 步驟
[0012] 200解壓縮電路
[0013] 210改良式BAC解壓縮單元
[0014] 220先進先出緩沖器
[0015] 230 LZ77解壓縮單元
[0016] 250動態隨機存取存儲器
【具體實施方式】
[0017] BAC壓縮是針對二元(二進位)字串進行壓縮,而在BAC壓縮過程中,針對每一個 位元,BAC壓縮會先對此位元作分類,例如目前要壓縮的這個位元是距離(distance)或是 字元(literal),或是這個位元是字元的第一個位元…等等,而每一個分類會有一個獨立的 機率值,此機率值是可以隨著壓縮過程而更新的。在對此位元進行壓縮的過程中,會先去 看這個位元所對應的機率值,再根據這個位元的值是" 1"或"0"來更新機率值。在傳統的 BAC壓縮過程中,對于一距離長度對的下一個字元進行壓縮的過程中,會需要使用到與該距 離長度對相關的字元,舉例來說,當字串"ABCDABCE"被壓縮為"A、B、C、D、(4, 3)、E"時,壓 縮"E"的過程會需要使用到距離長度對(4,3)的相關的數據,而使得后續在對"A、B、C、D、 (4, 3)、E"中的"E"進行解壓縮的過程中會需要使用到與距離長度對(4, 3)相關的字元"C" 與"D",因而降低了解壓縮效率。
[0018] 請參考圖1,其為依據本發明一實施例的一種壓縮方法的流程圖:
[0019] 步驟100:流程開始。
[0020] 步驟102 :對一字串中的每個字元循序進行壓縮,以產生一壓縮后字串,其中當該 字串中的多個字元在進行壓縮的過程中被壓縮產生一距離長度對時,對緊接該多個字元后 的一下一個字元進行壓縮的過程中不需要使用到該字串中與該距離長度對相關的字元。
[0021] 舉一例來說明上述的壓縮流程,假設欲壓縮的字串為"ABCDABCE",則A、B、C、D、A、 B、C會循序進行壓縮操作,并壓縮為AB⑶(4, 3),其中(4, 3)代表這個位置開始的三個字元, 相同于向前數4個字元開始的三個字元,也就是A、B、C,而當壓縮到距離長度對(4, 3)的下 一個字元"E"時,壓縮"E"的過程中不需要使用到與距離長度對(4, 3)相關的字元,于一實 施例中,壓縮"E"的方式與壓縮字串的第一個字元"A"的方式相同。
[0022] 實作上來說,請參見以下所示依據本發明的壓縮方法:
[0023]
【權利要求】
1. 一種壓縮方法,用于對一字串進行壓縮,包含: 依據該字串中的多個字元產生一距離長度對;以及 壓縮該些字元后的下一個字元; 其中壓縮該下一個字元時不使用到與該距離長度對相關的資訊。
2. 如權利要求1所述的壓縮方法,其特征在于,對該下一個字元的壓縮方式相同于對 該字串的第一個字元的壓縮方式。
3. 如權利要求1所述的壓縮方法,其特征在于,該字串為一二元字串,且在對該字串進 行壓縮的過程會適應性地更新所使用的機率值。
4. 一種解壓縮電路,用以解壓縮一數據,該數據依序包含有被壓縮的一第一字串、一距 離長度對以及一第二字串,該解壓縮電路包含有: 一第一解壓縮單元,用以對該數據進行一第一解壓縮操作以依序得到該第一字串、該 距離長度對以及該第二字串;以及 一第二解壓縮單元,用以接收并解壓縮該第一字串、該距離長度對以及該第二字串; 其中該第一解壓縮單元在解壓縮到該第二字串時,不需要使用到有關于該距離長度對 的數據。
5. 如權利要求4所述的解壓縮電路,其特征在于,該第二解壓縮單元為一 LZ77解壓縮 單元。
6. 如權利要求4所述的解壓縮電路,其特征在于,該第一解壓縮單元將該數據中每一 個位元值與一參考值比較,并根據比較結果來進行解壓縮。
7. -種解壓縮方法,用以解壓縮一數據,該數據依序包含有被壓縮的一第一字串、一距 離長度對以及一第二字串,該解壓縮方法包含有: 對該數據進行一第一解壓縮操作以依序得到該第一字串、該距離長度對以及該第二字 串;以及 接收并解壓縮該第一字串、該距離長度對以及該第二字串; 其中該數據進行該第一解壓縮操作以依序得到該第一字串、該距離長度對以及該第二 字串的步驟包含有: 在對該第二字串進行該第一解壓縮時,不需要使用到有關于該距離長度對的數據。
8. 如權利要求7所述的解壓縮方法,其特征在于,該第二解壓縮操作為一 LZ77解壓縮 操作。
9. 如權利要求7所述的解壓縮方法,其特征在于,對該數據進行該第一解壓縮操作的 步驟包含有: 將該數據中每一個位元值與一參考值比較,并根據比較結果來進行解壓縮。
【文檔編號】H03M7/30GK104113344SQ201310131463
【公開日】2014年10月22日 申請日期:2013年4月16日 優先權日:2013年4月16日
【發明者】曾鈺翔, 張智豪, 謝鎮宇 申請人:晨星半導體股份有限公司