######################################################### ######################################################### ################## MRW File Format ###################### ######################################################### ######################################################### Author: Stephane Chauveau ======= Table Of Content ================ (1) Changelogs (2) What is the MRW format? (3) How to help ? (4) Open-Source applications with mrw support: (5) Related Links (6) Notations used in the document (7) Camera models (8) Overall Structure of an MRW file (9) Quick identification of MRW files (10) The PRD block (11) Decoding the raw data (Bayer pattern) (12) The WBG block (White Balance Gains) (13) The RIF block (14) The TTW block (15) EXIF Tags (16) MakerNotes (17a) MinoltaCameraSettings1 (17b) MinoltaCameraSettings3 (17c) MinoltaCameraSettings4 (Dynax/Maxxum 7D) (17d) MinoltaCameraSettings0114 (Dynax/Maxxum 5D) (1) Changelogs ============== Mar 10 2006 : - Remamed TTF block to TTW - fixed a few typos Feb 1 2006 : - Added several new CameraSettings entries for 5D and 7D Jan 31 2006 : - Added MinoltaCameraSettings0114 (5D) including CameraOrientation Jan 30 2006 : - Added MinoltaCameraSettings4 (7D) including CameraOrientation - Most of the 7D format is now covered. Jan 28 2006 : - Added TTW block - Added EXIF block - Added MakerNotes including ImageStabilization (antishake) Jan 15 2006 : - First version (only the MRM, PRD and WBG block) (2) What is the MRW format? =========================== MRW is the RAW image file format used in the Konica-Minolta cameras. This document is not an official Konica-Minolta specification. This is just an attempt to reverse-engineer the MRW format. There is no insurance that the information provided in that document are accurate. (3) How to help ? ================== I am interested by any new information regarding the MRW files. That includes all MRW files produced by ALL KM cameras. You can use the program mrw-parser (see below) to dump the content of your MRW files. I am also looking for samples of MRW files (or their headers! see above). Here is a list of camera models for which I currently have some samples: 7D : plenty (I own one) A200 : only 3 In fact, I am not really interested by the full MRW file. What I need is the header of the file which can be extracted with get-mrw-header (see below) You can contact me at: stephane@chauveau-central.net If my FTP server is running, you can also download some files there: HOST = home.chauveau-central.net USER = raw PASSWORD = There is no password! just press enter :-) The latest version of that document and the C sources of "mrw-parser" and "get-mrw-header" can be found in http://www.chauveau-central.net/mrw-format/ PS: I won't redistribue the files unless you give me the proper authorisation. The FTP site is readonly to prevent other peoples to read the files. (4) Open-Source applications with MRW support: ============================================== [1] dcraw http://www.cybercom.net/~dcoffin/dcraw/ [2] ExifTool http://www.virtual-cafe.com/~dhh/tools.d/exifprobe.d/exifprobe.html [3] exifprobe http://www.virtual-cafe.com/~dhh/tools.d/exifprobe.d/exifprobe.html [4] mrwtoppm (for DiMAGE 5, 7, 7i, 7Hi, and A1) http://home.swbell.net/dobroom/mintoppm/ (5) Related Links ================= [10] Dyxum - Website dedicated to KM Dynax/Maxxum Digital SLR cameras http://www.dyxum.com/ [11] Dalibor http://www.dalibor.cz/minolta/raw_file_format.htm http://www.dalibor.cz/minolta/makernote.htm [12] DiMAGE 5/7 RAW Format Discovery http://home-4.worldonline.nl/~t800373/raw.htm [13] Print Image Matching Format Specification http://www.ozhiker.com/electronics/pjmt/jpeg_info/pim.html [14] MRW File Format (Dimage 7) http://webpages.charter.net/bbiggers/DCExperiments/html/body_mrw_file_format.html [15] The Minolta tags from ExifTool http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Minolta.html (6) Notations used in the document ==================================== - A character X is represented by 'X' or by its hexadecimal ascii code 0x58 - For convenience, 0x00 will be abbreviated to \0 - The abbreviation MSB means big endian (Most Significant Byte first) 0x1234 MSB = 0x12 , 0x34 - The abbreviation LSB means little endian (Most Significant Byte first) 0x1234 LSB = 0x34 , 0x12 - Numbers are stored MSB unless specified otherwise. - TBD means TO BE DEFINED (7) Camera models ================== The following table associates a code to each KM camera known to produce MRW files. +------+-----------------------+ | Code | Camera model | +------+-----------------------+ | A | D5 | | B | D7 | | C | D7u | | D | D7i | | E | D7Hi | | F | A1 | | G | A2 | | H | A200 | | I | Dynax/Maxxum/Alpha 7D | | J | Dynax/Maxxum/Alpha 5D | +------+-----------------------+ Those codes will be used in this document to indicate for which camera models an information is known to be applicable (upper case) or non applicable (lower case). A '-' indicates that the information is not known. A 'x' indicates that the information is irrelevant for that camera. For example, AB---f--xJ means that an information is known to be applicable to the 'D5', 'D7' and 'Maxxum 5D' but not to the 'A1'. Also, the Maxxum 7D does not have that feature so it is not applicable either. (8) Overall Structure of an MRW file ==================================== A Minolta raw file is always composed of a single MRM block followed by the raw image data. The MRM block is itself a container for other blocks: - a PRD block contains information about the raw image data. - a TTW block contains some TIFF tags - a WBG block contains White Balance information. - a RIF block contains the camera settings (saturation, sharpness, ISO, ...) - a PAD block does not contain any information. Its purpose is to align the data. It should be noted that the 1st block inside the MRM is always the PRD. Each of the blocks TTW, WBG, RIF should be present but their order is not constant. Any number of PAD blocks may be present (including zero). Any of those block, including the MRM, starts by a 8 bytes mrw_block_header_t data structure: typedef struct { char BlockName[4] ; int32_t BlockLength ; } mrw_block_t ; Consider a block header x. The field x.id[] provides the name of the block prefixed by \0. For example, a WBG block is identified by BlockName[0] = \0 BlockName[1] = 'W' BlockName[2] = 'B' BlockName[3] = 'G' The field BlockLength provides the length in bytes of the data following the header. The total length of the block (header+data) is BlockLength + 8 (9) Quick identification of MRW files ===================================== Every MRW file should start by the sequence \0, 'M', 'R' and 'M'. Also, if we assume that the MRM block always start by a PRD block then the sequence \0, 'P', 'R', 'D' should be found at offset 8. (10) The PRD block =================== The PRD provides all the information needed to decode the raw image data with the exception of the white balance (see the WBG block). All camera models produce the same PRD data structure : typedef struct { char Version[8] ; // offset 0x0000 (0) int16_t SensorHeight ; // offset 0x0008 (8) int16_t SensorWidth ; // offset 0x000A (10) int16_t ImageHeight ; // offset 0x000C (12) int16_t ImageWidth ; // offset 0x000E (14) int8_t DataSize ; // offset 0x0010 (16) int8_t PixelSize ; // offset 0x0011 (17) int8_t StorageMethod ; // offset 0x0012 (18) int8_t Unknown19 ; // offset 0x0013 (19) int8_t Unknown20 ; // offset 0x0014 (20) int8_t Unknown21 ; // offset 0x0015 (21) int8_t Unknown22 ; // offset 0x0017 (22) int8_t BayerPattern ; // offset 0x0018 (23) } mrw_block_prd_t ; The total length of that PRD data structure is 24 bytes (+ 8 for its header). o Version specifies a version number a string of 8 digits. It is not clear if the digits have any useful meaning. +------+----------------------+----------+---------------+ | Code | Camera model | Version | Firmwares | +------+----------------------+----------+---------------+ | A | D5 | 27730001 | ? | | B | D7 | 27660001 | ? | | C | D7u | 27660001 | ? | | D | D7i | 27790001 | ? | | E | D7Hi | 27780001 | ? | | F | A1 | 27820001 | ? | | G | A2 | 27200001 | ? | | H | A200 | 27470002 | ? | | I | Dynax/Maxxum/Alpha 7D| 21810002 | v1.10 | | J | Dynax/Maxxum/Alpha 5D| 21860002 | ? | +------+----------------------+----------+---------------+ o SensorWidth x SensorHeight specify the dimensions of CCD sensor. This is also the number of Red, Green and Blue entries in the raw data. o ImageWidth x ImageHeight specify the 'desired' dimensions of the image after interpolation of the raw data. This is the size of the JPG or TIFF image produced by the camera. This size is usually slighly smaller than the CCD Sensor size. o DataSize is the number of bits used to store each pixel in the raw data. As of now, only 12 and 16 are known to be possible. o PixelSize is the number of bits used to store each pixel in the raw data. As of now, only 12 is known to be possible. o StorageMethod specifies how the raw data are stored. The known values are SM_PADDED = 0x52 SM_LINEAR = 0x59 o BayerPattern specifies how the Red, Green and Blue pixels are organized in the Bayer pattern. Here are the known values with the corresponding organisation at the top/left corner of the image. BAYER_RGGB = 0x1 +----------- |RGRGRG... |GBGBGB... |RGRGRG... |GBGBGB... |... BAYER_GBRG = 0x4 +----------- |GBGBGB... |RGRGRG... |GBGBGB... |RGRGRG... |... (11) Decoding the raw data (Bayer pattern) =========================================== In a bayer pattern, each pixel only specifies one of the three R, G, & B components. The lines are sorted from top to bottom and, inside each line, the pixels are sorted from left to right. The number of lines is specified by the SensorHeight field of the PRD. The number of components per line is specified by the SensorWidth field of the PRD. For example, with SensorHeight=5 and SensorWidth=4, the sequence of components [ a b c d e f g h i j k l m n o p q r s t ] would produce the following bayer pattern: abcd efgh ijkl mnop qrst The way the components are encoded is specified by the DataSize, PixelSize and StorageMethod fields of the PRD. Two different combinations are known to exist: o DataSize=12 PixelSize=12 StorageMethod=SM_LINEAR(0x59) Each pair of 12 bits components is stored using 3 bytes (24 bits). For example, the pair of components [ 0x123 0x456 ] is encoded with the sequence of bytes [ 0x12 0x34 0x56 ]. o DataSize=16 PixelSize=12 StorageMethod=SM_PADDED(0x52) Each 12 bits components is stored in a 16bit MSB. The most significant 4 bits of each 16bit MSB are unused (should be zero). For example, the pair of components [ 0x123 0x456 ] is encoded with the sequence of bytes [ 0x01 0x23 0x04 0x56 ] (12) The WBG block (White Balance Gains) ========================================= The WBG provides the white balance coefficients. All camera models produce the same WBG data structure: typedef struct { uint8_t WbScale[4] ; // Offset 0 uint16_t WbCoef[4] ; // Offset 4 } mrw_block_wbg_t ; The total length of that WBG data structure is 12 bytes (+ 8 for its header). Each pair (WbScale[i],WbCoef[i]) represents the floating point coefficient WbCoef[i] Wb(i) = ------------------------ 64 << WbScale[i] The 4 coefficients Wb(0), Wb(1), Wb(2), Wb(3) are mapped directly to the components of the Bayers pattern +---------- |010101.. |232323.. |010101.. |232323.. |... (13) The RIF block ================== That block provides information about the camera settings. The size of the RIF block is not constant and its format is likely to be dependant of the camera model. Table: Size of the RIF block in byte per camera model +------+----------------------+----------+----------+ | Code | Camera model | Version | RIF Size | +------+----------------------+----------+----------+ | A | D5 | 27730001 | ? | | B | D7 | 27660001 | ? | | C | D7u | 27660001 | ? | | D | D7i | 27790001 | ? | | E | D7Hi | 27780001 | ? | | F | A1 | 27820001 | ? | | G | A2 | 27200001 | ? | | H | A200 | 27470002 | 60 | | I | Dynax/Maxxum/Alpha 7D| 21810002 | 64 | | J | Dynax/Maxxum/Alpha 5D| | ? | +------+----------------------+----------+----------+ =======+================+======+==============+==================================== | | | Camera Codes | Offset | Name | Size | ABCDEFGHIJ | Description =======+================+======+==============+==================================== 0 | ? | | ---------- | -------+----------------+------+--------------+--------------------------------------------------------------- 1 | Saturation | 1 | --------I- | A small signed value (e.g. -3 to +3) -------+----------------+------+--------------+--------------------------------------------------------------- 2 | Contrast | 1 | --------I- | A small signed value (e.g. -3 to +3) -------+----------------+------+--------------+--------------------------------------------------------------- 3 | Sharpness | 1 | --------I- | A small signed value (e.g. -3 to +3) -------+----------------+------+--------------+--------------------------------------------------------------- 4 | WBMode | 1 | --------I- | The 4 least significant bits give the mode: | | | | | | | --------I- | 0x0 : Auto | | | --------I- | 0x1 : Daylight | | | --------I- | 0x2 : Cloudy | | | --------I- | 0x3 : Tungsten | | | --------I- | 0x4 : Flash/Fluorescent (see (1) below) | | | --------I- | 0x5 : Fluorescent | | | --------I- | 0x6 : Shade | | | --------I- | 0x7 : User1 | | | --------I- | 0x8 : User2 | | | --------I- | 0x9 : User3 | | | --------I- | 0xA : Temperature (see "WB Temperature" below) | | | | | | | | When non-zero, the 4 most significant bits provide additional | | | | information for the mode: | | | | | | | | For 'Auto', this is not always zero but the meaning is unknown. | | | | | | | | For 'Daylight' to 'Shade', this is the intensity | | | | | | | --------i- | 0x0 : on older cameras models! | | | --------I- | 0x6 : -2 | | | --------I- | 0x7 : -1 | | | --------I- | 0x8 : 0 | | | --------I- | 0x9 : +1 | | | --------I- | 0xA : +2 | | | --------I- | 0xB : +3 | | | --------I- | 0xC : +4 | | | | -------+----------------+------+--------------+------------------------------------------------------------- 5 | ProgramMode | 1 | | Specify the 'assisted' modes | | | --------I- | 0 : None | | | --------x- | 1 : Portrait | | | --------x- | 2 : Text | | | --------x- | 3 : Night Portrait | | | --------x- | 4 : Sunset | | | --------x- | 5 : Sports Action | | | | | | | ---------J | On the 5D, this entry is always 0. It was obviously | | | | replaced by the tag SubjectProgram in the MakerNote -------+----------------+------+--------------+------------------------------------------------------------- 6 | ISO | 1 | --------I- | The ISO can be obtained using the floating-point formula | | | | ISO = 100*2^((N-48)/8) | | | | Examples of typical values: | | | | 48 -> ISO 100 | | | | 56 -> ISO 200 | | | | 64 -> ISO 400 | | | | 72 -> ISO 800 | | | | 80 -> ISO 1600 | | | | 88 -> ISO 3200 | | | | Warning: This ISO setting is irrelevant when | | | | using Zone Matching (see below) -------+----------------+------+--------------+------------------------------------------------------------- 7 | ColorMode | 1 | | The color mode setting | | | ---------- | 0x00 : Normal Color | | | --------xJ | 0x01 : Black & White | | | --------x- | 0x02 : Vivid Color (D7i, D7Hi) | | | --------x- | 0x03 : Solarization (D7i, D7Hi) | | | --------x- | 0x04 : AdobeRGB (D7Hi) | | | --------IJ | 0x0d : Natural sRGB | | | --------IJ | 0x0e : Natural+ sRGB | | | --------xJ | 0x0f : Landscape (subject mode?) | | | --------xJ | 0x10 : Sunset (subject mode?) | | | --------xJ | 0x11 : Night Portrait (subject mode?) | | | --------I- | 0x84 : EmbedAdobeRGB -------+----------------+------+--------------+------------------------------- ----------------------------- 56 | ColorFilter | 1 | --------I- | A small signed value (e.g. -3 to +3) | | | | Seem identical to 'Color Filter' at 56! -------+----------------+------+--------------+------------------------------------------------------------- 57 | BWFilter | 1 | ---------- | range 0..10 -------+----------------+------+--------------+------------------------------------------------------------- 58 | ZoneMatching | 1 | --------I- | Specify if and which zone matching was used | | | | 0 = ISO was used (ISO value is valid) | | | | 1 = High Key (ISO value is invalid) | | | | 2 = Low Key (ISO value is invalid) -------+----------------+------+--------------+------------------------------------------------------------- 59 | Hue | 1 | --------I- | A small signed value (e.g. -3 to +3) | | | | Seem identical to 'Color Filter' at 56! -------+----------------+------+--------------+------------------------------------------------------------- 60 | WBTemperature | 1 | --------I- | Must be multiplied by 100. | | | | For example: 45 --> 4500K -------+----------------+------+--------------+------------------------------------------------------------- | | | | =======+================+======+==============+==================================== (1) In Dalibor format, WBMode = 5 is Fluorescent. The TTW block ============== The TTW block is a standard TIFF block (Big Endian). Here is a non-exhaustive list of standard tags you can expect to find. ImageWidth = the width of the JPG image that would be produced instead of RAW (e.g 3008) ImageLength = the height of the JPG image that would be produced instead of RAW (e.g 2000) Compression = always 1 ImageDescription = a string like 'KONICA MINOLTA DIGITAL CAMERA' Make = a string like 'KONICA MINOLTA ' Model = a string like 'DYNAX 7D' Orientation = the image orientation (not the camera orientation) XResolution = see TIFF spec (probably 72) YResolution = see TIFF spec (probably 72) ResolutionUnit = see TIFF spec (probably 2=dpi) Software = a string like 'DYNAX 7D v1.10 ' DateTime = a string like '2006:01:30 21:35:54' ExifIFDPointer = the offset inside the TTW block where the EXIF tags can be found PrintIM = See the TIFF specification for more information about those tags. (15) EXIF Tags ============== This is a standard EXIF block using the same endianness than the TTW block. All offsets are relative to the start of the TTW block. Here is a non-exhaustive list of the standard EXIF tags you can expect to find: ExposureTime FNumber ExposureProgram ISOSpeedRatings ExifVersion DateTimeOriginal DateTimeDigitized ComponentsConfiguration BrightnessValue ExposureBiasValue MaxApertureValue MeteringMode LightSource Flash FocalLength SubjectArea MakerNote = offset in the TTW block where the KM MakerNote can be found (see below) UserComment FlashpixVersion ColorSpace PixelXDimension PixelYDimension Interoperability CustomRendered ExposureMode WhiteBalance DigitalZoomRatio FocalLengthIn35mmFilm SceneCaptureType GainControl Contrast Saturation Sharpness Please refer to the EXIF specification document for mode details. (16) MakerNotes ================ The MakerNote is like an EXIF/TIFF directory but using some KM tags. =========+=========================+==========+==============+=================================== Tag Id | Tag Name | Type | ABCDEFGHIJ | Description =========+=========================+==========+==============+=================================== | | | ---------- | ---------+-------------------------+----------+--------------+----------------------------------- 0x0000 | MakerNoteVersion | UNKNOWN | --------I- | The 4 bytes in the value field provide | | | | a version identifier: should be 'MLT0' ---------+-------------------------+----------+--------------+----------------------------------- 0x0001 | MinoltaCameraSettings1 | UNKNOWN | --------I- | 1st version of MinoltaCameraSettings | | | | Camera models: ???? ---------+-------------------------+----------+--------------+----------------------------------- 0x0002 | MinoltaCameraSettings2 | UNKNOWN | --------I- | 2nd version of MinoltaCameraSettings | | | | Does it really exist? ---------+-------------------------+----------+--------------+----------------------------------- 0x0003 | MinoltaCameraSettings3 | UNKNOWN | --------I- | 3rd version of MinoltaCameraSettings | | | | Camera models: ???? ---------+------------------------+----------+--------------+----------------------------------- 0x0004 | MinoltaCameraSettings4 | UNKNOWN | --------I- | 4th version of MinoltaCameraSettings | | | | Camera models: Dynax/Maxxum 7D | | | | See MinoltaCameraSettings4 below ---------+-------------------------+----------+--------------+----------------------------------- 0x0010 | Unknown0010 | UNKNOWN | --------I- | To be investigated (See dalibor) | | | | on the 7D: constant size 24576 ---------+-------------------------+----------+--------------+----------------------------------- 0x0018 | ImageStabilization | UNKNOWN | --------I- | This is the name used in ExifTool! | | | | What is that exactly? Some data from the AS sensor? | | | | On the 7D: constant size 8200 ---------+-------------------------+----------+--------------+----------------------------------- 0x0020 | Unknown0020 | UNKNOWN | --------I- | To be investigated (See dalibor) | | | | on the 7D: constant size 4928 ---------+-------------------------+----------+--------------+----------------------------------- 0x0040 | CompressedImageSize | LONG | --------I- | The size of the compressed image. | | | | Does not make sense in a raw file | | | | so should always be zero! ---------+-------------------------+----------+--------------+----------------------------------- 0x0088 | PreviewImageStart | LONG | --------I- | The offset (from file or from TTW?) | | | | where the JPG thumbnail can be found ---------+-------------------------+----------+--------------+----------------------------------- 0x0089 | PreviewImageLength | LONG | --------I- | The size in bytes of the JPG thumbnail ---------+-------------------------+----------+--------------+----------------------------------- 0x0100 | SubjectProgram | LONG | --------IJ | | | | --------IJ | 0 : None (See ExposureProgram in EXIF) | | | --------xJ | 1 : Portrait | | | --------x- | 2 : ? | | | --------xJ | 3 : Night Portrait | | | --------xJ | 4 : Sunset | | | --------xJ | 5 : Sport | | | --------xJ | 6 : Landscape | | | --------xJ | 16: Auto | | | | | | | | Note: The 7D does not have subject programs (always 0) | | | | ---------+-------------------------+----------+--------------+----------------------------------- 0x0101 | ColorMode | LONG | --------I- | Like RIF.ColorMode & 0x7F ---------+-------------------------+----------+--------------+----------------------------------- 0x0102 | ImageQuality | LONG | ---------- | This is only relevant in JPEG | | | | | | | | 0 - raw | | | | 1 - super fine | | | | 2 - fine | | | | 3 - standard | | | | 5 - extrafine | | | | ---------+-------------------------+----------+--------------+----------------------------------- 0x0103 | ImageSize/ImageQuality2 | LONG | ---------- | For the A2/7Hi this is equivalent | | | | to ImageQuality (0x0102) | | | | | | | | For other camera, this is the image size | | | | 1 = 1600x1200 | | | | 2 = 1280x960 | | | | 3 = 640x480 | | | | 5 = 2560x1920 | | | | 6 = 2272x1704 | | | | 7 = 2048x1536 | | | | ---------+-------------------------+----------+--------------+----------------------------------- 0x0104 | Unknown0104 | SRATIONAL| --------I- | always 0/10 = 0 ? ---------+-------------------------+----------+--------------+----------------------------------- 0x0105 | Unknown0105 | LONG | --------I- | always 0 ? ---------+-------------------------+----------+--------------+----------------------------------- 0x0106 | Unknown0106 | LONG | --------I- | always 0 ? ---------+-------------------------+----------+--------------+----------------------------------- 0x0107 | AntiShake1 (1) | LONG | --------I- | On the 7D | | | | 1 : AntiShake OFF | | | | 5 : AntiShake ON | | | | --> see also tag 0x0113 ---------+-------------------------+----------+--------------+----------------------------------- 0x0109 | Unknown0109 | LONG | --------I- | something related to the lens? ---------+-------------------------+----------+--------------+----------------------------------- 0x010A | ZoneMatching | LONG | --------I- | Similar to RIF.ZoneMatching ---------+-------------------------+----------+--------------+----------------------------------- 0x010B | WbTemperature | LONG | --------I- | Similar to RIF.WbTemperature except | | | | that the value is already multiplied | | | | by 100. ---------+-------------------------+----------+--------------+----------------------------------- 0x010C | LensID | LONG | --------I- | The lens unique identifier which is | | | | unfortunately not so unique. | | | | See [15] for a list. ---------+-------------------------+----------+--------------+----------------------------------- 0x010D | Unknown010D | LONG | ---------- | On the 7D: seems to be related to | | | | the Hue setting (TBD) ---------+-------------------------+----------+--------------+----------------------------------- 0x0111 | WBDistK | LONG | ---------- | 5D: related to the Temperature WB (K) | | | | -> formula to be specified ---------+-------------------------+----------+--------------+----------------------------------- 0x0112 | WBShift | LONG | ---------J | 5D: The shift applied to the preset WB | | | | -3..+3 for all preset mode except | | | | -2..+4 for fluorescent ---------+-------------------------+----------+--------------+----------------------------------- 0x0113 | AntiShake2 (1) | LONG | ---------J | On the 5D | | | | 0 : AntiShake OFF | | | | 3 : AntiShake ON | | | | --> see also tag 0x0107 ---------+-------------------------+----------+--------------+----------------------------------- 0x0115 | WBMode | LONG | ---------J | On the 5D | | | | 0x00 : Auto | | | | 0x01 : Temperature (K) | | | | 0x10 : Daylight (Preset) | | | | 0x20 : Cloudy (Preset) | | | | 0x30 : Shade (Preset) | | | | 0x40 : Tungsten (Preset) | | | | 0x50 : Flash (Preset) | | | | 0x60 : Fluorescent (Preset) | | | | 0x70 : Custom | | | | | | | | See also RIF.WBMode & WBShift above | | | | ---------+-------------------------+----------+--------------+----------------------------------- | | | | =========+=========================+==========+==============+=================================== (1) why 2 tags? why? (17a) MinoltaCameraSettings1 ============================ To be written! I need some samples (17b) MinoltaCameraSettings3 ============================ To be written! I need some samples (17c) MinoltaCameraSettings4 (Dynax/Maxxum 7D) ============================================== The MinoltaCameraSettings4 block probably describes the internal state of the camera. We find here all the Menu settings and the state of the buttons and dials found on the camera. I suspect that this data structure is only intended to be decoded the KM engineers in case of problems. Its format is probably not very stable and it may change with any firmware upgrade. The 7D provides so many buttons, dial and menu settings that I won't try to identify all of them. As a consequence, I recommand not to use the information described below since they are, for the most part, available elsewhere in the file. They only noticeable exception is the CameraOrientation which appears to be only available here. The 7D block is 294 bytes long. That makes 147 (=0x93) entries of 16bits. =============+=========================+==========+==============+================================================= 16bit entry | Name | Size | ABCDEFGHIJ | Description =============+=========================+==========+==============+================================================= 0x0000 | ExposureMode | 16 | --------I- | 0: (P) Program | | | | 1: (A) Aperture Priority | | | | 2: (S) Shutter Priority | | | | 3: (M) Manual | | | | 4: (P/green) Auto ??? | | | | 5: (Pa) Program Shift-A | | | | 6: (Ps) Program Shift-S -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0003 | Quality | 16 | --------I- | 7D: 0=RAW 34=RAW+JPEG -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0004 | WbMode | 16 | --------I- | 0 : AUTO | | | | 1 : Daylight (daylight) | | | | 2 : Shade (shade | | | | 3 : Cloudy (clouding Heaven | | | | 4 : Tungsten ( incandescent lamp | | | | 5 : Fluorescent (fluorescent light) | | | | ? : Flash (flash optical | | | | ? : Custom white balance 1 | | | | ? : Custom white balance 2 | | | | ? : Custom white balance 3 | | | | 256 : color Temperature Setting | | | | 512 : manual -------------+-------------------------+----------+--------------+------------------------------------------------- 0x000E | FocusFocusDial | 16 | --------I- | 7D: 0=S 1=C 2=? 3=A 4=M -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0010 | FocusPosition | 16 | --------I- | 7D: The 9 focus points: | | | | 923 | | | | 814 | | | | 765 -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0015 | Flash | 16 | --------I- | 0=OFF 1=ON -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0015 | FlashMode | 16 | --------I- | red eyes ... to be tested -------------+-------------------------+----------+--------------+------------------------------------------------- 0x001C | ISO | 16 | --------I- | Be carefull! this is the menu setting and not the real ISO. | | | | ? : Auto | | | | ? : 100 | | | | ? : 200 | | | | 4 : 400 | | | | 5 : 800 | | | | 6 : 1600 | | | | 7 : 3200 -------------+-------------------------+----------+--------------+------------------------------------------------- 0x001E | ExposureRevision | 16 | --------I- | value/24 (ECV) ???? -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0025 | ColorMode | 16 | --------I- | 0=NaturalsRGB 1=Naturals+RGB 4=EmbedAdobeRGB -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0026 | Sharpness | 16 | --------I- | 8..12 = -2..+2 -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0027 | Contrast | 16 | --------I- | 8..12 = -2..+2 -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0028 | Saturation/Chroma | 16 | --------I- | 8..12 = -2..+2 -------------+-------------------------+----------+--------------+------------------------------------------------- 0x002D | MemCardSpace1 | 16 | --------I- | The number of images that can still be stored | | | | on the CF card. -------------+-------------------------+----------+--------------+------------------------------------------------- 0x003E | FocusMode | 16 | --------I- | 0/1 is that manual focus? -------------+-------------------------+----------+--------------+------------------------------------------------- 0x003F | WBTemperature | 16 | --------I- | Similar to RIF.WBTemperature -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0040 | Hue | 16 | --------I- | 8..12 = -2..+2 -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0042 | | 16 | --------I- | 4 times the value 0xFF80 0x0043 | | | | Could that be the maximal CCD value of each of the 0x0044 | | | | four Bayer components? 0x0045 | | | | -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0046 | CameraOrientation | 16 | --------I- | 72=Horizontal | | | | 76=ClockWise | | | | 82=CounterClockWise -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0047 | Aperture | 16 | --------I- | Aperture = 2^((N-8)/16) -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0048 | ShutterTime | 16 | --------I- | ShutterTime = 2^(-(N-48)/8) -------------+-------------------------+----------+--------------+------------------------------------------------- 0x004A | MemCardSpace2 | 16 | --------I- | Identical to MemCardSpace1 (see above) -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0060 | NoiseReduction | 16 | --------I- | 0=OFF 1=ON -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0062 | PictureNumber | 16 | --------I- | The picture number (the XXXX in PICTXXXX.MRW) -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0071 | AntiShake | 16 | --------I- | 0=Off 1=On -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0075 | UseZoneMatching | 16 | --------I- | 0=No 1=Yes | | | | --> HIGH/LOW is probably described at 0x001d (TBD) -------------+-------------------------+----------+--------------+------------------------------------------------- | | | --------I- | =============+=========================+==========+==============+================================================= (17d) MinoltaCameraSettings0114 (Dynax/Maxxum 5D) ================================================= See the remarks about MinoltaCameraSettings4. This is highly incomplete. The 5D block is 448 bytes long. That makes 224 (=0xde) entries of 16bits. Note: There are obvious similarities between MinoltaCameraSettings4 and MinoltaCameraSettings0114 For example, the distance between MemCardSpace2 and CameraOrientation is 4 in both so it is likely that the 2 fields between them are identical too. =============+=========================+==========+==============+================================================= 16bit entry | Name | Size | ABCDEFGHIJ | Description =============+=========================+==========+==============+================================================= 0x000A | ExposureMode | 16 | xxxxxxxxxJ | 0: (P) Program | | | | 1: (A) Aperture Priority | | | | 2: (S) Shutter Priority | | | | 3: (M) Manual | | | | 4: (P/green) Auto ??? | | | | 4131: connected copying ? -------------+-------------------------+----------+--------------+------------------------------------------------- 0x000D | Quality | 16 | xxxxxxxxxJ | -------------+-------------------------+----------+--------------+------------------------------------------------- 0x000E | WbMode | 16 | xxxxxxxxxJ | 0 AUTO | | | xxxxxxxxxJ | 1 Daylight | | | xxxxxxxxxJ | 2 Cloudy | | | xxxxxxxxxJ | 3 Shade | | | xxxxxxxxxJ | 4 Tungsten | | | xxxxxxxxxJ | 5 Fluorescent | | | xxxxxxxxxJ | 6 Flash | | | xxxxxxxxxJ | 256 Temperature -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0025 | PhotometryMode | 16 | xxxxxxxxxJ | 0 : 14-segment Honeycomb pattern metering | | | xxxxxxxxxJ | 1 : Center weithed | | | xxxxxxxxxJ | 2 : Spot -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0026 | ISO | 16 | xxxxxxxxxJ | Be carefull! this is the menu setting and not the real ISO. | | | | 0 : Auto | | | | 1 : 100 | | | | 3 : 200 | | | | 4 : 400 | | | | 5 : 800 | | | | 6 : 1600 | | | | 7 : 3200 | | | | 8 : 200 (Zone Matching High) | | | | 10: 80 (Zone Matching Low) -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0030 | Sharpness | 16 | xxxxxxxxxJ | 8..12 = -2..+2 -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0031 | Contrast | 16 | xxxxxxxxxJ | 8..12 = -2..+2 -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0032 | Saturation/Chroma | 16 | xxxxxxxxxJ | 8..12 = -2..+2 -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0037 | MemCardSpace1 | 16 | xxxxxxxxxJ | The number of images that can still be stored | | | | on the CF card. -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0038 | ExposureRevision | 16 | xxxxxxxxxJ | value/24 (ECV) ???? -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0049 | WBFineControl | 16 | xxxxxxxxxJ | -2 : light bulb Color Fluorescent light | | | | -1 : warm White Fluorescent light | | | | 0 : white Fluorescent light | | | | +1 : noon White Fluorescent light | | | | +2 : noon White Fluorescent light | | | | +3 : noon Optical Color Fluorescent light | | | | +4 : noon Optical Color Fluorescent light -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0050 | CameraOrientation | 16 | xxxxxxxxxJ | 72=Horizontal | | | | 82=CounterClockWise | | | | 76=ClockWise -------------+-------------------------+----------+--------------+------------------------------------------------- 0x0054 | MemCardSpace2 | 16 | xxxxxxxxxJ | Identical to MemCardSpace1 (see above) -------------+-------------------------+----------+--------------+------------------------------------------------- 0x00AE | PictureNumber | 16 | xxxxxxxxxJ | The picture number (the XXXX in PICTXXXX.MRW) -------------+-------------------------+----------+--------------+------------------------------------------------- 0x00B0 | NoiseReduction | 16 | xxxxxxxxxJ | 0=off 1=on -------------+-------------------------+----------+--------------+------------------------------------------------- 0x00BD | AntiShake | 16 | xxxxxxxxxJ | 0=off 1=on -------------+-------------------------+----------+--------------+------------------------------------------------- | | 16 | xxxxxxxxxJ | -------------+-------------------------+----------+--------------+------------------------------------------------- | | 16 | xxxxxxxxxJ | -------------+-------------------------+----------+--------------+------------------------------------------------- | | 16 | xxxxxxxxxJ | =============+=========================+==========+==============+=================================================