WO1995033330A1 - Technique for rendering images on a binary marking engine - Google Patents
Technique for rendering images on a binary marking engine Download PDFInfo
- Publication number
- WO1995033330A1 WO1995033330A1 PCT/US1995/006747 US9506747W WO9533330A1 WO 1995033330 A1 WO1995033330 A1 WO 1995033330A1 US 9506747 W US9506747 W US 9506747W WO 9533330 A1 WO9533330 A1 WO 9533330A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- gray scale
- modulation
- marking engine
- current
- binary
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/40—Picture signal circuits
- H04N1/405—Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels
- H04N1/4055—Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a clustered dots or a size modulated halftone pattern
Definitions
- the present invention relates to a method and apparatus for rendering digital images on a binary marking engine. More particularly, the present invention relates to a method and apparatus for selecting a modulation stream from a modulation table based on current and adjacent gray scale values corresponding to current and adjacent source image sectors and providing the selected modulation stream to the binary marking engine.
- Digital images must frequently be rendered as a binary image in a wide variety of display devices such as printers, facsimile machines, lithography, liquid crystal displays and plasma panels to name a few. These digital images may be text, line art or halftone images, to name a few.
- Halftone images are arrangements of binary picture elements which provide the illusion of gray scale or continuous tone images.
- the binary marking engine is selectively activated to render the digital image as an arrangement of active and inactive portions.
- active and inactive portions may represent portions that are black or white in the case of text and black and white images or any other color from a conventional color mixing system such as red, green and blue (RGB) for additive color systems or cyan, magenta, yellow and black (CMYK) for subtractive color systems.
- RGB red, green and blue
- CMYK magenta, yellow and black
- an image processor or print controller modulates or selectively activates a marking engine as the output image is formed through a series of successive scans. Each scan is referred to as a scan line.
- a frame buffer is frequently utilized by the image processor or print controller to generate the modulation information that is provided to the marking engine.
- the frame buffer is frequently a large contiguous memory wherein each memory bit is assigned or is representative of a corresponding location or sector in the input or source image.
- the images represented in these frame buffers are often referred to as a bit map images.
- the image processor utilizes the image stored in the frame buffer to control the marking engine to form picture elements, often referred to as pixels in the output image.
- each bit in the frame buffer corresponds to a unique pixel in the output image.
- the size of a bit map frame buffer is then the number of pixels in the output image. For example, an output image that has 512 pixels per scan line and 512 scan lines will require 512 x 512 or 262,144 bits of memory to store a 1 bit per pixel image.
- the image is first produced on a charged surface, such as a photoconductive material, by sequentially scanning the photoconductive material, for example, with laser light from a laser diode.
- the sequential scanning by the laser produces a charge pattern of the desired image on the photoconductive material.
- a printer output is obtained by developing the charge pattern by attracting toner to it, and transferring the developed image to paper, or some other conventional transfer material.
- Resolution of a rasterized marking engine is typically stated in the number of pixels or dots per inch that are formed in the output image.
- Resolution in the vertical direction is usually based on the number of sweeps of the laser beam or pixels per inch in a direction perpendicular to the scan line that are formed on the surface of the photoconductive material.
- the resolution in the horizontal direction is usually based on the frequency at which the laser diode is modulated or activated.
- the horizontal resolution is typically selected to match the vertical resolution to provide equal resolution in both the vertical and horizontal direction.
- a typical resolution for an electrophotographic marking engine is 300 dots per inch (dpi) in both the horizontal and vertical directions.
- the fidelity of the output image to the source data is directly related to the resolution of the marking engine or pixel size in the output image. Improvements in resolution tends to minimize aliasing referred to as "stairsteps” or “jaggies” in binary images such as text and line art. These stairsteps and jaggies tend to result from quantization error, which is directly related to the resolution of the marking engine.
- Improved marking engine resolution tends to provide smaller dots or pixels which tend to more closely approximate the source image thereby reducing the quantization error.
- Reduction of the quantization error tends to reduce or minimize stairsteps and jaggies in binary images such as text and line art.
- One approach has been to increase the output image resolution by increasing the resolution of the bit map image.
- a higher resolution bit map allows each bit in the bit map to correspond to a smaller pixel or portion of the output image.
- increasing the bit map resolution is expensive.
- increasing the horizontal bit map resolution by a factor of two provides a corresponding increase in the horizontal resolution by a factor of two at the expense of increasing the frame buffer by a factor of two.
- These techniques are typically used to increase only the horizontal output resolution because in many laser engines the number of sweeps of the laser or scan lines per inch is fixed and cannot be changed to vary the vertical resolution.
- the bit map resolution were doubled in both the horizontal and vertical direction, the memory requirements would effectively quadruple, adding significant cost to the system.
- a major disadvantage of increasing the resolution using this method is the cost of the additional memory. This is particularly a problem where the frame buffer is large to begin with, which is the case for large format output devices where the output image is physically large. Additionally, color output devices usually require multiple frame buffers sometimes referred to as "color planes", one for each color of the color system used. Another technique that has been used to improve the quality of the output image is to use some form of interpolation or pattern matching technique. Many of these enhancing techniques operate on the bit map image data after fine detail of the source image has already been lost, but before the image is provided to the display apparatus. One such enhancement technique is shown in U.S. Patent No. 5,005,139 to Tung. The Tung enhancement technique is utilized after image data is rendered as a bit map image.
- This bit map image is then matched with predetermined stored templates or patterns to detect occurrences of pre-selected bit map features. Whenever a match occurs, an associated compensation subcell is substituted for the central bit within the sample window. Each bit in the bit map image is examined and where appropriate a compensated subcell or bit is generated. This modified bit map is then used to drive the laser imaging circuitry of the output device.
- the method and apparatus should provide good fidelity of the output image to the source image. More specifically, the amount of active area for a given local area of the output image should be the same as the source image both overall and for each corresponding local area within these images. In addition, edges of shapes and images within the output image should have minimal distortion such as stairsteps or jaggies. And finally, this method and apparatus should minimize the loss of features from the source data to the output image.
- the present invention is a method and apparatus for rendering a binary image from gray scale source image data representing a plurality of sectors within the source image.
- One aspect of the present invention is a method that includes selecting gray scale values corresponding to current and adjacent source image sectors.
- a modulation stream is provided based on the selected current and adjacent gray scale values.
- the modulation stream is then provided to a binary marking engine.
- providing of the modulation stream is performed by providing a modulation table containing modulation streams corresponding to gray scale values of a plurality of sectors.
- the modulation stream provided is selected from the modulation table based on the selected gray scale values.
- the controller includes a selection means for selecting gray scale values corresponding to current and adjacent sectors of a gray scale rendering of source image data. Also included is modulation means for generating a modulation stream corresponding to the gray scale values of current and adjacent sectors. The modulation means provides the selected modulation stream to a binary marking engine.
- Another aspect of the present invention is a binary printing device for rendering a binary image from gray scale source data.
- the device has a electrophotographic marking engine suitable for forming output image pixels that have active portions therein.
- a frame buffer for storing a gray scale rendering of source data corresponding to source image sectors.
- a modulation generator is included for generating a modulation stream for each output pixel based on gray scale values associated with each source image sector and the gray scale values associated with sectors adjacent to each source image sector.
- the modulation generator provides the modulation stream to the electrophotographic marking engine.
- the modulation generator is a lookup table that sequentially provides a modulation stream corresponding to each output pixel to form an output image formed from a plurality of pixels arranged in a series of successive scan lines.
- FIG. 1 shows an overall system which includes an image processor of the present invention for rendering image data from a host on a marking engine.
- FIG. 2A, 2B, and 2C shows rendering of a source image as a gray scale image in a frame buffer.
- FIG. 3 shows the print controller of FIG. 1 for providing a modulation stream to the marking engine based on gray scale data in the frame buffer.
- FIG. 4 shows sectors within a portion of the source image corresponding to previous, current and next gray scale values within the frame buffer.
- FIG. 5 shows modulation stream values stored in the modulation table and corresponding pixels formed by the marking engine for vertical line formation.
- FIG. 6A, 6B, 6C, 6D, 6E, and 6F illustrate a vertical resolution enhancement technique for electrophotographic marking engines.
- FIG. 7 shows modulation stream values stored in the modulation table for horizontal line formation.
- FIG. 8 shows sectors within a portion of the source image corresponding to previous, current, next, first and second adjacent gray scale values stored in the frame buffer.
- FIG. 9 shows a print controller for use with a high vertical resolution print engine.
- FIG. 1 shows an output device 10 of the present invention that is linked to a host 12.
- the host 12 is a computer or processor having one or more software applications 14 executing thereon for generating a source image.
- the host 12 can be a conventional imaging device such as a video camera or scanner. Images from the host 12 are transferred to the output device 10 for display.
- the output device 10 includes an image processor 16 and a display device or marking engine 18.
- the image processor 16 receives either image data or an image description from the host 12 and converts this image information into suitable control signals to render an output image on the display device or marking engine 18.
- the image information provided by the host 12 is in a conventional format such as a bit map or device independent description such as that produced utilizing a page description language.
- the image processor 16 includes an interpreter 20, frame buffer 22 and print controller 24.
- the interpreter 20 receives image information from the host 12 and renders this image information as a gray scale image which is stored in frame buffer 22.
- the gray scale image is rendered in frame buffer 22 as a series of values representative of a series of regularly spaced tones ranging from white to black through intermediate shades of gray in the source image.
- An important aspect of the present invention is the method and apparatus by which the print controller 24 utilizes the gray scale image stored in frame buffer 22 to provide a suitable control signal to the output device 18 to provide an enhanced binary output image.
- the print controller 24 will be discussed in more detail later.
- the marking engine 18 is a binary device.
- Binary marking engines 18 represent shapes and tones by forming active and inactive picture elements, or pixels, and subpicture elements, or subpixels, within the output image. Subpixels are portions of a pixel. These pixels or subpixels represent the smallest active feature the marking engine 18 is capable of forming and therefore are indicative of the engines resolution. Because these marking engines 18 have limited resolution they are not "ideal" binary output devices and therefore the output image formed by these devices is only an approximation of the source image. Shapes within the source image such as text and line art are represented on a binary output device 18 by properly arranging active and inactive pixels. Tones may be rendered on a binary device by arranging these active and inactive pixels or subpixels to provide the illusion of a gray scale image or continuous tone image.
- Active and inactive pixels within the output image may represent black and white pixels, respectively, or vice versa white and black pixels, respectively, depending on whether the marking device 18 is a "black” printer or a "white” printer.
- active and inactive pixels may represent colors in a conventional color system such as red, green or blue (RGB) for additive color systems or cyan, magenta, yellow, and black (CMYK) for subtractive color systems.
- the marking engine 18 may be any conventional binary output device such as facsimile machines, lithography, liquid crystal displays, thermal marking engines, and plasma displays, just to name a few.
- the marking engine 18 is an electrophotographic marking engine, typically found in laser printing devices.
- an output image is produced by creating an electrostatic representation of the desired image on a photosensitive or photoreceptive surface, developing the image and then transferring the developed image to a print media or transfer media such as paper.
- the electrophotographic marking engine 18 includes a laser diode or gas laser 26, a multifaceted rotating mirror 28, a photosensitive drum 30, a developing unit 32 containing toner 34 and fixing rollers 36 and 38.
- the mirror 28 rotates synchronously with the photosensitive drum 30 so that a beam of light from the laser diode 26 sweeps across the drum at a fixed rate.
- Each sweep of the laser beam across the drum 30 is called a scan line.
- charge characteristics of the drum are altered.
- the laser diode 26 is modulated or turned on and off, the charge on the drum 30 can be altered selectively along the scan line. Utilizing this process, a series of laser scans or scan lines are used to form an electrostatic representation of the source image on the photosensitive drum 30.
- the electrostatic representation or charge pattern on the drum 30 is developed using the developer 32 to apply toner 34 to the photosensitive drum 30.
- the toner 34 is distributed on the photosensitive drum 30 based on the charge characteristics of the drum 30.
- the drum 30 then transfers the toner 34 to a transfer material 40.
- the toner 34 is then fused or melted to the transfer material 40 by heating fixing rollers 36 and 38.
- the transfer material 40 may be any conventional transfer material such as paper, polyester film, thermal wax transfer media, or some form of thermal sensitive material, to name a few.
- markings on the surface of the drum is commonly used as a measure of vertical resolution for the marking engine 18.
- a marking engine 18 which scans the drum 30 with 300 laser scans per inch is said to have a vertical resolution of 300 dots or marks per inch (dpi).
- the laser diode 26 is modulated or turned on and off by the print controller 24.
- the laser diode 26 is typically modulated at a rate that will provide a resolution in the horizontal direction that is approximately equal to the resolution in the vertical direction.
- the marking engine 18 is capable of selectively forming active and inactive marks or dots on the transfer material 40 which have a length and width generally defined by the vertical and horizontal resolution of the engine.
- FIGS. 2A, 2B and 2C illustrate the process, performed by interpreter 20, of rendering a source image provided by the host 12 in FIG. 1 as a gray scale image that is stored in the frame buffer 22.
- FIG. 2A represents a source image 50 provided by the host 12 in FIG. 1.
- the source image 50 can be in the form of a bit map or some form of conventional image description such as a PostScript® page description of the source image 50.
- PostScript ® is a registered trademark of Adobe Systems Incorporated.
- the source image 50 shown in FIG. 2A is a text image having an ideal shape 51 that has active or black and an inactive or white portions 52.
- the interpreter 20 receives the source image 50 and renders this image as a gray scale image for the marking engine 18.
- a portion 54 of the source image 50 is shown greatly enlarged to better illustrate a gray scale rendering shown in FIG. 2C of the source image 50 shown in FIG. 2B.
- the source image 50 is shown divided into a plurality of adjacent sectors by a grid 55 to illustrate an "ideal" rendering process performed by interpreter 20.
- the actual rendering process may be any conventional rendering process.
- the interpreter 20 assigns a gray scale value as shown in FIG. 2C which corresponds to sector of the source image 50 shown in FIG. 2B.
- Each of the gray scale values of FIG. 2C represents an amount of each corresponding sector within the source image 50 which is active or black.
- the gray scale value associated with each sector of the source image 50 represents an amount of that sector occupied by the ideal shape 51. Therefore, gray scale values are assigned by the interpreter 20 to the frame buffer 22 based on relative amounts of active and inactive area within corresponding sectors of the source image 50. For example, a sector within the source image 50 that is half active and half inactive is considered to have a 50 percent tint and the gray scale value is assigned accordingly. Interpreters for interpreting conventional image descriptions and rendering these as a gray scale image are known.
- the gray scale rendering of the source image stored in frame buffer 22 should be capable of representing more than two different gray levels or the 100% tint level, the 0% tint level and at least one gray level in between the 100% and 0 tint levels.
- the gray scale value in one preferred embodiment is a binary value having two or more bits.
- the print controller 24 reads an initial or current gray scale value from the frame buffer 22 along with a previous and next gray scale value.
- the previous and next gray scale values correspond to sectors in the source image 50 that are adjacent to a sector within the source image 50 corresponding to the current gray scale value. Based on the previous and next gray scale values the print controller 24 provides control information or a modulation stream to the marking engine 18 to form active portions corresponding to the current gray scale value in selected portions of an output image pixel.
- FIG 2C shows the frame buffer 22 wherein a two bit binary value is used to represent the gray scale value of a corresponding sector in the source image 50.
- This two bit per gray scale value frame buffer is used to illustrate the method and apparatus of the present invention.
- Frame buffers 22 having more than two bits representing each gray scale value can also be used to represent the source image 50. It will be described later how the method and apparatus of the present invention is extended to frame buffers 22 that have more than two bits for each gray scale value.
- the gray scale values shown in FIG. 2C are two bit binary values providing four different gray levels. For example, 00 binary represents that the corresponding sector of the source image 50 is inactive, 01 represents that the sector is 1/3 active or has a 33% tint, 10 represents that the sector is 2/3 active or has a 67% tint and binary value 11 represents the sector is all active or has a 100% tint.
- Sector 56 shown in FIG. 2B is 2/3 active or black and therefore has a corresponding binary gray scale value of 10.
- Sector 58 is 1/3 active or black and therefore has a corresponding binary gray scale value of 01.
- Shown in FIG. 3 is one preferred embodiment of the print controller 24 of the present invention as shown in FIG. 1.
- the print controller 24 utilizes the gray scale image information in the frame buffer 22 to modulate the laser 26 thereby forming a binary image on the transfer material 40, see FIG. 1.
- the print controller 24 includes a modulation table 70 and a shift register 72.
- the modulation table 70 receives values from the frame buffer 22 of FIG. 1 corresponding to previous, current and next sectors of the source image 50 and selects a modulation stream based on these values which is provided to the marking engine by the shift register 72.
- the current value selected from the frame buffer 22 represents a gray scale value that corresponds to a sector in the source image 50.
- the previous and next values selected from the frame buffer 22 represent gray scale values that correspond to sectors in the source image 50 adjacent the sector corresponding to the current value.
- the source image 50 having a sector 74 corresponding to the current gray scale value selected from the frame buffer 22. Adjacent the sector associated with the current value is a sector 76 associated with the previous value and a sector 78 associated with the next value, each of these gray scale values are stored in the frame buffer 22.
- the sectors associated with the previous and next values are adjacent and positioned on either side of the sector associated with the selected current value in a direction of rasterization or a scan direction corresponding to a scan line of the marking engine 18 as shown by arrow 80 in FIG. 4.
- the modulation table 70 shown in FIG. 3 receives the previous, current and next gray scale values and provides a corresponding modulation stream for controlling the marking engine 18 to form a pixel in an output image corresponding to a sector within the source image 50 that is associated with the current gray scale value.
- the modulation stream represents a series of sequential control instructions or commands which are provided to the marking engine 18
- the modulation stream is a multiple bit binary number for modulating the active and inactive or "on" and "off time of the laser diode 26 within the electrophotographic marking engine 18.
- This multiple bit binary pattern representing the modulation stream is loaded in parallel in shift register 72.
- a clock is provided to the shift register 72 for sequentially providing each bit of the binary number representing marking engine instructions or commands sequentially to the marking engine 18 to form the corresponding output pixel on the transfer material 40.
- the modulation table is a one dimensional modulation table having a modulation stream value associated with each possible combination of previous, current and next gray scale values.
- the gray scale values associated with each of the previous, current and next values are two bit values providing up to 2 6 or 64 different combinations of inputs to the modulation table 70.
- the modulation table 70 provides a six bit modulation stream having up to 64 different modulation stream bit arrangements or values that corresponds to different combinations of input values. This six bit modulation stream is loaded in parallel to shift register 72.
- the shift register 72 receives a clock signal to provide the modulation stream in a serial format to the marking engine 18.
- Each modulation stream provided by the modulation table 70 represents a series of control instructions provided to the marking engine 18 for forming active and inactive portions or black and white portions within a corresponding output pixel on the transfer material 40.
- the length or number of bits in the modulation stream determines the number intervals or subpixels that are defined by the marking engine 18 in each pixel in the output image.
- the number of bits in each gray scale value tends to define the number of possible input combinations to the modulation table 70.
- the modulation stream provided by a given input combination does not have to be unique.
- the length of the modulation stream is not related to the number of bits in each gray scale value. Therefore, the length of the modulation stream can be any length but the number of different modulation streams that can be selected is limited by the number of input combinations provided to the modulation table 70.
- the modulation stream is provided to the shift register 72 by the modulation table 70
- another sector within the source image 50 is selected as the current sector and its corresponding gray scale value is provided from the frame buffer 22 to the modulation table 70.
- previous and next sectors are selected that are adjacent to this new current sector and their corresponding gray scale values are provided to the modulation table 70.
- a newly selected modulation stream is provided by the modulation table 70 which corresponds to the gray scale values corresponding to these newly selected previous, current and next sectors and this modulation stream is provided in a serial fashion by the shift register 72 to the marking engine 18.
- the gray scale values corresponding to each sector within the source image 50 are rasterized and stored sequentially as gray scale values in the frame buffer 22.
- an address generator that is included in the print controller 24 provides an address for current, previous and next gray scale values within the frame buffer 22.
- a subsequent set of previous, current and next values are provided to the modulation table by selecting values from the next sequential memory location within the frame buffer 22.
- the address generator After a modulation stream is transferred to the shift register 72, the address generator provides an address for the next sequential memory location in the frame buffer 22 and provides gray scale values which correspond to the new set of previous, current and next values.
- a modulation stream is then provided to the shift register 72 and the address generator is again incremented.
- the previous and current gray scale values for a given iteration are the current and next gray scale values of the prior iteration. Therefore, for each selection of a modulation stream only one new gray scale value, the next gray scale value, is provided, however, the order of the other values will change, ie. previous value is now the current value. This process is continued until a modulation stream is provided for each gray scale value in the frame buffer 22.
- the modulation table 70 which provides the modulation stream for forming each pixel element in the output image will now be described in more detail.
- the modulation table 70 is a look-up table which provides the modulation stream value corresponding to previous, current and next gray scale values.
- the current gray scale value represents an amount of the corresponding sector within the source image 50 that is active or black.
- the previous and next gray scale values are indicative of the amount of active or black portions of each of the adjacent sectors on either side of the sector corresponding to the current value. An inference can be made as to the distribution of active or black portions within this current sector based on the amount of active area in the adjacent sectors represented by the previous and next gray scale values.
- This inference as to the distribution of active portions within each output pixel is performed by the assignment of a specific modulation stream to a specific combination of previous, current and next gray scale values during the formation of the modulation table, as will be discussed in more detail latter.
- the modulation stream which corresponds to selected combinations of previous, current and next gray scale values represents marking engine control information for forming an output pixel on the transfer material 40 having an amount of active or black area specified by the current gray scale value.
- the distribution of the active or black portions within the output pixel is specified by the modulation stream selected.
- the modulation stream is used to control the marking engine 18 for distributing active or black portions in an output pixel.
- the marking engine 18 is an electrophotographic marking engine such as those used in laser printers. Electrophotographic marking engines such as laser engines form vertical lines, vertical edges or align the active areas in a vertical orientation in a manner different from the formation of horizontal lines, horizontal edges or the alignment of active areas in a horizontal orientation within the pixel. For this reason, the selection of modulation stream values for the modulation table 70 for the vertical case will be discussed separate from the selection of modulation stream values for the horizontal case.
- FIG. 2B An example of a vertical line or edge is shown in pixel 56 of FIG. 2B.
- Vertical lines are formed by activating the marking engine 18 at selected times so that the corresponding output pixel is active or black in selected portions.
- a vertical line should be formed if the gray scale value associated with the current pixel indicates that a portion of the pixel is active or black and at least one of the gray scale values associated with the next or previous source image pixel indicates this pixel is completely active or black, i.e. has a gray scale value equal to 11 binary.
- the output pixel should be filled toward the next pixel for the case where the next pixel is black, from the previous pixel, in the case where the previous pixel is black or from both sides toward the middle, in the case where both the previous and next pixels are black.
- FIG. 5 illustrates general rules for inferring the fill locations within output pixels that are 1/3 to 2/3 active or black.
- FIG. 5 does not illustrate all possible distributions of active area for the output pixel to be formed, however it is apparent from this figure how these other distributions are inferred.
- the output pixel should be formed toward the next pixel.
- modulation table 70 provides a modulation stream of 000011, so that the marking engine 18 is turned on during the last 1/3 of the scan that formed the corresponding output pixel.
- the modulation stream selected is 001111 so that the marking engine is turned on for the last 2/3 of the scan which forms the corresponding output pixel.
- the corresponding modulation stream provided is 10000 so that the output pixel formed is active for the first 1/3 of the scan.
- the modulation stream provided is 111100, so that the marking engine is turned on over the first 2/3 of the scan.
- the modulation stream provided is 001100 indicating that the marking engine 18 will be turned on to fill the middle 1/3 of the pixel scan.
- FIG. 2B An example of a vertical edge or line case is shown in FIG. 2B, pixel 56.
- Pixel 56 of the input image 50 has a gray scale value corresponding to 10, a previous gray scale value of 00 and a next gray scale value of 11. Therefore, the modulation stream provided by the modulation table 70 will be 001111 as shown in FIG. 5.
- the shift register 72 shifts this modulation stream sequentially to the marking engine 18 so that the marking engine is active or is turned on over the last 2/3 of the output pixel corresponding to source image pixel 56. In this manner, the output pixel corresponding to pixel 56 of the input image is formed knowing only the gray scale values of pixel 56 as well as gray scale values of two adjacent pixels.
- An important aspect of the method and apparatus of the present invention is that vertical edges are formed at the proper position.
- the vertical edge formed by pixel 56 in FIG. 2B is formed 1/3 of the way into this pixel instead of formed at the beginning of this pixel or the beginning of the next pixel. Because the vertical line or edge is formed in the proper location, the spacing between text characters, for example, is more accurate.
- An example of two vertical line or edge situations not shown in FIG. 5 represent active portions within the pixel or subpixels that are not arranged in thirds of the pixel.
- the first of these is the condition where each of the previous and next values are inactive or 00 and the current value is 10.
- 2/3 of the output pixel should be active and because the adjacent pixels are inactive it can be inferred that the active portion should be centered within the pixel.
- a modulation stream of 011110 is provided to form an active portion in the central portion of the pixel.
- a second example where active portions within the pixel are not arranged in thirds is when each of the previous and next values are active or 11 and the current value is 01 indicating 1/3 of the output pixel should be active.
- a modulation stream of 100001 is provided so that two active portions each of which are 1/6 of the pixel with each of these active portions positioned at opposite sides of the pixel adjacent previous and next pixels.
- the position of active portions within the pixel is inferred by centering the active and inactive portions.
- Another method of handling these situations is for the interpreter 20 to screen for these conditions to simply eliminate the structures formed by these extremely thin vertical lines from the output image.
- the modulation stream of 000000 is provided to assume the pixel is inactive. This screening operation results in little error for some source images 50 such as text because these images tend not to include extremely thin vertical lines .
- a laser diode 26 and a mirror 28 provide a laser beam which sweeps across the drum 30 to alter charge distributed on the drum 30 along a scan line. This alteration of charge on the surface of drum 30 allows toner to selectively adhere to portions of the drum 30.
- the photoconductive properties of the drum are such that as portions of the drum receive more exposure to light energy, the greater the alteration of charge on the drum. If this charge alteration exceeds a predetermined threshold level, toner is attracted to those portions of the drum that exceed this threshold.
- FIGS. 6A and 6B show energy distributions resulting from a laser scan along a scan line 80 on drum 30.
- the energy distribution from the laser light is shown by a curve 82 in FIG. 6A.
- the light energy from the laser beam is distributed such that the energy is greatest towards the center of the beam which is located on scan line 80.
- the energy imparted to the drum 30 decreases as the distance from the center of the beam increases.
- Light energy above a threshold 84 represents that portion of light energy which is necessary to alter the characteristics of charge on the drum 30 sufficiently for toner attraction. Therefore, as the laser beam sweeps across the drum 30, the charge along a portion 86 of the drum is altered sufficiently to attract toner thereby producing an active or black portion on the transfer material 40.
- FIGS. 6C and 6D represent the laser scan along scan line 80 of drum 30 shown in FIGS. 6A and 6B. However, in addition, a laser scan is made on scan line 88 with the laser pulsing on and off or having a duty cycle less than 100%.
- the laser pulses 90, 92, and 94 are shown in dashed lines with each pulse providing light energy represented by curve 96 which is below the threshold level 84 for toner attraction.
- FIG. 6E and 6F shows the combined charge distribution as a result of a reduced duty cycle laser scan or pulsed laser scan on line 88 and a continuous laser scan on line 80, which provides the combined charge distribution on drum 30 shown in FIG. 6F.
- the energy distribution 82 from the laser scan on line 80 effectively combines with light energy imparted on drum 30 from the laser scan along line 88 represented by curve 96, producing a combined energy distribution 98 shown in FIG. 6E.
- This combined energy distribution or charge alteration results in an additional portion 100 of drum 30 which is above threshold 84. Therefore, toner is attracted to portions 86 and 100 on the drum 30 producing corresponding active or black portions in the output image.
- the use of a reduced laser scan duty cycle or pulsing laser for a short duration for improving the vertical resolution of an electrophotographic marking engine is disclosed in U.S. Patent 5,041,848 entitled, "Non-Gray Scale Anti-Aliasing Method for Laser Printers", to Gilbert et al., assigned to the assignee of the present invention and incorporated by reference herein.
- a horizontal line case is detected if the current gray value from the frame buffer 22 is not totally inactive (not white) or not totally active (not black) and both the previous and next gray scale values are also not active or not inactive.
- the output pixel should be filled by providing short duration laser pulses and allowing this energy to combine with light energy provided by previous and subsequent laser scans to properly activate portions of this output pixel.
- the modulation stream provided will depend on the current gray scale value. If the current gray scale value is 01, indicating the output pixel is 1/3 active or black, then a modulation stream of 010010 is provided so that the laser diode is pulsed at a 33% duty cycle.
- a modulation stream of 110110 is provided which corresponds to a 67% duty cycle.
- the modulation stream may vary depending on the duty cycle necessary to attract the proper amount of toner for the particular laser engine that is used.
- the modulation stream may be arranged or skewed toward the darker adjacent pixel. For example, if the previous pixel has a value of 01 and the next pixel has a value of 10 the modulation stream can be arranged to have the active portions closer to the darker pixel value of 10. Therefore, the modulation stream for this example, if the current gray scale value is 10, is 011011.
- FIGS. 2B and 2C An example of how a partially filled horizontal line is formed using the method and apparatus of the present invention is shown in FIGS. 2B and 2C.
- Sector 58 of the input image 50 has a corresponding gray scale value of 01 which is stored in the frame buffer 22.
- the gray scale value in frame buffer 22 corresponding to sector 58 is provided to the modulation table 70 as the current value, then the previous and next gray scale values will also be 01 corresponding to the partially filled adjacent sectors in the source image 50.
- This combination of previous, current and next gray scale values provided to the modulation table 70 produces a modulation stream of 010010 corresponding to a 33% duty cycle similar to that shown in FIG. 7.
- This modulation stream provides a series of laser pulses as shown in FIG. 6D which will combine with the light energy provided in the next scan line to form a corresponding output pixel that has characteristics similar to those of FIG. 6F.
- the laser diode 26 will be pulsed at a duty cycle depending on the current gray scale value.
- the energy produced by this pulsing tends to combine with energy that was either previously or will subsequently be applied to the drum 30 to properly form pixels in the output image.
- portions of the output image corresponding to the current gray scale value will exceed the required charge threshold and attract toner, thereby properly filling in or activating portions of the output pixel in the output image.
- the apparatus and method of the present invention renders each sector in the source image 50 as a two bit gray scale value which is stored in frame buffer 22.
- the use of a two bit gray scale value makes it possible to divide the corresponding output pixel into three intervals thereby providing an effective improvement of resolution by a factor of three.
- An important aspect of the present invention is that both the horizontal and vertical resolution is enhanced by a factor of three, but the memory requirement of the frame buffer is only doubled. Utilizing conventional techniques one would expect that to provide a resolution enhancement by a factor of three in both the horizontal and vertical directions, the frame buffer required would be increased by a factor of nine. Therefore, utilizing conventional techniques the frame buffer would require nine times as much memory to provide a resolution improvement of a factor of three in each of the vertical and horizontal directions.
- the method and apparatus of the present invention tends to provide similar output resolution enhancement while requiring significantly less frame buffer memory.
- an input image that is rendered as an n-bit gray scale values in the frame buffer 22 utilizing the method and apparatus of the present invention up to 2 n unique modulation streams can be selected with each stream capable of dividing the output pixel into at least 2 n -l intervals.
- each output pixel divided into 2M intervals a potential resolution improvement by a factor of 2 n -l is possible, provided the marking engine 18 is capable of forming active portions at this interval size.
- the memory savings become more dramatic over the prior art technique previously described.
- the frame buffer is four times greater for both a horizontal resolution and a vertical resolution improvement of approximately 15 times.
- To provide a similar resolution improvement utilizing conventional frame buffer expansion techniques would require an increase in the frame buffer size by a factor of 15x15 or 225 times larger.
- the method and apparatus of the present invention is used with a marking engine 18 having greater vertical resolution.
- FIG. 8 is a portion of the input image 50.
- the input image 50 has corresponding current 74, previous 76 and next 78 sectors associated therewith.
- Each sector within the input image 50 has corresponding gray scale values associated therewith stored in the frame buffer 22.
- the laser scan lines designated "scan 1", "scan 2" and "scan 3" each form a different output image pixel that corresponds to the current sector 74. Therefore, a modulation stream is selected for each of these three scans.
- a previous' (p') sector 110 and a next' (n') sector 112 which are adjacent each current sector 74.
- the previous' sector 110 and next' sector 112 are adjacent the current sector 74 but arranged in a direction perpendicular to the scan direction 80 or are on previous and next rows, respectively, of sectors within the input image 50.
- a print controller 24' for controlling the higher vertical resolution marking engine 18.
- the print controller 24' includes a modulation table 70' and a shift register 72'.
- the modulation table 70' is similar to the modulation table 70 shown in FIG. 3 except that modulation table 70' is a two dimensional table instead of a one dimensional table shown in FIG. 3.
- modulation table 70' Instead of providing a modulation stream based on only the current gray scale value and gray scale values corresponding to adjacent pixels along the scan line, modulation table 70' additionally requires gray scale values corresponding to sectors that are adjacent the sector corresponding to the current gray scale value in a direction perpendicular to the scan line or scan direction 80. Additionally, the modulation table 70' receives a signal indicative of which scan line of the three scan lines will be used to form an output pixel. Because three different output pixels are formed each corresponding to the current gray scale value, each pixel corresponding to one of the three scan lines, three modulation streams are selected for each pixel formed.
- modulation table 70' It is the scan line number input provided to the modulation table 70' that provides for the selection of different modulation streams for each of the three output pixels formed that correspond to the current gray scale value 74.
- This scan line information need only indicate which of the three scan lines that is used to form each output pixel. Therefore, a modulation stream is provided by modulation table 70' for each output image pixel based the gray scale value corresponding to the current sector 74 in the input image 50 as well as gray scale values corresponding to the four adjacent sectors and the scan line used to form the output image pixel.
- vertical lines are formed in a similar manner to modulation table 70.
- a modulation stream similar to that shown in FIG. 5 is provided by modulation table 70'. Therefore, three vertical lines each corresponding to one of the scan lines are formed for each output image pixel.
- Horizontal lines are formed in a different manner. Horizontal lines are formed when pixel 76 and 78 are both not black or not white, i.e. have values between 00 or 11.
- the output pixel can be filled in three horizontal intervals depending on which scan line is used.
- the particular modulation stream provided to determine where active portions are distributed in the output pixel is determined based on the gray scale values corresponding to adjacent sectors 110 and 112 and the scan line that will be used to form the output image pixel. Note that the determination that a horizontal case exists requires gray scale values for adjacent sectors 76 and 78.
- the gray scale value corresponding to the current sector 74 is 01 indicating that 1/3 of the corresponding output pixel area is active or black and sectors 76 and 78 are not black and not white and sector 110 is black and sector 112 is white.
- Three modulation streams are provided to form three output image pixels corresponding to the current sector 74. These three output image pixels are formed during three different laser scans. For the first laser scan line the modulation stream selected corresponding to the current sector 74 activates the laser diode to form an active or black output pixel. For the second and third laser scan lines the modulation streams provided corresponding to the current sector 74 inactivate the laser diode 26 to form inactive or white output pixels.
- the output image area corresponds to the proper amount of active area specified by the current gray scale value of 01 or 1/3 active.
- the active output image pixel is formed by scan line one so that the active portion of the output image area corresponding to sector 74 is adjacent to the output image area corresponding to sector 110. Therefore, the active portions are properly distributed within the output image area utilizing the method and apparatus of the present invention.
- the alternative embodiment shown in FIG. 9 illustrates that there need not be a one to one correspondence between the gray scale values in the frame buffer 22 and output pixels in the output image.
- three output pixels are formed for each gray scale value in the frame buffer 22.
- the embodiment shown in FIG. 3 there is one output pixel formed for each gray scale value in the frame buffer 22.
- the size of sectors in the input image 50 are determined by the interpreter 20 and therefore are not dependent on the size of the pixels in the output image.
- the rendering process involves scaling of the input image so that sectors within the source image 50 are a different size than the pixels in the output image.
- sectors or gray scale values corresponding to sectors in the source image 50 may be eliminated to reduce the frame buffer 22 size requirement.
- the frame buffer may contain gray scale values representing every other sector in the source image 50.
- the sectors adjacent the current sector ie. previous and next sectors, will be adjacent sectors for the image represented in the frame buffer 22 or sectors represented in the frame buffer that are nearest neighbors in the source image 50.
- the modulation table is preferably implemented in a conventional semiconductor memory such as RAM or ROM.
- the modulation table is implemented in RAM which is loaded by a software initialization routine that is executed when power is provided to the output device.
- the modulation table can also be implemented in a conventional hardware implementation such as a gate array or programmable logic device.
- the modulation table is implemented with some form of conventional inference engine such as a "fuzzy" logic inference engine.
- a set of rules are stored which the inference engine utilizes to infer a modulation stream. Because the modulation table provides a modulation stream for each pixel in the output image, the memory or hardware implementation should be capable of providing modulation streams at the rate required by the output device.
- An important aspect of the method and apparatus of the present invention is the ability to greatly enhance the resolution of the marker engine with only a modest increase in frame buffer memory requirements. The reduction of frame buffer memory requirements for a given output resolution tends to significantly reduce the cost of the output device.
- the method and apparatus of the present invention provides good control over the location of vertical lines or edges. Also, because the present invention converts each sector in the source image to a gray scale value which is then converted back to an output image from the gray scale value both the source image sector and corresponding output image pixel should have substantially the same average darkness or average gray content. Therefore, because each of the individual pixels in the output image tends to be accurate in terms of tone equality with the corresponding sectors in the input image, the tonal accuracy of the overall output image tends also to be accurate with the tonal quality of the input image.
- the method and apparatus of the present invention provides the modulation stream from a modulation table or lookup table based on the gray scale values in the frame buffer.
- the present invention does not require substantial processing of the frame buffer data to determine marking engine control information as do some prior art techniques. Therefore, because these processing steps are not required the hardware requirements are reduced thereby tending to reduce the cost on the system.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
- Color, Gradation (AREA)
Abstract
A source image is rendered as a gray scale image in a frame buffer (22). Previous (76), current (74) and next (78) values are selected from the frame buffer (22) and provided to a modulation table (70). A modulation stream is provided by the modulation table (70) based on the previous (76), current (74) and next (78) gray scale values. This modulation stream is provided to a binary marking engine (18) for providing an output image.
Description
TECHNIQUE FOR RENDERING IMAGES ON A BINARY MARKING ENGINE
BACKGROUND OF THE INVENTION The present invention relates to a method and apparatus for rendering digital images on a binary marking engine. More particularly, the present invention relates to a method and apparatus for selecting a modulation stream from a modulation table based on current and adjacent gray scale values corresponding to current and adjacent source image sectors and providing the selected modulation stream to the binary marking engine. Digital images must frequently be rendered as a binary image in a wide variety of display devices such as printers, facsimile machines, lithography, liquid crystal displays and plasma panels to name a few. These digital images may be text, line art or halftone images, to name a few. Halftone images are arrangements of binary picture elements which provide the illusion of gray scale or continuous tone images. The binary marking engine is selectively activated to render the digital image as an arrangement of active and inactive portions. These active and inactive portions may represent portions that are black or white in the case of text and black and white images or any other color from a conventional color mixing system such as red, green and blue (RGB) for additive color systems or cyan, magenta, yellow and black (CMYK) for subtractive color systems.
In the case of rasterized marking engines, an image processor or print controller modulates or selectively activates a marking engine as the output image is formed through a series of successive scans. Each scan is referred to as a scan line. A frame buffer is frequently utilized by the image processor or print controller to generate the modulation information that is provided to the marking engine.
The frame buffer is frequently a large contiguous memory wherein each memory bit is assigned or is representative of a corresponding
location or sector in the input or source image. The images represented in these frame buffers are often referred to as a bit map images. The image processor utilizes the image stored in the frame buffer to control the marking engine to form picture elements, often referred to as pixels in the output image. Often, each bit in the frame buffer corresponds to a unique pixel in the output image. The size of a bit map frame buffer is then the number of pixels in the output image. For example, an output image that has 512 pixels per scan line and 512 scan lines will require 512 x 512 or 262,144 bits of memory to store a 1 bit per pixel image. In rasterized marking engines, such as electrophotographic printers, the image is first produced on a charged surface, such as a photoconductive material, by sequentially scanning the photoconductive material, for example, with laser light from a laser diode. The sequential scanning by the laser produces a charge pattern of the desired image on the photoconductive material. A printer output is obtained by developing the charge pattern by attracting toner to it, and transferring the developed image to paper, or some other conventional transfer material.
Resolution of a rasterized marking engine, such as an electrophotographic printer is typically stated in the number of pixels or dots per inch that are formed in the output image. Resolution in the vertical direction is usually based on the number of sweeps of the laser beam or pixels per inch in a direction perpendicular to the scan line that are formed on the surface of the photoconductive material. The resolution in the horizontal direction is usually based on the frequency at which the laser diode is modulated or activated. The horizontal resolution is typically selected to match the vertical resolution to provide equal resolution in both the vertical and horizontal direction. A typical resolution for an electrophotographic marking engine is 300 dots per inch (dpi) in both the horizontal and vertical directions.
In general, the fidelity of the output image to the source data is directly related to the resolution of the marking engine or pixel size in the output image. Improvements in resolution tends to minimize aliasing referred to as "stairsteps" or "jaggies" in binary images such as text and line art. These stairsteps and jaggies tend to result from quantization error, which is directly related to the resolution of the marking engine.
Improved marking engine resolution tends to provide smaller dots or pixels which tend to more closely approximate the source image thereby reducing the quantization error. Reduction of the quantization error tends to reduce or minimize stairsteps and jaggies in binary images such as text and line art.
Various techniques have been developed to improve the quality of the output image. One approach has been to increase the output image resolution by increasing the resolution of the bit map image. For a given size output image, a higher resolution bit map allows each bit in the bit map to correspond to a smaller pixel or portion of the output image. However, increasing the bit map resolution is expensive. For example, increasing the horizontal bit map resolution by a factor of two provides a corresponding increase in the horizontal resolution by a factor of two at the expense of increasing the frame buffer by a factor of two. These techniques are typically used to increase only the horizontal output resolution because in many laser engines the number of sweeps of the laser or scan lines per inch is fixed and cannot be changed to vary the vertical resolution. However, if the bit map resolution were doubled in both the horizontal and vertical direction, the memory requirements would effectively quadruple, adding significant cost to the system.
A major disadvantage of increasing the resolution using this method is the cost of the additional memory. This is particularly a problem where the frame buffer is large to begin with, which is the case for large
format output devices where the output image is physically large. Additionally, color output devices usually require multiple frame buffers sometimes referred to as "color planes", one for each color of the color system used. Another technique that has been used to improve the quality of the output image is to use some form of interpolation or pattern matching technique. Many of these enhancing techniques operate on the bit map image data after fine detail of the source image has already been lost, but before the image is provided to the display apparatus. One such enhancement technique is shown in U.S. Patent No. 5,005,139 to Tung. The Tung enhancement technique is utilized after image data is rendered as a bit map image. This bit map image is then matched with predetermined stored templates or patterns to detect occurrences of pre-selected bit map features. Whenever a match occurs, an associated compensation subcell is substituted for the central bit within the sample window. Each bit in the bit map image is examined and where appropriate a compensated subcell or bit is generated. This modified bit map is then used to drive the laser imaging circuitry of the output device.
There is an ever present need for a method and apparatus for improving the quality of the output image. These methods and apparatus should have relatively modest processor and memory requirements for the image processor. In general, the greater the processor and memory requirements, the greater the cost of the image processor. In addition, this method and apparatus should be capable of providing control information or instructions to the marking engine at a rate that is equal to or greater than the scan rate of the marking engine.
Finally, the method and apparatus should provide good fidelity of the output image to the source image. More specifically, the amount of active area for a given local area of the output image should be the same as
the source image both overall and for each corresponding local area within these images. In addition, edges of shapes and images within the output image should have minimal distortion such as stairsteps or jaggies. And finally, this method and apparatus should minimize the loss of features from the source data to the output image.
SUMMARY OF THE INVENTION The present invention is a method and apparatus for rendering a binary image from gray scale source image data representing a plurality of sectors within the source image. One aspect of the present invention is a method that includes selecting gray scale values corresponding to current and adjacent source image sectors. A modulation stream is provided based on the selected current and adjacent gray scale values. The modulation stream is then provided to a binary marking engine.
In one preferred embodiment providing of the modulation stream is performed by providing a modulation table containing modulation streams corresponding to gray scale values of a plurality of sectors. The modulation stream provided is selected from the modulation table based on the selected gray scale values.
Another aspect of the present invention is a binary marking engine controller. The controller includes a selection means for selecting gray scale values corresponding to current and adjacent sectors of a gray scale rendering of source image data. Also included is modulation means for generating a modulation stream corresponding to the gray scale values of current and adjacent sectors. The modulation means provides the selected modulation stream to a binary marking engine.
Another aspect of the present invention is a binary printing device for rendering a binary image from gray scale source data. The device has a electrophotographic marking engine suitable for forming output image pixels that have active portions therein. Also included is a frame buffer for
storing a gray scale rendering of source data corresponding to source image sectors. A modulation generator is included for generating a modulation stream for each output pixel based on gray scale values associated with each source image sector and the gray scale values associated with sectors adjacent to each source image sector. The modulation generator provides the modulation stream to the electrophotographic marking engine. In one preferred embodiment, the modulation generator is a lookup table that sequentially provides a modulation stream corresponding to each output pixel to form an output image formed from a plurality of pixels arranged in a series of successive scan lines.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows an overall system which includes an image processor of the present invention for rendering image data from a host on a marking engine. FIG. 2A, 2B, and 2C shows rendering of a source image as a gray scale image in a frame buffer.
FIG. 3 shows the print controller of FIG. 1 for providing a modulation stream to the marking engine based on gray scale data in the frame buffer. FIG. 4 shows sectors within a portion of the source image corresponding to previous, current and next gray scale values within the frame buffer.
FIG. 5 shows modulation stream values stored in the modulation table and corresponding pixels formed by the marking engine for vertical line formation.
FIG. 6A, 6B, 6C, 6D, 6E, and 6F illustrate a vertical resolution enhancement technique for electrophotographic marking engines.
FIG. 7 shows modulation stream values stored in the modulation table for horizontal line formation.
FIG. 8 shows sectors within a portion of the source image corresponding to previous, current, next, first and second adjacent gray scale values stored in the frame buffer.
FIG. 9 shows a print controller for use with a high vertical resolution print engine.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIG. 1 shows an output device 10 of the present invention that is linked to a host 12. The host 12 is a computer or processor having one or more software applications 14 executing thereon for generating a source image. Alternatively, the host 12 can be a conventional imaging device such as a video camera or scanner. Images from the host 12 are transferred to the output device 10 for display.
The output device 10 includes an image processor 16 and a display device or marking engine 18. The image processor 16 receives either image data or an image description from the host 12 and converts this image information into suitable control signals to render an output image on the display device or marking engine 18. The image information provided by the host 12 is in a conventional format such as a bit map or device independent description such as that produced utilizing a page description language.
The image processor 16 includes an interpreter 20, frame buffer 22 and print controller 24. The interpreter 20 receives image information from the host 12 and renders this image information as a gray scale image which is stored in frame buffer 22. The gray scale image is rendered in frame buffer 22
as a series of values representative of a series of regularly spaced tones ranging from white to black through intermediate shades of gray in the source image. An important aspect of the present invention is the method and apparatus by which the print controller 24 utilizes the gray scale image stored in frame buffer 22 to provide a suitable control signal to the output device 18 to provide an enhanced binary output image. The print controller 24 will be discussed in more detail later.
Before discussing details of the print controller 24, it will be helpful to discuss the display device or marking engine 18. The marking engine 18 is a binary device. Binary marking engines 18 represent shapes and tones by forming active and inactive picture elements, or pixels, and subpicture elements, or subpixels, within the output image. Subpixels are portions of a pixel. These pixels or subpixels represent the smallest active feature the marking engine 18 is capable of forming and therefore are indicative of the engines resolution. Because these marking engines 18 have limited resolution they are not "ideal" binary output devices and therefore the output image formed by these devices is only an approximation of the source image. Shapes within the source image such as text and line art are represented on a binary output device 18 by properly arranging active and inactive pixels. Tones may be rendered on a binary device by arranging these active and inactive pixels or subpixels to provide the illusion of a gray scale image or continuous tone image.
Active and inactive pixels within the output image may represent black and white pixels, respectively, or vice versa white and black pixels, respectively, depending on whether the marking device 18 is a "black" printer or a "white" printer. Alternatively, active and inactive pixels may represent colors in a conventional color system such as red, green or blue (RGB) for additive color systems or cyan, magenta, yellow, and black (CMYK) for subtractive color systems.
The marking engine 18 may be any conventional binary output device such as facsimile machines, lithography, liquid crystal displays, thermal marking engines, and plasma displays, just to name a few. In one preferred embodiment, the marking engine 18 is an electrophotographic marking engine, typically found in laser printing devices. In electrophotographic marking engines, an output image is produced by creating an electrostatic representation of the desired image on a photosensitive or photoreceptive surface, developing the image and then transferring the developed image to a print media or transfer media such as paper. The electrophotographic marking engine 18 includes a laser diode or gas laser 26, a multifaceted rotating mirror 28, a photosensitive drum 30, a developing unit 32 containing toner 34 and fixing rollers 36 and 38.
As shown in Figure 1, the mirror 28 rotates synchronously with the photosensitive drum 30 so that a beam of light from the laser diode 26 sweeps across the drum at a fixed rate. Each sweep of the laser beam across the drum 30 is called a scan line. As the laser light impinges on the photosensitive drum 30 charge characteristics of the drum are altered. As the laser diode 26 is modulated or turned on and off, the charge on the drum 30 can be altered selectively along the scan line. Utilizing this process, a series of laser scans or scan lines are used to form an electrostatic representation of the source image on the photosensitive drum 30.
The electrostatic representation or charge pattern on the drum 30 is developed using the developer 32 to apply toner 34 to the photosensitive drum 30. The toner 34 is distributed on the photosensitive drum 30 based on the charge characteristics of the drum 30. The drum 30 then transfers the toner 34 to a transfer material 40. The toner 34 is then fused or melted to the transfer material 40 by heating fixing rollers 36 and 38. The transfer material 40 may be any conventional transfer material such
as paper, polyester film, thermal wax transfer media, or some form of thermal sensitive material, to name a few.
The number of scan lines per inch the laser beam sweeps or
"paints" on the surface of the drum is commonly used as a measure of vertical resolution for the marking engine 18. For example, a marking engine 18 which scans the drum 30 with 300 laser scans per inch is said to have a vertical resolution of 300 dots or marks per inch (dpi).
As the laser beam is swept across the drum 30, the laser diode 26 is modulated or turned on and off by the print controller 24. The laser diode 26 is typically modulated at a rate that will provide a resolution in the horizontal direction that is approximately equal to the resolution in the vertical direction. As a result, the marking engine 18 is capable of selectively forming active and inactive marks or dots on the transfer material 40 which have a length and width generally defined by the vertical and horizontal resolution of the engine.
FIGS. 2A, 2B and 2C illustrate the process, performed by interpreter 20, of rendering a source image provided by the host 12 in FIG. 1 as a gray scale image that is stored in the frame buffer 22. FIG. 2A represents a source image 50 provided by the host 12 in FIG. 1. As discussed previously, the source image 50 can be in the form of a bit map or some form of conventional image description such as a PostScript® page description of the source image 50. PostScript® is a registered trademark of Adobe Systems Incorporated. The source image 50 shown in FIG. 2A is a text image having an ideal shape 51 that has active or black and an inactive or white portions 52. The interpreter 20 receives the source image 50 and renders this image as a gray scale image for the marking engine 18.
As shown in FIG. 2B, a portion 54 of the source image 50 is shown greatly enlarged to better illustrate a gray scale rendering shown in FIG. 2C of the source image 50 shown in FIG. 2B. In addition, the source
image 50 is shown divided into a plurality of adjacent sectors by a grid 55 to illustrate an "ideal" rendering process performed by interpreter 20. However, the actual rendering process may be any conventional rendering process. For this ideal rendering process the interpreter 20 assigns a gray scale value as shown in FIG. 2C which corresponds to sector of the source image 50 shown in FIG. 2B. Each of the gray scale values of FIG. 2C represents an amount of each corresponding sector within the source image 50 which is active or black.
Alternatively, the gray scale value associated with each sector of the source image 50 represents an amount of that sector occupied by the ideal shape 51. Therefore, gray scale values are assigned by the interpreter 20 to the frame buffer 22 based on relative amounts of active and inactive area within corresponding sectors of the source image 50. For example, a sector within the source image 50 that is half active and half inactive is considered to have a 50 percent tint and the gray scale value is assigned accordingly. Interpreters for interpreting conventional image descriptions and rendering these as a gray scale image are known.
The gray scale rendering of the source image stored in frame buffer 22 should be capable of representing more than two different gray levels or the 100% tint level, the 0% tint level and at least one gray level in between the 100% and 0 tint levels. The gray scale value in one preferred embodiment is a binary value having two or more bits.
The print controller 24 reads an initial or current gray scale value from the frame buffer 22 along with a previous and next gray scale value. The previous and next gray scale values correspond to sectors in the source image 50 that are adjacent to a sector within the source image 50 corresponding to the current gray scale value. Based on the previous and next gray scale values the print controller 24 provides control information or a modulation stream to the marking engine 18 to form active portions
corresponding to the current gray scale value in selected portions of an output image pixel.
FIG 2C shows the frame buffer 22 wherein a two bit binary value is used to represent the gray scale value of a corresponding sector in the source image 50. This two bit per gray scale value frame buffer is used to illustrate the method and apparatus of the present invention. Frame buffers 22 having more than two bits representing each gray scale value can also be used to represent the source image 50. It will be described later how the method and apparatus of the present invention is extended to frame buffers 22 that have more than two bits for each gray scale value.
The gray scale values shown in FIG. 2C are two bit binary values providing four different gray levels. For example, 00 binary represents that the corresponding sector of the source image 50 is inactive, 01 represents that the sector is 1/3 active or has a 33% tint, 10 represents that the sector is 2/3 active or has a 67% tint and binary value 11 represents the sector is all active or has a 100% tint. Sector 56 shown in FIG. 2B is 2/3 active or black and therefore has a corresponding binary gray scale value of 10. Sector 58 is 1/3 active or black and therefore has a corresponding binary gray scale value of 01. Shown in FIG. 3 is one preferred embodiment of the print controller 24 of the present invention as shown in FIG. 1. The print controller 24 utilizes the gray scale image information in the frame buffer 22 to modulate the laser 26 thereby forming a binary image on the transfer material 40, see FIG. 1. The print controller 24 includes a modulation table 70 and a shift register 72. For each output pixel formed by the marking engine 18 the modulation table 70 receives values from the frame buffer 22 of FIG. 1 corresponding to previous, current and next sectors of the source image 50 and selects a modulation stream based on these values which is provided to the marking engine by the shift register 72.
The current value selected from the frame buffer 22 represents a gray scale value that corresponds to a sector in the source image 50. The previous and next values selected from the frame buffer 22 represent gray scale values that correspond to sectors in the source image 50 adjacent the sector corresponding to the current value. As shown in FIG. 4, there is a portion of the source image 50 having a sector 74 corresponding to the current gray scale value selected from the frame buffer 22. Adjacent the sector associated with the current value is a sector 76 associated with the previous value and a sector 78 associated with the next value, each of these gray scale values are stored in the frame buffer 22. In one preferred embodiment, the sectors associated with the previous and next values are adjacent and positioned on either side of the sector associated with the selected current value in a direction of rasterization or a scan direction corresponding to a scan line of the marking engine 18 as shown by arrow 80 in FIG. 4.
The modulation table 70 shown in FIG. 3 receives the previous, current and next gray scale values and provides a corresponding modulation stream for controlling the marking engine 18 to form a pixel in an output image corresponding to a sector within the source image 50 that is associated with the current gray scale value. The modulation stream represents a series of sequential control instructions or commands which are provided to the marking engine 18 In one preferred embodiment the modulation stream is a multiple bit binary number for modulating the active and inactive or "on" and "off time of the laser diode 26 within the electrophotographic marking engine 18. This multiple bit binary pattern representing the modulation stream is loaded in parallel in shift register 72. A clock is provided to the shift register 72 for sequentially providing each bit of the binary number representing marking engine instructions or
commands sequentially to the marking engine 18 to form the corresponding output pixel on the transfer material 40.
In one preferred embodiment, the modulation table is a one dimensional modulation table having a modulation stream value associated with each possible combination of previous, current and next gray scale values. In this preferred embodiment, the gray scale values associated with each of the previous, current and next values are two bit values providing up to 26 or 64 different combinations of inputs to the modulation table 70. In this embodiment the modulation table 70 provides a six bit modulation stream having up to 64 different modulation stream bit arrangements or values that corresponds to different combinations of input values. This six bit modulation stream is loaded in parallel to shift register 72. The shift register 72 receives a clock signal to provide the modulation stream in a serial format to the marking engine 18. Each modulation stream provided by the modulation table 70 represents a series of control instructions provided to the marking engine 18 for forming active and inactive portions or black and white portions within a corresponding output pixel on the transfer material 40.
In general, the length or number of bits in the modulation stream determines the number intervals or subpixels that are defined by the marking engine 18 in each pixel in the output image. In addition, the number of bits in each gray scale value tends to define the number of possible input combinations to the modulation table 70. However, the modulation stream provided by a given input combination does not have to be unique. Furthermore, the length of the modulation stream is not related to the number of bits in each gray scale value. Therefore, the length of the modulation stream can be any length but the number of different modulation streams that can be selected is limited by the number of input combinations provided to the modulation table 70.
After the modulation stream is provided to the shift register 72 by the modulation table 70, another sector within the source image 50 is selected as the current sector and its corresponding gray scale value is provided from the frame buffer 22 to the modulation table 70. In addition, previous and next sectors are selected that are adjacent to this new current sector and their corresponding gray scale values are provided to the modulation table 70. A newly selected modulation stream is provided by the modulation table 70 which corresponds to the gray scale values corresponding to these newly selected previous, current and next sectors and this modulation stream is provided in a serial fashion by the shift register 72 to the marking engine 18.
In one preferred embodiment, the gray scale values corresponding to each sector within the source image 50 are rasterized and stored sequentially as gray scale values in the frame buffer 22. In this preferred embodiment, an address generator that is included in the print controller 24 provides an address for current, previous and next gray scale values within the frame buffer 22. In this embodiment, a subsequent set of previous, current and next values are provided to the modulation table by selecting values from the next sequential memory location within the frame buffer 22. After a modulation stream is transferred to the shift register 72, the address generator provides an address for the next sequential memory location in the frame buffer 22 and provides gray scale values which correspond to the new set of previous, current and next values. A modulation stream is then provided to the shift register 72 and the address generator is again incremented. Where this process is applied to a stream of successive gray scale values selected from the frame buffer the previous and current gray scale values for a given iteration are the current and next gray scale values of the prior iteration. Therefore, for each selection of a modulation stream only one new gray scale value, the next gray scale value,
is provided, however, the order of the other values will change, ie. previous value is now the current value. This process is continued until a modulation stream is provided for each gray scale value in the frame buffer 22.
The modulation table 70 which provides the modulation stream for forming each pixel element in the output image will now be described in more detail. The modulation table 70 is a look-up table which provides the modulation stream value corresponding to previous, current and next gray scale values. The current gray scale value represents an amount of the corresponding sector within the source image 50 that is active or black. The previous and next gray scale values are indicative of the amount of active or black portions of each of the adjacent sectors on either side of the sector corresponding to the current value. An inference can be made as to the distribution of active or black portions within this current sector based on the amount of active area in the adjacent sectors represented by the previous and next gray scale values. This inference as to the distribution of active portions within each output pixel is performed by the assignment of a specific modulation stream to a specific combination of previous, current and next gray scale values during the formation of the modulation table, as will be discussed in more detail latter. The modulation stream which corresponds to selected combinations of previous, current and next gray scale values represents marking engine control information for forming an output pixel on the transfer material 40 having an amount of active or black area specified by the current gray scale value. The distribution of the active or black portions within the output pixel is specified by the modulation stream selected.
The modulation stream is used to control the marking engine 18 for distributing active or black portions in an output pixel. In one preferred embodiment the marking engine 18 is an electrophotographic marking engine such as those used in laser printers. Electrophotographic
marking engines such as laser engines form vertical lines, vertical edges or align the active areas in a vertical orientation in a manner different from the formation of horizontal lines, horizontal edges or the alignment of active areas in a horizontal orientation within the pixel. For this reason, the selection of modulation stream values for the modulation table 70 for the vertical case will be discussed separate from the selection of modulation stream values for the horizontal case.
An example of a vertical line or edge is shown in pixel 56 of FIG. 2B. Vertical lines are formed by activating the marking engine 18 at selected times so that the corresponding output pixel is active or black in selected portions. A vertical line should be formed if the gray scale value associated with the current pixel indicates that a portion of the pixel is active or black and at least one of the gray scale values associated with the next or previous source image pixel indicates this pixel is completely active or black, i.e. has a gray scale value equal to 11 binary. For any one of these conditions, it can be inferred that the output pixel should be filled toward the next pixel for the case where the next pixel is black, from the previous pixel, in the case where the previous pixel is black or from both sides toward the middle, in the case where both the previous and next pixels are black. FIG. 5 illustrates general rules for inferring the fill locations within output pixels that are 1/3 to 2/3 active or black. FIG. 5 does not illustrate all possible distributions of active area for the output pixel to be formed, however it is apparent from this figure how these other distributions are inferred. In the case where the current gray scale value is either 01 or 10 binary and the previous pixel is inactive or white and the next pixel is active or black, then the output pixel should be formed toward the next pixel. For this situation where the current gray scale value is 01 indicating that 1/3 of the output pixel should be active, modulation table 70 provides a modulation stream of 000011, so that the marking engine 18 is turned on
during the last 1/3 of the scan that formed the corresponding output pixel. For the case where the current pixel has a gray scale value of 10, the modulation stream selected is 001111 so that the marking engine is turned on for the last 2/3 of the scan which forms the corresponding output pixel. Conversely, if the previous pixel in the source image is active or black, having a corresponding gray scale value of 11, then the output pixel formed should be filled from the previous pixel. For this case, if the current gray scale value is 01, the corresponding modulation stream provided is 10000 so that the output pixel formed is active for the first 1/3 of the scan. Similarly, if the current gray scale value is 10, the modulation stream provided is 111100, so that the marking engine is turned on over the first 2/3 of the scan.
For the case of a thin vertical line where the current gray scale binary value is 01, indicating the output pixel should be 1/3 active, and both the previous and next gray scale values are 00, indicating these pixels are white or inactive, the modulation stream provided is 001100 indicating that the marking engine 18 will be turned on to fill the middle 1/3 of the pixel scan. Finally, for the case where the current gray scale value is 10, indicating 2/3 of the output pixel is active, and each of the previous and next gray scale values are active or black, then the output pixel is filled from both the previous pixel and to the next pixel as indicated by modulation stream 110011.
An example of a vertical edge or line case is shown in FIG. 2B, pixel 56. Pixel 56 of the input image 50 has a gray scale value corresponding to 10, a previous gray scale value of 00 and a next gray scale value of 11. Therefore, the modulation stream provided by the modulation table 70 will be 001111 as shown in FIG. 5. The shift register 72 shifts this modulation stream sequentially to the marking engine 18 so that the marking engine is active or is turned on over the last 2/3 of the output pixel
corresponding to source image pixel 56. In this manner, the output pixel corresponding to pixel 56 of the input image is formed knowing only the gray scale values of pixel 56 as well as gray scale values of two adjacent pixels. An important aspect of the method and apparatus of the present invention is that vertical edges are formed at the proper position. For example, the vertical edge formed by pixel 56 in FIG. 2B is formed 1/3 of the way into this pixel instead of formed at the beginning of this pixel or the beginning of the next pixel. Because the vertical line or edge is formed in the proper location, the spacing between text characters, for example, is more accurate.
An example of two vertical line or edge situations not shown in FIG. 5 represent active portions within the pixel or subpixels that are not arranged in thirds of the pixel. The first of these is the condition where each of the previous and next values are inactive or 00 and the current value is 10. For this example, 2/3 of the output pixel should be active and because the adjacent pixels are inactive it can be inferred that the active portion should be centered within the pixel. A modulation stream of 011110 is provided to form an active portion in the central portion of the pixel. A second example where active portions within the pixel are not arranged in thirds is when each of the previous and next values are active or 11 and the current value is 01 indicating 1/3 of the output pixel should be active. For this second example a modulation stream of 100001 is provided so that two active portions each of which are 1/6 of the pixel with each of these active portions positioned at opposite sides of the pixel adjacent previous and next pixels.
For the above examples, the position of active portions within the pixel is inferred by centering the active and inactive portions. Another method of handling these situations is for the interpreter 20 to screen for these conditions to simply eliminate the structures formed by these extremely
thin vertical lines from the output image. Thus, for the second condition, the modulation stream of 000000 is provided to assume the pixel is inactive. This screening operation results in little error for some source images 50 such as text because these images tend not to include extremely thin vertical lines .
Turning now to the formation of horizontal lines or edges in the output pixels, before describing how the modulation table 70 provides a modulation stream for controlling horizontal lines within the pixels it will be helpful to first discuss a process for forming horizontal lines or edges having an edge position that is controlled to less than an output pixel vertical dimension or less than a distance between adjacent scan lines. For the case of electrophotographic marking engines 18, shown in FIG.1, a laser diode 26 and a mirror 28 provide a laser beam which sweeps across the drum 30 to alter charge distributed on the drum 30 along a scan line. This alteration of charge on the surface of drum 30 allows toner to selectively adhere to portions of the drum 30. The photoconductive properties of the drum are such that as portions of the drum receive more exposure to light energy, the greater the alteration of charge on the drum. If this charge alteration exceeds a predetermined threshold level, toner is attracted to those portions of the drum that exceed this threshold.
FIGS. 6A and 6B show energy distributions resulting from a laser scan along a scan line 80 on drum 30. The energy distribution from the laser light is shown by a curve 82 in FIG. 6A. The light energy from the laser beam is distributed such that the energy is greatest towards the center of the beam which is located on scan line 80. The energy imparted to the drum 30 decreases as the distance from the center of the beam increases. Light energy above a threshold 84 represents that portion of light energy which is necessary to alter the characteristics of charge on the drum 30 sufficiently for toner attraction. Therefore, as the laser beam sweeps across
the drum 30, the charge along a portion 86 of the drum is altered sufficiently to attract toner thereby producing an active or black portion on the transfer material 40.
FIGS. 6C and 6D represent the laser scan along scan line 80 of drum 30 shown in FIGS. 6A and 6B. However, in addition, a laser scan is made on scan line 88 with the laser pulsing on and off or having a duty cycle less than 100%. The laser pulses 90, 92, and 94 are shown in dashed lines with each pulse providing light energy represented by curve 96 which is below the threshold level 84 for toner attraction. FIG. 6E and 6F shows the combined charge distribution as a result of a reduced duty cycle laser scan or pulsed laser scan on line 88 and a continuous laser scan on line 80, which provides the combined charge distribution on drum 30 shown in FIG. 6F. The energy distribution 82 from the laser scan on line 80 effectively combines with light energy imparted on drum 30 from the laser scan along line 88 represented by curve 96, producing a combined energy distribution 98 shown in FIG. 6E. This combined energy distribution or charge alteration results in an additional portion 100 of drum 30 which is above threshold 84. Therefore, toner is attracted to portions 86 and 100 on the drum 30 producing corresponding active or black portions in the output image. The use of a reduced laser scan duty cycle or pulsing laser for a short duration for improving the vertical resolution of an electrophotographic marking engine is disclosed in U.S. Patent 5,041,848 entitled, "Non-Gray Scale Anti-Aliasing Method for Laser Printers", to Gilbert et al., assigned to the assignee of the present invention and incorporated by reference herein.
As shown in FIG. 7, a horizontal line case is detected if the current gray value from the frame buffer 22 is not totally inactive (not white) or not totally active (not black) and both the previous and next gray scale values are also not active or not inactive. For either of these cases, it is
inferred that the output pixel should be filled by providing short duration laser pulses and allowing this energy to combine with light energy provided by previous and subsequent laser scans to properly activate portions of this output pixel. Thus the modulation stream provided will depend on the current gray scale value. If the current gray scale value is 01, indicating the output pixel is 1/3 active or black, then a modulation stream of 010010 is provided so that the laser diode is pulsed at a 33% duty cycle. If the current gray scale value is 10, corresponding to an output pixel that is 2/3 active or black, then a modulation stream of 110110 is provided which corresponds to a 67% duty cycle. The modulation stream may vary depending on the duty cycle necessary to attract the proper amount of toner for the particular laser engine that is used. In addition, the modulation stream may be arranged or skewed toward the darker adjacent pixel. For example, if the previous pixel has a value of 01 and the next pixel has a value of 10 the modulation stream can be arranged to have the active portions closer to the darker pixel value of 10. Therefore, the modulation stream for this example, if the current gray scale value is 10, is 011011.
An example of how a partially filled horizontal line is formed using the method and apparatus of the present invention is shown in FIGS. 2B and 2C. Sector 58 of the input image 50 has a corresponding gray scale value of 01 which is stored in the frame buffer 22. When the gray scale value in frame buffer 22 corresponding to sector 58 is provided to the modulation table 70 as the current value, then the previous and next gray scale values will also be 01 corresponding to the partially filled adjacent sectors in the source image 50. This combination of previous, current and next gray scale values provided to the modulation table 70 produces a modulation stream of 010010 corresponding to a 33% duty cycle similar to that shown in FIG. 7. This modulation stream provides a series of laser pulses as shown in FIG. 6D which will combine with the light energy
provided in the next scan line to form a corresponding output pixel that has characteristics similar to those of FIG. 6F.
In general, for those situations where the previous or next sector values are not active or black, the laser diode 26 will be pulsed at a duty cycle depending on the current gray scale value. The energy produced by this pulsing tends to combine with energy that was either previously or will subsequently be applied to the drum 30 to properly form pixels in the output image. As this light energy combines on the drum 30, portions of the output image corresponding to the current gray scale value will exceed the required charge threshold and attract toner, thereby properly filling in or activating portions of the output pixel in the output image.
The apparatus and method of the present invention as previously described renders each sector in the source image 50 as a two bit gray scale value which is stored in frame buffer 22. The use of a two bit gray scale value makes it possible to divide the corresponding output pixel into three intervals thereby providing an effective improvement of resolution by a factor of three. An important aspect of the present invention is that both the horizontal and vertical resolution is enhanced by a factor of three, but the memory requirement of the frame buffer is only doubled. Utilizing conventional techniques one would expect that to provide a resolution enhancement by a factor of three in both the horizontal and vertical directions, the frame buffer required would be increased by a factor of nine. Therefore, utilizing conventional techniques the frame buffer would require nine times as much memory to provide a resolution improvement of a factor of three in each of the vertical and horizontal directions. Therefore, the method and apparatus of the present invention tends to provide similar output resolution enhancement while requiring significantly less frame buffer memory.
In general, an input image that is rendered as an n-bit gray scale values in the frame buffer 22, utilizing the method and apparatus of the present invention up to 2n unique modulation streams can be selected with each stream capable of dividing the output pixel into at least 2n-l intervals. With each output pixel divided into 2M intervals, a potential resolution improvement by a factor of 2n-l is possible, provided the marking engine 18 is capable of forming active portions at this interval size. As n becomes larger the memory savings become more dramatic over the prior art technique previously described. Consider the case where each pixel in the input image is rendered as a four bit gray scale value or n = 4 and the corresponding output pixel is divided into 15 intervals. For this case, the frame buffer is four times greater for both a horizontal resolution and a vertical resolution improvement of approximately 15 times. To provide a similar resolution improvement utilizing conventional frame buffer expansion techniques would require an increase in the frame buffer size by a factor of 15x15 or 225 times larger.
In another preferred embodiment, the method and apparatus of the present invention is used with a marking engine 18 having greater vertical resolution. As shown in FIG. 8 is a portion of the input image 50. The input image 50 has corresponding current 74, previous 76 and next 78 sectors associated therewith. Each sector within the input image 50 has corresponding gray scale values associated therewith stored in the frame buffer 22. In contrast to the previous technique where the output pixel corresponding to each sector of the input image 50 is formed by a single laser scan or scan line, for this embodiment there are three separate laser scans that are performed in scan direction 80 to form each corresponding pixel in the output image. For example, the laser scan lines designated "scan 1", "scan 2" and "scan 3" each form a different output image pixel that
corresponds to the current sector 74. Therefore, a modulation stream is selected for each of these three scans.
Also shown in FIG. 8 are a previous' (p') sector 110 and a next' (n') sector 112 which are adjacent each current sector 74. In contrast to previous and next sectors 76 and 78, respectively, that are adjacent the current sector 74 and are arranged along the scan direction 80, the previous' sector 110 and next' sector 112 are adjacent the current sector 74 but arranged in a direction perpendicular to the scan direction 80 or are on previous and next rows, respectively, of sectors within the input image 50. As shown in FIG. 9, is a print controller 24' for controlling the higher vertical resolution marking engine 18. The print controller 24' includes a modulation table 70' and a shift register 72'. The modulation table 70' is similar to the modulation table 70 shown in FIG. 3 except that modulation table 70' is a two dimensional table instead of a one dimensional table shown in FIG. 3.
Instead of providing a modulation stream based on only the current gray scale value and gray scale values corresponding to adjacent pixels along the scan line, modulation table 70' additionally requires gray scale values corresponding to sectors that are adjacent the sector corresponding to the current gray scale value in a direction perpendicular to the scan line or scan direction 80. Additionally, the modulation table 70' receives a signal indicative of which scan line of the three scan lines will be used to form an output pixel. Because three different output pixels are formed each corresponding to the current gray scale value, each pixel corresponding to one of the three scan lines, three modulation streams are selected for each pixel formed. It is the scan line number input provided to the modulation table 70' that provides for the selection of different modulation streams for each of the three output pixels formed that correspond to the current gray scale value 74. This scan line information
need only indicate which of the three scan lines that is used to form each output pixel. Therefore, a modulation stream is provided by modulation table 70' for each output image pixel based the gray scale value corresponding to the current sector 74 in the input image 50 as well as gray scale values corresponding to the four adjacent sectors and the scan line used to form the output image pixel.
In this embodiment, vertical lines are formed in a similar manner to modulation table 70. For each scan line, a modulation stream similar to that shown in FIG. 5 is provided by modulation table 70'. Therefore, three vertical lines each corresponding to one of the scan lines are formed for each output image pixel.
Horizontal lines are formed in a different manner. Horizontal lines are formed when pixel 76 and 78 are both not black or not white, i.e. have values between 00 or 11. For this horizontal line case, the output pixel can be filled in three horizontal intervals depending on which scan line is used. For the horizontal line case the particular modulation stream provided to determine where active portions are distributed in the output pixel is determined based on the gray scale values corresponding to adjacent sectors 110 and 112 and the scan line that will be used to form the output image pixel. Note that the determination that a horizontal case exists requires gray scale values for adjacent sectors 76 and 78.
For example, assume the gray scale value corresponding to the current sector 74 is 01 indicating that 1/3 of the corresponding output pixel area is active or black and sectors 76 and 78 are not black and not white and sector 110 is black and sector 112 is white. Three modulation streams are provided to form three output image pixels corresponding to the current sector 74. These three output image pixels are formed during three different laser scans. For the first laser scan line the modulation stream selected corresponding to the current sector 74 activates the laser diode to form an
active or black output pixel. For the second and third laser scan lines the modulation streams provided corresponding to the current sector 74 inactivate the laser diode 26 to form inactive or white output pixels. There are three output image pixels forming an output image area corresponding to the current sector 74 and one of these pixels is active thereby activating 1/3 of the output image area. Therefore, the output image area corresponds to the proper amount of active area specified by the current gray scale value of 01 or 1/3 active. In addition, the active output image pixel is formed by scan line one so that the active portion of the output image area corresponding to sector 74 is adjacent to the output image area corresponding to sector 110. Therefore, the active portions are properly distributed within the output image area utilizing the method and apparatus of the present invention.
The alternative embodiment shown in FIG. 9 illustrates that there need not be a one to one correspondence between the gray scale values in the frame buffer 22 and output pixels in the output image. In this embodiment three output pixels are formed for each gray scale value in the frame buffer 22. In contrast, the embodiment shown in FIG. 3 there is one output pixel formed for each gray scale value in the frame buffer 22. Furthermore, the size of sectors in the input image 50 are determined by the interpreter 20 and therefore are not dependent on the size of the pixels in the output image. Frequently, the rendering process involves scaling of the input image so that sectors within the source image 50 are a different size than the pixels in the output image. In addition, either in the rendering process or after the rendering process sectors or gray scale values corresponding to sectors in the source image 50 may be eliminated to reduce the frame buffer 22 size requirement. For example, the frame buffer may contain gray scale values representing every other sector in the source image 50. When this occurs
the sectors adjacent the current sector, ie. previous and next sectors, will be adjacent sectors for the image represented in the frame buffer 22 or sectors represented in the frame buffer that are nearest neighbors in the source image 50. The modulation table is preferably implemented in a conventional semiconductor memory such as RAM or ROM. In one preferred embodiment the modulation table is implemented in RAM which is loaded by a software initialization routine that is executed when power is provided to the output device. Alternatively, the modulation table can also be implemented in a conventional hardware implementation such as a gate array or programmable logic device. In yet another embodiment the modulation table is implemented with some form of conventional inference engine such as a "fuzzy" logic inference engine. For this embodiment instead of storing all of the modulation streams in a lookup table a set of rules are stored which the inference engine utilizes to infer a modulation stream. Because the modulation table provides a modulation stream for each pixel in the output image, the memory or hardware implementation should be capable of providing modulation streams at the rate required by the output device. An important aspect of the method and apparatus of the present invention is the ability to greatly enhance the resolution of the marker engine with only a modest increase in frame buffer memory requirements. The reduction of frame buffer memory requirements for a given output resolution tends to significantly reduce the cost of the output device.
Because of the manner in which the horizontal resolution is improved, the method and apparatus of the present invention provides good control over the location of vertical lines or edges. Also, because the present invention converts each sector in the source image to a gray scale
value which is then converted back to an output image from the gray scale value both the source image sector and corresponding output image pixel should have substantially the same average darkness or average gray content. Therefore, because each of the individual pixels in the output image tends to be accurate in terms of tone equality with the corresponding sectors in the input image, the tonal accuracy of the overall output image tends also to be accurate with the tonal quality of the input image.
In addition, the method and apparatus of the present invention provides the modulation stream from a modulation table or lookup table based on the gray scale values in the frame buffer. The present invention does not require substantial processing of the frame buffer data to determine marking engine control information as do some prior art techniques. Therefore, because these processing steps are not required the hardware requirements are reduced thereby tending to reduce the cost on the system. Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.
Claims
1. A method for rendering a binary image from gray scale source image data representing a plurality of sectors of the source image, the method comprising: selecting gray scale values corresponding to current and adjacent source image sectors; providing a modulation stream based on the selected current and adjacent gray scale values; and providing the modulation stream to a binary marking engine.
2. The method of claim 1 wherein providing of a modulation stream is performed by providing a modulation table containing modulation streams corresponding to gray scale values of a plurality of sectors and selecting the modulation stream from the modulation table is based on the selected gray scale values.
3. The method of claim 1 wherein the source image data is plurality of n-bit gray scale values with each of the plurality of gray scale values corresponding to each of a plurality of source image sectors and with n being greater than 1.
4. The method of claim 1 wherein the modulation stream represents a sequence of instructions for controlling the binary marking engine.
5. The method of claim 1 wherein the binary marking engine is an electrophotographic engine.
6. The method of claim 1 wherein the current and adjacent source image sectors correspond to binary output image pixels that are arranged along a scan line.
7. The method of claim 1 wherein the current and adjacent source image sectors correspond to binary image pixels that are arranged perpendicular to a scan line.
8. The method of claim 1 wherein the step of selecting gray scale values corresponding to current and adjacent source image sectors includes selecting a first pair of adjacent source image sectors that are adjacent the current sector and correspond to binary image pixels that are arranged along a scan line and selecting a second pair of adjacent source image sectors that are adjacent the current sector and correspond to binary image pixels that are arranged perpendicular to a scan line.
9. The method of claim 8 wherein the providing a modulation stream based on the selected current and adjacent gray scale values further includes providing the modulation stream based on the selected current and adjacent gray scale values and a scan line input indicative of scan line information.
10. The method of claim 1 wherein the modulation stream provides control information to the marking engine to activate a selected proportion of an output pixel based on the current gray scale value with active portions being positioned proximate adjacent active pixels.
11. The method of claim 1 wherein the modulation stream selectively activates the marking engine for durations insufficient alone to activate portions of an output pixel whereby active portions of adjacent output pixels interact with the output pixel to form active portions therein proximate adjacent active portions of adjacent pixels.
12. A binary marking engine controller comprising: selection means for selecting gray scale values corresponding to current and adjacent sectors of a gray scale rendering of source image data; and modulation means for generating a modulation stream corresponding to the gray scale values of current and adjacent sectors and providing the selected modulation stream to a binary marking engine.
13. The binary marking engine controller of claim 12 wherein the modulation means is a modulation table containing modulation streams corresponding to gray scale values of a plurality of sectors and generating the modulation stream is the selection of the modulation stream corresponding to the selected gray scale values.
14. The binary marking engine controller of claim 12 further including a memory that is operationally adapted for storing a plurality of n-bit gray scale values with each of the plurality of gray scale values corresponding to a plurality of source image sectors and with n being greater than 1.
15. The binary marking engine controller of claim 12 wherein the modulation stream represents a sequence of instructions for controlling the binary marking engine.
16. The binary marking engine controller of claim 12 wherein the binary marking engine is an electrophotographic engine.
17. The binary marking engine controller of claim 12 wherein the current and adjacent source image sectors correspond to binary image pixels that are arranged along a scan line.
18. The binary marking engine controller of claim 12 wherein the current and adjacent source image sectors correspond to binary image pixels that are arranged perpendicular to a scan line.
19. The binary marking engine controller of claim 12 wherein the selection means is an address generator for selecting gray scale values based on corresponding source image sector position.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU26537/95A AU2653795A (en) | 1994-05-27 | 1995-05-26 | Technique for rendering images on a binary marking engine |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US25003794A | 1994-05-27 | 1994-05-27 | |
US08/250,037 | 1994-05-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1995033330A1 true WO1995033330A1 (en) | 1995-12-07 |
Family
ID=22946048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1995/006747 WO1995033330A1 (en) | 1994-05-27 | 1995-05-26 | Technique for rendering images on a binary marking engine |
Country Status (2)
Country | Link |
---|---|
AU (1) | AU2653795A (en) |
WO (1) | WO1995033330A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0751676A2 (en) * | 1995-06-27 | 1997-01-02 | Seiko Epson Corporation | Apparatus and method for compressing and restoring binary image having multitone |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4084259A (en) * | 1973-11-30 | 1978-04-11 | The Mead Corporation | Apparatus for dot matrix recording |
US4280144A (en) * | 1979-12-03 | 1981-07-21 | International Business Machines Corporation | Coarse scan/fine print algorithm |
WO1981002206A1 (en) * | 1980-01-26 | 1981-08-06 | Hell R Gmbh | Process for obtaining a better image restitution in the reproduction technique |
EP0109005A1 (en) * | 1982-11-08 | 1984-05-23 | International Business Machines Corporation | Method of providing a halftone image |
EP0220568A2 (en) * | 1985-11-01 | 1987-05-06 | Dainippon Screen Mfg. Co., Ltd. | Method of and apparatus for generating high-resolution bilevel image data |
-
1995
- 1995-05-26 WO PCT/US1995/006747 patent/WO1995033330A1/en active Application Filing
- 1995-05-26 AU AU26537/95A patent/AU2653795A/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4084259A (en) * | 1973-11-30 | 1978-04-11 | The Mead Corporation | Apparatus for dot matrix recording |
US4280144A (en) * | 1979-12-03 | 1981-07-21 | International Business Machines Corporation | Coarse scan/fine print algorithm |
WO1981002206A1 (en) * | 1980-01-26 | 1981-08-06 | Hell R Gmbh | Process for obtaining a better image restitution in the reproduction technique |
EP0109005A1 (en) * | 1982-11-08 | 1984-05-23 | International Business Machines Corporation | Method of providing a halftone image |
EP0220568A2 (en) * | 1985-11-01 | 1987-05-06 | Dainippon Screen Mfg. Co., Ltd. | Method of and apparatus for generating high-resolution bilevel image data |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0751676A2 (en) * | 1995-06-27 | 1997-01-02 | Seiko Epson Corporation | Apparatus and method for compressing and restoring binary image having multitone |
EP0751676A3 (en) * | 1995-06-27 | 1997-01-22 | Seiko Epson Corporation | Apparatus and method for compressing and restoring binary image having multitone |
US5802209A (en) * | 1995-06-27 | 1998-09-01 | Seiko Epson Corporation | Apparatus and method for compressing and restoring binary image having multitone |
Also Published As
Publication number | Publication date |
---|---|
AU2653795A (en) | 1995-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5249242A (en) | Method for enhancing raster pixel data | |
KR100313410B1 (en) | Method and apparatus for printing stroke and content data together | |
JP4045015B2 (en) | Raster image resolution improvement method | |
EP0526000B1 (en) | Microaddressability via overscanned illumination for optical printers and the like having high gamma photosensitive recording media | |
US5387985A (en) | Non-integer image resolution conversion using statistically generated look-up tables | |
JPH03154096A (en) | Method and device for generating pattern | |
US5751470A (en) | Method for enhanced print quality on print engines with at least one high resolution dimension | |
EP0794506B1 (en) | Software-based procedure for conversion of a scalable font character bitmap to a gray level bitmap | |
JPH06115164A (en) | Image regeneration method improved in fidelity by outputting numerical sample independently of device | |
US20020067509A1 (en) | Method, apparatus and system for dynamic switching of image processing techniques | |
US6295078B1 (en) | Methods of providing lower resolution format data into a higher resolution format | |
JPH0985993A (en) | Image processing device and its control | |
US5357273A (en) | Resolution conversion via intensity controlled overscanned illumination for optical printers and the like having high gamma photosensitive recording media | |
JPH10315532A (en) | Image forming method | |
US5831657A (en) | Image forming system with smoothing pixels of a larger size | |
US5793936A (en) | Center-line anti-aliasing for digital printing | |
US5321433A (en) | Electrophotographic printing apparatus with enhanced printed image capability | |
US5841956A (en) | Anti-aliasing for digital printing with dot shape modulation and greyscale | |
EP0932301B1 (en) | Developed toner mass control using split subpixel laser modulations | |
WO1995033330A1 (en) | Technique for rendering images on a binary marking engine | |
JP3942763B2 (en) | Rendering of raster image data | |
US6356291B1 (en) | Method and apparatus for providing print quality enhancement | |
JP2001105670A (en) | Imaging apparatus | |
JPH02295766A (en) | Imaging system | |
EP0785524A2 (en) | Printing with dot shape modulation and greyscale |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AM AT AU BB BG BR BY CA CH CN CZ DE DK EE ES FI GB GE HU IS JP KE KG KP KR KZ LK LR LT LU LV MD MG MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TT UA UZ VN |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
122 | Ep: pct application non-entry in european phase | ||
NENP | Non-entry into the national phase |
Ref country code: CA |