(57)【要約】【課題】  記録装置が通信装置から受信したデータの記録を途中で失敗した場合でも、記録媒体を修復可能とする。【解決手段】  記録装置が接続されると、通信装置は記録装置が有する記録媒体が正常に書き込み処理が終了された記録媒体であるかどうか調べる。書き込みが正常終了していない記録媒体の場合、過去に接続された記録装置から取得したデータの中に、対応するデータが存在するかどうか調べる。もし対応するデータが存在する場合には、書き込みが中断した場所からデータを書き込み、記録媒体を修復する。【選択図】  図７
2008140519.tif 000002
【特許請求の範囲】
【請求項１】
外部記録装置側の記録媒体が、書き込み処理が正常に終了された記録媒体であるか否かを判別する判別手段と、
前記判別手段により、書き込み処理が正常に終了された記録媒体でないと判別された場合、前記記録媒体に書き込むべきデータが記憶装置に記憶されているか否かを検出する検出手段と、
前記記録媒体に書き込むべきデータが前記記憶装置に記憶されていた場合、当該データを前記記録媒体に対して書き込む書き込み手段とを有することを特徴とする制御装置。
【請求項２】
前記記憶装置は、前記制御装置に以前接続された外部記録装置から受信した、当該外部記録装置側の記録媒体に記録されたデータ及び当該記録媒体の識別情報を保持することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記記憶装置は、前記以前接続された外部記録装置から受信した、当該外部記録装置側の記録媒体に記録されたデータ及び当該記録媒体の識別情報を、ディスクイメージとして保持することを特徴とする請求項２に記載の制御装置。
【請求項４】
前記検出手段は、前記外部記録装置側の記録媒体の識別情報と、前記記憶装置に記憶された識別情報とに基づいて、前記書き込むべきデータが記憶装置に記憶されているか否かを検出することを特徴とする請求項２又は請求項３に記載の制御装置。
【請求項５】
前記判別手段により、書き込み処理が正常に終了された記録媒体でないと判別された記録媒体について、書き込みを再開すべきアドレスを取得する取得手段をさらに有し、
前記書き込み手段は、前記取得手段が取得したアドレスから前記書き込みを開始することを特徴とする請求項１から４のいずれかに記載の制御装置。
【請求項６】
前記取得手段は、前記記録媒体において次に書き込み可能な論理アドレスを、前記書き込みを再開すべきアドレスとして取得することを特徴とする請求項５に記載の制御装置。
【請求項７】
前記取得手段は、前記外部記録装置が保持する書き込み失敗アドレスから、前記書き込みを再開すべきアドレスを取得することを特徴とする請求項５に記載の制御装置。
【請求項８】
前記取得手段は、前記記録媒体のファイルシステム情報と、実際に書き込まれているデータとの整合性に基づいて、前記書き込みを再開すべきアドレスを取得することを特徴とする請求項５に記載の制御装置。
【請求項９】
請求項１から８のいずれかに記載の制御装置からの書き込み命令に従い、前記制御装置から受信したデータを記録媒体に書き込む記録装置であって、
前記データを前記記録媒体に書き込み中に前記制御装置との接続が解除された場合、前記記録媒体への書き込み処理を正常に終了可能であるか否かを判別する判別手段と、
前記書き込み処理を正常に終了可能であると判別された場合に、前記書き込み処理を正常に終了させる終了手段と、
前記書き込み処理を正常に終了可能でないと判別された場合に、書き込みを失敗したアドレスを記録する記録手段とを有することを特徴とする記録装置。
【請求項１０】
前記判別手段は、現在書き込み中のアドレスから最終論理アドレスまでの間に、前記制御装置から受信する必要のあるデータを書き込む必要があるか否かに基づいて、前記記録媒体への書き込み処理を正常に終了可能であるか否かを判別することを特徴とする請求項９に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置及び当該制御装置と接続して用いる記録装置に関する。特に、記録装置における記録が中断した場合の修復を容易にするための制御装置及び記録装置に関する。
【背景技術】
【０００２】
近年のデジタルビデオカメラには、磁気テープ以外の記録媒体を使用するものが知られている。最近では、ＤＶＤなどのディスク状記録媒体を使用するデジタルビデオカメラが知られている（例えば、特許文献１、２参照）。
【０００３】
【特許文献１】特開２００３−１０１９２６号公報
【特許文献２】特開２００４−０９５１６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１、２に記載された従来技術では、デジタルビデオカメラがＰＣ（パーソナルコンピュータ）から転送されたデータを記録媒体（光ディスク等）に書き込んでいる最中に、ＰＣとの接続が切断された場合の問題点には着目していない。例えば、デジタルビデオカメラとＰＣとを接続するケーブル（例えばＵＳＢ（Universal Serial Bus）ケーブル）が、外れた場合などの問題点である。この場合、デジタルビデオカメラが記録媒体に書き込んでいるデータが突然途絶えてしまうため、デジタルビデオカメラは当該データの記録媒体への記録を正常に終了することができない可能性がある。さらに、デジタルビデオカメラ側の記録媒体が一回だけ書き込み可能な記録媒体である場合は、当該記録媒体の修復が不可能となる可能性がある。
【０００５】
そこで、本発明は、外部記録装置（デジタルビデオカメラ等）が制御装置（パーソナルコンピュータ等）から受信したデータの記録媒体への記録が途中で失敗した場合でも、当該記録媒体の修復を可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る制御装置は、例えば、外部記録装置側の記録媒体が、書き込み処理が正常に終了された記録媒体であるか否かを判別する判別手段と、判別手段により、書き込み処理が正常に終了された記録媒体でないと判別された場合、記録媒体に書き込むべきデータが記憶装置に記憶されているか否かを検出する検出手段と、記録媒体に書き込むべきデータが記憶装置に記憶されていた場合、当該データを記録媒体に対して書き込む書き込み手段とを有することを特徴とする。
【０００７】
本発明に係る記録装置は、例えば、上記の制御装置からの書き込み命令に従い、制御装置から受信したデータを記録媒体に書き込む記録装置であって、データを記録媒体に書き込み中に制御装置との接続が解除された場合、記録媒体への書き込み処理を正常に終了可能であるか否かを判別する判別手段と、書き込み処理を正常に終了可能であると判別された場合に、書き込み処理を正常に終了させる終了手段と、書き込み処理を正常に終了可能でないと判別された場合に、書き込みを失敗したアドレスを記録する記録手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、外部記録装置が制御装置から受信したデータの記録を途中で失敗した場合でも、記録媒体を修復することができる。
【発明を実施するための最良の形態】
【０００９】
以下、添付図面に従って、本発明の好適な実施形態を詳細に説明する。
図５は、本発明の一実施形態に係る記録装置制御システムの構成の一例を示す図である。
本実施形態の記録装置制御システムは、制御装置の一例であるＰＣ（パーソナルコンピュータ）１５０４と、外部記録装置の一例であるＤＶＣ（デジタルビデオカメラ）１５０１とを有する。ＰＣ１５０４とＤＶＣ１５０１とは、ネットワークの一例であるＵＳＢ（Universal Serial Bus）１５０３を介して接続されている。
【００１０】
ＤＶＣ１５０１は、ＤＶＤ−ＲＡＭ（８ｃｍ）等のディスク状記録媒体の一例である光ディスク１５０２に撮影した画像を記録する。光ディスク１５０２は、取り外し可能な記録媒体である。一方、ＰＣ１５０４は、記憶装置の一例であるハードディスクドライブを有している。本実施形態において、ＰＣ１５０４は、ＤＶＣ１５０１とマスストレージプロトコルに従って通信する。本実施形態では、ＵＳＢマスストレージクラスに準拠したプロトコルを「マスストレージプロトコル」と呼ぶ。
【００１１】
図４は、ＤＶＣ１５０１が有する構成要素の一例を示す図である。なお、図４では、デジタルビデオカメラが当然備えている構成であっても、ＰＣ１５０４とのデータ伝送に使われない構成、例えばビデオ撮影及び撮影画像の処理に関する構成については省略する。
【００１２】
主制御部１４０１はバス１４００を介して各構成要素と接続され、主制御部１４０１が制御プログラムを実行して各構成要素の制御を行うことにより、ＤＶＣ１５０１の機能を実現する。制御プログラムは例えば主制御部１４０１内部もしくは他の場所に設けられる不揮発性記憶媒体に格納され、実行時に例えばＲＡＭである内部メモリ１４０３に読み出される。
【００１３】
通信制御部１４０２は、ＰＣ１５０４と、ＵＳＢデバイスコネクタ１４１０を介して接続された場合に、先に説明したマスストレージプロトコルに準拠した通信制御を行う。
【００１４】
入力操作制御部１４０４は、ＤＶＣ１５０１の操作部１４０８に対してユーザが行った操作を判別し、主制御部１４０１で実行中の制御プログラムに対して通知する。操作部１４０８は、キー、ボタン、ダイヤル等を含み、ユーザは操作部１４０８を介してＤＶＣ１５０１に各種設定や指示を行うことができる。
【００１５】
表示制御部１４０６はＤＶＣ１５０１の表示部１４１２に対して表示する映像を生成し、また、表示を制御する。
【００１６】
記録再生制御部１４０５は、光ディスク１５０２、メモリカード１４１３に対するデータの記録、再生を制御する。メモリカード１４１３は、メモリカード以外の取り外し可能な記録媒体に置き換えてもよい。また、記録再生制御部１４０５は、これら記録媒体から読み出したデータを内部メモリ１４０３に転送する処理を制御する。内部メモリ１４０３に転送されたデータは、通信制御部１４０２を介して外部に送信されるか、表示制御部１４０６を介して表示部１４１２へ転送される。なお、メモリカード１４１３はオプションである。
【００１７】
ドライブ制御部１４１１は、光ディスク１５０２の取り出しやロード・アンロードなどの処理を制御するモジュールであり、その他フォーマットやファイナライズ処理などを行う。
【００１８】
図６は、ＰＣ１５０４が有する構成要素の一例を示すブロック図である。
主制御部（ＣＰＵで構成される）１６０１は、例えばハードディスクドライブ（ＨＤＤ）１６０７に格納されるＯＳやデバイスドライバ、アプリケーションプログラム等を実行し、装置全体の制御を司る。入力操作制御部１６０４は、典型的にはマウス等のポインティングデバイスやキーボードで構成される入力装置１６０５からの入力を受け付け、入力内容を主制御部１６０１へ通知する。通信制御部１６０２は、ＵＳＢホストコネクタ１６０６を有し、マスストレージプロトコルによる通信を含む、ＵＳＢインタフェースを介した各種通信を制御する。内部メモリ１６０３は、例えばＲＡＭであり、ＯＳや各種アプリケーションを読み込んだり、バッファ領域として使用される。表示制御部１６０８は、ＣＲＴやＬＣＤ等で構成される表示部１６０９へのビデオ信号を出力したり、主制御部１６０１からの要求に対して内部のビデオメモリへの描画を行う。ＨＤＤ１６０７は、ＯＳ及び本実施形態における主要な処理を行うアプリケーションプログラムを格納する。
【００１９】
＜ＰＣ１５０４の動作の説明＞
本実施形態において、ＰＣ１５０４は、主制御部１６０１が記録装置制御アプリケーションプログラムを実行することにより、本実施形態におけるデータ伝送機能を実現する。本実施形態において、記録装置制御アプリケーションプログラムは、受け持つ動作により以下のモジュールＡ及びモジュールＢとに分割されているものとする。また、記録装置制御アプリケーションプログラムは、ＨＤＤ１６０７に記憶されている。
モジュールＡ：デバイス認識時の処理を行い、デバイス情報を取得した後モジュールＢを起動する。
モジュールＢ：モジュールＡが取得したデバイス情報を元に、データ複製処理または光ディスクの修復を行う。
【００２０】
以降、各モジュールＡ及びＢについて、順番に説明していく。
＜モジュールＡ＞
図７は、モジュールＡの処理を説明するフローチャートである。
例えばユーザが、表示部１６０９に表示されている、記録装置制御アプリケーションのアイコンを入力装置１６０５のマウスを用いてダブルクリックする等して、アプリケーションの起動を指示する。この操作は、入力操作制御部１６０４を通じて主制御部１６０１へ通知される。主制御部１６０１は、ＨＤＤ１６０７から記録装置制御アプリケーションを読み出し、内部メモリ１６０３へ読み込んで実行を開始する。まず、モジュールＡが実行される。
【００２１】
Ｓ１７０１では、ATAPIコマンドセットを用いて、接続されているＤＶＣ１５０１の情報を取得する。
【００２２】
図８は、Ｓ１７０１における処理の詳細を示すフローチャートである。
Ｓ１８０１で、主制御部１６０１は、ＤＶＣ１５０１がＵＳＢ１５０３に接続されているかどうかを、通信制御部１６０２から送られてくる情報に基づいて判別する。ここで、ＤＶＣ１５０１が接続されていない場合、主制御部１６０１は処理をＳ１８０４に遷移させ終了処理を行う。
【００２３】
Ｓ１８０１でＤＶＣ１５０１が接続されていると判断された場合には、Ｓ１８０２に遷移する。そして、主制御部１６０１は、ＵＳＢマスストレージクラスで規定されたＣＢＷ（Command Block Wrapper）にラッピングされたATAPIコマンドを、通信制御部１６０２から送信する。ＣＢＷの構成を図１に示す。
【００２４】
主制御部１６０１は、送信するデータがあれば、Ｓ１８０５にてデータを送信し、受信するデータがあればＳ１８０６にてデータを受信する。その後、何れの場合もＳ１８０３に処理を遷移させる。また、送信するデータも受信するデータもない場合、主制御部１６０１は処理をＳ１８０３に直接遷移させる。
【００２５】
Ｓ１８０３では、ＵＳＢマスストレージクラスで規定されたＣＳＷ（Status Transport Wrapper）により、Ｓ１８０２で送信したコマンドの結果を受信し、処理を終える。ＣＳＷの構成を図２に示す。Ｓ１８０２で送信したコマンドの結果は、bCSWStatusフィールドに格納される。Ｓ１８０２で送信したコマンドが成功した場合にはbCSWStatusフィールドに００ｈが格納され、失敗した場合にはbCSWStatusフィールドに０１ｈが格納される。
このような手順により、ＰＣ１５０４とＤＶＣ１５０１との間でコマンドの送受信を行う。このコマンド送受信処理は、以後の処理におけるコマンド送受信処理に共通して用いられる。
【００２６】
図７に戻って、Ｓ１７０１ではデバイスの情報を取得するため、ATAPIコマンドである、INQUIRYコマンド（Operation Code: 0x12）を発行する。INQUIRYコマンドの構成はここでは省略する。INQUIRYコマンドに応答してＤＶＣ１５０１より返されたレスポンスデータは、図１０で示されるフィールド構成を有する。
【００２７】
Peripheral Device Type２００１の値により、応答したデバイスのタイプが判別できる。本実施形態ではCD/DVD Logical Unitの識別番号である「0x5」が格納されているものとする。
Vendor Identification２００２には、ＤＶＣ１５０１のベンダー名など、ベンダー識別情報が記述されている。
【００２８】
Product Identification２００３には、ＤＶＣ１５０１のプロダクト名など、製品識別情報が記述されている。
Product Revision Level２００４では、製品のリビジョン情報が記述されている。
【００２９】
主制御部１６０１は、図１０に示すレスポンスデータをＰＣ１５０４で取得し、処理をＳ１７０２に遷移させる。
Ｓ１７０２で、主制御部１６０１は、光ディスク１５０２の書き込み可能な領域データを取得すべく、ATAPIコマンドであるREAD TRACK INFORMATIONコマンド（Operation Code: 0x52）を送信する。
【００３０】
図１１に、READ TRACK INFORMATIONコマンドに応答してデバイス（ＤＶＣ１５０１）が送り返してくるレスポンスデータの構成を示す。
Damageビット２１０１は、ディスクがダメージディスクであるかどうかを示す１ビットの値がセットされるフィールドであり、１がセットされていればダメージディスクである。
【００３１】
LRA_Vビット２１０２に１がセットされている場合、Last Recorded Address２１０４が有効になり、NWA_Vビット２１０５に１がセットされていれば、Next Writable Address２１０３が有効になる。
Next Writable Address２１０３には、次に書き込み可能な論理アドレスが格納される。なお、ファイナライズ済みのディスクであれば、このフィールドの値は0x00となる。
Last Recorded Address２１０４には、光ディスク１５０２に記録可能な最終論理アドレスが格納される。
このような構成のレスポンスデータから、光ディスク１５０２の次に書き込み可能なアドレスと、書き込み可能な最終アドレスを取得することができる。
【００３２】
再び図７に戻り、Ｓ１７０３において、主制御部１６０１は、光ディスク１５０２の識別情報を取得するため、ATAPIコマンドのREAD DVD STRUCTUREコマンド（Operation Code: 0x51）を発行する。READ DVD STRUCTUREコマンドに応答してＤＶＣ１５０１から返されるレスポンスデータの構成を図１２に示す。
Book Type２２０１には、メディアの種類の識別情報が格納される。
Disc Size２２０２には、メディアサイズ（８ｃｍか１２ｃｍ）を示す情報が格納される。Maximum Rate２２０３には、メディアの最大転送レートが格納される。
【００３３】
主制御部１６０１は、以上のフィールドから取得したメディアの属性情報を、内部メモリ１６０３に格納しておく。
Ｓ１７０４で、主制御部１６０１は、READ(10)コマンドを発行し、ＤＶＣ１５０１に挿入されている光ディスク１５０２から、ファイルシステム情報を取得する。READ(10)コマンドの構成を図３に示す。本実施形態では、光ディスク１５０２としてＤＶＤメディアを想定しているので、ＵＤＦ（Universal Disk Format）のファイルシステムを想定しているが、他のファイルシステムに基づく記録媒体を使用しても良い。READ(10)コマンドに応答して、ＤＶＣ１５０１から、ＵＤＦ規格に準拠したファイルシステム情報が返送される。主制御部１６０１は、受信したファイルシステム情報を、内部メモリ１６０３に格納する。ファイルシステム情報の構成の一例を図１８に示す。
【００３４】
ここでは、ＤＶＣ１５０１及びＰＣ１５０４がREAD TRACK INFOMATIONコマンドを実装しているものとして説明した。しかし、いずれかがこのコマンドを実装していない場合も想定される。このような場合には、Ｓ１７０４で説明したREAD(10)コマンドのみを使用して、同様のアドレス情報を取得することができる。
【００３５】
例えばＳ１７０４で図１８に示したファイルシステム情報を取得し、ファイルシステムに記述されているアドレス及び長さ情報から、コンテンツが存在する最終アドレスにREAD(10)コマンドを発行してアクセスする。ここでエラーが返るか、0x00のみ書き込まれているようならば、最終アドレスにはコンテンツが正常に書き込まれていないことがわかる。そのため、アクセスするアドレスを順次戻しながらREAD(10)コマンドを発行し、エラーが返らないか、0x00以外の値が書き込まれている最初のアドレスを、正常にデータが書き込まれた最終アドレスとして特定することができる。従って、最終アドレスの次のアドレスが、次に書き込み可能な論理アドレスとして得られる。このように、記録媒体のファイルシステム情報と、実際に書き込まれているデータの整合性とに基づいて、書き込みを再開すべきアドレスを取得することが可能である。
【００３６】
Ｓ１７０５で、主制御部１６０１は、ＤＶＣ１５０１に挿入されている光ディスク１５０２がダメージディスクであるかを判別する。Ｓ１７０２で取得した書き込み可能領域に関する情報から、Damageビット２１０１に１がセットされている場合には、ダメージディスクであることが判別できる。また、光ディスク１５０２に次の書き込み可能な領域が存在する場合には、ファイナライズしていないディスクであることが分かる。この場合にはダメージディスクであるかどうかは判別することができないが、ダメージディスクと同様にＳ１７０６へ処理を遷移させる。
【００３７】
ダメージディスクまたは未ファイナライズディスクである場合、主制御部１６０１は、Ｓ１７０６において、ＰＣ１５０４のＨＤＤ１６０７に記憶したディスクイメージデータをチェックする。ディスクイメージデータは光ディスク１５０２の論理アドレス情報を全て格納したデータであり、ＨＤＤ１６０７の容量が許す範囲でいくつでも保持、蓄積できる。なお、本実施形態において、ディスクイメージデータは、光ディスク１５０２の論理アドレスだけでなく、Ｓ１７０３で取得したようなメディアの属性情報も含んでいるものとする。
【００３８】
主制御部１６０１は、Ｓ１７０６において、前述したＳ１７０３とＳ１７０４により取得した光ディスク１５０２の情報と、ＨＤＤ１６０７内に保存されている複数のディスクイメージデータを比較する。そして、現在ＤＶＣ１５０１にローディングされている光ディスク１５０２と同様のディスクイメージデータがＨＤＤ１６０７に保持されていると判断された場合にはＳ１７０７に遷移する。
【００３９】
Ｓ１７０７では、光ディスク１５０２がダメージディスクであり、ＨＤＤ１６０７内に同一のディスクイメージデータが保存されていることが分かったため、主制御部１６０１は、修復機能をＯＮにする。具体的には、修復機能のＯＮを表すデータを例えば内部メモリ１６０３に格納する。
【００４０】
一方、Ｓ１７０５にて、ファイナライズディスクと判別された場合や、Ｓ１７０６で光ディスク１５０２と同一のディスクイメージがＨＤＤ１６０７に保存されていないと判断された場合、主制御部１６０１は処理をＳ１７０８に遷移させる。
Ｓ１７０８で、主制御部１６０１は、プログラムモジュールＡの処理を終了して、プログラムモジュールＢを起動する。
【００４１】
＜モジュールＢ＞
図９は、モジュールＢの処理を説明するフローチャートである。
モジュールＢの起動時、主制御部１６０１は、モジュールＡの処理により取得した情報を用い、図１３に示されるようなＧＵＩ画面２３１０を表示部１６０９に表示させる。
【００４２】
ＧＵＩ画面２３１０は、ＤＶＣ１５０１の記録媒体に記録された映像データ一覧を表示するデータ一覧領域２３１１を有する。また、データ一覧領域２３１１に表示されたデータが、ＤＶＣ１５０１の記録媒体に存在することを、データ一覧領域２３１１のタイトルバー２３１３に示している。
【００４３】
一方、タイトルバー２３１４で示される記録先領域２３１２は、記録先の内容を示すための領域である。本例では、記録先は読み込み元と等しく、ＤＶＣ１５０１であるため、記録先の内容は示されていない。
【００４４】
現在ＤＶＣ１５０１にローディングされている光ディスク１５０２に対して修復機能がＯＮに設定されている場合、ＧＵＩ画面２３１０中にはディスク修復ボタン２３０２が選択可能に表示される。ディスク修復ボタン２３０２が表示されている場合、コピーボタン２３０１はグレイアウト表示されており、選択できない。
【００４５】
Ｓ１９０１で、主制御部１６０１は、ＧＵＩ画面を介してユーザからコピー命令が入力されていないかどうかを判別する。具体的には、入力装置１６０５により、コピーボタン２３０１の選択、押下に相当する操作が入力操作制御部１６０４を介して入力されたかどうかを判別する。
【００４６】
コピー命令の入力が判別された場合、主制御部１６０１は、Ｓ１９０２でATAPIのREAD(10)コマンドを発行し、通信制御部１６０２を通じてＤＶＣ１５０１へ送信する。そして、コマンドに応答してＤＶＣ１５０１から送信されてくる、光ディスク１５０２から読み出されたデータを受信する。主制御部１６０１は、受信したデータを内部メモリ１６０３に一時的に格納した後、ＨＤＤ１６０７に格納する。
なお、ATAPIのREAD(10)コマンドの発行から、応答データの受信までの処理は、図８を用いて説明したとおりである。
【００４７】
Ｓ１９０３において、主制御部１６０１は、光ディスク１５０２の最終アドレスまで読み込んだかどうか判別する。最終アドレスまで読み取っていなければ、Ｓ１９０２に戻って読み込み処理を繰り返す。
【００４８】
一方、最終アドレスまで読み込んだと判別される場合、主制御部１６０１は、読み込んだデータを、ＨＤＤ１６０７内にはディスクイメージデータとして保存する。この際、ディスクイメージデータには、モジュールＡの実行時に取得し、内部メモリ１６０３に格納しておいたディスクの属性情報を含める。
【００４９】
読み込みが終了すると、主制御部１６０１は、光ディスク１５０２の交換を促すメッセージダイアログ画面（図示せず）を表示部１６０９に表示させる。ユーザから、交換した旨の応答がダイアログ画面を通じて入力されると、主制御部１６０１は書き込み処理を開始する。
【００５０】
Ｓ１９０４において、主制御部１６０１は、ＨＤＤ１６０７内に保存されたディスクイメージ情報に基づき、書き込みを開始する。書き込みはATAPIのWRITE(10)コマンドで行うものとする。WRITE(10)コマンドにより、論理アドレス０からセクタ単位で書き込みを行う。WRITE(10)コマンドの構成を図１４に示す。
Operation Code２４０１には、WRITE(10)コマンドを示す固定値２Ａｈが入る。
Logical Block Address２４０２により指定された書き込み先の論理アドレスから、Transfer Length２４０３で示されるセクタ数だけ書き込みを行う。
【００５１】
Ｓ１９０４で、主制御部１６０１は、Logical Block Address２４０２に論理アドレス００ｈを指定し、所定のセクタ数をTransfer Length２４０３に指定したWRITE(10)コマンドを発行する。
【００５２】
Ｓ１９０５で、主制御部１６０１は、書き込んだセクタが最終アドレスかどうかを判断する。最終アドレスでなければ、Ｓ１９０４へ戻って書き込み先の論理アドレスを順次ずらしながら書き込み処理を継続する。
【００５３】
最終アドレスまで書き込みが行われたら、主制御部１６０１は書き込み処理を終了し、Ｓ１９１０において、ファイナライズ処理を行う。ファイナライズ処理は、ATAPIのCLOSE TRACK/RZONE/SESSION/BORDERコマンドを発行して行う。図１５にCLOSE TRACK/RZONE/SESSION/BORDERコマンドを示す。
ファイナライズ処理が終了したら、再びＳ１９０１に戻りコピー命令の入力待ち状態となる。
【００５４】
説明が前後するが、Ｓ１９０４〜Ｓ１９０５における書き込み処理のループを実行中に、ＵＳＢケーブルが外れる等、正常なデータ転送及び書き込み処理を阻害する事象が発生したとする。この場合、書き込みコマンド送信前の処理ステップ（Ｓ１８０１）で、ＤＶＣ１５０１を検出できなくなる。そのため、Ｓ１８０４において書き込み処理が終了されてしまい、ＤＶＣ１５０１で書き込み中だった光ディスク１５０２はダメージディスクとなる。
そして、モジュールＢの実行に先立ち、モジュールＡの実行時において、現在ローディング中の光ディスク１５０２がダメージディスクであるかどうかの判別を行ったわけである。
【００５５】
再び図９の説明に戻る。Ｓ１９０１において、ユーザよりコピー命令の入力がなかった場合、主制御部１６０１はＳ１９０６において、モジュールＡの実行時に修復機能がＯＮに設定されているか判別する。これは、修復機能のＯＮを表すデータを例えば内部メモリ１６０３に格納されているかどうかを調べることによって実現できる。
【００５６】
主制御部１６０１は、修復機能がＯＮに設定されていなければＳ１９０１に、修復機能がＯＮに設定されていればＳ１９０７にそれぞれ処理を遷移させる。
Ｓ１９０７で、主制御部１６０１は、ユーザによりディスク修復命令が入力されたかどうかを判別する。すなわち、主制御部１６０１は、入力装置１６０５により、ディスク修復ボタン２３０２の選択、押下に相当する操作が入力操作制御部１６０４を介して入力されたかどうかを判別する。
【００５７】
主制御部１６０１は、ディスク修復命令が入力されたと判別されなければＳ１９０１に、入力されたと判別されればＳ１９０８にそれぞれ処理を遷移させる。
Ｓ１９０８で、主制御部１６０１は、Ｓ１９０４と同様、ATAPIのWRITE(10)コマンドを発行して、修復処理を実行する。
【００５８】
主制御部１６０１は、最初に発行するWRITE(10)コマンドのLogical Block Address２４０２には、モジュールＡのＳ１７０２の処理で取得した、次に書き込み可能な論理アドレスをセットする。そして、主制御部１６０１は、WRITE(10)コマンドを、通信制御部１６０２を介してＤＶＣ１５０１へ送信する。
【００５９】
Ｓ１９０９で、主制御部１６０１は、Ｓ１９０８で書き込んだ論理アドレスが最終アドレスであればＳ１９１０に遷移してファイナライズ処理を行う。最終アドレスでなければ、Ｓ１９０８に戻り、書き込みを続ける。２回目以降の書き込み処理においては、WRITE(10)コマンドのLogical Block Address２４０２に前回指定した論理アドレスの次の論理アドレスを指定する。
【００６０】
このように、本実施形態では、ＤＶＣ１５０１から読み込んだデータを、ディスク属性の情報と共にディスクイメージデータとして記憶しておく。そして、ＤＶＣ１５０１にローディングされている記憶媒体が未ファイナライズであったり、ダメージディスクである場合、対応するディスクイメージデータを検索する。対応するディスクイメージデータが存在する場合には、ディスクイメージを利用して光ディスクに続きのデータを書き込む。
このような処理により、書き込み途中で処理が中断してしまった光ディスクを無駄にすることなく、修復することが可能となる。
【００６１】
なお、本実施形態においては、ＰＣ１５０４に実装されているＨＤＤ１６０７内にディスクイメージデータを格納することにしたが、ＰＣ１５０４が読み書き可能な記憶装置であれば、その設置場所についても、記憶装置の種別についても特に制限はない。例えば、ＨＤ−ＤＶＤやＢＤ等の光学記録媒体を用いる記憶装置であっても良い。また、ケーブルで直接接続されたハードディスクドライブや、アクセス可能なネットワークに接続されたハードディスクドライブであってもよい。
【００６２】
＜ＤＶＣ１５０１の処理＞
（ディスク認識処理）
ＤＶＣ１５０１の電源投入時、またはディスクローディングの処理に実行するディスク認識処理について、図１９のフローチャートを用いて説明する。
この処理は、例えば、ＤＶＣ１５０１の電源投入時や、ユーザが光ディスクドライブの蓋を閉めた際などに、主制御部１４０１（図４）が実行する。
【００６３】
Ｓ２９０１で、主制御部１４０１は、ドライブ制御部１４１１を用い、光ディスク１５０２のローディング及びチェックを行う。ここで主制御部１４０１は、まず、光ディスク１５０２以外の場所に、ダメージディスクの書き込みアドレス情報が無いかチェックし、見つからなければ、光ディスク１５０２からダメージディスク情報を取得する。
【００６４】
光ディスク１５０２が、ＤＶＤ−Ｒメディアなど、一回のみ書き込み可能なメディアの場合、ダメージディスク情報を光ディスク自体に書き込むと、その後修復できなくなる。そのため、将来の修復可能性を考慮し、ダメージディスク情報が光ディスク１５０２には記録されていない可能性がある。
【００６５】
そのため、主制御部１４０１は、例えばメモリカードなどのメモリカード１４１３がＤＶＣ１５０１に挿入されている場合、メモリカード１４１３にダメージディスク情報が記録されていないかチェックする。また、内部メモリ１４０３についてもチェックするようにしてもよい。
【００６６】
光ディスク１５０２以外の場所にダメージディスク情報が存在していない場合、主制御部１４０１は、図１８に示したような光ディスクのファイルシステムをチェックする。そして、ファイルシステムに記載されているコンテンツの最終アドレスをチェックして、最終アドレスを指定したREAD(10)コマンドを発行して、記録再生制御部１４０５へ与える。
【００６７】
ファイルシステムに記載されている通り、正常にファイルが記録されているならば、最終アドレスにアクセスすることが可能であり、かつそこには何らかのデータ記録されているはずである。ここで、最終アドレスにデータが存在しないというエラーが記録再生制御部１４０５から返ってきた場合、主制御部１４０１は、ローディングされている光ディスク１５０２が正常に書き込まれていないダメージディスクであることが分かる。
【００６８】
Ｓ２９０２において、主制御部１４０１は、Ｓ２９０１の処理により、ローディング中の光ディスク１５０２が正常である場合にはそのまま処理を終える。一方、ローディング中の光ディスク１５０２がダメージディスクである場合、主制御部１４０１は、Ｓ２９０３において書き込み失敗アドレスの取得処理を行う。
【００６９】
Ｓ２９０３において、主制御部１４０１は、内部メモリ１４０３、メモリカード１４１３又は光ディスク１５０２に最後の書き込みアドレスが記録されている場合には処理を終える。それ以外の場合、主制御部１４０１は、Ｓ１７０４で行ったように、読み出しアドレスを順次戻しながらREAD(10)コマンドを発行し、最初に読み出しに成功したアドレスを取得して、処理を終える。ここで、読み出しに成功したとは、エラーが帰らないか、0x00以外の値が書き込まれていることである。
以上の光ディスク１５０２の認識処理が終了した後、ＵＳＢ１５０３を介してＰＣ１５０４とのやり取りを行うことが可能となる。
【００７０】
（コマンド実行処理）
ＰＣ１５０４と接続された状態における、ＤＶＣ１５０１の処理について、図１６に示すフローチャートを用いて説明する。
Ｓ２６０１では、ＰＣ１５０４から送られてくるコマンドを通信制御部１４０２により受信する。ここで、受信するコマンドはATAPIコマンドであるとする。Ｓ２６０２において、主制御部１４０１は、ＰＣ１５０４からのデータ受信を伴わないコマンドであれば、処理をＳ２６０３に遷移させる。また、主制御部１４０１は、ＤＶＣ１５０１からＰＣ１５０４にデータを送る必要のあるコマンドの場合には、処理をＳ２６０４に遷移させる。また、主制御部１４０１は、ＰＣ１５０４からデータを受信する必要のあるコマンドであれば、処理をＳ２６０６に遷移させる。
【００７１】
Ｓ２６０３で主制御部１４０１は、データの送受信を伴わないコマンドの処理を行う。本実施形態において、Ｓ２６０３で処理を行うコマンドとしては、CLOSE TRACK/Rzone/SESSION/BORDERがある。CLOSE TRACK/Rzone/SESSION/BORDERを受信した場合、主制御部１４０１は、ドライブ制御部１４１１に対してファイナライズ処理命令を発行し、光ディスク１５０２のファイナライズ処理を実行する。
【００７２】
Ｓ２６０４で主制御部１４０１は、ＰＣ１５０４に対してデータを送信するためのコマンドを用意するための処理を実行する。本実施形態においてＤＶＣ１５０１がＰＣ１５０４から受信するコマンドの多くはＳ２６０４で処理される。具体的には、INQUIRY、READ TRACK INFORMATION、READ DVD STRUCTURE、READ(10)の各コマンドがＳ２６０４で処理される。
【００７３】
主制御部１４０１は、これらのコマンドを受信すると、ドライブ制御部１４１１又は記録再生制御部１４０５に、コマンドに応じたデータを要求する命令を発行する。これに応答してドライブ制御部１４１１や記録再生制御部１４０５は、光ディスク１５０２または、ドライブ制御部１４１１で保持しているデータを読み出し、内部メモリ１４０３に一時的に格納する。Ｓ２６０５において、主制御部１４０１は、内部メモリ１４０３に格納されたデータを、通信制御部１４０２を介してＰＣ１５０４に送信する。
【００７４】
Ｓ２６０６において、主制御部１４０１は、ＰＣ１５０４から送られてきたデータを内部メモリ１４０３に格納する。
Ｓ２６０７で主制御部１４０１は、受信したデータとコマンドに基づいて記録再生制御部１４０５に対して命令を実行する。本実施形態においては、WRITE(10)コマンドがＳ２６０６及びＳ２６０７で処理される。主制御部１４０１は、内部メモリ１４０３に格納されたデータを順次記録再生制御部１４０５を介して光ディスク１５０２に書き込む。
【００７５】
Ｓ２６０８において、主制御部１４０１は、受信したコマンドに基づく処理の結果を通知するＣＳＷを生成し、ＰＣ１５０４へ送信する。上述の通り、ＣＳＷは、そのbCSWStatusフィールドに、コマンドが成功した場合には００ｈが、コマンドが失敗した場合には０１ｈを有する。
以上、Ｓ２６０１〜Ｓ２６０８の処理をＰＣ１５０４と接続している間、繰り返し行う。
【００７６】
（接続認識処理）
次に、ＤＶＣ１５０１が、ＰＣ１５０４との接続を認識する際の処理について、図１７に示すフローチャートを用いて説明する。
Ｓ２７０１において、主制御部１４０１は、ＤＶＣ１５０１がＰＣ１５０４と接続しているかどうかを、通信制御部１４０２を用いて確認する。ここで接続が確認された場合、繰り返しＳ２７０１の処理を行い、ＰＣ１５０４との接続を確認する。
【００７７】
ＰＣ１５０４との接続が確認できない場合、主制御部１４０１は、Ｓ２７０２において、光ディスク１５０２にデータ書き込み中かどうかを確認する。データ書き込み中でなければ処理を終了する。
【００７８】
データ書き込み中であれば、Ｓ２７０３で、主制御部１４０１は、正常に書き込み処理を終了可能であるか否かを判別する。具体的には、書き込まれていない領域、すなわち現在書き込み中のアドレスから最終論理アドレスまでの領域にコンテンツ情報を書き込む可能性があるかどうかを判別する。例えば、ファイルシステムにおいて、図１８に示すファイルリストが生成されており、書き込み中である領域がフィールド２８０１で定義されるような、何もデータがない領域であれば、0x00の値を書き込むだけとなる。従って、フィールド２８０１への書き込みにはＰＣ１５０４からのWRITE(10)コマンドを必要としない。このような、コンテンツが書き込まれない領域で書き込みが中断した場合、主制御部１４０１は、Ｓ２７０４において、光ディスク１５０２の残りの全セクタに対して0x00の値を書き込む。
【００７９】
一方、図１８の他のフィールドのように、ＰＣ１５０４のデータを受信しないと書き込みができない領域が最終論理アドレスまでの間に存在する場合、その領域に書き込むデータはＰＣ１５０４から受信する必要がある。
【００８０】
この場合、主制御部１４０１はＳ２７０５において、ローディング中の光ディスク１５０２がダメージディスクであることを示す情報を記録する。上述したように、ローディング中の光ディスク１５０２が一回のみ書き込み可能な場合、主制御部１４０１は光ディスク１５０２以外の場所、具体的には内部メモリ１４０３やメモリカード１４１３に記録する。この場合、主制御部１４０１は、光ディスク１５０２のファイル情報（例えば、図１８に示すファイルリスト）と、書き込みを失敗したアドレスを記録する。また、ローディング中の光ディスク１５０２が再記録可能であれば、主制御部１４０１は記録再生制御部１４０５を介して光ディスク１５０２に書き込みを失敗したアドレスを記録する。
【００８１】
なお、ここではＳ２７０１において、書き込みが失敗する事象として、ＰＣとの接続解除を検出する例を説明した。しかし、他の事象を検出することも可能である。例えばＤＶＣ１５０１のように複数の動作モード（例えば再生モードと記録モード）を有する装置では、モード切替や電源ＯＦＦをＳ２７０１で検出してもよい。もちろん、複数の事象のいずれかの発生を検出しても良い。
【００８２】
このように、本実施形態のＤＶＣ１５０１によれば、書き込みに失敗した場合、失敗した場所を特定可能な情報を記録するため、上述した修復処理をよりスムーズに行うことが可能となる。また、コンテンツを全て書き終えてから発生した書き込みエラーについては、ＤＶＣ１５０１側で対処することが可能であるので、ディスクを無駄にすることがない。
【００８３】
［他の実施形態］
なお、上述の実施形態では、ネットワークインタフェースとしてＵＳＢを用いた場合について説明したが、ＩＥＥＥ１３９４など、他の規格に準拠したネットワークインタフェースを用いる場合であっても、本発明を適用可能である。
【００８４】
また、上述の実施形態では、複製時にデータを書き込む記録媒体として、ディスク状記録媒体を用いる例について説明した。しかし、本発明は、書き込みの最中でエラーが発生した場合の修復方法として、ディスク状記録媒体に限らず任意の記録媒体を用いた複数処理に適用することができる。同様に、記録媒体の複製を生成する装置はＤＶＣ１５０１に限らず、ＰＣ１５０４とデータを送受信可能で、ＰＣ１５０４から受信したデータを記録媒体に記録可能な装置であればどのような装置でもよい。
【００８５】
上述の実施形態は、システム或は装置のコンピュータ（或いはＣＰＵ、ＭＰＵ等）によりソフトウェア的に実現することも可能である。
従って、上述の実施形態をコンピュータで実現するために、該コンピュータに供給されるコンピュータプログラム自体も本発明を実現するものである。つまり、上述の実施形態の機能を実現するためのコンピュータプログラム自体も本発明の一つである。
【００８６】
なお、上述の実施形態を実現するためのコンピュータプログラムは、コンピュータで読み取り可能であれば、どのような形態であってもよい。例えば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等で構成することができるが、これらに限るものではない。
【００８７】
上述の実施形態を実現するためのコンピュータプログラムは、記憶媒体又は有線／無線通信によりコンピュータに供給される。プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記憶媒体、ＭＯ、ＣＤ、ＤＶＤ等の光／光磁気記憶媒体、不揮発性の半導体メモリなどがある。
【００８８】
有線／無線通信を用いたコンピュータプログラムの供給方法としては、コンピュータネットワーク上のサーバを利用する方法がある。この場合、本発明を形成するコンピュータプログラムとなりうるデータファイル（プログラムファイル）をサーバに記憶しておく。プログラムファイルとしては、実行形式のものであっても、ソースコードであっても良い。
【００８９】
そして、このサーバにアクセスしたクライアントコンピュータに、プログラムファイルをダウンロードすることによって供給する。この場合、プログラムファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに分散して配置することも可能である。
つまり、上述の実施形態を実現するためのプログラムファイルをクライアントコンピュータに提供するサーバ装置も本発明の一つである。
【００９０】
上述の実施形態は、システム或は装置のコンピュータ（或いはＣＰＵ、ＭＰＵ等）によりソフトウェア的に実現することも可能である。
従って、上述の実施形態をコンピュータで実現するために、該コンピュータに供給されるコンピュータプログラム自体も本発明の一つである。つまり、上述の実施形態の機能を実現するためのコンピュータプログラム自体も本発明の一つである。
【００９１】
なお、上述の実施形態を実現するためのコンピュータプログラムは、コンピュータで読み取り可能であれば、どのような形態であってもよい。例えば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等で構成することができるが、これらに限るものではない。
【００９２】
上述の実施形態を実現するためのコンピュータプログラムは、記憶媒体又は有線／無線通信によりコンピュータに供給される。プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記憶媒体、ＭＯ、ＣＤ、ＤＶＤ等の光／光磁気記憶媒体、不揮発性の半導体メモリなどがある。
【００９３】
有線／無線通信を用いたコンピュータプログラムの供給方法としては、コンピュータネットワーク上のサーバを利用する方法がある。この場合、本発明を形成するコンピュータプログラムとなりうるデータファイル（プログラムファイル）をサーバに記憶しておく。プログラムファイルとしては、実行形式のものであっても、ソースコードであっても良い。
【００９４】
そして、このサーバにアクセスしたクライアントコンピュータに、プログラムファイルをダウンロードすることによって供給する。この場合、プログラムファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに分散して配置することも可能である。
つまり、上述の実施形態を実現するためのプログラムファイルをクライアントコンピュータに提供するサーバ装置も本発明の一つである。
【００９５】
また、上述の実施形態を実現するためのコンピュータプログラムを暗号化して格納した記憶媒体を配布し、所定の条件を満たしたユーザに、暗号化を解く鍵情報を供給し、ユーザの有するコンピュータへのインストールを許可してもよい。鍵情報は、例えばインターネットを介してホームページからダウンロードさせることによって供給することができる。
【００９６】
また、上述の実施形態を実現するためのコンピュータプログラムは、すでにコンピュータ上で稼働するＯＳの機能を利用するものであってもよい。
さらに、上述の実施形態を実現するためのコンピュータプログラムは、その一部をコンピュータに装着される拡張ボード等のファームウェアで構成してもよいし、拡張ボード等が備えるＣＰＵで実行するようにしてもよい。
【図面の簡単な説明】
【００９７】
【図１】マスストレージクラスのＣＢＷの構成を示す図である。
【図２】マスストレージクラスのＣＳＷの構成を示す図である。
【図３】ATAPIのREAD(10)コマンドの構成を示す図である。
【図４】本発明の実施形態に係るデジタルビデオカメラが有する構成要素の一例を示す図である。
【図５】本発明の一実施形態に係る記録装置制御システムの構成の一例を示す図である。
【図６】本発明の実施形態に係るパーソナルコンピュータ有する構成要素の一例を示す図である。
【図７】本発明の実施形態に係る記録装置制御アプリケーションを構成するモジュールＡの処理を説明するフローチャートである。
【図８】本発明の実施形態において、ＰＣとデジタルビデオカメラとの間で行われるコマンドの受送信に係る処理の基本的な手順を説明するフローチャートである。
【図９】本発明の実施形態に係る記録装置制御アプリケーションを構成するモジュールＢの処理を説明するフローチャートである。
【図１０】INQUIRYコマンドに応答してデジタルビデオカメラより返されるレスポンスデータの構成を示す図である。
【図１１】READ TRACK INFORMATIONコマンドに応答してデジタルビデオカメラより返されるレスポンスデータの構成を示す図である。
【図１２】READ DVD STRUCTUREコマンドに応答してデジタルビデオカメラより返されるレスポンスデータの構成を示す図である。
【図１３】本発明の実施形態に係る記録装置制御アプリケーションのＧＵＩ画面例を示す図である。
【図１４】ATAPIのWRITE(10)コマンドの構成を示す図である。
【図１５】ATAPIのCLOSE TRACK/Rzone/SESSION/BORDERコマンドの構成を示す図である。
【図１６】本発明の実施形態に係るＤＶＣ１５０１が、ＰＣ１５０４と接続された状態で行う処理について説明するフローチャートである。
【図１７】本発明の実施形態に係るＤＶＣ１５０１が、ＰＣ１５０４との接続を認識する際の処理について説明するフローチャートである。
【図１８】本実施形態における光ディスク１５０２に記録されているファイルシステム情報の構成の一例を示す図である。
【図１９】本発明の実施形態に係るＤＶＣ１５０１が電源投入時、またはディスクローディングの処理に実行するディスク認識処理について説明するフローチャートである。
【図１】
2008140519.tif 000003
【図２】
2008140519.tif 000004
【図３】
2008140519.tif 000005
【図４】
2008140519.tif 000006
【図５】
2008140519.tif 000007
【図６】
2008140519.tif 000008
【図７】
2008140519.tif 000009
【図８】
2008140519.tif 000010
【図９】
2008140519.tif 000011
【図１０】
2008140519.tif 000012
【図１１】
2008140519.tif 000013
【図１２】
2008140519.tif 000014
【図１３】
2008140519.tif 000015
【図１４】
2008140519.tif 000016
【図１５】
2008140519.tif 000017
【図１６】
2008140519.tif 000018
【図１７】
2008140519.tif 000019
【図１８】
2008140519.tif 000020
【図１９】
2008140519.tif 000021