PNG Proposed eXIf chunk, draft 20170114b

File: png-proposed-eXIf-chunk-20170114b.html

Status of this Memo

This document is an informal draft of the PNG development group.

Comments on this document can be sent to the PNG specification maintainers at


png-mng-misc@lists.sourceforge.net.

Distribution of this memo is unlimited.

Initial proposals were in the png-mng-misc mailing list, January 2017.

At present, the latest version of this document is available on the World Wide Web from


ftp://ftp.simplesystems.org/pub/libpng/png-group/documents/.

Notices

Copyright © 2017 Glenn Randers-Pehrson

Permission is granted to copy and distribute this document for any purpose and without charge, provided that the copyright notice and this notice are preserved, and that any substantive changes or deletions from the original are clearly marked.

Abstract

This document describes two variants of a special-purpose chunk type that has been proposed for use in various PNG (Portable Network Graphics) and related multi-image applications. It has not yet been approved for registration by the PNG developers, and therefore is experimental and its format is subject to change. The proposed chunk is (with an unregistered name or names that can be used in test implementations shown in parentheses): eXIf (exIf, uxIf, zxIf).

PNG uxIf (raw EXIF) proposal

It is proposed to add the following section to the document "Extensions to the PNG 1.2 Specification, Version 1.4.0"

3.7. eXIf EXIF profile

The four-byte chunk type field contains the decimal values
    101 88 73 102 (ASCII "e X I f")

When present, the eXIf chunk contains EXIF metadata that is compatible with specifications issued by CIPA, "Exchangeable image file format for digital still cameras" [CIPA DC-008-2016] or its successors. See https://www.media.mit.edu/pia/Research/deepview/exif.html

The eXIf chunk contains an EXIF profile in a raw format:

         Data: length bytes where "length" is determined
               by the chunk "length" field, containing a
               raw EXIF profile.

At most one eXIF chunk shall occur in a PNG datastream. There are no ordering constraints upon the position of the eXIf beyond those imposed by the PNG specification, i.e., if present, the eXIf chunk may appear anywhere between the IHDR and IEND chunks except between IDAT chunks.

Exif Security considerations

It is proposed to add the following two clauses to Section 7 (Security Considerations) of the "Extensions to the PNG 1.2 Specification, Version 1.4.0" document:

The eXIf chunk may contain data such as image resolution and dimensions that are redundant with existing PNG chunks. Applications must be prepared to handle such redundant and perhaps conflicting information.

The eXIf chunk may contain a "thumbnail" or a "preview" of the image. If the image has been redacted or otherwise edited, authors may be surprised to learn that they have leaked private information by publishing an unredacted image.

PNG zxIf proposal

It is proposed to add the following section to the document "Extensions to the PNG 1.2 Specification, Version 1.4.0"

3.7. eXIf EXIF profile

The four-byte chunk type field contains the decimal values
    101 88 73 102 (ASCII "e X I f")

When present, the eXIf chunk contains EXIF metadata that is compatible with specifications issued by CIPA, "Exchangeable image file format for digital still cameras" [CIPA DC-008-2016] or its successors. See https://www.media.mit.edu/pia/Research/deepview/exif.html

The eXIf chunk contains an optional "mode" byte followed by an EXIF profile in a raw format or in a zlib-encoded compressed format:

         Mode: 1 byte 
              69: the Mode byte (ASCII "E") plus the remaining
                  length-1 bytes in the chunk, starting with
                  "xif", make up a raw uncompressed EXIF profile
               0: the remaining length-1 bytes of data make up a
                  zlib-encoded EXIF profile written in accordance
                  with chapter 5, "Deflate/Inflate Compression"
                  of the PNG specification version 1.2 (which
                  is Clause 10.1, "Compression method 0" of the
                  ISO PNG specification).
              Other values of Mode are reserved for other
                  compression methods which might be defined
                  in a future version of this specification.

         Data: the remaining length-1 bytes where "length" is
               determined by the chunk "length" field

At most one eXIF chunk shall occur in a PNG datastream. There are no ordering constraints upon the position of the eXIf beyond those imposed by the PNG specification, i.e., if present, the eXIf chunk may appear anywhere between the IHDR and IEND chunks except between IDAT chunks.

Exif Security considerations

(same as in the uxIf proposal)

Contributors

Contributors to discussion on the png-mng-misc list

Editor

End of PNG eXIf Chunk Proposal. Expires 14 August 2017.