(57)【特許請求の範囲】
【請求項１】
入力されるデータストリームを記録用バッファメモリへ転送し、該記録用バッファメモリから前記データストリームを読み出して記録媒体に出力するとともに、該記憶媒体から再生用バッファメモリを介して再生用データを出力するデータ入出力装置であって、前記記録用バッファメモリから前記記録媒体へのデータ転送容量と、前記記憶媒体から前記再生用バッファメモリへのデータ転送容量と、を前記記録用バッファメモリと前記再生用メモリとの使用状況に応じて制御するバッファ制御手段を有し、
前記記録用バッファメモリに蓄積されたデータが指定されたデータ量になるまでデータ転送し、データ転送終了毎に割込み信号を発生させ、
設定時間を計測すると割込み信号を発生するタイマを備え、前記タイマには、所定時間当たりのデータ転送回数で示されるデータ転送容量に対応する時間を設定し、さらに、１回のデータ転送あたりに要する時間を検出して、データ転送終了までに要するデータ転送回数の予測値を算出し、該予測値をタイマへの割込み周期として設定するシステムコントローラを備えることを特徴とするデータ入出力装置。
【請求項２】
前記システムコントローラは、前記記録用バッファメモリへの転送開始アドレス及び転送データ量を設定する記録用コマンドキュー又は前記再生用バッファメモリへの再生データの転送開始アドレス及び転送データ量を設定する再生用コマンドキューの少なくともいずれかを発行し、前記予測値を所定値とを比較した結果に基づいて前記記録用コマンドキュー又は前記再生用コマンドキューに設定するデータ量を変えることを特徴とする請求項１に記載のデータ入出力装置。
【請求項３】
前記システムコントローラは、前記予測値を所定値と比較し、前記比較結果を基に前記再生用バッファメモリがオーバーフローを起こすことが予測される場合に、前記再生用バッファメモリへのデータ転送を一時中断し、前記記録用バッファメモリからのデータ読み出しのみを行う記録コマンドキューを発行することを特徴とする請求項１に記載のデータ入出力装置。
【請求項４】
前記システムコントローラは、前記予測値を所定値と比較し、前記比較結果を基に前記再生用バッファメモリがオーバーフローを起こすと予測される場合に、前記再生用バッファメモリへＭＰＥＧストリームのＩピクチャのみ転送する再生コマンドキューを発行することを特徴とする請求項１に記載のデータ入出力装置。
【請求項５】
さらに、前記記録用バッファメモリへのデータ転送動作が、前記記録用バッファメモリからのデータ読み出し動作よりも優先する動作であることを使用者に報知する報知手段を備えることを特徴とする請求項１から４までのいずれか一項に記載のデータ入出力装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記録媒体へのデータ書き込み読み出しを行うデータ入出力装置に関し、特に、ディスク等の記録メディアを用いたデータ書き込み読み出しを行うデータ入出力装置に関する。
【０００２】
【従来の技術】
動画像、特に、蓄積メディア用の動画像符号化の国際標準としては、ＭＰＥＧ（Moving Picture Expert Group）がある。
【０００３】
ＭＰＥＧは、ＭＰＥＧ１，ＭＰＥＧ２，ＭＰＥＧ４の３レベルの規格案が検討されている。ＭＰＥＧ１では、１．５Ｍｂｐｓの通信回線で伝送できる動画像圧縮を目的としており、おもにテレビ電話やテレビ会議などで使用することが考えられている。ＭＰＥＧ１では、現行のＮＴＳＣ方式のビデオ画像を３２０×２４０ピクセルの解像度として扱い、１フレームを構成する２フィールドのうち１フィールドのみのデータを用いる。ＭＰＥＧ２では、１０Ｍｂｐｓを超える通信回線で伝送できる圧縮が目標で、ＩＳＤＮなどによる動画像伝送やディジタル・ビデオがターゲットとされている。そして、ＭＰＥＧ４は、低ビットレートを対象としている。
【０００４】
ＭＰＥＧの特徴は、静止画圧縮では不要であった「動き補償（ＭＣ：Motion  Compensation）」を行うこと、及び動画像圧縮の前提条件としてフレームのランダム・アクセスができること、早送りによる再生や巻戻し再生（逆方向）ができることがあげられている。
【０００５】
また、ＭＰＥＧでは、上述のように、早送り、巻き戻し、途中からの再生が基本となっているため、ある単位の動画像をまとめてＧＯＰ（Group of Pictures ）を形成し、その単位での独立再生ができるようにしている。上記ＧＯＰ内の画面の予測構造として、動画のフレームを意味する１枚１枚の画像（ピクチャ）、Ｉ、Ｂ、Ｐピクチャを用いる。
上記ピクチャは、符号化される方式に従って以下のタイプに分類される。
【０００６】
(1)Ｉピクチャ（Intra-coded picture：ＩＮＴＲＡ符号化画像）
符号化されるときその画像１枚の中だけで閉じた情報のみを使う。換言すれば、復号化するときＩピクチャ自身の情報のみで画像が再構成できる。実際には、他の画像との差分をとらずそのままＤＣＴ（Discrete Cosine Transform）して符号化する。この符号化方式は、一般に効率が悪いが、これを随所に入れてＩピクチャだけを復号すればランダムアクセスや高速再生が可能となる。さらに、Ｉピクチャを復号してメモリに蓄え、逆方向に読み出すことを繰り返せば逆転再生をも可能となる。
【０００７】
(2)Ｐピクチャ（Predictive-coded picture：前方予測符号化画像）
Ｐピクチャは、予測画像（差分をとる基準となる画像）として、入力で時間的に前に位置し既に復号化されたＩピクチャまたはＰピクチャを使う。すなわち、過去から現在の一方向に予測されるフレームである。実際には動き補償された予測画像との差を符号化するか差分をとらずに符号化する（ＩＮＴＲＡ符号化）か効率のよい方をマクロブロック単位で選択できる。
【０００８】
(3)Ｂピクチャ（Bidirectionally predictive-coded picture：両方向予測符号化画像）
Ｂピクチャは、予測画像として時間的に前に位置し既に復号化されＩピクチャまたはＰピクチャ、時間的に後ろに位置するすでに復号化されたＩピクチャまたはＰピクチャ、及びその両方から作られた補間画像の３種類を使う。
上記３種類の動き補償後の差分の符号化とＩＮＴＲＡ符号化の中で一番効率のよいものをマクロブロック単位に選択できる。
【０００９】
そして、ＧＯＰにおいて、Ｂピクチャを符号化または復号化するには、その予測画像となる時間的には後方にあるＩピクチャまたはＰピクチャが先に符号化されていなくてはならないため、ＧＯＰを構成するにはＩピクチャ、Ｐピクチャ、Ｂピクチャは所定の順序が必要であるが、Ｉピクチャの間隔、及びＰピクチャの間隔は自由でＧＯＰの内部でも変わってもよい。
【００１０】
ところで、ＭＰＥＧビデオやＭＰＥＧオーディオの符号化されたストリーム（ビット列）、さらに他の符号化ストリームも含めて実際のアプリケーションに適用する場合には、同期を含めて統合し１本化するとともに、そのストリームを蓄積メディアやネットワーク等が持つ、固有の物理フォーマットやプロトコルに適合したデータ形式にする必要がある。
【００１１】
ＭＰＥＧ２システムには、ＭＰＥＧ１と同様に１つのプログラムを構成するプログラム・ストリーム（ＭＰＥＧ２−ＰＳ，ＰＳ：Program Stream）と、複数のプログラムを構成できるトランスポート・ストリーム（ＭＰＥＧ２−ＴＳ，ＴＳ：Transport Stream）とがある。
【００１２】
ＭＰＥＧストリームは、１ビットのフラグも多数あるがヘッダなどの各単位ごとにバイト整列されたバイト・ストリームである。ＭＰＥＧシステム全体に共通した構造として固定長でないデータ部分には、長さを示す情報が先行して置かれ、不要な場合はその部分をスキップしたり、次のデータ群の先頭を確認して信頼性の高い分離処理ができるデータ構造となっている。
【００１３】
ＭＰＥＧ２符号化方式に準拠し、圧縮された映像、音声信号を受信する装置は、復号化側において映像、音声データのオーバーフロー、アンダーフローの防止するために、符号化側での映像、音声サンプリング周波数と、復号化側での映像、音声サンプリング周波数またはＳＴＣ（System Time Clock）を一致させる必要がある。
【００１４】
そのため、復号化装置ではＭＰＥＧ２システム規格（ＩＳＯ／ＩＥＣ規格１３８１８−１）で規定されたＰＣＲ（Program Clock Reference：プログラム時刻基準参照値）またはＳＣＲ（System Clock Reference：システム時刻基準参照値）を用いることにより、符号化側の映像、音声サンプリング周波数と復号化側の映像、音声サンプリング周波数を一致させていた。
【００１５】
【発明が解決しようとする課題】
このような従来のディスクを記録媒体とする記録装置では、映像音声データ等のデータの読み出しや書き込みを行うとき、所定の転送データサイズのデータがバッファメモリに蓄積されたところで、上記記録装置よりデータ転送を行っていた。
【００１６】
しかし、ＭＰＥＧ２などの高ビットレートの動画データを同時録画再生する場合、記録装置のデータシーク時間やエラー処理などにより、バッファメモリから記録媒体へのデータ転送が中断され、最終的にはバッファメモリがオーバーフローして記録データが欠落することがあった。デジタル放送テレビ番組を録画する際、データの取りこぼしが発生すると、再生時にデータの連続性が損なわれるだけでなく、使用者が見たかった場面等が欠落してしまうことになる。
【００１７】
本発明は、このような課題に鑑みてなされたものであって、ディスクを記録媒体とする記録装置において、同時録画再生を行った際、ディスクのシークやエラー処理により、記録用バッファがオーバーフローして記録データの欠落が生じることを未然に防止することができ、記録データの連続性を保証することができるデータ入出力装置を提供することを目的とする。
【００１８】
【課題を解決するための手段】
本発明のデータ入出力装置は、入力されるデータストリームをバッファメモリへ転送し、該バッファメモリから前記データストリームを読み出して記録媒体に出力するデータ入出力装置であって、前記バッファメモリへの転送開始アドレス及びデータ量を設定するコマンドキューを発行するシステムコントローラと、前記コマンドキューにより前記バッファメモリを制御するバッファ制御手段とを備え、前記バッファ制御手段は、前記バッファメモリに蓄積されたデータが前記コマンドキューで指定されたデータ量になるまでデータ転送し、データ転送終了毎に割込み信号を発生し、前記システムコントローラは、前記割込み信号に従って前記コマンドキューを発行することを特徴とする。
【００１９】
また、設定時間を計測すると割込み信号を発生するタイマを備え、前記タイマには、所定時間当たりのデータ転送回数で示されるデータ転送容量に対応する時間を設定するものであってもよい。
また、設定時間を計測すると割込み信号を発生するタイマを備え、前記システムコントローラは、１回のデータ転送あたりに要する時間を検出して、データ転送終了までに要するデータ転送回数の予測値を算出し、該予測値をタイマへの割込み周期として設定することで、データの入出力結果に応じてバッファメモリから出力されるデータ転送を動的に変化させることができる。
【００２０】
また、より好ましくは、前記システムコントローラは、前記予測値を所定値と比較し、前記比較結果を基に前記コマンドキューに設定するデータ量を変えることで、バッファメモリのオーバーフローを未然に防ぐことができる。
また、より好ましくは、前記システムコントローラは、前記予測値を所定値と比較し、前記比較結果を基に前記バッファメモリがオーバーフローを起こすと予測する場合、前記バッファメモリへのデータ転送を一時中断し、該バッファメモリからのデータ読み出しのみを行うコマンドキューを発行することで、バッファメモリのオーバーフローを防ぎ、記録データの連続性を保証することができる。
【００２１】
また、より好ましい具体的な態様としては、前記システムコントローラは、前記予測値を所定値と比較し、前記比較結果を基に前記バッファメモリがオーバーフローを起こすと予測する場合、前記バッファメモリへＭＰＥＧストリームのＩピクチャのみ転送するコマンドキューを発行することで、バッファメモリのオーバーフローを防ぎ、記録データの連続性を保証することができる。
【００２２】
さらに、本発明のデータ入出力装置は、前記バッファメモリへのデータ転送動作が、該バッファメモリからのデータ読み出し動作よりも優先する動作であることを使用者に報知する報知手段を備えることで、記録データ優先で動作していることを使用者に報知することができる。
【００２３】
【発明の実施の形態】
以下、添付図面を参照しながら本発明の好適なデータ入出力装置の実施の形態について詳細に説明する。
第１の実施の形態
図１は、本発明の第１の実施の形態のデータ入出力装置の構成を示す図である。データ入出力装置として、データをバッファメモリへ転送若しくは、バッファメモリからデコーダへＭＰＥＧストリームを出力するデジタルデータ記録再生装置に適用した例である。
【００２４】
図１において、１は記録処理部、２は記録用バッファメモリ、３は映像音声データを記録するハードディスク又はＤＶＤ等のディスク（記録媒体）、４はディスク３を制御するディスク制御部、５はバッファメモリ２，６を制御するバッファ制御部（バッファ制御手段）、６は再生用バッファメモリ、７は再生処理部、８はＣＰＵ等から構成され装置全体を制御するシステムコントローラである。
システムコントローラ８は、割込み信号に従って記録用バッファメモリ２及び再生用バッファメモリ６への転送開始アドレス及び転送長さを設定するコマンドキューを発行する。
【００２５】
バッファ制御部５は、システムコントローラ８から発行されたコマンドキューにより記録用バッファメモリ２及び再生用バッファメモリ６のデータ転送を制御する。バッファ制御部５は、記録用バッファメモリ２に蓄積されたデータがコマンドキューで指定されたデータ量になるまでデータ転送し、データ転送終了毎に割込み信号を発生する。
以下、上述のように構成されたデータ入出力装置の動作を説明する。
まず、記録時の動作について説明する。
【００２６】
システムコントローラ８では、使用者からの記録指示を受け付ける。使用者からの記録指示に従って、システムコントローラ８は記録処理部１を制御する。記録処理部１では、ＢＳチューナなどから入力されたＭＰＥＧ２ストリームが入力され、システムコントローラ８によって指示された番組を構成するデータをセレクトする。記録処理部１でセレクトされたデータは、システムコントローラ８により制御されるバッファ制御部５によりアドレスが指定され、記録用バッファメモリ２へ格納される。記録用バッファメモリ２に格納されたデータは、ディスク制御部４を介してディスク３へ書き込まれる。
【００２７】
システムコントローラ８は、記録用バッファメモリ２へ格納された記録データの出力転送開始アドレスと転送するデータを設定可能な記録コマンドキューと再生用バッファメモリ６へ格納する再生データの入力の転送開始アドレスと転送するデータ量を設定可能な再生コマンドキューを有している。記録コマンドキューを発行することにより、記録用バッファメモリ２からディスク３への記録データの転送の制御を行い、再生コマンドキューを発行することによりディスク３から再生用バッファメモリ６へのデータ転送制御を行う。
【００２８】
システムコントローラ８は、使用者からの記録指示を受け付けると、バッファ制御部５へ記録コマンドキューを発行する。バッファ制御部５では、記録用バッファメモリ２に蓄積されたデータ量を監視しており、記録用バッファメモリ２に蓄積されたデータが記録コマンドキューで指定されたデータ量になったところで、ディスク制御部４へデータ転送要求を出す。
【００２９】
ディスク制御部４では、バッファ制御部５からのデータ転送要求を受け付けるとシステムコントローラ８へ記録用バッファメモリ２からディスク３へのデータ転送許可を求める。システムコントローラ８では、ディスク３へ書き込み可能な状態であれば、ディスク制御部４へデータ転送許可を出す。ディスク制御部４は、この許可信号によりバッファ制御部５へ記録用バッファからのデータ転送許可信号を出す。この許可信号により、記録用バッファメモリ２から記録データを読み出し、ディスク制御部４を介して記録データをディスク３へ格納する。１回に転送するデータ量はシステムコントローラ８が発行する記録コマンドキューで指定されている。バッファ制御部５では、データ転送が終了するとシステムコントローラ８へ割込み信号を出す。
【００３０】
バッファ制御部５では、新たな記録コマンドキューをシステムコントローラ８から設定されない限り、記録用バッファメモリ２からディスク３へのデータ転送量の変更を行わない。また、システムコントローラ８からバッファ制御部５へ発行する記録コマンドキューはバッファ制御部５からシステムコントローラ８への割込み信号を検知した時に行う。
次に、再生時の動作について説明する。
【００３１】
システムコントローラ８では、使用者からの再生指示を受け付ける。使用者からの再生指示により、システムコントローラ８からバッファ制御部５へ再生コマンドキューが発行される。バッファ制御部５では再生コマンドキューを受け取ると、ディスク制御部４へ再生データの転送要求を出す。ディスク制御部４では、ディスク３から再生データの読み出しが可能であれば、ディスク３からデータを読み出す。
【００３２】
読み出したデータは、バッファ制御部５によりアドレスが指定され、再生用バッファメモリ６へ格納される。バッファ制御部５により指定されるアドレスは、システムコントローラ８から発行された再生コマンドキューで指定されたアドレスを開始アドレスとしている。また、転送されるデータ量も再生コマンドキューにより指定されている。
【００３３】
バッファ制御部５では、再生コマンドキューで指定されたデータ量の転送が終了したとき、再生用バッファメモリ６に蓄積された再生データ量を確認し、一定量以下であればシステムコントローラ８へ割込み要求信号を出す。システムコントローラ８で割込みを検知すると、新たな再生コマンドキューを発行し、再生データのデータ転送を制御する。
【００３４】
デジタル放送では、予め決められたビットレートで圧縮されたＭＰＥＧ２ストリームを転送する。そのため、タイマを使用してある特定の時間当たりのデータ転送回数を予測することが可能であり、その予測回数を上回っていれば、記録用バッファメモリがオーバーフローすることなくシステムが動作していることが分かる。逆に、予測回数を下回っていれば、記録用バッファメモリ２に蓄積されるデータが増加し、オーバーフローする可能性があることが分る。
【００３５】
以上のように、第１の実施の形態のデータ入出力装置は、記録処理部１、記録用バッファメモリ２、映像音声データを記録するディスク３、ディスク３を制御するディスク制御部４、システムコントローラ８から発行されたコマンドキューにより記録用バッファメモリ２及び再生用バッファメモリ６のデータ転送を制御するバッファ制御部５、再生用バッファメモリ６、再生処理部７、及び割込み信号に従って記録用バッファメモリ２及び再生用バッファメモリ６への転送開始アドレス及び転送長さを設定するコマンドキューを発行するシステムコントローラ８を備え、システムコントローラ８は、記録用バッファメモリ２への入出力アドレス及び転送長さを前もって設定できるコマンドキューを有し、バッファ制御部５は、各転送終了毎に割込みを発生するように構成したので、記録用バッファメモリ２からディスク３へのデータ転送容量を記録用バッファメモリ２の使用状況により変化させることができ、記録用バッファメモリ２のオーバーフローを防ぐことができる。
【００３６】
第２の実施の形態
図２は、本発明の第２の実施の形態のデータ入出力装置の構成を示す図である。図１と同一構成部分には同一符号を付して重複箇所の説明を省略する。
本実施の形態のデジタルデータ記録再生装置は、図２に示すように、図１のデジタルデータ記録装置に、タイマ９を付加した構成になっている。タイマ９を利用し、バッファメモリのコントロールを行うことで記録用バッファメモリ２のオーバーフローを回避するものである。
【００３７】
以下、上述のように構成されたデータ入出力装置の動作を説明する。本実施の形態のデジタルデータ記録再生装置の基本動作は、第１の実施の形態のデータ入出力装置と同様である。ここでは、第１の実施の形態のデータ入出力装置と動作の異なる部分のみ説明する。
【００３８】
システムコントローラ８によって設定された時間経過すると、システムコントローラ８に割り込みを発生する。タイマは、設定された時間が経過する毎に割込み信号を発生するモード（モード１）と、設定された時間が経過すると１度だけ割込み信号発生するモード（モード２）を有している。
【００３９】
システムコントローラ８では、使用者からの記録指示を受け付けると、選局されたチャンネルを認識し、記録命令を各ブロックへ出す。その後、タイマ９へ割り込みをかける時間（Ｔｓ）の設定を行う。このとき、タイマ９をモード２で動作させる。タイマ９は、設定された時間が経過したところで、システムコントローラ８へ割り込みを発生する。
【００４０】
システムコントローラ８では、記録を開始してからタイマ割込み発生までに行われた記録用バッファメモリ２からディスク３へのデータ転送回数（Ｚ）をカウントしており、タイマ割込みを検知すると、ある一定時間（Ｔｌ）あたりのデータ転送回数（Ｃ）を算出する。データ転送回数（Ｃ）は、次式（１）で求めることができる。
【００４１】
Ｃ＝ＺｘＴｌ／Ｔｓ                                        …（１）
【００４２】
ここで算出したＣは、一定時間Ｔｌあたりに行われるべきデータ転送回数の予測値である。例えば、Ｔｓが１００ｓのときＸが６００回であった場合、１秒あたりのデータ転送回数は、６００／１００＝６（回／ｓ）で求めることができる。
予測値を求めると、システムコントローラ８からタイマ９へ割込み周期としてＴｌを設定する。このとき、タイマ９はモード１で動作させ、定期的にタイマ割込みを発生させる。
【００４３】
例えば、タイマ割込みが発生してから次のタイマ割込み発生までに行われたデータ転送回数（Ｘ）≧Ｃであれば、記録用バッファメモリ２はオーバーフローを起こすことなくデータ転送が行われていることが分かる。しかし、タイマ割込み発生までにＸ＜Ｃの場合、記録バッファメモリ２には（Ｘ−Ｃ）×１回のデータ転送容量（Ｄ）だけ余分にデータが蓄積されていると考えられる。
【００４４】
そこで、Ｘ＜Ｃの場合、バッファ制御部５からの割込みをシステムコントローラ８で検知すると、Ｄ＋（Ｘ−Ｃ）×Ｄ（今までのデータ転送容量に、データ転送されなかったと予測したデータ量の和を取ったもの）のデータ転送容量をコマンドキューで指定し、バッファ制御部５に記録コマンドキューを発行する。次のバッファ制御部５からシステムコントローラ８へ割込み信号を出した時には、記録用バッファメモリ２に蓄積されていたデータは１回のデータ転送容量を増加させることで、減少している。そのため、システムコントローラ８では割込みを検知すると、記録コマンドキューで指定するデータ転送容量を元のデータ転送容量Ｄに戻して発行する。
上記、タイマ９を利用したバッファメモリコントロール方法について図３のフローチャートを用いてさらに詳細に説明する。
【００４５】
図３は、デジタルデータ入出力装置の動作を示すフローチャートであり、図中、Ｓはフローの各ステップを示す。
まず、ステップＳ１で１回目のタイマ割込みを検知し、ステップＳ２で一定時間（Ｔｌ）あたりのデータ転送回数（Ｃ）を算出する。次いで、ステップＳ３でタイマ９へ割込み周期Ｔｌを設定する。
【００４６】
ステップＳ４でタイマ割込みがあるか否かを判別し、タイマ割込みがあればステップＳ５でタイマ割込みが発生してから次のタイマ割込み発生までに行われたデータ転送回数（Ｘ）が一定時間（Ｔｌ）あたりのデータ転送回数（Ｃ）より少ないか（Ｘ＜Ｃか）否かを判別する。Ｘ＜Ｃのときは、ステップＳ６でバッファ制御部５からの割込みがあるか否かを判別し、バッファ制御部５からの割込みがあるまで待つ。
【００４７】
バッファ制御部５からの割込みがあると、ステップＳ７で現在のデータ転送容量Ｄに、（Ｘ−Ｃ）×Ｄを加算したデータ転送容量を記録コマンドキューとしてバッファ制御部５に設定し、ステップＳ８でバッファ制御部５からの割込みがあるか否かを判別し、バッファ制御部５からの割込みを待つ。バッファ制御部５からの割込みがあると、ステップＳ９でバッファ制御部５へデータ転送容量Ｄを設定し、タイマ９をリセットして上記ステップＳ４に戻る。上記ステップＳ４でタイマ割込みがないとき、又は上記ステップＳ５でＸ≧ＣのときはステップＳ４に戻り、タイマ割込みを待つ。
【００４８】
このように、一定時間Ｔｌあたりのデータ転送回数が予測した回数より少なかった場合は、バッファ制御部５へ発行する記録コマンドキューで設定する１回のデータ転送容量を一時的に増加させることにより、記録用バッファメモリ２のデータ蓄積量を減少させる。
【００４９】
以上のように、第２の実施の形態のデータ入出力装置は、さらに、設定された時間を計測し、該設定時間を計測すると割込み信号を発生するタイマ９を備え、タイマ９には、一定時間当たりのデータ転送回数で示されるデータ転送容量に対応する時間を設定する構成としたので、データの入出力結果に応じて記録用バッファメモリ２からディスク３へのデータ転送を動的に変化させることができ、記録用バッファメモリ２のオーバーフローを未然に防ぐことができる。
【００５０】
第３の実施の形態
本発明の第３の実施の形態のデータ入出力装置の構成は、図２の構成と同様である。
但し、タイマ９は、複数の時刻計測を行うカウンタを有しており、システムコントローラ８へ割込みを発生するための時間計測以外に、記録データのデータ転送が終了してから次のデータ転送が終了するまでの時間も計測している。
【００５１】
図４は、本実施の形態のデータ入出力装置の動作を示すフローチャートである。
システムコントローラ８では、使用者からの記録指示を受け付けると、選局されたチャンネルを認識し、記録命令を各ブロックへ出す。その後、タイマ９へ割り込みをかける時間（Ｔｓ）の設定を行う。このとき、タイマ９をモード２で動作させる。タイマ９は設定された時間が経過したところで、システムコントローラ８へ割り込みを発生する。
【００５２】
システムコントローラ８では、記録を開始してからタイマ割込み発生までに行われた記録用バッファメモリ２からディスク３へのデータ転送回数（Ｚ）をカウントしており、タイマ割込みを検知すると、１回のデータ転送あたりに要する時間（Ｔｒ）を算出する。Ｔｒ＝Ｔｓ／Ｚで求めることができる。ここで算出したＴｒは１回のデータ転送終了から次のデータ転送終了するまでに要する時間の予測値である。
【００５３】
この予測値Ｔｒをタイマ９の割り込み周期として設定する。記録用バッファメモリ２からディスク３へデータ転送が行われると、バッファ制御部５はタイマ９のリセットを行うと共に、システムコントローラ８へ割込みを発生する。システムコントローラ８では、タイマ９からの割り込み要求が発生していた場合、記録データのデータ転送が、予測時間Ｔｒを超えて終了したことになる。システムコントローラ８でバッファ制御部５からの割込みを検知した時には、記録用バッファメモリ２には、（実際に１回のデータ転送が終了するまでにかかった時間Ｔｔ−予測時間Ｔｒ）×１回のデータ転送容量Ｄだけ、余分にデータが蓄積されていると考えられる。ここで、タイマ９には複数の時刻計測を行うカウンタを有しており、システムコントローラ８へ割込みを発生するための時間計測以外に、記録データのデータ転送が終了してから次のデータ転送が終了するまでの時間も計測している。その時間をシステムコントローラ８では取得することができるようになっており、タイマ割込みが発生した時は、バッファ制御部５の割込みを検知すると、タイマ９からデータ転送に実際に掛かった時間Ｔｔを取得する。
【００５４】
システムコントローラ８では、記録用コマンドキューにＤ＋Ｄｘ（Ｔｔ−Ｔｒ）のデータ転送容量を設定し、バッファ制御部５へ発行する。この値は、記録用バッファメモリ２へ余分に蓄積されていると予測したデータ量を、現在設定しているデータ転送容量に足したものである。また、同時にタイマ９をリセットしてタイマ９を一時停止する。データ転送が終了し、バッファ制御部５からの割込み検知すると、システムコントローラ８では、再度タイマ９をスタートさせ、データ転送容量を元のデータ転送容量Ｄに設定した記録コマンドキューを転送してバッファ制御部５の制御を行う。
上記動作を、図４のフローによりさらに詳細に説明する。
【００５５】
まず、ステップＳ１１でタイマ割込みを検知し、ステップＳ１２でデータ転送がなかった場合に記録用バッファメモリがオーバーフローするまでの時間Ｔｒを予測する。この予測値Ｔｒは、１回のデータ転送終了から次のデータ転送終了するまでに要する時間により求めることができる。
【００５６】
次いで、ステップＳ１３でこの予測値Ｔｒをタイマ９の割り込み周期として設定し、ステップＳ１４でタイマ割込みがあるか否かを判別し、タイマ割込みがなければタイマ割込みが発生するまで待つ。
記録用バッファメモリ２からディスク３へデータ転送が行われると、バッファ制御部５からの割込みが発生し、ステップＳ１６でバッファ制御部５からの割込みが発生するまでの時間Ｔｔを取得する。
【００５７】
次いで、ステップＳ１７で（Ｔｔ−Ｔｒ）×Ｄ＋Ｄのデータ転送容量を記録コマンドキューに設定し、バッファ制御部５へ発行し、ステップＳ１８でバッファ制御部５からの割込みがあるか否かを判別し、バッファ制御部５からの割込みを待つ。バッファ制御部５からの割込みがあると、ステップＳ１９でバッファ制御部５へデータ転送容量Ｄを再設定し、上記ステップＳ１４に戻る。
【００５８】
以上のように、第３の実施の形態のデータ入出力装置は、１回のデータ転送あたりに要する時間を検出して、データ転送終了までに要するデータ転送回数の予測値を算出し、該予測値をタイマ９への割込み周期として設定することで、データの入出力結果に応じて記録用バッファメモリ２から出力されるデータ転送を動的に変化させることができる。
【００５９】
第４の実施の形態
本発明の第４の実施の形態のデータ入出力装置の構成は、図２の構成と同様である。
システムコントローラ８では、ある一定時間Ｔｌあたりのデータ転送回数の予測値Ｃを算出する。これは、第２の実施の形態と同様の手順で行う。
【００６０】
図５は、本実施の形態のデータ入出力装置の動作を示すフローチャートである。図３のフローと同様の処理を行っている部分は省略しており、タイマ９へ割込み周期Ｔｌを設定した後からのシステムコントローラ８の動作について図示している。
システムコントローラ８は、タイマ９の割込み周期としてＴｌを設定し、タイマの割込みを検知する度に記録用バッファメモリ２に蓄積されているデータ量を予測する。この予測値Ｐは、ｉ回目の割込みが発生した時のデータ転送回数をＸｉとすると、予測値Ｐは次式（２）により算出できる。
【００６１】
Ｐ＝（Σ（Ｘｉ−Ｃ））×１回のデータ転送容量Ｄ              …（２）
【００６２】
この値がバッファメモリの上限の閾値Ｍｕを超えていた場合、記録優先フラグＦｒを１にし、そうでなければ、上記動作を繰り返す。
バッファメモリの上限の閾値Ｍｕを超えていた場合、再生データの転送中あるいは再生データ転送待ち状態であるかを確認し、そうであれば再生データの転送を中断し、記録データ転送を行うようにシステムコントローラ８からディスク制御部４へ指示が出される。ディスク制御部４では、バッファ制御部５の要求により、記録データの転送のみを行うようにする。１回の記録データの転送が終了すると、記録用バッファメモリ２の蓄積データの予測値Ｐを算出する。そして、記録フラグＦｒが１であれば、予測値Ｐが記録用バッファメモリ２の下限の閾値Ｍｌより小さいかを判断する。もし小さければ、通常の転送状態に戻し、記録フラグＦｒを０にして再生データの転送も行うようにする。Ｐ≧Ｍｌの場合は、再度記録データの転送を行うよう指示を出す。
【００６３】
また、バッファメモリの上限の閾値Ｍｕ超えていて、再生データの転送中でない場合は、バッファ制御部５からの割込みを検知すると、再度記録データの転送を行うようディスク制御部４へ指示を出す。１回の記録データの転送が終了すると同様に予測値Ｐを算出し、Ｍｌと比較して上記動作を繰り返す。
上記動作を、図５のフローによりさらに詳細に説明する。
【００６４】
まず、ステップＳ２１でタイマ割込みを検知し、ステップＳ２２でｉ回目の割込み時の記録用バッファメモリ２に蓄積されているデータ量の予測値Ｐを上記式（２）に従って算出する。次いで、ステップＳ２３で記録優先フラグＦｒに１が設定されているか否かを判別し、Ｆｒ＝１でなければステップＳ２４で予測値Ｐが記録用バッファメモリ２の上限値（Ｍｕ）より大きいか（Ｐ＞Ｍｕか）否かを判別する。Ｐ＞Ｍｕのときは、ステップＳ２５で記録優先フラグＦｒに１を設定してステップＳ２６に進み、Ｐ≦Ｍｕのときは上記ステップＳ２１に戻る。
【００６５】
ステップＳ２６では、再生データの転送中あるいは再生データ転送待ち状態であるかを確認し、そうであればステップＳ２７で再生データの転送を中断し、記録データ転送を行うようにシステムコントローラ８からディスク制御部４へ指示を出して上記ステップＳ２１に戻る。ディスク制御部４では、バッファ制御部５の要求により、記録データの転送のみを行うようにする。１回の記録データの転送が終了すると、記録用バッファメモリ２の蓄積データの予測値Ｐを算出することになる。
【００６６】
また、上記ステップＳ２６で再生データの転送中あるいは再生データ転送待ち状態でなければ、バッファメモリの上限の閾値Ｍｕ超えていて再生データの転送中でない場合であり、ステップＳ２８でバッファ制御部５からの割込みを検知し、ステップＳ２９で再度記録データの転送を行うようディスク制御部４へ指示を出して上記ステップＳ２１に戻る。このように、１回の記録データの転送が終了すると、予測値Ｐを算出し、Ｍｌと比較して上記動作を繰り返す。
【００６７】
一方、上記ステップＳ２３で記録フラグＦｒが１であれば、ステップＳ３０で予測値Ｐが記録用バッファメモリ２の下限値（Ｍｌ）より小さいか（Ｐ＜Ｍｌか）否かを判別する。Ｐ＜Ｍｌのときは、ステップＳ３１で通常の転送状態に戻し、記録フラグＦｒを０にして上記ステップＳ２１に戻り再生データの転送も行うようにする。Ｐ≧Ｍｌの場合は、そのまま上記ステップＳ２１に戻って再度記録データの転送を行うよう指示を出す。
【００６８】
以上のように、第４の実施の形態のデータ入出力装置は、システムコントローラ８が、予測値を所定値と比較し、比較結果を基に記録用バッファメモリ２がオーバーフローを起こすと予測する場合、記録用バッファメモリ２へのデータ転送を一時中断し、記録用バッファメモリ２からのデータ読み出しのみを行うコマンドキューを発行するように構成したので、記録用バッファメモリ２のオーバーフローを防ぎ、記録データの連続性を保証することができる。
【００６９】
ここで、記録用バッファメモリ２がオーバーフローを起こすと予測される場合としては、例えばディスク制御部４から、所定時間を超えるデータシーク時間やリトライ発生、エラー処理等による通知を受けることによりシステムコントローラ８が判断する。
【００７０】
第５の実施の形態
本発明の第５の実施の形態のデータ入出力装置の構成は、図２の構成と同様である。
システムコントローラ８では、ある一定時間Ｔｌあたりのデータ転送回数の予測値Ｃを算出する。これは、第２の実施の形態と同様の手順で行う。
【００７１】
図６は、本実施の形態のデータ入出力装置の動作を示すフローチャートである。図５のフローと同一処理を行うステップについては同一番号を付して重複部分の説明を省略する。
記録用バッファメモリ２の予測値Ｐを算出し、バッファの上限の閾値Ｍｕと比較するところまでは第５の実施の形態と同様である。
上記ステップＳ２４でＰ≦Ｍｕの場合は、ステップＳ２１に戻りタイマ割込みを検知する度に予測値Ｐを算出し、Ｍｕとの比較を行う。
【００７２】
また、Ｐ＞Ｍｕの場合は、ステップＳ２５で記録フラグＦｒを１にし、ステップＳ４１で再生データ転送には、ＭＰＥＧ２ストリームのＩピクチャのみを転送するように指示を出して上記ステップＳ２１に戻る。また、ステップＳ３０でＰ≧Ｍｌの場合についても、ステップＳ４１で再生データ転送には、ＭＰＥＧ２ストリームのＩピクチャのみを転送するように指示を出す。
【００７３】
ここで、ＭＰＥＧ２ストリームの映像は、Ｉピクチャ、Ｂピクチャ、Ｐピクチャという３つのピクチャで構成されている。その中でもＩピクチャは、ある画像の情報だけから符号化されたもので、フレーム間予測を使用せずに生成される。そのため、前後のフレームとは独立にデコードが行われる。したがって、Ｉピクチャだけを送り続けていれば、映像はフレーム落ちしたようになりスムーズな再生は行えなくなるが、映像が激しく乱れることはない。また、その他のピクチャの転送を行わないため、一定時間あたりの再生データの転送回数を減らすことが可能である。そこで、通常時では再生データの転送をしていたところを記録データの転送に使用することで、記録用バッファメモリ２の蓄積データを減少させることが可能となる。これを記録用バッファメモリ２の蓄積データが記録用バッファメモリ２の下限の閾値Ｍｌより小さくなるまで行う。Ｐ＜Ｍｌになったら記録優先フラグＦｒを０にし、再生データの転送も通常通り行うように戻す。
【００７４】
以上のように、第５の実施の形態のデータ入出力装置は、システムコントローラ８が、予測値を所定値と比較し、比較結果を基に記録用バッファメモリ２がオーバーフローを起こすと予測する場合、記録用バッファメモリ２へＭＰＥＧ２ストリームのＩピクチャのみ転送するコマンドキューを発行するように構成したので、記録用バッファメモリ２のオーバーフローを防ぎ、記録データの連続性を保証することができる。
【００７５】
ここで、第１乃至第５の実施の形態において、記録用バッファメモリ２へのデータ転送動作が、該バッファメモリ２からのデータ読み出し動作よりも優先する動作であることを使用者に報知する報知手段を備えることが好ましい。報知手段としては、例えば、同時録画再生時に記録優先でデータ転送を行っている際に、表示モニタに記録優先でデータ転送を行っている旨のメッセージを表示するようにする。
【００７６】
なお、上記各実施の形態では、ＭＰＥＧ２システムにおいて映像、音声信号を入出力するデータ入出力装置に適用しているが、ＭＰＥＧ２システムに限るものでなく、他の装置、例えばＭＰＥＧ１に適用できる。また、バッファメモリに転送するデータストリームは、どのような形式のものでもよい。
【００７７】
また、本実施の形態ではＭＰＥＧ２システムを、例えばコンピュータ本体により行うことができる、ＭＰＥＧアルゴリズムに基づく動画像符号化装置にはすべて適用でき、例えばこの手法を実現するために必要な環境としてはワークステーションやパーソナルコンピュータ以外にＭＰＥＧデコーダなどを外付けにした専用マシンでもよい。
【００７８】
また、記録装置の種類や記録方法等は限定されず、全ての装置に適用可能である。例えば、記録装置として、ＨＤＤのほかＤＶＤ（Digital Video Disc）やＣＤ−Ｒ／ＲＷ、ＭＤ（Mini Disc）に記録するものでもよい。特に、データ転送速度やランダム・アクセス性能が高く、高速アクセスが可能なＨＤＤを記録媒体に用いれば、長時間記録した番組の中から所望の番組を瞬時に検索し、直ぐに利用することが可能になる。また、光磁気ディスク等ＨＤＤ以外の記録装置を用いてもよく、同様の効果を得ることができる。
さらに、上記データ入出力装置を構成する回路や部材の数、種類などは前述した実施の形態に限られないことは言うまでもなく、ソフトウェアにより実現するようにしてもよい。
【００７９】
【発明の効果】
以上、詳述したように、本発明によれば、ディスクを記録媒体とする記録装置において、同時録画再生を行った際、ディスクのシークやエラー処理により、記録用バッファがオーバーフローして記録データの欠落が生じることを未然に防止することができる。具体的には、以下のような効果を得ることができる。
【００８０】
請求項１及び２記載の発明では、データ転送容量を可変にするコマンドキューにより、バッファメモリとディスク間の１回のデータ転送容量を可変にすることができるため、記録用バッファメモリと再生用バッファメモリの使用状況に応じたデータ転送が可能となる。記録用バッファメモリがオーバーフロー気味であれば、バッファメモリからディスクへの１回のデータ転送容量を多くすれば、記録用バッファメモリエリアのデータ蓄積量を減少させることができ、記録用バッファメモリエリアのオーバーフローを防ぐことができる。
【００８１】
また、逆に再生用バッファメモリがアンダーフロー気味であれば、再生データの１回のデータ転送容量を多くすれば、再生用バッファメモリエリアのアンダーフローを防ぐことが可能になる。このように、システムの状況に応じて記録データと再生データのデータ転送制御を容易に行うことができる。また、本データ入出力装置のデータ転送制御を用いることにより、従来のデジタルデータ記録再生装置で起こっていたバッファメモリの破綻を防ぐことが可能になる。
【００８２】
請求項３記載の発明では、ある一定の時間あたりのデータ転送回数を予測し、タイマ割り込みが発生した際に、予測したデータ転送回数が少なかった場合、一時的に記録用バッファメモリからディスクへの１回のデータ転送容量を増加させることにより、記録用バッファメモリのオーバーフローを未然に防ぐことが可能である。
【００８３】
請求項４記載の発明では、ある一定時間内にデータ転送が終了しなかった場合、一時的に記録用バッファメモリからディスクへのデータ転送容量を大きくすることで、記録用バッファメモリに蓄積されるデータ量を減少させることができ、記録用バッファメモリのオーバーフローを未然に防ぐことができる。
【００８４】
請求項５記載の発明では、同時録画再生時に記録用バッファメモリのデータ蓄積量を予測し、オーバーフロー気味であれば、再生データの転送を一時中断し、記録データの転送を優先するようにしたので、再生データは一旦停止することがあるものの、記録用バッファメモリのオーバーフローを未然に防ぐことができ、記録データの連続性を保証することができる。
【００８５】
請求項６記載の発明では、再生データの転送をＩピクチャのみにし、再生データの転送を行うので、記録用バッファメモリのオーバーフローを未然に防ぎ、記録データのデータ転送容量を増加させることにより記録データの連続性を確保することができる。
【００８６】
請求項７記載の発明では、例えば同時録画再生時に記録優先でデータ転送を行っている旨のメッセージをモニタに表示することで、いきなり再生映像が一時停止したり、フレーム飛びが発生しても装置の故障ではないことを使用者に知らせることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態のデータ入出力装置の構成を示す図である。
【図２】本発明の第２の実施の形態のデータ入出力装置の構成を示す図である。
【図３】本実施の形態のデータ入出力装置の動作を示すフローチャートである。
【図４】本発明の第３の実施の形態のデータ入出力装置の動作を示すフローチャートである。
【図５】本発明の第４の実施の形態のデータ入出力装置の動作を示すフローチャートである。
【図６】本発明の第５の実施の形態のデータ入出力装置の動作を示すフローチャートである。
【符号の説明】
１  記録処理部
２  記録用バッファメモリ
３  ディスク（記録媒体）
４  ディスク制御部
５  バッファ制御部（バッファ制御手段）
６  再生用バッファメモリ
７  再生処理部
８  システムコントローラ
【図１】
0003652994.tif 000002
【図２】
0003652994.tif 000003
【図３】
0003652994.tif 000004
【図４】
0003652994.tif 000005
【図５】
0003652994.tif 000006
【図６】
0003652994.tif 000007