Abstract
This paper presents a real-time hardware implementation of a gradient domain dynamic range compression algorithm for high dynamic range (HDR) images. This technique works by calculating the gradients of the HDR image, manipulating those gradients, and reconstructing an output low dynamic range image that corresponds to the manipulated gradients. Reconstruction involves solving the Poisson equation. We propose a Poisson solver that utilizes only local information around each pixel along with special boundary conditions, and requires a small and fixed amount of hardware for any image size, with no need to buffer the entire image. The hardware implementation is described in VHDL and synthesized for a field programmable gate array (FPGA) device. The maximum operating frequency achieved is fast enough to process high dynamic range videos with one megapixel per frame at a rate of about 100 frames per second. The hardware is tested on standard HDR images from the Debevec library. The output images produced have good visual quality.
Similar content being viewed by others
Abbreviations
- HDR:
-
High dynamic range
- VHDL:
-
VHSIC hardware description language
- VHSIC:
-
Very high scale integrated circuit
- FPGA:
-
Field programmable gate array
- TMO:
-
Tone mapping operator
- FFT:
-
Fast Fourier transform
- PSNR:
-
Peak signal-to-noise ratio
- i, j :
-
Indices used for pixels in full-size images; i = 0, 1, 2,…,N–1 and j = 0, 1, 2,…,N–1
- I k :
-
The input image and its scale versions (for k = 0, 1, 2, 3, 4), each full-size. I 0 is the log-luminance high dynamic range input image, and the scale versions are each produced by applying a 2D approximate Gaussian filter to the input image
- I out :
-
The full-size output image, a low dynamic range version of the input
- u, v :
-
Indices used for pixels in local windows and gradient matrices. A local window is cut out around a particular pixel (i, j) in the full-size inputs
- \( \mathcal{I}^{k} \) :
-
Local (6 × 6) windows extracted from the full-size input and scale images (for k = 0, 1, 2, 3, 4). Indices are u = −1, 0, 1, 2, 3, 4 and v = −1, 0, 1, 2, 3, 4
- \( \mathcal{I}^{out} \) :
-
The (6 × 6) local output window produced in one step of the local method. Indices are u = −1, 0, 1, 2, 3, 4 and v = −1, 0, 1, 2, 3, 4. Given that the windows are extracted around pixel (i, j) in the full-size input and scale images, pixel (2, 2) from this output image is pixel (i, j) in the full-size output image I out
- \( \mathcal{G}^{H} \), \( \mathcal{G}^{V} \) :
-
4 × 4 matrices, horizontal and vertical gradients for each of the 16 pixels in the middle of a local window, computed using forward differences. Indices are u = 0, 1, 2, 3 and v = 0, 1, 2, 3
- \( \mathcal{H}^{k} \), \( \mathcal{V}^{k} \) :
-
4 × 4 matrices, the horizontal and vertical gradients for each of the 16 pixels in the middle of a local window at each scale (for k = 0, 1, 2, 3, 4), computed based on central differences. Indices are u = 0, 1, 2, 3 and v = 0, 1, 2, 3
- \( \mathcal{C}^{k} \) :
-
A 4 × 4 matrix, the one-norm of the horizontal and vertical gradients based on central differences for each of the 16 pixels in the middle of a local window. Indices are u = 0, 1, 2, 3 and v = 0, 1, 2, 3
- Ψ:
-
A 4 × 4 matrix, an attenuation factor for the horizontal and vertical gradients for each of the 16 pixels in the middle of a local window. Indices are u = 0, 1, 2, 3 and v = 0, 1, 2, 3
- \( \hat{\mathcal{G}}^{H},\hat{\mathcal{G}}^{V} \) :
-
4 × 4 matrices, the horizontal and vertical gradients for each of the 16 pixels in the middle of a local window after manipulation. Indices are u = 0, 1, 2, 3 and v = 0, 1, 2, 3
- \( {\text{div}}\hat{\mathcal{G}} \) :
-
A 3 × 3 matrix, the divergence of the manipulated gradients, computed using backward differences. Indices are u = 1, 2, 3 and v = 1, 2, 3
References
Tumblin, J., Turk, G.: LCIS: a boundary hierarchy for detail-preserving contrast reduction. In: Proceedings of the 26th Annual Conference on Computer Graphics and Interactive Techniques, pp. 83–90 (1999)
Durand, F., Dorsey, J.: Fast bilateral filtering for the display of high dynamic range images. In: Proceedings of the 29th Annual Conference on Computer Graphics and Interactive Techniques, pp. 257–266 (2002)
Choudhury, P., Tumblin, J.: The trilateral filter for high contrast images and meshes. In: Proceedings of the Eurographics Symposium on Rendering, pp. 186–196 (2003)
Ledda, P., Santos, L.P., Chalmers, A.: A local model of eye adaptation for high dynamic range images. In: Proceedings of the 3rd International Conference on Computer Graphics, Virtual Reality, Visualization and Interaction in Africa, pp. 151–160 (2004)
Pattanaik, S.N., Ferwarda, J.A., Fairchild, M.D., Greenberg, D.P.: A multiscale model of adaptation and spatial vision for realistic image display. In: Proceedings of the 25th Annual Conference on Computer Graphics and Interactive Techniques, pp. 287–298 (1998)
Fairchild, M.D., Johnson, G.M.: Meet iCAM: an image color appearance model. In: Proceedings of the IS and T/SID 8th Color Imaging Conference, pp. 33–38 (2002)
Reinhard, E., Stark, M., Shirley, P., Ferwerda, J.: Photographic tone reproduction for digital images. In: Proceedings of the 29th Annual Conference on Computer Graphics and Interactive Techniques, pp. 267–276 (2002)
Fattal, R., Lischinski, D., Werman, M.: Gradient domain high dynamic range compression. In: Proceedings of the 29th Annual Conference on Computer Graphics and Interactive Techniques, pp. 249–256 (2002)
Fattal, R., Agrawala, M., Rusinkiewicz, S.: Multiscale shape and detail enhancement from multi-light image collections. ACM Trans. Graph. 26(3):51-1–51-9 (2007)
Hassan, F., Vytla, L., Carletta, J.E.: Exploiting redundancy to solve the Poisson equation using local information. In: IEEE International Conference on Image Processing (2009)
Agrawal, A., Raskar, R., Nayar, S.K., Li, Y.: Removing photography artifacts using gradient projection and flash-exposure sampling. ACM Trans. Graph. 24, 828–835 (2005)
Finlayson, G., Hordley, S., Drew, M.: Removing Shadows from images. In: European Conference on Computer Vision, pp. 129–132 (2002)
Weiss, Y.: Deriving intrinsic images from image sequences. In: International Conference on Computer Vision, pp. 68–75 (2001)
McCann J., Pollard, N.S.: Real-time gradient domain painting. In: International Conference on Computer Graphics and Interactive Techniques, pp. 1–7 (2008)
Perez, P., Gangnet, M., Blake, A.: Poisson image editing. ACM Trans. Graph. 22(3), 313–318 (2003)
Debevec, P.E., Malik, J.: Recovering high dynamic range radiance maps from photographs. In: Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques, pp. 369–378 (1997)
Wang, T.-H., Ke, W.-M., Zwao, D.-C., Chen, F.-C.: Block-based gradient domain high dynamic range compression design for real-time applications. In: Proceedings of the IEEE International Conference on Image Processing, vol. 3, pp. 561–564 (2007)
Kazhdan, M., Hoppe, H.: Streaming multigrid for gradient-domain operations on large images. ACM Trans. Graph. 27, 1–10 (2008)
Kasbah, S.J., Damaj, I.W., Haraty, R.A.: Multigrid solvers in reconfigurable hardware. J. Comput. Appl. Math. 213, 79–94 (2008)
Hassan, F., Carletta, J.E.: An FPGA-based architecture for a tone mapping operator. J. Real Time Image Process. 2(4), 293–308 (2007)
Ledda, P., Chalmers, A., Troscianko, T., Seetzen, H.: Evaluation of tone mapping operators using a high dynamic range display. ACM Trans. Graph. 24, 640–648 (2005)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Vytla, L., Hassan, F. & Carletta, J.E. A real-time implementation of gradient domain high dynamic range compression using a local Poisson solver. J Real-Time Image Proc 8, 153–167 (2013). https://doi.org/10.1007/s11554-011-0198-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11554-011-0198-5