chjmartin2, on Wed May 4, 2011 8:36 PM, said:
How would you go about playing back the sample? As an example, the Mattel Aquarius only has a speaker that can be on or off, so, we have to use PWM, or sample 1 bit and play back. How would you go about implementing your compression?
Quick answer : Encoding a complex digital sound and reducing it to a 1-bit signal is already a lossy compression, you don't need Haar wavelets except if you want to torture yourself trying to make the result making sense or really get compression after all.
I'm glad that at least someone here commented my message about the possible application of wavelet compressions with 8-bit systems.
Wavelet transformations are used these days as alternatives for lossy data compression. The most common usage is for pictures like the JPEG2000 format. The idea is to apply mathematics on your data in order to transform them into numbers showing what is obviously important to encode and what can be ignored depending on the level of details you want to keep for the final result.
If the original data is like noise, then a lossy compression will be either not efficient or makes unwanted visible or audible artefacts. But in a nice picture (jpeg) or music (mp3), the data sequence is mostly smooth with variations that follow a certain harmony having parts of pretty much the same colors or tones that makes the data compressible with wavelets.
In my paper (pdf file) I'm talking about the Haar wavelet because of its squared shape that makes it the best candidate for possible applications with 8-bit systems including digital sounds compression. However, it's not a no brainer solution, it may works for you or not depending on the possibilities of the system and how you deal with it.
In your case, if the speaker can be only muted or not (1 bit : 0 or 1), and so there is no volume variation possible to simulated a "smooth" wave, then a wavelet method of data compression will not work for you because even the Haar wavelet implies that there is at least 3 possible states (-1,0,1). And if you try to use wavelets to compress multiple 1 bit data as 8 bit data you'll get a result that will not fit want you expected. And considering that the data is already encoded as 1-bit only values, you'll either not know how to encode the transformed data in order to save space (compression) or getting a result that will be even less interesting to use (too much lossy compression makes no sense).