Scan line rendering of convolutions
First Claim
1. A method of applying an operator having a finite mask to at least one object selected from a plurality of individually manipulable graphical objects in an image, the image being represented in an object-based graphics environment, said method comprising the steps of:
- (a) providing an expression tree representation of the image, the expression tree comprising a plurality of nodes;
(b) associating a render number with at least one of the nodes, the or each render number specifying a number of scan lines to be rendered in advance of a current scan line for the associated node;
(c) providing the finite mask having a plurality of coefficients, wherein the coefficients are arranged in a predetermined number of rows and a predetermined number of columns;
(d) providing a buffer means adapted to store a portion of the at least one object in the image;
(e) rendering to the buffer means at least a predetermined number of scan lines of the at least one object in the image substantially equal to the number of rows or the number of columns of the mask; and
(f) applying the mask to the rendered plurality of scan lines to produce a scan line of an output image.
2 Assignments
0 Petitions
Accused Products
Abstract
A convolution operator is applied to an input image to produce an output image. Image pixel data corresponding to at least a predetermined number of scan lines of the input image is provided to a buffer memory adapted to store a portion of the image. The image data may be provided from a source of such data, or alternatively it may be rendered from an object graphics environment. A finite convolution mask is applied to the image pixel data to produce a scan line of the output image. The finite convolution mask has a plurality of coefficients arranged in a predetermined number of rows and a predetermined number of columns, and the predetermined number of scan lines substantially equals at least one of the number of rows or the number of columns of the convolution mask. In a preferred implementation, a scan line of the input image is discarded and a next scan line is provided for each scan line of the output image produced by the convolution.
19 Citations
41 Claims
-
1. A method of applying an operator having a finite mask to at least one object selected from a plurality of individually manipulable graphical objects in an image, the image being represented in an object-based graphics environment, said method comprising the steps of:
-
(a) providing an expression tree representation of the image, the expression tree comprising a plurality of nodes;
(b) associating a render number with at least one of the nodes, the or each render number specifying a number of scan lines to be rendered in advance of a current scan line for the associated node;
(c) providing the finite mask having a plurality of coefficients, wherein the coefficients are arranged in a predetermined number of rows and a predetermined number of columns;
(d) providing a buffer means adapted to store a portion of the at least one object in the image;
(e) rendering to the buffer means at least a predetermined number of scan lines of the at least one object in the image substantially equal to the number of rows or the number of columns of the mask; and
(f) applying the mask to the rendered plurality of scan lines to produce a scan line of an output image. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of applying an operator having a finite mask to at least one object selected from a plurality of individually manipulable graphical objects in an image, the image being represented in an object-based graphics environment, said method comprising the steps of:
-
(a) providing an instruction sequence representation of the image;
(b) associating a render number with at least one instruction in the instructing sequence, the or each render number specifying a number of scan lines to be rendered in advance of a current scan line for the associated instruction;
(c) providing the finite mask having a plurality of coefficients, wherein the coefficients are arranged in a predetermined number of rows and a predetermined number of columns;
(d) providing a buffer means adapted to store a portion of the at least one object in the image;
(e) rendering to the buffer means at least a predetermined number of scan lines of the at least one object in the image substantially equal to the number of rows or the number of columns of the mask; and
(f) applying the mask to the rendered plurality of scan lines to produce a scan line of an output image. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method of rendering an image in an object-based graphics environment, the image being rendered by applying rendering operations to at least one object selected from a plurality of individually manipulable graphical objects in the image, wherein at least one said rendering operation is defined by a finite mask comprising a plurality of coefficients arranged in a predetermined number of rows and a predetermined number of columns, said method including the steps of:
-
(a) providing an expression tree representation of the image, the expression tree comprising a plurality of nodes;
(b) associating a render number with at least one of the nodes, the or each render number specifying a number of scan lines to be rendered in advance of a current scan line for the associated node;
(c) providing a buffer means for storing a portion of an input to the operation, wherein the portion comprises at least a predetermined number of scan lines of input data, the predetermined number of scan lines substantially equaling at least one of the number of columns or number of rows of the mask;
(d) applying the finite mask to the stored portion in the buffer means to produce a scan line of output that corresponds to the stored input portion; and
(e) utilizing the scan line of output in at least one subsequent said rendering operation for rendering the image. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A method of rendering an image in an object-based graphics environment, the image being rendered by applying rendering operations to at least one object selected from a plurality of individually manipulable graphical objects in the image, wherein at least one the rendering operation is defined by a finite mask comprising a plurality of coefficients arranged in a predetermined number of rows and a predetermined number of columns, said method including the steps of:
-
(a) providing an expression tree representation of the image, the expression tree comprising a plurality of nodes, wherein one or more said nodes have associated therewith a render number that specifies the number of scan lines to be rendered in advance of a current scan line;
(b) storing a portion of the at least one object in a buffer means, wherein the portion comprises at least a predetermined number of rendered scan lines of input data, the predetermined number of rendered scan lines substantially equaling at least one of the number of rows or the number of columns of the finite mask;
(c) applying the finite mask to the stored portion in the buffer means to produce a scan line of output that corresponds to the stored input portion;
(d) utilising the scan line of output in at least one subsequent said rendering operation for rendering the image; and
(e) repeating steps (b) and (c) to produce a plurality of scan lines of output, wherein in step (b) a scan line is discarded from the buffer means and a next scan line is provided for each scan line of output. - View Dependent Claims (23, 24)
-
-
25. Apparatus for applying an operator having a finite mask to at least one object selected from a plurality of individually manipulable graphical objects in an image, said image being represented in an object-based graphics environment, said apparatus comprising:
-
means for providing an expression tree representation of the image, the expression tree comprising a plurality of nodes;
means for associating, a render number with at least one node of the expression tree, the or each render number with at least one node of the expression tree, the or each render number specifying a number of scan lines to be rendered in advance of a current scan line for the associated node;
first means for providing said finite mask having a plurality of coefficients, wherein said coefficients are arranged in a predetermined number of rows and a predetermined number of columns;
buffer means adapted to store a portion of the at least one object in the image;
second means for rendering to said buffer means at least a predetermined number of scan lines of said at least one object in said image, said predetermined number of scan lines being substantially equal to the number of rows or the number of columns of said finite mask; and
third means for applying the finite mask to said plurality of scan lines to produce a scan line of an output image. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. Apparatus for applying an operator having a finite mask to at least one object selected from a plurality of individually manipulable graphical objects in an image, said image being represented in an object-based graphics environment, said apparatus comprising:
-
means for providing an instruction sequence representation, of the image;
means for associating a render number with at least one instruction in said instruction sequence, the or each render number specifying a number of scan lines to be rendered in advance of a current scan line for the instruction;
first means for providing said finite mask having a plurality of coefficients, wherein the coefficients are arranged in a predetermined number of rows and a predetermined number of columns;
buffer means adapted to store a portion of the at least one object in the image;
second means for rendering to said buffer means at least a predetermined number of scan lines of the at least one object in the image, said predetermined number of scan lines being substantially equal to the number of rows or the number of columns of said finite mask; and
third means for applying the finite mask to said plurality of scan lines to produce a scan line of an output image.
-
-
36. A computer program product comprising a computer readable medium having a computer program recorded thereon for applying an operator having a finite mask to at least one object selected from a plurality of individually manipulable graphical objects in an input image, the input image being represented in an object-based graphics environment, said computer program comprising:
-
code for providing an expression tree representation of the image, the expression tree comprising a plurality of nodes, wherein one or more nodes of the expression tree have associated therewith a render number that specifies the number of scan lines to be rendered in advance of a current scan line for the associated node;
code for providing the finite mask having a plurality of coefficients, wherein the coefficients are arranged in a predetermined number of rows and a predetermined number of columns;
code for rendering to a buffer means adapted to store a portion of said at least one object in said image at least a predetermined number of scan lines of the at least one object in the image substantially equal to the number of rows or the number of columns of the finite mask; and
code for applying the finite mask to said rendered plurality of scan lines to produce a scan line of an output image. - View Dependent Claims (37, 38, 39, 40)
-
-
41. A computer program product comprising a computer readable medium having a computer program recorded thereon for rendering an image in an object-based graphics environment, the image being represented by an expression tree representation comprising a plurality of nodes, wherein one or more of the nodes have associated therewith a render number that specifies the number of scan lines to be rendered in advance of a current scan line, the image being rendered by applying rendering operations to at least one object selected from a plurality of individually manipulable graphical objects in the image, wherein at least one said rendering operation is defined by a finite mask comprising a plurality of coefficients arranged in a predetermined number of rows and a predetermined number of columns, said computer program comprising:
-
means for storing a portion of the at least one object in a buffer, wherein the portion comprises at least a predetermined number of rendered scan lines of input data, said predetermined number of rendered scan lines substantially equaling at least one of the number of columns or number of rows of said finite mask;
first means for applying the convolution mask to the stored portion in said buffer to produce a scan line of output that corresponds to the stored input portion; and
second means for utilising said scan line of output in at least one subsequent said rendering operation for rendering the image.
-
Specification