![]() Printer and methods of operation
专利摘要:
The present invention relates to a printer driver for a high performance color printer such as a printer using a page-width drop-on-demand inkjet printhead. In another aspect it relates to a method of printing. The printer driver manages a two-tiered page buffer in which image objects are composited during page construction. The first layer contains continuous tone data while the second layer contains two-level data. The 2-level data is synthesized by the printer onto the continuous tone data. The printer driver is configured so that the hidden two-level data is removed from the two-level layer and discarded or discarded if the continuous tone data that is combined with the continuous tone layer covering the two- Level data is combined with continuous tone data before it is combined with the continuous tone layer, if there is any interaction between the two tone data and the image represented by the hidden two-level data. 公开号:KR20010107956A 申请号:KR1020017005870 申请日:1999-11-09 公开日:2001-12-07 发明作者:실버브룩키아;랩스툰폴;왐슬레이시몬로버트 申请人:추후제출;실버브룩 리서치 피티와이 리미티드; IPC主号:
专利说明:
[0001] PRINTER AND METHODS OF OPERATION [0002] [10] The general purpose 256-level dither volume provides significant flexibility in dithered cell design by decoupling the different intensity levels. It provides extra degrees of freedom for dither matrices when designing optimal stochastic dither [12]. The general purpose dither volume can be large - 64 × 64 × 256 dither volumes, for example, have a size of 128 KB. It may also be inefficient to access it because each color component may require a search for a different bit from the volume. [11] In a drop-on-demand inkjet printhead, the size of the printed dot varies with ink temperature. When energy is used to eject ink droplets, the ink temperature rises. When the ink drop is actually ejected, it takes the ink temperature somewhat. The equilibrium temperature is reached during the process of ejecting a number of droplets. Once the equilibrium temperature is reached, the printing process tends to stay at the equilibrium temperature. [12] The present invention relates to an ink jet recording apparatus comprising a temperature sensor for calculating a signal indicative of the temperature of a print head and an ink supply port for receiving ink from the ink bottle, an ink deposition port for ejecting ink dots, And a plurality of nozzles each having a firing control port for receiving a signal to cause ink dots to be deposited. Wherein the printhead controller includes means for receiving a signal indicative of the temperature of the printhead from a temperature sensor and means for supplying a firing signal to a firing control port of the nozzle, Wherein the controller is operable to set all nozzles to firing and to execute a series of modified firing cycles to provide a series of short firing pulses to each nozzle, The duration of each pulse is insufficient to fire the droplets, but is sufficient to heat the ink. [13] Feedback during the preheat mode may be provided by a T sense (defined below) and continues until a temperature of about 30 캜 above room temperature is reached. Since the time or temperature may vary depending on the ink composition, it is important that the temperature information be fed back as it reaches the equilibrium temperature. [14] In one example, about 200 pulses are required for each nozzle. [15] The duration of the warm-up mode can be about 50 milliseconds and depends on the ink composition. [16] Preheat is done while data is being sent to the printer, so it does not affect performance. [17] The preheating cycle involves a single load cycle to all nozzles with one (i. E., All nozzles are set to firing) and many short firing pulses to each nozzle. The duration of the pulse is insufficient to fire the droplet, but should be sufficient to heat the ink. The duration of the pulse may vary for each of the inks used in the printer. As a whole, about 200 pulses are required for each nozzle and cycling through the same sequence as a standard print cycle. [18] Several parallel processors are possible if they require concurrent access to resources held in a computer memory. First, the processor can alternately access resources, but this reduces the performance of the processor. Second, multi-port memory can be used, and third, although the entire resources can be replicated to different memory banks, these two options are costly. [19] A particular example of a resource maintained in computer memory is a dithered volume or dither matrix used to digitally halftone continuous tone color images. When dither cell registration is not desired between different color planes of an image, a set threshold unit that handles dithering of individual color components may require simultaneous access to another dither cell position. [20] The duration of the firing pulse to the printhead depends on the viscosity of the ink, which depends on the temperature and ink characteristics and the amount of power available to the printhead. A typical pulse duration range is 1.3 to 1.8 ms. [1] The present invention relates to a printer driver for a high performance color printer such as a printer using a page-width drop-on-demand inkjet printhead. In yet another aspect, the present invention relates to a printing method. [2] The present invention relates to a modular printhead for color printers. In a further aspect, the invention relates to a method of loading and printing using a printhead. [3] The present invention relates to a modular printhead for color printers. In a further aspect, the invention relates to a method of loading and printing using a printhead. [4] The present invention relates generally to high performance color printers using page-width drop-on-demand inkjet printheads. In particular, the invention relates to a half-toner / synthesizer unit for digitally halftoning a continuous tone color layer to two-levels and compositing the black layer onto a halftoned continuous tone layer. In yet another aspect, the present invention relates to halftoning and synthesis methods. [5] The present invention relates to a dither unit for halftoning a continuous tone color image having an array of continuous tone color pixel values into two-level dots. In yet another aspect, the present invention relates to a method of operating a dither unit. [6] The present invention relates to a preheat cycle for a printhead. The present invention has utility in a high performance color printer using, for example, a drop-on-demand inkjet printhead. [7] The present invention relates to multiple parallel processors requiring simultaneous access to resources and resources held in computer memory. The resource may be a dithered volume or dither matrix used for digitally halftoning a continuous tone color image having an array of successive tone color pixel values into a two-level dot, which may be accessed in parallel by other critical units May be required. In another aspect, the invention is a method of accessing such resources. [8] The present invention relates to a method and a printer system for predicting when ink in a printer ink container bottoms out. The printer may use, for example, a drop-on-demand inkjet printhead. [9] The present invention relates to control of the duration of a firing pulse in a printhead for a printer such as a high performance color printer. The present invention relates in particular to a control system and method. The printer may use, for example, a pagewidth drop-on-demand inkjet printhead. [210] Figure 1 is a table illustrating a sustained print speed achievable by double-buffering in a printer, [211] 2 is a flow diagram illustrating conceptual data flow from an application to a printed page, [212] Figure 3 is a pictorial representation of an iPrint printer in a closed configuration, [213] FIG. 4 is a pictorial view of an eye print printer in an open configuration; [214] 5 is a cut-away view showing a paper path through the printer, [215] Figure 6 is a cut away view of a Memjet printhead cartridge and a printhead capping mechanism, [216] Figure 7 is a cross-sectional view of the membrane printhead cartridge and printhead capping mechanism of Figure 6; [217] 8 is a pictorial view of the printer controller, [218] Figure 9 is an example of coding a simple black and white image, [219] 10 is a schematic view of the pads of ten printing nozzles numbered in the firing order, [220] Figure 11 is a schematic view of the same padding of ten printing nozzles numbered in load order, [221] Figure 12 is a schematic view of a chroma pad, [222] Figure 13 is a schematic view of a group of five chromophage pads, [223] 14 is a schematic view of a phase group of two groups of pads, [224] 15 is a schematic diagram illustrating the relationship between segments, fire groups, phase groups, [225] Figure 16 also shows the phases of the A enable and B enable lines during a typical printing cycle, [226] Figure 17 is a diagram of a printer controller architecture, [227] 18 is a flow chart summarizing page extension and print data flow, [228] Figure 19 is a block diagram of an EDRL expander unit; [229] 20 is a block diagram of an EDRL stream decoder, [230] 21 is a block diagram of a run length decoder, [231] 22 is a block diagram of a run length encoder, [232] 23 is a block diagram of a JPEG decoder, [233] 24 is a block diagram of the half-toner / [234] 25 shows a series of page lines showing the relationship between page widths and margins, [235] 26 is a block diagram of a multi-threshold dither, [236] 27 is a block diagram of the logic of the tri-threshold unit, [237] 28 is a block diagram of the internal structure of the printhead interface, [238] 29 is a conceptual schematic diagram of double buffering during print lines N and N + 1, [239] 30 is a block diagram of the structure of the LLFU; [240] 31 is a conceptual structure diagram of a buffer, [241] 32 shows the logical structure of the buffer, [242] FIG. 33 is a block diagram of the generation of the A enable and B enable pulse widths; [243] 34 is a diagram of the dot count logic, [244] 35 is a block diagram of a speaker interface; [245] 36 is a diagram of a two-layer page buffer, [246] 37 is a series of diagrams illustrating the synthesis of a black object on a white image, [247] 38 is a series of diagrams illustrating the synthesis of a continuous tone object on a white image, [248] 39 is a series of diagrams illustrating the synthesis of a black object onto an image comprising a continuous tone object, [249] 40 is a series of diagrams illustrating the synthesis of a continuous tone object opaque over an image comprising a black object, [250] 41 is a series of diagrams illustrating the synthesis of a continuous tone object transparent over an image comprising a black object, [251] Figure 42 is a block diagram of a Windows 9x / NT printing system with printer driver components. [21] The present invention is a printer driver for high performance printers, wherein the printer driver manages a two-tiered page buffer that represents a page to be printed. The first layer of buffer contains background continuous tone data, while the second layer contains foreground two-level data. The printer driver sends the buffer to the printer at the completion of the page, and the printer synthesizes the two layers after halftoning the continuous tone layer. When the printer driver determines that the continuous tone data to be combined with the continuous tone layer obscures the data of the 2-level layer, the obfuscated 2-level data is removed from the 2-level layer and discarded or discarded Level data is synthesized with the continuous tone layer before it is combined with the continuous tone layer when there is a certain interaction between the image represented by the hidden tone layer and the image represented by the hidden two- . [22] Continuous tone data may have a lower resolution than two-level data. [23] The two layer page buffers can be augmented with a third layer of continuous tone data, the third layer containing a continuous tone version of the second layer of 2-level data sub-sampled at the resolution of the first layer, When the continuous tone data synthesized with the first layer is determined to cover the continuous tone data of the third layer, the continuous tone data obscured before the continuous tone data is synthesized with the continuous tone layer is removed from the third layer, Level data of the second layer corresponding to the hidden continuous tone data of the third layer is removed from the second layer. [24] Typically, the interaction occurs between two-level data obscured when the continuous tone data represents an image object that is not opaque, and between the image represented by continuous tone data that is masked. [25] Continuous tone data is typically color data, while 2-level data may be black data, although it may be another color. Additional layers may be provided to accommodate additional foreground two-level layers of additional color. [26] The printer driver will typically be tightly coupled with the host graphics system, so as to provide device-specific processing for other graphics and imaging operations, particularly compositing and text operations. [27] The host will provide support for color management so that device-independent colors can be converted to printer-specific colors in a standard manner. The page description sent to the printer generally includes a device-specific color. [28] The host graphics system renders images and graphics at the nominal resolution specified by the printer driver, but it allows the printer driver to control text rendering. In particular, the graphics system provides sufficient information to the printer driver to cause the printer driver to render and position the text at a resolution higher than the nominal device resolution. [29] The host graphics system requires random access to the continuous tone page buffer at the nominal device resolution and composites the graphics and imaging objects therein, but the printer driver does not actually synthesize in terms of expecting the printer driver to manage the page buffer . [30] The printer's page technology may include a 267 ppi continuous tone layer and an 800 dpi black layer. The printer driver can assign a 267 ppi nominal page resolution to the graphics system. Where possible, printer drivers rely on the graphics system to render image and graphics objects at 267 ppi to pixel levels, with the exception of black text. The printer driver processes all text rendering requests and detects and renders black text at 800 dpi, but returns a non-black text rendering request to the graphics system for rendering at 267 ppi. [31] The following rules can be implemented by the printer driver. [32] The black object is combined with the 2-level black layer when combined with the page buffer. The black layer is updated by simply ORing object opacity and black layer opacity, and the corresponding portion of the medium resolution continuous tone black layer is recalculated from the high resolution black layer. [33] Continuous tone color objects are combined with the continuous tone layer when combined with the page buffer. The continuous tone layer and the black layer are updated as follows: [34] Whenever a continuous tone object covers the black layer, the affected black layer pixels are pushed from the black layer to the continuous tone layer, i. E., Combined with the continuous tone layer and removed from the black layer, although not completely opaque. The continuous tone object is then combined with the continuous tone layer. [35] If the continuous tone object pixel is completely opaque, then it is not necessary to push that black pixel into the background continuous tone layer, since the background continuous tone pixel will be subsequently completely erased by the foreground continuous tone pixel. [36] The two-level black layer data may be transmitted to the printer in a compressed form. Group 4 facsimile coding can be used for this purpose, but it is better if the variant Huffman coding of the horizontal run length is removed or tuned for higher resolution. Alternatively, EDRL compression may be used. [37] The continuous tone layer data may also be transmitted to the printer in compressed form. JPEG or wavelet compression can be used for this purpose. [38] In another aspect, the present invention is a method of operating a printer driver for a high performance printer, the printer driver managing a two layer page buffer; The first layer is for continuous tone data and the second layer is for two-level data, which will be combined with continuous tone data by the printer; The method [39] Level layer is removed from the 2-level layer, and discarding the discarded 2-level data, or discarding the discarded 2-level data, Synthesizing the continuous tone layer with the hidden two-level data before composing the continuous tone layer with the continuous tone data when there is a specific interaction between the image represented by the continuous tone data and the image represented by the continuous tone data . The present invention provides a method of forming an ink droplet comprising a plurality of nozzles each having an ink supply port, an ink deposition port, and a firing control port for receiving a (firing) signal to cause ink dots to be deposited from the deposition port during a firing cycle of the print head. Modular printheads for color printers. The nozzles of the printhead are arranged in groups or faths, and the ink supply ports of the nozzles of each pod are connected to a common ink supply line. The nozzles of each pad are arranged in rows (rows extend in a direction across the page to be printed), and the rows of nozzles are spaced from one another to deposit dots on different lines if the nozzles of each row are firing simultaneously Offset. Fathers of different colors are arranged together into an operation group having their firing control ports gated so that the selected mutually exclusive nozzle sub-groups are firing at a given phase of the firing cycle at the same time. [40] In one example, there are two rows of nozzles in each of the fathers, one row of nozzles depositing an even dot along one line on the page, and the other row of nozzles depositing an odd dot along an adjacent line on the page . [41] The amount of offset between the rows of nozzles is designed to match the flow of paper under the nozzles. [42] The nozzles of each paddle may be fired in sequence along a first row starting from the first side and then along another row in the same direction ending on the other side. [43] A single paddle can consist of 10 nozzles sharing a common ink reservoir. Five nozzles are in one row, and five are in another row. Each nozzle can yield 22.5 mm diameter dots spaced at regular intervals on a 15.875 mm grid. [44] Dots printed by nozzles of one color are for lines different from those printed by different colors at the same time, but fads of different colors are arranged so that each of the fads of the chromapod sequentially prints the same group of dots To form a chroma paddle, one paddle of each different color may be grouped together. [45] One pad of cyan, magenta, yellow and black can be grouped into chroma pads. Chroma pads represent different color components of the same horizontal set of 10 dots on different lines. The exact distance between different color pads is a fixed number of dots-wide and therefore should be considered when printing: the printing algorithm should allow for variable dot-width variations between colors. [46] One or more chroma pads may be formed in a phase group in which groups of nozzles in an enabled group of fades are firing simultaneously during a certain firing phase. At least one of the group of groups in the phase group is enabled at the same time depending on the required print speed. [47] Five chroma pads can be organized into a single pud group. Since each chroma pad can include 40 nozzles, each group of fads can include 200 nozzles (50 cyan, 50 magenta, 50 yellow, and 50 black nozzles). [48] Two groups of fads can be organized into a single phase group. A phase group is so named because the group of nozzles in the phase group is firing simultaneously during a certain firing phase. Formation of a phase group from two groups of fades allows all of the two groups of fades to run at low speed and at high speed through the nibble line. [49] The two phase groups can be organized into a single fire group, and each segment has four fire groups. Fire groups are so named because they all fire the same nozzle at the same time. The two enable lines allow firing of the phase group nozzles independently as separate firing phases. [50] The four-inch printhead will typically be arranged side by side with eight segments, each segment having four fire groups. [51] A wider printhead can be made by assembling two of the printheads together. The 8-inch printhead thus consists of two 4-inch printheads for a total of 51,200 nozzles. [52] The nozzle layer allows overlapping phases and multiple speeds while maintaining uniform power consumption. In addition, the nozzle grouping pads provide physical stability. [53] In terms of power consumption, nozzle grouping enables low speed and high speed printing modes to allow speed / power consumption to be trade-off in other product configurations. [54] A single 4-inch printhead may include a total of 25,600 nozzles. The printing cycle involves firing to all these nozzles depending on the information to be printed. Firing them all at the same time would be too much power and a problem in terms of ink refill and nozzle interference. Further, the firing of the nozzles also causes acoustic perturbations for a limited time within the common reservoir of the nozzle pads. The perturbation can interfere with the firing of another nozzle in the same pad. As a result, the firing of the nozzles in the pads must be offset from each other as far as possible. [55] To deal with this, one nozzle per color can be fired from the chroma pads and then the nozzles can be fired from the next chroma pad in the group of fads. [56] Two firing modes (slow print mode and fast print mode) can be defined. [57] During low-speed printing, only one of the group of groups in each phase group receives a firing pulse, and only one of the two groups of fires fires the nozzle. In slow print mode, the chroma pads in the two groups of the pads must be fired before the first chroma pads re-fire. [58] In the slow print mode, 128 nozzles can be fired simultaneously from each 4-inch printhead. The firing nozzles should be as far as possible, so that 16 nozzles are fired from each of the eight segments. To fire all 25,600 nozzles, 200 different sets of 128 nozzles must be fired. [59] During high speed printing, two groups of fudges are set, and two groups of fudges fire the nozzles. In high-speed printing mode, the chroma-fade within a single group of fads must be fired before the first chroma-fade re-fires. [60] In the high speed printing mode, 256 nozzles can be fired simultaneously from each 4-inch printhead. The firing nozzles must be as far away as possible, so that 32 nozzles are fired from each segment. In order to fire all 25,600 nozzles, 100 different sets of 256 nozzles must be fired. [61] Because high-speed printing fires twice as many nozzles at the same time, low-speed printing takes twice as much time as high-speed printing. The power consumption in the low speed mode is half of the power consumption in the high speed mode. Note, however, that the energy consumed in printing the page is the same in both cases. [62] The printhead calculates several lines of feedback to adjust the timing of the firing pulse. One feedback signal tells the controller how hot the print head is. This allows the controller to adjust the timing of the firing pulse, since the temperature affects the viscosity of the ink. The second feedback signal tells the controller how much voltage is available to the actuator. This allows the controller to compensate for flat batteries or high voltage sources by adjusting the pulse width. The third feedback signal informs the controller of the resistivity (ohms per square) of the actuator heater. This allows the controller to adjust the pulse width to maintain a constant energy regardless of the heater resistivity. The fourth feedback signal informs the controller of the width of the critical section of the heater, which can vary by +/- 5% due to lithography and etching variations. This allows the controller to adjust the pulse width accordingly. [63] The load cycle involves loading up of the printhead as information to be printed during subsequent print cycles. The firing control port of each nozzle may have a nibble bit associated with it that determines whether the nozzle fires or not during the printing cycle. The nozzle's bleed bit is loaded during the load cycle through a set of shift registers. When all the shift registers are fully loaded, all bits are sent in parallel to the enable bit of the appropriate nozzle. Immediately after the transfer has occurred, the printing cycle can begin. The print cycle and the load cycle can occur at the same time as all the nozzles are running at the end of the print cycle with parallel loads of pearl bits. [64] The printing process must produce data in the correct order for the printhead. As an example, the first clock pulse may transmit CMYK bits for dots 0, 800, 1600, 2400, 3200, 4000, 4800, and 5600 of the next print cycle. The second clock pulse may transmit CMYK bits for dots 1, 801, 1601, 2401, 3201, 4001, 4801, and 5601 of the next print cycle. After a 800 SR clock pulse, a transfer pulse can be given. [65] Of course, within the 800 SR clock pulse, the shift register must be loaded in accordance with communication with the final transfer of the nozzles to the enable bit, where there are many different wiring possibilities. The possibility of one loading (and hence wiring) is to load the bits in the order of the fades, where the bits in each pad represent the respective nozzles from one side of the pad to the other side (the second nozzle in the first row Effectively loading the first nozzle from the first row to the last row before moving to the second row. In two row pads this means loading the nozzles in an apparent jig-jag manner. Another possibility is to load the bits in a pad order, with the bits in each pad representing each row and starting from the nozzle from one side of the pad to the other in each row. [66] It is important to note that the odd and even CMYK outputs do not appear on the same physical output line, even though they are printed during the same print cycle. The physical separation of the odd and even nozzles within the printhead as well as the separation between nozzles of different colors ensures that they produce dots on different lines of the page. This relative difference must be considered when loading data into the printhead. The actual difference in the line depends on the characteristics of the inkjet mechanism used in the printhead. The difference can be defined by a variable representing the distance between the nozzles of different colors and the distance between the nozzles of the same color. [67] The present invention provides a method of forming an ink droplet comprising a plurality of nozzles each having an ink supply port, an ink deposition port, and a firing control port for receiving a (firing) signal to cause ink dots to be deposited from the deposition port during a firing cycle of the print head. Modular printheads for color printers. The nozzles of the printhead are arranged in a group or a pad, and the ink supply ports of the nozzles of each pad are connected to a common ink supply line. The nozzles of each pad are arranged in rows (the rows extending in a direction across the page to be printed), and if the nozzles of each row are firing simultaneously, the rows of the nozzles Offset. Fathers of different colors are arranged together into an operation group having their firing control ports gated so that the selected mutually exclusive nozzle sub-groups are firing at a given phase of the firing cycle at the same time. [68] In one example, there are two rows of nozzles in each of the fathers, one row of nozzles depositing an even dot along one line on the page, and the other row of nozzles depositing an odd dot along an adjacent line on the page . [69] The amount of offset between the rows of nozzles is designed to match the flow of paper under the nozzles. [70] The nozzles of each paddle may be fired in sequence along a first row starting from the first side and then along another row in the same direction ending on the other side. [71] A single paddle can consist of 10 nozzles sharing a common ink reservoir. Five nozzles are in one row, and five are in another row. Each nozzle can yield 22.5 mm diameter dots spaced at regular intervals on a 15.875 mm grid. [72] A chroma pad in which the dots printed by the nozzles of one color are different from the lines printed by different colors at the same time, and the fingers of different colors are arranged so that each of the fads of the chroma pad sequentially prints the same group of dots In order to form one paw of each different color may be grouped together. [73] One pad of cyan, magenta, yellow and black can be grouped into chroma pads. Chroma pads represent different color components of the same horizontal set of 10 dots on different lines. The exact distance between different color pads is a fixed number of dots-wide and therefore should be considered when printing: the printing algorithm should allow for variable dot-width variations between colors. [74] One or more chroma pads may be formed in a phase group in which groups of nozzles in an enabled group of fades are firing simultaneously during a certain firing phase. At least one of the group of groups in the phase group is enabled at the same time depending on the required print speed. [75] Five chroma pads can be organized into a single pud group. Since each chroma pad can include 40 nozzles, each group of fads can include 200 nozzles (50 cyan, 50 magenta, 50 yellow, and 50 black nozzles). [76] Two groups of fads can be organized into a single phase group. A phase group is so named because the group of nozzles in the phase group is firing simultaneously during a certain firing phase. Formation of a phase group from two groups of fades allows all of the two groups of fades to run at low speed and at high speed through the nibble line. [77] The two phase groups can be organized into a single fire group, with four fire groups in each segment. Fire groups are so named because they all fire the same nozzle at the same time. The two enable lines allow firing of the phase group nozzles independently as separate firing phases. [78] The four-inch printhead will typically be arranged side by side with eight segments, each segment having four fire groups. [79] A wider printhead can be made by assembling two of the printheads together. The 8-inch printhead thus consists of two 4-inch printheads for a total of 51,200 nozzles. [80] The nozzle layer allows overlapping phases and multiple speeds while maintaining uniform power consumption. In addition, the nozzle grouping pads provide physical stability. [81] In terms of power consumption, nozzle grouping enables low and high speed print modes to allow speed / power consumption to be exchanged in other product configurations. [82] A single 4-inch printhead may include a total of 25,600 nozzles. The printing cycle involves firing to all these nozzles depending on the information to be printed. Firing them all at the same time would be too much power and a problem in terms of ink refill and nozzle interference. Further, the firing of the nozzles also causes acoustic perturbations for a limited time within the common reservoir of the nozzle pads. The perturbation can interfere with the firing of another nozzle in the same pad. As a result, the firing of the nozzles in the pads must be offset from each other as far as possible. [83] To deal with this, one nozzle per color can be fired from the chroma pads and then the nozzles can be fired from the next chroma pad in the group of fads. [84] Two firing modes (slow print mode and fast print mode) can be defined. [85] During low-speed printing, only one of the group of groups in each phase group receives a firing pulse, and only one of the two groups of fires fires the nozzle. In slow print mode, the chroma pads in the two groups of the pads must be fired before the first chroma pads re-fire. [86] In the slow print mode, 128 nozzles can be fired simultaneously from each 4-inch printhead. The firing nozzles should be as far as possible, so that 16 nozzles are fired from each of the eight segments. To fire all 25,600 nozzles, 200 different sets of 128 nozzles must be fired. [87] During high speed printing, two groups of fads are set, and two groups of fires fire the nozzles. In high-speed printing mode, the chroma-fade within a single group of fads must be fired before the first chroma-fade re-fires. [88] In the high speed printing mode, 256 nozzles can be fired simultaneously from each 4-inch printhead. The firing nozzles must be as far away as possible, so that 32 nozzles are fired from each segment. In order to fire all 25,600 nozzles, 100 different sets of 256 nozzles must be fired. [89] Because high-speed printing fires twice as many nozzles at the same time, low-speed printing takes twice as much time as high-speed printing. The power consumption in the low speed mode is half of the power consumption in the high speed mode. Note, however, that the energy consumed in printing the page is the same in both cases. [90] The printhead calculates several lines of feedback to adjust the timing of the firing pulse. One feedback signal tells the controller how hot the print head is. This allows the controller to adjust the timing of the firing pulse, since the temperature affects the viscosity of the ink. The second feedback signal tells the controller how much voltage is available to the actuator. This allows the controller to compensate for flat batteries or high voltage sources by adjusting the pulse width. The third feedback signal informs the controller of the resistivity (ohms per square) of the actuator heater. This allows the controller to adjust the pulse width to maintain a constant energy regardless of the heater resistivity. The fourth feedback signal informs the controller of the width of the critical portion of the heater, which can vary by +/- 5% due to lithography and etching variations. This allows the controller to adjust the pulse width accordingly. [91] The load cycle involves loading up of the printhead as information to be printed during subsequent print cycles. The firing control port of each nozzle may have a nibble bit associated with it that determines whether the nozzle fires or not during the printing cycle. The nozzle's bleed bit is loaded during the load cycle through a set of shift registers. When all the shift registers are fully loaded, all bits are sent in parallel to the enable bit of the appropriate nozzle. Immediately after the transfer has occurred, the printing cycle can begin. The print cycle and the load cycle can occur at the same time as all the nozzles are running at the end of the print cycle with parallel loads of pearl bits. [92] The printing process must produce data in the correct order for the printhead. As an example, the first clock pulse may transmit CMYK bits for dots 0, 800, 1600, 2400, 3200, 4000, 4800, and 5600 of the next print cycle. The second clock pulse may transmit CMYK bits for dots 1, 801, 1601, 2401, 3201, 4001, 4801, and 5601 of the next print cycle. After a 800 SR clock pulse, a transfer pulse can be given. [93] Of course, within the 800 SR clock pulse, the shift register must be loaded in accordance with communication with the final transfer of the nozzles to the enable bit, where there are many different wiring possibilities. The possibility of one loading (and hence wiring) is to load the bits in the order of the fades, where the bits in each pad represent the respective nozzles from one side of the pad to the other side (the second nozzle in the first row Effectively loading the first nozzle from the first row to the last row before moving to the second row. In two row pads this means loading the nozzles in an apparent jig-jag manner. Another possibility is to load the bits in a pad order, with the bits in each pad representing each row and starting from the nozzle from one side of the pad to the other in each row. [94] It is important to note that the odd and even CMYK outputs do not appear on the same physical output line, even though they are printed during the same print cycle. The physical separation of the odd and even nozzles within the printhead as well as the separation between nozzles of different colors ensures that they produce dots on different lines of the page. This relative difference must be considered when loading data into the printhead. The actual difference in the line depends on the characteristics of the inkjet mechanism used in the printhead. The difference can be defined by a variable representing the distance between the nozzles of different colors and the distance between the nozzles of the same color. [95] The present invention is a half toner / synthesizer unit for half toning a continuous tone color layer to two levels and compositing a black layer over a continuous tone layer that is half toned, [96] An input port receiving an extended continuous tone color layer having the form of a series of continuous tone color pixel values and an extended black layer having the form of a series of black dot values, [97] A dither unit for dithering each successive tone color pixel value received at the input port and for determining a value of a two-level output dot for each color component, [98] Level output dots from the dither unit and a black dot value from the input port, and when, for example, the value of the black dot represents the complete opacity, then the value of the halftoned dot for each color A compositing unit for synthesizing the black layer onto the half-toned layer so as not to express this color, [99] A clock enable generator for generating an enable signal for clocking the continuous tone color pixel input, the black dot input, and the dot output, [100] And an output port for delivering a set of two-level image lines having the form of a series of two-level dots that may have separate color planes. [101] The output may be a set of 1600 dpi 2-level image lines. [102] The color continuous tone layer may be a CMYK continuous tone layer. [103] Input Continuous Tone The CMYK FIFO can contain a complete 8KB line buffer. Each line is read once and then used as a continuous tone scale factor to achieve vertical up-scaling through line duplication. The FIFO write address wrapping is disabled until the start of the last replicated use of the line, at which time the clock enable generator generates a continuous tone line advance enable signal enabling wrapping. [104] The alternative is to read lines from the main memory consecutive tone conversion factor circuit, which increases the memory traffic by 65 MB / s but avoids the need for the on-chip 8 KB line buffer. [105] The consumer of the data produced by the unit is typically a printhead interface. The printhead interface can not only require a planar format, i.e. two-level image data with a separate color plane. However, it may also require that the even and odd pixels be separated. When the color continuous tone layer is a CMYK continuous tone layer, the output stage of the unit can use 8 parallel pixel FIFOs, one for each of even cyan, odd cyan, even magenta, odd magenta, even yellow, odd yellow, even black, have. [106] For this purpose, the clock enable generator may also generate an even signal that is used to select an even or odd set of output dot FIFOs. [107] After it is started, the unit can continue until it detects an end-of-page condition, or until it is explicitly stopped through its control register. [108] A unit generates a page of dots of a specified width and length, and many registers can be used to provide data to control the page structure and parameters. [109] The page width register receives page width data that can correspond to the width of the print head. [110] The page length register receives page length data that can correspond to the length of the target page. [111] The left margin register receives data describing the position of the left margin. [112] The right margin register receives data describing the position of the right margin. [113] The distance from the left margin to the right margin corresponds to the target page width. The half-toner / compositor unit generates target page data between the left and right margins specified for the page width. [114] The black page width register receives data describing the black page width. [115] The continuous tone page width register receives data describing the continuous tone page width. [116] The half-toner / compositor unit consumes black and continuous tone data according to the specified black and continuous tone page widths. [117] The half-toner / compositor unit clips black and continuous tone data to the target page width. This allows black and continuous tone page widths to exceed the target page width without requiring any special end of line logic at the input FIFO level. [118] For this purpose, the clock enable generator may also generate a blanking signal that is used to generate white dots when the current dot position is in the left or right margin of the page. [119] The half-toner / compositor unit scales the continuous tone data at the printer resolution on a horizontal and vertical basis to a specified conversion factor. The continuous tone conversion coefficient register may be provided to receive the continuous tone conversion coefficient. These conversion factors must be recorded in the continuous tone conversion coefficient register before starting the half toner / synthesizer unit. [120] Half toner / synthesizer control and configuration registers can be summarized according to the following table: [121] Half toner / synthesizer control and configuration registers register width Explanation start One Started Half Toner / Synthesizer stop One Stop Half Toner / Synthesizer Page width 14 In dots, the page width of the printed page. This is the number of dots to be generated for each line. Left margin 14 In the dot, the position of the left margin Right margin 14 In the dot, the position of the right margin Page length 15 In dots, the page length of the printed page. This is the number of lines that should be generated for each page. Black Page Width 14 In a dot, the page width of the black layer is used to detect the end of the black line. Continuous tone page width 14 In dots, the page width of a continuous tone layer. Used to detect the end of a continuous tone line. Continuous tone conversion factor 4 The conversion factor used to scale continuous tone data to 2-level resolution [122] Each dot column of the volume in the dither cell may be implemented as 256 separate bits. [123] Alternatively, each row of dots in the volume may be implemented as a fixed set of thresholds. Using three 8-bit thresholds only consumes, for example, 24 bits. Now, the nth threshold defines an n + 1 intensity interval, in which the corresponding dither cell position is not alternately set or set. The dithered continuous tone pixel value uniquely selects one of the n + 1 interlaces, which determines the value of the corresponding output dot. [124] Continuous tone data can be dithered using a triple-threshold 64 x 64 x 3 x 8-bit (12 KB) dither volume. The three thresholds form a convenient 24-bit value that can be retrieved from the dither cell ROM in one cycle. [125] If a dither cell match is desired between color planes, then the same triple-threshold can be retrieved once and used to dither each color component. [126] If a dither cell match is not desired then the dither cell can be divided into four subcells and stored in four individually addressable ROMs, from which four different triple-threshold values can be stored in one cycle Can be searched in parallel. The four color planes share the same dither cell at a vertical and / or horizontal offset of 32 dots from each other. [127] A multi-threshold dither unit may be used. For example, the triple-threshold unit converts the triplet-threshold and intensity values to interleaved and one or zero bits. The triple-critical rule is shown in the following table. [128] Triple-Threshold Rule Interval Print V T 1 0 T 1 <V T 2 One T 2 <V T 3 0 T 3 <V One [129] The compositing unit synthesizes the black layer dots onto the half-toned CMYK layer dots. If the black layer opacity is one, then half-toned CMY is set to zero. [130] 4-bit half-toning the color C c M c K c and Y c, given the one-bit black layer opacity K b, logic synthesis are the same as defined in the following table: [131] Composite logic Color channel Condition C C c ∧ -K bM M c ∧ -K bY Y c ∧ -K bK K c ∨ K b [132] The clock enable generator uses a set of counters. The internal logic of the counter is defined in the following table: [133] Clock Enable Generator Counter Logic counter Abbreviation width data Load condition Condition of disparity dot D 14 Page width RP a ∨ EOL b (D > 0) ^ clk line L 15 Page length RP (L > 0) ^ EOL Left margin LM 14 Left margin RP ∨ EOL (LM > 0) ^ clk Right margin RM 14 Right margin RP ∨ EOL (RM > 0) ^ clk Even / odd dot E One 0 RP ∨ EOL clk Black dot BD 14 Black Width RP ∨ EOL (LM = 0) ^ (BD > 0) ^ clk Continuous tone dot CD 14 Continuous tone width RP ∨ EOL (LM = 0) ^ (CD > 0) ^ clk Continuous tone sub-pixel CSP 4 Continuous tone conversion factor RP E EOL ∨ (CSP = 0) (LM = 0) ^ clk Continuous tone sub-line CSL 4 Continuous tone conversion factor RP ∨ (CSL = 0) EOL ^ clka (RP) Condition: External signal b EOL (End of line) Condition: (D = 0) ^ (BD = 0) ^ (CD = 0) [134] The logic of the clock enable signal is defined in the following table: [135] Clock Enable Generator Output Signal Logic Output signal Condition Output dot clock enable (D > 0) ^ - EOP aBlack dot clock enable (LM = 0) ^ (BD > 0) ^ EOP Continuous tone pixel clock enable (LM = 0) ^ (CD > 0) ^ (CSP = 0) ^ - EOP Continuous tone line advance enable (CSL = 0) ^ - EOP Even E = 0 White space (LM = 0) ((RM = 0)a EOP (end of page) Condition: L = 0 [136] The present invention is a dither unit for digitally halftoning a continuous tone color image in the form of an array of continuous tone color pixel values into two-level dots. The dither unit is configured with a dither volume that includes a fixed set of n threshold values defining the n + 1 intensity interleaved set such that the dither cell position is set without being alternately set, for each dither cell position. [137] Such a dither unit may be operative to dither each successive tone color pixel value received at the input port by determining the value of a two-level output dot for each color component by searching for the dither volume. [138] The set of thresholds may be used to effectively run length-encode the bitstream of the dithered volume, i. E. Compress the bitstream. This depends on the fact that there is typically coherence between adjacent bits in the column. When the number of thresholds is limited or fixed, then the universal dither volume is no longer necessarily representable, so a limited number of thresholds need to be considered when the dither volume is created. When the number of thresholds is limited to one, a traditional dither matrix is obtained. [139] A multi-threshold unit may be provided for each color component of the image. All multi-threshold units are operatively connected to a dither volume, and each multi-threshold unit is configured such that the dither cell position corresponding to the location of the output dots is set to be set in the intensity interblock that the continuous tone value uniquely chooses To determine the value of the output dot corresponding to the continuous tone color pixel element value. [140] Three threshold values may be used, and they may be 8-bit threshold values. [141] If a dither cell match is desired between the color planes, then the threshold can be retrieved once and used to dither each color component. [142] If a dither cell match is not desired between the color planes, then the dither cell can be divided into sub-cells and stored in an individually addressable memory from which other multiple-threshold values can be retrieved in parallel . [143] In the case where the four color component successive tone layers are to be halftoned, four distinct tri-threshold units may each receive a series of consecutive tone color pixel values for each color component, The generator can operate in conjunction with four 4-way multiplexers, for each tri-threshold unit, to control retrieval of four different tri-thresholds from a sub-cell of the dither unit. [144] The triple-threshold unit may convert the triple-threshold values T 1 , T 2 and T 3 and the intensity value V into an interval and one or zero bit according to the rules shown in the following table. [145] Triple-Threshold Rule Interval Print V T 1 0 T 1 <V T 2 One T 2 <V T 3 0 T 3 <V One [146] In a further aspect the present invention provides a dither unit for digitally halftoning a continuous tone color image in the form of an array of continuous tone color pixel values into two-level dots, said dither unit comprising a dither volume, [147] Expressing each dither cell position of the dither volume by a fixed set of n thresholds defining an n + 1 intensity interval set such that the dither cell position is set and not set alternately; and [148] Using a value of a successive tone pixel component dithered to uniquely select one of the n + 1 intensity interlaces to determine a value of an output dot corresponding to the continuous tone pixel component value, In the method, [149] The dither unit further comprises, for each color component of the image, a multi-threshold unit, all of which multi-threshold units are operatively connected to the dither volume, [150] Determining the value of the output dot corresponding to the continuous tone color pixel component value by determining whether the dither cell position corresponding to the position of the output dot is set to be within the intensity interblock that the continuous tone value uniquely selects, And determining in the threshold unit. [151] The present invention relates to an ink jet recording apparatus comprising a temperature sensor for calculating a signal indicative of the temperature of a print head and an ink supply port for receiving ink from the ink container, an ink deposition port for ejecting the ink dot, And a plurality of nozzles each having a firing control port for receiving a signal to be deposited. Wherein the printhead controller includes means for receiving a signal indicative of the temperature of the printhead from a temperature sensor and means for supplying a firing signal to a firing control port of the nozzle, Wherein the controller is operable to set all nozzles to firing and to execute a series of modified firing cycles to provide a series of short firing pulses to each nozzle, The duration of each pulse is insufficient to fire the droplets, but is sufficient to heat the ink. [152] Feedback during the preheat mode may be provided by a T-sense (defined below) and continues until a temperature of about 30 캜 above room temperature is reached. Since the time or temperature may vary depending on the ink composition, it is important that the temperature information be fed back as it reaches the equilibrium temperature. [153] In one example, about 200 pulses are required for each nozzle. [154] The duration of the warm-up mode can be about 50 milliseconds and depends on the ink composition. [155] Preheat is done while data is being sent to the printer, so it does not affect performance. [156] The preheating cycle involves a single load cycle to all nozzles with one (i. E., All nozzles are set to firing) and many short firing pulses to each nozzle. The duration of the pulse is insufficient to fire the droplet, but should be sufficient to heat the ink. The duration of the pulse may vary for each ink used in the printer. As a whole, about 200 pulses are required for each nozzle and cycling through the same sequence as a standard print cycle. [157] The present invention is a multi-parallel processor that requires resources held in a computer memory, simultaneous access to that resource, and a resource address generator that generates coordinates within the resource, wherein the resources are divided into different parts, And the resource address generator generates the coordinates used to select the part of the resource used by each processor, and the selection is arranged to ensure that each part is only used by one processor at a time. Also, the selection can ensure that each processor uses parts in the order in which they appear in the resource. [158] The resource may be a multi-threshold dither matrix for digitally halftoning a continuous tone color image in the form of an array of successive tone color pixel values into two-level dots. The dither matrix may include a fixed set of n thresholds for each dither cell position that defines an n + 1 intensity interval set to be set such that the dither cell position is not set alternately. [159] Multiple parallel processors requiring concurrent access to resources may be multi-threshold units provided for each color component of the image. Each multi-threshold unit is operatively coupled to a multi-threshold dither matrix, wherein each multi-threshold unit is configured to determine whether a dither cell position corresponding to the position of the output dot is within a strength interval To determine the value of the output dot corresponding to the continuous tone color pixel component value. [160] Such a dither unit may be operable to dither each successive tone color pixel value received at the input port by determining the value of a two-level output dot for each color component by searching for a multi-threshold dither matrix. [161] The dither cells may be divided into sub-cells and stored separately in an addressable memory from which other multiple-threshold values may be retrieved in parallel. [162] In the case where the four color component successive tone layers are to be halftoned, four distinct tri-threshold units may each receive a series of consecutive tone color pixel values for each color component, The generator operates in conjunction with four 4-way multiplexers, for each threshold unit, to control retrieval of four different triple thresholds from four different sub-cells of the dither matrix. [163] The address generator can be easily arranged such that no two threshold units need simultaneous access to the same subcell if dither cell matching between the color planes is not desired. [164] In a further aspect, the present invention provides a method for accessing resources held in a computer memory, wherein a multiple parallel processor has a resource address generator for requesting simultaneous access to resources, generating coordinates in the resources, [165] Dividing the resource into different parts; [166] Storing each part in a different memory bank; And [167] And operating the resource address generator to generate coordinates used to select the part of the resource used by each processor, the selection being such that each part is only used by one processor at a time . [168] The selection can also ensure that each processor uses the part in the order in which the parts appear on the resource. [169] The resource may be a multi-threshold dither matrix for digitally halftoning a continuous tone color image in the form of an array of successive tone color pixel values into two-level dots. The dither matrix may include a fixed set of n thresholds for each dither cell position that defines an n + 1 intensity interval set to be set such that the dither cell position is not set alternately. [170] Multiple parallel processors requiring concurrent access to resources may be multi-threshold units provided for each color component of the image. Each multi-threshold unit is operatively coupled to a multi-threshold dither matrix, and each multi-threshold unit is operable to determine whether a dither cell position corresponding to a location of the output dot is within a strength interval To determine the value of the output dot corresponding to the continuous tone color pixel component value. [171] The dither cells are divided into subcells and can be stored in individually addressable memories from which different multi-threshold values are retrieved in parallel. [172] In the case where the four color component successive tone layers are to be halftoned, four distinct tri-threshold units may each receive a series of consecutive tone color pixel values for each color component, The generator operates in conjunction with four 4-way multiplexers, for each threshold unit, to control retrieval of four different triple thresholds from four different sub-cells of the dither matrix. [173] The dither cell address generator may modulate the dither cell size to generate dither cell coordinates that reflect the current dot coordinates. The lower bits of the dither cell coordinates may be used to address locations within each dither sub-cell, and the upper bits of the dither cell coordinates may be used by the respective multi-threshold unit to select which dither sub- , The selection ensures that each sub-cell is only used by one multi-threshold unit at a time, and that each multi-threshold unit uses a dither sub-cell in the order in which the dither sub- ≪ / RTI > [174] The present invention provides a printhead of the type comprising a plurality of nozzles each having an ink supply port and a firing control port receiving an ink deposition port and a signal to cause ink dots to be deposited from the deposition port during a firing cycle of the print head The printer system according to claim 1, The printer also includes a reservoir (such as a cartridge) for supplying ink to the ink supply port of the nozzle, and the printer system operates to predict when the ink in the reservoir bottoms. The printer system includes an input port for receiving a signal indicating the number of dots of ink to be printed or printed by the printer, a memory for storing data representing the number of dots of ink remaining in the ink container, And a processor for receiving the signal and updating the memory when printing occurs. A signal indicating the number of dots of ink printed by the printer is associated with the signal received at the firing control port of the nozzle. [175] At the end of a predetermined number of pages, it may occur that there is enough ink left in the ink reservoir to print another page. [176] If there is not enough ink remaining, the new page can not be printed. [177] A signal indicative of the number of dots to be printed or printed may be derived from the ink container, the print head itself, or the controller for the print head. [178] The dot counter can maintain a count of the number of dots of ink fired from the printhead. The dot count can be periodically cleared. The dot counter may have an output from an input port that receives a signal each time a dot is printed, a bit counter with a clock and clear input terminal, a positive feedback connection around the counter, and a counter indicating the current count. [179] The encoder may be placed on the input line to the dot counter to convert the received signal. [180] In the case of a printer comprising more than one ink reservoir, the printer system may include an input port, each of which is in each of the reservoirs, for receiving a signal indicative of the number of dots of ink from the ink container to be printed or printed by the printer , And the memory may store data representing the number of dots of ink remaining in each ink container. [181] In another aspect, the present invention provides a method of operating a printer system for predicting when an ink of an ink container bottoms out, [182] Receiving a signal indicating the number of dots of ink to be printed or printed by the printer; [183] Storing data representing the number of dots of ink remaining in the ink container; And [184] And updating the memory when printing occurs, wherein a signal indicative of the number of dots of ink printed or printed by the printer is associated with the signal received at the firing control port of the nozzle. [185] At the end of a certain number of pages, it may occur that there is enough ink remaining in the ink reservoir to print another page. If there is not enough ink remaining, the new page can not be printed. [186] The present invention relates to: [187] A first input port for receiving a signal indicative of a voltage available, [188] A programmable pulse duration table indexed by a signal received at a first input port to generate a control signal representative of a predetermined duration for a firing pulse, [189] And an output port for transmitting a control signal. [190] A second input port may be provided to receive a signal indicative of the temperature of the printhead in the printer. In this case, the programmable pulse duration table is indexed by signals received from the first and second input ports to generate the control signal. [191] A table of pulse durations allows the use of lower cost power supplies and helps to preserve more accurate droplet ejection. [192] An entry in the table can represent a value in the range of 0-4 ms and a control output is generated according to the indexed entry. [193] The pulse width generator, in use, will be placed under the flow of the control system to receive the control output and generate a firing pulse for the printhead. [194] The table may be recorded before printing the first page of the print run. If desired, the table can be updated between pages of the print run. [195] Each entry in the table may include a weight from one or more of the following features: [196] · User brightness setting [197] · Viscosity curve of ink [198] · T-Sense tells the controller how hot the print head is. This allows the controller to adjust the timing of the firing pulse, since the temperature affects the viscosity of the ink. [199] · V sense (Vsense) tells the controller how much voltage is available to the actuator. This allows the controller to compensate for the flat battery or high voltage source by adjusting the pulse width. [200] · R sense tells the controller the resistivity of the actuator heater (ohms per square). This allows the controller to adjust the pulse width to conserve constant energy regardless of heater resistivity. [201] • W sense informs the controller of the width of the critical section of the heater, which can vary by ± 5% due to lithography and etching variations. This allows the controller to adjust the pulse width accordingly. [202] The pulse duration table may have 256 entries, and each entry may be 8-bit. The signal indicating the voltage can come from the V sense, and the signal indicating the temperature can come from the T sense. In this case, the signal received at the input port can be transformed for use in indexing the table. An 8-bit entry into the table can be indexed by two 4-bit numbers, so the upper 4-bits can come from the V-sense and the lower 4-bits can come from the T-sense. [203] In a further aspect the present invention provides: [204] A first input port; [205] A programmable pulse duration table; And [206] Output port for a printer, the firing pulse duration control system comprising: [207] The method comprising: receiving a first signal indicative of a voltage available; [208] Indexing a programmable pulse duration table by a first signal to generate a control signal representative of a predetermined duration for a firing pulse; And [209] And transmitting a control signal to the firing pulse duration control signal. [252] An example of a printer embodying the present invention will now be described with reference to the accompanying drawings. [253] One Disclosure [254] The present invention will be described in connection with high performance color printers that combine high-quality text reproduction, such as photographs-quality image reproduction and magazines. The printer is an 8 "page-wide drop-on-demand microelectromechanical inkjet (" Memjet ") printhead that produces 1600 dots per inch (dpi) 2-level CMYK (cyan, magenta, yellow, Which prints 30 full-color A4 or letter pages per minute and is intended as an entry-level desktop printer. The printer has been referred to as an i-print and will be referred to in the following description by its name. [255] 1.1 Operational Overview [256] The eye print uses black text and graphics directly using 2-level black, and a continuous-tone image and graphics using dithered 2-level CMYK. In practice, the eye print supports a black resolution of 800 dpi and a continuous tone resolution of 267 pixels per inch (ppi). [257] The eye print is attached to a workstation or personal computer (PC) via a relatively low speed (1.5 MBytes / s) universal serial bus (USB) connection, in use [14]. The eye print relies on the PC to render each page at a level of continuous tone pixels and black dots. The PC compresses each rendered page to less than 3 MB for deliveries of less than 2 seconds to the printer. The eye print decompresses the page and prints the page one line at the speed of the Memjet printhead. The i-print includes enough buffer memory for two compressed pages (6 MB), which causes it to print one page while it is receiving the next page, but for a uncompressed page (119 MB) . [258] 1.2 Page width [259] The standard Memjet nozzle layout has a half-inch unit cell, and can therefore usually be adapted to a page width that is a multiple of one-half inch. Any page width can be achieved as a customer nozzle layout in a market that justifies such specialization. Early Memjet Building Blocks are widely used 4-inch printheads that effectively use 6-inch silicon wafers. Thus, the eye print design assumes an 8-inch membrane printhead consisting of two 4-inch printheads joined together. The use of a wider printhead to achieve complete bleed on an A4 / letter page affects only some aspects of the eye print design (especially the exact mechanical design and logic of the printhead interface). [260] 2 Memjet-based printing [261] The Memjet printhead yields 1600 dpi 2-level CMYK. On the low-diffusing paper, each ejected droplet almost completely forms a 22.5 micron diameter circular dot. Dots are easily isolated and produced, making distributed-dot dithering the best possible use. Because the Memjet printhead is page-wide and operates at a constant paper speed, the four color planes are printed in perfect agreement, allowing for ideal dot-on-dot printing. As a result, there is no spatial interaction between the color planes, so the same dither matrix is used for each color plane. [262] The page layout may include a mixture of images, graphics, and text. Continuous tone images and graphics are reproduced using stochastic distributed-dot dither. Unlike cluster-dot (or amplitude-modulated) dither, the dispersed-dot (or frequency-modulated) dither reproduces a high spatial frequency (i.e., image detail) To reproduce a lower spatial frequency. The stochastic dither matrix is carefully designed so that there is no objectionable low-frequency pattern when tiled across the image. As such, its size typically exceeds the minimum size required to support many intensity levels (i.e., 16x16x8 bits for a 257 intensity level). The eye print uses a 64 × 64 × 3 × 8-bit dither volume. The volume provides extra degrees of freedom during the design of the dither by allowing the dots to change states multiple times over the intensity range (rather than just once as in a conventional dither matrix). [263] Sensitivity to human is the highest at a spatial frequency of about 3 cycles per degree of visual field, then falls algebraically, decreases by 100 times, and becomes difficult to measure over about 40 cycles per degree [2]. At normal viewing distances between 400 mm and 250 mm, this translates to 150-250 cycles per inch (cpi) on roughly printed pages, or 300-500 samples per inch according to Nyquist theory. Considering the fact that color sensitivity is less sharp than gray scale sensitivity, a continuous tone resolution of about 400 pixels per inch (ppi) or more per inch is thus a limited utility and actually contributes somewhat to color errors through dither. [264] Black text and graphics are reproduced directly using 2-level black dots, and thus are not anti-aliased (i.e., low-pass filtered) before being printed. Thus, the text is supersampled above the perceptual limit to yield a smooth edge when spatially integrated. Text resolution of up to about 1200 dpi will continue to contribute to perceived text clarity (assuming a low-spreading paper, of course). [265] 3.1 Restrictions [266] USB (Universal Serial Bus) is a standard low-speed peripheral connection on a new PC [4]. IEEE 1394, a standard high-speed peripheral connection, is recommended, but unfortunately it is still optional in the PC 99 specification [5], so it can not be used widely when it is first introduced. Thus, the eye print is connected to a personal computer (PC) or workstation via USB, and therefore the speed of the USB connection imposes the most important constraint on the architecture of the i-print system. At a sustained print speed of 30 pages per minute, USB at 1.5MBytes / s imposes an average limit of 3MB / page. Since interrupting a Memjet-based printer during printing of a page yields a visual discontinuity, it is advantageous to receive the entire page before the printer starts printing, in order to eliminate the possibility of a buffer underrun. Since the printer may only contain limited buffer memory (i.e., two pages or 6MB), then the 3MB / page limit should be considered absolutely. [267] Figure 1 illustrates the sustained print speed achievable by double-buffering in a printer. The first step (1) requires that the first page be rendered on the PC, which takes up to 2 seconds. During the second step (2) the next page is rendered and the first page is sent to the printer, which again takes up to 2 seconds. In the third step (3), the first page is printed, the second page is transmitted, and the third page is rendered, which takes two seconds. As a result, it takes up to 6 seconds for the first page to be printed, and one page can be printed every 2 seconds thereafter. [268] Other desktop connectivity options provide similar bandwidth to USB, thus imposing similar constraints on the architecture. These include parallel ports at 2 MB / s and 10 base-T Ethernet at about 1 MB / s. [269] 3.2 Page rendering and compression [270] The page rendering (or rasterization) can be partitioned between the PC and the printer in various ways. Certain printers support a full page description language (PDL) such as PostScript, and include a correspondingly sophisticated renderer. Other printers provide professional support only for rendering text to achieve high text resolution. This usually includes support for built-in or downloadable fonts. In each case, the use of the built-in renderer reduces the rendering burden on the PC and reduces the amount of data sent from the PC to the printer. However, this is expensive. These printers are more complex than normal and often can not provide full support for the graphics system of the PC through which the application programs create, render, and print pages. Often they can not leverage the high performance of the current PC and leverage the planned exponential growth in PC performance. [271] The eye print relies on the PC 4 to render the page, i.e., the continuous tone image and graphics, at the pixel level, and the black text and graphics at the dot level. The eye print 5 only includes a simple rendering engine that dithers the continuous tone data and combines the result with any foreground 2-level black text and graphics. This strategy keeps the printer simple and independent of any page description language or graphics system. It makes full use of the high performance of the current PC. The downside of this strategy is the potentially large amount of data that must be sent from the PC to the printer. As a result, compression is used to reduce this data to the required 3 MB / page to allow a sustained print speed of 30 pages per minute. [272] 2 is a flow chart illustrating the conceptual data flow from an application 6 to a printed page 7; [273] 8 " x 11.7 " A4 pages have a two-level CMYK page size of 114.3 MBytes at 1600 dpi and a continuous tone CMYK page size of 32.1 MB at 300 ppi. [274] In the printer driver 8, JPEG compression 9 is used to compress continuous tone data. Although JPEG has intrinsic loss, its loss is usually negligible for compression ratios below 10: 1 [16]. To obtain a continuous tone to two-level integer ratio and provide some compression margin, a continuous tone resolution of 267 ppi is selected. This yields a 25.5 MB continuous tone CMYK page size, a corresponding compression ratio of 8.5: 1 that fits within the 3 MB / page limit, and a 1: 6 continuous tone to 2-level ratio in each dimension. [275] A complete page of rasterized black text (and / or graphics) at printer resolution (1600 dpi) produces a 28.6 MB 2-level image. Since rasterizing text at 1600 dpi places a heavy burden on the PC for low gain, we choose to rasterize the text at a fully acceptable 800 dpi. This yields a 2-level image of 7.1 MB and requires a lossless compression ratio of less than 2.5: 1 to fit within the 3 MB / page limit. This is accomplished with a two-dimensional compression method adapted from group 4 facsimiles, generally denoted at 10. [276] Unless the image and text areas of the page overlap, the two arbitrary combinations fit within the 3MB limit. If the text is at the top of the background image then the worst case is that the compressed page size is close to 6 MB (depending on the actual text compression ratio). This fits within the page buffer memory of the printer, but prevents double-buffering of the page in the printer, thus reducing the page rate of the printer to 2/3, i.e. 10 pages / minute. [277] 3.3 Expanding and printing pages [278] As described above, the PC renders the continuous tone image and graphics at the pixel level, and the black text and graphics at the dot level. They are compressed by other means (11) and sent to the printer together. [279] The printer contains two 3 MB page buffers - one for the page received from the PC (12) and one for the printed page (13). The printer expands the compressed page when it is being printed. This extension decompresses 267 ppi consecutive tone CMYK image data 14, halftoning the resulting successive tone pixels 1600 dpi to 2-level CMYK dots 15, decompressing 800 dpi 2-level black text data 16, , And composing (17) the resulting 2-level black text dots onto the corresponding 2-level CMYK image dots. [280] The conceptual data flow from the application to the printed page is illustrated in Fig. [281] 4 Printer hardware [282] Due to the simplicity of the page width inkjet printhead, the eye print is very compact. It is only 270 mm wide × 85 mm high × 77 mm high when closed. 3 is a pictorial view of the eye print 21 when closed. [283] The cover 22 is opened to form a part of the paper tray, as shown in Fig. The second part 23 is hinged within the cover 22 and is opened to extend the paper tray. The paper exit tray 24 can be slidably extended from the front side of the printer. [284] The front panel 25 that is visible when the cover 22 is open includes a user interface-user button 26 and a power indicator LED 27, a paper feed button 28, . [285] 4.1 Paper path [286] The eye print uses a standard paper feed mechanism. A paper path 50 is illustrated in FIG. 5, in which a single stepper motor 51 drives both the sheet feed roller 52 and paper feed. When moving in the forward direction, the stepper motor drives the paper drive roller 53 and the pinch wheel 54 at the start and end of the active paper path, respectively. When reversed, the stepper motor drives a sheet feed roller 52 holding the topmost sheet from the sheet feeder and transfers the sheet to the sheet drive roller 53 a short distance, . [287] The paper centering slider 56 ensures that the paper is centered. This ensures that a single centered media sensor detects the sheet and also ensures that a wider sheet than the printhead is printed with balanced margins. [288] 4.1.1 Memjet printhead [289] A replaceable inkjet printhead cartridge 60 is also shown in FIG. This represents one of four possible ways to place a printhead in relation to an ink cartridge in a product such as an eye print: [290] A permanent printhead, a replaceable ink cartridge (as shown here) [291] · Separate replaceable printheads and ink cartridges [292] , Refill possible the combined printhead and ink cartridge [293] · Disposable combined with printheads and ink cartridges [294] The printhead capping mechanism 62 and the printhead assembly 61, illustrated in the cutaway view in Figure 6 and in the cross-sectional view in Figure 7, are below the printhead cartridge 60. When not in use, the inkjet printhead 63 is filled with ink, and thus must be capped to prevent evaporation of the ink through the nozzles. Ink evaporation can result in gradual deposition of ink components that can compromise nozzle operation. [295] The eye print includes a mechanical pagewidth capping mechanism 62 that consists of a pivoting capping molding 64 having an elastomeric seal 65 and a sponge 66. Capping mold 64 is held against the surface of printhead assembly 61 by a spring and elastomeric seal 65 coincides with the surface of the printhead assembly and the printhead 63). ≪ / RTI > A sponge 66 is used to catch the ejected droplets during the printhead cleaning cycle. When the printhead is in use, the capping molding 64 is retained away from the printhead assembly 61 away from the paper path. [296] The capping mold 64 is offset from the rod 69 by a set of flexible arms 68. The capping mold 64 and the arm 68 pivot with the rod 69 about its axis. The slip wheel 70 is mounted at the end of the rod 69. The slip wheel 70 is in contact with the drive wheel 71. When printing is occurring, the drive wheel 71 is connected to the paper feed motor and is driven in the uncapping direction 72. This causes the slip wheel 70 and the rod 69 to rotate about its axis and sweep the capping mold 64 away from the print head. After the slip wheel rotates to the uncapping slip point 73, the slip wheel and capping moldings stop rotating. When printing is complete, the drive wheel is reversed and driven in the capping direction 74. After the slip wheel rotates to capping slip point 75, the slip wheel and capping mold stops rotating and the capping spring holds the capping plate in place against the face of the printhead assembly. The flexible arm 68 assists the capping plate 67 to conform to the face of the printhead assembly 61. [297] 4.2 Printer controller [298] The printer controller 80 is illustrated in FIG. 8 and includes only a few components - a 64Mbit RDRAM 82, an ICP chip 83, a speaker 84 for notifying a user of an error condition, a QA Chip 85, an external 3V DC power connection 86, an external USB connection 87, a connection 88 to a paper transport stepper motor, and a media sensor 55, LEDs 7,9 and 10, And a small PCB 81 having a flex PCB 89 connected to a link 90 to the printhead 63. The printhead 63 has a flexible printed circuit board (PCB) 89, [299] 4.3 Ink cartridge and ink passage [300] There are two versions of the ink cartridge - one large, one small. Both of them fit into the same ink cartridge slot on the back of the i-print unit. [301] 5 Printer control protocol [302] This section describes the printer control protocol used between host and i-print. This includes control and state processing as well as actual page description. [303] 5.1 Control and Status [304] The USB device class definition for printers [15] provides for the emulation of unidirectional and bidirectional IEEE 1284 parallel ports [3]. At its most basic level, this allows the host to determine the printer capability (via GET_DEVICE_ID), obtain the printer status (via GET_PORT_STATUS), and reset the printer (via SOFT_RESET). The Centronics / IEEE 1284 printer status fields are described in Table 1 below. [305] (Table 1) [306] Centronics / IEEE 1284 Printer Status fieldExplanation SelectionThe printer is selected and available for data transmission. No paperNo paper condition exists in the printer. flawA defect condition exists in the printer (including no paper and not selected) [307] Typically, the personal computer printing subsystem provides a certain level of IEEE 1284 support. Thus, compatibility with IEEE 1284 in a printer simplifies the development of a corresponding printer driver. The USB device class definition for the printer attempts to leverage this same compatibility. [308] The eye print does not support any control protocol beyond the USB device class definition for the printer. If a higher-level control protocol is defined, then conditions such as no ink can also be reported to the user (rather than only through the printer's ink-free LED). [309] Eye prints are received as un-encapsulated page technology, that is, not encapsulated in any higher-level control protocol. [310] 5.2 Page technology [311] The eye print reproduces black at full dot resolution (1600 dpi), but uses half toning to reproduce continuous tone color at a somewhat lower resolution. Thus, the page technique is divided into a black layer and a continuous tone layer. The black layer is set to synthesize onto the continuous tone layer. [312] The black layer is composed of a bitmap including 1-bit opacity for each pixel. This black layer matte has a resolution which is an integer argument of the printer's dot resolution. The highest resolution supported is 1600 dpi, the printer's full dot resolution. [313] The continuous tone layer consists of a bitmap containing 32-bit CMYK colors for each pixel. This continuous tone image has a resolution that is an integer argument of the printer ' s dot resolution. The highest resolution supported is 267 ppi, or 1/6 the printer's dot resolution. [314] The continuous tone resolution is also typically an integer argument of black resolution to simplify calculations in the printer driver. However, this is not a requirement. [315] Both the black layer and the continuous tone layer are in compressed form for effective transmission to the printer via low speed USB connections. [316] 5.2.1 Page structure [317] The eye print has a printable page area determined by the width of the print head, the nature of the paper path, and the size of the currently selected print media. [318] The printable page area has a maximum width of 8 ". If the physical page width exceeds 8 ", then symmetric left and right margins are implicitly created. If the physical page width is less than 8 ", then the printable page width is accordingly reduced. The printable page area does not have a maximum length, which is a physical page minus the top and bottom margins imposed by the characteristics of the paper path. It's just a length. [319] The target page size is constrained by the printable page area minus the explicit (target) left and top margins specified in the page description. [320] Theoretically, the eye print does not impose top or bottom margins - that is, it allows complete bleeding in the vertical direction. However, in order to avoid having to include a sponge that is large enough to deal with out-of-edge printing regularly, since the i-print is actually not designed as a full-bleed A4 / letter printer because the i- Lower margin is imposed. [321] 5.2.2 Page technology format [322] Table 2 shows the format of the page description expected by the eye print. [323] (Table 2) [324] Page technology format fieldformatExplanation signature16-bit integerPage technology format signature version16-bit integerPage technology format version number Structure Size16-bit integerFixed-size parts of page technology Target Resolution (dpi)16-bit integerThe resolution of the target page. This is always 1600 for an eye print. Target page width16-bit integerIn a dot, the width of the target page Target page height16-bit integerIn the dot, the height of the target page Target left margin16-bit integerIn the dot, the width of the target left margin Target top margin16-bit integerIn the dot, the height of the target top margin Black conversion factor16-bit integerConversion factor from black resolution to target resolution (should be 2 or greater) Black Page Width16-bit integerIn the black pixel, the width of the black page Black Page Height16-bit integerIn the black pixel, the height of the black page Black Page Data Size32-bit integerIn bytes, the size of the black page data Continuous tone conversion factor16-bit integerConversion factor from continuous tone resolution to target resolution (must be 6 or greater) Continuous tone page width16-bit integerIn continuous tone pixels, the width of the continuous tone page Continuous tone page height16-bit integerIn continuous tone pixels, the height of the continuous tone page Continuous tone page data size32-bit integerIn bytes, the size of the continuous tone page data Black Page DataEDRL byte streamCompressed two-level black page data Continuous tone page dataJPEG byte streamCompressed continuous tone CMYK page data [325] Apart from being implicitly defined for the printable page area, each page technique is complete and complete. No data is transmitted to the printer separately from the page description described by the page description. [326] The page description includes a signature and a version that allows the printer to identify the page description format. If the signature and / or version is missing or inconsistent with the printer, then the printer can reject the page. [327] The page technology determines the size and resolution of the target page. The black and continuous tone layers are clipped to the target page if necessary. This occurs whenever the black and continuous tone conversion factor is not an argument of the target page width or height. [328] The target left and top margins determine the positioning of the target page within the printable page area. [329] The black layer parameter determines the pixel size of the black layer, its integer conversion factor to the target resolution, and the size of the compressed page data. The variable-size black-page data follows the fixed-size part of the page description. [330] The continuous tone layer parameter determines the pixel size of the continuous tone layer, its integer conversion factor to the target resolution, and the size of the compressed page data. Variable-size continuous tone page data follows variable-size black page data. [331] All integers in the page description are stored in big-endian byte order. [332] Variable-size black-page data and variable-size continuous tone page data are aligned with 8-byte boundaries. The size of the required padding is included in the size of the fixed-size part of the variable-size black data and page description structure. [333] The full page description has a target size of less than 3 MB and a maximum size of 6 MB, depending on the page buffer memory in the printer. [334] The following sections describe the format of the compressed black layer and the compressed continuous tone layer. [335] 5.2.3 Two-level black layer compression [336] 5.2.3.1 Group 3 and 4 fax compression [337] Group 3 facsimile compression algorithms [1] compress lossless 2-level data for transmission over slow and noisy telephone lines. The two-level data represents black text and graphics scanned on a white background, and the algorithm is tuned for this class of images (which, for example, can be explicitly tuned for halftoned 2-level images ). The 1D Group 3 algorithm runs length-encodes each scan line and then Huffman-encodes the resulting run length. Run lengths in the range 0 to 63 are coded with a terminating code. Run lengths in the range 64 to 2623 are coded with configuration codes involving termination codes, each representing a multiple of 64. Run lengths in excess of 2623 are coded with multiple configuration codes involving termination codes. The Huffman table is fixed, but tuned separately for black and white runs (except common 1728 and above configuration codes). Whenever possible, the 2D Group 3 algorithm encodes the scan line as a set of short edge deltas (0, +/- 1, +/- 2, +/- 3) with reference to the previous scan line. The delta symbol is entropy-encoded (such that the zero delta symbol has only one bit length). The edges in a 2D-encoded line that can not be delta-encoded are run-length-encoded and identified by a prefix. The 1D- and 2D-encoded lines are marked differently. The 1D-encoded line is generated at regular intervals, whether actually required or not, to ensure that the decoder can recover from line noise with minimal image degradation. 2D group 3 achieves a compression ratio of up to 6: 1 [13]. [338] Group 4 facsimile algorithms [1] compress lossless 2-level data for transmission over error-free communication lines (ie, the line is really error free or error-corrected at a lower protocol level). The Group 4 algorithm is based on the 2D Group 3 algorithm since it is assumed that the transmission is error-free, so that the 1D-encoded line is inherently transformed to no longer occur at regular intervals as an aid to error-recovery. Group 4 achieves a compression ratio in the range of 20: 1 to 60: 1 for the CCITT set of test images [13]. [339] The performance and design goals of the Group 4 compression algorithm are to qualify it as a compression algorithm for a two-level black layer. However, the Huffman table is tuned to a lower scanning resolution (100-400 dpi), which encodes poorly the run length in excess of 2623. At 800 dpi, the maximum run length is now 6400. Although the Group 4 decoder core is available for use in a printer controller chip (section 7), it can not handle run lengths that would normally be encountered in a 400 dpi facsimile application, and will therefore require modification. [340] Because most of the gains in group 4 come from delta-encoding, a simpler algorithm based solely on delta-encoding is likely to meet our needs. This approach is described in detail below. [341] 5.2.3.2 2-level edge delta and run length (EDRL) compression format [342] The edge delta and run length (EDRL) compression formats are vaguely based on the Group 4 compression format and its precursors [1] [17]. [343] EDRL uses three types of entropy-coded symbols as appropriate. These are generation edge, erase edge, and edge delta. Each line is coded with reference to its predecessor. The predecessor of the first line is defined as a white line. Each line is set to start from white. If the line actually starts in black (less likely situation), then it should set the black edge at offset zero. Each line must define an edge at its left end, the offset page width. [344] If there is no edge within the maximum delta range with the same sense (white-black or black-white), the edge can be coded with reference to the edge in the previous line. It uses one of the edge delta codes. A shorter and more likely delta has a shorter code. The maximum delta range (± 2) is chosen to match the distribution of the delta over a typical glyph edge. This distribution is mostly independent of the point size. A typical example is given in Table 3. [345] (Table 3) [346] Edge Delta distribution for 10 point times at 800 dpi | Delta |percentage 065% One23% 27% ≥35% [347] The edges can also be coded using the length of the run from the previous edge on the same line. It uses one of the generated edge codes for short (7-bit) and long (13-bit) run lengths. For simplicity, unlike Group 4, the run length is not entropy-coded. To keep the edge delta in sync with the previous line and the edges implicitly, each unused edge in the previous line is " cleared " when passed on the current line. It uses an erase edge code. The end of page code signals the end of the page to the decoder. [348] The 7-bit and 13-bit run lengths are specifically chosen to support 800 dpi A4 / letter pages. Longer run lengths can be supported without significant impact on compression performance. For example, if it supports 1600 dpi compression, the run length should be at least 8-bit and 14-bit, respectively. The universal-purpose selection can be 8-bit and 16-bit, and thus supports up to 40 "wide 1600 dpi pages. [349] A complete set of code is defined in Table 4. Note that the line end code does not exist. The decoder uses the page width to detect the end of the line. The length of the code is ordered by the relative probability of code generation. [350] (Table 4) [351] EDRL code word codeEncodingSuffixExplanation Δ0One-Do not move the corresponding edge Δ + 1010-Move the corresponding edge by +1 Δ-1011-Moves the corresponding edge by -1. Δ + 200010-Move corresponding edge by +2 Δ-200011-Move corresponding edge -2 Erase edge0010-Clearing the corresponding edge Near Edge Creation00117-bit RLCreates an edge from a short run length (RL) Distant Edge Creation0000113-bit RLGenerate edges from long run length (RL) End of page (EOP)000001-End of page marker [352] Figure 9 shows an example of coding a simple black and white image 90. The image is arranged as a line 91 of pixels 92. The first line 91 is assumed to be white and is therefore coded as 0. The common situation of the all-white line with another all-white line is coded using a single bit ( 0) and the all-black line accompanied by another all-black line is coded using two bits ( 0, 0) . ≪ / RTI > In the case where an edge occurs in a line, such as the fourth line 93, a generated code is used to determine the edge. In the next line 94, the DELTA-1 and DELTA + 1 codes are used to move the edge. In the next line (95), it is more convenient to create a new edge than to move the edge and to erase the old edge. [353] EDRL encoding example [354] Note that the above does not describe the compression algorithm per se, but rather describes the compression format. Various equivalent encodings can be computed for the same image, which is somewhat smaller than others. For example, pure run length encoding conforms to the compression format. The goal of the compression algorithm is to find a good encoding, even if not the best, for a given image. [355] The following is a simple algorithm for calculating the EDRL encoding of a line with reference to a predecessor. [356] #define SHORT_RUN_PRECISION7 // Precision of short run [357] #define LONG_RUN_PRECISION13 // Precision of long run [358] EDRL_CompressLine [359] ( [360] Byte prevLine [], // Previous (reference) 2-level line [361] Byte currLine [], // current (coding) 2-level line [362] int lineLen, // line length [363] BITSTREAMs // Output (compressed) bitstream [364] ) [365] int prevEdge = 0 // Current edge offset from previous line [366] int currEdge = 0 // Current edge offset on current line [367] int codedEdge = currEdge // most recently coded (output) edge [368] int prevColor = 0 // current color from previous line (0 = white) [369] int currColor = 0 // Current color on current line [370] int prevRun // The current run on the previous line [371] int currRun // Current run on current line [372] bool bUpdatePrevEdge = true // Force initial edge update [373] bool bUpdateCurrEdge = true // Force first edge update [374] while (codedEdge <lineLen) [375] // Update the current edge from the previous line [376] if (bUpdatePrevEdge) [377] if (prevEdge <lineLen) [378] prevRun = GetRun (prevLine, prevEdge, lineLen, prevColor) [379] else [380] prevRun = 0 [381] prevEdge + = prevRun [382] prevColor =! prevColor [383] bUpdatePrevEdge = false [384] // Update the current edge on the current line [385] if (bUpdateCurrEdge) [386] if (currEdge <lineLen) [387] currRun = GetRun (currLine, currEdge, lineLen, currColor) [388] else [389] currRun = 0 [390] currEdge + = currRun [391] currColor =! currColor [392] bUpdateCurrEdge = false [393] // Output deltas whenever possible, ie [394] // If the edge detects a match and the delta is small enough [395] if (prevColor = currColor) [396] delta = currEdge - prevEdge [397] if (abs (delta) <= MAX_DELTA) [398] PutCode (s, EDGE_DELTA0 + delta) [399] codedEdge = currEdge [400] bUpdatePrevEdge = true [401] bUpdateCurrEdge = true [402] continue [403] // erase unmatched edges from previous line [404] if (prevEdge <= currEdge) [405] PutCode (s, KILL_EDGE) [406] bUpdatePrevEdge = true [407] // Create an unmatched edge on the current line [408] if (currEdge <= prevEdge) [409] PutCode (s, CREATE_EDGE) [410] if (currRun <128) [411] PutCode (s, CREATE_NEAR_EDGE) [412] PutBits (currRun, SHORT_RUN_PRECISION) [413] else [414] PutCode (s, CREATE_FAR_EDGE) [415] PutBits (currRun, LONG_RUN_PRECISION) [416] codedEdge = currEdge [417] bUpdateCurrEdge = true [418] Note that the algorithm does not distinguish between the actual edge continuity between lines and can actually match the "wrong" edge between the two lines. Fortunately, there is nothing to say about compression formats because it is difficult to decode the compression format correctly and "wrong" matches have a detrimental effect on the compression ratio. [419] A corresponding decompression algorithm is given below for completeness. It forms the core of the EDRL expander unit in the printer controller chip (Section 7). [420] EDRL_DecompressLine [421] ( [422] BITSTREAM s, Input // (compressed) bitstream [423] Byte prevLine [], // Previous (reference) 2-level line [424] Byte currLine [], // current (coded) 2-level line [425] int lineLen // line length [426] ) [427] int prevEdge = 0 // Current edge offset from previous line [428] int currEdge = 0 // Current edge offset on current line [429] int prevColor = 0 // current color from previous line (0 = white) [430] int currColor = 0 // Current color on current line [431] while (currEdge <lineLen) [432] code = GetCode (s) [433] switch (code) [434] case EDGE_DELTA_MINUS2: [435] case EDGE_DELTA_MINUS1: [436] case EDGE_DELTA_0: [437] case EDGE_DELTA_PLUS1: [438] case EDGE_DELTA_PLUS2: [439] // Create an edge from the delta [440] int delta = code - EDGE_DELTA_0 [441] int run = prevEdge + delta - currEdge [442] FillBitRun (currLine, currEdge, currColor, run) [443] currEdge + = run [444] currColor =! currColor [445] prevEdge + = GetRun (prevLine, prevEdge, lineLen, prevColor) [446] prevColor =! prevColor [447] case KILL_EDGE: [448] // Discard unused reference edges [449] prevEdge + = GetRun (prevLine, prevEdge, lineLen, prevColor) [450] prevColor =! prevColor [451] case CREATE_NEAR_EDGE: [452] case CREATE_FAR_EDGE: [453] // Create an edge explicitly [454] int run [455] if (code = = CREATE_NEAR_EDGE) [456] run = GetBits (s, SHORT_RUN_PRECISION) [457] else [458] run = GetBits (s, LONG_RUN_PRECISION) [459] FillBitRun (currLine, currEdge, currColor, run) [460] currColor =! currColor [461] currEdge + = run [462] 5.2.3.3 EDRL Compression Performance [463] Table 5 shows the compression performance of EDRL and Group 4 on the CCITT test document used to select the Group 4 algorithm. Each document represents a single page scanned at 400 dpi. The excellent performance of Group 4 is due to its entropy-coded run length tuned to the 400 dpi feature. [464] (Table 5) [465] Group 4 and EDRL compression performance on standard CCITT documents at 400 dpi CCITT Document NumberGroup 4 compression ratioEDRL compression ratio One29.121.6 249.941.3 317.914.1 47.35.5 515.812.4 631.025.5 77.45.3 826.723.4 [466] Typically, the magazine text is typed in a font with a serif at 10 point size (such as Times). At this size, a typical magazine page would hold about 7,000 characters, but A4 / letter pages would hold up to 14,000 characters. At point sizes smaller than 5, the text is hardly typed. At 800 dpi, text can not be rendered meaningfully at point sizes lower than 2 using standard fonts. Table 6 illustrates the readability of the various point sizes. [467] (Table 6) [468] Text at different point sizes Point sizeSample text (in Times) 8The quick brown fox jumps over the lazy dog. 9The quick brown fox jumps over the lazy dog. 10The quick brown fox jumps over the lazy dog. [469] Table 7 shows the group 4 and EDRL compression performance on pages of text of varying point sizes rendered at 800 dpi. Note that EDRL achieves the required compression ratio of 2.5 for the entire page of text types in a point size of 3. The distribution of characters on test pages is based on British-language statistics [12]. [470] (Table 7) [471] Group 4 and EDRL compression performance on text at 800 dpi Point sizeCharacter / A4 pageGroup 4 compression ratioEDRL compression ratio 2340,0002.31.7 3170,0003.22.5 486,0004.73.8 559,0005.54.9 641,0006.56.1 728,0007.77.4 821,0009.19.0 917,00010.210.4 1014,00010.911.3 1112,00011.512.4 128,90013.514.8 138,20013.515.0 147,00014.616.6 155,80016.118.5 203,40019.823.9 [472] For 9 or larger point sizes, the EDRL will perform slightly better than Group 4 because the run length code in Group 4 is tuned to 400 dpi. [473] This compression result confirms the experience that entropy-encoded run length contributes less to compression than 2D encoding unless the data is vertically incompletely correlated as in the case of very small characters. [474] 5.2.4 Continuous tone layer compression [475] 5.2.4.1 JPEG compression [476] The JPEG compression algorithm [6] compresses the continuous tone image lossily at the specified quality level. It introduces fine image degradation at a compression ratio of 5: 1 or less and negligible image degradation at a compression ratio of 10: 1 or less [16]. [477] Typically, JPEG initially converts the image into a color space that separates the luminance and chrominance into separate color channels. This causes the chrominance channel to be subsampled without appreciable loss owing to the relatively greater sensitivity of the human visible system to the chrominance than to the chrominance. After this first step, each color channel is separately compressed. [478] The image is divided into 8x8 pixelblocks. Each block is then transformed into the frequency domain through a discrete cosine transform (DCT). This transformation has the effect of focusing the image energy at a relatively lower-frequency coefficient which causes the higher-frequency coefficients to be quantized as they are. Such quantization is a major source of compression in JPEG. Further compression is achieved by ordering the coefficients by a frequency to maximize the likelihood of adjacent zero coefficients and then by run length encoding the zero runs. Finally, the run length and non-zero frequency coefficients are entropy coded. Decompression is the inverse process of compression. [479] 5.2.4.2 CMYK continuous tone JPEG compression format [480] The CMYK contone layer is compressed into an interleaved color JPEG byte stream. Although interleaving is required for space-efficient decompression in the printer, the decoder can be limited to two sets of Huffman tables (that is, one per color channel) rather than four [16]. If luminance and chrominance are separated, then the luminance channel may share one set of tables and the chrominance channel may share another set. [481] If luminance / chrominance separation is deemed necessary, then for the purposes of color difference subsampling or table sharing, then CMY is converted to YCrCb and Cr and Cb are appropriately subsampled at the time. K is treated as a luminance channel and is not subsampled. [482] The JPEG byte stream is complete and complete. It contains all the data required for decompression, including the quantization and Huffman tables. [483] 6 Memjet printhead [484] The 8-inch MEMSJET printhead consists of two standard 4-inch MEMSJET printheads juxtaposed together. [485] Two 4-inch printheads are wired together in a specific manner for use in an eye print. Since the wiring requires knowledge of the 4-inch printhead, a schematic of the 4-inch printhead is provided herein. [486] 6.1 Synthesis of 4-inch printheads [487] Each 4-inch printhead is composed of 8 segments, each segment being 1/2 inch in length. Each of the segments prints two-level cyan, magenta, yellow, and black dots on different parts of the page to produce a final image. [488] Because the printhead prints the dots at 1600 dpi, each dot is approximately 22.5 microns in diameter and spaced apart by 15.875 mtons. Thus, each half-inch segment prints 800 dots, and the eight segments correspond to the positions shown in Table 8. [489] (Table 8) [490] The final image dot addressed by each segment SegmentPrinthead 1Printhead 2 First dotThe last dotFirst dotThe last dot 007996,4007,199 One8001,5997,2007,999 21,6002,3998,0008,799 32,4003,1998,8009,599 43,2003,9999,60010,399 54,0004,79910,40011,199 64,8005,59911,20011,999 75,6006,39912,00012,799 [491] Although each segment yields 800 dots of the final image, each dot is represented by a combination of two-level cyan, magenta, yellow, and black inks. Since printing is two-level, the input image must be error-spread or dithered for best results. [492] Each segment then contains 3,200 nozzles: 800 each of cyan, magenta, yellow and black. The 4-inch printhead includes eight such segments for a total of 25,600 nozzles. [493] 6.1.1 Grouping of nozzles in a segment [494] Nozzles in a single segment are grouped for reasons of physical stability as well as minimization of power consumption during printing. In terms of physical stability, a total of 10 nozzles share the same reservoir. In terms of power consumption, grouping is done to enable low speed and high speed printing modes. [495] The printhead supports two print speeds to allow speed / power consumption to be exchanged in different product configurations. [496] In the slow print mode, 128 nozzles are fired simultaneously from each 4-inch printhead. The firing nozzles must be as far as possible, so that 16 nozzles are fired from each segment. To fire all 25,600 nozzles, 200 different sets of 128 nozzles must be fired. [497] In the high speed printing mode, 256 nozzles are fired simultaneously from each 4-inch printhead. The firing nozzles must be as far away as possible, so that 32 nozzles are fired from each segment. In order to fire all 25,600 nozzles, 100 different sets of 256 nozzles must be fired. [498] The power consumption in the low speed mode is half of the power consumption in the high speed mode. However, note that the energy consumed to print the page is the same in both cases. [499] 6.1.1.1 Ten nozzles make a paddle. [500] The single pad 100 is composed of 10 nozzles 101 sharing a common ink reservoir. Five nozzles are in one row, and five are in another row. Each nozzle produces a diameter of 22.5 micron dots spaced at regular intervals on a 15.875 micron lattice. Figure 10 shows the arrangement of a single paddle 100, wherein the nozzles 101 are numbered in the order in which they should be fired. [501] The nozzles are fired in this order, but the relationship of the nozzles and the physical arrangement of the dots on the printed page are different. The nozzles from one row represent even dots from one line on the page and the nozzles on the other row represent odd dots from adjacent lines on the page. Figure 11 shows the same paddle 100 with nozzles numbered according to the order in which the nozzles are to be loaded. [502] Thus, the nozzles in the paddle are logically separated by a width of one dot. The exact distance between the nozzles will depend on the nature of the membrane jetting mechanism. The printhead is designed with staggered nozzles designed to match the flow of paper. [503] 6.1.1.2 One Fad of each color makes a chroma paddle. [504] One color of each color, cyan 121, magenta 122, yellow 123 and black 124, is grouped into chroma pads 125. Chroma pads represent different color components in the same horizontal set of 10 dots on different lines. The exact distance between different color pads depends on the membrane operating parameters and can vary from one membrane design to another. The distance is considered to be a constant number of dot-widths and therefore should be considered when printing: the dot printed by the cyan nozzle will be for a different line than that printed by magenta, yellow or black nozzles. The printing algorithm should allow for variable distances up to about 8 dots-wide between colors. Figure 12 illustrates a single chroma paddle. [505] 6.1.1.3 Five chroma pads make up a group of fads. [506] The five chroma pads 125 are knitted into a single pad group 126. Because each chroma pad contains 40 nozzles, each group of fads contains 200 nozzles (50 cyan, 50 magenta, 50 yellow, and 50 black nozzles). The arrangement is shown in Fig. 13, and the chroma pads are numbered 0-4. Note that the distance between adjacent chroma pads is exaggerated for clarity. [507] 6.1.1.4 Two groups of fads create a phase group. [508] The two groups of fads 126 are organized into a single phase group 127. A phase group is so named because its group of nozzles in a phase group is firing simultaneously during a constant firing phase (this is described in more detail below). Formation of a phase group from two groups of fades is solely for the purpose of low speed and high speed printing through two groups of fades. [509] During low speed printing, only one of the two groups of pads is set at a constant firing pulse, so that only one of the two groups of fires fires the nozzle. During high speed printing, two paddle groups are all set to nibble lines, so that two groups of paddles fire the nozzles. As a result, high-speed printing fires twice as many nozzles at a time, so low-speed printing takes twice as much time as high-speed printing. [510] Figure 14 illustrates the synthesis of phase groups. The distances between adjacent groups of fades are exaggerated for clarity. [511] 6.1.1.5 Two phase groups create fire groups [512] Two phase groups 127 (Phase Group A and Phase Group B) are organized into a single Fire Group 128, and four Fire Groups are within each Segment 129. The fire group is so named because it fires the same nozzle all at the same time. Two enable lines, A enable and B enable independently allow firing of phase group A nozzles and phase group B nozzles as separate firing phases. The arrangement is shown in Fig. The distance between adjacent groupings is exaggerated for clarity. [513] 6.1.1.6 Nozzle Grouping Summary [514] Table 9 is a summary of nozzle grouping in the printhead. [515] (Table 9) [516] Nozzle grouping for a single 4-inch printhead Name of groupingsynthesisCloning feeNozzle count NozzleBase unit1: 1One FadNozzles per Fee10: 110 ChrompardFly per CMYK Chroma Pad4: 140 Fad GroupChroma Pads per Fad Group5: 1200 Phase GroupGroup of Phads per Phase Group2: 1400 Fire GroupPhase group per fire group2: 1800 SegmentFire Group per Segment4: 13,200 4-inch printheadSegment per 4-inch printhead8: 125,600 [517] The 8-inch printhead consists of two 4-inch printheads for a total of 51,200 nozzles. [518] 6.1.2 Load and Print Cycles [519] A single 4-inch printhead contains a total of 25,600 nozzles. The printing cycle includes firing up to all of these nozzles, depending on the information to be printed. The load cycle includes the loading up of the printhead as information to be printed during a subsequent print cycle. [520] Each nozzle has a nibble bit associated with it that determines whether or not the nozzle fires during the printing cycle. Nozzle bits (one per nozzle) are loaded through a set of shift registers. [521] Logically there are four shift registers per segment (one per color), each of which is 800 deep. When the bits shift into the shift register for a given color, they are directed onto the lower and upper nozzles on an alternating pulse. Internally, each 800-deep shift register consists of two 400-deep shift registers (one for the upper nozzle and one for the lower nozzle). The alternate bit is shifted into the alternating internal register. There is, however, a single 800 deep shift register, as far as the external interface is concerned. [522] When all the shift registers are fully loaded (800 load pulses), all the bits are sent in parallel to the appropriate nozzles. This is equivalent to a single parallel transmission of 25,600 bits. Immediately after the transmission occurs, the printing cycle can begin. A print cycle and a load cycle can occur at the same time as long as all the nozzles have a parallel load of the slave bits occurring at the end of the print cycle. [523] 6.1.2.1 Load cycle [524] The load cycle is related to loading the shift register of the printhead in which the nozzles of the next printing cycle have a spare bit. [525] Each segment has four inputs that are directly related to the cyan, magenta, yellow, and black shift registers. These inputs are called C data, M data, Y data in, and K data in. Because there are eight segments, there are a total of 32 color input lines per 4-inch printhead. A single pulse on the SR clock line (shared between all eight segments) transfers 32 bits into the appropriate shift register. Alternating pulses transmit bits to the lower and upper nozzles, respectively. Because there are 25,600 nozzles, a total of 800 pulses are required for transmission. Once all 25,600 bits have been transmitted, a single pulse on the shared P transfer line causes a parallel transfer of data from the shift register to the enable bit of the appropriate nozzle. [526] Parallel transmission via pulses on the P transfer must occur after the printing cycle is complete. Otherwise the nozzles for the line to be printed will have the sable bits inaccurate. [527] Since all eight segments are loaded as a single SR clock pulse, any print process must produce data in the correct sequence for the printhead. As an example, the first SR clock pulse will transmit CMYK bits for dots 0, 800, 1600, 2400, 3200, 4000, 4800, and 5600 in the next print cycle. The second SR clock pulse will transmit CMYK bits for dots 1, 801, 1601, 2401, 3201, 4001, 4801, and 5601 of the next print cycle, and a P transfer pulse may be given. [528] It is important to note that the odd and even CMYK outputs are printed during the same print cycle, but do not appear on the same physical output line. The physical separation of the odd and even nozzles in the printhead, as well as the separation between nozzles of different colors, ensures that they produce dots on different lines of the page. This relative difference must be taken into account when loading data into the printhead. The actual difference in line depends on the characteristics of the inkjet mechanism used in the printhead. The difference can be defined by the variables D 1 and D 2 , where D 1 is the distance between the nozzles of the other colors and D 2 is the distance between the nozzles of the same color. Table 10 shows the dots transmitted on segment n of the printhead on the first four pulses. [529] (Table 10) [530] Order of dots sent to 4-inch printhead pulsedotBlack lineYellow lineMagenta lineCyanide 1234800S a 800S + 1800S + 2800S + 3+ D 2 + D c NN NN 2 N + D 1 b N + D 1 + D 2 N + D 1 N + D 1 + D 2 N + 2D 1 N + 2D 1 + D 2 N + 2D 1 N + 2D 1 + D 2 N + 3D 1 N + 3D 1 + D 2 N + 3D 1 N + 3D 1 + D 2 a S = segment number (0-7) b D 1 = number of lines between one color and the next (likely = 4-8) c D 2 = line between two rows of nozzles of the same color Number (likely = 1) [531] This is the case for all 800 pulses. [532] The data can be clocked into the printhead at a maximum rate of 20 MHz, which will load the entire data for the next line in 40 μs. [533] 6.1.2.2. Print Cycle [534] The 4-inch printhead includes 25,600 nozzles. Firing them all at once consumes too much power and will be problematic in terms of ink refill and nozzle interference. As a result, two firing modes (slow print mode and fast print mode) are defined: [535] In the slow print mode, there are 200 phases, each phase firing 128 nozzles. This is equivalent to 16 nozzles per segment or 4 nozzles per fire group. [536] In the high speed printing mode, there are 100 phases, each phase firing 256 nozzles. This is equivalent to 32 nozzles per segment or 8 nozzles per fire group. [537] The nozzle to be fired in a constant firing pulse [538] · 3-bit Chroma Pad Select (select one of the five chroma pads from the Fire Group) [539] · 4-bit nozzle select (choose one of 10 nozzles from the paddle) [540] A 2-bit group of pulses is determined by a slave line (selecting a group of 0, 1, or 2 fades to fire). [541] When a group of pads is set to one of the navel lines, only the four nozzles of the designated group of pads will fire, as determined by ChromaFade Select and Nozzle Select. When two groups of pads are all set to nibble, two groups of pads will fire their nozzles. For the low speed mode, two firing pulses are required, and the number of nodes in the Fad group is 10 and 01, respectively. For the high-speed mode, only one firing pulse is required, and the group of fades is at 11 = 11. [542] The duration of the firing pulse is given by the A enable and B enable lines firing the phase group A and phase group B nozzles from all fire groups, respectively. Typical duration of the firing pulse is 1.3 - 1.8 μs. The duration of the pulse depends on the viscosity of the ink (depending on temperature and ink characteristics) and the amount of power available to the printhead. See Section 6.1.3 for a detailed description of feedback from the printhead to compensate for temperature changes. [543] The A enable and B enable are separate lines so that the firing pulse can overlap. Thus, the 200 phases of the low speed printing cycle consist of 100 A phases and 100 B phases, effectively providing 100 sets of phase A and phase B. Similarly, the 100 phases of a high speed printing cycle consist of 50 A phases and 50 B phases, effectively providing 50 phases of phase A and phase B. [544] Figure 16 shows the A enable 130 and B enable 131 lines during a typical printing cycle. In high-speed printing, there are 50 cycles of 2 mu s each, whereas in low-speed printing, there are 100 cycles of 2 mu s each. As shown in the figure, slight variations in the minimum and maximum half cycle times for nominal are acceptable. [545] For the fast print mode, the firing order is: [546] • Chroma Pad Select 0, Nozzle Select 0, Pad Group Enable 11 (Phases A and B) [547] • Chroma Pad Select 1, Nozzle Select 0, Pad Group Enable 11 (Phases A and B) [548] • Chroma Pad Select 2, Nozzle Select 0, Pad Group Enable 11 (Phases A and B) [549] , The chroma Pas select 3, the nozzle select 0, Pas group navel 11 (Phases A and B) [550] • Chroma Pad Select 4, Nozzle Select 0, Pad Group Enable 11 (Phase A and B) [551] • Chroma Pad Select 0, Nozzle Select 1, Pad Group Enable 11 (Phase A and B) [552] · ... [553] • Chroma Pad Select 3, Nozzle Select 9, Pad Group Enable 11 (Phase A and B) [554] • Chroma Pad Select 4, Nozzle Select 9, and Pad Group are Desable 11 (Phases A and B). [555] For the slow print mode, the firing order is similar. For each phase of the high speed mode in which the group of fades is 11, the group of fades is replaced in two phases of nable = 01 and 10 as follows: [556] • Chroma Pad Select 0, Nozzle Select 0, Pad Group Enable 01 (Phase A and B) [557] • Chroma Pad Select 0, Nozzle Select 0, Pad Group Enable 10 (Phase A and B) [558] • Chroma Pad Select 1, Nozzle Select 0, Fad Group Enable 121 (Phases A and B) [559] • Chroma Pad Select 1, Nozzle Select 0, Pad Group Nable 10 (Phases A and B) [560] · ... [561] • Chroma Pad Select 3, Nozzle Select 9, Pad Group Enable (Phase A and B) [562] • Chroma Pad Select 3, Nozzle Select 9, Pad Group Nable 10 (Phases A and B) [563] • Chroma Pad Select 4, Nozzle Select 9, Fad Group can be disabled 01 (Phases A and B) [564] • Chroma Pad Select 4, Nozzle Select 9, Pad Group Nable 10 (Phases A and B) [565] When the nozzle is firing, it takes about 100 μs to refill. The nozzle can not be fired until this refill time has elapsed. This limits the fastest printing speed to 100μs per line. In the fast print mode, the time to print the line is 100 microseconds, so the time between firing the nozzles from one line to the next matches the refill time. The slow print mode is slower than this, and is also acceptable. [566] The firing of the nozzles also causes acoustic perturbations within a limited time in the common ink reservoir of the pads of the nozzles. The perturbation can interfere with the firing of another nozzle in the same pad. As a result, the firing of the nozzles in the pads must be offset from each other as far as possible. Thus, the present invention fires four nozzles (one nozzle per color) from the chroma paddle and then moves onto the next chroma pad in the group of pads. [567] In slow print mode, the group of fades is fired separately. Thus, five chroma pads in two groups of pads must fire all before the first chroma pads re-fire, a total of 10 × 2 μ cycles. As a result, each pad is firing once every 20 μs. [568] In fast print mode, the group of fades is fired together. Thus, the five chroma pads in a single padded group must fire all before the first chroma paddle fires again, a total of 5 x 2μ cycles. As a result, each pad is firing once every 10 μs. [569] Since the ink channel is 300 microns long and the sound velocity in ink is about 1500 m / s, the resonance frequency of the ink channel is 2.5 MHz. Thus, the slow mode allows 50 resonant cycles and the fast mode allows 25 resonant cycles for acoustic pulses to attenuate. As a result, any acoustic interference in the two cases is minimal. [570] 6.1.3 Feedback from the printhead [571] The printhead produces several lines of feedback (accumulated from eight segments). The feedback line is used to adjust the timing of the firing pulse. Each segment produces the same feedback, but feedback from all segments shares the same 3-state bus line. As a result, only one segment at a time can provide feedback. [572] The pulses on the sense segment select line that are ANDed with cyan data select which segment will provide feedback. The feedback sense line will come from the selected segment until the next sense segment select pulse. The feedback sense lines are: [573] · T-Sense tells the controller how hot the print head is. This allows the controller to adjust the timing of the firing pulse, since the temperature affects the viscosity of the ink. [574] · V-sense tells the controller how much voltage is available for the actuator. This allows the controller to compensate for the flat battery or high voltage source by adjusting the pulse width. [575] · R sense informs the controller of the resistivity (ohms per square) of the actuator heater. This allows the controller to adjust the pulse width to conserve constant energy regardless of heater resistivity. [576] • W sense informs the controller of the width of the critical section of the heater, which can vary by ± 5% due to lithography and etching variations. This allows the controller to adjust the pulse width accordingly. [577] 6.1.4 Preheat cycle [578] The printing process has a strong tendency to stay at the equilibrium temperature. To ensure that the first section of the printed photosgraph has a consistent dot size, the equilibrium temperature must be met before any dots can be printed. This is accomplished through a warm-up cycle. [579] The preheat cycle includes a single load cycle to all nozzles with one (i. E., All nozzles set to firing), and many short firing pulses to each nozzle. The duration of the pulse is insufficient to fire the droplet, but it should be sufficient to heat the ink. As a whole, about 200 pulses are required for each nozzle and cycling through the same sequence as a standard print cycle. [580] Feedback is provided during the preheat mode by the T sense and continues until the equilibrium temperature is reached (about 30 ° C above room temperature). The duration of the preheat mode is about 50 milliseconds and depends on the ink composition. [581] Preheating is performed before each print job. This does not affect performance when it is done while data is being sent to the printer. [582] 6.1.5 Cleaning cycle [583] In order to reduce the possibility that the nozzles are clogged, a cleaning cycle may be undertaken before each printing operation. Each nozzle is fired a number of times into the absorbent sponge. [584] The cleaning cycle includes a single load cycle to all nozzles with one (i. E., Set all nozzles to firing), and many firing pulses to each nozzle. The nozzles are cleaned through the same nozzle firing sequence as a standard printing cycle. The number of times each nozzle fires depends on the ink composition and the time the printer has been idle. Like preheating, the cleaning cycle has no effect on printer performance. [585] 6.1.6 Printhead Interface Overview [586] The single 4-inch printhead has the connections shown in Table 11. [587] (Table 11) [588] 4-inch printhead connection name#pinExplanation ChromaFade Select3Choose which chroma pads to fire (0-4) Nozzle Select4Select which nozzle fires from the pad (0-9) Fad Group Nable2Firing a group of fads (Choice: 01, 10, 11) A enableOneFiring pulses to phase group A B enableOneFiring pulses for phase group B C data [0-7]8Cyan input with cyan shift register in segment 0-7 M data [0-7]8Magenta input with magenta shift register for segment 0-7 Y data [0-7]8Yellow input with yellow shift register in segment 0-7 K data [0-7]8Black input with black shift register in segment 0-7 SR ClockOneThe pulse on the SR clock (shift register clock) is the current value from [0-7] which is C data, [0-7] which is M data, [0-7] which is Y data and [0-7] which is K data Into the 32 shift register. P transferOneFrom the shift register, the internal nozzles send parallel data of the data to the enable bit (one per nozzle) Sense segment selectOneA sense line is selected for the segment n, which is a pulse on the sense segment select AND ANDed with the data on the data C [n]. T SenseOneTemperature sensing V SenseOneVoltage sensing R senseOneResistivity detection W SenseOneWidth detection Logic GNDOneLogic Ground Logic PWROneLogic Power V-Bus barActuator ground V +Actuator power gun52 [589] Inside the 4-inch printhead, each segment has a connection to a bond pad as shown in Table 12. [590] (Table 12) [591] 4 inch printhead internal segment connection name#pinExplanation ChromaFade Select3Choose which chroma pads to fire (0-4) Nozzle Select4Select which nozzle fires from the pad (0-9) Fad Group Nable2Firing a group of fads (Choice: 01, 10, 11) A enableOneFiring pulses to the Fade Group A B enableOneFiring pulses to the Fade Group B C data inOneCyan input with cyan shift register M dataOneEnter magenta as magenta shift register Y data inOneInput yellow as yellow shift register K data inOneBlack input with black shift register SR ClockOneAnd loads the current value from the Y data in and K data in which the pulse on the SR clock (shift register clock) is C data, into M shift register. P transferOneFrom the shift register, the internal nozzles send parallel data of the data to the enable bit (one per nozzle) Sense segment selectOneSelect the sense line for the pulse gain segment on the sense segment select that is ANDed with the data for the C data rise. T SenseOneTemperature sensing V SenseOneVoltage sensing R senseOneResistivity detection W SenseOneWidth detection Logic GNDOneLogic Ground Logic PWROneLogic Power V-21Actuator ground V +21Actuator power gun6666 x 8 segments = 528 for all segments [592] 6.2 8-inch Print Head Consideration [593] The 8-inch MEMSJET printhead is simply a two 4-inch printhead physically located together. The printheads are wired together and share many common connections so that the number of pins from the control chip is reduced and the two printheads can print at the same time. This is why many details need to be considered. [594] 6.2.1 Connection [595] Since firing of the nozzles from the two print heads occurs at the same time, the chroma pad select, nozzle select, A enable and B enable lines are shared. To load the printhead as data, 32 lines of C data, which is C data, Y data, Y data, are shared, and two different SR clock lines determine which of the two printheads is to be loaded . A single P transfer pulse is used to transfer the loaded data into the slave bits of the nozzles for the two printheads. Similarly, the T sense, V sense, R sense, and W sense lines are shared, and the two sense disturb lines distinguish between the two print heads. [596] Thus, the two 4-inch printheads share all the connections except for the SR clock and sense enable. These two connections are repeated once for each printhead. The actual connection portion is shown in Table 13. [ [597] (Table 13) [598] 8-inch printhead connection name#pinExplanation ChromaFade Select3Choose which chroma pads to fire (0-4) Nozzle Select4Select which nozzle fires from the pad (0-9) Fad Group Nable2Firing a group of fads (Choice: 01, 10, 11) A enableOneFiring pulses to the Fade Group A B enableOneFiring pulses to the Fade Group B C data [0-7]8Cyan input with cyan shift register in segment 0-7 M data [0-7]8Magenta input with magenta shift register for segment 0-7 Y data [0-7]8Yellow input with yellow shift register in segment 0-7 K data [0-7]8Black input with black shift register in segment 0-7 SR Clock 1OneThe pulse on the SR clock (shift register clock) is set to the current value from [0-7] which is C data, [0-7] which is M data, [0-7] which is Y data and [0-7] which is K data Into the 32-shift register for the 4-inch print head 1. SR Clock 2OneThe pulse on the SR clock (shift register clock) is set to the current value from [0-7] which is C data, [0-7] which is M data, [0-7] which is Y data and [0-7] which is K data Into the 32 shift register for the 4-inch print head 2. P transferOneFrom the shift register, the internal nozzles send parallel data of the data to the enable bit (one per nozzle) Sense Seg Select 1OneA pulse on the sense segment select line of the 4-inch print head 1 that is ANDed with data on the C data line [n] selects the sense line for segment n. Sense Seg Select 2OneThe pulse on the sense segment select line of the 4-inch printhead 2 that is ANDed with the data on the C data line [n] selects the sense line for segment n. T SenseOneTemperature sensing V SenseOneVoltage sensing R senseOneResistivity detection W SenseOneWidth detection Logic GNDOneLogic Ground Logic PWROneLogic Power V-Bus barActuator ground V +Actuator power gun54 [599] 6.2.2 timing [600] The combination of the two 4-inch printheads and the wiring of the appropriate connections allow the 8-inch wide image to print as fast as the 4-inch wide image. However, the data transmitted to the two printheads is twice as large before the next line can be printed. Depending on the desired speed at which the output image is printed, data must be generated and transmitted at a suitable rate to continue. [601] 6.2.2.1 Yes [602] As an example, consider the timing of printing an 8 " by 12 " page in two seconds. In order to print this page in 2 seconds, the 8-inch printhead must print 19,200 lines (12 x 1600). Considering 20,000 lines in 2 seconds after the remainder, the line time of 100 μs is calculated. A single print cycle and a single load cycle must all be completed within this time. In addition, the physical process external to the printhead must move the paper in the appropriate amount. [603] From a printing perspective, the fast printing mode allows the 4-inch printhead to print the entire line in 100 microseconds. Thus, the 4-inch printheads must both run in the high speed printing mode to print simultaneously. Thus firing 512 nozzles per firing pulse, thereby enabling printing of 8-inch lines within a specified time. [604] The 800 SR clock pulses (each clock pulse transmitting 32 bits) to two 4-inch printheads must also occur within 100 μs line time. If two printheads are loaded simultaneously (64 data lines), the length of the SR clock pulse can not exceed 100 μs / 800 = 125 nanoseconds, indicating that the printhead should be clocked at 8 MHz. If two printheads are loaded one at a time (32 shared data lines), the length of the SR clock pulse can not exceed 100 μs / 1600 = 62.5 nanoseconds. Therefore, the printhead must be clocked at 16MHz. In both cases, the average time to calculate each bit value (for each of 51,200 nozzles) should not exceed 100 μs / 51,200 = 2 nanoseconds. This requires the dot generator to run at one of the following speeds: [605] · 500 MHz generating 1 bit (dot) per cycle [606] · 250 MHz generating 2 bits (dots) per cycle [607] · 125 MHz generating 4 bits (dots) per cycle [608] 7 Printer controller [609] 7.1 Printer controller architecture [610] The printer controller is composed of an i-print central processor (ICP) chip 83, a 64 MBit RDRAM 82, and a master QA chip 85, as shown in FIG. [611] The ICP 83 includes a general-purpose processor 139 and a set of object-specific functional units controlled by the processor via a processor bus, as shown in FIG. Only three functional units-EDRL extender 140, half-toner / synthesizer 141, and printhead interface 142, which controls the membrane printhead, are non-standard. [612] The software running on the processor coordinates the various functional units to receive, expand and print the page. This is described in the next section. [613] The various functional units of the ICP are described in the following sections. [614] 7.2 Expanding and printing pages [615] The page expansion and printing proceeds as follows. The page description is received from the host via the USB interface 146 and stored in main memory. 6 MB of main memory is dedicated to page storage. This can keep two pages each not exceeding 3MB or one page up to 6MB. If the host generates a page that does not exceed 3 MB, then the printer operates in streaming mode - that is, the printer prints one page while receiving the next page. If the host generates a page with more than 3 MB, then the printer operates in single-page mode - that is, the printer receives and prints each page before receiving the next page. If the host generates a page that exceeds 6MB, then it is rejected by the printer. In fact, the printer driver prevents this from happening. [616] The page consists of two parts - a two-level black layer, and a continuous tone layer. They are compressed in a separate format - the two-level black layer is the EDRL format, and the continuous tone layer is the JPEG format. The first step of page expansion consists of decompressing the two layers in parallel. The two-level layer is decompressed (16) by the EDRL expander unit (140) and the continuous tone layer is decompressed (14) by the JPEG decoder (143). [617] The second stage of page expansion consists of half tone (15) continuous tone CMYK data to two-level CMYK and then synthesize (17) a two-level black layer onto a two-level CMYK layer. Halftoning and synthesis are performed by the half-toner / [618] Finally, the synthesized two-level CMYK image is printed 18 through the printhead interface unit 142, which controls the membrane printhead. [619] Because the Memjet printhead prints at a high speed, the paper must travel through the printhead at a constant speed. If the paper stops because the data can not be supplied to the printhead fast enough, then visible printing irregularities will occur. It is therefore important to transmit 2-level CMYK data to the printhead at the required rate. [620] The fully expanded 1600 dpi 2-level CMYK page has a size of 114.3 MB. Since it is impractical to store extended pages in printer memory, each page expands in real time during printing. Thus, various stages of page expansion and printing are pipelined. The page extension and print data flow is described in Table 14. A total of 174 MB / s of traffic from / to main memory is satisfied within the capabilities of current technologies such as Rambus. [621] (Table 14) [622] Page Extension and Print Data Flow processinputInput windowPrintOutput windowInput ratioOutput Ratio Continuous tone reception--JPEG streamOne-1.5MB / s3.3Mp / s 2-level reception--EDRL streamOne-1.5MB / s30Mp / s Continuous tone decompressionJPEG stream-32-bit CMYK81.5MB / s3.3Mp / s13MB / s3.3Mp / s Two-level decompressionEDRL stream-1-bit KOne1.5MB / s30Mp / s a 14MB / s120Mp / s Halftone32-bit CMYKOne- b -13MB / s3.3Mp / s c - synthesis1-bit KOne4-bit CMYKOne14MB / s120Mp / s57MB / s120Mp / s print4-bit CMYK24, 1 d --57MB / s120Mp / s-87MB / s87MB / s 174MB / sa 800 dpi => 1600 dpi ( 2 × 2 extension) b halftone is synthesized and combined, so it does not exist any external data flow therebetween c 267 ppi => 1600 dpi ( 6 × 6 extended) d window of 24 lines , But only one line is advanced [623] Each step communicates with the next step through the shared FIFO in main memory. Each FIFO is organized into lines and the minimum size (at the line) of each FIFO is designed to accommodate the output window of the producer (at the line) and the input window of the consumer (at the line). The step-to-main memory buffer is described in Table 15. Using 6.3 MB of total buffer space frees 1.7 MB for program code and scratch memory (from 8 MB available). [624] (Table 15) [625] Page expansion and printing Main memory buffer bufferOrganization and line sizeNumber of linesBuffer size The compressed page buffer 146,Byte stream (one or two pages)-6MB Continuous tone CMYK buffer 14732-bit interleaved CMYK (267 ppi x 8 " x 32 = 8.3 KB)8 × 2 = 16134KB The two-level K buffer 148,1-bit K (800 dpi x 8 " x 1 = 1.5 KB)1 x 2 = 23KB The two-level CMYK buffer 149,4-bit planar odd / even CMYK (1600 dpi × 8 "× 4 = 6.3KB)24 + 1 = 25156KB6.3MB [626] The entire data flow including the FIFO is illustrated in FIG. [627] The continuous tone page decompression is performed by the JPEG decoder 143. The two-level page decompression is performed by the EDRL extender 140. Halftoning and synthesis are performed by the half-toner / These functional units are described in the following section. [628] 7.2.1 DMA approach [629] Each functional unit includes one or more on-chip input and / or output FIFOs. Each FIFO is assigned to a separate channel in the multi-channel DMA controller 144. [ The DMA controller 144 processes the single-address rather than the double-addressed transmission, thus providing a separate request / acknowledgment interface for each channel. [630] Each functional unit is silently disabled whenever the input FIFO is exhausted or the output FIFO is filled. [631] Processor 139 programs each DMA transfer. The DMA controller 144 generates an address for each word of the transfer on request from the functional unit connected to the channel. The functional unit latches the word on or off the data bus 145 when the request is acknowledged by the DMA controller 144. The DMA controller 144 interrupts the processor 139 when the transfer is complete, thus causing the processor 139 to program another transfer on the same channel in a timely manner. [632] In general, the processor 139 will program another transfer on the channel as soon as the corresponding main memory FIFO is available (i.e., not empty for read and not full for write). [633] The granularity of the channel servicing implemented in the DMA controller 144 is somewhat dependent on the latency of the main memory. [634] 7.2.2 EDRL expander [635] The EDRL expander unit (EEU) 140 shown in Fig. 19 decompresses the EDRL-compressed 2-level image. [636] The input to the EEU is the EDRL bitstream 150. [ The output from the EEU is a set 151 of 2-level image lines scaled horizontally to 1600 dpi from the resolution of a 2-level image extended by an integer conversion factor. [637] Immediately after starting, the EEU proceeds until it detects an end-of-page code in the EDRL bitstream or until it is explicitly stopped through its control register. [638] The EEU relies on explicit page widths to decode the bitstream. It must be written to the page width register 152 before starting the EEU. [639] The scaling of the extended 2-level image depends on the explicit conversion factor. This should be recorded in the conversion count register 153 before starting the EEU. [640] (Table 16) [641] EDRL Expander Control and Configuration Register registerwidthExplanation startOneStart EEU stopOneStop EEU Page width13Page width used during decoding to detect end of line Conversion factor4The conversion factor used during scaling of the expanded image. [642] The EDRL compression format is described in Section 5.2.3. It represents a two-level image in terms of its edge. Each edge in each line is coded with respect to the edge of the previous line or with respect to the previous edge of the same line. Whatever it is coded, eventually each edge is decoded to that distance from the previous edge on the same line. This distance, or run length, is then decoded into a zero bit or one bit string representing the corresponding part of the image. The decompression algorithm is also defined in section 5.2.3.2. [643] The EEU consists of a bit stream decoder 154, a state machine 155, edge computation logic 156, two run-length decoders 157 and 158, and a run length encoder 159. [644] The bitstream decoder 154 decodes the entropy-coded codeword from the bitstream and passes it to the state machine 155. The state machine 155 returns the size of the codeword to the bitstream decoder 154, which causes the decoder 154 to advance to the next codeword. In the case of the generated edge code, the state machine 155 uses a bitstream decoder to derive the corresponding run length from the bitstream. The state machine controls the run length decoding / encoding and edge computation logic as defined in Table 18. < RTI ID = 0.0 > [645] The edge calculation logic is very simple. The current edge offsets in the previous (reference) and current (coding) lines are maintained in the reference edge register 160 and the edge register 161, respectively. The run length associated with the generated edge code is output directly to the run length decoder and added to the current edge. The delta code is translated into run length by appending the associated delta to the reference edge and subtracting the current edge. The generated run length is output to the run length decoder and is added to the current edge. The next run length is extracted from the run length encoder 159 and added to the reference edge 160. The erase edge code only causes the current reference edge to be skipped. The next run length is again pulled from the run length encoder and added to the reference edge. [646] Each time the edge computation logic 156 generates a run length representing an edge, it is passed to a run length decoder. While the run-length decoder decodes it, it generates a stop signal to the state machine. Since the run-length decoder 157 is slower than the edge computation logic, there are not many points in decoupling it. The expanded line is stored in the line buffer 162, which is large enough to hold the 8 " 800 dpi line (800 bytes). [647] The previously expanded line is also buffered (163). It acts as a reference for the decoding of the current line. The previous line is re-encoded as run-length on-demand. This is less expensive than buffering the decoded run length of the previous line because the worst case is one 13-bit run length (20 KB at 1600 dpi) for each pixel. While the run length encoder 159 encodes it, it generates a stop signal at the state machine. The run length encoder uses page width 152 to detect the end of the line. The (current) line buffer 162 and the previous line buffer 163 are managed as a single FIFO in order to simplify the run length encoder 159. [648] The run length decoder 158 decodes the output run length into a line buffer 164 that is large enough to hold the 8 " 1600 dpi line (1600 bytes). The run length passed to this output run length decoder is the conversion coefficient 153 ), So that this decoder produces 1600 dpi lines, which are output as number of conversion coefficients times through the output pixel FIFO 165. This achieves the vertical scaling required by simple line duplication. Simple smoothing methods based on template-matching can be very effective [10]. This can be achieved by using a multi-line buffer between the low resolution run-length decoder and the smooth scaling unit But will remove the high-resolution run-length decoder. [649] 7.2.2.1 EDRL stream decoder [650] The EDRL stream decoder 154 illustrated in FIG. 20 decodes entropy-coded EDRL codewords in the input bitstream. It uses a two-byte input buffer 167 viewed through a 16-bit barrel shifter 168 whose left (most significant) edge is always aligned from the bitstream to the codeword boundary. The decoder 169 connected to the barrel shifter 168 decodes the codeword according to Table 17 and supplies the corresponding code to the state machine 155. [651] (Table 17) [652] EDRL stream code word decoding table Input code word Bit pattern a Output codeOutput code bit pattern 1xxx xxxxΔ01 0000 0000 010x xxxxΔ + 10 1000 0000 011x xxxxΔ-10 0100 0000 0010 xxxxErase edge0 0010 0000 0011 xxxxNear Edge Creation0 0001 0000 0001 0xxxΔ + 20 0000 1000 0001 1xxxΔ-20 0000 0100 0000 1xxxDistant Edge Creation0 0000 0010 0000 01xxEnd of page (EOP)0 0000 0001a x = Ignore [653] The state machine 155 sequentially outputs the length of the code. This is added to the current codeword bit offset to yield the next codeword bit offset 170 (modulo-8). The bit offset in turn controls the barrel shifter 168. If the codeword bit offset wraps, then the carry bit controls the latching of the next batch from the input FIFO 166. This time byte 2 is latched to byte 1, and the FIFO output is latched to byte 2. It takes two cycles of length 8 to fill the input buffer. This is handled by starting the state at the state machine 155. [654] 7.2.2.2 EDRL expander state machine [655] The EDRL extender state machine 155 controls the edge calculation and run length extension logic in response to the code supplied by the EDRL stream decoder 154. It supplies the length of the current code word to the EDRL stream decoder and supplies the delta value associated with the current delta code to the edge calculation logic. The state machine also responds to start and stop control signals from the control registers and to the end of line (EOL) signal from the edge calculation logic. [656] The state machine also controls the multi-cycle fetch of the run length associated with the generated edge code. [657] (Table 18) [658] EDRL expander state machine Input signalInput CodeCurrent StatusNext stateCode lengthdeltameasure start-StoppedStarted8-- --Startedtissue8-- stop--Stopped0-Reset RL Decoder and FIFO EOL--EOL 10-Reset RL encoder; Reset RL decoder; Reset reference edge and edge --EOL 1tissue RL Encoder => Reference RL; Reference Edge + = Reference RL -D0tissuetissueOne0RL = Edge - Reference Edge + Delta; Edge + = RL; RL => RL Decoder; RL Encoder => Reference RL; Reference Edge + = Reference RL -Δ + 1tissuetissue2+1" -Δ-1tissuetissue3-One" -Δ + 2tissuetissue4+2" -Δ-2tissuetissue5-2" -Erase edgetissuetissue6-RL Encoder => Reference RL; Reference Edge + = Reference RL -Near Edge CreationtissueGenerate RL 77-Generate RL Reset -Distant Edge CreationtissueCreate RL High 68-- -EOPtissueStopped8-- --Create RL High 6Generate RL 76-Create RL High 6 Latch --Generate RL 7Edge creation7-Create RL 7 latch --Edge creationtissue0-RL = RL generation; edge + = RL; RL => RL encoder [659] 7.2.2.3 Run-length decoder [660] The run length decoder 157/158 shown in FIG. 21 expands the run length into one bit or a sequence of zero bits of the corresponding length in the output stream. The first run in the line is assumed to be white (color 0). Each run is assumed to be a color opposite to its predecessor. If the first run is actually black (color 1), then it must come after the zero-length white run. The run-length decoder internally stores the current color. [661] The run-length decoder attaches up to 8 bits per clock to the output stream. Typically, the run length is not an integer multiple of 8, so runs other than the first in the image are typically not byte-aligned. The run decoder maintains, in byte space register 180, the number of bits available in the currently constructed byte. This is initialized to 8 at the start of decoding and on the output of all bytes. [662] The decoder begins to output a run of bits as soon as the next run line latches a non-zero value into the run length register 181. [ The decoder effectively stops functioning when the run length register goes to zero. [663] Many bits of the current color are shifted into the output byte register 182 for each clock. The current color is maintained in the 1-bit color register 183. The number of actually output bits is limited by the number of bits left in the run length and the number of spare bits left in the output byte. The number of bits output is subtracted from the run length and byte space. Although the run's trailing bit may still be in the output byte register, the pending output, it was perfectly decoded when the run length went to zero. When the byte space goes to zero, the output byte is complete and attached to the output stream. [664] The 16-bit barrel shifter 184, output byte register 182, and color register 183 together implement an 8-bit shift register that can be shifted to a multiple bit position per clock and color as a serial input. [665] An external reset line is used to reset the run length decoder at the beginning of the line. The next external run line is used to request decoding of the new run length. It is followed by a run length on the outer run length line. The next run line should not be set on the same clock as the reset line. The next run inverts the current color, so resetting the color sets it to a nonzero value. The outer flush line, if incomplete, is used to flush the last byte of the run. It may be used on an image basis to yield line-line based or byte-aligned images to yield byte-aligned lines. [666] The external preparation line indicates whether the run length decoder is ready to decode the run length. It can be used to disable external logic. [667] 7.2.2.4 Run length encoder [668] The run length encoder 159 shown in Fig. 22 detects zero or one bit of run in the input stream. The first run in the line is assumed to be white (color 0). Each run is assumed to be a color opposite to its predecessor. If the first run is actually black (color 1) then the run length encoder then generates a zero-length white run at the beginning of the line. The run length decoder internally stores the current color. [669] The run length encoder reads up to 8 bits from the input stream every clock. It uses a two-byte input buffer 190 viewed through a 16-bit barrel shifter 191 whose left (most significant) edge is always aligned with its current position in the bitstream. The encoder 192 connected to the barrel shifter encodes an 8-bit (partial) run length according to table 19. [ The encoder 192 uses the current color to recognize the run of the appropriate color. [670] The 8-bit run length generated by the 8-bit run length encoder is added to the value in the run length register 193. When the 8-bit run length encoder recognizes the end of the current run it generates an end run signal latched by the ready register 194. The output of the ready register 194 indicates that the encoder has finished encoding the current run length accumulated in the run length register 193. The output of the ready register 194 is also used to disable the 8-bit run length encoder 192. When disabled, the 8-bit run length encoder 192 outputs a zero-length run and a zero run end signal, effectively stopping the entire run length encoder. [671] (Table 19) [672] 8-bit run length encoder table colorinputLengthEnd of run 00000 000080 00000 00017One 00000 001x6One 00000 01xx5One 00000 1xxx4One 00001 xxxx3One 0001x xxxx2One 001xx xxxxOneOne 01xxx xxxx0One One1111 111180 One1111 11107One One1111 110x6One One1111 10xx5One One1111 0xxx4One One1110 xxxx3One One110x xxxx2One One10xx xxxxOneOne One0xxx xxxx0One [673] The output of the 8-bit run length encoder 192 is limited by the remaining page width. The actual 8-bit run length is subtracted from the remaining page width and added to the -8 bit position (195) with the module used to control the barrel shifter 191 and clock the byte stream input. [674] An external reset line is used to reset the run length encoder at the beginning of the line. It resets the current color and latches the page width into the page width register. The next outer run line is used to request another run length from the run length encoder. It inverts the current color, and resets the run length register and the ready register. The outer flush line, if incomplete, is used to flush the last byte of the run. It may be used on an image basis to process line-line based, or byte-aligned, images to process byte-aligned lines. [675] The external preparation line indicates that the run length encoder is ready to encode the run length and that the current run length is available on the run length line. It can be used to disable external logic. [676] 7.2.3 JPEG decoder [677] The JPEG decoder 143 shown in Fig. 23 decompresses the JPEG-compressed CMYK continuous tone image. [678] The input to the JPEG decoder is a JPEG bit stream. The output from the JPEG decoder is a set of continuous tone CMYK image lines. [679] Upon decompression, the JPEG decoder writes its output in the form of 8x8 pixelblocks. Sometimes they are converted to full-width lines through page-wide x 8 strip buffers that are tightly coupled with the codec. This will require a 67KB buffer. Instead, the present invention uses 8 parallel pixel FIFOs with shared bus access and 8 corresponding DMA channels, as shown in FIG. [680] 7.2.4 Half Toner / Synthesizer [681] The half-toner / synthesizer unit (HCU) 141 shown in Fig. 24 combines the function of half-toning the continuous tone CMYK layer to two-level CMYK and synthesizing the black layer onto the half-toned continuous tone layer. [682] The input to the HCU is an expanded 267 ppi CMYK contone tone layer 200, and an extended 1600 dpi black layer 201. The output from the HCU is a set 202 of 1600 dpi 2-level CMYK image lines. [683] Immediately after the start, the HCU proceeds until it detects an end-of-page condition, or until it is explicitly stopped through its control register. [684] The HCU generates pages of dots of the specified width and length. The width and length must be recorded in the PageWidth and Page Length registers before starting the HCU. The page width corresponds to the width 171 of the print head. The page length corresponds to the length of the target page. [685] The HCU generates target page data between designated left and right margins for the page width. The positions of the left and right margins should be recorded in the left margin and right margin registers before starting the HCU. The distance from the left margin to the right margin corresponds to the target page width. [686] The HCU consumes black and continuous tone data according to the specified black 172 and continuous tone 173 page widths. These page widths must be recorded in the black page width and continuous tone page width registers before starting the HCU. The HCU clips the black and continuous tone data to the target page width 174. This allows black and continuous tone page widths to exceed the target page width without requiring any special end of line logic at the input FIFO level. [687] The relationship between page width 171, black 172 and continuous tone 173 page width, and margins is illustrated in FIG. [688] The HCU scales the continuous tone data at the printer resolution based both horizontally and vertically on the specified conversion factor. These conversion factors must be recorded in the continuous tone conversion count register before starting the HCU. [689] (Table 20) [690] Half toner / synthesizer control and configuration registers registerwidthExplanation startOneLaunch HCU stopOneStop HCU Page width14In dots, the page width of the printed page. This is the number of dots to be generated for each line. Left margin14In the dot, the position of the left margin Right margin14In the dot, the position of the right margin Page length15In dots, the page length of the printed page. This is the number of lines that should be generated for each page. Black Page Width14In a dot, the page width of the black layer is used to detect the end of the black line. Continuous tone page width14In dots, the page width of a continuous tone layer. Used to detect the end of a continuous tone line. Continuous tone conversion factor4The conversion factor used to scale continuous tone data to 2-level resolution [691] The consumer of the data calculated by the HCU is the printhead interface. The printhead interface requires 2-level CMYK image data in planar format, i.e., the color planes are separated. Furthermore, it also requires that even and odd pixels be separated. Thus, the output stage of the HCU uses 8 parallel pixel FIFOs, one for each of even cyan, odd cyan, even magenta, odd magenta, even yellow, odd yellow, even black, and odd black. [692] The input continuous tone CMYK FIFO is a complete 8KB line buffer. The line is used for successive tone conversion counts to achieve vertical up-scaling through line duplication. The FIFO write address wrapping is disabled until the start of the last use of the line. The alternative is to read the number of consecutive tone conversion counts from the main memory, which increases the memory traffic by 65 MB / s, but avoids the need for an on-chip 8 KB line buffer. [693] 7.2.4.1 Multi-threshold dither [694] The general purpose 256-layer dither volume provides considerable flexibility in dither cell design by decoupling different intensity levels. The general purpose dither volume can be large - 64 × 64 × 256 dither volumes, for example, have a size of 128 KB. They are also inefficient to access because each color component requires retrieval of different bits from the volume. In practice, it is not necessary to totally decouple each layer of the dither volume. Each dot column of the volume may be implemented as a fixed set of threshold values rather than 256 separate bits. Using three 8-bit thresholds, for example, only consumes 24 bits. Now, the nth threshold determines the n + 1 intensity interlace where the corresponding dither cell position is not alternately set or set. The successive tone pixel values dithered uniquely select one of the n + 1 interlaces, which determines the value of the corresponding output dot. [695] The present invention dithers the continuous tone data using a triple-threshold 64 x 64 x 3 x 8-bit (12 KB) dither volume. The three thresholds form a convenient 24-bit value that can be retrieved from the dither cell ROM in one cycle. Dither cell matching is desired between the color planes, then the same triple-threshold can be retrieved once and used to dither each color component. If a dither cell match is not desired then the dither cell can be divided into four sub-cells and stored in four individually addressable ROMs, from which four different triple-threshold values can be stored in one cycle Can be searched in parallel. Using the addressing scheme shown in Fig. 26, the four color planes share the same dither cell at vertical and / or horizontal offsets of 32 dots from each other. [696] The multi-threshold dither 203 is shown in FIG. The triple-threshold unit 204 converts the triplet-threshold and intensity values to interleaved and one or zero bits. The triple-threshold rule is shown in Table 21. The corresponding logic 208 is shown in Fig. [697] 26, the four distinct triangular threshold units, generally shown at 204, each receive a series of consecutive tone color pixel values for each color component of the CMYK signal. The dither volume is typically divided into four dither subcels (A, B, C, and D) The dither cell address generator 206 and the four gates shown generally at 207 control the retrieval of four different triple thresholds that can be retrieved in parallel in one cycle for each different color. [698] (Table 21) [699] Triple-Threshold Rule IntervalPrint V T 1 0 T 1 <V T 2 One T 2 <V T 3 0 T 3 <VOne [700] 7.2.4.2 synthesis [701] The compositing unit 205 composites the black layer dot onto the half-toned CMYK layer dot. If the black layer opacity is one, then the halftoned CMY is set to zero. [702] Given a 4-bit halftoned color C c M c Y c K c and a 1-bit black layer opacity K b , the synthesis and clip logic are as defined in Table 22. [703] (Table 22) [704] Composite logic Color channelCondition CC c ∧ -K bMM c ∧ -K bYY c ∧ -K bKK c ∨ K b [705] 7.2.4.3 Clock enable generator [706] The clock enable generator 206 generates an enable signal for clocking the continuous tone CMYK pixel input, the black dot input, and the CMYK dot output. [707] As described earlier, the continuous tone pixel input buffer is used as both a line buffer and a FIFO. Each line is read once and then the number of consecutive tone conversion coefficients is used. The FIFO write address wrapping is disabled until the start of the last replicated use of the line, at which time the clock enable generator generates a continuous tone line advance enable signal that enables wrapping. [708] The clock enable generator also generates an even signal used to select an even or odd set of output dot FIFOs and a blanking signal used to generate white dots when the current dot position is within the left or right margin of the page . [709] The clock enable generator uses a set of counters. The internal logic of the counter is defined in Table 23. The logic of the clock enable signal is defined in Table 24. [710] (Table 23) [711] Clock Enable Generator Counter Logic counterAbbreviationwidthdataLoad conditionCondition of disparity dotD14Page widthRP a ∨ EOL b (D > 0) ^ clk lineL15Page lengthRP(L > 0) ^ EOL Left marginLM14Left marginRP ∨ EOL(LM > 0) ^ clk Right marginRM14Right marginRP ∨ EOL(RM > 0) ^ clk Even / odd dotEOne0RP ∨ EOLclk Black dotBD14Black WidthRP ∨ EOL(LM = 0) ^ (BD > 0) ^ clk Continuous tone dotCD14Continuous tone widthRP ∨ EOL(LM = 0) ^ (CD > 0) ^ clk Continuous tone sub-pixelCSP4Continuous tone conversion factorRP E EOL ∨ (CSP = 0)(LM = 0) ^ clk Continuous tone sub-lineCSL4Continuous tone conversion factorRP ∨ (CSL = 0)EOL ^ clka (RP) Condition: External signal b EOL (End of line) Condition: (D = 0) ^ (BD = 0) ^ (CD = 0) [712] (Table 24) [713] Clock Enable Generator Output Signal Logic Output signalCondition Output dot clock enable(D > 0) ^ - EOP aBlack dot clock enable(LM = 0) ^ (BD > 0) ^ EOP Continuous tone pixel clock enable(LM = 0) ^ (CD > 0) ^ (CSP = 0) ^ - EOP Continuous tone line advance enable(CSL = 0) ^ - EOP EvenE = 0 White space(LM = 0) ((RM = 0)a EOP (end of page) Condition: L = 0 [714] 7.3 Printhead interface [715] A printhead interface (PHI) 142 is a means by which the processor loads the MEMSJET printhead as a dot to be printed and controls the actual dot printing process. PHI: [716] · Loading the dot on the predetermined printing line into a local buffer storage and line loader / format unit for formatting them into the order required for the printhead memjet (LLFU; 209). [717] And a Memjet interface (MJI) 210 for transmitting data to the MEMSET printhead 63 and for controlling the nozzle firing sequence during printing. [718] The units in the PHI are controlled by many registers programmed by the processor 139. In addition, the processor is responsible for setting up the appropriate parameters in the DMA controller 144 for transmission from the memory to the LLFU. This includes loading the white (all zeros) into the appropriate colors during the beginning and end of the page in order for the page to have a clean edge. The internal structure of the printhead interface 142 is shown in FIG. [719] 7.3.1 Line loader / format unit [720] A line loader / format unit (LLFU) 209 loads dots into the local buffer storage for a given print line and formats them into the order required for the memjet printhead. It is responsible for supplying pre-calculated nozzles to the Memjet interface for the last printing of the page. [721] A single line in an 8-inch printhead consists of 12,800 four-color dots. At one bit per color, a single print line consists of 51,200 bits. These bits must be supplied in the correct order to be sent on the printhead. For more information on load cycle dot loading orders, see section 6.1.2.1, but in summary, 32 bits are sent to each of the two 4-inch print heads at once, and 32 bits are sent to each of the 8 segments for 4 Express a dot. [722] Printing uses a double buffering method to prepare and access dot-bit information. While one line is being loaded into the first buffer 213, the pre-loaded line in the second buffer 214 is being read at the Memjet dot order. Immediately after the entire line is transferred from the second buffer 214 to the printhead through the Memjet interface, the read and write process swaps the buffer. The first buffer 213 is now read and the second buffer is loaded up as a new line of data. This is repeated throughout the printing process, as can be seen in the conceptual overview of FIG. [723] An actual implementation of LLFU is shown in Fig. Two sets of address lines must be used because they are being read from one buffer while being written to the other. The 32-bit data from the common data bus is loaded in dependence on the write enable generated by the state machine in response to the DMA acknowledge. [724] The multiplexer 215 selects between the two 4-bit outputs of buffer 0 213 and buffer 1 214 and sends the result to the 8-entry by a 4-bit shift register 216. After the first 8 read cycles and every time the forward pulse comes from MJI, the current 32-bit value from the shift register is gated into the 32-bit transfer register 217, where it can be used by the MJI. [725] 7.3.1.1 buffer [726] Each of the two buffers 213 and 214 is split into four sub-buffers 220, 221, 222 and 223, one per color. As shown in Fig. 31, all even dots are placed in the respective color buffers before odd dots. [727] The 51,200 bits representing the dots on the next line to be printed are stored as 12,800 bits per color buffer, 400 32-bit words. The first 200 of 32-bit words (6400 bits) represent even dots for color, while the second 200 32-bit words (6400 bits) represent odd dots for color. [728] Address designation decoding circuit design is such that in a given cycle a single 32-bit access can be all four sub-buffers - read from all four or write to one of four. Only one of the 32 bits read from each color buffer is selected for a total of four output bits. The process is shown in Fig. The 13 bits of the address allow the reading of a special bit by the 8-bit address being used to select 32 bits, and the 5-bit address selects 1 bit from the 32 bits. Since all color buffers share this logic, a single 13-bit address places a total of four bits, one per color. Each buffer has its own record has a nibble line so that a single 32-bit value is written to a special color buffer in a certain cycle. Since only one buffer will actually clock the data, the 32-bit data in is shared. [729] 7.3.1.2 Address generation [730] 7.3.1.2.1 Reading [731] The address generation for reading is simple. In each cycle, the present invention generates a bit address that is used to fetch 4 bits representing one bit per color for a particular segment. By adding 400 to the current bit address, the present invention advances to the equivalent dot of the next segment. The present invention adds 400 (instead of 800) because odd and even dots are separated from the buffer. The present invention does this 16 times to retrieve two sets of 32 bits for two sets of 8 segments representing even dots (the resulting data is sent to the 32 bit MJI at one time) Do 16 times. This 32-cycle process is repeated 400 times, incrementing the start address each time. Thus, in a 400 x 32 cycle, a total of 400 x 32 x 4 (51,200) dot values are transmitted in the order required by the printhead. [732] In addition, the present invention causes the transmission recording to generate a disable control signal. Since the LLFU starts before the MJI, the present invention must transmit the first value before the advance pulse from the MJI. The present invention should also prepare for the first forward pulse and generate the next 32-bit value. The solution is to send the first 32-bit value to the transfer register after 8 cycles, then wait for the forward pulse to start the next 8-cycle group, causing the 8-cycle to go down later. Immediately after the first advance pulse arrives, the LLFU is synchronized to the MJI. However, the MJI must start at least 16 LLFU cycles after the initial transfer value is valid and the next 32-bit value is ready to be loaded into the transfer register. [733] The read process is shown below in pseudocode: [734] DotCount = 0 [735] For DotInSegment0 = 0 to 400 [736] CurrAdr = DotInSegment0 [737] Do [738] V1 = (CurrAdr = 0) OR (CurrAdr = 3200) [739] V2 = Low 3 bits of DotCount = 0 [740] TransferWriteEnable = V1 OR ADVANCE [741] Stall = V2 AND (NOT TransferWriteEnable) [742] If (NOT Stall) [743] Shift Register = Fetch 4-bits from CurrReadBuffer: CurrAdr [744] CurrAdr = CurrAdr + 400 [745] DotCount = (DotCount + 1) MOD 32 (odd & even, printheads 1 & 2, segments 0-7) [746] EndIf [747] Until (DotCount = 0) AND (NOT Stall) [748] EndFor [749] Immediately after the line is completed, the CurrReadBuffer value must be toggled by the processor. [750] 7.3.1.2.2 record [751] The recording process is also simple. 4 DMA request line is output to the DMA controller. When the request is satisfied by the return DMA acknowledge line, a suitable 8-bit destination address is selected (the lower 5 bits of the 13-bit output address are ignore values) and the write of the buffer in which the acknowledge signal is correct, (The current write buffer is the current read buffer). An 8-bit destination address is selected from 4 current addresses, one address per color. When the DMA request is satisfied, the appropriate destination address is incremented and the corresponding TransfersRemaining counter is decremented. The DMA request line is only set when the number of transfers remaining for that color is not zero. [752] The following pseudocode illustrates the recording process: [753] CurrentAdr [0-3] = 0 [754] While (TransfersRemaining [0-3] are all non-zero) [755] DMARequest [0-3] = TransfersRemaining [0-3]! = 0 [756] If DMAAknowledge [N] [757] CurrWriteBuffer: CurrentAdr [N] = Fetch 32-bits from data bus [758] CurrentAdr [N] = CurrentAdr [N] + 1 [759] TransfersRemaining [N] = TransfersRemaining [N] - 1 (floor 0) [760] EndIf [761] EndWhile [762] 7.3.1.3 register [763] LLFU contains the following registers: [764] (Table 25) [765] Line Load / Format Unit Register Register nameExplanation Current read bufferIt should be written to buffer 1 when it is being read from buffer 0 and vice versa as each forward line pulse from .MJI. TheBits 0 and 1 control the start of the read and write processes, respectively. Non-zero writing to the appropriate bits starts the process. stopBits 0 and 1 control the stopping of the read and write processes, respectively. Non-zero writing to the appropriate bits stops the process. Transfer Remaining CNumber of remaining 32-bit transfers to be read into the cyan buffer Transfer Remaining MNumber of remaining 32-bit transfers to be read into the magenta buffer Transfer Remaining YThe number of remaining 32-bit transfers to be read into the yellow buffer Transfer Remaining KThe number of remaining 32-bit transfers to be read into the black buffer. [766] 7.3.2 Memjet interface [767] The Memjet interface (MJI) 211 sends the data to the Memjet printhead 63 and controls the nozzle firing sequence during printing. [768] MJI is only a state following the firing sequence and printhead loading described in Section 6.1.2 (see FIG. 28) and includes the functionality of the preheat cycle and the cleaning cycle as described in Section 6.1.4 and Section 6.1.5 do. Both high speed and low speed printing modes are available. The dot count for each color is also maintained by the MJI. [769] The MJI loads data from the selection of two data sources into the printhead: [770] All 1. This means that all nozzles will firing during subsequent print cycles and is the standard mechanism for loading printheads against preheating or cleaning cycles. [771] From the 32-bit input held in the transfer register of the LLFU. This is the standard means of printing images. The 32-bit value from the LLFU is sent directly to the printhead and the 1-bit 'forward' control pulse is sent to the LLFU. At the end of each line, a one-bit 'forward line' pulse is also available. [772] The MJI shall be initiated after the LLFU has already prepared the first 32-bit transmission value. This is so that the 32-bit data input will be valid for the first transmission to the printhead. [773] Thus, the MJI is directly connected to the LLFU and the external inkjet printhead. [774] 7.3.2.1 The connection to the printhead [775] The MJI 211 has the following connection to the printhead 63 as a sense of input and output with respect to the MJI. The name matches the pin connection on the printhead (see Section 6.2.1 for an explanation of how the 8-inch printhead is wired). [776] (Table 26) [777] Memjet interface connection name#pinI / OExplanation ChromaFade Select3OChoose which chroma pads to fire (0-4) Nozzle Select4OSelect which nozzle fires from the pad (0-9) Fad Group Nable2OFiring a group of fads (Choice: 01, 10, 11) A enableOneOFiring pulses to the Fade Group A B enableOneOFiring pulses to the Fade Group B C data [0-7]8OCyan output with cyan shift register of segment 0-7 M data [0-7]8OMagenta input with magenta shift register for segment 0-7 Y data [0-7]8OYellow input with yellow shift register in segment 0-7 K data [0-7]8OBlack input with black shift register in segment 0-7 SR Clock 1OneOThe pulse on SR clock 1 (shift register clock 1) is the current from [0-7] which is C data, [0-7] which is M data, [0-7] Value into the 32-shift register of the 4-inch print head 1. SR Clock 2OneOThe pulse on the SR clock 2 (shift register clock 2) is the current from the [0-7] C data [0-7], the M data [0-7], the Y data [0-7] Value into the 32-shift register of the 4-inch printhead 2. [ P transferOneOFrom the shift register, the internal nozzles of the printhead transfer data in parallel (one per nozzle) Sense Seg Select 1OneOA pulse on sense segmentable 1 that is ANDed with data on data C [n] enables the sense line for segment n in 4-inch printhead 1. Sense Seg Select 2OneOA pulse on sense segmentable 2 ANDed with data on data C [n] enables the sense line for segment n in 4-inch printhead 2. T SenseOneITemperature sensing V SenseOneIVoltage sensing R senseOneIResistivity detection W SenseOneIWidth detection gun52 [778] 7.3.2.2 Firing pulse duration [779] The duration of the firing pulse on the A enable and B enable lines depends on the viscosity of the ink (depending on temperature and ink characteristics) and the amount of power available to the printhead. Typical pulse duration ranges from 1.3 to 1.8 microseconds. Thus, the MJI includes a programming pulse duration table 230 indexed by feedback from the printhead. A table of pulse durations allows the use of lower cost power supplies and helps maintain more accurate droplet ejection. [780] The pulse duration table has 256 entries and is indexed by the current V sense 231 and T sense 232 settings. The upper four bits of the address come from the V sense, and the lower four bits of the address come from the T sense. Each entry is 8-bit and represents a fixed point value in the range of 0-4 μs. The process of generating the A enable and B enable lines is shown in FIG. Analog V sense 231 and T sense 232 signals are received by respective sample and hold circuits 233 and 234 and then applied to respective transducers 235 and 236 ) To a digital word. The output of pulse duration table 230 is applied to pulse width generator 237 to generate a firing pulse. [781] The 256-byte table is written by the CPU before printing the first page. The table can be updated between pages if desired. Each 8-bit pulse duration entry in the table is: [782] · User brightness setting (from page technology) [783] - viscosity curve of ink (from the QA Chip) [784] · R sense [785] · W sense [786] · V-sense [787] · Combine T-sense. [788] 7.3.2.3 Dot count [789] The MJI 211 maintains a count of the number of dots of each color fired from the printhead in the dot count register 240. The dot count for each color is a 32-bit value that is individually cleared by signal 241 under processor control. In a typical use, each dot count at a 32-bit length can maintain a maximum coverage dot count of 17 12-inch pages, although the dot count will be read and cleared after each page. [790] The dot count is used by the processor to update the QA chip 85 to predict when the ink in the ink cartridge bottoms (Section 7.5.4.1). The processor knows the volume of ink in the cartridge for each of C, M, Y, and K from the QA chip. Counting the number of droplets eliminates the need for an ink sensor and prevents the ink channel from becoming dry. The updated drop count is written to the QA chip after each page. The new page will not be printed unless there is enough ink remaining and causes the user to exchange the ink without having to obtain a pending half-printed page which must be reprinted. [791] The layout of the dot counter for cyan is shown in Fig. The remaining three dot counters (M dot count, Y dot count, and K dot count for magenta, yellow, and black, respectively) are the same in structure. [792] 7.3.2.4 register [793] Processor 139 communicates with MJI 211 through a set of registers. The register allows the processor to parameterize printing as well as receive feedback on the printing process. [794] The following registers are included in the MJI: [795] (Table 27) [796] Memjet Interface Register Register nameExplanation Printing parameters NumTransfersThe number of transfers required to load the printhead, typically 1600. This is the total number of 32-bit data values to send for a given line and the number of pulses for both SR clock lines. Print speedPrinting at low speed or high speed (during print, the group of fades determines the value on the slave) NumLinesNumber of load / print cycles to perform Monitoring Frit conditionStatus registers in the Memjet interface LinesReamingNumber of remaining lines to be printed. It is only valid for high = 1. The starting value is line number. Transfer RemainingThe number of transmissions that remain before the printhead is considered to be loaded for the current line. It is only valid for 1 = 1. Sense segment8-bit value to place on the cyan data line during subsequent feedback sense select pulse. Only one out of 8 bits, corresponding to one of the eight segments, should be set. See Sense Seg Select for how to determine which of two 4-inch printheads to sense. Set All nozzles (SetAllNozzles)If not zero, the 32-bit values written to the printhead during the load dot process are all 1s so that all nozzles are fired during the subsequent print dot process. This is used during the preheat and cleaning cycles. If 0, the 32-bit value written to the printhead comes from the LLFU. This is the case during actual printing of a regular image. measure resetWriting to this register resets the MJI, suspends any loading or printing process, and loads all registers with zeros. Sense segment selectWriting to this register with any value clears the feedback register bit of the status register and, depending on the low-order bit, if either the loading dot and the printed dot status bit are both 0, Lt; / RTI > Immediately after the various sense lines have been tested, the values are placed in the T sense, V sense, R sense, and W sense registers, and then the status register Lt; / RTI > is set. TheA write of 1 to this bit starts a load dot / print dot cycle. The total number of line lines are printed, each containing 32 transfers of 32 bits. When each line is printed, the line remineration is decremented and the transfer reminera- tion is reloaded again as a trans- fer. The status register includes print status information. Upon completion of the line, the loading / printing process is stopped and the high bit is cleared. During the last printing cycle, nothing is loaded into the printhead. Writing a 0 to this bit stops the printing process but does not clear any other registers. Clear countWriting to this register clears the C dot count, M dot count, Y dot count, and K dot count registers if bit 0, 1, 2, or 3 is set, respectively. As a result, a zero recording has no effect. [797] feedback T SenseOnly the feedback of the T sense is read from the last sense segment select pulse sent to the segment sense segment. It is only valid if the feedback register bit in the status register is set. V SenseRead only the feedback of the V sense from the last sense segment select pulse sent to the segment sense segment. It is only valid if the feedback register bit in the status register is set. R senseOnly the R sense of feedback is read from the last sense segment select pulse sent to the segment sense segment. It is only valid if the feedback register bit in the status register is set. W SenseOnly the feedback of the W sense is read from the last sense segment select pulse sent to the segment sense segment. It is only valid if the feedback register bit in the status register is set. C dot countOnly 32-bit counts of cyan dots sent to the printhead M dot countOnly the 32-bit count of the magenta dot sent to the printhead Y dot countOnly the 32-bit count of the yellow dot sent to the printhead K dot countOnly the 32-bit count of black dots sent to the printhead [798] The status register of the MJI is a 16-bit register with the following bit interpretation. [799] (Table 28) [800] MJI Status Register namebeatExplanation Loading dotOneIf set, MJI is currently loading dots and has the number of remaining dots to transfer in transferremaining. If cleared, MJI is not currently loading dots. Printing dotOneIf set, MJI is currently printing dots. If cleared, MJI is not currently printing dots. Print AOneThis bit is set while a pulse is present on the A enable line. Print BOneThis bit is set while a pulse is present on the B enable line. Feedback valleyOneThis bit is set while the feedback value T sense, V sense, R sense, and W sense are valid. Reserved3- Print Chroma Pad4This maintains the current chroma-fade that is being fired while the Print Dot Status bit is set. Printing nozzle4This holds the current nozzle being fired while the printed dot status bit is set. [801] 7.3.2.5 Preheating and cleaning cycles [802] Cleaning and warm-up cycles can be accomplished simply by setting the appropriate resistor: [803] · Set all nozzle = 1 [804] • Set the pulse duration register to a low duration (in the case of warm-up mode) or an appropriate droplet ejection duration for the cleaning mode [805] Set the number of times the nozzle must be fired [806] • Set the high bit and then wait for the high bit to be cleared when the print cycle is complete. [807] 7.4 Processor and memory [808] 7.4.1 Processor [809] Processor 139 runs a control program that synchronizes other functional units during page reception, expansion, and printing. It also runs device drivers for various external interfaces and responds to user actions through the user interface. [810] It must have a low interrupt latency to provide efficient DMA management, but it does not need to be a high performance DMA controller unless otherwise. [811] The DMA controller supports single-address transmission over 27 channels (see Table 29). It causes a vectorized interrupt to the processor upon completion of the transfer. [812] (Table 29) [813] Example of Using DMA Channel Functional unitInput channelOutput channel USB interface-One EDRL expanderOneOne JPEG decoderOne8 Half Toner / Synthesizer28 Speaker interfaceOne- Printhead interface4-819 27 [814] 7.4.3 Program ROM [815] The program ROM maintains an ICP control program loaded into main memory during system boot. [816] 7.4.4 The Rambus interface [817] The Rambus interface provides a high-speed interface to external 8MB (64Mbit) Rambus DRAM (RDRAM). [818] 7.5 External interface [819] 7.5.1 USB interface [820] The Universal Serial Bus (USB) interface provides a standard USB device interface. [821] 7.5.2 Speaker interface [822] The speaker interface 250 (Figure 35) includes a small FIFO 251 used for DMA-mediated transmission of a sound clip from main memory, an 8-bit digital-to-analog converter (DAC) 252, and an amplifier 253 for supplying to an external speaker. When the FIFO is empty, it outputs a zero value. [823] The speaker interface is clocked at the frequency of the sound clip. [824] The processor simply outputs the sound clip to the speaker by programming the DMA channel of the speaker interface. [825] 7.5.3 Parallel interface [826] The parallel interface 231 provides I / O on many parallel external signal lines. This allows the processor to detect or control the devices listed in table 30. [827] (Table 30) [828] Parallel interface device Parallel interface device Power button Paper feed button Power LED No paper LED Ink-less LED Media sensor Paper feed stepper motor [829] 7.5.4 Serial interface [830] The serial interface 232 provides two standard low speed serial ports. [831] One port is used to connect to the master QA chip 85. And the other is used to connect to the QA chip in the ink cartridge 233. The two processor-mediated protocols are used to authenticate the ink cartridge. The processor can then retrieve the ink characteristics from the QA chip as well as the remaining volume of each ink. The processor uses ink characteristics to properly configure the MEMSET printhead. It uses the remaining ink volume, updated on a page-page basis, with the ink consumption information accumulated by the printhead interface to ensure that the printhead is not damaged by the dry state. [832] 7.5.4.1 Ink cartridge QA chip [833] The QA chip 233 in the ink cartridge contains information required to maintain the best possible print quality, and is implemented using an authentication chip. The 256 bits of data in the authentication chip are assigned as follows: [834] (Table 31) [835] The 256-bit (16-bit, 16-entry) M [n]accesswidthExplanation 0RO a 16Basic headers, flags, etc. OneRO16Serial number 2RO16Batch number 3RO16Deposit for future expansion. Should be zero. 4RO16Cyan ink characteristics 5RO16Magenta ink characteristics 6RO16Yellow Ink Characteristics 7RO16Black ink characteristics 8-9DO b 32In nanoliter, the remaining cyan ink 10-11DO32In nanoliter, the remaining magenta ink 12-13DO32In the nanoliter, the remaining yellow ink 14-15DO32In nanoliter, the remaining black inka Read only (RO) b Reduction only (DO) [836] Before each page is printed, the processor must check the amount of ink remaining to ensure that it is sufficient for the worst-case worst-case page. Immediately after the page is printed, the processor multiplies the total number of drops of each color (obtained from the printhead interface) by the drop volume. The amount of ink printed is subtracted from the amount of ink remaining. The unit of measurement for the remaining ink is nanoliter, so 32 bits can represent more than 4 liters of ink. The amount of ink used for the page should be rounded up to the nearest nanometer (i.e., approximately 1000 printed dots). [837] 7.5.5 JTAG interface [838] The standard JTAG (Joint Test Action Group) interface is included for testing purposes. Due to the complexity of the chip, various testing techniques are required including BIST (built-in self test) and functional block isolation. In the chip area, 10% of the total cost is assumed for the entire chip testing circuit design. [839] 8 Generic printer driver [840] This section describes the generic sun of any host-based printer driver for i-print. [841] 8.1 Graphics and Imaging Models [842] The present invention assumes that the printer driver is tightly coupled to the host graphics system in order for the printer driver to be able to provide device-specific processing for other graphics and imaging operations, particularly composite operations and text operations. [843] The present invention is based on a user-selected eye print-specific ICC (International Color Consciousness) color profile, in order that the device-independent color can be converted to an i-print-specific CMYK color in a standard manner, . ≪ / RTI > The color profile is typically implicitly selected by the user (i.e., plain paper, coated paper, transparency, etc.) when the user designates an output medium in the printer. The page description sent to the printer always includes the device-specific CMYK color. [844] The present invention assumes that the host graphics system renders images and graphics at the nominal resolution specified by the printer driver, but it allows the printer driver to control text rendering. In particular, the graphics system provides sufficient information to the printer driver to render and position text at a resolution higher than the nominal device resolution. [845] The present invention allows the printer driver to control the actual composition, that is, it allows the printer driver to control the actual compositing of the page, at the nominal device resolution at which the graphics and imaging objects are synthesized by the host graphics system, It is assumed that you expect to manage the buffer. [846] 8.2 Two-layer page buffer [847] The page technology of the printer includes a 267 ppi continuous tone layer and an 800 dpi black layer. The black layer is conceptually on a continuous tone layer - that is, a black layer is synthesized onto a continuous tone layer by a printer. Thus, the printer driver maintains a page buffer 260 that includes a medium resolution continuous tone layer 261 and a high resolution black layer 262 in a corresponding manner. [848] The graphics system renders and composites objects from bottom to top into the page buffer - that is, later objects obscure earlier objects. This works naturally when there is only a single layer, not when there are two layers to be synthesized later. It is therefore necessary to detect when an object lying on the continuous tone layer covers something on the black layer. [849] When occlusion is detected, the obscured black pixels are combined with the continuous tone layer and removed from the black layer. The object to be screened then lies down on the continuous tone layer and may interact with the black pixel in a particular way. If the composite mode of the object being screened is such that it is not possible to interact with the background, then the black pixel can only be discarded without being composited with the continuous tone layer. Indeed, of course, there is little interaction between the continuous tone layer and the black layer. [850] The printer driver specifies a nominal page resolution of 267 ppi as the graphics system. Where possible, the printer driver relies on the graphics system to render image and graphics objects at the pixel level at 267 ppi, with the exception of black text. The printer driver processes all text rendering requests and detects and renders black text at 800 dpi, but returns a non-black text rendering request to the graphics system for rendering at 267 ppi. [851] Ideally, the graphics system and printer driver manipulate color in device-independent RGB and defer conversion to device-specific CMYK until the page is completed and ready to be sent to the printer. This reduces page buffer requirements and makes synthesis more reasonable. The synthesis in the CMYK color space is not ideal. [852] Ultimately, the graphics system requires the printer driver to synthesize each rendered object into the page buffer of the printer driver. Each such object uses a 24-bit continuous tone RGB and has an explicit (or implicitly opaque) opacity channel. [853] The printer driver maintains a two-layer page buffer 260 in three parts. The first part is a medium resolution (267 ppi) continuous tone layer 261. It consists of a 24-bit RGB bitmap. The second part is the medium resolution black layer 263. It consists of an 8-bit opacity bitmap. The third part is a high resolution (800 dpi) black layer 262. It consists of a 1-bit opacity bitmap. The medium resolution black layer is a sub-sampled version of the high resolution opacity layer. In practice, assuming that the medium resolution is a high resolution integer factor n (e.g., n = 800/267 = 3), each medium resolution opacity value is obtained by averaging the corresponding n x n high resolution opacity values. This corresponds to box-filtered subsampling. Sub-sampling of black pixels effectively anti-aliases the edges in the high-resolution black layer, thereby reducing ringing artifacts when the continuous tone layer is subsequently JPEG-compressed and decompressed. [854] The structure and size of the page buffer are illustrated in Fig. [855] 8.3 Synthetic model [856] For the purpose of discussing the page buffer synthesis model, the present invention defines the following variables. [857] (Table 32) [858] Composite variable variableExplanationresolutionformat nMedium with high resolution conversion factor-- C BgM Background Continuous tone floor colormedium8-bit color component C ObM Continuous tone object colormedium8-bit color component a ObM Continuous tone object opacitymedium8-bit opacity a FgM Medium Resolution Foreground Black Layer Opacitymedium8-bit opacity a FgH Foreground Black Layer OpacityThe1-bit opacity a TxH Black object opacityThe1-bit opacity [859] When a black object of opacity a TxH is combined with a black layer, the black layer is updated as follows: [860] (Rule 1) [861] (Rule 2) [862] The object opacity is just ORed with the black layer opacity (Rule 1) and the corresponding part of the medium resolution black layer is recalculated from the high resolution black layer (Rule 2). [863] Color C ObM and Opacity a When a continuous tone object of ObM is composited with a continuous tone layer, the continuous tone and black layers are updated as follows: [864] (Rule 3) [865] (Rule 4) [866] (Rule 5) [867] (Rule 6) [868] The affected black layer pixels are pushed from the black layer to the continuous tone layer, i. E., Combined with the continuous tone layer (rule 3) and removed from the black layer, wherever the continuous tone object covers the black layer, not completely opaque (Rule 4 and Rule 5). The continuous tone object is then combined with the continuous tone layer (Rule 6). [869] If the continuous tone object pixel is completely opaque (i. E. ), Then the background consecutive tone pixels will be completely erased subsequently by the foreground consecutive tone pixels (Rule 6), so there is no need to push the corresponding black pixels into the background consecutive tone layer (Rule 3). [870] 37-41 illustrate the effect of a background continuous tone layer and a foreground black layer that synthesize various types of objects onto an image represented by two layers. The state of the two layers in each case is shown before and after the object is synthesized. The different resolutions of the foreground and background layers are indicated by different pixel grid densities of the layers. [871] Since the actual rendering of the image is not the focus of the discussion herein, the output image represented in two layers is shown without a pixel grid. [872] The middle resolution foreground black layer is implicit but not illustrated. Every time Rule 1 is applied to the high resolution foreground black layer, Rule 2 is implicitly applied to the medium resolution foreground black layer. Every time Rule 4 is applied, Rule 5 is also implicitly applied. [873] 37 illustrates the effect of synthesizing the black object 270 onto a white image. The black object is simply synthesized into the foreground black layer 271 (Rule 1). The background continuous tone layer 272 is unaffected, and the output image 273 is a black object. [874] Figure 38 illustrates the effect of compositing continuous tone object 280 onto a white image. The continuous tone object 280 is simply composited into the background continuous tone layer 282 (Rule 6). Foreground black layer 281 is unaffected and output image 283 is a continuous tone object. [875] FIG. 39 illustrates the effect of compositing a black object 290 onto an image that already contains a continuous tone object 292. FIG. Again the black object is simply synthesized into the foreground black layer 291 (Rule 1). The background continuous tone layer is unaffected and the output image 293 has a black object 290 over the continuous tone object 292. [ [876] 40 illustrates the effect of compositing a continuous tone object 300 opaque over an image that already contains a black object 301. [ Since the continuous tone object covers the part of the black object that is present, the affected part of the existing two-level object is removed from the foreground black layer 302 (Rule 4). Since the continuous tone object is completely opaque, it is not necessary to synthesize the affected part into the continuous tone layer, so rule 3 is skipped. The continuous tone object is synthesized (303; Rule 6) into the background continuous tone layer as usual, and the output image 304 shows the continuous tone object 300 over the black object. [877] Figure 41 illustrates the effect of compositing a partially transparent continuous tone object 310 onto an image that already contains a black object 311. [ The affected part of the black object is synthesized into a continuous tone layer 312 (Rule 3), and then removed from the foreground black layer (313; Rule 3), since the continuous tone object partially obscures the part of the black object that is present 4). The continuous tone object is then synthesized into the background continuous tone layer as usual (314; Rule 6). [878] The final image 315 shows the darkening of those consecutive tone pixels that transparently obscures the part of the black object that is present. [879] 8.4 Page Compression and Delivery [880] Immediately after the page rendering is complete, the printer driver converts the continuous tone layer to the i-print-specific CMYK with the help of the color management function in the graphics system. [881] The printer driver then compresses and packages the black and continuous tone layers into the i-print page technology as described in section 5.2. This page technology is delivered to the printer through a standard spooler. [882] Note that the black layer is manipulated as a set of one-bit opacity values, but delivered to the printer as a set of one-bit black values. Although these two interpretations are different, they share the same representation, so no data conversion is required. [883] 9 Windows 9X / NT printer driver [884] 9.1 Windows 9x / NT printing system [885] In a Windows 9x / NT printing system, the printer 320 is a graphics device and the application 321 communicates with it via the graphics device interface 322 (GDI). The printer driver graphics DLL 323 (dynamic link library) implements a device-dependent aspect of various graphics functions provided by GDI. [886] The spooler 333 may process the delivery of the page to the printer and may reside on another machine with an application request print. It delivers the page to the printer via a port monitor 334 that handles the physical connection to the printer. The optional language monitor 335 is part of the printer driver that imposes an additional protocol on communication with the printer and specifically decodes the status response from the printer for the spooler. [887] The printer driver user interface DLL 336 implements a user interface for editing printer-specific properties and reporting printer-specific events. [888] The structure of the Windows 9x / NT printing system is illustrated in FIG. [889] Since the i-print uses USB IEEE-1284 emulation, there is no need to implement a language monitor for i-print. [890] The remainder of this section describes the design of the printer driver graphics DLL. You should read about the proper Windows 9x / NT DDK documentation. [891] 9.2 Windows 9x / NT Graphics Device Interface (GDI) [892] The GDI provides the ability for an application to draw on the device surface, i.e., typically a display screen or the extraction of printed pages. For a raster device, the device surface is conceptually a color bitmap. The application can draw on the surface in a device-independent manner, i.e. independent of the color characteristics and resolution of the device. [893] The application has random access to the entire device surface. This means that if the memory-constrained printer device requires banded output, then GDI will buffer the entire page GDI command and play the windowed ones in turn into each band in turn. This provides great flexibility for the application, but it can adversely affect performance. [894] GDI supports color management so that the device-independent color provided by the application is transparently translated in device-dependent color according to the device's standard ICC (International Color Consortium) color profile. The printer driver may activate another color profile, for example, depending on the user's selection of the paper type on a single sheet of driver-managed printer properties. [895] GDI supports line and spline contour graphics (path), image, and text. Contour graphics including outline font glyphs can be stroked and filled with bit-mapped brush patterns. Graphics and images can be geometrically transformed and composited with the content of the device surface. Windows 95 / NT4 provides only compounded operations, while Windows 98 / NT5 provides appropriate alpha-blending [9]. [896] 9.3 Printer Driver Graphics DLL [897] Raster printers can, in theory, use standard printer driver components under Windows 9x / NT and this can create jobs to develop printer driver trials. This depends on the ability to model the device surface as a single bitmap. The problem with this is that text and images must be rendered at the same resolution. This compromises text resolution, or produces too much output data, compromising performance. [898] As described earlier, the approach of eye print is to render black text and images at different resolutions to optimize each representation. Therefore, the printer driver is implemented according to the generic design described in Section 8. [899] Thus, the driver maintains a two-tier, three-part page buffer as described in Section 8.2, which means that the printer driver must assume responsibility for managing the device surface, and in turn, It means that it should be mediated. [900] 9.3.1 Manage device surfaces [901] The printer driver must support many standard functions, including: [902] (Table 33) [903] Standard Graphics Driver Interface Functions functionExplanation DrvEnableDriverThe initial entry point into the driver graphics DLL, which returns the address of the function supported by the driver DrvEnablePDEVThereby creating a logical representation of the physical device through which the driver can associate the drawing surface DrvEnableSurfaceAssociated with a constant PDEV, creates a surface that is drawing-on [904] DrvEnablePDEV is a GDI that displays the graphics rendering capabilities of the driver through the flGraphicsCaps member of the returned DEVINFO structure. This is discussed further below. [905] DrvEnableSurface creates a device surface consisting of two conceptual layers and three parts (267 ppi contone layer 24-bit RGB color, 267 ppi black layer 8-bit opacity, and 800 dpi black layer 1-bit opacity). The virtual device surface encapsulating these two layers has a nominal resolution of 267 ppi, so this is the resolution at which the GDI operation takes place. [906] The total page buffer requires about 33MB of memory, but the PC99 Office standard [5] specifies a minimum of 64MB. [907] In practice, managing the device surface and arbitrating GDI access to it means that the printer driver must support the following additional functions: [908] (Table 34) [909] Graphics Driver Function Required for Device-Managed Surfaces functionExplanation DrvCopyBitsTranslating between device-managed raster surfaces and GDI-managed standard-format bitmaps DrvStrokePathStroke Path DrvPaintPaint the specified area DrvTextOutRenders a set of glyphs at the specified location [910] Copying an image, stroking a pass, and filling an area all occur on a continuous tone layer, while rendering solid black text occurs on a two-level black layer. Moreover, rendering non-black text also occurs on a continuous tone layer because it is not supported on the black layer. Conversely, stroking or filling with solid black can happen on the black layer (if we choose to do so). [911] The printer driver is forced to hook the function, but because it is a standard-format bitmap, the function call applied to the continuous tone layer can be punched back into the corresponding GDI implementation of the function. There is a corresponding EngXxx function provided by GDI for all DrvXxx functions. [912] As described in Section 8.2, when a predetermined object for a continuous tone layer obscures a pixel on a black layer, the obscured black pixel must be transferred from the black layer to the continuous tone layer before the continuous tone object is combined with the continuous tone layer. The key to this process operation is that it is detected and handled in a hooked call before it is punted back to the GDI. This involves using pixel opacity of the continuous tone object from its geometry and using this opacity to selectively transmit black pixels from the black layer to the continuous tone layer as described in Section 8.2. [913] 9.3.2 Determine Continuous Tone Object Geometry [914] It is possible to determine the geometry of each continuous tone object before it is rendered and thus to efficiently determine which black pixels to cover. In the case of DrvCopyBits and DrvPaint, the geometry is determined by the clip object (CLIPOBJ), which can be counted as a set of rectangles. [915] In the case of DrvStrokePath, work is more complex. DrvStrokePath supports both straight-line and bezier-spline curve segments, and single-pixel-wide lines and geometric-wide lines. The first step is to completely avoid the complexity of the Bezier-spline curve segments and the geometric-wide lines by clearing the corresponding capability flags (GCAPS_BEZIERS and GCAPS_GEOMETRICWIDE) in the flGraphicsCaps member of the driver's DEVINFO structure. This allows GDI to re-form such a call to DrvPaint as a simpler set of calls. In general, GDI gives the driver the opportunity to accelerate high-level capabilities, but simulates any capability not provided by the driver. [916] All that remains is to determine the geometry of the single-pixel-wide straight line. Such a line may be solid or cosmetic. In the latter case, the line style is determined by the styling array in the specified line attribute (LINEATTRS). The styling array specifies how lines will alternate between opaque and transparent along their length, and thus supports a variety of dashed line effects. [917] When the brush is solid black, straight lines can also be usefully rendered as a black layer, albeit with an increased width implied by 800 dpi resolution. [918] 9.3.3 Rendering text [919] In the case of DrvTextOut, work is also more complex. First, the opaque background, if any, is treated like any other fill on a continuous tone layer (see DrvPaint). If the foreground brush is not black, or the mix mode is not effectively opaque, or the font is not scalable, or the font indicates contour stroking, then the call is punched to EngTextOut to be applied to the continuous tone layer . However, before the call is punched, the driver determines the geometry of each glyph by obtaining its bitmap (via FONTOBJ_cGetGlyphs) and performs a normal block check on the black layer. [920] If punching the DrvTextOut call is not allowed (if the document data is ambiguous) then the driver should avoid complex text behavior. This includes inhibiting contour stroking (by clearing the GCAPS_VECTOR_FONT capability flag) and inhibiting the complex mix mode (by clearing the GCAPS_ARBMIXTXT capability flag). [921] If the foreground brush is black and opaque and the font is scalable and not stroked, then the glyph is rendered on the black layer. In this case, the driver determines the geometry of each glyph by getting its outline (again via FONTOBJ_cGetGlyphs, but as PATHOBJ). The driver then renders each glyph from its contour at 800 dpi and writes it to the black layer. Although the contour geometry uses device coordinates (ie, at 267 ppi), the coordinates are fixed point formats with many fractional precision for higher-resolution rendering. [922] Note that strike through and underline rectangles, if specified, are added to the glyph geometry. [923] The driver sets the GCAPS_HIGHRESTEXT flag in DEVINFO to request that the glyph position (again at 267 ppi device coordinates) be fed by GDI in a high-precision fixed-point format to allow for accurate positioning at 800 dpi shall. The driver should also provide an implementation of the DrvGetGlyphMode function so that it can display to the GDI that the glyph is to be cached as a contour rather than a bitmap. Ideally, the driver should cache the rendered glyph bitmaps for the memory's allowable efficiency. Only glyphs below a certain point size should be cached. [924] 9.3.4 Compress continuous tone layers [925] As described earlier, the continuous tone layer is compressed using JPEG. Forward discrete cosine transform (DCT) is the most costly part of JPEG compression. In current high-quality software implementations, the forward DCT of each 8x8 block requires 12 integer multiplications and 32 integer additions [7]. On Pentium processors, integer multiplication requires 10 cycles and integer addition requires 2 cycles [11]. This is equivalent to the total cost per block of 184 cycles. [926] The 25.5 MB continuous tone layer consists of 417,588 JPEG blocks giving a total forward DCT cost of about 77M cycles. At 300 MHz, PC 99 desktop standard [5], this is equivalent to 0.26 seconds, which is satisfied within the 2-second limit per page. [927] 10 Reference [928] [1] ANSI / EIA 538-1988, Facsimile Coding Schemes and Coding Control Functions for Facsimile Equipment , August 1988 [929] [2] Humphreys, GW, and V. Bruce, Visual Cognition , Lawrence Erlbaum Associates, 1989, p.15 [930] [3] IEEE Std 1284-1994, IEEE Standard Signaling Method for a Bidirectional Parallel Peripheral Interface for Personal Computers , 2 December 1994 [931] [4] Intel Corp. and Microsoft Corp., PC 98 System Design Guide , 1997 [932] [5] Intel Corp. and Microsoft Corp., PC 99 System Design Guide , 1998 [933] [6] ISO / IEC 19018-1: 1994, Information technology - Digital compression and coding of continuous-tone still images: Requirements and guidelines , 1994 [934] [7] Loeffler, C., A. Ligtenberg and G. Moschytz, "Practical Fast 1-D DCT Algorithms with 11 Multiplications", Proceedings of the International Conference on Acoustics, Speech, and Signal Processing 1989 (ICASSP '89) .988-991 [935] [8] Microsoft Corp., Microsoft Windows NT 4.0 Device Driver Kit , 1997 [936] [9] Microsoft Corp., Microsoft Windows NT 5.0 Device Driver Kit , 1998 [937] [10] Olsen, J. "Smoothing Enlarged Monochrome Images", in Glassner, AS (ed.), Graphics Gems , AP Professional, 1990 [938] [11] Schmit, ML, Pentium Processor Optimization Tools , AP Professional, 1995 [939] [12] Thompson, HS, Multilingual Corpus 1 CD-ROM, European Corpus Initiative [940] [13] Urban, S.J., "Review of standards for electronic imaging for facsimile systems", Journal of Electronic Imaging, Vol.1 (1), January 1992, pp.5-21 [941] [14] USB Implementers Forum, Universal Serial Bus Specification , Revision 1.0, 1996 [942] [15] USB Implementers Forum, Universal Serial Bus Device Class Definition for Printer Devices , Version 1.07 Draft, 1998 [943] [16] Wallace, GK, "The JPEG Still Picture Compression Standard", Communications of the ACM , 34 (4), April 1991, pp.30-44 [944] [17] Yasuda, Y., "Overview of Digital Facsimile Coding Techniques in Japan", Proceedings of the IEEE, Vol. 68 (7), July 1980, pp. 830-845 [945] Those skilled in the art will appreciate that many variations and / or modifications can be made to the invention as illustrated in the specific embodiments without departing from the scope or spirit of the invention as broadly described. Accordingly, the present embodiments are to be considered in all respects as illustrative and not restrictive.
权利要求:
Claims (155) [1" claim-type="Currently amended] A printer driver for a printer, the printer driver managing two layer buffers representing a page to be printed; Wherein the first layer of the buffer comprises background continuous tone data; The second layer of the buffer including foreground two-level data; The printer driver sending data from the buffer to the printer; The printer composing data from the layer of the buffer; Level layer is removed from the 2-level layer and discarded when the continuous tone data combined with the continuous tone layer determines that the data of the 2-level layer obscures the data, Level data is synthesized with the continuous tone layer when there is any interaction between the image represented by the data and the image represented by the obscured two-level data, And to synthesize with the continuous tone layer. [2" claim-type="Currently amended] 2. The printer driver of claim 1, wherein the continuous tone layer has a lower resolution than the two-level layer. [3" claim-type="Currently amended] 3. The method of claim 2, wherein the two layer page buffers are augmented with a third layer of continuous tone data; Wherein the third layer comprises a continuous tone version of two-level data of the second layer sub-sampled at a resolution of the first layer; Wherein when the printer driver determines that continuous tone data composited with the first layer obscures the continuous tone data of the third layer, the obscured continuous tone data is removed from the third layer and discarded, Wherein, when there is any interaction between the image represented by the tone data and the image represented by the obscured continuous tone data, the obscured continuous tone data before the blurring continuous tone data is combined with the first layer, Level data of the second layer, which is synthesized with the first layer and corresponds to the obscured continuous tone data of the third layer, is removed from the second layer. [4" claim-type="Currently amended] The printer driver of claim 1, wherein the interaction occurs between the continuous tone data and the image represented by the obscured two-level data when the continuous tone data represents an opaque image object. [5" claim-type="Currently amended] The printer driver according to claim 1, wherein the continuous tone layer data is color data and the 2-level layer data is black data. [6" claim-type="Currently amended] 6. The method of claim 5, A black image object is synthesized with the 2-level black layer when composited with the page buffer; A rule that when a continuous tone color image object is combined with the page buffer, it is combined with the continuous tone color layer; The black layer pixels are synthesized with the continuous tone layer before the continuous tone image object is synthesized with the continuous tone layer each time the black layer is blurred, even if it is not completely opaque, Lt; / RTI > And If the pixels of the continuous tone object are completely opaque, the corresponding pixels of the continuous tone layer are completely replaced by the pixels of the continuous tone object, so that it is not necessary to synthesize the corresponding pixels of the black layer with the continuous tone layer Wherein the printer driver implements the rule. [7" claim-type="Currently amended] The printer driver according to claim 2, wherein the 2-level layer data is transmitted to the printer in a compressed form. [8" claim-type="Currently amended] The printer driver according to claim 7, characterized in that Group 4 facsimile coding is used for the two-level compression by eliminating, tuning for higher resolution, or modifying the horizontal run length used as standard by modified Huffman coding. . [9" claim-type="Currently amended] 8. The printer driver of claim 7, wherein EDRL compression is used for the two-level compression. [10" claim-type="Currently amended] The printer driver according to claim 2, wherein the continuous tone layer data is transmitted to the printer in a compressed form. [11" claim-type="Currently amended] 11. The printer driver of claim 10, wherein JPEG compression or wavelet compression is used for the continuous tone compression. [12" claim-type="Currently amended] A printer driver for a printer, the printer driver managing two layer buffers representing a page to be printed; Wherein the first layer of the buffer comprises background continuous tone data; The second layer of the buffer including foreground two-level data; The printer driver transmitting data from the buffer to the printer; Wherein the printer is a printer driver for a printer that synthesizes data from the layer of the buffer, Operating the printer driver to determine whether continuous tone data synthesized with the continuous tone layer obscures the data of the 2-level layer; Removing the hidden 2-level data from the 2-level layer; And Level data, or if there is any interaction between the image represented by the shaded continuous tone data and the image represented by the obfuscated two-level data, And combining the obscured two-level data with the continuous tone layer before combining with the continuous tone layer. [13" claim-type="Currently amended] 13. The method of claim 12, wherein the continuous tone layer has a lower resolution than the two-level layer. [14" claim-type="Currently amended] 14. The method of claim 13, wherein the two layer page buffers are augmented with a third layer of continuous tone data; Wherein the third layer comprises a continuous tone version of two-level data of the second layer sub-sampled at a resolution of the first layer; Operating the printer driver to determine whether continuous tone data synthesized with the first layer obscures data in the third layer; Removing the obscured continuous tone data from the third layer; Discarding the obscured continuous tone data, or if there is any interaction between the image represented by the obscured continuous tone data and the image represented by the obscured continuous tone data, Synthesizing the obscured continuous tone data with the first layer prior to combining with the first layer; And Level data corresponding to the obscured continuous tone data of the third layer from the second layer. [15" claim-type="Currently amended] 13. The method of claim 12, wherein the interaction occurs between the continuous tone data and the image represented by the obscured two-level data when the continuous tone data represents an opaque image object. . [16" claim-type="Currently amended] 13. The method of claim 12, wherein the continuous tone layer data is color data and the 2-level layer data is black data. [17" claim-type="Currently amended] 17. The method of claim 16, A black image object is synthesized with the 2-level black layer when composited with the page buffer; A rule that when a continuous tone color image object is combined with the page buffer, it is combined with the continuous tone color layer; The black layer pixels are synthesized with the continuous tone layer before the continuous tone image object is synthesized with the continuous tone layer each time the black layer is blurred, even if it is not completely opaque, Lt; / RTI > And If the pixels of the continuous tone object are completely opaque, the corresponding pixels of the continuous tone layer are completely replaced by the pixels of the continuous tone object, so that it is not necessary to synthesize the corresponding pixels of the black layer with the continuous tone layer Wherein a rule is implemented by the printer driver. [18" claim-type="Currently amended] A modular printhead for a color printer, comprising: a plurality of nozzles each having an ink supply port, an ink deposition port, and a firing control port for receiving a signal to cause ink dots to be deposited from the deposition port during a firing cycle of the print head, Wherein the nozzles of each of the fathers are arranged in a plurality of distinct rows, and each of the nozzles of each of the fathers is arranged in a plurality of discrete rows, Wherein the selected mutually exclusive sub-groups of nozzles in the operation group are fired in a gating firing control to cause the sub-group to fire simultaneously in a certain phase of the firing cycle Port of the modular printhead. [19" claim-type="Currently amended] 19. The method of claim 18, wherein each pad has two rows of nozzles, the nozzles in one row depositing even dots along one line on the page, and the nozzles in the other row forming an odd number And depositing dots on the substrate. [20" claim-type="Currently amended] 20. The modular printhead of claim 19, wherein the amount of offset between the rows of nozzles is designed to match the flow of paper below the nozzles. [21" claim-type="Currently amended] 19. The method of claim 18, wherein the nozzles of each of the fades are arranged in the same direction, starting from the first side, along a first row ending at the other side, and then ending at the other side starting from the first side And thus firing in order. [22" claim-type="Currently amended] 19. The modular printhead of claim 18, wherein the single paddle comprises ten nozzles sharing a common ink reservoir. [23" claim-type="Currently amended] 19. The method of claim 18, wherein one of the fads of each of the other colors is grouped together to form a chroma paddle, the fads of the other color in the chroma pads are printed by dots printed by the nozzles of one color simultaneously Wherein each of the fads of the chroma-pads is arranged to print the same group of dots in turn. [24" claim-type="Currently amended] 24. The modular printhead of claim 23, wherein the at least one chroma pad is formed into a phase group and the group of nozzles in the phase group are simultaneously firing during a constant firing phase. [25" claim-type="Currently amended] 25. The method of claim 24, wherein the one or more chroma pads are organized into a single group of puddles, the at least one group of puddles is organized into a single phase group, the at least one phase group is organized into a single fire group, Wherein the at least one fire group constitutes a respective segment, and the print head has a number of segments side by side. [26" claim-type="Currently amended] A modular printhead for a color printer comprising a plurality of nozzles each having an ink supply port, an ink deposition port, and a firing control port for receiving a signal to cause ink dots to be deposited from the deposition port during a firing cycle of the print head The nozzles of each of the fads being connected to a common ink supply line and the nozzles of each of the fads being arranged in a plurality of distinct rows, Groups of folks of different colors are placed together into a motion group in which a selected mutually exclusive sub-group of nozzles has a gating firing control port to cause the sub-group to fire simultaneously in a certain phase of the firing cycle In a modular printhead for a color printer, Firing one nozzle per color from the chroma pads; And And then firing the nozzle from the next chroma pad in the group of fads. [27" claim-type="Currently amended] 27. The method of claim 26, wherein a slow print mode and a fast print mode are defined. [28" claim-type="Currently amended] 28. The method of claim 27, wherein there are at least two groups of fads in each phase group, and only one group of fades in each phase group fires the nozzles at one time during low-speed printing and the chroma- Characterized in that the fade must be fired before it is fired again. [29" claim-type="Currently amended] 28. The method of claim 27, wherein all of the group of fads simultaneously fires during high speed printing and the chroma pads in a single group of pads must be fired before the first chroma pads re-fire. [30" claim-type="Currently amended] 27. The method of claim 26, wherein the printhead calculates at least one line of feedback to adjust the timing of the firing pulse. [31" claim-type="Currently amended] A modular printhead for a color printer comprising a plurality of nozzles each having an ink supply port, an ink deposition port, and a firing control port for receiving a signal to cause ink dots to be deposited from the deposition port during a firing cycle of the print head The nozzles of each of the pads being connected to a common ink supply line, the nozzles of each of the pads being arranged in a plurality of discrete rows, each Groups of folks of different colors are placed together into a motion group in which a selected mutually exclusive sub-group of nozzles has a gating firing control port to cause the sub-group to fire simultaneously in a certain phase of the firing cycle , And the firing control port of each nozzle is the one that the nozzle will fire during the printing cycle The associated nozzle for determining whether or not the color printer in the modular print head having a navel-bit, there is provided a method of loading a nozzle Navel bit: Loading a nozzle for the next print cycle into a set of shift registers; And Immediately after all of said shift registers have been fully loaded, transferring all bits to the appropriate nozzles at the enable bit. [32" claim-type="Currently amended] 32. The method of claim 31, wherein there are N selected mutually exclusive sub-groups of nozzles each having n nozzles, Loading nozzles into the shift register with nozzles for nozzles 0, n, 2n, 3n, Nn during a first clock pulse; The method further comprising the step of loading the nozzle into the shift register for the nozzles 1, n + 1, 2n + 1, 3n + 1, ... Nn + 1 during the second clock pulse, etc. . [33" claim-type="Currently amended] 33. The method of claim 32, wherein the shift register is loaded with the nozzle as a slave bit in the order of the fade. [34" claim-type="Currently amended] 34. The method of claim 33, wherein the nozzle bleed for a constant paddle begins with a nozzle at a first side of the row so that the nozzle is loaded from the first side to the other side, and jig- ≪ / RTI > [35" claim-type="Currently amended] 34. The method of claim 33, wherein the nozzles for a constant paddle are loaded into the shift register in order of row and loaded in the order of the nozzles in the row. [36" claim-type="Currently amended] A printhead capping mechanism for preventing evaporation of ink from a printhead, the printhead capping mechanism comprising: a capping mechanism for selectively moving the cap between an engaged position depressing the printhead cap and a spaced- Wherein the actuating structure includes a slip wheel for engaging the drive wheel in a printer on which the print head is mounted, the engageable engagement of the drive wheel in the first direction, Is such that rotation of the drive wheel in the second direction causes movement of the cap from the engaged position to the unlocked position and rotation of the drive wheel in the second direction causes movement of the cap from the unlocked position to the engaged position. Gt; a < / RTI > printhead capping Mechanism. [37" claim-type="Currently amended] 37. The printhead capping mechanism of claim 36, wherein the cap comprises a capping plate for holding an elastomeric seal and a sponge. [38" claim-type="Currently amended] 37. The printhead capping mechanism of claim 36, wherein the elastomeric seal has a shape and size to seal the printhead when the cap is in the engaged position. [39" claim-type="Currently amended] 37. The printhead capping mechanism of claim 36, wherein the sponge is sized and positioned to capture any drop of ink exiting the printhead when the cap is in the engaged position. [40" claim-type="Currently amended] 38. The printhead of claim 36, wherein when the printhead is in use, the actuating structure is operable to move the cap to the unlocked position where the cap is held away from the paper path of the printer. Mechanism. [41" claim-type="Currently amended] 37. The printhead capping mechanism of claim 36, wherein the actuating structure operates by pivoting the cap between the engaged position and the unlocked position. [42" claim-type="Currently amended] 42. The apparatus of claim 41, wherein the cap is connected along the length of the rotatable rod, but rotation of the rod relative to the axis is laterally away from the rod to cause movement of the cap between the engaged and disengaged positions. Spaced apart from each other. [43" claim-type="Currently amended] 43. The printhead capping mechanism of claim 42, wherein the slip wheel is positioned at an end of the bar. [44" claim-type="Currently amended] 44. The printhead capping mechanism of claim 43, wherein the drive wheel is connected to a paper feed motor of the printer such that when the print is occurring, the rod is driven to move the cap to the unlocked position. [45" claim-type="Currently amended] 45. The printhead capping mechanism of claim 44, wherein the drive wheel is connected to a paper feed motor of the printer such that when the print stops, the rod is driven to move the cap to the engaged position. [46" claim-type="Currently amended] 45. The printhead capping mechanism of claim 44, wherein an elastic member is used to assist in retaining the cap at the engaged position. [47" claim-type="Currently amended] 47. The printhead capping mechanism of claim 46, wherein the elasticity is included in the connection between the cap and the rod. [48" claim-type="Currently amended] 48. The printhead capping mechanism of claim 47, wherein the connection is a series of flexible arms. [49" claim-type="Currently amended] A printhead, and the printhead capping mechanism according to claim 36. [50" claim-type="Currently amended] 36. A printer comprising the printhead capping mechanism according to claim 36, wherein the drive wheel of the paper transport system of the printer operates the actuating structure of the mechanism. [51" claim-type="Currently amended] A half toner / synthesizer unit for half toning a continuous tone color layer to two levels and compositing a black layer over a continuous toned toned halftone layer, An input port for receiving a continuous tone color layer in the form of a series of continuous tone color pixel values and a black layer in the form of a series of black dot values; A dither unit for dithering each successive tone color pixel value received at the input port and for determining a value of a 2-level output dot for each color component; A combining unit for receiving a value of a two-level output dot from the dither unit and a black dot value from the input port and synthesizing a black layer onto a half-toned layer; A clock enable generator for generating an enable signal to clock a continuous tone color pixel input, a black dot input, and a dot output; And And an output port for delivering a set of two-level image lines having the form of a series of two-level dots. [52" claim-type="Currently amended] 52. The half-toner / synthesizer unit of claim 51, wherein the color plane is separated at the output. [53" claim-type="Currently amended] 52. The half-tone / synthesizer unit of claim 51, wherein the color continuous tone layer is a CMYK continuous tone layer. [54" claim-type="Currently amended] 54. The method of claim 53, wherein the output stage of the unit uses 8 parallel pixel FIFOs, one for each of even cyan, odd cyan, even magenta, odd magenta, even yellow, odd yellow, even black, Half toner / synthesizer unit. [55" claim-type="Currently amended] 55. The half-tone / synthesizer unit of claim 54, wherein the clock enable generator generates an even signal that is used to select an even or odd set of output dot FIFOs. [56" claim-type="Currently amended] 52. The half-toner / synthesizer unit of claim 51, wherein the unit generates a page of dots of a specified width and length, wherein a number of the following registers are used. Half toner / synthesizer control and configuration registers register width Explanation start One Started Half Toner / Synthesizer stop One Stop Half Toner / Synthesizer Page width 14 In dots, the page width of the printed page. This is the number of dots to be generated for each line. Left margin 14 In the dot, the position of the left margin Right margin 14 In the dot, the position of the right margin Page length 15 In dots, the page length of the printed page. This is the number of lines that should be generated for each page. Black Page Width 14 In a dot, the page width of the black layer is used to detect the end of the black line. Continuous tone page width 14 In dots, the page width of a continuous tone layer. Used to detect the end of a continuous tone line. Continuous tone conversion factor 4 The conversion factor used to scale continuous tone data to 2-level resolution [57" claim-type="Currently amended] 52. The half-toner / synthesizer unit of claim 51, wherein each dot column of the dither volume in the dither unit is implemented as a fixed set of threshold values. [58" claim-type="Currently amended] 57. The apparatus of claim 57, wherein the dither unit uses a triple-threshold 64 x 64 x 3 x 8-bit (12 KB) dither volume, and the three thresholds comprise a 24- Lt; RTI ID = 0.0 > of: < / RTI > [59" claim-type="Currently amended] 59. The half-toner / synthesizer unit of claim 58, wherein if a dither unit match is desired between the color planes, the same triple-threshold value can be retrieved once and used to dither each color component. [60" claim-type="Currently amended] 59. The method of claim 58, wherein if no dither unit match is desired, the dither unit may be divided into four sub-cells and stored in four individually addressable ROMs, and four different triple-threshold values Lt; RTI ID = 0.0 > 1, < / RTI > [61" claim-type="Currently amended] 59. The half-toner / synthesizer unit of claim 58, wherein the four color planes share the same dither unit at a vertical and / or horizontal offset of 32 dots from each other. [62" claim-type="Currently amended] 59. The half-toner / combiner unit of claim 58, wherein a multi-threshold dither unit is used. [63" claim-type="Currently amended] 63. The apparatus of claim 62, wherein the tri-threshold dither unit is configured to convert the tri-threshold values T 1 , T 2, and T 3 and the intensity value V to an intermediate and one or zero bit, as shown in the following table Half toner / combiner unit. Triple-Threshold Rule Interval Print V T 1 0 T 1 <V T 2 One T 2 <V T 3 0 T 3 <V One [64" claim-type="Currently amended] The method of claim 51, wherein the four-bit half-toning the color C c M c Y c K c and 1-bit black layer when the opacity K b is given, the logic synthesis half toner, characterized in that, as defined in the following table / Synthesizer unit. Composite logic Color channel Condition C C c ∧ -K bM M c ∧ -K bY Y c ∧ -K bK K c ∨ K b [65" claim-type="Currently amended] 52. The half-toner / synthesizer unit of claim 51, wherein the clock enable generator uses a set of counters and the internal logic of the counter is as defined in the following table. Clock Enable Generator Counter Logic counter Abbreviation width data Load condition Condition of disparity dot D 14 Page width RP a ∨ EOL b (D > 0) ^ clk line L 15 Page length RP (L > 0) ^ EOL Left margin LM 14 Left margin RP ∨ EOL (LM > 0) ^ clk Right margin RM 14 Right margin RP ∨ EOL (RM > 0) ^ clk Even / odd dot E One 0 RP ∨ EOL clk Black dot BD 14 Black Width RP ∨ EOL (LM = 0) ^ (BD > 0) ^ clk Continuous tone dot CD 14 Continuous tone width RP ∨ EOL (LM = 0) ^ (CD > 0) ^ clk Continuous tone sub-pixel CSP 4 Continuous tone conversion factor RP E EOL ∨ (CSP = 0) (LM = 0) ^ clk Continuous tone sub-line CSL 4 Continuous tone conversion factor RP ∨ (CSL = 0) EOL ^ clka (RP) Condition: External signal b EOL (End of line) Condition: (D = 0) ^ (BD = 0) ^ (CD = 0) [66" claim-type="Currently amended] 52. The half-toner / synthesizer unit of claim 51, wherein the logic of the clock enable signal is defined in the following table. Clock Enable Generator Output Signal Logic Output signal Condition Output dot clock enable (D > 0) ^ - EOP aBlack dot clock enable (LM = 0) ^ (BD > 0) ^ EOP Continuous tone pixel clock enable (LM = 0) ^ (CD > 0) ^ (CSP = 0) ^ - EOP Continuous tone line advance enable (CSL = 0) ^ - EOP Even E = 0 White space (LM = 0) ((RM = 0)a EOP (end of page) Condition: L = 0 [67" claim-type="Currently amended] A half toner / synthesizer unit for half toning a continuous tone color layer digitally to two levels and compositing a black layer over a continuous toned toned halftone layer, the half toner / synthesizer unit comprising an extended color sequence An input port for receiving an extended black layer in the form of a tone layer and a series of black dot values; And A method for halftoning and compositing simultaneously in a half-toner / synthesizer unit comprising an output port for delivering a set of two-level image lines in the form of a series of two-level dots, Using a dither unit to dither each successive tone color pixel value received at the input port and to determine a value of a two-level output dot for each color component; Receiving a value of the 2-level output dot from the dither unit and a black dot value from the input port and compositing the black dot onto the half-toned color dot; And Using a clock enable generator to generate an enable signal for clocking the continuous tone color pixel input, the black dot input, and the dot output. [68" claim-type="Currently amended] 70. The method of claim 67, further comprising using a triple-threshold 64 x 64 x 3 x 8-bit (12 KB) dither volume, wherein the three thresholds are selected from the group of 24 - < / RTI > bit value. [69" claim-type="Currently amended] 69. The method of claim 68, further comprising using the same triple-threshold value once searched to dither each color component if a dither match is desired between color planes. [70" claim-type="Currently amended] 69. The method of claim 68 further comprising dividing the dither cell into four subcells and storing in four individually addressable ROMs if dither cell matching is not desired, Characterized in that it can be retrieved in parallel from the ROM in one cycle. [71" claim-type="Currently amended] 70. The method of claim 67, further comprising using a multi-threshold dither. [72" claim-type="Currently amended] The method of claim 68 wherein, triple, as shown in the following table: - The method of the threshold value T 1, characterized in that it comprises a T 2 and T 3 and the intensity value the steps of bits converting V intervals and one or zero more . Triple-Threshold Rule Interval Print V T 1 0 T 1 <V T 2 One T 2 <V T 3 0 T 3 <V One [73" claim-type="Currently amended] The method of claim 67, wherein the four-bit half-toning the color C c M c K c and Y c, given the one-bit black layer opacity K b, synthesized logic characterized in that, as defined in the following table. Composite logic Color channel Condition C C c ∧ -K bM M c ∧ -K bY Y c ∧ -K bK K c ∨ K b [74" claim-type="Currently amended] 68. The method of claim 67, wherein the clock enable generator uses a set of counters and the internal logic of the counter is defined in the following table. Clock Enable Generator Counter Logic counter Abbreviation width data Load condition Condition of disparity dot D 14 Page width RP a ∨ EOL b (D > 0) ^ clk line L 15 Page length RP (L > 0) ^ EOL Left margin LM 14 Left margin RP ∨ EOL (LM > 0) ^ clk Right margin RM 14 Right margin RP ∨ EOL (RM > 0) ^ clk Even / odd dot E One 0 RP ∨ EOL clk Black dot BD 14 Black Width RP ∨ EOL (LM = 0) ^ (BD > 0) ^ clk Continuous tone dot CD 14 Continuous tone width RP ∨ EOL (LM = 0) ^ (CD > 0) ^ clk Continuous tone sub-pixel CSP 4 Continuous tone conversion factor RP E EOL ∨ (CSP = 0) (LM = 0) ^ clk Continuous tone sub-line CSL 4 Continuous tone conversion factor RP ∨ (CSL = 0) EOL ^ clka (RP) Condition: External signal b EOL (End of line) Condition: (D = 0) ^ (BD = 0) ^ (CD = 0) [75" claim-type="Currently amended] 70. The method of claim 67, wherein the logic of the clock enable signal is defined in the following table. Clock Enable Generator Output Signal Logic Output signal Condition Output dot clock enable (D > 0) ^ - EOP aBlack dot clock enable (LM = 0) ^ (BD > 0) ^ EOP Continuous tone pixel clock enable (LM = 0) ^ (CD > 0) ^ (CSP = 0) ^ - EOP Continuous tone line advance enable (CSL = 0) ^ - EOP Even E = 0 White space (LM = 0) ((RM = 0)a EOP (end of page) Condition: L = 0 [76" claim-type="Currently amended] A dither unit for digitally halftoning a continuous tone color image having the form of an array of continuous tone color pixel values into two-level dots, the dither unit comprising a dither volume, And a fixed set of n thresholds defining an n + 1 intensity interlace for the dither cell position, wherein the dither cell position is set to be set in the interblock without being set alternately. [77" claim-type="Currently amended] 76. The apparatus of claim 76, further comprising, for each color component of the image, a multi-threshold unit, wherein all of the multi-threshold units are operatively connected to the dither volume, Value unit determines the value of the output dot corresponding to the continuous tone color pixel component by determining if the dither cell position corresponding to the position of the output dot is set to be set in the intensity interval that the continuous tone value uniquely chooses And the dither unit. [78" claim-type="Currently amended] The dither unit according to claim 77, wherein three threshold values are used. [79" claim-type="Currently amended] 79. The dither unit of claim 78, wherein three 8-bit threshold values are used. [80" claim-type="Currently amended] 78. The dither unit of claim 77, wherein if a dither cell match is desired between the color planes, the multi-threshold value is retrieved once from the dither volume and used to dither each color component. [81" claim-type="Currently amended] 80. The method of claim 79, wherein if dither cell matching is not desired between the color planes, the dither cells are divided into sub-cells, stored individually in an addressable memory, and other multi-threshold values are retrieved in parallel from the memory And the dither unit. [82" claim-type="Currently amended] 83. The apparatus of claim 81, wherein the dither unit is capable of dithering four component continuous tone color images and comprises four distinct tri-threshold units, each of the tri- Wherein the dither unit further comprises a dither cell address generator for receiving a series of consecutive tone color pixel component values for the color component, the address generator further comprising: Way multiplexer, for each triple-threshold unit, to control the search. ≪ Desc / Clms Page number 14 > [83" claim-type="Currently amended] The method of claim 82, wherein according to eojin rule shown in the following table, and three of the threshold-unit triple-threshold T 1, T 2 and T 3 and the intensity values V the intervals, and one or zero bits, characterized in that the conversion . Triple-Threshold Rule Interval Print V T 1 0 T 1 <V T 2 One T 2 <V T 3 0 T 3 <V One [84" claim-type="Currently amended] A dither unit for digitally halftoning a continuous tone color image having the form of an array of consecutive tone color pixel values into a two-level dot, said dither unit comprising, in a dither unit comprising a dither volume, expressing each dither cell position of the dither volume by a fixed set of n thresholds defining an n + 1 intensity interlace; And Using the value of the successive tone pixel component dithered to uniquely select one of the n + 1 intensity interlaces to determine a value of the output dot corresponding to the successive tone pixel component value, Wherein the dither cell position is set to be set and not set alternately within the interval. [85" claim-type="Currently amended] 85. The apparatus of claim 84, wherein the dither unit further comprises: a multi-threshold unit for each color component of the image, wherein all of the multi-threshold units are operatively coupled to the dither volume, Determining a value of the output dot corresponding to the continuous tone color pixel component value by determining whether the dither cell position corresponding to the position of the output dot is set to be within the intensity interblock that the continuous tone value uniquely selects, - determining in the threshold unit. [86" claim-type="Currently amended] The method of claim 85, wherein three threshold values are used. [87" claim-type="Currently amended] 87. The method of claim 86, wherein three 8-bit thresholds are used. [88" claim-type="Currently amended] 86. The method of claim 85, further comprising: retrieving the multi-threshold once if dither cell matching is desired between color planes, and using the value to dither each color component Lt; / RTI > [89" claim-type="Currently amended] 86. The method of claim 85, further comprising: dividing the dither cell into sub-cells if dither cell matching is not desired between the color planes, storing the sub-cells in an individually addressable memory, ≪ / RTI > further comprising searching for multiple multi-threshold values in parallel. [90" claim-type="Currently amended] 90. The method of claim 89, wherein the method is capable of dithering a four-component continuous tone color image, using four distinct tri-threshold units, each of the tri- Receiving a series of consecutive tone color pixel element values for a color component, the method also employing a dither cell address generator, the address generator retrieving four different triple-threshold values from a sub- Way multiplexer, for each triple-threshold unit, to control four 4-way multiplexers. [91" claim-type="Currently amended] 90. The apparatus of claim 90, wherein, in accordance with the rules set forth in the following table, said triple threshold-unit is configured to convert triple-threshold values T 1 , T 2 and T 3 and intensity value V into an interpolated and one or zero bit Lt; / RTI > Triple-Threshold Rule Interval Print V T 1 0 T 1 <V T 2 One T 2 <V T 3 0 T 3 <V One [92" claim-type="Currently amended] Having an ink supply port for receiving ink from an ink reservoir, an ink deposition port for ejecting ink dots, and a firing control port for receiving a signal to cause ink dots to be deposited from the deposition port during a firing cycle of the print head A printer having a printhead controller for a type of printhead including a nozzle, the printhead controller comprising means for supplying a firing signal to the firing control port of the nozzle, And is operable to effect a series of modified firing cycles to provide a series of short firing pulses to each nozzle, wherein the duration of the pulses is insufficient to fire the droplets However, it is characterized by being sufficient to heat the ink The printer. [93" claim-type="Currently amended] 93. The apparatus of claim 92, wherein the printhead further comprises a temperature sensor for computing a signal indicative of the temperature of the printhead, the printhead controller further comprising means for receiving a signal indicative of the temperature of the printhead from a temperature sensor Wherein the series of short firing pulses continues until the signal indicating the temperature of the print head indicates that the operating equilibrium temperature has been reached. [94" claim-type="Currently amended] 93. The printer as claimed in claim 92, wherein the short firing pulse comprises about one-half of the energy of a firing pulse sufficient to fire the droplet of ink. [95" claim-type="Currently amended] 93. The printer as claimed in claim 92, wherein the printhead controller performs a series of strained firing cycles until a temperature between < RTI ID = 0.0 > 10 C < / RTI > [96" claim-type="Currently amended] 95. The printer of claim 95, wherein the printhead controller performs a series of deformation firing cycles until a temperature between < RTI ID = 0.0 > 20 C < / RTI > [97" claim-type="Currently amended] 96. The printer of claim 96, wherein the printhead controller performs a series of deformation firing cycles until a temperature of about 30 < 0 > C higher than room temperature is reached. [98" claim-type="Currently amended] 93. The printer as claimed in claim 92, wherein the printhead controller executes about 200 strain firing cycles for each nozzle. [99" claim-type="Currently amended] 92. The printer of claim 92, wherein the printhead controller performs a strain firing cycle for approximately 50 milliseconds. [100" claim-type="Currently amended] 92. The printer of claim 92, wherein the printhead controller executes a modified firing cycle while data is being transferred to the printer. [101" claim-type="Currently amended] A plurality of nozzles each having an ink supply port for receiving ink from an ink reservoir, an ink deposition port for ejecting ink dots, and a firing control port for receiving a signal to cause ink dots to be deposited from the deposition port during a firing cycle of the print head, , The printhead controller comprising a means for supplying a firing signal to the firing control port of the nozzle, in a preheat method for operating the printhead controller As a result, Before each print job, setting all nozzles to firing; And Performing a series of modified firing cycles to supply a series of short firing pulses to each nozzle, wherein the duration of each pulse is insufficient to fire the droplet, but is sufficient to heat the ink Lt; / RTI > [102" claim-type="Currently amended] 102. The apparatus of claim 101, wherein the printhead includes a temperature sensor that produces a signal indicative of a temperature of the printhead, the printhead controller including means for receiving a signal indicative of the temperature of the printhead from a temperature sensor, Monitoring a signal indicative of the temperature of the printhead; And Further comprising terminating a series of deformation firing cycles when the printhead reaches its operating equilibrium temperature. [103" claim-type="Currently amended] 102. The method of claim 101, wherein the short firing pulse comprises about one-half of the energy of a firing pulse sufficient to fire the droplet of ink. [104" claim-type="Currently amended] 102. The method of claim 101, wherein the printhead controller performs a series of strained firing cycles until a temperature of between < RTI ID = 0.0 > 10 C < / RTI > [105" claim-type="Currently amended] 105. The method of claim 104, wherein the printhead controller performs a series of strained firing cycles until a temperature between < RTI ID = 0.0 > 20 C < / RTI > [106" claim-type="Currently amended] 106. The method of claim 105, wherein the printhead controller performs a series of deformation firing cycles until a temperature of about 30 占 폚 above room temperature is reached. [107" claim-type="Currently amended] 102. The method of claim 101, wherein the printhead controller executes about 200 strain firing cycles for each nozzle. [108" claim-type="Currently amended] 102. The method of claim 101, wherein the printhead controller performs a strain firing cycle for about 50 milliseconds. [109" claim-type="Currently amended] 102. The method of claim 101, wherein the printhead controller performs a modified firing cycle while data is being transmitted to the printer. [110" claim-type="Currently amended] A plurality of parallel processors for requesting simultaneous access to the resources, a resource address generator for generating coordinates in the resources, the resources being divided into different parts, The resource address generator generates the coordinates used to select the part of the resource used by each processor and the selection ensures that each part is only used by one processor at a time Wherein the resource is located in a first location. [111" claim-type="Currently amended] 112. The resource of claim 110, wherein the selection also ensures that each processor uses the part in the order in which the parts appear in the resource. [112" claim-type="Currently amended] 112. The apparatus of claim 110, wherein the resource is a multi-threshold dither matrix used for digitally halftoning a continuous tone color image in the form of an array of successive tone color pixel values into two-level dots, Wherein the threshold dither matrix comprises a fixed set of n threshold values defining an n + 1 intensity interval for each dither cell position, wherein the dither cell position is set to be set and not set alternately within the interval . [113" claim-type="Currently amended] 114. The system of claim 112, wherein the multiple parallel processor requesting simultaneous access to the resource is a multi-threshold unit provided for each color component of the image, and all of the multi-threshold units are multi- Threshold unit determines whether the dither cell position corresponding to the position of the output dot is set to be set in the intensity interval that the continuous tone value uniquely selects, The value of the output dot corresponding to the color pixel component. [114" claim-type="Currently amended] 113. The resource of claim 113, wherein the dither cell is divided into sub-cells and stored in an individually addressable memory, and the other multi-threshold values are retrieved in parallel from the memory. [115" claim-type="Currently amended] 115. The apparatus of claim 114, wherein the four color component successive tone images are to be halftoned and four distinct tri-threshold units are capable of receiving a series of successive tone color pixel values for each color component, And the dither cell address generator operates with respect to each of the threshold units in conjunction with four 4-way multiplexers to control the retrieval of four different triple-threshold values from four different sub-cells of the dither matrix . [116" claim-type="Currently amended] CLAIMS What is claimed is: 1. A method for accessing resources maintained in a computer memory, the multiple parallel processor requesting simultaneous access to the resource, a resource address generator for generating coordinates in the resource, Dividing the resource into different parts; Storing each part in a different memory bank; And Operating a resource address generator that generates coordinates used to select a part of a resource used by each processor, the selection being arranged to ensure that each part is only used by one processor at a time ≪ / RTI > [117" claim-type="Currently amended] 116. The method of claim 116, wherein the selection further comprises ensuring that each processor uses the part in the order in which the parts appear in the resource. [118" claim-type="Currently amended] 117. The apparatus of claim 117, wherein the resource is a multi-threshold dither matrix for digitally halftoning a continuous tone color image in the form of an array of successive tone color pixel values into two-level dots, For each dither cell location, a fixed set of n threshold values defining an n + 1 intensity interlace, wherein the dither cell position is set to be set and not set alternately within the interval, A multiple parallel processor requiring simultaneous access to resources is a multi-threshold unit provided for each color component of the image, All multi-threshold units are operatively coupled to a dither matrix, For each multi-threshold unit, by determining whether the dither cell position corresponding to the position of the output dot is set to be set in the intensity interval that the continuous tone value uniquely chooses, corresponding to the continuous tone color pixel component value And determining a value of the output dot to be output. [119" claim-type="Currently amended] 119. The method of claim 118, further comprising dividing the dither cell into sub-cells and storing each sub-cell in an individually addressable memory, wherein different multi-threshold values are searched in parallel from the memory Way. [120" claim-type="Currently amended] 119. The apparatus of claim 118, wherein the four color component successive tone layers are to be halftoned, four distinct triangular threshold units each receive a series of successive tone color pixel values for each color component, Includes the step of operating a dither cell address generator with respect to four 4-way multiplexers for each threshold unit to control retrieval of four different triple thresholds from four different sub-cells of the dither matrix . ≪ / RTI > [121" claim-type="Currently amended] In a printer having a type of printhead including a plurality of nozzles each having an ink supply port, an ink deposition port, and a firing control port for receiving a signal to cause ink dots to be deposited from the deposition port during a firing cycle of the print head Wherein the printer system further comprises an ink reservoir for supplying ink to the ink supply port of the nozzle, the printer system being operative to predict when the ink in the ink reservoir has bottomed, An input port for receiving a signal indicating the number of dots of ink to be printed or printed by the printer, a memory for storing data representing the number of dots of ink remaining in the ink container, A processor for receiving and updating the memory when printing occurs, And wherein the signal indicating the number of dots of ink printed by the printer is a printer system, characterized in that associated with the signal received from the firing control port of the nozzle. [122" claim-type="Currently amended] The printer system according to claim 121, wherein, at the end of the predetermined number of pages, an indication occurs that there is sufficient ink remaining in the ink reservoir to print another page. [123" claim-type="Currently amended] 124. The printer system according to claim 122, wherein the new page is not printed unless sufficient ink remains. [124" claim-type="Currently amended] The printer system according to claim 121, wherein the signal indicative of the number of dots to be printed or printed is derived from a controller for the ink container, the print head itself, or the print head. [125" claim-type="Currently amended] The printer system of claim 121, wherein the dot counter conserves a count of the number of dots of ink fired or fired from the printhead. [126" claim-type="Currently amended] 128. The printer system of claim 125, wherein the dot count is periodically cleared. [127" claim-type="Currently amended] 126. The method of claim 125, wherein the dot counter is configured to receive an output from an input port that receives a signal each time a dot is printed, a bit counter having a clock and a clear input terminal, a positive feedback connection around the counter, And the printer system. [128" claim-type="Currently amended] 127. The printer system of claim 127, wherein the encoder is placed on an input line to the dot counter to convert the received signal. [129" claim-type="Currently amended] The printer system of claim 121, wherein the printer system is for use in a printer comprising at least one ink reservoir, the printer system receiving a signal indicative of the number of dots of ink from the ink container printed or printed by the printer And wherein the memory stores data representing the number of dots of ink remaining in each of the ink reservoirs. [130" claim-type="Currently amended] In a printer having a type of printhead including a plurality of nozzles each having an ink supply port, an ink deposition port, and a firing control port for receiving a signal to cause ink dots to be deposited from the deposition port during a firing cycle of the print head Wherein the printer further comprises a reservoir for supplying ink to the ink supply port of the nozzle, the method comprising: operating the printer system to predict when ink in the reservoir bottoms, Receiving a signal indicating the number of dots of ink printed or printed by the printer; Storing data expressing the number of dots of ink remaining in the ink container; And Characterized in that said signal indicating the number of dots of ink printed or printed by the printer is related to the signal received at the firing control port of said nozzle Way. [131" claim-type="Currently amended] 132. The method of claim 130, further comprising generating at the end of the predetermined number of pages an indication that sufficient ink remains in the ink reservoir to print another page. [132" claim-type="Currently amended] 132. The method of claim 131, wherein the new page is not printed unless sufficient ink remains. [133" claim-type="Currently amended] 121. The method of claim 130, wherein the signal indicative of the number of dots to be printed or printed is derived from a controller for the ink container, the print head itself, or the print head. [134" claim-type="Currently amended] 126. The method of claim 130, further comprising maintaining a count of the number of dots of ink fired or fired from the printhead. [135" claim-type="Currently amended] 134. The method of claim 134, further comprising periodically clearing the dot count. [136" claim-type="Currently amended] 118. The printer of claim 130, wherein the printer comprises at least one ink reservoir, Receiving a signal indicative of the number of dots of ink from each ink container to be printed or printed; And Further comprising the step of storing data representing the number of dots of ink remaining in each ink reservoir. [137" claim-type="Currently amended] A firing pulse duration control system for a printer, A first input port for receiving a signal indicative of a voltage available; A programmable pulse duration table indexed by a signal received at a first input port to generate a control signal representative of a predetermined duration for a firing pulse; And And an output port for transmitting a control signal. [138" claim-type="Currently amended] 136. The apparatus of claim 137, further comprising a second input port for receiving a signal indicative of the temperature of the printhead in the printer, wherein the programmable pulse duration table is indexed by a signal received at the first and second input ports The control system comprising: [139" claim-type="Currently amended] The control system of claim 137, wherein entries in the table represent values in the range of 0-4 ms and control outputs are generated in accordance with the indexed entries. [140" claim-type="Currently amended] 143. The control system of claim 137, wherein the pulse width generator is placed under the flow of the control system to receive its control output and generate a firing pulse for the print head. [141" claim-type="Currently amended] The control system according to claim 137, wherein the table is recorded before printing the first page of the print run. [142" claim-type="Currently amended] The control system of claim 137, wherein the table is updated between pages of a print run. [143" claim-type="Currently amended] The method of claim 137, wherein each entry in the table User brightness setting; Viscous curves of ink; A T sense that informs the controller how hot the print head is; A V-sense that tells the controller how much voltage can be used for the actuator; An R sense that informs the controller of the resistivity (ohms per square) of the actuator heater; And And a weight from at least one of the W sense that informs the controller of the width of the critical section of the heater. [144" claim-type="Currently amended] 143. The control system of claim 137, wherein the pulse duration table has 256 entries, each entry being 8-bits. [145" claim-type="Currently amended] 136. The control system according to claim 138, wherein the signal indicative of the voltage comes from the V-sense and the signal indicative of the temperature comes from the T-sense. [146" claim-type="Currently amended] 145. The control system of claim 145, wherein the signal received at the input port is transformed for use in indexing the table. [147" claim-type="Currently amended] 145. The control system of claim 146, wherein the 8-bit entry into the table is indexed by two 4-bit numbers consisting of the upper 4-bits from the V-sense and the lower 4-bits from the T-sense. [148" claim-type="Currently amended] A first input port; A programmable pulse duration table; And A method for generating a firing pulse duration control signal in a firing pulse duration control system for a printer, The method comprising: receiving a first signal indicative of a voltage available; Indexing a programmable pulse duration table by a first signal to generate a control signal representative of a predetermined duration for a firing pulse; And And transmitting a control signal. [149" claim-type="Currently amended] 148. The apparatus of claim 148, wherein a second input is provided, Receiving a second signal indicative of the temperature of the printhead in the printer; And Further comprising indexing a programmable pulse duration table by the first and second signals. [150" claim-type="Currently amended] 139. The method of claim 148, preceded by the step of recording the table before printing the first page of the print run. [151" claim-type="Currently amended] 153. The method of claim 150, further comprising updating the table between pages of the print run. [152" claim-type="Currently amended] 139. The method of claim 148, User brightness setting; Viscous curves of ink; A T sense that informs the controller how hot the print head is; A V-sense that tells the controller how much voltage can be used for the actuator; An R sense that informs the controller of the resistivity (ohms per square) of the actuator heater; And Further comprising weighting each entry in the table with one or more of the W senses informing the controller of the width of the critical section of the heater. [153" claim-type="Currently amended] 153. The method of claim 149, further comprising using a V sense for a signal representing the voltage and using T sense for a signal representing the temperature. [154" claim-type="Currently amended] 153. The method of claim 153 further comprising transforming a received signal at an input port for use in indexing a table. [155" claim-type="Currently amended] 156. The method of claim 154, further comprising indexing the 8-bit entry into a table by two 4-bit numbers consisting of the upper 4-bits from the V-sense and the lower 4-bits from the T-sense Way.
类似技术:
公开号 | 公开日 | 专利标题 US7465002B2|2008-12-16|Printer having controllers for common control of printhead US7837284B2|2010-11-23|Printhead having multiple controllers for printhead modules US7224478B1|2007-05-29|Printer controller for a high-speed printer US7775616B2|2010-08-17|Printhead having controllers for multi-channel printhead modules US7173739B2|2007-02-06|Pagewidth inkjet printer having composite image printing control US7891766B2|2011-02-22|Printhead having combined printhead module types US7978372B2|2011-07-12|Printhead driven by multiple print engine controllers US8123318B2|2012-02-28|Printhead having controlled nozzle firing grouping US7524007B2|2009-04-28|Printhead having sequenced nozzle firing US20090058903A1|2009-03-05|Printer controller configured to compensate for dead printhead nozzles AU2004202407B2|2006-01-05|Print engine controller with dithering and compositing circuitry US7802862B2|2010-09-28|Printhead having sequenced nozzle firing on integrated circuit US7901037B2|2011-03-08|Print engine having printhead control modes US7980648B2|2011-07-19|Print engine controller utilizing on and off chip memory for dot data formatting US7914107B2|2011-03-29|Printer incorporating multiple synchronizing printer controllers EP2031856B1|2018-10-24|Image decoding apparatus andmethod AU2004202408B2|2006-01-05|A print engine controller for a pagewidth inkjet print head CN1284673C|2006-11-15|Digital printing system CN1305681C|2007-03-21|Printing system with compact transfer roller CN100423939C|2008-10-08|Duplex inkjet printing system US6402294B2|2002-06-11|Printer, printing method, and data storage medium US7841789B2|2010-11-30|Printer with print engine mounted within paper tray US7845789B2|2010-12-07|Print engine with a transfer roller for a recess-mountable pagewidth printer US20080111844A1|2008-05-15|Printer controller for sequenced printhead nozzle firing US7808670B2|2010-10-05|Print media tray assembly with ink transfer arrangement
同族专利:
公开号 | 公开日 EP1128961B1|2009-04-29| JP2009184347A|2009-08-20| KR100576744B1|2006-05-03| KR100577025B1|2006-05-08| JP2009188985A|2009-08-20| KR100622619B1|2006-09-19| KR20040104715A|2004-12-10| JP2009124715A|2009-06-04| KR20040104714A|2004-12-10| KR20040104716A|2004-12-10| EP1128961A1|2001-09-05| JP4621766B2|2011-01-26| CN1508013A|2004-06-30| CN1277678C|2006-10-04| DE69940824D1|2009-06-10| CN1138636C|2004-02-18| KR20040106499A|2004-12-17| CN1284673C|2006-11-15| KR100576605B1|2006-05-04| KR20040104719A|2004-12-10| KR100577088B1|2006-05-08| KR100577357B1|2006-05-08| JP2009119870A|2009-06-04| KR20040104717A|2004-12-10| KR20040104718A|2004-12-10| AU1533600A|2000-05-29| KR100577056B1|2006-05-08| KR100577022B1|2006-05-08| KR100576642B1|2006-05-04| KR20040104720A|2004-12-10| AT430443T|2009-05-15| EP1128961A4|2007-05-16| CN1326403A|2001-12-12| WO2000027640A1|2000-05-18| JP2003508827A|2003-03-04| CN1508014A|2004-06-30|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
1998-11-09|Priority to AUPP7025A 1998-11-09|Priority to AUPP7024A 1998-11-09|Priority to AUPP7024 1998-11-09|Priority to AUPP7025 1999-11-09|Application filed by 추후제출, 실버브룩 리서치 피티와이 리미티드 2001-12-07|Publication of KR20010107956A 2006-05-08|Application granted 2006-05-08|Publication of KR100577022B1
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 AUPP7025A|AUPP702598A0|1998-11-09|1998-11-09|Image creation method and apparatus | AUPP7024A|AUPP702498A0|1998-11-09|1998-11-09|Image creation method and apparatus | AUPP7024|1998-11-09| AUPP7025|1998-11-09| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|