From 05524e671e42b8a4ba6d0cfab1ffb1af20a29919 Mon Sep 17 00:00:00 2001 From: DRC Date: Sun, 11 May 2014 23:14:43 +0000 Subject: [PATCH] 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 --- cjpeg.1 | 6 ++++-- djpeg.1 | 2 +- libjpeg.txt | 16 +++++++++------- usage.txt | 37 +++++++++++++++++++++---------------- 4 files changed, 35 insertions(+), 26 deletions(-) diff --git a/cjpeg.1 b/cjpeg.1 index b4edf62..51fe7c5 100644 --- a/cjpeg.1 +++ b/cjpeg.1 @@ -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 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 -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 .B \-dct float 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 method may also give different results on different machines due to varying roundoff behavior, whereas the integer methods should give the same results on diff --git a/djpeg.1 b/djpeg.1 index d77e7ed..37646ee 100644 --- a/djpeg.1 +++ b/djpeg.1 @@ -132,7 +132,7 @@ compressed using lower quality levels. .TP .B \-dct float 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 method may also give different results on different machines due to varying roundoff behavior, whereas the integer methods should give the same results on diff --git a/libjpeg.txt b/libjpeg.txt index afc002b..5f203d6 100644 --- a/libjpeg.txt +++ b/libjpeg.txt @@ -897,12 +897,14 @@ J_DCT_METHOD dct_method JDCT_ISLOW, but this can be larger for some images. Do not use JDCT_IFAST with quality levels above 97. The algorithm often 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 - mostly a legacy feature. It does not produce significantly more - accurate results than the ISLOW 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. + lossy image than if lower quality levels had been used. Also, in + libjpeg-turbo, JDCT_IFAST is not fully accelerated for quality levels + above 97, so it will be slower than JDCT_ISLOW. JDCT_FLOAT is mainly a + legacy feature. It does not produce significantly more accurate + results than the ISLOW 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. J_COLOR_SPACE jpeg_color_space int num_components @@ -1199,7 +1201,7 @@ J_DCT_METHOD dct_method when decompressing images that were compressed using quality levels above 97. The algorithm often degenerates for such images and can 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 results than the ISLOW method, and it is much slower. The FLOAT method may also give different results on different machines due to varying diff --git a/usage.txt b/usage.txt index b328a21..38f11b2 100644 --- a/usage.txt +++ b/usage.txt @@ -171,7 +171,6 @@ Switches for advanced users: -dct int Use integer DCT method (default). -dct fast Use fast integer DCT (less accurate). - -dct float Use floating-point DCT method. In libjpeg-turbo, the fast method is generally about 5-15% faster than the int method when using the 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 97. The algorithm often degenerates at quality=98 and above and can actually produce a more lossy image than - if lower quality levels had been used. The float - method is mostly a legacy feature. It does 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. + if lower quality levels had been used. Also, in + libjpeg-turbo, the fast method is not fully accerated + for quality levels above 97, so it will be slower than + the int method. + -dct float Use floating-point DCT method. + 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 + 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 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 fast Use fast integer DCT (less accurate). - -dct float Use floating-point DCT method. In libjpeg-turbo, the fast method is generally about 5-15% faster than the int method when using the 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 degenerates for such images and can actually produce a more lossy output image than if the JPEG image had - been compressed using lower quality levels. The float - method is mostly a legacy feature. It does 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. + been compressed using lower quality levels. + -dct float Use floating-point DCT method. + 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 + 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. -dither fs Use Floyd-Steinberg dithering in color quantization. -dither ordered Use ordered dithering in color quantization. -- 2.50.0