Code Sample: Fast Fourier Transform for Image Processing in DirectX* 11

Code Sample: Fast Fourier Transform for Image Processing in DirectX* 11

Josh Bancroft (Intel)

Josh Bancroft (Intel)

Portland, Oregon

Two techniques for FFT in DX11: UAV (Unordered Access Views) and SLM (Shared Local Memory)

Game Development

Description

The Fast Fourier Transform (FFT) is an implementation of the Discrete Fourier Transform (DFT) using a divide-and-conquer approach. A DFT can transform any discrete signal, such as an image, to and from the frequency domain. Once in the frequency domain, many effects that are generally expensive in the image domain become trivial and inexpensive. The transformations between the image domain and frequency domain can incur significant overhead. This sample demonstrates an optimized FFT that uses compute shaders and Shared Local Memory (SLM) to improve performance by reducing memory bandwidth.

Two techniques for performing the FFT will be discussed in this sample. The first technique is called the UAV technique and operates by ping-ponging data repeatedly between Unordered Access Views (UAVs). The second technique, the SLM (Shared Local Memory) technique, is a more memory-bandwidth-efficient method, showing significant performance gains when bottlenecked by memory bandwidth.

Links

Learn More and Get the Sample

Josh wide eyed

Josh B. (Intel) added photos to project Code Sample: Fast Fourier Transform for Image Processing in DirectX* 11

Medium 66bb9dfd ff9f 4547 9ee8 716395ba15c9

Code Sample: Fast Fourier Transform for Image Processing in DirectX* 11

The Fast Fourier Transform (FFT) is an implementation of the Discrete Fourier Transform (DFT) using a divide-and-conquer approach. A DFT can transform any discrete signal, such as an image, to and from the frequency domain. Once in the frequency domain, many effects that are generally expensive in the image domain become trivial and inexpensive. The transformations between the image domain and frequency domain can incur significant overhead. This sample demonstrates an optimized FFT that uses compute shaders and Shared Local Memory (SLM) to improve performance by reducing memory bandwidth.

Two techniques for performing the FFT will be discussed in this sample. The first technique is called the UAV technique and operates by ping-ponging data repeatedly between Unordered Access Views (UAVs). The second technique, the SLM (Shared Local Memory) technique, is a more memory-bandwidth-efficient method, showing significant performance gains when bottlenecked by memory bandwidth.

Medium josh wide eyed

Josh B. (Intel) created project Code Sample: Fast Fourier Transform for Image Processing in DirectX* 11

Medium 66bb9dfd ff9f 4547 9ee8 716395ba15c9

Code Sample: Fast Fourier Transform for Image Processing in DirectX* 11

The Fast Fourier Transform (FFT) is an implementation of the Discrete Fourier Transform (DFT) using a divide-and-conquer approach. A DFT can transform any discrete signal, such as an image, to and from the frequency domain. Once in the frequency domain, many effects that are generally expensive in the image domain become trivial and inexpensive. The transformations between the image domain and frequency domain can incur significant overhead. This sample demonstrates an optimized FFT that uses compute shaders and Shared Local Memory (SLM) to improve performance by reducing memory bandwidth.

Two techniques for performing the FFT will be discussed in this sample. The first technique is called the UAV technique and operates by ping-ponging data repeatedly between Unordered Access Views (UAVs). The second technique, the SLM (Shared Local Memory) technique, is a more memory-bandwidth-efficient method, showing significant performance gains when bottlenecked by memory bandwidth.

Bigger 0 0gzkp9cdxgbkh6txsch syqwnaisgq1kicdnse6w9lcmgexketd9dfqdncuig6x3a0h iffubirixbooe9k0idbfrirwxbmfe9kty9u75aecxh0metnpnzsqxm
  • Projects 0
  • Followers 0

brad lindsey

first computer experience in the 1970's with Apple Desktops Apple II

534 Cypress St, Abilene, TX 79601, USA

Bigger 0 xcvffkbtejqdj2kkjccddaciwoctpxhkjhiedlwstynczysoxtqiwboiuzs
Student Ambassador
  • Projects 2
  • Followers 15

Ngesa N Marvin

IoT Champion for GDGs, SSA | Intel Student Partner, DeKUT | Co-Lead @GDGKimathiUni | Telecom Engineer | #IoT — #5G Freak, Maker @NodeBots

Kenya

Bigger headshot
  • Projects 2
  • Followers 65

Timothy Porter

Timothy Porter, Founder and Owner of Underminer Studios, Austin,Texas

Los Angeles, CA, USA

Bigger win 20150820 155725
  • Projects 0
  • Followers 1

Michael Preedom

I am a high-tech researcher/inventor with various companies and I am going thru to be certified as a high-tech engineer and scientist once I get my doctorate in engineering and material sciences and research technologies.

California, USA

Bigger my pic  2
  • Projects 1
  • Followers 0

Ramith Hettiarachchi

I'm interested in Programming(c,c++,node.js), IoT, Intel Edison & Music :)

Colombo, Sri Lanka

Bigger ct8hdj4n
  • Projects 0
  • Followers 18

Benjamin Odom

Developer Evangelist

Portland, OR, USA

Default user avatar 57012e2942
  • Projects 0
  • Followers 7

Gerald Makare (Intel)

Video producer and studio manager from Portland, Oregon. Manages the Intel Software TV program.

Portland, OR, USA

See More