Program Code Transformations to Improve Image Processor Runtime Efficiency
AssigneeGoogle Inc.
InventorsHyunchul Park, Albert Meixner
Life of this patent
Estimating the term…
Loading patent…
AssigneeGoogle Inc.
InventorsHyunchul Park, Albert Meixner
Estimating the term…
A method is described. The method includes constructing an image processing software data flow in which a buffer stores and forwards image data being transferred from a producing kernel to one or more consuming kernels. The method also includes recognizing that the buffer has insufficient resources to store and forward the image data. The method also includes modifying the image processing software data flow to include multiple buffers that store and forward the image data during the transfer of the image data from the producing kernel to the one or more consuming kernels.
A machine readable storage medium containing program code that when processed by a computing system causes the computing system to perform a method, comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Backward citations are indexed for grants only.
Allocation of resources, e.g. of the central processing unit [CPU]: to service a request
By program, e.g. task dispatcher, supervisor, operating system: scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
General purpose image data processing: processor architectures; Processor configuration, e.g. pipelining
General purpose image data processing: memory management
Term end not estimated
The field of invention pertains generally to image processing, and, more specifically, to program code transformations to improve image processor runtime efficiency.
Image processing typically involves the processing of pixel values that are organized into an array. Here, a spatially organized two dimensional array captures the two dimensional nature of images (additional dimensions may include time (e.g., a sequence of two dimensional images) and data type (e.g., colors). In a typical scenario, the arrayed pixel values are provided by a camera that has generated a still image or a sequence of frames to capture images of motion. Traditional image processors typically fall on either side of two extremes.
A first extreme performs image processing tasks as software programs executing on a general purpose processor or general purpose-like processor (e.g., a general purpose processor with vector instruction enhancements). Although the first extreme typically provides a highly versatile application software development platform, its use of finer grained data structures combined with the associated overhead (e.g., instruction fetch and decode, handling of on-chip and off-chip data, speculative execution) ultimately results in larger amounts of energy being consumed per unit of data during execution of the program code.
The following description and accompanying drawings are used to illustrate embodiments of the invention. In the drawings:
FIG. 1 shows an embodiment of an image processor hardware architecture;
FIGS. 2a, 2b, 2c, 2d and 2e depict the parsing of image data into a line group, the parsing of a line group into a sheet and the operation performed on a sheet with overlapping stencils;
i. Introduction
The description below describes numerous embodiments concerning a new image processing technology platform that provides a widely versatile application software development environment that uses larger blocks of data (e.g., line groups and sheets as described further below) to provide for improved power efficiency.
a. Image Processor Hardware Architecture and Operation