Parallelizing an Image Compression Toolbox
MSE Project - Presentation 1
Hadassa Baker
Topics of Discussion
Introduction Overview Requirements Methodology Image Toolbox Description Project Plan Cost Estimation SQA Plan
Introduction
The use of digital motion pictures is gaining much popularity in various industries, such as film production companies, museums, etc.
Digital image files are used to create digital motion pictures.
Digital image files are generally large and require compression to be used effectively.
Image compression processes are generally computationally intensive
Introduction
To process 1hr of high definition video: 1 frame = 1920 pixels wide, 1080 pixels high, 3
components/pixel (RGB) = 6220.8 KB In general 24 frames/second Total number of frames per hour = 24 fr/s * 60
s/min * 60 min/hr = 86400 Total data size = 8640*6220800 =
537477120000 B = 537477 MB/hr Need to speed up compression process
Overview
Purpose To explore the use of parallel programming
techniques to speed up a computationally intensive image compression and decompression process
Overview
Goal To rewrite a sequential image compression
toolbox source code into a parallel program in an effort to speed up the software
Analyze factors that affect execution speed – such as number of processors
Look for general trends
Requirement Specification
The image toolbox is a sequential command-line program that takes a RAW image file as input, encodes it, and outputs a compressed encoded file .
On the reverse, the image compression toolbox takes an encoded file as input, decodes it, and outputs a RAW image file
Main Requirements
The encoding and decoding processes of the image toolbox will be rewritten into a parallel program
The RAW image reader and writer will be replaced with a Tiff image reader and writer
Assessment will be made on the usefulness of parallel programming in speeding up the image compression toolbox
Use Cases
Use Case 1 : Compressing an Image Description – The user wants to compress a tiff file. Scenario – The user runs the image compression
console program to compress a tiff image. The user provides the name and path of a tiff image file as program input. The user provides a name and path for the compressed output file. The “cmp” extension is used for the compressed file.
Specific Requirements- Correctness – The compressed output file produced by the
parallel program should be identical to the compressed output file produced with the sequential program.
Use Cases
Use Case 2 : Decompressing an Image Description – The user wants to decompress a
compressed file into a tiff image file. Scenario – The user runs the image compression console
program to decompress a cmp file and write it out to a tiff file. The user provides the name and path of a compressed file as program input. The user also provides a name and path for the tiff file.
Specific Requirements- Correctness – The output tiff file produced by the parallel program
should be exactly the same as the output tiff file produced with the sequential program.
Methodology
Described in “Designing and Building Parallel Programs”, by Ian Foster
Structures the design process as four distinct stages :partitioning, communication, agglomeration, and mapping. Partitioning– the computation that should be
operated on the data and the data to be operated on are decomposed into smaller takes
Methodology
Communication – communication structures between tasks are defined for proper execution of program
Agglomeration – the outcome of the partitioning and the communication stages are evaluated
Mapping – each task is mapped to a processor in such a way that communication between tasks is decreased and execution is speeded up.
Performance Modeling
Goal Develop mathematical expressions that specify
certain metrics as a function of problem size, number of processors, number of tasks, and other important characteristics.
Performance models for: Execution time –the time that elapses from when the first
processor starts executing on the problem to when the last processor completes execution.
Parallel scalability - how algorithm performance varies with parameters such as problem size, processor count, number of tasks, and message startup cost.
Image Compression Toolbox
A wavelet based image compression tool, written by Satish Kumar.
The source code was obtained from the internet. The program is written in C++ Permission is granted by the author to use the
software for research purposes. Contains a collection of functions that are
commonly used in wavelet based image compression techniques.
Image Compression
RAW image file read Four steps to the compression process:
Wavelet Transformation
Optimal Bit Allocation
Quantization Entropy Encoding
Image Compression Toolbox
Wavelet transformation – Low frequency components of the data are separated
from high frequency components of the data. On an image plane the low frequency components
represent the base of the image, where small variation between neighboring coefficient exists. High frequency components represent areas where sharper differences between components exist.
High pass and low pass filters are used on the image data first horizontally and then vertically to divide the frequency into two.
Image Compression Toolbox
Image Compression Toolbox
Optimal Bit Allocation Each class is allocated a portion of the total
bit budget, such that the compressed image has the minimum possible distortion.
The aim of bit allocation using rate-distortion techniques is meeting the requirement of overflow prevention while maximizing the image/video quality.
Image Compression Toolbox
Quantization The division of a quantity into discrete number
of small parts, that are integral multiples of a common quantity.
A scalar and uniform quantizer is used. Uniform where the levels are spaced equally, and scalar where each data is processed individually.
Image Compression Toolbox
Entropy Encoding Arithmetic encoding method used. Arithmetic coding takes a stream of input
symbols and replaces it with a single number less than 1 and greater than 0.
The arithmetic coding process requires each input symbol to be encoded sequentially.
Project Plan
Initial Phase Develop overall requirements Documentation
Vision document Project Plan Image Toolbox Description, SQA Plan
Milestone - Presentation 1 - Get approval from committee and/or incorporate changes and suggestions
Project Plan
Architecture Phase Design architecture of the parallel program for
the image toolbox Documentation
Algorithm Design Parallel program design analysis Refine Vision document, Project Plan and SQA Plan Test Plan
Milestone - Presentation 2 - Get approval from committee and/or incorporate changes and suggestions.
Project Plan
Implementation phase Implement parallel program Perform testing Documentation
Well documented source code Test report Test evaluation report
Milestone - Presentation 3 - Get approval from committee and/or incorporate changes and suggestions.
Project Plan
Cost Estimation COCOMO - Organic model – uncomplicated
Person Months = 2.4 * KDSI^1.05 KDSI – Project size in thousands of delivered source
instructions. Function point analysis best works with business type
applications. Therefore, the size of the image compression toolbox is used as an estimate
Approximately 1300 lines of source code in the image compression toolkit.
Person month = 3.2 DURATION = 2.5 * EFFORT^0.38 = 3.5 month
SQA Plan
Tools Microsoft C++ 6.0 Microsoft Visio Microsoft Word
Deliverables Vision Document Project Plan Document SQA Plan Document Image Toolbox Description
SQA Plan
Deliverables (cont) Architecture Design Document Test Plan Document Image Toolbox sequential source code. Image Toolbox parallel source code. Test Report Document Test Evaluation Report Document