Difference between revisions of "Haar wavelet (2x2)"
From ScienceZero
Line 3: | Line 3: | ||
The two-dimensional 2 by 2 Haar wavelet transforms data into 4 bands where ''b0'' contains the DC level of each block while ''b1-b3'' contains higher frequency components. It is useful for both data analysis and compression. It is a very computationally efficient transformation. | The two-dimensional 2 by 2 Haar wavelet transforms data into 4 bands where ''b0'' contains the DC level of each block while ''b1-b3'' contains higher frequency components. It is useful for both data analysis and compression. It is a very computationally efficient transformation. | ||
− | By recursively applying the transformation on b0 until b0 reaches a size of 1 we get frequency information about different areas in the picture at different scales. After the transformations most values will have a low value (assuming that the input data is a normal photograph), by using quantization and setting very low values to zero the data will compress very well using fairly simple compression algorithms like Huffman. | + | By recursively applying the transformation on b0 until b0 reaches a size of 1 we get frequency information about different areas in the picture at different scales. After the transformations most values will have a low value (assuming that the input data is a normal photograph), by using quantization and setting very low values to zero the data will compress very well using fairly simple compression algorithms like [[Huffman coding]]. |
Input block of 2x2 pixels | Input block of 2x2 pixels |
Revision as of 07:26, 25 January 2011
The two-dimensional 2 by 2 Haar wavelet transforms data into 4 bands where b0 contains the DC level of each block while b1-b3 contains higher frequency components. It is useful for both data analysis and compression. It is a very computationally efficient transformation.
By recursively applying the transformation on b0 until b0 reaches a size of 1 we get frequency information about different areas in the picture at different scales. After the transformations most values will have a low value (assuming that the input data is a normal photograph), by using quantization and setting very low values to zero the data will compress very well using fairly simple compression algorithms like Huffman coding.
Input block of 2x2 pixels p0 p1 p2 p3
Forward 2D Haar transformation b0 = (p0 + p1) + (p2 + p3) 'DC level b1 = (p0 - p1) + (p2 - p3) 'Horizontal difference b2 = (p0 + p1) - (p2 + p3) 'Vertical difference b3 = (p0 - p1) - (p2 - p3) 'Horizontal and vertical difference
Reverse 2D Haar transformation p0 = ((b0 + b1) + (b2 + b3)) / 4 p1 = ((b0 - b1) + (b2 - b3)) / 4 p2 = ((b0 + b1) - (b2 + b3)) / 4 p3 = ((b0 - b1) - (b2 - b3)) / 4