專利名稱:利用歷史信息的穩(wěn)健的德爾塔編碼技術的制作方法
技術領域:
總的來說本發(fā)明涉及數(shù)據(jù)包通信,具體而言,涉及數(shù)據(jù)包通信中的報頭壓縮。
背景技術:
由于因特網(wǎng)的巨大成功,在所有種類的鏈路上利用因特網(wǎng)協(xié)議IP成為一項艱巨的工作(例如參考John Postel,《因特網(wǎng)協(xié)議》,DARPARFC 791,1981年9月,在這里將它引入作為參考)。但是,由于因特網(wǎng)協(xié)議被設計成用于具有很大帶寬的有線鏈路,同時因特網(wǎng)協(xié)議的數(shù)據(jù)包報頭很大,因此在窄帶鏈路上采用因特網(wǎng)協(xié)議,例如在蜂窩鏈路上這樣做,并不總是一件簡單的事情。如果我們考慮將因特網(wǎng)協(xié)議用于實時數(shù)據(jù),例如普通語音,用戶數(shù)據(jù)報協(xié)議UDP(例如JohnPostel,《用戶數(shù)據(jù)報協(xié)議》,DARPARFC 768,1980年8月,在這里將它引入作為參考)和實時傳輸協(xié)議RTP(例如Henning Schulzrinne,Stephen L.Casner,Ron Frederick和Van Jacobson,《RTP實時應用的一種傳輸協(xié)議》,IETF RFC 1889,IETF音頻/視頻傳輸工作組,1996年1月,在這里將它引入作為參考)被用于因特網(wǎng)協(xié)議的頂層。除此以外它們總共需要40個八位位組的報頭(ITP 20個,UDP 8個,RTP 12個八位位組)。如果我們將這些報頭需求跟幀尺寸只有15到20個八位位組的普通語音應用結合起來,報頭部分就會占用數(shù)據(jù)包的70%以上。對于即將出現(xiàn)的新因特網(wǎng)協(xié)議第6版(例如StevenDeering和Robert Hinden,《因特網(wǎng)協(xié)議第6版(Ipv6)規(guī)范》,RFC2460,IETF網(wǎng)絡工作組,1998年12月,在這里將它引入作為參考),它的報頭有40個字節(jié),這個問題更加突出。通過無線鏈路進行傳輸?shù)臅r候,縮小報頭將提高頻帶利用率,節(jié)省經(jīng)費。
報頭壓縮(HC)這個術語指的是使點到點鏈路中每一跳報頭必不可少的信息的帶寬盡可能地小。報頭壓縮利用了這樣一個事實,那就是在一個流中報頭的一些字段并不改變,大多數(shù)報頭的變化都很小并且/或者是可以預測的。傳統(tǒng)的報頭壓縮方案利用了這些事實,并且一開始只發(fā)送靜態(tài)信息,而變化的字段則作為無壓縮值發(fā)送(例如完全隨機的信息),或者作為數(shù)據(jù)包之間的差發(fā)送,而后者通常被叫作差分(或者德爾塔)編碼。采用差分編碼方式的時候,壓縮方案可能會非常脆弱,它的性能很大程度上依賴于鏈路質量。例如,如果鏈路上數(shù)據(jù)包丟失是常見的事情,那么鏈路上就會經(jīng)常出現(xiàn)數(shù)據(jù)包連續(xù)丟失的現(xiàn)象,從而使質量下降。
傳統(tǒng)的報頭壓縮/解壓縮方法常常是用狀態(tài)機來實現(xiàn)的,保持壓縮器和解壓縮器狀態(tài)(也就是上下文)互相兼容是非常艱巨的任務。
一般情況下,有兩種不同的傳統(tǒng)技術用來對解壓縮器上下文進行更新。第一種技術采用周期性的刷新方式,其中發(fā)送的是純報頭數(shù)據(jù)。這種解決方式的優(yōu)點是它的性能不受鏈路往返時間(RTT)的影響,原因是從不需要從解壓縮器發(fā)送任何消息給壓縮器這樣一個事實。這意味著它也能工作于單工鏈路。另一方面,周期刷新方式有許多缺點。例如,平均得報頭系統(tǒng)開銷將很大,因為有許多大刷新報頭,它們中的大多數(shù)都是不必要的。如果鏈路上出現(xiàn)差錯是非常常見的,丟失的數(shù)據(jù)包的數(shù)量也將很大。
更新上下文的其它一般方式是只有在解壓縮器發(fā)出請求的時候才讓壓縮器發(fā)送刷新信息(也就是純報頭數(shù)據(jù)。這樣做需要有一條雙工鏈路,但是能夠減少平均的報頭系統(tǒng)開銷,因為不進行任何毫無必要的更新。如果往返時間很短,這一解決方案還能夠減少由于發(fā)生鏈路錯誤以后上下文狀態(tài)不兼容而丟失的數(shù)據(jù)包的數(shù)量。明顯的缺點是對雙工鏈路信道的依賴性,對鏈路上丟失的數(shù)據(jù)包的敏感性,以及當往返時間很長,出現(xiàn)無效上下文(以及有關刷新請求)的時候,對大量連續(xù)丟失的數(shù)據(jù)包的依賴性。
對于所有的報頭壓縮方案,用兩個量來描述它們的性能。壓縮效率描述報頭被壓縮的程度。這可以用平均或者最大報頭大小來表示,也可以同時用這兩者來表示,或者用其它方式表示。堅固性描述這個方案處理鏈路上數(shù)據(jù)丟失事件的能力。丟失一個數(shù)據(jù)包會不會使報頭上下文不兼容而導致隨后大量數(shù)據(jù)包丟失?通常情況下,多數(shù)傳統(tǒng)報頭壓縮方案工作得都非常好,但是它們要求鏈路的差錯率很低,往返時間很短。
目前,有許多不同的傳統(tǒng)報頭壓縮方案。事實上,它們并不是真正不同的方案,而只是同一個方案的不同發(fā)展階段。最早的建議(見Van Jacobson的《低速串行鏈路的壓縮TCP/IP報頭》,IETF RDC1144,IETF網(wǎng)絡工作組,1990年2月,在這里將它引入作為參考)只處理傳輸控制協(xié)議(見Jon Postel的《傳輸控制協(xié)議》,DARPA RFC761,1980年1月,在這里將它引入作為參考)流,而以后則能夠對用戶數(shù)據(jù)報協(xié)議和實時傳輸協(xié)議進行壓縮(例如Mikael Degermark,Bjorn Nordgren和Stephen Pink的《IP報頭壓縮》,IETF RFC 2507,IETF網(wǎng)絡工作組,1999年2月,在這里將它引入作為參考;StevenCasner和Van Jacobson的《低速串行鏈路的IP/UDP/RTB報頭壓縮》,IETF RFC 2508,IETF網(wǎng)絡工作組,1999年2月,在這里將它引入作為參考)。因此今天可以說對于實時數(shù)據(jù)流只有一種方案對報頭進行壓縮(見上面的Casner和Jacobson),目前它正在EITF中由音頻/視頻傳輸工作組進行標準化,在這里將它叫做CRTP。
CRTP將40個八位位組的RTP/UDP/IP報頭壓縮到兩個八位位組,只要這些鏈路是可靠的,這個最小的尺寸幾乎等于平均值。CRTP對三個字段采用差分編碼CRTP序列號碼字段;CRTP時間標記字段和因特網(wǎng)協(xié)議報頭的ID字段。如上所述,CRTP采用更新請求來更新無效的解壓縮上下文。
也可以采用更一般的方案壓縮用戶數(shù)據(jù)包/因特網(wǎng)協(xié)議報頭(見上面的Degermark等等),它采用周期性刷新原理,而實時傳輸協(xié)議報頭則在隨后以不壓縮的方式發(fā)送,使得每個數(shù)據(jù)包增加12個報頭八位位組。
只要使用的鏈路誤碼率很低和/或往返時間很短,CRTP就能夠很好地工作。但是,無線鏈路常常不是這樣。往返時間一般都很大,導致在解壓縮器收到上下文更新消息之前大量數(shù)據(jù)包連續(xù)丟失。這對于實時音頻和視頻通常都是不允許的。整個數(shù)據(jù)包丟失率也會太大,而且沒有人認為能夠改善無線鏈路特性使結果更好。誤碼率和往返時間的下降都要付出太多的代價。于是,CRTP的堅固性被它的脆弱性所取代。
本發(fā)明給出一個原理,它在發(fā)送的每個數(shù)據(jù)包中包括以前發(fā)送的一定個數(shù)數(shù)據(jù)包的差(德爾塔)值歷史信息。這樣,壓縮方案變得更加穩(wěn)健,更能夠承受數(shù)據(jù)包的丟失,因為丟失的差信息可以用這個歷史信息來重構。
附圖簡述
圖1是本發(fā)明中數(shù)據(jù)包數(shù)據(jù)發(fā)射臺的一個實例。
圖2是圖1所示報頭壓縮器的一個實施方案實例。
圖3是圖1和圖2所示報頭壓縮器能夠進行的操作實例。
圖4是本發(fā)明中數(shù)據(jù)包數(shù)據(jù)接收臺的一個實例。
圖5是圖4所示報頭解壓縮器的一個實施方案實例。
圖5A是圖5所示實施方案的另外一個選擇。
圖6是圖4~5A所示報頭解壓縮器實施方案能夠進行的操作實例。
發(fā)明詳述如上所述,鏈路上丟失數(shù)據(jù)包會導致報頭壓縮器的相應上下文狀態(tài)跟報頭解壓縮器的上下文狀態(tài)不一致。這種不一致會降低通信服務的質量,因為在上下文不一致的時候到達的數(shù)據(jù)包不能傳遞給用戶應用程序。如果報頭壓縮/解壓縮方案能夠容忍丟失一些數(shù)據(jù)包而不會出現(xiàn)上下文不一致的情況,就能夠避免質量出現(xiàn)難以接受的下降。按照本發(fā)明,假設在時間上連續(xù)的數(shù)據(jù)包,數(shù)據(jù)包P-2、數(shù)據(jù)包P-1、數(shù)據(jù)包P等等也能夠攜帶前面的報頭p-1、P-2等等的信息,那么在鏈路上丟失一些數(shù)據(jù)包也能夠被容忍而不會出現(xiàn)上下文不一致的情況。為了在給定數(shù)據(jù)包信息中包括前面的數(shù)據(jù)包的報頭信息,可以對總的信息進行編碼,以避免使報頭的大小變成大得難以令人接受。這樣,如同前面已經(jīng)描述的和下面將更加詳細地描述的一樣,可以在給定數(shù)據(jù)包的報頭中包括前面數(shù)據(jù)包報頭的至少一部分歷史信息,以便能夠在丟失數(shù)據(jù)包的時候進行恢復而不出現(xiàn)上下文不一致的情況。包括在給定報頭中的歷史信息的范圍可以互不相同,下面將詳細描述。
在以下描述中將采用下面的定義。
報頭解壓縮(HD)指的是從報頭壓縮過程產(chǎn)生的壓縮報頭信息重構所需要的(未壓縮)報頭信息的過程。
報頭壓縮和解壓縮間損失(LCD)是報頭壓縮和報頭解壓縮器之間鏈路上的數(shù)據(jù)包損失參數(shù)。這個參數(shù)描述如果采用改變字段的編碼原理建議,在這條鏈路上報頭壓縮方案能夠容忍的最大數(shù)量的連續(xù)數(shù)據(jù)包丟失。當然,這一點要求這個方案中沒有任何其它機制對損失更加敏感。
報頭壓縮前損失(LBC)是數(shù)據(jù)包流到報頭壓縮器之前發(fā)生的損失。這可能是連接的另外一端的損失,例如在采用同一個報頭壓縮方案的相同的窄帶鏈路上,但是它也可能是在它們之間的鏈路(核心網(wǎng)絡)上的損失。因為在這樣可靠的一條鏈路上丟失數(shù)據(jù)包的可能性很小,跟窄帶鏈路相比它的損失可以忽略不計。之所以要這樣簡化是因為這樣做以后將報頭壓縮前損失要求設置成跟報頭壓縮和解壓縮間損失的值相同就是合理的。
單個德爾塔(ID)代表跟前一個數(shù)據(jù)包相比字段的變化。如果一個報頭的序列號是42,前一個報頭的序列號是40,那么數(shù)據(jù)包42的單個德爾塔就是ID=2。
累加德爾塔(AD)是前面K個數(shù)據(jù)包的ID值的和,其中K取決于這個方案要記住變化的能力有多強。從以下描述可以看到,K值較大具有更強的穩(wěn)健性,從而能夠適應更大的報頭壓縮前損失。
編碼德爾塔值(ED)是對兩個參數(shù)ID和AD進行編碼,從而使它們能夠用一個參數(shù)表示。
上面介紹的時間上連續(xù)的數(shù)據(jù)包序列,數(shù)據(jù)包P-2、數(shù)據(jù)包P-1、數(shù)據(jù)包P等等,的第P個數(shù)據(jù)包的給定報頭字段的ID由下面的等式1給出。
IDP=SP-SP-1(1)這樣,這個序列第P個數(shù)據(jù)包的單個德爾塔IDP由數(shù)據(jù)包P的字段跟它前一個數(shù)據(jù)包P-1的相應字段之間的差給出。在等式1中數(shù)據(jù)包P和P-1的序列號字段被分別指定為SP和SP-1。
上面描述的累加德爾塔值可以針對數(shù)據(jù)包P定義為以下等式2。ADP=ΣX=1KIDP-X,K≥2----(2)]]>這樣,累加德爾塔值ADP代表數(shù)據(jù)包序列中數(shù)據(jù)包P之前發(fā)射的選定個數(shù)(K)數(shù)據(jù)包相應單個德爾塔值的和。
如同下面的等式3所示,數(shù)據(jù)包P的單個德爾塔和累加德爾塔值IDP和ADP可以用編碼函數(shù)f進行編碼,產(chǎn)生編碼德爾塔值,EDPEDP=f(IDP,ADP) (3)這個編碼德爾塔值EDP被隨后作為壓縮報頭的一部分發(fā)射。在接收端,f的導數(shù)f-1被用于編碼德爾塔值,恢復單個德爾塔值和累加德爾塔值,如同等式4所示。
(EDP,ADP)=f-1(EDP)(4)本發(fā)明利用上面的等式1和2成功地保持通信信道中丟失多個連續(xù)數(shù)據(jù)包的情況下解壓縮器的上下文維持有效。例如,如果上面的等式2中K的值被設置為等于2,那么就能夠在接收端處理連續(xù)丟失兩個數(shù)據(jù)包這種情況。如果上面的等式2中K等于2,那么數(shù)據(jù)包P的累加德爾塔值由下面的等式5給出。
ADP=IDP-1+IDP-2(5)下面的等式6、7和8分別代表能夠用本發(fā)明的報頭解壓縮方案進行解壓縮的第一個、第二個和第三個估測值。
SP=SLAST+IDP(6)SP=SLAST+IDP+ADP-IDLAST(7)SP=SLAST+IDP+ADP(8)在等式6~8中的每一個等式里,第一項SLAST代表在接收機中收到的數(shù)據(jù)包P前面(也就是倒數(shù)第二個數(shù)據(jù)包)那一個數(shù)據(jù)包的字段值(在這個實例中是序列號字段值),等式7中的IDLAST代表相應的ID值。這樣,從等式6可以看出,如果SLAST是SP-1(沒有丟失數(shù)據(jù)包),就可以預期從等式6可以獲得等式1所示的SP的值。
但是,如果SLAST不是SP-1,那么從等式6就不能獲得SP的正確值,于是可以從等式7第二次嘗試估測SP。如果SLAST是SP-2(數(shù)據(jù)包P-1被丟失),就能夠預期用等式7能夠獲得SP的正確值。否則,用等式7將獲得一個不正確的值,于是就能夠用等是8來估測SP。如果SLAST是SP-3(數(shù)據(jù)包P-1和P-2被丟失),那么就能夠預期利用等式8能夠獲得SP的正確值。否則,用等式8同樣不能獲得正確值。從以上討論可以發(fā)現(xiàn),在數(shù)據(jù)包P到來之前只要丟失的數(shù)據(jù)包不超過連續(xù)兩個數(shù)據(jù)包,用上面的3次連續(xù)估測就能夠找到正確值SP。
回到等式7,如上所述,如果只丟失一個數(shù)據(jù)包,這個等式就能夠提供正確的值。在這種情況下,最后到達的數(shù)據(jù)包將是數(shù)據(jù)包P-2,因此SLAST和IDLAST就分別是SP-2和IDP-2,這樣就得到下面的等式7A。
SP=SP-2+IDP+IDP-1(7A)認識到SP-2可以用圖7B表示,SP-2=SP-1-IDP-1(7B)
并且用這個表達式替換等式7A中的SP-2,我們得到SP=SP-1+IDP(7C)將等式1跟等式7C進行比較就會發(fā)現(xiàn),如果最后收到的數(shù)據(jù)包是數(shù)據(jù)包P-2,利用等式7就能夠獲得正確結果。
回到等式8,如上所述,如果連續(xù)丟失2個數(shù)據(jù)包,可以預期這個等式能夠提供SP的正確值。在這種情況下,最后收到的數(shù)據(jù)包將是P-3,因此SLAST將是SP-3。將SP-3和(從等式5獲得的)ADP代入等式8就能夠得到下面的等式8A。
SP=SP-3+IDP+IDP-1+IDP-2(8A)認識到SP-3能夠表示成下面的等式8B。
SP-3=SP-2-IDP-2(8B)并且回憶起SP-2能夠表示成上面的等式7B,于是SP-3可以表示成下面的等式8C。
SP-3=SP-1-IDP-1-IDP-2(8C)將SP-3的表達式8C代入等式8A就得到下面的等式8D。
SP=SP-1+IDP(8D)將上面的等式1跟等式8進行比較發(fā)現(xiàn),如果最后收到的數(shù)據(jù)包是數(shù)據(jù)包P-3,利用等式8就能夠獲得正確結果。
下面的等式9對應于K=3的情況下上面的等式2。
ADP=IDP-1+IDP-2+IDP-3(9)利用累加德爾塔的這一公式,在連續(xù)丟失多達三個數(shù)據(jù)包的情況下,可以用下面的等式10~13來維持解壓縮器上下文有效。
SP=SLAST+IDP(10)SP=SLAST+IDP+ADP-IDLAST-IDNEXTLAST(11)SP=SLAST+IDP+ADP-IDLAST(12)SP=SLAST+IDP+ADP(13)具體而言,等式10假設在數(shù)據(jù)包P之前收到了數(shù)據(jù)包P-1(沒有丟失數(shù)據(jù)包),等式11假設在數(shù)據(jù)包P之前收到了數(shù)據(jù)包P-2(丟失1個數(shù)據(jù)包),等式12假設在數(shù)據(jù)包P之前收到了數(shù)據(jù)包P-3(丟失2個數(shù)據(jù)包),等式13假設在數(shù)據(jù)包P之前收到了數(shù)據(jù)包P-4(丟失3個數(shù)據(jù)包)。這樣,如果SLAST就是SP-1,等式10就能夠提供正確的值SP,如果SLAST分別是SP-2、SP-3和SP-4,等式11、12和13就能夠提供正確的值SP。
注意,等式11中的IDNEXTLAST代表數(shù)據(jù)包P之前收到的數(shù)據(jù)包之前的數(shù)據(jù)包的單個德爾塔值,也就是倒數(shù)第二個收到的數(shù)據(jù)包。
一般說來,按照上面參考等式6~8所描述的方式,等式10、11、12和13分別代表利用跟最后收到的和倒數(shù)第二個收到的數(shù)據(jù)包P有關的適當值,本發(fā)明的示例性報頭解壓縮方案能夠進行第一、第二、第三和第四個估測嘗試。
有一種罕見的情形,在這種情形中丟失一個數(shù)據(jù)包的時候等式11的估測不能夠給出SP的正確值,盡管正常情況下等式11應該能給出正確值。這種情形是數(shù)據(jù)包P-4被收到;數(shù)據(jù)包P-3丟掉;數(shù)據(jù)包P-2被收到;數(shù)據(jù)包P-1被丟掉;數(shù)據(jù)包P被收到。在這種情況下等式1不能給出正確的值,因為IDNEXTLAST實際上就是IDP-4而不是IDP-3,原因是數(shù)據(jù)包P-3沒有被收到,跟等式11的假設相反,只有數(shù)據(jù)包P-2被丟掉,數(shù)據(jù)包P-3被收到。
這種情形可以通過在對應于等式10~13的4次估測失敗以后,進行第五次估測來加以處理。這第5次估測基本上將上面描述的情形看成沒有收到數(shù)據(jù)包P-2,這樣,將這種情形當作丟掉了三個數(shù)據(jù)包來加以處理,也就是丟掉了數(shù)據(jù)包P-1、P-2和P-3。在這第5次估測中,還可以利用等式13,但是在這次估測中,SP-4(如果數(shù)據(jù)包P-1、P-2和P-3真的全部丟失,它就對應于最后收到的數(shù)據(jù)包)被作為SLAST插入。
圖1說明本發(fā)明中能夠實現(xiàn)上面描述的示例性報頭壓縮操作的數(shù)據(jù)包數(shù)據(jù)發(fā)射臺的一個實施方案實例。傳統(tǒng)的通信應用程序11提供報頭信息12和有效負荷信息13。有效負荷信息可以用有效負荷處理器15按照傳統(tǒng)方式加以處理,它輸出有效負荷16。將報頭信息提供給報頭壓縮器14,報頭壓縮器壓縮報頭信息產(chǎn)生一個壓縮后的報頭17。有效負荷16和壓縮后的報頭17包括一個數(shù)據(jù)包18。用一個傳統(tǒng)的發(fā)射機19接收這個數(shù)據(jù)包18,并使用眾所周知的技術通過蜂窩通信網(wǎng)絡這樣的無線電通信鏈路將數(shù)據(jù)包發(fā)射出去。圖1所示的數(shù)據(jù)包數(shù)據(jù)發(fā)射臺可以是例如工作在蜂窩通信網(wǎng)絡中的一個固定地點的或者移動無線電發(fā)射塔。
圖2說明圖1所示報頭壓縮器的一個示例部分。對應于所需字段的報頭信息,在這個實例中是上面描述的序列值SP,被輸入給德爾塔編碼器21,和校驗和產(chǎn)生器22。德爾塔編碼器按照上面的等式1進行傳統(tǒng)德爾塔編碼,產(chǎn)生對應于數(shù)據(jù)包P的SP的單個德爾塔值IDP。單個德爾塔值被輸入給緩沖器24,它保持著前面K個數(shù)據(jù)包單個德爾塔值的一個記錄。求和裝置25跟緩沖器連接,接收單個德爾塔,還有K的值,以便按照等式2將前面的單個德爾塔值中所需要的那些加起來,為數(shù)據(jù)包P產(chǎn)生一個累加德爾塔ADP。編碼器26接收數(shù)據(jù)包P的單個德爾塔IDP和累加德爾塔ADP,并且將它們編碼變成數(shù)據(jù)包P的編碼德爾塔EDP。
校驗和產(chǎn)生器22利用序列號值SP產(chǎn)生校驗和(例如循環(huán)冗余碼校驗和),也就是圖2所示的校驗和P。29的校驗和跟20的編碼德爾塔值EDP合并形成一個壓縮報頭字段28,代表序列號SP。這個壓縮報頭字段28能夠包括在一個壓縮報頭中,比方說圖1所示的17。
雖然圖2說明的是單獨一個報頭字段的壓縮,但是應當明白其它所需報頭的字段也能夠用圖2所示的技術進行壓縮。
圖2所示的編碼器26將單個德爾塔IDP和累加德爾塔ADP變換成合并后的編碼德爾塔EDP。在一個示例中,可以為單個德爾塔和累加德爾塔每個可能的值組合分配一個唯一的代碼值,這些值可以按照校驗觀察結果加以確定。于是編碼器26可以作為例如一個查閱表,它有多個代碼,按照IDP/ADP組合編制下標。在一些實施方案中,可以確定編碼德爾塔EDP最常見的值,這些最常見的值可以用相對少量的比特來進行編碼,而EDP其它不常見的值則用相對較多的比特進行編碼。
圖3說明圖2所示示例性報頭壓縮器實施方案能夠進行的示例性操作。在31收到報頭字段信息,在32產(chǎn)生校驗和。在33計算單個德爾塔,在34計算累加德爾塔。在35根據(jù)單個和累加德爾塔產(chǎn)生編碼德爾塔。在36將編碼德爾塔跟校驗和合并形成壓縮報頭字段。
圖4說明本發(fā)明中數(shù)據(jù)包數(shù)據(jù)接收臺的一個實例。傳統(tǒng)接收機46能夠用眾所周知的技術從蜂窩通信鏈路這樣的無線電通信鏈路接收圖1所示發(fā)射的那種數(shù)據(jù)包18的一個接收版本18’。收到的版本18’包括有效負荷版本16’和收到的壓縮報頭版本17’。收到的有效負荷版本16’被輸入給有效負荷處理器45,它能夠用傳統(tǒng)技術在43產(chǎn)生收到的有效負荷信息,輸入給傳統(tǒng)數(shù)據(jù)包數(shù)據(jù)通信應用程序41。收到的壓縮報頭版本17’被提供給報頭解壓縮器44,將收到的報頭版本解壓縮,并且在42將收到的報頭信息提供給通信應用程序41。
圖5說明圖4所示報頭解壓縮器的一部分。在圖5中,圖2中20所示的編碼德爾塔EDP的接收版本被提供給譯碼器51,它能夠利用等式4產(chǎn)生對應于數(shù)據(jù)包P的單個德爾塔和累加德爾塔。能夠用具有IDP/ADP組合下標-EDP值的查閱表實現(xiàn)的譯碼器將德爾塔ADP和單個德爾塔IDP輸出給重構器53,這個重構器53能夠讓報頭字段按照上面的等式6~8或者等式10~13進行估測嘗試。SP的當前估測也就是SP’在55從重構器輸出,提供給校驗和產(chǎn)生器56。
校驗和產(chǎn)生器從當前估測SP’產(chǎn)生一個校驗和,并且在57將這個校驗和輸入給一個比較器58,將產(chǎn)生的校驗和57和圖2中29所示的原始校驗和的接收版本29’進行比較。如果被比較的校驗和相同,就認為這一估測是正確的,比較器給出一個輸出500,它控制一個連接單元59,以便從重構器提供估測SP’作為收到的報頭信息給通信應用程序41。這個正確的估測同時反饋給重構器53,作為SLAST儲存起來,供重構器在下一次利用等式6~8或者10~13進行估測嘗試的時候使用。收到新SLAST的時候,重構器可以將IDP移位到一個兩級移位寄存器52中,在那里保留IDLAST和IDNEXTLAST的一個運行記錄,用于等式6~8或者10~13。
如果產(chǎn)生的校驗和跟比較器中收到的校驗和不同,比較器輸出500就通知重構器進行另外一次嘗試,例如在利用等式6沒有成功以后嘗試等式7。如果等式6~8(或者在另外一個實施方案中的等式10~13)中沒有一個能夠在比較器58中得到相同的校驗和,重構器53就能夠輸出一個失敗信號給通信應用程序41,說明這個報頭字段不能被準確地重構。
雖然圖5說明了單獨一個報頭字段的解壓縮方法,但是應當明白其它報頭字段也能夠用圖5所示的技術解壓縮。
為了實現(xiàn)上面描述的特殊情形下的估測,其中等式13被重復使用,SP-4(它對應于收到的倒數(shù)第二個數(shù)據(jù)包)被作為SLAST代替SP-2(實際上它對應于最后收到的數(shù)據(jù)包)插入,圖5所示的重構器需要維持最后收到的兩個數(shù)據(jù)包S值的一個運行記錄,SLAST和SNEXTLAST。例如這可以通過采用跟圖5所示寄存器52相似的一個兩級移位寄存器來做到。SLAST/SNEXTLAST寄存器的一個示例52A在圖5A中給出。于是上面描述的針對第五次估測等式13的重復使用可以用等式14描述為SP=SNEXTLAST+IDP+ADP(14)圖16給出了圖5和圖5A所示的示例性報頭解壓縮器部分能夠進行的操作。在61中,壓縮報頭字段的接收版本到達。在62中,對編碼德爾塔進行譯碼,產(chǎn)生單個德爾塔和累加德爾塔。在63,重構器利用例如等式6~8或者10~14中的一個進行重構嘗試或者估測。在64,從重構估測產(chǎn)生一個校驗和。如果在65產(chǎn)生的校驗和等于收到的校驗和,就在66將重構估測作為報頭字段值接受。如果在65產(chǎn)生的校驗和跟收到的校驗和不同,重構器就在63進行另外一次重構估測(用等式6~8或者10~14中的另外一個),直到在67中認定已經(jīng)進行了所有嘗試(也就是所有等式)。如果是這樣,就在68給出一個失敗信號。
顯然,對于本領域終接技術人員而言,上面描述的示例性實施方案可以通過對傳統(tǒng)數(shù)據(jù)包數(shù)據(jù)發(fā)射和接收臺的報頭壓縮器和解壓縮器的軟件、硬件或者這兩者的適當修改來很容易地實現(xiàn)。
同樣,本發(fā)明能夠用于通過有損窄帶鏈路進行數(shù)據(jù)包通信,包括實時通信應用,比方說實時音頻和視頻應用。
雖然上面詳細描述了本發(fā)明的示例性實施方案,但是這并不是要限制本發(fā)明的范圍,本發(fā)明能夠用各種實施方案來實現(xiàn)。
權利要求
1.一種方法,用于壓縮當前報頭字段值,產(chǎn)生有關的當前數(shù)據(jù)包的一個壓縮報頭部分,通過通信信道發(fā)射出去,包括確定當前報頭字段值和對應報頭字段值之間的第一差值,該對應報頭字段值跟位于一個數(shù)據(jù)包序列中當前數(shù)據(jù)包前面的前一個以前的數(shù)據(jù)包有關,這個數(shù)據(jù)包序列是通過所述通信信道傳輸?shù)?;和在壓縮報頭部分提供說明第一差值及還說明報頭字段值之間的第二差值的信息,這些報頭字段值對應于當前報頭字段值,分別跟所述序列中的當前數(shù)據(jù)包前面的第一和第二以前的數(shù)據(jù)包相關聯(lián)。
2.權利要求1的方法,其中的提供步驟包括將第一個和第二差值進行編碼,產(chǎn)生第一和第二差值的編碼表示。
3.權利要求2的方法,其中的編碼步驟包括按照第一個和第二差值用查閱表來確定編碼表示。
4.權利要求1的方法,其中的提供步驟包括確定報頭字段值之間的第三差值,這些報頭字段值對應于當前報頭字段值,分別跟這個序列中當前數(shù)據(jù)包前面的第一個數(shù)據(jù)包和第三個數(shù)據(jù)包有關,并且確定報頭字段值之間的第四差值,它對應于當前報頭字段值,分別跟前面的第二個和第三個數(shù)據(jù)包有關聯(lián),并且將第三個和第四差值加起來產(chǎn)生第二差值。
5.權利要求1的方法,包括從當前報頭字段值產(chǎn)生一個校驗和,并且在壓縮報頭部分提供這個校驗和以及說明第一和第二差值的信息。
6.權利要求1的方法,其中的通信信道包括無線通信鏈路。
7.權利要求1的方法,其中的報頭字段值包括一個序列號。
8.一種方法,用于對來自通信信道的當前數(shù)據(jù)包的壓縮報頭部分進行解壓縮,產(chǎn)生需要的報頭字段值,包括從壓縮報頭部分獲得第一個信息,說明所需要報頭字段值和通過通信信道傳輸?shù)臄?shù)據(jù)包序列中當前數(shù)據(jù)包前面的一個數(shù)據(jù)包的對應報頭字段值之間的第一差值,所述獲得步驟包括從壓縮報頭部分獲得第二信息,說明報頭字段值之間的第二差值,它對應于所需報頭字段值,分別跟傳輸序列中當前數(shù)據(jù)包前面的第一個和第二數(shù)據(jù)包相關聯(lián);和在第一和第二信息的基礎之上估測所需要的報頭字段值。
9.權利要求8的方法,其中的估測步驟包括在第一和第二信息的基礎之上,以及在對應于所需要的報頭字段值,跟傳輸序列中當前數(shù)據(jù)包前面的數(shù)據(jù)包有關,在當前數(shù)據(jù)包之前收到的報頭字段值的基礎之上,估測所需要的報頭字段值。
10.權利要求8的方法,包括從壓縮報頭部分提取編碼表示的一個接收版本,它代表第一和第二差值,是在通信信道的發(fā)射端產(chǎn)生的,所述獲得步驟包括對編碼表示的接收版本進行譯碼,獲得第一和第二信息。
11.權利要求10的方法,其中的譯碼步驟包括根據(jù)編碼表示的接收版本用一個查閱表來確定第一和第二信息。
12.權利要求8的方法,包括從所需報頭字段值的估測產(chǎn)生一個校驗和,從壓縮報頭部分提取從所需報頭字段值在發(fā)射端產(chǎn)生的校驗和的一個接收版本,將產(chǎn)生的校驗和跟收到的校驗和版本進行比較以確定這個估測是否正確。
13.權利要求8的方法,其中通信信道包括無線通信鏈路。
14.權利要求8的方法,其中的第二差值是第三和第四差值的和,其中的第三差值是報頭字段值之間的差值,它對應于當前報頭字段值,分別跟發(fā)射序列中當前數(shù)據(jù)包前面的第一和第三數(shù)據(jù)包有關,其中的第四差是報頭字段值之間的差值,它對應于當前報頭字段值,分別跟前面的第二和第三數(shù)據(jù)包相關。
15.權利要求8的方法,其中的報頭字段值包括一個序列號。
16.一種裝置,用于壓縮當前報頭字段值,產(chǎn)生當前數(shù)據(jù)包的壓縮報頭部分,通過通信信道發(fā)射出去,包括用于接收報頭字段值的一個輸入端;一個差值確定裝置,跟所述輸入端連接,用于確定當前報頭字段值跟要通過通信信道發(fā)射的數(shù)據(jù)包序列中當前數(shù)據(jù)包前面的數(shù)據(jù)包的對應報頭字段值之間的第一差值,并且用于確定報頭字段值之間的第二差值,它對應于當前報頭字段值,分別跟這個序列中當前數(shù)據(jù)包前面的第一和第二數(shù)據(jù)包相關;和一個輸出端,跟所述差確定裝置連接,用于輸出壓縮報頭部分,包括說明第一和第二差值的信息。
17.權利要求16的裝置,包括一個編碼器,連接在所述輸出端和所述差確定裝置之間,用于對第一和第二差值進行編碼,在所述輸出端產(chǎn)生第一個和第二差值的編碼表示。
18.權利要求16的裝置,其中的差值確定裝置能夠確定報頭字段值之間的第三差值,它對應于當前報頭字段值,分別跟這個序列中當前數(shù)據(jù)包前面的第一和第三數(shù)據(jù)包相關,還用于確定報頭字段值之間的第四差值,它對應于當前報頭字段值,分別跟前面的第二和第三數(shù)據(jù)包有關,所述差確定裝置能夠將第三和第四差值加起來產(chǎn)生第二差值。
19.權利要求16的裝置,包括一個校驗和產(chǎn)生器,跟所述輸入端連接,用于接收當前報頭字段值,從而產(chǎn)生一個校驗和,所述校驗和產(chǎn)生器跟所述輸出端連接,在壓縮報頭部分提供校驗和以及說明第一和第二差值的信息。
20.權利要求16的裝置,其中的通信信道包括無線通信鏈路。
21.權利要求16的裝置,其中的報頭字段值包括序列號。
22.一種裝置,用于對從通信信道收到的當前數(shù)據(jù)包的壓縮報頭部分進行解壓縮,產(chǎn)生所需報頭字段值,包括一個輸入端,用于接收壓縮報頭部分;一個重構器,跟所述輸入端連接,用于接收從壓縮報頭部分獲得的第一個信息,說明所需報頭字段值跟通過通信信道發(fā)射的數(shù)據(jù)包序列中當前數(shù)據(jù)包前面的數(shù)據(jù)包的相應報頭字段值之間的第一差值,所述重構器還用于從壓縮報頭部分接收第二信息,說明報頭字段值之間的第二差值,它對應于所需報頭字段值,分別跟發(fā)射序列中當前數(shù)據(jù)包前面的第一和第二數(shù)據(jù)包相關;和所述重構器按照第一和第二信息估測所需要的報頭字段值。
23.權利要求22的裝置,其中的重構器有一個輸入端,用于接收一個報頭字段值,這個報頭字段值對應于所需報頭字段值,并且跟發(fā)射序列中當前數(shù)據(jù)包前面的數(shù)據(jù)包有關,是在當前數(shù)據(jù)包前面收到的,所述重構器能夠按照第一和第二信息以及在重構器輸入端收到的報頭字段值估測所需報頭字段值.
24.權利要求22的裝置,包括一個譯碼器,連接在所述輸入端和所述重構器之間,用于從所述壓縮報頭部分接收編碼表示的一個接收版本,它代表第一和第二差值,是在通信信道的發(fā)射端產(chǎn)生的,這個譯碼器能夠對編碼表示的接收版本進行譯碼,獲得第一和第二信息。
25.權利要求22的裝置,其中的重構器有一個輸出端,用于輸出對所需報頭字段值的估測,還包括一個校驗和產(chǎn)生器,跟所述重構器輸出端連接,用于接收所述估測,產(chǎn)生一個校驗和,這個校驗和產(chǎn)生器包括一個輸出端,用于輸出所述校驗和,還包括一個比較器,跟所述輸入端連接,用于從所述壓縮報頭部分接收通信信道發(fā)射端從所需報頭字段值產(chǎn)生的校驗和的一個接收版本,所述比較器跟所述校驗和產(chǎn)生器輸出端連接,用于從它接收所述校驗和,所述比較器能夠將收到的校驗和版本跟所述校驗和產(chǎn)生器產(chǎn)生的校驗和進行比較,以確定這個估測是否正確。
26.權利要求22的裝置,其中的通信信道包括無線通信鏈路。
27.權利要求22的裝置,其中的報頭字段值包括序列號。
全文摘要
在壓縮報頭字段值(12)產(chǎn)生有關數(shù)據(jù)包(18)的壓縮報頭部分(17)通過通信信道發(fā)射出去的過程中,在每個發(fā)射的數(shù)據(jù)包歷史信息中包括發(fā)射序列中前面特定個數(shù)數(shù)據(jù)包(18)的德爾塔值(ID)。這樣就使得壓縮方案更加堅固,更能夠承受數(shù)據(jù)包的丟失,因為丟失的德爾塔值(ID)能夠用歷史信息重構。
文檔編號H04L29/06GK1357189SQ0080908
公開日2002年7月3日 申請日期2000年6月16日 優(yōu)先權日1999年6月18日
發(fā)明者K·斯萬布洛, L·-E·榮松, M·德格爾馬克, H·漢努 申請人:艾利森電話股份有限公司