Top >> Digital Camera >> MakerNote

Nikonデジタル一眼レフのメーカーノート



メーカーノートとは

デジタルカメラで撮影されたファイルにはEXIFと呼ばれる撮影情報が含まれている。撮影情報というのは、絞りであるとかシャッタースピードといった、カメラを使う場合には必須といえる情報。これらのデータが撮影されたJPEGファイルの中に隠されているのである。
そしてこのEXIF情報の中には「メーカーノート」と呼ばれる一連の情報群がある。これは、広い意味では撮影情報といえるものだが、他のEXIF情報とはちょっと毛色が違う。いわゆる一般的な「撮影情報」とは違う、撮影時に使ったカメラ固有の情報が入っているのである。

EXIFに書かれている情報は、写真を撮影する上で普遍的とも言える情報が多い。言い換えれば、どのカメラにも共通で使えるような情報ということ。このためEXIFには標準規格が定められており、別の機種で撮影した写真でも、EXIF情報の読み出し方、解釈の仕方は共通だ。
これに対してメーカーノートは、カメラのメーカーが違えば、提供されている情報の種類も違う。たとえば「カメラが製造されてから、いままでにシャッターが切られた回数」といった、そのカメラ固有の情報が入っている。

メーカー毎、機種ごとにメーカーノートの情報が違うということは、カメラの機種ごとに、あるデータがどういう意味を持っているのかを知らなければ、そのデータを解釈することはできない。ところがその内容については、現在ではどのメーカーも公開しようとしない。なぜならメーカーノートには、各メーカーのノウハウが数多く含まれているからだ。
しかしユーザーから見れば、メーカーノートの情報は貴重だ。たとえば画像データをより管理しやすくしたり、加工したりといったことがやりやすくなるからだ。このため、非公開のはずのメーカーノートを独自に解析、調査している人は多い。そうした情報はインターネット上でもあちこちに公開されている。

私が使っているNikonのデジタル一眼レフカメラについても、メーカーノート情報は豊富だ。ただD2Xのような新機種に関しては、意味が判明していない情報もまだまだ多い。そこでここでは、ニコンのデジタル一眼レフのメーカーノートについて、他所ではあまり公開されていない情報を中心に調査してゆきたい。


JPEGファイルの構造

まずはじめに、メーカーノートのデータにアクセスするにはどのようにすればよいかを説明しよう。冒頭で述べたように、メーカーノートの情報は、カメラが出力するJPEGファイル中にある。より詳しく言えば、ファイル内に格納された「EXIF情報」のさらに中に含まれている。そこで、まずはこのEXIF情報を探し出してみよう。

JPEGファイルの構造というのは、ISO/IEC 10918-1によって規定されている。規格書を手に入れればその内容はわかるが、頒布は有償だ。
一方、EXIFデータの構造についても同様に社団法人電子情報技術産業協会(JEITA)が公開する「CP-3451 ディジタルスチルカメラ用画像ファイルフォーマット規格Exif 2.21」を参照すればわかる。この規格書にもJPEGファイルの構造は説明されているので、これを読めば、前出のISO/IEC 10918-1を見なくても平気だろう。

JPEGファイルは、マーカーと呼ばれる2バイトコードによって区切られたセグメント構造になっている。先頭のマーカーはSOI(Start of image)で、その値は0xFFD8、終端のマーカーはEOI(End of Image)と呼ばれ、その値は0xFFD9だ。ためしにJPEGファイルをダンプしてみれば、FF D8から始まり、FF D9で終わっていることが見て取れるだろう。
SOIおよびEOI以外の他のマーカーは、2バイトのマーカーに続いて内部に実データを持っている。データサイズは可変となっており、2バイトのマーカーの直後に同じく2バイトでデータサイズが記録されている。データの並びは、上位バイトが先に来る、いわゆるMotorolaフォーマットだ。
マーカーにはいくつかの種類がある。またJPEGファイルの内部でマーカーの出現順序が決めれている。それらを大まかな図にすると以下のようになっている。

Table 1: JPEG format
SOIStart of image0xFF0xD8
APPxApplication Marker Segment x ->(Table 2)
(Application Specific Information)
0xFF0xEx・・・
:::
DQTQuantization Table0xFF0xDB・・・
DHTHuffman Table0xFF0xC4・・・
:::
EOIEnd of image0xFF0xD9


目的とするEXIF情報は、このうち「APP1マーカー」の部分に入っている。APP1マーカーセグメントの構成は以下の図の通りで、マーカーサイズの直後に「Exif」という識別コードが入っているかどうかで判定できる。

Table 2: APP1
APP1 Marker0xFF0xE1
APP1 Length2 byte
Exif Identifier Code0x45
'E'
0x78
'x'
0x69
'i'
0x66
'f'
0x00
'\0'
0x00
'\0'
Exif InformationExif attribute information -> (Table 3)

メーカーノートは、このExif情報の中に含まれている。したがってJPEGファイルからExif情報を得るための第一ステップである「TIFFヘッダの検索」は以下のような手順となる。

  1. JPEGファイルの先頭マーカー(SOI)はそのまま読み飛ばす
  2. APPマーカーセグメント(0xFF,0xEn)でなければそのファイルにExif情報は無し
  3. APP1マーカーセグメント(0xFF,0xE1)であれば、続く6バイトが'Exif\0\0'であることを確認
  4. Exif\0\0であれば、次のバイトからExif情報を含むTIFFデータである
  5. Exif\0\0でない場合は、セグメントサイズ分を読み飛して、再度2.へ


TIFF(Exif)のデータ構造

EXIFデータは、JPEGのようなマーカー構造ではなく、画像データでよく使われるTIFF構造となっている。
TIFF構造とは、任意フォーマットのデータをひとつのファイルに収められるよう考えられたもので、「タグ」と呼ばれるデータ記述子を使用したブロック構造のファイルとなっている。TIFFデータの先頭には、それらデータの大本となるTIFFヘッダがあるが、その構造は以下の通りだ。

Table 3: TIFF Header
TIFF HeaderByte order0x4D
'M'
0x4D
'M'
Byte order is in Motorola format(aka. Big Endian)
0x49
'I'
0x49
'I'
Byte order is in Intel format(aka. Little Endian)
TIFF Magic Number0x002AFixed value
Offset for IFD04 bytes offsetOffset for First IFD(byte offset from top of TIFF Header)
->(Table 4)


TIFF Headerは必ず0x4d,0x4dまたは0x49,0x49という2バイト並びから始まる。0x4dから始まる場合、TIFFファイルの基本バイトオーダーはMotorola方式(Big Endian)とされ、ファイル中のWordやLong Wordのデータは上位バイトから順に記録される。一方、0x49から始まる場合、WordやLong WordはIntel方式で記録される。
続くデータはTIFFヘッダにおけるマジックナンバーとされているもので、0x002a(42)という固定値が2バイトサイズで記録される。この際のバイトオーダーは、もちろん冒頭の2バイトで指定された順が使われる。
次に記録されるのが、Information Directry(IFD)へのオフセットで、データサイズは4バイトだ。ここでいうオフセットとは、TIFFヘッダの先頭(すなわち0x49または0x4dのバイト)からのオフセットであることに注意が必要である。EXIFデータのようにファイルの途中からTIFFヘッダが始まる場合、ファイル先頭からのオフセットとは異なる値となる。
表を見てわかるように、TIFFヘッダのサイズは8バイトで固定されている。もしTIFFヘッダの直後に最初のIFDが存在するのであれば、IFD0へのオフセット値は必ず0x00000008となるはずだ。にもかかわらず、ここにIFDへのオフセット値が入るのは、TIFFヘッダの直後にIFDが配置されないこともあるからだ。たいていの場合は、TIFFヘッダの直後はIFDとなっているのだが、それが成り立たない例も存在するので、素直にオフセット値を解釈していくべきだろう。
IFDの構造は以下のようになっている。

Table 4: IFD
Number of Directory Entries2 bytesNumber of Directory entries in this IFD
Directory Entry 0Tag2 bytesthe TAG that identifies the entry
Type2 bytesdata type
Count4 bytesNumber of data
Value4 bytesValue or value offset
Directory Entry 1Tag2 bytesentry data (same above)
Type2 bytes
Count4 bytes
Value4 bytes
:::Repeat for number of directory entries
Directory Entry n::
Offset for next IFD4 bytesOffset for Next IFD(0 means the last IFD)


IFDの先頭には、そのIFDがいくつのディレクトリエントリを含んでいるかが、2バイトで記録されている。
TIFFにはさまざまなタイプのデータを含めることができるが、あるデータがどんな意味を持つかを示すのがTAGと呼ばれるID値であり、このTAGを先頭とした12バイトのデータブロックのことを「ディレクトリエントリ」と呼ぶ。
1つのディレクトリエントリは12バイトの固定長から構成されている。冒頭にあるディレクトリエントリの個数データの直後からディレクトリエントリが隙間無く並べられ、最後に、4バイトのオフセット値が続いて一つのIFDが構成される。
このオフセット値は、現在のIFDに続く「次の」IFDへのポインタの役割を果たす。ここでオフセット値とは現在のアドレスからの相対値ではなく、TIFFヘッダ先頭バイトからのオフセット値だ。またオフセット値が0の時には、そのIFDがTIFFデータにおける「最終の」IFDであることを意味する。前述のように、TIFFデータ中における最初のIFDへのポインタはTIFFヘッダ中に記録されているため、TIFFヘッダから順にIFDを辿っていけば、TIFFデータ中に含まれるすべてのIFDに対してアクセスすることができる。
個々のディレクトリエントリは、Tag, Type, Count, Valueという4種の情報から構成される。Tagはデータの意味を示し、Typeはデータの型を示す。Countは現在のディレクトリエントリに含まれるデータの数を示し、Valueは実際の値を示している。
Valueのサイズは4バイトに固定されているため、ひとつのディレクトリエントリに記録できるデータは最大でも32ビット長となる。4バイトで表現できないデータの場合、この部分にはオフセット値を記録しておき、そのオフセットの先に任意長のデータを記録することができる。もちろん、4バイトですべてのデータが記録できる場合、データはValue部分に直接設定する。
Typeで示されるデータタイプは以下の表の通りとなる。

Table 5: Datatype
ValueTypeDescription
1BYTE8bit unsigned integer
2ASCII8bit string data, the last byte must be zero
3SHORT16bit unsigned integer
4LONG32bit unsigned integer
5RATIONALtwo 32bit unsigned integer, the first data is numerator of a fraction, the second one is the denominator.
6SBYTE8bit signed integer in twos-complement form
7UNDEFINED8bit undefined value
8SSHORT16bit signed integer in twos-complement form
9SLONG32bit signed integer in twos-complement form
10SRATIONALtwo 32bit signed integer, the first data is numerator of a fraction, the second one is the denominator.
11FLOAT32bit floating point data in IEEE single precison format
12DOUBLE64bit floating point data in IEEE single precison format


TIFFのSubIFD構造


さきほど「TIFFヘッダから順にすべてのIFDのデータを調べて行けば解析できるようになっている」と記述したが、実はTIFFにはそれだけでは済まない場合がある。それが「SubIFD」の存在だ。

TIFFヘッダ中に書かれたIFDへのオフセットから得られるIFD0、およびそのIFDの終端にある「次のIFDへのオフセット」を順繰りに手繰って得られるひとつながりのIFD鎖のことをBaseline IFDという。
Baseline IFDの中に含まれるタグのことを「Baseline Tags」と呼ぶ。Baseline Tagsで示されるデータは、一般にきわめて汎用性が高いものが多い。たとえば「画像の幅」や「画像の高さ」など、どんな画像にも必要となるデータだ。
一方、Exifデータは、カメラで撮影された画像やスキャナでスキャンされた画像にしか使われない。どちらかといえば、用途が限定されるデータである。TIFFでは、こうした特定目的向けのデータは、Baseline IFD中にはおかず、SubIFDと呼ばれるBaseline IFDとは異なるツリーの中におかれる。
Baseline IFDに含まれる様々なデータの中には、ファイル中に含まれる特定のデータへのオフセットを格納する場合がある。すなわち「ポインタ」を記録するわけだ。SubIFDとは、このようにしてBaseline IFD中に別のIFDへのポインタを記録することにより作られる「IFDの枝分かれ」と考えることができる。
プライベートIFDの構造は、こうした特殊な目的で使われるタグは「Private Tags」と呼ばれ、ベースラインタグとは区別される。データが置かれるのも、ベースラインのIFDとは離れたSubIFD(PrivateIFD)中に置かれる。そしてこのSubIFDへのポインタが、メインのIFDの中に置かれるわけだ。
プライベートタグには、ここにあげたExifタグのほか、や、GPSによる地域情報を記録するGPSタグ、そして今回の主要目的であるMakerNoteタグなど、さまざまなものがある。これらはExif IFDやGPS IFD、MakerNote IFDと呼ばれるプライベートIFDの中でのみ使用できる専用のタグだ。
あるプライベートタグが他のタイプのプライベートIFDの中で使えないのはなぜかといえば、これは、あるプライベートタグが、他のプライベートIFD内では定義されていなかったり、まったく違う意味で定義されていることがあるからだ。一例を挙げると、GPSタグのひとつである「GPS Latitude」は、ASCIIの2バイトデータで記録される情報であり、タグIDの値は2となっている。
しかし、NikonのMakerNoteで同じタグID=2のデータには何が入っているかといえば、撮影時のISO値を示すShort型のデータが収められている。このように、プライベートタグを処理するには、現在どのIFDを処理中であるかをしっかり管理し、それによってタグごとの処理方法を切り替えねばならない。

どのタグIDが何を意味するかという情報を探すには、さまざまな資料をあたらねばならない。冒頭で挙げた「EXIF 2.2の規格書」にも、かなりのデータがまとめられているが、この資料でわからない場合には、AWARE SystemsのWebサイトなどがよくまとまっている。


ExifIFDの構造


ここまで理解できれば、いよいよEXIF情報にアクセスすることができる。その手順はこうだ。

  1. TIFFヘッダにかかれた先頭IFDのオフセットを取り出す
  2. IFD先頭にかかれた、ディレクトリエントリの個数を得る
  3. ここで得られた個数分、ディレクトリエントリのタグを検査する
  4. Exif_IFD_Pointer(タグID=34665)があったら、その値を得る
  5. ここで得られた値はオフセット値であり、その先がExif_IFDである
  6. エントリの個数分スキャンしてもExif_IFD_Pointerが無ければ、次のIFDへのオフセットを取得する
  7. 次のIFDへのオフセットが0なら、EXIF情報は存在しない
  8. 次のIFDのオフセットが0でないなら、2.の手順に戻って次のIFDを検査する

5.の手順で見つかったオフセット値が、EXIF情報のありかだ。EXIF情報もまたIFD構造になっているので、オフセットの指し示す先は、IFD中にあるディレクトリエントリの個数を示している。
EXIF情報の検査の際に注意しなければならないのは、タグIDの意味が、これまでの「baseline TAG」とは違っている点だ。EXIF tagはプライベートタグなので、baseline TAGと同じ値であっても同列には扱えない。Exif IFDの内容を検査する場合、適用するタグIDのセットも切り替えなければならない。
EXIF IFDの内容をスキャンしていくと、いよいよメーカーノートのありかがわかる。タグID=37500(EXIF_MakerNote)が、メーカーノートへのオフセットを示しているのだ。そこで、これまでと同様の手順で、EXIF IFDを調べ、TAG_ID=37500の値を探し、そこからオフセット値を得れば、その場所からメーカーノートデータが記録されている。


Nikonデジタル一眼レフのメーカーノート構造

EXIF_MakerNoteタグの値は、メーカーノート先頭のオフセットを示している。つまりこのアドレスからメーカーノートのデータが格納されているわけだ。冒頭で、メーカーノートはメーカー固有の情報を収めていると述べた。これは、カメラのメーカーが異なれば、データの格納方法からして異なることを意味している。素直に考えるとこれまでのIFD構造にしたがってデータが格納されているかと思ってしまうが、実はこれさえも保証された話ではない。事実、ニコンの場合、以下のようにTIFFのようでTIFFではない微妙なデータ構造をとっている。

ニコンのメーカーノートの格納方法は、大きく分けて3つある。便宜上、それぞれType-1/Type-2/Type-3と呼ぶことにしよう。
    (1) Type-1メーカーノート
    Type-1メーカーノートは、先頭8バイトが"Nikon"+0x00+0x01+0x00で始まる。その直後9バイト目からは、メーカーノートを納めたIFD構造が直接配置される。Type-1メーカーノートは主にコンパクトカメラ系「COOLPIX」の初期製品で採用されており、Type-2および3とは異なるデータが記録されるため、ここでは内容の説明は割愛する。

    Table 6-1: Nikon Type-1 Makernote Header
    +0+1+2+3+4+5+6+7+8
    0x4e
    'N'
    0x69
    'i'
    0x6b
    'k'
    0x6f
    'o'
    0x6e
    'n'
    0x00
    '\0'
    0x01
    '\1'
    0x00
    '\0'
    Makernote IFD structure
    ->(Table 4)


    (2) Type-2メーカーノート
    Type-2メーカーノートは、識別情報を持たず、先頭からいきなりメーカーノートを納めたIFDが並ぶ。COOLPIXの一部機種やD1xの一部ファームウェアバージョンで採用される構造だ。

    Table 6-2: Nikon Type-2 Makernote Header
    +0
    Makernote IFD structure ->(Table 4)


    (3) Type-3メーカーノート
    Type-3メーカーノートは、Type-1ヘッダと同様に"Nikon"+0x00で始まるが、7バイト目は0x02となり、次の2バイトが(おそらくサブバージョン)、11バイト目からは、IFDでなくTIFF構造が配置される。
    TIFFヘッダの先頭2バイトは、"II"または"MM"によりデータのエンディアンが指定されるが、大元のTIFFヘッダのエンディアンとメーカーノート内のエンディアンとは必ずしも一致していないので注意する必要がある。

    Table 6-3: Nikon Type-3 Makernote Header
    +0+1+2+3+4+5+6+7+8+9+A
    0x4e
    'N'
    0x69
    'i'
    0x6b
    'k'
    0x6f
    'o'
    0x6e
    'n'
    0x00
    '\0'
    0x02
    '\2'
    0x00
    or
    0x10
    0x00
    '\0'
    0x00
    '\0'
    Makernote TIFF Structure
    ->(Table 3)



Type-1およびType-2メーカーノートの場合、開始オフセットが異なるとはいえIFDがそのまま配置されているため、これまでの手順と同様、IFDチェーンをたどる形で、メーカーノートの個々のデータに直接アクセスできる。注意しなければならないのはオフセット値の扱いだ。メーカーノートIFD中で示されるオフセット値は、大本のTIFFヘッダ先頭からのオフセットではなく、メーカーノートヘッダ先頭からのオフセットとなる。

Type-3メーカーノートの場合、IFDではなくTIFF構造となるため、TIFFヘッダからIFDへのオフセットを求め、さらにそのIFDをたどることでメーカーノートデータにアクセスする。この場合のオフセット値は、メーカーノートデータ内のTIFFヘッダ先頭バイトからのオフセットとなる。


Nikonデジタル一眼レフのメーカーノートデータ一覧


さて、ここから先は、いよいよNikonのメーカーノートの一覧となる。内容については以下の表を見れば一目瞭然だろう。


参考: 以下の情報は、tomtiaの独自解析のほか、インターネット上のさまざまなWebサイトの情報も参考にさせていただきました。なおこれら情報源の多くは、Kamisaka's Homepage内の「Exif Makernote解析情報」にまとめられたリンクからたどることができます。Nikon以外のメーカーノート情報を知りたい場合にも、リンク先の情報は非常に有用です。ありがとうございます。

Table 7: Nikon DSLR Makernote
TAGDescriptionData TypeSizeNote
DecHex
10001Data VersionUNDEFINED4メーカーノートのバージョンを示す。
一眼レフ機の場合、バージョン数値が4桁のASCIIコードで記載されている
COOLPIXではバイナリ値で記録
+0+1+2+3ASCII
D1X0x300x320x300x30"0200"
D2H0x300x320x300x30"0200"
D2Hs0x300x320x310x30"0210"
D2X0x300x320x310x30"0210"
D2Xs0x300x320x310x30"0210"
D30x300x320x310x30"0210"
D400x300x320x310x30"0210"
D40x0x300x320x310x30"0210"
D800x300x320x310x30"0210"
D2000x300x320x310x30"0210"
D3000x300x320x310x30"0210"
20002ISO UsedSHORT2×2撮影時、実際に使用されたISO値を示す。
ISOオート時は、撮影者が選択したISO値と実際に撮影されたISOが一致しない場合がある。
データはSHORT値が2つ記録されているが、
1つめの値は常に0で、2つめのSHORT値がISO値を示す。
COOLPIXでISO AUTOの場合、0が記録される
+0+1+2+3
0実ISO値
30003Color modeASCII6カラーモードを示す
ValueMode
COOLクールカラーモード
VIVIDビビッドカラーモード
SEPIAセピアカラーモード
B & Wモノクロモード
COLOR通常カラーモード
40004QualityASCII8撮影モードを示す文字列。
サイズは8バイトで、最終バイトはNULL。
7文字目までは空白でパディングされる
ValueMode
RAW5.4MRawモード(Nikon D1?)
RAWRawモード
FINEFineモード
NORMALNormalモード
BASICBasicモード


Raw+Basicモードなど、同時に2種のファイルが生成される場合、ファイルごとにこの値は変化する
50005Camera White BalanceASCII13撮影時ホワイトバランス設定を示す文字列。
サイズは13バイトで、最終バイトはNULL。
12文字目までは空白でパディングされる
ValueMode
AUTOWBオート
INCANDESCENT白熱灯
FLUORESCENT蛍光灯
SUNNY晴天
SHADE晴天日陰
CROUDY曇天
PRESETWBプリセット
PRESET0WBプリセット0
PRESET1WBプリセット1
PRESET2WBプリセット2
PRESET3WBプリセット3
PRESET4WBプリセット4
xxxxK色温度設定
60006SharpeningASCII7撮影時輪郭強調設定を示す文字列。
サイズは7バイトで、最終バイトはNULL。
6文字目までは空白でパディングされる
ValueMode
AUTOオート
MED.Hやや強め
HIGH強め
NORMAL標準
LOW弱め
MED.Lやや弱め
NONEしない
70007Focusing ModeASCII7AFモード設定を示す文字列。
サイズは7バイトで、最終バイトはNULL。
6文字目までは空白でパディングされる
ValueMode
MANUALマニュアルフォーカス
AF-CコンティニュアスAF
AF-SシングルショットAF
AF-AオートAF
80008Speedlight SettingASCII13スピードライト発光モード設定を示す文字列。
サイズは13バイトで、最終バイトはNULL。
12文字目までは空白でパディングされる
ValueMode
NORMAL通常発光
SLOWスローシャッター
REAR後幕シンクロ
REAR SLOW後幕シンクロスローシャッター
RED-EYE赤目軽減
RED-EYE SLOW赤目軽減スローシャッター
90009Speedlight ModeASCII9
or
20
スピードライト調光モード設定を示す文字列。
サイズは9または20(D200以降)バイトで、最終バイトはNULL
ValueMode
NEW_TTLTTL(D-TTL, i-TTL, TTL-BL)調光
FPFP級発光
MANUALマニュアル調光
EXTERNAL外部調光
AA絞り連動自動調光
Built-in,TTL内蔵スピードライト,TTL調光
Built-in,TTL&Comdr.内蔵スピードライト,TTLコマンダーモード
Optional,TTL外付けスピードライト,TTL調光
Comdr.コマンダーモード
10000AUnknown--デジタル一眼レフでは使われてない(Not Used)
COOLPIXで使用と思われる
11000BWB Fine TuneSigned SHORT1×2ホワイトバランス調整値。
符号つきShortでホワイトバランスの補正値を示す。補正値は、1あたり10M(10ミレッド)を示す。

注) MIREDは、色温度の逆数×10^6を示す単位
12000CWB RB coefficientRATIONAL2×4ホワイトバランスRB係数。
分数値により、ホワイトバランスのRed, Blue係数を示す。
13000DProgram ShiftUNDEFINED4プログラムAE時、プログラムシフト量を示す。
シフト量は4バイトで表現され、1バイト目はシフト量、2,3バイト目がステップあたりのEVシフト量を示す。4バイト目は常に0。
プログラムシフト量は、B1*(B2/B3)で計算される
ValueShift
0xfc,0x01,0x06,0x00-2/3EV
0xfd,0x01,0x06,0x00-1/2EV
0xfe,0x01,0x06,0x00-1/3EV
0x00,0x01,0x06,0x00±0EV
0x02,0x01,0x06,0x00+1/3EV
0x03,0x01,0x06,0x00+1/2EV
0x04,0x01,0x06,0x00+2/3EV
14000EExposure DifferenceUNDEFINED4撮影時、露出計による測光値と実際の露出とのずれを示す
ずれの量は4バイトで表現され、B1*(B2/B3)で計算される
ValueShift
0xf7,0x01,0x0C,0x00-2/3EV
0xf9,0x01,0x0C,0x00-1/2EV
0xfc,0x01,0x0C,0x00-1/3EV
0x00,0x01,0x0C,0x00±0EV
0x04,0x01,0x0C,0x00+1/3EV
0x06,0x01,0x0C,0x00+1/2EV
0x08,0x01,0x0C,0x00+2/3EV
15000FISO SelectionASCII-デジタル一眼レフでは使われていない(Not Used)
COOLPIXではISO感度の選択方法を示す
ValueMode
AUTOISOオート
MANUALISO手動設定
160010Unknown--デジタル一眼レフでは使われていない(Not Used)
170011Thumbnail IFD offsetLONG4×1サムネイル画像のデータが格納されたIFDへのオフセット値を示す
180012Speedlight BiasUNDEFINED4スピードライト使用時、スピードライトの調光補正値を示す
補正量は4バイトで表現され、B1*(B2/B3)で計算される
ValueShift
0xfc,0x01,0x06,0x00-2/3EV
0xfd,0x01,0x06,0x00-1/2EV
0xfe,0x01,0x06,0x00-1/3EV
0x00,0x01,0x06,0x00±0EV
0x02,0x01,0x06,0x00+1/3EV
0x03,0x01,0x06,0x00+1/2EV
0x04,0x01,0x06,0x00+2/3EV
190013ISO RequestedSHORT2×2カメラに設定されたISO値を示す。
ISOオート時はISO値が変化するため、ここで設定した値で実際に撮影されているとは限らない。
データはSHORT値が2つ記録されているが、
1つめの値は常に0で、2つめのSHORT値がISO値を示す。
+0+1+2+3
0ISO値
220016Picture corner CoordinatesSHORT2×4JPEG撮影時、出力画像の左下座標(x,y)と、右上座標(x,y)を示す
230017UnknownUNDEFINED4不明。フラッシュ関連の露出補正量もしくは露出誤差と思われる
240018Flash bracketting appliedUNDEFINED4フラッシュブラケティング時、ブラケット量を示す。
ValueShift
0xfc,0x01,0x06,0x00-2/3EV
0xfd,0x01,0x06,0x00-1/2EV
0xfe,0x01,0x06,0x00-1/3EV
0x00,0x01,0x06,0x00±0EV
0x02,0x01,0x06,0x00+1/3EV
0x03,0x01,0x06,0x00+1/2EV
0x04,0x01,0x06,0x00+2/3EV
250019AE bracketting appliedSigned RATIONAL1AEブラケティング時、ブラケット量を示す。他の露出補正量と違い、符号付分数値でEV値を直接示す
27001BCrop Hi-speed modeSHORT7×2クロップハイスピードモード使用の有無を示す
7つのSHORT値が、使用の有無と、クロップ座標を示す
IndexValueDescription
00=off/1=ON1の時、クロップハイスピードモードを使用
1,2Original Width/Heightオリジナル画像の大きさ(幅と高さ)
3,4Cropped Width/Heightクロップされた画像の大きさ(幅と高さ)
5,6Crop fromクロップ開始点の右下座標(x,y)
28001CUnknownUNDEFINED4不明。露出補正量もしくは露出誤差(1/6EV単位)と思われる
29001DCamera Serial NumberASCII8D2X, D2Hsにおいて、カメラ本体のシリアル番号を示す。D50,D200ではそれぞれ固定値が入る
文字列は8バイト目がNULLで終端。8バイトに届かない場合はスペースでパディング
ModelValue
D2X, D2Hsシリアル番号がASCII表現で入る
D50"D50"
D200(blank)
30001EUnknownSHORT1×2不明。
1280080Image AdjustmentASCII-COOLPIXにおいて、画像調整機能を示す
1290081Tone CompensationASCII9文字列により、階調補正設定値を示す。文字列はNULLで終端され、8バイトに満たない部分は空白でパディングされる
ValueDescription
AUTOオート
NORMAL標準
LOWコントラスト弱め
HIGHコントラスト強め
CSユーザーカスタム
1300082Adapter LensASCII13COOLPIXシリーズにおいて、アダプタレンズ使用の有無とレンズ種別を示す
ValueDescription
OFF不使用
WIDE ADAPTERワイドアダプタ
FISHEYE 1魚眼1
FISHEYE 2魚眼2
SLIDEスライドアダプタ
TELEPHOTO 1望遠アダプタ1
TELEPHOTO 2望遠アダプタ2
1310083Lens TypeBYTE11バイトデータにより、レンズの種別を示す。各ビットがそれぞれレンズの機能を示す
Bit76543210
01=VRあり01=絞りリング無し(G/PC/IX)1=距離伝達あり(D)1=No CPU
1320084Lens SpecficationRATIONAL4×4使用レンズの焦点距離およびF値
ズームレンズを想定してワイド端とテレ端の情報が記載される。単焦点レンズでは、ワイド端とテレ端の情報に同一内容が記載される
IndexDescription
0ワイド端の焦点距離
1テレ端の焦点距離
2ワイド端の開放絞り値
3テレ端の開放絞り値
1330085Subject DistanceRATIONAL1COOLPIXでは被写体までの焦点距離。一眼レフではこのタグは存在しない
1340086Adapter LensRATIONAL1COOLPIXシリーズではデジタルズーム比。一眼レフではこのタグは存在しない
1350087Speedlight typeBYTE1スピードライトタイプと使用の有無
ValueDescription
0使用せず
1使用
7外付け使用
1360088AF area selectionUNDEFINED4AFエリアの選択状態を示す
ValueDescription
0x00,0x00,0x00,0x00中央
0x00,0x00,0x01,0x00
0x00,0x00,0x02,0x00
0x00,0x00,0x03,0x00
0x00,0x00,0x04,0x00
0x00,0x00,0x00,0x01シングルエリアAF,中央
0x00,0x01,0x00,0x02シングルエリアAF,上
0x00,0x02,0x00,0x04シングルエリアAF,下
0x00,0x03,0x00,0x08シングルエリアAF,左
0x00,0x04,0x00,0x10シングルエリアAF,最右
0x00,0x05,0x00,0x20シングルエリアAF,左上
0x00,0x06,0x00,0x40シングルエリアAF,右上
0x00,0x07,0x00,0x80シングルエリアAF,左下
0x00,0x08,0x01,0x00シングルエリアAF,右下
0x00,0x09,0x02,0x00シングルエリアAF,最左
0x00,0x0a,0x04,0x00シングルエリアAF,右
0x01,0x00,0x00,0x01ダイナミックAF,中央
0x01,0x01,0x00,0x02ダイナミックAF,上
0x01,0x02,0x00,0x04ダイナミックAF,下
0x01,0x03,0x00,0x08ダイナミックAF,左
0x01,0x04,0x00,0x10ダイナミックAF,最右
0x01,0x05,0x00,0x20ダイナミックAF,左上
0x01,0x06,0x00,0x40ダイナミックAF,右上
0x01,0x07,0x00,0x80ダイナミックAF,左下
0x01,0x08,0x01,0x00ダイナミックAF,右下
0x01,0x09,0x02,0x00ダイナミックAF,最左
0x01,0x0a,0x04,0x00ダイナミックAF,右
0x02,0x00,0x00,0x01至近優先AF,中央
0x02,0x01,0x00,0x02至近優先AF,上
0x02,0x02,0x00,0x04至近優先AF,下
0x02,0x03,0x00,0x08至近優先AF,左
0x02,0x04,0x01,0x00至近優先AF,右
0x02,0x08,0x00,0x01至近優先ダイナミックAF,中央自動選択
0x02,0x08,0x00,0x02至近優先ダイナミックAF,上自動選択
0x02,0x08,0x00,0x04至近優先ダイナミックAF,下自動選択
0x02,0x08,0x00,0x08至近優先ダイナミックAF,左自動選択
0x02,0x08,0x00,0x10至近優先ダイナミックAF,最右自動選択
0x02,0x08,0x00,0x20至近優先ダイナミックAF,左上自動選択
0x02,0x08,0x00,0x40至近優先ダイナミックAF,右上自動選択
0x02,0x08,0x00,0x80至近優先ダイナミックAF,左下自動選択
0x02,0x08,0x01,0x00至近優先ダイナミックAF,右下自動選択
0x02,0x08,0x02,0x00至近優先ダイナミックAF,最左自動選択
0x02,0x08,0x04,0x00至近優先ダイナミックAF,右自動選択
0x03,0x08,0x00,0x01グループダイナミックAF,中央自動選択
0x03,0x08,0x00,0x02グループダイナミックAF,上自動選択
0x03,0x08,0x00,0x04グループダイナミックAF,下自動選択
0x03,0x08,0x00,0x08グループダイナミックAF,左自動選択
0x03,0x08,0x00,0x10グループダイナミックAF,最右自動選択
0x03,0x08,0x00,0x20グループダイナミックAF,左上自動選択
0x03,0x08,0x00,0x40グループダイナミックAF,右上自動選択
0x03,0x08,0x00,0x80グループダイナミックAF,左下自動選択
0x03,0x08,0x01,0x00グループダイナミックAF,右下自動選択
0x03,0x08,0x02,0x00グループダイナミックAF,最左自動選択
0x03,0x08,0x04,0x00グループダイナミックAF,右自動選択
1370089Auto Bracketing and Shooting modeSHORT1×2オートブラケティング動作モードを示す
Bit76543210
0 0=WBブラケット無し
1=WBブラケットあり
0=感度自動制御無し
1=感度自動制御あり
00=ブラケティング無し
01=内蔵フラッシュブラケティング
10=露出ブラケティングあり
1 0=セルフタイマーOFF
1=セルフタイマーON
0=シングルショット(S)
1=連続レリーズ(CH/CL)
138008aAuto Bracket Release flagSHORT1×2ブラケットレリーズフラグ。オートブラケッティング撮影において、実際にシャッターボタンが押されたか、自動的に撮影されたのかを区別する。
ValueDescription
1オートブラケティングにより自動的にレリーズされた
2撮影者によりレリーズを指定された
139008bLens FstopUNDEFINED4レンズの最小絞り値を示す。4バイトで表現され、B1*(B2/B3)で絞り開放から絞りこめる段数(EV値)を計算する。たとえば、開放F値が3.5のレンズで、この値が0x40,0x01,0x0C,0x00の場合、このレンズはF3.5から5と1/3段絞り込みが可能であり、最小絞りはF22となる
140008cUnknownUNDEFINED-不明。何らかのトーンカーブ設定と思われる
141008dCamera Color ModeASCII9カラーモード設定を文字列で示す
ValueDescription
MODE1モード I
MODE2モード II
MODE3モード III
MODE2aモード IIa
MODE3aモード IIIa
143008FScene ModeASCII16COOLPIXで、シーンモードを示す文字列
ValueDescription
FACE-PRIORITY顔認識ポートレート
UNDERWATER海中
DAWN/DUSKトワイライト
SPORTスポーツ
PANORAMA ASSISTパノラマアシスト
MULTIPLE EXP.多重露光
MUSEUMミュージアム
BACK LIGHT逆光
COPYモノクロコピー
CLOSE UPクローズアップ
SPARKLER花火
FIREWORKS打ち上げ花火
NIGHT SCENE夜景
SUNSET夕焼け
LAND SCAPE風景
BEACH/SNOW海・雪
NIGHT PORTRAIT夜景ポートレート
PARTY/INDOORパーティー
PORTRAITポートレート
1440090Light SourceASCII12光源の種類を文字列で示す
ValueDescription
MIXEDミックス光源
SPEEDLIGHTスピードライト
COLORED色付き光源
NORMAL通常光
NATURAL自然光
1450091UnknownUNDEFINED784不明。D200では784個の暗号化バイナリ数値
1460092Camera Hue AdjustmentSigned SHORT1×2色調補正データ。符号付きSHORT値で、補正値を直接示す。単位は「度」
1470093Camera Saturation AdjustmentSHORT1×2彩度設定。具体的な設定値は不明
1480094UnknownSigned SHORT1×2不明。COOLPIX L3にて出力されるのを確認
1490095Longtime Exposure NRASCII5長秒時ノイズリダクション設定。
ValueDescription
OFF オフ
FPNRオン
1500096NEF Color Conversion TableUNDEFINED1412圧縮Raw記録時のカラーコンバージョンテーブルを示す
IndexDescription
0Raw座標(0,0)の初期ピクセル値
1Raw座標(1,0)の初期ピクセル値
2Raw座標(0,1)の初期ピクセル値
3Raw座標(1,1)の初期ピクセル値
4ピクセル値変換テーブルの総エントリ数
5
6
:
インデックス(0)の変換後ピクセル値
インデックス(1)の変換後ピクセル値
:
1510097NEF Developing ParametersUNDEFINED-NEF現像パラメータ
1520098Lens ParametersUNDEFINED11/16使用レンズ詳細データ
IndexDescription
04バイトで、データバージョンを示す。この値により、以下のデータ構造が変化する
なお、データバージョンが0201の場合、以下のデータは暗号化されており、複号しないと正しい情報は得られない
'0100''0101'
'0201'
4Unknown
5AF Apature
8Focus Position
9被写体までの距離
10撮影時焦点距離
411レンズIDコード
512最小絞りまでの段数
613W側焦点距離
714T側焦点距離
815W側開放絞り
916T側開放絞り
1017レンズROMデータバージョン
1118実効開放絞り
1520098Raw Image CenterSHORT2×2Rawデータの中心座標(x,y)
154009AImage Sensor Pixel PitchRATIONAL2×4イメージセンサのピクセルピッチをμm単位で示す。数値は2つ記録され、それぞれX方向とY方向のピッチと思われる
現在のニコンの各機種で設定される値は以下の通り
BodyValueSensor Pixels
D2H9.4 9.44Mpixel
D2Hs9.4 9.44Mpixel
D507.8 7.86Mpixel
D707.8 7.86Mpixel
D1007.8 7.86Mpixel
D2006.05 6.0510Mpixel
D1X(Firmware 2.0)5.9 5.910.4Mpixel
D2X5.4 5.412Mpixel
注意) D1Xは、出力解像度5.5Mpixelのデジタルカメラであるが、搭載センサはAPC-C/10.4Mpixelであるため、センサピクセルピッチは5.9μmとなる
16000A0Serial CodeASCII21D2Hにおいて、機体固有の番号(ただしシリアル番号とは異なる)を示す文字列
16500A5Picture CountLONG1総レリーズ回数から削除済み回数を引いた、総生成画像数
16600A6Deleted Picture CountLONG1カメラ側操作によって削除された画像の枚数
16700A7Release CountLONG1総レリーズ回数
16900A9Image OptimizationASCII5-16仕上がり設定を文字列で示す。文字列はNULLで終端される。データサイズは文字列の長さによって5バイトから11バイトまで可変となる
ValueDescription
NORMAL標準
SOFTソフトに
VIVID鮮やかに
MORE VIVID鮮やかに
PORTRAITポートレート
CUSTOMカスタマイズ
BLACK AND WHITE白黒
17000AASaturationASCII5-9彩度設定を文字列で示す。文字列はNULLで終端される。データサイズは文字列の長さによって5バイトから9バイトまで可変となる
ValueDescription
AUTOオート
NORMAL標準
MODERATE弱め
ENHANCED強め
17700B1High ISO NRSHORT1高感度ノイズリダクション設定。
ValueDescription
0オフ(適用無し)
1オフ(最弱自動適用)
2オン(弱)
4オン(標準)
6オン(強)
35850E01Nikon Capture DataUNDEFINED-Nikon Captureの編集データ
35890E05UnknownLONG1×1不明
35980E05UnknownUNDEFINED42不明(42バイトの不明なデータ)
36000E10UnknownLONG1不明(6バイトサイズをもつ不明データへのオフセット)
36120E1CUnknownASCII4不明(D200では'0101')
以下 継続執筆中




リンクについて    メールを送る