(57)【特許請求の範囲】
【請求項１】
ビデオサーバシステムであって、
一定ビットレートデータからなる複数のビットストリームを出力するためのビデオサーバと、
前記一定ビットレートデータストリームの一つを各々受信する１以上の宛先局（destination）システムと、
前記サーバに接続され、前記宛先局システムの一つに関連付けられたネットワークインタフェースと、
前記ネットワークインタフェースと前記宛先局システムとの間に接続されたネットワークと、
前記一定ビットレートデータの複数のパケットから求められる時間間隔に基づいた前記一定ビットレートデータの粗粒子同期と、前記ビットストリームのビットレートに基づいた微粒子同期を行う同期制御装置とを含むことを特徴とするビデオサーバシステム。
【請求項２】
前記微粒子同期が、前記粗粒子同期より若干高く選択されていることを特徴とする請求項１に記載のビデオサーバシステム。
【請求項３】
前記微粒子同期が、エンコードされるビットレートに適合した最も近い粒度に切り上げることによって設定される細かい同期レートを用いることによってなされることを特徴とする請求項２に記載のビデオサーバシステム。
【請求項４】
前記粗粒子同期が、所望の一定ビットレートに等しいビットレートを確立することによってなされることを特徴とする請求項１に記載のビデオサーバシステム。
【請求項５】
ビデオサーバシステムであって、
複数の、一定ビットレートデータのビットストリームを出力するためのビデオサーバと、
各々前記一定ビットレートデータストリームの一つを受信する１以上の宛先局システムと、
前記サーバに接続され、前記宛先局システムの一つに関連付けられたネットワークインタフェースと、
前記ネットワークインタフェースと前記宛先局システムとの間に接続されたネットワークと、
複数のエントリを含むビットポンプとを含んでおり、
各エントリはメモリ内の特定の位置に対するポインタと、ネットワークを介してなされるデータ伝送の性質を規定するヘッダ情報とを含んでいることを特徴とするビデオサーバシステム。
【請求項６】
前記ヘッダ情報が一定ビットレート情報と同期情報とを含んでいることを特徴とする請求項５に記載のビデオサーバシステム。
【請求項７】
前記ヘッダ情報が、伝送されるべきデータから得られるネットワーク伝送情報を除き、ネットワークを介してなされるデータ伝送に影響を与えるよう用いられることを特徴とする請求項５に記載のビデオサーバシステム。
【請求項８】
ビデオサーバシステムの動作方法であって、
ネットワークインタフェースをビデオサーバに接続するとともに、ネットワーク接続を介して、複数の宛先局システムの一つに接続する過程と、
前記サーバから一定ビットレートデータのビットストリームを出力する過程と、
前記一定ビットレートデータの複数のパケットから求められる時間間隔に基づいた、前記一定ビットレートデータの粗粒子同期を行う過程と、
前記ビットストリームのビットレートに基づいた微粒子同期を実行する過程とを含むことを特徴とするビデオサーバシステムの動作方法。
【請求項９】
微粒子同期を実行する前記過程によって、前記粗粒子同期より若干高い同期レートが与えられることを特徴とする請求項８に記載のビデオサーバシステムの動作方法。
【請求項１０】
微粒子同期を実行する前記過程が、エンコードされるビットレートに適合した最も近い粒度に切り上げることによって設定される細かい同期レートを用いることを特徴とする請求項９に記載のビデオサーバシステムの動作方法。
【請求項１１】
粗粒子同期を実行する前記過程が、所望の一定ビットレートに等しいビットレートを確立することによってなされることを特徴とする請求項８に記載のビデオサーバシステムの動作方法。
【請求項１２】
ビデオサーバシステムの動作方法であって、
ネットワークインタフェースをビデオサーバに接続するとともに、ネットワーク接続を介して、複数の宛先局システムの一つに接続する過程と、
前記サーバから一定ビットレートデータのビットストリームを出力する過程と、
複数のエントリに対し応答するビットポンプを用いる過程であって、各エントリはメモリ内の特定の位置に対するポインタと、ネットワークを介してなされるデータ伝送の性質を規定するヘッダ情報とを含んでいる該ビットポンプ使用過程とを含むことを特徴とするビデオサーバシステムの動作方法。
【請求項１３】
前記ヘッダ情報が一定ビットレート情報と同期情報とを含んでいることを特徴とする請求項１２に記載のビデオサーバシステムの動作方法。
【請求項１４】
前記ヘッダ情報が、伝送されるべきデータから得られるネットワーク伝送情報を除き、ネットワークを介してなされるデータ伝送に影響を与えるよう用いられることを特徴とする請求項１２に記載のビデオサーバシステムの動作方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に、ビデオサーバとともに用いられるビデオ信号伝送システムに関する。特に、ジッター（jitter）及びドリフトを抑制しつつ一定ビットレートのビデオ信号データ伝送のスケジューリングを行うための装置及び方法に関する。
【０００２】
【従来の技術】
ビデオサーバ（ネットワークにつながれたビデオサーバを含む）は、本分野では公知である。伝送端において、ビデオサーバは、通常、映画または他のエンタテーメント（“作品”と呼ぶこともある）からなるマルチメディア（例えばビデオ及び音声信号）ソースライブラリを含んでいる。作品を形成するビデオ及び音声信号は“ビットストリーム”（単に“ストリーム”と呼ばれることもある）としてビデオサーバに格納される。ビデオサーバは１または複数のユーザが１または複数の映画を見るのを可能とする。ある時間にビデオサーバを使用することを許可されたユーザの数を制限し、ネットワークまたはディスク記憶サブシステムの過負荷を防ぐため、入場制御手段（admission arbitrator）ユニットが設けられている。過負荷になると、映像の動きが遅くなりすぎたり、途切れ途切れに進行したり（あるいは後戻りしたり）する。
【０００３】
ビデオサーバは磁気記憶ハードディスクドライブを有しており、ビデオ作品からのブロックがそこに磁気的に格納される。作品の長さは、３０秒のコマーシャルから２時間程度の特作映画まで、任意である。ＶＨＳ画質のビデオ信号ストリームに対しては、伝送レートは典型的には、ＭＰＥＧ−１符号化で１．５乃至２メガビット／秒であり、ＭＰＥＧ−２符号化で４メガビット／秒である。フルレゾリューション（ＣＣＲ−６０１）ビデオ信号は、通常、より高いレート（４乃至８メガビット／秒）で記録され、ＨＤＴＶグランドアライアンスシステム（HDTV Grand Alliance systems）では１０乃至４５メガビット／秒のレートが可能である。従って、１つのＭＰＥＧ−１またはＭＰＥＧ−２映画は１ＧＢ乃至８ＧＢの記録媒体を必要とし、典型的な２時間のＶＨＳ画質の映画は約１．８ＧＢのディスクスペースを必要とする。
【０００４】
ビデオストリームをタイミング良く伝送するのに必要なスループットを維持するには、一つの映画に対するビットストリームを１台のハードディスクユニットに格納することはできない。なぜなら、通常の１台のハードディスクドライブは数メガバイト／秒のレートでしかデータを出力することができないからである。このボトルネックを回避するため、映画のブロック（例えば、連続した０．５秒）を複数のハードディスクユニット内に格納することが行われている。これらのブロックはバッファへ読み出されネットワークを通じて伝送される。バッファへ読み出されたブロックがネットワークを介して送られると、その映画の新たなブロックがハードディスクユニットのセット（以後、ディスクアレイと呼ぶ）から読み出される。受信端においてこれらのブロックは復号され、ビデオモニタ、テレビジョン受信機などでユーザが見ることができるようにされる。
【０００５】
サーバは、ディスクアレイからビットストリームを一定のビットレートで伝送する。ビデオサーバは、ストリームリクエスト（stream request）がいったん受け付けられると、そのストリームが終わるかあるいは停止命令を受け取るまで特定の一定なビットレートで確実に伝送しなければならない。
【０００６】
伝送されたビデオストリームは独立している。すなわちそれらは各々独立して停止及びスタート可能である。さらに、これらの伝送されたビットストリームは各々異なる内容（即ち、各々異なる映画）であってもよく、あるいは例えば同じ映画からのビデオデータを含む複数のビデオストリームのように、伝送された複数のストリームが同じ内容からのストリームであってもよい。更に、これらの同じ内容からのビデオストリームが同期している必要はなく、それによってあるユーザと別のユーザとで見始める時間が異なっているような場合でも、２人以上のユーザが同じ映画を同時に見ることが可能となっている。
【０００７】
ビデオサーバシステム用に用いられる一般的なモデルには２つのモデルがある。一つはいわゆる“プル（pull）”モデルであり、それによると、受信装置がビデオサーバに対し情報をリクエストし、ビデオサーバはこれらのリクエストに応答する。このような“プル”型システムでは、たとえビットエラーが発生した場合でもデータが適切な順番で正確なタイミングで送られるようにするための実時間制御（present controls）が存在する。なぜなら、受信装置がビデオサーバの制御に重要な役割を果たしており、情報を再度リクエストしたり、あるいは前のリクエストが適切に受信されるまでリクエストを保持しておくことができるからである。
【０００８】
ビデオサーバのもう一つのモデルは、“プッシュ（push）”モデルである。それによると、ビデオサーバは、ビデオストリーム開始の初期命令を受信すると、動的フロー制御やエラー回復プロトコルなしで、一定のビットレートでそのビデオストリームを“プッシュする（押し出す）”。ストリーム伝送のこのような“プッシュ”モデルでは、サーバはディスクアレイからビデオストリームを一定のビットレートで伝送する。ビデオサーバに対しリクエストをするクライアントは、ストリームリクエストがいったん受け付けられれば、そのストリームが終わるかあるいはサーバが停止命令を受け取るまで特定の一定なビットレートでそのストリームが伝送されるものと仮定することができる。
【０００９】
ＭＰＥＧ−１及びＭＰＥＧ−２符号化データのようなビデオデータは時間依存した特性を有しており、そのためデータの復号を行う１または複数のクライアントへのサーバからのディジタルネットワークを介したデータのリアルタイム伝送に対し特別な要求が生じている。このような要求が生じる要因の一つは、リソースの多くの費用が受信装置ではなくサーバ側にかかっていることである。このため、デコーダで使用可能なバッファリングは非常にわずかしかない。（バッファリングの量は通常ミリ秒で測られる。）ユーザが作品の再生（play）をリクエストしたとき、サーバはデータのほとんど全てのビットがデコーダ（例えばセットトップボックス（set-top box））に意図された時間通りに確実に到着するようにしなければならない。そのような時間の制約がうまく満たされないと、データが役に立たないものになってまう恐れがある。
【００１０】
ビデオ信号の伝送に関するこれらの時間に依存した要請を満たすのに持続的または周期的に失敗すると、それらは“ドリフト”及び“ジッター”として現れる。ドリフトは、サーバが連続的に数ミリ秒だけ遅れるときのように、一方向に持続的にずれる傾向である。ドリフトによって作品の内容が理解不能になる恐れがある。ジッターは出力装置の一時的なオーバーランまたはアンダーランであり、例えば作品の再生において不規則に変動する動きとして現れる。マルチメディアストリームの適切な伝達を行うためには、ドリフト及びジッターを許容可能な範囲に抑えなければならない。
【００１１】
ＭＰＥＧデータストリームの構造及び規定されたタイミングに関する要請については広く知られており、例えば、“ＩＳＯドラフト国際標準ISO/IEC DIS 13818-1, NXD, 国際標準化機構、１９９４年”に掲載されている。ＭＰＥＧ−１及びＭＰＥＧ−２ビデオストリームでは、ビデオストリームの時間制約は符号化されたビットストリームに含まれるタイムスタンプヘッダ（time stamp header）によって識別される。このタイムスタンプヘッダはプログラムタイムスタンプ（Program TimeStamp：ＰＴＳ）として知られており、プログラムクロックリファレンス（Program Clock Reference：ＰＣＲ）またはシステムクロックリファレンス（System Clock Reference：ＳＣＲ）として知られている基準時間について計算される。任意の２つの連続したＰＣＲタイムスタンプの時間差は、そのビットストリームに特有のビットレートでそれらの２つのＰＣＲのスタートの間のバイトを再生（play out）するのに必要な時間を正確に反映していなければならない。
【００１２】
従来技術では、一定のビットレートでのビデオデータ伝送は、ネットワーク上を伝送されるビットに対しタイミングを与えるネットワーククロックに基づいてビデオデータ伝送のスケジューリングを行うことによって達成される。そのような方法は、伝送されるデータのレートがネットワーククロックによってサポートされる粒度（granularities）に限定されるという制限を有しており、任意のビットレートでの同時的なビデオストリームの伝送が不可能となる恐れがある。さらに、サーバの設計が特定のネットワーク出力デバイスに依存することとなり、データを送るとき介さなければならない出力デバイスの各タイプに対して修正が必要である。
【００１３】
圧縮された動画ビデオデータファイルは、時間依存したデータの連続したストリームの形で情報を含んでいる。このビデオストリームはその時間依存特性を規定するシステム情報（ＳＩ）の断片をビデオストリーム内の様々な位置に含んでいる。例えば、ＭＰＥＧ−２トランスポートストリーム（MPEG-2 Transport Stream）圧縮エンコーダを用いて符号化されたディジタルビデオ信号では、ＳＩ情報はシステムヘッダ内のプログラムクロックリファレンス（ＰＣＲ）に反映される。通常、これらのビデオデータストリームがビデオサーバ内のディスクに格納されるとき、サーバはビデオデータストリーム内に埋め込まれたＳＩ情報を用いて、データの伝送が適時行われるようスケジューリングする。このように“様々な位置にある”ＳＩ情報を参照してビデオデータ伝送のスケジューリングをするという方法は、通常、同時に伝送されるビデオストリームの数が多いときサーバにおいてＣＰＵを頻繁に使用する結果となり、（同時に伝送可能なビデオストリームの数に関して）サーバの性能を制限することとなる。
【００１４】
【発明が解決しようとする課題】
従って、本発明の主な目的は、ジッター及びドリフトを抑制しつつ複数のビデオデータを同時に任意のビットレートで伝送することができるビデオサーバシステム及びその動作方法を提供することである。
【００１５】
【課題を解決するための手段】
本発明の原理によると、複数のビデオストリームを同時に出力することができるビデオサーバが開示される。各ビデオストリームは２つの同期レベル（粗粒子及び微粒子）で同期化される。粗粒子同期（coarse-grain synchronization）は複数のデータパケットに対しソフトウエアにおいて実行される。微粒子同期（fine-grain synchronization）はネットワーククロックを用いて実行される。本発明に基づく粗粒子及び微粒子同期の両方を用いることによって、ドリフト及びジッターが抑制され、受信装置に一定のビットレートで正確に情報が伝送される。
【００１６】
本発明の別の特徴として、例えばビットレート情報、粗粒子及び微粒子同期に関連するレートについての情報のようなヘッダ情報を含むビットポンプ（bit pump）が用いられる。この予め初期化された（preinitialized）ヘッダ情報を使用することにより、ＣＰＵがタイミング情報を伝送されるべきデータから参照しなければならない従来技術のシステムと比べて、ＣＰＵデマンドの数が減少される。
【００１７】
【発明の実施の形態】
図１に、本発明に基づいてビデオ情報が配列されて格納され、配布されるビデオ情報伝達システムを示す。音声及びビデオ情報源１０は符号化システムの一部であり、符号化システムにはビデオエンコーダ６０と、音声、ビデオ及びテキスト情報を同期させるためのメディア同期装置７０も含まれている。この符号化システムは、処理した出力を１または複数のネットワーク３０を介して１または複数のクライアントまたはデコーダシステム４０に送る。ネットワークは、エンコードされた情報ストリームの多重送信を行う、いわゆるネットワーククラウド（network cloud）を介してネットワーク伝送が発生する均質なものとすることも、あるいは伝送をポイントツーポイントとすることもできる。不均質な場合、ネットワークのバンド幅（bandwidth）特性は、電話用の６４Ｋｂｐｓ程度の低さから、ＡＴＭネットワーク用の１５５Ｍｂｐｓ以上の範囲に渡って様々な値をとり得る。
【００１８】
サーバ２０には、まとめて符号５０が付された関連するメモリを有する中央演算処理装置（“ＣＰＵ”）が含まれている。さらにサーバ２０は、エンコーダ６０によって処理された情報をビデオ記憶ディスクユニット９０（または他の記憶媒体）上に配列するためのディスクレイアウトシステム８０を含んでいる。信号処理された音声情報用に記憶装置１００も設けられている。本発明は、音声情報とビデオ情報が、例えばインタリーブ技術を用いて、共通の記憶ディスクユニット９０に格納されるようなシステムに用いることもできる。そのようなシステムでは、図１に示されている独立した記憶ユニット１００は省かれる。
【００１９】
入場制御手段１１０及びビットエラーまたはパケットセルの喪失に対処するためのコミュニケーションエラー回復手段１２０も処理済みビデオ信号記憶装置９０に接続されている。サーバはネットワークインタフェース１３０を介して１または複数の不均質なネットワーク３０と情報をやりとりする。１または複数のネットワーク３０の各々は１または複数のデコーダシステム４０に接続されている。
【００２０】
受信端において、デコーダシステム４０は各々中央演算処理装置（“ＣＰＵ”）１４０を含んでいる。ＣＰＵ１４０はＣＰＵ本体と関連するメモリとを含んでいる。メモリにはキャッシュメモリが含まれ得る。更にデコーダ４０は入力される音声信号とビデオ信号とが組み込まれた信号からそれらの音声情報とビデオ情報を同期させるための手段１４５と、音声デコーダ１５０と、ビデオデコーダ１６０も含んでいる。これらのデコーダからの出力は音声発生器（例えばスピーカ１９０）及びビデオ表示装置（ここではテレビ１８０として図示）に送られる。
【００２１】
図１に示されているシステムには多くの応用が考えられる。例えば、ホテルに於いて宿泊客が見ることができるように複数の客室でビデオオンデマンド（video on demand）機能が使えるようにしてもよいし、あるいはケーブルテレビ会社が複数の加入者にビデオオンデマンド機能を提供するようにすることもできる。
【００２２】
所望に応じて、ディスクレイアウトシステム８０は、スケーラブルなビデオエンコーダを用いたエンドツーエンドのスケーラブルビデオシステムと共に用いることもできる。そのようなビデオエンコーダは、１９９５年４月１８日に出願され、本出願人に譲渡された、“SOFTWARE-BASED ENCODER FOR A SOFTWARE-IMPLEMENTED END-TO-END SCALABLE VIDEO DELIVERY SYSTEM”という名称の米国特許出願第０８／４２３，８１２号明細書に開示されている。このようなシステムでエンコードされたビデオストリームをデコードするためのビデオデコーダは、１９９５年４月１８日に出願され本出願人に譲渡された、“DECODER FOR A SOFTWARE-IMPLEMENTED END-TO-END SCALABLE VIDEO DELIVERY SYSTEM”とう名称の米国特許出願第０８／４２４，７０３号明細書に開示されている。もちろん、ディスクレイアウトシステム８０は、より従来からあるビデオディスプレイシステムと共に用いることもできる。このシステムは、所望に応じて、１９９５年５月２２日に出願され本出願人に譲渡された、“SERVER DISK ERROR RECOVERY SYSTEM”という名称の米国特許出願に開示されているようにビデオディスクシステム９０及びエラー回復システム１２０を用いることもできる。
【００２３】
本発明の一側面によると、ドリフト及びジッターを最小化するように同期を達成し、確実にビデオサーバと表示装置との間のタイミングを合わせてデータを有用なものとするため、新規なタイミング調整及び制御システムが提供される。
【００２４】
本発明によると、１または複数のネットワーク３０の一つを介して伝送される各ビデオストリームに対し、サーバ２０からのマルチメディアデータを形成するビットストリームは粗粒子及び微粒子の２つの同期レベルで同期化される。粗粒子同期は、以下に詳細に述べるように、ビットポンプとして知られるソフトウエアモジュールにより、大きなデータのかたまり（DataChunk）に対してソフトウエアにおいて維持される。この粗粒子同期は、図２に示すように、パケットグループの長さを基にして、そのビットストリームの正確なビットレート（RateCoarse）に対応してなされる。微粒子同期はネットワーククロックそのものを用いて実行される。すなわち、ネットワーク３０のビットレートに対応している。ネットワーク３０のビットレートは、そのネットワークのバンド幅に依存して、そのネットワーク用のネットワークインタフェース１３０によって確立される。
【００２５】
ネットワーク伝送レートの粒度は、粗粒子同期に対する伝送レートより若干高い伝送レート（RateFine）に対応して選択される。即ち、RateFineは符号化ビットレートに適合した最も近い粒度へと切り上げる（round up）ことによって設定される。例えば、ネットワーク３０が６４Ｋｂｓのバンド幅粒度を有するＡＴＭネットワークで、１．５Ｍｂｓの一定のビットレートを有することが望まれる場合、RateCoarseは以下の式（１）に従って設定される。
【００２６】
１／RateCoarse＝ΔＴ＝バッファサイズ／一定のビットレート        （１）
【００２７】
従って、８Ｋのバッファサイズに対しては、
【００２８】
１／RateCoarse＝ΔＴ＝８Ｋビット／１．５Mbps＝５，３３３μsec   （２）
【００２９】
となる。この例では、RateFineは、
【００３０】
ΔＴfine＝１／RateFine＝８Ｋビット／（６４Kbps・ｘ）            （３）
【００３１】
であり、ここでｘは、
【００３２】
６４Ｋｂｐｓ・ｘ≧１．５Ｍｂｐｓ
【００３３】
となるように選択される。従って、この例ではｘ＝２４であり、
【００３４】
0003789995.tif 000002
【００３５】
本発明によると、長期のビットレートはソフトウエアビットポンプに同期化される。上述した方法におけるジッターは以下の式に従って抑制される。
【００３６】
最大ジッター＝(DataChunk)＊((1/RateCoarse)- (1/RateFine))
【００３７】
ここで、RateFine＞RateCoarseである。
【００３８】
最大ジッターは、ネットワークアダプタカードによって提供されるインタフェースを用いることによってRateFineパラメータを適切に選択することにより制御可能である。インタフェースがない場合は、ネットワークにデフォルトとして定められているビットレートが使用される。ドリフトはビットポンプにおけるソフトウエアクロックの精度によって制約される。このクロックはホストコンピュータに基づいているため、ドリフトはホストコンピュータ上のクロックの精度に制限される。それによって十分低いドリフトが得られ、許容可能な品質とすることができる。
【００３９】
図３は、本発明のこの特徴に基づく、ビットポンプ４０１を含む構造の一実施例を示している。ビットポンプ４０１はディスク９０、１００とネットワーク３０との間に最適なデータパスを設定する働きをする。いったんデータパスが設定されると、データはディスク９０、１００からネットワーク３０へとシステムメモリ５０−２を介して直接流れる（図１）。データはネットワーク３０上をデータパスの生成過程において設定された特性で伝送される（一定のビットレートに対するレート制御を含む）。
【００４０】
データポンプ４０１は各データストリームに対しデータバッファ４０１−１を提供する。バッファ４０１−１はディスク読み出しのスケジューリングをするためビデオオンデマンド（ＶＯＤ）アプリケーション４０７によって使用される。また、データバッファ４０１−１は、ＡＴＭネットワーク３０または他の出力デバイスを介して送られる各ストリームのデータ伝送のスケジュールを実施するのにビットポンプ４０１によって用いられる選択されたネットワークパラメータで初期化される。
【００４１】
ＶＯＤアプリケーション４０７は、ディスク読み出しスケジュールが、ネットワークデータ伝送のデッドライン（deadline）を満たすように実行されるようにする役割を担っている。一定ビットレート（constant bit rate：ＣＢＲ）の場合、データバッファ４０１−１の吐き出しは、ビットポンプ４０１により特定のサイズのネットワークパケットを用いて特定のレートでなされる。データ伝送のレート同期は、図２に示したように、粗粒子及び微粒子の２つのレベルの粒度でなされる。
【００４２】
粗粒子同期は、ビットポンプモジュールによって、解像度の粗いオペレーティングシステムソフトウエアタイマを用い、複数個のパケットのような大きなデータのかたまり（このため、“粗い”と呼ばれる）に対し実行される。
【００４３】
微粒子同期は、ネットワークハードウエア（例えばＡＴＭインタフェースのような出力ドライバ１３０）によって実行される。ここでのレート同期は下層に位置するネットワークデータユニットレベル（例えば、ＡＴＭに対しては、ＡＴＭセルレベル）におけるものである。即ち、セル（cells）はホストメモリからＡＴＭインタフェースカード上のバッファへのＤＭＡに対しスケジュールされ、その後、ビットストリームの一定のビットレートから決定される到着間時間（interarrival time）でネットワークへと送り出される。
【００４４】
粗粒子ビットレートは、所望の一定のビットレートそのものに対応する値に設定される。さらに、ネットワーク伝送パスに待ち行列オーバフローが発生するのを防ぐため、粗粒子レートはＡＴＭハードウエアセルレートのより細かい同期より若干低い値に設定される。その結果、長期のレート同期は、ネットワークハードウエアクロックではなく、オペレーティングシステムのタイマを基準とすることとなる。
【００４５】
これら２つの同期レベルのわずかな違いの結果、ジッターは２つのレベルのレートの差に正比例する。このジッターはデータチャンクバッファ４０１−１（図３）のネットワークへの各伝送に於いて周期的に発生する。これはより悪い場合のジッターであることに注意されたい。すなわちジッターはこの量によって制約される。
【００４６】
ＲBitPump＜ＲNetwork                                        （５）
【００４７】
ビットポンプ４０１は、内部のバッファリングの割り当て及び内部バッファを用いた出力デバイスとディスクとの間の効率的なデータ伝送の役割を担っている。すなわち、粗粒子及び微粒子スケジューリング及び出力ドライバのレート制御の機能を果たす。ビットポンプ４０１は使用される特定の出力ドライバにやや依存する。ネットワーククロックはネットワークインタフェースの様々なタイプに応じて変わり得るからである。
【００４８】
ビットポンプ４０１はヘッダ情報とバッファ４０１−１内の特定のアドレスロケーションを指し示す情報とを含んでいる。ヘッダは所与のビデオストリームに対し、そのストリームが振り向けられるべきネットワークと、そのネットワークを介するデータ伝送の性質を規定する情報とに基づいて初期化される。例えば、ヘッダ情報には一定ビットレート情報、RateFine情報及びRateCoarse情報が含まれる。
【００４９】
本発明によると、ヘッダ情報が予め初期化されるため、データポンプ４０１はヘッダ情報を速やかに使用することができ、この情報を抽出するまたは求めるためにデータパケット自身を分析する必要がない。このことは、一定のビットレートを維持するため必要とされる情報を得るためにビデオサーバがデータパケットを分析する必要のあった従来技術に対し、大きな利点である。本発明の一実施例ではビットポンプ４０１はカーネルレベルのプログラムであり、スケジューラ４０２などのメディアストリームマネージャ（Media Stream Manager）のようなアプリケーションプログラムにカーネルレベルのインタフェースを与える。ビットポンプ４０１はヘッダのフォーマットを規定するフォーマット情報を含んでおり、アプリケーションプログラムが提供する情報によってヘッダが完成され得るようになっている。
【００５０】
本発明のこの特徴に基づくと、ディスクからのビデオデータストリームの伝送はビデオデータストリーム中のＳＩ情報を参照することなくなされ、それによってＣＰＵのオーバヘッドが低減され、多数のビデオストリームを同時に取り扱うことができる。ビデオストリームが一定ビットレートエンコーダを使用して符号化される場合、ビデオストリームの任意の２つの位置の間のビット距離（即ち、バイト数で表した２つの位置の間の差）は、これらの２つの位置の間の時間距離（即ち、これらの位置のデータがディスプレイに与えられる時間（タイミング）に関する距離）に比例する。即ち、
【００５１】
Ｔ2＝Ｔ1＋（ＢN+1とＢNとの間の距離（バイト））／RateCoarse      （６）
【００５２】
こうして本発明によると、サーバは、ビデオデータストリームの内部のＳＩ情報そのものを参照することなく、符号化されるビデオデータストリームの一定のビットレートにのみ基づいて、適時伝送されるようにビデオデータのスケジューリングを行う。このことは、この問題をバイト位置Ｂ２及びＢ１の近辺のＳＩ（２）及びＳＩ（１）情報を参照することによって解決し、ＳＩ（２）−ＳＩ（１）によって与えられる時間のあいだＢ２とＢ１の間のビデオデータを送信していた従来技術に対し大きな利点である。
【００５３】
本明細書中で触れた文献及び特許出願は全て、個々の文献または特許出願が引証として加えられるべく個別に示されたのと同じように、本出願に引証として加えられる。
【００５４】
本発明について説明してきたが、当業者には明らかなように、本発明の請求の範囲を逸脱することなく様々な変形変更が可能である。
【図面の簡単な説明】
【図１】ビデオオンデマンドのクライアント・サーバアプリケーションに適したビデオ信号配布用ネットワークを示す図。
【図２】本発明の一実施例に基づく、ネットワークへの伝送のための一定ビットレートビデオ信号用サーバスケジューリング機構を示す図。
【図３】本発明の一実施例に基づき構成されたビデオオンデマンドサーバを示す図。
【符号の説明】
１０  音声及びビデオ情報源
２０  サーバ
３０  ネットワーク
４０  デコーダシステム
５０  ＣＰＵ
６０  ビデオエンコーダ
７０  メディア同期装置
８０  ディスクレイアウトシステム
９０  ビデオディスクユニット
１００  音声情報用記憶装置
１１０  入場制御手段
１２０  エラー回復手段
１３０  ネットワークインタフェース
１４０  ＣＰＵ
１４５  音声情報及びビデオ情報同期手段
１５０  音声デコーダ
１６０  ビデオデコーダ
１８０  テレビ
１９０  スピーカ
４０１  ビットポンプ
４０１−１  バッファ
４０２  スケジューラ
４０７  ビデオオンデマンド（ＶＯＤ）アプリケーション
【図１】
0003789995.tif 000003
【図２】
0003789995.tif 000004
【図３】
0003789995.tif 000005