{
  "slug": "tiff-image-file-directory",
  "term": "TIFF image file directory",
  "aliases": [
    "TIFF IFD",
    "Image File Directory"
  ],
  "definition": "A TIFF image file directory is a set of tagged entries describing an image and locating its associated data within a TIFF file.",
  "note": "Classic TIFF links the header to the first IFD and each main-chain IFD to its successor; zero terminates that chain. Baseline readers may ignore images after the first, so format support alone does not promise complete image enumeration. [tiff6]\n\nIn Hesela's 14 controlled LibTIFF 4.5.1 fixtures, one changed pointer byte ended traversal after A while all original pixels for A-B-C survived. Known-offset selection still decoded B. Reordering to A-C-B preserved count and unordered pixel hashes but failed the independently fixed ordered requirement. These are synthetic native observations, not failure rates. [evidence]\n\nTIFFReadDirectory returns zero for errors as well as end-of-chain. Preserve diagnostics and terminal state. Selecting an independently known directory offset is different from discovering an orphaned image. [api] [offset]\n\nMain-chain traversal does not cover every SubIFD relationship. OME-TIFF TiffData can map physical IFDs to logical planes in another order; pyramid levels intentionally stay outside the main chain and TiffData. No OME or SubIFD reader was tested here. [multipage] [ome]\n\nThese fixtures are recovery controls, not TIFF 6.0 conformance examples: even the original shares resolution-value offsets across IFDs, and the alias control additionally shares a pixel-strip pointer. Section 7 warns against duplicate pointers and does not require readers or editors to detect them. Successful decoding alone does not establish conformance. [tiff6]\n\nFor scientific reuse, pixel identity alone does not establish preservation of the acquisition metadata. Linkert et al.'s 2010 review recommends retaining metadata with image data and through analysis; this supports a separate metadata-preservation requirement, not a TIFF recovery-rate estimate. [metadata-paper]",
  "related": [
    "backup-verification",
    "restore-test",
    "checksum"
  ],
  "citations": [
    {
      "id": "tiff6",
      "title": "TIFF Revision 6.0 (1992), sections 2 and 7: IFD structure and reader scope",
      "url": "https://www.itu.int/itudoc/itu-t/com16/tiff-fx/docs/tiff6.pdf",
      "accessed": "2026-11-03"
    },
    {
      "id": "evidence",
      "title": "Hesela: native TIFF reachability, order and identity observations",
      "url": "https://hesela.dev/research/tiff-ifd-reachability/evidence/observations.json",
      "accessed": "2026-11-03"
    },
    {
      "id": "api",
      "title": "LibTIFF TIFFReadDirectory: return values and diagnostics",
      "url": "https://libtiff.gitlab.io/libtiff/functions/TIFFReadDirectory.html",
      "accessed": "2026-11-03"
    },
    {
      "id": "offset",
      "title": "LibTIFF TIFFSetDirectory and TIFFSetSubDirectory: ordinal versus offset",
      "url": "https://libtiff.gitlab.io/libtiff/functions/TIFFSetDirectory.html",
      "accessed": "2026-11-03"
    },
    {
      "id": "multipage",
      "title": "LibTIFF: main-chain and SubIFD traversal",
      "url": "https://libtiff.gitlab.io/libtiff/multi_page.html",
      "accessed": "2026-11-03"
    },
    {
      "id": "ome",
      "title": "OME-TIFF 6.2.2: TiffData and sub-resolution storage",
      "url": "https://docs.openmicroscopy.org/ome-model/6.2.2/ome-tiff/specification.html",
      "accessed": "2026-11-03"
    },
    {
      "id": "analysis",
      "title": "Hesela: TIFF image recovery acceptance and downloadable native replay",
      "url": "https://hesela.com/analyses/backup-verification-is-not-a-restore-test/#tiff-reachability",
      "accessed": "2026-11-03"
    },
    {
      "id": "metadata-paper",
      "title": "Linkert et al. (2010), Metadata matters: access to image data in the real world; microscopy file formats and Box 1",
      "url": "https://doi.org/10.1083/jcb.201004104",
      "accessed": "2026-11-03"
    }
  ],
  "provenance": [
    "TIFF specification and official library/OME documentation; controlled native observations on one Linux LibTIFF 4.5.1 build. The upstream tag is not asserted identical to the patched distribution binary."
  ],
  "status": "shipping",
  "advantages": [],
  "limitations": [
    "No BigTIFF, codec, OME, SubIFD or hardware-fault experiment. Every modified fixture changes the whole-file digest; no hash-collision or library-defect claim."
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-03"
}
