IP Library Granted Patent US 9,965,824
Granted Patent B2
US 9,965,824 · App. 14/694,828 · Granted May 8, 2018

Architecture for high performance, power efficient, programmable image processing

Inventors: Qiuling Zhu (San Jose, CA); Ofer Shacham (Palo Alto, CA); Albert Meixner (Mountain View, CA); Jason Rupert Redgrave (Mountain View, CA); Daniel Frederic Finchelstein (Redwood City, CA); David Patterson (Kensington, CA); Neeti Desai (Sunnyvale, CA); Donald Stark (Palo Alto, CA); Edward T. Chang (Saratoga, CA); William R. Mark (Mountain View, CA)
Assignee: Google LLC
G06T1/20G06T1/60H04N5/378H04N5/91
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,965,824
App. No.
14/694,828
Granted
May 8, 2018
Kind
B2
Abstract

An apparatus is described. The apparatus includes an image processing unit. The image processing unit includes a network. The image processing unit includes a plurality of stencil processor circuits each comprising an array of execution unit lanes coupled to a two-dimensional shift register array structure to simultaneously process multiple overlapping stencils through execution of program code. The image processing unit includes a plurality of sheet generators respectively coupled between the plurality of stencil processors and the network. The sheet generators are to parse input line groups of image data into input sheets of image data for processing by the stencil processors, and, to form output line groups of image data from output sheets of image data received from the stencil processors. The image processing unit includes a plurality of line buffer units coupled to the network to pass line groups in a direction from producing stencil processors to consuming stencil processors to implement an overall program flow.

Claims (36)

1. An apparatus, comprising:

an image processing unit, comprising:

a network;

a plurality of stencil processor circuits each comprising an array of execution unit lanes coupled to a two-dimensional shift register array structure that supports bi-directional data movements along a horizontal axis and supports bi-directional data movements along a vertical axis, the array of execution unit lanes and the two-dimensional shift register to simultaneously process multiple overlapping stencils through execution of program code;

a plurality of sheet generators respectively coupled between the plurality of stencil processors and the network, the sheet generators to parse input line groups of image data into input sheets of image data for processing by the stencil processors, and, to form output line groups of image data from output sheets of image data received from the stencil processors;

a plurality of line buffer units coupled to the network to pass line groups of image data in a direction from producing stencil processors to consuming stencil processors to implement an overall program flow.

2. The apparatus of claim 1 wherein the image processing unit is configurable to implement a DAG overall program flow.

3. The apparatus of claim 1 wherein the image processing unit is configurable to implement an image processing pipeline flow.

4. The apparatus of claim 1 wherein the image processing unit is configurable to cause a producing stencil processor to feed more than one consuming stencil processor.

5. The apparatus of claim 1 wherein the image processing unit is configurable to cause a consuming stencil processor to be fed by more than one producing stencil processor.

6. The apparatus of claim 1 wherein the image processing unit is configurable to simultaneously process different image streams with different stencil processors.

7. The apparatus of claim 1 wherein the array of execution unit lanes operate in SIMD fashion.

8. A non transitory machine readable storage medium containing program code that when processed by a computing system causes the computing system to simulate behavioral operation of an electronic circuit, said electronic circuit comprising:

an image processing unit, comprising:

a network;

a plurality of stencil processor circuits each comprising an array of execution unit lanes coupled to a two-dimensional shift register array structure that supports bi-directional data movements along a horizontal axis and supports bi-directional data movements along a vertical axis, the array of execution unit lanes and the two-dimensional shift register to simultaneously process multiple overlapping stencils through execution of program code;

a plurality of sheet generators respectively coupled between the plurality of stencil processors and the network, the sheet generators to parse input line groups of image data into input sheets of image data for processing by the stencil processors, and, to form output line groups of image data from output sheets of image data received from the stencil processors;

a plurality of line buffer units coupled to the network to pass line groups of image data in a direction from producing stencil processors to consuming stencil processors to implement an overall program flow.

9. The machine readable storage medium of claim 8 wherein the image processing unit is configurable to implement a DAG overall program flow.

10. The machine readable storage medium of claim 8 wherein the image processing unit is configurable to implement an image processing pipeline flow.

11. The machine readable storage medium of claim 8 wherein the image processing unit is configurable to cause a producing stencil processor to feed more than one consuming stencil processor.

12. The machine readable storage medium of claim 8 wherein the image processing unit is configurable to cause a consuming stencil processor to be fed by more than one producing stencil processor.

13. The machine readable storage medium of claim 8 wherein the image processing unit is configurable to simultaneously process different image streams with different stencil processors.

14. The machine readable storage medium of claim 8 wherein the array of execution unit lanes operate in SIMD fashion.

15. A computing system, comprising:

an image processing unit, comprising:

a network;

a plurality of stencil processor circuits each comprising an array of execution unit lanes coupled to a two-dimensional shift register array structure that supports bi-directional data movements along a horizontal axis and supports bi-directional data movements along a vertical axis to simultaneously process multiple overlapping stencils through execution of program code;

a plurality of sheet generators respectively coupled between the plurality of stencil processors and the network, the sheet generators to parse input line groups of image data into input sheets of image data for processing by the stencil processors, and, to form output line groups of image data from output sheets of image data received from the stencil processors;

a plurality of line buffer units coupled to the network to pass line groups of image data in a direction from producing stencil processors to consuming stencil processors to implement an overall program flow.

16. The computing system of claim 15 wherein the image processing unit is configurable to implement a DAG overall program flow.

17. The computing system of claim 15 wherein the image processing unit is configurable to implement an image processing pipeline flow.

18. The computing system of claim 15 wherein the image processing unit is configurable to cause a producing stencil processor to feed more than one consuming stencil processor.

19. The computing system of claim 15 wherein the image processing unit is configurable to cause a consuming stencil processor to be fed by more than one producing stencil processor.

20. The computing system of claim 15 wherein the image processing unit is configurable to simultaneously process different image streams with different stencil processors.

21. The computing system of claim 15 wherein the array of execution unit lanes operate in SIMD fashion.

Assignments (2)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2015
From: ZHU, QIULING; SHACHAM, OFER; MEIXNER, ALBERT; REDGRAVE, JASON RUPERT; FINCHELSTEIN, DANIEL FREDERIC; PATTERSON, DAVID; DESAI, NEETI; STARK, DONALD; CHANG, EDWARD T.; MARK, WILLIAM R.
To: GOOGLE INC.
Reel/Frame 035484/0470 →
Continuity (1)
Related Publication 20160314555A1 · Oct 27, 2016