AU2006252197A1 - Tile-Based Fillmap Optimisation - Google Patents

Tile-Based Fillmap Optimisation Download PDF

Info

Publication number
AU2006252197A1
AU2006252197A1 AU2006252197A AU2006252197A AU2006252197A1 AU 2006252197 A1 AU2006252197 A1 AU 2006252197A1 AU 2006252197 A AU2006252197 A AU 2006252197A AU 2006252197 A AU2006252197 A AU 2006252197A AU 2006252197 A1 AU2006252197 A1 AU 2006252197A1
Authority
AU
Australia
Prior art keywords
fill
fillmap
page
bitmap
source
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.)
Abandoned
Application number
AU2006252197A
Inventor
Joseph Leigh Belbin
Michael Warwick Chipman
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
Application filed by Canon Inc filed Critical Canon Inc
Priority to AU2006252197A priority Critical patent/AU2006252197A1/en
Priority to US11/680,702 priority patent/US7978196B2/en
Publication of AU2006252197A1 publication Critical patent/AU2006252197A1/en
Abandoned legal-status Critical Current

Links

Landscapes

  • Record Information Processing For Printing (AREA)

Description

S&F Ref: 786798
AUSTRALIA
PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT Name and Address of Applicant Actual Inventor(s): Address for Service: Invention Title: Canon Kabushiki Kaisha, of 30-2, Shimomaruko 3-chome, Ohta-ku, Tokyo, 146, Japan Joseph Leigh Belbin Michael Warwick Chipman Spruson Ferguson St Martins Tower Level 31 Market Street Sydney NSW 2000 (CCN 3710000177) Tile-Based Fillmap Optimisation The following statement is a full description of this invention, including the best method of performing it known to me/us:- 5845c(617673_1) -1- STILE-BASED FILLMAP OPTIMISATION U a) Field of the Invention The present invention relates generally to rendering of graphical object images and, in particular, to rendering in real time using non-redundant page representations Swithout over-painting.
O 5 Background r A computer application typically provides a page to a device for printing and/or display in the form of a page description, with the page description typically represented using a page description language (PDL), such as Adobe® PostScript® or Hewlett- Packard® PCL. The PDL provides descriptions of objects to be rendered onto the page in a rendering or Z-order, as opposed to a raster image of the page to be printed. These objects can be complex, and there can be a large number of overlapping objects in a page representation. Scan-converting and compositing these PDL objects to a raster image can therefore require a large amount of processing power and memory, and it is often impossible to render a PDL page representation in real time in a low cost printing device.
Hence, typical printer devices convert the PDL data to an entire page of pixels in memory before transferring the rendered pixels to the printer engine.
A common method of converting complex PDL data into raster data is to allocate a buffer of memory the size of the rendered page image. Each object is then rendered into the buffer in ascending Z-order. This method is commonly known as the 'painter's algorithm'. This approach has several major drawbacks.
Firstly, the page is rendered to pixels at the device resolution. An A4 page at 600dpi resolution may require over one hundred megabytes of pixel data to be stored in memory. Compressing the pixel data alleviates the problem to some extent, particularly 786798
\O
c when the pixel data has already been halftoned. However, many megabytes of memory are
U
Sstill required to store the compressed pixel data. The memory requirements of this configuration are particularly sensitive to an increase in page resolution. For example, an increase in page resolution from 600dpi to 1200dpi would increase the memory 5 requirements by up to a factor of four. Similarly, the memory requirements of this Sconfiguration are also sensitive to an increase in page dimensions.
IND
Secondly, as subsequent objects are rasterised into the frame buffer, the data for each pixel may be overwritten many times. This "pixel overpainting" is inherently inefficient and is sensitive to memory bandwidth.
Several attempts to overcome the disadvantages of the conventional 'painter's algorithm' method of rendering are known. These methods commonly involve 'flattening' the page description to produce an intermediate page representation which does not require over-painting or a full frame buffer to render.
One method disclosed in US 6,049,339 (issued 11 April 2000 to Schiller, et al.) converts overlapping PDL objects into non-overlapping page objects in an intermediate representation known as a planar map. This approach eliminates the problem of overpainting and removes the need for a frame buffer. However, planar map page representations retain complex paths in the intermediate page representation. Scan converting these complex paths may not be possible in real-time in low cost printing devices.
Another method which is disclosed in US 2006/0146362 (by Robert E. Romney) and US 6,238,105 (issued 29 May 2001 to Pardo) converts PDL objects into scanline segments which represent page elements. PDL objects are merged into this representation one-by-one, and the segments affected by each object are updated. These segments may 786798 -3-
NO
Sreference PDL data, such as low resolution images or flat colour, or else may be runs of Spage resolution pixels which may be compiressed. However, the production of runs of compressed page resolution pixels may require multiple processing (overpainting) for each pixel, and referenced low resolution images may contain large amounts of redundant data, not needed for rendering the page.
t A further method disclosed in US 2005/0213130 (by Michael Donald Bender,; et
(NO
al.) involves analysing PDL objects to determine whether they are complex to render. If an object or a series of objects are found to be complex to render, a band or bounding box containing these objects is rendered to page resolution pixels. These page resolution pixels are then spooled. Non-complex objects are spooled in object form. This guarantees that the spool job can be rendered in real-time. However, a large amount of redundant page resolution pixels may be created.
Each of these known methods overcomes certain disadvantages inherent in the painter's algorithm method of producing raster data. However none of these methods meets the requirement for a quick-to-render spool format which eliminates pixel overpainting and minimises redundant data in the spool job.
Summary It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements.
According to a first aspect of the present invention, there is provided a page representation adapted to be rendered to a raster image of output pixel values at page resolution, said page representation comprising: one or more tiles adapted to be rendered to generate pixel values for a corresponding rectangular portion of said raster image, each said tile comprising: 786798
\O
Sone or more non-overlapping regions, at least one said region referencing a single
U
Sfill adapted to be rendered to generate pixel values for a corresponding subportion of said rectangular portion, wherein at least one said single fill is a cropped source bitmap of pixel values at lower resolution than said page resolution, a portion of said source image not contributing Sto the generation of any output pixel values of said raster image having been discarded.
INi According to a second aspect of the present invention, there is provided a method of processing a page representation adapted to be rendered to a raster image of output pixel values at page resolution, said page representation comprising one or more fillmap tiles, each said fillmap tile referencing a fill compositing sequence adapted to be composited to generate pixel values for a corresponding portion of said raster image, said method comprising the steps of: determining whether each said fill compositing sequence consists of a source bitmap fill at lower resolution than said page resolution and zero or more flat fills; and if so discarding a portion of said source bitmap fill that does not contribute to the generation of any output pixel values of said raster image.
According to another aspect of the present invention, there is provided an apparatus for implementing the aforementioned method.
According to another aspect of the present invention there is provided a computer program product including a computer readable medium having recorded thereon a computer program for implementing the method described above.
Other aspects of the invention are also disclosed.
786798
IO
0 C1 Brief Description of the Drawings SOne or more embodiments of the present invention will now be described with reference to the drawings, in which: Fig. 1 shows a schematic block diagram of a pixel rendering system for rendering computer graphic object images on which the embodiments of the present t invention may be practised;
ND
0Fig. 2 is an illustration of a typical page to be rendered; Fig. 3 shows the tiled fillmap representation of the page from Fig. 2; Fig. 4 shows a table of fillmap fill compositing sequences; Fig. 5 shows the list of fill compositing sequences for a single fillmap tile; Fig. 6 is an illustration of a hybrid fillmap tile; Fig. 7 is a block diagram of the disclosed fillmap optimisation method; Fig. 8 is a flow diagram of a method of fillmap tile processing according to the preferred embodiment of the invention; Fig. 9 is a flow diagram of a method of generating bitmap usage data as used in Fig 8; Fig. 10 illustrates fillmap tile to source bitmap tile mapping; Fig. 11 is a flow diagram of the method of hybrid tile creation as used in Fig 8; Fig. 12 is a block diagram of the disclosed method of source bitmap processing as used in Fig 8; Fig. 13 is a flow diagram of the flatten to bitmap method as used in Fig 8; Fig. 14 is a flow diagram of the source bitmap cropping process as used in Fig 8; 786798 -6-
INO
SFig. 15 illustrates fillmap tile processing for the page shown in Fig. 2; and
U
SFig. 16 illustrates source bitmap processing for the page shown in Fig. 2.
Detailed Description Fig. 1 shows a schematic block diagram of a pixel rendering system 100 for rendering computer graphic object images on which embodiments of the present invention r may be practised. The pixel rendering system 100 comprises a personal computer 110
NO
connected to a printer system 160 through a network 150. The network 150 may be a typical network involving multiple personal computers, or may be a simple connection between a single personal computer and the printer system 160.
The personal computer 110 comprises a host processor 120 for executing a software application 130, such as a word processor or graphical software application.
The printer system 160 comprises a controller processor 170 for executing a controlling program 140, a pixel rendering apparatus 180, memory 190, and a printer engine 195 coupled via a bus 175. The pixel rendering apparatus 180 is preferably in the form of an application-specific integrated circuit (ASIC) coupled via the bus 175 to the controller processor 170, and the printer engine 195. However, the pixel rendering apparatus 180 may also be implemented in software executed in the controller processor 170.
In the pixel rendering system 100, the software application 130 creates page-based documents where each page contains objects such as text, lines, fill regions, and image data. The software application 130 sends a high level description of the page (for example a PDL file) to the controlling program 140 executing in the controller processor 170 of the printer system 160 via the network 150.
786798 -7-
IO
CN The controlling program 140 receives the description of the page from the software Sapplication 130, and generates an intermediate page representation known as a fillmap, which references a table of fill compositing sequences, both of which are described below.
The controlling program 140 then processes the fillmap and the table of fill compositing S 5 sequences to remove redundant data and ensure that the page can be rendered in real time.
SThis 'fillmap optimisation' processing is also described below. The program executing on Sthe controller processor 170 is also responsible for providing memory 190 for the pixel rendering apparatus 180, initialising the pixel rendering apparatus 180, and instructing the pixel rendering apparatus 180 to start rendering the optimised fillmap.
The pixel rendering apparatus 180 then uses the optimised fillmap and table of fill compositing sequences to render the page to pixels. The output of the pixel rendering apparatus 180 is a raster page image of (colour) pixel values, which may be printed by printer engine 195.
The present invention is not limited to the system of Fig. 1 and its embodiments may be practised on other rendering systems.
A fillmap is a region based representation of a page. A fillmap comprises one or more regions, each referencing a fill compositing sequence adapted to be composited to generate the colour of each pixel within a corresponding portion of the raster page image.
Multiple regions within a fillmap can reference the same fill compositing sequence.
Regions within the fillmap are non-overlapping and hence each pixel in the rendered page can only correspond to a single region. Each region within the fillmap is defined by a set of fillmap edges which activate the fill compositing sequence referenced by the region.
Each region in a fillmap references a fill compositing sequence from which pixels in the region derive their colour. A tiled fillmap comprises one or more fillmap tiles, each 786798
IO
N corresponding to a rectangular portion of the raster page image, and bearing the
O
Scharacteristics of a fillmap. Thus, for a tiled fillmap, each fillmap tile comprises one or more non-overlapping regions, each referencing a fill compositing sequence adapted to be composited to generate the colour of each pixel within a corresponding subportion of the 5 rectangular portion. Fill compositing sequences may be shared between regions in
(N
n different tiles.
IND
SAll fill compositing sequences referenced by the fillmap are stored in the table of fill compositing sequences. A fill compositing sequence is a sequence ofZ-ordered levels, where each level contains attributes such as a fill, the opacity of the level, a raster operation which determines how to mix the colour data of this level with other levels in the fill compositing sequence, and the priority, or Z-order of the level. A fill is used by the renderer to calculate the output pixel colour at any given location in the page. Examples of typical fills in a printing system are flat colours, linear blends and bitmap fills. A fill compositing sequence contains references to all the objects or levels which contribute colour to the pixels within a region, in rendering order. Note that a fill compositing sequence cannot consist of multiple flat colours, as such sequences would have been "precomposited" to a single equivalent flat colour in the process of generating the fillmap.
A typical tiled fillmap representation of a page is illustrated in Fig. 2 and Fig 3.
Fig. 2 shows a typical page 210 containing three objects arranged on a background in ascending Z-order as follows: a low resolution opaque source bitmap object 240, a semitransparent flat object 220, and a linear blend object 230 Fig. 3 shows the page 210 of Fig. 2 represented as a tiled fillmap 305. The fillmap tiles 310 and 330 are at tile positions 1) and 3) respectively expressed in (column, row) form. The contents of fillmap tile 310 are shown expanded at the top right of Fig. 3. The three regions 315, 320 and 325 in 786798
IO
N fillmap tile 310 reference the fill compositing sequences with indices 1, 3 and 4 Srespectively. The contents of fillmap tile 330 are also shown expanded at the bottom right of Fig. 3. The four regions 335, 340, 345 and 350 in fillmap tile 330 reference the fill compositing sequences with indices 1, 2, 3 and 4 respectively.
5 The advantage of the fillmap representation is that there is no pixel over-painting t required to either generate or render a fillmap. However rendering a fillmap may require \,l Scomplex compositing operations for each output or page resolution pixel. These potentially complex compositing operations mean that it is impossible to guarantee that a fillmap as so far described can be rendered in real-time. In addition, as noted above, source bitmap fills referenced by fill compositing sequences may contain redundant data.
This means the additional memory required to store this unused source fill data is wasted.
The preferred embodiment of the present invention comprises a method of processing the fillmap to ensure that it is compact and can be rendered in real-time. This is achieved by processing the fill compositing sequences referenced by the fillmap, to ensure that fill compositing sequences are 'flattened', and redundant data is discarded. A flattened fill compositing sequence is a fill compositing sequence which requires no compositing to derive the final pixel colour. The table of fill compositing sequences preferably stores an optimisation operation for each fill compositing sequence, generated at the time the fill compositing sequence is entered into the table of fill compositing sequences and depending on the type of fill compositing sequence. Possible optimisation operations for different fill compositing sequence types are listed in Table 1 below. The optimisation operations will be described in further detail below.
786798 Fill compositing sequence type Optimisation operation A fill compositing sequence CROP referencing a single, low- All unused source bitmap tiles are to be discarded.
resolution opaque source bitmap.
A fill compositing sequence FLATTEN TO BITMAP referencing a single, low- The fill compositing sequence is to be replaced by a fill resolution source bitmap compositing sequence referring to a single low resolution composited with one or more opaque bitmap.
flat colour fills.
A fill compositing sequence NONE referencing a single flat colour. There is no optimisation possible for this fill compositing sequence.
None of the above (a fill FLATTEN TO PIXELS compositing sequence that The regions in the fillmap referring to this fill cannot be optimised as a low- compositing sequence are to be replaced by pixel values resolution opaque bitmap or a at page resolution.
flat colour).
Table 1: Optimisation operations for fill compositing sequences Fig. 4 shows the table of fill compositing sequences 410 for the tiled fillmap 305 shown in Fig. 3. The fill compositing sequence with index 1 references the flat colour fill of object 220 (Fig. 2) after compositing with the background colour. The optimisation operation for this fill compositing sequence is set to 'NONE' as this fill compositing sequence requires no optimisation. The fill compositing sequence with index 2 references the blend fill of object 230 (Fig. In typical rendering systems this blend cannot be rendered in real-time, hence its optimisation operation is set to 'FLATTEN TO PIXELS'.
The fill compositing sequence with index 3 references the low resolution source bitmap fill of object 240 (Fig. 2) composited with the flat colour fill of object 220. This fill compositing sequence can be optimised as a low resolution source bitmap, and so the 786798 -11-
IO
CN optimisation operation is set to 'FLATTEN TO BITMAP'. The fill compositing sequence Swith index 4 references the low resolution source bitmap of object 240 (Fig. This fill compositing sequence can be optimised by cropping the source bitmap, and so the optimisation operation is set to 'CROP'.
Each tile in a fillmap has a list of the indices of the fill compositing sequences needed to render the fillmap tile to pixels. An illustration of this is given in Fig. 5, which
IND
Sshows the fillmap tile 330 from Fig. 3 and the corresponding list of fill compositing sequences 510.
A fill compositing sequence may reference a source bitmap, which is typically at a lower resolution than that of the printer engine 195. Two distinct fill compositing sequences may reference the same source bitmap. Each source bitmap is preferably stored within an image repository within memory 190 as an array of rectangular tiles. The image repository allows random access to these source bitmap tiles. In this way, source tiles can be independently created, discarded, or modified. Source tiles can be as small as a single pixel or as large as the entire image, but to obtain maximum benefit are preferably between these two extremes.
In a fillmap representation of a page, each reference in a fill compositing sequence to a source bitmap is associated with an affine transformation matrix. This matrix allows the renderer to map between the page resolution pixels and source bitmap pixels.
Moreover, each source bitmap is itself associated with a bitmask. The bitmask has a single value for each source bitmap tile. The bitmask value is set to either 'NOT REQUIRED' or 'REQUIRED' depending on whether the corresponding source tile contributes colour to an output pixel. If tiles are one pixel in size, the bitmask is clearly of the same resolution as 786798 12-
IO
c1 the source bitmap. When each source bitmap is initially stored in the image repository, all Sbitmask values are set to 'NOT REQUIRED'.
A form of fillmap representation known as a hybrid fillmap is used in embodiments of the present invention. A hybrid fillmap can comprise one or more hybrid fillmap tiles.
5 A hybrid fillmap tile has at least one region containing page resolution pixel values rather t than a reference to a fill compositing sequence. Fig. 6 shows a hybrid fillmap tile
ID
0 representation 610 of the fillmap tile 330 from Fig. 3. The region 340 which previously referred to the fill compositing sequence with index 2 has been replaced by a region 620 of RGB pixel values. The updated list of corresponding fill compositing sequence indices 630 (omitting index 2) is also shown in Fig. 6.
Fig. 7 shows a schematic block diagram of the fillmap processing method 710, comprising a fillmap tile processing stage 730, and a source bitmap processing stage 750.
The fillmap processing method 710 receives a page representation 720 comprising a tiled fillmap, a table of fill compositing sequences and referenced tiled source bitmaps. The fillmap tile processing stage 730 processes the tiled fillmap and associated data 720 and produces intermediate data 740 comprising a tiled hybrid fillmap, source bitmaps with updated bitmasks, and an updated table of fill compositing sequences. This intermediate data 740 is then passed onto the source bitmap processing stage 750. The source bitmap processing stage 750 discards any unrequired source tiles and generates flattened source bitmaps according to the 'flatten to bitmap' optimisation. The result is spoolable page data 760 consisting of a tiled hybrid fillmap, a table of flattened fill compositing sequences, and source bitmaps which have either been cropped, or else generated in step 750.
Fig. 8 is a schematic flow diagram of the fillmap tile processing step 730 of the fillmap processing method 710 shown in Fig. 7. Here, fillmap tiles are processed 786798 -13individually and in raster order. Processing begins at step 805 and proceeds immediately to step 810 where it is determined whether there are more fillmap tiles to process. If it is determined in step 810 that there are more tiles to process, then processing proceeds to step 820 where the next tile in raster order is retrieved. Alternatively, if it is determined in step 810 that all tiles have been processed, then processing proceeds to step 815 where tile processing is terminated.
From step 820 processing proceeds to step 825 where the list of fill compositing sequences for the retrieved fillmap tile is then obtained. Processing then proceeds to step 830. In steps 830, 835, 840, 845, 850, and 855 the method iterates through this list to determine whether any regions are to be converted to page resolution pixel values and to update bitmask usage data for source bitmap fills which can be cropped or flattened. Step 830 determines whether there are any fill compositing sequences remaining in the list to be processed for the current tile. If it is determined in step 830 that fill compositing sequences remain to be processed, then processing proceeds to step 835 where the current fill compositing sequence is set to the next fill compositing sequence in the list of fill compositing sequences for the current tile. Processing then proceeds to step 840.
In steps 840, 845, 850 and 855 the fill compositing sequence obtained in step 835 is examined to determine if any optimisation processing is possible. Step 840 determines whether the optimisation operation for the current fill compositing sequence is 'NONE'. If it is determined in step 840 that the optimisation operation for the current fill compositing sequence is 'NONE', then no further optimisation processing is possible for the current fill compositing sequence, and processing returns to step 830. If it is determined in step 840 that the optimisation operation for the current fill compositing sequence is not 'NONE', then processing proceeds to step 845, where it is determined whether the optimisation 786798 -14-
IO
O
C1 operation for the current fill compositing sequence is 'FLATTEN TO PIXELS'. If it is Sdetermined in step 845 that the optimisation operation for the current fill compositing sequence is 'FLATTEN TO PIXELS', then there is at least one region within the tile which requires conversion to page resolution pixel values, and processing continues to step 850 where the tile is marked with a flag 'GENERATE PIXEL DATA'. Processing then returns t to step 830. If it is determined in step 845 that the optimisation operation is not 0 'FLATTEN TO PIXELS', then processing proceeds to step 855. If processing has reached step 855 then the fill compositing sequence optimisation operator must be either 'CROP' or 'FLATTEN TO BITMAP'. In step 855 the bitmask for the source bitmap referenced by the fill compositing sequence is updated as described below with reference to Fig. 9.
Processing then returns to step 830.
If it is determined in step 830 that there are no fill compositing sequences remaining to process for the current tile, then processing continues to step 870 where it is determined whether the tile has been marked with the flag 'GENERATE PIXEL DATA'.
If it is determined in step 870 that the tile has not been marked with the flag 'GENERATE PIXEL DATA', then fillmap tile processing is complete for the current tile, and processing returns to step 810. Alternatively, if it is determined in step 870 that the tile has been marked with the flag 'GENERATE PIXEL DATA' then processing continues to step 875 where all regions in the fillmap tile which reference a fill compositing sequence with optimisation operation 'FLATTEN TO PIXELS' are rendered to page resolution pixels as described in more detail below with reference to Fig. 11. In this way, the fillmap tile is converted to a hybrid fillmap tile. Processing then returns to step 810.
Fig. 9 is a schematic flow diagram illustrating step 855 of Fig. 8 in more detail.
Processing starts at step 905 and proceeds immediately to step 910 where it is determined 786798
IO
ci whether the optimisation operation for the current fill compositing sequence is 'CROP'. If Sit is determined in step 910 that the optimisation operation for the current fill compositing sequence is 'CROP' the processing continues to step 915, where the variable update_bitmap is set to the single source bitmap referenced by the fill compositing 5 sequence. Processing then continues to step 935.
t If it is determined in step 910 that the optimisation operation for the fill
ID
Scompositing sequence is not 'CROP', but rather 'FLATTEN TO BITMAP', then processing proceeds to step 920. Step 920 determines whether a replacement source bitmap corresponding to this fill compositing sequence has previously been created. If it is determined in step 920 that a replacement source bitmap has not been created, then processing proceeds to step 925 where a replacement source bitmap is created as a null image for the current fill compositing sequence. Processing then proceeds to step 930 where the variable updatebitmap is set to this new replacement source bitmap. This new replacement source bitmap contains no source bitmap data, and has a source bitmap bitmask which is of the same dimensions as the low resolution source bitmap currently referenced by this fill compositing sequence. All values of the newly created source bitmap bitmask are initialised to 'NOT REQUIRED'. Processing then continues to step 935.
If in step 920 it is determined that a replacement source bitmap corresponding to the fill compositing sequence exists, then processing continues to step 930 where the variable update bitmap is set to be the replacement source bitmap corresponding to the fill compositing sequence. Processing then continues to step 935.
In step 935, the tiles of the source bitmap stored in the variable update_bitmap which are needed in order to render pixels within the corresponding region of the current 786798 -16-
IO
N fillmap tile (determined in step 820) are determined. Processing then proceeds to step 940 Swhere the required bitmap tiles are marked as such by setting the values in the bitmask associated with the variable update_bitmap which correspond to these required bitmap tiles to 'REQUIRED', if they have not already been so set during processing of a previous 5 fillmap tile. Processing then proceeds to step 945 where processing for the current fill t compositing sequence concludes.
SFig. 10 is an illustration of the method of determining the required source bitmap tiles for a fillmap tile, as used in step 940 of Fig. 9. A fillmap tile 1010 is mapped into source bitmap space 1020 via the inverse of the affine transform used to map the source image to the page space. An upright bounding box 1030 in source bitmap space is "drawn" around the mapped fillmap tile 1040. The vertices of the bounding box 1030 are then snapped to the surrounding source bitmap tile vertices to determine the source bitmap tiles required to render the fillmap tile to pixels. In the example shown, the bounding box 1030 touches source tiles 1050, 1060, 1070 and 1080, so these are the source bitmap tiles required to render fillmap tile 1010 to pixels.
Fig. 11 is a schematic flow diagram illustrating step 875 of Fig. 8 in more detail.
Processing begins at step 1110 and proceeds to step 1120 where all regions which reference fill compositing sequences with the optimisation operation 'FLATTEN TO PIXELS' are rendered to pixels. Processing then proceeds to step 1130 where a new hybrid fillmap tile is created which contains both those regions rendered to pixels in step 1120 and those regions which were not rendered to pixels. Processing then proceeds to step 1140 where the current fillmap tile is replaced by the newly created hybrid fillmap tile. Processing continues to step 1150 where processing terminates.
786798 -17-
IO
cN Referring back to Fig. 7, source bitmap processing is performed once fillmap tile Sprocessing is completed. Fig. 12 shows a schematic flow diagram of the source bitmap processing step 750 in more detail.
The source bitmap process 750 comprises a flatten to bitmap stage 1230 and a cropping stage 1250. The source bitmap process 750 receives data 1220 comprising the Stable of fill compositing sequences and all the tiled source bitmaps for the fillmap as a
ID
Swhole. The flatten to bitmap stage 1230 processes any fill compositing sequences that can be flattened to an opaque bitmap. For all fillmap fill compositing sequences with the optimisation operation 'FLATTEN TO BITMAP', the fill compositing sequence is composited to create bitmap data for any replacement source bitmap tiles whose corresponding bitmask value is 'REQUIRED'. The fillmap's fill compositing sequence is then updated to reference the replacement source bitmap. This produces data 1240 comprising an updated set of tiled source bitmaps and the updated table of fill compositing sequences.
Next, for all fillmap fill compositing sequences with the optimisation operation 'CROP', the cropping stage 1250 discards any source bitmap tile whose corresponding bitmask value is 'NOT REQUIRED'. This produces data 1260 comprising the final updated set of tiled source bitmaps and the updated table of fill compositing sequences.
Fig. 13 is a schematic flow diagram showing the flatten to bitmap process 1230 from Fig. 12 in detail. Processing starts in step 1310 and proceeds directly to step 1320 where it is determined whether all fill compositing sequences in the table of fill compositing sequences have been processed. If it is determined in step 1320 that all compositing sequences have been processed, the flatten to bitmap processing terminates in step 1370. Otherwise step 1320 proceeds to step 1330, which retrieves the next fill 786798 18-
IO
0 cI compositing sequence from the table of fill compositing sequences. Processing then continues from step 1330 to step 1340, which tests whether the optimisation operation for this fill compositing sequence is 'FLATTEN TO BITMAP'. If it is determined in step 1340 that the optimisation operation is not 'FLATTEN TO BITMAP', processing returns 5 to step 1320 to continue iterating through the table of fill compositing sequences.
t Alternatively, if in step 1340 it is determined that the optimisation operation for the fill Scompositing sequence is 'FLATTEN TO BITMAP', processing continues to step 1350, where the fill compositing sequence is rendered at source resolution to create bitmap data for all replacement bitmap tiles whose corresponding bitmask value is 'REQUIRED'.
Once these replacement bitmap tiles are created, processing moves from step 1350 to step 1360, where the current fill compositing sequence is replaced in the table of fill compositing sequences by a reference to the replacement bitmap. Processing then returns to step 1320.
Fig. 14 is a schematic flow diagram of the source bitmap cropping process 1250 from Fig. 12. Processing begins at step 1410 and proceeds directly to step 1420 where it is determined whether all fill compositing sequences in the table of fill compositing sequences have been processed. If it is determined in step 1420 that all fill compositing sequences have been processed, processing continues to step 1460, where the bitmap cropping processing terminates. Otherwise processing continues from step 1420 to step 1430, where the next fill compositing sequence from the table of fillmap fill compositing sequences is obtained. The source bitmap cropping process 1250 then proceeds to step 1440 which tests whether the optimisation operation for this fill compositing sequence is 'CROP'. If it is determined in step 1440 that the optimisation operation is not 'CROP', processing returns to step 1420 to continue iterating through the table of fill compositing 786798 -19-
IO
O
C' sequences. Alternatively, if in step 1440 it is determined that the optimisation operation
O
Sfor the fill compositing sequence is 'CROP', processing moves to step 1450. At step 1450, all unmarked source bitmap tiles, i.e. those tiles whose corresponding bitmask value is 'NOT REQUIRED', are discarded. Once these source bitmap tiles are discarded, processing then returns to step 1420.
n Fig. 15 illustrates the fillmap tile processing stage 730 for the page 210 given in
IND
0 Fig. 2. Fillmap tile processing receives a tiled fillmap 1510 (corresponding to tiled fillmap 305), its corresponding table of fill compositing sequences 1520 (corresponding to table 410), and the single referenced source bitmap 1530 (corresponding to object 240), together with corresponding source bitmap bitmask 1540. In both Fig. 15 and Fig. 16, a value of in the source bitmap bitmask represents 'NOT REQUIRED', while the value '1' represents 'REQUIRED'.
On completion of fillmap tile processing 730, all page resolution pixel values have been generated and stored within hybrid fillmap tiles 1550. An updated table 1560 of fill compositing sequences has been generated with fill compositing sequence 2 removed, and the bitmask 1540 for the original source bitmap has been updated to 1570 to indicate source bitmap tile usage. Finally, a null replacement bitmap 1580 has been created, together with a corresponding bitmask 1590 indicating replacement bitmap tile usage.
Fig. 16 illustrates the source bitmap processing stage 750 for the page 210 given in Fig. 2. Source bitmap processing receives a tiled fillmap 1510 containing hybrid tiles 1550, the table of fill compositing sequences 1560, the referenced tiled source bitmap 1530 with corresponding source bitmap bitmask 1570, and the null replacement bitmap 1580 with corresponding replacement bitmap bitmask 1590.
786798
IO
c On completion of source bitmap processing, the fillmap 1510 is unchanged.
O
SHowever, the redundant source bitmap tiles of the referenced source bitmap 1530 have been cropped 1610 according to the usage information in source bitmap bitmask 1570.
Bitmap tile data for the single replacement bitmap 1620 has been created according to usage information in bitmask 1590. Finally, the table of fill compositing sequences 1560 t has been updated to 1630 to reference the new replacement bitmap 1620. The table entry 3
ID
0 which previously referenced the fill compositing sequence comprising a source bitmap and a semitransparent flat fill now references the replacement bitmap 1620. On completion of source bitmap processing, bitmap bitmasks 1570 and 1590, and optimisation operation data from the table of fill compositing sequences are discarded.
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.
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 correspondingly varied meanings.
786798

Claims (5)

  1. 2. A method of processing a page representation adapted to be rendered to a raster image of output pixel values at page resolution, said page representation comprising one or more fillmap tiles, each said fillmap tile referencing a fill compositing sequence adapted to be composited to generate pixel values for a corresponding portion of said raster image, said method comprising the steps of: determining whether each said fill compositing sequence consists of a source bitmap fill at lower resolution than said page resolution and zero or more flat fills; and if so discarding a portion of said source bitmap fill that does not contribute to the generation of any output pixel values of said raster image.
  2. 3. The method according to claim 2, wherein said source bitmap fill consists of a plurality of source bitmap tiles, and said discarding comprises the steps of: 786798 -22- IO O 0 marking, for each said fillmap tile, those said source bitmap tiles that contribute to Sthe generation of output pixel values of the portion of said raster image corresponding to C said fillmap tile, and discarding at least one unmarked source image tile from said tiled source image.
  3. 4. The method according to claim 3, further comprising the steps of: 8 compositing said marked source image tiles with said flat fills to generate bitmap data for tiles of a further source image; and replacing said fill compositing sequence with a further fill compositing sequence o0 consisting of said generated further source image tiles. The method according to claim 2, further comprising the steps of: determining whether each said fill compositing sequence requires compositing at the resolution of said raster image, and if so: compositing said fill compositing sequence at said page resolution to generate pixel values for said corresponding portion, storing said generated pixel values in said fillmap tile, and discarding said composited fill compositing sequence.
  4. 6. Apparatus for processing a page representation adapted to be rendered to a raster image of output pixel values at page resolution, said page representation comprising one or more fillmap tiles, each said fillmap tile referencing a fill compositing sequence adapted to be composited to generate pixel values for a corresponding portion of said raster image, said apparatus comprising: 786798 23 \O Smeans for determining whether each said fill compositing sequence consists of a source bitmap fill at lower resolution than said page resolution and zero or more flat fills; and if so discarding a portion of said source bitmap fill that does not contribute to the generation of any output pixel values of said raster image. IND S7. A computer program product including a computer readable medium having recorded thereon a computer program for implementing a method of processing a page representation adapted to be rendered to a raster image of output pixel values at page resolution, said page representation comprising one or more fillmap tiles, each said fillmap tile referencing a fill compositing sequence adapted to be composited to generate pixel values for a corresponding portion of said raster image, said method comprising the steps of: determining whether each said fill compositing sequence consists of a source bitmap fill at lower resolution than said page resolution and zero or more flat fills; and if so discarding a portion of said source bitmap fill that does not contribute to the generation of any output pixel values of said raster image.
  5. 8. A method of processing a page representation adapted to be rendered to a raster image, said method being substantially as described herein with reference to the accompanying drawings. 786798 -24- 0 9. Apparatus for processing a page representation adapted to be rendered to a raster image, said apparatus being substantially as described herein with reference to the C accompanying drawings. DATED this 20th Day of December 2006 N CANON KABUSHIKI KAISHA O Patent Attorneys for the Applicant SPRUSON&FERGUSON 786798
AU2006252197A 2006-03-02 2006-12-21 Tile-Based Fillmap Optimisation Abandoned AU2006252197A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2006252197A AU2006252197A1 (en) 2006-12-21 2006-12-21 Tile-Based Fillmap Optimisation
US11/680,702 US7978196B2 (en) 2006-03-02 2007-03-01 Efficient rendering of page descriptions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
AU2006252197A AU2006252197A1 (en) 2006-12-21 2006-12-21 Tile-Based Fillmap Optimisation

Publications (1)

Publication Number Publication Date
AU2006252197A1 true AU2006252197A1 (en) 2008-07-10

Family

ID=39665868

Family Applications (1)

Application Number Title Priority Date Filing Date
AU2006252197A Abandoned AU2006252197A1 (en) 2006-03-02 2006-12-21 Tile-Based Fillmap Optimisation

Country Status (1)

Country Link
AU (1) AU2006252197A1 (en)

Similar Documents

Publication Publication Date Title
AU2003203331B2 (en) Mixed raster content files
US7978196B2 (en) Efficient rendering of page descriptions
US7379209B1 (en) Color separation of pattern color spaces and form XObjects
JP6029344B2 (en) Image processing apparatus, image processing method, and program
JP2000511364A (en) Method and apparatus for reducing storage requirements for display data
US20180082160A1 (en) Image processing apparatus and image processing method
US8203747B2 (en) Methods and systems for time-efficient print-data rendering
JP2008117379A (en) System, method and computer program for encoded raster document generation
JP4250470B2 (en) Information processing apparatus, information processing method, and print control program
US8605348B2 (en) Systems and methods for rendering resizable image including resizable mask
JP4646436B2 (en) Digital image processing device
US20110055694A1 (en) Image processing apparatus and method of controlling the apparatus
CN117573048A (en) Automatic document watermark generation method and terminal
JP2017024321A (en) Image processor, image formation device, and image processing time prediction method and program
JP4709317B2 (en) Information processing apparatus, information processing method, and print control program
JP2007245723A (en) System, method and program for rendering document
JP6904717B2 (en) Image processing equipment, its control method, and programs
CN109690572B (en) Method for generating center scan image output using overscan RIP
AU2006252197A1 (en) Tile-Based Fillmap Optimisation
JP5012871B2 (en) Image processing apparatus, image forming apparatus, and image processing program
JP2004334533A (en) Image processing device and method
JP2009066926A (en) Image processing device and image forming system
JP4325339B2 (en) Printing system, host computer and printer driver
JP4735212B2 (en) Image processing device
JP3686490B2 (en) System and method using variable binarization for printer driver architecture

Legal Events

Date Code Title Description
MK1 Application lapsed section 142(2)(a) - no request for examination in relevant period