With this invention, color shifting correction is performed first based on shifting amount information indicating a shifting amount with respect to the scanning direction on an image carrier of each image forming unit, and
halftone processing is then performed, thus suppressing generation of moiré due to the color shifting correction, and forming a high-quality image. To this end, an image forming engine has color shifting amount storage units C, M, Y, and K (black) which store actual shifting amounts with respect to ideal scan directions on image carriers C, M, Y, and K in image forming units C, M, Y, and K. Color shifting correction amount arithmetic units C, M, Y, and K calculate color shifting correction amounts for respective color components on the basis of the stored color shifting amounts. Color shifting correction units C, M, Y, and K perform color shifting correction by converting coordinates upon reading out image data from
bitmap memories C, M, Y, and K on the basis of the calculated color shifting correction amounts, and then perform tone correction. Data after tone correction undergo
halftone processing by
halftone processors C, M, Y, and K. PWM processors C, M, Y, and K generate
PWM signals for scanning, and output them to
exposure units C, M, Y, and K of the respective image forming units.