説明

画像処理演算装置、及び、画像形成装置

【課題】 パッキングされた画像データに対して中間値を含む画像処理を高速化することができる画像処理演算装置及び画像形成装置を提供する。
【解決手段】 複数画素毎に一のブロックにまとめた画像データからブロック単位で画素データを取得し、各画素データと、その画素データ以外の画素データに基づいて算出された中間値とを用いた画像変換処理を行う画像処理演算装置であって、副走査方向に配列された画素データに対して並列的に画像変換処理を行い、画素データと中間値とに基づき出力値及び出力値の評価に関する指標値を算出する並列演算部と、指標値に基づき中間値を算出する中間値算出部と、一の画素データが入力されてから、この画素データに対する中間値が算出されるまでの期間以上この画素データに対する画像変換処理の開始を遅延させる第1保持部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画像データの処理を行う画像処理演算装置、及び、この画像処理演算装置を備える画像形成装置に関する。
【背景技術】
【0002】
従来、デジタル画像データをプリンタなどに出力する際に、各画素における各表示色の階調を示す色値をそれぞれ複数ビットで表す多値データから1ビットで表す二値データに変換するハーフトーン処理が行われている。このハーフトーン処理において、元の画像を高画質で表現する手法の一つとしては、誤差拡散アルゴリズムがある。誤差拡散アルゴリズムでは、各色値を二値化することにより発生する元の多値データからの誤差(差分)を周辺画素に所定の割合で分配して同色の色値に加算することで拡散させ、情報量の減少を防いでいる。
【0003】
この誤差拡散アルゴリズムによるハーフトーン処理では、各画素の色値に加算される値を求める際に、この加算値を中間値としてメモリに格納する必要がある。ハーフトーン処理に限らず、このような中間値データを用いて行う画像処理は、回路が複雑になって処理時間が長くなりやすい。そこで、画像処理の高速化を図るために、例えば、引用文献1には、複数の走査ラインのデータに対して複数の画像処理部を備え、並列的に処理を実行することで高速化する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平6−266324号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
一方、画像データによっては、主走査方向及び副走査方向にそれぞれ連続する所定の複数画素データをブロック化したデータ(以降、パッキングデータと記す)ごとに扱う方が好ましい場合がある。例えば、高画質化に伴い画素数を変換する処理などが行われた画像データでは、画素数を変換する前の画素範囲に基づいてブロック化された各画素データを一括して取り扱うことで、より容易に行うことができる画像処理がある。
【0006】
しかしながら、従来、ブロック化された各画素データを走査ラインごとに並べ替えて画像処理部へ入力しようとすると、並べ替え処理に時間を要するという問題がある。更に、このようなパッキングデータが誤差拡散アルゴリズムによるハーフトーン処理の入力データとして用いられる場合には、走査ラインごとに画素データを取得しながら演算処理を行おうとすると、処理が複雑になったり、効果的に処理の高速化が行われなかったりするという問題が生じる。
【0007】
この発明の目的は、パッキングされた画像データに対して中間値を含む画像処理を行う際の処理速度を容易且つ安定に高速化することができる画像処理演算装置及び画像形成装置を提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するため、請求項1に記載の発明は、
画像データから少なくとも副走査方向に複数の画素を含む所定のマトリックス状に区分されたブロック単位で画素データを取得し、各々の前記画素データと、当該画素データに対して他の画素データに基づいて求められる中間値とを用いた所定の画像変換処理を行う画像処理演算装置であって、
前記取得された画素データ、及び、当該画素データに対する前記中間値に基づいて、前記ブロック内の副走査方向へ配列された前記画素データに対して並列に前記画像変換処理を行い、それぞれ、前記画素データを変換した後の出力値、及び、当該出力値の評価に関する指標値を算出する並列演算部と、
前記取得される画素データに対し、前記予め定められた相対位置範囲内の画素データについて前記並列演算部でそれぞれ算出された前記指標値に基づく所定の演算を行うことで、前記中間値を算出する中間値算出部と、
一の画素データが取得されてから、前記中間値算出部によって当該一の画素データに対する前記中間値が算出されるまでの時間差以上に設定された期間に亘り、前記並列演算部による前記一の画素データに対する前記画像変換処理の開始を遅延させるための第1保持部と、
を備えることを特徴とする画像処理演算装置である。
【0009】
請求項2に記載の発明は、
画像データから主走査方向及び副走査方向にそれぞれ複数の画素を含む所定のマトリックス状に区分されたブロック単位で画素データを取得し、各々の前記画素データと、当該画素データに対して他の画素データに基づいて求められる中間値とを用いた所定の画像変換処理を行う画像処理演算装置であって、
前記取得された画素データ、及び、当該画素データに対する前記中間値に基づいて、前記ブロック内の画素数と同数の画素データに対して並列に前記画像変換処理を行い、前記画素データを変換した後の出力値、及び、当該出力値の評価に関する指標値を算出する並列演算部と、
前記取得される画素データに対し、前記予め定められた相対位置範囲内の画素データについて前記並列演算部でそれぞれ算出された前記指標値に基づく所定の演算を行うことで、前記中間値を算出する中間値算出部と、
一の画素データが取得されてから、前記中間値算出部によって当該一の画素データに対する前記中間値が算出されるまでの時間差以上に設定された期間に亘り、前記並列演算部による前記一の画素データに対する前記画像変換処理の開始を遅延させるための第1保持部と、
を備えることを特徴とする画像処理演算装置である。
【0010】
請求項3記載の発明は、請求項1又は2に記載の画像処理演算装置において、
前記ブロック単位での画素データの取得、前記第1保持部、前記並列演算部、及び、前記中間値算出部のそれぞれの動作は、同一のクロック信号に同期して行われる
ことを特徴としている。
【0011】
請求項4記載の発明は、請求項3記載の画像処理演算装置において、
一のブロック内から取得された前記画素データに基づく前記画像変換処理は、同一の走査ライン上に位置する画素データに対しては、前記クロック信号の同一周期内に行われ、異なる走査ライン上に位置する前記画素データに対しては、前記第1保持部により、副走査方向に進んだライン数と、前記相対位置範囲の主走査方向への幅とに基づいて、前記クロック信号の周期の整数倍だけ遅延して行われるように設定される
ことを特徴としている。
【0012】
請求項5記載の発明は、請求項1〜4の何れか1項に記載の画像処理演算装置において、
前記第1保持部は、
前記ブロック内における相対位置ごとに前記取得された画素データを直列に保持し、当該相対位置に基づいて設定される遅延量に基づいて、前記並列演算部による前記画像変換処理を遅延させる
ことを特徴としている。
【0013】
請求項6記載の発明は、請求項5記載の画像処理演算装置において、
前記並列演算部は、
当該並列演算部で算出された前記出力値を前記ブロック内における相対位置ごとにそれぞれ予め定められた期間に亘って保持する第2保持部を備え、
前記第1保持部で前記画像データが保持される期間と、前記第2保持部で前記出力値が保持される期間とを前記相対位置ごとに加算した期間の長さは、前記相対位置に拠らず同一となるように設定されている
ことを特徴としている。
【0014】
請求項7記載の発明は、請求項1〜6の何れか1項に記載の画像処理演算装置において、
前記中間値算出部は、
前記演算部により前記指標値が算出されるたびに前記中間値の算出に必要な当該指標値を順次積算していくことで、前記取得される画素データに対する前記中間値を算出する
ことを特徴としている。
【0015】
請求項8記載の発明は、
請求項1〜7の何れか一項に記載の画像処理演算装置と、
前記画像データを前記ブロック単位に区分して前記画像処理演算装置に入力する入力手段と、
前記画像処理演算装置から出力される前記出力値の出力タイミングを制御する出力制御手段と、
前記出力値に基づいて画像を形成する画像形成手段と、
を備える画像形成装置である。
【発明の効果】
【0016】
本発明に従うと、パッキングされた画像データを用いて中間値を含む画像処理を行う画像処理演算装置及びこの画像処理演算装置を含む画像形成装置を用いて、処理速度を容易且つ安定に高速化することができるという効果がある。
【図面の簡単な説明】
【0017】
【図1】本発明の第1実施形態の画像形成装置の構成を示す図である。
【図2】誤差拡散パターンの例を説明する図である。
【図3】誤差拡散処理部の構成を説明する図である。
【図4】誤差拡散処理部の構成を説明する図である。
【図5】第2実施形態の画像形成装置の構成を示す図である。
【図6】領域判別処理部の構成を説明する図である。
【図7】領域判別処理部の構成を説明する図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態を図面に基づいて説明する。
【0019】
[第1実施形態]
図1は、第1実施形態の画像形成装置の全体構成図である。この第1の実施形態における画像形成装置1は、パッキングされた画像データの入力に対して誤差拡散アルゴリズムを用いてハーフトーン処理を行い二値化した画像データを形成する装置である。
【0020】
画像形成装置1は、スキャン入力部11と、色空間変換処理部12と、一時記憶部13と、解像度変換処理部14と、画像処理部15と、画像処理演算装置としての誤差拡散処理部16と、出力制御部17と、画像形成部18などを備えている。
【0021】
スキャン入力部11(入力手段)は、イメージスキャナやOCR(Optical Character Reader)といった入力デバイスから取得された画素表示による画像データの入力処理を行う。また、色空間変換処理部12は、各8ビットのRGBカラー(赤緑青の三色)の色空間で表現された画像データをプリント出力用に各8ビットのCMYKカラー(シアン、マゼンタ、黄色、黒の4色)の色空間で表現された画像データに変換する処理を行う。なお、入力データとしては、PCの記憶装置(HDD、Hard Disk Drive)や、フラッシュメモリ、CD−R(Compact Disc Recordable)、DVD−R(Digital Versatile Disc Recordable)といったリムーバブルメディアに一度貯蔵されたデータを取得することとしてもよい。また、CMYKカラーによる画像データが直接入力される場合には、色空間変換処理部12による処理を省略することができる。また、色空間変換処理以外の種々の処理を併せて行うこととしてもよい。
【0022】
一時記憶部13は、4個の記憶部を備えており、これら4個の記憶部は、色空間変換処理部12から出力された画像データをCMYKカラーそれぞれの色ごとに階調を示す色値を一時的に記憶する。この一時記憶部13は、例えば、HDDやDRAM(Dynamic Random Access Memory)である。
【0023】
解像度変換処理部14は、スキャン入力部11などから入力された画像データの解像度を変換する。本実施形態の画像形成装置1では、例えば、600dpi(dot per inch)で入力された画像データを補完処理によって1200dpiに変換する処理を行う。即ち、600dpi画像における1画素は、1200dpi画像における主走査方向に2画素、副走査方向に2画素のマトリックス状に区分された4画素に分割されることになる。また、画像処理部15は、1200dpiに変換された画像データをこの4画素で構成されるブロック単位で1つのパッキングデータとして、このパッキング内の4画素データを一括して誤差拡散処理部16へ送れるように配列する処理を行う。また、同時に、他の種々の画像処理を行うこととしてもよい。
【0024】
誤差拡散処理部16は、画像処理部15から入力された画像データに基づいて後に詳述する誤差拡散アルゴリズムを利用したハーフトーン処理を行う。この誤差拡散処理部16は、演算処理部を4個並列に備えている。この演算処理部には、パッキングされた4画素におけるCMYKカラーそれぞれの色値を示す8ビットデータが図示略のクロック信号入力に同期して順次入力され、また、それぞれ二値化された1ビットデータがそれぞれ出力値として出力制御部17に出力される。また、4つの演算処理部の間では、各々行われたハーフトーン処理に伴い発生する誤差の値が出力値の評価に関する指標値としてやり取りされる。この誤差拡散処理部16を構成する回路は、ASIC(Application Specific Integrated Circuit)上にまとめて形成されている。また、このASIC上には、パッキングされた画像データに対する他の画像処理機能に係る処理回路が併せて形成されていることとしてもよい。
【0025】
出力制御部17(出力制御手段)は、誤差拡散処理部16で各画素におけるCMYKカラーの各色値が二値化された画像データを所定の順番に整列しなおすと共に、この二値化された信号や二値化信号に基づく動作制御信号を画像形成部18(画像形成手段)や外部機器(例えば、共有プリンタ)に出力するタイミングを制御する。このタイミング制御の処理は、出力制御部17に搭載されたCPU(Central Processing Unit)やRAM(Random Access Memory)などを用いて独自に行われてもよいし、電源制御、スキャン入力部11における入力制御や、誤差拡散処理部16の動作のオンオフを制御する機能などと併せて画像形成装置1の全体の制御を統括するマイコン(図示略)が制御を行うこととしてもよい。そして、画像形成部18は、出力された動作制御信号に従って画像を形成する。
【0026】
次に、本実施形態の画像形成装置1における誤差拡散のパターンと、誤差拡散処理部16の構成とについて説明する。
【0027】
図2は、本発明の第1実施形態の画像形成装置で用いられる誤差拡散処理のパターンを説明する図である。また、図3及び図4は、誤差拡散処理部の構成を示す図である。
【0028】
誤差拡散の際に一の画素データから誤差が分配される相対位置範囲、及び、各相対位置における分配係数のパターンとしては、精度の良いものが複数知られており、適宜選択される。図2(a)に示されているように、本発明の第1実施形態の画像形成装置1で用いられる誤差拡散のパターンでは、ハーフトーン処理が行われる対象の画素の位置を基準として、同一走査ライン上で主走査方向に相対的に2画素と、副走査方向へ一本先の走査ライン、及び、二本先の走査ライン上で主走査方向にそれぞれ相対的に±2画素との範囲内の合計12画素が誤差拡散の行われる範囲となる。そして、誤差拡散の行われる範囲内の画素における色値には、ハーフトーン処理が行われた対象の画素におけるこの色値の二値化により生じた誤差成分の値(指標値)に、各画素の相対位置に基づいて定められている分配係数を乗じた値が分配されて加算される。即ち、図2(a)の画素E03において各色値に生じた誤差成分は、ハッチで示された画素E04、E05、E11〜E15、E21〜E25における各色値に分配されて加算される。また、画素E23の各色値に加算される指標値としての誤差成分の値は、図2(b)に示すように、画素E01〜E05、E11〜E15、E21、E22において生じたものである。
【0029】
分配係数の設定は、特に限られないが、例えば、図2(a)において、画素E03に隣接する2画素(画素E04、E13)に対しては7/48、これらの2画素に隣接する4画素(E05、E12、E14、E23)に対しては5/48、これらの4画素に隣接し、分配係数として7/48が設定されている画素を除く4画素(E11、E22、E24、E15)に対しては3/48、残りの2画素(E21、E25)に対しては、1/48のように、元の画素から離れるにつれて漸減し、且つ、全ての分配係数の和が1となるように設定することができる。また、主走査方向の左から右へ、次いで、副走査方向の上から下へ順番にハーフトーン処理が行われる場合に各画素の色値で生じる誤差は、全てハーフトーン処理が未だ行われていない画素における色値を示す8ビットデータに対して分配される。
【0030】
このような誤差拡散パターンに基づいてハーフトーン処理を行う誤差拡散処理部16は、図3及び図4に示すように、4個の演算処理部161〜164を備えている。
【0031】
図3(a)は、パッキング内の左上の画素における色値を示す8ビットデータに対してハーフトーン処理を行う演算処理部161である。また、図3(b)、図4(a)、及び、図4(b)は、それぞれ、パッキング内の右上、左下、右下の画素における色値を示す8ビットデータに対してハーフトーン処理を行う演算処理部162〜164である。これらの演算処理部161〜164には、1クロック周期毎にそれぞれ1個の8ビットデータが順次入力される。
【0032】
図3(a)に示すように、演算処理部161は、中間値算出部としての誤差積算部1611と、並列演算部としての出力/誤差算出部1612と、第1保持部としてのシフトレジスタ1613とを備えている。同様に、演算処理部162は、誤差積算部1621と、出力/誤差算出部1622と、シフトレジスタ1623とを備え(図3(b))、演算処理部163は、誤差積算部1631と、出力/誤差算出部1632と、第2保持部としてのシフトレジスタ1633とを備え(図4(a))、また、演算処理部164は、誤差積算部1641と、出力/誤差算出部1642と、シフトレジスタ1643とを備えている(図4(b))。
【0033】
シフトレジスタ1613、1623、1633、1643は、何れも、1クロック周期ごとに入力される色値データがL段分入力順に保持されて、L+1段後に出力されるものである。ここで、段数Lは、誤差拡散により一度に誤差が分配される主走査方向のパッキング数(本実施形態では、3)より大きい値である。即ち、パッキング内の副走査方向に進んだ主走査ライン上の画素に対する演算処理を行うタイミングは、当該画素データが取得されてから、前の主走査ライン上の画素における二値化処理により当該画素へ分配される誤差の算出処理が終了するまでの時間が経過した後に行われる。なお、入力画像の主走査方向に配列されたパッキング数M(本実施形態では、主走査方向のピクセル数の半分の値、1インチ当たり600)は、この誤差拡散により一度に誤差が分配される主走査方向のパッキング数よりも十分大きい。また、本実施形態では、各処理がクロック信号に同期して行われるので、遅延の段数Lは、整数となる。
【0034】
誤差積算部1611、1621、1631、1641には、それぞれ、12個の乗算器と、これらの乗算器に直列に接続され、且つ、一端から初期値「0」が入力される信号線上に直列に配置された12個の加算器と、12個の加算器の間に設けられた7個のFF(フリップフロップ回路)、シフトレジスタ、及び、FIFO(First-In First-Out)メモリとが含まれている。信号線上における加算器、FF、シフトレジスタ、FIFOメモリの配列の順番は、誤差積算部1611、1621、1631、1641では、後述するようにそれぞれ異なっている。12個の乗算器には、乗算器毎に定められた分配係数、及び、演算処理部161〜164でそれぞれ算出される誤差成分の値が入力される。また、これらの誤差積算部1611、1621、1631、1641からは、誤差拡散アルゴリズムによって求められ、各画素における色値に加算される中間値としての誤差累積値が出力/誤差算出部1612、1622、1632、1642に出力される。
【0035】
出力/誤差算出部1612、1622、1632、1642は、入力された各画素における色値、及び、この色値に対する誤差累積値に基づき、二値化された色値と、二値化に伴う誤差成分の値を算出して出力する演算処理を行う。この出力/誤差算出部1612、1622、1632、1642は、特に制限されないが、例えば、これらの色値と誤差積分値との和を求める加算器と、この加算器の出力と所定の閾値(本実施形態では、128)との大小を比較して比較結果に基づき、二値化された色値として1ビット出力信号(1及び0)を出力する比較器と、加算器の出力と比較器の出力に基づく8ビット信号(即ち、255及び0)との間の差分を求め、誤差成分の値として出力する減算器と、を備える。
【0036】
次に、本実施形態の演算処理部の動作について説明する。
【0037】
本実施形態の演算処理部161〜164では、外部から入力されるクロック信号に同期して、1段ずつデータの入出力、シフトレジスタにおけるデータの移動、及び、出力する1データを算出するための一連の演算処理が行われる。
【0038】
図3(a)に示されるように、演算処理部161には、パッキング内の左上の画素における色値を示す8ビットデータが入力される。そして、入力された8ビット値は、出力/誤差算出部1612において、後に詳述する手順により誤差積算部1611で算出された当該画素への誤差累積値と加算され、続いて、二値化されてシフトレジスタ1613に送られる。具体的には、誤差累積値を加算後の8ビット入力値が128以上の場合には、二値化されて1ビットで表される1ビット出力値は「1」に設定され、誤差累積値を加算後の8ビット入力値が127以下の場合には、1ビット出力値は「0」に設定される。それから、この二値化されたデータは、L+1段目の処理でシフトレジスタ1613から出力され、演算処理部161から出力制御部17へ送られる。
【0039】
また、出力/誤差算出部1612は、二値化された出力値が「1」の場合には、8ビットで表される最大値255と、誤差累積値を加算後の8ビット入力値との差分を誤差成分Δ1として算出する。一方、二値化された出力値が「0」の場合には、誤差累積値を加算後の8ビット入力値と、0の値との差分を誤差成分Δ1として算出する。
【0040】
図4(a)に示されるように、演算処理部163には、パッキング内の左下の画素における色値を示す8ビットデータが入力される。入力された8ビットデータは、先ず、シフトレジスタ1633に送られて、Lクロック周期の間保持される。その後、L+1段目の処理では、シフトレジスタ1633から出力された8ビット入力値は、出力/誤差算出部1632において、後に詳述する手順により誤差積算部1631で算出された当該画素への誤差累積値と加算された後に二値化されて出力制御部17へ出力される。具体的には、誤差累積値を加算後の8ビット入力値が128以上の場合には、1ビット出力値は「1」に設定され、誤差累積値を加算後の8ビット入力値が127以下の場合には、1ビット出力値は「0」に設定される。
【0041】
出力/誤差算出部1632は、二値化された出力値が「1」の場合には、8ビットで表される最大値255と、誤差累積値を加算後の8ビット入力値との差分を誤差成分Δ3として算出する。一方、二値化された出力値が「0」の場合には、誤差累積値を加算後の8ビット入力値と、0の値との差分を誤差成分Δ3として算出する。
【0042】
一方、図3(b)に示されるように、演算処理部162には、パッキング内の右上の画素における色値を示す8ビットデータが入力される。演算処理部162では、先ず、演算処理部161で算出された誤差成分Δ1が誤差積算部1621に入力される。それから、出力/誤差算出部1622において、後に詳述する手順により誤差積算部1621で算出された当該画素への誤差累積値を8ビット入力値に加算した後、誤差累積値を加算後の8ビット入力値を二値化してシフトレジスタ1623へ出力する。具体的には、誤差累積値を加算後の8ビット入力値が128以上の場合には、1ビット出力値は「1」に設定され、誤差累積値を加算後の8ビット入力値が127以下の場合には、1ビット出力値は「0」に設定される。それから、この二値化された出力値は、Lクロック周期後のL+1段目にシフトレジスタ1623から出力され、演算処理部162から出力制御部17へ送られる。
【0043】
また、出力/誤差算出部1622は、二値化された出力値が「1」の場合には、8ビットで表される最大値255と、誤差累積値を加算後の8ビット入力値との差分を誤差成分Δ2として算出する。一方、二値化された出力値が「0」の場合には、誤差累積値を加算後の8ビット入力値と、0の値との差分を誤差成分Δ2として算出する。
【0044】
図4(b)に示されるように、演算処理部164には、パッキング内の右下の画素における色値を示す8ビットデータが入力される。入力された8ビットデータは、先ず、シフトレジスタ1643に送られて、Lクロック周期の間保持される。その後、L+1段目の処理では、先ず、演算処理部163で算出された誤差成分Δ3が誤差積算部1641に入力される。それから、後に詳述する手順により誤差積算部1641で算出された当該画素への誤差累積値と、シフトレジスタ1643から出力された8ビット入力値とが、出力/誤差算出部1642において加算された後に二値化されて出力制御部17へ出力される。具体的には、誤差累積値を加算後の8ビット入力値が128以上の場合には、1ビット出力値は「1」に設定され、誤差累積値を加算後の8ビット入力値が127以下の場合には、1ビット出力値は「0」に設定される。
【0045】
出力/誤差算出部1642は、この二値化された出力値が「1」の場合には、8ビットで表される最大値255と、誤差累積値を加算後の8ビット入力値との差分を誤差成分Δ4として算出する。一方、二値化された出力値が「0」の場合には、誤差累積値を加算後の8ビット入力値と、0の値との差分を誤差成分Δ4として算出する。
【0046】
即ち、パッキング内の4画素に対する1ビット出力データは、何れも入力からL段遅れてL+1段目の処理で出力制御部17へ同時に出力されるように構成されている。
【0047】
次に、誤差積算部1611、1621、1631、1641の動作について説明する。
誤差積算部1611、1621、1631、1641では、出力/誤差算出部1612、1622、1632、1642において各段の処理で算出された誤差成分Δ1〜Δ4が入力されて演算が行われる。具体的には、図3(a)に示すように、誤差積算部1611では、先ず、1段目の処理で、初期値「0」に対して誤差成分Δ1に所定の分配係数を乗じた値が加算され、次いで、誤差成分Δ2に所定の分配係数を乗じた値が加算されて、これらの加算後の積算値がFF211に記憶される。それから、2段目の処理では、FF211に記憶された積算値に対して、この2段目の処理で算出された誤差成分Δ1に所定の分配係数を乗じた値と、誤差成分Δ2に所定の分配係数を乗じた値とが順番に加算されて、加算後の積算値がFF212に記憶される。続いて、3段目の処理では、算出された誤差成分Δ1に所定の分配係数を乗じた値がFF212に記憶された積算値に加算されて、加算後の積算値がFF213に記憶される。ここまでに順番に加算された誤差成分Δ1、Δ2、Δ1、Δ2、Δ1は、それぞれ、図2(b)における画素E00〜E04から分配された誤差成分の値である。また、FF213に記憶されている積算値は、画素E22における8ビット入力値に加算される誤差累積値の中間データである。このとき、FF212には、画素E01〜E04から分配された誤差成分に基づき、画素E23における8ビット入力値に加算される誤差累積値の中間データが格納されている。また、FF211には、画素E03、E04から分配された誤差成分に基づき、画素E24における8ビット入力値に加算される誤差累積値の中間データが格納されている。
【0048】
次に、FF213に記憶された積算値は、シフトレジスタ214に送られ、L−3クロック周期の間に亘って保持される。それから、FF211〜213及びシフトレジスタ214で合計Lクロック周期が経過した積算値データには、L+1段目の処理において、誤差成分Δ3に所定の分配係数を乗じた値が加算され、更に、誤差成分Δ4に所定の分配係数を乗じた額が加算される。そして、これらの加算後の積算値がFF215に記憶される。この誤差成分Δ3、Δ4は、それぞれシフトレジスタ1633、1643でLクロック周期の間保持された後に、出力/誤差算出部1632、1642で算出された値であり、即ち、図2(b)におけるE10、E11の値となる。
【0049】
FF215に記憶された積算値には、次のL+2段目の処理において、算出された誤差成分Δ3に所定の分配係数を乗じた値と、誤差成分Δ4に所定の分配係数を乗じた値とが順次加算され、これらの加算後の積算値がFF216に記憶される。また、次のL+3段目の処理では、算出された誤差成分Δ3に所定の分配係数を乗じた値のみがFF216に記憶されていた積算値に加算され、この加算後の積算値データがFF217に送られて記憶される。順番に算出されたこれらの誤差成分Δ3、Δ4、Δ3の値は、それぞれ、図2(b)における画素E12〜E14における色値に対する誤差成分の値となる。
【0050】
画素E00〜E04、E10〜E14の誤差成分が積算された誤差累積値の中間データは、次に、FIFO(First In First Out)メモリ218に送られて、(M−L−3)クロック周期の間、入力順に直列に保持される。その後、M+1段目の処理においてFIFOメモリ218から出力された積算値には、算出された誤差成分Δ1、Δ2にそれぞれ所定の分配係数を乗じた値が順番に加算されて、加算後の積算値がFF219に記憶される。このときに加算される誤差成分Δ1、Δ2は、図2(b)において画素E20、E21における誤差成分の値である。従って、FF219に格納された積算値は、画素E22に対する誤差累積値となっている。そして、次のM+2段目の処理において、画素E22における8ビット入力値が演算処理部161に入力されるタイミングと同期してFF219から誤差累積値が出力/誤差算出部1612に出力されて、出力二値データと誤差成分Δ1とが算出される。
【0051】
一方、図3(b)に示すように、誤差積算部1621では、先ず、1段目の処理で、初期値「0」に対して誤差成分Δ2に所定の分配係数を乗じた値のみが加算されて、この加算された値がFF221に記憶される。それから、FF221に記憶された値には、次の2段目の処理において算出された誤差成分Δ1に所定の分配係数を乗じた値と、誤差成分Δ2に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がFF222に記憶される。続いて、次の3段目の処理において、FF222に記憶された積算値に、算出された誤差成分Δ1に所定の分配係数を乗じた値と、誤差成分Δ2に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がFF223に記憶される。これらの順番に加算された誤差成分Δ2、Δ1、Δ2、Δ1、Δ2は、それぞれ、図2(b)では、画素E01〜E05における値となる。
【0052】
次に、FF223に記憶された誤差累積値の中間データとしての積算値は、シフトレジスタ224に送られ、L−3クロック周期の間に亘って保持される。それから、FF221〜223及びシフトレジスタ224で合計Lクロック周期が経過した積算値には、L+1段目の処理において、誤差成分Δ4に所定の分配係数を乗じた額が加算され、その後にこの加算された値がFF225に記憶される。この誤差成分Δ4は、シフトレジスタ1643においてL段保持されて遅延した入力値に基づいて算出された1段目の処理における誤差成分の値であり、即ち、図2(b)では、画素E11における誤差成分の値となる。
【0053】
FF225に記憶された積算値には、次のL+2段目の処理において、算出された誤差成分Δ3に所定の分配係数を乗じた値と、誤差成分Δ4に所定の分配係数を乗じた値とが順次加算され、これらの加算後の積算値がFF226に記憶される。また、次のL+3段目の処理では、算出された誤差成分Δ3に所定の分配係数を乗じた値と、誤差成分Δ4に所定の分配係数を乗じた値とがFF226に記憶されていた値に加算され、これらの加算後の積算値がFF227に送られて記憶される。順番に入力されたこれらの誤差成分Δ3、Δ4、Δ3、Δ4の値は、それぞれ、図2(b)では、画素E12〜E15における誤差成分の値となる。
【0054】
画素E01〜E05、E11〜E15の誤差成分が積算された積算値は、次に、FIFO(First In First Out)メモリ228に送られて、(M−L−3)クロック周期の間、入力順に直列に保持される。その後、FIFOメモリ228から出力された積算値データには、M+1段目の処理において、算出された誤差成分Δ2にそれぞれ所定の分配係数を乗じた値が加算されて、この加算後の積算値がFF229に記憶される。このときに加算される誤差成分Δ2は、図2(b)において画素E21における誤差成分の値である。そして、次のM+2段目の処理において、画素E22に関する8ビット入力値が演算処理部161に入力され、画素E22の誤差成分Δ1が算出されると、この誤差成分の値がFF229に記憶されていた値に加算されて、最終的な画素E23の色値に対する誤差累積値として画素E23に関する8ビット入力値と共に出力/誤差算出部1622へ出力される。そして、この出力/誤差算出部1622において、1ビット出力値と誤差成分Δ2とが算出される。
【0055】
また、図4(a)に示されるように、誤差積算部1631における積算処理では、先ず、初期値「0」に対して、誤差成分Δ3に所定の分配係数を乗じた値と、誤差成分Δ4に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がFF231に記憶される。このとき、加算された誤差成分Δ3、Δ4は、同一のクロック周期内の処理で算出された誤差成分Δ1、Δ2に対してLクロック周期だけ前に誤差拡散処理部16が取得した8ビットデータに対するものである。即ち、1段目に取得された画素E10、E11の入力値に対する誤差成分Δ3、Δ4が誤差積算部1631に入力されるのは、L+1段目の処理である。
【0056】
次のL+2段目の処理において、FF231に記憶されていた積算値には、この処理中で算出された誤差成分Δ3に所定の分配係数を乗じた値と、誤差成分Δ4に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がFF232に記憶される。また、更に次のL+3段目の処理では、算出された誤差成分Δ3に所定の分配係数を乗じた値がFF232に記憶されていた積算値に加算されてFF233に記憶される。それから、次のL+4段目の処理では、FF233に記憶された積算値は、FIFOメモリ234に送られる。そして、このFIFOメモリ234では、入力された積算値データがM−L−3クロック周期に亘って入力順に直列に保持される。
【0057】
(M−L−3)クロック周期が経過した後、次のM+1段目の処理でFIFOメモリ234から出力された積算値には、このクロック周期内で算出された誤差成分Δ1に所定の分配係数を乗じた値と、誤差成分Δ2に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がFF235に記憶される。続いて、次のM+2段目の処理では、このFF235に記憶された積算値に、算出された誤差成分Δ1に所定の分配係数を乗じた値と、誤差成分Δ2に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がFF236に記憶される。更に、次のM+3段目の処理において、このFF236に記憶された積算値に、算出された誤差成分Δ1に所定の分配係数を乗じた値が加算されて、この加算後の積算値がFF237に記憶される。誤差成分Δ1、Δ2に関しては、Lクロック周期の遅延がないので、このM+1段目からM+3段目の処理によって順番に算出、加算された誤差成分Δ1、Δ2、Δ1、Δ2、Δ1は、それぞれ、画素E20〜E24において生じた誤差成分である。
【0058】
FF237に記憶された積算値のデータは、次のM+4段目の処理において、シフトレジスタ238に送られる。そして、この積算値データは、(L−3)クロック周期に亘ってこのシフトレジスタ238に保持される。(L−2)クロック周期後、M+L+1段目の処理でシフトレジスタ238から出力された積算値には、算出された誤差成分Δ3に所定の分配係数を乗じた値と、誤差成分Δ4に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がFF239に記憶される。このM+L+1段目の処理で加算された誤差成分Δ3、Δ4は、L段の遅延を考慮すると、それぞれ、画素E30、E31における誤差成分となる。そして、次のM+L+2段目の処理では、演算処理部163に画素E32の8ビットデータが入力されるのに同期して、最終的に求められた誤差累積値がFF239から出力/誤差算出部1632へ出力される。
【0059】
更に、図4(b)に示されるように、誤差積算部1641における積算処理では、先ず、初期値「0」に対して、誤差成分Δ4に所定の分配係数を乗じた値が加算されて、FF241に記憶される。このとき、加算された誤差成分Δ4は、同時に算出された誤差成分Δ2よりもLクロック周期だけ前に取得された色値データによるものである。即ち、L+1段目の処理で、1段目に取得された画素E11の入力値に対する誤差成分Δ4が得られることになる。
【0060】
次のL+2段目の処理において、FF241に記憶されていた積算値には、この周期で画素E12において算出された誤差成分Δ3に所定の分配係数を乗じた値と、画素E13において算出された誤差成分Δ4に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がFF242に記憶される。また、更に次のL+3段目の処理で、画素E14において算出された誤差成分Δ3に所定の分配係数を乗じた値と、画素E15において算出された誤差成分Δ4に所定の分配係数を乗じた値とがFF242に記憶されていた積算値に順番に加算されて、これらの加算後の積算値がFF243に記憶される。それから、次のL+4段目の処理で、FF243に記憶された積算値データは、FIFOメモリ244に送られる。そして、このFIFOメモリ244では、入力された誤差累積値の中間データとしての積算値が(M−L−3)クロック周期に亘って入力順に直列に保持される。
【0061】
続いて、(M−L−3)クロック周期が経過した後、次のM+1段目の処理でFIFOメモリ244から出力された積算値には、このクロック周期で算出された誤差成分Δ2に所定の分配係数を乗じた値が加算されて、FF245に記憶される。それから、次のM+2段目の処理では、このFF245に記憶された積算値に対し、算出された誤差成分Δ1に所定の分配係数を乗じた値と、誤差成分Δ2に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がFF246に記憶される。更に、次のM+3段目の処理では、このFF246に記憶された積算値に、算出された誤差成分Δ1に所定の分配係数を乗じた値と誤差成分Δ2に所定の分配係数を乗じた値とが順番に加算されて、これらの加算後の積算値がFF247に記憶される。誤差成分Δ1、Δ2に関しては、Lクロック周期の遅延がないので、このM+1段目からM+3段目の処理で順番に算出、加算された誤差成分Δ2、Δ1、Δ2、Δ1、Δ2は、それぞれ、画素E21〜E25における色値の二値化で生じた誤差成分である。
【0062】
FF247に記憶された積算値データは、次のM+4段目の処理において、シフトレジスタ248に送られる。そして、(L−3)クロック周期に亘ってこのシフトレジスタ248に保持される。その後、M+L+1段目の処理でシフトレジスタ248から出力された積算値には、算出された誤差成分Δ4に所定の分配係数を乗じた値が加算されて、この加算後の積算値がFF249に記憶される。このM+L+1段目の処理で加算された誤差成分Δ4は、L段の遅延を考慮すると、画素E31における誤差成分となる。そして、次のM+L+2段目の処理では、演算処理部163で算出された画素E32に関する誤差成分Δ2が誤差積算部1641に入力されると、FF249から出力された積算値と加算され、この加算された値が画素E33の色値に対する最終的な誤差累積値として出力/誤差算出部1642に送られる。
【0063】
以上のように、第1実施形態の画像形成装置1に含まれる画像処理演算装置としての誤差拡散処理部16によれば、取得された画素データにおける色値、及び、当該色値に対する誤差累積値に基づいて、パッキング内の画素数と同数の8ビット色値データに対して並列的に誤差拡散アルゴリズムを用いたハーフトーン処理を行い、出力値、及び、二値化された当該出力値の算出の際に生じた誤差成分の値を算出する出力/誤差算出部1612、1622、1632、1642と、取得される画素データにおける色値に対して予め定められた相対位置範囲内の画素データの色値について出力/誤差算出部でそれぞれ算出された誤差成分の値に所定の分配係数を乗じて積算することで、誤差累積値を算出する誤差積算部1611、1621、1631、1641と、を備え、これらの出力/誤差算出部は、一の画素データが入力されてから、誤差積算部によって当該一の画素データに対する誤差累積値が算出されるまでの期間以上のLクロック周期に亘って入力された一の画素データに対するハーフトーン処理の開始をシフトレジスタ1633、1643により遅延させているので、演算処理部161〜164の間で誤差成分の算出値をやりとりしながら並列にこれらの誤差成分に基づく誤差累積値が容易、且つ、高速に求められ、この誤差累積値と8ビット入力値とに基づいて各画素における色値の1ビット出力値と誤差成分とをパッキング内の画素の数だけ同一のクロック周期内に並列的に求めることができる。従って、単一の演算処理部でハーフトーン処理を行う場合に比べて、負荷も分散させることができ、全体として安定且つ高速なハーフトーン処理を行うことができる。
【0064】
また、パッキング単位での画素データの取得、出力/誤差算出部1612、1622、2632、1642による並列的な演算処理、及び、誤差積算部1611、1621、1631、1641による誤差累積値の算出は、同一のクロック信号に同期して行われるので、データ入出力のタイミング管理を簡便に行いながら、高速にパッキング単位での入出力を伴う画像データのハーフトーン処理を行うことができる。
【0065】
また、一のパッキング内から取得された画素データに基づくハーフトーン処理は、同一の走査ライン上に位置する画素データに対しては、クロック信号の同一周期内に行われ、異なる走査ライン上に位置する画素データに対しては、副走査方向に進んだライン数毎にL段ずつ遅延させて開始されるので、パッキング単位で入力される画素データに対しても、パッキングデータの展開や格納といった煩雑な入出力処理を繰り返すことなく複数の走査ラインに対する並列的なハーフトーン処理を行うことができる。
【0066】
また、誤差拡散処理部16は、取得された画素データのパッキング内における相対位置に基づいて(L−3)クロック周期に亘り画素データを保持するシフトレジスタ1643、1644を備えるので、上記の遅延処理を容易に行うことができ、また、各パッキング内の相対位置毎に順次入力される画素データに対しては、単純に入力された順番で直列にハーフトーン処理を行うことができる。
【0067】
また、誤差拡散処理部16は、この誤差拡散処理部で算出された出力値をパッキング内における相対位置に基づいてそれぞれ予め定められた期間に亘って保持するシフトレジスタ1613、1623を備え、シフトレジスタ1613、1623で保持されるクロック周期でL周期分の期間と、シフトレジスタ1633、1643で保持されるクロック周期でL周期分の期間とをパッキング内における相対位置ごとに加算した期間の長さは、前記相対位置に拠らず同一のクロック周期でL周期分となるように設定されているので、パッキングデータの入力に対応するだけではなく、出力時もパッキングデータのフォーマットに併せてハーフトーン処理がなされたパッキング内の画素データを同じクロック周期内で出力することができる。
【0068】
また、誤差積算部1611、1621、1631、1641は、出力/誤差算出部1612、1622、1632、1642により誤差成分の値が算出されるたびに誤差累積値の算出に必要な当該誤差成分の値を順次積算していくことで、取得される画素データに対する誤差累積値を算出するので、一の画素に対して分配される誤差成分の値の計算を一度に集中させずに分散させることができ、従って、処理負荷の軽減を図ることができる。
【0069】
ここで、演算処理部162、164の出力/誤差算出部1622、1642は、演算処理部161、163から出力される誤差成分Δ1、Δ3がそれぞれ誤差積算部1621、1641に入力されて、誤差積算値が算出された後に動作する。従って、例えば、クロック周波数信号として半周期毎に高レベルと低レベルとを繰り返す矩形波を用いた場合、出力/誤差算出部1612、1632をクロック周期の開始時の矩形波立上がり時、出力/誤差算出部1622、1642の動作をクロック周期の半周時点である矩形波の立下がり時にそれぞれ同期させて行わせることとしてもよい。
【0070】
[変形例1]
上記第1実施形態の画像形成装置1における誤差拡散処理部16では、2×2画素のパッキングデータに対する4個の演算処理部161〜164を設け、これらの演算処理部161〜164の各々が誤差積算部1611、1621、1631、1641と、出力/誤差算出部1612、1622、1632、1642と、シフトレジスタ1613、1623、1633、1643とを備えることとした。しかしながら、上記のように、主走査方向に並べて配置された画素データに対しては、左側の画素データにおける色値に対する演算処理が終了して誤差成分の値が得られた後に、右側の画素データにおける色値に対する演算処理が行われる。従って、誤差積算部及びシフトレジスタを4個ずつ設ける一方で、副走査方向の行数、即ち、走査ライン数のみによって定められる2個の出力/誤差算出部を設け、主走査方向に配置された画素データに対する演算は、共通の出力/誤差算出部により1クロック周期内で続けて行わせることとしてもよい。この場合には、必要に応じて出力/誤差算出部への入出力データの切り替えを行う回路が付加される。
【0071】
このような変形例1の画像形成装置1によれば、取得された画素データ、及び、当該画素データに対する誤差累積値に基づいて、パッキング内に含まれる異なる走査ライン上のそれぞれ一の画素データに対しては、並列に画像変換処理を行い、パッキング内の他の画素データに対しては順次画像変換処理が直列に行われるので、共通の出力/誤差算出部により容易に画像変換処理を安定且つ高速に実行することができる。
【0072】
[第2実施形態]
次に、本発明の第2実施形態の画像形成装置について説明する。
図5は、第2実施形態の画像形成装置の全体構成図である。
【0073】
この第2実施形態の画像形成装置1bは、入力された画素の周辺画素の濃淡判断に基づいて、入力画素の領域が文字の表示領域であるか否かを判別し、文字の表示領域であると判別されたにも係わらず中間の階調である場合には、白又は黒の何れかの階調に変更する処理を行うものである。この画像形成装置1bの構成は、誤差拡散処理部16の代わりに領域判別処理部16bが備えられている点を除いて、第1実施形態の画像形成装置1と同一である。第1実施形態の画像形成装置1と同一の構成要素については、同一の符号を付して説明を省略する。
【0074】
図6、及び、図7は、領域判別処理部16bの構成を示す図である。
【0075】
領域判別処理部16bは、図6(a)、(b)及び図7(a)、(b)に示すように、4個の演算処理部161b〜164bを備えている。
【0076】
図6(a)は、パッキング内の左上の画素における色値を表す8ビット入力値に対して処理を行う演算処理部161bである。また、図6(b)、図7(a)、(b)は、それぞれ、パッキング内の右上、左下、右下の画素における色値を表す8ビット入力値に対して処理を行う演算処理部162b〜164bである。これらの演算処理部161b〜164bには、1クロック周期ごとにそれぞれ1つの8ビットデータが順次入力されて1段の処理が行われる。
【0077】
図6(a)に示すように、演算処理部161bは、判別結果積算部1611bと、出力/領域判別部1612bと、シフトレジスタ1613とを備えている。同様に、演算処理部162bは、判別結果積算部1621bと、出力/領域判別部1622bと、シフトレジスタ1623とを備え(図5(b))、演算処理部163bは、判別結果積算部1631bと、出力/領域判別部1632bと、シフトレジスタ1633とを備え(図6(a))、また、演算処理部164bは、判別結果積算部1641bと、出力/領域判別部1642bと、シフトレジスタ1643とを備えている(図6(b))。
【0078】
判別結果積算部1611b、1621b、1631b、1641bは、何れも12個の乗算器が含まれず、また、この乗算器への分配係数の入力がなされない点を除いて第1実施形態の画像形成装置1における誤差積算部1611、1621、1631、1641と同一の構成である。従って、同一の構成要素に関しては、同一の符号を付して説明を省略する。この判別結果積算部1611b、1621b、1631b、1641bは、出力/領域判別部1612b、1622b、1632b、1642bから出力された指標値としての判別結果を表す値(即ち、0又は1の値)を直接加算器に入力させ、単純に入力されたこれら12個の値を積算した結果積算値をM+2段後に中間値として出力/領域判別部へ出力する。即ち、本実施形態の判別結果積算部1611b、1621b、1631b、1641bからは、最低0、最高12の整数値が出力/領域判別部へ出力される。
【0079】
出力/領域判別部1612bは、8ビット入力値と、判別結果積算部1611bから出力された中間値としての結果積算値とに基づいて、入力された画素が文字領域内の画素であるか否かを判別する。そして、文字領域内であると判別された場合には、指標値として1を判別結果積算部1611bに出力するとともに、8ビット入力値が0又は255ではない場合には、何れか近いほうの値に修正して、修正された8ビット値を出力制御部17へ出力する。一方、文字領域内ではないと判別された場合には、指標値として0を判別結果積算部1611bに出力するとともに、入力された8ビットデータをそのまま出力値として出力制御部17へ出力する。出力/領域判別部1622b、1632b、1642bの動作は、出力/領域判別部1612bの動作と同様であり、説明を省略する。
【0080】
出力/領域判別部1612b、1622b、1632b、1642bにおける文字領域内であるか否かの判別方法としては、例えば、判別結果積算部1611b、1621b、1631b、1641bから入力された結果積算値が6以上であるか否かによって決定する。或いは、結果積算値が4以上であり、且つ、入力された画素の8ビット値が0又は255から所定の範囲内にあることによって判別することとしてもよい。また、本実施形態では、隣接する12画素のデータに基づいて判別したが、より多くの画素のデータを利用したり、より複雑な形状の範囲内の画素に関する入力データを用いることとしたりすることができる。
【0081】
以上のように、本実施形態の画像形成装置1bによれば、誤差拡散アルゴリズムを用いたハーフトーン処理だけではなく、周辺画素の領域判定結果に基づいて算出、格納された中間値を利用して行う領域判別処理のように、画像処理対象画素データに対して予め定められた相対位置範囲内の画素データに基づいて算出された中間値を用いた画像変換処理を行う画像処理演算装置であるので、パッキングデータの入力に関する煩雑な処理を行うことなく複数の画素データに対して並列に処理を行うことで、領域判別処理部16bに過大な負担をかけることなく安定且つ高速に画像変換処理行うことができる。
【0082】
なお、本発明は、上記実施の形態に限られるものではなく、様々な変更が可能である。例えば、上記実施の形態では、画像変換処理としてハーフトーン処理及び文字領域判別処理を行ったが、これらの処理を続けて行うこととしてもよいし、或いは、これらの処理以外の他の処理を他の指標値や中間値に基づいて行うこととしてもよい。例えば、色値の二値化処理に限らず、元の画像の階調数より少ない階調数の画像へ変換する際にも本発明を適用することが可能である。また、第2実施形態の画像処理演算装置においては、指標値として二値化して出力したが、多値化することでより柔軟且つ厳密に分類することとしてもよい。
【0083】
また、上記実施の形態では、2×2画素毎にパッキングされたデータに対して4個の演算処理部161〜164、161b〜164bを設けて画像変換処理を行ったが、パッキングの態様はこれに限られない。例えば、2400dpiに変換された画像に対して4×4画素のパッキングを行うなど、1クロック周期の中での処理が可能な範囲で適宜変更可能である。そして、当該パッキング内の画素数に従って演算処理部の数を増減させて誤差拡散処理部16や領域判別処理部16bを構成することができる。
【0084】
また、上記実施の形態では、CMYKカラーにより表現された画像データに対しての変換処理を行ったが、グレースケールによる画像データやRGBカラーにより表現された画像データに対して本発明を適用することも可能である。
【0085】
また、上記実施の形態では、シフトレジスタ及びFIFOメモリを用いて画素データの遅延処理を行わせたが、遅延の方法は、これに限られない。通常の揮発性メモリに記憶させ、アドレスに基づいて呼び出すことでも本発明を実施することが可能である。
【0086】
また、上記実施の形態では、演算処理やデータの格納、移動処理を全て同一のクロック信号と同期させて行ったが、例えば、ブロック内の左上の画素の入力タイミングのみをクロック信号に基づいて制御し、その他の処理は、全てのデータの入力が行われた段階で順次動作が行われるように構成してもよい。
【0087】
また、上記実施の形態では、各クロック周期内で算出された誤差成分の値を各誤差累積値の中間データに加算させ、これらの各誤差累積値の値を各FFやFIFO、シフトレジスタなどに格納させたが、逆に、各誤差成分の値をFFやFIFO、シフトレジスタなどに格納させ、誤差累積値を一時、又は、より限られた段数の処理で算出して出力/誤差算出部に入力させることも可能である。
その他、実施の形態で示した具体的な構成要素の組み合わせや配置は、本発明の趣旨を逸脱しない限りにおいて、適宜変更可能である。
【符号の説明】
【0088】
1、1b 画像形成装置
11 スキャン入力部
12 色空間変換処理部
13 一時記憶部
14 解像度変換処理部
15 画像処理部
16 誤差拡散処理部
161〜164、161b〜164b 演算処理部
1611、1621、1631、1641 誤差積算部
1612、1622、1632、1642 出力/誤差算出部
1613、1623、1633、1643 シフトレジスタ
16b 領域判別処理部
1611b、1621b、1631b、1641b 判別結果積算部
1612b、1622b、1632b、1642b 出力/領域判別部
17 出力制御部
18 画像形成部
214、224、238、248 シフトレジスタ
218、228、234、244 メモリ

【特許請求の範囲】
【請求項1】
画像データから少なくとも副走査方向に複数の画素を含む所定のマトリックス状に区分されたブロック単位で画素データを取得し、各々の前記画素データと、当該画素データに対して他の画素データに基づいて求められる中間値とを用いた所定の画像変換処理を行う画像処理演算装置であって、
前記取得された画素データ、及び、当該画素データに対する前記中間値に基づいて、前記ブロック内の副走査方向へ配列された前記画素データに対して並列に前記画像変換処理を行い、それぞれ、前記画素データを変換した後の出力値、及び、当該出力値の評価に関する指標値を算出する並列演算部と、
前記取得される画素データに対し、前記予め定められた相対位置範囲内の画素データについて前記並列演算部でそれぞれ算出された前記指標値に基づく所定の演算を行うことで、前記中間値を算出する中間値算出部と、
一の画素データが取得されてから、前記中間値算出部によって当該一の画素データに対する前記中間値が算出されるまでの時間差以上に設定された期間に亘り、前記並列演算部による前記一の画素データに対する前記画像変換処理の開始を遅延させるための第1保持部と、
を備えることを特徴とする画像処理演算装置。
【請求項2】
画像データから主走査方向及び副走査方向にそれぞれ複数の画素を含む所定のマトリックス状に区分されたブロック単位で画素データを取得し、各々の前記画素データと、当該画素データに対して他の画素データに基づいて求められる中間値とを用いた所定の画像変換処理を行う画像処理演算装置であって、
前記取得された画素データ、及び、当該画素データに対する前記中間値に基づいて、前記ブロック内の画素数と同数の画素データに対して並列に前記画像変換処理を行い、前記画素データを変換した後の出力値、及び、当該出力値の評価に関する指標値を算出する並列演算部と、
前記取得される画素データに対し、前記予め定められた相対位置範囲内の画素データについて前記並列演算部でそれぞれ算出された前記指標値に基づく所定の演算を行うことで、前記中間値を算出する中間値算出部と、
一の画素データが取得されてから、前記中間値算出部によって当該一の画素データに対する前記中間値が算出されるまでの時間差以上に設定された期間に亘り、前記並列演算部による前記一の画素データに対する前記画像変換処理の開始を遅延させるための第1保持部と、
を備えることを特徴とする画像処理演算装置。
【請求項3】
前記ブロック単位での画素データの取得、前記第1保持部、前記並列演算部、及び、前記中間値算出部のそれぞれの動作は、同一のクロック信号に同期して行われる
ことを特徴とする請求項1又は2記載の画像処理演算装置。
【請求項4】
一のブロック内から取得された前記画素データに基づく前記画像変換処理は、同一の走査ライン上に位置する画素データに対しては、前記クロック信号の同一周期内に行われ、異なる走査ライン上に位置する前記画素データに対しては、前記第1保持部により、副走査方向に進んだライン数と、前記相対位置範囲の主走査方向への幅とに基づいて、前記クロック信号の周期の整数倍だけ遅延して行われるように設定される
ことを特徴とする請求項3記載の画像処理演算装置。
【請求項5】
前記第1保持部は、
前記ブロック内における相対位置ごとに前記取得された画素データを直列に保持し、当該相対位置に基づいて設定される遅延量に基づいて、前記並列演算部による前記画像変換処理を遅延させる
ことを特徴とする請求項1〜4の何れか1項に記載の画像処理演算装置。
【請求項6】
前記並列演算部は、
当該並列演算部で算出された前記出力値を前記ブロック内における相対位置ごとにそれぞれ予め定められた期間に亘って保持する第2保持部を備え、
前記第1保持部で前記画像データが保持される期間と、前記第2保持部で前記出力値が保持される期間とを前記相対位置ごとに加算した期間の長さは、前記相対位置に拠らず同一となるように設定されている
ことを特徴とする請求項5記載の画像処理演算装置。
【請求項7】
前記中間値算出部は、
前記演算部により前記指標値が算出されるたびに前記中間値の算出に必要な当該指標値を順次積算していくことで、前記取得される画素データに対する前記中間値を算出する
ことを特徴とする請求項1〜6の何れか1項に記載の画像処理演算装置。
【請求項8】
請求項1〜7の何れか一項に記載の画像処理演算装置と、
前記画像データを前記ブロック単位に区分して前記画像処理演算装置に入力する入力手段と、
前記画像処理演算装置から出力される前記出力値の出力タイミングを制御する出力制御手段と、
前記出力値に基づいて画像を形成する画像形成手段と、
を備える画像形成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−147211(P2012−147211A)
【公開日】平成24年8月2日(2012.8.2)
【国際特許分類】
【出願番号】特願2011−3514(P2011−3514)
【出願日】平成23年1月12日(2011.1.12)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】