# ISO/IEC 29199-2: Wikis

Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.

# Encyclopedia

(Redirected to JPEG XR article)

Filename extension .hdp[1], .jxr[2], .wdp[1] image/vnd.ms-photo Microsoft, ITU-T, ISO/IEC 14 April 2009 1.0 / 19 March 2009 Graphics file format ITU-T Rec. T.832, ISO/IEC 29199-2:2009 ITU-T T.832:2009, ISO/IEC 29199-2:2009

JPEG XR (formerly Windows Media Photo and HD Photo)[3] is a still-image compression standard and file format for continuous tone photographic images, based on technology originally developed and patented by Microsoft as a part of the Windows Media family. It supports both lossy and lossless compression, and is the preferred image format for Ecma-388 Open XML Paper Specification documents. Support for file format is available as part of Windows Imaging Component, .NET Framework (3.0 or newer), and Windows Vista/Windows 7.

## History

Microsoft first announced Windows Media Photo at WinHEC 2006[4], and was later renamed to HD Photo in November of that year. In July 2007, the Joint Photographic Experts Group and Microsoft announced HD Photo to be under consideration to become a JPEG standard known as JPEG XR.[5][6] On 16 March 2009, JPEG XR was given final approval as ITU-T Recommendation T.832 and starting in April 2009, it became available from the ITU-T in "pre-published" form.[2] On 19 June 2009, it passed an ISO/IEC Final Draft International Standard (FDIS) ballot, resulting in final approval as international standard ISO/IEC 29199-2.[7][8]

## Description

JPEG XR is an image file format that offers several key improvements over JPEG, including:[9]

Better compression:
JPEG XR file format supports higher compression ratios in comparison to JPEG. JPEG XR also supports lossless compression.
Support for more color accuracy:
In image and graphics representations, the color associated with each point in the picture (called a pixel) is represented as a set of numbers. Each color can be expressed as a combination of numbers that each represent the intensity of one of the components of a color (known as the channel) which consists of Red, Green and Blue (the three colors of light) color primary. Such a color scheme is called the RGB color model. Using an alternative set of color primaries, graphic files may treat the color of each point as a combination of Cyan, Magenta, Yellow, and Black (the four ink colors of printers) and therefore store the color of each point in four channels. Such a color scheme is called the CMYK color model. When the image being stored contains only black, white and shades of gray as colors, the image may be represented using a single grayscale channel for each pixel that only represents the intensity of the gray shade.
JPEG supports 24-Bit RGB (also known as truecolor): It stores each channel as an 8-bit number, an integer number between 0 to 255. In this case, the greater the number, the more intense the color component is. For instance, 25 in red channel represents dark red while 255 indicates fully-vibrant red. This enables more than 16 million color possibilities. JPEG also supports 8-bit grayscale scheme, so that each pixel can have one of 256 possible shades of gray.
JPEG XR adds supports for 48-bit integer RGB (also known as Deep Color): It stores the values of each of the three channels as a 16-bit number, an integer number between 0 to 65,535, where 0 denotes least intensity and 65535 the greatest. Therefore, each channel stores a much finer grade of intensity. JPEG XR also support 16-bit integer CMYK color model and 16-bit integer grayscale.[10]
Support for High dynamic range imaging

### 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. An 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.

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.[7] Additionally, a Motion JPEG XR specification for support of video sequences was approaching the Final Committee Draft phase of the ISO/IEC approval process as of July 2009.[7]

### Compression algorithm

HD Photo's design[2][11] 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; HD Photo supports bit depths of up to 32 bits. HD Photo 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. HD Photo specifies a lossless colorspace transformation, 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, HD Photo primarily uses 4 × 4 block transforms. (2 × 4 and 2 × 2 transformations are also defined for special cases involving chroma subsampling.)
• While JPEG uses a single transformation stage, HD Photo 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. HD Photo uses a type of integer transform employing a lifting scheme, which resembles a 4 × 4 DCT but is lossless (exactly invertible).
• HD Photo allows an optional overlap prefiltering step before each of its 4 × 4 core transform stages. The filter operates on 4 × 4 blocks which are offset by 2 samples in each direction from the 4 × 4 core transform blocks. Its purpose is to improve compression capability and reduce block-boundary artifacts at low bitrates. At high bitrates, where such artifacts are typically not a problem, the prefiltering can be omitted to reduce encoding and decoding time. The overlap filtering is constructed using integer operations following a lifting scheme, so that it is also lossless.
• In JPEG, the image DC coefficients of the DCT are predicted by applying DC prediction from the left neighbor transform block, and no other coeffients are predicted. In HD Photo, blocks are grouped into macroblocks of 16 × 16 samples, and the DC coefficients from each macroblock are passed though 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.
• HD Photo 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.
• HD Photo'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. HD Photo 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, HD Photo 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".

## Licensing

Microsoft has patents on the technology in HD Photo. A Microsoft representative stated in a January 2007 interview that in order to encourage the adoption and use of HD Photo, the specification is made available under the Microsoft Open Specification Promise, which asserts that Microsoft offers the specification for free, and will not file suit on the patented technology, and that open-source software can therefore make use of the format.[17] as stated by to Josh Weisberg, director of Microsoft's Rich Media Group. However, as of Microsoft's March 23, 2009 update, HD Photo is still not among the technologies that Microsoft has listed as being covered by the Open Specification Promise.[18]

In addition to the specification itself, Microsoft released the "HD Photo Device Porting Kit" which provides source code and build configuration files for multiple platforms. While the license for this code is designed to encourage broad adoption in products, the license terms specifically prohibit including any of Device Porting Kit's code in products or systems that use strong copyleft licensing.[19]

 “ 2. c. Distribution Restrictions. You may not … modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that the code be disclosed or distributed in source code form; or others have the right to modify it. ”

As a consequence, any implementation that would be suitable for inclusion in a software package distributed under the GNU General Public License would need to be written from the HD Photo Bitstream Specification (also assuming Microsoft does cover HD Photo under the Open Specification Promise), although the licenses such as the Open Source Initiative-approved BSD license would likely be acceptable.

## References

1. ^ a b "Microsoft HD Photo Device Porting Kit Specification". Microsoft Corporation. 7 November 2006. Retrieved 8 November 2009.
2. ^ a b c "Recommendation T.832 : Information technology - JPEG XR image coding system - Part 2: Image coding specification". International Telecommunication Union - Standardization sector (ITU-T). 16 March 2008. Retrieved 24 October 2009.
3. ^ Bill, Crow (1 November 2006). "Introducing HD Photo". Microsoft Developer Network blogs, Bill Crow's blog. Microsoft Corporation. Retrieved 24 October 2009.
4. ^ Microsoft shows off JPEG rival
5. ^ "Microsoft’s HD Photo Technology Is Considered for Standardization by JPEG". Microsoft Corporation. 31 July 2007. Retrieved 31 July 2007.
6. ^ "JPEG 2000 Digital Cinema Successes and Proposed Standardization of JPEG XR". Join Photographic Experts Group. 6 July 2007. Retrieved 31 July 2009.
7. ^ a b c Sharpe, Louis (17 July 2009). "Press Release – 49th WG1 Sardinia Meeting". Joint Photographic Experts Group. Retrieved 24 October 2009.
8. ^ "ISO/IEC 29199-2 : Information technology - JPEG XR image coding system - Part 2: Image coding specification". International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC). 14 August 2009. Retrieved 9 November 2009.
9. ^ Bill, Crow (30 July 2009). "JPEG XR is Now an International Standard". Microsoft Developer Network blogs, Bill Crow's blog. Microsoft Corporation. Retrieved 24 October 2009.
10. ^ "Pixel Formats (Part 1: Unsigned Integers)". Bill Crow's Digital Imaging & Photography Blog. Microsoft Developer Network. 1 June 2006. Retrieved 26 October 2009.
11. ^ S. Srinivasan, C. Tu, S. L. Regunathan, and G. J. Sullivan, “HD Photo: A New Image Coding Technology for Digital Photography”, SPIE Applications of Digital Image Processing XXX, SPIE Proceedings, volume 6696, paper 66960A, Sept. 2007.
12. ^ Konvertor main page
13. ^ Paint.NET HD Photo plugin
14. ^
15. ^ Xara Xtreme Features
16. ^ http://www.serif.com/pageplus
17. ^ Stephen Shankland (2007-01-23). "Vista to give HD Photo format more exposure". CNet. Retrieved 2007-03-09.
18. ^ "Microsoft Open Specification Promise". 2009-03-23. Retrieved 2009-08-21.
19. ^ "HD Photo Device Porting Kit 1.0". Microsoft, Inc.. December 21, 2006. Retrieved 2007-08-09.