Introduction To Image Processing On The GPU

2y ago
21 Views
2 Downloads
736.46 KB
6 Pages
Last View : 15d ago
Last Download : 3m ago
Upload by : Helen France
Transcription

Technical BriefIntroduction to ImageProcessing on the GPU

Table of ContentsImage Processing on the GPU .1Overview .1Key Resources .2Other Web Links of Interest.3Introduction to Image Processing on the GPUKevin Bjorkekbjorke@nvidia.comTB-01868-001 v0105/16/05i

Image Processingon the GPUIn the most recent generations of Graphic Processing Units (GPUs), the capacities ofper-pixel and texturing operations have greatly increased. Millions of these GPUs arealready present in the computers of consumers worldwide. Today you can easilyapply those texturing and pixel engines, originally designed for 3D modeling andrendering, to many classic image-processing problems to provide tremendous speedincreases over CPU-only implementations—and without any compromise in finalimage quality. This short introduction describes the basic methods of GPU usage forimage processing and provides useful pointers to documentation, demo programs,and other developer tools.OverviewIn general, GPUs approach 2D image processing as a restricted form of 3Dprocessing. Quite simply, a quadrilateral polygon is aligned to the desired imagescreen rectangle and rendered; either to the screen or to an off-screen buffer inmemory. The rendering can be done using either of the common graphics APIs:OpenGL or DirectX.Each pixel in the rendered image can have image-based texturing applied (up to 16simultaneous input images per pass can be accessed), and each pixel can run one ormore small programs, called pixel shaders, to generate the final output color at eachindividual pixel. The GPU executes these shaders for many pixels at a time in parallel.Multiple passes of rendering may be executed, and the GPU provides additionalimage-blending hardware to permit images to be built-up in composited layers ofarbitrary complexity. The results of each rendering pass, or any disk image, canlikewise be passed back into the GPU pixel shader engine as another texture. Thismeans that arbitrarily complex compositing operations can also be expressed as pixelshader operations. Image pixels can even be used as address indices into otherimages.Pixel shaders operate in an IEEE floating-point execution environment, though theirinput and output images can be expressed as 8-bit or 16-bit integers per channel, oras 16-bit or 32-bit IEEE floating-point values per channel. This flexibility andprecision permits pixel operations to be executed on the GPU without any loss ofimage quality when compared to traditional CPU-intensive methods. Since the resultscan be available at high speed, often the GPU-calculated result in a “preview”window can now also be the final, delivered result.TB-01868-001 v0105/16/051

Introduction to Image Processing on the GPUKey ResourcesThe developer wanting to learn more about GPU image processing should first lookto the recent books GPU Gems: Programming Techniques, Tips, and Tricks for Real-TimeGraphics (2004) and its companion GPU Gems 2: Programming Techniques for HighPerformance Graphics and General-Purpose Computation (2005). Both books containdetailed bibliographies along with matching CDs containing code samples and demoprograms. For details on these publications, go tohttp://developer.nvidia.com/GPUGems and http://developer.nvidia.com/GPUGems2.The GPU Gems books contain numerous articles on real-time image processing: realtime glow effects, color controls and profile matching, depth of field techniques,GPU filtering methods and filter-size estimation. The first GPU Gems describes the“OpenEXR” high-quality image format (details at http://www.openexr.com/ ); andcontains an overall application framework for image processing. The second GPUGems book contains detailed articles on using GPU imaging for such highperformance applications as motion-picture image grading at Sony Pictures andApple’s GPU-accelerated Motion video editing suite.On the internet, the NVIDIA SDK 9.0, freely available athttp://developer.nvidia.com/object/sdk home.html, provides numerous running samplesof 2D and 3D image effects, with source code and documentation for both OpenGL and DirectX developers. 2D developers in particular, are guided to the effects“Image Processing” (the latest implementation of the framework described in GPUGems); “Motion Blur as a 2D Post-Processing Effect;” a cellular automata example,“Game of Life;” and several straightforward imaging samples: “Simpler PBuffer,”“Simple RenderTexture,” “Simple Texture Rectangle,” “Filter Blitting,” and “TextureShader with OffsetTexture2D.”The SDK also provides a GPU-based C framework for use in Photoshop plug-insis also a part of the NVIDIA SDK, and a complete sample NVIDIA GPUaccelerated HDR paint application that uses the GPU to drive large airbrushes andspecial effects brushes like “liquefy.” Painting can occur with HDR images inOpenEXR format as well.NVIDIA’s FX Composer shader-development environment, part of the SDK (andalso freely available, at http://developer.nvidia.com/object/fx composer home.html) is aDirectX-only environment for editing, testing and viewing shaders and their sourcecode. In FX Composer, the developer can work directly with the shader instructionswithout being distracted by the complexities of managing the DirectX API. FXComposer ships with numerous example shaders, including 2D image processingsamples: a number of supplied shaders provide common image-processingfunctionality (e.g., scene edgedetect.fx, screenBlend.fx, tonemap.fx). Someeven implement simple paint programs, either on a 2D canvas(scene paintBrush.fx) or painting directly onto a 3D model (scene paint3d.fx).Shaders for image-processing include recoloring effects (scene colorMatrix.fx);color-space conversions (cmyk.fx); glows (scene bloom.fx); trails(scene glowtrail.fx); flaming halos (scene corona.fx); motion blur(spinBlur.fx); and more. Many of these effects are implemented in a context-free“scene command” format that allow these effects to be easily applied to any image oreven on top of an existing 3D scene.TB-01868-001 v0105/16/052

Introduction to Image Processing on the GPUAdditional GPU tools may be found at ing the NVIDIA Texture Tools, a suite of CPU-based texture-creation toolsfor command-line use or as plugins compatible with Adobe Photoshop .Other Web Links of InterestTB-01868-001 v0105/16/05http://developer.nvidia.comProduct information, samples, tools, and whitepapers for GPU developers.http://www.gpgpu.orgAn authoritative clearinghouse of generalpurposes uses for GPUs.http://www.opengl.orgNews and tools for users of the OpenGL API.http://www.shadertech.comShader and GPU news, user and developerforums, sample shader libraries.http://www.math.sintef.no/gpu/pdf/Dokken SCCG 2005.pdfPartial differential equations in image processingusing GPUs3

NoticeALL NVIDIA DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS,DIAGNOSTICS, LISTS, AND OTHER DOCUMENTS (TOGETHER AND SEPARATELY, “MATERIALS”)ARE BEING PROVIDED “AS IS." NVIDIA MAKES NO WARRANTIES, EXPRESSED, IMPLIED,STATUTORY, OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND EXPRESSLY DISCLAIMSALL IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR APARTICULAR PURPOSE.Information furnished is believed to be accurate and reliable. However, NVIDIA Corporationassumes no responsibility for the consequences of use of such information or for anyinfringement of patents or other rights of third parties that may result from its use. No license isgranted by implication or otherwise under any patent or patent rights of NVIDIA Corporation.Specifications mentioned in this publication are subject to change without notice. Thispublication supersedes and replaces all information previously supplied. NVIDIA Corporationproducts are not authorized for use as critical components in life support devices or systemswithout express written approval of NVIDIA Corporation.TrademarksNVIDIA, the NVIDIA logo, and FX Composer are trademarks or registered trademarks of NVIDIACorporation in the United States and other countries. Other company and product names maybe trademarks of the respective companies with which they are associated.Copyright 2005 NVIDIA Corporation. All rights reserved.NVIDIA Corporation2701 San Tomas ExpresswaySanta Clara, CA 95050www.nvidia.com

The SDK also provides a GPU-based C framework for use in Photoshop plug-ins is also a part of the NVIDIA SDK, and a complete sample NVIDIA GPU-accelerated HDR paint application that uses the GPU to drive large airbrushes and special effects brushes like “liquefy.” Pain

Related Documents:

The input for image processing is an image, such as a photograph or frame of video. The output can be an image or a set of characteristics or parameters related to the image. Most of the image processing techniques treat the image as a two-dimensional signal and applies the standard signal processing techniques to it. Image processing usually .

L2: x 0, image of L3: y 2, image of L4: y 3, image of L5: y x, image of L6: y x 1 b. image of L1: x 0, image of L2: x 0, image of L3: (0, 2), image of L4: (0, 3), image of L5: x 0, image of L6: x 0 c. image of L1– 6: y x 4. a. Q1 3, 1R b. ( 10, 0) c. (8, 6) 5. a x y b] a 21 50 ba x b a 2 1 b 4 2 O 46 2 4 2 2 4 y x A 1X2 A 1X1 A 1X 3 X1 X2 X3

Digital image processing is the use of computer algorithms to perform image processing on digital images. As a . Digital cameras generally include dedicated digital image processing chips to convert the raw data from the image sensor into a color-corrected image in a standard image file format. I

What is Digital Image Processing? Digital image processing focuses on two major tasks -Improvement of pictorial information for human interpretation -Processing of image data for storage, transmission and representation for autonomous machine perception Some argument about where image processing ends and fields such as image

Digital image processing is the use of computer algorithms to perform image processing on digital images. As a subfield of digital signal processing, digital image processing has many advantages over analog image processing; it allows a much wider range of algorithms to be applied to the in

10 Chapter 1: Introduction to Image Processing in IDL Overview of Image Processing Image Processing in IDL Overview of Image Processing Today, the medical industry, astronomy, physics, chemistry, forensics, remote sensing, manufacturing, and defense are just some of the many fields that rely upon

Corrections, Image Restoration, etc. the image processing world to restore images [25]. Fig 1. Image Processing Technique II. TECHNIQUES AND METHODS A. Image Restoration Image Restoration is the process of obtaining the original image from the degraded image given the knowledge of the degrading factors. Digital image restoration is a field of

Department of Computer Science & Applications, Kurukshetra University, Kurukshetra . rakeshkumar@kuk.ac.in . ABSTRACT . Image processing is a formof signal processing . One of the mostly used operations of image processing is image segmentation. Over the last few year image segmentation plays vital role in image pra ocessing .