(57)【要約】家庭内の複数のクライアント装置に配信するために複数のＴＶ及びオーディオストリームを同調及び記憶するホームメディアセンタを備え、802.11b規格を用いる構内無線ネットワークを介してのＭＰＥＧ２オーディオ及びデータの伝送が提供される。限られた帯域幅の無線通信ネットワークで使用するために、レート変換器がビットレートを低減する。再送するためのデータパケットの優先付けが、コンテンツのフォーマット及び／又は年齢に従ってなされる。
2005536137.tif 000002
【特許請求の範囲】
【請求項１】
限られた帯域幅の通信ネットワークを用いてデータをストリーミングする方法において、
レート変換器手段を用いてビットレートストリームを低減するステップと、
喪失したデータパケットを、コンテンツのフォーマット及び／又は年齢に従い再送するために優先付けするステップと、
前記データパケットを前記優先付けに従って再送するステップと、
を有することを特徴とする方法。
【請求項２】
請求項１に記載の方法において、前記優先付けするステップは、前記データパケットを、オーディオデータパケット及びビデオデータパケットを含み、コンテンツのタイプに従って定義するステップを含んでいることを特徴とする方法。
【請求項３】
請求項１又は請求項２に記載の方法において、前記優先付けするステップは、Ｉフレーム、Ｐフレーム及びＢフレームを含む３つのビデオタイプを定義するステップを含むことを特徴とする方法。
【請求項４】
請求項１ないし３の何れか一項に記載の方法において、前記優先付けするステップは、各データパケットタイプに対して重み付け係数を定義するステップを含んでいることを特徴とする方法。
【請求項５】
請求項４に記載の方法において、前記重み付け係数は、前記喪失したデータパケットのシーケンス番号を一番最近に正しく受信されたデータパケットのシーケンス番号から減算することにより算出されるデータパケットの“年齢”係数により、
Ｐ＝Ｗｘ(Ｓ−ｓ)
のように乗算され、ここでＰは優先度であり、Ｗｘは当該データパケットの前記重み付け係数であり、Ｓは前記一番最近に正しく受信されたデータパケットのシーケンス番号であり、ｓは前記喪失したデータパケットのシーケンス番号であることを特徴とする方法。
【請求項６】
請求項４又は請求項５に記載の方法において、前記データパケットタイプに対する前記重み付け係数Ｗは：
（ｉ）オーディオ；
（ii）Ｉフレーム；
（iii）Ｐフレーム；
（iv）Ｂフレーム、
のように重要度の降順であることを特徴とする方法。
【請求項７】
請求項６に記載の方法において、前記データパケットを、最高値のＰを持つデータパケットを最初に再送し、その後にＰの値の減少に従う順序で再送し、最低値のＰを持つデータパケットを最後に再送するステップを有していることを特徴とする方法。
【請求項８】
請求項１ないし７の何れか一項に記載の方法において、新たなデータパケットが受信された場合に再送タイマを増加させるステップと、前記タイマの或る間隔でデータパケットを要求するステップとを有することを特徴とする方法。
【請求項９】
請求項８に記載の方法において、データパケットを受信しない或る期間の後に前記再送タイマを増加させるステップを更に有していることを特徴とする方法。
【請求項１０】
請求項１ないし７の何れか一項に記載の方法において、再送コマンドを前記再送タイマの或る間隔でのみ送信するステップを有していることを特徴とする方法。
【請求項１１】
請求項１ないし１０の何れか一項に記載の方法において、前記限られた帯域幅の通信ネットワークが無線ネットワークを有することを特徴とする方法。
【請求項１２】
デジタルコンピュータの内部メモリに直接ロード可能なコンピュータプログラム製品であって、該コンピュータプログラム製品がコンピュータ上で動作された場合に請求項１ないし１１の少なくとも何れか一項におけるステップを実行するソフトウェアコード部分を有していることを特徴とするコンピュータプログラム製品。
【請求項１３】
前記コンピュータプログラム製品がコンピュータ上で動作された場合に、請求項１ないし１１の少なくとも何れか一項におけるステップを実行するコンピュータプログラム。
【請求項１４】
請求項１２に記載のコンピュータプログラム製品又は請求項１３に記載のコンピュータプログラムの電子配信。
【請求項１５】
限られた帯域幅の通信ネットワークを用いてデータをストリーミングするシステムにおいて、
レート変換器手段と、
データパケットを前記レート変換器手段に入力して、ビットレートストリームを低減する手段と、
喪失したデータパケットを、コンテンツのフォーマット及び／又は年齢に従い再送するために優先付けする手段と、
前記喪失したデータパケットを前記優先付けに従って再送する手段と、
を有することを特徴とするシステム。
【請求項１６】
請求項１５に記載のシステムにおいて、前記優先付けする手段は、前記データパケットを、オーディオデータパケット及びビデオデータパケットを含み、コンテンツのタイプに従って定義する手段を含んでいることを特徴とするシステム。
【請求項１７】
請求項１５又は請求項１６に記載のシステムにおいて、前記優先付けする手段は、Ｉフレーム、Ｐフレーム及びＢフレームを含む３つのビデオタイプを定義する手段を含むことを特徴とするシステム。
【請求項１８】
請求項１５ないし１７の何れか一項に記載のシステムにおいて、前記優先付けする手段は、各データパケットタイプに対して重み付け係数を定義する手段を含んでいることを特徴とするシステム。
【請求項１９】
請求項１８に記載のシステムにおいて、前記重み付け係数は、前記喪失したデータパケットのシーケンス番号を一番最近に正しく受信されたデータパケットのシーケンス番号から減算することにより算出されるデータパケットの“年齢”係数により、
Ｐ＝Ｗｘ(Ｓ−ｓ)
のように乗算され、ここでＰは優先度であり、Ｗｘは当該データパケットの前記重み付け係数であり、Ｓは前記一番最近に正しく受信されたデータパケットのシーケンス番号であり、ｓは前記喪失したデータパケットのシーケンス番号であることを特徴とするシステム。
【請求項２０】
請求項１８又は請求項１９に記載のシステムにおいて、前記データパケットタイプに対する前記重み付け係数Ｗは：
（ｉ）オーディオ；
（ii）Ｉフレーム；
（iii）Ｐフレーム；
（iv）Ｂフレーム、
のように重要度の降順であることを特徴とするシステム。
【請求項２１】
請求項２０に記載のシステムにおいて、前記データパケットを、最高値のＰを持つデータパケットを最初に再送し、その後にＰの値の減少に従う順序で再送し、最低値のＰを持つデータパケットを最後に再送する手段を有していることを特徴とするシステム。
【請求項２２】
請求項１５ないし２１の何れか一項に記載のシステムにおいて、新たなデータパケットが受信された場合に再送タイマを増加させ、前記タイマの或る間隔でデータパケットを要求する手段を有することを特徴とするシステム。
【請求項２３】
請求項２２に記載のシステムにおいて、データパケットを受信しない或る期間の後に前記再送タイマを増加させる手段を更に有していることを特徴とするシステム。
【請求項２４】
請求項１５ないし２３の何れか一項に記載のシステムにおいて、再送コマンドを前記再送タイマの或る間隔でのみ送信する手段を有していることを特徴とするシステム。
【請求項２５】
請求項１５ないし２４の何れか一項に記載のシステムにおいて、前記限られた帯域幅の通信ネットワークが無線ネットワークを有することを特徴とするシステム。
【請求項２６】
限られた帯域幅の通信ネットワークを用いてデータをストリーミングする装置において、
レート変換器手段と、
データパケットを前記レート変換器手段に入力して、ビットレートストリームを低減する手段と、
喪失したデータパケットを、コンテンツのフォーマット及び／又は年齢に従い再送するために優先付けする手段と、
前記喪失したデータパケットを前記優先付けに従って再送する手段と、
を有することを特徴とする装置。
【請求項２７】
請求項２６に記載の装置において、前記優先付けする手段が、
前記データパケットを、オーディオデータパケット及びビデオデータパケットを含み、コンテンツのタイプに従って定義する手段、
Ｉフレーム、Ｐフレーム及びＢフレームを有する３つのビデオタイプを定義する手段、
各データパケットタイプに対して、重み係数を定義する手段、
の少なくとも１つを含むことを特徴とする装置。
【請求項２８】
請求項２７に記載の装置において、前記重み付け係数は、前記喪失したデータパケットのシーケンス番号を一番最近に正しく受信されたデータパケットのシーケンス番号から減算することにより算出されるデータパケットの“年齢”係数により、
Ｐ＝Ｗｘ(Ｓ−ｓ)
のように乗算され、ここでＰは優先度であり、Ｗｘは当該データパケットの前記重み付け係数であり、Ｓは前記一番最近に正しく受信されたデータパケットのシーケンス番号であり、ｓは前記喪失したデータパケットのシーケンス番号であることを特徴とする装置。
【請求項２９】
請求項２７又は請求項２８に記載の装置において、前記データパケットタイプに対する前記重み付け係数Ｗは：
（ｉ）オーディオ；
（ii）Ｉフレーム；
（iii）Ｐフレーム；
（iv）Ｂフレーム、
のように重要度の降順であることを特徴とする装置。
【請求項３０】
請求項２８に記載の装置において、前記データパケットを、最高値のＰを持つデータパケットを最初に再送し、その後にＰの値の減少に従う順序で再送し、最低値のＰを持つデータパケットを最後に再送する手段を有していることを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データをストリーミングする方法、データをストリーミングするシステム及びデータをストリーミングする装置に関する。
【背景技術】
【０００２】
米国特許第5,768,533号は、ビデオの独立に伝送されるセグメントへの符号化に関するものである。エラーが発生すると、サーバは当該バンドセグメントをＩフレームに再符号化し、該フレームを再び伝送する。
【０００３】
米国特許第6,025,888号は、データをサーバで処理し、最も重要なマクロブロックを決定すると共に該マクロブロックをイントラ的に符号化することに基づいてＭＰＥＧ信号を可能な限り強くするようなシステムを開示している。従って、該システムはＭＰＥＧ信号のサイズが大幅に増加する結果となる。
【０００４】
米国特許出願公開第2001/0019589号は、サーバにおいてＡＶデータを処理し、特定の単位のビデオに対するエラー回復の量を自動的に設定し、かくして、送信機のエラー訂正設定を変更することを開示している。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、限られた帯域幅の通信ネットワークで使用するためのデータをストリーミングする方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、限られた帯域幅の通信ネットワークを用いてデータをストリーミングする方法であって、該方法がレート変換器（transrater）手段を用いてビットレートストリームを低減するステップと、コンテンツのフォーマット及び／又は年齢（age）に従って再送するためにデータパケットを優先付けするステップと、該優先付けに従ってデータパケットを再送するステップとを有するような方法を提供する。
【０００７】
有利には、上記優先付けするステップは下記ステップの１以上を有する：
・上記データパケットを、オーディオデータパケット及びビデオデータパケットを含み、コンテンツタイプに従って定義するステップ；
・Ｉフレーム、Ｐフレーム及びＢフレームを含む３つのビデオパケットタイプを定義するステップ；及び
・各データパケット型式に対して、重み付け係数を定義するステップ。
【０００８】
好ましくは、上記重み付け係数は、喪失したパケットのシーケンス番号を一番最近に正しく受信されたデータパケットのシーケンス番号から減算することにより算出されるデータパケットの“年齢”係数により、
Ｐ＝Ｗｘ（Ｓ−ｓ）
のように乗算され、ここで、Ｐは優先度であり、Ｗｘは当該データパケットタイプの重み付け係数であり、Ｓは一番最近に正しく受信されたデータパケットのシーケンス番号であり、ｓは喪失したデータパケットのシーケンス番号である。
【０００９】
この様にして、本発明はビットレートを低減するための効率的且つ効果的な処理を提供し、また、データパケットが伝送される順番を優先付けするために当該ビデオストリームに関する重要な情報を使用することができる。
【００１０】
好ましくは、データパケットのタイプに対する上記重み付け係数Ｗｘは、重要度の降順、即ち：
（ｉ）オーディオ；
（ii）Ｉフレーム；
（iii）Ｐフレーム；及び
（iv）Ｂフレーム；
とする。
【００１１】
好ましくは、本方法は、Ｐの最高値を伴うデータパケットを最初に再送し、その後に、Ｐの値の減少に従って順番に再送し、最後にＰの最低値を伴うものを再送するステップを含む。
【００１２】
本方法は、新たなパケットが受信された場合に再送タイマをインクリメントするステップを含むことができる。喪失したパケットが、元のリクエストを送信してから該タイマにより測定された或る期間内に受信されなかった場合、新たなリクエストが送信される。本方法は、更に、パケットを受信しない或る期間の後に、該再送タイマをインクリメントするステップを含むことができる。
【００１３】
この様にして、同一のパケットを繰り返し要求する危険性が大幅に低減され、かくして、クライアントからサーバへのバックトラフィックの量を低減する。
【００１４】
この問題を防止する代替方法は、リクエストパケットの送信を、これらパケットが上記再送タイマにより測定されたタイムアウト値の倍数でのみ送信されるように、制限することである。
【００１５】
本発明は、オーディオ及びビデオデータを、ＭＰＥＧ圧縮を用いて送信する方法に特に適している。
【００１６】
また、本発明は、例えば802.11b（ＷｉＦｉとも呼ばれる）ネットワーク等の無線伝送を含む制限された帯域幅の技術にも特に適している。
【００１７】
また、本発明は、複数のＴＶ及びオーディオストリームに同調し記憶すると共に家庭内の複数のクライアントへ配信するホームメディアセンタを備えるような、インハウス無線ネットワーク上でのＭＰＥＧ２オーディオ及びデータの伝送に特に適している。
【００１８】
認識されている従来技術を凌駕する本発明の重要な利点は、本発明がＭＰＥＧオーディオ及びビデオに対して最適化された無線プロトコルの使用を可能にする点にある。
【００１９】
本発明の他の利点は、本発明が、ＭＰＥＧストリームが余分なＣＰＵサイクルを使用して別個に解析されることを要さない点にある。
【００２０】
本発明の他の態様は、デジタルコンピュータの内部メモリに直にロード可能なコンピュータプログラム製品であって、該製品がコンピュータ上で実行された場合に、本発明の方法のステップを実行するソフトウェアコード部を有するようなコンピュータプログラム製品を提供する。
【００２１】
また、本発明の他の態様は、上記製品がコンピュータ上で実行された場合に、本発明の方法のステップを実行するコンピュータプログラムを提供する。
【００２２】
また、本発明の他の態様は、本発明の方法によるコンピュータプログラム製品又はコンピュータプログラムの電子配信法を提供する。
【００２３】
また、本発明の他の態様は、限られた帯域幅の通信ネットワークを用いてデータをストリーミングするシステムであって、該システムが、
レート変換器手段と、
データパケットを上記レート変換器手段に入力して、ビットレートストリームを減少させる手段と、
コンテンツのフォーマット及び／又は年齢に従い再送するために喪失したデータパケットを優先付けする手段と、
上記喪失したデータパケットを上記優先付けに従って再送する手段と、
を有するようなシステムを提供する。
【００２４】
上記システムは、本明細書で定義される本発明の追加のフィーチャを含むことができる。
【００２５】
また、本発明の他の態様は、限られた帯域幅の通信ネットワークを用いてデータをストリーミングする装置であって、該装置が、
レート変換器手段と、
データパケットを上記レート変換器手段に入力して、ビットレートストリームを減少させる手段と、
コンテンツのフォーマット及び／又は年齢に従い再送するために喪失したデータパケットを優先付けする手段と、
上記喪失したデータパケットを上記優先付けに従って再送する手段と、
を有するような装置を提供する。
【００２６】
また、本発明の他の態様は、本発明を具現化する上記装置のフィーチャを含むようなサーバ手段及び／又はクライアント手段を提供する。
【発明を実施するための最良の形態】
【００２７】
本発明が一層容易に理解され得るように、以下、添付図面を参照して例示のみとして説明を行う。
【００２８】
図１に示すシステム１は、ＭＰＥＧ２規格を使用するオーディオ及びビデオストリーミング処理を含むが、該システムは他の圧縮規格（例えば、ＭＰＥＧ４）にも適用可能である。データは、リアルタイム放送源から、又は光ディスク若しくはハードディスクから得られる。該システムは、限られた帯域幅の通信ネットワーク、本例では802.11b無線ネットワーク、を有する。該システムは、所要のＡＶデコーダを備えるクライアントを有している。
【００２９】
システム１は、ＭＰＥＧ２準拠のビデオ基本ストリーム又はパケット化された基本ストリームを入力するレート変換器（transrater）モジュールを有している。該モジュールは、ＭＰＥＧ２準拠のビデオ基本ストリームを出力する。該出力の（平均）ビットレートは或るレベル、即ち目標ビットレート（ＴＢＲ）で制限される。該目標ビットレートは動的に変更することができる。当該ストリームのフレーム構造は変化されない。現レート変換器はスライスレベルより下で動作し、データの量を低減する（例えば、非零ＤＣＴ係数の数を低減する）。当該変換器はビットレートを解析しつつ、当該ストリームの構造を詳述する情報を記憶する。
【００３０】
[現システムの説明]
当該システムの現実施例は、フィリップス社のネクスペリアPNX8525ＩＣ上で動作する。これは、適応可能型のハイエンド・セットトップボックス及び同様のシステムのために設計されたチップである。これは、デュアルＣＰＵマシンであり、全体のシステム制御のためのＭＩＰＳプロセッサ及びメディア処理のためのトライメディア・プロセッサを有している。しかしながら、当該システムはシングルＣＰＵマシンにも容易に適用することができる。
【００３１】
図２のサーバにおいて、デマルチプレクサ２はＭＰＥＧ２伝送ストリームをチューナから取り込む。この伝送ストリームはＤＶＢ規格に従うことができる。デマルチプレクサ２は、ＲＰＣ機構を介して、ＭＩＰＳプロセッサ上で動作する処理により制御される。デマルチプレクサ２は、当該伝送ストリームの規則的入力を使用してクロックを９０ｋＨｚで動作するよう維持すると共に、オーディオ及びビデオストリームも出力する。これらのストリームは、トライメディア・ソフトウェア・ストリーミング・アーキテクチャにより規定されるパケットにパケット化される。当該データはセグメント化され、各セグメントがパケットを生成する。各パケットには幾らかのデータが伴うが、該データはパケット長、タイムスタンプ及びデータタイプ等を含む。
【００３２】
レート変換器３は、ＴＳＳＡパケットにパケット化されたビデオストリームを取り込む。該レート変換器は、これらパケットに対して、出力パケットに含まれるデータのビットレートが設定値に制限されるように作用する。これら出力パケットも、ＴＳＳＡパケットの状態である。しかしながら、これら出力パケットは付加的データを有する。このデータは該レート変換器３により追加される。このデータは、当該パケット内に保持されたデータが属するフレームのタイプ及び該フレームの長さを含む。
【００３３】
ToMIPSブロック４は、１つのオーディオ及び１つのビデオＴＳＳＡストリームを取り込む。これらのパケットからデータが抽出され、無線プロトコルに必要とされるパケット構造にフォーマットされる。これらパケットは、当該パケット内に保持された情報を記述するヘッダを有し、この情報はＴＳＳＡパケットから取り出される。読み取りは、各パケットヘッダに挿入されるべきシステムクロックからなされる。ToMIPS４は、このデータを両プロセッサにアクセス可能なメモリ領域に書き込む。ToMIPS４要素は、データを伝送するために、ＲＰＣコールを介してFromMIPS要素５と共動する。
【００３４】
FromMIPSブロック５は、上記共有メモリ領域からデータを入力し、該データをプロトコル送信器に渡す。
【００３５】
該無線プロトコル送信器６は、当該ネットワーク接続（このシステムにおいては、802.11bネットワーク）を介するデータの送信を処理する。
【００３６】
本発明のシステム１は、家庭内無線ネットワークを介してＭＰＥＧ２オーディオ及びビデオデータを伝送するためのソフトウェアを組み込む。このネットワークは、ＴＶストリームに同調し及び記憶する能力を有するような“ホームメディアセンタ”を組み込む。このシステムは無線ネットワークを介して家庭内の複数のクライアント装置につながる。
【００３７】
このネットワークを使用して、オーディオ及びビデオデータは、これらのクライアントにストリーミングされる。
【００３８】
このシステムは、例えば３つのＡＶストリームを入力する能力を備えるフィリップス社製ネクスペリアサーバ（典型的には、PNX8525サーバ）を用いて、無線家庭内ネットワークと組み合わされたサーバを有する。上記３つのストリームのうちの１つはローカルサーバ上に表示され、他の２つは２つのバイパ（Viper）型クライアントシステムに送信される。
【００３９】
当該システムは、バイパのＭＩＰＳプロセッサ上でリナックスを、トライメディア（TriMedia）上でｐＳＯＳを実行する。
【００４０】
［サーバのアーキテクチャ］
図３は、１以上の入力ストリームをデマルチプレクスする３つの伝送ストリーム入力Ｓ１、Ｓ２、Ｓ３を有するようなサーバアーキテクチャの非常に簡略化された図を示している。Ｓ１はローカルＴＶ表示器上に示される。他の２つＳ２、Ｓ３のビデオ情報はＭＰＥＧ２レート変換器Ｔ０、Ｔ１において処理されるが、これらユニットは当該ＭＰＥＧ２ストリームに対して、或る平均ビットレートを超えないようにし、これにより該ビデオ情報による無線ストリームの使用を制限するように作用する。
【００４１】
これら２つのレート変換されたＴ０及びＴ１ストリームは、当該データが無線プロトコルＷＰユニットへとストリーム入力される際に、これらストリームのオーディオと再結合される。このユニットは、データを再多重化し、これをリナックス・ネットワーク・ライブラリを使用して送信する。該ユニットはクライアントと通信して最適なデータ伝送を達成する。
【００４２】
［クライアントのアーキテクチャ］
クライアントは、例えばフィリップス社製PNX8525システム上で構成された、もっと簡単なシステムである。しがしながら、他の例として、ポーとされるために基本的なトライメディア又は一層簡単なネクスペリア装置とすることもできる。
【００４３】
クライアントは、アトランチック無線プロトコル受信器を動作させる。これは、関連するデコーダに情報を送るサーバからデータを受信するように作用する。当該プロトコルは、伝送されるオーディオ及びビデオの品質を保存ことを目的とする。
【００４４】
本発明のシステムは、802.11b規格通信技術を使用し、１１mbpsの帯域幅までで動作するが、合理的な条件下では、達成可能な最大の帯域幅は、送信されるパケットサイズが標準の１５００バイトから増加される場合、約６.５mbpsとなる。本発明を具現化する典型的な802.11b規格ネットワークの最大ビットレートでの範囲は、サーバから２３メートルの程度である。当該通信ネットワークは良好なデータ伝送を保証するためにアクノレッジ・パケットを使用する。パケットは送信器により送信され、チェックサムが随伴する。このチェックサムは受信器によりチェックされ、正しい場合は、アクノレッジが返送される。正しくない場合は、当該パケットは捨てられる。従って、如何なるパケットを再送することも、重要さは送信器側にある。殆どの実施化は、パケットを限られた回数だけ試行し再送する。
【００４５】
本発明のシステムにおいては、プロトコルは２つの部分として実施化される。これは、当該ユニットのデュアルＣＰＵ的性質による。サーバにおいては、伝送ストリーム入力部及びレート変換器の両者がプロセッサ上に存在する。従って、これらの出力をネットワークを介してストリーミングするためには、当該情報をリナックスを実行するＭＩＰＳシステムに供給する必要がある。同様に、クライアントにおいては、当該データをＭＩＰＳ／リナックスプロセッサ上で受信し、該データをトライメディア・デコーダ・チェーンに供給する必要がある。
【００４６】
［サーバ］
サーバ側では、“ToMIPS”と呼ばれるモジュールが実施化される。このモジュールは２つの入力を有する。即ち、一方はレート変換器からビデオデータを入力し、他方はオーディオデータを入力する。ToMIPSコンポーネントは、このデータを当該ネットワークの間で使用されるサイズのパケットに配列する。また、該コンポーネントは、サーバ上のデコーダクロックのサンプルを含み、パケットヘッダ情報を書き込む。
【００４７】
上記データは、MIPS上で動作するような“CopyPacketsTMtoMIPS”と呼ばれる処理に伝送される。この伝送を達成するために、標準のTMMAN RPCコールが使用される。次いで、この処理は獲得した情報をユニックス・パイプに供給する。実際のプロトコル操作処理が、この情報を上記パイプから読み出す。
【００４８】
［クライアント］
クライアント・プロトコル・ハンドラは、受信したパケットをユニックス・パイプに供給する。このパイプは、パケットをトライメディア上の“FromTM”タスクへ供給するためにTMMANコールを使用するような“CopyPacketsMIPStoTM”により空にされる。このタスクは上記データをデマルチプレクスし、該データをオーディオ及びビデオデコーダに供給する。
【００４９】
ソフトウェアプロトコルが、２つのシステム間のオーディオ及びビデオデータの伝送に対して最適化された、回復性のある（resilient）接続を提供する。
【００５０】
該プロトコルは、ＵＤＰ上に構築される。
【００５１】
当該システムは、下記の３つの設定に対する変更を伴うリナックスＩＰネットワークを使用する。即ち、
・送信バッファサイズ：ソケットのための送信バッファのサイズ。
・受信バッファサイズ：ソケットのための受信バッファのサイズ。
・サービスのタイプ（ＴＯＳ）：これらは、ＩＰヘッダにはまるような、ＩＰ規格により定義される特別なビットである。これらは、タイプ、又は当該ソケットにより伝送されるパケットの“重要度”を定義する。リナックスは、これらのパケットにおける設定を使用して、パケットを送信する順番を優先付けする。このフィールドに対する許容可能な設定は：
・少ない遅延：可能な限り早く送る。
・スループット：スループットを最大化するように試みる。
・信頼性。
・最少コスト：最低レベルの優先度。
【００５２】
サーバは、パケットに格納されたデータを、クライアント上の開かれたＵＤＰソケットを目標とするＵＤＰソケットを介して順番に送ることにより、該クライアントに送信する。この接続は、２つのシステムの間で開かれ且つ接続されたＴＣＰリンクにより初期化及び仲介される。これは“コマンドリンク”である。これらコマンドのうちの、このリンク上で許される１つは、“再送（Resend）”コマンドである。このコマンドは、当該サーバがリンク上で新たなデータを送信するのを中断する。代わりに、サーバは再送コマンドパケット内で要求されたパケットを送信する。
【００５３】
当該プロトコルは、データを格納するために単純なパケット構造を使用する。パケットヘッダは各パケットに関する重要な情報を含む。これは、
・シーケンス番号：各パケットは３２ビットのシーケンス番号により固有に識別される。
・タイムスタンプ：パケットには、当該パケット内のデータが何時デコード又は提示されるべきかを記述したタイムスタンプが随伴する。
・クロック基準：サーバにより挿入され、システムクロックを再現するためにクライアントにより使用される。
・データタイプ：オーディオ、ビデオ（Ｉ、Ｐ又はＢフレームを含む）
を含む。
【００５４】
［サーバ］
サーバは、スタートアップにおいてデーモン処理（daemon process）として動作される。このサーバ処理は、“聴取ソケット”を初期化し、クライアントが当該サーバに接続するのを待つ。これは、入ってくる接続が受け取られ、次いで、他のクライアントが依然として主聴取ソケットに接続することができる如くに受け付けられ、且つ、設定されるような標準のＴＣＰソケットである。クライアントが一旦接続したら、新たな処理、即ち送り手（送信器）処理は当該サーバ処理から分岐される。
【００５５】
［送り手処理］
新たに生成された送り手処理は、次いで、クライアントからの“初期化”コマンドを待つ。これは、必要とされるデータの識別子及びクライアントユニット上で生成されたデータソケットのアドレス／ポートを含むような多くの重要な情報を含む。この情報は解析され、ローカルデータ構造に記憶される。
【００５６】
送り手処理は、次いで、接続のためのＵＤＰソケットを作成する（ＴＣＰソケットは前記サーバ処理から受け継がれる）。これらは２つの異なるＴＯＳ設定を有するので２つが作成される。ストリーミングソケットは、帯域幅及びスループットを最大にするためにTOS_THROUGHPUTとして設定される。再送ソケットは、このデータを送る場合の遅延を最少にするために、TOS_LOWDELAYとして設定される。
【００５７】
次いで、送り手は巡回的パケット記憶部を初期化する。これは、既に送信された複数のパケットを保持するために使用される。この時点で、当該システムは主プロトコル状態マシンに入る。
【００５８】
［送り手状態マシン］
送信すべきデータが存在する間、送り手処理は状態マシン内でループする。このマシンの簡略化された表現が図５に示されている。
【００５９】
図５から分かるように、データはデータ源から入力され、このデータは巡回バッファに挿入され、次いで、このデータはクライアントへ送信される。この処理は、特にデータが再送されるべきことをクライアントが要求している場合に、クライアントから到来するコマンドにより中断される。この場合、このデータは優先度が付与され、低遅延ソケットを使用してクライアントに送信される。
【００６０】
この表現は、以下に説明するように、多数の方法で簡略化されている。
【００６１】
［クライアント処理］
クライアント処理のアーキテクチャ及び動作は、サーバアーキテクチャよりも簡単気味であり、単一のストリームに対してのみ限界的となり、従って１つのみの処理からなる。
【００６２】
開始時に、クライアントはソケットを作成し、サーバに接続しようと試みる。一旦接続されると、クライアントは、データが受信されるであろうＵＤＰソケットを作成する。次いで、クライアントは、サーバに対して、ＵＤＰソケットのポート番号、何のデータストリームが必要とされるか、及び如何なる他のオプションをも含む“初期化”コマンドを構築し、送信する。
【００６３】
次いで、クライアント状態マシン（図６）は入力ソケット上でデータを受信する（図６参照）。各パケットはローカル巡回バッファに挿入され、該バッファにおける位置はパケットヘッダに埋め込まれたシーケンス番号により決定される。次いで、上記巡回バッファは最後に供給されたパケットと最新の入力パケットとの間で走査され、喪失したパケットのリストを生成する。このリストは、次いで、再送コマンドを構築するために使用され、該コマンドはコマンドソケットを介して前記サーバ処理に送られる。
【００６４】
当該シーケンスにおいて次のパケットが利用可能なら、このパケットは出力データパイプに供給される。
【００６５】
［コマンド］
コマンドは、サーバからクライアントへ又はクライアントからサーバへ行くことができる特別なパケットである。コマンドは通常は接続されたＴＣＰ／ＩＰリンク上で送信されるが、ソフトウェアはＵＤＰデータリンクを介してコマンド通信が進行するのを許容するようにも設計される。
【００６６】
［コマンドパケット構造］
コマンドパケットは、異なるコマンドにより使用することができる一方、送信されるデータの量を最少とするように、適応的とする。基本ヘッダは：
・コマンドＩＤ；
・汎用３２ビット値；
・コマンド源のＩＰアドレス；
・コマンド源のＩＰポート；
・拡張データの長さ；
・拡張データ、
からなる。
【００６７】
コマンド構造は静的変数は殆ど有さず、大多数の情報は当該構造の末尾に付加されるコマンド固有のデータ内にある。
【００６８】
［再送コマンド］
ストリーミングの間に最も頻繁に使用されるコマンドの１つは、“再送”コマンドである。このコマンドは、クライアントによりサーバに対し、受信されていない複数のパケットを再送するよう依頼するために送信される。この場合、サーバは、これらパケットを送信することを自身の最優先とする。
【００６９】
再送コマンドは、デフォルトコマンド構造を末尾に可変長構造を付加することにより拡張する。この構造は、喪失しているパケットのランレングス符号化されたリスティングを含む。従って、含まれる拡張データは、標準のコマンド情報に加えて：
・不良パケットアレイの長さ；
・バッファの最大長；
・不良パケットのアレイ（開始パケット及びラン）、
となる。
【００７０】
［過去パケットコマンド］
過去パケットは、サーバからクライアントへ送信される。該パケットは、クライアントはパケットが再送されるべきことを要求するが、このパケットがサーバの巡回バッファから既に捨てられており、従って再送することができない場合に使用される。該パケットは頻繁には使用されないが、無線リンクの不良脱落の後に重要となる。
【００７１】
過去パケットコマンドは、要求されたが再送され得ないパケットを掲載する。
【００７２】
［初期化／開始コマンド］
開始時に、多数の重要な変数及びオプションがクライアントからサーバへ送信される。これは、開始コマンドを介して実行される。
【００７３】
開始コマンドは：
・クライアント装置のＩＰアドレス；
・二進オプションの複数の設定；
・データパケットの長さ；
・要求されたデータのファイル名：これは、ディスク上のファイル又はリアルタイムデータ源を表す“特別なファイル”の何れとすることもできる、
を含む。
【００７４】
［パケット優先付け］
再送コマンドがクライアントからサーバへ送信されると、該サーバは再送する必要があるパケットのリストを構築し維持する。これらパケットについての付加的情報が、斯かるパケットを優先付けするために使用される。例えば、伝送されたオーディオに欠陥が存在しないように、オーディオパケットはビデオよりも高い優先度を付与される。同様に、トランスコーダはビデオストリームに関する情報を提供する。この情報は当該データを、Ｉフレームからのデータを含むパケットがＰフレームよりも優先度を有し、ＰフレームがＢフレームよりも優先度を有するように、優先付けするために使用される。
【００７５】
パケットの優先度は簡単な式により計算される。４つの異なるタイプのパケットが定義される。即ち、オーディオに対して１つと、ビデオに対して３つ（これらは、Ｉ、Ｐ又はＢフレームを含む）である。各パケットタイプは、自身に対して定義された重みを有する（各々、Ｗａ、Ｗｉ、Ｗｐ、Ｗｂである）。これらの“重み”はパケットの“年齢（age）”により乗算され、該年齢は喪失パケットのシーケンス番号を正しく受信された一番最近のパケットのシーケンス番号（如何なる喪失パケットよりも大きいであろう）から減算することにより計算される。即ち、
Ｐ＝Ｗｘ(Ｓ−ｓ)
であり、ここで、Ｐは優先度、Ｗは特定のパケットタイプの重みであり、Ｓは一番最近に受信されたパケットのシーケンス番号であり、ｓは喪失パケットのシーケンス番号である。
【００７６】
このように、この優先度係数は、Ｐの値が大きいほど、当該パケットに付与される優先度が高くなるように、使用される。
【００７７】
全ての喪失パケットの優先度が計算されたら、これは喪失パケットのテーブルに、これらパケットが送信されるべき順番で記憶される。
【００７８】
［遅延再送コマンド］
このように、クライアントは、新たなパケットが受信される毎に、喪失されたパケットのリストを作成する。クライアントからサーバへの、同一のパケット（又は複数のパケット）を要求する（再送コマンドの往復のレイテンシによる）大量のバックトラフィックの危険性を防止するために、当該システムは下記の２つの方法の１つで動作する：
１．受信された各新パケットは“再送タイマ”をインクリメントする。パケットは、このタイマの或る間隔でのみ要求される（これの期間は、再送タイムアウト期間と呼ばれる）。例えば、１６パケットなる再送タイムアウトを持つシステムにおいて、パケットＹを受信した後に、パケットＸが喪失していると判断されたとする。このパケットの要求は、該パケットが正しく受信されるまで、パケットＹ＋１６、Ｙ＋３２等を受信する際に繰り返される。
【００７９】
デッドロックを防止するために、上記再送タイマは或る期間パケットを受信しない後にもインクリメントされる。
２．当該システムは、再送コマンドが再送タイマの或る間隔でのみ送信されるように設定される。従って、Ｎパケットが受信される毎に、再送コマンドが計算され送信される。これは、“遅延ナック（delayedNack）”方法と呼ばれる。
【００８０】
第１の再送処理は、多数の小さな再送コマンドが送信されることにつながり得る。第２の再送処理は、再送コマンドを送信する場合の大きな平均レイテンシにつながり得る。
【００８１】
第１再送処理に対するソフトウェアデフォルト。
【００８２】
［心拍］
当該システムはクライアントがスイッチオフされたか又は停止したかを検出することができないが、サーバが送信を続けて、クライアントから再送メッセージを受信しないような状況を防止するために、当該ネットワークに対する他のパケットタイプ、即ちクライアントからサーバに規則的な間隔で送信される“心拍”が規定される。サーバが合理的な時間長にわたり心拍を記録しない場合、クライアントは停止していると推定し、該クライアントが再接続することができるようにリンクをリセットする。
【００８３】
斯かる心拍はＵＤＰソケットを用いて送信される。心拍パケット内には、当該リンクのクライアントの概要について幾らかの簡単な統計情報が詰められ、これらはサーバに報告される。
【００８４】
［プルモード］
リンクを介して送信されるデータは、前記レート変換器モジュールによりリアルタイムに発生されるものと仮定した。このモードにおいては、データはレート変換器から可能な限り高速で取り出され、リンクを介して送信される。これは、デコードが送信された全データに追いつくような典型的な“プッシュ”モードシステムである。
【００８５】
変形例においては、ユーザはファイルから読み取り、これを送信し、次いでデコーダにこれを処理させたい場合がある。このモードにおいては、データ要件は、デコーダが自身のレートで処理するために、デコーダにより支配される。これは、典型的な“プル”モードである。
【００８６】
当該プロトコルは、クライアントがサーバに対して一時停止（ポーズ）及び復帰（レジューム）メッセージを送信することを可能にすることにより、簡単なプルモードシステムを構成する。かくして、これは、
・サーバが、クライアントに対してパケットを送信し始める。
・クライアントが、パケットを受信し、これらパケットをデコーダに供給し始める。
・クライアントは、待ち状態のパケットの数が或る値、即ち高レベルウォーターマークより大きいことを検出する。クライアントは、サーバに対してポーズメッセージを送る。
・サーバはパケットを送信するのを停止する。
・クライアントはパケットをデコーダに供給し続ける。
・クライアントは、待ち状態のパケットの数が或る値、即ち“低レベルウォーターマーク”より小さいことを検出する。クライアントは、サーバにレジュームメッセージを送信する。
・サーバは、再びパケットを送信し始める。
のように、動作する。
【００８７】
［クロック処理］
クライアント上でオーディオ及びビデオを同期状態に維持するためには、安定したクロック信号を発生する必要がある。しかしながら、クライアントユニットとサーバユニットとをリンクする無線ネットワークの不確定な性質により、クライアントのクロックをサーバにロックすることは非常に困難である。
【００８８】
クロック処理コードを変更するのを一層容易にさせるので、ベースレベルのプロトコルではなく、より高レベルのプロトコルハンドラがクロック処理、即ちクロック再生を扱う。しかしながら、該プロトコルは、クロック情報の２つの項目のためにパケットヘッダにスペースを確保する。これらは、当該パケットが待ち行列に挿入される時点におけるサーバ上のクロック基準及びパケット用のタイムスタンプである。
【００８９】
当該システムにおいては、クロック処理は、ＴＳＳＡソース及びシンク要素（“ToMIPS”及び“FromMIPS”）において実行される。
【００９０】
［ToMIPS］
ToMIPS要素は、パケットを受信及び再パッケージする際に、ＴＳＳＡパケットヘッダからタイムスタンプを読み出す。該要素は、これらタイムスタンプを３２ビット値に低減し、これらをアトランチック（Atlantic）パケットヘッダにおける確保されたタイムスタンプフィールドに投入する。また、該要素は各パケットを供給する際に、システムクロックを読み取り、この値をパケットヘッダに挿入する。
【００９１】
無線リンク上で価値の高い帯域幅を使って古いデータが送信されないことを保証するために、ＴＳＳＡパケットは、当該ToMIPS要素に到達した際にフィルタ処理される。これは、当該パケットのタイムスタンプを現クロック値と比較し、該タイムスタンプが現クロックより古い或る閾値を超えている場合、該パケットは破棄され、供給されない。
【００９２】
［FromMIPS］
FromMIPS要素は、上記パケットからＴＳＳＡパケットを再構築する。これは、パケットヘッダのタイムスタンプ情報を含む。
【００９３】
クライアント上でクロックを再構築するために、クライアントのクロックは、自走（free-run）し、到来する最初のパケットにより、及び、クライアントのクロックとパケット内のクロック基準との間の差が１秒より大きい場合にセットされる。これは、２つのシステムのクロックが同じレートで動作することに依存し、これは百万分の数程度内の精度を提供する。
【００９４】
上記システムの変形例は、当該プロトコルを一層低いレベルで実施化することであり得、これがＭＡＣレベルに近付くほど、受信クロック上のジッタが少なくなり、これによりクライアントのクロックを駆動する。
【００９５】
［パケットヘッダ］
パケットヘッダは下記の表に示すものからなる：
【００９６】
【表１】
2005536137.tif 000003
現ヘッダの長さは２０バイトである。必要なら、これは１６バイトに低減することができる。
【００９７】
［コマンドヘッダ］
【表２】
2005536137.tif 000004
【図面の簡単な説明】
【００９８】
【図１】図１は、本発明を実施化したシステムの概要図である。
【図２】図２は、図１のシステムの一層詳細なブロック図である。
【図３】図３は、図１のシステムのサーバを示す。
【図４】図４は、図１のシステムのクライアントを示す。
【図５】図５は、図１のシステムのサーバの状態マシン図である。
【図６】図６は、図１のシステムのクライアントの状態マシン図である。
【図１】
2005536137.tif 000005
【図２】
2005536137.tif 000006
【図３】
2005536137.tif 000007
【図４】
2005536137.tif 000008
【図５】
2005536137.tif 000009
【図６】
2005536137.tif 000010
【国際調査報告】
2005536137.tif 000011
2005536137.tif 000012
2005536137.tif 000013