Printing system and method with efficient memory usage
11648781 · 2023-05-16
Assignee
Inventors
- Romain Jan Victor Paul VAN DER GUCHT (Lint, BE)
- Marc Lodewijk Cornelia Goetschalckx (Lint, BE)
- Nathan Anny Omaar Catharina Didier Van De Velde (Wommelgem, BE)
Cpc classification
B41J2/2103
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
A method for printing a plurality of scan lines with one or more inkjet heads includes receiving at least one scanline; creating, from pixels of said at least one scanline, a plurality of bundles of a predetermined size comprising first bundles and consecutive bundles, said first and consecutive bundles comprising pixels for which nozzles of the one or more inkjet heads have to be fired within a first time period and within a consecutive time period, respectively; and storing said plurality of bundles in a first memory. The method includes transferring said plurality of bundles from first memory to second memory; and repeating until all said pixels are available in the second memory as the first bundles. Nozzles of the one or more inkjet heads are fired in accordance with the first bundles within the first time period and steps repeated for consecutive bundles and associated respective consecutive time periods.
Claims
1. A method for printing a plurality of scanlines with one or more inkjet heads; the method comprising: a. receiving at least one scanline of the plurality of scanlines; b. creating, from pixels of said at least one scanline, a plurality of bundles of a predetermined size, such that said plurality of bundles comprises first bundles and consecutive bundles, said first bundles and said consecutive bundles comprising pixels for which nozzles of the one or more inkjet heads have to be fired within a first time period and within a consecutive time period, respectively; and storing said plurality of bundles in a first memory; wherein the predetermined size of a bundle of the plurality of bundles is chosen in function of a second memory; c. transferring said plurality of bundles from the first memory to the second memory; d. repeating steps a-c until all pixels for which nozzles of the one or more inkjet heads have to be fired within the first time period are available in the second memory as the first bundles; e. firing nozzles of the one or more inkjet heads in accordance with the first bundles within the first time period; and f. repeating steps d and e for consecutive bundles and associated respective consecutive time periods.
2. The method according to claim 1, wherein the second memory comprises a dynamic random-access memory (DRAM).
3. The method according to claim 1, wherein the predetermined size of a bundle of the plurality of bundles is between 50 and 100% of an optimal size for writing and reading the second memory.
4. The method according to claim 1, wherein each bundle comprises between 64 bits and 512 bits.
5. The method according to claim 1, wherein the first memory is at least 10 times smaller than the second memory.
6. The method according to claim 1, wherein the first memory stores less than 10 scanlines, and wherein the second memory stores at least 1000 scanlines.
7. The method according to claim 1, wherein the first memory is included in a programmable hardware component.
8. The method according to claim 1, wherein the first memory is a cache memory of a CPU.
9. The method according to claim 1, wherein the creating is done such that said first bundles and said consecutive bundles comprise pixels for which nozzles of the one or more inkjet heads have to be fired at a first moment in time and at a consecutive moment in time, respectively.
10. The method according to claim 1, wherein the plurality of scanlines comprises at least a first scanline, a (k+1)th scanline, and a (2k+1)th scanline, wherein k is an integer; wherein the creating is performed such that the first bundles comprise a subset of pixels of the first scanline, of the (k+1)th scanline, and of the (2k+1)th scanline and such that (k+1)th bundles comprise a different subset of pixels of the first scanline, the (k+1)th scanline, and the (2k+1)th scanline.
11. The method according to claim 1, wherein the one or more inkjet heads comprise a plurality of nozzle rows, wherein the grouping is performed such that all nozzles of each nozzle row to be fired within the first time period are covered by one or more first bundles and such that all nozzles of each nozzle row to be fired within the consecutive time period are covered by one or more consecutive bundles.
12. The method according to claim 1, wherein, during step a two or more adjacent scanlines are received, and wherein each bundle of the first bundles comprises pixels from the two or more adjacent scanlines, and wherein each bundle of the consecutive bundles comprises pixels from the two or more adjacent scanlines.
13. The method according to claim 1, wherein the first and consecutive time period are lower than 100 microseconds.
14. The method according to claim 1, wherein the one or more inkjet heads comprise a plurality of nozzle rows, and wherein the plurality of nozzle rows are directed perpendicular on the printing direction.
15. The method according to claim 1, wherein the one or more inkjet heads comprise a plurality of nozzle rows, wherein the plurality of nozzle rows are directed under an angle between 60° and 89° with respect to the printing direction.
16. A printing system for printing a plurality of scanlines, said system comprising: one or more inkjet heads; a logic unit configured for receiving at least one scanline, for creating, from pixels of said at least one scanline, a plurality of bundles of a predetermined size, such that said plurality of bundles comprises first bundles and consecutive bundles, said first bundles and said consecutive bundles comprising pixels for which nozzles of the one or more inkjet heads have to be fired within a first time period and within a consecutive time period, respectively, for storing said plurality of bundles in a first memory of the logic unit; and for transferring said plurality of bundles from the first memory to a second memory; the second memory configured for storing bundles of consecutive scanlines, until at least all pixels for which nozzles of the one or more inkjet heads have to be fired within the first time period are available in the second memory; wherein the predetermined size of a bundle of the plurality of bundles is associated with the second memory; and wherein the printing system is configured for firing nozzles of the one or more inkjet heads in accordance with the first bundles within the first time period by reading the first bundles out of the second memory; and in accordance with consecutive bundles within the associated consecutive time period by reading the consecutive bundles out of the second memory.
17. The system according to claim 16, wherein the second memory comprises a dynamic random-access memory (DRAM).
18. The system according to claim 16, wherein the predetermined size of a bundle of the plurality of bundles is between 50 and 100% of an optimal size for writing and reading the second memory; and wherein each bundle comprises between 16 and 128 pixels.
19. The system according to claim 16, wherein the creating is done such that said first bundles and said consecutive bundles comprise pixels for which nozzles of the one or more inkjet heads have to be fired at a first moment in time and at a consecutive moment in time, respectively.
20. A method for printing a plurality of scanlines with one or more inkjet heads; the method comprising: a. receiving at least one scanline of the plurality of scanlines; b. creating, from pixels of said at least one scanline, a plurality of bundles of a predetermined size, such that said plurality of bundles comprises first bundles and consecutive bundles, said first bundles and said consecutive bundles comprising pixels for which nozzles of the one or more inkjet heads have to be fired within a first time period and within a consecutive time period, respectively; and storing said plurality of bundles in a first memory; wherein the predetermined size of a bundle of the plurality of bundles is chosen in function of a second memory; c. transferring said plurality of bundles from the first memory to the second memory; d. repeating steps a-c until all pixels for which nozzles of the one or more inkjet heads have to be fired within the first time period are available in the second memory as the first bundles; e. firing nozzles of the one or more inkjet heads in accordance with the first bundles within the first time period; and f. repeating steps d and e for consecutive bundles and associated respective consecutive time periods, wherein the second memory comprises a dynamic random-access memory (DRAM), and wherein the first memory is at least 10 times smaller than the second memory.
Description
BRIEF DESCRIPTION OF THE FIGURES
(1) The accompanying drawings are used to illustrate presently preferred non-limiting exemplary embodiments of devices of the present invention. The above and other advantages of the features and objects of the invention will become more apparent and the invention will be better understood from the following detailed description when read in conjunction with the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
DESCRIPTION OF EMBODIMENTS
(9)
(10) The logic unit 100 is configured for receiving at least one scanline SL. In a possible embodiment, one scanline at a time is received, or, stated differently, consecutive scanlines are received in a serial manner by the logic unit 100. However, in other embodiments it may be envisaged to receive two or three consecutive scanlines in parallel at the logic unit 100. The logic unit 100 is further configured for creating, from pixels of the at least one received scanline SL, a plurality of bundles B of a predetermined size. The size of the bundles B is chosen to be suitable for the second memory 200, and more in particular, for obtaining a high writing/reading data rate of the second memory. For example, the second memory may be a dynamic random access memory (DRAM), preferably a synchronous dynamic random access memory (SDRAM), and more preferably a DDR3 memory. For example, in order to obtain a data rate of 10240 megabits/second for DDR3 (with a clock of 320 MHz and a data bus of 16 bits), the size of the bundles has to be 512 bit, which corresponds with 128 pixels when each pixel is represented by 4 bits. Preferably, the predetermined size of a bundle B is chosen such that it is between 50% and 100% of an optimal size for writing and reading the second memory 200. So, for example for DDR3, preferably, the size of a bundle is between 64 and 128 pixels.
(11) The logic unit 100 is configured for creating, from pixels of the at least one scanline SL, a plurality of bundles B, such that said plurality of bundles B comprises first bundles and consecutive bundles. The first bundles comprise pixels for which nozzles 350 of the inkjet device 300 have to be fired within a first time period. The consecutive bundles comprise pixels for which nozzles 350 of the inkjet device 300 have to be fired within a consecutive time period, after said first time period. The plurality of bundles B is temporarily stored in the first memory 110 before being transferred to the second memory 200. For example, when one scanline of 8000 pixels is received, 100 bundles of 80 pixels each may be created: 4 first bundles of 80 pixels each with pixels to be fired at a time t1, 4 consecutive bundles with pixels to be fired at a consecutive moment in time t1+k.Math.Δt, 4 consecutive bundles with pixels to be fired at a consecutive moment in time t1+2k.Math.Δt, . . . , wherein k is an integer corresponding to the number of scanlines between two rows, and wherein Δt is the time between two consecutive firing instants. It is noted that this is a simplified example, and that e.g. the number of bundles with pixels to be fired at a particular moment in time can be different for different moments in time. For example, when three inkjet heads 310, 320, 330 are used as illustrated in
(12) The second memory 200 is configured for storing first and consecutive bundles of consecutive scanlines, until at least all pixels for which nozzles 350 of the inkjet device 300 have to be fired within the first time period are available in the second memory 200. For example, if each print head 310, 320, 330 has n rows, if the rows are separated by k scanlines, and if inkjet head 320 is shifted with respect to inkjet heads 310, 330 as in
(13) The printing system is further configured for firing nozzles 350 of the inkjet heads 310, 320, 330 in accordance with the first bundles within the first time period by reading the first bundles out of the second memory 200. Next, the nozzles are fired in accordance with the second bundles within the second time period by reading the second bundles out of the second memory 200, etc.
(14) Preferably, the first memory 100 is at least 10 times smaller than the second memory 200, more preferably at least 100 times smaller than the second memory 200. For example, the first memory may be a memory configured to store less than 10 scanlines, whilst the second memory may be configured to store at least 2000 scanlines.
(15) The logic unit 100 may be implemented in hardware or in software. For example, the logic unit 100 may be implemented as a programmable hardware component, preferably a field-programmable gate array (FPGA) or an ASIC. In another embodiment, the logic unit 100 may be a CPU provided with a small cache memory 110.
(16) In a preferred embodiment, all pixels of a bundle are pixels which have to be fired at the same point in time. However, for certain inkjet heads, it may be advantageous to group pixels which have to be fired at different moments in time within the same time period, typically a small time period lower than 100 microseconds, preferably lower than 70 microseconds, and more preferably lower between 5 and 65 microseconds. Indeed, according to some printing methods there may be a small time difference between the firing of the nozzles instead of firing all nozzles simultaneously: in such a case it may be advantageous to group pixels that have to be fired within the same small time period in the same bundle.
(17) For an inkjet head with n rows separated by k scanlines, the first bundles will comprise a subset of pixels of the first scanline, a subset of pixels of the (k+1).sup.th scanline, a subset of pixels of the (2k+1).sup.th scanline, . . . , and a subset of pixels of the ((n−1)k+1).sup.th scanline. Similarly, the second bundles will comprise a different subset pixels of the second scanline, a different subset of pixels of the (k+2).sup.th scanline, a different subset of pixels of the (2k+2).sup.th scanline, . . . , and a different subset of pixels of the ((n−1)k+2).sup.th scanline. Preferably, a bundle does not comprise pixels from different scanlines. However, in certain embodiments, it may be advantageous to group pixels of adjacent scanlines in the same bundle.
(18)
(19) The nozzle rows N1, N2, etc. are parallel and adjacent nozzle rows of the plurality of nozzle rows are shifted with respect to each other in a direction perpendicular on the printing direction P. In the illustrated embodiment row N2 is shifted over a distance r to the right with respect to row N1, row N3 is shifted over a distance r to the right with respect to row N2, and row N4 is shifted over a distance r to the right with respect to row N3. In other non-illustrated embodiments the shifting may be different, e.g. row N2 is shifted over a distance 2*r with respect to row N1, row N3 over a distance r with respect to row N1, and row N4 is shifted over a distance 3*r to the right with respect to row N3. The person skilled in the art understands that other variants are possible. Projected on a line perpendicular on the printing direction P, the centres of the nozzles are positioned at an equal distance of each other which corresponds to r.
(20) During a typical printing process, the substrate is moved with a printing speed v and all (m×n×3) nozzles of the three inkjet heads 310, 320, 330 are fired substantially simultaneously with a firing frequency f=v/r. It is noted that there may be a small difference (order of nanoseconds) to avoid large power peaks, but such small differences will not be visible in the printed image. In other words, the firing frequency is such that each time the substrate has moved over a distance r, a firing of all nozzles of the inkjet heads 310, 320, 330 is performed. The rows are shifted with respect to each other such that the combination of dots printed during subsequent steps of the printing process form a regular pattern. More in particular, when the inkjet heads 310, 320, 330 have fired all (n×m×3) nozzles a number of times corresponding to 2k times the number of rows (n×k×2), while the substrate moves below the inkjet heads 310, 320, 330, one scanline extending perpendicular on the printing direction will be finished, and may comprise (n×m×3) pixels.
(21) Now an exemplary embodiment of a method for printing a plurality of scanlines SL with one or more inkjet heads will be explained with reference to
(22) For the first scanline SL1, the first pixel P1 is fired at a first point in time t1 by the first nozzle of row N1, the second pixel P2 was fired 6 scanlines earlier (at t1−6Δt) by the first nozzle of row N2, the third pixel P3 was fired 12 scanlines earlier by the first nozzle of row N3 (at t1−12Δt), the fourth pixel P4 was fired 18 scanlines earlier by the first nozzle of row N4 (at t1−18Δt), the fifth pixel P5 is fired again at the first point in time t1, etc., wherein Δt is the time between two consecutive firing instants.
(23) For the second scanline SL2, the first pixel P1 is fired at a second point in time t2 (=t1+Δt) by the first nozzle of the first row N1, the second pixel P2 was fired 6 scanlines earlier than t2 (at t2−6Δt) by the first nozzle of the second row N2, etc.
(24) For the (k+1).sup.th scanline SL7, the first pixel P1 has to be fired 6 scanlines after t1 (at t7=t1+6Δt), the second pixel P2 has to be fired at a first point in time t1 by the first nozzle of the second nozzle row N2, the third pixel P3 was fired 6 scanlines earlier (at t1−6Δt), etc.
(25) Further, because the second inkjet head 320 is shifted with respect to the first and third inkjet heads 310, 33, scanlines SL25-SL48 will also comprise pixels to be printed at times t1, t2, t3, etc. More in particular, for scanline SL25 the 17.sup.th pixel P17 has to be fired at time t1, and the 18.sup.th pixel P18 will have to be fired at t1−6Δt, etc.
(26) In other words, the following scanlines will comprise pixels to be printed at time t1: SL1, SL7, SL13, SL19, SL25, SL31, SL37, SL43; at time t2: SL2, SL8, SL14, SL20, SL26, SL32, SL38, SL44; at time t3: SL3, SL9, SL15, SL21, SL27, SL33, SL39, SL45; at time t4: SL4, SL10, SL16, SL22, SL28, SL34, SL40, SL46; at time t5: SL5, SL11, SL17, SL23, SL29, SL35, SL41, SL47; at time t6: SL6, SL12, SL18, SL24, SL30, SL36, SL42, SL48; at time t7: SL7, SL13, SL19, SL25, SL31, SL37, SL43; at time t8: SL8, SL14, SL20, SL26, SL32, SL38, SL44; at time t9: SL9, SL15, SL21, SL27, SL33, SL39, SL45; at time t10: SL10, SL16, SL22, SL28, SL34, SL40, SL46; at time t11: SL11, SL17, SL23, SL29, SL35, SL41, SL47; at time t12: SL12, SL18, SL24, SL30, SL36, SL42, SL48; etc.
(27) wherein t2=t1+Δt, t3=t1+2Δt, t4=t1+3Δt, etc., wherein Δt is the time between two consecutive firing instants.
(28)
(29) For scanline SL1 the following bundles are created: bundles to be fired at t1: B1a (P1, P5, P9, P13); B1b (P33, P37, P41, P45) bundles to be fired at (t1−6Δt): B6′a (P2, P6, P10, P14); B6′b (P34, P38, P42, P46) bundles to be fired at (t1−12Δt): B12′a (P3, P7, P11, P15); B12′b (P35, P39, P43, P47) bundles to be fired at (t1−18Δt): B18′a (P4, P8, P12, P16); B18′b (P36, P40, P44, P48) Pixels P17-P32 have to be printed even earlier by nozzles of second inkjet head 320 as will be understood by a person skilled in the art. For reasons of simplicity, the bundles corresponding with those pixels are not further detailed here.
(30) For the second scanline SL2 the following bundles are created: bundles to be fired at t2 (=t1+Δt): B2a (P1, P5, P9, P13); B2b (P33, P37, P41, P45) bundles to be fired at (t2−6Δt=t1−5Δt): B5′a (P2, P6, P10, P14); B5′b (P34, P38, P42, P46) bundles to be fired at (t2−12Δt): B11′a (P3, P7, P11, P15); B11′b (P35, P39, P43, P47) bundles to be fired at (t2−18Δt): B17′a (P4, P8, P12, P16); B17′b (P36, P40, P44, P48) Pixels P17-P32 have to be printed even earlier by nozzles of second inkjet head 320 as will be understood by a person skilled in the art. For reasons of simplicity, the bundles corresponding with those pixels are not further detailed here.
(31) For the (k+1).sup.th scanline SL7, the following bundles may be formed: bundles to be fired at t7 (t7=t1+6Δt): B7a (P1, P5, P9, P13); B7b (P33, P37, P41, P45) bundles to be fired at t1: B1c (P2, P6, P10, P14); B1d (P34, P38, P42, P46) bundles to be fired at (t1−6Δt): B6′c (P3, P7, P11, P15); B6′d (P35, P39, P43, P47) etc.
(32) Since the memory 110 of the logic unit is typically a small memory capable of storing only one or a couple of scanlines, the bundles are written into the second memory 200 before the first memory is full, and preferable before the next scanline arrives. So, after having created the bundles for the first scanline SL1, bundles B1a, B1b, B6′a, B6′b, B12′a, B12′b, etc. are written into the second memory 200, then the second scanline SL2 is grouped into bundles B2a, B2b, B5′a, B5′b, etc., and the bundles B2a, B2b, B5′a, B5′b, etc. are written in the second memory 200. These steps are repeated until all pixels for which nozzles of the inkjet heads 310, 320, 330 have to be fired at the first point in time t1 are available in the second memory. Since scanline SL43 is the last scanline containing pixels to be fired at the point in time t1, after having stored the bundles for scanline SL43 in the second memory 200, the nozzles of the inkjet heads 310, 320, 330 may be fired in accordance with the first bundles at the point in time t1. After scanline SL44 has been received, grouped in bundles, and stored in the second memory 200, the nozzles of the inkjet heads 310, 320, 330 may be fired in accordance with the second bundles B2a, B2b, etc. at the second point in time t2.
(33) In
(34)
(35) In another exemplary embodiment illustrated in
(36) Embodiments of the invention are also applicable in other types of inkjet heads. Another example of an inkjet head is illustrated in
(37) Also for such an inkjet head, the creating of bundles as explained above in connection with
(38) Particular embodiments of the invention relate to the field of digital printing systems and methods for so-called “continuous” webs, i.e. printing systems where a continuous roll of substrate (e.g., paper, plastic foil, or a multi-layer combination thereof) is run through the printing station at a constant speed, in particular to print large numbers of copies of the same image(s), or alternatively, series of images, or even large sets of individually varying images.
(39) The functions of the various elements shown in the figures, including any functional blocks labelled as “logic units”, may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term “logic unit” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), read only memory (ROM) for storing software, random access memory (RAM), and non volatile storage. Other hardware, conventional and/or custom, may also be included.
(40) Whilst the principles of the invention have been set out above in connection with specific embodiments, it is to be understood that this description is merely made by way of example and not as a limitation of the scope of protection which is determined by the appended claims.