專利名稱:在壓縮之前處理數(shù)字?jǐn)?shù)據(jù)的制作方法
技術(shù)領(lǐng)域:
本申請涉及在壓縮之前處理數(shù)字?jǐn)?shù)據(jù)。
背景技術(shù):
壓縮例如對于減少通信線路上從一個計算機到另一個計算機傳送的位量而言是有用的,并且能用這種方法來縮減傳送所需的時間。在能實現(xiàn)的壓縮度方面,數(shù)字?jǐn)?shù)據(jù)串的統(tǒng)計特性施加通常所說的熵速率的基本限制。
圖1示出計算機的框圖。
圖2示出在壓縮之前處理位串。
圖3示出預(yù)壓縮程序的流程圖。
圖4示出在解壓之后處理位串。
圖5示出后解壓程序的流程圖。
詳細(xì)說明如圖1(a)所示,在一些實施方式中,通過在壓縮之前將串預(yù)處理成兩個位串A和B 30、40來接近用于壓縮位串20的熵速率,所述兩個位串A和B包括比初始串更少的邏輯電平0位。在減少邏輯電平0位的數(shù)目的過程中,可以使特定位具有邏輯電平1位的概率大于邏輯電平0位的概率。通過增大這一概率差,位串A 30和位串B 40的后續(xù)壓縮能產(chǎn)生接近熵速率的壓縮串。
參照圖2,位20的初始串可以包含任意數(shù)目(N)位,例如,如圖2(a)所示的那樣。每一位都用黑格或白格來表示,對于邏輯電平0位而言是黑格,對于邏輯電平1位而言是白格。如圖2(b)所示,位串A 30和位串B 40是由位串20形成的兩個子串。位串A 30包括來自初始位串20的連續(xù)置位的邏輯0位的所有塊,并且它們像在初始位串中那樣在位串A中占據(jù)相同位置。位串B 40包含所有非連續(xù)置位的邏輯電平0位,同樣在它們的原始位置。在這個示例中,位串A 30包括來自初始位串20的7個連續(xù)邏輯0位280的塊,還包括來自初始位串20的4個連續(xù)邏輯0位285的塊。假定位串A中的所有其它位都是邏輯電平1。位串B 40也具有N位的長度,并且在這個示例中,它包括初始位串中所包含的并且沒有位于連續(xù)邏輯0位的塊之內(nèi)的兩個邏輯0位287、289。假定串B中的所有其它位都是邏輯電平1。
在圖3中舉例說明了用于生成串A和B的過程,該過程起始于在壓縮之前開始(310)的處理程序(300)。由計算機接收(320)初始位串以供處理成具有減少了邏輯電平0位的數(shù)目的兩個位串A和B。將初始位串分離(330)成位串A和位串B。
接下來,正如在圖2(c)中舉例說明的那樣,從串B中刪掉與位串A 30中的連續(xù)邏輯0位的塊具有相同置位的位串B 40中的那些邏輯1位。通過刪除位串B中的這些位,位串B被縮至N-M位的長度,其中M是串A中所含的邏輯0位的數(shù)目。在圖2(c)的示例中,按M=11位來縮短位串B。
如圖3所示,在刪除(340)位串B中的位之后,除了定義保持邏輯電平0的邏輯0位塊的邊緣的邏輯0位282、284保持在邏輯電平0以外,位串A中的所有邏輯0位都被轉(zhuǎn)化(350)為邏輯電平1。由此,如圖2(d)所示,位串A 30中僅有的邏輯0位是定義邏輯0位的塊280,285的開始282位和結(jié)束284位的位。
通過減少位串A 30和位串B 40中的邏輯0位的數(shù)目,在任何特定位上出現(xiàn)邏輯電平0的概率小于在該特定位上出現(xiàn)邏輯電平1的概率。通過增大邏輯電平1和邏輯電平0的概率差,壓縮位串A和位串B所需的位數(shù)目接近于理論壓縮長度——熵速率。通過接近熵速率,壓縮所需要的更少的位對應(yīng)于更快的壓縮位串的傳送周期。
返回到圖3,在已經(jīng)轉(zhuǎn)化(350)了位串A的邏輯0位之后,除塊起始位和結(jié)束位之外,程序(300)在結(jié)束(370)之前將位串A 30和位串B傳遞(360)給用于壓縮這兩個位串的任何典型程序。例如,可以把位串A 30和位串B 40連結(jié)成長度N+N的單個位串,并且例如利用哈夫曼(Huffman)壓縮技術(shù)來對其進行壓縮。因為兩個串中的位大部分都是邏輯電平1的,所以壓縮能夠比通常符合于初始串壓縮所得到的更接近于熵速率。
參照圖4,可以通過使圖2中舉例說明的過程逆向執(zhí)行來恢復(fù)初始位串20。在將兩個子串解壓縮和解除連結(jié)之后,如圖4(a)所示,位串A 30和位串B 40在長度上是相等的,并且接近圖2(d)中所示的位串。類似于圖2,黑格仍然表示邏輯0位,而白格仍然表示邏輯1位。如圖4(b)所示,開始(282)位與結(jié)束(284)位之間的邏輯1位從邏輯電平1轉(zhuǎn)化為邏輯電平0,并且形成了7格連續(xù)置位的邏輯0位280的塊和4個連續(xù)置位的邏輯0位285的塊。
在圖5中舉例說明了用于恢復(fù)初始位串20的過程,該過程起始于在已經(jīng)將位串A 30和位串B 40解壓縮和解除連結(jié)之后開始(510)的處理程序(500)。例如,由計算機來接收(520)位串A和位串B以供處理成初始位串20。轉(zhuǎn)化(530)起始位和結(jié)束位之間的邏輯1位,以把邏輯0位的連續(xù)置位的塊恢復(fù)成位串A。
接下來,正如在圖4(c)中舉例說明的那樣,在位串A 30中的對應(yīng)邏輯0位280、285的塊的位置上向位串B 40添補邏輯1位。在這個示例中,通過添補在圖2(c)中刪除掉的11個邏輯1位,來使位串B恢復(fù)成N位的長度。
如圖5所示,在向位串B添補(540)邏輯1位之后,通過對每個位串的相同置位上的每個位對邏輯求和來組合(550)兩個位串。由此,正如在圖4(d)中舉例說明的那樣,組合位串A和B產(chǎn)生了N長度的位串20,所述N長度的位串20是圖2(a)中所示的位串20的副本。
返回到圖5,在組合兩個位串之后,例如傳遞(560)副本位串以便在程序結(jié)束(570)之前進一步處理副本位串20中存儲的二進制信息。
返回到圖1(a),初始位串20的處理是用包括計算機10中所包含的輸入端口90的硬件和軟件來進行的,在所述計算機中接收初始位串20。把接收到的串存儲在存儲器60中。存儲器60還包括用于將位串20處理成位串A 30和位串B 40的軟件100。軟件100還可以包括用以將兩個位串30、40壓縮成壓縮位串70的指令,壓縮位串也同樣存儲在存儲器60中。在壓縮之后,可以經(jīng)由輸出端口110把壓縮位串70從存儲器60傳送到其它的計算機或其它的設(shè)備。計算機10還包括執(zhí)行同樣存儲在存儲器60中的軟件100指令和操作系統(tǒng)120指令的處理器50。
參照圖1(b),可以經(jīng)由另一個計算機200中所包含的輸入端口210來接收壓縮位串70,以供進行解壓縮和進一步的處理。通過將壓縮位串70從計算機10傳送到計算機200,縮減了傳送的位的數(shù)目以及傳送周期??梢詫嚎s位串70存儲在計算機200中所包含的存儲器220中,所述存儲器還存儲了軟件230以便將壓縮位串70解壓縮并將恢復(fù)后的位串A 30和B 40處理成初始位串20的副本。處理器240可以執(zhí)行軟件230的指令以供解壓縮和處理數(shù)字?jǐn)?shù)據(jù)。在解壓縮和處理之后,可以通過執(zhí)行存儲在操作系統(tǒng)260中同時也存儲在存儲器220中的指令、經(jīng)由輸出端口250將位串20從計算機200傳送出去。還可以將位串20保留在存儲器220中,以供進一步在計算機200上處理。
盡管已經(jīng)論述了一些實施方式示例,但是其它的實施方式也同樣落入下列權(quán)利要求的范圍內(nèi)。
例如,在結(jié)合圖1論述的實施方式中,計算機10和200處理位串20。然而,其它類型的數(shù)字設(shè)備,比如像蜂窩式電話、個人數(shù)字助理(PDA)、傳呼機或其它類似的數(shù)字設(shè)備,都可以用來處理位串20。此外,也可以分別地或者組合地利用這些數(shù)字設(shè)備來處理位串20。
同樣結(jié)合圖1,各種設(shè)備都可以輸入和輸出位串A 30和B 40。輸入端口90和210以及輸出端口110和250是一個示例。在其它的示例中,鍵盤、磁盤、光盤只讀存儲器(CD-ROM)或以太網(wǎng)連接都能夠輸入和輸出位串。此外,視頻顯示器、打印機或其它外設(shè)也可以輸出來自于計算機的位串。
結(jié)合圖2-5,處理程序(300)和(500)都是對邏輯0位的塊進行操作的。然而,處理程序(300)和(500)也可以被配置成能對邏輯1位的塊進行操作。處理程序(300)和(500)也可以使用其它的離散邏輯表示。
在上述示例中,通過計算機10和計算機200來對初始位串20以及位串A 30和B 40進行處理、壓縮、傳送、解壓縮和再處理。然而,可以在計算機之間傳送其它類型的數(shù)字?jǐn)?shù)據(jù)。例如,可以在計算機之間傳送數(shù)字?jǐn)?shù)據(jù)文件、數(shù)字?jǐn)?shù)據(jù)流或其它類似的數(shù)字?jǐn)?shù)據(jù)。
結(jié)合圖2和3描述的程序(300)以及結(jié)合圖4和5描述的程序(500)不限于任何特定的硬件或軟件配置;它們在任何計算或處理環(huán)境中都可能存在可用性。可以用硬件、軟件或上述兩者的任意組合來實現(xiàn)程序(300)和(500)??梢杂迷诜謩e包括處理器、處理器可讀的機器可讀介質(zhì)(包括易失性和非易失性存儲器和/或存儲元件)、至少一個輸入設(shè)備和一個或多個輸出設(shè)備的機器(例如,可編程計算機)上執(zhí)行的計算機程序來實現(xiàn)程序(300)和(500)。也可以用專用集成電路(ASIC)來實現(xiàn)程序(300)和(500)。結(jié)合圖1,可以將程序代碼應(yīng)用于計算機10和計算機200所接收的位串20,以便執(zhí)行程序(300)或程序(500),或者產(chǎn)生輸出信息??梢詫⑤敵鲂畔?yīng)用于一個或多個設(shè)備,比如像輸出端口110和250。
每個計算機程序都可以用高級程序或面向?qū)ο蟮某绦蛟O(shè)計語言來實現(xiàn),以便與計算機系統(tǒng)進行通信。然而,如果希望的話,所述計算機程序也能夠用匯編語言或機器語言來實現(xiàn)。在任何情況下,所述語言都可以是編譯語言的或解釋語言。
每個計算機程序都可以存儲在機器(例如,通用或?qū)S每删幊逃嬎銠C)可讀的機器可讀介質(zhì)或設(shè)備上,例如,隨機存取存儲器(RAM)、只讀存儲器(ROM)、光盤只讀存儲器(CD-ROM)、硬盤驅(qū)動器、軟磁盤或類似的介質(zhì)或設(shè)備,以供當(dāng)機器讀取可讀介質(zhì)或設(shè)備以執(zhí)行程序(300)和程序(500)時配置和搡作所述機器。程序(300)和程序(500)還可以作為配置有計算機程序的機器可讀存儲介質(zhì)來實現(xiàn),其中一旦執(zhí)行所述計算機程序,該計算機程序中的指令就令所述機器依照程序(300)和程序(500)來進行操作。
程序(300)可以對一個計算機進行操作,而程序(500)可以對公開的計算機進行操作。
權(quán)利要求
1.一種方法,包括接收初始位串,每一位表示兩個邏輯電平中的一個或另一個,所述位串承載信息;以及根據(jù)初始串來形成新串,所述新串承載所有所述信息并且包括的邏輯電平之一的位比初始串中所包含的少。
2.如權(quán)利要求1所述的方法,其中所述新串比初始串更長而且比初始串的長度的兩倍短。
3.如權(quán)利要求1所述的方法,其中所述新串包括根據(jù)初始串而形成的兩個子串。
4.如權(quán)利要求3所述的方法,其中所述兩個子串包括第一位串和第二位串,所述第一位串包括至少兩個連續(xù)置位的具有第一邏輯電平的位,而所述第二位串包括剩余的非連續(xù)置位的具有該第一邏輯電平的位,所述至少兩個連續(xù)置位的位是由起始位和結(jié)束位定義的。
5.如權(quán)利要求4所述的方法,其中所述形成步驟包括與第一位串中所包含的至少兩個連續(xù)置位的位相對應(yīng)從第二位串中刪除至少兩位,并將第一位串中的該至少兩個連續(xù)置位的位轉(zhuǎn)化為第二邏輯電平,不轉(zhuǎn)化起始位和結(jié)束位。
6.如權(quán)利要求1所述的方法,進一步包括對新串進行壓縮。
7.一種方法,包括接收位串,每一位表示兩個邏輯電平中的一個或另一個,所述位串承載較少位的其中一個邏輯電平,所述位串承載信息;以及形成新串,所述新串承載所有所述信息并且包括的邏輯電平之一的位比該位串中所包含的多。
8.如權(quán)利要求7所述的方法,其中所述新串比接收到的串更短。
9.如權(quán)利要求7所述的方法,其中所述接收到的串包括根據(jù)初始串而形成的兩個子串。
10.如權(quán)利要求9所述的方法,其中所述兩個子串包括第一位串和第二位串,所述第一位串包括由起始位和結(jié)束位定義的至少兩個連續(xù)置位的具有第一邏輯電平的位。
11.如權(quán)利要求10所述的方法,進一步包括將第一位串中的至少兩個連續(xù)置位的位轉(zhuǎn)化為第二邏輯電平,不轉(zhuǎn)化起始位和結(jié)束位。
12.一種數(shù)字設(shè)備,包括處理器,其被配置成能執(zhí)行指令;和存儲器,存儲能使處理器執(zhí)行以下操作的指令接收初始位串,初始位串的每一位表示兩個邏輯電平中的一個或另一個,所述串的位承載信息以及,根據(jù)初始串來形成新串,所述新串承載所有所述信息并且包括的邏輯電平之一的位比初始串中所包含的少。
13.如權(quán)利要求12所述的數(shù)字設(shè)備,其中所述新串比初始串更長,并且比初始串的長度的兩倍短。
14.如權(quán)利要求12所述的數(shù)字設(shè)備,其中所述新串包括根據(jù)初始串而形成的兩個子串。
15.一種數(shù)字設(shè)備,包括處理器,其被配置成能執(zhí)行指令;和存儲器,其存儲能使處理器執(zhí)行以下操作的指令接收位串,位串中每一位表示兩個邏輯電平中的一個或另一個,所述位串承載較少位的其中一個邏輯電平,所述位串承載信息,形成新串,所述新串承載所有所述信息并且包括的邏輯電平之一的位比位串中所包含的多。
16.如權(quán)利要求15所述的數(shù)字設(shè)備,其中所述新串比接收到的串更短。
17.如權(quán)利要求15所述的數(shù)字設(shè)備,其中所述接收到的位串包括兩個子串。
18.一種包括機器可讀介質(zhì)的產(chǎn)品,所述機器可讀介質(zhì)存儲能使數(shù)字設(shè)備執(zhí)行下列操作的指令接收初始位串,每一位表示兩個邏輯電平中的一個或另一個,所述位串承載信息;以及根據(jù)初始串來形成新串,所述新串承載所有所述信息并且包括的邏輯電平之一的位比初始串中所包含的少。
19.如權(quán)利要求18所述的機器可讀介質(zhì),其中所述新串比初始串更長而且比初始串的長度的兩倍短。
20.如權(quán)利要求18所述的機器可讀介質(zhì),其中所述新串包括根據(jù)初始串而形成的兩個子串。
21.一種包括機器可讀介質(zhì)的產(chǎn)品,所述機器可讀介質(zhì)存儲能使數(shù)字設(shè)備執(zhí)行下列操作的指令接收位串,每一位表示兩個邏輯電平中的一個或另一個,所述位串承載較少位的其中一個邏輯電平,所述位串承載信息;以及形成新串,所述新串承載所有所述信息并且包括的邏輯電平之一的位比位串中所包含的多。
22.如權(quán)利要求21所述的機器可讀介質(zhì),其中所述新串比接收到的串更短。
23.如權(quán)利要求21所述的機器可讀介質(zhì),其中所述接收到的串包括兩個子串。
24.一種方法,包括接收初始位串,每一位表示兩個邏輯電平中的一個或另一個,所述位串承載信息;以及根據(jù)初始串來形成第一位串和第二位串,所述第一位串包括至少兩個連續(xù)置位的具有第一邏輯電平的位,而所述第二位串包括剩余的非連續(xù)置位的具有該第一邏輯電平的位,所述至少兩個連續(xù)置位的位是由起始位和結(jié)束位定義的。
25.如權(quán)利要求24所述的方法,進一步包括與第一位串中所包含的所述至少兩個連續(xù)置位的位相對應(yīng)從第二位串中刪除至少兩位;將第一位串中的所述至少兩個連續(xù)置位的位轉(zhuǎn)化為第二邏輯電平,不轉(zhuǎn)化起始位和結(jié)束位;以及對新串進行壓縮。
26.如權(quán)利要求25所述的方法,進一步包括將新串解壓縮成第一和第二位串;以及將解壓縮后的第一位串中的至少兩個連續(xù)置位的位轉(zhuǎn)化為第一邏輯電平,不轉(zhuǎn)化起始位和結(jié)束位。
27.如權(quán)利要求26所述的方法,進一步包括與解壓縮后的第一位串中所包含的至少兩個連續(xù)置位的具有第一邏輯電平的位相對應(yīng),向解壓縮后的第二位串添補至少兩位;以及組合解壓縮后的第一位串和解壓縮后的第二位串。
28.一種系統(tǒng),包括位串的源;和數(shù)字設(shè)備,其被配置成從源接收位串,每一位表示兩個邏輯電平中的一個或另一個,所述位串承載信息;以及根據(jù)初始串來形成新串,所述新串承載所有所述信息并且包括的邏輯電平之一的位比初始串中所包含的少。
29.如權(quán)利要求28所述的系統(tǒng),其中所述新串比初始串長,并且比初始串的長度的兩倍短。
30.如權(quán)利要求28所述的系統(tǒng),其中所述新串包括基于初始串的兩個子串。
全文摘要
一種方法,包括接收位的初始串,其中每一位都表示兩個可能邏輯電平的其中一個。一種包括兩個子串的新串是根據(jù)初始串形成的,其中第一子串包括至少兩個連續(xù)置位的具有第一邏輯電平的位,而第二子串包括剩余的非連續(xù)置位的具有第一邏輯電平的位。對新串進行壓縮。
文檔編號H03M7/46GK1656688SQ03811992
公開日2005年8月17日 申請日期2003年3月11日 優(yōu)先權(quán)日2002年3月25日
發(fā)明者R·楊 申請人:英特爾公司