(57)【要約】本発明は、データソース（２ａ）から出力データを受信する一定の第１出力レート（Ｒ１）を持つバッファ（３）に対する情報の出力レートを変更する方法及びシステムに関し、前記方法は、データソース（２ａ）からの出力データの受信を停止するステップと、前記バッファが空になるまでバッファ（３）の記憶された出力データを第１出力レート（Ｒ１）で出力し、バッファ（３）における出力データの受信及び記憶を再開するステップと、前記バッファの出力レートとして第２の一定の出力レート（Ｒ２）を設定するステップと、バッファリングされたデータの量が第２の一定の出力レート（Ｒ２）及び所要のバッファ時間（ＴＢ２）の積に等しい場合に、前記バッファの内容の出力を第２出力レート（Ｒ２）で開始する／始めるステップとを有する。
2005523617.tif 000002
【特許請求の範囲】
【請求項１】
一定の第１出力レートを持つバッファに対する情報の出力レートを変更する方法であり、前記バッファが、データソースから出力データを受信し、前記出力データが、前記バッファに記憶されるように追加される方法であって、前記方法が、
前記データソースからの出力データの受信を停止するステップと、
前記バッファが空になるまで前記バッファの記憶された前記出力データを前記第１出力レートで出力するステップと、
前記バッファの内容の出力を止めるステップと、
前記バッファが実質的に空である場合に、前記バッファにおいて前記データソースからの前記出力データの受信及び記憶を再開するステップと、
前記バッファの前記出力レートとして第２の一定の出力レートを設定するステップと、
バッファリングされた前記データの量が、前記第２の一定の出力レート及び所要のバッファ時間の積に実質的に等しい場合に、前記バッファの記憶された内容の出力を前記第２の出力レートで開始するステップと、
を有することを特徴とする方法。
【請求項２】
前記データソースが、前記バッファに対する前記所要のバッファ時間と、前記第２の一定の出力レートとを指定する、請求項１に記載の方法。
【請求項３】
前記バッファが空である場合に、前記出力データの前記再開するステップが開始される、請求項１に記載の方法。
【請求項４】
前記データソースが、入力データを受信及び処理し、前記出力データを出力するように構成されたソフトウェアアプリケーションである、請求項１に記載の方法。
【請求項５】
前記バッファがハードウェアバッファである、請求項１に記載の方法。
【請求項６】
前記出力データの受信を停止するステップが、前記データソースによる前記入力データを捨てるステップを有する、請求項１に記載の方法。
【請求項７】
前記入力データが、ＭＰＥＧ２準拠のエレメンタリストリームであり、前記データソースが、前記ＭＰＥＧ２ストリームをトランスポートストリームに多重化するように構成される、請求項１に記載の方法。
【請求項８】
バッファに対する情報の出力レートを変更する装置であり、前記バッファが、一定の第１出力レートと、データソースから出力データを受信する手段と、前記出力データを前記バッファに追加及び記憶する手段とを有する装置であって、前記装置が、
前記データソースからの出力データの受信を停止する／止める手段と、
前記バッファが空になるまで前記バッファの記憶された内容を前記第１出力レートで出力する手段と、
前記バッファの前記内容の出力を止める手段と、
前記バッファが実質的に空である場合に、前記データソースからの出力データの受信及び追加／記憶を再開する手段と、
前記バッファの出力レートとして第２の一定の出力レートを設定する手段と、
バッファリングされた前記データの量が、前記第２の一定の出力レート及び所要のバッファ時間の積に等しい場合に、前記バッファの前記記憶された内容の出力を前記第２の出力レートで開始する手段と、
を有することを特徴とする装置。
【請求項９】
前記装置が、前記バッファに対する前記所要のバッファ時間と、前記第２の一定の出力レートとを指定する手段を有する、請求項８に記載の装置。
【請求項１０】
前記装置は、前記バッファが空である場合に前記出力データを再開するように構成される、請求項８に記載の装置。
【請求項１１】
前記データソースが、入力データを受信及び処理する手段と、前記出力データを出力する手段とを有するソフトウェアアプリケーションである、請求項８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バッファに対する情報の出力レートを変更する方法に関し、ここで前記バッファは一定の第１出力レートを持ち、データソースから出力データを受信し、前記出力データは、前記バッファに記憶されるように追加される。
【０００２】
本発明は、更に、バッファに対する情報の出力レートを変更する装置に関し、前記バッファは一定の第１出力レートを持ち、データソースから出力データを受信する手段と、前記バッファに前記出力データを追加及び記憶する手段とを持つ。
【背景技術】
【０００３】
データストリーム中のデータの処理は、典型的には、入力データストリームを処理するデータシステムを含む。前記データシステムは、通常は、ハードウェアのみでなく、順応性を向上するソフトウェア・コンポーネントからも構成される。データストリームにおいて複数の処理を処理する最もコスト効率の良い仕方は、総数のタスクを扱うようにプログラムされた単一のカーネルで全ての処理を取り扱うことである。これを更に最適化するために、前記システムに非リアルタイムモードで動作させることは一般に使用される。これは、しかしながら、処理の１つ以上がタイムクリティカルであるという制限を生じうる。もし非リアルタイム・コンポーネントが複数のタスクを実行し、同時に処理するならば、前記データシステムは、連続的に流れる出力データストリームを生成しないだろう。出力は、バーストで表れ、従って一定の出力レートは保証されることができない。
【０００４】
従って、非リアルタイムデータを一時的にバッファリングするハードウェアバッファを導入して、非リアルタイム・コンポーネントがデータの出力を実行しない時間期間を乗り切ることは、一般に知られている。典型的には、非リアルタイムで実施されたデータソース・コンポーネントは、ソフトウェア・コンポーネントを有する。
【０００５】
データソース・コンポーネントが実行する場合、これは、入力信号を消費及び処理し、出力データを生成することができる。出力データは、ハードウェアバッファに追加される。このハードウェアバッファは、一定の出力レートで空にされ、バッファリングされたデータの安定した流れを保証し、例えば、リアルタイムシステムの所望の出現を促す。前記ハードウェアバッファを使用して、データは、前記データソース・コンポーネントが予定されていない時間の間に出力されることができる。前記ハードウェアバッファは、前記データソース・コンポーネントの次に実行する瞬間までの時間を乗り切るのに十分なデータを含んでいなければならない。
【０００６】
前記データソース・コンポーネントが実行された後に、生成されたデータは、出力される前に特定の時間期間、前記ハードウェアバッファに存在するだろう。前記ハードウェアバッファにおける前記データの遅延に等しい前記データが前記ハードウェアバッファ内にある時間は、典型的にはバッファ時間と称される。
【０００７】
典型的には、バッファアンダーランを生じることなく、前記バッファ時間を可能な限り短く設計することがゴールである。
【０００８】
バッファ時間の定義は、ｔｂ＝Ｂ／Ｒであり、ここでＢはバッファリングされたデータの量であり、Ｒは出力レートである。
【０００９】
様々な応用において、全体的に静的な出力レートを持つことは高度に許容不可能である。出力レート増加の場合、前記バッファ時間が前記データソース・コンポーネントの連続した実行の瞬間の間の最大時間より短くなるので、ハードウェアバッファ・アンダーフローのために問題が生じるかもしれない。出力レート減少の場合、前記ハードウェアバッファは、前記バッファ時間が許容不可能な高い値を収集し、従って前記データがより長い時間期間前記バッファ内に存在するので、前記ハードウェアバッファは、前記データが出力される前に許容不可能な遅延を導入するかもしれない。
【００１０】
従って、制御されない仕方で出力レートを変更することは、不明確な又は不所望なバッファ時間を生じる。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、一定の第１出力を持つバッファに対する情報の出力レートを変更する方法を提供することである。即ち、本発明の目的は、先行技術の問題を解決する方法を提供することである。
【課題を解決するための手段】
【００１２】
これは、一定の第１出力レートを持つバッファに対する情報の出力レートを変更する方法により達成され、ここで前記バッファは、データソースから出力データを受信し、前記出力データは、前記バッファに記憶されるように追加され、前記方法は、前記バッファに対する所要のバッファ時間及び第２の一定の出力レートを指定するステップと、前記データソースからの出力データの受信を停止するステップと、前記バッファが空になるまで前記バッファの記憶された前記出力データを前記第１出力レートで出力し、前記バッファが実質的に空の場合に前記バッファにおいて前記データソースからの前記出力データの受信及び記憶を再開するステップと、前記バッファの出力レートとして第２の一定の出力レートを設定するステップと、バッファリングされたデータの量が前記第２の一定の出力レート及び前記所要のバッファ時間の積と実質的に等しい場合に、前記第２出力レートで前記バッファの記憶された内容の出力を開始する／始めるステップとを有する。
【００１３】
このように、一定の出力レートを持つバッファは、制御可能な仕方で異なる出力レートを供給し、これにより上述の欠点を防止することができるだろう。
【００１４】
ＭＰＥＧ−２トランスポートストリームは、通常は、一定のビットレートを持つが、しかしながら、データ帯域幅を最適化するために、時々、前記ビットレートは調整されてもよい。これは、本発明を特にテレビ及びラジオ番組のようなリアルタイム放送データに対して有用にする。
【００１５】
圧縮技術に起因してある種の処理を必要とするデジタル放送に対して、本発明は、最小の遅延、即ち可能な限りリアルタイムに近い遅延を導入するだろう。即ち、バッファ長は、前記出力レートが変更されるたびに最適化され、従って、システム待ち時間（system latency）は可能な限り小さくなるだろう。
【００１６】
本発明は、例えば、本当のリアルタイムアプリケーションは従来的にはデータバッファリングの必要性が無いので、データフローをならすためにバッファを使用するいわゆる擬似リアルタイムアプリケーションに関する。しかしながら、一種のバッファを有する回復データ伝送可能なシステムのような本当のリアルタイムシステムも、本発明によって利益を得るかもしれない。
【００１７】
本発明による方法の実施例は、請求項２乃至７に記述される。
【００１８】
前記目的は、更に、序文による装置であって、前記装置が、前記データソースからの出力データの受信を停止する／止める手段と、前記バッファが空になるまで前記バッファの記憶された内容を前記第１出力レートで出力する手段と、前記バッファの内容の出力を止め、前記バッファが実質的に空の場合に前記データソースからの出力データの受信及び追加／記憶を再開する手段と、前記バッファの出力レートとして第２の一定の出力レートを設定する手段と、バッファリングされたデータの量が前記第２の一定の出力レート及び所要のバッファ時間の積に等しい場合に前記第２出力レートでの前記バッファの記憶された内容の出力を開始する／始める手段とを有することを特徴とする当該装置により達成される。
【００１９】
本発明による前記装置の実施例は、請求項９乃至１１に記述される。
【００２０】
添付図面は、実施例として本発明を図示する。
【発明を実施するための最良の形態】
【００２１】
図１は、バッファデータ出力バス（４）を持つバッファ（３）と組み合わせて入力データソース（１）を持つデータソース（２ａ）の処理を示す。バッファ（３）とバッファデータ出力バス（４）との間のデータストリームレートは、前記データソース（２ａ）と入力データソース（１）との間の前記ストリームレートのみが対応する性能により制限される一定の出力レート（Ｒ１，Ｒ２）に調整される。
【００２２】
データソース（２ａ）は、非リアルタイムのマルチスレッド処理システムであってもよく、これは、非タイムクリティカル動作で様々なジョブ、タスク、スレッド等を実行することができる処理システムを意味する。この環境における前記データソースに対する典型的なジョブは、バッファサイズの制御、所要の処理オーバーヘッドの計算、入力データの処理、ユーザデータの処理等であることができる。しかしながら、データソース（２ａ）がマルチスレッドであることは必要とされないかもしれない。
【００２３】
データソース（２ａ）は、アプリケーション（１）からの入力データを受信し、所要のデータ処理を実行する。前記データソースは、現在処理されている前記入力データに対する最適なデータレートを推定することができる。この後に、データソース（２ａ）は、所要の出力レート（Ｒ２）及び前記データソースの処理性能等に従って所望のバッファ時間を計算することにより前記バッファの第１出力レート（Ｒ１）を変更する潜在的な必要性を決定することができる。
【００２４】
データソース（２ａ）のソフトウェア・コンポーネントは、前記出力レート及び／又はバッファ時間変更手順を完了するために以下の状態を経るだろう：
１）前記ソフトウェア・コンポーネントが、通常の動作（Normal Operation）状態（図２の（１４）を参照）で実行する場合：
ａ）前記ソフトウェア・コンポーネントが、前記入力データを消費及び処理する。
ｂ）前記ソフトウェア・コンポーネントが、出力データ（２ｂ）を生成し、ハードウェアバッファに追加する。
ｃ）前記ハードウェアバッファが、一定の出力レート（Ｒ１）で空にされ、前記データが出力される（４）。
【００２５】
現在の出力レート（Ｒ１）と所要の出力レート（Ｒ２）とを比較する（５）ことにより、新しいバッファ時間（ＴＢ２）又は出力レート（Ｒ２）に対する新しい設定が必要であることがわかった場合、前記ソフトウェア・コンポーネントは、出力消去（Flush Output）段階に入る：
２）前記ソフトウェア・コンポーネントが実行し、これが出力消去状態（図２の（１５）を参照）である場合：
ａ）前記ソフトウェア・コンポーネントが、前記入力データを消費し、捨てる。
ｂ）前記ソフトウェア・コンポーネントが、出力データ（２ｂ）を生成せず、データが、前記ハードウェアバッファ（３）に追加されない。
ｃ）前記ハードウェアバッファが、古い出力レート（Ｒ１）で空にされ、前記データが、前記バッファ出力部（４）に出力される。
【００２６】
前記ハードウェアバッファが空にされ（８）、前記ソフトウェア・コンポーネントが、新しい出力レート開始（Start New Output Rate）状態に入る場合：
３）前記ソフトウェア・コンポーネントが実行し、これが新しい出力レート開始状態である場合：
ａ）前記ソフトウェア・コンポーネントが、前記入力データを消費及び処理する。
ｂ）前記ソフトウェア・コンポーネントが、出力データ（２ｂ）を生成し、前記ハードウェアバッファ（３）に追加する。
ｃ）ハードウェアバッファ（３）は空にされないが、所要の出力レート（Ｒ２）が設定される。
【００２７】
バッファリングされたデータの量が、前記所要の出力レートと前記所要のバッファ時間との積に実質的に等しい（Ｂ＝ｔｂ×Ｒ）場合、前記ソフトウェア・コンポーネントは、通常動作状態に再び入る。
【００２８】
本発明による方法の動作の主要な段階は、図２に図示される。データソース（２ａ）は、入力データ（１）を受信及び処理し、ここでデータ処理は、データ処理、エラー補正等を含んでもよい。
【００２９】
所要のバッファ時間（ＴＢ２）及び出力レート（Ｒ２）のどちらも現在のバッファ時間（ＴＢ１）及び出力レート（Ｒ１）と比較して変更されない限り、前記データソースは、入力データを実行し続け、出力データ（２ｂ）を生成してバッファ（３）に必要なデータフローを供給し続ける。もしデータソース（２ａ）が、現在処理されているデータによる前記出力レート又は前記バッファ時間に対する新しい設定が必要とされることを決定するならば、前記データソースは、出力消去段階に入るように設計されることができる。
【００３０】
前記システムが出力消去段階（１５）に入るとすぐに、前記データソースから出力された前記データは停止される（６）。前記バッファは、前記バッファ内に利用可能なデータがある限り出力レート（Ｒ１）で空にされる（７，８）。この間に、入力データソースデータ（１）は捨てられて、前記データがデータソース（２ａ）に存在する及び蓄積することを防ぐことができる。
【００３１】
前記バッファが空である場合、前記システムは、前記新しい出力レート開始状態に入り、ここで前記バッファのスループットは、停止されることができ（９）、即ちデータはバッファ（３）から出ることができない。
【００３２】
前記新しい出力レート開始状態の間に、新しい出力レート（Ｒ２）又はバッファ時間（ＴＢ２）が定められる。前記所要の出力レート／バッファ時間が設定され（１０）、前記データソースは、入力データ（１）の消費及び処理を再開される。前記バッファのスループットは、バッファ（３）が補充される（１１，１２）まで停止され、ここで前記バッファは、バッファリングされたデータの量が所要の出力レート及び所要のバッファ時間の積に等しい（Ｂ＝ＴＢ２×Ｒ２）場合に補充されるように定められる。前記バッファリングされたデータの量が、所要のバッファサイズ（１２）に等しい又は実質的に等しい場合、前記システムは、データスループット（１３）を可能にすると再び通常動作状態（１４）に入る。
【００３３】
図３は更に、システムＣＰＵ（１８）にデータを供給する入力データソース（１７）を有する本発明の実施例を図示する。ＣＰＵ（１８）は、請求項に記載された手段の機能を実行するように設計されたソフトウェアモジュール（１９ａ，１９ｂ）を有するシステムメモリ記憶部（１９）を有することができる。ＣＰＵ（１８）及び複数の所要のソフトウェアモジュール（１９ａ，１９ｂ）を有する手段により処理されたデータは、本発明に記載された前記方法によって制御されることができるバッファ（２０）に記憶されることができる。バッファ（２０）を空にする間、出力バス（２１）は、更に他のデータ処理アプリケーションに対する接続リンクであってもよい。
【図面の簡単な説明】
【００３４】
【図１】本発明による方法の実施例を示す。
【図２】３つの動作段階の実行を概略的なブロック図で図示する。
【図３】本発明による装置の実施例を示す。
【図１】
2005523617.tif 000003
【図３】
2005523617.tif 000004
【図２】
2005523617.tif 000005
【国際調査報告】
2005523617.tif 000006
2005523617.tif 000007
2005523617.tif 000008