Method of compiling compositing expressions for optimised rendering
First Claim
1. A method of creating a pixel image, the pixel image to be formed by rendering and compositing a plurality of graphical objects according to an expression tree representing a compositing expression for the image, at least one of said graphical objects being non-rectangular, the expression tree comprising a plurality of nodes arranged in a hierarchical structure, each of said nodes representing one of the objects or a compositing operation for combining graphical objects or results of other compositing operations, each of the graphical objects having a predetermined object outline forming a region comprising a plurality of pixels therein, said method comprising the steps of:
- determining an active region for each of the graphical object nodes, the active region for each particular graphical object node being equal to the region inside the predetermined object outline for the graphical object represented by the particular graphical object node;
determining an active region for each of the compositing operation nodes, the active region for each particular compositing operation node being determined based on the active regions of each child node of the particular compositing operation node;
determining a clip region for each of the compositing operation nodes, the clip region for each particular compositing operation node being equal to the intersection of the active region of the particular compositing operation node and the clip region of a parent compositing operation node of the particular compositing operation node, at least one of the clip regions determined for one of the compositing operation nodes being smaller in area than the active region for said one compositing operation node;
determining an effective region for each of the compositing operation nodes, the effective region for each particular compositing operation node being equal to the intersection of the clip region of the particular compositing operation node and the active regions of the child nodes of the particular compositing operation node, at least one of said effective regions determined for one of said compositing operation nodes being smaller in area than the clip region for said one compositing operation node; and
applying the compositing operation represented by each operation node to the pixels falling wholly within the corresponding effective region for the operation node to create the image, wherein pixels falling outside the effective regions are disregarded in applying the compositing operations and the arrangement of nodes in the hierarchical structure remains stable during the creation of the image.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of creating an image utilizing a table of levels known as a “level activation table” (34) is disclosed. The method uses the level activation table to optimally evaluate a given compositing expression such that the number of pixel operations needed to evaluate the expression is minimized. The method determines the smallest regions in which compositing operations need to be performed and uses these regions to produce the level activation tables where clipping is applied to operations in order to avoid redundant and/or incorrect pixel operations. The method is preferably used in a compositing model in which objects are composited onto a page using a stack machine and an associated compositing stack (38). The stack 38 may be manipulated using standard stack operations such as push, pull and pop. Instructions for the stack machine are taken from the level activation table 34.
128 Citations
51 Claims
-
1. A method of creating a pixel image, the pixel image to be formed by rendering and compositing a plurality of graphical objects according to an expression tree representing a compositing expression for the image, at least one of said graphical objects being non-rectangular, the expression tree comprising a plurality of nodes arranged in a hierarchical structure, each of said nodes representing one of the objects or a compositing operation for combining graphical objects or results of other compositing operations, each of the graphical objects having a predetermined object outline forming a region comprising a plurality of pixels therein, said method comprising the steps of:
-
determining an active region for each of the graphical object nodes, the active region for each particular graphical object node being equal to the region inside the predetermined object outline for the graphical object represented by the particular graphical object node; determining an active region for each of the compositing operation nodes, the active region for each particular compositing operation node being determined based on the active regions of each child node of the particular compositing operation node; determining a clip region for each of the compositing operation nodes, the clip region for each particular compositing operation node being equal to the intersection of the active region of the particular compositing operation node and the clip region of a parent compositing operation node of the particular compositing operation node, at least one of the clip regions determined for one of the compositing operation nodes being smaller in area than the active region for said one compositing operation node; determining an effective region for each of the compositing operation nodes, the effective region for each particular compositing operation node being equal to the intersection of the clip region of the particular compositing operation node and the active regions of the child nodes of the particular compositing operation node, at least one of said effective regions determined for one of said compositing operation nodes being smaller in area than the clip region for said one compositing operation node; and applying the compositing operation represented by each operation node to the pixels falling wholly within the corresponding effective region for the operation node to create the image, wherein pixels falling outside the effective regions are disregarded in applying the compositing operations and the arrangement of nodes in the hierarchical structure remains stable during the creation of the image. - View Dependent Claims (2, 3)
-
-
4. A method of creating a pixel image, the pixel image to be formed by rendering and compositing a plurality of graphical objects according to an expression tree representing a compositing expression for the image, at least one of said graphical objects being non-rectangular, the expression tree comprising a plurality of nodes arranged in a hierarchical structure, each of said nodes representing one of the objects or a compositing operation for combining graphical objects or results of other compositing operations, each of the graphical objects having a predetermined object outline forming a region comprising a plurality of pixels therein, said method comprising the steps of:
-
determining an active region corresponding to each of the graphical object nodes, the active region for each particular graphical object node being equal to the region inside the predetermined object outline for the graphical object represented by the particular graphical object node; determining an active region for each of the compositing operation nodes, the active region for each particular compositing operation node being determined based on the active regions of each child node of the particular compositing operation node; determining a clip region for the compositing operation nodes, the clip region for each particular compositing operation node being equal to the intersection of the active region of the particular compositing operation node and the clip region of a parent compositing operation nodes of the particular compositing operation node, at least one of the clip regions determined for one of the compositing operation nodes being smaller in area than the active region for said one compositing operation node; determining an effective region for each of the compositing operation nodes, the effective region for each particular compositing operation node being equal to the intersection of the clip region of the particular compositing operation node and active regions of the child nodes of the particular compositing operation node, at least one of said effective regions determined for one of said compositing operation nodes being smaller in area than the clip region for said one compositing operation node; mapping the effective regions and compositing operations associated with corresponding compositing operation nodes into a compositing table, comprising a plurality of levels, wherein each level of the compositing table represents one of the operators or an outline for clipping at least one other level; and compositing the image using the compositing table, wherein pixels falling outside the effective regions are disregarded in applying the compositing operations and the arrangement of nodes in the hierarchical structure remains stable during the creation of the image. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method of creating a pixel image, the pixel image to be formed by rendering and compositing a plurality of graphical objects according to a hierarchically structured compositing expression, each of the graphical objects having a predetermined object outline forming a region comprising a plurality of pixels therein and at least one of said graphical objects being non-rectangular, such that an object region formed by each particular object outline of each particular graphical object is wholly within the particular graphical object and is formed wholly from the plurality of pixels, the hierarchically structured compositing expression comprising a plurality of nodes arranged in a hierarchical structure, each of the nodes representing one or more compositing operations, each compositing operation being defined by at least one compositing operator and one or more operands, each of the operands representing one of the graphical objects or a sub-expression representing the result of another of the compositing operations, said method comprising the steps of:
-
determining an active region for at least each sub-expression of the hierarchically structured compositing expression, each active region being determined based on the operators contained in the corresponding sub-expression, such that the active region of each particular graphical object represented by a corresponding one of said sub-expressions is equal to the region inside the predetermined object outline for the particular graphical object; determining a clip region for the sub-expressions, the clip region for each particular sub-expression being equal to the intersection of the active region of the particular sub-expression and the clip region of a parent compositing operation of the particular sub-expression, at least one of the clip regions determined for one of the sub-expressions being smaller in area than the active region for said one sub-expression; determining an effective region for each of the compositing operations of the hierarchically structured compositing expression, the effective region for each particular compositing operation being equal to the intersection of the clip region of the particular compositing operation and the active regions of the operands of the particular compositing operation, at least one of said effective regions determined for one of said compositing operations being smaller in area than the clip region for said one compositing operation; mapping each effective region and corresponding compositing operation into a compositing table, comprising a plurality of levels, wherein each level of the compositing table represents one of the operators or an outline for clipping at least one other level; and evaluating the hierarchically structured compositing expression using the compositing table, wherein pixels falling outside the effective regions are disregarded in applying the compositing operations and the arrangement of nodes in the hierarchical structure remains stable during the creation of the image. - View Dependent Claims (25)
-
-
26. A method of creating a pixel image, the pixel image to be formed by compositing at least a plurality of graphical objects according to one or more compositing operations, each graphical object having a predetermined object outline forming a region comprising a plurality of pixels therein and at least one of said graphical objects being non-rectangular, the one or more compositing operations comprising a plurality of nodes arranged in a hierarchical structure, each of the nodes representing one or more compositing operations, each compositing operation being defined by at least one compositing operator and one or more operands, each of the operands representing one of the graphical objects or a result of another of the compositing operations, said method comprising the steps of:
-
determining an active region for each of the graphical object operands, such that the active region of each particular graphical object represented by a corresponding one of said operands is equal to the region inside the predetermined object outline for said particular graphical object; determining an active region for each of the compositing operations, the active region for each particular compositing operation being determined based on the active regions associated with each operand of the particular compositing operation; determining an effective region for each of the compositing operations, wherein the effective region for each particular compositing operation is equal to the intersection of a clip region of the particular compositing operation and one or more of the active regions of the operands of the particular compositing operation, the clip region for each particular compositing operation being equal to the intersection of the active region of the particular compositing operation and the clip region of a parent compositing operation of the particular compositing operation, at least one of the clip regions determined for one of the compositing operations being smaller in area than the active region for said one compositing operation, at least one of said effective regions determined for one of said one compositing operation being smaller in area than the clip region for said one compositing operation; mapping the effective regions and corresponding compositing operations into a compositing table, comprising a plurality of levels, wherein each level of the compositing table represents one of the operators or an outline for clipping at least one other level; and compositing the image using the compositing table, wherein pixels falling outside the effective regions are disregarded in applying the compositing operations and the arrangement of nodes in the hierarchical structure remains stable during the creation of the image. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. A method of creating a pixel image, the pixel image to be formed by rendering and compositing a plurality of graphical objects according to a hierarchical structure representing a compositing expression for the image, at least one of said graphical objects being non-rectangular, the hierarchical structure including a plurality of nodes, each node being associated with either a compositing operator or an operand of the compositing expression, each operand representing one of the graphical objects or a result of a sub-expression of the compositing expression, each of the graphical objects having a predetermined object outline forming a region comprising a plurality of pixels therein, said method comprising the steps of:
-
determining an active region for at least each sub-expression of the compositing expression, such that the active region of each particular graphical object represented by a corresponding one of said sub-expression is equal to the region inside the predetermined object outline for the particular graphical object and the active region for each particular sub-expression being determined based on the active regions associated with further sub-expressions containing the particular sub-expression; determining a clip region for the sub-expression, the clip region for each particular sub-expression being equal to the intersection of the active region of the particular sub-expression and the clip region of a parent compositing operation of the particular sub-expression, at least one of the clip regions determined for one of the sub-expressions being smaller in area than the active region for said one sub-expression; determining an effective region for each of the nodes, each of the effective regions having a corresponding compositing operation, the effective region for each particular node being equal to the intersection of the clip region and the active regions associated with the child nodes of the particular node, at least one of said effective regions determined for one of said nodes being smaller in area than the clip region for said one node; and applying the corresponding compositing operations substantially to the effective regions to create the image, wherein pixels falling outside the effective regions are disregarded in applying the compositing operations and the arrangement of nodes in the hierarchical structure remains stable during the creation of the image. - View Dependent Claims (47, 48)
-
-
49. A computer readable medium storing a program for an apparatus which processes graphical objects intended to form a raster pixel image, the processing comprising a method of creating a pixel image, the pixel image to be formed by rendering at least a plurality of graphical objects to be composited according to a hierarchical structure representing a compositing expression for the image, at least one of said graphical objects being non-rectangular, the hierarchical structure including a plurality of nodes, each node being associated with either a compositing operator or an operand of the compositing expression, each of the operands representing one of the graphical objects or a result of a sub-expression of the compositing expression, each of the graphical objects having a predetermined object outline forming a region comprising a plurality of pixels therein, said program comprising:
-
code for determining an active region for at least each sub-expression of the compositing expression, such that the active region of each particular graphical object represented by a corresponding one of said sub-expression is equal to the region inside the predetermined object outline for the particular graphical object and the active region for a particular sub-expression determined based on the active regions associated with further sub-expressions containing the particular sub-expression; code for determining a clip region for the sub-expressions, the clip region for each particular sub-expression being equal to the intersection of the active region of the particular sub-expression and the clip region of a parent compositing operation of the particular sub-expression, at least one of the clip regions determined for one of the sub-expressions being smaller in area than the active region for said one sub-expression; code for determining an effective region for each of the nodes, each of the effective regions having a corresponding compositing operation, the effective region for each particular node being equal to the intersection of the clip region and the active regions associated with the child nodes of the particular node, at least one of said effective regions determined for one of said nodes being smaller in area than the clip region for said one node; and code for applying the corresponding compositing operations substantially to the effective regions to create the image, wherein pixels falling outside the effective regions are disregarded in applying the compositing operations and the arrangement of nodes in the hierarchical structure remains stable during the creation of the image. - View Dependent Claims (50, 51)
-
Specification