亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于數(shù)據(jù)壓縮的多模式編碼的制作方法

文檔序號:6768864閱讀:347來源:國知局
專利名稱:用于數(shù)據(jù)壓縮的多模式編碼的制作方法
技術(shù)領(lǐng)域
本公開描述了關(guān)于數(shù)據(jù)壓縮技術(shù)的系統(tǒng)、裝置和技術(shù)。
背景技術(shù)
無損數(shù)據(jù)壓縮是在壓縮過程期間維持原始數(shù)據(jù)的一種數(shù)據(jù)壓縮類型。因此,使用 無損數(shù)據(jù)壓縮算法解壓縮或解碼被壓縮的編碼數(shù)據(jù)允許重建原始數(shù)據(jù)。這不同于近似原始 數(shù)據(jù)而導(dǎo)致一些數(shù)據(jù)損失的有損數(shù)據(jù)壓縮。當(dāng)偏離原始數(shù)據(jù)對于特定的應(yīng)用是關(guān)鍵的時 候,無損數(shù)據(jù)壓縮被使用。常規(guī)的無損數(shù)據(jù)壓縮算法常常為輸入數(shù)據(jù)生成統(tǒng)計(jì)模型,并使用 所生成的模型來將輸入數(shù)據(jù)映射為比特序列,以便使得重復(fù)的數(shù)據(jù)生成比非重復(fù)的數(shù)據(jù)更 短的輸出。

發(fā)明內(nèi)容
本公開包括關(guān)于有效的無損數(shù)據(jù)壓縮的裝置、系統(tǒng)和技術(shù)。編碼器可被配置為在 兩個編碼模式之間轉(zhuǎn)換以增強(qiáng)數(shù)據(jù)壓縮。根據(jù)所描述的系統(tǒng)和技術(shù)的一個方面,裝置包括 存儲模塊以存儲數(shù)據(jù)。該存儲模塊包括第一緩沖器部分以存儲數(shù)據(jù)的編碼的符號,并包括 第二個緩沖器部分以存儲將被編碼的數(shù)據(jù)的符號。該裝置包括編碼器以比較存儲在第二個 緩沖器部分中的符號和存儲在第一個緩沖器部分中的編碼的符號以及壓縮該數(shù)據(jù)。該編碼 器被配置為運(yùn)行在第一編碼模式,以用相應(yīng)的碼字編碼在第二緩沖器部分中的符號,直到 編碼器檢測到在第二緩沖器部分中的、與第一緩沖器部分中的編碼符號相匹配的重復(fù)的符 號模型(pattern)。另外,響應(yīng)于編碼器檢測到重復(fù)的符號模型,編碼器被配置為轉(zhuǎn)換為運(yùn) 行在第二編碼模式。在第二編碼模式期間,編碼器計(jì)數(shù)符號模型在第二緩沖器部分中重復(fù) 的次數(shù),并輸出計(jì)數(shù)的數(shù)字。此外,編碼器被配置為當(dāng)編碼器檢測到第二緩沖器中的符號停 止重復(fù)時轉(zhuǎn)換回第一編碼模式。實(shí)施可以可選擇地包括一個或多個下列特征。第一編碼模式可包括Lempel-Ziv 編碼模式。Lempel-Ziv編碼模式可包括Lempel-Ziv-Storer-Szymanski (LZSS)編碼模式。 第二編碼模式可包括行程編碼(run-length encoding,RLE)模式。編碼器被配置為響應(yīng)于 編碼器檢測到重復(fù)的符號模型而輸出轉(zhuǎn)義碼(escape code),轉(zhuǎn)義碼包括單一出現(xiàn)的碼字。 轉(zhuǎn)義碼可包括標(biāo)記,其指示轉(zhuǎn)義碼中的下一個數(shù)據(jù)是字面量(literal)還是偏移量-長度 對;偏移量,其代表第二緩沖器部分中的重復(fù)的符號模型在第一緩沖器部分中的匹配的位 置;和長度,其代表第二緩沖器部分的大小。轉(zhuǎn)義碼可包括兩次連續(xù)出現(xiàn)的碼字。編碼器可 被配置為用在第一編碼模式期間被生成的碼字更新第一緩沖器部分。另外,編碼器可被配置為在第二編碼模式期間更新第一個緩沖器部分一次。編碼器可被配置為在輸出轉(zhuǎn)義碼之 后,從模型第一次出現(xiàn)時開始,計(jì)數(shù)符號模型在第二緩沖器中重復(fù)的次數(shù)。所描述的系統(tǒng)和技術(shù)可實(shí)施在電子電路、計(jì)算機(jī)硬件、固件、軟件或他們的組合 中,例如在此說明書中所公開的結(jié)構(gòu)裝置及其結(jié)構(gòu)等效物中。這可包括體現(xiàn)程序的至少一 個計(jì)算機(jī)可讀介質(zhì),所述程序可操作以導(dǎo)致一個或多個數(shù)據(jù)處理裝置(例如,包括可編程 處理器的信號處理設(shè)備)執(zhí)行所描述的操作。因此,程序?qū)嵤┛筛鶕?jù)所公開的方法、系統(tǒng)或 裝置實(shí)現(xiàn),且裝置實(shí)施可根據(jù)所公開的系統(tǒng)、計(jì)算機(jī)可讀介質(zhì)或方法實(shí)現(xiàn)。類似地,方法實(shí) 施可根據(jù)所公開的系統(tǒng)、計(jì)算機(jī)可讀介質(zhì)或裝置實(shí)現(xiàn),且系統(tǒng)實(shí)施可根據(jù)所公開的方法、計(jì) 算機(jī)可讀介質(zhì)或裝置實(shí)現(xiàn)。例如,下面所公開的實(shí)施方式可被實(shí)施在多種系統(tǒng)或裝置中,包括但不限于,專用 數(shù)據(jù)處理裝置(例如,無線接入點(diǎn)、遠(yuǎn)程環(huán)境監(jiān)測器、路由器、交換機(jī)、計(jì)算機(jī)系統(tǒng)組件、介 質(zhì)接入單元)、移動數(shù)據(jù)處理裝置(例如,無線客戶端、蜂窩電話、個人數(shù)字助理(PDA)、移 動計(jì)算機(jī)、數(shù)字?jǐn)z像機(jī))、通用數(shù)據(jù)處理裝置(例如,微型計(jì)算機(jī)、服務(wù)器、大型機(jī)、巨型計(jì)算 機(jī))或這些的組合。因此,根據(jù)所描述的系統(tǒng)和技術(shù)的另一個方面,系統(tǒng)可包括數(shù)據(jù)處理設(shè)備,其編 碼數(shù)據(jù)以生成壓縮的數(shù)據(jù)。該數(shù)據(jù)處理設(shè)備可包括數(shù)據(jù)緩沖器以接收輸入數(shù)據(jù)。數(shù)據(jù)緩 沖器可包括搜索緩沖器以緩沖輸入數(shù)據(jù)的編碼的符號,并可包括先行緩沖器(look-ahead buffer)以緩沖將被編碼的輸入數(shù)據(jù)的符號。數(shù)據(jù)處理設(shè)備可包括編碼器,以比較緩沖在先 行緩沖器中的符號和緩沖在搜索緩沖器中的編碼符號以及壓縮輸入數(shù)據(jù)。編碼器被配置為 運(yùn)行在第一編碼模式,以用相應(yīng)的碼字編碼在先行緩沖器中的符號,直到編碼器檢測到在 先行緩沖器中的、與搜索緩沖器中的編碼符號匹配的重復(fù)的符號模型。響應(yīng)于檢測到重復(fù) 的符號模型,編碼器轉(zhuǎn)換為運(yùn)行在第二編碼模式,以計(jì)數(shù)符號模型在先行緩沖器中重復(fù)的 次數(shù),并輸出所計(jì)數(shù)的數(shù)字。編碼器被配置為當(dāng)編碼器檢測到在第二緩沖器中的符號停止 重復(fù)時轉(zhuǎn)換回第一編碼模式。實(shí)施可以可選擇地包括一個或多個下列特征。第一編碼模式可包括Lempel-ZiV 編碼模式。Lempel-Ziv編碼模式可包括Lempel-Ziv-Storer-Szymanski (LZSS)編碼模式。 第二編碼模式可包括行程編碼(RLE)模式。編碼器被配置為響應(yīng)于編碼器檢測到重復(fù)的符 號模型而輸出轉(zhuǎn)義碼。轉(zhuǎn)義碼可包括單一出現(xiàn)的碼字。轉(zhuǎn)義碼可包括標(biāo)記,其指示轉(zhuǎn)義碼 中的下一個數(shù)據(jù)是字面量還是偏移量-長度對;偏移量,其代表搜索緩沖器的大小減去在 先行緩沖器中重復(fù)的符號模型的長度的在第一緩沖器中的匹配的位置的中的重復(fù)的符號 模型在搜索緩沖器中的匹配的位置;和長度,其代表先行緩沖器的大小。轉(zhuǎn)義碼可包括兩 次連續(xù)出現(xiàn)的碼字。編碼器可被配置為用在第一編碼模式期間被生成的碼字更新搜索緩沖 器;在第二編碼模式期間更新搜索緩沖器一次;以及在輸出轉(zhuǎn)義碼之后從模型第一出現(xiàn)時 開始,計(jì)數(shù)符號模型在第二緩沖器中重復(fù)的次數(shù)。根據(jù)所描述的系統(tǒng)或技術(shù)的另一個方面,由數(shù)據(jù)處理設(shè)備所執(zhí)行的方法可包括一 個或多個下列特征。由數(shù)據(jù)處理設(shè)備所執(zhí)行的方法包括在存儲模塊中存儲數(shù)據(jù)。存儲數(shù)據(jù) 包括在存儲模塊的第一緩沖器部分存儲數(shù)據(jù)的編碼的符號,以及在存儲模塊的第二緩沖器 部分存儲將被編碼的數(shù)據(jù)的符號。該方法包括壓縮數(shù)據(jù)。壓縮數(shù)據(jù)包括比較存儲在第二緩 沖器部分中的符號和存儲在第一緩沖器部分中的編碼的符號。壓縮數(shù)據(jù)包括將編碼器運(yùn)行在第一模式,以用相應(yīng)的碼字編碼在第二緩沖器部分中的符號,直到檢測到在第二緩沖器部分中的、與第一緩沖器部分中的編碼的符號匹配的重復(fù)的符號模型。響應(yīng)于檢測到重復(fù) 的符號模型,編碼器運(yùn)行在第二編碼模式。運(yùn)行在第二編碼模式包括計(jì)數(shù)符號模型在第二 緩沖器部分中重復(fù)的次數(shù),并輸出所計(jì)數(shù)的數(shù)字。另外,該方法包括當(dāng)檢測到第二緩沖器中 的符號停止重復(fù)時轉(zhuǎn)換回第一編碼模式。實(shí)施可以可選擇地包括一個或多個下列特征。第一編碼模式可包括Lempel-Ziv編碼模式。Lempel-Ziv編碼模式可包括Lempel-Ziv-Storer-Szymanski (LZSS)編碼模式。 第二編碼模式可包括行程編碼(RLE)模式。該方法可包括響應(yīng)于檢測到重復(fù)的符號模型而 輸出轉(zhuǎn)義碼。轉(zhuǎn)義碼可包括單一出現(xiàn)的碼字。轉(zhuǎn)義碼可包括標(biāo)記,其指示轉(zhuǎn)義碼中的下一 個數(shù)據(jù)是字面量還是偏移量-長度對;偏移量,其代表第二緩沖器部分中的重復(fù)的符號模 型在第一緩沖器部分中的匹配的位置;和長度,其代表第二緩沖器部分的大小。轉(zhuǎn)義碼可包 括兩次連續(xù)出現(xiàn)的碼字。該方法可包括用在第一編碼模式期間被生成的每個碼字更新第一 緩沖器部分;和在第二編碼模式期間更新第一緩沖器部分一次。該方法包括在輸出轉(zhuǎn)義碼 之后,從模型第一次出現(xiàn)時開始,計(jì)數(shù)符號模型在第二緩沖器中重復(fù)的次數(shù)。所描述的裝置、系統(tǒng)和技術(shù)可導(dǎo)致一個或多個下列優(yōu)點(diǎn)。改善的無損壓縮過程可 被實(shí)施,以結(jié)合Lempel-Ziv編碼和行程編碼的優(yōu)點(diǎn)。編碼器可被配置為在兩個編碼模式如 Lempel-Ziv編碼和行程編碼之間轉(zhuǎn)換。在第一編碼模式期間,編碼器可運(yùn)行在Lempel-Ziv 模式,以使用盡可能少的比特數(shù)編碼非重復(fù)的符號。例如,第一編碼模式可包括Lempel-Zi v-Storer-Szymanski (LZSS)編碼模式,以使用包括標(biāo)記比特和字面量的碼字來編碼非重復(fù) 的符號。當(dāng)重復(fù)的符號模型被檢測到,編碼器可轉(zhuǎn)換為運(yùn)行在第二編碼模式,以計(jì)數(shù)模型重 復(fù)的次數(shù)。編碼器可延遲更新緩沖器,直到模型停止重復(fù)且所計(jì)數(shù)的數(shù)字被獲得。一個或多個實(shí)施的細(xì)節(jié)在下面的附圖和描述中被闡述。從描述和附圖以及從權(quán)利 要求,其他特征、目標(biāo)和優(yōu)點(diǎn)可以是明顯的。


圖1是用于執(zhí)行Lempel-ZiV77(LZ77)編碼的示例性裝置的框圖。圖 2 是比較 LZ77 編碼和 Lempel-Ziv-Storer-Szymanski (LZSS)編碼的框圖。圖3是示出用于執(zhí)行行程編碼的示例性裝置的框圖。圖4是用于執(zhí)行帶有行程編碼的Lempel-Ziv壓縮的示例性裝置的框圖。圖5是示出使用碼字作為轉(zhuǎn)義碼的示例性編碼過程的框圖。圖6是示出使用碼字作為轉(zhuǎn)義碼的另一個示例性編碼過程的框圖。圖7是示出使用碼字作為轉(zhuǎn)義碼的第三個示例性編碼過程的框圖。圖8是示出使用碼字作為轉(zhuǎn)義碼的第四個示例性編碼過程的框圖。圖9是示出使用兩個相同碼字作為轉(zhuǎn)義碼的示例性編碼過程的框圖。圖10是比較LZSS編碼器和包括LZSS和RLE模式的編碼器的壓縮性能的圖表。圖11是比較使用兩個不同的轉(zhuǎn)義碼類型的編碼器的壓縮性能的圖表。圖12A、12B、12C是示出用于編碼數(shù)據(jù)文件的符號的示例性過程的過程流程圖。圖13是用于執(zhí)行有效的無損數(shù)據(jù)壓縮的示例性系統(tǒng)的框圖。在不同的附圖中,類似的參考符號表示類似的元件。
具體實(shí)施例方式這里所描述的系統(tǒng)、裝置和技術(shù)可被實(shí)施作為一個或多個設(shè)備,例如一個或多個 集成電路(IC)設(shè)備(例如,數(shù)據(jù)通信設(shè)備,如網(wǎng)絡(luò)設(shè)施;計(jì)算設(shè)備,如計(jì)算機(jī)、服務(wù)器、筆記 本電腦和智能電話機(jī);和聯(lián)網(wǎng)的數(shù)據(jù)存儲設(shè)備,如磁盤存儲設(shè)備、磁帶存儲驅(qū)動器等)。例 如,本說明書中所描述的系統(tǒng)和技術(shù)可被實(shí)施以執(zhí)行有效的無損數(shù)據(jù)壓縮,所述有效的無 損數(shù)據(jù)壓縮減少了與緩沖器更新相關(guān)的關(guān)鍵路徑。圖1是用于執(zhí)行Lempel-ZiV77 (LZ77)編碼的示例性裝置的框圖。LZ77編碼是一 種無損數(shù)據(jù)壓縮技術(shù)。裝置100包括LZ77編碼器110,其與存儲模塊如緩沖器120通信。 緩沖器120可包括兩個結(jié)構(gòu)搜索緩沖器122和先行緩沖器124。搜索緩沖器122可存儲 所需要的數(shù)據(jù)的編碼的符號,而先行緩沖器124可存儲將被編碼的數(shù)據(jù)的進(jìn)入的符號。搜 索緩沖器122和先行緩沖器124可被實(shí)施作為獨(dú)立的緩沖器或作為具有多個部分的單一緩 沖器。LZ77編碼器110可比較先行緩沖器124中的符號和搜索緩沖器122中的編碼的符 號以識別具有最長匹配的符號模型130。LZ77編碼器110可用碼字140編碼所識別的符號 模型。在圖1所示的示例中,先行緩沖器124中的符號模型“a b r a r a" 130被識別,以 匹配搜索緩沖器122中的編碼的符號“a b r a r a” 128。搜索緩沖器122中的被匹配的 編碼符號模型可延伸進(jìn)入先行緩沖器124。LZ77編碼器110可生成碼字140以包括如下三個元素〈偏移量,長度,字符〉。匹 配指針126指向被匹配的編碼符號模型128的起始位置。偏移量比特代表匹配指針126 (例 如,模型的開始)離搜索緩沖器122中的第一個符號的距離。長度比特代表搜索緩沖器122 中被匹配的編碼符號模型128的長度。如上所述,長度可延伸進(jìn)入先行緩沖器124。字符 字節(jié)代表先行緩沖器124中的下一個未被匹配的字符或符號。因此,匹配的符號模型“a b r a r a c”可被用碼字<1,6,‘C’ >編碼。偏移量比特‘1’表示模型的開始離搜索緩沖器 122中的第一符號1字節(jié)遠(yuǎn)。長度字節(jié)‘6’表示被匹配的模型的長度是6個符號。字符字 節(jié)‘C’表示下一個未被匹配的符號是‘C’。圖 2 是比較 LZ77 編碼和 Lempel-Ziv-Storer-Szymanski (LZSS)編碼的框圖 200。 LZSS編碼是LZ77編碼的一種變式。LZSS編碼可排除三元素碼字被用來編碼單一字符或符 號的情況。例如,符號‘C’未出現(xiàn)在緩沖器120的搜索緩沖器122中。LZ77編碼器110用 使用多于8比特的碼字<0,0,‘C’ >230來編碼符號‘C’。與LZ77編碼器110所使用的三元素碼字相比,LZSS編碼器210可用二元素碼字 <0,c>240編碼相同的符號‘C’。LZSS碼字240的第一元素是1比特標(biāo)記,用來指示下一塊 數(shù)據(jù)是字面量(例如,字節(jié))還是偏移量-長度對。取決于1比特標(biāo)記的值,LZSS碼字240 的第二元素或者是字面量(例如,字節(jié))或者是偏移量-長度對。例如,當(dāng)LZSS編碼器未 在搜索緩沖器122中找到當(dāng)前符號(例如,‘C’)的匹配時,LZSS編碼器210輸出包括元素 <0,字符〉的LZSS碼字。0標(biāo)記比特表示未找到匹配。然后,第二個元素是字面量(例如, 字節(jié)),在這種情況下是符號‘C’。編碼的LZSS碼字<0,c>是9比特長。當(dāng)LZSS編碼器210在搜索緩沖器122中識別到當(dāng)前符號的匹配時,LZSS編碼器 210輸出包括元素<1,偏移量,長度 > 的LZSS碼字。標(biāo)記比特值‘1’表示先行緩沖器124中的符號模型與搜索緩沖器122中的同樣的編碼符號模型匹配。元素‘長度’代表匹配的符號模型的長度,而元素‘偏移量’代表在搜索緩沖器122中被匹配的符號模型的起始位置。圖3是示出用于執(zhí)行行程編碼(RLE)的示例性裝置的框圖。RLE是另一種形式的 無損數(shù)據(jù)壓縮。裝置300包括行程編碼器(RLE) 310,其與緩沖器320通信以編碼存儲在緩 沖器320中的符號。RLE310可用包括單一的符號或模型和計(jì)數(shù)(例如,行程)的RLE碼字 330取代重復(fù)符號的串或模型。模型可能是m字節(jié)長,其中1。計(jì)數(shù)表示符號模型被重 復(fù)的次數(shù)(不要與符號的總數(shù)混淆)。例如,圖3示出了緩沖器320,其存儲了在初始出現(xiàn) 后重復(fù)了 5次的符號‘a(chǎn)’的運(yùn)行(rim)、初始出現(xiàn)后重復(fù)了 3次的符號‘b’的運(yùn)行、和初始 出現(xiàn)后重復(fù)了 2次的符號‘C,的運(yùn)行。RLE310可編碼符號的運(yùn)行為<a5b3c2>。另外,RLE310可檢測不同的重復(fù)的符號模型。例如,當(dāng)輸入數(shù)據(jù)流包括‘a(chǎn) b a b ababbbbbcbc,,RLE310可編碼這些符號為<ab3b4cbc>。此外,輸入流可使用其 他RLE編碼解釋來編碼。圖4是用于執(zhí)行帶有行程編碼的Lempel-Ziv壓縮的示例性裝置的框圖。裝置400 包括存儲模塊,如緩沖器120,其與編碼器410通信。緩沖器120包括搜索緩沖器122以 存儲輸入數(shù)據(jù)的編碼的符號,并包括先行緩沖器124以存儲將被編碼的數(shù)據(jù)的符號的進(jìn)入 流。編碼器410可包括Lempel-Ziv編碼模式單元412、RLE模式單元414和計(jì)數(shù)器416。在運(yùn)行期間,通過在Lempel-Ziv編碼模式單元412和RLE模式單元414之間轉(zhuǎn) 換,編碼器410可運(yùn)行在兩個不同的編碼模式。Lempel-Ziv編碼模式單元412可實(shí)施任何 LZ編碼模式,如LZSS編碼模式。例如,編碼器410可最初運(yùn)行為使用LZSS編碼模式單元 412來編碼先行緩沖器124中的、與搜索緩沖器122中的編碼符號不匹配的符號。通過使用 LZSS編碼模式單元412,編碼器410可使用兩個元素碼字而非LZ77編碼器所使用的三個元 素碼字來編碼非匹配的符號。當(dāng)編碼器410識別了先行緩沖器124中的、與搜索緩沖器122中的編碼的符號匹 配的符號模型時,編碼器410可輸出轉(zhuǎn)義碼并轉(zhuǎn)換到RLE模式單元414。當(dāng)使用RLE模式單 元414時,計(jì)數(shù)器416可被用來計(jì)數(shù)符號模型在先行緩沖器124中重復(fù)的次數(shù)。在轉(zhuǎn)義碼 被輸出之后,計(jì)數(shù)器416可從符號模型第一次出現(xiàn)時開始,計(jì)數(shù)符號模型重復(fù)的次數(shù)。當(dāng)重 復(fù)的符號模型的運(yùn)行結(jié)束時,編碼器410可轉(zhuǎn)換回LZSS編碼模式單元412以編碼非匹配的 符號。在存儲類型的數(shù)據(jù)文件中,這種二進(jìn)制可執(zhí)行文件和計(jì)算機(jī)生成文件,如目標(biāo)文 件、數(shù)據(jù)庫文件等,0的運(yùn)行可能頻繁發(fā)生。通過結(jié)合RLE模式和LZSS編碼模式,可實(shí)現(xiàn)比 利用單獨(dú)的任一編碼方案的可能的更進(jìn)一步的壓縮。表示從使用Lempel-Ziv編碼模式單元412轉(zhuǎn)換到RLE模式單元414的轉(zhuǎn)義碼可 使用不同類型的轉(zhuǎn)義碼實(shí)現(xiàn)。例如,包括下列元素的自定義碼字可被使用〈標(biāo)記,偏移量, 長度 >。標(biāo)記、偏移量、長度元素與以上關(guān)于LZ77和LZSS描述的那些類似。然而,某些限制可被應(yīng)用到碼字的三個元素。例如,長度元素可等于先行緩沖器的 大小。另外,偏移量元素可大于或等于搜索緩沖器大小減去先行緩沖器大小的值。例如,當(dāng)搜索緩沖器大小是128字節(jié)且先行緩沖器大小是8字節(jié)時,下列碼字可被 用作轉(zhuǎn)義碼<1,120,8>以代表先行緩沖器中的一個周期性的8字節(jié)的模型(見下面圖5);
<1,121,8>以代表先行緩沖器中的一個周期性的7字節(jié)的模型(見下面圖9);<1,122,8>以代表先行緩沖器中的一個周期性的6字節(jié)的模型;<1,123,8>以代表先行緩沖器中的一個周期性的5字節(jié)的模型;<1,124,8>以代表先行緩沖器中的兩個相同的4字節(jié)的模型(見下面圖6);<1,125,8>以代表先行緩沖器中的兩個周期性的3字節(jié)的模型;<1,126,8>以代表先行緩沖器中的四個相同的2字節(jié)的模型(見下面圖7);以及<1,127,8>以代表先行緩沖器中的8個相同的1字節(jié)的模型(見下面圖8)。圖5是示出使用一次出現(xiàn)的碼字的作為轉(zhuǎn)義碼的示例性編碼過程500的框圖。在 此編碼示例500中,轉(zhuǎn)義碼<1,120,8>被用來代表在先行緩沖器124中的一個周期性的8 字節(jié)的模型(a,b,c,d,e,f,g,h)。搜索緩沖器大小是128字節(jié),且先行緩沖器大小是8字節(jié)。最初,編碼器(例如,編碼器410)通過使用LZSS編碼模式單元412運(yùn)行。編碼器比較先行緩沖器124中的第一個符號‘a(chǎn)’和搜索緩沖器122中的編碼的符 號,且發(fā)現(xiàn)無匹配。因?yàn)閷τ?、’未找到匹配,編碼器輸出相應(yīng)的碼字502(例如,<0,‘&’>)。 標(biāo)記比特‘0’表示未找到匹配以及下一個數(shù)據(jù)是字面量(字節(jié))。編碼器繼續(xù)用相應(yīng)的碼 字 502(例如,<0,‘b,>,<0,‘C,>,<0,‘d,>,<0,‘e,>,<0,‘f,>,<0,‘g,>和 <0,‘h,>編碼符號‘b’、‘c’、‘d’、‘e’、‘f’、‘g’、和‘h,的隨后的輸入流,以表示對于這些符號沒有 找到匹配。在使用LZSS編碼模式單元412編碼每一個符號之后,編碼器用相應(yīng)的編碼符號 移位或更新搜索緩沖器122。在編碼符號‘a(chǎn)’、‘b’、‘c’、‘d’、‘e’、‘f’、‘g’和‘h’之后,編碼器識別在先行緩 沖器124中的、與搜索緩沖器122中的編碼符號506( ‘a(chǎn)’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,和 ‘h’)匹配的符號模型504( ‘a(chǎn)’,‘b’,‘c’,‘d’,‘e’,‘f’,‘gH,)。編碼器編碼被識別 的符號模型并輸出轉(zhuǎn)義碼(例如,<1,120,8>)508。轉(zhuǎn)義碼表示編碼器正在轉(zhuǎn)換到使用RLE 模式單元414。在RLE模式期間,編碼器識別并計(jì)數(shù)符號模型在先行緩沖器124中重復(fù)的次數(shù)。編 碼器可包括計(jì)數(shù)器以計(jì)數(shù)重復(fù)的次數(shù)。在輸出轉(zhuǎn)義碼之后,編碼器從符號模型第一次出現(xiàn) 時開始計(jì)數(shù)。另外,編碼器簡單計(jì)數(shù)重復(fù)的次數(shù)而非輸出碼字。劃掉碼字表示編碼器正在 簡單計(jì)數(shù)符號模型重復(fù)的次數(shù)而非正在輸出碼字。當(dāng)編碼器檢測到符號模型停止重復(fù)時, 編碼器輸出最后的計(jì)數(shù)總數(shù)510,并轉(zhuǎn)換回使用LZSS編碼模式單元412。關(guān)于圖6、7和8,描述了使用轉(zhuǎn)義碼的三個其他的示例。在這些示例中,基于轉(zhuǎn)義 碼的輸出,編碼器在使用LZSS編碼模式單元412和RLE模式單元414之間轉(zhuǎn)換,如上關(guān)于 圖5所述。圖6是示出使用一次出現(xiàn)的碼字作為轉(zhuǎn)義碼的另一個示例性編碼過程600的框 圖。類似于以上的圖5,編碼器比較先行緩沖器124中的符號的輸入流和搜索緩沖器122中 的編碼符號。在此編碼示例600中,轉(zhuǎn)義碼<1,124,8>被用來代表在先行緩沖器124中的 兩個相同的4字節(jié)(a,b,c, d)的模型。編碼器輸出轉(zhuǎn)義碼,以表示編碼器正從LZSS編碼 模式單元412轉(zhuǎn)換到RLE模式單元414。劃掉碼字表示編碼器正在簡單計(jì)數(shù)符號模型重復(fù) 的次數(shù)而非正在輸出碼字。當(dāng)檢測到符號模型停止重復(fù)時,編碼器轉(zhuǎn)換回使用LZSS編碼模 式單元412。搜索緩沖器的大小是128字節(jié),且先行緩沖器的大小是8字節(jié)。圖7是示出使用一次出現(xiàn)的碼字作為轉(zhuǎn)義碼的第三個示例性編碼過程700的框圖。類似于以上的圖5,編碼器比較先行緩沖器124中的符號的輸入流和搜索緩沖器122中 的編碼符號。在此編碼示例700中,轉(zhuǎn)義碼<1,126,8>被用來代表先行緩沖器124中的四 個相同的2字節(jié)(a,b)模型。編碼器輸出轉(zhuǎn)義碼,以表示編碼器正在從LZSS編碼模式單 元412轉(zhuǎn)換到RLE模式單元414。劃掉碼字表示編碼器正在簡單計(jì)數(shù)符號模型重復(fù)的次數(shù) 而非正在輸出碼字。當(dāng)檢測到符號模型停止重復(fù)時,編碼器轉(zhuǎn)換回使用LZSS編碼模式單元 412。搜索緩沖器的大小是128字節(jié),且先行緩沖器的大小是8字節(jié)。圖8是示出使用一次出現(xiàn)的碼字作為轉(zhuǎn)義碼的第四個示例性編碼過程800的框 圖。類似于以上的圖5,編碼器比較先行緩沖器124中的符號的輸入流和搜索緩沖器122中 的編碼符號。在此編碼示例800中,轉(zhuǎn)義碼<1,127,8>被用來代表先行緩沖器124中的8 個相同的1字節(jié)(a)模型。編碼器輸出轉(zhuǎn)義碼并表示編碼器正在從LZSS編碼模式單元412 轉(zhuǎn)換到RLE模式單元414。劃掉碼字表示編碼器正在簡單計(jì)算符號模型重復(fù)的次數(shù)而非正 在輸出碼字。當(dāng)檢測到符號模型停止重復(fù)時,編碼器轉(zhuǎn)換回使用LZSS編碼模式單元412。 搜索緩沖器的大小是128字節(jié),且先行緩沖器的大小是8字節(jié)。另外,編碼器可使用兩次連續(xù)輸出的碼字的作為轉(zhuǎn)義碼,其表示編碼器正轉(zhuǎn)換為 使用RLE模式單元412。使用不同類型的轉(zhuǎn)義碼可有不同的優(yōu)點(diǎn)。例如,使用單一出現(xiàn)的碼 字作為轉(zhuǎn)義碼可比使用碼字的重復(fù)的出現(xiàn)作為轉(zhuǎn)義碼而將編碼器410轉(zhuǎn)換為使用RLE模式 單元414早一個碼字。如圖5到8所示,在輸出包括單一碼字的轉(zhuǎn)義碼之后,編碼器轉(zhuǎn)換為 使用RLE模式單元414。當(dāng)使用LZSS編碼模式單元412時,編碼器需要在每次編碼之后更 新搜索緩沖器。然而,當(dāng)使用RLE模式單元414時,編碼器可延遲更新搜索緩沖器,直到符 號模型重復(fù)次數(shù)的總數(shù)的計(jì)數(shù)已經(jīng)被確定。因此,編碼器越早可使用RLE模式單元414,編 碼器越早可延遲更新搜索緩沖器。比較起來,當(dāng)使用重復(fù)的出現(xiàn)的碼字作為轉(zhuǎn)義碼時,編碼器不會轉(zhuǎn)換為使用RLE 模式單元414,直到輸出至少兩個連續(xù)的碼字。這可延遲轉(zhuǎn)換為使用RLE模式單元414 一個 碼字。然而,如果在輸出碼字一次之后,所識別的符號模型沒有重復(fù),那么編碼器可能不必 要使用額外的比特來編碼計(jì)數(shù)。使用重復(fù)出現(xiàn)的碼字(例如兩次連續(xù)出現(xiàn)的碼字)作為轉(zhuǎn) 義碼可防止當(dāng)計(jì)數(shù)是0時編碼器不必要地使用額外的比特來編碼計(jì)數(shù)。在使用一個碼字和 兩個碼字作為轉(zhuǎn)義碼之間比較數(shù)據(jù)壓縮有效性在下面關(guān)于圖11被描述。圖9是示出使用重復(fù)出現(xiàn)的碼字(例如,兩個相同的碼字)作為轉(zhuǎn)義碼的示例性 編碼過程900的框圖。編碼器(例如,編碼器410)比較先行緩沖器124中的符號和搜索緩 沖器122中的編碼符號。最初,編碼器運(yùn)行為使用LZSS編碼模式單元412并編碼與搜索緩 沖器122中的編碼符號匹配的符號。當(dāng)編碼器識別了先行緩沖器124中的、與搜索緩沖器 122中的編碼符號匹配的符號模型時,編碼器輸出碼字。在此編碼示例900中,碼字<1,121, 8>被用來代表先行緩沖器124中的一個周期性的7字節(jié)(例如,‘a(chǎn)’,‘b’,‘c’,‘d’,‘e’, ‘f’和‘g’)的模型。在編碼器轉(zhuǎn)換為使用RLE模式單元414之前,編碼器連續(xù)兩次輸出碼 字<1,121,8>902。因此,連續(xù)出現(xiàn)的兩個相同的碼字902被用作動態(tài)轉(zhuǎn)義碼。編碼器運(yùn)行RLE模式單元414以計(jì)數(shù)符號模型在先行緩沖器124中重復(fù)的次數(shù), 直到重復(fù)模型的運(yùn)行結(jié)束。在轉(zhuǎn)義碼被輸出之后,計(jì)數(shù)從符號模型第一次出現(xiàn)時開始。當(dāng) 符號模型停止重復(fù)時,編碼器輸出計(jì)數(shù)并轉(zhuǎn)換回使用LZSS編碼模式單元412。編碼器可包 括計(jì)數(shù)器以計(jì)數(shù)重復(fù)的次數(shù)。
圖10是比較LZSS編碼器和包括LZSS和RLE模式的編碼器的壓縮性能的圖表 1000。圖表1000示出當(dāng)使用LZSS編碼器(1010)和包括LZSS模式和RLE模式的編碼器 (1020)時對于不同的數(shù)據(jù)文件(χ軸)所實(shí)現(xiàn)的壓縮比(y軸)。圖11是比較使用兩個不同的轉(zhuǎn)義碼類型的編碼器的壓縮性能的圖表1100。圖表 1100示出當(dāng)使用碼字(1110)和兩個連續(xù)的碼字(1120)作為轉(zhuǎn)義碼時對于不同的數(shù)據(jù)文件 (X軸)所實(shí)現(xiàn)的壓縮比(y軸)。圖表1100中所示的數(shù)據(jù)表明單一碼字的轉(zhuǎn)義碼和兩個連 續(xù)碼字的轉(zhuǎn)義碼之間沒有顯著差異。兩個轉(zhuǎn)義碼類型在改善數(shù)據(jù)壓縮上具有相似的功效。圖12A、12B、13C是示出用于編碼數(shù)據(jù)文件符號的示例性過程的過程流程圖。在 1210,數(shù)據(jù)處理設(shè)備如計(jì)算機(jī)或服務(wù)器可在存儲模塊中存儲數(shù)據(jù)。例如,數(shù)據(jù)處理設(shè)備可在 本地緩沖器中存儲輸入數(shù)據(jù)流。在1212,數(shù)據(jù)處理設(shè)備通過在存儲模塊的第一緩沖器部分 中存儲數(shù)據(jù)的編碼的符號而在存儲模塊中存儲數(shù)據(jù)。在1214,數(shù)據(jù)處理設(shè)備可通過在存儲 模塊的第二緩沖器部分中存儲將被編碼的數(shù)據(jù)的符號而在存儲模塊中存儲數(shù)據(jù)。在1220,數(shù)據(jù)處理設(shè)備中的編碼器(例如,編碼器410)可比較存儲在第二緩沖器 部分中的符號和存儲在第一緩沖器部分中的編碼的符號,并壓縮所存儲的符號。在1230,在 比較和壓縮數(shù)據(jù)中,編碼器可運(yùn)行在第一編碼模式(例如,通過使用第一編碼模式單元), 以用相應(yīng)的碼字編碼第二緩沖器部分中的符號,直到檢測在第二緩沖器部分中的、與第一 緩沖器部分中的編碼符號匹配的重復(fù)的符號模型。在1240,響應(yīng)于檢測到重復(fù)的符號模型, 編碼器可轉(zhuǎn)換為運(yùn)行在第二編碼模式(例如,通過使用第二編碼模式單元)。在1242,在第 二編碼模式期間,編碼器可計(jì)數(shù)符號模型在第二緩沖器部分中重復(fù)的次數(shù)。在1244,編碼器 可輸出在第二編碼模式期間所計(jì)數(shù)的數(shù)字。在1243,在輸出轉(zhuǎn)義碼之后,編碼器可從模型第 一次出現(xiàn)時開始,計(jì)數(shù)符號模型在第二緩沖器部分中重復(fù)的次數(shù)。在1250,當(dāng)檢測到第二緩 沖器部分中的符號停止重復(fù)時,編碼器可轉(zhuǎn)換回第一編碼模式。第一編碼模式可包括Lempel-Ziv編碼模式。Lempel-Ziv編碼模式可包括多種 類型,如Lempel-Ziv-Storer-Szymanski(LZSS)編碼模式。第二編碼模式可包括行程編碼 (RLE)模式。另外,響應(yīng)于編碼器檢測到重復(fù)的符號模型,編碼器可輸出轉(zhuǎn)義碼。轉(zhuǎn)義碼可包括 單一出現(xiàn)的碼字。在一些實(shí)施中,轉(zhuǎn)義碼包括重復(fù)出現(xiàn)的碼字(例如,兩個相同的碼字)。碼字可包括標(biāo)記元素和字面量元素或偏移量-長度對。字面量是符號或字符的字 面字節(jié)。標(biāo)記表示轉(zhuǎn)義碼中的下一個數(shù)據(jù)是字面量還是偏移量-長度對。偏移量可代表第 二緩沖器部分的符號模型在第一緩沖器部分中被匹配的開始位置。此外,偏移量可代表第 一緩沖器部分的大小減去在第二緩沖器部分中重復(fù)的符號模型的長度。長度代表第二緩沖 器部分的大小。在1232,編碼器可用在第一編碼模式期間所生成的每個碼字更新第一緩沖器部 分。當(dāng)運(yùn)行在第二編碼模式時,編碼器可延遲更新第一緩沖器,直到最后的計(jì)數(shù)數(shù)字被生 成。因此,在1246,編碼器可在第二編碼模式期間只更新第一緩沖器部分一次。圖13是用于執(zhí)行有效的無損數(shù)據(jù)壓縮的示例性系統(tǒng)的框圖。如上關(guān)于圖1到12C 所描述的無損數(shù)據(jù)壓縮技術(shù)和裝置可被實(shí)施在多種系統(tǒng)中。例如,聯(lián)網(wǎng)的系統(tǒng)1300可實(shí)施 所描述的無損數(shù)據(jù)壓縮技術(shù)和裝置,以提供聯(lián)網(wǎng)的存儲系統(tǒng),如備份存儲系統(tǒng)。系統(tǒng)1300 可包括數(shù)據(jù)處理設(shè)備1310,如臺式計(jì)算機(jī)1312、便攜式計(jì)算設(shè)備1314、企業(yè)服務(wù)器1316等。數(shù)據(jù)處理設(shè)備1310可包括處理器1317、編碼器1318和緩沖器1319。緩沖器1319可包括搜 索緩沖器和先行緩沖器。搜索緩沖器和先行緩沖器可被實(shí)施為獨(dú)立的緩沖器或?qū)嵤橥?緩沖器的獨(dú)立的部分。編碼器1318可被實(shí)施,從而以與以上關(guān)于圖4所描述的編碼器410 一致的方式運(yùn)行。數(shù)據(jù)處理設(shè)備1310可接收輸入數(shù)據(jù)流1302和編碼所接收到的輸入數(shù)據(jù)流1302, 以生成壓縮的數(shù)據(jù)1304。數(shù)據(jù)處理設(shè)備1310可與存儲設(shè)備1320通信以存儲壓縮的數(shù)據(jù)。 存儲設(shè)備1320可包括在數(shù)據(jù)處理設(shè)備1310中或是獨(dú)立的(如所示)。此外,存儲設(shè)備1320 可包括多種類型的存儲設(shè)備,如磁盤存儲設(shè)備1322、磁帶存儲設(shè)備等。存儲設(shè)備1320可包 括主存儲設(shè)備、備份存儲設(shè)備或兩者。通過網(wǎng)絡(luò)連接如因特網(wǎng)、局域網(wǎng)(LAN)、廣域網(wǎng)、以太 網(wǎng)等,存儲設(shè)備1320可與數(shù)據(jù)處理設(shè)備1310通信。在一些實(shí)施中,系統(tǒng)1300可被實(shí)施為 存儲區(qū)域網(wǎng)絡(luò)(SAN),以提供在連接到SAN的多種設(shè)備之間共享的存儲系統(tǒng)。編碼器1318可運(yùn)行作為專用壓縮硬件以從處理器1317卸載數(shù)據(jù)壓縮功能。通過 使用專用數(shù)據(jù)壓縮硬件,系統(tǒng)可實(shí)現(xiàn)更快和更有效的主數(shù)據(jù)存儲和備份數(shù)據(jù)存儲。另外,處 理器1317可運(yùn)行得更為有效,因?yàn)樗恍枰?fù)荷數(shù)據(jù)壓縮操作。所描述的無損數(shù)據(jù)壓縮技術(shù)、裝置、系統(tǒng)可被實(shí)施在其他應(yīng)用中。例如,專用數(shù)據(jù) 壓縮硬件可被用在系統(tǒng)中以增加通信系統(tǒng)的吞吐量。壓縮的數(shù)據(jù)有助于增加數(shù)據(jù)通信速 度,且專用數(shù)據(jù)壓縮硬件可幫助緩解有關(guān)傳輸和接收大量數(shù)據(jù)的問題。以上描述了幾個實(shí)施方式,且各種修改是可能的。包括在此說明書中描述的功能 操作的所公開的主題,可被實(shí)施在電子電路、計(jì)算機(jī)硬件、固件、軟件或他們的組合中,如在 此說明書中所公開的結(jié)構(gòu)裝置及其結(jié)構(gòu)等價物中,潛在地包括可操作以導(dǎo)致一個或多個數(shù) 據(jù)處理裝置執(zhí)行所描述的操作的程序(例如,在計(jì)算機(jī)可讀介質(zhì)中編碼的程序,所述計(jì)算 機(jī)可讀介質(zhì)可以是存儲設(shè)備、儲存設(shè)備、機(jī)器可讀存儲基板或其他物理的、機(jī)器可讀介質(zhì)或 它們中的一個或多個的組合)。術(shù)語“數(shù)據(jù)處理裝置”包括所有的用于處理數(shù)據(jù)的裝置、設(shè)備和機(jī)器,包括例如可 編程處理器、計(jì)算機(jī)、多個處理器或計(jì)算機(jī)。除了硬件,裝置還可包括為正被討論的計(jì)算機(jī) 程序創(chuàng)建執(zhí)行環(huán)境的代碼,例如,構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)或它 們中一個或多個的組合的代碼。程序(也稱為計(jì)算機(jī)程序、軟件、軟件應(yīng)用、腳本或代碼)可以用任何形式的編程 語言書寫,包括編譯或解釋語言或聲明的或程序上的語言,并且它可被以任何形式調(diào)用,包 括作為獨(dú)立的程序或作為模塊、組件、子程序或適合用于計(jì)算環(huán)境中的其他單元。程序不一 定對應(yīng)文件系統(tǒng)中的文件。程序可被存儲在保存其他程序或數(shù)據(jù)的文件的一部分中(例 如,存儲在標(biāo)記語言文檔中的一個或多個腳本)、正在討論的程序?qū)S玫膯我晃募?、或?個協(xié)調(diào)文件(例如,存儲一個或多個模塊、子程序或代碼部分的文件)中。程序可被調(diào)用, 以在一個計(jì)算機(jī)上或位于一個地點(diǎn)或分布在多個地點(diǎn)且由通信網(wǎng)絡(luò)互聯(lián)的多個計(jì)算機(jī)上 執(zhí)行。雖然此說明書包含了許多細(xì)節(jié),但是這些不應(yīng)被理解為對所要求的范圍的限制, 而是作為可對特定實(shí)施方式所特有的特征的描述。在此說明書中,在單獨(dú)的實(shí)施方式的背 景中所描述的某些特征也可與單一實(shí)施方式結(jié)合來實(shí)現(xiàn)。相反地,在單一的實(shí)施方式的背 景中所描述的各種特征也可被獨(dú)立或以任何合適的子結(jié)合在多個實(shí)施方式中實(shí)現(xiàn)。此外,雖然以上所描述的特征可作為某些組合甚至如最初被要求的而起作用,但是根據(jù)所要求的 結(jié)合的一個或多個特征在某些情況下可從組合刪去,且所要求的結(jié)合可指向子結(jié)合或子結(jié) 合的變體。類似地,雖然操作在附圖中以特定的順序被描繪,但是這不應(yīng)被理解為要求這種 操作被以所示的特定的順序或順次的順序執(zhí)行、或所有的圖解的操作被執(zhí)行,以實(shí)現(xiàn)所需 的結(jié)果。在某些情況下,多任務(wù)和并行處理可能是有利的。此外,在以上所描述的實(shí)施方式 中各種系統(tǒng)組件的分離不應(yīng)被理解為在所有的實(shí)施方式中要求這種分離。其他實(shí)施方式落入所附權(quán)利要求的范圍。
權(quán)利要求
一種裝置,包括存儲模塊,用于存儲數(shù)據(jù),其中所述存儲模塊包括第一緩沖器部分,用于存儲所述數(shù)據(jù)的編碼符號,以及第二緩沖器部分,用于存儲將被編碼的數(shù)據(jù)的符號;以及編碼器,用于比較存儲在所述第二緩沖器部分中的所述符號和存儲在所述第一緩沖器部分中的所述編碼符號以及壓縮所述數(shù)據(jù),其中所述編碼器被配置為運(yùn)行在第一編碼模式,以用相應(yīng)的碼字編碼所述第二緩沖器部分中的所述符號,直到所述編碼器檢測到在所述第二緩沖器部分中的、與所述第一緩沖器部分中的所述編碼符號匹配的重復(fù)的符號模型,以及響應(yīng)于所述編碼器檢測到所述重復(fù)的符號模型,轉(zhuǎn)換為運(yùn)行在第二編碼模式,以計(jì)數(shù)所述符號模型在所述第二緩沖器部分中重復(fù)的次數(shù),以及輸出所計(jì)數(shù)的數(shù)字;其中,所述編碼器被配置為當(dāng)所述編碼器檢測到在所述第二緩沖器中的所述符號停止重復(fù)時轉(zhuǎn)換回所述第一編碼模式。
2.如權(quán)利要求1所述的裝置,其中所述第一編碼模式包括Lempel-Ziv編碼模式。
3.如權(quán)利要求2所述的裝置,其中,所述Lempel-Ziv編碼模式包括Lempel-Ziv-Store r-Szymanski (LZSS)編碼模式;以及其中所述第二編碼模式包括行程編碼(RLE)模式。
4.如權(quán)利要求1所述的裝置,其中所述編碼器被配置為響應(yīng)于所述編碼器檢測到所述 重復(fù)的符號模型而輸出轉(zhuǎn)義碼,所述轉(zhuǎn)義碼包括單一出現(xiàn)的碼字,所述轉(zhuǎn)義碼包括標(biāo)記,用于表示在所述轉(zhuǎn)義碼中的下一個數(shù)據(jù)是字面量還是偏移量_長度對; 偏移量,用于代表在所述第二緩沖器部分中的所述重復(fù)的符號模型在所述第一緩沖器 部分中的匹配的位置;以及長度,用于代表所述第二緩沖器部分的大小。
5.如權(quán)利要求4所述的裝置,其中所述轉(zhuǎn)義碼包括兩次連續(xù)出現(xiàn)的所述碼字。
6.如權(quán)利要求4所述的裝置,其中所述編碼器被配置為在輸出所述轉(zhuǎn)義碼之后,從所 述模型第一次出現(xiàn)時開始,計(jì)數(shù)所述符號模型在所述第二緩沖器中重復(fù)的所述次數(shù)。
7.如權(quán)利要求1所述的裝置,其中,所述編碼器被配置為用在所述第一編碼模式期間 所生成的碼字更新所述第一緩沖器部分;以及其中,所述編碼器被配置為在所述第二編碼模式期間更新所述第一緩沖器部分一次。
8.一種方法,其由數(shù)據(jù)處理設(shè)備執(zhí)行,所述方法包括 在存儲模塊中存儲數(shù)據(jù),所述存儲還包括在所述存儲模塊的第一緩沖器部分存儲所述數(shù)據(jù)的編碼符號,以及 在所述存儲模塊的第二緩沖器部分存儲將被編碼的數(shù)據(jù)的符號;以及 壓縮所述數(shù)據(jù),所述壓縮還包括比較存儲在所述第二緩沖器部分中的所述符號和存儲在所述第一緩沖器部分中的所 述編碼符號,運(yùn)行在第一編碼模式,以用相應(yīng)的碼字編碼所述第二緩沖器部分中的所述符號,直到 檢測到第二緩沖器部分中的、與所述第一緩沖器部分中的所述編碼符號匹配的重復(fù)的符號模型,響應(yīng)于檢測到所述重復(fù)的符號模型,運(yùn)行在第二編碼模式,運(yùn)行在所述第二編碼模式包括計(jì)數(shù)所述符號模型在所述第二緩沖器部分中重復(fù)的次數(shù),以及 輸出所計(jì)數(shù)的數(shù)字,以及當(dāng)檢測到所述第二緩沖器中的所述符號停止重復(fù)時,轉(zhuǎn)換回所述第一編碼模式。
9.如權(quán)利要求8所述的方法,其中所述第一編碼模式包括Lempel-Ziv編碼模式。
10.如權(quán)利要求9所述的方法,其中所述Lempel-Ziv編碼模式包括Lempel-Ziv-Store r-Szymanski (LZSS)編碼模式;以及其中所述第二編碼模式包括行程編碼(RLE)模式。
11.如權(quán)利要求8所述的方法,還包括響應(yīng)于檢測到所述重復(fù)的符號模型而輸出轉(zhuǎn)義 碼,所述轉(zhuǎn)義碼包括單一出現(xiàn)的碼字,所述轉(zhuǎn)義碼包括標(biāo)記,用于表示在所述轉(zhuǎn)義碼中的下一個數(shù)據(jù)是字面量還是偏移量_長度對; 偏移量,用于代表在所述第二緩沖器部分中的所述重復(fù)的符號模型在所述第一緩沖器 部分中的匹配的位置;以及長度,用于代表所述第二緩沖器部分的大小。
12.如權(quán)利要求11所述的方法,其中所述轉(zhuǎn)義碼包括兩次連續(xù)出現(xiàn)的所述碼字。
13.如權(quán)利要求11所述的方法,還包括在輸出所述轉(zhuǎn)義碼之后,從所述模型第一次出 現(xiàn)時開始,計(jì)數(shù)所述符號模型在所述第二緩沖器中重復(fù)的所述次數(shù)。
14.如權(quán)利要求8所述的方法,還包括用在所述第一編碼模式期間所生成的每個碼字 更新所述第一緩沖器部分;以及在所述第二編碼模式期間更新所述第一緩沖器部分一次。
15.一種系統(tǒng),包括數(shù)據(jù)處理設(shè)備,用于編碼數(shù)據(jù)來生成壓縮數(shù)據(jù),其中所述數(shù)據(jù)處理設(shè)備包括 數(shù)據(jù)緩沖器,用于接收輸入數(shù)據(jù),其中所述緩沖器包括 搜索緩沖器,用于緩沖所述輸入數(shù)據(jù)的編碼符號,以及 先行緩沖器,用于緩沖將被編碼的所述輸入數(shù)據(jù)的符號;以及 編碼器,用于比較緩沖在所述先行緩沖器中的所述符號和緩沖在所述搜索緩沖器中的 所述編碼符號以及壓縮所述輸入數(shù)據(jù),其中所述編碼器被配置為運(yùn)行在第一編碼模式,以用相應(yīng)的碼字編碼所述先行緩沖器中的所述符號,直到所述 編碼器檢測到在所述先行緩沖器中的、與所述搜索緩沖器中的所述編碼符號匹配的重復(fù)的 符號模型,以及響應(yīng)于檢測到所述重復(fù)的符號模型,轉(zhuǎn)換為運(yùn)行在第二編碼模式以 計(jì)數(shù)所述符號模型在所述先行緩沖器中重復(fù)的次數(shù),以及 輸出所計(jì)數(shù)的數(shù)字;其中,所述編碼器被配置為當(dāng)所述編碼器檢測到在所述第二緩沖器中的所述符號停止 重復(fù)時轉(zhuǎn)換回所述第一編碼模式。
16.如權(quán)利要求15所述的系統(tǒng),其中所述第一編碼模式包括Lempel-Ziv編碼模式。
17.如權(quán)利要求16所述的系統(tǒng),其中,所述Lempel-Ziv編碼模式包括Lempel-Ziv-Storer-Szymanski (LZSS)編碼模式;以及其中所述第二編碼模式包括行程編碼(RLE)模式。
18.如權(quán)利要求15所述的系統(tǒng),其中所述編碼器被配置為響應(yīng)于所述編碼器檢測到所 述重復(fù)的符號模型而輸出轉(zhuǎn)義碼,所述轉(zhuǎn)義碼包括單一出現(xiàn)的碼字,所述轉(zhuǎn)義碼包括標(biāo)記,用于表示在所述轉(zhuǎn)義碼中的下一個數(shù)據(jù)是字面量還是偏移量_長度對; 偏移量,用于代表在所述先行緩沖器中的所述重復(fù)的符號模型在所述搜索緩沖器中的 匹配的位置;以及長度,用于代表所述先行緩沖器的大小。
19.如權(quán)利要求18所述的系統(tǒng),其中所述轉(zhuǎn)義碼包括兩次連續(xù)出現(xiàn)的所述碼字。
20.如權(quán)利要求15所述的系統(tǒng),其中所述編碼器被配置為用在所述第一編碼模式期間所生成的每個碼字更新所述搜索緩沖器; 在所述第二編碼模式期間更新所述搜索緩沖器一次;以及在輸出所述轉(zhuǎn)義碼之后,從所述模型第一次出現(xiàn)時開始,計(jì)數(shù)所述符號模型在所述第 二緩沖器中重復(fù)的所述次數(shù)。
全文摘要
本公開涉及用于數(shù)據(jù)壓縮的多模式編碼。本公開包括關(guān)于無損數(shù)據(jù)壓縮的裝置、系統(tǒng)和技術(shù)。在一些實(shí)施中,裝置包括存儲模塊以存儲數(shù)據(jù)。所述存儲模塊包括第一緩沖器部分以存儲數(shù)據(jù)的編碼的符號,并包括第二緩沖器部分以存儲將被編碼的數(shù)據(jù)的符號。所述裝置包括編碼器以比較存儲在所述第二緩沖器部分中的所述符號和存儲在所述第一緩沖器部分中的所述編碼的符號以及壓縮所述數(shù)據(jù)。所述編碼器可運(yùn)行在第一編碼模式以用相應(yīng)的碼字編碼所述第二緩沖器部分中的所述符號,直到檢測到第二緩沖器部分中的、與第一緩沖器部分中的所述編碼的符號匹配的重復(fù)的符號模型。響應(yīng)于檢測到所述重復(fù)的模型,所述編碼器可運(yùn)行在第二編碼模式。
文檔編號G11B20/10GK101989443SQ201010143498
公開日2011年3月23日 申請日期2010年3月5日 優(yōu)先權(quán)日2009年3月5日
發(fā)明者陽學(xué)仕, 陳梁杰 申請人:馬維爾國際貿(mào)易有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1