Various doc tweaks

- "Optimized baseline entropy coding" = "Huffman table optimization"

  "Optimized baseline entropy coding" was meant to emphasize that the
  feature is only useful when generating baseline (single-scan lossy
  8-bit-per-sample Huffman-coded) JPEG images, because it is
  automatically enabled when generating Huffman-coded progressive
  (multi-scan), 12-bit-per-sample, and lossless JPEG images.  However,
  Huffman table optimization isn't actually an integral part of those
  non-baseline modes.  You can forego Huffman table optimization with
  12-bit data precision if you supply your own Huffman tables.  The spec
  doesn't require it with progressive or lossless mode, either, although
  our implementation does.  Furthermore, "baseline" describes more than
  just the type of entropy coding used.  It was incorrect to say that
  optimized "baseline" entropy coding is automatically enabled for
  Huffman-coded progressive, 12-bit-per-sample, and lossless JPEG
  images, since those are clearly not baseline images.

- "Progressive entropy coding" = "Progressive JPEG"

  "Progressive" describes more than just the type of entropy coding
  used.  (In fact, both Huffman-coded and arithmetic-coded images can be
  progressive.)

- Mention that TJPARAM_OPTIMIZE/TJ.PARAM_OPTIMIZE can be used with
  lossless transformation as well.

- General wordsmithing

- Formatting tweaks
This commit is contained in:
DRC
2024-08-14 09:21:54 -04:00
parent b4336c3afb
commit 0c23b0ad60
20 changed files with 1016 additions and 870 deletions

View File

@@ -150,23 +150,23 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_CMYK">CS_CMYK</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">CMYK colorspace.</div>
<div class="block">CMYK colorspace</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_GRAY">CS_GRAY</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">Grayscale colorspace.</div>
<div class="block">Grayscale colorspace</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_RGB">CS_RGB</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">RGB colorspace.</div>
<div class="block">RGB colorspace</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_YCbCr">CS_YCbCr</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">YCbCr colorspace.</div>
<div class="block">YCbCr colorspace</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_YCCK">CS_YCCK</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">YCCK colorspace.</div>
<div class="block">YCCK colorspace</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJCustomFilter.html#customFilter(java.nio.ShortBuffer,java.awt.Rectangle,java.awt.Rectangle,int,int,org.libjpegturbo.turbojpeg.TJTransform)">customFilter(ShortBuffer, Rectangle, Rectangle, int, int, TJTransform)</a></span> - Method in interface org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg">TJCustomFilter</a></dt>
<dd>
@@ -670,47 +670,43 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_ARITHMETIC">OPT_ARITHMETIC</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></dt>
<dd>
<div class="block">This option will enable arithmetic entropy coding in the JPEG image
generated by this particular transform.</div>
<div class="block">Enable arithmetic entropy coding in the destination image.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_COPYNONE">OPT_COPYNONE</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></dt>
<dd>
<div class="block">This option will prevent <a href="org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>TJTransformer.transform()</code></a> from copying any extra markers (including EXIF
and ICC profile data) from the source image to the destination image.</div>
<div class="block">Do not copy any extra markers (including EXIF and ICC profile data) from
the source image to the destination image.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_CROP">OPT_CROP</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></dt>
<dd>
<div class="block">This option will enable lossless cropping.</div>
<div class="block">Enable lossless cropping.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_GRAY">OPT_GRAY</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></dt>
<dd>
<div class="block">This option will discard the color data in the source image and produce a
grayscale destination image.</div>
<div class="block">Discard the color data in the source image, and generate a grayscale
destination image.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_NOOUTPUT">OPT_NOOUTPUT</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></dt>
<dd>
<div class="block">This option will prevent <a href="org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>TJTransformer.transform()</code></a> from outputting a JPEG image for this
particular transform.</div>
<div class="block">Do not generate a destination image.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_OPTIMIZE">OPT_OPTIMIZE</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></dt>
<dd>
<div class="block">This option will enable optimized baseline entropy coding in the JPEG
image generated by this particular transform.</div>
<div class="block">Enable Huffman table optimization for the destination image.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PERFECT">OPT_PERFECT</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></dt>
<dd>
<div class="block">This option will cause <a href="org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>TJTransformer.transform()</code></a> to throw an exception if the transform is not
<div class="block">This option causes <a href="org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>TJTransformer.transform()</code></a> to throw an exception if the transform is not
perfect.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PROGRESSIVE">OPT_PROGRESSIVE</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></dt>
<dd>
<div class="block">This option will enable progressive entropy coding in the JPEG image
generated by this particular transform.</div>
<div class="block">Generate a progressive destination image instead of a single-scan
destination image.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_TRIM">OPT_TRIM</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></dt>
<dd>
<div class="block">This option will discard any partial MCU blocks that cannot be
transformed.</div>
<div class="block">Discard any partial MCU blocks that cannot be transformed.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJTransform.html#options">options</a></span> - Variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></dt>
<dd>
@@ -779,7 +775,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_OPTIMIZE">PARAM_OPTIMIZE</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">Optimized baseline entropy coding [lossy compression only]</div>
<div class="block">Huffman table optimization [lossy compression, lossless transformation]</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_PRECISION">PARAM_PRECISION</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
@@ -787,7 +783,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_PROGRESSIVE">PARAM_PROGRESSIVE</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">Progressive entropy coding</div>
<div class="block">Progressive JPEG</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_QUALITY">PARAM_QUALITY</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
@@ -826,51 +822,51 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_ABGR">PF_ABGR</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">ABGR pixel format.</div>
<div class="block">ABGR pixel format</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_ARGB">PF_ARGB</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">ARGB pixel format.</div>
<div class="block">ARGB pixel format</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_BGR">PF_BGR</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">BGR pixel format.</div>
<div class="block">BGR pixel format</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_BGRA">PF_BGRA</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">BGRA pixel format.</div>
<div class="block">BGRA pixel format</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_BGRX">PF_BGRX</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">BGRX pixel format.</div>
<div class="block">BGRX pixel format</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_CMYK">PF_CMYK</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">CMYK pixel format.</div>
<div class="block">CMYK pixel format</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_GRAY">PF_GRAY</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">Grayscale pixel format.</div>
<div class="block">Grayscale pixel format</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_RGB">PF_RGB</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">RGB pixel format.</div>
<div class="block">RGB pixel format</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_RGBA">PF_RGBA</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">RGBA pixel format.</div>
<div class="block">RGBA pixel format</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_RGBX">PF_RGBX</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">RGBX pixel format.</div>
<div class="block">RGBX pixel format</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_XBGR">PF_XBGR</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">XBGR pixel format.</div>
<div class="block">XBGR pixel format</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_XRGB">PF_XRGB</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">XRGB pixel format.</div>
<div class="block">XRGB pixel format</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#planeHeight(int,int,int)">planeHeight(int, int, int)</a></span> - Static method in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
@@ -893,35 +889,35 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<dl>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_411">SAMP_411</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">4:1:1 chrominance subsampling.</div>
<div class="block">4:1:1 chrominance subsampling</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_420">SAMP_420</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">4:2:0 chrominance subsampling.</div>
<div class="block">4:2:0 chrominance subsampling</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_422">SAMP_422</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">4:2:2 chrominance subsampling.</div>
<div class="block">4:2:2 chrominance subsampling</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_440">SAMP_440</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">4:4:0 chrominance subsampling.</div>
<div class="block">4:4:0 chrominance subsampling</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_441">SAMP_441</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">4:4:1 chrominance subsampling.</div>
<div class="block">4:4:1 chrominance subsampling</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_444">SAMP_444</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">4:4:4 chrominance subsampling (no chrominance subsampling).</div>
<div class="block">4:4:4 chrominance subsampling (no chrominance subsampling)</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_GRAY">SAMP_GRAY</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">Grayscale.</div>
<div class="block">Grayscale</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_UNKNOWN">SAMP_UNKNOWN</a></span> - Static variable in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></dt>
<dd>
<div class="block">Unknown subsampling.</div>
<div class="block">Unknown subsampling</div>
</dd>
<dt><span class="memberNameLink"><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#set(int,int)">set(int, int)</a></span> - Method in class org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</a></dt>
<dd>

Binary file not shown.

View File

@@ -157,35 +157,35 @@ extends java.lang.Object</pre>
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CS_CMYK">CS_CMYK</a></span></code></th>
<td class="colLast">
<div class="block">CMYK colorspace.</div>
<div class="block">CMYK colorspace</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CS_GRAY">CS_GRAY</a></span></code></th>
<td class="colLast">
<div class="block">Grayscale colorspace.</div>
<div class="block">Grayscale colorspace</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CS_RGB">CS_RGB</a></span></code></th>
<td class="colLast">
<div class="block">RGB colorspace.</div>
<div class="block">RGB colorspace</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CS_YCbCr">CS_YCbCr</a></span></code></th>
<td class="colLast">
<div class="block">YCbCr colorspace.</div>
<div class="block">YCbCr colorspace</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CS_YCCK">CS_YCCK</a></span></code></th>
<td class="colLast">
<div class="block">YCCK colorspace.</div>
<div class="block">YCCK colorspace</div>
</td>
</tr>
<tr class="rowColor">
@@ -389,7 +389,7 @@ extends java.lang.Object</pre>
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PARAM_OPTIMIZE">PARAM_OPTIMIZE</a></span></code></th>
<td class="colLast">
<div class="block">Optimized baseline entropy coding [lossy compression only]</div>
<div class="block">Huffman table optimization [lossy compression, lossless transformation]</div>
</td>
</tr>
<tr class="altColor">
@@ -403,7 +403,7 @@ extends java.lang.Object</pre>
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PARAM_PROGRESSIVE">PARAM_PROGRESSIVE</a></span></code></th>
<td class="colLast">
<div class="block">Progressive entropy coding</div>
<div class="block">Progressive JPEG</div>
</td>
</tr>
<tr class="altColor">
@@ -469,140 +469,140 @@ extends java.lang.Object</pre>
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PF_ABGR">PF_ABGR</a></span></code></th>
<td class="colLast">
<div class="block">ABGR pixel format.</div>
<div class="block">ABGR pixel format</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PF_ARGB">PF_ARGB</a></span></code></th>
<td class="colLast">
<div class="block">ARGB pixel format.</div>
<div class="block">ARGB pixel format</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PF_BGR">PF_BGR</a></span></code></th>
<td class="colLast">
<div class="block">BGR pixel format.</div>
<div class="block">BGR pixel format</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PF_BGRA">PF_BGRA</a></span></code></th>
<td class="colLast">
<div class="block">BGRA pixel format.</div>
<div class="block">BGRA pixel format</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PF_BGRX">PF_BGRX</a></span></code></th>
<td class="colLast">
<div class="block">BGRX pixel format.</div>
<div class="block">BGRX pixel format</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PF_CMYK">PF_CMYK</a></span></code></th>
<td class="colLast">
<div class="block">CMYK pixel format.</div>
<div class="block">CMYK pixel format</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PF_GRAY">PF_GRAY</a></span></code></th>
<td class="colLast">
<div class="block">Grayscale pixel format.</div>
<div class="block">Grayscale pixel format</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PF_RGB">PF_RGB</a></span></code></th>
<td class="colLast">
<div class="block">RGB pixel format.</div>
<div class="block">RGB pixel format</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PF_RGBA">PF_RGBA</a></span></code></th>
<td class="colLast">
<div class="block">RGBA pixel format.</div>
<div class="block">RGBA pixel format</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PF_RGBX">PF_RGBX</a></span></code></th>
<td class="colLast">
<div class="block">RGBX pixel format.</div>
<div class="block">RGBX pixel format</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PF_XBGR">PF_XBGR</a></span></code></th>
<td class="colLast">
<div class="block">XBGR pixel format.</div>
<div class="block">XBGR pixel format</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PF_XRGB">PF_XRGB</a></span></code></th>
<td class="colLast">
<div class="block">XRGB pixel format.</div>
<div class="block">XRGB pixel format</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SAMP_411">SAMP_411</a></span></code></th>
<td class="colLast">
<div class="block">4:1:1 chrominance subsampling.</div>
<div class="block">4:1:1 chrominance subsampling</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SAMP_420">SAMP_420</a></span></code></th>
<td class="colLast">
<div class="block">4:2:0 chrominance subsampling.</div>
<div class="block">4:2:0 chrominance subsampling</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SAMP_422">SAMP_422</a></span></code></th>
<td class="colLast">
<div class="block">4:2:2 chrominance subsampling.</div>
<div class="block">4:2:2 chrominance subsampling</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SAMP_440">SAMP_440</a></span></code></th>
<td class="colLast">
<div class="block">4:4:0 chrominance subsampling.</div>
<div class="block">4:4:0 chrominance subsampling</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SAMP_441">SAMP_441</a></span></code></th>
<td class="colLast">
<div class="block">4:4:1 chrominance subsampling.</div>
<div class="block">4:4:1 chrominance subsampling</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SAMP_444">SAMP_444</a></span></code></th>
<td class="colLast">
<div class="block">4:4:4 chrominance subsampling (no chrominance subsampling).</div>
<div class="block">4:4:4 chrominance subsampling (no chrominance subsampling)</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SAMP_GRAY">SAMP_GRAY</a></span></code></th>
<td class="colLast">
<div class="block">Grayscale.</div>
<div class="block">Grayscale</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SAMP_UNKNOWN">SAMP_UNKNOWN</a></span></code></th>
<td class="colLast">
<div class="block">Unknown subsampling.</div>
<div class="block">Unknown subsampling</div>
</td>
</tr>
<tr class="altColor">
@@ -798,9 +798,10 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>SAMP_444</h4>
<pre>public static final&nbsp;int SAMP_444</pre>
<div class="block">4:4:4 chrominance subsampling (no chrominance subsampling). The JPEG
or YUV image will contain one chrominance component for every pixel in the
source image.</div>
<div class="block">4:4:4 chrominance subsampling (no chrominance subsampling)
<p>The JPEG or YUV image will contain one chrominance component for every
pixel in the source image.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.SAMP_444">Constant Field Values</a></dd>
@@ -814,8 +815,10 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>SAMP_422</h4>
<pre>public static final&nbsp;int SAMP_422</pre>
<div class="block">4:2:2 chrominance subsampling. The JPEG or YUV image will contain one
chrominance component for every 2x1 block of pixels in the source image.</div>
<div class="block">4:2:2 chrominance subsampling
<p>The JPEG or YUV image will contain one chrominance component for every
2x1 block of pixels in the source image.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.SAMP_422">Constant Field Values</a></dd>
@@ -829,8 +832,10 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>SAMP_420</h4>
<pre>public static final&nbsp;int SAMP_420</pre>
<div class="block">4:2:0 chrominance subsampling. The JPEG or YUV image will contain one
chrominance component for every 2x2 block of pixels in the source image.</div>
<div class="block">4:2:0 chrominance subsampling
<p>The JPEG or YUV image will contain one chrominance component for every
2x2 block of pixels in the source image.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.SAMP_420">Constant Field Values</a></dd>
@@ -844,7 +849,9 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>SAMP_GRAY</h4>
<pre>public static final&nbsp;int SAMP_GRAY</pre>
<div class="block">Grayscale. The JPEG or YUV image will contain no chrominance components.</div>
<div class="block">Grayscale
<p>The JPEG or YUV image will contain no chrominance components.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.SAMP_GRAY">Constant Field Values</a></dd>
@@ -858,9 +865,12 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>SAMP_440</h4>
<pre>public static final&nbsp;int SAMP_440</pre>
<div class="block">4:4:0 chrominance subsampling. The JPEG or YUV image will contain one
chrominance component for every 1x2 block of pixels in the source image.
Note that 4:4:0 subsampling is not fully accelerated in libjpeg-turbo.</div>
<div class="block">4:4:0 chrominance subsampling
<p>The JPEG or YUV image will contain one chrominance component for every
1x2 block of pixels in the source image.
<p>NOTE: 4:4:0 subsampling is not fully accelerated in libjpeg-turbo.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.SAMP_440">Constant Field Values</a></dd>
@@ -874,14 +884,16 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>SAMP_411</h4>
<pre>public static final&nbsp;int SAMP_411</pre>
<div class="block">4:1:1 chrominance subsampling. The JPEG or YUV image will contain one
chrominance component for every 4x1 block of pixels in the source image.
JPEG images compressed with 4:1:1 subsampling will be almost exactly the
same size as those compressed with 4:2:0 subsampling, and in the
aggregate, both subsampling methods produce approximately the same
perceptual quality. However, 4:1:1 is better able to reproduce sharp
horizontal features. Note that 4:1:1 subsampling is not fully accelerated
in libjpeg-turbo.</div>
<div class="block">4:1:1 chrominance subsampling
<p>The JPEG or YUV image will contain one chrominance component for every
4x1 block of pixels in the source image. All else being equal, a JPEG
image with 4:1:1 subsampling is almost exactly the same size as a JPEG
image with 4:2:0 subsampling, and in the aggregate, both subsampling
methods produce approximately the same perceptual quality. However, 4:1:1
is better able to reproduce sharp horizontal features.
<p>NOTE: 4:1:1 subsampling is not fully accelerated in libjpeg-turbo.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.SAMP_411">Constant Field Values</a></dd>
@@ -895,14 +907,16 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>SAMP_441</h4>
<pre>public static final&nbsp;int SAMP_441</pre>
<div class="block">4:4:1 chrominance subsampling. The JPEG or YUV image will contain one
chrominance component for every 1x4 block of pixels in the source image.
JPEG images compressed with 4:4:1 subsampling will be almost exactly the
same size as those compressed with 4:2:0 subsampling, and in the
aggregate, both subsampling methods produce approximately the same
perceptual quality. However, 4:4:1 is better able to reproduce sharp
vertical features. Note that 4:4:1 subsampling is not fully accelerated
in libjpeg-turbo.</div>
<div class="block">4:4:1 chrominance subsampling
<p>The JPEG or YUV image will contain one chrominance component for every
1x4 block of pixels in the source image. All else being equal, a JPEG
image with 4:4:1 subsampling is almost exactly the same size as a JPEG
image with 4:2:0 subsampling, and in the aggregate, both subsampling
methods produce approximately the same perceptual quality. However, 4:4:1
is better able to reproduce sharp vertical features.
<p>NOTE: 4:4:1 subsampling is not fully accelerated in libjpeg-turbo.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.SAMP_441">Constant Field Values</a></dd>
@@ -916,9 +930,10 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>SAMP_UNKNOWN</h4>
<pre>public static final&nbsp;int SAMP_UNKNOWN</pre>
<div class="block">Unknown subsampling. The JPEG image uses an unusual type of chrominance
subsampling. Such images can be decompressed into packed-pixel images,
but they cannot be
<div class="block">Unknown subsampling
<p>The JPEG image uses an unusual type of chrominance subsampling. Such
images can be decompressed into packed-pixel images, but they cannot be
<ul>
<li> decompressed into planar YUV images,
<li> losslessly transformed if <a href="TJTransform.html#OPT_CROP"><code>TJTransform.OPT_CROP</code></a> is specified,
@@ -952,9 +967,11 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>PF_RGB</h4>
<pre>public static final&nbsp;int PF_RGB</pre>
<div class="block">RGB pixel format. The red, green, and blue components in the image are
stored in 3-sample pixels in the order R, G, B from lowest to highest
memory address within each pixel.</div>
<div class="block">RGB pixel format
<p>The red, green, and blue components in the image are stored in 3-sample
pixels in the order R, G, B from lowest to highest memory address within
each pixel.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.PF_RGB">Constant Field Values</a></dd>
@@ -968,9 +985,11 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>PF_BGR</h4>
<pre>public static final&nbsp;int PF_BGR</pre>
<div class="block">BGR pixel format. The red, green, and blue components in the image are
stored in 3-sample pixels in the order B, G, R from lowest to highest
memory address within each pixel.</div>
<div class="block">BGR pixel format
<p>The red, green, and blue components in the image are stored in 3-sample
pixels in the order B, G, R from lowest to highest memory address within
each pixel.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.PF_BGR">Constant Field Values</a></dd>
@@ -984,10 +1003,12 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>PF_RGBX</h4>
<pre>public static final&nbsp;int PF_RGBX</pre>
<div class="block">RGBX pixel format. The red, green, and blue components in the image are
stored in 4-sample pixels in the order R, G, B from lowest to highest
memory address within each pixel. The X component is ignored when
compressing and undefined when decompressing.</div>
<div class="block">RGBX pixel format
<p>The red, green, and blue components in the image are stored in 4-sample
pixels in the order R, G, B from lowest to highest memory address within
each pixel. The X component is ignored when compressing/encoding and
undefined when decompressing/decoding.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.PF_RGBX">Constant Field Values</a></dd>
@@ -1001,10 +1022,12 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>PF_BGRX</h4>
<pre>public static final&nbsp;int PF_BGRX</pre>
<div class="block">BGRX pixel format. The red, green, and blue components in the image are
stored in 4-sample pixels in the order B, G, R from lowest to highest
memory address within each pixel. The X component is ignored when
compressing and undefined when decompressing.</div>
<div class="block">BGRX pixel format
<p>The red, green, and blue components in the image are stored in 4-sample
pixels in the order B, G, R from lowest to highest memory address within
each pixel. The X component is ignored when compressing/encoding and
undefined when decompressing/decoding.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.PF_BGRX">Constant Field Values</a></dd>
@@ -1018,10 +1041,12 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>PF_XBGR</h4>
<pre>public static final&nbsp;int PF_XBGR</pre>
<div class="block">XBGR pixel format. The red, green, and blue components in the image are
stored in 4-sample pixels in the order R, G, B from highest to lowest
memory address within each pixel. The X component is ignored when
compressing and undefined when decompressing.</div>
<div class="block">XBGR pixel format
<p>The red, green, and blue components in the image are stored in 4-sample
pixels in the order R, G, B from highest to lowest memory address within
each pixel. The X component is ignored when compressing/encoding and
undefined when decompressing/decoding.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.PF_XBGR">Constant Field Values</a></dd>
@@ -1035,10 +1060,12 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>PF_XRGB</h4>
<pre>public static final&nbsp;int PF_XRGB</pre>
<div class="block">XRGB pixel format. The red, green, and blue components in the image are
stored in 4-sample pixels in the order B, G, R from highest to lowest
memory address within each pixel. The X component is ignored when
compressing and undefined when decompressing.</div>
<div class="block">XRGB pixel format
<p>The red, green, and blue components in the image are stored in 4-sample
pixels in the order B, G, R from highest to lowest memory address within
each pixel. The X component is ignored when compressing/encoding and
undefined when decompressing/decoding.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.PF_XRGB">Constant Field Values</a></dd>
@@ -1052,9 +1079,11 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>PF_GRAY</h4>
<pre>public static final&nbsp;int PF_GRAY</pre>
<div class="block">Grayscale pixel format. Each 1-sample pixel represents a luminance
(brightness) level from 0 to the maximum sample value (255 for 8-bit
samples, 4095 for 12-bit samples, and 65535 for 16-bit samples.)</div>
<div class="block">Grayscale pixel format
<p>Each 1-sample pixel represents a luminance (brightness) level from 0 to
the maximum sample value (255 for 8-bit samples, 4095 for 12-bit samples,
and 65535 for 16-bit samples.)</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.PF_GRAY">Constant Field Values</a></dd>
@@ -1068,9 +1097,11 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>PF_RGBA</h4>
<pre>public static final&nbsp;int PF_RGBA</pre>
<div class="block">RGBA pixel format. This is the same as <a href="#PF_RGBX"><code>PF_RGBX</code></a>, except that when
decompressing, the X component is guaranteed to be equal to the maximum
sample value, which can be interpreted as an opaque alpha channel.</div>
<div class="block">RGBA pixel format
<p>This is the same as <a href="#PF_RGBX"><code>PF_RGBX</code></a>, except that when
decompressing/decoding, the X component is guaranteed to be equal to the
maximum sample value, which can be interpreted as an opaque alpha channel.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.PF_RGBA">Constant Field Values</a></dd>
@@ -1084,9 +1115,11 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>PF_BGRA</h4>
<pre>public static final&nbsp;int PF_BGRA</pre>
<div class="block">BGRA pixel format. This is the same as <a href="#PF_BGRX"><code>PF_BGRX</code></a>, except that when
decompressing, the X component is guaranteed to be equal to the maximum
sample value, which can be interpreted as an opaque alpha channel.</div>
<div class="block">BGRA pixel format
<p>This is the same as <a href="#PF_BGRX"><code>PF_BGRX</code></a>, except that when
decompressing/decoding, the X component is guaranteed to be equal to the
maximum sample value, which can be interpreted as an opaque alpha channel.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.PF_BGRA">Constant Field Values</a></dd>
@@ -1100,9 +1133,11 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>PF_ABGR</h4>
<pre>public static final&nbsp;int PF_ABGR</pre>
<div class="block">ABGR pixel format. This is the same as <a href="#PF_XBGR"><code>PF_XBGR</code></a>, except that when
decompressing, the X component is guaranteed to be equal to the maximum
sample value, which can be interpreted as an opaque alpha channel.</div>
<div class="block">ABGR pixel format
<p>This is the same as <a href="#PF_XBGR"><code>PF_XBGR</code></a>, except that when
decompressing/decoding, the X component is guaranteed to be equal to the
maximum sample value, which can be interpreted as an opaque alpha channel.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.PF_ABGR">Constant Field Values</a></dd>
@@ -1116,9 +1151,11 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>PF_ARGB</h4>
<pre>public static final&nbsp;int PF_ARGB</pre>
<div class="block">ARGB pixel format. This is the same as <a href="#PF_XRGB"><code>PF_XRGB</code></a>, except that when
decompressing, the X component is guaranteed to be equal to the maximum
sample value, which can be interpreted as an opaque alpha channel.</div>
<div class="block">ARGB pixel format
<p>This is the same as <a href="#PF_XRGB"><code>PF_XRGB</code></a>, except that when
decompressing/decoding, the X component is guaranteed to be equal to the
maximum sample value, which can be interpreted as an opaque alpha channel.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.PF_ARGB">Constant Field Values</a></dd>
@@ -1132,19 +1169,21 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>PF_CMYK</h4>
<pre>public static final&nbsp;int PF_CMYK</pre>
<div class="block">CMYK pixel format. Unlike RGB, which is an additive color model used
primarily for display, CMYK (Cyan/Magenta/Yellow/Key) is a subtractive
color model used primarily for printing. In the CMYK color model, the
value of each color component typically corresponds to an amount of cyan,
magenta, yellow, or black ink that is applied to a white background. In
order to convert between CMYK and RGB, it is necessary to use a color
management system (CMS.) A CMS will attempt to map colors within the
printer's gamut to perceptually similar colors in the display's gamut and
vice versa, but the mapping is typically not 1:1 or reversible, nor can it
be defined with a simple formula. Thus, such a conversion is out of scope
for a codec library. However, the TurboJPEG API allows for compressing
packed-pixel CMYK images into YCCK JPEG images (see <a href="#CS_YCCK"><code>CS_YCCK</code></a>) and
decompressing YCCK JPEG images into packed-pixel CMYK images.</div>
<div class="block">CMYK pixel format
<p>Unlike RGB, which is an additive color model used primarily for
display, CMYK (Cyan/Magenta/Yellow/Key) is a subtractive color model used
primarily for printing. In the CMYK color model, the value of each color
component typically corresponds to an amount of cyan, magenta, yellow, or
black ink that is applied to a white background. In order to convert
between CMYK and RGB, it is necessary to use a color management system
(CMS.) A CMS will attempt to map colors within the printer's gamut to
perceptually similar colors in the display's gamut and vice versa, but the
mapping is typically not 1:1 or reversible, nor can it be defined with a
simple formula. Thus, such a conversion is out of scope for a codec
library. However, the TurboJPEG API allows for compressing packed-pixel
CMYK images into YCCK JPEG images (see <a href="#CS_YCCK"><code>CS_YCCK</code></a>) and decompressing
YCCK JPEG images into packed-pixel CMYK images.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.PF_CMYK">Constant Field Values</a></dd>
@@ -1172,12 +1211,14 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>CS_RGB</h4>
<pre>public static final&nbsp;int CS_RGB</pre>
<div class="block">RGB colorspace. When compressing the JPEG image, the R, G, and B
components in the source image are reordered into image planes, but no
colorspace conversion or subsampling is performed. RGB JPEG images can be
compressed from and decompressed to packed-pixel images with any of the
extended RGB or grayscale pixel formats, but they cannot be compressed
from or decompressed to planar YUV images.</div>
<div class="block">RGB colorspace
<p>When generating the JPEG image, the R, G, and B components in the
source image are reordered into image planes, but no colorspace conversion
or subsampling is performed. RGB JPEG images can be generated from and
decompressed to packed-pixel images with any of the extended RGB or
grayscale pixel formats, but they cannot be generated from or
decompressed to planar YUV images.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.CS_RGB">Constant Field Values</a></dd>
@@ -1191,21 +1232,22 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>CS_YCbCr</h4>
<pre>public static final&nbsp;int CS_YCbCr</pre>
<div class="block">YCbCr colorspace. YCbCr is not an absolute colorspace but rather a
mathematical transformation of RGB designed solely for storage and
transmission. YCbCr images must be converted to RGB before they can
actually be displayed. In the YCbCr colorspace, the Y (luminance)
component represents the black &amp; white portion of the original image,
and the Cb and Cr (chrominance) components represent the color portion of
the original image. Originally, the analog equivalent of this
transformation allowed the same signal to drive both black &amp; white and
color televisions, but JPEG images use YCbCr primarily because it allows
the color data to be optionally subsampled for the purposes of reducing
network or disk usage. YCbCr is the most common JPEG colorspace, and
YCbCr JPEG images can be compressed from and decompressed to packed-pixel
images with any of the extended RGB or grayscale pixel formats. YCbCr
JPEG images can also be compressed from and decompressed to planar YUV
images.</div>
<div class="block">YCbCr colorspace
<p>YCbCr is not an absolute colorspace but rather a mathematical
transformation of RGB designed solely for storage and transmission. YCbCr
images must be converted to RGB before they can be displayed. In the
YCbCr colorspace, the Y (luminance) component represents the black &amp;
white portion of the original image, and the Cb and Cr (chrominance)
components represent the color portion of the original image.
Historically, the analog equivalent of this transformation allowed the
same signal to be displayed to both black &amp; white and color
televisions, but JPEG images use YCbCr primarily because it allows the
color data to be optionally subsampled in order to reduce network and disk
usage. YCbCr is the most common JPEG colorspace, and YCbCr JPEG images
can be generated from and decompressed to packed-pixel images with any of
the extended RGB or grayscale pixel formats. YCbCr JPEG images can also
be generated from and decompressed to planar YUV images.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.CS_YCbCr">Constant Field Values</a></dd>
@@ -1219,12 +1261,13 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>CS_GRAY</h4>
<pre>public static final&nbsp;int CS_GRAY</pre>
<div class="block">Grayscale colorspace. The JPEG image retains only the luminance data (Y
component), and any color data from the source image is discarded.
Grayscale JPEG images can be compressed from and decompressed to
packed-pixel images with any of the extended RGB or grayscale pixel
formats, or they can be compressed from and decompressed to planar YUV
images.</div>
<div class="block">Grayscale colorspace
<p>The JPEG image retains only the luminance data (Y component), and any
color data from the source image is discarded. Grayscale JPEG images can
be generated from and decompressed to packed-pixel images with any of the
extended RGB or grayscale pixel formats, or they can be generated from and
decompressed to planar YUV images.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.CS_GRAY">Constant Field Values</a></dd>
@@ -1238,11 +1281,12 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>CS_CMYK</h4>
<pre>public static final&nbsp;int CS_CMYK</pre>
<div class="block">CMYK colorspace. When compressing the JPEG image, the C, M, Y, and K
components in the source image are reordered into image planes, but no
colorspace conversion or subsampling is performed. CMYK JPEG images can
only be compressed from and decompressed to packed-pixel images with the
CMYK pixel format.</div>
<div class="block">CMYK colorspace
<p>When generating the JPEG image, the C, M, Y, and K components in the
source image are reordered into image planes, but no colorspace conversion
or subsampling is performed. CMYK JPEG images can only be generated from
and decompressed to packed-pixel images with the CMYK pixel format.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.CS_CMYK">Constant Field Values</a></dd>
@@ -1256,12 +1300,14 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>CS_YCCK</h4>
<pre>public static final&nbsp;int CS_YCCK</pre>
<div class="block">YCCK colorspace. YCCK (AKA "YCbCrK") is not an absolute colorspace but
rather a mathematical transformation of CMYK designed solely for storage
and transmission. It is to CMYK as YCbCr is to RGB. CMYK pixels can be
<div class="block">YCCK colorspace
<p>YCCK (AKA "YCbCrK") is not an absolute colorspace but rather a
mathematical transformation of CMYK designed solely for storage and
transmission. It is to CMYK as YCbCr is to RGB. CMYK pixels can be
reversibly transformed into YCCK, and as with YCbCr, the chrominance
components in the YCCK pixels can be subsampled without incurring major
perceptual loss. YCCK JPEG images can only be compressed from and
perceptual loss. YCCK JPEG images can only be generated from and
decompressed to packed-pixel images with the CMYK pixel format.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
@@ -1350,7 +1396,7 @@ extends java.lang.Object</pre>
from CMYK to YCCK (see <a href="#CS_YCCK"><code>CS_YCCK</code></a>) as part of the JPEG compression
process, some of the Cb and Cr (chrominance) components can be discarded
or averaged together to produce a smaller image with little perceptible
loss of image clarity. (The human eye is more sensitive to small changes
loss of image quality. (The human eye is more sensitive to small changes
in brightness than to small changes in color.) This is called
"chrominance subsampling".
@@ -1453,7 +1499,7 @@ extends java.lang.Object</pre>
<p><b>Value</b>
<ul>
<li> <code>0</code> <i>[default]</i> Use smooth upsampling when
decompressing a JPEG image that was compressed using chrominance
decompressing a JPEG image that was generated using chrominance
subsampling. This creates a smooth transition between neighboring
chrominance components in order to reduce upsampling artifacts in the
decompressed image.
@@ -1495,9 +1541,8 @@ extends java.lang.Object</pre>
<li> The difference in accuracy between the "fast" and "accurate"
algorithms is the most pronounced at JPEG quality levels above 90 and
tends to be more pronounced with decompression than with compression.
<li> The "fast" algorithm degrades and is not fully accelerated for JPEG
quality levels above 97, so it will be slower than the "accurate"
algorithm.
<li> For JPEG quality levels above 97, the "fast" algorithm degrades and
is not fully accelerated, so it is slower than the "accurate" algorithm.
</ul></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
@@ -1512,7 +1557,7 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>PARAM_OPTIMIZE</h4>
<pre>public static final&nbsp;int PARAM_OPTIMIZE</pre>
<div class="block">Optimized baseline entropy coding [lossy compression only]
<div class="block">Huffman table optimization [lossy compression, lossless transformation]
<p><b>Value</b>
<ul>
@@ -1523,9 +1568,8 @@ extends java.lang.Object</pre>
<a href="TJTransform.html#OPT_OPTIMIZE"><code>TJTransform.OPT_OPTIMIZE</code></a>.
</ul>
<p>Optimized baseline entropy coding will improve compression slightly
(generally 5% or less), but it will reduce compression performance
considerably.</div>
<p>Huffman table optimization improves compression slightly (generally 5%
or less), but it reduces compression performance considerably.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.PARAM_OPTIMIZE">Constant Field Values</a></dd>
@@ -1539,24 +1583,34 @@ extends java.lang.Object</pre>
<li class="blockList">
<h4>PARAM_PROGRESSIVE</h4>
<pre>public static final&nbsp;int PARAM_PROGRESSIVE</pre>
<div class="block">Progressive entropy coding
<div class="block">Progressive JPEG
<p>In a progressive JPEG image, the DCT coefficients are split across
multiple "scans" of increasing quality. Thus, a low-quality scan
containing the lowest-frequency DCT coefficients can be transmitted first
and refined with subsequent higher-quality scans containing
higher-frequency DCT coefficients. When using Huffman entropy coding, the
progressive JPEG format also provides an "end-of-bands (EOB) run" feature
that allows large groups of zeroes, potentially spanning multiple MCU
blocks, to be represented using only a few bytes.
<p><b>Value</b>
<ul>
<li> <code>0</code> <i>[default for compression, lossless
transformation]</i> The lossy JPEG image uses (decompression) or will use
(compression, lossless transformation) baseline entropy coding.
<li> <code>1</code> The lossy JPEG image uses (decompression) or will use
(compression, lossless transformation) progressive entropy coding. For
lossless transformation, this can also be specified using
transformation]</i> The lossy JPEG image is (decompression) or will be
(compression, lossless transformation) single-scan.
<li> <code>1</code> The lossy JPEG image is (decompression) or will be
(compression, lossless transformation) progressive. For lossless
transformation, this can also be specified using
<a href="TJTransform.html#OPT_PROGRESSIVE"><code>TJTransform.OPT_PROGRESSIVE</code></a>.
</ul>
<p>Progressive entropy coding will generally improve compression relative
to baseline entropy coding, but it will reduce compression and
decompression performance considerably. Can be combined with
<a href="#PARAM_ARITHMETIC"><code>PARAM_ARITHMETIC</code></a>. Implies <a href="#PARAM_OPTIMIZE"><code>PARAM_OPTIMIZE</code></a> unless
<a href="#PARAM_ARITHMETIC"><code>PARAM_ARITHMETIC</code></a> is also set.</div>
<p>Progressive JPEG images generally have better compression ratios than
single-scan JPEG images (much better if the image has large areas of solid
color), but progressive JPEG compression and decompression is considerably
slower than single-scan JPEG compression and decompression. Can be
combined with <a href="#PARAM_ARITHMETIC"><code>PARAM_ARITHMETIC</code></a>. Implies <a href="#PARAM_OPTIMIZE"><code>PARAM_OPTIMIZE</code></a>
unless <a href="#PARAM_ARITHMETIC"><code>PARAM_ARITHMETIC</code></a> is also set.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.PARAM_PROGRESSIVE">Constant Field Values</a></dd>
@@ -1573,7 +1627,7 @@ extends java.lang.Object</pre>
<div class="block">Progressive JPEG scan limit for lossy JPEG images [decompression, lossless
transformation]
<p>Setting this parameter will cause the decompression and transform
<p>Setting this parameter causes the decompression and transform
operations to throw an error if the number of scans in a progressive JPEG
image exceeds the specified limit. The primary purpose of this is to
allow security-critical applications to guard against an exploit of the
@@ -1613,9 +1667,9 @@ extends java.lang.Object</pre>
<a href="TJTransform.html#OPT_ARITHMETIC"><code>TJTransform.OPT_ARITHMETIC</code></a>.
</ul>
<p>Arithmetic entropy coding will generally improve compression relative
to Huffman entropy coding, but it will reduce compression and
decompression performance considerably. Can be combined with
<p>Arithmetic entropy coding generally improves compression relative to
Huffman entropy coding, but it reduces compression and decompression
performance considerably. Can be combined with
<a href="#PARAM_PROGRESSIVE"><code>PARAM_PROGRESSIVE</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
@@ -1640,9 +1694,9 @@ extends java.lang.Object</pre>
(compression) lossless/predictive.
</ul>
<p>In most cases, compressing and decompressing lossless JPEG images is
considerably slower than compressing and decompressing lossy JPEG images,
and lossless JPEG images are much larger than lossy JPEG images. Thus,
<p>In most cases, lossless JPEG compression and decompression is
considerably slower than lossy JPEG compression and decompression, and
lossless JPEG images are much larger than lossy JPEG images. Thus,
lossless JPEG images are typically used only for applications that require
mathematically lossless compression. Also note that the following
features are not available with lossless JPEG images:
@@ -1654,7 +1708,7 @@ extends java.lang.Object</pre>
<a href="#SAMP_444"><code>SAMP_444</code></a>)
<li> JPEG quality selection
<li> DCT/IDCT algorithm selection
<li> Progressive entropy coding
<li> Progressive JPEG
<li> Arithmetic entropy coding
<li> Compression from/decompression to planar YUV images
<li> Decompression scaling
@@ -1895,9 +1949,8 @@ extends java.lang.Object</pre>
<ul>
<li> the maximum amount of memory (in megabytes) that will be allocated
for intermediate buffers, which are used with progressive JPEG compression
and decompression, optimized baseline entropy coding, lossless JPEG
compression, and lossless transformation <i>[default: <code>0</code> (no
limit)]</i>
and decompression, Huffman table optimization, lossless JPEG compression,
and lossless transformation <i>[default: <code>0</code> (no limit)]</i>
</ul></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
@@ -1914,7 +1967,7 @@ extends java.lang.Object</pre>
<pre>public static final&nbsp;int PARAM_MAXPIXELS</pre>
<div class="block">Image size limit [decompression, lossless transformation]
<p>Setting this parameter will cause the decompression and transform
<p>Setting this parameter causes the decompression and transform
operations to throw an error if the number of pixels in the JPEG source
image exceeds the specified limit. This allows security-critical
applications to guard against excessive memory consumption.
@@ -2072,8 +2125,8 @@ public static final&nbsp;int FLAG_LIMITSCANS</pre>
<pre>public static final&nbsp;int ERR_WARNING</pre>
<div class="block">The error was non-fatal and recoverable, but the destination image may
still be corrupt.
<p>
NOTE: due to the design of the TurboJPEG Java API, only certain methods
<p>NOTE: Due to the design of the TurboJPEG Java API, only certain methods
(specifically, <a href="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><code>TJDecompressor.decompress*()</code></a> methods
with a void return type) will complete and leave the destination image in
a fully recoverable state after a non-fatal error occurs.</div>
@@ -2192,7 +2245,7 @@ public static final&nbsp;int FLAG_LIMITSCANS</pre>
<div class="block">For the given pixel format, returns the number of samples that the red
component is offset from the start of the pixel. For instance, if an
8-bit-per-sample pixel of format <code>TJ.PF_BGRX</code> is stored in
<code>char pixel[]</code>, then the red component will be
<code>char pixel[]</code>, then the red component is
<code>pixel[TJ.getRedOffset(TJ.PF_BGRX)]</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -2213,7 +2266,7 @@ public static final&nbsp;int FLAG_LIMITSCANS</pre>
<div class="block">For the given pixel format, returns the number of samples that the green
component is offset from the start of the pixel. For instance, if an
8-bit-per-sample pixel of format <code>TJ.PF_BGRX</code> is stored in
<code>char pixel[]</code>, then the green component will be
<code>char pixel[]</code>, then the green component is
<code>pixel[TJ.getGreenOffset(TJ.PF_BGRX)]</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -2234,7 +2287,7 @@ public static final&nbsp;int FLAG_LIMITSCANS</pre>
<div class="block">For the given pixel format, returns the number of samples that the blue
component is offset from the start of the pixel. For instance, if an
8-bit-per-sample pixel of format <code>TJ.PF_BGRX</code> is stored in
<code>char pixel[]</code>, then the blue component will be
<code>char pixel[]</code>, then the blue component is
<code>pixel[TJ.getBlueOffset(TJ.PF_BGRX)]</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -2255,7 +2308,7 @@ public static final&nbsp;int FLAG_LIMITSCANS</pre>
<div class="block">For the given pixel format, returns the number of samples that the alpha
component is offset from the start of the pixel. For instance, if an
8-bit-per-sample pixel of format <code>TJ.PF_BGRA</code> is stored in
<code>char pixel[]</code>, then the alpha component will be
<code>char pixel[]</code>, then the alpha component is
<code>pixel[TJ.getAlphaOffset(TJ.PF_BGRA)]</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -2340,10 +2393,10 @@ public static final&nbsp;int FLAG_LIMITSCANS</pre>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>componentID</code> - ID number of the image plane (0 = Y, 1 = U/Cb,
2 = V/Cr)</dd>
<dd><code>width</code> - width (in pixels) of the YUV image. NOTE: this is the width
<dd><code>width</code> - width (in pixels) of the YUV image. NOTE: This is the width
of the whole image, not the plane width.</dd>
<dd><code>stride</code> - bytes per row in the image plane.</dd>
<dd><code>height</code> - height (in pixels) of the YUV image. NOTE: this is the
<dd><code>height</code> - height (in pixels) of the YUV image. NOTE: This is the
height of the whole image, not the plane height.</dd>
<dd><code>subsamp</code> - the level of chrominance subsampling used in the YUV
image (one of <a href="#SAMP_444"><code>TJ.SAMP_*</code></a>)</dd>

View File

@@ -195,7 +195,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>coeffBuffer</code> - a buffer containing transformed DCT coefficients.
(NOTE: this buffer is not guaranteed to be valid once the callback
(NOTE: This buffer is not guaranteed to be valid once the callback
returns, so applications wishing to hand off the DCT coefficients to
another method should make a copy of them within the body of the
callback.)</dd>

View File

@@ -980,9 +980,9 @@ public&nbsp;int&nbsp;getScaledHeight&#8203;(int&nbsp;desiredWidth,
source image associated with this decompressor instance and output an
8-bit-per-sample packed-pixel grayscale, RGB, or CMYK image to the given
destination buffer.
<p>
NOTE: The destination image is fully recoverable if this method throws a
non-fatal <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg"><code>TJException</code></a> (unless <a href="TJ.html#PARAM_STOPONWARNING"><code>TJ.PARAM_STOPONWARNING</code></a> is
<p>NOTE: The destination image is fully recoverable if this method throws
a non-fatal <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg"><code>TJException</code></a> (unless <a href="TJ.html#PARAM_STOPONWARNING"><code>TJ.PARAM_STOPONWARNING</code></a> is
set.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1011,7 +1011,7 @@ public&nbsp;int&nbsp;getScaledHeight&#8203;(int&nbsp;desiredWidth,
<a href="TJ.html#getPixelSize(int)"><code>TJ.getPixelSize</code></a>(pixelFormat)</code>.) However,
you can also use this parameter to specify the row alignment/padding of
the destination image, to skip rows, or to decompress/decode into a
specific region of a larger image. NOTE: if the source image is a lossy
specific region of a larger image. NOTE: If the source image is a lossy
JPEG image, then <code>destinationWidth</code> is either the scaled JPEG
width (see <a href="#setScalingFactor(org.libjpegturbo.turbojpeg.TJScalingFactor)"><code>setScalingFactor()</code></a>,
<a href="TJScalingFactor.html#getScaled(int)"><code>TJScalingFactor.getScaled()</code></a>, and
@@ -1118,9 +1118,9 @@ public&nbsp;byte[]&nbsp;decompress&#8203;(int&nbsp;desiredWidth,
<div class="block">Decompress the 12-bit-per-sample JPEG source image associated with this
decompressor instance and output a 12-bit-per-sample packed-pixel
grayscale, RGB, or CMYK image to the given destination buffer.
<p>
NOTE: The destination image is fully recoverable if this method throws a
non-fatal <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg"><code>TJException</code></a> (unless <a href="TJ.html#PARAM_STOPONWARNING"><code>TJ.PARAM_STOPONWARNING</code></a> is
<p>NOTE: The destination image is fully recoverable if this method throws
a non-fatal <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg"><code>TJException</code></a> (unless <a href="TJ.html#PARAM_STOPONWARNING"><code>TJ.PARAM_STOPONWARNING</code></a> is
set.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1150,7 +1150,7 @@ public&nbsp;byte[]&nbsp;decompress&#8203;(int&nbsp;desiredWidth,
<a href="TJ.html#getPixelSize(int)"><code>TJ.getPixelSize</code></a>(pixelFormat)</code>.) However,
you can also use this parameter to specify the row alignment/padding of
the destination image, to skip rows, or to decompress into a specific
region of a larger image. NOTE: if the source image is a lossy JPEG
region of a larger image. NOTE: If the source image is a lossy JPEG
image, then <code>destinationWidth</code> is either the scaled JPEG width
(see <a href="#setScalingFactor(org.libjpegturbo.turbojpeg.TJScalingFactor)"><code>setScalingFactor()</code></a>,
<a href="TJScalingFactor.html#getScaled(int)"><code>TJScalingFactor.getScaled()</code></a>, and
@@ -1207,9 +1207,9 @@ public&nbsp;byte[]&nbsp;decompress&#8203;(int&nbsp;desiredWidth,
with this decompressor instance and output a 16-bit-per-sample
packed-pixel grayscale, RGB, or CMYK image to the given destination
buffer.
<p>
NOTE: The destination image is fully recoverable if this method throws a
non-fatal <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg"><code>TJException</code></a> (unless <a href="TJ.html#PARAM_STOPONWARNING"><code>TJ.PARAM_STOPONWARNING</code></a> is
<p>NOTE: The destination image is fully recoverable if this method throws
a non-fatal <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg"><code>TJException</code></a> (unless <a href="TJ.html#PARAM_STOPONWARNING"><code>TJ.PARAM_STOPONWARNING</code></a> is
set.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1279,9 +1279,9 @@ public&nbsp;byte[]&nbsp;decompress&#8203;(int&nbsp;desiredWidth,
decompression but leaves out the color conversion step, so a planar YUV
image is generated instead of a packed-pixel image. This method cannot be
used to decompress JPEG source images with the CMYK or YCCK colorspace.
<p>
NOTE: The planar YUV destination image is fully recoverable if this method
throws a non-fatal <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg"><code>TJException</code></a> (unless
<p>NOTE: The planar YUV destination image is fully recoverable if this
method throws a non-fatal <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg"><code>TJException</code></a> (unless
<a href="TJ.html#PARAM_STOPONWARNING"><code>TJ.PARAM_STOPONWARNING</code></a> is set.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1432,9 +1432,9 @@ public&nbsp;<a href="YUVImage.html" title="class in org.libjpegturbo.turbojpeg">
source image associated with this decompressor instance and output an
8-bit-per-sample packed-pixel grayscale, RGB, or CMYK image to the given
destination buffer.
<p>
NOTE: The destination image is fully recoverable if this method throws a
non-fatal <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg"><code>TJException</code></a> (unless <a href="TJ.html#PARAM_STOPONWARNING"><code>TJ.PARAM_STOPONWARNING</code></a>
<p>NOTE: The destination image is fully recoverable if this method throws
a non-fatal <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg"><code>TJException</code></a> (unless <a href="TJ.html#PARAM_STOPONWARNING"><code>TJ.PARAM_STOPONWARNING</code></a>
is set.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1460,7 +1460,7 @@ public&nbsp;<a href="YUVImage.html" title="class in org.libjpegturbo.turbojpeg">
should be set to <code>destinationWidth</code>. (Setting this parameter
to 0 is the equivalent of setting it to <code>destinationWidth</code>.)
However, you can also use this parameter to skip rows or to
decompress/decode into a specific region of a larger image. NOTE: if the
decompress/decode into a specific region of a larger image. NOTE: If the
source image is a lossy JPEG image, then <code>destinationWidth</code> is
either the scaled JPEG width (see <a href="#setScalingFactor(org.libjpegturbo.turbojpeg.TJScalingFactor)"><code>setScalingFactor()</code></a>, <a href="TJScalingFactor.html#getScaled(int)"><code>TJScalingFactor.getScaled()</code></a>, and <a href="#getWidth()"><code>getWidth()</code></a>) or the width of the
cropping region (see <a href="#setCroppingRegion(java.awt.Rectangle)"><code>setCroppingRegion()</code></a>.) If
@@ -1511,9 +1511,9 @@ public&nbsp;void&nbsp;decompress&#8203;(int[]&nbsp;dstBuf,
source image associated with this decompressor instance and output an
8-bit-per-sample packed-pixel decompressed/decoded image to the given
<code>BufferedImage</code> instance.
<p>
NOTE: The destination image is fully recoverable if this method throws a
non-fatal <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg"><code>TJException</code></a> (unless <a href="TJ.html#PARAM_STOPONWARNING"><code>TJ.PARAM_STOPONWARNING</code></a>
<p>NOTE: The destination image is fully recoverable if this method throws
a non-fatal <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg"><code>TJException</code></a> (unless <a href="TJ.html#PARAM_STOPONWARNING"><code>TJ.PARAM_STOPONWARNING</code></a>
is set.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>

View File

@@ -269,54 +269,51 @@ extends java.awt.Rectangle</pre>
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#OPT_ARITHMETIC">OPT_ARITHMETIC</a></span></code></th>
<td class="colLast">
<div class="block">This option will enable arithmetic entropy coding in the JPEG image
generated by this particular transform.</div>
<div class="block">Enable arithmetic entropy coding in the destination image.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#OPT_COPYNONE">OPT_COPYNONE</a></span></code></th>
<td class="colLast">
<div class="block">This option will prevent <a href="TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>TJTransformer.transform()</code></a> from copying any extra markers (including EXIF
and ICC profile data) from the source image to the destination image.</div>
<div class="block">Do not copy any extra markers (including EXIF and ICC profile data) from
the source image to the destination image.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#OPT_CROP">OPT_CROP</a></span></code></th>
<td class="colLast">
<div class="block">This option will enable lossless cropping.</div>
<div class="block">Enable lossless cropping.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#OPT_GRAY">OPT_GRAY</a></span></code></th>
<td class="colLast">
<div class="block">This option will discard the color data in the source image and produce a
grayscale destination image.</div>
<div class="block">Discard the color data in the source image, and generate a grayscale
destination image.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#OPT_NOOUTPUT">OPT_NOOUTPUT</a></span></code></th>
<td class="colLast">
<div class="block">This option will prevent <a href="TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>TJTransformer.transform()</code></a> from outputting a JPEG image for this
particular transform.</div>
<div class="block">Do not generate a destination image.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#OPT_OPTIMIZE">OPT_OPTIMIZE</a></span></code></th>
<td class="colLast">
<div class="block">This option will enable optimized baseline entropy coding in the JPEG
image generated by this particular transform.</div>
<div class="block">Enable Huffman table optimization for the destination image.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#OPT_PERFECT">OPT_PERFECT</a></span></code></th>
<td class="colLast">
<div class="block">This option will cause <a href="TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>TJTransformer.transform()</code></a> to throw an exception if the transform is not
<div class="block">This option causes <a href="TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>TJTransformer.transform()</code></a> to throw an exception if the transform is not
perfect.</div>
</td>
</tr>
@@ -324,16 +321,15 @@ extends java.awt.Rectangle</pre>
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#OPT_PROGRESSIVE">OPT_PROGRESSIVE</a></span></code></th>
<td class="colLast">
<div class="block">This option will enable progressive entropy coding in the JPEG image
generated by this particular transform.</div>
<div class="block">Generate a progressive destination image instead of a single-scan
destination image.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#OPT_TRIM">OPT_TRIM</a></span></code></th>
<td class="colLast">
<div class="block">This option will discard any partial MCU blocks that cannot be
transformed.</div>
<div class="block">Discard any partial MCU blocks that cannot be transformed.</div>
</td>
</tr>
<tr class="altColor">
@@ -612,16 +608,16 @@ extends java.awt.Rectangle</pre>
<li class="blockList">
<h4>OPT_PERFECT</h4>
<pre>public static final&nbsp;int OPT_PERFECT</pre>
<div class="block">This option will cause <a href="TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>TJTransformer.transform()</code></a> to throw an exception if the transform is not
perfect. Lossless transforms operate on MCU blocks, whose size depends on
the level of chrominance subsampling used. If the image's width or height
is not evenly divisible by the MCU block size (see <a href="TJ.html#getMCUWidth(int)"><code>TJ.getMCUWidth()</code></a> and <a href="TJ.html#getMCUHeight(int)"><code>TJ.getMCUHeight()</code></a>), then
there will be partial MCU blocks on the right and/or bottom edges. It is
not possible to move these partial MCU blocks to the top or left of the
image, so any transform that would require that is "imperfect." If this
option is not specified, then any partial MCU blocks that cannot be
transformed will be left in place, which will create odd-looking strips on
the right or bottom edge of the image.</div>
<div class="block">This option causes <a href="TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>TJTransformer.transform()</code></a> to throw an exception if the transform is not
perfect. Lossless transforms operate on MCU blocks, the size of which
depends on the level of chrominance subsampling used. If the image's
width or height is not evenly divisible by the MCU block size (see
<a href="TJ.html#getMCUWidth(int)"><code>TJ.getMCUWidth()</code></a> and <a href="TJ.html#getMCUHeight(int)"><code>TJ.getMCUHeight()</code></a>), then there will be partial MCU blocks on the right
and/or bottom edges. It is not possible to move these partial MCU blocks
to the top or left of the image, so any transform that would require that
is "imperfect." If this option is not specified, then any partial MCU
blocks that cannot be transformed will be left in place, which will create
odd-looking strips on the right or bottom edge of the image.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OPT_PERFECT">Constant Field Values</a></dd>
@@ -635,8 +631,7 @@ extends java.awt.Rectangle</pre>
<li class="blockList">
<h4>OPT_TRIM</h4>
<pre>public static final&nbsp;int OPT_TRIM</pre>
<div class="block">This option will discard any partial MCU blocks that cannot be
transformed.</div>
<div class="block">Discard any partial MCU blocks that cannot be transformed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OPT_TRIM">Constant Field Values</a></dd>
@@ -650,7 +645,7 @@ extends java.awt.Rectangle</pre>
<li class="blockList">
<h4>OPT_CROP</h4>
<pre>public static final&nbsp;int OPT_CROP</pre>
<div class="block">This option will enable lossless cropping.</div>
<div class="block">Enable lossless cropping.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OPT_CROP">Constant Field Values</a></dd>
@@ -664,8 +659,8 @@ extends java.awt.Rectangle</pre>
<li class="blockList">
<h4>OPT_GRAY</h4>
<pre>public static final&nbsp;int OPT_GRAY</pre>
<div class="block">This option will discard the color data in the source image and produce a
grayscale destination image.</div>
<div class="block">Discard the color data in the source image, and generate a grayscale
destination image.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OPT_GRAY">Constant Field Values</a></dd>
@@ -679,10 +674,9 @@ extends java.awt.Rectangle</pre>
<li class="blockList">
<h4>OPT_NOOUTPUT</h4>
<pre>public static final&nbsp;int OPT_NOOUTPUT</pre>
<div class="block">This option will prevent <a href="TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>TJTransformer.transform()</code></a> from outputting a JPEG image for this
particular transform. This can be used in conjunction with a custom
filter to capture the transformed DCT coefficients without transcoding
them.</div>
<div class="block">Do not generate a destination image. This can be used in conjunction with
a custom filter to capture the transformed DCT coefficients without
transcoding them.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OPT_NOOUTPUT">Constant Field Values</a></dd>
@@ -696,12 +690,13 @@ extends java.awt.Rectangle</pre>
<li class="blockList">
<h4>OPT_PROGRESSIVE</h4>
<pre>public static final&nbsp;int OPT_PROGRESSIVE</pre>
<div class="block">This option will enable progressive entropy coding in the JPEG image
generated by this particular transform. Progressive entropy coding will
generally improve compression relative to baseline entropy coding (the
default), but it will reduce decompression performance considerably.
Can be combined with <a href="#OPT_ARITHMETIC"><code>OPT_ARITHMETIC</code></a>. Implies
<a href="#OPT_OPTIMIZE"><code>OPT_OPTIMIZE</code></a> unless <a href="#OPT_ARITHMETIC"><code>OPT_ARITHMETIC</code></a> is also specified.</div>
<div class="block">Generate a progressive destination image instead of a single-scan
destination image. Progressive JPEG images generally have better
compression ratios than single-scan JPEG images (much better if the image
has large areas of solid color), but progressive JPEG decompression is
considerably slower than single-scan JPEG decompression. Can be combined
with <a href="#OPT_ARITHMETIC"><code>OPT_ARITHMETIC</code></a>. Implies <a href="#OPT_OPTIMIZE"><code>OPT_OPTIMIZE</code></a> unless
<a href="#OPT_ARITHMETIC"><code>OPT_ARITHMETIC</code></a> is also specified.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OPT_PROGRESSIVE">Constant Field Values</a></dd>
@@ -715,8 +710,8 @@ extends java.awt.Rectangle</pre>
<li class="blockList">
<h4>OPT_COPYNONE</h4>
<pre>public static final&nbsp;int OPT_COPYNONE</pre>
<div class="block">This option will prevent <a href="TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>TJTransformer.transform()</code></a> from copying any extra markers (including EXIF
and ICC profile data) from the source image to the destination image.</div>
<div class="block">Do not copy any extra markers (including EXIF and ICC profile data) from
the source image to the destination image.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OPT_COPYNONE">Constant Field Values</a></dd>
@@ -730,11 +725,10 @@ extends java.awt.Rectangle</pre>
<li class="blockList">
<h4>OPT_ARITHMETIC</h4>
<pre>public static final&nbsp;int OPT_ARITHMETIC</pre>
<div class="block">This option will enable arithmetic entropy coding in the JPEG image
generated by this particular transform. Arithmetic entropy coding will
generally improve compression relative to Huffman entropy coding (the
default), but it will reduce decompression performance considerably. Can
be combined with <a href="#OPT_PROGRESSIVE"><code>OPT_PROGRESSIVE</code></a>.</div>
<div class="block">Enable arithmetic entropy coding in the destination image. Arithmetic
entropy coding generally improves compression relative to Huffman entropy
coding (the default), but it reduces decompression performance
considerably. Can be combined with <a href="#OPT_PROGRESSIVE"><code>OPT_PROGRESSIVE</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OPT_ARITHMETIC">Constant Field Values</a></dd>
@@ -748,9 +742,8 @@ extends java.awt.Rectangle</pre>
<li class="blockList">
<h4>OPT_OPTIMIZE</h4>
<pre>public static final&nbsp;int OPT_OPTIMIZE</pre>
<div class="block">This option will enable optimized baseline entropy coding in the JPEG
image generated by this particular transform. Optimized baseline entropy
coding will improve compression slightly (generally 5% or less.)</div>
<div class="block">Enable Huffman table optimization for the destination image. Huffman
table optimization improves compression slightly (generally 5% or less.)</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OPT_OPTIMIZE">Constant Field Values</a></dd>

View File

@@ -139,15 +139,15 @@ extends java.lang.Object</pre>
serves as the destination image for YUV encode and decompress-to-YUV
operations and as the source image for compress-from-YUV and YUV decode
operations.
<p>
Technically, the JPEG format uses the YCbCr colorspace (which is technically
not a colorspace but a color transform), but per the convention of the
digital video community, the TurboJPEG API uses "YUV" to refer to an image
format consisting of Y, Cb, and Cr image planes.
<p>
Each plane is simply a 2D array of bytes, each byte representing the value
of one of the components (Y, Cb, or Cr) at a particular location in the
image. The width and height of each plane are determined by the image
<p>Technically, the JPEG format uses the YCbCr colorspace (which is
technically not a colorspace but a color transform), but per the convention
of the digital video community, the TurboJPEG API uses "YUV" to refer to an
image format consisting of Y, Cb, and Cr image planes.
<p>Each plane is simply a 2D array of bytes, each byte representing the
value of one of the components (Y, Cb, or Cr) at a particular location in
the image. The width and height of each plane are determined by the image
width, height, and level of chrominance subsampling. The luminance plane
width is the image width padded to the nearest multiple of the horizontal
subsampling factor (1 in the case of 4:4:4, grayscale, 4:4:0, or 4:4:1; 2 in
@@ -160,9 +160,9 @@ extends java.lang.Object</pre>
the luminance plane width divided by the horizontal subsampling factor, and
the chrominance plane height is equal to the luminance plane height divided
by the vertical subsampling factor.
<p>
For example, if the source image is 35 x 35 pixels and 4:2:2 subsampling is
used, then the luminance plane would be 36 x 35 bytes, and each of the
<p>For example, if the source image is 35 x 35 pixels and 4:2:2 subsampling
is used, then the luminance plane would be 36 x 35 bytes, and each of the
chrominance planes would be 18 x 35 bytes. If you specify a row alignment
of 4 bytes on top of this, then the luminance plane would be 36 x 35 bytes,
and each of the chrominance planes would be 20 x 35 bytes.</div>

Binary file not shown.

Binary file not shown.