JP2020077036A - 記録装置、記録方法、及びプログラム - Google Patents
記録装置、記録方法、及びプログラム Download PDFInfo
- Publication number
- JP2020077036A JP2020077036A JP2018208157A JP2018208157A JP2020077036A JP 2020077036 A JP2020077036 A JP 2020077036A JP 2018208157 A JP2018208157 A JP 2018208157A JP 2018208157 A JP2018208157 A JP 2018208157A JP 2020077036 A JP2020077036 A JP 2020077036A
- Authority
- JP
- Japan
- Prior art keywords
- writing
- data
- file
- clusters
- cpu
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】ファイルアロケーションテーブルの構築が必要になったとしても、連続データ記録におけるデータ書き込みを継続できるようにする。【解決手段】複数のクラスタを有する記憶媒体にファイルを記録する記録装置にて、ファイルを構成するデータが格納されたクラスタの順番を管理するテーブルを更新せずに連続したクラスタにデータを書き込む第1の書き込み方式、又はクラスタにデータを書き込む度にクラスタの順番を書き込んでテーブルを更新する第2の書き込み方式で記憶媒体にデータを書き込む書き込み手段を有し、第1の書き込み方式で書き込み中に、データの書き込み周期よりテーブルの更新に要する期間が大きくなる所定の条件が満たされると、書き込み方式を第2の書き込み方式に切り替えることで、データ書き込みに支障をきたすことなく連続データ記録におけるデータ書き込みを継続できるようにする。【選択図】図2
Description
本発明は、記録装置、記録方法、及びプログラムに関する。
デジタルカメラ等の組込み機器の記憶媒体には、SDカード等の着脱可能な記憶媒体が用いられることが多い。そのような記憶媒体のファイルシステムのフォーマットには、FAT(File Allocation Table)ファイルシステムが多く用いられている。また、記憶媒体へのアクセスは多様なアプリケーションが必要とし、それらが記録するデータの種類も様々である(静止画記録、連写、動画記録、その他)。記録するデータの種類は、MP4形式のように論理的なデータの並び替えが必須なものや、Jpeg形式のように論理的なデータの並び替えが不要なものがある。
FATファイルシステムは、大きくシステム領域とデータ領域とに分類される。データ領域は、クラスタと呼ばれる単位で構成され、動画や静止画等のデータや、実データのメタデータを管理するためのディレクトリ等が記録される。ディレクトリで管理するメタデータを記録する領域はディレクトリエントリと呼ばれ、ファイルやディレクトリ1つにつき1つ存在する。システム領域は、記憶媒体の情報を記録する領域や、各クラスタの連結状況や使用状況等の状態を管理するファイルアロケーションテーブル等から構成される。
FATファイルシステムでは、通常、クラスタ単位のデータ書き込みの度にファイルアロケーションテーブルの更新が必要である(FAT更新方式)。それに対して、FATファイルシステムにおいて、高速アクセスを行うために連続したクラスタへ書き込まれたデータであればファイルアロケーションテーブルの更新を必要としない方法(非FAT更新方式)が提案されている(特許文献1参照)。
デジタルカメラのようにリアルタイムデータとして動画記録可能な記録装置には、動画を一定サイズで分割して複数ファイルへ連続記録する機能を有するものがある。この機能は、記録中のファイルが一定サイズ又は一定時間になると強制的にクローズし、新規ファイルをオープンして続きのデータの記録を継続する。このとき、ファイルのヘッダ情報が全データ記録完了後に作成しなければいけないフォーマットである場合には、記録データの論理的な並べ替えが必要となる。その結果、連続したクラスタへの書き込みという非FAT更新方式の条件を満たせず、記録済みデータに対するファイルアロケーションテーブルの構築が必要となる。ファイルアロケーションテーブルを構築する期間は、次のデータ記録ができない。しかしながら、高ビットレートでの動画記録の場合、所定間隔以内に次なるデータ記録を処理する必要がある。よって、記録済みデータに対するファイルアロケーションテーブルの構築期間がデータ書き込み間隔より長くなってしまうと、次なるデータの書き込み動作に支障をきたしてしまう。
本発明は、このような問題に鑑みてなされたものであり、ファイルアロケーションテーブルの構築が必要になったとしても、連続データ記録におけるデータ書き込みを継続できるようにすることを目的とする。
本発明に係る記録装置は、複数のクラスタを有する記憶媒体にファイルを記録する記録装置であって、ファイルを構成するデータが格納された前記クラスタの順番を管理するテーブルを更新せずに連続したクラスタにデータを書き込む第1の書き込み方式、又は前記クラスタにデータを書き込む度に前記クラスタの順番を書き込んで前記テーブルを更新する第2の書き込み方式で前記記憶媒体にデータを書き込む書き込み手段と、前記第1の書き込み方式で書き込み中に、データの書き込み周期より前記テーブルの更新に要する期間が大きくなる所定の条件が満たされると、書き込み方式を前記第2の書き込み方式に切り替える制御手段とを有することを特徴とする。
本発明は、データの書き込み周期よりテーブルの更新に要する期間が大きくなる場合に書き込み形式を切り替えることで、ファイルアロケーションテーブルの構築が必要になったとしても、連続データ記録におけるデータ書き込みを継続することができる。
以下、本発明の実施形態を図面に基づいて説明する。
(第1の実施形態)
本発明の第1の実施形態について説明する。第1の実施形態として、ファイルシステムを介してファイル入出力を行うシステムにおいて、ファイルシステムに対してデータ書き込みリクエストを発行した場合に、ファイルシステム内で書き込み条件に応じてファイル書き込み方式を切り替える例を説明する。なお、以下の説明において、FAT更新方式は、クラスタ単位のデータ書き込みの度にファイルアロケーションテーブルの更新を行うファイル書き込み方式である。また、非FAT更新方式は、ファイルアロケーションテーブルの更新を必要としない連続したクラスタへデータ書き込みを行うファイル書き込み方式である。
本発明の第1の実施形態について説明する。第1の実施形態として、ファイルシステムを介してファイル入出力を行うシステムにおいて、ファイルシステムに対してデータ書き込みリクエストを発行した場合に、ファイルシステム内で書き込み条件に応じてファイル書き込み方式を切り替える例を説明する。なお、以下の説明において、FAT更新方式は、クラスタ単位のデータ書き込みの度にファイルアロケーションテーブルの更新を行うファイル書き込み方式である。また、非FAT更新方式は、ファイルアロケーションテーブルの更新を必要としない連続したクラスタへデータ書き込みを行うファイル書き込み方式である。
図1は、第1の実施形態における記録装置を有する撮像装置の例を示す外観図である。本実施形態においては、撮像装置としてデジタル一眼レフカメラを例に説明する。図1において、100はデジタル一眼レフカメラ本体(記録装置)である。タッチスクリーン101は、画像やアプリケーションのGUI(Graphical User Interface)や各種情報を表示するLCD(Liquid Crystal Display)画面を備える。また、タッチスクリーン101は、LCD画面に重ねるようにタッチパネルを配置しており、GUIと連動させた直観的な操作を可能にする。
シャッターボタン102は、撮影指示を行うための操作部である。モードダイアル103は、各種モードを切り替えるための操作部である。操作部105は、ユーザーからの各種操作を受け付ける電子ダイヤル、タッチパネル、各種スイッチ、ボタン等の操作部材より成る操作部である。電子ダイヤル106は、操作部105に含まれる回転操作可能な操作部材である。電源スイッチ107は、電源オン/電源オフを切り替えるスイッチである。グリップ104は、本体を構成する部品であるが、右手で本体を把持しつつ、右手の親指で電子ダイヤル106等の操作部105を操作しやすくなるよう設計されている。
記憶媒体108は、メモリカードやハードディスク等の外部メディアである。記憶媒体スロット109は、記憶媒体108を格納するためのスロットである。記憶媒体スロット109に格納された記憶媒体108は、デジタルカメラ100との通信が可能となる。蓋110は、記憶媒体スロット109の蓋である。
図2は、第1の実施形態における記録装置の構成例を示す図である。本実施形態における記録装置は、図2に示されるように、一般的なコンピュータを用いても構成可能なものである。本実施形態における記録装置では、内部バス200に対して、CPU(Central Processing Unit)201、フラッシュメモリ202、メモリ203、表示制御部204、入力部205、及びメディアスロット206が接続される。内部バス200に接続される各部は、内部バス200を介して互いにデータの入出力ができるように構成されている。
CPU201は、記録装置100の各部を制御する。フラッシュメモリ202は、画像データやその他のデータ、及びCPU201が動作するための各種プログラム等が格納される。メモリ203は、例えばRAM(Random Access Memory)である。CPU201は、例えばメモリ203をワークメモリとして用いて、フラッシュメモリ202に格納されるプログラムに従って処理を実行することで、各種処理を実行する。例えば、CPU201は、プログラムに従って処理を実行することで、書き込み手段及び制御手段の機能が実現される。なお、CPU201が動作するためのプログラムは、フラッシュメモリ202に格納されるのに限られず、例えば図示しないハードディスク等に記憶しておいてもよい。
表示制御部204は、ディスプレイ208に対して画像や各種情報等を表示させるための表示信号を出力する。ディスプレイ208は、図1に示したタッチスクリーン101のLCD画面に対応する。例えば、CPU201がプログラムに従って生成した表示制御信号が表示制御部204に供給される。表示制御部204は、この表示制御信号に基づいて表示信号を生成しディスプレイ208に出力する。例えば、表示制御部204は、CPU201が生成する表示制御信号に基づいて、GUIを構成するGUI画面や、フラッシュメモリ202から読み出した画像データを複合化した映像をディスプレイ208に表示させる。
入力部205は、ユーザー操作を受け付け、操作に応じた制御信号を生成してCPU201に供給する。例えば、入力部205は、ユーザー操作を受け付ける入力手段として、電子ダイヤルやタッチパネル等を有する。電子ダイヤルは回転操作を検出する部材であり、一定角度動くたびに電子パルスを発生させる入力手段である。この電子ダイヤルは、例えば図1に示した操作部105の1つである電子ダイヤル106に対応する。また、タッチパネルは、例えば平面的に構成された入力部に対して接触された位置に応じた座標情報が検出されるようにした入力手段である。このタッチパネルは、例えば図1に示した操作部105の1つであるタッチスクリーン101のタッチパネルに対応する。CPU201は、これら入力手段に対してなされたユーザー操作に応じて入力部205で生成される制御信号に基づき、プログラムに従い記録装置100の各部を制御する。これにより、記録装置100に対し、ユーザー操作に応じた動作を行わせることができる。なお、電子ダイヤルやタッチパネルに限らず、キーボードといった文字情報入力デバイスやマウス等のポインティングデバイスも入力デバイスとして使用可能である。
なお、入力部205としてタッチパネルを用いる場合、入力部205とディスプレイ208とを一体的に構成することができる。これは、例えば図1に示したタッチスクリーン101のタッチパネルに対応する。例えば、タッチパネルを光の透過率がディスプレイ208の表示を妨げないように構成し、ディスプレイ208の表示面の上層に取り付ける。そして、タッチパネルにおける入力座標とディスプレイ208上の表示座標とを対応付ける。これにより、恰もユーザーがディスプレイ208上に表示された画面を直接的に操作可能であるかのようなGUIを構成することができる。
メディアスロット206は、SDカードやCFカードといった外部記憶媒体207が装着可能とされ、CPU201の制御に基づいて、装着された外部記憶媒体207からのデータの読み出しや、外部記憶媒体207に対するデータの書き込みを行う。メディアスロット206は、図1に示した記憶媒体スロット109に対応し、外部記憶媒体207は、図1に示した記憶媒体108に対応する。なお、メディアスロット206が装着可能な外部記憶媒体207は、メモリカード等の不揮発性の半導体メモリに限られず、例えばCDやDVDといったディスク記録媒体であってもよい。
なお、本実施形態における記録装置をデジタル一眼レフカメラに適用した場合を例に説明したが、これに限定されるものではなく、記憶媒体108へのデータ保存を行う記録装置であれば、本発明は適用可能である。例えば、本発明は、携帯電話端末や携帯型の画像ビューワ、プリンタ装置に設けられた印刷画像選択及び確認のためのディスプレイ、デジタルフォトフレーム、オーディオグラフィックイコライザ等に適用可能である。
図3は、本実施形態に適用可能なFATファイルシステムを説明する図である。FATファイルシステムは、少なくともディレクトリエントリ部とファイルアロケーションテーブルと空き領域テーブルとから構成される。FATファイルシステムでは、それらを用いて、所望のファイルを書き込み若しくは読み出しする際に、記憶媒体のデータ部において、どの領域へアクセスすればよいかを管理している。
図3(A)にディレクトリエントリ部の一例を示す。ディレクトリエントリ部は、ディレクトリエントリとその属性を管理している。エントリ301、306は、ディレクトリエントリであり、少なくともファイル名302、FAT更新方式フラグ303、データサイズ304、及び先頭クラスタ番号305を保持する。ファイル名302はファイルの名称であり、FAT更新方式フラグ303はファイル書き込み方式を示すフラグである。また、データサイズ304は書き込み済みデータサイズであり、先頭クラスタ番号305はファイルが保存されている先頭クラスタの番号である。FATファイルシステムでは、ディレクトリエントリ301や306は、1個以上存在することができる。
図3(B)にファイルアロケーションテーブルの一例を示す。ファイルアロケーションテーブルは、ファイルを構成するデータが格納されたクラスタの順番情報を管理するテーブルである。ファイルアロケーションテーブルの各要素307〜317は、データが格納される記憶媒体の各クラスタと1対1に対応している。例えば、クラスタ番号1に該当する要素307は、そのクラスタが未使用であることを示している。また、例えば、クラスタ番号2に該当する要素308は、そのクラスタが使用中であって、次なるデータがクラスタ番号3のクラスタに格納されていること、すなわちファイルを構成するデータのリンク先を示している。また、例えば、クラスタ番号4に該当する要素310は、そのクラスタが使用中であって、クラスタ番号4のクラスタに格納されているデータがファイルを構成する最後のデータであることを示している。
図3(C)に空き領域テーブルの一例を示す。空き領域テーブルは、データが格納される記憶媒体の1クラスタに対して1ビットを割り当てたテーブルである。空き領域テーブルの各ビット318〜328には、対応するクラスタが使用中であれば1b(bはバイナリ値であることを示す)が設定され、未使用であれば0bが設定される。
図3(D)にデータ部の一例を示す。データ部は、複数のクラスタに分割された記憶媒体の記憶領域である。データ部の各クラスタ329〜339が、それぞれファイルアロケーションテーブルの各要素307〜317と空き領域テーブルの各ビット318〜328とに対応している。例えば、ファイルアロケーションテーブルにおけるクラスタ番号1の要素307はデータ部329に対応し、クラスタ番号2の要素308はデータ部330に対応している。また、空き領域テーブルにおける第1ビット318はデータ部329に対応し、空き領域テーブルの第2ビット319はデータ部330に対応している。なお、図3(D)に示していないが、データが格納される記憶媒体において、先頭の数クラスタはファイルシステム用に予約されていたり、ディレクトリエントリ用途等に使用されたりする。
ディレクトリエントリ部、ファイルアロケーションテーブル、及び空き領域テーブルは、データが格納される記憶媒体の所定の領域に保存されている。記録装置のCPU201は、メディアスロット206に外部記憶媒体207が差し込まれたことを検出したら、必要に応じて、その一部もしくは全体をメモリ203に読み出し、後述する各種処理の中で必要な情報を外部記憶媒体207へ書き戻す。
次に、ファイルシステムにおける各処理について説明する。ここで、第1の実施形態では、ファイル書き込み方式として非FAT更新方式がデフォルト設定として適用されるものとする。
<ファイルオープン(Open)処理>
ファイルシステムにおけるファイルオープン(Open)処理について説明する。
図4は、第1の実施形態におけるファイルオープン処理の例を示すフローチャートである。アプリケーション等からファイルシステムに対するファイルオープンリクエストが発生することで、図4に示すファイルオープン処理が開始される。なお、ファイルオープンリクエストは、処理対象のファイル名(ディレクトリパス含む)を伴って発行される。
<ファイルオープン(Open)処理>
ファイルシステムにおけるファイルオープン(Open)処理について説明する。
図4は、第1の実施形態におけるファイルオープン処理の例を示すフローチャートである。アプリケーション等からファイルシステムに対するファイルオープンリクエストが発生することで、図4に示すファイルオープン処理が開始される。なお、ファイルオープンリクエストは、処理対象のファイル名(ディレクトリパス含む)を伴って発行される。
ファイルオープン処理が開始されると、ステップS401では、CPU201は、処理対象のファイルが新規作成するファイルであるか否かを判別する。具体的には、CPU201は、発生したファイルオープンリクエストで指定されたファイル名に該当するディレクトリエントリが存在するか否かを判定する。該当するディレクトリエントリが存在しない、すなわち処理対象のファイルが新規作成するファイルであるとCPU201が判定した場合、ステップS402へ遷移する。一方、該当するディレクトリエントリが存在する、すなわち処理対象のファイルが既に存在するファイルであるとCPU201が判定した場合、ステップS405へ遷移する。
ステップS402では、CPU201は、ファイルを新規作成する。具体的には、CPU201は、ファイルオープンリクエストで指定されたファイルに対応するディレクトリエントリを作成する。その後、ステップS403へ遷移する。
ステップS403では、CPU201は、ディレクトリエントリの属性を決定し、決定した属性をファイルディスクリプタ及びステップS402において作成したディレクトリエントリに保持する。具体的には、CPU201は、ステップS402において新規作成したディレクトリエントリの属性として、ファイル名302、FAT更新方式フラグ303、データサイズ304、及び先頭クラスタ番号305を設定する。CPU201は、ファイル名302にはファイルオープンリクエストで指定された文字列を設定し、FAT更新方式フラグ303にはデフォルト設定として非FAT更新方式を示すフラグを設定する。また、CPU201は、データサイズ304には初期値として0を設定し、先頭クラスタ番号305には空き領域テーブルから取得できる空き領域に該当する未使用クラスタ番号を設定する。ここで決定した属性は、ファイルディスクリプタとしてメモリ203に領域を確保して各属性を保持するとともに、作成したディレクトリエントリへ設定し、外部記憶媒体207へ書き戻す。その後、ステップS404へ遷移する。
ステップS404では、CPU201は、ファイルディスクリプタをリクエスト発行元へ返却する。具体的には、CPU201は、作成したディレクトリエントリとしてメモリ203に確保した属性が保持されている領域をファイルオープンリクエストの発行元へ通知する。このファイルディスクリプタは、後述するファイル書き込み処理やファイル読み出し処理で使用される。ステップS404の処理が終わると、CPU201は、ファイルオープン処理を終了する。
また、ステップS405では、CPU201は、ディレクトリエントリを読み出し、読み出したディレクトリエントリの属性をファイルディスクリプタに保持する。具体的には、CPU201は、ファイルオープンリクエストで指定されたファイルに対応するディレクトリエントリを読み出し、ファイルディスクリプタとしてメモリ203に領域を確保して読み出した各属性を保持する。したがって、新規ファイルでない既存のファイルである場合、ファイル書き込み形式は、前の形式(前のクローズ処理時の形式)に応じて、非FAT更新方式又はFAT更新方式が設定される。その後、ステップS404へ遷移する。
なお、前述した説明では、新規作成するファイルである場合、ファイル書き込み方式として非FAT更新方式がデフォルト設定として設定されるようにしているが、これに限定されるものではない。作成するファイルの拡張子(ファイルの種類)に応じて、非FAT更新方式又はFAT更新方式を設定するようにしてもよい。また、ファイルオープンリクエストでファイル書き込み方式を指定できるようにし、指定に応じて非FAT更新方式又はFAT更新方式を設定するようにしてもよい。
<書き込み処理>
次に、ファイルシステムにおける書き込み処理について説明する。
図5は、第1の実施形態における書き込み処理の例を示すフローチャートである。アプリケーション等からファイルシステムに対する書き込みリクエストが発生することで、図5に示す書き込み処理が開始される。なお、書き込みリクエストは、ファイルオープン処理で返却されたファイルディスクリプタを伴って発行される。
次に、ファイルシステムにおける書き込み処理について説明する。
図5は、第1の実施形態における書き込み処理の例を示すフローチャートである。アプリケーション等からファイルシステムに対する書き込みリクエストが発生することで、図5に示す書き込み処理が開始される。なお、書き込みリクエストは、ファイルオープン処理で返却されたファイルディスクリプタを伴って発行される。
書き込み処理が開始されると、ステップS501では、CPU201は、ファイル書き込み方式が非FAT更新方式であるかFAT更新方式であるかを判別する。具体的には、CPU201は、書き込みリクエストに指定されたファイルディスクリプタに保持されているFAT更新方式フラグを確認する。FAT更新方式フラグが非FAT更新方式を示しているとCPU201が判定した場合にはステップS502へ遷移し、FAT更新方式フラグがFAT更新方式を示しているとCPU201が判定した場合にはステップS511へ遷移する。
ステップS502では、CPU201は、書き込みリクエストを受領した時刻と回数をメモリ203に保持する。その後、ステップS503へ遷移する。
ステップS503では、CPU201は、平均書き込み間隔とFAT構築期間を算出する。平均書き込み間隔とは、書き込みリクエストが発生する時間間隔の平均値として算出されるデータの書き込み周期であり、FAT構築期間とは、処理対象のファイルに関してファイルアロケーションテーブルの作成及び書き込みに要する時間である。具体的には、CPU201は、ステップS502において保持した書き込みリクエストの受領時刻と回数から平均書き込み間隔を算出する。平均書き込み間隔は、すべての書き込みリクエストについて1つ前の書き込みリクエストに対する受領時刻の差分を保持しておき、その合計を(リクエストの総数−1)で割ることで算出しても良い。また、書き込みリクエスト毎に間隔の平均を算出した値をファイルディスクリプタに関連付けて保持しておき、新たな書き込みリクエストにおける間隔と、既に計算済みの間隔の平均値とをリクエスト回数を用いて加重平均することで算出しても良い。また、CPU201は、ファイルディスクリプタに保持されているデータサイズから使用クラスタ数を算出し、「(クラスタ1つあたりの更新時間+クラスタ1つあたりの外部記憶媒体207への書き込み時間)×クラスタ数」でFAT構築期間を算出する。その後、ステップS504へ遷移する。
ステップS504では、CPU201は、ステップS502においてメモリ203に保持した最新の書き込みリクエストの受領時刻と、ステップS503において算出した平均書き込み間隔とをファイルディスクリプタに関連付けて保持する。その後、ステップS505へ遷移する。
ステップS505では、CPU201は、ステップS503において算出した平均書き込み間隔とFAT構築期間とを比較し、平均書き込み間隔がFAT構築期間より大きいか否かを判定する。平均書き込み間隔がFAT構築期間より大きいとCPU201が判定した場合にはステップS506へ遷移し、FAT構築期間が平均書き込み間隔より大きいとCPU201が判定した場合にはステップS510へ遷移する。
ステップS506では、CPU201は、書き込み先クラスタの空き容量と書き込みデータサイズの残量とを比較し、書き込み先クラスタの空き容量が書き込みデータサイズの残量より大きいか否かを判定する。具体的には、CPU201は、ファイルディスクリプタの属性であるデータサイズを読み出し、クラスタサイズで割った余りをクラスタサイズから減じることで書き込み先クラスタの空き容量を算出する。また、CPU201は、書き込みリクエストに指定されているデータサイズから書き込み済みデータサイズを減じることで書き込みデータサイズの残量を算出する。そして、CPU201は、算出した書き込み先クラスタの空き容量と書き込みデータサイズの残量とを比較し、書き込み先クラスタの空き容量の方が大きいとCPU201が判定した場合にはステップS507へ遷移する。一方、書き込みデータサイズの残量の方が大きいとCPU201が判定した場合にはステップS508へ遷移する。
ステップS507では、CPU201は、クラスタへデータを書き込む。具体的には、CPU201は、ファイルディスクリプタの属性であるデータサイズを読み出して、クラスタサイズで割った商と余りの値を計算する。計算して得られた商が書き込み済みクラスタ数であり、余りが書き込み途中クラスタの書き込み済みサイズである。さらに、CPU201は、ファイルディスクリプタの属性である先頭クラスタ番号を読み出し、読み出した先頭クラスタ番号に書き込み済みクラスタ数を加えたクラスタ番号を書き込み先クラスタとする。CPU201は、このようにして決定した外部記憶媒体207の書き込み先クラスタへ、書き込み済みデータに続いて残りの書き込みデータをすべて書き込む。そして、CPU201は、書き込んだデータサイズを、ファイルディスクリプタの属性であるデータサイズに加算するとともに、ディレクトリエントリのデータサイズ304にも同じ値を設定し、外部記憶媒体207へ書き戻す。ステップS507の処理が終わると、CPU201は、書き込み処理を終了する。
ステップS508では、CPU201は、クラスタの終端までデータを書き込む。具体的には、CPU201は、ファイルディスクリプタの属性であるデータサイズを読み出して、クラスタサイズで割った商と余りの値を計算する。計算して得られた商が書き込み済みクラスタ数であり、余りが書き込み途中クラスタの書き込み済みサイズである。さらに、CPU201は、ファイルディスクリプタの属性である先頭クラスタ番号を読み出し、先頭クラスタ番号に書き込み済みクラスタ数を加えたクラスタ番号を書き込み先クラスタとする。CPU201は、このようにして決定した外部記憶媒体207の書き込み先クラスタへ、書き込み済みデータに続いてクラスタの終端まで残りの書き込みデータを書き込む。そして、CPU201は、書き込んだデータサイズを、ファイルディスクリプタの属性であるデータサイズに加算するともに、ディレクトリエントリのデータサイズ304にも同じ値を設定し、外部記憶媒体207へ書き戻す。その後、ステップS509へ遷移する。
ステップS509では、CPU201は、次に書き込み先となるクラスタの使用可否を判断する。具体的には、CPU201は、空き領域テーブルを参照して、ステップS508においてデータを書き込んだクラスタに続くクラスタが未使用状態(0b)であるか否かを確認する。CPU201は、未使用状態であると判定した場合には、そのクラスタに対応する空き領域テーブルのビットを使用状態(1b)に変更して外部記憶媒体207へ書き戻した後に、ステップS506へ遷移する。一方、使用状態(1b)であるとCPU201が判定した場合には、ステップS510へ遷移する。
ステップS510では、CPU201は、FAT構築処理を行う。FAT構築処理の詳細は後述する。FAT構築処理が終了した後、ファイルディスクリプタと残りの書き込みデータとそのサイズを伴ってステップS511へ遷移する。
ステップS511では、CPU201は、一般的な書き込み処理を行い、外部記憶媒体207のクラスタにデータを書き込むとともに、ファイルディスクリプタやディレクトリエントリ等の更新をする。具体的には、ステップS501から遷移した場合には、CPU201は、書き込みリクエストで指定されたファイルディスクリプタと書き込みデータと書き込みサイズを伴って処理を行う。一方で、ステップS510から遷移した場合には、CPU201は、書き込みリクエストで更新されたファイルディスクリプタと残りの書き込みデータとそのサイズを伴って処理を行う。この書き込み処理は広く普及しているFATファイルシステムによる書き込み処理(FAT更新方式での書き込み処理)を行うものであり、詳細は割愛する。ステップS511の処理が終わると、CPU201は、書き込み処理を終了する。
このように本実施形態における書き込み処理では、ファイル書き込み方式が非FAT更新方式であって、算出したFAT構築期間が平均書き込み間隔より大きいと判定した場合、FAT構築処理を行ってファイル書き込み方式をFAT更新方式に切り替える。また、ファイル書き込み方式が非FAT更新方式であるが、次のクラスタが使用できずに非FAT更新方式でのデータ書き込みを継続できない場合、FAT構築処理を行ってファイル書き込み方式をFAT更新方式に切り替える。
前述した書き込み処理において、ステップS505では、平均書き込み間隔とFAT構築期間の所定割合(例えば80%)とを比較するようにしても良い。このようにすることで、FAT構築処理を余裕もって実施することが可能となる。また、「平均書き込み間隔/(クラスタ1つあたりの更新時間+クラスタ1つあたりの外部記憶媒体207への書き込み時間)」によって、書き込み間隔内に更新可能なクラスタ数を算出しておく。その算出した更新可能なクラスタ数に対して、書き込み済みデータサイズに該当するクラスタ数が大きいか小さいかで判断するようにしても良い。つまり、書き込み済みデータサイズが所定のサイズより大きいか小さいかで判断するようにしても良い。また、書き込み済みデータサイズに該当するクラスタ数と更新可能なクラスタ数の所定割合(例えば80%)とを比較するようにしても良い。
また、前述した書き込み処理において、ステップS506において書き込み済みクラスタ数と書き込み途中のクラスタの書き込み済みサイズとを算出しておき、それをステップS507及びS508の処理において使用するようにしても良い。
<FAT構築処理>
次に、ファイルシステムにおけるFAT構築処理について説明する。
図6は、第1の実施形態におけるFAT構築処理の例を示すフローチャートである。
次に、ファイルシステムにおけるFAT構築処理について説明する。
図6は、第1の実施形態におけるFAT構築処理の例を示すフローチャートである。
FAT構築処理が開始されると、ステップS601では、CPU201は、構築するファイルアロケーションテーブルの開始位置を特定する。具体的には、CPU201は、リクエストに指定されたファイルディスクリプタに保持されている先頭クラスタ番号とデータサイズとを取得し、先頭クラスタ番号をファイルアロケーションテーブルにおける更新対象の要素にする。その後、ステップS602へ遷移する。
ステップS602では、CPU201は、ファイルアロケーションテーブルにおける更新対象の要素が示すリンク先を更新する。具体的には、CPU201は、更新対象の要素が示すリンク先を次のクラスタ番号に更新する。その後、ステップS603へ遷移する。
ステップS603では、CPU201は、ファイルアロケーションテーブル更新の完了判定を行う。具体的には、CPU201は、ステップS601において取得したデータサイズのデータをすべて格納することができるクラスタ数分だけファイルアロケーションテーブルの要素を更新したか否かを判定する。CPU201は、更新完了と判定した場合、最後のリンク先に該当する要素のリンク先にファイルの終わりを示すEOF(End Of File)を設定して、ステップS604へ遷移する。一方、CPU201は、更新完了ではない、すなわち更新する要素が残っていると判定した場合、次のクラスタ番号を更新対象の要素にして、ステップS602へ遷移する。
ステップS604では、CPU201は、非FAT更新方式からFAT更新方式へファイル書き込み方式を切り替える。具体的には、CPU201は、ファイルディスクリプタの属性であるFAT更新方式フラグをFAT更新方式を示すように変更する。また、CPU201は、処理対象のファイルディスクリプタに対応するディレクトリエントリの属性であるFAT更新方式フラグ303を同じくFAT更新方式を示すように変更し外部記憶媒体207へ書き戻す。ステップS604の処理が終わると、CPU201は、FAT構築処理を終了する。
こうすることで、図5に示した書き込み処理において、FAT更新方式フラグ303をFAT更新方式へ変更した後に続く書き込みリクエストは、例え非FAT更新方式で記録可能であってもFAT更新方式で書き込みを行うことになる。その結果、非FAT更新方式でリアルタイムデータの記録中に、データ書き込み間隔以内にFAT構築が不可能なサイズになることを防止することができる。
<読み出し処理>
次に、ファイルシステムにおける読み出し処理について説明する。
図7は、第1の実施形態における読み出し処理の例を示すフローチャートである。アプリケーション等からファイルシステムに対する読み出しリクエストが発生することで、図7に示す読み出し処理が開始される。なお、読み出しリクエストは、ファイルオープン処理で返却されたファイルディスクリプタを伴って発行される。
次に、ファイルシステムにおける読み出し処理について説明する。
図7は、第1の実施形態における読み出し処理の例を示すフローチャートである。アプリケーション等からファイルシステムに対する読み出しリクエストが発生することで、図7に示す読み出し処理が開始される。なお、読み出しリクエストは、ファイルオープン処理で返却されたファイルディスクリプタを伴って発行される。
読み出し処理が開始されると、ステップS701では、CPU201は、ファイル書き込み方式が非FAT更新方式であるかFAT更新方式であるかを判別する。具体的には、CPU201は、読み出しリクエストに指定されたファイルディスクリプタに保持されているFAT更新方式フラグを確認する。FAT更新方式フラグが非FAT更新方式を示しているとCPU201が判定した場合にはステップS702へ遷移し、FAT更新方式フラグがFAT更新方式を示しているとCPU201が判定した場合にはステップS705へ遷移する。
ステップS702では、CPU201は、読み出しリクエストに指定されたファイルディスクリプタに保持されている先頭クラスタ番号とデータサイズとを取得する。その後、ステップS703へ遷移する。
ステップS703では、CPU201は、外部記憶媒体207からデータを読み出す。具体的には、CPU201は、ファイルディスクリプタで管理されているデータ読み出し位置を取得する。このデータ読み出し位置は、先頭クラスタ番号で特定されるデータ部の先頭位置からのオフセットサイズであり、ディレクトリエントリには無い属性で、ファイルディスクリプタが独自に管理している。CPU201は、ステップS702において取得した先頭クラスタ番号が指し示すデータ部の先頭位置からデータ読み出し位置分だけスキップした位置からデータを読み出す。そして、CPU201は、読み出しリクエストで指定されたデータサイズ分のデータを読み出して、読み出しリクエストの発行元が指定したメモリ203に確保されているデータ格納領域(指定バッファ)へコピーする。その後、ステップS704へ遷移する。
ステップS704では、CPU201は、データ読み出し位置を更新してファイルディスクリプタに保持する。具体的には、CPU201は、ファイルディスクリプタの属性であるデータ読み出し位置に、ステップS703において実際に読み出したデータサイズを加算し、更新後のデータ読み出し位置とする。ステップS704の処理が終わると、CPU201は、読み出し処理を終了する。
ステップS705では、CPU201は、一般的な読み出し処理を行い、外部記憶媒体207のクラスタからデータを読み出す。この読み出し処理は広く普及しているFATファイルシステムによる読み出し処理(ファイルアロケーションテーブルを参照した読み出し処理)を行うものであり、詳細は割愛する。ステップS705の処理が終わると、CPU201は、読み出し処理を終了する。
<ファイルクローズ(Close)処理>
次に、ファイルシステムにおけるファイルクローズ処理について説明する。
図8は、第1の実施形態におけるファイルクローズ処理の例を示すフローチャートである。アプリケーション等からファイルシステムに対するファイルクローズリクエストが発生することで、図8に示すファイルクローズ処理が開始される。なお、ファイルクローズリクエストは、ファイルオープン処理で返却されたファイルディスクリプタを伴って発行される。
次に、ファイルシステムにおけるファイルクローズ処理について説明する。
図8は、第1の実施形態におけるファイルクローズ処理の例を示すフローチャートである。アプリケーション等からファイルシステムに対するファイルクローズリクエストが発生することで、図8に示すファイルクローズ処理が開始される。なお、ファイルクローズリクエストは、ファイルオープン処理で返却されたファイルディスクリプタを伴って発行される。
ファイルクローズ処理が開始されると、ステップS801では、CPU201は、ディレクトリエントリの更新を行う。具体的には、CPU201は、指定されたファイルディスクリプタの属性を用いて、ディレクトリエントリのファイル名302、FAT更新方式フラグ303、データサイズ304、及び先頭クラスタ番号305を更新し、外部記憶媒体207へ書き戻す。その後、ステップS802へ遷移する。
ステップS802では、CPU201は、処理対象のファイルに係るファイルディスクリプタを破棄する。具体的には、CPU201は、メモリ203に確保した処理対象ファイルに対応するファイルディスクリプタの領域をすべて破棄することで、指定されたファイルディスクリプタを使用不可能にする。この処理の後、破棄したファイルディスクリプタに対する書き込みリクエストや読み込みリクエストが発生した場合、エラーとしてリクエストを処理する。ステップS802の処理が終わると、CPU201は、ファイルクローズ処理を終了する。
<ファイル結合処理>
次に、ファイルシステムにおけるファイル結合処理について説明する。
図9は、第1の実施形態におけるファイル結合処理の例を示すフローチャートである。アプリケーション等からファイルシステムに対するファイル結合リクエストが発生することで、図9に示すファイル結合処理が開始される。なお、ファイル結合リクエストは、結合する前部ファイル名(ディレクトリパス含む)と後部ファイル名(ディレクトリパス含む)とを伴って発行される。
次に、ファイルシステムにおけるファイル結合処理について説明する。
図9は、第1の実施形態におけるファイル結合処理の例を示すフローチャートである。アプリケーション等からファイルシステムに対するファイル結合リクエストが発生することで、図9に示すファイル結合処理が開始される。なお、ファイル結合リクエストは、結合する前部ファイル名(ディレクトリパス含む)と後部ファイル名(ディレクトリパス含む)とを伴って発行される。
ファイル結合処理が開始されると、ステップS901では、CPU201は、結合対象の前部ファイルに対するファイルオープン処理を行う。この処理は、前部ファイルのファイル名を指定した図4に示したファイルオープン処理である。その後、ステップS902へ遷移する。
ステップS902では、CPU201は、結合対象の後部ファイルに対するファイルオープン処理を行う。この処理は、後部ファイルのファイル名を指定した図4に示したファイルオープン処理である。その後、ステップS903へ遷移する。
ステップS902では、CPU201は、結合対象の後部ファイルに対するファイルオープン処理を行う。この処理は、後部ファイルのファイル名を指定した図4に示したファイルオープン処理である。その後、ステップS903へ遷移する。
ステップS903では、CPU201は、前部ファイルのファイルディスクリプタを指定して、図6に示したFAT構築処理を行う。その後、ステップS904へ遷移する。
ステップS904では、CPU201は、後部ファイルのファイルディスクリプタを指定して、図6に示したFAT構築処理を行う。その後、ステップS905へ遷移する。
なお、前述したステップS901〜S904の処理は、ステップS901の処理とステップS903の処理との処理順序、及びステップS902の処理とステップS904の処理との処理順序が保証されれば、図示した順序と異なってもよい。
ステップS904では、CPU201は、後部ファイルのファイルディスクリプタを指定して、図6に示したFAT構築処理を行う。その後、ステップS905へ遷移する。
なお、前述したステップS901〜S904の処理は、ステップS901の処理とステップS903の処理との処理順序、及びステップS902の処理とステップS904の処理との処理順序が保証されれば、図示した順序と異なってもよい。
ステップS905では、CPU201は、ディレクトリエントリとファイルアロケーションテーブルの更新を行う。具体的には、CPU201は、前部ファイルに対応するファイルアロケーションテーブルにおける最後の要素のリンク先部を、後部ファイルの先頭クラスタ番号に書き換えて、外部記憶媒体207へ書き戻す。また、CPU201は、前部ファイルのディレクトリエントリ301のデータサイズ304を新たなデータサイズに更新するとともに、FAT更新方式フラグ303をFAT更新方式に変更して、外部記憶媒体207へ書き戻す。新たなデータサイズは、「(前部ファイルのクラスタ数×クラスタサイズ)+後部ファイルのデータサイズ」により算出される。その後、ステップS906へ遷移する。
ステップS906では、CPU201は、ファイルディスクリプタの更新を行う。具体的には、CPU201は、ステップS901で取得した前部ファイルのファイルディスクリプタの属性であるデータサイズを、ステップS904で算出した新たなデータサイズで更新するとともに、FAT更新方式フラグをFAT更新方式へ変更する。その後、ステップS907へ遷移する。
ステップS907では、CPU201は、結合対象の後部ファイルに対するファイルクローズ処理を行う。この処理は、後部ファイルのファイルディスクリプタを指定した図8に示したファイルクローズ処理である。その後、ステップS908へ遷移する。
ステップS908では、CPU201は、ファイル結合処理によって不要になるディレクトリエントリの削除を行う。具体的には、CPU201は、ステップS907で解放した後部ファイルのファイルディスクリプタに対応するディレクトリエントリを、外部記憶媒体207から削除することで、後部ファイルのみでファイルが存在できないようにする。その後、ステップS909へ遷移する。
ステップS908では、CPU201は、ファイル結合処理によって不要になるディレクトリエントリの削除を行う。具体的には、CPU201は、ステップS907で解放した後部ファイルのファイルディスクリプタに対応するディレクトリエントリを、外部記憶媒体207から削除することで、後部ファイルのみでファイルが存在できないようにする。その後、ステップS909へ遷移する。
ステップS909では、CPU201は、結合対象の前部ファイルに対するファイルクローズ処理を行う。この処理は、前部ファイルのファイルディスクリプタを指定した図8に示したファイルクローズ処理である。ステップS909の処理が終わると、CPU201は、ファイル結合処理を終了する。
こうすることにより、処理後の前部ファイルのディレクトリエントリの先頭クラスタ番号からデータサイズ分だけのデータは、前部ファイルと後部ファイルのデータ部にあたるクラスタすべてがファイルアロケーションテーブルで結合されたものと一致する。これにより、前部ファイルのディレクトリエントリが、全データを指し示すディレクトリエントリとなる。この処理を行うことで、ヘッダ部をファイルの先頭に配置するような論理的なデータの並び替えを実現することができる。
第1の実施形態によれば、非FAT更新方式で周期的なデータの記録において、データ書き込み間隔以内にファイルアロケーションテーブルの構築が不可能なサイズになる前に、ファイル書き込み形式をFAT更新方式へ切り替えることができる。したがって、非FAT更新方式での連続データ記録中にファイルアロケーションテーブルの構築が必要になったとしても、データ書き込みに支障をきたすことなく、連続データ記録におけるデータ書き込みを継続することができる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。第2の実施形態として、ファイルシステムを介してファイル入出力を行うシステムにおいて、ファイルシステムに対してデータ書き込みリクエストを発行した場合に、ファイルシステム内でデータ種別に応じてファイル書き込み方式を切り替える例を説明する。第2の実施形態における記録装置は、ファイルシステムにおける書き込み処理が前述した第1の実施形態における記録装置と異なり、その他は第1の実施形態と同様であるので、以下ではファイルシステムにおける書き込み処理について説明する。
次に、本発明の第2の実施形態について説明する。第2の実施形態として、ファイルシステムを介してファイル入出力を行うシステムにおいて、ファイルシステムに対してデータ書き込みリクエストを発行した場合に、ファイルシステム内でデータ種別に応じてファイル書き込み方式を切り替える例を説明する。第2の実施形態における記録装置は、ファイルシステムにおける書き込み処理が前述した第1の実施形態における記録装置と異なり、その他は第1の実施形態と同様であるので、以下ではファイルシステムにおける書き込み処理について説明する。
図10は、第2の実施形態における書き込み処理の例を示すフローチャートである。アプリケーション等からファイルシステムに対する書き込みリクエストが発生することで、図10に示す書き込み処理が開始される。なお、書き込みリクエストは、ファイルオープン処理で返却されたファイルディスクリプタを伴って発行される。
書き込み処理が開始されると、ステップS1001では、CPU201は、図5に示したステップS501と同様にして、ファイル書き込み方式が非FAT更新方式であるかFAT更新方式であるかを判別する。FAT更新方式フラグが非FAT更新方式を示しているとCPU201が判定した場合にはステップS1002へ遷移し、FAT更新方式フラグがFAT更新方式を示しているとCPU201が判定した場合にはステップS1016へ遷移する。
ステップS1002では、CPU201は、書き込むデータのデータ形式が判別可能であるか否かを判定する。具体的には、CPU201は、書き込みリクエストによって書き込むべきデータが、ファイルの先頭付近であり、そこにデータ形式が判別可能なヘッダ情報等が含まれるか否かを判定する。データ形式が判別可能な情報が含まれデータ形式が判別可能であるとCPU201が判定した場合、ステップS1003へ遷移する。一方、データ形式が判別可能な情報が含まれずデータ形式の判別が不可能であるとCPU201が判定した場合、ステップSS1005へ遷移する。
ステップS1003では、CPU201は、書き込みリクエストによって書き込むデータのデータ形式を判別する。具体的には、CPU201は、判別可能なデータ形式であり、かつ、最終的にFAT構築が必須なデータ形式であるか否かを判定する。最終的にFAT構築が必須なデータ形式であるとCPU201が判定した場合にはステップS1004へ遷移し、最終的にFAT構築が必須なデータ形式ではないとCPU201が判定した場合にはステップS1005へ遷移する。つまり、ファイルのヘッダ部(先頭付近)でファイル形式が判別可能な場合であり、そのファイル形式が最終的にFAT構築が必須であれば、最初からFAT更新方式として処理し、それ以外では非FAT更新方式として処理する。
ステップS1004では、CPU201は、書き込みリクエストに指定されたファイルディスクリプタに保持されているFAT更新方式フラグに、FAT更新形式を示すフラグを設定し、ステップS1006へ遷移する。
ステップS1005では、CPU201は、書き込みリクエストに指定されたファイルディスクリプタに保持されているFAT更新方式フラグに、非FAT更新形式を示すフラグを設定し、ステップS1006へ遷移する。
ステップS1005では、CPU201は、書き込みリクエストに指定されたファイルディスクリプタに保持されているFAT更新方式フラグに、非FAT更新形式を示すフラグを設定し、ステップS1006へ遷移する。
ステップS1006では、CPU201は、ファイル書き込み方式が非FAT更新方式であるかFAT更新方式であるかを判別する。具体的には、CPU201は、書き込みリクエストに指定されたファイルディスクリプタに保持されているFAT更新方式フラグを確認する。FAT更新方式フラグが非FAT更新方式を示しているとCPU201が判定した場合にはステップS1007へ遷移し、FAT更新方式フラグがFAT更新方式を示しているとCPU201が判定した場合にはステップS1016へ遷移する。
ステップS1007〜ステップS1015の処理は、図5に示した第1の実施形態におけるステップS502〜ステップS510の処理と同様であるので、その説明は省略する。
ステップS1016では、CPU201は、一般的な書き込み処理を行い、外部記憶媒体207のクラスタにデータを書き込むとともに、ファイルディスクリプタやディレクトリエントリ等の更新をする。具体的には、ステップS1001又はステップS1006から遷移した場合には、CPU201は、書き込みリクエストで指定されたファイルディスクリプタと書き込みデータと書き込みサイズを伴って処理を行う。一方で、ステップS1015から遷移した場合には、CPU201は、書き込みリクエストで更新されたファイルディスクリプタと残りの書き込みデータとそのサイズを伴って処理を行う。この書き込み処理は広く普及しているFATファイルシステムによる書き込み処理(FAT更新方式での書き込み処理)を行うものであり、詳細は割愛する。ステップS1016の処理が終わると、CPU201は、書き込み処理を終了する。
第2の実施形態によれば、第1の実施形態と同様の効果が得られるとともに、ファイルシステムが判別可能な必ず並び替えが発生するデータ形式であれば、ファイル書き込み方式を最初からFAT更新形式に設定して処理を行うことができる。また、ファイルオープン処理において、ステップS403でディレクトリエントリの属性を決定する場合、FAT更新方式フラグ303を、指定されたファイル名の拡張子で判断しても問題はない。また、ファイルオープンリクエストのオプションとしてデータ並び替え発生の有無を指定できるような構成にすることで、ファイルオープン処理の中でファイル書き込み方式を決定しても問題はない。
本発明に係る記録装置をデジタルカメラに適用した例を示したが、本発明の適用先はこれに限定されず、データ記録機能を利用する記録装置であれば本発明を適用可能である。例えば、スマートフォン、タブレット端末、ポータブルナビゲーションシステム、(ノート)パソコン、ウェアブルデバイス又は携帯ゲーム機等に本発明を適用することができる。
さらに、本発明は、各実施形態の1以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの1つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
200:内部バス 201:CPU 202:フラッシュメモリ 203:メモリ 204:表示制御部 205:入力部 206:メディアスロット 207:外部記憶媒体 208:ディスプレイ
Claims (10)
- 複数のクラスタを有する記憶媒体にファイルを記録する記録装置であって、
ファイルを構成するデータが格納された前記クラスタの順番を管理するテーブルを更新せずに連続したクラスタにデータを書き込む第1の書き込み方式、又は前記クラスタにデータを書き込む度に前記クラスタの順番を書き込んで前記テーブルを更新する第2の書き込み方式で前記記憶媒体にデータを書き込む書き込み手段と、
前記第1の書き込み方式で書き込み中に、データの書き込み周期より前記テーブルの更新に要する期間が大きくなる所定の条件が満たされると、書き込み方式を前記第2の書き込み方式に切り替える制御手段とを有することを特徴とする記録装置。 - 前記テーブルの更新に要する期間がデータの書き込みが発生する間隔より大きいことを前記所定の条件とすることを特徴とする請求項1記載の記録装置。
- 前記第1の書き込み方式で前記記憶媒体へ書き込み済みのデータサイズが所定のサイズより大きいことを前記所定の条件とすることを特徴とする請求項1記載の記録装置。
- 前記テーブルの更新に要する期間は、前記第1の書き込み方式でデータが書き込まれた前記クラスタについて前記テーブルへの順番の書き込み、及び当該テーブルの前記記憶媒体へ書き込みに要する期間であることを特徴とする請求項1〜3の何れか1項に記載の記録装置。
- 前記制御手段は、新規のファイルである場合には前記書き込み手段の書き込み形式を前記第1の書き込み方式に設定することを特徴とする請求項1〜4の何れか1項に記載の記録装置。
- 前記制御手段は、データの書き込みに係るリクエストで前記第2の書き込み方式が指定されている場合には前記書き込み手段の書き込み形式を前記第2の書き込み方式に設定することを特徴とする請求項5記載の記録装置。
- 前記制御手段は、前記記憶媒体に書き込むデータ形式が前記テーブルへのクラスタの順番の書き込みを要するデータ形式である場合には前記書き込み手段の書き込み形式を前記第2の書き込み方式に設定することを特徴とする請求項5又は6記載の記録装置。
- ファイルシステムにより前記書き込み手段及び前記制御手段の処理を実行することを特徴とする請求項1〜7の何れか1項に記載の記録装置。
- 複数のクラスタを有する記憶媒体にファイルを記録する記録方法であって、
ファイルを構成するデータが格納された前記クラスタの順番を管理するテーブルを更新せずに連続したクラスタにデータを書き込む第1の書き込み方式、又は前記クラスタにデータを書き込む度に前記クラスタの順番を書き込んで前記テーブルを更新する第2の書き込み方式で前記記憶媒体にデータを書き込む書き込み工程と、
前記第1の書き込み方式で書き込み中に、データの書き込み周期より前記テーブルの更新に要する期間が大きくなる所定の条件が満たされると、書き込み方式を前記第2の書き込み方式に切り替える制御工程とを有することを特徴とする記録方法。 - 複数のクラスタを有する記憶媒体にファイルを記録する記録方法をコンピュータに実行させるプログラムであって、
ファイルを構成するデータが格納された前記クラスタの順番を管理するテーブルを更新せずに連続したクラスタにデータを書き込む第1の書き込み方式、又は前記クラスタにデータを書き込む度に前記クラスタの順番を書き込んで前記テーブルを更新する第2の書き込み方式で前記記憶媒体にデータを書き込む書き込みステップと、
前記第1の書き込み方式で書き込み中に、データの書き込み周期より前記テーブルの更新に要する期間が大きくなる所定の条件が満たされると、書き込み方式を前記第2の書き込み方式に切り替える制御ステップとをコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018208157A JP2020077036A (ja) | 2018-11-05 | 2018-11-05 | 記録装置、記録方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018208157A JP2020077036A (ja) | 2018-11-05 | 2018-11-05 | 記録装置、記録方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020077036A true JP2020077036A (ja) | 2020-05-21 |
Family
ID=70724052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018208157A Pending JP2020077036A (ja) | 2018-11-05 | 2018-11-05 | 記録装置、記録方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020077036A (ja) |
-
2018
- 2018-11-05 JP JP2018208157A patent/JP2020077036A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230049473A1 (en) | Method and device for managing tab window indicating application group including heterogeneous applications | |
JP4453738B2 (ja) | ファイル転送方法、装置、およびプログラム | |
JP5366662B2 (ja) | 映像出力装置及び映像出力方法 | |
JP4056026B2 (ja) | 画像管理装置、画像管理方法及び記憶媒体 | |
US8310582B2 (en) | Digital image processing apparatus and method for displaying a plurality of images | |
JP2010175738A (ja) | 表示制御装置および表示制御方法 | |
JP2013165462A (ja) | 動画記録装置及びその制御方法、コンピュータプログラム、記憶媒体 | |
JP2009140262A (ja) | 画像表示システム、情報処理装置、その制御方法及びプログラム | |
US10497079B2 (en) | Electronic device and method for managing image | |
WO2023241583A1 (zh) | 用于页面交互的方法、装置、设备和存储介质 | |
JP2020077036A (ja) | 記録装置、記録方法、及びプログラム | |
JP2010049496A (ja) | 情報処理装置及び表示方法 | |
JP2019180054A (ja) | 画像記録装置及びその制御方法 | |
JP6598625B2 (ja) | 画像処理装置およびその制御方法 | |
WO2017110606A1 (ja) | 情報処理装置およびその制御方法およびプログラム | |
JP6733618B2 (ja) | 情報処理システム、端末装置、プログラム及び画像付与方法 | |
JP2017134603A (ja) | 画像形成装置およびデータ処理プログラム | |
JP6282051B2 (ja) | データ処理装置、データ処理方法及びプログラム | |
JP6381208B2 (ja) | 画像再生装置、画像再生方法、およびプログラム | |
KR20150053634A (ko) | 디지털 영상 관리 방법, 상기 방법을 기록한 컴퓨터 판독 가능 저장매체 및 디지털 영상 관리 장치. | |
JP5419783B2 (ja) | 画像再生装置及び画像再生装置の制御方法 | |
JP2013118510A (ja) | 画像処理装置及び画像処理方法 | |
JP2006018749A (ja) | 情報処理装置及びデータ表示方法及びプログラム及び記憶媒体 | |
JP2005184332A (ja) | ファイル管理装置 | |
JP6172245B2 (ja) | 情報処理システム、端末装置、プログラム及び画像付与方法 |