Back to <a doc index</a><hr><br>
<h1>Supported sample types</h1>
<table width="100%" border="1" bgcolor="#fffff0" cellpadding="6" cellspacing="4">
<tr><th bgcolor="#f0f0f0">Family</th><th bgcolor="#f0f0f0">Bits</th><th bgcolor="#f0f0f0">Mnemonic</th><th
<tr><td rowspan="6" align="center">Unsigned Integer</td>
<td align="center">1</td>
<td
<td><table>
<tr><td>Min value:
<tr><td>Max value:

<tr><td align="center">2</td>
<td
<td><table>
<tr><td>Min value:
<tr><td>Max value:

<tr><td align="center">4</td>
<td
<td><table>
<tr><td>Min value:
<tr><td>Max value:

<tr><td align="center">8</td>
<td
<td><table>
<tr><td>Min value:
<tr><td>Max value:

<tr><td align="center">16</td>
<td
<td><table>
<tr><td>Min value:
<tr><td>Max value:

<tr><td align="center">32</td>
<td
<td><table>
<tr><td>Min value:
<tr><td>Max value:

<tr><td rowspan="3" align="center">Signed Integer</td>
<td align="center">8</td>
<td
<td><table>
<tr><td>Min value:
<tr><td>Max value:

<tr><td align="center">16</td>
<td
<td><table>
<tr><td>Min value:
<tr><td>Max value:

<tr><td align="center">32</td>
<td
<td><table>
<tr><td>Min value:
<tr><td>Max value:

<tr><td rowspan="2" align="center">Floating Point</td>
<td align="center">32</td>
<td
<td><table>
<tr><td>Min value:
<tr><td>Max value:

<tr><td align="center">64</td>
<td
<td><table>
<tr><td>Min value:
<tr><td>Max value:

</table><br>
<hr>
<h1>Supported pixel types</h1>
<table width="100%" border="1" bgcolor="#fffff0" cellpadding="6" cellspacing="4">
<tr><th bgcolor="#f0f0f0">Mnemonic</th><th bgcolor="#f0f0f0">Bands</th><th bgcolor="#f0f0f0">Sample type</th><th
<tr><td
<td align="center">1</td>
<td
<td>the implicit photometric interpretation always is:
<ul>
<li><b>0</b>: full transparent</li>
<li><b>1</b>: black, opaque</li>

<tr><td
<td align="center">1</td>
<td
<td>the implicit photometric interpretation is always the one defined by the Palette Color associated to the Raster Coverage.<br>
This actually corresponds to an RGB output image, the color of each pixel being indirectly determined by its palette index.

<tr><td
<td align="center">1</td>
<td
<td>the implicit photometric interpretation is always of the Grayscale type.<br>
<b>0</b> always corresponds to full black, and the max value to full white.

<tr><td
<td align="center">3</td>
<td
<td>the implicit photometric interpretation is always of the RGB type.

<tr><td
<td align="center">&gt; 1<br>&lt; 256</td>
<td
<td>there is no implicit photometric interpretation.

<tr><td
<td align="center">1</td>
<td
<td>there is no implicit photometric interpretation.

</table><br>
<hr>
<h1>Supported compression algorithms</h1>
<table width="100%" border="1" bgcolor="#fffff0" cellpadding="6" cellspacing="4">
<tr><th bgcolor="#f0f0f0">Mnemonic</th><th bgcolor="#f0f0f0">Compression type</th><th
<tr><td
<td align="center"><a
<td>no compression at all: simply an array of tightly packed values.

<tr><td
<td align="center"><a
<td>a general purpose compression algorithm used by ZIP archives and implemented by <a
You can find more detailed information about this algorithm <a

<tr><td
<td align="center"><a
<td>Exactly the same as <b>DEFLATE</b> except in that it will never apply a <b>Delta Filter</b>.

<tr><td
<td align="center"><a
<td>an advanced general purpose compression algorithm used by 7-ZIP archives and implemented by <a
You can find more detailed information about this algorithm <a
<u>Please note</u>: this algorithm is very slow while compressing, but is reasonably fast while decompressing; and usually ensures better compression ratios than DEFLATE.</li>

<tr><td
<td align="center"><a
<td>Exactly the same as <b>LZMA</b> except in that it will never apply a <b>Delta Filter</b>.

<tr><td
<td align="center"><a
<td>an highly specialized compression algorithm only supporting monochrome images initially developed for fax machines: implemented by <a
You can find more detailed information about this algorithm <a

<tr><td
<td align="center"><a
<td>a very popular general purpose image format supporting RGB, Grayscale and Palette-based colorspaces and fully supporting transparencies. Implemented by <a
You can find more detailed information about this compressed format <a

<tr><td
<td align="center"><a
<td>an universally spread photographic image format supporting RGB and Grayscale colorspaces but completely lacking of any transparency support. Implemented by <a
You can find more detailed information about this compressed format <a

<tr><td
<td align="center"><a
<td>an innovative photographic image format supporting RGB and Grayscale colorspaces and fully supporting transparencies. Implemented by <a
You can find more detailed information about this compressed format <a
<u>Please note</u>: this algorithm is very slow while compressing, but is reasonably fast while decompressing; and usually ensures slightly better compression ratios than JPEG at the same quality level.</li>

<tr><td
<td align="center"><a
<td>exactly the same of the previous one, but in mode.<br>
This usually means accepting moderate compression ratios (about 1:2).

<tr><td
<td align="center"><a
<td>a genuinely compression based on the <a algorithm (don't be confused; it's a completely different algorithm from the usual JPEG).<br>
It usually ensures good compression factors (about 1:2) and it's reasonably fast.

<tr><td
<td align="center"><a
<td>the <a photographic image format supporting RGB and Grayscale colorspaces and fully supporting transparencies. Implemented by <a OpenJpeg</a>.<br>
<u>Please note</u>: this algorithm is very slow either while compressing and compressing; it usually ensures slightly better compression ratios than JPEG at the same quality level.</li>

<tr><td
<td align="center"><a
<td>exactly the same of the previous one, but in mode.<br>
This usually means accepting moderate compression ratios (about 1:2).

</table><br>
<hr>
<h1>Pixel / Sample / Compression compatibility chart</h1>
<table width="100%" cellpadding="6" cellspacing="4">
<tr><th rowspan="2"></th>
<th bgcolor="#d0d0d0" valign="top">MONOCHROME</th>
<th bgcolor="#d0d0d0" valign="top">PALETTE</th>
<th bgcolor="#d0d0d0" valign="top">GRAYSCALE</th>
<th bgcolor="#d0d0d0" valign="top" colspan="2">RGB</th>
<th bgcolor="#d0d0d0" valign="top" colspan="3">MULTIBAND</th>
<th bgcolor="#d0d0d0" valign="top"
<tr><th bgcolor="#e0e0d0"
<th bgcolor="#e0e0d0" valign="top">1-BIT<br>2-BIT<br>4-BIT<br>UINT8</th>
<td bgcolor="#e0e0d0" valign="top" align="center"><b>2-BIT<br>4-BIT<br>UINT8</b><br><br><hr><i>for Grayscale 16bit please see</i>:<br>DATAGRID UINT16</td>
<th bgcolor="#e0e0d0" valign="top">UINT8</th>
<th bgcolor="#e0e0d0" valign="top">UINT16</th>
<td bgcolor="#e0e0d0" valign="top" align="center"><b>UINT8</b><br><br><br><hr><i>(3 or 4
<td bgcolor="#e0e0d0" valign="top" align="center"><b>UINT16</b><br><br><br><hr><i>(3 or 4
<td bgcolor="#e0e0d0" valign="top" or >= 5
<th bgcolor="#e0e0d0" valign="top">UINT8<br>UINT16</th>
<th bgcolor="#e0e0d0"
<tr><th bgcolor="#d0d0d0">NONE</th>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
</tr>
<tr><th bgcolor="#d0d0d0">DEFLATE</th>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
</tr>
<tr><th bgcolor="#d0d0d0">DEFLATE_NO</th>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
</tr>
<tr><th bgcolor="#d0d0d0">LZMA</th>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
</tr>
<tr><th bgcolor="#d0d0d0">LZMA_NO</th>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
</tr>
<tr><th bgcolor="#d0d0d0">FAX4</th>
<td bgcolor="#d0ffd0" align="center">yes</td>

</tr>
<tr><th bgcolor="#d0d0d0">PNG</th>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td></td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td></td>
</tr>
<tr><th bgcolor="#d0d0d0">JPEG</th>

<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>

</tr>
<tr><th bgcolor="#d0d0d0">WEBP</th>

<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td></td>
<td bgcolor="#d0ffd0" align="center">yes</td>

</tr>
<tr><th bgcolor="#d0d0d0">LL_WEBP</th>

<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td></td>
<td bgcolor="#d0ffd0" align="center">yes</td>

</tr>
<tr><th bgcolor="#d0d0d0">CHARLS</th>

<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td></td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td></td>
</tr>
<tr><th bgcolor="#d0d0d0">JP2</th>

<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td></td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td></td>
</tr>
<tr><th bgcolor="#d0d0d0">LL_JP2</th>

<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td></td>
<td bgcolor="#d0ffd0" align="center">yes</td>
<td></td>
</tr>
</table>
<br>
<hr>
<h1>Multi-resolution Pyramid levels configuration</h1>
<table width="100%" cellpadding="6" cellspacing="4">
<tr><th bgcolor="#d0d0d0">Pixel type</th><th bgcolor="#d0d0d0">Base level<br><i>full bgcolor="#d0d0d0">Upper bgcolor="#d0d0d0" valign="center"
<tr><th bgcolor="#e0e0d0">MONOCHROME</th><th bgcolor="#d0ffd0">1-BIT</th><th bgcolor="#e0ffff">GRAYSCALE UINT8<br><i>compression</i> PNG</th><td>applying an high-quality <b><i>halftone rescaling/downsampling algorithm ensures a better visual quality but imposes a change in color model.</tr>
<tr><th bgcolor="#e0e0d0" rowspan="4">PALETTE</th><th bgcolor="#d0ffd0">1-BIT</th><th bgcolor="#e0ffff">RGB UINT8<br><i>compression</i> PNG</th><td>same as
<tr><th bgcolor="#d0ffd0">2-BIT</th><th bgcolor="#e0ffff">RGB UINT8<br><i>compression</i> PNG</th><td>same as
<tr><th bgcolor="#d0ffd0">4-BIT</th><th bgcolor="#e0ffff">RGB UINT8<br><i>compression</i> PNG</th><td>same as
<tr><th bgcolor="#d0ffd0">UINT8</th><th bgcolor="#e0ffff">RGB UINT8<br><i>compression</i> JPEG</th><td>same as
</tr>
<tr><th bgcolor="#e0e0d0" rowspan="3">GRAYSCALE</th><th bgcolor="#d0ffd0">2-BIT</th><th bgcolor="#e0ffff">GRAYSCALE UINT8<br><i>compression</i> JPEG</th><td>same as
<tr><th bgcolor="#d0ffd0">4-BIT</th><th bgcolor="#e0ffff">GRAYSCALE UINT8<br><i>compression</i> JPEG</th><td>same as
<tr><th bgcolor="#d0ffd0">UINT8</th><th bgcolor="#d0ffd0"><i>same as in
<tr><th bgcolor="#e0e0d0" rowspan="2">RGB</th><th bgcolor="#d0ffd0">UINT8</th><th bgcolor="#d0ffd0"><i>same as in
<tr><th bgcolor="#d0ffd0">UINT16</th><th bgcolor="#d0ffd0"><i>same as in
</tr>
<tr><th bgcolor="#e0e0d0" rowspan="2">MULTIBAND</th><th bgcolor="#d0ffd0">UINT8</th><th bgcolor="#d0ffd0"><i>same as in
<tr><th bgcolor="#d0ffd0">UINT16</th><th bgcolor="#d0ffd0"><i>same as in
<tr><th bgcolor="#e0e0d0" rowspan="8">DATAGRID</th><th bgcolor="#d0ffd0">INT8</th><th bgcolor="#d0ffd0"><i>same as in
<tr><th bgcolor="#d0ffd0">UINT8</th><th bgcolor="#d0ffd0"><i>same as in
<tr><th bgcolor="#d0ffd0">INT16</th><th bgcolor="#d0ffd0"><i>same as in
<tr><th bgcolor="#d0ffd0">UINT16</th><th bgcolor="#d0ffd0"><i>same as in
<tr><th bgcolor="#d0ffd0">INT32</th><th bgcolor="#d0ffd0"><i>same as in
<tr><th bgcolor="#d0ffd0">UINT32</th><th bgcolor="#d0ffd0"><i>same as in
<tr><th bgcolor="#d0ffd0">FLOAT</th><th bgcolor="#d0ffd0"><i>same as in
<tr><th bgcolor="#d0ffd0">DOUBLE</th><th bgcolor="#d0ffd0"><i>same as in
</table>
<ol>
<li>the same identical <b>PixelType</b>, <b>SampleType</b> and <b>Compression</b> are adopted for both base-level and upper rescaled-levels whenever is possible.</li>
<li> except when a change in the color space is strictly required by high-quality rescaling/downsampling algorithm supporting <b><i>halftone
<li>all upper Pyramid levels (rescaled) are always implicitly compressed: these are always heavily reworked levels, so there is any real need to carefully preserve all input data exactly as they originally were.</li>
<ul>
<li><b>JPEG</b> is used for either RGB and GRAYSCALE (UINT8).</li>
<li><b>PNG</b> is used for all limited extension samples: 1-BIT, 2-BIT and 4-bit.<br>All these samples could implicitly imply and only PNG will offer an adequate support.</li>
<li><b>DEFLATE</b> is used for any other configuration.</li>

</ol>
<br><br><hr>
Back to <a doc index</a>