Statistics Operations On Two Dimensional Image Processor
Abstract
A method is described that includes loading an array of content into a two-dimensional shift register. The two-dimensional shift register is coupled to an execution lane array. The method includes repeatedly performing a first sequence that includes: shifting with the shift register first content residing along a particular row or column into another parallel row or column where second content resides and performing mathematical operations with a particular corresponding row or column of the execution lane array on the first and second content. The method also includes repeatedly performing a second sequence that includes: shifting with the shift register content from a set of first locations along a resultant row or column that is parallel with the rows or columns of the first sequence into a corresponding set of second locations along the resultant row or column. The resultant row or column has values determined at least in part from the mathematical operations of the first sequence. The second sequence further includes performing mathematical operations on items of content from the set of first locations and respective items of content from the set of second locations with the execution lane array.
Claims
exact text as granted — not AI-modified1 . A method, comprising:
loading an array of content into a two-dimensional shift register, the two-dimensional shift register coupled to an execution lane array; repeatedly performing a first sequence comprising:
shifting with the shift register first content residing along a particular row or column into another parallel row or column where second content resides and performing mathematical operations with a particular corresponding row or column of the execution lane array on the first and second content; and,
repeatedly performing a second sequence comprising:
shifting with the shift register content from a set of first locations along a resultant row or column that is parallel with the rows or columns of the first sequence into a corresponding set of second locations along the resultant row or column, the resultant row or column having values determined at least in part from the mathematical operations of the first sequence, and performing mathematical operations on items of content from the set of first locations and respective items of content from the set of second locations with the execution lane array.
2 . The method of claim 1 wherein the mathematical operations comprise addition.
3 . The method of claim 2 wherein the content comprises image intensity values.
4 . The method of claim 2 wherein the content comprises per bin counts of a histogram.
5 . The method of claim 4 wherein content containing counts for a set of bins of the histogram are shifted into a location having content containing counts for the same set of bins of the histogram.
6 . The method of claim 1 wherein the content is image content.
7 . The method of claim 1 wherein the second sequence further comprises:
shifting with the shift register content from a second set of first locations along a second resultant row or column that is parallel with the rows or columns of the first sequence into a corresponding second set of second locations along the second resultant row or column, the second resultant row or column having values determined at least in part from the mathematical operations of the first sequence, and performing second mathematical operations on items of content from the second set of first locations and respective items of content from the second set of second locations.
8 . The method of claim 6 wherein the content comprises per bin counts of a histogram wherein the set of first locations and the second set of first locations include per bin counts of different bins of the histogram.
9 . The method of claim 8 further comprising, prior to the first and second sequences, merging storage space nominally reserved for individual execution lanes and having groups of execution lanes write to merged storage space to update bin counts.
10 . The method of claim 1 further comprising repeatedly performing the loading, the first sequence and the second sequence over any of:
an entire image globally;
tiles of an image;
a window of an image.
11 . The method of claim 10 wherein tile of an image are operated over and further performing a context switch of accumulated content across processing of tile boundaries.
12 . A machine readable storage medium containing program code that when processed by a processor comprising a two-dimensional shift register coupled to an execution lane array causes a method to be performed, comprising:
loading an array of content into the two-dimensional shift register;
repeatedly performing a first sequence comprising:
shifting with the shift register first content residing along a particular row or column into another parallel row or column where second content resides and performing mathematical operations with a particular corresponding row or column of the execution lane array on the first and second content; and,
repeatedly performing a second sequence comprising:
shifting with the shift register content from a set of first locations along a resultant row or column that is parallel with the rows or columns of the first sequence into a corresponding set of second locations along the resultant row or column, the resultant row or column having values determined at least in part from the mathematical operations of the first sequence, and performing mathematical operations on items of content from the set of first locations and respective items of content from the set of second locations with the execution lane array.
13 . The machine readable storage medium of claim 12 wherein the mathematical operations comprise addition.
14 . The machine readable storage medium of claim 13 wherein the content comprises image intensity values.
15 . The machine readable storage medium of claim 13 wherein the content comprises per bin counts of a histogram.
16 . The machine readable storage medium of claim 15 wherein content containing counts for a set of bins of the histogram are shifted into a location having content containing counts for the same set of bins of the histogram.
17 . The machine readable storage medium of claim 12 wherein the content is image content.
18 . The machine readable storage medium of claim 12 wherein the second sequence further comprises:
shifting with the shift register content from a second set of first locations along a second resultant row or column that is parallel with the rows or columns of the first sequence into a corresponding second set of second locations along the second resultant row or column, the second resultant row or column having values determined at least in part from the mathematical operations of the first sequence, and performing second mathematical operations on items of content from the second set of first locations and respective items of content from the second set of second locations.
19 . The machine readable storage medium of claim 17 wherein the content comprises per bin counts of a histogram wherein the set of first locations and the second set of first locations include per bin counts of different bins of the histogram.
20 . The machine readable storage medium of claim 19 further comprising, prior to the first and second sequences, merging storage space nominally reserved for individual execution lanes and having groups of execution lanes write to merged storage space to update bin counts.
21 . The machine readable storage medium of claim 12 further comprising repeatedly performing the loading, the first sequence and the second sequence over any of:
an entire image globally;
tiles of an image;
a window of an image.
22 . The machine readable storage medium of claim 21 wherein tile of an image are operated over and further performing a context switch of accumulated content across processing of tile boundaries.
23 . A computing system, comprising:
a plurality of processing cores; a memory controller coupled to a system memory, the memory controller coupled to the plurality of processing cores; an image processor, the image processor having a two-dimensional shift register coupled to an execution lane array; a storage medium containing program code that when processed by the image processor causes a method to be performed, comprising:
loading an array of content into the two-dimensional shift register;
repeatedly performing a first sequence comprising:
shifting with the shift register first content residing along a particular row or column into another parallel row or column where second content resides and performing mathematical operations with a particular corresponding row or column of the execution lane array on the first and second content; and,
repeatedly performing a second sequence comprising:
shifting with the shift register content from a set of first locations along a resultant row or column that is parallel with the rows or columns of the first sequence into a corresponding set of second locations along the resultant row or column, the resultant row or column having values determined at least in part from the mathematical operations of the first sequence, and performing mathematical operations on items of content from the set of first locations and respective items of content from the set of second locations with the execution lane array.
24 . The computing system of claim 23 wherein the mathematical operations comprise addition.
25 . The computing system of claim 24 wherein the content comprises image intensity values.
26 . The computing system of claim 23 wherein the content comprises per bin counts of a histogram.
27 . The computing system of claim 26 wherein content containing counts for a set of bins of the histogram are shifted into a location having content containing counts for the same set of bins of the histogram.Join the waitlist — get patent alerts
Track US2018005059A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.