Wavelet Transform-Based Image Compression
The objective is to develop an image compression algorithm using the Discrete Wavelet Transform (DWT). The system will compress images by applying the wavelet transform, discarding insignificant coefficients, and reconstructing the compressed image using the inverse wavelet transform.
Image Processing
- Read and process the input image.
- Apply the DWT to each color channel (Red, Green, Blue) separately.
- Apply a threshold, setting values below this threshold to 0.
- Implement the inverse DWT.
- Save the reconstructed image.
Graphical Interface
- The graphical interface should allow users to load an image, apply the wavelet transform, and display the compressed image.
- Users should also be able to adjust the threshold interactively.
- The interface should display the original and compressed images side by side.
Running the Program
- The program can be run in different modes (sequential, parallel, distributed) by specifying a parameter.
- The user can specify the input image and compression level (threshold).
- The program must measure the runtime needed for compression and decompression.
- The implementation must automatically adapt to the hardware it is running on (CPU cores, memory, etc.).
Testing
All three versions (sequential, parallel, and distributed) must be tested. The parameters influencing runtime are the image size and compression level (threshold). The system should be tested using the following strategies:
Testing by Image Size: - Start with a small image size (e.g., 256x256) and progressively increase the size (512x512, 1024x1024, etc.). - Test each configuration at least three times, using the average runtime for comparison.
Testing by Compression Level: - Set the image size to a fixed value (e.g., 1024x1024). - For each new configuration, apply different compression thresholds (e.g., 1%, 5%, 10%). - Every configuration should be tested multiple times, with average results used for analysis.
Present the results with informative charts/figures, including both numeric and graphical representations, and explain them in detail.