(57)【特許請求の範囲】
【請求項１】
複数の発光素子を有する光源と、第１の方向に回転し、前記光源から出射された光ビームにより潜像が形成される感光体と、前記光源から出射された光ビームを偏向し、前記感光体に照射された光ビームのスポットを前記第１の方向と直交する第２の方向に移動させ走査線を形成する偏向手段と、を備える画像形成装置の補正方法であって、
前記偏向手段は、所定の数の反射面を有する回転多面鏡であり、
前記回転多面鏡の反射面による光ビームの１走査において形成される画像の重心を、前記第１の方向における前記走査線のずれに応じて前記第１の方向に移動させ、移動に応じて画素の画素値を出力させることにより補正する第１の補正工程と、
前記第１の補正工程において出力された画素の画素値に応じて前記光源から出射される光ビームの光量が所定の光量よりも低い場合には、前記画素の画素値を出力せずに、前記第２の方向における前記画素に隣接する画素の画素値に前記画素の画素値を加算することにより補正する第２の補正工程と、
を備え、
前記所定の光量よりも低い画素値の画素が連続する場合には、隣接する複数の画素の画素値を加算することにより、一つの画素に対応する、光ビームの光量が前記所定の光量よりも高い画素値を生成することを特徴とする補正方法。
【請求項２】
前記第１の補正工程において、補正後の画素の画素値が補正前の画素の画素値以下の場合には、前記第２の補正工程において、前記補正後の画素の画素値の補正が行われず、
前記第１の補正工程において、補正後の画素の画素値が補正前の画素の画素値よりも大きい場合には、前記第２の補正工程において、前記補正後の画素の画素値の補正が行われることを特徴とする請求項１に記載の補正方法。
【請求項３】
複数の発光素子を有する光源と、第１の方向に回転し、前記光源から出射された光ビームにより潜像が形成される感光体と、前記光源から出射された光ビームを偏向し、前記感光体に照射された光ビームのスポットを前記第１の方向と直交する第２の方向に移動させ走査線を形成する偏向手段と、を備える画像形成装置の補正方法であって、
前記偏向手段は、所定の数の反射面を有する回転多面鏡であり、
前記回転多面鏡の反射面による光ビームの１走査において形成される画像の重心を、前記第１の方向における前記走査線のずれに応じて前記第１の方向に移動させ、移動に応じて画素の画素値を出力させることにより補正する第１の補正工程と、
前記第１の補正工程において出力された画素の画素値に応じて前記光源から出射される光ビームの光量が前記画素値に対応する所定の光量よりも低い場合には、前記画素の画素値を前記所定の光量の光ビームが出射される画素値に補正する第２の補正工程と、
を備えることを特徴とする補正方法。
【請求項４】
前記第１の補正工程において、補正後の画素の画素値が補正前の画素の画素値以下の場合には、前記第２の補正工程において、前記補正後の画素の画素値の補正が行われず、
前記第１の補正工程において、補正後の画素の画素値が補正前の画素の画素値よりも大きい場合には、前記第２の補正工程において、前記補正後の画素の画素値の補正が行われることを特徴とする請求項３に記載の補正方法。
【請求項５】
前記第１の補正工程は、
前記走査線の前記第１の方向の位置ずれに関する情報を記憶手段に記憶する記憶工程と、
前記記憶手段に記憶された前記情報に基づいて、前記感光体上の走査線の間隔が所定の間隔となるような座標変換を行うことにより、入力画像の画素の位置を変換する変換工程と、
前記座標変換後の入力画像の画素の位置に基づいて、入力画像の画素の画素値に畳み込み演算を行い、出力画像の画素の画素値を求めるフィルタ処理工程と、
を備えることを特徴とする請求項１から請求項４のいずれか１項に記載の補正方法。
【請求項６】
前記入力画像の前記第１の方向におけるｎ番目の画素の位置を示す関数をｆｓ（ｎ）とし、
前記出力画像の前記第１の方向におけるｎ番目の画素の位置を示す関数をｆｔ（ｎ）とし、
前記座標変換後の前記入力画像の前記第１の方向におけるｎ番目の画素の位置を示す関数をｆｓ’（ｎ）とし、
前記座標変換後の前記出力画像の前記第１の方向におけるｎ番目の画素の位置を示す関数をｆｔ’（ｎ）としたとき、
前記変換工程では、前記座標変換後の前記入力画像の画素の位置を、関数ｆｔ（ｎ）の逆関数ｆｔ−１（ｎ）を用いて、
ｆｓ’（ｎ）＝ｆｔ’（ｆｔ−１（ｆｓ（ｎ）））
から求めることを特徴とする請求項５に記載の補正方法。
【請求項７】
関数ｆｓ（ｎ）がｆｓ（ｎ）＝ｎを満たし、且つ、関数ｆｔ’（ｎ）がｆｔ’（ｎ）＝ｎを満たすとき、
前記変換工程では、前記座標変換後の前記入力画像の画素の位置を、
ｆｓ’（ｎ）＝ｆｔ−１（ｎ）
から求めることを特徴とする請求項６に記載の補正方法。
【請求項８】
前記変換工程では、前記入力画像の画素の位置を示す関数ｆｓ（ｎ）又は前記出力画像の画素の位置を示す関数ｆｔ（ｎ）が離散的な値となる場合、離散的な値を補間することにより連続的な関数とすることを特徴とする請求項６又は請求項７の補正方法。
【請求項９】
前記フィルタ処理工程では、線形補間又はバイキュービック補間を用いて前記畳み込み演算を行うことを特徴とする請求項５から請求項８のいずれか１項に記載の補正方法。
【請求項１０】
前記画素値は濃度値であり、
前記フィルタ処理工程では、前記畳み込み演算を行う前と行った後とで、所定面積あたりの濃度値が保存されることを特徴とする請求項５から請求項９のいずれか１項に記載の補正方法。
【請求項１１】
前記フィルタ処理工程では、前記畳み込み演算に用いられる畳み込み関数の０でない範囲の前記第１の方向における幅を２Ｌとしたとき、前記出力画像の所定の画素の位置ｙｎを中心とした前記２Ｌの幅の範囲に対応する前記入力画像の画素の範囲ｙｍｉｎからｙｍａｘについて、
ｙｍｉｎ＝ｆｔ（ｙｎ−Ｌ）、
ｙｍａｘ＝ｆｔ（ｙｎ＋Ｌ）
と定義することを特徴とする請求項６又は請求項７に記載の補正方法。
【請求項１２】
前記画像形成装置は、前記感光体の回転速度を検知する検知手段を備え、
前記検知手段により検知した前記感光体の回転速度に基づいて、前記第１の方向の位置ずれを補正することを特徴とする請求項５から請求項１１のいずれか１項に記載の補正方法。
【請求項１３】
前記記憶手段に記憶される前記情報には、前記回転多面鏡の回転軸に対する前記反射面毎の角度のばらつきの情報が含まれていることを特徴とする請求項５から請求項１２のいずれか１項に記載の補正方法。
【請求項１４】
前記所定の間隔は、前記画像形成装置による画像形成の解像度に応じて決定されることを特徴とする請求項５から請求項１３のいずれか１項に記載の補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ディジタル複写機、複合機、レーザプリンタなど、二次元画像の画像形成における歪みや濃度むらの画像形成装置の補正方法に関する。
【背景技術】
【０００２】
レーザプリンタや複写機等の電子写真方式の画像形成装置では、レーザ光を走査する光走査装置を用いて、感光体上に潜像形成を行う方式が一般に知られている。レーザ走査方式の光走査装置では、コリメータレンズを用いて平行光にされたレーザ光を、回転多面鏡によって偏向し、偏向されたレーザ光を長尺のｆθレンズを用いて感光体上に結像させる。また、１つのパッケージ内に複数の発光素子を有するマルチビーム光源を有し、複数のレーザ光を同時に走査するマルチビーム走査方式がある。
【０００３】
一方、濃度むらやバンディング（画像濃度の濃淡による縞模様）のない良好な画像を形成するためには、各レーザ光の走査ライン間のピッチは感光体上で等間隔であることが望ましい。しかし、以下の複数の要因によって、走査ライン間のピッチの変動が発生する。例えば、走査ライン間のピッチの変動は、感光体の表面速度の速度変動や、回転多面鏡の回転速度変動等によって生じる。また、走査ライン間のピッチの変動は、回転多面鏡の回転軸に対する回転多面鏡のミラー面の角度のばらつきや、マルチビームレーザチップに配列された発光点の間隔のばらつきによっても生じる。このような要因により発生する濃度むらやバンディングに対して、光走査装置の露光量を制御することでバンディングを補正する技術が提案されている。例えば特許文献１では、感光体近傍に副走査方向のビーム位置検出手段を設け、検出されたビーム位置から得られた走査ピッチ情報に基づき、光走査装置の露光量を調整してバンディングを目立たなくする構成が記載されている。
【０００４】
光走査装置の露光量を調整する方式としては、発光素子のピーク光量を制御する方式と、各画素の発光時間を制御する方式（ＰＷＭ方式）がある。ＰＷＭ方式では、光走査装置は、ＰＷＭ信号生成部と、駆動回路を有する構成が一般的に知られている。ＰＷＭ信号生成部は、各画素の画像データ（画素値）に応じて発光素子のオン、オフを指示する制御信号（ＰＷＭ信号）を生成し、駆動回路は、ＰＷＭ信号生成部で生成されたＰＷＭ信号に応じて発光素子をオン、オフする。例えば特許文献１と同様に、露光量を制御してバンディングを目立たなくする方式として、走査ライン各々の副走査方向の位置情報に応じて、画像データを副走査方向にシフトし、走査ラインの位置を補正する方式がある。この方式では、付加する画像データのデータ値によって画像重心の移動量を調整することが可能であり、データ値が低い場合には微弱露光する画素が付加されることにより、画像重心が微小に移動する。一方、データ値が高い場合には、強発光する画素が付加されることにより、画像重心が大きく移動する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−９８６２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
電子写真方式の画像形成装置においては、２〜５μｍ程度の画像位置ずれによっても、バンディングが発生する。例えば、１２００ｄｐｉの解像度を有する画像形成装置においては、１画素の幅が２１．１６μｍのため、２〜５μｍ程度の画像位置ずれを補正するには、１０分の１画素以下の分解能で画像の重心を移動させる必要がある。そのため、各画素の露光量の増減、又は画像データをシフトすることによって画像重心を移動させる場合には、各画素を１０分の１以下の微弱な発光光量で制御する必要がある。例えば、図２０（ａ）に、ＰＷＭ方式により発光素子（半導体レーザ）を点灯（オン）した場合のレーザ光波形を示す。ＰＷＭ信号のパルス幅を短くしていくと、発光素子が完全にはオンしない状態（レーザ光の出力が所定の設定値まで達しない状態）となり、光量不足が発生する。このような現象を、パルス幅の変化に対して、発光光量が線形（リニア）に変化しないことから、リニアリティ不良という。図２０（ｂ）は、画素値に対応したＰＷＭ信号のパルス幅と、発光素子の発光光量（レーザ光量）の関係を示すグラフであり、レーザ光量は、ＰＷＭ信号のパルス幅に比例して、リニア（一次関数的）に変化する。ところが、１６段階のＰＷＭ信号のパルス幅のうち、パルス幅の１〜４段階（画素値が１〜４）は、パルス幅の変化に対して発光光量がリニアに変化しない光量不安定領域となっており、リニアリティ不良が発生していることがわかる。
【０００７】
また、前述した画像データを付加して画像重心を移動するバンディング補正方式では、リニアリティ不良が発生すると、付加する画像データの露光量に誤差が発生することから、画像の重心移動量に誤差が発生するという課題がある。更に、光量が低下することにより画像濃度も低下してしまい、濃度変動が発生する。図２１に、バンディング補正を行う際に、リニアリティ不良が発生した場合の濃度変動の様子を示す。画像領域Ａでは、バンディング補正により、図中下方向に画像重心を移動させている。一方、画像領域Ｂでは、画像位置が理想位置にあり、画像重心を移動させていない。画像領域Ａにおいては、リニアリティ不良により、画像濃度が低下し、濃度変動が発生していることがわかる。尚、図２０、図２１の詳細な説明は、後述する。
【０００８】
本発明はこのような状況のもとでなされたもので、画像の歪みや濃度むらを補正するとともに、リニアリティ不良による濃度変動の発生を防ぎ、良好な画質を得ることを目的とする。
【課題を解決するための手段】
【０００９】
前述の課題を解決するために、本発明は、以下の構成を備える。
【００１０】
（１）複数の発光素子を有する光源と、第１の方向に回転し、前記光源から出射された光ビームにより潜像が形成される感光体と、前記光源から出射された光ビームを偏向し、前記感光体に照射された光ビームのスポットを前記第１の方向と直交する第２の方向に移動させ走査線を形成する偏向手段と、を備える画像形成装置の補正方法であって、前記偏向手段は、所定の数の反射面を有する回転多面鏡であり、前記回転多面鏡の反射面による光ビームの１走査において形成される画像の重心を、前記第１の方向における前記走査線のずれに応じて前記第１の方向に移動させ、移動に応じて画素の画素値を出力させることにより補正する第１の補正工程と、前記第１の補正工程において出力された画素の画素値に応じて前記光源から出射される光ビームの光量が所定の光量よりも低い場合には、前記画素の画素値を出力せずに、前記第２の方向における前記画素に隣接する画素の画素値に前記画素の画素値を加算することにより補正する第２の補正工程と、を備え、前記所定の光量よりも低い画素値の画素が連続する場合には、隣接する複数の画素の画素値を加算することにより、一つの画素に対応する、光ビームの光量が前記所定の光量よりも高い画素値を生成することを特徴とする補正方法。
（２）複数の発光素子を有する光源と、第１の方向に回転し、前記光源から出射された光ビームにより潜像が形成される感光体と、前記光源から出射された光ビームを偏向し、前記感光体に照射された光ビームのスポットを前記第１の方向と直交する第２の方向に移動させ走査線を形成する偏向手段と、を備える画像形成装置の補正方法であって、前記偏向手段は、所定の数の反射面を有する回転多面鏡であり、前記回転多面鏡の反射面による光ビームの１走査において形成される画像の重心を、前記第１の方向における前記走査線のずれに応じて前記第１の方向に移動させ、移動に応じて画素の画素値を出力させることにより補正する第１の補正工程と、前記第１の補正工程において出力された画素の画素値に応じて前記光源から出射される光ビームの光量が前記画素値に対応する所定の光量よりも低い場合には、前記画素の画素値を前記所定の光量の光ビームが出射される画素値に補正する第２の補正工程と、を備えることを特徴とする補正方法。
【発明の効果】
【００１２】
本発明によれば、画像の歪みや濃度むらを補正するとともに、リニアリティ不良による濃度変動の発生を防ぎ、良好な画質を得ることができる。
【図面の簡単な説明】
【００１３】
【図１】実施例１、２の画像形成装置全体を示す図、感光ドラムと光走査装置周辺の構成を示す図
【図２】実施例１、２の画像形成装置のブロック図
【図３】実施例１、２の走査ラインの位置ずれを示す図
【図４】実施例１、２のメモリに情報を記憶する工程を説明するブロック図
【図５】実施例１、２の１走査期間のタイムチャート
【図６】実施例１、２の補正処理を示すフローチャート
【図７】実施例１、２の画素の位置ずれを分類毎に示す図
【図８】実施例１、２の副走査方向の画素位置の座標変換を示す図
【図９】実施例１、２の副走査方向の画素位置の座標変換を示す図
【図１０】実施例１、２の副走査方向の画素位置の座標変換を示す図
【図１１】実施例１、２のフィルタ処理に用いる畳み込み関数を示す図、補正値と係数を説明する図
【図１２】実施例１、２の位置ずれの分類毎のフィルタ処理を示す図
【図１３】実施例１、２のフィルタ処理を示すフローチャート
【図１４】実施例１、２の位置ずれ量の算出処理を示すフローチャート
【図１５】実施例１の第２の補正処理を示すフローチャート
【図１６】実施例１の画像データ処理の一例を説明する図
【図１７】実施例１の画像データ処理の演算結果の一例を説明する図
【図１８】実施例２の第２の補正処理を示すフローチャート
【図１９】実施例２の画像データ処理で用いる誤差格納テーブル、及び画像データ処理の一例を説明する図
【図２０】従来例のＰＷＭ方式におけるレーザ光量の誤差の様子を示す図、及びリニアリティ不良による濃度変動の様子を示す図
【図２１】従来例の画像重心の移動による濃度むらを説明する図
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の好適な実施の形態を例示的に詳しく説明する。尚、レーザ光が走査される方向であって感光ドラムの回転軸方向を第２の方向である主走査方向、主走査方向に略直交する方向であって感光ドラムの回転方向を第１の方向である副走査方向とする。
【００１５】
まず、後述する実施例の説明に先立ち、リニアリティ不良により画像濃度が低下し、その結果、濃度変動が発生するという課題について、図２０、図２１を参照して、詳しく説明する。前述したように電子写真方式の画像形成装置においては、２〜５μｍ程度の画像位置ずれによっても、バンディングが発生する。例えば、１２００ｄｐｉの解像度を有する画像形成装置においては、１画素の幅が２１．１６μｍのため、２〜５μｍ程度の画像位置ずれを補正するには、１０分の１画素以下の分解能で画像の重心を移動させる必要がある。そのため、各画素の露光量の増減、又は画像データをシフトすることによって画像重心を移動させる場合には、各画素を１０分の１以下の微弱な発光光量で制御する必要がある。
【００１６】
前述したＰＷＭ方式により各画素を微弱発光させる場合には、発光素子の発光時間が短時間となり、オン、オフの際の発光遅延等の要因によって、レーザ光量を高精度に制御することが難しい。図２０（ａ）は、ＰＷＭ方式により発光素子（半導体レーザ）を点灯（オン）した場合のレーザ光波形を説明する図である。図２０（ａ）において、上側の図は、ＰＷＭ信号を示し、図中、左側から右側に向かって、ＰＷＭ信号のパルス幅は、短い状態から長い状態に変化している。パルス幅が短い領域は、画像形成される画素の濃度が低い領域（低濃度領域）であり、パルス幅が長い領域は、画像形成される画素の濃度が高い領域（高濃度領域）となっている。図２０（ａ）の下側の図は、ＰＷＭ信号に応じて発光素子から出射されるレーザ光の波形を示している。ＰＷＭ信号に対応した各レーザ光波形において、横軸方向はレーザ光が出射している時間を示し、縦軸方向はレーザ光の光量を示し、レーザ光の波形が設定値に達している状態は発光素子が完全にオンしている状態を示している。図２０（ａ）に示すように、ＰＷＭ信号のパルス幅が短い領域（低濃度領域）では、発光素子が完全にはオンしない状態（レーザ光の出力が所定の設定値まで達しない状態）となり、光量不足が発生していることがわかる。このような現象を、ＰＷＭ信号のパルス幅の変化に対して、発光素子の発光光量が線形（リニア）に変化しないことから、リニアリティ不良という。
【００１７】
図２０（ｂ）は、画素値に対応したＰＷＭ信号のパルス幅と、発光素子の発光光量（積分光量）の関係を示すグラフであり、縦軸はレーザ光量を、横軸はＰＷＭ信号のパルス幅を示している。図２０（ｂ）に示すＰＷＭ信号のパルス幅は４ビットで表現されている。即ち１画素の画素値が４ビットの分解能（０〜１５）を有しているので、パルス幅は０〜１５の１６段階で制御される。また、レーザ光量は、ＰＷＭ信号のパルス幅に比例して、図中太い線で示す理想光量のように、リニアに変化する。ところが、発光素子をオンさせる１〜１５段階のＰＷＭ信号のパルス幅のうち、図２０（ｂ）の細い線で示すレーザ光量のように、１〜４段階（画素値が１〜４に対応）は、パルス幅の変化に対して発光光量がリニアに変化しない光量不安定領域となっている。その結果、リニアリティ不良が発生していることがわかる。一方、パルス幅の５段階（画素値が５）以上のレーザ光量については、パルス幅の変化に対して発光光量がリニアに変化しており、リニアリティ不良が発生していないことがわかる。
【００１８】
また、前述した画像データを付加して画像重心を移動するバンディング補正方式では、リニアリティ不良が発生すると、付加する画像データの露光量に誤差が発生することから、画像の重心移動量に誤差が発生するという課題がある。更に、光量が低下することにより画像濃度も低下してしまい、濃度変動が発生する。図２１は、バンディング補正を行う際に、リニアリティ不良が発生した場合の濃度変動の様子を示す図である。図２１の右側に示す２つの表は、記録材に印刷される画像データを示す表である。それぞれの表において、縦方向は、記録材における上下方向（副走査方向）の印刷行を指し、横方向は、記録材の各印刷行における左右方向（主走査方向）の画素を指し、表中の数値は、各画素の画像データ（濃度値であり、０〜１５の１６レベルで表示）を示す。上側の表（図中、Ａにおける画像データ）に基づいて画像形成された画像が、左側に示すＡ（１／８画素移動）である。一方、下側の表（図中、Ｂにおける画像データ）に基づいて画像形成された画像が、左側に示すＢ（画素移動なし）である。図２１では、右下側の表の画像データに対して、右上側の表では表中の２行目、６行目の画像データ（濃度値）を２だけ減少させ、４行目、８行目に減少させた画像データ（濃度値）を２だけ付加することで、下方向に画像の重心を移動させる例を示している。これにより、１／８画素（＝２／１６）だけ３ライン目の方向に画像の重心が移動することになる。この方式では、付加する画像データのデータ値によって画像の重心の移動量を調整することができる。以上説明したように、図２１の画像領域Ａにおいては、バンディング補正により下方向に画像重心を移動させている。一方、画像領域Ｂにおいては、画像位置が理想位置にあり画像重心を移動させていない。その結果、図２１に示すように、画像領域Ａでは、画像領域Ｂと比べて画像濃度が低下し、濃度変動が発生していることがわかる。
【実施例１】
【００１９】
＜画像形成装置全体の構成＞
図１（ａ）は、複数色のトナーを用いて画像形成を行うデジタルフルカラープリンタ（カラー画像形成装置）の概略断面図である。図１（ａ）を用いて実施例１の画像形成装置１００について説明する。画像形成装置１００には色別に画像を形成する４つの画像形成部（画像形成手段）１０１Ｙ、１０１Ｍ、１０１Ｃ、１０１Ｂｋ（破線部）が備えられている。画像形成部１０１Ｙ、１０１Ｍ、１０１Ｃ、１０１Ｂｋはそれぞれ、イエロー、マゼンタ、シアン、ブラックのトナーを用いて画像形成を行う。Ｙ、Ｍ、Ｃ、Ｂｋは、それぞれイエロー、マゼンタ、シアン、ブラックを表しており、以下、特定の色について説明する場合を除き、添え字Ｙ、Ｍ、Ｃ、Ｂｋを省略する。
【００２０】
画像形成部１０１には感光体である感光ドラム１０２が備えられている。感光ドラム１０２の周りには、帯電装置１０３、光走査装置１０４、現像装置１０５がそれぞれ設けられている。また、感光ドラム１０２の周りには、クリーニング装置１０６が配置されている。感光ドラム１０２の下方には無端ベルト状の中間転写ベルト１０７が配置されている。中間転写ベルト１０７は、駆動ローラ１０８と従動ローラ１０９、１１０とに張架され、画像形成中は図中の矢印Ｂ方向（時計回り方向）に回転する。また、中間転写ベルト１０７（中間転写体）を介して、感光ドラム１０２に対向する位置には、一次転写装置１１１が設けられている。また、本実施例の画像形成装置１００は、中間転写ベルト１０７上のトナー像を記録媒体である用紙Ｓに転写するための二次転写装置１１２、用紙Ｓ上のトナー像を定着するための定着装置１１３を備える。
【００２１】
画像形成装置１００の帯電工程から現像工程までの画像形成プロセスを説明する。各画像形成部１０１における画像形成プロセスは同一であるため、画像形成部１０１Ｙを例にして画像形成プロセスを説明し、画像形成部１０１Ｍ、１０１Ｃ、１０１Ｂｋにおける画像形成プロセスについては説明を省略する。画像形成部１０１Ｙの帯電装置１０３Ｙにより、図中矢印方向（反時計回り方向）に回転駆動される感光ドラム１０２Ｙを帯電する。帯電された感光ドラム１０２Ｙは、光走査装置１０４Ｙから出射される一点鎖線で示すレーザ光によって露光される。これにより、回転する感光ドラム１０２Ｙ上（感光体上）に静電潜像が形成される。感光ドラム１０２Ｙ上に形成された静電潜像は、現像装置１０５Ｙによってイエローのトナー像として現像される。画像形成部１０１Ｍ、１０１Ｃ、１０１Ｂｋでも、同様の工程が行われる。
【００２２】
転写工程以降の画像形成プロセスについて説明する。転写電圧が印加された一次転写装置１１１は、画像形成部１０１の感光ドラム１０２上に形成されたイエロー、マゼンタ、シアン、ブラックのトナー像を、中間転写ベルト１０７に転写する。これにより、中間転写ベルト１０７上で各色のトナー像が重ね合わされる。即ち、中間転写ベルト１０７に４色のトナー像が転写される（一次転写）。中間転写ベルト１０７上に転写された４色のトナー像は、二次転写装置１１２により、手差し給送カセット１１４又は給紙カセット１１５から二次転写部に搬送されてきた用紙Ｓ上に転写される（二次転写）。そして、用紙Ｓ上の未定着のトナー像は定着装置１１３で加熱定着され、用紙Ｓ上にフルカラー画像が得られる。画像が形成された用紙Ｓは排紙部１１６に排紙される。
【００２３】
＜感光ドラムと光走査装置＞
図１（ｂ）に、感光ドラム１０２、光走査装置１０４、及び、光走査装置１０４の制御部の構成を示す。光走査装置１０４は、マルチビームレーザ光源（以下、レーザ光源）２０１と、コリメータレンズ２０２と、シリンドリカルレンズ２０３と、回転多面鏡２０４とを備える。レーザ光源２０１は、複数の発光素子によりレーザ光（光ビーム）を発生するマルチビームレーザ光源である。コリメータレンズ２０２は、レーザ光を平行光に整形する。シリンドリカルレンズ２０３は、コリメータレンズ２０２を通過したレーザ光を副走査方向へ集光する。尚、本実施例ではレーザ光源２０１は複数のビームを配列したマルチビーム光源を例にして記載するが、単一の光源を用いた場合も同様に動作させるものとする。レーザ光源２０１は、マルチビームレーザ駆動回路（以下、単にレーザ駆動回路）３０４によって駆動される。回転多面鏡２０４は、回転動作するモータ部とモータ軸に取り付けられた反射ミラーからなる。以下、回転多面鏡２０４の反射ミラーの面を、ミラー面という。回転多面鏡２０４は、回転多面鏡駆動部３０５によって駆動される。光走査装置１０４は、回転多面鏡２０４によって偏向されたレーザ光（走査光）が入射するｆθレンズ２０５、２０６を備える。また、光走査装置１０４は、種々の情報が格納されたメモリ３０２を有する。
【００２４】
更に、光走査装置１０４は、回転多面鏡２０４によって偏向されたレーザ光を検知し、レーザ光を検知したことに応じて水平同期信号（以下、ＢＤ信号）を出力する信号生成手段であるＢｅａｍ  Ｄｅｔｅｃｔｏｒ２０７（以下、ＢＤ２０７）を備える。光走査装置１０４から出射したレーザ光は、感光ドラム１０２上を走査する。レーザ光の走査方向は、感光ドラム１０２の回転軸に対して平行に走査するように、光走査装置１０４と感光ドラム１０２の位置決めがなされている。光走査装置１０４は、回転多面鏡２０４のミラー面が感光ドラム１０２上を一回走査する度に、マルチビームレーザの光ビームのスポットを主走査方向に走査させ、レーザ素子数分の走査ラインを同時に形成する。本実施例では、回転多面鏡２０４のミラー面数は５面であり、レーザ光源２０１は８つのレーザ素子を有する構成を例にして説明する。即ち、本実施例では、１回の走査で８ライン分の画像形成を行うため、回転多面鏡２０４は１回転あたり５回走査して、全部で４０ライン分の画像形成を行う。
【００２５】
感光ドラム１０２は、回転軸にロータリーエンコーダ３０１を備えており、ロータリーエンコーダ３０１を用いて感光ドラム１０２の回転速度の検出が行われる。ロータリーエンコーダ３０１は、感光ドラム１０２が１回転する度に１０００発のパルスを発生し、内蔵のタイマを用いて発生したパルスの時間間隔を測定した結果に基づく感光ドラム１０２の回転速度の情報（回転速度データ）をＣＰＵ３０３に出力する。尚、感光ドラム１０２の回転速度が検出できる構成であれば、前述したロータリーエンコーダ以外の公知の速度検出技術を用いてもよい。エンコーダ以外の方法としては、例えば、レーザドップラー等で感光ドラム１０２の表面速度を検出する等の方式がある。
【００２６】
次に、図２を用いて、光走査装置１０４の制御部であるＣＰＵ３０３について説明する。図２は、後述する画像の歪みや濃度むらを補正する補正処理を実行するＣＰＵ３０３の機能をブロック図として示した図である。ＣＰＵ３０３は、フィルタ処理部５０１と、誤差拡散処理部５０２と、ＰＷＭ信号生成部５０３とを有する。フィルタ処理部５０１は、入力された画像データに畳み込み演算を行うことでフィルタ処理を行う。誤差拡散処理部５０２は、フィルタ処理後の画像データに誤差拡散処理を行う。ＰＷＭ信号生成部５０３は、誤差拡散処理後の画像データにＰＷＭ変換を行い、光走査装置１０４のレーザ駆動回路３０４にＰＷＭ信号を出力する。
【００２７】
また、ＣＰＵ３０３は、フィルタ係数設定部５０４と、フィルタ関数出力部５０５と、補正値設定部５０６とを有する。フィルタ関数出力部５０５は、畳み込み演算に用いられる関数のデータ（例えば、テーブルのデータ）をフィルタ係数設定部５０４に出力するもので、畳み込み演算に用いられる関数には、例えば線形補間やバイキュービック補間がある。補正値設定部５０６は、光走査装置１０４のメモリ３０２から読み込んだ位置ずれ量の情報と、面特定部５０７から入力された面同期信号とに基づいて、走査ラインの位置ずれ量を算出する。補正値設定部５０６は、走査ラインの位置ずれ量に基づいて補正値を算出し、算出した補正値をフィルタ係数設定部５０４に出力する。フィルタ係数設定部５０４は、フィルタ関数出力部５０５から入力された畳み込み関数の情報と、補正値設定部５０６から入力された走査ラインの補正値とに基づいて、フィルタ処理部５０１によるフィルタ処理に用いられるフィルタ係数を算出する。フィルタ係数設定部５０４は、算出したフィルタ係数をフィルタ処理部５０１に設定する。
【００２８】
更に、ＣＰＵ３０３は、面特定部５０７を有する。面特定部５０７は、光走査装置１０４のホームポジションセンサ（以下、ＨＰセンサとする）３０７から入力されたＨＰ信号と、ＢＤ２０７から入力されたＢＤ信号とに基づいて、回転多面鏡２０４のミラー面を特定する。面特定部５０７は、特定したミラー面の情報を面同期信号として補正値設定部５０６に出力する。
【００２９】
ＣＰＵ３０３には、画像データを生成する不図示の画像コントローラから画像データが入力される。また、ＣＰＵ３０３は、ロータリーエンコーダ３０１、ＢＤ２０７、メモリ３０２、レーザ駆動回路３０４、回転多面鏡駆動部（以下、ミラー駆動部）３０５と接続されている。ＣＰＵ３０３は、ＢＤ２０７から入力されたＢＤ信号に基づいて走査ラインの書き出し位置を検知し、ＢＤ信号の時間間隔をカウントすることで回転多面鏡２０４の回転速度を検知する。更に、ＣＰＵ３０３は、回転多面鏡２０４が所定の速度となるように、ミラー駆動部３０５に加速減速を指示するための加速減速信号を出力する。ミラー駆動部３０５は、ＣＰＵ３０３から入力された加速減速信号に応じて、回転多面鏡２０４のモータ部に駆動電流を供給し、モータ３０６を駆動する。
【００３０】
回転多面鏡２０４にはＨＰセンサ３０７が搭載されており、ＨＰセンサ３０７は回転多面鏡２０４が回転動作中に所定角度になったタイミングで、ＣＰＵ３０３に対してＨＰ信号を出力する。ＣＰＵ３０３の面特定部５０７は、ＨＰセンサ３０７からのＨＰ信号を検知したタイミングで、回転多面鏡２０４の５つのミラー面のうち、どのミラー面でレーザ光を走査しているか、即ち走査中のミラー面を特定する。面特定部５０７は、一度、ミラー面が特定されると、それ以降はＢＤ２０７から出力されるＢＤ信号に基づいてミラー面を特定し続ける。回転多面鏡２０４の任意のミラー面がレーザ光を１回走査する度に、ＢＤ２０７はＢＤ信号１パルスを出力するため、ＣＰＵ３０３はＢＤ信号をカウントすることで回転多面鏡２０４のミラー面を特定し続けることが可能となる。
【００３１】
メモリ３０２には、回転多面鏡２０４のミラー面毎の位置情報と、マルチビームレーザの位置情報が各々格納されており、ＣＰＵ３０３によって各情報が読み出される。ＣＰＵ３０３は、メモリ３０２から読み出した情報に基づいて、各走査ラインの位置の算出を行い、算出された各走査ラインの位置と入力された画像データから、各走査ラインの位置を補正する情報を加味した画像データを算出する。ＣＰＵ３０３は、各走査ラインの位置が補正された情報が加味された画像データに基づいて、レーザ駆動回路３０４に発光光量データを出力する。尚、本実施例では、レーザ駆動回路３０４は、ＣＰＵ３０３から入力された発光光量データに基づき、ＰＷＭ（パルス幅変調）制御により画素毎の点灯時間を制御することで光量制御を行う。尚、光量制御を行う際には、必ずしもＰＷＭ制御を用いる必要はなく、画素毎にピーク光量を制御するＡＭ（振幅変調）制御により光量制御を行ってもよい。
【００３２】
＜走査位置情報＞
次に、図３、表１を用いて、メモリ３０２に格納された走査位置情報について説明する。図３は、各走査ラインの理想位置からの位置ずれの様子を示す。８つの発光点を有するマルチビームレーザの各レーザが走査する走査ラインを、ＬＤ１、ＬＤ２、ＬＤ３、ＬＤ４、ＬＤ５、ＬＤ６、ＬＤ７、ＬＤ８とする。ここで、各走査ラインの理想的な間隔は、解像度によって決まる。例えば解像度１２００ｄｐｉの画像形成装置の場合、各走査ラインの理想的な間隔は、２１．１６μｍとなる。ＬＤ１を基準位置とした場合、走査ラインＬＤ１からの走査ラインＬＤ２〜ＬＤ８の理想距離Ｄ２〜Ｄ８は式（１）で算出される。
【００３３】
Ｄｎ＝（ｎ−１）×２１．１６μｍ  （ｎ＝２〜８）・・・式（１）
例えば、走査ラインＬＤ１から走査ラインＬＤ４までの理想距離Ｄ４は、６３．４８μｍ（＝（４−１）×２１．１６μｍ）となる。
【００３４】
ここで、マルチビームレーザの素子間隔の誤差やレンズの倍率ばらつきによって、走査ラインの間隔は誤差を有する。理想距離Ｄ２〜Ｄ８によって決まる理想位置に対する走査ラインＬＤ２〜ＬＤ８の走査ライン位置の位置ずれ量を、Ｘ１〜Ｘ７とする。回転多面鏡２０４の１面目について、例えば、走査ラインＬＤ２の位置ずれ量Ｘ１は、走査ラインＬＤ２の理想位置（以下、ライン２、他の走査ラインについても同様とする）と実際の走査ラインとの差とする。また、例えば、走査ラインＬＤ４の位置ずれ量Ｘ３は、ライン４と実際の走査ラインとの差とする。
【００３５】
回転多面鏡２０４は、回転多面鏡２０４の各ミラー面の製造ばらつきにより、回転軸に対するミラー面の角度が完全に平行にはならず、ミラー面毎に角度ばらつきを有する。回転多面鏡２０４の各ミラー面における理想位置に対する位置ずれ量は、回転多面鏡２０４のミラー面数が５面の場合、Ｙ１〜Ｙ５で表される。図３では、回転多面鏡２０４の１面目の走査ラインＬＤ１の理想位置（ライン１）からのずれ量をＹ１、２面目の走査ラインＬＤ１の理想位置（ライン９）からのずれ量をＹ２とする。
【００３６】
回転多面鏡２０４のミラー面をｍ面目、マルチビームのｎ番目のレーザ光による走査ライン（ＬＤｎ）の位置ずれ量をＺｍｎとする。そうすると、位置ずれ量Ｚｍｎは、各走査ラインの位置ずれ量Ｘ１〜Ｘ７と、各ミラー面の位置ずれ量Ｙ１〜Ｙ５とを用いて式（２）で表わされる。
【００３７】
Ｚｍｎ＝Ｙｍ＋Ｘ（ｎ−１）      （ｍ＝１〜５、ｎ＝１〜８）・・・式（２）
（ただし、Ｘ（０）＝０とする）
例えば、回転多面鏡２０４の１面目の走査ラインＬＤ４についての位置ずれ量Ｚ１４は、式（２）からＺ１４＝Ｙ１＋Ｘ３と求められる。また、回転多面鏡２０４の２面目の走査ラインＬＤ１についての位置ずれ量Ｚ２１は、式（２）からＺ２１＝Ｙ２と求められる。
【００３８】
式（２）の演算で位置ずれ量Ｚｍｎを算出する場合、位置ずれ量Ｚｍｎの算出に用いられるデータは、回転多面鏡２０４のミラー面の数とマルチビームレーザの素子数に対応したデータ数を有していればよい。ここで、表１にメモリ３０２に格納される位置ずれデータのアドレスマップを示す。
【００３９】
【表１】
0006611510.tif 000002
【００４０】
表１に示すように、メモリ３０２のアドレス０からアドレス６までには、走査ラインＬＤ２から走査ラインＬＤ８までの位置ずれ量（位置情報と記す）Ｘ１〜Ｘ７の情報が格納されている。また、メモリ３０２のアドレス７からアドレス１１までには、回転多面鏡２０４のミラー面の１面目から５面目までの位置ずれ量Ｙ１〜Ｙ５の情報が格納されている。尚、本実施例では、回転多面鏡２０４の各ミラー面の位置ずれによって、各レーザ光の８つの走査ラインが一律にずれるものとして説明している。即ち、本実施例では、１２個の位置情報をメモリ３０２に保持する。しかし、回転多面鏡２０４のミラー面毎にレーザ光の各走査ラインの位置ずれ量がばらつく場合、回転多面鏡２０４の各ミラー面とレーザ光の各走査ラインの組み合わせの分だけ、位置ずれ量の情報を保持してもよい。即ち、この場合は、回転多面鏡２０４のミラー面の数５面、マルチビームレーザの素子数８で、４０個の位置情報をメモリ３０２に保持する。
【００４１】
（メモリ格納動作）
メモリ３０２に格納される位置ずれ量の情報は、例えば工場等での光走査装置１０４の調整工程で測定されたデータを格納するものとする。また、画像形成装置内部にレーザ光源２０１から出射されたレーザ光により走査される走査ラインの位置を検知する手段を備え、メモリ３０２に格納されている情報をリアルタイムに更新する構成としてもよい。走査光の副走査方向の位置検出手段としては、公知の技術を用いてよい。例えば、光走査装置内部や感光ドラム近傍に配置したＣＭＯＳセンサやＰＳＤ（Ｐｏｓｉｔｉｏｎ  Ｓｅｎｓｉｔｉｖｅ  Ｄｅｔｅｃｔｏｒ）によって位置検出を行う方法でもよい。また、光走査装置内部や感光ドラム近傍に配置したＰＤ（ｐｈｏｔｏ  ｄｉｏｄｅ）面上に三角スリットを配置してＰＤの出力パルス幅から位置検出を行う方法でもよい。
【００４２】
図４は、一例として、工場等で光走査装置１０４のメモリ３０２に情報を格納する際のブロック図を示す。尚、図２と同じ構成には同じ符号を付し、説明を省略する。光走査装置１０４の調整工程において、光走査装置１０４が画像形成装置に搭載されたときの感光ドラムの位置に相当する位置に、測定工具４００を配置する。測定工具４００は、測定部４１０と演算部４０２を備えており、演算部４０２は、図２のＣＰＵ３０３の面特定部５０７から面同期信号が入力されるように構成されている。尚、図４のＣＰＵ３０３には、面特定部５０７のみ描画している。まず、光走査装置１０４から測定部４１０にレーザ光を照射させる。測定部４１０は、三角スリット４１１とＰＤ４１２を有しており、図中、一点鎖線矢印で示す光走査装置１０４から走査された光ビームが三角スリット４１１上を走査する。測定部４１０は、三角スリット４１１を介してＰＤ４１２に入力された光ビームの情報に基づき、走査ラインの副走査方向の位置を測定する。測定部４１０は、測定した回転多面鏡２０４のミラー面毎の走査ラインの副走査方向の位置の情報（以下、面毎データという）を、演算部４０２に出力する。
【００４３】
一方、面特定部５０７には、光走査装置１０４のＨＰセンサ３０７からＨＰ信号が入力され、ＢＤ２０７からＢＤ信号が入力されている。これにより、面特定部５０７は、回転多面鏡２０４のミラー面を特定し、特定したミラー面の情報を、面同期信号として演算部４０２に出力する。演算部４０２は、面特定部５０７から入力された回転多面鏡２０４のミラー面の情報に応じた光走査装置１０４のメモリ３０２上のアドレスに、測定部４１０により測定した走査ラインの副走査方向の位置の情報を書き込む。このように、レーザ光源２０１の８つの素子のばらつきにより生じる走査ラインの位置ずれ量の情報（Ｘ１〜Ｘ７）と、回転多面鏡２０４のミラー面の面倒れにより生じる走査ラインの位置ずれ量の情報（Ｙ１〜Ｙ５）とが、メモリ３０２に格納される。
【００４４】
＜位置ずれ量算出方法＞
図５は、本実施例のレーザ光の１走査期間内の制御タイミングを示す。（１）は１画素あたりの画素周期に対応したＣＬＫ信号を示しており、（２）はＣＰＵ３０３に対するＢＤ２０７からのＢＤ信号の入力タイミングを示している。（３）（４）はＣＰＵ３０３に対する画像データ（ＤＡＴＡ１、ＤＡＴＡ２等）が入力されるタイミングを示している。（４）の画像データは、フィルタ処理部５０１によるフィルタ処理が実行される前のデータである。（５）はフィルタ処理部５０１によるフィルタ処理後に、誤差拡散処理部５０２、ＰＷＭ信号生成部５０３を介してレーザ駆動回路３０４に画像データ（ＤＡＴＡ１’、ＤＡＴＡ２’等）を出力するタイミングを示している。
【００４５】
ＢＤ２０７から出力されるＢＤ信号を基準としたときに、ＢＤ信号が出力されたタイミングから、レーザ光が感光ドラム１０２の主走査方向における画像領域の先端に到達するタイミングまでの時間をＴ１とする。また、ＢＤ信号が出力されたタイミングから、レーザ光が感光ドラム１０２の主走査方向における画像領域の終端に到達するタイミングまでの時間をＴ２とする。画像形成装置は、ＣＰＵ３０３によりＢＤ信号を検知した後、所定時間Ｔ１が経過するまで待機した後、画像形成を開始し、ＢＤ信号を検知してから所定時間Ｔ２が経過した後に、１走査ラインの画像形成を終了する。ＣＰＵ３０３は、走査毎に、ＢＤ信号を検知してから所定時間Ｔ１が経過するまでの間、即ち、非画像領域で上述した走査ラインの位置ずれ量を算出する。そして、ＣＰＵ３０３は、走査毎に、所定時間Ｔ１が経過してから所定時間Ｔ２が経過するまでの間、即ち、画像領域で、フィルタ処理部５０１によるフィルタ処理後の画像データをレーザ駆動回路３０４に送信し、画像形成を行う。ここで、（１）のＣＬＫ信号の１周期分の時間で、注目画素に対するフィルタ処理がフィルタ処理部５０１によって行われる。そして、フィルタ演算前の画像データが入力されて１クロック後に、フィルタ演算後の画像データがレーザ駆動回路３０４に出力される（図５破線枠部）。ΔＴは、ＢＤ２０７から出力されるＢＤ信号の時間間隔であり、１走査あたりの時間である。
【００４６】
本実施例では、複数の走査ラインの画像データと位置ずれ量に基づいて、フィルタ演算を行う。このため、前述した位置ずれ量算出動作においてＣＰＵ３０３は、ＢＤ２０７からＢＤ信号が出力されてから時間Ｔ１が経過するまでの期間において、フィルタ演算に用いる複数の走査ラインの位置ずれ量を求めるものとする。例えば、フィルタ演算の範囲をＬ＝３とした場合、注目ラインから上下３画素の画像データを参照し、同じく注目ラインと上下３画素の範囲における各走査ラインの位置ずれ量を算出し、フィルタ演算を行うものとする。
【００４７】
ここで、注目ラインに対応した走査ラインの位置ずれ量は、画像形成直前の期間において算出される。また注目走査ライン以前に走査された走査ラインに対しては、以前に算出した位置ずれ量の算出結果を用いるものとする。注目走査ライン以降のタイミングで走査される走査ラインについては、次の走査ラインに対応する回転多面鏡２０４の面情報とビーム位置情報に基づいて後述する位置ずれ量Ｂを求める。また、回転多面鏡２０４の回転速度Ｖｐ、感光ドラムの回転速度Ｖｄについては、前の走査タイミングで検出した値と、現在の走査タイミングで検出した値に基づいて、次の走査ラインにおける速度を各々予測して求めるものとする。尚、位置ずれ量の算出方法の詳細については後述する。
【００４８】
＜画像データの第１の補正＞
本実施例では、ＣＰＵ３０３は、レーザ光による走査ラインの副走査方向の位置ずれ量に基づいて、画像データに対してフィルタ演算による補正処理を行い、補正した画像データをレーザ駆動回路３０４に出力する。第１の補正処理であるフィルタ演算は、具体的には畳み込み処理を行う演算であり、本実施例では画像データと位置ずれ量をもとに畳み込み処理を行う。以下、図６のフローチャートについて説明する。図６は、副走査方向の位置ずれに起因して発生する濃度むらやバンディングを補正するためのフィルタ演算を説明するフローチャートである。Ｓ３６０２でＣＰＵ３０３は、メモリ３０２に格納された副走査方向の位置ずれ量を読み出す。具体的には、ＣＰＵ３０３は、表１で説明したＬＤ２〜ＬＤ８の位置情報Ｘ１〜Ｘ７と、回転多面鏡２０４の１〜５面目の位置情報Ｙ１〜Ｙ５をメモリ３０２から読み出す。本実施例では、副走査方向の位置ずれ量に基づいて、入力された画像データの副走査方向の画素位置に対して補正を行った後、フィルタ処理を行うことによって画素データ、即ち濃度を出力する。本実施例の畳み込み処理は、副走査方向における走査線のずれに起因した副走査方向の濃度の疎密を、注目画素を走査線のずれに応じて副走査方向に移動させる処理である。そして、畳み込み処理は、副走査方向への移動に応じて注目画素の画素値を出力させる、又は出力させないことにより補正する処理である。
【００４９】
（走査ラインの位置ずれの状態）
走査ラインの位置ずれの状態は略４つに分類できる。まず、位置ずれの状態には、（ａ）感光ドラム１０２上の走査ラインの位置（以下、走査位置）が理想の走査位置に対して進み方向にシフトする場合、（ｂ）感光ドラム１０２上の走査位置が理想の走査位置に対して戻り方向にシフトする場合がある。また、位置ずれの状態には、（ｃ）感光ドラム１０２上の走査位置の間隔が理想の走査位置の間隔に対して密になる場合、逆に、（ｄ）感光ドラム１０２上の走査位置の間隔が理想の走査位置の間隔に対して疎になる場合がある。これらの副走査方向の位置ずれの状態の具体例を図７に示す。図中、破線は走査位置を示し、図中（１）〜（５）は走査の順番を示す。本実施例では８ビームを同時に走査するが、副走査方向に順に並ぶ１ビームずつに順番を振ったものとして説明する。図７の左側の列が理想の走査位置、右側の列が感光ドラム１０２上の走査位置を示す。走査番号（１）〜（５）に対して、Ｓ１〜Ｓ５は理想の走査位置からの位置ずれ量を示す。位置ずれ量の単位は、理想のビーム間隔（１２００ｄｐｉで２１．１６μｍ）を１としたときを基準に表し、副走査方向における光ビームの進み方向（以下、単に進み方向という）を正の値としている。また、副走査方向における光ビームの戻り方向（以下、単に戻り方向という）を負の値としている。更に、画像の様子を説明するために副走査方向に並ぶ１画素を走査線上に丸で示す。丸の色は濃度を表す。
【００５０】
図７（ａ）は、感光ドラム１０２上の走査位置が、理想の走査位置から進み方向に一律に０．２ずつシフトしている例を示している。以降、図７（ａ）のような位置ずれ量を、＋０．２のシフト量という。図７（ｂ）は、感光ドラム１０２上の走査位置が、理想の走査位置から戻り方向に一律に０．２ずつシフトしている例を示している。以降、図７（ｂ）のような位置ずれ量を、−０．２ラインのシフト量という。図７（ａ）、図７（ｂ）は、走査位置が一律にシフトしているため、感光ドラム１０２上の走査位置の間隔はいずれも１となっている。
【００５１】
図７（ｃ）は、感光ドラム１０２上の所定の走査位置では、位置ずれ量が０である。しかし、位置ずれ量０の走査位置から走査位置が前に戻るほど進み方向への位置ずれ量が大きくなり、位置ずれ量０の走査位置から走査位置が後に進むほど戻り方向への位置ずれ量が大きくなる。例えば、走査番号（３）ではＳ３＝＋０であるが、走査番号（２）ではＳ２＝＋０．２、走査番号（１）ではＳ１＝＋０．４となり、走査番号（４）ではＳ４＝−０．２、走査番号（５）ではＳ５＝−０．４となる。図７（ｃ）では、走査位置の間隔が１よりも小さい０．８となっている。以降、図７（ｃ）のような位置ずれの状態を、（１−０．２）ラインの間隔で密、という。
【００５２】
図７（ｄ）は、感光ドラム１０２上の所定の走査位置では、位置ずれ量が０である。しかし、位置ずれ量０の走査位置から走査位置が前に戻るほど戻り方向への位置ずれ量が大きくなり、位置ずれ量０の走査位置から走査位置が後に進むほど進み方向への位置ずれ量が大きくなる。例えば、走査番号（３）ではＳ３＝＋０であるが、走査番号（２）ではＳ２＝−０．２、走査番号（１）ではＳ１＝−０．４となり、走査番号（４）ではＳ４＝＋０．２、走査番号（５）ではＳ５＝＋０．４となる。図７（ｄ）では、走査位置の間隔が１よりも大きい１．２となっている。以降、図７（ｄ）のような位置ずれの状態を、（１＋０．２）ラインの間隔で疎、という。
【００５３】
図７（ｃ）のような密の状態では、位置ずれが生じているだけでなく、走査位置の間隔が密になることによって感光ドラム１０２上で画素が密集し、所定面積あたりの画素値が増えることで濃度が濃くなる。逆に図７（ｄ）のような疎の状態では、位置ずれが生じているだけでなく、走査位置の間隔が疎になることによって感光ドラム１０２上で画素が疎となって、所定面積あたりの画素値が減って濃度が薄くなる。電子写真プロセスにおいては、潜像電位の深さと現像特性の関係により濃淡差がさらに強調されることがある。また、図７（ｃ）、図７（ｄ）のような疎密が交互に発生すれば周期的な濃淡がモアレとなり、空間周波数によっては同じ量でも視覚的に検知されやすくなる。
【００５４】
図６のフローチャートの説明に戻る。Ｓ３６０３でＣＰＵ３０３は、補正値設定部５０６により入力画像の各画素に対する補正用属性情報を生成する。本実施例では、入力画像の副走査方向の画素位置を予め座標変換してから、補間することにより、位置ずれの補正と共に、入力画像の濃度を保存しながら局所的な濃淡の補正も同時に行うことを可能にする。ここで、補正用属性情報とは、具体的には、後述する補正値Ｃのことである。
【００５５】
（座標変換）
本実施例の座標変換の方法を、図８〜図１０を用いて説明する。図８〜図１０のグラフは、横軸を画素番号ｎ、縦軸を副走査方向の画素位置（走査位置でもある）ｙ（座標変換後はｙ’）としており、単位はラインとしている。また、図８（ａ）、図８（ｂ）は図７（ａ）、図７（ｂ）に、図１０（ａ）、図１０（ｂ）は図７（ｃ）、図７（ｄ）に対応している。図８、図１０の左側のグラフは座標変換を行う前を、右側のグラフはｙ軸の座標変換を行った後を、それぞれ示している。グラフにプロットした四角のドットは感光ドラム１０２上の走査位置、丸のドットは理想の走査位置を表す。
【００５６】
（進み方向及び戻り方向にシフトしている場合）
図８（ａ）左のグラフから順に説明する。座標変換を行う前のグラフでは、丸でプロットした理想の走査位置は、例えば画素番号２に対して副走査方向の画素位置ｙが２となっており、画素番号ｎとｙ座標が等しく、傾き１の直線（一点鎖線で示す）である。一点鎖線の直線は、以下の式（３）で表される。
【００５７】
ｙ＝ｎ・・・式（３）
丸でプロットした理想の走査位置に対して、四角でプロットした走査位置は、図７（ａ）で説明したように、進み方向（ｙ軸＋方向）にＳ（＝０．２）ラインだけシフトしている。このため、四角でプロットした走査位置は、傾きは１のまま、オフセットした次の式（４）で表される直線（実線で示す）となる。
【００５８】
ｙ＝ｎ＋Ｓ・・・式（４）
本実施例では、実際の走査位置が理想の走査位置に変換されるように座標変換を行うため、図８（ａ）に示す例の場合、以下の式を用いて座標変換を行えばよい。尚、式（５）のＣが補正量となる。
【００５９】
ｙ’＝ｙ＋Ｃ・・・式（５）
従って、補正量Ｃはシフト量Ｓと以下の式（６）で表される。
【００６０】
Ｃ＝−Ｓ・・・式（６）
座標変換の式（５）と補正量Ｃを求める式（６）により、式（３）、式（４）はそれぞれ以下の式（７）、式（８）のように変換される。
【００６１】
ｙ’＝ｙ＋Ｃ＝ｎ＋（−Ｓ）＝ｎ−Ｓ・・・式（７）
ｙ’＝ｙ＋Ｃ＝（ｎ＋Ｓ）＋Ｃ＝（ｎ＋Ｓ）＋（−Ｓ）＝ｎ・・・式（８）
図８（ｂ）について、シフト量をＳ＝−０．２とすれば、式（３）から式（８）が同様に成立して、図８（ａ）と同様に説明できる。尚、図８（ａ）、図８（ｂ）に示すように、走査ライン間に疎密が発生しておらず進み方向又は戻り方向にシフトしている走査ラインの場合には、変換前後で直線が一定の傾きとなっている。
【００６２】
（疎密が発生している場合）
ここで、走査位置の疎密が発生する図１０、及びシフトと疎密、図８、図１０の組み合わせのケースにも適用できる座標変換について説明する。図９（ａ）は画素番号と走査位置の関係を示し、横軸は画素番号ｎ、縦軸ｙは副走査方向の走査位置で、四角ドットは感光ドラム１０２上の走査位置をプロットしたものである。図９（ａ）では、画素番号ｎ≦２の範囲では感光ドラム１０２上の走査ラインが密、画素番号ｎ≧２の範囲では感光ドラム１０２上の走査ラインが疎の場合について説明する。
【００６３】
図９（ａ）に示すように、画素番号ｎ≦２では密、画素番号ｎ≧２では疎、となっている場合、画素番号ｎ≦２での直線の傾きと、画素番号ｎ≧２での直線の傾きは異なり、画素番号ｎ＝２において屈曲した形状となっている。図９（ａ）では、四角ドットを通る走査位置の変化を表す関数をｆｔ（ｎ）とし、実線で表す。走査位置を表す関数ｆｔ（ｎ）は、次の式（９）で表される。
【００６４】
ｙ＝ｆｔ（ｎ）・・・式（９）
次に、副走査方向の走査位置であるｙ軸の座標変換を行った後の関数をｆｔ’（ｎ）で表すと、座標変換後の走査位置を表す関数ｆｔ’（ｎ）は、次の式（１０）で表される。
【００６５】
ｙ’＝ｆｔ’（ｎ）・・・式（１０）
本実施例では、座標変換後の走査位置が均等になるように、ｙ軸を伸縮したり、シフトしたりして、座標変換を行う。このため、座標変換後の走査位置を表す関数ｆｔ’（ｎ）は、以下の式（１１）で表される条件を満たす。
【００６６】
ｆｔ’（ｎ）＝ｎ・・・式（１１）
式（１１）は、例えば、画素番号２に対して、座標変換後の副走査方向の画素位置ｙ’（＝ｆｔ’（２））が２となることを意味する。
【００６７】
図９（ａ）、図９（ｂ）間を結ぶ破線は左から右へ、ｙ軸の元の座標位置から座標変換後のｙ’軸の座標位置との対応を示し、座標変換前後でｙ軸の下半分（ｎ≦２に対応）が伸長、上半分（ｎ≧２に対応）は縮小している様子を示す。図９（ａ）から図９（ｂ）の座標変換によって、入力された画像データの各画素の座標変換後の座標を求める手順を図９（ｃ）、図９（ｄ）で説明する。図９（ｃ）、図９（ｄ）は、図９（ａ）、図９（ｂ）と同様に、横軸は画素番号ｎ、縦軸ｙ（又はｙ’）は副走査方向の走査位置を示し、図９（ｃ）は座標変換前、図９（ｄ）は座標変換後を示す。入力された画像データの画素番号ｎと座標位置ｙの関係を以下に示す。まず、図９（ｃ）に示す破線は、座標変換前の理想の走査位置を表す関数ｆｓ（ｎ）であり、以下の式（１２）で表される。
【００６８】
ｙ＝ｆｓ（ｎ）・・・式（１２）
また、本実施例において、入力された画像データの副走査方向の画素の間隔は均等なので、関数ｆｓ（ｎ）は以下の式（１３）で表される。
【００６９】
ｆｓ（ｎ）＝ｎ・・・式（１３）
入力された画像データの注目する画素番号ｎｓに座標変換を行った後のｙ’座標の走査位置を、次の３つのステップにより求める。まず、１つめのステップでは、入力された画像データの画素番号ｎｓに対応する理想の走査位置のｙ座標をｙｓとすると、ｙｓは、以下の式（１４）により求めることができる。
【００７０】
ｙｓ＝ｆｓ（ｎｓ）・・・式（１４）
感光ドラム１０２上（実線）で座標変換を行う前の走査位置が等しい画素番号ｎｔを求める（図９（ｃ）の（１））。ここで、感光ドラム１０２上の走査位置は関数ｙ＝ｆｔ（ｎ）で表され、ｙｓ＝ｆｔ（ｎｔ）という関係が成り立つ。関数ｆｔ（ｎ）の逆関数をｆｔ−１（ｙ）とすると、画素番号ｎｔは、以下の式（１５）で表される。
【００７１】
ｎｔ＝ｆｔ−１（ｙｓ）・・・式（１５）
２つめのステップでは、感光ドラム１０２上の走査位置の画素番号ｎｔに対応する座標変換後のｙ’座標（ｙｔとする）を、座標変換後の関数ｆｔ’（ｎ）を用いて次の式（１６）により求める（図９（ｄ）の（２））。
【００７２】
ｙｔ＝ｆｔ’（ｎｔ）・・・式（１６）
画素番号ｎｓは任意に選んでも成立するので、画素番号ｎｓから座標変換後のｙ’座標の位置ｙｔを求める式が、入力された画像データの画素番号ｎから演算上のｙ’座標を求める関数ｆｓ’（ｎ）に相当する。従って、式（１４）〜式（１６）から、以下のように式（１７）で表される一般式が導かれる。尚、座標変換後の破線で示す理想の走査位置を示す関数は、ｙ’＝ｆｓ’（ｎ）で表される（図９（ｄ）の（３））。
【００７３】
ｙｔ＝ｆｓ’（ｎｓ）＝ｆｔ’（ｎｔ）＝ｆｔ’（ｆｔ−１（ｙｓ））
＝ｆｔ’（ｆｔ−１（ｆｓ（ｎｓ）））
ｎｓをｎに一般化して、
ｆｓ’（ｎ）＝ｆｔ’（ｆｔ−１（ｆｓ（ｎ）））・・・式（１７）
また、入力された画像データの画素間隔、及び座標変換後の走査位置の間隔を均等で、距離１とした式（１３）、式（１１）を式（１７）に代入する。そうすると、式（１７）は、画素番号ｎから走査位置を導く関数ｆｔ（ｎ）の逆関数ｆｔ−１（ｎ）を用いて、式（１８）のように表される。
【００７４】
ｆｓ’（ｎ）＝ｆｔ−１（ｎ）・・・式（１８）
図８（ａ）、図８（ｂ）に示した走査位置が進み方向、戻り方向に一律にシフトした式（４）と、入力された画像データの座標変換後の位置を求める式（７）も逆関数の関係にあり、式（１８）の成立を確認できる。また、図１０（ａ）、図１０（ｂ）に示すような走査位置に疎密が発生する場合に適用すると、座標変換前の走査位置を表す関数ｙは、（ｎ０、ｙ０）を通過する傾きｋの直線とする場合、以下の式（１９）で表せる。
【００７５】
ｆｓ（ｎ）＝ｙ＝ｋ×（ｎ−ｎ０）＋ｙ０・・・式（１９）
入力された画像データのｙ軸の座標変換後の画素位置を求めるために、式（１７）、式（１８）から、逆関数（（１／ｋ）×（ｙ−ｙ０）＋ｎ０）を求めて、逆関数に画素番号ｎを代入すればよいので、以下の式（２０）が導かれる。
【００７６】
ｙ’＝（１／ｋ）×（ｎ−ｙ０）＋ｎ０・・・式（２０）
図１０（ａ）に示す走査ラインの間隔が密な状態、図１０（ｂ）に示す走査ラインの間隔が疎な場合、いずれも座標変換後の感光ドラム１０２上の走査ラインの位置は、式（２０）で表すことができる。また、画素番号ｎの補正値Ｃｎは、Ｃｎ＝ｆｓ’（ｎ）−ｆｓ（ｎ）から求められる。
【００７７】
具体的には、図１０（ａ）では、ｎ０＝ｙ０＝３、ｋ＝０．８であり、
ｆｓ’（ｎ）＝（１／０．８）×（ｎ−３）＋３・・・式（２１）
となる。例えば、画素番号３では、ｆｓ’（３）＝３．００となり、補正値Ｃ３は０．００（＝３．００−３．００）となる。また、画素番号５では、ｆｓ’（５）＝５．５０となり、補正値Ｃ５は＋０．５０（＝＋５．５０−５．００）となる。走査位置が密である場合の補正値Ｃ１〜Ｃ５の値を図１２（ｃ）に示す。
【００７８】
また、図１０（ｂ）では、ｎ０＝ｙ０＝３、ｋ＝１．２であり、
ｆｓ’（ｎ）＝（１／１．２）×（ｎ−３）＋３・・・式（２２）
となる。例えば、画素番号３では、ｆｓ’（３）＝３．０００となり、補正値Ｃ３は０．０００（＝３．０００−３．０００）となる。また、画素番号５では、ｆｓ’（５）＝４．６６７となり、補正値Ｃ５は−０．３３３（＝４．６６７−５．０００）となる。走査位置が疎である場合の補正値Ｃ１〜Ｃ５の値を図１２（ｄ）に示す。
【００７９】
また、走査ラインに疎密やシフトが混在していても、式（１７）又は式（１８）を用いることにより、座標変換後の理想の走査位置を求めることができる。補正値設定部５０６は、位置ずれ量に基づき理想の走査位置を座標変換して補正値Ｃｎを求めて、補正値Ｃｎの情報をフィルタ係数設定部５０４に出力する。
【００８０】
（フィルタ処理）
本実施例では、補正データを生成するためにフィルタ処理を実行する。ただし、本実施例では、フィルタ処理部５０１は、次のようなフィルタ関数による畳み込み演算でフィルタ処理を行う。即ち、フィルタ処理部５０１は、入力された画像データの画素の副走査方向の走査位置の補正による画素の副走査方向の画素位置と、座標変換によって走査ラインの間隔が均等に変換された画素の副走査位置との位置関係に基づいて、フィルタ処理を行う。尚、フィルタ処理前の画素を入力画素、フィルタ処理後の画素を出力画素ともいう。また、フィルタ処理前の画素は、上述した座標変換が行われた画素である。
【００８１】
本実施例の畳み込み関数は、図１１（ａ）に示す線形補間、図１１（ｂ）、図１１（ｃ）に示すバイキュービック補間から選択できる。フィルタ関数出力部５０５は、フィルタ処理に用いられる畳み込み関数の情報を、例えばテーブルの情報としてフィルタ係数設定部５０４に出力する。図１１は、縦軸ｙが副走査方向の位置を示し、単位を画素で示していて、横軸ｋは係数の大きさを示す。尚、縦軸ｙの単位を画素としているが、副走査方向を示しているため、ラインを単位としてもよい。
【００８２】
図１１（ａ）の式は以下で表される。
【００８３】
0006611510.tif 000003
【００８４】
図１１（ｂ）、図１１（ｃ）の式は以下の２つの式で表される。
【００８５】
0006611510.tif 000004
【００８６】
本実施例では、ａ＝−１、図１１（ｂ）はｗ＝１、図１１（ｃ）はｗ＝１．５としているが、各画像形成装置の電子写真的な特性に応じて、ａ、ｗを調整してもよい。フィルタ係数設定部５０４は、フィルタ関数出力部５０５から得たフィルタ関数の情報と、補正値設定部５０６から出力された補正値Ｃの情報と、に基づいて、フィルタ処理に用いられる係数（後述するｋ）をフィルタ処理部５０１に出力する。
【００８７】
ここで、図１１（ｄ）を用いて説明する。図１１（ｄ）は横軸にフィルタ処理に用いられる係数ｋ、縦軸に副走査方向の位置ｙを示す。フィルタ係数設定部５０４は、補正値設定部５０６から補正値Ｃｎを入力されると、フィルタ関数出力部５０５から入力されたフィルタ関数を用いて、補正値Ｃｎに対応する係数ｋｎを求める。尚、図１１（ｄ）中の白丸は座標変換前の係数を示す。また、図１１（ｄ）では、補正値Ｃ１に対して係数ｋ１が、補正値Ｃ２に対して係数ｋ２が、それぞれフィルタ処理に用いられる係数ｋｎとして設定されたことを示す（黒丸）。本実施例では、入力された画像データの粗密の状態によらず、同じ畳み込み関数を適用し、理想の走査位置によってサンプリングすることで、入力された画像データの所定面積あたりの濃度が保存されるようにしている。
【００８８】
（フィルタ処理の具体例）
本実施例の座標変換を行った後の座標位置に基づいて、式（２３）の線形補間によるフィルタ関数で畳み込み演算を用いたフィルタ処理を行う具体例を、図１２を用いて説明する。尚、畳み込み演算を用いたフィルタ処理は、フィルタ処理部５０１により実行される。図１２（ａ）〜図１２（ｄ）は、図７（ａ）〜図７（ｄ）に対応している。図１２の左側の列は、上述した座標変換後の入力画素を示している。また、図１２の右側の列は、上述した座標変換後の感光ドラム１０２上の走査位置を示している。即ち、図１２の右側の列の走査位置が、均等な間隔で、且つ、距離１となるように座標変換されている。
【００８９】
より詳細には、座標変換後の入力画素の副走査方向の走査位置は、図８、図１０の右側に示す座標変換後のグラフの一点鎖線で示す直線（ｙ’＝ｆｓ’（ｎ））で表される。座標変換後の感光ドラム１０２上の走査位置は、図８、図１０の右側に示す座標変換後のグラフの実線で示す直線（ｙ’＝ｆｔ’（ｎ））で表される。例えば、図８（ａ）では、シフト量が＋０．２（＝Ｓ）であるため、座標変換後は、ｆｓ’（ｎ）＝ｙ−０．２＝ｎ−０．２で表される。
【００９０】
また、図１２では、画素値、即ち濃度値の大きさを丸の濃淡で示している。また、括弧内の数字は走査ラインの番号であり、図７に記載した画素番号と同じである。図１２の中央のグラフは、横軸に濃度、縦軸に副走査方向の位置を示している。畳み込み演算は、入力画素の各座標位置を中心としたフィルタ関数（図１１（ａ））に画素値を乗算した波形Ｗ（画素（１）〜（５）に対するＷ１〜Ｗ５）を展開し、重ね合わせて加算したものである。
【００９１】
図１２（ａ）から順に説明する。白丸で示す画素（１）、（５）は濃度０、即ち画素値０である。このため、フィルタ関数に画素値を乗じたＷは、それぞれＷ１＝０、Ｗ５＝０である。黒丸で示す画素（２）、（３）、（４）の濃度は等しく、Ｗ２、Ｗ３、Ｗ４の波形の最大値は等しくなり、入力画素の画素位置を中心にフィルタ関数を展開した波形となる。畳み込み演算の結果は、全ての波形の総和（ΣＷｎ、ｎ＝１〜５）である。
【００９２】
出力画素の画素値は、走査位置を座標変換した後の感光ドラム１０２上の走査位置でサンプルする。このため、例えば感光ドラム１０２上の走査位置に対応する画素値（１）は、波形Ｗ２と点Ｐ０で交わるので、濃度Ｄ１と演算される。また、画素値（２）は、波形Ｗ２と点Ｐ２で、波形Ｗ３と点Ｐ１でそれぞれ交わるので、濃度Ｄ１＋Ｄ２と演算される。以下、同様に画素値（３）〜（５）を求める。尚、画素値（５）は、どの波形とも交わらないので、画素値を０とする。また、図１２（ｂ）〜図１２（ｄ）の（１）〜（５）の画素値を演算した結果を、各右側の列の画素の濃淡で示している。
【００９３】
入力画素の位置ずれは、図１２の縦軸の各画素に対応して示している。図１２の縦軸に示す位置ずれ量は、上述した入力画像の画素の副走査方向の走査位置の座標変換に従い、逆関数で求めた位置ずれ量の情報である。例えば、図１２（ａ）の場合、図８（ａ）で説明したように、走査ラインの位置ずれ量Ｓの補正量Ｃは、−０．２である。また、例えば、図１２（ｃ）は式（２１）、図１２（ｄ）の場合は式（２２）をそれぞれ用いて算出した補正量Ｃである。
【００９４】
図１２（ａ）は、副走査方向の進み方向に走査ラインの走査位置がずれているが、画素値は逆の遅れ方向に重心がずれることとなるので、画素値の重心の位置が補正されている様子を示している。図１２（ｂ）は、副走査方向の戻り方向に走査ラインの走査位置がずれているが、画素値は逆の進み方向に重心がずれることとなるので、画素値の重心の位置が補正されている様子を示している。図１２（ｃ）は、走査位置の間隔が密な場合で、座標変換後の畳み込み演算によって濃度の分布が拡がり、濃度の局所的な集中をキャンセルして局所的な濃度変化を補正している様子を示している。また、図１２（ｄ）は、逆に走査位置の間隔が疎な場合で、座標変換後の畳み込み演算によって濃度の分布が縮まり、濃度の分散をキャンセルして局所的な濃度変化を補正している様子を示している。特に、図１２（ｄ）の（３）の画素値は、１００％より濃い（１００＋α）％の濃度となっている。
【００９５】
（フィルタ処理）
図６の説明に戻る。図６のＳ３６０４でＣＰＵ３０３は、Ｓ３６０３で生成した補正用属性情報に基づき、フィルタ処理部５０１によりフィルタ処理を行う。詳細には、ＣＰＵ３０３は、上述した入力画像への畳み込み演算と再サンプリングを行う。ここで、ＣＰＵ３０３が実行するＳ３６０４の処理を示した図１３のフローチャートを用いて詳細に説明する。ＣＰＵ３０３は、フィルタ処理部５０１により畳み込み演算によるフィルタ処理をスタートすると、Ｓ３７０３以降の処理を実行する。Ｓ３７０３でＣＰＵ３０３は、畳み込み関数の拡がりをＬとしたとき、注目する出力画像のラインｙｎの副走査位置の前後±Ｌ、即ち幅２Ｌの範囲（（ｙｎ−Ｌ）〜（ｙｎ＋Ｌ）の範囲）に含まれる入力画像のラインを抽出する。ここで、Ｌは畳み込み関数の＋Ｌ〜−Ｌの範囲外は畳み込み関数の値が０になる最小の値と定義する。例えば、図１１（ａ）の線形補間では、Ｌ＝１、図１１（ｂ）のバイキュービック補間はＬ＝２、図１１（ｃ）のバイキュービック補間はＬ＝３である。式（１８）を用い、対応する入力画像の範囲ｙｍｉｎ〜ｙｍａｘのｙｍｉｎ、ｙｍａｘは以下の条件を満たす。
【００９６】
ｆｔ−１（ｙｍｉｎ）＝ｙｎ−Ｌ、ｆｔ−１（ｙｍａｘ）＝ｙｎ＋Ｌ・・・式（２６）
式（２６）を変形することにより、ｙｍｉｎ、ｙｍａｘは、以下の式（２７）から求められる。
【００９７】
ｙｍｉｎ＝ｆｔ（ｙｎ−Ｌ）、ｙｍａｘ＝ｆｔ（ｙｎ＋Ｌ）・・・式（２７）
従って、注目する出力画像のラインｙｎに対して抽出される入力画像のラインは、ｙｍｉｎ〜ｙｍａｘの範囲の全ての整数のラインとなる。
【００９８】
注目する出力画像のラインｙｎと畳み込み演算の対象になる入力画像のラインをｙｍとしたとき、距離ｄｎｍは、以下の式（２８）で表される。
【００９９】
ｄｎｍ＝ｙｎ−ｆｔ−１（ｙｍ）・・・式（２８）
従って、Ｓ３７０４でＣＰＵ３０３は、フィルタ係数設定部５０４により、畳み込み関数ｇ（ｙ）として係数ｋｎｍを、以下の式（２９）で求める。
【０１００】
ｋｎｍ＝ｇ（ｄｎｍ）・・・式（２９）
Ｓ３７１３でＣＰＵ３０３は、８ラインの処理の先頭のラインか否か、より詳細には、現在の走査ラインｙを８で除した余り（ｙ％８、％は剰余算を意味する）が１か否かを判断する。Ｓ３７１３でＣＰＵ３０３は、現在の走査ラインが８ラインのうちの先頭のラインであると判断した場合、Ｓ３７１４で走査毎処理を行う。尚、Ｓ３７１４の処理は図１４を用いて後述する。Ｓ３７１３でＣＰＵ３０３は、現在の走査ラインが８ラインのうちの先頭のラインではないと判断した場合、Ｓ３７０５の処理に進む。
【０１０１】
Ｓ３７０５でＣＰＵ３０３は、ＢＤ信号を受信したときにスタートさせた内蔵のタイマを参照することにより、時間Ｔ１が経過したか否かを判断する。ここで、時間Ｔ１は、ＢＤ信号が出力されたタイミングから、レーザ光が感光ドラム１０２の主走査方向における画像領域の先端に到達するタイミングまでの時間である。Ｓ３７０５でＣＰＵ３０３は、時間Ｔ１が経過していないと判断した場合、Ｓ３７０５の処理に戻り、時間Ｔ１が経過したと判断した場合、Ｓ３７０６の処理に進む。Ｓ３７０６でＣＰＵ３０３は、主走査方向の位置ｘを初期化（１にセット）する。Ｓ３７０７でＣＰＵ３０３は、Ｓ３７０３で抽出した入力画像の副走査方向の位置と、注目する主走査方向の位置ｘの画素データを取得する。ここで、画素データを入力画素データＰｉｎｍとする。Ｓ３７０８でＣＰＵ３０３は、フィルタ処理部５０１により畳み込み演算を行う。より詳細には、フィルタ処理部５０１は、Ｓ３７０４で求めた対応する係数ｋｎｍと、Ｓ３７０７で取得した入力画素データＰｉｎｍを積和演算して、注目画素の値Ｐｏｕｔｎを求める。尚、入力画素データＰｉｎｍは、フィルタ処理前の注目画素の濃度、注目画素の値Ｐｏｕｔｎは、出力画素データであり、フィルタ処理後の注目画素の濃度である。
【０１０２】
0006611510.tif 000005
【０１０３】
ここで、式（３０）は、図１２に対応しており、図１１の左側の丸の濃さ（濃度）は、入力画素データＰｉｎｍに対応し、図１２（ａ）のＤ１やＤ２は、ｋｎｍ×Ｐｉｎｍに対応し、図１２の右側の丸の濃さ（濃度）は、Ｐｏｕｔｎに対応している。
【０１０４】
Ｓ３７０９でＣＰＵ３０３は、主走査方向の位置ｘに１を加算する。Ｓ３７１０でＣＰＵ３０３は、１ラインが終了したか否か、即ち１ラインの最後の画素まで達したか否かを判断し、１ラインが終了していないと判断した場合はＳ３７０７の処理に戻り、１ラインが終了したと判断した場合は、フィルタ処理を終了する。このように、本実施例では、マルチビームの位置のばらつきや回転多面鏡２０４のミラー面の面倒れなどによる照射位置のずれによる画像の歪みや濃度むらを、入力画像の副走査方向の位置ずれのプロファイルに基づき入力画像の画素位置を座標変換する。その後、フィルタ処理、及びサンプリングすることで、各入力画素の濃度を保存しながら、位置ずれ、及びバンディングなどの局所的な濃度の偏りをキャンセルすることができ、良好な画像を得ることができる。
【０１０５】
（感光ドラムの速度むらを加味した位置ずれ量の算出）
Ｓ３７１４の走査毎処理の詳細を図１４で説明する。図１４は、ＣＰＵ３０３が実行する位置ずれ量を算出する処理を示すフローチャートである。ＣＰＵ３０３は、画像形成時にＢＤ信号を検知してから所定時間Ｔ１が経過するまでの間に（図５参照）、走査ライン毎に位置ずれ量の算出を行い、１走査に１回の頻度で図１４に示す制御が実行される。Ｓ７００２でＣＰＵ３０３は、ＢＤ２０７からＢＤ信号が入力されたか否かを判断する。Ｓ７００２でＣＰＵ３０３は、ＢＤ信号が入力されたと判断した場合は、ＢＤ信号の周期である時間間隔を計測している不図示のタイマを停止し、タイマ値を読み出し、内部レジスタに保存する。そして、ＣＰＵ３０３は、次のＢＤ信号を受信するまでの時間間隔を計測するため、不図示のタイマをリセットしてスタートさせ、Ｓ７００３の処理に進む。尚、ＣＰＵ３０３が不図示のタイマを２つ以上有している場合には、ＢＤ信号を受信する度に異なるタイマを交互に使用して、時間測定を行うようにしてもよい。また、ここでは、計測されたＢＤ信号の時間間隔をＣＰＵ３０３の内部レジスタに保存しているが、例えばＣＰＵ３０３の不図示のＲＡＭメモリに保存するようにしてもよい。Ｓ７００２でＣＰＵ３０３は、ＢＤ信号が入力されていないと判断した場合は、ＢＤ信号が入力されるのを待つために、Ｓ７００２の制御を繰り返す。
【０１０６】
Ｓ７００３でＣＰＵ３０３は、ロータリーエンコーダ３０１から感光ドラム１０２の回転速度データを読み出す。Ｓ７００４でＣＰＵ３０３は、内部レジスタに保存されたＢＤ信号の時間間隔に基づいて、印字速度Ｖｐｒを算出する。尚、印字速度Ｖｐｒは、レーザ光源２０１のビーム数と走査ラインの間隔とを乗じた値をΔＴ（ＢＤ信号の時間間隔）で除すことにより算出される。例えば、本実施例の場合、ビーム数は８、走査ラインの間隔は２１．１６μｍ（解像度１２００ｄｐｉ）であるため、Ｖｐｒ＝（８×２１．１６μｍ）／ΔＴとなる。回転多面鏡２０４の回転速度Ｖｐは、印字速度Ｖｐｒと比例関係にあるため、算出した印字速度Ｖｐｒに基づき求めることができる。Ｓ７００５でＣＰＵ３０３は、Ｓ７００３で読み出した感光ドラム１０２の回転速度と、Ｓ７００４で算出した回転多面鏡２０４の回転速度から、位置ずれ量Ａを算出する。位置ずれ量Ａの算出方法は以降で詳しく説明する。
【０１０７】
Ｓ７００６でＣＰＵ３０３は、メモリ３０２から回転多面鏡２０４の面情報（表１のＹ１〜Ｙ５）とビーム位置情報（表１のＸ１〜Ｘ７）を読み出す。Ｓ７００７でＣＰＵ３０３は、Ｓ７００６で読み出した面情報とビーム位置情報より、式（２）を用いて位置ずれ量Ｂ（＝Ｚｍｎ）を算出する。Ｓ７００８でＣＰＵ３０３は、Ｓ７００５で算出した位置ずれ量ＡとＳ７００７で算出した位置ずれ量Ｂを加算して、位置ずれ量の総和（合計値）を算出する。Ｓ７００９でＣＰＵ３０３は、Ｓ７００８で算出した合計の位置ずれ量をＣＰＵ３０３の内部レジスタに保持する。ここで、レジスタに保持された位置ずれ量は、上述したフィルタ処理時に読み出されて演算に用いられる。
【０１０８】
（位置ずれ量の算出）
Ｓ７００５でＣＰＵ３０３が算出する位置ずれ量Ａの計算式について詳しく説明する。感光ドラム１０２の回転速度をＶｄ、回転多面鏡２０４の回転速度をＶｐ、１走査時間をΔＴ（図５参照）とすると、感光ドラム１０２の回転速度Ｖｄと回転多面鏡２０４の回転速度Ｖｐの速度差から生じる位置ずれ量Ａは以下の式（３１）から算出される。
【０１０９】
Ａ＝（Ｖｄ−Ｖｐ）×ΔＴ・・・式（３１）
ここで、ΔＴはＢＤ信号の出力タイミングの間隔に対応した時間であり、位置ずれ量Ａは、感光ドラム１０２の回転速度Ｖｄと回転多面鏡２０４の回転速度Ｖｐとの差によって、１走査期間の間に移動する走査ラインの位置ずれ量を示す。ここで、上述したように、回転多面鏡２０４の回転速度Ｖｐは、印字速度Ｖｐｒに基づき求められる。そして、印字速度Ｖｐｒは、１走査時間ΔＴと、マルチビーム数（本実施例では８ビーム）の関係から、式（３２）、式（３３）によって決まる。
【０１１０】
Ｖｐ＝ビーム数×２１．１６÷ΔＴ・・・式（３２）
ΔＴ＝１÷（回転多面鏡２０４のミラー面数×回転多面鏡２０４の１秒間あたりの回転数）・・・式（３３）
副走査方向の基準位置からｎ番目の走査ラインの、感光ドラム１０２の速度むらに起因する位置ずれをＡｎとしたとき、副走査方向の位置ずれは各走査の位置ずれの累積で表される。また、副走査方向の基準位置からｎ番目の走査ラインの回転多面鏡２０４の面情報、ビーム情報に基づく位置ずれ量をＢｎとしたとき、ｎ番目の走査ラインの副走査方向の位置ｙは、以下のように表される。
【０１１１】
0006611510.tif 000006
【０１１２】
式（３４）の左辺のｙは、ｎが整数のときだけ定義されている、即ち、離散的な関数である。しかし、本実施例では、整数から求められる各ｙの間を線形補間により補間して連続的な関数ｙ＝ｆｔ（ｎ）として扱う。本実施例では、ハードウェアの簡易化のために線形補間を用いているが、ラグランジュ補間、スプライン補間など、他の方法で関数の補間をしてもよい。
【０１１３】
本実施例における画素番号ｎ０、ｎ０＋１に対して、副走査方向の画素位置をｙｎ０、ｙｎ０＋１としたとき、副走査方向の画素位置ｙｎ０〜ｙｎ０＋１の範囲の連続関数への変換の式を以下に示す。
【０１１４】
ｙ＝ｙｎ０×（１−ｎ＋ｎ０）＋ｙｎ０＋１×（ｎ−ｎ０）・・・式（３５）
尚、図１４の処理は、１走査、即ち８ビーム（８走査ライン）に１回行われる処理であるため、Ｓ７００６〜Ｓ７００８では８ビーム分の位置ずれ量をまとめて演算して、Ｓ７００９では演算した８ビーム分の位置ずれ量を全て保持する。
【０１１５】
尚、感光ドラム１０２の回転速度データをロータリーエンコーダ３０１によりリアルタイムに取得して位置ずれ補正にフィードバックした。しかし、予め測定した速度変動データプロファイルをメモリ３０２に記憶し、記憶したプロファイルに従って位置ずれを補正してもよい。また、リアルタイムに位置ずれ情報を取得する場合、遅れ制御になるが、そのまま位置ずれの補正に用いてもよい。この場合、遅れ制御による影響を防ぐため、位置ずれの変動量に対して高域成分など特定の周波数成分をフィルタ処理して位置ずれの補正に用いてもよい。
【０１１６】
また、本実施例の補間方式として用いた線形補間、バイキュービック補間以外にも、Ｓｉｎｃ関数に所望のサイズの窓関数をかけた補間や、目的のフィルタ特性に合わせた畳み込み関数を決定して補間処理を行ってもよい。また、出力の画素やラインの間隔が歪む画像出力方式や画像出力装置であれば、ＬＥＤ露光方式、あるいは電子写真方式に限らず、本発明を適用することが可能である。また、本実施例において、式（１７）や式（１８）に従い入力画像の画素の位置を補正して補間処理を行ったが、目的の補正精度に応じて式（１７）や式（１８）を近似した関数を選択して補正に用いてもよい。更に、制御部としてＣＰＵ３０３を用いる構成を説明したが、例えば、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等を用いる構成としてもよい。
【０１１７】
＜画像データの第２の補正＞
次に、本実施例の第２の補正処理について説明する。画像データを付加して画像重心を移動させることによりバンディングを補正する場合に、リニアリティ不良が発生すると、付加する画像データの露光量に誤差が生じ、画像の重心移動量にも誤差が発生する。そのため、本実施例の第２の補正処理では、第１の補正処理で出力された画素の画像データ（画素値）が所定の値以上になるように、主走査方向に移動させて画像データを補正する処理である。
【０１１８】
第２の補正処理の詳細を図１５のフローチャートに従い説明する。図１５は、副走査方向の走査線１ラインごとにＣＰＵ３０３が実行する制御シーケンスを示すフローチャートである。本実施例で使用されるレーザ光源２０１は、８つの発光素子を有するマルチビームレーザ光源であり、１回の走査で８本の走査ラインが形成される。従って、図１５の処理は、各走査ラインについて同時に並行して実行されるものとする。また、図１５の処理は、主走査方向の１画素ずつについて順次処理が行われ、その都度、該当する画素について前述したフィルタ処理（畳み込み処理）が行われるものとする。ＣＰＵ３０３は、図５においてＢＤ信号を受信してから時間Ｔ１が経過したことを検知すると、図１５の処理を実行する。
【０１１９】
Ｓ１００１では、ＣＰＵ３０３は、持ち越しデータＭＤＡＴＡに０を設定（ＭＤＡＴＡ＝０）し、画素カウンタＮに０を設定（Ｎ＝０）する。ここで、持ち越しデータＭＤＡＴＡは、光量不足により単独では発光しない光量不安定領域のレーザ光量に対応するパルス幅を指定する画像データ（画素値）（図２０参照）を主走査方向の周辺画素に加算する際に、一時的に画素値を保持するための変数である。また、画素カウンタＮは、主走査方向の画素番号に対応する変数である。Ｓ１００２では、ＣＰＵ３０３は、画素カウンタＮにより指定される画素に対して、前述したフィルタ処理演算を行い、画像重心を移動させるための画像データ（画素値）を求める。なお、以下ではフィルタ処理を行う前（補正前）の該当画素の画素値を処理前画素値ｐｉｘとし、フィルタ処理を行った後の該当画素の画素値を処理後画素値Ｆｐｉｘという。
【０１２０】
Ｓ１００３では、ＣＰＵ３０３は乱数処理を行うかどうかを判断し、乱数処理を行うと判断した場合にはＳ１００４に進み、乱数処理を行わないと判断した場合にはＳ１００５に進む。本実施例においては、例えば工場での光走査装置１０４の調整工程において、不図示のユーザインターフェイス部から、乱数処理を行うかどうかを指示するデータがメモリ３０２に格納されるものとする。ＣＰＵ３０３は、メモリ３０２から乱数処理の要否を指示するデータを読み出し、読み出したデータに応じて乱数処理の要否を判断する。Ｓ１００４では、ＣＰＵ３０３は、ＰＷＭ信号に対するレーザ光量のリニアリティを判定する閾値Ｌの初期値に乱数処理により発生させた値（本実施例では、１以上の整数値）を加算する。ここで、閾値Ｌは、ＰＷＭ信号においてリニアリティ不良となる画像データの画素値（例えば、図２０（ｂ）のＰＷＭ信号のパルス幅が１〜４の場合）より高い値となるように予め設定された画素値を示す変数である。閾値Ｌに乱数を加算し、閾値Ｌを可変することにより、フィルタ処理により生成された画素の画像データ（画素値）が特定の周期成分を有することを防止し、これによりモアレ等が発生することを防ぐことができる。
【０１２１】
Ｓ１００５では、ＣＰＵ３０３は、該当画素のフィルタ処理後の画像データである処理後画素値Ｆｐｉｘが、フィルタ処理前の画像データである処理前画素値ｐｉｘよりも大きいかどうかを判断する。ＣＰＵ３０３は、処理後画素値Ｆｐｉｘが、フィルタ処理前の画像データである処理前画素値ｐｉｘよりも大きい（Ｆｐｉｘ＞ｐｉｘ）と判断した場合にはＳ１００６の処理に進む。一方、ＣＰＵ３０３は、処理後画素値Ｆｐｉｘが、フィルタ処理前の画像データである処理前画素値ｐｉｘよりも大きくない（Ｆｐｉｘ≦ｐｉｘ）と判断した場合にはＳ１０１１の処理に進む。
【０１２２】
Ｓ１００６では、ＣＰＵ３０３は、処理後画素値Ｆｐｉｘと持ち越しデータＭＤＡＴＡの和が、ＰＷＭ信号の最大発光光量である濃度最大値ＤＡＴＡｍａｘより大きいかどうかを判断する。ＣＰＵ３０３は、処理後画素値Ｆｐｉｘと持ち越しデータＭＤＡＴＡの和が、ＰＷＭ信号の最大発光光量である濃度最大値ＤＡＴＡｍａｘより大きい（Ｆｐｉｘ＋ＭＤＡＴＡ＞ＤＡＴＡｍａｘ）と判断した場合には、Ｓ１００７の処理に進む。一方、ＣＰＵ３０３は、処理後画素値Ｆｐｉｘと持ち越しデータＭＤＡＴＡの和が、ＰＷＭ信号における最大発光光量である濃度最大値ＤＡＴＡｍａｘよりも大きくない（Ｆｐｉｘ＋ＭＤＡＴＡ≦ＤＡＴＡｍａｘ）と判断した場合には、Ｓ１００８の処理に進む。ここで、例えば図２０（ｂ）のＰＷＭ信号のように４ビットで表現する場合には、濃度最大値ＤＡＴＡｍａｘは１６となる。
【０１２３】
Ｓ１００７では、ＣＰＵ３０３は、処理後画素値Ｆｐｉｘ、及び持ち越しデータＭＤＡＴＡに、以下に示すデータを設定する。即ち、ＣＰＵ３０３は、下記の式（３７）により、処理後画素値Ｆｐｉｘに濃度最大値ＤＡＴＡｍａｘを設定し、下記の式（３６）により、持ち越しデータＭＤＡＴＡに濃度最大値ＤＡＴＡｍａｘよりも超過した分（オーバーフロー分）を設定する。
【０１２４】
ＭＤＡＴＡ＝Ｆｐｉｘ＋ＭＤＡＴＡ−ＤＡＴＡｍａｘ・・・式（３６）
Ｆｐｉｘ＝ＤＡＴＡｍａｘ・・・式（３７）
Ｓ１００８では、ＣＰＵ３０３は、処理後画素値Ｆｐｉｘと持ち越しデータＭＤＡＴＡの和が、前述した閾値Ｌより大きいかどうかを判断する。ＣＰＵ３０３は、処理後画素値Ｆｐｉｘと持ち越しデータＭＤＡＴＡの和が、前述した閾値Ｌより大きい（Ｆｐｉｘ＋ＭＤＡＴＡ＞閾値Ｌ）と判断した場合には、Ｓ１００９の処理に進む。一方、ＣＰＵ３０３は、処理後画素値Ｆｐｉｘと持ち越しデータＭＤＡＴＡの和が、前述した閾値Ｌよりも大きくない（Ｆｐｉｘ＋ＭＤＡＴＡ≦閾値Ｌ）、即ち所定値である閾値Ｌ以下（所定値以下）と判断した場合には、Ｓ１０１０の処理に進む。
【０１２５】
Ｓ１００９では、ＣＰＵ３０３は、処理後画素値Ｆｐｉｘ、及び持ち越しデータＭＤＡＴＡに、以下に示すデータを設定する。即ち、ＣＰＵ３０３は、下記の式（３８）により、処理後画素値Ｆｐｉｘに持ち越しデータＭＤＡＴＡを加算し、下記の式（３９）により、持ち越しデータＭＤＡＴＡには０を設定する。
【０１２６】
Ｆｐｉｘ＝Ｆｐｉｘ＋ＭＤＡＴＡ・・・式（３８）
ＭＤＡＴＡ＝０・・・式（３９）
Ｓ１０１０では、ＣＰＵ３０３は、処理後画素値Ｆｐｉｘ、及び持ち越しデータＭＤＡＴＡに、以下に示すデータを設定する。即ち、ＣＰＵ３０３は、下記の式（４０）により、持ち越しデータＭＤＡＴＡに処理後画素値Ｆｐｉｘを加算し、下記の式（４１）により、処理後画素値Ｆｐｉｘには０を設定する。
【０１２７】
ＭＤＡＴＡ＝ＭＤＡＴＡ＋Ｆｐｉｘ・・・式（４０）
Ｆｐｉｘ＝０・・・式（４１）
Ｓ１０１１では、ＣＰＵ３０３は、画素カウンタＮをインクリメント（Ｎ＝Ｎ＋１）し、Ｓ１０１２の処理に進む。Ｓ１０１２では、ＣＰＵ３０３は、画素カウンタＮを参照し、１走査ラインの最大画素数かどうか（１ライン終了）を判断する。ＣＰＵ３０３は、画素カウンタＮの値が１ライン画素数に達していると判断した場合には処理を終了し、１ライン画素数に達しないと判断した場合は、Ｓ１００２の処理に戻る。
【０１２８】
ここで、１２００ｄｐｉの解像度でＡ４サイズ（主走査方向の長さが２９７ｍｍ）の用紙に画像形成を行う場合、１画素の幅は２１．１６μｍなので、１ラインの画素数は約１４０００画素となる。上述した図１５の一連の処理により、主走査方向の画素１〜１４０００画素について順次、処理が行われる。図１５のフローチャートに示すフローにより、処理後画素値Ｆｐｉｘと持ち越しデータＭＤＡＴＡの和が、リニアリティ判定のための閾値Ｌより大きい場合、処理後画素値Ｆｐｉｘと持ち越しデータＭＤＡＴＡの和となる画像データが生成される（Ｓ１００９）。一方、処理後画素値Ｆｐｉｘと持ち越しデータＭＤＡＴＡの和が閾値Ｌより小さい場合には、処理後画素値Ｆｐｉｘは持ち越しデータＭＤＡＴＡに加算され、主走査方向の下流側に位置する隣の画素に持ち越すように処理される（Ｓ１０１０）。このため、図１５の処理において、リニアリティ判定のための閾値Ｌより画素値が小さい画素については、画像生成されることはない。また、Ｓ１００５でフィルタ処理が行われた後の画素値Ｆｐｉｘが、フィルタ処理前の画素値ｐｉｘより大きい場合に、Ｓ１００６〜Ｓ１０１０の制御、即ちリニアリティ不良となる画像データの画像形成を行わない制御が実行される。これによって、フィルタ処理により新たに生成された画像に対して選択的にＳ１００６〜Ｓ１０１０の処理が実行されることになる。その結果、フィルタ処理する以前から存在した画像データに対しては、図１５では補正処理が行われないことから、可能な限り元の画像を維持することが可能となる。また、Ｓ１００４において閾値Ｌに乱数を加算することで、生成される処理後画素値Ｆｐｉｘが特定の周期成分を有することを防ぎ、モアレ等の発生を防ぐことが可能となる。
【０１２９】
続いて、図１６を用いて、図１５の処理を具体的に説明する。図１６（ａ）〜（ｄ）は、１ライン（１走査ライン）の画素数が１１（Ｎ＝０〜Ｎ＝１０）、副走査方向の走査ラインが６（１ライン〜６ライン）からなる画像データを示している。各図において、表中の欄において、空欄は画素値が０の画像データであることを示す。図１６（ａ）は、フィルタ処理前の画像データ（画素値）の例であり、ここでは、３ライン目、４ライン目のみ画像形成すべき画像データがある。図１６（ｂ）は、図１６（ａ）のデータに対して、図１５のＳ１００２のフィルタ処理により表中の下方向に画像の重心を移動した場合の画像データを示している。図１６（ｂ）では、図１６（ａ）と比べて、３ライン目の全画素の画素値が１５から１３に２減少し、５ライン目の全画素の画素値が０から２に２増加し、４ライン目の全画素の画素値については、１５のままで変化していない。
【０１３０】
図１６（ｃ）は、図１５において、閾値Ｌ＝４、最大濃度値ＤＡＴＡｍａｘ＝１６、Ｓ１００３で乱数加算をしないと選択した場合の処理結果を示す表であり、閾値Ｌ以下の画素の画像データ（画素値）を主走査方向に加算した場合の画像データを示している。フィルタ処理後の画像データ（図１６（ｂ））の１ライン〜４ライン、及び６ラインの各画素の画像データ（画素値）は、フィルタ処理を行う前の画像データ（図１６（ａ））と比べ、同じ値か、小さい値となっている。従って、１ライン〜４ライン、及び６ラインの各画素の画像データについては、図１５のＳ１００５の判断でＮＯ（図中、Ｎで表示）と判断される。そのため、図１６（ｃ）の１ライン〜４ライン、及び６ラインの各画素の画像データ（画素値）は、フィルタ処理後の画像データ（図１６（ｂ））と同じデータ値が設定される。
【０１３１】
一方、図１６（ｂ）に示す５ライン目の各画素のフィルタ処理後の画像データ値２については、図１６（ａ）に示すフィルタ処理前の画像データ値０よりも増加しているため、図１５のＳ１００６〜Ｓ１０１０の処理が実行される。即ち、Ｎ＝０の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝０であり、Ｓ１０１０が実行され、Ｎ＝０のＦｐｉｘには０が設定され、ＭＤＡＴＡには２が設定される。Ｎ＝１の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝２であり、Ｓ１０１０が実行され、Ｎ＝１のＦｐｉｘには０が設定され、ＭＤＡＴＡには４（＝２＋２）が設定される。Ｎ＝２の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝４であり、Ｓ１００９が実行され、Ｎ＝２のＦｐｉｘには６（＝２＋４）が設定され、ＭＤＡＴＡには０が設定される。Ｎ＝３の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝０であり、Ｓ１０１０が実行され、Ｎ＝３のＦｐｉｘには０が設定され、ＭＤＡＴＡには２が設定される。Ｎ＝４の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝２であり、Ｓ１０１０が実行され、Ｎ＝４のＦｐｉｘには０が設定され、ＭＤＡＴＡには４（＝２＋２）が設定される。Ｎ＝５の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝４であり、Ｓ１００９が実行され、Ｎ＝５のＦｐｉｘには６（＝２＋４）が設定され、ＭＤＡＴＡには０が設定される。Ｎ＝６〜Ｎ＝１０についても、Ｎ＝０〜Ｎ＝４で実行された処理が行われる。５ライン目については、フィルタ処理により発生した画像データ値（画素値）が２に対して、各画素のデータ値を主走査方向（図中、右方向）に加算し、データ値が閾値Ｌ（＝４）より大きい値となった画素で０でない画像データ値を設定し、露光量を決定する。
【０１３２】
図１６（ｄ）は、図１５において、閾値Ｌ＝４、最大濃度値ＤＡＴＡｍａｘ＝１６、Ｓ１００３で乱数加算をすると選択した場合の処理結果を示す表であり、閾値Ｌ以下の画素の画像データ（画素値）を主走査方向に加算した場合の画像データを示している。上述した図１６（ｃ）と同様に、１ライン〜４ライン、及び６ラインの各画素の画像データについては、図１５のＳ１００５の判断でＮＯ（図中、Ｎで表示）と判断される。そのため、図１６（ｄ）の１ライン〜４ライン、及び６ラインの各画素の画像データ（画素値）は、フィルタ処理後の画像データ（図１６（ｂ））と同じデータ値が設定される。
【０１３３】
一方、図１６（ｂ）に示す５ライン目の各画素のフィルタ処理後の画像データ値２については、図１６（ａ）に示すフィルタ処理前の画像データ値０よりも増加しているため、図１５のＳ１００６〜Ｓ１０１０の処理が実行される。図１６（ｄ）では、乱数加算を選択しているため、乱数加算による閾値Ｌの変化を表した図１７を用いて、図１６（ｄ）の５ライン目の画像データ（画素値）について説明する。図１７において、Ｎは画素ＮＯ（０〜１０）を示す。閾値Ｌの列に示す数値は、閾値Ｌの初期値（＝４）に乱数加算を行い、得られた閾値Ｌを示し、括弧内の数値は加算された乱数を示す。Ｆｐｉｘ＋ＭＤＡＴＡの列は、画素Ｎに対応した処理後画素値Ｆｐｉｘと持ち越しデータＭＤＡＴＡの和を示す。また、処理後のＦｐｉｘは、図１５の処理を実行した結果、設定される各画素の処理後画素値Ｆｐｉｘを示す。以下、図１７を参照しながら、図１５における処理について説明する。Ｎ＝０の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝０であり、Ｆｐｉｘ＋ＭＤＡＴＡ＝２となり、閾値Ｌ＝５なので、Ｓ１０１０が実行され、Ｎ＝０のＦｐｉｘには０が設定され、ＭＤＡＴＡには２が設定される。Ｎ＝１の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝２であり、Ｆｐｉｘ＋ＭＤＡＴＡ＝４となり、閾値Ｌ＝５なので、Ｓ１０１０が実行され、Ｎ＝１のＦｐｉｘには０が設定され、ＭＤＡＴＡには４（＝２＋２）が設定される。Ｎ＝２の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝４であり、Ｆｐｉｘ＋ＭＤＡＴＡ＝６となり、閾値Ｌ＝８なので、Ｓ１０１０が実行され、Ｎ＝２のＦｐｉｘには０が設定され、ＭＤＡＴＡには６（＝４＋２）が設定される。Ｎ＝３の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝６であり、Ｆｐｉｘ＋ＭＤＡＴＡ＝８となり、閾値Ｌ＝７なので、Ｓ１００９が実行され、Ｎ＝３のＦｐｉｘには８が設定され、ＭＤＡＴＡには０が設定される。
【０１３４】
Ｎ＝４の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝０であり、Ｆｐｉｘ＋ＭＤＡＴＡ＝２となり、閾値Ｌ＝６なので、Ｓ１０１０が実行され、Ｎ＝４のＦｐｉｘには０が設定され、ＭＤＡＴＡには２が設定される。Ｎ＝５の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝２であり、Ｆｐｉｘ＋ＭＤＡＴＡ＝４となり、閾値Ｌ＝７なので、Ｓ１０１０が実行され、Ｎ＝５のＦｐｉｘには０が設定され、ＭＤＡＴＡには４（＝２＋２）が設定される。Ｎ＝６の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝４であり、Ｆｐｉｘ＋ＭＤＡＴＡ＝６となり、閾値Ｌ＝５なので、Ｓ１００９が実行され、Ｎ＝６のＦｐｉｘには６が設定され、ＭＤＡＴＡには０が設定される。
【０１３５】
Ｎ＝７の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝０であり、Ｆｐｉｘ＋ＭＤＡＴＡ＝２となり、閾値Ｌ＝６なので、Ｓ１０１０が実行され、Ｎ＝７のＦｐｉｘには０が設定され、ＭＤＡＴＡには２が設定される。Ｎ＝８の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝２であり、Ｆｐｉｘ＋ＭＤＡＴＡ＝４となり、閾値Ｌ＝５なので、Ｓ１０１０が実行され、Ｎ＝８のＦｐｉｘには０が設定され、ＭＤＡＴＡには４（＝２＋２）が設定される。Ｎ＝９の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝４であり、Ｆｐｉｘ＋ＭＤＡＴＡ＝６となり、閾値Ｌ＝７なので、Ｓ１０１０が実行され、Ｎ＝９のＦｐｉｘには０が設定され、ＭＤＡＴＡには６（＝４＋２）が設定される。Ｎ＝１０の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝６であり、Ｆｐｉｘ＋ＭＤＡＴＡ＝８となり、閾値Ｌ＝６なので、Ｓ１００９が実行され、Ｎ＝１０のＦｐｉｘには８が設定され、ＭＤＡＴＡには０が設定される。以上説明したように、図１６（ｄ）では、図１７に示すように閾値Ｌが乱数加算により変化することで、加算後の画像データ値（画素値）である露光量はランダムな値となる。
【０１３６】
以上説明したように、本実施例によれば、画像の歪みや濃度むらを補正するとともに、リニアリティ不良による濃度変動の発生を防ぎ、良好な画質を得ることができる。本実施例では、画像重心移動させるために付加する画像データ（画素値）が、予め設定したデータ量（閾値）以上となるように制御する。これにより、リニアリティ不良の発生する細いパルス幅による発光を行わず、安定的に発光制御可能なパルス幅で付加する画像を形成するため、リニアリティ不良による画像重心移動量の誤差や、濃度変動の発生を防ぐことが可能となる。また、感光ドラムの回転速度変動によって発生するバンディングに対して、画像重心移動量の誤差や、濃度変動が発生することなく、バンディング補正が可能となる。更に、回転多面鏡の面倒れによって発生するバンディングに対しても、画像重心移動量の誤差や、濃度変動が発生することなく、バンディング補正が可能となる。
【０１３７】
また、本実施例では、主走査方向に付加する画像データ（画素値）が所定値以下の場合には、画像形成を行わず、主走査方向の隣の画素の画素値に加算する。付加する画像データが副走査方向へ拡散すると、副走査方向への画像重心移動量に誤差が生じてしまい、バンディング補正効果が低下する。一方、主走査方向に限定して付加する画像データを加算することで、バンディング補正効果を低下させることなく、リニアリティ不良による露光量の誤差をキャンセルすることが可能となる。更に、付加する画像データのデータ量が一定にならないように、乱数を閾値に加算することにより、画像濃度を示す画素値の判定閾値を切り換えて、画像データを生成する。これによって、付加する画像データが周期的に生成されることを防ぎ、モアレ等の発生を防ぐことができる。
【実施例２】
【０１３８】
実施例１では、フィルタ処理を行った後の画素の画像データが所定の閾値よりも小さい場合には、画像形成を行わずに主走査方向の下流側の画素の画像データに加算し、画像データが閾値よりも大きい場合には加算された画像データを用いて画像形成を行う。実施例２では、フィルタ処理を行った後の画素の画像データの濃度誤差情報に基づいて、画像データの補正を行う処理について説明する。なお、実施例２では、画像形成装置、光走査装置の基本的な構成は実施例１と同様であり、説明を省略する。
【０１３９】
本実施例の制御シーケンスについて、図１８のフローチャートに従い説明する。図１８は、実施例１の図１５と同様に、副走査方向の走査線１ラインごとにＣＰＵ３０３が実行する制御シーケンスを示すフローチャートである。図１８において、Ｓ２００１、Ｓ２００２の処理は、実施例１の図１５のＳ１００１、Ｓ１００２の処理、Ｓ２００３〜Ｓ２００７の処理は、実施例１の図１５のＳ１００５〜Ｓ１００９の処理と同様であり、説明を省略する。また、図１８のＳ２０１０、Ｓ２０１１の処理は、実施例１の図１５のＳ１０１１、Ｓ１０１２の処理と同様であり、説明を省略し、以下では、実施例１の図１５に示す処理とは異なるＳ２００８、Ｓ２００９の処理について説明する。なお、図１８では、実施例１の図１５で選択的に実施する閾値Ｌへの乱数加算処理は削除されている。
【０１４０】
図１８のＳ２００６では、ＣＰＵ３０３は、処理後画素値Ｆｐｉｘと持ち越しデータＭＤＡＴＡの和が、閾値Ｌより大きいかどうかを判断する。ＣＰＵ３０３は、処理後画素値Ｆｐｉｘと持ち越しデータＭＤＡＴＡの和が、閾値Ｌより大きい（Ｆｐｉｘ＋ＭＤＡＴＡ＞閾値Ｌ）と判断した場合には、Ｓ２００７の処理に進む。一方、ＣＰＵ３０３は、処理後画素値Ｆｐｉｘと持ち越しデータＭＤＡＴＡの和が、前述した閾値Ｌよりも大きくない（Ｆｐｉｘ＋ＭＤＡＴＡ≦閾値Ｌ）と判断した場合には、Ｓ２００８の処理に進む。Ｓ２００８では、ＣＰＵ３０３は、後述する光量誤差テーブル（図１９（ａ）参照）から、入力された画像データ値（＝ＭＤＡＴＡ’）に対応する、出力データＧＤＡＴＡと、誤差量ＭＤＡＴＡ’を読み出す。Ｓ２００９では、ＣＰＵ３０３は、処理後画素値Ｆｐｉｘ、及び持ち越しデータＭＤＡＴＡに、以下に示すデータを設定する。即ち、ＣＰＵ３０３は、下記の式（４２）により、処理後画素値Ｆｐｉｘに出力データＧＤＡＴＡを設定し、持ち越しデータＭＤＡＴＡに誤差量ＭＤＡＴＡ’を加算する。
【０１４１】
Ｆｐｉｘ＝ＧＤＡＴＡ・・・式（４２）
ＭＤＡＴＡ＝ＭＤＡＴＡ’・・・式（４３）
なお、誤差量ＭＤＡＴＡ’は、図１９（ａ）の光量誤差テーブルに示すように、１よりも小さい小数点以下の値である。従って、式（４３）より持ち越しデータＭＤＡＴＡも整数値ではなく、小数点以下の値を有することになる。その結果、光量誤差テーブルを読み出すときの入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ）の値も少数点以下の値を持つことになるが、光量誤差テーブルの入力データは整数値となっている。そのため、光量誤差テーブルを読み出すときの入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ）は、小数点以下を切り捨てた整数値とする。そこで、このとき切り捨てられた小数点以下の数値については、持ち越しデータＭＤＡＴＡに追加されるものとする。
【０１４２】
次に、図１９（ａ）に示した光量誤差テーブルについて詳細に説明する。図１９（ａ）に示す光量誤差テーブルは一例であり、ここでは、光量誤差テーブルは３つの要素、即ち入力データ、入力データに対応したＧＤＡＴＡ、ＭＤＡＴＡ’から構成されている。入力データは、処理後画素値Ｆｐｉｘと持ち越しデータＭＤＡＴＡの和で示される画像データであり、０〜１５の１６段階で構成されている。出力データＧＤＡＴＡは、入力データ（ＦｐｉｘとＭＤＡＴＡの和）に対する理想の露光量、即ちリニアリティ不良がない場合の露光量に最も近いＰＷＭ信号の値（画素値）を示す。本実施例において、ＰＷＭ信号は１つの画素の画像データ（画素値）に対応するレーザ光量を４ビットで表現しており、レーザ光量は、レーザ光線を照射しないＰＷＭ信号が０の場合を除き、１５段階に分割される。例えば、入力データが１（ＰＷＭ信号が１）の場合には、フル点灯（入力データが１５）の１／１５の光量が発光させたい理想光量となる。ところが、レーザ光源が図２０（ｂ）に示すようなＰＷＭ信号に対するレーザ発光特性を有する場合には、次のようなレーザ発光光量となっている。即ち、ＰＷＭ信号の１、２段階目は、そのレーザ発光光量がフル発光の場合の１／１５の光量に達しておらず、３段階目でのレーザ発光光量が約１／１５の光量となっている。この場合では、入力データ１に対してＰＷＭ信号の値が３のときのレーザ光量が理想光量に近いため、光量誤差テーブルでは、出力データＧＤＡＴＡでは３が設定されている。同様に、光量誤差テーブルでは、他の入力データに対しても、図２０（ｂ）に示すＰＷＭ信号に対するレーザ発光特性を基に、出力データＧＤＡＴＡの最適値が設定されている。
【０１４３】
一方、入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ）に対して、最も理想光量に近いＰＷＭ信号の値を選択したとしても、露光光量に若干の誤差が生じることがある。そのため、光量誤差テーブルには誤差量ＭＤＡＴＡ’を設け、誤差量ＭＤＡＴＡ’は、入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ）を出力データＧＤＡＴＡで発光したときの誤差量を示す。光量誤差テーブルの２つのテーブル値、即ち出力データＧＤＡＴＡ及び誤差量ＭＤＡＴＡ’は、経験的に求められた値を基に設定され、光量誤差テーブルは予めＣＰＵ３０３の不図示のＲＡＭ等に保持されているものとする。例えば、画像形成装置の工場組み立て調整工程において、光走査装置毎に発光光量を測定して、メモリ３０２に光量誤差テーブルを格納しておき、図１８に示す処理を実行する際に用いてもよい。
【０１４４】
図１９（ｂ）は、図１８の処理において、閾値Ｌ＝４、最大濃度値ＤＡＴＡｍａｘ＝１６とした場合の処理結果を示す表である。なお、図１８において、フィルタ処理前の画像データ（画素値）は図１６（ａ）であり、図１６（ａ）のデータに対して、図１８のＳ２００２のフィルタ処理により表中の下方向に画像の重心を移動した場合の画像データ（画素値）が図１６（ｂ）である。図１８に示す処理では、フィルタ処理後の画像データ（図１６（ｂ））がフィルタ処理を行う前の画像データ（図１６（ａ））と同じ値か、又は小さい値となっている場合には、該当画素の画素値に対する処理を行わない（Ｓ２００３  Ｎの場合）。従って、図１９（ｂ）の１ライン〜４ライン、及び６ラインの各画素の画像データ（画素値）は、フィルタ処理後の画像データ（図１６（ｂ））と同じデータ値が設定されている。
【０１４５】
一方、図１６（ｂ）に示す５ライン目の各画素のフィルタ処理後の画像データ値２については、図１６（ａ）に示すフィルタ処理前の画像データ値０よりも増加しているため、図１８のＳ２００４〜Ｓ２００９の処理が実行される。即ち、Ｎ＝０の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝０であり、閾値Ｌ＝４、最大濃度値ＤＡＴＡｍａｘ＝１６なので、Ｓ２００８が実行される。Ｓ２００８では、光量誤差テーブルから、入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ＝２）に対応する出力データＧＤＡＴＡ＝３、誤差量ＭＤＡＴＡ’＝０．２が読み出される。続いて、Ｓ２００９では、Ｆｐｉｘには３が設定され、ＭＤＡＴＡには０．２（＝０＋０．２）が設定される。Ｎ＝１の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝０．２であり、閾値Ｌ＝４、最大濃度値ＤＡＴＡｍａｘ＝１６なので、Ｓ２００８が実行される。Ｓ２００８では、光量誤差テーブルから、入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ＝２）に対応する出力データＧＤＡＴＡ＝３、誤差量ＭＤＡＴＡ’＝０．２が読み出される。ここで、入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ）は２．２（＝２＋０．２）であるが、誤差光量テーブルの入力データは整数なので、入力データの小数点以下を切り捨てる処理を行い、入力データが２として読み出しを行う。以下、光量誤差テーブルを読み出すときの入力データについては、小数点以下を切り捨てた入力データを用いる。その結果、Ｓ２００９では、Ｆｐｉｘには３が設定され、ＭＤＡＴＡには、誤差量ＭＤＡＴＡ’＝０．２に、光量誤差テーブルを読み出す際に切り捨てられた小数点以下の値＝０．２を加算した０．４（＝０．２＋０．２）が設定される。
【０１４６】
Ｎ＝２の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝０．４であり、閾値Ｌ＝４、最大濃度値ＤＡＴＡｍａｘ＝１６なので、Ｓ２００８が実行される。Ｓ２００８では、光量誤差テーブルから、入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ＝２）に対応する出力データＧＤＡＴＡ＝３、誤差量ＭＤＡＴＡ’＝０．２が読み出される。そして、Ｓ２００９では、Ｆｐｉｘには３が設定され、ＭＤＡＴＡには、誤差量ＭＤＡＴＡ’＝０．２に、光量誤差テーブルを読み出す際に切り捨てられた小数点以下の値＝０．４を加算した０．６（＝０．２＋０．４）が設定される。Ｎ＝３の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝０．６であり、閾値Ｌ＝４、最大濃度値ＤＡＴＡｍａｘ＝１６なので、Ｓ２００８が実行される。Ｓ２００８では、光量誤差テーブルから、入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ＝２）に対応する出力データＧＤＡＴＡ＝３、誤差量ＭＤＡＴＡ’＝０．２が読み出される。そして、Ｓ２００９では、Ｆｐｉｘには３が設定され、ＭＤＡＴＡには誤差量ＭＤＡＴＡ’＝０．２に、光量誤差テーブルを読み出す際に切り捨てられた小数点以下の値＝０．６を加算した０．８（＝０．２＋０．６）が設定される。
【０１４７】
Ｎ＝４の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝０．８であり、閾値Ｌ＝４、最大濃度値ＤＡＴＡｍａｘ＝１６なので、Ｓ２００８が実行される。Ｓ２００８では、光量誤差テーブルから、入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ＝２）に対応する出力データＧＤＡＴＡ＝３、誤差量ＭＤＡＴＡ’＝０．２が読み出される。そして、Ｓ２００９では、Ｆｐｉｘには３が設定され、ＭＤＡＴＡには誤差量ＭＤＡＴＡ’＝０．２に、光量誤差テーブルを読み出す際に切り捨てられた小数点以下の値＝０．８を加算した１．０（＝０．２＋０．８）が設定される。Ｎ＝５の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝１．０であり、閾値Ｌ＝４、最大濃度値ＤＡＴＡｍａｘ＝１６なので、Ｓ２００８が実行される。Ｓ２００８では、光量誤差テーブルから、入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ＝３）に対応する出力データＧＤＡＴＡ＝４、誤差量ＭＤＡＴＡ’＝０．５が読み出される。そして、Ｓ２００９では、Ｆｐｉｘには４が設定され、ＭＤＡＴＡには、光量誤差テーブルを読み出す際に切り捨てられた小数点以下の値がないので、誤差量ＭＤＡＴＡ’＝０．５が設定される。
【０１４８】
Ｎ＝６の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝０．５であり、閾値Ｌ＝４、最大濃度値ＤＡＴＡｍａｘ＝１６なので、Ｓ２００８が実行される。Ｓ２００８では、光量誤差テーブルから、入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ＝２）に対応する出力データＧＤＡＴＡ＝３、誤差量ＭＤＡＴＡ’＝０．２が読み出される。そして、Ｓ２００９では、Ｆｐｉｘには３が設定され、ＭＤＡＴＡには誤差量ＭＤＡＴＡ’＝０．２に、光量誤差テーブルを読み出す際に切り捨てられた小数点以下の値＝０．５を加算した０．７（＝０．２＋０．５）が設定される。Ｎ＝７の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝０．７であり、閾値Ｌ＝４、最大濃度値ＤＡＴＡｍａｘ＝１６なので、Ｓ２００８が実行される。Ｓ２００８では、光量誤差テーブルから、入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ＝２）に対応する出力データＧＤＡＴＡ＝３、誤差量ＭＤＡＴＡ’＝０．２が読み出される。そして、Ｓ２００９では、Ｆｐｉｘには３が設定され、ＭＤＡＴＡには誤差量ＭＤＡＴＡ’＝０．２に、光量誤差テーブルを読み出す際に切り捨てられた小数点以下の値＝０．７を加算した０．９（＝０．２＋０．７）が設定される。
【０１４９】
Ｎ＝８の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝０．９であり、閾値Ｌ＝４、最大濃度値ＤＡＴＡｍａｘ＝１６なので、Ｓ２００８が実行される。Ｓ２００８では、光量誤差テーブルから、入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ＝２）に対応する出力データＧＤＡＴＡ＝３、誤差量ＭＤＡＴＡ’＝０．２が読み出される。そして、Ｓ２００９では、Ｆｐｉｘには３が設定され、ＭＤＡＴＡには誤差量ＭＤＡＴＡ’＝０．２に、光量誤差テーブルを読み出す際に切り捨てられた小数点以下の値＝０．９を加算した１．１（＝０．２＋０．９）が設定される。Ｎ＝９の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝１．１であり、閾値Ｌ＝４、最大濃度値ＤＡＴＡｍａｘ＝１６なので、Ｓ２００８が実行される。Ｓ２００８では、光量誤差テーブルから、入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ＝３）に対応する出力データＧＤＡＴＡ＝４、誤差量ＭＤＡＴＡ’＝０．５が読み出される。そして、Ｓ２００９では、Ｆｐｉｘには４が設定され、ＭＤＡＴＡには誤差量ＭＤＡＴＡ’＝０．５に、光量誤差テーブルを読み出す際に切り捨てられた小数点以下の値＝０．１を加算した０．６（＝０．５＋０．１）が設定される。Ｎ＝１０の場合には、Ｆｐｉｘ＝２、ＭＤＡＴＡ＝０．６であり、閾値Ｌ＝４、最大濃度値ＤＡＴＡｍａｘ＝１６なので、Ｓ２００８が実行される。Ｓ２００８では、光量誤差テーブルから、入力データ（Ｆｐｉｘ＋ＭＤＡＴＡ＝２）に対応する出力データＧＤＡＴＡ＝３、誤差量ＭＤＡＴＡ’＝０．２が読み出される。そして、Ｓ２００９では、Ｆｐｉｘには３が設定され、ＭＤＡＴＡには誤差量ＭＤＡＴＡ’＝０．２に、光量誤差テーブルを読み出す際に切り捨てられた小数点以下の値＝０．７を加算した０．８（＝０．２＋０．６）が設定される。
【０１５０】
本実施例での補正処理を行った場合の画像データを示す図１９（ｂ）と、誤差の補正を行わない図１６（ｂ）の画像と比較すると、５ライン目の画像は濃度値３又は４になっており、画素値を示す画像データ量が増えている。これによって、リニアリティ不良によるレーザ光量低下分が補正され、各画素の画像濃度が所定濃度に保たれるように制御される。
【０１５１】
以上説明したように、本実施例によれば、画像の歪みや濃度むらを補正するとともに、リニアリティ不良による濃度変動の発生を防ぎ、良好な画質を得ることができる。本実施例では、リニアリティ不良による露光量の誤差をキャンセルするように、周辺画素を含めた画像の露光量を調整する。これにより、１画素当たりの露光制御分解能（ＰＷＭ信号のパルス幅制御分解能）を高める必要なく、低コストで高精度な露光量調整が可能となる。また、感光ドラムの回転速度変動によって発生するバンディングに対して、画像重心移動量の誤差や、濃度変動が発生することなく、バンディング補正が可能となる。更に、回転多面鏡の面倒れによって発生するバンディングに対しても、画像重心移動量の誤差や、濃度変動が発生することなく、バンディング補正が可能となる。また、本実施例では、画像データ（画素値）に基づいて光量誤差テーブルから読み出した出力データによる画像形成を行い、光量誤差テーブルから読み出された誤差量は主走査方向の隣の画素の画素値に加算する。付加する画像データが副走査方向へ拡散すると、副走査方向への画像重心移動量に誤差が生じてしまい、バンディング補正効果が低下する。一方、主走査方向に限定して付加する画像データを加算することで、バンディング補正効果を低下させることなく、リニアリティ不良による露光量の誤差をキャンセルすることが可能となる。
【符号の説明】
【０１５２】
１０２      感光ドラム
２０１      マルチビームレーザ光源
２０４      回転多面鏡
３０３      ＣＰＵ
【図１】
0006611510.tif 000007
【図２】
0006611510.tif 000008
【図３】
0006611510.tif 000009
【図４】
0006611510.tif 000010
【図５】
0006611510.tif 000011
【図６】
0006611510.tif 000012
【図７】
0006611510.tif 000013
【図８】
0006611510.tif 000014
【図９】
0006611510.tif 000015
【図１０】
0006611510.tif 000016
【図１１】
0006611510.tif 000017
【図１２】
0006611510.tif 000018
【図１３】
0006611510.tif 000019
【図１４】
0006611510.tif 000020
【図１５】
0006611510.tif 000021
【図１６】
0006611510.tif 000022
【図１７】
0006611510.tif 000023
【図１８】
0006611510.tif 000024
【図１９】
0006611510.tif 000025
【図２０】
0006611510.tif 000026
【図２１】
0006611510.tif 000027