AU2691199A - Optimisation in image composition - Google Patents

Optimisation in image composition Download PDF

Info

Publication number
AU2691199A
AU2691199A AU26911/99A AU2691199A AU2691199A AU 2691199 A AU2691199 A AU 2691199A AU 26911/99 A AU26911/99 A AU 26911/99A AU 2691199 A AU2691199 A AU 2691199A AU 2691199 A AU2691199 A AU 2691199A
Authority
AU
Australia
Prior art keywords
color mapping
mapping operation
node
expression tree
distributing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
AU26911/99A
Other versions
AU730559B2 (en
Inventor
George Politis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AUPP3604A external-priority patent/AUPP360498A0/en
Application filed by Canon Inc filed Critical Canon Inc
Priority to AU26911/99A priority Critical patent/AU730559B2/en
Publication of AU2691199A publication Critical patent/AU2691199A/en
Application granted granted Critical
Publication of AU730559B2 publication Critical patent/AU730559B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Landscapes

  • Image Analysis (AREA)

Description

S F Ref: 452336
AUSTRALIA
PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT
ORIGINAL
r Name and Address of Applicant: Actual Inventor(s): Address for Service: Invention Title: ASSOCIATED PROVISIONAL [31] Application No(s) PP3604 Canon Kabushiki Kaisha 30-2, Shimomaruko 3-chome Ohta-ku Tokyo 146
JAPAN
George Politis Spruson Ferguson, Patent Attorneys Level 33 St Martins Tower, 31 Market Street Sydney, New South Wales, 2000, Australia Optimisation in Image Composition APPLICATION DETAILS 133] Country
AU
[32] Application Date 20 May 1998 The following statement is a full description of this invention, including the best method of performing it known to me/us:- 5815 -1- OPTIMISATION IN IMAGE COMPOSITION Field of the Invention The present invention relates to the creation of images on a digital computer system and, in particular, to the compositing of images together so as to form a final composite image.
Background of the Invention The creation of digital images from multiple parts by means of compositing is well known and is discussed in the article "Compositing Digital Images" T. Porter, T. Duff; Computer Graphics Vol.18, No.3, July 1984, pages 253-259.
The use of compositing techniques relying upon alpha channel opacity values has become increasingly popular.
Unfortunately, it is often the case that the images to be composited together contain a large number of pixels which must be composited on a pixel-by-pixel basis. With increasing display resolutions and the use of full color images, the computational complexity requirements in compositing images increase at approximately the square of the image resolution. Additionally, with increasing complexity of computational hardware devices utilised in the creation of images, there is a propensity for the creation of more and more complex images with the degree of complexity also increasing.
25 The creation of images from multiple parts can often be represented by an expression tree which describes the structure of the image creation utilising a series of operators. The expression tree is then evaluated, or rendered it into a corresponding image, typically by a 452336 CFP1284AU Open-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc -2method of "rasterizing" on, what has become known as, a raster image processor, or "RIP". The representation of an image in the form of an expression tree allows for a large number of optimisations of the expression tree to be performed. For a full discussion of the utilisation of expression trees and some of the optimisations which can be performed, reference is made to Australian Patent Publication No. AU-A-23362/95, (Attorney Ref: 303340 CFP0325 Openll) corresponding to U.S. Patent Application No.
08/505,480, each entitled "Efficient Methods for the Compositing of Graphical Elements".
Summary of the Invention It is an object of the present invention to provide for optimisations which can be utilised in the production of images through image composition and in particular, expression tree optimisations.
In accordance with the first aspect of the present invention there is provided a method of improving the S: execution of an expression tree describing a digital image to be created on a computer system, the method comprising the steps of analysing the structure of the expression tree to determine if a more efficient operation of color mapping operations can be performed by an altered expression tree, the more efficient operation producing substantially 25 equivalent output results; and altering the expression tree in accordance with the more efficient operation.
Preferably, the more efficient operation includes combining a color mapping operation with a leaf node of the expression tree or combining a color mapping operation with 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc
__I
-3a unary node of the expression tree or distributing a color mapping operation past a binary node of the expression tree.
In accordance with the second aspect of the present invention there is provided a method of improving the execution of an expression tree describing in digital image to be created on a computer system, the method comprising the step of traversing the expression tree and for each color mapping operation in the expression tree: determining a cost of distributing the color map into subtrees of the color mapping operation node and what modifications will be required to give effect to the optimisation; comparing the cost of distributing the color map with the cost of leaving it in its present position, and if the cost of distribution is smaller then leaving it in its present position, deleting the color mapping operation and performing the modifications, otherwise leaving the expression tree unchanged.
ooool Brief Description of the Drawings ".Notwithstanding any other forms which may fall within 20 the scope of the present invention, preferred forms of the go invention will now be described, by way of example only, with reference to the accompanying drawings in which: Fig. 1 illustrates an example compositing process; *Fig. 2 illustrates a corresponding expression tree to the compositing process of Fig. 1; Figs. 3 to 7C illustrate various color map optimisations *that can be applied to an expression tree; Fig. 8 is a flow chart depicting the method of the preferred embodiment; 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc -4- Fig. 9 is a schematic block diagram of a computer system in which the preferred embodiments may be performed; and Fig. 10 is a flow chart depicting the method of another embodiment.
Description of Preferred and Other Embodiments In the preferred embodiment, a number of optimisations are made to an expression tree type representation of an image. These optimisations relate primarily to the utilisation of color maps within images.
By way of introduction, there will now be explained a simplified form of expression tree operation which will help to illustrate the process of image creation via an expression tree. Turning initially to Fig. 1, there is illustrated an example of the image composition process. In this example, two initial images 1, 2, with the image 1 being defined in the area of the circle 3 and the image 2 being defined in the area of the square 4, are combined together utilising a compositing operator, "over", to form a 'final image 5 where the effect produced is to place the 20 image 1 "over" the image 2. Subsequently, a color map is applied to the image so as to re-map the colors within the image to form new image 6.
In Fig. 2, there is illustrated a simple corresponding expression tree 10 corresponding to the final image 6 of Fig. 1. The expression tree 10 consists of two images, the circle and square being combined utilising the "over" operator and the utilisation of a color re-mapping function to re-map the colors. The utilisation of the "over" operator is set out in the above referenced documents. In 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc general, the leaf nodes in the expression tree 10 represent graphics primitives, binary nodes represent compositing operators and unary nodes represent operations such as color maps, sharpening, blurring, filtering etc.
In respect of color map operations, a color map is a mathematically specified transformation on color,
(CC
2 f(c C i 2 (a) where the color is typically specified in a trichromatic color space. Histogram equalisation is a well known example. Often, a color map is a transformation on the representation of the same color from one color space to another.
In the context of alpha-channel compositing, it is sometimes useful to include the alpha channel (also known as opacity) in the transformation: C I2''C 3 C' 'C 2 C3' (b) In principle, the mapping may be defined in terms of premultiplied or unpremultiplied alpha channel data. The 20 methods described initially apply to color maps that are not defined in terms of alpha channel, and that operate on unpremultiplied alpha: (c'cc 2 f(ce ,Cz2C3,a) (c) f (ccC 2
C
3 2 1 Cf 2 f c33 'c(c 1 c 25 The "evaluation" of a node in an expression tree performing the operation and producing a resultant image) involves a cost in execution time. The execution time 452336 CFP01284AU Open-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc -6depends on the nature of the operation and the algorithm used to implement the operation, and is typically roughly proportional to the number of pixels involved in the operation. Depending again on the algorithm used and the number of pixels involved, there is also a memory cost.
In the preferred embodiment, to optimise the application of a color map to an operand expression tree, techniques are utilised to distribute the color map operation into the tree to the extent that: the final output remains identical; and (ii) the result has lower execution cost.
At any point in the tree, one of three basic cases can be applied as illustrated below.
1. Primitive (leaf) node In the case of a primitive node, an attempt is made to apply the color map directly to the primitive. If the primitive has uniform color black text), it is invariably cost-effective to perform a single color-mapping operation on the one color, rather than multiple identical 20 operations on the rendered pixels the black pixels forming the text). An example of a suitable optimisation is illustrated in Fig. 3.
If the primitive's color is a blend between two colors, the color map can be applied to the two colors provided it satisfies at least to an acceptable degree of accuracy: fc 1 2 (l-)f(c 2 Eq.1 If the primitive contains many colors an image comprising many pixels), it is usually not cost-effective to 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc -7convert each pixel and the optimisation will proceed depending on the particular circumstances.
2. Unary node In the case of a unary node, one of three situations is possible.
Either the color map may be combined with the operation represented by the unary node into a single operation, or the order of operations may be reversed, or no change is possible. An example where no change is possible is if the unary node represents an image sharpening operation. An example where the order of the two operations can be combined is another color map in which case the two mappings may be composed. This may or may not be an inexpensive operation, and the relative costs need to be compared. An example where the two operations can be reversed involves a color map that satisfies Equation and a blur operation.
It also occasionally happens that the two color maps are ee.* inverses and both may be deleted altogether.
In Fig. 4, there is illustrated a process of combining 20 the two color maps 12, 13 together so as to form a single color map 15. In Fig. 5, there is illustrated an example of optimisation of an expression tree so as to delete the two color maps 18, 19 which involve a translation from RGB Scolorspace to L*A*B* colormaps. In Fig. 6, there is illustrated an example of moving a colormap down an expression tree past a blur function which does not have any substantial effect on the final output.
3. Binary nodes 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\PEN28\452336a.doC Binary nodes can be more varied in their behaviour.
Some binary operators allow distribution of a color map under certain conditions where the operation is distributive: f (c 2
C
2 f(C 1 If(C 2 Eq.2 while some do not. For example, the "over" operator satisfies Equation if the color map satisfies Equation if the left operand is opaque, or if the two operands do not overlap.
The two compositing operators, "in" and "out" also respectively satisfy f((c a, in (C 2 2 f(c 1 ,,ca)in(c 2 ,c 2 f((cl ao 1 out (C 2 ,'a 2 f (c )o.out (C 2
C
2 Eq. 3 and 4 unconditionally.
Turning to Figs. 7A to 7C, there is illustrated in Fig.
7A an initial expression tree 20 which is first optimised to form an expression tree 21 of Fig. 7B by means of distributing the color map past the over operator 22.
Subsequently, as seen in Fig. 7C, a new expression tree 23 is formed by distributing the color map past the in operator 20 24 in addition to combining the color map 26, with node 27 to form a combined node operation 28.
In developing an overall strategy of operation, it is thus possible to traverse an image composition tree depth first to find color maps. A breadth first traversal would 25 also suffice. It is also possible, once a color map has been found, to try and distribute the color map about the expression tree. However, it is not always clear what 452336 CFP01284AU OpenMB-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\PEN28\452336a.doc ~jlr~
-IX~I~;I
-9combination of decisions within the various subtrees results in optimal compositing. For example, in Figs. 7A to 7C, the final tree 23 shown will typically result in the application of the color map to fewer pixels than in the original tree 20. If, however, for some reason the color map and background could not have been combined, then the result would not have been optimal. All the pixels of the background as well as all the pixels in the overlaying image would be processed. In the original tree 20, the total number of pixels affected would be equal to just the number in the background. The difficulty is that when the decision to distribute the color map through the "over" operator is to be made, the two possible scenarios cannot be easily predicted.
A solution to this problem can be based on the following observations: 1. It is always cost-effective to combine a color map with a primitive, if it is possible to do so easily.
20 2. It is cost-effective to compose two color maps, given that it is possible to do so, if the cost of composition plus the cost of applying the composed color map is less than the cost of applying the two color maps in turn. When the color map and a unary node may be interchanged, it is no worse to always do so and indeed this may *facilitate further optimisation.
3. It is no worse to apply Equations and and this may facilitate further optimisation.
452336 CFP01284AU Op=28S-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc However, the difficulty comes with the general binary operator to which Equation may be applied. In that case, if there was a procedure that would calculate the optimal (ie. minimum) cost to apply the color map to each of its operands it would be possible to invoke the procedure for each operand and add the two costs to determine the best which could be done by distributing. Comparing this with the cost of applying the color map after performing the binary operator not distributing) would determine what is better.
Points 1, 2 and 3 above provides for a recursive procedure to be defined for determining the optimal cost.
However, if the option for distribution is taken in the binary case, it is necessary to know those decisions that had been made in arriving at that optimal tree. Further, if the binary node in question were itself buried within a left or right subtree of another binary node, the decision at the 20 node in question would have to be passed on in addition to all the earlier decisions. If it was decided not to distribute the color map, the decisions arrived at determining the costs of the subtree would have to be discarded because they would no longer contribute to the overall optimum.
A recursive procedure can be thus performed, given the root node of a subtree and a color map being applied to that subtree. The recursive procedure returns a list of modifications to that subtree that describes the optimal 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc 11 manner in which to apply the color map, and the cost of performing the color map within the modified subtree.
It is noted that this method assumes that each node has some means of determining over how many pixels the image it represents extends. It would be advantageous if its area of extent were minimised, for example, in the manner as discussed in the aforementioned patent specification.
The method of calculation of cost used can be simply the number of pixels color converted (or the cost of other operations expressed in equivalent terms). More elaborate costing strategies, for example, incorporating these setup cost of preparing a color map operation, the amount of temporary storage, or adding a per scan-line surcharge, are also possible.
An overall optimisation method 40 of the preferred embodiment can therefore proceed in the fashion depicted in Fig. 8. In the method 40, the cost used is the number of pixels color converted, multiplied by the cost per pixel of the color map being applied. Given an expression tree at 20 step 42, a traversal of the tree is performed at step 44. A depth first traversal is recommended, but is not essential P to this process. When, during the traversal, a node is encountered, the node is checked at step 46 to determined if it is a color map node. If the node is not a color map, the traversal of step 44 continues. Where the node is a color map, a determination is performed at step 48 to determine if the color map satisfies relation above. If not, the traversal continues via step 44. If relation is satisfied, steps 50 and 52 are performed to provide a cost 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc -12determination. Whilst steps 50 and 52 are illustrated in Fig. 8 as operating in parallel, they may operate serially.
Further, step 50 may be performed at any stage during the process. Step 50 acts to determine the cost of leaving the color map in its present position. Step 52 operates to call a routine CMDMC (described below), passing the operand of the color map and the color map itself, to determine the optimal cost of distributing the color map into the subtree, together with set of modifications required to effect this optimum. In step 54, the "distributing" cost from step 52 is compared with the "leaving" cost from step 50. If the cost of distribution is smaller then step 56 follows and the color map is deleted from the tree and the list of modifications is performed. Otherwise, the list of modifications is discarded and the tree is unchanged.
Either way, the traversal is continued at step 44.
The routine CMDMC can be described by the as following pseudocode: 20 procedure CMDMC (node, map, (output) mods, (output) cost) begin if node is a primitive then if color map can be combined with primitive then a cost 0 (always optimal) 25 mods single modification, combine map with node else cost area of node's bounding box multiplied by the a a cost per pixel of the map mods single modification, insert map before this node else if node is a unary node then 4523361 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc 13if color map can be composed with node and node represents an inverse operation then cost 0 mods single modification, delete node else if color map may be composed with node then if ((cost of composition) ((area of node's bounding box) x (cost per pixel of composed color map))) ((area of node's bounding box) x (sum of costs per pixel of both maps)) then cost (cost of composition) ((area of node's bounding box) x ((cost per pixel of composed color map) (cost per pixel of node))) mods single modification, compose map with node else cost (area of node's bounding box) x (cost per pixel of map) mods single modification, insert map before this node p else if color map may be interchanged with node then call CMDMC on node's operand, obtaining its cost (costl), and its list of modification (modsl) cost costl 25 mods modsi else no interaction is possible cost e- (area of node's bounding box) x (cost per pixel of map) mods single modification, insert map before this node p 30 else node is a binary operator if can distribute on left side only the node represents an "in" or "out" operation) then 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc 14call CMDMC on node's left operand, obtaining its cost (costL), and its list of modifications (modsL) cost costL mods modsL else if can distribute on right side only the node represents an "rin" or "rout" operation) then call CMDMC on node's right operand, obtaining its cost (costR), and its list of modifications (modsR) cost costR mods modsR else if the map can be distributed then call CMDMC on node's left operand, obtaining costL and modsL call CMDMC on node's right operand, obtaining costR and modsR.
if (costL costR) (ie. cost ifdistributing) ((area of node's bounding box) x (cost per pixel of map)) (ie. cost if not distributing) then cost costL costR 20 mods modsL combined with modsR 0 else discard modsL and modsR.
cost (area of node's bounding box) x (cost per pixel of map) mods single modification, insert map before 25 this node else map cannot be distributed cost area of node's bounding box mods single modification, insert map before this node end 30 The treatment of binary nodes can be generalized to nodes of higher degree by analogy with the various binary 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc node cases. For example, if the map is distributed over a binary node, the cost of distribution into the three (ternary) operand nodes may be calculated and compared with the cost of not distributing.
These optimisations can lead to a more efficient evaluation of the expression tree on a hardware or software
RIP.
The preferred embodiment of the present invention incorporating the method of Fig. 8 and the above noted equations and routine CMDMC may be implemented as a computer application program hosted on the Windows" operating system developed by Microsoft Corporation. However, those skilled in the art will recognise that the described embodiment can be implemented on computer systems hosted by other operating systems. For example, the preferred embodiment can be performed on computer systems running UNIX
T
M, OS/ 2 TM, DOSTM.
The application program may operate with or independent of a oooeo user interface to control expression tree optimisation. The application program has the ability to transmit data to one or more printers either directly connected to a host computer or accessed over a network. The application program also has the ability to transmit and receive data to a connected digital communications network (for example the "Internet") The preferred embodiment of the invention can be practiced using a conventional general-purpose (host) computer system, such as the computer system 100 shown in Fig. 9, wherein the application program discussed above and to be described with reference to the other drawings is implemented as software 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc -16executed on the computer system 100. The computer system 100 comprises a computer module 101, input devices such as a keyboard 102 and mouse 103, output devices including a printer 115 and a display device 114. A Modulator- Demodulator (Modem) transceiver device 116 is used by the computer module 101 for communicating to and from a communications network 120, for example connectable via a telephone line or other functional medium. The modem 116 can be used to obtain access to the Internet, and other network systems.
The computer module 101 typically includes at least one processor unit 105, a memory unit 106, for example formed from semiconductor random access memory (RAM) and read only memory (ROM), input/output interfaces including a video interface 107, and an I/O interface 113 for the keyboard 102 and mouse 103 and optionally a joystick (not illustrated), and an interface 108 for the modem 116. A oeooe storage device 109 is provided and typically includes a hard disk drive 110 and a floppy disk drive 111. A CD-ROM drive 20 112 is typically provided as a non-volatile source of data.
.e The components 105 to 113 of the computer module 101, typically communicate via an interconnected bus 104 and in a manner which results in a conventional mode of operation of the computer system 100 known to those in the relevant art.
Examples of computers on which the embodiments can be Spracticed include IBM-PC's and compatibles, Sun Sparcstations or alike computer systems evolved therefrom.
Typically, the application program of the preferred embodiment is resident on the hard disk drive 110 and read 452336 CFP01284AU Op=n28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc 17and controlled in its execution by the processor 105.
Intermediate storage of the program and any data fetched from the network 120 may be accomplished using the semiconductor memory 106, possibly in concert with the hard disk drive 110. In some instances, the application program may be supplied to the user encoded on a CD-ROM or floppy disk, or alternatively could be read by the user from the network via the modem device 116.
Fig. 10 shows a flow chart according to a method 200 of another embodiment of the present invention. The method 200 may be implemented as the application program described above within the computer system 100.
The method 200 commences at step 202 where an expression tree is provided that describes an image. In step 204, the structure of the expression tree is analysed to identify the various nodes and their form (unary, binary, etc). In step 206, the efficiency of operation of the expression tree is o e determined.
In step 208 which follows, an evaluation of the operations of the tree is undertaken to determine if a more efficient operation of the tree can be derived. If no such operation can be derived, control is passed to step 214, where the expression tree is rendered.
If a more efficient operation can be derived control passes to step 210 which determines a concordance between an output of the original tree and an output of a tree according to the more efficient operation. If the two outputs differ by more than a predetermined amount, step 214 follows and the original tree is rendered.
452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc -18- If the two outputs are substantially equivalent (ie.
differ by less than the predetermined amount) or identical, the original expression tree is altered in step 212 to a form corresponding to that of the more efficient operation.
Step 214 then follows and the altered expression tree is rendered.
It will be appreciated by persons skilled in the art that numerous variations and/or modifications may be made to the present invention as shown in the specific embodiment without departing from the spirit or scope of the invention as broadly described. The present embodiment is, therefore, to be considered in all respects to be illustrative and not restrictive.
In the context of this specification, the word "comprising" means "including principally but not necessarily solely" or "having" or "including" and not "consisting only of". Variations of the word comprising, such as "comprise" and "comprises" have corresponding meanings.
a a *eoc 452336 CFP01284AU Open-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc

Claims (32)

1. A method of improving the evaluation of an expression tree describing a digital image to be created on a computer system, the method comprising the steps of: analysing the structure of the expression tree to determine if a more efficient operation of color mapping operations can be performed by an altered expression tree, said more efficient operation producing substantially equivalent output results; and altering said expression tree in accordance with said more efficient operation.
2. A method according to claim 1, wherein said more efficient operation includes combining a color mapping operation with a leaf node of said expression tree.
3. A method according to claim 1i, wherein said more :efficient operation includes combining a color mapping 20 operation with a unary node of said expression tree.
4. A method according to claim 1, 2 or 3, wherein said more efficient operation includes distributing a color mapping operation past a binary node of said expression tree.
5. A method of improving the evaluation of an expression tree describing a digital image to be created on a computer system, said expression tree including at least one color 452336 CFP0124AU Open-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc mapping operation, said method comprising the step of traversing the expression tree and, for each said color mapping operation in said expression tree, performing the sub-steps of: determining a cost of evaluating said tree if said color mapping operation were distributed into one or more subtrees of a node at which said color mapping operation is present and those modifications required to give effect to such distribution; comparing the cost of evaluating the tree with the distributed the color mapping operation against the cost of evaluating the tree with said color mapping operation remaining at said node, and if the cost of distribution is smaller than leaving said color mapping operation at said node, then deleting the color mapping operation from said node and performing said modifications, otherwise leaving said color mapping operation at said node. 000000 0
6. A method according to claim 5, wherein if, when distributing said (first) color mapping operation, another (second) color mapping operation is encountered, and if it is cost-effective to combine said first and second color mapping operations, then including the combination as one of said modifications.
7. A method according to claim 5 wherein if, when distributing said color mapping operation, a unary node is encountered, and if the order of said color mapping operation and an operation represented by said unary node 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc -21- can be interchanged without substantially affecting said digital image, then distributing said color mapping operation into an operand of said unary node.
8. A method according to claim 5 wherein if, when distributing said (first) color mapping operation, another (second) color mapping operation is encountered, and if said first and second color mapping operations are inverse functions, then including the deletion of second color mapping operation as one of said modifications.
9. A method according to claim 5, wherein if, when distributing said color mapping operation, a leaf node is encountered, and if it is cost effective to combine said color mapping operation with a sub-image represented by the leaf node, then including this combination as one of said modifications.
10. A method according to claim 5, wherein if, when 20 distributing said color mapping operation, a node having a plurality of operands is encountered, determining if the color mapping operation can be distributed through at least CC o one but not all of said operands without substantially affecting the final output, then distributing the color mapping operation into said at least one operand.
11. A computer according to claim 10, wherein said node performs an operation selected from the group consisting of IN and OUT. 452336 CFP01284AU Open2-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc -22-
12. Apparatus for improving the evaluation of an expression tree describing a digital image to be created on a computer system, said apparatus comprising: first means for analysing the structure of the expression tree to determine if a more efficient operation of color mapping operations can be performed by an altered expression tree, said more efficient operation producing substantially equivalent output results; and second means for altering said expression tree in accordance with said more efficient operation.
13. Apparatus according to claim 12, wherein said more efficient operation includes combining a color mapping operation with a leaf node of said expression tree.
14. Apparatus according to claim 12, wherein said more efficient operation includes combining a color mapping operation with a unary node of said expression tree. Apparatus according to claim 12, 13 or 14, wherein said more efficient operation includes distributing a color mapping operation past a binary node of said expression atree.
16. Apparatus for improving the evaluation of an expression .tree describing a digital image to be created on a computer system, said expression tree including at least one color mapping operation, said apparatus comprising: 452336 CFP01284AU Open2-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a doe -23- first means for traversing the expression tree to identify each said color mapping operation in said expression tree, wherein for each said identified color maping operation, said first means implements second means and third means; said second means determining a cost of evaluating said tree if said color mapping operation were distributed into one or more subtrees of a node at which said color mapping operation is present and those modifications required to give effect to such distribution; and said third means comparing the cost of evaluating the tree with the distributed the color mapping operation against the cost of evaluating the tree with said color mapping operation remaining at said node, and if the cost of distribution is smaller than leaving said color mapping operation at said node, then deleting the color mapping operation from said node and performing said modifications, otherwise leaving said color mapping operation at said node. o
17. Apparatus according to claim 16, further comprising fourth means for detecting, when distributing said (first) color mapping operation, another (second) color mapping operation and determining a cost of combining said first and Ssecond color mapping operations, and fifth means for assessing said cost, and if cost-effective, including the combination as one of said modifications.
18. Apparatus according to claim 16, further comprising sixth means for detecting, when distributing said color 452336i CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN28\452336a.doc -24- mapping operation, a unary node, and for determining if the order of the color mapping operation and an operation represented by said unary node can be interchanged without substantially affecting said digital image, and seventh means responsive to said sixth means for distributing said color mapping operation into an operand of said unary node.
19. Apparatus according to claim 16, further comprising eighth means for detecting, when distributing said (first) colour mapping operation, another (second) color mapping operation, and determining if said first and second color mapping operations are inverse functions, and if so, for then including the deletion of second color mapping operation as one of said modifications. Apparatus according to claim 16, further comprising ninth means for detecting a leaf node when distributing said color mapping operation, and in response to the detection if -it is cost effective to combine said color mapping operation 20 with a sub-image represented by the leaf node, then for including this combination as one of said modifications.
21. Apparatus according to claim 16, further comprising tenth means for detecting a node having a plurality of operands when distributing said color mapping operation, and in response to the detection determining if the color mapping operation can be distributed through at least one but not all of said operands without substantially affecting 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN2 8 4 5 2 3 3 6 adoc I the final output, then for distributing the color mapping operation into said at least one operand.
22. Apparatus according to claim 21, wherein said node performs an operation selected from the group consisting of IN and OUT.
23. A computer readable medium incorporating a computer program product for improving the evaluation of an expression tree describing a digital image to be created within a computer system, said computer program product having a plurality of instructions configured to be performed by said computer system, said instructions implementing a method comprising the steps of: analysing the structure of the expression tree to determine if a more efficient operation of color mapping operations can be performed by an altered expression tree, said more efficient operation producing substantially equivalent output results; and 20 altering said expression tree in accordance with said more efficient operation.
24. A computer readable medium according to claim 23, wherein said more efficient operation includes combining a color mapping operation with a leaf node of said expression tree. 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN 2 8 4 5 2 3 3 d -26- A method according to claim 23, wherein said more efficient operation includes combining a color mapping operation with a unary node of said expression tree.
26. A computer readable medium according to claim 23, 24 or wherein said more efficient operation includes distributing a color mapping operation past a binary node of said expression tree.
27. A computer readable medium incorporating a computer program product for improving the evaluation of an expression tree describing a digital image to be created within a computer system, said expression tree including at least one color mapping operation, said computer program product having a plurality of instructions configured to be performed by said computer system, said instructions implementing a method comprising the step of traversing the expression tree and, for each said color mapping operation in said expression tree, performing the sub-steps of: 20 determining a cost of evaluating said tree if said color mapping operation were distributed into one or more subtrees of a node at which said color mapping operation is present and those modifications required to give effect to such distribution; comparing the cost of evaluating the tree with the distributed the color mapping operation against the cost of evaluating the tree with said color mapping operation remaining at said node, and if the cost of distribution is smaller than leaving said color mapping operation at said 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OpEN 2 8 4 5 2 3 3 6 a.doc -27- node, then deleting the color mapping operation from said node and performing said modifications, otherwise leaving said color mapping operation at said node.
28. A method according to claim 27, wherein if, when distributing said (first) color mapping operation, another (second) color mapping operation is encountered, and if it is cost-effective to combine first and second color mapping operations, then including the combination as one of said modifications.
29. A computer readable medium according to claim 27 wherein if, when distributing said color mapping operation, a unary node is encountered, and if the order of the color mapping operation and an operation represented by said unary node can be interchanged without substantially affecting said digital image, then distributing said color mapping operation into an operand of said unary node. S 20 30. A computer readable medium according to claim 27 wherein if, when distributing said (first) color mapping operation, another (second) color mapping operation is encountered, and if said first and second color mapping operations are inverse functions, then including the deletion of second color mapping operation as one of said modifications. S
31. A computer readable medium according to claim 27, wherein if, when distributing said color mapping operation, 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN 2 8 4 5 2 3 3 6 a.doc A -28- a leaf node is encountered, and if it is cost effective to combine said color mapping operation with a sub-image represented by the leaf node, then including this combination as one of said modifications.
32. A computer readable medium according to claim 27, wherein if, when distributing said color mapping operation, a node having a plurality of operands is encountered, determining if the color mapping operation can be distributed through at least one but not all of said operands without substantially affecting the final output, then distributing the color mapping operation into said at least one operand.
33. A computer readable medium according to claim 32, wherein said node performs an operation selected from the group consisting of IN and OUT. S **SS
34. Apparatus according to claim 12, wherein said means are 20 formed within said computer system.
35. A method for improving the evaluation of an expression describing a digital image substantially as described herein with reference to any one of the embodiments as illustrated in the drawings. ~36. Apparatus for improving the evaluation of an expression describing a digital image substantially as described herein 452336 CFP01284AU Open-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN 2 8 4 52 33 6 a.doc 29 with reference to any one of the embodiments as illustrated in the drawings.
37. A computer readable medium incorporating a computer program product for improving the evaluation of an expression describing a digital image substantially as described herein with reference to any one of the embodiments as illustrated in the drawings. Dated 3 May, 1999 Canon Kabushiki Kaisha Patent Attorneys for the Applicant/Nominated Person SPRUSON FERGUSON *0 S 0 to so&" *6 0. S608* 0 000. 452336 CFP01284AU Open28-cap \\SAFO\DATA\HOME\ELEC\CISRA\OPEN\OPEN 2 8 4 5 2 3 3 6 a.doc
AU26911/99A 1998-05-20 1999-05-03 Optimisation in image composition Ceased AU730559B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU26911/99A AU730559B2 (en) 1998-05-20 1999-05-03 Optimisation in image composition

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AUPP3604 1998-05-20
AUPP3604A AUPP360498A0 (en) 1998-05-20 1998-05-20 Optimisation in image composition
AU26911/99A AU730559B2 (en) 1998-05-20 1999-05-03 Optimisation in image composition

Publications (2)

Publication Number Publication Date
AU2691199A true AU2691199A (en) 1999-12-02
AU730559B2 AU730559B2 (en) 2001-03-08

Family

ID=25620095

Family Applications (1)

Application Number Title Priority Date Filing Date
AU26911/99A Ceased AU730559B2 (en) 1998-05-20 1999-05-03 Optimisation in image composition

Country Status (1)

Country Link
AU (1) AU730559B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU736530B2 (en) * 1998-09-03 2001-08-02 Canon Kabushiki Kaisha Optimizing image compositing
AU771001B2 (en) * 2000-12-22 2004-03-11 Canon Kabushiki Kaisha Image compositing with efficient memory usage
US6795589B1 (en) 1998-09-03 2004-09-21 Canon Kabushiki Kaisha Optimizing image compositing

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307452A (en) * 1990-09-21 1994-04-26 Pixar Method and apparatus for creating, manipulating and displaying images
AUPM704594A0 (en) * 1994-07-25 1994-08-18 Canon Information Systems Research Australia Pty Ltd Efficient methods for the compositing of graphical elements
AUPM704194A0 (en) * 1994-07-25 1994-08-18 Canon Information Systems Research Australia Pty Ltd Efficient methods for the evaluation of a graphical programming language

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU736530B2 (en) * 1998-09-03 2001-08-02 Canon Kabushiki Kaisha Optimizing image compositing
US6795589B1 (en) 1998-09-03 2004-09-21 Canon Kabushiki Kaisha Optimizing image compositing
US6816619B2 (en) 1998-09-03 2004-11-09 Canon Kabushiki Kaisha Optimising image compositing
AU771001B2 (en) * 2000-12-22 2004-03-11 Canon Kabushiki Kaisha Image compositing with efficient memory usage

Also Published As

Publication number Publication date
AU730559B2 (en) 2001-03-08

Similar Documents

Publication Publication Date Title
US7495675B1 (en) Processing illustration artwork
JP4756937B2 (en) How to draw graphic objects
JP4316571B2 (en) Image synthesis by guided interpolation
AU2003203331B2 (en) Mixed raster content files
US5542052A (en) Applying traps to a printed page specified in a page description language format
AU2005201019B2 (en) A method of rendering graphical objects
EP0924653B1 (en) Blending graphical objects using planar maps
US7542049B2 (en) Hardware accelerated anti-aliased primitives using alpha gradients
US7532222B2 (en) Anti-aliasing content using opacity blending
US6720977B1 (en) Processing illustration artwork
EP1306810A1 (en) Triangle identification buffer
JPH1055427A (en) Method for optimizing picture expressing tree and its method
US6239807B1 (en) Method and system for multi-resolution texture mapping
US6346948B1 (en) Method and apparatus for pixel composition
AU730559B2 (en) Optimisation in image composition
AU2005201930B2 (en) Simplification of alpha compositing in the presence of transfer functions
US6340981B1 (en) Method and apparatus for stroke substitution
JPH11149553A (en) Method and method for separating picture data from color system in picture processing
US7046403B1 (en) Image edge color computation
US20030122821A1 (en) Overlapping triangle meshes
JP4355394B2 (en) Image processing method, image processing apparatus, and program storage medium
AU2005200948B2 (en) Compositing list caching for a raster image processor
AU2002318784B2 (en) Overlapping Triangle Meshes
AU2005201933A1 (en) Method of rendering self-overlapping colour blend patches
CA2256970A1 (en) Method for accessing and rendering an image

Legal Events

Date Code Title Description
FGA Letters patent sealed or granted (standard patent)