專利名稱::數(shù)據(jù)壓縮/解壓縮設(shè)備和方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種數(shù)據(jù)壓縮/解壓縮設(shè)備和方法。更具體地講,本發(fā)明涉及一種用于提高存儲(chǔ)壓縮率和訪問速度的設(shè)備和方法。
背景技術(shù):
:通常,配備有存儲(chǔ)裝置的數(shù)字?jǐn)?shù)據(jù)處理系統(tǒng)利用用于有效的存儲(chǔ)器利用的各種存儲(chǔ)器管理技術(shù)來工作。一種方式就是在寫入模式下壓縮數(shù)據(jù),在讀取模式下解壓縮數(shù)據(jù)來使用。在這種情況下,壓縮率的增加提高了存儲(chǔ)器利用,但是降低了壓縮/解壓縮速度,從而導(dǎo)致存儲(chǔ)器訪問時(shí)間的增加。相反,低壓縮率減少了存儲(chǔ)器訪問時(shí)間,但是存儲(chǔ)器利用降低。因此,需要開發(fā)一種能夠?qū)崿F(xiàn)高壓縮率而不影響存儲(chǔ)器訪問速度的數(shù)據(jù)壓縮/解壓縮方法。
發(fā)明內(nèi)容本發(fā)明的一方面在于解決至少上述問題和/或缺點(diǎn),并提供至少下述優(yōu)點(diǎn)。因此,本發(fā)明的一方面在于提供一種數(shù)據(jù)壓縮/解壓縮設(shè)備和方法,該設(shè)備和方法能夠使用后向編碼方案提高壓縮率而不影響存儲(chǔ)器訪問速度。本發(fā)明的另一方面在于提供一種數(shù)據(jù)壓縮/解壓縮設(shè)備和方法,該設(shè)備和方法能夠通過使用用于存儲(chǔ)頻繁使用的數(shù)據(jù)的表來壓縮數(shù)據(jù)從而提高壓縮本發(fā)明的另一方面在于提供一種數(shù)據(jù)壓縮/解壓縮設(shè)備和方法,該設(shè)備和方法能夠通過以宏塊為單位來調(diào)整異常處理塊,從而控制壓縮率和壓縮/解壓縮速度。本發(fā)明的另一方面在于提供一種數(shù)據(jù)壓縮/解壓縮設(shè)備和方法,該設(shè)備和方法能夠通過在前向和后向上對(duì)宏塊的數(shù)據(jù)編碼并搜索具有最低開銷的域塊,從而提高壓縮率而不影響壓縮/解壓縮速度。本發(fā)明的一方面在于提供一種數(shù)據(jù)壓縮設(shè)備和方法,該設(shè)備和方法能夠通過在壓縮處理期間參照用于存儲(chǔ)由塊之間的距離信息和差異信息代表的壓縮數(shù)據(jù)的表(全局表和局部表)來壓縮數(shù)據(jù),并將頻繁出現(xiàn)的差異值設(shè)置為低開銷,從而提高壓縮率。本發(fā)明的另一方面在于提供一種數(shù)據(jù)壓縮/解壓縮設(shè)備和方法,該設(shè)備和方法能夠通過對(duì)具有低壓縮率的宏塊執(zhí)行異常處理,從而控制壓縮率和解壓縮速度。根據(jù)本發(fā)明的一方面,提供了一種數(shù)據(jù)壓縮/解壓縮設(shè)備。該設(shè)備包括壓縮器,通過在搜索范圍中進(jìn)行前向搜索來計(jì)算域塊到范圍塊的開銷,通過后向搜索選擇具有到范圍塊的最低開銷的域塊作為參考域塊,產(chǎn)生參考域塊的距離信息和差異信息,并將距離信息和差異信息編碼為范圍塊的壓縮數(shù)據(jù);解壓縮器,基于距離信息搜索參考域塊,并參照差異信息將壓縮數(shù)據(jù)解碼為范圍塊的原始數(shù)據(jù)。根據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)壓縮/解壓縮方法。該方法包括通過以下操作壓縮數(shù)據(jù)通過在搜索范圍中進(jìn)行前向搜索來計(jì)算域塊到范圍塊的開銷,通過后向搜索選擇具有到范圍塊的最低開銷的域塊作為參考域塊,產(chǎn)生參考域塊的距離信息和差異信息,并將距離信息和差異信息編碼為范圍塊的壓縮數(shù)據(jù);通過基于距離信息搜索參考域塊并參照差異信息將壓縮數(shù)據(jù)解碼為范圍塊的原始數(shù)據(jù)來解壓縮壓縮數(shù)據(jù)。根據(jù)本發(fā)明的另一方面,提供了一種移動(dòng)終端的數(shù)據(jù)處理設(shè)備。該設(shè)備包括存儲(chǔ)器;壓縮器,通過在搜索范圍中進(jìn)行前向搜索來計(jì)算域塊到范圍塊的開銷,通過后向搜索選擇具有到范圍塊的最低開銷的域塊作為參考域塊,產(chǎn)生參考域塊的距離信息和差異信息,并將距離信息和差異信息編碼為范圍塊的壓縮數(shù)據(jù);解壓縮器,基于距離信息搜索參考域塊,并參照差異信息將壓縮數(shù)據(jù)解碼為范圍塊的原始數(shù)據(jù);控制器,在寫入模式下,將壓縮器輸出的壓縮數(shù)據(jù)存儲(chǔ)到存儲(chǔ)器中,在讀取模式下,將壓縮數(shù)據(jù)讀取到解壓縮器。本領(lǐng)域技術(shù)人員從下面結(jié)合附圖公開了本發(fā)明示例性實(shí)施例的詳細(xì)描述,將清楚本發(fā)明的其他方面、優(yōu)點(diǎn)和顯著特點(diǎn)。通過下面結(jié)合附圖所進(jìn)行的描述,本發(fā)明特定示例性實(shí)施例的上述和其它方面、特點(diǎn)和優(yōu)點(diǎn)將會(huì)變得更加清楚,其中圖1是示出根據(jù)本發(fā)明示例性實(shí)施例的數(shù)據(jù)壓縮方法中所使用的范圍塊和域塊的數(shù)據(jù)結(jié)構(gòu)的示圖2是示出根據(jù)本發(fā)明示例性實(shí)施例的壓縮的域塊和范圍塊的數(shù)據(jù)結(jié)構(gòu)的示圖3A是示出根據(jù)本發(fā)明示例性實(shí)施例的數(shù)據(jù)壓縮方法的前向編碼過程的示圖3B是示出根據(jù)本發(fā)明示例性實(shí)施例的數(shù)據(jù)壓縮方法的后向編碼過程的示圖4是示出根據(jù)本發(fā)明示例性實(shí)施例的數(shù)據(jù)壓縮方法中的范圍塊編碼的流程圖5是更詳細(xì)地示出圖4的示例性最優(yōu)化過程的流程圖6是更詳細(xì)地示出圖4的示例性差異編碼表更新過程的流程圖7A是示出根據(jù)本發(fā)明示例性實(shí)施例的全局表的特性的示圖7B是示出根據(jù)示例性實(shí)施例的局部表產(chǎn)生的特性的示圖8是示出根據(jù)本發(fā)明示例性實(shí)施例的壓縮器的構(gòu)造的框圖9是示出圖8的示例性搜索器的操作的示圖IO是示出圖8的編碼器的示例性數(shù)據(jù)壓縮操作的流程圖11是示出根據(jù)本發(fā)明示例性實(shí)施例的編碼器的數(shù)據(jù)壓縮操作的流程圖12是根據(jù)本發(fā)明示例性實(shí)施例的解壓縮器的框圖;圖13是根據(jù)本發(fā)明示例性實(shí)施例的解壓縮器的操作的流程圖;圖14是示出用于對(duì)通過圖11的壓縮過程壓縮的數(shù)據(jù)進(jìn)行解壓縮的解壓縮器的示例性操作的流程終端的配置的框圖。在整個(gè)附圖中,應(yīng)該注意,相同的標(biāo)號(hào)用于表示相同或類似的部件、特征和結(jié)構(gòu)。具體實(shí)施例方式提供下面參照附圖所進(jìn)行的描述以幫助全面理解權(quán)利要求及其等同物所限定的本發(fā)明的示例性實(shí)施例。下面的描述包括各種特定細(xì)節(jié)以幫助理解,但是這些應(yīng)被認(rèn)為僅僅是示例性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)該理解,在不脫離本發(fā)明的范圍和精神的情況下,可以對(duì)這里描述的實(shí)施例進(jìn)行各種改變和修改。此外,為了清楚和簡明,略去了對(duì)公知的功能和結(jié)構(gòu)的描述。在附圖中,為了本發(fā)明的清楚,可能夸大、省略或示意性地描述了特定元件。在下面的描述中,多個(gè)比特的宏塊、多個(gè)比特和短宏塊、距離和差異信息以及表的閾值被提供,以使得能夠清楚和一致地理解詳細(xì)的描述和權(quán)利要求。然而,描述中所使用的數(shù)字僅僅是作為示例,不是為了限制。此外,除在下面的描述中,術(shù)語"宏塊,'表示用于壓縮數(shù)據(jù)單位,術(shù)語"短塊"是構(gòu)成宏塊的數(shù)據(jù)單位。宏塊可以包括至少兩個(gè)短塊。在示例性實(shí)施方式中,短塊為16比特長。在下面的描述中,僅為了描述的方便,假設(shè)宏塊由兩個(gè)短塊組成,應(yīng)該理解宏塊可以由不止兩個(gè)宏塊組成。術(shù)語"范圍塊"是指包括將被壓縮的宏塊的數(shù)據(jù)單位。術(shù)語"域塊,,是指被參考以用于壓縮范圍塊的宏塊。術(shù)語"距離"是指范圍塊和域塊之間的距離。距離信息可以包括范圍塊和域塊之間的距離值和指示該距離值是否被改變的距離標(biāo)志??梢詫?duì)每個(gè)宏塊設(shè)置距離標(biāo)志,距離標(biāo)志指示范圍塊的結(jié)構(gòu)。術(shù)語"差異"是指范圍塊和域塊之間的差異。差異信息可包括范圍塊和域塊之間的差異值以及指示該差異值是否存在的差異標(biāo)志??梢酝ㄟ^對(duì)范圍塊和域塊執(zhí)行異或(XOR)搡作來獲得所述差異。術(shù)語"開銷"用于通過計(jì)算所述差異值來確定將被存儲(chǔ)在存儲(chǔ)器內(nèi)作為壓縮數(shù)據(jù)的數(shù)據(jù)的長度(比特?cái)?shù))。術(shù)語"異常處理"是指當(dāng)壓縮率不夠高時(shí)原始數(shù)據(jù)的使用。術(shù)語"全局表(globaltable)"是指使用所述差異值作為索引的固定入口表。術(shù)語"局部表(localtable)"是指使用在壓縮處理期間頻繁出現(xiàn)的宏塊作為索引的浮動(dòng)入口表。術(shù)語"搜索范圍"是指用于在范圍塊的位置處搜索域塊的范圍。術(shù)語"前向編碼"是指用于在搜索范圍中對(duì)域塊進(jìn)行編碼的編碼方案,該方案用最低的開銷對(duì)由當(dāng)前正被編碼的宏塊組成的范圍塊進(jìn)行編碼。術(shù)語"后向編碼"是指用于通過重構(gòu)包括當(dāng)前正被編碼的宏塊的先前被編碼的范圍塊來減少開銷的編碼方案。在前向編碼中,壓縮器對(duì)主要包括順序選擇的宏塊的范圍塊進(jìn)行編碼。后向編碼通過重構(gòu)包括當(dāng)前正被編碼的宏塊的先前被編碼的范圍塊,增加了壓縮率。術(shù)語"數(shù)據(jù)"包括程序數(shù)據(jù)、用戶數(shù)據(jù)等。在下面對(duì)示例性實(shí)施例的描述中,壓縮器在壓縮數(shù)據(jù)時(shí)確定范圍塊的長度,搜索與范圍塊具有相同或類似的數(shù)據(jù)的域塊,并利用范圍塊和搜索的域塊之間的距離和差異來壓縮數(shù)據(jù)。在示例性實(shí)施中,數(shù)據(jù)是包括固件和軟件的程序代碼數(shù)據(jù)的二進(jìn)制數(shù)據(jù)。在存儲(chǔ)器存儲(chǔ)和檢索系統(tǒng)中,通常優(yōu)選的是,壓縮器和解壓縮器具有高壓縮率和高解壓縮速度。然而,隨著壓縮率的增加,壓縮器的壓縮/解壓縮速度可能降低。本發(fā)明示例性實(shí)施例通過在搜索范圍中搜索域塊時(shí)使用下面的方法來提高壓縮率和解壓縮速度兩者。第一,壓縮器在比較范圍塊和搜索范圍中的域塊時(shí)參照在前向和后向的先前宏塊編碼期間構(gòu)建的參考列表來執(zhí)行編碼,并在搜索范圍中選擇與范圍塊具有最小差異值的域塊。第二,壓縮器使用范圍塊和所選擇的域塊之間的距離和差異信息對(duì)范圍塊的數(shù)據(jù)執(zhí)行壓縮。在本發(fā)明示例性實(shí)施例中,第一種數(shù)據(jù)壓縮方法包括使用兩個(gè)塊之間的差異值來壓縮數(shù)據(jù),第二種數(shù)據(jù)壓縮方法包括使用根據(jù)實(shí)驗(yàn)測(cè)量的并被注冊(cè)到表的兩個(gè)塊之間頻繁出現(xiàn)的差異值來壓縮數(shù)據(jù),第三種數(shù)據(jù)壓縮方法包括在使用注冊(cè)到固定表的頻繁出現(xiàn)的值壓縮數(shù)據(jù)的同時(shí)使用注冊(cè)在浮動(dòng)表中的差異值來壓縮數(shù)據(jù)。在第一種方法中使用的差異值可以是范圍塊和具有最小差異值的域塊的異或操作值。在第二種方法中使用的表是可用作第三種方法的全局表的固定使用表的壓縮方法在壓縮處理期間測(cè)量在范圍塊和域塊之間頻繁出現(xiàn)的差異值,并根據(jù)測(cè)量的差異值創(chuàng)建開銷。所述差異值被用作索引,并且該值被存儲(chǔ)以用于在相應(yīng)的索引位置根據(jù)開銷對(duì)差異值進(jìn)行編碼。通過將最頻繁出現(xiàn)的差異值映射到最低開銷,可以提高數(shù)據(jù)壓縮率。為了進(jìn)一步提高壓縮率,可以使用反映總體頻率的全局表和反映局部頻率的局部表。全局表是在壓縮處理期間可以駐留在壓縮器中或者可以存儲(chǔ)在存儲(chǔ)器的特定區(qū)域的固定表。局部表是用在特定區(qū)域頻繁出現(xiàn)的但是沒有在全局表中列出的范圍塊和域塊之間的差異值和開銷產(chǎn)生的浮動(dòng)表。全局表可以存儲(chǔ)在存儲(chǔ)器中。全局表是在開始?jí)嚎s處理之前創(chuàng)建的固定表,并且能夠被全局地應(yīng)用于在寫入模式下存儲(chǔ)的所有數(shù)據(jù)。局部表是能夠壓縮特定局部區(qū)域的數(shù)據(jù)時(shí)使用的浮動(dòng)第三,壓縮器以宏塊為單位執(zhí)行數(shù)據(jù)壓縮。當(dāng)不存在與范圍塊相同或類似的域塊時(shí),壓縮器對(duì)范圍塊的數(shù)據(jù)執(zhí)行異常處理而不是數(shù)據(jù)壓縮。即,當(dāng)在搜索范圍中范圍塊沒有與其相同或類似的域塊時(shí)(例如,多個(gè)短塊中的至少一個(gè)與范圍塊不相同),該范圍塊的容許的壓縮率不被期望。在這種情況下,壓縮器對(duì)范圍塊執(zhí)行異常處理,以按照未壓縮形式存儲(chǔ)范圍塊的數(shù)據(jù)。使用異常處理塊,可以提高壓縮率和解壓縮速度。可以用上述數(shù)據(jù)壓縮模型(即,使用兩個(gè)塊之間的差異值的數(shù)據(jù)壓縮模型、僅使用全局表的數(shù)據(jù)壓縮模型以及使用全局表和局部表的數(shù)據(jù)壓縮模型)中的至少一個(gè)來實(shí)現(xiàn)根據(jù)本發(fā)明示例性實(shí)施例的數(shù)據(jù)壓縮方法。此外,數(shù)據(jù)壓縮方法可使用異常處理函數(shù)。在下面的示例性實(shí)施例中,假設(shè)用全局表和局部表以及異常處理函數(shù)來實(shí)現(xiàn)數(shù)據(jù)壓縮方法。該示例性實(shí)施例的數(shù)據(jù)壓縮方法通過在前向和后向?qū)陦K的數(shù)據(jù)進(jìn)行編碼并搜索具有最低開銷的域塊,可以提高壓縮率而不影響高表(全局表和局部表)內(nèi),從而在壓縮處理期間頻1^出現(xiàn)的差異值被分配最低的開銷,從而導(dǎo)致數(shù)據(jù)壓縮率提高。此外,該示例性實(shí)施例的數(shù)據(jù)壓縮方法對(duì)壓縮率被評(píng)價(jià)為低的宏塊執(zhí)行異常處理,以調(diào)節(jié)壓縮率和解壓縮速度。圖1是示出根據(jù)本發(fā)明示例性實(shí)施例的數(shù)據(jù)壓縮方法中所使用的范圍塊和域塊的數(shù)據(jù)結(jié)構(gòu)的示圖。參照?qǐng)D1,壓縮器首先計(jì)算將被壓縮的范圍塊R和域塊D之間的距離,通過將它們的數(shù)據(jù)進(jìn)行相互比較來計(jì)算范圍塊R和域塊D之間的差異(即,確定異或操作值),并使用計(jì)算的距離和差異值來產(chǎn)生范圍塊的壓縮數(shù)據(jù)。范圍塊可以包括不止一個(gè)宏塊,域塊的大小可以與范圍塊的大小相同。此外,宏塊可以被劃分為多個(gè)短塊。在下面的描述中,為了方便,假設(shè)如圖1所示的宏塊包括兩個(gè)短塊,每個(gè)短塊為16比特(2字節(jié))。構(gòu)成范圍塊的域塊可以包括大小相同且位于范圍塊之前的預(yù)設(shè)范圍(即,搜索范圍)內(nèi)的宏塊。范圍塊不能重疊,并且以整數(shù)為單位排列。域塊可以重疊,并且以短塊為單位(8比特短塊以字節(jié)為單位,16比特短塊以2字節(jié)為單位)排列。例如,當(dāng)將被壓縮數(shù)據(jù)包括對(duì)應(yīng)于10個(gè)短塊(SB0至SB9)的5個(gè)宏塊(MB0至MB4)時(shí),按照順序的短塊對(duì)SB0-SB1、SB2-SB3、SB4-SB5.....SB8-SB9的順序指定范圍塊。在用短塊對(duì)SB8-SB9代表范圍塊的情況下,域塊對(duì)應(yīng)于短塊對(duì)SB6-SB7、SB5-SB6、SB4-SB5.....SB1-SB2以及SB0-SB1。用與域塊的距離信息和差異信息來代表范圍塊的壓縮。此時(shí),選擇具有代表最低開銷的距離信息和差異信息的域塊。術(shù)語"距離"是指范圍塊和所選擇的域塊之間的距離。由于距離用于壓縮范圍塊的數(shù)據(jù),所以距離影響壓縮率。因此,優(yōu)選地,距離在大小方面受限制,距離的值確定搜索范圍。隨著范圍塊的長度的增加,用于代表距離的比特?cái)?shù)減少,而用于代表距離值的比特?cái)?shù)增加。為此,范圍塊的長度影響壓縮率。因此,為了有效地壓縮數(shù)據(jù),需要合適地設(shè)置搜索范圍和范圍塊的長度。在該示例性實(shí)施例中,在壓縮范圍塊時(shí)4吏用前向和后向編碼方法快速地搜索接近最優(yōu)解決方案的域塊。壓縮宏塊所需的開銷被設(shè)置為最小的一個(gè)并被更新,從而包括后向宏塊的先前壓縮的宏塊的開銷具有最小值。即,該示例性實(shí)施例的數(shù)據(jù)壓縮方法通過在搜索范圍中在前向上搜索宏塊來壓縮數(shù)據(jù),從而開銷變得較低,然后確定已經(jīng)在后向上被壓縮的宏塊的開銷以調(diào)節(jié)域塊的長度和到域塊的距離。圖2是示出根據(jù)本發(fā)明示例性實(shí)施例的壓縮的域塊和范圍塊的數(shù)據(jù)結(jié)構(gòu)的示圖。在該示例性實(shí)施例中,找到大小為k的范圍塊,從而與已經(jīng)被壓縮的宏塊和當(dāng)前正在被壓縮的宏塊的距離開銷以及差異開銷被最優(yōu)化。在傳統(tǒng)壓縮方法中,與參考?jí)K不同的宏塊不屬于同一范圍塊。而在該示例性實(shí)施例中,即使宏塊與域塊不相同,該宏塊也可以是范圍塊的一部分。在圖2所示的示例性實(shí)施方式中,通過將范圍塊劃分為3部分來獲得開銷(cost)T=cost(A,A)+cost(X,Y)+cost(B,B)。然而,在該示例性實(shí)施例中,多個(gè)范圍塊被處理為單個(gè)數(shù)據(jù)單位,從而獲得開銷U=cost(AXB,AYB)。在這種情況下,開銷T具有至少兩個(gè)距離值,而開銷U只有一個(gè)距離值。因此,即使X與Y不同,通過對(duì)X和Y之間的距離值進(jìn)行編碼所獲得的開銷(X,Y)相對(duì)較低,從而導(dǎo)致U〉T。如圖2所示,與參考?jí)KY不同的宏塊X可以是范圍塊的一部分。圖3A和圖3B是示出根據(jù)本發(fā)明示例性實(shí)施例的在搜索范圍中選擇對(duì)范圍塊而言的最優(yōu)域塊的方法的示圖。為了選擇最優(yōu)域塊,在前向和后向上對(duì)搜索范圍中的域塊編碼。如果配置了范圍塊,則壓縮器在前向和后向上對(duì)搜索范圍中存在的域塊執(zhí)行編碼,并選擇具有最低開銷的域塊。接下來,壓縮器產(chǎn)生所選擇的域塊和范圍塊之間的距離和開銷作為壓縮數(shù)據(jù)。圖3A是示出根據(jù)本發(fā)明示例性實(shí)施例的數(shù)據(jù)壓縮方法的前向編碼過程的示圖,圖3B是示出根據(jù)本發(fā)明示例性實(shí)施例的數(shù)據(jù)壓縮方法的后向編碼過程的示圖。在圖3A和圖3B中,假設(shè)范圍塊為B,C[26,27](第26和第27短塊),搜索范圍為[10,11,12,…,25](從第10短塊到第25短塊)。參照?qǐng)D3A和圖3B,通過以短塊為單位將在搜索范圍中順序選擇的域塊與范圍塊B,C[26,27]進(jìn)行比較來執(zhí)行對(duì)范圍塊B,C[26,27]的前向編碼。在執(zhí)行前向編碼時(shí),壓縮器計(jì)算在范圍塊之前排列的搜索范圍中的域塊與范圍塊之間的距離和差異。接下來,壓縮器在執(zhí)行后向編碼的同時(shí)分析所述距離和差異值,并選擇與范圍塊具有最近距離和最小差異的域塊。在圖3A和圖3B中,壓縮器通過前向編碼和后向編碼選擇在距離上與范圍塊B,C[26,27]最接近并且與范圍塊B,C[26,27]的差異最小的域塊B,C[20,21]。盡管域塊B,C[14,15]在差異方面與域塊B,C[20,21]具有相同的開銷,但是域塊B,C[14,15]的距離開銷大于域塊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(xiàn)[16,17],選擇到范圍塊B,C[26,27]的距離值為6且差異值為0的域塊B,C[20,21]。在后向編碼期間,根據(jù)宏塊組來執(zhí)行搜索。例如,對(duì)范圍塊B,C[26,27]進(jìn)行的后向編碼可以對(duì)具有單個(gè)距離值的范圍塊對(duì)A,B,E,F,B,C[22:27]-域塊A,B,D,F,B,C[10:15]進(jìn)行。由于與對(duì)域塊B,C[20:21]-范圍塊B,C[26,27]、域塊E,F(xiàn)[16:17]-范圍塊E,F(xiàn)[24:25]和域塊A,B[18:19]-范圍塊[22:23]編碼的距離值的開銷相比,這種組編碼具有較低的開銷,所以先前編碼結(jié)果被重構(gòu)以提高壓縮率。這里,盡管由于不同的數(shù)據(jù)(F[25]、E[24]和D[12])導(dǎo)致單個(gè)基于距離的編碼的差異開銷比三個(gè)基于距離的編碼的差異開銷大,但是由于使用減少了2的距離值,所以總開銷減少。在這種情況下,壓縮器比較范圍塊A,B,E,F,B,C[22:27]和域塊A,B,D,F,B,C[10:15],并用距離值為12以及差異值為0、DFXOREF和0來對(duì)范圍塊編碼。圖4是示出根據(jù)本發(fā)明示例性實(shí)施例的數(shù)據(jù)壓縮方法的范圍塊編碼的流程圖。如將要更詳細(xì)地解釋的,壓縮器首先計(jì)算在后向上在范圍塊R的參考?jí)K位置處使后向開銷節(jié)約最大化的長度,并且如果節(jié)約大于最大節(jié)約,則更新最優(yōu)長度和關(guān)于參考?jí)K的信息。這里,節(jié)約是指范圍塊在長度上的開銷節(jié)約之和。接下來,壓縮器將塊的編碼更新為最優(yōu)參考?jí)K和最優(yōu)長度。接下來,壓縮器根據(jù)預(yù)設(shè)范圍創(chuàng)建用于最優(yōu)化距離編碼的局部表,局部表參照全局表被壓縮然后一皮存4諸。參照?qǐng)D4,在步驟Slll,壓縮器計(jì)算使到預(yù)設(shè)范圍塊的參考?jí)K位置的后向開銷節(jié)約最大化的長度。圖5是更詳細(xì)地示出圖4的步驟S111的示例性最優(yōu)化過程的流程圖。參照?qǐng)D5,在步驟S151,壓縮器計(jì)算到范圍中的各個(gè)范圍塊的節(jié)約值,即,開銷之和(節(jié)約=舊開銷-新開銷)。在獲得節(jié)約值之后,在步驟S153,壓縮器確定節(jié)約值是否大于最大節(jié)約值。如果節(jié)約值不大于最大節(jié)約值,則壓縮器執(zhí)行步驟S157,同時(shí)保持先前值。否則,如果節(jié)約值大于最大節(jié)約值,則壓縮器用在步驟S155計(jì)算的節(jié)約值更新最大節(jié)約值。此時(shí),壓縮器還將最優(yōu)長度更新為在步驟S151設(shè)置的長度,并將參考?jí)K更新為在步驟S151設(shè)置的參考?jí)K。接下來,在步驟S157,壓縮器確定該長度是否大于最大長度。如果該長度不大于最大長度,則壓縮器將該長度增加1,并重復(fù)步驟S151。否則,如果該長度大于最大長度,則壓縮器在步驟S161將范圍塊的位置加到哈希表。返回圖4,在獲得最優(yōu)長度之后,壓縮器在步驟S113確定節(jié)約值是否大于最大節(jié)約值。如果節(jié)約值不大于計(jì)算的節(jié)約值,則壓縮器保持預(yù)設(shè)的值。否則,如果節(jié)約值大于最大節(jié)約值,則壓縮器在步驟S115將最大節(jié)約值更新為計(jì)算的節(jié)約值。此時(shí),壓縮器還更新最優(yōu)長度并改變最優(yōu)參考?jí)K。接下來,壓縮器在步驟S117確定參考列表中是否存在參考?jí)K。如果參考列表中存在參考?jí)K,則壓縮器在步驟S119讀取參考列表中的數(shù)據(jù),然后返回步驟Slll。否則,如果參考列表中不存在參考?jí)K,則壓縮器在步驟S121將先前范圍塊的編碼更新為最優(yōu)參考?jí)K和最優(yōu)長度。為了以后對(duì)范圍塊的快速搜索,參考列表以短塊(16比特)為單位被注冊(cè)到隊(duì)列中。對(duì)于宏塊的搜索目標(biāo)是兩個(gè)短塊中的至少一個(gè)相同的位置。接下來,在步驟S123,壓縮器更新差異編碼表。圖6是更詳細(xì)地示出圖4的步驟S123的示例性差異編碼表更新過程的流程圖。參照?qǐng)D6,壓縮器在步驟S181對(duì)特定范圍塊R編碼,隨后在步驟S183將范圍塊R已經(jīng)被處理的次數(shù)增加1(N=N+1)。N的初值為O。接下來,壓縮器在步驟S184確定N是否小于閾值T。如果N小于T,則壓縮器重復(fù)步驟S181。否則,如果N不小于T,則壓縮器在步驟S185根據(jù)局部頻率和開銷節(jié)約值構(gòu)建局部表。接下來,壓縮器在步驟S187參照全局表壓縮局部表,并在步驟S189確定更新開銷是否小于開銷節(jié)約值。如果更新開銷小于開銷節(jié)約值,則壓縮器在步驟S191更新局部表的編碼表。如上創(chuàng)建的局部表連同全局表用于壓縮范圍塊的數(shù)據(jù)。圖7A是示出根據(jù)本發(fā)明示例性實(shí)施例的全局表的特性的示圖,圖7B是示出根據(jù)示例性實(shí)施例的局部表產(chǎn)生的特性的示圖。參照?qǐng)D7A,全局表413包括預(yù)先定義的統(tǒng)計(jì)值417。即,全局表413存儲(chǔ)在數(shù)據(jù)壓縮處理期間頻繁出現(xiàn)的值。全局表不被更新(415),并且在數(shù)據(jù)壓縮處理中只能被讀取。全局表413是具有固定大小的固定表。在該示例性實(shí)施例中,假設(shè)全局表413的索引具有小于8比特的值。全局表的索引可以從0至255中選擇。索引指示的數(shù)據(jù)411可以是范圍塊和域塊的XOR操作值(x值=[統(tǒng)計(jì)值A(chǔ)]XOR[統(tǒng)計(jì)值B])。因此,當(dāng)4吏用如圖7A所示的全局表時(shí),壓縮器將索引0、1、2、3...255分配給兩個(gè)宏塊之間頻繁出現(xiàn)的差異值以提高壓縮效率。參照?qǐng)D7B,在壓縮數(shù)據(jù)的同時(shí)創(chuàng)建局部表453。在該示例性實(shí)施例中,當(dāng)某個(gè)值出現(xiàn)3次以上而且該值沒有被注冊(cè)到全局表時(shí),則該值被注冊(cè)到局部表453(457)。局部表453可以由壓縮器的搜索器創(chuàng)建。局部表453可以被更新,并允許在壓縮數(shù)據(jù)的同時(shí)讀取和寫入數(shù)據(jù)(455)。局部表453允許浮動(dòng)入口,并被配置為在大小方面大于全局表。在該示例性實(shí)施例中,假設(shè)局部表的大小是8比特[256,...,511]。在這種情況下,局部表的索引在256至511的范圍中被選擇,該索引所代表的數(shù)據(jù)451可以是范圍塊和域塊的XOR橾作值(y結(jié)果=[動(dòng)態(tài)值A(chǔ)]XOR[動(dòng)態(tài)值B])。即,在壓縮器壓縮數(shù)據(jù)的同時(shí)創(chuàng)建如圖7B所示的局部表453,索引按照256、257...、511的順序被分配給差異值?,F(xiàn)在,按照壓縮結(jié)構(gòu)、后向開銷節(jié)約、差異編碼、距離編碼和解碼速度控制的順序來描述壓縮器的特性。關(guān)于壓縮結(jié)構(gòu),每個(gè)宏塊由兩個(gè)短塊組成,每個(gè)短塊長16比特。屬于范圍塊的域塊可以是搜索范圍中在范圍塊之前存在的塊。范圍塊相互不重疊,并且以整數(shù)為單位排列。域塊可以相互重疊,并且以字節(jié)為單位對(duì)齊。由與域塊的距離和差異來代表范圍塊的壓縮。關(guān)于后向開銷節(jié)約,宏塊的參考列表由至少一個(gè)短塊與宏塊的短塊相同的位置組成,并且在在前的宏塊被壓縮的同時(shí)被存儲(chǔ)在哈希表中。在距離值相同的情況下,獲得長度k以最大化當(dāng)前開銷。這里,術(shù)語節(jié)約是指在k個(gè)范圍塊處的開銷節(jié)約之和。之后,范圍塊的壓縮被更新為最優(yōu)參考和最優(yōu)長度。即,壓縮器通過圖4的步驟S111至S121執(zhí)行最優(yōu)化處理。更詳細(xì)地講,壓縮器計(jì)算在長度上對(duì)范圍塊的節(jié)約之和(節(jié)約=舊開銷-新開銷)。接下來,壓縮器確定當(dāng)前節(jié)約值是否大于最大節(jié)約值(節(jié)約〉最大節(jié)約),如果當(dāng)前節(jié)約值大于最大節(jié)約值,則將最大節(jié)約值更新為當(dāng)前節(jié)約值。此時(shí),如果長度小于最大長度,則壓縮器將長度增加1,并重復(fù)上述步驟。否則,如果長度等于最大長度,則壓縮器將范圍塊的位置加到哈希表(hash—table,(R》。關(guān)于差異編碼,以短塊為單位通過XOR操作獲得的值被編碼??梢愿鶕?jù)所需的解壓縮速度來選擇編碼方法。全局表是對(duì)壓縮全局頻率有效的熵編碼表。局部表在參照全局表被壓縮之后被存儲(chǔ)??紤]表壓縮率和差異編碼開銷確定局部表的表入口的更新。關(guān)于距離編碼,可以考慮解壓縮速度和壓縮率來選擇兩種距離編碼方法之一。一種距離編碼方法在當(dāng)前范圍塊的距離與先前范圍塊的距離相同時(shí)用1比特來表達(dá)當(dāng)前范圍塊與先前范圍塊的相同,在當(dāng)前塊的距離不同于先前范圍塊的距離而且小于256時(shí)用10比特來表達(dá)當(dāng)前范圍塊與先前范圍塊的差異,在其它情況下用18比特來表達(dá)。另一種距離編碼方法在每種情況下都用16比特表達(dá)距離,并壓縮距離序列以單獨(dú)存儲(chǔ)。在該示例性實(shí)施例中,使用第一種距離編碼方法。關(guān)于解碼速度控制,大宏塊(LMB)由m個(gè)宏塊組成。如果LMB的壓縮開銷大于閾值t,則LMB不經(jīng)壓縮而被存儲(chǔ)。LMB被稱為異常處理塊。由于異常處理塊的解壓縮處理非常簡單,所以提高了壓縮速度。通過調(diào)節(jié)閾值t,可以控制解壓縮速度。根據(jù)本發(fā)明的該示例性實(shí)施例的數(shù)據(jù)壓縮器的特性如下。當(dāng)壓縮宏塊時(shí),壓縮器控制劃分范圍塊的數(shù)量,以提高宏塊的壓縮率。此外,壓縮器找到先前壓縮的開銷節(jié)約被最大化的位置而不是直接最d、化開銷,以減少壓縮時(shí)間。這是因?yàn)?,開銷的直接最小化改變了范圍塊的長度,從而增加了時(shí)間復(fù)雜性。此外,宏塊由多個(gè)短塊(在該示例性實(shí)施例中,兩個(gè)短塊)組成,壓縮器在壓縮處理期間對(duì)范圍塊的至少一個(gè)短塊相同的位置執(zhí)行哈希轉(zhuǎn)換(hashing),以確保范圍塊的連續(xù)性,同時(shí)提高壓縮速度。最終,壓縮器按照壓縮格式存儲(chǔ)全局表和局部表,并使用所述表來壓縮宏塊的數(shù)據(jù)。下面描述具有以上特性的壓縮器的結(jié)構(gòu)和操作。圖8是示出根據(jù)本發(fā)明示例性實(shí)施例的壓縮器的構(gòu)造的框圖。參照?qǐng)D8,壓縮器包括加載器210、搜索器220、編碼器240和異常處理器250。加載器210首先將輸入的原始二進(jìn)制數(shù)據(jù)加載到壓縮器。這里,加載器210以適合編碼器240的數(shù)據(jù)大小的編碼幀、為單位加載lt據(jù)。術(shù)語"編碼幀"表示將被編碼器240壓縮的數(shù)據(jù)單位的大小(或者搜索器確定的搜索范圍的大小)??梢栽O(shè)置緩沖器以緩沖加載器210加載的編碼幀的數(shù)據(jù)。搜索器220基于加載的編碼幀的數(shù)據(jù)來確定搜索范圍,檢查范圍塊,產(chǎn)生范圍塊與位于搜索范圍的范圍中的域塊之間的差異值,根據(jù)所述差異值計(jì)算開銷,并確定到具有最低開銷的域塊的距離信息和開銷值。此時(shí),搜索器220通過前向編碼來確定具有宏塊的大小的范圍塊與位于搜索范圍中的域塊之間的開銷,并通過后向編碼來確定包括先前編碼的范圍塊和宏塊的使開銷最優(yōu)化的范圍塊的長度和距離。在計(jì)算了范圍塊和域塊之間的差異之后,如果范圍塊和域塊彼此相同,則搜索器220創(chuàng)建指示范圍塊和域塊彼此相同的距離信息以及到域塊的距離信息,否則,搜索器220創(chuàng)建指示范圍塊和域塊之間的差異的距離信息以及到域塊的距離信息。差異信息可包括指示兩個(gè)塊相同或差異的差異標(biāo)志和兩個(gè)塊之間的距離值。差異值可以直接使用(例如,XOR操作值),或者可以用從差異值獲得的開銷值或修改的開銷值代替所述差異值。在該示例性實(shí)施例中,通過使用比較結(jié)果值計(jì)算開銷并將該開銷轉(zhuǎn)換為表的索引來獲得差異值。在這種情況下,搜索器220可以設(shè)置有開銷表。開銷表用于存儲(chǔ)對(duì)應(yīng)于計(jì)算的開銷的索引。所述表可以是全局表或局部表。差異值與相應(yīng)的索引一起被存儲(chǔ)在表中。搜索器220通過在搜索范圍中執(zhí)行前向編碼的同時(shí)比較范圍塊和所選擇的域塊來產(chǎn)生差異值,并計(jì)算與開銷表中的差異值相應(yīng)的開銷。搜索器220比較當(dāng)前產(chǎn)生的開銷和參考開銷,從而在當(dāng)前計(jì)算的開銷小于參考開銷時(shí)更新參考開銷,否則保持參考開銷。通過重復(fù)上述處理,搜索器220搜索最低開銷,并從開銷表中選擇對(duì)應(yīng)于最低開銷的索引。接下來,搜索器220將對(duì)應(yīng)于選擇的開銷的索引和域塊的距離信息傳送給編碼器240,并重復(fù)上述處理以選擇下一范圍塊。編碼器240可以設(shè)置有全局表和/或局部表。此外,全局表和局部表可以在緩沖器中被緩沖。全局表是參照?qǐng)D7A描述的固定表,并且用實(shí)驗(yàn)測(cè)量的統(tǒng)計(jì)值來構(gòu)建。局部表是參照?qǐng)D7B描述的可變表,并且與當(dāng)前正被壓縮數(shù)據(jù)相關(guān)聯(lián)地被構(gòu)建。全局表和局部表具有對(duì)應(yīng)于開銷的索引,并與索引相關(guān)聯(lián)地存儲(chǔ)范圍塊和域塊之間的差異值。在下面的描述中,假設(shè)使用全局表和局部表兩者。然而,可以僅使用全局表和局部表之一來進(jìn)行數(shù)據(jù)壓縮。編碼器240處理表中鏈接到開銷值的索引作為范圍塊的編碼數(shù)據(jù)。這里,可以通過搜索器220來計(jì)算開銷。搜索器220可以基于范圍塊和域塊之間的差異信息來計(jì)算開銷,并使用該開銷來訪問開銷表中的表索引。所述索引可以是全局表和/或局部表。搜索器220將包括索引的差異信息以及范圍塊和域塊之間的距離信息(距離標(biāo)志和距離值)傳送給編碼器240。編碼器240將距離信息和差異信息編碼為壓縮數(shù)據(jù)。下面更詳細(xì)地描述搜索器220和編碼器240的操作。搜索器220分析范圍塊和域塊之間的差異,并根據(jù)距離計(jì)算開銷。如果范圍塊與域塊之間的差異值為0,即,兩個(gè)塊彼此相同,則開銷值變?yōu)?(或者非常小的開銷值)。如果域塊的短塊中的至少一個(gè)與范圍塊的短塊相同,則相同短塊的開銷變?yōu)?,不同短塊的開銷根據(jù)兩個(gè)塊的差異值來計(jì)算。按照這種方式,在將范圍塊的短塊的數(shù)據(jù)與位于搜索范圍中的域塊的短塊的數(shù)據(jù)進(jìn)行比較的同時(shí),搜索器220選擇由具有最低開銷的短塊組成的域塊。此時(shí),搜索器220在搜索范圍中前向搜索域塊的同時(shí)計(jì)算開銷,在后向上搜索當(dāng)前計(jì)算的開銷的同時(shí)比較當(dāng)前開銷和最小參考開銷,并且如果當(dāng)前搜索的開銷小于最低參考開銷,則將距離信息和開銷更新為當(dāng)前域塊。當(dāng)域塊搜索終止時(shí),搜索器220存儲(chǔ)在范圍塊和域塊之間具有最低開銷的域塊的距離信息和開銷值。接下來,搜索器220在開銷表中搜索對(duì)應(yīng)于開銷的索引,并將包括索引的差異信息和距離信息傳送給編碼器240。此時(shí),差異信息可以包括差異標(biāo)志和表索引。在范圍塊和域塊彼此相同的情況下,不包括表索引。在該示例性實(shí)施例中,在產(chǎn)生差異信息時(shí),如果范圍塊和域塊彼此相同,則搜索器220將差異標(biāo)志復(fù)位為0,并產(chǎn)生僅具有差異標(biāo)志的差異信息。另一方面,如果范圍塊和域塊彼此不同,則搜索器220將差異標(biāo)志設(shè)置為1,并產(chǎn)生包括根據(jù)對(duì)應(yīng)于差異值的開銷而選擇的表索引信息的差異信息。編碼器240分析差異信息中所包含的差異標(biāo)志,以確定兩個(gè)塊的數(shù)據(jù)是否相同。如果確定兩個(gè)塊的數(shù)據(jù)彼此相同,則編碼器240將距離信息和差異標(biāo)志編碼為范圍塊的壓縮數(shù)據(jù)。這里,差異信息可包括表索引。在包括表索引的情況下,編碼器240確定表索引所指示的表(全局表和/或局部表)中兩個(gè)塊之間的差異值,如果該差異值為正常差異值(即,與搜索器220搜索到的差異值相同),則編碼器240將距離信息和差異信息編碼為范圍塊的壓縮數(shù)據(jù)。壓縮器包括異常處理器250。在該示例性實(shí)施例中,異常塊是由于范圍塊和域塊之間的差異大于閾值所以不期望被有效壓縮的塊。例如,在范圍塊和域塊以如圖1所示包括兩個(gè)短塊的宏塊為單位構(gòu)成的情況下,搜索器220確定將被壓縮的范圍塊,并選擇通過前向編碼和后向編碼在搜索范圍中獲得的與范圍塊的差異(即,開銷)最低的域塊。然而,如果范圍塊的短塊的數(shù)據(jù)與所選擇的域塊的短塊的數(shù)據(jù)彼此不同(即,范圍塊的短塊與域塊的短塊完全彼此不同),則壓縮率顯著降低。在這種情況下,壓縮器存儲(chǔ)不經(jīng)壓縮(不經(jīng)編碼)的范圍塊的數(shù)據(jù),并產(chǎn)生指示異常塊的標(biāo)志。當(dāng)解壓縮按照壓縮格式存儲(chǔ)的數(shù)據(jù)時(shí),異常塊的數(shù)據(jù)不經(jīng)解壓縮處理被恢復(fù),從而導(dǎo)致解碼速度提高。在另一示例性實(shí)施例中,編碼器240設(shè)置有全局表和局部表,并使用2比特的差異標(biāo)志用于指示異常標(biāo)志。在這種情況下,可以如表1所示定義差異標(biāo)志的值。1<table>tableseeoriginaldocumentpage18</column></row><table>范圍塊的數(shù)據(jù)和域塊的數(shù)據(jù)彼此不同,索引不屬于全局表和局部表中的任何一個(gè)(即,異常塊的數(shù)據(jù))搜索器220在搜索范圍中在前向和后向上搜索域塊,以選擇與范圍塊的開銷最低的域塊。如果所選擇的域塊的數(shù)據(jù)與范圍塊的數(shù)據(jù)相同,則搜索器220產(chǎn)生到選擇的域塊的距離信息和指示兩個(gè)塊彼此相同的差異標(biāo)志(差異標(biāo)志=00),并將該距離信息和差異標(biāo)志發(fā)送給編碼器240。如果所選擇的域塊的數(shù)據(jù)不同于范圍塊的數(shù)據(jù)而且從兩個(gè)塊之間的差異值獲得的開銷存在于全局表中,則搜索器220產(chǎn)生到選擇的域塊的距離信息和包括指示開銷存在于全局表中的差異標(biāo)志(差異標(biāo)志=01)和全局表索引的差異信息,并將該距離信息和差異信息發(fā)送給編碼器240。如果所選擇的域塊的數(shù)據(jù)不同于范圍塊的數(shù)據(jù)而且從兩個(gè)塊之間的差異值獲得的開銷存在于局部表中,則搜索器220產(chǎn)生到所選擇的域塊的距離信息以及包括指示開銷存在于局部表中的差異標(biāo)志(差異標(biāo)志=10)和局部表索引的差異信息,并將該距離信息和差異信息發(fā)送給編碼器240。如果所選擇的域塊的數(shù)據(jù)不同于范圍塊的數(shù)據(jù)而且從將差異標(biāo)志設(shè)置為異常標(biāo)志,并將異常標(biāo)志發(fā)送給編碼器240。編碼器240分析差異標(biāo)志,并根據(jù)差異標(biāo)志的值對(duì)范圍塊的數(shù)據(jù)編碼。如果差異標(biāo)志指示兩個(gè)塊相同(差異標(biāo)志=00),則編碼器240將到所選擇的域塊的距離信息和差異標(biāo)志編碼為范圍塊的壓縮數(shù)據(jù)。如果差異標(biāo)志指示全局表索引(差異標(biāo)志=01),則編碼器240將到所選擇的域塊的距離信息和包括差異標(biāo)志和全局表索引的差異信息編碼為范圍塊的壓縮數(shù)據(jù)。如果差異標(biāo)志指示局部表索引(差異標(biāo)志=10),則編碼器240將到所選擇的域塊的距離信息和包括差異標(biāo)志和局部表索引的差異信息編碼為范圍塊的壓縮數(shù)據(jù)。如果差異標(biāo)志指示異常標(biāo)志(差異標(biāo)志=11),則編碼器240激活異常處理器250以存儲(chǔ)沒有編碼的范圍塊的數(shù)據(jù)。在這種情況下,范圍塊的未壓縮數(shù)據(jù)被存儲(chǔ)在存儲(chǔ)器中,差異標(biāo)志被存儲(chǔ)為異常標(biāo)志。盡管在該示例性實(shí)施例中異常處理器250被描述為獨(dú)立的部件,但是異常處理器250可以被集成到編碼器240中。圖9是示出圖8的搜索器220的示例性操作的示圖。在該示例性實(shí)施例中,關(guān)于由第8和第9短塊組成的由標(biāo)號(hào)391指示的范圍塊來描述搜索器220的操作。在這種情況下,域塊由兩個(gè)短塊來代表。在圖9中,域塊由短塊對(duì)代表,即,第6和第7短塊、第5和第6短塊、第4和第5短塊、第3和第4短塊、第2和第3短塊、第1和第2短塊以及第0和第1短塊。此外,被標(biāo)為標(biāo)號(hào)393的輸入數(shù)據(jù)在緩沖器中被緩沖以被壓縮。參照?qǐng)D9,搜索器220在步驟S310加載搜索范圍和將被編碼的范圍塊。這里,搜索范圍可以被設(shè)置為2、4、8、16...、65536個(gè)宏塊。搜索范圍可以是編碼器240對(duì)數(shù)據(jù)編碼的數(shù)據(jù)單位(編碼幀)。在圖9中,范圍塊為第8和第9短塊。接下來,搜索器220在步驟S320和S330在搜索范圍中選擇將與范圍塊比較的域塊。在從范圍塊的位置開始執(zhí)行前向編碼的同時(shí)選擇域塊。此時(shí),可以在以短塊為單位移動(dòng)的同時(shí)選擇域塊。在選擇了域塊之后,搜索器220在步驟S340比較范圍塊的數(shù)據(jù)與所選擇的域塊的數(shù)據(jù)。通過XOR操作來執(zhí)行數(shù)據(jù)的比較。接下來,搜索器220在步驟S350獲得到域塊的距離信息,并在步驟S360使用兩個(gè)塊之間的差異值計(jì)算開銷。距離信息可包括距離標(biāo)志和距離值。從兩個(gè)塊之間的差異獲得開銷。搜索器220設(shè)置有用于存儲(chǔ)表索引的開銷表,所述開銷在步驟370用作開銷表的地址。因此,如果獲得了開銷,則搜索器220產(chǎn)生存儲(chǔ)在與該開銷對(duì)應(yīng)的地址處的開銷表的值。此時(shí),開銷表的值變?yōu)楸硭饕?。這里,表索引可以是全局表索引或局部表索引。在執(zhí)行上述步驟的同時(shí),搜索器220收集到搜索范圍中的域塊的距離信息和開銷,并通過在開銷表中搜索計(jì)算的開銷來找到表索引。此時(shí),搜索器220在根據(jù)開銷搜索的表索引中選擇具有最低值的表索引。即,搜索器220在執(zhí)行前向編碼的同時(shí)計(jì)算到域塊的距離和開銷(即,計(jì)算順序選擇的域塊到范圍塊的距離和開銷),并使用開銷從開銷表中確定表索引。接下來,搜索器220在執(zhí)行后向編碼的同時(shí)將當(dāng)前選擇的表索引與先前存儲(chǔ)的表索引中具有最小值的表索引進(jìn)行比較,如果先前存儲(chǔ)的表索引中具有最小值的表索引小于當(dāng)前選擇的表索引,則保持先前索引,否則更新表索引值。即,如果當(dāng)前表索引小于預(yù)先存儲(chǔ)的表索引,則搜索器220根據(jù)到當(dāng)前搜索的域塊的距離和差異值更新表索引,否則保持預(yù)先存儲(chǔ)的距離信息和表索引。在重復(fù)上述處理的同時(shí),搜索器220存儲(chǔ)到搜索范圍中具有最低開銷的域塊的距離信息和表索引。在構(gòu)成范圍塊的短塊中的任何一個(gè)與搜索范圍中的短塊中的任何一個(gè)不同的情況下,對(duì)范圍塊的壓縮效率不夠。在這種情況下,范圍塊被處理為異常塊。即,在比較范圍塊的短塊和搜索范圍中的域塊的短塊的同時(shí),當(dāng)搜索器220沒有找到所需數(shù)量的短塊時(shí),搜索器220產(chǎn)生異常標(biāo)志而不計(jì)算范圍塊的開銷。例如,在其大小與范圍塊和域塊的大小相同的宏塊由N個(gè)短塊組成,將范圍塊與搜索范圍中的域塊進(jìn)行比較,并且在兩個(gè)宏塊之間彼此相同的短塊的數(shù)量小于M的情況下,搜索器220將范圍塊設(shè)置為異常塊。在這種情況下,搜索器220對(duì)異常塊設(shè)置異常標(biāo)志。在該示例性實(shí)施例中,差異標(biāo)志被設(shè)置以用作異常標(biāo)志(在表l中,差異標(biāo)志=11)而不產(chǎn)生表索引。在該示例性實(shí)施例中,范圍塊和域塊中的每個(gè)由兩個(gè)短塊組成。這里,N被設(shè)置為2,M被設(shè)置為0。在范圍塊的短塊和搜索范圍中的域塊的任何一個(gè)短塊的情況下,搜索器220將范圍塊視為異常塊,因而將差異標(biāo)志設(shè)置為11。搜索器220可產(chǎn)生局部表。即,如果沒有注冊(cè)在全局表中的差異值(范則搜索器220將該差異值注冊(cè)到如圖7B所示的局部表。此時(shí),局部表的開銷(表索引)被設(shè)置為大于全局表的開銷(表索引)的值。接下來,開銷和表索引被注冊(cè)到開銷表。在使用局部表的情況下,即使不將該差異值注冊(cè)到全局表,也將其注冊(cè)到局部表以提高壓縮效率。在完成了搜索處理之后,搜索器220將距離信息和差異信息(可包括表索引)傳送給編碼器240。在圖9中,搜索器220根據(jù)緩沖的數(shù)據(jù)393定義宏塊,并將索引號(hào)分配給由第8和第9短塊組成的當(dāng)前范圍塊之前的域塊,以定義短塊對(duì)(即,第6和第7短塊、第5和第6短塊、第4和第5短塊、第3和第4短塊、第2和第3短塊、第1和第2短塊以及第0和第1短塊)的域塊。搜索器220比較范圍塊的數(shù)據(jù)與順序選擇的域塊的數(shù)據(jù),并輸出比較結(jié)果。在這種情況下,搜索器220產(chǎn)生范圍塊和域塊之間的差異值。這里,在第6和第7短塊被選擇為域塊時(shí),搜索器220產(chǎn)生EXORB和CXORB,在第5和第6短塊被選擇為域塊時(shí),搜索器220產(chǎn)生BXORB和EXORB,在第4和第5短塊被選擇為域塊時(shí),搜索器220產(chǎn)生BXORB和BXORB,在第3和第4短塊被選擇為域塊時(shí),搜索器220產(chǎn)生FXORB和BXORB,在第2和第3短塊被選擇為域塊時(shí),搜索器220產(chǎn)生DXORB和FXORB,在第1和第2短塊被選擇為域塊時(shí),搜索器220產(chǎn)生BXORB和DXORB,在第0和第1短塊被選擇為域塊時(shí),搜索器220產(chǎn)生AXORB和BXORB。搜索器220還產(chǎn)生范圍塊和域塊之間的距離信息。接下來,搜索器220基于差異值計(jì)算開銷。如果域塊與范圍塊相同(圖9中的第4和第5短塊),則獲得開銷0。如果兩個(gè)短塊之一相同(圖9中的第5和第6短塊、第3和第4短塊、第1和第2短塊以及第0和第1短塊),則獲得的開銷為最低開銷。如果范圍塊的兩個(gè)短塊都與域塊的相應(yīng)短塊不同,獲得的開銷為高開銷。在圖9的示例性情況下,搜索器220將到第4和第5短塊的距離信息(距離標(biāo)志=1,距離值=4)以及指示兩個(gè)塊數(shù)據(jù)相同的差異標(biāo)志(差異標(biāo)志=0)發(fā)送給編碼器240。在不存在如同第4和第5短塊的開銷為0(或接近0)的域塊的情況下,搜索器220產(chǎn)生具有最低開銷的域塊的距離信息和差異信息,并將該距離信息和差異信息傳送給編碼器240。這里,距離信息可包括指示兩個(gè)塊數(shù)據(jù)之間的差異的差異標(biāo)志(差異標(biāo)志=01或10)和表索引(存儲(chǔ)在對(duì)應(yīng)于計(jì)算的開銷的開銷表中)。例如,到由第0和第1短塊組成的域塊的距離信息包括距離信息(距離標(biāo)志=1,距離值=8)和差異信息(差異標(biāo)志=01和表索引)。編碼器240使用所述距離信息和差異信息(差異標(biāo)志和表索引)對(duì)范圍塊的數(shù)據(jù)進(jìn)行壓縮。圖10是示出圖8的編碼器240的示例性數(shù)據(jù)壓縮操作的流程圖。在圖10中,假設(shè)編碼器240具有異常處理功能來描述數(shù)據(jù)壓縮操作。然而,編碼器240可被實(shí)現(xiàn)為沒有異常處理功能。在這種情況下,異常處理器250從壓縮結(jié)構(gòu)中被略去,編碼器240根據(jù)計(jì)算的開銷對(duì)被視為異常塊(例如,構(gòu)成范圍塊的短塊中沒有一個(gè)與搜索范圍中的短塊中的任何一個(gè)相同)的塊編碼。參照?qǐng)D10,加載器210在步驟S411加載輸入數(shù)據(jù),從而輸入數(shù)據(jù)在緩沖器中被緩沖。此時(shí),輸入數(shù)據(jù)被劃分為宏塊和短塊。位于加載的數(shù)據(jù)開始的宏塊不參照比較目標(biāo)宏塊或者參照一些比較目標(biāo)宏塊被編碼。在這種情況下,由于沒有足夠多的域塊來參考,所以壓縮效率低。因此,優(yōu)選的是,位于編碼幀開始的預(yù)設(shè)數(shù)量的宏塊應(yīng)該不經(jīng)壓縮被處理為異常塊。加載器210以編碼幀為單位加載數(shù)據(jù),搜索器220以與范圍塊大小相同的域塊為單位執(zhí)行搜索處理。此時(shí),位于編碼幀開始的數(shù)據(jù)有很少的可參照的域塊,或者沒有可參照的域塊。在這種情況下,搜索器220將定義在編碼幀開始的預(yù)設(shè)數(shù)量的宏塊視為異常塊。在圖10中,從MBO到MB15的16個(gè)宏塊被假設(shè)為異常塊。一旦數(shù)據(jù)壓縮開始,編碼器240就在步驟S435對(duì)宏塊MBO到MB15執(zhí)行異常處理,并在步驟S433將異常塊MB0到MB15保存到緩沖器中。此時(shí),異常塊被無壓縮地存儲(chǔ)。在處理了初始異常塊之后,搜索器220如圖9所示地配置搜索范圍,加載范圍塊和搜索范圍中的域塊,比較范圍塊和域塊,并在步驟S413將關(guān)于范200810212927.6說明書第19/32頁圍塊的距離信息和差異信息發(fā)送給編碼器240。編碼器240評(píng)價(jià)差異標(biāo)志,并在步驟S415確定范圍塊的數(shù)據(jù)是否與域塊的數(shù)據(jù)相同(開銷=0)。如果范圍塊的數(shù)據(jù)與域塊的數(shù)據(jù)彼此相同,則編碼器240在步驟S417將距離信息和差異標(biāo)志編碼為范圍塊的壓縮數(shù)據(jù),并在步驟S419將壓縮數(shù)據(jù)保存在存儲(chǔ)器中。即,如果范圍塊的數(shù)據(jù)與域塊的數(shù)據(jù)彼此相同,則編碼器240創(chuàng)建范圍塊和域塊之間的距離信息和指示兩個(gè)塊之間的數(shù)據(jù)相同的差異標(biāo)志(差異標(biāo)志=00)作為范圍塊的壓縮數(shù)據(jù)。如果在步驟S415確定不存在其數(shù)據(jù)與范圍塊的數(shù)據(jù)相同的域塊(差異標(biāo)志邦),則編碼器240在步驟S421評(píng)價(jià)表索引,并在步驟S423在表中查找表索引。所述表索引由搜索器220基于兩個(gè)塊之間的差異值產(chǎn)生。所述表索引可以是全局表索引(和/或局部表索引)。表索引被檢查以確定全局表(和/或局部表)中是否存在搜索器220找到的開銷。全局表(和/或局部表)使用根據(jù)開銷確定的表索引,并且在解壓縮數(shù)據(jù)時(shí)允許解壓縮器參照數(shù)據(jù)索引提取范圍塊和域塊之間的差異值。在下面的描述中,假設(shè)使用全局表和局部表二者。通過使用由搜索器220產(chǎn)生的表索引作為表的索引,范圍塊的壓縮數(shù)據(jù)可以被恢復(fù)為原始數(shù)據(jù)。此時(shí),如果差異標(biāo)志指示全局表索引(差異標(biāo)志=01),則編碼器240在步驟S425中確定在全局表中是否存在表索引值。如果在全局表中存在差異標(biāo)志,則編碼器在步驟S419中將距離信息和差異信息保存在存儲(chǔ)器中。此時(shí),距離信息可包括范圍塊的距離標(biāo)志和到域塊的距離值,差異信息可包括差異標(biāo)志和全局表的索引值。如果差異標(biāo)志指示局部表的索引(差異標(biāo)志=10),則編碼器240在步驟S427查找局部表。這里,局部表如圖7B所示由搜索器220創(chuàng)建,以注冊(cè)比預(yù)設(shè)次數(shù)更頻繁出現(xiàn)但是卻沒有注冊(cè)到全局表中的差異值。此時(shí),如果在局部表中存在表索引值,則編碼器240在步驟S429檢測(cè)表索引值的存在,并在步驟S419將距離信息和差異信息存儲(chǔ)在存儲(chǔ)器中。如果差異標(biāo)志被設(shè)置為"01"或"10"而非"00",則編碼器240將包括差異標(biāo)志值以及全局表或局部表的表索引的差異信息和距離信息存儲(chǔ)在存儲(chǔ)器中。如果在步驟S429確定差異標(biāo)志是異常標(biāo)志,則編碼器240在步驟S431激活異常處理器250。異常處理器250在步驟S431將異常標(biāo)志存儲(chǔ)在存儲(chǔ)器內(nèi),并在步驟S433無壓縮地存儲(chǔ)范圍塊的數(shù)據(jù)。即,如果范圍塊與搜索范圍中的域塊不同,或者全局表和局部表中不存在索引,則編碼器240無壓縮地存儲(chǔ)異常標(biāo)志和范圍塊的數(shù)據(jù)。如上所述,編碼器240可將范圍塊的數(shù)據(jù)無壓縮地存儲(chǔ)在存儲(chǔ)器中。例如,屬于范圍塊的短塊的數(shù)據(jù)與域塊的短塊的數(shù)據(jù)不同,或者雖然兩個(gè)塊中存在相同的數(shù)據(jù)但是開銷高,編碼器240對(duì)范圍塊執(zhí)行異常處理。即,如果全局表和局部表中不存在范圍塊和域塊之間的差異值,則編碼器240無壓縮地存儲(chǔ)范圍塊的數(shù)據(jù)。在這種情況下,編碼器240通知異常處理器250異常塊,從而異常處理器250將范圍塊的數(shù)據(jù)無壓縮地存儲(chǔ)在存儲(chǔ)器中。這里,異常處理器250可以被集成到編碼器240中。在壓縮加載的范圍塊的數(shù)據(jù)的同時(shí),壓縮器將壓縮數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中。此時(shí),壓縮數(shù)據(jù)包括距離信息、差異信息和異常塊。壓縮數(shù)據(jù)被存儲(chǔ)為表2。存儲(chǔ)器描述距離信息如果距離標(biāo)志=1,則存儲(chǔ)到域塊的距離值。如果距離標(biāo)志=0,則不存儲(chǔ)距離值。差異信息如果差異標(biāo)志=00,則僅存儲(chǔ)差異標(biāo)志而不存儲(chǔ)表索引。如果差異標(biāo)志=01,則存儲(chǔ)差異標(biāo)志和全局表索引作為差異信息。如果差異標(biāo)志=10,則存儲(chǔ)差異標(biāo)志和局部表索引作為差異信息。異常塊如果差異標(biāo)志=11,則處理為異常塊,存儲(chǔ)差異標(biāo)志作為差異信息,并無壓縮地存儲(chǔ)范圍塊數(shù)據(jù)。如上所述,壓縮器通過將位于范圍塊之前的域塊與范圍塊進(jìn)行比較來計(jì)算差異值,根據(jù)差異值來計(jì)算開銷,并使用到具有最低開銷的域塊的距離信息和差異信息來壓縮范圍塊的數(shù)據(jù)。由于圖9中范圍塊和第三域塊[4,5]之間的差異值為0,所以編碼器240產(chǎn)生到第三域塊的距離和差異值作為壓縮數(shù)據(jù)。然而,在域塊(如圖9中的第一域塊[6,7]和第五域塊[2,3])沒有與范圍塊相同的短塊的情況下,編碼器240將范圍塊作為異常塊處理。如同第二域塊[5,6]、第四域塊[3,4]、第六域塊[1,2]和第七域塊,如果域塊的一個(gè)短塊與范圍塊的相應(yīng)短塊相同,則編碼器240計(jì)算搜索范圍中的域塊到范圍塊的開銷之和,并確定范圍塊和具有最低開銷和的域塊之間的距離和差異信息(差異標(biāo)志和表索引)作為壓縮數(shù)據(jù)。當(dāng)編碼器240具有全局表和/或局部表時(shí),編碼器240用表索引取代差異值,并確定鏈接到該索引的信息為壓縮數(shù)據(jù)。在這種情況下,范圍塊的壓縮數(shù)據(jù)可以用到域塊的距離和表的信息來代表。圖11是示出根據(jù)本發(fā)明示例性實(shí)施例的編碼器的數(shù)據(jù)壓縮操作的流程圖。當(dāng)加載器210加載的輸入數(shù)據(jù)在緩沖器中被緩沖時(shí),搜索器220如圖9所示計(jì)算與范圍塊有關(guān)的具有最小值的域塊的開銷。在這種情況下,編碼器240使用搜索器220輸出的距離信息和差異信息對(duì)范圍塊的數(shù)據(jù)編碼。在圖11中,更詳細(xì)地描述了這種數(shù)據(jù)編碼過程。參照?qǐng)DH,通過短塊(proc-l)為異常塊而且塊[6,7](proc-2)、[8,9](proc-3)和[10,11](proc-4)為范圍塊的示例性情況更詳細(xì)地描述了搜索器220和編碼器240的操作。首先,加載器210加載編碼幀,從而在步驟S510編碼幀的數(shù)據(jù)在內(nèi)部緩沖器中被緩沖。接下來,編碼器240在步驟S512加載異常塊的數(shù)據(jù),并在步驟S514和S516對(duì)異常塊的數(shù)據(jù)執(zhí)行異常處理。這里,異常塊是的6個(gè)短塊(3個(gè)宏塊)。在步驟S516被異常處理的塊在步驟S518被存儲(chǔ)在存儲(chǔ)器中。編碼幀的預(yù)設(shè)數(shù)量的宏塊被作為異常塊處理的原因是其壓縮率低。在這種情況下,優(yōu)選的是,異常塊是位于編碼幀開始的宏塊。通過異常處理過程被處理的宏塊的數(shù)據(jù)按照原始數(shù)據(jù)格式被存儲(chǔ)。在處理了異常塊之后,壓縮器從一系列宏塊中選擇范圍塊,檢查位于范圍塊之前的域塊,以獲得距離信息和差異信息,并基于距離信息和差異信息壓縮范圍塊。通過宏塊proc-2[6,7]、proc-3[8,9]和proc-4[10,11]被選擇為范圍塊的示例性情況來描述壓縮過程。關(guān)于proc-2[6,7]的壓縮過程,搜索器220在步驟S524加載范圍塊[6,7]并在步驟S525配置搜索范圍。這里,由塊定義搜索范圍。接下來,搜索器220在步驟S526對(duì)搜索范圍中的域塊執(zhí)行前向和后向編碼。由于搜索范圍中不存在相同的塊,所以搜索器220不產(chǎn)生全局和局部表索引,而是將差異標(biāo)志設(shè)置為"11"(即,異常處理標(biāo)志)以將范圍塊作為異常塊處理。因此,編碼器240在步驟S562參照異常處理標(biāo)志對(duì)范圍塊[6,7]執(zhí)行異常處理。在處理異常塊的同時(shí),編碼器240不壓縮地存儲(chǔ)設(shè)置為用于指示異常塊的11的差異標(biāo)志和異常塊的數(shù)據(jù)。此時(shí),異常塊的數(shù)據(jù)按照被標(biāo)為圖11的標(biāo)號(hào)S564的表的形式被存儲(chǔ)。關(guān)于proc-3[8,9]的壓縮處理,搜索器220在步驟S524加載范圍塊[8,9],并在步驟S525配置搜索范圍。這里,搜索范圍由塊定義。接下來,搜索器220對(duì)搜索范圍中的域塊執(zhí)行前向和后向編碼(S526)。搜索器220檢測(cè)與范圍塊[8,9]相同的域塊[4,5],因而產(chǎn)生具有被設(shè)置為O的差異值的差異信息。在這種情況下,搜索器220產(chǎn)生距離標(biāo)志=1且距離值=4的關(guān)于短塊[8]的距離信息和距離標(biāo)志=0且差異標(biāo)志=0(由于短塊[9]和[5]之間的距離與短塊[8]和[4]之間的距離相同)的關(guān)于短塊[9]的距離信息,并將距離和差異信息輸出到編碼器240。編碼器240在步驟S532確定范圍塊和域塊的相同,并在步驟S534將包括距離信息(標(biāo)志=10,距離值=4)和距離標(biāo)志(差異標(biāo)志=0,0)的壓縮數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器內(nèi)。此時(shí),塊[8,9]的壓縮數(shù)據(jù)按照被標(biāo)為圖ll(IO[距離標(biāo)志]、4[距離值]、OO[差異標(biāo)志])的標(biāo)號(hào)S536的表的形式被存儲(chǔ)。關(guān)于proc-4[10,ll]的壓縮處理,搜索器220在步驟S524加載范圍塊[10,11],并在步驟S525配置搜索范圍。這里,搜索范圍由塊定義。接下來,搜索器220在步驟S526對(duì)搜索范圍中的域塊執(zhí)行前向和后向編碼。在執(zhí)行前向和后向編碼的同時(shí),搜索器220檢測(cè)域塊和范圍塊[10,11]之間的相似性,并產(chǎn)生差異信息和距離信息。由于范圍塊的短塊[IO]和域塊的短塊[O]彼此相同,所以搜索器220產(chǎn)生差異值被設(shè)置為0的差異信息。在這種情況下,搜索器220產(chǎn)生包括設(shè)置為1的距離標(biāo)志和設(shè)置為IO的距離值的距離信息以及包括設(shè)置為0的差異標(biāo)志的差異信息,并將所述距離信息和差異信息輸出到編碼器240。此外,由于范圍塊的短塊[ll]和域塊的短塊[l]彼此不同,所以搜索器220計(jì)算兩個(gè)短塊的差異值[CXORB]和對(duì)應(yīng)于該差異值的開銷。接下來,搜索器220參照開銷表確定對(duì)應(yīng)于該開銷的表索引。在這種情況下,搜索器220產(chǎn)生設(shè)置為0(由于短塊[11]和[1]之間的距離與短塊[10]和之間的距離相同)的距離標(biāo)志,并將包括差異標(biāo)志和所選擇的表索引的差異信息輸出到編碼器240。這里,差異信息可包括設(shè)置為01的差異標(biāo)志和全局表索引(Gtblidx)。編碼器240確定范圍塊的短塊[10]與域塊的短塊相同,并將包括距離信息(距離標(biāo)志=1,距離值=10)和差異信息(差異標(biāo)志=0)的壓縮數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中。由于范圍塊的短塊[ll]和域塊的短塊[l]彼此不同,所以編碼器240在步驟S542和S544在被標(biāo)為標(biāo)號(hào)S544的表中查找搜索器220在步驟S546輸出的表索引。此時(shí),如果在步驟S548在表(全局表或局部表)中找到搜索器220輸出的表索引,則編碼器240存儲(chǔ)開銷[Gtblidx二code(C:B)]作為差異值。即,編碼器240按照被標(biāo)為標(biāo)號(hào)S550的表的形式存儲(chǔ)包括設(shè)置為0的距離標(biāo)志的距離信息以及包括設(shè)置為01的差異標(biāo)志和設(shè)置為[Gtblick二code(C:B)]的差異值的差異信息作為范圍塊的短塊的壓縮數(shù)據(jù)。在加載被標(biāo)為標(biāo)號(hào)S510的編碼幀之后,4臾索器220和編碼器240壓縮短塊[O-ll],并按照被標(biāo)為標(biāo)號(hào)S550的表的形式存儲(chǔ)壓縮數(shù)據(jù)。如上所述,本發(fā)明的示例性數(shù)據(jù)壓縮方法參照范圍塊和搜索范圍中的域塊之間的距離信息和差異信息來壓縮范圍塊。這里,距離信息包括距離標(biāo)志和距離值。距離標(biāo)志為1比特長,并被設(shè)置以指示設(shè)置或復(fù)位狀態(tài)。即,如果將被壓縮的當(dāng)前范圍塊和域塊之間的距離值與先前范圍塊和相應(yīng)域塊之間的距離值相同,則距離標(biāo)志被設(shè)置為復(fù)位狀態(tài)(表2中的"0"),否則,被設(shè)置為設(shè)置狀態(tài)(表2中的'T')。當(dāng)距離標(biāo)志被設(shè)置為設(shè)置狀態(tài)(即,'T')時(shí),距離信息包括距離標(biāo)志和到相應(yīng)域塊的距離值。另一方面,當(dāng)距離標(biāo)志被設(shè)置為復(fù)位狀態(tài)(即,"0")時(shí),距離信息只包括距離標(biāo)志。此外,差異信息是關(guān)于范圍塊和相應(yīng)域塊之間的差異的信息。差異信息可包括差異標(biāo)志和差異值??筛鶕?jù)差異值按照各種格式來設(shè)置差異標(biāo)志。即,當(dāng)以單個(gè)類型創(chuàng)建差異值時(shí),可以用指示設(shè)置狀態(tài)或復(fù)位狀態(tài)的1比特來設(shè)置差異標(biāo)志。然而,當(dāng)按照至少兩種類型創(chuàng)建差異值時(shí),根據(jù)類型數(shù)來確定差異標(biāo)志的比特?cái)?shù)。在本發(fā)明示例性實(shí)施例中,可以使用四種方法。第一種方法直接使用差異值。第二種方法使用全局表中與范圍塊和域塊之間計(jì)算的差異值匹配的表索引。第三種方法使用全局表或局部表中與范圍塊和域塊之間計(jì)算的差異值匹配的表索引。第四種方法處理范圍塊,其壓縮效率與在使用第二和第三種方法時(shí)異常塊的壓縮效率一樣低。在第一種差異信息產(chǎn)生方法中,在當(dāng)前范圍塊和其相應(yīng)域塊之間的距離值與先前范圍塊和其相應(yīng)域塊之間的距離值相同時(shí),差異標(biāo)志被設(shè)置為復(fù)位狀態(tài)("0"),否則(即,兩個(gè)塊彼此不同),差異標(biāo)志被設(shè)置為設(shè)置狀態(tài)("1")。這里,兩個(gè)塊之間的差異值是通過對(duì)范圍塊和域塊執(zhí)行異或操作獲得的值。在這種情況下,當(dāng)差異標(biāo)志被設(shè)置為1時(shí),差異值包括差異標(biāo)志和與相應(yīng)域塊的異或值;當(dāng)差異標(biāo)志被設(shè)置為O時(shí),差異值只包括差異標(biāo)志。在第二種差異信息產(chǎn)生方法中,當(dāng)當(dāng)前范圍塊和其相應(yīng)域塊之間的距離值與先前范圍塊和其相應(yīng)域塊之間的距離值相同時(shí),差異標(biāo)志被設(shè)置為復(fù)位狀態(tài)("0"),否則(即,兩個(gè)塊彼此不同),差異標(biāo)志被設(shè)置為設(shè)置狀態(tài)('T')。這里,兩個(gè)塊之間的差異值是使用范圍塊和域塊之間的異或操作獲得的開銷。在使用開銷確定了全局表的表索引之后,表索引被設(shè)置為差異值。在這種情況下,當(dāng)差異標(biāo)志被設(shè)置為設(shè)置狀態(tài)("1")時(shí),差異信息包括差異標(biāo)志和全局表的表索引;當(dāng)差異標(biāo)志被設(shè)置為復(fù)位狀態(tài)("0")時(shí),差異信息只包括差異標(biāo)志。全局表可存儲(chǔ)范圍塊和域塊之間的差異值。此時(shí),所述差異值可以是兩個(gè)塊之間的異或:操作值。在第三種差異信息產(chǎn)生方法中,在當(dāng)前范圍塊和其相應(yīng)域塊之間的距離值與先前范圍塊和其相應(yīng)域塊之間的距離值相同時(shí),差異標(biāo)志被設(shè)置為復(fù)位狀態(tài)("0"),否則(即,兩個(gè)塊彼此不同),差異標(biāo)志被設(shè)置為設(shè)置狀態(tài)('T,)。這里,兩個(gè)塊之間的差異值是使用范圍塊和域塊之間的異或操作獲得的開銷。在使用開銷確定了全局表或局部表的表索引之后,表索引被設(shè)置為差異值。這里,全局表可以是固定表,局部表是可變表。使用在壓縮處理期間頻繁出現(xiàn)但是不存在于全局表中的差異值的分析結(jié)果產(chǎn)生局部表。在這種情況下,壓縮器將范圍塊和相應(yīng)域塊之間的差異值注冊(cè)到局部表,并將局部表的表索引注冊(cè)到開銷表。當(dāng)差異標(biāo)志被設(shè)置為"01"時(shí),差異信息包括差異標(biāo)志和全局表的表索引;當(dāng)差異標(biāo)志被設(shè)置為"10"時(shí),差異信息包括差異標(biāo)志和局部表的表索引。此外,當(dāng)差異標(biāo)志被設(shè)置為"00"時(shí),差異信息只包括差異才示志。關(guān)于第四種差異信息產(chǎn)生方法,當(dāng)使用利用全局表和局部表的差異信息產(chǎn)生方法時(shí),所述表中可能不存在范圍塊和域塊之間的差異值。在這種情況下,可以優(yōu)選的是不壓縮范圍塊的數(shù)據(jù)。這是因?yàn)?,?duì)這樣的范圍塊的壓縮數(shù)據(jù)解碼花費(fèi)時(shí)間長。因此,當(dāng)范圍塊和域塊之間的差異值沒有被注冊(cè)在全局表和局部表中時(shí),范圍塊被作為異常塊處理,從而范圍塊的數(shù)據(jù)不被壓縮。在這種情況下,差異標(biāo)志被設(shè)置為異常標(biāo)志("11"),并使用范圍塊的原始數(shù)據(jù)。壓縮器將如上產(chǎn)生的差異信息和距離信息編碼為范圍塊的壓縮數(shù)據(jù)。如上壓縮的數(shù)據(jù)被存儲(chǔ)在存儲(chǔ)器中或者通過通信部件被傳輸。為了訪問和處理以壓縮格式存儲(chǔ)或接收的數(shù)據(jù),必須對(duì)壓縮數(shù)據(jù)進(jìn)行解壓縮。在示例性實(shí)施中,可通過解壓縮器對(duì)壓縮數(shù)據(jù)進(jìn)行解壓縮。如上所述,可通過四種類型的差異信息來表達(dá)壓縮數(shù)據(jù)。相應(yīng)地,壓縮器使用四種壓縮方案中的任意方案來壓縮數(shù)據(jù),從而解壓縮器被構(gòu)造為使用相應(yīng)的解壓縮方案來解壓縮壓縮數(shù)據(jù)。在第一解壓縮方案中,解壓縮器確定距離信息,并選擇具有最低開銷的域塊。此時(shí),解壓縮器評(píng)價(jià)包括在距離信息中的距離標(biāo)志,如果距離標(biāo)志指示復(fù)位狀態(tài),則解壓縮器選擇位于解壓縮先前范圍塊時(shí)選擇的域塊的距離處的域塊。否則,如果距離標(biāo)志指示設(shè)置狀態(tài),則解壓縮器選擇位于由距離信息指示的距離處的域塊。接下來,解壓縮器參照到選擇的域塊的距離信息對(duì)范圍塊的壓縮數(shù)據(jù)執(zhí)行解壓縮。此時(shí),如果包括在距離信息中的差異標(biāo)志指示復(fù)位狀態(tài),則解壓縮器從選擇的域塊的數(shù)據(jù)恢復(fù)范圍塊的數(shù)據(jù)。否則,如果差異標(biāo)志指示設(shè)置狀態(tài),則解壓縮器通過對(duì)差異值和選擇的域塊的數(shù)據(jù)執(zhí)行XOR操作來恢復(fù)范圍塊的數(shù)據(jù)。在第二解壓縮方案中,解壓縮器設(shè)置有用于存儲(chǔ)在范圍塊和域塊之間頻繁地出現(xiàn)的差異值的全局表。解壓縮器首先評(píng)價(jià)壓縮數(shù)據(jù)的距離信息,并選擇具有最低開銷的域塊。可以以與第一解壓縮方案相同的方式執(zhí)行域塊選擇。接下來,解壓縮器參照差異信息使用選擇的域塊的數(shù)據(jù)來恢復(fù)范圍塊的數(shù)據(jù)。此時(shí),如果包括在差異信息中的差異標(biāo)志指示復(fù)位狀態(tài),則解壓縮器從選擇的域塊的數(shù)據(jù)恢復(fù)范圍塊的數(shù)據(jù)。否則,如果差異標(biāo)志指示設(shè)置狀態(tài),則解壓縮器通過訪問存儲(chǔ)在全局表中的由差異值(在此情況下,差異值被用作全局表的索引)指示的信息對(duì)該信息和選擇的域塊的數(shù)據(jù)執(zhí)行XOR操作來恢復(fù)范圍塊的數(shù)據(jù)。存儲(chǔ)在全局表中的信息是范圍塊和最低開銷的XOR值。在第三解壓縮方案中,解壓縮器設(shè)置有用于存儲(chǔ)在范圍塊和域塊之間頻繁地出現(xiàn)的差異值的全局表(固定表)以及用于存儲(chǔ)在范圍塊和域塊之間頻可變表)。在此情況下,解壓縮器評(píng)價(jià)壓縮數(shù)據(jù)的距離信息,并選擇具有最低開銷的域塊??梢砸耘c第一解壓縮方案相同的方式執(zhí)行域塊選擇。接下來,解壓縮器參照差異信息使用所述域塊的數(shù)據(jù)來恢復(fù)范圍塊的數(shù)據(jù)。此時(shí),如果包括在差異信息中的差異標(biāo)志指示復(fù)位狀態(tài),則解壓縮器從選擇的域塊的數(shù)據(jù)恢復(fù)范圍塊的數(shù)據(jù)。否則,如果差異標(biāo)志指示設(shè)置狀態(tài),則解壓縮器根據(jù)差異標(biāo)志選擇全局表和局部表之一,從選擇的表中檢索與差異值(可以是全局表或局部表的索引)匹配的信息,并通過對(duì)選擇的域塊的數(shù)據(jù)和從選擇的表中檢索的信息執(zhí)行XOR操作來恢復(fù)范圍塊的數(shù)據(jù)。此時(shí),在全局表和局部表中存儲(chǔ)的信息是最低開銷與范圍塊的XOR操作值。在第四解壓縮方案中,使用用于存儲(chǔ)在范圍塊和域塊之間頻繁地出現(xiàn)的差異值的全局表(固定表)以及用于存儲(chǔ)在范圍塊和域塊之間頻繁地出現(xiàn)但在全局表中不存在的差異值的的局部表(在壓縮處理期間產(chǎn)生的可變表)來執(zhí)行解壓縮。在此情況下,解壓縮器評(píng)價(jià)壓縮數(shù)據(jù)的距離信息并選擇具有最低開銷的域塊。可以以與第一壓縮方案相同的方式執(zhí)行域塊選擇。接下來,解壓縮器參照差異信息使用域塊的數(shù)據(jù)恢復(fù)范圍塊的數(shù)據(jù)。此時(shí),如果包括在差異信息中的差異標(biāo)志指示復(fù)位狀態(tài),則解壓縮器從選擇的域塊的數(shù)據(jù)恢復(fù)范圍塊的數(shù)據(jù)。否則,如果差異標(biāo)志指示設(shè)置狀態(tài),則解壓縮器根據(jù)差異標(biāo)志的類型按照不同的方式來恢復(fù)范圍塊的數(shù)據(jù)。這里,如果差異標(biāo)志是異常標(biāo)志,則解壓縮器將包含在差異信息中的差異值恢復(fù)為范圍塊的數(shù)據(jù)。即,具有差異標(biāo)志的差異信息的差異值是未壓縮數(shù)據(jù),從而可在沒有解壓縮處理的情況下恢復(fù)范圍塊的數(shù)據(jù)。如果差異標(biāo)志指示全局表或局部表的使用,則解壓縮器從全局表或局部表提取與差異值相匹配的信息(可以是全局表或局部表的索引),并通過對(duì)提取的信息和選擇的域塊的數(shù)據(jù)執(zhí)行XOR操作來恢復(fù)范圍塊的數(shù)據(jù)。此時(shí),存儲(chǔ)在全局表或局部表中的信息是最低開銷與范圍塊的XOR操作值。在下面的描述中,假設(shè)解壓縮器設(shè)置有全局表和局部表,并支持異常處理功能。即,根據(jù)第四解壓縮方案描述數(shù)據(jù)解壓縮方法。圖12是根據(jù)本發(fā)明示例性實(shí)施例的解壓縮器的框圖。參照?qǐng)D12,解壓縮器包括加載器610、標(biāo)志提取器620、解碼器630以及異常處理器640。加載器610加載存儲(chǔ)在存儲(chǔ)器中的壓縮數(shù)據(jù)。壓縮數(shù)據(jù)可包括距離信息、差異信息和異常塊。此時(shí),距離信息包括距離標(biāo)志和距離值,差異信息包括差異標(biāo)志和表索引。標(biāo)志提取器620從各個(gè)距離信息和差異信息中提取距離標(biāo)志和差異標(biāo)志,并將距離標(biāo)志和差異標(biāo)志輸出到解碼器630。解碼器630分析距離標(biāo)志和距離值,確定與范圍塊相應(yīng)的域塊的位置,參照距離標(biāo)志和表索引值確定范圍塊和域塊之間的差異值,并通過對(duì)差異值和域塊執(zhí)行XOR操作來恢復(fù)范圍塊的數(shù)據(jù)。如果標(biāo)志提取器620提取被設(shè)置為11的差異標(biāo)志,即,異常標(biāo)志(指示異常塊的差異標(biāo)志),則解碼器630激活異常處理器640,以處理異常塊的數(shù)據(jù)。在此情況下,異常塊處理器640原樣輸出存儲(chǔ)的數(shù)據(jù)。盡管異常處理器640被實(shí)現(xiàn)為圖12中的獨(dú)立的部件,但是異常處理器640可被集成到解碼器630中。此外,可在緩沖器中緩沖解壓縮數(shù)據(jù)。盡管異常處理器640可以描述為圖12中的解壓縮器的一部分,但是解壓縮器可被實(shí)現(xiàn)為沒有異常處理器。在壓縮器執(zhí)行異常塊處理的情況下,解壓縮器可被實(shí)現(xiàn)為沒有異常處理器。圖13是示出根據(jù)本發(fā)明實(shí)施例的解壓縮器的操作的流程圖。參照?qǐng)D13,在步驟S710,以編碼幀為單位從存儲(chǔ)器加載壓縮數(shù)據(jù),所述編碼幀在其開始部分包括一定數(shù)量的異常塊。因此,在步驟791,解碼器630激化異常處理器640以恢復(fù)異常塊的數(shù)據(jù)。在步驟S773,恢復(fù)的異常塊的數(shù)據(jù)被保存在緩沖器中。接下來,解碼器630對(duì)異常塊后面的壓縮數(shù)據(jù)進(jìn)行解碼以恢復(fù)原始數(shù)據(jù)。為了解壓縮壓縮數(shù)據(jù),解壓縮器分析從壓縮數(shù)據(jù)提取的距離信息,并基于該距離信息確定域塊的位置,從表中檢索表索引值,并使用表索引值恢復(fù)范圍塊的數(shù)據(jù)。此外,解壓縮器確定異常塊的位置,并在該位置插入異常塊的數(shù)據(jù),從而恢復(fù)異常塊的數(shù)據(jù)。在該示例性實(shí)施例中,假首先恢復(fù)設(shè)異常塊的數(shù)據(jù),然后參照壓縮數(shù)據(jù)的距離信息和差異信息恢復(fù)范圍塊的數(shù)據(jù)。在步驟S720和S730,解碼器630加載在壓縮過程中使用的全局表和局部表,在步驟S753,解碼器630查找加載器610加載的編碼幀的開始點(diǎn)。接下來,在步驟S755,解碼器630確定何時(shí)檢測(cè)到異常標(biāo)志(差異標(biāo)志=11)。如果檢測(cè)到異常標(biāo)志,則在步驟S791,解碼器恢復(fù)異常塊的數(shù)據(jù),并在步驟S773將異常塊的數(shù)據(jù)保存到緩沖器。另一方面,如果沒有檢測(cè)到異常標(biāo)志(異常標(biāo)志-U),則在步驟S757,解碼器630訪問距離信息,并確定包括在距離信息中的距離標(biāo)志是否指示設(shè)置狀態(tài)(距離標(biāo)志=0)。如果距離標(biāo)志指示設(shè)置狀態(tài),則解碼器630選擇位于由距離值指示的距離處的域塊。否則,如果距離標(biāo)志指示復(fù)位狀態(tài),則由于復(fù)位狀態(tài)是指該距離等于先前處理的域塊的距離,所以解碼器630不移動(dòng)位置。當(dāng)距離標(biāo)志指示設(shè)置狀態(tài)時(shí),解碼器630在步驟S759確定范圍塊的位置,在步驟S761讀取包括在距離信息中的距離值,并在步驟S763選擇位于與范圍塊相距該距離處的域塊。另一方面,如果距離標(biāo)志指示復(fù)位狀態(tài),則在步驟S767,解碼器630選擇位于先前恢復(fù)的范圍塊和域塊之間的距離值的距離處的域塊。即,解碼器630選擇與當(dāng)前范圍塊相距由當(dāng)距離標(biāo)志被設(shè)置為1時(shí)的距離值指示的距離處的參考域塊,并當(dāng)距離標(biāo)志被設(shè)置為0時(shí),在保持先前距離的同時(shí)選擇參考域塊。在參照距離信息選擇域塊之后,解碼器630在步驟S769讀取差異信息的差異標(biāo)志,并在步驟S769確定差異標(biāo)志的狀態(tài)。如果差異標(biāo)志指示復(fù)位狀態(tài)(差異標(biāo)志=00),則解碼器630在步驟S771復(fù)制選擇的域塊的數(shù)據(jù)作為范圍塊的數(shù)據(jù),并在步驟S773將復(fù)制的數(shù)據(jù)保存在緩沖器中。差異標(biāo)志的復(fù)位狀態(tài)是指范圍塊的數(shù)據(jù)和選擇的域塊的數(shù)據(jù)彼此相同,以便解碼器630將選擇的域塊的數(shù)據(jù)解碼為范圍塊的數(shù)據(jù)。如果差異標(biāo)志指示設(shè)置狀態(tài)(差異標(biāo)志K)l或10),則在操作S781,解碼器630讀取包括在差異信息中的差異值。此時(shí),差異值是全局表或局部表的表索引。因此,解碼器630在步驟S781加載差異值作為表的索引,并在步驟S783查詢表。此時(shí),解碼器630從表中檢索索引值。如果差異標(biāo)志指示全局表(差異標(biāo)志=01),則解碼器選擇與全局表中的索引相應(yīng)的差異值。另一方面,如果差異標(biāo)志指示局部表(差異標(biāo)志=10),則解碼器選擇與局部表中的索引相應(yīng)的差異值。在步驟S785,解碼器確定在選擇的表中是否存在匹配的索引。如果在表中存在匹配的索引,則解碼器630在步驟S787從表中讀取由索引指示的參考數(shù)據(jù),并在步驟S773將讀取的數(shù)據(jù)保存在緩沖器中。否則,如果在表中不存在匹配的索引,則在步驟S789,解碼器630執(zhí)行錯(cuò)誤處理過程。如上所述,當(dāng)差異標(biāo)志指示表索引(即,指示表的差異信息)時(shí),解碼器630讀取包括在差異信息中的由索引指示的數(shù)據(jù),并比較該索引和域塊(XOR操作)以恢復(fù)范圍塊的數(shù)據(jù)。在重復(fù)上述過程時(shí),解碼器630對(duì)使用距離信息和差異信息壓縮的范圍塊的數(shù)據(jù)解碼。通過參照距離信息為范圍塊選擇參考域塊并參照差異信息處理選擇的域塊的數(shù)據(jù),來恢復(fù)范圍塊的數(shù)據(jù)。圖4是示出用于對(duì)通過圖11的壓縮過程壓縮的數(shù)據(jù)進(jìn)行解壓縮的解壓縮器的示例性操作的流程圖。參照?qǐng)D14,被標(biāo)為標(biāo)號(hào)S510的數(shù)據(jù)如圖11被壓縮,按照被標(biāo)為標(biāo)號(hào)S710的壓縮格式被存儲(chǔ)。這里,存儲(chǔ)在存儲(chǔ)器中的數(shù)據(jù)包括異常塊信息和異常塊的數(shù)據(jù)以及距離信息和差異信息。在圖14中,編碼的數(shù)據(jù)幀包括位于開始的異常塊的數(shù)據(jù)和異常塊數(shù)據(jù)之后的距離信息(距離標(biāo)志和距離值)和差異信息(差異標(biāo)志和差異值)。在步驟S720和S730,加載器610首先加載全局表和局部表,在加載所述表之后,在步驟S791,解碼器630從存儲(chǔ)器讀取異常塊(這里,短塊)的數(shù)據(jù),并將讀取的數(shù)據(jù)保存在緩沖器中。接下來,解碼器630參照由標(biāo)志提取器620提取的標(biāo)志對(duì)數(shù)據(jù)解碼。在步驟S753加載表和壓縮數(shù)據(jù)之后,在步驟S755,解碼器630確定差異標(biāo)志是否是異常標(biāo)志。如果差異標(biāo)志是異常標(biāo)志(差異標(biāo)志=11),則在步驟S791,解碼器630確定異常塊的位置(這里,短塊[6,7]),并將異常塊的數(shù)據(jù)[E,C]保存在緩沖器中,其中,異常塊的數(shù)據(jù)[E,C]^皮標(biāo)為標(biāo)號(hào)S740。如果差異標(biāo)志不是異常標(biāo)志,則在步驟S757,解碼器630確定距離標(biāo)志是否指示設(shè)置狀態(tài)。如果距離標(biāo)志指示設(shè)置狀態(tài)(距離標(biāo)志二l),則解碼器630在步驟S759計(jì)算將被解壓縮的數(shù)據(jù)的位置(這里,短塊[8]),在步驟S761讀取距離值(距離值=4),并在步驟S763參照距離值計(jì)算參考域塊的位置(位于4個(gè)塊之前的域塊)。接下來,解碼器630在步驟S765讀取差異標(biāo)志,并且步驟S769確定差異標(biāo)志是否被設(shè)置為0。如果差異標(biāo)志被設(shè)置為0,則解碼器630在步驟S771讀取參考域塊(這里,第8短塊)的數(shù)據(jù),將該數(shù)據(jù)恢復(fù)為第4短塊的數(shù)據(jù)B,并將恢復(fù)的數(shù)據(jù)保存在被標(biāo)為標(biāo)號(hào)S740的緩沖器中。在步驟S757,解碼器630檢查下一距離標(biāo)志,并確定該距離標(biāo)志是否指示復(fù)位狀態(tài)。如果距離標(biāo)志指示復(fù)位狀態(tài),則解碼器630在步驟S767使用先前的距離值(距離值=4),并在步驟S765計(jì)算參考域塊(位于第9短塊之前4個(gè)短塊的第5短塊)的位置。接下來,在步驟S769,解碼器630評(píng)價(jià)差異標(biāo)志,并確定差異標(biāo)志是否被設(shè)置為0。由于差異標(biāo)志被設(shè)置為O,因此解碼器630在步驟S771將第5域塊的數(shù)據(jù)B恢復(fù)為第9短塊的數(shù)據(jù),并將該數(shù)據(jù)保存在被標(biāo)為標(biāo)號(hào)S740的緩沖器中。在步驟S757,解碼器630確定下一距離標(biāo)志。如果距離標(biāo)志被設(shè)置為1,則解碼器630在步驟S759計(jì)算將被解壓縮的范圍塊(這里,第IO短塊)的位置,并讀取距離值以在步驟S763計(jì)算參考域塊(這里,位于在第10短塊之前10個(gè)短塊的第O短塊)的位置。接下來,在步驟S769,解碼器630檢查差異標(biāo)志。由于差異標(biāo)志被設(shè)置為O,因此解碼器630在步驟S771使用第O短塊的數(shù)據(jù)A來恢復(fù)第IO短塊的數(shù)據(jù),并將恢復(fù)的數(shù)據(jù)保存在被標(biāo)為標(biāo)號(hào)S740的緩沖器中。在步驟S757,解碼器630檢查下一距離標(biāo)志。如果距離標(biāo)志被設(shè)置為O,則解碼器630在步驟S767讀取先前的距離值(距離值=10),并在步驟S765使用先前的距離值計(jì)算參考域塊(位于第11短塊之前10個(gè)短塊的第l短塊)的位置。接下來,在步驟S769,解碼器630檢查差異標(biāo)志。由于差異標(biāo)志被設(shè)置為01,因此解碼器630在步驟S781從存儲(chǔ)器加載差異值[來自代碼[C:B]的g.tblidx]。接下來,解碼器630在步驟S783從全局表選擇由差異值指示的數(shù)據(jù)(CXORB),通過步驟S785和S787對(duì)該數(shù)據(jù)和選4奪的域塊(第1短塊的B)的數(shù)據(jù)執(zhí)行XOR操作((CXORB)XORB=C),并將恢復(fù)的數(shù)據(jù)C保存在被標(biāo)為標(biāo)號(hào)S740的緩沖器中。否則,如果在步驟S785發(fā)現(xiàn)不存在匹配的索引,則在步驟S789,解碼器630執(zhí)行錯(cuò)誤處理過程。如上所述,解碼器恢復(fù)壓縮器壓縮的數(shù)據(jù),并將恢復(fù)的原始數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中。在存儲(chǔ)裝置中,數(shù)據(jù)按照壓縮格式被存儲(chǔ),并在解壓縮后被讀出以進(jìn)行使用。因此,在寫入模式下,加載的數(shù)據(jù)被壓縮器壓縮然后被存儲(chǔ)在存儲(chǔ)器中,并且在讀取模式下,壓縮數(shù)據(jù)被解壓縮器解壓縮,而不考慮主機(jī)的控制器,從而提高了存儲(chǔ)利用率。終端的配置的框圖。參照?qǐng)D15,移動(dòng)終端包括控制單元800、存儲(chǔ)單元810、壓縮器820、解壓縮器830、射頻(RF)單元840、音頻處理單元850、顯示單元860、鍵輸入單元870以及通信接口單元880。RF單元840負(fù)責(zé)移動(dòng)終端的無線電通信。RF單元840包括用于上變換并放大信號(hào)以進(jìn)行傳輸?shù)腞F發(fā)射器和用于對(duì)通過天線接收的信號(hào)進(jìn)行低噪聲放大和下變換的RF接收器。鍵輸入單元870設(shè)置有用于輸入文字?jǐn)?shù)字?jǐn)?shù)據(jù)的多個(gè)字母數(shù)字鍵和用于執(zhí)行移動(dòng)終端的各種功能的功能鍵。控制單元800控制移動(dòng)終端的操作??刂茊卧?00設(shè)置有數(shù)據(jù)處理單元,具有包括用于對(duì)傳輸信號(hào)編碼的編碼器和用于對(duì)編碼信號(hào)解碼的解碼器;和調(diào)制解調(diào)器,包括用于調(diào)制編碼信號(hào)并將調(diào)制信號(hào)輸出到RF單元840的存儲(chǔ)單元810可設(shè)置有程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。程序存儲(chǔ)器存儲(chǔ)用于執(zhí)行移動(dòng)終端的操作和功能的應(yīng)用程序。數(shù)據(jù)存儲(chǔ)器存儲(chǔ)在應(yīng)用程序的操作期間產(chǎn)生的數(shù)據(jù)。壓縮器820在控制單元800的控制下,在寫入模式下壓縮加載的數(shù)據(jù),并將壓縮數(shù)據(jù)存儲(chǔ)在存儲(chǔ)單元810中。解壓縮器830在控制單元800的控制下,在讀取模式下解壓縮從存儲(chǔ)單元810讀取的數(shù)據(jù)。這里,壓縮器820可被構(gòu)造為如圖8所示,解壓縮器830可被構(gòu)造為如圖12所示。顯示單元860顯示操作狀態(tài)和應(yīng)用程序特定信息。可使用液晶顯示器(LCD)實(shí)現(xiàn)顯示單元860。在此情況下,顯示單元860包括LCD控制器、用于緩沖視頻數(shù)據(jù)的存儲(chǔ)器和LCD裝置。在示例性實(shí)施中,當(dāng)LCD支持觸摸屏功能時(shí),顯示單元860可提供輸入功能,替換或支持鍵輸入單元870。音頻處理單元850處理音頻信號(hào)。通信接口單元880配置由與外部裝置的通信接口。通信接口單元880包括有線通信接口和無線通信接口中的至少一種。無線通信接口可包括藍(lán)牙、Zigbee、超寬帶(UWB)、無線寬帶(WiBro)、無線保真(Wi-Fi)以及其他類型接口中的至少一種。有線通信接口還可包括通用串行總線(USB)、推薦標(biāo)準(zhǔn)(RS)系列通信或其他類型的接口。移動(dòng)終端通過通信接口單元880與外部裝置進(jìn)行數(shù)據(jù)通信。在上面構(gòu)造的移動(dòng)終端中,控制單元800激活用于壓縮將被存儲(chǔ)在存儲(chǔ)單元810中的數(shù)據(jù)的壓縮器820,并激活用于解壓縮從存儲(chǔ)單元810讀取的壓縮數(shù)據(jù)的解壓縮器830。盡管壓縮器820和解壓縮器830被示出為單獨(dú)的部件,但是它們也可被集成到控制單元800或存儲(chǔ)單元810中。壓縮器820和解壓縮器830可被實(shí)現(xiàn)為融合式存儲(chǔ)裝置的一部分。在移動(dòng)終端處理的數(shù)據(jù)包括程序代碼(固件和軟件)和用戶數(shù)據(jù)。此時(shí),因?yàn)榇a可能由重復(fù)的數(shù)據(jù)構(gòu)成,因此本發(fā)明示例性實(shí)施例的壓縮和解壓縮方法可提高存儲(chǔ)利用率。在寫入模式下,控制單元800把將被存儲(chǔ)的數(shù)據(jù)加載到壓縮器,以便壓縮器800壓縮該數(shù)據(jù)并將壓縮的數(shù)據(jù)寫入存儲(chǔ)單元810的特定地址。這里,可通過RF單元840或通信接口單元880接收數(shù)據(jù)??刂茊卧?00控制壓縮器820和存儲(chǔ)單元810,以使接收的數(shù)據(jù)被壓縮器壓縮并被存儲(chǔ)在存儲(chǔ)單元810中。在讀取模式下,控制單元800從存儲(chǔ)單元810讀取壓縮數(shù)據(jù),并控制解壓縮器830解壓縮壓縮數(shù)據(jù)。這里,壓縮數(shù)據(jù)可通過RF單元840或通信接口單元被傳輸,或者被控制單元800處理。盡管已經(jīng)在上文中詳細(xì)描述了本發(fā)明示例性實(shí)施例,但是應(yīng)該清楚地理解,顯示給本領(lǐng)域技術(shù)人員的這里教導(dǎo)的基本發(fā)明構(gòu)思的多種變形和/或修改也落入由權(quán)利要求限定的本發(fā)明的精神和范圍之內(nèi)。如上所述,使用本發(fā)明的數(shù)據(jù)壓縮/解壓縮設(shè)備和方法的存儲(chǔ)器訪問系統(tǒng)按照壓縮格式存儲(chǔ)數(shù)據(jù),并按照解壓縮格式輸出數(shù)據(jù),而不考慮用存儲(chǔ)器訪問系統(tǒng)運(yùn)行的主機(jī)裝置的控制,這導(dǎo)致在不增加主機(jī)的處理負(fù)載的情況下提高存儲(chǔ)利用率。此外,本發(fā)明的數(shù)據(jù)壓縮/解壓縮設(shè)備和方法對(duì)數(shù)據(jù)有效地編碼,從而減少了數(shù)據(jù)加載時(shí)間并提高了解碼速度。權(quán)利要求1、一種數(shù)據(jù)壓縮/解壓縮設(shè)備,該設(shè)備包括:壓縮器,通過在搜索范圍中進(jìn)行前向搜索來計(jì)算域塊到范圍塊的開銷,通過后向搜索選擇具有到范圍塊的最低開銷的域塊作為參考域塊,產(chǎn)生參考域塊的距離信息和差異信息,并將距離信息和差異信息編碼為范圍塊的壓縮數(shù)據(jù);解壓縮器,基于距離信息搜索參考域塊,并參照差異信息將壓縮數(shù)據(jù)解碼為范圍塊的原始數(shù)據(jù)。2、如權(quán)利要求1所述的設(shè)備,其中,壓縮器包括搜索器,通過在搜索范圍中進(jìn)行前向搜索來計(jì)算域塊到范圍塊的開銷,通過后向搜索選擇具有到范圍塊的最低開銷的域塊作為參考域塊,產(chǎn)生參考域塊的距離信息和差異信息,并產(chǎn)生參考域塊的距離信息和差異信息,范圍塊包括將被壓縮的數(shù)據(jù);編碼器,將距離信息和差異信息編碼為范圍塊的壓縮數(shù)據(jù)。3、如權(quán)利要求2所述的設(shè)備,其中,距離信息包括指示范圍塊和參考域塊之間的塊的數(shù)量的距離值和距離標(biāo)志,差異信息包括指示范圍塊和參考域塊之間的差異的差異值和差異標(biāo)志。4、如權(quán)利要求3所述的設(shè)備,其中,壓縮器通過對(duì)范圍塊和參考域塊的數(shù)據(jù)執(zhí)行異或操作計(jì)算差異值,解壓縮器通過對(duì)差異值和參考域塊的數(shù)據(jù)執(zhí)行異或操作來恢復(fù)范圍塊的數(shù)據(jù)。5、如權(quán)利要求4所述的設(shè)備,還包括用于存儲(chǔ)域塊和范圍塊之間的差異值的全局表,其中,壓縮器將范圍塊和域塊之間的差異值注冊(cè)為全局表的索引,并讀取一個(gè)索引作為差異信息的差異值,解壓縮器讀取與全局表的所述索引匹配的差異值,并通過對(duì)差異值和參考域塊的數(shù)據(jù)執(zhí)行異或操作來恢復(fù)范圍塊的數(shù)據(jù)。6、如權(quán)利要求5所述的設(shè)備,其中,當(dāng)壓縮器未能創(chuàng)建全局表的索引時(shí),壓縮器產(chǎn)生異常標(biāo)志,并將異常標(biāo)志和范圍塊的數(shù)據(jù)編碼為范圍塊的壓縮數(shù)據(jù),當(dāng)解壓縮器在差異信息中檢測(cè)到異常塊時(shí),解壓縮器將包括在差異信息中的數(shù)據(jù)解碼為范圍塊的數(shù)據(jù)。7、如權(quán)利要求6所述的設(shè)備,其中,存儲(chǔ)在全局表中的差異值包括通過對(duì)范圍塊和域塊執(zhí)行異或操作獲得的值。8、如權(quán)利要求6所述的設(shè)備,還包括異常處理器,其中,當(dāng)異常標(biāo)志被產(chǎn)生時(shí),異常處理器存儲(chǔ)沒有編碼的范圍塊的數(shù)據(jù)。9、如權(quán)利要求3所述的設(shè)備,還包括用于存儲(chǔ)域塊和范圍塊之間的差異值的全局表,以及用于存儲(chǔ)在壓縮過程期間出現(xiàn)的但不存在于全局表中的差異值的局部表,其中,壓縮器將范圍塊和參考域塊之間的差異值注冊(cè)到全局表和局部表中的至少一個(gè)作為索引,讀取索引作為差異信息的差異值,將在全局表和局部表中不存在的差異值注冊(cè)到局部表,其中,解壓縮器讀取與全局表的索引匹配的差異值,并通過對(duì)差異值和參考域塊的數(shù)據(jù)執(zhí)行異或操作來恢復(fù)范圍塊的數(shù)據(jù)。10、如權(quán)利要求9所述的設(shè)備,其中,當(dāng)壓縮器未能創(chuàng)建表的索引時(shí),壓縮器產(chǎn)生異常標(biāo)志,并將異常標(biāo)志和范圍塊的數(shù)據(jù)編碼為范圍塊的壓縮數(shù)據(jù),當(dāng)解壓縮器在差異信息中檢測(cè)到異常塊時(shí),解壓縮器將包括在差異信息中的數(shù)據(jù)解碼為范圍塊的數(shù)據(jù)。11、如權(quán)利要求IO所述的設(shè)備,其中,通過對(duì)范圍塊和域塊執(zhí)行異或操作來獲得存儲(chǔ)在全局表和局部表中的差異值。12、一種數(shù)據(jù)壓縮方法,該方法包括通過以下操作來壓縮數(shù)據(jù)通過在搜索范圍中進(jìn)行前向搜索來計(jì)算域塊到范圍塊的開銷,通過后向搜索選擇具有到范圍塊的最低開銷的域塊作為參考域塊,產(chǎn)生參考域塊的距離信息和差異信息,并將距離信息和差異信息編碼為范圍塊的壓縮數(shù)據(jù);通過基于距離信息搜索參考域塊并參照差異信息將壓縮數(shù)據(jù)解碼為范圍塊的原始數(shù)據(jù),來解壓縮壓縮數(shù)據(jù)。13、如權(quán)利要求12所述的方法,其中,壓縮數(shù)據(jù)包括距離信息和差異信息,距離信息包括指示范圍塊和參考域塊之間的塊的數(shù)量的距離值,差異信息包括指示范圍塊和參考域塊之間的差異的差異值。14、如權(quán)利要求13所述的方法,其中,壓縮數(shù)據(jù)的步驟包括將范圍塊和域塊之間的差異值注冊(cè)為全局表的索引,并讀取索引之一作為差異信息的差異值;解壓縮壓縮數(shù)據(jù)的步驟包括讀取與全局表的索引匹配的差異值并通過對(duì)差異值和參考域塊的數(shù)據(jù)執(zhí)行異或操作來恢復(fù)范圍塊的數(shù)據(jù)。15、如權(quán)利要求14所述的方法,其中,壓縮數(shù)據(jù)的步驟包括當(dāng)未能創(chuàng)建表全局表的索引時(shí),產(chǎn)生異常標(biāo)志,并將異常標(biāo)志和范圍塊的數(shù)據(jù)編碼為范圍塊的壓縮數(shù)據(jù);解壓縮壓縮數(shù)據(jù)的步驟包括當(dāng)在差異信息中檢測(cè)到異常塊時(shí),將包括在差異信息中的數(shù)據(jù)解碼為范圍塊的數(shù)據(jù)。16、如權(quán)利要求15所述的方法,其中,通過對(duì)范圍塊和域塊執(zhí)行異或操作來獲得存儲(chǔ)在全局表和局部表中的差異值。17、如權(quán)利要求15所述的方法,還包括存儲(chǔ)沒有編碼的范圍塊的數(shù)據(jù)。18、如權(quán)利要求13所述的方法,其中,壓縮數(shù)據(jù)的步驟包括將范圍塊和參考域塊之間的差異值注冊(cè)到全局表和局部表中的至少一個(gè)作為索引,讀取索引作為差異信息的差異值,將在全局表和局部表中不存在的差異值注冊(cè)到局部表;解壓縮壓縮數(shù)據(jù)的步驟包括讀取與全局表的索引匹配的差異值,并通過對(duì)差異值和參考域塊的數(shù)據(jù)執(zhí)行異或操作來恢復(fù)范圍塊的數(shù)據(jù),全局表存儲(chǔ)域塊和范圍塊之間的差異值,局部表存儲(chǔ)在壓縮過程期間出現(xiàn)的但不存在于全局表中的差異值。19、如權(quán)利要求18所述的方法,其中,壓縮數(shù)據(jù)的步驟包括當(dāng)未能創(chuàng)建表的索引時(shí),產(chǎn)生異常標(biāo)志,并將異常標(biāo)志和范圍塊的數(shù)據(jù)編碼為范圍塊的壓縮數(shù)據(jù);解壓縮壓縮數(shù)據(jù)的步驟包括當(dāng)在差異信息中檢測(cè)到異常塊時(shí),將包括在差異信息中的數(shù)據(jù)解碼為范圍塊的數(shù)據(jù)。20、如權(quán)利要求19所述的方法,其中,通過對(duì)范圍塊和域塊執(zhí)行異或操作來獲得存儲(chǔ)在全局表和局部表中的差異值。21、一種移動(dòng)終端的數(shù)據(jù)處理設(shè)備,該設(shè)備包括存儲(chǔ)器;壓縮器,通過在搜索范圍中進(jìn)行前向搜索來計(jì)算域塊到范圍塊的開銷,通過后向搜索選擇具有到范圍塊的最低開銷的域塊作為參考域塊,產(chǎn)生參考域塊的距離信息和差異信息,并將距離信息和差異信息編碼為范圍塊的壓縮數(shù)據(jù);解壓縮器,基于距離信息搜索參考域塊,并參照差異信息將壓縮數(shù)據(jù)解碼為范圍塊的原始數(shù)據(jù);控制器,在寫入模式下,將壓縮器輸出的壓縮數(shù)據(jù)存儲(chǔ)到存儲(chǔ)器中,在讀取模式下,將壓縮數(shù)據(jù)讀取到解壓縮器。全文摘要提供了一種用于提高存儲(chǔ)利用率的數(shù)據(jù)壓縮/解壓縮設(shè)備和方法。本發(fā)明的數(shù)據(jù)壓縮/解壓縮設(shè)備包括壓縮器,通過在搜索范圍中進(jìn)行前向搜索來計(jì)算域塊到范圍塊的開銷,通過后向搜索選擇具有到范圍塊的最低開銷的域塊作為參考域塊,產(chǎn)生參考域塊的距離信息和差異信息,并將距離信息和差異信息編碼為范圍塊的壓縮數(shù)據(jù);解壓縮器,基于距離信息搜索參考域塊,并參照差異信息將壓縮數(shù)據(jù)解碼為范圍塊的原始數(shù)據(jù)。文檔編號(hào)H03M7/30GK101383617SQ20081021292公開日2009年3月11日申請(qǐng)日期2008年9月5日優(yōu)先權(quán)日2007年9月7日發(fā)明者吳成祚,魏榮徹申請(qǐng)人:三星電子株式會(huì)社