An FPGA Acceleration for the Kd-tree Search in Photon Mapping

Photon mapping is a kind of rendering techniques which enables depicting complicated light concentrations for 3D graphics. Searching kd-tree of photons with k-near neighbor search (k-NN) requires a large amount of computations. As k-NN search includes high degree of parallelism, the operation can be accelerated by GPU and recent multi-core microprocessors. However, memory access bottleneck will limit their computation speed. Here, as an alternative approach, an FPGA implementation of k-NN search operation in kd-tree is proposed. In the proposed design, we maximized the effective throughput of the block RAM by connecting multiple Query Modules to both ports of RAM. Furthermore, an implementation of the discovery process of the max distance which is not depending on the number of Estimate-Photons is proposed. Through the implementation on Spartan6, Virtex6 and Virtex7, it appears that 26 fundamental modules can be mounted on Virtex7. As a result, the proposed module achieved the throughput of approximately 282 times as that of software execution at maximum.

[1]  Stefan Wess,et al.  Using k-d Trees to Improve the Retrieval Step in Case-Based Reasoning , 1993, EWCBR.

[2]  Michael W. Berry,et al.  Improved Query Matching Using kd-Trees: A Latent Semantic Indexing Enhancement , 2000, Information Retrieval.

[3]  Henrik Wann Jensen,et al.  Global Illumination using Photon Maps , 1996, Rendering Techniques.

[4]  Bent Dalgaard Larsen Real-time Global Illumination by Simulating Photon Mapping , 2004 .

[5]  H. Jensen Realistic Image Synthesis Using Photon Mapping , 2001 .

[6]  Pat Hanrahan,et al.  Photon mapping on programmable graphics hardware , 2003, HWWS '03.

[7]  Milos D. Ercegovac,et al.  Accelerating the photon mapping algorithm and its hardware implementation , 2011, ASAP 2011 - 22nd IEEE International Conference on Application-specific Systems, Architectures and Processors.

[8]  Xu Qing,et al.  Photon Mapping Parallel Based on Shared Memory System , 2009, 2009 Sixth International Conference on Computer Graphics, Imaging and Visualization.

[9]  Stefan Wess,et al.  Topics in Case-Based Reasoning , 1994 .

[10]  Tsutomu Maruyama,et al.  An FPGA implementation of real-time K-means clustering for color images , 2007, Journal of Real-Time Image Processing.

[11]  Tim Foley,et al.  KD-tree acceleration structures for a GPU raytracer , 2005, HWWS '05.

[12]  Tsutomu Maruyama,et al.  An FPGA Implementation of K-Means Clustering for Color Images Based on Kd-Tree , 2006, 2006 International Conference on Field Programmable Logic and Applications.