poka.sh

Docs

DPX

Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.

SMPTE DPX Preview.

At a glance

Original creator SMPTE (Society of Motion Picture and Television Engineers), from Kodak's Cineon format
First published 1994
Purpose Digital Picture Exchange: uncompressed single images for film scanning, visual effects and digital cinema, one file per frame.
Extensions .dpx
Poka parser poka-dpx
Viewer poka-image-with-meta-viewer
Depth tier Parser with a shared viewer (see Depth tiers)
Breadth tier B2 Broad (see Breadth tiers)

How much Poka reads

B2 Broad. The common content of the current and the common older versions is decoded. Some named features or versions are not, and are listed.

Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-16: parsers/poka-dpx/src/lib.rs and tests/samples.rs. The element headers of all 15 corpus files were read with a throwaway script: 13 are 10-bit RGB filled method A (DPX 2.0 and 1.0), 1 is a descriptor-56 10-bit file, 1 is 10-bit RGBA. Covers V1.0 and V2.0, big and little endian. The 8-bit and 16-bit paths are covered only by a synthetic 8-bit unit test, not the corpus.

What Poka does not read

  • only the first image element is decoded (multi-element files such as separate alpha or depth are not)
  • 10-bit RGBA
  • 12-bit samples
  • YCbCr 4:2:2 and 4:4:4 (descriptors 100 and 102)
  • ABGR (descriptor 52)
  • a packing the format leaves undefined (3 to 7) is read as filled method A, with a note
  • run-length-encoded elements (header facts only)
  • end-of-image padding is ignored (a packed element's end-of-line padding is skipped)
  • transfer function and colorimetric tags are not applied or shown
  • film, television and user headers (frame rate, key code, time code) are not shown
  • orientation is displayed but not applied

Background

The Library of Congress gives SMPTE 268M-1994 as version 1 and 268M-2003 as version 2, and quotes Wikipedia: DPX was derived from Kodak's Cineon (.cin) format for its film scanners. The image crate has no DPX support, so Poka decodes the first RGB, RGBA or luma image element itself: 8- and 16-bit RGB and RGBA, and 8-, 10- and 16-bit luma, in either byte order, and 10-bit RGB in all three packing methods the format defines — filled method A, filled method B and packed. 12-bit and YCbCr data are not read. Run-length-encoded elements get the header facts only.

Versions

Version Identifier Poka Note
DPX 1.0 (SMPTE 268M-1994) SDPX or XPDS, version V1.0 Partly read First image element only; RLE elements not decoded.
DPX 2.0 (SMPTE 268M-2003) SDPX or XPDS, version V2.0 Partly read As for 1.0.

Libraries

Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.

  • image (used; MIT OR Apache-2.0; Rust)
  • png (used; MIT OR Apache-2.0; Rust)
  • OpenImageIO (candidate; Apache-2.0; C++; https://github.com/OpenImageIO/oiio) — Image I/O library with Python bindings; DPX is listed among its format plugins (read/write split not stated on the page seen).
  • FFmpeg (libavcodec DPX decoder) (candidate; LGPL-2.1-or-later; C; https://ffmpeg.org/doxygen/trunk/dpx_8c.html) — Decodes DPX images (ff_dpx_decoder); repository is mainly LGPL with optional GPL components.

Sources