ImageGear for C and C++ on Windows v19.10 - Updated
HD Photo
User Guide > File Formats and Compressions > File Formats > File Formats Reference > HD Photo

Full Name HD Photo (formerly Windows Media Photo)
Format ID IG_FORMAT_HDP = 110
File Extension(s) *.hdp, *.wdp
Data Type Raster image
Data Encoding Binary
Color Profile Support Read, Write
Multi-Page Support No
Alpha Channel Support Yes
ImageGear Platforms Support WIN32 (DLL only), WIN64, .NET, .NET64

To support the HD Photo format, attach the ImageGear HD Photo Component to Core ImageGear. See Attaching Components.

ImageGear Supported Versions:

ImageGear Supported Features:

ImageGear Read Support:

ImageGear Write Support:

ImageGear Filter Control Parameters:

Name Type Default value Available values Description
Lossless AM_TID_AT_BOOL FALSE TRUE, FALSE Setting this parameter to TRUE enables lossless compression mode.
ImageQuality AM_TID_DOUBLE 0.9 Any Double value in range 0.0...1.0 Specifies image quality. 0.0 specifies lowest quality, 1.0 specifies highest quality (lossless mode). 1)
BitmapTransform AM_TID_AT_MODE 0 One or combination of the following values: 0x00000000 (Rotate 0), 0x00000001 (Rotate 90), 0x00000002 (Rotate 180), 0x00000003 (Rotate 270), 0x00000008 (Flip Horizontal), 0x00000010 (Flip Vertical) This parameter is stored as the BitMapTransform value in the compressed bit stream header, controlling how the image will be transformed during decode.
UseAdvancedParameters AM_TID_AT_BOOL FALSE TRUE, FALSE Specifies whether standard or advanced parameters should be used.
Advanced.Quality AM_TID_BYTE 1 1...255 Controls quantization of the main image. A value of 1 sets lossless mode (no quantization). Increasing values result in greater quantization and thus greater compression ratios and lower image quality. This parameter is tightly related with Advanced.Subsampling and Advanced.Overlap parameters, and its behavior may differ depending on source image content. If the application needs a single parameter to control image quailty, the use of the basic ImageQuality parameter is recommended.
Advanced.Overlap AM_TID_BYTE 0 0, 1, 2 This parameter selects the optional overlap processing level. 2)
Advanced.Subsampling AM_TID_BYTE 3 0, 1, 2, 3 Enables additional compression in the chroma space, preserving luminance detail at the expense of color detail. Only applies to RGB images 3)
Advanced.HorizontalTileSlices AM_TID_WORD 0 0...4096 Specifies horizontal tiling of the image. 0 means no horizontal subdividions (1 tile), 1 means 2 horizontal tiles, etc.
Advanced.VerticalTileSlices AM_TID_WORD 0 0...4096 Specifies vertical tiling of the image. 0 means no vertical subdividions (1 tile), 1 means 2 vertical tiles, etc.
Advanced.FrequencyOrder AM_TID_AT_BOOL TRUE TRUE, FALSE Specifies that the image must be encoded in frequency order, with the lowest frequency data appearing first in the file, and image content grouped by its frequency rather than its spatial orientation. Organizing a file by frequency order provides the highest performance results for any frequency-based decoding, and is the preferred option.
Advanced.InterleavedAlpha AM_TID_AT_BOOL FALSE TRUE, FALSE Specifies whether to encode Alpha channel as an additional interleaved channel, or as a planar alpha channel, encoded as a separate image with its own optional Quality value. Interleaved alpha channels are only supported for certain RGB pixel formats. A Planar alpha channel can be associated with any image format that defines an alpha channel.
Advanced.AlphaQuality AM_TID_BYTE 1 1...255 Specifies quantization for the planar alpha channel image. A value of 1 sets lossless mode (no quantization). Increasing values result in greater quantization and thus greater compression ratios and lower alpha quality.
Advanced.CompressedDomainTranscode AM_TID_AT_BOOL TRUE TRUE, FALSE Not used
Advanced.ImageDataDiscard AM_TID_BYTE 0 0...3 Not used
Advanced.AlphaDataDiscard AM_TID_BYTE 0 0...4 Not used
Advanced.IgnoreOverlap AM_TID_AT_BOOL FALSE TRUE, FALSE Not used

1) Quality value maps to specific WMPhoto encoder parameters based on the following table:

ImageQuality Advanced.Quality (BD<=8) Advanced.Quality (BD<=16) Advanced.Quality (BD>16) Advanced.
Subsampling
Advanced .Overlap
>0.0 <0.4 105-IQ*100 185-IQ*180 245-IQ*240 4:4:4 2
>0.4 <1.0 105-IQ*100 185-IQ*180 245-IQ*240 4:4:4 1
1.0 1 1 1 4:4:4 0


2) Selects the optional overlap processing level

0 No overlap processing is enabled.
1 One level of overlap processing is enabled, modifying 4x4 block encoded values based on values of neighboring blocks.
2 Two levels of overlap processing are enabled; in addition to the first level processing, encoded values of 16x16 macro blocks are modified based on the values of neighboring macro blocks.

3) Allowed values for Advanced.Subsampling parameter are:

3 4:4:4 encoding preserves full chroma resolution.
2 4:2:2 encoding reduces chroma resolution to 1/2 of luminance resolution.
1 4:2:0 encoding reduces chroma resolution to 1/4 of luminance resolution.
0 4:0:0 encoding discards all chroma content, preserving luminance only. Because the codec uses a slightly modified definition of luminance to improve performance, it is preferred to convert an RGB image to monochrome before encoding rather than use this chroma subsampling mode.

Comments:

HD Photo is a new file format for continuous-tone still images that surpasses the limitations of existing image formats. HD Photo supports a wide range of features including:

HD Photo delivers a lightweight, high performance algorithm with a small memory footprint that enables practical, in-device encoding and decoding. It delivers compression quality comparable with JPEG 2000 and more than twice the quality of JPEG.

HD Photo is the new name for Windows Media Photo. Both names refer to the exact same file format. The Windows Media Photo name is still used to describe the implementation of HD Photo in existing Windows products.

See Also

HD Photo Non-Image Data Structure

References Used

HD Photo v.1.0 Feature Specification.

https://msdn.microsoft.com/en-us/library/windows/desktop/gg430023(v=vs.85).aspx