説明

少なくとも1つのデータオブジェクトのグループを取り扱う方法及び装置

本発明は、データの実時間取扱に関連し、とりわけフレームの断片化を考慮したビデオレンダリング用のフレームを取り出すために必要な時間の推定に関連する。これは、特にトリックプレイのデータ取り出しに関しては些細なことではない。何故なら、取り出されるべきフレームが断片化されているかどうかは事前には分からないからである。非連続的に断片化されたフレームの取り出しには、断片化されていないフレームを取り出しより少なくとも2倍多い時間がかかる。本発明は、割り当て単位が取り出されるべきフレームのサイズよりも大幅に大きい場合を考慮して、様々な有利な実施例を提供する。本発明の一実施例は、トリックプレイの速度、割り当て単位のサイズ、フレームサイズ及び取り出すべきフレーム間の論理データ距離が判明している場合に正確な取り出し時間を推定する方法を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、少なくとも1つのデータオブジェクトのグループを取り扱う方法に関する。
【0002】
本発明は、更に、少なくとも1つのデータオブジェクトのグループを取り扱う装置に関する。
【0003】
本発明は、コンピュータが、少なくとも1つのデータオブジェクトのグループを取り扱う方法を実行するようにプログラムされることを可能にするコンピュータプログラムにも関する。
【0004】
本発明は、更に、前記コンピュータプログラムを担持する、記録担体に関する。
【0005】
本発明は、少なくとも1つのデータオブジェクトのグループを取り扱う方法を実行するようにプログラムされたコンピュータにも関する。
【背景技術】
【0006】
1997年の対話型分散マルチメディアシステム及び遠隔通信サービス(Interactive Distributed Multimedia Systems and Telecommunication Services)に関するヨーロッパワークショップにおける論文「可変レートデータストリーム用ディスクスケジューリング」は、実時間処理するために複数のデータストリームに対するデータ要求をスケジューリングする方法を開示している。
【0007】
たとえばレンダリングのためにビデオストリームを取り出すとき、データの実時間処理が必要とされる。ビデオデータの適切な再生を保証するために、ビデオデータは間に合わせてレンダリングユニットに提供されなければならない。データが間に合うように取り出されないとき、再生されるビデオデータにおいて不都合な結果が生じうる。複数のストリームが1つの記憶装置から同時に取り出されるとき、様々なデータ取扱要求(又はファイル要求;ファイル又はオーディオビジュアルデータのストリームにおける主要なセグメントのような、大きなデータの塊に対する高い水準の要求;これらの仕様は、この出願の状況では相互交換可能である)が実時間で扱われなければならず、スケジューリングがますます重要になる。
【0008】
前記の論文は、データストリームの各々に対してディスク上の読取ヘッダの1つの掃引においてデータブロックを取り込むために必要な時間量の上限を計算するための式を開示している。この式は
式A

であり、ここで、



ユーザー(又はデータストリーム)の集合であり、

は、扱うべき、即ち格納又は取り出すべき、

番目のデータブロックのサイズであり、

はデータ転送レートであり、



ユーザーに対する切り替え時間関数である。
【0009】
この計算式は、取り出されるべきブロックのサイズ、ハードディスクのデータレート及び切り替え時間関数を考慮に入れている。後者は、データストリームそれぞれに対してデータブロックを取り込む間において、読み込みヘッドの切り替えに最大に費やされる時間を計算する関数である。
【0010】
しかしながらこの論文は、切り替え時間関数の実際の形を明記していない。切り替え時間はハードディスクドライブ利用時間の大きな量を形成するので、この時間関数は重要である。不適切なスケジューリングは、切り替えオーバーヘッドにおいて容易にHDD時間の90%を浪費することがありうる。更に、通常ハードディスクドライブが分割されている複数の割り当て単位に、取り出されるべきデータの塊又はブロックが格納される場合、割り当て単位がディスク上で連続して位置されていないとき、切り替え時間は増加する。しかしながら前記の論文は、取り出すべきデータブロックの可能性のある断片化が、サービス時間又はディスクドライブからのデータブロックの取り出し時間に対してどんな影響をもつのか開示していない。
【発明の開示】
【発明が解決しようとする課題】
【0011】
データ取扱要求をスケジューリング及び実行する方法を提供することが本発明の目的であり、該スケジューリングは、取り扱われるデータオブジェクトの断片化の取り出し時間に対する影響を考慮している。
【課題を解決するための手段】
【0012】
この目的を成し遂げるために、本発明は、既定のデータ取扱期間に少なくとも1つの記憶装置要求を実行することにより、割り当て単位で編成された記憶装置によって処理されるべきデータ取扱要求を出すことによって、少なくとも1つのデータのグループを扱う方法を提供するもので、該方法は、上記データ取扱期間において取り扱われるべきデータオブジェクトの数を決定するステップと、該データ取扱要求に関わる割り当て単位の数に対する上限を決定するステップと、第1ステップで決定されたデータ取扱要求の数と、関連する割り当て単位の数の上限とを掛けることにより記憶装置要求の数に対する上限を決定するステップと、前のステップにおいて決定された数の記憶装置要求を実行するために必要な時間量を決定することにより、前記データ取扱期間において前記データオブジェクトを取り扱うために前記データ取扱要求を実行することによって消費される時間量に対する上限を決定するステップと、前記憶装置要求を実行するためのデータ取扱期間内に、前のステップにおいて決定された時間量を確保するステップと、前記憶装置要求を実行することにより前記データオブジェクトを取り扱うステップとを有する。
【0013】
通常ハードディスクのような記憶装置は、割り当て単位に分かれている。1つの割り当て単位からデータを取り出すためには、1つの記憶装置要求が必要とされる。連続した割り当て単位からのデータはたいてい同様に1つの記憶装置要求により取り出される。データが取り出されなければならない割り当て単位が連続していないとき、1つのデータ取扱要求の実行には複数の記憶装置要求が必要となり、そのデータ取扱要求は取り出されなければならないすべてのデータに関係する。
【0014】
データ取扱要求は、取り扱われる(記録される又は取り出される)データを必要とするアプリケーションによって出される。データ取扱要求から記憶装置要求への変換は、通常起動しているアプリケーションよりも下の階層のファイルシステムにより実行される。
【0015】
データオブジェクトが割り当て単位のサイズよりも小さいときに、データオブジェクトは、1つの割り当て単位で格納されるか、2つの連続した割り当て単位に格納されるか、又はせいぜい2つの割り当て単位で断片化されて格納される。これは、1つのデータオブジェクトを取り出すために実行されなければならない記憶装置要求はせいぜい2つであるということを意味している。
【0016】
一方、データオブジェクトのサイズが1つの割り当て単位のサイズよりも著しく大きい場合、データオブジェクトを取り出すための1つのデータ取扱要求が実行するために、実行されなければならない記憶装置要求の最大値は2よりも大きい。データオブジェクトを取り出すために実行されなければならない記憶装置要求の最大値を決定する1つのアプローチは、1つの割り当て単位のサイズにデータオブジェクトのサイズを断片化することである。
【0017】
別のアプローチは、データオブジェクトの断片のリストを維持することである。データオブジェクトが取り扱われなければならず、データオブジェクトのサイズが1つの割り当て単位のサイズよりも大きいとき、とりうる断片によりそのリストが調べられる。データオブジェクトが断片に格納されたとき、おそらく複数の連続した割り当て単位を有する連続しないデータエリアの数は、リストから取り出される。この数は、前記データ取扱要求の実行のために実行されなければならない記憶装置要求の数である。
【0018】
データ取扱期間にデータオブジェクトを取り扱うためのデータ取扱要求の実行により消費される時間の上限を決定するために、前記の数の記憶装置要求を実行するために必要な時間が決定されなければならない。このためには、切り替え時間もまた考慮されなければならない。本発明による方法の利点は、切り替え時間関数が単純化されうるということである。データオブジェクトが断片化されて格納された場合には、読み込みユニットは、取り扱われるデータオブジェクトと関連するデータが位置する(また、記録プロセスの場合では位置されるであろう)あるエリアから別のエリアに、切り替わらなければならないので、先行技術のアプローチでは記憶装置内のデータオブジェクトの断片化は、切り替え時間の決定の際に考慮されなければならない。本発明の方法を用いると、データの断片化は、取り扱われる記憶装置要求の数においてすでに考慮されている。
【0019】
本発明による方法の実施例において、データオブジェクトの最大のサイズは割り当て単位のサイズよりも十分に小さくなっており、データオブジェクトは、連続しない場所に格納され、複数のデータオブジェクトが1つの割り当て単位に格納されうるように実質的にそれぞれから等しい論理距離となっていて、データ取扱要求あたりに関連する割り当て単位数の上限を決定するステップは、断片化され格納された実質的に論理距離が等しく隔てられる請求項1のステップa)で決定されるデータオブジェクトの数の上限を決定するステップに置き換えられ、記憶装置要求の数の上限を決定するステップは、請求項2のステップc)で決定されるデータオブジェクトの数とファイル要求の数との和をとるステップに置き換えられる。
【0020】
データオブジェクト間の論理距離は、たとえばディスクプラッタ、半導体結晶、又は記憶媒体における空間の距離と区別するため、ビット又はバイトで測定される。
【0021】
この実施例の利点は、このようにデータ取扱要求の実行に必要とされる時間が、より正確で通常低く見積もられうるということである。これは通常データ取扱要求の実行をスケジューリングする際に予約された時間でもあるので、先行技術と比較してより多くのデータ取扱要求が同じ時間内にスケジュールされうる。これは、本発明による方法の実施例を用いるとより多くのデータが取り扱われうるということを意味している。
【0022】
本発明による方法の別の実施例では、データオブジェクトがオーディオビジュアルデータのストリームにより構成されるビデオフレームで、これらのフレームはインターコード又はイントラコードされ、データ取扱要求と関連するデータオブジェクトの少なくともいくつかは、イントラコードされたフレームである。
【0023】
イントラコードされたフレームサイズのように、オーディオビジュアルデータのストリームのコード化(圧縮)レートや内部コード化されたフレームのサイズが知られるとき、通常内部でコード化されたフレーム間の距離が知られる又は少なくとも上限が知られるので、請求項2の実施例の発明による方法を適用するととりわけ好都合である。これは、スケジューリングやデータを取り扱うときに、これらの要素を決定するための追加の計算又は測定が不要になるということを意味している。
【0024】
本発明のさらに別の実施例では、「前のステップで決定されたように上限の数の記憶装置要求を実行するために必要な時間を決定することによって、1つのデータ取扱期間にデータオブジェクトを扱うためのデータ取扱要求の実行に消費される時間の上限を決定する」ステップは、記憶装置要求の数の上限に記憶装置要求により消費される時間を掛けるステップにより構成される。
【0025】
この実施例は、データ取扱により消費されうる時間の決定をするために単純な乗算しかなされないという事実において主要な利点を与える。これはより速くなされうるものであり、切り替え時間を厳密に決定するためにディスク上に正確に位置しているデータを必要とする変則的なアルゴリズムを必要しない。しかしながら、この実施例は正確性に欠ける。
【0026】
本発明によるコンピュータプログラムは、コンピュータを請求項1に記載の方法を実行するためにプログラムすることを可能にする。
【0027】
本発明による記録担体は、請求項14に記載のコンピュータプログラムを担持する。
【0028】
本発明によるプログラミングされたコンピュータは、請求項1に記載の方法を実行することが可能にする。
【0029】
本発明は、図により記載される実施例の説明から明らかになるだろう。
【発明を実施するための最良の形態】
【0030】
図1は、本発明による装置の一実施例としての民生電子装置110、ユーザー制御装置160及びTVセット150を有する民生エンタテイメントシステム100を示している。
【0031】
装置110は、好ましくはオーディオビジュアルデータを格納するためのハードディスクドライブ122等の記憶装置、当該装置を制御するための処理ユニット124、処理ユニット124をプログラムするプログラムデータを格納するための本発明による記録担体の一実施例としての読み取り専用メモリ(ROM)126、ハードディスクドライブ122から、同様に当該装置に含まれるビデオレンダリングユニット130へ高速にデータを伝送するためのDMAコントローラ128及びユーザーコマンドを受けるユーザーコマンドコントローラ134を有している。ROM126は、ソリッドステートROM、EEPROM、磁気データ担体、光学データ担体又は他の担体などの様々な方法で実施されうる。
【0032】
TVセット150は、スクリーン152を有する。TVセットは、第1コネクタ132により民生電子装置110に接続される。
【0033】
ユーザー制御装置160は、民生電子装置110によりオーディオビジュアルデータのストリームの再生の方向及び速度を制御するための再生ボタン162、巻き戻し(高速戻し)ボタン164及び早送りボタン166を有する。ユーザー制御装置160は、第2コネクタ136により民生電子装置110に接続されている。該接続は、有線又は無線になりうるが、これは本発明の範囲とは無関係である。
【0034】
民生電子装置110は、ハードディスクドライブ122に格納されたオーディオビジュアルデータのストリームを再生することを意図されている。別の実施例では、これは光学ディスクであることもありうる。再生は、例えば再生ボタン162を押すなどのユーザーコマンドにより開始される。これは、ユーザーコマンドコントローラ134により受信され、処理ユニット124に伝送されるようなユーザー制御装置160における制御信号を発生させる。
【0035】
上記制御信号を受けると、ROM126のプログラムでプログラムされた処理ユニット124は、ハードディスクドライブ122からのオーディオビジュアルデータの取り出しを開始し、DMAコントローラ128を介してのビデオレンダリングユニット130への取り出したデータの伝送の準備をする。ビデオレンダリングユニット130は、本実施例においてはMPEG(モーションピクチャーエキスパートグループ)2規格により圧縮されているようなオーディオビジュアルデータをデコードする。上記ビデオレンダリングユニットの出力は、知られたフォーマット(例えばSECAM又はPAL)によるビデオ信号であり、TVセット150で見ることが可能である。このビデオ信号は、第1コネクタ132を介して供給される。
【0036】
図2は、MPEG2規格により圧縮された、圧縮されたビデオデータのストリーム200を示している。ストリーム200は、3つの異なるタイプの圧縮されたフレームから成り立っている。これらフレームは、いわゆるグループオブピクチャー、即ちGOPにグループ化されている。この例の場合、6なるGOPサイズがとられているが、当業者は別のGOPサイズも許可される理解するであろう。
【0037】
「I」フレームはイントラ符号化されており、これは、これらフレームが適切な伸張アルゴリズムと、このフレーム自身からのデータとを用いて伸張されうることを意味する。「B」及び「P」フレームはインター符号化されており、これは、これらフレームを伸張するためには、他の(デコードされた)フレームからのデータも必要とされることを意味する。圧縮されたPフレームのデコードには、直前のIフレームからのデータが必要とされる。Bフレームの伸張には、先行する及び/又は後続するIフレーム又はPフレームからのデータが必要とされる。
【0038】
当該データの通常の実時間再生の間においてすべての画像を見せることは、前の段落で説明されたすべてのデコードを実時間で実行することができるので、TVセット150(図1)のディスプレイ152(図1)上に滑らかなビデオ映画をレンダリングする。例えば実時間再生中にユーザーが巻き戻しボタン164又は早送りボタン166を押した場合のような、当該ビデオデータの高速再生の場合、全てのフレームを該高速再生と同期してデコードすることは、もはや不可能になる。そのような場合には、ヒトの目及び脳により処理することができるより多くのフレームがレンダリングされるので、これは必要というわけでもない。
【0039】
それゆえ、通常Iフレームのみがレンダリングされる。ストリーム200の場合、これは、高速再生では第1Iフレーム202、第2Iフレーム204、第3Iフレーム206及び第4Iフレーム208がトリックプレイストリーム220へと結合されることを意味するだろう。ストリーム200と同じフレームレートでのトリックプレイストリーム220の再生は、結果として6倍の速度の増加となる。すべてのフレームが3倍長く表示されると、これは2倍の速度増加という結果になるだろう。
【0040】
例えば実時間の12倍等の一層高速なレンダリング速度の場合、いくつかのIフレームのレンダリングはスキップすることができ、選択された数のIフレームのみがレンダリングされうる。これが、ストリーム300を示す図3に図示されている。ストリーム300は、MPEG2規格を用いて圧縮されている。単純化のためにIフレームのみが示され、GOPサイズは6である(1つのIフレームに対して、各Iフレーム後の1つのPフレームと4つのBフレームとが伴う)。GOPサイズが6であり、それぞれのGOPが1つのIフレームを持つので、図3において矢印で示された1つ置きのIフレームがレンダリングされなければならない。この場合において、各フレームは通常の再生速度間と同じ長さで示され、再生の速度上昇係数は12となる。
【0041】
オーディオビジュアルデータを再生する際に、データがハードディスクドライブ122(図1)から時間内に取り出され、ビデオレンダリングユニット130(図1)により時間内にレンダリングされることが重要である。
【0042】
時間内のデータの供給を保証するために、データの取り出し(及び書き込み、該書込は同じデータ量に対して概ね同じ時間がかかる)は、通常は0.5秒から2秒間のいわゆるサイクルに分割される。実時間要求のサイクルをベースとしたスケジュールに関する背景となる情報に対しては、読者はこの説明につづく参照文献を参照されたい。1つのサイクル期間内では、いくつかのデータ取り出し要求がスケジュールされうる。データ取り出し要求は、2つ以上のアプリケーションにより送信されうる。例えば、あるアプリケーションは、ハードディスクドライブ122に格納されたビデオデータの再生(及び取り出し)を引き受けているのに対し、別のアプリケーションは、ハードディスクドライブ122にユーザープロファイルを周期的に格納することを引き受けているとする。両方の要求のデータ取扱(データの読み取り及び書き込みであり、明瞭化のために、矛盾が生じない限り、残りの説明では取り出しが利用される)は、同じサイクルでスケジュールされうる。
【0043】
これは、データ及びレンダリングに必要な時間を予測することを必要とする。ビデオレンダリングユニット130の処理速度は、通常かなり予測でき、その推定はあまり重要ではない。というのは、該ユニットは、ストリームをレンダリングすることに専念していて、他の仕事を行う必要がないからである。一方、ハードディスクドライブ122からデータを取り出すために必要な時間の推定は、より重要である。これの理由は、多くの場合においてハードディスクドライブ122は、ユーザープロファイルの格納のようなビデオ再生以外のアプリケーションによっても使用されうるからであり、且つ、例えば1つのIフレームのためのデータを取り出すのに必要な時間は、同じIフレームのレンダリングのためにビデオレンダリングユニットにより必要とされる処理時間よりも通常予測しにくいからである。
【0044】
データ取り出しを予測することが困難な理由は、他にもあるが、データの断片化及びデータの誤った取り出しの確率が挙げられる。
【0045】
データが誤って取り出されるとき(これは、当業者により知られているように冗長検査により検出されうる)、現行の技術のハードディスクは、データ取扱を再度試みるだろう。これには、通常のデータ取り出し要求の実行と同程度の時間がかかり、全取り出し時間は2倍に増加する。これは、もし2度目の試みが成功した場合の話である。幸運なことに、現行の技術のハードディスクドライブは、記憶能力が1012ビット又は1011バイトのオーダーで、1014に対して1ビットの誤り率を有している。4時間の高品質映画の記憶は、この量のおよそ4%を消費することになり、取り出し(又は再生)の間の誤りの見込みを非常に低くさせる。
【0046】
しかしながら、断片化の問題は一層しばしば起こりうる。これが、図3においてストリーム300の下のバー350により示されている。バー350は、ハードディスクドライブ122の一部を模式的にあらわしたものであり、第1割り当て単位352、第2割り当て単位354、第3割り当て単位356及び第4割り当て単位358に分けられている。1つの割り当て単位のサイズは1つのIフレームのサイズよりも大きいが、1つのIフレームが2つの割り当て単位にわたって断片化されて格納されることも依然として可能性がある。更に、これら割り当て単位は連続して描かれているが、斯かる割り当て単位はディスク上で必ずしも連続して位置されていなければならないわけではない。
【0047】
割り当て単位がディスク上で連続して位置していないとき、1つのIフレームの取り出しのために、2つの割り当て単位からのデータが取り出されなければならないという問題が起きる。これは、1つのデータ取扱要求に対して、2つのディスク要求が実行されなければならない(1つのディスク要求により、多くて1つのグループの連続した割り当て単位のデータが取り出されうる)ということを意味している。トリックプレイの間におけるIフレームの取り出し時間の増加は、誤りによる取り出し時間の増加よりも遙かに頻繁に起こりうるので、断片化による取り出し時間の増加をモデル化することが重要である。
【0048】
ディスク要求(又はより一般には記憶装置要求)の数に対する単純だが非常に大まかな推定は、取り出されなければならない全てのデータオブジェクトが断片化されていると推定し、従って全てのファイル要求が2つのディスク要求を必要とするという上限を設けることである。次に、ファイル要求の実行のための最悪の場合の時間量を得るために、1つのディスク要求を実行するために必要な最悪の場合の時間を、ディスク要求の数に掛ける。全く同様に、1つのディスク要求の実行に必要な平均時間が使われうるが、その場合には当該計算によりファイル要求の実行のための平均時間が得られるだろう。この時間要因の構成は以下の説明においてより更に明確にされるだろう。より小さい割り当て単位及びより大きいファイル要求に対して、上限は式1により与えられる。
式1
[ディスク要求の数]

[ファイル要求の数]×(INT([ファイル要求の最大サイズ]/[割り当て単位のサイズ])+2)
ここで、関数INT(

)は実数

を最も近い整数に切り下げる。
【0049】
より大きなサイズの割り当て単位及び/又はより小さなサイズのファイル要求(又は、この例におけるIフレームのような、取り出すべき他のデータオブジェクトのサイズ)の場合、ディスク要求の数に2なる係数を掛けるアプローチは、最悪の場合の上限を与える。図3に見られるように、割り当て単位が十分に大きいときは、相対的に少ない数のIフレームだけが断片化される。しかしながら、図3に描かれているのは、Iフレームだけが示されていてGOPの残りは小さく描かれているので、きわめて図式的なものであるということに留意されたい。
【0050】
データオブジェクトが互いから実質的に等しい距離で格納され、ファイル要求のサイズ(取り出すべきデータの塊のサイズ)が割り当て単位のサイズよりも小さいとき、本発明の一実施例によれば、同じ量のファイル要求数に対しては、ディスク要求の数及びこれらのディスク要求を実行するために必要な最悪の場合の時間の、上述したものよりも一層正確な推定を得ることができるということを、本発明者らは理解した。
【0051】
MPEG2で圧縮されたビデオストリームの場合、Iフレーム間の距離(バイト単位、従って論理距離)は、Iフレームのサイズと同様に実質的に一定である。MPEG2圧縮は可変ビットレート圧縮アルゴリズムであるが、これらの距離はかなり良好に推定することができ、すくなくとも上限は与えられうる。
【0052】
Iフレームのサイズ、これらフレームの間の距離及び割り当て単位のサイズを知ると、取り出されるべきIフレームのどれだけ多くが1つの割り当て単位に断片化されずに格納されるかを推定することができ、これのために下限が与えられうる。この推定は、Iフレームのサイズ及びそれらの間の距離の平均を取ることにより計算することができ、下限は最悪の場合の値をとることにより計算されうる。
【0053】
次に、ファイル要求の総数(これは、取り出すべきデータオブジェクトの数に等しい)が判明し、断片化されていないデータオブジェクトの数の下限が判明するので、取り出されるべき断片化されたIフレームの数の上限が決定されうる。割り当て単位のサイズがデータオブジェクトのサイズよりもかなり大きいことが判明すると、データオブジェクトはせいぜい2つの割り当て単位にわたって断片化され得ると推測されうる。これは、ディスク要求の数の上限が、ファイル要求の数と取り出されるべき断片化されたデータオブジェクトの数の上限との和をとることにより計算されうるということを意味している。
【0054】
要素の平均値が、取り出されるべき断片化された(又は断片化されていない)データオブジェクトの量を決定するために使用された場合、ディスク要求の数の推定が計算されうる。
【0055】
ディスク要求の最悪の場合の数を計算する計算式が、式2及び式3で与えられる。
式2
[ディスク要求の数]

[ファイル要求の数]+([関連する割り当て単位数]−1)
及び、
式3
[関連する割り当て単位数]

INT([ファイル要求の数]×INT(([最大距離]+[最大サイズ])/[割り当て単位のサイズ])+2)
これは数値の例を用いて説明することができる。
GOP:380キロバイト
Iフレームサイズ:40キロバイト
レンダリングのために1つ置きのIフレームを選択する。
ジャンプサイズ(距離):340キロバイト
割り当て単位のサイズ:1024キロバイト
フレームレート:4フレーム/秒
サイクルサイズ:2秒
1サイクルあたりのファイル要求:8
[関連する割り当て単位数]

INT((8×(40+340)/1024)+2)=INT(4.97)=4
従って、関連する割り当て単位の最大数はスケジューリングサイクルあたり3となり、式2に代入すると
[ディスク要求の数]

8+4−1=11
【0056】
上記の場合の概略図を示す図3は、確かに4つの割り当て単位が関連することを示している。ディスク要求の数は、この場合見、推定よりも少なくなっている。要求されたファイルの1つだけが断片化されており、従ってディスク要求の数は、ファイル要求の数よりも1つだけ大きい、すなわち9となっている。それでも、11のファイル要求という推定は、式1が算出する16のファイル要求という推定よりも、9に大幅に近くなっている。
【0057】
式4及び式5は、幾つかの場合に関して、関連するディスク要求数の上限に対する一層正確な推定を与える。
式4
[ディスク要求数]

[ファイル要求数]+1+
([ファイル要求数]−1)/([関連する割り当て単位数]+1)
及び、
式5
[関連する割り当て単位数]

INT(([割り当て単位のサイズ]−[ファイル要求の最大サイズ])/
([最大距離]+[最大サイズ]))
【0058】
次に、ハードディスクドライブによる実行のためにディスク要求を適切にスケジュールするため、1つのディスク要求の実行のために必要とされる時間が必要とされる。この時間の量はいくつかの構成物からなり、なかでも最も重要な3つが図4において議論されるだろう。図4は、第1データ部分404を有する第1データトラック402と、第2データ部分408を有する第2データトラック406とを持つハードディスクドライブのディスク400を示している。図4は、読取/書込ヘッド422を持つアーム420も示している。
【0059】
第1の矢印432は、シーク時間を示している。これは、上記ハードディスクドライブの読取/書込ヘッドを、第1データブロック404が取り出されなければならない第1トラック402へ位置決めするために必要とされる時間量である。近年のハードディスクの場合、この時間は0から40ミリ秒である。
【0060】
第2の矢印412は、回転の遅れを示している。これは、第1データ部分404の取り出しを開始するために、第1データ部分404の始点を読取/書込ヘッド422に位置合わせをするようにディスク400を回転させるために必要な時間量である。7200回転/分の回転速度を持つ近年のハードディスクでは、この値は多くて8.3ミリ秒である。
【0061】
第3の矢印414は、データ取り出し時間を示している。これは、データ取り出しが命令されたデータを、実際に取り出すために必要な時間量である。この時間量は、取り出されるべきデータの量に非常に依存する。上記の場合、すなわち各ディスク要求で40キロバイトの1つのIフレームのみが取り出されなければならない場合、この時間量は相対的に小さい。
【0062】
非常に単純なアプローチの場合、ディスク要求の数の上限に、1つのディスク要求を実行するために必要な最悪の場合の時間を掛ける。この最悪の場合の時間は、前の段落に記載の3つのタイミングパラメータ(又はそれらのうちのいくつか)に、恐らくは他のパラメータ(1つ、いくつか又は全てのパラメータの標準偏差のような)を加えたものの和となりうる。
【0063】
しかしながら、複数のディスク要求に対するデータが接近して一緒に位置しているとき、おそらく切り替え時間は余り必要とされない。当業者にとっては、複数のディスク要求の実行のタイミングの振る舞いを推定するための一層進んだモデルを記載した様々な文献が利用可能である。しかしながら、本発明全体に対しては、どのモデルを用いるかは重要ではない。
【0064】
本発明は、サイクルに基づくスケジューリングアルゴリズムにおいて、ファイル要求を実行するための最悪の場合の時間を決定するように説明されているが、本発明は、他のスケジューリングアルゴリズムを用いて、データ取り出しシステムにおけるデータの取り出し及び実行時間を推定するために使用することもできる。
【0065】
本発明の実施例は、本発明による方法の実施例を実行するための1つの処理ユニットを持つ装置として記述されている。しかしながら、本発明による方法の実施例の様々なステップが複数の処理ブロックにより実行されるような本発明による装置の他の実施例も、本発明の範囲から逸脱することなしに可能である。
【0066】
本発明の好ましい実施例においては、本発明は、オーディオビジュアルデータの取扱に応用される。当業者は、もちろん、本発明が他のタイプのデータにも応用することができると理解するであろう。
【0067】
要約すると、本発明は、実時間データ取扱に関連し、より詳細にはフレームの断片化を考慮してビデオレンダリングのためのフレームを取り出すために必要な時間を推定することに関連する。特にトリックプレイのためにデータを取り出すためには、これは些細な事柄ではない。何故なら、取り出されるべきフレームが断片化されているかどうかは事前には分からないからである。非連続的に断片化されたフレームの取り出しには、断片化されていないフレームの取り出しより少なくとも2倍多い時間がかかる。本発明は、割り当て単位が取り出されるべきフレームのサイズよりも大幅に大きい場合を考慮して、種々の有利な実施例を提供する。本発明の一実施例は、トリックプレイ速度、割り当て単位のサイズ、フレームサイズ及び取り出すべきフレーム間の論理的データ距離が分かる場合に、正確な取り出し時間を推定する方法を提供する。
【参考文献】
【0068】
J. Korst, V. Pronk and P. Coumans, Disk scheduling for variable-rate data streams, Philips Research Laboratories Eindhoven, The Netherlands, Proc. European Workshop on Interactive Distributed Multimedia Systems and Telecommunication Services, IDMS'97, 1997.
【図面の簡単な説明】
【0069】
【図1】本発明による装置の一実施例である。
【図2】オーディオビジュアルデータのストリームからどのようにトリックプレイストリームが作られるかを示す。
【図3】割り当て単位でのオーディオビジュアルデータのストリームの格納を示す。
【図4】ディスク要求のサービス時間を決定するための様々なタイミングパラメータを説明するために、ピックアップユニットを持つディスクの概要を示す。

【特許請求の範囲】
【請求項1】
既定のデータ取扱期間において少なくとも1つの記憶装置要求を実行することによって、割り当て単位で編成された記憶装置により処理されるべきデータ取扱要求を発することにより、少なくとも1つのデータオブジェクトのグループを取り扱う方法であって、
a)前記データ取扱期間内に取り扱われるべきデータオブジェクトの数を決定するステップと、
b)前記データ取扱要求に関して、関連する割り当て単位の数の上限を決定するステップと、
c)ステップa)で決定された前記データ取扱要求の数を、関連する割り当て単位の数の前記上限に乗算することにより記憶装置要求の数の上限を決定するステップと、
d)ステップc)で決定された前記記憶装置要求の数の実行のために必要な時間量を決定することによって、前記データ取扱期間の間に前記データオブジェクトを取り扱うためのデータ取扱要求の実行により消費される時間量の上限を決定するステップと、
e)ステップd)において決定された時間量を、前記記憶装置要求の実行のためにデータ取扱期間内に確保するステップと、
f)前記データオブジェクトを前記記憶装置要求の実行により取り扱うステップと、
を有する方法。
【請求項2】
a)前記データオブジェクトの最大サイズは、前記割り当て単位のサイズよりも大幅に小さく、
b)前記データオブジェクトは、複数のデータオブジェクトが1つの割り当て単位に格納されうるように互いから実質的に等しい論理距離で非連続的に格納され、
c)データ取扱要求毎に関連する割り当て単位の数の上限を決定する前記ステップが、実質的に等しい論理距離で隔てられて断片化されて格納されている請求項1のステップa)で決定されたデータオブジェクトの数の上限を決定するステップにより置換され、
d)前記記憶装置要求の数の上限を決定するステップが、前記データ取扱要求の数と本請求項のステップc)で決定された前記データオブジェクトの数との和を取るステップにより置換される、
請求項1に記載の方法。
【請求項3】
a)1つの割り当て単位のサイズを決定するステップと、
b)データオブジェクトの最大サイズを決定するステップと、
を有し、関連する割り当て単位の数の上限が、
[関連する割り当て単位数]

[データオブジェクトの最大サイズ]/[1つの割り当て単位のサイズ]+2
なる式により決定される、請求項1に記載の方法。
【請求項4】
a)前記データオブジェクト間の最大距離を決定するステップと、
b)1つの割り当て単位のサイズを決定するステップと、
c)データオブジェクトの最大サイズを決定するステップと、
を有する方法であって、関連する割り当て単位数の上限が、
[記憶装置要求の数]

[データ取扱要求の数]+([関連する割り当て単位数]−1)
なる式により決定され、前記データ取扱要求の実行に関連する割り当て単位の数の上限が、
[関連する割り当て単位数]

([データ取扱要求の数]×
([最大距離]+[最大サイズ])/[割り当て単位のサイズ])+2
なる式により決定される、請求項2に記載の方法。
【請求項5】
前記データオブジェクトが、オーディオビジュアルデータのストリームに含まれるビデオフレームである、請求項1に記載の方法。
【請求項6】
前記オーディオビジュアルデータのストリームが、インター符号化された及びイントラ符号化されたフレームを有する、請求項5に記載の方法。
【請求項7】
前記データ取扱要求が関連する前記複数のデータオブジェクトが、前記イントラ符号化されたフレームの少なくとも幾つかである、請求項6に記載の方法。
【請求項8】
ステップd)が、前記記憶装置要求の数の上限を記憶装置要求により消費される時間量により乗算するステップを有する、請求項1に記載の方法。
【請求項9】
前記時間量が予め決定されている、請求項8に記載の方法。
【請求項10】
前記記憶装置がディスクドライブであり、前記時間量の上限を決定するステップが、
a)ディスクの1回転に必要な時間量、
b)前記ディスクドライブのピックアップユニットの、前記データ取扱要求が目指すデータオブジェクトが配置されたディスク上の位置までのシーク時間、
c)前記データ取扱要求が目指すデータオブジェクトの取り出しに必要な時間、
なるパラメータのうちの少なくとも1つを更に考慮する、請求項1に記載の方法。
【請求項11】
前記記憶装置がディスクドライブであり、前記時間量の上限を決定するステップが、
a)ディスクの1回転に必要な時間、
b)前記ディスクドライブのピックアップユニットの、前記データ取扱要求が目指す第1データオブジェクトが配置されたディスク上の第1位置までのシーク時間、
c)前記第1データ取扱要求が目指すデータオブジェクトを取り出すために必要とされる時間、
d)前記ピックアップユニットが、前記ディスク上の前記第1位置から、前記データ取扱要求が目指す第2の後続のデータオブジェクトが配置された前記ディスク上の第2位置まで移動するために要する時間、
なるパラメータのうちの少なくとも1つを考慮する、請求項2に記載の方法。
【請求項12】
データ取扱要求毎に関連する割り当て単位の数の上限を決定する前記ステップが、前記データオブジェクトのサイズを1つの割り当て単位のサイズにより除算するステップを有する、請求項1に記載の方法。
【請求項13】
データ取扱期間内に取り扱われる少なくとも1つの記憶装置要求により処理されるべきデータ取扱要求によって、少なくとも1つのデータオブジェクトのグループを取り扱う装置であって、前記データ取扱は割り当て単位で編成された記憶装置により取り扱われるべきであり、
a)データ取扱期間あたりに取り扱われるべきデータオブジェクトの数を決定し、
b)データ取扱要求あたりに関連する割り当て単位の数の上限を決定し、
c)データ取扱要求の数に、前記関連する割り当て単位の数の上限を乗算することによって、記憶装置要求の数の上限を決定し、
d)前記記憶装置要求の数の上限に記憶装置要求により消費される時間量を乗算することによって、1つのデータ取扱期間内においてデータオブジェクトを取り扱うために記憶装置要求の実行により消費された時間量の上限を決定し、
e)前記記憶装置要求を実行するために、データ取扱期間内に、ステップd)で決定された時間量を確保し、
f)前記記憶装置要求を実行することにより前記データオブジェクトを取り扱う、
ように構成された中央処理ユニットを有する装置。
【請求項14】
コンピュータが請求項1に記載の方法を実行するようにプログラムされるのを可能にする、コンピュータプログラム。
【請求項15】
請求項14に記載のコンピュータプログラムを担持する、記録担体。
【請求項16】
請求項1に記載の方法を実行することを可能にされた、プログラムされたコンピュータ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2007−519141(P2007−519141A)
【公表日】平成19年7月12日(2007.7.12)
【国際特許分類】
【出願番号】特願2006−542096(P2006−542096)
【出願日】平成16年12月1日(2004.12.1)
【国際出願番号】PCT/IB2004/052614
【国際公開番号】WO2005/055238
【国際公開日】平成17年6月16日(2005.6.16)
【出願人】(590000248)コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ (12,071)
【Fターム(参考)】