實(shí)施例涉及無損數(shù)據(jù)壓縮,且確切地說,涉及使用Lempel-Ziv型無損壓縮與霍夫曼樹的數(shù)據(jù)壓縮。
背景技術(shù):
LZ(Lempel-Ziv)型無損壓縮方案的常規(guī)使用會(huì)利用相對較大塊大小。舉例來說,可使用開始于初始字典,接著是用霍夫曼樹進(jìn)行編碼的LZ型算法壓縮大塊(字符串)的數(shù)據(jù)。使解碼器已知初始字典和霍夫曼樹。對于隨機(jī)存取檢索,可能需要將數(shù)據(jù)在壓縮之前分割成相對較小塊,使得可獨(dú)立地存取和解壓縮每一經(jīng)壓縮數(shù)據(jù)塊。用于在小塊上使用LZ壓縮方法和霍夫曼樹的當(dāng)前方案可由于對存儲(chǔ)可為解碼所需的許多初始詞典和霍夫曼樹的內(nèi)容的存儲(chǔ)器要求而導(dǎo)致非所要開銷。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的實(shí)施例涉及可通過在Lempel-Ziv壓縮方案中在多個(gè)經(jīng)壓縮塊當(dāng)中共享初始詞典和霍夫曼樹提供存儲(chǔ)器資源和其它開銷的減少以及其它特征和益處的系統(tǒng)和方法。
根據(jù)一或多個(gè)示范性實(shí)施例的實(shí)例方法可包含:將數(shù)據(jù)字符串分割成塊集;壓縮所述塊集中的每一塊以產(chǎn)生經(jīng)壓縮塊集,其中所述壓縮可基于初始詞典集和霍夫曼樹集。在一方面中,每一經(jīng)壓縮塊可通過指針與所述初始詞典集中的初始字典和所述霍夫曼樹集中的霍夫曼樹相關(guān)聯(lián),所述初始字典和所述霍夫曼樹用以壓縮所述塊。在一方面中,根據(jù)一或多個(gè)示范性實(shí)施例的實(shí)例方法可進(jìn)一步包含產(chǎn)生經(jīng)壓縮數(shù)據(jù)字符串,所述經(jīng)壓縮數(shù)據(jù)字符串包含所述初始詞典集、所述霍夫曼樹集以及所述經(jīng)壓縮塊和相關(guān)聯(lián)指針。
在一方面中,基于所述初始詞典集的所述壓縮可基于Lempel-Ziv壓縮。
在一方面中,所述壓縮可包含為每一塊選擇所述初始詞典集當(dāng)中的初始字典和所述霍夫曼樹集當(dāng)中的霍夫曼樹,且在一相關(guān)方面中,產(chǎn)生經(jīng)壓縮數(shù)據(jù)字符串可包含參考用于壓縮所述塊的所述初始字典并參考用于壓縮所述塊的所述霍夫曼樹,將標(biāo)頭附加到每一經(jīng)壓縮塊。
在一方面中,所述塊中的至少一者的壓縮可包含:通過Lempel-Ziv壓縮基于所述初始字典壓縮所述塊,以產(chǎn)生經(jīng)Lempel-Ziv壓縮塊;對所述經(jīng)Lempel-Ziv壓縮塊執(zhí)行空運(yùn)行壓縮以產(chǎn)生符號(hào);確定所述所產(chǎn)生的符號(hào)中的每一者的頻率計(jì)數(shù);和基于所述所確定的頻率計(jì)數(shù)選擇所述霍夫曼樹以用于壓縮所述經(jīng)Lempel-Ziv壓縮塊。
根據(jù)一或多個(gè)示范性實(shí)施例的計(jì)算機(jī)程序產(chǎn)品的實(shí)例可包含存儲(chǔ)指令的計(jì)算機(jī)可讀媒體,所述指令在由計(jì)算機(jī)執(zhí)行時(shí)可致使所述計(jì)算機(jī):接收數(shù)據(jù)字符串;將所述數(shù)據(jù)字符串分割成塊集;和壓縮所述塊集中的每一塊以產(chǎn)生經(jīng)壓縮塊集。在一方面中,所述壓縮可基于初始詞典集和霍夫曼樹集。在另一方面中,計(jì)算機(jī)可讀媒體所存儲(chǔ)的指令可包含在由所述計(jì)算機(jī)執(zhí)行時(shí)致使所述計(jì)算機(jī)執(zhí)行以下操作的指令:通過指針使每一塊與所述初始詞典集中的初始字典和所述霍夫曼樹集中的霍夫曼樹相關(guān)聯(lián),所述初始字典和所述霍夫曼樹用以壓縮每一塊。在一方面中,計(jì)算機(jī)可讀媒體所存儲(chǔ)的指令可在由所述計(jì)算機(jī)執(zhí)行時(shí)致使所述計(jì)算機(jī)產(chǎn)生經(jīng)壓縮數(shù)據(jù)字符串,所述經(jīng)壓縮數(shù)據(jù)字符串包含所述初始詞典集、所述霍夫曼樹集以及所述經(jīng)壓縮塊和相關(guān)聯(lián)指針。
根據(jù)一或多個(gè)示范性實(shí)施例的設(shè)備的實(shí)例可包含:處理器;和存儲(chǔ)器,其耦合到所述處理器,且所述存儲(chǔ)器可存儲(chǔ)可由所述處理器讀取和執(zhí)行的指令。在一方面中,所述指令可包含在由所述處理器執(zhí)行時(shí)可致使所述處理器執(zhí)行以下操作的指令:接收數(shù)據(jù)字符串;將所述數(shù)據(jù)字符串分割成塊集;和壓縮所述塊集中的每一塊以產(chǎn)生經(jīng)壓縮塊集。在一方面中,所述指令在由所述處理器執(zhí)行時(shí)致使所述處理器壓縮塊可包含使所述壓縮基于初始詞典集和霍夫曼樹集的指令,以及可通過指針使每一塊與所述初始詞典集中的初始字典和所述霍夫曼樹集的霍夫曼樹相關(guān)聯(lián)的指令,所述初始字典和所述霍夫曼樹用以壓縮所述塊。在一方面中,所述指令可包含在由所述處理器執(zhí)行時(shí)可致使所述處理器產(chǎn)生經(jīng)壓縮數(shù)據(jù)字符串的指令,且所述經(jīng)壓縮數(shù)據(jù)字符串可包含所述初始詞典集、所述霍夫曼樹集以及所述經(jīng)壓縮塊和相關(guān)聯(lián)指針。
根據(jù)一或多個(gè)示范性實(shí)施例的設(shè)備的實(shí)例可包含:用于將數(shù)據(jù)字符串分割成塊集的裝置;和用于壓縮所述塊集中的每一塊以產(chǎn)生經(jīng)壓縮塊集的裝置。在一方面中,所述用于壓縮的裝置可經(jīng)配置以執(zhí)行基于初始詞典集和霍夫曼樹集的所述壓縮,且可經(jīng)配置以產(chǎn)生每一經(jīng)壓縮塊,對于每一經(jīng)壓縮塊具有指向所述初始詞典集中的初始字典和所述霍夫曼樹集中的霍夫曼樹的指針,所述初始字典和所述霍夫曼樹用以壓縮每一塊。根據(jù)一或多個(gè)示范性實(shí)施例的設(shè)備的實(shí)例可包含用于產(chǎn)生經(jīng)壓縮數(shù)據(jù)字符串的裝置,且所述經(jīng)壓縮數(shù)據(jù)字符串可包含所述初始詞典集、所述霍夫曼樹集以及所述經(jīng)壓縮塊和相關(guān)聯(lián)指針。
附圖說明
呈現(xiàn)附圖以輔助描述本發(fā)明的實(shí)施例,且提供所述附圖僅用于實(shí)施例的說明且并非限制實(shí)施例。
圖1說明根據(jù)實(shí)施例的方法和數(shù)據(jù)方案。
圖2是說明根據(jù)實(shí)施例的方法的流程圖。
圖3說明實(shí)施例可應(yīng)用于其中的通信網(wǎng)絡(luò)。
圖4說明用于實(shí)施根據(jù)實(shí)施例的方法的計(jì)算機(jī)系統(tǒng)。
具體實(shí)施方式
在以下針對本發(fā)明特定實(shí)施例的描述和相關(guān)圖式中揭示本發(fā)明的若干方面??稍诓幻撾x本發(fā)明的范圍的情況下設(shè)計(jì)替代性實(shí)施例。另外,將不會(huì)詳細(xì)描述或?qū)⑹÷员景l(fā)明的眾所周知的元件以免混淆本發(fā)明的相關(guān)細(xì)節(jié)。
術(shù)語“本發(fā)明的實(shí)施例”并不要求本發(fā)明的所有實(shí)施例包含所論述的特征、優(yōu)點(diǎn)或操作模式。
本文中所使用的術(shù)語僅僅是為了描述特定實(shí)施例的目的,且并不意在限制本發(fā)明的實(shí)施例。如本文中所使用,除非上下文另外清楚地指示,否則單數(shù)形式“一”和“所述”意圖還包含復(fù)數(shù)形式。應(yīng)進(jìn)一步理解,術(shù)語“包括(comprises、comprising)”及/或“包含(includes、including)”當(dāng)在本文中使用時(shí)指定所陳述的特征、整數(shù)、步驟、操作、元件及/或組件的存在,但并不排除一或多個(gè)其它特征、整數(shù)、步驟、操作、元件、組件及/或其群組的存在或添加。
另外,依據(jù)待由(例如)計(jì)算裝置的元件執(zhí)行的動(dòng)作的序列來描述許多實(shí)施例。將認(rèn)識(shí)到,專用電路(例如,專用集成電路(ASIC))、執(zhí)行程序指令的一或多個(gè)處理器或兩者的組合可執(zhí)行本文中所描述的各種動(dòng)作。另外,可認(rèn)為本文中所描述的動(dòng)作序列完全體現(xiàn)于任何形式的計(jì)算機(jī)可讀存儲(chǔ)媒體內(nèi),所述計(jì)算機(jī)可讀存儲(chǔ)媒體中存儲(chǔ)有對應(yīng)計(jì)算機(jī)指令集,所述計(jì)算機(jī)指令集在被執(zhí)行時(shí)將使得相關(guān)聯(lián)的處理器執(zhí)行本文中所描述的功能性。因此,本發(fā)明的各方面可以數(shù)個(gè)不同形式來體現(xiàn),預(yù)期所有形式落在所主張的標(biāo)的物的范圍內(nèi)。另外,對于本文中所描述的實(shí)施例中的每一者來說,任何此類實(shí)施例的對應(yīng)形式可在本文中被描述為(例如)“經(jīng)配置以(執(zhí)行所描述的動(dòng)作)的邏輯”。
為壓縮和解壓縮具有類似數(shù)據(jù)類型的多個(gè)數(shù)據(jù)塊,實(shí)施例使用在所述塊當(dāng)中共享的單個(gè)初始字典和霍夫曼樹。給定大數(shù)據(jù)字符串分割成塊集,可使用相對較小的初始詞典和霍夫曼樹集,其中在所述塊集的子集當(dāng)中共享初始詞典和霍夫曼樹集中的單個(gè)初始字典和單個(gè)霍夫曼樹。
對于一實(shí)施例,將明文數(shù)據(jù)分割成塊集,其中使用選自相對較小的初始詞典和霍夫曼樹集的初始字典和霍夫曼樹壓縮每一塊。參考解碼所需的特定初始字典并參考解碼所需的特定霍夫曼樹,將標(biāo)頭附加到每一經(jīng)壓縮塊。初始詞典與霍夫曼樹可配成對以使得單個(gè)參考可指包括初始字典和配對的霍夫曼樹的對。初始詞典和霍夫曼樹集可作為經(jīng)壓縮或未經(jīng)壓縮標(biāo)頭附加到經(jīng)壓縮塊。結(jié)果為包括經(jīng)壓縮數(shù)據(jù)和標(biāo)頭的字符串,其具有將任何特定經(jīng)壓縮塊獨(dú)立于其它經(jīng)壓縮塊進(jìn)行解碼所需的所有信息。
圖1說明根據(jù)實(shí)施例的用于壓縮數(shù)據(jù)字符串102的方案100。待壓縮的數(shù)據(jù)是數(shù)據(jù)字符串102,其劃分成標(biāo)記為104A、104B、104C、104D、104E、104F和104G的塊。在實(shí)踐中,塊大小取決于系統(tǒng)的應(yīng)用,且表示存取經(jīng)壓縮數(shù)據(jù)時(shí)的給定粒度。舉例來說,數(shù)據(jù)字符串102可表示可執(zhí)行代碼,其中每一塊存儲(chǔ)為經(jīng)壓縮可執(zhí)行代碼塊且在需要時(shí)從存儲(chǔ)器檢索,且接著可將所檢索的經(jīng)壓縮塊獨(dú)立于其它塊進(jìn)行解壓縮。結(jié)果可為所產(chǎn)生的可執(zhí)行代碼塊,且在執(zhí)行代碼時(shí)或期間,可檢索并解壓縮另一經(jīng)壓縮可執(zhí)行代碼塊。
用于基于LZ的壓縮的n個(gè)初始詞典的集合形象地表示為標(biāo)記106的四個(gè)表數(shù)據(jù)結(jié)構(gòu),m個(gè)霍夫曼樹的集合形象地表示為標(biāo)記為108的四個(gè)表數(shù)據(jù)結(jié)構(gòu)。當(dāng)壓縮塊時(shí),選擇適合的初始字典和霍夫曼樹執(zhí)行所述壓縮。如在步驟110中所指示,使用LZ型壓縮。除對特定塊執(zhí)行LZ壓縮之外,還使用所選擇的用于所述塊的特定霍夫曼樹進(jìn)一步壓縮所得位。Lempel-Ziv和霍夫曼樹壓縮和解壓縮方案是眾所周知的且無需在描述實(shí)施例時(shí)詳細(xì)論述。
由壓縮塊104A、104B、104C、104D、104E、104F和104G產(chǎn)生的塊分別為塊104A'、104B'、104C'、104D'、104E'、104F'和104G'。這些塊是數(shù)據(jù)字符串112的部分,所述數(shù)據(jù)字符串還包含霍夫曼樹和初始詞典。
一或多個(gè)指針對應(yīng)于每一塊104A'、104B'、104C'、104D'、104E'、104F'和104G'以指示哪個(gè)初始字典和霍夫曼樹將用于解壓縮。此類指針可占用塊104A'、104B'、104C'、104D'、104E'、104F'和104G'內(nèi)的字段,例如標(biāo)頭,或其可占用數(shù)據(jù)字符串112的其它字段。舉例來說,塊114包含已根據(jù)字段116所指向的初始字典和字段118所指向(識(shí)別)的霍夫曼樹經(jīng)壓縮的數(shù)據(jù)。因此,數(shù)據(jù)字符串112包含解壓縮存儲(chǔ)于任何特定塊104A'、104B'、104C'、104D'、104E'、104F'和104G'中的數(shù)據(jù)所需的所有信息。
給定待壓縮的數(shù)據(jù),可以啟發(fā)法形成初始詞典和霍夫曼樹集。啟發(fā)法可用以找到初始詞典的數(shù)目和其內(nèi)容兩者。對于由LZ型算法使用特定初始字典壓縮的特定塊,可通過執(zhí)行空運(yùn)行(dry-run)壓縮獲得每一所得符號(hào)的頻率計(jì)數(shù)。啟發(fā)法可用以找到用以壓縮塊的霍夫曼樹集。
圖2說明根據(jù)上文所描述的實(shí)施例的方法。將數(shù)據(jù)字符串分割成塊集(202)??墒褂脝l(fā)法確定初始詞典集(204)以及霍夫曼樹集(206)。使用所述詞典和霍夫曼樹壓縮每一塊(208)。舉例來說,可將塊集分割成子集,其中每一子集可與特定初始字典和霍夫曼樹相關(guān)聯(lián)。也就是說,指向(或指示)初始詞典集中的特定初始字典和霍夫曼樹集中的特定霍夫曼樹的指針(或多個(gè)指針)與每一塊子集相關(guān)聯(lián)(210)。詞典集和霍夫曼樹集與經(jīng)壓縮塊子集(以及其指針)包含在一起以提供經(jīng)壓縮數(shù)據(jù)字符串,可在執(zhí)行壓縮方案的反向過程之后從經(jīng)壓縮數(shù)據(jù)字符串獲得原始?jí)K(212)。
圖3說明實(shí)施例可應(yīng)用于其中的無線通信系統(tǒng)。圖3說明包括基站304A、304B和304C的無線通信網(wǎng)絡(luò)302。圖3展示標(biāo)記為306的通信裝置,其可為移動(dòng)通信裝置(例如蜂窩式電話、平板計(jì)算機(jī)),或適用于蜂窩式電話網(wǎng)絡(luò)的一些其它種類的通信裝置(例如計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng))。通信裝置306無需是移動(dòng)的。在圖3的特定實(shí)例中,通信裝置306位于與基站304C相關(guān)聯(lián)的小區(qū)內(nèi)。箭頭308和310分別用圖形表示上行鏈路信道和下行鏈路信道,通信裝置306通過所述上行鏈路信道和下行鏈路信道與基站304C通信。
舉例來說,可在與通信裝置306或基站304C或兩者相關(guān)聯(lián)的數(shù)據(jù)處理系統(tǒng)中使用實(shí)施例。圖3僅說明其中可使用本文中描述的實(shí)施例的許多應(yīng)用中的一個(gè)應(yīng)用。
實(shí)施例可包含非暫時(shí)性計(jì)算機(jī)可讀媒體,其存儲(chǔ)有指令,所述指令在由處理器(或多個(gè)處理器)執(zhí)行時(shí)致使系統(tǒng)執(zhí)行根據(jù)先前所描述的實(shí)施例的方法。舉例來說,在圖4的計(jì)算機(jī)系統(tǒng)中,可執(zhí)行指令可存儲(chǔ)于存儲(chǔ)器402中。存儲(chǔ)器402可為存儲(chǔ)器層次的部分。存儲(chǔ)于存儲(chǔ)器402中的指令可由處理器404執(zhí)行,其中處理器404和存儲(chǔ)器402借助于通信路徑408通信。舉例來說,通信路徑408可實(shí)現(xiàn)為總線。額外組件可耦合到處理器404和存儲(chǔ)器402,其中為了易于說明,僅展示一個(gè)其它組件(顯示器406)。
所屬領(lǐng)域的技術(shù)人員應(yīng)了解,可以使用多種不同技術(shù)和技藝中的任一者來表示信息和信號(hào)。舉例來說,可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或其任何組合來表示在整個(gè)上文描述中可能提及的數(shù)據(jù)、指令、命令、信息、信號(hào)、位、符號(hào)和碼片。
此外,所屬領(lǐng)域的技術(shù)人員將了解,結(jié)合本文中所揭示的實(shí)施例而描述的各種說明性邏輯塊、模塊、電路和算法步驟可實(shí)施為電子硬件、計(jì)算機(jī)軟件或兩者的組合。為清晰地說明硬件與軟件的此可互換性,上文已大體就其功能性描述了各種說明性組件、塊、模塊、電路和步驟。此功能性是實(shí)施為硬件還是軟件取決于特定應(yīng)用及施加于整個(gè)系統(tǒng)的設(shè)計(jì)約束。熟練的技術(shù)人員可針對每一特定應(yīng)用以不同方式來實(shí)施所描述的功能性,但此類實(shí)施方案決策不應(yīng)被解釋為會(huì)引起脫離本發(fā)明的范圍。
結(jié)合本文中所揭示的實(shí)施例而描述的方法、序列和/或算法可直接以硬件、以由處理器執(zhí)行的軟件模塊或以兩者的組合體現(xiàn)。軟件模塊可駐留在RAM存儲(chǔ)器、快閃存儲(chǔ)器、ROM存儲(chǔ)器、EPROM存儲(chǔ)器、EEPROM存儲(chǔ)器、寄存器、硬盤、可換磁盤、CD-ROM,或此項(xiàng)技術(shù)中已知的任何其它形式的存儲(chǔ)媒體中。示范性存儲(chǔ)媒體耦合到處理器,使得處理器可從存儲(chǔ)媒體讀取信息并且將信息寫入到存儲(chǔ)媒體。在替代方案中,存儲(chǔ)媒體可集成到處理器。
因此,本發(fā)明的實(shí)施例可包含體現(xiàn)用于在Lempel-Ziv壓縮方案在多個(gè)經(jīng)壓縮塊當(dāng)中共享初始詞典和霍夫曼樹的方法的計(jì)算機(jī)可讀媒體。因此,本發(fā)明不限于所說明的實(shí)例,且任何用于執(zhí)行本文中所描述的功能性的裝置包含于本發(fā)明的實(shí)施例中。
雖然前述揭示內(nèi)容展示本發(fā)明的說明性實(shí)施例,但應(yīng)注意,在不脫離如所附權(quán)利要求書界定的本發(fā)明的范圍的情況下,可在其中做出各種改變及修改。無需按任何特定次序來執(zhí)行根據(jù)本文中所述的本發(fā)明的實(shí)施例的方法權(quán)利要求項(xiàng)的功能、步驟和/或動(dòng)作。此外,盡管可能以單數(shù)形式描述或主張本發(fā)明的元件,但除非明確陳述限于單數(shù)形式,否則也涵蓋復(fù)數(shù)形式。