Working Draft - Proposals for New Standards

Transcription

Working Draft - Proposals for New Standards
© ISO 2008 – All rights reserved
ISO/TECHNICAL COMMITTEE 42 —
PHOTOGRAPHY
Address Reply to:
Secretariat ISO/TC42
International Imaging Industry Association (I3A)
701 Westchester Avenue, Suite 317W
White Plains, NY 10604 USA
Phone: +1 914-285-4933
FAX: +1 914-285-4937
Email: [email protected]
Date: 2010-11-29
Editors Note: This is working draft
text in support of the NWI ballot. As
such, it is intended to provide
guidance on what the committee
invisions during development of the
standard. Editors notes throughout
the text are both requests for
comments and indicate specific areas
open for contribution as indicated by
the editor:
Dr. Scott Foshee,
[email protected]
ISO/WD 12234-2
ISO TC 42/WG 18
Working Draft
for the Second Edition NWI
Secretariat: ANSI (I3A)
Electronic still picture imaging — Removable memory — Part 2: TIFF/EP
image data format
Imagerie des prises de vue électroniques — Mémoire mobile — Partie 2: Format de donées image TIFF/EP
Warning
This document is not an ISO International Standard. It is distributed for review and comment. It is subject to
change without notice and may not be referred to as an International Standard.
Document type: International Standard
Document subtype:
Document stage: (20) Preparatory
Document language: E
BOOTCAMP:Documents and Settings:admin:Desktop:ISO_12234-2_(E)_WD for NWI---10-11-29.doc STD
Version 2.1c2
Recipients of this draft are invited to submit, with their comments, notification of any relevant patent rights of
which they are aware and to provide supporting documentation.
ISO/WD 12234-2
Copyright notice
This ISO document is a working draft or committee draft and is copyright-protected by ISO. While the
reproduction of working drafts or committee drafts in any form for use by participants in the ISO standards
development process is permitted without prior permission from ISO, neither this document nor any extract
from it may be reproduced, stored or transmitted in any form for any other purpose without prior written
permission from ISO.
Requests for permission to reproduce this document for the purpose of selling it should be addressed as
shown below or to ISO's member body in the country of the requester:
Secretariat ISO/TC42
International Imaging Industry Association (I3A)
701 Westchester Avenue, Suite 317W
White Plains, NY 10604 USA
Phone: +1 914-285-4933
FAX: +1 914-285-4937
Email: [email protected]
Reproduction for sales purposes may be subject to royalty payments or a licensing agreement.
Violators may be prosecuted.
© ISO 2008 – All rights reserved
iii
ISO/WD 12234-2
Contents
Page
Foreword .......................................................................................................................................................... vii
Introduction..................................................................................................................................................... viii
1
Scope..................................................................................................................................................... 1
2
Normative references........................................................................................................................... 1
3
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
3.13
3.14
3.15
3.16
3.17
3.18
3.19
3.20
3.21
3.22
3.23
3.24
3.25
3.26
3.27
3.28
3.29
3.30
3.31
3.32
3.33
3.34
3.35
Terms and definitions .......................................................................................................................... 2
big-endian byte order network byte order ......................................................................................... 2
byte offset ............................................................................................................................................. 2
byte order .............................................................................................................................................. 2
descriptive metadata............................................................................................................................ 2
field length ............................................................................................................................................ 2
file .......................................................................................................................................................... 2
file system ............................................................................................................................................. 2
first IFD .................................................................................................................................................. 2
fully referred.......................................................................................................................................... 2
IFD entry ................................................................................................................................................ 3
image data format................................................................................................................................. 3
Image File Directory IFD ...................................................................................................................... 3
image length ......................................................................................................................................... 3
image orientation.................................................................................................................................. 3
image width........................................................................................................................................... 3
linear reference space.......................................................................................................................... 3
little-endian byte order......................................................................................................................... 3
opcode................................................................................................................................................... 3
raw ......................................................................................................................................................... 3
reader..................................................................................................................................................... 3
reference camera model ...................................................................................................................... 3
segment................................................................................................................................................. 4
structural metadata .............................................................................................................................. 4
tag .......................................................................................................................................................... 4
TIFF field................................................................................................................................................ 4
TIFF/EP ….............................................................................................................................................. 4
TIFF/EP file ............................................................................................................................................ 4
top-level IFD IFD 0 ................................................................................................................................ 4
tuple < … > ............................................................................................................................................ 4
ValueOffset field ................................................................................................................................... 4
working colour space........................................................................................................................... 4
writer...................................................................................................................................................... 5
X dimension .......................................................................................................................................... 5
.H h......................................................................................................................................................... 5
Y dimension .......................................................................................................................................... 5
4
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
Introduction to the TIFF/EP Architecture (Informative) ................................................................. 5
TIFF/EP Processing model (Informative) .......................................................................................... 5
TIFF/EP Reader and Writer requirements (Informative)................................................................... 5
TIFF/EP Processing workflow (Informative) ..................................................................................... 5
Private TIFF and TIFF/EP tags (Informative) ..................................................................................... 6
TIFF/EP Profile Classes (Informative)................................................................................................. 6
Alternative images (Informative)......................................................................................................... 9
TIFF/EP tags for image data (Informative) ...................................................................................... 10
Thumbnail images (Informative) ....................................................................................................... 12
Colour encoding information (Informative) ..................................................................................... 12
iv
© ISO 2008 – All rights reserved
ISO/WD 12234-2
4.10
4.11
4.12
Image data compression (Informative) ............................................................................................ 13
Descriptive Metadata (Informative)................................................................................................... 15
Opcode processing instructions (Informative) ............................................................................... 17
5
5.1
5.2
5.3
5.4
5.5
5.6
5.7
The TIFF/EP File Structure ................................................................................................................ 17
General ................................................................................................................................................ 17
The TIFF/EP File Extension ............................................................................................................... 17
The TIFF/EP File Format .................................................................................................................... 17
The TIFF/EP Image File Header......................................................................................................... 17
The Image File Directory Structure................................................................................................... 18
The Image File Directory Entry ......................................................................................................... 19
The Data Types................................................................................................................................... 20
6
6.1
6.2
Image Storage..................................................................................................................................... 22
Supported image types...................................................................................................................... 22
Image Compression ........................................................................................................................... 22
7
7.1
7.2
7.3
7.4
Processing Architecture.................................................................................................................... 23
Processing model .............................................................................................................................. 23
Workflows ........................................................................................................................................... 23
TIFF/EP profiles .................................................................................................................................. 23
Reader / writer requirements............................................................................................................. 23
8
8.1
8.2
8.3
Tag usage............................................................................................................................................ 24
General ................................................................................................................................................ 24
Image File Directories ........................................................................................................................ 24
Metadata File Directories................................................................................................................... 27
9
9.1
9.2
TIFF/EP tag and opcode definitions ................................................................................................. 27
Tag Definitions ................................................................................................................................... 27
Opcode Instructions ........................................................................................................................ 101
Annex A (informative) TIFF/EP Colour Management Overview................................................................. 118
A.1
Colour management modes ............................................................................................................ 118
A.2
sRGB colour management mode.................................................................................................... 118
A.3
ICC colour management mode ....................................................................................................... 118
A.4
DNG colour management mode...................................................................................................... 119
A.5
DNG+ICC colour management mode ............................................................................................. 119
Annex B (informative) DNG Colour Processing Guidelines ...................................................................... 120
B.1
Introduction ...................................................................................................................................... 120
Annex C (informative) Lossy Compression of Raw Image Data ............................................................... 125
C.1
Overview of Encoding and Decoding DSC Raw Data ................................................................... 125
C.2
Encoding/Decoding Model – Structure and Configurations ........................................................ 126
C.3
Recommendations for the Usage and Choice of Parameters...................................................... 127
C.3.1 JPEG Compression.......................................................................................................................... 127
C.3.2 Compression LUT ............................................................................................................................ 128
C.3.3 Correlation Matrix............................................................................................................................. 128
C.3.4 Configuration 1................................................................................................................................. 128
C.3.5 Configuration 2................................................................................................................................. 129
C.4
Compression Data Structure for TIFF/EP ...................................................................................... 130
Annex D (informative) TIFF/EP Workflow Example .................................................................................... 131
Annex E (normative) Mapping Raw Values to Linear Reference Values.................................................. 132
E.1
Linearization ..................................................................................................................................... 132
E.2
Black Subtraction............................................................................................................................. 132
E.3
Rescaling .......................................................................................................................................... 132
E.4
Clipping ............................................................................................................................................. 132
Annex F (normative) Mapping Camera Color Space to CIE XYZ Space ................................................... 133
F.1
Camera Calibration Matrices........................................................................................................... 133
F.2
One or Two Colour Calibrations ..................................................................................................... 133
F.3
Definitions used in the following sections .................................................................................... 133
© ISO 2008 – All rights reserved
v
ISO/WD 12234-2
F.4
F.5
F.6
F.7
F.8
F.9
Translating White Balance xy Coordinates to Camera Neutral Coordinates.............................. 134
Translating Camera Neutral Coordinates to White Balance xy Coordinates.............................. 134
Camera to XYZ (D50) Transform ..................................................................................................... 134
If the ForwardMatrix tags are not included in the camera profile................................................ 134
If the ForwardMatrix tags are included in the camera profile ...................................................... 135
Applying the Hue/Saturation/Value Mapping Table ...................................................................... 135
Annex G (informative) TIFF EP tag use examples ...................................................................................... 137
Annex H (informative) TIFF EP Versus TIFF 6.0 and DNG 1.3.................................................................... 138
Annex I (informative) TIFF/EP tag lists....................................................................................................... 140
Bibliography................................................................................................................................................... 148
vi
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Foreword
ISO (the International Organization for Standardization) is a worldwide federation of national standards bodies
(ISO member bodies). The work of preparing International Standards is normally carried out through ISO
technical committees. Each member body interested in a subject for which a technical committee has been
established has the right to be represented on that committee. International organizations, governmental and
non-governmental, in liaison with ISO, also take part in the work. ISO collaborates closely with the
International Electrotechnical Commission (IEC) on all matters of electrotechnical standardization.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of technical committees is to prepare International Standards. Draft International Standards
adopted by the technical committees are circulated to the member bodies for voting. Publication as an
International Standard requires approval by at least 75 % of the member bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent
rights. ISO shall not be held responsible for identifying any or all such patent rights.
ISO 12234-2 was prepared by Technical Committee ISO/TC 42, Photography.
This second edition cancels and replaces the first edition (ISO 12234-2:2001), which has been technically
revised.
ISO 12234 consists of the following parts, under the general title Electronic still-picture imaging — Removable
memory :
⎯
Part 1: Basic removable-memory module
⎯
Part 2: TIFF/EP image data format
© ISO 2008 – All rights reserved
vii
ISO/WD 12234-2
Introduction
The TIFF/EP image data format is a comprehensive, flexible file format that provides the capability to store
raw or fully processed (rendered) images with the option of embedding additional images or processing
instructions (opcodes) that can be applied later.
The purpose of this second edition is to improve interoperability of TIFF/EP files by introducing interoperability
profiles for extended colour encodings and camera raw files. This is accomplished by incorporating directly
rather than by reference the underlying TIFF specification, copyright 1992 Adobe Systems Incorporated
(Adobe), by specifying the interoperability profile reader and writer requirements, by incorporating the Adobe
DNG version 1.3 tags, and by defining several new tags unique to this standard. In addition, the metadata tag
definitions from earlier versions, DNG, and TIFF have been enhanced to include more information on the
content of these tags, and to enable metadata to be stored using a well-defined XML schema. Finally,
compatibility with EXIF 2.3 metadata has been enhanced
This second edition defines a specific profile for “raw” files which compliant with DNG. This "raw profile"
specifies the processing that should be performed by the “raw” reader, using the image data and the metadata
in the file. This second edition also defines a specific profile for supporting extended colour encodings
including camera RGB and scene-referred colour encodings, using ICC profiles. Other changes include
improvements to the figures and to the organization of the tag definitions, in order to enable more consistent
implementations.
Raw image files have become increasingly important as a method of providing a greater degree of flexibility
and artistic control. Unlike ISO 12234-1, which captures images that have been fully processed by the
camera, TIFF/EP can capture unprocessed or minimally processed image data. One advantage of this data is
the potential of more robust artistic control beyond what is possible in a camera. One disadvantage is that this
data requires processing before use. The ability to store both unprocessed and processed data in a single
TIFF/EP file is meant to address this.
While there are many different single vendor solutions to the raw format requirement, TIFF/EP Version 2
incorporates the many TIFF-based Adobe DNG format tags in order to enhance the raw capabilities of
TIFF/EP. DNG was developed to satisfy the customer requirement of a cross vendor raw format capable of
sustained support across multiple generations of camera hardware providing an archival capability unavailable
elsewhere.
The term TIFF/EP refers to Tag Image File Format/Electronic Photography, defined in this part of ISO 12234.
The term “TIFF 6.0” refers to the TIFF Revision 6.0 specification. <Editors note: still true? Or TIFF 6 +
notes>
Wherever possible, TIFF/EP uses tags already defined in TIFF 6.0 and provides guidelines for the use of
these tags as well as the allowed field values. Additional tags are defined to encode image data features that
are not included in TIFF 6.0. These new tags conform to the practices specified in TIFF 6.0. In this second
edition these tags have been chosen to be as compatible as possible with the Exif tags defined in “Digital Still
Camera Image File Format Standard (Exchangeable image file format for Digital Still Cameras: Exif)”, Version
2.3 by the Japanese Camera Image Products Assciation (CIPA).
The TIFF/EP tag-fields containing enumerated values follow the TIFF 6.0 convention, where the lower half of
the values (0 to 127 for byte values, 0 to 32,767 for short values, and 0 to 2,147,483,647 for long values) are
reserved by TIFF/EP and the upper half of the values (128 to 255 for byte values, 32,768 to 65,535 for short
values, and 2,147,483,648 to 4,294,967,296 for long values) are private values that may be registered through
the designated registration authority. <Editors note: need WG18 definition and call for reg auth>
I3A contact information
viii
© ISO 2008 – All rights reserved
ISO/WD 12234-2
International Imaging Industry Association (I3A)
701 Westchester Avenue, Suite 317W
White Plains, NY 10604 USA
Phone: +1 914-285-4933
FAX: +1 914-285-4937
Email: [email protected]
This International Standard also describes how related images, such as both “parent” high resolution and
“thumbnail” low resolution images of the same subject, or temporal sequence “bursts” of the same scene, or
both “RAW” and fully rendered images can be stored in a single TIFF/EP file. The method for storing the
"thumbnail image" has been changed from the first edition, in order to match the method used in the Exifuncompressed image file format.
TIFF/EP currently does not define how to embed audio information within a TIFF/EP image file. This does not
preclude a future release of TIFF/EP from implementing embedded audio as part of the TIFF/EP file.
The International Organization for Standardization (ISO) draws attention to the fact that it is claimed that
compliance with this International Standard may involve the use of patents from the following companies:
⎯
Canon Incorporated
⎯
Eastman Kodak Company
⎯
Fuji Photo Film Company Ltd.
⎯
Nikon Corporation
⎯
Olympus Optical Company Ltd.
<Editor's Note: Contact information to be added>
The holders of these patent rights have assured ISO that they are willing to negotiate licenses under
reasonable and non-discriminatory terms and conditions throughout the world. In this respect, the statement of
the holder of this patent right is registered with ISO. Information may be obtained from the companies listed.
Other companies have also determined that, upon approval of this International Standard, they too will grant
patent licenses in accordance with ISO Directives, Part 2. Information regarding these companies may also be
obtained from the ISO Central Secretariat
ISO takes no position concerning the evidence, validity and scope of any of the patent rights listed.
© ISO 2008 – All rights reserved
ix
WORKING DRAFT
ISO/WD 12234-2
Electronic still picture imaging — Removable memory — Part 2:
TIFF/EP image data format
1
Scope
This part of ISO 12234 specifies the TIFF/EP image data format. The TIFF/EP format allows for the storage of
image data along with associated metadata that supports the post capture processing of the image data.
A TIFF/EP file shall meet the requirements provided in this specification.
2
Normative references
The following referenced documents are indispensable for the application of this document. For dated references,
only the edition cited applies. For undated references, the latest edition of the referenced document (including any
amendments) applies.
ISO 12232, Photography — Electronic still-picture cameras — Determination of ISO speed
ISO 12233, Photography — Electronic still-picture cameras — Resolution measurements
ISO 12234-1, Electronic still-picture imaging — Removable memory — Part 1: Basic removable-memory module
ISO 14524, Photography — Electronic still-picture cameras — Methods for measuring opto-electronic conversion
functions (OECFs)
ISO 15076-1, Image technology colour management – Architecture, profile format and data structure – Part 1:
Based on ICC 1:2004-10.
ISO 15739 Photography — Electronic still picture imaging — Noise measurements.
ISO/TS 22028-3 Photography and graphic technology -- Extended colour encodings for digital image storage,
manipulation and interchange -- Part 3: Reference input medium metric RGB colour image encoding (RIMM RGB)
IEC 61966-2-1, Multimedia systems and equipment - Colour measurement and management - Part 2-1: Colour
management - Default RGB colour space -sRGB
IEC 61966-2-2, Multimedia systems and equipment - Colour measurement and management - Part 2-2: Colour
management - Extended RGB colour space
ISO/IEC 10918-1, Information technology — Digital compression and coding of continuous-tone still images:
Requirements and guidelines
ISO/IEC 14495-1, Information technology — Lossless and near-lossless compression of continuous-tone still
images: Baseline
ITU-R BT.709-4, Parameter values for the HDTV standards for production and international programme exchange
© ISO 2008 – All rights reserved
1
ISO/WD 12234-2
ASTM E1708 - 95 Standard Practice for Electronic Interchange of Color and Appearance Data
MIL-STD-2500A – National Imagery Transmission Format Standard (NITFS).
3
Terms and definitions
For the purposes of this part of ISO 12234, the following terms and definitions apply.
<Editor's Note: Add new definitions so that the terms used in this standard are defined before the reader
encounters them in subsequent sections of this Standard. Also add any new DNG related terms.>
<Editing note: This list can be sorted: Sort in outline mode with only headers showing>
3.1
big-endian byte order
network byte order
byte order from the most significant byte to the least significant byte
3.2
byte offset
position of a byte with respect to the beginning of the file, encoded as a 32-bit integer, such that the first byte of the
file has offset 0
3.3
byte order
ordering of bytes for multi-byte data primitives within a file, such as 2-byte and 4-byte integers, or 4-byte and 8-byte
floats
3.4
descriptive metadata
metadata not required for the expected display of the image
3.5
field length
number of bytes in the field
3.6
file
sequence of 8-bit bytes
3.7
file system
structure by which data is logically organized in files on the storage medium
3.8
first IFD
first of the
3.9
fully referred
<Editors note: TBD>
2
© ISO 2008 – All rights reserved
ISO/WD 12234-2
3.10
IFD entry
IFD table row storing a TIFF field
3.11
image data format
structure of image data and its metadata within a single file
3.12
Image File Directory
IFD
table with IFD entries containing values, pointers to values, or links to other IFDs
NOTE: Not all IFDs contain images. The term IFD is also used for IFDs without images such as GPS.
3.13
image length
image's extension in the Y dimension, in number of pixel rows
3.14
image orientation
relationship between the presentation system's horizontal and vertical axes and the image's X and Y dimensions
3.15
image width
image's extension in the X dimension, in number of pixel columns
3.16
linear reference space
<Editors note: TBD>
3.17
little-endian byte order
byte order from the least significant byte to the most significant byte
3.18
opcode
image processing instruction to be executed on reading
3.19
raw
<Editors note: TBD>
3.20
reader
device that consumes files compliant with this standard
3.21
reference camera model
<Editors note: TBD>
© ISO 2008 – All rights reserved
3
ISO/WD 12234-2
3.22
segment
strip or tile
3.23
structural metadata
metadata required for the expected display of the image
3.24
tag
<Editors note: TBD, integer number identifying the TIFF field>
3.25
TIFF field
logical entity consisting of a TIFF tag and its value, where this logical concept is implemented as an IFD entry, plus
the actual value if it doesn’t fit into the last 4 bytes of the IFD entry
NOTE: The terms TIFF field and IFD entry are interchangeable in most contexts.
3.26
TIFF/EP …
(when used as adjective) … compliant with this standard
3.27
TIFF/EP file
file compliant with this standard
3.28
top-level IFD
IFD 0
IFD at the byte offset specified in the Link field in the image file header
3.29
tuple
<…>
ordered list of data elements
3.30
ValueOffset field
IFD entry field containing a byte offset or a tag value
3.31
working colour space
colour space encoding in which manual edits or image enhancement processing is performed
NOTE 1 Manual edits in a working colour space are performed viewing the effect of the edits on some medium which becomes
the reference medium for the editing process. Typically, the black and white points of this medium are encoded at the minimum
and maximum working colour space values. In this case, in order to obtain accurate colorimetric values, the black and white
scaling corresponding to the reference medium used must be undone. XYZ scaling is typically recommended (see ISO 22028-2).
NOTE 2 When a colour space encoding used for a standard colour image encoding is also used as a working space, it may still
be necessary to perform a colour re-rendering of the values associated with the (potentially variable) working colour space
reference medium to make them appropriate for the colour image encoding reference medium, and for open exchange. For
example, When the sRGB colour space encoding specified in IEC 61966-2-1 is used as a working colour space for the editing of
motion picture content, viewing it in a dark theatrical environment, the resulting images will be encoded in the sRGB colour
4
© ISO 2008 – All rights reserved
ISO/WD 12234-2
space encoding but not in the sRGB colour image encoding. Consequently they will not produce good results if exchanged and
interpreted according to the sRGB colour image encoding standard.
NOTE 3 Image enhancement processing may involve the application of algorithms in different working spaces as different
operations and algorithms may be optimized for particular working spaces.
3.32
writer
device that produces files compliant with this standard
3.33
X dimension
horizontal dimension when the image is in Orientation = 0
3.34
.H
h
in hexadecimal notation
3.35
Y dimension
vertical dimension when the image is in Orientation = 0
4
Introduction to the TIFF/EP Architecture
(Informative)
<Editors Note: This entire section can now be moved to an annex. It's now 100% informative. All
requirements have been placed elsewhere.
<Editors Note: How much of this should be informative? 100%. It's very hard for a user to find
requirements in a section where 95% is informative. Thus, make sure all requirements are stated elsewhere,
not surrounded by massive informative sections. >
4.1
TIFF/EP Processing model (Informative)
<Editors note: The text here moved to the intro. Add simple figure later.>
4.2
TIFF/EP Reader and Writer requirements (Informative)
<Editors note:This seems to be the wrong place for this info. Move to end of section?
For each Profile, there is a set of required reader and writer tags.
The writer requirements provide any reader with a set of guaranteed tags that will be present when they read the
file. This allows reader applications to exhibit a minimal set of functionality.
The reader requirements provide writers with knowledge what tags they can be assured that a reader will
understand. This allows a writer to create TIFF/EP files with tags that are known to be interpreted at read time.
These characteristics are specified in the tag tables in Annex I and the tag definitions in Section 9.1
4.3
TIFF/EP Processing workflow (Informative)
While the processing workflow described below is not a required workflow, it is the workflow that was assumed in
the writing of this specification.
Profiles 1 and 2 are only specified at certain points in this workflow. While the workflow helps define these points in
the workflow, there can be alternative methods to get from one defined profile point to another defined profile point.
© ISO 2008 – All rights reserved
5
ISO/WD 12234-2
Scene
<Editors note: Make this figure better>
scene
monitor
monitor
cam
|
raw
referred
|
|
ref
printer
output
|
|
|
=>
|
=>
|
=>
|
=>
|
cam
|
cam
|
colour
|
|
capture |
compen |
rend
|
|
|
|
|
|
=>
|
=>
|
opcode |
colour
|
colour
|
|
applied |
re-rend |
re-rend |
|
|
|
|
<Editors note: add opcodes processing locations>
<Editors note: For an individual file, do we need to flag the state of an image
in the workflow >
In the above processing workflow, the image can be in one of 7 possible states, the middle 5 being electronic.
Profile 1 can describe image date at states 3, 4, and 5. Profile 2 can describe the image data at states 2, and 3.
4.4
Private TIFF and TIFF/EP tags (Informative)
<Editors note: confirm that I3A has issued vendor unique tags. Potentially
delete I3A option.>
A camera manufacturer can store additional information in the form of private tags.
Private tags compliant with the Adobe TIFF specification can be included in TIFF/EP files. For private tags, unique
tag numbers are obtained from the Adobe Developers Desk (TIFF private) or vendor unique tags from I3A 1)
(TIFF/EP private).
<Editors Note: Change I3A to IST??>
When storing additional vendor unique information within TIFF/EP files, care is needed not to violate the TIFF/EP
guidelines described in this part of ISO 12234. Illegal tag numbers or non-compliant tags can results in noncompliant TIFF/EP files.
4.5
TIFF/EP Profile Classes (Informative)
√<Editors note: Check for conflicts with Compression section. Likely put all
compression in that section.>DONE
4.5.1
√<Editors note: Check for conflict with Color section. Likely put all color
items in that section.>Done
TIFF/EP Image Profile model (Informative)
Two different image profiles, Profile 1 and Profile 2, can be used in a TIFF/EP file.
The profile of an image is determined from the image's PhotometricInterpretation value. When
PhotometricInterpretation is 1, 2, or 6 (Gray, RGB, and YCbCr, respectively) the image is a profile 1 image. When
PhotometricInterpretation is 32803 (CFA) or 34892 (Raw) the image is a profile 2 image.
Profile 1 images are intended to be backward compatible with TIFF/EP Version 1 files and ditto writers and readers.
1)
6
See contact information in Introduction
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Profile 1 image is distinct from the concept of a thumbnail image introduced in TIFF/EP version 1. The thumbnail
image has a distinct use for rapidly acquiring a visual concept of what the TIFF/EP file contains.
Profile 2 is intended for storing raw images in a TIFF/EP file.
The profile of the file is the same as the profile of the main image (the image with NewSubFileType = 0).
Opcodes are optional for both profiles.
4.5.2
Profile 1
Profile 1 stores processed (rendered) image data.
Profile 1 files have a ".TIF" file extension.
Profile 1 supports 8, 10, 12, 14, or 16 bits per sample.
Profile 1 supports compressed image data using baseline JPEG as specified in ISO/IEC 10918-1 (8 bits per
sample) or JPEG-LS as specified in ISO/IEC 14495-1 (more than 8 bits per sample).
Profile 1 files can use subIFD trees. The highest quality image uses NewSubFileType = 0, while rendered, reduced
resolution or thumbnail images use NewSubFileType = 1 or 1001.H.
An example of a Profile 1 file, using image data stored in strips, is shown in figure 2.
<Editor's Note: Support for a 32 bit floating point representation is under
consideration>
© ISO 2008 – All rights reserved
7
ISO/WD 12234-2
4.5.3
Profile 2
Profile 2 stores "raw" image data.
Profile 2 is not fully compatible with the Adobe DNG format, the TBD format, or the TBD format.
Profile 2 uses a "DNG" file extension.
Profile 2 supports 8, 10, 12, 14, or 16 bits per sample.
Profile 2 supports compressed image data using JPEG-LS as specified in ISO/IEC 14495-1.
Profile 2 files can use subIFD trees. The highest quality image uses NewSubFileType = 0, while rendered, reduced
resolution or thumbnail images use NewSubFileType = 1 or 1001.H.
An example of a Profile 2 file is shown in figure 3.
8
© ISO 2008 – All rights reserved
ISO/WD 12234-2
4.6
Alternative images (Informative)
A file can contain more than one image (and a thumbnail). The additional images are called alternative images.
The images can use the same or different profiles. For example, one image can be a fully rendered image
(Profile 1) and another image with raw image data (Profile 2) can be the raw image used to create the fully
rendered image. Either image can be a main image, and the other image becomes an alternative image.
An alternative image can be for example:
-
A lower resolution version of the main image with the same or alternative rendering
-
A preview at full or reduced resolution with the same or alternative rendering
-
A raw image, for example, the raw image used to create the main image.
Alternative images have a value of NewSubFileType = 1001.H.
Alternative rendering can be indicated in one of two ways:
© ISO 2008 – All rights reserved
9
ISO/WD 12234-2
1. An ICC profile tag can also be stored with the alternative image. In this case, the image is intended to be
displayed with this ICC profile. This enables ICC based applications to store and edit alternative renderings
of the image.
2. In the tags PreviewApplicationName, PreviewApplicationVersion, PreviewSettingsName and
PreviewSettingsDigest. The PreviewSettingsName tag refers to a named setting stored in the XMP packet
in IFD0. This enables proprietary applications to store and edit alternative renderings of the image
By default a reader uses the main image since this is the assumed intent of the file at creation time. Alternative
images are displayed only when requested by the user.
4.7
4.7.1
TIFF/EP tags for image data (Informative)
General image data tags (Informative)
<Editors note: Confirm Part 2 profile flag. Right now, only reference is extension.
Need data flag. We have it = PhotometricInterpretation>
The general image data tags are used by Profiles 1 and 2. Image data, sometimes referred to as structural
metadata, includes everything necessary to display the image.
The image width in the X dimension, or the horizontal dimension when the image is normally oriented, is specified
in the ImageWidth tag. The image width can be the shorter or longer dimension of the image. The image length, i.e.
vertical or Y dimension, is specified in the ImageLength tag. The image orientation is defined by the Orientation
tag.
The desired image output rendering resolution in the X-dimension is specified in the XResolution tag, while the
output resolution in the Y-dimension is specified in the YResolution tag. The ResolutionUnits tag gives the units
for the XResolution and YResolution values. The pixel aspect ratio (ratio of the pixel width to pixel height) is
determined by the ratio of the XResolution and YResolution values. The preferred pixel aspect ratio is 1:1
(square), so that XResolution equals YResolution. These tags are typically used to determine the default size of
the image on the screen. They do not indicate the sample spacing of the image sensor in an electronic still-picture
camera. The latter is specified in the FocalPlaneXResolution, FocalPlaneYResolution and
FocalPlaneResolutionUnits tags.
The number of colour components or samples per pixel in the image is specified in the SamplesPerPixel tag. For
example, an image captured using a monochrome sensor has only one colour component or sample per pixel,
while a 3-sensor colour RGB camera has three colour components or samples per pixel. The number of bits
needed to store each of the colour components (samples) is specified in the BitsPerSample tag. In the case of a
monochrome image, the BitsPerSample tag contains only one value, equal to the actual number of bits per pixel.
In the case of an RGB image having three colour samples per pixel, the BitsPerSample tag contains three values
equal to the actual number of bits of storage used to store each component or sample.
The type of image data components is specified in the PhotometricInterpretation tag. All readers can handle
greyscale, RGB and YCbCr data.
When YCbCr data values are specified, the number of Cb and Cr values is either equal to the number of Y values
or smaller owing to subsampling. The chrominance subsampling factors of a YCbCr image are specified in the
YCbCrSubSampling tag. This tag contains both the horizontal and vertical subsampling factors, which are labelled
YCbCrSubSamplingHoriz and YCbCrSubSamplingVert respectively. The subsampling factors are given relative to
the appropriate dimension of the corresponding luminance image. The positions of the subsampled chrominance
components relative to the luminance samples are specified in the YCbCrPositioning tag. The headroom/footroom
image data values (codes) for each pixel component associated with a YCbCr image is specified in the
ReferenceBlackWhite tag. The pair of headroom/footroom values (codes) associated with the luminance
component (Y) refers to this component’s ReferenceWhite and ReferenceBlack. The pair of headroom/footroom
values (codes) associated with the chrominance components, Cb and Cr, refer to these components'
ReferenceBlack and ReferenceWhite, where here the ReferenceWhite value is used to code reference blue and
reference red respectively. The coefficients used in the transformation from RGB to YCbCr image data are
specified in the YCbCrCoefficients tag. The conversion from RGB to YCbCr is for improving compression; the
YCbCrCoefficients have no relation to the RGB colour encoding used.
10
© ISO 2008 – All rights reserved
ISO/WD 12234-2
<Editors note: Is this for thumbnails or for image data or both> BOTH
The image data is stored using either strips or tiles, which are collectively termed segments.
The “strip” mechanism is very useful in accessing images, because it uses less buffer memory than would
otherwise be needed to read in the entire image all at one time. The uncompressed image data is expected not to
exceed 64 Kbytes per strip; a value chosen to maximize compatibility with various operating systems. When strips
are used, the StripOffsets, RowsPerStrip and StripByteCounts tags define the number of strips and the number
of rows of image data stored in each strip. The image is divided into an integral number of strips, from one strip to
the maximum number of strips, which equals the image’s length. If necessary, the final strip can be “padded” with
zeros. The StripOffsets tag stores the offsets to the start of each image data strip. In this way, the reader can
easily access various parts of the image. The number of rows per strip is specified in the RowsPerStrip tag. The
number of image data bytes stored within each strip is specified in the StripByteCounts tag. The order of the
image strips is from the top to the bottom of the image.
EXAMPLE 1:
Table 1 Main image example
Tag
ImageWidth
ImageLength
PhotometricInterpretation
SamplesPerPixel
BitsPerSample
PlanarConfiguration
RowsPerStrip
Main image
3 072
2 048
2 (RGB)
3
8,8,8
1 (Chunky), i.e. RGBRGBRGB...
8
The size in bytes of each row in this image is 3 072 PixelsPerRow * (3 SamplesPerPixel * 8 BitsPerSample)/8 BitsPerByte ==>
9 216 BytesPerRow. Assuming 8 rows of image data in each strip, the number of bytes per strip is 8 RowsPerStrip * 9 216
BytesPerRow ==> 73 728 BytesPerStrip. The number of strips equals 2048 Rows/8 RowsPerStrip ==> 256 strips.
Tiles provide the reader with the ability to perform image “panning”, i.e. viewing portions of the image on a display,
which is smaller than the overall image size. When tiles are used, the TileWidth, TileLength, TileOffsets and
TileByteCounts tags define the number of tiles and the size of each tile. The image is divided into an integral
number of tiles. The TileWidth tag stores the width of the tile in pixels. The TileLength tag stores the length of the
tile in rows. The TileOffsets tag stores the offsets from the start of the image file to the start of each image data tile.
The number of image data bytes in each tile is specified in the TileByteCounts tag. Tiles are not supported for
thumbnails.
EXAMPLE 2: Using the above example, the image could be broken up into 1 024 tiles each having a width of 96 pixels and a
length of 64 pixels. Each tile would have a size in bytes of 96 PixelsPerTileWidth * 64 RowsPerTileLength * (3 SamplesPerPixel
* 8 BitsPerSample)/8 BitsPerByte ==> 18 432 BytesPerTile, i.e. 18K BytesPerTile.
4.7.2
Profile 2 image data tags (Informative)
<Editor's note: Should Linear raw discussion be here or in Annex>
Profile 2 supports Raw and CFA image data with the understanding that these images will be opened and further
processed using camera raw processing software, in order to create the desired reproductions. A profile 1 image
can be stored as an alternative image for knowledgeable readers to utilize.
In addition to the general image tags defined above, Profile 2 defines tags for Raw and CFA data.
A single image component having a colour filter array (CFA) area pattern of the image data derived from a singlechip colour image sensor can be stored. Profile 2 readers handle this type of image data. The colour filter array
area pattern is the repetitive spatial colour sampling pattern of photosites on the image sensor. There are many
different CFA-type sensors, which capture only one colour component per photosite on the sensor. The
SamplesPerPixel, PlanarConfiguration, CFARepeatPatternDim, CFAPattern and SensingMethod tags
describe a sensor’s CFA pattern.
The RowInterleaveFactor and SubTileBlockSize tags further describe how image data is organized.
© ISO 2008 – All rights reserved
11
ISO/WD 12234-2
See section 8.2.7 for further tags.
<Editor's Note: describe additional "raw" tags defined in DNG version 1.2, and the
"defective pixels" tag defined by Stanley Barkan. Also add “output rendering
information” tags.>
4.8
Thumbnail images (Informative)
The file can contain a thumbnail, a small preview of the main image.
The thumbnail feature set is a subset of Profile 1. The dimensions of the thumbnail image are 512 pixels maximum
horizontally and vertically. The thumbnail uses 8 bits per sample, and can be compressed. The thumbnail image is
always stored in strips. The color space is sGray or sRGB.
The thumbnail image is in the first IFD, a location chosen to match Exif Version 2.3.
<Editor's Note: The limitation to 256 x 256 pixels, and the example below, may be
revised>
EXAMPLE
In this example, the thumbnail image has 1/16 the number of lines and 1/16 the number of pixels per line as the
main image. The thumbnail image is a single strip, which holds the thumbnail image data. The StripOffsets tag stores
the offset from the start of the image file to the start of the thumbnail image data strip. The number of rows per strip, i.e.
64 rows, is specified in the RowsPerStrip tag. The number of thumbnail image data bytes stored in the strip is
specified in the StripByteCounts tag.
Table 2 Thumbnail example
Tag
ImageWidth
ImageLength
PhotometricInterpretation
SamplesPerPixel
BitsPerSample
PlanarConfiguration
RowsPerStrip
StripByteCounts
Main image
3 072
2 048
2 (RGB)
3
8,8,8
1 (Chunky), i.e. RGBRGBRGB...
8
Any
Thumbnail
192
128
2 (RGB)
3
8,8,8
1 (Chunky), i.e. RGBRGBRGB...
128
73 728
The size in bytes of the single thumbnail image strip is 192 PixelsPerRow * (3 SamplesPerPixel * 8 BitsPerSample)/8
BitsPerByte ==> 576 BytesPerRow. There are 128 rows of thumbnail image data in the strip, hence the number of bytes per
strip is 128 RowsPerStrip * 576 BytesPerRow ==>73 728 BytesPerStrip. The number of strips is equal to 128 Rows/128
RowsPerStrip ==> 1 strip.
<Editor's Note: This example violates the 64kb recommendation>
4.9
Colour encoding information (Informative)
The camera spectral sensitivities and OECF (opto-electronic conversion function) can be provided with either
profile, using the SpectralSensitivity and OECF tag values, in order to provide additional colour characterization
information.
The TIFF 6.0 PrimaryChromaticities, WhitePoint and TransferFunction tags are not used in TIFF/EP files.
In addition, each profile provides different levels of colour encoding support.
4.9.1 Profile 1 Colour support (Informative)
Profile 1 supports greyscale, RGB, and YCbCr colour components. The PhotometricInterpretation tag specifies
whether the colour components are greyscale, RGB, or YCbCr.
PhotometricInterpretation 2 (RGB) applies to any three-component colour encoding for which an ICC profile can be
constructed, including native camera RGB, CIE XYZ, CIELAB, CIELUV, CMY, HSL, etc.
12
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Profile 1 files can include an ICC profile constructed according to ISO 15076-1 in the ICCProfile tag. When the
ICCProfile tag is present, it is used to interpret the intended colour appearance of the digital code values of the
image. When the ICCProfile tag is not present, the digital code values of the image are interpreted as specified by
the PreviewColorSpace tag.
YCbCr data are interpreted as RGB data converted to YCbCr using the YCbCrCoefficients. When the
YCbCrCoefficients are present, the ICC profile applies to the image data after conversion back to RGB.
4.9.2 Profile 2 Colour support (Informative)
Profile 2 supports CFA (Colour Filter Array) and Raw images. The PhotometricInterpretation tag specifies
whether the sample representation is CFA or Raw.
A large set of tags is defined for processing of Profile 2 images.
Colour processing is specified with the AdoptedWhitePoint, AsShotWhiteXY, AsShotNeutral, BaselineExposure,
CalibrationIlluminant1, CalibrationIlluminant2, CameraCalibration1, CameraCalibration2, ColorMatrix1,
ColorMatrix2, ForwardMatrix1, ForwardMatrix2, ProfileCopyright, ProfileEmbedPolicy, ProfileToneCurve,
ReductionMatrix1, ReductionMatrix2, WhiteLevel tags.
Cropping and scaling is specified with the ActiveArea, BestQualityScale, DefaultCropOrigin, DefaultCropSize, and
DefaultScale tags.
Vendor specific tags can be used with Profile 2 to provide proprietary information for subsequent processing by
camera raw applications.
√<Editor's Note: The use of ICC profiles for profile 2 (raw) files is under
consideration. Optional only!!! Yes, the raw image is not rendered yet. >
4.10 Image data compression (Informative)
The image data compression method is specified in the Compression tag. When no compression is used, a value
of 1 is stored in this tag. When either baseline DCT JPEG compression or lossless JPEG compression is used, a
value of 7 is stored. For compressed images, the average number of bits per pixel is specified using the
CompressedBitsPerPixel tag.
4.10.1 Baseline JPEG compression for Profile 1 (Informative)
√<Editor's Note: A small part of this has been made normative. See elsewhere >
√<Editors note: Needs fixing; Conflict with Image data description sections>
Profile 1 images with 8 bits per sample can use the DCT (lossy) baseline version of the TIFF/JPEG compression
method defined by the Independent JPEG Group and described in TIFF technical note number 2. This
compression method is in accordance with ISO/IEC 10918-1:1994.
To indicate JPEG compression, a value of 7 is specified in the Compression tag. JPEG compression works in
either strip-based or tile-based images. The term “segment” refers to either a strip or a tile. When the
Compression tag has the value 7, each image segment contains a complete JPEG data stream, which is valid
according to the ISO JPEG standard (ISO/IEC 10918-1).
Each image segment in a JPEG-compressed file contains a valid JPEG data stream according to the ISO JPEG
standard’s rules for interchange-format (including JPEG quantization and Huffman tables) or abbreviated-imageformat (without JPEG quantization and Huffman tables) data. The datastream contains a single JPEG frame storing
that segment of the image. The required JPEG markers within a segment are:
-
SOI
(start of image, appears at the very beginning of the segment)
-
SOFn (start of frame)
© ISO 2008 – All rights reserved
13
ISO/WD 12234-2
-
SOS (start of scan, one for each scan)
-
EOI
(end of image, appears at the very end of the segment)
The actual compressed data follows SOS. It can contain RSTn (restart) markers if DRI (define restart interval) is
used.
Additional JPEG “tables and miscellaneous” markers can appear between SOI and SOFn, between SOFn and
SOS and before each subsequent SOS if there is more than one scan. These markers include:
-
DQT (define quantization tables)
-
DHT (define Huffman tables)
-
DRI
-
APPn (define application markers, see note below)
-
COM (comment, ignored by readers)
(define restart interval)
Readers can ignore Appn markers. EXIF-uncompressed image files use APP1 to store TIFF tags.
DNL (define number of lines) markers are not used in TIFF/EP files. Readers can abort if any other marker type is
found, especially the JPEG reserved markers. Such markers are likely to indicate a JPEG extension.
The tables/miscellaneous markers appear in any order. Although the SOFn marker refers to DQT tables, JPEG
does not require those tables to precede the SOFn, only the SOS. Missing-table checks should be made when
SOS is reached.
4.10.1.1 JPEG tables for Profile 1 (Informative)
When JPEG compression is used, the optional JPEGTables tag can be used. This tag encodes the JPEG
quantization and Huffman tables for subsequent use by the JPEG decompression process. The JPEGTables tag is
useful when the image is stored in multiple segments, in order to reduce the file size. When the JPEGTables tag is
present, it contains a valid JPEG “abbreviated table specification” datastream, beginning with SOI and ending with
EOI. It contains one or more JPEG tables, including DQT (define quantization tables) and DHT (define Huffman
tables). When a reader decodes a JPEG compressed image having the JPEGTables tag, it is prudent for the
reader to send the JPEGTables abbreviated bitstream prior to each JPEG compressed image segment. This
eliminates the need for the reader to manually determine which JPEG compressed image segments require these
tables.
When no JPEGTables tag is used, then each segment is a complete JPEG interchange datastream. Each
segment defines all the tables it references. To allow readers to decode segments in any order, no segment relies
on tables being carried over from a previous segment.
4.10.2 JPEG Lossless compression options for Profile 1 (Informative)
Profile 1 readers support 10, 12, 14, or 16 bits per sample compressed using JPEG-LS as specified in ISO/IEC
14495-1.
For JPEG-LS, the internal width/length/components in the JPEG stream do not always match the strip or tile's
width/length/components. Only the total sample counts need to match.
4.10.3 JPEG lossless compression for Profile 2 (Informative)
Profile 2 readers support 8, 10, 12, 14, or 16 bits per sample compressed using JPEG-LS as specified in ISO/IEC
14495-1.
It is common for CFA images to be encoded with a different width, length or component count to allow the JPEG
compression predictors to work across like colours.
14
© ISO 2008 – All rights reserved
ISO/WD 12234-2
<Editor's Note: Other compression options are being considered. A proposal
for lossy compression of raw image data is described in the Annex.>
4.11 Descriptive Metadata (Informative)
Descriptive metadata in TIFF/EP files include picture annotation metadata, camera information metadata, camera
and lens settings metadata, camera characterization metadata, and opcode processing instructions. Descriptive
metadata include all data NOT necessary to display the image.
4.11.1 Picture annotation (Informative)
Information stored with an image that describes and documents the image is called “picture information”. The date
and time that a given image was originally captured, is specified in the DateTimeOriginal tag. The date that a
given image was last modified, i.e. altered in a way that modifies any image data values, is specified in the
DateTime tag. For each modification, there can be an associated update to the image’s history.
The TimeZoneOffset tag indicates the time zone of the clocks that generated the DateTimeOriginal and
DateTime tags.
The subject or purpose of the image is specified using the ImageDescription tag. The subject distance and
placement in the image are specified in the SubjectDistance and SubjectLocation tags.
A sequence number can be assigned to an image using the ImageNumber tag. This provides a simple image
ordering capability, which can help readers determine the order in which multiple images were captured.
The name of the photographer or image creator is specified using the Artist tag as an ASCII string. The owner of
the image is specified using the Copyright tag as an ASCII string. Pertinent editorial information about the image
for news photo applications can be specified using the IPTC/NAA tag.
The SecurityClassification tag describes the security classification rating, classification authority and future
declassification of an image. The definition of this feature is described in the NITF (National Imagery Transmission
Format) specification (MIL-STD-2500).
A list documenting changes to the image data is specified in the ImageHistory tag. As changes are made,
additional information about the changes can be concatenated to the previous string.
An IPTC/NAA annotation tag can be placed in a child IFD. This is useful for entering alternative keywords for an
alternative rendering. Child IFD metadata is reconciled with IFD0 metadata by replacing corresponding IFD0
metadata. When keywords are placed in a child IFD0 they must contain all relevant keywords because when
reconciling the metadata, they will completely replace the set of keywords in the IPTC/NAA tag in IFD0.
<Editor's Note: The following tags will be updated:
The IPTC/NAA (International Press Telecommunications Council –
Newspaper Association of America) tag (33723) will be updated to allow use
of the XMP based IPTC Core" version 1.0 specification.
The definition of the copyright tag (33432) will be updated to encourage use
of the PLUS (Picture Licensing Universal System) LDF (License Data
Format). >
<Editor's Note: Consider additional metadata tags, such as Subject, Title,
Keywords and Rating tags>
4.11.2 Camera information metadata (Informative)
The camera’s “make” is specified in the Make tag. The camera’s “model” is specified in the Model tag. The version
of software and/or firmware used in the camera to capture and store the image file is encoded in the Software tag.
© ISO 2008 – All rights reserved
15
ISO/WD 12234-2
4.11.3 Camera and lens settings metadata (Informative)
These tag values provide the camera settings used when the image was captured. All these tags are optional. In
many cases, the settings can be given in either conventional units (seconds, etc.) or in APEX (Additive System of
Photographic Exposure) units.
The type of scene illuminant (daylight, tungsten, etc.) is encoded in the SceneIlluminant tag as one of several
enumerated VALUEs. Alternatively, the colour temperature of the illuminant is reported. The lens f-number (ratio of
lens aperture to focal length) is specified using the FNumber tag. Alternatively, the value is specified in the
Aperture tag using APEX units. The exposure time used to capture the image is specified using the
ExposureTime tag in fractional seconds. Alternatively, the value is specified in the ShutterSpeed tag using APEX
units.
The exposure bias (i.e. the amount of over- or under-exposure relative to a normal exposure as determined by the
camera's exposure system) used to capture the image is encoded in the ExposureBias tag using APEX units.
The metering mode, for example the camera’s method of spatially weighting the scene luminance values to
determine the sensor exposure, is encoded in the MeteringMode tag. Metering modes include simple average,
centre-weighted-average, etc. The exposure program used by the camera to set the appropriate capture trade-offs
(shutter speed, aperture, etc.) in order to properly expose the image being captured, is encoded within the
ExposureProgram tag. The camera self-timer mode of operation is specified within the SelfTimerMode tag.
The exposure index setting of the camera used to capture the image is encoded in the ExposureIndex tag.
ISO 12233:1998 is used in determining the exposure index value. An exposure index is a numerical value that is
inversely proportional to the exposure provided to an image sensor to obtain an image. Images obtained from a
camera using a range of exposure index values will normally provide a range of image quality levels.
The camera lens focal length in millimetres, used to capture the image, is encoded in the FocalLength tag. The
distance between the front nodal plane of the camera lens and the subject on which the camera is focused, is
specified in the SubjectDistance tag. The location of the centre of the main subject in the image is specified using
the SubjectLocation tag. The scene brightness measured in BVs (Brightness Value) present when the image was
captured, is encoded in the BrightnessValue tag using APEX units. The camera lens maximum aperture value, i.e.
maximum f/number, is specified using the MaxApertureValue tag.
Whether or not flash was used when the image was captured is encoded in the Flash tag. The amount of flash
energy, i.e. flash guide number used, is encoded in the FlashEnergy tag. The battery level is indicated by the
BatteryLevel tag.
4.11.4 Camera characterization metadata (Informative)
Camera characterization metadata tags are optional tags that describe the performance of the camera used to
capture the image file. The camera’s focal plane resolution in the X-dimension, i.e. the horizontal dimension when
the camera is normally oriented, is specified in the FocalPlaneXResolution tag. This information, along with the
focal plane resolution in the Y-dimension (FocalPlaneYResolution) and the resolution units
(FocalPlaneResolutionUnit) is used to relate the image data to the camera focal plane dimensions. The camera’s
“spatial frequency response”, which quantifies the camera resolution, is specified in the
SpatialFrequencyResponse tag. The camera’s “noise” level is specified in the Noise tag. The ISO speed ratings
of the electronic still-picture camera, specified in the ISOSpeedRatings tag, are values calculated from the
exposure provided at the focal plane of the camera and the resulting camera output signal characteristics. The two
ratings are the ISO speed, which is encoded as a single short value, and the ISO speed latitude, which is encoded
as two short values. Some electronic still-picture cameras do not have an ISO speed latitude.
The ISOSpeedRatings tag specifies a camera parameter, while the ExposureIndex tag specifies an image
parameter. The values encoded in the ISOSpeedRatings tag are those determined for the ISO speed of an
electronic still-picture camera. The value encoded in the ExposureIndex tag corresponds to the focal plane
exposure provided by the camera settings in capturing each image. For example, when the ISO speed ratings of a
camera are 50 for the primary noise speed, 25 for the saturation speed and 400 for the upper limit noise speed,
then the values 50 (25-400) are specified in the ISOSpeedRatings tag for all images taken with the camera. When
the same camera is used to capture an image with f-number and exposure time settings that produce an arithmetic
mean focal plane exposure of 1/20 lux second, the value 200/1 is encoded in the ExposureIndex tag. In summary,
16
© ISO 2008 – All rights reserved
ISO/WD 12234-2
the ExposureIndex tag tracks the exposure used to capture each image taken by the camera, while the
ISOSpeedRatings tag provides information about the measured ISO speed values of the camera.
4.12 Opcode processing instructions (Informative)
Opcode lists specify additional complex processing steps to be performed in conjunction with rendering. These are
specified in opcode tags OpcodeList1, OpcodeList2, OpcodeList3.
Features include correcting lens artefacts, removing dead pixels, and calculating sample values.
OpcodeList1 and OpcodeList2 apply only to Profile 2 CFA images. OpcodeList3 can be applied to any image.
5
The TIFF/EP File Structure
5.1
General
This section specifies how data items are stored in a TIFF/EP file
5.2
The TIFF/EP File Extension
The file extension of a TIFF/EP file name shall be ".tif" or ".dng" in upper, lower, or mixed case.
The file extension ".tif" shall specify a Profile 1 file.
The file extension ".dng" shall specify a Profile 2 file.
NOTE: As an embedded file does not have a file extension, the Profile type is conveyed through the PhotometricInterpretation
tag.
5.3
The TIFF/EP File Format
The TIFF/EP file shall have a file header, one or more image file directories, and data referenced by these image
file directories.
The byte order of the file shall be little-endian or big-endian, and shall be specified in the image file header.
The length of the file shall not exceed 4 294 967 295 bytes (= 2**32 - 1).
Unless otherwise stated, all data structures and data primitives shall start on an even byte offset.
5.4
The TIFF/EP Image File Header
A TIFF/EP file shall contain one image file header.
The image file header shall start at byte offset 0.
The image file header shall be as defined in Table 3. Image File Header.
Field
Order
Type
SHORT
Field Length
2
Version
SHORT
2
Link
LONG
4
© ISO 2008 – All rights reserved
Table 3. Image File Header
Description
The byte order used within the
file
The identifier and version for a
TIFF/EP file
Link to an Image File Directory
Value
'II' (4949h) = little-endian byte order
'MM' (4D4Dh) = big-endian byte order
42 (002Ah)
Byte offset of an IFD
17
ISO/WD 12234-2
NOTE: Future versions of this standard might use a higher version number.
5.5
The Image File Directory Structure
5.5.1 General
A TIFF/EP file shall contain one or more Image File Directories.
Image File Directories (IFDs) may be stored in any order in the file, and may be stored anywhere where space is
available.
5.5.2 The Image File Directory Tree
All IFDs shall be linked using IFD links into one tree structure with the Image File Header at its root.
IFD links shall be stored in the Link field in the Image File Header or in specific tags, such as SubIFDs and GPSInfo.
IFD link fields shall contain the byte offset of the IFD being linked to.
The byte offset of the first byte in the IFD shall be the byte offset used for linking to the IFD.
IFD links shall be one-way links. There shall be exactly one link to each IFD.
5.5.2.1 Sub-files
Two or more IFDs may be linked together into a sequence of IFDs using the EndLink field in the IFDs. IFD 0 shall
be the first IFD in the sequence and an EndLink field with the value 0 shall terminate the sequence.
A reader need not read other than the first image in the sequence.
5.5.3 The Image File Directory Format
An Image File Directory (IFD) contains Image File Directory Entries, which can hold data, pointers to data, and links
to other IFDs.
The IFD shall contain at least one IFD entry.
Within the IFD, the IFD entries shall be in ascending numerical order by tag.
Each tag shall occur at most once in the IFD.
The IFD shall have the format defined in Table 4. Image File Directory.
Field
TagCount
Type
SHORT
Entry 1 to n
Image File Directory
Entry
LONG
EndLink
Table 4. Image File Directory
Field length Description
2
The number of IFD
entries (n) in this IFD
12 x n
(n) IFD entries
4
Optional link to an IFD
Value
A count > 0
Byte offset of an IFD, or
0, if no IFD
The TagCount field shall contain the number of tags or IFD entries in this IFD.
The Image File Directory Entries shall be as defined in Section 5.6 The Image File Directory Entry
The EndLink field may contain the byte offset of another IFD. If not, the field shall be 0. See Section 5.5.2.1
18
© ISO 2008 – All rights reserved
ISO/WD 12234-2
5.6
The Image File Directory Entry
5.6.1 The Image File Directory Entry Format
An Image File Directory Entry (IFD entry) contains the values for a specified tag.
Each Image File Directory Entry (IFD entry) shall have the format defined in Table 5. Image File Directory Entry.
Table 5. Image File Directory Entry
Field length Description
2
The tag identifying the field
Field
Tag
Type
SHORT
Value
Tag as a number
Type
SHORT
2
The data type of the value
Type code
Count
LONG
4
The number of values of the indicated
type
A count > 0
ValueOffset
ValueOffset
4
The tag's value, directly or indirectly
The value of the tag
or byte offset
5.6.2 The Tag Field
The tag field shall specify the tag for which this Image File Directory Entry provides values.
Each tag shall be defined in Section 9.1 Tag Definitions.
5.6.3 The Type Field
The type field shall specify the data type of the tag's value.
The type field shall be encoded using a type code from Table 6. Definition of data types.
The tag definition specifies the data type(s) allowed for the tag. Some tag definitions allow more than one data type.
Readers shall use the type field, not the tag definition, for determining the data type of the tag's value.
When the type is UNDEFINED, the tag definition shall specify the structure of the data.
5.6.4 The Count Field
The count field shall indicate the number of items of the specified type. There shall be at least one item. Although
most IFD entries contain only a single value, all tag values are stored as one-dimensional arrays.
When the type is ASCII, the count shall include the terminating NUL. The count for multi-string fields shall be the
number of bytes in all strings in that field including their terminating NUL bytes.
When the type is UNDEFINED, the count shall be the number of bytes required to hold the data structure, and the
tag definition shall describe the data structure.
The count shall not include any pad bytes added after values with odd lengths.
Readers shall use the count field, not the tag definition, for determining the number of items in the value. This
allows a single procedure to retrieve any value.
NOTE: The count is expressed in items, not in bytes. For example, a single 16-bit word (SHORT) has a count of 1, not 2.
5.6.5 The ValueOffset Field
The field length of the value determines whether the ValueOffset field contains a byte offset or a tag value.
© ISO 2008 – All rights reserved
19
ISO/WD 12234-2
The field length of the value shall be the type's field length multiplied by the count.
When the field length exceeds 4 bytes, the ValueOffset field shall contain the byte offset of the stored value. The
value may be stored anywhere where space is available in the file.
When the field length does not exceed 4 bytes, the ValueOffset field shall contain the stored value.
When the field length is shorter than 4 bytes, the value shall be stored in the lower-numbered bytes within the field,
i.e. left justified.
Readers shall use the field length, not the tag definition, for determining the location of the tag's value. This allows
a single procedure to retrieve any value.
NOTE: The 4-byte ValueOffset field is not a LONG data type since, for values shorter than 4 bytes, the value is left-justified,
regardless of the byte order. To store the SHORT hex value “AB CD” in MM byte order, the 4 bytes are “AB CD xx xx”
(where xx indicates bytes not included in the value). The same hex value in II byte order, the 4 bytes are “CD AB xx
xx”.
5.7
The Data Types
The field types and their sizes shall be as defined in Table 6. Definition of data types.
Table 6. Definition of data types
Field Length Definition
Type Code
Type
1
BYTE
1
Unsigned 8-bit integer
2
ASCII
1
8-bit ASCII code. When Count is greater than 1, the last byte shall
be NUL (binary zero).
3
SHORT
2
Unsigned 16-bit integer
4
LONG
4
Unsigned 32-bit integer
5
RATIONAL
8
Two LONGs: the first represents the numerator of a fraction, the
second represents the denominator, which shall be non-zero
6
SBYTE
1
Signed 8-bit integer
7
UNDEFINED
1
8-bit byte. The tag definition shall describe the data structure
8
SSHORT
2
Signed 16-bit integer
9
SLONG
4
Signed 32-bit integer
10
SRATIONAL
8
Two SLONGs: the first represents the numerator of the fraction,
the second represents the denominator, which shall be non-zero
11
FLOAT
4
32-bit float in IEEE format
12
DOUBLE
8
64-bit float in IEEE format
NOTE: ASCII defines only code values 0 to 127. Code values 128 to 255 are platform-dependent.
For the ASCII type, each string shall be terminated with one NUL byte. There is no initial count byte as in Pascalstyle strings.
20
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Single strings should be used whenever possible. However, the tag definition may specify that an ASCII field may
contain multiple strings, in which case each string shall be terminated with one NUL byte. The strings following the
first string may begin on an odd byte offset.
Readers should accept BYTE, SHORT, and LONG values for any unsigned integer field. This allows a single
procedure to retrieve any unsigned integer value.
Readers should accept SBYTE, SSHORT, and SLONG for any signed integer field.
Readers should accept RATIONAL, SRATIONAL, FLOAT, and DOUBLE for any real field.
EXAMPLE: ImageWidth usually uses the SHORT type, but ImageWidth exceeding 65 535 will use the LONG type.
© ISO 2008 – All rights reserved
21
ISO/WD 12234-2
6
Image Storage
6.1
Supported image types
The file shall include one main image as defined in Section 8.2.3
√<Editors Note: Should thumbnails be required>
The file may include one thumbnail image as defined in Section 8.2.4.
The file may include any number of alternative images as defined in Section 8.2.5.
All images shall be stored as IFDs as defined in section 5.
6.2
Image Compression
6.2.1 Lossy Compression
A Profile 1 image with 8 bits per component data may be stored compressed as specified in ISO/IEC 10918-1, also
known as JPEG compression.
The compression shall be "baseline" JPEG (SOF0), not progressive or hierarchical.
<Editors Note: Do we allow other than SOF0 (baseline)? (SOF1 non-baseline lossy JPEG, SOF3 for lossless
JPEG )
Each compressed image strip or compressed image tile shall be stored as a data stream compliant with ISO/IEC
10918-1, either in interchange-format (including JPEG quantization and Huffman tables) or in abbreviated-imageformat (excluding JPEG quantization and Huffman tables).
When present, RowsPerStrip or TileLength shall be a multiple of 8 times the largest vertical sampling factor, and
TileWidth shall be a multiple of 8 times the largest horizontal sampling factor.
6.2.2 Lossless Compression
A Profile 1 image with 10, 12, 14 or 16 bits per component data may be stored compressed using JPEG-LS as
specified in ISO/IEC 14495-1.
Profile 1 readers are not required to support JPEG-LS compression.
A Profile 2 image (with 8, 10, 12, 14 or 16 bits per component data) may be stored compressed using JPEG-LS as
specified in ISO/IEC 14495-1.
Profile 2 readers shall support JPEG-LS compression.
For JPEG-LS, the internal width/length/components in the JPEG data stream need not match the strip's or tile's
width/length/components. Only the total sample counts need to match.
6.2.3 General on Compression
The following applies to both lossy and lossless compression.
Only the following markers may appear in the compressed data stream:
-
22
SOI
(start of image)
© ISO 2008 – All rights reserved
ISO/WD 12234-2
-
SOFn (start of frame)
-
SOS (start of scan)
-
EOI
-
DQT (define quantization tables)
-
DHT (define Huffman tables)
-
DRI
-
RSTn (restart)
-
APPn (application segments)
-
COM (comment)
(end of image)
(define restart interval)
All data streams shall use the same SOFn type.
Readers shall ignore APPn and COM segments.
When the JPEGTables tag is present, the compressed image data stream may reference the (quantization and
Huffman) tables in the JPEGTables tag, in addition to the tables in the data stream. There shall be no other
references between JPEG data streams.
7
Processing Architecture
The workflows and related constraints for images in TIFF
7.1
Processing model
7.2
Workflows
7.3
TIFF/EP profiles
7.3.1
Profile 1
7.3.2
Profile 2
7.4
Reader / writer requirements
<Editors Note: What do we want to accomplish here? What is the requirement to be satisfied? Is this the
right location?>
© ISO 2008 – All rights reserved
23
ISO/WD 12234-2
8
Tag usage
8.1
General
This section specifies which tags are required and optional by image, profile or IFD type using the TIFF/EP file
structure defined in Section 5.
The informative Annex TBD provides a table that lists tags for each image type.
8.2
Image File Directories
8.2.1 Required image tags
The tags BitsPerSample, Compression, ImageLength, ImageWidth, NewSubFileType, Orientation,
PhotometricInterpretation, PlanarConfiguration, and SamplesPerPixel shall be present when the IFD contains an
image.
The StripByteCounts, RowsPerStrip, and StripOffsets tag are present when the image data is stored as strips.
The TileByteCounts, TileLength, TileOffsets, and TileWidth tag are present when the image data is stored as tiles.
When PhotometricInterpretation = 6 (YCbCr), the ReferenceBlackWhite, YCbCrCoefficients, YCbCrPositioning,
YCbCrSubSampling tags are present.
8.2.2 Optional image tags
Any of the tags DateTime, ImageHistory, ImageNumber, ResolutionUnit, Software,
TimeZoneOffset, XResolution, YResolution may be present when the IFD contains an image.
SubjectLocation,
8.2.3 Main image IFD
The main image shall be in IFD 0.For the main image, NewSubFileType shall be 0 (main image).
The main image shall be a Profile 1 image or a Profile 2 image as defined in Sections 8.2.6 and 8.2.7.
The profile class of the file is the profile class of the main image.
NewSubFileType shall be 0 (main image).
A Profile 1 reader shall be able to display a Profile 1 main image.
A Profile 2 reader shall be able to display a Profile 2 main image.
8.2.4
Thumbnail image IFD
√<Editors note: Is this the full set of constraints? It should be specified here>
The thumbnail image is intended for preview of the main image.
The thumbnail shall be stored in the first IFD, not in IFD 0. That is, IFD 0 shall contain one SubIFDs tag, and the
first entry of the SubIFDs tag shall be the thumbnail IFD.
NOTE: This location does not match the location prescribed by EXIF 2.2 or TIFF/EP version 1.
√<Editor's Note:Clarify location. top-level ifd or first subifd. Match exif>
BitsPerSample shall be 8 bits per sample.
24
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Compression shall be 1 or 7 (uncompressed and JPEG compressed, respectively).
ImageLength and ImageWidth shall not exceed 512 (pixels).
<Editor's Note: The old limitation was 256 x 256 pixels, may be revised>
NewSubFileType shall be 1 (thumbnail).
Orientation shall be 1.
PhotometricInterpretation shall be 1, 2, or 6 (Gray, RGB, and YCbCr, respectively).
PlanarConfiguration shall be 1 (chunky).
SamplesPerPixel shall be 1 or 3.
The image shall be stored in strips.
Uncompressed strip sizes should not exceed 65 536 bytes.
Any of the optional tags listed in section 8.2.2 may be present.
The PreviewApplicationName, PreviewApplicationVersion, PreviewColorSpace, PreviewDateTime,
PreviewSettingsDigest, PreviewSettingsName tags may be present.
√<Editors Note: What is the default behaviour? What is the required behaviour? What is the
recommended behaviour?
A reader shall be able to display the thumbnail image.
8.2.5 Alternative image IFD
An alternative image may have unique parameter values, such as an image size, content, or rendering different
from the main image.
EXAMPLE: Alternative images include alternative renderings, alternative resolutions, alternative previews,
unrendered images, an original image, a raw image, etc.
NewSubFileType shall be 1001.H (alternative image).
The alternative image shall be a Profile 1 image or a Profile 2 image as defined in Sections 8.2.6 and 8.2.7.
A reader may ignore alternative images. Alternative images should not be displayed by default.
8.2.6 Profile 1 Image IFD
A Profile 1 image shall be a rendered image.
<Editors note: Rendered only?>
The PhotometricInterpretation value shall identify the image as a Profile 1 image.
BitsPerSample shall be 8, 10, 12, 14, or 16 bits per sample.
<Editors note: shall we allow other bps for uncompressed images>
Compression shall be 1 or 7 (uncompressed and JPEG compressed, respectively).
PhotometricInterpretation shall be 1, 2, or 6 (Gray, RGB, and YCbCr, respectively).
© ISO 2008 – All rights reserved
25
ISO/WD 12234-2
SamplesPerPixel shall be 1 or 3.
The image shall be stored in strips or tiles.
The required tags listed in section 8.2.1 shall be present.
Any of the optional tags listed in section 8.2.2 may be present.
The AdoptedWhitePoint, AsShotWhiteXY, CompressedBitsPerPixel, FillOrder, ICCProfile, Interlace, JPEGTables,
Noise, NoiseProfile, PreviewApplicationName, PreviewApplicationVersion, PreviewColorSpace, PreviewDateTime,
PreviewSettingsDigest, PreviewSettingsName ProfileCopyright, ProfileEmbedPolicy, ProfileToneCurve,
SampleFormat tags may be present.
8.2.7 Profile 2 image IFD
A Profile 2 image shall be a raw or unrendered image.
<Editors note: UnRendered only?>
The PhotometricInterpretation value shall identify the image as a Profile 2 image.
One of the AsShotNeutral and AsShotWhiteXY tags shall be present.
BitsPerSample shall be 8, 10, 12, 14, or 16 bits per sample.
<Editors note: shall we allow other bps for uncompressed images>
The ColorMatrix1 tags shall be present.
Compression shall be 1 or 7 (uncompressed and JPEG compressed, respectively).
PhotometricInterpretation shall be 32803 (CFA) or 34892 (Raw).
When PhotometricInterpretation = 32803 (CFA),
-
SamplesPerPixel shall be 1,
-
the CFAPattern, CFARepeatPatternDim tags shall be present, and
-
the BayerGreenSplit, CFAPlaneColor, OpcodeList1, OpcodeList2 tags may be present.
When PhotometricInterpretation = 34892 (Raw),
-
SamplesPerPixel shall be in the range [ 1, 7 ], and
-
the CFAPlaneColor tag shall be present.
The image shall be stored in strips or tiles.
The required tags listed in section 8.2.1 shall be present.
Any of the optional tags listed in section 8.2.2 may be present.
The ActiveArea, AdoptedWhitePoint, BaselineExposure, BestQualityScale, BlackLevel, BlackLevelDeltaH,
BlackLevelDeltaV, BlackLevelRepeatDim, CalibrationIlluminant1, CalibrationIlluminant2, CameraCalibration1,
CameraCalibration2, CFALayout, ChromaBlurRadius, ColorMatrix2, CompressedBitsPerPixel, DefaultCropOrigin,
DefaultCropSize, DefaultScale, DefectivePixels, DNGPrivateData, FillOrder, ForwardMatrix1, ForwardMatrix2,
JPEGTables, LinearizationTable, LinearResponseLimit, MaskedAreas, Noise, NoiseProfile, OpcodeList3,
ProfileCopyright, ProfileEmbedPolicy, ProfileToneCurve, Rawdatatype, RawDataUniqueID, RawImageDigest,
26
© ISO 2008 – All rights reserved
ISO/WD 12234-2
ReductionMatrix1, ReductionMatrix2, RowInterleaveFactor, SampleFormat, ShadowScale, SubTileBlockSize,
WhiteLevel tags may be present.
8.3
Metadata File Directories
Descriptive metadata except GPS data shall be stored in IFD 0.
IFD 0 shall contain the TIFF/EPStandardID tag.
IFD 0 may contain the file-specific tags Artist, Copyright, ImageDescription, IPTC/NAA, MakerNoteSafety,
OriginalRawFileData, OriginalRawFileDigest, OriginalRawFileName, SecurityClassification, SubIFDs, XMP.
IFD 0 may contain the capture-specific tags AnalogBalance, AntiAliasStrength, ApertureValue, BaselineNoise,
BaselineSharpness, BatteryLevel, BrightnessValue, CameraSerialNumber, DateTimeOriginal, ExposureBiasValue,
ExposureIndex,
ExposureProgram,
ExposureTime,
Flash,
FlashEnergy,
FNumber,
FocalLength,
FocalPlaneResolutionUnit, FocalPlaneXResolution, FocalPlaneYResolution, GPSInfo, ISOSpeedRatings, LensInfo,
LightSource, LocalizedCameraModel, Make, MaxApertureValue, MeteringMode, Model, OECF, SelfTimerMode,
SensingMethod,
ShutterSpeedValue,
SpatialFrequencyResponse,
SpectralSensitivity,
SubjectDistance,
TimeZoneOffset, UniqueCameraModel.
The GPSInfo tag shall link to the GPS IFD, as specified in the GPSInfo tag definition.
Image-specific metadata are stored in the image's IFD as specified in Section 8.2.
9
TIFF/EP tag and opcode definitions
9.1
9.1.1
Tag Definitions
General
This section defines all tags provided by this standard.
9.1.2
ActiveArea
Tag Name = ActiveArea
Tag = 50829 (C68D.H)
Type = SHORT or LONG
Count = 4
Value = <Top row, left column, bottom row, right column>
Default = <0, 0, ImageLength, ImageWidth>
The ActiveArea tag shall specify a rectangle of the active (non-masked) pixels of the sensor.
The values shall be the positions of the rectangle's top row, left column, bottom row, and right column within the
image.
<Editors note: do it this way or the way default crop does it?>
The rectangle shall not extend beyond the image, and shall include at least 1 pixel.
© ISO 2008 – All rights reserved
27
ISO/WD 12234-2
9.1.3
AdoptedWhitePoint
Tag Name = AdoptedWhitePoint
Tag = To be defined (TO BE DEFINED.H)
Type = ASCII
Count = length of string
Value = see below
Default = None
The AdoptedWhitePoint tag shall specify spectral power distribution values for the adopted white used to create the
image. The format shall be the same as for the SpectralSensitivity tag (except with just one column).
9.1.4
AnalogBalance
Tag Name = AnalogBalance
Tag = 50727 (C627.H)
Type = RATIONAL
Count = ColorPlanes
Value = See below
Default = All 1
The AnalogBalance tag shall specify the gain that has been applied to the stored raw values. The applied gain
should be analog, rather than digital.
The values shall be positive.
NOTE: Normally the stored raw values are not white balanced, since any digital white balancing will reduce
the dynamic range of the final image if the user decides to later adjust the white balance. However, when
camera hardware is capable of white balancing the colour channels before the signal is digitized, it can
improve the dynamic range of the final image.
9.1.5
AntiAliasStrength
Tag Name = AntiAliasStrength
Tag = 50738 (C632.H)
Type = RATIONAL
Count = 1
Value = Relative strength of the camera's anti-alias filter
Default = 1
See also BaselineSharpness
28
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The AntiAliasStrength tag shall specify the strength of the camera's anti-alias filter (also known as Optical LowPass
FIlter, OLPF).
A value of 0 shall mean no anti-alias filter (that is, the camera is prone to aliasing artefacts with some subjects).
A value of 1 shall mean a strong anti-alias filter (that is, the camera almost never has aliasing artefacts).
The value shall not exceed 1.
NOTE: This tag overlaps in functionality with the BaselineSharpness tag.
The primary difference is the AntiAliasStrength tag is used as a hint to the de-mosaic algorithm, while the
BaselineSharpness tag is used as a hint to a sharpening algorithm applied later in the processing pipeline.
<Editor's NOTE: More information is needed to define this tag value>
9.1.6
ApertureValue
Tag Name = ApertureValue
Tag = 37378 (9202.H)
Type = SRATIONAL
<Editors note: SRATIONAL OR RATIONAL>
Count = 1
Value = see below
Default = None
The ApertureValue tag shall specify the actual lens aperture (Av) used when the image was captured, in APEX
units. The value should be in the range [0.00, 99.99].
NOTE: In APEX units, a value of 0.0 corresponds to f/1.0, and a value of 1.0 corresponds to f/1.4.
9.1.7
Artist
Tag Name = Artist
Tag = 315 (013B.H)
Type = ASCII
Count = length of string
Value = see below
Default = None
The Artist tag shall specify the name of the camera owner or image creator.
9.1.8
AsShotNeutral
Tag Name = AsShotNeutral
Tag = 50728 (C628.H)
© ISO 2008 – All rights reserved
29
ISO/WD 12234-2
Type = SHORT or RATIONAL
Count = ColorPlanes
Value = See below
Default = None
See also AsShotWhiteXY
The AsShotNeutral tag shall specify the selected white balance at time of capture, encoded as the coordinates of a
perfectly neutral colour in linear reference space values.
The values shall be positive.
When the AsShotWhiteXY tag is present, the AsShotNeutral tag shall not be present.
9.1.9
AsShotWhiteXY
Tag Name = AsShotWhiteXY
Tag = 50729 (C629.H)
Type = RATIONAL
Count = 2
Value = See below
Default = None
See also AsShotNeutral
The AsShotWhiteXY tag shall specify the selected white balance at time of capture, encoded as x-y chromaticity
coordinates.
The values shall be in the open interval (0, 1).
When the AsShotNeutral tag is present, the AsShotWhiteXY tag shall not be present.
9.1.10 BaselineExposure
Tag Name = BaselineExposure
Tag = 50730 (C62A.H)
Type = SRATIONAL
Count = 1
Value = See below
Default = 0
The BaselineExposure tag shall specify a default exposure adjustment in ExposureValue (APEX) units.
For positive values the reader should produce a brighter image, and for negative values, a darker image.
30
© ISO 2008 – All rights reserved
ISO/WD 12234-2
<Editors note: should or may?>
NOTE: Camera models vary in the trade-off they make between highlight headroom and shadow noise.
Some leave a significant amount of highlight headroom during a normal exposure. This allows significant
negative exposure compensation to be applied during raw conversion, but also means normal exposures
will contain more shadow noise.
Other models leave less headroom during normal exposures. This allows for less negative exposure
compensation, but results in lower shadow noise for normal exposures.
Because of these differences, a reader might vary the zero point of its exposure compensation control from
model to model. The BaselineExposure tag can provide this information.
<Editor's NOTE: More information is needed to define this tag value>
9.1.11 BaselineNoise
Tag Name = BaselineNoise
Tag = 50731 (C62B.H)
Type = RATIONAL
Count = 1
Value = See below
Default = 1
The BaselineNoise tag shall specify the relative noise level of the camera model at an Exposure Index (EI) value of
100, compared to a reference camera model at the same Exposure Index.
<Editors note: we need the camera reference model>
A value of 1 shall mean that the camera has the same noise level as the reference camera model.
NOTE: Noise levels tend to vary approximately with the square root of the EI value, and a reader can use
this value, combined with the current EI, to estimate the relative noise level of the current image.
<Editor's NOTE: More information is needed to define this tag value>
9.1.12 BaselineSharpness
Tag Name = BaselineSharpness
Tag = 50732 (C62C.H)
Type = RATIONAL
Count = 1
Value = See below
Default = 1
See also AntiAliasStrength
© ISO 2008 – All rights reserved
31
ISO/WD 12234-2
The BaselineSharpness tag shall specify the relative amount of sharpening recommended for this camera model,
compared to a reference camera model.
A value of 0 shall mean no sharpening.
A value of 1 shall mean reference-level sharpening.
NOTE: Camera models vary in the strengths of their anti-aliasing or OLPF filters. Cameras with weak or no
filters require less sharpening than cameras with strong anti-aliasing filters.
<Editor's NOTE: More information is needed to define this tag value>
9.1.13 BatteryLevel
Tag Name = BatteryLevel
Tag = 33423 (828F.H)
Type = RATIONAL or ASCII
Count = 1 (if Type = RATIONAL) or length of string (if Type = ASCII)
Value = see below
Default = None
The BatteryLevel tag shall specify the camera’s battery level at the time of image capture. It should be specified as
a ratio of fullness. A full battery level should be indicated by 1/1, half-full battery by 1/2. Alternatively, an ASCII
string describing the battery level may be present.
9.1.14 BayerGreenSplit
Tag Name = BayerGreenSplit
Tag = 50733 (C62D.H)
Type = LONG
Count = 1
Value = See below
Default = 0
The BayerGreenSplit tag shall specify, in arbitrary units, how closely the values of the green pixels in the
blue/green rows track the values of the green pixels in the red/green rows.
A value of 0 shall mean the two kinds of green pixels track closely, while a non-zero value shall mean they
sometimes diverge.
A value of n shall mean that the maximum relative divergence is approximately n / WhiteLevel
BayerGreenSplit shall apply only to CFA images using a Bayer pattern filter array.
NOTE: The useful range for this tag is from 0 (no divergence) to about 5000 (quite large divergence).
<Editor's NOTE: More information is needed to define this tag value>
32
© ISO 2008 – All rights reserved
ISO/WD 12234-2
9.1.15 BestQualityScale
Tag Name = BestQualityScale
Tag = 50780 (C65C.H)
Type = RATIONAL
Count = 1
Value = see below
Default = 1
See also DefaultScale
The BestQualityScale tag shall specify the amount by which the values of the DefaultScale tag shall be multiplied
to achieve the best quality image size.
The value shall be positive.
NOTE: For some cameras, the best possible image quality is not achieved by preserving the total pixel
count during conversion. For example, some images have maximum detail when their total pixel count is
doubled.
9.1.16 BitsPerSample
Tag Name = BitsPerSample
Tag = 258 (0102.H)
Type = SHORT
Count = SamplesPerPixel
Value = A list of identical integers in the range [8, 32]
Default = None
See also SamplesPerPixel
The BitsPerSample tag shall specify the number of bits in each component of a pixel. The number of bits shall be in
the range [8, 32]. All components shall have the same number of bits, regardless of number of components.
The number of components shall be as specified by the SamplesPerPixel tag.
When BitsPerSample is not equal to 8, 16, or 32, then the sample bits shall be packed into bytes in big-endian
order, and the FillOrder tag value shall be 1, regardless of the byte order of the file.
NOTE: The BitsPerSample tag does not specify the data type of the samples. This is specified in the
SampleFormat tag.
9.1.17 BlackLevel
Tag Name = BlackLevel
Tag = 50714 (C61A.H)
© ISO 2008 – All rights reserved
33
ISO/WD 12234-2
Type = SHORT or LONG or RATIONAL
Count = BlackLevelRepeatRows × BlackLevelRepeatCols × SamplesPerPixel
Value = An array of pixel values
Default = 0
See also ActiveArea, BlackLevelRepeatDim, BlackLevelDeltaH, and BlackLevelDeltaV
The BlackLevel tag shall specify the pixel values for zero light, as a repeating pattern.
The origin of this pattern shall be the top-left corner of the ActiveArea rectangle.
The values shall be pixel values, stored in chunky image sample order.
The pixel values for zero light obtained from combining the BlackLevel, BlackLevelDeltaH, and BlackLevelDeltaV
tags over the ActiveArea shall be less than the WhiteLevel value for the corresponding pixel.
9.1.18 BlackLevelDeltaH
Tag Name = BlackLevelDeltaH
Tag = 50715 (C61B.H)
Type = SRATIONAL
Count = The width of the ActiveArea rectangle
Value = See below
Default = All 0
See also ActiveArea, BlackLevel
The BlackLevelDeltaH tag shall specify the difference between the pixel values for zero light for each column and
the pixel values for zero light in the BlackLevel tag.
This tag may be present when the pixel values for zero light are a function of the image column.
When SamplesPerPixel is not equal to one, this single table shall apply to all the samples for each pixel.
9.1.19 BlackLevelDeltaV
Tag Name = BlackLevelDeltaV
Tag = 50716 (C61C.H)
Type = SRATIONAL
Count = The length of the ActiveArea rectangle
Value = See below
Default = All 0
See also ActiveArea, BlackLevel
34
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The BlackLevelDeltaV tag shall specify the difference between the pixel values for zero light for each row and the
pixel values for zero light in the BlackLevel tag.
This tag may be present when the pixel values for zero light are a function of the image row.
When SamplesPerPixel is not equal to one, this single table shall apply to all the samples for each pixel.
9.1.20 BlackLevelRepeatDim
Tag Name = BlackLevelRepeatDim
Tag = 50713 (C619.H)
Type = SHORT
Count = 2
Value = <BlackLevelRepeatRows, BlackLevelRepeatCols>
Default = <1, 1>
See also BlackLevel
The BlackLevelRepeatDim tag shall specify the repeat pattern size for the BlackLevel tag. The value shall be the
vertical and horizontal dimensions of the pattern. The pattern shall contain at least 1 pixel.
9.1.21 BrightnessValue
Tag Name = BrightnessValue
Tag = 37379 (9203.H)
Type = SRATIONAL
Count = 1 or 2
Value = see below
Default = None
The BrightnessValue tag shall specify the Brightness Value (BV) that was measured when the image was captured,
in APEX units.
EXAMPLE: The expected maximum value is approximately 13.00 corresponding to a picture taken of a snow scene
on a sunny day and the expected minimum value is approximately -3.00 corresponding to a night scene.
When the exact value is known, the value shall be specified using a single number. Otherwise, two numbers shall
be present to specify the range of the value. In this case, the first number shall be the minimum value and the
second number shall be the maximum value.
© ISO 2008 – All rights reserved
35
ISO/WD 12234-2
The fields shall be defined as follows:
Table 7 BrightnessValue
Value
Field No.
0
Exact BrightnessValue, if only one value is present. Minimum BrightnessValue of
the range of uncertainty, if two values are present
1 (optional)
Maximum BrightnessValue of the range of uncertainty, if two values are present
9.1.22 CalibrationIlluminant1
Tag Name = CalibrationIlluminant1
Tag = 50778 (C65A.H)
Type = SHORT
Count = 1
Value = See below
Default = 0 (= unknown)
See also LightSource, CalibrationIlluminant2, ColorMatrix1, CameraCalibration1, ReductionMatrix1
The CalibrationIlluminant1 tag shall specify the illuminant selected for the first set of colour calibration tags
(ColorMatrix1, CameraCalibration1, ReductionMatrix1).
The value shall be one of the values specified for the LightSource tag.
The value shall not be 0, when the CalibrationIlluminant2 tag is present.
9.1.23 CalibrationIlluminant2
Tag Name = CalibrationIlluminant2
Tag = 50779 (C65B.H)
Type = SHORT
Count = 1
Value = See below
Default = None
See also LightSource, CalibrationIlluminant1, ColorMatrix2, CameraCalibration2, ReductionMatrix2
The CalibrationIlluminant2 tag shall specify the illuminant selected for the second set of colour calibration tags
(ColorMatrix2, CameraCalibration2, ReductionMatrix2).
The value shall be one of the values specified for the LightSource tag, except the value 0.
9.1.24 CameraCalibration1
Tag Name = CameraCalibration1
Tag = 50723 (C623.H)
36
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Type = SRATIONAL
Count = ColorPlanes × ColorPlanes
Value = See below
Default = Identity matrix
See also ColorMatrix1, CalibrationIlluminant1
The CameraCalibration1 tag shall specify a calibration matrix that transforms reference camera native space
values to individual camera native space values under the first calibration illuminant.
The matrix shall be stored in row scan order. The matrix shall be invertible.
NOTE: This matrix is stored separately from the matrix specified by the ColorMatrix1 tag to allow raw
converters to swap in replacement colour matrices based on UniqueCameraModel tag, while still taking
advantage of any per-individual camera calibration performed by the camera manufacturer.
9.1.25 CameraCalibration2
Tag Name = CameraCalibration2
Tag = 50724 (C624.H)
Type = SRATIONAL
Count = ColorPlanes × ColorPlanes
Value = See below
Default = Identity matrix
See also ColorMatrix2, CalibrationIlluminant2
The CameraCalibration2 tag shall specify a calibration matrix that transforms reference camera native space
values to individual camera native space values under the second calibration illuminant.
The matrix shall be stored in row scan order. The matrix shall be invertible.
NOTE: This matrix is stored separately from the matrix specified by the ColorMatrix2 tag to allow raw
converters to swap in replacement colour matrices based on UniqueCameraModel tag, while still taking
advantage of any per-individual camera calibration performed by the camera manufacturer.
9.1.26 CameraSerialNumber
Tag Name = CameraSerialNumber
Tag = 50735 (C62F.H)
Type = ASCII
Count = Length of string
Value = Null-terminated string
Default = None
© ISO 2008 – All rights reserved
37
ISO/WD 12234-2
See also Make, Model, Software, UniqueCameraModel, LocalizedCameraModel
The CameraSerialNumber tag shall specify the serial number of the camera or camera body that captured the
image. The string may contain any printable ASCII characters, not only digits.
9.1.27 CFALayout
Tag Name = CFALayout
Tag = 50711 (C617.H)
Type = SHORT
Count = 1
Value = see below
Default = 1
The CFALayout tag shall specify the spatial layout of the CFA.
The value and layout shall be one of the following:
1 = Rectangular (or square) layout
2 = Staggered layout A: even columns shall be offset down by 1/2 row
3 = Staggered layout B: even columns shall be offset up by 1/2 row
4 = Staggered layout C: even rows shall be offset right by 1/2 column
5 = Staggered layout D: even rows shall be offset left by 1/2 column.
9.1.28 CFAPattern
Tag Name = CFAPattern
Tag = 33422 (828E.H)
Type = BYTE
Count = CFARepeatRows × CFARepeatCols
Value = An array of filter colours
Default = None
See also CFARepeatPatternDim, PhotometricInterpretation
The CFAPattern tag shall specify the filter colours in the CFA of the image sensor, as a repeating pattern.
The origin of this pattern shall be the top-left corner of the ActiveArea rectangle.
The values shall be the filter colours, stored in image pixel order.
The values and corresponding filter colours shall be from the following set: 0 = Red, 1 = Green, 2 = Blue, 3 = Cyan,
4 = Magenta, 5 = Yellow, and 6 = White.
38
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The tag shall be present when PhotometricInterpretation = 32803 (CFA).
The tag may be present when PhotometricInterpretation = 2 (RGB) or 6 (YCbCr) or 34892 (Raw) and
SensingMethod = 2 (one chip), where it shall indicate the image sensor's sampling positions.
EXAMPLE: CFARepeatPatternDim = <2, 2>, and CFAPattern = <1, 0, 2, 1> (Green, Red, Blue, Green) corresponds to the CFA
pattern shown below.
Green
Table 8 Bayer Pattern Layout
Red
Green Red
Green
Red
Blue
Green
Blue
Green
Blue
Green
Green
Red
Green
Red
Green
Red
Blue
Green
Blue
Green
Blue
Green
9.1.29 CFAPlaneColor
Tag Name = CFAPlaneColor
Tag = 50710 (C616.H)
Type = BYTE
Count = ColorPlanes
Value = See below
Default = <0, 1, 2> (corresponding to red, green, blue)
See also CFAPattern
The CFAPlaneColor tag shall specify the mapping of CFAPattern colours to the colour planes in LinearRaw space.
The value in position i shall specify the CFA colour code mapped to plane i.
There shall be a one-to-one mapping between the colours present in the CFAPattern and the colour planes in
LinearRaw space.
The CFAPlaneColor tag shall be present for non-RGB CFA images.
9.1.30 CFARepeatPatternDim
Tag Name = CFARepeatPatternDim
Tag = 33421 (828D.H)
Type = SHORT
Count = 2
Value = <CFARepeatRows, CFARepeatCols>
Default = None
See also CFAPattern, PhotometricInterpretation
© ISO 2008 – All rights reserved
39
ISO/WD 12234-2
The CFARepeatPatternDim tag shall specify the repeat pattern size for the CFAPattern tag. The values shall be the
vertical and horizontal dimensions of the pattern. The pattern shall contain at least 1 filter colour.
The tag shall be present when PhotometricInterpretation = 32803 (CFA). The tag may be present when
PhotometricInterpretation = 2 (RGB) or 6 (YCbCr) or 34892 (Raw) and SensingMethod = 2 (one chip), where it
shall indicate the original sensor sampling positions.
9.1.31 ChromaBlurRadius
Tag Name = ChromaBlurRadius
Tag = 50737 (C631.H)
Type = RATIONAL
Count = 1
Value = Chroma blur radius in pixels
Default = See below
The ChromaBlurRadius tag shall specify the amount of chroma blur that should be applied to the image, as a pixel
radius.
When this tag is omitted, the reader may use its default amount of chroma blurring.
NOTE: Normally this tag is only included for non-CFA images, since the amount of chroma blur required for
mosaic images is highly dependent on the de-mosaic algorithm, in which case the reader's default value is
likely optimized for its particular de-mosaic algorithm.
<Editor's NOTE: More information is needed to define this tag value>
9.1.32 ColorMatrix1
Tag Name = ColorMatrix1
Tag = 50721 (C621.H)
Type = SRATIONAL
Count = ColorPlanes × 3
Value = See below
Default = None
See CalibrationIlluminant1, CameraCalibration1, ReductionMatrix1
The ColorMatrix1 tag shall specify a transformation matrix that converts CIE XYZ values to reference camera
native colour space values, under the first calibration illuminant.
The matrix values shall be stored in row scan order.
9.1.33 ColorMatrix2
Tag Name = ColorMatrix2
Tag = 50722 (C622.H)
40
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Type = SRATIONAL
Count = ColorPlanes × 3
Value = See below
Default = None
See CalibrationIlluminant2, CameraCalibration2, ReductionMatrix2
The ColorMatrix2 tag shall specify a transformation matrix that converts CIE XYZ values to reference camera
native colour space values, under the second calibration illuminant.
The matrix values shall be stored in row scan order.
9.1.34 CompressedBitsPerPixel
Tag Name = CompressedBitsPerPixel
Tag = 37122 (9102.H)
Type = RATIONAL
Count = 1
Value = see below
Default = None
The CompressedBitsPerPixel tag shall specify the average number of bits per pixel used to store a compressed
image.
9.1.35 Compression
Tag Name = Compression
Tag = 259 (0103.H)
Type = SHORT
Count = 1
Value = see below
Default = None
See also JPEGTables
The Compression tag shall specify the compression scheme used to store the image data.
Section 6.2 specifies the JPEG image compression formats.
The value shall be one of the following:
© ISO 2008 – All rights reserved
41
ISO/WD 12234-2
Value
1
7
Table 9 Compression
Compression method
No compression. Data shall be packed as tightly as possible into bytes with up to 7 bits of
padding at the end of each row to assure that each row's data ends on a byte boundary.
TIFF/JPEG compression compliant with Section 6.2. The JPEG bit stream defines whether
Baseline DCT JPEG or other JPEG version is used.
9.1.36 Copyright
Tag Name = Copyright
Tag = 33432 (8298.H)
Type = ASCII
Count = length of string
Value = see below
Default = None
<Editor's Note: The definition of the copyright tag (33432) will be updated to
encourage use of the PLUS (Picture Licensing Universal System) LDF
(License Data Format). >
The Copyright tag shall specify the copyright notice of the copyright holder. The complete copyright statement
should be included in the tag with dates and statements of claims. This tag may list the royalty clearance house. An
empty string shall indicate “unknown”.
9.1.37 DateTime
Tag Name = DateTime
Tag = 306 (0132.H)
Type = ASCII
Count = 20
Value = TIFF-formatted date string
Default = None
See TimeZoneOffset
The DateTime tag shall specify the date and time when the image was last modified.
The string shall be formatted as YYYY:MM:DD HH:MM:SS, with one space between the date and time, a 24-hour
clock, and a null-termination byte. When the writer has no clock, or the clock is disabled, the time should be
indicated as 0000:00:00 00:00:00
NOTE: This is not the ISO 8601 date format.
9.1.38 DateTimeOriginal
Tag Name = DateTimeOriginal
Tag = 36867 (9003.H)
Type = ASCII
42
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Count = 20
Value = TIFF-formatted date string
Default = None
See TimeZoneOffset
The DateTimeOriginal tag shall specify the date and time when the original image was captured. This tag should
never be changed after it is first written in the camera.
The string shall be formatted as YYYY:MM:DD HH:MM:SS, with one space between the date and time, a 24-hour
clock, and a null-termination byte. When the writer has no clock, or the clock is disabled, the time should be
indicated as 0000:00:00 00:00:00
NOTE: This is not the ISO 8601 date format.
9.1.39 DefaultCropOrigin
Tag Name = DefaultCropOrigin
Tag = 50719 (C61F.H)
Type = SHORT or LONG or RATIONAL
Count = 2
Value = <DefaultCropOriginH, DefaultCropOriginV>
Default = <0, 0>
See DefaultCropSize
The DefaultCropOrigin tag shall specify the origin of the final image area relative to the top-left corner of the
ActiveArea rectangle.
The values shall be the positions of the left column and the top row of the final image in the ActiveArea rectangle.
When the DefaultCropOrigin tag is present, the DefaultCropSize tag shall also be present.
NOTE: Raw images often store extra pixels around the edges of the final image. These extra pixels help
prevent interpolation artefacts near the edges of the final image and should be cropped away after
processing.
9.1.40 DefaultCropSize
Tag Name = DefaultCropSize
Tag = 50720 (C620.H)
Type = SHORT or LONG or RATIONAL
Count = 2
Value = <DefaultCropSizeH, DefaultCropSizeV>
Default = <ImageWidth, ImageLength>
The DefaultCropSize tag shall specify the size of the final image.
© ISO 2008 – All rights reserved
43
ISO/WD 12234-2
The values shall be the number of columns and the number of rows of the ActiveArea.
<Editors note: need a single way to order col/row, it’s diff in diff places>
The final image shall not extend beyond the ActiveArea.
NOTE: Raw images often store extra pixels around the edges of the final image. These extra pixels help
prevent interpolation artefacts near the edges of the final image and should be cropped away after
processing.
9.1.41 DefaultScale
Tag Name = DefaultScale
Tag = 50718 (C61E.H)
Type = RATIONAL
Count = 2
Value = <DefaultScaleH, DefaultScaleV>
Default = <1, 1>
The DefaultScale tag shall specify the default scale factors for each direction to convert the image pixels to square
pixels.
The values shall be the horizontal and vertical scale factors, respectively.
The values shall be positive.
DefaultScale shall be present for images with non-square pixels.
NOTE: Typically these factors are selected to approximately preserve total pixel count. For CFA images
that use CFALayout equal to 2, 3, 4, or 5, some sensors have these two values usually differ by a factor of
2.
9.1.42 DefectivePixels
Tag Name = DefectivePixels
Tag = To be defined (TO BE DEFINEDFF.H)
Type = UNDEFINED
Count = length of the data in bytes
Value = See below
Default = None
The Defective pixels tag shall specify the locations and types of defective or invalid pixels in the image.
The tag may be present when the image contains defective pixels.
Defects shall be encoded using the structure defined in the following table.
44
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Table 10 DefectivePixels
Field length
Description
in bytes
n
LONG
4
Number of single pixel defects
m
LONG
4
Number of multi-pixel defects
PointDefect [1..n]
LONG [2] [n]
8×n
List of pixel locations
BoxDefect [1..m]
(LONG [4] + BYTE) [m]
17 × m
List of rectangles with characterization code
Each PointDefect field shall have the format <x, y>, where x shall be a column position, and y shall be a row
position of a defect pixel in the (unmasked) image.
Field
Type
Each BoxDefect field shall have the format <x1, y1, x2, y2, c>, where x1 and x2 shall be the left and right columns,
y1 and y2 shall be the top and bottom rows of a rectangle of defect pixels in the image, and c shall be a defect
characterization code. Pixel positions <x1, y1> and <x2, y2> shall be included in this rectangle.
<Editors note: The characterization code is redundant for the cases listed below>
The value for c shall be one of the following:
1 = a pixel cluster. This is the general case intended for small contiguous pixel defects.
2 = a column defect. In this case, x2 = x1.
3 = a row defect. In this case, y2 = y1.
4 = a double column defect. In this case, x2 = x1 + 1.
5 = a double row defect. In this case, y2 = y1 + 1.
All uncorrected defective pixels should be stored in the tag. Vendors that wish to maintain additional private data
for improved or faster defective pixel correction may do so in a separate vendor section.
When an image is rotated or mirrored or orientation change, the DefectivePixels tag shall be updated.
NOTE: It is convenient to use a single structure (the rectangle) for pixel clusters and line segment defects
and to characterize each rectangular defect by means of an additional characterization code. Good pixels
within a rectangular defect are also definable.
<Editors note: do we need a characterization code for good pixels>
9.1.43 DNGPrivateData
Tag Name = DNGPrivateData
Tag = 50740 (C634.H)
Type = BYTE
Count = length of the data in bytes
Value = See below
Default = None
The DNGPrivateData tag shall specify private data for use by the camera manufacturer's reader.
© ISO 2008 – All rights reserved
45
ISO/WD 12234-2
The private data shall follow these rules:
-
The private data shall start with a null-terminated ASCII string identifying the data.
The first part of this string shall be the manufacturer's name, to avoid conflicts between manufacturers.
The private data shall be self-contained.
All offsets within the private data shall be offsets relative to the start of the private data, and shall not point to
bytes outside the private data.
The private data shall be byte-order independent.
If a DNG file is converted from a big-endian file to a little-endian file, the data shall remain valid.
NOTE: DNGPrivateData provides a way for camera manufacturers to store private data in the DNG file for
use by their own readers, and to have that data preserved by programs that edit DNG files.
9.1.44 ExposureBiasValue
Tag Name = ExposureBiasValue
Tag = 37380 (9204.H)
Type = SRATIONAL
Count = 1 or 2
Value = see below
Default = None
The ExposureBiasValue tag shall specify the actual exposure bias (the amount of over- or under-exposure relative
to a normal exposure as determined by the camera's exposure system) used when the image was captured, in
APEX units. The value shall be the number of exposure values (stops).
EXAMPLE: -1.00 indicates 1 EV (1 stop) underexposure or half the normal exposure.
The values should be in the range [-99.99, 99.99].
When the exact value is known, the value shall be specified using a single number. Otherwise, two numbers shall
be present to specify the range of the value. In this case, the first number shall be the minimum value and the
second number shall be the maximum value.
The fields shall be defined as follows:
Table 11 ExposureBiasValue
Value
Field No.
0
1 (optional)
Exact ExposureBiasValue, if only one value is present. Minimum
ExposureBiasValue of the range of uncertainty, if two values are present
Maximum ExposureBiasValue of the range of uncertainty, if two values are present
9.1.45 ExposureIndex
Tag Name = ExposureIndex
Tag = 37397 (9215.H)
Type = RATIONAL
Count = 1 or 2
46
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Value = Any positive rational number
Default = None
See ShutterSpeedValue, ApertureValue, BrightnessValue, and Annex X
The ExposureIndex tag shall specify the exposure index (ISO) set on the camera when the image was captured.
The exposure index may be set by the user or by the camera automatically. The exposure index setting shall be
the set, or in the case of “auto ISO” the reported value, without adjustment for any exposure bias, additional
highlight headroom, etc.
NOTE: The actual exposure index used can be calculated from the ShutterSpeedValue, ApertureValue, and
BrightnessValue tags as described in Annex X.
<Editors note: need annex x>
When the exact value is known, the value shall be specified using a single number. Otherwise, two numbers shall
be present to specify the range of the value. In this case, the first number shall be the minimum value and the
second number shall be the maximum value.
The fields shall be defined as follows:
Table 12 ExposureIndex
Value
Field No.
0
1 (optional)
Exact ExposureIndex, if only one value is present. Minimum ExposureIndex of the
range of uncertainty, if two values are present
Maximum ExposureIndex of the range of uncertainty, if two values are present
9.1.46 ExposureProgram
Tag Name = ExposureProgram
Tag = 34850 (8822.H)
Type = SHORT
Count = 1
Value = see below
Default = None
The ExposureProgram tag shall specify the class of exposure program that the camera used to set exposure when
the image was captured.
The value and meaning shall be one of the following:
0 = Unidentified
1 = Manual
2 = Program Normal (intended for general-purpose auto-exposure)
3 = Aperture Priority (intended for user-set aperture and camera-selected shutter speed)
4 = Shutter Priority (intended for user-set shutter speed and camera-selected aperture)
5 = Program Creative (biased toward greater “depth of field”)
© ISO 2008 – All rights reserved
47
ISO/WD 12234-2
6 = Program Action (biased toward faster “shutter speed”)
7 = Portrait Mode (intended for close-up photos with the background out-of-focus)
8 = Landscape Mode (intended for landscapes with the background in good focus)
9.1.47 ExposureTime
Tag Name = ExposureTime
Tag = 33434 (829A.H)
Type = RATIONAL
Count = 1 or 2
Value = see below
Default = None
The ExposureTime tag shall specify the actual exposure time used when the image was captured. The units shall
be seconds.
EXAMPLE: An exposure time of 1/60 second is encoded as 1/60.
When the exact value is known, the value shall be specified using a single number. Otherwise, two numbers shall
be present to specify the range of the value. In this case, the first number shall be the minimum value and the
second number shall be the maximum value
The fields shall be defined as follows:
Field No.
0
1 (optional)
Table 13 ExposureTime
Value
Exact Exposure Time, if only one value is present. Minimum Exposure Time of the
range of uncertainty, if two values are present
Maximum Exposure Time of the range of uncertainty, if two values are present
9.1.48 FillOrder
Tag Name = FillOrder
Tag = 266 (010A.H)
Type = SHORT
Count = 1
Value = 1
Default = 1
See also BitsPerSample
The FillOrder tag shall specify the logical order of bits within a byte of image sample data.
The value shall be 1. Pixels with lower column values shall be stored in the higher-order bits of the byte.
NOTE: It is easy and inexpensive for writers to reverse bit order by using a 256-byte lookup table.
48
© ISO 2008 – All rights reserved
ISO/WD 12234-2
9.1.49 Flash
Tag Name = Flash
Tag = 37385 (9209.H)
Type = SHORT
Count = 1
Value = see below
Default = None
See also FlashEnergy
The Flash tag shall specify whether or not flash was used when the image was captured.
© ISO 2008 – All rights reserved
49
ISO/WD 12234-2
The field shall be subdivided into the following bit fields, with meanings as specified below:
Table 14 Flash bit fields
Bit field values
Bit 0: Flash Fire Status bit:
Interpretation
0 = Flash didn't fire
1 = Flash fired
Bits 1 to 2: Flash Return Sense bits:
00 = No flash return sensing capability
01 = RESERVED
10 = Flash return not sensed
11 = Flash return sensed
Bits 3 to 4: Flash Mode bits:
00 = Unknown flash mode
01 = Fill Flash mode (Flash is always on)
10 = Flash off mode (Flash is always off)
11 = Auto flash mode (Flash is on for dark scenes only, camera
controlled)
Bit 5: Flash Unit Present bit:
0 = Camera has flash unit
1 = Camera does not have a flash unit
Bits 6 to 15:
0 (reserved)
The composite value and flash status shall be one of the following:
0 = Flash did not fire
1 = Flash fired
5 = Flash fired, Flash return not sensed
7 = Flash fired, Flash return sensed
9 = Flash fired, Fill flash mode, Camera has no flash return sensing capability
13 = Flash fired, Fill flash mode, Flash return not sensed
15 = Flash fired, Fill flash mode, Flash return sensed
16 = Flash did not file, Flash “off” mode
24 = Flash did not fire, “Auto” flash mode
25 = Flash fired, “Auto” flash mode, Camera has no flash return sensing capability
29 = Flash fired, “Auto” flash mode, Flash return not sensed
31 = Flash fired, “Auto” flash mode, Flash return sensed
32 = Camera does not have a flash unit
9.1.50 FlashEnergy
Tag Name = FlashEnergy
Tag = 37387 (920B.H)
50
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Type = RATIONAL
Count = 1 or 2
Value = Any positive rational number
Default = None
See also Flash
The FlashEnergy tag shall specify the amount of flash energy that was used when the image was captured, in
Beam Candle Power Seconds (BCPS).
When the exact value is known, the value shall be specified using a single number. Otherwise, two numbers shall
be present to specify the range of the value. In this case, the first number shall be the minimum value and the
second number shall be the maximum value
The fields shall be defined as follows:
Table 15 FlashEnergy
Value
Field No.
0
1 (optional)
Exact FlashEnergy, if only one value is present. Minimum FlashEnergy of the range
of uncertainty, if two values are present
Maximum FlashEnergy of the range of uncertainty, if two values are present
9.1.51 FNumber
Tag Name = FNumber
Tag = 33437 (829D.H)
Type = RATIONAL
Count = 1 or 2
Value = Any positive rational number
Default = None
The FNumber tag shall specify the actual lens f-number (ratio of lens aperture to focal length) used when the image
was captured.
<Editor's note: Is f/11 stored as 11/1 or 1/11?>
When the exact value is known, the value shall be specified using a single number. Otherwise, two numbers shall
be present to specify the range of the value. In this case, the first number shall be the minimum value and the
second number shall be the maximum value
The fields shall be defined as follows:
© ISO 2008 – All rights reserved
51
ISO/WD 12234-2
Table 16 FNumber
Value
Field No.
0
1 (optional)
Exact FNumber, if only one value is present. Minimum FNumber of the range of
uncertainty, if two values are present
Maximum FNumber of the range of uncertainty, if two values are present
9.1.52 FocalLength
Tag Name = FocalLength
Tag = 37386 (920A.H)
Type = RATIONAL
Count = 1 or 2
Value = Any positive rational number
Default = None
The FocalLength tag shall specify the lens focal length when the image was captured, in millimetres.
EXAMPLE: A focal length of 50 mm is encoded as 50/1.
When the exact value is known, the value shall be specified using a single number. Otherwise, two numbers shall
be present to specify the range of the value. In this case, the first number shall be the minimum value and the
second number shall be the maximum value
The fields shall be defined as follows:
Table 17 FocalLength
Value
Field No.
0
1 (optional)
Exact FocalLength, if only one value is present. Minimum FocalLength of the range
of uncertainty, if two values are present
Maximum FocalLength of the range of uncertainty, if two values are present
9.1.53 FocalPlaneResolutionUnit
Tag Name = FocalPlaneResolutionUnit
Tag = 37392 (9210.H)
Type = SHORT
Count = 1
Value = see below
Default = None
See also FocalPlaneXResolution, FocalPlaneYResolution
The FocalPlaneResolutionUnit tag shall specify the unit of measurement for the FocalPlaneXResolution and
FocalPlaneYResolution tags.
The value and measurement unit shall be one of the following:
1 = Inch
52
© ISO 2008 – All rights reserved
ISO/WD 12234-2
2 = Metre
3 = Centimetre
4 = Millimetre
5 = Micrometre
9.1.54 FocalPlaneXResolution
Tag Name = FocalPlaneXResolution
Tag = 37390 (920E.H)
Type = RATIONAL
Count = 1
Value = A positive rational number
Default = None
See also FocalPlaneYResolution, FocalPlaneResolutionUnit
The FocalPlaneXResolution tag shall specify the image resolution at the focal plane of the camera in number of
pixels per FocalPlaneResolutionUnit in the ImageWidth direction for the main image.
9.1.55 FocalPlaneYResolution
Tag Name = FocalPlaneYResolution
Tag = 37391 (920F.H)
Type = RATIONAL
Count = 1
Value = A positive rational number
Default = None
See also FocalPlaneXResolution, FocalPlaneResolutionUnit
The FocalPlaneYResolution tag shall specify the image resolution at the focal plane of the camera in number of
pixels per FocalPlaneResolutionUnit in the ImageLength direction for the main image.
9.1.56 ForwardMatrix1
Tag Name = ForwardMatrix1
Tag = 50964 (C714.H)
Type = SRATIONAL
Count = 3 × ColorPlanes
Value = see below
© ISO 2008 – All rights reserved
53
ISO/WD 12234-2
Default = None
The ForwardMatrix1 tag shall specify a matrix that maps white balanced camera colours to CIE XYZ D50 colours
under the first calibration illuminant.
NOTE: Details on applying this tag are provided in informative Annex C.
9.1.57 ForwardMatrix2
Tag Name = ForwardMatrix2
Tag = 50965 (C715.H)
Type = SRATIONAL
Count = 3 × ColorPlanes
Value = see below
Default = None
The ForwardMatrix2 tag shall specify a matrix that maps white balanced camera colours to CIE XYZ D50 colours
under the second calibration illuminant.
9.1.58 GPSInfo
Tag Name = GPSInfo
Tag = 34853 (8825.H)
Type = LONG
Count = 1
Value = Byte offset of the GPS IFD
Default = None
The GPSInfo tag shall specify the byte offset to the GPS IFD.
The GPS IFD shall specify the position of the camera using data provided by a Global Positioning System (GPS)
satellite receiver. The GPS IFD shall contain the GPSVersionID tag.
54
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The following GPSInfo tags may be present in the GPS IFD.
Short description
Table 18 GPSInfo tags
Tag name
Decimal
Tag
Hex
Tag
Type
Count Default
GPS tag version
GPSVersionID
0
0
BYTE
4
North or South Latitude
GPSLatitudeRef
1
1
ASCII
2
Latitude
GPSLatitude
2
2
RATIONAL
3
East or West Longitude
GPSLongitudeRef
3
3
ASCII
2
Longitude
GPSLongitude
4
4
RATIONAL
3
Altitude Reference
GPSAltitudeRef
5
5
BYTE
1
Altitude
GPSAltitude
6
6
RATIONAL
1
GPS time (atomic clock)
GPSTimeStamp
7
7
RATIONAL
GPS satellites used for measurement GPSSatellites
8
8
ASCII
Any
GPS receiver status
GPSStatus
9
9
ASCII
2
GPS measurement mode
GPSMeasureMode
10
A
ASCII
2
Measurement precision
GPSDOP
11
B
RATIONAL
1
Speed unit
GPSSpeedRef
12
C
ASCII
2
Speed of GPS receiver
GPSSpeed
13
D
RATIONAL
1
Reference for direction of movement
GPSTrackRef
14
E
ASCII
2
Direction of movement
GPSTrack
15
F
RATIONAL
1
Reference for direction of image
GPSImgDirectionRef
16
10
ASCII
2
Direction of image
GPSImgDirection
17
11
RATIONAL
1
Geodetic survey data used
GPSMapDatum
18
12
ASCII
Any
Reference for latitude of destination
GPSDestLatitudeRef
19
13
ASCII
2
Latitude of destination
GPSDestLatitude
20
14
RATIONAL
3
Reference for longitude of destination GPSDestLongitudeRef
21
15
ASCII
2
Longitude of destination
GPSDestLongitude
22
16
RATIONAL
3
Reference for bearing of destination
GPSDestBearingRef
23
17
ASCII
2
Bearing of destination
GPSDestBearing
24
18
RATIONAL
1
Reference for distance to destination GPSDestDistanceRef
25
19
ASCII
2
Distance to destination
GPSDestDistance
26
1A
RATIONAL
1
Name of GPS processing method
GPSProcessingMethod
27
1B
UNDEFINED Any
Name of GPS area
GPSAreaInformation
28
1C
UNDEFINED Any
GPS date
GPSDateStamp
29
1D
ASCII
11
GPS differential correction
GPSDifferential
30
1E
SHORT
1
0
3
'K'
'T'
'T'
'T'
'K'
The GPSVersionID tag shall specify the version of this GPSInfo IFD, using 4 BYTES. The value shall be 2, 2, 0, 0
indicating version 2.2, for compatibility with the EXIF specification.
© ISO 2008 – All rights reserved
55
ISO/WD 12234-2
The GPSLatitudeRef tag shall specify the latitude used in the GPSLatitude tag using “N” for north latitudes and “S”
for south latitudes relative to the earth’s equator.
The GPSLatitude tag shall specify the degrees, the minutes and the seconds respectively of the camera’s latitude.
The GPSLongitudeRef tag shall specify the longitude used in the GPSLongitude tag, using “E” for east longitudes
and “W” for west longitudes relative to the International Prime Meridian which is located by the astronomical
observatory in Greenwich, UK.
The GPSLongitude tag shall specify the degrees, the minutes and the seconds respectively of the camera’s
longitude.
The GPSAltitudeRef tag shall specify the altitude used as the reference altitude, using 0 for altitudes above sea
level, and 1 for altitudes below sea level. The altitude reading shall be given in metres relative to sea level.
The GPSAltitude tag shall specify the camera’s altitude in metres.
The GPSTimeStamp tag shall specify the hours, minutes and seconds respectively of the GPS clock in UTC
(Coordinated Universal Time).
The GPSSatellites tag shall list the satellites used to determine the camera position. This tag can describe the
number of satellites, their ID number, angle of elevation, azimuth, SNR and other information in ASCII notation. The
format of the ASCII string is not specified. If the GPS receiver is incapable of taking measurements, the value of
this tag shall be set to NUL.
The GPSStatus tag shall specify "A" for measurement in progress and "V" for measurement interrupted.
The GPSMeasureMode tag shall specify "2" for a two-dimensional measurement in progress and "3" for a threedimensional measurement in progress.
The GPSDOP tag shall specify the GPS DOP (data degree of precision). An HDOP value shall be written during a
two-dimensional measurement and a PDOP value shall be written during a three-dimensional measurement.
The GPSSpeedRef tag shall specify the unit for the GPSSpeed tag using "K" for kilometres per hour, "M" for miles
per hour and "N" for knots.
The GPSSpeed tag shall specify the speed of the GPS receiver.
The GPSTrackRef tag shall specify the reference direction for the GPSTrack tag, using "T" for true direction and
"M" for magnetic direction.
The GPSTrack tag shall specify the direction of the GPS receiver movement, from 0/100 to 35999/100, in degrees.
The GPSImgDirectionRef tag shall specify the reference direction for the GPSImgDirection tag, using "T" for true
direction and "M" for magnetic direction.
The GPSImgDirection tag shall specify the direction of the image when it was captured, from 0/100 to 35999/100,
in degrees.
The GPSMapDatum tag shall specify the geodetic survey data used by the GPS receiver. If the survey data is
restricted to Japan, the value shall be “TOKYO” or “WSG-84”.
The GPSDestLatitudeRef tag shall specify the latitude of the destination point in the GPSDestLatitude tag, using
“N” for north latitudes and “S” for south latitudes.
The GPSDestLatitude tag shall specify the degrees, the minutes and the seconds respectively of the destination
point.
56
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The GPSDestLongitudeRef tag shall specify the longitude of the destination point in the GPSDestLongitude tag,
using “E” for east longitudes and “W” for west longitudes
The GPSDestLongitude tag shall specify the degrees, the minutes and the seconds respectively of the destination
point.
The GPSDestBearingRef tag shall specify the reference bearing for the GPSDestBearing tag, using "T" for true
direction and "M" for magnetic direction.
The GPSDestBearing tag shall specify the bearing to the destination point, from 0/100 to 35999/100, in degrees.
The GPSDestDistanceRef tag shall specify the unit for the GPSDestDistance tag using "K" for kilometres per hour,
"M" for miles per hour and "N" for knots.
The GPSDestDistance tag shall specify the distance to the destination point.
For tags GPSLatitude, GPSLongitude, GPSDestLatitude, or GPSDestLongitude, when degrees, minutes and
seconds are used, the format shall be dd/1, mm/1, and ss/1; when degrees and minutes are used, and fractions of
minutes are expressed using two decimal places, the format shall be dd/1, mmmm/100 and 0/1.
The following GPSInfo tags shall be specified in pairs. Both tags in a pair or none of the tags in a pair shall be
present.
-
GPSLatitudeRef, GPSLatitude
-
GPSLongitudeRef, GPSLongitude
-
GPSTrackRef, GPSTrack
-
GPSDestLatitudeRef, GPSDestLatitude
-
GPSDestLongitudeRef, GPSDestLongitude
NOTE: The GPSInfo tags specify the position of the camera, not the position of the subject being photographed. The position of
the subject of the image can be represented using the GeoTIFF standard, which is a publicly available standard for
relating TIFF image data to a projected coordinate system.
9.1.59 ICCProfile
Tag Name = ICCProfile
Tag = 34675 (8773.H)
Type = UNDEFINED
Count = length of the data in bytes
Value = see below
Default = None
The ICCProfile tag shall contain an ICC device profile for the image's colour characterization. The profile shall be
an input, display, output, or colorspace profile, as defined in ISO 15076-1.
9.1.60 ImageDescription
Tag Name = ImageDescription
Tag = 270 (010E.H)
Type = ASCII
© ISO 2008 – All rights reserved
57
ISO/WD 12234-2
Count = length of string
Value = see below
Default = None
The ImageDescription tag shall provide textual description of the subject or purpose of the image. This tag may be
present to provide other information related to the image. An empty string shall indicate “unknown”.
9.1.61 ImageHistory
Tag Name = ImageHistory
Tag = 37395 (9213.H)
Type = ASCII
Count = length of string
Value = see below
Default = None
The ImageHistory tag shall specify what has been done to the image. The current information shall not be erased
when adding new information to the image history. When changes are made, the additional information about the
changes should be concatenated to the previous string. The new information should be separated by one or more
ASCII blank spaces and shall be terminated with a NUL byte.
9.1.62 ImageLength
Tag Name = ImageLength
Tag = 257 (0101.H)
Type = SHORT or LONG
Count = 1
Value = A positive integer
Default = None
See also ImageWidth
The ImageLength tag shall specify the number of rows in the stored image, as the number of scanlines in the
image, at least 1. This may be the shorter or longer dimension of the image.
9.1.63 ImageNumber
Tag Name = ImageNumber
Tag = 37393 (9211.H)
Type = SHORT or LONG
Count = 1
Value = see below
58
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Default = None
The ImageNumber tag shall specify the number assigned to an image.
NOTE: This tag is useful when storing a burst of images that are “chained” together within the same file.
9.1.64 ImageWidth
Tag Name = ImageWidth
Tag = 256 (0100.H)
Type = SHORT or LONG
Count = 1
Value = A positive integer
Default = None
See also ImageLength
The ImageWidth tag shall specify the number of columns in the stored image, as the number of pixels per scanline,
at least 1. This may be the shorter or longer dimension of the image.
9.1.65 Interlace
Tag Name = Interlace
Tag = 34857 (8829.H)
Type = SHORT
Count = 1
Value = see below
Default = None
The Interlace tag shall specify the field number of multifield images. The tag allows for both simple vertical interlace
of between 2 and 255 interlace fields per frame and for two-dimensional interlace of up to 127 vertical × 127
horizontal spatial offset locations per frame. The interlace mechanism may be used to store images for progressive
transmission. For storing multiple interlace fields in one file, the different fields shall use the IFD chaining
mechanism.
For 2:1 vertical interlace, as employed in many video systems, the first field (lines 1, 3, 5 from the frame image)
shall be indicated with a tag value = 1, and the second field shall be indicated with a tag value = 2.
For 2-dimensional interlace, the 7 least significant bits of the value shall indicate the vertical field number 1 to 127,
and the next 7 bits shall indicate the horizontal field number (1 to 127) minus 1.
For 2-dimensional interlace the value shall be calculated as follows:
t = v + (h – 1) × 128
where
t = tag value for 2-dimensional interlace
© ISO 2008 – All rights reserved
59
ISO/WD 12234-2
v = vertical field
h = horizontal field
The value shall be one of the following:
Table 19 Interlace
Field Number
0 Non-interlaced (progressive scan)
1 Vertical field 1, horizontal field 1 (video field 1, “odd”
lines)
2 Vertical field 2, horizontal field 1 (video field 2, “even”
lines)
3-127 Vertical field 3-127, horizontal field 1
129 Vertical field 1, horizontal field 2.
130-255 Vertical field 2-127, horizontal field 2
257-16255 Vertical field 1-127, horizontal field 3-127
NOTE: Values are corrected relative to TIFF/EP v1.
Value
9.1.66 IPTC/NAA
Tag Name = IPTC/NAA
Tag = 33723 (83BB.H)
Type = LONG or ASCII
Count = length of the data in bytes
Value = As defined by Application Record No. 2 of the IPTC-NAA
Default = None
<Editor's Note: The IPTC/NAA (International Press Telecommunications
Council – Newspaper Association of America) tag (33723) will be updated to
allow use of the XMP based IPTC Core" version 1.0 specification. >
The IPTC/NAA tag shall specify relevant information concerning the image that is useful for newspaper
photographs. The information is defined in Application Record No. 2 of the IPTC-NAA (International Press
Telecommunications Council - Newspaper Association of America) Information Interchange Model and Digital
Newsphoto Parameter Record, Version 2, April 14, 1993.
This record includes the following information: Record Version, Object Name, Edit Status, Urgency, Category,
Supplemental Category, Fixture Identifier, Keywords, Release Date, Release Time, Special Instructions, Reference
Service, Reference Date, Reference Number, Date Created, Time Created, Originating Program, Program Version,
Object Cycle, Byline, Byline Title, City, Province-State, Country Code, Country Name, Original Transmission
Reference, Headline, Credit, Source, Caption, Caption Writer, Image Type.
NOTE: A file with this tag is sometimes called RichTIFF. See Bibliography.
9.1.67 ISOSpeedRatings
Tag Name = ISOSpeedRatings
Tag = 34855 (8827.H)
Type = SHORT
60
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Count = 1 or 3
Value = see below
Default = None
The ISOSpeedRatings tag shall specify the ISO speed and ISO speed latitude values as defined in ISO 12232. The
first value shall be the ISO speed rating and the last two values shall be the minimum and maximum ISO speed
latitude values. The last two values may be omitted for cameras that do not have an ISO speed latitude.
For the allowed values, see tables in ISO 12232.
9.1.68 JPEGTables
Tag Name = JPEGTables
Tag = 347 (015B.H)
Type = UNDEFINED
Count = length of the data in bytes
Value = A JPEG “abbreviated table specification” data stream
Default = None
See also Compression
The JPEGTables tag shall specify JPEG quantization and Huffman tables for subsequent use by the JPEG
decompression process. When this tag is present, these tables need not be duplicated in each segment (strip or
tile), thus saving space and processing time. This tag may be present also in a single-segment file, although there
is no space saving in this case.
The JPEGTables tag shall contain a valid JPEG “abbreviated table specification” data stream. This data stream
shall begin with SOI and end with EOI. It shall contain one or more JPEG tables, including:
DQT (define quantization tables);
DHT (define Huffman tables).
9.1.69 LensInfo
Tag Name = LensInfo
Tag = 50736 (C630.H)
Type = RATIONAL
Count = 4
Value = <Minimum focal length in mm, Maximum focal length in mm, Minimum f-stop at minimum focal length,
Minimum f-stop at maximum focal length>
Default = None
The LensInfo tag shall specify information about the lens that captured the image.
© ISO 2008 – All rights reserved
61
ISO/WD 12234-2
The values shall be as follows:
Table 20 LensInfo
Field No.
Contents
0
Minimum focal length in mm
1
Maximum focal length in mm
2
Minimum f-stop (maximum aperture) at minimum focal length
3
Minimum f-stop (maximum aperture) at maximum focal length
When the minimum f-stops are unknown, they should be encoded as 0/0.
9.1.70 LightSource
Tag Name = LightSource
Tag = 37384 (9208.H)
Type = SHORT
Count = 1
Value = see below
Default = None
The LightSource tag shall specify the illumination that was selected (manually or automatically) to be present when
the image was captured.
Bit 15 indicates whether or not a correlated colour temperature value is specified. When bit 15 = 0, then bits 0 to 14
shall specify one of the light sources in Table 21. When bit 15 = 1, then bits 0 to 14 shall specify an approximate
correlated colour temperature in degrees Kelvin.
<Editors note: ref for how to determine correlated colour temp>
62
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The value and illumination shall be as follows:
Table 21 LightSource
VALUE in Bits 14...0 when Bit 15 = 0
0
1
2
3
4
9
10
11
12
13
14
15
17
18
19
20
21
22
23
24
VALUE in Bits 14...0 when Bit 15 = 1
0 – 32767
Light Source
Unidentified
Daylight
Fluorescent light
Tungsten Lamp
Flash
Fine weather
Cloudy weather
Shade
Daylight fluorescent (D 5700 - 7100K)
Day white fluorescent (N 4600 - 5400K)
Cool white fluorescent (W 3900 - 4500K)
White fluorescent (WW 3200 - 3700K)
Standard Illuminant A
Standard Illuminant B
Standard Illuminant C
D55 Illuminant
D65 Illuminant
D75 Illuminant
D50 Illuminant
ISO studio tungsten
Light Source
Approximate correlated colour temperature of the scene
illuminant in degrees Kelvin
9.1.71 LinearizationTable
Tag Name = LinearizationTable
Tag = 50712 (C618.H)
Type = SHORT
Count = Number of values in the table
Value = see below
Default = Identity table <0, 1, 2, 3, …, 32767>
The LinearizationTable tag shall specify a lookup table for mapping stored values into linear values.
The value in table position i shall specify the linear value corresponding to stored value i.
No mapping is defined for stored values outside the range of the table.
This single table shall apply to all the samples for each pixel, also for SamplesPerPixel > 1.
NOTE: This tag is typically present to increase compression ratios by storing the raw data in a non-linear,
more visually uniform space using a smaller set of stored values.
© ISO 2008 – All rights reserved
63
ISO/WD 12234-2
9.1.72 LinearResponseLimit
Tag Name = LinearResponseLimit
Tag = 50734 (C62E.H)
Type = RATIONAL
Count = 1
Value = See below
Default = 1
See also WhiteLevel
The LinearResponseLimit tag shall specify the fraction of the encoding range above which the response may
become significantly non-linear.
The value shall be in the range [0, 1].
A value of 1 shall mean that the sensor is linear up to the value specified in the WhiteLevel tag.
NOTE: Some sensors have an unpredictable non-linearity in their response as they near the upper limit of
their encoding range. This non-linearity results in colour shifts in the highlight areas of the resulting image
unless the raw converter compensates for this effect.
<Editor's NOTE: More information is needed to define this tag value> Now added.
9.1.73 LocalizedCameraModel
Tag Name = LocalizedCameraModel
Tag = 50709 (C615.H)
Type = ASCII or BYTE
Count = length of the data in bytes
Value = null terminated UTF-8 encoded string
Default = Same as UniqueCameraModel
See also Make, Model, Software, UniqueCameraModel, CameraSerialNumber
The LocalizedCameraModel tag shall specify a localized version of the UniqueCameraModel.
NOTE: With this tag the in-file camera name can match the localization of the camera's name for different
markets.
9.1.74 Make
Tag Name = Make
Tag = 271 (010F.H)
Type = ASCII
Count = length of string
64
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Value = see below
Default = None
See also Model, Software, UniqueCameraModel, LocalizedCameraModel, CameraSerialNumber
The Make tag shall specify the manufacturer or vendor of the camera. An empty string shall indicate “unknown”.
9.1.75 MakerNoteSafety
Tag Name = MakerNoteSafety
Tag = 50741 (C635.H)
Type = SHORT
Count = 1
Value = 0 or 1
Default = 0
See also EXIF MakerNote
The MakerNoteSafety tag shall specify whether the EXIF MakerNote tag is safe to preserve along with the rest of
the EXIF data.
The value and meaning shall be one of the following:
0 = unsafe
1 = safe
When the value is 1, the MakerNote shall meet these requirements:
The MakerNote data shall be self-contained.
All offsets within the MakerNote shall be offsets relative to the start of the MakerNote, and shall not point to
bytes outside the MakerNote.
- The MakerNote data shall be byte-order independent.
- Moving the data to a file with a different byte order shall not invalidate it.
A thumbnail image embedded in the MakerNote may be stale, and may not reflect the current state of the full size
image.
-
<Editors note: the need/use of this tag is debated. Comments?>
9.1.76 MaskedAreas
Tag Name = MaskedAreas
Tag = 50830 (C68E.H)
Type = SHORT or LONG
Count = 4 × number of rectangles
Value = <top row, left column, bottom row, right column> for each rectangle
© ISO 2008 – All rights reserved
65
ISO/WD 12234-2
Default = None
The MaskedAreas tag shall specify a list of non-overlapping rectangles of fully masked pixels, with which a reader
can measure the black encoding level.
The values shall be the top row, left column, bottom row, and right column positions for each rectangle.
Rectangles shall not extend beyond the stored image.
If the raw image data has had its black encoding level subtracted, this tag shall not be present, since the masked
pixels are no longer useful.
When the MaskedAreas tag is present, the BlackLevel tag should be present.
Readers may ignore the MaskedAreas tag.
9.1.77 MaxApertureValue
Tag Name = MaxApertureValue
Tag = 37381 (9205.H)
Type = SRATIONAL
<Editors note: Rational or SRational?>
Count = 1
Value = see below
Default = None
The MaxApertureValue tag shall specify the maximum possible aperture opening (minimum lens f-number) of the
camera, in APEX units. The value should be in the range [0.00, 99.99].
<Editors note: behaviour for value < 0>
9.1.78 MeteringMode
Tag Name = MeteringMode
Tag = 37383 (9207.H)
Type = SHORT
Count = 1
Value = see below
Default = None
The MeteringMode tag shall specify the metering mode (the camera’s method of spatially weighting the scene
luminance values to determine the sensor exposure) used when the image was captured.
66
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The value and meaning shall be one of the following:
0 = Unidentified
1 = Average
2 = Centre Weighted Average
3 = Spot
4 = Multi-Spot
9.1.79 Model
Tag Name = Model
Tag = 272 (0110.H)
Type = ASCII
Count = length of string
Value = see below
Default = None
See also Make, Software, UniqueCameraModel, LocalizedCameraModel, CameraSerialNumber
The Model tag shall specify the model name or number of the camera. This may include the serial number of the
camera. An empty string shall indicate “unknown”.
9.1.80 NewSubFileType
Tag Name = NewSubFileType
Tag = 254 (00FE.H)
Type = LONG
Count = 1
Value = see below
Default = None
The NewSubFileType tag shall specify the type of image that the IFD contains.
Exactly one IFD shall have a NewSubFileType value = 0.
© ISO 2008 – All rights reserved
67
ISO/WD 12234-2
The value and image type shall be one of the following:
Table 22 NewSubFileType
Value
The type of image in the IFD
0
Main image
1
Rendered preview or thumbnail
1001.H Alternative image
9.1.81 Noise
Tag Name = Noise
Tag = 37389 (920D.H)
Type = UNDEFINED
Count = length of the data in bytes
Value = see below
Default = None
The Noise tag shall specify camera noise measurement values, measured as specified in ISO 15739.
The tag contents shall use the following format:
<Editors note: this is underspecified >
Table 23 Noise table
Byte
position
Field length in
bytes
Contents
Type
0
Count
2
n = number of table columns
SHORT
1
2
2
m = number of table rows
SHORT
1
4
zzz
n column headings, each stored as a null-terminated ASCII
string
ASCII
4 + zzz
nxmx8
zzz
n x m table entries in row major order (all data of first row RATIONAL n x m
given first)
EXAMPLE: Measured noise data:
Table 24 Noise example
Signal level (code values) R rms noise G rms noise
B rms noise
32
1,5
1,0
2,5
128
2,5
1,5
2,9
240
3,0
2,0
3,4
9.1.82 NoiseProfile
Tag Name = NoiseProfile
68
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Tag = 51041 (C761.H)
Type = DOUBLE
Count = 2 or 2 × SamplesPerPixel or 2 × ColorPlanes
Value = <S1, O1, S2, O2, … Sn, On>
Default = None
<Editors note: This tag is candidate for deletion or major rewrite.>
The NoiseProfile tag shall specify the estimated amount of noise present in the image data.
This tag models two common sources of noise: Photon (shot) noise, which has a white Poisson distribution, and
Electronic readout noise, which is present even in the absence of light and is assumed to have an approximately
white normal (Gaussian) distribution.
The noise model assumes that the noise is white and spatially independent, ignoring fixed pattern effects and other
sources of noise (for example, pixel response non-uniformity, spatially-dependent thermal effects, etc.).
If noise reduction has been applied, the tag may be present to specify the estimated residual noise in image data.
The tag shall contain n sets of noise model parameters, where n shall be 1, or the number of components
(SamplesPerPixel) in the image, or the number of colour planes (CFAPlaneColor) in the image.
When n = 1, the single parameter set shall apply to all image planes, else a parameter set shall apply only to the
corresponding component or colour plane.
When PhotometricInterpretation = 32803 (CFA), the n parameter sets shall be in the plane order specified by the
CFAPlaneColor tag, else the n parameter sets shall be in the component order.
Each parameter set shall have two values, here called S and O, respectively.
The estimated amount of noise shall be calculated as follows:
N (x) = Sqrt (S × x + O)
where
-
N (x) shall be the estimated standard deviation of the normalized random variable x
-
x represents a linear signal in the range [0, 1],
-
S shall be the variance of the signal-dependent noise, excluding O,
-
O shall be the variance of the (signal-independent) sensor read-out noise,
-
S and O shall be relative to the normalized signal x in the range [0, 1],
-
S shall be positive, and O shall be non-negative (S > 0 and O ≥ 0).
© ISO 2008 – All rights reserved
69
ISO/WD 12234-2
EXAMPLE: A typical noise level at ISO 100 corresponds approximately to NoiseProfile parameter values of S = 0.00002 and
0 = 0.00000045 giving a normalized standard deviation of ~ 0.00201 when x = 0.18.
NOTE 1: N is relative to the normalized signal x in the range [0, 1], thus, the denormalized standard deviation is N (x) ×
maximum component intensity, and the example value corresponds to 0.5 digital counts for 8-bit samples.
NOTE 2: While the signal x is linear in relation to the photon count, code values in non-linear colour space encodings, such as
sRGB, are not.
9.1.83 OECF
Tag Name = OECF
Tag = 34856 (8828.H)
Type = UNDEFINED
Count = length of the data in bytes
Value = see below
Default = None
The OECF tag shall specify the “Opto-Electronic Conversion Function” (OECF) values as defined in ISO 14524,
which shall be stored as a table with headings. The OECF shall be the relationship between the optical input and
the image file code value outputs of an electronic camera. The columns of the table may provide the camera OECF
values, or the focal plane OECF values, or both. This document does not prescribe the values for the column
headings..
<Editors note: tighten for open sys use>
The tag contents shall use the following format:
Byte position
Field length in bytes
Table 25 OECF table
Contents
Type
0
2
n = number of table columns
SHORT
1
2
2
m = number of table rows
SHORT
1
4
zzz
n column headings, each stored as a nullterminated ASCII string
ASCII
4 + zzz
n×m×8
n × m table entries in row major order (all data of SRATIONAL
first row given first)
Count
zzz
n×m
EXAMPLE: An OECF data table:
Camera log exposure
Table 26 OECF example
Red output level Green output level
Blue output level
–3,0
10,2
12,4
8,9
–2,0
48,1
47,5
48,3
–1,0
150,2
152,0
149,8
<Editors note: Note, the type must be SRATIONAL to store the example table>
70
© ISO 2008 – All rights reserved
ISO/WD 12234-2
9.1.84 OpcodeList1
Tag Name = OpcodeList1
Tag = 51008 (C740.H)
Type = UNDEFINED
Count = length of the data in bytes
Value = Opcode List
Default = None
The OpcodeList1 tag shall specify a list of opcodes that should be applied to the raw image, as read directly from
the file. The format and processing details of an opcode list shall be as defined in Chapter 7, "Opcode List
Processing".
9.1.85 OpcodeList2
Tag Name = OpcodeList2
Tag = 51009 (C741.H)
Type = UNDEFINED
Count = length of the data in bytes
Value = Opcode List
Default = None
The OpcodeList2 tag shall specify a list of opcodes that should be applied to the raw image, just after it has been
mapped to linear reference values. The format and processing details of an opcode list shall be as defined in
Chapter 7, "Opcode List Processing".
9.1.86 OpcodeList3
Tag Name = OpcodeList3
Tag = 51022 (C74E.H)
Type = UNDEFINED
Count = length of the data in bytes
Value = Opcode List
Default = None
The OpcodeList3 tag shall specify a list of opcodes that should be applied to the raw image, just after it has been
demosaiced. The format and processing details of an opcode list shall be as defined in Chapter 7, "Opcode List
Processing".
9.1.87 Orientation
Tag Name = Orientation
© ISO 2008 – All rights reserved
71
ISO/WD 12234-2
Tag = 274 (0112.H)
Type = SHORT
Count = 1
Value = see below
Default = None
The Orientation tag shall specify the orientation of the image.
With the Orientation tag, file browsers can perform lossless rotation of images by modifying a single byte of the file.
Readers should support all possible orientations, including mirrored orientations, for backward compatibility.
The value shall be one of the following:
Table 27 Orientation
Orientation
The first row represents the visual top of the image and the first column represents the
visual left-hand side. The orientation is known to be in the normal “landscape”
orientation.
2
The first row represents the visual top of the image, and the first column represents the
visual right-hand side. This corresponds to Orientation 1 mirrored left-right.
3
The first row represents the visual bottom of the image and the first column represents
the visual right-hand side. This corresponds to Orientation 1 rotated 180 degrees.
4
The first row represents the visual bottom of the image, and the first column represents
the visual left-hand side. This corresponds to Orientation 1 mirrored top-down.
5
The first row represents the visual left-hand side of the image, and the first column
represents the visual top. This corresponds to Orientation 1 rotated clockwise 90
degrees, then mirrored left-right.
6
The first row represents the visual right-hand side of the image and the first column
represents the visual top. This corresponds to Orientation 1 rotated clockwise 90
degrees.
7
The first row represents the visual right-hand side of the image, and the first column
represents the visual bottom. This corresponds to Orientation 1 rotated clockwise 90
degrees, then mirrored top-down.
8
The first row represents the visual left-hand side of the image and the first column
represents the visual bottom. This corresponds to Orientation 1 rotated counterclockwise 90 degrees.
9
Orientation is unknown.
NOTE: Orientations 2, 4, 5, and 7 are mirrored orientations intended for use with mirror-rig stereoscopic cameras.
Value
1
9.1.88 OriginalRawFileData
Tag Name = OriginalRawFileData
Tag = 50828 (C68C.H)
Type = UNDEFINED
Count = length of the data in bytes
Value = See below
Default = None
72
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The OriginalRawFileData tag shall contain the compressed contents of the original raw file, if this image was
converted from a raw image that was not a TIFF/EP image.
The contents of this tag shall be in big-endian byte order.
The tag shall contain a sequence of data blocks. The order, type, and contents of the data blocks shall be as
specified in Table 28:
Table 28 Data Block Sequence
Ordering
Type
Data block contents
1
FORK
Data fork of original raw file
2
FORK
Mac OS resource fork of original raw file
3
BYTE [4] Mac OS file type of original raw file
4
BYTE [4] Mac OS file creator of original raw file
5
FORK
Data fork of sidecar thumbnail file
6
FORK
Mac OS resource fork of sidecar thumbnail file
7
BYTE [4] Mac OS file type of sidecar thumbnail file
8
BYTE [4] Mac OS file creator of sidecar thumbnail file
Non-existent forks shall be encoded as data blocks having zero length.
Unknown or non-existent Mac OS file types and file creators shall be encoded as <0, 0, 0, 0>.
When a thumbnail file does not exist, the corresponding four entries shall be omitted or encoded as non-existent
data.
NOTE: Sidecar thumbnail files are assumed to have the file extension ".thm".
There shall be no padding or alignment bytes between data blocks.
Data blocks may be missing from the end of the sequence. Readers should handle such case, and should assume
a default value for all the missing blocks.
Readers should ignore extra bytes when parsing this tag, as future versions of this standard may define additional
data blocks.
<Editors note: review for implications in future versions. Delete?>
Each fork (data fork or Mac OS resource fork) shall be encoded as specified in Table 29:
Table 29 Fork storage structure
Field
Type
ForkLength
LONG
Field length
in bytes
4
Index [n]
LONG [n]
4×n
EndPointer
LONG
…
ZIP [n]
If (n > 0) 4
else 0
Any
Contents
The number of bytes in the original data fork (before compression into
this fork storage structure)
Offset to the start of the compressed data for each compression block
1 to n, where n = Floor ((ForkLength + 65535) / 65536).
The total length of this fork storage structure, in number of bytes.
When ForkLength = 0, this field shall be omitted
Compressed data for each block 1 to n.
The original data shall be partitioned into n non-overlapping blocks of
64Kbytes. Each block shall be ZIP-compressed and stored here, in
any order.
The last block may be less than 64Kbytes long before compression.
All offsets shall be relative to the start of the ForkLength field.
© ISO 2008 – All rights reserved
73
ISO/WD 12234-2
NOTE: n = 0 for ForkLength = 0.
9.1.89 OriginalRawFileDigest
Tag Name = OriginalRawFileDigest
Tag = 50973 (C71D.H)
Type = BYTE
Count = 16
Value = see below
Default = None
The OriginalRawFileDigest tag shall specify an MD5 digest of the data stored in the OriginalRawFileData tag.
9.1.90 OriginalRawFileName
Tag Name = OriginalRawFileName
Tag = 50827 (C68B.H)
Type = ASCII or BYTE
Count = Length of the data in bytes
Value = Null terminated UTF-8 encoded string
Default = None
The OriginalRawFileName tag shall specify the file name of the original raw file, if this image was converted from a
raw image that was not a TIFF/EP image.
9.1.91 PhotometricInterpretation
Tag Name = PhotometricInterpretation
Tag = 262 (0106.H)
Type = SHORT
Count = 1
Value = see below
Default = None
See also BitsPerSample, SamplesPerPixel, PlanarConfiguration, CFARepeatPatternDim, CFAPattern,
ReferenceBlackWhite, YCbCrCoefficients, YCbCrPositioning, YCbCrSubSampling.
The PhotometricInterpretation tag shall specify the general type of the colour space (the colour model) of the image
data components and the order of the components.
74
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The value shall be one of the following:
Value
1
2
6
32803
34892
Table 30 PhotometricInterpretation
Image colour space
BitsPerSample
Gray (Gray component). Black shall be 0 and white shall be 2
-1
RGB (red, green and blue components). The component order shall be R, G, B. Minimum
BitsPerSample
component intensity shall be 0, and maximum intensity shall be 2
- 1.
YCbCr (Y for the luminance component, Cb and Cr for the two chrominance components).
The component order shall be Y, Cb, Cr.
CFA (Colour Filter Array). Describes “raw” image data from single-chip colour sensors
having a colour filter array (CFA) overlay. SamplesPerPixel shall be 1. PlanarConfiguration
shall be 1 (Chunky). SensingMethod shall be 2. The spatial sampling pattern of the colour
filter array shall be defined using the CFARepeatPatternDim and CFAPattern tags. For each
pixel location a filtered colour sample value shall be specified, with the filter colour defined
by the CFAPattern tag. For each pixel value, 0 shall represent minimum intensity, and
BitsPerSample
2
- 1 shall represent maximum intensity.
Raw (a multi-channel colour space). The component order shall be as defined by the
CFAPlaneColor tag. This PhotometricInterpretation value is intended for use by cameras
that do not use colour filter arrays, but instead capture all colour components at each pixel.
This PhotometricInterpretation value may also be used for CFA data that has already been
de-mosaiced.
9.1.92 PlanarConfiguration
Tag Name = PlanarConfiguration
Tag = 284 (011C.H)
Type = SHORT
Count = 1
Value = see below
Default = None
See also BitsPerSample, SamplesPerPixel
The PlanarConfiguration tag shall specify how the components (samples) of each pixel are stored.
The value shall be one of the following:
Table 31 PlanarConfiguration
Planar Configuration
Chunky format. The component values for each pixel shall be stored adjacent to each other, in
the order specified by the PhotometricInterpretation tag. The chunky format shall be used when
the PhotometricInterpretation value is 1 (Gray) or 32803 (CFA) or SamplesPerPixel = 1.
2
Planar format. The components shall be stored in separate component planes, in the order
specified by the PhotometricInterpretation tag.
EXAMPLE: Chunky data when PhotometricInterpretation equals 2 (RGB) is stored as RGBRGBRGB.
Value
1
9.1.93 PreviewApplicationName
Tag Name = PreviewApplicationName
Tag = 50966 (C716.H)
Type = ASCII or BYTE
© ISO 2008 – All rights reserved
75
ISO/WD 12234-2
Count = length of the data in bytes
Value = null terminated UTF-8 encoded string
Default = None
See also PreviewApplicationVersion, PreviewColorSpace, PreviewDateTime, PreviewSettingsDigest,
PreviewSettingsName
The PreviewApplicationName tag shall specify the name of the application that created the preview.
9.1.94 PreviewApplicationVersion
Tag Name = PreviewApplicationVersion
Tag = 50967 (C717.H)
Type = ASCII or BYTE
Count = length of the data in bytes
Value = null terminated UTF-8 encoded string
Default = None
See also PreviewApplicationName, PreviewColorSpace, PreviewDateTime, PreviewSettingsDigest,
PreviewSettingsName
The PreviewApplicationVersion tag shall specify the version number of the application that created the preview.
9.1.95 PreviewColorSpace
Tag Name = PreviewColorSpace
Tag = 50970 (C71A.H)
Type = LONG
Count = 1
Value = see below
Default =See below
See also ICCProfile, PreviewApplicationName, PreviewApplicationVersion, PreviewDateTime,
PreviewSettingsDigest ,PreviewSettingsName
The PreviewColorSpace tag shall specify the colour space of the preview.
When the ICCProfile tag is present, the PreviewColorSpace tag shall not be present.
76
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The value shall be one of the following:
0 = Unknown
1 = Gray Gamma 2.2
2 = sRGB
3 = Adobe RGB
4 = ProPhoto RGB
When PhotometricInterpretation = 1, the value may be 0 or 1.
When PhotometricInterpretation = 2, the value may be 0, 2, 3, or 4, but not 1.
The default value colour space of the preview depends on the PhotometricInterpretation value, and shall be as
follows:
Table 32 Default preview color space
PhotometricInterpretation Default preview color space
1 (gray)
Gray Gamma 2.2
2 (RGB)
sRGB
6 (YCbCr)
sYCC
9.1.96 PreviewDateTime
Tag Name = PreviewDateTime
Tag = 50971 (C71B.H)
Type = ASCII
Count = length of string
Value = null terminated string
Default = None
See also PreviewApplicationName, PreviewApplicationVersion, PreviewColorSpace,
PreviewSettingsDigest ,PreviewSettingsName
The PreviewDateTime tag shall specify the date and time the preview was rendered, in ISO 8601 format.
9.1.97 PreviewSettingsDigest
Tag Name = PreviewSettingsDigest
Tag = 50969 (C719.H)
Type = BYTE
Count = 16
Value = see below
Default = None
© ISO 2008 – All rights reserved
77
ISO/WD 12234-2
See also PreviewApplicationName, PreviewApplicationVersion, PreviewColorSpace, PreviewDateTime,
PreviewDateTime, PreviewSettingsName
The PreviewSettingsDigest tag shall specify a unique ID of the conversion settings (for example MD5 digest) used
to render the preview.
9.1.98 PreviewSettingsName
Tag Name = PreviewSettingsName
Tag = 50968 (C718.H)
Type = ASCII or BYTE
Count = length of the data in bytes
Value = null terminated UTF-8 encoded string
Default = None
See also PreviewApplicationName, PreviewApplicationVersion, PreviewColorSpace, PreviewDateTime,
PreviewDateTime, PreviewSettingsDigest
The PreviewSettingsName tag shall specify a name of the conversion settings (for example “snapshot name”) used
for the preview.
9.1.99 ProfileCopyright
Tag Name = ProfileCopyright
Tag = 50942 (C6FE.H)
Type = ASCII or BYTE
Count = length of the data in bytes
Value = null terminated UTF-8 encoded string
Default = None
The ProfileCopyright tag shall specify the copyright information for the camera profile.
<editor's note; What's a camera profile? tags?>
This string should always be preserved along with the other camera profile tags.
9.1.100 ProfileEmbedPolicy
Tag Name = ProfileEmbedPolicy
Tag = 50941 (C6FD.H)
Type = LONG
Count = 1
Value = see below
78
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Default = 0
The ProfileEmbedPolicy tag shall specify the usage rules for the associated camera profile.
The value shall be one of the following:
Value
0
1
2
3
Table 33 Profile Embedding Policy
Usage policy
Allow copying. The camera profile may be used in processing of or for embedding in any TIFF/EP
Profile 2 image. It may be copied out of TIFF/EP files and into other TIFF/EP Profile 2 images, or
copied out of TIFF/EP files and stored on the user’s system for use in processing of or for
embedding in any TIFF/EP Profile 2 image.
Embed if used. Same rules as case 0 (“Allow copying”), except the camera profile shall not be
copied out of a TIFF/EP file for use in processing any other image except the image it is embedded
in, unless the profile is already stored on the user’s system.
Embed never. This value only applies to profiles stored a user’s system, and not already
embedded in TIFF/EP Profile 2 images. These stored profiles may be used to process images, but
shall not be embedded in images. If the camera profile is embedded in a TIFF/EP Profile 2 image,
this value shall have the same restrictions as case 1 (“Embed if used”).
No restrictions. The camera profile creator has not placed any restrictions of the use of the camera
profile.
9.1.101 ProfileToneCurve
Tag Name = ProfileToneCurve
Tag = 50940 (C6FC.H)
Type = FLOAT
Count = Number of samples × 2
Value = see below
Default = None
The ProfileToneCurve tag shall specify a default tone curve that may be applied while processing the image as a
starting point for user adjustments.
The curve shall be a list of 32-bit IEEE float point value pairs in linear gamma.
Each sample shall have an input value in the range [0, 1], and an output value in the range [0, 1].
The first sample shall be <0, 0>, and the last sample shall be <1, 1>.
The curve should be interpolated using a cubic spline.
9.1.102 RawDataType
Tag Name = RawDataType
Tag = To be defined (TO BE DEFINEDFF.H)
Type = ???
Count = To be defined
Value = see below
© ISO 2008 – All rights reserved
79
ISO/WD 12234-2
Default = None
The RawDataType tag shall specify which of the following need to be performed, and the required metadata/op
codes to perform them:
1. Dark current subtraction
2. Flare subtraction
3. Sensor defect concealment / correction
4. Uniformity correction
5. Noise reduction
6. Colour de-mosaicing
7. White balancing
8. Sensor colour correction (for example 3x3 error minimization matrix)
<Editors note: This tag is not future proof. How will it change in future versions? How easy to extend?>
<Editor's NOTE: More information is needed to define this tag value>
9.1.103 RawDataUniqueID
Tag Name = RawDataUniqueID
Tag = 50781 (C65D.H)
Type = BYTE
Count = 16
Value = See below
Default = None
The RawDataUniqueID tag shall specify a 16-byte unique identifier for the raw image data.
The identifier should be created using an algorithm that shall ensure that it shall be very unlikely two different
images will end up having the same identifier.
NOTE: Readers can use this tag to recognize a particular raw image, even if the file's name or the
metadata contained in the file has been changed.
9.1.104 RawImageDigest
Tag Name = RawImageDigest
Tag = 50972 (C71C.H)
Type = BYTE
Count = 16
Value = see below
80
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Default = None
The RawImageDigest tag shall specify an MD5 digest of the raw image data.
All the pixels in the image shall be processed, in row-scan order.
Each pixel shall be padded with 0 to 15 zero-bits to a multiple of 16 bits.
<Editors note: lead or trail?>
The data for each pixel shall be processed in little-endian byte order.
9.1.105 ReductionMatrix1
Tag Name = ReductionMatrix1
Tag = 50725 (C625.H)
Type = SRATIONAL
Count = 3 × ColorPlanes
Value = See below
Default = None
The ReductionMatrix1 tag shall specify a dimensionality reduction matrix for use as the first stage in converting
colour camera native space values to CIE XYZ values, under the first calibration illuminant.
This tag shall not be present when ColorPlanes is 3.
The matrix shall be stored in row scan order.
9.1.106 ReductionMatrix2
Tag Name = ReductionMatrix2
Tag = 50726 (C626.H)
Type = SRATIONAL
Count = 3 × ColorPlanes
Value = See below
Default = None
The ReductionMatrix2 tag shall specify a dimensionality reduction matrix for use as the first stage in converting
colour camera native space values to CIE XYZ values, under the second calibration illuminant.
This tag shall not be present when ColorPlanes is 3.
The matrix shall be stored in row scan order.
9.1.107 ReferenceBlackWhite
Tag Name = ReferenceBlackWhite
© ISO 2008 – All rights reserved
81
ISO/WD 12234-2
Tag = 532 (0214.H)
Type = RATIONAL
Count = 6
Value = <Y.ReferenceBlack, Y.ReferenceWhite, Cb.ReferenceBlack, Cb.ReferenceWhite, Cr.ReferenceBlack,
Cr.ReferenceWhite>
Default = None
See also PhotometricInterpretation, YCbCrCoefficients, YCbCrPositioning, YCbCrSubSampling
The ReferenceBlackWhite tag shall specify headroom and footroom code values as pairs for each component in Y,
Cb and Cr. The values in a pair shall represent ReferenceBlack and ReferenceWhite respectively. The pairs shall
be in the order Y, Cb and Cr.
The ReferenceBlackWhite tag shall be present when and only when PhotometricInterpretation = 6 (YCbCr).
The full range component value shall be converted from the code value by:
f = (v - k) × r / (w - k)
The code value shall be converted from the full-range component value by:
v = f × (w - k) / r + k
For the luminance component (Y), the CodingRange shall be defined as:
b
r=2 -1
For the Cb and Cr components, the CodingRange shall be defined as:
r = 127
where the following values shall be per component
b = BitsPerSample
f = Full Range Value
k = ReferenceBlack
r = CodingRange
v = Code value
w = ReferenceWhite
NOTE: Useful ReferenceBlackWhite values for YCbCr images having BitsPerSample = 8,8,8 are:
-
0/1, 255/1, 128/1, 255/1, 128/1, 255/1 for no headroom/footroom;
- 15/1, 235/1, 128/1, 240/1, 128/1, 240/1 for CCIR Recommendation 601.1 headroom/footroom.
Using the CCIR Recommendation 601.1 headroom/footroom values, code 15 represents ReferenceBlack
and code 235 represents ReferenceWhite for the luminance component (Y). For chrominance components,
Cb and Cr, code 128 represents ReferenceBlack and code 240 represents ReferenceWhite. With Cb and
Cr, the ReferenceWhite value codes reference blue and reference red respectively.
82
© ISO 2008 – All rights reserved
ISO/WD 12234-2
In the case of no headroom/footroom, the conversion of luminance (Y) can be skipped because the value
equals the code. For Cb and Cr, ReferenceBlack is still subtracted from the code.
9.1.108 ResolutionUnit
Tag Name = ResolutionUnit
Tag = 296 (0128.H)
Type = SHORT
Count = 1
Value = see below
Default = None
See also XResolution, YResolution
The ResolutionUnit tag shall specify the unit of measurement for the XResolution and YResolution tags.
The value and unit of measurement shall be one of the following:
1 = No absolute unit of measurement
2 = Inch
3 = Centimetre
9.1.109 RowInterleaveFactor
Tag Name = RowInterleaveFactor
Tag = 50975 (C71F.H)
Type = SHORT or LONG
Count = 1
Value = RowInterleaveFactor
Default = 1
The RowInterleaveFactor tag shall specify that rows of the image shall be stored in interleaved order.
The value of the tag shall specify the number of interleaved fields.
<Editor's NOTE: More information is needed >
9.1.110 RowsPerStrip
Tag Name = RowsPerStrip
Tag = 278 (0116.H)
Type = SHORT or LONG
Count = 1
© ISO 2008 – All rights reserved
83
ISO/WD 12234-2
Value = An integer in the range [1, ImageLength]
Default = None
See also ImageLength, StripOffsets, and StripByteCounts
The RowsPerStrip tag shall specify the number of rows per strip within the image.
Image data is stored as strips or tiles. The StripByteCounts, RowsPerStrip, and StripOffsets tag shall be present
when and only when the image data is stored as strips.
StripsPerImage = ceiling (ImageLength / RowsPerStrip)
9.1.111 SampleFormat
Tag Name = SampleFormat
Tag = 339 (0153.H)
Type = SHORT
Count = SamplesPerPixel
Value = see below
Default = 1 (Unsigned integer data)
See also BitsPerSample
The SampleFormat tag shall specify the data type of each sample in a pixel.
The value and data type per sample shall be one of the following:
1 = Unsigned integer
2 = Signed integer
3 = IEEE floating point
4 = Undefined
The value "Undefined" should not be used. A writer may use a value of “Undefined” to indicate that it does not
know the data type of the samples, for example, when copying an existing image. A reader may ignore a
SampleFormat tag having a value of "Undefined".
NOTE: The SampleFormat tag does not specify the size of samples. This is specified in the BitsPerSample tag.
9.1.112 SamplesPerPixel
Tag Name = SamplesPerPixel
Tag = 277 (0115.H)
Type = SHORT
Count = 1
Value = see below
84
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Default = None
See also PhotometricInterpretation
The SamplesPerPixel tag shall specify the number of components in each pixel in the image.
The value shall be one of the following:
Table 34 SamplesPerPixel
Value
Conditions
1
PhotometricInterpretation = 1 (greyscale) or 32803 (CFA)
3
PhotometricInterpretation = 2 (RGB) or 6 (YCbCr)
1 to 7
PhotometricInterpretation = 34892 (Raw)
9.1.113 SecurityClassification
Tag Name = SecurityClassification
Tag = 37394 (9212.H)
Type = ASCII
Count = length of string
Value = see below
Default = None
The SecurityClassification tag shall specify the level of security classification assigned to the image.
The fields and values shall be interpreted as defined in MIL-STD-2500A.
The tag value may be a single ASCII character or a multicharacter ASCII string.
The single character shall be T (= Top Secret), S (= Secret), C (= Confidential), R (= Restricted), or
U (= Unclassified).
© ISO 2008 – All rights reserved
85
ISO/WD 12234-2
The multicharacter ASCII string shall include one or more of the fields in Table 35. The fields should appear in the
order listed in the table. A NULL shall be inserted between each field and its associated value. A NULL character
shall be inserted after each value.
Field
FSCLAS
FSCODE
FSCLTH
FSREL
FSCAUT
FSCTLN
FSDWNG
FSDEVT
Table 35 NITF SecurityClassification
Name
Size
Value range
File Security Classification
1
T, S, C, R or U
File Codewords
40
Alphanumeric
File Control and Handling
40
Alphanumeric
File Releasing Instructions
40
Alphanumeric
File Classification Authority
20
Alphanumeric
File Security Control Number
20
Alphanumeric
File Security Downgrade
6
Alphanumeric
File Downgrading Event
40
Alphanumeric
Type
Required
Optional
Optional
Optional
Optional
Optional
Optional
Conditional
9.1.114 SelfTimerMode
Tag Name = SelfTimerMode
Tag = 34859 (882B.H)
Type = SHORT
Count = 1
Value = see below
Default = None
The SelfTimerMode tag shall specify the number of seconds the image capture was delayed from the time the “take
picture button” was pressed by the camera operator. A value of zero shall specify that the self-timer is off.
9.1.115 SensingMethod
Tag Name = SensingMethod
Tag = 37399 (9217.H)
Type = SHORT
Count = 1
Default = None
The SensingMethod tag shall specify the type of image sensor used when the image was captured.
86
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The value and sensing method shall be one of the following:
0 = Undefined
1 = Monochrome Area sensor
2 = One-Chip Colour Area sensor
3 = Two-Chip Colour Area sensor
4 = Three-Chip Colour Area sensor
5 = Colour Sequential Area sensor
6 = Monochrome Linear sensor
7 = Tri-Linear sensor
8 = Colour Sequential Linear sensor
9.1.116 ShadowScale
Tag Name = ShadowScale
Tag = 50739 (C633.H)
Type = RATIONAL
Count = 1
Value = see below
Default = 1
The ShadowScale tag shall specify the sensitivity of the "Shadows" slider.
<Editor's NOTE: More information is needed to define this tag value>
9.1.117 ShutterSpeedValue
Tag Name = ShutterSpeedValue
Tag = 37377 (9201.H)
Type = RATIONAL
Count = 1
Value = Any positive rational number
Default = None
The ShutterSpeedValue tag shall specify the shutter speed value used when the image was captured, in APEX
units.
9.1.118 Software
Tag Name = Software
© ISO 2008 – All rights reserved
87
ISO/WD 12234-2
Tag = 305 (0131.H)
Type = ASCII
Count = length of string
Value = see below
Default = None
See also Make, Model, UniqueCameraModel, LocalizedCameraModel, CameraSerialNumber
The Software tag shall specify the name and version of the software or firmware used when the image was created.
An empty string shall indicate “unknown”.
9.1.119 SpatialFrequencyResponse
Tag Name = SpatialFrequencyResponse
Tag = 37388 (920C.H)
Type = UNDEFINED
Count = length of the data in bytes
Value = see below
Default = None
The SpatialFrequencyResponse tag shall specify the spatial frequency response (SFR) of the camera. The camera
measured SFR data described in ISO 12233 may be stored as a table of spatial frequencies, horizontal SFR values,
vertical SFR values and diagonal SFR values. This document does not prescribe the values for the column
headings.
The tag contents shall use the following format:
<Editors note: tighten for open sys use>
Table 36 SpatialFrequencyResponse table
Contents
Type
Byte
position
Field length in
bytes
0
2
n = number of table columns
SHORT
1
2
2
m = number of table rows
SHORT
1
4
zzz
n column headings, each stored as a null-terminated ASCII
string
ASCII
4 + zzz
n×m×8
88
Count
zzz
n × m table entries in row major order (all data of first row RATIONAL n × m
given first)
© ISO 2008 – All rights reserved
ISO/WD 12234-2
EXAMPLE: An SFR data table:
Table 37 SpatialFrequencyResponse example
Spatial Frequency (LW/PH) Horizontal SFR Vertical SFR
0,1
1,0
1,0
0,2
0,90
0,95
0,3
0,80
0,85
9.1.120 SpectralSensitivity
Tag Name = SpectralSensitivity
Tag = 34852 (8824.H)
Type = ASCII
Count = length of string
Value = see below
Default = None
The SpectralSensitivity tag shall specify the spectral sensitivity of each channel of the camera when the image was
captured.
The value shall be an ASCII string using the format defined in the ASTM E1708 - 95 Standard Practice for
Electronic Interchange of Colour and Appearance Data. The format includes a keyword list followed by the
associated data values. The following keywords shall be included: NUMBER_OF_FIELDS which equals the
number of channels (spectral bands) + 1, NUMBER_OF_SETS which specify the number of spectral frequency
(wavelength) entries. The first field shall be the wavelength.
<Editors note: tighten for open sys use>
9.1.121 StripByteCounts
Tag Name = StripByteCounts
Tag = 279 (0117.H)
Type = SHORT or LONG
Count = StripsPerImage
PlanarConfiguration = 2)
(when
PlanarConfiguration = 1);
SamplesPerPixel
×
StripsPerImage
(when
Value = see below
Default = None
See also StripOffsets, PlanarConfiguration, RowsPerStrip
The StripByteCounts tag shall specify the number of bytes stored for each strip.
The amount of image data in each strip, prior to compression, should not exceed 64 KBytes.
See the RowsPerStrip tag for the StripsPerImage value.
© ISO 2008 – All rights reserved
89
ISO/WD 12234-2
9.1.122 StripOffsets
Tag Name = StripOffsets
Tag = 273 (0111.H)
Type = SHORT or LONG
Count = StripsPerImage
PlanarConfiguration = 2)
(when
PlanarConfiguration = 1);
SamplesPerPixel
×
StripsPerImage
(when
Value = A list of byte offsets to image data
Default = None
See also PlanarConfiguration, RowsPerStrip, StripByteCounts
The StripOffsets tag shall specify the byte offset(s) to each strip of the image data.
See the RowsPerStrip tag for the StripsPerImage value.
9.1.123 SubIFDs
Tag Name = SubIFDs
Tag = 330 (014A.H)
Type = LONG
Count = number of child IFDs
Value = A list of byte offsets to IFDs
Default = None
See also Section XXX for use of child IFDs.
The SubIFDs tag shall specify the byte offsets to image IFDs that this IFD links to.
The SubIFDs tag may link this IFD to other image IFDs.
The SubIFDs tag shall not link to IFDs not containing images.
9.1.124 SubjectDistance
Tag Name = SubjectDistance
Tag = 37382 (9206.H)
Type = SRATIONAL
Count = 1 or 2
Value = Any positive rational number
Default = None
90
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The SubjectDistance tag shall specify the distance in metres between the front nodal plane of the lens and the
subject. -1/1 shall specify a subject distance of infinity.
<Editors note: underspecified>
NOTE 1: RATIONAL values are used, so that a subject distance of 8 metres is encoded as 8/1.
NOTE 2: The camera may have focused on a subject within the scene, which may not have been the primary
subject.
<Editors note: underspecified>
When the exact value is known, the value shall be specified using a single number. Otherwise, two numbers shall
be present to specify the range of the value. In this case, the first number shall be the minimum value and the
second number shall be the maximum value.
The fields shall be defined as follows:
Table 38 SubjectDistance
Field No.
Value
0
Exact SubjectDistance, if only one value is present. Minimum SubjectDistance of the range of
uncertainty, if two values are present
1
(optional)
Maximum SubjectDistance of the range of uncertainty, if two values are present
9.1.125 SubjectLocation
Tag Name = SubjectLocation
<Editors note: underspecified…. subject same as sub distance?>
Tag = 37396 (9214.H)
Type = SHORT
Count = 2 or 3 or 4
Value = see below
Default = None
The SubjectLocation tag shall specify the approximate location and area of the main subject in the scene. The
subject location shall be specified as a point, a circle, or a rectangle, using 2, 3, or 4 values respectively. The first
two values shall specify a point as an X column number and a Y row number for the centre of the subject location.
When three values are given, the third value shall be the diameter of a circle centred at the point. When four values
are given, the third and fourth values shall be the width and height, respectively, of a rectangle centred at the point.
The fields shall be defined as follows:
Table 39 SubjectLocation
Field No.
0
Value
X column number
© ISO 2008 – All rights reserved
91
ISO/WD 12234-2
1
2 (optional)
Y row number
When Count = 3, Diameter of a circle centred at the point defined by fields 0 and 1.
When Count = 4, Width of a rectangle centred at the point defined by fields 0 and 1.
3 (optional)
Height of a rectangle centred at the point defined by fields 0, 1
9.1.126 SubTileBlockSize
Tag Name = SubTileBlockSize
Tag = 50974 (C71E.H)
Type = SHORT or LONG
Count = 2
Value = <SubTileBlockRows, SubTileBlockCols>
Default = <1, 1>
The SubTileBlockSize tag shall specify the block size as rows and columns of the rectangular blocks into which
pixels within a tile shall be grouped.
The block size shall not exceed the tile or image size, and shall include at least 1 pixel.
Within each block, the pixels shall be stored in row-scan order. The blocks shall be stored in row-scan order.
When the tile size is not an integer multiple of the block size (not recommended), blocks shall be truncated at the
tile boundary, and pixels beyond the tile shall not be stored.
9.1.127 TIFF/EPStandardID
Tag Name = TIFF/EPStandardID
Tag = 37398 (9216.H)
Type = BYTE
Count = 4
Value = <1, 1, 0, 0>
Default = None
The TIFF/EPStandardID tag shall specify the version of the TIFF/EP format of this TIFF/EP file. The value shall be
the four integers <1, 1, 0, 0>.
9.1.128 TileByteCounts
Tag Name = TileByteCounts
Tag = 325 (0145.H)
Type = SHORT or LONG
92
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Count = TilesPerImage (for PlanarConfiguration = 1) or SamplesPerPixel × TilesPerImage (for
PlanarConfiguration = 2)
Value = see below
Default = None
See also TileWidth, TileLength, and TileOffsets
The TileByteCounts tag shall specify the byte count of each stored image tile. The values shall be stored in the
row-scan order of the tiles.
Image data is stored as strips or tiles. The TileByteCounts, TileLength, TileOffsets, and TileWidth tag shall be
present when and only when the image data is stored as tiles.
Images smaller than one tile should not be tiled.
<Editors note: comfirm…1 or 4 or 16?>
The following shall apply when the image is stored as tiles.
The image shall be partitioned in tiles that shall be non-overlapping, adjoining, and aligned with the upper and left
image boundaries.
The amount of image data in a tile, prior to compression, should be between 4 and 32 KBytes (typically 32 to 128
rows and columns).
All tiles shall have the same number of pixels (TileLength rows × TileWidth columns). The image dimensions
(ImageLength, ImageWidth) need not be integer multiples of the tile dimensions (TileLength, TileWidth). In such
case, tiles shall extend beyond the bottom and right image boundaries.
When compression is used, all tiles shall be compressed individually.
The following computed values shall apply when using tiles:
-
TilesAcross = ceiling (ImageWidth / TileWidth)
-
TilesDown = ceiling (ImageLength / TileLength)
-
PaddingColumns = TileWidth × TilesAcross – ImageWidth
-
PaddingRows = TileLength × TilesDown - ImageLength
-
TilesPerImage = TilesAcross × TilesDown
EXAMPLE: If TileWidth is 64 and ImageWidth is 129, then TilesAcross is 3 and PaddingColumns is 63.
Pixeis in the PaddingRows rows and PaddingColumns columns beyond the image boundary shall be filled with
padding values. Any value may be used for padding. Compression shall include the padded pixels. Readers shall
display only the pixels defined by ImageWidth and ImageLength and ignore padded pixels.
NOTE: Some compression schemes perform best if the padding is accomplished by replicating the last
image column and last image row instead of padding with 0’s.
9.1.129 TileLength
Tag Name = TileLength
Tag = 323 (0143.H)
Type = SHORT or LONG
© ISO 2008 – All rights reserved
93
ISO/WD 12234-2
Count = 1
Value = A positive multiple of 16
Default = None
See also TileWidth, TileOffsets, and TileByteCounts
The TileLength tag shall specify the tile length (height) in pixels of the image, as the number of rows in each tile.
The tile width shall be a multiple of 16, and should not exceed ImageLength.
9.1.130 TileOffsets
Tag Name = TileOffsets
Tag = 324 (0144.H)
Type = LONG
Count = TilesPerImage
PlanarConfiguration = 2)
(if
PlanarConfiguration = 1)
or
SamplesPerPixel
×
TilesPerImage
(if
Value = A list of byte offsets to image data
Default = None
See also TileWidth, TileLength, and TileByteCounts
The TileOffsets tag shall specify the byte offset to each image tile. The values shall be stored in the row-scan order
of the tiles.
9.1.131 TileWidth
Tag Name = TileWidth
Tag = 322 (0142.H)
Type = SHORT or LONG
Count = 1
Value = A positive multiple of 16
Default = None
See also TileLength, TileOffsets, and TileByteCounts
The TileWidth tag shall specify the tile width (in pixels) of the image, as the number of columns in each tile. The tile
width shall be a multiple of 16, and should not exceed ImageWidth.
9.1.132 TimeZoneOffset
Tag Name = TimeZoneOffset
Tag = 34858 (882A.H)
Type = SSHORT
94
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Count = 1 or 2
Value = see below
Default = None
The TimeZoneOffset tag shall specify the time zone (relative to Greenwich Mean Time) of the DateTimeOriginal tag
value. When a second value is present, it shall specify the time zone of the DateTime tag value. The values shall
be in the range [–12, +11].
The TimeZoneOffset tag may be present only when the DateTime or DateTimeOriginal tag is present
The fields shall be defined as follows:
Table 40 TimeZoneOffset
Field No.
0
1 (optional)
Value
Time Zone (in hours) of DateTimeOriginal tag value relative to Greenwich Mean Time
Time Zone (in hours) of DateTime tag value relative to Greenwich Mean Time
<Editor’s Note: This tag will be replaced with a new tag that supports offsets of
minutes (or fractional hours), not just hours, in order to accommodate certain time
zones. USE ISO 8601? >
9.1.133 UniqueCameraModel
Tag Name = UniqueCameraModel
Tag = 50708 (C614.H)
Type = ASCII
Count = length of string
Value = null terminated string
Default = None
See also Make, Model, Software, LocalizedCameraModel, CameraSerialNumber
The UniqueCameraModel tag shall specify a unique, non-localized name for the camera model that created the
image.
This name should include the manufacturer's name to avoid conflicts, and should not be localized, even if the
camera name itself is localized for different markets.
A reader may use this string to access per-model preferences and replacement profiles.
EXAMPLE: Unique model names include:
"Canon EOS 300D"
"Fujifilm FinePix S2Pro"
"Kodak ProBack645"
<Editors note: confirm how to provide valid examples vs. no brand names>
© ISO 2008 – All rights reserved
95
ISO/WD 12234-2
9.1.134 WhiteLevel
Tag Name = WhiteLevel
Tag = 50717 (C61D.H)
Type = SHORT or LONG
Count = SamplesPerPixel
Value = see below
Default = 2
BitsPerSample
–1
The WhiteLevel tag shall specify the fully saturated encoding level for the linearized raw sample values.
<Editors note: order of application?>
NOTE: Saturation can be caused either by the sensor itself becoming highly non-linear in response, or by
the camera's analog to digital converter clipping.
9.1.135 XMP
Tag Name = XMP
Tag = 700 (02BC.H)
Type = BYTE
Count = length of the data in bytes
Value = The XMP Packet
Default = None
The XMP tag shall specify the XMP packet.
The XMP packet shall comply with the XMP specification.
Required TIFF tags shall be stored as TIFF tags, and may be stored in the XMP packet, when the equivalent items
are specified in the XMP specification.
<Editors note: Assumption: all structural metadata (ImageWidth…) must be TIFF tags. Valid? >
Descriptive metadata items that are defined in both the XMP specification and in the TIFF tag definitions may be
stored in the XMP packet, as a TIFF tag, or both.
When the same metadata item is stored in both TIFF and XMP format, the TIFF values shall not conflict with the
XMP values.
A file that contains both formats of metadata may be updated to contain only one format of metadata.
Readers shall read both TIFF and XMP metadata.
All XMP metadata shall be contained in a single XMP Packet, which shall identified using the XMP tag. The tag
may contain all the annotation metadata for the image, divided into various namespaces.
96
© ISO 2008 – All rights reserved
ISO/WD 12234-2
A name space can be administered by ISO or by another body in which case ISO 12234-2 will point to the
namespace.
The following is the known list of annotation domains with namespaces and a suggestion for each as to whether
ISO should take over administration or whether ISO 12234-2 should simply point to it.
Data
Recommended Namespace
Comment
TIFF
http://ns.adobe.com/tiff/1.0/
ISO 12234-2 states that mandatory tags be provided
as individual TIFF tags. Optional tags can be placed in
the TIFF schema. ISO should point to the existing XMP
namespace.
EXIF,
including
GPS
New namespace based on
http://ns.adobe.com/exif/1.0/)
ISO will take over responsibility for this namespace.
ISO 12234-2 will provide clarifications in case of
conflicting or vague interpretations.
IPTC/NAA
http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/
Include the updated definition of the copyright tag
(33432) to encourage use of the PLUS (Picture
Licensing Universal System) LDF (License Data
Format). ISO should point to the existing XMP
namespace.
9.1.136 XResolution
Tag Name = XResolution
Tag = 282 (011A.H)
Type = RATIONAL
Count = 1
Value = A positive rational number
Default = None
See also YResolution, ResolutionUnit
The XResolution tag shall specify the image's number of pixels per ResolutionUnit in the ImageWidth direction, for
the desired output rendering.
9.1.137 YCbCrCoefficients
Tag Name = YCbCrCoefficients
Tag = 529 (0211.H)
Type = RATIONAL
Count = 3
Value = <LumaRed, LumaGreen and LumaBlue>
Default = None
© ISO 2008 – All rights reserved
97
ISO/WD 12234-2
See also PhotometricInterpretation, ReferenceBlackWhite, YCbCrPositioning, YCbCrSubSampling
The YCbCrCoefficients tag shall specify the transformation from RGB to YCbCr image data.
The YCbCrCoefficients tag shall be present when and only when PhotometricInterpretation = 6.
LumaRed, LumaGreen and LumaBlue shall be the proportions of red, green and blue respectively in luminance, Y.
The sum of LumaRed, LumaGreen and LumaBlue shall be 1. Each of LumaRed, LumaGreen and LumaBlue shall
be positive.
Y, Cb, and Cr shall be computed from RGB as follows:
y = lr × r + lg × g + lb × b
cb = (b - y) / (2 - 2 × lb)
cr = (r - y) / (2 - 2 × lr)
R, G, and B shall be computed from YCbCr as follows:
r = cr × (2 - 2 × lr) + y
g = (y - lb × b - lr × r) / lg
b = cb × (2 - 2 × lb) + y
where
r = Red code value
b = Blue code value
g = Green code value
y = Y code value
cr = Cr code value
cb = Cb code value
lr = LumaRed value
lg = LumaGreen value
lb = LumaBlue value
The YCbCrCoefficients values will typically reflect the transformation specified by a standard for YCbCr encoding.
The following table shows commonly used values.
Table 41 Commonly used YCbCrCoefficients
Standard
LumaRed
LumaGreen
98
LumaBlue
CCIR Recommendation 601-1
299 / 1000
587 / 1000
114 / 1000
CCIR Recommendation 709
2125 / 10000
7154 / 10000
721 / 10000
© ISO 2008 – All rights reserved
ISO/WD 12234-2
9.1.138 YCbCrPositioning
Tag Name = YCbCrPositioning
Tag = 531 (0213.H)
Type = SHORT
Count = 1
Value = 2
Default = None
See also PhotometricInterpretation, ReferenceBlackWhite, YCbCrCoefficients, YCbCrSubSampling
The YCbCrPositioning tag shall specify the positions of subsampled chrominance components relative to
luminance samples. The tag value shall be 2, indicating "cosited".
The chrominance components shall be sampled at spatial locations identical to luminance sample locations.
The YCbCrPositioning tag shall be present when and only when PhotometricInterpretation = 6.
9.1.139 YCbCrSubSampling
Tag Name = YCbCrSubSampling
Tag = 530 (0212.H)
Type = SHORT
Count = 2
Value = <YCbCrSubsampleHoriz, YCbCrSubsampleVert>
Default = None
See also PhotometricInterpretation, ReferenceBlackWhite, YCbCrCoefficients, YCbCrPositioning
The YCbCrSubSampling tag shall specify the subsampling factors used for the chrominance components of a
YCbCr image. The two fields of this tag, YCbCrSubsampleHoriz and YCbCrSubsampleVert, shall specify the
horizontal and vertical subsampling factors respectively.
The YCbCrSubSampling tag shall be present when and only when PhotometricInterpretation = 6.
The following requirements apply to YCbCr images:
-
Cb and Cr shall have the same subsampling ratio.
-
YCbCrSubsampleVert shall always be less than or equal to YCbCrSubsampleHoriz.
-
ImageWidth, and TileWidth shall be integer multiples of YCbCrSubsampleHoriz.
-
ImageLength, TileLength, and RowsPerStrip shall be integer multiplies of YCbCrSubsampleVert.
© ISO 2008 – All rights reserved
99
ISO/WD 12234-2
The fields shall have one of the following values:
Field
YCbCrSubsampleHoriz
Value
1
2
4
YCbCrSubsampleVert
1
2
4
Table 42 YCbCrSubSampling
Interpretation
ImageWidth of this chroma image shall be equal to the ImageWidth of the
associated luma image.
ImageWidth of this chroma image shall be half the ImageWidth of the associated
luma image.
ImageWidth of this chroma image shall be one-quarter the ImageWidth of the
associated luma image.
ImageLength (height) of this chroma image shall be equal to the ImageLength of
the associated luma image.
ImageLength (height) of this chroma image shall be half the ImageLength of the
associated luma image.
ImageLength (height) of this chroma image shall be a quarter of the
ImageLength of the associated luma image.
9.1.140 YResolution
Tag Name = YResolution
Tag = 283 (011B.H)
Type = RATIONAL
Count = 1
Value = A positive rational number
Default = None
See also XResolution, ResolutionUnit
The YResolution tag shall specify the image's number of pixels per ResolutionUnit in the ImageLength direction, for
the desired output rendering.
100
© ISO 2008 – All rights reserved
ISO/WD 12234-2
7
9.2 Opcode Instructions
9.2.1 General
An opcode list shall be a list of opcodes, each of which shall specify an image processing operation to be applied
by the reader. Opcode lists shall be specified in opcode tags defined in Section 5.3 for Profile 2 subIFDs. There
are three possible opcode tags specifying operations at three distinct points in the processing pipeline defined in
Section 4.x.
Each opcode shall be applied in the sequence specified in the list.
Opcode lists shall be stored in big-endian byte order, regardless of the file’s main byte order. This allows utility
programs to copy opcode lists from file to file, without needing to understand their detailed internal structure.
At the start of the opcode list, there shall be a 32-bit unsigned integer count, which shall contain the number of
opcodes in the list. This shall be followed by the data for each opcode.
Each opcode shall start with a 32-bit unsigned integer, which shall contain the opcode ID. The opcode ID shall
identify the specific opcode, which shall be one of the opcodes defined in this specification.
Next shall be a 32-bit unsigned integer, which shall contain the DNG specification version in which the opcode ID
was defined. The four-part version number shall be treated as a 4-digit number with the radix 256.
New opcode IDs might be defined in future specification versions. A reader should not attempt to process an
opcode with a version higher than the specification version that the reader was written to support.
Next shall be a 32-bit unsigned integer, which shall contain flag bits. There shall be two defined flag bits. When bit
0 (the least significant bit) is set to 1, the reader need not apply this opcode. When bit 1 (the second to least
significant bit) is set to 1, the reader need not apply this opcode when doing “preview quality” processing, and the
reader shall apply this opcode when doing “full quality” processing.
Next shall be a 32-bit unsigned integer, which shall contain the number of bytes in a variable size parameter area
for the opcode. The format of this variable size parameter area shall be as defined in the definition of the specific
opcode.
<Editors note: Where are the bytes stored? After the byte count?>
After the application of each opcode, image values shall be clipped to the value range of the image being modified.
32
For OpcodeList1, this range shall be 0 to 4 294 967 295 (= 2 -1) for images with a bit depth greater than 16,
16
otherwise 0 to 65 535 (= 2 -1). For OpcodeList2 and OpcodeList3, the range shall be 0.0 to 1.0.
© ISO 2008 – All rights reserved
101
ISO/WD 12234-2
Table 43 illustrates the opcode list structure.
Table 43 Opcode List Structure
Type
Contents
LONG
Opcode Count (n)
LONG
Opcode ID 1
LONG
Version
LONG
Flag bits
LONG
Byte count (m1)
BYTE[m1]
Parameters
…
LONG
Opcode ID n
LONG
Version
LONG
Flag bits
LONG
Byte count (mn)
BYTE[mn]
Parameters
The opcodes are defined as follows, in alphabetical order.
9.2.2 DeltaPerColumn
Opcode ID = 11
DNG Version = 1.3.0.0
Parameters
Top - LONG
Left - LONG
Bottom - LONG
Right - LONG
Plane - LONG
Planes - LONG
RowPitch - LONG
ColPitch - LONG
Count - LONG
For Each Count:
Delta - FLOAT
This opcode shall add a per-column delta (constant offset) to values in a specified area and plane range of an
image.
102
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The Top, Left, Bottom, and Right parameters specify the bounding rectangle of the area on the image, the Plane
and Planes parameters specify the first plane and the number of planes, and RowPitch and ColPitch specify the
spacing of rows and columns to be affected.
The affected planes shall be planes [Plane, (Plane + Planes – 1)].
The affected rows shall be rows Top + RowPitch × i, where integer i ∈ [0, Floor ((Bottom – Top) / RowPitch)].
The affected columns shall be columns Left + ColPitch × j, where integer j ∈ [0, Floor ((Right – Left) / ColPitch)].
The rectangle shall include at least 1 sample position, and shall not extend outside the image. The list of planes
shall not extend beyond the number of planes available in the image. The values Plane, Planes, RowPitch, and
ColPitch shall be positive.
The Count value shall match the number of affected columns.
There shall be Count number of Delta values.
The Delta value in position k shall be added to the values in the affected column k.
9.2.3 DeltaPerRow
Opcode ID = 10
DNG Version = 1.3.0.0
Parameters
<Editor's note: this and following format specifications are not in line with tag value specifications.>
Top - LONG
Left - LONG
Bottom - LONG
Right - LONG
Plane - LONG
Planes - LONG
RowPitch - LONG
ColPitch - LONG
Count - LONG
For Each Count:
Delta - FLOAT
This opcode shall add a per-row delta (constant offset) to values in a specified area and plane range of an image.
The Top, Left, Bottom, and Right parameters specify the bounding rectangle of the area on the image, the Plane
and Planes parameters specify the first plane and the number of planes, and RowPitch and ColPitch specify the
spacing of rows and columns to be affected.
© ISO 2008 – All rights reserved
103
ISO/WD 12234-2
The affected planes shall be planes [Plane, (Plane + Planes – 1)].
The affected rows shall be rows Top + RowPitch × i, where integer i ∈ [0, Floor ((Bottom – Top) / RowPitch)].
The affected columns shall be columns Left + ColPitch × j, where integer j ∈ [0, Floor ((Right – Left) / ColPitch)].
The rectangle shall include at least 1 sample position, and shall not extend outside the image. The list of planes
shall not extend beyond the number of planes available in the image. The values Plane, Planes, RowPitch, and
ColPitch shall be positive.
The Count value shall match the number of affected rows.
There shall be Count number of Delta values.
The Delta value in position k shall be added to the values in the affected row k.
9.2.4 FixBadPixelsConstant
Opcode ID = 4
DNG Version = 1.3.0.0
Parameters
Constant - LONG
BayerPhase - LONG
This opcode patches (interpolates over) bad pixels in a Bayer pattern CFA image.
The bad pixels in the image shall have the value Constant.
BayerPhase shall be 0, when the top-left pixel of the image is red pixel.
BayerPhase shall be 1, when the top-left pixel of the image is green pixel in a green/red row.
BayerPhase shall be 2, when the top-left pixel of the image is green pixel in a green/blue row.
BayerPhase shall be 3, when the top-left pixel of the image is blue pixel.
9.2.5 FixBadPixelsList
Opcode ID = 5
DNG Version = 1.3.0.0
Parameters
BayerPhase - LONG
BadPointCount - LONG
BadRectCount - LONG
For Each BadPointCount:
104
© ISO 2008 – All rights reserved
ISO/WD 12234-2
BadPointRow - LONG
BadPointColumn - LONG
For Each BadRectCount:
BadRectTop - LONG
BadRectLeft - LONG
BadRectBottom - LONG
BadRectRight - LONG
This opcode shall correct (interpolate over) specified defect pixels and defect rectangles in a Bayer pattern CFA
image.
BayerPhase shall be 0, when the top-left pixel of the image is red pixel.
BayerPhase shall be 1, when the top-left pixel of the image is green pixel in a green/red row.
BayerPhase shall be 2, when the top-left pixel of the image is green pixel in a green/blue row.
BayerPhase shall be 3, when the top-left pixel of the image is blue pixel.
BadPointCount shall be the number of single defect pixels. Each pair BadPointRow and BadPointColumn shall
specify the coordinates of a defect pixel to correct.
BadRectCount shall be the number of defect rectangles. For each rectangle, [BadRectTop, BadRectBottom] and
[BadRectLeft, BadRectRight] shall be the bounding rows and columns of the rectangle to correct. Each rectangle
shall include at least 1 pixel position, and shall not extend outside the image.
9.2.6 FixVignetteRadial
Opcode ID = 3
DNG Version = 1.3.0.0
<Editors note: Convert these formula images to text so a spec reader can copy-paste these instructions>
Parameters
This opcode shall apply a gain function to an image. This can be used to correct vignetting.
© ISO 2008 – All rights reserved
105
ISO/WD 12234-2
Parameters (
) shall define a radially-symmetric gain function.
When all terms are zero, then the gain function shall be the identity funciton (that is, no gain will be applied).
Parameters
of the image.
shall be the normalized x- and y-coordinates of the optical centre, relative to the top-left pixel
Example 1: specifying (0.5, 0.5) means that the optical centre lies exactly at the image centre.
Example 2: specifying (1, 0) means that the optical centre lies at the top-right pixel of the image.
Processing of this opcode shall be performed as follows.
shall be the uncorrected pixel value of image plane i of the image at pixel position (x, y) (that is, before
opcode processing).
shall be the corrected pixel value of image plane i of the image at pixel position (x, y) (that is, after opcode
processing).
For each pixel (x, y) in image plane i of the image, the following transform shall be applied:
where
<Editors note: Convert these formula images to text so a spec reader can copy-paste these instructions
reorder in procedural order with g last>
m = the Euclidean distance (in pixels) from the optical centre to the farthest pixel in the image
r = the normalized Euclidean distance in range [0, 1] from the optical centre to a given pixel.
106
© ISO 2008 – All rights reserved
ISO/WD 12234-2
9.2.7 GainMap
Opcode ID = 9
DNG Version = 1.3.0.0
Parameters
Top - LONG
Left - LONG
Bottom - LONG
Right - LONG
Plane - LONG
Planes - LONG
RowPitch - LONG
ColPitch - LONG
MapPointsV - LONG
MapPointsH - Long
MapSpacingV - DOUBLE
MapSpacingH - DOUBLE
MapOriginV - DOUBLE
MapOriginH - DOUBLE
MapPlanes - LONG
For Each MapPointsV
For Each MapPointsH
For Each MapPlanes
MapGain - FLOAT
This opcode shall multiply sample values within a specified area and plane range of an image with values from an
overlayed gain map.
The Top, Left, Bottom, and Right parameters specify the bounding rectangle of the area on the image, the Plane
and Planes parameters specify the first plane and the number of planes, and RowPitch and ColPitch specify the
spacing of rows and columns to be affected.
The affected planes shall be planes [Plane, (Plane + Planes – 1)].
The affected rows shall be rows Top + RowPitch × i, where integer i ∈ [0, Floor ((Bottom – Top) / RowPitch)].
The affected columns shall be columns Left + ColPitch × j, where integer j ∈ [0, Floor ((Right – Left) / ColPitch)].
© ISO 2008 – All rights reserved
107
ISO/WD 12234-2
The rectangle shall include at least 1 sample position, and shall not extend outside the image. The list of planes
shall not extend beyond the number of planes available in the image. The values Plane, Planes, RowPitch, and
ColPitch shall be positive.
The gain map shall be a sub-sampled two-dimensional floating-point texture map, including at least 1 value.
MapPointsV shall be the number of samples in vertical direction. MapPointsH shall be the number of samples in the
horizontal direction. MapPlanes shall specify the number of planes in the gain map.
<Editors note: “area being modified” below….how to distinguish between the whole image or an area of
interest>
The extent of the gain map need not be aligned with the extent of the image area being modified. Inside the gain
map bounds, gain map values shall be interpolated using bi-linear interpolation. Outside the gain map bounds, gain
map values shall be replicated from the nearest edge values of the gain map.
The origin of the gain map relative to the image area being modified shall be specified by MapOriginV (vertical
direction) and MapOriginH (horizontal direction), which shall be in relative coordinates, where 1.0 shall be equal to
the height or width of the image area being modified, respectively.
The spacing between gain map points shall be specified by MapSpacingV (vertical direction) and MapSpacingH
(horizontal direction). These shall be in relative coordinates, where 1.0 shall be equal to the height or width of the
image area being modified, respectively.
When Planes > MapPlanes, the last gain map plane shall be used for any remaining planes being modified.
9.2.8 MapPolynomial
Opcode ID = 8
DNG Version = 1.3.0.0
Parameters
Top - LONG
Left - LONG
Bottom - LONG
Right - LONG
Plane - LONG
Planes - LONG
RowPitch - LONG
ColPitch - LONG
Degree - LONG
For Each Value 0...Degree:
Coefficient - DOUBLE
This opcode shall map sample values within a specified area and plane range of an image through a polynomial
function.
108
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The Top, Left, Bottom, and Right parameters specify the bounding rectangle of the area on the image, the Plane
and Planes parameters specify the first plane and the number of planes, and RowPitch and ColPitch specify the
spacing of rows and columns to be affected.
The affected planes shall be planes [Plane, (Plane + Planes – 1)].
The affected rows shall be rows Top + RowPitch × i, where integer i ∈ [0, Floor ((Bottom – Top) / RowPitch)].
The affected columns shall be columns Left + ColPitch × j, where integer j ∈ [0, Floor ((Right – Left) / ColPitch)].
The rectangle shall include at least 1 sample position, and shall not extend outside the image. The list of planes
shall not extend beyond the number of planes available in the image. The values Plane, Planes, RowPitch, and
ColPitch shall be positive.
The mapping function shall be a polynomial of degree Degree. Degree shall be in range [0, 8]. The coefficients
shall be stored in increasing order, starting with the zero degree coefficient (constant term).
9.2.9 MapTable
Opcode ID = 7
DNG Version = 1.3.0.0
Parameters
Top - LONG
Left - LONG
Bottom - LONG
Right - LONG
Plane - LONG
Planes - LONG
RowPitch - LONG
ColPitch - LONG
TableSize - LONG
For Each TableSize:
TableEntry - SHORT
This opcode shall map sample values within a specified area and plane range of an image through a 16-bit onedimensional LUT.
The Top, Left, Bottom, and Right parameters specify the bounding rectangle of the area on the image, the Plane
and Planes parameters specify the first plane and the number of planes, and RowPitch and ColPitch specify the
spacing of rows and columns to be affected.
The affected planes shall be planes [Plane, (Plane + Planes – 1)].
The affected rows shall be rows Top + RowPitch × i, where integer i ∈ [0, Floor ((Bottom – Top) / RowPitch)].
© ISO 2008 – All rights reserved
109
ISO/WD 12234-2
The affected columns shall be columns Left + ColPitch × j, where integer j ∈ [0, Floor ((Right – Left) / ColPitch)].
The rectangle shall include at least 1 sample position, and shall not extend outside the image. The list of planes
shall not extend beyond the number of planes available in the image. The values Plane, Planes, RowPitch, and
ColPitch shall be positive.
There shall be TableSize number of entries in the 16-bit LUT. TableSize shall be in range [1, 65 535]. The
TableEntry value in position k shall specify the output value for sample value k, where k ∈ [0, TableSize – 1].
9.2.10 ScalePerColumn
Opcode ID = 13
DNG Version = 1.3.0.0
Parameters
Top - LONG
Left - LONG
Bottom - LONG
Right - LONG
Plane - LONG
Planes - LONG
RowPitch - LONG
ColPitch - LONG
Count - LONG
For Each Count:
Scale - FLOAT
This opcode shall apply a per-column scale to values in a specified area and plane range of an image.
The Top, Left, Bottom, and Right parameters specify the bounding rectangle of the area on the image, the Plane
and Planes parameters specify the first plane and the number of planes, and RowPitch and ColPitch specify the
spacing of rows and columns to be affected.
The affected planes shall be planes [Plane, (Plane + Planes – 1)].
The affected rows shall be rows Top + RowPitch × i, where integer i ∈ [0, Floor ((Bottom – Top) / RowPitch)].
The affected columns shall be columns Left + ColPitch × j, where integer j ∈ [0, Floor ((Right – Left) / ColPitch)].
The rectangle shall include at least 1 sample position, and shall not extend outside the image. The list of planes
shall not extend beyond the number of planes available in the image. The values Plane, Planes, RowPitch, and
ColPitch shall be positive.
The Count value shall match the number of affected columns.
110
© ISO 2008 – All rights reserved
ISO/WD 12234-2
There shall be Count number of Scale values.
The values in the affected column k shall be multiplied with the Scale value in position k
9.2.11 ScalePerRow
Opcode ID = 12
DNG Version = 1.3.0.0
Parameters
Top - LONG
Left - LONG
Bottom - LONG
Right - LONG
Plane - LONG
Planes - LONG
RowPitch - LONG
ColPitch - LONG
Count - LONG
For Each Count:
Scale - FLOAT
This opcode shall apply a per-row scale to values in a specified area and plane range of an image.
The Top, Left, Bottom, and Right parameters specify the bounding rectangle of the area on the image, the Plane
and Planes parameters specify the first plane and the number of planes, and RowPitch and ColPitch specify the
spacing of rows and columns to be affected.
The affected planes shall be planes [Plane, (Plane + Planes – 1)].
The affected rows shall be rows Top + RowPitch × i, where integer i ∈ [0, Floor ((Bottom – Top) / RowPitch)].
The affected columns shall be columns Left + ColPitch × j, where integer j ∈ [0, Floor ((Right – Left) / ColPitch)].
The rectangle shall include at least 1 sample position, and shall not extend outside the image. The list of planes
shall not extend beyond the number of planes available in the image. The values Plane, Planes, RowPitch, and
ColPitch shall be positive.
The Count value shall match the number of affected rows.
There shall be Count number of Scale values.
The values in the affected row k shall be multiplied with the Scale value in position k
© ISO 2008 – All rights reserved
111
ISO/WD 12234-2
9.2.12 TrimBounds
Opcode ID = 6
DNG Version = 1.3.0.0
Parameters
Top - LONG
Left - LONG
Bottom - LONG
Right - LONG
This opcode shall crop the image to a rectangle, defined by the rows [Top, Bottom] and columns [Left, Right]. The
rectangle shall include at least 1 sample position, and shall not extend outside the image.
9.2.13 WarpFisheye
Opcode ID = 2
DNG Version = 1.3.0.0
Parameters
Number of coefficient sets
<Editors note: Check ISO, Convert these formula images to text so a spec reader can copy-paste these
instructions???>
For each coefficient set i, where i ∈ {1, 2, …, N}:
This opcode shall apply a warp to an image.
This can be used to “unwrap” an image captured with a fisheye lens and map it instead to a perspective projection.
It can also be used to correct geometric distortion and lateral (transverse) chromatic aberration for both fisheye and
rectilinear lenses. This opcode can be used to correct lateral (transverse) chromatic aberration by specifying the
appropriate coefficients for each image plane separately.
112
© ISO 2008 – All rights reserved
ISO/WD 12234-2
shall denote coefficient set i, where i ∈ {1, 2, …, N}.
Parameter N shall be the number of coefficient sets. N shall be 1 or the total number of image planes.
When N = 1, a single set of warp coefficients (that is K1) shall be applied to all image planes. All planes undergo the
same transformation.
When N > 1, coefficient set
first image plane,
shall be used to process image plane i, that is, K1 defines the warp function for the
defines the warp function for the second image plane, etc.
Parameters
shall be the coefficients that define the warp function for image
plane i. See below for implementation details and restrictions.
Parameters
of the image.
shall be the normalized x- and y-coordinates of the optical centre, relative to the top-left pixel
Example 1: specifying (0.5, 0.5) means that the optical centre lies exactly at the image centre.
Example 2: specifying (1, 0) means that the optical centre lies at the top-right pixel of the image.
Processing of this opcode shall be performed as follows.
shall be the pixel value of image plane i of the original unwarped image at pixel position (x', y'), that is,
before opcode processing.
shall be the pixel value of image plane i of the warped image at pixel position (x, y), that is, after opcode
processing.
For each pixel (x, y) of image plane i of the warped image, the following transform shall be applied:
The transform shall be as follows:
The pixel at position (x', y') in the original unwarped image shall be moved to position (x, y) in the final warped
image, where
<Editors note:
instructions?>
Check ISO.
© ISO 2008 – All rights reserved
Convert these formula images to text so a spec reader can copy-paste these
113
ISO/WD 12234-2
<Editors note: Reorder the functional steps in operational sequence so x' y' are last.>
m = the Euclidean distance (in pixels) from the optical centre to the farthest pixel in the image
r = the normalized Euclidean distance [0, 1] from the optical centre to a given pixel.
Implementations should use a suitable resampling kernel, such as a cubic spline.
Each coefficient set
shall satisfy the following constraints.
Let
, where
shall be an increasing function of r for all
.
, that is,
.
9.2.14 WarpRectilinear
Opcode ID = 1
DNG Version = 1.3.0.0
Parameters
<Editors note: check ISO.
instructions>
Convert these formula images to text so a spec reader can copy-paste these
Number of coefficient sets
114
© ISO 2008 – All rights reserved
ISO/WD 12234-2
For each coefficient set i, where i ∈ {1, 2, …, N}:
This opcode shall apply a warp to an image. The warp function supports both radial and tangential distortion
correction.
This opcode can be used to correct geometric distortion and lateral (transverse) chromatic aberration for rectilinear
lenses by specifying the appropriate coefficients for each image plane separately.
shall denote coefficient set i, where i ∈ {1, 2, …, N}
Parameter N shall be the number of coefficient sets. N shall be 1 or the total number of image planes.
When N = 1, a single set of warp coefficients (that is K1) shall be applied to all image planes. All planes undergo the
same transformation.
When N > 1, coefficient set
first image plane,
shall be used to process image plane i , that is, K1 defines the warp function for the
defines the warp function for the second image plane, etc.
Parameters
shall be the radial and tangential coefficients that define
the warp function for image plane i. See below for implementation details and restrictions.
When
and the remaining terms are zero, then the warp function shall be the identity function (that is, no
warp will be applied).
Parameters
of the image.
shall be the normalized x- and y-coordinates of the optical centre, relative to the top-left pixel
Example 1: specifying (0.5, 0.5) means that the optical centre lies exactly at the image centre.
Example 2: specifying (1, 0) means that the optical centre lies at the top-right pixel of the image.
Processing of this opcode shall be performed as follows.
© ISO 2008 – All rights reserved
115
ISO/WD 12234-2
shall be the pixel value of image plane i of the original unwarped image at pixel position (x', y'), that is,
before opcode processing.
shall be the pixel value of image plane i of the warped image at pixel position (x, y), that is, after opcode
processing.
For each pixel (x, y) of image plane i of the warped image, the following transform shall be applied:
The transform shall be as follows:
The pixel at position (x', y') in the original unwarped image shall be moved to position (x, y) in the final warped
image, where
<Editors note: check ISO.
instructions>
Convert these formula images to text so a spec reader can copy-paste these
<Editors note: Reorder in procedural order so x' y' are last?>
116
© ISO 2008 – All rights reserved
ISO/WD 12234-2
and
shall be the radial and tangential warp components, respectively.
m = the Euclidean distance (in pixels) from the optical centre to the farthest pixel in the warped image.
r = the normalized Euclidean distance [0, 1] from the optical centre to a given pixel in the warped image.
Implementations should use a suitable resampling kernel, such as a cubic spline.
Each coefficient set
shall satisfy the following constraints.
Let
be the 2D warp function defined above.
Let
and
be the x-component and y-component of
Let
, respectively.
.
The constraints shall be:
shall be invertible.
shall be an increasing function of x for all
, that is,
.
shall be an increasing function of y for all
, that is,
.
shall be an increasing function of r for all
© ISO 2008 – All rights reserved
, that is,
.
117
ISO/WD 12234-2
Annex A
(informative)
TIFF/EP Colour Management Overview
A.1 Colour management modes
The TIFF/EP image format standard supports four possible colour management modes: sRGB, ICC, DNG and
DNG+ICC. The first two modes are supported by Interoperability Profile 1 and the latter two are supported by
Interoperability Profile 2. It is also possible for an Interoperability Profile 2 reader to support the DNG colour
management mode with an Interoperability Profile 1 TIFF/EP file if the required DNG metadata is present. Colour
filter array (CFA) image data, where the missing pixel colour values have not been reconstructed (demosaiced),
can only be supported by Interoperability Profile 2.
A.2 sRGB colour management mode
With the sRGB colour management mode, the image data is converted to the sRGB colour image encoding by the
image file creator prior to being placed in the TIFF/EP file format. The image file receiver then has to be able to
utilize image data encoded as sRGB. With this colour management mode, the TIFF/EP writer and reader do not
perform any colour management conversions. The colour conversions required to create the sRGB image data
from the intended sRGB reference display colorimetry, and to determine the sRGB reference display colorimetry
from sRGB-encoded image data, are specified in IEC 61966-2-1, with additional information provided in ISO
22028-1. The processing required to create the intended sRGB reference display colorimetry (e.g. in a scanner,
digital camera or camera raw processing application), and the processing required to utilize the sRGB reference
display colorimetry (e.g. for display or printing), are intentionally not standardized, in order to allow for product
differentiation and improvement.
A.3 ICC colour management mode
With the ICC colour management mode, an ICC profile appropriate for the image data is included in the TIFF/EP
metadata (i.e the ICC profile is “embedded” in the TIFF/EP file). The colour encoding used for the image data in the
TIFF/EP file can be any colour encoding for which an ICC profile can be constructed. As ICC profiles are applied
globally to the image data this excludes image data requiring spatially varying processing, such as CFA data.
Except for this exclusion, a great many colour encodings can be supported using ICC profiles, such as:
- Standard output-referred colour image encodings such as sRGB (IEC 61966-2-1), ROMM RGB (ISO 22028-2),
ECI RGB (ISO 22028-4), opRGB (IEC 61966-2-4) and ISO _____ (find DCDM X’Y’Z’ number in TC36).
- Standard scene-referred colour encodings such as scRGB (IEC 61966-2-2) and RIMM and ERIMM RGB (ISO
22028-3).
- Publicly specified vendor colour image encodings such as Adobe RGB (1998).
- A variety of working colour spaces, where the ICC profile embedded is created considering the reference medium
used.
- A variety of native camera colour spaces, so long as the colour values are spatially co-located or have been
processed (demosaiced) to produce co-located values for encoding in the image file.
With scene-referred colour encodings the embedded ICC profiles can be image specific, to include image specific
colour rendering to the ICC perceptual reference medium. With native camera colour spaces the embedded ICC
profiles will typically need to be image specific to account for differences in the scene adopted white, camera flare,
118
© ISO 2008 – All rights reserved
ISO/WD 12234-2
OECF and camera spectral sensitivities, as well as the possibility of image specific colour rendering to the ICC
perceptual reference medium.
When ICC colour management is used with Interoperability Profile 1 files, the embedded ICC profile is
communicated with the image data for interpretation and subsequent colour conversions. The receiving application
or device is expected to be able to convert to the desired destination colour encoding using the embedded ICC
profile and the ICC profile for the destination colour encoding, which is supplied by the receiving application or
device. In cases where the receiving application or device cannot perform a colour conversion using ICC profiles,
the reader is required to use a sRGB profile as the destination profile and to convert to the sRGB colour image
encoding directly, and the resulting sRGB image data is then communicated to the receiving application or device.
The rendering intent specified in the embedded ICC profile header is used unless overridden by the user through a
user interface.
NOTE A specific sRGB ICC profile can be embedded in an Interoperability Profile 1 file to provide a specific colour re-rendering
to the ICC perceptual reference medium.
A.4 DNG colour management mode
With the DNG colour management mode, colour metadata pertaining to the processing of the encoded colour data
is contained in various TIFF/EP tags. Taken collectively, these tags are referred to as the “DNG profile.”
NOTE The DNG profile metadata is distributed across different TIFF/EP tags and does not have a self-contained profile format.
ICC profiles have a self-contained profile format and can be communicated individually or embedded in other content formats
such as JPEG and PDF.
The DNG profile metadata provides the information necessary for Interoperability Profile 2 readers to convert the
image file data to a scene-referred colour encoding. This conversion can be accomplished using default or cameraprovided values specified in the TIFF/EP file, or by adjusting the values in a camera raw processing application
user interface. Interoperability Profile 2 readers are required to have the capability to produce an Interoperability
Profile 1 TIFF/EP file as the result of the DNG colour management processing, but different readers may produce
different resulting files. As the primary benefit of the DNG colour management mode is to provide the capability for
users to adjust the processing to both scene-referred (e.g. white balance), and output-referred (e.g. colour
rendering), it is anticipated that camera raw processing applications will typically be the receiving applications, and
that a user interface will be available.
It is allowed to include DNG profile metadata in an Interoperability Profile 1 file, although the DNG profile metadata
will be ignored by an Interoperability Profile 1 reader.
Camera raw processing applications are also allowed to use other TIFF/EP metadata for processing. For example,
the OECF and SpectralSensitivity tags could be used to determine conversions to scene-referred other than those
provided in the DNG profile (or if a DNG profile is not present), or the BrightnessValue tag could be used to guide
automated colour rendering processing. DNG profile metadata may optionally include colour rendering processing
metadata but reader support of such metadata is not required.
A.5 DNG+ICC colour management mode
With the DNG+ICC colour management mode, both the DNG profile metadata and an ICC profile are present in the
TIFF/EP file. The DNG profile metadata and camera raw reader application are used to convert to ICC PCSXYZ
values. These values are then sent to the receiving application or saved with the embedded PCSXYZ v4 ICC
profile that provides a conversion to the ICC perceptual reference medium (colour rendering to output-referred).
The embedded ICC profiles can be image-specific. When both the DNG profile metadata and an ICC profile are
present in an Interoperability Profile 2 TIFF/EP file, it is assumed that the DNG profile metadata will be used for the
conversion to PCSXYZ, and the ICC profile will be applied after this conversion. The ICC profile is not applied
directly to the image data in the Interoperability Profile 2 TIFF/EP file.
© ISO 2008 – All rights reserved
119
ISO/WD 12234-2
Annex B
(informative)
DNG Colour Processing Guidelines
<Editor's Note: This annex is based on information available in DNG v1.2 document. The information below is
copied directly from the document (except for editors notes) and may be revised. A brief explanation on the
theoretical basis for this colour processing pipeline will be added. One example is the use of interpolation between
two matrices - one derived from a tungsten-type blackbody radiator illuminant and the second derived from a
daylight-type illuminant. The assumption is that an image with a computed color temperature in between the two
calibration matrices was captured under an illuminant of (linear) mixed lighting. If the illuminant is unique, it can be
characterized by a unique set of color tags, placed in a different "camera profile" as described in the Camera
Profiles section.>
B.1 Introduction
This section describes the Interoperability Profile 2 colour processing applied based on the DNG profile metadata.
NOTE The colour processing applied based on the ICC profile metadata is specified in ISO 15076-1 and other ICC publications.
Mapping the native camera color space to the CIE XYZ color space
This section describes DNG's processing model for mapping between the camera color space coordinates (linear
reference values) and CIE XYZ (with a D50 adopted neutral chromaticity).
Camera Calibration Matrices
DNG 1.2.0.0 and later supports different companies creating the camera calibration tags using different reference
cameras.
When rendering a DNG file using a camera profile, it is important to know if the selected camera profile was
designed using the same reference camera as was used to create the camera calibration tags. If so, the camera
calibration tags should be used. Otherwise, it is better to ignore the camera calibration tags, and use identity
matrices instead, to minimize the worse case calibration mismatch error.
This is matching is done by comparing the CameraCalibrationSignature tag and the ProfileCalibrationSignature tag
for the selected camera profile. If they match, use the camera calibration tags. Otherwise, use identity matrices
instead.
One or Two Color Calibrations
DNG provides for one or two sets of color calibration tags, each set optimized for a different illuminant. If both sets
of color calibration tags are included, the raw converter should interpolate between the calibrations based on white
balance selected by the user.
If two calibrations are included, it is recommended that one of the calibrations be for a low color temperature
illuminant (e.g., Standard-A), and the second calibration illuminant be a higher color temperature illuminant (e.g.,
D55 or D65). This combination has been found to work well for wide range of real-world digital camera images.
DNG versions before 1.2.0.0 left the choice of interpolation algorithm up the raw converter. DNG 1.2.0.0 and later
requires a specific interpolation algorithm, which is linear interpolation using inverse correlated color temperature.
The find the interpolation weighting factor between the two tags sets, find the correlated color temperature for the
user selected white balance, and the two calibration illuminants. If the white balance temperature is between two
120
© ISO 2008 – All rights reserved
ISO/WD 12234-2
calibration illuminant temperatures, invert all the temperatures and use linear interpolation. Otherwise, use the
closest calibration tag set.
Definitions used in the following sections:
Let n be the dimensionality of the camera color space (usually 3 or 4).
Let CM be the n-by-3 matrix interpolated from the ColorMatrix1 and ColorMatrix2 tags.
Let CC be the n-by-n matrix interpolated from the CameraCalibration1 and CameraCalibration2 tags (or identity
matrices if the signatures don’t match).
Let AB be the n-by-n matrix, which is zero except for the diagonal entries, which are defined by the AnalogBalance
tag.
Let RM be the 3-by-n matrix interpolated from the ReductionMatrix1 and ReductionMatrix2 tags.
Let FM be the 3-by-n matrix interpolated from the ForwardMatrix1 and ForwardMatrix2 tags.
Translating White Balance xy Coordinates to Camera Neutral Coordinates
If the white balance is specified in terms on an CIE xy coordinate, this can be translated to a camera neutral
coordinate by first finding the correlated color temperature for the xy value. This determines the interpolation
weighting factor to use between the two sets of color calibration tags.
The XYZ to camera space matrix is:
XYZtoCamera = AB * CC * CM
The camera neutral can be found by computing expanding the xy value to an 3-by-1 XYZ matrix (assuming Y = 1.0),
and multiplying it with the XYZtoCamera matrix.
CameraNeutral = XYZtoCamera * XYZ
Translating Camera Neutral Coordinates to White Balance xy Coordinates
This is slightly more complex than the transform the other direction, since it requires an iterative solution.
First guess an xy value. Use that guess to find the interpolation weighting factor between the color calibration tags.
Find the XYZtoCamera matrix as above.
Then find a new xy value by computing:
XYZ = Inverse (XYZtoCamera) * CameraNeutral
(If the XYZtoCamera matrix is not square, use the pseudo inverse.)
And converting the resulting XYZ to a new xy value.
Iterate until the xy values converge to a solution.
Camera to XYZ (D50) Transform
DNG 1.2.0.0 and later support two ways to specify the camera to XYZ (D50) transform, depending on whether the
forward matrix tags are included in the camera profile or not.
The use of the forward matrix tags is recommended for two reasons. First, it allows the camera profile creator to
control the chromatic adaptation algorithm used to convert between the calibration illuminant and D50. Second, is
causes the white balance adjustment (if the user white balance does not match the calibration illuminant) to be
© ISO 2008 – All rights reserved
121
ISO/WD 12234-2
done by scaling the camera coordinates rather than adapting the resulting XYZ values, which has been found to
work better in extreme cases.
If the ForwardMatrix tags are not included in the camera profile:
First we need to invert the XYZtoCamera matrix.
If n = 3, this is just:
CameraToXYZ = Inverse (XYZtoCamera)
If n > 3, and the reduction matrix tags are included, then:
CameraToXYZ = Inverse (RM * XYZtoCamera) * RM
Otherwise:
CameraToXYZ = PseudoInverse (XYZtoCamera)
The white balanced transform is computed:
CameraToXYZ_D50 = CA * CameraToXYZ
Where CA is a chromatic adaptation matrix that maps from the white balance xy value to the D50 white point. The
recommended way to compute this chromatic adaptation matrix is to use the linear Bradford algorithm.
If the ForwardMatrix tags are included in the camera profile:
CameraToXYZ_D50 = FM * D * Inverse (AB * CC)
Where D is a diagonal n-by-n matrix, computed as required to so the CameraToXYZ_D50 matrix maps the selected
camera neutral to XYZ D50.
The forward matrix is required to map a unit vector to XYZ D50 by definition, so D can be computed by finding the
neutral for the reference camera:
ReferenceNeutral = Inverse (AB * CC) * CameraNeutral
And then:
D = Invert (AsDiagonalMatrix (ReferenceNeutral))
Applying the Hue/Saturation/Value Mapping Table
After converting the camera colors have been converted to XYZ (D50) values, then the Hue/Saturation/Value
mapping table, if any, is applied.
If there are two Hue/Saturation/Value mapping tables, then they are interpolated between using the same method
as color calibration tags are interpolated. If only one Hue/Saturation/Value table is included, it is used no matter
what the selected white balance was.
First the XYZ (D50) values are converted to linear RGB coordinates, using the ProPhoto RGB primaries. (This is
also known as RIMM space).
The linear RGB coordinates are converted to HSV coordinates (Hue-Saturation-Value).
122
© ISO 2008 – All rights reserved
ISO/WD 12234-2
The HSV coordinates are used to index into the mapping table using tri-linear interpolation. The result is three
values, a hue shift (in degrees), and saturation scale factor, and a value scale factor. If the division count in a
dimension is 1 that means the table is constant for that dimension.
Hue is indexed using “wrap-around” math. For example, if HueDivisions is equal to 3, the table samples are at 0
degrees (red), 120 degrees (green), and 240 degrees (blue).
The hue coordinate is modified by adding the hue shift.
The saturation coordinate is modified by multiplying by the saturation scale factor, and then clipping to no more
than 1.0.
The value coordinate is modified by multiplying by the value scale factor, and then clipping to no more than 1.0.
The HSV coordinates are then converted back to linear RGB coordinates, and then back to XYZ (D50) values.
It is recommended that these tables be limited to use a ValueDivisions equal to 1, so the table is only indexed by
hue and saturation. This causes all colors with the same hue and saturation, but with different values, to be
mapped same new hue and saturation, while preserving their value ratios.
© ISO 2008 – All rights reserved
123
ISO/WD 12234-2
124
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Annex C
(informative)
Lossy Compression of Raw Image Data
<Editor's Note: This annex defines an lossy image compression algorithm for interoperability profile 2, which
currently under consideration. >
C.1 Overview of Encoding and Decoding DSC Raw Data
The compression workflow (see Fig. 1) refers to the encoding and decoding of DSC raw data and consists of three
steps:
•
Encoding the CFA raw data within the DSC
•
Compressed raw file format (TIFF/EP)
•
External decoding of the CFA raw data by a TIFF/EP reader, e.g. a raw converter software
Figure 1 - Structure of the workflow for lossy compression of DSC Raw Data
The encoding process is controlled by a specific parameter structure. This Raw Encoding Control Data structure
may be appropriately set by the Raw Compression Logic with respect to the current camera Settings (e.g. ISO),
camera Characteristics (e.g. signal-to-noise-ratio) or Calibration Data.
The choice of the control parameters for encoding refers to a specific data set for decoding as well, the Raw
Decoding Control Data. These data have to be included as meta data within TIFF/EP for the decoding process.
It is the aim of this annex
© ISO 2008 – All rights reserved
125
ISO/WD 12234-2
•
to define the structures of the Raw Decoding Control Data and the Compressed Raw Data within TIFF/EP
(see section 4),
•
to describe the process how the reader can decode the Compressed Raw Data (decoding model) (section
2) and
•
to give some recommendations for the camera manufacturer how to choose the variable control data for
encoding and decoding (section 3).
C.2 Encoding/Decoding Model – Structure and Configurations
The encoding and decoding structure is intended to offer various means to the manufacturer to adapt the
compression performance to the required demands concerning computational effort, compression ratio and image
quality. These means are
•
the configuration of the processing structure by optional processing stages and
•
the choice of selectable control parameters for the succeeding processing stages.
Figure 2 - Structure of the encoding process
The encoding process is defined by the following four stages:
•
A CFA Separation divides the CFA data of the single image sensor (Bayer pattern) into four sub-images
which address the four color planes R, GR, GB and B.
•
The color signals of a word width of e.g. 14 bit are quantized by a Compression LUT to the required format
of the used JPEG encoder, e.g. 12 bit. This one dimensional compression LUT might be a nonlinear (e.g.
square root or logarithmic, see section 3) function that can be optimized with respect to the specific camera
noise level to meet particular demands (e.g. considering the visual system). [10]
•
The 4x4 correlation matrix is optional. It defines a linear transform that utilizes the correlation between the
4 color channels to increase the compression ratio. In order to maintain unsigned number types for the
126
© ISO 2008 – All rights reserved
ISO/WD 12234-2
succeeding compression stage, appropriate offset values have to be added to the matrix output signals at
the end of this processing stage.
•
The JPEG encoders compress the four color streams independently of each other. They might be
controlled by an individual quality factor. In order to preserve highest image quality for this application to
raw image data, JPEG 12 bit is being used instead of the common 8 bit version of JPEG.
The data flow to decode the compressed image streams corresponds to the inverted encoding model:
Figure 3 - Structure of the decoding process
First the JPEG Decoder is processed, followed by the linear transformation via the Inverse Correlation Matrix and
finally, the Inverse Compression LUT transformation recreates the original CFA sensor data.
The data container for the Raw Decoding Control Data within TIFF/EP should include all parameters needed for
unpacking the compressed raw data:
•
Inverse correlation matrix double[ 4x4] and 4 offset values double[ 4]
•
Inverse compression LUTs uint16[ 4x4096]
•
JPEG control parameters (4 quantization tables, …)
C.3 Recommendations for the Usage and Choice of Parameters
The encoding and decoding model are configured by the specific choice of the encoding/decoding control
parameters within the camera. These parameters determine the resulting compression ratio and image
deterioration by compression noise and artifacts.
This section intends to identify the impact of the control parameters on the compression ratio and the image quality.
Following, two recommendations of control data sets and model configurations are given.
C.3.1 JPEG Compression
JPEG’s internal quantization of the DCT coefficients induces compression noise and/or compression artifacts to the
overall encoding/decoding process. As long as the input noise level is higher than its compression noise level, the
encoding/decoding process can be modelled as a high frequency noise source (the compression noise), and JPEG
ringing artefacts are avoided. [10]
The compression noise level can be set by a quality factor 0 < QF < 100 respectively the depending DCT
quantization tables. Once set, the compression noise level is constant and does not depend on the image intensity
level.
© ISO 2008 – All rights reserved
127
ISO/WD 12234-2
In order to minimize the signal deterioration and to preserve highest image quality for the application to CFA raw
data, JPEG 12 bit is being used instead of the common 8 bit version of JPEG.
C.3.2 Compression LUT
The Compression/Inverse Compression LUT serves to adjust the constant compression noise to the variable input
noise of the CFA raw data. The raw data noise mainly depends on the signal intensity, the ISO setting, the
exposure time and the temperature.
The local slope of the LUT function represents the gain factor that converts the noise level. A common gamma
0.5
2
function with γ=2, y=x
as compression LUT and y=x as decompression LUT for example, adjusts the
compression noise to an ideal photon shot noise of the sensor. Moreover, this choice of Compression LUT
uniformly distributes the visibility of the compression noise. [10]
C.3.3 Correlation Matrix
The correlation matrix may form a luminance – chrominance transformation emphasizing color differences of the
incoming color signals. It is intended to reduce the correlation between the four color channels and following, to
increase the compression ratio.
In order to preserve the digital word width of the output signals, the row sum of its absolute elements should be
chosen to unity. But these constraints on the matrix coefficients cause an amplified compression noise level.
Considering the following matrices for the encoding/decoding model
-1
clarifies the noise amplifying behaviour of the inverse correlation matrix CM .
C.3.4 Configuration 1
CFA raw data have to pass different processing steps like demosaicking, sharpening and denoising to get a
rendered image. Ambitious photographers expect the best image quality and a manual post-processing by the raw
converter processing chain. Therefore, a lossy compression of the CFA raw data has to be able to maintain the
original image structures (noise, edges etc.) and to avoid compression artifacts up to a great extent. Configuration
1 is focused on preventing JPEG compression artifacts and to ensure low compression noise.
To avoid the amplification of compression noise the optional correlation matrix is disabled (comparable to the
identity matrix). The sensor noise is adapted by the compression LUTs of a gamma function (see above) and an
appropriate JPEG quality factor of about QF~80..90. Thus, a PSNR of about 60 dB is obtained at a compression
ratio of 1:4. [10]
128
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Figure 4 – Structure of configuration 1
C.3.5 Configuration 2
The second proposal uses the correlation matrix of above
to utilize the correlation between the 4 channels and to increase the compression ratio. The GR -pattern data
(channel 2) acts as reference plane and is transferred unchanged to the JPEG compression. The other output
channels represent the difference signals of the other color planes against the reference channel.
The compression LUTs can be used as for configuration 1. The quality factors for the JPEG encoders may be set
individually according to the impact of that signal to the visible image quality.
An optimization of that special encoding model refers to the GR reference pattern data. Before entering the
correlation matrix the reference channel runs the JPEG process. Thereby the noise evolved from JPEG concerning
the reference channel GR is taken into account before calculating the channel differences in the correlation matrix.
Thereupon the color differences and the unmodified GR data will be compressed by JPEG. Thus, the reference
data appears identically for both the compression and the decompression process concerning the correlation
matrix and avoids further error propagation. This improvement only affects the compression model, the
decompression model appears unchanged. [ 11]
© ISO 2008 – All rights reserved
129
ISO/WD 12234-2
Figure 5 - Structure of configuration 2
C.4 Compression Data Structure for TIFF/EP
Tag numbers and data types and structures have to be defined yet.
130
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Annex D
(informative)
TIFF/EP Workflow Example
<Editors Note: This annex will contain a full example tracing tag data through a sample workflow>
© ISO 2008 – All rights reserved
131
ISO/WD 12234-2
Annex E
(normative)
Mapping Raw Values to Linear Reference Values
The section describes DNG’s processing model for mapping stored raw sensor values into linear reference values.
Linear reference values encode zero light as 0.0, and the maximum useful value (limited by either sensor
saturation or analog to digital converter clipping) as 1.0. If SamplesPerPixel is greater than one, each sample
plane should be processed independently.
The processing model follows these steps:
- Linearization
- Black Subtraction
- Rescaling
- Clipping
E.1 Linearization
The first step is to process the raw values through the look-up table specified by the LinearizationTable tag, if any.
If the raw value is greater than the size of the table, it is mapped to the last entry of the table.
E.2 Black Subtraction
The black level for each pixel is then computed and subtracted. The black level for each pixel is the sum of the
black levels specified by the BlackLeel, BlackLevelDeltaH and BlackLevelDeltaV tags.
E.3 Rescaling
The black subtraced values are then rescaled to map them to the logical 0.0 to 1.0 range. The scale factor is the
inverse of the difference between the value specified in the WhiteLevel tag and the maximum computed black level
for the sample plane.
E.4 Clipping
The rescaled values are then clipped to a 0.0 to 1.0 logical range.
132
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Annex F
(normative)
Mapping Camera Color Space to CIE XYZ Space
This section describes the DNG processing model for mapping between the camera colour space coordinates
(linear reference values) and CIE XYZ (with a D50 white point).
F.1 Camera Calibration Matrices
DNG 1.2.0.0 and later supports different companies creating the camera calibration tags using different reference
cameras.
When rendering a DNG file using a camera profile, it is important to know if the selected camera profile was
designed using the same reference camera used to create the camera calibration tags. If so, then the camera
calibration tags should be used. If not, then it is preferable to ignore the camera calibration tags and use identity
matrices instead in order to minimize the worse case calibration mismatch error.
This matching is done by comparing the CameraCalibrationSignature tag and the ProfileCalibrationSignature tag
for the selected camera profile. If they match, then use the camera calibration tags. If not, then use identity
matrices.
F.2 One or Two Colour Calibrations
DNG provides for one or two sets of color calibration tags, each set optimized for a different illuminant. If both sets
of color calibration tags are included, then the raw converter should interpolate between the calibrations based on
the white balance selected by the user.
If two calibrations are included, then it is recommended that one of the calibrations be for a low color temperature
illuminant (e.g., Standard-A) and the second calibration illuminant be for a higher color temperature illuminant (e.g.,
D55 or D65). This combination has been found to work well for a wide range of real-world digital camera images.
DNG versions earlier than 1.2.0.0 allow the raw converter to choose the interpolation algorithm. DNG 1.2.0.0 and
later requires a specific interpolation algorithm: linear interpolation using inverse correlated color temperature.
To find the interpolation weighting factor between the two tag sets, find the correlated color temperature for the
user-selected white balance and the two calibration illuminants. If the white balance temperature is between two
calibration illuminant temperatures, then invert all the temperatures and use linear interpolation. Otherwise, use the
closest calibration tag set.
F.3 Definitions used in the following sections
Let n be the dimensionality of the camera color space (usually 3 or 4).
Let CM be the n-by-3 matrix interpolated from the ColorMatrix1 and ColorMatrix2 tags.
Let CC be the n-by-n matrix interpolated from the CameraCalibration1 and CameraCalibration2 tags (or identity
matrices, if the signatures don’t match).
Let AB be the n-by-n matrix, which is zero except for the diagonal entries, which are defined by the AnalogBalance
tag.
© ISO 2008 – All rights reserved
133
ISO/WD 12234-2
Let RM be the 3-by-n matrix interpolated from the ReductionMatrix1 and ReductionMatrix2 tags.
Let FM be the 3-by-n matrix interpolated from the ForwardMatrix1 and ForwardMatrix2 tags.
F.4 Translating White Balance xy Coordinates to Camera Neutral Coordinates
If the white balance is specified in terms of a CIE xy coordinate, then a camera neutral coordinate can be derived
by first finding the correlated color temperature for the xy value. This value determines the interpolation weighting
factor between the two sets of color calibration tags.
The XYZ to camera space matrix is:
XYZtoCamera = AB * CC * CM
The camera neutral can be found by expanding the xy value to a 3-by-1 XYZ matrix (assuming Y = 1.0) and
multiplying it by the XYZtoCamera matrix:
CameraNeutral = XYZtoCamera * XYZ
F.5 Translating Camera Neutral Coordinates to White Balance xy Coordinates
This process is slightly more complex than the transform in the other direction because it requires an iterative
solution.
Guess an xy value. Use that guess to find the interpolation weighting factor between the color calibration tags. Find
the XYZtoCamera matrix as above.
Find a new xy value by computing:
XYZ = Inverse (XYZtoCamera) * CameraNeutral
(If the XYZtoCamera matrix is not square, then use the pseudo inverse.)
Convert the resulting XYZ to a new xy value.
Iterate until the xy values converge to a solution.
F.6 Camera to XYZ (D50) Transform
DNG 1.2.0.0 and later support two methods of specifying the camera to XYZ (D50) transform, depending on
whether or not the forward matrix tags are included in the camera profile.
The use of the forward matrix tags is recommended for two reasons. First, it allows the camera profile creator to
control the chromatic adaptation algorithm used to convert between the calibration illuminant and D50. Second, it
causes the white balance adjustment (if the user white balance does not match the calibration illuminant) to be
done by scaling the camera coordinates rather than by adapting the resulting XYZ values, which has been found to
work better in extreme cases.
F.7 If the ForwardMatrix tags are not included in the camera profile
1. First, invert the XYZtoCamera matrix.
If n = 3, this is:
134
© ISO 2008 – All rights reserved
ISO/WD 12234-2
CameraToXYZ = Inverse (XYZtoCamera)
If n > 3, and the reduction matrix tags are included, then:
CameraToXYZ = Inverse (RM * XYZtoCamera) * RM
Otherwise:
CameraToXYZ = PseudoInverse (XYZtoCamera)
2. The white balanced transform is computed:
CameraToXYZ_D50 = CA * CameraToXYZ
CA, above, is a chromatic adaptation matrix that maps from the white balance xy value to the D50 white point. The
recommended method for computing this chromatic adaptation matrix is to use the linear Bradford algorithm.
F.8 If the ForwardMatrix tags are included in the camera profile
CameraToXYZ_D50 = FM * D * Inverse (AB * CC)
D, above, is a diagonal n-by-n matrix, computed so that the CameraToXYZ_D50 matrix maps the selected camera
neutral to XYZ D50. The forward matrix is required to map a unit vector to XYZ D50 by definition, so D can be
computed by finding the neutral for the reference camera:
ReferenceNeutral = Inverse (AB * CC) * CameraNeutral
And then: D = Invert (AsDiagonalMatrix (ReferenceNeutral))
F.9 Applying the Hue/Saturation/Value Mapping Table
After the camera colors have been converted to XYZ (D50) values, the Hue/Saturation/Value mapping table, if any,
is applied. If there are two Hue/Saturation/Value mapping tables, then they are interpolated in the same way that
color calibration tags are interpolated. If only one Hue/Saturation/Value table is included, then it is used regardless
of the selected white balance.
1. First, the XYZ (D50) values are converted to linear RGB coordinates, using the ProPhoto RGB primaries. (This
is also known as RIMM space).
2. The linear RGB coordinates are converted to HSV coordinates (Hue-Saturation-Value).
3. The HSV coordinates are used to index the mapping table using tri-linear interpolation, resulting in three values:
hue shift (in degrees); saturation scale factor; value scale factor. If the division count in a dimension is 1, then the
table is constant for that dimension.
4. Hue is indexed using “wrap-around” math. For example, if HueDivisions is equal to 3, then the table samples are
at 0 degrees (red), 120 degrees (green), and 240 degrees (blue).
5. The hue coordinate is modified by adding the hue shift.
6. The saturation coordinate is modified by multiplying by the saturation scale factor, and then clipping to no more
than 1.0.
© ISO 2008 – All rights reserved
135
ISO/WD 12234-2
7. The value coordinate is modified by multiplying by the value scale factor, and then clipping to no more than 1.0.
8. The HSV coordinates are converted to linear RGB coordinates, and then back to XYZ (D50) values.
It is recommended that these tables be limited to use a ValueDivisions equal to 1, so the table is only indexed by
hue and saturation. In this way, all colors with the same hue and saturation, but with different values, map to the
same new hue and saturation while preserving their value ratios.
136
© ISO 2008 – All rights reserved
ISO/WD 12234-2
Annex G
(informative)
TIFF EP tag use examples
<Editors note: This annex will contain an example use of each/most TIFF EP tags. The order and structure of this
section should duplicate the earlier section that lists the TIFF EP tag.>
© ISO 2008 – All rights reserved
137
ISO/WD 12234-2
Annex H
(informative)
TIFF EP Versus TIFF 6.0 and DNG 1.3
Put the comparison here instead of throughout the text
138
© ISO 2008 – All rights reserved
ISO/WD 12234-2
© ISO 2008 – All rights reserved
139
ISO/WD 12234-2
Annex I
(informative)
TIFF/EP tag lists
Table 1 lists the tags and in which type of image they can be used.
Table 1 Tags by name and usage in images
Tag Name
ActiveArea
AdoptedWhitePoint
AnalogBalance
AntiAliasStrength
ApertureValue
Artist
AsShotNeutral
AsShotWhiteXY
BaselineExposure
BaselineNoise
BaselineSharpness
BatteryLevel
BayerGreenSplit
BestQualityScale
BitsPerSample
BlackLevel
BlackLevelDeltaH
BlackLevelDeltaV
BlackLevelRepeatDim
BrightnessValue
CalibrationIlluminant1
CalibrationIlluminant2
CameraCalibration1
CameraCalibration2
CameraSerialNumber
CFALayout
CFAPattern
CFAPlaneColor
CFARepeatPatternDim
ChromaBlurRadius
ColorMatrix1
ColorMatrix2
CompressedBitsPerPixel
Compression
Copyright
DateTime
DateTimeOriginal
DefaultCropOrigin
DefaultCropSize
DefaultScale
DefectivePixels
DNGPrivateData
ExposureBiasValue
ExposureIndex
ExposureProgram
ExposureTime
FillOrder
Flash
FlashEnergy
FNumber
FocalLength
FocalPlaneResolutionUnit
140
Tag
50829
100000
50727
50738
37378
315
50728
50729
50730
50731
50732
33423
50733
50780
258
50714
50715
50716
50713
37379
50778
50779
50723
50724
50735
50711
33422
50710
33421
50737
50721
50722
37122
259
33432
306
36867
50719
50720
50718
100000
50740
37380
37397
34850
33434
266
37385
37387
33437
37386
37392
Filespecific
(capture
& imageinvariant)
Capturespecific
(imageinvariant)
Thumbnail
image
Profile 1
image
?
Profile 2
CFA
image
Profile 2
non-CFA
image
Opt
Opt
Opt
Opt
Req
Req
Opt
Req
Req
Opt
Opt
Opt
Req
Opt
Opt
Opt
Opt
Opt
Req
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
?
Opt
Opt
Opt
Req
Req
Opt
Opt
Req
Opt
Req
Opt
Req
Opt
Req
Opt
Req
Opt
Opt
Req
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Req
Opt
Req
Opt
Opt
Req
Opt
Req|Opt?
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
© ISO 2008 – All rights reserved
ISO/WD 12234-2
FocalPlaneXResolution
FocalPlaneYResolution
ForwardMatrix1
ForwardMatrix2
GPSInfo
ICCProfile
ImageDescription
ImageHistory
ImageLength
ImageNumber
ImageWidth
Interlace
IPTC/NAA
ISOSpeedRatings
JPEGTables
LensInfo
LightSource
LinearizationTable
LinearResponseLimit
LocalizedCameraModel
Make
MakerNoteSafety
MaskedAreas
MaxApertureValue
MeteringMode
Model
NewSubFileType
Noise
NoiseProfile
OECF
OpcodeList1
OpcodeList2
OpcodeList3
Orientation
OriginalRawFileData
OriginalRawFileDigest
OriginalRawFileName
PhotometricInterpretation
PlanarConfiguration
PreviewApplicationName
PreviewApplicationVersion
PreviewColorSpace
PreviewDateTime
PreviewSettingsDigest
PreviewSettingsName
ProfileCopyright
ProfileEmbedPolicy
ProfileToneCurve
Rawdatatype
RawDataUniqueID
RawImageDigest
ReductionMatrix1
ReductionMatrix2
ReferenceBlackWhite
ResolutionUnit
RowInterleaveFactor
RowsPerStrip
SampleFormat
SamplesPerPixel
SecurityClassification
SelfTimerMode
SensingMethod
ShadowScale
ShutterSpeedValue
Software
SpatialFrequencyResponse
SpectralSensitivity
StripByteCounts
StripOffsets
SubIFDs
SubjectDistance
SubjectLocation
SubTileBlockSize
TIFF/EPStandardID
TileByteCounts
© ISO 2008 – All rights reserved
37390
37391
50964
50965
34853
34675
270
37395
257
37393
256
34857
33723
34855
347
50736
37384
50712
50734
50709
271
50741
50830
37381
37383
272
254
37389
51041
34856
51008
51009
51022
274
50828
50973
50827
262
284
50966
50967
50970
50971
50969
50968
50942
50941
50940
100000
50781
50972
50725
50726
532
296
50975
278
339
277
37394
34859
37399
50739
37377
305
37388
34852
279
273
330
37382
37396
50974
37398
325
Opt
Opt
Opt
Opt
Opt
Opt
Opt
?
?
Opt
Req
Opt
Req
Opt
Opt
Req
Opt
Req
?
Opt
Req
Opt
Req
?
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Req
Opt
Opt
Use
Opt
Opt
Opt
Req
Req
Opt
Opt
Use
Req
Req
Req
Req
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Req
Opt
Req
Opt
Opt
Req
Opt
Req
Opt
Opt
Opt
Opt
Opt
Req
Opt
Req
Opt
Opt
Opt
Opt
Opt
Req|Opt?
Opt
Opt
Opt
Req|Opt?
Req
Req
Opt
?
Req
Req
Req
Req
Opt
Opt
Opt
Opt
Opt
Opt
Req
Req
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
?
Opt
Opt
Req
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Req
Req
Opt
Req
Req
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Opt
Req
Req
Req
Req
Use
Req
Req
Use
Req
Req
Opt
Opt
Opt
Opt
Opt
Opt
Req
Req
Req
Opt
Opt
Opt
Opt
Req
141
ISO/WD 12234-2
TileLength
TileOffsets
TileWidth
TimeZoneOffset
UniqueCameraModel
WhiteLevel
XMP
XResolution
YCbCrCoefficients
YCbCrPositioning
YCbCrSubSampling
YResolution
323
324
322
34858
50708
50717
700
282
529
531
530
283
Opt
Opt
Opt
Opt
Req
Req
Req
Opt
Opt
Opt
Opt
Opt
Opt
Use
Opt
Opt
Opt
Opt
Opt
Use
Req
Req
Req
Opt
Use
Opt
Use
Opt
Req
Req
Req
Opt
Use
Opt
Use
Opt
Opt
Opt
Table 2 lists the tags in numerical order.
Table 2 -Tags by number
Tag
142
Hex
Tag Name
254
00FE.H
NewSubFileType
256
0100.H
ImageWidth
257
0101.H
ImageLength
258
0102.H
BitsPerSample
259
0103.H
Compression
262
0106.H
PhotometricInterpretation
266
010A.H
FillOrder
270
010E.H
ImageDescription
271
010F.H
Make
272
0110.H
Model
273
0111.H
StripOffsets
274
0112.H
Orientation
277
0115.H
SamplesPerPixel
278
0116.H
RowsPerStrip
279
0117.H
StripByteCounts
282
011A.H
XResolution
283
011B.H
YResolution
284
011C.H
PlanarConfiguration
296
0128.H
ResolutionUnit
305
0131.H
Software
306
0132.H
DateTime
© ISO 2008 – All rights reserved
ISO/WD 12234-2
© ISO 2008 – All rights reserved
315
013B.H
Artist
322
0142.H
TileWidth
323
0143.H
TileLength
324
0144.H
TileOffsets
325
0145.H
TileByteCounts
330
014A.H
SubIFDs
339
0153.H
SampleFormat
347
015B.H
JPEGTables
529
0211.H
YCbCrCoefficients
530
0212.H
YCbCrSubSampling
531
0213.H
YCbCrPositioning
532
0214.H
ReferenceBlackWhite
700
02BC.H
XMP
33421
828D.H
CFARepeatPatternDim
33422
828E.H
CFAPattern
33423
828F.H
BatteryLevel
33432
8298.H
Copyright
33434
829A.H
ExposureTime
33437
829D.H
FNumber
33723
83BB.H
IPTC/NAA
34675
8773.H
ICCProfile
34850
8822.H
ExposureProgram
34852
8824.H
SpectralSensitivity
34853
8825.H
GPSInfo
34855
8827.H
ISOSpeedRatings
34856
8828.H
OECF
34857
8829.H
Interlace
34858
882A.H
TimeZoneOffset
34859
882B.H
SelfTimerMode
143
ISO/WD 12234-2
144
36867
9003.H
DateTimeOriginal
37122
9102.H
CompressedBitsPerPixel
37377
9201.H
ShutterSpeedValue
37378
9202.H
ApertureValue
37379
9203.H
BrightnessValue
37380
9204.H
ExposureBiasValue
37381
9205.H
MaxApertureValue
37382
9206.H
SubjectDistance
37383
9207.H
MeteringMode
37384
9208.H
LightSource
37385
9209.H
Flash
37386
920A.H
FocalLength
37387
920B.H
FlashEnergy
37388
920C.H
SpatialFrequencyResponse
37389
920D.H
Noise
37390
920E.H
FocalPlaneXResolution
37391
920F.H
FocalPlaneYResolution
37392
9210.H
FocalPlaneResolutionUnit
37393
9211.H
ImageNumber
37394
9212.H
SecurityClassification
37395
9213.H
ImageHistory
37396
9214.H
SubjectLocation
37397
9215.H
ExposureIndex
37398
9216.H
TIFF/EPStandardID
37399
9217.H
SensingMethod
50708
C614.H
UniqueCameraModel
50709
C615.H
LocalizedCameraModel
50710
C616.H
CFAPlaneColor
50711
C617.H
CFALayout
© ISO 2008 – All rights reserved
ISO/WD 12234-2
© ISO 2008 – All rights reserved
50712
C618.H
LinearizationTable
50713
C619.H
BlackLevelRepeatDim
50714
C61A.H
BlackLevel
50715
C61B.H
BlackLevelDeltaH
50716
C61C.H
BlackLevelDeltaV
50717
C61D.H
WhiteLevel
50718
C61E.H
DefaultScale
50719
C61F.H
DefaultCropOrigin
50720
C620.H
DefaultCropSize
50721
C621.H
ColorMatrix1
50722
C622.H
ColorMatrix2
50723
C623.H
CameraCalibration1
50724
C624.H
CameraCalibration2
50725
C625.H
ReductionMatrix1
50726
C626.H
ReductionMatrix2
50727
C627.H
AnalogBalance
50728
C628.H
AsShotNeutral
50729
C629.H
AsShotWhiteXY
50730
C62A.H
BaselineExposure
50731
C62B.H
BaselineNoise
50732
C62C.H
BaselineSharpness
50733
C62D.H
BayerGreenSplit
50734
C62E.H
LinearResponseLimit
50735
C62F.H
CameraSerialNumber
50736
C630.H
LensInfo
50737
C631.H
ChromaBlurRadius
50738
C632.H
AntiAliasStrength
50739
C633.H
ShadowScale
50740
C634.H
DNGPrivateData
145
ISO/WD 12234-2
146
50741
C635.H
MakerNoteSafety
50778
C65A.H
CalibrationIlluminant1
50779
C65B.H
CalibrationIlluminant2
50780
C65C.H
BestQualityScale
50781
C65D.H
RawDataUniqueID
50827
C68B.H
OriginalRawFileName
50828
C68C.H
OriginalRawFileData
50829
C68D.H
ActiveArea
50830
C68E.H
MaskedAreas
50940
C6FC.H
ProfileToneCurve
50941
C6FD.H
ProfileEmbedPolicy
50942
C6FE.H
ProfileCopyright
50964
C714.H
ForwardMatrix1
50965
C715.H
ForwardMatrix2
50966
C716.H
PreviewApplicationName
50967
C717.H
PreviewApplicationVersion
50968
C718.H
PreviewSettingsName
50969
C719.H
PreviewSettingsDigest
50970
C71A.H
PreviewColorSpace
50971
C71B.H
PreviewDateTime
50972
C71C.H
RawImageDigest
50973
C71D.H
OriginalRawFileDigest
50974
C71E.H
SubTileBlockSize
50975
C71F.H
RowInterleaveFactor
51008
C740.H
OpcodeList1
51009
C741.H
OpcodeList2
51022
C74E.H
OpcodeList3
51041
C761.H
NoiseProfile
100000
#NUM!
AdoptedWhitePoint
© ISO 2008 – All rights reserved
ISO/WD 12234-2
© ISO 2008 – All rights reserved
100000
#NUM!
DefectivePixels
100000
#NUM!
Rawdatatype
147
ISO/WD 12234-2
Bibliography
[1]
ISO 12231, Photography — Electronic still-picture cameras — Terminology
[2]
CCIR 601:1982, Encoding parameters of digital television for studios
[3]
Digital Still Camera File Format Standard (Exchangeable image file format for Digital Still Camera: Exif),
Version 2.1, June 1998, Japan Electronic Industry Development Association (JEIDA)
[4]
ICC.1:2001, File Format for Colour Profiles
[5]
TIFF Revision 6 specification, Adobe Corporation, 1992
[6]
TIFF Technical Note 1: TIFF Trees, Adobe Corporation
[7]
Draft TIFF Technical Note 2: TIFF JPEG, Adobe Corporation
[8]
IPTC-NAA (International Press Telecommunications Council — Newspaper Association of America)
Information Interchange Model and Digital Newsphoto Parameter Record, Version 2, April 14, 1993,
available from the Newspaper Association of America, The Newspaper Centre, 11600 Sunrise Valley Drive,
Reston, VA 22091
[9]
GeoTIFF specification, available at http://www.remotesensing.org/geotiff/geotiff.html
[10]
Guidelines For Handling Image Metadata, Version 1.0, Metadata Working Group
[11]
G. Fischer, D. Kunz, K. Köhler, A Survey on Lossy Compression of DSC Raw Data, Proc. Electronic
Imaging Conf. Digital Photography IV, 2008
[12]
C. Lee, J. Lee, Efficient Color Coding for Color Filter Arrays, Proc. Electronic Imaging Conf. Digital
Photography IV, 2008
[13]
K. Parulski, R. Reisch, Digital Camera Image Storage Formats, Chapter 13 of Single-Sensor Imaging:
Methods and Applications for Digital Cameras, Rastislav Lukac, editor, CRC Press, 2008
[14]
Ed note: Add NITF informative ref
[15]
"RichTIFF -- Standardized TIFF File Specification”, Crossfield, Inc., May 1993.
148
© ISO 2008 – All rights reserved
WORKING DRAFT
ApertureValue, 54
Artist, 47
BatteryLevel, 60
BitsPerSample, 36
BrightnessValue, 55
CFAPattern, 35
CFARepeatPatternDim, 35
CompressedBitsPerPixel, 40
Compression, 40
Copyright, 47
DateTime, 52
DateTimeOriginal, 52
ExposureBiasValue, 55
ExposureIndex, 62
ExposureProgram, 56
ExposureTime, 53
Flash, 57
FlashEnergy, 58
FNumber, 54
FocalLength, 59
FocalPlaneResolutionUnit, 31
FocalPlaneXResolution, 30
FocalPlaneYResolution, 31
GPSInfo, 49
© ISO 2008 – All rights reserved
ISO/WD 12234-2
ImageDescription, 47
ImageHistory, 48
ImageLength, 27
ImageNumber, 47
ImageWidth, 27
InterColourProfile, 62
Interlace, 34
IPTC/NAA, 48
ISOSpeedRatings, 62
JPEGTables, 41
LightSource, 61
Make, 45
MaxApertureValue, 55
MeteringMode, 56
Model, 45
NewSubFileType, 29
Noise, 64
OECF, 63
Orientation, 32
PhotometricInterpretation, 33
PlanarConfiguration, 34
ReferenceBlackWhite, 43
ResolutionUnit, 30
RowsPerStrip, 37
SamplesPerPixel, 36
SecurityClassification, 48
SelfTimerMode, 60
SensingMethod, 35
ShutterSpeedValue, 54
Software, 45
SpatialFrequencyResponse, 64
SpectralSensitivity, 63
StripByteCounts, 38
StripOffsets, 37
SubIFDs, 29
SubjectDistance, 59
SubjectLocation, 60
TIFF/EPStandardID, 27
TileByteCounts, 39
TileLength, 38
TileOffsets, 39
TileWidth, 38
TimeZoneOffset, 53
XResolution, 29
YCbCrCoefficients, 42
YCbCrPositioning, 42
YCbCrSubSampling, 41
YResolution, 30
149