(57)【特許請求の範囲】
【請求項１】
記録媒体の部分のリアルタイムバッファに入力ビデオデータを記録するための手段と、
タイムシフトバッファからビデオデータを読み取るための手段と、
前記タイムシフトバッファの入力順の先頭と現在時間で読み取ったビデオデータとの間の保障された最小利用可能リプレイ時間を少なくとも保持するために、タイムシフトバッファの入力順の先頭にてビデオデータを切り取るための手段と、
現在の読み取り時間を一時停止するために、前記タイムシフトバッファからのビデオデータの読み取りを一時停止するための手段と、
現在入力されたビデオデータによって、前記タイムシフトバッファの入力順の最後にて前記タイムシフトバッファを拡張するための手段とを有し、
前記タイムシフトバッファ内のビデオデータが前記最小利用可能リプレイ時間のフレームと、表示を一時停止した後に視聴再開した場合に、一時停止した時点から視聴再開の現在時間までにビデオデータが該タイムシフトバッファに追加されたことによる遅延時間分のフレームとを含むことを特徴とするビデオレコーダ。
【請求項２】
前記タイムシフトバッファが単一ファイルを有する請求項１に記載のビデオレコーダ。
【請求項３】
前記記録媒体はハードディスクである請求項２に記載のビデオレコーダ。
【請求項４】
前記単一のファイルは、前記ビデオレコーダに含まれるオペレーティングシステムのネイティブファイルシステム内に保持されている請求項３に記載のビデオレコーダ。
【請求項５】
前記タイムシフトバッファは、複数のファイルを含む請求項１に記載のビデオレコーダ。
【請求項６】
前記記録媒体はハードディスクである請求項５に記載のビデオレコーダ。
【請求項７】
前記複数のファイルは、前記ビデオレコーダに含まれるオペレーティングシステムのネイティブファイルシステム内に保持される請求項６に記載のビデオレコーダ。
【請求項８】
前記複数のファイルに対して、前記ビデオデータを記録する動作、前記ビデオデータを読み取る動作、前記ビデオデータを切り取る動作、前記ビデオデータの読み取りを一時停止する動作、及び前記タイムシフトバッファを拡張する動作を行うための手段を更に有する請求項７に記載のビデオレコーダ。
【請求項９】
前記タイムシフトバッファからのビデオデータの読み取りが再開されるように、ビデオデータの読み取りの一時停止を終了するための手段を更に有する請求項１に記載のビデオレコーダ。
【請求項１０】
前記タイムシフトバッファにおいて前記ビデオデータを介して早送りするための手段と、
前記タイムシフトバッファのサイズを収縮するための手段とを更に有する請求項１記載のビデオレコーダ。
【請求項１１】
ユーザが時間遅延無しのリアルタイムで視聴しているときに、リアルタイムバッファを介して出力モジュールへとビデオデータを渡すリアルタイムバッファ、入力モジュールを更に有する請求項１に記載のビデオレコーダ。
【請求項１２】
ハードディスクドライブと、
保障された最小リプレイ時間を提供する前記ハードディスクドライブのタイムシフトバッファのサイズを変更することと、
前記ビデオ入力データを受信し、前記ハードディスクドライブのタイムシフトバッファへ該ビデオ入力データを書き込むための入力モジュールと、
前記タイムシフトバッファから書き込まれたビデオを読み取り、前記出力ビデオデータを介して表示するための出力モジュールと、
前記タイムシフトバッファのサイズが保障された最小リプレイ時間を保持するのに十分であるように、前記タイムシフトバッファのサイズを調整するための切り取りモジュールとを有し、
前記タイムシフトバッファ内のビデオ入力データが前記最小利用可能リプレイ時間のフレームと、表示を一時停止した後に視聴再開した場合に、一時停止した時点から視聴再開の現在時間までにビデオデータが該タイムシフトバッファに追加されたことによる遅延時間分のフレームとを含むことを特徴とするビデオレコーダ。
【請求項１３】
前記ハードディスクドライブが前記タイムシフトバッファを維持するための少なくとも１つの標準のファイルシステムを有するようにした請求項１２に記載のビデオレコーダ。
【請求項１４】
前記少なくとも１つの標準のファイルシステムにおいてファイルを追加、削除、及び管理するためのファイルシステムモジュールを有する請求項１３記載のビデオレコーダ。
【請求項１５】
前記タイムシフトバッファは単一のファイルを有する請求項１４に記載のビデオレコーダ。
【請求項１６】
前記タイムシフトバッファは複数のファイルを有する請求項１４に記載のビデオレコーダ。
【請求項１７】
前記タイムシフトバッファから前記ビデオデータの読み取りの一時停止と再開とを交互に行うための第一ユーザ制御を更に有する請求項１２に記載のビデオレコーダ。
【請求項１８】
前記タイムシフトバッファからのビデオデータの読み取りを早送りするための第二ユーザ制御を更に有する請求項１７に記載のビデオレコーダ。
【請求項１９】
前記タイムシフトバッファから読み取るべき適切なセグメントへポイントするための出力モジュールによって利用される読み取りポインタと、
前記タイムシフトバッファに書き込まれるべき適切なセグメントへポイントするための入力モジュールによって利用される書き込みポインタとを更に有する請求項１２に記載のビデオレコーダ。
【請求項２０】
ユーザが時間遅延無しのリアルタイムで視聴しているとき、前記リアルタイムバッファを介して前記出力モジュールへビデオデータを渡すリアルタイムバッファ、入力モジュールを更に有する請求項１９に記載のビデオレコーダ。
【請求項２１】
記録媒体の部分にてタイムシフトバッファ内の入力ビデオデータを記録すること、
前記タイムシフトバッファからビデオデータを読み取ること、
前記タイムシフトバッファの入力順の先頭と現在時間で読み取った前記ビデオデータとの間の少なくとも保障された最小利用可能リプレイを保持するために前記タイムシフトバッファの入力順の先頭でビデオデータを切り取ること、
現在のリアルタイムを一時停止するためにタイムシフトバッファから前記ビデオデータの読み取りを一時停止すること、
現在入力されたビデオデータによって、前記タイムシフトバッファの入力順の最後で前記タイムシフトバッファを拡張することを有し、
前記タイムシフトバッファ内のビデオデータが前記最小利用可能リプレイ時間のフレームと、表示を一時停止した後に視聴再開した場合に、一時停止した時点から視聴再開の現在時間までにビデオデータが該タイムシフトバッファに追加されたことによる遅延時間分のフレームとを含むことを特徴とするタイムシフトバッファリング方法。
【請求項２２】
前記タイムシフトバッファからの前記ビデオデータの読み取りが再開するように、ビデオデータの読み取りの一時停止を終了することを更に有し、
前記ビデオデータの読み取りが再開すると、前記タイムシフトバッファのサイズの変動を止める請求項２１に記載の方法。
【請求項２３】
前記タイムシフトバッファにおいて前記ビデオデータを介して早送りすること、
前記タイムシフトバッファのサイズを収縮することを更に有する請求項２２に記載の方法。
【請求項２４】
前記タイムシフトバッファにおいて前記ビデオデータを介して早送りすること、
前記タイムシフトバッファのサイズを収縮することを更に有する請求項２１に記載の方法。
【請求項２５】
前記入力モジュールと、前記出力モジュールと、前記切り取りモジュールとは、分離した処理として動作するようにした請求項２１に記載の方法。
【請求項２６】
前記入力モジュール、前記出力モジュール、及び前記切り取りモジュールは、単一スレッドプロセスとして動作するようにした請求項２１に記載の方法。
【請求項２７】
リアルタイムバッファに入力ビデオデータを格納すること、
前記リアルタイムバッファからビデオデータを読み取ることは、ユーザが時間遅延無しのリアルタイム速度で視聴しているときに行われるように、前記リアルタイムバッファからビデオデータを読み取ることを更に有する請求項２１に記載の方法。
【請求項２８】
前記読み取りの一時停止中に、タイムシフトバッファのサイズを増大するように、タイムシフトバッファの入力順の最後に現在のデータを書き込むこと、
前記最小利用可能リプレイ時間を保障して前記タイムシフトバッファの入力順の先頭を切り取ることを有するタイムシフトバッファのサイズを制御するようにした請求項２１に記載の方法。
【請求項２９】
前記書き込むこと及び前記切り取ることは、ネイティブファイルシステム内で実行され、前記タイムシフトバッファは該ネイティブファイルシステムでのファイルの標準に準拠する請求項２８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、パーソナルビデオレコーダ（ＰＶＲ）のようなコンピュータ環境における時間の間隔を超えてストリーミングタイプの入力からのビデオ又はオーディオビジュアルイメージの表示に関し、特に、ビデオイメージが、時間遅延及び即時再生のような特長をもって表示される可能性のある装置及び方法に関する。
【背景技術】
【０００２】
ＶＣＲ、ＤＶＤプレイヤー、ＭＰ３プレイヤー、カセットプレイヤー、ＣＤプレイヤーのようなマルチメディア装置、特に、ＰＶＲは、近年、消費者によく知られている。ＶＣＲ、ＤＶＤプレイヤー、そしてＰＶＲによって表示される時間的に変化するビデオイメージのユーザがビデオイメージの表示を一時停止できることが望まれている。以前は、ユーザが適切な指示を供給した時に表示を中断し、ユーザが他の適切な指示を供給すると、表示が中断した時点で表示が再開することによってなされていた。予め記憶されたビデオイメージ（例えば、ＤＶＤディスク上のビデオ）に対して、そのような一時停止することの実行は、ビデオデータの全てがすでに格納媒体に格納されていて、所望したようにアクセス可能であるため、直接的である。予め記録されたイメージの表示を一時停止するための能力は、予め記録されたビデオイメージを表示するために使用されるほとんどの消費者電子装置において実施されている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
困難さは、予め記録されていないイメージのために上述した従来の一時停止方法を実施することに直面しているが、むしろ、その困難さは、ビデオディスプレイシステムへ一時的に利用可能であるビデオデータによって説明される。これは、例えば、テレビジョン又はラジオプログラムの放送、又は、インターネット又はローカル無線ネットワークのようなネットワークを介するストリーミングタイプの入力を伴う場合である。
【０００４】
現在のハードディスクベースのパーソナルビデオレコーダ（ＰＶＲ）システムは、タイムシフトバッファとして知られる共通の技術特長を提示している。このタイムシフトバッファは、テレビを一時停止し、即時再生を実行し、そしてテレビが一時停止した地点から表示し続けることを可能とするような特長をユーザに提示している。タイムシフトバッファは、常に、ユーザが観ているチャンネルを記録しているが、バッファ内の最も古いビデオは、連続的に破棄されていく。一般的に、今日の使用における実施では、例えば、全３０分の視聴時間を持つ固定時間バッファを提示する。
【０００５】
固定サイズのタイムシフトバッファをもつ現在の技術は、しかしながら、ユーザに対して困難さと問題を提示する。例えば、ユーザがタイムシフトバッファの固定サイズと略同等のタイムシフトで視聴していると、更に戻るための能力は、ひどく阻害される。一例として、タイムシフトバッファは、３０分で固定されており、ユーザは、２９分のタイムシフトで視聴している場合、ユーザは、１分更に戻るのみが可能である。
【０００６】
従って、システムのユーザへ保障された最小リプレイ時間を提供するために、サイズが固定されていないタイムシフトバッファを提供するシステム及び方法を提供することが望まれている。
【課題を解決するための手段】
【０００７】
本発明の形態によれば、可変サイズのタイムシフトバッファを含むＰＶＲ装置が提供され、タイムシフトバッファは、保障された最小リプレイ時間を提供する。ＰＶＲ装置は、ビデオデータストレージと、ビデオ入力と、ビデオ出力と、ユーザ入力と、入力モジュールと、出力モジュールと、タイムシフトバッファのサイズを減少するための切り取りモジュールとを含む。
【０００８】
本発明の他の形態によれば、使いやすいタイムシフトバッファを提供する方法が提供される。方法は、ビデオ入力から入力ビデオデータを取得すること、取得したビデオデータを備えた追記型媒体のタイムシフトバッファを拡張すること、タイムシフトバッファから選択されたビデオデータを読むこと、ビデオ出力を介してタイムシフトバッファから読まれた選択されたビデオデータを表示すること、タイムシフトバッファの入力順の開始時にタイムシフトバッファを切り取ることを含み、切り取りは保障された最小リプレイ時間以下で有効なリプレイ時間を減少させる。
【発明の効果】
【０００９】
本発明の一つの効果は、増大するためのタイムシフトバッファの能力によって提供される。
【００１０】
他の効果は、ユーザが拡張した持続期間にも表示を一時停止すれば、タイムシフトバッファは、ユーザが視聴しているときに時間遅延の長さを増加すると、自動的に増大する。
【００１１】
本発明の他の効果は、保障された最小リプレイ時間を提供するための能力である。
【００１２】
さらにもう一つの効果は、本発明によって提供されるより堅実な消費者の経験である。
【００１３】
本発明の更にまだある効果は、実施の形態の以下の詳細な記述を読み理解によって当業者らに明らかになるであろう。
【発明を実施するための最良の形態】
【００１４】
本発明は、種々の部分及び部分の配置を具体化する。図面は、実施の形態を例示することのみを目的とし、本発明を限定するように解釈されるべきではない。
【００１５】
図１を参照すると、入力ビデオデータは入力ビデオインターフェース１２によってビデオソースから取得され、システムメモリ２０に常駐するＰＶＲプログラム１８を実行するＣＰＵ１６の制御の下、システムバス１４を介して伝送される。ＰＶＲプログラム１８の制御の下、ビデオは、ハードディスク２４に常駐するタイムシフトバッファ２２に書かれ、続けて又は同時に、ユーザ表示装置上のディスプレイ用の出力ビデオインターフェース２６へ伝送される。
【００１６】
タイムシフトバッファは、一定の全体サイズで保持されないが、むしろ、現在の再生位置に関係する一定サイズを保持する。例えば、タイムシフトバッファが１０分のサイズに設定され、しかしユーザは１５分のタイムシフトで観ている場合、一時的に蓄積されたビデオは、１０＋１５又は２５分で保持される。この解決法は、ユーザが観ているタイムシフトに依存しないより一貫性のある経験を得るといった効果を有する。タイムシフトバッファは、現在の再生位置に関する一定サイズのバッファとして説明され、一定サイズは、フレームに関している、しかしながら、バイト数についてそのサイズは、可変であってもよい。
【００１７】
また、図１に示されるように、ユーザ入力を受信するためのユーザ入力インターフェース２８は、通常又は加速された早送りモードにおける一時停止、リプレイ、若しくは、連続のような事象に関するコマンドである。可搬遠隔コントローラにて一般的であるように、いくつもの入力コマンドがユーザインターフェース２８上のユーザ制御部２９を介して通信可能である。
【００１８】
システム１０のユーザが出力ビデオインターフェース２６へ付随する表示装置上のイメージの表示を一時停止すると、ＰＶＲプログラム１８は、システムバス１４を介して入力ビデオインターフェース１２を介して受信されるビデオを、ハードディスク２４上のタイムシフトバッファ２２へ送る。ユーザが一時停止を終了すると、システムＰＶＲプログラム１８は、タイムシフトバッファ２２内に格納され表示されたデータを、バス１４を介してハードディスク２４から出力ビデオインターフェース２６へと伝送する。原則的に、同時に、入力ビデオインターフェース１２から入ってくる入力ビデオは、適切な時間に視聴するためのタイムシフトバッファ２２に書き込まれる。しかしながら、タイムシフトバッファ２２が受け入れられないほど大きなサイズに増大しないように、選択されたサイズを維持するために同時に切り取られる。ユーザが好むのであれば、タイムシフトバッファ２２からの表示されているビデオ情報は、ユーザが、時間通りに最小の時間遅延でリアルタイムデータを原則的に表示するために、加速されたモードでは出力ビデオインターフェース２６へ伝送される。
【００１９】
時間遅延に関して、時間遅延を最小限にすることが望ましいのであるが、ハードウェア及び他の待ち時間の配慮により完全に取り除くことはできない。例えば、システムにおいて、読み取り位置を現在の書き込み位置に非常に近くにすることは困難である。小さくもできるが、例えば、チャンネルを変えたときや、選択したチャンネルが現れる前の一時的な遅延があるときは、顕著な遅延となることもある。
【００２０】
図２は、ＰＶＲプログラム１８（図１）が体系づけられ、ディスクバッファ２２と連動して動作する方法の論理的図式を提供する。ＰＶＲプログラム１８は、ビデオ入力を読み取るための入力モジュール３０と、ビデオ出力を出力インターフェース２６へ提供するための出力モジュール３２と、入力モジュール３００及び出力モジュール３２の動作を制御するための制御モジュール３４とを有する。ビデオ入力インターフェース１２によって受信されているビデオ入力画面は、いくつものビデオ形式であってもよいことが理解される。アナログビデオ入力又はいくつものデジタルビデオ入力形式であってもよい。入力モジュール３０は、ビデオバッファ２２に格納するための所望の形式へ入力ビデオストリームを変換する。
【００２１】
ビデオバッファ２２は、ピクチャーのグループ（ＧＯＰ）として知られる個々のセグメントに小さく分割される。例えば、ビデオバッファ２２の所望のビデオフォーマットはＭＰＥＧ２であれば、各ＧＯＰは、通常多くのＰ及びＢフレームに続くＩフレームで開始する。各ＧＯＰは、単一のＩフレームと同様の小ささとすることができるが、通常、ＭＰＥＧ２に対して長さが１５フレーム以上とはならない。Ｉフレームは、平均７対１の縮小比でコードフレーム間にある。Ｐフレームは、変化したマクロブロックのデータの追加によるＩ又はＰフレームの前に基づいて予測される。Ｐフレームは、平均で２０対１の縮小比又はＩフレームの凡そ半分のサイズである。Ｂフレームは、過去及び未来のマクロブロックの位置での出現に基づいて双方向に予測されるフレームである。Ｂフレームは、凡そ５０対１の縮小比を平均とするＰフレームより少ないデータをもつ。ＭＰＥＧ４は、ビデオバッファ２２の選択された形式である場合、各ＧＯＰ３６は、通常、２００から３００フレームの最大キーフレーム間隔と同じ大きさとすることができる。
【００２２】
以下の説明において、参照は、読み取り、書き込み、バッファリングに関するビデオフレームに対してなされる。しかしながら、多くの環境において、動作は複数のフレーム、例えば、ＧＯＰを含むかなりの量のデータを発生するかもしれないことが分かる。逆に言えば、一つのフレームがデータの複数のパケットを有している可能性がある。しかしながら、本発明の理解を容易とするため、ここでは、全ての説明はフレームを参照してなされるが、かなりの量のデータ又はデータのパケットを利用する実施を含むように意図されている。
【００２３】
ビデオバッファ２２は、システム１０用に特に開発された機能を使用する格納装置、例えば、ハードディスクの全て又は一部を利用して実装されてもよい。しかしながら、ビデオバッファ２２は、また、既存のファイルシステムにおいて実装されてもよい。例えば、一実施例において、ビデオバッファ２２は、この実施例のために使用される特定のオペレーシングシステムのファイルシステムモジュール３７の制御の下、ネイティブファイル内にて通常ファイルである。ＰＶＲシステムは、ＵＮＩＸ（登録商標）オペレーティングシステムを用いて実装されているならば、ビデオバッファ２２は、好ましくは、標準のＵＮＩＸ（登録商標）ファイルシステムを用いる通常ファイルである。しかしながら、オペレーティングシステムは、ＬＩＮＵＸオペレーティングシステムであるならば、ビデオバッファ２２は、好ましくは、例えば、セカンドイクステンドファイルシステム（ＥＸＴ２）へ書き込まれる通常ファイルである。ＢＳＤオペレーティングシステムが利用されているならば、ビデオバッファ２２は、好ましくは、ＢＳＤファイルシステムを使用する通常ファイルである。この実施例において、タイムシフトバッファ２２上で動作するどのモジュールも、所望する動作を行うために、ファイルシステムモジュール３７へ、システムコールを介して通信する。
【００２４】
実施の仮定において、ビデオバッファ２２は、ＭＰＥＧ２形式を利用して書き込まれ、ビデオ入力インターフェース１２から受信される入力ストリームもまたＭＰＥＧ２形式である。しかしながら、ビデオバッファ２２のいくつもの入力ストリーム形式及びいくつものビデオ形式がまた、本願の範囲内に含まれることが理解される。
【００２５】
入力モジュール３０がビデオ入力インターフェース１２からビデオフレームを受信する際、好ましいオペレーティングシステムのネイティブファイルシステムにおいて標準のファイルとして前に説明したビデオバッファ２２に個々のフレームを書き込む。入力モジュール３０は、原則的にビデオバッファ２２に書き込まれたバイト数又はフレーム数である書き込みポインタ３８を保持している。原則的に同時に、出力モジュール３２はビデオバッファからビデオフレームを読み取り、表示装置上にユーザへの表示用の出力インターフェース２６へ出力フレームを提供する。
【００２６】
出力モジュール３２は、ビデオバッファ２２における現在視聴されているフレームのポインタである読み取りポインタ４０を保持する。出力モジュールがビデオバッファ２２からフレームを読み取る際、読み取りポインタ４０はビデオバッファ内の次のフレームへインクリメントされる。更に、入力モジュール３０及び出力モジュール３２は、制御モジュール３４からの指示の下に動作する。例えば、ユーザ装置２８をもつユーザは、パーソナルビデオレコーダシステム１０の電源をオフにしたいと思うかもしれない。この場合、制御モジュール３４は入力モジュール３０にビデオバッファ２２にファイルを閉じさせ、ファイルへの書き込みを中止させるように指示する。同時に、出力モジュール３２は出力インターフェース２６へビデオフレームを提供することを中止する。又は、例えば、ユーザが即座に表示を一時停止したい場合、そこで、制御モジュール３４は、バッファ２２から読み取りを一時停止し、ビデオバッファ２２から現在読み取られているフレームを表示し続けるように、出力モジュール３２に信号送出する。この場合、しかしながら、入力モジュール３０は、ビデオバッファ２２へフレームを書き込むことを継続する。
【００２７】
正常動作において、無制限に増大するビデオバッファ２２のサイズを保持するために、入力モジュール３０は、ネイティブファイルの最後にて、バッファ２２へ新たな出力フレームを書き出す際、切り取りモジュール４２は、ビデオバッファ２２の開始からフレームを取り除く。ビデオバッファ２２から切り取られたこれらフレームは、数字４４によって示される点線部分によって表現される。ユーザのために保障されたリプレイ時間を保持するために、切り取りモジュール４２は、読み取りポインタ４０を調べ、読み取りポインタ４０によって示されるファイルの先頭からのズレを調べることによって、使用可能なリプレイ時間フレーム４６を計算する。それから、切り取りモジュール４２は、ビデオバッファ２２の開始から適切な数のフレームを取り除き、読み取りポインタ４０と書き込みポインタ３８とは、よって調整される。読み取りポインタ４０と書き込みポインタ３８とが、ネイティブファイルの開始からバイト又はフレームにおいてズレを示すような数において、ファイルの開始から切り取られたフレーム数は減少される。
【００２８】
切り取りモジュール４２は、ネイティブファイルシステムにおいてタイムシフトバッファ２２の開始を切り取ると、好ましくは、システムのファイル形式で確認する方法におけるトリミングを行う。このため、トリミング機能は、要求されたバイト数を常に正確に取り除かないが、代わりに、割り当て単位によって、特定のファイルシステムの制限に耐えうる最大数の要求されたバイトを取り除く。
【００２９】
ユーザが即時に表示を一時停止し、それから視聴再開した場合、ユーザが時間遅延で視聴しているときに表示されたフレーム４８を示す読み取りポインタ４０及び書き込みポインタ３８の間で不一致が発生する。この方法では、それから、ビデオバッファ２２はサイズを増大して、その全サイズが保障されるフレーム４６によって示される利用可能なリプレイ時間と追加されたフレーム４８によって示される遅延時間とを含むようにする。よって、ビデオバッファ２２が切り取りモジュール４２によってフィルの先頭で切り取られる際、ビデオバッファ２２は、入力モジュール３８によって書き込まれたレコード、フレーム、若しくはＧＯＰによってビデオバッファ２２の反対側の終了部分で、同時に増大する。ビデオバッファ２２へまだ書き込まれていない未来のレコード、フレーム、若しくはＧＯＰは、数字５０によって示されている。
【００３０】
ビデオバッファ２２は、既存のＰＶＲにて使用される一般の循環バッファから区別するために線形的な方式で図２に示される。即時適応において、しかしながら、ネイティグファイルは、同時に書き込まれ切り取られ、また、原則的に、ネイティブファイルシステム内の空きスペースを介して自己増殖する。
【００３１】
ＰＶＲシステム１０の任意的な特長として、ユーザがリアルタイムで視聴しているときに、入力モジュール３０は、同時にビデオバッファ２２へ書き込み、リアルタイムバッファ２２に各ビデオフレームを置く。ビデオバッファｆ２２からフレームを読む代わりに、出力モジュールは、表示用のリアルタイムバッファ５２においてメモリから直接フレームを取り出す。これは、システム内の前述した反応潜時によって引き起こされるいかなる時間遅延をも更に縮小させることによって、視聴経験を改善する。リアルタイムバッファ５２は、好ましくは、ランダム・アクセス・メモリ（図示せず）にて保持される。また、リアルタイムバッファが角度要素で示される場合、一般的な実施において、バッファは、キューの形式にて複数のファイルを含む。
【００３２】
図３は、同様の数字は同様の要素又はプロセスを示し、図２に示される実施例と同様に、本願の他の実施例の説明を示す。しかしながら、ビデオバッファ２２は、図３に例示される実施例における異なる方式にて実装される。ネイティブファイルシステムにおいて単一のファイルの部分である代わりに、ビデオバッファ２２内の各セグメント３６は、個別のファイルである。ビデオバッファ２２は、複数のファイルを含む。
【００３３】
この実施例において、ビデオバッファ２２は、循環バッファとして例示されている。しかしながら、バッファ２２は必要によりサイズを増大及び縮小することができる。ビデオバッファ２２を増大又は縮小するための方法論は、図２に例示される実施例と同様である。しかしながら、この実施例では、書き込みポインタ３８を利用する入力モジュール３０は、入力順の方式、ビデオの時間的な方式において、ファイル名を示す関連付けられたファイルテーブル６０を持っている。
【００３４】
ユーザが、正常速度でビデオを視聴しているならば、ビデオバッファ２２は、増大も縮小もしない。書き込みポインタ３８は、ファイルテーブル６０内のファイル名を介して再帰的に巡回するビデオバッファ２２を介して逐次的方式にてファイルをアクセスする。原則的に、同時に、出力モジュール３２は、ファイルテーブル６０に関連付けられる読み取りポインタ４０によって指定されるファイルをアクセスし、出力遅延４８を伴う又は伴わずに、ビデオバッファ２２からファイルを再帰的に取り出す。しかしながら、ユーザが出力表示を一時的に停止する要求を示すならば、読み取りポインタ４０は、ビデオバッファ２２を介して進むことを停止する。保障される利用可能なリプレイ時間を保持するために、ファイル４６に対応するファイルは、ビデオバッファ２２に挿入される。書き込みポインタ３８に関連付けられるファイルテーブル６０における位置にて、新たなファイルがネイティブファイルシステムにて生成され、ファイルテーブル６０に挿入される。この方法にて、利用可能なリプレイ時間は減少されないし、また、ビデオバッファ２２は、ユーザが一時停止モードのままである間、増大し続ける。しかしながら、ユーザが固定した遅延を伴う通常速度で視聴を開始すると、書き込みポインタ３８及び読み取りポインタ４０は、ファイルテーブル６０を介してファイルをアクセスすることによってビデオバッファ２２を介して循環方式又は再帰的方式にて進行し続ける。
【００３５】
ユーザが、続いて、早送りによって、コマーシャルを飛ばすことによって、若しくは、リアルタイム視聴へジャンプすることによって、早い速度で表示を進めると、切り取りモジュール４２は、保障されたリアルタイムのために利用可能なリプレイ時間を減らすためにファイルテーブル６０からファイルを取り除く。ビデオバッファ２２は、よって縮小する。
【００３６】
図４において、入力モジュール３０の実施での使用に適応する入力メソッド７０が図示される。ステップ７２において、ビデオフレームは入力ビデオインターフェース１２から取得される。ステップ７４は、リアルタイムバッファ５２は出力モジュール３２によってブロックされているか否かを判断するテストがなされる、上述したリアルタイムバッファ５２のための任意のステップである。バッファ５２がブロックされているならば、リアルタイムバッファ５２へビデオフレームをコピーする処理をステップ７６で継続する。その後、ステップ７８にて、リアルタイムバッファ５２は、入力方法７０によってブロックされる。任意的のステップ７４〜７８の後に、ステップ８０において、現在取得されているビデオフレームを備えたネイティブファイルシステムにおいてファイルを拡張するビデオバッファ２２にビデオフレームが書き込まれる際に、ビデオバッファ２２が拡張される。ステップ８２において、従って、ビデオバッファ２２において新たな最終フレームへのズレを示すために、書き込みポインタがインクリメントされる。
【００３７】
図５において、出力モジュール３２における実施に適応する出力メソッド９０が図示される。任意的なステップ９２は、ユーザがいかなる遅延もなくリアルタイムにて視聴しているか否かを判断する。回答がはいであるならば、処理が継続する。ステップ９４において、出力メソッド９０は、リアルタイムバッファ５２が入力メソッド７０によってブロックされるのを待つ。バッファは、入力モジュール又は入力メソッド７０によってブロックされた後、ステップ９６は、出力装置上の表示用のリアルタイムバッファ５２からビデオフレームを読み込む。ステップ９２にて否定の回答であると判断されると、ステップ９８は、ユーザが表示にて一時停止を要求したか否かを判断する。一時停止が要求されていないならば、出力装置の表示に対して、読み取りポインタ４０によって要求されるポイントにてビデオバッファ２２を示すファイルからビデオフレームを取得するステップ１００にて処理が継続する。ステップ１０２において、読み取りポインタは、次に取得されるであろうビデオフレームへポイントするようにインクリメントされる。いかなる場合でも、出力インターフェース２６へ渡されることによって上記取得したビデオフレームが表示されるステップ１０４にて処理が継続する。任意的なステップ１０６において、リアルタイムバッファ５２は、入力メソッド７０によって続く処理のためにブロックが外される。
【００３８】
図６において、切り取りモジュール４２に適応する切り取りメソッド１１０が図示される。切り取りメソッドのステップ１１２において、入力モジュール３０及び出力モジュール３２は、同時にポインタをアクセスしないように、読み取りポインタ４０及び書き込みポインタ３８への排他アクセスが取得される。ステップ１１４において、利用可能なリプレイ時間がファイル（図２）の先頭に対する読み取りポインタ４０によって、又は、書き込みポインタ３８（図３）に対する読み取りポインタ４０を調べることによって、計算される。その後、ステップ１１６において、利用可能なリプレイ時間が保障されるリプレイ時間と比較される。利用可能が保障されるリプレイ時間を越えているならば、ステップ１１８が、利用可能なリプレイ時間は保障されたリプレイ時間に等しい地点までフィルの先頭を切り取るために呼び出される。いずれにせよ、ステップ１２０は、出力メソッド３２及び入力メソッド３０によるアクセスに対して、読み取りポインタ４０及び書き込みポインタ３８を解放する。
【００３９】
入力モジュール３０、出力モジュール３２、制御モジュール３４、及び、切り取りモジュール４２は、マルチスレッド環境において独立したプロセスとして動作するように示され、説明されているが、上記モジュールは、順序付けられた方法にて反復的に処理ステップを実行する単一のスレッドとしての単一のモジュール動作へと組み合わせられてもよい、ことが理解される。
【００４０】
本発明は、実施の形態を参照して説明されている。明らかに、他人が先の詳細な説明を読み理解することによって変更及び改変が生じるであろう。変更及び改変が添付の請求項又はそれら均等物の範囲内にある限りにおいて、本発明は、そのような変更及び改変の全てを含むように解釈される。
【図面の簡単な説明】
【００４１】
【図１】図１は、本発明に係るＰＶＲシステムのブロック図を示す。
【図２】図２は、本発明の実施の形態に係るＰＶＲシステムの概略図である。
【図３】図３は、本発明の他の実施の形態に係るＰＶＲの概略図である。
【図４】図４は、本発明の実施例に係る入力方法のフローチャートである。
【図５】図５は、本発明の実施例に係る出力方法のフローチャートである。
【図６】図６は、本発明の実施例に係るトリミング方法のフローチャートである。
【図１】
0004499573.tif 000002
【図２】
0004499573.tif 000003
【図３】
0004499573.tif 000004
【図４】
0004499573.tif 000005
【図５】
0004499573.tif 000006
【図６】
0004499573.tif 000007