This is my attempt to write a fast HDR merge algorithm that runs on the GPU. It is currently in development, in the stages of optimization.
- Based on the Mertens-Kautz-Van Reeth exposure fusion algorithm (conference paper PDF), like the Enfuse tool.
- Uses OpenCL 1.2 to offload work to the GPU.
- Suitable for batch processing- separate concurrent threads for reading/merging/writing of files.
- Optimize DMA transfers to the GPU
- Some specific commands allow concurrent DMA transfers and processing on the GPU (depends on vendor).
- Memory has to be aligned and pages have to be pinned by the kernel to facilitate fastest transfer rates.
- Devices have limits on the maximum size allocated per allocation in VRAM- need to transfer/process image in chunks for large images. This is the current bottleneck.
- Optimize OpenCL kernels.