次に、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明を適用した記録装置1の構成例を示している。
記録装置1は、光ディスク2にデータを記録したり、光ディスク2に記録されているデータを削除するなどの編集処理を行う。
記録装置1は、図1に示すように、入力データ処理部11乃至制御部16より構成されている。
入力データ処理部11は、ビデオ/オーディオインタフェース、エンコーダ、およびバッファメモリ等から構成され、例えば、図示せぬ撮像装置から入力された画像信号またはマイクロフォンから入力された音声信号にエンコード処理や音声処理を施し、その結果得られたデータを、制御部16を介して、ドライブ15に供給する。
具体的には、例えば、本実施の形態では、図示せぬビデオレコーダ(正確には、それに搭載された撮像装置)により録画された画像信号と、それに対応する音声信号(正確には、それに搭載されたマイクロフォンにより録音された音声信号)とが記録装置1に入力されるとする。なお、以下、このようなビデオレコーダから出力される画像信号と音声信号とをまとめて、AV信号と適宜称する。また、AV信号がデータ化された場合、そのデータを、AVデータと適宜称する。
さらに、本実施の形態においては、記録装置1が処理するAVデータの単位は、クリップデータとされる。クリップとは、ビデオレコーダの撮像処理の回数の単位である。またそれ以外にも、クリップは、その撮像処理の撮像開始から撮像終了までの時間を示す単位を示したり、その撮像処理により得られた各種のデータの長さを示す単位を示したり、その撮像処理により得られた各種のデータのデータ量を示す単位を示したりする。さらに、クリップは、その各種のデータの集合体そのものも示す場合もある。
ここでは、クリップとは、次のような単位であるとする。即ち、ビデオレコーダには、一般的に、録画の開始または終了を指示するボタン(以下、録画ボタンと称する)が設けられており、録画ボタンが押下されて録画が開始され、その後、録画ボタンが再度押下されて録画が終了されるまでの間に(1回の撮像処理で)、被写体が録画された結果得られるAV信号やそれに付随する各種の信号の集合体とされる。
従って、ここでは、クリップデータとは、そのクリップがデータ化されたAVデータを指す。さらに、クリップデータには、AVデータの他に、メタデータ等新たに生成されたデータも含まれることがある。
記憶部12は、制御部16が行う編集処理において必要なデータを記憶したり、記憶しているデータを(本実施の形態ではクリップ単位で)制御部16に供給する。
操作部13は、所定の指令を制御部16に入力するとき、ユーザにより適宜操作される。表示部14は、制御部16から供給されたデータに対応するメッセージや画像を表示する。
ドライブ15は、制御部16の制御に基づいて、その制御部16を介して入力された、入力データ処理部11からの入力データ(本実施の形態では、クリップデータ)を、光ディスク2に記録したり、光ディスク2に記録されているデータを削除する処理を行う。
光ディスク2は、所定のサイズを単位とする1以上の領域(以下、クラスタと称する)に区分されている。そこで、ドライブ15は、クリップデータを光ディスク2に記録する等の処理を実行する場合、クリップデータをその単位(クラスタと同サイズ)のデータに区分し、区分したデータ(以下、クラスタデータと称する)毎に処理を実行していく。
例えば、ドライブ15は、クリップデータを光ディスク2に記録する場合、クリップデータを、1以上のクラスタデータに区分し、各クラスタデータのそれぞれを、光ディスク2を構成するクラスタのそれぞれに順次記録していく。このとき、ドライブ15に設けられているエラー判定部21は、1つのクラスタデータが記録される(書き込まれる)毎に、そのクラスタデータを光ディスク2から再び読み出して、エラーのチェック(正常に記録されていることのチェック)を行い、エラーを検出したときには、直前に書き込んだそのクラスデータを光ディスク2に再度書き込む(リトライする)処理を実行する。
詳細については後述するが(図9乃至図13参照)、このようにしてエラーを検出したとき、エラー判定部21はさらに、エラーの発生要因は、記録装置1が揺れた等の外的(光ディスク2から見て)要因であるのか、或いは、光ディスク2自身の傷等の内的(光ディスク2から見て)要因であるのかを判定する。そして、エラー判定部21は、判定したエラー発生要因の特徴(内的または外的要因のそれぞれの特徴)に応じたリトライ処理を実行する。
制御部16は、各部を制御する。
記録装置1における編集処理の概略を、図2のフローチャートを参照して説明する。なおここでは、簡単のために、図2のフローチャートに示す順番に従って各処理を説明するが、ステップS1における起動処理、ステップS5におけるフォーマット処理、ステップS7におけるデータ記録処理、およびステップS9におけるデータ削除処理は、それぞれ独立して行うようにすることもできるし、他の装置で行われるようにすることもできる。
ステップS1において、制御部16は、例えば、電源が投入等されたとき、記録装置1を起動する処理を行う。ここでの処理の詳細は、図3のフローチャートを参照して後述する。
次に、ステップS2において、制御部16は、復元すべきデータが有るか否かを判定する。ステップS2において、復元すべきデータが有ると判定した場合、制御部16は、ステップS3において、ドライブ15を制御して、復元すべきデータを光ディスク2上に復元する。なお、データの復元の処理(ステップS2とS3の処理)の詳細は、図32、図35、および図36を参照して後述する。
このようにして、ステップS3の処理でデータが復元されたとき、或いは、ステップS2において、復元すべきデータが存在しない(有ではない)と判定されたとき、処理はステップS4に進む。
ステップS4において、制御部16は、操作部13から、光ディスク2のフォーマットが要求されたか否かを判定し、フォーマットが要求されたと判定した場合、ステップS5において、ドライブ15を制御して、光ディスク2のフォーマット処理を実行する。ここでの処理の詳細は、図7のフローチャートを参照して後述する。
このようにして、ステップS5の処理で光ディスク2がフォーマットされたとき、或いは、ステップS4において、フォーマットの要求がないと判定されたとき、処理はステップS6に進む。
次に、ステップS6において、制御部16は、操作部13から、データの記録が要求されたか否かを判定し、データの記録が要求されたと判定した場合、ステップS7において、ドライブ15を制御して、入力データ処理部11より入力されたデータを光ディスク2に記録させる。ここでの処理の詳細は、図8のフローチャートを参照して後述する。
ステップS6で、データの記録が要求されていないと判定されたとき、またはステップS7の処理でデータが記録されたとき、ステップS8において、制御部16は、操作部13から、データの削除が要求されたか否かを判定し、データの削除が要求されたと判定した場合、ステップS9において、要求されたデータを削除する。ここでの処理の詳細は、図14のフローチャートを参照して後述する。
ステップS8で、データの削除が要求されなかったと判定されたとき、またはステップS9の処理で、データが削除されたとき、ステップS10において、制御部16は、編集終了の指令が有るか否かを判定し、その指令があったと判定した場合、処理をステップS11に進める。例えば、光ディスク2が取り出された場合、編集終了が指令されたものとして、処理はステップS11に進む。
ステップS11において、制御部16は、ドライブ15を制御して、空き領域データ(従来の記録装置において利用されている、空き領域の大きさや場所等の情報)とともに、ステップS1,S7,S9の処理で作成された空き領域書換管理データを、光ディスク2に記録させる。
なお、ステップS11の処理は、光ディスク2が取り出されるとき、または電源がオフされたときに行われるようにすることもできる。
その後、処理は終了する。
これに対して、ステップS10において、制御部16は、編集終了の指令が有るか否かを判定し、その指令がなかったと判定した場合、処理をステップS4に戻し、それ以降の処理を繰り返す。
次に、図3のフローチャートを参照して、図2のステップS1における起動処理を説明する。
ステップS21において、制御部16は、図4に示すように、カレントキュー101、ネクストキュー102、書き込み回数の欄103、および記録開始位置の欄104を、記憶部12上に作成する。なお、作成されたカレントキュー101乃至記録開始位置の欄104は、空の状態とされている。
次に、ステップS22において、制御部16は、光ディスク2に空き領域書換管理データが記録されているか否かを判定し、記録されていないと判定した場合、ステップS23に進む。記録装置1により、データの書き込みや削除(編集処理)が行われていない光ディスク2(すなわち、図2のステップS11の処理で、空き領域書換管理データが記録されていない光ディスク2)には、空き領域書換管理データが記録されていないので、そのような光ディスク2が装着されたとき、ステップS23に進む。
ステップS23において、制御部16は、光ディスク2に空き領域データが記録されているか否かを判定し、空き領域データが記録されていると判定された場合、ステップS27に進む。
ステップS27において、制御部16は、記憶部12に作成したカレントキュー101に、装着時の光ディスク2に存在するすべての空き領域の領域情報(この例の場合、空き領域の領域開始位置および大きさ)を、空き領域のアドレス上の位置の順に設定する。
例えば、光ディスク2に、図5に示すように、空き領域A乃至空き領域Dが存在する場合、カレントキュー101には、図6に示すように、空き領域A乃至空き領域Dの領域先頭位置、およびその大きさが、領域先頭位置の順に設定される。ここで空き領域の位置は、例えば、論理セクタ番号のブロック毎の順番を表す論理ブロック番号で表され、その大きさは、空き領域に属するブロック数で表される。
なお、本実施の形態では、位置000000とは、光ディスク2の記録領域の先頭位置を指す。また、記録領域とは、本実施の形態では、クリップデータの記録が可能な領域を指す。
なお、以下において、適宜、このように領域情報が設定されることを、空き領域が登録される、と記載する。
次に、ステップS25において、制御部16は、図6に示すように、記憶部12に作成された書き込み回数の欄103に1を初期設定し、ステップS26において、記録開始位置の欄104に、光ディスク2の(記録領域の)先頭位置(位置00000)を初期設定する。なお、図5中、上向きの矢印104Aは、図6の記録開始位置104に設定された値、即ち、記録開始位置を表している。従って、以下、矢印104Aを、記録開始位置104Aと称する。
ステップS23で、空き領域データが記録されていないと判定された場合、ステップS24に進む。出荷時のままの状態で、記録装置1や従来の記録装置により、フォーマットがまだなされていない光ディスク2には、空き領域データも記録されていないので、そのような光ディスク2が装着されたとき、ステップS24に進む。
ステップS24において、制御部16は、光ディスクの記録領域全体を1つの空き領域として、記憶部12のカレントキュー101に登録する。その後、処理は、ステップS25に進む。
ステップS22で、空き領域書換管理データが記録されていると判定された場合、ステップS28に進む。なお、空き領域書換管理データとは、結局、図6に示したようなカレントキュー101乃至記録開始位置の欄104のそれぞれに設定されているデータ全体をいい、このデータは、編集処理がなされた光ディスク2に、ステップS11(図2)で記録される。
ステップS28において、制御部16は、その空き領域書換管理データに含まれる、カレントキュー101に登録されていた空き領域(その領域情報)を、記憶部12に生成したカレントキュー101に登録し、空き領域書換管理データに含まれる、ネクストキュー102に登録されていた空き領域を、記憶部12に生成したネクストキュー102に登録する。そしてステップS29において、制御部16は、空き領域書換管理データに含まれる、書き込み回数の欄103に設定されていた値を、記憶部12に生成した書き込み回数の欄103に設定し、ステップS30において、空き領域書換管理データに含まれる、記録開始位置の欄104に設定されていた値を、記憶部12の記録開始位置の欄104に設定する。
すなわち、ステップS28乃至ステップS30の処理により、光ディスク2に記録されていた空き領域書換管理データが、記憶部12に読み込まれる。
ステップS26またはステップS30で、記録開始位置の欄104に所定の値が設定されたとき、処理は、図2のステップS2に進む。
次に、図2のステップS5におけるフォーマット処理を、図7のフローチャートを参照して、図2のステップS7におけるデータ記録処理を、図8のフローチャートを参照して、図2のステップS9におけるデータ削除処理を、図14を参照して説明するが、はじめにそれぞれのフローチャートに従ってその概略を説明し、その後、具体例に基づいて再度説明する。
はじめにフォーマット処理を説明する。本実施の形態においては、上述したように、光ディスク2に記録されるデータの単位(上述したクラスタではなく、マクロ的に見た単位)は、クリップデータとされている。そこで、図7のステップS31において、制御部16は、光ディスク2に記録されているクリップデータの全てを削除する。即ち、本実施の形態では、光ディスク2がフォーマットされても空き領域書換管理データは削除されずに保持される。
例えば、空き領域書換管理データを、光ディスク2上の記録領域とは異なる特別な領域に記録させることができる。このような場合、例えば、ステップS31において、制御部16は、光ディスク2のうちの記録領域をフォーマットする。
ステップS32において、制御部16は、記憶部12の書き込み回数の欄103の書き込み回数を1だけインクリメントするとともに、ステップS33において、記録開始位置の欄104の値(即ち、記録開始位置104A)を、光ディスク2の(記録領域の)先頭位置(位置00000)に戻す。
次に、ステップS34において、制御部16は、記憶部12のカレントキュー101に、その時点で(フォーマット後の時点で)光ディスク2に存在するすべての空き領域の領域情報(この例の場合、空き領域の領域開始位置および大きさ)を、空き領域のアドレス上の位置の順に登録するとともに、ステップS35において、記録部12のネクストキュー102を空にする。
その後、処理は、図2のステップS6に進む。
次にデータ記録処理を説明する。すなわち図8のステップS41において、制御部16は、図3のステップS24、ステップS27、若しくはステップS28、または図7のステップS34で、記憶部12に生成されたカレントキュー101に空き領域が登録されているか否かを判定し、空き領域が登録されていると判定した場合、ステップS42に進み、カレントキュー101に登録されている空き領域のうち、アドレス上最も前方に位置する(即ち、現時点の記録開始位置104Aに最も近い)空き領域を、データを書き込む領域に決定する。
次に、ステップS43において、制御部16は、データ書き込み処理を実行する。即ち、制御部16は、ドライブ15を制御して、光ディスク2上の、ステップS42で決定した空き領域に、入力データ処理部11により入力されたデータを記録させる。なお、データ書き込み処理の詳細は、図9のフローチャートを参照して後述する。
ステップS44において、制御部16は、データが書き込まれた空き領域の領域情報を、書き込まれたデータ量に応じて変更する。具体的には、領域開始位置と大きさが、データが書き込まれた後に形成された空き領域のものを示すように変更される。
ステップS45において、制御部16は、記録すべきデータのすべてが光ディスク2に記録されたか否かを判定し、記録すべきデータがまだ記録されずに残っていると判定した場合、ステップS41に戻り、それ以降の処理を実行する。
ステップS45で、記録すべきデータがすべて記録されたと判定された場合、ステップS46に進み、制御部16は、記憶部12の記録開始位置の欄104の値(即ち、記録開始位置104A)を、データの書き込み終了位置(ステップS43の処理で最後のデータが書き込まれた場所の位置)に変更する。
ステップS41で、カレントキュー101に空き領域が登録されていないと判定された場合、ステップS47に進み、制御部16は、記憶部12の書き込み回数の欄103の書き込み回数を1だけインクリメントするとともに、ステップS48において、記録開始位置の欄104の値(即ち、記録開始位置104A)を、光ディスク2の(記録領域の)先頭位置(位置00000)に戻す。
次に、ステップS49において、制御部16は、ネクストキュー102に登録されている空き領域をカレントキュー101に移す。ネクストキュー102は、その結果空になる。
ステップS50において、制御部16は、カレントキュー101に空き領域が登録されているか否かを判定し、登録されていると判定した場合、ステップS42に戻り、それ以降の処理を実行する。
ステップS50で、カレントキュー101に空き領域が登録されていないと判定された場合、ステップS41に進み、制御部16は、表示部14を制御して、記録不可を示すエラーメッセージを表示させる。
ステップS46で、記録開始位置の欄104の値(即ち、記録開始位置104A)が変更されたとき、またはステップS51でエラーメッセージが表示されたとき、処理は、図2のステップS8に進む。
ここで、図9のフローチャートを参照して、ステップS43(図8)のデータ書き込み処理の詳細を説明する。
上述したように、本実施の形態では、光ディスク2の記録の単位(大きな単位)は、クリップデータとされている。
そこで、ステップS61において、制御部16は、次に書き込むデータがクリップデータの先頭であるか否かを判定する。
即ち、本実施の形態においては、制御部16は、所定の1つのクリップデータの光ディスク2への記録(書き込み)を開始するとき、ステップS61において、次に書き込むデータがクリップデータの先頭であると判定し、ステップS62において、そのクリップデータのヘッダ部分に現時点の書き込み回数(記憶部12の書き込み回数の欄103の現時点の値)を埋め込む。
このように、本実施の形態においては、各クリップデータが光ディスク2に記録される毎に、その時点の書き込み回数がクリップデータのヘッダ部分に埋め込まれる。ただし、書き込み回数の埋め込み部分は、記録対象のクリップデータと関連付けられる部分であれば、ヘッダ部分に限定されず、光ディスク2上の任意の場所でよい。
このようにして、ステップS62の処理でクリップデータのヘッダ部分に現時点の書き込み回数が埋め込まれたとき、或いは、ステップS61の処理で次に書き込むデータがクリップデータの先頭ではないと判定されたとき、処理はステップS63に進む。
ステップS63において、制御部16は、ドライブ15を制御して、次のデータを処理対象のクラスタに書き込む。
なお、ステップS63の処理で書き込まれる「次のデータ」とは、記録対象のクリップデータがクラスタ単位で区分された上述したクラスタデータのうちの、直前に書き込まれたクラスタデータの次に配置されているクラスタデータを指す。
具体的には、例えば、いま、図10のデータ131が記録対象のクリップデータとされ、データ131が分割された結果得られるクラスタデータ131−1乃至131−5のうちの、クラスタデータ131−1乃至131−3までが光ディスク2のクラスタ(領域)2−1乃至2−3のそれぞれに記録されているとする。この場合、ステップS63の処理で、クラスタデータ131−3の次に配置されているクラスタデータ131−4が、光ディスク2のクラスタ(処理対象のクラスタ)2−4に書き込まれる(記録される)。
ステップS64において、制御部16は、ドライブ15のエラー判定部21を制御して、書き込みエラーが発生したか否かを判定する。即ち、上述したように、エラー判定部21は、直前のステップS63の処理で光ディスク2の処理対象のクラスタに書き込まれたクラスタデータ(いまの場合、クラスタ2−4に書き込まれたクラスタデータ131−4)を再度読み出し、エラーチェックを行う。
このエラーチェックでエラーがないことが確認されると、ステップS64において、書き込みエラーが発生していないと判定され、処理はステップS65に進められる。
ステップS65において、制御部16は、光ディスク2上の書き込んだクラスタ(処理対象のクラスタ)が空き領域の最後のクラスタであるか否かを判定する。
ステップS65において、書き込んだクラスタ(処理対象のクラスタ)が空き領域の最後のクラスタであると判定された場合、処理は図8のステップS44に進められる。
これに対して、ステップS65において、書き込んだクラスタ(処理対象のクラスタ)が空き領域の最後のクラスタではないと判定した場合、制御部16は、ステップS66において、書き込むべきデータ(本実施の形態では、1以上のクリップデータ)の全てが書き込まれたか否かを判定する。
ステップS66において、書き込むべきデータの全てが書き込まれたと判定された場合、処理は図8のステップS44に進められる。
これに対して、ステップS66において、書き込むべきデータの全てがまだ書き込まれていないと判定した場合、制御部16は、ステップS67において、光ディスク2上の一つ隣のクラスタを処理対象のクラスタに設定し(更新し)、処理をステップS61に戻し、それ以降の処理を繰り返す。
即ち、いまの場合、ステップS67の処理で、処理対象のクラスタが、図10のクラスタ2−4からクラスタ2−5に更新され、ステップS61の処理で、次に書き込むデータがクリップデータの先頭ではないと判定された後、ステップS63の処理で、クラスタデータ131−5がクラスタ2−5に書き込まれる。
なお、図10において、枠32は処理対象のクラスタを囲む枠を示している。図10以降の図面においても、枠32は処理対象のクラスタを囲む枠を示している。
例えば、いま、図10のクラスタ2−5内に×印で示されるように、そのクラスタ2−5が傷等により欠陥クラスタであったとする。
この場合、エラー判定部21は、上述したエラーチェックを行うことにより、クラスタ2−5が欠陥クラスタであることを検出し、その検出結果(エラーチェック結果)を制御部16に通知することになる。
すると、制御部16は、ステップS64において、書き込みエラーが発生したと判定し、ステップS68において、内的要因エラーであると判定し、処理をステップS69に進める。
そして、制御部16は、エラー判定部21を制御して、ステップS69において、その他の欠陥クラスタ(欠陥クラスタが続く範囲)を予測し、ステップS70において、欠陥クラスタ(予測された範囲)の次のクラスタに、直前のステップS63の処理で書き込みが行われたクラスタデータを再書き込み(リトライ)する。
例えば、いまの場合、図11に示されるように、制御部16は、ステップS69において、欠陥クラスタは、クラスタ2−5の他、そのクラスタ2−5に続くクラスタ2−6乃至2−13であると推定する(欠陥クラスタが連続する部分は、クラスタ2−5乃至2−13までの範囲であると推定する)。そして、制御部16は、ステップS70において、処理対象のクラスタを、推定された欠陥クラスタ2−13の次の(クラスタ2−5乃至2−13までの範囲の次の)クラスタ2−14に設定し(更新し)、クラスタデータ131−5を処理対象のクラスタ2−14に書き込む。
その後、処理はステップS61に戻され、それ以降の処理が繰り返される。即ち、その後、クラスタデータ131−5に続くクラスタデータ131−6乃至131−10のそれぞれは、図11に示されるように、クラスタ2−14に続くクラスタ2−15乃至2−19のそれぞれに書き込まれる(記録される)ことになる(ただし、クラスタ2−15以降で書き込みエラーが発生しない場合)。
以上、書き込みエラーのうちの内的要因エラーが発生した場合のリトライ処理について説明した。次に、書き込みエラーのうちの外的要因エラーが発生した場合のリトライ処理について説明する。
例えば、いま、図12に示されるように、ステップS67の処理で、処理対象のクラスタ(枠32で囲まれるクラスタ)が、クラスタ2−4からクラスタ2−5に設定(更新)され、ステップS61の処理で、次に書き込むデータがクリップデータの先頭ではないと判定された後、ステップS63の処理で、クラスタデータ131−5がクラスタ2−5に書き込まれたとする。
ただし、今度は、図12に示されるように、クラスタ2−5が欠陥クラスタでない(正常なクラスタである)にも関わらず、記録装置1の振動等の外的な(光ディスク2から見て)要因で書き込みエラーが発生したとする。
この場合、エラー判定部21は、上述したエラーチェックを行うことにより、外的要因エラーが発生したことを検出し、その検出結果を制御部16に通知することになる。
すると、制御部16は、ステップS64において、書き込みエラーが発生したと判定し、ステップS68において、内的要因エラーではない(即ち、外的要因エラーである)と判定し、処理をステップS71に進める。
そして、ステップS71において、制御部16は、エラー判定部21を制御して、処理対象のクラスタを、現在の処理対象のクラス他の一つ隣のクラスタに設定し(更新し)、一つ隣のそのクラスタに、直前のステップS63の処理で書き込まれたクラスタデータを再書き込み(リトライ)する。
例えば、いまの場合、図13に示されるように、制御部16は、ステップS71において、処理対象のクラスタを、クラスタ2−5の次のクラスタ2−6に設定し(更新し)、クラスタデータ131−5を処理対象のクラスタ2−6に書き込む。
その後、処理はステップS61に戻され、それ以降の処理が繰り返される。
このとき、さらに、外的要因エラーが続いたとすると(例えば、記録装置1が連続的に振動し続けたとすると)、図13に示されるように、処理対象のクラスタは、一つずつ移動していき、移動する毎に、クラスタデータ131−5はその時点の処理対象のクラスタ(図13の例では、クラスタ2−6乃至2−9のうちのいずれか)に順次再書き込みされていく。
その後、外的要因エラーの発生がなくなると、その時点の処理対象のクラスタ(図13の例では、クラスタ2−10)にクラスタデータ131−5が書き込まれる。そして、それ以降、そのクラスタデータ131−5に続くクラスタデータ131−6乃至131−10のそれぞれは、図13に示されるように、クラスタ2−10に続くクラスタ2−11乃至クラスタ2−15のそれぞれに書き込まれる(記録される)ことになる(ただし、クラスタ2−11以降で書き込みエラーが発生しない場合)。
以上、説明したように、本実施の形態においては、書き込みエラーが発生した場合、その発生要因の特徴を考慮したリトライ処理が実行される。即ち、内的要因の場合、欠陥クラスタ(予測分含)がスリッピングされて(リトライすべき処理対象のクラスタが移動されて)、リトライ処理が実行される。また、外的要因の場合であっても、その外的要因によるエラーの発生が収束するまで、処理対象のクラスタが1つずつスリッピング(移動)されて、リトライ処理が実行される。
記録装置1は、このような本実施の形態のデータ書き込み処理(図9のフローチャートの処理)を実行することができるので、次のような効果を奏することが可能になる。即ち、従来の記録装置に適用されていた、書き込みが成功するまで同一クラスタを処理対象としてリトライする手法(特に、外的要因の場合に多く行われる手法)が有していた課題、即ち、特定のクラスタ(書き込みが成功するまでリトライが繰り返し行われたクラスタ)の異常消耗(過剰書き込みによる消耗)が発生してしまうといった課題を解決できる効果である。即ち、記録媒体(ここでは、光ディスク2)の記録領域に対する書き込み回数を均等にできる効果である。
次に、図2のステップS9のデータ削除処理を、図14のフローチャートを参照して説明する。
なお、図14のフローチャートの処理は次の前提に基づいた処理例である。即ち、図示せぬビデオレコーダを使用するユーザの要望として、メディア(ここでは、光ディスク2)に一度記録したクリップデータのうちの不要なクリップデータを削除してメディアの容量を増やし、別のクリップデータを新規に記録したい、といった要望が存在する。そのような要望に応えるために、メディアに記録されたクリップデータのうちの最終のクリップデータ(最後に記録されたクリップデータ)を削除する機能(以下、ラストクリップ削除機能と称する)が存在する。このラストクリップ削除機能の実行が、この図14のフローチャートのデータ削除処理では前提とされている。即ち、記録装置1がラストクリップ削除機能を有していることが前提とされている。
また、本実施の形態においては、このような最終のクリップデータが削除された後(それに対応する図14のデータ削除処理、即ち、図2のステップS9の処理の後)、ステップS7のデータ記録処理が実行される場合(ステップS10の処理で編集終了の指令が無いと判定され、それ以降、ステップS6の処理でデータ記録の要求有りと再度判定された場合)、新たに記録されるクリップデータは、光ディスク2の記録領域のうちの、最終のクリップデータが削除された領域に記録されることになる。光ディスク2のようなアクセス速度の速くないメディアを使用するレコーダにおいてリアルタイム再生を保証するためである。
はじめに、ステップS81において、制御部16は、ドライブ15を制御して、例えば、
操作部13による操作により指定されたデータ(クリップデータ単位)を光ディスク2から削除する。即ち、本実施の形態では、光ディスク2に記録されている1以上のクリップデータのうちの最終のクリップデータが削除される。
なおここで削除には、データが実際に削除されることの他、データが削除されたものとして取り扱われるようになったことも含む。
次に、ステップS82において、制御部16は、ステップS81でデータが削除された領域(空き領域となった領域)(または、データが削除されたものとされた領域)が、記憶部12の記録開始位置の欄104の値、即ち、記録開始位置104Aより前方にあるか否かを判定し、前方にあると判定した場合、ステップS83に進める。
図2のステップS7のデータ記録処理で1以上のクリップデータが光ディスク2に記録された後、ステップS8の処理でデータ削除の要求があったと判定されて、このデータ削除処理(ステップS9の処理)が実行される場合、基本的に、記憶部12の記録開始位置の欄104の値(即ち、記録開始位置104A)は、最終のクリップデータの書き込み終了位置(ステップS43の処理で最終のクリップデータが書き込まれた場所の位置)となっている。
このような場合、ステップS81の処理で、最終のクリップデータが削除されると、当然ながら、ステップS82において、記録開始位置より前方の領域が削除されたと判定され、処理はステップS83に進められる。
ステップS83において、制御部16は、記憶部12の書き込み回数の欄103の書き込み回数を1だけインクリメントするとともに、ステップS84において、記録開始位置の欄104の値(即ち、記録開始位置104A)を、光ディスク2の(記録領域の)先頭位置(位置00000)に戻す。
上述したように、本実施の形態では、このようにして、ステップS81の処理で、最終のクリップデータが削除され、後述するその他のステップS82乃至S89が実行された後に、図2のステップS7のデータ記録処理が実行される場合(ステップS10の処理で編集終了の指令が無いと判定され、それ以降、ステップS6の処理でデータ記録の要求有りと判定される場合)、新たに記録される次のクリップデータは、このステップS81の処理で最終のクリップデータが削除された領域に記録されることになる。即ち、実使用においてこのような削除と再記録との繰り返しが多くなればなる程、特定位置(ここでは、最終のクリップデータが記録されていた領域)だけが、光ディスク2の書き込み保証回数(上述したように、例えば、1000回程度)の上限に先に到達してしまうことが考えられる。
従って、最も多く記録された(書き込まれた)位置の記録回数(ここでは、書き込み回数の欄103の値に相当する)をカウントしておき、保証範囲を越えたときに警告を出せるように、本実施の形態においては、ステップS82乃至S84の処理が、図14のデータ削除処理の主要な処理として設けられているのである。
次に、ステップS85において、制御部16は、データが削除された領域(いまの場合、最終のクリップデータが削除された領域であって、空き領域となる領域)と、それ以降の空き領域とを、ネクストキュー102に登録する。なおこのときネクストキュー102に設定されている空き領域情報は、領域先頭位置の順番でソートされる。
ステップS86において、制御部16は、ネクストキュー102内に、隣接する空き領域が登録されているか否かを判定し、そのような空き領域が登録されていると判定した場合、処理をステップS87に進め、それらの領域情報を統合する。
ステップS86で、隣接する空き領域が登録されていないと判定された場合、またはステップS87で領域情報が統合された場合、処理はステップS88に進む。
ステップS88において、制御部16は、指示された回数(指示されたクリップデータの個数分)の削除を行ったか否かを判定する。
例えば、削除の指示がなされたクリップデータが上述した最終のクリップデータ1つである場合、ステップS88において、指示された回数(指示されたクリップデータの個数、即ち、1個分)の削除を行ったと判定し、制御部16は、ステップS89において、ネクストキュー102に登録されている空き領域をカレントキュー101に移す。ネクストキュー102は、その結果空になる。その後、処理は図2のステップS10に進む。
ところで、上述したラストクリップデータ削除機能の他にさらに(その機能の拡張として)、最終のクリップデータよりも前のクリップデータを連続して削除する機能(以下、連続削除機能と称する)も存在する。記録装置1がこの連続削除機能を有しており、それを実行する場合(例えば、2つのクリップデータを削除する場合)には、ステップS88において、指示された回数(指示されたクリップデータの個数分)の削除が行ってないと判定され、ステップS81に戻されて、上述した最終のクリップデータとは別の位置(ここでは、前方の位置)に存在するクリップデータが削除され、それ以降の処理が実行される。
即ち、このステップS81の処理後(別のクリップデータが削除された後)の時点では、上述したように、記録開始位置104Aが光ディスク2の(記録領域の)先頭位置(位置00000)に戻されているので、当然ながら、ステップS82において、記録開始位置より前方の領域が削除されていないと判定され、ステップS83とステップS84の処理は実行されずに(スキップされて)、処理はステップS85に進められ、それ以降の処理が繰り返される。即ち、書き込み回数のカウントアップは行われない。
それ以降、例えば、さらに別の位置(さらに前方の位置)に存在するクリップデータが削除されても(ステップS81の処理が実行されても)、記録開始位置104Aが光ディスク2の(記録領域の)先頭位置(位置00000)で保持されているので、当然ながら、ステップS82において、記録開始位置より前方の領域が削除されていないと判定され、ステップS83とステップS84の処理は実行されずに(スキップされて)、処理はステップS85に進められ、それ以降の処理が繰り返される。即ち、書き込み回数のカウントアップは行われない。
このように、本実施の形態では、最終クリップデータが削除されて、書き込み回数のカウントアップされた後(1だけインクリメントされた後)、別のクリップデータが削除されたときに、書き込み回数のカウントアップを行わない(そのまま保持する)手法を適用しているが、その理由は次の通りである。
即ち、例えば、仮に、クリップデータが削除される毎に、書き込み回数(書き込み回数の欄103の値)をカウントアップする手法が存在したとする。この手法では、上述した最終のクリップデータを削除し、それに伴い、書き込み回数(書き込み回数の欄103の値)をカウントアップした後(1だけインクリメントした後)、別な位置に存在するクリップデータを削除したような場合、さらにカウントアップすることになる。このカウントアップは明らかに過剰なカウントアップである。即ち、このような手法では、(最悪)クリップデータの削除を1000 回行っただけで警告を出すことになってしまう。
そこで、削除されるクリップデータの記録位置(光ディスク2上の領域)を考慮した書き込み回数の適切なカウントアップを行う手法が必要となる。例えば、このような手法として、書き込み回数の管理を、本実施の形態のように、クリップデータが記録された領域(大領域)を単位として行うのではなく、上述したクラスタ(微小領域)を単位として行う手法も考えられる。しかしながら、ソフトウエア管理の複雑さやメディアへの情報保存方法が確立されていないことを考慮すると、このような手法は現実的ではない。
このため、シンプルな書き込み回数のカウントアップの手法が必要となり、本実施の形態では、そのような手法の一例として、上述した処理(手法)が適用されている。即ち、連続削除機能等、最終のクリップデータとは異なる位置(光ディスク2上)に記録されているクリップデータを削除する場合に書き込む回数の無駄なカウントアップを行わない、シンプルな書き込み回数の手法の一例として、上述した処理(手法)が適用されている。
次に、具体例に基づいてデータ記録処理(図2のステップS7(図8))およびデータ削除処理(ステップS9(図14))を再度説明する。
はじめに、図5に示すような空き領域を有する光ディスク2に対して、図15の下方に示されるような大きさ4000のクリップデータ201を記録するものとする。上述したように、本実施の形態においては、クリップデータ201は、ヘッダ201Aと実データ(AVデータ等)201Bとから構成される。
この場合、記憶部12には、図6に示すような、カレントキュー101、ネクストキュー102、書き込み回数の欄103、および記録開始位置の欄104が記憶部12に記憶されているので、図8のステップS41で、YESの判定がなされ、ステップS42に進み、カレントキュー101に登録されている空き領域のうち、アドレス上最も前方に位置する(記録開始位置の欄104にその時点で設定されている値、即ち、記録開始位置104Aに最も近い)空き領域Aが、データが書き込まれる領域に決定される。ステップS43で、図9に示すように、大きさ4000のクリップデータ201が、空き領域Aの先頭(位置01000)から書き込まれる。このとき、図15(図6)に示されるように、書き込み回数の欄103の値は「1」とされているので、図9のステップS62で、ヘッダ201Aに「1」が埋め込まれてから、クリップデータ201が空き領域Aの先頭から書き込まれることになる。そしてステップS44で、図16に示すように、大きさ4000のクリップデータ201が書き込まれた空き領域Aの領域情報が、「領域先頭位置=05000,大きさ=3000」に変更される。なおこのように領域情報が変更された空き領域Aを空き領域A'と称する。
ステップS45で、記録すべき大きさ4000のクリップデータ201は、すべて空き領域Aに書き込まれたので、YESの判定がなされ、ステップS46に進む。ステップS46で、記録開始位置の欄104の値(即ち、記録開始位置104A)が、図16に示すように、値05000に変更された後、処理は、図2のステップS8に進む。
続けて、後述する図18に示されるような大きさ7000のクリップデータ202を記録するものとする。図18に示されるように、このクリップデータ202も、ヘッダ202Aと実データ202Bとから構成される。
この場合、図2のステップS8でNOの判定がなされ、さらに、ステップS10でNOの判定がなされ、それ以降、ステップS6でYESの判定がなされて、ステップS7のデータ記録処理が再度実行される。
即ち、図8のステップS41で、カレントキュー101(図16)には空き領域A'乃至Dが登録されているので、YESの判定がなされ、ステップS42に進み、空き領域A'が、データが書き込まれる領域に決定される。ステップS43で、大きさ7000のクリップデータ202のうちの大きさ3000のデータが、空き領域A'に書き込まれる。このとき、図18(図16)に示されるように、書き込み回数の欄103の値は「1」とされているので、図9のステップS62で、ヘッダ202Aに「1」が埋め込まれてから、クリップデータ202(そのうちの大きさ3000のデータ)が空き領域A'に書き込まれることになる。そしてステップS44で、図17に示すように、大きさ3000のデータが書き込まれた空き領域A'の領域情報が、カレントキュー101から削除される。
ステップS45で、記録すべきデータがまだ残っている(クリップデータ202のうちの、大きさ4000のデータがまだ残っている)と判定され、ステップS41を介して再びステップS42に進む。
ステップS42で、今度は、空き領域B(図15)が、データが書き込まれる領域に決定され、ステップS43で、クリップデータ202のうちの、残りの大きさ4000のデータが、図18に示すように、空き領域Bの先頭(位置10000)から書き込まれる。そして、ステップS44で、図19に示すように、大きさ4000のデータが書き込まれた空き領域Bの領域情報が、「領域先頭位置=14000,大きさ=5000」に変更される。なお、このように領域情報が変更された空き領域Bを空き領域B'と称する。
ステップS45で、記録すべき大きさ7000のクリップデータ202のすべてが記録されたと判定され、ステップS46に進む。ステップS46で、記録開始位置の欄104の値が、図19に示すように、値14000に変更された後(図18に示すように、記録開始位置104Aが位置14000に変更された後)、処理は図2のステップS8に進む。
続けて、後述する図20に示されるような大きさ4000のクリップデータ203を記録するものとする。図20に示されるように、このクリップデータ203も、ヘッダ203Aと実データ203Bとから構成される。
この場合、図2のステップS8でNOの判定がなされ、さらに、ステップS10でNOの判定がなされ、それ以降、ステップS6でYESの判定がなされて、ステップS7のデータ記録処理が再度実行される。
即ち、図8のステップS41で、カレントキュー101(図19)には空き領域B'乃至Dが登録されているので、YESの判定がなされ、ステップS42に進み、空き領域B'が、データが書き込まれる領域に決定される。ステップS43で、図20に示すように、大きさ4000のクリップデータ203が、空き領域B‘の先頭(位置14000)から書き込まれる。このとき、図20(図19)に示されるように、書き込み回数の欄103の値は「1」とされているので、図9のステップS62で、ヘッダ203Aに「1」が埋め込まれてから、クリップデータ203が空き領域B’の先頭から書き込まれることになる。そしてステップS44で、図21に示すように、大きさ4000のクリップデータ203が書き込まれた空き領域B‘の領域情報が、「領域先頭位置=18000,大きさ=1000」に変更される。なおこのように領域情報が変更された空き領域B’を空き領域B”と称する。
ステップS45で、記録すべき大きさ4000のクリップデータ203は、すべて空き領域B‘に書き込まれたので、YESの判定がなされ、ステップS46に進む。ステップS46で、記録開始位置の欄104の値が、図21に示すように、値18000に変更された後(図20に示すように、記録開始位置104Aが位置18000に変更された後)、処理は図2のステップS8に進む。
次に、図20に示したように、クリップデータ201乃至203が記録されている光ディスク2から、上述した連続削除機能を利用して、最終のクリップデータ203と、その前方に位置するクリップデータ202とを連続して削除するものとする。なお、このとき記憶部12には、図21に示したような、カレントキュー101、ネクストキュー102、書き込み回数の欄103、および記録開始位置の欄104が記憶されている。
この場合、図14のステップS81で、図22に示すように、位置18000から大きさ4000のクリップデータ203が削除される。ステップS82で、データが削除された領域(空き領域E)は、記録開始位置の欄104の値(記録開始位置18000)の前方にある(特に図示せず)ので、YESの判定がなされ、ステップS83に進む。
図22と図23に示すように、ステップS83の処理で、書き込み回数の欄103の値が1だけインクリメントされて「2」となり、ステップS84の処理で、記録開始位置の欄104の値(図22の記録開始位置104A)が光ディスク2の(記録領域の)先頭位置(位置00000)に戻される。
このようにして、最終のクリップデータ203が削除されると(連続消去機能における最初に削除されるべきクリップデータ203が削除されると)、書き込み回数はカウントアップされる。さらに、別の位置のクリップデータ(いまの場合、クリップデータ202)がそれ以降の時点で削除される際に、書き込み回数の無駄なカウントアップが行われないように、記録開始位置104Aが光ディスク2の(記録領域の)先頭位置に戻されるのである。
また、ステップS85で、図23に示すように、最終のクリップデータ203が削除された領域である空き領域Eと、それ以降の領域である、空き領域B”,C,Dがネクストキュー102に登録される。
図22に示されるように、空き領域Eと空き領域B”とは隣接しているので、ステップS86で、YESの判定がなされ、ステップS87において、図24に示されるように、空き領域Eと空き領域B”とは統合されて空き領域Fとなる。それに応じて、図25に示されるように、ネクストキュー102の登録内容も更新される。即ち、空き領域Eと空き領域B”との登録が削除されて、空き領域Fが新たに登録される(空き領域Fの領域情報「領域先頭位置=14000,大きさ=5000」が、空き領域Cの領域情報の上の欄に設定される)。
その後、ステップS88でNOの判定がなされて、処理はステップS81に戻され、今度は、最終のクリップデータ203の一つ前のクリップデータ202に対するデータ削除処理が実行される。
即ち、ステップS81で、図26に示すように、位置14000から大きさ7000のクリップデータ202が削除される。ステップS82で、データが削除された領域(空き領域Gと空き領域H)は、記録開始位置の欄104の値(記録開始位置104Aの位置00000)の後方にある(前方にない)ので、NOの判定がなされ、ステップS85に進む。
即ち、図26と図27に示すように、今度は、ステップS83とS84の処理が実行されずに(スキップされて)、書き込み回数の欄103の値は「2」のまま保持されるとともに、記録開始位置の欄104の値(図26の記録開始位置104A)も光ディスク2の(記録領域の)先頭位置(位置00000)のまま保持される。
このようにして、連続消去機能における最初に削除されるべきクリップデータ203とは異なる位置に存在するクリップデータ(いまの場合、クリップデータ202)が削除されても、書き込み回数の無駄なカウントアップが行われない(書き込み回数は保持される)。さらに、別の位置のクリップデータがそれ以降の時点で削除される際(いまの場合、さらなる削除は指定されていないが、例えば、クリップデータ201をさらに削除されるような際)に、書き込み回数の無駄なカウントアップが行われないように、記録開始位置104Aが光ディスク2の(記録領域の)先頭位置のまま保持されるのである。
ステップS85で、図27に示すように、クリップデータ202が削除された領域である空き領域H,Gと、それ以降の領域である、空き領域F,C,Dがネクストキュー102に登録される。即ち、ネクストキュー102において、空き領域F,C,Dの領域情報の設定は保持され、空き領域Fの上の2つの欄のそれぞれに、空き領域Hの領域情報「領域先頭位置=5000,大きさ=3000」と、空き領域Gの領域情報「領域先頭位置=10000,大きさ=4000」のそれぞれが設定される。
図26に示されるように、空き領域Gと空き領域Fとは隣接しているので、ステップS86で、YESの判定がなされ、ステップS87において、図28に示されるように、空き領域Gと空き領域Fとは統合されて空き領域Iとなる。それに応じて、図29に示されるように、ネクストキュー102の登録内容も更新される。即ち、空き領域Gと空き領域Fとの登録が削除されて、空き領域Iが新たに登録される(空き領域Iの領域情報「領域先頭位置=10000,大きさ=9000」が、空き領域Hの領域情報と空き領域Cの領域情報との間の欄に設定される)。
いまの場合、上述したように、連続削除機能により削除が指定されたクリップデータは、クリップデータ202とクリップデータ203とされ、これらの全てが削除されたので、ステップS88で、YESの判定がなされ、ステップS89で、図30に示されるように、ネクストキュー102に登録されている空き領域H,I,C,Dがカレントキュー101に移され、ネクストキュー102は、その結果空になる。その後、処理は図2のステップS10に進む。
続けて、図31に示されるような大きさ7000のクリップデータ210(上述したクリップデータ202そのものでもよいし、それとは異なるものでもよい)を記録するものとする。図31に示されるように、このクリップデータ210も、ヘッダ210Aと実データ210Bとから構成される。
この場合、図2のステップS10でNOの判定がなされ、それ以降、ステップS6でYESの判定がなされて、ステップS7のデータ記録処理が再度実行される。
即ち、図8のステップS41で、カレントキュー101(図30)には空き領域H,I,C,Dが登録されているので、YESの判定がなされ、ステップS42に進み、空き領域Hが、データが書き込まれる領域に決定される。ステップS43で、大きさ7000のクリップデータ210のうちの大きさ3000のデータが、空き領域Hに書き込まれる。このとき、図31(図30)に示されるように、書き込み回数の欄103の値は「2」にカウントアップされているので、図9のステップS62で、ヘッダ210Aに「2」が埋め込まれてから、クリップデータ210(そのうちの大きさ3000のデータ)が空き領域Hに書き込まれることになる。そしてステップS44で、図示はしないが、大きさ3000のデータが書き込まれた空き領域Hの領域情報が、カレントキュー101から削除される。
ところで、図28と図15とを比較すれば容易にわかるように、位置05000乃至位置8000の空き領域H(図28)と、空き領域A‘(図15)とは同一領域であり、この同一領域には、現時点では、上述したように、クリップデータ202が記録されて削除された後、クリップデータ210が記録されたことになる。即ち、この位置05000乃至位置8000の領域においては、2回の書き込みが行われたことになる。
一方、図31に示されるように、位置1000乃至位置5000の領域、即ち、クリップデータ201が記録されている領域には、現時点では、そのクリップデータ201のみが記録されただけである。即ち、位置1000乃至位置5000の領域においては、1回の書き込みが行われたことになる。
このように、光ディスク2の領域によって書き込み回数の差異が生じることになるが、記録部1は、上述した一連の処理を実行することで、そのうちの最大の書き込み回数(いまの場合、「2」回)を、記憶部12の書き込み回数の欄103の値として適切に保持させる(反映させる)ことができる。
さらに、図2のステップS10で編集終了の指令があったと判定された場合に、記録装置1が、この書き込み回数の欄103の値を、空き領域書換管理データに含めて光ディスク2の所定の領域(任意の領域で構わないが、誤って消去されないように、例えば、記録領域以外の特定領域であると好適である)に記録させることで、光ディスク2の書き込み回数(その領域のうちの最大の書き込み回数)の管理を確実に行うことが可能になる。即ち、最も多く記録された位置の記録回数が保証範囲を越えたときに確実に警告を出すことが可能になる。
次に、具体例に基づいてフォーマット処理(図2のステップS5(図7))を再度説明する。
例えば、いま、図32に示されるような、クリップデータ301乃至303のそれぞれが、光ディスク2の(記録領域の)先頭位置からその順番で連続して記録されているとする。
なお、クリップデータ301は、ヘッダ301Aと実データ301Bとから構成されている。また、ヘッダ301Aに記述されている値「1」は、上述した書き込み回数を示している。即ち、光ディスク2の記録領域のうちの、クリップデータ301が記録されている領域に対する書き込み回数は最大で「1」回であることを示している。
同様に、クリップデータ302は、ヘッダ302Aと実データ302Bとから構成されている。また、ヘッダ302Aに記述されている値「1」は、上述した書き込み回数を示している。即ち、光ディスク2の記録領域のうちの、クリップデータ302が記録されている領域に対する書き込み回数は最大で「1」回であることを示している。
同様に、クリップデータ303は、ヘッダ303Aと実データ303Bとから構成されている。また、ヘッダ303Aに記述されている値「1」は、上述した書き込み回数を示している。即ち、光ディスク2の記録領域のうちの、クリップデータ303が記録されている領域に対する書き込み回数は最大で「1」回であることを示している。
また、図32に示されるように、記憶部2の書き込み回数の欄103にも「1」が設定され、書き込み開始位置104A(書き込み開始位置の欄104の値)は、クリップデータ303の終端の位置であるていることから、結局、最後のクリップデータ203が光ディスク2に記録されてから(対応する領域に初めて書き込まれてから)、上述したクリップデータの削除等はまだ行われていない状態で編集処理が一度終了され(例えば、記録装置1から取り外され)、再度、編集処理が実行されて、ステップS1乃至S3までの処理が実行されたことを示している。
この場合、図2のステップS4で、YESの判定がなされると、図2のステップS5のフォーマット処理が実行される。即ち、図7のステップS31で、図33に示されるように、光ディスク2に記録されているクリップデータ301乃至303の全てが削除される。
ただし、上述したように、本実施の形態では、光ディスク2がフォーマットされても空き領域書換管理データは削除されずに保持される。
次に、図33に示されるように、ステップS32で、書き込み回数の欄103の書き込み回数が1だけインクリメントされ、その結果、「2」が設定されるとともに、ステップS34で、記録開始位置104A(記録開始位置の欄104の値)が、光ディスク2の(記録領域の)先頭位置に戻される。
次に、図示はしないが、ステップS34で、記憶部12のカレントキュー101に、その時点で(フォーマット後の時点で)光ディスク2に存在するすべての空き領域の領域情報(この例の場合、空き領域の領域開始位置および大きさ)が、空き領域のアドレス上の位置の順に登録されるとともに、ステップS35で、記録部12のネクストキュー102が空となる
その後、処理は、図2のステップS6に進む。
続けて、クリップデータ301と同一サイズのクリップデータ304(クリップデータ301自身でもよいし、それとは異なるデータでもよい)の記録の要求があったとする。
この場合、詳細な処理の説明は繰り返しになるので省略するが、ステップS6でYESの判定がなされて、ステップS7のデータ記録処理で、図34に示されるように、(書き込み回数の欄103の値は「2」にカウントアップされているので)ヘッダ304Aに「2」が埋め込まれてから、クリップデータ304が、クリップデータ301が記録されていた領域に記録される。そして、記録開始位置104A(記録開始位置の欄104の値)が、クリップデータ304が記録された領域の終端に移される。
このように、フォーマットが施される場合も書き込み回数の欄103の値(書き込み回数)がカウントアップされるので、次の記録処理における、光ディスク2の書き込み回数(その領域のうちの最大の書き込み回数)の管理を確実に行うことが可能になる。
即ち、従来のように、フォーマット時に書き込み回数の更新を行わないと、次の記録処理でクリップデータ304が記録された領域は、n(nは、2以上の整数値)回目の記録であるにも関わらず、n−1回目の記録であると誤った判断が行われてしまい、最も多く記録された位置の記録回数を正確に保持できなくなる。その結果、最も多く記録された位置の記録回数が実際には保証範囲を越えたときでも、書き込み回数の欄103の値(書き込み回数)は保証範囲内の値となっており、警告を出すことが不可能になる。
これに対して、本実施の形態では、上述したように、フォーマットが施される場合も書き込み回数の欄103の値(書き込み回数)が確実にカウントアップされるので、最も多く記録された位置の記録回数を正確に保持することが可能になる。その結果、最も多く記録された位置の記録回数が実際には保証範囲を越えると、書き込み回数の欄103の値(書き込み回数)も保証範囲を超えた値となっており、確実に警告を出すことが可能になる。
ところで、本実施の形態のデータ記録装置1は、例えば、図2のステップS7の処理で光ディスク2に記録したクリップデータを、少なくとも編集処理が終了するまで、記憶部12にバックアップ用として保持しておく(記憶しておく)ことができる。或いは、データ記録装置1とは異なる記録装置に、バックアップ用として、クリップデータを保持していることもある。
これにより、例えば、データ記録処理中に、予期せぬ電源断等のトラブルが起こって、その時点で光ディスク2に記録中のクリップデータが失われても(途中までしか記録できずに削除とみなされても)、次の編集処理において(例えば、次に記録装置1の電源が入ったとき)、記憶部12や別の記録装置に保持されているバックアップ用のクリップデータを利用して、光ディスク2上の同位置に再度記憶させる(復元させる)ことができる。
なお、このような手法(技術)は、サルベージと称され、従来の記録装置にも適用されている。しかしながら、従来の記録装置では、内部のメモリ(本実施の形態の記憶部12に相当)や別の記録装置に保持されているバックアップ用のクリップデータの中から、復元すべきクリップデータの存在を識別することが困難である、という課題があった。
具体的には、例えば、従来の記録装置が光ディスクにクリップデータを記録している最中に故障してしまったときなど、ユーザは、その光ディスクを無理やり従来の記録装置から取り外して別の装置に装着させ、別の装置を利用してクリップデータの復元を試みようとする場合がある。このような場合、別の装置は、記録に使用していた従来の記録装置の内部のメモリ(不揮発メモリ)の内容を使用することはできないので、取り外した光ディスクのみから復元すべきクリップデータの存在を確認する処理を実行する必要がある。しかしながら、従来のサルベージでは、そのような処理を実行することは実質上不可能に近かった。
そこで、本実施の形態では、このような課題を解決する目的も含めて、上述したように、クリップデータのヘッダ部分(ヘッダ部分でなくても、クリップデータと関連付けられる光ディスク2上の領域であればよい)には、そのクリップデータが書き込まれた時点の書き込み回数(記憶部12の書き込み回数の欄103のその時点に設定されている値)が埋め込まれている(含まれている)のである。
即ち、図1の制御部16は、図2のステップS1の起動処理の後、光ディスク2に正常に記録されているクリップデータのうちの最終のクリップデータの次の領域に記録された後、削除された(或いは、その領域に一部が記録されている最中にデータ記録処理が中断され、削除とみなされた)クリップデータのヘッダ部分に含まれていた書き込み回数を認識する。なお、この書き込み回数は、光ディスク2のクリップデータが削除された(削除とみなされた)領域自身に残されていることもあるし、記録装置1の記憶部12等の別の場所に保持されていることもある。
そして、制御部16は、そのようにして認識した、削除されたクリップデータのヘッダ部分に含まれていた書き込み回数と、記憶部12の書き込み回数の欄103の現時点の値とを比較し、その比較の結果に基づいて、ステップS2において、復元すべきデータが有るか否かを判定する。
具体例を挙げて、ステップS2の処理を再度説明する。
例えば、いま、上述した図32に示される、クリップデータ301乃至303が存在し、図32と同様に、クリップデータ301乃至303のそれぞれを、光ディスク2の(記録領域の)先頭位置からその順番で連続して記録させようとしていたとする。
このとき、図35に示されるように、記録装置1が、クリップデータ301とクリップデータ302を光ディスク2に正常に記録させ、クリップデータ303を光ディスク2に記録させている最中に予期せぬ電源断により異常終了してしまい、その後、電源を再度投入して、再度編集処理を起動して、図2のステップS1の起動処理を終了させたとする。
この場合、図35に示されるように、記録装置1の記憶部12の書き込み回数の欄103の値には「1」が設定されていることになる(直前のステップS29(図3)で、書き込み回数の欄103に、光ディスク2の空き領域書換管理データに示される値「1」が既に設定されているため)。
一方、図35に示されるように、異常終了する前の、図2のステップS7のデータ記録処理で、クリップデータ303のヘッダ303Aには、書き込み回数として「1」が含まれて、クリップデータ303が光ディスク2に記録されていた。
なお、以下、記憶部12には、書き込み中の(或いは、最後に書き込みされた)クリップデータ(いまの場合、クリップデータ303)を特定する情報と、そのヘッダに含まれるべき書き込み回数(いまの場合、「1」)とが保持される(記憶される)として説明する。
そこで、制御部16は、記憶部12のこのような情報を参照して、光ディスク2に正常に記録されている(最終の)クリップデータ302の次に記録されていたクリップデータはクリップデータ303であることを認識し、即ち、クリップデータ303を、復元すべきデータの候補として認識し、そのヘッダ303Aに含まれていた書き込み回数「1」を記憶部12から取得する。そして、制御部16は、取得した書き込み回数「1」(光ディスク2において、復元すべきデータの候補のヘッダ303Aに記載されていた値)と、記憶部12の書き込み回数の欄103の現時点の値とを比較する。いまの場合、記憶部12の書き込み回数の欄103の値も「1」であるので、比較の結果が一致し、このような場合、制御部16は、ステップS2において、復元すべきデータがあると判定し、ステップS3において、データを復元する。詳細には、制御部16は、ステップS3で、復元すべきデータの候補、即ち、バックアップ用のクリップデータ303を記憶部12から読み出し、光ディスク2の対応する領域(図35の例では、クリップデータ302の後に続く領域)に再度記録する。
なお、このとき、クリップデータ303の少なくとも一部(特に前半部分)が、光ディスク2の同一領域に2回書き込まれる可能性がある。そこで、このような場合、図示はしないが、制御部16は、記憶部12の書き込み回数の欄103の値を1だけインクリメントするとよい。即ち、いまの場合、制御部16は、記憶部12の書き込み回数の欄103の値を「2」に設定し、クリップデータ303のヘッダ部分303Aにも書き込み回数として「2」を埋め込むとよい。
これに対して、例えば、いま、上述した図32に示される、クリップデータ301乃至303が存在し、図32と同様に、記録装置1が、図2のステップS7のデータ記録処理で、クリップデータ301乃至303のそれぞれを、光ディスク2の(記録領域の)先頭位置からその順番で連続して記録させ(正常に記録させ)、その後、ステップS9の処理で、最終のクリップデータ303(正常に記録されたクリップデータ303)を削除している最中に、予期せぬ電源断により異常終了してしまい、その後、電源を再度投入して、図2のステップS1の起動処理を終了させたとする。
この場合、図35に示されるように、記録装置1の記憶部12の書き込み回数の欄103の値には「2」が設定されることになる(直前のステップS83(図3)で、書き込み回数の欄103の値がカウントアップされて「2」に更新されているため)。
一方、図35に示されるように、異常終了する前の、図2のステップS9のデータ削除処理で削除された(或いは、その途中の)、クリップデータ303のヘッダ303Aには、書き込み回数として「1」が含まれており、この値は「1」のまま特に更新されていない。
異常終了した時点で、最後に記憶されたクリップデータとは、クリップデータ303であるので、上述したように、記憶部12には、クリップデータ303を特定する情報と、そのヘッダに含まれるべき書き込み回数(いまの場合、「1」)とが保持されている(記憶されている)。
そこで、制御部16は、記憶部12のこのような情報を参照して、光ディスク2に現時点で記録されている(最終の)クリップデータ302の次に記録されていたクリップデータはクリップデータ303であることを認識し、即ち、クリップデータ303を、復元すべきデータの候補として認識し、そのヘッダ303Aに含まれていた書き込み回数「1」を記憶部12から取得する。
そして、制御部16は、取得した書き込み回数「1」(光ディスク2において、復元すべきデータの候補のヘッダ303Aに記載されていた値)と、記憶部12の書き込み回数の欄103の現時点の値とを比較する。いまの場合、記憶部12の書き込み回数の欄103の値は「2」であるので、比較の結果が異なることになり、このような場合、制御部16は、ステップS2において、復元すべきデータは存在しない(はない)と判定し、ステップS3の処理を実行せずに、即ち、復元すべきデータの候補(ここでは、バックアップ用のクリップデータ303)を復元せずに、処理をステップS4に進める。
このように、制御部16は、光ディスク2に復元するクリップデータの候補を認識し、その候補のヘッダに記載されていた値(書き込み回数を示す値)と、記憶部12の書き込み回数の欄103の現時点の値とを比較し、その比較結果に基づいて、ステップS2において、復元すべきデータがあるか否かを判定する。即ち、同一の値であるという比較の結果の場合、ステップS2において、復元すべきデータがあると判定されて、ステップS3において、データが復元された後、処理はステップS4に進められる。これに対して、異なる値であるという比較の結果の場合、ステップS2において、復元すべきデータはないと判定されて、ステップS3の処理が実行されずに(データが復元されずに)、処理はステップS4に進められる。
なお、上述したように、最終のクリップデータが削除される場合、直前のステップS83(図3)で、書き込み回数の欄103の値が更新されるとともに、ステップS84で、書き込み開始位置の欄104の値(書き込み開始位置104A)も光ディスク2の(記録領域の)先頭位置に戻される。従って、図2のステップS9のデータ削除処理中に異常終了し、その後、再度編集処理が開始されたような場合、ステップS2の時点では、書き込み開始位置の欄104の値(書き込み開始位置104A)は光ディスク2の(記録領域の)先頭位置となっている。
これに対して、図2のステップS7のデータ記録処理中に異常終了し、その後、再度編集処理が開始されたような場合、ステップS2の時点では、書き込み開始位置の欄104の値(書き込み開始位置104A)は、書き込みに失敗したクリップデータ(即ち、復元すべきクリップデータ)の直前のクリップデータの終端の位置となっている。
そこで、制御部12は、ステップS2において、復元すべきデータがあるか否かを判定する場合、書き込み開始位置の欄104の値(書き込み開始位置104A)を使用してもよい(単独で使用してもよいし、書き込み回数と併用してもよい)。
また、上述したように、ステップS2とS3の処理は、記録装置1とは異なる別の装置(図示せず)で行ってもよい。
ただし、この場合、別の装置は、ステップS2の処理の前に、記録装置1のの記憶部12の書き込み回数の欄103の値、並びに、復元すべきクリップデータの候補を特定する情報、および、そのクリップデータのヘッダ部分に含まれている書き込み回数、といった各種情報を取得する必要がある。
この取得手法は特に限定されず、例えば、別の装置と記録装置1とが相互に通信を行い(通信部やその通信に介在するネットワークは図示せず)、図14のステップS83、図18のステップS47、および、図7のステップS32のそれぞれの処理の終了時点で、即ち、書き込み回数の欄103の値が更新された時点(1だけインクリメントされた時点で)、その更新された値や、ステップS7のデータ記録処理の処理状態を示す情報を、記録装置1から別の装置に転送する、という手法を適用してもよい。
或いは、例えば、図14のステップS83、図18のステップS47、および、図7のステップS32のそれぞれの処理の終了時点で、即ち、書き込み回数の欄103の値が更新された時点(1だけインクリメントされた時点で)、その更新された値を、光ディスク2の空き領域書換管理データに記録し(空き領域書換管理データを更新し)、また、新たなクリップデータの記録を開始する時点で、そのクリップデータの情報を光ディスク2の空き領域書換管理データに記録する(空き領域書換管理データを更新する)、という手法を適用してもよい。
上述した一連の処理は、ハードウエアにより実現させることもできるが、ソフトウエアにより実現させることもできる。一連の処理をソフトウエアにより実現する場合には、そのソフトウエアを構成するプログラムがコンピュータにインストールされ、そのプログラムがコンピュータで実行されることより、上述した記録装置1が機能的に実現される。
図42は、上述のような記録装置1として機能するコンピュータ501の一実施の形態の構成を示すブロック図である。CPU(Central Processing Unit)511にはバス515を介して入出力インタフェース516が接続されており、CPU511は、入出力インタフェース516を介して、ユーザから、キーボード、マウスなどよりなる入力部518から指令が入力されると、例えば、ROM(Read Only Memory)512、ハードディスク514、またはドライブ520に装着される磁気ディスク531、光ディスク532、光磁気ディスク533、若しくは半導体メモリ534などの記録媒体に格納されているプログラムを、RAM(Random Access Memory)513にロードして実行する。これにより、上述した各種の処理が行われる。さらに、CPU511は、その処理結果を、例えば、入出力インタフェース516を介して、LCD(Liquid Crystal Display)などよりなる出力部517に必要に応じて出力する。なお、プログラムは、ハードディスク514やROM512に予め記憶しておき、コンピュータ501と一体的にユーザに提供したり、磁気ディスク531、光ディスク532、光磁気ディスク533,半導体メモリ534等のパッケージメディアとして提供したり、衛星、ネットワーク等から通信部519を介してハードディスク514に提供することができる。
なお、本明細書において、記録媒体により提供されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
1 記録装置, 2 光ディスク, 11 入力データ処理部, 12 記憶部, 13 操作部, 14 表示部, 15 ドライブ,16 制御部, 21 エラー判定部, 101 カレントキュー, 102 ネクストキュー, 103 書き込み回数の欄, 104 記録開始位置の欄, 104A 記録開始位置