IP Library Granted Patent US 7,889,922
Granted Patent B2
US 7,889,922 · App. 11/594,460 · Granted Feb 15, 2011

Method and system for histogram calculation using a graphics processing unit

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,889,922
App. No.
11/594,460
Granted
Feb 15, 2011
Kind
B2
Abstract

A method for histogram calculation using a graphics processing unit (GPU), comprises storing image data in a two-dimensional (2D) texture domain; subdividing the domain into independent regions or tiles; calculating in parallel, in a GPU, a plurality of tile histograms, one for each tile; and summing up in parallel, in the GPU, the tile histograms so as to derive a final image histogram.

Claims (86)

1. A method for histogram calculation using a graphics processing unit (GPU), comprising:

storing image data in a two-dimensional (2D) texture domain;

subdividing said domain into independent regions or tiles;

calculating in parallel, entirely within said GPU, a plurality of tile histograms, one for each tile;

summing up in parallel, entirely within said GPU, said tile histograms so as to derive a final image histogram; and , wherein

said step of calculating a plurality of tile histograms comprises:

counting intensity in a texel determined by texel texture coordinates, the number of histogram bins, and the size of said image data.

2. A method for histogram calculation as recited in claim 1 , wherein

said step of calculating a plurality of tile histograms comprises:

determining for each texel a corresponding bin by using texture coordinates.

3. A method for histogram calculation as recited in claim 2 , wherein

said step of determining for each texel a corresponding bin by using texture coordinates comprises:

determining the same corresponding bin for each texel having the same given position in its respective appurtenant tile.

4. A method for histogram calculation as recited in claim 1 , wherein

said step of calculating a plurality of tile histograms comprises:

counting for each texel the occurrence of values inside its appurtenant tile for said corresponding histogram bin.

5. A method for histogram calculation as recited in claim 1 , wherein said step of summing up in parallel comprises:

applying a tile wise texture reduce operation.

6. A method for histogram calculation as recited in claim 5 , wherein said step of applying a texture reduce operation comprises:

carrying out a rendering pass for halving texture size.

7. A method for histogram calculation as recited in claim 6 , wherein said step of carrying out a rendering pass for halving texture size comprises:

summing the ith texel of a given histogram with the ith texel of the three tiles adjacent in a positive texture coordinate direction.

8. A method for histogram calculation as recited in claim 1 , wherein:

said step of storing image data comprises using at east one of RGB and RGBA texture.

9. A method for histogram calculation as recited in claim 1 , wherein:

said step of storing image data comprises using at least one of Luminance (c=1), RGB (c=3) or and RGBA (c=4) texture such that a histogram of n bins results in a square tile size of sqrt(n/c) x sqrt(n/c) texels, where c is number of channels per texel .

10. A method for histogram calculation using a graphics processing unit (GPU), comprising:

storing input data in a two-dimensional (2D) texture domain;

subdividing said domain into evenly sized sections;

deriving, in parallel entirely within said GPU, a set of histograms comprising a histogram for each of said sections;

summing said set of histograms entirely within said GPU to derive a final histogram; and

wherein said step of deriving a set of histograms comprises:

determining for each texel a corresponding bin by using texture coordinates.

11. A method for histogram calculation as recited in claim 10 , wherein said step of deriving a set of histograms comprises:

applying a texture reduce operation.

12. A method for histogram calculation as recited in claim 11 , wherein said step of applying a texture reduce operation comprises:

summing in each texel of an appurtenant tile all counts within said appurtenant tile corresponding to said corresponding bin determined for said each texel so as to obtain a combined histogram.

13. A method for histogram calculation as recited in claim 12 , wherein said step of applying a texture reduce operation comprises:

repeating steps of said texture reduce operation so as to obtain a final histogram.

14. A method for histogram calculation as recited in claim 13 , wherein said step of applying a texture reduce operation comprises:

summing in each texel of an appurtenant tile all counts within said appurtenant tile corresponding to said corresponding bin determined for said each texel; and

summing said set of histograms to derive a final histogram.

15. A method for histogram calculation as recited in claim 14 , wherein said step of applying a texture reduce operation comprises:

carrying out a rendering pass for halving texture size.

16. A method for histogram calculation as recited in claim 15 , wherein said step of carrying out a rendering pass for halving texture size comprises:

summing the ith texel of a given histogram is summed up with the ith texel of the three tiles adjacent in a positive texture coordinate direction.

17. A method for image histogram calculation, using a graphics processing unit (GPU), comprising:

storing image input data in a two-dimensional (2D) texture domain;

subdividing said domain into evenly sized sections;

deriving, in parallel entirely within said GPU, a set of image histograms comprising a histogram for each of said sections;

summing said set of image histograms entirely within said GPU to derive a final histogram; and

wherein said step of deriving a set of image histograms comprises:

determining for each texel a corresponding bin by using texture coordinates.

18. A method for image histogram calculation as recited in claim 17 , wherein said step of applying a texture reduce operation comprises:

carrying out a rendering pass for halving texture size.

19. A method for image histogram calculation as recited in claim 18 , wherein said step of carrying out a rendering pass for halving texture size comprises:

summing the ith texel of a given histogram is summed up with the ith texel of the three tiles adjacent in a positive texture coordinate direction.

20. A method for image histogram calculation as recited in claim 19 , wherein said step of deriving a set of histograms comprises:

applying a texture reduce operation.

21. A method for image histogram calculation as recited in claim 20 , wherein said step of applying a texture reduce operation comprises:

summing in each texel of an appurtenant tile all counts within said appurtenant tile corresponding to said corresponding bin determined for said each texel so as to obtain a combined image histogram.

22. A method for image histogram calculation as recited in claim 21 , wherein said step of applying a texture reduce operation comprises:

repeating steps of said texture reduce operation so as to obtain a final image histogram.

23. A method for image histogram calculation as recited in claim 22 , wherein said step of applying a texture reduce operation comprises:

summing in each texel of an appurtenant tile all counts within said appurtenant tile corresponding to said corresponding bin determined for said each texel; and

summing said set of histograms to derive a final image histogram.

24. A method for histogram calculation using a graphics processing unit (GPU), comprising:

storing image data in a two-dimensional (2D) texture domain;

subdividing said domain into independent regions or tiles by subdividing said domain into evenly sized and independent tiles;

calculating in parallel, in said GPU, a plurality of tile histograms, one for each tile and determining for each texel a corresponding bin by using texture coordinates by counting for each texel the occurrence of values inside its appurtenant tile for said corresponding histogram bin; and

summing up in parallel, in said GPU, said tile histograms so as to derive a final image histogram, by applying a texture reduce operation by carrying out a rendering pass for halving texture size by summing the ith texel of a given histogram with the ith texel of the three tiles adjacent in a positive texture coordinate direction.

25. A system for histogram calculation using a graphics processing unit (GPU), comprising:

memory means for storing a program and other data; and

processor means in communication with said memory device, said processor being operative with said program to perform:

storing image data in a two-dimensional (2D) texture domain;

subdividing said domain into independent regions or tiles;

calculating in parallel, entirely within said GPU, a plurality of tile histograms, one for each tile;

summing up in parallel entirely within said GPU, said tile histograms so as to derive a final image histogram; and wherein

said processor means is operative with said program to perform counting intensity in a texel determined by texel texture coordinates, the number of histogram bins, and the size of said image data.

26. A computer program product comprising a computer useable medium having computer program logic recorded thereon for program code for histogram calculation using a graphics processing unit (GPU), by:

storing image data in a two-dimensional (2D) texture domain;

subdividing said domain into independent regions or tiles;

calculating in parallel, entirely within said GPU, a plurality of tile histograms, one for each tile;

summing up in parallel, entirely within said GPU, said tile histograms so as to derive a final image histogram; and wherein:

said step of calculating a plurality of tile histograms comprises:

counting intensity in a texel determined by texel texture coordinates, the number of histogram bins, and the size of said image data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2008
From: SIEMENS CORPORATE RESEARCH, INC.
To: SIEMENS MEDICAL SOLUTIONS USA, INC.
Reel/Frame 021528/0107 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2007
From: AHARON, SHMUEL; FLUCK, OLIVER; ROUSSON, MIKAEL; CREMERS, DANIEL
To: SIEMENS CORPORATE RESEARCH, INC.
Reel/Frame 018867/0520 →