Abstract:
A memory use and management method and system for a multi-pass printer. The system has a band buffer, a band buffer manager and a print engine. The band buffer receives and masks an input data, and stores masked data resulting from masking the input data. The band buffer manager is connected to the band buffer in order to start to print the masked data as the band buffer stores an amount of one complete print pass for a printhead of the printer. The print engine has the printhead and is connected to the band buffer such that the print engine receives the masked data from the band buffer and prints it by the printhead. Data amount stored in the band buffer can be represented by an equation, [(1+2+3+ . . . +j+j)/(i*j)]*S, where j indicates partitioned number of one complete print, and S indicates data amount required by one complete print.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention relates to the technical field of dynamic random access memory (DRAM) management and, more particularly, to a memory use and management method and system for a multi-pass printer.  
         [0003]     2. Description of Related Art  
         [0004]     For a printer system at single-pass print, a printhead has to complete data print by single-pass, i.e., all required print positions are done. However, when the printhead requires successive printing for print dots at successive positions, the print dots may be distorted in shapes or sizes, and neighbor print dots may be out of focus due to short dried time so as to affect print quality.  
         [0005]     To overcome the aforementioned problem, one solution applies multi-pass printing that printhead prints required data by several times. A printer can have modes of four-pass, eight-pass, etc. Multi-pass printing has advantages that shapes and sizes of successive print dots are not distorted in successive printing and neighbor print dots have longer dried time so as not to be out of focus and affect print quality. Thus, multi-pass printing can have better print quality.  
         [0006]     However, multi-pass printing still has several defects. For example, for a four-pass mode, input data is divided into four times to print. In this case, if paper is fed in by a height of a printhead, required buffer is a size capable of storing data amount of two complete prints since printhead cannot be stopped to wait for next printing data to be completely filled up.  
         [0007]     To overcome the problem in requiring a large buffer, U.S. Pat. No. 6,313,922 granted to Jackson, et al for an “Efficient use of a printhead and a compressed swath buffer in an inkjet printer” discloses a solution that a multi-pass printer can effectively use buffer to save memory use. If inkjet head of a printer has a height F as 100 (i.e., 100 inkjet holes) and four inkjet prints (four-pass, N=4), paper is fed in F/4 ( 25  inkjet holes) that is at a height of ¼ printhead. In this case, buffer is used as shown in FIGS.  1 (A)-(D).  
         [0008]     As shown in  FIG. 1 (A), 125 rows of data are stored in buffer. When inkjet head of a printer starts to move from right to left, upon first 25 rows of data (area indicated by A) as first pass, partial data in first 25 rows is used. As shown in  FIG. 1 (B), when paper for printing is fed in 25 rows and the inkjet head starts to move from right to left, upon first 25 rows of data as second pass, partial data in first 25 rows is used while upon 26 to 50 rows of data (area indicated by B) as first pass, partial data in 26 to 50 rows are used. Accordingly, the similarity is shown in FIGS.  1 (C) and  1 (D).  
         [0009]     In  FIG. 1 (D), upon first 25 rows of data as fourth pass (the last one pass), first 25 rows of data are all used and thus discarded. In this case, 26 to 50 rows of data as third pass substitutes first 25 rows of data, 51 to 75 rows of data (area indicated by C) as second pass substitutes 26 to 50 rows of data, 76 to 100 rows of data (area indicated by D) as first pass substitutes 51 to 75 rows of data, and 101 to 125 rows of data substitutes 76 to 100 rows of data. However, if 101 to 125 rows of data cannot be filled up on time, inkjet head has to stop next swath printing until printing data is filled up.  
         [0010]     In U.S. Pat. No. 6,313,922, each pass only prints partial data. In  FIG. 1 (A), because partial data in first 25 rows is used upon first 25 rows of data (area indicated by A) as first pass, masking is applied for determining which data is printed for use.  FIG. 2  is a schematic diagram illustrating a multi-pass memory use and masking operation configured in U.S. Pat. No. 6,313,922. As shown, paper is fed in F/4 (25 inkjet holes) height after each print, i.e., going forward 1/N (N=4) swath in height, and thus use amount of memory is reduced to (1+1/N) swath of data amount, such that required buffer size is relatively reduced to {fraction (5/4)} swath of data amount because only 1/N swath of data amount is required.  
         [0011]     However, as cited, partial data in first 25 rows is used at first pass upon first 25 rows of data (area indicated by A) and stored in buffer until four passes are complete, and then discarded. Such a management wastes used buffer and is not optimized.  
         [0012]     Therefore, it is desirable to provide an improved memory use and management method and system for a multi-pass printer to mitigate and/or obviate the aforementioned problems.  
       SUMMARY OF THE INVENTION  
       [0013]     The object of the invention is to provide a memory use and management method and system for a multi-pass printer system, which can increase use and management efficiency of a printer buffer and also reduce buffer number for use, thereby reducing printer hardware cost.  
         [0014]     In accordance with one aspect of the present invention, there is provided a memory use and management method for a multi-pass printer. The method includes a data receiving step, a masking step, a buffering step, a print starting step, a reverse masking step and a data excluding step. The data receiving step uses the printer to receive input data to be printed through an interface. The masking step uses a mask to mask the input data received by the printer, thereby generating a masked data. The buffering step buffers the masked data, thereby forming a buffering data. The print starting step starts to print the buffering data when having appropriate amount for one pass print by a printhead of the printer. The reverse masking step reconstructs the buffering data to the input data for print in accordance with the mask used in the masking step. The data excluding step excludes the buffering data that is reconstructed and printed in the reverse masking step, and returns to the data receiving step to perform continuously until all data is printed completely.  
         [0015]     In accordance with another aspect of the present invention, there is provided a multi-pass printer system, which has a band buffer, a band buffer manager and a print engine. The band buffer receives and masks an input data to be printed, and stores masked data resulting from masking the input data. The band buffer manager is connected to the band buffer in order to start to print the masked data as the band buffer stores appropriate amount for one swath print by a printhead. The print engine has the printhead and is connected to the band buffer such that the print engine receives the masked data from the band buffer and prints it by the printhead.  
         [0016]     Other objects, advantages, and novel features of the invention will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0017]      FIG. 1  is a graph of memory use in a typical multi-pass printer;  
         [0018]      FIG. 2  is a schematic diagram illustrating a memory use and masking operation in a typical multi-pass printer;  
         [0019]      FIG. 3  is a block diagram of a multi-pass printer system in accordance with the invention;  
         [0020]      FIG. 4  is a block diagram of a band buffer of  FIG. 3  in accordance with the invention;  
         [0021]      FIG. 5  shows a four-pass operation of input data and masks in accordance with the invention;  
         [0022]      FIGS. 6-9  show data flows of  FIG. 4  with a four-pass print in accordance with the invention;  
         [0023]      FIG. 10  shows a masking implementation on a four-pass print in accordance with the invention;  
         [0024]      FIG. 11  shows a memory management applied in  FIG. 10  in accordance with the invention;  
         [0025]      FIG. 12  shows another masking implementation on a four-pass print in accordance with the invention; and  
         [0026]      FIG. 13  shows a memory management applied in  FIG. 12  in accordance with the invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0027]      FIG. 3  is a block diagram of a multi-pass printer system in accordance with the invention. The system  300  includes a host  310 , an image processor  320 , a band buffer  330 , a band buffer manager  340  and a print engine  350 . The host  310  can be a personal computer (PC) or workstation with a screen to display pictures for communication with a user. To print a picture that is displayed on the screen, the host  310  sends the picture data to the image processor  320  for conversion RGB format into CMYK format and producing halftone data to print. The image processor  320  sends halftone data to the band buffer  330 . Before storing the data to the band buffer  330 , the data is masked. The band buffer manager  340  reversely masks data in the band buffer  330  in accordance with the data to be printed and then sends it to the print engine  350  for printing.  
         [0028]      FIG. 4  is a block diagram of a band buffer  330  of  FIG. 3  in accordance with the invention. As shown, a four-pass print is given as an example. As shown in  FIG. 4 , the band buffer  330  consists of first to fifth sub-band buffers  331 - 335 . Sub-band buffers  331  and  332  have a size of ¼ swath buffer each, sub-band buffers  333 - 335  have a respective size of {fraction (3/16)}, {fraction (2/16)} and {fraction (1/16)} swath buffer. After passing image processor  320 , the data to be printed are performed with masking operation follows in accordance with the number of masks used by a multi-pass print. For example, for N-pass, N-time masking is processed independently to each other without any correlation. In each mask, only ¼ (1/N) mask elements are logic 1 and the remaining mask elements are logic 0, thus AND operation is performed only on the input data and a respective mask element with logic 1.  
         [0029]      FIG. 5  shows four-pass operation of input data and masks in accordance with the invention. The input data has a size of 4×4. A printer prints the four-pass result on a paper, wherein each pass has a respective mask to perform an AND operation on the printed input data. At first pass, an AND operation is performed on the input data and the respective mask, which results in partial input data of ACIK. At second pass, an AND operation is performed on the input data and the respective mask, which results in partial input data of FHNP. Similarly, the remainder of the input data is obtained at third pass and fourth pass respectively. At last, a four-pass result is obtained by combining all printing input data and thus the input data is printed completely.  
         [0030]     Each of partial input data (masked data) is stored in a respective buffer such that for each pass, the respective buffer can be empty for another data store when the respective masked data is read and reconstructed to the respective original data, thereby reducing required memory.  
         [0031]      FIGS. 6-9  show data flows in the band buffer  330  with a four-pass print in accordance with the invention. The band buffer manager  340  applies a first band data ‘ABCDEFGHIJKLMNOP’ to first to fourth masks for masking operation, thereby respectively obtaining four masked data of ‘ACIK’, ‘FHNP’, ‘BDJL’, ‘EGMO’. The four masked data is written in the first sub-band buffer  331  and copied to the second sub-band buffer  332 . After the data copy is complete, the manager  340  signals the print engine  350  to print. In this case, the third to fifth sub-band buffers  333 - 335  have no data, so as to only data of EGMO is printed after the fourth mask is applied.  
         [0032]     In  FIG. 7 , the manager  340  copies masked data of ‘ACIK’, ‘FHNP’, ‘BDJL’ that are not printed from the second sub-band buffer  332  to the third sub-band buffer  333  and also discards the data of EGMO printed. As such, the size of third sub-band buffer  333  can reduce {fraction (1/16)} swath as compared to the size of second sub-band buffer  332 .  
         [0033]     Further, the band buffer manager  340  applies a second band data ‘abcdefghijklmnop’ to the first to fourth masks for masking operation, thereby respectively obtaining four masked data of ‘acik’, ‘fhnp’, ‘bdjl’, ‘egmo’. The four masked data is written in the first sub-band buffer  331  and copied to the second sub-band buffer  332 . After the data copy is complete, the manager  340  signals the print engine  350  to print. In this case, data of BDJL is printed that was masked by the third mask and data of ‘egmo’ is printed that was masked by the fourth mask.  
         [0034]     In  FIG. 8 , the manager  340  copies masked data of ‘ACIK’, ‘FHNP’ not printed from the third sub-band buffer  333  to the fourth sub-band buffer  334  and discards the data of BDJL printed. As such, the size of fourth sub-band buffer  334  can reduce {fraction (1/16)} swath as compared to the size of third sub-band buffer  333 . The manager  340  further copies masked data of ‘acik’, ‘fhnp’, ‘bdjl’ not printed from the second sub-band buffer  332  to the third sub-band buffer  333  and discards the data of egmo printed.  
         [0035]     Further, the band buffer manager  340  applies a third band data ‘1r2sv5w63t4u7x8y’ to the first to fourth masks for masking operation, thereby respectively obtaining four masked data of ‘1234’, ‘5678’, ‘rstu’, ‘vwxy’. The four masked data is written in the first sub-band buffer  331  and copied to the second sub-band buffer  332 . After the data copy is complete, the manager  340  signals the print engine  350  to print. In this case, data of ‘FHNP’ that is masked by the second mask is printed, data of ‘bdjl’ that is masked by the third mask is printed, and data of ‘vwxy’ that is masked by the fourth mask is printed.  
         [0036]     In  FIG. 9 , the manager  340  copies masked data of ‘ACIK’ that is not printed from the fourth sub-band buffer  334  to the fifth sub-band buffer  335  and discards the data of ‘FHNP’ printed. As such, the size of fifth sub-band buffer  335  can reduce {fraction (1/16)} swath as compared to the size of fourth sub-band buffer  334 . The manager  340  further copies masked data of ‘acik’, ‘fhnp’ from the third sub-band buffer  333  to the fourth sub-band buffer  334  and masked data of ‘1234’, ‘5678’, ‘rstu’ that are not printed from the sub-second band buffer  332  to the third sub-band buffer  333 .  
         [0037]     Further, the manager  340  applies a fourth band data ‘zzzzzzzzzzzzzzzz’ to the first to fourth masks for masking operation, thereby respectively obtaining four masked data of ‘zzzz’, ‘zzzz’, ‘zzzz’, ‘zzzz’. The four masked data is written in the first sub-band buffer  331  and copied to the second sub-band buffer  332 . After the data copy is complete, the manager  340  signals the print engine  350  to print. In this case, data of ‘ACIK’ of the first band data that is masked by the first mask is printed, data of ‘fhnp’ of the second band data that is masked by the second mask is printed, data of ‘rstu’ of the third band data that is masked by the third mask is printed, and data of ‘zzzz’ of the fourth band data that is masked by the fourth mask is printed. Such a printing can be continued in the same manner.  
         [0038]      FIG. 10  shows a masking implementation on a four-pass print, which has different masks applied to different band data for each pass print. As shown in  FIG. 10 , the first pass prints the data of ‘EGMO’ obtained by applying the fourth mask to the first band data for masking operation. The second pass prints both the data of ‘BDJL’ obtained by applying the third mask to the first band data for masking operation and the data of ‘egmo’ obtained by applying the fourth mask to the second band data for masking operation. The third pass prints the data of ‘FHNP’ obtained by applying the second mask to the first band data for masking operation, the data of ‘bdjl’ obtained by applying the third mask to the second band data for masking operation, and the data of ‘vwxy’ obtained by applying the fourth mask to the third band data for masking operation. Similar operations are applied to the remaining data.  
         [0039]      FIG. 11  shows a memory management applied in  FIG. 10 . Upon analysis of  FIG. 4 , required buffer is a total size of {fraction (14/16)} swath buffer ([1+2+3+4+4]/16={fraction (14/16)}). Accordingly, a memory is divided into 14 equal parts (mem 1  to mem 14 ), each having a size of {fraction (1/16)} swath buffer, such that each band data is partitioned into P 1  to P 4  (such as notations of B 1 P 1 , B 1 P 2 , B 1 P 3 , B 1 P 4 ) in accordance with the masks required by the passes when storing in the memory. In this case, the input data must be a unit of a band, which occupies four memory parts. For example, the first band data (i.e., notations of B 1 P 1 , B 1 P 2 , B 1 P 3 , B 1 P 4 ) uses memory parts of mem 1  to mem 4  to input. As shown, data read status of each pass is represented in a horizontal direction, and X black represents a memory area has been released.  
         [0040]     At first pass, only the first band data (B 1 P 1 , B 1 P 2 , B 1 P 3  and B 1 P 4 ) is ready to output. When outputting Pass  4  data (B 1 P 4 ) of the first Band data (B 1 P 4 ), the second band data (B 2 P 1 , B 2 P 2 , B 2 P 3 , B 2 P 4 ) is also ready to output. Accordingly, at second pass, when outputting Pass  3  data (B 1 P 3 ) of the first band data and Pass  4  data (B 2 P 4 ) of the second band data, the third band data (B 3 P 1 , B 3 P 2 , B 3 P 3 , B 3 P 4 ) is also ready to output.  
         [0041]     At third pass, when outputting Pass  2  data (B 1 P 2 ) of the first band data, Pass  3  data (B 2 P 3 ) of the second band data and Pass  4  data (B 3 P 4 ) of the third band data, the fourth band data (B 4 P 1 , B 4 P 2 , B 4 P 3 , B 4 P 4 ) is also ready to output. However, the fourth band data has to be stored in previous used memory, e.g., mem 3  and mem 4  in this embodiment, thereby achieving memory use efficiency. The remainders on memory management are alike.  
         [0042]      FIG. 12  shows another masking implementation on a four-pass print, wherein different passes have respective masks and accordingly each band data is masked based on the passes. As shown, at first print, data of ‘ACIK’ obtained by applying the first mask to the first band data for masking operation is printed. At second print, both data of ‘BDJL’ obtained by applying the second mask to the first band data for masking operation and data of ‘fhnp’ obtained by applying the second mask to the second band data for masking operation are printed. At third print, data of ‘FHNP’ obtained by applying the third mask to the first band data for masking operation, data of ‘bdjl’ obtained by applying the third mask to the second band data for masking operation, and data of ‘rstu’ obtained by applying the third mask to the third band data for masking operation are printed. The remainders are alike.  
         [0043]      FIG. 13  shows a memory management applied in  FIG. 12 . Upon analysis of  FIG. 4 , required buffer is a total size of {fraction (14/16)} swath buffer ([1+2+3+4+4]/16={fraction (14/16)}). Accordingly, a memory is divided into 14 equal parts (mem 1  to meml 4 ), each having a size of {fraction (1/16)} swath buffer, such that each band data is partitioned into P 1  to P 4  (such as notations of B 1 P 1 , B 1 P 2 , B 1 P 3 , B 1 P 4 ) in accordance with the masks required by the passes when storing in the memory. In this case, the input data must be a unit of band, which occupies four memory parts. For example, the first band data (i.e., notations of BIP 1 , B 1 P 2 , B 1 P 3 , B 1 P 4 ) uses memory parts of mem 1  to mem 4  to input. In the figure, data read status of each pass is represented in a horizontal direction, and X black represents a memory area has been released At first pass, only the first band data (B 1 P 1 , B 1 P 2 , B 1 P 3  and B 1 P 4 ) is ready to output. When outputting Pass  1  data (B 1 P 1 ) of the first Band data (B 1 P 4 ), the second band data (B 2 P 1 , B 2 P 2 , B 2 P 3 , B 2 P 4 ) is also ready to output. Accordingly, at second pass, when outputting Pass  2  data (B 1 P 2 ) of the first band data and Pass  2  data (B 2 P 2 ) of the second band data, the third band data (B 3 P 1 , B 3 P 2 , B 3 P 3 , B 3 P 4 ) is also ready to output.  
         [0044]     At third pass, when outputting Pass  3  data (B 1 P 3 ) of the first band data, Pass  3  data (B 2 P 3 ) of the second band data and Pass  3  data (B 3 P 3 ) of the third band data, the fourth band data (B 4 P 1 , B 4 P 2 , B 4 P 3 , B 4 P 4 ) is also ready to output. However, Pass  3  and Pass  4  data in the fourth band data has to be stored in previous used memory, e.g., mem 1  and mem 2  in this embodiment, thereby achieving memory use efficiency. The remainders on memory management are alike.  
         [0045]     The invention is described in a given example of 4-pass for bettering understanding, not for limit, and accordingly required buffer is a total size of {fraction (14/16)} swath buffer ([1+2+3+4+4]/16={fraction (14/16)}). Therefor, the invention can also be applied for other multi-pass prints such as 6-pass and 8-pass prints. Required buffer for a 6-pass print is a total size of {fraction (27/36)} swath buffer ([1+2+3+4+5+6+6]/36={fraction (27/36)}). Required buffer for an 8-pass print is a total size of [1+2+3+4+5+6+7+8+8]/64={fraction (44/64)} swath buffer.  
         [0046]     In view of the foregoing, the invention discards printed data, other than stored in the prior art until four passes are complete. Accordingly, the invention has more efficient management method of buffer than the prior art, and thus hardware cost is relatively reduced.  
         [0047]     Although the present invention has been explained in relation to its preferred embodiment, it is to be understood that many other possible modifications and variations can be made without departing from the spirit and scope of the invention as hereinafter claimed.