HoloGen: An open source toolbox for high-speed hologram generation

24 Aug 2020  ·  Peter J. Christopher, Andrew Kadis, George S. D. Gordon, Timothy D. Wilkinson ·

The rise of mixed reality systems such as Microsoft HoloLens has prompted an increase in interest in the fields of 2D and 3D holography. Already applied in fields including telecommunications, imaging, projection, lithography, beam shaping and optical tweezing, Computer Generated Holography (CGH) offers an exciting approach to a wide range of light shaping problems. The numerical processing required to generate a hologram is high and requires significant domain expertise. This has historically slowed the adoption of holographic techniques in emerging fields. In this paper we present HoloGen, an open-source Cuda C and C ++ framework for computer generated holography. HoloGen unites, for the first time, a wide array of existing hologram generation algorithms with state of the art performance while attempting to remain intuitive and easy to use. This is enabled by a C # and Windows Presentation Framework (WPF) graphical user interface (GUI). A novel reflection based parameter hierarchy is used to ensure ease of modification. Extensive use of C ++ templates based on the Standard Template Library (STL), compile time flexibility is preserved while maintaining runtime performance. The current release of HoloGen unites implementations of well known generation algorithms including Gerchberg-Saxton (GS), Liu-Taghizadeh (LT), Direct Search (DS), Simulated Annealing (SA) and One-Step Phase-Retrieval (OSPR) with less known specialist variants including Weighted GS and Adaptive OSPR. Benchmarking results are presented for several key algorithms. The software is freely available under an MIT license.

PDF Abstract

Datasets


  Add Datasets introduced or used in this paper

Results from the Paper


  Submit results from this paper to get state-of-the-art GitHub badges and help the community compare results to other papers.

Methods


No methods listed for this paper. Add relevant methods here