A laser print apparatus includes a memory for storing a multi-bit image including a plurality of pixels. Each pixel is represented by an N-bit value, wherein N is greater than one. A modulation code generator analyzes three adjacent pixels. The three adjacent pixels include a left pixel, a center pixel, and a right pixel. The modulation code generator is configured to generate a pulse width value based on the value of the center pixel, and a justification value based on the values of the left pixel and the right pixel. A laser print engine forms an output pixel on media based on the pulse width value and the justification value.
|
19. A laser print apparatus comprising:
a memory for storing an image including a plurality of pixels, each pixel represented by a multi-bit value;
a first modulation code generator to generate a pulse width value for each pixel in the image by concatenating at least on most significant bit of the each pixel to the least significant end of the value for the each pixel;
a second modulation code generator to generate a justification value for each pixel in the image based on the multi-bit values of adjacent pixels; and
a laser print engine for forming an image on media based on the pulse width values and the justification values.
32. A laser printing method comprising:
storing a multi-bit image including a plurality of pixels, each pixel represented by an N-bit value, wherein N is greater than one;
analyzing three adjacent pixels, the three adjacent pixels including a left pixel, a center pixel, and a right pixel, and generating a pulse width value based on concatenating at least one most significant bit of the center pixel to the least significant end of the value for the center pixel, and a justification value based on the values of the left pixel and the right pixel; and
forming an output pixel on media based on the pulse width value and the justification value.
13. A method for generating modulation data for modulating a laser in a laser print apparatus, the method comprising:
rendering data to be printed into a multi-bit image including a plurality of pixels, each pixel represented by a multi-bit value;
examining the values of first, second, and third pixels that are correspondingly positioned at three sequential positions in the multi-bit image;
generating a first pulse width value based on concatenating at least one most significant bit of the center pixel to the least significant end of the value for the center pixel; and
generating a first justification value based on the values of the first pixel and the third pixel.
20. A laser print apparatus comprising:
means for storing a multi-bit image including a plurality of pixels, each pixel represented by an N-bit value, wherein N is greater than one;
means for analyzing three adjacent pixels, the three adjacent pixels including a left pixel, a center pixel, and a right pixel, and generating a pulse width value based on concatenating at least one most significant bit of the center pixel to the least significant end of the value for the center pixel, and a justification value based on the values of the left pixel and the right pixel; and
means for forming an output pixel on media based on the pulse width value and the justification value.
1. A laser print apparatus comprising:
a memory to store a multi-bit image including a plurality of pixels, each pixel represented by an N-bit value, wherein N is greater than one;
a modulation code generator to analyze three adjacent pixels, the three adjacent pixels including a left pixel, a center pixel, and a right pixel, the modulation code generator configured to generate a pulse width value based on concatenating at least one most significant bit of the center pixel to the least significant end of the value for the center pixel, and a justification value based on the values of the left pixel and the right pixel; and
a laser print engine to form an output pixel on media based on the pulse width value and the justification value.
42. A computer-readable medium having computer-readable content to cause a computer to perform acts of:
storing a multi-bit image including a plurality of pixels, each pixel represented by an N-bit value, wherein N is greater than one;
analyzing three adjacent pixels, the three adjacent pixels including a left pixel, a center pixel, and a right pixel, and generating a pulse width value based on concatenating at least one most significant bit of a value for the center pixel to the least significant end of the value for the center pixel operating on the value of the center pixel, and a justification value based on the values of the left pixel and the right pixel; and
forming an output pixel on media based on the pulse width value and the justification value.
2. The laser print apparatus of
a laser configured to be modulated for the output pixel so as to be turned on and off at times corresponding to the justification value for the pixel, and remain on for a time period corresponding to the pulse width value for the pixel.
3. The laser print apparatus of
6. The laser print apparatus of
a first-in first-out (FIFO) device for outputting the three adjacent pixels to the modulation code generator.
7. The laser print apparatus of
a first subtracter for subtracting the value of the right pixel from the value of the left pixel, thereby generating a first difference;
a second subtracter for subtracting the value of the left pixel from the value of the right pixel, thereby generating a second difference; and
an adder for adding the value of the left pixel and the value of the right pixel, thereby generating a sum.
8. The laser print apparatus of
at least one comparator for comparing the first difference to a first threshold value, to compare the second difference to a second threshold value, and to compare the sum to a third threshold value; and
a justification code generator for generating the justification value based on results of the comparisons made by the at least one comparator.
9. The laser print apparatus of
10. The laser print apparatus of
a look up table for receiving the values of the left, center, and right pixels as an input address, and outputting a corresponding modulation code, the modulation code including the pulse width value and the justification value.
11. The laser print apparatus of
a look up table for receiving the value of the center pixel and at least one most significant bit of the values for the left and right pixels as an input address, and to output a corresponding modulation code, the modulation code including the pulse width value and the justification value.
12. The laser print apparatus of
a first look up table for receiving the values of the left and right pixels as an input address, and to output a corresponding justification value; and
a second look up table for receiving the value of the center pixel as an input address, and to output a corresponding pulse width value.
14. The method of
15. The method of
16. The method of
providing at least one look up table that associates pixel values with pulse width values and justification values, and wherein the first pulse width value and the first justification value are generated by providing the values of the first, second, and third pixels as an input address to the at least one look up table.
17. The method of
18. The method of
21. The laser print apparatus of
a laser configured to be modulated for the output pixel so as to be turned on and off at times corresponding to the justification value for the pixel, and remain on for a time period corresponding to the pulse width value for the pixel.
22. The laser print apparatus of
25. The laser print apparatus of
a first-in first-out (FIFO) device to output the three adjacent pixels to the means for analyzing.
26. The laser print apparatus of
a first subtracter to subtract the value of the right pixel from the value of the left pixel, thereby generating a first difference;
a second subtracter to subtract the value of the left pixel from the value of the right pixel, thereby generating a second difference; and
an adder to add the value of the left pixel and the value of the right pixel, thereby generating a sum.
27. The laser print apparatus of
at least one comparator to compare the first difference to a first threshold value, to compare the second difference to a second threshold value, and to compare the sum to a third threshold value; and
a justification code generator to generate the justification value based on results of the comparisons made by the at least one comparator.
28. The laser print apparatus of
29. The laser print apparatus of
a look up table to receive the values of the left, center, and right pixels as an input address, and to output a corresponding modulation code, the modulation code including the pulse width value and the justification value.
30. The laser print apparatus of
a look up table to receive the value of the center pixel and at least one most significant bit of the values for the left and right pixels as an input address, and to output a corresponding modulation code, the modulation code including the pulse width value and the justification value.
31. The laser print apparatus of
a first look up table to receive the values of the left and right pixels as an input address, to output a corresponding justification value; and
a second look up table to receive the value of the center pixel as an input address, and to output a corresponding pulse width value.
33. The laser printing method of
36. The laser printing method of
subtracting the value of the right pixel from the value of the left pixel, thereby generating a first difference;
subtracting the value of the left pixel from the value of the right pixel, thereby generating a second difference; and
adding the value of the left pixel and the value of the right pixel, thereby generating a sum.
37. The laser printing method of
comparing the first difference to a first threshold value;
comparing the second difference to a second threshold value, and
comparing the sum to a third threshold value; and
generating the justification value based on results of the comparisons made by the at least one comparator.
38. The laser printing method of
39. The laser printing method of
receiving the values of the left, center, and right pixels as an input address, and
outputting a corresponding modulation code, the modulation code including the pulse width value and the justification value.
40. The laser printing method of
receiving the value of the center pixel and at least one most significant bit of the values for the left and right pixels as an input address, and
outputting a corresponding modulation code, the modulation code including the pulse width value and the justification value.
41. The laser printing method of
receiving the values of the left and right pixels as an input address, and outputting a corresponding justification value; and
receiving the value of the center pixel as an input address, and outputting a corresponding pulse width value.
43. The computer-readable medium of
46. The computer-readable medium of
subtracting the value of the right pixel from the value of the left pixel, thereby generating a first difference;
subtracting the value of the left pixel from the value of the right pixel, thereby generating a second difference; and
adding the value of the left pixel and the value of the right pixel, thereby generating a sum.
47. The computer-readable medium of
comparing the first difference to a first threshold value;
comparing the second difference to a second threshold value, and
comparing the sum to a third threshold value; and
generating the justification value based on results of the comparisons made by the at least one comparator.
48. The computer-readable medium of
49. The computer-readable medium of
receiving the values of the left, center, and right pixels as an input address, and
outputting a corresponding modulation code, the modulation code including the pulse width value and the justification value.
50. The computer-readable medium of
receiving the value of the center pixel and at least one most significant bit of the values for the left and right pixels as an input address, and
outputting a corresponding modulation code, the modulation code including the pulse width value and the justification value.
51. The computer-readable medium of
receiving the values of the left and right pixels as an input address, and outputting a corresponding justification value; and
receiving the value of the center pixel as an input address, and outputting a corresponding pulse width value.
|
The present invention generally relates to laser printers, and more particularly to a laser print apparatus that generates a pulse width value and a justification value based on pixels in a multi-bit image.
Color and gray value digital images are both composed of picture elements (pixels), each pixel represented by multiple binary bits that define either a color or a gray level. In order to represent such an image on a bi-level (black/white) printer, the pixel data, if not already gray level, is typically converted into a gray level multi-bit value (e.g., 8 bits per pixel). The individual gray level pixels are then typically converted to binary level pixels through use of a digital halftoning process.
Digital halftoning is the process of transforming a continuous-tone image into a binary image that has the illusion of the original continuous tone image, using a careful arrangement of binary picture elements. The process is also called spatial dithering. In the case of color images, the color continuous-tone image is typically separated into color channels first. Separate halftones are then formed for each of the color channels.
Resolution enhancement technology (RET) has been used to smooth out the 1-bit data generated by halftoning algorithms. RET is typically implemented with a large block of dedicated hardware, and typically buffers several lines of data. RET is a hardware intensive technology that takes 1-bit data and reduces the jagged edges that are noticeable at lower resolutions. RET uses template matching on the 1-bit data to essentially guess what the original smooth shapes of the image features were in the grayscale image (i.e., prior to halftoning). RET typically compares a window (e.g., 7×9 pixels) of the 1-bit data with hundreds of templates to identify features (e.g., a diagonal line, the top of the letter “O”, etc.) in the window. The window is moved around the entire 1-bit image to identify features throughout the entire image. Laser modulation codes are generated based on the results of the template matching. The laser modulation codes are used to modulate a laser in the printer in a manner that results in the jagged edges being removed or reduced in the printed output.
One form of the present invention provides a laser print apparatus. The apparatus includes a memory for storing a multi-bit image including a plurality of pixels. Each pixel is represented by an N-bit value, wherein N is greater than one. A modulation code generator analyzes three adjacent pixels. The three adjacent pixels include a left pixel, a center pixel, and a right pixel. The modulation code generator is configured to generate a pulse width value based on the value of the center pixel, and a justification value based on the values of the left pixel and the right pixel. A laser print engine forms an output pixel on media based on the pulse width value and the justification value.
In the following detailed description of the preferred embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.
Computer 102 includes processor 104, memory 108, and input/output (I/O) interface 116, which are communicatively coupled together via bus 106. Driver 110, data 112 to be printed, and multi-bit image data 114 are stored in memory 108. In one embodiment, driver 110 is executed by processor 104 to render the data 112 to be printed into multi-bit image data 114. The data 112 to be printed may be any type of printable data, such as image files, word processing files, etc. In one form of the invention, multi-bit image data 114 includes a plurality of pixels, with each pixel being represented by a multi-bit value (i.e., each pixel is represented by an N-bit value, where N is greater than one). In one embodiment, each pixel in multi-bit image data 114 is represented by a 2-bit value (e.g., black, white, and two gray levels). In another embodiment, each pixel in multi-bit image data 114 is represented by a 4-bit value.
Printer 120 includes processor 122, I/O interface 126, memory 128, and laser print engine 130, which are communicatively coupled together via bus 124. I/O interface 126 of printer 120 and I/O interface 116 of computer 102 are coupled together via communication link 118. In one embodiment, I/O interfaces 116 and 126 are serial interfaces, such as universal serial bus (USB) interfaces, and communication link 118 is a USB cable. In another embodiment, I/O interfaces 116 and 126 are network interfaces, and communication link 118 is a network, such as a local area network. In other embodiments, other types of interfaces and communication links may be used, including those for wireless communications.
After rendering data 112 into multi-bit image data 114, computer 102 outputs the multi-bit image data 114 to printer 120 via communication link 118. As shown in
Pcode generator 206 generates “pcodes” 208 based on the data 204A received from DMA 202. Pcodes 208 (also referred to as laser modulation codes) are described in further detail below. Pcode generator 206 outputs the pcodes 208 to pulse-width modulator 210. Pulse-width modulator 210 generates a pulse-width modulated laser drive signal 212 based on the pcodes 208 received from pcode generator 206 and latch signal 204B from DMA 202. The laser drive signal 212 is also referred to as a video signal. Laser 214 outputs a modulated laser light beam 216 (e.g., on/off binary modulation) based on the laser drive signal 212.
It will be understood by persons of ordinary skill in the art that, in addition to the elements illustrated in
To form an image on media according to one embodiment, laser print engine 130 performs a conventional electrophotographic printing process in response to laser drive signal 212. At any particular time, signal 212 identifies whether laser 214 is providing beam 216 or not providing a beam. Such consecutive particular times define a dot (output pixel) of an image to be formed on the media. In one embodiment, printer 120 outputs 600 dots per inch (dpi), so a dot may be output every 1/600th of an inch. In another embodiment, printer 120 outputs 1200 dpi, so a dot may be output every 1/1200th of an inch.
A fixed amount of space is allotted for each output pixel (e.g., 1/600th of an inch or 1/1200th of an inch). Correspondingly, as laser beam 216 is scanned across the drum, the beam 216 spends a certain amount of time scanning from left to right across each output pixel, which is referred to as the pixel time. The appearance of the resulting dot will be affected by the times that the laser 214 is turned on and off during a pixel time, and the total duration of on time of the laser 214 during the pixel time.
In one embodiment, pcode generator 206 generates a pcode 208 for each output pixel in the image to be formed on the media. In one form of the invention, each pcode 208 includes a pulse width value that is indicative of the length of time laser 214 is turned on over a given output pixel position, and a justification value corresponding to the position of the laser pulse within a given output pixel position. The pulse position may be set at the beginning of the scan of a given output pixel (left justified), centered in the time allotted to the output pixel (center justified), set at the end of the scan of the output pixel (right justified), or split between the beginning and the end of the scan of the output pixel (split justified). In one embodiment, the laser 214 is left on during the transition from one output pixel to the next output pixel for certain types of justifications (e.g., an output pixel with right or split justification, followed by an output pixel with left or split justification).
In one embodiment, each pcode 208 includes a 6-bit pulse width value to identify one of sixty-four different pulse widths, and a 2-bit justification value to identify one of four different justifications (e.g., left justified, right justified, center justified, and split justified). With a 6-bit pulse width value, each output pixel is essentially divided into 1/64th increments, and the pulse width value indicates a fraction of the output pixel that the laser 214 is to be turned on (e.g., 1/64th of the output pixel, 27/64th of the output pixel, 63/64th of the etc.). In other embodiments, pulse width values having more or less than six bits may be used.
In one embodiment, pcode generator 206 analyzes pixels in multi-bit image 114 in groups of three adjacent pixels, such as pixels 300A-300C. Pcode generator 206 is illustrated in block form in
DMA hardware 202 reads the multi-bit image data 114 from printer memory 128, and outputs one pixel of data (e.g., 4 bits) at a time to input D of pixel register 402C. DMA hardware 202 also outputs a latch signal 204B, which is coupled to the clock input CLK of registers 402, to latch the data at the input D of each register 402 to the output Q of each register 402. Registers 402 are configured as a first-in first-out (FIFO) memory that shifts and holds pixels as they are clocked out of DMA hardware 202. Register 402B outputs a current pixel 300B (also referred to as Pixel N). The pixel 300C (also referred to as Pixel N+1) to the right of the current pixel 300B is output by register 402C. The pixel 300A (also referred to as Pixel N−1) to the left of the current pixel 300B is output by register 402A. Registers 402 essentially act as a three pixel wide sliding window that is moved one pixel at a time across multi-bit image 114, and that presents a left pixel 300A, current pixel 300B, and right pixel 300C, at each position of the window.
Pulse width generator 420 receives the current pixel 300B from register 402B, and generates a corresponding pulse width value 422 for the current pixel 300B. In one embodiment, pulse width generator 420 generates a 6-bit pulse width value 422 by concatenating the two most significant bits of the current pixel 300B to the least significant end of the four bits of the current pixel 300B. For example, using the value “1001” of the pixel 300B shown in
The generation of a pulse width value 422 from a current pixel 300B according to one embodiment can be represented by the pseudo code in the following Pseudo Code Example I:
In another embodiment, a multiplier is used to generate the pulse width value 422 by multiplying the pixel value 300B by a scaling factor, such as an integer. For example, to generate a 6-bit pulse width value 422 from a 4-bit grayscale pixel value 300B, pulse width generator 420 multiplies the pixel value 300B by four. In another form of the invention, a fraction is used for the scaling factor (e.g., 63/15).
In another embodiment, pulse width generator 420 includes a look up table (e.g., a 16×6 random access memory (RAM) or 16 6-bit registers) that holds a mapping between 4-bit pixel values 300B (input address to the table) and 6-bit pulse width values 422 (output from the table). The 16×6 RAM provides 16 6-bit wide storage locations that are each uniquely addressable by the 4-bit input address. Each 6-bit wide storage location stores a 6-bit pulse-width value that identifies one of sixty-four pulse-widths. Based on a received 4-bit input address, the look up table outputs a 6-bit pulse-width value 422 for the current pixel 300B. Such a look-up table allows linear or non-linear mapping from grayscale pixel values 300B to pulse width values 422, depending on the values of the pulse-widths loaded into the look up table. Non-linear mapping may be desirable because more than a linearly proportional increase in laser drive pulse width may be needed to provide a suitable amount of toner to compensate for printer non-linearity and non-linearity of the average human visual sensitivity.
Subtracter 410A subtracts the value of the right pixel 300C from the value of the left pixel 300A, and outputs the difference (left pixel−right pixel) to comparator 412A. Comparator 412A determines whether the decimal value of the difference is greater than six, and outputs a left justify signal 414A to justification generator 416 if the difference is greater than six.
Subtracter 4101B subtracts the value of the left pixel 300A from the value of the right pixel 300C, and outputs the difference (right pixel−left pixel) to comparator 412B. Comparator 412B determines whether the decimal value of the difference is greater than six, and outputs a right justify signal 414B to justification generator 416 if the difference is greater than six.
Adder 410C adds the value of the right pixel 300C to the value of the left pixel 300A, and outputs the sum (left pixel+right pixel) to comparator 412C. Comparator 412C determines whether the decimal value of the sum is greater than twenty-four, and outputs a split justify signal 414C to justification generator 416 if the sum is greater than twenty-four.
Justification generator 416 generates and outputs a 2-bit justification value 418 for the current pixel 300B based on the signals 414A-414C output by comparators 412A-412C, respectively. If a left justify signal 414A is received from comparator 412A, justification generator 416 outputs a 2-bit value 418 corresponding to left justify (e.g., “10”). If a right justify signal 414B is received from comparator 412B, justification generator 416 outputs a 2-bit value 418 corresponding to right justify (e.g., “01”). If a split justify signal 414C is received from comparator 412C, justification generator 416 outputs a 2-bit value 418 corresponding to split justify (e.g., “11”). If justification generator 416 does not receive a signal from comparators 412A-412C, justification generator 416 outputs a 2-bit value 418 corresponding to center justify (e.g., “00”). If both the split justify signal 414C and the left justify signal 414A are received, the justification generator 416 outputs a 2-bit value 418 corresponding to left justify. If both the split justify signal 414C and the right justify signal 414B are received, the justification generator 416 outputs a 2-bit value 418 corresponding to right justify.
The determination of a justification value 418 from a left pixel 300A and a right pixel 300C according to one embodiment can be represented by the pseudo code in the following Pseudo Code Example II:
if (left pixel − right pixel) > 6 then LEFT JUSTIFY
else if (right pixel − left pixel) > 6 then RIGHT JUSTIFY
else if (left pixel + right pixel) > 24 then SPLIT JUSTIFY
else CENTER JUSTIFY
The combination of the 6-bit pulse width value 422 and the 2-bit justification value 418 is referred to as a pulse code 208, which is output to pulse width modulator 210 (shown in
In one embodiment, DMA 202 clocks several “0” pixel values through registers 402 at the beginning and the end of each line being printed, so the laser 214 is not turned on in the margin regions. From the perspective of DMA 202, registers 402 are one pixel behind (i.e., the first pixel does not show up in register 402B until the second pixel is strobed from DMA 202). This does not cause a problem since, in one form of the invention, the beginning and end of each line are padded with several pixels of value “0”. In one embodiment, DMA 202 clocks pixels of value “0” through registers 402 during power-up. In another embodiment, registers 402 are reset during power-up, thereby clearing the registers 402.
The value for the current pixel 300B (output by register 402B) is provided as a four bit input address to pulse-width look up table 458. In one embodiment, look up table 458 is a 16×6 RAM, which provides 16 6-bit wide storage locations that are each uniquely addressable by the 4-bit input address. Each 6-bit wide storage location stores a 6-bit pulse-width value that identifies one of sixty-four pulse-widths. Based on a received 4-bit input address, look up table 458 outputs a 6-bit pulse-width value 456 for the current pixel 300B. Depending on the values of the pulse-widths loaded into look up table 458, a linear mapping from pixel values to pulse widths may be provided, or a non-linear mapping may be provided to compensate for the non-linearity of the printing process.
The combination of the 2-bit justification 254 output by look up table 452 and the 6-bit pulse width 456 output by look up table 458, is an 8-bit pcode 208 for the current pixel 300B, which is provided to pulse width modulator 210.
In step 504, a pulse width value is generated for a current pixel 300B in the multi-bit image data 114. In one embodiment, the pulse width value is generated by concatenating at least one most significant bit of the current pixel 300B to the least significant end of the bits of the current pixel 300B. In another embodiment, the pulse width value is generated by multiplying the value of the current pixel 300B by an integer. In yet another embodiment, the pulse width value is obtained from a look up table that associates pixel grayscale values with pulse width values. In one form of the invention, rather than generating the pulse width value based on the value of the center pixel 300B in a set of three adjacent pixels 300A-300C, the pulse width value for the pixel 300B is generated based on the value of all three pixels 300A-300C.
In step 506, the value of the pixel 300A to the left of the current pixel 300B and the value of the pixel 300C to the right of the current pixel 300B are compared. In step 508, a justification value is generated based on the comparison of the left and the right neighboring pixels performed in step 506. In one embodiment, the justification value is generated by performing arithmetic operations on the values of the left and right pixels, and comparing the results of the arithmetic operations to threshold values. In another embodiment, the justification value is obtained from a look up table that associates pixel grayscale values with justification values.
In step 510, a pcode 208 is output to a pulse width modulator 210. In one embodiment, the pcode 208 includes the pulse width value generated in step 504, and the justification value generated in step 508. In step 512, the laser 214 in printer 120 is modulated based on the pcode 208 output in step 510.
As mentioned above, registers 402 essentially act as a three pixel wide sliding window that is moved one pixel at a time across multi-bit image 114, and that presents a left pixel 300A, current pixel 300B, and right pixel 300C, at each pixel position. In step 514 of method 500, the sliding window is moved to the right one pixel position, and the method returns to step 504. Thus, the previous left pixel 300A falls outside the window, the previous current pixel 300B becomes the new left pixel 300A, the previous right pixel 300C becomes the current pixel 300B, and the pixel to the right of the previous right pixel 300C becomes the new right pixel 300C. After each move of the sliding window, steps 504-512 are repeated to generate a pcode 208 for the center pixel 300B in the window.
It will be understood by a person of ordinary skill in the art that functions performed by computer 102 or printer 120 may be implemented in hardware, software, firmware, or any combination thereof. The implementation may be via a microprocessor, programmable logic device, or state machine. Components of the present invention may reside in software on one or more computer-readable mediums. The term computer-readable medium as used herein is defined to include any kind of memory, volatile or non-volatile, such as floppy disks, hard disks, CD-ROMs, flash memory, read-only memory (ROM), and random access memory.
One form of the present invention provides a method of generating high quality enhanced resolution printed images without implementing a large block of dedicated resolution enhancement technology (RET) hardware, or a RET-like function of template matching with pcode replacement. In one embodiment, justification information is derived by the printer “on the fly” from pixel grayscale data based on surrounding pixels, which eliminates the need to generate 1-bit halftone data and transfer the halftone data to a RET application specific integrated circuit (ASIC). In one form of the invention, justification information for a current pixel is derived based on two adjacent pixels (e.g., a pixel to the left and pixel to the right of the current pixel), so there is no need to buffer lines of data.
Although specific embodiments have been illustrated and described herein for purposes of description of the preferred embodiment, it will be appreciated by those of ordinary skill in the art that a wide variety of alternate and/or equivalent implementations may be substituted for the specific embodiments shown and described without departing from the scope of the present invention. Those with skill in the mechanical, electromechanical, electrical, and computer arts will readily appreciate that the present invention may be implemented in a very wide variety of embodiments. This application is intended to cover any adaptations or variations of the preferred embodiments discussed herein. Therefore, it is manifestly intended that this invention be limited only by the claims and the equivalents thereof.
Keithley, Douglas G., Marshall, John D.
Patent | Priority | Assignee | Title |
8045212, | Feb 12 2003 | CAVIUM INTERNATIONAL; MARVELL ASIA PTE, LTD; MARVELL INTERNATIONAL LTD | Laser print apparatus that generates pulse with value and justification value based on pixels in a multi-bit image |
Patent | Priority | Assignee | Title |
5313287, | Apr 30 1993 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Imposed weight matrix error diffusion halftoning of image data |
5515480, | Jun 15 1994 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | System and method for enhancing graphic features produced by marking engines |
5761325, | Nov 28 1994 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Digital halftone rendering of a gray scale image with frequency-dependent diagonal correlation |
5809217, | Jan 10 1997 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Method and apparatus for deriving additional gray levels in a multi-gray level halftone image |
5898505, | Jan 24 1997 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Resolution enhancement procedure and apparatus for a color laser printer |
6028677, | Sep 16 1997 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Method and apparatus for converting a gray level pixel image to a binary level pixel image |
6178011, | Mar 24 1998 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Adaptive image resolution enhancement technology |
6249355, | Oct 26 1998 | Hewlett-Packard Company | System providing hybrid halftone |
6335989, | Jul 31 1998 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Halftone printing using donut filters |
6362898, | Oct 31 1997 | MONTEREY RESEARCH, LLC | Pulse width position modulator and clock skew synchronizer |
6369911, | Nov 19 1996 | Seiko Epson Corporation | Apparatus for generating pulse-width data for toner-transfer-type printing apparatus |
20030151774, | |||
JP5022544, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 07 2003 | KEITHLEY, DOUGLAS G | Agilent Technologies, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013823 | /0546 | |
Feb 07 2003 | MARSHALL, JOHN D | Agilent Technologies, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013823 | /0546 | |
Feb 12 2003 | Marvell International Technology Ltd. | (assignment on the face of the patent) | / | |||
Dec 01 2005 | Agilent Technologies, Inc | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 017206 FRAME: 0666 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNMENT | 038632 | /0662 | |
Dec 01 2005 | Agilent Technologies, Inc | AVAGO TECHNOLOGIES GENERAL IP PTE LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017206 | /0666 | |
Jan 27 2006 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD COMPANY REGISTRATION NO 200512430D | AVAGO TECHNOLOGIES IMAGING IP SINGAPORE PTE LTD COMPANY REGISTRATION NO 200512334M | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017683 | /0113 | |
Sep 20 2007 | AVAGO TECHNOLOGIES IMAGING IP SINGAPORE PTE LTD | Marvell International Technology Ltd | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021849 | /0047 | |
Dec 31 2019 | CAVIUM INTERNATIONAL | MARVELL ASIA PTE, LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 053475 | /0001 | |
Dec 31 2019 | MARVELL INTERNATIONAL LTD | CAVIUM INTERNATIONAL | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 052918 | /0001 | |
Dec 31 2019 | Marvell International Technology Ltd | MARVELL INTERNATIONAL LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 051735 | /0882 |
Date | Maintenance Fee Events |
Apr 11 2011 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 09 2015 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
May 27 2019 | REM: Maintenance Fee Reminder Mailed. |
Nov 11 2019 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Oct 09 2010 | 4 years fee payment window open |
Apr 09 2011 | 6 months grace period start (w surcharge) |
Oct 09 2011 | patent expiry (for year 4) |
Oct 09 2013 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 09 2014 | 8 years fee payment window open |
Apr 09 2015 | 6 months grace period start (w surcharge) |
Oct 09 2015 | patent expiry (for year 8) |
Oct 09 2017 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 09 2018 | 12 years fee payment window open |
Apr 09 2019 | 6 months grace period start (w surcharge) |
Oct 09 2019 | patent expiry (for year 12) |
Oct 09 2021 | 2 years to revive unintentionally abandoned end. (for year 12) |