JP2004500753A5 - - Google Patents

Download PDF

Info

Publication number
JP2004500753A5
JP2004500753A5 JP2001537167A JP2001537167A JP2004500753A5 JP 2004500753 A5 JP2004500753 A5 JP 2004500753A5 JP 2001537167 A JP2001537167 A JP 2001537167A JP 2001537167 A JP2001537167 A JP 2001537167A JP 2004500753 A5 JP2004500753 A5 JP 2004500753A5
Authority
JP
Japan
Prior art keywords
value
decompressor
compressor
previous
current value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2001537167A
Other languages
Japanese (ja)
Other versions
JP2004500753A (en
Filing date
Publication date
Application filed filed Critical
Priority claimed from PCT/US2000/041773 external-priority patent/WO2001035534A2/en
Publication of JP2004500753A publication Critical patent/JP2004500753A/en
Publication of JP2004500753A5 publication Critical patent/JP2004500753A5/ja
Withdrawn legal-status Critical Current

Links

Description

【書類名】 明細書
【発明の名称】 圧縮されているデータの可変長符合化
【特許請求の範囲】
【請求項1】 パケットヘッダを圧縮又は解凍する方法であって、この方法は:
少なくとも1つの前の値の系列をコンプレッサにおいて維持することを含み、各々の前の値は異なるk個の最下位ビットを有すると共にデコンプレッサへ伝送されており;
前の値の該系列中のいずれかの値を基準値として用いて該デコンプレッサにおいて現在の値を解凍することを可能にするビットの数を表すkの値を決定することを含み;
現在の該コンプレッサから該デコンプレッサへ、現在の値のk個の最下位ビットを有する圧縮されている形で送ることを含み、
kの値は、現在の値と少なくとも1つの前の値とを比較してその現在の値と少なくとも1つの前の値との最大の差rを決定することにより決定され、このkはlog 2 (r)+1より大きい最小の整数であるように選択される整数であることを特徴とする方法。
請求項2】 該デコンプレッサは、該デコンプレッサが値を解凍したことを示す少なくとも1つの受取通知を該コンプレッサに送り、該コンプレッサは少なくとも1つのより古い前の値を捨てるために少なくとも1つの前の値の該系列を更新することを特徴とする請求項に記載の方法。
請求項3 現在の値を、該デコンプレッサにおいて、少なくとも1つの前の値の該系列の最後の値の基準値を用いて解凍することを更に含み、現在の値は、現在の値のk個の最下位ビットと同一のk個の最下位ビットを有する値であって該基準値に最も近い値として解凍されることを特徴とする請求項1又は2に記載の方法 。
請求項4】 該基準値より下から該基準値の上にまで及ぶ値を含むサーチ間隔を該デコンプレッサにおいて使用し;
該サーチ間隔内の値から同一のk個の最下位ビットを有する値を選択することを更に含むことを特徴とする請求項に記載の方法。
請求項5】 該値は、基準値v refとビット数kとを少なくとも1つの前の値の該系列と現在のとにマッピングすることから作られ;
少なくとも1つの前の値の該系列は、該デコンプレッサにより解凍されたと受取通知されている最も古い送信された値を最旧の値として有するように更新されることを特徴とする請求項1に記載の方法。
請求項6】 該値は、基準値とビット数kとの関数であることを特徴とする請求項1に記載の方法。
請求項7】 該関数は、[ ref−2k-1, v ref+2k-1]であることを特徴とする請求項に記載の方法。
請求項8】 該関数は、[ ref, v ref+2k]であることを特徴とする請求項に記載の方法。
請求項9】 少なくとも1つの該受取通知は、圧縮されていない値であることを特徴とする請求項に記載の方法。
請求項10】 少なくとも1つの該受取通知は、圧縮されている値であることを特徴とする請求項に記載の方法。
請求項11】 少なくとも1つの該受取通知は、圧縮されている該値の一部分を符号化するのに使用される情報を含んでいる圧縮されている値であることを特徴とする請求項10に記載の方法。
請求項12】 少なくとも1つの該受取通知は、前の値の該系列の中の最も古い値を包含することを特徴とする請求項又は10に記載の方法。
請求項13】 前の値の該系列は、該コンプレッサと該デコンプレッサとの間での値の系列の伝送中に失われることのある値の見積もられた最大数に基づいてより古い前の値を捨てるように更新されることを特徴とする請求項1に記載の方法。
請求項14】 圧縮されている現在の値は、その現在の値と共に送られる数kを符号化することを特徴とする請求項1に記載の方法。
請求項15】 該符号化はハフマン符号化であることを特徴とする請求項14に記載の方法。
請求項16】 該値はRTPヘッダを含むことを特徴とする請求項1に記載の方法。
請求項17】 少なくとも1つの該受取通知は、RTPヘッダのTS及びIP−IDの受取通知を表すRTP SNヘッダの受取通知であることを特徴とする請求項13に記載の方法。
請求項18 パケットヘッダを圧縮又は解凍するシステムであって:
異なるk個の最下位ビットを各々有する少なくとも1つの前の値の系列を維持するコンプレッサと;
個の最下位ビットに圧縮されている現在のを該コンプレッサから受信するデコンプレッサとを含んでおり;
該コンプレッサは、少なくとも1つの前の値の該系列中のいずれかの値を基準として使用して該デコンプレッサにおいて現在の値を解凍することを可能にするビットの数を表すkの値を決定するものであり、
kの値は、現在の値と少なくとも1つの前の該値との最大差を決定するために現在の値を少なくとも1つの前の該値と比較することにより決定され、kはlog 2 (r)+1より大きい最小の整数であるように選択される整数であることを特徴とするシステム。
請求項19】 該デコンプレッサは、該デコンプレッサが値を解凍したことを示す少なくとも1つの受取通知を該コンプレッサに送り、該コンプレッサはより古い前の値を捨てるために少なくとも1つの前の値の該系列を更新することを特徴とする請求項18に記載のシステム。
請求項20】 該デコンプレッサは、現在の値を、該デコンプレッサにおいて、少なくとも1つの前の値の該系列の最後の値の基準値を用いて解凍するものであり、現在の値は、現在の値のk個の最下位ビットと同一のk個の最下位ビットを有する値であって該基準値に最も近い値として解凍されることを特徴とする請求項18又は19に記載のシステム。
請求項21】 該デコンプレッサが該基準値より下から該基準値の上にまで及ぶ値を含むサーチ間隔を使用し;該サーチ間隔内の値から同一のk個の最下位ビットを有する値を選択することを更に含むことを特徴とする請求項20に記載のシステム。
請求項22】 該コンプレッサは、基準値v refとビット数kとを少なくとも1つの前の値の該系列と現在のとにマッピングすることから該値を作り;少なくとも1つの前の値の該系列は、該デコンプレッサにより解凍されたと受取通知されている最も古い送信された値を最旧の値として有するように更新されることを特徴とする請求項18に記載のシステム。
【請求項23】 該値は、基準値とビット数kとの関数であることを特徴とする請求項22に記載のシステム。
請求項24】 該関数は、[ ref−2k-1, v ref+2k-1]であることを特徴とする請求項23に記載のシステム。
請求項25】 該関数は、[ ref, v ref+2k]であることを特徴とする請求項23に記載のシステム。
請求項26】 該受取通知は圧縮されていない値であることを特徴とする請求項19に記載のシステム。
請求項27】 少なくとも1つの該受取通知は圧縮されている値であることを特徴とする請求項19に記載のシステム。
請求項28】 少なくとも1つの該受取通知は、圧縮されている値の一部分を符号化するのに使用される情報を含む圧縮されている値であることを特徴とする請求項27に記載のシステム。
請求項29】 少なくとも1つの前の値の該系列は、該コンプレッサと該デコンプレッサとの間での値の系列の伝送中に失われることのある値の見積もられた最大数に基づいて少なくとも1つのより古い前の値を捨てるように該コンプレッサにより更新されることを特徴とする請求項18に記載のシステム。
請求項30】 圧縮されている現在のは、その現在の値と共に送信される数kを符号化することを特徴とする請求項18に記載のシステム。
請求項31】 該値はRTPヘッダを含むことを特徴とする請求項18に記載のシステム。
請求項32】 少なくとも1つの該受取通知は、RTPヘッダのTS及びIP−IDの受取通知を表すRTP SNヘッダの受取通知であることを特徴とする請求項19に記載のシステム。
請求項33 パケットヘッダを圧縮又は解凍する方法であって、この方法は:
少なくとも1つの前の値の系列を該コンプレッサにおいて維持することを含み、各々の前の値は異なるk個の最下位ビットを有すると共に該デコンプレッサへ送信されており;
前の値の該系列中のいずれかの値を基準値として使用して該デコンプレッサにおいて現在の値を解凍することを可能にする減じられた数のビットを表すkの値を決定することを含んでおり;
現在の該コンプレッサから該デコンプレッサへ、現在の値のk個の最下位ビットを有する圧縮されている形で送ることを含むことを特徴とする方法。
【発明の詳細な説明】
【0001】
(関連出願への相互参照)
この出願は、“圧縮されているデータの可変長符号化”と題されている、1999年11月9日に出願された米国暫定出願第60/164,330号の出願日を主張する。
【0002】
“ヘッダ圧縮のための効率的ハンドオフ手順”と題されている、2000年3月9日に出願された米国特許出願第09/522,497号を参照するが、この出願はこれの譲受人に譲渡されていて参照によりその全体がこれに編入される。
【0003】
“パケットを送信し受信するための方法及びシステム”と題されている、2000年3月28日に出願された米国特許出願第09/536,639号も参照するが、この出願はこれの譲受人に譲渡されていて参照によりその全体がこれに編入される。
【0004】
(技術分野)
本発明は、パケット・ヘッダ圧縮を含む高効率データ圧縮に関する。
【0005】
(従来技術の説明)
効率が良くてエラーに強い方法で、一連の値を圧縮できることが重要である領域が多数ある。一例は、セルラー・ネットワークを介して実時間IPベースのマルチメディア・トラフィックを伝えるIP/UDP/RTPヘッダ圧縮である。IP/UDP/RTPヘッダのサイズは大きく、セルラーシステムの帯域幅に制限があるために、圧縮効率が絶対に必要である。セルラー・リンクのエラーを生じさせやすい特性の故に、エラーに強いことも必要である。
【0006】
インターネット・エンジニアリング・タスク・フォース(IETF)、RFC2508、1999年2月、に記載されているRTPヘッダ圧縮は、無損失コンプレッサ−デコンプレッサ・リンクでの高圧縮効率を達成する。それは、ヘッダの殆どをわずか2バイトまで圧縮することができる。しかし、この構成はエラーに強くない。遭遇する問題は、エラー伝搬と、増大した圧縮されているヘッダのサイズとである。エラー伝搬は、ここでは、圧縮されているヘッダがエラーにより打撃を受けたならば、この圧縮されているヘッダが復号化不能となるだけではなくて、次に続く圧縮されているヘッダも、それらにエラーが無いとしても、おそらく復号化不能となるという事実を指す。増大した圧縮されているヘッダのサイズは、ここでは、エラー回復手順の故に、損失のあるリンク上の圧縮されているヘッダは損失の無いリンクで達成される最上の2バイトより大きいという事実を指す。RFC2508の制限事項について以下で論じる。
【0007】
ヘッダ圧縮方式は、ヘッダで運ばれる一定の情報フィールドが1.)変化しないか(ここでは’タイプ1’ヘッダ・フィールドと称される)、或いは2.)かなり予測し得る態様で変化する(ここでは’タイプ2’ヘッダ・フィールドと称される)という事実を利用する。’タイプ3’ヘッダ・フィールドと称される他のフィールドは、忠実には予測し得ない態様で変化する。
【0008】
タイプ1ヘッダ・フィールドの例は、IPアドレス、UDPポート番号、RTP SSRC(同期化ソース)、等である。これらのフィールドは、セッションの過程で(例えば、セッション確率時に転送されるパケットの一部分として)受信装置/デコンプレッサに1回送られるだけでよい。
【0009】
タイプ2ヘッダ・フィールドの例は、RTPタイム・スタンプ、RTPシーケンス番号、及びIP IDフィールドである。全て、パケットからパケットへと一定量ずつ増大する傾向を有する。従って、全てのヘッダでこれらの値を伝送する必要はない。必要なのは、RFC2508においてデルタと称される一定の増大(差分)値をデコンプレッサに知らせることだけである。デコンプレッサは、最初のヘッダを復元するとき、これらのデルタを利用して最新のタイプフィールドを再生する。換言すると、タイプ2ヘッダ・フィールドを圧縮するために差分符号化が使用される。
【0010】
殆どのIPスタック・インプリメンテーションについてのIP−IDフィールドは、ソースから送られる全てのパケットについて一定量ずつ増大する。従って、RTPストリーム・パケットがコンプレッサ−デコンプレッサ(CD)−チャネルにおいて同じソースからの他のパケットとインターリーブされない限りは、IP−IDデルタは一定であって、送信される必要はない。
【0011】
タイプ3ヘッダ・フィールドの例は、RTP M−ビット(マーカー)であり、これは媒体における何らかの境界(例えば、ビデオ・フレームの終了)の発生を示す。媒体は普通は予測不能に変化するので、この情報を正しく予測することはできない。
【0012】
ヘッダ圧縮方式の上記制約は、タイプ2フィールドのために使用されるデルタ符号化に由来する。差分符号化の故に、もし1つの圧縮されているヘッダが失われると、それに続く圧縮されているヘッダは復号化不能となり、その理由は、それらは復号化不能の圧縮されているヘッダから回帰的に予測されることにある。これは、私達がエラー伝搬と呼んだものである。
【0013】
エラー伝搬から回復するために使用されるアルゴリズムは“トワイス(twice)”アルゴリズムとして知られており、圧縮されているパケットでパケットUDPチェックサムが伝送されるならば、このアルゴリズムを使用することができる。CD−リンク上の圧縮されているパケットは4ビットのシーケンス番号を伝え、それはコンプレッサにより送られる各々の圧縮されているパケットについて1だけ大きくされる。デコンプレッサは、このシーケンス番号を使用して該リンク上の圧縮されているパケットの喪失を検出する。もしシーケンス番号が1より大きく増大したならば、デコンプレッサは、全ての圧縮されているパケット・デルタが最後の圧縮されているパケット・デルタから変化していないと思い、各々の喪失したパケットについて1つのデルタを加える。その後、デコンプレッサは、解凍されたパケットUDPチェックサムを計算し、それが伝送されたUDPチェックサムと釣り合うか否か調べることにより、該仮定が妥当であったか否か調べる。
【0014】
トワイス・アルゴリズムは制限的でありすぎる。第1に、それは全ての圧縮されているパケットでチェックサム(2バイト)を送ることを必要とし、従って圧縮効率を顕著に低下させる。第2に、代表的なオーディオ・ストリームについて、トワイス・アルゴリズムは、最後に解凍されたパケットからTS又はIP−IDジャンプがない場合に限って具合良く作用する。
【0015】
デコンプレッサは、パケットを解凍できないときには、否定の受取通知Nackをコンプレッサに送る。Nackを受け取ると、コンプレッサは圧縮されていないヘッダ・フィールドを送らなければならない。フィールドが圧縮されずに送られなければならないので、Nackメカニズムは少なくとも1伝送遅延の持続時間のオーディオ又はビデオの機能停止と圧縮効率の低下とを招来する。
【0016】
エラー伝搬を制限するために、コンプレッサは、デコンプレッサが要求していないのに圧縮されていないフィールドを定期的に送るリフレッシュ・メカニズムを使用することができる。しかし、その様なメカニズムは圧縮効率を更に低下させる。
【0017】
RFC2508のもう一つの制約は、圧縮されているヘッダの短いシーケンス番号である。前のシーケンス番号と連続していないシーケンス番号を有するヘッダをデコンプレッサが受け取ると、パケット喪失が検出され、コンプレッサとデコンプレッサとを再同期化するために回復機構が使用される。単に短いシーケンス番号を使用することは、’長い喪失’が頻繁に生じることのある無線などの、エラーが生じがちのリンクにとっては強健ではない。長い喪失は、ローにおける’シーケンス・サイクル’又はそれより多いパケットの喪失として定義される。長い喪失が発生したとき、デコンプレッサにより受信されたパケット中のシーケンス番号は’巻き付ける’。例えば、シーケンス番号がkビットから成り、従ってシーケンス・サイクルが k に等しいとする。ローにおいて k パケットが喪失したとすると、デコンプレッサは、依然として到来するパケット中の連続するシーケンス番号を見ているので、パケットの喪失を検出することができない。
【0018】
(発明の開示)
本発明は、1実施態様においてはVLE(variable length encoding(可変長符号化))と称される強健で効率の良い符号化機構である。本発明のVLE及びその他の実施態様は、エラー伝搬と従来技術の効率低下とを解決する。
【0019】
本発明は、部分的には、圧縮ポイントで受信されるヘッダ・タイプ2フィールドが増加傾向を示すという所見に基づいている。このことは、連続するヘッダからのフィールドが同じMSB(最上位ビット)を有していて、そのLSB(最下位ビット)だけ違うということを暗に意味する。従ってLSBだけを伝送することによって圧縮を達成することができる。
【0020】
本発明は、CDリンクで前の圧縮されているパケットの喪失がどの様であっても正しい解凍を可能とするのに充分な様な最少数の送られるべきLSBをコンプレッサが決定することを可能にする。
【0021】
本発明は、どの様な値の系列にも応用されることができる。値が密集している(即ち、互いに近い)ほど、効率が高くなる。
【0022】
本発明に従って現在の値をコンプレッサからデコンプレッサへ伝送される最少数の或いは減じた数のビットに圧縮する方法は、各々異なるk個の最下位ビットを有して該デコンプレッサに伝送されている少なくとも1つの前の値の系列を該コンプレッサにおいて維持し、前記の前の値の系列中のいずれかの値を基準として用いて該デコンプレッサにおいて前記の現在の値を首尾良く解凍することを可能にする最少数の又は減じた数のビットを表すkの値を決定し;前記の現在の値を該コンプレッサから該デコンプレッサへ前記の現在の値のk個の最下位ビットと共に圧縮された形で伝送することを含んでいる。前記の現在の値を前記の前の値と比較して前記の現在の値と前記の前の値との最大の差rを決定することによりkの値を決定することができ、このkはlog 2 (r)+1より大きな最小の整数であるように選択される。該デコンプレッサは、該デコンプレッサが値を解凍したことを示す少なくとも1つの受取通知を該コンプレッサに送ることができ、該コンプレッサは前記の少なくとも1つの前の値の系列を更新してより古い少なくとも1つの前の値を捨てることができる。該デコンプレッサは、該基準値に最も近い受信された現在の値のk個の最下位ビットと同一のk個の最下位ビットを有する値として解凍されるべき少なくとも1つの前の値の該系列の最後の値の基準値と共に??????前記の現在の値を解凍することができる。該デコンプレッサは、該基準値の下からその上にまで及ぶ値を包含するサーチ間隔を使用することができ;該サーチ間隔の中の値から同一のk個の最下位ビットを有する値を選択することができる。基準値v refとビット数kとを少なくとも1つの前の値の系列と現在の値とにマッピングすることから値を作ることができ;少なくとも1つの前の値の系列は、デコンプレッサにより解凍されていると受取通知されている最も古い伝送された値を最旧値として有するように更新されることができる。該値は、基準値とビット数kとの関数であって良い。その関数は、[ ref− k-1 , v ref+ k-1 ]であって良い。該関数は、[ ref, v ref+ k ]であって良い。少なくとも1つの受取通知は、受信された圧縮されていない値又は圧縮されている値であって良い。少なくとも1つの受取通知は、圧縮されている値の一部分を符号化するのに使用された情報を含む受信された圧縮されている値であって良い。少なくとも1つの受取通知は、少なくとも1つの前の値の系列中の最も古い値を含むことができる。コンプレッサとデコンプレッサとの間で値の系列での伝送中に失われることのある見積もられた最大数の値に基づいて少なくとも1つの前の値の系列を更新してより古い前の値を捨てることができる。圧縮されている現在の値は、その現在の値と共に伝送される数kを符号化することができる。その符号化はハフマン符号化であって良い。該値はRTPヘッダを含むことができる。少なくとも1つの受取通知は、RTPヘッダのTS及びIP−IDの受取通知を表すRTP SNヘッダの受取通知であって良い。
【0023】
本発明に従って現在の値を最少数の又は減じた数のビットに圧縮するためのシステムは、異なるk個の最下位ビットを各々有する少なくとも1つの前の値の系列を維持するコンプレッサと;最少数の又は減じた数のk個の最下位ビットに圧縮されている現在の値を受信するデコンプレッサとを含んでおり;該コンプレッサは前記の少なくとも1つの前の値の系列中のいずれかの値を基準として用いて該現在の値を首尾良く解凍することを可能にする最少数のビットを表すkの値を決定する。現在の値を少なくとも1つの前の値と比較してその現在の値と少なくとも1つの前の値との最大差rを決定することによりkの値を決定することができ、kはlog 2 (r)+1より大きな最小の整数であるように選択される。該デコンプレッサは、該デコンプレッサが値を解凍したことを示す少なくとも1つの受取通知を該コンプレッサに送ることができ、該コンプレッサは少なくとも1つの前の値の系列を更新してより古い少なくとも1つの前の値を捨てることができる。該デコンプレッサは、該基準値に最も近い受信された現在の値のk個の最下位ビットと同一のk個の最下位ビットを有する値として解凍されるべき少なくとも1つの前の値の系列の最後の値の基準値と共に該現在の値を該デコンプレッサで解凍することができる。該デコンプレッサは、該基準値より下からその上にまで及ぶサーチ間隔を使用することができ;該サーチ間隔の中の値から同一のk個の最下位ビットを有する値を選択することができる。基準値v refとビット数kとを少なくとも1つの前の値の系列と現在の値とにマッピングすることから値を作ることができ;少なくとも1つの前の値の系列は、デコンプレッサにより解凍されていると受取通知されている最も古い伝送された値を最旧値として有するように更新されることができる。関数は[ ref− k-1 , v ref+ k-1 ]である。該関数は[ ref, v ref+ k ]であって良い。受取通知は、受信された圧縮されていない値であって良い。少なくとも1つの受取通知は、受信された圧縮されている値であって良い。少なくとも1つの受取通知は、圧縮されている値の一部分を符号化するのに使用された情報を含む受信された圧縮されている値であって良い。コンプレッサとデコンプレッサとの間で値の系列での伝送中に失われることのある見積もられた最大数の値に基づいて少なくとも1つの前の値の系列が該コンプレッサにより更新されて少なくとも1つのより古い前の値を捨てることができる。圧縮されている現在の値は、その現在の値と共に伝送される数kを符号化することができる。該値はRTPヘッダを含むことができる。少なくとも1つの受取通知は、RTPヘッダのTS及びIP−IDの受取通知を表すRTP SNヘッダの受取通知であって良い。
【0024】
(発明を実施する最良の形態)
基本構想及び規則
図1は、圧縮情報とその例とを概念的に示している。圧縮コンテキストは情報の集合であり、部分集合であり或いは部分集合を象徴し、それは、限定無しに圧縮されているヘッダであって良い圧縮されている情報を作るために圧縮アルゴリズムへの入力として図3及び4に示されているコンプレッサにより使用されるヘッダを含む、限定無しに如何なる種類の情報であっても良い。他方の入力は、限定無しに圧縮されるべきヘッダとして例示されている圧縮されるべき情報のソースからのものである。
【0025】
図2は、情報の解凍と、その例とを概念的に示している。解凍コンテキスト情報は情報の集合であり、部分集合であり或いは部分集合を象徴し、それは、限定無しに解凍されているヘッダであって良い解凍されている情報を作るために解凍アルゴリズムへの入力として図3及び4に示されている解凍により使用されるヘッダを含む、限定無しに如何なる種類の情報であっても良い。他方の入力は、限定無しに解凍されるべきヘッダとして例示されている解凍されるべき情報からのものである。
【0026】
圧縮コンテキスト情報及び解凍コンテキスト情報は共に動的である、即ち、それらはそれぞれコンプレッサ及びデコンプレッサにより更新されることができる。更新の頻度はヘッダ圧縮メカニズムによる。コンプレッサにおいて圧縮コンテキスト情報の更新をもたらすことのある事象は、到来したヘッダの圧縮、或いはデコンプレッサからのフィードバックの受信を含む。デコンプレッサにおいて解凍コンテキスト情報の更新をもたらすことのある事象は、到来したヘッダの解凍を含む。コンプレッサは3つの状態:
・ FH(フルヘッダ(Full Header))状態
・ FO(一次(First Order))状態
・ SO(二次(Second Order))状態
のうちの1つであることができる。
【0027】
コンプレッサは、初期化段階ではFH状態で動作する。FH状態では、コンプレッサは完全なRTPヘッダを送る。この状態は普通はRTPセッションの始まりに又はセッションの半ばにおいて例えばコンプレッサが機能しなくなったり記憶を失うなどの非常に例外的な事象に起因して起こる一時的な状態である。
【0028】
コンプレッサは更新段階ではFO状態で動作する。FO状態では、送信装置はFOヘッダ、即ちそのヘッダが適切に符号化されている、基準ヘッダと比べて変化しているフィールド並びにシーケンス番号を運ぶパケット、を送る。デコンプレッサは、図3及び4に示されているように一定の数のFOについて受取通知するように期待され、その数はパターンによる。例えば、パターンが一定のパラメータで線形であるならば、補外法への過渡期には唯一の受取通知が必要であるに過ぎない。
【0029】
コンプレッサは補外法段階ではSO状態で動作する。この状態では、送信装置はSOパケットを、即ちそのヘッダが本質的にちょうどシーケンス番号であるパケットを、送る。デコンプレッサは、正しく受信されたSOパケットについて受取通知を出しても良いし受取通知を出さなくても良い。
【0030】
VLEにおいて使用される1種の数学的関数について次のように説明するが、それは本発明と共に使用され得るけれども本発明はそれには限定されない。f(k, v ref) = (v 1, v 2,.....,v k )と表示されるその様な関数は、基準値と称される整数v refに写像すると共に、数個のビットkを、全て異なるk個のLSBを有する整数のk組に写像する。
【0031】
その様な関数はいずれも適切であるかも知れないけれども、1つの好ましい実施態様は連続する値v 1, v 2,....., v k 、即ちv i = v 1 + i−1を戻す関数だけを使用する。換言すると、該関数は長さ2kの値の間隔を有する。その間隔は[ ref−C(k, v ref), v ref−C(k, v ref)+ k ]と書かれることができ、ここでCはk及びv refの関数である整数値である。その様などんな間隔も興味あるものであるけれども、1つの好ましい実施態様はC(k, v ref) = 0及びC(k, v ref) = 2k−1を使用する。換言すると、その実施態様は間隔[ ref− k-1 , v ref+ k-1 ]と[ ref, v ref+ k ]とを使用する。
【0032】
[ ref− k-1 , v ref+ k-1 ]間隔に基づくVLE実施態様について次のように説明する。システムは、コンプレッサと、デコンプレッサと、図3及び4に示されているCDチャネル即ち該コンプレッサ及び該デコンプレッサの間のリンク、とから成っている。該チャネルはエラーを生じがちであるかも知れない。この実施態様での仮定は、限定をするものではないが、圧縮されている値が該チャネルにより再注文されなくて、デコンプレッサへの入力として与えられる圧縮されている値は改竄されていない(換言すると改竄されているヘッダは失われたヘッダとして取り扱われる)ということだけである。該チャネルは、シンプレックス・リンク、即ちデコンプレッサからの圧縮されている値だけを運ぶリンクであるか、又はデュプレックス・リンクであることができ、即ち該チャネルは図3及び4に示されているようにデコンプレッサからコンプレッサへのフィードバックも運ぶ。好ましい実施態様ではデュプレックス・チャネルが使用される。
【0033】
第1段階は、デコンプレッサによる初期値の取得である。これは、通信の開始時にコンプレッサが圧縮されていない値を送ることにより、或いは他の適当な手段により、実行されることができる。図3及び4に示されているようにデコンプレッサは値を受け取ったことを報じるためにフィードバック・チャネルを使用することができる。初期化は、限定無しに、コンプレッサが1つのフィードバック受取通知を受け取ったときに完了し、その後、VLE符号化を使用して圧縮を行うことができる。VLEでは、値は可変数のビットkとして圧縮される。VLEモードにおけるデコンプレッサの動作について最初に論じる。
【0034】
図7A及び7Bはウィンドウ更新プロセスを示す。ウィンドウは、コンプレッサに入力され圧縮され得るけれども圧縮される必要はない前の値から成る。ウィンドウは包含時点における i i+1 ,_____, n であり:
(1)新しい値 n+1 が圧縮されるとき、図7Aに示されているようにこの新しい値を包含するために該ウィンドウが拡大される。
(2)その後、コンプレッサがそれらの値が最早デコンプレッサにより使用され得ないと知っているとき、それはこの例では値 i+2 についての受取通知が発生したときであり得、より古い値(この例では i 及び i+1 )を除去することにより、図7Bに示されているようにウィンドウが縮小される。
【0035】
解凍:
基準値は、デコンプレッサにより解凍された最後の値である。コンプレッサは、図3及び4に示されているように受取通知の受信により、デコンプレッサからのフィードバックを使用せずにおそらく少なくとも1つの値が統計的に受信されるのに充分な持続時間にわたって値の系列が送信されたことを考慮して現実の値が受信されたという仮定のもとで、解凍を信号されることができる。デコンプレッサは、そのk個のLSBが受信されたkビットと釣り合う間隔[ ref− k-1 , v ref+ k-1 ]の中の唯一の値を供給することにより、到来する圧縮されている値を解凍する。このサーチ間隔は、前に導入された関数の特別の実例である。解凍された値はv refとなり、それは次に到来する圧縮されている値を解凍するために使用される。好ましい実施態様では、デコンプレッサは、図3及び4に示されているような解凍されている少なくとも数個のパケットについての受取通知を報じる。受取通知が出されなければならないパケットの数は完全に弾力的であって、所望のアプリケーションの仕様を満たすように選択される。デコンプレッサからコンプレッサへ送られる受取通知が多いほど、後に示すように前進リンクにおける圧縮効率が高くなる。
【0036】
圧縮:
ここでコンプレッサの動作を参照する。コンプレッサは、自分が圧縮して図7A及び7Bに示されているデコンプレッサへ送った値の滑りウィンドウ(sliding window)を維持する。1実施態様では、該ウィンドウは、それについてデコンプレッサから受取通知を受信した最後の値と次に送られた値とを、それらがデコンプレッサに送信された順に保持する。コンプレッサは、滑りウィンドウの最大値及び最小値v min及びv maxも維持する。
【0037】
新しい圧縮されていない値vがコンプレッサに到着すると、コンプレッサは、滑りウィンドウの全てのv iについての間隔[ i− k-1 , v i+ k-1 ]の中にvが存在するようにvのk個のLSBを送る。これはr< k −1により便利に表現されることができ、ここでr=max(|v−v max|, |v−v min|)である。この様にコンプレッサはlog 2 (r)+1より大きな最小の整数であるようにkを選択する。コンプレッサが受取通知を受け取るとき、それは、その滑りウィンドウから図7Bを参照して前述したように該受取通知より前に送られた全ての値を除去する。
【0038】
次の議論は、何故VLEが常に正しい解凍を提供する非常に弾力的なメカニズムであるかを説明する。
【0039】
コンプレッサとデコンプレッサとが上記の規則に従う限りは、図3及び4に示されているコンプレッサとデコンプレッサとの間のCDチャネルでの喪失がどの様であっても正しい解凍が行われる。実際に、デコンプレッサにより使用される基準値v refは、例えば図5及び6において点v minとv maxとの間に示されているように、コンプレッサのウィンドウに必ず属し、従って符号化されている値は、デコンプレッサにより使用されるサーチ間隔である間隔[ ref− k-1 , v ref+ k-1 ]の中にあると知られる。
【0040】
VLEではエラー伝搬はない。デコンプレッサにより受信された圧縮されているパケットは常に解凍されることができる。パケット喪失は、圧縮されているパケットのサイズの漸増をもたらす。
【0041】
受取通知が頻繁であるほど、ウィンドウ内の値は少なくなり、従ってより少ないLSBが送られなければならなくなりそうである。これは、圧縮されるべき値が増加傾向に従い、受取通知が受信されるまで各々の新しい値vについてv−v minが増大するヘッダ圧縮の場合に特に当てはまる。
【0042】
圧縮されている値の長さがデコンプレッサに知られていなければならない。或る場合には、この長さは、例えばより低い符号化層からのフレーミング情報を通じて、追加のシグナリング無しで知られることができる。明示的なシグナリングが必要であるならば、好ましい実施態様はVLEフォーマットを定義する。該フォーマットは図8に示されているように2つのフィールド:即ち長さフィールド(即ちLSBの個数k)と圧縮されている値のフィールド(即ち、最初の値vのk個のLSB)とを有することができる。
【0043】
好ましい実施態様では、図8に示されているVLE長さフィールドは、それ自体がハフマン符号化を用いて符号化されている。他のどの様な符号化方法(例えば直線符号化)を使用しても良い。いろいろなアプリケーションについていろいろな長さの確度がアクセスされるべきであり、その後、望ましい場合にはこれらのデータを符号化するためにハフマン符号化アルゴリズムが使用されるべきである。コンプレッサとデコンプレッサとの間の通信リンクにおいて与えられた長さに遭遇する確度は、リンクの特性(喪失及び遅延)とデコンプレッサ受取通知期間と、圧縮されるべき最初の値のパターンとを知って評価されることができる。
【0044】
長さフィールド自体の長さを更に短くするために、コンプレッサに強いて値の縮小された集合からフィールドの長さを選択させることができる。例えば、圧縮されていないフィールドが32ビットで、確度4ビット、8ビット及び32ビットの減少する順となっている次の長さを最大2ビットの長さで符号化したいとすると、適切なコードワードは、4ビットについては単一のビット0、8ビットについては2ビット値10、32ビットについては2ビット値11である。
【0045】
適切な符号化を用いることは、圧縮されている値の平均サイズを最小にする。
【0046】
更に、もし長さを他のパケット・フィールドから得られるのであれば、長さ情報は専用のビットを必要としないかも知れない。例えば、典型的ヘッダ圧縮アプリケーションでは、パケット・タイプ・フィールドが圧縮されているヘッダで送られる。このパケット・タイプ・フィールドを使用して、まれにしか越えられることのないデフォルト長さを暗に示すことができる。その場合、デフォルト長さが越えられると、別のパケット・タイプが使用される。これはまれにしか発生しないことなので、オーバーヘッドは全体的には減少される。
【0047】
もしフィードバック・チャネルがなければ、コンプレッサのウィンドウを前へ移動させてkが永久に増大しないように維持するために他の(帯域外)情報又は追加の仮定が必要となる。1つの方法は、コンプレッサからデコンプレッサへのチャネルに沿って多くてもL個の連続する圧縮されている値が失われることがあると仮定することである。換言すると、コンプレッサは、(L+1)個の連続する圧縮されている値のうちの少なくとも1つがデコンプレッサに到達することを確かに知っているということになる。従って、コンプレッサは、デコンプレッサへ送られた最後の(L+1)個の値をウィンドウに蓄積しておくだけでよい。従って、範囲(v max−v min)と、従ってkの値とは、送られた最後の(L+1)個の値のみに依存する。
【0048】
RFC2508とは逆に、コンプレッサ−デコンプレッサ・シーケンス番号を使用する必要はない。その代わりに、RTPシーケンス番号がVLEを用いて符号化される。デコンプレッサは、自分が受け取ったRTP SNをコンプレッサに送ることによってVLEアプリケーションに記載されているように図3及び4に示されているようなパケットを受け取ったことを通知する。
【0049】
最上の受取通知について後述するように、デコンプレッサは圧縮されていないRTP SN値を戻す必要はない。
【0050】
次の例は、RFC2508に記載されているRTP SN圧縮についての本発明の働きを示す。コンプレッサに、そのSN(sequence number(シーケンス番号))が:32、33、35、36、39、40、38、41である到来するパケットの系列が供給される。そのシーケンス番号が35であるパケットについてデコンプレッサが受取を通知したと仮定すると、コンプレッサは,受取が通知された最後のパケットから送信された上記のシーケンス番号のウィンドを維持する。受取通知が受信されたとき、コンプレッサのウィンドウは35、36、39、40、38、41である。今、SN値43を有する新しいSN値がコンプレッサに到来すると仮定する。コンプレッサはそのウィンドウ最大値を探し、41を発見する。コンプレッサはウィンドウ最小値であるを探し、35を発見する。コンプレッサは、到来した値の、その上限(43−41=2)及び下限(43−35=8)までの距離rを計算する。最大距離は8である。コンプレッサは、整数がlog 2 r+1より大きくなるように数個のビットkを送らなければならず、この例では k は17より大きい。この数k = 5である。43は2進数形式では101011と書かれるので、コンプレッサは5個のLSB、即ち01011,を送る。デコンプレッサ基準値は、デコンプレッサにより解凍された最後の値であり、それは確かにコンプレッサ・ウィンドウ内の値のうちの1つである。デコンプレッサは、その5個のLSBが01011であって基準値に最も近い値を戻すことによって、到来した(01011)を解凍する。基準値が何であっても、この値は常に43である。例えば、デコンプレッサにより受信される最後の値が、それが圧縮されている値を受け取るときに40であると仮定すると(即ちコンプレッサとデコンプレッサとの間のリンクで38と41とが失われた)、デコンプレッサにより使用されるサーチ間隔は[25, 56]或いは2進形式で[011001, 111000]である。その最後のLSBが01011である該間隔内の唯一の値は101011,即ち43である。
【0051】
デコンプレッサがkの値を選び取るもう一つの方法は、40に最も近い、そのLSBが01011である値を選ぶことである。数40は2進形式では101000である。その最後のLSBが01011である101000に最も近い値は01011,即ち43である。このことは、コンプレッサ−デコンプレッサ・リンクにおける喪失がどの様であっても、VLEが正しい解凍を与える送られるべきLSBビットの最小の又は減少された数の決定を許すということを例証する。
【0052】
図5及び6は、VLE符号化されるべき現在の値が、同じLSBを持っていてウィンドウ内の最大値又は最小値に最も近い値の中にあるようにkの値を選ぶことを示している。図5は、vがv maxより大きい場合を示し、図6はvがv minより小さい場合を示している。
【0053】
RTPタイム・スタンプ又はIP−IDフィールドが送られるパケットでは、これらのフィールドは、送信されたパケットの、SN符号化に使用されるとの同じウィンドウを使用して符号化される。従って、デコンプレッサは、これらのフィールドを、その受取通知をするために、逆/フィードバック・チャネルで送り返さない。ウィンドウは、ベクトル(SN、TS、IP−ID)のウィンドウと見なされても良い。与えられたベクトルの受取通知は、SNフィールドだけを戻すことによって行われることができる。
【0054】
1実施態様は、SN、TS及びIP−IDを、これらのフィールドが送られなければならない時、送るために受取通知の枠組みに基づいてヘッダ圧縮を行う。他の符号化をTS及びIP−IDのために使用することができる。このヘッダ圧縮方式を以下において要約する。
【0055】
受取通知を使用するFO及びSO状態への移行
新しいセッションが始まるとき、コンプレッサは、少なくとも1つのFHパケットが受信されたことを示す受取通知(ACK)をデコンプレッサから受け取るまで、FH状態で動作する。コンプレッサがFH状態からFO状態へ移行し得るように、FHパケットの受取通知を、それがそれを受け取ったら直ちに出すことは、デコンプレッサの責務である。受取通知は、デコンプレッサにより解凍された圧縮されている現在の値又は圧縮されていない現在の値を含むことができる。いずれの量も、コンプレッサが圧縮の状態を更新して古い値を捨て始めることを許す。
【0056】
FO状態では、コンプレッサはFOパケットを送信し、デコンプレッサは受信したFOパケット(必ずしも全てのFOパケットではない)について受取通知を出すと想定される。デコンプレッサがFODを確立し、そのFODが送信される現在のヘッダと最後に送られたヘッダとの間のFODと同じであるとコンプレッサが決定したならば、コンプレッサはSO状態に進んでSOパケットを送り始める。
【0057】
上で論じた理由により、コンプレッサはSO状態からFO状態に戻らなければならないかも知れない。しかし、コンプレッサは、システムのクラッシュの故にデコンプレッサがそのコンテキストを失うなどの例外的事象が発生しなければ、FH状態には決して戻らない。コンプレッサがFO状態であるときには、それは前述したようにSO状態へ進もうとする。
【0058】
2000年3月28日に出願された、“パケットを送信し受信する方法及びシステム”という題された出願第09/536,639号において適当なパケットの種類が開示されている。
【0059】
固定長符号化(Fixed Length Encoding(FLE))及び片側可変長符号化(One Sided Variable Length Encoding(OVLE)と称されるVLEの2つの変化形を下で説明する。
【0060】
固定長符号化(FLE)
範囲r = (v max − v min)が上限を決して越えないことが確かに知られているならば、固定長符号化を使用することができる。この範囲を包含するために必要な最少数のビットである同じ数のビットで全ての値が符号化される。長さは、この場合には既知の定数であると仮定されているので、送信されなくても良い。
【0061】
片側可変長符号化(OVLE)
前述したVLEは、基準値v refにマッピングする関数とサーチ間隔[ ref− k-1 , v ref+ k-1 ]を戻すビット数kとに基づいている。これは、1つの値から次の値への任意の変化(正、負)に配慮するので、非常に普遍的で融通がきく。しかし、この間隔は、単調なフィールドに使用されるときには最も効率が良いというわけではない。実際には、デコンプレッサは部分集合[ ref, v ref+ k-1 ]の中の値だけを選び取る。
【0062】
RTPヘッダ圧縮の場合には、フィールドは普通は増大する順にコンプレッサに到達する。しかし、コンプレッサからの誤配列ストリームがあり得、またタイム・スタンプの場合には符号器は符号化されているフレームをそれらがサンプリングされた順に配達しないかも知れないので、例外がある。効率を高めるために、v refを中心としない、例えば間隔[ ref− k-2 , v ref+3* k-2 ]などのサーチ間隔を戻す関数は使用に値する。
【0063】
VLEが適応ヘッダ圧縮アプリケーションの一部分として使用されるときには、与えられたkについて最も効率の良い間隔[ ref, v_ref+ k ]を使用することが可能である。これは、片側可変長符号化(OVLE)と称される。コンプレッサ到来値が増大し続けている限りは、FOパケットのためにはVLEが使用され、SOパケットのためにはOVLEが使用される。コンプレッサの前でパケットの誤配列が生じた場合には、コンプレッサは常に該パケットをFOパケットとして圧縮する。或いは、コンプレッサは、誤配列が発生してもSO状態にとどまるためにパケットを配列し直し且つ/又はパケットを落とすことができる。
【0064】
圧縮されているデータの可変長符号化(VLE)及び片側VLE(OVLE)のための最適の受取通知アルゴリズム
総体的圧縮効率を高めるために、デコンプレッサによりコンプレッサへ送られる受取通知のサイズを最小限に保つことが望ましい。ここで論じるアルゴリズムでは、デコンプレッサは、それが圧縮されているメッセージで受け取ったのと同数のビット(或いは、後述するように多くてももう2つのビット)を受取通知で送るだけでよい。
【0065】
VLE及びOVLEに関して記述したように、コンプレッサは値VSWの滑りウィンドウを維持すると共に、最初の圧縮されていない値の各々をデコンプレッサへの伝送後にVSWに蓄積する。
VSW: v 1 , v 2 , v 3 , ... v i , ... v n
(注: 1 は最も古い値であり、 n は最新のである)
【0066】
事例1:単一符号化方法
唯一の符号化方法が使用され(VLE又はOVLE)、コンプレッサ及びデコンプレッサの両方がどれが使用されているかを知っていると仮定する。デコンプレッサが圧縮されている値を首尾良く受信してそれについて受取通知を出すと決定したとき、それは単に受信した圧縮されている値を受取通知にコピーしてそれをコンプレッサに送り戻す。
【0067】
コンプレッサは、受取通知メッセージを受信したとき、次の3つのステップで該受取通知を処理する:
1) VSWの 1 (最も古い値)を基準値として使用し、デコンプレッサと同じ規則に従って受取通知内の圧縮されている値を解凍する。解凍された値はv ackedとして特定される。
2) v ackedの最初の(最も古い)発生について、VSWを頭(最旧)から尾(最新)まで探索する。
3) v ackedに先立つ(より古い)全ての値を削除する。
【0068】
上記のアルゴリズムはVSWの次の特性を遵守することにより働くということを示すことができる:
− もしHSW内のv1がコンプレッサによりkビットを使用して送られたならば、それは、基準値と同じkビットを用い且ついずれかの i (j≦i)を用いて正しく解凍されることができる。
【0069】
具体的には、VSW内のどの値を解凍するためにも 1 を基準値として使用することができる。受取通知は常にVSW内の値のうちの1つについての受取を通知するものであるという事実と相まって、ステップ1)で得られたv ackedは実際に受取通知メッセージをトリガーした正しい最初の値であると結論される。
【0070】
事例2:複数の符号化方法
この場合、デコンプレッサは符号化方法をVLE及びOVLEの間で動的に切り換える。この事例を取り扱うためには前述したアルゴリズムを僅かに変更するだけでよい。基本的には、各受取通知メッセージにおいて、デコンプレッサは、受信された値を圧縮するためにどの符号化方法が使用されたか示すためにフラグを付け加えなければならない。従って、コンプレッサは、受取通知メッセージを受け取ったとき、該受取通知中の符号化フラグに基づいて正しい解凍方法を選ぶことができる。VSWの特性が適用され得る限りは、前のセクションのと同じ理由に基づいて、修正されたアルゴリズムは正しい。
【0071】
VLE及び/又はOVLEがヘッダ圧縮に適用されるときにも、コンプレッサからデコンプレッサへ送られる圧縮されているヘッダで符号化フラグを明示的に伝える必要はないが、その理由は、デコンプレッサはヘッダの種類と他の構成情報とに基づいてその情報を暗示的に得ることができることにある。しかし、逆方向には、該フラグは受取通知メッセージで明示的に伝えられなければならない。最悪の場合には、3つの可能なもの:VLE、プラス側OVLE(plus−sided OVLE)、マイナス側OVLE(minus−side OVLE)を区別するために2ビットが必要である。OVLEの側情報が予め定められるならば、符号化フラグを1ビットに縮小することができる。
【0072】
VSWにおける対になった値
上で論じられていない特別の場合が1つある。コンプレッサの滑りウィンドウで同じ(最初の圧縮されていない)値が2つ以上発生することがある。このことは次の2つの理由から考察されなければならない:1)理論上、該アルゴリズムは包括的で如何なる値のシーケンスにも働くべきである;2)実際には、或るビデオ符号のためのRTPタイム・スタンプはこの挙動を有する。
【0073】
計算された値v ackedが依然として正しくても、VSWでのv ackedのどの発生が(複数の発生が発見されたならば)実際にACKをトリガーしたのかコンプレッサが決定できないということが問題である。
【0074】
しかし、コンプレッサは常にVSWにおけるv ackedの最初の(最も古い)発生を選ぶので、アルゴリズムは働くことに留意するべきである。もしそれが受取通知をトリガーした正しい事実でなければ、唯一の副作用は、削除されるべきであるよりも少ない値がVSWから削除されるということである。その結果として、その後に到達する新しい値は必要であるよりも多いビットを用いて符号化されていることがある。
【0075】
値の重複がまれにしか発生しなければ、前述したアルゴリズムを修正する必要はないが、その理由は、VSWデータで1回だけ発生する値についての受取を通知するもう一つの(曖昧でない)受取通知が到着したならば直ちにコンプレッサはその最適より劣る状態から抜け出させられることにある。
【0076】
重複する値が頻繁に発生すると予期されるならば、受取通知の曖昧さを除去するために余分の情報を付け加えることができる。1例は、世代番号(GN)を各々の圧縮されている値に割り当て、そのGNを受取通知に入れるようにデコンプレッサに要求することである。
【0077】
本発明をその好ましい実施態様を参照して説明したが、その範囲から逸脱せずにそれに多数の修正を加えることができることが理解されるべきである。その様な修正は全て添付されている請求項の範囲に属する。
【図面の簡単な説明】
【図1】
情報の圧縮を概念的に示す。
【図2】
情報の解凍を概念的に示す。
【図3】
本発明に従って受取通知を用いて、より多いビット数を有するヘッダの送信からより少ないビット数へのコンプレッサの移行を示す。
【図4】
本発明に従う1次圧縮のヘッダの送信から2次圧縮のヘッダへのコンプレッサの移行を示す。
【図5】
本発明に従う最小ビット数kの選択の例を示す。
【図6】
本発明に従う最小ビット数kの選択の例を示す。
【図7A】
本発明に従ってコンプレッサにより蓄積される値の滑りウィンドウの使用を示す。
【図7B】
本発明に従ってコンプレッサにより蓄積される値の滑りウィンドウの使用を示す。
【図8】
本発明に従って圧縮されている値を送信するために2つの符号化フィールドを使用するVLE符号化フォーマットの例を示す。
[Document name] statement
Title: Variable length coding of compressed data
[Claim of claim]
    [Claim 1] Method of compressing or decompressing packet headerAnd this way is:
  A sequence of at least one previous valueTheMaintaining in the compressor, each previous value having different k least significant bitsToTransmitted to the compressor;
  Using any value in the series of previous values as a reference value, the decompressorPresentCurrent valueSolutionMake it possible to freezeBTheNumber ofDetermining the value of k representing
  CurrentvalueThe,From the compressor to the decompressor, With the k least significant bits of the current valueIncluding sending in compressed form,
  The value of k is determined by comparing the current value with at least one previous value to determine the largest difference r between the current value and the at least one previous value, where k is the log 2 (R) A method characterized in that it is an integer selected to be the smallest integer greater than +1.
    [Claim 2The decompressor sends at least one receipt notification to the compressor indicating that the decompressor has decompressed a value, the compressor is configured to discard at least one older previous value and at least one previous value. Updating the sequence.1The method described in.
    [Claim 3] The method further comprises decompressing the current value with the reference value of the last value of the series of at least one previous value in the decompressor, the current value beingA value with the k least significant bits identical to the k least significant bits of the current valueAnd the value closest to the reference valueThawed asRukoAnd 1).Or 2The method described in.
    [Claim 4A search interval is used in the decompressor which comprises values ranging from below the reference value to above the reference value;
  From the value within the search intervalSaidThe method according to claim 1, further comprising selecting a value having the same k least significant bits.3The method described in.
    [Claim 5The value is a reference value v ref and the number of bits k at least one previous value of the sequence and the currentvalueAnd made from mapping to;
  The system according to claim 1, characterized in that said sequence of at least one previous value is updated to have the oldest transmitted value that has been acknowledged as decompressed by said decompressor as the oldest value. Method described.
    [Claim 611. The method of claim 1 wherein said value is a function of a reference value and a number of bits k.
    [Claim 7The function is[v ref-2k-1, V ref + 2k-1A claim characterized in that6The method described in.
    [Claim 8The function is[v ref, v ref + 2kA claim characterized in that6The method described in.
    [Claim 9At least one such notification of receipt, PressureClaim: characterized in that the value is not shrunk2The method described in.
    [Claim 10At least one such notification of receipt, PressureA claim characterized in that it is a contracted value2The method described in.
    [Claim 11The at least one acknowledgment comprises information used to encode a portion of the value being compressed.PressureA claim characterized in that it is a contracted value10The method described in.
    [Claim 12A method according to claim 11, characterized in that at least one said acknowledgment comprises the oldest value in said series of previous values.9Or10The method described in.
    [Claim 13The sequence of previous values discards older previous values based on the estimated maximum number of values that may be lost during transmission of the sequence of values between the compressor and the decompressor. The method according to claim 1, characterized in that it is updated.
    [Claim 14.11. A method according to claim 1, wherein the current value being compressed encodes a number k sent with the current value.
    [Claim 15The invention is characterized in that the coding is Huffman coding.14The method described in.
    [Claim 16The method of claim 1, wherein said value comprises an RTP header.
    [Claim 17A claim in which at least one said acknowledgment is an acknowledgment of an RTP SN header representing an acknowledgment of an TS of an RTP header and an IP-ID.13The method described in.
    [Claim 18] Compress or decompress packet headerAnd the system:
  A compressor maintaining a sequence of at least one previous value each having a different k least significant bits;
  kCurrent compressed to the least significant bitsvalueAnd a decompressor for receiving from the compressor;
  The compressor uses the current value of the decompressor using any value in the series of at least one previous value as a reference.Solve the valueMake it possible to freezeBTheNumber ofDetermine the value of k that representsTo be
  The value of k is determined by comparing the current value to at least one previous value to determine the maximum difference between the current value and at least one previous value, where k is log 2 (R) A system characterized in that it is an integer selected to be the smallest integer greater than +1.
    [Claim 19The decompressor sends at least one acknowledgment to the compressor indicating that the decompressor has decompressed a value, and the compressor discards the series of at least one previous value to discard older previous values. Claims to update18The system described in.
    [Claim 20The decompressor isThe current value is decompressed in the decompressor using the reference value of the last value of the series of at least one previous value, the current value beingA value with the k least significant bits identical to the k least significant bits of the current valueCan be extracted as the closest value to the reference value.Claims characterized by18 or 19The system described in.
    [Claim 21A search interval is used wherein the decompressor extends from below the reference value to above the reference value; from values within the search intervalSaidThe method according to claim 1, further comprising selecting a value having the same k least significant bits.20The system described in.
    [Claim 22The compressor has a reference value v ref and the number of bits k at least one previous value of the sequence and the currentvalueCreate the value from the mapping to; and the sequence of at least one previous value is updated to have the oldest transmitted value that has been acknowledged as decompressed by the decompressor as the oldest value Claim being characterized18The system described in.
    [23]   The system of claim 22, wherein the value is a function of a reference value and a number of bits k.
    [Claim 24The function is[v ref-2k-1, V ref + 2k-1A claim characterized in that23The system described in.
    [Claim 25The function is[v ref, v ref + 2kA claim characterized in that23The system described in.
    [Claim 26Notice of receiptIs pressureClaim: characterized in that the value is not shrunk19The system described in.
    [Claim 27] At least one such notification of receiptIs pressureA claim characterized in that it is a contracted value19The system described in.
    [Claim 28The at least one acknowledgment includes information used to encode a portion of the value being compressed.PressureA claim characterized in that it is a contracted value27The system described in.
    [Claim 29The series of at least one previous value is based on an estimated maximum number of values that may be lost during transmission of the series of values between the compressor and the decompressor. The invention is characterized in that it is updated by the compressor to discard old previous values.18The system described in.
    [Claim 30; Current compressedvalueClaims that it encodes the number k to be transmitted with its current value.18The system described in.
    [Claim 31The invention is characterized in that the value comprises an RTP header.18The system described in.
    [Claim 32A claim in which at least one said acknowledgment is an acknowledgment of an RTP SN header representing an acknowledgment of an TS of an RTP header and an IP-ID.19The system described in.
    [Claim 33] Method of compressing or decompressing packet headerAnd this way is:
  Maintaining at the compressor a sequence of at least one previous value, each previous value having different k least significant bits and being sent to the decompressor;
  The current value in the decompressor using any value in the series of previous values as a reference valueSolve the valueDetermining the value of k, which represents the reduced number of bits that make it possible to freeze;
  CurrentvalueThe,From the compressor to the decompressor, With the k least significant bits of the current valueA method characterized in that it comprises sending in a compressed form.
Detailed Description of the Invention
    [0001]
(Cross-reference to related applications)
  This application claims the filing date of US Provisional Application No. 60 / 164,330, filed Nov. 9, 1999, entitled "Variable Length Coding of Compressed Data".
    [0002]
  Reference is made to US patent application Ser. No. 09 / 522,497, filed Mar. 9, 2000, entitled “Efficient Handoff Procedure for Header Compression,” which is assigned to the assignee of the present application. It is assigned and incorporated by reference in its entirety.
    [0003]
  Reference is also made to US patent application Ser. No. 09 / 536,639, filed Mar. 28, 2000, entitled “Method and System for Sending and Receiving Packets,” which application is incorporated herein by reference. It is assigned to the person and is incorporated in its entirety by reference.
    [0004]
(Technical field)
  The present invention relates to high efficiency data compression including packet header compression.
    [0005]
(Description of the prior art)
  There are many areas where it is important to be able to compress a series of values in an efficient and error-prone manner. One example is IP / UDP / RTP header compression that carries real-time IP-based multimedia traffic over cellular networks. Due to the large size of IP / UDP / RTP headers and the limited bandwidth of cellular systems, compression efficiency is absolutely necessary. Due to the error prone nature of the cellular link, it is also necessary to be resilient.
    [0006]
  RTP header compression, described in the Internet Engineering Task Force (IETF), RFC 2508, February 1999, achieves high compression efficiency with a lossless compressor-decompressor link. It can compress most of the header to as little as 2 bytes. However, this configuration is not robust to errors. The problems encountered are error propagation and increased compressed header size. Error propagation is here not only that if the header being compressed is hit by an error, then this compressed header will not only be undecipherable, but the subsequent compressed headers will also Point to the fact that even if there are no errors in, it will probably be undecipherable. The increased compressed header size here refers to the fact that, due to the error recovery procedure, the compressed header on a lossy link is larger than the top 2 bytes achieved on a lossless link . The limitations of RFC 2508 are discussed below.
    [0007]
  In the header compression method, certain information fields carried in the header are: 2.) not changed (here referred to as 'type 1' header field), or 2.) Take advantage of the fact that it changes in a fairly predictable manner (herein referred to as the 'type 2' header field). The other fields, called 'type 3' header fields, change in a way that can not be faithfully predicted.
    [0008]
  Examples of type 1 header fields are IP address, UDP port number, RTP SSRC (synchronization source), etc. These fields need only be sent once to the receiver / decompressor in the course of a session (e.g. as part of a packet transferred at session probability).
    [0009]
  Examples of type 2 header fields are RTP time stamp, RTP sequence number, and IP ID fields. All tend to increase from packet to packet by a fixed amount. Thus, it is not necessary to transmit these values in every header. All that is required is to signal the decompressor with a constant increment (difference) value, referred to as a delta in RFC 2508. When decompressing the first header, the decompressor utilizes these deltas to regenerate the latest type field. In other words, differential encoding is used to compress type 2 header fields.
    [0010]
  The IP-ID field for most IP stack implementations increases by a fixed amount for all packets sent from the source. Thus, unless the RTP stream packet is interleaved with other packets from the same source in the compressor-decompressor (CD) -channel, the IP-ID delta is constant and does not need to be sent.
    [0011]
  An example of a type 3 header field is RTP M-bit (marker), which indicates the occurrence of some boundary (e.g. the end of a video frame) on the medium. Since the medium usually changes unpredictably, this information can not be predicted correctly.
    [0012]
  The above constraints of the header compression scheme derive from the delta coding used for type 2 fields. Because of the differential encoding, if one compressed header is lost, the subsequent compressed headers become undecipherable, because they recurse from the undecryptable compressed headers. To be predicted. This is what we call error propagation.
    [0013]
  The algorithm used to recover from error propagation is known as the "twice" algorithm, which can be used if the packet UDP checksum is transmitted in a compressed packet . The compressed packets on the CD-link carry a 4-bit sequence number, which is increased by one for each compressed packet sent by the compressor. The decompressor uses this sequence number to detect the loss of compressed packets on the link. If the sequence number has increased by more than one, then the decompressor assumes that all compressed packet deltas have not changed from the last compressed packet delta, one for each lost packet. Add two deltas. The decompressor then determines if the hypothesis is valid by calculating the decompressed packet UDP checksum and checking if it matches the transmitted UDP checksum.
    [0014]
  The Twice algorithm is too restrictive. First, it requires sending a checksum (2 bytes) on every compressed packet, thus significantly reducing compression efficiency. Second, for a typical audio stream, the Twice algorithm works only if there is no TS or IP-ID jump from the last decompressed packet.
    [0015]
  When the decompressor can not decompress the packet, it sends a negative acknowledgment Nack to the compressor. Upon receipt of the Nack, the compressor must send an uncompressed header field. Because the field must be sent uncompressed, the Nack mechanism results in an audio or video outage of at least one transmission delay duration and a reduction in compression efficiency.
    [0016]
  To limit error propagation, the compressor can use a refresh mechanism that periodically sends uncompressed fields that are not required by the decompressor. However, such a mechanism further reduces the compression efficiency.
    [0017]
  Another limitation of RFC 2508 is the short sequence number of the header being compressed. When the decompressor receives a header with a sequence number that is not consecutive to the previous sequence number, a packet loss is detected and a recovery mechanism is used to resynchronize the compressor and the decompressor. Simply using short sequence numbers is not robust to error prone links, such as radios where 'long losses' may occur frequently. A long loss is defined as a loss of 'sequence cycle' or more in low. When a long loss occurs, the sequence number in the packet received by the decompressor 'wrap'. For example, the sequence number consists of k bits, so the sequence cycle is2 k Be equal to At low2 k If the packet is lost, the decompressor can not detect the loss of the packet because it still looks at the consecutive sequence numbers in the incoming packet.
    [0018]
(Disclosure of the Invention)
  The present invention is a robust and efficient coding scheme, referred to in one embodiment as VLE (variable length encoding). The VLE and other embodiments of the present invention solve error propagation and efficiency degradation of the prior art.
    [0019]
  The invention is based, in part, on the observation that the header type 2 fields received at compression points show a tendency to increase. This implies that fields from successive headers have the same MSB (most significant bit) and differ by their LSB (least significant bit). Thus, compression can be achieved by transmitting only the LSB.
    [0020]
  The present invention allows the compressor to determine the minimum number of LSBs to be sent that is sufficient to allow correct decompression whatever the loss of the previous compressed packet on the CD link Make it
    [0021]
  The invention can be applied to any sequence of values. The denser the values (i.e. closer to each other), the higher the efficiency.
    [0022]
  The method of compressing the present value into the minimum or reduced number of bits transmitted from the compressor to the decompressor according to the present invention is transmitted to the decompressor with k different least significant bits each At least one previous sequence of values may be maintained at the compressor and successfully decompressed the current value at the decompressor using any value in the previous sequence of values as a reference Determine the value of k representing the least or reduced number of bits to be compressed; the current value being compressed from the compressor to the decompressor with the k least significant bits of the current value. Including transmitting. The value of k can be determined by comparing the current value to the previous value to determine the maximum difference r between the current value and the previous value, where k islog 2 (R) +1It is chosen to be a larger minimum integer. The decompressor may send at least one acknowledgment to the compressor indicating that the decompressor has decompressed a value, the compressor updating the sequence of at least one previous value to generate at least an older one. You can discard one previous value. The decompressor may be configured to receive the sequence of at least one previous value to be decompressed as a value having the same k least significant bits as the k least significant bits of the received current value closest to the reference value. Together with the reference value of the last value of? ? ? ? ? ? The current value of the above can be decompressed. The decompressor may use a search interval that includes values ranging from below to above the reference value; selecting among the values in the search interval a value having the same k least significant bits can do. Reference value v A value can be made from mapping ref and bit number k to a sequence of at least one previous value and a current value; at least one previous value sequence being decompressed by the decompressor It can be updated to have the oldest transmitted value that has been acknowledged as the oldest value. The value may be a function of the reference value and the number of bits k. The function is[v ref-2 k-1 , V ref +2 k-1 ] May be. The function is[v ref, v ref +2 k ] May be. The at least one acknowledgment may be a received uncompressed value or a compressed value. The at least one acknowledgment may be a received compressed value that includes information used to encode a portion of the value being compressed. The at least one receipt may comprise the oldest value in the series of at least one previous value. Update at least one previous series of values based on the estimated maximum number of values that may be lost during transmission of the series of values between the compressor and the decompressor It can be thrown away. The current value being compressed may encode the number k to be transmitted along with the current value. The coding may be Huffman coding. The value can include an RTP header. The at least one acknowledgment may be an acknowledgment of the RTP of the RTP header, which represents the TS of the RTP header and the acknowledgment of the IP-ID.
    [0023]
  A system for compressing a current value into a minimum or reduced number of bits in accordance with the present invention comprises a compressor that maintains a sequence of at least one previous value each having a different k least significant bits; And a decompressor for receiving the current value compressed to the k least significant bits or the reduced number of k; said compressor comprising any value in said sequence of at least one previous value. Determine the value of k that represents the least number of bits that allows the current value to be successfully decompressed using as a reference. The value of k can be determined by comparing the current value to at least one previous value to determine the maximum difference r between the current value and the at least one previous value, k beinglog 2 (R) +1It is chosen to be a larger minimum integer. The decompressor may send at least one acknowledgment to the compressor indicating that the decompressor has decompressed a value, the compressor may update the sequence of at least one previous value to at least one older one. You can discard the previous value. The decompressor may be configured to generate a sequence of at least one previous value to be decompressed as a value having the same k least significant bits as the k least significant bits of the received current value closest to the reference value. The current value may be decompressed by the decompressor together with the last value reference value. The decompressor can use a search interval ranging from below to above the reference value; it can select the value with the same k least significant bits from the values in the search interval. . Reference value v A value can be made from mapping ref and bit number k to a sequence of at least one previous value and a current value; at least one previous value sequence being decompressed by the decompressor It can be updated to have the oldest transmitted value that has been acknowledged as the oldest value. the function is[v ref-2 k-1 , V ref +2 k-1 ]. The function is[v ref, v ref +2 k ] May be. The acknowledgment may be the received uncompressed value. The at least one acknowledgment may be the received compressed value. The at least one acknowledgment may be a received compressed value that includes information used to encode a portion of the value being compressed. At least one previous sequence of values is updated by the compressor based on the estimated maximum number of values that may be lost during transmission of the sequence of values between the compressor and the decompressor to at least one of the at least one previous sequence of values. You can discard the old previous value. The current value being compressed may encode the number k to be transmitted along with the current value. The value can include an RTP header. The at least one acknowledgment may be an acknowledgment of the RTP of the RTP header, which represents the TS of the RTP header and the acknowledgment of the IP-ID.
    [0024]
(Best mode for carrying out the invention)
Basic concept and rules
  FIG. 1 conceptually illustrates compression information and an example thereof. A compression context is a set of information, a subset or symbolizes a subset, which is a header that has been compressed without limitation, and is an illustration as an input to a compression algorithm to make good compressed information. It may be any type of information without limitation, including the headers used by the compressors shown in 3 and 4. The other input is from a source of information to be compressed, illustrated as a header to be compressed without limitation.
    [0025]
  FIG. 2 conceptually illustrates decompression of information and an example thereof. The decompression context information is a set of information, a subset or symbolizes a subset, which is a header that has been uncompressed without limitation, as an input to the decompression algorithm to create good decompressed information It may be any type of information without limitation, including the headers used by decompression shown in FIGS. 3 and 4. The other input is from the information to be extracted illustrated as a header to be extracted without limitation.
    [0026]
  Both compression context information and decompression context information are dynamic, ie, they can be updated by the compressor and decompressor respectively. The frequency of updating depends on the header compression mechanism. Events that may result in updating of compression context information at the compressor include compression of the incoming header, or receipt of feedback from the decompressor. Events that may result in the update of decompression context information in the decompressor include decompression of the incoming header. The compressor has three states:
-FH (Full Header) status
・ FO (First Order) state
・ SO (Second Order) state
Can be one of
    [0027]
  The compressor operates in the FH state at the initialization stage. In the FH state, the compressor sends a complete RTP header. This condition is usually a temporary condition that occurs at the beginning of an RTP session or in the middle of a session, for example due to a very exceptional event such as a compressor becoming nonfunctional or losing memory.
    [0028]
  The compressor operates in the FO state at the updating stage. In the FO state, the transmitting device sends a FO header, ie a packet carrying the changing field as compared to the reference header as well as the sequence number, which header is properly encoded. The decompressor is expected to acknowledge for a certain number of FOs, as shown in FIGS. 3 and 4, the number depending on the pattern. For example, if the pattern is linear with certain parameters, then the transition to extrapolation requires only a single acknowledgment.
    [0029]
  The compressor operates in the SO state in the extrapolation stage. In this state, the transmitter sends an SO packet, ie a packet whose header is essentially just the sequence number. The decompressor may or may not issue an acknowledgment for a correctly received SO packet.
    [0030]
  Although one mathematical function used in VLE is described as follows, it may be used with the present invention, but the present invention is not limited thereto. f (k, v ref) = (v 1, v 2,. . . . . , V2 k Such a function, denoted as) is an integer v called the reference value While mapping to ref, we map several bits k to an integer set of k with all k different LSBs.
    [0031]
  Although any such function may be appropriate, one preferred embodiment has continuous values v 1, v 2,. . . . . , V2 k Or v i = v Use only functions that return 1 + i-1. In other words, the function has intervals of values of length 2k. The interval is[v ref-C (k, v ref), v ref-C (k, v ref) +2 k Can be written, where C is k and v It is an integer value that is a function of ref. Although any such intervals are of interest, one preferred embodiment is C (k, v). ref) = 0 and C (k, v Use ref) = 2k-1. In other words, the embodiment is an interval[v ref-2 k-1 , V ref +2 k-1 ]When[v ref, v ref +2 k ] And use.
    [0032]
  [v ref-2 k-1 , V ref +2 k-1 The interval based VLE implementation is described as follows. The system consists of a compressor, a decompressor and the CD channel shown in FIGS. 3 and 4, ie the link between the compressor and the decompressor. The channel may be prone to errors. The assumptions in this embodiment are not limiting, but the compressed values are not reordered by the channel, and the compressed values provided as input to the decompressor are not falsified ( In other words, a forged header is treated as a lost header). The channel may be a simplex link, ie a link carrying only the compressed values from the decompressor, or a duplex link, ie the channel is as shown in FIGS. 3 and 4 Also carry feedback from the decompressor to the compressor. In the preferred embodiment, a duplex channel is used.
    [0033]
  The first stage is acquisition of the initial value by the decompressor. This can be done by sending an uncompressed value to the compressor at the start of communication or by any other suitable means. As shown in FIGS. 3 and 4, the decompressor can use the feedback channel to report that it has received a value. Initialization is complete, without limitation, when the compressor receives one feedback acknowledgment and compression can then be performed using VLE coding. In VLE, the value is compressed as a variable number of bits k. The operation of the decompressor in VLE mode is first discussed.
    [0034]
  7A and 7B illustrate the window update process. The window consists of previous values that may be input to the compressor and compressed but need not be compressed. The window is at the point of inclusionv i ,v i + 1 , _____,v n And:
(1) New valuev n + 1 When is compressed, the window is expanded to include this new value as shown in FIG. 7A.
(2) Then, when the compressors know that their values can no longer be used by the decompressor, that is the value in this examplev i + 2 May be when a notification of receipt forv i as well asv i + 1 By removing), the window is shrunk as shown in FIG. 7B.
    [0035]
Decompression:
  The reference value is the last value decompressed by the decompressor. Upon receipt of the acknowledgment as shown in FIGS. 3 and 4, the compressor is likely to have a value for a duration sufficient to allow at least one value to be statistically received without feedback from the decompressor. Decompression can be signaled under the assumption that real values have been received taking into account that a sequence of H.sup. The decompressor has an interval that matches the k bits for which its k LSBs were received[v ref-2 k-1 , V ref +2 k-1 Decompress the incoming compressed value by supplying the only value in]. This search interval is a special instance of the previously introduced function. The decompressed value is v It will be ref, which will be used to decompress the next incoming compressed value. In a preferred embodiment, the decompressor reports an acknowledgment for at least several packets being decompressed as shown in FIGS. The number of packets for which an acknowledgment has to be issued is completely flexible and is chosen to meet the specifications of the desired application. The more receipts sent from the decompressor to the compressor, the higher the compression efficiency at the forward link, as will be shown later.
    [0036]
compression:
  Reference is now made to the operation of the compressor. The compressor maintains a sliding window of values it has compressed and sent to the decompressor shown in FIGS. 7A and 7B. In one embodiment, the window holds the last value for which it received an acknowledgment from the decompressor and the next value sent, in the order in which they were sent to the decompressor. The compressor sets the sliding window maximum and minimum values v min and v Maintain max.
    [0037]
  When a new uncompressed value v arrives at the compressor, the compressor interval for i[v i-2 k-1 , V i +2 k-1 Send the k LSBs of v such that v is present in]. This is r <2 k Can be conveniently represented by -1, where r = max (| v-v max |, | v-v min |). Thus the compressorlog 2 (R) +1Choose k to be the larger minimum integer. When the compressor receives an acknowledgment, it removes from the sliding window all values sent prior to the acknowledgment as described above with reference to FIG. 7B.
    [0038]
  The following discussion explains why VLE is a very resilient mechanism that always provides correct decompression.
    [0039]
  As long as the compressor and decompressor obey the above rules, the correct decompression will occur whatever the loss in the CD channel between the compressor and the decompressor shown in FIGS. 3 and 4. In practice, the reference value v used by the decompressor ref is, for example, the point v in FIGS. 5 and 6 min and v As shown between max and an interval that is always in the window of the compressor, so the value being encoded is the search interval used by the decompressor[v ref-2 k-1 , V ref +2 k-1 It is known to be in].
    [0040]
  There is no error propagation in VLE. Compressed packets received by the decompressor can always be decompressed. Packet loss results in a progressive increase in the size of the packet being compressed.
    [0041]
  The more frequent the receipt notification, the smaller the value in the window, so it is likely that less LSB will have to be sent. This follows the increasing trend of the values to be compressed and vv for each new value v until an acknowledgment is received. This is especially true in the case of header compression where min is increased.
    [0042]
  The length of the value being compressed must be known to the decompressor. In some cases, this length can be known without additional signaling, eg, through framing information from the lower coding layer. If explicit signaling is required, the preferred embodiment defines the VLE format. The format is shown in FIG. 8 as two fields: a length field (i.e. the number of LSBs k) and a field of values being compressed (i.e. the k LSBs of the first value v) It can have.
    [0043]
  In the preferred embodiment, the VLE length field shown in FIG. 8 is itself encoded using Huffman coding. Any other coding method (e.g. linear coding) may be used. Different lengths of accuracy should be accessed for different applications, and then a Huffman coding algorithm should be used to encode these data if desired. The probability of encountering a given length in the communication link between the compressor and the decompressor knows the characteristics of the link (loss and delay), the decompressor acknowledgment period and the pattern of the initial value to be compressed Can be evaluated.
    [0044]
  Length field In order to further shorten the length of the field itself, the compressor can be forced to select the field length from a reduced set of values. For example, if you want to encode the next length with an uncompressed field of 32 bits and a decreasing order of 4 bits, 8 bits and 32 bits with a probability of up to 2 bits, the appropriate code A word is a single bit 0 for 4 bits, a 2-bit value 10 for 8 bits, and a 2-bit value 11 for 32 bits.
    [0045]
  Using proper coding minimizes the average size of the values being compressed.
    [0046]
  Furthermore, if the length can be obtained from other packet fields, the length information may not need a dedicated bit. For example, in a typical header compression application, packet type fields are sent in the compressed header. This packet type field can be used to implicitly indicate a default length that is rarely exceeded. In that case, if the default length is exceeded, another packet type is used. Because this is a rare occurrence, overhead is reduced overall.
    [0047]
  If there is no feedback channel, other (out-of-band) information or additional assumptions are needed to move the compressor's window forward to keep k from permanently increasing. One way is to assume that at most L consecutive compressed values may be lost along the channel from the compressor to the decompressor. In other words, the compressor will indeed know that at least one of the (L + 1) consecutive compressed values will reach the decompressor. Thus, the compressor need only accumulate the last (L + 1) values sent to the decompressor in the window. Therefore, the range (vmax-V min) and hence the value of k only depend on the last (L + 1) values sent.
    [0048]
  Contrary to RFC 2508, there is no need to use a compressor-decompressor sequence number. Instead, RTP sequence numbers are encoded using VLE. The decompressor signals that it has received a packet as shown in FIGS. 3 and 4 as described in the VLE application by sending the RTP SN it received to the compressor.
    [0049]
  The decompressor does not have to return the uncompressed RTP SN value, as described below for the top acknowledgments.
    [0050]
  The following example illustrates the operation of the present invention for RTP SN compression as described in RFC 2508. The compressor is supplied with a sequence of incoming packets whose SN (sequence number) is: 32, 33, 35, 36, 39, 40, 38, 41. Assuming that the decompressor has notified receipt of the packet whose sequence number is 35, the compressor maintains the window of the above-mentioned sequence number transmitted from the last packet notified of receipt. When a receipt notification is received, the compressor windows are 35, 36, 39, 40, 38, 41. Suppose now that a new SN value with SN value 43 arrives at the compressor. The compressor looks for that window maximum and finds 41. The compressor looks for a window minimum and finds 35. The compressor calculates the distance r of the incoming value to its upper limit (43-41 = 2) and lower limit (43-35 = 8). The maximum distance is eight. The compressor has an integerlog 2 r + 1Several bits k must be sent to be larger, in this example2 k Is greater than 17. This number k = 5. Since 43 is written 101011 in binary form, the compressor sends 5 LSBs, 01011 ,. The decompressor reference value is the last value decompressed by the decompressor, which is indeed one of the values in the compressor window. The decompressor decompresses the arriving (01011) by returning the value whose 5 LSB is 010111 and which is closest to the reference value. Whatever the reference value, this value is always 43. For example, assuming that the last value received by the decompressor is 40 when it receives the value being compressed (ie 38 and 41 were lost at the link between the compressor and the decompressor The search interval used by the decompressor is [25, 56] or [011001, 111000] in binary form. The only value in the interval whose last LSB is 010101 is 101011 or 43.
    [0051]
  Another way for the decompressor to pick the value of k is to pick the value closest to 40, whose LSB is 01011. The number 40 is 101000 in binary form. The closest value to 101000, the last LSB of which is 010101, is 01011, or 43. This illustrates that, whatever the loss in the compressor-decompressor link, the VLE allows the determination of a minimum or a reduced number of LSB bits to be sent which gives the correct decompression.
    [0052]
  Figures 5 and 6 show that the value of k is chosen such that the current value to be VLE encoded has the same LSB and is among the values closest to the maximum or minimum value in the window. There is. In FIG. 5, v is v 6 shows that v is greater than v The case where it is smaller than min is shown.
    [0053]
  For packets where RTP timestamps or IP-ID fields are sent, these fields are encoded using the same window of transmitted packets as used for SN encoding. Thus, the decompressor does not send back these fields on the reverse / feedback channel to acknowledge its receipt. The window may be regarded as a vector (SN, TS, IP-ID) window. The acknowledgment of a given vector can be done by returning only the SN field.
    [0054]
  One embodiment performs header compression based on the acknowledgment framework to send the SN, TS and IP-ID when these fields have to be sent. Other encodings can be used for TS and IP-ID. This header compression scheme is summarized below.
    [0055]
Transition to FO and SO states using receipt notification
  When a new session begins, the compressor operates in the FH state until it receives an acknowledgment (ACK) from the decompressor indicating that at least one FH packet has been received. It is the responsibility of the decompressor to issue an acknowledgment of receipt of the FH packet as soon as it is received, so that the compressor can transition from the FH state to the FO state. The receipt notification may include the compressed current value decompressed by the decompressor or the uncompressed current value. Either amount allows the compressor to update the state of compression and start throwing away old values.
    [0056]
  In the FO state, it is assumed that the compressor sends an FO packet and the decompressor issues an acknowledgment for the received FO packet (not necessarily all the FO packets). If the compressor determines that the decompressor has established the FOD and the FOD is the same as the FOD between the current header sent and the last header sent, the compressor goes to the SO state and the SO packet Start sending
    [0057]
  For the reasons discussed above, the compressor may have to return from the SO state to the FO state. However, the compressor never returns to the FH state unless an exceptional event occurs, such as the decompressor losing its context due to a system crash. When the compressor is in the FO state, it tries to go to the SO state as described above.
    [0058]
  A suitable packet type is disclosed in application Ser. No. 09 / 536,639, entitled “Method and System for Sending and Receiving Packets,” filed Mar. 28, 2000.
    [0059]
  Two variants of VLE called Fixed Length Encoding (FLE) and One Sided Variable Length Encoding (OVLE) are described below.
    [0060]
Fixed-length coding (FLE)
  Range r = (v max − v Fixed length coding can be used if it is known for sure that min) never exceeds the upper limit. All values are encoded with the same number of bits, which is the minimum number of bits required to cover this range. The length may not be sent as it is assumed to be a known constant in this case.
    [0061]
One-way variable length coding (OVLE)
  The VLE mentioned above is the reference value v Function to map to ref and search interval[v ref-2 k-1 , V ref +2 k-1 ] And based on the number of bits k. This is very universal and flexible as it takes into account any change (positive, negative) from one value to the next. However, this spacing is not the most efficient when used for monotonic fields. In fact, the decompressor is a subset[v ref, v ref +2 k-1 Select only the values in].
    [0062]
  In the case of RTP header compression, the fields typically arrive at the compressor in increasing order. There are exceptions, however, because there may be misaligned streams from the compressor and, in the case of time stamps, the encoder may not deliver the frames being coded in the order in which they were sampled. V to increase efficiency not centered on ref, eg spacing[v ref-2 k-2 , V ref + 3 *2 k-2 Functions that return search intervals, such as] are worthy of use.
    [0063]
  When the VLE is used as part of an adaptive header compression application, the most efficient spacing for a given k[v ref, v_ref +2 k It is possible to use]. This is referred to as one-way variable length coding (OVLE). As long as the compressor arrival value continues to increase, VLE is used for FO packets and OVLE is used for SO packets. The compressor always compresses the packet as an FO packet if a packet misorder occurs before the compressor. Alternatively, the compressor can reorder packets and / or drop packets to stay in the SO state despite misalignment.
    [0064]
Optimal acknowledgment algorithm for variable length coding (VLE) and one-sided VLE (OVLE) of data being compressed
  In order to increase the overall compression efficiency, it is desirable to keep the size of the receipt sent by the decompressor to the compressor to a minimum. In the algorithm discussed here, the decompressor need only send an acknowledgment on the same number of bits it received in the message being compressed (or at most two more bits as described below).
    [0065]
  As described for VLE and OVLE, the compressor maintains a sliding window of values VSW and accumulates each of the initial uncompressed values in VSW after transmission to the decompressor.
  VSW: v 1 , V 2 , V 3 ,. . . v i ,. . . v n
  (note:v 1 Is the oldest value,v n Is the latest)
    [0066]
Case 1: Single encoding method
  It is assumed that only one encoding method is used (VLE or OVLE) and both the compressor and the decompressor know which one is being used. When the decompressor decides to successfully receive the compressed value and issue an acknowledgment for it, it simply copies the received compressed value into an acknowledgment and sends it back to the compressor.
    [0067]
  When the compressor receives an acknowledgment message, it processes the acknowledgment in three steps:
    1) VSWv 1 Use (oldest value) as the reference value and decompress the compressed value in the acknowledgment according to the same rules as the decompressor. The decompressed value is v Identified as acked.
    2) v Search VSW from head (oldest) to tail (latest) for the first (oldest) occurrence of acked.
    3) v Delete all (older) values prior to acked.
    [0068]
  It can be shown that the above algorithm works by observing the following characteristics of VSW:
    -If v1 in HSW is sent by the compressor using k bits, it uses the same k bits as the reference value and eitherv i It can be thawed correctly using (j ≦ i).
    [0069]
  Specifically, to decompress any value in VSWv 1 Can be used as a reference value. The v obtained in step 1) combined with the fact that the notification of receipt always notifies receipt of one of the values in VSW It is concluded that acked is actually the correct first value that triggered the acknowledgment message.
    [0070]
Case 2: Multiple encoding methods
  In this case, the decompressor switches the encoding method dynamically between VLE and OVLE. It is only necessary to make minor changes to the algorithm described above to handle this case. Basically, in each acknowledgment message, the decompressor has to be flagged to indicate which encoding method was used to compress the received value. Thus, when the compressor receives an acknowledgment message, it can select the correct decompression method based on the encoding flag in the acknowledgment. As long as the properties of VSW can be applied, the modified algorithm is correct, based on the same reasons as in the previous section.
    [0071]
  Even when VLE and / or OVLE are applied for header compression, it is not necessary to explicitly convey the encoding flag in the compressed header sent from the compressor to the decompressor, because the decompressor The information can be implicitly obtained based on the type of the information and other configuration information. However, in the reverse direction, the flag must be explicitly conveyed in the acknowledgment message. In the worst case, two bits are needed to distinguish three possible ones: VLE, plus-sided OVLE, minus-side OVLE. If OVLE side information is predetermined, the encoding flag can be reduced to one bit.
    [0072]
Paired values in VSW
  There is one special case that is not discussed above. Two or more of the same (first uncompressed) values may occur in the compressor sliding window. This has to be considered for two reasons: 1) in theory, the algorithm should be comprehensive and work on sequences of any value; 2) in fact, for a certain video code RTP timestamps have this behavior.
    [0073]
  Calculated value v Even with acked still correct in vSW v The problem is that the compressor can not determine which occurrence of acked actually triggered the ACK (if multiple occurrences were found).
    [0074]
  However, the compressor always It should be noted that the algorithm works as it chooses the first (oldest) occurrence of acked. If it is not the correct fact that triggered the receipt notification, the only side effect is that fewer values are deleted from the VSW than should be deleted. As a result, new values arriving thereafter may be encoded with more bits than necessary.
    [0075]
  It is not necessary to modify the algorithm described above if the value duplications occur only infrequently, but the reason is that another (not unambiguous) receipt of notification of receipt for the value occurring only once in the VSW data As soon as the notification has arrived, the compressor is to be taken out of its less than optimal state.
    [0076]
  If duplicate values are expected to occur frequently, extra information can be added to disambiguate the notification. One example is to assign a generation number (GN) to each compressed value and request the decompressor to put that GN in an acknowledgment.
    [0077]
  Although the invention has been described with reference to its preferred embodiments, it should be understood that numerous modifications can be made thereto without departing from its scope. All such modifications fall within the scope of the appended claims.
Brief Description of the Drawings
    [Fig. 1]
  Indicates conceptually the compression of information.
    [Fig. 2]
  Indicates conceptually the decompression of information.
    [Fig. 3]
  In accordance with the present invention, acknowledgments are used to indicate the transition of the compressor from sending a header with a higher number of bits to a lower number of bits.
    [Fig. 4]
  Fig. 7 shows the transition of the compressor from the transmission of the header of the primary compression according to the invention to the header of the secondary compression.
    [Fig. 5]
  Fig. 6 shows an example of the selection of the minimum number of bits k according to the invention.
    [Fig. 6]
  Fig. 6 shows an example of the selection of the minimum number of bits k according to the invention.
    [FIG. 7A]
  Fig. 6 illustrates the use of a sliding window of values stored by the compressor according to the invention.
    [FIG. 7B]
  Fig. 6 illustrates the use of a sliding window of values stored by the compressor according to the invention.
    [Fig. 8]
  Fig. 6 shows an example of a VLE coding format using two coding fields to transmit values which are compressed according to the invention.

Claims (34)

コンプレッサからデコンプレッサへ伝送するために現在の値を最少数のビットに圧縮する方法であって、この方法は:
少なくとも1つの前の値の系列を該コンプレッサにおいて維持することを含み、各々の前の値は異なるk個の最下位ビットを有すると共に該デコンプレッサへ伝送されており;
前の値の該系列中のいずれかの値を基準値として用いて該デコンプレッサにおいて該現在の値を首尾良く解凍することを可能にする最少数のビットを表すkの値を決定することを含み;
現在の該値を現在の該値のk個の最下位ビットと共に該コンプレッサから該デコンプレッサへ圧縮されている形で送ることを含むことを特徴とする方法。
A method of compressing the current value into a minimum number of bits for transmission from the compressor to the decompressor, which method is:
Maintaining at the compressor a sequence of at least one previous value, each previous value having a different k least significant bits and being transmitted to the decompressor;
Using any value in the series of previous values as a reference value to determine the value of k that represents the least number of bits that allows the current value to be successfully decompressed in the decompressor Inclusive;
A method comprising: sending the current value with the k least significant bits of the current value in a compressed form from the compressor to the decompressor.
kの値は、現在の値と少なくとも1つの前の値とを比較してその現在の値と少なくとも1つの前の値との最大の差rを決定することにより決定され、このkはlog2(r)+1より大きい最小の整数であるように選択される整数であることを特徴とする請求項1に記載の方法。The value of k is determined by comparing the current value with at least one previous value to determine the largest difference r between the current value and the at least one previous value, where k is log 2 ( The method of claim 1, wherein r) is an integer selected to be the smallest integer greater than +1. 該デコンプレッサは、該デコンプレッサが値を解凍したことを示す少なくとも1つの受取通知を該コンプレッサに送り、該コンプレッサは少なくとも1つのより古い前の値を捨てるために少なくとも1つの前の値の該系列を更新することを特徴とする請求項1または2に記載の方法。The decompressor sends at least one acknowledgment to the compressor indicating that the decompressor has decompressed a value, the compressor is configured to discard at least one previous previous value to discard the at least one previous value. Method according to claim 1 or 2, characterized in that the sequence is updated. 該基準値に最も近い受信された現在の値のk個の最下位ビットと同一のk個の最下位ビットを有する値として解凍されるべき少なくとも1つの前の値の該系列の最後の値の基準値で該デコンプレッサにおいて現在の該値を解凍することを更に含むことを特徴とする請求項1乃至3のいずれかに記載の方法。The last value of the sequence of at least one previous value to be decompressed as a value having the same k least significant bits as the k least significant bits of the received current value closest to the reference value 4. A method according to any one of the preceding claims, further comprising decompressing the current value in the decompressor at a reference value. 該基準値より下から該基準値の上にまで及ぶ値を含むサーチ間隔を該デコンプレッサにおいて使用し;
該サーチ間隔内の値から同一のk個の最下位ビットを有する値を選択することを更に含むことを特徴とする請求項4に記載の方法。
Using in the decompressor a search interval comprising a value ranging from below the reference value to above the reference value;
5. The method of claim 4, further comprising selecting from the values in the search interval a value having the same k least significant bits.
該値は、基準値v refとビット数kとを少なくとも1つの前の値の該系列と現在の該値とにマッピングすることから作られ;
少なくとも1つの前の値の該系列は、該デコンプレッサにより解凍されたと受取通知されている最も古い送信された値を最旧の値として有するように更新されることを特徴とする請求項1に記載の方法。
The value is a reference value v made from mapping ref and bit number k to the sequence of at least one previous value and the current value;
The system according to claim 1, characterized in that said sequence of at least one previous value is updated to have the oldest transmitted value that has been acknowledged as decompressed by said decompressor as the oldest value. Method described.
該値は、基準値とビット数kとの関数であることを特徴とする請求項1に記載の方法。The method according to claim 1, wherein the value is a function of a reference value and the number of bits k. 該関数は、]v ref−2k−1, v ref+2k−1]であることを特徴とする請求項1に記載の方法。The function is] v ref-2k-1, v A method according to claim 1, characterized in that it is ref + 2k-1]. 該関数は、]v ref, v ref+2k]であることを特徴とする請求項7に記載の方法。The function is] v ref, v A method according to claim 7, characterized in that: ref + 2k]. 少なくとも1つの該受取通知は、受信された圧縮されていない値であることを特徴とする請求項3に記載の方法。The method of claim 3, wherein the at least one acknowledgment is a received uncompressed value. 少なくとも1つの該受取通知は、受信された圧縮されている値であることを特徴とする請求項3に記載の方法。4. The method of claim 3, wherein the at least one acknowledgment is a received compressed value. 少なくとも1つの該受取通知は、圧縮されている該値の一部分を符号化するのに使用される情報を含んでいる受信された圧縮されている値であることを特徴とする請求項11に記載の方法。The at least one said acknowledgment is a received compressed value comprising information used to encode a portion of the value being compressed. the method of. 少なくとも1つの該受取通知は、前の値の該系列の中の最も古い値を包含することを特徴とする請求項10又は11に記載の方法。A method according to claim 10 or 11, characterized in that at least one of the acknowledgments comprises the oldest value in the series of previous values. 前の値の該系列は、該コンプレッサと該デコンプレッサとの間での値の系列の伝送中に失われることのある値の見積もられた最大数に基づいてより古い前の値を捨てるように更新されることを特徴とする請求項1に記載の方法。The sequence of previous values discards older previous values based on the estimated maximum number of values that may be lost during transmission of the sequence of values between the compressor and the decompressor. The method according to claim 1, characterized in that it is updated. 圧縮されている現在の値は、その現在の値と共に送られる数kを符号化することを特徴とする請求項1に記載の方法。The method according to claim 1, characterized in that the current value being compressed encodes a number k sent with the current value. 該符号化はハフマン符号化であることを特徴とする請求項15に記載の方法。The method of claim 15, wherein the encoding is Huffman encoding. 該値はRTPヘッダを含むことを特徴とする請求項1に記載の方法。The method of claim 1, wherein the value comprises an RTP header. 少なくとも1つの該受取通知は、RTPヘッダのTS及びIP−IDの受取通知を表すRTP SNヘッダの受取通知であることを特徴とする請求項14に記載の方法。The method according to claim 14, characterized in that at least one of the acknowledgments is an acknowledgment of an RTP of the RTP header and an RTP SN header representing an acknowledgment of the IP-ID. 現在の値を最少数のビットに圧縮するためのシステムであって:
異なるk個の最下位ビットを各々有する少なくとも1つの前の値の系列を維持するコンプレッサと;
最少数のk個の最下位ビットに圧縮されている現在の該値を該コンプレッサから受信するデコンプレッサとを含んでおり;
該コンプレッサは、少なくとも1つの前の値の該系列中のいずれかの値を基準として使用して該デコンプレッサにおいて現在の該値を首尾良く解凍することを可能にする最小数のビットを表すkの値を決定することを特徴とするシステム。
A system for compressing the current value into a minimum number of bits:
A compressor maintaining a sequence of at least one previous value each having a different k least significant bits;
And a decompressor for receiving the current value from the compressor, the current value being compressed to a minimum number of k least significant bits
The compressor represents a minimum number of bits that allow the current value of the current value to be successfully decompressed in the decompressor using any value in the series of at least one previous value as a reference. A system characterized by determining the value of.
kの値は、現在の該値と少なくとも1つの前の該値との最大差を決定するために現在の該値を少なくとも1つの前の該値と比較することにより決定され、kはlog2(r)+1より大きい最小の整数であるように選択される整数であることを特徴とする請求項19に記載のシステム。The value of k is determined by comparing the current value to at least one previous value to determine the maximum difference between the current value and the at least one previous value, where k is log 2 ( 20. The system of claim 19, r) an integer selected to be the smallest integer greater than +1. 該デコンプレッサは、該デコンプレッサが値を解凍したことを示す少なくとも1つの受取通知を該コンプレッサに送り、該コンプレッサはより古い前の値を捨てるために少なくとも1つの前の値の該系列を更新することを特徴とする請求項18又は19に記載のシステム。The decompressor sends at least one acknowledgment to the compressor indicating that the decompressor has decompressed the value, and the compressor updates the sequence of at least one previous value to discard the older previous value A system according to claim 18 or 19, characterized in that: 該デコンプレッサは、該基準値に最も近い受信された現在の値のk個の最下位ビットと同一のk個の最下位ビットを有する値として解凍されるべき少なくとも1つの前の値の該系列の最後の値の基準値で該デコンプレッサにおいて現在の該値を解凍することを特徴とする請求項19乃至21のいずれかに記載のシステム。The decompressor may be configured to receive the sequence of at least one previous value to be decompressed as a value having the same k least significant bits as the k least significant bits of the received current value closest to the reference value. 22. A system according to any of the claims 19 to 21, characterized in that the current value is decompressed in the decompressor at the reference value of the last value of. 該デコンプレッサが該基準値より下から該基準値の上にまで及ぶ値を含むサーチ間隔を使用し;該サーチ間隔内の値から同一のk個の最下位ビットを有する値を選択することを更に含むことを特徴とする請求項22に記載のシステム。The decompressor uses a search interval including values ranging from below the reference value to above the reference value; selecting a value having the same k least significant bits from the values in the search interval 23. The system of claim 22, further comprising: 該コンプレッサは、基準値v refとビット数kとを少なくとも1つの前の値の該系列と現在の該値とにマッピングすることから該値を作り;少なくとも1つの前の値の該系列は、該デコンプレッサにより解凍されたと受取通知されている最も古い送信された値を最旧の値として有するように更新されることを特徴とする請求項19に記載のシステム。The compressor has a reference value v creating the value from mapping ref and bit number k to the sequence of at least one previous value and the current value; said sequence of at least one previous value being decompressed by the decompressor 20. The system of claim 19, wherein the system is updated to have the oldest transmitted value that has been acknowledged as the oldest value. 該関数は、]v ref−2k−1, v ref+2k−1]であることを特徴とする請求項19に記載のシステム。The function is] v ref-2k-1, v 20. The system of claim 19, wherein: ref + 2k-1]. 該関数は、]v ref, v ref+2k]であることを特徴とする請求項19に記載のシステム。The function is] v ref, v 20. The system of claim 19, wherein: ref + 2k]. 該受取通知は受信された圧縮されていない値であることを特徴とする請求項21に記載のシステム。22. The system of claim 21, wherein the acknowledgment is a received uncompressed value. 少なくとも1つの該受取通知は受信された圧縮されている値であることを特徴とする請求項21に記載のシステム。22. The system of claim 21, wherein at least one of the acknowledgments is a received compressed value. 少なくとも1つの該受取通知は、圧縮されている値の一部分を符号化するのに使用される情報を含む受信された圧縮されている値であることを特徴とする請求項28に記載のシステム。29. The system of claim 28, wherein the at least one acknowledgment is a received compressed value that includes information used to encode a portion of the value being compressed. 少なくとも1つの前の値の該系列は、該コンプレッサと該デコンプレッサとの間での値の系列の伝送中に失われることのある値の見積もられた最大数に基づいて少なくとも1つのより古い前の値を捨てるように該コンプレッサにより更新されることを特徴とする請求項19に記載のシステム。The sequence of at least one previous value is at least one older based on an estimated maximum number of values that may be lost during transmission of the sequence of values between the compressor and the decompressor. 20. The system of claim 19, updated by the compressor to discard previous values. 圧縮されている現在の該値は、その現在の値と共に送信される数kを符号化することを特徴とする請求項19に記載のシステム。20. The system of claim 19, wherein the current value being compressed encodes a number k that is transmitted along with the current value. 該値はRTPヘッダを含むことを特徴とする請求項19に記載のシステム。20. The system of claim 19, wherein the value comprises an RTP header. 少なくとも1つの該受取通知は、RTPヘッダのTS及びIP−IDの受取通知を表すRTP SNヘッダの受取通知であることを特徴とする請求項21に記載のシステム。22. The system of claim 21, wherein at least one of the acknowledgments is an acknowledgment of an RTP header and an RTP SN header representing an acknowledgment of the IP-ID. コンプレッサからデコンプレッサへ送るために現在の値を減じられた数のビットに圧縮する方法であって、この方法は:
少なくとも1つの前の値の系列を該コンプレッサにおいて維持することを含み、各々の前の値は異なるk個の最下位ビットを有すると共に該デコンプレッサへ送信されており;
前の値の該系列中のいずれかの値を基準値として使用して該デコンプレッサにおいて現在の該値を首尾良く解凍することを可能にする減じられた数のビットを表すkの値を決定することを含んでおり;
現在の該値を現在の該値のk個の最下位ビットと共に該コンプレッサから該デコンプレッサへ圧縮されている形で送ることを含むことを特徴とする方法。
A method of compressing a current value into a reduced number of bits for delivery from a compressor to a decompressor, the method comprising:
Maintaining at the compressor a sequence of at least one previous value, each previous value having different k least significant bits and being sent to the decompressor;
Determine the value of k representing a reduced number of bits that allows the current value to be successfully decompressed in the decompressor using any value in the series of previous values as a reference value Including doing;
A method comprising: sending the current value with the k least significant bits of the current value in a compressed form from the compressor to the decompressor.
JP2001537167A 1999-11-09 2000-11-02 Variable length coding of compressed data Withdrawn JP2004500753A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16433099P 1999-11-09 1999-11-09
PCT/US2000/041773 WO2001035534A2 (en) 1999-11-09 2000-11-02 Variable length encoding of compressed data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011122702A Division JP5066276B2 (en) 1999-11-09 2011-05-13 Variable length encoding of compressed data

Publications (2)

Publication Number Publication Date
JP2004500753A JP2004500753A (en) 2004-01-08
JP2004500753A5 true JP2004500753A5 (en) 2010-11-25

Family

ID=22594003

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2001537167A Withdrawn JP2004500753A (en) 1999-11-09 2000-11-02 Variable length coding of compressed data
JP2011122702A Expired - Lifetime JP5066276B2 (en) 1999-11-09 2011-05-13 Variable length encoding of compressed data

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011122702A Expired - Lifetime JP5066276B2 (en) 1999-11-09 2011-05-13 Variable length encoding of compressed data

Country Status (2)

Country Link
JP (2) JP2004500753A (en)
CN (2) CN1174554C (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8537741B2 (en) * 2006-01-13 2013-09-17 Alcatel Lucent Method of header compression over channels with out-of-order delivery
JP4486948B2 (en) * 2006-08-30 2010-06-23 京セラ株式会社 COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND COMMUNICATION METHOD
US8015467B2 (en) 2006-08-30 2011-09-06 Kyocera Corporation Communication system, communication apparatus and communication method
CN101453298B (en) * 2007-12-07 2013-06-05 华为技术有限公司 Processing method, system and apparatus for header compression in wireless network
US9204287B2 (en) * 2012-05-15 2015-12-01 Futurewei Technologies, Inc. System and method for reducing signaling overhead

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05191454A (en) * 1992-01-16 1993-07-30 Nec Corp Data transfer system
JPH06204891A (en) * 1993-01-05 1994-07-22 Fujitsu Ltd Data compression method
JP3339335B2 (en) * 1996-12-12 2002-10-28 ヤマハ株式会社 Compression encoding / decoding method
JP3634934B2 (en) * 1997-02-12 2005-03-30 新日本無線株式会社 Modulation circuit, demodulation circuit, and modulation / demodulation system
JPH1188464A (en) * 1997-09-04 1999-03-30 Fujitsu Ltd Data transfer device and data transfer method

Similar Documents

Publication Publication Date Title
US6782047B1 (en) Variable length encoding of compressed data
EP2034691B1 (en) Method, transmitter and receiver for the transmission of packets with compressed packet headers
JP3940159B2 (en) Efficient hand-off procedure for header compression
US7539130B2 (en) Method and system for transmitting and receiving packets
JP4582565B2 (en) Robust header compression in packet communication
EP1415474B1 (en) Method and compressor for compressing packet timestamp information
JP5066276B2 (en) Variable length encoding of compressed data
WO2000079764A1 (en) Robust delta encoding with history information
JP2004500753A5 (en)
EP1228570B1 (en) Variable length encoding of compressed data
EP1670143B1 (en) Variable length encoding of compressed data
CA2388006C (en) Variable length encoding of compressed data
Yang et al. Compression Techniques for VoIP Transport over Wireless Interfaces
EP1931103B1 (en) Method and system for compressing and decompressing packet headers