On Wed, Apr 05, 2000 at 04:40:37PM +1000, Ian Boreham wrote:
> From my understanding of JPEG (which is not expert), I would have thought
> that although there might be a small loss of quality on subsequent cycles,
> due to rounding-type errors, there would not be anywhere near the same as
> the initial loss due to discarding high-order, low-coefficient data.
> Discarding this data is effectively setting the coefficients to zero, so
> you would be roughly discarding zero on subsequent cycles.
You are correct, but only when the same implementation is being used.
It is quite possible that rounding errors will be introduced by varying
the algorithm, so although this will often work IN PRACTICE, it is not
something to be relied upon.
> Has anyone tried cycling and differencing to see the effect?
Yes. Marc is right only in principle, not in practice.
In tests on real photo data (which is the only thing you should be
shoving through a JPEG codec anyway) I found that ~1% of tiles were
damaged during the second cycle, and much fewer if any were changed
by subsequent cycles. This is testing with RH 6.2's libjpeg package,
Gimp defaults, 75% quality.
I suspect that choosing a non-integer implementation (which might be
faster on modern Intel hardware) would increase the damage from
subsequent cycles, but I've never tested that. For my purposes it is
enough that guessing the Q factor is a win, though not one we can
I have said all this before, is there a problem with the list? Or
is Marc ignoring everything I say?