以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための図面において同一の構成要素には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
図1は、本発明の実施の形態1に係る画像処理装置の機能構成を示している。
図1に示すように、画像処理装置100は、階調補正部110、ドループ補正部120、ハーフトーン処理部130、パルス幅変調部140を備えている。
階調補正部110は、受け付けた階調データGD1に対しレーザプリンタの特性に応じてγ補正などを行い、この階調補正後の階調データGD2をドループ補正部120へ出力する。ここで、階調データGD1および階調データGD2の各階調データはm(mは正の整数)ビットの階調データで構成されている。
本願明細書では、階調データとは画素データを意味する。
ドループ補正部120は、パルス情報記憶部121と階調データ補正部122とを有している。
パルス情報記憶部121は、記憶手段の機能を有しており、例えばFIFO(First In First Out:先入れ先出し)メモリで構成されている。このパルス情報記憶部121は、注目画素の直前の画素を基準にして予め設定される所定の画素数に対応した過去の画素に関して、ハーフトーン処理部130によって変換された階調データ(ハーフトーンデータ)に対応して半導体レーザ(図示せず)から発光されたレーザ光のパルスの幅を示すパルス幅情報を記憶する。
階調データ補正部122は、カウンタ122aおよびルックアップテーブル(以下「LUT」という)122bを有している。
カウンタ122aは、半導体レーザの温度上昇をカウントするためのものであり、処理対象の画素に関する階調データに対応して、半導体レーザによるレーザ発光を示す旨(ONを示す旨)か否かに応じてカウント値を増加または減少させる。増加または減少の値は「1」である。
LUT122bは、半導体レーザの温度特性に応じて、階調データに対する補正値を求めるためのものであり、具体的にはカウンタ122aによるカウンタ値を階調データに対する補正値に変換するためのLUTである。LUT122bにはカウンタ値と補正値とが対応付けされて記憶されている。
このような階調データ補正部122は、生成手段の機能および補正手段の機能を有するものであり、生成手段として機能するときには、パルス情報記憶部121の記憶内容(例えば複数の階調データ)を読み出し、カウンタ122aおよびLUT122bを用いてこの読み出した記憶内容を基に補正値を生成するとともに、補正手段として機能するときは、階調補正部110からの階調補正後の階調データGD2を上記生成した補正値を基に補正(ドループ補正)する。
また、階調データ補正部122は、上記補正後(ドループ補正後)の階調データをドループ補正後の階調データGD3としてハープトーン処理部130へ出力する。ここで、階調データGD3の各階調データはm(mは正の整数)ビットの階調データで構成されている。
すなわち、ドループ補正部120は、受け付けた階調補正後の階調データGD2に対し、ドループ補正を行い、このドループ補正後の階調データGD3をハーフトーン処理部130へ出力する。
ハーフトーン処理部130は、変換手段の機能を有しており、m(mは正の整数)ビットの階調データ(画素データ)をn(nは正の整数、n<m)ビットの階調データ(画素データ)に変換する。
すなわち、ハーフトーン処理部130は、受け付けたドループ補正後の階調データGD3(mビットの階調データ)をディザマトリクスなどにより、2値のハーフトーンデータ(nビットの階調データ)に変換し、このハーフトーン処理後のハーフトーンデータHTDをパルス幅変調部140およびドループ補正部120(のパルス情報記憶部121)へ出力する。
実施の形態1では、n(正の整数、n<m)ビットの階調データは、1ビット(2値)の階調データとする。
パルス幅変調部(以下「PWM(Pulse Width Modulation:パルス幅変調)部」という)140は、受け付けたハーフトーンデータHTDをレーザ駆動信号に変換し、この変換後のレーザ駆動信号LDSを図示しないレーザ駆動部に向けて出力する。
なお、実施の形態1では、階調補正部110、ドループ補正部120およびハーフトーン処理部130は、これらの各構成要素の機能を実現するためのプログラム(ソフトウェア)や後述する処理手順(図2参照)に対応するプログラム(ソフトウェア)を含む所定のプログラム(画像処理プログラム)をROM(Read Only Memory:読み出し専用メモリ)などのメモリに格納しておき、CPU(Central Processing Unit:中央演算処理装置)が前記メモリから前記画像処理プログラムを読み出して実行することにより、実現されるようになっている。その画像処理プログラムがCPUによって実行されることにより、階調補正処理、ドループ補正処理、ハーフトーン処理などが実施される。
もちろん、階調補正部110、ドループ補正部120およびハーフトーン処理部130は、ハードウェアで構成するようにしてもよい。
なお、ドループ補正部120において、パルス情報記憶部121は例えばFIFO(先入れ先出し)メモリで実現され、またLUT122bは例えばROM(読み出し専用メモリ)で実現される。
次に、画像処理装置100の画像処理について、図2を参照して説明する。
図2は、その画像処理の処理手順を示すフローチャートである。
図示しないプリンタコントローラからの階調データGD1が画像処理装置100の階調補正部110に入力されると、階調補正部110は、取得した階調データGD1に対しγ補正などの階調補正処理を実施し(ステップS101)、この階調補正処理の結果つまり階調補正後の階調データGD2をドループ補正部120へ出力する。
この階調データGD2は、ドループ補正部120の階調データ補正部122に入力される。
ドループ補正部120では、パルス情報記憶部121には、ハーフトーン処理部130によってハーフトーン処理されたハーフトーンデータHTDが記憶される。このハーフトーンデータHTDは、2値のハーフトーンデータであり、パルス幅情報である。
さて、階調データ補正部122は、パルス情報記憶部121からハーフトーンデータHTDを読み出し(ステップS102)、この読み出したハーフトーンデータを基に補正値を算出するとともに(ステップS103)、階調補正部110からの階調データGD2に前記算出した補正値を加算する(ステップS104)。
そして、階調データ補正部122は、上記加算処理された後の階調データを、ドループ補正後の階調データGD3としてハーフトーン処理部130へ出力する(ステップS105)。
このように階調データGD2に補正値を加算する処理は、階調データGD2に対するドループ補正処理を実施していることを意味する。このドループ補正処理の詳細については後述する。
ハーフトーン処理部130は、階調データGD3に対しハーフトーン処理(階調データGD3をディザマトリクスなどにより2値化されたハーフトーンデータに変換)を実施し(ステップS106)、このハーフトーン処理後のハーフトーンデータHTD(2値の階調データ)をPWM部140およびドループ補正部120(のパルス情報記憶部121)へ出力する(ステップS107)。
ドループ補正部120では、パルス情報記憶部121がハーフトーンデータHTDを発光履歴情報(パルス幅情報の履歴情報)として記憶する(ステップS108)。
PWM部140は、受け付けたハーフトーンデータHTDをレーザ駆動信号に変換し、この変換後のレーザ駆動信号LDSを図示しないレーザ駆動部に向けて出力する(ステップS109)。
上述したような画像処理について具体例を挙げて説明する。
印刷対象の画像データは、図3に示すように、濃度が80%の濃度領域(高濃度領域)101と濃度が20%の濃度領域(低濃度領域)102とがX方向に隣接する画像データであるとする。
また、レーザの走査方向が高濃度領域101から低濃度領域102への方向(図3中実線矢印の方向、つまりX方向)であるとする(高濃度領域101が連続した後に低濃度領域102が位置する)。
さらに、図3に示す例では、半導体レーザによって、Y方向におけるNライン目のラインを走査するものとする。
上述した前提条件の下では、ハーフトーン処理部130は、図3に示す画像データ(階調データ)に対する階調補正処理およびドループ補正処理が実施された処理結果に対しハーフトーン処理を実施した場合は、そのハーフトーン処理の結果として、図4(a)に示すように、高濃度領域101に対応して2値のハーフトーンデータHTD101を出力し、また低濃度領域102に対応して2値のハーフトーンデータHTD102を出力する。
ここで、PWM部140がNライン目のラインの各画素にかかわる階調データに対応するハーフトーンデータHTD101,102をレーザ駆動信号LDSに変換し、このレーザ駆動信号LDSをレーザ駆動部(図示せず)に向けて出力すると、このレーザ駆動部によって駆動される半導体レーザ(図示せず)から発光されるレーザ光は、図4(b)に示すようなレーザ発光パターンとなる。
すなわち、ハーフトーン処理部130が図5(a)に示す階調データに対応して図5(b)に示すハーフトーンデータをPWM140に向けて出力したときは、半導体レーザ(図示せず)からは、図5(c)に示すレーザ発光パターンに対応したレーザ光が発光される。
なお、図5(a)はNライン目のラインの画素に関する階調データを示し、図5(b)はNライン目のラインの画素にかかわるレーザ幅情報(ハーフトーンデータ)を示し、図5(c)は図5(b)に示すレーザ幅情報(ハーフトーンデータ)に基づくレーザ発光パターンを示している。
また、図5(a),(b)においては、24個の画素P1〜P24について例示し、一部の画素に対して符号例えばP1,P5,P10,P15,P20,P24を付している。なお24個の画素に対しては、先頭の画素から順に「P1」、「P2」、・・・、「P23」および「P24」の符号が付与されるものとする
さらに、上記階調データおよびレーザ幅情報は8ビットのデータで表現されるようになっている。図5(a)において、値「204」および値「51」はそれぞれ濃度に対応した階調値を示し、値「204」の近傍の(80)は{(205階調/256階調)×100}の値(小数点以下切捨て)を意味し、また値「51」の近傍の(20)は{(52階調/256階調)×100}の(小数点以下切捨て)を意味する。図5(b)において、値「255」および値「0」はそれぞれ濃度に対応したハーフトーン値を示し、値「255」の近傍の(100)は{(256階調/256階調)×100}の値を意味する。
次に、ドループ補正部によるドループ補正処理について説明する。
階調補正部110は、取得した階調データGD1としての図6(a)に示す階調データ(図5(a)に示す階調データと同じ)に対して階調補正処理を実施し、この階調補正後の階調データGD2をドループ補正部120に向けて出力するものとする。
また、パルス情報記憶部121は、注目画素の直前の画素を基準にして16画素数に対応する過去の画素の階調データ(画素データ)つまりハーフトーンデータを記憶可能であるとする。
実施の形態1では、画素に関するハーフトーンデータは、0%または100%のパルス幅を示すパルス幅情報を意味する。
ここで、3画素目の画素P3にかかわる階調データGD2を階調データ補正部122が受け付けると、階調データ補正部122は、図6(b)に示すように、注目画素としての画素P3にかかわる階調データに対しドループ補正処理を実施する。
ドループ補正処理を実施するに際し、階調データ補正部122は、カウンタ122aのカウンタ値をリセット(カウンタ値=0)した後、パルス情報記憶部121から注目画素の直前の過去の画素にかかわるハーフトーンデータを読み出す。この場合、注目画素から最も遠い位置に存在する画素にかかわるハーフトーンデータから順に読み出される。
階調データ補正部122は、順次読み出したハーフトーンデータが、「255」(レーザ発光を意味する)を示すデータのときはカウンタ122aのカウンタ値を増加させ、また「0」(レーザ消灯を意味する)を示すデータのときはカウンタ122aのカウンタ値を減少させる。
この例では、1画素目の画像P1にかかわるハーフトーンデータ(「255」を示すデータ)、2画素目の画像P2にかかわるハーフトーンデータ(「255」を示すデータ)が読み出されるので、カウンタ122aのカウンタ値は「2」となる。
そして、階調データ補正部122は、上記カウンタ値「2」を基にLUT122bから対応する補正値を求めるとともに、この求めた補正値を注目画素としての画素P3にかかわる階調データGD2に加算して、当該階調データGD2に対するドループ補正を行う。
このようにしてドループ補正された階調データGD2は、ドループ補正後の階調データGD3としてハーフトーン処理部130に向けて出力される。
ハーフトーン処理部130では、画素P3にかかわる階調データGD3を、ハーフトーン処理を実施して例えば値「255」を示すハーフトーンデータ(2値のハーフトーンデータ)に変換する。このハーフトーンデータは、PWM部140およびドループ補正部120のパルス情報記憶部121に向けて出力される。
これにより、パルス情報記憶部121には、図6(c)に示すように、画素P1から画素P3までの3画素数に対応する画素にかかわるハーフトーンデータが記憶されることとなる。
上述したようなドループ補正処理およびハーフトーン処理が図6(d)に示すように1画素目の画素P1から17画素目の画素P17までの各画素に関して終了し、注目画素が18画素目の画素P18に移行したとする。この場合、パルス情報記憶部121には、画素P2から画素P17までの16画素数に対応するハーフトーンデータが記憶されていることになる。
注目画素としての画素P18の階調データGD2に対するドループ補正処理を実施する階調データ補正部122は、カウンタ122aのカウンタ値をリセット(カウンタ値=0)した後、パルス情報記憶部121から、注目画素の直前の過去の画素にかかわるハーフトーンデータを、画素P2、画素P3、・・・、画素P16および画素P17を順に読み出すとともに、この読み出した2値のハーフトーンデータ(値「255」または値「0」を示すデータ)に応じてカウンタ122aのカウンタ値を増加または減少させる。
この例では、図6(d)に示すように、「255」を示すハーフトーンデータに対応する画素が10個であり、「0」を示すハーフトーンデータに対応する画素が6個であるので、最終的なカウンタ122aのカウンタ値は「4」となる。
階調データ補正部122は、上記カウンタ値「4」を基にLUT122bから対応する補正値を求めるとともに、この求めた補正値を注目画素としての画素P18にかかわる階調データGD2に加算して、当該階調データGD2に対するドループ補正を行う。
ここで、カウンタ値と補正値とは比例関係にあり、例えば「(カウンタ値「4」に対応する補正値)>(カウンタ値「2」に対応する補正値)」の関係が成立している。
このようにしてドループ補正された階調データGD2は、ドループ補正後の階調データGD3としてハーフトーン処理部130に向けて出力される。
そして、ハーフトーン処理部130では、画素P18にかかわる階調データGD3を、ハーフトーン処理を実施して例えば値「0」を示すハーフトーンデータ(2値のハーフトーンデータ)に変換する。このハーフトーンデータは、PWM部140およびドループ補正部120のパルス情報記憶部121に向けて出力される。
これにより、パルス情報記憶部121には、図6(e)に示すように、画素P18にかかわるハーフトーンデータが記憶される。この場合、パルス情報記憶部121には、画素P3から画素P18までの16画素数に対応するハーフトーンデータが記憶されることになる。
上述したようなドループ補正処理およびハーフトーン処理がNラインの全ての画素について実施される。
そして、PWM部140が、ハーフトーン処理部130によるドループ補正後の階調データGD3に対するハーフトーン処理の結果としての2値のハーフトーンデータをレーザ駆動信号LDSに変換し、この変換後のレーザ駆動信号LDSをレーザ駆動部(図示せず)に向けて出力する。
このレーザ駆動部がレーザ駆動信号LDSに従って半導体レーザを駆動すると、半導体レーザが、高濃度領域101に対応してレーザ発光したときは、そのレーザ光の発光量は当該高濃度領域101に対する所定の発光量となり、一方、低濃度領域102に対応してレーザ発光したときは、そのレーザ光の発光量は当該低濃度領域102に対する所定の発光量となる。すなわち、半導体レーザから発光されるレーザ光の発光量の変動が抑制される。
なお、実施の形態1においては、補正値の算出は半導体レーザの温度特性によって適切な方式を選択するようにしても良い。たとえば、連続発光の温度上昇が非線形な場合にも対応すべく、発光(ON)の連続する数に応じてカウンタ値の増加させる値を変えるようにする。
(実施の形態2)
次に、実施の形態2に係る画像処理装置について説明する。
実施の形態2の画像処理装置は、図1に示した実施の形態1の画像処理装置100と同様の構成になっている。
ハーフトーン処理部130は、階調データGD3を、ディザマトリクスなどにより、3値以上のレベルのハーフトーンデータに変換する。すなわち、ハーフトーン処理を、パルス幅変調を用いた多値処理(多値のハーフトーン処理)とする。
実施の形態2では、8ビットのデータ表現の場合、0%、25%(階調値64)、50%(階調値128)、100%(階調値255)の4種類のハーフトーンデータが存在する。
また、通常、多値のハーフトーン処理では、安定したトナー像を得るために、25%および50%の中間幅のレーザ光のパルス(レーザパルス)を孤立させないようにハーフトーンデータ(ハーフトーンデータ列)を構成するようにする。
パルス情報記憶部121は、所定の画素に対応する上記パルス幅情報(パルス光量情報)と、当該所定の画素に対応してレーザ発光されたレーザ光のパルス(レーザパルス)にかかわる、当該所定の画素に対応する照射領域に照射されている当該パルスの位置を示すパルス位置情報とを関連付けて記憶する。これは、多値のハーフトーン処理においても正確な温度上昇を予測可能にするためである。
すなわち、連続したパルス発光の場合の半導体レーザの温度上昇と、孤立したパルス発光の場合の半導体レーザの温度上昇とは異なるので、その温度上昇つまり半導体レーザの温度に対応して、階調データを補正するための補正値(補正量)を正確に求める必要がある。そのためには、注目画素に対するパルスが、中間幅のパルスで孤立した状態であるのか、あるいは隣接画素に対するパルスと連続する状態であるのかを知れば良い。それを実現するために、パルス幅情報およびパルス位置情報をパルス情報記憶部に格納するようにしている。
実施の形態2では、画素に関するハーフトーンデータは、0%、25%、50%および100%の何れかのパルス幅を示すパルス幅情報、および当該パルスに関するパルス位置情報を意味する。
階調データ補正部122は、補正値を算出するときは、レーザ光の発光(ON)または消灯(OFF)だけではなく、パルス幅とパルス位置とを考慮して補正値を求める。
階調データ補正部122では、カウンタ122aは、処理対象の画素にかかわるハーフトーンデータとしての、上述した4種類のハーフトーンデータのいずれかのハーフトーンデータに応じて、現在のカウンタ値に所定の値を加算する。
0%のレベルのハーフトーンデータのときは、現在のカウンタ値に例えば「−10」が加算される。
100%のレベルのハーフトーンデータのときは、現在のカウンタ値に例えば「+10」が加算される。
25%レベルのハーフトーンデータのときは、当該画素に対するパルスが孤立して存在する場合には、現在のカウンタ値に例えば「+2」が加算され、当該画素に対するパルスが、連続するパルスに連続する場合は、現在のカウンタ値に上記「+2」よりも大きい値例えば「+6」が加算される。
50%レベルのハーフトーンデータのときは、当該画素に対するパルスが孤立して存在する場合には、現在のカウンタ値に例えば「+4」が加算され、当該画素に対するパルスが、連続するパルスに連続する場合は、現在のカウンタ値に上記「+4」よりも大きい値例えば「+5」が加算される。
なお、上述した「−10」、「2」、「4」などの加算値は例示に過ぎず、これらの値に限定されるものではない。
次に、実施の形態2の画像処理装置100の画像処理について、図7を参照して説明する。
図7は、その画像処理の処理手順を示すフローチャートである。
図示しないプリンタコントローラからの階調データGD1が画像処理装置100の階調補正部110に入力されると、階調補正部100は、取得した階調データGD1に対しγ補正などの階調補正処理を実施し(ステップS201)、この階調補正処理の結果つまり階調補正後の階調データGD2をドループ補正部120へ出力する。
この階調データGD3は、ドループ補正部120の階調データ補正部122に入力される。
ドループ補正部120では、パルス情報記憶部121には、ハーフトーン処理部130によってハーフトーン処理されたハーフトーンデータHTDが記憶される。このハーフトーンデータHTDは、4値のハーフトーンデータあり、パルス幅情報およびパルス位置情報である。
さて、階調データ補正部122は、パルス情報記憶部121からハーフトーンデータHTDを読み出し(ステップS202)、この読み出したハーフトーンデータを基に補正値を算出するとともに(ステップS203)、階調補正部110からの階調データGD2に前記算出した補正値を加算する(ステップS204)。
そして、階調データ補正部122は、上記加算処理のループ補正後の階調データGD3としてハーフトーン処理部130へ出力する(ステップS205)。
このように階調データGD2に補正値を加算する処理は、階調データGD2に対するドループ補正処理を実施していることを意味する。このドループ補正処理の詳細については後述する。
ハーフトーン処理部130は、階調データGD3に対しハーフトーン処理(階調データGD3をディザマトリクスなどにより多値化(4値化)されたハーフトーンデータに変換)を実施し(ステップS206)、このハーフトーン処理後のハーフトーンデータHTD(4値の画素データ)をPWM部140およびドループ補正部120(のパルス情報記憶部121)へ出力する(ステップS207)。
ドループ補正部120では、パルス情報記憶部121がハーフトーンデータHTDを発光履歴情報(パルス幅情報およびパルス位置情報の履歴情報)として記憶する(ステップS208)。
PWM部140は、受け付けたハーフトーンデータHTDをレーザ駆動信号に変換し、この変換後のレーザ駆動信号LDSを図示しないレーザ駆動部に向けて出力する(ステップS209)。
上述したような画像処理について具体例を挙げて説明する。
印刷対象の画像データは、実施の形態1の場合と同様に、図3に示したように、濃度が80%の濃度領域(高濃度領域)101と濃度が20%の濃度領域(低濃度領域)102とがX方向に隣接する画像データであるとする。また、レーザの走査方向および走査対象のラインも、実施の形態1の場合と同様に、それぞれX方向およびNライン目のラインであるとする。
上述した前提条件の下では、ハーフトーン処理部130は、図3に示した画像データ(画素データ)に対する階調補正処理およびドループ補正処理が実施された処理結果に対しハーフトーン処理を実施した場合は、そのハーフトーン処理の結果として、図8(a)に示すように、高濃度領域101に対応して4値のハーフトーンデータHTD201を出力し、また低濃度領域202に対応して4値のハーフトーンデータHTD202を出力する。
ここで、PWM部140がNライン目のラインの画素にかかわる階調データに対応するハーフトーンデータHTD201,202をレーザ駆動信号LDSに変換し、このレーザ駆動信号LDSをレーザ駆動部(図示せず)に向けて出力すると、このレーザ駆動部によって駆動される半導体レーザ(図示せず)から発光されるレーザ光は、計算上では図8(b)に示すようなレーザ発光パターンとなるものの、実際には、レーザ光のパルス位置が考慮されて図8(c)に示すようなレーザ発光パターンとなる。
なお、図8(b)、(c)において、符号#101は、図8(a)に示すハーフトーン画像における高濃度領域101のNライン目のラインの画素にかかわるハーフトーンデータHTD201Nに対応する発光パターンを示す。
次に、発光パターン#101およびハーフトーンデータHTD201Nについて、図9および図10を参照して説明する。
図9は、図8(b)に示した内容(発光パルス)を書き直したものである。同図において、発光(ON)を示すパルス波形を、走査開始の速い順に、A1、A2、・・・、A9、A10とする。
また、図10(a)は、ハーフトーンデータHTD201Nの一例を示している。同図において、符号A1〜A10は、図9に示した符号A1〜A10に対応し、該当するパルスに対応するハーフトーンデータ(パルス幅情報およびパルス位置情報)であることを意味する。
図10(b)は、図8(c)に示した内容(発光パルス)を書き直したものである。同図において、符号A1〜A10は、図9に示した符号A1〜A10に対応する。
このハーフトーンデータHTD201Nは、1画素目の画素P1から16画素目の画素P16までの16画素数の画素に対応する各ハーフトーンデータで構成されている。1つの画素に対応するハーフトーンデータは、パルス幅情報とパルス位置情報とが対応付けされたデータである。
パルス位置情報の「左」は、該当する画素の領域の左を基点としてレーザパルスが所定のパルス幅に対応して発光することを示す。また、パルス位置情報の「右」は、該当する画素の領域の右を基点としてレーザパルスが所定のパルス幅に対応して発光することを示す。
注目画素の直前の画素を基準にして予め設定される所定の画素数に対応するハーフトーンデータがパルス情報記憶部121に記憶される。所定の画素数が「15」である場合に、注目画素が画素P16のときは、画素P1から画素P15までの15個の画素に対応するハーフトーンデータがパルス情報記憶部121に記憶されることになる。
ところで、図9に示されるパルス波形A1〜A10は、図10(a)に示すハーフトーンデータHTD201Nの中のパルス幅情報を基に得られる。
つまり、PWM140が、ハーフトーン処理部130から送信されるハーフトーンデータHTD201Nの中のパルス幅情報を図9に示す発光パターンに変換する。この発光パターンがレーザ駆動信号となる。
例えば、画素P1にかかわるパルス幅情報「50」がパルス波形A1に変換され、また画素P3から画素P6までの4つの画素にかかわるパルス幅情報「100」がパルスA3に変換される。他の画素にかかわるパルス幅情報も、同様に、対応するパルスに変換される。
換言すれば、図9に示す発光パターンは、ハーフトーンデータの中のパルス幅情報のみを考慮し、パルス位置情報を考慮していない場合に得られる発光パターンであると言える。
しかし、実施には、PWM140は、ハーフトーン処理部130から送信されるハーフトーンデータHTD201Nの中のパルス幅情報およびパルス位置情報(図10(a)参照)を基に、図10(b)に示す発光パターン(図8(c)の発光パターンと同じ)に変換する。
次に、ドループ補正部によるドループ補正処理について説明する。
階調補正部110は、図3に示した画像データにおけるNライン目の画素にかかわる階調データを階調データGD1として取得し、この階調データGD1に対して階調補正処理を実施し、この階調補正後の階調データGD2をドループ補正部120に向けて出力するものとする。
また、パルス情報記憶部121は、注目画素の直前の画素を基準にして15画素数に対応する過去の画素の階調データつまりハーフトーンデータを記憶可能であるとする。ここでは、図10(a)に示す例において、注目画素が画素P16とし、画素P1から画素P15の15画素数に対応するハーフトーンデータがパルス情報記憶部121に記憶されているとする。
ドループ補正処理を実施するに際し、階調データ補正部122は、カウンタ122aのカウンタ値をリセット(カウンタ値=0)した後、パルス情報記憶部121から注目画素の直前の過去の画素にかかわるハーフトーンデータを読み出す。この場合、注目画素から最も遠い位置に存在する画素にかかわるハーフトーンデータから順に、処理対象の画素にかかわるハーフトーンデータとして読み出される。例えば、注目画素が画素P16の場合は、先頭の画素P1から注目画素の直前の画素P15までの各画素が、画素P1から順に処理対象の画素となる。
次に、階調データ補正部122は、読み出したハーフトーンデータを基にカウンタ122aの現在のカウンタ値に所定の加算値を加算し、最終的なカウンタ値を基にLUT122bから対応する補正値を求めるとともに、この求めた補正値を注目画素としての画素P16にかかわる階調データGD2に加算して、当該階調データGD2に対するドループ補正を行う。
実施の形態2においても、上記実施の形態1の場合と同様に、処理対象の画素にかかわるハーフトーンデータが、レーザの発光を意味している場合(パルス幅=25%、50%、100%の何れかの値)にはカウンタ値を増加させ、またレーザの消灯を意味している場合(パルス幅=0%)はカウンタ値を減少させる。
しかし、実施の形態2では、上記処理対象の画素に対応してレーザ発光された場合の温度上昇を正確に予測するために、上記カウンタ値を増加させるときは、次の(1)および(2)のカウントアップ処理を実施するようにしている。
(1)上記処理対象の画素に対応してレーザ発光されたレーザパルスのパルス幅が、25%、50%および100%の何れの値(パルス幅)であるかに応じて、カウンタ値を増加させる値(加算値)を変化させるようにする。この場合、そのレーザパルスのパルス幅については、パルス情報記憶部211から取得されるハーフトーンデータのパルス幅情報を参照することで知ることができる。
(2)上記処理対象の画素に対応してレーザ発光されたレーザパルスのパルス幅が、25%や50%など中間幅の場合、当該レーザパルスに関して、直前または直後のレーザパルス(直前または直後の画素に対応してレーザ発光されたレーザパルス)との連続性を判断し、この判断した結果に応じて、カウンタ値を増加させる値(加算値)を変化させるようにする。つまり、レーザ発光が連続しているか否かに応じてカウンタ値を増加させる値を異なるようにする。
この場合、そのレーザパルスの連続性については、パルス情報記憶部211から取得されるハーフトーンデータのパルス幅情報およびパルス位置情報を参照することで知ることができる。また、直前または直後の画素(隣接画素)にかかわるハーフトーンデータのパルス幅情報が、パルス幅=100%を意味している場合と、パルス幅=25%や50%など中間幅を意味している場合とがある。
ここで、上述したカウンタ122aのカウントアップ処理について具体的に説明する。
(A)処理対象の画素にかかわるレーザパルスのパルス幅が100%の場合の処理について説明する。
階調データ補正部122は、上記処理対象の画素に対応してレーザ発光されたレーザパルスのパルス幅、すなわちパルス情報記憶部121から取得した当該画素にかかわるハーフトーンデータ(パルス幅情報およびパルス位置情報)のパルス幅情報が100%を意味している場合には、カウンタ122aの現在のカウンタ値に「+10」を加算する。
例えば、上記処理対象の画素が図10(a)に示す画素P5であるときは、パルス幅情報が100%であるので、カウンタ122aの現在のカウンタ値に「+10」が加算される。
(B)処理対象の画素にかかわるレーザパルスのパルス幅が中間幅で、隣接画素にかかわるレーザパルスのパルス幅が100%の場合の処理について説明する。
階調データ補正部122は、パルス情報記憶部121から取得した処理対象の画素にかかわるハーフトーンデータのパルス幅情報が25%または50%を意味している場合(パルス幅が中間幅を意味している場合)には、当該パルス幅情報に対応するパルス位置情報を取得するとともに、このパルス位置情報に基に当該画素の隣接する画素にかかわるハーフトーンデータ(パルス幅情報およびパルス位置情報)をパルス情報記憶部212から取得する。
そして、階調データ補正部122は、パルス位置情報が、「左」を意味している場合には、当該画素の左側の画素(直前の画素)にかかわるハーフトーンデータ(パルス幅情報およびパルス位置情報)をルス情報記憶部212から取得し、一方、「右」を意味している場合は、当該画素の右側の画素(直後の画素)にかかわるハーフトーンデータ(パルス幅情報およびパルス位置情報)をルス情報記憶部212から取得する。
例えば、上記処理対象の画素が図10(a)に示す画素P2であるときは、パルス幅情報=25%、パルス位置情報=「右」であるので、直後の画素P3にかかわるハーフトーンデータが取得される。また、上記処理対象の画素が図10(a)に示す画素P9であるときは、パルス幅情報=50%、パルス位置情報=「左」であるので、直前の画素P8にかかわるハーフトーンデータが取得される。
上述したように上記処理対象の画素が例えば図10(a)に示す画素P2であるときは、隣接する画素は画素P3となり、この画素P3にかかわるハーフトーンデータのパルス幅情報は100%である。このように隣接画素にかかわるハーフトーンデータのパルス幅情報が100%のときは、当該処理対象の画素は隣接画素との間で必ず連続していることになるため、当該処理対象の画素P2にかかわるカウントアップ処理に関しては、カウンタ122aの現在のカウンタ値に、100%に連続している場合の加算値を加算するようにする。
具体的には、処理対象の画素P2にかかわるハーフトーンデータのパルス幅情報は25%で、隣接する画素P3にかかわるハーフトーンデータのパルス幅情報は100%なので、当該画素P2にかかわるカウントアップ処理に関しては、カウンタ122aの現在のカウンタ値に、100%に連続している場合の加算値「+6」が加算される。
同様に、処理対象の画素が画素P7の場合では、当該画素P7にかかわるハーフトーンデータのパルス幅情報は25%で、左側に隣接する画素P6にかかわるハーフトーンデータのパルス幅情報は100%なので、当該画素P7にかかわるカウントアップ処理に関しては、カウンタ122aの現在のカウンタ値に、100%に連続している場合の加算値「+6」が加算される。
そのため、2画素目の画素P2から7画素目の画素P7までの各画素にかかわるパルス幅に対応する加算値をカウントアップした場合は、その値は「52」となる。ちなみに、前記各画素にかかわるパルス幅に対応する加算値を単純にカウントアップした場合(処理対象の画素にかかわるレーザパルスが孤立しているとした場合)には、値は「44」となる。
(C)処理対象の画素にかかわるレーザパルスのパルス幅が中間幅で、隣接画素にかかわるレーザパルスのパルス幅も中間幅の場合の処理について説明する。
階調データ補正部122は、隣接画素にかかわるレーザパルスのパルス幅が中間幅である場合、つまり当該隣接画素にかかわるハーフトーンデータのパルス幅情報が例えば25%や50%などの中間幅を意味している場合は、処理対象の画素にかかわるハーフトーンデータのパルス位置情報と隣接画素にかかわるハーフトーンデータのパルス位置情報との関係を基に、処理対象の画素に対応して発光された発光パルス(中間幅の発光パルス)が、孤立した状態であるのか、あるいは隣接画素と隣接して連続発光しているのかを判断するとともに、この判断した結果を基に、カウンタ122aの現在のカウンタ値に、所定の加算値を加算するようにする。
例えば、処理対象の画素が8画素目の画素P8の場合、画素P8にかかわるパルス幅情報は50%で中間幅を意味し、そのパルス位置情報=左に基づく隣接画素としての9画素目の画素P9にかかわるパルス幅情報も50%で中間幅を意味している。
また、画素P8に関しては「右」基点の50%の発光であり、一方、画素P9に関しては「左」基点の50%の発光であることから、発光パターンとしては、前記2つの発光パルスで1つの画素に対応する100%の発光と同じ状態であることがわかる。
この場合は、画素P8および画素P9に関してのカウントアップ処理のときの加算値が合計で値「+10」となるようにする。たとえば、画素P8にかかわるパルス幅に対応する加算値は「+5」となり、画素P9にかかわるパルス幅に対応する加算値は「+5」となり、これらの加算値の合計が「+10」となる。
ところで、図10(a)から分かるように、例えば注目画素が7画素目の画素P7の場合では、画素P7の左側が連続しているので、連続発光が現在のパルス位置(画素P7に対するパルスの位置)で一旦消灯する期間(時間)が発生することになる。また、注目画素が10画素目の画素P10の場合では、現在のパルス位置(画素P10に対するパルスの位置)で発光が一旦消灯した後に連続して発光することになる。
(実施の形態3)
次に、実施の形態3に係る画像処理装置について説明する。
図11は、実施の形態3に係る画像処理装置の機能構成を示している。この画層処理装置200は、図1に示した画像処理装置100の機能構成において、画像解析部210を追加した構成になっている。なお、図11において、図1に示した機能構成と同様の機能を果たす部分には同一の機能を付している。
画像解析部210は、境界情報記憶部211を備え、階調補正後の階調データGD2(画像データ)を受け付け、この階調データGD2における高濃度領域と低濃度領域との境界部分(エッジ)を検出し、この検出結果としての境界部分を示すエッジ境界情報EDを境界情報記憶部211に格納する。
なお、実施の形態3では、画像データにおける高濃度領域と低濃度領域との境界部分を検出する検出手段は、例えば画像解析部210で実現される。
また、実施の形態3では、画像解析部210は、この構成要素の機能を実現するためのプログラム(ソフトウェア)をROM(読み出し専用メモリ)などのメモリに格納しておき、CPU(中央演算処理装置)が前記メモリからプログラムを読み出して実行することにより、実現されるようになっている。そのプログラムは実施の形態1で説明した所定のプログラム(画像処理プログラム)に含まれ(組み込まれ)、その画像処理プログラムがCPUによって実行されることにより、階調補正処理、ドループ補正処理、エッジ検出処理、ハーフトーン処理などが実施される。
なお、境界情報記憶部211はRAM(Random Access Memory:随時書き込み読み出しメモリ)で実現される。
次に、画像解析部210による境界部分(エッジ)の検出処理およびドループ補正処理について説明する。
画像解析部210は、図12に示すように、階調データGD2に関して、レーザ走査方向(図11中のX方向)の1つの走査線に対応する領域(1つのラインにかかわる複数の画素)についてエッジを判別し、その判別したエッジのレーザ走査方向における両側の画素に関する階調データ(画素の濃度値)を調べることで境界部分(エッジ)を検出する。この検出の結果として、例えば、境界部分(エッジ)を示すエッジ境界情報ED例えば位置情報X1(原点(0,0)からの位置)が得られる。
また、画像解析部210は、階調データGD2の図12のY方向における、レーザ走査方向に関する複数の走査線に対応する領域について、上述したようなエッジの検出処理を実施する。
なお、実施の形態3では、画像解析部210は、検出したエッジを基準にして、低濃度領域に向かう方向(X方向)に、例えば予め設定される複数の画素だけ離れた位置を示す位置情報X2(原点(0,0)からの位置)も得るようになっている。
そして、階調データGD2についてのエッジの検出処理が終了した場合、画像解析部210は、位置情報X1および位置情報X2とY方向の長さYDとを、境界部分を示すエッジ境界情報EDとして、境界情報記憶部211に格納するとともに、前記エッジ境界情報EDを階調データ補正部122に向けて出力する。
実施の形態3において、境界部分(エッジ)を示すエッジ境界情報ED例えば位置情報X1に加えて、予め設定される複数の画素だけ離れた位置を示す位置情報X2も記憶するようにしているのは、図12に示すように、X方向の長さXD(=X2−X1)の線分とY方向の長さYDの線分とで形成される領域(この例では四角形の領域)に含まれる階調データのみについてドループ補正を実施するようにするめである。
階調データ補正部122は、階調補正部110からの階調データGD2について、画像解析部210からのエッジ境界情報EDに基づく領域に対応する階調データのみについて、実施の形態1または実施の形態2の場合と同様に、ドループ補正を実施する。このドループ補正された後の階調データGD4は、ハーフトーン処理部130に向けて出力される。
また、階調データ補正部122は、階調データGD2における上記エッジ境界情報EDに基づく領域以外の領域に対応する階調データについては、ドループ補正を実施することなく、そのままのデータをドループ補正後の階調データGD4としてハーフトーン処理部130に向けて出力する。
なお、実施の形態3において、階調データ補正部122は、階調データGD2における上記エッジ境界情報EDに基づく領域の階調データに関して、エッジ付近では強い補正(ドループ補正)を実施し、これに対しエッジから離れる(低濃度領域の方向に離れる)にしたがって弱い補正(ドループ補正)を実施するようにしてもよい。
次に、実施の形態1、実施の形態2または実施の形態3の画像処理装置を有する画像形成装置を含む画像形成システムについて説明する。
図13は、実施の形態1または実施の形態2の画像処理装置100を有する画像形成装置を含む画像形成システムの構成を示している。
図13に示すように、画像形成システム1は、コンピュータなどのクライアント装置20と画像形成装置としてのプリンタ20とが通信回線30を介して接続される。
クライアント装置10は、処理装置として機能するものであり、CPU(中央演算処理装置)11、ハードディスクなどの記憶装置12、RAM(随時書き込み読み出しメモリ)などのメモリ13および通信インタフェース(以下「通信I/F」という)14を備えている。
記憶装置12は、文書の生成や印刷要求を発行するアプリケーションソフトウェア、プリンタドライバ、画像データ(印刷データ)など各種のデータを記憶する。
メモリ13は、記憶装置12から読み出されたプログラムやデータを記憶する。
通信I/F14は、通信回線30を介して、プリンタ20との間でデータの送受信を行うインタフェースである。
CPU11は、クライアント装置10全体を制御するものであり、例えば、記憶装置12からメモリ13へプリンタドライバを読み込んで実行する。これにより、プリンタドライバは、画像データ(印刷データ)をプリンタ20に向けて送信する。
画像形成装置として機能するプリンタ20は、画像処理装置100と出力装置25とを備え、画像処理装置100は、CPU21、ハードディスクなどの記憶装置22、メモリ23、通信I/F24およびPWM部140を備えている。
記憶装置22は、ソフトウェアである上述した画像処理プログラム50など、印刷処理を実施するのに必要な各種のプログラムやデータを記憶している。
通信I/F24は、通信回線30を介して、クライアント装置10との間でデータの送受信を行うインタフェースであり、例えば、クライアント装置10(のプリンタドライバ)から送信された画像データ(印刷データ)を受信する。
メモリ23は、記憶装置22から読み出された画像処理プログラム50、通信I/F24を介して受信された印刷情報などを記憶するRAMと、パルス情報記憶部121として機能するFIFOメモリと、LUT122bを記憶するROMとを含んでいる。
また、メモリ23は、階調補正部110による階調補正処理を実施する際に必要となる記憶領域(作業領域など)、ドループ補正部120によるドループ補正処理を実施する際に必要となる記憶領域(補正量の算出や求めた補正量を階調データに加算する処理のときに必要な作業領域など)、ハーフトーン処理部130によるハーフトーン処理を実施する際に必要となる記憶領域(作業領域など)などの記憶領域が割り当てられるRAMを含んでいる。
CPU21は、プリンタ20全体を制御するものであり、例えば、記憶装置22からメモリ23へ画像処理プログラム50を読み込んで実行することにより、画像データ(階調データ)に対する階調補正処理、ドループ補正処理、ハーフトーン処理などを実施し、このハーフトーン処理した結果(ハーフトーンデータ)をPWM部140に向けて出力する。
PWM部140は、受け付けたハーフトーンデータをレーザ駆動信号に変換し、この変換したレーザ駆動信号を出力装置25に向けて出力する。
出力装置25は、画像形成処理を実施する画像形成処理部であり、受け付けた画像データに基づいて印刷処理を実行する。
また、出力装置25は、画像形成処理部の構成要素である露光装置として、レーザ駆動部25aおよび半導体レーザ25bを備えている。レーザ駆動部25aは、PWM部140からのレーザ駆動信号を基に半導体レーザ25bに対しレーサ発光させる。
通信回線30としては、ローカルエリアネットワーク(LAN:Local
Area Network)や電話回線などの有線通信回線、無線LANなどの無線通信回線、さらには、これらの通信回線を組み合わせたもの、などが挙げられる。
なお、本願明細書において、画像処理プログラムを実行するコンピュータは、例えば図13に示すプリンタの画像処理装置の如く、CPU、メモリおよび記憶装置で構成される。
本願明細書において、画像処理装置の各機能を実現し、上記画像処理の処理手順を示すプログラムを含む所定のプログラム(画像処理プログラム50)を記録媒体としてのハードディスク等の記憶装置22に記録する実施形態として説明したが、当該所定のプログラム(画像処理プログラム)を次のようにして提供することも可能である。
すなわち、上記所定のプログラムをROMに格納しておき、CPUが、このプログラムをこのROMから主記憶装置へローディングして実行するようにしても良い。
また、上記所定のプログラムを、DVD−ROM、CD−ROM、MO(光磁気ディスク)、フレキシブルディスク、などのコンピュータ読み取り可能な記録媒体に格納して配布するようにしても良い。この場合、その記録媒体に記録されたプログラムを画像処理装置がインストールした後、このプログラムをCPUが実行するようにする。このプログラムのインストール先としては、RAM等のメモリやハードディスクなどの記憶装置がある。そして、画像処理装置は、必要に応じてこの記憶装置に記憶したプログラムを主記憶装置にローディングして実行する。
さらには、画像処理装置を通信回線(例えばインターネット)を介してサーバ装置あるいはホストコンピュータ等のコンピュータと接続するようにし、当該画像処理装置が、サーバ装置あるいはコンピュータから上記所定のプログラムをダウンロードした後、このプログラムを実行するようにしても良い。この場合、このプログラムのダウンロード先としては、RAM等のメモリやハードディスクなどの記憶装置(記録媒体)がある。そして、当該画像処理装置が、必要に応じてこの記憶装置に記憶された上記プログラムを主記憶装置にローディングして実行するようにする。