Capabilities JPEG XR is an image file format that offers several key improvements over
JPEG, including: ; Better compression: JPEG XR file format supports higher compression ratios in comparison to JPEG for encoding an image with equivalent quality. ; Lossless compression: JPEG XR also supports
lossless compression. The signal processing steps in JPEG XR are the same for both lossless and lossy coding. This makes the lossless mode simple to support and enables the "trimming" of some bits from a lossless compressed image to produce a lossy compressed image. ; Tile structure support: A JPEG XR coded image can be segmented into
tile regions. The data for each region can be decoded separately. This enables rapid access to parts of an image without needing to decode the entire image. When a type of tiling referred to as "soft tiling" is used, the tile region structuring can be changed without fully decoding the image and without introducing additional distortion. ; Support for more color accuracy: JPEG XR supports a wide variety of image color representations in addition to the conventional 8-bit-per-sample
YUV (formally
YCbCr)
4:2:0 encoding that is typically used for the original JPEG standard. : For support of images using an
RGB color space, JPEG XR includes an internal conversion to the
YCoCg color space, and supports a variety of bit depth and color representation packing schemes. These can be used with and without an accompanying alpha channel for shape masking and semi-transparency support, and some of them have much higher precision than what has typically been used for image coding. They include: :* Low bit-depth packings of RGB into 16 bits per pixel using 5 bits for each channel or 5 bits for red and blue and 6 bits for green :* 8 bits per component (sometimes called
true color) packed into 24 or 32 bits per pixel :* 10 bits per component in a 32 bit packed representation (one of several higher-precision varieties of color representation known as
deep color) :* 16 bits per component as integers, fixed-point numbers, or half-precision floating-point numbers packed into 48 or 64 bits :* 32 bits per component as fixed-point numbers or full-precision floating point numbers packed into 96 or 128 bits (for which lossless coding is not supported due to the excessively high precision) : JPEG XR also supports 16 bits per component (64-bit per pixel) integer
CMYK color model. : 16-bit and 32-bit fixed point color component codings are also supported in JPEG XR. In such encodings, the most-significant 4 bits of each color channel are treated as providing additional "headroom" and "toe room" beyond the range of values that represents the nominal black-to-white signal range. : Moreover, 16-bit and 32-bit floating point color component codings are supported in JPEG XR. In these cases the image is interpreted as floating point data, although the JPEG XR encoding and decoding steps are all performed using only integer operations (to simplify the compression processing). : The shared-exponent floating point color format known as
RGBE (
Radiance) is also supported, enabling more faithful storage of
high-dynamic-range (HDR) images. : In addition to RGB and CMYK formats, JPEG XR also supports
grayscale and multi-
channel color encodings with an arbitrary number of channels. : The color representations, in most cases, are transformed to an internal color representation. The transformation is entirely reversible, so that this color transformation step does not introduce distortion and thus lossless coding modes can be supported. ; Transparency map support: An
alpha channel may be present to represent transparency, so that alpha blending overlay capability is enabled. ; Compressed-domain image modification: In JPEG XR, full decoding of the image is unnecessary for converting an image from a lossless to lossy encoding, reducing the fidelity of a lossy encoding, or reducing the encoded image resolution. : Full decoding is also unnecessary for certain editing operations such as cropping, horizontal or vertical flips, or
cardinal rotations. : The tile structure for access to image regions can also be changed without full decoding and without introducing distortion. ; Metadata support: A JPEG XR image file may optionally contain an embedded
ICC color profile, to achieve consistent color representation across multiple devices. :
Exif and
XMP metadata formats are also supported.
Container format One file
container format that can be used to store JPEG XR image data is specified in Annex A of the JPEG XR standard. It is a
TIFF-like format using a table of
Image File Directory (IFD) tags. A JPEG XR file contains image data, optional alpha channel data, metadata, optional
XMP metadata stored as
RDF/XML, and optional
Exif metadata, in IFD tags. The image data is a contiguous self-contained chunk of data. The optional alpha channel, if present, can be compressed as a separate image record, enabling decoding of the image data independently of transparency data in applications which do not support transparency. (Alternatively, JPEG XR also supports an "interleaved" alpha channel format in which the alpha channel data is encoded together with the other image data in a single compressed codestream.) Being TIFF-based, this format inherits all of the limitations of the TIFF format including the 4 GB file-size limit, which according to the HD Photo specification "will be addressed in a future update". New work has been started in the JPEG committee to enable the use of JPEG XR image coding within the JPX file storage format – enabling use of the JPIP protocol, which allows interactive browsing of networked images.
Compression algorithm JPEG XR's design is conceptually very similar to
JPEG: the source image is optionally converted to a
luma-chroma colorspace, the chroma planes are optionally
subsampled, each plane is divided into fixed-size blocks, the blocks are transformed into the frequency domain, and the frequency coefficients are quantized and
entropy coded. Major differences include the following: • JPEG supports bit depths of 8 and 12 bits; JPEG XR supports bit depths of up to 32 bits. JPEG XR also supports lossless and lossy compression of floating-point image data (by representing the floating-point values in an
IEEE 754-like format, and encoding them as though they were integers) and
RGBE imagery. •
JFIF and other typical image encoding practices specify a linear transformation from RGB to
YCbCr, which is slightly lossy in practice because of
roundoff error. JPEG XR specifies a lossless colorspace transformation, namely
YCoCg-R, given (for RGB) by: ::V = B - R\, ::U = G - R - \left\lceil \frac{V}{2} \right\rceil ::Y = G - \left\lceil \frac{U}{2} \right\rceil • While JPEG uses 8 × 8 blocks for its frequency transformation, JPEG XR primarily uses 4 × 4 block transforms. (2 × 4 and 2 × 2 transformations are also defined for special cases involving
chroma subsampling; encoder options include YUV_444, YUV_422, YUV_420, and a monochrome Y_only.) • While JPEG uses a single transformation stage, JPEG XR applies its 4 × 4 core transform in a two-level hierarchical fashion within 16 × 16
macroblock regions. This gives the transform a
wavelet-like multi-resolution hierarchy and improves its compression capability. • The
DCT, the frequency transformation used by JPEG, is slightly lossy because of roundoff error. JPEG XR uses a type of integer transform employing a
lifting scheme. The required transform, called the Photo Core Transform (PCT), resembles a 4 × 4 DCT but is lossless (exactly invertible). In fact, it is a particular realization of a larger family of binary-friendly multiplier-less transforms called the binDCT. • JPEG XR allows an optional overlap prefiltering step, called the Photo Overlap Transform (POT), before each of its 4 × 4 core transform PCT stages. • In JPEG, the image DC coefficients of the DCT blocks are predicted by applying DC prediction from the left neighbor transform block, and no other coeffients are predicted. In JPEG XR, 4 × 4 blocks are grouped into macroblocks of 16 × 16 samples, and the 16 DC coefficients from the 4 × 4 blocks of each macroblock are passed through another level of frequency transformation, leaving three types of coefficients to be entropy coded: the macroblock DC coefficients (called DC), macroblock-level AC coefficients (called "lowpass"), and lower-level AC coefficients (called AC). Prediction of coefficient values across transform blocks is applied to the DC coefficients and to an additional row or column of AC coefficients as well. • JPEG XR supports the encoding of an image by decomposing it into smaller individual rectangular
tile area regions. Each tile area can be decoded independently from the other areas of the picture. This allows fast access to spatial areas of pictures without decoding the entire picture. • JPEG XR's entropy coding phase is more adaptive and complex than JPEG's, involving a DC and AC coefficient prediction scheme, adaptive coefficient reordering (in contrast to JPEG's fixed zigzag ordering), and a form of adaptive Huffman coding for the coefficients themselves. • JPEG uses a single quantization step size per DC/AC component per color plane per image. JPEG XR allows a selection of DC quantization step sizes on a
tile region basis, and allows lowpass and AC quantization step sizes to vary from macroblock to macroblock. • Because all encoding phases except quantization are lossless, JPEG XR is lossless when all quantization coefficients are equal to 1. This is not true of JPEG. JPEG defines a separate lossless mode which does not use the DCT, but it is not implemented by
libjpeg and therefore not widely supported. The HD Photo bitstream specification claims that "HD Photo offers image quality comparable to
JPEG-2000 with computational and memory performance more closely comparable to JPEG", that it "delivers a lossy compressed image of better perceptive quality than JPEG at less than half the file size", and that "lossless compressed images … are typically 2.5 times smaller than the original uncompressed data". == Software support ==