IP Library Granted Patent US 9,082,200
Granted Patent B2
US 9,082,200 · App. 14/093,861 · Granted Jul 14, 2015

System for histogram computation

Inventor: Marianna Gnedin (Long Grove, IL)
Assignee: Siemens Medical Solutions USA, Inc.
G06T7/401
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 9,082,200
App. No.
14/093,861
Granted
Jul 14, 2015
Kind
B2
Abstract

A system and method includes reception of a first image data value of a digital image, determination of a first index based on the first image data value, determination of a value stored in a first array of a first shared memory at the first index, and determination of whether the value stored in the first array of the first shared memory at the first index is equal to the first image data value. If the value stored in the first array of the first shared memory at the first index is equal to the first image data value, 1 is added to a count value stored in a second array of the first shared memory at the first index. If the value stored in the first array of the first shared memory at the first index is not equal to the first image data value a count value stored in a second shared memory in association with the first image data value is updated.

Claims (105)

1. A system comprising:

a first processing unit;

a first shared memory accessible by the first processing unit; and

a second shared memory accessible by the first processing unit,

wherein the first processing unit is to:

receive a first image data value of a digital image;

determine a first index based on the first image data value;

determine a value stored in a first array of the first shared memory at the first index;

determine if the value stored in the first array of the first shared memory at the first index is equal to the first image data value;

if the value stored in the first array of the first shared memory at the first index is equal to the first image data value, add 1 to a count value stored in a second array of the first shared memory at the first index; and

if the value stored in the first array of the first shared memory at the first index is not equal to the first image data value, update a count value stored in the second shared memory in association with the first image data value.

2. A system according to claim 1 , wherein update of the count value stored in the second shared memory in association with the first image data value comprises:

determining the count value stored in the second array of the first shared memory at the first index; and

incrementing, by the determined count value, the count value stored in the second shared memory in association with the first image data value.

3. A system according to claim 2 , wherein the first processing unit is further to:

determine if the value stored in the first array of the first shared memory at the first index is a flag; and

if it is determined that the value stored in the first array of the first shared memory at the first index is a flag, write the image data value into the first array of the first shared memory at the first index, and write a count value of 1 into the second array of the first shared memory at the first index.

4. A system according to claim 1 , wherein update of the count value stored in the second shared memory in association with the first image data value comprises:

adding 1 to the count value stored in the second shared memory in association with the first image data value.

5. A system according to claim 4 , wherein the first processing unit is further to:

determine if the value stored in the first array of the first shared memory at the first index is a flag; and

if it is determined that the value stored in the first array of the first shared memory at the first index is a flag, write the image data value into the first array of the first shared memory at the first index, and write a count value of 1 into the second array of the first shared memory at the first index.

6. A system according to claim 1 , further comprising:

a second processing unit,

wherein the first shared memory is accessible by the second processing unit and the second shared memory is accessible by the second processing unit, and

wherein the second processing unit is to:

receive a second image data value of the digital image;

determine a second index based on the second image data value;

determine a second value stored in the first array of the first shared memory at the second index;

determine if the second value stored in the first array of the first shared memory at the second index is equal to the second image data value;

if the second value stored in the first array of the first shared memory at the second index is equal to the second image data value, add 1 to a second count value stored in the second array of the first shared memory at the second index; and

if the value stored in the first array of the first shared memory at the second index is not equal to the second image data value, update a second count value stored in the second shared memory in association with the second image data value.

7. A system according to claim 6 , wherein update of the second count value stored in the second shared memory in association with the second image data value comprises:

determining the second count value stored in the second array of the first shared memory at the second index; and

incrementing, by the determined count value, the second count value stored in the second shared memory in association with the second image data value.

8. A system according to claim 6 , wherein update of the second count value stored in the second shared memory in association with the second image data value comprises:

adding 1 to the second count value stored in the second shared memory in association with the second image data value.

9. A system according to claim 6 , further comprising:

a third processing unit; and

a third shared memory,

wherein the first shared memory is not accessible by the third processing unit, the second shared memory is accessible by the third processing unit, and the third shared memory is accessible by the third processing unit, and

wherein the third processing unit is to:

receive a third image data value of the digital image;

determine a third index based on the third image data value;

determine a third value stored in a first array of the third shared memory at the third index;

determine if the third value stored in the first array of the third shared memory at the third index is equal to the third image data value;

if the third value stored in the first array of the third shared memory at the third index is equal to the third image data value, add 1 to a third count value stored in a second array of the third shared memory at the third index; and

if the third value stored in the first array of the third shared memory at the third index is not equal to the third image data value, update a third count value stored in the second shared memory in association with the third image data value.

10. A system according to claim 1 , further comprising:

a second processing unit; and

a third shared memory accessible by the second processing unit,

wherein the first shared memory is not accessible by the second processing unit and the third shared memory is not accessible by the first processing unit, and

wherein the second processing unit is to:

receive a second image data value of the digital image;

determine a second index based on the second image data value;

determine a second value stored in a first array of the third shared memory at the second index;

determine if the second value stored in the first array of the third shared memory at the second index is equal to the second image data value;

if the second value stored in the first array of the third shared memory at the second index is equal to the second image data value, add 1 to a second count value stored in a second array of the third shared memory at the second index; and

if the second value stored in the first array of the third shared memory at the second index is not equal to the second image data value, update a second count value stored in the second shared memory in association with the second image data value.

11. A method comprising:

receiving, by a first execution thread, a first image data value of a digital image;

determining, by the first execution thread, a first index based on the first image data value;

determining, by the first execution thread, a value stored in a first array of a first shared memory at the first index;

determining, by the first execution thread, if the value stored in the first array of the first shared memory at the first index is equal to the first image data value;

if the value stored in the first array of the first shared memory at the first index is equal to the first image data value, adding, by the first execution thread, 1 to a count value stored in a second array of the first shared memory at the first index; and

if the value stored in the first array of the first shared memory at the first index is not equal to the first image data value, updating, by the first execution thread, a count value stored in a second shared memory in association with the first image data value.

12. A method according to claim 11 , wherein updating the count value stored in the second shared memory in association with the first image data value comprises:

determining the count value stored in the second array of the first shared memory at the first index; and

incrementing, by the determined count value, the count value stored in the second shared memory in association with the first image data value.

13. A method according to claim 12 , further comprising:

determining, by the first execution thread, if the value stored in the first array of the first shared memory at the first index is a flag; and

if it is determined that the value stored in the first array of the first shared memory at the first index is a flag, writing the image data value into the first array of the first shared memory at the first index, and writing a count value of 1 into the second array of the first shared memory at the first index.

14. A method according to claim 11 , wherein updating the count value stored in the second shared memory in association with the first image data value comprises:

adding 1 to the count value stored in the second shared memory in association with the first image data value.

15. A method according to claim 14 , further comprising:

determining, by the first execution thread, if the value stored in the first array of the first shared memory at the first index is a flag; and

if it is determined that the value stored in the first array of the first shared memory at the first index is a flag, writing the image data value into the first array of the first shared memory at the first index, and writing a count value of 1 into the second array of the first shared memory at the first index.

16. A method according to claim 11 , further comprising:

receiving, by a second execution thread, a second image data value of the digital image;

determining, by the second execution thread, a second index based on the second image data value;

determining, by the second execution thread, a second value stored in the first array of the first shared memory at the second index;

determining, by the second execution thread, if the second value stored in the first array of the first shared memory at the second index is equal to the second image data value;

if the second value stored in the first array of the first shared memory at the second index is equal to the second image data value, adding, by the second execution thread, 1 to a second count value stored in the second array of the first shared memory at the second index; and

if the value stored in the first array of the first shared memory at the second index is not equal to the second image data value, updating, by the second execution thread, a second count value stored in the second shared memory in association with the second image data value.

17. A method according to claim 16 , wherein updating the second count value stored in the second shared memory in association with the second image data value comprises:

determining the second count value stored in the second array of the first shared memory at the second index; and

incrementing, by the determined count value, the second count value stored in the second shared memory in association with the second image data value.

18. A method according to claim 16 , wherein updating the second count value stored in the second shared memory in association with the second image data value comprises:

adding 1 to the second count value stored in the second shared memory in association with the second image data value.

19. A method according to claim 16 , further comprising:

receiving, by a third execution thread, a third image data value of the digital image;

determining, by the third execution thread, a third index based on the third image data value;

determining, by the third execution thread, a third value stored in a first array of a third shared memory at the third index;

determining, by the third execution thread, if the third value stored in the first array of the third shared memory at the third index is equal to the third image data value;

if the third value stored in the first array of the third shared memory at the third index is equal to the third image data value, adding, by the third execution thread, 1 to a third count value stored in a second array of the third shared memory at the third index; and

if the third value stored in the first array of the third shared memory at the third index is not equal to the third image data value, updating, by the third execution thread, a third count value stored in the second shared memory in association with the third image data value,

wherein the first shared memory is not accessible by the third execution thread, the second shared memory is accessible by the third execution thread, and the third shared memory is accessible by the third execution thread.

20. A method according to claim 11 , further comprising:

receiving, by a second execution thread, a second image data value of the digital image;

determining, by the second execution thread, a second index based on the second image data value;

determining, by the second execution thread, a second value stored in a first array of a third shared memory at the second index;

determining, by the second execution thread, if the second value stored in the first array of the third shared memory at the second index is equal to the second image data value;

if the second value stored in the first array of the third shared memory at the second index is equal to the second image data value, adding, by the second execution thread, 1 to a second count value stored in a second array of the third shared memory at the second index; and

if the second value stored in the first array of the third shared memory at the second index is not equal to the second image data value, updating, by the second execution thread, a second count value stored in the second shared memory in association with the second image data value,

wherein the first shared memory is not accessible by the second execution thread, the second shared memory is accessible by the second execution thread, and the third shared memory is accessible by the second execution thread.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE OF ASSIGNMENT 3, ASSIGNOR SIEMENS MEDICAL SOLUTIONS USA, INC. TO SIEMENS HEALTHCARE GMBH PREVIOUSLY RECORDED ON REEL 043379 FRAME 0673. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF INVENTOR RIGHTS.. Recorded Dec 2, 2020
From: SIEMENS MEDICAL SOLUTIONS USA, INC.
To: SIEMENS HEALTHCARE GMBH
Reel/Frame 056112/0540 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2017
From: SIEMENS MEDICAL SOLUTIONS USA, INC.
To: SIEMENS HEALTHCARE GMBH
Reel/Frame 043379/0673 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2014
From: GNEDIN, MARIANNA
To: SIEMENS MEDICAL SOLUTIONS USA, INC.
Reel/Frame 031957/0519 →
Continuity (2)
Provisional Application 61732979 · Dec 4, 2012
Related Publication 20140153826A1 · Jun 5, 2014