JPX is a complex and versatile image file format, defined in Part 2 of the JPEG 2000 standard (ISO/IEC 15444-2).
It is an extension of JP2 format. In addition to the JP2 feature set, JPX offers:
- Extended colour space support
- Mechanisms for including opacity information
- Fragmented codestreams (even across multiple files)
- The possibility to combine multiple codestreams as composites or animations
- The possibility to use compression methods other than JPEG 2000 codestream (wavelet compression): uncompressed, Modified Huffman, Modified READ, Modified Modified READ, JBIG, JPEG, JPEG-LS, JBIG2
The JPX specification is apparently so large and difficult that its creators felt the need to define a simpler subset of it named Baseline JPX, which lies between JP2 and the full JPX format in complexity. Baseline JPX files, for example, can only use wavelet compression.
The current version of the standard clearly states that the official filename extension is .jpf, and doesn't even mention .jpx as a possibility. However, some reputable sources say that .jpx is legitimate, or even preferred.
JPX files begin with bytes
00 00 00 0c 6a 50 20 20 0d 0a 87 0a ?? ?? ?? ?? 66 74 79 70 6a 70 78 20.
Note that some Adobe applications (most notably Adobe Photoshop) produce JPX images that erroneously start with the JP2 byte sequence (i.e. the last 4 bytes in the string above are
6a 70 32 20). This makes them (superficially) indistinguishable from JP2 images.
- JPEG 2000 Part 2 (Extensions) Annex M: JPX extended file format Syntax
- JPEG 2000 Part 2 (Extensions) Annex N: JPX file format extended metadata definition and syntax
- JPEG 2000 Committee Drafts → fcd15444-2.pdf
- ISO/IEC 15444-2 (not free to download)
- ITU-T Rec. T.801 (not free to download)
- GMLJP2 is a metadata standard that allows one to include geospatial metadata in georeferenced JPX images.
There must be a story behind why the JPX filename extension is .jpf instead of .jpx, but we have not been able to locate it. Perhaps it was originally intended to be .jpx, but was changed due to a conflict. The next most common use of .jpx seems to be for JBuilder project files.