ok - longstanding issue. quality of jpeg encode and decode dropped
quickly when uf your-encoded anything due to using IFAST decoder (and encoder). this does drop speed for decode and encode (except encoding < 60% quality where it now uses IFAST), but we don't see progressively worse artifacts. SVN revision: 65294
This commit is contained in:
parent
16d5eb14bb
commit
d32ecb2cfd
|
@ -540,3 +540,9 @@
|
|||
|
||||
* Added a new macro for adding arrays of basic types.
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY
|
||||
|
||||
2011-11-16 Carsten Haitzler (The Rasterman)
|
||||
|
||||
* JPEG encode and decode in eet now uses ISLOW (not IFAST) due to
|
||||
noticable quality losses in the chase for speed. It will use
|
||||
IFAST for quality less than 60 when encoding
|
||||
|
|
|
@ -25,3 +25,4 @@ Improvements:
|
|||
* use stringshare for mmaped file names
|
||||
* use eina locking wrappers
|
||||
* use eina_file for file IO
|
||||
* jpeg encode and decode quality improved at expense of speed
|
||||
|
|
|
@ -447,7 +447,7 @@ eet_data_image_jpeg_rgb_decode(const void *data,
|
|||
}
|
||||
|
||||
jpeg_read_header(&cinfo, TRUE);
|
||||
cinfo.dct_method = JDCT_FASTEST;
|
||||
cinfo.dct_method = JDCT_ISLOW; // JDCT_FLOAT JDCT_IFAST(quality loss)
|
||||
cinfo.do_fancy_upsampling = FALSE;
|
||||
cinfo.do_block_smoothing = FALSE;
|
||||
jpeg_start_decompress(&cinfo);
|
||||
|
@ -595,7 +595,7 @@ eet_data_image_jpeg_alpha_decode(const void *data,
|
|||
}
|
||||
|
||||
jpeg_read_header(&cinfo, TRUE);
|
||||
cinfo.dct_method = JDCT_FASTEST;
|
||||
cinfo.dct_method = JDCT_ISLOW; // JDCT_FLOAT JDCT_IFAST(quality loss)
|
||||
cinfo.do_fancy_upsampling = FALSE;
|
||||
cinfo.do_block_smoothing = FALSE;
|
||||
jpeg_start_decompress(&cinfo);
|
||||
|
@ -832,8 +832,12 @@ eet_data_image_jpeg_convert(int *size,
|
|||
cinfo.image_height = h;
|
||||
cinfo.input_components = 3;
|
||||
cinfo.in_color_space = JCS_RGB;
|
||||
cinfo.optimize_coding = FALSE;
|
||||
cinfo.dct_method = JDCT_ISLOW; // JDCT_FLOAT JDCT_IFAST(quality loss)
|
||||
if (quality < 60) cinfo.dct_method = JDCT_IFAST;
|
||||
jpeg_set_defaults(&cinfo);
|
||||
jpeg_set_quality(&cinfo, quality, TRUE);
|
||||
|
||||
if (quality >= 90)
|
||||
{
|
||||
cinfo.comp_info[0].h_samp_factor = 1;
|
||||
|
@ -925,6 +929,9 @@ eet_data_image_jpeg_alpha_convert(int *size,
|
|||
cinfo.image_height = h;
|
||||
cinfo.input_components = 3;
|
||||
cinfo.in_color_space = JCS_RGB;
|
||||
cinfo.optimize_coding = FALSE;
|
||||
cinfo.dct_method = JDCT_ISLOW; // JDCT_FLOAT JDCT_IFAST(quality loss)
|
||||
if (quality < 60) cinfo.dct_method = JDCT_IFAST;
|
||||
jpeg_set_defaults(&cinfo);
|
||||
jpeg_set_quality(&cinfo, quality, TRUE);
|
||||
if (quality >= 90)
|
||||
|
|
Loading…
Reference in New Issue