相關(guān)申請的交叉引用
本申請是優(yōu)先權(quán)日為2006年06月19日、國際申請日為2007年06月18日、國際申請?zhí)枮閜ct/us2007/014138、中國專利申請?zhí)枮?00780023129.2、發(fā)明名稱為“數(shù)據(jù)壓縮”的專利申請的分案申請。
本專利申請涉及數(shù)據(jù)壓縮。
背景技術(shù):
近年來,人們通過網(wǎng)絡(luò)共享數(shù)據(jù)變得越來越流行;然而,數(shù)據(jù)傳輸在帶寬利用方面具有一定成本。所以,例如,大量數(shù)據(jù)常常被壓縮。壓縮也可以用于存儲數(shù)據(jù)到磁的或其它介質(zhì)上。
附圖說明
主題在說明書的結(jié)論部分被特別地指出并清楚地請求保護(hù)。然而,所請求保護(hù)的主題,包括其組織和操作方法以及目的、特征和優(yōu)點(diǎn),可以通過結(jié)合附圖參考以下的詳細(xì)說明而被最好地理解,其中:
圖1是說明根據(jù)所請求保護(hù)的主題的一個實(shí)施例的示意圖。
圖2示出一個示例性系統(tǒng)。
具體實(shí)施方式
在以下的詳細(xì)說明中,許多特定細(xì)節(jié)被闡述,以便提供對于所請求保護(hù)的主題的透徹的理解。然而,本領(lǐng)域技術(shù)人員將理解,所請求保護(hù)的主題可無需這些特定細(xì)節(jié)而實(shí)施。在其它實(shí)例中,對熟知的方法、過程、部件和/或電路沒有進(jìn)行詳細(xì)描述,以免使所請求保護(hù)的主題模糊。
隨后的具體實(shí)施方式的某些部分以算法和/或?qū)Υ鎯υ谟?jì)算系統(tǒng)內(nèi)——諸如在計(jì)算機(jī)和/或計(jì)算系統(tǒng)存儲器內(nèi)——的數(shù)據(jù)比特和/或二進(jìn)制數(shù)字信號的操作的符號表示的形式而給出。這些算法描述和/或表示是由數(shù)據(jù)處理領(lǐng)域技術(shù)人員用來把他們的工作內(nèi)容傳達(dá)給該領(lǐng)域其它技術(shù)人員的技術(shù)。在這里并且通常地,算法被認(rèn)為是自相一致的運(yùn)算序列和/或?qū)е缕谕Y(jié)果的類似處理。運(yùn)算和/或處理可包括對物理量的物理操作。典型地——雖然不一定必須,這些量可以采取能夠被存儲、傳送、組合、比較和/或操縱的電信號和/或磁信號的形式。主要由于普遍的使用,把這些信號稱為比特、數(shù)據(jù)、數(shù)值、單元、符號、字符、術(shù)語、數(shù)目、數(shù)字等等有時被證明是方便的。然而,應(yīng)當(dāng)理解,所有這些以及類似的術(shù)語是與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián)的,并且僅僅是方便的標(biāo)簽。除非專門闡述,否則正如從以下的討論看到的,將會意識到在本說明書的討論中,利用諸如“處理”、“計(jì)算”、“確定”等等的術(shù)語指的是諸如計(jì)算機(jī)或類似的電子計(jì)算設(shè)備那樣的計(jì)算平臺的動作和/或處理,所述計(jì)算平臺在計(jì)算平臺的處理器、存儲器、寄存器和/或其它信息存儲、傳輸和/或顯示設(shè)備內(nèi)操縱和/或變換被表示為電和/或磁的物理量和/或其它物理量的數(shù)據(jù)。
此后描述壓縮數(shù)據(jù)的方法的一個特定實(shí)施例,雖然所請求保護(hù)的主題在范圍上不限于這方面。選擇在要被壓縮的數(shù)據(jù)集或數(shù)據(jù)組內(nèi)出現(xiàn)的一個符號串。生成符號串碼,其指示符號串在數(shù)據(jù)內(nèi)的一個或多個位置。同樣地,對于數(shù)據(jù)內(nèi)的另外的符號串,這個過程可以重復(fù)進(jìn)行。各個符號串碼然后可以組合以形成數(shù)據(jù)碼。得到的數(shù)據(jù)碼是該數(shù)據(jù)集或數(shù)據(jù)組的壓縮形式。該數(shù)據(jù)碼可根據(jù)需要被發(fā)送或存儲。
一個特定實(shí)施例可以通過接連地識別所選擇的符號串出現(xiàn)的位置、確定在所選擇的符號串的出現(xiàn)之間的距離并生成包括表示所選擇的串在數(shù)據(jù)內(nèi)的位置的距離的碼而被實(shí)行,雖然所請求保護(hù)的主題在范圍上不限于這方面。同樣地,在這里,符號可包括任何類型、形式或格式的數(shù)據(jù)。例如,這可包括記錄、文件、扇區(qū)、集群、組和/或它們的部分。而且,符號可包括字、字節(jié)、比特、文本、字符等等。符號串可包括單個或多個符號。同樣地,它們在長度上可以是固定的或可變的。
對于一個特定實(shí)施例,符號串可以按特定的或預(yù)定的次序被編碼,雖然這同樣僅僅是一個示例性實(shí)施例并且所請求保護(hù)的主題在范圍上不限于這方面。替換地或另外,不同于按次序編碼,符號串可以以任何次序被編碼。在這樣的實(shí)施例中,符號串碼例如可以加上指示特定的符號串的某些其它碼作為前綴,雖然所請求保護(hù)的主題在范圍上當(dāng)然不限于這個示例性實(shí)施例。同樣地,對于一個特定實(shí)施例,所采用的方法可以在模式之間切換,所述模式諸如其中符號串碼按預(yù)定的次序被發(fā)送或存儲的模式,和其中這個次序沒有被預(yù)先確定、但其中表示相應(yīng)的符號串的某些碼在符號串碼之前或作為符號串碼的一部分而被發(fā)送的模式。
如果符號串包括符號串的重復(fù),則符號串碼可包括指示符號串的一連串出現(xiàn)的存在的數(shù)據(jù)。從壓縮的觀點(diǎn)來看,指示一連串出現(xiàn)的數(shù)據(jù)的存儲或傳輸通常比單獨(dú)發(fā)送這樣的出現(xiàn)更有效率。在一個特定實(shí)施例中,可以通過行程長度編碼(runlengthcoding)而將位置用信號通知(signal),但其它編碼方法也可能代替或作為附加,正如下面更詳細(xì)地描述的那樣。同樣地,編碼可以至少部分地是依賴于上下文的。例如,如果要被編碼的數(shù)據(jù)集或數(shù)據(jù)組的長度是事先已知的,則它可以作為第一符號串碼的前綴。至少部分地依賴于實(shí)施例的細(xì)節(jié),最后的符號串的位置可以被確定而無需發(fā)送或存儲相應(yīng)于該特定的符號串的附加信息,同樣如下面更詳細(xì)地描述的那樣。
而且,關(guān)于所有的或某些符號串的輔助信息或附加信息也可以被包括在數(shù)據(jù)碼中。在一個特定實(shí)施例中,與特定的符號串有關(guān)的附加信息可以在相應(yīng)的符號串碼的結(jié)尾或否則與其相關(guān)聯(lián)地被發(fā)送。替換地,附加信息可以在發(fā)送或存儲符號串碼后被發(fā)送或存儲。更一般地,附加信息可以在任何時間或以任何方式被提供,以使得譯碼器能夠把該信息與相應(yīng)的符號串相關(guān)聯(lián)。例如,要被使用的符號串的列表或表可以被預(yù)先確定或預(yù)定義。替換地或另外,例如,它可以至少部分基于在要壓縮的數(shù)據(jù)中出現(xiàn)的符號串而被編制。
在特定的數(shù)據(jù)集或數(shù)據(jù)組的符號串碼被存儲或被發(fā)送后,可以使用結(jié)尾碼(endcode)。在數(shù)據(jù)集中存在的符號串——除最后的符號串外——的位置被存儲或傳送后,在至少某些實(shí)施例中,可以確定最后的符號串的位置。因此,編碼器可以省略存儲或傳送這樣的最后的符號串的位置,正如此后更詳細(xì)地描述的那樣。
同樣地,由所請求保護(hù)的主題覆蓋的實(shí)施例包括例如能夠?qū)嵤┤魏芜@樣的方法的計(jì)算機(jī)程序,和/或能夠?qū)嵤┻@樣的方法的計(jì)算機(jī)系統(tǒng)。實(shí)施例還包括能夠?qū)嵭腥缦旅婷枋龅姆椒ǖ挠布?或軟件編碼器,以及能夠從代表數(shù)據(jù)的壓縮的數(shù)據(jù)碼重建原始的數(shù)據(jù)集或數(shù)據(jù)組的硬件和/或軟件譯碼器。這些以及許多其它實(shí)施例將在所請求保護(hù)的主題的范圍內(nèi)。
在所描述的至少某些實(shí)施例中,壓縮是無損的,雖然所請求保護(hù)的主題在范圍上不限于這方面。例如,在某些實(shí)施例中,數(shù)據(jù)碼可包括關(guān)于被包含在要被壓縮的數(shù)據(jù)內(nèi)的那些符號串的位置的信息。
在這個特定的情形中,要被壓縮的相關(guān)數(shù)據(jù)的任何組、集或部分被視作字符或其它符號的有序序列。如果這樣的數(shù)據(jù)代表例如文本,則各個符號可包括一個或多個文本字符,但當(dāng)然這不是必須的。許多其它的符號也可以被表示。更一般地,符號可以由字節(jié)或其它大小的數(shù)據(jù)組來表示。也有可能使用較長的或短的數(shù)據(jù)部分,它可以或不一定適合于在例如字節(jié)或數(shù)字字長度內(nèi)。如果數(shù)據(jù)以二進(jìn)制形式表示,則符號可以取決于具體的實(shí)施例而被表示為單個比特或具有固定或可變長度的多個比特。
作為一個例子,諸如被存儲為文件、記錄或數(shù)據(jù)的其它單一聯(lián)系之類的數(shù)據(jù)可以視作整體,或替代地被劃分或分割成合適的長度,該長度對于符號組——在這里被稱為符號串——足夠長,使之可以以某個壓縮效率被編碼,但足夠短到可以方便地處理。下面將更詳細(xì)地描述各種方法。
初始地,例如在一個特定實(shí)施例中,建立可在數(shù)據(jù)集內(nèi)出現(xiàn)的符號串的列表或表。加到這個列表的可以是至少部分基于關(guān)于數(shù)據(jù)的統(tǒng)計(jì)量的現(xiàn)有知識或信息的符號串的初始列表。為提供某些簡單的例子,例如對于文本,通常的符號串可包括“ee”、諸如“and”或“or”之類經(jīng)常出現(xiàn)的字、或后面跟隨空白的標(biāo)點(diǎn)符號。當(dāng)然,所請求保護(hù)的主題在范圍上不限于這些例子或這個特定實(shí)施例。許多可能的變化也將被包括在所請求保護(hù)的主題的范圍內(nèi)。
作為另一個例子,可以在編碼開始之前檢查特定的數(shù)據(jù)集,以識別經(jīng)常出現(xiàn)的符號串。替換地或另外,如果進(jìn)行劃分,則這些劃分例如可以通過使用符號串的初始列表而被分開地或獨(dú)立地處理。例如,可以至少部分地基于可能已經(jīng)在以前的數(shù)據(jù)劃分中發(fā)現(xiàn)的符號串而確定該初始列表。
替換地,作為例子,符號串可能隨著編碼進(jìn)行而增加,如同在lempel-ziv-welsh編碼中發(fā)生的那樣。然而,在這個實(shí)施例例子中,如在下面描述的,編碼符號串與在lzw編碼中使用的方法非常不同。在lzw中,符號串通過用另一個較長的符號或串進(jìn)行替換而被編碼。為此,lzw有時不能壓縮數(shù)據(jù)集,并且在某些情形下可產(chǎn)生較長的數(shù)據(jù)集。相反,根據(jù)所請求保護(hù)的主題的實(shí)施例很可能導(dǎo)致壓縮,正如此后更詳細(xì)地描述的那樣。
為了壓縮數(shù)據(jù)組或數(shù)據(jù)集,可以從可得到的符號串列表中選擇第一符號串。該符號串在數(shù)據(jù)中的出現(xiàn)被定位。第一符號串在數(shù)據(jù)內(nèi)的位置被記住。這個過程然后對于數(shù)據(jù)的另外的符號串重復(fù)進(jìn)行,以便規(guī)定這個數(shù)據(jù)集或數(shù)據(jù)組。雖然順序地從數(shù)據(jù)集或數(shù)據(jù)組的開始到結(jié)尾進(jìn)行處理可以是一種方便的方法,但是包括符號串的數(shù)據(jù)可以以任何次序被處理。
典型地,編碼可以通過硬件或軟件編碼器被實(shí)行。在一個可能的實(shí)施例中,編碼器可被配置成在編碼后將數(shù)據(jù)通過通信信道發(fā)送到譯碼器,譯碼器可被配置成實(shí)時地或以其它方式利用接收的編碼數(shù)據(jù)來重建數(shù)據(jù)集。
再次地,所請求保護(hù)的主題在范圍上不限于特定實(shí)施例。所以,以前或此后描述的實(shí)施例將僅僅作為例子用于說明。不同于這些具體例子的許多其它方法和/或?qū)嵤├龑⒈话ㄔ谒埱蟊Wo(hù)的主題的范圍內(nèi)。盡管如此,繼續(xù)說明這些例子,現(xiàn)在參照圖1。圖1是根據(jù)所請求保護(hù)的主題的一個可能的實(shí)施例的示意圖。
在圖1的例子中,示出一行文本以代表數(shù)據(jù)集或數(shù)據(jù)組。同樣地,符號串——這里是字母“x”——在本例中將被處理。當(dāng)然,所請求保護(hù)的主題不限于這個示例性實(shí)施例或任何一個特定實(shí)施例。這個例子僅僅是用于解釋性說明。許多其它可能的實(shí)施例將被包括在所請求保護(hù)的主題的范圍內(nèi)。
從在這里被稱為“start”、在圖1上標(biāo)示為10的位置開始,文本數(shù)據(jù)110在本例中被順序地搜索。當(dāng)然,如以前提到的,所請求保護(hù)的主題不限于以上順序搜索。但是,如果找到所選符號串——這里還是“x”——的出現(xiàn),則記住關(guān)于該出現(xiàn)的信息,在本例中諸如其位置。在所示的例子中,串“x”的第一次出現(xiàn)出現(xiàn)在開始位置10后的第5位置,如用標(biāo)號20表示的。符號串“x”再次出現(xiàn)在開始后的第9位置,或從前一次出現(xiàn)向后四個位置,如用標(biāo)號30表示的。
繼續(xù)進(jìn)行該例子,“x”再次在前一次出現(xiàn)的五個位置后出現(xiàn),如用標(biāo)號40示出的。隨后的位置間隔是3,2,2,如分別用標(biāo)號50,60,70示出的。
一旦文本數(shù)據(jù)110被這樣地完全分析到“結(jié)尾”位置,即這里的100,則通過存儲或發(fā)送碼而生成表示在該部分?jǐn)?shù)據(jù)集中的位置的該碼。在這個特定實(shí)施例中,實(shí)際上,不出現(xiàn)“x”的位置被存儲或被用信號通知(signal)。在該情形中,這被稱為行程長度編碼。這里,不包含x的位置的“行程”被編碼。
在圖1的簡單的示例性實(shí)施例中,數(shù)據(jù)包括一行文本,符號串包括一個字母。在所請求保護(hù)的主題的范圍內(nèi)的該例子的變形中,可以尋找更長的和/或更復(fù)雜的符號串的出現(xiàn)。正如下面更詳細(xì)地描述的,這些可包括具有固定的預(yù)定義形式的符號串,或替換地,例如可包括諸如在形式、長度和/或組成上具有靈活性的符號串。靈活性的程度可以預(yù)定義,或者可以某種程度上至少部分根據(jù)數(shù)據(jù)的某個或某些特征而計(jì)算。下面給出某些另外的示例性符號串。
·任何字母、符號、或字符a,諸如“x”。原則上這可包括單個符號位置。
·任何雙字符a1a2,諸如“st”。
·任何組合a1a2a3,諸如“str”。
·任何更長的組合a1a2a3…am,諸如“st__ng”,其中下劃線代表單個符號位置。
第一符號串的位置被確定后,可以確定在可能的或已知的符號串列表中的第二符號串的位置。通常,數(shù)據(jù)組可以這種方式被編碼。對于某些實(shí)施例,隨著編碼進(jìn)行,編碼器可以把關(guān)于已被定位的符號串的信息——諸如一個或多個位置——實(shí)時地發(fā)送到譯碼器。替換地,編碼的數(shù)據(jù)可以在本地被存儲為壓縮表示。
示例性實(shí)施例可以用偽碼表示如下:
對于s=符號串
指示s在數(shù)據(jù)集中的位置
結(jié)束
作為另一個例子,考慮8個符號串s1到s8的短序列s。為了說明起見,符號串在這里包括文本片段,但是所請求保護(hù)的主題在范圍上不限于這方面。這樣的片段是短的,而且符號串可能完全不包括文本,但仍舊在所請求保護(hù)的主題的范圍內(nèi)。在本例中,在兩個字之間的空格也包括符號串,如下面所示:
在本例中,符號串的位置可以通過任何方便的方法來指示。用來傳送或發(fā)送位置的方便的方法是表示為簡單數(shù)字。以某個次序估計(jì)關(guān)于數(shù)據(jù)集的符號串組。為了說明起見,作為例子,假設(shè)符號串在這里具有次序‘e’‘t’‘s’‘h’‘space(空格)’,但是所請求保護(hù)的主題在范圍上當(dāng)然不限于這個例子或任何特定例子。但是,對于這個例子,以下的符號串可被如下地傳送或存儲:
上面,3和6指示符號串‘e’的位置;1、5和8指示符號串‘t’的位置;等等。
對于這個特定實(shí)施例,期望一種技術(shù),以指示對于特定符號串沒有另外的信息被傳送或存儲。一種實(shí)現(xiàn)方法可以是定義一個用于組結(jié)尾的專門的符號(eog)。對于這個示例性實(shí)施例,這可以給出:
然而,可能期望更有效的編碼。例如,對于8個位置,通過傳統(tǒng)的編碼方法可以采用每個符號串3比特來傳送,這與傳送eog非常不同。
為了提高壓縮效率,我們可以把行程長度編碼(rlc)應(yīng)用到接連的符號串的位置??梢允褂萌魏涡问交蝾愋偷木幋a來編碼行程長度,并且所請求保護(hù)的主題不限于特定的形式或類型。例如,可以采用golomb編碼器或二進(jìn)制算術(shù)編碼器來提供幾個例子。這些編碼器例如可用來編碼一連串0和1,指示在數(shù)據(jù)組中符號串不出現(xiàn)和出現(xiàn)(或反之亦然)的一個或多個位置。當(dāng)然,這些僅僅是例子,并且所請求保護(hù)的主題在范圍上不限于這樣的例子。編碼行程長度的許多其它可能的方法是可以想到的并且被包括在所請求保護(hù)的主題的范圍內(nèi)。
但是,繼續(xù)進(jìn)行這個例子,在這樣的實(shí)施例中,符號串的位置可以被行程長度編碼。在這種情形下,例如,代替編碼3后跟隨6來表示符號串‘e’的位置,可以編碼2來表明在‘e’第一次出現(xiàn)之前跳過兩個位置,2表明從位置3又跳過兩個位置到達(dá)位置6,等等:
這通過引入6個符號——除了eog以外還有0、1、2、3和6——而提供壓縮,這是比9個符號——1到8加上eog——更小的編碼集。
然而,壓縮可以通過類似于“重要性切換(significanceswitching)”的方法而被進(jìn)一步改進(jìn)。更具體地,這里,對于每個被編碼的接連的符號串,隨著越來越多的符號串變成由位置確定,要被編碼的位置變得更少。這個關(guān)于位置的附加信息可用來提供附加壓縮。
在本例中,例如隨著符號串‘e’的位置變成已知的,這些位置在作為用于以后的符號串的可能位置時可被省略。實(shí)際上,為了編碼,是編碼多少個要跳過的未知的位置,而不是編碼要跳過的全部位置,由此提供附加壓縮。在本例中,沒有行程長度編碼時是:
這里的符號x表示已經(jīng)知道從而不必用信號通知的位置?!?”和“1”的總數(shù)目從40減小到20,并且作為行程長度碼被進(jìn)一步減小:
在這個特定實(shí)施例中,所使用的不同的符號的數(shù)目被進(jìn)一步減小到0、1、2和eog。為了規(guī)定‘e’的位置,rlc是相同的,因?yàn)槭孪炔恢牢恢?。然而,在編碼‘t’時,包含‘e’的位置可被省略,因?yàn)樗鼈円呀?jīng)被占用,所以不必計(jì)入用于編碼和/或譯碼的rlc中。
而且,一旦編碼器到達(dá)要被編碼的最后的符號串,它的位置就可被確定而不用傳送或編碼任何附加信息。更具體地,在這個示例性實(shí)施例中,這個符號串占用先前沒有用信號通知或編碼的位置。然而,這假設(shè)要被編碼的數(shù)據(jù)集的長度是已知的。如果是的話,在遇到針對‘h’的eog后,在本例中剩余的符號串隱含地是‘space’,過程可以終結(jié)而不用附加編碼或傳送。所以在給定的例子中,假設(shè)已知‘space’是最后的符號串,附加壓縮可以如下地得到:
然而,如果數(shù)據(jù)集的長度和/或符號串的數(shù)目未知,在某些情形下也可能想要采用類似的方法。在例如被編碼的數(shù)據(jù)集的長度是未知的情形下,可能有各種方法,并且所請求保護(hù)的主題在范圍上不限于一種特定方法。例如,可以通過具有標(biāo)準(zhǔn)長度來處理。替換地,長度信息可以作為被編碼的信息的前綴。然而,如果多個數(shù)據(jù)集被編碼并且大多數(shù)具有相同的長度,從壓縮觀點(diǎn)來看,用長度作前綴是效率低的。同樣地,繼續(xù)這個想法,對于長數(shù)據(jù)通信,如果采用標(biāo)準(zhǔn)長度來再劃分?jǐn)?shù)據(jù),則可以通過在小于標(biāo)準(zhǔn)長度的結(jié)尾處傳送或編碼數(shù)據(jù)集來處理偏離標(biāo)準(zhǔn)長度的變化。
一種方法可包括在編碼之前提供數(shù)據(jù)組的總長度。如果有標(biāo)準(zhǔn)劃分長度,則編碼器和譯碼器可以確定有多少個劃分,以及最后的劃分的長度,如果它小于標(biāo)準(zhǔn)長度的話。例如,如果102個符號串長度的數(shù)據(jù)集被編碼,劃分的標(biāo)準(zhǔn)長度是5,則存在21個劃分,其中最后的一個長度為2。再次地,如前所述,總長度可以以許多方式被包括在數(shù)據(jù)碼中,并且所給出的例子將不是限制性的。所請求保護(hù)的主題將包括這些示例性方法以及其它可能的方法。
同樣地,對于處理符號串,也有幾個方法是可能的。例如,如前所述,可以采用符號串的預(yù)定的次序。然而,替換地,符號串可以相對于它們的出現(xiàn)頻率被排序,如果出現(xiàn)頻率已知或能夠被確定或近似的話。例如,僅僅作為例子,使用英文時,可以具有以下的次序:‘e’‘t’‘a(chǎn)’‘o’‘i’‘n’‘s’‘h’等等。“空格”可以以它的統(tǒng)計(jì)量在樣本中表示的這樣的次序被包括。另外,可以有不出現(xiàn)的符號串,它可以形成要用信號通知的空組。通過這樣的方法,編碼器和譯碼器都知道符號串的次序。因此,例如,如果譯碼器接收到eog,它就能夠確定下一個適當(dāng)?shù)姆柎?/p>
另一種方法可以用例如符號串明確作為數(shù)據(jù)集的前綴。同樣地,符號串替換地可以作為后綴或否則被嵌入,這樣,譯碼器可以根據(jù)編碼的數(shù)據(jù)進(jìn)行適當(dāng)?shù)拇_定。同樣有可能,系統(tǒng)可以采用兩種模式,一種模式中符號串的預(yù)定的次序被傳送,另一種模式中符號串作為前綴或被嵌入。這些模式可以以任何次序出現(xiàn),并且在一個例子中,可以通過用于該目的的專門的符號串來指示模式切換。
在再一個可能的實(shí)施例中,編碼器和譯碼器可以采用從已接收的符號串構(gòu)建新的符號串的方法。這種靈活度可允許編碼器選擇或改變符號串和通信的模式,以改進(jìn)壓縮。例如,可能是這樣的情形,其中不是所有的預(yù)定的符號串都被使用,以避免通過重復(fù)eog符號而用信號通知大量空組,例如可以有新的符號串,其用信號通知不再有組,這實(shí)際上意味著數(shù)據(jù)集的結(jié)尾或數(shù)據(jù)的結(jié)尾。
在許多情形下,輔助信息可以伴隨數(shù)據(jù)組。例如,在文本的情形下,字體、大小、深淺、顏色和/或樣式可包括這樣的輔助信息。這可以以許多方式被傳送或存儲。例如,輔助信息可以嵌入行程長度,或被插入到編碼的數(shù)據(jù)的任何位置,這樣,譯碼器可以適當(dāng)?shù)匕阉c符號串相關(guān)聯(lián)。在一個實(shí)施例中,可能希望處理輔助信息使之與符號串組合作為符號串本身,因而形成附加組。例如,作為一個簡單的例子,斜體‘e’可以形成與正常的‘e’分開的符號串。同樣地,在一個實(shí)施例中,如果期望的話,可利用專門的符號來在不同的嵌入樣式或方法之間切換。
根據(jù)所請求保護(hù)的主題的實(shí)施例可被應(yīng)用到所有類型的數(shù)據(jù)的編碼,包括非數(shù)字?jǐn)?shù)據(jù),諸如例如在進(jìn)行編碼之前通過任何方便的映射而被轉(zhuǎn)換成數(shù)字形式的符號數(shù)據(jù)。正如指出的,實(shí)施例對于行程長度編碼執(zhí)行得很好,但是當(dāng)然要理解所請求保護(hù)的主題不限于這種應(yīng)用。意圖將所請求保護(hù)的主題的實(shí)施例應(yīng)用到多種不同類型的數(shù)據(jù)編碼中的任一項(xiàng)。所以,所請求保護(hù)的主題將不在可用于的數(shù)據(jù)類型方面被限制。
當(dāng)然,將會看到,雖然已描述了特定的實(shí)施例,但所請求保護(hù)的主題在范圍上不限于特定的實(shí)施例或?qū)嵤┓桨浮@?,一個實(shí)施例可以是硬件形式,諸如被實(shí)現(xiàn)為在設(shè)備上或在多個設(shè)備的組合上運(yùn)行,而另一個實(shí)施例可以是軟件形式。同樣地,實(shí)施例可以以固件實(shí)現(xiàn),或例如作為硬件、軟件和/或固件的組合而實(shí)現(xiàn)。同樣地,雖然所請求保護(hù)的主題在范圍上不限于這方面,但一個實(shí)施例可包括一個或多個物品,諸如存儲介質(zhì)或存儲媒體。該存儲介質(zhì)——諸如一個或多個cd-rom和/或盤——可以在其上存儲指令,它如果被諸如計(jì)算機(jī)系統(tǒng)、計(jì)算平臺或其它系統(tǒng)那樣的系統(tǒng)執(zhí)行,可以導(dǎo)致根據(jù)所請求保護(hù)的主題的方法的實(shí)施例——諸如之前描述的實(shí)施例之一——被執(zhí)行。作為一個可能的例子,計(jì)算平臺可包括一個或多個處理單元或處理器、一個或多個諸如顯示器、鍵盤和/或鼠標(biāo)之類的輸入/輸出設(shè)備,和/或一個或多個存儲器,諸如靜態(tài)隨機(jī)存取存儲器、動態(tài)隨機(jī)存取存儲器、快閃存儲器和/或硬盤驅(qū)動器。
圖2示出系統(tǒng)200。系統(tǒng)200包括連接到數(shù)據(jù)集204的分析器202。分析器202從數(shù)據(jù)集204接收符號串206,并由此產(chǎn)生符號串碼208。如上所述的,分析器202可以是硬件、軟件和/或固件的組合。
在前述的說明中,描述了所請求保護(hù)的主題的各方面。出于解釋的目的,特定的數(shù)目、系統(tǒng)和/或配置被闡述以提供對所請求保護(hù)的主題的透徹了解。然而,從本公開內(nèi)容獲益的本領(lǐng)域技術(shù)人員應(yīng)當(dāng)看到,所請求保護(hù)的主題可以無需特定的細(xì)節(jié)而被實(shí)踐。在其它實(shí)例中,公知的特征被省略和/或被簡化,以免使所請求保護(hù)的主題模糊。雖然這里已經(jīng)說明和/或描述了某些特征,現(xiàn)在對本領(lǐng)域技術(shù)人員而言可以有許多修改、替換、改變和/或等價(jià)物。所以,應(yīng)當(dāng)理解,所附權(quán)利要求意圖覆蓋在所請求保護(hù)的主題的實(shí)質(zhì)精神內(nèi)的所有的這樣的修改和/或改變。