Hi,
When I used ADV212 for compression, I found that the image quality after 9/7 wavelet compression is very poor, so I want to consult: Does ADV212 have this characteristic (the compression effect is much worse than Kakadu software)? Or am I using the parameter configuration incorrectly? With ADV212, how can I further improve the compressed image quality when using 9/7 wavelet transform?
The specific description is as follows: For a 1024 * 1024 * 12bits image, use Kakadu software and ADV212 to evaluate the compression effect. Using 9/7 wavelet transform, the test results using Kakadu software are as follows:
Wavelet
Qstep
Rate(bpp)
Raw image size(KB)
Compressed image size(KB)
Compress ratio
Peak Signal to Noise Ratio
PSNR(dB)
9/7
0.0002
12
1536
990
1.55
85
6
998
1.54
73
3
676
2.27
56
2
479
3.21
48
1.6
378
4.06
45.9
1
242
6.35
41
The test found that when the compression parameter is set to 1.6bpp, the actual compression ratio is about 4, at this time PSNR = 45.9dB, and the compressed image quality meets the requirements.
Using 9/7 wavelet transform, test results using ADV212 are as follows:
Qfact
target size
Rcval(Byte)
256/256
40000(hex)
214
7.18
45.56
10000(hex)
The test found that the compression ratio does not change with the setting of the Rcval parameter. I understand that as described in the ADV212 JPEG2000 Programming Guide, the ADV212 cannot accurately control the offline of the target size after compression, provided that the image quality is guaranteed. But in reality, the image quality is severely lost.
ADV212 JPEG2000 Programming Guide
raw_image
compress_9x7 wavelet with Kakadu software
compress_9x7 wavelet with ADV212
Test metadata is attached.
image.zip
With ADV212, how can I further improve the compressed image quality when using 9/7 wavelet transform?
Hi Poornima,
Thank you for your reply.
Actually, I have devided the full image into 4 tiles,each tile size is 1024*256*12 bits, which is lower than 1.048 million samples per tile. On the other hand,…
Each tile size is 1024*256*12 bits, which means the image size is 1024*256, and image depth is 12bit per pixel. Thus, 1024x256x2 = 0.5 million samples < 1.048 million samples. Did you mean…
The data sheet has the maximum tile sizes.
For 9/7 wavelet it's 1.048 million samples per tile.
For example when 1024x768 is: 1024x768x2 = 1572864 samples which is already higher than that spec. Please refer here for expert suggestion -https://ez.analog.com/video/f/q-a/10551/adv212-maximum-encoding-resolution/29827#29827
Thanks,
Poornima
Actually, I have devided the full image into 4 tiles,each tile size is 1024*256*12 bits, which is lower than 1.048 million samples per tile. On the other hand, as i understand, sample number means pixel number for gray image. It seems that you define it as bytes?
The raw image before compression and the compressed j2c file has attached above, would you please analysis them further? I am still confusing why the compressed image quality with ADV212 when using 9/7 wavelet transform is so poor.
Watting for your reply.
Hanger
This tile size 1024*256*12 also cross the maximum tile size specified in datasheet.
Each tile size is 1024*256*12 bits, which means the image size is 1024*256, and image depth is 12bit per pixel. Thus, 1024x256x2 = 0.5 million samples < 1.048 million samples. Did you mean this tile size also cross the maximum tile size specified in datasheet?
Waitting for your reply.
1024*256*2 - This will not cross the maximum size specified in datasheet.
Please let me know,are you checking this compression performance with one of our evaluation board ?