JP2006139439A - 情報処理装置、情報処理方法、及びプログラム - Google Patents
情報処理装置、情報処理方法、及びプログラム Download PDFInfo
- Publication number
- JP2006139439A JP2006139439A JP2004327256A JP2004327256A JP2006139439A JP 2006139439 A JP2006139439 A JP 2006139439A JP 2004327256 A JP2004327256 A JP 2004327256A JP 2004327256 A JP2004327256 A JP 2004327256A JP 2006139439 A JP2006139439 A JP 2006139439A
- Authority
- JP
- Japan
- Prior art keywords
- file
- data
- information
- cluster
- header
- 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
Links
Images
Abstract
【解決手段】ヘッダ部A1−データ部A2-リソース部A3とから成るオリジナルファイルから、ヘッダ部A1又はリソース部A3を変更したヘッダ/リソース編集ファイルを新規生成/保存するのにあたっては、ヘッダ部A1又はリソース部A3については、実際にメディアへのデータの書き込みを実行するが、データ部A2については、オリジナルファイルのデータ部A2を共有する構造となるようにしてFAT領域の内容を変更する処理を実行する。
【選択図】図10
Description
記憶媒体に記憶すべきファイルとしてのデータに対する操作の1つとして、ユーザインターフェイスに対する入力などに応じて新規に作成したファイルを、記憶媒体に対して書き込んで記憶(保存)させることが行われる。
このような新規ファイルの記憶媒体への記録については、例えば処理時間や記憶媒体容量などに関してできるだけ効率的に行われるようにすることが求められており、このための構成の1つが特許文献1に示されている。
例えばファイルの実際としては、複数の情報体の集合から成る場合が通常である。あくまでも具体例であるが、或る動画ファイルなどは、先頭のヘッダ領域と、これに続くデータ領域、また、このデータ領域を形成する単位データをプレゼンテーションする情報などを格納するリソース領域との、3つの情報体を所定順に配列して形成される。本発明では、このような情報体の集合構造から成るファイルを対象として、効率的な新規ファイルの生成/保存、管理が行われるようにする。
本発明の情報処理装置は、所定の複数の情報部により形成される形式を有し、記憶媒体に記憶済みとされていたファイルである原ファイルを基として、この原ファイルにおける所要の情報部の内容について変更することにより、新規のファイルである新規ファイルとしての内容を生成する新規ファイル生成手段と、この新規ファイル生成手段により生成された新規ファイルの内容を記憶媒体に書き込んで記憶させる書き込み手段と、記憶媒体に記憶されるファイルについて管理する管理手段とを備える。
そして、上記書き込み手段は、新規ファイルを形成する所定の情報部のうちで、原ファイルの内容からの変更が無かったとされる未変更情報部がある場合には、新規ファイルを形成する情報部のうちで、この未変更情報部以外の情報部である書込対象情報部を記憶媒体に書き込むようにされる。また、上記管理手段は、書き込み手段により書き込まれた書込対象情報部と、原ファイルにおいて未変更情報部と同一とされる内容を有する情報部である引用情報部とにより、新規ファイルが形成されるものとして管理するようにされる。
そして、書き込み手順は、新規ファイルを形成する所定の情報部のうちで、原ファイルの内容からの変更が無かったとされる未変更情報部がある場合には、新規ファイルを形成する情報部のうちで、この未変更情報部以外の情報部である書込対象情報部を記憶媒体に書き込むように構成する。また、管理手順は、書き込み手順により書き込まれた書込対象情報部と、原ファイルにおいて未変更情報部と同一とされる内容を有する情報部である引用情報部とにより新規ファイルが形成されるものとして管理するようにされる。
そのうえで、記憶媒体に記憶済みであった原ファイルにおける所要の或る情報部の内容を変更して作成した新規ファイルを記憶媒体に記憶して管理するのにあたっては、先ず、新規ファイルを形成する所定の情報部のうちで、原ファイルの内容からの変更が無かったとされる未変更情報部がある場合には、この未変更情報部以外の情報部を、書込対象情報部として、実際に記憶媒体に書き込んで記憶させることとしている。つまり、この未変更情報部以外の情報部(書込対象情報部)については、実際のデータ書き込みが実行される。
また、これとともに、新規ファイルについては、上記のようにして実際に書き込みが行われた未変更情報部以外の情報部と、原ファイルにおいて未変更情報部と同一の内容を有する情報部(引用情報部)とにより、新規ファイルが形成されるものとして管理するようにされる。
このような処理が実行される結果、新規ファイルは、実際に書き込みが行われた未変更情報部以外の情報部(書込対象情報部)と、本来は原ファイルを形成するデータ部分である、未変更情報部と同一内容の情報部とにより形成されることになる。つまり、新規ファイルは、未変更部領域については、原ファイルにおける該当の情報部を引用、共有することでファイルとしての全体構造を形成する。
この図に示すデジタルビデオカメラ1において、光学系部2は、撮像レンズ、絞りなどを備えて成り、入射された光を撮像光として、光電変換部3に結像させる。また、光学系部2においては、フォーカス(焦点)調整のためのフォーカス調整機構や、絞り値に応じて絞りを可変する絞り可変機構などを備えているものとされ、このような機構部の駆動は、カメラ機能部6から出力される駆動信号によって行われる。カメラ機能部6は、CPU10の制御に応じて、しかるべきフォーカス状態や絞りの状態等が得られるように所要の駆動信号を出力するようにされている。
また、例えば光学ズーム機能を与えることとした場合には、光学系部2においてズームレンズを移動させるズーム機構を設けると共に、上記と同様にして、CPU10の制御に応じて上記ズーム機構を移動させる駆動部を設けるようにすればよい。さらに、カメラ機能部6として、ストロボを設けたうえで、ストロボ発光機能を与えるように構成することもできる。
表示部7として採用される実際のディスプレイデバイスについては特に限定されるべきものではないが、現状においては、広く液晶ディスプレイパネルが採用されている。
また、本実施の形態のデジタルビデオカメラは、スチルカメラ機能も備える。つまり、撮像画像信号について、写真としての所定形式による静止画データファイルを生成することが可能とされているが、このような画像処理も、ビデオ信号処理部4によって行われる。
画像入出力部5は、外部から所定方式のビデオ信号を入力可能ともされており、この入力したビデオ信号をビデオ信号処理部4の処理を経て表示部7に表示させることが可能とされる。また、ビデオ信号処理部4は、画像入出力部5が入力したビデオ信号について、光電変換部3から入力されたアナログビデオ信号と同様にして、記録用データに変換してメディアコントローラ13に転送することもできる。
これに対応して、画像入出力部5は、例えば所定方式に従った映像(画像)信号出力端子/映像信号入力端子を備える。
先ず、音声入力については、音声入出力部9としてマイクロフォンなどを備え、外部音声の収音を行って音声信号に変換して音声を入力するようにされる。そして、このようにして入力した音声信号を音声処理部8に出力する。音声処理部8は、例えば、撮像画像の圧縮符号化に対応する音声圧縮符号化方式により符号化された圧縮オーディオデータに変換するなどの音声信号処理を施す。
上記AVファイルとしてのデータは、記録用データとして、例えばCPU10の制御によってメディアコントローラ13に転送される。また、CPU10は、ビデオ信号処理部4によって生成された写真画像としての所定形式の静止画データファイルについても、記録用データとしてメディアコントローラ13に転送することができる。
また、この場合のHDDとしては、例えばデジタルビデオカメラ1に固定的に内蔵されるものとしてもよいし、デジタルビデオカメラ1(ホスト)に対して装脱可能な、所定の規格に従ったリムーバブル形態とされてもよい。
光ディスク及び光磁気ディスクなどに対応する場合の実際としては、これらの記録(記憶)媒体に対応してデータの書き込み/読み出しが可能に構成されたドライブとしてのデバイスを備え、これらのデバイスとメディアコントローラ13とを接続することになる。
また、半導体記憶装置に対応する場合は、半導体記憶装置の実際の規格に従って、この半導体記憶装置が装脱されるスロットを、デジタルビデオカメラ1の本体に備える。このスロットに対して半導体記憶装置が適正に装填されると、半導体記憶装置のピン端子がスロットのコネクタ部位の電極と接続され、これにより、半導体記憶装置は、メディアコントローラ13との間で通信が可能に接続されることになる。
この場合のビデオ信号処理部4及び音声処理部8は、それぞれ、上記のようにして転送されてきた圧縮ビデオデータ、圧縮オーディオデータについて、復調処理を含む所要の再生信号処理を実行する。これにより、圧縮ビデオデータを再生した画像を表示部7にて表示するとともに、この画像の再生時間に同期して、圧縮オーディオデータを再生して得られる音声信号を、音声入出力部9が有するとされるスピーカにより音声として出力させたり、ヘッドフォン端子から出力させることができる。
上記のようにしてメディアに記憶されるファイルは、通常は、所定フォーマットによるファイルシステムにより管理されることになるのであるが、本実施の形態としては、FAT(File Allocation Table)ファイルシステムにより管理されるものとしている。FATファイルシステムは、周知のようにして、ツリー型のディレクトリ構造によりファイルを管理するようにされており、また、データの書き込み/読み出しについては、クラスタといわれる論理的な最小データ管理単位により行うものとされている。クラスタは、メディアにおける物理的なデータ書き込み/読み出しの最小単位であるセクタを所定数にまとめたものが1単位となる。
先ず、この階層モデルとしては、ソフトウェア層と、その下層となるハードウェア層に大別される。
ソフトウェア層は、この場合には、メディアに対してホスト(実施の形態ではデジタルビデオカメラ1)となるデバイスにおいて、CPUが実行するプログラム、及び各種ファームウェア、ミドルウェアなどにより実現されるソフトウェア処理が対応するものとされる。この場合のソフトウェア層は、図示するように、上層から下層にかけて、アプリケーション100、ファイルシステム101、デバイスドライバ102の各層が位置する。
ハードウェア層には、メディアそのものの物理的な記憶領域が位置するものとして考えることができる。
このファイルシステム101では、アプリケーション100からのファイルレベルによるアクセス要求を、FATファイルシステムのフォーマットにおけるデータの管理単位となるクラスタのレベルに変換して、デバイスドライバ102に対してアクセス要求を行う。
デバイスドライバ102は、メディア103からのセクタレベルでのアクセス応答、つまりセクタ単位でのデータの受け取りを行い、この受け取ったデータについて、クラスタ単位によるデータとして扱ってファイルシステム101に受け渡す(クラスタレベルでのアクセス応答)。
ファイルシステム101は、デバイスドライバ102から受け取ったデータを、ファイルレベルのデータとしてアプリケーション100に受け渡すようにされる。アプリケーション100は、ファイルとして受け取ったデータについて、例えばユーザによる操作入力などに応じたアプリケーションレベルでの所要の処理を実行する。
FATの形式としては複数が規定されているのであるが、ここでは、FAT16及びFAT32の各形式に対応するフォーマット構造を示すこととする。
先ず、図3の左側に示されるFAT16に対応するフォーマット構造から説明する。
この図に示す構造は、LBA(Logical Block Addressing)に従った論理的なものとなっている。つまり、最も上を先頭セクタ(LBA=0)として、以降、下に向かってブロック(セクタ)の番号が進んでいくものとなる。
また、FATのファイルシステムでは、1つの物理的記憶領域を複数のパーティションに分割可能とされているが、ここでは説明の便宜上、1パーティションとした場合のフォーマット構造を示している。
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)のためのコード(起動コード)が格納される領域である。
また、続くバイト位置01h〜03hによる3バイトの領域は、該当パーティションの開始セクタをCHS(Cylinder/Head/Sector)により表現した値が格納される。バイト位置05h〜07hから成る3バイトの領域により、該当パーティションの終了セクタをCHSにより表現した値が格納される。
また、バイト位置08h〜0Bhによる4バイトの領域により、該当パーティションの開始セクタをLBAにより示す値を格納することとしている。
MBRとしての先頭セクタに続けては所定セクタ数による空き領域を設けることとしている。そして、この空き領域より後となるセクタ領域により、パーティション単位の領域を形成する。
このシステム領域において先頭セクタから開始される所定バイト数の領域は、BPB(BIOS Parameter Block/Boot Parameter Block)とされ、ここでは現パーティションに関して、例えばホスト側のBIOS(Basic Input/Output System)などのように、ブロックデバイスコントロールのためのプログラムが利用すべき所要のデータが格納される。BPBに格納する情報においては、次に説明するFAT領域の数、メインのFAT領域の開始セクタ、FAT領域のセクタ数などの情報を含む。
FAT16フォーマットでは、クラスタ番号を2バイト(16ビット)により表すこととしており、これに応じて、FATエントリの個々のサイズも2バイトとされている。
FAT32対応のフォーマット構造としても、LBA=0で表される先頭セクタにMBRを配置している。そして、このMBRに続けて配置する所定セクタ数の空き領域に続けて、パーティション単位の領域を配置していくようにされる。
FSinfoは、該当パーティションにおける空き容量を計算するのに利用する所定の情報を格納する領域である。FAT1,FAT2のFAT領域は、FSinfoに続けて順次配置される。
FAT32のフォーマット構造では、ルートディレクトリはデータ領域内におかれることなっている。データ領域におけるルートディレクトリの開始クラスタ番号は、BPBにおける所定領域(RootClus)に格納される値により示されており、ルートディレクトリにアクセスするときには、上記RootClusを参照して認識したクラスタ番号にアクセスするようにされる。RootClusが示すルートディレクトリの開始クラスタ番号は、通常、2である。
この場合、ディレクトリエントリは32バイトとされている。この図においては、上位バイトから下位バイトまでの各バイト位置を、0h〜1Fhまでの値により示している。
ディレクトリエントリを形成する32バイトにおいて、最上位のバイト位置0hからバイト位置7hまでの8バイトの領域は、現ディレクトリエントリが示す現ファイル又は現ディレクトリの名称を格納する。
続く下位のバイト位置8hからバイト位置Ahまでの3バイトの領域は、現ファイルのファイル形式に応じた拡張子が格納される。
バイト位置Chは、ここでは予約領域とされている。
バイト位置Dh〜Fhまでの3バイトの領域は、現ファイル/現ディレクトリの作成時刻を示す値を格納する。
バイト位置10h−11hによる2バイトの領域は、現ファイル/現ディレクトリの作成日付を示す値を格納する。
バイト位置12h−13hによる2バイトの領域は、現ファイル/現ディレクトリに対するアクセスが最後に行われた日(最終アクセス日付)を示す値を格納する。
バイト位置18h−19hによる2バイト領域は、現ファイル/現ディレクトリについての記録(最後の更新)が実行された日付(記録日付)を示す値を格納する。
バイト位置1Ch〜1Fhまでの4バイトの領域は、現ファイル/現ディレクトリについてのサイズ(容量)を示す値を格納する。
ここでは、データ領域において、少なくともファイルA、ファイルB、ファイルC、ファイルDが記憶されているものとしたうえで、ファイルA,B,C,Dのディレクトリエントリを、それぞれ図6(a)(b)(c)(d)に示す。なお、この図における説明としては、ディレクトリエントリにおける先頭クラスタ番号(バイト位置14h-15h/1Ah-1Bh)
の情報が主要であることから、他の領域の情報については省略している箇所がある。
また、この図6(e)に示すFAT領域におけるFATエントリは、00000000h、00000010h、00000020h、00000030h・・・として示されるように、FATエントリに対応するクラスタ番号の値が1桁ごとにインクリメントされる行と、各行が示すクラスタ番号の値に対して足し合わせる最下位桁の値である、+00h〜+0Fhが示される列とのマトリクスにより配列されている。例えば、00000000hの行と+07hの列が交差する位置のFATエントリは、クラスタ番号00000007hに対応する。
そして、上記FATエントリに格納する値として、現クラスタの次にチェインするクラスタ番号は、00000002h〜0FFFFFF6hで表すこととしている。また、EOF(該当クラスタを含むファイルにおける最終クラスタ(ファイルの終端クラスタ))については、EOF=0FFFFFFFhにより表すこととしている。また、図6(e)においては、未使用クラスタであることを「−」で示しているが、例えば実際には00000000hの値により表すこととしている。
ファイルアクセスのコマンドが絶対パスによるものである場合を例に挙げると、ファイル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に対するアクセスが行われることになる。
また、データ領域に記憶されるファイルについての、ツリー型ディレクトリ構造による管理は、ディレクトリエントリにより表現されているものであることも分かる。
先ず、ファイル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の順に従ったクラスタに記憶されるデータの連結により形成されることが表現される。
本実施の形態のデジタルビデオカメラ1によりメディアに記憶させることのできるAV(Audio Video)データファイルのファイルフォーマットの例として、ここでは、ISO Base Media File Format、あるいはMP4 File Formatなどに準拠したものであることとする。これらのフォーマットに従った本実施の形態のAVファイルの基本構造としては次のようになる。
図示するようにして、1つのAVファイルは、ヘッダ部A1、データ部A2、及びリソース部A3の3つの領域(情報部)に分けることができる。
ヘッダ部A1は、ファイルの先頭に配置される領域で、ファイル名、ファイルサイズ、再生互換性情報などの他、ヘッダ情報として格納すべき所定の情報が格納される。
データ部A2には、AVファイルを形成するビデオデータ(画像データ)、オーディオデータなどが所定のデータ要素単位により所定規則に従って格納される領域である。例として、ビデオデータとして動画再生に使用されるデータ要素単位であれば、JPEG(Joint Photographic Expert Group)形式などに代表される、所定の画像圧縮方式により圧縮された1つの静止画像データの単位などとなる。
リソース部A3は、上記データ部A2におけるデータ分割単位の位置情報などをはじめ、データ部A2に格納されるデータを再生出力(Presentation)するのに必要とされる所定の情報から成る領域である。ファイル再生にあたっては、このデータ部A2に格納される情報を読み込んで解釈し、解釈結果に従って、データ部A2から指定されるデータ要素単位を読み出してデコード処理を実行していく。これにより、例えば編集意図に従った内容による再生出力が実現される。
しかしながら、下記の理由で、実際のアプリケーションとしては、図7に示す構造によりメディアへの書き込みが行われることが通常であり、本実施の形態としても、これに従っている。
そのうえで、リソース部A3に格納される情報には、メディア上でのデータ分割単位の記録位置などの情報も含まれる。従って、リソース部A3は、先にデータ部A2の全てのデータがメディアに書き込まれた後、あるいは、データ部A2の全てのデータについてのメディアへの記録位置が確定した後でなければ生成することができない、ということになる。
このような事情があるにもかかわらず、ヘッダ部A1に続いて先ずリソース部A3が配置され、その後にデータ部A2が配置される構造によりメディアへの書き込みを実行するとすれば、そのための処理は相当に複雑なものとなる。つまり、例えばデータ部A2としてのデータをメディアに書き込まずにメモリ領域などに保持しておいたうえで、データ部A2をメディアに書き込んだ結果を推定するなどしてリソース部A3に格納すべき情報を生成し、この後に改めて、リソース部A3−データ部A2の順で、メディアに対する書き込みを実行しなければならない。また、このような書き込み手順では、相当のデータ量を有するデータ部A2のデータをバッファリングできるだけのメモリ容量も確保する必要が生じる。
これに対して、図7に示す構造であれば、ヘッダ部A1に続けて、データ部A2のデータのメディアへの物理的な書き込みを実行していきながら、その書き込み結果に応じてリソース部A3の情報も逐次生成していくことができる。そして、データ部A2のデータの書き込みが終了した時点では、リソース部A3の情報も完成していることになり、即座にリソース部A3のデータもメディアに書き込むことができる。
このようにして、本実施の形態のAVファイルは、図7に示す構造とすることがデータ書き込み処理に際して非常に効率的、合理的であり、この観点から、本実施の形態の場合も含め、図7のファイル構造を採用することが通常となっているものである。
ただし、確認のために述べておくと、本発明は、ファイル先頭からヘッダ部A1−リソース部A3−データ部A2の順で配置するAVファイルの構造であっても適用されるものであり、同様の効果が得られる。
ftypは、現ファイルのファイルタイプ、現ファイルを形成するBox typeごとのサイズ(データ長)、brand,versionなどといわれるファイルの再生互換性などの情報を格納するBoxとされる
moovは、ファイル出力(再生)などに必要とされるメタデータ(meta data)を格納するBoxとされる
mdatは、ファイル再生に使用される、例えばビデオ、オーディオなどをはじめとした実データ(media data)を格納するBoxとされる。
free、skipは、free spaceとして規定されるもので、ファイル再生には無関係であり無視されるべき領域として扱われるBoxとなる。
また、この場合においては、AVファイルのヘッダ部A1におけるftype Boxのサイズにより、ftype Boxの終端位置がクラスタの終端と一致しておらずに、クラスタの中途位置にある場合には、ヘッダ部A1におけるftype Boxの終端位置から、この終端位置を含むクラスタの終端までの領域をfree Box(又はskip Box)により埋めることができる。このfree Boxにより、ヘッダ部A1とデータ部A2との境界をクラスタ境界とするように調整することができ、これにより、データ部A2の開始位置をクラスタの先頭と一致させることで、データ部A2に対するアクセスを効率的なものとすることができる。
また、データ部A2においても、mdat Boxの終端位置から、この終端位置を含むクラスタの終端までの領域をfree Box(又はskip Box)により埋めることで、リソース部A3の開始位置をクラスタの先頭と一致させるように調整して、リソース部A3に対するアクセスの効率が高くなるようにしている。
なお、ビデオ/オーディオなどの実データ(mdat)以外の、ヘッダ情報(ftyp)やリソース情報(moov)のみを変更するような編集としては、次のような事例を挙げることができる。
1.ヘッダ情報(ftyp)におけるbrand,versionなどの再生互換情報のみを変更する場合。例えば、ファイルAでは、brandの情報単位として、或る1つのbrandのみが登録されていたとする。そこで、brandの情報について、さらに他のbrandを追加登録する変更を行い、ファイルBを新規作成して保存する。
この場合において、リソース情報(moov)は変更しないものとすると、ファイルAとファイルBとでは、再生出力(presentation)される内容は変わらないが、再生可能なbrandについてはファイルBのほうが追加登録分により拡張されている。
2.例えばファイルAを基としたpresentationの変更のための編集処理などに応じて、ファイルAのリソース情報(moov)の内容を基にして、presentationの内容を変更する場合。この場合においては、データ部A2において格納するmdatの内容はファイルA,Bで同じであるが、再生出力される態様、つまり、presentationの結果が異なるものとなる。
次の手順2としては、上記したデバイスドライバ102のアクセスにより、メディア103からファイルAを成すデータの内容の一部が読み出されることになる。このときにどのようなデータのまとまりにより読み出しを実行するのかについては、読み出したデータをクラスタレベルで保持するワークRAM領域のサイズや、データ単位構造などに応じたものとなる。
そして、デバイスドライバ102は、読み出したファイルAの内容のデータをファイルシステム101経由でアプリケーション100に渡していくようにされる。この過程で、メディア103から読み出されるデータは、セクタレベルからクラスタレベルに、さらにアプリケーションデータのレベルに変換されていく。
なお、手順3において、上記変更対象のデータ部分について変更の必要が無い場合には、そのままファイルAとして読み出したそのままの内容により、ファイルBとしてメディア103に書き込むための処理が実行される。
そして、この手順1〜手順4までの処理を、ファイルBを形成する全ての内容のデータについてのメディア103への書き込み処理が終了するまで繰り返し実行することになる。つまり、変更元のファイル(ファイルA)の内容を変更して新規ファイル(ファイルB)を作成してメディアに記憶させるためには、変更元のファイルの一部データ内容をメディアから一旦読み出して、必要に応じて変更を行い、このデータを、新規ファイルのデータ部分としてメディアに再度書き込むという処理を、新規ファイルを形成する全データの書き込みが完了するまで繰り返し実行する。
現実的な問題として、mdat Boxは、例えば画像、音声などの実データなどであるから、そのデータサイズは、ftype Box及びmoov Boxに対して相当に大きく、ファイルの大部分を占める。従って、図7の場合において、mdat Boxの読み出し/書き込みを実行することは、ファイルBを作成/保存するための処理時間全体においても相当に冗長な時間を含んでいるということになる。また、このことは、換言すれば、図7に示されるケースにおいては、mdat Boxの読み出し/書き込みが省略されるようにすれば、ファイルBを作成/保存するための処理時間は相当に短縮されるというメリットが得られることにつながる。ただし、単純にmdat Boxの読み出し/書き込みの処理を省略しても、ファイルBとしてはmdat Boxを有さない不完全な構造のファイルとなるので、何ら意味は成さない。
本実施の形態としては、上記したことを背景として、新規のファイルBとしても、mdat Boxを有する構造によりメディアに記録されるようにしながらも、図8に示されるようなmdat Boxの読み出し/書き込みの処理が省略されるようにする。このための構成を、以降説明していく。
先ず、オリジナルファイルのファイルAとしては次のようにして管理されている。
つまり、ファイルAがメディアに記録されていることにより、同じメディアに、ファイルAのディレクトリエントリ(D1)が記録されている。このディレクトリエントリD1が格納するファイルの先頭クラスタ番号(バイト位置14h-15h/1Ah-1Bh)が指示するクラスタには、矢印a−1として示すように、ファイルAのファイル先頭である、ヘッダ部A1(D2)のデータ(ftyp Box)の先頭部分が記録される。
そして、このヘッダ部A1の先頭データ部分を格納するクラスタを起点として、FAT領域を参照してファイルAについてのクラスタチェインを辿っていくことで、ヘッダ部A1(D2)に続けて、矢印a−2に示すように、ファイルAのデータ部A2(D3)が連結され、さらにファイルAのデータ部A2(D3)に続けて、矢印a−3に示すように、ファイルAのリソース部A3(D4)が連結されることになる。
ヘッダ/リソース編集ファイルであるファイルBについても、メディアに記録されたファイルであるから、ファイルBのディレクトリエントリ(D5)が作成されてメディアに記録されている。
このファイルBのディレクトリエントリ(D5)が格納する先頭クラスタ番号が指示するクラスタには、矢印b−1として示すように、ファイルBのファイル先頭であるヘッダ部A1(D6)のデータ(ftyp Box)の先頭部分が記録される。
そして、以降、ファイルBのFAT領域を参照してクラスタチェインを辿っていくようにすると、この場合には、ヘッダ部A1(D6)の終端クラスタに続けて、矢印b−2に示すように、本来はファイルAの形成要素であるデータ部A2(D3)が連結される。そして、データ部A2(D3)の終端に続けては、ファイルAのリソース部A3(D4)ではなく、ファイルBのリソース部A3(D7)が連結されるようにして管理される。
確認のために述べておくと、ヘッダ/リソース編集ファイルのデータ部A2におけるmdat Boxに格納されるべき内容は、オリジナルファイルのデータ部A2と同一であるべきものなので、このようにしてデータ部A2が共有されたとしても、ファイルBを再生することによっては、意図通りのpresentation結果が得られる。
換言すれば、ヘッダ/リソース編集ファイルの生成/保存に要する処理時間は、上記している、ヘッダ部A1とリソース部A3のメディアへの書き込み処理時間と、FAT領域の所要の内容を書き換える処理時間との合計となるものであり、ヘッダ/リソース編集ファイルの作成/保存にあたってのデータ書き込み処理に要する時間は省かれる。
データ書き込み処理に要する時間は、書き込むべきデータ量の増加に応じて長くなるが、本実施の形態では、ファイル全体において最もサイズ占有率が高く、また、データサイズそのものが大容量の傾向にあるデータ部A2のデータ書き込み処理を省略することとしている。従って、本実施の形態におけるヘッダ/リソース編集ファイルの生成/保存のためのデータ書き込み処理の時間は、大幅に短縮されることになる。特に、HDD、光学ディスク状記録媒体などのようにして、メディアへのアクセスのためにヘッドなどの物理的移動(シーク動作)が伴うような場合には、その分、シーク動作が実行される機会も減少することになるので、データ書き込み時間の短縮効果はより顕著に得られる。
本発明においては、1つのオリジナルファイルを基として、複数のヘッダ/リソース編集ファイルを生成することが可能であり、これら複数のヘッダ/リソース編集ファイルは、何れもオリジナルファイルのデータ部A2を共有、引用する。従って、1つのオリジナルファイルを基とするヘッダ/リソース編集ファイルの数が多くなるほど、このメディア容量の使用効率は高くなっていく。
これに対して本実施の形態としては、以降の説明から理解されるように、ファイル管理のために本来的に採用されるファイルシステムの枠内で本実施の形態に特有の仕組みを与えることで、複数のファイル間におけるデータ部A2の共有を実現している。また、このようにして、本実施の形態としては、あくまでもファイルシステムの枠組みのなかでデータ部分の共有を実現していることで、メディアについて、上記磁気テープも含め、HDD、光学ディスク状記録媒体、半導体メディア装置、その他が対象となるもので、広い汎用性が与えられている、ということもいえる。
先ず、オリジナルファイルのファイルAは、ヘッダ部A1についてはクラスタ番号[00000010h→00000011h→00000012h]の3クラスタの連結により形成され、ヘッダ部A1の終端クラスタ(00000012h)に続くデータ部A2については、クラスタ番号[00000013h〜0000001Ch]までの10クラスタの連結により形成され、データ部A2の終端クラスタ(0000001Ch)に続くリソース部A3については、クラスタ番号[0000001Dh→0000001Eh→0000001Fh]の3クラスタの連結により形成されていることが示される。
先に図3により説明したように、FATファイルシステムによるフォーマット構造では、FAT1,FAT2として示すように、複数のFAT領域を備えてよいことになっている。FAT1,FAT2の2つのFAT領域を形成した場合、通常はFAT1が実際のファイル管理に使用されるFAT領域で、FAT2は、予備領域、バックアップ領域として、FAT1の内容がコピーなどされるようにして使用される。
本実施の形態では、FAT1のFATエントリ構造について、次に説明するようにして定義すると共に、FAT2については、ヘッダ/リソース編集ファイルが、オリジナルファイルのデータ部A2を引用できるようにするためのクラスタチェインを記述するための領域として使用するようにされる。これにより、例えば図10に示したように、オリジナルファイルのデータ部A2を、他のヘッダ/リソース編集ファイルが共有するファイル構造管理を可能とする。
この場合のFATエントリは、FATファイルシステムフォーマットがFAT32であることに対応して、32ビット(第0ビット〜第27ビット)とされている。そして、実際には、この32ビットにおける第4ビットから第27ビットまでの下位28ビットにより、チェイン先となる次のクラスタ番号を格納することとされている。そして、従来としては、残る上位第0ビット〜第3ビットまでの4ビットは未使用とされて、ビット値としては0,0,0,0(0h)を格納することとしていた。
本実施の形態では、これまで未使用であった上位4ビットについて、図のようにして定義する。つまり、この上位4ビットにおける最上位の第0ビットについては、引用元指示フラグの領域とする。
引用元指示フラグのビット値が0の場合には、現FATエントリの下位28ビットの領域は、通常に、次のチェイン先となるクラスタ番号を格納していることを示す。つまり、通常機能のFATエントリであることを示す。
これに対して、引用元指示フラグのビット値が1の場合には、現FATエントリの下位28ビットは、ヘッダ/リソース編集ファイルが引用すべきオリジナルファイルのデータ部A2の先頭のクラスタ番号、つまり、引用元となるデータ部分を格納する最初のクラスタ番号を格納していることを示す。
図9によれば、ファイルAは、ヘッダ部A1の先頭クラスタ番号が00000010hとされているので、ファイルの先頭クラスタの番号としても00000010hとなる。これに応じて、図12(a)に示すように、ファイルAのディレクトリエントリの先頭クラスタ番号の領域には、00000010hが格納される。
ファイルBのヘッダ部A1は、00000020hのクラスタのみであるから、ファイルの先頭クラスタ番号としても、この00000020hとなる。これに応じて、図12(b)に示すように、ファイルBのディレクトリエントリの先頭クラスタ番号の領域には、00000020hが格納される。
ファイルCのヘッダ部A1の先頭クラスタ(ファイル先頭クラスタ)は00000030hであり、これに応じて、ファイルCのディレクトリエントリの先頭クラスタ番号の領域にも、図12(c)に示すように、00000030hが格納される。
ファイルDのヘッダ部A1の先頭クラスタ(ファイル先頭クラスタ)は00000038hであり、これに応じて、ファイルCのディレクトリエントリの先頭クラスタ番号の領域にも、図12(c)に示すように、00000038hが格納される。
先ず、このFAT領域上で、オリジナルファイルであるファイルAがどのようにして管理されているのかについて述べる。なお、以降の説明にあたり、FAT1内のFATエントリについては、FATエントリ/FAT1と記載し、FAT2内のFATエントリについては、FATエントリ/FAT2と記載する場合がある。
なお、図10によるとファイルAのデータ部A2の領域は、クラスタ番号[00000013h〜0000001Ch]である。図13では、図示を見やすいものとするために、このデータ部A2の領域となるクラスタ番号のFATエントリ/FAT1の纏まりを、太枠で囲って示している。
図12(b)に示した、ファイルBに対応するディレクトリエントリの先頭クラスタ番号を参照すると00000020hが示されている。そこで、図13の手順1として示すようにして、先ずは、クラスタ番号00000020hのFATエントリ/FAT1を参照することになる。図10にて説明したようにファイルBのヘッダ部A1は、クラスタ00000020hの1クラスタのみとされている。従って、このファイルBのヘッダ部A1としてのクラスタ00000020hは、ヘッダ部A1における開始クラスタでもあるが、終端クラスタでもあることになる。
そして、このヘッダ部A1における終端クラスタとしてのクラスタ番号00000020hに対応するFATエントリ/FAT1には、図示するようにして、80000013hが格納されている。この場合、FATエントリ/FAT1の第0ビット〜第4ビットについて、8hの値となっているということは、ビット値としては、1,0,0,0とされていることになる。つまり、図11に示した引用元指示フラグについてビット値1が格納されていることになる。これにより、このクラスタ番号00000020hに対応するFATエントリ/FAT1の下位28ビットは、チェイン先のクラスタ番号ではなく、引用元のデータの開始クラスタ番号を示していることになる。
従って、この場合のFATエントリ/FAT1の下位28ビットは、ファイルAのデータ部A2の開始クラスタ番号を示すこととなる。ファイルAのデータ部A2の開始クラスタ番号としては00000013hであり、手順1として参照するクラスタ番号00000020hに対応するFATエントリ/FAT1には、上記のようにして、80000013hが格納される。つまり、引用元となるファイルAのデータ部A2の開始クラスタ番号を下位28ビットにより示している。
また、この場合のクラスタ番号00000013hに対応するFATエントリ/FAT1は、現ヘッダ/リソース編集ファイル(ここではファイルB)により引用されるデータ部A2の先頭クラスタに対応するが、本実施の形態では、手順3として、これと同じクラスタ番号のFATエントリ/FAT2も参照しておくようにされる。つまり、ここでは、クラスタ番号00000013hに対応するFATエントリ/FAT2を参照する。
この位置のFATエントリ/FAT2は、現ヘッダ/リソース編集ファイルが引用するデータ部A2の終端クラスタ番号を格納するものとして規定されている。ファイルBにとっての引用元であるファイルAのデータ部A2の終端クラスタは、図10及び図13のFAT1にも示されるように0000001Chであり、クラスタ番号00000013hに対応するFATエントリ/FAT2にも、この値が格納されている。
ここで仮に、通常にクラスタチェインを辿っていくと最終的には、クラスタ番号0000001FhのFATエントリ/FAT1が示すEOFに到達して終了してしまうことになる。つまり、リソース部A3としては、ファイルBのものではなく、ファイルAのものが連結されるという不都合が生じる。
しかし、先に手順3により、引用元となるデータを格納する終端クラスタ番号の情報を得ていることで、上記した不都合は生じない。つまり、ヘッダ/リソース編集ファイルについては、上記手順2以降においてFATエントリを参照して継続されるクラスタチェインは、上記手順3により得た終端クラスタ番号までで一旦止めることとしている。具体的には、引用元であるファイルAのデータ部A2についての、開始クラスタ番号00000013hからのクラスタチェインは、終端クラスタ番号0000001Chのクラスタにて止められる。これにより、上記したようにファイルAのリソース部のクラスタがチェインされることにはならない。
この復帰先クラスタ番号は、引用元データの開始クラスタ番号を格納するFATエントリ/FAT1と同じクラスタ番号に対応するFATエントリ/FAT2に格納することとしている。具体的には、ファイルBの場合であれば、引用元データの開始クラスタ番号を格納するFATエントリ/FAT1は、先に手順1により参照したクラスタ番号00000010hに対応するものであるから、復帰先クラスタ番号は、同じクラスタ番号00000010hに対応するFATエントリ/FAT2に格納されることになる。
手順4としては、このFATエントリ/FAT2における復帰先クラスタ番号を参照するようにされる。これにより、引用元データの終端クラスタにチェインさせるクラスタが認識される。図13のファイルBの場合には、この復帰先クラスタ番号として、00000021hが格納されている。
そして、次の手順5として、この場合の引用元データであるファイルAのデータ部A2の終端クラスタ番号0000001Chから、上記復帰先クラスタ番号00000021hにクラスタチェインさせることになる。つまり、クラスタ番号0000001ChのFATエントリ/FAT1には、0000001Dhが格納されているのにかかわらず、この場合には、クラスタ番号00000021hのFATエントリ/FAT1を参照すべきことになる。クラスタ番号00000021hのクラスタは、ファイルBのリソース部A3の開始クラスタである。これにより、ファイルAのデータ部A2の終端クラスタから、ファイルBのリソース部A3の開始クラスタに対してチェインが行われたことになる。以降、クラスタ番号00000021hのFATエントリ/FAT1を起点としてクラスタチェインを辿ることで、クラスタ番号00000021h−00000022h−00000023hの順によるクラスタチェインでリソース部A3を形成してEOFに至ることになる。
このようにして、FAT1,FAT2のFAT領域を使用することで、ファイルBについては、図10により示したとおりの構造で管理されることになる。
また、ここでの詳しい説明は省略するが、上記と同じ要領でクラスタチェインを辿っていくことで、他のヘッダ/リソース編集ファイルであるファイルC,Dについても、同じく図10に示したファイル構造により管理されるものとなる。
ここで、ヘッダ/リソース編集ファイルが、オリジナルファイルのデータ部A2を引用(共有)する構造として管理されるためには、2つのことが管理される必要がある。1つは、ヘッダ/リソース編集ファイルのヘッダ部A1の終端に続けて、オリジナルファイルのデータ部A2の先頭がチェイン(連結)されるように管理されることである。また、もう1つは、オリジナルファイルのデータ部A2の終端に続けて、ヘッダ/リソース編集ファイルのリソース部A3の先頭がチェイン(連結)されるように管理されることである。
また、後者の管理のためには、FAT2に対して、復帰先クラスタ番号、及び引用データの終端クラスタ番号を格納することとしている。
そこで、続いては、本実施の形態においてヘッダ/リソース編集ファイルを新規に生成/保存するための処理について説明する。
このために、ヘッダ部A1とリソース部A3については、先に図8により説明した手順1〜手順4を、それぞれヘッダ部A1の内容のデータについて繰り返し実行し、ソース部A3の内容のデータについて繰り返し実行するようにされる。これにより、オリジナルファイルのヘッダ部A1及びリソース部A3について変更した内容がメディアに実際に記録されることになる。
これに対して、オリジナルファイルからの内容変更が無いデータ部A2については、図8の手順1〜手順4による処理は実行せずに、これに代えて、図14に示す手順を実行する。
ファイルシステム101では、データの書き込み要求が、上記手順1のようにしてヘッダ/リソース編集ファイルにおけるデータ部A2についてのものである場合には、手順2として示すように、リソース編集ファイルのデータ部A2について、オリジナルファイルのデータ部A2が引用されるようにする(つまり、ヘッダ/リソース編集ファイルのデータ部A1の終端に続けてオリジナルファイルのデータ部A2の先頭がチェインされ、このデータ部A2の終端に続けてヘッダ/リソース編集ファイルのリソース部A3がチェインされるようにする)ためのFAT領域の編集処理を実行する。
この処理に応じて、デバイスドライバ102は、メディアのFAT1,FAT2の領域において必要とされるFATエントリの内容を書き換えるようにして、メディアに対するアクセスを実行する。このデバイスドライバ102によるアクセスにより、実際のメディアに記録されるFAT1,FAT2としては、リソース編集ファイルについてオリジナルファイルのデータ部A2を引用する構造として管理する内容を有することになる。
このステップS103及びステップS104の処理は、ヘッダ部A1のデータについて、先に図8に示した手順1〜手順4を繰り返すことに対応する。
そして、ここでは、上記のようにして決定した復帰先クラスタ番号numrtを、ヘッダ/リソース編集ファイルのヘッダ部A1の終端クラスタのクラスタ番号のFATエントリ/FAT2に対して格納するようにされる。図13におけるファイルBとの対応では、FAT2における00000020hのFATエントリに対して00000021hを格納している状態が、この処理結果に相当する。
そして、続くステップS108においては、先のステップS105において認識したクラスタ番号numdtに対応するFAT2のFATエントリに対して、上記ステップS107により認識したクラスタ番号numdeを格納する。これは、図13との対応では、FAT2のクラスタ番号00000013hのFATエントリに対して、0000001Chを格納する処理となる。つまり、ステップS108において認識したオリジナルファイルのデータ部A2の終端クラスタ番号は、ヘッダ/リソース編集ファイルにとって引用元となるデータを格納するクラスタのうちで終端となるクラスタの番号としての意義を持つ。
このようにしてステップS105〜ステップS109の処理が実行されることで、例えばFAT2に対する復帰先クラスタ番号及び引用データの終端クラスタ番号の書き込み、また、FAT1の引用ファイル数の情報についての書き換えが行われることになる。つまり、オリジナルファイルのデータ部A2を、今回新規に生成/保存するヘッダ/リソース編集ファイルが引用できるようにするためのFAT領域の内容の書き換えが完了したことになる。
なお、図13から理解されるように、FAT1におけるオリジナルファイルのデータ部A2の開始クラスタ番号に対応するFATエントリ/FAT2に格納される引用データの終端クラスタ番号は、1つのオリジナルファイルに対して複数のヘッダ/リソース編集ファイルが存在する場合には、これらのヘッダ/リソース編集ファイル間で共通に参照するものとなる。従って、ステップS108としての引用データの終端クラスタ番号を格納する処理は、或るオリジナルファイルに対して最初となるヘッダ/リソース編集ファイルを新規生成/保存するときにのみ実行して、同じオリジナルファイルに対して2番目以降のヘッダ/リソース編集ファイルを新規生成/保存するときには、省略するようにしてよい。ただし、ステップS108の処理をヘッダ/リソース編集ファイルを新規生成/保存するごとに実行したとしても、結果的に同じ値で書き換えられるのみであり実質的な内容変更は生じないので、何ら問題はない。
このステップS111の処理により、ヘッダ/リソース編集ファイルについてのリソース部A3のメディアへの記録が完了することを以て、ヘッダ/リソース編集ファイルについてのヘッダ部A1とリソース部A3の書き込みと、オリジナルファイルのデータ部A2を引用するためのFAT内容の変更が完了したことになる。つまり、ヘッダ/リソース編集ファイルのメディアへの記録が完了したとされる状態が得られたことになる。
なお、ステップS111としての書き込み処理としては、復帰先クラスタ番号numrtが示すクラスタを起点として記録を開始することになる。また、上記ステップS110、S111の処理としても、ファイルシステムの階層モデルとしてみた場合には、先のステップS103、S104と同様に、図8に示した手順が相当する。
例えばメディアに書き込むためのデータが、ファイル単位の処理としてアプリケーション100から渡されてきたとすると、クラスタ制御部203は、このファイルレベルのデータをクラスタレベルによるデータに変換する。そして、このクラスタレベルによるデータについてのメディアへの書き込みを、メディア制御部210の位置算出部211に指示する。
位置算出部211では、FAT制御部202により管理しているFAT領域の内容を参照して認識されるメディアの未使用領域のうちから、ファイルのデータを書き込むべきクラスタの位置(クラスタ番号)を算出する。そして、デバイスドライバ102に対して、書き込むべきクラスタ単位のデータを受け渡すと共に、このデータを書き込むべきクラスタ番号を指示する。デバイスドライバ102は、指示されたクラスタ番号について最終的には、メディア上の記憶領域の物理セクタのアドレスに変換して、セクタレベルによりメディアへのデータの書き込みを実行するようにされる。
例えば先ず、ディレクトリエントリ制御部201により今回記録するファイルについてのディレクトリエントリを作成する。このときには、FAT制御部202と連携して、FAT領域における空き領域から、ファイルを記録すべきクラスタを決定する。これに伴い、ディレクトリエントリにおける開始クラスタに格納する値も決まることになる。また、ファイルを記録すべきクラスタが決定されるのに応じて、FAT制御部202は、FAT領域において、このファイルについてのクラスタチェインなどの内容が示されるように、所要のクラスタ番号のFATエントリの値を書き換える。
そして、このようにして作成したディレクトリエントリ、及びFAT領域の書き換え内容を、先の説明と同様にして、クラスタ制御部203及びメディア制御部210(位置算出部211)の処理によって、メディアの所定領域に書き込んで記憶させる。
これは、ヘッダ部A1とリソース部A3は、データ部A2と比較してそのサイズは非常に小さいので、例えばヘッダ部A1のみがオリジナルファイルの内容から変更されて、リソース部A3については変更する必要がないとしても、書き換えの処理時間は非常に短いために、実質上特に問題がないことが理由である。
しかしながら、本発明としては、例えばヘッダ/リソース編集ファイルとして、リソース部A3について変更の無い場合には、リソース部A3についても、データ部A2と同様にして引用情報部として扱って、オリジナルファイルを引用できるようにファイル管理が行われるように構成してかまわない。
しかし、前述もしたように、FAT2は、FAT1の予備領域、バックアップ領域として、FAT1と同様の内容がコピーされるようにして使用される場合がある。このために、仕様として、本実施の形態のようにして、1つのFAT領域を復帰先クラスタ番号や引用データの終端クラスタ番号を格納すべき領域として使用するとしても、さらに、FATメインのFAT領域のためのバックアップ領域としてのFAT領域が必要となる場合があることが考えられる。
このような場合には、例えばFAT領域について3以上の領域を形成するフォーマットを採用すればよい。BPB内には、BPB_NumFATsといわれる、FAT領域数を示す情報が格納されている。そこで、このBPB_NumFATsについて3以上の値を設定してメディアフォーマットを実行すれば、3以上のFAT領域が形成される構造を得ることができる。
また、ファイルが記録される記憶媒体としても、実施の形態では、図1においてメディアコントローラ13と接続されているものを例示しているが、これら以外の各種記録媒体とされてよい。
Claims (4)
- 所定の複数の情報部により形成される形式を有し、記憶媒体に記憶済みとされていたファイルである原ファイルを基として、この原ファイルにおける所要の情報部の内容について変更することにより、新規の上記ファイルである新規ファイルとしての内容を生成する新規ファイル生成手段と、
上記新規ファイル生成手段により生成された新規ファイルの内容を上記記憶媒体に書き込んで記憶させる書き込み手段と、
上記記憶媒体に記憶されるファイルについて管理する管理手段とを備え、
上記書き込み手段は、上記新規ファイルを形成する所定の情報部のうちで、原ファイルの内容からの変更が無かったとされる未変更情報部がある場合には、上記新規ファイルを形成する情報部のうちで、この未変更情報部以外の情報部である書込対象情報部を記憶媒体に書き込むようにされ、
上記管理手段は、上記書き込み手段により書き込まれた上記書込対象情報部と、上記原ファイルにおいて上記未変更情報部と同一とされる内容を有する情報部である引用情報部とにより、上記新規ファイルが形成されるものとして管理する、
ことを特徴とする情報処理装置。 - 上記管理手段は、
ファイルを形成するとされるデータを、所定のデータサイズを有する最小管理単位の連結による構造として管理するようにされたうえで、
上記新規ファイルを管理するために、
新規ファイルの構造として、上記引用情報部の前方に所定の書込対象情報部が配置される場合には、この所定の書込対象情報部のデータを格納する最小管理単位のうちで終端となる最小管理単位に続けて、上記引用情報部のデータを格納する最小管理単位のうちで先頭となる最小管理単位が連結されるようにして管理し、
新規ファイルの構造として、上記引用情報部の後方に所定の書込対象情報部が配置される場合には、上記引用情報部のデータを格納する最小管理単位のうちで終端となる最小管理単位に続けて、この所定の書込対象情報部のデータを格納する最小管理単位のうちで先頭となる最小管理単位が連結されるようにして管理する、
ことを特徴とする請求項1に記載の情報処理装置。 - 所定の複数の情報部により形成される形式を有し、記憶媒体に記憶済みとされていたファイルである原ファイルを基として、この原ファイルにおける所要の情報部の内容について変更することにより、新規の上記ファイルである新規ファイルとしての内容を生成する新規ファイル生成手順と、
上記新規ファイル生成手順により生成された新規ファイルの内容を上記記憶媒体に書き込んで記憶させる書き込み手順と、
上記記憶媒体に記憶されるファイルについて管理する管理手順とを実行するものとされ、
上記書き込み手順は、上記新規ファイルを形成する所定の情報部のうちで、原ファイルの内容からの変更が無かったとされる未変更情報部がある場合には、上記新規ファイルを形成する情報部のうちで、この未変更情報部以外の情報部である書込対象情報部を記憶媒体に書き込むようにされ、
上記管理手順は、上記書き込み手順により書き込まれた上記書込対象情報部と、上記原ファイルにおいて上記未変更情報部と同一とされる内容を有する情報部である引用情報部とにより、上記新規ファイルが形成されるものとして管理する、
ことを特徴とする情報処理方法。 - 所定の複数の情報部により形成される形式を有し、記憶媒体に記憶済みとされていたファイルである原ファイルを基として、この原ファイルにおける所要の情報部の内容について変更することにより、新規の上記ファイルである新規ファイルとしての内容を生成する新規ファイル生成手順と、
上記新規ファイル生成手順により生成された新規ファイルの内容を上記記憶媒体に書き込んで記憶させる書き込み手順と、
上記記憶媒体に記憶されるファイルについて管理する管理手順とを情報処理装置に実行させるものとされ、
上記書き込み手順は、上記新規ファイルを形成する所定の情報部のうちで、原ファイルの内容からの変更が無かったとされる未変更情報部がある場合には、上記新規ファイルを形成する情報部のうちで、この未変更情報部以外の情報部である書込対象情報部を記憶媒体に書き込むようにされ、
上記管理手順は、上記書き込み手順により書き込まれた上記書込対象情報部と、上記原ファイルにおいて上記未変更情報部と同一とされる内容を有する情報部である引用情報部とにより、上記新規ファイルが形成されるものとして管理する、
ことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004327256A JP4561323B2 (ja) | 2004-11-11 | 2004-11-11 | 情報処理装置、情報処理方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004327256A JP4561323B2 (ja) | 2004-11-11 | 2004-11-11 | 情報処理装置、情報処理方法、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006139439A true JP2006139439A (ja) | 2006-06-01 |
JP4561323B2 JP4561323B2 (ja) | 2010-10-13 |
Family
ID=36620238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004327256A Expired - Fee Related JP4561323B2 (ja) | 2004-11-11 | 2004-11-11 | 情報処理装置、情報処理方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4561323B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012512460A (ja) * | 2008-12-16 | 2012-05-31 | サンディスク アイエル リミテッド | 廃棄可能ファイル |
JP2012512462A (ja) * | 2008-12-16 | 2012-05-31 | サンディスク アイエル リミテッド | 廃棄可能ファイル |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08320817A (ja) * | 1995-05-25 | 1996-12-03 | Toshiba Corp | ファイルシステム管理方法 |
JPH11162089A (ja) * | 1997-11-28 | 1999-06-18 | Toshiba Corp | データ再生制御装置、同装置に用いられる記録媒体、データ再生制御方法 |
JP2000259459A (ja) * | 1999-03-08 | 2000-09-22 | Matsushita Electric Ind Co Ltd | ファイル記憶媒体、ファイル管理装置、ファイル管理プログラム記憶媒体 |
JP2001051878A (ja) * | 1999-08-11 | 2001-02-23 | Sony Corp | ファイル管理装置及びファイル管理方法 |
JP2002373099A (ja) * | 2001-06-14 | 2002-12-26 | Sharp Corp | ディスク管理方法 |
-
2004
- 2004-11-11 JP JP2004327256A patent/JP4561323B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08320817A (ja) * | 1995-05-25 | 1996-12-03 | Toshiba Corp | ファイルシステム管理方法 |
JPH11162089A (ja) * | 1997-11-28 | 1999-06-18 | Toshiba Corp | データ再生制御装置、同装置に用いられる記録媒体、データ再生制御方法 |
JP2000259459A (ja) * | 1999-03-08 | 2000-09-22 | Matsushita Electric Ind Co Ltd | ファイル記憶媒体、ファイル管理装置、ファイル管理プログラム記憶媒体 |
JP2001051878A (ja) * | 1999-08-11 | 2001-02-23 | Sony Corp | ファイル管理装置及びファイル管理方法 |
JP2002373099A (ja) * | 2001-06-14 | 2002-12-26 | Sharp Corp | ディスク管理方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012512460A (ja) * | 2008-12-16 | 2012-05-31 | サンディスク アイエル リミテッド | 廃棄可能ファイル |
JP2012512462A (ja) * | 2008-12-16 | 2012-05-31 | サンディスク アイエル リミテッド | 廃棄可能ファイル |
Also Published As
Publication number | Publication date |
---|---|
JP4561323B2 (ja) | 2010-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0971358B1 (en) | Data processing apparatus and file management method therefor | |
JP5129156B2 (ja) | アクセス装置、および、ライトワンス記録システム | |
US8977802B2 (en) | Access device, information recording device, controller, real time information recording system, access method, and program | |
US20120102076A1 (en) | Information processing apparatus, information processing method, and program | |
GB2383859A (en) | Memory controller managing a file allocation table for a memory card | |
JP4487954B2 (ja) | データ記録装置、データ記録方法、及びプログラム | |
JP2007233638A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
US9015444B2 (en) | Access apparatus and available storage space calculation method | |
US7051054B1 (en) | Method and apparatus for emulating read/write file system on a write-once storage disk | |
WO2004042724A1 (en) | Record carrier having a main file system area and a virtual file system area | |
JP4561323B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2003052006A (ja) | 情報編集制御装置、情報編集方法、及びディスク装置 | |
JP2007108853A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP2006178633A (ja) | 情報処理装置、情報処理方法、プログラム | |
US20070055819A1 (en) | Information recording medium and its control method | |
JP2006164017A (ja) | 情報処理装置、情報処理方法、プログラム | |
WO2018186455A1 (ja) | 不揮発性メモリにおける空き容量管理方法、及び不揮発性メモリを含む情報記録装置にデータを記録するアクセス装置、情報記録装置および情報記録システム | |
JP2006178632A (ja) | 情報処理装置、情報処理方法、プログラム | |
JP2010020845A (ja) | 記録媒体初期化方法及び記録媒体初期化装置 | |
JP4734898B2 (ja) | 情報処理装置、情報処理方法、プログラム | |
JP2007059004A (ja) | 情報処理装置および方法、プログラム並びに記録媒体 | |
JP2006139845A (ja) | 情報処理装置、情報処理方法、プログラム | |
US7424573B2 (en) | Information processing apparatus, method, and program for formatting multiple recording media integrated as one | |
JP2006133855A (ja) | 情報処理装置、情報処理方法、プログラム | |
JP2006146812A (ja) | 情報処理装置、情報処理方法、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070822 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100405 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100420 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100527 |
|
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: 20100706 |
|
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: 20100719 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130806 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130806 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |