US 20040032617 A1
An inkjet printer controller includes a processor for receiving incoming data relating to a description of a page to be printed. A memory in the form of a hard disk, in which the data are stored, is connected to the processor. The controller includes at least one raster image processor for rasterizing and compressing the data. The page data has image data and text data. The text data is compressed separately from the image data. A printhead controller receives, decompresses and processes the data for printing via a printhead under control of the printhead controller.
1. A printer controller for an inkjet printer, the controller including:
a processor for receiving incoming data relating to a description of a page to be printed, said description containing image data and text data;
a memory in which the data are stored;
a rasterizer/data compressor for rasterizing and then compressing the data, the compression of the rasterized image data and the text data occurring separately from each other; and
a printhead controller for receiving, decompressing and processing said data for printing via a printhead under control of the printhead controller.
2. The printer controller of
3. The printer controller of
4. The printer controller of
5. The printer controller of
6. In an inkjet printer controller, a method of printing a description of a page containing image data and text data, the method including the steps of:
receiving said data relating to a description of a page to be printed from a host processor;
storing the received data in a memory;
rasterizing and compressing the received data to create a compressed page format, the compression of the image data and the text data occurring separately from each other;
feeding the compressed page format data to a printhead controller; and
expanding the compressed page format data in the printhead controller prior to printing of the image.
7. The method of
8. The method of
9. The method of
 Continuation Application of U.S. Ser. No. 09/505,003 filed on Feb. 15, 2000
 This invention relates to a printer. More particularly, the invention relates to a printer controller for a printer and to a method of printing a description of a page under control of the printer controller.
 The printer of the invention is a high-speed printer intended for use in high-volume office environments where printing speeds of up to 120 pages per minute are required. In order to achieve the necessary throughput, document transmission from a host device, such as a desktop computer, and document rasterization are decoupled, with the rasterization process occurring in the printer itself. Further, because of the high resolution of the printheads, pages must be printed at a constant speed to avoid creating discontinuities. To effect this, document rasterization is, in turn, decoupled from document printing. Once again, the rasterization occurs in the printer and a page is not printed until it is fully rasterized.
 According to a first aspect of the invention, there is provided a printer controller for a printer, the controller including
 a processing means for receiving incoming data relating to a description of a page to be printed, said descriptions containing color data and black text data;
 a memory means in which the data are stored;
 a rasterizing and compressing means for rasterizing and compressing the data, the compression of the color data and the black text data being effected separately from each other; and
 a printhead controller for receiving, decompressing and processing said data for printing via a printhead under control of the printhead controller.
 The printhead may be a pagewidth printhead. In this specification, unless the context clearly indicates otherwise, the term “pagewidth printhead” is to be understood as a printhead having a printing zone that prints one line at a time on a page, the line being parallel either to a longer edge or a shorter edge of the page. The line is printed as a whole as the page moves past the printhead and the printhead is stationary, ie it does not raster or traverse the page.
 The rasterizing and compressing means may include at least one raster image processor (RIP) digital signal processor (DSP). The, or each, RIP DSP communicates with the processing means via the data communications means, the processing means feeding and synchronising the, or each, RIP DSP and the printhead controller.
 The, or each, RIP DSP communicates with the hard disk via the processing means and the data communications means for storing rasterized and compressed data in the hard disk prior to transmission of the compressed data to the printhead controller.
 The printer controller may include more than one RIP DSP. Additional units may be included in the form of field-installable, plug-in modules.
 The memory means may be a hard disk which communicates with the processing means via a disk controller and a data communications means.
 According to a second aspect of the invention, there is provided in a printer controller, a method of printing a description of a page which includes the steps of
 receiving said data relating to a description of a page to be printed from a host processor;
 storing the received data in a memory means;
 rasterizing and compressing the received data to create a compressed page format, the compression of the color data and the black text data being effected separately from each other;
 feeding the compressed page format data to a printhead controller; and
 expanding the compressed page format data in the printhead controller prior to printing of the page.
 The method may include, prior to feeding the compressed page format data to the printhead controller, storing the compressed page format data in the memory means, the memory means being the hard disk of the printer controller.
 Further, the method may include, as the data are expanded, feeding the expanded data to at least one printhead controlled by the printhead controller.
 Instead, when the printhead controller receives the compressed page format data, the method may include storing the data in a local memory means of the printhead controller.
 The invention also provides, in another broad form, a printer controller for an inkjet printer, the controller including:
 a processor for receiving incoming data relating to a description of a page to be printed, said description containing image data and text data;
 a memory in which the data are stored;
 a rasterizer/data compressor for rasterizing and then compressing the data, the compression of the rasterized image data and the text data being effected separately from each other; and
 a printhead controller for receiving, decompressing and processing said data for printing via a printhead under control of the printhead controller.
 The rasterizer/data compressor may include at least one raster image processor (RIP) digital signal processor (DSP).
 The, or each, RIP DSP may communicate with the processor, the processor feeding and synchronizing the, or each, RIP DSP, the rasterizer/data compressor, and the printhead controller.
 The, or each, RIP DSP may store rasterized and compressed data in the memory.
 The memory may be a hard disk that communicates with the processor via a disk controller.
 The invention also provides, in another broad form, in an inkjet printer controller, a method of printing a description of a page containing image data and text data, the method including the steps of:
 receiving said data relating to a description of a page to be printed from a host processor;
 storing the received data in a memory;
 rasterizing and compressing the received data to create a compressed page format, the compression of the image data and the text data being effected separately from each other;
 feeding the compressed page format data to a printhead controller; and
 expanding the compressed page format data in the printhead controller prior to printing of the image.
 Prior to feeding the compressed page format data to the printhead controller, it may be stored in the memory.
 The method may include feeding expanded data to at least one printhead controlled by the printhead controller.
 When the printhead controller receives the compressed page format data, the method may include storing the data in a local memory of the printhead controller.
 The invention is now described by way of example with reference to the accompanying drawings in which,
FIG. 1 shows a plan view of a printer, in accordance with the invention;
FIG. 2 shows a front view of the printer;
FIG. 3 shows a side view of the printer;
FIG. 4 shows a schematic, sectional front view of the printer;
FIG. 5 shows a schematic, sectional plan view of the printer;
FIG. 6 shows, on an enlarged scale, a schematic, sectional front view of part of the printer;
FIG. 7 shows an enlarged front view of a central section of the printer;
FIG. 8 shows a three-dimensional view of a print engine arrangement of the printer;
FIG. 9a shows a three-dimensional top view of an ink cartridge of the printer;
FIG. 9b shows a three-dimensional bottom view of the ink cartridge;
FIG. 10 shows a diagrammatic representation of document data flow in the printer;
FIG. 11 shows a block diagram of the printer controller architecture;
FIG. 12 shows a block diagram of one embodiment of the print engine controller architecture; and
FIG. 13 shows a block diagram of another embodiment of the print engine controller architecture.
 1 S-Print Overview
 The invention will be described with reference to a high-speed duplex network color printer intended for high-volume office use. It features 2000-sheet motorized paper trays, 120 page-per-minute operation, and 1600 dpi photographic-quality output. We refer to the printer as the “S-print” and we shall refer to it as such or as the printer below.
 With 20 times the speed of the best network color laser printers, and 4 times the speed of the best network monochrome laser printers, S-print effectively targets the $40 billion desktop laser printer market. With its high performance and photographic-quality output, it also competes against offset printing for print runs smaller than 5000 copies.
 S-print accommodates A4/Letter sized media and, with a tray adaptor, A3/Tabloid sized media. It achieves simultaneous high quality and performance using full-color page-width 1600 dpi microelectromechanical inkjet (Memjet) printheads.
 S-print uses an embedded DSP-based raster image processor (RIP) to rasterize Postscript and PCL page descriptions at high speed. The standard RIP uses a single DSP, but up to three additional DSP modules can be plugged in to increase performance.
 The RIP compresses and stores the rasterized page images on an internal high-capacity hard disk. While simple page descriptions are rasterized at the full 120 ppm printing rate, more complex page descriptions may take longer. Pre-rasterized documents retrieved from the internal hard disk are always printed at the full 120 ppm printing rate. Any document can be “printed” to the hard disk, i.e. rendered and stored on the hard disk, for later high-speed retrieval.
 Users can walk up to an S-print, select locally-stored documents on its color LCD, and print them immediately, without ever going near a workstation. Documents printed in this way always print at the full 120 ppm rate. The standard 14 GB internal hard disk stores over 6000 image-intensive pages. Because of its walk-up capability and high speed, S-print is likely to displace many uses of short-run offset printing.
 S-print uses duplexed printheads for simultaneous double-sided printing. During the pilot phase of Memjet printhead manufacturing when the printhead defect density is still potentially high, each printhead is replicated to achieve 2:1 nozzle redundancy. This allows factory-detected defective nozzles to be bypassed, and so maximises printhead yield. A pair of custom print engine controllers expand, dither and print page images to the duplexed printheads in real time.
 Apart from custom print engine controllers and Memjet printheads, S-print is built using standard off-the-shelf electronic components.
 2 Printer Mechanics
 S-print is designated generally by the reference numeral 10 and comprises a housing 12 having a central section 14 (FIGS. 1 and 2). A hinged tray housing 16 projects from each side of the central section 14 (FIG. 3).
 Ink cartridges 18, which will be described in greater detail below, are mounted on top of the central section 14 to be readily accessible.
 A front face 20 of the central section 14 houses a display 22. The display 22, which will be described in greater detail below with reference to FIG. 7 of the drawings, is a full color LCD user interface.
 Referring now to FIG. 4 of the drawings, a schematic front view of S-print 10 is shown.
 The housing 12 is constructed around a box chassis 24. Print engines 26 are centrally located in the central section 12. The print engines 26 will be described in greater detail below with reference to FIG. 6 if the drawings.
 On either side of the central section 14, and projecting outwardly therefrom is one of the paper tray housings 16. Each paper tray housing 16 has a bottom or side hinged door 28. A platen 30 is located in each paper tray housing 16 for supporting a load of papers. An operatively inner end of each platen 30 has a guide roller 32 which is received in a vertically extending channel 34 for guiding vertical movement of the platen 30. Each platen 30 is driven by a motor 36. The motor 36 drives a sprocket 38. A second sprocket 40 is mounted vertically below the sprocket 38. The sprockets 38 and 40 are interconnected by an endless chain 42 which drives vertical movement of the platen 30.
 A first motor assembly 44 is arranged upstream of the print engines 26 for feeding print media, in the form of a sheet of paper, between the print engines 26. A second motor assembly 46 is arranged downstream of the print engines 26 for drawing the sheet of paper from the print engines 26 after printing.
 The platens 30 rise and descend according to the volume of paper in the input and output stacks.
 A compact power supply 48 is arranged below the print engines 26 as is a 14 GB hard disk drive (HDD) 50 and controlling circuitry 52.
 S-print 10 prints the long edge of the paper to achieve a compact form factor and a minimised footprint.
 As illustrated more clearly in FIG. 5 of the drawings, a sheet of paper to be fed to the print engines 26 is guided by pick-up rollers 54 arranged upstream of the print engines 26 in the paper path. Spike wheel rollers 56 grip a leading edge of the paper, after printing, for guiding the printed paper to a paper tray housing 16 located downstream of the print engines 26 in the paper path. The pick up rollers 54 are driven by a motor assembly 44. Similarly, the spike wheel rollers 56, which are arranged in vertically spaced pairs, are driven by a further motor assembly 46.
 Also, as illustrated in FIG. 5 of the drawings, S-print 10 is a four color printer having a cyan ink cartridge 58, a magenta ink cartridge 60, a yellow ink cartridge 62 and a black ink cartridge 64. The ink cartridges 58, 60, 62 and 64 feed ink via hoses 66 to the print engines 26.
 A molding 72 (FIG. 6) to which the ink cartridges 58 to 64 are attached is hingedly secured to the remainder of the central section 14 of the housing 12 to reveal an upper part of a chassis 74 of the print engines 26. This upper part 74 can be pivoted about pivot pin 76 to enable access to be gained to an upper print engine 26.1. It is to be noted that the upper print engine 26.1 is secured to the part 74 so that, when the part 74 is pivoted, access can be gained to a lower print engine 26.2 as well as drying infrared lamp 78.
 These infrared lamps 78 are mounted on paper guides 80 which guide a sheet of paper 82 between the print engines 26.
 The straight paper path allows the paper 82 to be fed at high speed past printheads of the print engines 26.
 The two print engines 26.1 and 26.2 are mounted together in an adjustable assembly. As described above, the upper print engine 26.1 can be pivoted upwards to allow access to paper jams and to the lower print engine 26.2 and the infrared drying lamps 78.
 As schematically illustrated in FIG. 6 of the drawings, the relevant ink cartridges 58 to 64 are snap fits on the top molding 72.
 Each ink cartridge 58 to 64 comprises moldings 86 defining a reservoir 90. The reservoir 90 is, in use, in fluid flow communication with a fixed reservoir 88 defined in a molding 84 on top of the print engines 26.
 The reservoir 90 is in communication with the fixed reservoir 88 via a passage 92. A pin 94 projects through the passage 92 and is engaged by a ball 96 of the ink cartridge 58 to 64. The ball 96 is urged into engagement with the pin 94 by means of a spring 98. The pin 94 has a collar or flange 100 at its operatively lower end, i.e. that end within the reservoir 88. When the collar 100 is urged off its seat, ink can flow from the reservoir 90 into the reservoir 88.
 The reservoir 88 serves to provide an early warning to replace the ink cartridge and makes contact with an embedded QA cartridge chip. Each reservoir 88 connects via the hoses 66 to the printheads of the print engines 26.
 Referring now to FIG. 7 of the drawings the front panel 20 of S-print 10 is shown in greater detail. As described above, the front panel 20 contains a color LCD interface 22. A power switch 102 is arranged below the interface 22.
 A keypad 104 is also arranged on the front panel 20. The keypad 104 allows the desired number of copies to be entered. Documents to be printed locally, i.e. at the printer 10 can also be selected by an identification number by means of the keypad 104. It will be appreciated that this can be quicker than scrolling through stored documents if there are many such documents.
 The LCD interface 22 includes four changeable function buttons 106 for navigating the interface 22.
 A print button 108 and a stop button 110 are also arranged on the front panel 20 adjacent to the keypad 104.
 Referring to FIG. 8 of the drawings the print engines 26 are discussed in greater detail. As described above, an upper print engine 26.1 and a lower print engine 26.2 are provided. S-print 10 uses duplex print engines 26.1 and 26.2 for simultaneous double-sided printing.
 It is to be noted that each print engine 26.1 and 26.2 uses two printheads 112 (only one of which is shown in respect of the print engine 26.1). The two printheads 112 are provided to achieve a 2:1 nozzle redundancy. This allows factory-detected defective nozzles to be bypassed and so maximises the printhead yield.
 The printheads 112 print on to a transfer roller 114. The roller 114 is rotatably driven by a co-axially arranged motor 116. Ink deposited on a surface of the roller 114 is, in turn, deposited on the paper 82 during the printing process. In addition, when the printheads 112 are inoperative, the roller 116 is urged into engagement with the printheads 112 for inhibiting evaporation of ink in reservoirs 118 in each printhead assembly 112.
 Each print engine 26 includes a cleaning station 120. The cleaning station 120 includes a wiper 122 of a resiliently flexible, elastomeric material and a sponge 124 arranged upstream of the wiper 122 so that the sponge 124 removes ink from the transfer roller 114 before the wiper 122 wipes ink from the transfer roller 114.
 Movement of the roller 114 into and out of engagement with the printhead assemblies 112 is controlled by a solenoid arrangement 126.
 A three dimensional top view of one of the ink cartridges 60 is shown in FIG. 9a of the drawings with a three dimensional bottom view of the cartridge 60 being shown in FIG. 9b of the drawings. The cartridge 60 comprises the moldings 86 which engages the molding 84 in the central section 14 of the housing 12 of S-print 10. A QA chip 128 is shown on a bottom surface 130 of the ink cartridge 60 in FIG. 9b of the drawings.
 As shown in FIG. 6 of the drawings, but not shown in FIG. 9a or 9 b of the drawings, each upper molding 86 houses the sprung ball 96 which is held captive against the lower molding 84 to provide a main seal to the cartridge 60. A secondary hydrophobic, elastomeric seal 132 is provided at an entry port on a lower surface 130 of the cartridge 60.
 As described above, the cartridge 60 connects to the print engines 26 via the printer ink reservoir 88 by means of the pin 94.
 Tortuous air channels 134 (FIG. 9a) are provided at the top of the cartridge 60 under the color label 136. The four ink cartridges 58 to 64 are keyed by plastic protrusions to prevent any incorrect insertion or orientation of the cartridges 58 to 64. Also, it is to be noted that the black cartridge 64 holds twice the volume of the other cartridges due to the greater use of black ink.
 3 Memjet-Based Printing
 A Memjet printhead 112 produces 1600 dpi bi-level CMYK (Cyan, Magenta, Yellow, blacK). On low-diffusion paper, each ejected drop forms an almost perfectly circular 22.5 micron diameter dot. Dots are easily produced in isolation, allowing dispersed-dot dithering to be exploited to its fullest. Since the Memjet printhead 112 is the width of the page and operates with a constant paper velocity, the four color planes are printed in good registration, allowing accurate dot-on-dot printing. Since there is consequently no spatial interaction between color planes, the same dither matrix is used for each color plane. Dot-on-dot printing minimizes ‘muddying’ of midtones caused by inter-color bleed.
 A page layout may contain a mixture of images, graphics and text. Continuous-tone (contone) images and graphics are reproduced using a stochastic dispersed-dot dither. Unlike a clustered-dot (or amplitude-modulated) dither, a dispersed-dot (or frequency-modulated) dither reproduces high spatial frequencies (i.e. image detail) almost to the limits of the dot resolution, while simultaneously reproducing lower spatial frequencies to their full color depth, when spatially integrated by the eye. A stochastic dither matrix is carefully designed to be free of objectionable low-frequency patterns when tiled across the image. As such its size typically exceeds the minimum size required to support a particular number of intensity levels (e.g. 16×16×8 bits for 257 intensity levels). S-print 10 uses a dither volume of size 64×64×3×8 bits. The volume provides an extra degree of freedom during the design of the dither by allowing a dot to change states multiple times through the intensity range (rather than just once as in a conventional dither matrix).
 Human contrast sensitivity peaks at a spatial frequency of about 3 cycles per degree of visual field and then falls off logarithmically, decreasing by a factor of 100 beyond about 40 cycles per degree and becoming immeasurable beyond 60 cycles per degree. At a normal viewing distance of 12 inches (about 300 mm), this translates roughly to 200-300 cycles per inch (cpi) on the printed page, or 400-600 samples per inch according to Nyquist's theorem.
 In practice, contone resolution above about 300 ppi is of limited utility outside special applications such as medical imaging. Offset printing of magazines, for example, uses contone resolutions in the range 150 to 300 ppi. Higher resolutions contribute slightly to color error through the dither.
 Black text and graphics are reproduced directly using bi-level black dots, and are therefore not antialiased (i.e. low-pass filtered) before being printed. Text is therefore supersampled beyond the perceptual limits discussed above, to produce smoother edges when spatially integrated by the eye. Text resolution up to about 1200 dpi continues to contribute to perceived text sharpness (assuming low-diffusion paper, of course).
 S-print 10 uses a contone resolution of 320 ppi (i.e. 1600÷5), and a black text and graphics resolution of 1600 dpi.
 4 Document Data Flow
 Document transmission and document rasterization are decoupled to shield the user from interactions between the size and complexity of the document, and the memory capacity and RIP performance of S-print 10. This is achieved by storing each document's page description language (PDL) file on the internal hard disk 50.
 Because of the high resolution of the Memjet printhead 112, each page must be printed at a constant speed to avoid creating visible artifacts. This means that the printing cannot be varied to match the input data rate. Document rasterization and document printing are therefore decoupled to ensure the printhead 112 has a constant supply of data. A page is never printed until it is fully rasterized. This is achieved by storing a compressed version of each rasterized page image on the internal hard disk 50.
 This decoupling also allows the RIP to run ahead of the printer 10 when rasterizing simple pages, buying time to rasterize more complex pages.
 The user indicates whether a document is to be stored permanently on the hard disk 50, printed, or both. So long as there is disk space available, the pages of transient documents are also cached on the disk 50 until printed. This is particularly efficient when multiple copies of complex documents are being printed. This so-called electronic collation also obviates the need for an external collating mechanism, since each copy of a document is printed in its entirety before the next copy.
 Because contone color images are reproduced by stochastic dithering, but black text and line graphics are reproduced directly using black dots, the compressed page image format contains a separate foreground bi-level black layer and background contone color layer. The black layer is composited over the contone layer after the contone layer is dithered.
FIG. 10 shows the flow of an S-print document from network to printed page.
 At 320 ppi, an A4/Letter page of contone CMYK data has a size of 38 MB. Using lossy contone compression algorithms such as JPEG, contone images compress with a ratio up to 10:1 without noticeable loss of quality, giving a compressed page size of 3.8 MB.
 At 1600 dpi, an A4/Letter page of bi-level data has a size of 30 MB. Coherent data such as text compresses very well. Using lossless bi-level compression algorithms such as Group 4 Facsimile, ten-point text compresses with a ratio of about 20:1, giving a compressed page size of 1.5 MB.
 Once dithered, a page of CMYK contone image data consists of 120 MB of bi-level data. Using lossless bi-level compression algorithms on this data is pointless precisely because the optimal dither is stochastic—i.e. since it introduces hard-to-compress disorder.
 The two-layer compressed page image format therefore exploits the relative strengths of lossy JPEG contone image compression and lossless bi-level text compression. The format is compact enough to be storage-efficient, and simple enough to allow straightforward realtime expansion during printing.
 Since text and images normally do not overlap, the normal worst-case page image size is 3.8 MB (i.e. image-only), while the normal best-case page image size is 1.5 MB (i.e. text-only). The absolute worst-case page image size is 5.3 MB (i.e. text over image). Assuming a third of an average page contains images, the average page image size is 2.3 MB. The standard 14 GB internal hard disk therefore holds over 6000 such pages.
 5 Printer Controller Architecture
 The S-print 10 printer controller consists of a controlling processor 138 (FIG. 11), various peripheral controllers 140, 142 and 144, a raster image processor (RIP) DSP farm 146, and duplexed page expansion processors 148. These components are discrete and communicate via a shared bus 150 and a shared 64 MB memory 152.
 The controlling processor 138 handles communication with the network via an Ethernet controller 140, controls the internal hard disk 50 via the SCSI controller 142 and controls the LCD 22 via the LCD controller 144. The controller 138 also controls the paper transport, handles ink cartridge authentication and ink monitoring, and feeds and synchronizes the RIP and the print engine controllers 148. It consists of a medium-performance general-purpose microprocessor. Its associated peripheral controllers include a 10/100Base-T Ethernet controller (140), a SCSI disk controller (142), and a color TFT LCD controller (144). Optional controllers include an IEEE 1394 (Firewire) controller and a USB 2.0 controller for high-speed point-to-point communication with a workstation or server.
 The RIP DSP farm 146 rasterizes and compresses page descriptions to S-print's compressed page format. The DSP farm 146 consists of between one and four general-purpose high-performance DSPs. Each additional DSP comes as a field-installable plug-in module.
 Each print engine controller 148 expands, dithers and prints page images to its associated replicated printhead 112 in real time (i.e. at 60 ppm). The duplexed print engines 26 print both sides of the page simultaneously (i.e. at 120 ppm).
 The printer controller's flash memory 154 holds the software for both the processor 138 and the DSPs 146. This is copied to main memory 152 at boot time. The flash memory 154 also holds the defect lists for the two replicated printheads 112. These are copied to the print engine controllers 148 at boot time.
 5.1 Detailed Document Data Flow
 The main processor 138 receives the document's page description language (PDL) file and stores it on the internal hard disk 50. It then runs the appropriate RIP software on the DSPs 146.
 The DSPs 146 rasterize each page description and compress the rasterized page image. The main processor 138 stores each compressed page image on the hard disk 50. The simplest way to load-balance multiple DSPs 146 is to let each DSP 146 rasterize a separate page. The DSPs 146 can always be kept busy since an arbitrary number of rasterized pages can, in general, be stored on the internal hard disk 50. This strategy can lead to poor DSP utilization, however, when rasterizing short documents.
 The main processor 138 passes back-to-back page images to the controllers 148 of the duplexed print engines 26. Each print engine controller 148 stores the compressed page image into its local memory, and starts the page expansion and printing pipeline. Page expansion and printing is pipelined because it is impractical to store a 120 MB bi-level CMYK image in memory.
 The first stage of the pipeline expands the JPEG-compressed contone CMYK layer. The second stage, in parallel with the first, expands the Group 4 Fax-compressed bi-level black layer. The third stage dithers the contone CMYK layer, and composites the bi-level black layer over the resulting bi-level CMYK layer. The fourth stage prints the bi-level CMYK data via the printhead interface which controls the Memjet printhead 112.
 The main processor 138 streams compressed page images from the hard disk 50 to the print engine controllers 148 at the required 120 ppm rate (i.e. 4.6 MB/s on average, or 10.6 MB/s worst-case).
 The print engine data flow is summarized in Table 1. The aggregate traffic to/from memory is 387 MB/s, all but 5.3 MB/s of which relates to the FIFOs.
 Each stage communicates with the next via a FIFO. Each FIFO is organized into lines, and the minimum size (in lines) of each FIFO is designed to accommodate the output window (in lines) of the producer and the input window (in lines) of the consumer. The inter-stage memory FIFOs are described in Table 2.
 Because the two printheads 112 of each redundant printhead pair are separated by about 8 mm on the transfer roller (or about 500 printed lines at 1600 dpi), an additional 500 lines of bi-level CMYK must be buffered between the ditherer/compositor unit 176 and the printhead interface 178. This in turn translates to about 4.5 MB of additional FIFO memory, or about 5 MB of FIFO memory in total.
 The need for this additional FIFO memory can be eliminated by expanding each page image twice in parallel, i.e. once each for the two printheads 112 of each redundant printhead pair, staggered to match the physical separation of the printheads. This is most easily done by replicating the print engine controller 148 for each printhead 112. Replication is particularly relevant in the case of the pipelined (as opposed to shared-memory) print engine controller 148 described below, where the provision of 5 MB of on-chip FIFO memory is impractical.
 It is also possible to run each print engine controller 148 at twice the rate so that it can expand each page image twice in the time it takes to print the page image once.
 Whenever each page image is expanded twice in parallel, FIFO memory must be doubled to about 1 MB.
 5.2 Print Engine Controller Architecture
 The print engine controller 148 is implemented as a single custom chip.
 There are two architectural variants of the print engine controller 148. The shared-memory version, illustrated in FIG. 12, uses a local off-chip RDRAM 156 to support the aggregate memory bandwidth required by page expansion and printing. The pipelined version, illustrated in FIG. 13, uses dedicated on-chip FIFOs 158, 159, 160.
 The shared-memory print engine controller 148 consists of a general-purpose processor 162, a high-speed Rambus interface 164 to the off-chip RDRAM 156, a small program ROM 166, a DMA controller 168, and an interface 170 to the printer controller bus 150.
 Both print engine controllers' page expansion and printing pipeline consists of a standard JPEG decoder 172, a standard Group 4 Fax decoder 174, a custom ditherer/compositor unit 176, and a custom interface 178 to the Memjet printheads 112.
 The ditherer/compositor unit 176 and the printhead interface 178 are described in greater detail in co-pending U.S. patent application Ser. No. 09/436,744 which is incorporated herein by reference.
 In the shared-memory version, the FIFOs are located in the dedicated off-chip RDRAM 156, and all inter-stage communication is controlled by the local processor via the DMA controller 168. In the pipelined version, the FIFOs 158, 159, 160 are on-chip, and the stages are self-synchronizing.
 In the shared-memory version, the decoders 172, 174 obtain page data from the main processor 138 via the local memory. In the pipelined version, the decoders 172, 174 obtain page data directly from the main processor 138 over the printer controller bus 150.
 When several print engine controllers 148 are used in unison, such as in a duplexed configuration, they are synchronized via a shared line sync signal on line 180. Only one print engine controller 148, selected via an external master/slave pin 182, generates the line sync signal onto the shared line 180.
 5.3 Printhead Timing
 Each print engine controller 148 prints an A4/Letter page in one second. Since S-print 10 uses a 12″ printhead 112 to print the long dimension of the page (11.7″), the short dimension of the page (8.5″) needs to pass the printhead 112 in one second. At 1600 dpi, this equates to a 13.6 KHz line rate. This is well within the operating frequency of the Memjet printhead 112, which in the current design exceeds 30 KHz.
 5.4 Printhead Characterization
 Each redundant 12″ print engine 26 contains two complete 12″ printheads 112, i.e. 76,800 nozzle pairs, characterized and matched so that no paired nozzles are both defective.
 Printhead defects are either characterized and matched one segment at a time, or after the entire printhead has been built. In the former case nozzles are tested before integration with the ink path, and so are tested without ink. In the latter case nozzles are tested after integration with the ink path, and so are tested with ink. Segment-wise characterization gives a higher yield, but at a higher testing cost. Segment-wise characterization is therefore only preferable to printhead-wise characterization when defect densities are still high.
 The defect list associated with a redundant printhead is stored in the manufacturing database, indexed by the printhead's serial number and recorded as a barcode on its cartridge. When the printhead cartridge is finally inserted into a printer during manufacture, the defect list is retrieved using the barcode, and is written to the flash memory of the printer's embedded printer controller.
 If the printhead cartridge is replaced in the field, then a new defect list is downloaded remotely from the manufacturing database to the printer controller via its network interface, using the new printhead cartridge's barcode.
 The defect list associated with each redundant printhead pair is copied from the printer controller's flash memory 154 to the corresponding print engine controller 148 at boot time. During printing, each print engine controller 148 consults its defect list to determine which nozzle of each nozzle pair to direct data to. When one nozzle of a nozzle pair is defective, the print engine controller 148 directs data to the other nozzle. Printhead characterization and matching ensures that the two nozzles of a nozzle pair are never both defective.