poka.sh

Docs

JPEG

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.

JPEG Image Preview.

At a glance

Original creator The Joint Photographic Experts Group (ISO/IEC JTC 1/SC 29/WG 10), with the ITU-T
First published 1992
Purpose Compression of continuous-tone still images, colour or greyscale, mostly lossy through a discrete cosine transform on 8 × 8 blocks.
Extensions .jpg, .jpeg
Poka parser poka-jpeg
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, decode added 2026-10-21 (#451; 117 corpus files compared with Pillow 12.3.0 for size and sampled pixels within 3 levels, one 1 × 1 file with an undefined Huffman code excepted): parsers/poka-jpeg/src/lib.rs (marker walk to SOFn, decode via image JpegDecoder under poka-image-common's budget) and src/meta.rs (APP0/APP1/APP2/APP13/APP14, EXIF IFD0 and Exif IFD, ICC desc/mluc), unit tests, tests/samples.rs (EXIF on photo_landscape.jpg, JFIF, Adobe RGB ICC and IPTC on baseball.jpg); corpus SOF scan: 106 baseline RGB, 5 progressive, 3 grey, 3 four-component, no 12-bit, lossless or arithmetic files. Covers 8-bit baseline and progressive Huffman JPEG; other modes are reported only.

What Poka does not read

  • 12-bit, lossless, arithmetic-coded and differential modes are drawn only if zune-jpeg decodes them (not checked: the corpus has none)
  • large files whose decode (pixels, the decoder's planes and a copy of the file) would pass the decode budget get header facts only: a 3000 × 3000 RGB file at 64 MiB
  • embedded ICC profiles are not applied to the pixels
  • EXIF limited to about 30 tags (no flash, metering, white balance, exposure bias, MakerNote, embedded thumbnail); GPS position, artist, owner, serial numbers and user comment are among them and are always shown
  • UserComment in the JIS character code is named but not converted
  • XMP and IPTC contents not decoded (flagged present)
  • ICC profile name only
  • MPO/multi-picture and other APPn payloads ignored
  • EXIF only from the first APP1

Background

The Library of Congress names ITU-T Recommendation T.81 (1992), the same text as ISO/IEC 10918-1 (1994), which defines several modes of operation, lossy and lossless, not all of which came into use. Poka walks the marker segments to the frame header and reports its facts, then decodes the pixels in the module (zune-jpeg, through the image crate) to RGBA, turned upright by the EXIF orientation, which the viewer draws on a canvas. Modes the decoder does not support are reported from the frame header with its error; a file whose decode would not fit the memory budget gets the header facts and the reason.

Versions

Version Identifier Poka Note
Baseline and progressive DCT, 8-bit (SOF0, SOF2) FF D8 Read Decoded in the module; tests/samples.rs compares every corpus file with Pillow.
Extended sequential 12-bit, lossless and arithmetic-coded modes (SOF1 at 12 bits, SOF3, SOF9 to SOF15) Partly read Frame header reported; drawn only where zune-jpeg decodes the mode, else the card gives its error.

Libraries

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

Sources