JP2007233512A - データ記録装置、データ記録方法、及びプログラム - Google Patents

データ記録装置、データ記録方法、及びプログラム Download PDF

Info

Publication number
JP2007233512A
JP2007233512A JP2006051684A JP2006051684A JP2007233512A JP 2007233512 A JP2007233512 A JP 2007233512A JP 2006051684 A JP2006051684 A JP 2006051684A JP 2006051684 A JP2006051684 A JP 2006051684A JP 2007233512 A JP2007233512 A JP 2007233512A
Authority
JP
Japan
Prior art keywords
data
file
write
request response
writing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006051684A
Other languages
English (en)
Other versions
JP4487954B2 (ja
Inventor
Ryogo Ito
亮吾 伊藤
Junichi Yokota
淳一 横田
Hiroshi Shimono
浩 下野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2006051684A priority Critical patent/JP4487954B2/ja
Priority to US11/711,881 priority patent/US7664912B2/en
Priority to CNB2007100800219A priority patent/CN100501700C/zh
Publication of JP2007233512A publication Critical patent/JP2007233512A/ja
Application granted granted Critical
Publication of JP4487954B2 publication Critical patent/JP4487954B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

【課題】例えばFATファイルシステムによるファイル管理を行っている環境下で、MPEG形式の動画ファイルの記録が中断して、その終端がGOPの終端と一致しないような管理状態となった場合、再生エラーとなる可能性がある。このような再生エラーの可能性を回避してより高い信頼性を得る。
【解決手段】動画ファイル記録時には、アプリケーションからの書込要求に応じて要求応答書込データを逐次記録していく。1要求応答書込データの書き込みは、クラスタの境界に応じたファイルボディに分割し、このファイルボディごとに順次書き込むという手順で行う。このときに、データ書き込み結果に応じたファイル管理情報の更新は、ファイルボディの書き込み完了ごとに行わずに、1要求応答書込データを成す全てのファイルボディの記録が成功した後に行うようにする。
【選択図】図12

Description

本発明は、所定形式のファイルとして管理されるべきデータを記録するデータ記録装置とその方法に関する。また、このようなデータ記録装置が実行するプログラムに関する。
デジタルビデオカメラなどの動画撮影が可能なデジタル撮像機器においては、メディア(記憶媒体)に記録すべきデータとして、撮像により得られる動画ファイルを扱うことになるので、使用するメディアとしては相応の大容量が必要となる。以前では、このような要求に応えることのできるメディアとしてテープメディアが主流であった。しかしながら近年では、ビット単価の低下などによる大幅なコストダウンや、耐衝撃性の向上などを背景として、HDD(ハードディスクドライブ)も採用されるようになってきている。
元来、HDDは、コンピュータシステムの補助記憶装置として使用されてきたという経緯から、記録データの管理には、所定フォーマットのファイルシステムを採用することが一般的である。周知のようにして、ファイルシステムは、メディアに記憶されるデータを、ファイル単位により管理するようにされている。そして、このようなファイルシステムの1フォーマットとしては、FATファイルシステムが知られている。
FATファイルシステムでは、メディアの記憶領域をクラスタといわれる単位領域に分割する。従って、メディアへのファイルの記録は、このクラスタに対してデータを書き込んでいくようにして行われるものとなる。そして、メディアに記録済みとされたファイルは、そのデータの実体が書き込まれたクラスタの連結として管理されるようになっている。周知のように、FATファイルシステムでは、上記のようにしてファイルを管理するための管理情報として、ディレクトリエントリと、FAT(File Allocation Table)といわれるテーブル情報を使用する。
特開2005−63047号公報
デジタルビデオカメラのメディアとしてHDDを備える場合においても、これまでと同様のフォーマットのファイルシステムを採用するほうが、新たなファイル管理形式を開発しなくてもよいなど、効率的であり、また順当であることになる。現実のHDD内蔵デジタルビデオカメラにおいても、例えば上記したFATファイルシステムなど、これまでに既知とされているファイルシステムのフォーマットが採用されている。
しかしながら、先に述べたように、FATなどのファイルシステムは、古くからあるコンピュータシステムのもとで開発されてきたことなどの事情で、ファイルシステムが行うとされる制御のいくつかは、文書ファイルなどの静的なファイルの管理に適したものとなっており、これをそのまま、動画ファイルなどのストリーム的なデータをリアルタイム的に記録していくような場合の制御に適用した場合には、かえって不具合を生じるような場合がある。
上記のようなことを考慮すると、デジタルビデオカメラに対して、ファイルシステムを採用することが順当とされるような記憶媒体を実装するような場合には、基本的にはこれまでと同様のファイルシステムなどのデータ管理フォーマットを採用したうえで、必要な部分については動画などのストリーム的なデータの記録に適化して、信頼性、性能などの向上が図られるようにすることが好ましいといえる。
このために、本発明は上記した課題を考慮して、データ記録装置として次のように構成する。
つまり、記憶媒体に記録すべきデータとして、1回のデータ書込要求ごとに応じて記憶媒体に書き込むべきデータの単位である要求応答書込データを取得する記録データ取得手段と、記憶媒体の記憶領域において連続的に形成した所定容量の単位領域にデータを書き込むようにして記憶媒体に対するデータ記録を実行するもので、1回のデータ書込要求に対応する要求応答書込データが、2以上の上記単位領域を使用して書き込まれ、かつ、その先頭及び/又は終端が単位領域における中途位置に書き込まれる場合には、中途位置を含む単位領域に対して格納すべき要求応答書込データ部分を書き込む部分書込処理と、中途位置を含まずに書込要求データを成すデータのみを格納する論理的に連続した1以上の単位領域に対して格納すべき要求応答書込データ部分を書き込む部分書込処理とを行うことにより、データ記録を実行するようにされたデータ記録手段と、ファイルのデータが記憶されるのと同じ記憶媒体に記憶され、上記単位領域によりファイルを形成するデータを管理するようにされた管理情報を利用して、ファイルの管理を行うファイル管理手段と、2以上の上記部分書込処理により要求応答書込データを記憶媒体に記録するときには、部分書込処理の完了ごとに応じたタイミングでの管理情報の更新処理を挿入させることなく、順次的な部分書込処理による要求応答書込データの記録をデータ記録手段に実行させる記録制御手段と、順次的な部分書込処理による要求応答書込データの記録が完了した後のタイミングにおいて、これらの部分書込処理の全ての結果が反映されるようにしてファイル管理手段に上記管理情報を更新させるファイル更新制御手段とを備えてデータ記録装置を構成することとした。
上記構成では、記憶媒体の記憶領域は、所定容量の単位領域が連続するようにされたものとして形成されている。このような記憶媒体のフォーマット構造に応じて、1回のデータ書込要求に応じて書き込むべきデータ(書込要求データ)が2以上の上記単位領域を使用して書き込まれ、かつ、その先頭及び/又は終端が上記単位領域における中途位置に書き込まれるものである場合、この書込要求データの記録は、中途位置を含む単位領域に対してデータを書き込む部分書込処理と、中途位置を含まずに書込要求データを成すデータのみを格納する論理的に連続した1以上の単位領域に対してデータを書き込む部分書込処理とを実行させて行うようにされる。
そのうえで、本願発明にあっては、上記のようにして、2以上の部分書込処理により書込要求データの記録を行う場合には、この部分書込処理を順次的に実行させるのにあたり、その途中過程において、部分書込処理の完了ごとに応じたタイミングでの管理情報の更新は行わないようにされ、部分書込処理のシーケンスをすべて完了したタイミングで、これらの部分書込処理の全ての結果が反映されるようにして管理情報の更新を行うようにされる。
1つの書込要求データを記録するのにあたり、部分書込処理の完了ごとに応じたタイミングで管理情報を更新することとした場合、例えば、或る後半の部分書込処理が失敗したとしても、これより前半の部分書込処理により失敗無く記録されたデータは管理情報に反映され、有効な記録済みデータとして管理される。しかしながら、前半の部分書込処理により失敗無くデータが記録されたとしても、このデータの少なくとも一部分と、後半の部分書込処理により記録が失敗したデータの少なくとも一部分とが、書込要求データ内において分離不可な関係性を持っていた場合には、かえって、例えば正常な再生結果が得られないなどの不都合を生むことになる。
これに対して本願発明であれば、或る後半の部分書込処理が失敗した場合には、対応する書込要求データそのものが管理情報には反映されなくなる。これにより、上記のようにして、本来は分離不可な関係性を持つデータの一部のみが管理情報に反映されるようにして記録済みとなるような結果を生じることがない。
このようにして本発明は、本来は分離不可な関係性を持つデータの一部のみが管理情報に反映されるようにして記録済みとなるような結果を生じることがない。これにより、例えば記録データについて正常な再生結果が保証されるなど、機器の信頼性、性能の向上が図られる。
以下、本発明を実施するための最良の形態(以下、実施の形態という)について説明する。本実施の形態としては、本発明としての情報処理装置の構成をデジタルビデオカメラに適用した場合を例に挙げることとする。
図1は、本実施の形態としてのデジタルビデオカメラ1の構成例を示すブロック図である。
この図に示すデジタルビデオカメラ1において、光学系部2は、撮像レンズ、絞りなどを備えて成り、入射された光を撮像光として、光電変換部3に結像させる。また、光学系部2においては、フォーカス(焦点)調整のためのフォーカス調整機構や、絞り値に応じて絞りを可変する絞り可変機構などを備えているものとされ、このような機構部の駆動は、カメラ機能部6から出力される駆動信号によって行われる。カメラ機能部6は、CPU10の制御に応じて、しかるべきフォーカス状態や絞りの状態等が得られるように所要の駆動信号を出力するようにされている。
また、例えば光学ズーム機能を与えることとした場合には、光学系部2においてズームレンズを移動させるズーム機構を設けると共に、上記と同様にして、CPU10の制御に応じて上記ズーム機構を移動させる駆動部を設けるようにすればよい。さらに、カメラ機能部6として、ストロボを設けたうえで、ストロボ発光機能を与えるように構成することもできる。
光電変換部3は、例えば光電変換素子であるCCD(Charge Coupled Device)を備えて構成され、光学系部2から入射されて受光面にて結像された撮像光を光電変換することで撮像信号を生成してビデオ信号処理部4に出力する。撮影時においては、例えば露出設定結果に応じて決定されるシャッター速度の指示が、CPU10からビデオ信号処理部4に通知される。ビデオ信号処理部4では、通知されたシャッター速度に対応する走査タイミング信号を光電変換部3に出力する。光電変換部3は、この走査タイミング信号に応じて走査を行うようにして、光電変換処理を実行して映像信号を出力するようにされる。
ビデオ信号処理部4は、光電変換部3から入力されたアナログのビデオ信号(撮像画像信号)について、例えばゲイン調整、サンプルホールド処理を施すことによって波形整形を行ったうえで、A/D変換を行うことで、デジタルとしてのビデオ信号データに変換する。そして、この変換処理によって得られたデジタルビデオ信号について、例えば、表示用輝度データの生成処理などをはじめ、表示部7にて表示が行われるようにするためのビデオ信号処理を実行する。これに伴い、ビデオ信号処理部4では、CPU10の制御に応じてキャラクタ画像なども撮像画像に重畳して表示可能なように、いわゆるオンスクリーンディスプレイのための信号処理も実行可能とされている。
表示部7として採用される実際のディスプレイデバイスについては特に限定されるべきものではないが、現状においては、広く液晶ディスプレイパネルが採用されている。
また、ビデオ信号処理部4は、光電変換部3から入力されたアナログビデオ信号を変換して得たデジタルビデオ信号について、例えば所定方式による圧縮符号化処理を施して、圧縮ビデオデータを生成することが可能とされている。
また、本実施の形態のデジタルビデオカメラは、スチルカメラ機能も備える。つまり、撮像画像信号について、写真としての所定形式による静止画データファイルを生成することが可能とされているが、このような画像処理も、ビデオ信号処理部4によって行われる。
また、ビデオ信号処理部4では、光電変換部3から入力された画像(映像)信号や、後述するメディアから読み出された動画、静止画、音声のファイルなどを、所定方式のアナログビデオ信号又はデジタルビデオ信号に変換して、画像入出力部5を介して外部機器などに出力可能とされている。
画像入出力部5は、外部から所定方式のビデオ信号を入力可能ともされており、この入力したビデオ信号をビデオ信号処理部4の処理を経て表示部7に表示させることが可能とされる。また、ビデオ信号処理部4は、画像入出力部5が入力したビデオ信号について、光電変換部3から入力されたアナログビデオ信号と同様にして、記録用データに変換してメディアコントローラ13に転送することもできる。
これに対応して、画像入出力部5は、例えば所定方式に従った映像(画像)信号出力端子/映像信号入力端子を備える。
また、本実施の形態のデジタルビデオカメラ1は、音声処理部8及び音声入出力部9を備えることで、音声信号の入出力も可能とされている。
先ず、音声入力については、音声入出力部9としてマイクロフォンなどを備え、外部音声の収音を行って音声信号に変換して音声を入力するようにされる。そして、このようにして入力した音声信号を音声処理部8に出力する。音声処理部8は、例えば、撮像画像の圧縮符号化に対応する音声圧縮符号化方式により符号化された圧縮オーディオデータに変換するなどの音声信号処理を施す。
CPU10は、ビデオ信号処理部4により得られた撮像画像についての圧縮ビデオデータと、音声処理部8により得られた収音音声についての圧縮オーディオデータとにより、所定形式の動画ファイルを形成するための制御処理を実行するようにされる。この動画ファイルは、圧縮ビデオデータを再生して出力される動画像に対して、圧縮オーディオデータを再生して出力される音声の再生時間軸が同期したものとなっている。なお、実際に動画ファイルを形成するための構成としては、CPU10がプログラムを実行して得られるデジタル信号処理となるソフトウェア構成とされてもよいし、あるいは、動画ファイルを形成するためのハードウェアを備えるとともに、CPU10がこのハードウェアについての動作を制御する構成としてもよい。
上記動画ファイルとしてのデータは、記録用データとして、例えばCPU10の制御によってメディアコントローラ13に転送される。また、CPU10は、ビデオ信号処理部4によって生成された写真画像としての所定形式の静止画データファイルについても、記録用データとしてメディアコントローラ13に転送することができる。
音声入出力部9としては、音声信号入力端子などを備えて外部のオーディオ機器などからオーディオ信号を入力するようにも構成することができる。上記音声信号入力端子から入力されたオーディオ信号については、音声処理部8は、所定形式によるデジタルオーディオデータファイルに変換するようにされる。CPU10は、このようなデジタルオーディオデータファイルのデータについても、記録用データとしてメディアコントローラ13に転送することができる。
メディアコントローラ13は、CPU10との連携により、所定の異なる種別の外部のメディア(記憶媒体)、外部記憶デバイス(記憶装置)に対応して、これらのメディアに対するデータ処理に関する制御処理を実行可能に構成される。ここでいうメディアに対するデータ処理とは、メディアのフォーマット処理や、メディアの記憶領域に対するファイル及びファイル管理のための情報(ファイル管理情報)などの書き込み/読み出し処理など、メディアに記憶されるべきデータに関連する何らかの処理をいう。
本実施の形態では、メディアコントローラ13に対しては、HDD(ハードディスクドライブ)が接続されている。HDDは、周知のようにしてハードディスクといわれる、記憶媒体として磁気ディスクを備える記憶デバイスであり、現状においては、比較的低コストでギガバイトクラスの大容量が得られる。また、周知のようにして、記憶媒体である磁気ディスクに対する物理的なデータの読み出し/書き込みは、磁気ヘッドにより、磁気ディスク上に形成されるトラックをトレースしながら磁界印加、磁界検出を行うことによって実現される。
また、この場合のHDDとしては、例えばデジタルビデオカメラ1に固定的に内蔵されるものとしてもよいし、デジタルビデオカメラ1(ホスト)に対して装脱可能な、所定の規格に従ったリムーバブル形態とされてもよい。
また、この図では、メディアコントローラ13は、所定方式の光ディスク、光磁気ディスク、及び半導体メモリ素子を備える記憶デバイスである半導体記憶装置などにも対応してデータ処理が可能であることとされている。
光ディスク及び光磁気ディスクなどに対応する場合の実際としては、これらの記録(記憶)媒体に対応してデータの書き込み/読み出しが可能に構成されたドライブとしてのデバイスを備え、これらのデバイスとメディアコントローラ13とを接続することになる。
また、半導体記憶装置に対応する場合は、半導体記憶装置の実際の規格に従って、この半導体記憶装置が装脱されるスロットを、デジタルビデオカメラ1の本体に備える。このスロットに対して半導体記憶装置が適正に装填されると、半導体記憶装置のピン端子がスロットのコネクタ部位の電極と接続され、これにより、半導体記憶装置は、メディアコントローラ13との間で通信が可能に接続されることになる。
このようにして、本実施の形態のデジタルビデオカメラ1としては、多様なメディアに対応したデータ処理が可能とされてはいるが、説明を簡単にすることの便宜上、本実施の形態のデジタルビデオカメラ1が撮像により得られたデータを記録再生するためのメディアとしては、HDDであるものとする。
メディアコントローラ13は、先に説明したようにして、記録用データが転送されてくるのに応じて、この記録用データを、メディアコントローラ13と接続されているメディア(記憶媒体、記憶装置)のうちから対象として選択されているメディアに対してさらに転送する。データが転送されたメディアでは、メディアコントローラ13側からの指示に応じて記憶領域に対してデータを書き込んで記憶させる。このようにしてメディアに記憶されるデータがファイルとして記憶管理されることになる。なお、メディアに記憶されるファイルの管理は所定方式のファイルシステムによって行われる。
また、例えばメディアに記憶されているファイルについての再生として、動画ファイルを再生するときには、CPU10及びメディアコントローラ13は、指定された動画ファイルにアクセスして読み出しを行う。このようにして読み出される動画ファイルは、例えばCPU10の処理により、圧縮ビデオデータと圧縮オーディオデータとに分離され、圧縮ビデオデータについてはビデオ信号処理部4に受け渡し、圧縮オーディオ信号については、音声処理部8に受け渡すようにされる。
この場合のビデオ信号処理部4及び音声処理部8は、それぞれ、上記のようにして転送されてきた圧縮ビデオデータ、圧縮オーディオデータについて、復調処理を含む所要の再生信号処理を実行する。これにより、圧縮ビデオデータを再生した画像を表示部7にて表示するとともに、この画像の再生時間に同期して、圧縮オーディオデータを再生して得られる音声信号を、音声入出力部9が有するとされるスピーカにより音声として出力させたり、ヘッドフォン端子から出力させることができる。
また、例えばメディアから再生されたオーディオデータファイルは、音声処理部8の音声信号処理を経た後に、音声入出力部9を介して、外部に対して所定形式のオーディオ信号、オーディオデータとして出力することも可能とされている。この場合、音声入出力部9としては、音声処理部8から出力される所定のオーディオ信号、オーディオデータの形式に対応するオーディオ出力端子を備えることになる。
CPU(Central Processing Unit)10は、プログラムを実行することでデジタルビデオカメラ1についての各種制御処理を実行する。ROM11は、CPU10が実行する各種プログラムのほか、CPU10が処理を実行するのに使用する各種設定情報などが記憶されている。RAM12は、CPU10がプログラムに従った処理を実行するときの作業領域として使用されるもので、各種の演算処理結果などのデータが保持される。
また、不揮発性メモリ12aは、例えばフラッシュメモリなどをはじめとした、電源供給が停止しても記憶内容が消去されない性質のメモリ素子により形成され、CPU10の制御によって、データの書き込み/読み出しが実行される。この不揮発性メモリ12aに記憶されるべきデータ(情報)としては、適宜内容の変更が行われる設定情報などが一般的であるが、特に限定されるものではなく、実際のデジタルビデオカメラ1の仕様などに応じて所要の各種の情報を記憶することとされればよい。
この場合の操作入力部15は、デジタルビデオカメラ1に備えられる各種操作子を一括して示しているものとされる。例えば、この操作入力部15における操作子としては、写真撮影時に操作されるシャッターボタン、撮影モードなどを選択する操作子、パラメータのアップ/ダウンを行うための操作子などが含まれる。
さらに、この場合の操作入力部15としては、例えば表示部7の表示画面を利用したGUIとしての入力操作を実現するための構成を備える。
通信部16は、CPU10の制御に応じて、所定のデータ通信方式により外部デバイスと通信を行うためのハードウェア、ソフトウェアを実装して構成される部位である。この通信部16が対応するデータ通信方式としては、有線、無線を問わず特に限定されるべきものではなく、また、対応するデータ通信方式の数も限定されるべきものでない。現状であれば、データ通信方式としては、有線ではEthernet(商標)などのネットワーク、USB(Universal Serial Bus)、IEEE(the Institute of Electrical and Electronic Engineers)1394などのデータバス規格などを挙げることができる。また、無線であれば、Bluetooth(商標)などのデバイス間近距離無線通信、IEEE802.11a/b/gなどの無線LAN(Local Area Network)規格を挙げることができる。
電源部17は、デジタルビデオカメラ1における各種のハードウェアデバイスに対して動作電源を供給するもので、例えばバッテリや電源アダプタからの電力供給を受けて動作する電源回路などを備えて構成される。
上記のようにして、本実施の形態のデジタルビデオカメラ1では、主としては、撮像/収音により得られる映像/音声ファイルを、HDD、各種光学ディスク状記録媒体(光磁気ディスクを含む)、半導体記憶装置などのメディア(記憶媒体)に対して記憶させることができるようになっている。
上記のようにしてメディアに記憶されるファイルは、通常は、所定フォーマットによるファイルシステムにより管理されることになるのであるが、本実施の形態としては、FAT(File Allocation Table)ファイルシステムにより管理されるものとしている。FATファイルシステムは、周知のようにして、ツリー型のディレクトリ構造によりファイルを管理するようにされており、また、データの書き込み/読み出しについては、クラスタといわれる論理的な最小データ管理単位により行うものとされている。クラスタは、メディアにおける物理的なデータ書き込み/読み出しの最小単位であるセクタを所定数にまとめたものが1単位となる。
図2は、FATファイルシステムの一般的なシステム構成を階層モデルにより示している。
先ず、この階層モデルとしては、ソフトウェア層と、その下層となるハードウェア層に大別される。
ソフトウェア層は、この場合には、メディアに対してホスト(実施の形態ではデジタルビデオカメラ1)となるデバイスにおいて、CPUが実行するプログラム、及び各種ファームウェア、ミドルウェアなどにより実現されるソフトウェア処理が対応するものとされる。この場合のソフトウェア層は、図示するように、上層から下層にかけて、アプリケーション100、ファイルシステム101、デバイスドライバ102の各層が位置する。
ハードウェア層には、メディアそのものの物理的な記憶領域が位置するものとして考えることができる。
アプリケーション100は、例えばファイルの記録/再生機能などを有して、メディアを使用するアプリケーションソフトウェアが対応し、ファイルレベルでのアクセス要求(あるいはデータ書き込む要求)をファイルシステム101に対して行う。
ファイルシステム101は、ファイルシステムとしての機能を実現するソフトウェアが対応する。本実施の形態では、FATファイルシステムを採用することとしているので、ファイルシステム101の機能を提供するソフトウェアとしても、FATファイルシステムに対応して構成されるものとなる。
このファイルシステム101では、アプリケーション100からのファイルレベルによるアクセス要求を、FATファイルシステムのフォーマットにおけるデータの管理単位となるクラスタのレベルに変換して、デバイスドライバ102に対してアクセス要求を行う。
デバイスドライバ102は、コントロール対象のデバイスとなるメディアをコントロールするためのソフトウェアが対応し、上記ファイルシステム101からのFATファイルシステムフォーマットに従ったクラスタレベルによるアクセス要求を、メディア103上におけるデータの記録再生単位であるセクタのレベルに変換して、メディア103へのアクセス要求を行う。
この場合のメディア103は、論理的にはFATファイルシステムに従ってフォーマット(初期化)されたものとなる。図1では、HDD、光学ディスク状記録媒体、半導体記憶装置など、メディアコントローラ13と接続されている記憶媒体、記憶装置がここでのメディア103に相当する。そして、メディア103は、デバイスドライバ102からのセクタレベルのアクセス要求に応答して、指定されたセクタアドレスからデータを読み出して、デバイスドライバ102に返す。つまり、セクタレベルでのアクセス応答を実行する。
デバイスドライバ102は、メディア103からのセクタレベルでのアクセス応答、つまりセクタ単位でのデータの受け取りを行い、この受け取ったデータについて、クラスタ単位によるデータとして扱ってファイルシステム101に受け渡す(クラスタレベルでのアクセス応答)。
ファイルシステム101は、デバイスドライバ102から受け取ったデータを、ファイルレベルのデータとしてアプリケーション100に受け渡すようにされる。アプリケーション100は、ファイルとして受け取ったデータについて、例えばユーザによる操作入力などに応じたアプリケーションレベルでの所要の処理を実行する。
また、FATファイルシステムは、記憶ファイルをツリー型のディレクトリ構造により管理し、また、ファイルをクラスタ単位の集合として管理するようにされている。このようなファイル管理、データ管理は、周知のようにしてディレクトリエントリ、及びFATといわれるテーブル情報を備えることにより実現されるものとなる。ディレクトリエントリは、メディア上におけるファイル、ディレクトリ(サブディレクトリ)の所在をクラスタレベルで示す情報であり、FATは、ディレクトリ、ファイルを成すクラスタレベルでのチェイン(リンク、連結)を示す情報である。
図3は、FATの規格に従ったメディアのフォーマット構造を示している。
FATの形式としては複数が規定されているのであるが、ここでは、FAT16及びFAT32の各形式に対応するフォーマット構造を示すこととする。
先ず、図3の左側に示されるFAT16に対応するフォーマット構造から説明する。
この図に示す構造は、LBA(Logical Block Addressing)に従った論理的なものとなっている。つまり、最も上を先頭セクタ(LBA=0)として、以降、下に向かってブロック(セクタ)の番号が進んでいくものとなる。
また、FATのファイルシステムでは、1つの物理的記憶領域を複数のパーティションに分割可能とされているが、ここでは説明の便宜上、1パーティションとした場合のフォーマット構造を示している。
先ず、LBA=0として表される先頭セクタは、MBR(Master Boot Recorder) といわれる、ブート領域となっている。
MBRの構造を図4(a)に示す。
1セクタは512バイトのサイズであり、従って、MBRとしても512バイトとなる。図4(a)では、このMBRの領域における512バイトについて、先頭から最終のバイト位置を、0000h〜01FFhまでの16進法による番号を振って表現したうえで、16バイト単位を1列として配列して示している。なお、16進法の表記を行うのにあたっては、上記0000h、或いは01FFhのようにして、数値の最後尾に16進法表記であることを示すhを付すこととする。
先ず、バイト位置0000h〜01BDhまでの446バイトの領域は、OS(Operating System)起動用のメディアとして使用される場合において、その起動(ブート:boot)のためのコード(起動コード)が格納される領域である。
MBRにおけるバイト位置01BEh〜01FDhまでの64バイトの領域は、パーティションテーブルとされており、起動時において必要とされるパーティションごとに関する所定の情報が格納される。このパーティションテーブルの領域は、さらに16バイト単位で4つの領域に分割されることになっており、これらの4分割された領域は、先頭から順に、パーティション1、パーティション2、パーティション3、パーティション4に対応する領域となっている。これらのこれらのパーティションごとに対応する各領域は、パーティションごとのエントリの領域となる。
また、MBRにおける最終の2バイトの領域には、現セクタがMBRであることの識別子として55AAhが格納される。
上記パーティションのエントリは、図4(b)に示す構造を有するものとされる。先ず、最上位のバイト位置00hは、該当パーティションについての、起動ドライブとしての指定の有無を示すフラグを格納する領域とされる。
また、続くバイト位置01h〜03hによる3バイトの領域は、該当パーティションの開始セクタをCHS(Cylinder/Head/Sector)により表現した値が格納される。バイト位置05h〜07hから成る3バイトの領域により、該当パーティションの終了セクタをCHSにより表現した値が格納される。
また、バイト位置08h〜0Bhによる4バイトの領域により、該当パーティションの開始セクタをLBAにより示す値を格納することとしている。
バイト位置0Ch〜0Fhから成る4バイトの領域は、該当パーティションのデータサイズ(パーティションサイズ)を示す値を格納する。
バイト位置04hが示す1バイトの領域は、システム識別子ともいわれる、該当パーティションが対応するプラットフォーム、ファイルシステムなどのタイプを示す値を格納する。
説明を図3に戻す。
MBRとしての先頭セクタに続けては所定セクタ数による空き領域を設けることとしている。そして、この空き領域より後となるセクタ領域により、パーティション単位の領域を形成する。
1パーティション内における先頭セクタから所定のバイト数までによる領域は、システム関連の情報を格納するシステム領域となる。
このシステム領域において先頭セクタから開始される所定バイト数の領域は、BPB(BIOS Parameter Block/Boot Parameter Block)とされ、ここでは現パーティションに関して、例えばホスト側のBIOS(Basic Input/Output System)などのように、ブロックデバイスコントロールのためのプログラムが利用すべき所要のデータが格納される。BPBに格納する情報においては、次に説明するFAT領域の数、メインのFAT領域の開始セクタ、FAT領域のセクタ数などの情報を含む。
BPBに続けてはFAT1、FAT2のFAT領域が順に配置される。通常は、FAT1,2のいずれか一方の領域がメインのFAT領域として使用される。他方のFAT領域は、一般的には、メインのFAT領域の内容をコピーしたミラー領域として使用するなど、例えばメインのFAT領域の予備領域、バックアップ用領域として使用される。
これらのFAT領域は、FATエントリが、データ領域内のクラスタ番号順に配列されて形成される領域とされる。FATエントリと、データ領域内のクラスタとは1対1で対応しており、FATエントリには、ディレクトリ、ファイルの記憶結果に応じて、該当クラスタについての情報として、例えば、未使用、該当ファイルにおいて現クラスタの次にチェインされるクラスタ番号、不良クラスタ、EOF(End Of File:ファイルにおける最終クラスタ)などのうちから、何れかを示す情報が格納される。
FAT16フォーマットでは、クラスタ番号を2バイト(16ビット)により表すこととしており、これに応じて、FATエントリの個々のサイズも2バイトとされている。
FAT1,FAT2の領域に続けては、所定サイズのルートディレクトリエントリが配置される。このルートディレクトリエントリには、ルートディレクトリにおけるディレクトリ、ファイルなどについてのディレクトリエントリが格納される。
ルートディレクトリより下位のセクタ領域が、データ領域となる。このデータ領域に対するデータの書き込み/読み出しは、FATファイルシステムにより管理される。従って、図示するようにして、ファイルシステムのフォーマット構造としては、1以上の所定数のセクタの連続から成るクラスタ単位によりデータ領域を管理することになる。上記もしたように、FAT領域は、原則として、このデータ領域を形成する全クラスタに対応するFATエントリを有して形成されるものとなる。
続いては図3の右側に示されるFAT32に対応するフォーマット構造について説明する。
FAT32対応のフォーマット構造としても、LBA=0で表される先頭セクタにMBRを配置している。そして、このMBRに続けて配置する所定セクタ数の空き領域に続けて、パーティション単位の領域を配置していくようにされる。
FAT32対応のフォーマット構造のパーティション領域にけるシステム領域としては、BPBに続けてFSinfoの領域を設けることとしている。
FSinfoは、該当パーティションにおける空き容量を計算するのに利用する所定の情報を格納する領域である。FAT1,FAT2のFAT領域は、FSinfoに続けて順次配置される。
FAT32のフォーマットの場合のFAT領域も、クラスタと1対1で対応するFATエントリがクラスタ番号順に配列されて形成され、FATエントリには、ディレクトリ、ファイルの記憶結果に応じて、該当クラスタについての所定の情報が格納される。ただし、FAT32のフォーマットでは、クラスタ番号を4バイト(32ビット)で表現することから、FATエントリの個々のサイズも4バイトで区切られることになる。
また、FAT32のフォーマット構造では、FAT16のフォーマット構造においてシステム領域内に設けられていたルートディレクトリエントリの領域が省略されている。
FAT32のフォーマット構造では、ルートディレクトリはデータ領域内におかれることとなっている。データ領域におけるルートディレクトリの開始クラスタ番号は、BPBにおける所定領域(RootClus)に格納される値により示されており、ルートディレクトリにアクセスするときには、上記RootClusを参照して認識したクラスタ番号にアクセスするようにされる。RootClusが示すルートディレクトリの開始クラスタ番号は、通常、2である。
データ領域は、この場合においても、FAT32のファイルシステムによりクラスタ単位でデータの書き込み/読み出しが管理される領域となる。
図5に、FATのファイルシステムにおいて規定されるディレクトリエントリの構造を示す。なお、ここでは、FAT32に対応するディレクトリエントリの構造を示している。
この場合、ディレクトリエントリは32バイトとされている。この図においては、上位バイトから下位バイトまでの各バイト位置を、0h〜1Fhまでの値により示している。
ディレクトリエントリを形成する32バイトにおいて、最上位のバイト位置0hからバイト位置7hまでの8バイトの領域は、現ディレクトリエントリが示す現ファイル又は現ディレクトリの名称を格納する。
続く下位のバイト位置8hからバイト位置Ahまでの3バイトの領域は、現ファイルのファイル形式に応じた拡張子が格納される。
続く下位のバイト位置Bhには、現ファイル/現ディレクトリについての属性を示す値が格納される。
バイト位置Chは、ここでは予約領域とされている。
バイト位置Dh〜Fhまでの3バイトの領域は、現ファイル/現ディレクトリの作成時刻を示す値を格納する。
バイト位置10h−11hによる2バイトの領域は、現ファイル/現ディレクトリの作成日付を示す値を格納する。
バイト位置12h−13hによる2バイトの領域は、現ファイル/現ディレクトリに対するアクセスが最後に行われた日(最終アクセス日付)を示す値を格納する。
また、バイト位置14h−15hによる2バイト領域とバイト位置1Ah−1Bhによる2バイト領域との計4バイトの領域によっては、現ファイル/現ディレクトリが記憶されるメディア上の先頭位置をクラスタ番号により示すようにされる。つまり、この計4バイトの領域には現ファイル/現ディレクトリについての先頭クラスタ番号の値が格納される。バイト位置14h−15hによる2バイト領域に対しては、先頭クラスタ番号についての上位4バイトの値を格納する。バイト位置1Ah−1Bhによる2バイト領域に対しては、先頭クラスタ番号についての下位4バイトの値を格納する。
バイト位置16h−17hによる2バイト領域は、現ファイル/現ディレクトリについての記録(最後の更新)が実行された時刻(記録時刻)を示す値を格納する。
バイト位置18h−19hによる2バイト領域は、現ファイル/現ディレクトリについての記録(最後の更新)が実行された日付(記録日付)を示す値を格納する。
バイト位置1Ch〜1Fhまでの4バイトの領域は、現ファイル/現ディレクトリについてのサイズ(容量)を示す値を格納する。
図6は、FATファイルシステムによるファイル管理例を示している。なお、この図においては、FAT32に従ってフォーマットされた場合を示している。
ここでは、データ領域において、少なくともファイルA、ファイルB、ファイルC、ファイルDが記憶されているものとしたうえで、ファイルA,B,C,Dのディレクトリエントリを、それぞれ図6(a)(b)(c)(d)に示す。なお、この図における説明としては、ディレクトリエントリにおける先頭クラスタ番号(バイト位置14h-15h/1Ah-1Bh)
の情報が主要であることから、他の領域の情報については省略している箇所がある。
また、図6(e)は、FAT領域の一部を示すもので、ファイルA,B,C,Dの記憶結果に対応するFATエントリの内容を有している。なお、この図6(e)においては、図示が簡略でわかりやすくなることを考慮して、ほぼファイルA,B,C,Dのみに対応したFATエントリ内容のみを抜き出したものとなっている。なお、前述もしたように、FAT32では、個々のFATエントリは32ビットのサイズを有する。
また、この図6(e)に示すFAT領域におけるFATエントリは、00000000h、00000010h、00000020h、00000030h・・・として示されるように、FATエントリに対応するクラスタ番号の値が1桁ごとにインクリメントされる行と、各行が示すクラスタ番号の値に対して足し合わせる最下位桁の値である、+00h〜+0Fhが示される列とのマトリクスにより配列されている。例えば、00000000hの行と+07hの列が交差する位置のFATエントリは、クラスタ番号00000007hに対応する。
FATファイルシステムにおいては、クラスタ番号00000000h、00000001hで表される先頭クラスタとこれに続く2番目のクラスタの2クラスタは予約領域(RSV)となる。これに応じて、クラスタ番号00000000h、00000001hに対応する各FATエントリも予約領域として規定されている。
そして、上記FATエントリに格納する値として、現クラスタの次にチェインするクラスタ番号は、00000002h〜0FFFFFF6hで表すこととしている。また、EOF(該当クラスタを含むファイルにおける最終クラスタ(ファイルの終端クラスタ))については、EOF=0FFFFFFFhにより表すこととしている。また、図6(e)においては、未使用クラスタであることを「−」で示しているが、例えば実際には00000000hの値により表すこととしている。
ファイルAにアクセスするためには、先ず、図6(a)に示すファイルAのディレクトリエントリにアクセスすることになるが、このファイルAのディレクトリエントリそのものに対するアクセスは例えば次のようにして行われる。
ファイルアクセスのコマンドが絶対パスによるものである場合を例に挙げると、ファイルAのディレクトリエントリに対するアクセスのためには、先ず、ルートディレクトリにアクセスし、ここからパスに従ってディレクトリエントリをたどっていくようにされる。また、ディレクトリエントリを辿っていく過程において、或るカレントディレクトリのサブディレクトリを辿ることになる場合があるが、周知のようにして、親ディレクトリと子ディレクトリの親子関係についても、ディレクトリエントリにより表現される。このためには、例えば親ディレクトリ側のディレクトリエントリには、名称として子ディレクトリを示すものを設けておき、この親ディレクトリ側のディレクトリエントリにより示される子ディレクトリのディレクトリエントリには、親ディレクトリが存在することを示す情報を名称の領域に格納したディレクトリエントリを設けるようにされる。これにより、親から子、及び子から親の両方向に対してディレクトリを辿っていくことができる。
そして、上記のようにしてパスに従ってディレクトリエントリをたどる結果、アクセス先として、最終的にはファイルAのディレクトリエントリに到達することになる。
ファイルAのディレクトリエントリへのアクセスが行われると、続いては、このファイルAのディレクトリエントリを起点として、ファイルAそのものへのアクセスが行われることになる。
ファイルAそのものへのアクセスとしては、概念的には次のようなものとなる。
ファイルAにアクセスするためには、ファイルAのディレクトリエントリにおける先頭(開始)クラスタ番号を取得する。この先頭クラスタ番号は、データ領域においてファイルAのデータが記憶される開始クラスタ番号を示しており、この場合には、図6(a)に示すようにして00000007hとなっている。つまり、この段階で、ファイルAの開始クラスタ番号が00000007hであることが認識される。
そこで、ファイルシステムは、図6(e)に示すFAT領域において、クラスタ番号00000007hに対応するFATエントリにアクセスして、このFATエントリに格納される値を参照する。この場合、クラスタ番号00000007hに対応するFATエントリには、00000008hを格納している。これにより、ファイルシステムは、ファイルAのデータは、クラスタ番号00000007hのクラスタのデータに続けて、クラスタ番号00000008hのクラスタのデータが連結されていることを認識する。そこで、次にクラスタ番号00000008hに対応するFATエントリにアクセスして参照すると、ここには、00000009hが格納されているので、ファイルAのデータは、さらにクラスタ番号00000008hのクラスタのデータに続けて、クラスタ番号00000009hのクラスタのデータを連結することが認識される。そこでまた、クラスタ番号00000009hのFATエントリを参照すると、ここにはEOFを示す値が格納されているので、ファイルAは、クラスタ番号00000009hのクラスタが終端であることが認識される。
このことから、ファイルAは、図6(f)のクラスタチェインに示すようにして、クラスタ番号00000007h-00000008h-00000009hの順によるクラスタのデータの連結により形成されることが認識されることになる。ファイルシステムは、クラスタ番号00000007h-00000008h-00000009hのクラスタにアクセスしていくようにされ、これにより、ファイルAに対するアクセスが行われることになる。
上記説明から分かるように、データ領域に記憶されるファイルのデータの位置は、ディレクトリエントリに格納される先頭クラスタ番号と、この先頭クラスタ番号を起点として参照するFAT領域のFATエントリの内容によって示されており、これらの情報を参照することで、ファイルへのアクセスが可能となっている。
また、データ領域に記憶されるファイルについての、ツリー型ディレクトリ構造による管理は、ディレクトリエントリにより表現されているものであることも分かる。
そして、残るファイルB,C,Dの記憶位置については、上記ディレクトリエントリ及びFAT領域から成るファイル管理情報により、次のようにして管理されている。
先ず、ファイルBについては、図6(b)のディレクトリエントリに示すようにして、ファイルの先頭(開始)クラスタのクラスタ番号が0000000Ahであることが示されている。そこで、図6(e)に示すFAT領域のクラスタ番号0000000Ahに対応するFATエントリを参照すると、次のクラスタを示すチェイン情報としてクラスタ番号0000001Fhが示されている。そこで、さらにFATエントリを辿って、クラスタ番号0000001Fhに対応するFATエントリを参照すると、チェイン情報としてクラスタ番号00000025hが格納されている。クラスタ番号00000025hに対応するFATエントリには、クラスタ番号00000031hが格納されている。クラスタ番号00000031hに対応するFATエントリにはクラスタ番号00000030hが格納されている。クラスタ番号00000030hに対応するFATエントリにはEOFであることを示す値が格納されている。
このようにして、ファイルBは、ディレクトリエントリ及びFAT領域により、図6(g)に示すようにして、クラスタ番号0000000Ah-0000001Fh-00000025h-00000031h-00000030hの順に従ったクラスタに記憶されるデータの連結により形成されることが表現される。
また、ファイルCについては、図6(c)に示すようにして、先ず、ファイルCのディレクトリエントリにおいて、ファイルの先頭(開始)クラスタとしてクラスタ番号0000001Bhが示されている。このことに基づき、図6(e)に示すFAT領域におけるクラスタ番号0000001BのFATエントリを起点として参照した内容によっては、ファイルCは、図6(h)に示すように、クラスタ番号0000001Bh-00000011h-00000012h-00000013h-00000014h-00000003hの順に従ったクラスタに記憶されるデータの連結により形成される。
ファイルDについては、図6(d)に示すファイルDのディレクトリエントリにおいて、ファイルの先頭(開始)クラスタとしてクラスタ番号0000002Chが示されている。これに基づいて、図6(e)に示すFAT領域におけるクラスタ番号0000002CのFATエントリを起点として参照した内容としては、ファイルDは、図6(i)に示すように、クラスタ番号0000002Ch-0000002Dh-0000002Eh-0000002Fh-00000038h-00000039h-0000003Ah-0000003Bhの順に従ったクラスタに記憶されるデータの連結により形成される。
これまでに説明したFATファイルシステムのフォーマット内容をふまえて、先ず、本発明に至った背景について説明しておく。
これまでの説明によれば、本実施の形態のデジタルビデオカメラ1は、撮像により得られた動画、静止画の映像データや音声データを、例えばHDDとされるメディア(記憶媒体)に記録可能とされている。また、HDDに記録されるデータは、ファイルシステムを採用することによりファイル単位で管理されるようになっており、本実施の形態では、ファイルシステムとして、FATファイルシステムを採用することとしている。
そこで、本実施の形態のデジタルビデオカメラ1によりHDDに動画ファイルを記録する場合において、HDDの記憶領域をクラスタ単位の連続としてみた場合の記録データの書き込み状態例を図7に示す。
この図において、FATファイルシステムの制御によりHDDに記録すべき1つの動画ファイルのデータは、要求応答書込データの連結として形成されるものとして示されている。ここで示される要求応答書込データは、下記のようなものとなる。
ここで、デジタルビデオカメラ1が撮像記録する動画ファイルの形式は、例えばMPEG2あるいはMPEG4などのMPEG方式に準拠したものとする。これに応じて、デジタルビデオカメラ1は、図1の構成との対応では、例えばビデオ信号処理部4において、入力されるビデオ、オーディオ信号について、MPEG方式に対応する圧縮符号化処理を実行可能な構成部分を有するようにされる。また、ここでは、このようにして圧縮符号化処理により生成されるデータを、一時蓄積するバッファ(例えばリングバッファ形式を採る)を備えることとしている。
ビデオ信号処理部4においては、圧縮符号化処理を進行させていくのに応じて、圧縮符号化されたデータを蓄積させていくことになる。そして、例えばCPU10が図2に対応するシステムのプログラムを実行して実現されるアプリケーション100の機能としては、このバッファにおけるデータの蓄積量が一定以上になったとすると、或るまとまったサイズのデータをバッファから読み出して、この読み出したデータをHDDに書き込んで記録させるための要求(データ書込要求)をファイルシステム101に対して行う。図7に示される要求応答書込データは、このようにして、一回のデータ書込要求に応じてHDDに記録すべきとしてアプリケーション100からファイルシステム101に渡されるデータのまとまり(単位)をいうものである。
ファイルシステム101では、アプリケーション100からのデータ書込要求ごとに応答したタイミングで、要求と共に渡される要求応答書込データを、先の図2の説明に従って、デバイスドライバ102を制御するようにしてHDD(メディア)に書き込んで記録していく。そして、ファイル終端の要求応答書込データまでの書き込みの終了を以て、1つの動画ファイルについてのHDDへの書き込みが完了する。
また、この場合の要求応答書込データは、MPEG方式により圧縮符号化されたデータであることから、図9の上段に示すようにして、1以上のGOP(Group Of Picture)を連結したものとして形成される。周知のようにして、GOPは少なくとも1枚のIピクチャといわれる1枚のフレーム画像として完結した画像データを含むと共に、画像内容などに応じて、必要なBピクチャ、Pピクチャのデータを含んで形成されるもので、再生時における復号処理が完結して行われるための最小のデータ単位としての意義を持つ。また、GOPのサイズは、符号化した画像の内容などに応じて異なってくる。従って、要求応答書込データも固定長ではなく可変長の単位データとなる。また、要求応答書込データは、例えばアプリケーション100の階層レベルにて扱われるデータであり、この点で、ファイルシステムが管理するクラスタ(単位領域)のサイズとの整合などは特に考慮されているものではない。確認のために述べておくと、クラスタは、例えばセクタのサイズなどに応じた所定の固定長として規定される。
このようにして、要求応答書込データが可変長であり、かつ、クラスタのサイズには特に関係性が無いことで、要求応答書込データのサイズがクラスタのサイズ以上である場合には、要求応答書込データサイズは、必ずしもクラスタサイズの整数倍にはならない、ということになる。
上記したことをふまえて図7に示される動画ファイルの記録結果例について説明する。先ず、最初の要求応答書込データ1については、動画ファイルの先頭であることから、クラスタの先頭位置から書き込みを行うようにされる(もちろん、ファイルの先頭であっても、クラスタの途中から書込を開始するようなデータ書込制御が行われてもよいものである)。そして、この要求応答書込データ1は、全部で4つのクラスタを使用して書き込みが行われ、最後の4つ目のクラスタについては、その終了位置がクラスタの中途に在る状態の書き込み結果となっている。
次の要求応答書込データ2は、要求応答書込データ1の終了位置に続けて書き込みを開始するようにされる。つまり、要求応答書込データは、あくまでもひとつのファイルを形成するデータ部分であることから、前の要求応答書込データの終了位置がクラスタの途中であるときには、その後の要求応答書込データについては、別のクラスタの先頭から書き込みを開始させるようなことはせずに、前の要求応答書込データの終了位置に続けてクラスタ内を詰めていくようにして書き込みを開始させるものである。なお、この場合においては、要求応答書込データ2の終了位置は、クラスタの終端と一致するようにして記録が行われた状態となっている。以降、このような要領で、順次、データ書込要求が行われるごとに、クラスタを詰めていくようにして要求応答書込データの書き込みが実行されていく。なお、確認のためにのべておくと、図7に示されるクラスタの配列は、先に説明したクラスタチェインにより論理的に連結されているものである。
上記説明から理解されるように、メディア(HDD)に記録される動画ファイルを要求応答書込データのレベルでみた場合においては、FATファイルシステムとの関係では、要求応答書込データの境界は、必ずしも、クラスタの境界とは一致するものではない。
そして、1つの要求応答書込データのサイズが1クラスタのサイズ以上である場合には、要求応答書込データが書き込まれるクラスタの使用結果として、図7の要求応答書込データ1、2、N、Xの例と、図8に示されるようにして、パターン1〜4として示す4つのパターンがあることになる。
つまり、パターン1は、要求応答書込データの開始位置がクラスタの先頭となり、要求応答書込データの終了位置がクラスタの途中となるパターンである。
また、パターン2は、要求応答書込データの開始位置がクラスタの途中となり、要求応答書込データの終了位置がクラスタの終端となるパターンである。
また、パターン3は、要求応答書込データの開始位置がクラスタの途中となり、要求応答書込データの終了位置もクラスタの途中となるパターンである。
また、パターン4は、要求応答書込データの開始位置がクラスタの先頭となり、要求応答書込データの終了位置はクラスタの終端となるパターンである。
そして、ファイルシステムが要求応答書込データの書き込みを制御するのにあたっては、上記クラスタの使用結果に関する4つのパターンに応じて、要求応答書込データをさらにファイルシステムのレベル階層に適合したデータ処理単位に細分化するようにされる。このデータ処理単位は、ここではファイルボディということにする。
このファイルボディは、先ず1つには、要求応答書込データの開始位置または終了位置がクラスタの途中となる場合において、このクラスタに格納される要求応答書込データのデータ部分から成るものとされる。また、もう1つは、同じ要求応答書込データのデータ部分のみが格納される1以上の連結されたクラスタがある場合に、これらのクラスタに格納される要求応答書込データのデータ部分とされる。ここでは、前者を1クラスタ未満となるデータ部分であることに由来して未満型ということにし、後者を、1以上のクラスタにデータが完全に埋め込まれる(格納される)ことに由来して完全埋込型ということにする。
例えば図7に示す要求応答書込データ1については、その開始位置がクラスタの開始位置と一致し、終了位置はクラスタの途中となっている。このために、要求応答書込データ1は、前方のファイルボディ(1)と後方のファイルボディ(2)の2つのファイルボディに分割されることになる。この場合には、ファイルボディ(1)が完全埋込型で、ファイルボディ(2)が未満型となる。なお、ファイルボディについての( )内の数は、要求応答書込データにおけるファイルボディの論理的な配列順を示す。
また、要求応答書込データ2については、その開始位置がクラスタの途中で、終了位置がクラスタの終端(クラスタ境界)と一致するので、未満型のファイルボディ(1)と、完全埋込型のファイルボディ(2)に分割される。
要求応答書込データ3については、要求応答書込データの開始位置と終了位置の何れもがクラスタの途中となっているので、未満型のファイルボディ(1)と、完全埋込型のファイルボディ(2)と、さらに未満型のファイルボディ(3)との3つのファイルボディに分割される。
要求応答書込データ4は、要求応答書込データの開始位置と終了位置の何れもがクラスタ境界に対応しているので、完全埋込型のファイルボディ(1)のみであることになる。
また、図10により、メディア(HDD)に静止画ファイルを記録する場合における、HDDの記憶領域をクラスタ単位でみた場合の記録データの書き込み状態例を示す。なお、この図に示される静止画ファイルはJPEG形式であることとしている。このことに応じては、例えば本実施の形態のデジタルビデオカメラ1のビデオ信号処理部4における静止画処理部分は、JPEG形式に対応した符号化、復号処理などが可能なようにして構成すべきことになる。
例えばJPEGなどの静止画ファイル自体としても、そのサイズは解像度や画像の内容などに応じて可変であり、また、ファイルシステム側のクラスタのサイズとの関係性も特に考慮されてはいない。また、撮像により得られた静止画ファイルに関しては、通常、1回のデータ書込要求により静止画ファイルとしての全てのデータをメディアに書き込むことが行われる。つまり、静止画ファイルにあっては、そのデータ全体が、1つの要求応答書込データとなる。
そして、或る静止画ファイルのサイズが、クラスタサイズの整数倍でないような場合には、図10に示すようにして、例えばファイルのデータ開始位置からはじまる完全埋込型のファイルボディ(1)と、これに続く未満型のファイルボディ(2)とに分割されることになる。
また、図示はしていないが、先の図7の説明に準じて、静止画ファイルのサイズが、クラスタサイズの整数倍であれば、その静止画ファイルは、1つの完全埋込型のファイルボディから成るということになる。
さらに、ファイルの開始位置を、クラスタの途中から記録することが可能なデータ書き込み制御としたのであれば、未満型のファイルボディ(1)と、これに続く完全埋込型のファイルボディ(2)に分割されるパターンと、未満型のファイルボディ(1)と、これに続く完全埋込型のファイルボディ(2)と、これに続く未満型のファイルボディに分割されるパターン(3)とが加わる。
そして、上記したような要求応答書込データを対象とするファイルボディの分割は、例えばFATファイルシステムにおいて図11に示すようなデータ書込制御を前提として行われていたものである。図11のフローチャートには、図7の要求応答書込データNとして例示されるパターン3となる要求応答書込データをメディアに書き込むときの制御手順例を示している。
例えば、ファイルシステムは、上位処理層のアプリケーションからのデータ書込要求を受けると、この要求と共に受け渡された新規の要求応答書込データのサイズなどと、これまでのデータ書込結果などに基づいて、この新規の要求応答書込データをメディアに書き込んだ結果として、パターン1〜パターン4のうちで、どのクラスタ使用結果のパターンとなるのかを判定する。そして、その判定結果がパターン3とされると、図11に示す手順を実行するようにされる。
先に説明したように、パターン3の要求応答書込データは、未満型のファイルボディ(1)、完全埋込型のファイルボディ(2)、及び未満型のファイルボディ(3)とに分割される。そこで先ず、図11のステップS101では、ファイルボディ(1)をメディアに書き込むための制御を実行する。そして、次のステップS102において、ステップS101によるファイルボディ(1)の書込結果が成功(OK)、失敗(NG)の何れであったのかについて判別する。例えばファイルシステムのデータ書込制御としては、下位のデバイスドライバを制御することになるのであるが、デバイスドライバでは、ファイルシステムから要求されるデータ書き込みに応じてメディアにデータ書き込みを実行した結果がOK、NGのいずれであったのかを返してくる。このステップS102としての判定処理は、このデバイスドライバから返されるデータ書き込み結果の情報に基づいて行うようにされる。なお、この点については、以降におけるデータ書き込み結果、あるいは管理情報(FAT、ディレクトリエントリ)の更新としてのデータ書き込み結果についてOK、NGの判別をする場合においても同様である。
このステップS102において、データ書き込み結果がNGであると判別されたのであれば、ステップS115に進むようにされる。ステップS115では、データ書き込みが失敗(NG)であったことを、例えば上位アプリケーションなどに通知するための処理を実行する。例えばアプリケーションは、ステップS115によりデータ書き込み失敗が通知されたのであれば、今回のファイルの記録を強制終了させる、あるいは、可能であればリライト(再度書き込みの試行)などの、所定のエラー対応処理を実行する。
なお、例えば、ステップS115による通知に応じたアプリケーションのエラー対応処理として、今回のファイルの記録を強制終了させるという処理を実行させることとした場合には、エラーメッセージなどとしてユーザに通知することが好ましい。特にエラーメッセージを出力することなく、単にこれまでの記録動作を強制終了させただけでは、ユーザが故障であると誤解したりするなど、余計な混乱を招く可能性があるからである。
エラーメッセージの出力態様としては、例えば表示によるものや音声によるものを考えることができるが、ここで、表示部7に対する表示によりエラーメッセージを出力する場合の態様例を図13に示しておく。
この図に示されるエラーメッセージとしては、表示部7の表示画面部7aに対して、「ドライブエラーが発生しました、電源を入れ直してください」という、ユーザ向けの表現を用いてエラーメッセージを表示させた例が示されている。
これに対してステップS102においてOKの書き込み結果が得られたのであれば、ステップS103に進んでファイルボディ(2)を書き込むための制御を実行し、次のステップS104により、ステップS103によるファイルボディ(2)の書き込み結果がOK、NGのいずれであるのかを判別する。
このステップS104の判別結果がOKである場合には、ステップS105に進んでファイルボディ(3)を書き込むための制御を実行するのであるが、NGの判別結果が得られた場合には、ステップS107以降のファイル管理情報(FAT、ディレクトリエントリ)を更新するための手順を実行する。なお、ステップS107以降の手順については後述する。
また、ステップS105によりファイルボディ(3)の書き込み制御を実行した後においても、ステップS106により、ステップS105によるファイルボディ(3)の書き込み結果がOKとNGの何れであるのかを判別するようにされる。
なお、この図では、ステップS106における判別結果がOKとNGのいずれの場合にも、ステップS107以降の管理情報更新の手順に進むこととなっているが、ステップS106の判別結果がOKである場合とNGである場合とで、ステップS107以降で更新するべき管理情報の内容は異なってくる。
ステップS107においては、これまでのファイルボディの書き込み結果に応じてFAT1の領域の内容を更新するためのデータ書き込み制御を実行する。先に図3により説明したように、FATファイルシステムが利用するファイル管理情報であるFATは、FAT1,FAT2のFAT領域を設けることとしている。このステップS107では、FAT1、FAT2のうち、FAT1を対象として更新を行うようにされる。そして、次のステップS107により、上記ステップS106によるFAT1の更新としてのデータ書き込み結果がOK,NGのいずれであるのかを判別して、OKであれば、ステップS109に進む。これに対して、NGであれば、ステップS115の書き込み失敗の通知を行う。
ステップS109では、FAT2を更新するためのデータ書き込み制御を実行する。そして、次のステップS110により、このデータ書き込み結果のOK,NGについての判別を行い、OKであれば、ステップS111に進み、NGであればmステップS115に進む。
ステップS111においては、FAT領域のテーブル情報と共にFATファイルシステムのファイル管理情報を成す、ディレクトリエントリを更新するためのデータ書き込み制御を実行し、次のステップS112により、その書き込み結果についての判別を行う。ステップS112にてOKの判別結果が得られたのであればステップS113に進むが、NGの判別結果が得られた場合にはステップS115に進む。
ステップS113では、これまでの手順を実行した結果として、ファイルボディ(1)(2)(3)の3つ全てのファイルボディのデータの書き込みが成功(OK)であったか否かについて判別する。そして、肯定の判別結果を得た場合には、ステップS114により、要求応答書込データの書き込みが成功(OK)であったことを上位アプリケーションに通知するようにされる。例えばこの通知を受けたアプリケーションでは、まだ記録すべきデータが残っているのであれば、そのデータをメディアに記録していくための制御を継続するようにされる。
ところで、ステップS107〜S111までによるファイル管理情報の更新処理を開始する場合としては、ステップS104にてNGの判定結果を得た場合と、ステップS106にてNGの判定結果を得た場合と、さらに同じステップS106にてOKの判定結果を得た場合との3つの場合があることになる。
先ず、ステップS104にてNGの判定結果を得た場合とは、ステップS101によるファイルボディ(1)の書き込みは成功したが、ステップS103によるファイルボディ(2)の書き込みは失敗した場合であることになる。そこで、ステップS107〜ステップS111のファイル管理情報の更新処理としては、ファイルボディ(1)の書き込み結果のみが反映されるようにして、ファイル管理情報の更新を行うようにされる。また、この場合に対応するステップS113の判定結果は否定となるので、ステップS115により要求応答書込データの書き込み失敗を通知することになる。
また、ステップS106にてNGの判定結果を得た場合というのは、ステップS101によるファイルボディ(1)の書き込みと、ステップS103によるファイルボディ(2)の書き込みは成功したが、ステップS105によるファイルボディ(3)の書き込みは失敗した場合であることになる。そこで、この場合のステップS107〜ステップS111としては、ファイルボディ(1)(2)までの書き込み結果が反映されるようにするためのファイル管理情報の更新が行われることになる。また、この場合も、ステップS113の判定結果は否定となって、ステップS115の書き込み失敗の通知を行う。
そして、ステップS106にてOKの判定結果が得られた場合には、ファイルボディ(1)(2)(3)の全てのファイルボディの書き込みが成功していることになるので、ステップS107〜ステップS111としては、ファイルボディ(1)(2)(3)までの書き込み結果が反映されるようにするためのファイル管理情報の更新を行う。この場合には、ステップS113では肯定の判別結果が得られるので、ステップS114による書き込み成功の通知を行う。
このような手順では、書き込みが成功したファイルボディについて、その書き込み結果が反映されるようにしてファイル管理情報を更新するようにされている、ということがいえる。この場合のファイルボディは、アプリケーションがファイルレベルで処理する書き込みデータ単位である要求応答書込データを、FATファイルシステムの書き込み制御に適合するようにして、クラスタを境界として区切るようにして形成された単位データである。従って、図11のようにして、ファイルボディの書き込みが成功する都度、ファイル管理情報を逐次更新していくという制御手順の構成とすれば、FATファイルシステムが管理するクラスタ単位により、書き込みが成功したデータを残すことなく管理可能な状態にしていくことができるわけであり、本来的には、それが順当、合理的であるということになる。
このような図11に示すデータ書き込み制御の手順は、例えば一般的なコンピュータシステムの下でFATファイルシステムを採用する場合においては、特に問題もなく、また、相応に有効なものではある。しかしながら、例えば本実施の形態のデジタルビデオカメラ1は、一般のコンピュータシステムとの比較では、例えばメディア(HDD)に記録するファイルのほとんどが動画としてのストリームデータの形式(より具体的には圧縮符号化形式)であり、また、可搬型でバッテリ駆動されるものであることから、不用意な操作などが原因で記録が不正に中断される事態を生じる可能性を排除することが難しいなど、特殊な事情を抱える。このようなことを考慮した場合、例えば図11に示したような要求応答書込データの書き込み制御手順では、次のような不都合を生じることになる。
ここでも、MPEG方式により圧縮符号化された形式の動画ファイルを例に挙げる。
MPEG方式による動画ファイルは、先にも述べたように、GOP(Group Of Picture)単位のシーケンス(連続)により形成されるものとなる
これに応じて、要求応答書込データの構造としても、図9の記録データとして示したように、GOPのシーケンスにより形成されるものとなる。つまり、動画ファイルを記録するときには、ファイルシステムの上位のアプリケーションは、ビデオ信号処理部4における圧縮符号化処理によってGOP単位の記録データが形成される都度、バッファに書き込んで蓄積していくようにしており、その蓄積状態として、GOP単位のシーケンスとしてのデータのまとまりが一定以上のサイズとなったときに、このひとまとまりのGOP単位のシーケンスによるデータを要求応答書込データとして読み出してファイルシステムに渡すようにされる。
このようにして、要求応答書込データは或る数のGOPの連続から成るデータとされるのであるが、従って、先にも説明したように、要求応答書込データは可変長で、クラスタのサイズとの関連性も特に無いということが分かる。
また、このことは、要求応答書込データを形成するGOPの境界と、メディア上に形成されるクラスタの境界とは必ずしも一致しないということであり、従って、GOPは、クラスタの境界により分割される状態になる、ということも示している。この点について、図9を参照して確認してみる。
図9の例では、クラスタ1の先頭から要求応答書込データの書き込みが開始されていることから、要求応答書込データの書き込み開始位置は、クラスタ1の先頭に対応するクラスタ境界Cdv0と一致しているが、要求応答書込データ内におけるクラスタ境界Cdv1は、要求応答書込データにおけるGOPの途中に位置している。つまり、この位置においては、クラスタ境界とGOPの境界とは不一致である。また、クラスタ境界Cdv2はGOPの境界と一致した場合が示されているが、クラスタM+1の終端が対応するクラスタ境界Cdv3もGOPの途中に位置する。そして、この場合の要求応答書込データの終端は、クラスタ境界Cdv3が開始位置となるクラスタM+1の途中位置にあるようにして書き込みが行われるものとなる。
つまり、図7の場合には、要求応答書込データはパターン1のクラスタとの関係を有した上で、ファイルボディ(1)とファイルボディ(2)の境界に対応するクラスタ境界(Cdv3)の位置にて、GOPが分割される状態となっているものである。
ここで、上記図9に示されるパターン1の要求応答書込データを、先に図11により説明した手順に従ってメディアに記録していくとする。なお、図11は、パターン3とされて3つのファイルボディに分割された要求応答書込データを記録する場合の手順とされていたが、今回は、パターン1とされてファイルボディは2つとなるので、実際には、図11からステップS105及びステップS106を省略した手順により要求応答書込データの記録を行うことになる。
そして、図11に準じた手順により図9の要求応答書込データを記録していったときにおいて、例えば、ファイルボディ(1)の書き込みは成功したのであるが、続くファイルボディ(2)の書き込みに失敗したとする。この場合、図11の手順によっては、ステップS107以降の処理により、ファイルボディ(1)の書き込み結果が正常に反映されるようにして、ファイル管理情報(FAT1、FAT2、及びディレクトリエントリ)の更新が行われることになる。そのうえで、例えば書き込み失敗の通知が行われ、例えばデジタルビデオカメラ1のリセットなどが行われることになる。
そして、例えば上記のようにしてデジタルビデオカメラ1のリセットが行われた後に、最後に記録した動画ファイルを再生しようとしたとする。すると、このときには、最後に記録された動画ファイルは、FATファイルシステムによっては、図9のクラスタ境界Cdv3まで記録されているものとして管理されていることになる。つまり、ファイルの終端クラスタはクラスタM+1であるものとしてFATファイルシステムにより管理されている。
この最後の動画ファイルの再生にあたり、ファイルシステムは、動画ファイルの再生要求に応じて、クラスタレベルでの読み出しを実行してデータをアプリケーションに渡し、アプリケーションでは、受け渡されたデータをファイルレベルで処理して再生出力させることになる。そして、このときには、例えばアプリケーションは、ファイルシステムから受け渡されたクラスタレベルのデータを、GOP単位のデータのシーケンスとして扱い、ビデオ信号処理部4によりMPEGのフォーマットに準じた復号処理を実行させることになる。
しかしながら、この場合の動画ファイルのデータは、上記のようにして、図9のクラスタ境界Cdv3まで埋め込まれて記録されているものとして管理されているので、実際においては、この動画ファイルの終端位置は、或るGOPの途中位置となっている。
このようにしてGOPが正常に完結していないMPEG形式の圧縮符号化データについて復号処理を実行して再生出力しようとした場合には、再生エラーとなる可能性が高い。先にも説明したように、GOPは、双方向予測による復号処理のための最小単位であるために、例えばGOPにおける前半のデータのみが存在していても、後半のデータが消失していると、前半のデータが復調のために利用するデータも消失している場合があり、この場合には、正常な復調処理ができなくなる。つまり、GOPとしてのデータ単位は、途中位置にて分離された場合においては、その分離されたデータ部分のみでは意味を成さないものであり、本来は、このようにして分離された一方のデータ部分のみが独立して存在すべきものではない、ということがいえる。
そして、正常な復調処理が実行できない場合には再生エラーとなることがあり、これにより、システムが異常な動作に陥る、あるいは動作の異常停止(フリーズ)などの不都合を生じることがあり、例えば機器の信頼性を低下させるおそれがある。
ちなみに、このような不都合は、動画ファイルのみではなく、例えば図10などに示したような静止画ファイルについても生じ得るものである。この図に示される静止画ファイルはJPEG形式とされているが、ここでは1つのJPEG形式のファイルを形成するデータ単位が、動画ファイルのGOPに相当するとみることができる。すると、図10の例では、1つの静止画ファイルとしてのJPEG形式により圧縮符号化されたデータが、パターン1としてメディアに記録される結果を示していることになる。この場合において、例えばファイルボディ(1)のみの書き込みが成功して、ファイルボディ(2)の書き込みが失敗したとすれば、その後に再生を行おうとしたときに、ファイルボディ(2)のデータを復号処理に利用できないことで再生エラーが生じる可能性がある。
そこで、本実施の形態としては、上記したような再生エラーが回避されるようにして要求応答書込データを記録するための手順を、次のようにして提案する。
図12のフローチャートは、本実施の形態としての要求応答書込データ記録のための手順例を示している。なお、この図においても、図11と同様にして、例示されるパターン3となる要求応答書込データ(図7の要求応答書込データN)をメディアに書き込むときの制御手順例を示している。
図12においては、先ず、図11のステップS101と同様にして、ステップS201によりファイルボディ(1)をメディアに書き込むための制御を実行する。そして、次のステップS202により、上記ステップS201によるファイルボディ(1)の書込結果が成功(OK)と失敗(NG)の何れであったのかについて判別し、NGとの結果が得られたのであれば、ステップS214に進み、図11のステップS115と同様にして今回の要求応答書込データの書き込みが失敗したことをアプリケーションに通知するようにされる。
一方、ステップS202により、ファイルボディ(1)の書き込み結果がOKであるとの判別結果が得られた場合には、ステップS203に進んでファイルボディ(2)の書き込み制御を実行し、続くステップS204により、ファイルボディ(2)の書き込み結果についての判別を行う。ステップS204において書き込み結果はNGであるとの判別結果が得られたのであればステップS214に進むが、OKの判別結果が得られたのであればステップS205に進み、ファイルボディ(3)の書き込み制御を実行する。そして、ステップS206において、ファイルボディ(3)についての書き込み結果がNGであるとの判別結果が得られたのであればステップS214に進むが、OKの判別結果が得られたのであればステップS207〜S212によるファイル管理情報(FAT1,2、及びディレクトリエントリ)を更新するための手順を実行する。なお、ステップS207〜S212までの手順は、図11のステップS107〜S112と同様となる。ただし、図12の手順においては、ステップS207に至ったということは、ファイルボディ(1)(2)(3)の全ての書き込みが成功しているということになるので、図11のステップS113の手順は省略される。
上記図12に示した手順によると、例えばパターン3の要求応答書込データをメディアに記録するのにあたり、ファイルボディ(1)(2)(3)を書き込んでいく段階において、1つでも書き込み結果がNGとなった場合には、直ちにステップS214としての要求応答書込データ書き込み失敗を通知する手順に移行することとしている。つまり、例えばファイルボディ(1)の書き込みが成功して、ファイルボディ(2)の書き込みが失敗したとすれば、ファイルボディ(1)の新規記録を反映したファイル管理情報の更新処理を実行することなく、書き込み失敗通知に移行するものである。換言すれば、本実施の形態においては、要求応答書込データの記録手順として、その要求応答書込データを形成するファイルボディの書き込みが全て成功した場合においてのみ、ファイル管理情報の更新を行うようにされる。つまり、要求応答書込データを成すデータの書き込みが完全に成功した場合においてのみ、その書き込み結果に応じたファイル管理情報の更新を実行するようにされる。なお、ファイルボディが2つとなる要求応答書込データの場合には、図12においてステップS205,S206の手順を省略すればよい。
上記図12に示す手順とすることで、本実施の形態としては、1つの要求応答書込データの記録にあたり、その要求応答書込データを形成する全てのファイルボディの書き込みが成功した場合には、その要求応答書込データがメディアに記憶されているものとして管理されることとなる一方、ファイルボディの書き込みが一度でも失敗したのであれば、その要求応答書込データはメディアには記録されていないものとして管理されることになる。このことは、本実施の形態では、メディアに記録される動画ファイルのデータは、常に要求応答書込データを最小単位とする構造で、そのファイル終端位置も、要求応答書込データの終端位置と一致した状態が維持されるということになる。そして、図9との対応であれば、動画ファイルは、常に正常なGOPの連結により形成されることが保証される。これに対して、図11の手順により記録を行った場合には、ファイルとしての全データの書き込みが完了した場合には、要求応答書込データを最小単位とする構造で、そのファイル終端位置も、要求応答書込データの終端位置と一致した状態とすることができるが、要求応答書込データの途中で失敗(2つ目以降のファイルボディ書き込みが失敗)した場合には、最後のデータ部分は、要求応答書込データ未満となってしまう。そして、このことは、図9との対応では、先にも説明したように、ファイルの終端が、GOPの途中となってしまう状態となり得るものである。
このようにして、本実施の形態では、動画ファイルを例にとれば、ファイルのデータの書き込みが最後まで成功した場合と、途中で失敗したときとに関わらず、GOPの単位が連続するようにして完結したファイルの構造とすることが保証される。これにより本実施の形態としては、再生エラーとなってしまう可能性のあるファイルが無駄に記録されてしまうことが防止される。
なお、例えば図10に示したような静止画ファイルに関しては、データの書き込みが途中で失敗すれば、そのファイル自体がメディアに記録されなかったものとしてファイルシステム上で管理されることになる。つまり、この場合においては、書き込みが失敗したファイルについては存在しないものとすることで再生エラーが回避されることになる。
先の説明のようにして、ファイルの記録について、ファイルシステムにより管理することを前提とすると、例えばその管理単位であるクラスタごとに記録結果を更新していく(図11の手順である)ことが順当であるが、この手順では、動画ファイルや静止画ファイル(特に圧縮符号化された形式のもの)では、ファイルとして再生に必要なデータ部分が欠落して再生エラーとなる可能性が高い。
そこで、本実施の形態としては、クラスタ単位にまで細分化して有効なデータを残そうとしなくとも、動画ファイルであれば、最後に正常に記録された最小再生単位(GOP)のデータまでを残すことのできる手順をとればよい、という考えかたをとり、静止画ファイルであれば、ファイルが存在する、あるいは存在しないのいずれかの結果が最終的に得られるような手順とすればよい、という考え方をとろうとしたものである。このような考え方に立脚して、本実施の形態では、図12に示すようにして、要求応答書込データを形成する全ファイルボディの書き込みが成功しない限りはファイル管理情報を更新しない、という概念に基づいた手順を構成した。
また、図12に示されるような手順によりデータの書き込みが行われるということは、ファイルボディとファイル管理情報(FAT1,2、ディレクトリエントリ)は同時的にメディアに書き込まれるのではなく、処理時間の経過に応じて順次的に書き込まれていくということでもある。
このようにして、データと管理情報とが時系列に従って順次的に書き込まれる場合において、書き換え途中のときに電源が遮断されるなどの障害が発生して処理が中断されたとすると、例えば実際にメディアに記録されたデータの内容と、ファイル管理情報の管理内容との間に何らかの不整合が生じる可能性がでてくる。このような不整合によっては、例えば、実際にメディアに記録された有効な記録データのサイズと、ファイルシステムが管理する記録データのサイズとが相違したり、また、場合によっては正常にファイルにアクセスできなくなるなどの不都合を招くことになる。このために、例えば上記のような不整合が発生した場合に対応して、整合のとれた状態に復帰できるようにすることが好ましい。
そこで、以降においては、図12により説明した本実施の形態の要求応答書込データの書込手順によりメディアへのファイルの記録を実行する場合に応じた、記録データ管理の整合性復帰のための構成について説明する。
先ず、図14により、図12に示した要求応答書込データ(ファイルボディ)、及びファイル管理情報(FAT1,FAT2、ディレクトリエントリ)の書き込み制御手順を、時間軸に従って模式的に示す。
この図に示すようにして、図12に示した書き込み制御手順によっては、時間経過に従って、ファイルボディ(1)、ファイルボディ(2)、ファイルボディ(3)、FAT1、FAT2、ディレクトリエントリ、の順でメディアへの書き込みが行われることになる。すると、このような書き込み手順のシーケンスは、図示するようにして、tm0〜tm6までの7つの処理タイミングにより区分できるものとして考えることができる。
処理タイミングtm0は、1つの要求応答書込データの書き込みを開始する前のタイミング、つまり、要求応答書込データとして最初にファイルボディ(1)の書き込みを開始する前のタイミングである。
処理タイミングtm1は、ファイルボディ(1)の書き込みが終了し、ファイルボディ(2)の書き込みが開始される前のタイミングである。
処理タイミングtm2は、ファイルボディ(2)の書き込みが終了し、ファイルボディ(3)の書き込みが開始される前のタイミングである。
処理タイミングtm3は、ファイルボディ(3)の書き込みが終了し、ファイル管理情報として最初に書き込むべきFAT1の書き込みが開始される前のタイミングである。
処理タイミングtm4は、FAT1の書き込みが終了し、FAT2の書き込みが開始される前のタイミングである。
処理タイミングtm5は、FAT2の書き込みが終了し、ディレクトリエントリの書き込みが開始される前のタイミングである。
処理タイミングtm6は、ディレクトリエントリの書き込み、つまり1要求応答書込データの書き込み終了したタイミングである。
上記図14のようにして1要求応答書込データ書き込みにおける処理タイミングを設定した上で、本実施の形態では、図15に示される内容のバックアップ情報を用意し、このバックアップ情報を、例えば不揮発性メモリ12aなどの電源供給が遮断されても、その記憶内容が消去されない記憶領域(記憶デバイス)に記憶させるようにする。
先ず、図15(a)には、バックアップ情報の構造例が示されている。
この図に示すバックアップ情報としては、処理タイミング(進捗情報)、開始クラスタ番号、終了クラスタ番号、ディレクトリエントリ格納セクタ、及びこのディレクトリエントリ格納セクタが実際に書き込まれるべきメディア上のLBAから成るものとしている。なお、本実施の形態では、このバックアップ情報における上記ディレクトリエントリ格納セクタと、これに対応するLBAの情報とをまとめて、「ディレクトリエントリ関連バックアップ情報(ファイル管理関連情報)」ともいうことにする。
先ず、この場合の処理タイミング領域のサイズは2バイトとされ、この処理タイミング領域に対して格納する値は、例えば図15(b)に示されるようにして、処理タイミングtm0〜tm6ごとに応じて定義されている。この場合には、
tm0=0x10
tm1=0x21
tm2=0x22
tm3=0x23
tm4=0x30
tm5=0x40
tm6=0x00
であるとして定義している。この領域に格納される処理タイミングは、実際に要求応答書込データを書き込み制御のシーケンスを実行しているときに逐次更新される。なお、ここで示される処理タイミングtm0〜tm6に対応する値は、あくまでも一例であってほかにも考えられるものである。
開始クラスタ番号の領域には、今回書き込むべき要求応答書込データの開始位置を含むメディア上のクラスタの番号(アドレス)が格納される。終了クラスタ番号の領域には、今回書き込むべき要求応答書込データの終了位置を含むメディア上のクラスタの番号が格納される。ここで、要求応答書込データは、連続した番号のクラスタに書き込まれることとすれば、開始クラスタ番号と終了クラスタ番号(単位領域使用情報)によっては、今回書き込むべき要求応答書込データの書き込みに使用するクラスタを表現していることになる。
ディレクトリエントリ格納セクタには、有効なデータとして、今回の要求応答書込データの書き込みを完了(成功)した結果となった場合に対応した更新内容を有するディレクトリエントリのデータが格納される。そして、このディレクトリエントリのデータを、1セクタのサイズに格納したものが、ここでのディレクトリエントリ格納セクタとなる。なお、ここでは1セクタは512バイトであることとしており、これに応じてディレクトリエントリ格納セクタも512バイトのサイズを有するものとされている。
図5に示したようにディレクトリエントリは32バイトとされているが、メディアから書き込み/読み出しが行われるデータの最小単位は、デバイスドライバの層が対応するセクタ単位となる。この場合において、セクタが512バイトであるとすると、32バイトのディレクトリエントリは、セクタサイズに余裕で収まる。従って、ディレクトリエントリの書き込み時には、この1セクタのサイズにディレクトリエントリのデータを埋め込んで、このセクタ単位のデータをメディアに書き込むようにし、読み出し時には、ディレクトリエントリのデータを埋め込んだセクタをメディアから読み出して、この読み出したセクタから、ディレクトリエントリのデータを抜き出すようにされる。
このことに対応して、本実施の形態では、バックアップ情報に対してディレクトリエントリのデータを格納するのにあたり、このディレクトリエントリをメディアに記録するときの1セクタ分のデータを格納することとしている。これにより、後述するようにして、ファイル管理の整合性復帰のためにバックアップ情報のディレクトリエントリをメディアに書き込む必要のあるときには、バックアップ情報からディレクトリエントリを読み出すときに1セクタのサイズにより読み出しを行い、例えばデバイスドライバにそのまま渡すことができる。換言すれば、例えばバックアップ情報から32バイトのサイズのディレクトリエントリの情報を読み出した後に、例えばファイルシステムが、セクタにディレクトリエントリのデータを埋め込むような処理を実行する必要がない。このようにして、本実施の形態としては、バックアップ情報のディレクトリエントリの書き込みなどに関して、ファイルシステム、デバイスドライバ間でのデータの受け渡しが効率的なものとなって、例えば処理負担の軽減が図られるように配慮している。
また、同じバックアップ情報に格納されるLBAは、上記ディレクトリエントリ格納セクタが実際に記録されるべきメディア上の位置を示すようにされる。
続いては、図16のフローチャートにより、1つの要求応答書込データの書き込みを開始するときの準備処理としての手順について説明する。つまり、実際において、アプリケーションからのデータ書込要求に応じて図12に示した手順により1つの要求応答書込データの書き込みを実行するときには、その開始に先立って、図16に示す手順が、ファイルシステムにより実行されるものである。
例えばファイルシステムは、例えばアプリケーションからのデータ書き込み要求を受けると、先ず、ステップS310により、このデータ書き込み要求に応じて書き込むべき要求応答書込データを全て記録可能なだけの空き領域(クラスタ単位の領域となる)を検索し、次のステップS302により、空き領域が存在するか否かについて判別する。この処理のためには、現段階における最新のファイル管理情報の内容を参照すればよく、より具体的には、今回書き込むべき要求応答書込データのサイズを格納可能なだけの数の未使用クラスタが残っているかどうかを、FATに登録されている未使用クラスタを示すFATエントリを検索して判定するようにされる。
ステップS302において、今回の要求応答書込データを書き込み可能なだけの空き領域が存在しないことが判別された場合には、例えばステップS308に進んで、アプリケーションに対して今回書き込むべき要求応答書込データのための空き領域が無いことを通知する。この通知を受けたアプリケーションは、例えば、動画ファイルの記録中だったのであれば、これまでの記録動作を停止させると共に、空き容量がなくなって記録動作を停止させたことをユーザに通知するためのメッセージを所定の態様により出力する。また、静止画ファイルの記録を行おうとしていた場合には、この静止画ファイルの記録を実行しないようにするとともに、上記と同じようにして、ファイルを記録できるだけの容量が不足している状態にあることを通知するメッセージを出力するようにされる。
これに対して、ステップS302において空き領域が存在するとして、ステップS302にて肯定の判別結果が得られた場合には、ステップS303〜S307までにより、要求応答書込データを書き込むにあたっての準備処理を実行する。
準備処理として、先ず、ステップS303においては、今回の要求応答書込データをメディアに書き込むときの書き込み開始位置として、その開始位置を含むクラスタを決定する。この決定は、クラスタ番号により行う。つまり、ここでは、要求応答書込データを書き込むためのメディア上の先頭クラスタ番号を決定する。また、次のステップS304により、今回の要求応答書込データの書き込み終了位置を含む終了クラスタ番号を決定する。この場合において、少なくとも要求応答書込データごとの書き込みはクラスタ番号が連続した記憶領域を使用することとすれば、今回の要求応答書込データのクラスタ内における書き込み開始位置と、この要求応答書込データのサイズと、クラスタサイズとに基づいて、開始クラスタ番号を必要数インクリメントしていくことで、終了クラスタ番号を特定できる。
また、次のステップS305においては、今回の要求応答書込データの書き込みが完了(成功)したとする場合に応じたディレクトリエントリの内容を形成する情報項目の内容を取得する。
ディレクトリエントリを構成する情報は、先に図5に示したとおりであり、従ってステップS305においては、ディレクトリエントリを形成する情報である、名称、拡張子、属性、作成時刻、作成日付、最終アクセス日付、先頭クラスタ番号、記録時刻、記録日付、サイズの情報を生成することになる。ただし、これらの情報項目のうち、名称、拡張子、属性、作成時刻、作成日付、及び先頭クラスタ番号については、ファイルのデータの記録途中において特に変化する情報ではないので、記録対象のファイルにおける最初の要求応答書込データを記録するときのステップS305により取得して保持しておきさえすれば、後のステップS305においては特に取得し直す必要はない。また、最終アクセス日付、記録時刻、記録日付などの情報項目も、ファイルが最初に記録されたときには、作成時刻、作成日付と同じでよいことから、これも、最初のステップS305により取得したものを、以降において利用すればよい。これに対して、サイズの情報項目については、メディアに要求応答書込データを書き込むごとに、そのサイズに応じて増加させた値を生成して取得する必要があることになる。そして、このようにして生成した情報項目を利用してディレクトリエントリを生成するようにされる。なお、ここでのディレクトリエントリとしては、バックアップ情報に対して格納することに対応して、32バイトのディレクトリエントリの実体のデータを1セクタ分の512バイトのサイズに埋め込むようにした、セクタ単位のデータとして生成されるものとする。
次のステップS306においては、ステップS303により決定した開始クラスタ番号と、ステップS304により決定した終了クラスタ番号と、ステップS305により生成したディレクトリエントリを含む1セクタのデータと、このディレクトリエントリを含むセクタに対応するLBAの情報を、バックアップ情報に格納するようにされる。なお、このバックアップ情報は本実施の形態では不揮発性メモリ12aに記憶されるものとしているので、ステップS305としは、不揮発性メモリ12aにアクセスして上記した情報を、バックアップ情報におけるしかるべき位置に書き込む処理を実行することになる。
そして、ステップS306としてのバックアップ情報に対する所定の情報項目の格納の手順が終了したとされると、ステップS307により、今回のデータ書き込み要求に応じた要求応答書込データの書き込み手順を開始するようにされる。
図17のフローチャートは、上記図16のステップS307により開始される、要求応答書込データの書き込み手順を示している。なお、この手順としても、例えばファイルシステムが実行するものとしてみることができる。また、この図においては、図12の場合と同様にパターン3の構造の要求応答書込データを書き込む場合を示している。また、実際においては、図12に示しているように、ファイルボディ(1)(2)(3)、FAT1、FAT2、及びディレクトリエントリの書き込みを実行するごとにその書き込み結果がOKであるかNGであるかの判定を行うのであるが、ここでは、このような書き込み結果の判定手順を省略し、ファイルボディ(1)(2)(3)、FAT1、FAT2、及びディレクトリエントリが正常に書き込まれることを前提とした場合の手順を示している。
この図に示す手順としては、要求応答書込データを書き込んでいくのあたり、先に図14に示した処理タイミングtm0〜tm6を、実際の処理経過に応じて、バックアップ情報に反映させていくものとなる。
つまり、先ずステップS401により、不揮発性メモリ12aのバックアップ情報の処理タイミング領域に対して、tm0を示す値(0x10)を格納したうえで、次のステップS402によりファイルボディ(1)の書き込み制御を実行する。そして、このステップS402の手順を終了したとされると、バックアップ情報の処理タイミング領域に格納する値を、上記ステップS401により格納されたtm0(0x10)から、tm1(0x21)に書き換え、ステップS404によりファイルボディ(2)の書き込み制御を行う。
ファイルシステムは、ファイルボディ(2)の書き込みが終了すると、ステップS405によりバックアップ情報の処理タイミング領域について、tm1(0x21)からtm2(0x22)に書き換え、ステップS406によりファイルボディ(3)の書き込み制御を実行する。
ファイルボディ(3)の書き込みが終了したのであれば、次のステップS407により、バックアップ情報の処理タイミング領域について、tm2(0x22)からtm3(0x23)に書き換え、ステップS408によりFAT1の書き込み制御を実行する。
FAT1の書き込みが終了すると、ステップS409により、バックアップ情報の処理タイミング領域について、tm3(0x23)からtm4(0x30)に書き換え、ステップS410によりFAT2の書き込み制御を実行する。FAT2の書き込みが終了すると、ステップS411によりバックアップ情報の処理タイミング領域について、tm4(0x30)からtm5(0x40)に書き換え、ステップS412によりディレクトリエントリの書き込み制御を実行する。
上記ステップS412によるディレクトリエントリの書き込みが終了(成功)したことで、今回の要求応答書込データの書き込みは正常に完了したことになるが、これに応じて、ステップS413により、バックアップ情報の処理タイミング領域については、tm5(0x40)からtm6(0x00)に書き換える。また、不揮発性メモリ12aのバックアップ情報から開始クラスタ番号、終了クラスタ番号、及びディレクトリエントリ関連バックアップ情報の内容を削除する。このステップS413により得られるバックアップ情報の内容は、要求応答書込データの書き込み開始前に対応した初期値を格納したものとなる。
上記図17に示した要求応答書込データの書き込み手順によっては、ファイルボディ(1)(2)(3)、FAT1、FAT2、ディレクトリエントリの書き込みが進行していくごとに、処理タイミング領域に格納する内容が変化していくことになる。このことから、処理タイミング領域に格納される値は、例えば図12のフローチャートや図14に示される本実施の形態の要求応答書込データの書き込み手順の段階についての進捗状況を示しているということになる。そして、例えば電源が不意に遮断されるなどの原因でデータ記録が中途終了してしまったような場合を考えてみると、このようなときの不揮発性メモリ12aにおけるバックアップ情報の処理タイミング領域の内容としては、最後の要求応答書込データの書き込みシーケンスにおいて、どの段階まで正常に終了しているのかが示されていることになる。つまり、例えば電源の起動時において、不揮発性メモリ12aに記憶されている処理タイミング領域を参照すれば、最後に記録された要求応答書込データが正常に書き込みを完了しているのか、あるいは中途で不正終了しているのかが判定できると共に、不正終了している場合には、要求応答書込データの書き込みシーケンスにおいて、どこまでの段階が正常に終了しているのかを特定できるということになる。
続いて、図18のフローチャートにより、ファイル管理の整合性復帰のために、本実施の形態のファイルシステムが実行するとされる手順例について説明する。
この図に示す処理は、例えば、デジタルビデオカメラ1のメイン電源がオンとなって、メディア(HDD)のマウント処理を実行する必要が生じたときに先立って行われるべきものとなる。また、この図に示す処理は、ファイルシステムが実行するものとしてみることができる。また、この図に示す手順としても、
この図においては、先ずステップS501により、不揮発性メモリ12aのバックアップ情報にアクセスして読み出しを行い、このバックアップ情報における処理タイミング領域に格納されている値(処理タイミング)を参照する。そして、次のステップS502により、その参照した値が処理タイミングtm0〜tm6のいずれを示しているのかを判別する。
ステップS502により判別した値が処理タイミングtm0に対応するものであった場合には、ステップS503の手順に進む。
処理タイミングtm0は、図14に示すように、要求応答書込データの書き込みを開始する前の段階を示している。つまり、ステップS502にて判別された値が処理タイミングtm0であった場合は、最後のデータ書込要求に応じた要求応答書込データの書き込みシーケンスは失敗であり、その結果としては、要求応答書込データ書き込みシーケンスの最初の段階のファイルボディ(1)の書き込みを開始しようとする前のタイミングでデータ書込処理が中途終了した場合となる。
この場合には、最後のデータ書き込み要求に応じた要求応答書込データは、メディアには全く記録されていないが、この最後の1つ前のデータ書き込み要求に応じた要求応答書込データの書き込みシーケンスは、正常に完了していることになる。この場合、最後の要求応答書込データとしての実体は、全く書き込まれていないので、この要求応答書込データが正常に記録された状態のファイル管理内容を得るのは不可能である。
そこで、ステップS503としては、不揮発性メモリ12aに保持されるバックアップ情報の処理タイミング領域について初期値のtm0とする以外は、特に処理を実行することなく、この図に示す手順を抜ける。これにより、最後の1つ前のデータ書き込み要求に応じた要求応答書込データまでが正常に管理されるようにして、ファイル管理の整合性が維持されることになる。
また、ステップS502において、処理タイミングtm1を示すことが判別された場合としては、最後の要求応答書込データの書き込みシーケンスは失敗であり、その結果としては、ファイルボディ(1)までの書き込みのみが正常終了しており、次のファイルボディ(2)については全く書き込まれていない、あるいはその中途までしか書き込まれていない状態とされて、ファイルボディ(2)以降のデータの正常な記録結果は保証されていない、ということになる。この場合には、ステップS504の手順に進む。
上記のようにしてファイルボディ(1)のみが正常に書き込まれた結果となった場合にも、残る書き込み単位データの実体であるファイルボディ(2)(3)は、この時点では存在していないので、この要求応答書込データが正常に記録された状態のファイル管理内容を得るのは不可能である。
そこで、ステップS504としては、上記ステップS503と同様にして、バックアップ情報の処理タイミング領域について初期値のtm0として、その内容を初期化する処理のみを実行する。
また、ステップS502において、処理タイミングtm2を示すことが判別された場合としては、最後の要求応答書込データの書き込みシーケンスが失敗になった結果として、ファイルボディ(1)(2)までの書き込みのみが正常終了しており、ファイルボディ(3)以降のデータの正常な書込結果は保証されていないことになる。この場合においても、残る要求応答書込データの実体であるファイルボディ(3)は現時点で存在していないので、この要求応答書込データが正常に記録された状態のファイル管理内容は得られない。そこで、この場合においても、ステップS505により、上記ステップS503、S504と同様にして、バックアップ情報の処理タイミング領域について初期値のtm0を示す値を格納して初期化する処理のみを実行する。
また、ステップS502において、処理タイミングtm3を示すことが判別された場合としては、最後の要求応答書込データの書き込みシーケンスが失敗になった結果として、ファイルボディ(1)(2)(3)までの書き込みは正常に終了しているが、以降のFAT1,FAT2,及びディレクトリエントリのデータの正常な書き込みは保証されていない状態であるということになる。
この結果は、最後の要求応答書込データの実体(ファイルボディ(1)(2)(3))についてはメディアに書き込まれているが、ファイル管理情報によっては、その書き込み結果が反映されていない、ファイル管理内容に関して不整合が生じている状態に相当する。しかしながら、このようにして、最後の要求応答書込データの実体がメディアに記録されている状態であれば、この最後の要求応答書込データについて、バックアップ情報を利用してファイルシステム上で正常に記録済みとされたものとして管理されるようにすることができる。つまり、整合性の復帰をはかることができる。このために、ステップS506としての手順を実行する。
ステップS506においては、先のステップS501に応じて読み込んだとされるバックアップ情報の開始クラスタ番号と、終了クラスタ番号を参照し、先ず、FAT1について、この開始クラスタ番号から終了クラスタ番号に至るまでのクラスタについてのクラスタチェインが形成されるようにして、FATエントリの編集を行う。バックアップ情報の開始クラスタ番号と終了クラスタ番号は、それぞれ、最後の要求応答書込データが書き込まれたクラスタ群における最初のクラスタと最後のクラスタの各クラスタ番号を示しているから、上記のようにしてFATエントリの編集を行ったことで、FAT1においては、最後の要求応答書込データが、メディア上に記録されているものとして管理されることになる。また、FAT領域としては、FAT1とともにFAT2も存在するので、このFAT2についてもFAT1と同様の編集を行う。
なお、この場合におけるFATエントリの編集は、最後の要求応答書込データが書き込まれる開始クラスタ番号と、終了クラスタ番号のみに基づいて行われ、これら開始クラスタ番号と終了クラスタ番号の間のクラスタ番号の情報は存在しないことから、最後の要求応答書込データの書き込みに使用するクラスタは、クラスタ番号が連続していることが前提になる。しかしながら、現実においては、単位書込要求データ程度のサイズのデータは、連続するクラスタ番号の領域(物理的にも連続した領域となる)に記録されることがほとんどである。従って、このようなFATエントリの編集であっても、実用上は問題を生じない。もし、単位書込要求データが、クラスタ番号の連続した領域に記録されずに離散的に記録された場合にも対応しようとすれば、開始クラスタ番号と終了クラスタ番号に加えて、使用したクラスタ同士の連結を示す情報もバックアップ情報に格納することとすればよい。
そしてステップS506における次の手順として、バックアップ情報におけるディレクトリエントリ関連バックアップ情報(ディレクトリエントリ格納セクタとLBA)を利用して、最後の要求応答書込データが書き込み完了した結果に応じた内容のディレクトリエントリをメディアに書き込んで記録するための制御処理を実行する。
このためには、バックアップ情報のLBAを参照する。このLBAは、最後の要求応答書込データをデータとして含んで形成されるファイルのディレクトリエントリが記録されているメディア上の位置(セクタ)を示している。そして、ファイルシステムは、デバイスドライバに対する制御を行って、例えばこのLBAが示すセクタに対して、バックアップ情報に格納していたディレクトリエントリ格納セクタのデータを書き込むための制御を行うようにされる。ディレクトリエントリ格納セクタにおいて格納されるディレクトリエントリは、最後の要求応答書込データの書き込みが成功を以て完了した場合に対応する内容を有している。
ステップS506として、上記の処理が実行されることで、ファイル管理情報としては、最後の要求応答書込データの書き込み結果が反映された内容を有するようにして更新されたことになる。つまり、ステップS506の処理が実行される以前は、最後の要求応答書込データの実データはメディアに書き込まれているが、ファイル管理情報によってはその書き込み結果が反映されていない不整合の状態から、最後の要求応答書込データの書き込み結果が反映された状態となるようにして、整合性の復帰が図られたものである。
上記のようにしてファイル管理の整合性の復帰を図ったうえで、ステップS506としては、先のステップS503,S504,S505と同様にして、バックアップ情報の処理タイミング領域についてtm0を示す値を書き込んで初期化をしておくようにされる。
また、ステップS502により、処理タイミングtm4を示すことが判別された場合は、最後の要求応答書込データの書き込みシーケンスが失敗になった結果として、ファイルボディ(1)(2)(3)の書き込みが完了し、ファイル管理情報については、FAT1のみの書き込みが完了しているが、残るFAT2,及びディレクトリエントリのデータの書き込みは保証されていない状態であることになる。
この場合には、ステップS502の判定結果が処理タイミングtm2とされた場合と同様に、最後の要求応答書込データの実データの書き込みが完了しているので、この書き込み結果が反映されるようにして整合性の復帰を図ることが可能であることになる。そして、この場合の整合性復帰のための処理としては、ステップS507の手順を実行する。
この場合においては、最後の要求応答書込データの実データだけではなく、ファイル管理情報におけるFAT1も、最後の要求応答書込データの書き込み結果が反映された内容により、メディアに正常に記録されている。従って、この場合には、FAT1については、特に編集を行う必要性はない。また、FAT2の編集についても、FAT2が、FAT1のコピー内容を有するものであるとして規定されていれば、FAT2の編集は、FAT1の内容をFAT2に対してコピーする処理により行えばよいということになる。つまり、ステップS506のようにして、バックアップ情報の開始クラスタ番号、終了クラスタ番号を参照してFATエントリを編集する必要性は特にないものであり、それだけ軽く、効率の良い処理とすることができるものである。
また、ステップS507においては、整合性復帰のための処理として、さらに、最後の要求応答書込データの書き込み結果が反映された内容のディレクトリエントリをメディアに記録する処理も実行する。この処理については、ステップS506の場合と同様にして、バックアップ情報におけるディレクトリエントリ関連バックアップ情報(ディレクトリエントリ格納セクタのデータと、LBA)を利用して行う。そして、この場合にも、バックアップ情報の処理タイミング領域を初期化するためにtm0を示す値を格納しておくようにされる。
また、ステップS502により、処理タイミングtm5を示すことが判別された場合は、最後の要求応答書込データの書き込みシーケンスが失敗になった結果として、ファイルボディ(1)(2)(3)の書き込みが完了し、ファイル管理情報については、FAT1、FAT2の書き込みが完了しているが、残るディレクトリエントリのデータの正常な書き込みは保証されていない状態であることになる。
この場合には、整合性復帰のための処理としてステップS508の手順を実行するようにされる。先ず、この場合においては、ファイル管理情報としてFAT1,FAT2の記録が完了しているので、ステップS508として必要な整合性復帰の処理としては、FAT領域の編集は省略して、最後の要求応答書込データの書き込み結果が反映されたディレクトリエントリをメディアに記録すればよいことになる。そして、バックアップ情報の処理タイミング領域にtm0を示す値を格納して初期化を行っておくようにもされる。
また、ステップS502により、処理タイミングtm6を示すことが判別された場合は、最後の要求応答書込データにおける最初のファイルボディ(1)の書き込みから最後のディレクトリエントリの書き込みまでが正常に終了していることになる。つまり、最後の要求応答書込データの書き込みシーケンスは成功しており、すでに最後の要求応答書込データの書き込み結果が適正に反映された状態でファイル管理が為されている。そこで、この場合には、特に整合性復帰の処理を実行することなく、このまま図18の処理を抜けるようにされる。
なお、この図18に示す整合性復帰の手順を終了した後に、例えばメディアをマウントするなどの処理が実行され、例えば図2に示したようなアーキテクチャによるファイル操作、データ処理が可能になる。
続いては、ファイル管理の整合性復帰のための処理手順の変形例について説明していくこととする。
上記図18に示した整合性復帰のための手順は、可能な限りは最後の要求応答書込データを有効に管理できるように復帰させようとするものであるが、これとは別に、最後の要求応答書込データの書き込みシーケンスが失敗しているのであれば、この最後の要求応答書込データについて復帰させることは一切行わず、はじめから無かったものとして扱うようにしてしまおうとする、より単純な考え方を採ることも本願発明においては有効である。このような考え方に立脚した場合にも、最後に記録していたファイルは、最後の要求応答書込データより以前に記録された要求応答書込データ群から成るものとして適正に管理されることになる。また、このような考えかたに基づいたアルゴリズムとした場合には、例えば図18の場合よりも単純なものとなって、処理負担が軽減されるなどの利点が得られる可能性もある。
そこで、図19により、最後の要求応答書込データの書き込みシーケンスが失敗した場合には、この最後の要求応答書込データについては無かったものとして管理するための整合性復帰の手順例について説明する。
この図においては、先ず、ステップS601、S602により、先の図18のステップS501、S502と同様にして、バックアップ情報の処理タイミング領域に格納している値を参照し、この値が、処理タイミングtm0〜tm6までのいずれを示しているのかを判別する。
そして、ステップS602の判別結果として、処理タイミングtm0、tm1、tm2、tm3、tm4であることが判別された場合に応じた整合性復帰のための手順ステップS603、S604、S605、S606としては、何れも、バックアップ情報の処理タイミング領域にtm0を格納して初期化する処理のみを実行することとしている。図18との比較では、処理タイミングtm3であることが判別された場合において、図18のようにしてファイル管理情報の操作を行うことをしていないことが分かる。つまり、図19の場合には、最後の要求応答書込データの実データが完全にメディアに書き込まれているとしても、特に管理情報の操作を行うことなく、記録されていないものとして管理されるようにしている。
また、ステップS602の判別結果として、処理タイミングtm4であることが判別された場合には、ステップS607の整合性復帰の処理として、FAT2の内容をFAT1にコピーしたうえで、バックアップ情報の処理タイミング領域を初期化するようにされる。
処理タイミングtm4とされる場合、最後の要求応答書込データの実データの書き込みと、FAT1の書き込みまでが正常終了していることになる。従って、FAT1は、最後の要求応答書込データの書き込み結果が反映された内容を有している。その一方で、FAT2は、最後の要求応答書込データの書き込み結果が反映される以前の内容、つまり最後の前の要求応答書込データまでの書き込み結果が反映された内容を有している。そこで、上記ステップS607のようにして、FAT2の内容をFAT1にコピーすれば、FAT1,FAT2は、いずれも、最後の前の要求応答書込データまでの書き込み結果が反映されており、最後の要求応答書込データについては記録されていないものとして管理する内容で一致することになる。
また、この場合においては、最後にメディアに記録したファイルのディレクトリエントリは、最後の前の要求応答書込データまでの書き込み結果を反映した内容のままであることから、特にディレクトリエントリについての操作をステップS607により行う必要はない。
また、ステップS602の判別結果として、処理タイミングtm5であることが判別された場合には、ステップS608としての整合性復帰の処理を行う。
処理タイミングがtm5である場合には、最後の要求応答書込データの書き込みシーケンスとして、要求応答書込データの実データの記録が終了し、ファイル管理情報におけるFAT1、FAT2までが更新されているが、ディレクトリエントリについては更新されていない状態である。
このような記録結果の状態の下で、最後の要求応答書込データについては記録が行われなかったものとして管理するためには、FAT1,FAT2について更新前の状態に戻す必要がある。このために、ステップS608においては、FAT1,FAT2について、バックアップ情報を参照して得た開始クラスタ番号から終了クラスタ番号までのクラスタ番号に対応するFATエントリについて未使用を示す値が格納されるように書き換えを行う。これにより、FAT1,FAT2の内容としては、最後の要求応答書込データは存在しないことを示すことになる。
また、この場合においても、最後にメディアに記録したファイルのディレクトリエントリは、最後の前の要求応答書込データまでの書き込み結果を反映した内容のままなので、ディレクトリエントリについての操作を行う必要はない。
また、ステップS602により、処理タイミングtm6を示すことが判別された場合には、最後の要求応答書込データの書き込みシーケンスは正常に終了(成功)して下り、正常に管理されていることになるので、特に整合性復帰の処理を実行することなく、このまま図19の処理を抜ける。
なお、これまでに説明した図19の手順により整合性の復帰を図るのにあたっては、バックアップ情報におけるディレクトリエントリ関連バックアップ情報は利用していない。従って、この図19の手順を採用する構成とした場合には、バックアップ情報についてディレクトリエントリ関連バックアップ情報を省略した構成とすることができる。
続いて、ファイル管理の整合性復帰のための処理手順についての、他の変形例について説明する。
先ず、この他の変形例に対応しては、バックアップ情報について、図20に示す構造のものを採用することとする。
この図に示すバックアップ情報において、処理タイミング、開始クラスタ番号、終了クラスタ番号、ディレクトリエントリ格納セクタ、及びディレクトリエントリ格納セクタのLBAまでの領域は、図15と同様となる。そのうえで、この場合には、ファイルボディ(3)の開始LBA、ファイルボディ(3)のサイズ、及びファイルボディ(3)の実データ(書き込みデータ)を格納する領域が追加される。
ファイルボディ(3)の開始LBA(データ部分書込位置情報)は、例えば2バイト程度のサイズとされ、最後の要求応答書込データがパターン3の構造である場合を前提にしたとして、この最後の要求応答書込データを形成するファイルボディのうち、最後のファイルボディ(3)の開始位置を書き込むべきメディア上のLBAを示す。
また、ファイルボディ(3)のサイズも2バイト程度の領域が割り当てられ、実際におけるファイルボディ(3)のデータサイズを示す。
ファイルボディ(3)の書き込みデータの領域には、最後の要求応答書込データにおけるファイルボディ(3)としての実データと同一内容のデータ(補完用実データ)を格納する。要求応答書込データのサイズは可変であり、これを形成するファイルボディのサイズも可変となる。従って、このバックアップ情報に格納されるファイルボディ(3)の書き込みデータの領域も、そのサイズは可変となる。この領域のサイズが、上記ファイルボディ(3)のサイズにより示されることになる。例えばファイルシステムなどがバックアップ情報からファイルボディ(3)の書き込みデータを読み出す場合には、上記ファイルボディ(3)のサイズの情報を利用して、適正に読み出しを実行するようにされる。
なお、以降の説明においては、ファイルボディ(3)の開始LBA、ファイルボディ(3)のサイズ、ファイルボディ(3)の書き込みデータをまとめてファイルボディ関連バックアップ情報ということにする。
図21は、上記図20のバックアップ情報の構造に対応した要求応答書込データ(パターン3の構造)の書き込み手順例を示している。
図21に示す手順は、基本的には、図17に示した手順と同じになる。そこで、ここでは、図17と同様となる事柄に関しての説明は省略し、主に相違点についての説明を行うこととする。
図21におけるステップS705は、図17のステップS405と同様に、ファイルボディ(2)の書き込みが終了した次のタイミングで行うものとされるが、バックアップ情報の処理タイミング領域に対してtm2を示す値を格納することに加えて、同じバックアップ情報に対して、ファイルボディ関連バックアップ情報(ファイルボディ(3)の開始LBA、ファイルボディ(3)のサイズ、ファイルボディ(3)の書き込みデータ)を格納するという処理を実行する。
このステップS705の段階は、例えばステップS704によりファイルボディ(2)のメディアへの書き込みを終了して、次のファイルボディ(3)の書き込みに移行する期間に対応するが、このタイミングにおいては、ファイルボディ(3)の書き込み開始位置としてのセクタアドレス(つまりLBAである)と、書き込みを行うべきファイルボディ(3)の実データのサイズなどの情報は、すでにファイルシステムにおいて把握している状態にあるのが通常である。
このために、ステップS705としては、上記のようにしてファイルシステムが把握している情報を用いて4バイトのファイルボディ(3)のLBA、及びファイルボディ(3)のサイズの情報を生成し、これをバックアップ情報における対応の各領域に格納するようにされる。また、ファイルボディ(3)の書き込みデータについては、実際にメディアに書き込むために用意しているファイルボディ(3)のデータを、バックアップ情報における対応の領域にコピーするようにして書き込んで保持させればよい。
また、ステップS706によるファイルボディ(3)の書き込みが完了した次のステップS707においては、例えば図17のステップS407と同様にしてバックアップ情報の処理タイミング領域にtm3を格納する処理を実行すると共に、ここではさらに、先のステップS705にてバックアップ情報に格納したファイルボディ関連バックアップ情報(ファイルボディ(3)の開始LBA、ファイルボディ(3)のサイズ、ファイルボディ(3)の書き込みデータ)を、そのバックアップ情報から削除するという処理を実行するようにされる。
次に図22により後述する処理から理解されることであるが、この場合のファイル管理の整合性復帰のための処理において、ファイルボディ関連バックアップ情報が必要になるのは、最後の要求応答書込データの書き込みシーケンスが失敗した場合として、バックアップ情報の処理タイミング領域に格納される値がtm3を示した場合のみとなる。そこで、このステップS706においては、ファイルボディ(3)の書き込みが完了したのに応じて、その関連情報をバックアップ情報から削除しているものである。これは、例えばバックアップ情報としてのサイズができるだけ小さくしようとするもので、これにより、不揮発性メモリ12aの容量を節約して使用できるなどの効果が得られるものである。
図22は、図20に示したバックアップ情報構造と、図21の要求応答書込データの書き込み処理に応じて実行されるべき、整合性復帰のための手順例を示している。
この図においても、先の図18のステップS501、S502などと同様に、先ず、ステップS801、S802により、バックアップ情報の処理タイミング領域に格納している値を参照し、この値が、処理タイミングtm0〜tm6までのいずれを示しているのかを判別し、その判別結果ごとに応じた処理を実行する。
ステップ802の判別結果に応じた処理として、処理タイミングtm0、tm1、tm3、tn4、tm5の何れかであると判別された場合のステップS803、S804、S806、S807、S808の処理内容は、図18のステップS503、S504、S506、S507、S508と同様であり、また、処理タイミングtm6であると判別された場合において特に復帰処理を実行しない点も、図18の場合と同様である。
ただし、ステップS802にて処理タイミングtm2であると判別された場合のステップS805の復帰処理としては、図18のステップS505とは異なる次のような手順を実行する。
先ず、ステップS803にて処理タイミングtm2であると判別された場合というのは、最後の要求応答書込データの書き込みシーケンスとして、ファイルボディ(1)(2)の書き込みまでが終了しており、ファイルボディ(3)とファイル管理情報については書き込みがされていない結果となった場合である。図18の場合においては、ファイルボディ(3)のデータがメディアに記録されていないことから、最後の要求応答書込データの実体が完全にメディアに記録された状態とすることは不可能となっていた。
これに対して、本変形例の場合においては、図20に示されるようにして、ファイルボディ(3)についての関連バックアップ情報を有する。既にメディアにはファイルボディ(1)(2)が記録されているので、バックアップ情報に格納されるファイルボディ(3)のデータをしかるべき位置に書き込めば、メディアにおいては、ファイルボディ(1)(2)(3)からなる要求応答書込データが完全に書き込まれたこととなる。このことから、バックアップ情報におけるファイルボディ(3)の書込データは、メディアに対して要求応答書込データを書き込むための補完に用いられるデータであるということがいえる。そこで、ステップS805としては、このファイルボディ関連バックアップ情報を利用して、実際にメディアに対してファイルボディ(3)を書き込むための制御を実行する。
つまり、ファイルシステムは、ファイルボディ関連バックアップ情報における開始LBAを、ファイルボディ(3)の書き込み開始位置として指定した上で、同じファイルボディ関連バックアップ情報としてバックアップ情報に格納されるファイルボディ(3)の書き込みデータを読み出して、このデータがメディアに対して書き込まれるように、デバイスドライバを制御するものである。ここまでの処理により、メディアにおいては、最後の要求応答書込データを形成するファイルボディ(1)(2)(3)の全てがメディア上のしかるべき位置に書き込まれた状態を得ることができる。そのうえで、ステップS805としては、ステップS806と同じ手順を実行するようにされる。これにより、ファイル管理情報としては、最後の要求応答書込データの書き込み結果が反映された内容を有することになる。
例えば、先の図18の手順としては、できる限り、最後の要求応答書込データの書き込みシーケンスが失敗した場合にも、この最後の要求応答書込データの書き込み結果が反映されたファイル管理が行われるように整合性を復帰させることを目的としている。しかしながら、図18の手順によっては、最後の要求応答書込データのシーケンスにおいて、実データ(ファイルボディ(1)(2)(3))の書き込みが全て完了した結果になっていなければ、最後の要求応答書込データが反映されたファイル管理状態に整合性を復帰させることはできない。
これに対して、図20〜図22により説明した変形例によっては、最後の要求応答書込データの書き込みシーケンスが失敗した場合において、ファイルボディ(1)(2)まで(最後のファイルボディより1つ前のファイルボディまで)の書き込みが終了している処理結果なのであれば、ファイルボディ(3)を書き込んだ上でファイル管理情報を更新することで、最後の要求応答書込データが反映されたファイル管理状態での整合性復帰が図られるようにされる。つまり、できる限り、最後の要求応答書込データの書き込み結果が反映されるようにして整合性復帰を図るという点では、この他の変形例のほうが有利であることになる。
ただし、実際においては、図18の手順も有効である。例えば図18の場合には、バックアップ情報においてファイルボディのような比較的大きなサイズのデータを格納するための処理は行わないことから、処理が単純で軽く、その分の処理の高速化も期待できる。また、不揮発性メモリ12aの記憶可能容量も抑えることができる。現状において、不揮発性メモリ12aとして採用されるフラッシュメモリなどの半導体メモリ素子は、例えばHDDなどと比較すれば未だビット単価が高く、コストなどの問題で大きな容量のものを実装することが難しい。従って、例えば図18と、この他の変形例の何れの手順を採用するのかについては、この機能を実装する機器に要求される各種の条件などを勘案して決定されるべきものである。
なお、上記図20〜図22により説明した変形例では、ファイルボディ(1)(2)を書き込んでいる段階で失敗した場合には、最後の要求応答書込データを復活させるような救済的な処理は行わず、最後の要求応答書込データについては記録されなかったものとして管理することとしている。しかしながら、バックアップ情報に対して、ファイルボディ(3)とともにファイルボディ(2)についてのバックアップ関連情報を格納することとすれば、ファイルボディ(2)の書き込み段階で失敗した結果となった場合にも、最後の要求応答書込データを復活させるようにして整合性を復帰させることが可能になる。同様に、ファイルボディ(3)(2)とともに、ファイルボディ(2)についてのバックアップ関連情報を格納することとすれば、ファイルボディ(1)の書き込み段階で失敗した場合にも、最後の要求応答書込データを復活可能となる。ただし、この場合には、ファイルボディ(3)の書き込みデータとともに、ファイルボディ(2)、さらにはファイルボディ(1)の書き込みデータもバックアップ情報に格納する必要があり、バックアップ情報のサイズも相当におおきくなり、例えば上記したような処理速度や不揮発性メモリ12aの記憶可能容量などを考慮する必要が出てくる場合があると考えられる。
また、これまでの説明にあっては、3つのファイルボディに分かれるパターン3の要求応答書込データを処理対象とした場合について説明してきている。このパターン3は、図7からもわかるように、要求応答書込データをファイルボディから成る構造としてみた場合において、最も複雑なパターンである。従って、これまでに説明した要求応答書込データの書き込み手順、及び整合性復帰のための手順などについては、要求応答書込データが2以下のファイルボディにより形成される場合(パターン1、パターン2,パターン4)についても、適用可能とされるものである。
また、実施の形態におけるファイル管理についてはFATファイルシステムを採用することとしているが、例えばHFS(Hierarchical File System)などをはじめとする他のファイルシステムに対応しても本発明は適用可能であり、ファイルシステムやファイル管理方式の規格に関しては特に限定されるべきものではない。また、本願発明の構成によりファイルが記憶されるメディアとしても、実施の形態において例に挙げているHDD以外のものとされてよい。
また、要求応答書込データ(書込要求データ)により形成されるファイルの形式は、実施の形態では、動画又は静止画などの画像ファイルであることとしている。特に圧縮符号化されたデータファイルの場合は、MPEG形式におけるGOPなどの最小復号単位の中途位置が、クラスタ境界に対応するような状態となるものであり、このことにより生じる不都合が本発明により回避されるという点で有効であることは先に述べたとおりである。しかしながら、これ以外のファイル形式で、例えば音声データのみで画像データを含まないような構造のファイル形式も対象とすることができるものであり、特に圧縮符号化がされた形式である場合には動画ファイルと同様に有効になる。また、画像音声以外の文書ファイルなどを対象とすることも本願発明としては妨げられるものではなく、そのファイルの構造などによっては、充分に有効になると考えられる。
また、本発明のデータ記録装置としても、実施の形態に挙げたデジタルスチルカメラに限定されるべきものではなく、例えば、デジタルスチルカメラ、テレビジョン放送番組の予約録画機器、さらにはパーソナルコンピュータをはじめ、これに準じた各種情報処理機器など、各種の記憶媒体に対応してデータ書き込み/読み出しなどのデータ処理が可能な機器であれば、本発明が適用できる。
本発明の実施の形態のデジタルビデオカメラの構成例を示すブロック図である。 FATファイルシステムのシステム構成を階層モデルにより示す図である。 FATファイルシステムにおけるメディアのフォーマット構造を示す図である。 FATファイルシステムにおけるMBRの構造を示す図である。 FATファイルシステムにおけるディレクトリエントリの構造を示す図である。 FATファイルシステムによるファイル記録位置の管理例を示す図である。 MPEGストリーム形式の動画ファイルをFATファイルシステムにより管理されるメディアに記録する場合の、記録データとセクタとの関係例を示す図である。 動画ファイルを形成する要求応答書込データがFATファイルシステムにより管理されるメディアに記録される場合のセクタとの対応関係のパターンごとの特徴を示した図である。 GOPの連結から成るものとされた1要求応答書込データが、FATファイルシステムにより管理されるメディアに記録される場合のセクタとの対応関係を示す図である。 1静止画ファイル(JPEG形式)としての1要求応答書込データが、FATファイルシステムにより管理されるメディアに記録される場合のセクタとの対応関係を示す図である。 FATファイルシステムを採用した場合における、1要求応答書込データをメディアに書き込むための手順例を示すフローチャートである。 本実施の形態における、1要求応答書込データをメディアに書き込むための手順例を示すフローチャートである。 本実施の形態において、要求応答書込データの書き込みに失敗した場合に応じて表示するエラーメッセージの態様例を示す図である。 要求応答書込データの書き込みシーケンスに対して処理タイミングtm0〜tm6を対応させたものを示す図である。 実施の形態におけるバックアップ情報の構造例を示す図である。 実施の形態において、要求応答書込データの書き込み前に実行される準備処理の手順例を示すフローチャートである。 バックアップ情報の処理を含めた要求応答書込データの書き込み手順例を示すフローチャートである。 図17の手順により得られる内容のバックアップ情報を利用した整合性復帰のための手順例を示すフローチャートである。 整合性復帰のための手順の変形例であり、図17の手順により得られる内容のバックアップ情報を利用した場合の他の例を示すフローチャートである。 整合性復帰処理についての他の変形例に対応するバックアップ情報の構造例を示す図である。 他の変形例に対応する、バックアップ情報の処理を含めた要求応答書込データの書き込み手順例を示すフローチャートである。 他の変形例に対応する整合性復帰のための手順例を示すフローチャートである。
符号の説明
1 デジタルビデオカメラ、2 光学系部、3 光電変換部、4 ビデオ信号処理部、5 画像入出力部、6 カメラ機能部、7 表示部、8 音声処理部、9 音声入出力部、10 CPU、11 ROM、12 RAM、12a 不揮発性メモリ、13 メディアコントローラ、15 操作入力部、16 通信部、100 アプリケーション、101 ファイルシステム、102 デバイスドライバ

Claims (11)

  1. 記憶媒体に記録すべきデータとして、1回のデータ書込要求ごとに応じて記憶媒体に書き込むべきデータの単位である要求応答書込データを取得する記録データ取得手段と、
    記憶媒体の記憶領域において連続的に形成した所定容量の単位領域にデータを書き込むようにして上記記憶媒体に対するデータ記録を実行するもので、1回のデータ書込要求に対応する要求応答書込データが、2以上の上記単位領域を使用して書き込まれ、かつ、その先頭及び/又は終端が上記単位領域における中途位置に書き込まれる場合には、上記中途位置を含む単位領域に対して格納すべき要求応答書込データ部分を書き込む部分書込処理と、上記中途位置を含まずに書込要求データを成すデータのみを格納する論理的に連続した1以上の単位領域に対して格納すべき要求応答書込データ部分を書き込む部分書込処理とを行うことにより、データ記録を実行するようにされたデータ記録手段と、
    ファイルのデータが記憶されるのと同じ上記記憶媒体に記憶され、上記単位領域によりファイルを形成するデータを管理するようにされた管理情報を利用して、ファイルの管理を行うファイル管理手段と、
    2以上の上記部分書込処理により上記要求応答書込データを上記記憶媒体に記録するときには、部分書込処理の完了ごとに応じたタイミングでの上記管理情報の更新処理を挿入させることなく、順次的な部分書込処理による要求応答書込データの記録を上記データ記録手段に実行させる記録制御手段と、
    上記順次的な部分書込処理による要求応答書込データの記録が完了した後のタイミングにおいて、これらの部分書込処理の全ての結果が反映されるようにして、上記ファイル管理手段に上記管理情報を更新させるファイル更新制御手段と、
    を備えることを特徴とするデータ記録装置。
  2. 上記記録データ取得手段は、
    上記要求応答書込データとして、1つの所定形式のファイルを形成するデータの全て又は一部であって、この形式のファイルを形成するものとして所定の意義を持つデータ単位が1以上連続して形成されるデータを取得するようにされている、
    ことを特徴とする請求項1に記載のデータ記録装置。
  3. 上記記録データ取得手段は、
    所定方式により圧縮符号化されたデータを有する形式のファイルの上記要求応答書込データを取得するものとされており、
    この要求応答書込データにおける上記所定の意義を持つデータ単位は、圧縮符号化に対する復号処理に必要な最小単位とされる、
    ことを特徴とする請求項2に記載のデータ記録装置。
  4. 上記記録制御手段の制御により実行される順次的な部分書込処理と、これに続くファイル更新制御手段によるファイル管理情報を更新する処理とを順次的に実行するシーケンス処理の進行に応じた進捗状況が示されるようにして、不揮発性の記憶手段に記憶される進捗情報の内容の書き換えを制御する進捗情報制御手段と、
    上記シーケンス処理の完了結果に応じた上記ファイル管理情報及び/又は要求応答書込データ部分に関連する所定の内容を有するバックアップ用情報を、上記シーケンス処理の進行に応じた所定のタイミングで不揮発性の記憶手段に対して書き込み、又は消去するための制御を実行するバックアップ用情報制御手段と、
    最後のデータ書込要求に応じた要求応答書込データの書き込みについての実際の結果に対応して、上記ファイル管理情報により適正に管理された状態が得られるようにするために、上記不揮発性の記憶手段に記憶されている進捗情報を参照し、この参照した進捗情報が示す進捗状況に基づいて、上記ファイル管理情報における所定の情報を変更するための制御、又は、必要に応じて上記不揮発性の記憶手段に記憶されている所定の上記バックアップ用情報を利用した記憶媒体への書き込み処理を制御する整合性復帰手段と、
    を備えることを特徴とする請求項1に記載のデータ記録装置。
  5. 上記整合性復帰手段は、
    参照した進捗情報が上記シーケンス処理の途中となる進捗状況を示している場合には、最後のデータ書込要求に応じて書き込むべきとされた要求応答書込データは記憶媒体に記憶されていないものとして管理されるように、所要の制御を実行する、
    ことを特徴とする請求項4に記載のデータ記録装置。
  6. 上記バックアップ用情報制御手段は、最後のデータ書込要求に応じた要求応答書込データを書き込むために使用する記憶媒体上の単位領域を示す単位領域使用情報を、バックアップ用情報として不揮発性の記憶手段に書き込むようにされ、
    上記整合性復帰手段は、
    参照した進捗情報が、最後のデータ書込要求に応じた要求応答書込データの書き込みに使用する単位領域をファイル管理情報に反映させる処理を完了した後のタイミングでの上記シーケンス処理の中途となる進捗状況を示している場合には、
    上記バックアップ用情報としての上記単位領域使用情報が示す単位領域が未使用として扱われるようにファイル管理情報を書き換える、
    ことを特徴とする請求項5に記載のデータ記録装置。
  7. 上記バックアップ用情報制御手段は、最後のデータ書込要求に応じた要求応答書込データの書き込みが正常に終了した結果が反映されたファイル管理情報に基づく所定内容のファイル管理関連情報を、バックアップ用情報として不揮発性の記憶手段に書き込むようにされ、
    上記整合性復帰手段は、
    参照した進捗情報が、最後のデータ書込要求に応じた要求応答書込データを形成する全ての要求応答書込データ部分の書き込みを完了したタイミングでの上記シーケンス処理の中途となる進捗状況を示している場合には、
    上記ファイル管理関連情報としてのバックアップ用情報を利用して、最後のデータ書込要求に応じた要求応答書込データが記憶媒体に記憶されているものとして適正に管理されるようにファイル管理情報を書き換える、
    ことを特徴とする請求項4に記載のデータ記録装置。
  8. 上記バックアップ用情報制御手段は、最後のデータ書込要求に応じた要求応答書込データの書き込みが正常に終了した結果が反映されたファイル管理情報に基づく所定内容のファイル管理関連情報と、最後のデータ書込要求に応じた要求応答書込データ部分のデータ内容を有する補完用実データと、この補完用実データとしての内容を有する要求応答書込データ部分が書き込まれるべき位置を示すデータ部分書込位置情報とを少なくともバックアップ用情報として不揮発性の記憶手段に書き込むようにされ、
    上記整合性復帰手段は、
    参照した進捗情報が、最後のデータ書込要求に応じた要求応答書込データを形成する全ての要求応答書込データ部分の書き込みを完了していないタイミングで、かつ、上記補完用実データとしての要求応答書込データ部分を併せて要求応答書込データが完成できるまでの要求応答書込データ部分についての記憶媒体への書き込みが終了しているタイミングでの上記シーケンス処理の中途となる進捗状況を示している場合には、
    上記バックアップ用情報における上記補完用実データを、上記データ部分書込位置情報が示す記憶媒体上の位置に書き込む制御を実行するとともに、バックアップ用情報におけるファイル管理関連情報を利用して、最後のデータ書込要求に応じた要求応答書込データが記憶媒体に記憶されているものとして適正に管理されるようにファイル管理情報を書き換える、
    ことを特徴とする請求項4に記載のデータ記録装置。
  9. 上記バックアップ用情報制御手段は、
    上記シーケンス処理において、所定の要求応答書込データ部分を書き込む前のタイミングにて、この所定の要求応答書込データ部分のデータ内容を有する補完用実データと、この所定の要求応答書込データ部分が書き込まれるべき位置を示すデータ部分書込位置情報を不揮発性の記憶手段に書き込むとともに、
    上記所定の要求応答書込データ部分の書き込みが終了したタイミングで、上記補完用実データと上記データ部分書込位置情報を上記不揮発性の記憶手段から消去する、
    ことを特徴とする請求項8に記載のデータ記録装置。
  10. 記憶媒体に記録すべきデータとして、1回のデータ書込要求ごとに応じて記憶媒体に書き込むべきデータの単位である要求応答書込データを取得する記録データ取得手順と、
    記憶媒体の記憶領域において連続的に形成した所定容量の単位領域にデータを書き込むようにして上記記憶媒体に対するデータ記録を実行するもので、1回のデータ書込要求に対応する要求応答書込データが、2以上の上記単位領域を使用して書き込まれ、かつ、その先頭及び/又は終端が上記単位領域における中途位置に書き込まれる場合には、上記中途位置を含む単位領域に対して格納すべき要求応答書込データ部分を書き込む部分書込処理と、上記中途位置を含まずに書込要求データを成すデータのみを格納する論理的に連続した1以上の単位領域に対して格納すべき要求応答書込データ部分を書き込む部分書込処理とを行うことにより、データ記録を実行するようにされたデータ記録手順と、
    ファイルのデータが記憶されるのと同じ上記記憶媒体に記憶され、上記単位領域によりファイルを形成するデータを管理するようにされた管理情報を利用して、ファイルの管理を行うファイル管理手順と、
    2以上の上記部分書込処理により上記要求応答書込データを上記記憶媒体に記録するときには、部分書込処理の完了ごとに応じたタイミングでの上記管理情報の更新処理を挿入させることなく、順次的な部分書込処理による要求応答書込データの記録が上記データ記録手順により実行されるように制御する記録制御手順と、
    上記順次的な部分書込処理による要求応答書込データの記録が完了した後のタイミングにおいて、これらの部分書込処理の全ての結果が反映されるようにして、上記ファイル管理手順により上記管理情報が更新されるように制御するファイル更新制御手順と、
    を備えることを特徴とするデータ記録方法。
  11. 記憶媒体に記録すべきデータとして、1回のデータ書込要求ごとに応じて記憶媒体に書き込むべきデータの単位である要求応答書込データを取得する記録データ取得手順と、
    記憶媒体の記憶領域において連続的に形成した所定容量の単位領域にデータを書き込むようにして上記記憶媒体に対するデータ記録を実行するもので、1回のデータ書込要求に対応する要求応答書込データが、2以上の上記単位領域を使用して書き込まれ、かつ、その先頭及び/又は終端が上記単位領域における中途位置に書き込まれる場合には、上記中途位置を含む単位領域に対して格納すべき要求応答書込データ部分を書き込む部分書込処理と、上記中途位置を含まずに書込要求データを成すデータのみを格納する論理的に連続した1以上の単位領域に対して格納すべき要求応答書込データ部分を書き込む部分書込処理とを行うことにより、データ記録を実行するようにされたデータ記録手順と、
    ファイルのデータが記憶されるのと同じ上記記憶媒体に記憶され、上記単位領域によりファイルを形成するデータを管理するようにされた管理情報を利用して、ファイルの管理を行うファイル管理手順と、
    2以上の上記部分書込処理により上記要求応答書込データを上記記憶媒体に記録するときには、部分書込処理の完了ごとに応じたタイミングでの上記管理情報の更新処理を挿入させることなく、順次的な部分書込処理による要求応答書込データの記録が上記データ記録手順により実行されるように制御する記録制御手順と、
    上記順次的な部分書込処理による要求応答書込データの記録が完了した後のタイミングにおいて、これらの部分書込処理の全ての結果が反映されるようにして、上記ファイル管理手順により上記管理情報が更新されるように制御するファイル更新制御手順と、
    をデータ記録装置に実行させるプログラム。
JP2006051684A 2006-02-28 2006-02-28 データ記録装置、データ記録方法、及びプログラム Expired - Fee Related JP4487954B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006051684A JP4487954B2 (ja) 2006-02-28 2006-02-28 データ記録装置、データ記録方法、及びプログラム
US11/711,881 US7664912B2 (en) 2006-02-28 2007-02-27 Data recording apparatus, data recording method, and program
CNB2007100800219A CN100501700C (zh) 2006-02-28 2007-02-28 数据记录装置、数据记录方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006051684A JP4487954B2 (ja) 2006-02-28 2006-02-28 データ記録装置、データ記録方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2007233512A true JP2007233512A (ja) 2007-09-13
JP4487954B2 JP4487954B2 (ja) 2010-06-23

Family

ID=38554073

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006051684A Expired - Fee Related JP4487954B2 (ja) 2006-02-28 2006-02-28 データ記録装置、データ記録方法、及びプログラム

Country Status (3)

Country Link
US (1) US7664912B2 (ja)
JP (1) JP4487954B2 (ja)
CN (1) CN100501700C (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4424364B2 (ja) * 2007-03-19 2010-03-03 ソニー株式会社 画像処理装置、画像処理方法
KR101434297B1 (ko) * 2007-09-11 2014-08-27 삼성전자주식회사 파일할당표를 이용한 파일 디바이드 및 머지 방법
JP5263169B2 (ja) * 2007-10-25 2013-08-14 富士通株式会社 情報提供方法、中継方法、情報保持装置、中継器
US8473707B2 (en) * 2008-03-27 2013-06-25 Open Invention Network, Llc Method for achieving sequential I/O performance from a random workload
JP4672788B2 (ja) * 2008-09-16 2011-04-20 株式会社東芝 映像データ処理システム、ビデオサーバ、ゲートウェイサーバ及び映像データ管理方法
WO2012123982A1 (ja) * 2011-03-11 2012-09-20 日立コンシューマエレクトロニクス株式会社 記録装置/方法/媒体、再生装置/方法
CN102841894A (zh) * 2011-06-22 2012-12-26 比亚迪股份有限公司 一种文件分配表的数据存储方法
MX2014009037A (es) * 2012-02-03 2014-10-14 Sony Corp Dispositivo de procesamiento de informacion, medio de grabacion de informacion y metodo de procesamiento de informacion, y programa.

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3656130A (en) * 1970-06-04 1972-04-11 Ncr Co Disc random access memory system
JP3906535B2 (ja) * 1997-11-07 2007-04-18 ソニー株式会社 ダウンロードシステム、及び記録媒体
US6778346B2 (en) * 2000-03-30 2004-08-17 Sony Corporation Recording and reproducing apparatus and file managing method using the same
US7082007B2 (en) * 2000-09-27 2006-07-25 Seagate Technology Llc Method to achieve higher track density by allowing only one-sided track encroachment
JP2005063047A (ja) 2003-08-08 2005-03-10 Sony Corp Fatファイルシステム書換方法および装置

Also Published As

Publication number Publication date
US20070279787A1 (en) 2007-12-06
CN100501700C (zh) 2009-06-17
US7664912B2 (en) 2010-02-16
CN101030169A (zh) 2007-09-05
JP4487954B2 (ja) 2010-06-23

Similar Documents

Publication Publication Date Title
JP4487954B2 (ja) データ記録装置、データ記録方法、及びプログラム
US6675276B2 (en) Method for providing extensible dos-fat system structures on one-time programmable media
JP5400875B2 (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム
US8977802B2 (en) Access device, information recording device, controller, real time information recording system, access method, and program
US8019800B2 (en) Access device, information recording device, information recording system, file management method, and program
KR20070045114A (ko) 정보 처리 장치와 정보 처리 방법, 및 컴퓨터 프로그램
US20070033364A1 (en) Information recording medium, information recording medium accessing apparatus and accessing method
KR20070089603A (ko) 정보 처리 장치 및 정보 처리 방법과 컴퓨터ㆍ프로그램
US9015444B2 (en) Access apparatus and available storage space calculation method
JPH06197308A (ja) 電子スチルカメラ
KR20190061549A (ko) 파일 시스템 및 상기 파일 시스템을 이용한 파일 저장 방법
JP4262220B2 (ja) デジタルカメラ
JP2006133923A (ja) データ記録再生装置、記録再生方法、プログラム並びにデータ記録媒体
JP4561323B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2006178633A (ja) 情報処理装置、情報処理方法、プログラム
JP2006260158A (ja) 情報処理装置、情報処理方法、プログラム
WO2018186455A1 (ja) 不揮発性メモリにおける空き容量管理方法、及び不揮発性メモリを含む情報記録装置にデータを記録するアクセス装置、情報記録装置および情報記録システム
JP3552247B2 (ja) 電子スチルカメラ
JP2006164017A (ja) 情報処理装置、情報処理方法、プログラム
JP4734898B2 (ja) 情報処理装置、情報処理方法、プログラム
JP2006155461A (ja) 情報処理装置、情報処理方法、並びにプログラム
JP2006178632A (ja) 情報処理装置、情報処理方法、プログラム
JP4972909B2 (ja) データ記録装置
JP2009205590A (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JP2006146812A (ja) 情報処理装置、情報処理方法、プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100309

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100322

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees