New compression method. Can this be used for textures in N5?

Simon F said:
MfA said:
Getting optimum memory locality out of wavelet transforms is an extremely painfull excercise, and afterwards it is of course still slow compared to block transforms.
I don't see that necessarily the case. For a small neighbourhood of pixels, each wavelet transform only requires a small foot-print of low frequency + delta values. You can cache a small set of these values from each "level" of the frequency heirarchy and maintain quite reasonable coherence - AFAICS. You just gradually update this data as you scan through the compressed image.

I didnt say it was impossible, I said it was painfull ... especially if you throw SIMD and lifting into the mix too.

It will always be less efficient than a block transform which can keep all the data it needs in registers.

Hell I think transform coding is not needed at all ... Simon should add VQ to PVR-TC (for the colour and modulation maps) and beat JPEG-2000 silly ;)
Ha. I suppose we could throw BWT into the mixture as well :)

Nahh, just stick to arithmetic coding with a nice context model, I dont like voodoo :)

I've also only used linear wavelets as a means of implementing a low-pass filter that's close to "the ideal filter" for linear reconstruction but much cheaper.

I seriously doubt the "ideal" filter would look all that ideal ... as I quipped somewhere else, it is a pity someone famous hasnt written on how "pixels are not little sincs".
 
MfA said:
Simon F said:
MfA said:
Getting optimum memory locality out of wavelet transforms is an extremely painfull excercise, and afterwards it is of course still slow compared to block transforms.
I don't see that necessarily the case. For a small neighbourhood of pixels, each wavelet transform only requires a small foot-print of low frequency + delta values. You can cache a small set of these values from each "level" of the frequency heirarchy and maintain quite reasonable coherence - AFAICS. You just gradually update this data as you scan through the compressed image.

I didnt say it was impossible, I said it was painfull ... especially if you throw SIMD and lifting into the mix too.
Thanks for the paper link - I'll look through that later. Mind you, I don't think DCT transform systems are necessarily 'easy' to implement efficiently either and I certainly know which I'd rather do if I had to do a hardware implementation!.


Ha. I suppose we could throw BWT into the mixture as well :)

Nahh, just stick to arithmetic coding with a nice context model, I dont like voodoo :)
Oh I was assuming AC as well, but only after doing the BWT on the predicted results :D
I've also only used linear wavelets as a means of implementing a low-pass filter that's close to "the ideal filter" for linear reconstruction but much cheaper.

I seriously doubt the "ideal" filter would look all that ideal ... as I quipped somewhere else, it is a pity someone famous hasnt written on how "pixels are not little sincs".
I wasn't talking about pixel level but of finding a lower frequency representation of an image (i.e. a few pixels per cycle) that would be reconstructed with something other than sincs (eg bilinear).

As for pixels, well on a CRT they're pretty much gaussians and I suppose on LCD they be a cross between a gaussian and a box (depending on how much diffusion the panel gives).
 
Simon F said:
Thanks for the paper link - I'll look through that later. Mind you, I don't think DCT transform systems are necessarily 'easy' to implement efficiently either and I certainly know which I'd rather do if I had to do a hardware implementation!.

There are extremely simple DCT approximations ... you arent going to win on that front either :) The paper I linked earlier described a method using such an approximation for instance, see figure 8, and it beat JPEG-2000 at all interesting bitrates.

Nahh, just stick to arithmetic coding with a nice context model, I dont like voodoo :)
Oh I was assuming AC as well, but only after doing the BWT on the predicted results :D

Predicted results? I only see a need for entropy coding of VQ indices, and I dont immediately see how to apply BWT to those.

I wasn't talking about pixel level but of finding a lower frequency representation of an image (i.e. a few pixels per cycle) that would be reconstructed with something other than sincs (eg bilinear).

If you dont assume the footprint of a pixel is a sinc, then the idea that a fourier domain brickwall filter before downsampling could be ideal becomes silly. To me the two concepts are interchangeable.
 
MfA said:
Simon F said:
Thanks for the paper link - I'll look through that later. Mind you, I don't think DCT transform systems are necessarily 'easy' to implement efficiently either and I certainly know which I'd rather do if I had to do a hardware implementation!.

There are extremely simple DCT approximations ... you arent going to win on that front either :) The paper I linked earlier described a method using such an approximation for instance, see figure 8, and it beat JPEG-2000 at all interesting bitrates.
I shall have to have a look at that then

Nahh, just stick to arithmetic coding with a nice context model, I dont like voodoo :)
Oh I was assuming AC as well, but only after doing the BWT on the predicted results :D

Predicted results? I only see a need for entropy coding of VQ indices, and I dont immediately see how to apply BWT to those.
I would think that there is a reasonable probability that certain runs of codes would re-occur and BWT might help to extract some of those patterns.

I wasn't talking about pixel level but of finding a lower frequency representation of an image (i.e. a few pixels per cycle) that would be reconstructed with something other than sincs (eg bilinear).

If you dont assume the footprint of a pixel is a sinc, then the idea that a fourier domain brickwall filter before downsampling could be ideal becomes silly. To me the two concepts are interchangeable.
I'm not talking about a Fourier filter 'brick wall' - that of course assumes reconstruction with sincs. Note, however, that such a filter is equivalent to
convolving the signal with a scaled sinc, i.e. a scaled sinc is the ideal filter for reconstruction with sincs.

No, if you a reconstructing with something else, you need to choose a different 'ideal' filter and, by that, I mean one that minimises the RMS error between the original signal and the "filtered and then reconstructed" result. For (bi)linear reconstruction that turns out to be something that looks like a linearly-interpolated sinc.
 
Simon F said:
I would think that there is a reasonable probability that certain runs of codes would re-occur and BWT might help to extract some of those patterns.

Hmmm I doubt it would add much to context based arithmetic coding. As I said before I dont think long range correlation is all that important in image coding, and context based arithmetic coding catches neighbouring repeating codes as well as BWT+RLE.

My dream VQ would use lapped coding, generalized trees, context based entropy coding and conditional entropy constrained training.

Conditional entropy constrained multistage VQ is already the best performing practical vector quantizer to my knowledge, because of the huge range of its codebook, I think adding a couple of stages of say 8ary trees followed by seperate multistage VQ for each final leaf could still improve that concept (it acts as a classifier for the input, assigning an individually trained multistage VQ to each).

About the fourier filter, sorry I thought you said it was ideal in another thread.
 
Back
Top