サイレント抑圧時のROHCパフォーマンスを向上させる方法と装置
【課題】サイレント抑圧を行うときのロバストヘッダーコンプレッション(RoHC)圧縮器のパフォーマンスを向上させるための方法と装置を提供する。
【解決手段】連続するパケットについて所定数のパケットが一定のタイムスタンプインクリメント値を有するようになるまでRTPタイムスタンプインクリメントが計算される。この一定のRTPタイムスタンプインクリメント値はタイムスタンプストライド(TS_STRIDE)値として圧縮のために割り当てられ、各RTPタイムスタンプ(TS)値はタイムスタンプストライド(TS_STRIDE)により縮尺され、ヘッダーがこの割り当てられた値を用いて圧縮される。
【解決手段】連続するパケットについて所定数のパケットが一定のタイムスタンプインクリメント値を有するようになるまでRTPタイムスタンプインクリメントが計算される。この一定のRTPタイムスタンプインクリメント値はタイムスタンプストライド(TS_STRIDE)値として圧縮のために割り当てられ、各RTPタイムスタンプ(TS)値はタイムスタンプストライド(TS_STRIDE)により縮尺され、ヘッダーがこの割り当てられた値を用いて圧縮される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は通信システムに係り、特にこの明細書の実施形態ではサイレント抑圧時の強力なヘッダー圧縮(ROHC)用の圧縮器のパフォーマンスを向上させる方法と装置に関する。
【背景技術】
【0002】
インターネットプロトコル(IP)は送信プロトコルとして有線および無線のネットワークを必要とし、特に遠距離通信およびデータのネットワークの必要性が増してきている。プロトコルヘッダーの圧縮について多くの努力が為されているが、その努力はヘッダー圧縮方式の有効且つ強力な開発に向けられている。
【発明の概要】
【0003】
本出願は、“サイレント抑圧時のROHCパフォーマンスを向上させる方法と装置”と題して2006年1月6日に出願され本譲受人に譲渡された米国特許仮出願番号60/756,658号の優先権の利益を主張する。
【0004】
以下に開示される実施形態はサイレント圧縮に関してロバストヘッダーコンプレッション圧縮器(RoHC)のパフォーマンスを向上させるための方法とシステムに関する。これらの実施形態は、携帯電話ネットワーク、公衆電話回線(PSTNs)、無線インターネット、衛星ネットワーク、広域ネットワーク(WANs)、無線ローカルエリアネットワーク(WLANs)、VoIPネットワーク、IP準拠マルチメディアシステムなどのような無線、有線通信システムに用いることができる。
【図面の簡単な説明】
【0005】
【図1】図1は通信システムにおけるフレームとパケットとを示す。
【図2】図2はヘッダー圧縮の一例を示す。
【図3】図3は通信システムの一例を示す。
【図4】図4はBTS−RNC−PDSNのハードウエアとソフトウエアの例を示す。
【図5】図5はアクセス端末のハードウエアとソフトウエアの例を示す。
【図6】図6はパケットストリーム中の一連のパケットを示す。
【図7A】図7Aは会話の一連のパケットを示す。
【図7B】図7Bは6個の一連のパケットで示された会話セグメントを示す。
【図8】図8は一実施形態におけるサイレント抑圧の例を示す。
【図9】図9は他の実施形態におけるサイレント抑圧の例を示す。
【図10】図10はTS−STRIDEの変化を示す。
【図11】図11はRoHCのパフォーマンスを向上させるように構成されたプロセスの一例を示す。
【図12】図12はAMR中の一連の会話の期間とサイレントの期間とを示す。
【図13】図13はRoHCのパフォーマンスを向上させるように構成されたプロセスの一例のフローチャートを示す。
【図14】図14は図13の方法に対応する手段を示す。
【図15】図15はRoHCのパフォーマンスを向上させるように構成されたプロセスの他の例のフローチャートを示す。
【図16】図16は図15の方法に対応する手段を示す。
【発明を実施するための形態】
【0006】
多くのサービスおよびアプリケーション、たとえばIP電話(VoIP)、ビデオ電話、双方向ゲーム、伝言サービスなどにおいて、データはパケット状にされてネットワークを介して送信される。以下の説明ではフレームとは通信システム上に送信されるようにフォーマットされたデータフレームの部分を意味する。図1に幾つかのパケット102とフレーム104とを示す。フレーム104は適切な時間幅、例えば20msecを有し、パケット102の時間幅と同じでも良いし、または異なる時間幅でも良い。各パケットは通常はヘッダー内に含まれた割り当てアドレスに従ってその目的とするネットワーク上の送り先に送信される。ヘッダーはパケットの開始を指定し、トレイラはパケットの終了を指定し、「ペイロード」はパケットのデータ部を指定する。パケットはインターネットプロトコル(IP)、ユーザデータグラムプロトコル(UDP)、リアルタイムトランスポートプロトコル(RTP)、およびトランスミッションコントロールプロトコル(TCP)ヘッダのような種々の形式のヘッダーを持つことができる。ある種の方法では、IPパケットのペイロードはヘッダーと同等のサイズ或いはヘッダーより小さくても良い。
【0007】
ランドラインまたはワイヤラインシステムにおいて、バンド幅についての制限は少なく、パケット全体を連続して送信することによりデータ通信を行うことができる。しかしながら無線通信システムにおいてはバンド幅に制限があり、データを保護する必要がある。パケットのオーバーヘッドの縮小はパケットヘッダーのサイズを縮小することにより実現することができる。ヘッダーを圧縮することによりネットワーク通信の品質、速度および効率を向上させることができる。さらに、このヘッダー圧縮により双方向応答速度が向上し、一定のチャネルバンド幅内でより多くのユーザが利用可能となる。このことにより拡大コストの減少がもたらされる。図2は音声通信システムにおけるヘッダー圧縮の一例を示す。この例においては40バイト以上の非圧縮ヘッダーがオーバーヘッドに付加されている。ヘッダー圧縮により、オーバーヘッドは2−4バイトとなっている。このヘッダー圧縮により、ネットワークにおける必要なバンド幅の維持が可能となる。
【0008】
図3は通信システム300の一例を示し、ここではこの発明における一つまたは複数の方法が示されている。第1のアクセス端末(AT)301Aはリバースリンク(またはアップリンク)ヘッダー圧縮器302を含む。この第1のアクセス端末301Aは無線により、リバースリンク(RL)を介して基地局304Aと通信を行い、さらにラジオアクセスネットワーク(RAN)内の基地局送受信システム/パケットデータ供給ノード(BTS−RNC−PDSN)306Aと通信を行う。
【0009】
BTS−RNC−PDSN306Aはリバースリンクヘッダー伸長器310を含み、これは以下に説明する一つまたは複数の方法を実施することができる。BTS−RNC−PDSN 306Aはパケットデータ供給ノード/基地局送受信システム(PDSN−BTS)306BとVoIPネットワーク312を介して通信を行う。このPDSN−BTS 306Bはフォワードリンク(またはダウンリンク)ヘッダー圧縮器312を含む。
【0010】
基地局304BとPDSN−BTS 306Bは第2のアクセス端末301Bとフォワードリンクを介して無線で通信を行うことができる。この第2のアクセス端末301Bはフォワードリンクヘッダー伸長器314を含み、以下に説明する一つまたは複数の方法を実施することができる。2個の無線アクセス端末301A,301Bを用いる代わりに、そのうちの1個を有線アクセス端末としてもよい。リバースリンクヘッダー圧縮器302とリバースリンクヘッダー逆圧縮器310とは第1の圧縮器−伸長器ペアを構成する。フォワードリンクヘッダー圧縮器312とフォワードリンクヘッダー伸長器314とは第2の圧縮器−伸長器ペアを構成する。
【0011】
リバースリンクとフォワードリンクとは一つまたは複数の通信プロトコル、例えば符号分割多重接続(CDMA)1x、CDMA1xEV−DO(エボリュウション・データ・オプティマイズド)、ワイドバンドCDMA(WCDMA)、時間分割同期(TD−SCDMA)、グローバルシステム用モバイル通信(GSM(登録商標))、OFDM(直交周波数分割多重)、IEEE標準に準拠したシステム、例えば802.11(A,B,G)、802.16などを用いることができる。
【0012】
ここで、「アクセス端末」とは種々の形式の装置を意味し、例えば、有線電話、携帯電話、ラップトップコンピュータ、無線通信パーソナルコンピュータ(PC)カード、パーソナルデジタルアシスタント(PDA)、外付けモデム、内蔵モデムなどである。アクセス端末は、たとえば光ケーブルまたは同軸ケーブルを用いた無線チャネルまたは有線チャネルを介して通信を行うどのようなデータ装置であってもよい。アクセス端末は多くの名前を持ち、それらはアクセスユニット、加入者ユニット、モバイルステーション、モバイル装置、モバイルユニット、モバイル電話、モバイル、リモートステーション、リモート端末、リモートユニット、ユーザ装置、ユーザ設備、携帯装置などである。アクセス端末は携帯型または固定型であり、図3の通信システム300内で分散されている。アクセス端末は一つまたは複数の基地局送受信システム(BTSs)と交信を行い、このシステムは基地局、アクセスネットワーク、アクセルポイント、ノードBs、またはモデムプールトランシーバ(MPTs)などと呼ばれ、あるいはこれらを含むものである。
【0013】
図4は図3に示したBTS−RNC−PDSN306Aおよび/またはPDSN−BTS306Bのハードウエアおよびソフトウエアの幾つかの例を示す。その一つの例ではプロセッサ400、アプリケーションスペシフィック集積回路(ASIC)402、トランシーバ404、およびメモリ406を含む。メモリ406は一つまたは複数の上位レイヤー、たとえばアプリケーションレイヤー408、トランスポートレイヤー410、およびネットワークレイヤー412を記憶する。アプリケーションレイヤー408はリアルタイムトランスポートプロトコル(RTPまたはRTCP)のヘッダーを処理する。トランスポートレイヤー410はトランスミッションコントロールプロトコル(TCP)およびユーザデータグラムプロトコル(UDP)のヘッダーを処理する。ネットワークレイヤー412はIPのヘッダーを処理する。
【0014】
メモリ406は更に、ロバストヘッダーコンプレッション圧縮器312およびロバストヘッダーコンプレッション伸長器310を記憶する。ロバストヘッダーコンプレッション圧縮器312はタイムスタンプ計算ユニット312Aを記憶でき、また、ロバストヘッダーコンプレッション伸張器310はタイムスタンプ計算ユニット310Aを記憶することができる。メモリ406は更に、一つまたは複数の下位レイヤー420、例えばリンクレイヤー媒体アクセス制御(MAC)レイヤー414を記憶することができ、このレイヤー414はラジオリンクプロトコル(RLP)サブレイヤーを含むことができる。この下位レイヤー420は物理レイヤー416を含むこともできる。
【0015】
図5は図3に示したアクセス端末301A、301Bのハードウエアおよびソフトウエアの幾つかの構成を示す。その一つは、プロセッサ500、ASIC502、トランシーバ504、メモリ506などを含む。メモリ506はアプリケーションレイヤー508、トランスポートレイヤー510、ネットワークレイヤー512などの一つまたは複数の上位レイヤーを含む。アプリケーションレイヤー508はRTPヘッダーを処理する。トランスポートレイヤー510はTCPおよびUDPヘッダーを処理する。ネットワークレイヤー512はIPヘッダーを処理する。
【0016】
メモリ506はロバストヘッダーコンプレッション圧縮器302およびロバストヘッダーコンプレッション伸張器314とを記憶することができる。ロバストヘッダーコンプレッション圧縮器302はタイムスタンプ計算ユニット302Aを記憶し、ロバストヘッダーコンプレッション伸張器314はタイムスタンプ計算ユニット314Aを記憶することができる。メモリ506はリンクレイヤーMACレイヤー514のような一つまたは複数の下位レイヤー520を記憶することができ、このレイヤー514はRLPサブレイヤーを含むことができる。下位レイヤー520は物理レイヤー516を含むこともできる。
【0017】
RoHCはヘッダー圧縮機構であって、RTP/UDP/IPヘッダーを効率的に圧縮することができる。ロバストヘッダー圧縮については、リクエストフォーコメント(RFC)3095に「ロバストヘッダーコンプレッション(ROHC):フレームワークおよび4つのプロファイル:RTP、UDP、ESPおよび伸張」として記載されており、これは、2001年7月に、インターネットソサエティのネットワークワーキンググループによりインターネットスタンダードトラックプロトコルとして頒布されている。
【0018】
一般に、リンク上を伝送されるパケットは互いに独立したものではなく、例えばソースアドレス、目的地アドレス、などの特定の共通なパラメータを共有している。ヘッダー圧縮は、同じパケット内の、または同じパケットストリームに属する連続するパケット間のヘッダーフィールド内の有効リダンダンシーによって可能となる。「パケットストリーム」とは連続するパケットを意味し、通常は、音声パケットストリームまたはビデオパケットストリームなどの論理的にグループ化されたパケット群である。RoHCアルゴリズムはパケットストリーム中の共通パラメータを用いて一部の状態情報を保持した状態でパケットヘッダーを圧縮する。この状態情報は「コンテクスト」と称される。
【0019】
圧縮器−伸張器のペアは各パケットストリームに対してそれぞれコンテクストを持っている。各パケットストリームのコンテクストは圧縮器と伸張器において同じコンテクスト同定フィールド(CID)によって同定される。例えば、図3のRLヘッダー圧縮器302とRLヘッダー伸張器310とは特定の音声フロー「VF1]に対してコンテクスト「CID1」をそれぞれ有する。このコンテクストは、パケットストリーム中の先行ヘッダーからの情報と圧縮と伸張のための有効な参照値を有する。パケットストリームを表すデータ、例えばIP特定フィールドがどのように変化したかおよび順次番号(SN)またはタイムスタンプ(TS)における中間のパケットがどのように増加したかの情報がコンテクスト内に含まれる。ロバストヘッダー圧縮機構を確認するためにはコンテクストの不一致を回避する機構と、不一致のときにコンテクストを一致させる機構とが必要である。
【0020】
最初に、圧縮器と伸張器とが任意のパケットストリームについてその圧縮と伸張の動作に不一致が生じることがある。圧縮器はパケットストリームに関するスタティックおよびダイナミック情報を有するRoHCパケットを伸張器に送ってコンテクストを形成する。スタティックとダイナミックフィールドの双方が設定されると、圧縮器は最小の情報を送って圧縮されたヘッダーフィールドを通常の順序に進める。圧縮器と伸張器とは所定のイベント毎にそのコンテクストを更新させる。
【0021】
スタティックヘッダーフィールドは、これらのフィールドがその後一定に保持されるので、コンテクストの確定のときにのみ送信される。ヘッダーフィールドのダイナミック部分の圧縮にはより複雑なアルゴリズムが必要である。ダイナミックヘッダーフィールドはRoHCアルゴリズムによって直接に圧縮され、伸張される。しかしながら、増加SNまたはTSのような他のフィールドのリニア関数を用いてヘッダーフィールドを更に効率的に圧縮または伸張することができる。この方法はより少ないビット数で実現できる。スタティックフィールド情報を最初に送ることにより、他のフィールドに対する従属関係と予測性とを用いることにより、ヘッダーサイズは多くのパケットについて大きく減少させることができる。
【0022】
RTPパケットのSNは送信されたパケットのそれぞれについてインクリメントされ、受信器によってパケット順序が再現され、パケットロスが検出されるように使用される。TSはRTPデータパケットの最初の8個のサンプリング時間を反映する。このサンプリング時間は時間に対して単調に直線的に増加するクロックから抽出することができる。音声を処理するアプリケーションにおいては、TSは各音声パケット内のサンプル数に対応する一定のデルタによってインクリメントされる。例えば、ある入力装置が160サンプリング期間を有する音声パケットを受信すると、TSは各パケットについて160個だけインクリメントされる。図6は160インクリメントの順次SNとTSとを有するストリーム内の一連のパケットを示す。ここで、TSインクリメントは一定の160であり、これはパケットが音声セグメントを有する場合もサイレントのセグメントを有する場合も同じである。このことはサイレンス抑圧が行われていても行われていなくても同じである。サイレンス抑圧は以下により詳細に説明される。
【0023】
RoHC圧縮器は二つの連続して発生されるパケット間のRTP TS内のインクリメントを推定する。RTPパケットが連続する番号を有している場合、このインクリメントはTS_ STRIDEと称される。通常、同じ形式の連続するパケット間のTS_STRIDEは固定の大きさを有する。例えば、図7Aはあるアプリケーションを示し、SN1、...SN6は順次SNS、1、...6を持つ音声パケットを示す。図に示したように、各一対のパケット間のTS_STRIDEは一つのパケットとそれに先行する他のパケットとの間の差TSを示す。図示したように、2個のパケット間のTS_STRIDEはTSj−TSiで表され、ここで、iおよびjは連続するSNSである。図7Aにおいて、TS_STRIDE=(TSj−TSi)=(TSk−TSj)=(TSl−TSk)...である。この一定の差の値を知ることにより、圧縮動作の前に圧縮器の縮尺のスケールを決定することができる。従って、RTPタイムスタンプフィールドの効率的な圧縮のためにパケット間のTS_STRIDEを精密に決定することが必要となる。
【0024】
縮小したRTP TSを使うことでより小さい値の圧縮とこれに伴うビット数が減少するためにヘッダーのオーバーヘッドが減少される。例えば、RTP/UDP/IPにより伝送される音声を考える。8KHzでサンプリングされた20msecのパケットを形成する音声CODECでは、RTP TSは20msec内に含まれるサンプル数、すなわち8000*0.02=160のサンプル数に応じて増加する。6個の連続するパケットによって表された音声セグメントが図7Bに示されている。RTP TSは連続するパケットの間で160だけ増加し、従って、最初のパケットのRTP TSは160で、第2のパケットのRTP TSは320、3番目のパケットのRTP TSは480などとなる。ここで、圧縮器のダウンスケール(縮尺)のRTP TSの値は160、320、480等の代わりに1、2、3などの値となる。後者の場合には圧縮器は160の変化を符号化しなければならないが、前者の場合には1の変化分を符号化すればよく、従ってビット数が減少される。一例として、RoHCアルゴリズムはRTP TSフィールドを圧縮し、RTP SNからRTP TSのような他の変化フィールドに関して直線的な関係を使うことになる。
【0025】
この発明の他の形態において、最下位ビット(LSB)符号化がヘッダーフィールドの圧縮のために使用できる。このLSB符号化を用いることで、フィールド値におけるk個の下位ビットが全体のフィールド値の代わりに伝送される。ここで、kは正の整数である。伸張器はこのk個のビットを受信して前もって受信した値を基準として用いて元の値を復元する。この基準値は”v_ref”と称される。例えば、LSB符号化を用いる場合、バイナリ数の00001010(10進数の10に対応する)は最上位ビット(MSB)が0000で、LSBが1010である。元の値の8ビットすべてを送信する代わりに、4個のLSBビット1010を受信装置に送信することができる。この受信が問題なく行われると、伸張器はv_refの値を用いて元のパケット値を取り出す。このv_refの値はコンテクスト内に保存される。一つの実施形態において、v_refは最後の正しく伸張されたパケット値を表している。受信されたヘッダーの伸張が正しく行われた場合、伸張器のコンテクストは00001010に更新され、元のパケットが復元される。この復元が正しく行われると、v_refが現在の正しい伸張値に更新され、記憶される。次に送信される値が00001111(10進数で15)であるとすると、4個のLSBビット1111が送信され、これが正しく受信されると、伸張器は現在のコンテクスト値のMSBに受信した値1111を付加してそのコンテクストを更新し、この発生された値が判断期間内にあるか否かがチェックされる。この場合、現在のコンテクスト値は00001010であり、MSBは0000である。伸張器はそのコンテクスト値を00001111に更新し、元の送信されたパケット値を復元させる。
【0026】
音声の符号化において、その背景雑音が音声とともに伝送される。音声の伝送が中断されると、これに伴って背景雑音も中断される。このような背景雑音の断続は通信リンクの相手側からの応答を期待するリスナーを混乱させることになる。通常は背景雑音は応答として受け取られる。サイレント期間(重複する会話全体のなかで少なくともその一つのパーティがサイレント状態の時)では、通話チャネルはこの背景雑音情報を小さいサイズのパケットを用いて伝送させる。例えば、多くのCDMAシステムは背景雑音を送信するためにサイレント期間のときに20msec毎にパケットの8分の1の割合で連続したパケットを送信する。パケット切り替えシステムのバンド幅を維持するためにサイレント部を表すパケットの大部分が欠落させられる。このことは通信チャネルの品質を低下させることなく行われ、サイレント抑圧と称される。
【0027】
アドバンスドマルチレート(AMR)コーデックおよびエンハンスドバリアブルレートコーデック(EVRC)などのボコーダにおいて、データ圧縮機構が音声の符号化のために用いられている。このようなアプリケーションにおいて、送信側における背景雑音と同様な合成雑音が受信(RX)側で発生される。音声がない時は、合成雑音が送信側で推定されて受信側に断続的に送信される。これにより、受信側での合成雑音が送信側での雑音の変化に対応できる。例えばAMR符号化において、サイレント期間では推定された背景雑音がパケットに符号化され、サイレンスデスクリプター(SID)パケットと称される。SIDパケットとして符号化される背景雑音パラメータは8個の連続するパケットに対して計算され、SIDパケットは8個のパケット毎に受信側に送信される。従って、発生された8個の内の7個のSIDパケットが送信側で効果的に欠落される。従って、サイレント期間内で、AMRコーデックはSIDパケットを8*20=160msec毎に発生させ、送信させる。このことは、通話における通常の音声パケットが20msec毎に発生されるのと対照的である。受信側においては、有効なSIDパケットが受信されたときに背景雑音の発生がスタートされ、あるいは更新される。
【0028】
サイレント抑圧を行うシステムにおいて、RTP TSはサイレント期間の長さに比例してジャンプする。サイレント抑圧期間において、幾つかのパケットは欠落されるが、RTP TSはインクリメントされ続けるが、RTP SNはインクリメントされない。このことが図8に示され、ここではパケットが発生され、SNが1でTSが160として分配される。このパケットは音声セグメントを表している。次に送信側で3個のパケットが欠落される。この欠落されたパケットは背景雑音を表す8分の1の割合のパケットである。図面において、欠落された3個のパケットは順次TS320、480、640に割り当てられる。これらは割り当てられたSNではない。図8において、5番目のパケットであるサイレント期間の後の通話セグメントを表すパケットが形成され、SN2が割り当てられる。この第5のパケットはTSのインクリメントが160であるので、800のTSが割り当てられる。この図において、最初に受信されたパケットSN=1と最後に受信されたパケットSN=2との間のTS_STRIDEは800−160=640として計算される。
【0029】
通常、連続するパケット間のTS_STRIDEは固定された値であり、ダウンスケーリングされたRTP TSの圧縮された値は圧縮器から伸張器に送信されて伸張される。固定されたTS_STRIDE値に対して圧縮された値を伸張器に送信するためにUOR−0、UOR−1パケット内において数バイト必要である。これらのパケットフォーマットについての詳細な説明がRFC3095にある。これらのパケットは通常は1ないし3バイトの長さを有し(必要なときには更にUDPチェックサムの2バイト)、SN、TS、CRC情報を含み、これらの情報はヘッダー圧縮機構のコンテクストを更新するために用いられる。例えば、図9において、ソースがサイレント抑圧を行うものとする。パケットSN1、SN2、SN3、SN4がそれぞれTS=160、320、480、960により送信されるものとする。ここで、パケットSN3とSN4との間の2個のサイレントパケットがサイレント抑圧されるものとする。さらに、圧縮器において、各パケットのTSがTS_STRIDE=160により圧縮されるものとする。従って、最初のパケットは縮尺TSの1を有し、第2のパケットはダウンスケールTSの2を有し、3番目のパケットはTSの3を有し、4番目のパケットはTSの6を有する。ここで、LSB符号化を用いると、第2のパケットSN2を受信することでRoHCアルゴリズムは圧縮器のコンテクストをダウンスケール値の2である0010を表すように更新する。第3のパケットSN3を受信すると、コンテクストはTS情報により更新され、ビット0010が0011に更新される。この方法により、最後の数ビットを変化させるのみでよい。このように、コンテクストはUOR−0、UOR−1パケットのような小さいパケットを用いて更新できる。小さいサイズのUOR−0、UOR−1パケットによりバンド幅を効率的に使用することができる。
【0030】
TS_STRIDEの値が変化する場合には、このTS_STRIDEの変化を伝送するためにUOR−0またはUOR−1より大きいパケットが必要である。たとえば、UOR−2ext3、IR−DYNまたはIRパケットを用いることができる。特に、これらのパケットを複数回送信する必要があるとき(もし、TS_STRIDE変化が高い信頼度で送られる必要があるときに、これらのパケットは数回繰り返して送信される)、これらのパケットは少なくとも7、8バイトの長さを持ち、バンド幅も関係する。サイレント抑圧を用いたRTPソースがサイレント状態から会話状態(および会話状態からサイレント状態)に移行すると、RoHC圧縮器はTS_STRIDEが変化したと判断し、更新されたTS_STRIDEを送信する。このTS_STRIDEを信頼性を維持して送信するために、この更新されたTS_STRIDEは複数回送信する必要がある。例えば、図10において、TS_STRIDEは最初の値であり、第1の会話セグメントにおけるTS_STRIDEiは第2の値であり、TS_STRIDEkはサイレント期間の値であり、TS_STRIDEjは会話の第2の期間における値である。各TS_STRIDEの変化の期間、例えばTS_STRIDEiからTS_STRIDEkまでの期間では、RoHC圧縮器はそのコンテクストを更新し、これにより、TS_STRIDEの更新された値を示すために多くのビット数が必要になる。すなわち、複数回送信されるためのより大きなUOR−2ext3パケットが変化したTS_STRIDEの送信に用いられる。再び図9において、サイレント抑圧のためにパケットSN3とSN4との間にTS_STRIDEのジャンプが存在する。パケットSN3を受信すると圧縮器はTS_STRIDEが160であると推定し、SN4を受信するとTS_STRIDEが480であると推定する。RTPソースが音声に復帰すると、圧縮器はふたたびTS_STRIDEが160であると推定する。TS_STRIDEが変化するたびに、圧縮器はこの変化を伸張器に通知するためにUOR−2ext3(またはIRまたはIR−DYN)パケットを送信する必要がある。
【0031】
例えば、パケット間のTS_STRIDE値の変化による不都合を解消するために、圧縮器は新しいTS_STRIDEがN個だけ連続して出現するまではTS_STRIDE値を変化させない。換言すれば、圧縮器はそれ以前に計算して得られたTS_STRIDEの値を、新しく計算されたTS_STRIDEの値が連続して所定数Nだけ同じ値として出現するまで使い続ける。この場合の例を図11に示す。
【0032】
図11において、パケットSN1がTS=160として発生される。この後ろに2個のパケットが発生されるが、これらはサイレンス抑圧により送信側で欠落され、その後、4個のパケットSN2、SN3、SN4、SN5が発生される。これらのパケットはそれぞれTS値として640、800、960、1120を有する。図示したように、最後の3個連続するTS_STRIDEの値はTS_STRIDE=160として一定となっている。従って、圧縮器は圧縮のためにこの値TS_STRIDE=160を用いる。この説明では3個連続する場合を例にしたが、アプリケーションによってはどのような値Nであってもよい。さらに、パケットSN3とSN4との間でRTP TSが480だけジャンプしても、圧縮器はこのRTP TSの480のインクリメントが一度だけ生じたことから、そのTS_STRIDEの推定値を更新することはない。他の例として圧縮器はTS_STRIDEの正しい値を決定するために他のNの値(例えば5)を用いることができる。
【0033】
TS_STRIDE値がN個連続することを用いる方法は、サイレントの期間に複数(N以上の)連続するSIDすなわち1/8の割合でパケットが送信される場合には最良の方法ではない。これらのパケットは送信側のソースで同じ時間間隔で間をおいて並べられ、従ってRTP TSが同じように変化する。例えば、AMRアプリケーションにおいてTS_STRIDEがN個連続する値としてTS_STRIDEが選択された場合を考える。図12に示したように、8個の20msecのパケット706が音声セグメント702間に送信され、TS_STRIDEが(8000KHz*0.020sec)=160として計算される。サイレント期間において、一つのSIDパケット708がサイレント期間704の間に8個のパケット毎に送信される。サイレント期間のTS_STRIDEは(8000KHz*0.160sec)=1280である。図12において、パケットSN9はTSとして(160)*(18)=1440を有し、パケットSN10はTSとして(160)*(10)=1600を有し、SIDパケットSN11はTSとして(160)*(18)=2880を有し、SIDパケットSN12はTSとして(160)*(26)=4160などを有する。図に示したように、音声の第1の期間においては圧縮器はTS_STRIDE=160の値を検出し、サイレント期間においてはTS_STRIDEは160*8=1280に更新される。従って、Nが2で、Nの計算がパケットSN12で開始される方法では、TS_STRIDE=1280がN回連続して発生した時のTS_STRIDEの値となる。従って、RoHC圧縮器はサイレント期間においてTS_STRIDEの更新された値を推定し、これによりより大きなパケットを送信する必要がある。
【0034】
図12において、最初の音声セグメントの期間にTS_STRIDEは160として推定され、圧縮されたヘッダーはUOR−0またはUOR−1パケットにより伸張器に向けて送信される。しかしながらサイレントの期間にTS_STRIDEが1280に更新されると、TS_STRIDEの明らかな「ジャンプ」がより大きなUOR−2ext3、IR−DYN、またはIRパケットの使用が伸張器への圧縮された値の送信のために必要となる。前述したように、これらのヘッダーは7または8バイトの長さを必要とし、従って、特別なバンド幅を必要とする。RTPソースが音声に復帰すると、TS_STRIDEは再び160*1=160に変化し、伸張器の更新が必要となる。この変化は再度伸張器に対してより大きなUOR−2ext3、IRまたはIR−DYNヘッダーを介して送信される。この大きいパケットは変化を確実に送信するために複数回送信される必要があり、この結果、バンド幅の最適な使用から少し外れる場合がある。従って、RoHCがAMRにより発生されたパケットを圧縮している場合、N個の連続したパケットにより決定されたTS_STRIDEを用いると、通話における音声とサイレントとの間のTS_STRIDEでのジャンプが発生する。このことによりバンド幅が無駄に使用される場合が生じる。ここでは説明のためにAMRを用いた。ここに記載された思想は他の音声符号化アルゴリズムにも適用できる。
【0035】
例えば、同じRTP TSインクリメントがN回以上連続したときにTS_STRIDEを更新する代わりに、「MIN_TS_STRIDE」の値を用いることもできる。このMIN_TS_STRIDEはフローにおいて計算された最小のTS_STRIDEの値である。MIN_TS_STRIDEはソースがサイレント抑圧されていないとき、すなわち会話が行われているときの計算されたTS_STRIDEを表している。例えば、サイレント抑圧を用いたVoIPフローにおいて、MIN_TS_STRIDEは、ソースがサイレント抑圧されていない場合のRTP TSの変化に対応する。これは更に、圧縮のために用いられる実際のTS_STRIDEにも対応している。
【0036】
図13はRoHCのパフォーマンスを向上させるために構成されたプロセスの一例を示すフローチャートである。図示したように、ステップ802でRoHCがシステムで用いられているか否かが決定される。NOの場合にはプロセスは終了される。RoHCが使用されている場合、パケットがステップ804で受信される。ステップ806で、受信したパケットと先行のパケットとの間のRTP TSのインクリメントが決定される。この値はTS_INCREMENTと称される。TS_STRIDEの元の値がそれ以前の圧縮の際に用いられたものとする。ステップ808において、先行するN個の連続するパケットのTS_INCREMENTが同じで、且つこの値が現在のTS_STRIDE値と異なると判断された場合、プロセスは次のステップ810へ進む。若しそうでないときはプロセスはステップ806に戻る。ステップ810において、TS_STRIDEは元の値からTS_INCREMENTに更新される。
【0037】
図15はRoHCのパフォーマンスを向上させるために構成されたプロセスの他の例のフローチャートを示す。図において、ステップ902ではRoHCがシステムで用いられているか否かが判断される。NOのときはプロセスは終了する。RoHCが用いられているときは、ステップ904においてパケットが受信される。ステップ906では、現在のパケットストリームにおいてRTP TSのインクリメントが最小のTS_STRIDEより小さいか否かが判断される。NOのときはプロセスはステップ904に戻り、YESのときはプロセスはステップ908に進む。ステップ908において、TS_STRIDEはRTPTSのインクリメント(フローにおいて最小のTS_STRIDEより小さい)に更新される。
【0038】
図13、15に示された方法は図14、16に示された対応する「手段+機能」ブロックにより実行される。換言すれば、図13に示されたブロック802〜810は図14に示された「手段+機能」ブロック1802〜1810に対応する。図15に示されたブロック902〜908は図16に示された「手段+機能」ブロック1902〜1908に対応する。
【0039】
他の実施形態において、音声とサイレントとの間にTS_STRIDEの変化があった場合、この変化は伸張器に適切に伝達されないことがある。伸張器のコンテクストが圧縮器のコンテクストと一致いない場合に「コンテクストダメージ」が生じ、伸張が正しく行われずにヘッダーの復元に失敗する。この状況は圧縮器と伸張器との間でパケットが欠落しあるいは損傷を受けたときに生じ、あるいは圧縮器におけるTS_STRIDEの値が伸張器に正しく送信されない場合に生じる。コンテクストの不一致により伸張できなかったパケットはコンテクストダメージにより「欠落」となる。伸張されたけれどもコンテクストの不一致によるエラーを含むパケットはコンテクストダメージにより「ダメージパケット」となる。ROHCは元のヘッダーについてサイクリックリダンダンシーチェック(CRC)を用いて不正伸張を検出する。圧縮器が最初のTS_STRIDE値をチェックし、伸張器が異なる値をチェックする方法ではこのCRC符号のエラーが生じることがある。
【0040】
例えば前述したように、図12において、最初の音声セグメントにおいてTS_STRIDEが160で、サイレントセグメントにおいて1280であるとする。更に、チャネル状態の不良により、TS_STRIDEの変化を通知するために圧縮器から送られたすべてのUOR−2ext3ヘッダーが欠落したとする。この結果、TS_STRIDEの値が圧縮器において160から1280に変化したとしても、伸張器はこの変化を検知しない。したがって、伸張器は次のパケットを再生するときに、更新された1280の値を用いる代わりにTS_STRIDE=160の値を用いる。この結果、再生されたパケットが元の送信されたパケットと異なるためにCRCの動作はエラーとなる。これにより、伸張器は再生されたパケットを欠落させる。
【0041】
ここで説明されたアルゴリズムの他の利点は、RTPソースが音声からサイレントに、またはサイレントから音声へと移行するときにTS_STRIDEの変化が推定されないので、RTPソースがサイレントと音声との間で移行するときにTS_STRIDEの更新によってもたらされる種々の実際上の不都合が回避できることである。
【0042】
ここでは、サイレント抑圧が行われるときのRoHCのパフォーマンスの向上のための幾つかの実施形態を説明したが、これらの実施形態はいかなるRoHC圧縮器、例えば、AT、ANおよび他のヘッダー圧縮を用いた装置にも適用させることができる。ここで説明された種々のユニット、モジュールなどの実施形態はハードウエア、ソフトウエア、ファームウエア、またはこれらの組み合わせに適用させることができる。ハードウエアに適用させる場合、種々のユニットをアプリケーションスペシフィックインテグレーテッドデバイス(ASIC)、デジタルシグナルプロセッサ(DSP)、デジタルシグナルプロセッシングデバイス(DSPD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、マイクロプロセッサ、コントローラ、マイクロコントローラ、プログラマブルロジックデバイス(PLD)、他の電子ユニット、またはこれらの種々の組み合わせに用いることができる。ソフトウエアに適用する場合、種々のユニットをここで説明した機能を果たすモジュール(例えば工程、機能など)と共に用いることができる。このソフトウエアのコードはメモリユニットに記憶することができ、プロセッサ(またはプロセッシングユニット)により実行することができる。このメモリユニットはプロセッサ内部または外部において用いることができ、この場合、この分野で知られている多くの手段を介してプロセッサと通信的に結合させることができる。
【0043】
当業者であれば情報や信号は種々のテクノロジーや技術を用いて表すことができることを理解できる。例えば、この明細書で開示されたデータ、インストラクション、コマンド、インフォーメーション、シグナル、ビット、シンボル、およびチップは電圧、電流、電磁波、磁界、または粒子、光波、光粒子、またはこれらのいかなる組み合わせで表すことができる。
【0044】
当業者は更に、この発明の実施形態に関連して説明されている種々の論理ブロック、モジュール、回路およびアルゴリズムステップなどは電子的ハードウエア、コンピュータソフトウエア、またはこれらの組み合わせのなかで用いることができることを理解できる。このようなハードウエアとソフトウエアの組み合わせの可能性をより明確に説明するために、この明細書の説明では、種々のコンポーネント、ブロック、モジュール、回路およびステップがそれらの機能に関して説明されている。これらの機能がハードウエアに適用されるか、ソフトウエアに適用されるかは、特定のアプリケーションとシステム全体におけるデザインの内容によって決定される。当業者は、ここで説明された機能を特定のアプリケーションに適用して種々の方法で用いることができるが、これらの適用の決定はこの発明の範囲から逸脱しない範囲でなされるべきであることは勿論である。
【0045】
この発明の実施形態に関連して説明された種々の論理ブロック、モジュール、および回路は通常の汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、アプリケーションスペシフィックインテグレーテッドサーキット(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブルロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウエアコンポーネント、またはここで説明された機能を果たすように設計されたこれらの組み合わせを用いて実現できる。汎用プロセッサは、マイクロプロセッサであるが、その他、従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシーンのいずれでもよい。プロセッサはさらに計算装置の組み合わせ、例えばDSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサの組み合わせ、一つまたは複数のマイクロプロセッサとDSPコアとの組み合わせ、またはこれらのいかなる組み合わせで構成してもよい。
【0046】
ここで述べられた実施形態に関連して説明された方法またはアルゴリズムのステップは直接にハードウエア、プロセッサにより実行されるソフトウエアモジュール、またはこれらの組み合わせにより実施することができる。ソフトウエアモジュールはランダムアクセスメモリ(RAM)、フラッシュメモリ、リードオンリーメモリ(ROM)、エレクトリカリープログラマブルROM(EPROM)、エレクトリカリーイレーザブルプログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、またはこの分野で知られている種々の形態の記憶媒体の内部に存在する。記憶媒体のひとつはプロセッサに結合され、このプロセッサは記憶媒体から情報を読み出すことができ、または情報を書き込むことができる。他の形態として、記憶媒体はプロセッサと一体に構成することができる。プロセッサと記憶媒体とはASIC内に設けることができる。このASICはAT内に設けることができる。あるいは、プロセッサと記憶媒体とはAT内で互いに独立のコンポーネントとして設けることができる。
【0047】
以上の実施形態の説明は当業者がこの発明を形成し、使用することができる程度に十分に記載されている。これらの実施形態の種々の変形例は当業者にとって自明であり、ここに説明された一般的な原理はこの発明の範囲を逸脱しない限りにおいて他の実施形態に適用することができる。このように、この発明はここに説明された実施形態に限定されることなく、記載された発明の原理と新規な特徴とに対応した広い範囲に及ぶものである。
【技術分野】
【0001】
本発明は通信システムに係り、特にこの明細書の実施形態ではサイレント抑圧時の強力なヘッダー圧縮(ROHC)用の圧縮器のパフォーマンスを向上させる方法と装置に関する。
【背景技術】
【0002】
インターネットプロトコル(IP)は送信プロトコルとして有線および無線のネットワークを必要とし、特に遠距離通信およびデータのネットワークの必要性が増してきている。プロトコルヘッダーの圧縮について多くの努力が為されているが、その努力はヘッダー圧縮方式の有効且つ強力な開発に向けられている。
【発明の概要】
【0003】
本出願は、“サイレント抑圧時のROHCパフォーマンスを向上させる方法と装置”と題して2006年1月6日に出願され本譲受人に譲渡された米国特許仮出願番号60/756,658号の優先権の利益を主張する。
【0004】
以下に開示される実施形態はサイレント圧縮に関してロバストヘッダーコンプレッション圧縮器(RoHC)のパフォーマンスを向上させるための方法とシステムに関する。これらの実施形態は、携帯電話ネットワーク、公衆電話回線(PSTNs)、無線インターネット、衛星ネットワーク、広域ネットワーク(WANs)、無線ローカルエリアネットワーク(WLANs)、VoIPネットワーク、IP準拠マルチメディアシステムなどのような無線、有線通信システムに用いることができる。
【図面の簡単な説明】
【0005】
【図1】図1は通信システムにおけるフレームとパケットとを示す。
【図2】図2はヘッダー圧縮の一例を示す。
【図3】図3は通信システムの一例を示す。
【図4】図4はBTS−RNC−PDSNのハードウエアとソフトウエアの例を示す。
【図5】図5はアクセス端末のハードウエアとソフトウエアの例を示す。
【図6】図6はパケットストリーム中の一連のパケットを示す。
【図7A】図7Aは会話の一連のパケットを示す。
【図7B】図7Bは6個の一連のパケットで示された会話セグメントを示す。
【図8】図8は一実施形態におけるサイレント抑圧の例を示す。
【図9】図9は他の実施形態におけるサイレント抑圧の例を示す。
【図10】図10はTS−STRIDEの変化を示す。
【図11】図11はRoHCのパフォーマンスを向上させるように構成されたプロセスの一例を示す。
【図12】図12はAMR中の一連の会話の期間とサイレントの期間とを示す。
【図13】図13はRoHCのパフォーマンスを向上させるように構成されたプロセスの一例のフローチャートを示す。
【図14】図14は図13の方法に対応する手段を示す。
【図15】図15はRoHCのパフォーマンスを向上させるように構成されたプロセスの他の例のフローチャートを示す。
【図16】図16は図15の方法に対応する手段を示す。
【発明を実施するための形態】
【0006】
多くのサービスおよびアプリケーション、たとえばIP電話(VoIP)、ビデオ電話、双方向ゲーム、伝言サービスなどにおいて、データはパケット状にされてネットワークを介して送信される。以下の説明ではフレームとは通信システム上に送信されるようにフォーマットされたデータフレームの部分を意味する。図1に幾つかのパケット102とフレーム104とを示す。フレーム104は適切な時間幅、例えば20msecを有し、パケット102の時間幅と同じでも良いし、または異なる時間幅でも良い。各パケットは通常はヘッダー内に含まれた割り当てアドレスに従ってその目的とするネットワーク上の送り先に送信される。ヘッダーはパケットの開始を指定し、トレイラはパケットの終了を指定し、「ペイロード」はパケットのデータ部を指定する。パケットはインターネットプロトコル(IP)、ユーザデータグラムプロトコル(UDP)、リアルタイムトランスポートプロトコル(RTP)、およびトランスミッションコントロールプロトコル(TCP)ヘッダのような種々の形式のヘッダーを持つことができる。ある種の方法では、IPパケットのペイロードはヘッダーと同等のサイズ或いはヘッダーより小さくても良い。
【0007】
ランドラインまたはワイヤラインシステムにおいて、バンド幅についての制限は少なく、パケット全体を連続して送信することによりデータ通信を行うことができる。しかしながら無線通信システムにおいてはバンド幅に制限があり、データを保護する必要がある。パケットのオーバーヘッドの縮小はパケットヘッダーのサイズを縮小することにより実現することができる。ヘッダーを圧縮することによりネットワーク通信の品質、速度および効率を向上させることができる。さらに、このヘッダー圧縮により双方向応答速度が向上し、一定のチャネルバンド幅内でより多くのユーザが利用可能となる。このことにより拡大コストの減少がもたらされる。図2は音声通信システムにおけるヘッダー圧縮の一例を示す。この例においては40バイト以上の非圧縮ヘッダーがオーバーヘッドに付加されている。ヘッダー圧縮により、オーバーヘッドは2−4バイトとなっている。このヘッダー圧縮により、ネットワークにおける必要なバンド幅の維持が可能となる。
【0008】
図3は通信システム300の一例を示し、ここではこの発明における一つまたは複数の方法が示されている。第1のアクセス端末(AT)301Aはリバースリンク(またはアップリンク)ヘッダー圧縮器302を含む。この第1のアクセス端末301Aは無線により、リバースリンク(RL)を介して基地局304Aと通信を行い、さらにラジオアクセスネットワーク(RAN)内の基地局送受信システム/パケットデータ供給ノード(BTS−RNC−PDSN)306Aと通信を行う。
【0009】
BTS−RNC−PDSN306Aはリバースリンクヘッダー伸長器310を含み、これは以下に説明する一つまたは複数の方法を実施することができる。BTS−RNC−PDSN 306Aはパケットデータ供給ノード/基地局送受信システム(PDSN−BTS)306BとVoIPネットワーク312を介して通信を行う。このPDSN−BTS 306Bはフォワードリンク(またはダウンリンク)ヘッダー圧縮器312を含む。
【0010】
基地局304BとPDSN−BTS 306Bは第2のアクセス端末301Bとフォワードリンクを介して無線で通信を行うことができる。この第2のアクセス端末301Bはフォワードリンクヘッダー伸長器314を含み、以下に説明する一つまたは複数の方法を実施することができる。2個の無線アクセス端末301A,301Bを用いる代わりに、そのうちの1個を有線アクセス端末としてもよい。リバースリンクヘッダー圧縮器302とリバースリンクヘッダー逆圧縮器310とは第1の圧縮器−伸長器ペアを構成する。フォワードリンクヘッダー圧縮器312とフォワードリンクヘッダー伸長器314とは第2の圧縮器−伸長器ペアを構成する。
【0011】
リバースリンクとフォワードリンクとは一つまたは複数の通信プロトコル、例えば符号分割多重接続(CDMA)1x、CDMA1xEV−DO(エボリュウション・データ・オプティマイズド)、ワイドバンドCDMA(WCDMA)、時間分割同期(TD−SCDMA)、グローバルシステム用モバイル通信(GSM(登録商標))、OFDM(直交周波数分割多重)、IEEE標準に準拠したシステム、例えば802.11(A,B,G)、802.16などを用いることができる。
【0012】
ここで、「アクセス端末」とは種々の形式の装置を意味し、例えば、有線電話、携帯電話、ラップトップコンピュータ、無線通信パーソナルコンピュータ(PC)カード、パーソナルデジタルアシスタント(PDA)、外付けモデム、内蔵モデムなどである。アクセス端末は、たとえば光ケーブルまたは同軸ケーブルを用いた無線チャネルまたは有線チャネルを介して通信を行うどのようなデータ装置であってもよい。アクセス端末は多くの名前を持ち、それらはアクセスユニット、加入者ユニット、モバイルステーション、モバイル装置、モバイルユニット、モバイル電話、モバイル、リモートステーション、リモート端末、リモートユニット、ユーザ装置、ユーザ設備、携帯装置などである。アクセス端末は携帯型または固定型であり、図3の通信システム300内で分散されている。アクセス端末は一つまたは複数の基地局送受信システム(BTSs)と交信を行い、このシステムは基地局、アクセスネットワーク、アクセルポイント、ノードBs、またはモデムプールトランシーバ(MPTs)などと呼ばれ、あるいはこれらを含むものである。
【0013】
図4は図3に示したBTS−RNC−PDSN306Aおよび/またはPDSN−BTS306Bのハードウエアおよびソフトウエアの幾つかの例を示す。その一つの例ではプロセッサ400、アプリケーションスペシフィック集積回路(ASIC)402、トランシーバ404、およびメモリ406を含む。メモリ406は一つまたは複数の上位レイヤー、たとえばアプリケーションレイヤー408、トランスポートレイヤー410、およびネットワークレイヤー412を記憶する。アプリケーションレイヤー408はリアルタイムトランスポートプロトコル(RTPまたはRTCP)のヘッダーを処理する。トランスポートレイヤー410はトランスミッションコントロールプロトコル(TCP)およびユーザデータグラムプロトコル(UDP)のヘッダーを処理する。ネットワークレイヤー412はIPのヘッダーを処理する。
【0014】
メモリ406は更に、ロバストヘッダーコンプレッション圧縮器312およびロバストヘッダーコンプレッション伸長器310を記憶する。ロバストヘッダーコンプレッション圧縮器312はタイムスタンプ計算ユニット312Aを記憶でき、また、ロバストヘッダーコンプレッション伸張器310はタイムスタンプ計算ユニット310Aを記憶することができる。メモリ406は更に、一つまたは複数の下位レイヤー420、例えばリンクレイヤー媒体アクセス制御(MAC)レイヤー414を記憶することができ、このレイヤー414はラジオリンクプロトコル(RLP)サブレイヤーを含むことができる。この下位レイヤー420は物理レイヤー416を含むこともできる。
【0015】
図5は図3に示したアクセス端末301A、301Bのハードウエアおよびソフトウエアの幾つかの構成を示す。その一つは、プロセッサ500、ASIC502、トランシーバ504、メモリ506などを含む。メモリ506はアプリケーションレイヤー508、トランスポートレイヤー510、ネットワークレイヤー512などの一つまたは複数の上位レイヤーを含む。アプリケーションレイヤー508はRTPヘッダーを処理する。トランスポートレイヤー510はTCPおよびUDPヘッダーを処理する。ネットワークレイヤー512はIPヘッダーを処理する。
【0016】
メモリ506はロバストヘッダーコンプレッション圧縮器302およびロバストヘッダーコンプレッション伸張器314とを記憶することができる。ロバストヘッダーコンプレッション圧縮器302はタイムスタンプ計算ユニット302Aを記憶し、ロバストヘッダーコンプレッション伸張器314はタイムスタンプ計算ユニット314Aを記憶することができる。メモリ506はリンクレイヤーMACレイヤー514のような一つまたは複数の下位レイヤー520を記憶することができ、このレイヤー514はRLPサブレイヤーを含むことができる。下位レイヤー520は物理レイヤー516を含むこともできる。
【0017】
RoHCはヘッダー圧縮機構であって、RTP/UDP/IPヘッダーを効率的に圧縮することができる。ロバストヘッダー圧縮については、リクエストフォーコメント(RFC)3095に「ロバストヘッダーコンプレッション(ROHC):フレームワークおよび4つのプロファイル:RTP、UDP、ESPおよび伸張」として記載されており、これは、2001年7月に、インターネットソサエティのネットワークワーキンググループによりインターネットスタンダードトラックプロトコルとして頒布されている。
【0018】
一般に、リンク上を伝送されるパケットは互いに独立したものではなく、例えばソースアドレス、目的地アドレス、などの特定の共通なパラメータを共有している。ヘッダー圧縮は、同じパケット内の、または同じパケットストリームに属する連続するパケット間のヘッダーフィールド内の有効リダンダンシーによって可能となる。「パケットストリーム」とは連続するパケットを意味し、通常は、音声パケットストリームまたはビデオパケットストリームなどの論理的にグループ化されたパケット群である。RoHCアルゴリズムはパケットストリーム中の共通パラメータを用いて一部の状態情報を保持した状態でパケットヘッダーを圧縮する。この状態情報は「コンテクスト」と称される。
【0019】
圧縮器−伸張器のペアは各パケットストリームに対してそれぞれコンテクストを持っている。各パケットストリームのコンテクストは圧縮器と伸張器において同じコンテクスト同定フィールド(CID)によって同定される。例えば、図3のRLヘッダー圧縮器302とRLヘッダー伸張器310とは特定の音声フロー「VF1]に対してコンテクスト「CID1」をそれぞれ有する。このコンテクストは、パケットストリーム中の先行ヘッダーからの情報と圧縮と伸張のための有効な参照値を有する。パケットストリームを表すデータ、例えばIP特定フィールドがどのように変化したかおよび順次番号(SN)またはタイムスタンプ(TS)における中間のパケットがどのように増加したかの情報がコンテクスト内に含まれる。ロバストヘッダー圧縮機構を確認するためにはコンテクストの不一致を回避する機構と、不一致のときにコンテクストを一致させる機構とが必要である。
【0020】
最初に、圧縮器と伸張器とが任意のパケットストリームについてその圧縮と伸張の動作に不一致が生じることがある。圧縮器はパケットストリームに関するスタティックおよびダイナミック情報を有するRoHCパケットを伸張器に送ってコンテクストを形成する。スタティックとダイナミックフィールドの双方が設定されると、圧縮器は最小の情報を送って圧縮されたヘッダーフィールドを通常の順序に進める。圧縮器と伸張器とは所定のイベント毎にそのコンテクストを更新させる。
【0021】
スタティックヘッダーフィールドは、これらのフィールドがその後一定に保持されるので、コンテクストの確定のときにのみ送信される。ヘッダーフィールドのダイナミック部分の圧縮にはより複雑なアルゴリズムが必要である。ダイナミックヘッダーフィールドはRoHCアルゴリズムによって直接に圧縮され、伸張される。しかしながら、増加SNまたはTSのような他のフィールドのリニア関数を用いてヘッダーフィールドを更に効率的に圧縮または伸張することができる。この方法はより少ないビット数で実現できる。スタティックフィールド情報を最初に送ることにより、他のフィールドに対する従属関係と予測性とを用いることにより、ヘッダーサイズは多くのパケットについて大きく減少させることができる。
【0022】
RTPパケットのSNは送信されたパケットのそれぞれについてインクリメントされ、受信器によってパケット順序が再現され、パケットロスが検出されるように使用される。TSはRTPデータパケットの最初の8個のサンプリング時間を反映する。このサンプリング時間は時間に対して単調に直線的に増加するクロックから抽出することができる。音声を処理するアプリケーションにおいては、TSは各音声パケット内のサンプル数に対応する一定のデルタによってインクリメントされる。例えば、ある入力装置が160サンプリング期間を有する音声パケットを受信すると、TSは各パケットについて160個だけインクリメントされる。図6は160インクリメントの順次SNとTSとを有するストリーム内の一連のパケットを示す。ここで、TSインクリメントは一定の160であり、これはパケットが音声セグメントを有する場合もサイレントのセグメントを有する場合も同じである。このことはサイレンス抑圧が行われていても行われていなくても同じである。サイレンス抑圧は以下により詳細に説明される。
【0023】
RoHC圧縮器は二つの連続して発生されるパケット間のRTP TS内のインクリメントを推定する。RTPパケットが連続する番号を有している場合、このインクリメントはTS_ STRIDEと称される。通常、同じ形式の連続するパケット間のTS_STRIDEは固定の大きさを有する。例えば、図7Aはあるアプリケーションを示し、SN1、...SN6は順次SNS、1、...6を持つ音声パケットを示す。図に示したように、各一対のパケット間のTS_STRIDEは一つのパケットとそれに先行する他のパケットとの間の差TSを示す。図示したように、2個のパケット間のTS_STRIDEはTSj−TSiで表され、ここで、iおよびjは連続するSNSである。図7Aにおいて、TS_STRIDE=(TSj−TSi)=(TSk−TSj)=(TSl−TSk)...である。この一定の差の値を知ることにより、圧縮動作の前に圧縮器の縮尺のスケールを決定することができる。従って、RTPタイムスタンプフィールドの効率的な圧縮のためにパケット間のTS_STRIDEを精密に決定することが必要となる。
【0024】
縮小したRTP TSを使うことでより小さい値の圧縮とこれに伴うビット数が減少するためにヘッダーのオーバーヘッドが減少される。例えば、RTP/UDP/IPにより伝送される音声を考える。8KHzでサンプリングされた20msecのパケットを形成する音声CODECでは、RTP TSは20msec内に含まれるサンプル数、すなわち8000*0.02=160のサンプル数に応じて増加する。6個の連続するパケットによって表された音声セグメントが図7Bに示されている。RTP TSは連続するパケットの間で160だけ増加し、従って、最初のパケットのRTP TSは160で、第2のパケットのRTP TSは320、3番目のパケットのRTP TSは480などとなる。ここで、圧縮器のダウンスケール(縮尺)のRTP TSの値は160、320、480等の代わりに1、2、3などの値となる。後者の場合には圧縮器は160の変化を符号化しなければならないが、前者の場合には1の変化分を符号化すればよく、従ってビット数が減少される。一例として、RoHCアルゴリズムはRTP TSフィールドを圧縮し、RTP SNからRTP TSのような他の変化フィールドに関して直線的な関係を使うことになる。
【0025】
この発明の他の形態において、最下位ビット(LSB)符号化がヘッダーフィールドの圧縮のために使用できる。このLSB符号化を用いることで、フィールド値におけるk個の下位ビットが全体のフィールド値の代わりに伝送される。ここで、kは正の整数である。伸張器はこのk個のビットを受信して前もって受信した値を基準として用いて元の値を復元する。この基準値は”v_ref”と称される。例えば、LSB符号化を用いる場合、バイナリ数の00001010(10進数の10に対応する)は最上位ビット(MSB)が0000で、LSBが1010である。元の値の8ビットすべてを送信する代わりに、4個のLSBビット1010を受信装置に送信することができる。この受信が問題なく行われると、伸張器はv_refの値を用いて元のパケット値を取り出す。このv_refの値はコンテクスト内に保存される。一つの実施形態において、v_refは最後の正しく伸張されたパケット値を表している。受信されたヘッダーの伸張が正しく行われた場合、伸張器のコンテクストは00001010に更新され、元のパケットが復元される。この復元が正しく行われると、v_refが現在の正しい伸張値に更新され、記憶される。次に送信される値が00001111(10進数で15)であるとすると、4個のLSBビット1111が送信され、これが正しく受信されると、伸張器は現在のコンテクスト値のMSBに受信した値1111を付加してそのコンテクストを更新し、この発生された値が判断期間内にあるか否かがチェックされる。この場合、現在のコンテクスト値は00001010であり、MSBは0000である。伸張器はそのコンテクスト値を00001111に更新し、元の送信されたパケット値を復元させる。
【0026】
音声の符号化において、その背景雑音が音声とともに伝送される。音声の伝送が中断されると、これに伴って背景雑音も中断される。このような背景雑音の断続は通信リンクの相手側からの応答を期待するリスナーを混乱させることになる。通常は背景雑音は応答として受け取られる。サイレント期間(重複する会話全体のなかで少なくともその一つのパーティがサイレント状態の時)では、通話チャネルはこの背景雑音情報を小さいサイズのパケットを用いて伝送させる。例えば、多くのCDMAシステムは背景雑音を送信するためにサイレント期間のときに20msec毎にパケットの8分の1の割合で連続したパケットを送信する。パケット切り替えシステムのバンド幅を維持するためにサイレント部を表すパケットの大部分が欠落させられる。このことは通信チャネルの品質を低下させることなく行われ、サイレント抑圧と称される。
【0027】
アドバンスドマルチレート(AMR)コーデックおよびエンハンスドバリアブルレートコーデック(EVRC)などのボコーダにおいて、データ圧縮機構が音声の符号化のために用いられている。このようなアプリケーションにおいて、送信側における背景雑音と同様な合成雑音が受信(RX)側で発生される。音声がない時は、合成雑音が送信側で推定されて受信側に断続的に送信される。これにより、受信側での合成雑音が送信側での雑音の変化に対応できる。例えばAMR符号化において、サイレント期間では推定された背景雑音がパケットに符号化され、サイレンスデスクリプター(SID)パケットと称される。SIDパケットとして符号化される背景雑音パラメータは8個の連続するパケットに対して計算され、SIDパケットは8個のパケット毎に受信側に送信される。従って、発生された8個の内の7個のSIDパケットが送信側で効果的に欠落される。従って、サイレント期間内で、AMRコーデックはSIDパケットを8*20=160msec毎に発生させ、送信させる。このことは、通話における通常の音声パケットが20msec毎に発生されるのと対照的である。受信側においては、有効なSIDパケットが受信されたときに背景雑音の発生がスタートされ、あるいは更新される。
【0028】
サイレント抑圧を行うシステムにおいて、RTP TSはサイレント期間の長さに比例してジャンプする。サイレント抑圧期間において、幾つかのパケットは欠落されるが、RTP TSはインクリメントされ続けるが、RTP SNはインクリメントされない。このことが図8に示され、ここではパケットが発生され、SNが1でTSが160として分配される。このパケットは音声セグメントを表している。次に送信側で3個のパケットが欠落される。この欠落されたパケットは背景雑音を表す8分の1の割合のパケットである。図面において、欠落された3個のパケットは順次TS320、480、640に割り当てられる。これらは割り当てられたSNではない。図8において、5番目のパケットであるサイレント期間の後の通話セグメントを表すパケットが形成され、SN2が割り当てられる。この第5のパケットはTSのインクリメントが160であるので、800のTSが割り当てられる。この図において、最初に受信されたパケットSN=1と最後に受信されたパケットSN=2との間のTS_STRIDEは800−160=640として計算される。
【0029】
通常、連続するパケット間のTS_STRIDEは固定された値であり、ダウンスケーリングされたRTP TSの圧縮された値は圧縮器から伸張器に送信されて伸張される。固定されたTS_STRIDE値に対して圧縮された値を伸張器に送信するためにUOR−0、UOR−1パケット内において数バイト必要である。これらのパケットフォーマットについての詳細な説明がRFC3095にある。これらのパケットは通常は1ないし3バイトの長さを有し(必要なときには更にUDPチェックサムの2バイト)、SN、TS、CRC情報を含み、これらの情報はヘッダー圧縮機構のコンテクストを更新するために用いられる。例えば、図9において、ソースがサイレント抑圧を行うものとする。パケットSN1、SN2、SN3、SN4がそれぞれTS=160、320、480、960により送信されるものとする。ここで、パケットSN3とSN4との間の2個のサイレントパケットがサイレント抑圧されるものとする。さらに、圧縮器において、各パケットのTSがTS_STRIDE=160により圧縮されるものとする。従って、最初のパケットは縮尺TSの1を有し、第2のパケットはダウンスケールTSの2を有し、3番目のパケットはTSの3を有し、4番目のパケットはTSの6を有する。ここで、LSB符号化を用いると、第2のパケットSN2を受信することでRoHCアルゴリズムは圧縮器のコンテクストをダウンスケール値の2である0010を表すように更新する。第3のパケットSN3を受信すると、コンテクストはTS情報により更新され、ビット0010が0011に更新される。この方法により、最後の数ビットを変化させるのみでよい。このように、コンテクストはUOR−0、UOR−1パケットのような小さいパケットを用いて更新できる。小さいサイズのUOR−0、UOR−1パケットによりバンド幅を効率的に使用することができる。
【0030】
TS_STRIDEの値が変化する場合には、このTS_STRIDEの変化を伝送するためにUOR−0またはUOR−1より大きいパケットが必要である。たとえば、UOR−2ext3、IR−DYNまたはIRパケットを用いることができる。特に、これらのパケットを複数回送信する必要があるとき(もし、TS_STRIDE変化が高い信頼度で送られる必要があるときに、これらのパケットは数回繰り返して送信される)、これらのパケットは少なくとも7、8バイトの長さを持ち、バンド幅も関係する。サイレント抑圧を用いたRTPソースがサイレント状態から会話状態(および会話状態からサイレント状態)に移行すると、RoHC圧縮器はTS_STRIDEが変化したと判断し、更新されたTS_STRIDEを送信する。このTS_STRIDEを信頼性を維持して送信するために、この更新されたTS_STRIDEは複数回送信する必要がある。例えば、図10において、TS_STRIDEは最初の値であり、第1の会話セグメントにおけるTS_STRIDEiは第2の値であり、TS_STRIDEkはサイレント期間の値であり、TS_STRIDEjは会話の第2の期間における値である。各TS_STRIDEの変化の期間、例えばTS_STRIDEiからTS_STRIDEkまでの期間では、RoHC圧縮器はそのコンテクストを更新し、これにより、TS_STRIDEの更新された値を示すために多くのビット数が必要になる。すなわち、複数回送信されるためのより大きなUOR−2ext3パケットが変化したTS_STRIDEの送信に用いられる。再び図9において、サイレント抑圧のためにパケットSN3とSN4との間にTS_STRIDEのジャンプが存在する。パケットSN3を受信すると圧縮器はTS_STRIDEが160であると推定し、SN4を受信するとTS_STRIDEが480であると推定する。RTPソースが音声に復帰すると、圧縮器はふたたびTS_STRIDEが160であると推定する。TS_STRIDEが変化するたびに、圧縮器はこの変化を伸張器に通知するためにUOR−2ext3(またはIRまたはIR−DYN)パケットを送信する必要がある。
【0031】
例えば、パケット間のTS_STRIDE値の変化による不都合を解消するために、圧縮器は新しいTS_STRIDEがN個だけ連続して出現するまではTS_STRIDE値を変化させない。換言すれば、圧縮器はそれ以前に計算して得られたTS_STRIDEの値を、新しく計算されたTS_STRIDEの値が連続して所定数Nだけ同じ値として出現するまで使い続ける。この場合の例を図11に示す。
【0032】
図11において、パケットSN1がTS=160として発生される。この後ろに2個のパケットが発生されるが、これらはサイレンス抑圧により送信側で欠落され、その後、4個のパケットSN2、SN3、SN4、SN5が発生される。これらのパケットはそれぞれTS値として640、800、960、1120を有する。図示したように、最後の3個連続するTS_STRIDEの値はTS_STRIDE=160として一定となっている。従って、圧縮器は圧縮のためにこの値TS_STRIDE=160を用いる。この説明では3個連続する場合を例にしたが、アプリケーションによってはどのような値Nであってもよい。さらに、パケットSN3とSN4との間でRTP TSが480だけジャンプしても、圧縮器はこのRTP TSの480のインクリメントが一度だけ生じたことから、そのTS_STRIDEの推定値を更新することはない。他の例として圧縮器はTS_STRIDEの正しい値を決定するために他のNの値(例えば5)を用いることができる。
【0033】
TS_STRIDE値がN個連続することを用いる方法は、サイレントの期間に複数(N以上の)連続するSIDすなわち1/8の割合でパケットが送信される場合には最良の方法ではない。これらのパケットは送信側のソースで同じ時間間隔で間をおいて並べられ、従ってRTP TSが同じように変化する。例えば、AMRアプリケーションにおいてTS_STRIDEがN個連続する値としてTS_STRIDEが選択された場合を考える。図12に示したように、8個の20msecのパケット706が音声セグメント702間に送信され、TS_STRIDEが(8000KHz*0.020sec)=160として計算される。サイレント期間において、一つのSIDパケット708がサイレント期間704の間に8個のパケット毎に送信される。サイレント期間のTS_STRIDEは(8000KHz*0.160sec)=1280である。図12において、パケットSN9はTSとして(160)*(18)=1440を有し、パケットSN10はTSとして(160)*(10)=1600を有し、SIDパケットSN11はTSとして(160)*(18)=2880を有し、SIDパケットSN12はTSとして(160)*(26)=4160などを有する。図に示したように、音声の第1の期間においては圧縮器はTS_STRIDE=160の値を検出し、サイレント期間においてはTS_STRIDEは160*8=1280に更新される。従って、Nが2で、Nの計算がパケットSN12で開始される方法では、TS_STRIDE=1280がN回連続して発生した時のTS_STRIDEの値となる。従って、RoHC圧縮器はサイレント期間においてTS_STRIDEの更新された値を推定し、これによりより大きなパケットを送信する必要がある。
【0034】
図12において、最初の音声セグメントの期間にTS_STRIDEは160として推定され、圧縮されたヘッダーはUOR−0またはUOR−1パケットにより伸張器に向けて送信される。しかしながらサイレントの期間にTS_STRIDEが1280に更新されると、TS_STRIDEの明らかな「ジャンプ」がより大きなUOR−2ext3、IR−DYN、またはIRパケットの使用が伸張器への圧縮された値の送信のために必要となる。前述したように、これらのヘッダーは7または8バイトの長さを必要とし、従って、特別なバンド幅を必要とする。RTPソースが音声に復帰すると、TS_STRIDEは再び160*1=160に変化し、伸張器の更新が必要となる。この変化は再度伸張器に対してより大きなUOR−2ext3、IRまたはIR−DYNヘッダーを介して送信される。この大きいパケットは変化を確実に送信するために複数回送信される必要があり、この結果、バンド幅の最適な使用から少し外れる場合がある。従って、RoHCがAMRにより発生されたパケットを圧縮している場合、N個の連続したパケットにより決定されたTS_STRIDEを用いると、通話における音声とサイレントとの間のTS_STRIDEでのジャンプが発生する。このことによりバンド幅が無駄に使用される場合が生じる。ここでは説明のためにAMRを用いた。ここに記載された思想は他の音声符号化アルゴリズムにも適用できる。
【0035】
例えば、同じRTP TSインクリメントがN回以上連続したときにTS_STRIDEを更新する代わりに、「MIN_TS_STRIDE」の値を用いることもできる。このMIN_TS_STRIDEはフローにおいて計算された最小のTS_STRIDEの値である。MIN_TS_STRIDEはソースがサイレント抑圧されていないとき、すなわち会話が行われているときの計算されたTS_STRIDEを表している。例えば、サイレント抑圧を用いたVoIPフローにおいて、MIN_TS_STRIDEは、ソースがサイレント抑圧されていない場合のRTP TSの変化に対応する。これは更に、圧縮のために用いられる実際のTS_STRIDEにも対応している。
【0036】
図13はRoHCのパフォーマンスを向上させるために構成されたプロセスの一例を示すフローチャートである。図示したように、ステップ802でRoHCがシステムで用いられているか否かが決定される。NOの場合にはプロセスは終了される。RoHCが使用されている場合、パケットがステップ804で受信される。ステップ806で、受信したパケットと先行のパケットとの間のRTP TSのインクリメントが決定される。この値はTS_INCREMENTと称される。TS_STRIDEの元の値がそれ以前の圧縮の際に用いられたものとする。ステップ808において、先行するN個の連続するパケットのTS_INCREMENTが同じで、且つこの値が現在のTS_STRIDE値と異なると判断された場合、プロセスは次のステップ810へ進む。若しそうでないときはプロセスはステップ806に戻る。ステップ810において、TS_STRIDEは元の値からTS_INCREMENTに更新される。
【0037】
図15はRoHCのパフォーマンスを向上させるために構成されたプロセスの他の例のフローチャートを示す。図において、ステップ902ではRoHCがシステムで用いられているか否かが判断される。NOのときはプロセスは終了する。RoHCが用いられているときは、ステップ904においてパケットが受信される。ステップ906では、現在のパケットストリームにおいてRTP TSのインクリメントが最小のTS_STRIDEより小さいか否かが判断される。NOのときはプロセスはステップ904に戻り、YESのときはプロセスはステップ908に進む。ステップ908において、TS_STRIDEはRTPTSのインクリメント(フローにおいて最小のTS_STRIDEより小さい)に更新される。
【0038】
図13、15に示された方法は図14、16に示された対応する「手段+機能」ブロックにより実行される。換言すれば、図13に示されたブロック802〜810は図14に示された「手段+機能」ブロック1802〜1810に対応する。図15に示されたブロック902〜908は図16に示された「手段+機能」ブロック1902〜1908に対応する。
【0039】
他の実施形態において、音声とサイレントとの間にTS_STRIDEの変化があった場合、この変化は伸張器に適切に伝達されないことがある。伸張器のコンテクストが圧縮器のコンテクストと一致いない場合に「コンテクストダメージ」が生じ、伸張が正しく行われずにヘッダーの復元に失敗する。この状況は圧縮器と伸張器との間でパケットが欠落しあるいは損傷を受けたときに生じ、あるいは圧縮器におけるTS_STRIDEの値が伸張器に正しく送信されない場合に生じる。コンテクストの不一致により伸張できなかったパケットはコンテクストダメージにより「欠落」となる。伸張されたけれどもコンテクストの不一致によるエラーを含むパケットはコンテクストダメージにより「ダメージパケット」となる。ROHCは元のヘッダーについてサイクリックリダンダンシーチェック(CRC)を用いて不正伸張を検出する。圧縮器が最初のTS_STRIDE値をチェックし、伸張器が異なる値をチェックする方法ではこのCRC符号のエラーが生じることがある。
【0040】
例えば前述したように、図12において、最初の音声セグメントにおいてTS_STRIDEが160で、サイレントセグメントにおいて1280であるとする。更に、チャネル状態の不良により、TS_STRIDEの変化を通知するために圧縮器から送られたすべてのUOR−2ext3ヘッダーが欠落したとする。この結果、TS_STRIDEの値が圧縮器において160から1280に変化したとしても、伸張器はこの変化を検知しない。したがって、伸張器は次のパケットを再生するときに、更新された1280の値を用いる代わりにTS_STRIDE=160の値を用いる。この結果、再生されたパケットが元の送信されたパケットと異なるためにCRCの動作はエラーとなる。これにより、伸張器は再生されたパケットを欠落させる。
【0041】
ここで説明されたアルゴリズムの他の利点は、RTPソースが音声からサイレントに、またはサイレントから音声へと移行するときにTS_STRIDEの変化が推定されないので、RTPソースがサイレントと音声との間で移行するときにTS_STRIDEの更新によってもたらされる種々の実際上の不都合が回避できることである。
【0042】
ここでは、サイレント抑圧が行われるときのRoHCのパフォーマンスの向上のための幾つかの実施形態を説明したが、これらの実施形態はいかなるRoHC圧縮器、例えば、AT、ANおよび他のヘッダー圧縮を用いた装置にも適用させることができる。ここで説明された種々のユニット、モジュールなどの実施形態はハードウエア、ソフトウエア、ファームウエア、またはこれらの組み合わせに適用させることができる。ハードウエアに適用させる場合、種々のユニットをアプリケーションスペシフィックインテグレーテッドデバイス(ASIC)、デジタルシグナルプロセッサ(DSP)、デジタルシグナルプロセッシングデバイス(DSPD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、マイクロプロセッサ、コントローラ、マイクロコントローラ、プログラマブルロジックデバイス(PLD)、他の電子ユニット、またはこれらの種々の組み合わせに用いることができる。ソフトウエアに適用する場合、種々のユニットをここで説明した機能を果たすモジュール(例えば工程、機能など)と共に用いることができる。このソフトウエアのコードはメモリユニットに記憶することができ、プロセッサ(またはプロセッシングユニット)により実行することができる。このメモリユニットはプロセッサ内部または外部において用いることができ、この場合、この分野で知られている多くの手段を介してプロセッサと通信的に結合させることができる。
【0043】
当業者であれば情報や信号は種々のテクノロジーや技術を用いて表すことができることを理解できる。例えば、この明細書で開示されたデータ、インストラクション、コマンド、インフォーメーション、シグナル、ビット、シンボル、およびチップは電圧、電流、電磁波、磁界、または粒子、光波、光粒子、またはこれらのいかなる組み合わせで表すことができる。
【0044】
当業者は更に、この発明の実施形態に関連して説明されている種々の論理ブロック、モジュール、回路およびアルゴリズムステップなどは電子的ハードウエア、コンピュータソフトウエア、またはこれらの組み合わせのなかで用いることができることを理解できる。このようなハードウエアとソフトウエアの組み合わせの可能性をより明確に説明するために、この明細書の説明では、種々のコンポーネント、ブロック、モジュール、回路およびステップがそれらの機能に関して説明されている。これらの機能がハードウエアに適用されるか、ソフトウエアに適用されるかは、特定のアプリケーションとシステム全体におけるデザインの内容によって決定される。当業者は、ここで説明された機能を特定のアプリケーションに適用して種々の方法で用いることができるが、これらの適用の決定はこの発明の範囲から逸脱しない範囲でなされるべきであることは勿論である。
【0045】
この発明の実施形態に関連して説明された種々の論理ブロック、モジュール、および回路は通常の汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、アプリケーションスペシフィックインテグレーテッドサーキット(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブルロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウエアコンポーネント、またはここで説明された機能を果たすように設計されたこれらの組み合わせを用いて実現できる。汎用プロセッサは、マイクロプロセッサであるが、その他、従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシーンのいずれでもよい。プロセッサはさらに計算装置の組み合わせ、例えばDSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサの組み合わせ、一つまたは複数のマイクロプロセッサとDSPコアとの組み合わせ、またはこれらのいかなる組み合わせで構成してもよい。
【0046】
ここで述べられた実施形態に関連して説明された方法またはアルゴリズムのステップは直接にハードウエア、プロセッサにより実行されるソフトウエアモジュール、またはこれらの組み合わせにより実施することができる。ソフトウエアモジュールはランダムアクセスメモリ(RAM)、フラッシュメモリ、リードオンリーメモリ(ROM)、エレクトリカリープログラマブルROM(EPROM)、エレクトリカリーイレーザブルプログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、またはこの分野で知られている種々の形態の記憶媒体の内部に存在する。記憶媒体のひとつはプロセッサに結合され、このプロセッサは記憶媒体から情報を読み出すことができ、または情報を書き込むことができる。他の形態として、記憶媒体はプロセッサと一体に構成することができる。プロセッサと記憶媒体とはASIC内に設けることができる。このASICはAT内に設けることができる。あるいは、プロセッサと記憶媒体とはAT内で互いに独立のコンポーネントとして設けることができる。
【0047】
以上の実施形態の説明は当業者がこの発明を形成し、使用することができる程度に十分に記載されている。これらの実施形態の種々の変形例は当業者にとって自明であり、ここに説明された一般的な原理はこの発明の範囲を逸脱しない限りにおいて他の実施形態に適用することができる。このように、この発明はここに説明された実施形態に限定されることなく、記載された発明の原理と新規な特徴とに対応した広い範囲に及ぶものである。
【特許請求の範囲】
【請求項1】
複数の連続するパケットの少なくとも1個に対する実時間伝送プロトコル(RTP)タイムスタンプ(TS)を決定し、
所定数のパケットが一定のタイムスタンプインクリメント値を持つまで連続するパケットのRTPタイムスタンプインクリメントを計算し、
この一定のタイムスタンプインクリメント値を圧縮のためのタイムスタンプストライド(TS_STRIDE)値として割り当て、
このタイムスタンプストライド(TS_STRIDE)値により各RTPタイムスタンプ(TS)の値をダウンスケーリングし、
この割り当てられた値を用いてヘッダーを圧縮する、
ヘッダー圧縮方法。
【請求項2】
複数の連続するパケットの少なくとも1個に対する実時間伝送プロトコル(RTP)タイムスタンプ(TS)を決定し、
連続するパケットのRTPタイムスタンプインクリメントを計算し、
フロー全体から最小RTPタイムスタンプインクリメント(MIN_TS_STRIDE)値を見つけ出し、
この最小RTPタイムスタンプインクリメント(MIN_TS_STRIDE)値を圧縮のためのタイムスタンプストライド(TS_STRIDE)値として割り当て、
このタイムスタンプストライド(TS_STRIDE)値により各RTPタイムスタンプ(TS)の値をダウンスケーリングし、
この割り当てられた値を用いてヘッダーを圧縮する、
ヘッダー圧縮方法。
【請求項3】
前記圧縮は、
最下位符号化法に基づいたウインドウを用いて符号化値を決定し、
この符号化値によりコンテクストを更新する、
請求項2に記載の方法。
【請求項4】
前記圧縮は更に、
先行パケットに対応するコンテクスト中の第1の値と現在パケットに対応する第2の値との間の差を決定し、
この第2の値によりコンテクストを決定し、
この第2の値により現在パケットのヘッダを圧縮する、
請求項3に記載の方法。
【請求項5】
前記ヘッダは、インターネットプロトコル(IP)、実時間伝送プロトコル(RTP)、ユーザデータグラムプロトコル(UDP)、送信制御プロトコル(TCP)の少なくとも一つに関する情報を持つ、請求項2に記載の方法。
【請求項6】
前記タイムスタンプインクリメント(TS_STRIDE)はパケット内の複数のサンプルである、請求項2に記載の方法。
【請求項7】
前記所定数は5である、請求項1に記載の方法。
【請求項8】
前記所定数は第1タイプのデータに対する第1の値であり、また第2タイプのデータに対する第2の値である、請求項1に記載の方法。
【請求項9】
前記パケットは音声データを有する、請求項7に記載の方法。
【請求項10】
複数の連続するパケットの少なくとも1個に対する実時間伝送プロトコル(RTP)タイムスタンプ(TS)を決定する手段と、
所定数のパケットが一定のタイムスタンプインクリメント値を持つまで連続するパケットのRTPタイムスタンプインクリメントを計算する手段と、
この一定のRTPタイムスタンプインクリメント値を圧縮のためのタイムスタンプストライド(TS_STRIDE)値として割り当てる手段と、
このタイムスタンプストライド(TS_STRIDE)値により各RTPタイムスタンプ(TS)の値をダウンスケーリングする手段と、
この割り当てられた値を用いてヘッダーを圧縮する手段と、
を具備するヘッダー圧縮装置。
【請求項11】
複数の連続するパケットの少なくとも1個に対する実時間伝送プロトコル(RTP)タイムスタンプ(TS)を決定する手段と、
連続するパケットのRTPタイムスタンプインクリメントを計算する手段と、
フロー全体から最小RTPタイムスタンプインクリメント(MIN_TS_STRIDE)値を見つけ出す手段と、
この最小RTPタイムスタンプインクリメント(MIN_TS_STRIDE)値を圧縮のためのタイムスタンプストライド(TS_STRIDE)値として割り当てる手段と、 このタイムスタンプストライド(TS_STRIDE)値により各RTPタイムスタンプ(TS)の値をダウンスケーリングする手段と、
この割り当てられた値を用いてヘッダーを圧縮する手段と、
を具備するヘッダー圧縮装置。
【請求項12】
前記圧縮手段は、
最下位符号化法に基づいたウインドウを用いて符号化値を決定する手段と、
この符号化値によりコンテクストを更新する手段と、
を具備した請求項11に記載の装置。
【請求項13】
前記圧縮手段は更に、
先行パケットに対応するコンテクスト中の第1の値と現在パケットに対応する第2の値との間の差を決定する手段と、
この第2の値によりコンテクストを更新する手段と、
この第2の値により現在パケットのヘッダを圧縮する手段と、
を具備する請求項12に記載の装置。
【請求項14】
更に、圧縮されたヘッダを送信する手段を具備する、請求項11に記載の装置。
【請求項15】
少なくとも一つのタイムスタンプストライド(TS_STRIDE)値を受信する手段と、
少なくとも一つの圧縮されたパケットを受信する手段と、
最下位ビットウインドを用いてパケットを複号化する手段を含む、圧縮されたパケットを伸長する手段と、
受信されたタイムスタンプストライド(TS_STRIDE)値に基づいて少なくとも一つのパケットのタイムスタンプ(TS)の値を決定する手段と、
を具備する装置。
【請求項16】
複数のパケットに対して最小タイムスタンプインクリメント(MIN_TS_STRIDE)を決定する手段と、
現在パケットを受信する手段と、
現在パケットのタイムスタンプインクリメントを決定する手段と、
現在パケットのタイムスタンプインクリメントが複数のパケットの最小タイムスタンプインクリメント(MIN_TS_STRIDE)より小さいときに、この最小タイムスタンプインクリメント(MIN_TS_STRIDE)値を更新する手段と、
この更新された値を伸長器に送信する手段と、
次のパケットを受信する手段と、
前記次のパケットを更新された最小タイムスタンプインクリメント(MIN_TS_STRIDE)に基づいて圧縮する手段と、
を具備する装置。
【請求項17】
前記更新手段は、
前記最小タイムスタンプインクリメント(MIN_TS_STRIDE)値を現在パケットのタイムスタンプインクリメント(TS_STRIDE)に変更する手段を有する、請求項16に記載の装置。
【請求項18】
複数のパケットを受信する手段と、
受信されたパケットに対して複数のタイムスタンプインクリメント(TS_STRIDE)値を決定する手段と、
受信されたN個のパケットに対して複数のタイムスタンプインクリメント値が一定に保持されるかを決定する手段と、
この決定されたタイムスタンプインクリメント(TS_STRIDE)値をコンテクスト内に記憶されたタイムスタンプインクリメント(TS_STRIDE)値と比較する手段と、
最新に受信されたN個のパケットに対するタイムスタンプインクリメント(TS_STRIDE)値が同じ値であり且つ記憶された値とは異なるときにこの記憶された値を更新する手段と、
現在パケットを受信する手段と、
この現在パケットを更新されたタイムスタンプインクリメント(TS_STRIDE)を用いて圧縮する手段と、
を具備する装置。
【請求項19】
複数のパケットに対する最小タイムスタンプインクリメント( MIN_TS_STRIDE)を決定するための第1の複数の符号と、
現在のパケットを受信するための第2の複数の符号と、
現在のパケットのタイムスタンプインクリメントを決定するための第3の複数の符号と、
現在のパケットのタイムスタンプインクリメントが複数のパケットに対する最小タイムスタンプインクリメント( MIN_TS_STRIDE)より少ない場合に最小タイムスタンプインクリメント( MIN_TS_STRIDE)値を更新するための第4の複数の符号と、
更新された値を伸張器に送信するための第5の複数の符号と、
次のパケットを受信するための第6の複数の符号と、
更新された最小タイムスタンプインクリメント( MIN_TS_STRIDE)に基づいて次のパケットを圧縮するための第7の複数の符号とを具備する、コンピュータプログラム製品。
【請求項20】
複数のパケットを受信するための第1の複数の符号と、
この受信されたパケットに対する複数のタイムスタンプインクリメント( TS_STRIDE)を決定するための第2の複数の符号と、
複数のタイムスタンプ値がN個の受信パケットにわたって一定に保たれたか否かを決定するための第3の複数の符号と、
決定されたタイムスタンプインクリメント値( TS_STRIDE)をコンテクストに記憶されたタイムスタンプインクリメント値( TS_STRIDE)と比較するための第4の複数の符号と、
最新の連続するN個の受信パケットに対するタイムスタンプインクリメント値( TS_STRIDE)が同じ値でありかつ記憶された値と異なる場合にこの記憶された値を更新するための第5の複数の符号と、
現在パケットを受信するための第6の複数の符号と、
現在パケットを更新されたタイムスタンプインクリメント値( TS_STRIDE)を用いて圧縮するための第7の複数の符号と、
を具備するコンピュータプログラム製品。
【請求項1】
複数の連続するパケットの少なくとも1個に対する実時間伝送プロトコル(RTP)タイムスタンプ(TS)を決定し、
所定数のパケットが一定のタイムスタンプインクリメント値を持つまで連続するパケットのRTPタイムスタンプインクリメントを計算し、
この一定のタイムスタンプインクリメント値を圧縮のためのタイムスタンプストライド(TS_STRIDE)値として割り当て、
このタイムスタンプストライド(TS_STRIDE)値により各RTPタイムスタンプ(TS)の値をダウンスケーリングし、
この割り当てられた値を用いてヘッダーを圧縮する、
ヘッダー圧縮方法。
【請求項2】
複数の連続するパケットの少なくとも1個に対する実時間伝送プロトコル(RTP)タイムスタンプ(TS)を決定し、
連続するパケットのRTPタイムスタンプインクリメントを計算し、
フロー全体から最小RTPタイムスタンプインクリメント(MIN_TS_STRIDE)値を見つけ出し、
この最小RTPタイムスタンプインクリメント(MIN_TS_STRIDE)値を圧縮のためのタイムスタンプストライド(TS_STRIDE)値として割り当て、
このタイムスタンプストライド(TS_STRIDE)値により各RTPタイムスタンプ(TS)の値をダウンスケーリングし、
この割り当てられた値を用いてヘッダーを圧縮する、
ヘッダー圧縮方法。
【請求項3】
前記圧縮は、
最下位符号化法に基づいたウインドウを用いて符号化値を決定し、
この符号化値によりコンテクストを更新する、
請求項2に記載の方法。
【請求項4】
前記圧縮は更に、
先行パケットに対応するコンテクスト中の第1の値と現在パケットに対応する第2の値との間の差を決定し、
この第2の値によりコンテクストを決定し、
この第2の値により現在パケットのヘッダを圧縮する、
請求項3に記載の方法。
【請求項5】
前記ヘッダは、インターネットプロトコル(IP)、実時間伝送プロトコル(RTP)、ユーザデータグラムプロトコル(UDP)、送信制御プロトコル(TCP)の少なくとも一つに関する情報を持つ、請求項2に記載の方法。
【請求項6】
前記タイムスタンプインクリメント(TS_STRIDE)はパケット内の複数のサンプルである、請求項2に記載の方法。
【請求項7】
前記所定数は5である、請求項1に記載の方法。
【請求項8】
前記所定数は第1タイプのデータに対する第1の値であり、また第2タイプのデータに対する第2の値である、請求項1に記載の方法。
【請求項9】
前記パケットは音声データを有する、請求項7に記載の方法。
【請求項10】
複数の連続するパケットの少なくとも1個に対する実時間伝送プロトコル(RTP)タイムスタンプ(TS)を決定する手段と、
所定数のパケットが一定のタイムスタンプインクリメント値を持つまで連続するパケットのRTPタイムスタンプインクリメントを計算する手段と、
この一定のRTPタイムスタンプインクリメント値を圧縮のためのタイムスタンプストライド(TS_STRIDE)値として割り当てる手段と、
このタイムスタンプストライド(TS_STRIDE)値により各RTPタイムスタンプ(TS)の値をダウンスケーリングする手段と、
この割り当てられた値を用いてヘッダーを圧縮する手段と、
を具備するヘッダー圧縮装置。
【請求項11】
複数の連続するパケットの少なくとも1個に対する実時間伝送プロトコル(RTP)タイムスタンプ(TS)を決定する手段と、
連続するパケットのRTPタイムスタンプインクリメントを計算する手段と、
フロー全体から最小RTPタイムスタンプインクリメント(MIN_TS_STRIDE)値を見つけ出す手段と、
この最小RTPタイムスタンプインクリメント(MIN_TS_STRIDE)値を圧縮のためのタイムスタンプストライド(TS_STRIDE)値として割り当てる手段と、 このタイムスタンプストライド(TS_STRIDE)値により各RTPタイムスタンプ(TS)の値をダウンスケーリングする手段と、
この割り当てられた値を用いてヘッダーを圧縮する手段と、
を具備するヘッダー圧縮装置。
【請求項12】
前記圧縮手段は、
最下位符号化法に基づいたウインドウを用いて符号化値を決定する手段と、
この符号化値によりコンテクストを更新する手段と、
を具備した請求項11に記載の装置。
【請求項13】
前記圧縮手段は更に、
先行パケットに対応するコンテクスト中の第1の値と現在パケットに対応する第2の値との間の差を決定する手段と、
この第2の値によりコンテクストを更新する手段と、
この第2の値により現在パケットのヘッダを圧縮する手段と、
を具備する請求項12に記載の装置。
【請求項14】
更に、圧縮されたヘッダを送信する手段を具備する、請求項11に記載の装置。
【請求項15】
少なくとも一つのタイムスタンプストライド(TS_STRIDE)値を受信する手段と、
少なくとも一つの圧縮されたパケットを受信する手段と、
最下位ビットウインドを用いてパケットを複号化する手段を含む、圧縮されたパケットを伸長する手段と、
受信されたタイムスタンプストライド(TS_STRIDE)値に基づいて少なくとも一つのパケットのタイムスタンプ(TS)の値を決定する手段と、
を具備する装置。
【請求項16】
複数のパケットに対して最小タイムスタンプインクリメント(MIN_TS_STRIDE)を決定する手段と、
現在パケットを受信する手段と、
現在パケットのタイムスタンプインクリメントを決定する手段と、
現在パケットのタイムスタンプインクリメントが複数のパケットの最小タイムスタンプインクリメント(MIN_TS_STRIDE)より小さいときに、この最小タイムスタンプインクリメント(MIN_TS_STRIDE)値を更新する手段と、
この更新された値を伸長器に送信する手段と、
次のパケットを受信する手段と、
前記次のパケットを更新された最小タイムスタンプインクリメント(MIN_TS_STRIDE)に基づいて圧縮する手段と、
を具備する装置。
【請求項17】
前記更新手段は、
前記最小タイムスタンプインクリメント(MIN_TS_STRIDE)値を現在パケットのタイムスタンプインクリメント(TS_STRIDE)に変更する手段を有する、請求項16に記載の装置。
【請求項18】
複数のパケットを受信する手段と、
受信されたパケットに対して複数のタイムスタンプインクリメント(TS_STRIDE)値を決定する手段と、
受信されたN個のパケットに対して複数のタイムスタンプインクリメント値が一定に保持されるかを決定する手段と、
この決定されたタイムスタンプインクリメント(TS_STRIDE)値をコンテクスト内に記憶されたタイムスタンプインクリメント(TS_STRIDE)値と比較する手段と、
最新に受信されたN個のパケットに対するタイムスタンプインクリメント(TS_STRIDE)値が同じ値であり且つ記憶された値とは異なるときにこの記憶された値を更新する手段と、
現在パケットを受信する手段と、
この現在パケットを更新されたタイムスタンプインクリメント(TS_STRIDE)を用いて圧縮する手段と、
を具備する装置。
【請求項19】
複数のパケットに対する最小タイムスタンプインクリメント( MIN_TS_STRIDE)を決定するための第1の複数の符号と、
現在のパケットを受信するための第2の複数の符号と、
現在のパケットのタイムスタンプインクリメントを決定するための第3の複数の符号と、
現在のパケットのタイムスタンプインクリメントが複数のパケットに対する最小タイムスタンプインクリメント( MIN_TS_STRIDE)より少ない場合に最小タイムスタンプインクリメント( MIN_TS_STRIDE)値を更新するための第4の複数の符号と、
更新された値を伸張器に送信するための第5の複数の符号と、
次のパケットを受信するための第6の複数の符号と、
更新された最小タイムスタンプインクリメント( MIN_TS_STRIDE)に基づいて次のパケットを圧縮するための第7の複数の符号とを具備する、コンピュータプログラム製品。
【請求項20】
複数のパケットを受信するための第1の複数の符号と、
この受信されたパケットに対する複数のタイムスタンプインクリメント( TS_STRIDE)を決定するための第2の複数の符号と、
複数のタイムスタンプ値がN個の受信パケットにわたって一定に保たれたか否かを決定するための第3の複数の符号と、
決定されたタイムスタンプインクリメント値( TS_STRIDE)をコンテクストに記憶されたタイムスタンプインクリメント値( TS_STRIDE)と比較するための第4の複数の符号と、
最新の連続するN個の受信パケットに対するタイムスタンプインクリメント値( TS_STRIDE)が同じ値でありかつ記憶された値と異なる場合にこの記憶された値を更新するための第5の複数の符号と、
現在パケットを受信するための第6の複数の符号と、
現在パケットを更新されたタイムスタンプインクリメント値( TS_STRIDE)を用いて圧縮するための第7の複数の符号と、
を具備するコンピュータプログラム製品。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2011−239432(P2011−239432A)
【公開日】平成23年11月24日(2011.11.24)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−138576(P2011−138576)
【出願日】平成23年6月22日(2011.6.22)
【分割の表示】特願2008−549667(P2008−549667)の分割
【原出願日】平成19年1月5日(2007.1.5)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】
【公開日】平成23年11月24日(2011.11.24)
【国際特許分類】
【出願番号】特願2011−138576(P2011−138576)
【出願日】平成23年6月22日(2011.6.22)
【分割の表示】特願2008−549667(P2008−549667)の分割
【原出願日】平成19年1月5日(2007.1.5)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】
[ Back to top ]