Image Processing A Study in Pixel Averaging Building a Resolution Pyramid With Parallel Computing Denise Runnels and Farnaz Zand.

Slides:



Advertisements
Similar presentations
3D Graphics Content Over OCP Martti Venell Sr. Verification Engineer Bitboys.
Advertisements

Garfield AP Computer Science
Lecture 19: Parallel Algorithms
Sorting Really Big Files Sorting Part 3. Using K Temporary Files Given  N records in file F  M records will fit into internal memory  Use K temp files,
Equality Join R X R.A=S.B S : : Relation R M PagesN Pages Relation S Pr records per page Ps records per page.
Optimal PRAM algorithms: Efficiency of concurrent writing “Computer science is no more about computers than astronomy is about telescopes.” Edsger Dijkstra.
Lecture 3: Parallel Algorithm Design
Master/Slave Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Render Cache John Tran CS851 - Interactive Ray Tracing February 5, 2003.
Distributed Indexed Outlier Detection Algorithm Status Update as of March 11, 2014.
Higher Computing: Unit 1: Topic 3 – Computer Performance St Andrew’s High School, Computing Department Higher Computing Topic 3 Computer Performance.
Chapter 4: Divide and Conquer Master Theorem, Mergesort, Quicksort, Binary Search, Binary Trees The Design and Analysis of Algorithms.
DIVIDE AND CONQUER APPROACH. General Method Works on the approach of dividing a given problem into smaller sub problems (ideally of same size).  Divide.
Chapter 7: Sorting Algorithms
Data Structures Data Structures Topic #13. Today’s Agenda Sorting Algorithms: Recursive –mergesort –quicksort As we learn about each sorting algorithm,
Reference: Message Passing Fundamentals.
Computer Graphics Hardware Acceleration for Embedded Level Systems Brian Murray
Message Passing Fundamentals Self Test. 1.A shared memory computer has access to: a)the memory of other nodes via a proprietary high- speed communications.
CS 104 Introduction to Computer Science and Graphics Problems
Page 1 CS Department Parallel Design of JPEG2000 Image Compression Xiuzhen Huang CS Department UC Santa Barbara April 30th, 2003.
Analysis of Algorithms CS 477/677
Selection Sort, Insertion Sort, Bubble, & Shellsort
Chapter 7 (Part 2) Sorting Algorithms Merge Sort.
Improved results for a memory allocation problem Rob van Stee University of Karlsruhe Germany Leah Epstein University of Haifa Israel WADS 2007 WAOA 2007.
Sort-Last Parallel Rendering for Viewing Extremely Large Data Sets on Tile Displays Paper by Kenneth Moreland, Brian Wylie, and Constantine Pavlakos Presented.
External Sorting Problem: Sorting data sets too large to fit into main memory. –Assume data are stored on disk drive. To sort, portions of the data must.
JPEG C OMPRESSION A LGORITHM I N CUDA Group Members: Pranit Patel Manisha Tatikonda Jeff Wong Jarek Marczewski Date: April 14, 2009.
Chapter 3 Memory Management: Virtual Memory
Interpreting the data: Parallel analysis with Sawzall LIN Wenbin 25 Mar 2014.
: Chapter 12: Image Compression 1 Montri Karnjanadecha ac.th/~montri Image Processing.
Translate the following message:
1 Chapter 1 Analysis Basics. 2 Chapter Outline What is analysis? What to count and consider Mathematical background Rates of growth Tournament method.
External Sorting Sort n records/elements that reside on a disk. Space needed by the n records is very large.  n is very large, and each record may be.
IT253: Computer Organization Lecture 3: Memory and Bit Operations Tonga Institute of Higher Education.
Chapter 4 Storage Management (Memory Management).
Conclusions and Future Considerations: Parallel processing of raster functions were 3-22 times faster than ArcGIS depending on file size. Also, processing.
Hardware. Make sure you have paper and pen to hand as you will need to take notes and write down answers and thoughts that you can refer to later on.
Real-time Graphics for VR Chapter 23. What is it about? In this part of the course we will look at how to render images given the constrains of VR: –we.
By: Lokman Chan Recursive Algorithm Recursion Definition: A function that is define in terms of itself. Goal: Reduce the solution to.
Parallel Algorithms & Distributed Computing Matt Stimmel Matt White.
Fundamentals of Algorithms MCS - 2 Lecture # 15. Bubble Sort.
Min Chen School of Computer Science and Engineering Seoul National University Data Structure: Chapter 2.
M. Jędrzejewski, K.Marasek, Warsaw ICCVG, Multimedia Chair Computation of room acoustics using programable video hardware Marcin Jędrzejewski.
ATmospheric, Meteorological, and Environmental Technologies RAMS Parallel Processing Techniques.
Algorithms IS 320 Spring 2015 Sorting. 2 The Sorting Problem Input: –A sequence of n numbers a 1, a 2,..., a n Output: –A permutation (reordering) a 1.
PARALLELIZATION OF ARTIFICIAL NEURAL NETWORKS Joe Bradish CS5802 Fall 2015.
Radix Sort and Hash-Join for Vector Computers Ripal Nathuji 6.893: Advanced VLSI Computer Architecture 10/12/00.
Memory Hierarchy: Terminology Hit: data appears in some block in the upper level (example: Block X)  Hit Rate : the fraction of memory access found in.
ArrayList is a class that implements the List interface. The List interface is a blueprint for its “implementor” classes. There is another implementor.
CSE554Contouring IISlide 1 CSE 554 Lecture 3: Contouring II Fall 2011.
Shell Sort - an improvement on the Insertion Sort Review insertion sort: when most efficient? when almost in order. (can be close to O(n)) when least efficient?
Chapter 4, Part II Sorting Algorithms. 2 Heap Details A heap is a tree structure where for each subtree the value stored at the root is larger than all.
Parallel Computing Presented by Justin Reschke
CMPT 238 Data Structures More on Sorting: Merge Sort and Quicksort.
Ch. 4 Memory Mangement Parkinson’s law: “Programs expand to fill the memory available to hold them.”
Filters– Chapter 6. Filter Difference between a Filter and a Point Operation is that a Filter utilizes a neighborhood of pixels from the input image to.
Image Fusion In Real-time, on a PC. Goals Interactive display of volume data in 3D –Allow more than one data set –Allow fusion of different modalities.
Memory management The main purpose of a computer system is to execute programs. These programs, together with the data they access, must be in main memory.
Accelerating K-Means Clustering with Parallel Implementations and GPU Computing Janki Bhimani Miriam Leeser Ningfang Mi
Memory Management.
External Sorting Sort n records/elements that reside on a disk.
Sorting by Tammy Bailey
Economics, Administration & Information system
Mipmapped High Resolution Video for Immersive Virtual 3D Environments
IMAGE MOSAICING MALNAD COLLEGE OF ENGINEERING
Database Management Systems (CS 564)
Chapter 8: Memory management
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
Chapter 12 Pipelining and RISC
CENG 351 Data Management and File Structures
Presentation transcript:

Image Processing A Study in Pixel Averaging Building a Resolution Pyramid With Parallel Computing Denise Runnels and Farnaz Zand

What is Image Processing? Image processing generally involves three steps: Input an Image Manipulate the image in some way. Output the result.

Original Image The master node divides the image into tiles of pixel sets Each slave node receives one tile, a 2D array (ex. 4X4)

Processed Image Each slave node returns an averaged tile, a 2D array (ex. 2X2) The master consolidates into one image now smaller than the original

Resolution Pyramid A resolution pyramid is a set of files that contain an image with decreasing resolution. One file contains a tile from the original image with the best resolution; another contains a smaller tile that has been generated by averaging the pixels of the first file. The smaller tile uses less memory but it has a lower resolution.

The Problem: Why a Pyramid? Generate real-time immersive applications, such as an application that allows the viewer to ‘fly through’ a landscape. For the user to get real time results the changing scenery must be rendered very fast. A problem is encountered when the full scene will not fit into main memory.

The Solution: How a Pyramid Works When a viewer is focusing on a certain point in a scene other points in the distance can be rendered at a lower resolution. In this way we can hold several tiles in memory with varying resolutions As the viewer changes focal points new tiles can be loaded into memory to accommodate the different views.

Things That Make You Go HMMM Number of Processors Too few Too many Size of Tiles What scalar value should be used How much main memory do we have How much disk space do we have

Constraints & Limitations Original image must have dimensions that are a power of two Graphics Hardware Constraint Number of processors must be an even power of two OR Original image must be square Software Constraint Prevents “left over edges”, simplifies code

Master’s Responsibilities Read in Original.tga file Send Image to Slave Processors Vs. send tile to slave: which is faster? Each slave sorting out one tile or the master sorting out N tiles? Receive Result from Slave Processors Consolidate Results Generate a Result.tga file

Slave’s Responsibilities Receive Image from Master Sort out tile into tile sized array Begin Loop Average tiles based on scalar Generate.tga file with Proper Name Base name on corner and scalar values Send result tile back to Master Reduce scalar End Loop

Pixel Averaging Algorithm Partition tile into pixel sets Of Size scalar X scalar Sum the values in these sets Divide the Sums by scalar 2 Store averaged values in Resultant Array

Algorithm in Action 4 Pixels per Tile 4 Tiles in Original From Master 1 Pixel per Tile 4 Tiles Returned Resultant Tile

Run the Program With three different sized images A varying number of processors For timing comparisons Scaled down to smallest discernable resolution For image quality comparisons

Time Comparison Different Number of Processors Are smaller images processed more quickly with fewer processors Are larger images processed more quickly with more processors

Quality Comparison When is the quality compromised Averaging with the pixel set produced by the smallest scalar value (2), is quality already compromised How small is too small Averaging with the pixel set produced by a larger scalar value, what is that value

Observations Averaged 2 X 2 set of pixels Image quality is affected by even the smallest scalar value

Observations continued: Original 1024 X X 512 scalar = X 256 Scalar = 4  The largest scalar value that produced a discernible image is 4.  With a scalar of 8 the image becomes indiscernible

Results Time comparison results showed 5 processors produce the most efficient results 17 processors produce the least efficient results 1 processor is faster than 17 but slower than 5

Original Image Size 256 X 256

Original Image Size 512 X 512

Original Image Size 1024 X 1024

Conclusion Multiple processors can increase the speed of image processing There is a threshold number of processors, after which efficiency decreases due to message passing

Follow Up Implement message passing such that the master sorts out all of the slave tile pieces and delivers a smaller message to each slave Compare times master sorting all tiles vs. slave sorting one tile each In conjunction with smaller message sizes