From: Hugh T. <hu...@au...> - 2002-08-27 03:29:59
|
> Exactly. What you see in CVS is an attempt to a framework for > MakerNotes. Often, MakerNotes are a simple list of values, for example > > Brightness: 3420 > Contrast: -1.5 > > The problem is that they are not standardized. And that I don't have the > specifications of any manufacturers' MakerNotes. > > If you think the framework that is in CVS is useful, you could code for > example along libexif/olympus. But if you have other ideas on how to > handle MakerNotes, please tell them. In my EXIFutils product I've been gradually added support for various Maker Note fields as I find out about them. My programs have gone through much pain as I've adjusted them to handle the new and exciting ways manufacturers have found to format their maker notes. As you are starting from scratch, here's a summary of the formats of maker notes I've encountered. Any framework you set up will need to consider these variations: The Maker Note formats I've enountered fall into the following categories: 1. Opaque data structure. I've made no attempt to decode these, I just display them in hex. Kodak use this, which is sad because I have a Kodak digital camera ;^( 2. Standard IFD. The Maker Note is formatted just like any other "standard" EXIF IFD, you just need to know what the field tags mean. All Canon Maker Notes I've encountered are like this. 3. Standard IFD with header. The Maker Note is formatted as in 2., but is preceded by a fixed length header. The length of the header depends on the make/model, but is always constant for that make/model. The header is typically something like "Nikon\0\1\0". Nikon, Epson, Minolta and Olympus cameras use this format. 4) TIFF format with Header. Recent Nikon models (eg the D100) have a fixed length header (similar to 3.), but the header is followed bya complete TIFF structure containing the Maker Note IFD fields. The implications of this are (sorry if I'm stating the obvious): - all offsets in the Maker Note are relative to the start of the embedded TIFF header, not relative the EXIF TIFF header. - the byte ordering within the Maker Note may be different to that used outside the Maker Note. 5) The Odd Man Out. FujiFilm use a format similar to 3. above, but with the following differences: - all offsets are relative to the first byte of the Maker Note field - the field in the maker note *always* use Intel byte ordering. In my programs I've taken the conservative approach, I do not try to parse the the maker note field at run time to figure out its format. I have a table of "known" makes/models. If the Make and Model fields in the EXIF data match one of the known models in the table, I know the format of the Maker Note. Hope this helps. Hugh |