
www.Usenet.com
| <-- __Chronological__ --> | <-- __Thread__ --> |
"walala" > The non-invertible transform > introduces less distortion than that quantization... Entirely depends on just how badly you truncate stuff in the DCT/iDCT. I have no way of telling, but it was you who brought up that round off errors in your transform were significant in another thread. > It is not "simple" for me. Can you tell me how to make the coefficient > values more like Laplacian? As I said before, it isnt about making them laplacian ... you assume the distribution is laplacian, and fit it (using the variance). If you look at the paper "Blocking Artifact Detection and Reduction in Compressed Data" on page 880, at the left bottom they give a formula to determine the offset down from the center of the quantization range. The formula only needs the quantization step and the per coefficient variance. The variance is estimated by the variance of the center reconstructed quantized coefficients (that is all the information the decoder has). Concretely, say for coefficient (3,3) ... you take all the (3,3) coefficient magnitudes dequantized in the standard way and compute their variance, you feed that together with Q into formula 10. Then you subtract the result from all the (3,3) coefficient magnitudes. Alternative you can use the interpixel variance from the paper they mention, [40], which has the advantage that the offsets dont have to be uniform over the entire image (you could compute the variance for a single block and determine the per coefficient variances from that to compute the offsets) and it doesnt suffer from poor fitting due to low numbers of samples (for high frequencies there will be very few quantized coefficients >0). There are lots of papers written on this topic, search for "laplacian <and> dct" on ieeexplore for instance. This is a relatively easy way (computationally) to get a modest improvement in DCT coding, it wont do wonders though ... you will still need to apply additional deblocking. Marco
| <-- __Chronological__ --> | <-- __Thread__ --> |