TWI393353B - 資料壓縮/解壓縮裝置及其方法 - Google Patents

資料壓縮/解壓縮裝置及其方法 Download PDF

Info

Publication number
TWI393353B
TWI393353B TW97133954A TW97133954A TWI393353B TW I393353 B TWI393353 B TW I393353B TW 97133954 A TW97133954 A TW 97133954A TW 97133954 A TW97133954 A TW 97133954A TW I393353 B TWI393353 B TW I393353B
Authority
TW
Taiwan
Prior art keywords
block
data
range
difference
distance
Prior art date
Application number
TW97133954A
Other languages
English (en)
Other versions
TW200917671A (en
Inventor
Sung-Jo Oh
Young-Chul Wee
Original Assignee
Samsung Electronics Co Ltd
Quram Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd, Quram Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of TW200917671A publication Critical patent/TW200917671A/zh
Application granted granted Critical
Publication of TWI393353B publication Critical patent/TWI393353B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3086Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

資料壓縮/解壓縮裝置及其方法
本發明是關於一種資料壓縮/解壓縮裝置及其方法。更具體而言,本發明是關於一種用於改良記憶體壓縮比及存取速度之裝置及其方法。
優先權
本申請案在2007年9月7日於韓國智慧產權局申請且序號為2007-0091049之韓國專利申請案之35 U.S.C.§ 119(a)下主張權益,所述韓國專利申請案之整個揭露內容以引用的方式併入本文中。
配備有記憶體設備(memory device)之數位資料處理系統(digital data processing system)通常為了實現高效之記憶體利用率而操作各種記憶體管理技術。一種方法是在寫入模式下對資料進行壓縮,並在讀取模式下對所述資料進行解壓縮以供使用。在此情況下,提高壓縮比會改良記憶體利用率,但會降低壓縮/解壓縮速度,從而導致記憶體存取時間增加。相反,低壓縮比會減少記憶體存取時間,但記憶體利用率降級。因此,需要開發一種能夠在無損於記憶體存取速度之情況下實現高壓縮比的資料壓縮/解壓縮方法。
本發明之一態樣是解決至少上文所提及之問題及/或缺點,並提供至少下文所描述之優點。因此,本發明之一 態樣是提供一種資料壓縮/解壓縮裝置及其方法,其能夠使用向後編碼方案在無損於記憶體存取速度之情況下提高壓縮比。
本發明之另一態樣是提供一種資料壓縮裝置及其方法,其能夠藉由使用用於儲存頻繁使用之資料的表對資料進行壓縮來提高壓縮比。
本發明之又一態樣是提供一種資料壓縮裝置及其方法,其能夠藉由調整巨集塊(macro block)單元內之異常處理塊(exception handling block)來控制壓縮比及壓縮/解壓縮速度。
本發明之又一態樣是提供一種資料壓縮裝置及其方法,其能夠藉由在向前及向後方向上對巨集塊之資料進行編碼並搜尋具有最低成本之域塊(domain block)來在無損於壓縮/解壓縮速度之情況下提高壓縮比。
本發明之另一態樣是提供一種資料壓縮裝置及其方法,其能夠藉由參考儲存由塊之間的距離及差異資訊表示之經壓縮資料的表(全局表“globe table”及局域表“local table”)對資料進行壓縮,並在壓縮過程期間設定具有低成本之頻繁出現的差異值,來提高壓縮比。
本發明之另一態樣是提供一種資料壓縮裝置及其方法,其能夠藉由對具有低壓縮比之巨集塊執行異常處理來控制壓縮比及解壓縮速度。
根據本發明之一態樣,提供一種資料壓縮/解壓縮裝置(data compression/decompression apparatus)。所述裝置包含 壓縮器(compressor),所述壓縮器用於經由在搜尋範圍內之向前搜尋來計算域塊相對於範圍塊(range block)之成本,用於經由向後搜尋來選擇相對於範圍塊具有最低成本之域塊作為參考域塊,用於產生所述參考域塊之距離及差異資訊,以及用於將所述距離及差異資訊編碼成範圍塊之經壓縮資料。所述裝置亦包含解壓縮器(decompressor),用於基於距離而尋找參考域塊,且用於參考差異資訊將經壓縮資料解碼成範圍塊之原始資料。
根據本發明之另一態樣,提供一種資料壓縮/解壓縮方法。所述方法包含藉由以下步驟來對數據進行壓縮:經由在搜尋範圍內之向前搜尋計算域塊相對於範圍塊之成本;經由向後搜尋選擇相對於範圍塊具有最低成本之域塊作為參考域塊;產生所述參考域塊之距離及差異資訊;以及將所述距離及差異資訊編碼成範圍塊之經壓縮資料,所述方法亦包含藉由以下步驟對經壓縮之資料進行解壓縮:基於距離而尋找參考域塊;以及參考差異資訊將經壓縮之資料解碼成範圍塊之原始資料。
根據本發明又一態樣,提供行動終端(mobile terminal)之一種資料處理裝置(data processing apparatus)。所述裝置包含:記憶體(memory);壓縮器,用於經由在搜尋範圍內之向前搜尋來計算域塊相對於範圍塊之成本,用於經由向後搜尋來選擇相對於範圍塊具有最小成本之域塊作為參考域塊,用於產生所述參考域塊之距離及差異資訊,且用於將所述距離及差異資訊編碼成範圍塊之經壓縮資料; 解壓縮器,用於基於距離來尋找參考域塊,且用於參考差異資訊將經壓縮之資料解碼成範圍塊之原始資料;以及控制器,用於在寫入模式下將壓縮器所輸出之經壓縮資料儲存於記憶體內,且用於在讀取模式下將經壓縮資料讀出至解壓縮器。
熟習此項技術者自以下詳細描述將容易明白本發明之其它態樣、優點及顯著特徵,結合所附圖式而進行之以下詳細描述揭露本發明之例示性實施例。
提供以下參考附圖而進行之描述是為了幫助全面理解如由申請專利範圍及其等效物所界定之本發明的例示性實施例。以下描述包含各種具體細節,目的是幫助理解本發明之例示性實施例,但應將此等細節視為僅是例示性的。因此,熟習此項技術者將認識到,在不偏離本發明之範疇及精神的情況下,可對本文所描述之實施例作出各種改變及修改。此外,為了清楚性及簡明,省略對熟知功能及構造的描述。在圖中,為了本發明之清楚性,可能誇示或省略或示意性地描繪某些元件。
在以下描述中,提供巨集塊之位元的數目、及短塊之位元的數目、距離及差異資訊以及表之臨限值,以便允許清楚且一致地理解詳細描述及申請專利範圍。然而,描述中所使用之數字僅用於例示,且無意為限制性的。此外,除非另有註明,否則應根據熟習此項技術者之習知用法來理解術語。
在以下描述中,術語“巨集塊”指代供壓縮之資料單位,且術語“短塊”為構成巨集塊之資料單位。巨集塊可由至少兩個短塊組成。在例示性實施方案中,短塊長度為16個位元。在以下描述中,僅僅為了容易描述而假定巨集塊由兩個短塊組成,且應瞭解,巨集塊可由兩個以上短塊組成。術語“範圍塊”指代包括待壓縮之巨集塊的資料單位。術語“域塊”指代對範圍塊進行壓縮所參考的巨集塊。術語“距離”指代範圍塊與域塊之間的距離。距離資訊可包含範圍塊與域塊之間的距離值以及指示所述距離值是否改變的距離旗標。可為每一巨集塊設定距離旗標,且距離旗標指示範圍塊之結構。術語“差異”指代範圍塊與域塊之間的差異。差異資訊可包含範圍塊與域塊之間的差異值以及指示所述差值是否存在的差異旗標。可藉由對範圍塊及域塊執行“互斥或”(exclusive OR,XOR)運算來獲得所述差異。術語“成本”用於藉由計算差異值來判定待作為經壓縮資料儲存於記憶體內的資料長度(位元數)。術語“異常處理”指代在壓縮比不夠高時使用原始資料。術語“全局表”指代使用差異值作為索引之固定條目表。術語“局域表”指代使用在壓縮過程期間頻繁出現之巨集塊作為索引的浮動條目表。術語“搜尋範圍”指代用於在範圍塊之位置處搜尋域塊的範圍。術語“向前編碼”指代用於對搜尋範圍內之域塊進行編碼的編碼方案,所述編碼方案以最低成本對由當前被編碼之巨集塊組成的範圍塊進行編碼。術語“向後編碼”指代用於藉由以下步驟來 降低成本的編碼方案:重構先前編碼之包含當前編碼之巨集塊的範圍塊。在向前編碼中,壓縮器對主要由依序選擇之巨集塊組成的範圍塊進行編碼。向後編碼藉由重構先前編碼之包含當前編碼之巨集塊的範圍塊來提高壓縮比。術語“資料”包含程式資料、使用者資料及類似資料。
在以下對例示性實施例之描述中,壓縮器在對資料進行壓縮時判定範圍塊之長度,搜尋具有與範圍塊完全相同或相似之資料的域塊,且用範圍塊與搜尋出之域塊之間的距離及差異來對資料進行壓縮。在例示性實施例中,所述資料是包含韌體及軟體之程式代碼資料的二進制資料。
在記憶體儲存及擷取系統中,一般較佳的是壓縮器及解壓縮器具有較高壓縮比及較高解壓縮速度。然而,隨著壓縮比增加,壓縮器之壓縮/解壓縮速度可能減小。當在搜尋範圍內搜尋域塊時,本發明之例示性實施例藉由使用以下方法來改良壓縮比及解壓縮速度兩者。
首先,當在比較範圍塊與搜尋範圍內之域塊時,壓縮器在向前方向及向後方向上參考先前巨集塊編碼期間所建立的參考清單而執行編碼,並選擇搜尋範圍內與範圍塊具有最小差異值的域塊。
第二,壓縮器使用範圍塊與選定域塊之間的距離及差異資訊對範圍塊之資料執行壓縮。在本發明之例示性實施例中,第一資料壓縮方法包含使用兩個塊之間的差異值來壓縮資料,第二資料壓縮方法包含使用在兩個塊之間用實驗方法量測到並登記至表之頻繁出現的差異值來壓縮資 料,且第三資料壓縮方法包含使用登記於浮動表中之差異值來壓縮資料,同時使用登記至固定表之頻繁出現的值來壓縮所述資料。
供第一方法中使用之差異值可為具有最小差異值之範圍塊與域塊的“互斥或”運算值。供第二方法中使用之表為可用作第三方法之全局表的固定表。
使用表之壓縮方法在壓縮過程期間量測範圍塊與域塊之間頻繁出現的差異值,並根據量測出之差異值創建成本。使用所述差異值作為索引,並儲存值以用於用對應索引位置處之成本對所述差異值進行編碼。藉由將最頻繁出現之差異值映射至最低成本,有可能改良資料之壓縮比。為了進一步改良壓縮比,可使用反映總體頻率之全局表及反映局部頻率之局域表。全局表是固定的表,其在壓縮過程期間可駐存於壓縮器中或可儲存於記憶體之特定區域處。局域表是浮動的表,其以範圍塊與域塊之間在特定區域處頻繁出現但在局域表中未列出之差異值及成本而產生。局域表可儲存於記憶體中。全局表是固定的表,其在開始壓縮過程之前被創建,且可全局地應用於寫入模式下所儲存之所有資料。局域表是浮動的表,其可在壓縮資料的同時在特定局部區域處使用。
第三,壓縮器以巨集塊為單位執行資料壓縮。當不存在與範圍塊完全相同或類似的域塊時,壓縮器對範圍塊之資料執行異常處理而非資料壓縮。亦即,當範圍塊在搜尋範圍內不具有完全相同或類似的域塊(例如,多個短塊中 至少有一者不與範圍塊完全相同)時,並不預期對範圍塊之容許壓縮比。在此情況下,壓縮器對範圍塊執行異常處理,從而以未經壓縮之形式儲存範圍塊之資料。藉由使用異常處理塊,有可能改良壓縮比及解壓縮速度。
根據本發明例示性實施例之資料壓縮方法可用上文所闡釋之資料壓縮模型中之至少一者來實施,亦即,使用兩個塊之間的差異值的資料壓縮模型、僅使用全局表之資料壓縮模型,以及使用全局表及局域表之資料壓縮模型。此外,資料壓縮方法可使用異常處理功能。
在以下例示性實施例中,假定用全局表及局域表以及異常處理功能來實施資料壓縮方法。此例示性實施例之資料壓縮方法可藉由在向前方向及向後方向上對巨集塊之資料進行編碼,並搜尋具有最低成本之域塊,來在無損於高壓縮速度之情況下改良壓縮比。此外,此例示性實施例之資料壓縮方法將經壓縮之資料高效地儲存於表(全局表及局域表)內,使得壓縮過程期間頻繁出現之差異值被指派有最低成本,從而導致資料壓縮比得以改良。此外,此例示性實施例之資料壓縮方法對壓縮比被評估為較低之巨集塊執行異常處理,以便調整壓縮比及解壓縮速度。
圖1為說明根據本發明例示性實施例之供資料壓縮方法中使用之範圍塊及域塊的資料結構的圖。
參看圖1,壓縮器首先計算待壓縮之範圍塊R與域塊D之間的距離,藉由將其資料彼此比較來計算範圍塊R與域塊D之間的差異(亦即,確定“互斥或”運算值),並 使用計算出的距離及差異值產生範圍塊之經壓縮資料。範圍塊可包括一個以上巨集塊,且域塊之大小可與範圍塊之大小完全相同。此外,可將巨集塊分成若干短塊。在以下描述中,為了方便起見,假定巨集塊如圖1所示包含兩個短塊,且每一短塊為16個位元(2個位元組)。
構成範圍塊之域塊可包含大小完全相同且位於範圍塊之前的預設範圍(亦即,搜尋範圍)內的巨集塊。範圍塊不能重疊,且以整數為單位對齊。域塊可重疊,且以短塊為單位對齊(對於8位元短塊以位元組為單位,對於16位元短塊以2個位元組為單位)。舉例而言,當待壓縮之資料包含對應於10個短塊(SB0至SB9)之5個巨集塊(MB0至MB4)時,按循序短塊對SB0-SB1、SB2-SB3、SB4-SB5、...、SB8-SB9之次序指定範圍塊。在範圍塊由短塊對SB8-SB9表示之情況下,域塊對應於短塊對SB6-SB7、SB5-SB6、SB4-SB5、...、SB1-SB2及SB0-SB1。範圍塊之壓縮由相對於域塊之距離及差異資訊來表示。此時,選擇具有表示最低成本之距離及差異資訊的域塊。
術語距離指代範圍塊與選定域塊之間的距離。所述距離會影響壓縮比,因為所述距離用於對範圍塊之資料進行壓縮。因此,所述距離較佳在大小上受到限制,且距離之值確定搜尋範圍。隨著範圍塊之長度增加,用於表示距離之位元的數目減少,但用於表示距離值之位元的數目增加。出於此原因,範圍塊之長度會影響壓縮比。因此,為了高效地壓縮資料,需要恰當地設定範圍塊之搜尋範圍及 長度。
在此例示性實施例中,在壓縮範圍塊時,使用向前及向後編碼方法來快速搜尋近似最佳解(near optimum solution)之域塊。將壓縮一巨集塊所需之成本設定為最低成本,並對其進行更新,使得包含向後巨集塊之先前壓縮之巨集塊的成本具有最小值。亦即,此例示性實施例之資料壓縮方法藉由以下方式來壓縮資料:在搜尋範圍內在向前方向上搜尋巨集塊,使得成本變低,且接著確定已在向後方向上壓縮之巨集塊的成本,以便調節域塊之長度及距域塊之距離。
圖2為說明根據本發明例示性實施例之經壓縮域塊及範圍塊之資料結構的圖。
在此例示性實施例中,找出大小為k的範圍塊,使得相對於已壓縮之巨集塊及當前正被壓縮之巨集塊的距離成本及差異成本最佳化。在習知壓縮方法中,不與參考塊完全相同之巨集塊不屬於同一範圍塊。然而,在此例示性實施例中,即使當巨集塊不與域塊完全相同時,巨集塊亦可為範圍塊的一部分。
在圖2所示之例示性實施方案中,藉由將範圍塊分成3個部分來獲得成本為T=成本(A,A)+成本(X,Y)+成本(B,B)。然而,在此例示性實施例中,將範圍塊作為單個資料單位來處理,使得獲得成本為U=成本(AXB,AYB)。在此情況下,成本T具有至少兩個距離值,而成本U僅有一個距離值。因此,即使當X與Y不同時,藉由對X與Y 之間的距離值進行編碼所獲得之成本(X,Y)亦相對較低,從而導致U>T。如圖2所示,不與參考塊Y完全相同之巨集塊X可為範圍塊之一部分。
圖3A及圖3B為說明根據本發明例示性實施例之在搜尋範圍內選擇相對於範圍塊之最佳域塊的方法的圖。為了選擇最佳域塊,在向前方向及向後方向上對搜尋範圍內之域塊進行編碼。若範圍塊被配置,則壓縮器在向前方向及向後方向上對搜尋範圍內存在之域塊執行編碼,且選擇具有最低成本之域塊。接下來,壓縮器產生選定域塊與範圍塊之間的距離及成本作為經壓縮資料。圖3A為說明根據本發明例示性實施例之資料壓縮方法之向前編碼程序的圖,且圖3B為說明根據本發明例示性實施例之資料壓縮方法之向後編碼程序的圖。在圖3A及圖3B中,假定範圍塊為B,C[26,27](第26個短塊及第27個短塊),且搜尋範圍為[10,11,12,...,25](自第10個短塊至第25個短塊)。
參看圖3A及圖3B,藉由將在搜尋範圍內依序選擇之域塊與以短塊為單位之範圍塊B,C[26,27]進行比較,來對範圍塊B,C[26,27]執行向前編碼。雖然執行向前編碼,但壓縮器計算範圍塊與搜尋範圍內在範圍塊之前對齊的域塊之間的距離及差異。接下來,壓縮器在執行向後編碼的同時分析距離值與差異值,並選擇相對於範圍塊具有最近距離及最低差異的域塊。在圖3A及圖3B中,壓縮器經由向前及向後編碼來選擇相對於範圍塊B,C[26,27]距離最近且差異最小的域塊B,C[20,21]。儘管域塊B,C[14,15]在差異 上具有與域塊B,C[20,21]相同的成本,但其距離成本大於域塊B,C[20,21]之距離成本。因此,壓縮器選擇域塊B,C[20,21],且記錄距離及差異資訊。以此方式,壓縮器選擇相對於範圍塊A,B[22,23]距離值為4且差異值為0的域塊A,B[18,19]、相對於範圍塊E,F[24,25]距離值為8且差異值為0的域塊E,F[16,17],以及相對於範圍塊B,C[26,27]距離值為6且差異值為0的域塊B,C[20,21]。
在向後編碼期間,由巨集塊群組執行搜尋。舉例而言,對範圍塊B,C[26,27]的向後編碼可對具有單個距離值之範圍塊A,B,E,F,B,C[22:27]-域塊A,B,D,F,B,C[10:15]對進行。由於此群組編碼之成本低於對域塊B,C[20:21]-範圍塊B,C[26:27]、域塊E,F[16:17]-範圍塊E,F[24:25]及域塊A,B[18:19]-範圍塊[22:23]之編碼的距離值的成本,因此重構先前的編碼結果以改良壓縮比。此處,雖然歸因於不同資料(F[25]、E[24]及D[12]),基於單個距離之編碼的差異成本大於基於三個距離之編碼的差異成本,但總成本降低,因為基於單個距離之編碼使用小多達2的距離值。在此情況下,壓縮器將範圍塊A,B,E,F,B,C[22:27]與域塊A,B,D,F,B,C[10:15]進行比較,並對距離值為12且差異值為0、DF“互斥或”EF及0的範圍塊進行編碼。
圖4為說明根據本發明例示性實施例之資料壓縮方法之範圍塊編碼的流程圖。如將更詳細地闡釋,壓縮器首先在向後方向上計算長度,所述長度使範圍塊R之參考塊位置處的向後成本節省最大化,且若所述節省大於最大節 省,則壓縮器更新參考塊上之最佳長度及資訊。此處,節省指代範圍塊在長度上之成本節省的總量。接下來,壓縮器相對於最佳參考塊及最佳長度而更新塊之編碼。接下來,壓縮器創建局域表,以使距離編碼最佳化預設範圍,且參考全局表來壓縮局域表,且接著儲存局域表。
參看圖4,在步驟S111中,壓縮器計算長度,所述長度使相對於預設範圍塊之參考塊位置的向後成本節省最大化。
圖5為更詳細地說明圖4之步驟S111的例示性最佳化程序的流程圖。
參看圖5,在步驟S151中,壓縮器計算相對於範圍內之相應範圍塊的節省值,亦即成本總量(節省=舊成本-新成本)。在獲得節省值之後,在步驟S153中,壓縮器判定節省值是否大於最大節省值。若節省值不大於最大節省值,則壓縮器在維持先前值的同時執行步驟S157。否則,若節省值大於最大節省值,則在步驟S155中,壓縮器用計算出的節省值來更新最大節省值。此時,壓縮器亦將最佳長度更新為步驟S151處所設定之長度,且將參考塊更新為步驟S151處所設定之參考塊。接下來,在步驟S157中,壓縮器判定所述長度是否大於最大長度。若所述長度不大於最大長度,則壓縮器使所述長度遞增1,且重複步驟S151。否則,若所述長度大於最大長度,則在步驟S161中,壓縮器將所述範圍塊之位置添加至雜湊表(hash table)。
返回至圖4,在獲得最佳長度之後,在步驟S113中,壓縮器判定節省值是否大於最大節省值。若節省值不大於計算出之節省值,則壓縮器維持預設值。否則,若節省值大於最大節省值,則在步驟S115中,壓縮器將最大節省值更新為計算出之節省值。此時,壓縮器亦更新最佳長度且改變最佳參考塊。接下來,在步驟S117中,壓縮器判定參考清單中是否存在參考塊。若參考清單中存在參考塊,則壓縮器執行步驟S119。否則,若參考清單中不存在參考塊,則在步驟S121中,壓縮器將先前範圍塊之編碼更新為最佳參考塊及最佳長度。向以短塊(16個位元)為單位的隊列登記參考清單,以便向後快速搜尋至範圍塊。對巨集塊之搜尋目標為兩個短塊中至少有一者完全相同的位置。
接下來,在步驟S123中,壓縮器更新差異編碼表。
圖6為更詳細地說明圖4之步驟S123中之例示性差異編碼表更新程序的流程圖。
參看圖6,在步驟S181中,壓縮器對特定範圍塊R進行編碼,且接著在步驟S183中,使範圍塊R已被處理之次數遞增1(N=N+1)。N之初始值為0。接下來,在步驟S184中,壓縮器判定N是否小於臨限值T。若N小於T,則壓縮器重複步驟S181。否則,若N不小於T,則在步驟S185中,壓縮器根據局部頻率及成本節省值而建立局域表。接下來,在步驟S187中,壓縮器參考全局表而壓縮局域表,且在步驟S189中,判定更新成本是否小於 成本節省值。若更新成本小於成本節省值,則在步驟S191中,壓縮器更新局域表之編碼表。
如上創建之局域表用於將範圍塊之資料與局域表壓縮在一起。
圖7A為說明根據本發明例示性實施例之全局表之特性的圖,且圖7B為說明根據例示性實施例之局域表產生之特性的圖。
參看圖7A,全局表413包含預定義之統計資料值417。亦即,全局表413儲存在資料壓縮過程期間頻繁出現的值。全局表不更新(415),且只可在資料壓縮過程中被讀取。全局表413是具有固定大小之固定表。在此例示性實施例中,假定全局表413之索引具有小於8個位元的值[0、...、255]。全局表之索引可自0至255中選擇。由索引指示之資料411可為範圍塊與域塊之“互斥或”運算值(x結果=[統計資料值A]XOR[統計資料值B])。因此,當使用如圖7A所示之全局表時,壓縮器向兩個巨集塊之間頻繁出現的差異值指派索引0、1、2、3、...、255,以便改良壓縮效率。
參看圖7B,在壓縮資料的同時創建局域表453。在此例示性實施例中,當某一值出現3次以上,且所述值未向全局表登記時,向局域表453登記值457。局域表453可由壓縮器之搜尋器創建。可更新局域表453,且允許在壓縮資料455的同時讀取及寫入資料。局域表453允許浮動條目,且組態成在大小上大於全局表。在此例示性實施例 中,假定局域表之大小為8個位元[256、...、511]。在此情況下,在256至511之範圍內選擇局域表之索引,且由所述索引表示之資料451可為範圍塊與域塊之“互斥或”運算值(y結果=[動態值A]XOR[動態值B])。亦即,在壓縮器壓縮資料的同時創建如圖7B所示之局域表453,且以256、257、...、511之次序向差異值指派索引。
現在,以壓縮結構、向後成本節省、差異編碼、距離編碼及解碼速度控制之次序描述壓縮器之特性。
關於壓縮結構,每一巨集塊由兩個短塊組成,且每一短塊之長度為16個位元。屬於範圍塊之域塊可為搜尋範圍內在範圍塊之前存在的塊。範圍塊並不彼此重疊,且以整數為單位對齊。域塊可彼此重疊,且以位元組為單位對齊。範圍塊之壓縮由與域塊之距離及差異來表示。
關於向後成本節省,巨集塊之參考清單由若干位置組成,在所述位置處,至少一個短塊與巨集塊之短塊完全相同,巨集塊之參考清單在先前巨集塊被壓縮的同時儲存於雜湊表中。對於同一距離值,獲得長度k,以便使當前成本最大化。此處,術語節省指代k個範圍塊處之成本節省的總量。此後,將範圍塊之壓縮更新為最佳參考及最佳長度。亦即,壓縮器經由圖4之步驟S111至步驟S121而執行最佳化過程。更詳細而言,壓縮器計算相對於範圍塊之長度上的節省總量(節省=舊成本-新成本)。接下來,壓縮器判定當前節省值是否大於最大節省值(節省>最大節省值),且若當前節省值大於最大節省值,則壓縮器將最大 節省值更新為當前節省值。此時,若長度小於最大長度,則壓縮器使長度遞增1,且重複以上步驟。否則,若長度等於最大長度,則壓縮器將所述範圍塊之位置添加至雜湊表(雜湊表,(R))。
關於差異編碼,對經由“互斥或”運算獲得之以短塊為單位的值進行編碼。可根據所需之解壓縮速度來選擇編碼方法。全局表為對於壓縮全局頻率有效的熵編碼表。局域表在參考全局表而壓縮之後被儲存。考慮表壓縮比及差異編碼成本而判定局域表之表條目的更新。
關於距離編碼,可考慮解壓縮速度及壓縮比而選擇兩種距離編碼方法中的一者。一種距離編碼方法在當前範圍塊之距離與先前範圍塊之距離完全相同時,用1個位元來表示當前範圍塊與先前範圍塊的相同性,在當前塊之距離不同於先前範圍塊之距離且小於256時,用10個位元來表示當前範圍塊與先前範圍塊的差異,且在其它情況下表示18個位元。另一種距離編碼方法在每種情況下都用16個位元來表示距離,且對距離序列進行壓縮以便分開儲存。在此例示性實施例中,使用第一距離編碼方法。
關於解碼速度控制,大巨集塊(Large Macro Block,LMB)由m個巨集塊組成。若LMB之壓縮成本大於臨限值t,則在不進行壓縮的情況下儲存LMB。所述LMB被稱為異常處理塊。由於異常處理塊之解壓縮過程非常簡單,所以壓縮速度得以改良。可藉由調整臨限值t來控制解壓縮速度。
根據本發明之此例示性實施例的資料壓縮器具有如下特徵。當壓縮巨集塊時,所述壓縮器控制範圍塊之分區的數目,以便改良巨集塊之壓縮比。此外,壓縮器找出先前壓縮之成本節省得以最大化的位置而非直接使成本減至最小,以便減少壓縮時間。這是因為直接使成本減至最小會更改範圍塊之長度,且因此會增加時間複雜性。此外,巨集塊由多個短塊(在此例示性實施例中為兩個短塊)組成,且壓縮器在壓縮過程期間對範圍塊之至少一個短塊完全相同的位置執行雜湊,以便在改良壓縮速度的同時確保範圍塊之連續性。最後,壓縮器以經壓縮格式儲存全局表及局域表,且使用所述表來壓縮巨集塊之資料。
下文中描述具有以上特徵之壓縮器的結構及操作。
圖8為說明根據本發明例示性實施例之壓縮器之組態的方塊圖。
參看圖8,壓縮器包含加載器210、搜尋器220、編碼器240以及異常處理器250。加載器210首先將原始二進制資料輸入加載至壓縮器。此處,加載器210以編碼訊框為單位加載資料,編碼訊框為適合於編碼器240之資料大小。術語“編碼訊框”表示待由編碼器240壓縮之資料單位的大小(或搜尋器所判定之搜尋範圍的大小)。可提供緩衝器以緩衝加載器210所加載之編碼訊框的資料。
搜尋器220基於所加載之編碼訊框的資料而判定搜尋範圍,檢查範圍塊,產生範圍塊與位於搜尋範圍之範圍內的域塊之間的差異值,根據差異值來計算成本,且判定相 對於具有最小成本之域塊的距離資訊及成本值。此時,搜尋器220經由向前編碼來計算具有巨集塊之大小的範圍塊與位於搜尋範圍內之域塊之間的成本,並判定使包含先前經由向後編碼而編碼之範圍塊與巨集塊之成本最佳化的範圍塊的長度及距離。在計算範圍塊與域塊之間的差異之後,若範圍塊與域塊彼此完全相同,則搜尋器220創建指示相對於域塊之完全相同以及距離資訊的距離資訊,否則創建指示相對於域塊之差異以及距離資訊的距離資訊。差異資訊可包含指示兩個塊之完全相同或差異以及兩個塊之間的距離值的差異旗標。所述差異值可直接使用(例如,“互斥或”運算值),或用自差異值獲得之成本值或經修改之成本值來代替。在此例示性實施例中,藉由使用比較結果值計算成本且將成本轉換成表之索引來獲得差異值。在此情況下,搜尋器220可具備成本表。成本表用於儲存對應於計算出之成本的索引。所述表可為全局表或局域表。將差異值與對應索引一起儲存於表中。搜尋器220藉由在搜尋範圍內執行向前編碼的同時比較範圍塊與選定域塊來產生差異值,且計算對應於成本表內之差異值的成本。搜尋器220將當前產生之成本與參考成本進行比較,以便在當前計算出之成本小於參考成本時更新參考成本,否則維持參考成本。藉由重複以上過程,搜尋器220搜尋最小成本,並選擇對應於來自成本表之最小成本的索引。接下來,搜尋器220將域塊之距離資訊及對應於選定成本之索引傳遞至編碼器240,並重複以上過程以選擇下一範圍塊。
編碼器240可具備全局表及/或局域表。此外,全局表及局域表可在緩衝器中緩衝。全局表為如參看圖7A所述之固定表,且以用實驗方法量測到之統計資料值建立。局域表為如參看圖7B所述之可變表,且與當前正被壓縮之資料相關聯而建立。全局表及局域表具有對應於成本之索引,且與索引相關聯而儲存範圍塊與域塊之間的差異值。在以下描述中,假定使用全局表及局域表兩者。然而,僅可以全局表及局域表中之一者來進行資料壓縮。編碼器240將鏈接至表中之成本值的索引作為範圍塊之編碼資料來處理。此處,可由搜尋器220來計算成本。搜尋器220可基於範圍塊與域塊之間的差異資訊而計算成本,並使用所述成本來存取成本表中之表索引。所述索引可屬於全局表及/或局域表。搜尋器220將範圍塊與域塊之間的距離資訊(距離旗標及距離值)以及包含索引之差異資訊傳遞至編碼器240。編碼器240將所述距離資訊及差異資訊編碼成壓縮資料。
下文中更詳細地描述搜尋器220及編碼器240之操作。搜尋器220分析範圍塊與域塊之間的差異,並自所述距離計算成本。若範圍塊與域塊之間的差異值為0,亦即,所述兩個塊彼此完全相同,則成本值變成0(或非常小的成本值)。若域塊之短塊中至少有一者與範圍塊之短塊完全相同,則完全相同之短塊的成本變成0,且不同短塊之成本以兩個塊之差異值來計算。以此方式,搜尋器220選擇由具有最小成本之短塊組成的域塊,同時將範圍塊之短塊 的資料與位於搜尋範圍內之域塊之短塊的資料進行比較。此時,搜尋器220計算成本,同時在搜尋範圍內在向前方向上搜尋域塊;將當前成本與最小參考成本進行比較,同時在向後方向上搜尋當前計算出之成本;且若當前搜尋出之成本低於最小參考成本,則將距離資訊及成本更新成當前域塊。當域塊搜尋終止時,搜尋器220儲存範圍塊與具有最小成本之域塊之間的域塊的距離資訊及成本值。接下來,搜尋器220擷取對應於成本表中之成本的索引,且將包含所述索引之距離資訊與差異資訊傳遞至編碼器240。此時,差異資訊可包含差異旗標及表索引。在範圍塊與域塊彼此完全相同的情況下,排除所述表索引。在此例示性實施例中,當產生差異資訊時,若範圍塊與域塊彼此完全相同,則搜尋器220使差異旗標重設為0,並產生僅具有差異旗標之差異資訊。另一方面,若範圍塊與域塊彼此不同,則搜尋器220將差異旗標設定為1,並產生包含由對應於差異值之成本選擇之表索引資訊的差異資訊。
編碼器240分析差異資訊中所含有之差異旗標,以便判定兩個塊在資料方面是否彼此完全相同。若判定兩個塊之資料彼此完全相同,則編碼器240將距離資訊及差異旗標編碼成範圍塊之經壓縮資料。此處,差異資訊可包含表索引。在包含表索引之情況下,編碼器240判定由表索引指示之表(全局表及/或局域表)中之兩個塊之間的差異值,且若所述差異值為正常差異值(亦即,與搜尋器220所搜尋到之差異值完全相同),則編碼器240將距離資訊及 差異資訊編碼成範圍塊之經壓縮資料。
壓縮器包含異常處理器250。在此例示性實施例中,異常塊為由於範圍塊與域塊之間的差異大於臨限值而預期不會被高效壓縮的塊。舉例而言,在如圖1所示,範圍塊及域塊以由兩個短塊組成之巨集塊為單位而組成的情況下,搜尋器220判定待壓縮之範圍塊,並選擇相對於範圍塊差異(亦即,成本)最低的域塊,經由在搜尋範圍內的向前及向後編碼而獲得所述域塊。然而,若範圍塊之短塊的資料與選定域塊之短塊的資料彼此不同(亦即,範圍塊之短塊與域塊之短塊彼此完全不同),則壓縮比顯著降低。在此情況下,壓縮器在不進行壓縮(無編碼)之情況下儲存範圍塊之資料,並產生指示異常塊的旗標。當對以經壓縮格式儲存之資料進行解壓縮時,無需解壓縮過程即可恢復異常塊之資料,從而導致解碼速度之改良。在另一例示性實施例中,編碼器240具備全局表與局域表兩者,且使用待用於指示異常旗標的2個位元的差異旗標。在此情況下,可如表1所示來定義差異旗標的值。
搜尋器220在搜尋範圍內在向前方向及向後方向上搜尋域塊,以便選擇相對於範圍塊成本最低的域塊。若選定域塊之資料與範圍塊之資料完全相同,則搜尋器220產生相對於選定域塊的距離資訊,以及指示兩個塊彼此完全相同的差異旗標(差異旗標=00),並將距離資訊及差異旗標發送至編碼器240。若選定域塊之資料不同於範圍塊之資料,且自兩個塊之間的差異值獲得的成本屬於全局表,則搜尋器220產生相對於選定域塊之距離資訊,以及包含差異旗標(差異旗標=01)的差異資訊,所述差異旗標指示全局表及全局表索引(global table index)中存在所述成本,且搜尋器220將距離資訊及差異資訊發送至編碼器240。若選定域塊之資料不同於範圍塊之資料,且自兩個塊之間的差異值獲得的成本屬於局域表,則搜尋器220產生相對於選定域塊之距離資訊,以及包含差異旗標(差異旗標=10)的差異資訊,所述差異旗標指示局域表及局域表索引中存在所述成本,且搜尋器220將距離資訊及差異資訊發送至編碼器240。若選定域塊之資料不同於範圍塊之資料,且自兩個塊之間的差異值獲得的成本既屬於全局表又屬於局域表,則搜尋器220將差異旗標設定為異常旗標,並將異常旗標發送至編碼器240。
編碼器240根據差異旗標之值來分析差異旗標,並對範圍塊之資料進行編碼。若差異旗標指示兩個塊完全相同(差異旗標=00),則編碼器240將相對於選定域塊之距離資訊及差異旗標編碼成範圍塊的經壓縮資料。若差異旗標 指示全局表索引(差異旗標=01),則編碼器240將相對於選定域塊之距離資訊以及包含差異旗標及全局表索引的差異資訊編碼成範圍塊之經壓縮資料。若差異旗標指示局域表索引(差異旗標=10),則編碼器240將相對於選定域塊之距離資訊以及包含差異旗標及局域表索引的差異資訊編碼成範圍塊之經壓縮資料。若差異旗標指示異常旗標(差異旗標=11),則編碼器240致能(activate)異常處理器250,以便在不進行編碼的情況下按原樣儲存範圍塊之資料。在此情況下,將範圍塊之未經壓縮的資料儲存於記憶體中,且將所述差異旗標儲存為異常旗標。雖然在此例示性實施例中將異常處理器250描繪為獨立的組件,但其可整合至編碼器240中。
圖9為說明圖8之搜尋器220之例示性操作的圖。在此例示性實施例中,結合由第8個短塊及第9個短塊組成之範圍塊來描述搜尋器220的操作,所述範圍塊表示為參考標號391。在此情況下,域塊由兩個短塊表示。在圖9中,域塊由短塊對表示,亦即第6個短塊與第7個短塊、第5個短塊與第6個短塊、第4個短塊與第5個短塊、第3個短塊與第4個短塊、第2個短塊與第3個短塊、第1個短塊與第2個短塊以及第0個短塊與第1個短塊。此外,表示為參考標號393的輸入資料在緩衝器中緩衝,以便被壓縮。
參看圖9,在步驟S310中,搜尋器220加載搜尋範圍。此處,可將搜尋範圍設定成2、4、8、16、...、65536個巨 集塊。搜尋範圍可為編碼器240藉以對資料進行編碼的資料單位(編碼訊框)。在判定搜尋範圍之後,在步驟S320中,搜尋器220加載待編碼之範圍塊。在圖9中,範圍塊由第8個短塊與第9個短塊組成。接下來,在步驟S330中,搜尋器220在搜尋範圍內選擇待與範圍塊進行比較的域塊。在執行自範圍塊之位置的向前編碼的同時選擇域塊。此時,可在以短塊為單位移動的同時選擇域塊。在選擇域塊之後,在步驟S340中,搜尋器220將範圍塊之資料與選定域塊之資料進行比較。經由“互斥或”運算來執行資料比較。接下來,在步驟S350中,搜尋器220獲得相對於域塊之距離資訊,並在步驟S360中使用兩個塊之間的差異值來計算成本。所述距離資訊可包含距離旗標及距離值。可自兩個塊之間的差異獲得成本。搜尋器220具備儲存表索引之成本表,且在步驟S370中將所述成本用作成本表之位址。因此,若獲得所述成本,則搜尋器220產生所述成本表之儲存於對應於所述成本之位址處的值。此時,成本表之所述值成為表索引。此處,表索引可為全局表索引或局域表索引。
在執行上述步驟的同時,搜尋器220在搜尋範圍內收集相對於域塊的距離資訊及成本,並藉由在成本表中搜尋計算出之成本來找出表索引。此時,搜尋器220在藉由成本搜尋出之表索引之中選擇具有最低值的表索引。亦即,搜尋器在執行向前編碼(亦即,計算依序選擇之域塊相對於範圍塊的距離與成本)的同時,計算相對於域塊的距離 及成本,並使用所述成本自成本表判定表索引。接下來,搜尋器220在執行向後編碼的同時將當前選擇之表索引與先前儲存之表索引中具有最低值的表索引進行比較,若先前索引小於當前選擇之表索引,則維持所述先前索引,且否則更新表索引值。亦即,若當前表索引小於預先儲存之表索引,則搜尋器220根據相對於當前搜尋之域塊的距離及差異值來更新表索引,且否則維持預先儲存之距離資訊及表索引。在重複上文所描述之過程的同時,搜尋器220儲存相對於搜尋範圍內具有最小成本之域塊的距離資訊及表索引。
在構成範圍塊之短塊中沒有一者與搜尋範圍內中之任一短塊完全相同的情況下,對範圍塊之壓縮效率不足。在此情況下,將範圍塊作為異常塊處理。亦即,當搜尋器220在將範圍塊之短塊與搜尋範圍內之域塊的短塊進行比較時未發現所需數目的短塊時,搜尋器220產生異常旗標,且不計算範圍塊的成本。舉例而言,在大小與範圍塊及域塊完全相同之巨集塊由N個短塊組成的情況下,將範圍塊與搜尋範圍內之域塊進行比較,且在兩個巨集塊之間彼此完全相同之短塊的數目小於M,搜尋器220將範圍塊設定為異常塊。在此情況下,搜尋器220為異常塊設定異常旗標。在此例示性實施例中,設定差異旗標以用作異常旗標(在表1中,異常旗標=11),而不產生表索引。
在此例示性實施例中,每一範圍塊及域塊均由兩個短塊組成。此處,將N設定成2,且將M設定成0。在範圍 塊之短塊及搜尋範圍內之域塊的任一短塊的情況下,搜尋器220將範圍塊視為異常塊,並因此將差異旗標設定成11。
搜尋器220可產生局域表。亦即,若未在全局表中登記之差異值(範圍塊與域塊之間的差異值)頻繁出現,使得出現次數大於預設數目(此處為3),則搜尋器220向局域表登記所述差異值,如圖7B所示。此時,將局域表之成本(表索引)設定為大於全局表之成本(表索引)的值。接下來,向成本表登記所述成本及表索引。在使用局域表之情況下,即使差異值未向全局表登記,壓縮器亦向局域表登記所述差異值,以便改良壓縮效率。
在搜尋過程完成之後,搜尋器220將距離資訊及差異資訊(其可包含表索引)傳遞至編碼器240。
在圖9中,搜尋器220自經緩衝之資料393定義巨集塊,並向由第8短塊與第9短塊組成之當前範圍塊之前的域塊指派索引編號,以便定義由短塊對組成的域塊,所述短塊對亦即第6個短塊與第7個短塊、第5個短塊與第6個短塊、第4個短塊與第5個短塊、第3個短塊與第4個短塊、第2個短塊與第3個短塊、第1個短塊與第2個短塊以及第0個短塊與第1個短塊。搜尋器220將範圍塊之資料與依序選擇之域塊的資料進行比較,並輸出比較結果。在此情況下,搜尋器220產生範圍塊與域塊之間的差異值。此處,搜尋器220在將第6個短塊與第7個短塊選為域塊時產生E XOR B及C“XOR B,在將第5個短塊與第6個短塊選為域塊時產生B XOR B及E XOR B,在將 第4個短塊與第5個短塊選為域塊時產生B XOR B及B XOR B,在將第3個短塊與第4個短塊選為域塊時產生F XOR B及B XOR B,在將第2個短塊與第3個短塊選為域塊時產生D XOR B及F XOR B,在將第1個短塊與第2個短塊選為域塊時產生B XOR B及D XOR B,且在將第0個短塊與第1個短塊選為域塊時產生A XOR B及B XOR B。搜尋器220亦產生範圍塊與域塊之間的距離資訊。
接下來,搜尋器220基於差異值而計算成本。若域塊與範圍塊(圖9中之第4個短塊與第5個短塊)完全相同,則獲得成本為0。若兩個短塊中有一者完全相同(圖9中之第5個短塊與第6個短塊、第3個短塊與第4個短塊、第1個短塊與第2個短塊以及第0個短塊與第1個短塊),則獲得成本為最低成本。若範圍塊之兩個短塊兩者均不同於域塊之對應短塊,則獲得成本為高成本。在圖9之例示性情況下,搜尋器220將相對於第4個短塊與第5個短塊之距離資訊(距離旗標=1,距離值=4)以及指示兩個塊資料完全相同的差異旗標(差異旗標=0)傳遞至編碼器240。在不存在如第4個短塊與第5個短塊般成本為0(或接近於0)的域塊的情況下,搜尋器220產生具有最小成本之域塊的距離及差異資訊,並將所述距離及差異資訊傳遞至編碼器240。此處,距離資訊可包含指示兩個塊資料之間的差異的差異旗標(差異旗標=01或10)以及表索引(其儲存於對應於計算出之成本的成本表內)。舉例而言,相對於由第0個短塊與第1個短塊組成之域塊的距離資訊 包含距離資訊(距離旗標=1,距離值為8)以及差異資訊(差異旗標=01及表索引)。
編碼器240使用距離資訊與差異資訊(差異旗標及表索引)來壓縮範圍塊之資料。
圖10為說明圖8之編碼器240之例示性資料壓縮操作的流程圖。在圖10中,在編碼器240具有異常處理功能的假定下描繪資料壓縮操作。然而,編碼器240可在無異常處理功能之情況下實施。在此情況下,自壓縮之結構中省略異常處理器250,且編碼器240對具有計算出之成本的塊進行編碼,所述塊被視為異常塊(例如,由範圍塊組成之短塊中無任一短塊與搜尋範圍內之任一短塊完全相同)。
參看圖10,加載器210在步驟S411中加載輸入資料,使得所述輸入資料在緩衝器中緩衝。此時,將輸入資料劃分成巨集塊及短塊。不參考比較目標巨集塊或參考少量比較目標巨集塊而對位於經加載資料開頭的巨集塊進行編碼。在此情況下,由於不存在足夠的域塊供參考,所以壓縮效率較低。因此,較佳應在不進行壓縮的情況下將位於編碼訊框開頭的預設數目之巨集塊作為異常塊來處理。加載器210以編碼訊框為單位加載資料,且搜尋器220以大小與範圍塊完全相同之域塊為單位執行搜尋過程。此時,位於編碼訊框開頭之資料具有少量可參考域塊或不具有可參考域塊。在此情況下,搜尋器220將編碼訊框開頭處所界定之預設數目之巨集塊作為異常塊來處理。在圖10中,假定16個巨集塊MB0至MB15為異常塊。一旦資料壓縮 開始,編碼器240便在步驟S435中對巨集塊MB0至MB15執行異常處理,並在步驟S433中將異常塊MB0至MB15保存至緩衝器。此時,不進行壓縮之情況下儲存異常塊。
在處理初始異常塊之後,搜尋器220如圖9所示對搜尋範圍進行組態,加載範圍塊及搜尋範圍內之域塊,將範圍塊與域塊進行比較,並在步驟S413中將與範圍塊相關聯之距離資訊及差異資訊發送至編碼器240。
在步驟S415中,編碼器240評估差異旗標,並判定範圍塊之資料是否與域範圍之資料完全相同(成本=0)。若範圍塊之資料與域塊之資料彼此完全相同,則編碼器240在步驟S417中將距離資訊及差異旗標編碼為範圍塊之經壓縮資料,並在步驟S419中將所述經壓縮資料保存於記憶體中。亦即,若範圍塊之資料與域塊之資料彼此完全相同,則編碼器240創建範圍塊與域塊之間的距離資訊以及差異旗標(差異旗標=00)作為範圍塊之經壓縮資料,所述差異旗標指示兩個塊之間的資料相同。
若在步驟S415處判定不存在資料與範圍塊完全相同之域塊(差異旗標≠0),則編碼器240在步驟S421中評估表索引,並在步驟S423中查找所述表索引。所述表索引由搜尋器220基於兩個塊之間的差異值而產生。所述表索引可為全局表索引(及/或局域表索引)。檢查表索引,以判定全局表(及/或局域表)中是否存在搜尋器220所找出之成本。全局表(及/或局域表)使用由成本判定之表索引,並允許解壓縮器在對資料進行解壓縮時,參考資料索 引而提取範圍塊與域塊之間的差異值。在以下描述中,假定使用全局表及局域表兩者。可藉由將搜尋器220所產生之表索引用作表之索引,來將範圍塊之經壓縮資料恢復為原始資料。此時,若差異旗標指示全局表索引(差異旗標=01),則編碼器240在步驟S425中判定全局表中是否存在表索引值。若全局表中存在差異旗標,則編碼器在步驟S419中將距離資訊及差異資訊保存於記憶體中。此時,距離資訊可包含範圍塊之距離旗標以及相對於域塊之距離值,且差異資訊可包含差異旗標以及全局表之索引值。若差異旗標指示局域表之索引(差異旗標=10),則編碼器240在步驟S427中查找局域表。此處,如圖7B所示,局域表由搜尋器220創建,以登記出現頻率高於預設次數但未登記於全局表中的差異值。此時,若局域表中存在表索引值,則編碼器240在步驟S429中偵測表索引值的存在,並在步驟S419中將距離資訊及差異資訊儲存於記憶體中。若將差異旗標設定成“01”或“10”而非“00”,則編碼器240將包含差異旗標值之差異資訊及全局表或局域表之表索引以及距離資訊儲存於記憶體中。
若在步驟S429處判定差異旗標為異常旗標,則編碼器240在步驟S431中致能異常處理器250。異常處理器250在步驟S431處將異常旗標儲存於記憶體內,並在步驟S433中在不進行壓縮之情況下儲存範圍塊之資料。亦即,若範圍塊與搜尋範圍內之域塊並不完全相同,或全局表或局域表中不存在索引,則編碼器240在不進行壓縮之情況 下儲存異常旗標以及範圍塊之資料。
如上所述,編碼器240可在不進行壓縮的情況下將範圍塊之資料儲存於記憶體中。舉例而言,雖然兩個塊中存在相同資料,但屬於範圍塊之短塊的資料不同於域塊之短塊的資料或成本較高,因此編碼器240對所述範圍塊執行異常處理。亦即,若全局表及局域表中不存在範圍塊與域塊之間的差異值,則編碼器240在不進行壓縮的情況下儲存範圍塊之資料。在此情況下,編碼器240通知異常處理器250所述異常塊,使得異常處理器250在不進行壓縮的情況下將範圍塊之資料儲存於記憶體中。此處,可將異常處理器250整合至編碼器240中。
在壓縮經加載之範圍塊之資料的同時,壓縮器將經壓縮資料儲存於記憶體內。此時,經壓縮資料包含距離資訊、差異資訊及異常塊。如表2儲存所述經壓縮資料。
如上所述,壓縮器藉由將位於範圍塊之前的域塊與所 述範圍塊進行比較來計算差異值,自所述差異值計算成本,並使用相對於具有最小成本之域塊的距離資訊及差異資訊來壓縮範圍塊之資料。由於圖9中範圍塊與第三域塊[4,5]之間的差異值為零,所以編碼器240產生相對於第三域塊之距離及差異值作為經壓縮資料。
然而,在諸如圖9中之第一域塊[6,7]及第五域塊[2,3]的域塊不具有與範圍塊之短塊完全相同的短塊的情況下,編碼器240將範圍塊作為異常塊來處理。
類似第二域塊[5,6]、第四域塊[3,4]、第六域塊[1,2]及第七域塊[0,1],若域塊之一個短塊與範圍塊之對應短塊完全相同,則編碼器240計算搜尋範圍內之域塊相對於範圍塊的成本的總量,並判定範圍塊與具有最小成本總量之域塊之間的距離及差異資訊(差異旗標及表索引)作為壓縮資料。當編碼器240具有全局表及/或局域表時,編碼器240用表索引代替差異值,並判定鏈接至索引之資訊作為經壓縮資料。在此情況下,範圍塊之經壓縮資料可由距域塊之距離以及表之資訊來表示。
圖11為說明根據本發明例示性實施例之編碼器之資料壓縮操作的流程圖。當在緩衝器中緩衝由加載器210加載的輸入資料時,搜尋器220計算與範圍塊相關聯之具有最小值之域塊的成本,如圖9所示。在此情況下,編碼器240使用搜尋器220所輸出之距離資訊及差異資訊來對範圍塊之資料進行編碼。在圖11中,更詳細描述此資料編碼程序。
參看圖11,以短塊[0,1,2,3,4,5](proc-1)為異常塊且塊[6,7](proc-2)、[8,9](proc-3)、[10,11](proc-4)為範圍塊之例示性情況更詳細地描述搜尋器220及編碼器240的操作。
首先,在步驟S510中,加載器210加載編碼訊框,使得編碼訊框的資料在內部緩衝器中緩衝。接下來,編碼器240在步驟S512中加載異常塊之資料,並在步驟S514及S516中對異常塊之資料執行異常處理。此處,異常塊為6個短塊(3個巨集塊)[0,1,2,3,4,5]。在步驟S516處經異常處理的塊在步驟S518中儲存於記憶體內。之所以將編碼訊框之預設數目的巨集塊作為異常塊來處理,原因在於其壓縮比較低。在此情況下,較佳的是,異常塊為位於編碼訊框開頭的巨集塊。將經由異常處理過程處理之巨集塊的資料以原始資料格式儲存。
在處理異常塊之後,壓縮器自巨集塊序列中選出範圍塊,檢查位於所述範圍塊之前的域塊以獲得距離資訊及差異資訊,並基於所述距離資訊及差異資訊而壓縮範圍塊。以將巨集塊proc-2[6,7]、proc-3[8,9]及proc-4[10,11]選為範圍塊之例示性情況來描述壓縮程序。
關於proc-2[6,7]之壓縮過程,搜尋器220在步驟S524中加載範圍塊[6,7],並在步驟S525中對搜尋範圍進行組態。此處,搜尋範圍由塊[0-5]界定。接下來,搜尋器220在步驟S526中對搜尋範圍內之域塊執行向前及向後編碼。由於搜尋範圍內不存在相同的塊,所以搜尋器220並不產生全局表及局域表索引,而是產生設定為“11”的差 異旗標(亦即,異常處理旗標),以將範圍塊作為具常塊來處理。因此,編碼器240在步驟S562處參考異常處理旗標對範圍塊[6,7]執行異常處理。在處理異常塊的同時,編碼器240在不進行壓縮的情況下儲存設定為11的差異旗標,所述差異旗標指示異常塊以及異常塊的資料。此時,將異常塊之資料以圖11中表示為參考標號S564的表的形式儲存。
關於proc-3[8,9]之壓縮過程,搜尋器220在步驟S524中加載範圍塊[8,9],並在步驟S525中對搜尋範圍進行組態。此處,搜尋範圍由塊[0-7]界定。接下來,搜尋器220在步驟S526中對搜尋範圍內之域塊執行向前及向後編碼。搜尋器220偵測到域塊[4,5]與範圍塊[8,9]完全相同,且因此產生具有設定為0之差異值的差異資訊。在此情況下,搜尋器220產生關於具有距離旗標=1且距離值=4之短塊[8]的距離資訊、關於具有距離旗標=0且差異旗標=0之短塊[9]的距離資訊(因為短塊[9]與[5]之間的距離與短塊[8]與[4]之間的距離完全相同),並將距離及差異資訊輸出至編碼器240。在步驟S532及S534中,編碼器240判定範圍塊與域塊完全相同,並將由距離資訊(旗標=10,距離值=4)及距離旗標(差異旗標=0,0)組成之壓縮資料儲存於記憶體內。此時,以圖11中表示為參考標號S536之表的形式儲存塊[8,9]之經壓縮資料(10[距離旗標]、4[距離值]、00[差異旗標])。
關於proc-4[10,11]之壓縮過程,搜尋器220在步驟 S524中加載範圍塊[10,11],並在步驟S525中對搜尋範圍進行組態。此處,搜尋範圍由塊[0-9]界定。接下來,搜尋器220在步驟S526中對搜尋範圍內之域塊執行向前及向後編碼。在執行向前及向後編碼的同時,搜尋器220偵測域塊[0,1]與範圍塊[10,11]之間的相似性,並產生差異資訊及距離資訊。由於範圍塊之短塊[10]與域塊之短塊[0]彼此完全相同,所以搜尋器220產生差異資訊,其中差異值被設定為0。在此情況下,搜尋器220產生包含設定為1之距離旗標及設定為10之距離值的距離資訊,以及包含設定為0之差異旗標的差異資訊,並將距離及差異資訊輸出至編碼器240。此外,由於範圍塊之短塊[11]及短塊[1]彼此不同,所以搜尋器220計算兩個短塊的差異值[C XOR B],以及對應於所述差異值的成本。接下來,搜尋器220參考成本表來判定對應於所述成本的表索引。在此情況下,搜尋器220產生設定為0的距離旗標(由於短塊[11]及[1]之間的距離與短塊[10]及[0]之間的距離完全相同),並將包含差異旗標及選定表索引之差異資訊輸出至編碼器240。此處,差異資訊可包含設定為01之差異旗標以及全局表索引。
編碼器240判定範圍塊之短塊[10]與域塊之短塊[0]完全相同,並將由距離資訊(距離旗標=1,距離值=10)及差異資訊(差異旗標=0)組成之壓縮資料儲存於記憶體中。由於範圍塊之短塊[11]與域塊之短塊[1]彼此不同,所以編碼器240在步驟S546中在表中查找由搜尋器220在 步驟S542及S544中輸出之表示為參考標號S544的表索引。此時,若在步驟S548中在表(全局表或局域表)中找到由搜尋器220輸出之表索引,則編碼器240儲存成本[全局表索引=代碼(C:B)]作為差異值。亦即,編碼器240以表示為參考標號S550之表的形式儲存包含設定為0之距離旗標的距離資訊,以及包含設定為01之差異旗標及設定成[全局表索引=代碼(C:B)]之差異值的差異資訊,作為範圍塊之短塊的經壓縮資料。
在加載表示為參考標號S510之編碼訊框之後,搜尋器220及編碼器240壓縮短塊[0-11],並以表示為參考標號S550的表的形式儲存經壓縮資料。
如上所述,根據本發明例示性實施例之例示性資料壓縮方法參考範圍塊與搜尋範圍內之域塊之間的距離資訊及差異資訊來壓縮範圍塊。此處,距離資訊包含距離旗標及距離值。距離旗標之長度為1個位元,且經設定以指示設定或重設狀態。亦即,若待壓縮之當前範圍塊及域塊之間的距離值與先前範圍塊及對應域塊之間的距離值完全相同,則將距離旗標設定為重設狀態(表2中之“0”),否則將距離旗標設定為設定狀態(表2中之“1”)。當將距離旗標設定成設定狀態(亦即“1”)時,距離資訊包含相對於對應域塊之距離旗標及距離值。另一方面,當將距離旗標設定為重設狀態(亦即“0”)時,距離資訊僅包含距離旗標。
此外,差異資訊是關於範圍塊與對應域塊之間的差異 的資訊。差異資訊可包含差異旗標及差異值。可根據差異值以各種格式來設定差異旗標。亦即,當以單個類型創建差異值時,可用1個位元來設定差異旗標,以指示設定狀態或重設狀態。然而,當以至少兩種類型創建差異值時,根據類型數目來判定差異旗標的位元數。在本發明之例示性實施例中,可使用四種方法。第一種方法直接使用差異值。第二種方法使用全局表中與在範圍塊與域塊之間計算出的差異值匹配的表索引。第三種方法使用全局表或局域表中與在範圍塊與域塊之間計算出的差異值匹配的表索引。第四種方法處理範圍塊,所述範圍塊之壓縮效率與使用第二種方法及第三種方法時之異常塊的壓縮效率一樣低。
在第一種差異資訊產生方法中,當當前範圍塊及其對應域塊之間的距離值與先前範圍塊及其對應域塊之間的距離值完全相同時,將差異旗標設定為重設狀態(“0”),且否則(亦即,兩個塊彼此不同)將差異旗標設定為設定狀態(“1”)。此處,兩個塊之間的差異值為藉由對範圍塊及域塊執行“互斥或”運算而獲得的值。在此情況下,在將差異旗標設定為1時,差異值包含差異旗標及與對應域塊的“互斥或”值,且當差異旗標設定為0時,差異值僅包含差異旗標。
在第二種差異資訊產生方法中,當當前範圍塊及其對應域塊之間的距離值與先前範圍塊及其對應域塊之間的距離值完全相同時,將差異旗標設定為重設狀態(“0”), 且否則(亦即,兩個塊彼此不同)將差異旗標設定為設定狀態(“1”)。此處,兩個塊之間的差異值為使用範圍塊與域塊之間的“互斥或”運算獲得的成本。在使用所述成本判定全局表之表索引之後,將所述表索引設定為所述差異值。在此情況下,當將差異旗標設定為設定狀態(“1”)時,差異資訊包含差異旗標及全局表之表索引,而當將差異旗標設定為重設狀態(“0”)時,差異資訊僅包含差異旗標。全局表可儲存範圍塊與域塊之間的差異值。此時,差異值可為兩個塊之間的“互斥或”運算值。
在第三種差異資訊產生方法中,當當前範圍塊及其對應域塊之間的距離值與先前範圍塊及其對應域塊之間的距離值完全相同時,將差異旗標設定為重設狀態(“0”),且否則(亦即,兩個塊彼此不同)將差異旗標設定為設定狀態(“1”)。此處,兩個塊之間的差異值為使用範圍塊與域塊之間的“互斥或”運算獲得的成本。在使用所述成本判定全局表或局域表的表索引之後,將所述表索引設定為所述差異值。此處,全局表可為固定表,且局域表為可變的表。使用對在壓縮過程期間頻繁出現但未存在於全局表中之差異值的分析結果來產生局域表。在此情況下,壓縮器向局域表登記範圍塊與對應域塊之間的差異值,並向成本表登記局域表之表索引。當將差異旗標設定為“01”時,差異資訊包含差異旗標及全局表之表索引,且當將差異旗標設定為“10”時,差異資訊包含差異旗標及局域表之表索引。此外,當將差異旗標設定為“00”時,差異資 訊僅包含差異旗標。
關於第四種差異資訊產生方法,當使用利用全局表及局域表的差異資訊產生方法時,表中可能不存在範圍塊與域塊之間的差異值。在此情況下,可能較佳的是不壓縮範圍塊之資料。這是因為對此範圍塊之經壓縮資料進行解碼所花費的時間過長。因此,當範圍塊與域塊之間的差異值未登記在全局表及局域表內時,將範圍塊作為異常塊來處理,使得範圍塊的資料不被壓縮。在此情況下,將差異旗標設定為異常旗標(“11”),並使用範圍塊之原始資料。
壓縮器將如上產生之差異資訊以及距離資訊編碼成範圍塊之經壓縮資料。將如上壓縮之資料儲存於記憶體中,或經由通信部件傳輸。
為了存取並處理以經壓縮格式儲存或接收之資料,必須對經壓縮資料進行解壓縮。在例示性實施方案中,經壓縮資料可由解壓縮器解壓縮。如上所述,經壓縮資料可由四種類型之差異資訊來表示。因此,壓縮器使用四種壓縮方案之一來壓縮資料,使得解壓縮器經組態以使用對應的解壓縮方案對經壓縮資料進行解壓縮。
在第一解壓縮方案中,解壓縮器判定距離資訊,並選擇具有最低成本的域塊。此時,解壓縮器評估距離資訊中所含有之距離旗標,且若距離旗標指示重設狀態,則解壓縮器在對先前範圍塊進行解壓縮時選擇位於選定域塊之距離處的域塊。否則,若距離旗標指示設定狀態,則解壓縮器選擇位於距離資訊所指示之距離處的域塊。接下來,解 壓縮器參考相對於選定域塊之距離資訊對範圍塊之經壓縮資料執行解壓縮。此時,若距離資訊中所含有之差異旗標指示重設狀態,則解壓縮器自選定域塊之資料恢復範圍塊之資料。否則,若差異旗標指示設定狀態,則解壓縮器藉由對所述差異值及選定域塊之資料執行“互斥或”運算來恢復範圍塊的資料。
在第二解壓縮方案中,解壓縮器具備全局表,所述全局表儲存在範圍塊與域塊之間頻繁出現的差異值。解壓縮器首先評估經壓縮資料的距離資訊,並選擇具有最低成本的域塊。可以與第一解壓縮方案相同的方式來執行域塊選擇。接下來,解壓縮器參考差異資訊使用選定域塊之資料來恢復範圍塊之資料。此時,若差異資訊中所含有之差異旗標指示重設狀態,則解壓縮器自選定域塊之資料恢復範圍塊之資料。否則,若差異旗標指示設定狀態,則解壓縮器藉由存取儲存於全局表內由差異值指示的資訊(在此情況下,將差異值用作全局表之索引),並對所述資訊及選定域塊之資料執行“互斥或”運算,來恢復範圍塊之資料。儲存於全局表內之資料為範圍塊與最低成本之“互斥或”值。
在第三解壓縮方案中,解壓縮器具備全局表(固定表)及局域表(在壓縮過程期間創建的可變表),全局表儲存在範圍塊與域塊之間頻繁出現的差異值,且局域表儲存在範圍塊與域塊之間頻繁出現但不存在於全局表內的差異值。在此情況下,解壓縮器評估經壓縮資料的距離資訊,並選 擇具有最低成本的域塊。可以與第一解壓縮方案相同的方式來執行域塊選擇。接下來,解壓縮器參考差異資訊使用域塊之資料來恢復範圍塊的資料。此時,若差異資訊中所含有之差異旗標指示重設狀態,則解壓縮器自選定域塊之資料恢復範圍塊之資料。否則,若差異旗標指示設定狀態,則解壓縮器根據差異旗標來選擇全局表及局域表中的一者,自選定表擷取與差異值(其可為全局表或局域表之索引)匹配的資訊,並藉由對選定域塊之資料及自選定表擷取之資訊執行“互斥或”運算來恢復範圍塊之資料。此時,儲存於全局表及局域表中之資訊為導致相對於範圍塊之最低成本的“互斥或”運算值。
在第四解壓縮方案中,使用全局表(固定表)及局域表(在壓縮過程期間創建的可變表)來執行解壓縮,全局表儲存在範圍塊與域塊之間頻繁出現的差異值,且局域表儲存在範圍塊與域塊之間頻繁出現但不存在於全局表中的差異值。在此情況下,解壓縮器評估經壓縮資料的距離資訊,並選擇具有最低成本的域塊。可以與第一解壓縮方案相同的方式來執行域塊選擇。接下來,解壓縮器參考差異資訊使用域塊之資料來恢復範圍塊之資料。此時,若差異資訊中所含有之差異旗標指示重設狀態,則解壓縮器自選定域塊之資料恢復範圍塊之資料。否則,若差異旗標指示設定狀態,則解壓縮器根據差異旗標之類型以不同方式來恢復範圍塊之資料。此處,若差異旗標為異常旗標,則解壓縮器將差異資訊中所含有之差異值恢復為範圍塊的資 料。亦即,具有異常旗標之差異資訊的差異值為未經壓縮的資料,使得可在無需解壓縮過程的情況下恢復範圍塊之資料。若差異旗標指示使用全局表或局域表,則解壓縮器自全局表或局域表中提取與差異值(其可為全局表或局域表之索引)匹配的資訊,並藉由對所提取之資訊及選定域塊之資料執行“互斥或”運算來恢復範圍塊的資料。此時,儲存於全局表與局域表中之資訊為導致相對於範圍塊之最低成本的“互斥或”運算值。
在以下描述中,假定解壓縮器具備全局表及局域表,並且支持異常處理功能。亦即,結合第四解壓縮方案來描述資料解壓縮方法。
圖12為說明根據本發明例示性實施例之解壓縮器的方塊圖。
參看圖12,解壓縮器包含加載器610、旗標提取器620、解碼器630及異常處理器640。加載器610加載儲存於記憶體中之經壓縮資料。所述經壓縮資料可包含距離資訊、差異資訊以及異常塊。此時,距離資訊包含距離旗標及距離值,且差異資訊包含差異旗標及表索引。旗標提取器620自相應的距離資訊及差異資訊中提取距離旗標及差異旗標,並將距離旗標與差異旗標輸出至解碼器630。解碼器630分析距離旗標及距離值,判定對應於範圍塊之域塊的位置,參考距離旗標及表索引值而判定範圍塊與域塊之間的差異值,並藉由對差異值及域塊執行“互斥或”運算來恢復範圍塊的資料。若旗標提取器620提取設定為11 的差異旗標,亦即異常旗標(指示異常塊的差異旗標),則解碼器630致能異常處理器640,以處理異常塊的資料。在此情況下,異常處理器640將所儲存之資料按原樣輸出。雖然在圖12中將異常處理器640實施為單獨組件,但可將異常處理器640整合至解碼器630中。此外,經解壓縮之資料可在緩衝器中緩衝。
雖然在圖12中將異常處理器640描繪為解壓縮器的一部分,但解壓縮器可在不具有異常處理器的情況下實施。在壓縮器執行異常塊處理的情況下,解壓縮器可在不具有異常處理器的情況下實施。
圖13為說明根據本發明例示性實施例之解壓縮器之操作的流程圖。
參看圖13,在步驟S710中,以在開頭部分包含若干異常塊之編碼訊框為單位自記憶體加載經壓縮資料。因此,解碼器630在步驟S791中致能異常處理器640,以恢復異常塊之資料。在步驟S773中,將異常塊之經恢復資料保存在緩衝器中。接下來,解碼器630對異常塊之後的經壓縮資料進行解碼,以恢復原始資料。為了對經壓縮資料進行解壓縮,解壓縮器對自經壓縮資料提取之距離資訊進行分析,並基於所述距離資訊而判定域塊的位置,自表中擷取表索引值,並使用所述表索引值來恢復範圍塊之資料。此外,解壓縮器判定異常塊之位置,並將異常塊之資料插入於所述位置處,使得異常塊之資料被恢復。
在此例示性實施例中,假定首先恢復異常塊之資料, 且接著參考經壓縮資料之距離及差異資訊恢復範圍塊之資料。
解碼器630在步驟S720及S730中加載壓縮過程中所使用之全局表及局域表,並在步驟S753中找出加載器610所加載之編碼訊框的開始點。接下來,解碼器630在步驟S755中判定何時偵測到異常旗標(差異旗標=11)。若偵測到異常旗標,則解碼器在步驟S791中恢復異常塊之資料,並在步驟S773中將異常塊之資料保存至緩衝器。
另一方面,若未偵測到異常旗標(差異旗標≠11),則解碼器630存取距離資訊,並在步驟S757中判定距離資訊中所含有之距離旗標是否指示設定狀態(距離旗標=0)。若距離旗標指示設定狀態,則解碼器630選擇位於由距離值指示之距離處的域塊。否則,若距離旗標指示重設狀態,則解碼器630不移動位置,因為重設狀態意味著所述距離與先前處理之域塊的距離完全相同。當距離旗標指示設定狀態時,解碼器630在步驟S759中判定範圍塊之位置,在步驟S761中讀取距離資訊中所含有之距離值,並在步驟S763中選擇位於距範圍塊所述距離處的域塊。另一方面,若距離旗標指示重設狀態,則解碼器630在步驟S767中選擇位於先前恢復之範圍塊與域塊之間的距離值的距離處的域塊。亦即,當將距離旗標設定為1時,解碼器630選擇位於與當前範圍塊相距所述距離值所指示之距離處的參考域塊,且當將距離旗標設定為0時,解碼器在維持先前距離的同時選擇參考域塊。
在參考距離資訊選擇域塊之後,解碼器630在步驟S765中讀取差異資訊的差異旗標,且在步驟S769中判定差異旗標之狀態。若差異旗標指示重設狀態(差異旗標=00),則解碼器630在步驟S771中拷貝選定域塊之資料作為範圍塊之資料,並在步驟S773中將所拷貝之資料保存於緩衝器中。差異旗標之重設狀態意味著範圍塊之資料與選定域塊之資料彼此完全相同,使得解碼器630將選定域塊之資料解碼成範圍塊之資料。
若差異旗標指示設定狀態(差異旗標=01或10),則解碼器630在步驟S781中讀取差異資訊中所含有的差異值。此時,差異值為全局表或局域表之表索引。因此,解碼器630在步驟S781中加載所述差異值作為表的索引,並在步驟S783中查找所述表。此時,解碼器630自表中擷取所述索引。若差異旗標屬於全局表(差異旗標=01),則解碼器選擇對應於全局表中之索引的差異值。另一方面,若差異旗標屬於局域表(差異旗標=10),則解碼器選擇對應於局域表中之索引的差異值。
解碼器在步驟S785中判定選定表中是否存在匹配的索引。若表中存在匹配的索引,則解碼器630在步驟S787中自表中讀取由所述索引指示的參考資料,並在步驟S773中將所讀取之資料保存於緩衝器中。否則,若在表中不存在匹配的索引,則解碼器630在步驟S789中執行錯誤處理過程。如上所述,當差異旗標為表索引(亦即,指示表的差異資訊)時,解碼器630讀取由差異資訊中所含有之 索引指示的資料,並將所述索引與域塊進行比較(“互斥或”運算),以恢復範圍塊之資料。
在重複以上過程的同時,解碼器630對以距離資訊及差異資訊壓縮之範圍塊的資料進行解碼。藉由參考距離資訊而選擇相對於範圍塊之參考域塊,並參考差異資訊而處理選定域塊之資料,來恢復範圍塊之資料。
圖14為說明用於對經由圖11之壓縮程序壓縮之資料進行解壓縮的解壓縮器的例示性操作的流程圖。
參看圖14,表示為參考標號S510之資料如圖11中般被壓縮,並以表示為參考標號S710之經壓縮格式儲存。此處,儲存於記憶體中之資料包含異常塊資訊及異常塊之資料,以及距離及差異資訊。在圖14中,經編碼之資料訊框包含位於開頭之異常塊的資料,以及異常塊資料之後的距離資訊(距離旗標及距離值)以及差異資訊(差異旗標及差異值)。
加載器610首先在步驟S720及S730中加載全局表及局域表。在所述表被加載之後,解碼器630在步驟S791中自記憶體讀取異常塊(此處為短塊[0-5])的資料,並將所讀取之資料保存於緩衝器中。接下來,解碼器630參考旗標提取器620所提取之旗標來對資料進行解碼。在步驟S753中加載表及經壓縮資料之後,解碼器630在步驟S755中判定差異旗標是否為異常旗標。若差異旗標為異常旗標(差異旗標=11),則解碼器630在步驟S791中判定異常塊(此處為短塊[6,7])之位置,並將異常塊之資料[E,C]保 存於緩衝器中,其中將異常塊之資料[E,C]表示為參考標號S740。
若差異旗標並非異常旗標,則解碼器630在步驟S757中判定距離旗標是否指示設定狀態。若距離旗標指示設定狀態(距離旗標=1),則解碼器630在步驟S759中計算待解壓縮之資料(此處為短塊[8])的位置,在步驟S761中讀取距離值(距離值=1),並在步驟S763中參考距離值(位於4個塊之前的域塊)來計算參考域塊的位置。接下來,解碼器630在步驟S765中讀取差異旗標,並在步驟S769中判定差異旗標是否被設定為0。若差異旗標被設定為0,則解碼器630在步驟S771中讀取參考域塊(此處為第8個短塊)的資料,且恢復資料作為第4個短塊的資料B,並在表示為參考標號S740的緩衝器中保存所恢復的資料。
解碼器630在步驟S757處檢查下一個距離旗標,並判定所述距離旗標是否指示重設狀態。若距離旗標指示重設狀態,則解碼器630在步驟S767中使用先前距離值(距離值=4),並在步驟S765中計算參考域塊之位置(位於自第9個短塊之前4個短塊處的第5個短塊)。接下來,解碼器630在步驟S769中評估差異旗標,並判定所述差異旗標是否被設定為0。由於差異旗標被設定為0,所以解碼器630在步驟S771中恢復第5個域塊之資料B作為第9個短塊之資料,並將所述資料保存在表示為參考標號S740之緩衝器中。
解碼器630在步驟S757中判定下一個距離旗標。若所述距離旗標被設定為1,則解碼器630在步驟S759中計算待解壓縮之範圍塊(此處為第10個短塊)的位置,在步驟S763中讀取距離值,以計算參考域塊之位置(此處為位於自第10個短塊之前10個短塊的第0個短塊)。接下來,解碼器630在步驟S769中檢查差異旗標。由於差異旗標被設定為0,所以解碼器630在步驟S771中用第0個短塊之資料A來恢復第10個短塊之資料,並將所恢復之資料保存於表示為參考標號S740的緩衝器中。
解碼器630在步驟S757中檢查下一個距離旗標。若所述距離旗標被設定為0,則解碼器630在步驟S767中讀取先前距離值(距離值=10),並在步驟S765中使用先前距離值來計算參考域塊之位置(位於自第11個短塊之前10個短塊處的第1個短塊)。接下來,解碼器630在步驟S769中檢查差異旗標。由於差異旗標被設定為01,所以解碼器630在步驟S781中自記憶體加載差異值[來自代碼(C:B)之全局表索引]。接下來,解碼器630在步驟S783中自全局表選擇由所述差異值指示的資料(C XOR B),經由步驟S785及S787對所述資料及選定域塊之資料(第1個短塊的B)執行“互斥或”運算)(C XOR B)XOR B=C),並將所恢復之資料C保存於表示為參考標號S740的緩衝器中。否則,若在步驟S785中發現不存在匹配的索引,則解碼器630在步驟S789中執行錯誤處理過程。
如上所述,解壓縮器恢復由壓縮器壓縮之資料,並將 所恢復之原始資料儲存於記憶體中。在記憶體設備中,資料以經壓縮格式儲存,並在解壓縮之後被讀取以供使用。因此,在寫入模式下,壓縮器對所加載之資料進行壓縮,且接著將其儲存於記憶體內,且在讀取模式下,解壓縮器對經壓縮之資料進行解壓縮,而與主機設備之控制器無關,從而導致記憶體利用率得以改良。
圖15為說明根據本發明例示性實施例以資料壓縮/解壓縮裝置實施之行動終端之組態的方塊圖。
參看圖15,行動終端包含控制單元800、記憶體單元810、壓縮器820、解壓縮器830、射頻(Radio Frequency,RF)單元840、音訊處理單元850、顯示單元860、按鍵輸入單元870、以及通信介面單元880。
RF單元840負資行動終端之無線電通信。RF單元840包含用於對待傳輸之信號進行上變頻轉換及放大的RF傳輸器,以及用於對經由天線接收之信號進行低噪聲放大及下變頻轉換的RF接收器。按鍵輸入單元870具備用於輸入字母數字資料的多個字母數字按鍵,以及用於執行行動終端之各種功能的功能按鍵。
控制單元800控制行動終端之操作。控制單元800具備資料處理單元,所述資料處理單元具有編解碼器,編解碼器包含用於對傳輸信號進行編碼的編碼器,以及用於對經編碼信號進行解碼的解碼器,且所述資料處理器單元亦具有數據機,所述數據機包含用於對經編碼信號進行調變,並將經調變之信號輸出至RF單元840的調變器,以 及用於對由RF單元840輸出之經調變信號進行解調變的解調器。
記憶體單元810可具備程式記憶體及資料記憶體。程式記憶體儲存用於執行行動終端之操作及功能的應用程式。資料記憶體儲存操作所述應用程式期間所產生的資料。
壓縮器820在寫入模式下,在控制單元800之控制下,壓縮經加載之資料,並將經壓縮之資料儲存於記憶體單元810中。解壓縮器830在讀取模式下,在控制單元800之控制下,對自記憶體單元810讀出之資料進行解壓縮。此處,壓縮器820可如圖8所說明般組態,且解壓縮器830可如圖12所說明般組態。
顯示單元860顯示操作狀態及特殊應用資訊(application specific information)。可用液晶顯示器(Liquid Crystal Display,LCD)來實施顯示單元860。在此情況下,顯示單元860包含LCD控制器、用於緩衝視訊資料的記憶體以及LCD設備。在例示性實施方案中,當LCD支持觸模屏功能時,顯示單元860可提供輸入功能,代替或支持按鍵輸入單元870。音訊處理單元850處理音訊信號。
通信介面單元880具備與外部設備之通信介面。通信介面單元880包含至少一個有線或無線通信介面。無線通信介面可包含藍牙(Bluetooth)、ZigBee、超寬頻帶(Ultra Wideband,UWB)、無線寬頻帶(Wireless Broadband,WiBro)、無線保真度(Wireless Fidelity,Wi-Fi)或另一類型之介面中的至少一者。有線通信介面亦可包含通用串列 匯流排(Universal Serial Bus,USB)、推薦標準(Recommended Standard,RS)串列通信或另一類型之介面。行動終端經由通信介面單元880與外部設備通信資料。
在如上構造之行動終端中,控制單元800致能用於壓縮待儲存於記憶體單元810內之資料的壓縮器820,並致能用於對自記憶體單元810讀出之經壓縮資料進行解壓縮的解壓縮器830。雖然將壓縮器820及解壓縮器830說明為單獨的組件,但可將其整合至控制單元800或記憶體單元810中。壓縮器820及解壓縮器830可實施為熔合記憶體設備(fusion memory device)的一部分。在行動終端中處理之資料包含程式代碼(韌體及軟體)以及使用者資料。此時,因為代碼可能由重複資料組成,所以本發明之例示性實施例之壓縮及解壓縮方法可改良記憶體利用率。
在寫入模式下,控制單元800加載待儲存於壓縮器上之資料,使得壓縮器820壓縮所述資料,並在記憶體單元810之特定位址處寫入經壓縮之資料。此處,可經由RF單元840或通信介面單元880來接收所述資料。控制單元800控制壓縮器820及記憶體單元810,使得所接收到之資料由壓縮器壓縮,並儲存於記憶體單元810中。在讀取模式下,控制單元800自記憶體單元810讀出經壓縮之資料,並控制解壓縮器830以對經壓縮之資料進行解壓縮。此處,所述經壓縮之資料可經由RF單元840或通信介面單元來傳輸,或由控制單元800來處理。
雖然已在上文中詳細描述了本發明之例示性實施例, 但應清楚地瞭解,熟習此項技術者可能想到之對本文所教示之基本發明性概念的許多更改及/或修改仍將屬於如由隨附申請專利範圍界定之本發明的精神及範疇內。
如上所述,使用本發明之資料壓縮/解壓縮裝置及其方法的記憶體存取系統以經壓縮之格式儲存資料,並以經解壓縮之格式輸出所述資料,而不管與所述記憶體存取系統一起操作之主機設備的控制,從而導致在不增加主機設備的處理負荷的情況下改良記憶體利用率。此外,本發明之資料壓縮/解壓縮裝置及其方法高效地對資料進行編碼,以便減少資料加載時間,並提高解碼速度。
210‧‧‧加載器
220‧‧‧搜尋器
240‧‧‧編碼器
250‧‧‧異常處理器
391‧‧‧範圍塊
393‧‧‧輸入資料
411‧‧‧資料
413‧‧‧全局表
417‧‧‧預定義之統計資料值
451‧‧‧資料
453‧‧‧局域表
455‧‧‧資料
457‧‧‧值
610‧‧‧加載器
620‧‧‧旗標提取器
630‧‧‧解碼器
640‧‧‧異常處理器
800‧‧‧控制單元
810‧‧‧記憶體單元
820‧‧‧壓縮器
830‧‧‧解壓縮器
840‧‧‧射頻單元
850‧‧‧音訊處理單元
860‧‧‧顯示單元
870‧‧‧按鍵輸入單元
880‧‧‧通信介面單元
D‧‧‧域塊
R‧‧‧範圍塊
S111~S123‧‧‧步驟
S151~S161‧‧‧步驟
S181~S191‧‧‧步驟
S310~S370‧‧‧步驟
S411~S435‧‧‧步驟
S510~S564‧‧‧步驟
S710~S791‧‧‧步驟
X‧‧‧巨集塊
Y‧‧‧參考塊
本發明某些例示性實施例之以上及其它態樣、特徵及優點將自結合附圖而進行之以下描述變得更加明顯,在附圖中:
圖1為說明根據本發明例示性實施例之供資料壓縮方法中使用之範圍塊及域塊之資料結構的圖。
圖2為說明根據本發明例示性實施例之經壓縮域塊及範圍塊之資料結構的圖。
圖3A為說明根據本發明例示性實施例之資料壓縮方法之向前編碼程序的圖。
圖3B為說明根據本發明例示性實施例之資料壓縮方法之向後編碼程序的圖。
圖4為說明根據本發明例示性實施例之資料壓縮方法中之範圍塊編碼的流程圖。
圖5為更詳細地說明圖4之例示性最佳化程序的流程圖。
圖6為更詳細說明圖4之例示性差異編碼表更新程序的流程圖。
圖7A為說明根據本發明例示性實施例之全局表之特性的圖。
圖7B為說明根據例示性實施例之局域表產生的特性的圖。
圖8為說明根據本發明例示性實施例之壓縮器之組態的方塊圖。
圖9為說明圖8之搜尋器之例示性操作的圖。
圖10為說明圖8之編碼器之例示性資料壓縮操作的流程圖。
圖11為說明根據本發明例示性實施例之編碼器之資料壓縮操作的流程圖。
圖12為說明根據本發明例示性實施例之解壓縮器的方塊圖。
圖13為說明根據本發明例示性實施例之解壓縮器之操作的流程圖。
圖14為說明用於對經由圖11之壓縮程序壓縮之資料進行解壓縮的解壓縮器的例示性操作的流程圖。
圖15為說明以實施有根據本發明例示性實施例之資料壓縮/解壓縮裝置之行動終端之組態的方塊圖。
應注意,在各圖中,相同參考標號用來描繪相同或相 似的元件、特徵及結構。
210‧‧‧加載器
220‧‧‧搜尋器
240‧‧‧編碼器
250‧‧‧異常處理器

Claims (21)

  1. 一種資料壓縮/解壓縮裝置,所述裝置包括:壓縮器,用於經由在搜尋範圍內之向前搜尋而計算域塊相對於範圍塊之成本,用於經由向後搜尋而選擇相對於所述範圍塊具有最低成本之域塊作為參考域塊,用於產生所述參考域塊之距離及差異資訊,且用於將所述距離及差異資訊編碼成所述範圍塊之經壓縮資料;以及解壓縮器,用於基於所述距離而找出所述參考域塊,且用於參考所述差異資訊而將所述經壓縮資料解碼成所述範圍塊之原始資料。
  2. 如申請專利範圍第1項所述之資料壓縮/解壓縮裝置,其中所述壓縮器包括:搜尋器,用於經由在搜尋範圍內之向前搜尋而計算所述域塊相對於所述範圍塊之所述成本,用於經由向後搜尋而選擇相對於所述範圍塊具有最低成本之所述域塊作為所述參考域塊,用於產生所述參考域塊之距離及差異資訊,所述範圍塊含有待壓縮之資料;以及編碼器,用於將所述距離及差異資訊編碼成所述範圍塊之所述壓縮資料。
  3. 如申請專利範圍第2項所述之資料壓縮/解壓縮裝置,其中所述距離資訊包括距離旗標及指示所述範圍塊與所述參考域塊之間的塊數目的距離值,且所述差異資訊包括差異旗標及指示所述範圍塊與所述參考域塊之間的差異的差異值。
  4. 如申請專利範圍第3項所述之資料壓縮/解壓縮裝置,其中所述壓縮器藉由對所述範圍塊之所述資料與所述參考域塊之所述資料執行“互斥或”運算來計算所述差異值,且所述解壓縮器藉由對所述差異值與所述參考域塊之所述資料執行“互斥或”運算來恢復所述範圍塊的所述資料。
  5. 如申請專利範圍第4項所述之資料壓縮/解壓縮裝置,更包括用於儲存域塊與範圍塊之間的差異值的全局表,其中所述壓縮器將所述範圍塊與所述域塊之間的所述差異值登記為所述全局表之索引,並讀出所述索引中之一者作為所述差異資訊之所述差異值,且所述解壓縮器讀出與所述全局表之所述索引匹配的所述差異值,並藉由對所述差異值與所述參考域塊之所述資料執行所述“互斥或”運算來恢復所述範圍塊之所述資料。
  6. 如申請專利範圍第5項所述之資料壓縮/解壓縮裝置,其中當所述全局表之索引未能被創建時,所述壓縮器產生異常旗標,並將所述異常旗標及所述範圍塊之所述資料編碼成所述範圍塊之所述經壓縮資料,且當在所述差異資訊中偵測到所述異常旗標時,所述解壓縮器將所述差異資訊中所含有之所述資料解碼成所述範圍塊之所述資料。
  7. 如申請專利範圍第6項所述之資料壓縮/解壓縮裝置,其中儲存於所述全局表中之所述差異值包括藉由對所述範圍塊與域塊執行“互斥或”運算所獲得的值。
  8. 如申請專利範圍第6項所述之資料壓縮/解壓縮裝 置,更包括異常處理器,其中當產生所述異常旗標時,所述異常處理器在不進行編碼之情況下儲存所述範圍塊之所述資料。
  9. 如申請專利範圍第3項所述之資料壓縮/解壓縮裝置,更包括用於儲存所述域塊與範圍塊之間的差異值的全局表,以及用於儲存所述全局表中不存在但在壓縮過程期間出現的差異值的局域表,其中所述壓縮器向所述全局表及局域表中的至少一者登記所述範圍塊與所述參考域塊之間的所述差異值作為索引,讀出所述索引作為所述差異資訊之所述差異值,向所述局域表登記所述全局表及局域表中不存在的所述差異值,且其特徵進一步在於所述解壓縮器讀出與所述全局表之所述索引匹配的所述差異值,並藉由對所述差異值與所述參考域塊之所述資料執行“互斥或”運算來恢復所述範圍塊之所述資料。
  10. 如申請專利範圍第9項所述之資料壓縮/解壓縮裝置,其中在所述表之索引未能創建時,所述壓縮器產生異常旗標,並將所述異常旗標及所述範圍塊之所述資料編碼成所述範圍塊之所述經壓縮資料,且當在所述差異資訊中偵測到所述異常旗標時,所述解壓縮器將所述差異資訊中所含有之所述資料解碼成所述範圍塊之所述資料。
  11. 如申請專利範圍第10項所述之資料壓縮/解壓縮裝置,其中藉由對所述範圍塊與域塊執行“互斥或”運算來獲得存儲於所述全局表及局域表中之所述差異值。
  12. 一種資料壓縮/解壓縮方法,所述方法包括: 藉由以下步驟來壓縮資料:經由在搜尋範圍內之向前搜尋而計算域塊相對於範圍塊之成本,經由向後搜尋而選擇相對於所述範圍塊具有最低成本之域塊作為參考域塊,產生所述參考域塊之距離及差異資訊,以及將所述距離及差異資訊編碼成所述範圍塊之經壓縮資料;以及藉由以下步驟來對所述經壓縮資料進行解壓縮:基於所述距離而找出所述參考域塊,以及參考所述差異資訊將所述經壓縮資料解碼成所述範圍塊之原始資料。
  13. 如申請專利範圍第12項所述之資料壓縮/解壓縮方法,其中所述經壓縮資料包括所述距離資訊以及所述差異資訊,所述距離資訊包含指示所述範圍塊與所述參考域塊之間的塊數目的距離值,且所述差異資訊包括指示所述範圍塊與所述參考域塊之間的差異的差異值。
  14. 如申請專利範圍第13項所述之資料壓縮/解壓縮方法,其中所述壓縮所述資料包括將所述範圍塊與所述域塊之間的所述差異值登記為全局表之索引,以及讀出所述索引中的一者作為所述差異資訊之所述差異值,且其特徵進一步在於所述對所述壓縮資料進行解壓縮包括讀出與所述全局表之所述索引匹配的所述差異值,以及藉由對所述差異值與所述參考域塊之所述資料執行所述“互斥或”運算來恢復所述範圍塊之所述資料。
  15. 如申請專利範圍第14項所述之資料壓縮/解壓縮方法,其中所述壓縮所述資料包括在所述全局表之索引未能 被創建時產生異常旗標,並將所述異常旗標及所述範圍塊之所述資料編碼成所述範圍塊之所述經壓縮資料,且其特徵進一步在於所述對所述經壓縮資料進行解壓縮包括當在所述差異資訊中偵測到所述異常旗標時,將所述差異資訊中所含有之所述資料解碼成所述範圍塊之所述資料。
  16. 如申請專利範圍第15項所述之資料壓縮/解壓縮方法,其中藉由對所述範圍塊及域塊執行“互斥或”運算,來獲得儲存於所述全局表及局域表中的所述差異值。
  17. 如申請專利範圍第15項所述之資料壓縮/解壓縮方法,更包括在不進行編碼之情況下儲存所述範圍塊之所述資料。
  18. 如申請專利範圍第13項所述之資料壓縮/解壓縮方法,其中所述壓縮所述資料包括向全局表及局域表中之至少一者登記所述範圍塊與所述參考域塊之間的所述差異值作為索引,讀出所述索引作為所述差異資訊之所述差異值,向所述局域表登記所述全局表及局域表中不存在的所述差異值,且其特徵進一步在於所述對所述經壓縮資料進行解壓縮包括讀出與所述全局表之所述索引匹配的所述差異值,以及藉由對所述差異值及所述參考域塊之所述資料執行“互斥或”運算來恢復所述範圍塊之所述資料,所述全局表儲存所述域塊與範圍塊之間的差異值,且所述全局表儲存所述全局表中不存在但在壓縮過程期間出現的差異值。
  19. 如申請專利範圍第18項所述之資料壓縮/解壓縮方 法,其中所述壓縮所述資料包括在所述表之索引未能被創建時產生異常旗標,並將所述異常旗標及所述範圍塊之所述資料編碼成所述範圍塊之所述經壓縮資料,且其特徵進一步在於所述對所述經壓縮資料進行解壓縮包括當在所述差異資訊中偵測到所述異常旗標時,將所述差異資訊中所含有之所述資料解碼成所述範圍塊之所述資料。
  20. 如申請專利範圍第19項所述之資料壓縮/解壓縮方法,其中藉由對所述範圍塊及域塊執行“互斥或”運算,來獲得儲存於所述全局表及局域表中的所述差異值。
  21. 行動終端的一種資料處理裝置,所述裝置包括:記憶體;壓縮器,用於經由在搜尋範圍內之向前搜尋而計算域塊相對於範圍塊之成本,用於經由向後搜尋而選擇相對於所述範圍塊具有最低成本之域塊作為參考域塊,用於產生所述參考域塊之距離及差異資訊,以及用於將所述距離及差異資訊編碼成所述範圍塊之經壓縮資料;解壓縮器,用於基於所述距離而找出所述參考域塊,且用於參考所述差異資訊而將所述經壓縮資料解碼成所述範圍塊之原始資料;以及控制器,用於在寫入模式下將壓縮器所輸出之所述經壓縮資料儲存於所述記憶體內,且用於在讀取模式下將所述經壓縮資料讀出至所述解壓縮器。
TW97133954A 2007-09-07 2008-09-04 資料壓縮/解壓縮裝置及其方法 TWI393353B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20070091049A KR101454167B1 (ko) 2007-09-07 2007-09-07 데이터 압축 및 복원 장치 및 방법

Publications (2)

Publication Number Publication Date
TW200917671A TW200917671A (en) 2009-04-16
TWI393353B true TWI393353B (zh) 2013-04-11

Family

ID=40040172

Family Applications (1)

Application Number Title Priority Date Filing Date
TW97133954A TWI393353B (zh) 2007-09-07 2008-09-04 資料壓縮/解壓縮裝置及其方法

Country Status (6)

Country Link
US (1) US8004429B2 (zh)
EP (1) EP2034739B1 (zh)
JP (2) JP4814292B2 (zh)
KR (1) KR101454167B1 (zh)
CN (1) CN101383617B (zh)
TW (1) TWI393353B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5661313B2 (ja) * 2010-03-30 2015-01-28 キヤノン株式会社 記憶装置
US8362931B2 (en) * 2010-11-30 2013-01-29 Microsoft Corporation Compression and decompression of mass spectrometry data
WO2013079999A1 (en) * 2011-12-02 2013-06-06 Canon Kabushiki Kaisha Methods and devices for encoding and decoding messages
CN103686864A (zh) * 2012-09-25 2014-03-26 苏州给力网络通讯技术有限公司 移动网络双边优化方法
KR101403356B1 (ko) * 2012-10-22 2014-06-05 (주)티베로 데이터 압축 장치, 데이터 압축 방법 및 그 방법을 위한 컴퓨터 판독 가능한 기록 매체
US9075686B2 (en) 2013-02-25 2015-07-07 GM Global Technology Operations LLC System and method to improve control module reflash time
GB2511493B (en) * 2013-03-01 2017-04-05 Gurulogic Microsystems Oy Entropy modifier and method
CN105743509B (zh) * 2016-01-26 2019-05-24 华为技术有限公司 数据压缩装置及方法
US10268543B2 (en) * 2017-01-27 2019-04-23 Hewlett Packard Enterprise Development Lp Online volume repair
US11245415B2 (en) * 2020-03-13 2022-02-08 The University Of British Columbia University-Industry Liaison Office Dynamic clustering-based data compression
CN115309714B (zh) * 2022-10-11 2022-12-27 江苏泰恩特环境技术有限公司 一种风冷模块机组的恒温控制系统的数据压缩方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040022312A1 (en) * 2002-07-31 2004-02-05 Jones Simon R. Lossless data compression
US20060069857A1 (en) * 2004-09-24 2006-03-30 Nec Laboratories America, Inc. Compression system and method
US20070172139A1 (en) * 2006-01-20 2007-07-26 Rising Hawley K Method and apparatus for image processing with color constancy

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464650A (en) * 1981-08-10 1984-08-07 Sperry Corporation Apparatus and method for compressing data signals and restoring the compressed data signals
US5455943A (en) * 1992-10-08 1995-10-03 Salient Software, Inc. Method and apparatus for finding longest and closest matching string in history buffer prior to current string
US5325091A (en) * 1992-08-13 1994-06-28 Xerox Corporation Text-compression technique using frequency-ordered array of word-number mappers
US5525982A (en) * 1994-04-15 1996-06-11 International Business Machines Corporation Method and means for character string pattern matching for compression and the like using minimal cycles per character
US5731850A (en) * 1995-06-07 1998-03-24 Maturi; Gregory V. Hybrid hierarchial/full-search MPEG encoder motion estimation
JP3305191B2 (ja) * 1996-03-19 2002-07-22 富士通株式会社 文書管理装置及びデータ圧縮方法及びデータ復元方法
US5995080A (en) * 1996-06-21 1999-11-30 Digital Equipment Corporation Method and apparatus for interleaving and de-interleaving YUV pixel data
US6101276A (en) * 1996-06-21 2000-08-08 Compaq Computer Corporation Method and apparatus for performing two pass quality video compression through pipelining and buffer management
JPH10190476A (ja) * 1996-12-27 1998-07-21 Canon Inc データ圧縮方法及びその装置
US6167083A (en) * 1997-04-04 2000-12-26 Avid Technology, Inc. Computer system and process for capture editing and playback of motion video compressed using interframe and intraframe techniques
US6492917B1 (en) * 2001-10-31 2002-12-10 Hughes Electronics Corporation System and method for implementation of the YK lossless data compression algorithm using a modular computational architecture
ES2341240T3 (es) 2002-12-13 2010-06-17 Warner-Lambert Company Llc Ligando alfa-2-delta para tratar los sintomas del tracto urinario inferior.
US20060271761A1 (en) * 2003-04-16 2006-11-30 Riemens Abraham K Data processing apparatus that uses compression or data stored in memory
CN1697327A (zh) * 2004-05-13 2005-11-16 皇家飞利浦电子股份有限公司 一种顺序压缩/解压缩数据的方法及装置
US7792373B2 (en) 2004-09-10 2010-09-07 Pioneer Corporation Image processing apparatus, image processing method, and image processing program
KR100672487B1 (ko) * 2005-02-01 2007-01-24 엘지전자 주식회사 영상 저장용 메모리 관리 방법 및 그를 지원하는 이동통신단말기
KR100647192B1 (ko) * 2005-09-01 2006-11-23 삼성전자주식회사 데이터의 복원 시간을 단축하는 데이터 압축 장치 및 그방법
EP1901292A3 (en) * 2006-09-08 2008-12-03 Samsung Electronics Co, Ltd Fusion memory device and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040022312A1 (en) * 2002-07-31 2004-02-05 Jones Simon R. Lossless data compression
US20060069857A1 (en) * 2004-09-24 2006-03-30 Nec Laboratories America, Inc. Compression system and method
US20070172139A1 (en) * 2006-01-20 2007-07-26 Rising Hawley K Method and apparatus for image processing with color constancy

Also Published As

Publication number Publication date
KR20090025886A (ko) 2009-03-11
JP4999025B2 (ja) 2012-08-15
JP2009065675A (ja) 2009-03-26
US8004429B2 (en) 2011-08-23
KR101454167B1 (ko) 2014-10-27
JP4814292B2 (ja) 2011-11-16
CN101383617B (zh) 2012-06-13
TW200917671A (en) 2009-04-16
EP2034739B1 (en) 2017-01-04
EP2034739A3 (en) 2011-09-07
CN101383617A (zh) 2009-03-11
EP2034739A2 (en) 2009-03-11
JP2011239434A (ja) 2011-11-24
US20090070543A1 (en) 2009-03-12

Similar Documents

Publication Publication Date Title
TWI393353B (zh) 資料壓縮/解壓縮裝置及其方法
EP2034738B1 (en) Data compression apparatus and method
US9853660B1 (en) Techniques for parallel data compression
EP1901292A2 (en) Fusion memory device and method
US8456332B2 (en) Systems and methods for compression of logical data objects for storage
CN107682016B (zh) 一种数据压缩方法、数据解压方法及相关系统
US10193579B2 (en) Storage control device, storage system, and storage control method
US11481114B2 (en) Storage apparatus and control method of storage apparatus
EP3295568B1 (en) Improved compressed caching in a virtual memory system
WO2014030189A1 (ja) 圧縮プログラム、圧縮方法、圧縮装置、伸張プログラム、伸張方法、伸張装置およびデータ転送システム
JP2016052046A (ja) 圧縮装置、伸長装置およびストレージ装置
US8131091B2 (en) Method and apparatus for compressing text and image
JP2016149786A (ja) 圧縮プログラム、圧縮方法、圧縮装置、伸張プログラム、伸張方法、伸張装置およびデータ転送システム
WO2019074744A1 (en) METHOD AND SYSTEM FOR PREDICTING BITS USING A STATISTICAL MODEL
US11967975B1 (en) Method and apparatus for recursive data compression using seed bits
JP2002135128A (ja) データ圧縮方法、データ圧縮・伸長方法、データ圧縮装置及びデータ圧縮・伸長装置
KR20080045842A (ko) 이미지 압축 및 복원을 위한 장치 및 방법
KR20070054055A (ko) 데이터 처리 장치

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees