Parallelizing an image compression toolbox
Download
1 / 26

Parallelizing an Image Compression Toolbox - PowerPoint PPT Presentation


  • 90 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Parallelizing an Image Compression Toolbox' - julie


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Parallelizing an image compression toolbox

Parallelizing an Image Compression Toolbox

MSE Project - Presentation 1

Hadassa Baker


Topics of discussion
Topics of Discussion

  • Introduction

  • Overview

  • Requirements

  • Methodology

  • Image Toolbox Description

  • Project Plan

  • Cost Estimation

  • SQA Plan


Introduction
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


Introduction1
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
Overview

  • Purpose

    • To explore the use of parallel programming techniques to speed up a computationally intensive image compression and decompression process


Overview1
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
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
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 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 cases1
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
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


Methodology1
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
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
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

Wavelet Transformation

Optimal Bit Allocation

Quantization

Entropy Encoding

Image Compression

  • RAW image file read

  • Four steps to the compression process:


Image compression toolbox1
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 toolbox3
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 toolbox4
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 toolbox5
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
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 plan1
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 plan2
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 plan3
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
SQA Plan

  • Tools

    • Microsoft C++ 6.0

    • Microsoft Visio

    • Microsoft Word

  • Deliverables

    • Vision Document

    • Project Plan Document

    • SQA Plan Document

    • Image Toolbox Description


Sqa plan1
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


ad