IE20020457A1 - A method for determining discrete areas within a frame in which a dot for forming a character is to be formed - Google Patents

A method for determining discrete areas within a frame in which a dot for forming a character is to be formed

Info

Publication number
IE20020457A1
IE20020457A1 IE20020457A IE20020457A IE20020457A1 IE 20020457 A1 IE20020457 A1 IE 20020457A1 IE 20020457 A IE20020457 A IE 20020457A IE 20020457 A IE20020457 A IE 20020457A IE 20020457 A1 IE20020457 A1 IE 20020457A1
Authority
IE
Ireland
Prior art keywords
dot
printed
look
error
values
Prior art date
Application number
IE20020457A
Other versions
IE83443B1 (en
Inventor
David Charles Yeomans
Original Assignee
Tangate Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tangate Ltd filed Critical Tangate Ltd
Priority to IE2002/0457A priority Critical patent/IE83443B1/en
Priority claimed from IE2002/0457A external-priority patent/IE83443B1/en
Publication of IE20020457A1 publication Critical patent/IE20020457A1/en
Publication of IE83443B1 publication Critical patent/IE83443B1/en

Links

Landscapes

  • Facsimile Image Signal Circuits (AREA)

Abstract

A method for determining discrete areas within a frame in which a dot is to be printed in an inkjet colour printer uses an algorithm derived from the Floyd Steinberg Error Diffusion Technique and relies on neighbourhood operations in order to produce the final raster of dots. Errors have to be produced for the next line as well as on the current line. Threshold values for each pixel are generated. A look-up table (3) comprising sixteen registers for storing sixteen threshold values stores randomly generated threshold values which are generated separately for each pixel. A random number generator (4) comprising an exclusive-or gate (5) and a sixteen bit shift register (6) generates random numbers for identifying the register (1) to (16) of the look-up table (3). The colour printer prints two shades of each colour, three threshold values using a similar technique are derived for each pixel P. In other words, sixteen randomly generated threshold values are loaded into the sixteen registers of the look-up table (3), and one of the registers is selected using the random number generator (4). Four error values for the four respective pixels into which error values are to be placed are also randomly selected from registers containing error values using the random number generator (4) to generated random numbers which are to be assigned to the four pixels. <Figure 2>

Description

‘A method for determining discrete areas within a frame in which a dot for forming a character is to be formed” The present invention relates to a method for determining discrete areas within a frame in which a dot for forming an image in the frame is to be formed, and in particular, the method relates to determining discrete areas on which a dot is to be printed by an inkjet printer.
In order to more efficiently print with an inkjet printer, and in particular, with a colour inkjet printer, discrete areas within a frame to be printed in which a dot should be printed are determined by random selection techniques. One such random selection technique which is well known and commonly used is the Floyd Steinberg Error Diffusion Technique. In the Floyd Steinberg Error Diffusion Technique the area to be printed is divided into a plurality of discrete areas or pixels into which a dot may or may not be printed. Starting from the Top Left Hand corner the dot to be printed, or not printed, is determined by comparing the Source Value with a Threshold value . If the source value is greater or equal to the threshold value a dot is printed otherwise no dot is printed. The difference between the source value and the threshold value is the Remainder (R). The remainder is dispersed in a fixed manner to the surrounding dot areas as follows; 7/16R of the forward dot (V) 3/16R to the backward dot area in the next line (T) /16R to the corresponding dot area on the next line (F) 1/16R to the forward dot area in the next line of dots. (W) OPEN TO PUBLIC INSPECT Future dots printed then have a source value added to the error values accumulated from previous calculations and are then compared with the threshold value for determining the printing of the next dot. The mechanism is then repeated to the end of the line and every subsequent line until the end of the image.
While this technique considerably improves the efficiency of printing with an inkjet printer, and in particular, a colour inkjet printer, it does suffer from a number of disadvantages. Dark lines tend to be formed in a predetermined pattern within the frame being printed, and these are unsightly, and in many cases unacceptable.
There is therefore a need for a method for operating an inkjet printer which overcomes this problem.
The present invention is directed towards providing such a method.
According to the invention there is provided a method for determining discrete areas within a frame in which a dot for forming an image is to be formed using the Floyd Steinberg Error Diffusion Technique, wherein the threshold value and the amount subtracted from the source plus errors can be different from the fixed values used by Floyd Steinberg Error Diffusion Technique.
In one embodiment ofthe invention the randomly generated threshold values are loaded into first registers of a look-up table, and one of the first registers of the lookup table is randomly selected for determining the threshold value.
In one embodiment of the invention a remainder is dispersed to its surrounding four 5 dots on a dot by dot basis, in a manner determined by a sixteen row look-up table in which four numbers in each line of the look-up tables represent the dispersion values of the forward dot area in the line being printed, the backward dot area in the next line to be printed, the corresponding dot area in the next line to be printed and the forward dot area in the next line to be printed. .0 In another embodiment of the invention the dispersion values of the respective forward dot area in the line being printed, the backward dot area, the corresponding dot area and the forward dot area in the next line to be printed in each line of the look-up table are independently determined. i5 In another embodiment of the invention the dispersion values within the look up table are selected from four selectable bits of a sixteen bit pseudo random number generator, which in turn has two selectable feedback bits, which determine the random count sequence. >o in another embodiment of the invention the pseudo random number generator can be loaded with any sixteen bit value at the start of the array to be printed.
In another embodiment of the invention if the sum of the four dispersed errors does not total the original error, then the difference is retained in four bits and carried forward to the next dot, ensuring little loss in the image content. .5 In another embodiment of the invention if the sum of the source and the errors is greater than the value of two dots, then a dot is printed and the remaining error cleared, also if the result is less than the value of two non printed dots then a dot is not printed and the negative error cleared.
In one embodiment of the invention the method is for determining the discrete areas within a frame into which a dot is to be printed by an inkjet printer, and in one embodiment of the invention by a colour inkjet printer.
In a further embodiment of the invention the inkjet printer is of the type which prints dots of one shade of each colour only. In a further embodiment of the invention the inkjet printer is of the type which prints two shades of each colour, and in this embodiment of the invention three threshold values are selected for each discrete area, namely, a first threshold value if when crossed a dot of one shade of a colour is printed, a second threshold value if when crossed a dot of the other shade of the colour is printed, and a third threshold value if when crossed a dot of each of the two shades of the colour is printed.
In one embodiment of the invention a dot is printed when the error value exceeds the threshold value.
The invention also provides an inkjet printer operating in accordance with the method according to the invention.
The invention will be more clearly understood from the following description of a preferred embodiment thereof, which is given by way of example only, with reference to the accompanying drawings, in which: Fig. 1 illustrates schematically an area within a frame to be printed by an io inkjet colour printer, Fig. 2 illustrates schematically how threshold and error values for respective discrete areas within the frame are generated and selected, Fig. 3 illustrates the distribution of error values in discrete areas using the Floyd Steinberg Error Diffusion Technique, and Fig. 4 illustrates in block representation the Floyd Steinberg Error Diffusion Technique for determining discrete areas within a frame in which a dot is to be printed from a printing head of a colour inkjet printer.
Referring to the drawings and in particular to Fig. 1, a frame 1 within which the printer is to print is divided into a plurality of notional discrete areas 2, namely, pixels P. Under the Floyd Steinberg Error Diffusion Technique, as the printing head is aligned with each pixel P, four error values are generated one for each of four pixels in the discrete area. The generation and assignment of the error values will be described below. As the printer is aligned with each pixel P, the sum of the error values assigned to the pixel P is computed, and compared with a threshold value, the generation of the threshold value will be described below. If the sum of the error values of that pixel P exceeds the threshold, a dot of the appropriate colour is printed. On the other hand, if the error value is equal to or less than the threshold value, a dot is not printed in that pixel and the printer moves to the next pixel.
Referring now to Fig. 2, the generation of threshold values for each pixel will now be described. A look-up table 3 comprising sixteen registers for storing sixteen threshold values stores randomly generated threshold values which are generated separately for each pixel. A random number generator 4 comprising an exclusive-or gate 5 and a sixteen bit shift register 6 generates random numbers for identifying the register 1 to 16 of the look-up table 3. Accordingly, using the method according to the invention, the threshold value for each pixel P is randomly generated. In the event that the colour printer prints two shades of each colour, three threshold values using a similar technique are derived for each pixel P. In other words, sixteen randomly generated threshold values are loaded into the sixteen registers of the look-up table 3, and one of the registers is selected using the random number generator 4.
The error values for the four pixels into which error values are to be placed are also randomly generated and randomly selected. In this embodiment of the invention four error values are loaded into each register of the look-up table 3, and the random number generator 4 selects the registers containing the random numbers which are to be assigned to the four pixels.
Fig. 3 illustrates a typical arrangement of the assignment of the error value in the pixels of the area 2.
The following is a more detailed explanation of the operation of the method according to the invention.
Error Diffusion Referring to Fig. 4, the error diffusion according to the Floyd Steinberg Error Diffusion Technique produces the dots to be output to the printer’s delay buffers.
The error diffusion algorithm employed in this embodiment of the invention is a derivative of the algorithm first introduced by Floyd and Steinberg and relies on neighbourhood operations in order to produce the final raster of dots. Errors have to be produced for the next line as well as on the current line. The direction of the process can be bi-directional. A random seed number is employed to reduce the ‘worms’ produced by the error diffusion algorithm.
The threshold in this case is fixed at a value (0.5 for Floyd-Steinberg) where the input J[n] varies from g = 0 (white) to g = 1 (black).
The resulting binary output vaiue of 0 or 1 is compared with the original grey level value. The difference is called the error for location n. The error is then passed through an error filter E[n] to produce a correction factor to be added to the future input values. Errors are thus diffused over a weighted neighbourhood determined by E[n], Referring to Fig. 3, Floyd Steinberg Error Filter Input Response. (1/16) x *7 1 The sum of the dispersed error always totals 1. io The forward error (7/16) is added to the next input and the process repeats itself. The errors for the next line are stored in memory and are added to its corresponding input and the process is repeated.
The algorithm can be forward or backward in order to produce an improved effect.
The weighting of the errors can also be changed dynamically and randomly, to overcome artefacts produced by normal Floyd Steinberg.
The error diffusion implements the following registers: Register Address Type TOP_THRESHOLD 0x0000300 LongWord MID_THRESHOLD 0X0000304 LongWord LOW_THRESHOLD 0x0000308 LongWord DOT_MAP 0x0000300 Word λ RANDOMJ.ENGTH 0x0000310 LongWord RANDOM_PICK 0x0000314 LongWord LOOK_UP_TABLE 0x0000340 to LongWord (16 Registers) 0x0000370 LongWord PBP_LS 0000318 Word PBP_MS 000031C Word SOURCE_ADD ParPtr+OxOOOOOOO LongWord IN_ERR__ADD ParPtr+0x0000004 LongWord OUT_ERR_ADD ParPtr+ΟχΟΟΟΟΟΟδ LongWord DESTADD ParPtr+OxOOOOOOC LongWord CMD ParPtr+0x0000010 Word BYTE_CNT ParPtr+0x0000014 Word SPARE ParPtr+0x0000018 Word RSN ParPtr+0x000001C Word This defines the parameter blocks to be set up for the error diffusion process.
RANDOMJLENGTH Address PARAM_REGISTERS 0000310 Data xxxx xxxx xxxx xxxx xxxx xxxx aaaa bbbb Each nibble aaaa, bbbb points to a bit nos aaaa and bbbb in the pseudo random number shift register 6. The two bits above are exclusive or’ed and fed back to bit 15 of the pseudo random number shift register 6, giving control over the io randomisation.
Default = 0000 0000, i.e., the four outputs of this shift register is always 0000, see RANDOM_PICK.
RANDOMJPICK Address PARAM_REGISTERS 0000314 Data xxxx xxxx xxxx xxxx aaaa bbbb cccc dddd Each nibble aaaa, bbbb, cccc, dddd points to a bit nos aaaa, bbbb, cccc and dddd in 5 the pseudo random number shift register 6. These four bits are used as the ‘random’ number which points into the diffusion look-up table 3. The default value of 0001 0011 1000 1101 picks bits 1, 3, 8 and 13.
LOOK_UP_TABLE_16 registers of 12 bits 10 Address PARAM_REGISTERS 0000340, 344, ... 37C Data xxxx xxxx xxxx xxxx xxxx tttt ffff wwww Where for a table entry wwww represents the error (wwww/16) proportion fed down and forwards, ffff represents the error proportion fed down tttt represents the error proportion fed down and backwards the remainder (wwww-tttt-ffff)/16 is left to accumulate in the next dot.
One of these entries is picked at random for each dot according to the random number defined by random pick.
If all registers are set: wwww 0001 (1) ffff 0101 (5) tttt 0011 (3) The remainder being 0111 (7) Therefore if all 16 registers are set to 0x00000351, then standard Floyd will always be implemented.
Within the parameter block: SOURCE_ADD Source Address The source address of the single colour data to be processed.
IN_ERR_ADD input Address Error The errors from the previous error diffusion process. This has to be cleared to 0 on starting a new Print.
DEST_ADD Destination Data The destination address of the data produced.
OUT_ERR_ADD Output Error Address The errors produced by the current process.
BYTE_CNT Byte Count The number of bytes in the source data.
RSN Random Seed This number starts a random seed generator. If set to 0x0000, no random count occurs.
CMD Command Word Bit 5 Bit 4 Bit 3 Bit 3 Bit 2 Bit 1 CMD REV RS CM2 CM1 CM0 REV Bit 5 Reverse Default = 0 Setting this register in Error Diffusion Mode causes the process to operate in the reverse direction.
RS Bit 4 Random Seed Default = 0 Setting a ‘T in this bit re-seeds the random number +16. The loading of a specific ‘random seed’ number may be necessary when starting a new colour swath.
CM2-CM0 Bits 3, 2,1 These determine the speed of operation in clocks per dot (maximum 7, minimum 2 clocks).
Default = 111 Clocks/Dot CM2 CM1 CM0 2 1 0 1 3 1 1 0 4 1 1 1 5 0 0 0 6 0 0 1 7 0 1 0 8 0 1 1 9 1 0 0 DOT_MAP Dot Function Bits 7.0 Data aa bb cc dd io These bits determine the output code for printing of multiple dots.
Default Ί1 10 01 00’ ‘aa’ This determines the dots output to the DEST_ADDS above and including the TOP_THRESHOLD. ‘bb’ This determines the dots output to the DEST_ADDS from to and including the MID_THRESHOLD and below the TOP_THRESHOLD. ‘cc’ This determines the dots output to the DEST_ADDS from to and including the 5 LOW_THRESHOLD and below the MID_THRESHOLD. ‘dd’ This determines the dots output to the DEST_ADDS below the LOW_THRESHOLD.
For two dot printing four possible outcomes (index Values) are possible for any 10 particular dot. These are defined: Index Value Below the LOW_THRESHOLD.
From to and including the LOW_THRESHOLD and below the MID_THRESHOLD.
From to and including the MID_THRESHOLD and below the TOP_THRESHOLD.
Above and including the TOP_THRESHOLD.
The Index Value determines the output from the Dotmap, for example, 0 gives the value in dd, 3 gives the value in aa.
Single Dot Printing If the thresholds are the default (1 dot printing), the only possible Index Values that can be produced are 0 or 3, giving a dot output of ‘00’ or ‘11 ’ respectively.
The following addresses determine the address in Sdram memory used by the error diffusion process.
PBP_LS Parameter Block Pointer LS Address PARAM_REGISTERS 0x0000318 Data xxxx xxxx xxxx xxxx aaaa aaaa aaaa aaOO aaaa aaaa aaaa aaOO defines bits 15-0 of the Parameter Pointer.
Default = 0000 0000 0000 00 Writing to this address starts the Function set-up in the Command register and therefore should be the last operation.
PBPJMS Parameter Block Pointer MS Address PARAM_REGISTERS 000031C Data xxxx xxxx xxxx xxxx xxxx xxaa aaaa aaaa aa aaaa aaaa defines bits 25-16 of the Parameter Pointer.
Default = 00 0000 0000 Thresholds The three thresholds are used for two dot printing, where the dots could be the same size or two different sizes. For a single dot printer use the defaults and use only one of the two dots produced. The defaults are for single dot printing.
TOP_THRESHOLD Address PARAM_REGISTERS 0000300 5 Data xxxx xxxx xxxx xxxx tttt tttt pppp pppp tttt tttt defines the threshold value used to test for printing a dot (default 0111 1111 = 127). pppp pppp defines the amount to subtract when a dot is printed (default 1111 1111 = 255). io MID_THRESHOLD Address param_registers 0000304 Data xxxx xxxx xxxx xxxx tttt tttt pppp pppp tttt tttt defines the threshold value used to test for printing a dot (default 0111 1111 = 15 127). pppp pppp defines the amount to subtract when a dot is printed (default 1111 1111 = 255).
LOW_THRESHOLD Address PARAM_REGISTERS 0000308 Data xxxx xxxx xxxx xxxx tttt tttt pppp pppp tttt tttt defines the threshold value used to test for printing a dot (default 0111 1111 = 127). pppp pppp defines the amount to subtract when a dot is printed (default 1111 1111 = Ίτ 255).
Random Dispersion In order to eliminate certain artefacts produced by Floyd-Steinberg where the errors 5 fed forward and downwards are 1/16, 3/16, 5/16 and 7/16 of the error, a random element is introduced where these four elements can be changed to other values, the total always being 16/16, i.e., 3/16, 4/16,1/16, 8/16.
These numbers have to be loaded into the look-up table 3, and are selected by the 10 random process.
The Pseudo Random Number generator 4 selects the errors fractions (i.e., 2/16) from the look-up table 3 which are then passed to the calc module.
The Shift Register 6 is fed with the Random Seed (see RSN) in Fig. 2.
The Pseudo Random Counter has selectable feedback elements (see RANDOM LENGTH), Fig. 2.
The four bits that make the selection from the look-up table are also selectable (see RANDOM_PICK),'Fjg. 2.
The advantages of the invention are many. By virtue of the fact that the threshold values ofthe respective pixels are randomly generated, line patterns which ϊ otherwise arise are avoided. Additionally, the random generation of error values further facilitates in the avoidance of unacceptable lines being formed in the frame being printed.
The invention is not limited to the embodiment hereinbefore described, which may be varied in construction and detail.

Claims (17)

1. A method for determining discrete areas within a frame in which a dot for forming an image is to be formed using the Floyd Steinberg Error Diffusion Technique, wherein the threshold value and the amount subtracted from the source 5 plus errors can be different from the fixed values used by Floyd Steinberg Error Diffusion Technique.
2. A method as claimed in Claim 1 in which the threshold values are randomly generated and are loaded into first registers of a look-up table, and one of the first 10 registers of the look-up table is randomly selected for determining the threshold value.
3. A method as claimed in Claim 1 or 2 in which a remainder is dispersed to its surrounding four dots on a dot by dot basis, in a manner determined by a sixteen 15 row look-up table in which four numbers in each line of the look-up tables represent the dispersion values of the forward dot area in the line being printed, the backward dot area in the next line to be printed, the corresponding dot area in the next line to be printed and the forward dot area in the next line to be printed. 20
4. A method as claimed in Claim 3 in which the dispersion values of the respective forward dot area in the line being printed, the backward dot area, the corresponding dot area and the forward dot area in the next line to be printed in each line of the look-up table are independently determined.
5. A method as claimed in Claim 3 or 4 in which the dispersion values within the look-up table are selected from four selectable bits of a sixteen bit pseudo random number generator, which in turn has two selectable feedback bits, which determine the random count sequence. 5 .,
6. A method as claimed in Claim 5 in which the pseudo random number generator can be loaded with any sixteen bit value at the start of the array to be printed. 10
7. A method as claimed in any of Claims 3 to 6 in which if the sum of the four dispersed error values does not total the original error value, then the difference is retained in four bits and carried forward to the next dot.
8. A method as claimed in Claim 7 in which if the sum of the source and the 15 errors is greater than the value of two dots, then a dot is printed, and the remaining error cleared.
9. A method as claimed in Claim 7 or 8 in which if the sum of the source and the errors is less than the value of two non-printed dots, then a dot is not printed and the 20 negative error is cleared.
10. A method as claimed in any preceding claim in which a dot is printed when the error value exceeds the threshold value.
11. A method as claimed in any preceding claim in which the method is for determining the discrete areas within a frame into which a dot is to be printed by an inkjet printer.
12. A method as claimed in Claim 11 in which the inkjet printer is a colour inkjet printer.
13. A method as claimed in Claim 12 in which the printer is of the type which io prints dots in one shade of each colour only.
14. A method as claimed in Claim 12 in which the inkjet printer is of the type which prints two shades of each colour.
15. 15. A method as claimed in Claim 14 in which three threshold values are selected for each discrete area, namely, a first threshold value if when crossed a dot of one shade of a colour is printed, a second threshold value if when crossed a dot of the other shade of the colour is printed, and a third threshold value if when crossed a dot of each of the two shades of the colour is printed.
16. A method for determining discrete areas within a frame in which a dot forming an image is to be formed using the Floyd Steinberg Error Diffusion Technique, the method being substantially as described herein with reference to and as illustrated in the accompanying drawings.
17. An inkjet printer operating under the control of the method as claimed in any preceding claim.
IE2002/0457A 2002-06-05 A method for determining discrete areas within a frame in which a dot for forming a character is to be formed IE83443B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
IE2002/0457A IE83443B1 (en) 2002-06-05 A method for determining discrete areas within a frame in which a dot for forming a character is to be formed

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IEIRELAND05/06/2001S2001/0534
IE20010534A IES20010534A2 (en) 2001-06-05 2001-06-05 A method for determining discrete areas within a frame in which a dot for forming a character is to be formed
IE2002/0457A IE83443B1 (en) 2002-06-05 A method for determining discrete areas within a frame in which a dot for forming a character is to be formed

Publications (2)

Publication Number Publication Date
IE20020457A1 true IE20020457A1 (en) 2002-12-11
IE83443B1 IE83443B1 (en) 2004-05-19

Family

ID=

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006066185A1 (en) * 2004-12-14 2006-06-22 Intel Corporation Error diffusion-based image processing

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006066185A1 (en) * 2004-12-14 2006-06-22 Intel Corporation Error diffusion-based image processing
US7639887B2 (en) 2004-12-14 2009-12-29 Intel Corporation Error diffusion-based image processing
US8077993B2 (en) 2004-12-14 2011-12-13 Intel Corporation Error diffusion-based image processing
US8705888B2 (en) 2004-12-14 2014-04-22 Intel Corporation Error diffusion-based image processing

Also Published As

Publication number Publication date
IES20010534A2 (en) 2002-12-11

Similar Documents

Publication Publication Date Title
JP3744610B2 (en) Image coding method
US5898505A (en) Resolution enhancement procedure and apparatus for a color laser printer
EP1503575A2 (en) Device and method for color reduction
JP5124268B2 (en) Method and apparatus for generating a dither mask by interpolation between preferred patterns
US20070058203A1 (en) System and method for generating low visibility multi-bit halftone
IE20020457A1 (en) A method for determining discrete areas within a frame in which a dot for forming a character is to be formed
US20030067617A1 (en) Image processing apparatus, image processing method, computer program and computer-readable storage medium
AU1108300A (en) Dithered image compression system
JP6729743B2 (en) System for performing color management mapping
US8054499B2 (en) Resolution doubling for printer apparatus
IE83443B1 (en) A method for determining discrete areas within a frame in which a dot for forming a character is to be formed
US7369710B2 (en) Image processing device, image processing method and image processing program
US6914700B2 (en) Method for reducing migrating residual error in error diffusion halftoning
US6466335B1 (en) Image forming apparatus
EP1161082B1 (en) Halftone image reproduction
US5625756A (en) Efficient use of dither matrix based gray level patterns
JPH11275353A (en) Image processor and image processing method
KR100661351B1 (en) Halftone processing apparatus and method
JP2005053147A (en) Edge processing for inkjet printing
JP2635947B2 (en) Image processing device
US6445466B1 (en) System and method for level based image reproduction
JP3810817B2 (en) Image processing device
US20050134925A1 (en) Method of controlling printed line quality
US20050134873A1 (en) Post screening handling of multibit raster operations
US20020060812A1 (en) Image processing method and image processing apparatus

Legal Events

Date Code Title Description
MM4A Patent lapsed