ImageEn, unit iexBitmaps

TIOParams.JPEG_DCTMethod

TIOParams.JPEG_DCTMethod

Declaration

property JPEG_DCTMethod: TIOJPEGDCTMethod;

Description

Specifies the DCT method used for reading and writing JPEG images.
The ioJPEG_ISlow algorithm should produce a smaller file of better quality, while ioJPEG_IFast will be larger. ioJPEG_Float will produce a mid-sized file. The actual speed difference between the algorithms will depend on the system, and in real world testing ioJPEG_ISlow may not be slower than ioJPEG_IFast.

Default: ioJPEG_ISlow (Specified by IOParamDefaults)

Detail

When the Independent JPEG Group's software was first released in 1991, the compression time for a 1-megapixel JPEG image on a mainstream PC was measured in minutes. Thus, ioJPEG_IFast provided noticeable performance benefits. On modern CPUs, however, the compression time for a 1-megapixel JPEG image is measured in milliseconds, and thus the performance benefits
of ioJPEG_IFast are much less noticeable. On modern x86/x86-64 CPUs that support AVX2 instructions, ioJPEG_IFast and ioJPEG_ISlow have similar performance. On other types of CPUs, ioJPEG_IFast is generally about 5-15% faster than ioJPEG_ISlow.

For quality levels of 90 and below, there should be little or no perceptible quality difference between the two algorithms. For quality levels above 90, however, the difference between ioJPEG_IFast and ioJPEG_ISlow becomes more pronounced. With quality=97, for instance, ioJPEG_IFast incurs generally about a 1-3 dB loss in PSNR relative to ioJPEG_ISlow, but this
can be larger for some images. Do not use ioJPEG_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.

ioJPEG_Float does not produce significantly more accurate results than ioJPEG_ISlow, and it is much slower. ioJPEG_Float may also give different results on different machines due to varying rounding behavior, whereas the Integer methods should give the same results on all machines.

See Also

OptimizeLoadingParams