AU2646101A - Method and apparatus for calculating boolean combinations of regions in a plane - Google Patents

Method and apparatus for calculating boolean combinations of regions in a plane Download PDF

Info

Publication number
AU2646101A
AU2646101A AU26461/01A AU2646101A AU2646101A AU 2646101 A AU2646101 A AU 2646101A AU 26461/01 A AU26461/01 A AU 26461/01A AU 2646101 A AU2646101 A AU 2646101A AU 2646101 A AU2646101 A AU 2646101A
Authority
AU
Australia
Prior art keywords
region
activation
rendering
rule
regions
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
AU26461/01A
Other versions
AU766452B2 (en
Inventor
Kevin John Moore
Alan Tonisson
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 AUPQ6584A external-priority patent/AUPQ658400A0/en
Application filed by Canon Inc filed Critical Canon Inc
Priority to AU26461/01A priority Critical patent/AU766452B2/en
Publication of AU2646101A publication Critical patent/AU2646101A/en
Application granted granted Critical
Publication of AU766452B2 publication Critical patent/AU766452B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Description

S&FRef: 545196
AUSTRALIA
PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT
ORIGINAL
Name and Address of Applicant: Actual Inventor(s): Address for Service: Canon Kabushiki Kaisha 30-2, Shimomaruko 3-chome, Ohta-ku Tokyo 146 Japan Kevin John Moore, Alan Tonisson Spruson Ferguson St Martins Tower,Level 31 Market Street Sydney NSW 2000 Method and Apparatus for Calculating Boolean Combinations of Regions in a Plane Invention Title: ASSOCIATED PROVISIONAL APPLICATION DETAILS [33] Country [31] Applic. No(s) AU PQ6584 [32] Application Date 30 Mar 2000 The following statement is a full description of this invention, including the best method of performing it known to me/us:- 5815c -1- METHOD AND APPARATUS FOR CALCULATING BOOLEAN COMBINATIONS OF REGIONS IN A PLANE Technical Field of the Invention The present invention relates to the creation of computer-generated images both in the form of still pictures and video imagery and, in particular, relates to an efficient process and apparatus for creating an image made up by compositing multiple graphical objects. The invention also relates to a computer program product including a computer readable medium having recorded thereon a computer program for creating an image by compositing multiple graphical objects.
Background Art Computer generated images are typically made up of many differing components or graphical objects which are composited together and rendered to create a final image.
Each graphical object is generally represented as a fill type and a set of outlines.
15 Graphical objects may be rendered by combining them onto a page using compositing S•operations. An "opacity channel" (also known as a "matte", an "alpha channel", or simply "opacity") is also commonly used as part of the representation of a graphical object. The opacity channel contains information regarding the transparent nature of each element.
o oo The opacity channel is typically stored alongside each instance of a colour, so that, for 20 example, a pixel-based image with opacity stores an opacity value as part of the representation of each pixel. In this fashion, each graphical object may be interpreted as occupying the entire image area, and the outlines of the graphical object can therefore define a region outside of which the object is fully transparent. This region is called the "active region" of the object. A graphical object without explicit opacity channel information is typically understood to be fully opaque within the outlines of the object, and assumed to be completely transparent outside those outlines.
One means for systematically representing an image in terms of its constituent elements and which facilitates in later rendering is an "expression tree". Expression trees typically comprise a plurality of nodes including leaf nodes, unary nodes and binary nodes. Nodes of higher degree, or of alternative definition may also be used. A leaf node, being the outer most node of an expression tree, has no descendent nodes and represents a primitive constituent of an image. Unary nodes represent an operation which modifies the pixel data coming out of the part of the tree below the unary operator. Unary nodes include such operations as colour conversions and convolutions (blurring etc). A 545196.doc -2binary node typically branches to left and right subtrees, wherein each subtree is itself an expression tree comprising at least one leaf node. Binary nodes represent an operation which combines the pixel data of its two children to form a single result. For example, a binary node may be one of the standard compositing operators such as over, in, out, atop and alpha-XOR, examples of which and others are seen in Fig. 1. The compositing operations represented by the compositing operators are arithmetic or bitwise operations including opacity, which are performed on the component values of the colours of a graphical object.
Several of the above types of nodes may be combined to form the expression tree. An example of this is shown in Fig. 2. The result of the left-hand side of the expression tree illustrated in Fig. 2 may be interpreted as an image (Image 1) being colour (Conversion) clipped (In) to spline boundaries (Path). This construct is composited with a second image (Image 2).
Although the active region of a graphical object may of itself be of a certain size, 15 it need not be entirely visible in a final image, or only a portion of the active region may have an effect on the final image. For example, assume an image of a certain size is to be displayed on a display. If the image is positioned so that only the top left corner of the image is displayed by the display device, the remainder of the image is not displayed.
The final image as displayed on the display device thus comprises the visible portion of 20 the image, and the invisible portion in such a case need not be rendered.
"Another way in which only a portion of the active region of an object may have an effect is when the portion is obscured by another object. For example, a final image to be displayed (or rendered) may comprise one or more opaque graphical objects, some of which obscure other graphical objects. Hence, the obscured objects have no effect on the final image.
Two conventional rendering models include "frame buffer rendering" and "pixel sequential rendering". Conventional frame buffer rendering is based on the "painter's algorithm" which involves rendering multiple objects one at a time into a frame buffer. A compositing operation is carried out for every pixel within the boundaries of an object. A simple frame buffer approach is not sophisticated enough to render arbitrary expressions consisting of compositing operations involving transparency. Extra frame buffers may be required to render arbitrary expressions consisting of compositing operations involving transparency. The extra frame buffers are needed to store intermediate results.
545196.doc -3- Pixel sequential rendering as opposed to the "object sequential rendering" used in conventional frame buffer based systems involves performing all of the compositing operations required to produce a single pixel before moving on to the next pixel.
Interactive frame rates of the order greater than 15 frames per second can be achieved by such conventional methods, because the actual pixel operations are quite simple. Thus, conventional systems are fast enough to produce acceptable frame rates without requiring complex code. However, this is certainly not true in a compositing environment consisting of complex expression trees since the per-pixel cost of compositing is quite high. Complex compositing expressions can lead to redundant pixel compositing operations thus reducing the speed of rendering. This is because typically an image is rendered in 24-bit colour in addition to an 8-bit alpha channel, thus giving 32 bits per pixel. Therefore, each compositing operator of an expression tree has to deal with each of the four channels.
Problems arise with prior art methods that use the conventional methods. These 15 methods are highly inefficient since the per-pixel cost of evaluating the set of compositing S"operations required to compute each pixel is too high. Further, pixel sequential rendering is designed to work correctly under the assumption that a particular compositing 9..
o operation used to render a pixel does not affect pixels outside of the boundaries of the object that is being composited. This assumption is not true for all compositing 0 20 operations. For example, given two graphical objects A and B, the compositing expression "A rin makes pixels outside the boundaries of object A transparent. For this type of compositing expression, problems arise when generating compositing instructions using existing arrangements.
Disclosure of the Invention It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements.
According to one aspect of the present invention there is provided an apparatus for rendering a plurality of graphical objects to form a raster pixel image having a plurality of scan lines, wherein each said graphical object is defined by an edge outline, and wherein said edge outlines form a plurality of regions in a space in which said edge outlines are defined, each said region being defined by a region outline substantially following at least one of said edge outlines, said apparatus comprising: 545196.doc edge processing means for determining, in a predetermined order, an intersection of those region outlines intersected by a scan line; region update means for updating a table each time a region outline intersection is determined, said table comprising at least one entry corresponding to each said region, each said entry indicating an activity status of a corresponding region, and wherein said update means updates an entry corresponding to a first region depending on said outline intersection determination or depending on an activity status of a further region upon which said first region depends; and rendering means for determining rendered pixel values using a plurality of rendering instructions, wherein only instructions corresponding to regions having a positive activity status for a current pixel are used to render said pixel.
According to another aspect of the present invention there is provided an apparatus for rendering a plurality of graphical objects to form a raster pixel image having a plurality of scan lines, wherein each said graphical object is defined by an edge outline, 15 and wherein said edge outlines form a plurality of regions in a space in which said edge S"outlines are defined, each said region being defined by a region outline substantially following at least one of said edge outlines, said apparatus comprising: edge processing means for determining, in a predetermined order, an intersection of those region outlines intersected by a scan line; S 20 region update means for updating a table each time a region outline intersection is determined, said table comprising at least one entry corresponding to each said region, each said entry comprising at least an activation counter and an activation rule for o• identifying an activity status of a corresponding region, wherein each said entry is further associated with a dependency list identifying dependencies between said regions, and wherein said update means updates an entry corresponding to a first region in response to an outline intersection determination for said first region or in response to a change in an activity status of a second region upon which said first region depends, said second region being identified by said dependency list; and rendering means for determining rendered pixel values using a plurality of rendering instructions, wherein each rendering instruction is associated with a region, and wherein only instructions corresponding to regions having a positive activity status for a current pixel are used to render said pixel.
According to still another aspect of the present invention there is provided an apparatus for rendering a plurality of graphical objects to form a raster pixel image having 545196.doc a plurality of scan lines, wherein each said graphical object is defined by an edge outline, and wherein said edge outlines form a plurality of regions in a space in which said edge outlines are defined, each said region being defined by a region outline substantially following at least one of said edge outlines, said apparatus comprising: edge processing means for determining, in a predetermined order, an intersection of those region outlines intersected by a scan line; region update means for updating a table each time a region outline intersection is determined, said table comprising at least one dependency entry and at least one activity entry for each of said regions, said dependency entries indicating dependencies between said regions and said activity entries indicating activity states of said regions, wherein said update means applies a predetermined rule to an activity entry associated with a region being substantially indicated by said region outline intersection to determine if an activity state of a further region upon which said region depends has changed, and wherein if said activity state has changed said table is examined and at least one rendering S 15 instruction is determined for said region; and S•rendering means for determining rendered pixel values using said rendering instructions, wherein only instructions corresponding to regions having a positive activity state for a current pixel are used to render said pixel.
According to still another aspect of the present invention there is provided a 20 method of rendering a plurality of graphical objects to form a raster pixel image having a ~plurality of scan lines, wherein each said graphical object is defined by an edge outline, and wherein said edge outlines form a plurality of regions in a space in which said edge outlines are defined, each said region being defined by a region outline substantially following at least one of said edge outlines, said apparatus comprising: determining, in a predetermined order, an intersection of those region outlines intersected by a scan line; updating a table each time a region outline intersection is determined, said table comprising at least one entry corresponding to each said region, each said entry comprising at least an activation counter and an activation rule for identifying an activity status of a corresponding region, wherein each said entry is further associated with a dependency list identifying dependencies between said regions, and wherein an entry corresponding to a first region is updated in response to an outline intersection determination for said first region or to a change in an activity status of a second region 545196.doc -6upon which said first region depends, said second region being identified using said dependency list; and determining rendered pixel values using a plurality of rendering instructions, wherein each rendering instruction is associated with a region, and wherein only instructions corresponding to regions having a positive activity status for a current pixel are used to render said pixel.
According to still another aspect of the present invention there is provided a computer readable medium, having a program recorded thereon, said program being configured to make a computer execute a procedure for rendering a plurality of graphical objects to form a raster pixel image having a plurality of scan lines, wherein each said graphical object is defined by an edge outline, and wherein said edge outlines form a plurality of regions in a space in which said edge outlines are defined, each said region being defined by a region outline substantially following at least one of said edge ••outlines, said program comprising: 15 code for determining, in a predetermined order, an intersection of those region S"outlines intersected by a scan line; code for updating a table each time a region outline intersection is determined, said table comprising at least one entry corresponding to each said region, each said entry comprising at least an activation counter and an activation rule for identifying an activity status of a corresponding region, wherein each said entry is further associated with a dependency list identifying dependencies between said regions, and wherein an entry corresponding to a first region is updated in response to an outline intersection determination for said first region or to a change in an activity status of a second region upon which said first region depends, said second region being identified using said dependency list; and code for determining rendered pixel values using a plurality of rendering instructions, wherein each rendering instruction is associated with a region, and wherein only instructions corresponding to regions having a positive activity status for a current pixel are used to render said pixel.
Brief Description of the Drawings A number of preferred embodiments of the present invention will now be described with reference to the drawings, in which: Fig. 1 shows a compositing expression tree containing a number of overlapping objects; 545196.doc Fig. 2 shows the result of a variety of compositing operators useful with the present invention; Fig. 3 is a schematic diagram showing a computer system configured for the rendering and presentation of computer graphic images in accordance with the preferred embodiment; Fig. 4 is a functional data flow diagram of the preferred embodiment; Fig. 5 is a schematic diagram showing the configuration of a pixel sequential rendering apparatus in accordance with the preferred embodiment; Fig. 6 shows a region update module in accordance with the preferred embodiment; Fig. 7 shows an example image with outlines to be scan converted by a scan converter in accordance with the preferred embodiment; Fig. 8 is a flow chart showing a method of rendering a plurality of graphical objects to form a raster pixel image in accordance with the preferred embodiment; 15 Fig. 9 is a schematic block diagram of a general purpose computer upon which the preferred embodiment of the present invention can be practiced; and Fig. 10 shows an example of a region activation table corresponding to the •outlines shown in Fig. 7 and the dependencies needed to evaluate some derived regions; Fig. 11 shows the updated state of the activation table of Fig. 10 before updates 20 resulting from a scan crossing outline at a point shown in Fig. 7; Fig. 12 shows the updated state of the activation table of Fig. 10 after the updates resulting from a scan crossing outline at the point shown in Fig. 7; and Fig. 13 is a flow chart showing the operation of the region update module of Fig.
6.
Detailed Description including Best Mode Where reference is made in any one or more of the accompanying drawings to steps and/or features, which have the same reference numerals, those steps and/or features have for the purposes of this description the same function(s) or operation(s), unless the contrary intention appears.
The preferred embodiment is an apparatus and method for the rendering and presentation of computer graphic images. Fig. 3 illustrates schematically a computer system 1 configured for the rendering and presentation of computer graphic images in accordance with the preferred embodiment. The system includes a host processor 2 associated with system random access memory (RAM) 3, which can include a non- 545196.doc volatile hard disk drive or similar device 5 and volatile, semiconductor RAM 4. The system 1 also includes a system read-only memory (ROM) 6 typically founded upon semiconductor ROM 7 and which in many cases can be supplemented by compact disk devices (CD ROM) 8. The system I can also incorporate some means 10 for displaying images, such as a video display unit (VDU) or a printer, both of which operate in raster fashion.
The above-described components of the system 1 are interconnected via a bus system 9 and are operable in a normal operating mode of computer systems well known in the art, such as IBM PC/AT type personal computers and arrangements evolved therefrom, Sun Sparcstations and the like.
Also seen in Fig. 3, a pixel sequential rendering apparatus 20 connects to the bus 9, and in the preferred embodiment is configured for the sequential rendering of pixelbased images derived from graphical object-based descriptions supplied with instructions and data from the system 1 via the bus 9. The apparatus 20 can utilise the system RAM 3 15 for the rendering of object descriptions although preferably the rendering apparatus can have associated therewith a dedicated rendering store arrangement 30, typically formed of semiconductor RAM.
Referring now to Fig. 4, a functional data flow diagram of the preferred embodiment is shown. The functional data flow diagram of Fig. 4 commences with an 20 object graphic description 400 which is used to describe those parameters of graphical see**objects in a fashion appropriate to be generated by the host processor 2 and/or, where appropriate, stored within the system RAM 3 or derived from the system ROM 6, and which can be interpreted by the pixel sequential rendering apparatus 20 to render therefrom pixel-based images. For example, the object graphic description 400 can incorporate objects with edges in a number of formats including straight edges (simple vectors) that traverse from one point on the display to another, or an orthogonal edge format where a two-dimensional object is defined by a plurality of edges including orthogonal lines. Further formats, where objects are defined by continuous curves, are also appropriate and these can include quadratic polynomial fragments where a single curve can be described by a number of parameters which enable a quadratic based curve to be rendered in a single output space without the need to perform multiplications.
Further data formats such as cubic splines and the like can be used. An object can contain a mixture of many different edge types. Typically, common to all formats are identifiers for the start and end of each line (whether straight or curved) and typically, these are 545196.doc identified by a scan line number thus defining a specific output space in which the curve may be rendered. Having identified the data necessary to describe the graphical objects to the rendered, the graphic system 1 then performs a display list generation step 401.
The display list generation 401 is preferably implemented as a software module executing on the host processor 2 with attached ROM 6 and RAM 3. The display list generation 401 converts an object graphics description, expressed in any one or more of the well known graphic description languages, graphic library calls, or any other application specific format, into a display, list. The display list is typically written into a display list store 403, generally formed within the RAM 4 but which can alternatively be formed within the rendering stores 30. As seen in Fig. 5, the display list store 403 can include a number of components, one being an instruction stream 501, another being edge information 503 and where appropriate, raster image pixel data 505. The instruction stream 501 includes code interpretable as instructions to be read by the pixel sequential rendering apparatus 20 to render the specific graphic objects desired in any specific 15 image.
So•The display list store 403 is read by the pixel sequential rendering apparatus which is typically implemented as an integrated circuit. The pixel sequential rendering apparatus 20 converts the display list into a stream of raster pixels which can be forwarded to another device, for example, a printer, a display, or a memory store.
20 Although the pixel sequential rendering apparatus 20 has been described as an integrated circuit, it can be implemented as an equivalent software module executable on a general purpose processing unit, such as the host processor 2. The software module can o• °o•o:form part of a computer program product which can be delivered to a user via a computer readable medium, such as a disk device or computer network.
Fig. 5 shows the configuration of the pixel sequential rendering apparatus 20, the display list store 403 and the temporary rendering stores 30. The processing stages 22 of the pixel-sequential render apparatus 20 include an instruction executor 500, an edge processing module 507, a region update module 600, a priority determination module 509, a fill colour determination module 511, a pixel compositing module 513, and a pixel output module 515. The processing operations use the temporary stores 30 which can share the same device (eg. magnetic disk or semiconductor RAM) as the display list store 403, or can be implemented as individual stores for reasons of speed optimisation. The edge processing module 507 uses an edge record store 32 to hold edge information which is carried forward from scan-line to scan-line. The edge information is provided each time 545196.doc an outline is scanned by a scan converter (not illustrated). The edge processing module 507 uses the outlines to perform scan-conversion and therefore performs the same function as a scan-converter apart from actually rendering pixels. The region update module 600 receives a message from the edge processing module 507 each time an edge is crossed in the scan. The region update module 600 also receives an end of pixel message at the end of each pixel. End of pixel messages are passed through to the priority determination module 509. Messages received by the region update module 600 from the edge processing module 507 are stored in a region update stack 33 before being processed. The region update stack 33 is also used to store messages generated internally by the region update module 600. Based on the messages received from the edge processing module 507 and on dependencies between regions stored in a region dependency table 607 (see Fig. the region update module 600 calculates whether or not the current pixel is inside or outside of each of a plurality of regions representing parts ooooo S.of a page to be printed and stores this information in a region activation table 34. This 15 calculation is used by the priority determination module 509 to update the status of instructions in an instruction table 35. Each instruction corresponds to a region in the region update stack 33. A region is referred to as active when the current pixel is inside the region and inactive if the current pixel is not inside the region. An instruction is active when a region associated with the instruction is active. As each pixel is rendered, the priority determination module 509 generates all instructions needed to render the *pixel. These instructions are passed to the fill colour determination module 511, which uses a fill data table 36 to determine colour values required by these instructions. The fill colour determination module 511 also uses the fill data table 36 to hold information required to determine the fill colour of a particular priority at a particular position. The pixel compositing module 513 uses a pixel compositing stack 38 to hold intermediate results during the determination of an output pixel that requires the colours from multiple priorities to determine its value.
The display list store 403 and the other stores 32-38 detailed above can be implemented in RAM or any other data storage technology.
The processing steps shown in the embodiment of Fig. 5 take the form of a processing pipeline 22. In accordance with the preferred embodiment, the modules of the pipeline can execute simultaneously on different portions of image data in parallel, with messages passed between them as described below. In another embodiment, each message described below can take the form of a synchronous transfer of control to a 545196.doc -11downstream module, with upstream processing suspended until the downstream module completes the processing of the message.
The instruction executor 500 reads and processes instructions from the instruction stream 403 and formats the instructions into messages that are transferred via an output 398 to the other modules 507, 509, 511, 600 and 513 within the pipeline 22.
Incoming messages which may include set priority data messages, set fill data messages, edge crossing messages and end of scan line messages pass through the edge processing module 507, the region update module 600 and the priority determination module 509.
The operation of the region update module 600 in accordance with the preferred embodiment will be explained in more detail later in this document. Edge crossing messages are passed from the edge processing module 507 in order for a particular scanline and are loaded into the region activation table 34. The contents of the table 34 are passed as messages to each of the fill colour determination module 511 for pixel generation, and to the pixel compositing module 513 for compositing operations.
0:0. 15 The fill colour determination module 511 modifies the instructions from the priority determination module 509 and passes the modified instructions through to the e 00 pixel compositing module 513, which processes the instructions in sequence. Upon receipt of a colour composite message, the pixel compositing module 513 typically, and in general terms combines colour and opacity information from the colour composite message with a colour and opacity popped from the pixel compositing stack 38 according V, to a raster operation and an alpha channel operation from the colour composite message.
The pixel compositing module 513 then pushes the result back onto the pixel compositing stack 38.
001. 0: The processing of messages by the pixel compositing module 513 and the pixel output module 515, in order to determine rendered pixel values, is described in more detail in Australian Patent Publication No. AU-A-47509/99 and the corresponding U.S.
Patent Application No. 09/392741.
A compositing expression representing an image assumes that all objects in the expression have unbounded extent. However in practice, objects are represented with boundaries. Colour and possibly opacity data is only stored or generated for each object within the object's boundaries. One approach to rendering an image is to evaluate the compositing expression for each pixel to be rendered, with transparent colour values being supplied for pixels where data is not available for an object. However, using this approach, many redundant operations are performed since the result of compositing a 545196.doc -12transparent pixel with another pixel can be determined without performing a compositing operation. Similarly, the result of compositing an opaque pixel with another pixel can also often be determined without performing a compositing operation. In addition, if it is known whether one or other of the operands of a compositing operation are opaque or transparent, it is possible to determine the result of the operation without evaluating both of the operands. A more efficient approach to rendering an image is to modify the compositing expression (or how it is calculated) at different parts of the page, so that redundant compositing operations are not performed.
The preferred embodiment can provide several means for modifying a compositing expression by controlling the compositing operations that are performed: firstly, the preferred embodiment can provide level activation which turns instructions on or off at different parts of the page; secondly, the preferred embodiment can provide clipping which modifies level activation, and thirdly, the preferred embodiment can utilise a NEEDBELOW flag that causes active levels to be skipped in evaluating 15 compositing operations. In accordance with one embodiment of the present invention, clipping and level activation are combined into an optimised means for controlling which instructions are active at different parts of a page to be rendered or printed. The region update module 600, in accordance with the preferred embodiment, minimises the number of pixel operations needed to evaluate an expression, for the creation of an image.
Fig. 6 shows the region update module 600 in accordance with the preferred embodiment. The region update module 600 preferably forms part of the pixel sequential rendering apparatus 20 and is preferably configured in the processing pipeline between the edge processing module 507 and the priority determination module 509, as seen in Fig. 5. The region update module 600 preferably comprises a region update stack 601, an activation table update module 603 and a dependency fetch module 605. The region update module 600 receives messages from the edge processing module 507 and calculates whether or not a current pixel is inside or outside of each of a plurality of regions constituting a page to be printed. This calculation is used by the priority determination module 509 when generating instructions from the instruction table Each of the regions constituting a particular page can be classified as either a primitive region or a calculated region. Primitive regions are defined by a predetermined activation rule, which will be explained in more detail later in this document, and an outline that is scanned by a scan converter (not illustrated). Calculated regions represent either a union 545196.doc 13or an intersection of other regions or their complements. The regions used in a calculated intersection or union can be either primitive or calculated regions.
The region update module 600, in accordance with the preferred embodiment, utilises the region activation table 34 in conjunction with the region dependency table 607, which will be described in more detail later in this document. The region activation table 34 contains one entry for each region of interest. The region dependency table 607 encodes the dependencies between regions. Therefore, each region constituting a page to be displayed or printed, is represented by an entry in the region activation table 34 and a list of dependencies in an associated region dependency table 607.
A region is said to be active if a current pixel is contained within the region and inactive otherwise. The edge processing module 507 preferably sends a region update message to the region update module 600 each time the edge of an outline is encountered in the scan sequence. Each region update message preferably consists of the index of a **region in the region activation table 34 and a flag indicating whether or not the scan is 15 entering or exiting the region. The value of this flag depends on the orientation of the edge encountered and the flag is used to determine whether to increment or decrement an activation counter in the region activation table 34. The activation table for a currently scanned region is preferably incremented when the scan enters a region and decremented when the scan exits the region.
Given a region outline that consists of several disconnected curves or curves that overlap themselves, a scan can enter a region multiple times before exiting the region. In this case, the activation counter represents a "winding count" for the region. Whether or not the region is active is determined by the activation count and a predetermined activation rule which will be explained in more detail in the following paragraphs.
Each entry in the region activation table 34 preferably contains an activation count, an activation rule and an index representing the start of a list of dependencies in the dependency table 607. There are three possible activation rules in accordance with the preferred embodiment. These activation rules are referred to as zero activation non-zero activation (NZ) and odd-even activation If the activation rule associated with a currently scanned region is zero activation, the current region is active whenever its activation count is 0 and inactive otherwise. If the activation rule associated with the current region is non-zero activation, the current region is active whenever its activation count is non-zero and inactive otherwise. If the activation rule associated with an active 545196.doc 14region is odd-even, the current region is active when its activation count is odd and inactive whenever its activation count is even.
The region dependency table 607, in accordance with the preferred embodiment, comprises a number of lists of dependencies delimited by delimiters. There is one list of dependencies belonging to each region in the region activation table 34. Fig. 10 shows an example of a region activation table and the dependencies needed to evaluate some derived regions for an image. The region activation table of Fig. 10 will be described in more detail later in this document, with reference to an example. Dependency lists can be empty and each entry in the dependency table 607 is preferably either a delimiter or a dependency. Each dependency consists of the index of a dependent region for which activation depends on the activation of the region that the list belongs too. Each dependency also consists of a dependency flag indicating whether the dependent region's activation count should be incremented or decremented upon activation of the region that ooooo a current region depends on. If the dependency flag is 0, the dependent region's 15 activation counter will be incremented whenever the region that the dependent region depends on changes from being inactive to active and decremented when the region that S. the dependent region depends on changes from being active to inactive. If the dependency flag is 1, the dependent region's activation counter will be decremented whenever the region that that dependent region depends on changes from being inactive 000o to active and incremented whenever the dependent region changes from being active to inactive.
Fig. 6 also shows how the data flows through the region update module 600 in accordance with the preferred embodiment. The region update stack 601 contains region o update messages and acts as both a FIFO queue and a LIFO stack. Region update •*•o0 messages come from two sources. Firstly, when the edge processing module 507 encounters the edge of a region, the edge processing module 507 puts a region update message on the bottom of the stack 601 the stack 601 is treated as a queue for the purpose of storing messages from the edge processing module 507). Secondly, dependencies generate region update messages. The stack 601 is FIFO for messages resulting from dependencies. Whenever one of the regions in the region activation table 34 changes state and the region has dependencies, each dependency preferably results in a new region update message. Update messages resulting from dependencies are pushed onto the top of the stack 601.
545196.doc The region update module 600 performs two main functions. Firstly, updating the activation table 34 and secondly, fetching dependencies. Whenever there is a region update message on the stack 601, the region update module 600 fetches the top message from the stack and either increments or decrements the activation counter (eg 1001 of Fig. 10) in the activation table entry indicated by the index stored in the top message. The region update module 600 then uses the activation rule (eg. 1003) to determine if the activation state has changed. If the activation state has changed, the region update module 600 sends an activation update message to the priority determination module 509 indicating the new activation state of the region and the priority determination module 509 updates the instruction table 35 to reflect the changed activation. For each dependency in the list of dependencies, a new region update message is generated and pushed onto the stack 601. Region update messages resulting from dependencies preferably take precedence over messages originating from the scan converter (not illustrated). That is, if the edge processing module 507 and the region update module 600 15 both attempt to put a message on the stack 601 at the same time, the edge processing oooo module 507 will stall until the stack 601 is no longer being used by the region update module 600.
Fig. 7 shows an example image 300 with outlines 301, 303, 305 and 307 to be ooooo scan converted by a scan converter (not illustrated), in accordance with the preferred embodiment. Given the outlines shown in Fig. 7, and given that these outlines are assigned to regions 0, 1, 2, and 3 respectively, the edge processing module 507 will produce the following sequence of region update messages as a result of scanning the scan-line 309 shown: -0, 9: where indicates that the nth region's activation count should be incremented by one and indicates that the nth region's activation count should be decremented by one.
Fig. 10 shows an example of a region activation table corresponding to the outlines 301, 303, 305 and 307 shown in Fig. 7 and the dependencies needed to evaluate some derived regions. Each entry in the table is labelled with the expression for the region that the entry encodes. An associated dependency table 607 is not explicitly shown, but the lists are shown. Each dependency is shown with a plus or minus sign indicating the value of the dependency flag. A zero value of the flag is indicated as a plus and a non-zero value of the flag is indicated by a minus. The activation counts shown in 545196.doc -16- Fig. 10 correspond to the initial values at the beginning of each scan line. The activation count values are preferably loaded before the outlines 701, 703, 705 and 707 are scanned.
Figs. 11 and 12 show the updated state of the activation table of Fig. 10 before and after, respectively, the updates resulting from a scan crossing outline 307 at the point 309 shown in Fig. 7.
The activation rules for primitive regions scanned by a scan-converter depend on the desired encoding of the shape. The zero activation rule is preferably not to be used for primitive regions. For simple closed curves, the non-zero and odd-even rules will produce identical results. The non-zero rule is useful for curves representing brushstrokes and corresponds to either the non-zero winding fill rule or the winding counting fill rule used in many prior art graphics systems.
Unions of regions are preferably represented using the non-zero activation rule.
Intersections of regions are preferably represented by the zero activation rule. The .oo.oi odd/even rule can be used by one skilled in the art to efficiently encode other 15 combinations of regions, but the odd/even rule is not required to be used for calculated regions.
S* The initial values of the activation counts are preferably determined using the following rules: for each primitive region, the initial activation count is zero; (ii) for each region that is the union of one or more other regions, the initial value of V the activation count is also zero; and (iii) for each region that is the intersection of two or more regions or complements of regions, the initial value of the activation count is equal to the number of regions in the o union that are not complemented.
The above rules to (iii) are valid if all of the regions represented in the region activation table 34 are bounded. In practice, unbounded regions do not need to be considered, since all regions of interest can be bounded within the confines of a rendering page. However, unbounded regions can also be processed by the region update module 600, in accordance with the preferred embodiment, using specific processing since the unbounded regions are active at the start of a scan. A person skilled in the art would appreciate that unbounded regions can be processed as complements of bounded regions.
Fig. 8 is a flow chart showing a method of rendering a plurality of graphical objects to form a raster pixel image in accordance with the preferred embodiment. The process begins at step 800, where the region activation table 34, the region dependency 545196.doc -17table 607 and the instruction table 35 are initialised, and a scan is started at a first pixel to be rendered. At the next step 801, a test is performed to see if the scan has crossed any object boundaries. If a boundary has been crossed, the process skips to step 807. If a boundary has not been crossed, the process continues to step 803 where the region activation table 34 and the instruction table 35 are updated by the region update module 600 and the priority determination module 509. The process of updating the region activation table 34 and the instruction table 35 is described in more detail later in this document. After updating the tables 34, 35, the process continues to step 805, where the priority determination module 509 and fill colour determination module 511 generate a list of compositing instructions. The list consists of all of the instructions from the instruction table 35 that are active for the current pixel. The process then continues to step 807, where the compositing instructions are executed by the pixel compositing module 513 using the pixel compositing stack 38 and the current pixel is rendered. After *e44.e rendering the current pixel, the process continues to step 809 where a test is performed to r. 15 determine whether the last pixel has been rendered. If the last pixel has been rendered, the process concludes. Otherwise, the process proceeds to step 811 where the scan moves to the next pixel to be rendered. The process then returns to step 801.
Fig 13. shows the operation of the region update module 600, in accordance with the preferred embodiment and describes step 803 of fig 8 in more detail. The region update module 600 processes messages received from the edge processing module 507.
Messages from the edge processing module 507 are placed on the bottom of the region update stack 33 which acts as a queue for these messages. The messages from the edge processing module 507 are of at least two types, region update messages and end of pixel
.I
messages. The edge processing module 507 sends a message to the region update module 600 each time an object boundary is crossed by the scan and each time the end of a pixel is encountered, as discussed above. These messages contain an identifier identifying which region the boundary crossing affects, and are identical to messages generated internally by the region update module 600. The process performed by the region update module 600, in accordance with the preferred embodiment begins at step 1301, where the region update module 600 waits for a message to arrive on the region update stack 33.
When a message is detected by the region update module 600, the message on the top of the stack 33 is removed, at step 1303. The process then continues to step 1305, where a test is performed to determine whether the message is a region update message. If the message is not a region update message, the message is passed through to the priority 545196.doc 18determination module 509, at step 1307, and the process returns to step 1301. Otherwise, if the message is a region update message, the process continues to step 1309 where the region update module 600 updates the activation count of the region identified in the region update message. At the next step 1311, a test is performed, by applying the activation rule associated with the region, to determine if the activation state of the region has changed as a result of the update. If the activation state has not changed, the process returns to step 1301, otherwise the process proceeds to step 1315 where an activation message is sent to the priority determination module 509 which updates the instruction table 35. The activation message sent to the instruction table 35, at step 1315, contains an identifier which identifies which instruction's activation state has changed. The identifier is preferably the same as the identifier of the region whose activation state has changed.
The process then continues at step 1313, where the region dependency table 607 is *;**!checked to determine if there are any regions dependent on the region whose activation state has changed. For each dependent region, an appropriate region update message is 15 placed on the top of the region update stack 33. The process then returns to step 1301.
The aforementioned preferred methods comprises a particular control flow.
There are many other variants of the preferred method which use different control flows without departing from the spirit or scope of the invention. Furthermore one or more of the steps of the preferred methods can be performed in parallel rather sequentially.
The preferred method can alternatively be practiced using a conventional general-purpose computer system 900, such as that shown in Fig. 9 wherein the processes of Fig. 8 and Fig. 13 can be implemented as software, such as an application program executing within the computer system 900. In particular, the steps of methods of Fig. 8 and Fig. 13 are effected by instructions in the software that are carried out by the computer. The software may be divided into two separate parts; one part for carrying out the preferred method; and another part to manage the user interface between the latter and the user. The software may be stored in a computer readable medium, including the storage devices described below, for example. The software is loaded into the computer from the computer readable medium, and then executed by the computer. A computer readable medium having such software or computer program recorded on it is a computer program product. The use of the computer program product in the computer preferably effects an advantageous apparatus for rendering graphical objects in accordance with the embodiments of the invention.
545196.doc -19- The computer system 900 comprises a computer module 901, input devices such as a keyboard 902 and mouse 903, output devices including a printer 915 and a display device 914. A Modulator-Demodulator (Modem) transceiver device 916 is used by the computer module 901 for communicating to and from a communications network 920, for example connectable via a telephone line921 or other functional medium. The modem 916 can be used to obtain access to the Internet, and other network systems, such as a Local Area Network (LAN) or a Wide Area Network (WAN).
The computer module 901 typically includes at least one processor unit 905, a memory unit 906, for example formed from semiconductor random access memory (RAM) and read only memory (ROM), input/output interfaces including a video interface 907, and an I/O interface 913 for the keyboard 902 and mouse 903 and optionally a joystick (not illustrated), and an interface 908 for the modem 916. A storage device 909 is provided and typically includes a hard disk drive 910 and a floppy disk drive 911. A magnetic tape drive (not illustrated) may also be used. A CD-ROM drive 912 is typically provided as a non-volatile source of data. The components 905 :*to 913 of the computer module 901, typically communicate via an interconnected bus 904 and in a manner which results in a conventional mode of operation of the computer system 900 known to those in the relevant art. Examples of computers on which the embodiments can be practised 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 910 and read and controlled in its execution by the processor 905.
Intermediate storage of the program and any data fetched from the network 920 may be accomplished using the semiconductor memory 906, possibly in concert with the hard disk drive 910. In some instances, the application program may be supplied to the user encoded on a CD-ROM or floppy disk and read via the corresponding drive 912 or 911, or alternatively may be read by the user from the network 920 via the modem device 916.
Still further, the software can also be loaded into the computer system 900 from other computer readable medium including magnetic tape, a ROM or integrated circuit, a magneto-optical disk, a radio or infra-red transmission channel between the computer module 901 and another device, a computer readable card such as a PCMCIA card, and the Internet and Intranets including email transmissions and information recorded on websites and the like. The foregoing is merely exemplary of relevant computer readable 545196.doc mediums. Other computer readable mediums may be practiced without departing from the scope and spirit of the invention.
The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive. For example, any arbitrary boolean combination of primitive regions can be calculated using the region update module 600 in accordance with the preferred embodiment.
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.
545196.doc

Claims (9)

1. Apparatus for rendering a plurality of graphical objects to form a raster pixel image having a plurality of scan lines, wherein each said graphical object is defined by an edge outline, and wherein said edge outlines form a plurality of regions in a space in which said edge outlines are defined, each said region being defined by a region outline substantially following at least one of said edge outlines, said apparatus comprising: edge processing means for determining, in a predetermined order, an intersection of those region outlines intersected by a scan line; region update means for updating a table each time a region outline intersection is determined, said table comprising at least one entry corresponding to each said region, each said entry indicating an activity status of a corresponding region, and wherein said update means updates an entry corresponding to a first region depending on said outline intersection determination or depending on an activity status of a further region upon 15 which said first region depends; and rendering means for determining rendered pixel values using a plurality of rendering instructions, wherein only instructions corresponding to regions having a :•positive activity status for a current pixel are used to render said pixel.
2. The apparatus according to claim 1, further comprising a storage means for storing said rendering instructions.
3. The apparatus according to claim 1, wherein said rendering instructions comprise stack instructions and compositing operations.
4. Apparatus for rendering a plurality of graphical objects to form a raster pixel image having a plurality of scan lines, wherein each said graphical object is defined by an edge outline, and wherein said edge outlines form a plurality of regions in a space in which said edge outlines are defined, each said region being defined by a region outline substantially following at least one of said edge outlines, said apparatus comprising: edge processing means for determining, in a predetermined order, an intersection of those region outlines intersected by a scan line; region update means for updating a table each time a region outline intersection is determined, said table comprising at least one entry corresponding to each said region,
545196.doc -22- each said entry comprising at least an activation counter and an activation rule for identifying an activity status of a corresponding region, wherein each said entry is further associated with a dependency list identifying dependencies between said regions, and wherein said update means updates an entry corresponding to a first region in response to an outline intersection determination for said first region or in response to a change in an activity status of a second region upon which said first region depends, said second region being identified by said dependency list; and rendering means for determining rendered pixel values using a plurality of rendering instructions, wherein each rendering instruction is associated with a region, and wherein only instructions corresponding to regions having a positive activity status for a current pixel are used to render said pixel.
5. The apparatus according to claim 4, further comprising a storage means for storing said rendering instructions. o:.o
6. The apparatus according to claim 4, further comprising a selection means for selecting said activation rule from a set of predetermined activation rules comprising at least a zero activation rule, a non-zero activation rule and an odd-even activation rule.
7. The apparatus according to claim 6, wherein if said predetermined rule is said zero activation rule, then a region is active if said activation counter corresponding to said region is equal to zero.
8. The apparatus according to claim 6, wherein if said predetermined rule is said non-zero activation rule, then a region is active if said activation counter corresponding to said region is not equal to zero.
9. The apparatus according to claim 6, wherein if said predetermined rule is said odd-even activation rule, then a region is active if said activation counter corresponding to said region is odd. The apparatus according to claim 4, wherein said rendering instructions comprise stack instructions and compositing operations. 545196.doc '7 23 11. Apparatus for rendering a plurality of graphical objects to form a raster pixel image having a plurality of scan lines, wherein each said graphical object is defined by an edge outline, and wherein said edge outlines form a plurality of regions in a space in which said edge outlines are defined, each said region being defined by a region outline substantially following at least one of said edge outlines, said apparatus comprising: edge processing means for determining, in a predetermined order, an intersection of those region outlines intersected by a scan line; region update means for updating a table each time a region outline intersection is determined, said table comprising at least one dependency entry and at least one activity entry for each of said regions, said dependency entries indicating dependencies between said regions and said activity entries indicating activity states of said regions, wherein said update means applies a predetermined rule to an activity entry associated with a region being substantially indicated by said region outline intersection to determine *if an activity state of a further region upon which said region depends has changed, and wherein if said activity state has changed said table is examined and at least one rendering instruction is determined for said region; and rendering means for determining rendered pixel values using said rendering instructions, wherein only instructions corresponding to regions having a positive activity state for a current pixel are used to render said pixel. 12. The apparatus according to claim 11, further comprising a storage means for storing said rendering instructions. o o 13. The apparatus according to claim 11, further comprising a selection means for selecting said predetermined rule from a set of predetermined activation rules comprising at least a zero activation rule, a non-zero activation rule and an odd-even activation rule. 14. The apparatus according to claim 13, wherein if said predetermined rule is said zero activation rule, then a region is active if an activity entry corresponding to said region is equal to zero. The apparatus according to claim 13, wherein if said predetermined rule is said non-zero activation rule, then a region is active if an activity entry corresponding to said region is not equal to zero. 545196.doc II Fj -24- 16. The apparatus according to claim 13, wherein if said predetermined rule is said odd-even activation rule, then a region is active if an activity entry corresponding to said region is odd. 17. The apparatus according to claim 11, wherein a plurality of dependency entries are associated with each of said objects. 18. The apparatus according to claim 11, wherein said dependency entry includes a dependency indicator. 19. The apparatus according to claim 17, wherein said activity entry is incremented ••depending on said dependency indicator. 9% 15 20. The apparatus according to claim 11, wherein said rendering instructions comprise stack instructions and compositing operations. 21. A method of rendering a plurality of graphical objects to form a raster pixel image having a plurality of scan lines, wherein each said graphical object is defined by an edge outline, and wherein said edge outlines form a plurality of regions in a space in which said edge outlines are defined, each said region being defined by a region outline substantially following at least one of said edge outlines, said method comprising the steps of: determining, in a predetermined order, an intersection of those region outlines intersected by a scan line; updating a table each time a region outline intersection is determined, said table comprising at least one entry corresponding to each said region, each said entry comprising at least an activation counter and an activation rule for identifying an activity status of a corresponding region, wherein each said entry is further associated with a dependency list identifying dependencies between said regions, and wherein an entry corresponding to a first region is updated in response to an outline intersection determination for said first region or to a change in an activity status of a second region upon which said first region depends, said second region being identified using said dependency list; and 545196.doc determining rendered pixel values using a plurality of rendering instructions, wherein each rendering instruction is associated with a region, and wherein only instructions corresponding to regions having a positive activity status for a current pixel are used to render said pixel. 22. The method according to claim 21, further comprising the step of storing said rendering instructions. 23. The method according to claim 21, further comprising the step of selecting said activation rule from a set of predetermined activation rules comprising at least a zero activation rule, a non-zero activation rule and an odd-even activation rule. 24. The method according to claim 23, wherein if said activation rule is said zero activation rule, then a region is active if said activation counter corresponding to said region is equal to zero. o* The method according to claim 23, wherein if said activation rule is said non- zero activation rule, then a region is active if said activation counter corresponding to said ;"region is not equal to zero. 26. The method according to claim 23, wherein if said activation rule is said odd- even activation rule, then a region is active if said activation counter corresponding to said region is odd. S 27. The method according to claim 21, wherein said rendering instructions comprise stack instructions and compositing operations. 28. A computer readable medium, having a program recorded thereon, said program being configured to make a computer execute a procedure for rendering a plurality of graphical objects to form a raster pixel image having a plurality of scan lines, wherein each said graphical object is defined by an edge outline, and wherein said edge outlines form a plurality of regions in a space in which said edge outlines are defined, each said region being defined by a region outline substantially following at least one of said edge outlines, said program comprising: 545196.doc -26- code for determining, in a predetermined order, an intersection of those region outlines intersected by a scan line; code for updating a table each time a region outline intersection is determined, said table comprising at least one entry corresponding to each said region, each said entry comprising at least an activation counter and an activation rule for identifying an activity status of a corresponding region, wherein each said entry is further associated with a dependency list identifying dependencies between said regions, and wherein an entry corresponding to a first region is updated in response to an outline intersection determination for said first region or to a change in an activity status of a second region upon which said first region depends, said second region being identified using said dependency list; and code for determining rendered pixel values using a plurality of rendering instructions, wherein each rendering instruction is associated with a region, and wherein only instructions corresponding to regions having a positive activity status for a current pixel are used to render said pixel. o 29. The computer readable medium according to claim 28, further comprising code for storing said rendering instructions. o 30. The computer readable medium according to claim 28, further comprising code for selecting said activation rule from a set of predetermined activation rules comprising at least a zero activation rule, a non-zero activation rule and an odd-even activation rule. 9• 31. The computer readable medium according to claim 30, wherein if said activation rule is said zero activation rule, then a region is active if said activation counter corresponding to said region is equal to zero. 32. The computer readable medium according to claim 30, wherein if said activation rule is said non-zero activation rule, then a region is active if said activation counter corresponding to said region is not equal to zero. 33. The computer readable medium according to claim 30, wherein if said activation rule is said odd-even activation rule, then a region is active if said activation counter corresponding to said region is odd. 545196.doc -27- 34. The computer readable medium according to claim 28, wherein said rendering instructions comprise stack instructions and compositing operations. 35. Apparatus for rendering a plurality of graphical objects to form a raster pixel image having a plurality of scan lines and a plurality of pixel locations on each said scan line, said apparatus being substantially as herein described with reference to Figs. 3 to 9. 36. A method of rendering a plurality of graphical objects to form a raster pixel image having a plurality of scan lines, said method being substantially as herein described with reference to Figs. 8 and 10 to 13. 37. A computer readable medium, having a program recorded thereon, said program o. being configured to make a computer execute a procedure for rendering a plurality of 15 graphical objects to form a raster pixel image having a plurality of scan lines, said S. program being substantially as herein described with reference to Figs. 8 and 10 to 13. DATED this 7th of March 2001 Canon Kabushiki Kaisha Patent Attorneys for the Applicant SPRUSON FERGUSON A@ 545196.doc
AU26461/01A 2000-03-30 2001-03-12 Method and apparatus for calculating Boolean combinations of regions in a plane Ceased AU766452B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU26461/01A AU766452B2 (en) 2000-03-30 2001-03-12 Method and apparatus for calculating Boolean combinations of regions in a plane

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AUPQ6584 2000-03-30
AUPQ6584A AUPQ658400A0 (en) 2000-03-30 2000-03-30 Method and apparatus for calculating boolean combinations of regions in a plane
AU26461/01A AU766452B2 (en) 2000-03-30 2001-03-12 Method and apparatus for calculating Boolean combinations of regions in a plane

Publications (2)

Publication Number Publication Date
AU2646101A true AU2646101A (en) 2001-10-04
AU766452B2 AU766452B2 (en) 2003-10-16

Family

ID=25619928

Family Applications (1)

Application Number Title Priority Date Filing Date
AU26461/01A Ceased AU766452B2 (en) 2000-03-30 2001-03-12 Method and apparatus for calculating Boolean combinations of regions in a plane

Country Status (1)

Country Link
AU (1) AU766452B2 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPM822394A0 (en) * 1994-09-16 1994-10-13 Canon Inc. Object based rendering system

Also Published As

Publication number Publication date
AU766452B2 (en) 2003-10-16

Similar Documents

Publication Publication Date Title
JP4365950B2 (en) Graphic object processing method and apparatus for high-speed raster format rendering
US7190376B1 (en) Method of compiling compositing expressions for optimised rendering
US6961067B2 (en) Reducing the number of compositing operations performed in a pixel sequential rendering system
JP4343344B2 (en) A high-speed image rendering method using raster graphic objects
US7714865B2 (en) Compositing list caching for a raster image processor
US7538770B2 (en) Tree-based compositing system
JP4630482B2 (en) Apparatus for generating representation tree and apparatus for rendering raster pixel image
US7551173B2 (en) Pixel accurate edges for scanline rendering system
JP4143613B2 (en) Drawing method and drawing apparatus
AU766452B2 (en) Method and apparatus for calculating Boolean combinations of regions in a plane
AU4750899A (en) Processing graphic objects for fast rasterised rendering
AU744463B2 (en) Method for compiling compositiing expressions for optimised rendering
AU743218B2 (en) Fast renering techniques for rasterised graphic object based images
AU2005200948B2 (en) Compositing list caching for a raster image processor
AU779154B2 (en) Compositing objects with opacity for fast rasterised rendering
AU2005201868A1 (en) Removing background colour in group compositing
AU2004200655B2 (en) Reducing the Number of Compositing Operations Performed in a Pixel Sequential Rendering System
AU2004233516B2 (en) Tree-based compositing system
AU2005200528B2 (en) Compositing with clip-to-self functionality without using a shape channel
AU2005201929A1 (en) Rendering graphic object images
AU770175B2 (en) Processing pixels of a digital image
AU2004231232B2 (en) Pixel accurate edges for scanline rendering system
AU2005201931A1 (en) Rendering graphic object images
AU2004231233A1 (en) Render Time Estimation
AU2004237873A1 (en) State table optimization in expression tree based compositing

Legal Events

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