Abstract:
An image processing device capable of writing two lines at the same time and applicable to an apparatus using digital image data is disclosed. A data bus width control section controls the bus width of input data. A temporary storage temporarily stores data input thereto. A data control section controls the reading and writing of data out of the temporary storage. A two line section produces two lines for writing two lines of input data at the same time. A data converting section converts parallel data to serial data. A multilevel section transforms an input bilevel image to a multilevel image. A rate varying section varies the rate of multilevel data input thereto. A data selecting section selects processed multilevel image data. A register control section executes register control with at least data stored in a storage included in the multilevel section. Data conversion and transformation to the multilevel image data are effected before the data output from the temporary storage are output from the data selecting section.

Description:
BACKGROUND OF THE INVENTION 
     The present invention relates to an image processing device capable of writing two lines at a time which is advantageously applicable to a copier, facsimile apparatus, printer or similar apparatus using digital image data. 
     Technologies relating to density conversion in the subscanning direction for single beam writing applications are disclosed in, e.g., Japanese Patent Laid-Open Publication No. 7-87321. This document pertains to an image data processing device of the type recognizing the shape of a line at a boundary between a black dot area and white dots which are arranged in a bit map, transforming the characteristic of the line recognized on a dot basis to bit code information, using a part of the code information to determine whether or not data needs correction, and executing correction with dots needing correction in accordance with the code information. The technology taught in the above document is characterized by image data generating means capable of repeatedly generating identical image data arranged in a bit map at the same timing for any desired signal waveform. For example, the image data generating means reads bit map data out of a memory twice in order to double the density of the data in the subscanning direction. 
     However, the above conventional technology does not effect density conversion in the main scanning direction and is limited to double density control in the subscanning direction. 
     SUMMARY OF THE INVENTION 
     It is therefore an object of the present invention to provide an image processing device capable of implementing high speed, high definition writing by converting the density of data to be written in the main scanning direction and subscanning direction independently and executing the separation of the data into two lines and the conversion of an image transfer rate for two beam writing. 
     In accordance with the present invention, an image processing device capable of writing two lines at the same time includes a data bus with a control section for controlling the bus width of input data. A temporary storage temporarily stores data input thereto. A data control section controls the reading and writing of data out of the temporary storage. A two line section produces two lines for writing two lines of input data at the same time. A data converting section converts parallel data to serial data. A multilevel section transforms an input bilevel image to a multilevel image. A rate varying section varies the rate of multilevel data input thereto. A data selecting section selects processed multilevel image data. A register control section executes register control with at least data stored in a storage included in the multilevel section. Data conversion and transformation to the multilevel image data are effected before the data output from the temporary storage are output from the data selecting section. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The above and other objects, features and advantages of the present invention will become apparent from the following detailed description taken with the accompanying drawings in which: 
     FIG. 1 is a block diagram schematically showing an image processing device embodying the present invention; 
     FIG. 2 is a block diagram schematically showing a specific configuration of a bilevel/multilevel converting section included in the illustrative embodiment; 
     FIG. 3 shows how data are written to a pattern RAM (Random Access Memory) included in a jaggy correcting section shown in FIG. 2; 
     FIG. 4 shows matrix patterns for the detection of a solitary point; 
     FIG. 5 demonstrates dither smoothing and dot averaging processing particular to the illustrative embodiment; 
     FIG. 6 is a block diagram schematically showing a specific configuration of the jaggy correcting section; 
     FIG. 7 shows areas of FIG. 6, how they overlap each other, and the number of pixels in each area; 
     FIG. 8 is a table listing correction codes to be generated by the jaggy correcting section on the basis of pattern matching; 
     FIG. 9 shows specific codes generated by the jaggy correcting section; 
     FIG. 10 shows other specific codes generated by the jaggy correcting section; 
     FIG. 11 shows still other specific codes generated by the jaggy correcting section; 
     FIG. 12 is a schematic block diagram demonstrating control over input and output from an input buffer RAM included in the illustrative embodiment to occur in a multilevel mode; 
     FIG. 13 is a schematic block diagram demonstrating control over the input and output from the buffer RAM to occur in a bilevel mode with a single density in the subscanning direction; 
     FIG. 14 is a schematic block diagram demonstrating control over the input and output from the buffer RAM to occur in the bilevel mode with a double density in the subscanning direction; 
     FIG. 15 is a schematic block diagram demonstrating control over the input and output from the buffer RAM to occur in the bilevel mode with a quadruple density in the subscanning direction; 
     FIGS. 16,  17  and  18  are timing charts respectively associated with FIGS. 13,  14  and  15 ; 
     FIGS. 19 and 20 each show a primary and a secondary RAM constituting the RAM of the jaggy correction and how they are used; 
     FIGS. 21-27 each demonstrates read control over the buffer RAM to occur in a particular mode and data written to secondary RAMs respectively assigned to an even channel and an odd channel; 
     FIG. 28 shows conversion to the double density in the main scanning direction; 
     FIG. 29 shows conversion to the quadruple density in the main scanning direction; and 
     FIG. 30 is a timing chart representative of the conversion to the quadruple density in the main scanning direction. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring to FIG. 1 of the drawings, an image processing device embodying the present invention is shown. As shown, the image processing device includes a bus controller  101 , a buffer RAM  102 , a RAM controller  103 , a timing controller  104 , a register controller  105 , a bilevel image processing section  106 , a multilevel image processing section  107 , a frequency division  108 , and a selector  109 . The bilevel image processing section  106  is made up of flip-flops (FFs)  106 - 1 E and  106 - 1 O, parallel-to-serial (P/S) conversions  106 - 2 E and  106 - 2 O, toner savings  106 - 3 E and  106 - 3 O, and bilevel/multilevel transformations  106 - 4 E and  106 - 4 O. The multilevel image processing  107  is made up of FFs  107 - 1 E and  107 - 1 O and P/S conversions  107 - 2 E and  107 - 2 O. 
     In the illustrative embodiment, an even pixel and an odd pixel are input in parallel in order to implement high speed writing. Suffixes E and O representative of even and odd, respectively, are added to the reference numerals for distinction. The even pixel is assumed to have a data width of four bits for density (XPDE) and one bit for phase (XPSE). The odd pixel is also assumed to have a data width of four bits for density (XPDO) and one bit for phase (XPSO). In a multilevel mode, the even pixel and odd pixel each having five bits of data are input in parallel. In a bilevel mode, eight pixels of data are input in parallel over the eight-bit width of XPDE and XPDO. It is to be noted that the data width formatted in parallel differs from the bilevel mode to the multilevel mode. The ten bits of input data are merged by the bus controller  101  in the order of XPDE, XPSE, XPDO and XPSO. The merged ten bits of data are written to the buffer RAM  102 . A write clock (PCLK), a write enable signal (XPLGATE) and a write reset signal (XPLSYNC) are input from the outside and are synchronous with image data. 
     The RAM controller  103  controls the writing and reading of data into and out of, respectively the buffer RAM  102 . As for writing, the clock and control signals generated in an image reading system are fed to the RAM controller  103 . As for reading, signals output from a control system assigned to a polygon motor are fed to the RAM controller  103 . A read clock is implemented by a ½ or ⅛ clock output from the frequency division  108 . A read enable signal (XRGATE) and a read reset signal (XLCLR) are derived from a polygon motor synchronization detection signal and a valid scanning period. The signals XRGATE and XLCLR are switched by toggling in order to use particular addresses of the buffer RAM  102  for reading or writing. 
     Two lines of images to be processed are read out of the buffer RAM  102  at the same time. The FFs  106 - 1 E and  106 - 1 O respectively latch the two lines of images, i.e., an even line and an odd line and allow them to be processed in parallel. The bilevel image processing section  106  transforms the eight bits of parallel data to eight pixels of serial data. Specifically, the eight bits of data output from the FFs  106 - 1 E and  106 - 1 O are input to the P/S conversions  106 - 2 E and  106 - 2 O, respectively. The P/S conversions  106 - 2 E and  106 - 2 O convert the eight bits, 5 MHz parallel signals to one bit, 40 MHz serial signals. While the serial data are applied to the toner savings  106 - 3 E and  106 - 3 O, processing for saving toner is not executed at all times, but executed when the consumption of much toner by a plotter which would occur at the time of, e.g., trial printing is not desirable. The bilevel data output from the toner savings  106 - 3 E and  106 - 3 O are transformed to multilevel data by the bilevel/multilevel transformations  106 - 4 E and  106 - 4 O, respectively. The multilevel data have four bits for density and two bits for phase, i.e., six bits in total. In the multilevel image processing section  107 , the P/S conversions  107 - 2 E and  107 - 2 O convert the ten-bit data to two pixels of data, thereby restoring five bits of data serially. The multilevel image processing section  107  extends one bit of input phase information to two bits. The selector  109  selects, based on the multilevel/bilevel input mode, either one of buses corresponding to the two lines. 
     The register controller  105  sets a mode in the image processing device. The register controller  105  receives data SDIN synchronous with a clock SCLK from an external CPU (Central Processing Unit) not shown. A signal SCS, which will be described, corresponds to chip selection. While data and a n address are input to the register controller  105  in the form of serial data, the controller  105  converts them to an address ADRSS having sixteen bits and data DATA having eight bits in parallel. The register controller  105  uses the signal SCS as a trigger signal for the serial data system and additionally generates write enable signals meant for various registers. 
     FIG. 2 shows a specific configuration of one of the bilevel/multilevel transformations  106 - 4 E and  106 - 4 O which are identical in configuration and respectively assigned to the even line and odd line. As shown, the bilevel/multilevel transfomation, labeled  106 - 4 , has an image matrix  201 , an edge processing  202 , a jaggy correction  203 , a solitary point detection  204 , an error scattering enhancement  205 , a dither smoothing  206 , a two-dot processing  207 , a mask  208 , and a selector  209 . The jaggy correction  203  is made up of a code generator  203 - 1  and a pattern RAM  203 - 2 . 
     Nine lines of line data read out of the buffer RAM  102  are input to the bilevel/multilevel transformation  106 - 4  via the P/S conversion, labeled  106 - 2 , and toner saving, labeled  106 - 3 , associated with the transformation  106 - 4 . The image matrix  201  produces thirteen delayed data from each of the nine lines of data and thereby generates a bidimensional 9 (lines)×13 (pixels) matrix. The transformation  106 - 4  accesses the matrix at a time so as to execute bilevel/multilevel transformation with the individual data. At this instant, only the edge processing  202  processes one line of data without using the bidimensional image matrix. 
     The jaggy correction  203  executes pattern matching by using the image matrix output from the image matrix  201 . Specifically, the code generator  203 - 1  generates twelve-bit code data by pattern matching and feeds them to the pattern RAM  203 - 2 . The pattern RAM  203 - 2  is a RAM adapted for image correction and outputs image correction data corresponding to an input code. The correction data are downloaded in the RAM  203 - 2  beforehand. The solitary point detection  204  detects, by pattern matching, a solitary point in a 3×3 image area including a pixel being observed. The mask  208  removes a pixel corresponding to a solitary point detected. Whether or not to mask such a pixel can be selected by switching the mode. 
     The error scattering enhancement  205  smooths a texture with a band pass filter for holding a line image, and generates a phase signal based on the arrangement of pixels in the main scanning direction. The dither smoothing  206  filters a bilevel dither pattern with a 5×5 or 9×9 low pass filter so as to output a false multilevel signal. The two-dot processing  207  averages intervals between the nearby pixels of the false multilevel signal, thereby outputting phase information. The selector  209  selects one of such multilevel data derived from the bilevel data, depending on the mode. The selector  209  outputs six bits of data consisting of four bits for density and two bits for phase. 
     How the data are written to the pattern RAM  203 - 2  of the jaggy correction  203  will be described with reference to FIG.  3 . First, the register controller  105  decodes the data DATA and address ADRSS. Then, the external CPU sends the serial data SDIN to the register controller  105  in synchronism with a transfer clock SCLK. The beginning of a data sequence is defined by SCS mentioned earlier. While the serial data SDIN have twenty-four bits of data, lower eight bits and upper sixteen bits respectively constitute data DATA and an address ADRSS. Upper three of the sixteen ADRSS bits are used for decoding the addresses of the RAM and internal register. Upper one of the remaining thirteen bits (A[ 12 ]) is used to switch an even channel and an odd channel together with a signal SDOUBLE. When the signal SDOUBLE is in its low level, a bilevel single density mode is set up. In this mode, the same data are simultaneously written to the twelve-bit addresses of pattern RAMs  203 - 2 E and  203 - 2 O without regard to the value of A[ 12 ]. The pattern RAMS  203 - 2 E and  203 - 2 O are assigned to the even channel and odd channel, respectively. 
     When the signal SDOUBLE is in its high level, a bilevel double density mode is set up. In this case, particular data are written to each of the pattern RAMs  203 - 2 E and  203 - 2 O. The pattern RAM  203 - 2 E is accessed when A[ 12 ] is in its low level, and the pattern RAM  203 - 2 O is accessed when A[ 12 ] is in its high level. As for the access, write enables WE_E and WE_O respectively assigned to the pattern RAMs  203 - 2 E and  203 - 2 O are controlled. The pattern RAM  203 - 2  may be either one of synchronous RAM and an asynchronous RAM. 
     FIG. 4 shows matrix patterns for detecting a solitary point. In FIG. 4, the center pixel is assumed to be a pixel being observed and determined whether or not it is solitary. Connection of the center pixel with the surrounding pixels is determined by pattern matching. In each of the upper five pixel patterns shown in FIG. 4, the center black pixel is a solitary dot and replaced with white. In each of the lower five pixel patterns, the center white pixel is a solitary dot and replaced with black. In the illustrative embodiment, the solitary point detection  204  outputs a level invert signal while the mask  208  effects black/white replacement. 
     FIG. 5 shows the operation of the dither smoothing  206  and two-dot processing  207 . As shown, the dither smoothing  206  executes 5×5, 7×7 and 9×9 smoothing filter processing with the 9 (lines)×13 (pixels) image matrix. While one-bit bilevel signal is input to the dither smoothing  206 , the smoothing  206  removes high frequency components contained in the signal. There are shown four different filter coefficients, i.e., No. 0 to No. 3 by way of example. The filter averages the intervals between the even pixels and the odd pixels in the main scanning direction. While the resulting values are mean values, the phase signals are distinguished from each other. Two-dot image data is generated with the even pixel and odd pixel positioned in the right phase and left phase, respectively. While the phase data are directly output, the density data are transformed to four-bit width data by level transformation. 
     The jaggy correction  203  is shown in detail in FIG.  6 . As shown, the 9 (lines)×13 (pixels) image matrix is divided into five blocks and subjected to pattern matching block by block. Specifically, the above image matrix is divided into a 5×5 core or center area C, an upper area U above the core area C, a lower area Lo below the center area C, a left area Le at the left of the center area C, and a right area R at the right of the center area C. How the areas C, U, Le and R overlap each other and the number of pixels of the individual area are shown in FIG. 7. A core recognition  601 C determines whether the pixel of the core area C being observed is white or black, to which of a horizontal line and a vertical line the pixel belongs, whether or not the pixel is a one-dot line segment, whether the pixel, if it is white, is positioned above (at the left of) or below (at the right of) a black pixel, whether or not the pixel is representative of the beginning of a step, and determines the number of continuous pixels and the connection thereof to the surrounding areas. 
     An upper area recognition  601  U, a lower area recognition  601 Lo, a left area recognition  601 Le and a right area recognition  601 R each determines the number of continuous pixels and the direction of a gradient in the respective area. When the pixel of the core area C being observed is determined to be a part of a horizontal line, area information relating to the right area R and left area Le are referenced. When the same pixel of the core area C is determined to a part of a vertical line, area information relating to the upper area U and lower area Lo are referenced. For example, assume that the pixel of the core area C being observed is a part of a horizontal line. Then, a gradient calculation  604 , a position calculation  605  and a direction generator  606  respectively generate code information GRD, POS and DIR by referencing the number of continuous pixels and gradient in the right area R and those in the left area Le. If both the right area R and left area Le show upward rightward gradients, then the pixel of the core area C is determined to be a part of an upward rightward line to be corrected. If the right area R and left area Le respectively show an upward rightward gradient and a downward rightward gradient, then the pixel of the core area C is determined to be a pixel included in a downward convex arc. This is the code DIR. The number of continuous pixels in each of the left area Le, core area C and right area R is the gradient code GRD while the position of one of the continuous pixels being observed is the position code POS. 
     FIG. 8 lists correction codes to be output from the jaggy correction  203  as a result of pattern matching. There are shown in FIG. 8 the direction of a slope of a pixel being observed, a flag DIR distinguishing a straight line, an arc, and a pixel not needing correction, a horizontal/vertical line H/V containing the pixel being observed, a black/white pixel B/W representative of the pixel being observed, a transition U/L from black to white or from white to black, a gradient GRD of pixels including the pixel being observed, a definition ONE distinguishing a line segment of one dot or a boundary portion of two or more dots, and a position POS showing the position of the pixel being observed in an inclined line segment. These values in combination define a jaggy of a line segment. 
     FIGS. 9-11 show specific codes output from the jaggy correction  203 , i.e., an eleven-bit code excluding DIR. FIGS. 9 and 10 each shows a part of a straight line to be corrected, so that a flag DIR=0 is output. FIG. 11 shows an arc; a flag DIR=1 and a flag DIR=2 are respectively output for “(” and “)”. In the downward rightward one-dot line shown in FIG. 9, a code “039” is output at the upper left white pixel. A binary notation of “039” is “00000111011”. Therefore, there hold SLP=0, H/V=0, B/W=0, U/L=0, GRD=3, ONE=1 and POS=1 in FIG. 8 except for DIR. These codes show that the line is a part of a downward rightward line close to a vertical line, that the pixel of the line being observed is a white pixel, and that the pixel being observed is positioned at the right of a black line. As for the length of a jaggy, three pixels constitute a one-dot line. The pixel being observed is the first pixel of the inclined line, as counted from the top. 
     As for an upward rightward line having two or more dots, as shown in FIG. 10, a code “731” is output at the rightmost black pixel on the third line. This code shows that the black pixel is included in an upward rightward line close to a horizontal line, that a white line is present below the black pixel, that the length of a jaggy is three pixels and forms a boundary portion of two or more dots, and that the pixel being observed is the rightmost pixel in the inclined line. Likewise, a particular code is generated for each of the specific arc patterns shown in FIG. 11; the data are identical with straight line data except for DIR. 
     Reference will be made to FIGS. 12-15 for describing control over the input and output from the input buffer RAM  102 . As shown, the buffer RAM  102  is made up of twelve RAMs  1201 - 1212  each having 1 k×10 bits. The RAMs  1201 - 1212  are controlled for reading and writing by toggle control, thereby implementing two data lines for two-beam writing. 
     Specifically, FIG. 12 shows a configuration in the multilevel mode. In this configuration, when the horizontal width of a paper is read at a resolution of 400 dpi (dots per inch), about 5,000 pixels of image data are transferred. In the illustrative embodiment one line of input multilevel data can be accommodated if 2,500 addresses are available, because two pixels are arranged in parallel. The 1 k×10 bits RAMs  1201 - 1212  are connected by threes in order to form four RAM groups  1221 ,  1222 ,  1223  and  1224 , as illustrated. Two of the four RAM groups  1221 - 1224  and the other two of the same are switched by toggle control for reading and writing. 
     First, the initial even line data are written to one of the RAMs, and then odd line data are written to the other RAM in response to the next write signal Lsync. In response to the following Lsync, the RAMs having stored the two lines of data are switched so as to read out the data out of those RAMs. At the same time, the other RAMS from which data have been read out are switched in order to store data. The even line and odd line are read out at the same time. The read/write toggle control is executed once for two consecutive write signals Lsync. 
     FIG. 13 demonstrates RAM control executed in the bilevel mode with a single density in the subscanning direction. Toggle control for writing two lines and then reading the even line and odd line at the same time is the same as in the multilevel mode. In the bilevel mode, not two lines but nine lines are read out for each of the even channel and odd channel so as to implement two lines for two beams. In FIG. 13, the RAM to write data is switched in response to every write signal Lsync so as to sequentially store image data. The toggle switching is effected in a circulation fashion. In the specific condition shown in FIG. 13, RAM # 3   1305  stores the currently oldest image data. A RAM # 2   1302  having stored image data older than the current oldest data and a RAM # 1   1301  having stored image data even older than the data of the RAM # 2  by one line are switched from reading to writing. Nine lines whose center is a RAM # 7  A_RAM  1303  are read out at the same time for the even channel while nine lines whose center is a RAM # 8  B_RAM  1340  are read out at the same time for the odd channel. 
     FIG. 14 shows RAM control executed in the bilevel mode with a double density in the subscanning direction. To implement two lines, nine lines of data identical in content are output for both of the even channel and odd channel. Nine lines of image data whose center is a RAM # 8  C_RAM  1401  are read out of the buffer RAM  102  as even lines and odd lines. The toggle is switched in response to every signal Lsync. This mode differs from the multilevel mode and bilevel, single density mode in that write resetting and read resetting are controlled at the same period. 
     FIG. 15 shows RAM control executed in the bilevel mode with a quadruple density in the subscanning direction. To implement two lines, nine lines of data identical in content are output for both of the even channel and odd channel, as in the double density mode. The difference is that, in the quadruple density mode, the nine lines of data are read out twice. Double density processing is executed with the same data channel by channel, so that the two-beam writing system performs quadruple density conversion. Specifically, nine lines of image data whose center is a RAM  1501  are read out of the buffer RAM  102  for the even channel and odd channel. For each duration of a write signal WRES input to the RAM  102 , a read signal RRES appears twice so as to cause the same line to be read twice. The data are read out before one line of data are fully written, so that the data are free from conflicts. In addition, the data are prevented from outrunning each other during reading. 
     Reference will be made to FIGS. 16-18 for describing the timings for switching the buffer RAM  102  for the toggle control. FIGS. 16,  17  and  18  respectively relate to the multilevel mode and bilevel, single density modes, the double density mode, and the bilevel, quadruple density mode. There are shown in FIGS. 16-18 a write address write reset signal xplsync, a write enable signal xplgate, a subscanning direction valid signal xplgate, a read address read reset signal xlclr, and a read enable signal xrgate which are active low control signals. 
     As shown in FIG. 16, in the multilevel and bilevel, single density modes, two lines are written in response to two write reset signals xplsync, and two lines are read out at the same time in response to a single read reset signal xlclr. The signal xlclr has a period double the period of the signal xplsync. The readlwrite toggle switching of the RAM is effected while the write reset signal xplsync is active two consecutive times after the activation of the read reset signal xlclr. The RAM is switched as soon as reading completes. 
     As shown in FIG. 17, in the bilevel, double density mode, the writing period and reading period are coincident. Because the signals xplsync and xlclr vary at the same period, the RAM is toggled after reading at the time when the read reset signal xplsync asserts. 
     As shown in FIG. 18, in the bilevel, quadruple density mode, write resetting is controlled at a period double the period of read resetting. Because the signal xlclr is reset twice, the same data are read out of the RAM. Because toggling is effected for writing following reading, it is effected at the time of asserting of the signal xplsync. The quadruple density mode differs from the double density mode in that because the same data are read out twice, a flag  1   c  (line count) is added in order to distinguish data read out first and data read out next. This flag  1   c  is 1 for the data read out first or 1 for the data read out next. This is effected with each of the even channel and odd channel. 
     FIGS. 19 and 20 demonstrate how the correction RAM  203 - 2  of the jaggy correction  203  is used. As shown, the correction RAM  203 - 2  is implemented as a primary RAM  203 - 2 - 1  and a secondary RAM  203 - 2 - 2  in order to reduce the required memory capacity. 
     Specifically, FIG. 19 shows a procedure beginning with code generation and ending with density correction. As shown, the code generator  203 - 1  generates a thirteen-bit code representative of the characteristic of a jaggy. On the other hand, the buffer RAM controller  103  outputs a signal Lc indicative of the order in which lines should be read out. The P/S conversion  106 - 2  selectively outputs one of dot repetition orders Dc and Dc 4 . The dot repetition order Dc is a dot count for using the same pixel twice in the double density mode in the main scanning direction. The dot repetition order Dc 4  is a dot count for using the same pixel four times in the quadruple density mode in the main scanning direction. The signals Lc, Dc and Dc 4  are selected on the basis of the conversion density mode in the main scanning direction and the conversion density mode in the subscanning direction. 
     Eleven bits of the generated code other than dir are input to the address of the primary RAM  203 - 2 - 1 . In response, an intermediate code corresponding to the input code is output from the RAM  203 - 2 - 1  in the form of seven-bit information. The intermediate code is a programmable value and is variable by tuning for image quality adjustment. The seven-bit intermediate code and generated dir, R 1  and R 0  are input to the address of the secondary RAM  203 - 2 - 2 . The secondary RAM  203 - 2 - 2  stores in its corresponding address correction image information corresponding to lines, arcs, order of pixels assigned to density conversion in the main scanning direction, and order of lines assigned to density conversion in the subscanning direction, in the form of six-bit data relating to density and phase. The pixel data are corrected by the two RAMs  203 - 2 - 1  and  203 - 2 - 2  on the basis of the above generated code. 
     FIG. 20 demonstrates the writing of data in the primary and secondary RAMs  203 - 2 - 1  and  203 - 2 - 2 . First, the external CPU accesses the RAMs in order to download data. Selectors  2001  and  2002  precede the RAMs  203 - 2 - 1  and  203 - 2 - 2 , respectively, in order to select either address information received from the CPU or code data information appearing during usual operation. In this configuration, the RAMs  203 - 2 - 1  and  203 - 2 - 2  each is selectively operated in the write mode or the read mode. 
     The RAMS  203 - 2 - 1  and  203 - 2 - 2  each has a respective even channel and an odd channel. While the contents of the even channel and odd channel are basically identical in the RAM  203 - 2 - 1 , they are switched in various ways in the RAM  203 - 2 - 2  in accordance with the density conversion mode. 
     FIGS. 21-27 show, mode by mode, read control relating to the buffer RAM  102  and data stored in the secondary RAM  203 - 2 - 2 . In each of FIGS. 21-27, a circle in the buffer RAM  102  shows the center line of a group of nine lines to be fed to the even channel. The signals Lc, Dc and Dc 4  mentioned earlier are fed to the RAM  203 - 2 - 2  in order to control the address of the RAM, although not shown specifically. 
     FIG. 21 shows how an image is corrected when the single density mode is set up in both of the main and subscanning directions. As shown, the data on the even channel and the data on the odd channel stored in the buffer RAM  102  are deviated from each other by one line. Data to be downloaded to the secondary RAM  203 - 2 - 2 E are identical on both of the even channel and odd channel. Because different line image data are fed for identical correction data, independent parallel processing is executed. In this case, density conversion is not effected at all. 
     FIG. 22 shows how an image is corrected when the single density mode and double density mode are set up in the main scanning direction and subscanning direction, respectively. As shown, an identical image line data group is fed from the buffer RAM  102  to both of the even channel and odd channel. For the correction in the secondary RAM  203 - 2 - 2 , a particular correction code is downloaded for each of the even channel and odd channel. The same image data are corrected in a particular manner line by line and doubled in density in the subscanning direction thereby. 
     FIG. 23 shows how an image is corrected when the single density mode and quadruple density mode are set up in the main scanning direction and subscanning direction, respectively. As shown, an identical image line data group is fed from the buffer  102  to both of the even channel and odd channel in the same manner as in the double density mode. These data are read out twice while the signal Lc indicative of the reading order is transferred to the secondary RAM  203 - 2 - 2 . While particular correction data is downloaded to each of the even channel and odd channel of the secondary RAM  203 - 3 - 3 , correction data to be referenced by data read first and correction data to be referenced by data read next and downloaded to the RAM  203 - 2 - 2  are different from each other. Particular processing is executed with the same input image data every four output lines so as to implement quadruple density in the subscanning direction. 
     FIG. 24 shows how an image is corrected when the double density mode and single density mode are set up in the main scanning direction and subscanning direction, respectively. As shown, in the buffer RAM  102 , data to be fed to the even channel and odd channel, respectively, are deviated from each other by one line. The P/S conversion  106 - 2  transfers a flag Dc indicative of an order in which one pixel should be processed to the secondary RAM  203 - 2 - 2 . Identical data are downloaded to both of the even channel and odd channel of the secondary RAM  203 - 3 - 2 . Further, correction data to be referenced at the time of the first correction in the main scanning direction and correction data to be referenced at the time of the second correction are downloaded with different contents from each other. Because different line image data are fed for the same correction data, independent parallel processing is executed. As for the main scanning direction, the correction data are varied on the basis of the dot processing order for thereby implementing double density. 
     FIG. 25 shows how an image is corrected when the double density mode is set up in both of the main and subscanning directions. An identical image line data group is output from the buffer RAM  102  to both of the even channel and odd channel. The P/S conversion  106 - 2  transfers to the secondary RAM  203 - 2 - 2  the flag Dc indicative of the order in which one pixel should be processed. Particular correction data are downloaded to each of the even channel and odd channel of the RAM  203 - 2 - 2 . Further, the RAMs  203 - 2 - 2 E and  203 - 2 - 2 O each are downloaded with correction data which differs from the first time of correction in the main scanning direction to the second time of correction in the same direction. Particular correction is effected with the same image data for each output line to thereby implement the double density in the subscanning direction. As for the main scanning direction, the correction data are varied on the basis of the dot processing order so as to implement double density. 
     FIG. 26 shows how an image is corrected when the double density mode and quadruple density mode are set up in the main scanning direction and subscanning direction, respectively. As shown, an identical image line data group is output from the buffer RAM  102  to both of the even channel and odd channel. These data are read out twice while the flag Lc indicative of the reading order is transferred to the secondary RAM  203 - 2 - 2 . Particular correction data are downloaded to each of the even channel and odd channel of the RAM  203 - 2 - 2 . Further, the RAMs  203 - 2 - 2 E and  203 - 2 - 2 O each are downloaded with particular correction data to be referenced for each of the first and second data read out. This is also true with density conversion in the main scanning direction. Particular processing is executed every four output lines with identical input image data so as to implement the quadruple density in the subscanning direction. As for the main scanning direction, the correction data are varied on the basis of the dot processing order to thereby implement the double density. 
     FIG. 27 shows how an image is corrected when the quadruple density mode and double density mode are set up in the main scanning direction and subscanning direction, respectively. As shown, an identical image line data group is output from the buffer RAM  102  to both of the even channel and odd channel. The P/S conversion  106 - 2  transfers the signals Dc and Dc 4  indicative of a one pixel processing order to the secondary RAM  203 - 2 - 2 . Particular correction data are input to the RAM  203 - 2 - 2  for each of the even channel and odd channel. Further, the RAMs  203 - 2 - 2 E and  203 - 2 - 2 O each are downloaded with correction data which differs between the first, second, third and fourth times of correction in the main scanning direction. Particular correction is effected for each output line with identical image there so as to implement the double density in the subscanning direction. As for the main scanning direction, the dot processing order is controlled by Dc and Dc 4  so as to implement the quadruple density. 
     FIGS. 28 and 29 show density conversion in the main scanning direction. As shown, dot counters Dc and Dc 4  are respectively assigned to R 0  and R 1 . R 0  and R 1  are substituted for the upper portion of the input address of the secondary RAM  203 - 2 . Specifically, FIG. 28 shows the double density processing in the main scanning direction. As shown, dot counter information R 0  indicative of the preceding and following pixels is added to the same code information, so that the RAM  203 - 2  outputs different correction pixel information. In FIG. 28, the preceding pixel and following pixel are respectively generated when the signal R 0  is in its low level and when it is in its high level. As a result, correction pixels doubled in density are generated for a single code information. 
     As shown in FIG. 29, in the quadruple density mode in the main scanning direction, two bits (R 1  and R 0 ) of dot counter information indicative of the first, second, third and fourth pixels are added to identical code information, so that the RAM  203 - 2  outputs different correction pixel information. Specifically, the first, second, third and fourth pixels are generated when R 1  and R 0  both are in low levels, when R 1  and R 0  are respectively in a low level and a high level, when R 1  and R 0  are respectively in a high level and a low level, and when R 1  and R 0  both are in high levels. As a result, correction pixels quadruple in density are generated from a single code information. 
     FIG. 30 demonstrates the quadruple density mode in the main scanning direction, particularly 100 dpi to 400 dpi conversion. Image density written to the buffer RAM  102  and having a density of 100 dpi are read out in synchronism with a clock paclk read enable (penable) control. The data read out in parallel, labeled P 1 , are held for four pulses of the clock paclk. The P/S conversion  106 - 2  converts the data P 1  to serial data, i.e., data S 1 -S 8  corresponding to eight pixels. This conversion is effected in synchronism with a clock wclk by controlling an enable signal srenable. The individual serial data is held for four clock pulses of the clock wclk. The jaggy correction  203  generates codes for such a group of image data. Codes C 1 -C 8  correspond the the code data generated by pattern matching and are input to the primary RAM  203 - 2 - 1 . An output is generated with the same time series with the input codes. The P/S conversion  106 - 1  generates the flags Dc and Dc 4  at the same time. The flags Dc and Dc 4  are respectively transformed to R 1  and R 0  and input to the secondary RAM  203 - 2 - 2 . The codes input to the RAM  203 - 2 - 2  are quadrupled in density by R 0  and R 1  and transformed to 400 dpi correction image thereby. 
     In summary, it will be seen that the present invention provides an image processing device having various unprecedented advantages, as enumerated below. 
     (1) Data conversion and transformation to multilevel image data for simultaneously writing two lines are effected during the interval between the output of data from temporary storage means and the output of the same from means for selecting multilevel image data. This realizes high speed and accurate writing control. 
     (2) Bilevel/multilevel conversion of image data is adaptive to all of line images, error scattered images and dither processed images, implementing highly accurate writing control. 
     (3) Density conversion with bilevel image can be easily executed in the subscanning direction, also realizing high speed and accurate writing. 
     (4) Density conversion with bilevel image can be easily executed in the main scanning direction, also realizing high speed and accurate writing. In addition, required pattern correction data can be rapidly downloaded. 
     Various modifications will become possible for those skilled in the art after receiving the teachings of the present disclosure without departing from the scope thereof.