upvote
I'm far from an image rendering expert myself, but I don't think there is a single root cause here. I don't doubt the partial decoding would affect the final result just as the scaling algorithm itself, so in the end it's going to be a combination of it all.

The reason I believe the scaling algorithm is contributing more in your particular example, is because it looks almost exactly like a classic B/W comparison between a sharp ringing heavy algorithm and a more blurry one.

For reference here is a quick comparison between Lanczos/Bilinear I threw together: https://twinlens.app/compare?share=40973d84a174

It would be interesting to see how your example would look if you used colors instead, where the ringing artifacts become a lot more obvious. Like this one: https://twinlens.app/compare?share=8fb890a5820e

reply
Thanks for these! Indeed I understand your point now. I'll add a little note on the post later today.

Another interesting bit is that It wasn't so easy to get an image showing the issue a clear as we had it. My hunch is that moiré patterns might have a role in this, as most images where the the issue showed, had some kind of grid/repetition. I suppose some images might be more affected by the IDCT and other more affected by the scaling algorithm, making it more or less visible. It's a mix like you said!

reply
I wonder if this is a gamma correction related. JPEG encodes directly in a non linear color encoding (full-range YCbCr), so the partial decoding may be effectively scaling without gamma correction.
reply