TECH Signal 495
Chrome uses partial IDCT scaling for small JPEGs, skipping high-frequency coefficients
Illustration only Photo by Ben Vaughn on Unsplash
Chrome's Skia rendering library uses libjpeg-turbo's partial IDCT scaling to decode only lower-frequency data when rendering JPEGs at small sizes, producing visibly different results than browsers that fully decompress first.
If you are debugging why a small JPEG logo or icon looks thicker or different in Chrome versus Firefox, this optimization is the cause, not a rendering bug. The difference is an intentional trade-off for memory and performance, and it only affects JPEGs rendered at small scales relative to their native size.
Written by elseif from the cluster below · every claim links back to a sourceThe three things worth knowing
Chrome delegates JPEG decoding to Skia, which uses libjpeg-turbo's partial IDCT scaling for small target sizes.
Partial IDCT scaling decodes only the lower-frequency coefficients of 8×8 DCT blocks, skipping high-frequency detail that would be lost at small scales.
This produces visibly different rendering than full decompression followed by downscaling, making small JPEGs appear thicker or less faithful to the original.
THE CLUSTER