EXIF解析
基本機能
この機能は作者のEXIF解析及びデバックする為の機能です。
一般にはあまり使う機会がないと思います...。
以下、基本機能の説明です。

T.解析機能
ダンプ画面へJPEGをドラッグするとEXIFデータのダンプデータが出力されます。
ダンプデータはEXIFの各要素毎に色分けされて表示されます。
この時、画面右下の「EXIF情報」表示部に情報を表示します。


U.データ比較
2つのEXIFデータを比較します。
単純にバイナリデータとしての比較と各タグ毎に比較する2つのモードを用意しています。


V.データ操作
表示しているEXIFデータを書き換えます。


W.メーカーノート解析
メーカーノートをTiff構造に従い解析します。
ダンプ画面の文字配色説明
    EXIFヘッダもしくはメーカーノート識別子等
    TIFFヘッダ(Byte Order(IIもしくはMM)、"002Ah"、0thIFDへのオフセットで構成)
    IFDのカウンタ(IFD構造の最初の2バイトで、そのIFDに含まれるタグの数を表す)
    Next IFDへのオフセット(IFD構造の最後の4バイトで、次のIFDのオフセット値を記録)
    エラーを示す
    タグ(Tag)を示す(IFDに含まれる各フィールドの最初の2バイト)
    各フィールドのタイプ(Type)、カウント(Count)、値へのオフセット(ValueOffset)を示す
    IFD Valueを示す。タグの値が5バイト以上の場合に使用する領域
    サムネイル画像データを示す
  非参照データ(どのタグからも参照されていないデータ)
※2色記載されている項目は、左がEXIFデータで使用、右がメーカーノート内で使用している色です。
タグなどのデータ要素はEXIFデータ構造と、メーカーノート構造で意味合いは同じですが、可読性を高める為、異なる配色としています。
EXIF情報 表示部説明
Size EXIFデータ全体のサイズ(バイト)を示す
Endian EXIFで使用するバイトオーダーを示す。(IIもしくはMM)
0th IFD 0th IFDのタグ数
1st IFD 1st IFDのタグ数
EXIF IFD EXIF IFDのタグ数
GPS IFD GPS IFDのタグ数
互換 IFD 互換 IFDのタグ数
Non-reference 非参照データのサイズ(バイト)を示す
ダンプ画面で白色文字で表示されるデータ。
メーカーノート情報 一部メーカーノートについては自動判別し、そのメーカー名を示す
Offset メーカーノートタグに記録されるValueOffset値
Size メーカーノートタグに記録されるSize値
Endian メーカーノート内で使用するバイトオーダー
Main IFD メーカーノートの主IFDのタグ数
Sub1 IFD メーカーノート内にサブIFDが存在すればそのタグ数
Sub2 IFD メーカーノート内にサブIFDが存在すればそのタグ数
Non-reference メーカーノート内の非参照データのサイズ(バイト)を示す
ダンプ画面で紫色文字で表示されるデータ。
Error 解析時のエラー数
データ比較 説明
データ比較はメニューの「オプション」-「EXIF比較モード」を選択することで有効になります。
このモードではダンプ画面が2つ表示される為、モニターの解像度が1280*1024以上でないと画面が表示しきれません。
2つのダンプ画面にJPEGをドラッグして”比較開始”ボタンを押下する事で比較処理を実行します。
比較結果は、ダンプ画面上には色で、また、データ比較操作部に数字として示されます。
以下に、比較操作のオプションの説明します。
比較モード 「バイナリ比較」、「タグ比較」のいずれかを選択します。
■バイナリ比較モード:
2つのEXIFデータを1バイト目から単純に比較します。
EXIFデータが完全に同一か?などをチェックする場合に利用します。

■タグ比較モード:
2つのEXIFを解析し、各IFDのタグ毎に比較を行います。
両者に同一のタグが存在するか?同一タグが存在する場合、Type、Count、Value、Value Offsetは同一か?をチェックします。
非参照データ(配色説明参照)はチェック対象となりません。
Offsetの違いは無視する タグの値が5バイト以上の場合、ValueOffset要素にはそのValueへのオフセットが記録されます。
このオプションをチェックすることで、このオフセットの違いは無視し、タグ、Type、Count及びValueのみをチェックします。
※タグ比較モードでのみ有効
メーカーノートタグ内のタグ比較は行わない このオプションにチェックを付けるとメーカーノート内のタグはチェックしません。
※タグ比較モードでのみ有効
タグの一部が異なれば全体をマーク 2つのEXIFの比較では異なる要素のみをマークしています。このオプションにチェックを付けると各フィールドの一部に際がある場合、フィールド全体をマークします。
※タグ比較モードでのみ有効
結果表示
ダンプ画面 値が異なる場合は文字のバックカラーが赤色で表示されます。
片方のEXIFにしか存在しない場合にはバックカラーが青色で表示されます。
データ比較情報表示部 比較モードにより表示データが異なります。
■バイナリ比較モード:
差異のあるバイト数が表示されます。

■タグ比較モード:
EXIF及びメーカーノート毎に以下の情報を出力します。
Total Count トータル件数
Not Equal 2つのEXIFで値が異なるタグの件数
Only in th left ダンプ画面左側のみに存在するタグ件数
Only in th right ダンプ画面右側のみに存在するタグ件数
結果リスト 差異のあるタグの一覧を表示します。
※タグ比較モードでのみ有効
データ操作 説明
表示データへのデータ更新及び表示データをJPEGへ書き戻すことが可能です。
データ操作機能はデータ構造のチェックを行うことなく単なるバイナリエディタの様にデータを更新します。
作者はEXIFデータを破壊する為に使用してます(異常系試験データの作成補助機能です)。

ダンプ画面より編集したい箇所をダブルクリックすると、現在の値が入力欄にセットされます。
値を変更し、”バッファ更新”ボタンを押下する事で画面上に反映されます。
”ファイル出力”ボタンを押下すると保存ファイル名の確認ダイアログが表示されます。
メーカーノートをTiff構造に従い解析する
メーカーノートはTIFF構造になっているものが多いようです。
この為、メーカーノートがTIFF構造になっていると仮定し解析する機能です。

※メーカーノートデータについても0th IFDやEXIF IFDと同様にEXIF仕様に規定されたTIFF構造を元にエラーチェックを行います。この為、TIFF構造と若干異なるメーカーノートでは正常にもかかわらずエラーと表示されます。

解析パラメータについては以下の通り入力します。
オフセット基準位置 タグのOffsetを記録する際に何処を基準にしているかを決定します。

多くのメーカー(Canon、Pentax等)はEXIFのTIFFヘッダを基準にしています。
ニコン、フジフィルムなどはメーカーノート内にOffset基準位置を設けています。
基準位置からのオフセット APP0マーカー、EXIFのTIFFヘッダを基準にしている場合は0になります。
メーカーノート内にOffset基準位置を設けている場合などはメーカーノートの先頭から何バイトと目が基準位置になるかを設定します。
例えばニコンの場合は、メーカーノートデータの先頭10バイトがヘッダとして使われ、その次にTiffヘッダが存在し、これが基準となっています。この様な場合は10をセットします。
IFD開始位置までのオフセット IFDの開始位置(IFDカウンタ)がメーカーノートの何バイト目から始まるかを設定します。
例えば、ニコンの場合は、メーカヘッダ+Tiffヘッダ=18バイトなので18をセットします。キャノンの様にメーカーノート先頭からIFD構造が始まる場合は0をセットします。
エンディアン メーカーノートで使用するエンディアンをセットします。
サブIFDタグ1
サブIFDタグ2
メーカーノートのメインIFDにサブIFDへのオフセットを示すタグがある場合にセットします。
最大2つまで指定出来ます。これ以上扱うメーカーもありますが現在は設定出来ません。
また、オフセットを示すタグはLONG型を想定している為、これ以外のタイプが使われている場合正常動作しません。
その他
データ損失確認
『F6 Exif』はEXIF2.1仕様を基に開発しています。
編集対象のJPEGにEXIF2.1仕様で規定されないデータ構造で格納されているデータが含まれている場合、そのデータは失われます。
しかし、言葉だけではどの程度のデータが失われるのか分かりませんよね。
次の方法でどの程度のデータを失うかが分かります。(失われるデータが何を意味するかは分かりません)
※この機能はバージョン0.7以降で使用可能です。

@.メイン画面もしくはEXIF閲覧画面より「Ctrl」+「D」キーを押下する事で、EXIF DEBUG画面が起動します。
 (この画面は作者のデバック機能であり色々なボタンがありますが気にしないで下さい)

A.損失データの確認
 画面右下"EXIF情報"のNon-referenceの数字が損失されるデータ数(バイト)となります。
 画面左側に数字が羅列されている画面がありますが、白色文字だけに着目してください。
  (興味のある人はこのページ先頭から読んでください。各色が何を示すか分かります。)
 『F6 Exif』が理解できないデータであるため、それが何を示すデータなのかを通知する事は出来ません。

損失データが "00"の羅列である場合、データ的には何も記録されていない為、ほとんど意味を持たないと考えられます。失ってもおそらく影響はないでしょう。




Copyright (C)2006-2007 ryouto.jp. All Rights Reserved.