High-level program interface for graphics operations
First Claim
Patent Images
1. A method of editing an initial image, comprising the steps of, A first process requesting a filter from a second process;
- Said first process defining a relationship between said filter and said initial image, said related filter and initial image comprising a program, Said second process compiling said program, yielding a compiled program;
Running at least a portion of said compiled program to apply a function of said filter to said image, yielding an pixel-image result
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a system for producing images including an application program interface. The system includes an API and techniques for creating images by defining relationships between filters and images, such relationships programmatically assembled in an object by a cooperative session between a requesting application and a graphics services resource. The system also includes aspects regarding optimization of the programmatically assembled object and techniques for rendering in multi-processor environment.
127 Citations
85 Claims
-
1. A method of editing an initial image, comprising the steps of,
A first process requesting a filter from a second process; -
Said first process defining a relationship between said filter and said initial image, said related filter and initial image comprising a program, Said second process compiling said program, yielding a compiled program;
Running at least a portion of said compiled program to apply a function of said filter to said image, yielding an pixel-image result - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 85)
-
-
22. A system for editing an initial image, comprising:
-
A first microprocessor running a first process and a second process for servicing requests from said first process;
A memory for storing a filter, said filter requested by said first process;
A second memory for storing a data structure comprising a relationship between said initial image and said filter, said first process causing the creation of said data structure;
A second microprocessor for running a program created using said data structure;
A third memory for storing a pixel image resulting from running said program. - View Dependent Claims (23, 24, 25, 26, 27)
-
-
28. A method of creating an result image comprising the steps of:
-
a first process requesting the creation of a context;
said first process requesting the creation of a result image;
said first process indicating parameters associated with the creation of said result image;
said first process requesting that said result image be rendered to said context;
a second process servicing said requests of said first process, said servicing comprising the steps of;
optimizing a graph representing said result image;
compiling said optimized graph;
causing the rendering of said compiled optimized graph into said context. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. A method of creating an result image comprising the steps of:
-
a first process running on a first microprocessor requesting the creation of a context;
said first process requesting the creation of a result image;
said first process indicating parameters associated with the creation of said result image;
said first process requesting that said result image be rendered to said context;
a second process running on said first microprocessor servicing said requests of said first process, said servicing comprising the steps of;
optimizing a graph representing said result image;
compiling said optimized graph;
causing rendering of said compiled optimized graph into said context, said rendering occurring on a second microprocessor. - View Dependent Claims (44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57)
-
-
58. A method for providing a high level interface to a graphics processing resource comprising:
-
A first process requesting performance of a task through one or more function calls serviced by said graphics processing resource, said function calls selected from one or more of the following options, (i) creating of an image, (ii) creating a filter, (iii) setting arguments associated with said filter, (iv) asking for the output of said filter or another filter, (v) creating a context; and
(v) rendering a image to said context or another context;
Said request having an object associated therewith, said object comprising one of the following;
a context, an image, a filter, or a vector;
Said request defining a relationship between at least one of said functions and one of said objects, Said graphics processing resource servicing said request. - View Dependent Claims (59, 60, 61, 62)
-
-
63. A method for providing a high level interface to a graphics processing resource comprising:
-
A first process requesting performance of a task through one or more function calls serviced by said graphics processing resource, said function calls selected from one or more of the following options, (i) creating of an image, (ii) creating a context; and
(v) rendering a image to said context or another context;
Said request having an object associated therewith, said object comprising one of the following;
a context, or an imageSaid request defining a relationship between at least one of said functions and one of said objects, Said graphics processing resource servicing said request. - View Dependent Claims (64, 65, 66, 67, 68, 69, 70, 71, 72, 73)
-
-
74. A method for rendering an image comprising the steps of,
A first process running on a CPU requesting the creation of an image; -
A graphics services resource, responding to said request by running a first routine on said CPU, said first routine for optimizing a graph representing said image;
Said first process requesting the rendering of said image to a specified context;
Said graphics services resource causing the rendering of said graph representing said image, said rendering occurring on a GPU.
-
-
75. A method for converting a first image representation into a second image representation, comprising the steps of
Creating a first graph associated with said first image representation where software routines for creating such graph execute on a CPU, Determining an intersection of the first graph'"'"'s global domain of definition and global region of interest; Resolving a first node in said first graph by running software routines on said CPU to (i) determine if said first node may be combined with a second node and (ii) create program steps for calculating and storing only the portions of any intermediary mage that relate to said intersection, said program steps for compilation on said CPU and execution on a GPU. - View Dependent Claims (76, 77, 78)
-
79. An image processing application program interface embodied on one or more computer readable media, comprising:
- a first group of services related to filter objects;
a second group of services related to image objects;
a third group of services related to context objects; and
a fourth group of services related to vector objects. - View Dependent Claims (80, 81, 82, 83)
- a first group of services related to filter objects;
-
84. An application program interface for facilitating image processing, the application program interface comprising functions to:
- create image objects;
create context objects;
create filter objects;
set filter object parameters;
obtain filter object output; and
convert image objects into context objects.
- create image objects;
Specification