Chapter 2 Image Processing I. Image Fundamentals

Total Page:16

File Type:pdf, Size:1020Kb

Chapter 2 Image Processing I. Image Fundamentals Chapter 2 Image Processing Preliminary – 24 Oct 2013 A picture is a fact. – Ludwig Wittgenstein The soul never thinks without a picture. – Aristotle We are visual organisms who depend heavily on our ability to see the world around us. Our brains have evolved to be superb image processing engines. From two simultaneous two- dimensional images, one from each eye, we automatically extract three dimensional spatial information. We can do complex pattern analysis effortlessly such as counting the number of cars on the street in front of a house or identifying the quarters in a handfull of change. In modern science, data is often in the form of pictures or images. From these, the researcher must extract quantitative information. The tasks which we do almost effortlessly can be very challenging for software. However, once the software is able to accomplish a challenge, the software can repeat it many thousands of times when a human might lose interest after only a few. There are several image processing packages available for Python. We will use the Python Image Library (PIL) and numpy’s multidimensional image processing package (ndimage). I. Image Fundamentals An image is a two dimensional array where every pixel corresponds to a single (x, y) or (column, row) point in the picture. A pixel may take several forms. Some images have only two possible values for each pixel, on or off. Such an image is binary or black and white. Some images may have a range of gray values ranging from all black to all white and denoted by an integer. Cameras often generate either 8-bit, 10-bit, or 12-bit grayscale images. In an 8-bit image, pixels range from 0 (all black) to 255 (all white) with a smooth range of gray in between. Color cameras produce color images. The most common color format is known as RGB. It uses 24 bits per pixels. Of these 24, each color (red, green, blue) is represented by an 8-bit grayscale with 8 bits corresponding to reds, 8 bits corresponding to greens, and 8 bits corresponding to blues. The result is more than 16 million different colors.1 The display of an image within a computer requires some explanation. Modern monitors use combinations of red, green, and blue to determine the color of each pixel and most monitors are designed to use 24 bit RGB representations. Consequently, an RGB image contains all the information required to specify the color of every pixel. However, a grayscale image contains only a single integer number (usually 8 – 16 bits) for every pixel. The computer must map each number onto a specific RGB value for the monitor to display. This is done using a colormap and many colormaps are possible. The author most commonly uses gray() and spectral() which are a grayscale color map ranging from black to white and a color spectrum ranging from violet to red. 1You can use python to determine the actual range which is power(2,24) different colors. Figure 1: Available matplotlib colormaps (from matplotlib.com/gallery). (a) (b) (c) Figure 2: (a) RGB color. (b) grayscale. (c) grayscale image thresholded to make all pixels less than 150 become 0 (black) and all greater then 150 become 255 (white) resulting in a black and white or binary image. II. Reading and Writing Images2 In [1]: from scipy import misc, ndimage In [2]: import Image In [3]: image=Image.open("4.1.08.tiff") In [4]: image1=misc.fromimage(image,flatten=0) In [5]: imshow(image1) The first line loads the multidimensional image processing package, ndimage. The second loads the Python Image Library (PIL). PIL is used to read and write specific graphics file formats. Once in python, the images are treated as arrays; because, ndimage and numpy are exceptionally good at manipulating arrays. Line 3 opens the image using the PIL. Note that PIL interprets the filename and de- termines the type of file. It is able to work with a wide variety of file formats including GIF, JPEG, PNG, TIFF, and BMP. Line 4 reads the PIL image into a numpy array (called image1). If flatten is set to true (1), then the image is converted to grayscale. Finally, line 5 displays the image1 array in a figure window. If the image is full-color, then it appears with the correct colors. If it is grayscale, then it is rendered using the current color map. Note that row 0 and column 0 is at the top left of the image. Numpy provides a convenient routine for writing images to files. In [6]: misc.imsave("new.png",image1) In [7]: misc.imsave("new.jpg",image1) 2An excellent source of test images is the University of Southern California Signal and Image Processing Institute Image Database (USC-SIPI). The images are all in the TIFF format in either 8 bit grayscale or 24 bit color. They are broadly separated into four types: textures, high altitude aerial photos, miscellaneous, and image sequences. Line 6 writes image1 as a png file while line 7 writes it as a jpg file. The image formats understood by imsave depend on the backend being used, but most backends support png, pdf, ps, eps, and svg. III. Simple Image Processing III.A. Region of Interest Very often, only a portion of an image is of interest. We can use the array properties of numpy to select or clip a subregion of a larger image on which to operate. This subregion is referred to as the region of interest or ROI. In [8]: image1_ROI=image1[TOP:BOTTOM,LEFT:RIGHT].copy() where LEFT, RIGHT, TOP, and BOTTOM are the integer values of the positions in the array that are the edges of the ROI. III.B. Addition and Multiplication of Images Probably the single most powerful technique in image processing is background subtrac- tion. In background subtraction, a background image is subtracted from a data image. The background image has exactly the same view but without whatever you are taking data on. Properly done, this zeros all of the image except exactly what you are interested in. Because of small amounts of noise, it is generally a good idea to take the absolute value of the difference to keep any pixels from going negative. NewImage = abs(Image − Background) (1) One way to quantify an image is to produce a histogram of the image’s pixel values using histogram(input image, min, max, bins). In [9]: ndimage.measurements.histogram(image1, 0, 255, 50) Here, image1 is the image array and the histogram will be 50 bins between pixel values min and max. The routine returns an array of bin counts. Since the image is just an array, one can perform arithmetic on it. In [10]: low=image1.min In [11]: high=image1.max In [12]: image2=image1.copy()-low In [13]: image2=(int)image1.copy()*(255-0)/(high-low) If the histogram of image1 covers the range of pixel values from low to high, then the above will stretch the histogram of the image to fully use the entire range 0 to 255. Warning: it is important that no pixel value be changed to exceed the allowed pixel range. III.C. Thresholding Often a simple grayscale is the easiest image type to process. 8 bit grayscale corresponds to 8 bits per pixel where 0 is black and 255 is white3. We can threshold the image by setting all pixels above a certain value to a single value. Similarly, we could threshold the image by setting all pixels below a certain value to a particular value. This is easy to do using the array operations of numpy. In [14]: image2=image1.copy() In [15]: image2[image1<120]=0 In [16]: image2[image1>=120]=255 In [17]: image2.sum()/image2.size In [18]: image2.mean() Here line 14 makes a copy of the image array. (Remember that numpy tends to operate on a single copy of an array to save time and memory unless you explicitely tell it otherwise.) Line 15 sets every pixel with a value less than 120 in the new image array to 0 (black), and line 16 sets every pixel with a value greater than or equal to 120 equal to 255 (white). The new image is now binary or black and white. Finally, lines 17 and 18 print the mean pixel value in the array image2. These are standard numpy array functions. IV. Filtering by Convolution A convolution is a method of multiplying a large matrix (the image) with a small one (the kernel. As shown in the following figure, if the kernel is a 3x3 matrix and the image is much larger (MxN), the kernel is aligned above a pixel or cell in the original image matrix and cell values are multiplied together cell by cell and the sum of the products becomes the value of the convolution at the central cell or pixel. Then the kernel is moved one place farther along and the multiplication is repeated cell by cell until this has been done at every cell where it can be done. (Edges are awkward and edge effects are to be expected very near them.) m=+(M−1)/2 n=+(M−1)/2 − − Iconvolution(m, n) = Σm=−(M−1)/2Σn=−(M−1)/2h(m, n)I(i m, j n) (2) where we have assumed the most common form of the kernel, namely a square kernel of MxM where M is odd. Ndimage contains a multidimensional convolution function con- volve(image,kernel,output=None,mode=’constant’) where kernel is the name of the kernel matrix, output allows the user to pass in an array to store the filter output.
Recommended publications
  • Fi-4750C Image Scanner Operator's Guide Fi-4750C Image Scanner Operator's Guide Revisions, Disclaimers
    C150-E182-01EN fi-4750C Image Scanner Operator's Guide fi-4750C Image Scanner Operator's Guide Revisions, Disclaimers Edition Date published Revised contents 01 September, 2000 First edition Specification No. C150-E182-01EN FCC declaration: This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to Part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates, uses, and can radiate radio frequency energy and, if not installed and used in accordance with the instruction manual, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one or more of the following measures: • Reorient or relocate the receiving antenna. • Increase the separation between the equipment and receiver. • Connect the equipment into an outlet on a circuit different from that to which the receiver is connected. • Consult the dealer or an experienced radio/TV technician for help. FCC warning: Changes or modifications not expressly approved by the party responsible for compliance could void the user's authority to operate the equipment. NOTICE • The use of a non-shielded interface cable with the referenced device is prohibited. The length of the parallel interface cable must be 3 meters (10 feet) or less. The length of the serial interface cable must be 15 meters (50 feet) or less.
    [Show full text]
  • Binary Image Compression Algorithms for FPGA Implementation Fahad Lateef, Najeem Lawal, Muhammad Imran
    International Journal of Scientific & Engineering Research, Volume 7, Issue 3, March-2016 331 ISSN 2229-5518 Binary Image Compression Algorithms for FPGA Implementation Fahad Lateef, Najeem Lawal, Muhammad Imran Abstract — In this paper, we presents results concerning binary image compression algorithms for FPGA implementation. Digital images are found in many places and in many application areas and they display a great deal of variety including remote sensing, computer sciences, telecommunication systems, machine vision systems, medical sciences, astronomy, internet browsing and so on. The major obstacle for many of these applications is the extensive amount of data required representing images and also the transmission cost for these digital images. Several image compression algorithms have been developed that perform compression in different ways depending on the purpose of the application. Some compression algorithms are lossless (having same information as original image), and some are lossy (loss information when compressed). Some of the image compression algorithms are designed for particular kinds of images and will thus not be as satisfactory for other kinds of images. In this project, a study and investigation has been conducted regarding how different image compression algorithms work on different set of images (especially binary images). Comparisons were made and they were rated on the bases of compression time, compression ratio and compression rate. The FPGA workflow of the best chosen compression standard has also been presented. These results should assist in choosing the proper compression technique using binary images. Index Terms—Binary Image Compression, CCITT, FPGA, JBIG2, Lempel-Ziv-Welch, PackBits, TIFF, Zip-Deflate. —————————— —————————— 1 INTRODUCTION OMPUTER usage for a variety of tasks has increased im- the most used image compression algorithms on a set of bina- C mensely during the last two decades.
    [Show full text]
  • Chapter 3 Image Data Representations
    Chapter 3 Image Data Representations 1 IT342 Fundamentals of Multimedia, Chapter 3 Outline • Image data types: • Binary image (1-bit image) • Gray-level image (8-bit image) • Color image (8-bit and 24-bit images) • Image file formats: • GIF, JPEG, PNG, TIFF, EXIF 2 IT342 Fundamentals of Multimedia, Chapter 3 Graphics and Image Data Types • The number of file formats used in multimedia continues to proliferate. For example, Table 3.1 shows a list of some file formats used in the popular product Macromedia Director. Table 3.1: Macromedia Director File Formats File Import File Export Native Image Palette Sound Video Anim. Image Video .BMP, .DIB, .PAL .AIFF .AVI .DIR .BMP .AVI .DIR .GIF, .JPG, .ACT .AU .MOV .FLA .MOV .DXR .PICT, .PNG, .MP3 .FLC .EXE .PNT, .PSD, .WAV .FLI .TGA, .TIFF, .GIF .WMF .PPT 3 IT342 Fundamentals of Multimedia, Chapter 3 1-bit Image - binary image • Each pixel is stored as a single bit (0 or 1), so also referred to as binary image. • Such an image is also called a 1-bit monochrome image since it contains no color. It is satisfactory for pictures containing only simple graphics and text. • A 640X480 monochrome image requires 38.4 kilobytes of storage (= 640x480 / (8x1000)). 4 IT342 Fundamentals of Multimedia, Chapter 3 8-bit Gray-level Images • Each pixel has a gray-value between 0 and 255. Each pixel is represented by a single byte; e.g., a dark pixel might have a value of 10, and a bright one might be 230. • Bitmap: The two-dimensional array of pixel values that represents the graphics/image data.
    [Show full text]
  • Implementation of RGB and Grayscale Images in Plant Leaves Disease Detection – Comparative Study
    ISSN (Print) : 0974-6846 Indian Journal of Science and Technology, Vol 9(6), DOI: 10.17485/ijst/2016/v9i6/77739, February 2016 ISSN (Online) : 0974-5645 Implementation of RGB and Grayscale Images in Plant Leaves Disease Detection – Comparative Study K. Padmavathi1* and K. Thangadurai2 1Research and Development Centre, Bharathiar University, Coimbatore - 641046, Tamil Nadu, India; [email protected] 2PG and Research Department of Computer Science, Government Arts College (Autonomous), Karur - 639007, Tamil Nadu, India; [email protected] Abstract Background/Objectives: Digital image processing is used various fields for analyzing differentMethods/Statistical applications such as Analysis: medical sciences, biological sciences. Various image types have been used to detect plant diseases. This work is analyzed and compared two types of images such as Grayscale, RGBResults/Finding: images and the comparative result is given. We examined and analyzed the Grayscale and RGB images using image techniques such as pre processing, segmentation, clustering for detecting leaves diseases, In detecting the infected leaves, color becomes an level.important Conclusion: feature to identify the disease intensity. We have considered Grayscale and RGB images and used median filter for image enhancement and segmentation for extraction of the diseased portion which are used to identify the disease RGB image has given better clarity and noise free image which is suitable for infected leaf detection than GrayscaleKeywords: image. Comparison, Grayscale Images, Image Processing, Plant Leaves Disease Detection, RGB Images, Segmentation 1. Introduction 2. Grayscale Image: Grayscale image is a monochrome image or one-color image. It contains brightness Images are the most important data for analysation of information only and no color information.
    [Show full text]
  • Ffmpeg Filters Documentation Table of Contents
    FFmpeg Filters Documentation Table of Contents 1 Description 2 Filtering Introduction 3 graph2dot 4 Filtergraph description 4.1 Filtergraph syntax 4.2 Notes on filtergraph escaping 5 Timeline editing 6 Audio Filters 6.1 adelay 6.1.1 Examples 6.2 aecho 6.2.1 Examples 6.3 aeval 6.3.1 Examples 6.4 afade 6.4.1 Examples 6.5 aformat 6.6 allpass 6.7 amerge 6.7.1 Examples 6.8 amix 6.9 anull 6.10 apad 6.10.1 Examples 6.11 aphaser 6.12 aresample 6.12.1 Examples 6.13 asetnsamples 6.14 asetrate 6.15 ashowinfo 6.16 astats 6.17 astreamsync 6.17.1 Examples 6.18 asyncts 6.19 atempo 6.19.1 Examples 6.20 atrim 6.21 bandpass 6.22 bandreject 6.23 bass 6.24 biquad 6.25 bs2b 6.26 channelmap 6.27 channelsplit 6.28 chorus 6.28.1 Examples 6.29 compand 6.29.1 Examples 6.30 dcshift 6.31 earwax 6.32 equalizer 6.32.1 Examples 6.33 flanger 6.34 highpass 6.35 join 6.36 ladspa 6.36.1 Examples 6.36.2 Commands 6.37 lowpass 6.38 pan 6.38.1 Mixing examples 6.38.2 Remapping examples 6.39 replaygain 6.40 resample 6.41 silencedetect 6.41.1 Examples 6.42 silenceremove 6.42.1 Examples 6.43 treble 6.44 volume 6.44.1 Commands 6.44.2 Examples 6.45 volumedetect 6.45.1 Examples 7 Audio Sources 7.1 abuffer 7.1.1 Examples 7.2 aevalsrc 7.2.1 Examples 7.3 anullsrc 7.3.1 Examples 7.4 flite 7.4.1 Examples 7.5 sine 7.5.1 Examples 8 Audio Sinks 8.1 abuffersink 8.2 anullsink 9 Video Filters 9.1 alphaextract 9.2 alphamerge 9.3 ass 9.4 bbox 9.5 blackdetect 9.6 blackframe 9.7 blend, tblend 9.7.1 Examples 9.8 boxblur 9.8.1 Examples 9.9 codecview 9.9.1 Examples 9.10 colorbalance 9.10.1 Examples
    [Show full text]
  • Tagged Image File Format (TIFF)
    Tagged Image File Format (TIFF) Tagged Image File Format (TIFF) is a standard file format that is largely used in the publishing and printing industry. The extensible feature of this format allows storage of multiple bitmap images having different pixel depths, which makes it advantageous for image storage needs. Since it introduces no compression artifacts, the file format is preferred over others for archiving intermediate files. Tagged Image File Format, abbreviated TIFF or TIF, is a computer file format for storing raster graphics images, popular among graphic artists, the publishing industry, and photographers. TIFF is widely supported by scanning, faxing, word processing, optical character recognition, image manipulation, desktop publishing, and page-layout applications. The latest published version is 6.0 in 1992, subsequently updated with an Adobe Systems copyright after the latter acquired Aldus in 1994. Several Aldus or Adobe technical notes have been published with minor extensions to the format, and several specifications have been based on TIFF 6.0, including TIFF/EP (ISO 12234-2), TIFF/IT (ISO 12639), TIFF-F (RFC 2306) and TIFF-FX (RFC 3949). Filename extensions : .tiff, .tif Internet media type: image/tiff, image/tiff-fx Developed by: Aldus, now Adobe Systems Initial release: 1986; 34 years ago Type of format: Image file format A Tagged Image File Format or TIFF is a specific type of computer file format for storing raster graphic images and exchanging them between application programs. Examples of these programs include word processing, scanning, image manipulation or editors, optical character recognition, and desktop publishing applications, among others. The format was developed in 1986 by a group spearheaded by Aldus Corporation, which is now part of Adobe Inc.
    [Show full text]
  • Digital Image Basics
    Digital Image Basics Written by Jonathan Sachs Copyright © 1996-1999 Digital Light & Color Introduction When using digital equipment to capture, store, modify and view photographic images, they must first be converted to a set of numbers in a process called digitiza- tion or scanning. Computers are very good at storing and manipulating numbers, so once your image has been digitized you can use your computer to archive, examine, alter, display, transmit, or print your photographs in an incredible variety of ways. Pixels and Bitmaps Digital images are composed of pixels (short for picture elements). Each pixel rep- resents the color (or gray level for black and white photos) at a single point in the image, so a pixel is like a tiny dot of a particular color. By measuring the color of an image at a large number of points, we can create a digital approximation of the image from which a copy of the original can be reconstructed. Pixels are a little like grain particles in a conventional photographic image, but arranged in a regular pattern of rows and columns and store information somewhat differently. A digital image is a rectangular array of pixels sometimes called a bitmap. Digital Image Basics 1 Digital Image Basics Types of Digital Images For photographic purposes, there are two important types of digital images—color and black and white. Color images are made up of colored pixels while black and white images are made of pixels in different shades of gray. Black and White Images A black and white image is made up of pixels each of which holds a single number corresponding to the gray level of the image at a particular location.
    [Show full text]
  • Tree Based Search Algorithm for Binary Image Compression
    Tree Based Search Algorithm for Binary Image Compression Reetu Hooda W. David Pan Dept. of Electrical and Computer Engineering Dept. of Electrical and Computer Engineering University of Alabama in Huntsville University of Alabama in Huntsville Huntsville, AL 35899 Huntsville, AL 35899 [email protected] [email protected] Abstract—The demand for large-scale image data grows in- algorithms are typically used in applications where loss of any creasingly fast, resulting in a need for efficient image compres- data is not affordable. sion. This work aims at improving the lossless compression of binary images. To this end, we propose the use of a tree-based Lossy compression: Lossy algorithms can only reconstruct optimization algorithm, which searches for the best partitions of an approximation of the original data. They are typically used the input image into non-uniform blocks, and for the best combi- nation of scan directions, with the goal of achieving more efficient for images and sound where some loss is often undetectable compression of the resulting sequences of intervals between suc- or at least acceptable [5][6]. cessive symbols of the same kind. The tree-based search algorithm searches for the best grid structure for adaptively partitioning the Various studies in image and video coding show that decom- image into blocks of varying sizes. Extensive simulations of this position of the original 2D signal (image) into a set of contigu- search algorithm on various datasets demonstrated that we can ous regions help in increasing the compression. This process achieve significantly higher compression on average than various standard binary image compression methods such as the JPEG is called “segmentation”.
    [Show full text]
  • Types of Digital Images
    Image Processing Lecture 2 Types of Digital Images The images types we will consider are: 1) binary, 2) gray-scale, 3) color, and 4) multispectral. 1. Binary images Binary images are the simplest type of images and can take on two values, typically black and white, or 0 and 1. A binary image is referred to as a 1-bit image because it takes only 1 binary digit to represent each pixel. These types of images are frequently used in applications where the only information required is general shape or outline, for example optical character recognition (OCR). Binary images are often created from the gray-scale images via a threshold operation, where every pixel above the threshold value is turned white (‘1’), and those below it are turned black (‘0’). In the figure below, we see examples of binary images. (a) (b) Figure 2.1 Binary images. (a) Object outline. (b) Page of text used in OCR application. 2. Gray-scale images Gray-scale images are referred to as monochrome (one-color) images. ©Asst. Lec. Wasseem Nahy Ibrahem Page 1 Image Processing Lecture 2 They contain gray-level information, no color information. The number of bits used for each pixel determines the number of different gray levels available. The typical gray-scale image contains 8bits/pixel data, which allows us to have 256 different gray levels. The figure below shows examples of gray-scale images. Figure 2.2 Examples of gray-scale images In applications like medical imaging and astronomy, 12 or 16 bits/pixel images are used. These extra gray levels become useful when a small section of the image is made much larger to discern details.
    [Show full text]
  • Document Image Analysis
    IEEE Computer Society Executive Briefings Document Image Analysis Lawrence O’Gorman Rangachar Kasturi ISBN 0-8186-7802-X Library of Congress Number 97-17283 1997 This book is now out of print 2009 We have recreated this online document from the authors’ original files This version is formatted differently from the published book; for example, the references in this document are included at the end of each section instead of at the end of each chapter. There are also minor changes in content. We recommend that any reference to this work should cite the original book as noted above. Document Image Analysis Table of Contents Preface Chapter 1 What is a Document Image and What Do We Do With It? Chapter 2 Preparing the Document Image 2.1: Introduction...................................................................................................... 8 2.2: Thresholding .................................................................................................... 9 2.3: Noise Reduction............................................................................................. 19 2.4: Thinning and Distance Transform ................................................................. 25 2.5: Chain Coding and Vectorization.................................................................... 34 2.6: Binary Region Detection ............................................................................... 39 Chapter 3 Finding Appropriate Features 3.1: Introduction...................................................................................................
    [Show full text]
  • Computer Vision Through Image Processing System
    BIOINFO Medical Imaging Volume 1, Issue 1, 2011, pp-01-04 Available online at: http://www.bioinfo.in/contents.php?id=162 Computer Vision through Image Processing System 1Satonkar S.S., 2Kurhe A.B. and 3Khanale P.B. 1Department of Computer Science, Arts, Commerce and Science College, Gangakhed, (M.S.), India 2Shri Guru Buddhiswami College, Purna, (M.S) 3Dnyanopasak College, Parbhani, (M.S.) e-mail: [email protected], [email protected] Abstract—Recently Image processing is attracting V. DIGITAL IMAGE REPRESENTATION much attention in the society of network multimedia information access. Area such as network security, content An image may be defined as a two-dimensional indexing and retrieval, and video compression benefits from function, f ( x , y ), where x and y are spatial ( plane) image processing system. The present paper shows the steps coordinates, and the amplitude of f at any pair of in image processing system. In the image processing system coordinates ( x , y ) is called the intensity of the image different elements are overviewed. The image processing at that point. The term gray level is used often to refer classification is also highlighted in the paper. to the intensity of monochrome images. Color images Keywords: Computer Vision, Image Processing, Intensity Image, Visual data are formed by a combination of individual 2-D images. e.g. RGB color system, a color image consists of three (red, green and blue) individual component images. I. INTRODUCTION Digital images play an important role, both in daily-life VI. DIGITAL IMAGES CLASSIFICATIONS applications such as satellite television, magnetic resonance imaging, computer tomography as well as in Digital images can be broadly classified into two types areas of research and technology such as geographical and they are information systems and astronomy.
    [Show full text]
  • General Purpose Computing in Gpu - a Watermarking Case Study
    GENERAL PURPOSE COMPUTING IN GPU - A WATERMARKING CASE STUDY Anthony Hanson Thesis Prepared for the Degree of MASTER OF SCIENCE UNIVERSITY OF NORTH TEXAS August 2014 APPROVED: Saraju Mohanty, Major Professor Elias Kougianos, Co-Major Professor Mahadevan Gomathisankaran, Committee Member Barret Bryant, Chair of the Department of Computer Science and Engineering Costas Tsatsoulis, Dean of the College of Engineering Mark Wardell, Dean of the Toulouse Graduate School Hanson, Anthony. General Purpose Computing in GPU - A Watermarking Case Study. Master of Science (Computer Science), August 2014, 78 pp., 8 tables, 15 figures, references, 42 titles. The purpose of this project is to explore the GPU for general purpose computing. The GPU is a massively parallel computing device that has a high-throughput, exhibits high arithmetic intensity, has a large market presence, and with the increasing computation power being added to it each year through innovations, the GPU is a perfect candidate to complement the CPU in performing computations. The GPU follows the single instruction multiple data (SIMD) model for applying operations on its data. This model allows the GPU to be very useful for assisting the CPU in performing computations on data that is highly parallel in nature. The compute unified device architecture (CUDA) is a parallel computing and programming platform for NVIDIA GPUs. The main focus of this project is to show the power, speed, and performance of a CUDA-enabled GPU for digital video watermark insertion in the H.264 video compression domain. Digital video watermarking in general is a highly computationally intensive process that is strongly dependent on the video compression format in place.
    [Show full text]