170 likes | 182 Views
Parallelizing an Image Compression Toolbox. MSE Project Final Presentation Hadassa Baker. Topics of Discussion. Introduction Action Items Design Review Test Setting Test Results Project Evaluation Conclusion. Introduction. Objective
E N D
Parallelizing an Image Compression Toolbox MSE Project Final Presentation Hadassa Baker
Topics of Discussion • Introduction • Action Items • Design Review • Test Setting • Test Results • Project Evaluation • Conclusion
Introduction • Objective • To rewrite a sequential wavelet image compression program into a parallel program in an effort to improve execution speed • The Image compression toolbox • Console program • Compresses a RAW or a grayscale Tiff image file and writes out a compressed file • Decompresses a compressed file and writes out a RAW or grayscale Tiff image file
Introduction • Both the sequential program and the parallel program are written in C++ • The Zthread library is used for multithreading the parallel program
Action Items • Add LTL properties to the formal specification • Vertical transformation can start on a section before horizontal transformation in all sections is complete • [] ( q U r) • #define q (V[1] == 0) • #define r (H[1] == WIDTH)
Action Item • Add a discussion in the Test Plan document why the planned test is sufficient.
Design Review • The following four processes take place in the compression process • Wavelet Transformation • Optimal bit allocation • Quantization • Entropy encoding • File I/O and the entropy encoding processes are not parallelized
Test Setting • Test Environment • Linux shared memory multiprocessor machine • A quad PII-450 Linux machine located in the CIS department was used • Test Image files • Lena.raw (Width = 512, Height = 512) • 1920x1080.raw (Width = 1920, Height =1080)
Test Setting • Execution time was measured for compressing the test images • The same test was performed on the parallel and sequential programs
Test Results • Unexpected Results • The execution time for the sequential program was shorter than the execution time for the parallel program • As the number of threads/workers was increased in the parallel program the execution time became longer
Test Results • Test was repeated without the wavelet transformation process, which yielded the expected results. • In the wavelet transformation process data is shared between threads, which operation must be garded with mutex. That may have resulted in unexpected delays.
Project Evaluation • Lesson Learnt • Formal verification of the architecture design using a tool like spin is beneficial to help prevent implementation errors that are difficult to debug • If the goal is improving execution speed, avoid much data sharing between threads
Conclusion • The objective of improving execution speed using parallel programming has been achieved • The Zthread library makes multithreaded program easier to write in C++ • A great learning experience for me.