(29/11/2010 07:09 PM)Assassinator Wrote: Any other interpolator, which produces a curve smoother than a staircase (ie. everything else), should be less effected by "special" points than the nearest neighbor method, thus the artefacting would get "smoothed away" to some degree compared to the original.
They get smoothed, but enlarged at the same time.
Take an example: let's say wee have a 100x100 white image, with a single black vertical line, 1 pixel wide drawn down somewhere.
If wee downscale it to 25x25 using nearest neighbor, the line is either going to disappear (become 0 pixels wide) or stay the same width, depending on where the line is drawn. If this position is random, according to probability, the line will most likely disappear in this case.
You've mentioned an average, which works in this case because nearest neighbor is non-discriminatory, as you've said.
Other scalers, however, can be discriminatory.
If I did the above downscale, but use, say, a Lanczos scaler, it still has the problem of making 1px wide line "smaller". You can't go below 1px, so it'll retain the width, but try to interpolate some of the surrounding white pixels to reduce the significance of the line, but ultimately, it stays the same size. Upscaling this back to 100x100, you'll get a significantly wider line than you started with. It'll be more "washed out", but it'll be certainly larger.
Most JPEG artefacts are small bits of noise, similar to this thin line. Thus a downscale will effectively enlarge them. It may make them less obvious, by blurring the surrounding colours in a bit (if it identifies the artefacts as non-edges), but if it doesn't actually eliminate them, they'll be enlarged in the upscale, and made more obvious via the sharpen filter.
By the way, I'm not sure what you're exactly referring to as haloing, so I'm unsure what you're exactly referring to, but the sharpen filter is a fairly basic one.