説明

ファイル編集装置

【構成】JPEGファイルは、JPEGデータに加えて0thIFDおよび0thIFDvalueを収め、さらに予約領域1および2の属性を記述した予約領域管理情報を収める。ここで、予約領域管理情報は、0thIFDに接するようにJPEGファイルに収められる。追記操作または削除操作が行われると、0thIFDと予約領域管理情報との位置関係が変更され、位置関係の変更量に相当するサイズ変動が生じるように0thIFDが編集される。予約領域管理情報の記述は、0thIFDの編集に対応して更新される。
【効果】0thIFDを形成する既存のタグ情報を始めとする既存の付属情報群の欠損を回避しつつ、0thIFDを編集することができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ファイル編集装置に関し、特に電子ファイルに収められた付属情報を編集する、ファイル編集装置に関する。
【背景技術】
【0002】
この種の装置の一例が、特許文献1に開示されている。この背景技術によれば、画像を撮影する撮像装置と外部機器とが接続される。撮像装置において、記録手段は付帯情報が付加された画像ファイルを記録し、選別手段は付帯情報に応じて記録手段から画像ファイルを選別し、再生手段は選別された画像ファイルを再生し、そして管理手段は付帯情報のテーブルを管理する。一方、外部機器においては、取得手段は管理手段から付帯情報のテーブルを取得し、表示手段は取得したテーブルを表示し、編集手段は表示された付帯情報を編集し、そして更新手段はテーブルを編集後の付帯情報に更新する。これによって、カメラで付加されたタグ情報をPC上で利用する際の自由度を拡大することができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−5344号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、背景技術では、外部装置では読み取ることができない付帯情報がテーブルに存在すると、外部装置によるテーブルの編集に起因してこの付帯情報が損なわれるおそれがある。
【0005】
それゆえに、この発明の主たる目的は、既存の付属情報の欠損を回避しつつ付属情報を編集することができる、ファイル編集装置を提供することである。
【課題を解決するための手段】
【0006】
この発明に従うファイル編集装置(40:実施例で相当する参照符号。以下同じ)は、主要情報と付属情報とが収められ、かつ予約領域の属性を記述した予約領域情報が付属情報に接するように収められた電子ファイルを編集するファイル編集装置であって、編集指示を受け付けたとき付属情報と予約領域情報との位置関係を変更する変更手段(S59, S81)、変更手段の変更量に相当するサイズ変動が生じるように付属情報を編集する第1編集手段(S61~S63, S77~S79)、および予約領域情報の記述を第1編集手段の編集に対応して更新する第1更新手段(S67, S83)を備える。
【0007】
好ましくは、編集指示は追加指示を含み、変更手段は付属情報内に空き領域を確保するべく予約領域情報を移動させる第1移動手段(S59)を含み、第1編集手段は第1移動手段によって確保された空き領域に、追加する付属情報のタグ属性情報を書き込む手段(S63)を含む。
【0008】
好ましくは、編集指示は削除指示を含み、第1編集手段は指定情報を付属情報から削除する削除手段(S77)を含み、変更手段は削除手段の削除によって形成された空き領域を排除するべく予約領域情報を移動させる第2移動手段(S81)を含む。
【0009】
好ましくは、付属情報は電子ファイル内での情報の配置を管理するディレクトリ情報に相当し、第1編集手段によって編集される情報はディレクトリ情報を形成するタグ情報を含む。
【0010】
さらに好ましくは、電子ファイルは付属情報に拡張的に付随する拡張情報をさらに収め、第1編集手段の編集に対応して拡張情報を編集する第2編集手段(S65, S85)、および予約領域情報の記述を第2編集手段の編集に対応して更新する第2更新手段(S69, S85)がさらに備えられる。
【0011】
より好ましくは、拡張情報は追加的なタグ情報および追加的なディレクトリ情報のいずれか一方に相当する。
【0012】
好ましくは、予約領域は電子ファイル内に形成される。
【0013】
この発明に従うファイル編集プログラムは、主要情報と付属情報とが収められ、かつ予約領域の属性を記述した予約領域情報が付属情報に接するように収められた電子ファイルを編集するファイル編集装置(40)のプロセッサ(44)に、編集指示を受け付けたとき付属情報と予約領域情報との位置関係を変更する変更ステップ(S59, S81)、変更ステップの変更量に相当するサイズ変動が生じるように付属情報を編集する編集ステップ(S61~S63, S77~S79)、および予約領域情報の記述を編集手段の編集に対応して更新する更新ステップ(S67, S83)を実行させるための、ファイル編集プログラムである。
【0014】
この発明に従うファイル編集方法は、主要情報と付属情報とが収められ、かつ予約領域の属性を記述した予約領域情報が付属情報に接するように収められた電子ファイルを編集するファイル編集装置(40)によって実行されるファイル編集方法であって、編集指示を受け付けたとき付属情報と予約領域情報との位置関係を変更する変更ステップ(S59, S81)、変更ステップの変更量に相当するサイズ変動が生じるように付属情報を編集する編集ステップ(S61~S63, S77~S79)、および予約領域情報の記述を編集手段の編集に対応して更新する更新ステップ(S67, S83)を備える。
【発明の効果】
【0015】
この発明によれば、編集指示が受け付けられると、互いに接する付属情報および予約領域情報の位置関係が変更され、位置関係の変更量に相当するサイズ変動が生じるように付属情報が編集される。したがって、予約領域情報は編集が完了した後も付属情報に接し続ける。予約領域情報が付属情報に接する位置関係を維持することで、予約領域情報を参照した予約領域への情報書き込みが可能となる。これによって、既存の付属情報の欠損を回避しつつ、付属情報を編集することができる。
【0016】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0017】
【図1】この発明の一実施例の基本的構成を示すブロック図である。
【図2】この実施例に適用されるディジタルカメラの構成の一例を示すブロック図である。
【図3】図2に示すディジタルカメラによって作成されるJPEGファイルの構造の一例を示す図解図である。
【図4】(A)は図3に示すJPEGファイルに収められた0thIFDの一例を示す図解図であり、(B)は図3に示すJPEGファイルに収められた0thIFDvalueの記述の一例を示す図解図である。
【図5】図3に示すJPEGファイルに収められた予約領域管理情報の記述の一例を示す図解図である。
【図6】図2に示すディジタルカメラに設けられたCPUの動作の一部を示すフロー図である。
【図7】図2に示すディジタルカメラに設けられたCPUの動作の他の一部を示すフロー図である。
【図8】この実施例に適用されるPCの構成の一例を示すブロック図である。
【図9】(A)はファイルメニューの一例を示す図解図であり、(B)はカメラ所有者名の入力を促すガイドの一例を示す図解図である。
【図10】図8に示すPCによるファイル編集動作の一部を示す図解図である。
【図11】(A)は編集された0thIFDの一例を示す図解図であり、(B)は編集された0thIFDvalueの一例を示す図解図である。
【図12】削除可能タグメニューの一例を示す図解図である。
【図13】図8に示すPCによるファイル編集動作の他の一部を示す図解図である。
【図14】図8に示すPCに設けられたCPUの動作の一部を示すフロー図である。
【図15】図8に示すPCに設けられたCPUの動作の他の一部を示すフロー図である。
【図16】図8に示すPCに設けられたCPUの動作のその他の一部を示すフロー図である。
【図17】他の実施例によって編集されたJPEGファイルの構造の一例を示す図解図である。
【図18】その他の実施例によって編集されたJPEGファイルの構造の一例を示す図解図である。
【発明を実施するための形態】
【0018】
以下、この発明の実施の形態を図面を参照しながら説明する。
[基本的構成]
【0019】
図1を参照して、この実施例の電子カメラは、基本的に次のように構成される。ファイル編集装置1は、主要情報と付属情報とが収められ、かつ予約領域の属性を記述した予約領域情報が付属情報に接するように収められた電子ファイルを編集する。詳しくは、変更手段2は、編集指示を受け付けたとき付属情報と予約領域情報との位置関係を変更する。第1編集手段3は、変更手段2の変更量に相当するサイズ変動が生じるように付属情報を編集する。第1更新手段4は、予約領域情報の記述を第1編集手段3の編集に対応して更新する。
【0020】
編集指示が受け付けられると、互いに接する付属情報および予約領域情報の位置関係が変更され、位置関係の変更量に相当するサイズ変動が生じるように付属情報が編集される。したがって、予約領域情報は編集が完了した後も付属情報に接し続ける。予約領域情報が付属情報に接する位置関係を維持することで、予約領域情報を参照した予約領域への情報書き込みが可能となる。これによって、既存の付属情報の欠損を回避しつつ、付属情報を編集することができる。
[実施例]
【0021】
図2を参照して、この実施例のディジタルカメラ10は、撮像装置12を含む。シャッタボタン28が操作されると、CPU26は、静止画取り込み処理を実行するべく、撮像装置12を起動する。撮像装置12は、撮像面で捉えられた光学像に対応する1フレームの生画像データを作成し、作成された生画像データを出力する。カメラ処理回路14は、撮像装置12から出力された生画像データに色分離,白バランス調整,YUV変換などの処理を施し、これによって作成されたYUV形式の画像データをメモリ制御回路16を通してSDRAM16に書き込む。
【0022】
CPU26は続いて、圧縮処理を実行するべく、JPEGエンコーダ20を起動する。JPEGエンコーダ20は、SDRAM18に格納された1フレームの画像データをメモリ制御回路16を通して読み出し、読み出された画像データをJPEG方式で圧縮し、そして圧縮画像データつまりJPEGデータをメモリ制御回路16を通してSDRAM18に書き込む。こうして作成されたJPEGデータは、CPU26およびメモリI/F22の協働によって記録処理を施される。この結果、新規のJPEGファイルが着脱自在のメモリカード24に記録される。
【0023】
記録処理は、以下の要領で実行される。まず、ファイル作成&オープンがCPU26からメモリI/F22に指示される。メモリI/F22は、JPEGファイルをメモリカード24に新規に作成し、かつ作成されたJPEGファイルをオープンする。JPEGファイルがオープンされると、CPU26は、SDRAM18に格納されたJPEGデータをメモリ制御回路16を通して読み出し、読み出されたJPEGデータを書き込み要求ととともにメモリI/F22に与える。JPEGデータは、メモリI/F22によってオープン状態のJPEGファイルに書き込まれる。
【0024】
図3の左側に示すように、JPEGファイルは、SOIセグメント,APP1セグメント,DQTセグメント,DHTセグメント,SOFセグメント,SOSセグメント,およびEOIセグメントを有する。JPEGデータは、SOSセグメントとEOIセグメントとの間に納められる。
【0025】
CPU26は続いて、JPEG方式に従うファイル管理情報を作成し、作成したファイル管理情報を書き込み要求とともにメモリI/F22に与える。メモリI/F22は、与えられたファイル管理情報を図3に示すSOIセグメント,APP1セグメント,DQTセグメント,DHTセグメント,SOFセグメント,SOSセグメントおよびEOIセグメントに書き込む。ファイル管理情報には、APP1マーカ,APP1長,Exif識別コード,TIFFヘッダ,0thIFD,予約領域管理情報,0thIFDvalue,1stIFDおよび1stIFDvalueが含まれる。これらの情報は、図3の右側に示す要領でAPP1セグメントに記述される。
【0026】
こうしてJPEGデータおよびファイル管理情報の書き込みが完了すると、ファイルクローズがCPU26からメモリI/F22に指示される。メモリI/F22は、オープン状態のJPEGファイルをクローズし、これによって記録処理が完了する。
【0027】
図3の右側を参照して、0thIFD,予約領域管理情報,0thIFDvalue,1stIFDおよび1stIFDvalueは、TIFFヘッダに続いてこの順で配置される。ただし、予約領域1が予約領域管理情報と0thIFDvalueとの間に確保され、予約領域2が0thIFDvalueと1stIFDとの間に確保される。
【0028】
つまり、予約領域管理情報の先頭は0thIFDの末尾に接し、予約領域管理情報の末尾は予約領域1の先頭に接する。また、0thIFDvalueの先頭は予約領域1の末尾に接し、0thIFDvalueの末尾は予約領域2の先頭に接する。さらに、予約領域2の末尾は1stIFDの先頭に接する。
【0029】
ただし、0thIFD,予約領域管理情報および予約領域1は隙間なく連続する必要があるものの、予約領域2と0thIFDvalue,1stIFD,1stIFDvalueとの間の位置関係は図3に示す位置関係に限られるものではない。
【0030】
0thIFDは図4(A)に示すように構成され、0thIFDvalueは図4(B)に示すように構成される。
【0031】
図4(A)によれば、“エントリの数”に続いて、タグ情報“撮影機器”,“撮影日時”,“水平解像度”および“垂直解像度”が記述される。“次IFDへのオフセット”は、これらのタグ情報に続いて記述される。
【0032】
タグ情報は4つのエントリを有するため、“エントリの数”は“4”を示す。また、タグ情報“撮影機器”,“撮影日時”,“水平解像度”および“垂直解像度”はそれぞれ、“OFST_01”,“OFST_02”,“OFST_03”および“OFST_04”を示す。さらに、“次IFDへのオフセット”は“OFST_20”を示す。なお、1エントリ分のタグ情報は、12バイトのサイズを有する。
【0033】
図4(B)によれば、拡張タグ情報“撮影機器の値”,“撮影日時の値”,“水平解像度の値”および“垂直解像度の値”が記述される。ここで、拡張タグ情報“撮影機器の値”はオフセットOFST_01から始まる位置に記述され、拡張タグ情報“撮影日時の値”はオフセットOFST_02から始まる位置に記述される。また、拡張タグ情報“水平解像度の値”はオフセットOFST_03から始まる位置に記述され、拡張タグ情報“垂直解像度の値”はオフセットOFST_04から始まる位置に記述される。さらに、拡張タグ情報“撮影機器の値”,“撮影日時の値”,“水平解像度の値”および“垂直解像度の値”はそれぞれ、“メーカA”,“yy/mm/dd/hh/mm”,“Hpixel”および“Vpixel”を示す。なお、図4(A)に示す“OFST_20”は、図3に示す1stIFDの先頭位置に相当する。
【0034】
予約領域管理情報は、図5に示すように構成される。図5によれば、予約領域1の属性および予約領域2の属性に共通して、管理情報識別コード,管理情報サイズおよび予約領域属性数が記述される。また、予約領域1および2の各々に対応してオフセット値およびサイズ値が記述される。
【0035】
管理情報識別コードは“ID_1”を示し、これによって予約領域管理情報の存在が表明される。管理情報サイズは“SZ_0”を示し、これによって図3に示す予約領域管理情報のサイズが表明される。予約領域属性数は“2”を示し、これによって予約領域1の属性および予約領域2の属性の存在が表明される。
【0036】
予約領域1の属性に割り当てられたオフセット値およびサイズ値はそれぞれ“OFST_30”および“SZ_1”を示し、これによって図3に示す予約領域1の属性が表明される。また、予約領域2の属性に割り当てられたオフセット値およびサイズ値はそれぞれ“OFST_40”および“SZ_2”を示し、これによって図3に示す予約領域2の属性が表明される。
【0037】
CPU26は、図6〜図7に示すフロー図に従う処理を実行する。なお、これらのフロー図に対応する制御プログラムは、フラッシュメモリ30に記憶される。
【0038】
ステップS1ではシャッタボタン28が操作されたか否かを繰り返し判別し、判別結果がNOからYESに更新されるとステップS3に進む。ステップS3では、静止画取り込み処理を実行するべく、撮像装置12を起動する。この結果、撮像面で捉えられた光学像に対応する1フレームの画像データがSDRAM16に書き込まれる。
【0039】
ステップS5では、圧縮処理を実行するべく、JPEGエンコーダ20を起動する。この結果、静止画取り込み処理によって取り込まれた画像データに基づくJPEGデータがJPEGエンコーダ20によって作成され、作成されたJPEGデータがSDRAM18に書き込まれる。ステップS7では、メモリI/F22との協働によって記録処理を実行する。この結果、圧縮処理によって作成されたJPEGデータを収めた新規のJPEGファイルがメモリカード24に記録される。記録処理が完了すると、ステップS1に戻る。
【0040】
ステップS7の記録処理は、図7に示すサブルーチンに従って実行される。ステップS11では、ファイル作成&オープンの実行をメモリI/F22に指示する。この結果、JPEGファイルがメモリカード24に新規に作成され、かつ作成されたJPEGファイルがオープンされる。ステップS13では、SDRAM18に格納されたJPEGデータをメモリ制御回路16を通して読み出し、読み出されたJPEGデータをメモリI/F22を通してオープン状態のJPEGファイルに書き込む。
【0041】
ステップS15では、JPEG方式に従うファイル管理情報の一部を作成し、作成したファイル管理情報をメモリI/F22を通してオープン状態のJPEGファイルに書き込む。ファイル管理情報は、JPEGファイルに形成された各種セグメント(SOIセグメント,APP1セグメント,DQTセグメント,DHTセグメント,SOFセグメント,SOSセグメント,およびEOIセグメント)に書き込まれる。
【0042】
なお、ステップS15で作成されるファイル管理情報からは、予約領域管理情報,0thIFD,0thIFDvalue,1stIFDおよび1stIFDvalueは除かれる。
【0043】
ステップS17では、予約領域管理情報を作成し、作成された予約領域管理情報をメモリI/F22を通してオープン状態のJPEGファイルに書き込む。予約領域管理情報は、APP1セグメントに記述される。ステップS19では、0thIFDおよび0thIFDvalueを作成し、作成された0thIFDおよび0thIFDvalueをメモリI/F22を通してオープン状態のJPEGファイルに書き込む。0thIFDおよび0thIFDvalueも、APP1セグメントに記述される。
【0044】
ステップS21では、1stIFDおよび1stIFDvalueを作成し、作成された1stIFDおよび1stIFDvalueをメモリI/F22を通してオープン状態のJPEGファイルに書き込む。1stIFDおよび1stIFDvalueもまた、APP1セグメントに記述される。ステップS23では、ファイルクローズをメモリI/F22に指示する。この結果、オープン状態のJPEGファイルがクローズされる。ファイルクローズが完了すると、上階層のルーチンに復帰する。
【0045】
図8を参照して、PC(Personal Computer)40は、メモリI/F42を含む。ディジタルカメラ10から抜去されたメモリカード24がメモリI/F42に接続されると、メモリカード24に保存されたJPEGファイルがCPU44によってアクセス可能となる。
【0046】
キーボード/マウス46によってファイル編集モードが選択されると、CPU44は、メモリカード24に保存されたJPEGファイルのファイル名をメモリI/F42を通して検出し、検出されたファイル名が列挙されたファイルメニューをメモリ制御回路48を通してDRAM50に作成する。ディスプレイドライバ52は、作成されたファイルメニューをメモリ制御回路48を通してDRAM50から読み出し、読み出されたファイルメニューをディスプレイモニタ54に表示する。ファイルメニューは、図9(A)に示す要領でモニタ画面に表示される。
【0047】
ファイルメニューに列挙された複数のファイル名のいずれか1つを指定するファイル指定操作がキーボード/マウス46によって行われると、CPU44は、指定されたJPEGファイルをメモリI/F42を通してメモリカード24から読み出し、読み出されたJPEGファイルをメモリ制御回路48を通してDRAM50に書き込む。
【0048】
続いて、キーボード/マウス46によって追記操作が行われると、後述する追記処理が実行される。これに対して、キーボード/マウス46によって削除操作が行われると、後述する削除処理が実行される。追記処理の結果、カメラ所有者名を示すタグ情報および拡張タグ情報がDRAM50上のJPEGファイルが追記される。また、削除処理の結果、所望のタグ情報および拡張タグ情報がDRAM50上のJPEGファイルから削除される。
【0049】
CPU44は、追記処理または削除処理を施されたJPEGファイルをメモリ制御回路48を通してDRAM50から読み出し、読み出されたJPEGファイルをメモリI/F42を通してメモリカード24に書き込む。元のJPEGファイルは、追記処理または削除処理を施されたJPEGファイルによって上書きされる。
【0050】
追記処理では、まずJPEGファイルのAPP1セグメントに上述の要領で記述された予約管理情報が注目される。
【0051】
予約領域管理情報の存在を示す“ID_1”(=管理情報識別コード)が0thIFDの末尾に接する位置に記述されており、かつ予約領域管理情報に記述された予約領域1のサイズおよび予約領域2のサイズがそれぞれ閾値TH1およびTH2を上回れば、JPEGファイルへの追記は可能であると判断される。
【0052】
これに対して、0thIFDの末尾に接する位置に“ID_1”が記述されていなければ、予約領域管理情報は存在しないため、JPEGファイルへの追記は不可能であると判断される。さらに、“ID_1”が記述されていても、予約領域1のサイズが閾値TH1を下回るか或いは予約領域2のサイズが閾値TH2を下回れば、JPEGファイルへの追記は不可能であると判断される。
【0053】
JPEGファイルへの追記が不可能であれば、追記不能を報知する効果音が図示しないスピーカを通して出力される。これに対して、JPEGファイルへの追記が可能であれば、以下の処理がCPU44によって実行される。
【0054】
まず、カメラ所有者名の入力を促すガイドが、メモリ制御回路48を通してDRAM50に作成される。ディスプレイドライバ52は、作成されたガイドをメモリ制御回路48を通してDRAM50から読み出し、読み出されたガイドをディスプレイモニタ54に表示する。ガイドは、図9(B)に示す要領でモニタ画面に表示される。
【0055】
キーボード/マウス46によってカメラ所有者名が入力され、かつキーボード/マウス46によって確定操作が行われると、入力されたカメラ所有者名が取得される。続いて、1エントリ分のタグ情報のサイズ(=12バイト)に相当する空き領域が0thIFDに記述されたタグ情報“垂直解像度”および“次IFDへのオフセット”の間に確保されるように、0thIFDの一部と予約領域管理情報とがAPP1セグメント内で移動される(図10参照)。
【0056】
なお、空き領域は、“エントリの数”とタグ情報“撮影機器”との間に確保してもよく、隣接する2エントリのタグ情報の間に確保してもよい。
【0057】
移動が完了すると、0thIFDに記述された“エントリの数”の値がインクリメントされる(図11(A)参照)。さらに、タグ情報“カメラ所有者名”が0thIFDに確保された空き領域に追記され、拡張タグ情報“カメラ所有者名の値”が予約領域2から取得された領域を利用して0thIFDvalueに追記される(図10および図11(B)参照)。
【0058】
なお、0thIFDに記述されたタグ情報“カメラ所有者名”は、0thIFDvalueに記述された拡張タグ情報“カメラ所有者名の値”へのオフセットである“OFST_05”を示す。
【0059】
続いて、予約領域管理情報に記述された予約領域1の属性が、0thIFDへのタグ情報の追記に対応して更新される。また、予約領域管理情報に記述された予約領域2の属性が、拡張タグ情報“カメラ所有者名の値”の追記に対応して更新される。
【0060】
予約領域1の属性を定義するオフセット値は12バイトだけ加算され、予約領域1の属性を定義するサイズ値は12バイトだけ減算される。また、拡張タグ情報のサイズをKバイトとすると、予約領域2の属性を定義するオフセット値はKバイトだけ加算され、予約領域2の属性を定義するサイズ値はKバイトだけ減算される。追記処理は、予約領域1および2の属性の更新によって完了する。
【0061】
削除処理は、以下の要領で実行される。まず、削除可能タグメニューがメモリ制御回路48を通してDRAM50に作成される。ディスプレイドライバ52は、作成された削除可能タグメニューをメモリ制御回路48を通してDRAM50から読み出し、読み出された削除可能タグメニューをディスプレイモニタ54に表示する。削除可能タグメニューは、図12に示す要領でモニタ画面に表示される。
【0062】
キーボード/マウス46によって選択操作が行われると、指定されたタグ情報が図11(A)に示す0thIFDから削除され、削除されたタグ情報よりも下に存在する0thIFDの記述が12バイトだけ上にずらされ、0thIFDに記述された“エントリの数”の値がディクリメントされる。予約領域管理情報の位置はその後、APP1セグメント内で12バイトだけ上にずらされる。これによって、予約領域管理情報の先頭が0thIFDの末尾に接する(図13参照)。
【0063】
予約領域管理情報に記述された予約領域1の属性は、0thIFDの部分的な削除に対応して更新される。また、予約領域管理情報に記述された予約領域2の属性は、指定されたタグ情報に対応する拡張タグ情報が予約領域2に接している場合に限って、拡張タグ情報のサイズに対応して更新される。拡張タグ情報を保持していた領域は、予約領域2に吸収され、再利用可能になる。指定されたタグ情報に対応する拡張タグ情報が予約領域2に接していない場合は、予約領域2の属性は更新されず、拡張タグ情報を保持していた領域はどこからも参照されなくなり、再利用不可能になる。
【0064】
予約領域1の属性を定義するオフセット値は12バイトだけ減算され、予約領域1の属性を定義するサイズ値は12バイトだけ加算される。また、拡張タグ情報のサイズをKバイトとすると、拡張タグ情報を保持していた領域が予約領域2の先頭と接していた場合は予約領域2の属性を定義するオフセット値がKバイトだけ減算され、拡張タグ情報を保持していた領域が予約領域2の末尾と接していた場合は予約領域2の属性を定義するオフセット値は更新されない。予約領域2の属性を定義するサイズ値はKバイトだけ加算される。
【0065】
結果的に、拡張タグ情報を保持していた領域は、予約領域1の属性の更新によってどこからも参照されなくなり実質的に削除され、予約領域2と接していた場合に限っては予約領域2として再利用される(図13参照)。
【0066】
ファイル編集モードが選択されたとき、CPU44は、図14〜図16に示すフロー図に従う処理を実行する。なお、これらのフロー図に対応する制御プログラムは、HDD56に保存される。
【0067】
ステップS31では、メモリカード24に保存されたJPEGファイルのファイル名をメモリI/F42を通して検出し、検出されたファイル名が列挙されたファイルメニューをメモリ制御回路48を通してDRAM50に作成する。作成されたファイルメニューはディスプレイドライバ52によって読み出され、図9(A)に示す要領でディスプレイモニタ54に表示される。
【0068】
ステップS33では、ファイル指定操作が行われたか否かを繰り返し判別する。ステップS33の判別結果は、ファイルメニューに列挙された複数のファイル名のいずれか1つがキーボード/マウス46によって指定されたときに、NOからYESに更新される。ステップS35では、こうして指定されたJPEGファイルをメモリI/F42を通してメモリカード24から読み出し、読み出されたJPEGファイルをメモリ制御回路48を通してDRAM50に書き込む。
【0069】
ステップS37では追記操作が行われたか否かを判別し、ステップS39では削除操作が行われたか否かを判別する。キーボード/マウス46による操作が追記操作に相当すれば、ステップS41で追記処理を実行する。一方、キーボード/マウス46による操作が削除操作に相当すれば、ステップS43で削除処理を実行する。
【0070】
ステップS45では、追記処理または削除処理を施されたJPEGファイルをメモリ制御回路48を通してDRAM50から読み出し、読み出されたJPEGファイルをメモリI/F42を通してメモリカード24に書き込む。元のJPEGファイルは、追記処理または削除処理を施されたJPEGファイルによって上書きされる。ステップS45の処理が完了すると、ステップS31に戻る。
【0071】
ステップS41の追記処理は、図15に示すサブルーチンに従って実行される。ステップS51では、JPEGファイルのAPP1セグメントにアクセスし、“ID_1”(=管理情報識別コード)が0thIFDの末尾に接する位置に記述されているか否かを判別する。判別結果がYESであれば、予約領域管理情報が0thIFDに続いて記述されているとみなし、ステップS53に進む。これに対して、判別結果がNOであれば、予約領域管理情報は存在しないとみなし、ステップS69に進む。
【0072】
ステップS53では、予約領域管理情報に記述された予約領域1および2の属性を検出し、予約領域1のサイズが閾値TH1を上回り、かつ予約領域2のサイズが閾値TH2を上回るという論理積条件が満足されるか否かを判別する。判別結果がYESであればステップS55に進み、判別結果がNOであればステップS69に進む。
【0073】
ステップS69では、追記不能を報知する効果音を図示しないスピーカを通して出力する。報知が完了すると、上階層のルーチンに復帰する。
【0074】
ステップS55では、カメラ所有者名の入力を促すガイドをメモリ制御回路48を通してDRAM50に作成する。作成されたガイドはディスプレイドライバ52によって読み出され、図9(B)に示す要領でディスプレイモニタ54に表示される。キーボード/マウス46によってカメラ所有者名が入力され、かつキーボード/マウス46によって確定操作が行われると、入力されたカメラ所有者名をステップS57で取得する。
【0075】
ステップS59では、1エントリ分のタグ情報のサイズ(=12バイト)に相当する空き領域が0thIFD内に確保されるように、0thIFDの一部と予約領域管理情報とをAPP1セグメント内で移動させる。ステップS61では、0thIFDに記述された“エントリの数”の値をインクリメントする。ステップS63ではタグ情報“カメラ所有者名”を0thIFDに追記し、ステップS65では拡張タグ情報“カメラ所有者名の値”を0thIFDvalueに追記する。
【0076】
具体的には、ステップS63では、0thIFDに形成された12バイトの空き領域にタグ情報“カメラ所有者名”を記述する。ステップS65では、拡張タグ情報“カメラ所有者名の値”を予約領域2から取得された領域に記述する。
【0077】
ステップS67では、予約領域管理情報に記述された予約領域1の属性を0thIFDへのタグ情報の追記に対応して更新する。また、ステップS69では、予約領域管理情報に記述された予約領域2の属性を0thIFDvalueへの拡張タグ情報の追記に対応して更新する。予約領域1の属性を定義するオフセット値は12バイトだけ加算され、予約領域1の属性を定義するサイズ値は12バイトだけ減算される。また、拡張タグ情報のサイズをKバイトとすると、予約領域2の属性を定義するオフセット値はKバイトだけ加算され、予約領域2の属性を定義するサイズ値はKバイトだけ減算される。ステップS69の処理が完了すると、上階層のルーチンに復帰する。
【0078】
図14に示すステップS43の削除処理は、図16に示すサブルーチンに従って実行される。ステップS71では、削除可能タグメニューをメモリ制御回路48を通してDRAM50に作成する。作成された削除可能タグメニューは、ディスプレイドライバ52によって読み出され、図12に示す要領でモニタ画面に表示される。
【0079】
ステップS73では選択操作が行われたか否かを判別し、ステップS75では終了操作が行われたか否かを判別する。キーボード/マウス46による操作が終了操作に相当すればそのまま上階層のルーチンに復帰し、キーボード/マウス46による操作が選択操作に相当すればステップS77〜S85の処理を経て上階層のルーチンに復帰する。
【0080】
ステップS77では、指定されたタグ情報を0thIFDから削除し、削除されたタグ情報よりも下に存在する0thIFDの記述を12バイトだけ上にずらす。ステップS79では、0thIFDに記述された“エントリの数”の値をディクリメントする。ステップS81では、予約領域管理情報をAPP1セグメント内で12バイトだけ上にずらす。予約領域管理情報の先頭は0thIFDの末尾に接することとなる。
【0081】
ステップS83では、予約領域管理情報に記述された予約領域1の属性を0thIFDの部分的な削除に対応して更新する。予約領域1の属性を定義するオフセット値は12バイトだけ減算され、予約領域1の属性を定義するサイズ値は12バイトだけ加算される。
【0082】
ステップS85では、予約領域管理情報に記述された予約領域2の属性を指定されたタグ情報に対応する拡張タスク情報のサイズに対応して更新する。
【0083】
拡張タグ情報のサイズをKバイトとすると、拡張タグ情報が予約領域2の先頭と接する場合には、予約領域2の属性を定義するオフセット値がKバイトだけ減算され、拡張タグ情報が予約領域2の末尾と接する場合には、予約領域2の属性を定義するオフセット値は更新されない。また、拡張タグ情報が予約領域2の先頭または末尾と接している場合には、予約領域2の属性を定義するサイズ値はKバイトだけ加算され、拡張タグ情報が予約領域2の先頭および末尾のどちらとも接していない場合には、予約領域2の属性を定義するサイズ値は更新されない。
【0084】
拡張タグ情報は、予約領域1の属性の更新によって、どこからも参照されなくなることにより、実質的に削除される。また、拡張タグ情報が予約領域2に接しているに限っては予約領域2として再利用される。
【0085】
以上の説明から分かるように、編集のためにPC40によってアクセスされるJPEGファイルは、JPEGデータに加えて0thIFDおよび0thIFDvalueを収め、さらに予約領域1および2の属性を記述した予約領域管理情報を収める。ここで、予約領域管理情報は、0thIFDに接するようにJPEGファイルに収められる。追記操作または削除操作が行われると、CPU44は、0thIFDと予約領域管理情報との位置関係を変更し(S59, S81)、位置関係の変更量に相当するサイズ変動が生じるように0thIFDを編集する(S61~S63, S77~S79)。CPU44はさらに、予約領域管理情報の記述を0thIFDの編集に対応して更新する(S67, S83)。
【0086】
このように、追記操作または削除操作を受け付けると、互いに接する0thIFDおよび予約領域管理情報の位置関係が変更され、位置関係の変更量に相当するサイズ変動が生じるように0thIFDが編集される。したがって、予約領域管理情報は編集が完了した後も0thIFDに接し続ける。予約領域管理情報が0thIFDに接する位置関係を維持することで、予約領域管理情報を参照した予約領域1および2への情報書き込みが可能となる。これによって、0thIFDを形成する既存のタグ情報の欠損を回避しつつ、0thIFDを編集することができる。
【0087】
なお、この実施例では、タグ情報を0thIFDに記述し、拡張タグ情報を0thIFDvalueに記述することを想定している(図10参照)。しかし、タグ情報の値のサイズが4バイト以下であれば、拡張タグ情報は不要である。したがって、4バイト以下の値を伴うタグ情報を追記する場合は、0thIFDの記述および予約領域管理情報の位置が図17に示す要領で更新されるに留まる。
【0088】
また、別のIFDおよびIFDvalueをAPP1セグメントに新規に形成し、これに対応して予約領域管理情報および2つの予約領域を新規に形成するようにしてもよい。従前の予約領域管理情報,予約領域1および予約領域2を“予約領域A管理情報”,“予約領域A1”および“予約領域A2”と再定義し、GPSInfoIFD,GPSInfoIFDvalue,予約領域B管理情報,予約領域B1および予約領域B2を新規に形成する場合、APP1セグメントの記述は図18に示す要領で更新される。
【0089】
図18によれば、GPSInfoIFDを指向するGPSInfoIFDポインタが0thIFDに追記され、GPSInfoIFD,予約領域B管理情報,予約領域B1,GPSInfoIFDvalueおよび予約領域B2がこの順で予約領域A2に記述される。
【0090】
さらに、この実施例では、0thIFDおよび0thIFDvalueに対応して予約領域管理情報および複数の予約領域を作成するようにしているが、予約領域管理情報および複数の予約領域は1stIFDおよび1stIFDvalueに対応して作成するようにしてもよい。
【0091】
また、この実施例では、0thIFDの末尾に接する位置に予約領域管理情報を記述するようにしている。しかし、予約領域管理情報は、0thIFDの先頭に接する位置に記述してもよい。また、この実施例では省略したが、管理情報内で2バイト以上のサイズで記録される属性値を物理的に書き込む際のバイトオーダ属性や、管理情報の段階的な改善にともなう互換性を確保するためのバージョン番号属性や、予約領域2からの拡張タグ情報用領域切り出しを予約領域2の先頭端とするか末尾端とするかを指定する属性や、予約領域のオフセットの基準点をどこにするかを指定する属性を、管理情報の一部として記録してもよい。

【符号の説明】
【0092】
10 …ディジタルカメラ
20 …JPEGエンコーダ
26,50 …CPU
24 …メモリカード
40 …PC
42 …DRAM
44 …モニタ

【特許請求の範囲】
【請求項1】
主要情報と付属情報とが収められ、かつ予約領域の属性を記述した予約領域情報が前記付属情報に接するように収められた電子ファイルを編集するファイル編集装置であって、
編集指示を受け付けたとき前記付属情報と前記予約領域情報との位置関係を変更する変更手段、
前記変更手段の変更量に相当するサイズ変動が生じるように前記付属情報を編集する第1編集手段、および
前記予約領域情報の記述を前記第1編集手段の編集に対応して更新する第1更新手段を備える、ファイル編集装置。
【請求項2】
前記編集指示は追加指示を含み、
前記変更手段は前記付属情報内に空き領域を確保するべく前記予約領域情報を移動させる第1移動手段を含み、
前記第1編集手段は前記第1移動手段によって確保された空き領域に相当する情報を前記付属情報に追加する追加手段を含む、請求項1記載のファイル編集装置。
【請求項3】
前記編集指示は削除指示を含み、
前記第1編集手段は指定情報を前記付属情報から削除する削除手段を含み、
前記変更手段は前記削除手段の削除によって形成された空き領域を排除するべく前記予約領域情報を移動させる第2移動手段を含む、請求項1または2記載のファイル編集装置。
【請求項4】
前記付属情報は前記電子ファイル内での情報の配置を管理するディレクトリ情報に相当し、
前記第1編集手段によって編集される情報は前記ディレクトリ情報を形成するタグ情報を含む、請求項1ないし3のいずれかに記載のファイル編集装置。
【請求項5】
前記電子ファイルは前記付属情報に拡張的に付随する拡張情報をさらに収め、
前記第1編集手段の編集に対応して前記拡張情報を編集する第2編集手段、および
前記予約領域情報の記述を前記第2編集手段の編集に対応して更新する第2更新手段をさらに備える、請求項4記載のファイル編集装置。
【請求項6】
前記拡張情報は追加的なタグ情報および追加的なディレクトリ情報のいずれか一方に相当する、請求項5記載のファイル編集装置。
【請求項7】
前記予約領域は前記電子ファイル内に形成される、請求項1ないし6のいずれかに記載のファイル編集装置。
【請求項8】
主要情報と付属情報とが収められ、かつ予約領域の属性を記述した予約領域情報が前記付属情報に接するように収められた電子ファイルを編集するファイル編集装置のプロセッサに、
編集指示を受け付けたとき前記付属情報と前記予約領域情報との位置関係を変更する変更ステップ、
前記変更ステップの変更量に相当するサイズ変動が生じるように前記付属情報を編集する編集ステップ、および
前記予約領域情報の記述を前記編集手段の編集に対応して更新する更新ステップを実行させるための、ファイル編集プログラム。
【請求項9】
主要情報と付属情報とが収められ、かつ予約領域の属性を記述した予約領域情報が前記付属情報に接するように収められた電子ファイルを編集するファイル編集装置によって実行されるファイル編集方法であって、
編集指示を受け付けたとき前記付属情報と前記予約領域情報との位置関係を変更する変更ステップ、
前記変更ステップの変更量に相当するサイズ変動が生じるように前記付属情報を編集する編集ステップ、および
前記予約領域情報の記述を前記編集手段の編集に対応して更新する更新ステップを備える、ファイル編集方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2012−199850(P2012−199850A)
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願番号】特願2011−63645(P2011−63645)
【出願日】平成23年3月23日(2011.3.23)
【出願人】(000001889)三洋電機株式会社 (18,308)
【Fターム(参考)】