Merge branch 'main' into dev

This commit is contained in:
DRC
2023-01-23 09:55:13 -06:00
8 changed files with 48 additions and 45 deletions

View File

@@ -971,8 +971,9 @@ final class TJBench {
if ((sf.getNum() != 1 || sf.getDenom() != 1) && doTile) { if ((sf.getNum() != 1 || sf.getDenom() != 1) && doTile) {
System.out.println("Disabling tiled compression/decompression tests, because those tests do not"); System.out.println("Disabling tiled compression/decompression tests, because those tests do not");
System.out.println("work when scaled decompression is enabled."); System.out.println("work when scaled decompression is enabled.\n");
doTile = false; doTile = false;
xformOpt &= (~TJTransform.OPT_CROP);
} }
if (!decompOnly) { if (!decompOnly) {

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C)2011-2012, 2014-2015, 2017-2018, 2022 D. R. Commander. * Copyright (C)2011-2012, 2014-2015, 2017-2018, 2022-2023 D. R. Commander.
* All Rights Reserved. * All Rights Reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -136,14 +136,11 @@ class TJExample implements TJCustomFilter {
System.out.println("-display = Display output image (Output filename need not be specified in this"); System.out.println("-display = Display output image (Output filename need not be specified in this");
System.out.println(" case.)\n"); System.out.println(" case.)\n");
System.out.println("-fastupsample = Use the fastest chrominance upsampling algorithm available in"); System.out.println("-fastupsample = Use the fastest chrominance upsampling algorithm available\n");
System.out.println(" the underlying codec.\n");
System.out.println("-fastdct = Use the fastest DCT/IDCT algorithms available in the underlying"); System.out.println("-fastdct = Use the fastest DCT/IDCT algorithm available\n");
System.out.println(" codec.\n");
System.out.println("-accuratedct = Use the most accurate DCT/IDCT algorithms available in the"); System.out.println("-accuratedct = Use the most accurate DCT/IDCT algorithm available\n");
System.out.println(" underlying codec.\n");
System.exit(1); System.exit(1);
} }

View File

@@ -380,13 +380,15 @@ implements java.io.Closeable</pre>
the JPEG or YUV image should be compressed/encoded</dd><dd><code>y</code> - y offset (in pixels) of the region in the source image from which the JPEG or YUV image should be compressed/encoded</dd><dd><code>y</code> - y offset (in pixels) of the region in the source image from which
the JPEG or YUV image should be compressed/encoded</dd><dd><code>width</code> - width (in pixels) of the region in the source image from the JPEG or YUV image should be compressed/encoded</dd><dd><code>width</code> - width (in pixels) of the region in the source image from
which the JPEG or YUV image should be compressed/encoded</dd><dd><code>pitch</code> - bytes per row in the source image. Normally this should be which the JPEG or YUV image should be compressed/encoded</dd><dd><code>pitch</code> - bytes per row in the source image. Normally this should be
<code>width * TJ.pixelSize(pixelFormat)</code>, if the source image is <code>width *
unpadded. However, you can use this parameter to, for instance, specify </code><a href="../../../org/libjpegturbo/turbojpeg/TJ.html#getPixelSize(int)"><code>TJ.getPixelSize</code></a><code>(pixelFormat)</code>,
that the rows in the source image are padded to the nearest multiple of 4 if the source image is unpadded. However, you can use this parameter to,
bytes or to compress/encode a JPEG or YUV image from a region of a larger for instance, specify that the rows in the source image are padded to the
source image. You can also be clever and use this parameter to skip rows, nearest multiple of 4 bytes or to compress/encode a JPEG or YUV image from
etc. Setting this parameter to 0 is the equivalent of setting it to a region of a larger source image. You can also be clever and use this
<code>width * TJ.pixelSize(pixelFormat)</code>.</dd><dd><code>height</code> - height (in pixels) of the region in the source image from parameter to skip rows, etc. Setting this parameter to 0 is the
equivalent of setting it to <code>width *
</code><a href="../../../org/libjpegturbo/turbojpeg/TJ.html#getPixelSize(int)"><code>TJ.getPixelSize</code></a><code>(pixelFormat)</code>.</dd><dd><code>height</code> - height (in pixels) of the region in the source image from
which the JPEG or YUV image should be compressed/encoded</dd><dd><code>pixelFormat</code> - pixel format of the source image (one of which the JPEG or YUV image should be compressed/encoded</dd><dd><code>pixelFormat</code> - pixel format of the source image (one of
<a href="../../../org/libjpegturbo/turbojpeg/TJ.html#PF_RGB"><code>TJ.PF_*</code></a>)</dd> <a href="../../../org/libjpegturbo/turbojpeg/TJ.html#PF_RGB"><code>TJ.PF_*</code></a>)</dd>
<dt><span class="strong">Throws:</span></dt> <dt><span class="strong">Throws:</span></dt>

View File

@@ -819,17 +819,19 @@ implements java.io.Closeable</pre>
it to the width of the JPEG image. (In other words, the width will not be it to the width of the JPEG image. (In other words, the width will not be
considered when determining the scaled image size.) This parameter is considered when determining the scaled image size.) This parameter is
ignored if the source image is a YUV image.</dd><dd><code>pitch</code> - bytes per row in the destination image. Normally this should ignored if the source image is a YUV image.</dd><dd><code>pitch</code> - bytes per row in the destination image. Normally this should
be set to <code>scaledWidth * TJ.pixelSize(pixelFormat)</code>, if the be set to <code>scaledWidth *
destination image will be unpadded. However, you can use this to, for </code><a href="../../../org/libjpegturbo/turbojpeg/TJ.html#getPixelSize(int)"><code>TJ.getPixelSize</code></a><code>(pixelFormat)</code>,
instance, pad each row of the destination image to the nearest multiple of if the destination image will be unpadded. However, you can use this to,
4 bytes or to decompress/decode the source image into a region of a larger for instance, pad each row of the destination image to the nearest
image. NOTE: if the source image is a JPEG image, then multiple of 4 bytes or to decompress/decode the source image into a region
of a larger image. NOTE: if the source image is a JPEG image, then
<code>scaledWidth</code> can be determined by calling <code>scaledWidth</code> can be determined by calling
<code>scalingFactor.</code><a href="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#getScaled(int)"><code>getScaled</code></a><code>(jpegWidth)</code> <code>scalingFactor.</code><a href="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#getScaled(int)"><code>getScaled</code></a><code>(jpegWidth)</code>
or by calling <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getScaledWidth(int,%20int)"><code>getScaledWidth(int, int)</code></a>. If the source image is a YUV or by calling <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getScaledWidth(int,%20int)"><code>getScaledWidth(int, int)</code></a>. If the source image is a YUV
image, then <code>scaledWidth</code> is the width of the YUV image. image, then <code>scaledWidth</code> is the width of the YUV image.
Setting this parameter to 0 is the equivalent of setting it to Setting this parameter to 0 is the equivalent of setting it to
<code>scaledWidth * TJ.pixelSize(pixelFormat)</code>.</dd><dd><code>desiredHeight</code> - If the source image is a JPEG image, then this <code>scaledWidth *
</code><a href="../../../org/libjpegturbo/turbojpeg/TJ.html#getPixelSize(int)"><code>TJ.getPixelSize</code></a><code>(pixelFormat)</code>.</dd><dd><code>desiredHeight</code> - If the source image is a JPEG image, then this
specifies the desired height (in pixels) of the decompressed image (or specifies the desired height (in pixels) of the decompressed image (or
image region.) If the desired destination image dimensions are different image region.) If the desired destination image dimensions are different
than the source image dimensions, then TurboJPEG will use scaling in the than the source image dimensions, then TurboJPEG will use scaling in the

View File

@@ -116,13 +116,15 @@ public class TJCompressor implements Closeable {
* which the JPEG or YUV image should be compressed/encoded * which the JPEG or YUV image should be compressed/encoded
* *
* @param pitch bytes per row in the source image. Normally this should be * @param pitch bytes per row in the source image. Normally this should be
* <code>width * TJ.pixelSize(pixelFormat)</code>, if the source image is * <code>width *
* unpadded. However, you can use this parameter to, for instance, specify * </code>{@link TJ#getPixelSize TJ.getPixelSize}<code>(pixelFormat)</code>,
* that the rows in the source image are padded to the nearest multiple of 4 * if the source image is unpadded. However, you can use this parameter to,
* bytes or to compress/encode a JPEG or YUV image from a region of a larger * for instance, specify that the rows in the source image are padded to the
* source image. You can also be clever and use this parameter to skip rows, * nearest multiple of 4 bytes or to compress/encode a JPEG or YUV image from
* etc. Setting this parameter to 0 is the equivalent of setting it to * a region of a larger source image. You can also be clever and use this
* <code>width * TJ.pixelSize(pixelFormat)</code>. * parameter to skip rows, etc. Setting this parameter to 0 is the
* equivalent of setting it to <code>width *
* </code>{@link TJ#getPixelSize TJ.getPixelSize}<code>(pixelFormat)</code>.
* *
* @param height height (in pixels) of the region in the source image from * @param height height (in pixels) of the region in the source image from
* which the JPEG or YUV image should be compressed/encoded * which the JPEG or YUV image should be compressed/encoded

View File

@@ -366,17 +366,19 @@ public class TJDecompressor implements Closeable {
* ignored if the source image is a YUV image. * ignored if the source image is a YUV image.
* *
* @param pitch bytes per row in the destination image. Normally this should * @param pitch bytes per row in the destination image. Normally this should
* be set to <code>scaledWidth * TJ.pixelSize(pixelFormat)</code>, if the * be set to <code>scaledWidth *
* destination image will be unpadded. However, you can use this to, for * </code>{@link TJ#getPixelSize TJ.getPixelSize}<code>(pixelFormat)</code>,
* instance, pad each row of the destination image to the nearest multiple of * if the destination image will be unpadded. However, you can use this to,
* 4 bytes or to decompress/decode the source image into a region of a larger * for instance, pad each row of the destination image to the nearest
* image. NOTE: if the source image is a JPEG image, then * multiple of 4 bytes or to decompress/decode the source image into a region
* of a larger image. NOTE: if the source image is a JPEG image, then
* <code>scaledWidth</code> can be determined by calling * <code>scaledWidth</code> can be determined by calling
* <code>scalingFactor.</code>{@link TJScalingFactor#getScaled getScaled}<code>(jpegWidth)</code> * <code>scalingFactor.</code>{@link TJScalingFactor#getScaled getScaled}<code>(jpegWidth)</code>
* or by calling {@link #getScaledWidth}. If the source image is a YUV * or by calling {@link #getScaledWidth}. If the source image is a YUV
* image, then <code>scaledWidth</code> is the width of the YUV image. * image, then <code>scaledWidth</code> is the width of the YUV image.
* Setting this parameter to 0 is the equivalent of setting it to * Setting this parameter to 0 is the equivalent of setting it to
* <code>scaledWidth * TJ.pixelSize(pixelFormat)</code>. * <code>scaledWidth *
* </code>{@link TJ#getPixelSize TJ.getPixelSize}<code>(pixelFormat)</code>.
* *
* @param desiredHeight If the source image is a JPEG image, then this * @param desiredHeight If the source image is a JPEG image, then this
* specifies the desired height (in pixels) of the decompressed image (or * specifies the desired height (in pixels) of the decompressed image (or

View File

@@ -995,14 +995,14 @@ int main(int argc, char *argv[])
if ((sf.num != 1 || sf.denom != 1) && doTile) { if ((sf.num != 1 || sf.denom != 1) && doTile) {
printf("Disabling tiled compression/decompression tests, because those tests do not\n"); printf("Disabling tiled compression/decompression tests, because those tests do not\n");
printf("work when scaled decompression is enabled.\n"); printf("work when scaled decompression is enabled.\n\n");
doTile = 0; doTile = 0; xformOpt &= (~TJXOPT_CROP);
} }
if ((flags & TJFLAG_NOREALLOC) == 0 && doTile) { if ((flags & TJFLAG_NOREALLOC) == 0 && doTile) {
printf("Disabling tiled compression/decompression tests, because those tests do not\n"); printf("Disabling tiled compression/decompression tests, because those tests do not\n");
printf("work when dynamic JPEG buffer allocation is enabled.\n\n"); printf("work when dynamic JPEG buffer allocation is enabled.\n\n");
doTile = 0; doTile = 0; xformOpt &= (~TJXOPT_CROP);
} }
if (!decompOnly) { if (!decompOnly) {

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C)2011-2012, 2014-2015, 2017, 2019, 2021-2022 * Copyright (C)2011-2012, 2014-2015, 2017, 2019, 2021-2023
* D. R. Commander. All Rights Reserved. * D. R. Commander. All Rights Reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -149,14 +149,11 @@ static void usage(char *programName)
printf("General Options\n"); printf("General Options\n");
printf("---------------\n\n"); printf("---------------\n\n");
printf("-fastupsample = Use the fastest chrominance upsampling algorithm available in\n"); printf("-fastupsample = Use the fastest chrominance upsampling algorithm available\n\n");
printf(" the underlying codec.\n\n");
printf("-fastdct = Use the fastest DCT/IDCT algorithms available in the underlying\n"); printf("-fastdct = Use the fastest DCT/IDCT algorithm available\n\n");
printf(" codec.\n\n");
printf("-accuratedct = Use the most accurate DCT/IDCT algorithms available in the\n"); printf("-accuratedct = Use the most accurate DCT/IDCT algorithm available\n\n");
printf(" underlying codec.\n\n");
exit(1); exit(1);
} }