The fast integer DCT degrades for qualities > 95, so use the slow integer DCT instead to ensure that perceptually lossless performance is maintained.
This commit is contained in:
@@ -1,3 +1,13 @@
|
|||||||
|
Significant changes since 1.0.90
|
||||||
|
================================
|
||||||
|
|
||||||
|
[1] Since the fast integer forward DCT seems to degrade for JPEG qualities
|
||||||
|
greater than 95, TurboJPEG/OSS will now automatically use the slow integer
|
||||||
|
forward DCT when generating JPEG images of quality 96 or greater. This
|
||||||
|
reduces compression performance by as much as 15% for these high-quality images
|
||||||
|
but is necessary to ensure that the images are perceptually lossless.
|
||||||
|
|
||||||
|
|
||||||
Significant changes since 1.0.1
|
Significant changes since 1.0.1
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
|
|||||||
@@ -193,7 +193,8 @@ DLLEXPORT int DLLCALL tjCompress(tjhandle h,
|
|||||||
jpeg_set_colorspace(&j->cinfo, JCS_GRAYSCALE);
|
jpeg_set_colorspace(&j->cinfo, JCS_GRAYSCALE);
|
||||||
else
|
else
|
||||||
jpeg_set_colorspace(&j->cinfo, JCS_YCbCr);
|
jpeg_set_colorspace(&j->cinfo, JCS_YCbCr);
|
||||||
j->cinfo.dct_method = JDCT_FASTEST;
|
if(qual>=96) j->cinfo.dct_method=JDCT_ISLOW;
|
||||||
|
else j->cinfo.dct_method=JDCT_FASTEST;
|
||||||
|
|
||||||
j->cinfo.comp_info[0].h_samp_factor=hsampfactor[jpegsub];
|
j->cinfo.comp_info[0].h_samp_factor=hsampfactor[jpegsub];
|
||||||
j->cinfo.comp_info[1].h_samp_factor=1;
|
j->cinfo.comp_info[1].h_samp_factor=1;
|
||||||
|
|||||||
Reference in New Issue
Block a user