説明

ロバストヘッダ圧縮における局部的修復を向上させる方法およびシステム

【課題】ネットワーク伝送効率および品質を改善し得る、ロバストヘッダ圧縮(RoHC)の逆圧縮器における局部的修復を向上させる方法およびシステムを提供する。
【解決手段】1つの方法は下位層情報を使用して、逆圧縮器110,114における局部的修復を向上させる。別の方法はユーザデータグラムプロトコル(UDP)のチェックサムを使用して、逆圧縮器における局部的修復を向上させる。

【発明の詳細な説明】
【技術分野】
【0001】
米国特許法第119条のもとでの優先権の主張
本特許出願は、2006年5月4日に出願され、本発明の譲受人に譲渡され、それによって参照によって本明細書に明示的に取り入れられる仮出願第60/798,058号(“METHODS AND SYSTEMS FOR ENHANCING LOCAL REPAIR IN ROBUST HEADER COMPRESSION”)に対して優先権を主張する。
【0002】
本出願は、概ね、無線通信、より具体的には、ロバストヘッダ逆圧縮における局部的修復(local repair)を向上させる方法およびシステムに関する。
【背景技術】
【0003】
インターネットプロトコル(internet protocol, IP)は、有線および無線の両者のネットワークに使用されているネットワークプロトコルである。ボイス オーバ インターネット プロトコル(voice over internet protocol, VoIP)、対話式ゲーム、メッセージ、等のような幾つかのサービスおよび応用において、IPパケットのペイロードは、パケットのIPヘッダとほぼ同じサイズまたは相当により小さいかもしれない。同じパケットヘッダ内のヘッダフィールドにおいて、とくにパケットストリーム内の連続するパケット間において、相当な重複があり得る。ヘッダ圧縮(Header compression, HC)は、リンクの一方の端部においてIPパケットのプロトコルヘッダを圧縮し、リンクの他方の端部へそれらを送信し、その他方の端部においてそれらを元の状態に逆圧縮するプロセスである。
【0004】
本出願の特徴、性質、および長所は、後述の詳細な説明から、図面と併せて用いることにより明らかになるであろう。
【図面の簡単な説明】
【0005】
【図1】本明細書に説明されている1つ以上の方法が実施され得る通信システムを示す図。
【図2】図1の基地局トランシーバシステム/パケットデータ サービングノード(BTS−PDSN)またはPDSN−BTSの幾つかのハードウェアおよびソフトウェア構成要素を示す図。
【図3】図1のアクセス端末の幾つかのハードウェアおよびソフトウェア構成要素を示す図。
【図4】図1のシステムによって使用され得る、ロバストヘッダ逆圧縮における局部的修復を向上させる方法を示すフローチャート。
【図5】図1のシステムによって使用され得る、ロバストヘッダ逆圧縮における局部的修復を向上させる別の方法を示すフローチャート。
【図6】図4の方法に対応する逆圧縮器装置を示す図。
【図7】図5の方法に対応する逆圧縮器装置を示す図。
【図8】圧縮されていないヘッダを備えたパケットおよび圧縮されたヘッダを備えたパケットの例を示す図。
【図9】逆圧縮が成功したかどうかを決定するときにチェックサムを使用する方法を示すフローチャート。
【図10】図9の方法に対応する逆圧縮器を示す図。
【図11】ロバストヘッダ圧縮(RoHC)および巡回冗長検査(CRC)の偽の合格の例を示す図。
【図12】パケットの解釈インターバルを決定する方法を示すフローチャート。
【図13】図12の方法に対応する装置を示す図。
【詳細な説明】
【0006】
本明細書に開示されている実施形態は、セルラネットワーク、公衆交換電話網(public switched telephone network, PSTN)、無線インターネット、衛星ネットワーク、広域ネットワーク(wide area network, WAN)、無線ローカルエリア ネットワーク(wireless local area network, WLAN)、VoIPネットワーク、IPベースのマルチメディアシステム、等のような任意の無線および/または有線通信システムにおいて実施され得る。
【0007】
図1は、本明細書に説明されている1つ以上の方法が実施され得る通信システム10の例を示している。第1のアクセス端末(access terminal, AT)100Aは、アップリンク(または逆方向リンク)ヘッダ圧縮器102を含み得る。第1のアクセス端末100Aは、無線アクセスネットワーク(radio access network, RAN)内の基地局トランシーバシステム/パケットデータ サービングノード(base station transceiver system/packet data serving node, BTS-PDSN)106Aおよび基地局104Aと逆方向リンク(reverse link, RL)によって無線で通信し得る。
【0008】
BTS−PDSN 106Aはアップリンクヘッダ逆圧縮器110を含み、アップリンクヘッダ逆圧縮器110は、本明細書に説明されている1つ以上の方法を実行し得る。BTS−PDSN 106Aは、VoIPネットワーク108を経由してパケットデータ サービングノード/基地局トランシーバシステム(PDSN−BTS)106Bと通信し得る。PDSN−BTS 106Bは、ダウンリンク(順方向リンク)ヘッダ圧縮器112を含み得る。
【0009】
第2のアクセス端末100Bは、基地局104BおよびPDSN−BTS 106Bと順方向リンク(forward link, FL)によって無線で通信し得る。第2のアクセス端末100Bはダウンリンクヘッダ逆圧縮器114を含み、ダウンリンクヘッダ逆圧縮器114は、本明細書に説明されている1つ以上の方法を実行し得る。2つの無線アクセス端末100A、100Bではなく、アクセス端末の一方は有線端末であってもよい。
【0010】
逆方向リンクおよび順方向リンクは、1つ以上の通信プロトコルを使用し得る。通信プロトコルは、例えば、符号分割多元接続(code division multiple access, CDMA)1x、CDMA 1x エボリューション データ オプティマイズド(evolution data optimized, EV-DO)Rev.0、Rev.A、およびRev.B、広帯域CDMA(wideband CDMA, WCDMA)、高速ダウンリンク パケットアクセス(high speed downlink packet access, HSDPA)、高速アップリンク パケットアクセス(high speed uplink packet access, HSUPA)、時分割同期CDMA(time division synchronized CDMA, TD-SCDMA)、グローバルシステム フォー モバイルコミュニケーションズ(global system for mobile communications, GSM(登録商標))、直交周波数分割多重化(orthogonal frequency division multiplexing, OFDM)、
IEEE 802.11、IEEE 802.18、IEEE 802.20、ワイマックス(Wimax)、ワイブロ(WiBro)、ウルトラ モバイル ワイドバンド(ultra mobile wideband, UMB)、並びに他の通信技術である。
【0011】
本明細書に説明されているアクセス端末(AT)は、有線電話、無線電話、セルラ電話、ラップトップ コンピュータ、無線通信パーソナルコンピュータ(personal computer, PC)カード、パーソナル ディジタル アシスタント(personal digital assistant, PDA)、外部または内部モデム、等のような様々なタイプのデバイスを指し得る。アクセス端末は、無線チャネルによって、または例えば光ファイバまたは同軸ケーブルを使用して有線チャネルによって通信する任意のデータデバイスであり得る。アクセス端末は、アクセスユニット、加入者ユニット、移動局、移動デバイス、移動ユニット、移動電話、モバイル、遠隔局、遠隔端末、遠隔ユニット、ユーザデバイス、ユーザ装置、ハンドヘルドデバイス、等のような様々な名前をもち得る。アクセス端末は、移動型であっても静止型であってもよく、図1の通信システム10の全体にわたって分散し得る。アクセス端末は、1つ以上の基地局トランシーバシステム(BTS)と通信することがあり、BTSは、基地局、アクセスネットワーク、アクセスポイント、ノードB、およびモデム プール トランシーバ(modem pool transceiver, MPT)と呼ばれる(または含む)ことがある。
【0012】
図2は、図1のBTS−PDSN106Aおよび/またはPDSN−BTS106Bの幾つかのハードウェアおよびソフトウェア構成要素、例えば、プロセッサ200、特定用途向け集積回路(application specific integrated circuit, ASIC)および他のハードウェア202、トランシーバ204、およびメモリ206を示している。メモリ206は、アプリケーション層208、トランスポート層210、およびネットワーク層212のような1つ以上の上位層207を記憶し得る。アプリケーション層208は、リアルタイム転送プロトコル(Real-time Transport Protocol, RTPまたはRTTP)ヘッダを処理し得る。トランスポート層210は、伝送制御プロト
コル(Transmission Control Protocol, TCP)およびユーザ データグラム プロトコル(User Datagram Protocol, UDP)ヘッダを処理し得る。ネットワーク層212は、IPヘッダを処理し得る。
【0013】
メモリ206は、ロバストヘッダ圧縮の圧縮器112、ロバストヘッダ圧縮の逆圧縮器110、および1つ以上の下位層220をさらに記憶し得る。下位層220は、例えば、リンク層および媒体アクセス制御(medium access control, MAC)層214(無線リンクプロトコル(radio link protocol, RLP)副層を含み得る)、並びに物理層216である。別の実施形態は、これらの機能、モジュール、または層の幾つかまたは全てを含み、これらは別の構成で実施され得ることに注意すべきである。
【0014】
図3は、図1のアクセス端末100A、100Bの幾つかのハードウェアおよびソフトウェア構成要素、例えば、プロセッサ300、ASIC302および他のハードウェア、トランシーバ304、並びにメモリ306を示している。メモリ306は、1つ以上の上位層307、例えば、アプリケーション層308、トランスポート層310、およびネットワーク層312を記憶し得る。アプリケーション層308はRTPヘッダを処理し得る。トランスポート層310はTCPおよびUDPヘッダを処理し得る。ネットワーク層312はIPヘッダを処理し得る。
【0015】
メモリ306は、ロバストヘッダ圧縮の圧縮器102、ロバストヘッダ圧縮の逆圧縮器114、および1つ以上の下位層320をさらに記憶し得る。下位層320は、例えば、リンク層およびMAC層314(無線リンクプロトコル(RLP)副層を含み得る)、並びに物理層316である。別の実施形態はこれらの機能、モジュール、または層の幾つかまたは全てを含み、これらは別の構成で実施され得ることに注意すべきである。
【0016】
本明細書で使用されているように、「パケット」は送信および受信の単位を指す。この送信および受信の単位はRoHCによって圧縮され、その後、逆圧縮される。本明細書で使用されている「パケットストリーム」は、一連のパケットを指し、フィールド値およびフィールド値の変更パターンがあり、同じコンテキストを使用してヘッダを逆圧縮することができる。図8は、圧縮されていないヘッダ(例えば、IP、UDP、RTP、TCP、および他のヘッダ)804とペイロード805とを備えたパケット800の例を示している。圧縮技術を使用して、パケット800のヘッダ部分を圧縮し、圧縮されたヘッダ部分807とペイロード808とを備えた圧縮されたパケット802を生成する。圧縮されたヘッダ部分807は、RTPの順序番号、UDPのチェックサム、および場合により他のフィールドを含み得る。圧縮されたパケット802は、リンク層の順序番号を含むリンク層のヘッダ部分806をさらに含み得る。本明細書に説明されている逆圧縮方法および装置は、圧縮されたパケット802を受信して逆圧縮するのに使用され得る。
【0017】
無線ネットワークは制限された帯域幅をもつので、無線リンクにより送られるIP、UDP、およびRTPヘッダを備えたパケットは、ヘッダ圧縮から相当な恩恵を受ける。ヘッダ圧縮および逆圧縮は、(小さくなったパケットヘッダのオーバーヘッドにより)帯域幅を節約してネットワーク伝送効率、品質、および/または速度を改善し、パケットのロスを低減し、双方向(interactive)の応答時間を改善し、インフラストラクチャのコストを低減する(チャネル帯域幅当たりのユーザを増やし、したがって配備コストを低減する)。通信伝送において、「ホップ」は、1つデバイスから別のデバイスまたはネットワーク要素への通信リンクを指す。通信システムは、ポイント ツウ ポイント接続によりホップごとにプロトコルヘッダを圧縮することができ、これは多くのホップを含み得る。
【0018】
同じパケットヘッダ内のヘッダフィールド間、および同じパケットストリームに属する連続パケット間に相当な冗長があるという事実によって、ヘッダ圧縮は可能になる。静的なフィールド情報のみを最初に送り、他のフィールドの従属性および予測可能性を利用することによって、ヘッダのサイズは相当に低減され得る。
【0019】
しかしながら、とくに無線トポロジおよびトラフィックパターンがより複雑になるのにしたがって、幾つかのヘッダ圧縮方法は無線(例えば、セルラ)リンク上で、無線リンクの長いラウンドトリップタイムおよび高い誤り率、例えば、ビット誤り率(bit error rate, BER)のために適切に働かないことがある。本開示はロバストヘッダ圧縮(RoHC)および逆圧縮方法を説明しており、これらはリクエスト フォー コメント(Request For Comments RFC)3095に説明されている方法のような他の方法の欠点を克服している。
【0020】
ロバストヘッダ圧縮は、インターネット技術タスクフォース(Internet Engineering Task Force)によって発行され、インターネット学会のネットワーク ワーキング グループ(Network Working Group of The Internet Society)によって頒布された、リクエスト フォー コメント(RFC)3095における2001年7月のC.Borman、他による文献(「Robust Header Compression (RoHC): Framework and four profiles: RTP, UDP, ESP and uncompressed」)に概ね説明されている。「ロバスト」ヘッダ圧縮方式は、更なるパケットを失うことも、逆圧縮されたヘッダに更なるエラーを取り込むこともなく、ヘッダ圧縮が行われるリンクにおける損失(loss)および残留エラー(residual error)を許容する。
【0021】
圧縮器のコンテキスト(context)は、圧縮器がヘッダを圧縮するのに使用する状態情報を指す。逆圧縮器のコンテキストは、逆圧縮器がヘッダを逆圧縮するのに使用する状態情報を指す。コンテキストは、圧縮および逆圧縮のための可能な基準値(possible reference value)および静的なフィールド(static field)のようなパケットストリーム内の前のヘッダからの関連情報を含み得る。コンテキストは、パケットストリームを説明する追加情報、例えば、IP識別子フィールドがどのくらい変わったか、および順序番号またはタイムスタンプにおける通常のパケット間での増加に関する情報を含み得る。
【0022】
コンテキストの損傷(damage)は、逆圧縮器のコンテキストが圧縮器のコンテキストと一致せず、したがって逆圧縮が元のヘッダを再生するのに失敗し得る状況を指す。逆圧縮器のコンテキストが適切に初期設定されなかったとき、あるいは圧縮器と逆圧縮器との間でパケットが失われた、並べ替えられた(reorder)、または損傷したときに、この状況が生じ得る。不一致(inconsistent)のコンテキストにより正確に逆圧縮することができないパケットは、コンテキストの損傷により損失/損傷したとみなされる。
【0023】
RoHCは、元のヘッダに対して巡回冗長検査(cyclic redundancy check, CRC)を使用して、不正確な逆圧縮を検出し得る。計算上の複雑さを軽減するために、CRCが計算されるときに、ヘッダのフィールドを概念上で配置し直して、最初に、静的なオクテットを計算し(CRC−STATICと呼ばれる)、その後で、パケット間で値が変わると予想されるオクテットを計算する(CRC−DYNAMIC)。このように、CRC−STATICフィールドをカバーした後で、CRC計算の中間結果を幾つかのパケットに再使用することができる。
【0024】
パケット間のヘッダフィールド値間および連続するパケット間に多くの冗長があるので、ヘッダ圧縮が可能である。大抵のヘッダフィールドは、ほとんどまたは全く変わらないので、圧縮することができる。一例において、結合されたサイズが約10オクテットである5フィールドのみが、より精巧な構造(mechanism)を必要とする。これらのフィールドは次のものを含む。
【0025】
−IPv4識別(16ビット)(IP−ID)
−UDPのチェックサム(16ビット)
−RTPマーカ(1ビット)(Mビット)
−RTP順序番号(16ビット)(SN)
−RTPタイムスタンプ(32ビット)(TS)
最下位ビット(least significant bit, LSB)の符号化(encoding)は、一般に値が小さく変化するヘッダフィールドに使用され得る。LSBの符号化を用いると、元のフィールド値ではなく、フィールド値の中のk個の最下位ビットが送信される。なお、kは正の整数である。kビットを受信した後で、逆圧縮器は、前の受信した値を基準(reference)(v ref)として使用して、元の値を導き出す。一例として、LSBの符号化を用いると、2進数の00001010(10進数の10に対応する)は、最上位ビット0000と最下位ビット1010とを含んでいると考えられ得る。LSBの符号化を使用して、全8ビットではなく、1010が、BTS−PDSNのような受信デバイスに送信される。受信に成功すると、受信デバイスの逆圧縮器は、前の受信した値、例えば、v refを使用して、元の送信されたパケット値を導き出すことができる。1つの実施形態において、v refは、最後の正確に逆圧縮されたパケット値を表わす。圧縮器(逆圧縮器)は、v ref c(v ref d)、すなわち圧縮(逆圧縮)された最後の値をv refとして使用する。受信したヘッダの逆圧縮に成功したと仮定すると、逆圧縮器のコンテキストは00001010に更新され、元の送信されたパケットが生成される。送信された値の生成に成功すると、v refは、現在の正確に逆圧縮された値に更新されて記憶され得る。1つの実施形態において、次の値、00001111(10進数の15)が送信されると仮定すると、最下位ビット1111が送信され、受信に成功すると、逆圧縮器は、受信した値1111を現在のコンテキスト値の最上位ビットに付加することによって、そのコンテキストを更新する。この例において、現在のコンテキスト値は00001010であり、最上位ビットは0000である。逆圧縮器は、そのコンテキスト値を00001111に更新して、元の送信されたパケット値を生成する。
【0026】
圧縮器および逆圧縮器の各々が解釈インターバル(interpretation interval)を使用し、この解釈インターバルの中に元の値が存在し、かつこの解釈インターバルの中で、元の値が、送信されたビットと全く同じk個の最下位ビットを有する唯一の値であるとき、LSBの符号化および復号は正確であると考えられる。
【0027】
「解釈インターバル」は、関数f(v ref,k)として記載され得る。
【0028】
f(v ref,k)=[v ref−p,v ref+(2k−1)−p] (式1)なお、pは整数である。
【0029】
この式は次のように示される。
【表1】

【0030】
関数fは次の特性を有する。任意の値kについて、k個の最下位ビットが、f(v ref,k)の値を固有に識別する。解釈インターバルのサイズは、2kである。したがって、k=4の場合、解釈インターバルのサイズは、24または16である。k=4の値は、VoIPを含む様々なパケットのタイプに使用され得る。パラメータpは、v refに関して解釈インターバルをシフトすることを可能にする。pに対して適切な値を選択すると、特定の特性を備えたフィールドに対するより効率的な符号化をもたらす。1つの実施形態において、pは整数値である。
【0031】
解釈インターバルは2つの部分に分割され得る。次に示されるように、k=4、p=5、およびv ref=15と仮定すると、解釈インターバルの左側部分はp=5のサイズを有する。一方で、解釈インターバルの右側部分はp=2−p−1=10のサイズを有する。
【表2】

【0032】
値vを圧縮するとき、圧縮器は、vがインターバルf(v ref c,k)に入るkの最小値を見付ける。K=g(v ref c,v)。ほんの少数の異なる値のkが可能であるとき、圧縮器は、vがインターバルf(v ref c,v)に入る最小のkを代わりに選んでもよい。m個のLSBを受信するとき、逆圧縮器は、interval dと呼ばれる解釈インターバルf(v ref d,m)を使用する。逆圧縮器は、逆圧縮される値として、interval dの1つであって、そのLSBが受信したmビットと一致するものを選ぶ。符号化される値は、有限の範囲を有し得る。例えば、RTP SNは0から0xFFFFまでの範囲にわたる。SN値が0または0xFFFFに近いとき、解釈インターバルは0乃至0xFFFFのラップアラウンド境界(wraparound boundary)をまたぐ(straddle)ことができる。
【0033】
RFC 3095は、どのようにRoHC圧縮器が「ウィンドウベースの最下位ビット(LSB)の符号化」を使用して、プロトコルヘッダ内の動的なフィールドを圧縮するかを説明している。v ref dの幾つかの候補は損失または損傷(damage)しているかもしれないので、圧縮器は、特定の値vに対して逆圧縮器によって使用される基準値であるv ref dの正確な値を決定できないかもしれない。しかしながら、フィードバックを使用することによって、または合理的な仮定を立てることによって、圧縮器は候補セットを制限することができる。その後で、逆圧縮器が候補セット内のどのv ref dを使用しても、vが結果のinterval dによってカバーされるように、圧縮器はkを計算する。逆圧縮器は、CRCが成功した最後に受信した値を基準値として使用し得るので、圧縮器は、v ref dの候補を含んでいる「スライディングウィンドウ」を維持する。スライディングウィンドウは、最初は空(empty)であり得る。
【0034】
RoHC圧縮器と逆圧縮器との間で多くの連続するパケットが失われるとき、順序番号(sequence number, SN)のLSBのラップアラウンドは危険であり、すなわち、入力がないために逆圧縮器が解釈インターバルを動かさないので、圧縮されたパケット中の順序番号のLSBは不正確に解釈され得る。
【0035】
RoHC逆圧縮器は、局部的修復モード(local repair mode)を使用して、(圧縮器と逆圧縮器との間における)多くの連続損失パケットがコンテキストの損傷(damage)をもたらし得る状況を検出することができる。RoHC逆圧縮器は、ローカルクロック(local clock)を使用することによって、この状況を検出して、コンテキストの損傷を避け得る。例えば、RoHC逆圧縮器は、RFC 3095に説明されている次のアルゴリズムを使用し得る。これは、例えば、「Correction of SN LSB wraparound(SN LSBのラップアラウンドの修正)」という表題を与えられたセクション5.3.2.2.4に詳しく説明されている。
【0036】
(a)逆圧縮器は、各到来パケットiの到着時間a(i)を記録する。逆圧縮が失敗した場合のパケットの到着時間は破棄される。
【0037】
(b)逆圧縮が失敗すると、逆圧縮器は、INTERVAL LLSN=a(i)−a(i−1)、すなわち、前の正確に逆圧縮されたパケットの到着から現在のパケットの到着までに経過した時間を計算する。
【0038】
(c)ラップアラウンドが行われたとき、INTERVAL LLSNは、少なくとも2kのパケット間の時間に対応する。なお、kは現在のヘッダ内のSNビットの数である。到着時間の移動平均を使用して、パケット到着間の時間を推定することができる。パケット到着間の時間の推定に基づいて、逆圧縮器は、INTERVAL LLSNが2kのパケット間の時間に対応し得るか
(d)INTERVAL LLSNが少なくとも2kのパケット到着間の時間であると決定されると、逆圧縮器は2kを基準SNに加えて、新しい基準SNを使用してパケットを逆圧縮することを試みる。
【0039】
(e)この逆圧縮が成功すると、逆圧縮器はコンテキストを更新するが、パケットを上位層に送るべきではない。次のパケットも逆圧縮され、そのCRCが成功すると、コンテキストを更新するが、廃棄されるべきである。新しいコンテキストを使用して第3のパケットの逆圧縮も成功すると、コンテキストの修復は成功であるとみなされ、この第3のパケットおよび後の逆圧縮されたパケットは上位層に送られる。
【0040】
(f)(d)および(e)における3回の逆圧縮の試みの何れかが失敗すると、逆圧縮器はパケットを廃棄し、「actions upon CRC failure(CRC不合格時の処置)」という表題を与えられたRFC 3095のセクション5.3.2.2.3のルール(a)乃至(c)にしたがって処置し得る。
【0041】
上述の局部的修復モードを使用して、逆圧縮器は、コンテキストが修復されたと結論する前に2つの正確に逆圧縮されたパケットを廃棄するという犠牲を払って、過剰に損失した後のコンテキストを修復することができ得る。RoHCの逆圧縮器が2つのパケットを廃棄する(上位層に渡さない)ことが必要であるのは、RoHCの3ビットのCRCが比較的に弱い検査であり、したがって不正確に逆圧縮されたパケットがCRCに合格し得るからである。
【0042】
したがって、最後に受信したパケットが合格してからの時間量に対する検査が合格したときのみ、局部的修復が起動される。この検査は、到着間の時間の推定に基づいており、逆圧縮器がこの推定を維持するのはオプションである。さらに、幾つかの場合において(すなわち、タイマベースの圧縮がサポートされていないとき)、このような局部的修復は完全にディスエーブルにされ得る。
【0043】
後述の実施形態は、図1乃至3の逆圧縮器110、114のようなRoHC逆圧縮器における局部的修復モードを向上または改善させる。一例において、局部的修復モードにおけるRoHC逆圧縮器は、リンク層の順序番号のような下位層情報を使用して、パケットを正確に逆圧縮する。別の例において、局部的修復モードにおけるRoHC逆圧縮器は、RoHCの3ビットのCRCに加えて、(イネーブルされたときに)UDPのチェックサムを使用して、パケットを上位層へ渡すかどうかを決定する。逆圧縮器は、1つ以上の条件に応じて、2つの方法の一方または両方を選択するように構成され得る。これらの例は、Ro
HC標準を変更することなく、性能を改善する。
【0044】
逆圧縮の修復における下位層情報の使用
図4は、リンク層情報を使用して、RoHC逆圧縮器110、114における局部的修復モードを向上させる方法を示している。リンク層214、314(図2および3における下位層)は、圧縮器112、102によって圧縮された各パケットにリンク層の順序番号(sequence number, SN)を加える。順序番号は、リンク層の個々のインスタンス化(instantiation)において送られるリンク層パケットごとに1ずつ増加するべきである。個々のリンク層のインスタンス化に対応するリンク層パケットとIPパケットとの間に1対1のマッピングがある。この1対1のマッピングが破られても、後述の方法はなお実施され得る。
【0045】
図4の参照番号410において、逆圧縮器は、例えば、RoHCのCRCを使用して、CRCの不合格(failure)を検出することによって、逆圧縮が現在の受信パケットに対して失敗したかどうかを決定する。逆圧縮が失敗したときは、参照番号420において、逆圧縮器は、2つの連続する正確に受信されて正確に逆圧縮されたパケット間におけるリンク層の順序番号の差を決定する。言い換えると、最後の正確に逆圧縮された受信パケットのリンク層の順序番号と現在の受信パケットのリンク層の順序番号との差が決定される。この差は、リンク層の順序番号のインターバル(link layer serial number interval)またはINTERVAL LLSNと呼ばれ、これは、RFC 3095に関連して上述で説明した“解釈インターバル”または“INTERVAL”と同じではない。
【0046】
参照番号430において、逆圧縮器は、INTERVAL LLSNが少なくとも2k−pに等しいかどうかを決定する。なお、kは現在のパケット内の順序番号のビットの数であり、pは並べ替え(reordering)を処理するための解釈インターバルに対するシフトである。INTERVAL LLSNが少なくとも2k−pに等しいとき、逆圧縮器は、(基準順序番号と呼ばれる)最後の正確に逆圧縮された受信パケットの順序番号にINTERVAL LLSNを加える。この行為は、逆圧縮に使用される情報の修復を指し得る。
【0047】
参照番号440において、逆圧縮器は、新しい基準順序番号を使用して、現在のパケットを逆圧縮することを試みる。
【0048】
この逆圧縮が成功すると、逆圧縮器はそのコンテキストを更新し、パケットを上位層に送る。逆圧縮が失敗すると、逆圧縮器はパケットを廃棄し、RFC 3095のセクション5.3.2.2.3のルール(a)乃至(c)にしたがって動作し得る。
【0049】
局部的修復モードの改善に加えて、リンク層の順序番号を使用する別の利点は、リンク層の順序番号により、逆圧縮器がリンク上での過剰な並べ替え(excessive ordering)を処理できることである。リンク層の順序番号は、遅れて到着したRoHCパケットの正確な位置を識別するのを助け、したがって、逆圧縮器は、逆圧縮器の現在のコンテキストにおける基準値からRTPの順序番号を正確に推測(infer)することができる。
【0050】
幾つかの状況において、リンク層の順序番号とRTPの順序番号との間に1対1のマッピングがないことがある。例えば、無線ネットワークの逆方向リンク上で、(例えば、4.8kbpsで動作している)セルエッジのユーザは、2つのRLPセグメントにおいて1つのRTP/UDP/IP音声パケットを送る必要があり得る。
【0051】
図5は、このような状況(リンク層の順序番号とRTPの順序番号との間に1対1のマッピングがない状況)において、SNのラップアラウンドが行われたかどうか、および局部的修復をどのように行うかを決定するために使用され得る方法を示している。次の方法は、最後の正確に逆圧縮されたパケットに対するリンク層の順序番号およびRTPの順序番号がゼロ(“0”)であると仮定する。非ゼロの基準値は、異なる処理を最初に行うことによって処理され得る。
【0052】
参照番号510において、逆圧縮器は、例えば、RoHC CRCの不合格によって逆圧縮のエラーを検出することによって、逆圧縮が失敗したかどうかを決定する。逆圧縮が失敗したときは、参照番号520において、逆圧縮器はINTERVAL LLSNを計算する。INTERVAL LLSNは、2つの連続する正確に受信されて正確に逆圧縮されたパケット間のリンク層の順序番号の差、すなわち、現在のパケットのリンク層の順序番号から基準値(最後の受信されて正確に逆圧縮されたパケットのリンク層の順序番号)を減算したものである。
【0053】
(上述で説明した)LSBの解釈インターバルはちょうど半分を有していてもよく、長さはLとして表現される。なお、Lは、2kよりも小さい。参照番号530において、INTERVAL LLSNが2(L+1)以上であるときは、ラップアラウンドが行われ、処理はステップ540に続くか、さもなければ、処理はステップ570に続く。
【0054】
参照番号540において、INTERVAL LLSNが2(k+1)以上であるとき、参照番号550において、逆圧縮器は、解釈インターバル[L+1,2(L+1)−1]、[2(L+1),3(L+1)−2]、・・・、[k(L+1),(k+1)(L+1)−(k)]を使用して、複数の試行によりパケットを逆圧縮することによって正確なラップアラウンド量を決定することを試みる。なお、INTERVAL LLSNは、k(L+1)≦INTERVAL LLSN≦(k+1)(L+1)−(k)として定義される。正確な解釈インターバルにおける逆圧縮は、RoHCの3ビットのCRCに合格するので、これらの逆圧縮の少なくとも1つは成功する。逆圧縮の1つのみが成功するとき、パケットは上位層に送られ得る。逆圧縮の2つ以上が成功するとき、逆圧縮器は正確な解釈インターバルに関して確実でないかもしれず、パケットは上位層に送られない。
【0055】
参照番号540において、INTERVAL LLSNが2(k+1)未満であるとき、実際のRTP SNは、[INTERVAL LLSN/2,INTERVAL LLSN]の間にある。INTERVAL LLSN/2は2k以下であるので、参照番号560において、kビットを含んでいるRTP SNのLSBを使用して、正確なRTP SNの位置を固有に識別することができる。逆圧縮器は、RoHCのヘッダ内のRTP SNのLSBおよびリンク層のSNによって与えられる固有の情報に基づいて、ラップアラウンドを修復し得る。
【0056】
参照番号570において、INTERVAL LLSNがL以下であるとき、ラップアラウンドは行われず、参照番号580において、方法は、間違ったコンテキストの局部的修復を必要であれば行う。そうでなければ、処理はステップ575に続く。
【0057】
参照番号575において、RTP SNのLSBが、[INTERVAL LLSN/2,L]として定義される範囲内にあるとき、処理はステップ580に続き、間違ったコンテキストの局部的修復を必要であれば行う。そうでなければ、処理はステップ560に続き、RoHCヘッダ内のRTP SNのLSBおよびリンク層のSNに基づいてラップアラウンドを修復する。
【0058】
RoHC圧縮器の前にIPパケットが失われても、図5の方法はうまくいく(work)。
【0059】
図6は、図4の方法に対応する逆圧縮器装置600を示している。逆圧縮器装置600は、逆圧縮が現在の受信パケットに対して失敗したかどうかを決定する手段610、2つの連続する正確に受信されて正確に逆圧縮されたパケット(現在の受信パケットおよび最後の正確に逆圧縮されたパケット)間におけるリンク層の順序番号の差に相当するインターバルを決定する手段620、インターバルが2k−p以上であるかどうかを決定して、最後の正確に逆圧縮されたパケットの基準順序番号にインターバルを加える手段630、並びに新しい基準順序番号を使用して逆圧縮を行う手段640を含む。
【0060】
図7は、図5の方法に対応する逆圧縮器装置700を示している。逆圧縮器装置700は、逆圧縮が失敗したかどうかを決定する手段710、2つの連続する正確に受信されて正確に逆圧縮されたパケット間におけるリンク層の順序番号の差であるインターバルを決定する手段720、インターバル≧2(L+1)かを決定する手段730、インターバル≧2(k+1)かを決定する手段740、正確なラップアラウンド量を決定するために複数の試行を行う手段750、RoHCヘッダ内のRTP SNのLSBおよびリンク層のSNによって与えられる固有の情報に基づいてラップアラウンドを修復する手段760、インターバル≦Lかを決定する手段770、RTP SNのLSBが[インターバル/2,L]内であるかどうかを決定する手段775、並びに間違ったコンテキストの局部的修復を必要であれば行う手段780を含む。
【0061】
一例において、逆圧縮器は、現在の受信パケットのLL SNと最後の正確に逆圧縮されたパケットのLL SNとの間の差が分かると、現在のパケットがどの解釈インターバルにあるかを正確に決定する。この解釈インターバルは、RTP SNのフィールドを表わすのに使用されるビット数に対応する解釈インターバルのサイズとLL SNの差との比(ratio)に基づいて決定され得る。一例として、LL SNの差=8であり、4ビットがRTP SNのフィールドを表わすのに使用され(16の解釈インターバルサイズに対応する)、p=5であるとき、逆圧縮器は現在の解釈インターバルにおいて逆圧縮することを試みるべきである。LL SN=16であり、4ビットがRTP SNフィールドを表わすのに使用されるとき、逆圧縮器は次の解釈インターバルにおいて逆圧縮することを試みるべきである。LL SN=−6であり、4ビットがRTP SNフィールドを表わすのに使用されるとき、逆圧縮器は前の解釈インターバルにおいて逆圧縮することを試みるべきである。
【0062】
これは、次に示されている式2によって表わすことができる。逆圧縮器は、以下によって与えられる解釈インターバルにおいて逆圧縮することを試み得る。
【0063】
0<=ΔLL SN<=2−p−1の場合、 I=0
ΔLL SN>2−p−1の場合、
I=上限((ΔLL SN−(2−p−1)/(2))−p<=ΔLL SN<0の場合、 I=−1
ΔLL SN<−pの場合、 I=−1+下限((ΔLL SN−p)/2) 式(2)
なお、ΔLL SNは、現在のパケットと最後の正確に逆圧縮されたパケットとの間のLL SNの差であり、kは、圧縮されたフィールドを表わすのに使用されるビット数であり、pは、逆圧縮器が許容することができる負の変化量である。さらに、解釈インターバル0は現在のインターバルに対応し、1は次の解釈インターバルに相当し、−1は前の解釈インターバルに相当する、等である。この知識により、局部的修復を使用するべきかどうかを決定するタイマチェックはディスエーブルにされ得る。
【0064】
逆圧縮の修復におけるUDPのチェックサムの使用
別の方法は、UDPのチェックサムを使用して、RoHC逆圧縮器における局部的修復モードを向上/改善させ得る。UDPのチェックサムを組み込んでいることは、図8のパケットに示されている。UDPのチェックサムは誤り検出を提供し、16ビットのチェックサムフィールドは、ヘッダおよびデータを誤り検査するのに使用され得る。利用可能であるときに、UDPのチェックサムを使用すると、RoHC逆圧縮器は、局部的修復モード中に逆圧縮されたパケットに対してより大きな確信をもつことができる。UDPのチェックサムは、IPフローにおいてイネーブルにされ得る。これは、IPv6の場合である。次に示す方法は、UDPのチェックサムを使用することによって、RFC 3095によって説明されているように、RoHCにおける局部的修復モードを改善する。
【0065】
(a)逆圧縮器は、各到来パケットiの到着時間a(i)を記録する。逆圧縮が失敗した場合のパケットの到着時間は破棄される。
【0066】
(b)逆圧縮が失敗すると、逆圧縮器は、INTERVAL LLSN=a(i)−a(i−1)、すなわち、前の正確に逆圧縮されたパケットの到着から現在のパケットの到着までに経過した時間を計算する。
【0067】
(c)ラップアラウンドが行われたとき、INTERVAL LLSNは、少なくとも2kのパケット間の時間に相当する。なお、kは現在のヘッダ内のSNビットの数である。例えば、到着時間の移動平均、TS STRIDE、またはTS TIMEを使用して得られるパケット到着間の時間の推定に基づいて、逆圧縮器は、INTERVAL LLSNが2kのパケット到着間の時間に相当し得るかどうかを判断する。
【0068】
(d)INTERVAL LLSNが少なくとも2kのパケット到着間の時間であると判断されると、逆圧縮器は2kを基準SNに加えて、新しい基準SNを使用してパケットを逆圧縮することを試みる。
【0069】
(e)この逆圧縮が成功し、UDPのチェックサムが合格すると、逆圧縮器はコンテキストを更新して、パケットを上位層に送る。ここで使用されているように、例えば、UDP層によって計算されたチェックサムが、UDPヘッダチェックサムと同じである(すなわち、検出された誤りがない)とき、UDPのチェックサムは合格する。逆圧縮が失敗するか、またはUDPのチェックサムが合格しないとき、逆圧縮器はパケットを廃棄し、上述で説明されたRFC 3095のセクション5.3.2.2.3のルール(a)乃至(c)にしたがって動作し得る。
【0070】
(イネーブルにされたとき)UDPのチェックサムは図4または5に示されている方法にも取り入れられて、逆圧縮が成功であるかどうかをさらに検査(verify)し得る。
【0071】
図9は、上述で説明したUDPのチェックサムを使用する方法を示している。参照番号900において、方法は、パケットヘッダにおける逆圧縮が成功するかどうかを決定する。参照番号902において、方法は、パケットヘッダ内のUDPのチェックサムが合格するかどうかを決定する。参照番号904において、逆圧縮が成功し、UDPのチェックサムが合格すると、方法は、逆圧縮に使用されたコンテキスト情報を更新して、逆圧縮されたパケットを上位層に送る。
【0072】
図10は、図9の方法に対応する逆圧縮器1010を示している。逆圧縮器1010は、パケットヘッダの逆圧縮が成功するかどうかを決定する手段1000、パケットヘッダ内のユーザ データグラム プロトコル(user datagram protocol, UDP)のチェックサムが合格するかどうかを決定する手段1002、並びに逆圧縮が成功し、UDPのチェックサムが合格すると、逆圧縮に使用されるコンテキスト情報を更新して、逆圧縮されたパケットを上位層に送る手段1004を含んでいる。
【0073】
向上した局部的修復のディスエーブリング
送信されたRTPパケットとLLの順序番号との間に1対1のマッピングがない特定のシナリオでは、向上した局部的修復はディスエーブルにされ得る。例えば、複数のIPフローは同じローカルリンク、したがって同じLLの順序番号の空間を共有し得る。言い換えると、同じローカルリンク上で送られる複数のIPフローは、LL SN空間を共有する。その結果、LLの順序番号は、LL SNにおける飛越し(jump)のどのくらいがそのフローによって行われたかを示さないかもしれない。したがって、向上した局部的修復はディスエーブルにされ得る。
【0074】
第2のシナリオでは、例えば、高速パケットデータ(high rate packet data, HRPD)と呼ばれる1xEV−DO(Rev.0、Rev.A、Rev.B)のようなプロトコルのリンク層において、RLPのリセットは信号で知らされ得る。例えば、1つのBSCから別のBSCへのシステム間のハンドオフにおいて、RLPリセットメッセージが受信されると、RLPの順序番号は0から始まり得る。この場合、LL SNにおける飛越しを決定することは不可能であり得る。したがって、RLPがリセットされた後で受信された最初のNパケットに対して、向上した局部的修復はディスエーブルにされ得る。(他のリンク層はRLPのリセットと同様の概念を有し、この技術はそれらにも適用され得る)。
【0075】
第3のシナリオでは、オクテットベースのRLPが実施されるときに、向上した局部的修復はディスエーブルにされ得る。オクテットベースのRLPにおいて、RLP SNは、パケットのサイズによって増加する。パケットサイズは異なるかもしれず、したがって、RLPがオクテット ベース モードで使用されるとき、いくつのパケットが欠けているSN空間に対応するかを決定することは不可能であり得る。
【0076】
一例において、向上した局部的修復をディスエーブルにするために、特定の情報が、RoHCのスタックと下位層のインターフェースとの間で渡され得る。この情報は、RoHC逆圧縮器に渡されるLL SNおよびLL SNの範囲情報と幾つかのアルゴリズムとを含む。これらのアルゴリズムは、RLPがセグメントベースであるかまたは複数のフローがRLPを共有しているときに、全フローの機能をディスエーブルにするアルゴリズム、RLPがリセットされた後で、幾つかのRTPパケットに対して向上した局部的修復をディスエーブルにするアルゴリズム、および向上した局部的修復が以前にイネーブルにされたフローに対して、向上した局部的修復をディスエーブルにするアルゴリズムを含み得る。例えば、1つのフローを以前に運んでいたリンクフロー上で第2のフローが始まるときに、これは行われ得る。
【0077】
初期設定において、Nの値、LL SNの範囲の上位値、およびLL SNの範囲の下位値は、フローごとに与えられ得る。Nは、関数EnhancedLocalRepairReset()を受信した後で、向上した局部的修復がディスエーブルにされるパケット数を表わす。LL SNの範囲の上位値および下位値の両者がゼロに設定されると、向上した局部的修復はディスエーブルにされる。LL SNの範囲のサイズは、[(LL SNの範囲の上位値)−(LL SNの範囲の下位値+1)]として定義される。一例(DO Rev A)において、LL SNの範囲のデフォルトの上位値は+31であり、LL SNの範囲の下位値は−32である。
【0078】
一例において、LL SN、すなわち、LLパケットの符号のない(unsigned)順序番号が、全パケットに与えられる。(上述で定義されたように)LL SNの空間およびLL SNの範囲は、同じサイズであり得る。例えば、LL SNの範囲の上位値が+31であり、LL SNの下位値が−32であるとき、LL SNの範囲のサイズは64であり、したがって、LL SNは[0,63]の範囲にある。関数「EnhancedLocalRepairReset」はフローごとに与えられてもよく、この関数は、Nパケットに対して向上した局部的修復をディスエーブルにする。
【0079】
RoHC CRCの偽(false)の合格の場合の処理
圧縮器と逆圧縮器との間で中間パケットが落とされると、逆圧縮器において受信されたパケット間に大きな正または負に変化があり得る。前のパケットからの正または負の変化が大き過ぎる得るパケットを正確に逆圧縮するのを助ける向上した局部的修復の能力は、RoHC CRC検査に不合格したパケットに左右される。例えば、第1のパケットが圧縮されて、第1のRTP SNで送られ、正確に逆圧縮されると仮定する。しかしながら、次のx個の圧縮されたパケットはリンク上で落とされ、すなわち、それらは逆圧縮器に到着しない。RTP SNが連続的に割り当てられており、落ちたパケットがRTPパケットであったと仮定すると、(x+1)番目の送信に成功したパケットは、RTP SN(1+x+1)に対応する次の連続するRTP SNを割り当てられる。(x+1)番目のパケットの受信に成功すると、逆圧縮器のコンテキスト情報は、第1の逆圧縮に成功したパケット、v refに対応し、逆圧縮器は、v refに基づいてそのコンテキストを更新することを試み得る。一例において、(x+1)番目のパケットのLSBが、逆圧縮に成功した第1のパケットのMSBに付加されることを試みられる。逆圧縮器のコンテキスト情報の更新および送信パケットの再生成の成功は、v refに左右されるので、落ちたパケットにより現在のパケット(x+1)は不正確に逆圧縮され得る。
【0080】
一例において、3ビットのRoHC CRC検査が実施される。一般に、3ビットのCRCが不正確に逆圧縮されたパケットを検出しない確率は、1/2(1/8)である。したがって、パケットが不正確に逆圧縮されるときでさえ、RoHC CRC検査はそれでも合格することがある。このシナリオでは、(x+1)番目の不正確に逆圧縮されたパケットが捕らえられず、次の圧縮されたパケット(x+1+1)が逆圧縮器に送られ得る。このパケットはRTP SN(x+1+1)を割り当てられ、さらに、不正確に逆圧縮される。第2のCRCの不合格を捕らえない確率は(1/2)(1/2)または1/64になり、したがって、この反復において(x+1+1)番目の不正確に逆圧縮されたパケットが検出される可能性は高くなる。逆圧縮されたパケットがRoHC CRC検査に不合格するときにのみ、局部的修復が起動される。(x+1+1)番目のパケットがCRC検査に不合格すると仮定する。上述のシナリオにおいて、パケット(x+1)はCRC検査に不合格しなかったので、第1の逆圧縮されたパケットと逆圧縮されたパケット(x+1)との間の飛越しは検出されなかった。最終的にCRCが不合格すると、逆圧縮されたパケット(x+1)と逆圧縮されたパケット(x+1+1)との間の飛越しのみが検出される。
【0081】
図11は、上述のシナリオを説明している。式2の解釈インターバルを再び参照すると、p=5の想定値は、逆圧縮器が5までの負の並べ替えを許容し得ることを意味する。最初に、914のRTP SN(および27のLL SN)を備えた圧縮されたパケットが送信され、正確に逆圧縮される。RTP SN908(LL SN=21)を備えた次のパケットは送信されるが、RTP SN924に対応するものとして不正確に逆圧縮される。その理由は、RTP SN908が、pの値により現在の解釈インターバル内に収めることができる範囲外にあるからである。3ビットのCRCパケットを仮定すると、逆圧縮されたパケットが正しくなくても、CRCに不合格する確率は1/8のみであるので、CRCに合格する。したがって、逆圧縮器のコンテキストは、RTP SN924に対応するように更新される。このシナリオは、CRCの偽の合格(false pass)と呼ばれる。
【0082】
図11に示されているように、909のRTP SN(およびLL SN=22)を備えた次のパケットが送信されると、逆圧縮は、RTP SN925に対応する値を生成する。CRCの偽の合格を検出する確率は、各連続的な3ビットのCRCにより低減し、このシナリオでは、(1/8)(1/8)または1/64である。ここでCRCの不合格が検出されたと仮定すると、向上した局部的修復が起動される。向上した局部的修復は、現在のパケット(RTP SN=925)および前のパケット(RTP SN=924)のみを調べて、解釈インターバルを決めて、その中の現在のパケットを復号すると、パケットは不正確
に再生成される(さらに、CRCの不合格のために落される)。前のパケットと現在のパケットとの間のLL SNの差は1(LL SN22−LL SN21)であるので、逆圧縮器は現在の解釈インターバルにおいて逆圧縮を行う。しかしながら、第1のパケット(RTP SN924)の偽の合格のために、逆圧縮器のコンテキスト情報は正確に更新されなかったので、これは間違った解釈インターバルである。この例は、大きな負の変化に対するCRCの偽の合格を示す。CRCの偽の合格についての同様のシナリオは、大きな正の変化に対しても起こり得る。
【0083】
本発明の一例において、偽の合格があるとき、適用する正しい解釈インターバルは、次の方法によって計算され得る。
【0084】
前の正確に逆圧縮されたパケットに対してRTP SN=R1およびLL SN=L1、現在のパケットに対して、LL SN=L2および逆圧縮されたRTP SN=R2の場合、
・|(L2−L1)−(R2−R1)|>THRESHであるとき、逆圧縮器における偽のCRCの合格と仮定し、DIFF=(R2−R1)−(L2−L1)を記憶する。
【0085】
・(LL SN=L3を備えた)パケットがCRCに不合格し、局部的修復が起動されるとき、逆圧縮する解釈インターバルは、式2に記載されている式を使用して、値(L3−L2)−DIFFに基づいて選択されるべきである。
【0086】
・N個の連続するパケットが正確に逆圧縮するとき、DIFF=0に設定する。
【0087】
図11におけるように、RoHCのCRCの偽の合格により、逆圧縮器の状態が不正確に更新されるときでさえ、このような方法により、向上した局部的修復はうまくいく(work)。
【0088】
図12は、偽の合格が生じたときにパケットに対する解釈インターバルを決定する方法を示している。示されているように、ステップ1200においてDIFFが閾値より大きいかどうかが決定される。DIFFは上述で定義されている。値が閾値より大きいとき、ステップ1210において、DIFFは記憶される。次に、ステップ1220において次の逆圧縮されたパケットがCRC検査に不合格であるかどうかが決定される。ステップ1230において局部的修復が起動され、ステップ1240において解釈インターバルが(L3−L2)−DIFFとして決定される。ステップ1250において次のNパケットが正確に逆圧縮されたかどうかが決定される。次のNパケットが正確に逆圧縮されたと決定されたときは、ステップ1260において、DIFFの値はゼロにリセットされる。次のNパケットが正確に逆圧縮されていないとき、ステップ1270において、パケットは廃棄され、プロセスは局部的修復を終了する。図13は、図12の方法に対応する装置を示している。図13のブロック1300、1310、1320、1330、1340、1350、および1360は、それぞれ図12の1200、1210、1220、1230、1240、1250、および1260に対応する。
【0089】
本明細書に開示されている実施形態に関連して説明された様々な例示的な論理的なブロック、モジュール、および回路は、汎用プロセッサ、ディジタル信号プロセッサ(digital signal processor, DSP)、ASIC、フィールド プログラマブル ゲート アレイ(field programmable gate array, FPGA)、または他のプログラマブル論理デバイス、ディスクリートなゲートまたはトランジスタ論理、ディスクリートなハードウェア構成要素、あるいは本明細書に説明されている機能を実行するように設計された任意の組合せで実施または実行され得る。汎用プロセッサは、マイクロプロセッサであってもよいが、その代わりに、プロセッサは、任意の従来のプロセッサ、制御装置、マイクロコントローラ、または状態機械であってもよい。プロセッサは、コンピューティングデバイスの組合せ、例えば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPのコアと関連した1つ以上のマイクロプロセッサ、または任意の他のこのような構成としても実施され得る。
【0090】
本明細書に開示されている実施形態に関連して説明された方法またはアルゴリズムは、ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、または2つの組合せにおいて直接的に具体化され得る。ソフトウェアモジュールは、ランダム アクセス メモリ(random access memory, RAM)、フラッシュメモリ、読出し専用メモリ(read only memory, ROM)、電気的にプログラマブルなROM(electrically programmable ROM, EPROM)、電気的に消去可能なプログラマブルなROM(electrically erasable programmable ROM, EEPROM)、レジスタ、ハードディスク、取り外し可能ディ
スク、CD−ROM、または当技術において知られている記憶媒体の任意の他の形態内に存在し得る。記憶媒体はプロセッサに接続され、プロセッサは記憶媒体から情報を読み出し、かつそこへ情報を書き込むことができる。その代りに、記憶媒体はプロセッサと一体構成であってもよい。プロセッサおよび記憶媒体はASIC内に存在し得る。ASICはアクセス端末内に存在し得る。その代りに、プロセッサおよび記憶媒体はアクセス端末内にディスクリートな構成要素として存在してもよい。
【0091】
1つ以上の例示的な実施形態において、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せにおいて実施され得る。ソフトウェアで実施されるときは、機能は、コンピュータ読出し可能媒体上の1つ以上の命令またはコードとして記憶または送信され得る。コンピュータ読出し可能媒体は、コンピュータ記憶媒体および通信媒体(例えば、一方の場所から他方の場所へのコンピュータプログラムの転送を助ける任意の媒体)の両者を含む。記憶媒体は、コンピュータによってアクセスすることができる任意の使用可能な媒体であり得る。制限によってではなく、例示的に、このよ
うなコンピュータ読出し可能媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは希望のプログラムコードを命令またはデータ構造の形で保持または記憶するのに使用することができ、コンピュータによってアクセスすることができる任意の他の媒体を含むことができる。さらに、任意の接続はコンピュータ読出し可能媒体と適切に称される。例えば、同軸ケーブル、光ファイバケーブル、撚線対、ディジタル加入者回線(digital subscriber line, DSL)、または無線技術、例えば赤外線、ラジオ、およびマイクロ波を使用して、ソフトウェアがウェブサイト、サーバ、または他の遠隔ソースから送信されるとき、同軸ケーブル、光ファイバケーブル、撚対線、DSL、または無線技術、例えば赤外線、ラジオ、およびマイクロ波は、媒体の定義に含まれる。ここで使用されているディスク(diskおよびdisc)は、コンパクトディスク(compact disc, CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、ディジタル多用途ディスク(digital versatile disc, DVD)、フロッピー(登録商標)ディスク(disk)、およびブルーレイ ディスク(disc)を含む。なお、ディスク(disk)は一般にデータを磁気的に再生し、一方でディスク(disc)はデータをレーザで光学的に再生する。上述の組合せも、コンピュータ読出し可能媒体の範囲内に含まれるべきである。
【0092】
当業者は、情報および信号が、様々な異なる技術および技法の何れかを使用して表わされ得ることが分かるであろう。例えば、上述全体で参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光学場または光学粒子、あるいはその任意の組合せによって表わされ得る。
【0093】
当業者は、本明細書に開示されている実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムのステップは、電子ハードウェア、コンピュータソフトウェアとして、または両者の組合せとして実施され得ることも分かるであろう。ハードウェアおよびソフトウェアのこの互換性を明白に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、それらの機能性に関して上述で概ね説明された。このような機能性がハードウェアとして実施されるか、またはソフトウェアとして実施されるかは、システム全体に課された設計上の制約および個々の用途に応じる。当業者は、説明された機能性を各個々の用途のために様々なやり方で実施し得るが、そのような実施の決定は、本発明の範囲からの逸脱を招くものとして解釈されるべきではない。
【0094】
開示された実施形態の上述の説明は、当業者が本出願を実行または使用できるようにするために与えられている。これらの実施形態に対する様々な変更は当業者に容易に明らかになり、本明細書に定義されている一般的な原理は、本発明の意図および範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本出願は、本明細書に示された実施形態に制限されることを意図されず、本出願に開示されている原理および斬新な特徴に一致する最も幅広い範囲にしたがうことを意図されている。

【特許請求の範囲】
【請求項1】
パケットヘッダを逆圧縮する方法であって、
現在のパケットヘッダの逆圧縮が失敗したかどうかを決定することと、
ヘッダの逆圧縮が失敗したときに、前の正確に逆圧縮されたパケットのリンク層の順序番号(link layer sequence number, LL SN)と現在のパケットのリンク層の順序番号(LL SN)との間の差を決定して、ヘッダの逆圧縮に使用される修復情報を与えることと、
修復情報を使用して現在のパケットのヘッダを逆圧縮することとを含む方法。
【請求項2】
逆圧縮に使用されるコンテキスト情報を更新することと、現在のパケットを上位層に送ることとをさらに含む請求項1記載の方法。
【請求項3】
無線リンク上で前のパケットおよび現在のパケットを受信することをさらに含む請求項1記載の方法。
【請求項4】
ヘッダは、インターネットプロトコル(Internet Protocol, IP)、リアルタイム転送プロトコル(Real-time Transport Protocol, RTP)、ユーザ データグラム プロトコル(User Datagram Protocol, UDP)、および伝送制御プロトコル(Transmission Control Protocol TCP)の少なくとも1つに関係する情報を含む請求項1記載の方法。
【請求項5】
ヘッダの逆圧縮に使用される修復情報を与えることは、
kが現在のパケットにおけるリンク層の順序番号のビット数であり、pが解釈インターバルにおけるシフトである場合に、第1のリンク層の順序番号(LL SN)と第2のリンク層の順序番号(LL SN)との間の差が(2k)−p以上であるかどうかを決定することと、
差が(2k)−p以上であるときは、差を第1のリンク層の順序番号に加えて、新しい基準順序番号を与えることとをさらに含む請求項1記載の方法。
【請求項6】
順序番号のラップアラウンドが行われたかどうかを決定することをさらに含む請求項5記載の方法。
【請求項7】
順序番号のラップアラウンドが行われたかどうかを決定することは、
Lが、逆圧縮に使用される解釈インターバルの半分の長さである場合に、差が2(L+1)以上であるかどうかを決定することと、
差が2(L+1)以上であると決定されたときは、差が2(k+1)以上であるかどうかを決定することと、
差が2(k+1)以上であると決定されたときは、複数の解釈インターバルを使用して、現在のパケットのヘッダを複数回逆圧縮することと、
解釈インターバルの1つのみにおいてヘッダの逆圧縮が成功するときに、現在のパケットを上位層へ渡すこととを含む請求項6記載の方法。
【請求項8】
INTERVAL LLSNがk(L+1)≦INTERVAL LLSN≦(k+1)(L+1)−(k)として定義される場合に、解釈インターバルは、[L+1,2(L+1)−1]、[2(L+1),3(L+1)−2]、...、[k(L+1),(k+l)(L+1)−(k)]を含む請求項7記載の方法。
【請求項9】
差が2(k+1)未満であると決定されたときは、ヘッダ内のリアルタイム転送プロトコル(RTP)の順序番号の最下位ビット(least significant bit, LSB)およびリンク層の順序番号によって与えられる情報に基づいてラップアラウンドを決定することをさらに含む請求項7記載の方法。
【請求項10】
差が2(L+1)未満であると決定されたときは、差がL以下であるかどうかを決定することと、
差がL以下であるときは、逆圧縮コンテキスト情報の局部的修復を行うこととをさらに含む請求項7記載の方法。
【請求項11】
ヘッダ内のリアルタイム転送プロトコル(real-time transport protocol, RTP)の順序番号(SN)の最下位ビット(LSB)が[INTERVAL LLSN/2,L]の範囲内であるかどうかを決定することと、
ヘッダ内の無線転送プロトコル(radio transport protocol, RTP)の順序番号の最下位ビット(LSB)が[INTERVAL LLSN/2,L]の範囲内であるときは、逆圧縮コンテキスト情報の局部的修復を行うことと、
ヘッダ内のリアルタイム転送プロトコル(RTP)の順序番号の最下位ビット(LSB)が[INTERVAL LLSN/2,L]の範囲内でないときは、ヘッダ内のリアルタイム転送プロトコル(RTP)の順序番号の最下位ビット(LSB)およびリンク層の順序番号によって与えられる情報に基づいてラップアラウンドを修復することとをさらに含む請求項7記載の方法。
【請求項12】
ヘッダの逆圧縮のための情報を更新する方法であって、
パケットヘッダの逆圧縮が成功するかどうかを決定することと、
パケットヘッダ内のユーザ データグラム プロトコル(UDP)のチェックサムが合格するかどうかを決定することと、
逆圧縮が成功し、UDPのチェックサムが合格するときは、逆圧縮に使用されるコンテキスト情報を更新し、逆圧縮されたパケットを上位層に送ることとを含む方法。
【請求項13】
パケットヘッダを逆圧縮するように構成された装置であって、
現在のパケットヘッダの逆圧縮が失敗したかどうかを決定する手段と、
ヘッダの逆圧縮が失敗したときは、前のパケットのリンク層の順序番号(LL SN)と現在のパケットのリンク層の順序番号(LL SN)との間の差を決定して、ヘッダの逆圧縮に使用される修復情報を与える手段と、
修復情報を用いて現在のパケットのヘッダを逆圧縮するように構成された逆圧縮器とを含む装置。
【請求項14】
逆圧縮器が、逆圧縮に使用されるコンテキスト情報を更新し、現在のパケットを上位層に送るようにさらに構成されている請求項13記載の装置。
【請求項15】
無線リンク上で前のパケットおよび現在のパケットを受信するトランシーバをさらに含む請求項13記載の装置。
【請求項16】
ヘッダは、インターネットプロトコル(IP)、リアルタイム転送プロトコル(RTP)、ユーザ データグラム プロトコル(UDP)、および伝送制御プロトコル(TCP)の少なくとも1つに関係する情報を含む請求項13記載の装置。
【請求項17】
逆圧縮器は、
kが現在のパケットにおけるリンク層の順序番号のビット数であり、pが解釈インターバルにおけるシフトである場合に、第1のリンク層の順序番号(LL SN)と第2のリンク層の順序番号(LL SN)との間の差が(2k)−p以上であるかどうかを決定する手段と、
差が(2k)−p以上であるときは、差を第1のリンク層の順序番号に加えて、新しい基準順序番号を与える手段とをさらに含む請求項13記載の装置。
【請求項18】
逆圧縮器は、
順序番号のラップアラウンドが行われたかどうかを決定する手段をさらに含む請求項17記載の装置。
【請求項19】
順序番号のラップアラウンドが行われたかどうかを決定する手段は、
Lが、逆圧縮に使用される解釈インターバルの半分の長さである場合に、差が2(L+1)以上であるかどうかを決定する手段と、
差が2(L+1)以上であると決定されたときは、差が2(k+1)以上であるかどうかを決定する手段と、
差が2(k+1)以上であると決定されたときは、複数の解釈インターバルを使用して、現在のパケットのヘッダを複数回逆圧縮する手段と、
解釈インターバルの1つのみにおいてヘッダの逆圧縮が成功するときに、現在のパケットを上位層へ渡す手段とをさらに含む請求項18記載の装置。
【請求項20】
INTERVAL LLSNがk(L+1)≦INTERVAL LLSN≦(k+1)(L+1)−(k)として定義される場合に、解釈インターバルは、[L+1,2(L+1)−1]、[2(L+1),3(L+1)−2]、...、[k(L+1),(k+1)(L+1)−(k)]を含む請求項19記載の装置。
【請求項21】
逆圧縮器は、
差が2(k+1)未満であると決定されたときは、ヘッダ内のリアルタイム転送プロトコル(RTP)の順序番号の最下位ビット(LSB)およびリンク層の順序番号(LL SN)によって与えられる情報に基づいてラップアラウンドを修復する手段をさらに含む請求項19記載の装置。
【請求項22】
逆圧縮器は、
差が2(L+1)未満であると決定されたときは、差がL以下であるかどうかを決定する手段と、
差がL以下であるときは、逆圧縮コンテキスト情報の局部的修復を行う手段とをさらに含む請求項19記載の装置。
【請求項23】
逆圧縮器は、
ヘッダ内のリアルタイム転送プロトコル(real-time transport protocol, RTP)の順
序番号の最下位ビット(LSB)が[INTERVAL LLSN/2,L]の範囲内であるかどうかを決定する手段と、
ヘッダ内の無線転送プロトコル(radio transport protocol, RTP)の順序番号の最下位ビット(LSB)が[INTERVAL LLSN/2,L]の範囲内であるときは、逆圧縮コンテキスト情報の局部的修復を行う手段と、
ヘッダ内のリアルタイム転送プロトコル(RTP)の順序番号の最下位ビット(LSB)が[INTERVAL LLSN/2,L]の範囲内でないときは、ヘッダ内のリアルタイム転送プロトコル(RTP)の順序番号の最下位ビット(LSB)およびリンク層の順序番号によって与えられる情報に基づいてラップアラウンドを修復する手段とをさらに含む請求項19記載の装置。
【請求項24】
ヘッダの逆圧縮のための少なくとも1つのプロセッサであって、
パケットヘッダの逆圧縮が成功するかどうかを決定するように構成された第1のモジュールと、
パケットヘッダ内のユーザ データグラム プロトコル(UDP)のチェックサムが合格するかどうかを決定するように構成された第2のモジュールと、
逆圧縮が成功し、UDPのチェックサムが合格するときは、逆圧縮に使用されるコンテキスト情報を更新し、逆圧縮されたパケットを上位層に送るように構成された第3のモジュールとを含むプロセッサ。
【請求項25】
パケットヘッダを逆圧縮するように構成された装置であって、
現在のパケットヘッダの逆圧縮が失敗したかどうかを決定する手段と、
ヘッダの逆圧縮が失敗したときは、前のパケットのリンク層の順序番号(LL SN)と現在のパケットのリンク層の順序番号(LL SN)との間の差を決定して、ヘッダの逆圧縮に使用される修復情報を与える手段と、
修復情報を用いて現在のパケットのヘッダを逆圧縮する手段とを含む装置。
【請求項26】
解釈インターバルを決定する方法であって、
現在の受信パケットのリンク層の順序番号(LL SN)と最後の正確に逆圧縮されたパケットのリンク層の順序番号(LL SN)との間の差を決定することと、
リンク層の順序番号(LL SN)の差と解釈インターバルを表わすビット数との比を決定することであって、比は現在のパケットが置かれている解釈インターバルを表わす、こととを含む方法。
【請求項27】
解釈インターバルを決定する方法であって、
第1の逆圧縮されたパケットのリアルタイム転送プロトコルの順序番号(RTP SN)と、第2の逆圧縮されたパケットのリアルタイム転送プロトコルの順序番号(RTP SN)との間の第1の差を決定することと、
第1の逆圧縮されたパケットのリンク層の順序番号(LL SN)と、第2の逆圧縮されたパケットのリンク層の順序番号(LL SN)との間の第2の差を決定することと、
第1の差と第2の差との間の第3の差が閾値より大きいかどうかを決定することと、
第3の差が閾値より大きいときに、第3の差を記憶することと、
次の逆圧縮されたパケットが巡回冗長検査(cyclic redundancy check, CRC)に不合格するかどうかを決定することと、
局部的修復モードが起動されたときは、第3の差に基づいて次のパケットの逆圧縮のための解釈インターバルを計算することとを含む方法。
【請求項28】
次のパケットの逆圧縮の後に、Nパケットが正確に逆圧縮されたかどうかを決定することと、
Nパケットが正確に逆圧縮されたときは、記憶された第3の差の値をゼロにリセットすることとをさらに含む請求項27記載の方法。
【請求項29】
解釈インターバルを決定する装置であって、
第1の逆圧縮されたパケットのリアルタイム転送プロトコルの順序番号(RTP SN)と、第2の逆圧縮されたパケットのリアルタイム転送プロトコルの順序番号(RTP SN)との間の第1の差を決定する手段と、
第1の逆圧縮されたパケットのリンク層の順序番号(LL SN)と、第2の逆圧縮されたパケットのリンク層の順序番号(LL SN)との間の第2の差を決定する手段と、
第1の差と第2の差との間の第3の差が閾値より大きいかどうかを決定する手段と、
第3の差が閾値より大きいときは、第3の差を記憶する手段と、
次の逆圧縮されたパケットが巡回冗長検査(CRC)に不合格するかどうかを決定する手段と、
局部的修復モードが起動されたときに、第3の差に基づいて次のパケットの逆圧縮のための解釈インターバルを計算する手段とを含む装置。
【請求項30】
現在のパケットヘッダの逆圧縮が失敗したかどうかを決定することをコンピュータにさせるコードと、
ヘッダの逆圧縮が失敗したときに、前の正確に逆圧縮されたパケットのリンク層の順序番号(LL SN)と現在のパケットのリンク層の順序番号(LL SN)との間の差を決定して、ヘッダの逆圧縮に使用される修復情報を与えることをコンピュータにさせるコードと、
修復情報を使用して現在のパケットのヘッダを逆圧縮することをコンピュータにさせるコードとを含む、コンピュータ読出し可能媒体を含む、
コンピュータプログラム製品。
【請求項31】
第1の逆圧縮されたパケットのリアルタイム転送プロトコルの順序番号(RTP SN)と、第2の逆圧縮されたパケットのリアルタイム転送プロトコルの順序番号(RTP SN)との間の第1の差を決定することをコンピュータにさせるコードと、
第1の逆圧縮されたパケットのリンク層の順序番号(LL SN)と、第2の逆圧縮されたパケットのリンク層の順序番号(LL SN)との間の第2の差を決定することをコンピュータにさせるコードと、
第1の差と第2の差との間の第3の差が閾値より大きいかどうかを決定することをコンピュータにさせるコードと、
第3の差が閾値より大きいときは、第3の差を記憶することをコンピュータにさせるコードと、
次の逆圧縮されたパケットが巡回冗長検査(CRC)に不合格するかどうかを決定することをコンピュータにさせるコードと、
局部的修復モードが起動されたときに、第3の差に基づいて次のパケットの逆圧縮のための解釈インターバルを計算することをコンピュータにさせるコードとを含む、コンピュータ読出し可能媒体を含む、
コンピュータプログラム製品。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2011−223593(P2011−223593A)
【公開日】平成23年11月4日(2011.11.4)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−109295(P2011−109295)
【出願日】平成23年5月16日(2011.5.16)
【分割の表示】特願2009−510079(P2009−510079)の分割
【原出願日】平成19年5月3日(2007.5.3)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】