JPEG 2000

JPEG 2000 (or JPEG2000) is standard that defines a wavelet-based raster image compression format, and a family of associated file formats, protocols, etc. (For the older JPEG-1, see JPEG.)

For details about specific formats, see:
 * JPEG 2000 codestream
 * JP2 (base still image format)
 * JPX (extended still image format)
 * JPM (compound image format)
 * MJ2 (motion JPEG 2000)

Disambiguation
JPEG 2000 is sometimes incorrectly used as a synonym for JP2, and vice versa. Although JP2 might be the most important part of the JPEG 2000 standard, it is only one small part of it.

In some contexts, JPEG 2000 is used to mean the compressed codestream format, instead of the whole standard.

The terms JPEG 2000 and JPEG2000 (with and without a space) seem to be used interchangeably. The parts of the official specification that are freely available use only JPEG 2000, so that is probably the preferred form. But it must have been settled on late in the standardization process: even some of the committee drafts prefer JPEG2000.

Details
The JPEG 2000 standard consists of many parts, including:
 * Part 1: Core coding system. Defines JPEG 2000 codestream format and the JP2 file format.
 * Part 2: Extensions. Defines JPX.
 * Part 3: Motion JPEG 2000 (MJ2)
 * Part 6: Compound image file format (JPM)
 * Part 8: JPSEC
 * Part 9: JPIP
 * Part 10: JP3D
 * Part 11: JPWL
 * Part 12: ISO Base Media File Format

Format
At the highest level, JPEG 2000 files (JP2, JPX, JPM, and MJ2, but not the codestream format) consist of a hierarchical sequence of tagged "boxes" (boxes/atoms format). It is the same format used by QuickTime and MP4, but with different terminology.

Identification
Most JPEG 2000-related files (but not the codestream format) begin with bytes.

This byte sequence represents a box of type " " (JPEG 2000 signature), which contains an arbitrary 4-byte signature.

Brands
The JPEG 2000 file formats (except JPEG 2000 codestream) use a concept called brands. (The term profile is sometimes used as a synonym for brand, but this can be confusing because profile is also used to mean any subformat, regardless of whether it has a corresponding brand.)

A brand corresponds to one of the major file formats (JP2, JPX, etc.), or a defined subformat of one of them. Each brand is assigned an identifier consisting of four ASCII characters.

Every JPEG 2000 file has a primary brand, indicating the major file format it is based on. The primary brand's identifier usually appears in the file at offset 20.

A file also has a compatibility list, containing any number of brands. The compatibility list usually begins at offset 28.

See Boxes/atoms format for more information about brands.

Specifications
See also the articles about the specific file formats. The most important specifications are not freely available, but the committee drafts are.
 * JPEG 2000 Committee Drafts
 * ITU-T Rec. T.800: JPEG 2000 (Part 1): Core coding system (not free to download)
 * Annex I: JP2 file format syntax
 * ITU-T Rec. T.801: JPEG 2000 (Part 2): Extensions (not free to download)
 * Annex M: JPX extended file format Syntax
 * Annex N: JPX file format extended metadata definition and syntax
 * ITU-T Rec. T.802: JPEG 2000 (Part 3): Motion JPEG 2000 (not free to download)
 * ITU-T Rec. T.803: JPEG 2000 (Part 4): Conformance testing
 * Documentation only
 * ITU-T Rec. T.804: JPEG 2000 (Part 5): Reference software
 * ITU-T Rec. T.805: JPEG 2000 (Part 6): Compound image file format
 * ITU-T Rec. T.807: JPEG 2000 (Part 8): Secure JPEG 2000
 * ITU-T Rec. T.808: JPEG 2000 (Part 9): Interactivity tools, APIs and protocols
 * ITU-T Rec. T.809: JPEG 2000 (Part 10): Extensions for three-dimensional data
 * ITU-T Rec. T.810: JPEG 2000 (Part 11): Wireless
 * ITU-T Rec. T.812: JPEG 2000: An entry level JPEG 2000 encoder
 * ITU-T Rec. T.813: JPEG 2000: XML structural representation and reference
 * RFC 3745: MIME Type Registrations for JPEG 2000
 * ISO/IEC 15444
 * Color in JPEG 2000 (I3A Presentation)

Software

 * OpenJPEG
 * Grok
 * CSJ2K - C# port of JJ2000
 * jpeg2000 (fork of JJ2000, based on Sun JAI adaptation with JAI dependency removed)
 * Kakadu
 * JasPer (Wikipedia article)
 * JJ2000 (from archive.org; historical; Java)
 * ImageMagick
 * FFmpeg
 * (for analysis)
 * abydos

Sample files

 * JPEG 2000 sample images
 * https://telparia.com/fileFormatSamples/image/jpeg2000/

Links

 * JPEG 2000 standard
 * JPEG 2000
 * Is JPEG-2000 a preservation risk?
 * File format assessment (British Library)
 * xkcd comic
 * An Overview of JPEG 2000 Technology and Benefits (DIG2000)