以下に添付図面を参照して、この発明にかかる画像処理装置および画像処理方法の最良な実施の形態を詳細に説明する。
図1は、この発明にかかる画像処理装置および画像処理方法を適用した多色画像形成装置の機構部の構成例を示す図である。この多色画像形成装置において、符号1は像担持体であるベルト状の感光体であり、その感光体1は回転ローラ2,3により回動可能に支持され、その各回転ローラ2,3の駆動により矢示A方向に回動される。感光体1の外周部には、帯電手段である帯電装置4,除電ランプL,感光体1用のクリーニングブレード15Aが配置されている。帯電装置4の下流位置には、光書込手段であるレーザ書き込みユニット5より発せられるレーザ光が照射される光書き込み部がある。
光書き込み部より下流位置には、複数の現像ユニット(現像手段)が切り換え自在に支持された多色現像装置6が配置されている。多色現像装置6は、収容するトナーの色毎に、イエロー現像ユニット,マゼンタ現像ユニット,シアン現像ユニットを備えている。多色現像装置6の上部には、黒色トナーを収容したブラック現像ユニット7が備えられている。
これらの各現像ユニットのいずれか1つが対応する色の現像タイミングに同期し、現像可能な位置に移動する。多色現像装置6は、円周上120度の回転によっていずれかの現像ユニットを選択する機能を有している。そして、これらの現像ユニットが稼動するときには、ブラック現像ユニット7は感光体1より離間した位置に移動する。その移動は、カム22の回転により行なわれる。
レーザ書き込みユニット5は、図示しないレーザ光源から複数色の画像形成信号(書き込み情報)に応じたレーザ光を順次発生させ、ポリゴンモータ5Aによって回転されるポリゴンミラー5Bを用いてそのレーザ光を周期的に偏向させ、fθレンズ5Cおよびミラー5Dなどを経て、帯電された感光体1の表面を走査してその表面に静電潜像を形成させる。
感光体1の表面に形成される静電潜像は、対応する現像ユニットからのトナーによって現像され、トナー画像が形成・保持される。中間転写ベルト21は、感光体1に隣接しており、回転ローラ11,12により矢示B方向に回動可能に支持されている。感光体1上のトナー画像は、中間転写ベルト21の裏側にある転写ブラシ(第1の転写手段)13により、その中間転写ベルト21の表面に転写される。
感光体1の表面は1色毎にクリーニングブレード15Aによりクリーニングされ、その表面に所定色のトナー画像が形成される。そして、その都度中間転写ベルト21の1回動毎にその表面の同じ位置に感光体1上のトナー画像が転写されて、中間転写ベルト21上に複数色のトナー画像が重ね合わせられて保持される。その後、そのトナー画像は用紙やプラスチック等の記録媒体に転写される。
用紙への転写に際しては、給紙装置(給紙カセット)17に収納されている用紙が給紙ローラ18によって繰り出されて搬送ローラ19により搬送され、レジストローラ対20に付き当てられた状態で一旦停止された後、トナー画像の転写位置が正規のものとなるようにタイミングがとられて中間転写ベルト21と転写ローラ(第2の転写手段)14のニップに再搬送される。そして、その用紙は転写ローラ14の作用により中間転写ベルト21上の複数色のトナー画像が一括転写された後、定着装置23に送られ、そこでトナー像が定着された後、排紙ローラ対51により本体フレーム9の上部の排紙スタック部52に排出される。
中間転写ベルト21には、回転ローラ11の部位に中間転写ベルト21用のクリーニング装置16が設けられ、クリーニングブレード16Aがクリーニングブレード接離用アーム16Cを介して接離自在の構成となっている。このクリーニングブレード16Aは、感光体1からトナー画像を受け取る工程では、中間転写ベルト21から離れ、中間転写ベルト21より用紙にトナー画像が転写された後に接触するようになっていて、用紙にトナー画像が転写された後の残留トナーをかきとる。クリーニングブレードは、すでに記したように、感光体1用と中間転写ベルト21用がある。これらブレードがかきとった廃トナーは、回収容器15に収納する。その回収容器15は適宜交換される。中間転写ベルト21用のクリーニング装置16の内部に設けられたオーガ16Bが、クリーニングブレード16Aでかきとられた廃トナーを搬送し、図示しない搬送手段で回収容器15に送るようになっている。
符号31はユニット化されたプロセスカートリッジで、感光体1,帯電装置4,中間転写ベルト21,クリーニング装置16,用紙搬送路を形成する搬送ガイド30などを一体に組み込み、寿命到来時に交換できるように構成されている。プロセスカートリッジ31の交換のほかに、多色現像装置6,ブラック現像ユニット7なども寿命到来時に交換するが、その交換性やジャム紙の処理を容易にするため、本体の一部の前フレーム8は支軸9Aを中心に開閉可能に回動できる構造にしてある。
図1の左側には、電装・制御装置26が収納されている。その上方には、ファン24が備えられており、機内の温度過昇防止のために排風する。図の右側には、比較的小規模な別の給紙装置25が備えられている。なお、この実施形態では、中間転写体として中間転写ベルト21を使用したが、中間転写ドラムを使用することもできる。
図2は、本実施の形態にかかる多色画像形成装置の電装・制御部のハードウェア構成の例を示す図である。図2の電装・制御部は、プリンタコントローラボード10が、ネットワークを介してパーソナルコンピュータ(以下、PCとする)90に対して接続され、また、プリンタエンジン700と接続される。
プリンタコントローラボード10は、メモリコントローラ内蔵CPU40、画像処理ASIC50、およびパネル制御ASIC80を有し、これらがバスを介して接続されている。メモリコントローラ内蔵CPU40は、さらに、メインメモリ60およびROM70と接続されている。
メモリコントローラ内蔵CPU40は、CPU41、CPU インタフェース(以下、CPU I/Fとする)42、メモリアービタ43、通信コントローラ44、描画部45、メモリコントローラ46、およびバスコントローラ49を有する。
CPU41は、多色画像形成装置の装置全体の制御を行う。CPU41は、また、PC90から伝送されるPDLを解析し、描画部45に対する描画コマンドの出力、および画像処理ASIC50に対するパラメータの生成等を行う。CPU I/F42は、CPU41のインタフェースであり、メモリアービタ43を介してメインメモリ60および他のコントローラ等に接続されている。
メモリアービタ43は、メモリコントローラ内蔵CPU40が有する各コントローラの、メインメモリ60に対するアクセスの調停を行う。メモリコントローラ46は、メインメモリ60の制御を行う。メモリコントローラ46は、メモリアービタ43を介して各コントローラと接続される。
バスコントローラ49は、バスに対してデータを入出力する各コントローラおよびバスの間の調停を行う。通信コントローラ44は、ネットワークに接続され、ネットワークを介して接続されたPC90等から送信される各データやコマンド等を受信する。また、通信コントローラ44は、メモリアービタ43を介して接続される各コントローラに対して受信したデータ等を出力し、各コントローラから入力されるデータ等を、PC90等に対して送信する。
描画部45は、入力されたPDLが解析され生成された描画コマンドにより、画像データの描画を行う。描画部45は、描画される画像データを、メインメモリ60に格納させる。
ROM70は、CPU41が実行するコンピュータプログラムや、文字のフォント情報等を格納する。メインメモリ60は、画像データ、画像データが圧縮された符号データ、およびCPU41が実行するコンピュータプログラム等が格納される。メインメモリ60が格納する画像データは、PC90から入力される画像データ、およびプリンタエンジン700から出力される画像の画像データの他に、これらの画像データに対して所定の画像処理が行われたものでもよい。
画像処理ASIC50は、画像処理部500、バスインタフェース(以下、バスI/Fとする)58、およびエンジンコントローラ59を有する。画像処理部500は、CPU41により生成された画像処理のパラメータが入力され、そのパラメータに従う画像処理を行う。画像処理部500は、画像処理する画像データをメインメモリ60から読み込み、画像処理された画像データを、メインメモリ60の所定の領域に格納させる。
バスI/F58は、画像処理ASIC50がバスに接続される際のインタフェースである。エンジンコントローラ59は、プリンタエンジン700の制御を行う。
パネル制御ASIC80は、パネル81に接続され、CPU41からの制御コマンド等に従い、パネル81の制御を行う。パネル制御ASIC80は、パネルコントローラ89およびバスI/F88を有する。パネルコントローラ89は、パネル81に表示するデータの制御、およびパネル81から入力される情報の取得等を行う。バスI/F88は、バスに接続され、メモリコントローラ内蔵CPU40からのデータの入出力を行う。
パネル81は、多色画像形成装置の状態の表示を行い、また、多色画像形成装置に対する操作者による指示を受け付ける。
プリンタエンジン700は、エンジンコントローラ59の制御により、画像を媒体上に形成する。PC90は、多色画像形成装置に出力させる画像のPDLを作成し、ネットワークを介してPDLを多色画像形成装置に対して出力する。
図3は、多色画像形成装置における処理の概略を示すフロー図である。図3では、入力された画像データが解析され、画像処理された後、プリンタエンジン700に対して出力される。図3における処理は、PDL記憶ステップS201、PDL解析ステップS202、描画処理ステップS203、RGBバンド画像記憶ステップS204、画像処理ステップS250、および階調処理後ページ画像記憶ステップS206を有し、上記の順に各ステップの処理が実行される。
PDL記憶ステップS201では、メインメモリ60が、PC90から入力されるPDLデータを格納する。PDL解析ステップS202では、CPU41が、コンピュータプログラムを実行することにより、メインメモリ60に格納されているPDLデータを解析する。
描画処理ステップS203では、CPU41が、メインメモリ60に格納されているPDLデータを解析して生成した描画コマンドにより、描画部45を介して、RGB色空間で表される画像データを描画し、メインメモリ60に転送する。ここで生成される画像データは、多色画像形成装置が画像を処理する単位である「バンド」単位のバンドデータである。RGBバンド画像記憶ステップS204では、メインメモリ60にバンドデータ(RGBデータ)が格納される。
画像処理ステップS250は、画像読み込み処理ステップS251、色変換処理ステップS252、および階調処理ステップS253を有する。画像読み込み処理ステップS251では、RGBバンド画像記憶ステップS204において処理された画像データが読み込まれる。画像読み込み処理ステップS251では、画像データのうち、ラスタ順に連続する複数の画素が並列に読み込まれるとよい。次いで、画像読み込み処理ステップS251では、読み込んだ複数の画素の画素値(色情報)であるRGB値が、以前に色空間変換処理を行った画素の画素値(色情報)と一致するか否かを判定する。そして、画像読み込み処理ステップS251では、読み込んだ複数の画素のうち以前に色空間変換処理を行った画素の画素値と一致しなかった画素の画素値、および以前に色空間変換処理を行った画素の色と同じ色であるかの判定結果を出力する。
色変換処理ステップS252では、以前に色空間変換処理を行った画素の画素値と一致しなかった画素の画素値に対し、色空間変換処理が行われ、CMYK値が生成される。また、色変換処理ステップS252では、ステップS251で出力された判定結果が、以前に色空間変換処理を行った画素の画素値と同じであることを示している場合、以前に色空間変換処理を行った際に生成されたCMYK値を、読み込んだ画素の画素値に対して行った色空間変換処理の結果とする。
階調処理ステップS253では、色空間変換処理を行った際に生成されたCMYK値に対するハーフトーン処理および以前に色空間変換処理を行った際に生成されたCMYK値に対するハーフトーン処理(階調処理)を並行して行う。
階調処理後ページ画像記憶ステップS206では、メインメモリ60に、ステップS253のハーフトーン処理により得られた画像データが格納される。ステップS206の処理の後、プリンタエンジン700が、メインメモリ60に格納された画像データを印刷して出力する。
図4は、メインメモリの記憶領域を説明する図である。メインメモリ60は、PDL格納メモリ領域、プログラム領域、RGBバンド画像格納領域、画像処理部パラメータ領域、階調処理後ページメモリ格納領域、およびその他の領域を有する。
PDL格納メモリ領域は、PC90から入力されたPDLデータを格納する。プログラム領域は、CPU41が実行するコンピュータプログラムを格納する。RGBバンド画像格納領域は、描画部45により描画された画像のRGBデータを、バンド単位に格納する。
画像処理部パラメータ領域は、格子点データ格納領域、ガンマデータ格納領域、および閾値データ格納領域を有する。格子点データ格納領域およびガンマデータ格納領域は、色変換処理ステップS252において色空間変換を行う際のパラメータを格納する。
閾値データ格納領域は、階調処理ステップS253において、ハーフトーン生成処理を行う際の閾値テーブルを格納する。閾値データ格納領域に格納される閾値テーブルは、ハーフトーン処理を行う画像データを構成する色コンポーネント毎に設けられてよい。
階調処理後ページメモリ格納領域は、C版ページメモリ格納領域、M版ページメモリ格納領域、Y版ページメモリ格納領域、およびK版ページメモリ格納領域を有する。階調処理後ページメモリ格納領域が有す各格納領域は、階調処理された後の色コンポーネント毎に設けられるとよく、CMYK色空間の他に、例えば、RGB色空間の色コンポーネント毎に対応して設けられてもよい。
図5は、画像処理部のハードウェア構成を説明する図である。図5の画像処理部500は、画像読み込み部510、色変換処理部520、階調処理部530、色復元処理部540、パラメータアドレス生成部541、画像処理パラメータ読み込み部542、DMAパラメータ記憶部543、格子点データ記憶部551、ガンマテーブル記憶部552、ハーフトーンパラメータ記憶部561、奇数閾値マトリックス記憶部562、偶数閾値マトリックス記憶部563、画像処理後画像アドレス生成部581、画像処理後画像書き込み部582、画像処理後画像バッファ部583、およびバスアービタインタフェース(以下、バスアービタI/Fとする)590を有する。
バスアービタI/F590は、画像読み込み部510、画像処理パラメータ読み込み部542、および画像処理後画像書き込み部582のそれぞれが、バスI/F58を介してバスに対してデータを入出力する際の調停を行う。
パラメータアドレス生成部541は、メインメモリ60上の画像処理部パラメータ領域に格納されている各種のパラメータのアドレスを生成する。画像処理パラメータ読み込み部542は、パラメータアドレス生成部541により生成されたアドレスにより、メインメモリ60に格納されている各種のパラメータを読み出す。
DMAパラメータ記憶部543は、画像処理パラメータ読み込み部542が画像処理パラメータを読み込む際に用いたアドレス等のパラメータを、画像処理パラメータ読み込み部542から受信して格納する。DMAパラメータ記憶部543が格納するパラメータは、バンドの幅である多値RGBバンド幅、バンドの高さである多値RGBバンド高さ、バンドデータのメインメモリ60上の開始アドレスであるRGBバンドスタートアドレス、階調処理された後のバンドの幅と高さである階調処理後CMYKバンド幅および階調処理後CMYKバンド高さ、並びに、C、M、Y、Kそれぞれの色コンポーネントのバンドデータをメインメモリ60上に格納する際のスタートアドレス等である。
画像読み込み部510は、バンド画像アドレス生成部511、ワード単位のRGBバンド画像読み込み部512、RGBデータ切り出し部513、および一致画素判定部514を有する。
バンド画像アドレス生成部511は、メインメモリ60からバンドデータを読み出す際のアドレスを生成する。バンド画像アドレス生成部511は、メインメモリ60における画像データの水平ライン毎のアドレスにより、バンドデータを読み込むアドレスを生成する。
ワード単位のRGBバンド画像読み込み部512は、メインメモリ60上のRGBバンド画像格納領域から、バンドデータ(RGBデータ)を読み込む。ワード単位のRGBバンド画像読み込み部512は、バンド画像アドレス生成部511により生成された水平ライン毎のアドレスと、メインメモリ60のワード単位のアドレスとにより、例えば、隣接する2画素分のバンドデータを同時に読み込む。より詳細には、水平ライン内のアドレスが奇数の画素と、偶数の画素とを、一の要求により読み込む。RGBA色空間による画像データがメインメモリ60のRGBバンド画像格納領域に格納されている場合、2画素分のバンドデータは、64bitとなる。
本実施の形態では、2画素分のバンドデータを読み込んでいるが、これに限定するものではなく、例えば、4画素分のバンドデータを読み込んでも良いし、その他の画素分のバンドデータを読み込んでも良い。なお、4画素分のバンドデータを読み込んだ場合には、4画素のうち1画素については、色空間変換処理を行い、その他の画素については、以前に色空間変換処理を行った場合の画素の画素値(記憶領域706(図7参照)に記憶されている画素値)を、当該その他の画素の画素値に対する色空間変換処理の結果とする。
RGBデータ切り出し部513は、ワード単位のRGBバンド画像読み出し部512により読み出されたバンドデータを、画素毎のデータに切り分ける。RGBデータ切り出し部513は、読み出された画素データが2画素、64bitの場合には、32bitの2つの画素(偶数画像データおよび奇数画像データ)に分ける。
一致画素判定部514は、RGBデータ切り出し部513により切り出された2つの画素の画素値(色情報)であるRGB値が、以前に色空間変換処理を行った画素のRGB値(記憶領域608(図6参照)に記憶されたRGB値)と一致するか否かを判定する。本実施の形態では、一致画素判定部514は、RGBデータ切り出し部513により切り出された2つの画素のうち、偶数の画素(偶数RGB画素)はそのまま出力する。そして、一致画素判定部514は、RGBデータ切り出し部513により切り出された2つの画素のうち、奇数の画素(奇数RGB画素)のRGB値が、以前に色空間変換処理を行った画素とRGB値が一致するか否かを判定する。
図6は、一致画素判定部の具体的な構成を示すブロック図である。一致画素判定部514は、RGB_FIFO記憶処理部601、画素値比較部602、OR回路603、一致フラグレジスタ604、一致アドレス生成部605、一致アドレスレジスタ606、および偶数RGB画素レジスタ607を備えている。
RGB_FIFO記憶処理部601(第1記憶部)は、RGBデータ切り出し部513により切り出された2つの画素(偶数RGB画素および奇数RGB画素)の画素値(以前に色空間変換処理を行った画素の画素値)であるRGB値を、ワード単位のRGBバンド画像読み込み部512により読み込んだ順にFIFO(First In First Out)形式で記憶する。本実施の形態では、RGB_FIFO記憶処理部601は、「0」から「31」までのアドレスが付された記憶領域(FIFO)608を有し、RGBデータ切り出し部513によって2つの画素のうち、偶数RGB画素のRGB値を、偶数のアドレスが付された記憶領域608に記憶させ、奇数RGB画素のRGB値を、奇数のアドレスが付された記憶領域608に記憶させる。そして、RGB_FIFO記憶処理部601は、ワード単位のRGBバンド画像読み込み部512により読み込まれる毎に、偶数RGB画素のRGB値を、最も低い偶数のアドレス:「0」が付された記憶領域608から順に最も高い偶数のアドレス:「30」が付された記憶領域608に向かってシフトさせながら記憶する。また、RGB_FIFO記憶処理部601は、ワード単位のRGBバンド画像読み込み部512により読み込まれる毎に、奇数RGB画素のRGB値を、最も低い奇数のアドレス:「1」が付された記憶領域608から順に最も高い奇数のアドレス:「31」が付された記憶領域608に向かってシフトさせながら記憶する。
画素値比較部602は、RGBデータ切り出し部513によって切り出された奇数RGB画素のRGB値と、RGB_FIFO記憶処理部601が有する全ての記憶領域608に記憶されたRGB値と、を比較する。
OR回路603は、画素値比較部602による比較結果に従って、奇数RGB画素のRGB値が、以前に色空間変換処理を行った画素のRGB値と同一であるか否かを示すフラグである一致フラグを出力する。具体的には、OR回路603は、RGBデータ切り出し部513によって切り出された奇数RGB画素のRGB値が、全ての記憶領域608に記憶されたRGB値のうち少なくとも1つのRGB値と一致した場合、一致フラグの値は、「1」であり、「ON」となる。一方、OR回路603は、RGBデータ切り出し部513によって切り出された奇数RGB画素のRGB値が、全ての記憶領域608に記憶されたRGB値と一致しなかった場合、一致フラグの値は、「0」であり、「OFF」となる。OR回路603から出力された一致フラグは、一致フラグレジスタ604によって保持される。
一致アドレス生成部605は、RGB_FIFO記憶処理部601が有する記憶領域608のうち、RGBデータ切り出し部513によって切り出された奇数RGB画素のRGB値と一致するRGB値を記憶した記憶領域608のアドレスである一致アドレスを生成する。そして、一致アドレス生成部605は、生成した一致アドレスを、一致アドレスレジスタ606に保持させる。
一致画素判定部514は、RGBデータ切り出し部513によって切り出された偶数RGB画素に対しては処理を行わず、当該偶数RGB画素(RGB画像データ)を、偶数RGB画素レジスタ607に保持させる。
図5に戻り、色変換処理部520は、一致画素判定部514から、偶数RGB画素(RGB画像データ)を受け取り、偶数RGB画素のRGB値に対し、RGBからCMYへの色空間変換処理およびBG/UCR処理を含む色空間変換処理を行う。これにより、色変換処理部520は、受け取った偶数RGB画素を、RGBA色空間からCMYK色空間の偶数CMYK画素(CMYK画像データ)に変換する。また、色変換処理部520は、一致画素判定部514から、一致フラグおよび一致アドレスを受け取り、受け取った一致フラグおよび一致アドレスを、色復元処理部540に転送する。
なお、色変換処理部520は、一致画素判定部514から受け取った一致フラグが、奇数RGB画素のRGB値と記憶領域608に記憶されたRGB値とが一致しなかったことを示している場合(つまり、一致フラグの値が「0」の場合)、一致画素判定部514から奇数RGB画素を受け取り、奇数RGB画素のRGB値に対し、色空間変換処理を行う。そして、色変換処理部520は、奇数RGB画素のRGB値に対して色空間変換処理を行って得られた奇数CMYK画素のCMYK値を、色復元処理部540を介して、階調処理部530に出力する。
また、色変換処理部520は、色空間変換の他に、下色除去、色補正等の処理を行う。色変換処理部520は、処理に用いるパラメータを格子点データ記憶部551およびガンマテーブル記憶部552から取得する。
なお、本実施の形態では、偶数RGB画素(または奇数RGB画素)のRGB値をCMYK値に色空間変換処理を行う例について説明するが、これに限定するものではなく、例えば、CMY値からCMYK値への色空間変換処理、RGB値からCMY値への色空間変換処理、Lab値からCMYK値への色空間変換処理を行うこともできる。
格子点データ記憶部551は、画像処理パラメータ読み込み部542から入力される格子点データを記憶する。ガンマテーブル記憶部552は、画像処理パラメータ読み込み部542から入力されるガンマ補正用のパラメータを含むガンマテーブルを記憶する。
色復元処理部540は、色変換処理部520を介して、一致フラグおよび一致アドレスを受け取る。そして、色復元処理部540は、一致フラグが、奇数RGB画素のRGB値と記憶領域608に記憶されたRGB値とが一致したことを示している場合(つまり、一致フラグの値が「1」である場合)、記憶領域608に記憶されたRGB値のうち一致アドレスが付された記憶領域608に記憶されたRGB値に色空間変換処理を行った場合のCMYK値を、奇数RGB画素に色空間変換処理を行った場合の奇数CMYK画素の画素値であるCMYK値として選択する。また、色復元処理部540は、色変換処理部520から受け取った偶数CMYK画素のCMYK値(CMYK画像データ)を階調処理部530に転送する。
図7は、色復元処理部の具体的な構成を示すブロック図である。色復元処理部540は、CMYK_FIFO記憶処理部701、奇数画素生成部702、奇数CMYK画素レジスタ703、偶数CMYK画素レジスタ704、および一致フラグレジスタ705を備えている。
CMYK_FIFO記憶処理部701(第2記憶部)は、色復元処理部520から受け取った偶数CMYK画素のCMYK値を、偶数CMYK画素レジスタ704に保持させる。
さらに、CMYK_FIFO記憶処理部701は、色復元処理部520から受け取った偶数CMYK画素のCMYK値および後述する奇数画素生成部702により選択した奇数CMYK画素のCMYK値を、色空間変換処理を行った順にFIFO形式で記憶する。本実施の形態では、CMYK_FIFO記憶処理部701は、「0」から「31」までのアドレスが付された記憶領域(FIFO)706を有し、色変換処理部520から受け取った偶数CMYK画素のCMYK値を、偶数のアドレスが付された記憶領域706に記憶させ、選択した奇数CMYK画素のCMYK値を、奇数のアドレスが付された記憶領域706に記憶させる。そして、CMYK_FIFO記憶処理部701は、色復元処理部520から偶数CMYK画素を受け取る毎に(または、奇数CMYK画素のCMYK値が選択される毎に)、偶数CMYK画素のCMYK値を最も低い偶数のアドレス:「0」が付された記憶領域706から順に最も高い偶数のアドレス:「30」が付された記憶領域706に向かってシフトさせながら記憶する。また、CMYK_FIFO記憶処理部701は、色復元処理部520から偶数CMYK画素を受け取る毎に(または、奇数CMYK画素のCMYK値が選択される毎に)、奇数CMYK画素のCMYK値を、最も低い奇数のアドレス:「1」が付された記憶領域706から順に最も高い奇数のアドレス:「31」が付された記憶領域706に向かってシフトさせながら記憶する。
本実施の形態では、RGB_FIFO記憶処理部601に記憶された偶数RGB画素および奇数RGB画素のRGB値と、当該RGB値に色空間変換処理を行った場合の偶数CMYK画素および奇数CMYK画素のCMYK値と、を同じアドレスが付された記憶領域608,706に記憶させている。これにより、RGB_FIFO記憶処理部601に記憶された偶数RGB画素および奇数RGB画素のRGB値と、CMYK_FIFO記憶処理部701に記憶された偶数CMYK画素および奇数CMYK画素のCMYK値とを対応付けて記憶している。
奇数画素生成部702は、色復元処理部540から受け取った一致アドレスと同じアドレスが付された記憶領域706から、CMYK値を読み出し、読み出したCMYK値を、奇数RGB画素に色空間変換処理を行った場合の奇数CMYK画素のCMYK値として生成(選択)する。そして、奇数画素生成部702は、選択したCMYK値を奇数CMYK画素レジスタ703に保持させる。
色復元処理部540は、色変換処理部520から受け取った一致フラグ、一致フラグレジスタ705に保持させる。
図5に戻り、階調処理部530は、色復元処理部540から受け取った一致フラグの値が「0」である場合、色変換処理部520から偶数CMYK画素のCMYK値(CMYK0画像データ)および奇数CMYK画素のCMYK値(CMYK1画像データ)を受け取るとともに、奇数閾値マトリックス記憶部562および偶数閾値マトリックス記憶部563から閾値マトリックスを読み込む。そして、階調処理部530は、受け取った偶数CMYK画素のCMYK値および奇数CMYK画素のCMYK値と、閾値マトリックスに含まれる所定の閾値とを比較することにより、ハーフトーン処理を行う。
一方、階調処理部530は、色復元処理部540から受け取った一致フラグの値が「1」である場合、色変換処理部520から偶数CMYK画素のCMYK値を受け取り、色復元処理部540において選択した奇数CMYK画素のCMYK値を受け取る。さらに、階調処理部530は、奇数閾値マトリックス記憶部562および偶数閾値マトリックス記憶部563から、閾値マトリックスを読み込む。そして、階調処理部530は、色変換処理部520から受け取った偶数CMYK画素のCMYK値および色復元処理部540において選択した奇数CMYK画素のCMYK値と、閾値マトリックスに含まれる所定の閾値とを比較することにより、ハーフトーン処理を行う。
そして、階調処理部530は、ハーフトーン処理後の複数の画素データ(偶数CMYK画素および奇数CMYK画素)である階調処理後ワードデータを、メインメモリ60のワード単位に出力する。なお、奇数閾値マトリックス記憶部562および偶数閾値マトリックス記憶部563は、それぞれ、画素データの水平ラインの位置に基づいて、奇数CMYK画素と偶数CMYK画素とに対応するハーフトーン処理のための閾値マトリックスを記憶する。
図8は、階調処理部の具体的な構成を示すブロック図である。階調処理部530は、奇数閾値マトリックス記憶部562および偶数閾値マトリックス記憶部563に接続される。階調処理部530は、閾値マトリックスアドレス生成部801、CMYK比較部802,803、固定長データ生成部804を有する。
閾値マトリックスアドレス生成部801は、奇数閾値マトリックス記憶部562および偶数閾値マトリックス記憶部563に格納されている閾値テーブル(閾値マトリックス)のうち、処理する画素(偶数CMYK画素および奇数CMYK画素)に対応する閾値のアドレスを生成する。
CMYK比較部803は、奇数閾値マトリックス記憶部562から取得した奇数位置の画素に対する閾値と、入力された奇数CMYK画素の画素値であるCMYK値との比較を行い、比較結果を出力する。これにより、ハーフトーンに対応する画素の値が得られる。
同様に、CMYK比較部802は、偶数閾値マトリックス記憶部563から取得した偶数位置の画素に対する閾値と、入力された偶数CMYK画素の画素値であるCMYK値との比較を行い、比較結果を出力する。これにより、ハーフトーンに対応する画素の画素値が得られる。
固定長データ生成部804は、CMYK比較部802,803から出力される奇数CMYK画素のCMYK値(奇数CMYK比較結果)および偶数CMYK画素のCMYK値(偶数CMYK比較結果)を、32bitの固定長に変換する。
図9および図10は、画像データの構成例を示す図である。図9は、バンドデータの構成例を示す図であって、バンドの幅方向に6774個の画素が並び、バンドの高さ方向に256個のラインが並んでいる。図9では、幅方向のアドレスが奇数の画素が「奇数画素」(奇数RGB画素)であり、幅方向のアドレスが偶数の画素が「偶数画素」(偶数RGB画素)である。
図10は、メインメモリ60の1ワード分のデータの例を示す図である。図10では、2画素分、すなわち、64bitのデータの例が示されている。1ワード分のデータは、偶数画素と奇数画素との組である。そこで、ワード単位のRGBバンド画像読み込み部512は、1ワード分のデータを読み込むことにより、2画素分の画素データを一のアクセスにより読み込むことができる。
図11は、閾値マトリックスの例を説明する図である。図11(a)は、バンドデータの画素を説明する図である。図中、ラインのアドレスが「0」、水平ライン方向のアドレスが「1」の画素を「0−1」と表記する。
図11(b)は、縦横4画素分に対応する閾値マトリックスを説明する図である。縦横4画素分の閾値マトリックスを「4*4マトリックス」と表記する。図11(c)は、図11(b)の閾値マトリックスに対応する、奇数画素の閾値テーブルと偶数画素の閾値テーブルとを示す図である。
図11(c)の偶数画素の閾値マトリックスは、図11(b)のマトリックスの要素のうち、水平方向のアドレスが偶数の画素に対応する閾値が含まれている。また、図11(c)の奇数画素の閾値マトリックスは、図11(b)のマトリックスの要素のうち、水平方向のアドレスが奇数の画素に対応する閾値が含まれている。
図5に戻り、ハーフトーンパラメータ記憶部561は、階調処理部530がハーフトーン処理する際に、メインメモリ60から読み出されたパラメータを記憶する。
画像処理後画像バッファ部583は、階調処理部530によりハーフトーン処理が行われた複数の画素データのバースト転送を効率良く行うために、階調処理部530によりハーフトーン処理が行われた画素データを保持する。
画像処理後画像書き込み部582は、画像処理後画像バッファ部583に一時的に格納されているハーフトーン処理が行われた複数の画素データを、バスアービタI/F590を介して、メインメモリ60の階調処理後ページメモリ格納領域に書き込む。その際、画素データのバースト転送を効率良く行うために、メインメモリ60において連続したアドレスに書き込まれる複数の画素データを転送するものとする。
画像処理後画像アドレス生成部581は、画像処理後画像書き込み部582が画素データをメインメモリ60に格納させる際の、アドレスを生成する。本実施の形態では、ワード単位のRGB画像読み込み部512が水平ライン単位でバンドデータを読み込むため、画像処理後画像アドレス生成部581は、画像処理後画像バッファ部583により書き込むハーフトーン処理後の画素データについても、水平ライン単位でアドレスを生成する。
図12は、色空間変換処理およびハーフトーン処理の流れを示すフローチャートである。図12では、2画素分のバンドデータに対し、色空間変換処理とハーフトーン処理とが行われる。まず、ワード単位のRGBバンド画像読み込み部512が、RGB色空間によるバンドデータのうち64ビットの2画素分のバンドデータを読み込む(ステップS101)。
次いで、RGBデータ切り出し部513が、読み込んだ2画素分のバンドデータを、奇数RGB画素および偶数RGB画素に切り分ける(ステップS102)。次に、画素値比較部602が、切り分けられた奇数RGB画素のRGB値を、記憶領域608(FIFO)に記憶された全てのRGB値と比較するとともに、一致アドレス生成部605が、当該切り分けられた奇数RGB画素のRGB値と一致したRGB値を記憶している記憶領域608のアドレスである一致アドレスを求める(ステップS103)。
ここで、切り分けられた奇数RGB画素と同じRGB値が記憶領域608に記憶されていた場合(ステップS104:Yes)、色変換処理部520が、偶数RGB画素の色空間変換処理(RGBからCMYK)を行うとともに、色復元処理部540が、記憶領域706に記憶されたCMYK値のうち、一致アドレス生成部605が求めた一致アドレスの記憶領域706に記憶されたCMYK値を、奇数RGB画素に色空間変換処理を行った場合の奇数CMYK画素のCMYK値として選択する(ステップS105)。
さらに、RGB_FIFO記憶処理部601は、切り分けられた奇数RGB画素のRGB値を、アドレス:「1」の記憶領域608に記憶させるとともに、既に記憶されている奇数RGB画素のRGB値を一つ高い奇数のアドレスの記憶領域608にシフトさせる(ステップS106)。また、RGB_FIFO記憶処理部601は、切り分けられた偶数RGB画素のRGB値を、アドレス:「0」の記憶領域608に記憶させるとともに、既に記憶されている偶数RGB画素のRGB値を一つ高い偶数のアドレスの記憶領域608にシフトさせる(ステップS106)。
次に、階調処理部530は、色空間変換処理後のCMYK0画像データ(偶数CMYK画素のCMYK値)に対して、閾値マトリックスを用いてハーフトーン処理(階調処理)を行って、偶数CMYK画素の階調処理後ワードデータを生成する(ステップS107)。さらに、階調処理部530は、色復元処理部540により選択された奇数CMYK画素のCMYK値(つまり、一致アドレスが示す記憶領域706に記憶されたCMYK値)に対して、閾値マトリックスを用いてハーフトーン処理(階調処理)を行って、奇数CMYK画素の階調処理後ワードデータを生成する(ステップS108)。
さらに、CMYK_FIFO記憶処理部701は、色復元処理部540により選択した奇数CMYK画素のCMYK値を、アドレス:「1」の記憶領域706に記憶させるとともに、既に記憶されている奇数CMYK画素のCMYK値を一つ高い奇数のアドレスの記憶領域706にシフトさせる(ステップS109)。また、CMYK_FIFO記憶処理部701は、色空間変換処理後の偶数CMYK画素のCMYK値を、アドレス:「0」の記憶領域706に記憶させるとともに、既に記憶されている偶数CMYK画素のCMYK値を一つ高い偶数のアドレスの記憶領域706にシフトさせる(ステップS109)。
一方、切り分けられた奇数RGB画素と同じRGB値が記憶領域608に記憶されていなかった場合(ステップS104:No)、色変換処理部520は、偶数RGB画素の色空間変換処理(RGBからCMYK)を行う(ステップS110)。
さらに、RGB_FIFO記憶処理部601は、切り分けられた奇数RGB画素のRGB値を、アドレス:「1」の記憶領域608に記憶させるとともに、既に記憶されている奇数RGB画素のRGB値を一つ高い奇数のアドレスの記憶領域608にシフトさせる(ステップS111)。また、RGB_FIFO記憶処理部601は、切り分けられた偶数RGB画素のRGB値を、アドレス:「0」の記憶領域608に記憶させるとともに、既に記憶されている偶数RGB画素のRGB値を一つ高い偶数のアドレスの記憶領域608にシフトさせる(ステップS111)。
次に、階調処理部530は、色空間変換処理後のCMYK0画像データ(偶数CMYK画素のCMYK値)に対して、閾値マトリックスを用いてハーフトーン処理(階調処理)を行って、偶数CMYK画素の階調処理後ワードデータを生成する(ステップS112)。
次いで、色変換処理部520は、奇数RGB画素の色空間変換処理(RGBからCMYK)を行う(ステップS113)。次に、階調処理部530は、色空間変換処理後のCMYK1画像データ(奇数CMYK画素のCMYK値)に対して、閾値マトリックスを用いてハーフトーン処理(階調処理)を行って、奇数CMYK画素の階調処理後ワードデータを生成する(ステップS114)。
その後、CMYK_FIFO記憶処理部701は、色空間変換処理後の奇数CMYK画素のCMYK値を、アドレス:「1」の記憶領域706に記憶させるとともに、既に記憶されている奇数CMYK画素のCMYK値を一つ高い奇数のアドレスの記憶領域706にシフトさせる(ステップS115)。また、CMYK_FIFO記憶処理部701は、色空間変換処理後の偶数CMYK画素のCMYK値を、アドレス:「0」の記憶領域706に記憶させるとともに、既に記憶されている偶数CMYK画素のCMYK値を一つ高い偶数のアドレスの記憶領域706にシフトさせる(ステップS115)。
そして、画像処理後画像書き込み部582が、奇数CMYK画素および偶数CMYK画素の階調処理後ワードデータをメインメモリ60にワード単位で記憶させる(ステップS116)。画像処理部500は、ステップS103〜ステップS116までの処理を、1バンドのバンドデータに対して行われるまで繰り返す(ステップS117:No)。そして、1バンド分のバンドデータに対する処理が終了すると(ステップS117:Yes)、画像処理部500は、処理を終了する。
図13は、階調処理部による階調処理を説明するフローチャートである。図13では、入力された画像データ(CMYK0画像データおよびCMYK1画像データ)に対し、例えば、図11(c)の閾値マトリックスが適用される処理が行われる。
階調処理部530は、閾値マトリックスに対応する縦方向のアドレスを計算する(ステップS1301)。より詳細には、図11(b)に示す4*4マトリックスが用いられる場合には、縦方向のアドレスは、0ないし3の何れか一の整数となる。ここでは、閾値マトリックスに対応する縦方向のアドレスを、Yディザアドレス、横方向のアドレスを、Xディザアドレスという。
そこで、Yディザアドレスは、処理している水平ラインのアドレス、すなわち、画像データ中のY座標を、Y方向のディザサイズで除した剰余となる。なお、ディザサイズとは、閾値マトリックスのサイズである。
次に、階調処理部530は、Xディザアドレスを「0」に初期化する(ステップS1302)。Xディザアドレスは、閾値マトリックスの横方向のアドレスに対応する。
次いで、階調処理部530は、色変換処理部520および色復元処理部540から、CMYK1画像データとCMYK0画像データを受信する(ステップS1303)。そして、閾値マトリックスアドレス生成部801が、閾値マトリックスのアドレスを生成する(ステップS1304)。ここでは、次式(1)により、アドレスが計算される。
閾値マトリックスのアドレス=(Yディザアドレス)*(X方向のディザサイズ)+(Xディザアドレス)・・・(1)
階調処理部530は、ステップS1304で生成された閾値マトリックスのアドレスに基づいて、奇数閾値マトリックス記憶部562および偶数閾値マトリックス記憶部563から閾値マトリックスである奇数閾値データと偶数閾値データとを読み込む(ステップS1305)。
CMYK比較部802が、入力された偶数CMYK画素のCMYK0画像データと、偶数閾値データとの比較を行い、偶数CMYK比較結果を生成する(ステップS1306)。
さらに、CMYK比較部803は、入力された偶数CMYK画素のCMYK値(色)と、入力された奇数CMYK画素のCMYK値(色)とが同一色であるか否かを判断する(ステップS1307)。そして、偶数CMYK画素の色と奇数CMYK画素の色とが同一色でない場合(ステップS1307:No)、CMYK比較部803は、入力された奇数CMYK画素のCMYK1画像データを受け取るとともに(ステップS1308)、入力された奇数CMYK画素のCMYK1画像データと、奇数閾値データとの比較を行い、奇数CMYK比較結果を生成する(ステップS1309)。
なお、偶数CMYK画素の色と奇数CMYK画素の色とが同一色であった場合(ステップS1307:Yes)、CMYK比較部803は、CMYK比較部802により生成された偶数CMYK比較結果を、奇数CMYK比較結果とする。これにより、偶数CMYK画素の色と奇数CMYK画素の色とが同一色であった場合に、奇数CMYK画素に対してハーフトーン処理を行う必要がなくなり、偶数CMYK画素と奇数CMYK画素に対するハーフトーン処理を並行して行うことができるので、階調処理部530における階調処理を高速化することができる。
次いで、固定長データ生成部804が、ステップS1306で生成された偶数CMYK比較結果、およびステップS1306又はステップS1309で生成された奇数CMYK比較結果を固定長データに追加させる(ステップS1310)。
さらに、固定長データ生成部804が、ステップS1310でCMYK比較結果が追加された固定長データが、所定の固定長であるか否かを判断する(ステップS1311)。所定の固定長である場合には(ステップS1311:Yes)、固定長データ生成部804は、固定長のデータを出力する(ステップS1312)。固定長のデータのビット長は、例えば、32ビットである。
また、所定の固定長でない場合(ステップS1311:No)または固定長のデータが出力した場合、階調処理部530は、Xディザアドレスの値を1インクリメントする(ステップS1313)。そして、階調処理部530は、Xディザアドレスが、X方向のディザサイズより小さいか否かを判断する(ステップS1314)。XディザアドレスがX方向のディザサイズより小さくない場合には(ステップS1314:No)、階調処理部530は、Xディザアドレスの値を0に設定する(ステップS1315)。一方、XディザアドレスがX方向のディザサイズより小さい場合(ステップS1314:Yes)、階調処理部530は、水平ライン分の処理が終了したか否かの判断がなされる(ステップS1316)。終了している場合には(ステップS1316:Yes)、階調処理部530は、1バンド分のバンドデータの処理が終了したか否かの判断がなされる(ステップS1317)。終了している場合には(ステップS1317:Yes)、処理を終了する。終了していない場合には(ステップS1317:No)、ステップS1301に戻って処理を繰り返す。
このように本実施の形態にかかる多色画像形成装置によれば、以前に色空間変換処理を行った画素の画素値であるRGB値を記憶するRGB_FIFO記憶処理部と、記憶したRGB値に対して色空間変換処理を行った場合の画素の画素値であるCMYK値を記憶するCMYK_FIFO記憶処理部と、を有し、バンドデータから切り出した画素のRGB値が、RGB_FIFO記憶処理部に記憶されたRGB値と一致するか否かを判定し、バンドデータから切り出した画素のRGB値のうちRGB_FIFO記憶処理部に記憶されたRGB値と一致しないRGB値に色空間変換処理を行い、CMYK_FIFO記憶処理部に記憶されたCMYK値のうち、バンドデータから切り出した画素のRGB値と一致したRGB値に対して色空間変換処理を行った場合のCMYK値を、バンドデータから切り出した画素に色空間変換処理を行った場合のCMYK値として選択することにより、バンドデータから切り出した画素のRGB値が、RGB_FIFO記憶処理部に記憶されたRGB値と一致した場合に、当該バンドデータから切り出した画素のRGB値に対する色空間変換処理を行う必要がなくなるので、画像処理を高速化することができる。
なお、本実施の形態の多色画像形成装置で実行されるプログラムは、ROM70等に予め組み込まれて提供されるが、これに限定するものではなく、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、本実施の形態の多色画像形成装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施の形態の多色画像形成装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
本実施の形態の多色画像形成装置で実行されるプログラムは、上述した各部(画像処理部500など)を含むモジュール構成となっており、実際のハードウェアとしてはCPU41が上記ROM70からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、画像処理部500などが主記憶装置上に生成されるように構成しても良い。
なお、上記実施の形態では、本発明の画像処理装置および画像処理方法を、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも2つの機能を有する多色画像形成装置に適用した例を挙げて説明するが、複合機、複写機、プリンタ、スキャナ装置、ファクシミリ装置等の画像処理装置であればいずれにも適用することができる。