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 |
To support the HD Photo format, attach the ImageGear HD Photo Component to Core ImageGear. See Attaching Components.
ImageGear Supported Versions:
ImageGear Supported Features:
- IG_FLTR_DETECTSUPPORT - autodetection
- IG_FLTR_PAGEREADSUPPORT - single page file reading
- IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
ImageGear Read Support:
- IG_COMPRESSION_HDP:
- Grayscale: 1, 8, 16 bpp;
- RGB: 24, 48 bpp;
- RGBA: 32, 64 bpp;
- RGBPA: 32, 64 bpp;
- CMYK: 32, 64 bpp;
- CMYKEx: 40, 80 bpp;
- Extra: 3...9 channels x 8, 16 bpp;
ImageGear Write Support:
- IG_COMPRESSION_HDP:
- Grayscale: 1, 8, 16 bpp;
- RGB: 24, 48 bpp;
- RGBA: 32, 64 bpp;
- RGBPA: 32, 64 bpp;
- CMYK: 32, 64 bpp;
- CMYKEx: 40, 80 bpp;
- Extra: 3...9 channels x 8, 16 bpp;
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:
- Multiple color formats for display or print
- Fixed or floating point high-dynamic-range image encoding
- Lossless or high-quality lossy compression
- Efficient decoding for multiple resolutions and subregions
- Minimal overhead for format conversion or transformations during decode
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://learn.microsoft.com/en-us/windows/win32/wic/hdphoto-format-overview