US2018007302A1PendingUtilityA1

Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register

Assignee: GOOGLE INCPriority: Jul 1, 2016Filed: Jul 1, 2016Published: Jan 4, 2018
Est. expiryJul 1, 2036(~9.9 yrs left)· nominal 20-yr term from priority
H04N 25/767G06T 1/20G06F 17/16G06F 12/0207G06F 9/3001G06F 5/015G06F 15/8023H04N 5/3742H04N 5/341H04N 25/40
56
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method is described that includes, on an image processor having a two dimensional execution lane array and a two dimensional shift register array, repeatedly shifting first content of multiple rows or columns of the two dimensional shift register array and repeatedly executing at least one instruction between shifts that operates on the shifted first content and/or second content that is resident in respective locations of the two dimensional shift register array that the shifted first content has been shifted into.

Claims

exact text as granted — not AI-modified
1 . A machine readable storage medium containing program code that when processed by an image processor comprising a two dimensional execution lane array and a two dimensional shift register array causes the image processor to perform a method, comprising:
 repeatedly shifting first content of multiple rows or columns of the two dimensional shift register array and repeatedly executing at least one instruction between shifts that operates on the shifted first content and/or second content that is resident in respective locations of the two dimensional shift register array that the shifted first content has been shifted into in order to implement a row or column summation or prefix summation operation simultaneously performed on multiple respective rows or columns of an array of data.   
     
     
         2 . The machine readable storage medium of  claim 1  where the operation is a row or column summation operation to perform any of:
 a) calculate statistics; 
 b) suppress noise; 
 c) down-sample. 
 
     
     
         3 . The machine readable storage medium of  claim 1  where the operation is a row or column prefix summation operation is to perform any of:
 a) determine an integral image; 
 b) accelerate a box filter; 
 c) calculate an address for a compaction operation. 
 
     
     
         4 . The machine readable storage medium of  claim 1  wherein content of the two dimensional shift register array is wrapped around opposite edges of the two dimensional shift register array. 
     
     
         5 . The machine readable storage medium of  claim 1  wherein the operation sums across all rows or columns of the shift register array. 
     
     
         6 . A machine readable storage medium containing program code that when processed by an image processor comprising a two dimensional execution lane array and a two dimensional shift register array causes the image processor to perform a method, comprising:
 repeatedly shifting first content of multiple rows or columns of the two dimensional shift register array and repeatedly executing at least one instruction between shifts that operates on the shifted first content and/or second content that is resident in respective locations of the two dimensional shift register array that the shifted first content has been shifted into in order to implement a find minimum or find maximum operation simultaneously performed on multiple respective rows or columns of an array of data that repeats an index value of a minimum or maximum value across a respective row or column.   
     
     
         7 . The machine readable storage medium of  claim 6  wherein the operation is to perform any of:
 a) calculate statistics; 
 b) post process a block matching algorithm. 
 
     
     
         8 . The machine readable storage medium of  claim 6  wherein content of the two dimensional shift register array is wrapped around opposite edges of the two dimensional shift register array. 
     
     
         9 . The machine readable storage medium of  claim 6  wherein the operation finds a minimum or maximum across all rows or columns of the shift register array. 
     
     
         10 . A machine readable storage medium containing program code that when processed by an image processor comprising a two dimensional execution lane array and a two dimensional shift register array causes the image processor to perform a method, comprising:
 repeatedly shifting first content of multiple rows or columns of the two dimensional shift register array and repeatedly executing at least one instruction between shifts that operates on the shifted first content and/or second content that is resident in respective locations of the two dimensional shift register array that the shifted first content has been shifted into in order to implement a matrix multiply operation.   
     
     
         11 . The machine readable medium of  claim 10  wherein the matrix multiply operation is to perform any of:
 a) calculate discrete Fourier transform; 
 b) calculate a discrete cosine transform. 
 
     
     
         12 . The machine readable medium of  claim 10  wherein the matrix multiply operation is to perform any of:
 a) compress data; 
 b) filter data. 
 
     
     
         13 . The machine readable medium of  claim 10  wherein a rotational shearing algorithm is applied across rows or columns of data in the two dimensional shift register array prior to the repeatedly shifting and the repeatedly executing the at least one instruction. 
     
     
         14 . The machine readable medium of  claim 10  wherein the at least one instructions implement a multiply-add operation. 
     
     
         15 . A machine readable storage medium containing program code that when processed by an image processor comprising a two dimensional execution lane array and a two dimensional shift register array causes the image processor to perform a method, comprising:
 repeatedly shifting first content of multiple rows or columns of the two dimensional shift register array and repeatedly executing at least one instruction between shifts that operates on the shifted first content and/or second content that is resident in respective locations of the two dimensional shift register array that the shifted first content has been shifted into in order to implement a two-dimensional discrete Fourier transform.   
     
     
         16 . The machine readable medium of  claim 15  wherein the two-dimensional discrete Fourier transform is to perform any of:
 a) reduce noise; 
 b) accelerate a convolution. 
 
     
     
         17 . The machine readable medium of  claim 15  wherein a rotational shearing algorithm is applied across rows or columns of data in the two dimensional shift register array prior to the repeatedly shifting and the repeatedly executing the at least one instruction. 
     
     
         18 . The machine readable medium of  claim 15  wherein the one or more instructions collectively refer to a first layer of real values within the two-dimensional shift register array and a second layer of imaginary values within the two-dimensional shift register array. 
     
     
         19 . A machine readable storage medium containing program code that when processed by an image processor comprising a two dimensional execution lane array and a two dimensional shift register array causes the image processor to perform a method, comprising:
 repeatedly shifting first content of multiple rows or columns of the two dimensional shift register array and repeatedly executing at least one instruction between shifts that operates on the shifted first content and/or second content that is resident in respective locations of the two dimensional shift register array that the shifted first content has been shifted into in order to implement a butterfly operation for a fast Fourier transform.   
     
     
         20 . A machine readable storage medium containing program code that when processed by an image processor comprising a two dimensional execution lane array and a two dimensional shift register array causes the image processor to perform a method, comprising:
 repeatedly shifting first content of multiple rows or columns of the two dimensional shift register array and repeatedly executing at least one instruction between shifts that operates on the shifted first content and/or second content that is resident in respective locations of the two dimensional shift register array that the shifted first content has been shifted into in order to implement a block matching operation.   
     
     
         21 . The machine readable storage medium of  claim 20  wherein the block matching operation is to perform any of:
 a) estimate motion; 
 b) stabilize an image; 
 c) implement an image fusion algorithm. 
 
     
     
         22 . The machine readable medium of  claim 13  wherein the method further comprises repeatedly broadcasting a next looked for pixel value and the one or more instructions determining a difference between the next looked for pixel value and the shifted first content. 
     
     
         23 . A machine readable storage medium containing program code that when processed by an image processor comprising a two dimensional execution lane array and a two dimensional shift register array causes the image processor to perform a method, comprising:
 repeatedly shifting first content of multiple rows or columns of the two dimensional shift register array and repeatedly executing at least one instruction between shifts that operates on the shifted first content and/or second content that is resident in respective locations of the two dimensional shift register array that the shifted first content has been shifted into.   
     
     
         24 . A machine readable storage medium containing program code that when processed by a processing unit causes a method to be performed, comprising:
 articulating a method in a higher level program code that accesses data with memory read and write instructions having an instruction format that specifies a memory location in x,y coordinates, the higher level program code to be compiled into object code that is executable on an image processor having a two dimensional execution lane array and a two dimensional shift register array, the object code to cause the image processor to repeatedly shift first content of multiple rows or columns of the two dimensional shift register array and repeatedly execute at least one instruction between shifts that operates on the shifted first content and/or second content that is resident in respective locations of the two dimensional shift register array that the shifted first content has been shifted into.   
     
     
         25 . The machine readable storage medium of  claim 24  wherein the object code is to implement a row or column summation operation simultaneously performed on multiple respective rows or columns of an array of data. 
     
     
         26 . The machine readable storage medium of  claim 24  wherein the object code is to implement a row or column prefix summation operation simultaneously performed on multiple respective rows or columns of an array of data. 
     
     
         27 . The machine readable storage medium of  claim 24  wherein the object code is to implement a find minimum or find maximum operation simultaneously performed on multiple respective rows or columns of an array of data that repeats an index value of a minimum or maximum value across a respective row or column. 
     
     
         28 . The machine readable storage medium of  claim 24  wherein the object code is to implement a matrix multiply operation. 
     
     
         29 . The machine readable storage medium of  claim 24  wherein the object code is to implement a two-dimensional discrete Fourier transform. 
     
     
         30 . The machine readable storage medium of  claim 24  wherein the object code is to implement a butterfly operation of a Fast Fourier transform. 
     
     
         31 . The machine readable storage medium of  claim 24  wherein the object code is to implement a block matching operation. 
     
     
         32 . The machine readable storage medium of  claim 24  wherein the object code is to perform any of:
 a) calculate statistics; 
 b) suppress noise; 
 c) down-sample; 
 d) determine an integral image; 
 e) accelerate a box filter; 
 f) post process a block matching algorithm; 
 g) calculate a discrete Fourier transform; 
 h) calculate a discrete cosine transform. 
 i) compress data; 
 j) filter data; 
 k) reduce noise; 
 l) accelerate a convolution; 
 m) estimate motion; 
 n) stabilize an image; 
 o) implement an image fusion algorithm.

Join the waitlist — get patent alerts

Track US2018007302A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.