Wavelet Based Compression Question
3 次查看(过去 30 天)
显示 更早的评论
The following link uses "wcompress" function for wavelet-based compression:
I tried the following commands, which are already an example in the previous link
[cr,bpp] = wcompress('c',X,'mask.wtc','spiht','maxloop',12);
Xc = wcompress('u','mask.wtc');
whos X
whos Xc
The results are:
Name Size Bytes Class
X 256x256 524288 double
Name Size Bytes Class
Xc 256x256 524288 double
How the two images X(original) and Xc(compressed) have the same number of bytes?
Thanks
0 个评论
采纳的回答
Walter Roberson
2015-9-17
Xc is not the compressed image, the compressed image is stored in the file you named mask.wtc . Xc is the decompressed version of mask.wtc . The 'u' as the first parameter of wcompress() means "uncompress".
19 个评论
Walter Roberson
2015-10-6
Suppose you need 20 boards to build a house, and suppose you buy 50 boards "just in case" something goes wrong. Now suppose you accidentally break 15 of those 50 boards: no problem, that's why you bought extra, you still have 35 left and only need 20. Now suppose you accidentally break 20 of the 50: again, no problem. Suppose you accidentally break 25: again, you still have 25 and that's enough. Accidentally break 30 of the 50 boards? Wow, that's a lot of accidental damage (maybe a Safe fell out of window on to them!) but you still have the 20 you need. But if you accidentally broke 31 of the 50, you only have 19 whole boards left.
What you are demanding is that I tell you some way to build the house anyhow with only 19 boards.
But wait, maybe 40 of the 50 boards broke! So you think I should be able to tell you how to build the 20-board house with only 10 boards.
Maybe all of the 50 boards broke, so you think I should be able to tell you how to build the 20-board house with no boards.
"A team of researchers from MIT, Caltech, Harvard, and other universities in Europe, have devised a way of boosting the performance of wireless networks by up to 10 times [...]
In wired networks, packet loss is incredibly rare, but in wireless networks it’s one of the biggest issues affecting throughput. According to Technology Review, MIT’s WiFi networks generally lose 2% of packets — while on a fast train, packet loss is nearer 5%.
A single dropped packet causes a spike in latency — the receiver has to communicate to the sender that the packet was missing, and can’t do anything until a replacement packet has been received. If there is significant packet loss, this results in a lot of latency, a lot of re-sent data, and ultimately a low-bandwidth connection. This is why wireless adapters (WiFi, LTE, Bluetooth, etc.) negotiate the max speed of the link, as some environments (fast trains, houses with thick walls) are simply too lossy to sustain high throughput."
Thus even MIT researchers think that pocket loss (which can arise due to too much noise to recover a packet) is a major issue that generally requires retransmission. The technique described in the article does not sound like anything new: it is an obvious derivative of the idea of creating multiple "shares" of a "secret", with at least t out of k of the shares needed to reconstruct the "secret"; see https://en.wikipedia.org/wiki/Secret_sharing. The idea for the MIT technique not being to hide the data, but rather the point that if you have a block of data you can construct k packets out of which you only need to receive n in order to reconstruct the data. Just another error correcting code applied across multiple packets.
If you ever get seriously interested in compression and error coding, I highly recommend this book by Bell, Cleary, and Witten. I seem to find copies available for download, but I would have doubts about those downloads being authorized and I would be careful about the possibility of malicious payloads on unauthorized copies.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Working with Images 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!