Q: consistency of JPEG 2000 decompression across codecs?

  • Follow


Hello,

I'm sort of new to image compression, especially JPEG 2000.  Out of 
curiosity, I ran some experiments with a few different codecs, JasPer, 
JJ2000, whatever Corel/Jasc Paint Shop Pro 9 uses, and the decoder used 
by IrfanView which I believe is LuraWave.

The question I posed was this: if I lossy compress with encoder A and 
decompress with decoders A, B, C and D, will the resulting decompressed 
images be identical?

Note that as most consumer-grade codecs don't give a whole lot of 
options, I compressed with just the compression ratio/bits-per-pixel 
parameters and decompressed without any special parameters.

What I found was that when I encoded with JasPer, all the codecs 
decompressed to identical images.  When I encoded with JJ2000 or Paint 
Shop, the decompressed images were not identical.

So my question to the group is:  Is this

A.)  A problem with encoders?
B.)  A problem with decoders?
C.)  Caused by a lack of decompression parameters?
D.)  Not a problem at all as results are not required to be identical in 
the JPEG 2000 standard?
E.)  Something else?

Any insights would be greatly appreciated.

Thank you very much,
-Manuel
0
Reply Manuel 10/18/2005 3:29:56 PM

Hi,

> I'm sort of new to image compression, especially JPEG 2000.  Out of 
> curiosity, I ran some experiments with a few different codecs, JasPer, 
> JJ2000, whatever Corel/Jasc Paint Shop Pro 9 uses, and the decoder used 
> by IrfanView which I believe is LuraWave.

I don't hope so. IrfanView is in my experience extremly slow showing
JPEG2000, and I doubt they're selling code that slow. Looks more like
Jasper to me, speed-wise at least.

> The question I posed was this: if I lossy compress with encoder A and 
> decompress with decoders A, B, C and D, will the resulting decompressed 
> images be identical?

The standard does not require this. A decoder has a choice of picking
the reconstruction point of the dequantizer freely, between 0 and 1,
and thus changing the reconstructed image. Typically, 0.5 is used and
recommended, but IIRC Jasper uses an (IMHO unwise) value of
0. Furthermore, the implementation of the 9/7 wavelet for lossy
compression may make a difference. A codec might want to implement
this using various strategies, thus causing different types of
round-off errors and thus causing slightly different reconstructed
images.

Part-4 of JPEG2000 requires a decoder to be within certain limits for
the reconstructed images - namely by fixing some limits for the official
test images. The error bounds have been choosen in a way such that both
JJ and Jasper comply, even though they use different reconstruction
points. Thus, part-4 does not guarantee very much for this problem,
unfortunately (though it does pretty much for testing the decoder
otherwise).

> Note that as most consumer-grade codecs don't give a whole lot of 
> options, I compressed with just the compression ratio/bits-per-pixel 
> parameters and decompressed without any special parameters.

And you typically do not have an option to adjust the 
reconstruction point. A wise codec manufacturer should run a
"generation test", i.e. compress and re-expand the same image several
times, and check whether that causes an offset-shift in the image. Then
pick the reconstruction point and the rounding modes to minimize this
shift - that's at least how Pegasus ended up with the 0.5 value, and
that's why I recommend it. (-;

> What I found was that when I encoded with JasPer, all the codecs 
> decompressed to identical images.  When I encoded with JJ2000 or Paint 
> Shop, the decompressed images were not identical.

> So my question to the group is:  Is this

> A.)  A problem with encoders?
> B.)  A problem with decoders?
> C.)  Caused by a lack of decompression parameters?
> D.)  Not a problem at all as results are not required to be identical in 
> the JPEG 2000 standard?
> E.)  Something else?

D.)

So long,
	Thomas
0
Reply Thomas 10/19/2005 8:12:58 AM


Thomas,

Very informative.  That's what I had initially suspected (the result if 
not the details), but wanted to get it confirmed.

Thank you very much,
-Manuel

>>The question I posed was this: if I lossy compress with encoder A and 
>>decompress with decoders A, B, C and D, will the resulting decompressed 
>>images be identical?
> 
> 
> The standard does not require this. A decoder has a choice of picking
> the reconstruction point of the dequantizer freely, between 0 and 1,
> and thus changing the reconstructed image. Typically, 0.5 is used and
> recommended, but IIRC Jasper uses an (IMHO unwise) value of
> 0. Furthermore, the implementation of the 9/7 wavelet for lossy
> compression may make a difference. A codec might want to implement
> this using various strategies, thus causing different types of
> round-off errors and thus causing slightly different reconstructed
> images.
> 
> Part-4 of JPEG2000 requires a decoder to be within certain limits for
> the reconstructed images - namely by fixing some limits for the official
> test images. The error bounds have been choosen in a way such that both
> JJ and Jasper comply, even though they use different reconstruction
> points. Thus, part-4 does not guarantee very much for this problem,
> unfortunately (though it does pretty much for testing the decoder
> otherwise).
> 
> 
0
Reply Manuel 10/19/2005 12:24:32 PM

2 Replies
161 Views

(page loaded in 0.042 seconds)

Similiar Articles:





7/27/2012 3:25:20 PM


Reply: