(57)【特許請求の範囲】
【請求項１】
画像データから少なくとも副走査方向に複数の画素を含む所定のマトリックス状に区分されたブロックを単位として画素データを取得し、各々の前記画素データと、当該画素データに対して他の画素データに基づいて求められる中間値とを用いた所定の画像変換処理を行う画像処理演算装置であって、
前記取得された画素データ、及び、当該画素データに対する前記中間値に基づいて、前記ブロックの内部で副走査方向へ配列された前記画素データに対して並列に前記画像変換処理を行い、それぞれ、前記画素データを変換した後の出力値、及び、当該出力値の評価に関する指標値を算出する並列演算部と、
前記取得される画素データに対し、予め定められた相対位置範囲内の画素データについて前記並列演算部でそれぞれ算出された前記指標値に基づく所定の演算を行うことで、前記中間値を算出する中間値算出部と、
一の画素データが取得されてから、前記中間値算出部によって当該一の画素データに対する前記中間値が算出されるまでの時間差以上に設定された期間に亘り、前記並列演算部による前記一の画素データに対する前記画像変換処理の開始を遅延させるための第１保持部と、
を備えることを特徴とする画像処理演算装置。
【請求項２】
画像データから主走査方向及び副走査方向にそれぞれ複数の画素を含む所定のマトリックス状に区分されたブロックを単位として画素データを取得し、各々の前記画素データと、当該画素データに対して他の画素データに基づいて求められる中間値とを用いた所定の画像変換処理を行う画像処理演算装置であって、
前記取得された画素データ、及び、当該画素データに対する前記中間値に基づいて、前記ブロックの内部の画素数と同数の画素データに対して並列に前記画像変換処理を行い、前記画素データを変換した後の出力値、及び、当該出力値の評価に関する指標値を算出する並列演算部と、
前記取得される画素データに対し、予め定められた相対位置範囲内の画素データについて前記並列演算部でそれぞれ算出された前記指標値に基づく所定の演算を行うことで、前記中間値を算出する中間値算出部と、
一の画素データが取得されてから、前記中間値算出部によって当該一の画素データに対する前記中間値が算出されるまでの時間差以上に設定された期間に亘り、前記並列演算部による前記一の画素データに対する前記画像変換処理の開始を遅延させるための第１保持部と、
を備えることを特徴とする画像処理演算装置。
【請求項３】
前記ブロックを単位としての画素データの取得、前記第１保持部、前記並列演算部、及び、前記中間値算出部のそれぞれの動作は、同一のクロック信号に同期して行われる
ことを特徴とする請求項１又は２記載の画像処理演算装置。
【請求項４】
一のブロックから取得された前記画素データに基づく前記画像変換処理は、同一の走査ライン上に位置する画素データに対しては、前記クロック信号の同一周期内に行われ、異なる走査ライン上に位置する前記画素データに対しては、前記第１保持部により、副走査方向に進んだライン数と、前記相対位置範囲の主走査方向への幅とに基づいて、前記クロック信号の周期の整数倍だけ遅延して行われるように設定される
ことを特徴とする請求項３記載の画像処理演算装置。
【請求項５】
前記第１保持部は、
前記ブロックの内部における相対位置ごとに前記取得された画素データを直列に保持し、当該相対位置に基づいて設定される遅延量に基づいて、前記並列演算部による前記画像変換処理を遅延させる
ことを特徴とする請求項１〜４の何れか１項に記載の画像処理演算装置。
【請求項６】
前記並列演算部は、
当該並列演算部で算出された前記出力値を前記ブロックの内部における相対位置ごとにそれぞれ予め定められた期間に亘って保持する第２保持部を備え、
前記第１保持部で前記画像データが保持される期間と、前記第２保持部で前記出力値が保持される期間とを前記相対位置ごとに加算した期間の長さは、前記相対位置に拠らず同一となるように設定されている
ことを特徴とする請求項５記載の画像処理演算装置。
【請求項７】
前記中間値算出部は、
前記並列演算部により前記指標値が算出されるたびに前記中間値の算出に必要な当該指標値を順次積算していくことで、前記取得される画素データに対する前記中間値を算出する
ことを特徴とする請求項１〜６の何れか１項に記載の画像処理演算装置。
【請求項８】
請求項１〜７の何れか一項に記載の画像処理演算装置と、
前記画像データを前記ブロックに区分して前記画像処理演算装置に入力する入力手段と、
前記画像処理演算装置から出力される前記出力値の出力タイミングを制御する出力制御手段と、
前記出力値に基づいて画像を形成する画像形成手段と、
を備える画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像データの処理を行う画像処理演算装置、及び、この画像処理演算装置を備える画像形成装置に関する。
【背景技術】
【０００２】
従来、デジタル画像データをプリンタなどに出力する際に、各画素における各表示色の階調を示す色値をそれぞれ複数ビットで表す多値データから１ビットで表す二値データに変換するハーフトーン処理が行われている。このハーフトーン処理において、元の画像を高画質で表現する手法の一つとしては、誤差拡散アルゴリズムがある。誤差拡散アルゴリズムでは、各色値を二値化することにより発生する元の多値データからの誤差（差分）を周辺画素に所定の割合で分配して同色の色値に加算することで拡散させ、情報量の減少を防いでいる。
【０００３】
この誤差拡散アルゴリズムによるハーフトーン処理では、各画素の色値に加算される値を求める際に、この加算値を中間値としてメモリに格納する必要がある。ハーフトーン処理に限らず、このような中間値データを用いて行う画像処理は、回路が複雑になって処理時間が長くなりやすい。そこで、画像処理の高速化を図るために、例えば、引用文献１には、複数の走査ラインのデータに対して複数の画像処理部を備え、並列的に処理を実行することで高速化する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−２６６３２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一方、画像データによっては、主走査方向及び副走査方向にそれぞれ連続する所定の複数画素データをブロック化したデータ（以降、パッキングデータと記す）ごとに扱う方が好ましい場合がある。例えば、高画質化に伴い画素数を変換する処理などが行われた画像データでは、画素数を変換する前の画素範囲に基づいてブロック化された各画素データを一括して取り扱うことで、より容易に行うことができる画像処理がある。
【０００６】
しかしながら、従来、ブロック化された各画素データを走査ラインごとに並べ替えて画像処理部へ入力しようとすると、並べ替え処理に時間を要するという問題がある。更に、このようなパッキングデータが誤差拡散アルゴリズムによるハーフトーン処理の入力データとして用いられる場合には、走査ラインごとに画素データを取得しながら演算処理を行おうとすると、処理が複雑になったり、効果的に処理の高速化が行われなかったりするという問題が生じる。
【０００７】
この発明の目的は、パッキングされた画像データに対して中間値を含む画像処理を行う際の処理速度を容易且つ安定に高速化することができる画像処理演算装置及び画像形成装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、請求項１に記載の発明は、
画像データから少なくとも副走査方向に複数の画素を含む所定のマトリックス状に区分されたブロックを単位として画素データを取得し、各々の前記画素データと、当該画素データに対して他の画素データに基づいて求められる中間値とを用いた所定の画像変換処理を行う画像処理演算装置であって、
前記取得された画素データ、及び、当該画素データに対する前記中間値に基づいて、前記ブロックの内部で副走査方向へ配列された前記画素データに対して並列に前記画像変換処理を行い、それぞれ、前記画素データを変換した後の出力値、及び、当該出力値の評価に関する指標値を算出する並列演算部と、
前記取得される画素データに対し、予め定められた相対位置範囲内の画素データについて前記並列演算部でそれぞれ算出された前記指標値に基づく所定の演算を行うことで、前記中間値を算出する中間値算出部と、
一の画素データが取得されてから、前記中間値算出部によって当該一の画素データに対する前記中間値が算出されるまでの時間差以上に設定された期間に亘り、前記並列演算部による前記一の画素データに対する前記画像変換処理の開始を遅延させるための第１保持部と、
を備えることを特徴とする画像処理演算装置である。
【０００９】
請求項２に記載の発明は、
画像データから主走査方向及び副走査方向にそれぞれ複数の画素を含む所定のマトリックス状に区分されたブロックを単位として画素データを取得し、各々の前記画素データと、当該画素データに対して他の画素データに基づいて求められる中間値とを用いた所定の画像変換処理を行う画像処理演算装置であって、
前記取得された画素データ、及び、当該画素データに対する前記中間値に基づいて、前記ブロックの内部の画素数と同数の画素データに対して並列に前記画像変換処理を行い、前記画素データを変換した後の出力値、及び、当該出力値の評価に関する指標値を算出する並列演算部と、
前記取得される画素データに対し、予め定められた相対位置範囲内の画素データについて前記並列演算部でそれぞれ算出された前記指標値に基づく所定の演算を行うことで、前記中間値を算出する中間値算出部と、
一の画素データが取得されてから、前記中間値算出部によって当該一の画素データに対する前記中間値が算出されるまでの時間差以上に設定された期間に亘り、前記並列演算部による前記一の画素データに対する前記画像変換処理の開始を遅延させるための第１保持部と、
を備えることを特徴とする画像処理演算装置である。
【００１０】
請求項３記載の発明は、請求項１又は２に記載の画像処理演算装置において、
前記ブロックを単位としての画素データの取得、前記第１保持部、前記並列演算部、及び、前記中間値算出部のそれぞれの動作は、同一のクロック信号に同期して行われる
ことを特徴としている。
【００１１】
請求項４記載の発明は、請求項３記載の画像処理演算装置において、
一のブロックから取得された前記画素データに基づく前記画像変換処理は、同一の走査ライン上に位置する画素データに対しては、前記クロック信号の同一周期内に行われ、異なる走査ライン上に位置する前記画素データに対しては、前記第１保持部により、副走査方向に進んだライン数と、前記相対位置範囲の主走査方向への幅とに基づいて、前記クロック信号の周期の整数倍だけ遅延して行われるように設定される
ことを特徴としている。
【００１２】
請求項５記載の発明は、請求項１〜４の何れか１項に記載の画像処理演算装置において、
前記第１保持部は、
前記ブロックの内部における相対位置ごとに前記取得された画素データを直列に保持し、当該相対位置に基づいて設定される遅延量に基づいて、前記並列演算部による前記画像変換処理を遅延させる
ことを特徴としている。
【００１３】
請求項６記載の発明は、請求項５記載の画像処理演算装置において、
前記並列演算部は、
当該並列演算部で算出された前記出力値を前記ブロックの内部における相対位置ごとにそれぞれ予め定められた期間に亘って保持する第２保持部を備え、
前記第１保持部で前記画像データが保持される期間と、前記第２保持部で前記出力値が保持される期間とを前記相対位置ごとに加算した期間の長さは、前記相対位置に拠らず同一となるように設定されている
ことを特徴としている。
【００１４】
請求項７記載の発明は、請求項１〜６の何れか１項に記載の画像処理演算装置において、
前記中間値算出部は、
前記並列演算部により前記指標値が算出されるたびに前記中間値の算出に必要な当該指標値を順次積算していくことで、前記取得される画素データに対する前記中間値を算出する
ことを特徴としている。
【００１５】
請求項８記載の発明は、
請求項１〜７の何れか一項に記載の画像処理演算装置と、
前記画像データを前記ブロックに区分して前記画像処理演算装置に入力する入力手段と、
前記画像処理演算装置から出力される前記出力値の出力タイミングを制御する出力制御手段と、
前記出力値に基づいて画像を形成する画像形成手段と、
を備える画像形成装置である。
【発明の効果】
【００１６】
本発明に従うと、パッキングされた画像データを用いて中間値を含む画像処理を行う画像処理演算装置及びこの画像処理演算装置を含む画像形成装置を用いて、処理速度を容易且つ安定に高速化することができるという効果がある。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１実施形態の画像形成装置の構成を示す図である。
【図２】誤差拡散パターンの例を説明する図である。
【図３】誤差拡散処理部の構成を説明する図である。
【図４】誤差拡散処理部の構成を説明する図である。
【図５】第２実施形態の画像形成装置の構成を示す図である。
【図６】領域判別処理部の構成を説明する図である。
【図７】領域判別処理部の構成を説明する図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１９】
[第１実施形態]
図１は、第１実施形態の画像形成装置の全体構成図である。この第１の実施形態における画像形成装置１は、パッキングされた画像データの入力に対して誤差拡散アルゴリズムを用いてハーフトーン処理を行い二値化した画像データを形成する装置である。
【００２０】
画像形成装置１は、スキャン入力部１１と、色空間変換処理部１２と、一時記憶部１３と、解像度変換処理部１４と、画像処理部１５と、画像処理演算装置としての誤差拡散処理部１６と、出力制御部１７と、画像形成部１８などを備えている。
【００２１】
スキャン入力部１１（入力手段）は、イメージスキャナやＯＣＲ（Optical Character Reader）といった入力デバイスから取得された画素表示による画像データの入力処理を行う。また、色空間変換処理部１２は、各８ビットのＲＧＢカラー（赤緑青の三色）の色空間で表現された画像データをプリント出力用に各８ビットのＣＭＹＫカラー（シアン、マゼンタ、黄色、黒の４色）の色空間で表現された画像データに変換する処理を行う。なお、入力データとしては、ＰＣの記憶装置（ＨＤＤ、Hard Disk Drive）や、フラッシュメモリ、ＣＤ−Ｒ（Compact Disc Recordable）、ＤＶＤ−Ｒ（Digital Versatile Disc Recordable）といったリムーバブルメディアに一度貯蔵されたデータを取得することとしてもよい。また、ＣＭＹＫカラーによる画像データが直接入力される場合には、色空間変換処理部１２による処理を省略することができる。また、色空間変換処理以外の種々の処理を併せて行うこととしてもよい。
【００２２】
一時記憶部１３は、４個の記憶部を備えており、これら４個の記憶部は、色空間変換処理部１２から出力された画像データをＣＭＹＫカラーそれぞれの色ごとに階調を示す色値を一時的に記憶する。この一時記憶部１３は、例えば、ＨＤＤやＤＲＡＭ（Dynamic Random Access Memory）である。
【００２３】
解像度変換処理部１４は、スキャン入力部１１などから入力された画像データの解像度を変換する。本実施形態の画像形成装置１では、例えば、６００ｄｐｉ（dot per inch）で入力された画像データを補完処理によって１２００ｄｐｉに変換する処理を行う。即ち、６００ｄｐｉ画像における１画素は、１２００ｄｐｉ画像における主走査方向に２画素、副走査方向に２画素のマトリックス状に区分された４画素に分割されることになる。また、画像処理部１５は、１２００ｄｐｉに変換された画像データをこの４画素で構成されるブロック単位で１つのパッキングデータとして、このパッキング内の４画素データを一括して誤差拡散処理部１６へ送れるように配列する処理を行う。また、同時に、他の種々の画像処理を行うこととしてもよい。
【００２４】
誤差拡散処理部１６は、画像処理部１５から入力された画像データに基づいて後に詳述する誤差拡散アルゴリズムを利用したハーフトーン処理を行う。この誤差拡散処理部１６は、演算処理部を４個並列に備えている。この演算処理部には、パッキングされた４画素におけるＣＭＹＫカラーそれぞれの色値を示す８ビットデータが図示略のクロック信号入力に同期して順次入力され、また、それぞれ二値化された１ビットデータがそれぞれ出力値として出力制御部１７に出力される。また、４つの演算処理部の間では、各々行われたハーフトーン処理に伴い発生する誤差の値が出力値の評価に関する指標値としてやり取りされる。この誤差拡散処理部１６を構成する回路は、ＡＳＩＣ（Application Specific Integrated Circuit）上にまとめて形成されている。また、このＡＳＩＣ上には、パッキングされた画像データに対する他の画像処理機能に係る処理回路が併せて形成されていることとしてもよい。
【００２５】
出力制御部１７（出力制御手段）は、誤差拡散処理部１６で各画素におけるＣＭＹＫカラーの各色値が二値化された画像データを所定の順番に整列しなおすと共に、この二値化された信号や二値化信号に基づく動作制御信号を画像形成部１８（画像形成手段）や外部機器（例えば、共有プリンタ）に出力するタイミングを制御する。このタイミング制御の処理は、出力制御部１７に搭載されたＣＰＵ（Central Processing Unit）やＲＡＭ（Random Access Memory）などを用いて独自に行われてもよいし、電源制御、スキャン入力部１１における入力制御や、誤差拡散処理部１６の動作のオンオフを制御する機能などと併せて画像形成装置１の全体の制御を統括するマイコン（図示略）が制御を行うこととしてもよい。そして、画像形成部１８は、出力された動作制御信号に従って画像を形成する。
【００２６】
次に、本実施形態の画像形成装置１における誤差拡散のパターンと、誤差拡散処理部１６の構成とについて説明する。
【００２７】
図２は、本発明の第１実施形態の画像形成装置で用いられる誤差拡散処理のパターンを説明する図である。また、図３及び図４は、誤差拡散処理部の構成を示す図である。
【００２８】
誤差拡散の際に一の画素データから誤差が分配される相対位置範囲、及び、各相対位置における分配係数のパターンとしては、精度の良いものが複数知られており、適宜選択される。図２（ａ）に示されているように、本発明の第１実施形態の画像形成装置１で用いられる誤差拡散のパターンでは、ハーフトーン処理が行われる対象の画素の位置を基準として、同一走査ライン上で主走査方向に相対的に２画素と、副走査方向へ一本先の走査ライン、及び、二本先の走査ライン上で主走査方向にそれぞれ相対的に±２画素との範囲内の合計１２画素が誤差拡散の行われる範囲となる。そして、誤差拡散の行われる範囲内の画素における色値には、ハーフトーン処理が行われた対象の画素におけるこの色値の二値化により生じた誤差成分の値（指標値）に、各画素の相対位置に基づいて定められている分配係数を乗じた値が分配されて加算される。即ち、図２（ａ）の画素Ｅ０３において各色値に生じた誤差成分は、ハッチで示された画素Ｅ０４、Ｅ０５、Ｅ１１〜Ｅ１５、Ｅ２１〜Ｅ２５における各色値に分配されて加算される。また、画素Ｅ２３の各色値に加算される指標値としての誤差成分の値は、図２（ｂ）に示すように、画素Ｅ０１〜Ｅ０５、Ｅ１１〜Ｅ１５、Ｅ２１、Ｅ２２において生じたものである。
【００２９】
分配係数の設定は、特に限られないが、例えば、図２（ａ）において、画素Ｅ０３に隣接する２画素（画素Ｅ０４、Ｅ１３）に対しては７／４８、これらの２画素に隣接する４画素（Ｅ０５、Ｅ１２、Ｅ１４、Ｅ２３）に対しては５／４８、これらの４画素に隣接し、分配係数として７／４８が設定されている画素を除く４画素（Ｅ１１、Ｅ２２、Ｅ２４、Ｅ１５）に対しては３／４８、残りの２画素（Ｅ２１、Ｅ２５）に対しては、１／４８のように、元の画素から離れるにつれて漸減し、且つ、全ての分配係数の和が１となるように設定することができる。また、主走査方向の左から右へ、次いで、副走査方向の上から下へ順番にハーフトーン処理が行われる場合に各画素の色値で生じる誤差は、全てハーフトーン処理が未だ行われていない画素における色値を示す８ビットデータに対して分配される。
【００３０】
このような誤差拡散パターンに基づいてハーフトーン処理を行う誤差拡散処理部１６は、図３及び図４に示すように、４個の演算処理部１６１〜１６４を備えている。
【００３１】
図３（ａ）は、パッキング内の左上の画素における色値を示す８ビットデータに対してハーフトーン処理を行う演算処理部１６１である。また、図３（ｂ）、図４（ａ）、及び、図４（ｂ）は、それぞれ、パッキング内の右上、左下、右下の画素における色値を示す８ビットデータに対してハーフトーン処理を行う演算処理部１６２〜１６４である。これらの演算処理部１６１〜１６４には、１クロック周期毎にそれぞれ１個の８ビットデータが順次入力される。
【００３２】
図３（ａ）に示すように、演算処理部１６１は、中間値算出部としての誤差積算部１６１１と、並列演算部としての出力／誤差算出部１６１２と、第１保持部としてのシフトレジスタ１６１３とを備えている。同様に、演算処理部１６２は、誤差積算部１６２１と、出力／誤差算出部１６２２と、シフトレジスタ１６２３とを備え（図３（ｂ））、演算処理部１６３は、誤差積算部１６３１と、出力／誤差算出部１６３２と、第２保持部としてのシフトレジスタ１６３３とを備え（図４（ａ））、また、演算処理部１６４は、誤差積算部１６４１と、出力／誤差算出部１６４２と、シフトレジスタ１６４３とを備えている（図４（ｂ））。
【００３３】
シフトレジスタ１６１３、１６２３、１６３３、１６４３は、何れも、１クロック周期ごとに入力される色値データがＬ段分入力順に保持されて、Ｌ＋１段後に出力されるものである。ここで、段数Ｌは、誤差拡散により一度に誤差が分配される主走査方向のパッキング数（本実施形態では、３）より大きい値である。即ち、パッキング内の副走査方向に進んだ主走査ライン上の画素に対する演算処理を行うタイミングは、当該画素データが取得されてから、前の主走査ライン上の画素における二値化処理により当該画素へ分配される誤差の算出処理が終了するまでの時間が経過した後に行われる。なお、入力画像の主走査方向に配列されたパッキング数Ｍ（本実施形態では、主走査方向のピクセル数の半分の値、１インチ当たり６００）は、この誤差拡散により一度に誤差が分配される主走査方向のパッキング数よりも十分大きい。また、本実施形態では、各処理がクロック信号に同期して行われるので、遅延の段数Ｌは、整数となる。
【００３４】
誤差積算部１６１１、１６２１、１６３１、１６４１には、それぞれ、１２個の乗算器と、これらの乗算器に直列に接続され、且つ、一端から初期値「０」が入力される信号線上に直列に配置された１２個の加算器と、１２個の加算器の間に設けられた７個のＦＦ（フリップフロップ回路）、シフトレジスタ、及び、ＦＩＦＯ（First-In First-Out）メモリとが含まれている。信号線上における加算器、ＦＦ、シフトレジスタ、ＦＩＦＯメモリの配列の順番は、誤差積算部１６１１、１６２１、１６３１、１６４１では、後述するようにそれぞれ異なっている。１２個の乗算器には、乗算器毎に定められた分配係数、及び、演算処理部１６１〜１６４でそれぞれ算出される誤差成分の値が入力される。また、これらの誤差積算部１６１１、１６２１、１６３１、１６４１からは、誤差拡散アルゴリズムによって求められ、各画素における色値に加算される中間値としての誤差累積値が出力／誤差算出部１６１２、１６２２、１６３２、１６４２に出力される。
【００３５】
出力／誤差算出部１６１２、１６２２、１６３２、１６４２は、入力された各画素における色値、及び、この色値に対する誤差累積値に基づき、二値化された色値と、二値化に伴う誤差成分の値を算出して出力する演算処理を行う。この出力／誤差算出部１６１２、１６２２、１６３２、１６４２は、特に制限されないが、例えば、これらの色値と誤差積分値との和を求める加算器と、この加算器の出力と所定の閾値（本実施形態では、１２８）との大小を比較して比較結果に基づき、二値化された色値として１ビット出力信号（１及び０）を出力する比較器と、加算器の出力と比較器の出力に基づく８ビット信号（即ち、２５５及び０）との間の差分を求め、誤差成分の値として出力する減算器と、を備える。
【００３６】
次に、本実施形態の演算処理部の動作について説明する。
【００３７】
本実施形態の演算処理部１６１〜１６４では、外部から入力されるクロック信号に同期して、１段ずつデータの入出力、シフトレジスタにおけるデータの移動、及び、出力する１データを算出するための一連の演算処理が行われる。
【００３８】
図３（ａ）に示されるように、演算処理部１６１には、パッキング内の左上の画素における色値を示す８ビットデータが入力される。そして、入力された８ビット値は、出力／誤差算出部１６１２において、後に詳述する手順により誤差積算部１６１１で算出された当該画素への誤差累積値と加算され、続いて、二値化されてシフトレジスタ１６１３に送られる。具体的には、誤差累積値を加算後の８ビット入力値が１２８以上の場合には、二値化されて１ビットで表される１ビット出力値は「１」に設定され、誤差累積値を加算後の８ビット入力値が１２７以下の場合には、１ビット出力値は「０」に設定される。それから、この二値化されたデータは、Ｌ＋１段目の処理でシフトレジスタ１６１３から出力され、演算処理部１６１から出力制御部１７へ送られる。
【００３９】
また、出力／誤差算出部１６１２は、二値化された出力値が「１」の場合には、８ビットで表される最大値２５５と、誤差累積値を加算後の８ビット入力値との差分を誤差成分Δ１として算出する。一方、二値化された出力値が「０」の場合には、誤差累積値を加算後の８ビット入力値と、０の値との差分を誤差成分Δ１として算出する。
【００４０】
図４（ａ）に示されるように、演算処理部１６３には、パッキング内の左下の画素における色値を示す８ビットデータが入力される。入力された８ビットデータは、先ず、シフトレジスタ１６３３に送られて、Ｌクロック周期の間保持される。その後、Ｌ＋１段目の処理では、シフトレジスタ１６３３から出力された８ビット入力値は、出力／誤差算出部１６３２において、後に詳述する手順により誤差積算部１６３１で算出された当該画素への誤差累積値と加算された後に二値化されて出力制御部１７へ出力される。具体的には、誤差累積値を加算後の８ビット入力値が１２８以上の場合には、１ビット出力値は「１」に設定され、誤差累積値を加算後の８ビット入力値が１２７以下の場合には、１ビット出力値は「０」に設定される。
【００４１】
出力／誤差算出部１６３２は、二値化された出力値が「１」の場合には、８ビットで表される最大値２５５と、誤差累積値を加算後の８ビット入力値との差分を誤差成分Δ３として算出する。一方、二値化された出力値が「０」の場合には、誤差累積値を加算後の８ビット入力値と、０の値との差分を誤差成分Δ３として算出する。
【００４２】
一方、図３（ｂ）に示されるように、演算処理部１６２には、パッキング内の右上の画素における色値を示す８ビットデータが入力される。演算処理部１６２では、先ず、演算処理部１６１で算出された誤差成分Δ１が誤差積算部１６２１に入力される。それから、出力／誤差算出部１６２２において、後に詳述する手順により誤差積算部１６２１で算出された当該画素への誤差累積値を８ビット入力値に加算した後、誤差累積値を加算後の８ビット入力値を二値化してシフトレジスタ１６２３へ出力する。具体的には、誤差累積値を加算後の８ビット入力値が１２８以上の場合には、１ビット出力値は「１」に設定され、誤差累積値を加算後の８ビット入力値が１２７以下の場合には、１ビット出力値は「０」に設定される。それから、この二値化された出力値は、Ｌクロック周期後のＬ＋１段目にシフトレジスタ１６２３から出力され、演算処理部１６２から出力制御部１７へ送られる。
【００４３】
また、出力／誤差算出部１６２２は、二値化された出力値が「１」の場合には、８ビットで表される最大値２５５と、誤差累積値を加算後の８ビット入力値との差分を誤差成分Δ２として算出する。一方、二値化された出力値が「０」の場合には、誤差累積値を加算後の８ビット入力値と、０の値との差分を誤差成分Δ２として算出する。
【００４４】
図４（ｂ）に示されるように、演算処理部１６４には、パッキング内の右下の画素における色値を示す８ビットデータが入力される。入力された８ビットデータは、先ず、シフトレジスタ１６４３に送られて、Ｌクロック周期の間保持される。その後、Ｌ＋１段目の処理では、先ず、演算処理部１６３で算出された誤差成分Δ３が誤差積算部１６４１に入力される。それから、後に詳述する手順により誤差積算部１６４１で算出された当該画素への誤差累積値と、シフトレジスタ１６４３から出力された８ビット入力値とが、出力／誤差算出部１６４２において加算された後に二値化されて出力制御部１７へ出力される。具体的には、誤差累積値を加算後の８ビット入力値が１２８以上の場合には、１ビット出力値は「１」に設定され、誤差累積値を加算後の８ビット入力値が１２７以下の場合には、１ビット出力値は「０」に設定される。
【００４５】
出力／誤差算出部１６４２は、この二値化された出力値が「１」の場合には、８ビットで表される最大値２５５と、誤差累積値を加算後の８ビット入力値との差分を誤差成分Δ４として算出する。一方、二値化された出力値が「０」の場合には、誤差累積値を加算後の８ビット入力値と、０の値との差分を誤差成分Δ４として算出する。
【００４６】
即ち、パッキング内の４画素に対する１ビット出力データは、何れも入力からＬ段遅れてＬ＋１段目の処理で出力制御部１７へ同時に出力されるように構成されている。
【００４７】
次に、誤差積算部１６１１、１６２１、１６３１、１６４１の動作について説明する。
誤差積算部１６１１、１６２１、１６３１、１６４１では、出力／誤差算出部１６１２、１６２２、１６３２、１６４２において各段の処理で算出された誤差成分Δ１〜Δ４が入力されて演算が行われる。具体的には、図３（ａ）に示すように、誤差積算部１６１１では、先ず、１段目の処理で、初期値「０」に対して誤差成分Δ１に所定の分配係数を乗じた値が加算され、次いで、誤差成分Δ２に所定の分配係数を乗じた値が加算されて、これらの加算後の積算値がＦＦ２１１に記憶される。それから、２段目の処理では、ＦＦ２１１に記憶された積算値に対して、この２段目の処理で算出された誤差成分Δ１に所定の分配係数を乗じた値と、誤差成分Δ２に所定の分配係数を乗じた値とが順番に加算されて、加算後の積算値がＦＦ２１２に記憶される。続いて、３段目の処理では、算出された誤差成分Δ１に所定の分配係数を乗じた値がＦＦ２１２に記憶された積算値に加算されて、加算後の積算値がＦＦ２１３に記憶される。ここまでに順番に加算された誤差成分Δ１、Δ２、Δ１、Δ２、Δ１は、それぞれ、図２（ｂ）における画素Ｅ００〜Ｅ０４から分配された誤差成分の値である。また、ＦＦ２１３に記憶されている積算値は、画素Ｅ２２における８ビット入力値に加算される誤差累積値の中間データである。このとき、ＦＦ２１２には、画素Ｅ０１〜Ｅ０４から分配された誤差成分に基づき、画素Ｅ２３における８ビット入力値に加算される誤差累積値の中間データが格納されている。また、ＦＦ２１１には、画素Ｅ０３、Ｅ０４から分配された誤差成分に基づき、画素Ｅ２４における８ビット入力値に加算される誤差累積値の中間データが格納されている。
【００４８】
次に、ＦＦ２１３に記憶された積算値は、シフトレジスタ２１４に送られ、Ｌ−３クロック周期の間に亘って保持される。それから、ＦＦ２１１〜２１３及びシフトレジスタ２１４で合計Ｌクロック周期が経過した積算値データには、Ｌ＋１段目の処理において、誤差成分Δ３に所定の分配係数を乗じた値が加算され、更に、誤差成分Δ４に所定の分配係数を乗じた額が加算される。そして、これらの加算後の積算値がＦＦ２１５に記憶される。この誤差成分Δ３、Δ４は、それぞれシフトレジスタ１６３３、１６４３でＬクロック周期の間保持された後に、出力／誤差算出部１６３２、１６４２で算出された値であり、即ち、図２（ｂ）におけるＥ１０、Ｅ１１の値となる。
【００４９】
ＦＦ２１５に記憶された積算値には、次のＬ＋２段目の処理において、算出された誤差成分Δ３に所定の分配係数を乗じた値と、誤差成分Δ４に所定の分配係数を乗じた値とが順次加算され、これらの加算後の積算値がＦＦ２１６に記憶される。また、次のＬ＋３段目の処理では、算出された誤差成分Δ３に所定の分配係数を乗じた値のみがＦＦ２１６に記憶されていた積算値に加算され、この加算後の積算値データがＦＦ２１７に送られて記憶される。順番に算出されたこれらの誤差成分Δ３、Δ４、Δ３の値は、それぞれ、図２（ｂ）における画素Ｅ１２〜Ｅ１４における色値に対する誤差成分の値となる。
【００５０】
画素Ｅ００〜Ｅ０４、Ｅ１０〜Ｅ１４の誤差成分が積算された誤差累積値の中間データは、次に、ＦＩＦＯ（First In First Out）メモリ２１８に送られて、（Ｍ−Ｌ−３）クロック周期の間、入力順に直列に保持される。その後、Ｍ＋１段目の処理においてＦＩＦＯメモリ２１８から出力された積算値には、算出された誤差成分Δ１、Δ２にそれぞれ所定の分配係数を乗じた値が順番に加算されて、加算後の積算値がＦＦ２１９に記憶される。このときに加算される誤差成分Δ１、Δ２は、図２（ｂ）において画素Ｅ２０、Ｅ２１における誤差成分の値である。従って、ＦＦ２１９に格納された積算値は、画素Ｅ２２に対する誤差累積値となっている。そして、次のＭ＋２段目の処理において、画素Ｅ２２における８ビット入力値が演算処理部１６１に入力されるタイミングと同期してＦＦ２１９から誤差累積値が出力／誤差算出部１６１２に出力されて、出力二値データと誤差成分Δ１とが算出される。
【００５１】
一方、図３（ｂ）に示すように、誤差積算部１６２１では、先ず、１段目の処理で、初期値「０」に対して誤差成分Δ２に所定の分配係数を乗じた値のみが加算されて、この加算された値がＦＦ２２１に記憶される。それから、ＦＦ２２１に記憶された値には、次の２段目の処理において算出された誤差成分Δ１に所定の分配係数を乗じた値と、誤差成分Δ２に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がＦＦ２２２に記憶される。続いて、次の３段目の処理において、ＦＦ２２２に記憶された積算値に、算出された誤差成分Δ１に所定の分配係数を乗じた値と、誤差成分Δ２に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がＦＦ２２３に記憶される。これらの順番に加算された誤差成分Δ２、Δ１、Δ２、Δ１、Δ２は、それぞれ、図２（ｂ）では、画素Ｅ０１〜Ｅ０５における値となる。
【００５２】
次に、ＦＦ２２３に記憶された誤差累積値の中間データとしての積算値は、シフトレジスタ２２４に送られ、Ｌ−３クロック周期の間に亘って保持される。それから、ＦＦ２２１〜２２３及びシフトレジスタ２２４で合計Ｌクロック周期が経過した積算値には、Ｌ＋１段目の処理において、誤差成分Δ４に所定の分配係数を乗じた額が加算され、その後にこの加算された値がＦＦ２２５に記憶される。この誤差成分Δ４は、シフトレジスタ１６４３においてＬ段保持されて遅延した入力値に基づいて算出された１段目の処理における誤差成分の値であり、即ち、図２（ｂ）では、画素Ｅ１１における誤差成分の値となる。
【００５３】
ＦＦ２２５に記憶された積算値には、次のＬ＋２段目の処理において、算出された誤差成分Δ３に所定の分配係数を乗じた値と、誤差成分Δ４に所定の分配係数を乗じた値とが順次加算され、これらの加算後の積算値がＦＦ２２６に記憶される。また、次のＬ＋３段目の処理では、算出された誤差成分Δ３に所定の分配係数を乗じた値と、誤差成分Δ４に所定の分配係数を乗じた値とがＦＦ２２６に記憶されていた値に加算され、これらの加算後の積算値がＦＦ２２７に送られて記憶される。順番に入力されたこれらの誤差成分Δ３、Δ４、Δ３、Δ４の値は、それぞれ、図２（ｂ）では、画素Ｅ１２〜Ｅ１５における誤差成分の値となる。
【００５４】
画素Ｅ０１〜Ｅ０５、Ｅ１１〜Ｅ１５の誤差成分が積算された積算値は、次に、ＦＩＦＯ（First In First Out）メモリ２２８に送られて、（Ｍ−Ｌ−３）クロック周期の間、入力順に直列に保持される。その後、ＦＩＦＯメモリ２２８から出力された積算値データには、Ｍ＋１段目の処理において、算出された誤差成分Δ２にそれぞれ所定の分配係数を乗じた値が加算されて、この加算後の積算値がＦＦ２２９に記憶される。このときに加算される誤差成分Δ２は、図２（ｂ）において画素Ｅ２１における誤差成分の値である。そして、次のＭ＋２段目の処理において、画素Ｅ２２に関する８ビット入力値が演算処理部１６１に入力され、画素Ｅ２２の誤差成分Δ１が算出されると、この誤差成分の値がＦＦ２２９に記憶されていた値に加算されて、最終的な画素Ｅ２３の色値に対する誤差累積値として画素Ｅ２３に関する８ビット入力値と共に出力／誤差算出部１６２２へ出力される。そして、この出力／誤差算出部１６２２において、１ビット出力値と誤差成分Δ２とが算出される。
【００５５】
また、図４（ａ）に示されるように、誤差積算部１６３１における積算処理では、先ず、初期値「０」に対して、誤差成分Δ３に所定の分配係数を乗じた値と、誤差成分Δ４に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がＦＦ２３１に記憶される。このとき、加算された誤差成分Δ３、Δ４は、同一のクロック周期内の処理で算出された誤差成分Δ１、Δ２に対してＬクロック周期だけ前に誤差拡散処理部１６が取得した８ビットデータに対するものである。即ち、１段目に取得された画素Ｅ１０、Ｅ１１の入力値に対する誤差成分Δ３、Δ４が誤差積算部１６３１に入力されるのは、Ｌ＋１段目の処理である。
【００５６】
次のＬ＋２段目の処理において、ＦＦ２３１に記憶されていた積算値には、この処理中で算出された誤差成分Δ３に所定の分配係数を乗じた値と、誤差成分Δ４に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がＦＦ２３２に記憶される。また、更に次のＬ＋３段目の処理では、算出された誤差成分Δ３に所定の分配係数を乗じた値がＦＦ２３２に記憶されていた積算値に加算されてＦＦ２３３に記憶される。それから、次のＬ＋４段目の処理では、ＦＦ２３３に記憶された積算値は、ＦＩＦＯメモリ２３４に送られる。そして、このＦＩＦＯメモリ２３４では、入力された積算値データがＭ−Ｌ−３クロック周期に亘って入力順に直列に保持される。
【００５７】
（Ｍ−Ｌ−３）クロック周期が経過した後、次のＭ＋１段目の処理でＦＩＦＯメモリ２３４から出力された積算値には、このクロック周期内で算出された誤差成分Δ１に所定の分配係数を乗じた値と、誤差成分Δ２に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がＦＦ２３５に記憶される。続いて、次のＭ＋２段目の処理では、このＦＦ２３５に記憶された積算値に、算出された誤差成分Δ１に所定の分配係数を乗じた値と、誤差成分Δ２に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がＦＦ２３６に記憶される。更に、次のＭ＋３段目の処理において、このＦＦ２３６に記憶された積算値に、算出された誤差成分Δ１に所定の分配係数を乗じた値が加算されて、この加算後の積算値がＦＦ２３７に記憶される。誤差成分Δ１、Δ２に関しては、Ｌクロック周期の遅延がないので、このＭ＋１段目からＭ＋３段目の処理によって順番に算出、加算された誤差成分Δ１、Δ２、Δ１、Δ２、Δ１は、それぞれ、画素Ｅ２０〜Ｅ２４において生じた誤差成分である。
【００５８】
ＦＦ２３７に記憶された積算値のデータは、次のＭ＋４段目の処理において、シフトレジスタ２３８に送られる。そして、この積算値データは、（Ｌ−３）クロック周期に亘ってこのシフトレジスタ２３８に保持される。（Ｌ−２）クロック周期後、Ｍ＋Ｌ＋１段目の処理でシフトレジスタ２３８から出力された積算値には、算出された誤差成分Δ３に所定の分配係数を乗じた値と、誤差成分Δ４に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がＦＦ２３９に記憶される。このＭ＋Ｌ＋１段目の処理で加算された誤差成分Δ３、Δ４は、Ｌ段の遅延を考慮すると、それぞれ、画素Ｅ３０、Ｅ３１における誤差成分となる。そして、次のＭ＋Ｌ＋２段目の処理では、演算処理部１６３に画素Ｅ３２の８ビットデータが入力されるのに同期して、最終的に求められた誤差累積値がＦＦ２３９から出力／誤差算出部１６３２へ出力される。
【００５９】
更に、図４（ｂ）に示されるように、誤差積算部１６４１における積算処理では、先ず、初期値「０」に対して、誤差成分Δ４に所定の分配係数を乗じた値が加算されて、ＦＦ２４１に記憶される。このとき、加算された誤差成分Δ４は、同時に算出された誤差成分Δ２よりもＬクロック周期だけ前に取得された色値データによるものである。即ち、Ｌ＋１段目の処理で、１段目に取得された画素Ｅ１１の入力値に対する誤差成分Δ４が得られることになる。
【００６０】
次のＬ＋２段目の処理において、ＦＦ２４１に記憶されていた積算値には、この周期で画素Ｅ１２において算出された誤差成分Δ３に所定の分配係数を乗じた値と、画素Ｅ１３において算出された誤差成分Δ４に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がＦＦ２４２に記憶される。また、更に次のＬ＋３段目の処理で、画素Ｅ１４において算出された誤差成分Δ３に所定の分配係数を乗じた値と、画素Ｅ１５において算出された誤差成分Δ４に所定の分配係数を乗じた値とがＦＦ２４２に記憶されていた積算値に順番に加算されて、これらの加算後の積算値がＦＦ２４３に記憶される。それから、次のＬ＋４段目の処理で、ＦＦ２４３に記憶された積算値データは、ＦＩＦＯメモリ２４４に送られる。そして、このＦＩＦＯメモリ２４４では、入力された誤差累積値の中間データとしての積算値が（Ｍ−Ｌ−３）クロック周期に亘って入力順に直列に保持される。
【００６１】
続いて、（Ｍ−Ｌ−３）クロック周期が経過した後、次のＭ＋１段目の処理でＦＩＦＯメモリ２４４から出力された積算値には、このクロック周期で算出された誤差成分Δ２に所定の分配係数を乗じた値が加算されて、ＦＦ２４５に記憶される。それから、次のＭ＋２段目の処理では、このＦＦ２４５に記憶された積算値に対し、算出された誤差成分Δ１に所定の分配係数を乗じた値と、誤差成分Δ２に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がＦＦ２４６に記憶される。更に、次のＭ＋３段目の処理では、このＦＦ２４６に記憶された積算値に、算出された誤差成分Δ１に所定の分配係数を乗じた値と誤差成分Δ２に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がＦＦ２４７に記憶される。誤差成分Δ１、Δ２に関しては、Ｌクロック周期の遅延がないので、このＭ＋１段目からＭ＋３段目の処理で順番に算出、加算された誤差成分Δ２、Δ１、Δ２、Δ１、Δ２は、それぞれ、画素Ｅ２１〜Ｅ２５における色値の二値化で生じた誤差成分である。
【００６２】
ＦＦ２４７に記憶された積算値データは、次のＭ＋４段目の処理において、シフトレジスタ２４８に送られる。そして、（Ｌ−３）クロック周期に亘ってこのシフトレジスタ２４８に保持される。その後、Ｍ＋Ｌ＋１段目の処理でシフトレジスタ２４８から出力された積算値には、算出された誤差成分Δ４に所定の分配係数を乗じた値が加算されて、この加算後の積算値がＦＦ２４９に記憶される。このＭ＋Ｌ＋１段目の処理で加算された誤差成分Δ４は、Ｌ段の遅延を考慮すると、画素Ｅ３１における誤差成分となる。そして、次のＭ＋Ｌ＋２段目の処理では、演算処理部１６３で算出された画素Ｅ３２に関する誤差成分Δ２が誤差積算部１６４１に入力されると、ＦＦ２４９から出力された積算値と加算され、この加算された値が画素Ｅ３３の色値に対する最終的な誤差累積値として出力／誤差算出部１６４２に送られる。
【００６３】
以上のように、第１実施形態の画像形成装置１に含まれる画像処理演算装置としての誤差拡散処理部１６によれば、取得された画素データにおける色値、及び、当該色値に対する誤差累積値に基づいて、パッキング内の画素数と同数の８ビット色値データに対して並列的に誤差拡散アルゴリズムを用いたハーフトーン処理を行い、出力値、及び、二値化された当該出力値の算出の際に生じた誤差成分の値を算出する出力／誤差算出部１６１２、１６２２、１６３２、１６４２と、取得される画素データにおける色値に対して予め定められた相対位置範囲内の画素データの色値について出力／誤差算出部でそれぞれ算出された誤差成分の値に所定の分配係数を乗じて積算することで、誤差累積値を算出する誤差積算部１６１１、１６２１、１６３１、１６４１と、を備え、これらの出力／誤差算出部は、一の画素データが入力されてから、誤差積算部によって当該一の画素データに対する誤差累積値が算出されるまでの期間以上のＬクロック周期に亘って入力された一の画素データに対するハーフトーン処理の開始をシフトレジスタ１６３３、１６４３により遅延させているので、演算処理部１６１〜１６４の間で誤差成分の算出値をやりとりしながら並列にこれらの誤差成分に基づく誤差累積値が容易、且つ、高速に求められ、この誤差累積値と８ビット入力値とに基づいて各画素における色値の１ビット出力値と誤差成分とをパッキング内の画素の数だけ同一のクロック周期内に並列的に求めることができる。従って、単一の演算処理部でハーフトーン処理を行う場合に比べて、負荷も分散させることができ、全体として安定且つ高速なハーフトーン処理を行うことができる。
【００６４】
また、パッキング単位での画素データの取得、出力／誤差算出部１６１２、１６２２、２６３２、１６４２による並列的な演算処理、及び、誤差積算部１６１１、１６２１、１６３１、１６４１による誤差累積値の算出は、同一のクロック信号に同期して行われるので、データ入出力のタイミング管理を簡便に行いながら、高速にパッキング単位での入出力を伴う画像データのハーフトーン処理を行うことができる。
【００６５】
また、一のパッキング内から取得された画素データに基づくハーフトーン処理は、同一の走査ライン上に位置する画素データに対しては、クロック信号の同一周期内に行われ、異なる走査ライン上に位置する画素データに対しては、副走査方向に進んだライン数毎にＬ段ずつ遅延させて開始されるので、パッキング単位で入力される画素データに対しても、パッキングデータの展開や格納といった煩雑な入出力処理を繰り返すことなく複数の走査ラインに対する並列的なハーフトーン処理を行うことができる。
【００６６】
また、誤差拡散処理部１６は、取得された画素データのパッキング内における相対位置に基づいて（Ｌ−３）クロック周期に亘り画素データを保持するシフトレジスタ１６４３、１６４４を備えるので、上記の遅延処理を容易に行うことができ、また、各パッキング内の相対位置毎に順次入力される画素データに対しては、単純に入力された順番で直列にハーフトーン処理を行うことができる。
【００６７】
また、誤差拡散処理部１６は、この誤差拡散処理部で算出された出力値をパッキング内における相対位置に基づいてそれぞれ予め定められた期間に亘って保持するシフトレジスタ１６１３、１６２３を備え、シフトレジスタ１６１３、１６２３で保持されるクロック周期でＬ周期分の期間と、シフトレジスタ１６３３、１６４３で保持されるクロック周期でＬ周期分の期間とをパッキング内における相対位置ごとに加算した期間の長さは、前記相対位置に拠らず同一のクロック周期でＬ周期分となるように設定されているので、パッキングデータの入力に対応するだけではなく、出力時もパッキングデータのフォーマットに併せてハーフトーン処理がなされたパッキング内の画素データを同じクロック周期内で出力することができる。
【００６８】
また、誤差積算部１６１１、１６２１、１６３１、１６４１は、出力／誤差算出部１６１２、１６２２、１６３２、１６４２により誤差成分の値が算出されるたびに誤差累積値の算出に必要な当該誤差成分の値を順次積算していくことで、取得される画素データに対する誤差累積値を算出するので、一の画素に対して分配される誤差成分の値の計算を一度に集中させずに分散させることができ、従って、処理負荷の軽減を図ることができる。
【００６９】
ここで、演算処理部１６２、１６４の出力／誤差算出部１６２２、１６４２は、演算処理部１６１、１６３から出力される誤差成分Δ１、Δ３がそれぞれ誤差積算部１６２１、１６４１に入力されて、誤差積算値が算出された後に動作する。従って、例えば、クロック周波数信号として半周期毎に高レベルと低レベルとを繰り返す矩形波を用いた場合、出力／誤差算出部１６１２、１６３２をクロック周期の開始時の矩形波立上がり時、出力／誤差算出部１６２２、１６４２の動作をクロック周期の半周時点である矩形波の立下がり時にそれぞれ同期させて行わせることとしてもよい。
【００７０】
［変形例１］
上記第１実施形態の画像形成装置１における誤差拡散処理部１６では、２×２画素のパッキングデータに対する４個の演算処理部１６１〜１６４を設け、これらの演算処理部１６１〜１６４の各々が誤差積算部１６１１、１６２１、１６３１、１６４１と、出力／誤差算出部１６１２、１６２２、１６３２、１６４２と、シフトレジスタ１６１３、１６２３、１６３３、１６４３とを備えることとした。しかしながら、上記のように、主走査方向に並べて配置された画素データに対しては、左側の画素データにおける色値に対する演算処理が終了して誤差成分の値が得られた後に、右側の画素データにおける色値に対する演算処理が行われる。従って、誤差積算部及びシフトレジスタを４個ずつ設ける一方で、副走査方向の行数、即ち、走査ライン数のみによって定められる２個の出力／誤差算出部を設け、主走査方向に配置された画素データに対する演算は、共通の出力／誤差算出部により１クロック周期内で続けて行わせることとしてもよい。この場合には、必要に応じて出力／誤差算出部への入出力データの切り替えを行う回路が付加される。
【００７１】
このような変形例１の画像形成装置１によれば、取得された画素データ、及び、当該画素データに対する誤差累積値に基づいて、パッキング内に含まれる異なる走査ライン上のそれぞれ一の画素データに対しては、並列に画像変換処理を行い、パッキング内の他の画素データに対しては順次画像変換処理が直列に行われるので、共通の出力／誤差算出部により容易に画像変換処理を安定且つ高速に実行することができる。
【００７２】
［第２実施形態］
次に、本発明の第２実施形態の画像形成装置について説明する。
図５は、第２実施形態の画像形成装置の全体構成図である。
【００７３】
この第２実施形態の画像形成装置１ｂは、入力された画素の周辺画素の濃淡判断に基づいて、入力画素の領域が文字の表示領域であるか否かを判別し、文字の表示領域であると判別されたにも係わらず中間の階調である場合には、白又は黒の何れかの階調に変更する処理を行うものである。この画像形成装置１ｂの構成は、誤差拡散処理部１６の代わりに領域判別処理部１６ｂが備えられている点を除いて、第１実施形態の画像形成装置１と同一である。第１実施形態の画像形成装置１と同一の構成要素については、同一の符号を付して説明を省略する。
【００７４】
図６、及び、図７は、領域判別処理部１６ｂの構成を示す図である。
【００７５】
領域判別処理部１６ｂは、図６（ａ）、（ｂ）及び図７（ａ）、（ｂ）に示すように、４個の演算処理部１６１ｂ〜１６４ｂを備えている。
【００７６】
図６（ａ）は、パッキング内の左上の画素における色値を表す８ビット入力値に対して処理を行う演算処理部１６１ｂである。また、図６（ｂ）、図７（ａ）、（ｂ）は、それぞれ、パッキング内の右上、左下、右下の画素における色値を表す８ビット入力値に対して処理を行う演算処理部１６２ｂ〜１６４ｂである。これらの演算処理部１６１ｂ〜１６４ｂには、１クロック周期ごとにそれぞれ１つの８ビットデータが順次入力されて１段の処理が行われる。
【００７７】
図６（ａ）に示すように、演算処理部１６１ｂは、判別結果積算部１６１１ｂと、出力／領域判別部１６１２ｂと、シフトレジスタ１６１３とを備えている。同様に、演算処理部１６２ｂは、判別結果積算部１６２１ｂと、出力／領域判別部１６２２ｂと、シフトレジスタ１６２３とを備え（図５（ｂ））、演算処理部１６３ｂは、判別結果積算部１６３１ｂと、出力／領域判別部１６３２ｂと、シフトレジスタ１６３３とを備え（図６（ａ））、また、演算処理部１６４ｂは、判別結果積算部１６４１ｂと、出力／領域判別部１６４２ｂと、シフトレジスタ１６４３とを備えている（図６（ｂ））。
【００７８】
判別結果積算部１６１１ｂ、１６２１ｂ、１６３１ｂ、１６４１ｂは、何れも１２個の乗算器が含まれず、また、この乗算器への分配係数の入力がなされない点を除いて第１実施形態の画像形成装置１における誤差積算部１６１１、１６２１、１６３１、１６４１と同一の構成である。従って、同一の構成要素に関しては、同一の符号を付して説明を省略する。この判別結果積算部１６１１ｂ、１６２１ｂ、１６３１ｂ、１６４１ｂは、出力／領域判別部１６１２ｂ、１６２２ｂ、１６３２ｂ、１６４２ｂから出力された指標値としての判別結果を表す値（即ち、０又は１の値）を直接加算器に入力させ、単純に入力されたこれら１２個の値を積算した結果積算値をＭ＋２段後に中間値として出力／領域判別部へ出力する。即ち、本実施形態の判別結果積算部１６１１ｂ、１６２１ｂ、１６３１ｂ、１６４１ｂからは、最低０、最高１２の整数値が出力／領域判別部へ出力される。
【００７９】
出力／領域判別部１６１２ｂは、８ビット入力値と、判別結果積算部１６１１ｂから出力された中間値としての結果積算値とに基づいて、入力された画素が文字領域内の画素であるか否かを判別する。そして、文字領域内であると判別された場合には、指標値として１を判別結果積算部１６１１ｂに出力するとともに、８ビット入力値が０又は２５５ではない場合には、何れか近いほうの値に修正して、修正された８ビット値を出力制御部１７へ出力する。一方、文字領域内ではないと判別された場合には、指標値として０を判別結果積算部１６１１ｂに出力するとともに、入力された８ビットデータをそのまま出力値として出力制御部１７へ出力する。出力／領域判別部１６２２ｂ、１６３２ｂ、１６４２ｂの動作は、出力／領域判別部１６１２ｂの動作と同様であり、説明を省略する。
【００８０】
出力／領域判別部１６１２ｂ、１６２２ｂ、１６３２ｂ、１６４２ｂにおける文字領域内であるか否かの判別方法としては、例えば、判別結果積算部１６１１ｂ、１６２１ｂ、１６３１ｂ、１６４１ｂから入力された結果積算値が６以上であるか否かによって決定する。或いは、結果積算値が４以上であり、且つ、入力された画素の８ビット値が０又は２５５から所定の範囲内にあることによって判別することとしてもよい。また、本実施形態では、隣接する１２画素のデータに基づいて判別したが、より多くの画素のデータを利用したり、より複雑な形状の範囲内の画素に関する入力データを用いることとしたりすることができる。
【００８１】
以上のように、本実施形態の画像形成装置１ｂによれば、誤差拡散アルゴリズムを用いたハーフトーン処理だけではなく、周辺画素の領域判定結果に基づいて算出、格納された中間値を利用して行う領域判別処理のように、画像処理対象画素データに対して予め定められた相対位置範囲内の画素データに基づいて算出された中間値を用いた画像変換処理を行う画像処理演算装置であるので、パッキングデータの入力に関する煩雑な処理を行うことなく複数の画素データに対して並列に処理を行うことで、領域判別処理部１６ｂに過大な負担をかけることなく安定且つ高速に画像変換処理行うことができる。
【００８２】
なお、本発明は、上記実施の形態に限られるものではなく、様々な変更が可能である。例えば、上記実施の形態では、画像変換処理としてハーフトーン処理及び文字領域判別処理を行ったが、これらの処理を続けて行うこととしてもよいし、或いは、これらの処理以外の他の処理を他の指標値や中間値に基づいて行うこととしてもよい。例えば、色値の二値化処理に限らず、元の画像の階調数より少ない階調数の画像へ変換する際にも本発明を適用することが可能である。また、第２実施形態の画像処理演算装置においては、指標値として二値化して出力したが、多値化することでより柔軟且つ厳密に分類することとしてもよい。
【００８３】
また、上記実施の形態では、２×２画素毎にパッキングされたデータに対して４個の演算処理部１６１〜１６４、１６１ｂ〜１６４ｂを設けて画像変換処理を行ったが、パッキングの態様はこれに限られない。例えば、２４００ｄｐｉに変換された画像に対して４×４画素のパッキングを行うなど、１クロック周期の中での処理が可能な範囲で適宜変更可能である。そして、当該パッキング内の画素数に従って演算処理部の数を増減させて誤差拡散処理部１６や領域判別処理部１６ｂを構成することができる。
【００８４】
また、上記実施の形態では、ＣＭＹＫカラーにより表現された画像データに対しての変換処理を行ったが、グレースケールによる画像データやＲＧＢカラーにより表現された画像データに対して本発明を適用することも可能である。
【００８５】
また、上記実施の形態では、シフトレジスタ及びＦＩＦＯメモリを用いて画素データの遅延処理を行わせたが、遅延の方法は、これに限られない。通常の揮発性メモリに記憶させ、アドレスに基づいて呼び出すことでも本発明を実施することが可能である。
【００８６】
また、上記実施の形態では、演算処理やデータの格納、移動処理を全て同一のクロック信号と同期させて行ったが、例えば、ブロック内の左上の画素の入力タイミングのみをクロック信号に基づいて制御し、その他の処理は、全てのデータの入力が行われた段階で順次動作が行われるように構成してもよい。
【００８７】
また、上記実施の形態では、各クロック周期内で算出された誤差成分の値を各誤差累積値の中間データに加算させ、これらの各誤差累積値の値を各ＦＦやＦＩＦＯ、シフトレジスタなどに格納させたが、逆に、各誤差成分の値をＦＦやＦＩＦＯ、シフトレジスタなどに格納させ、誤差累積値を一時、又は、より限られた段数の処理で算出して出力／誤差算出部に入力させることも可能である。
その他、実施の形態で示した具体的な構成要素の組み合わせや配置は、本発明の趣旨を逸脱しない限りにおいて、適宜変更可能である。
【符号の説明】
【００８８】
１、１ｂ      画像形成装置
１１   スキャン入力部
１２   色空間変換処理部
１３   一時記憶部
１４   解像度変換処理部
１５   画像処理部
１６   誤差拡散処理部
１６１〜１６４、１６１ｂ〜１６４ｂ   演算処理部
１６１１、１６２１、１６３１、１６４１    誤差積算部
１６１２、１６２２、１６３２、１６４２    出力／誤差算出部
１６１３、１６２３、１６３３、１６４３    シフトレジスタ
１６ｂ   領域判別処理部
１６１１ｂ、１６２１ｂ、１６３１ｂ、１６４１ｂ    判別結果積算部
１６１２ｂ、１６２２ｂ、１６３２ｂ、１６４２ｂ    出力／領域判別部
１７   出力制御部
１８   画像形成部
２１４、２２４、２３８、２４８   シフトレジスタ
２１８、２２８、２３４、２４４   メモリ
【図１】
0005617644.tif 000002
【図２】
0005617644.tif 000003
【図３】
0005617644.tif 000004
【図４】
0005617644.tif 000005
【図５】
0005617644.tif 000006
【図６】
0005617644.tif 000007
【図７】
0005617644.tif 000008