HoloGen: An open source toolbox for high-speed hologram generation
Peter J. Christopher,Andrew Kadis,George S. D. Gordon,Timothy D. Wilkinson
DOI: https://doi.org/10.1016/j.cpc.2021.108139
2021-09-27
Abstract: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.
Image and Video Processing,Optics