Abstract

Laser speckle contrast analysis (LASCA) is a non-invasive, full-field optical technique that produces two-dimensional map of blood flow in biological tissue by analyzing speckle images captured by CCD camera. Due to the heavy computation required for speckle contrast analysis, video frame rate visualization of blood flow which is essentially important for medical usage is hardly achieved for the high-resolution image data by using the CPU (Central Processing Unit) of an ordinary PC (Personal Computer). In this paper, we introduced GPU (Graphics Processing Unit) into our data processing framework of laser speckle contrast imaging to achieve fast and high-resolution blood flow visualization on PCs by exploiting the high floating-point processing power of commodity graphics hardware. By using GPU, a 12-60 fold performance enhancement is obtained in comparison to the optimized CPU implementations.

© 2008 Optical Society of America

Full Article  |  PDF Article

References

  • View by:
  • |
  • |
  • |

  1. J. Owens, "A Survey of General-Purpose Computation on Graphics Hardware," Comput. Graph. Forum 26, 80-113 (2007).
    [CrossRef]
  2. A. Lefohn, J. Kniss, C. Hansen, and R. Whitaker, "A Streaming Narrow-Band Algorithm: Interactive Deformation and Visualization of Level Sets," IEEE T. Vis. Comput. Gr. 10, 422-433 (2004).
    [CrossRef]
  3. J. Krüger and R. Westermann, "Linear algebra operators for GPU implementation of numerical algorithms," ACM T.Graphic 22, 908-916 (2003).
    [CrossRef]
  4. J. Bolz, I. Farmer, E. Grinspun, and P. Schrooder, "Sparse matrix solvers on the GPU: conjugate gradients and multi-grid," ACM. T.Graphic 22, 917-924 (2003).
    [CrossRef]
  5. S. F. Portegies Zwart, R. G. Belleman, and P. Geldof, "High-performance direct gravitational N-body simulations on graphics processing units," New Astron. 12, 641-650 (2007).
    [CrossRef]
  6. J. Stone, J. Phillips, P. Freddolino, D. Hardy, L. Trabuco, and K. Schulten, "Accelerating molecular modeling applications with graphics processors," J Comput. Chem. 28, 2618-2640 (2007).
    [CrossRef] [PubMed]
  7. J. S. Kole and K. J. Beekman, "Evaluation of accelerated iterative X-ray CT image reconstruction using floating point graphics hardware," Phys. Med. Biol. 51, 875-889(2006).
    [CrossRef] [PubMed]
  8. S. Zhang, D. Royer, and S. Yau, "GPU-assisted high-resolution, real-time 3-D shape measurement," Opt. Express 14, 9120-9129 (2006).
    [CrossRef] [PubMed]
  9. M. Pharr, ed., PU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation (Gpu Gems) (Addison-Wesley, New York, 2005).
    [PubMed]
  10. I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan, "Brook for GPUs: Stream computing on graphics hardware," ACM. T.Graphic. 23, 777-786 (2004).
    [CrossRef]
  11. NVIDIA CUDA Compute Unified Device Architecture programming guide version 1.1, (NVIDIA corp. 2007).
  12. J. Briers and S. Webster, "Laser speckle contrast analysis (LASCA): a non-scanning, full-field technique for monitoring capillary blood flow," J. Biomed. Opt. 1,174-179 (1996).
    [CrossRef]
  13. A. Dunn, H. Bolay, M. Moskowitz, and D. Boas, "Dynamic Imaging of Cerebral Blood Flow Using Laser Speckle," J. Cereb. Blood Flow Metab. 21, 195-201 (2001).
    [CrossRef] [PubMed]
  14. J. W. Goodman, Statistical Optics (Wiley-Interscience, 1985).
  15. H. Cheng and T. Duong, "Simplified laser-speckle-imaging analysis method and its application to retinal blood flow imaging", Opt. Lett. 32, 2188-2190 (2007).
    [CrossRef] [PubMed]
  16. J. Ramirez-San-Juan, R. Ramos-Garcia, I. Guizar-Iturbide, G. Martinez-Niconoff, and B. Choi, "Impact of velocity distribution assumption on simplified laser speckle imaging equation," Opt. Express 16, 3197-3203 (2008).
    [CrossRef] [PubMed]

2008 (1)

2007 (4)

H. Cheng and T. Duong, "Simplified laser-speckle-imaging analysis method and its application to retinal blood flow imaging", Opt. Lett. 32, 2188-2190 (2007).
[CrossRef] [PubMed]

J. Owens, "A Survey of General-Purpose Computation on Graphics Hardware," Comput. Graph. Forum 26, 80-113 (2007).
[CrossRef]

S. F. Portegies Zwart, R. G. Belleman, and P. Geldof, "High-performance direct gravitational N-body simulations on graphics processing units," New Astron. 12, 641-650 (2007).
[CrossRef]

J. Stone, J. Phillips, P. Freddolino, D. Hardy, L. Trabuco, and K. Schulten, "Accelerating molecular modeling applications with graphics processors," J Comput. Chem. 28, 2618-2640 (2007).
[CrossRef] [PubMed]

2006 (2)

J. S. Kole and K. J. Beekman, "Evaluation of accelerated iterative X-ray CT image reconstruction using floating point graphics hardware," Phys. Med. Biol. 51, 875-889(2006).
[CrossRef] [PubMed]

S. Zhang, D. Royer, and S. Yau, "GPU-assisted high-resolution, real-time 3-D shape measurement," Opt. Express 14, 9120-9129 (2006).
[CrossRef] [PubMed]

2004 (2)

I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan, "Brook for GPUs: Stream computing on graphics hardware," ACM. T.Graphic. 23, 777-786 (2004).
[CrossRef]

A. Lefohn, J. Kniss, C. Hansen, and R. Whitaker, "A Streaming Narrow-Band Algorithm: Interactive Deformation and Visualization of Level Sets," IEEE T. Vis. Comput. Gr. 10, 422-433 (2004).
[CrossRef]

2003 (2)

J. Krüger and R. Westermann, "Linear algebra operators for GPU implementation of numerical algorithms," ACM T.Graphic 22, 908-916 (2003).
[CrossRef]

J. Bolz, I. Farmer, E. Grinspun, and P. Schrooder, "Sparse matrix solvers on the GPU: conjugate gradients and multi-grid," ACM. T.Graphic 22, 917-924 (2003).
[CrossRef]

2001 (1)

A. Dunn, H. Bolay, M. Moskowitz, and D. Boas, "Dynamic Imaging of Cerebral Blood Flow Using Laser Speckle," J. Cereb. Blood Flow Metab. 21, 195-201 (2001).
[CrossRef] [PubMed]

1996 (1)

J. Briers and S. Webster, "Laser speckle contrast analysis (LASCA): a non-scanning, full-field technique for monitoring capillary blood flow," J. Biomed. Opt. 1,174-179 (1996).
[CrossRef]

Beekman, K. J.

J. S. Kole and K. J. Beekman, "Evaluation of accelerated iterative X-ray CT image reconstruction using floating point graphics hardware," Phys. Med. Biol. 51, 875-889(2006).
[CrossRef] [PubMed]

Belleman, R. G.

S. F. Portegies Zwart, R. G. Belleman, and P. Geldof, "High-performance direct gravitational N-body simulations on graphics processing units," New Astron. 12, 641-650 (2007).
[CrossRef]

Boas, D.

A. Dunn, H. Bolay, M. Moskowitz, and D. Boas, "Dynamic Imaging of Cerebral Blood Flow Using Laser Speckle," J. Cereb. Blood Flow Metab. 21, 195-201 (2001).
[CrossRef] [PubMed]

Bolay, H.

A. Dunn, H. Bolay, M. Moskowitz, and D. Boas, "Dynamic Imaging of Cerebral Blood Flow Using Laser Speckle," J. Cereb. Blood Flow Metab. 21, 195-201 (2001).
[CrossRef] [PubMed]

Bolz, J.

J. Bolz, I. Farmer, E. Grinspun, and P. Schrooder, "Sparse matrix solvers on the GPU: conjugate gradients and multi-grid," ACM. T.Graphic 22, 917-924 (2003).
[CrossRef]

Briers, J.

J. Briers and S. Webster, "Laser speckle contrast analysis (LASCA): a non-scanning, full-field technique for monitoring capillary blood flow," J. Biomed. Opt. 1,174-179 (1996).
[CrossRef]

Buck, I.

I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan, "Brook for GPUs: Stream computing on graphics hardware," ACM. T.Graphic. 23, 777-786 (2004).
[CrossRef]

Cheng, H.

Choi, B.

Dunn, A.

A. Dunn, H. Bolay, M. Moskowitz, and D. Boas, "Dynamic Imaging of Cerebral Blood Flow Using Laser Speckle," J. Cereb. Blood Flow Metab. 21, 195-201 (2001).
[CrossRef] [PubMed]

Duong, T.

Farmer, I.

J. Bolz, I. Farmer, E. Grinspun, and P. Schrooder, "Sparse matrix solvers on the GPU: conjugate gradients and multi-grid," ACM. T.Graphic 22, 917-924 (2003).
[CrossRef]

Fatahalian, K.

I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan, "Brook for GPUs: Stream computing on graphics hardware," ACM. T.Graphic. 23, 777-786 (2004).
[CrossRef]

Foley, T.

I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan, "Brook for GPUs: Stream computing on graphics hardware," ACM. T.Graphic. 23, 777-786 (2004).
[CrossRef]

Freddolino, P.

J. Stone, J. Phillips, P. Freddolino, D. Hardy, L. Trabuco, and K. Schulten, "Accelerating molecular modeling applications with graphics processors," J Comput. Chem. 28, 2618-2640 (2007).
[CrossRef] [PubMed]

Geldof, P.

S. F. Portegies Zwart, R. G. Belleman, and P. Geldof, "High-performance direct gravitational N-body simulations on graphics processing units," New Astron. 12, 641-650 (2007).
[CrossRef]

Grinspun, E.

J. Bolz, I. Farmer, E. Grinspun, and P. Schrooder, "Sparse matrix solvers on the GPU: conjugate gradients and multi-grid," ACM. T.Graphic 22, 917-924 (2003).
[CrossRef]

Guizar-Iturbide, I.

Hanrahan, P.

I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan, "Brook for GPUs: Stream computing on graphics hardware," ACM. T.Graphic. 23, 777-786 (2004).
[CrossRef]

Hansen, C.

A. Lefohn, J. Kniss, C. Hansen, and R. Whitaker, "A Streaming Narrow-Band Algorithm: Interactive Deformation and Visualization of Level Sets," IEEE T. Vis. Comput. Gr. 10, 422-433 (2004).
[CrossRef]

Hardy, D.

J. Stone, J. Phillips, P. Freddolino, D. Hardy, L. Trabuco, and K. Schulten, "Accelerating molecular modeling applications with graphics processors," J Comput. Chem. 28, 2618-2640 (2007).
[CrossRef] [PubMed]

Horn, D.

I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan, "Brook for GPUs: Stream computing on graphics hardware," ACM. T.Graphic. 23, 777-786 (2004).
[CrossRef]

Houston, M.

I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan, "Brook for GPUs: Stream computing on graphics hardware," ACM. T.Graphic. 23, 777-786 (2004).
[CrossRef]

Kniss, J.

A. Lefohn, J. Kniss, C. Hansen, and R. Whitaker, "A Streaming Narrow-Band Algorithm: Interactive Deformation and Visualization of Level Sets," IEEE T. Vis. Comput. Gr. 10, 422-433 (2004).
[CrossRef]

Kole, J. S.

J. S. Kole and K. J. Beekman, "Evaluation of accelerated iterative X-ray CT image reconstruction using floating point graphics hardware," Phys. Med. Biol. 51, 875-889(2006).
[CrossRef] [PubMed]

Krüger, J.

J. Krüger and R. Westermann, "Linear algebra operators for GPU implementation of numerical algorithms," ACM T.Graphic 22, 908-916 (2003).
[CrossRef]

Lefohn, A.

A. Lefohn, J. Kniss, C. Hansen, and R. Whitaker, "A Streaming Narrow-Band Algorithm: Interactive Deformation and Visualization of Level Sets," IEEE T. Vis. Comput. Gr. 10, 422-433 (2004).
[CrossRef]

Martinez-Niconoff, G.

Moskowitz, M.

A. Dunn, H. Bolay, M. Moskowitz, and D. Boas, "Dynamic Imaging of Cerebral Blood Flow Using Laser Speckle," J. Cereb. Blood Flow Metab. 21, 195-201 (2001).
[CrossRef] [PubMed]

Owens, J.

J. Owens, "A Survey of General-Purpose Computation on Graphics Hardware," Comput. Graph. Forum 26, 80-113 (2007).
[CrossRef]

Phillips, J.

J. Stone, J. Phillips, P. Freddolino, D. Hardy, L. Trabuco, and K. Schulten, "Accelerating molecular modeling applications with graphics processors," J Comput. Chem. 28, 2618-2640 (2007).
[CrossRef] [PubMed]

Portegies Zwart, S. F.

S. F. Portegies Zwart, R. G. Belleman, and P. Geldof, "High-performance direct gravitational N-body simulations on graphics processing units," New Astron. 12, 641-650 (2007).
[CrossRef]

Ramirez-San-Juan, J.

Ramos-Garcia, R.

Royer, D.

Schrooder, P.

J. Bolz, I. Farmer, E. Grinspun, and P. Schrooder, "Sparse matrix solvers on the GPU: conjugate gradients and multi-grid," ACM. T.Graphic 22, 917-924 (2003).
[CrossRef]

Schulten, K.

J. Stone, J. Phillips, P. Freddolino, D. Hardy, L. Trabuco, and K. Schulten, "Accelerating molecular modeling applications with graphics processors," J Comput. Chem. 28, 2618-2640 (2007).
[CrossRef] [PubMed]

Stone, J.

J. Stone, J. Phillips, P. Freddolino, D. Hardy, L. Trabuco, and K. Schulten, "Accelerating molecular modeling applications with graphics processors," J Comput. Chem. 28, 2618-2640 (2007).
[CrossRef] [PubMed]

Sugerman, J.

I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan, "Brook for GPUs: Stream computing on graphics hardware," ACM. T.Graphic. 23, 777-786 (2004).
[CrossRef]

Trabuco, L.

J. Stone, J. Phillips, P. Freddolino, D. Hardy, L. Trabuco, and K. Schulten, "Accelerating molecular modeling applications with graphics processors," J Comput. Chem. 28, 2618-2640 (2007).
[CrossRef] [PubMed]

Webster, S.

J. Briers and S. Webster, "Laser speckle contrast analysis (LASCA): a non-scanning, full-field technique for monitoring capillary blood flow," J. Biomed. Opt. 1,174-179 (1996).
[CrossRef]

Westermann, R.

J. Krüger and R. Westermann, "Linear algebra operators for GPU implementation of numerical algorithms," ACM T.Graphic 22, 908-916 (2003).
[CrossRef]

Whitaker, R.

A. Lefohn, J. Kniss, C. Hansen, and R. Whitaker, "A Streaming Narrow-Band Algorithm: Interactive Deformation and Visualization of Level Sets," IEEE T. Vis. Comput. Gr. 10, 422-433 (2004).
[CrossRef]

Yau, S.

Zhang, S.

Comput. Graph. Forum (1)

J. Owens, "A Survey of General-Purpose Computation on Graphics Hardware," Comput. Graph. Forum 26, 80-113 (2007).
[CrossRef]

Graphic (2)

J. Krüger and R. Westermann, "Linear algebra operators for GPU implementation of numerical algorithms," ACM T.Graphic 22, 908-916 (2003).
[CrossRef]

J. Bolz, I. Farmer, E. Grinspun, and P. Schrooder, "Sparse matrix solvers on the GPU: conjugate gradients and multi-grid," ACM. T.Graphic 22, 917-924 (2003).
[CrossRef]

Graphic. (1)

I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan, "Brook for GPUs: Stream computing on graphics hardware," ACM. T.Graphic. 23, 777-786 (2004).
[CrossRef]

IEEE T. Vis. Comput. Gr. (1)

A. Lefohn, J. Kniss, C. Hansen, and R. Whitaker, "A Streaming Narrow-Band Algorithm: Interactive Deformation and Visualization of Level Sets," IEEE T. Vis. Comput. Gr. 10, 422-433 (2004).
[CrossRef]

J Comput. Chem. (1)

J. Stone, J. Phillips, P. Freddolino, D. Hardy, L. Trabuco, and K. Schulten, "Accelerating molecular modeling applications with graphics processors," J Comput. Chem. 28, 2618-2640 (2007).
[CrossRef] [PubMed]

J. Biomed. Opt. (1)

J. Briers and S. Webster, "Laser speckle contrast analysis (LASCA): a non-scanning, full-field technique for monitoring capillary blood flow," J. Biomed. Opt. 1,174-179 (1996).
[CrossRef]

J. Cereb. Blood Flow Metab. (1)

A. Dunn, H. Bolay, M. Moskowitz, and D. Boas, "Dynamic Imaging of Cerebral Blood Flow Using Laser Speckle," J. Cereb. Blood Flow Metab. 21, 195-201 (2001).
[CrossRef] [PubMed]

New Astron. (1)

S. F. Portegies Zwart, R. G. Belleman, and P. Geldof, "High-performance direct gravitational N-body simulations on graphics processing units," New Astron. 12, 641-650 (2007).
[CrossRef]

Opt. Express (2)

Opt. Lett. (1)

Phys. Med. Biol. (1)

J. S. Kole and K. J. Beekman, "Evaluation of accelerated iterative X-ray CT image reconstruction using floating point graphics hardware," Phys. Med. Biol. 51, 875-889(2006).
[CrossRef] [PubMed]

Other (3)

M. Pharr, ed., PU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation (Gpu Gems) (Addison-Wesley, New York, 2005).
[PubMed]

NVIDIA CUDA Compute Unified Device Architecture programming guide version 1.1, (NVIDIA corp. 2007).

J. W. Goodman, Statistical Optics (Wiley-Interscience, 1985).

Cited By

OSA participates in CrossRef's Cited-By Linking service. Citing articles from OSA journals and other participating publishers are listed here.

Alert me when this article is cited.


Figures (7)

Fig. 1.
Fig. 1.

The overall processing framework of laser speckle contrast analysis based on GPU. The left part of the figure gives a general description of how CPU and GPU are related while the right part illustrates the tasks that kernel needs to handle as well as the possible implementation choices in the two steps of LASCA processing. In actual work, we implemented three different kernels (the totally combination is four).

Fig. 2.
Fig. 2.

The implementation details of GPU based laser speckle image process. By dividing input speckle image into image tiles, each image tile can be handled by one thread block that has slightly larger size. These extra threads are responsible for loading the pixels in neighboring image tile, which are required for calculating boundary pixels in current image tile, into shared memory.

Fig. 3.
Fig. 3.

(a). Comparison among two CPU codes with different compiler options and the GPU based version. (b) Performance difference between the shared memory version GPU based data processing and non-shared-memory (traditional) one. Video frame rate threshold is shown in both figures. Note: all the plotting data in both images is from column 1, 2 and 4 in Table.1. [except the non-SSE CPU version data in Fig. 3(a)].

Fig. 4.
Fig. 4.

Comparison between the blood flow image obtained by CPU implementation (a) and that obtained by GPU method (b). Both results use the same raw laser speckle image data recorded from rat cortex and processed by using T/τ c method with a 5×5 window. (c) The relative difference image of (a) and (b).

Fig. 5.
Fig. 5.

Comparison bwteen the blood flow image obtained by using 8-bit raw data (a) and that obtained by using 12-bit raw data (b). Both results use Newtown iteration T/τ c method with a 5×5 window. (c) The relative difference image of (a) and (b).

Fig. 6.
Fig. 6.

Comparison between the blood flow images obtained by using the Newtown iteration T/τc method (a) and by using the 1/C2 approximation method (b). Both results use the same 12-bit raw laser speckle image data and a 5×5 window. (c) The relative difference image of (a) and (b).

Fig. 7.
Fig. 7.

Comparison between the high resolution blood flow image obtained by GPU method (a) and the low resolution blood flow image obtained by CPU method (b) with the video-rate visualization.

Tables (1)

Tables Icon

Table. 1. Time consumption comparison between GPU and CPU for processing each frame

Equations (2)

Equations on this page are rendered with MathJax. Learn more.

C = σ s I ¯ ,
C = ( exp ( 2 x ) 1 + 2 x ) / ( 2 x 2 ) , x = T / τ c .

Metrics