(57)【要約】【構成】ＪＰＥＧファイルは、ＪＰＥＧデータに加えて０ｔｈＩＦＤおよび０ｔｈＩＦＤｖａｌｕｅを収め、さらに予約領域１および２の属性を記述した予約領域管理情報を収める。ここで、予約領域管理情報は、０ｔｈＩＦＤに接するようにＪＰＥＧファイルに収められる。追記操作または削除操作が行われると、０ｔｈＩＦＤと予約領域管理情報との位置関係が変更され、位置関係の変更量に相当するサイズ変動が生じるように０ｔｈＩＦＤが編集される。予約領域管理情報の記述は、０ｔｈＩＦＤの編集に対応して更新される。【効果】０ｔｈＩＦＤを形成する既存のタグ情報を始めとする既存の付属情報群の欠損を回避しつつ、０ｔｈＩＦＤを編集することができる。【選択図】図１０
2012199850.tif 000002
【特許請求の範囲】
【請求項１】
主要情報と付属情報とが収められ、かつ予約領域の属性を記述した予約領域情報が前記付属情報に接するように収められた電子ファイルを編集するファイル編集装置であって、
編集指示を受け付けたとき前記付属情報と前記予約領域情報との位置関係を変更する変更手段、
前記変更手段の変更量に相当するサイズ変動が生じるように前記付属情報を編集する第１編集手段、および
前記予約領域情報の記述を前記第１編集手段の編集に対応して更新する第１更新手段を備える、ファイル編集装置。
【請求項２】
前記編集指示は追加指示を含み、
前記変更手段は前記付属情報内に空き領域を確保するべく前記予約領域情報を移動させる第１移動手段を含み、
前記第１編集手段は前記第１移動手段によって確保された空き領域に相当する情報を前記付属情報に追加する追加手段を含む、請求項１記載のファイル編集装置。
【請求項３】
前記編集指示は削除指示を含み、
前記第１編集手段は指定情報を前記付属情報から削除する削除手段を含み、
前記変更手段は前記削除手段の削除によって形成された空き領域を排除するべく前記予約領域情報を移動させる第２移動手段を含む、請求項１または２記載のファイル編集装置。
【請求項４】
前記付属情報は前記電子ファイル内での情報の配置を管理するディレクトリ情報に相当し、
前記第１編集手段によって編集される情報は前記ディレクトリ情報を形成するタグ情報を含む、請求項１ないし３のいずれかに記載のファイル編集装置。
【請求項５】
前記電子ファイルは前記付属情報に拡張的に付随する拡張情報をさらに収め、
前記第１編集手段の編集に対応して前記拡張情報を編集する第２編集手段、および
前記予約領域情報の記述を前記第２編集手段の編集に対応して更新する第２更新手段をさらに備える、請求項４記載のファイル編集装置。
【請求項６】
前記拡張情報は追加的なタグ情報および追加的なディレクトリ情報のいずれか一方に相当する、請求項５記載のファイル編集装置。
【請求項７】
前記予約領域は前記電子ファイル内に形成される、請求項１ないし６のいずれかに記載のファイル編集装置。
【請求項８】
主要情報と付属情報とが収められ、かつ予約領域の属性を記述した予約領域情報が前記付属情報に接するように収められた電子ファイルを編集するファイル編集装置のプロセッサに、
編集指示を受け付けたとき前記付属情報と前記予約領域情報との位置関係を変更する変更ステップ、
前記変更ステップの変更量に相当するサイズ変動が生じるように前記付属情報を編集する編集ステップ、および
前記予約領域情報の記述を前記編集手段の編集に対応して更新する更新ステップを実行させるための、ファイル編集プログラム。
【請求項９】
主要情報と付属情報とが収められ、かつ予約領域の属性を記述した予約領域情報が前記付属情報に接するように収められた電子ファイルを編集するファイル編集装置によって実行されるファイル編集方法であって、
編集指示を受け付けたとき前記付属情報と前記予約領域情報との位置関係を変更する変更ステップ、
前記変更ステップの変更量に相当するサイズ変動が生じるように前記付属情報を編集する編集ステップ、および
前記予約領域情報の記述を前記編集手段の編集に対応して更新する更新ステップを備える、ファイル編集方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ファイル編集装置に関し、特に電子ファイルに収められた付属情報を編集する、ファイル編集装置に関する。
【背景技術】
【０００２】
この種の装置の一例が、特許文献１に開示されている。この背景技術によれば、画像を撮影する撮像装置と外部機器とが接続される。撮像装置において、記録手段は付帯情報が付加された画像ファイルを記録し、選別手段は付帯情報に応じて記録手段から画像ファイルを選別し、再生手段は選別された画像ファイルを再生し、そして管理手段は付帯情報のテーブルを管理する。一方、外部機器においては、取得手段は管理手段から付帯情報のテーブルを取得し、表示手段は取得したテーブルを表示し、編集手段は表示された付帯情報を編集し、そして更新手段はテーブルを編集後の付帯情報に更新する。これによって、カメラで付加されたタグ情報をＰＣ上で利用する際の自由度を拡大することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−５３４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、背景技術では、外部装置では読み取ることができない付帯情報がテーブルに存在すると、外部装置によるテーブルの編集に起因してこの付帯情報が損なわれるおそれがある。
【０００５】
それゆえに、この発明の主たる目的は、既存の付属情報の欠損を回避しつつ付属情報を編集することができる、ファイル編集装置を提供することである。
【課題を解決するための手段】
【０００６】
この発明に従うファイル編集装置(40：実施例で相当する参照符号。以下同じ)は、主要情報と付属情報とが収められ、かつ予約領域の属性を記述した予約領域情報が付属情報に接するように収められた電子ファイルを編集するファイル編集装置であって、編集指示を受け付けたとき付属情報と予約領域情報との位置関係を変更する変更手段(S59, S81)、変更手段の変更量に相当するサイズ変動が生じるように付属情報を編集する第１編集手段(S61~S63, S77~S79)、および予約領域情報の記述を第１編集手段の編集に対応して更新する第１更新手段(S67, S83)を備える。
【０００７】
好ましくは、編集指示は追加指示を含み、変更手段は付属情報内に空き領域を確保するべく予約領域情報を移動させる第１移動手段(S59)を含み、第１編集手段は第１移動手段によって確保された空き領域に、追加する付属情報のタグ属性情報を書き込む手段(S63)を含む。
【０００８】
好ましくは、編集指示は削除指示を含み、第１編集手段は指定情報を付属情報から削除する削除手段(S77)を含み、変更手段は削除手段の削除によって形成された空き領域を排除するべく予約領域情報を移動させる第２移動手段(S81)を含む。
【０００９】
好ましくは、付属情報は電子ファイル内での情報の配置を管理するディレクトリ情報に相当し、第１編集手段によって編集される情報はディレクトリ情報を形成するタグ情報を含む。
【００１０】
さらに好ましくは、電子ファイルは付属情報に拡張的に付随する拡張情報をさらに収め、第１編集手段の編集に対応して拡張情報を編集する第２編集手段(S65, S85)、および予約領域情報の記述を第２編集手段の編集に対応して更新する第２更新手段(S69, S85)がさらに備えられる。
【００１１】
より好ましくは、拡張情報は追加的なタグ情報および追加的なディレクトリ情報のいずれか一方に相当する。
【００１２】
好ましくは、予約領域は電子ファイル内に形成される。
【００１３】
この発明に従うファイル編集プログラムは、主要情報と付属情報とが収められ、かつ予約領域の属性を記述した予約領域情報が付属情報に接するように収められた電子ファイルを編集するファイル編集装置(40)のプロセッサ(44)に、編集指示を受け付けたとき付属情報と予約領域情報との位置関係を変更する変更ステップ(S59, S81)、変更ステップの変更量に相当するサイズ変動が生じるように付属情報を編集する編集ステップ(S61~S63, S77~S79)、および予約領域情報の記述を編集手段の編集に対応して更新する更新ステップ(S67, S83)を実行させるための、ファイル編集プログラムである。
【００１４】
この発明に従うファイル編集方法は、主要情報と付属情報とが収められ、かつ予約領域の属性を記述した予約領域情報が付属情報に接するように収められた電子ファイルを編集するファイル編集装置(40)によって実行されるファイル編集方法であって、編集指示を受け付けたとき付属情報と予約領域情報との位置関係を変更する変更ステップ(S59, S81)、変更ステップの変更量に相当するサイズ変動が生じるように付属情報を編集する編集ステップ(S61~S63, S77~S79)、および予約領域情報の記述を編集手段の編集に対応して更新する更新ステップ(S67, S83)を備える。
【発明の効果】
【００１５】
この発明によれば、編集指示が受け付けられると、互いに接する付属情報および予約領域情報の位置関係が変更され、位置関係の変更量に相当するサイズ変動が生じるように付属情報が編集される。したがって、予約領域情報は編集が完了した後も付属情報に接し続ける。予約領域情報が付属情報に接する位置関係を維持することで、予約領域情報を参照した予約領域への情報書き込みが可能となる。これによって、既存の付属情報の欠損を回避しつつ、付属情報を編集することができる。
【００１６】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００１７】
【図１】この発明の一実施例の基本的構成を示すブロック図である。
【図２】この実施例に適用されるディジタルカメラの構成の一例を示すブロック図である。
【図３】図２に示すディジタルカメラによって作成されるＪＰＥＧファイルの構造の一例を示す図解図である。
【図４】（Ａ）は図３に示すＪＰＥＧファイルに収められた０ｔｈＩＦＤの一例を示す図解図であり、（Ｂ）は図３に示すＪＰＥＧファイルに収められた０ｔｈＩＦＤｖａｌｕｅの記述の一例を示す図解図である。
【図５】図３に示すＪＰＥＧファイルに収められた予約領域管理情報の記述の一例を示す図解図である。
【図６】図２に示すディジタルカメラに設けられたＣＰＵの動作の一部を示すフロー図である。
【図７】図２に示すディジタルカメラに設けられたＣＰＵの動作の他の一部を示すフロー図である。
【図８】この実施例に適用されるＰＣの構成の一例を示すブロック図である。
【図９】（Ａ）はファイルメニューの一例を示す図解図であり、（Ｂ）はカメラ所有者名の入力を促すガイドの一例を示す図解図である。
【図１０】図８に示すＰＣによるファイル編集動作の一部を示す図解図である。
【図１１】（Ａ）は編集された０ｔｈＩＦＤの一例を示す図解図であり、（Ｂ）は編集された０ｔｈＩＦＤｖａｌｕｅの一例を示す図解図である。
【図１２】削除可能タグメニューの一例を示す図解図である。
【図１３】図８に示すＰＣによるファイル編集動作の他の一部を示す図解図である。
【図１４】図８に示すＰＣに設けられたＣＰＵの動作の一部を示すフロー図である。
【図１５】図８に示すＰＣに設けられたＣＰＵの動作の他の一部を示すフロー図である。
【図１６】図８に示すＰＣに設けられたＣＰＵの動作のその他の一部を示すフロー図である。
【図１７】他の実施例によって編集されたＪＰＥＧファイルの構造の一例を示す図解図である。
【図１８】その他の実施例によって編集されたＪＰＥＧファイルの構造の一例を示す図解図である。
【発明を実施するための形態】
【００１８】
以下、この発明の実施の形態を図面を参照しながら説明する。
［基本的構成］
【００１９】
図１を参照して、この実施例の電子カメラは、基本的に次のように構成される。ファイル編集装置１は、主要情報と付属情報とが収められ、かつ予約領域の属性を記述した予約領域情報が付属情報に接するように収められた電子ファイルを編集する。詳しくは、変更手段２は、編集指示を受け付けたとき付属情報と予約領域情報との位置関係を変更する。第１編集手段３は、変更手段２の変更量に相当するサイズ変動が生じるように付属情報を編集する。第１更新手段４は、予約領域情報の記述を第１編集手段３の編集に対応して更新する。
【００２０】
編集指示が受け付けられると、互いに接する付属情報および予約領域情報の位置関係が変更され、位置関係の変更量に相当するサイズ変動が生じるように付属情報が編集される。したがって、予約領域情報は編集が完了した後も付属情報に接し続ける。予約領域情報が付属情報に接する位置関係を維持することで、予約領域情報を参照した予約領域への情報書き込みが可能となる。これによって、既存の付属情報の欠損を回避しつつ、付属情報を編集することができる。
［実施例］
【００２１】
図２を参照して、この実施例のディジタルカメラ１０は、撮像装置１２を含む。シャッタボタン２８が操作されると、ＣＰＵ２６は、静止画取り込み処理を実行するべく、撮像装置１２を起動する。撮像装置１２は、撮像面で捉えられた光学像に対応する１フレームの生画像データを作成し、作成された生画像データを出力する。カメラ処理回路１４は、撮像装置１２から出力された生画像データに色分離，白バランス調整，ＹＵＶ変換などの処理を施し、これによって作成されたＹＵＶ形式の画像データをメモリ制御回路１６を通してＳＤＲＡＭ１６に書き込む。
【００２２】
ＣＰＵ２６は続いて、圧縮処理を実行するべく、ＪＰＥＧエンコーダ２０を起動する。ＪＰＥＧエンコーダ２０は、ＳＤＲＡＭ１８に格納された１フレームの画像データをメモリ制御回路１６を通して読み出し、読み出された画像データをＪＰＥＧ方式で圧縮し、そして圧縮画像データつまりＪＰＥＧデータをメモリ制御回路１６を通してＳＤＲＡＭ１８に書き込む。こうして作成されたＪＰＥＧデータは、ＣＰＵ２６およびメモリＩ／Ｆ２２の協働によって記録処理を施される。この結果、新規のＪＰＥＧファイルが着脱自在のメモリカード２４に記録される。
【００２３】
記録処理は、以下の要領で実行される。まず、ファイル作成＆オープンがＣＰＵ２６からメモリＩ／Ｆ２２に指示される。メモリＩ／Ｆ２２は、ＪＰＥＧファイルをメモリカード２４に新規に作成し、かつ作成されたＪＰＥＧファイルをオープンする。ＪＰＥＧファイルがオープンされると、ＣＰＵ２６は、ＳＤＲＡＭ１８に格納されたＪＰＥＧデータをメモリ制御回路１６を通して読み出し、読み出されたＪＰＥＧデータを書き込み要求ととともにメモリＩ／Ｆ２２に与える。ＪＰＥＧデータは、メモリＩ／Ｆ２２によってオープン状態のＪＰＥＧファイルに書き込まれる。
【００２４】
図３の左側に示すように、ＪＰＥＧファイルは、ＳＯＩセグメント，ＡＰＰ１セグメント，ＤＱＴセグメント，ＤＨＴセグメント，ＳＯＦセグメント，ＳＯＳセグメント，およびＥＯＩセグメントを有する。ＪＰＥＧデータは、ＳＯＳセグメントとＥＯＩセグメントとの間に納められる。
【００２５】
ＣＰＵ２６は続いて、ＪＰＥＧ方式に従うファイル管理情報を作成し、作成したファイル管理情報を書き込み要求とともにメモリＩ／Ｆ２２に与える。メモリＩ／Ｆ２２は、与えられたファイル管理情報を図３に示すＳＯＩセグメント，ＡＰＰ１セグメント，ＤＱＴセグメント，ＤＨＴセグメント，ＳＯＦセグメント，ＳＯＳセグメントおよびＥＯＩセグメントに書き込む。ファイル管理情報には、ＡＰＰ１マーカ，ＡＰＰ１長，Ｅｘｉｆ識別コード，ＴＩＦＦヘッダ，０ｔｈＩＦＤ，予約領域管理情報，０ｔｈＩＦＤｖａｌｕｅ，１ｓｔＩＦＤおよび１ｓｔＩＦＤｖａｌｕｅが含まれる。これらの情報は、図３の右側に示す要領でＡＰＰ１セグメントに記述される。
【００２６】
こうしてＪＰＥＧデータおよびファイル管理情報の書き込みが完了すると、ファイルクローズがＣＰＵ２６からメモリＩ／Ｆ２２に指示される。メモリＩ／Ｆ２２は、オープン状態のＪＰＥＧファイルをクローズし、これによって記録処理が完了する。
【００２７】
図３の右側を参照して、０ｔｈＩＦＤ，予約領域管理情報，０ｔｈＩＦＤｖａｌｕｅ，１ｓｔＩＦＤおよび１ｓｔＩＦＤｖａｌｕｅは、ＴＩＦＦヘッダに続いてこの順で配置される。ただし、予約領域１が予約領域管理情報と０ｔｈＩＦＤｖａｌｕｅとの間に確保され、予約領域２が０ｔｈＩＦＤｖａｌｕｅと１ｓｔＩＦＤとの間に確保される。
【００２８】
つまり、予約領域管理情報の先頭は０ｔｈＩＦＤの末尾に接し、予約領域管理情報の末尾は予約領域１の先頭に接する。また、０ｔｈＩＦＤｖａｌｕｅの先頭は予約領域１の末尾に接し、０ｔｈＩＦＤｖａｌｕｅの末尾は予約領域２の先頭に接する。さらに、予約領域２の末尾は１ｓｔＩＦＤの先頭に接する。
【００２９】
ただし、０ｔｈＩＦＤ，予約領域管理情報および予約領域１は隙間なく連続する必要があるものの、予約領域２と０ｔｈＩＦＤｖａｌｕｅ，１ｓｔＩＦＤ，１ｓｔＩＦＤｖａｌｕｅとの間の位置関係は図３に示す位置関係に限られるものではない。
【００３０】
０ｔｈＩＦＤは図４（Ａ）に示すように構成され、０ｔｈＩＦＤｖａｌｕｅは図４（Ｂ）に示すように構成される。
【００３１】
図４（Ａ）によれば、“エントリの数”に続いて、タグ情報“撮影機器”，“撮影日時”，“水平解像度”および“垂直解像度”が記述される。“次ＩＦＤへのオフセット”は、これらのタグ情報に続いて記述される。
【００３２】
タグ情報は４つのエントリを有するため、“エントリの数”は“４”を示す。また、タグ情報“撮影機器”，“撮影日時”，“水平解像度”および“垂直解像度”はそれぞれ、“ＯＦＳＴ＿０１”，“ＯＦＳＴ＿０２”，“ＯＦＳＴ＿０３”および“ＯＦＳＴ＿０４”を示す。さらに、“次ＩＦＤへのオフセット”は“ＯＦＳＴ＿２０”を示す。なお、１エントリ分のタグ情報は、１２バイトのサイズを有する。
【００３３】
図４（Ｂ）によれば、拡張タグ情報“撮影機器の値”，“撮影日時の値”，“水平解像度の値”および“垂直解像度の値”が記述される。ここで、拡張タグ情報“撮影機器の値”はオフセットＯＦＳＴ＿０１から始まる位置に記述され、拡張タグ情報“撮影日時の値”はオフセットＯＦＳＴ＿０２から始まる位置に記述される。また、拡張タグ情報“水平解像度の値”はオフセットＯＦＳＴ＿０３から始まる位置に記述され、拡張タグ情報“垂直解像度の値”はオフセットＯＦＳＴ＿０４から始まる位置に記述される。さらに、拡張タグ情報“撮影機器の値”，“撮影日時の値”，“水平解像度の値”および“垂直解像度の値”はそれぞれ、“メーカＡ”，“yy/mm/dd/hh/mm”，“Hpixel”および“Vpixel”を示す。なお、図４（Ａ）に示す“ＯＦＳＴ＿２０”は、図３に示す１ｓｔＩＦＤの先頭位置に相当する。
【００３４】
予約領域管理情報は、図５に示すように構成される。図５によれば、予約領域１の属性および予約領域２の属性に共通して、管理情報識別コード，管理情報サイズおよび予約領域属性数が記述される。また、予約領域１および２の各々に対応してオフセット値およびサイズ値が記述される。
【００３５】
管理情報識別コードは“ＩＤ＿１”を示し、これによって予約領域管理情報の存在が表明される。管理情報サイズは“ＳＺ＿０”を示し、これによって図３に示す予約領域管理情報のサイズが表明される。予約領域属性数は“２”を示し、これによって予約領域１の属性および予約領域２の属性の存在が表明される。
【００３６】
予約領域１の属性に割り当てられたオフセット値およびサイズ値はそれぞれ“ＯＦＳＴ＿３０”および“ＳＺ＿１”を示し、これによって図３に示す予約領域１の属性が表明される。また、予約領域２の属性に割り当てられたオフセット値およびサイズ値はそれぞれ“ＯＦＳＴ＿４０”および“ＳＺ＿２”を示し、これによって図３に示す予約領域２の属性が表明される。
【００３７】
ＣＰＵ２６は、図６〜図７に示すフロー図に従う処理を実行する。なお、これらのフロー図に対応する制御プログラムは、フラッシュメモリ３０に記憶される。
【００３８】
ステップＳ１ではシャッタボタン２８が操作されたか否かを繰り返し判別し、判別結果がＮＯからＹＥＳに更新されるとステップＳ３に進む。ステップＳ３では、静止画取り込み処理を実行するべく、撮像装置１２を起動する。この結果、撮像面で捉えられた光学像に対応する１フレームの画像データがＳＤＲＡＭ１６に書き込まれる。
【００３９】
ステップＳ５では、圧縮処理を実行するべく、ＪＰＥＧエンコーダ２０を起動する。この結果、静止画取り込み処理によって取り込まれた画像データに基づくＪＰＥＧデータがＪＰＥＧエンコーダ２０によって作成され、作成されたＪＰＥＧデータがＳＤＲＡＭ１８に書き込まれる。ステップＳ７では、メモリＩ／Ｆ２２との協働によって記録処理を実行する。この結果、圧縮処理によって作成されたＪＰＥＧデータを収めた新規のＪＰＥＧファイルがメモリカード２４に記録される。記録処理が完了すると、ステップＳ１に戻る。
【００４０】
ステップＳ７の記録処理は、図７に示すサブルーチンに従って実行される。ステップＳ１１では、ファイル作成＆オープンの実行をメモリＩ／Ｆ２２に指示する。この結果、ＪＰＥＧファイルがメモリカード２４に新規に作成され、かつ作成されたＪＰＥＧファイルがオープンされる。ステップＳ１３では、ＳＤＲＡＭ１８に格納されたＪＰＥＧデータをメモリ制御回路１６を通して読み出し、読み出されたＪＰＥＧデータをメモリＩ／Ｆ２２を通してオープン状態のＪＰＥＧファイルに書き込む。
【００４１】
ステップＳ１５では、ＪＰＥＧ方式に従うファイル管理情報の一部を作成し、作成したファイル管理情報をメモリＩ／Ｆ２２を通してオープン状態のＪＰＥＧファイルに書き込む。ファイル管理情報は、ＪＰＥＧファイルに形成された各種セグメント（ＳＯＩセグメント，ＡＰＰ１セグメント，ＤＱＴセグメント，ＤＨＴセグメント，ＳＯＦセグメント，ＳＯＳセグメント，およびＥＯＩセグメント）に書き込まれる。
【００４２】
なお、ステップＳ１５で作成されるファイル管理情報からは、予約領域管理情報，０ｔｈＩＦＤ，０ｔｈＩＦＤｖａｌｕｅ，１ｓｔＩＦＤおよび１ｓｔＩＦＤｖａｌｕｅは除かれる。
【００４３】
ステップＳ１７では、予約領域管理情報を作成し、作成された予約領域管理情報をメモリＩ／Ｆ２２を通してオープン状態のＪＰＥＧファイルに書き込む。予約領域管理情報は、ＡＰＰ１セグメントに記述される。ステップＳ１９では、０ｔｈＩＦＤおよび０ｔｈＩＦＤｖａｌｕｅを作成し、作成された０ｔｈＩＦＤおよび０ｔｈＩＦＤｖａｌｕｅをメモリＩ／Ｆ２２を通してオープン状態のＪＰＥＧファイルに書き込む。０ｔｈＩＦＤおよび０ｔｈＩＦＤｖａｌｕｅも、ＡＰＰ１セグメントに記述される。
【００４４】
ステップＳ２１では、１ｓｔＩＦＤおよび１ｓｔＩＦＤｖａｌｕｅを作成し、作成された１ｓｔＩＦＤおよび１ｓｔＩＦＤｖａｌｕｅをメモリＩ／Ｆ２２を通してオープン状態のＪＰＥＧファイルに書き込む。１ｓｔＩＦＤおよび１ｓｔＩＦＤｖａｌｕｅもまた、ＡＰＰ１セグメントに記述される。ステップＳ２３では、ファイルクローズをメモリＩ／Ｆ２２に指示する。この結果、オープン状態のＪＰＥＧファイルがクローズされる。ファイルクローズが完了すると、上階層のルーチンに復帰する。
【００４５】
図８を参照して、ＰＣ(Personal Computer)４０は、メモリＩ／Ｆ４２を含む。ディジタルカメラ１０から抜去されたメモリカード２４がメモリＩ／Ｆ４２に接続されると、メモリカード２４に保存されたＪＰＥＧファイルがＣＰＵ４４によってアクセス可能となる。
【００４６】
キーボード／マウス４６によってファイル編集モードが選択されると、ＣＰＵ４４は、メモリカード２４に保存されたＪＰＥＧファイルのファイル名をメモリＩ／Ｆ４２を通して検出し、検出されたファイル名が列挙されたファイルメニューをメモリ制御回路４８を通してＤＲＡＭ５０に作成する。ディスプレイドライバ５２は、作成されたファイルメニューをメモリ制御回路４８を通してＤＲＡＭ５０から読み出し、読み出されたファイルメニューをディスプレイモニタ５４に表示する。ファイルメニューは、図９（Ａ）に示す要領でモニタ画面に表示される。
【００４７】
ファイルメニューに列挙された複数のファイル名のいずれか１つを指定するファイル指定操作がキーボード／マウス４６によって行われると、ＣＰＵ４４は、指定されたＪＰＥＧファイルをメモリＩ／Ｆ４２を通してメモリカード２４から読み出し、読み出されたＪＰＥＧファイルをメモリ制御回路４８を通してＤＲＡＭ５０に書き込む。
【００４８】
続いて、キーボード／マウス４６によって追記操作が行われると、後述する追記処理が実行される。これに対して、キーボード／マウス４６によって削除操作が行われると、後述する削除処理が実行される。追記処理の結果、カメラ所有者名を示すタグ情報および拡張タグ情報がＤＲＡＭ５０上のＪＰＥＧファイルが追記される。また、削除処理の結果、所望のタグ情報および拡張タグ情報がＤＲＡＭ５０上のＪＰＥＧファイルから削除される。
【００４９】
ＣＰＵ４４は、追記処理または削除処理を施されたＪＰＥＧファイルをメモリ制御回路４８を通してＤＲＡＭ５０から読み出し、読み出されたＪＰＥＧファイルをメモリＩ／Ｆ４２を通してメモリカード２４に書き込む。元のＪＰＥＧファイルは、追記処理または削除処理を施されたＪＰＥＧファイルによって上書きされる。
【００５０】
追記処理では、まずＪＰＥＧファイルのＡＰＰ１セグメントに上述の要領で記述された予約管理情報が注目される。
【００５１】
予約領域管理情報の存在を示す“ＩＤ＿１”（＝管理情報識別コード）が０ｔｈＩＦＤの末尾に接する位置に記述されており、かつ予約領域管理情報に記述された予約領域１のサイズおよび予約領域２のサイズがそれぞれ閾値ＴＨ１およびＴＨ２を上回れば、ＪＰＥＧファイルへの追記は可能であると判断される。
【００５２】
これに対して、０ｔｈＩＦＤの末尾に接する位置に“ＩＤ＿１”が記述されていなければ、予約領域管理情報は存在しないため、ＪＰＥＧファイルへの追記は不可能であると判断される。さらに、“ＩＤ＿１”が記述されていても、予約領域１のサイズが閾値ＴＨ１を下回るか或いは予約領域２のサイズが閾値ＴＨ２を下回れば、ＪＰＥＧファイルへの追記は不可能であると判断される。
【００５３】
ＪＰＥＧファイルへの追記が不可能であれば、追記不能を報知する効果音が図示しないスピーカを通して出力される。これに対して、ＪＰＥＧファイルへの追記が可能であれば、以下の処理がＣＰＵ４４によって実行される。
【００５４】
まず、カメラ所有者名の入力を促すガイドが、メモリ制御回路４８を通してＤＲＡＭ５０に作成される。ディスプレイドライバ５２は、作成されたガイドをメモリ制御回路４８を通してＤＲＡＭ５０から読み出し、読み出されたガイドをディスプレイモニタ５４に表示する。ガイドは、図９（Ｂ）に示す要領でモニタ画面に表示される。
【００５５】
キーボード／マウス４６によってカメラ所有者名が入力され、かつキーボード／マウス４６によって確定操作が行われると、入力されたカメラ所有者名が取得される。続いて、１エントリ分のタグ情報のサイズ（＝１２バイト）に相当する空き領域が０ｔｈＩＦＤに記述されたタグ情報“垂直解像度”および“次ＩＦＤへのオフセット”の間に確保されるように、０ｔｈＩＦＤの一部と予約領域管理情報とがＡＰＰ１セグメント内で移動される（図１０参照）。
【００５６】
なお、空き領域は、“エントリの数”とタグ情報“撮影機器”との間に確保してもよく、隣接する２エントリのタグ情報の間に確保してもよい。
【００５７】
移動が完了すると、０ｔｈＩＦＤに記述された“エントリの数”の値がインクリメントされる（図１１（Ａ）参照）。さらに、タグ情報“カメラ所有者名”が０ｔｈＩＦＤに確保された空き領域に追記され、拡張タグ情報“カメラ所有者名の値”が予約領域２から取得された領域を利用して０ｔｈＩＦＤｖａｌｕｅに追記される（図１０および図１１（Ｂ）参照）。
【００５８】
なお、０ｔｈＩＦＤに記述されたタグ情報“カメラ所有者名”は、０ｔｈＩＦＤｖａｌｕｅに記述された拡張タグ情報“カメラ所有者名の値”へのオフセットである“ＯＦＳＴ＿０５”を示す。
【００５９】
続いて、予約領域管理情報に記述された予約領域１の属性が、０ｔｈＩＦＤへのタグ情報の追記に対応して更新される。また、予約領域管理情報に記述された予約領域２の属性が、拡張タグ情報“カメラ所有者名の値”の追記に対応して更新される。
【００６０】
予約領域１の属性を定義するオフセット値は１２バイトだけ加算され、予約領域１の属性を定義するサイズ値は１２バイトだけ減算される。また、拡張タグ情報のサイズをＫバイトとすると、予約領域２の属性を定義するオフセット値はＫバイトだけ加算され、予約領域２の属性を定義するサイズ値はＫバイトだけ減算される。追記処理は、予約領域１および２の属性の更新によって完了する。
【００６１】
削除処理は、以下の要領で実行される。まず、削除可能タグメニューがメモリ制御回路４８を通してＤＲＡＭ５０に作成される。ディスプレイドライバ５２は、作成された削除可能タグメニューをメモリ制御回路４８を通してＤＲＡＭ５０から読み出し、読み出された削除可能タグメニューをディスプレイモニタ５４に表示する。削除可能タグメニューは、図１２に示す要領でモニタ画面に表示される。
【００６２】
キーボード／マウス４６によって選択操作が行われると、指定されたタグ情報が図１１（Ａ）に示す０ｔｈＩＦＤから削除され、削除されたタグ情報よりも下に存在する０ｔｈＩＦＤの記述が１２バイトだけ上にずらされ、０ｔｈＩＦＤに記述された“エントリの数”の値がディクリメントされる。予約領域管理情報の位置はその後、ＡＰＰ１セグメント内で１２バイトだけ上にずらされる。これによって、予約領域管理情報の先頭が０ｔｈＩＦＤの末尾に接する（図１３参照）。
【００６３】
予約領域管理情報に記述された予約領域１の属性は、０ｔｈＩＦＤの部分的な削除に対応して更新される。また、予約領域管理情報に記述された予約領域２の属性は、指定されたタグ情報に対応する拡張タグ情報が予約領域２に接している場合に限って、拡張タグ情報のサイズに対応して更新される。拡張タグ情報を保持していた領域は、予約領域２に吸収され、再利用可能になる。指定されたタグ情報に対応する拡張タグ情報が予約領域２に接していない場合は、予約領域２の属性は更新されず、拡張タグ情報を保持していた領域はどこからも参照されなくなり、再利用不可能になる。
【００６４】
予約領域１の属性を定義するオフセット値は１２バイトだけ減算され、予約領域１の属性を定義するサイズ値は１２バイトだけ加算される。また、拡張タグ情報のサイズをＫバイトとすると、拡張タグ情報を保持していた領域が予約領域２の先頭と接していた場合は予約領域２の属性を定義するオフセット値がＫバイトだけ減算され、拡張タグ情報を保持していた領域が予約領域２の末尾と接していた場合は予約領域２の属性を定義するオフセット値は更新されない。予約領域２の属性を定義するサイズ値はＫバイトだけ加算される。
【００６５】
結果的に、拡張タグ情報を保持していた領域は、予約領域１の属性の更新によってどこからも参照されなくなり実質的に削除され、予約領域２と接していた場合に限っては予約領域２として再利用される（図１３参照）。
【００６６】
ファイル編集モードが選択されたとき、ＣＰＵ４４は、図１４〜図１６に示すフロー図に従う処理を実行する。なお、これらのフロー図に対応する制御プログラムは、ＨＤＤ５６に保存される。
【００６７】
ステップＳ３１では、メモリカード２４に保存されたＪＰＥＧファイルのファイル名をメモリＩ／Ｆ４２を通して検出し、検出されたファイル名が列挙されたファイルメニューをメモリ制御回路４８を通してＤＲＡＭ５０に作成する。作成されたファイルメニューはディスプレイドライバ５２によって読み出され、図９（Ａ）に示す要領でディスプレイモニタ５４に表示される。
【００６８】
ステップＳ３３では、ファイル指定操作が行われたか否かを繰り返し判別する。ステップＳ３３の判別結果は、ファイルメニューに列挙された複数のファイル名のいずれか１つがキーボード／マウス４６によって指定されたときに、ＮＯからＹＥＳに更新される。ステップＳ３５では、こうして指定されたＪＰＥＧファイルをメモリＩ／Ｆ４２を通してメモリカード２４から読み出し、読み出されたＪＰＥＧファイルをメモリ制御回路４８を通してＤＲＡＭ５０に書き込む。
【００６９】
ステップＳ３７では追記操作が行われたか否かを判別し、ステップＳ３９では削除操作が行われたか否かを判別する。キーボード／マウス４６による操作が追記操作に相当すれば、ステップＳ４１で追記処理を実行する。一方、キーボード／マウス４６による操作が削除操作に相当すれば、ステップＳ４３で削除処理を実行する。
【００７０】
ステップＳ４５では、追記処理または削除処理を施されたＪＰＥＧファイルをメモリ制御回路４８を通してＤＲＡＭ５０から読み出し、読み出されたＪＰＥＧファイルをメモリＩ／Ｆ４２を通してメモリカード２４に書き込む。元のＪＰＥＧファイルは、追記処理または削除処理を施されたＪＰＥＧファイルによって上書きされる。ステップＳ４５の処理が完了すると、ステップＳ３１に戻る。
【００７１】
ステップＳ４１の追記処理は、図１５に示すサブルーチンに従って実行される。ステップＳ５１では、ＪＰＥＧファイルのＡＰＰ１セグメントにアクセスし、“ＩＤ＿１”（＝管理情報識別コード）が０ｔｈＩＦＤの末尾に接する位置に記述されているか否かを判別する。判別結果がＹＥＳであれば、予約領域管理情報が０ｔｈＩＦＤに続いて記述されているとみなし、ステップＳ５３に進む。これに対して、判別結果がＮＯであれば、予約領域管理情報は存在しないとみなし、ステップＳ６９に進む。
【００７２】
ステップＳ５３では、予約領域管理情報に記述された予約領域１および２の属性を検出し、予約領域１のサイズが閾値ＴＨ１を上回り、かつ予約領域２のサイズが閾値ＴＨ２を上回るという論理積条件が満足されるか否かを判別する。判別結果がＹＥＳであればステップＳ５５に進み、判別結果がＮＯであればステップＳ６９に進む。
【００７３】
ステップＳ６９では、追記不能を報知する効果音を図示しないスピーカを通して出力する。報知が完了すると、上階層のルーチンに復帰する。
【００７４】
ステップＳ５５では、カメラ所有者名の入力を促すガイドをメモリ制御回路４８を通してＤＲＡＭ５０に作成する。作成されたガイドはディスプレイドライバ５２によって読み出され、図９（Ｂ）に示す要領でディスプレイモニタ５４に表示される。キーボード／マウス４６によってカメラ所有者名が入力され、かつキーボード／マウス４６によって確定操作が行われると、入力されたカメラ所有者名をステップＳ５７で取得する。
【００７５】
ステップＳ５９では、１エントリ分のタグ情報のサイズ（＝１２バイト）に相当する空き領域が０ｔｈＩＦＤ内に確保されるように、０ｔｈＩＦＤの一部と予約領域管理情報とをＡＰＰ１セグメント内で移動させる。ステップＳ６１では、０ｔｈＩＦＤに記述された“エントリの数”の値をインクリメントする。ステップＳ６３ではタグ情報“カメラ所有者名”を０ｔｈＩＦＤに追記し、ステップＳ６５では拡張タグ情報“カメラ所有者名の値”を０ｔｈＩＦＤｖａｌｕｅに追記する。
【００７６】
具体的には、ステップＳ６３では、０ｔｈＩＦＤに形成された１２バイトの空き領域にタグ情報“カメラ所有者名”を記述する。ステップＳ６５では、拡張タグ情報“カメラ所有者名の値”を予約領域２から取得された領域に記述する。
【００７７】
ステップＳ６７では、予約領域管理情報に記述された予約領域１の属性を０ｔｈＩＦＤへのタグ情報の追記に対応して更新する。また、ステップＳ６９では、予約領域管理情報に記述された予約領域２の属性を０ｔｈＩＦＤｖａｌｕｅへの拡張タグ情報の追記に対応して更新する。予約領域１の属性を定義するオフセット値は１２バイトだけ加算され、予約領域１の属性を定義するサイズ値は１２バイトだけ減算される。また、拡張タグ情報のサイズをＫバイトとすると、予約領域２の属性を定義するオフセット値はＫバイトだけ加算され、予約領域２の属性を定義するサイズ値はＫバイトだけ減算される。ステップＳ６９の処理が完了すると、上階層のルーチンに復帰する。
【００７８】
図１４に示すステップＳ４３の削除処理は、図１６に示すサブルーチンに従って実行される。ステップＳ７１では、削除可能タグメニューをメモリ制御回路４８を通してＤＲＡＭ５０に作成する。作成された削除可能タグメニューは、ディスプレイドライバ５２によって読み出され、図１２に示す要領でモニタ画面に表示される。
【００７９】
ステップＳ７３では選択操作が行われたか否かを判別し、ステップＳ７５では終了操作が行われたか否かを判別する。キーボード／マウス４６による操作が終了操作に相当すればそのまま上階層のルーチンに復帰し、キーボード／マウス４６による操作が選択操作に相当すればステップＳ７７〜Ｓ８５の処理を経て上階層のルーチンに復帰する。
【００８０】
ステップＳ７７では、指定されたタグ情報を０ｔｈＩＦＤから削除し、削除されたタグ情報よりも下に存在する０ｔｈＩＦＤの記述を１２バイトだけ上にずらす。ステップＳ７９では、０ｔｈＩＦＤに記述された“エントリの数”の値をディクリメントする。ステップＳ８１では、予約領域管理情報をＡＰＰ１セグメント内で１２バイトだけ上にずらす。予約領域管理情報の先頭は０ｔｈＩＦＤの末尾に接することとなる。
【００８１】
ステップＳ８３では、予約領域管理情報に記述された予約領域１の属性を０ｔｈＩＦＤの部分的な削除に対応して更新する。予約領域１の属性を定義するオフセット値は１２バイトだけ減算され、予約領域１の属性を定義するサイズ値は１２バイトだけ加算される。
【００８２】
ステップＳ８５では、予約領域管理情報に記述された予約領域２の属性を指定されたタグ情報に対応する拡張タスク情報のサイズに対応して更新する。
【００８３】
拡張タグ情報のサイズをＫバイトとすると、拡張タグ情報が予約領域２の先頭と接する場合には、予約領域２の属性を定義するオフセット値がＫバイトだけ減算され、拡張タグ情報が予約領域２の末尾と接する場合には、予約領域２の属性を定義するオフセット値は更新されない。また、拡張タグ情報が予約領域２の先頭または末尾と接している場合には、予約領域２の属性を定義するサイズ値はＫバイトだけ加算され、拡張タグ情報が予約領域２の先頭および末尾のどちらとも接していない場合には、予約領域２の属性を定義するサイズ値は更新されない。
【００８４】
拡張タグ情報は、予約領域１の属性の更新によって、どこからも参照されなくなることにより、実質的に削除される。また、拡張タグ情報が予約領域２に接しているに限っては予約領域２として再利用される。
【００８５】
以上の説明から分かるように、編集のためにＰＣ４０によってアクセスされるＪＰＥＧファイルは、ＪＰＥＧデータに加えて０ｔｈＩＦＤおよび０ｔｈＩＦＤｖａｌｕｅを収め、さらに予約領域１および２の属性を記述した予約領域管理情報を収める。ここで、予約領域管理情報は、０ｔｈＩＦＤに接するようにＪＰＥＧファイルに収められる。追記操作または削除操作が行われると、ＣＰＵ４４は、０ｔｈＩＦＤと予約領域管理情報との位置関係を変更し(S59, S81)、位置関係の変更量に相当するサイズ変動が生じるように０ｔｈＩＦＤを編集する(S61~S63, S77~S79)。ＣＰＵ４４はさらに、予約領域管理情報の記述を０ｔｈＩＦＤの編集に対応して更新する(S67, S83)。
【００８６】
このように、追記操作または削除操作を受け付けると、互いに接する０ｔｈＩＦＤおよび予約領域管理情報の位置関係が変更され、位置関係の変更量に相当するサイズ変動が生じるように０ｔｈＩＦＤが編集される。したがって、予約領域管理情報は編集が完了した後も０ｔｈＩＦＤに接し続ける。予約領域管理情報が０ｔｈＩＦＤに接する位置関係を維持することで、予約領域管理情報を参照した予約領域１および２への情報書き込みが可能となる。これによって、０ｔｈＩＦＤを形成する既存のタグ情報の欠損を回避しつつ、０ｔｈＩＦＤを編集することができる。
【００８７】
なお、この実施例では、タグ情報を０ｔｈＩＦＤに記述し、拡張タグ情報を０ｔｈＩＦＤｖａｌｕｅに記述することを想定している（図１０参照）。しかし、タグ情報の値のサイズが４バイト以下であれば、拡張タグ情報は不要である。したがって、４バイト以下の値を伴うタグ情報を追記する場合は、０ｔｈＩＦＤの記述および予約領域管理情報の位置が図１７に示す要領で更新されるに留まる。
【００８８】
また、別のＩＦＤおよびＩＦＤｖａｌｕｅをＡＰＰ１セグメントに新規に形成し、これに対応して予約領域管理情報および２つの予約領域を新規に形成するようにしてもよい。従前の予約領域管理情報，予約領域１および予約領域２を“予約領域Ａ管理情報”，“予約領域Ａ１”および“予約領域Ａ２”と再定義し、ＧＰＳＩｎｆｏＩＦＤ，ＧＰＳＩｎｆｏＩＦＤｖａｌｕｅ，予約領域Ｂ管理情報，予約領域Ｂ１および予約領域Ｂ２を新規に形成する場合、ＡＰＰ１セグメントの記述は図１８に示す要領で更新される。
【００８９】
図１８によれば、ＧＰＳＩｎｆｏＩＦＤを指向するＧＰＳＩｎｆｏＩＦＤポインタが０ｔｈＩＦＤに追記され、ＧＰＳＩｎｆｏＩＦＤ，予約領域Ｂ管理情報，予約領域Ｂ１，ＧＰＳＩｎｆｏＩＦＤｖａｌｕｅおよび予約領域Ｂ２がこの順で予約領域Ａ２に記述される。
【００９０】
さらに、この実施例では、０ｔｈＩＦＤおよび０ｔｈＩＦＤｖａｌｕｅに対応して予約領域管理情報および複数の予約領域を作成するようにしているが、予約領域管理情報および複数の予約領域は１ｓｔＩＦＤおよび１ｓｔＩＦＤｖａｌｕｅに対応して作成するようにしてもよい。
【００９１】
また、この実施例では、０ｔｈＩＦＤの末尾に接する位置に予約領域管理情報を記述するようにしている。しかし、予約領域管理情報は、０ｔｈＩＦＤの先頭に接する位置に記述してもよい。また、この実施例では省略したが、管理情報内で２バイト以上のサイズで記録される属性値を物理的に書き込む際のバイトオーダ属性や、管理情報の段階的な改善にともなう互換性を確保するためのバージョン番号属性や、予約領域２からの拡張タグ情報用領域切り出しを予約領域２の先頭端とするか末尾端とするかを指定する属性や、予約領域のオフセットの基準点をどこにするかを指定する属性を、管理情報の一部として記録してもよい。
【符号の説明】
【００９２】
１０  …ディジタルカメラ
２０  …ＪＰＥＧエンコーダ
２６，５０  …ＣＰＵ
２４  …メモリカード
４０  …ＰＣ
４２  …ＤＲＡＭ
４４  …モニタ
【図１】
2012199850.tif 000003
【図２】
2012199850.tif 000004
【図３】
2012199850.tif 000005
【図４】
2012199850.tif 000006
【図５】
2012199850.tif 000007
【図６】
2012199850.tif 000008
【図７】
2012199850.tif 000009
【図８】
2012199850.tif 000010
【図９】
2012199850.tif 000011
【図１０】
2012199850.tif 000012
【図１１】
2012199850.tif 000013
【図１２】
2012199850.tif 000014
【図１３】
2012199850.tif 000015
【図１４】
2012199850.tif 000016
【図１５】
2012199850.tif 000017
【図１６】
2012199850.tif 000018
【図１７】
2012199850.tif 000019
【図１８】
2012199850.tif 000020