Document the fact that the fast integer FDCT is not fully accelerated for quality levels above 97 + additional wordsmithing

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1289 632fc199-4ca6-4c93-a231-07263d6284db
This commit is contained in:
DRC
2014-05-11 23:14:43 +00:00
parent 8940e6ca86
commit 05524e671e
4 changed files with 35 additions and 26 deletions

View File

@@ -176,11 +176,13 @@ With quality=97, for instance, the fast method incurs generally about a 1-3 dB
loss (in PSNR) relative to the int method, but this can be larger for some loss (in PSNR) relative to the int method, but this can be larger for some
images. Do not use the fast method with quality levels above 97. The images. Do not use the fast method with quality levels above 97. The
algorithm often degenerates at quality=98 and above and can actually produce a algorithm often degenerates at quality=98 and above and can actually produce a
more lossy image than if lower quality levels had been used. more lossy image than if lower quality levels had been used. Also, in
libjpeg-turbo, the fast method is not fully accelerated for quality levels
above 97, so it will be slower than the int method.
.TP .TP
.B \-dct float .B \-dct float
Use floating-point DCT method. Use floating-point DCT method.
The float method is mostly a legacy feature. It does not produce significantly The float method is mainly a legacy feature. It does not produce significantly
more accurate results than the int method, and it is much slower. The float more accurate results than the int method, and it is much slower. The float
method may also give different results on different machines due to varying method may also give different results on different machines due to varying
roundoff behavior, whereas the integer methods should give the same results on roundoff behavior, whereas the integer methods should give the same results on

View File

@@ -132,7 +132,7 @@ compressed using lower quality levels.
.TP .TP
.B \-dct float .B \-dct float
Use floating-point DCT method. Use floating-point DCT method.
The float method is mostly a legacy feature. It does not produce significantly The float method is mainly a legacy feature. It does not produce significantly
more accurate results than the int method, and it is much slower. The float more accurate results than the int method, and it is much slower. The float
method may also give different results on different machines due to varying method may also give different results on different machines due to varying
roundoff behavior, whereas the integer methods should give the same results on roundoff behavior, whereas the integer methods should give the same results on

View File

@@ -897,12 +897,14 @@ J_DCT_METHOD dct_method
JDCT_ISLOW, but this can be larger for some images. Do not use JDCT_ISLOW, but this can be larger for some images. Do not use
JDCT_IFAST with quality levels above 97. The algorithm often JDCT_IFAST with quality levels above 97. The algorithm often
degenerates at quality=98 and above and can actually produce a more degenerates at quality=98 and above and can actually produce a more
lossy image than if lower quality levels had been used. JDCT_FLOAT is lossy image than if lower quality levels had been used. Also, in
mostly a legacy feature. It does not produce significantly more libjpeg-turbo, JDCT_IFAST is not fully accelerated for quality levels
accurate results than the ISLOW method, and it is much slower. The above 97, so it will be slower than JDCT_ISLOW. JDCT_FLOAT is mainly a
FLOAT method may also give different results on different machines due legacy feature. It does not produce significantly more accurate
to varying roundoff behavior, whereas the integer methods should give results than the ISLOW method, and it is much slower. The FLOAT method
the same results on all machines. may also give different results on different machines due to varying
roundoff behavior, whereas the integer methods should give the same
results on all machines.
J_COLOR_SPACE jpeg_color_space J_COLOR_SPACE jpeg_color_space
int num_components int num_components
@@ -1199,7 +1201,7 @@ J_DCT_METHOD dct_method
when decompressing images that were compressed using quality levels when decompressing images that were compressed using quality levels
above 97. The algorithm often degenerates for such images and can above 97. The algorithm often degenerates for such images and can
actually produce a more lossy output image than if the JPEG image had actually produce a more lossy output image than if the JPEG image had
been compressed using lower quality levels. JDCT_FLOAT is mostly a been compressed using lower quality levels. JDCT_FLOAT is mainly a
legacy feature. It does not produce significantly more accurate legacy feature. It does not produce significantly more accurate
results than the ISLOW method, and it is much slower. The FLOAT method results than the ISLOW method, and it is much slower. The FLOAT method
may also give different results on different machines due to varying may also give different results on different machines due to varying

View File

@@ -171,7 +171,6 @@ Switches for advanced users:
-dct int Use integer DCT method (default). -dct int Use integer DCT method (default).
-dct fast Use fast integer DCT (less accurate). -dct fast Use fast integer DCT (less accurate).
-dct float Use floating-point DCT method.
In libjpeg-turbo, the fast method is generally about In libjpeg-turbo, the fast method is generally about
5-15% faster than the int method when using the 5-15% faster than the int method when using the
x86/x86-64 SIMD extensions (results may vary with other x86/x86-64 SIMD extensions (results may vary with other
@@ -187,13 +186,18 @@ Switches for advanced users:
Do not use the fast method with quality levels above Do not use the fast method with quality levels above
97. The algorithm often degenerates at quality=98 and 97. The algorithm often degenerates at quality=98 and
above and can actually produce a more lossy image than above and can actually produce a more lossy image than
if lower quality levels had been used. The float if lower quality levels had been used. Also, in
method is mostly a legacy feature. It does not produce libjpeg-turbo, the fast method is not fully accerated
significantly more accurate results than the int for quality levels above 97, so it will be slower than
method, and it is much slower. The float method may the int method.
also give different results on different machines due -dct float Use floating-point DCT method.
to varying roundoff behavior, whereas the integer The float method is mainly a legacy feature. It does
methods should give the same results on all machines. not produce significantly more accurate results than
the int method, and it is much slower. The float
method may also give different results on different
machines due to varying roundoff behavior, whereas the
integer methods should give the same results on all
machines.
-restart N Emit a JPEG restart marker every N MCU rows, or every -restart N Emit a JPEG restart marker every N MCU rows, or every
N MCU blocks if "B" is attached to the number. N MCU blocks if "B" is attached to the number.
@@ -310,7 +314,6 @@ Switches for advanced users:
-dct int Use integer DCT method (default). -dct int Use integer DCT method (default).
-dct fast Use fast integer DCT (less accurate). -dct fast Use fast integer DCT (less accurate).
-dct float Use floating-point DCT method.
In libjpeg-turbo, the fast method is generally about In libjpeg-turbo, the fast method is generally about
5-15% faster than the int method when using the 5-15% faster than the int method when using the
x86/x86-64 SIMD extensions (results may vary with other x86/x86-64 SIMD extensions (results may vary with other
@@ -330,13 +333,15 @@ Switches for advanced users:
using quality levels above 97. The algorithm often using quality levels above 97. The algorithm often
degenerates for such images and can actually produce degenerates for such images and can actually produce
a more lossy output image than if the JPEG image had a more lossy output image than if the JPEG image had
been compressed using lower quality levels. The float been compressed using lower quality levels.
method is mostly a legacy feature. It does not produce -dct float Use floating-point DCT method.
significantly more accurate results than the int The float method is mainly a legacy feature. It does
method, and it is much slower. The float method may   not produce significantly more accurate results than
also give different results on different machines due the int method, and it is much slower. The float
to varying roundoff behavior, whereas the integer method may also give different results on different
methods should give the same results on all machines. machines due to varying roundoff behavior, whereas the
integer methods should give the same results on all
machines.
-dither fs Use Floyd-Steinberg dithering in color quantization. -dither fs Use Floyd-Steinberg dithering in color quantization.
-dither ordered Use ordered dithering in color quantization. -dither ordered Use ordered dithering in color quantization.