Parallelizing an Image Compression Toolbox

Slides:



Advertisements
Similar presentations
Software Quality Assurance Plan
Advertisements

INTERNATIONAL CONFERENCE ON TELECOMMUNICATIONS, ICT '09. TAREK OUNI WALID AYEDI MOHAMED ABID NATIONAL ENGINEERING SCHOOL OF SFAX New Low Complexity.
1 Outline  Introduction to JEPG2000  Why another image compression technique  Features  Discrete Wavelet Transform  Wavelet transform  Wavelet implementation.
SWE 423: Multimedia Systems
H.264/AVC Baseline Profile Decoder Complexity Analysis Michael Horowitz, Anthony Joch, Faouzi Kossentini, and Antti Hallapuro IEEE TRANSACTIONS ON CIRCUITS.
JPEG.
Page 1 CS Department Parallel Design of JPEG2000 Image Compression Xiuzhen Huang CS Department UC Santa Barbara April 30th, 2003.
CMPT 365 Multimedia Systems
On Error Preserving Encryption Algorithms for Wireless Video Transmission Ali Saman Tosun and Wu-Chi Feng The Ohio State University Department of Computer.
Image Compression - JPEG. Video Compression MPEG –Audio compression Lossy / perceptually lossless / lossless 3 layers Models based on speech generation.
Software Research Image Compression Mohamed N. Ahmed, Ph.D.
Coding techniques for digital cinema Andreja Samčović University of Belgrade Faculty of Transport and Traffic Engineering.
What is Business Analysis Planning & Monitoring?
Fundamentals Rawesak Tanawongsuwan
Chapter 5 : IMAGE COMPRESSION – LOSSLESS COMPRESSION - Nur Hidayah Bte Jusoh (IT 01481) 2)Azmah Bte Abdullah Sani (IT 01494) 3)Dina Meliwana.
1 Image Compression. 2 GIF: Graphics Interchange Format Basic mode Dynamic mode A LZW method.
LECTURE Copyright  1998, Texas Instruments Incorporated All Rights Reserved Encoding of Waveforms Encoding of Waveforms to Compress Information.
Multi-agent Research Tool (MART) A proposal for MSE project Madhukar Kumar.
Real-Time HD Harmonic Inc. Real Time, Single Chip High Definition Video Encoder! December 22, 2004.
A performance evaluation approach openModeller: A Framework for species distribution Modelling.
JPEG. The JPEG Standard JPEG is an image compression standard which was accepted as an international standard in  Developed by the Joint Photographic.
JPEG CIS 658 Fall 2005.
Addressing Image Compression Techniques on current Internet Technologies By: Eduardo J. Moreira & Onyeka Ezenwoye CIS-6931 Term Paper.
CS Spring 2012 CS 414 – Multimedia Systems Design Lecture 9 – JPEG 2000 Compression (Part 4) Klara Nahrstedt Spring 2012.
Marwan Al-Namari 1 Digital Representations. Bits and Bytes Devices can only be in one of two states 0 or 1, yes or no, on or off, … Bit: a unit of data.
MSE Presentation 1 Lakshmikanth Ganti
COMP135/COMP535 Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 2 Lecture 2 – Digital Representations.
JPEG Image Compression Standard Introduction Lossless and Lossy Coding Schemes JPEG Standard Details Summary.
JPEG.
STATISTIC & INFORMATION THEORY (CSNB134) MODULE 11 COMPRESSION.
3-D WAVELET BASED VIDEO CODER By Nazia Assad Vyshali S.Kumar Supervisor Dr. Rajeev Srivastava.
Parallelizing an Image Compression Toolbox MSE Project Final Presentation Hadassa Baker.
COMPUTER SYSTEM A computer system is define as combination of components designed to process data and store files. A computer system consists of four.
Progressive transmission of spatial data Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Visual Basic.NET Comprehensive Concepts and Techniques Chapter 1 An Introduction to Visual Basic.NET and Program Design.
Introduction to Computer Security ©2004 Matt Bishop Information Security Principles Assistant Professor Dr. Sana’a Wafa Al-Sayegh 1 st Semester
Introduction to H.264 / AVC Video Coding Standard Multimedia Systems Sharif University of Technology November 2008.
Process and customizations
Chapter 33 Estimation for Software Projects
JPEG Compression What is JPEG? Motivation
CSI-447: Multimedia Systems
IMAGE COMPRESSION.
CS644 Advanced Topics in Networking
Data Compression.
Parallel Programming By J. H. Wang May 2, 2017.
System Design.
JPEG.
Data Compression.
An Introduction to Visual Basic .NET and Program Design
CMPT 365 Multimedia Systems
Computer Simulation of Networks
Overview What is Multimedia? Characteristics of multimedia
Objective of This Course
Software life cycle models
Programming Languages
UNIT IV.
What is Project Cost Management?
Chapter 1 Introduction.
Judith Molka-Danielsen, Oct. 02, 2000
Foundation of Video Coding Part II: Scalar and Vector Quantization
JPEG Still Image Data Compression Standard
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
COMP60621 Fundamentals of Parallel and Distributed Systems
Chapter 33 Estimation for Software Projects
Wide Area Workload Management Work Package DATAGRID project
Implementation of a De-blocking Filter and Optimization in PLX
Chapter 26 Estimation for Software Projects.
COMP60611 Fundamentals of Parallel and Distributed Systems
COMPUTER ORGANIZATION AND ARCHITECTURE
Presentation transcript:

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 The use of digital motion pictures is gaining much popularity in various industries, motion picture production, surveillance, museums, etc. Digital graphical images are used in creation of digital motion pictures. Digital image files are generally large and usually require compression to be used effectively. Image compression process is generally computationally intensive as huge amount of data must be processed. To process 1hr of high definition video:

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. Put notes about message passing

Performance Modeling Goal Performance models for: 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. The goal of performance modeling is to develop mathematical expressions that specify certain metrics as a function of problem size, number of processors, number of tasks, and other important characteristics. The models will be built based on an idealized multicomputer parallel architecture. Performance model will be prepared for execution time, and parallel scalability. Execution time of parallel program is defined as the time that elapses from when the first processor starts executing on the problem to when the last processor completes execution. Scalabilty analysis studies how algorithm performance varies with parameters such as problem size, processor count, and message startup cost. How effectively it can use an increased number of processors

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