説明

画像処理装置および画像処理方法

【課題】メモリ空間を有効に活用し、描画処理を高速化し、高画質を保持できる画像処理装置および画像処理方法を提供する。
【解決手段】Index値による描画と、必要な画素または領域のみにする描画情報の色値を用いた描画を、条件に応じて一方または両方行うことにより、メモリ空間を有効に活用し、描画処理を高速化し、かつ、高画質を保持する。特に、Indexテーブルのキーとして用いるIndex番号の衝突が起きる場合や、写真画像の描画を行う場合には、Index値による描画と描画情報の色値を用いた描画とを行う。また、Index番号の衝突が起きる場合や、写真画像の描画を行う場合で、その割合が高い場合は、描画情報の色値を用いた描画のみ行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置および画像処理方法に関する。
【背景技術】
【0002】
従来、プリンタは、ネットワークから受け取ったPDLデータをバンド単位に階調処理した後のCMYKデータを用いて描画している。また、後でプリントアウトするため、JBIGなどの圧縮アルゴリズムにより画像データ(CMYKデータ)を符号化し、符号化後のデータをメモリに格納するものもある。近年では高画質化が求められ、高画質化に対応するため、ROP処理(論理演算処理)や半透明処理をRGBデータを用いて行うプリンタもある。
【0003】
このようなプリンタでは、後でプリントアウトするために、JPEGなどの圧縮アルゴリズムにより、画像データ(RGBデータ)を符号化し、符号化後のデータをメモリに格納する。プリントアウトする際には、メモリに格納された符号化後のデータを各版毎に所定の遅延をさせて、メモリから読み込み、前記の圧縮アルゴリズムにより、RGBデータに復号化する。その後、色変換処理により、RGBデータをCMYKデータに変換後、階調処理により、2値、4値、8値などのデータに変換する。そして、階調処理後のC、M、Y、Kの各版に対応するデータのみプリンタエンジンに転送しプリントする。
【0004】
しかし、RGBデータで描画する場合、24bitのRGBデータを600DPIでA4サイズを描画するとき、ページ全体で約100Mバイトの描画を行うために、高性能なCPUと高速なメモリを必要としていた。また、近年のプリンタの印字スピードの高速化と1200DPIなどへの高画質の要求から、高性能なCPUと高速なメモリへの要求が大きくなってきている。特に下地(白)をページ全面に描画するクリアー処理は、RGBデータを用いることで、負荷の大きな処理となっている。
【0005】
また、特許文献1では、RGB−>CMYKの色変換処理において、色変換ごとに、変換前の色と変換後の色をハッシュ関数値でワークメモリ上に登録し、色変換前に変換前の色をハッシュ関数値でワークメモリに登録されているか検索し、登録されていれば、その変換後の色値を使用することにより、色変換処理を高速化する技術が開示されている。
【0006】
また、特許文献2では描画処理前にバンド単位に描画する色数をカウントし、バンド全体の色数が2色以下である場合、1bitのカラーパレットでバンドを描画し、バンド全体の色数が4色以下である場合、2bitのカラーパレットでバンドを描画するなど、バンドで使用する色数に応じてカラーパレットのBIT数を変更し、描画することにより、描画処理時間の軽減と、バンドメモリ量の軽減を行っている。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献2に開示された技術のようにバンド単位にカラーパレットのフォーマットを変更する場合、文字のみの文章では、確かに高速化可能であるが、グラフィックス画像や、写真画像が少しでも含まれるとそのバンドはサイズの大きなフォーマットになり、白地の部分もサイズの大きなフォーマットで描画する必要があり、圧縮率は悪くなり低速化する。また、カラーパレットを生成する時に描画する色とカラーパレットの色(256色)を順次比較しているが、このように、描画する度に毎回、256個のカラーパレットの比較を行うと処理スピードが遅くなる。
【0008】
これは特許文献1の技術のようにハッシュ関数を使用し、求めたキー値のアドレスのカラーパレットと比較すれば、問題は解決するが、ハッシュ関数は、カラーパレットとRGB全ての色とを1対1に対応させることはできないので、キーの衝突を起こしてしまう。特許文献1の色変換装置では、キーの衝突を起こした場合、再度その色は演算し直しているが、描画処理を考えた場合、特許文献2のようにカラーパレットのみのフォーマットでは、その部分だけをRGB値で描画するといったことはできない。また、特許文献2では、バンド内部に1つでもROP演算処理が含まれる場合は、そのバンドを全てRGBの242bitで描画する必要があり、処理速度を低下させる。
【0009】
また、PDLによる描画処理としては、PDLデータを解析し、中間言語や描画コマンドにデコードするときに、システムで準備されているメモリ容量を越える場合がある。その時、それまでに作成された中間言語や描画コマンドを使用し、複数のバンドを一度描画した後、圧縮(JPEG、ランレングス)などを行ない格納する。そして、再度、PDLデータを解析し残りの中間言語や描画コマンドにデコードし、先に作成済のバンドを解凍し、描画をするといった再描画の処理が発生するが、例えば、最初は色が少ない為に1bitのカラーパレットで描画していたが、再度描画する時に色が増え、1bitのカラーパレットでは、描画できない場合は、そのバンドのカラーパレットを新たなbit長のカラーパレットに展開しなおさなければならないので処理が遅くなる。
【0010】
本発明は、上記に鑑みてなされたものであって、メモリ空間を有効に活用し、描画処理を高速化し、高画質を保持できる画像処理装置および画像処理方法を提供するものである。
【課題を解決するための手段】
【0011】
上述した課題を解決し、目的を達成するために、本発明の画像処理装置は、入力情報を解析し、色情報を含む描画情報を生成する描画情報生成手段(302)と、生成された前記描画情報の色情報からハッシュ関数を用いてIndex番号を生成するIndex番号生成手段(304)と、前記Index番号生成手段により生成されたIndex番号が、未使用で有るか判定するIndex未使用判定手段(304)と、前記Index未使用判定手段により、前記Index番号が未使用と判定された場合に、Indexテーブルとして前記Index番号および前記色情報の組が格納されるIndexテーブル記憶手段(306)と、前記Index未使用判定手段により、前記Index番号が使用済みであると判定された場合に、前記Indexテーブル記憶手段に格納されたIndex番号に対応する色情報を取得し、該色情報が、前記描画情報の色情報と同一であるか判断するIndex色判断手段(307)と、前記Index色判断手段により、前記2つの色情報が同一であると判定された場合に、Index番号を描画するIndex番号描画手段(309)と、前記Index番号描画手段により描画されるIndexページのIndex値を記憶するIndexデータ記憶手段(311)と、前記Index色判断手段により、前記2つの色情報が異なると判定された場合に、Index番号として使用しない値を前記Indexページに描画する識別情報描画手段(309)と、前記Index色判断手段により、前記2つの色情報が異なると判定された場合に、前記描画情報の色情報を描画する第1の描画手段(308)と、前記第1の描画手段により描画されるページの色情報からなる画像データを記憶する画像データ記憶手段(310)と、前記Indexデータ記憶手段に記憶されたIndex値と前記画像データ記憶手段に記憶された色情報とを画素毎に読み込み、読み込んだIndex値に基づいて、Index番号に対しては前記IndexテーブルをアクセスすることによりIndex番号を色情報へ変換した変換後の色情報を用い、Index番号として使用されない値のIndex値に対しては前記画像データ記憶手段に記憶された色情報を用いて、画像データを生成する画像データ生成手段(312,313)と、前記画像データ生成手段により生成された画像データに画像処理を行う画像処理手段(314〜316)とを有することを特徴とする。
【0012】
また、本発明は、上記画像処理装置において、前記描画情報が写真画像を描画するものである場合、前記識別情報描画手段(309)は、Index番号として使用しない値を前記Indexデータ記憶手段(311)に描画し、前記描画情報の色情報を前記画像データ記憶手段(311)に描画することを特徴とする。
【0013】
また、本発明は、上記画像処理装置において、前記Index色判断手段(307)により、前記2つの色情報が異なると判定された場合に、前記描画情報に含まれる該当の描画コマンドの数をカウントする第1の描画コマンドカウント手段(304)と、全描画コマンドの数をカウントする第2の描画コマンドカウント手段(304)と、前記第1および第2の描画コマンドカウント手段(304)によるカウント結果から、前記描画情報の色情報を直接描画に使う描画処理の割合を算出し、該割合に基づいて、前記描画情報の色情報のみを使って描画を行う全ダイレクト描画をすべきか判断するダイレクト描画判断手段(304)と、前記ダイレクト描画判断手段(304)により、全ダイレクト描画をすべきと判断された場合に、前記描画情報の色情報のみを使って描画を行う第2の描画手段(308)とを有することを特徴とする。
【0014】
また、本発明は、上記画像処理装置において、前記描画情報に含まれる描画コマンドから描画面積を算出する描画面積算出手段(304)と、前記Index未使用判定手段(304)により、Index番号が使用済みであると判定された場合に、前記Indexテーブル記憶手段(306)により記憶されたIndex番号に対応する色情報を取得し、該色情報が、前記描画情報の色情報と同一であるか判断するIndex色判断手段(307)と、前記Index色判断手段により、前記2つの色情報が異なる場合に、前記描画面積算出手段により算出された、該当の描画コマンドに対応する描画面積を加算する第1の描画面積算出手段(304)と、前記描画面積算出手段により算出された描画面積を基に、全描画面積を算出する第2の描画面積算出手段(304)と、前記第1および第2の描画面積算出手段による描画面積の算出結果から、前記描画情報の色情報を直接描画に使う描画処理の割合を算出し、該割合に基づいて、前記描画情報の色情報のみを使って描画を行う全ダイレクト描画をすべきか判断するダイレクト描画判断手段(304)と、前記ダイレクト描画判断手段により、全ダイレクト描画をすべきと判断された場合に、前記描画情報の色情報を描画する第2の描画手段(304)とを有することを特徴とする。
【0015】
また、本発明の画像処理方法は、入力情報を解析し、色情報を含む描画情報を生成する描画情報生成工程と、生成された前記描画情報の色情報からハッシュ関数を用いてIndex番号を生成するIndex番号生成工程と、前記Index番号生成工程により生成されたIndex番号が、未使用で有るか判定するIndex未使用判定工程と、前記Index未使用判定工程により、前記Index番号が未使用と判定された場合に、Indexテーブルとして前記Index番号および前記色情報の組をIndexテーブル記憶手段に格納するIndexテーブル記憶工程と、前記Index未使用判定工程により、前記Index番号が使用済みであると判定された場合に、前記Indexテーブル記憶手段に格納されたIndex番号に対応する色情報を取得し、該色情報が、前記描画情報の色情報と同一であるか判断するIndex色判断工程と、前記Index色判断工程により、前記2つの色情報が同一であると判定された場合に、Index番号を描画するIndex番号描画工程と、前記Index番号描画工程により描画されるIndexページのIndex値をIndexデータ記憶手段に記憶するIndexデータ記憶工程と、前記Index色判断工程により、前記2つの色情報が異なると判定された場合に、Index番号として使用しない値を前記Indexページに描画する色情報識別情報描画工程と、前記Index色判断工程により、前記2つの色情報が異なると判定された場合に、前記描画情報の色情報を描画する第1の描画工程と、前記第1の描画工程により描画されるページの色情報からなる画像データを画像データ記憶手段に記憶する画像データ記憶工程と、前記Indexデータ記憶手段に記憶されたIndex値と前記画像データ記憶手段に記憶された色情報とを画素毎に読み込み、読み込んだIndex値に基づいて、Index番号に対しては前記IndexテーブルをアクセスすることによりIndex番号を色情報へ変換した変換後の色情報を用い、Index番号として使用されない値のIndex値に対しては前記画像データ記憶手段に記憶された色情報を用いて、画像データを生成する画像データ生成工程と、前記画像データ生成工程により生成された画像データに画像処理を行う画像処理工程とを含むことを特徴とする。
【0016】
また、本発明は、上記画像処理方法において、前記描画情報が写真画像を描画するものである場合、前記色情報識別情報描画工程は、Index番号として使用しない値を前記Indexデータ記憶手段に描画し、前記描画情報の色情報を前記画像データ記憶手段に描画することを特徴とする。
【0017】
また、本発明は、上記画像処理方法において、前記Index色判断工程により、前記2つの色情報が異なると判定された場合に、前記描画情報に含まれる該当の描画コマンドの数をカウントする第1の描画コマンドカウント工程と、全描画コマンドの数をカウントする第2の描画コマンドカウント工程と、前記第1および第2の描画コマンドカウント工程によるカウント結果から、前記描画情報の色情報を描画に使う描画処理の割合を調べ、該割合に基づいて、前記描画情報の色情報のみを使って描画を行う全ダイレクト描画をすべきか判断するダイレクト描画判断工程と、前記ダイレクト描画判断工程により、全ダイレクト描画をすべきと判断された場合に、前記描画情報の色情報のみを使って描画を行う第2の描画工程とをさらに含むことを特徴とする。
【0018】
また、本発明は、上記画像処理方法において、前記描画情報に含まれる描画コマンドから描画面積を算出する描画面積算出工程と、前記Index未使用判定工程により、Index番号が使用済みであると判定された場合に、前記Indexテーブル記憶手段に記憶されたIndex番号に対応する色情報を取得し、該色情報が、前記描画情報の色情報と同一であるか判断するIndex色判断工程と、前記Index色判断工程により、前記2つの色情報が異なる場合に、前記描画面積算出工程により算出された、該当の描画コマンドに対応する描画面積を加算する第1の描画面積算出工程と、前記描画面積算出工程により算出された描画面積を基に、全描画面積を算出する第2の描画面積算出工程と、前記第1および第2の描画面積算出工程の結果から、前記描画情報の色情報を描画に使う描画処理の割合を算出し、該割合に基づいて、前記描画情報の色情報のみを使って描画を行う全ダイレクト描画をすべきか判断するダイレクト描画判断工程と、前記ダイレクト描画判断工程により、全ダイレクト描画をすべきと判断された場合に、前記描画情報の色情報を描画する第2の描画工程とをさらに含むことを特徴とする。
【発明の効果】
【0019】
本発明によれば、Index値による描画と、必要な画素または領域のみにする描画情報の色情報を用いた描画を、条件に応じて一方または両方行うことにより、メモリ空間を有効に活用し、描画処理を高速化し、かつ、高画質を保持できるという効果が得られる。
【図面の簡単な説明】
【0020】
【図1】図1は、本発明を実施した多色画像形成装置の機構部の構成例を示す図である。
【図2】図2は、図1の画像形成装置における電装・制御装置の構成を示すブロック図である。
【図3】図3は、本発明の実施の形態にかかる画像処理の流れを示すブロック図である。
【図4】図4は、本実施形態における描画コマンドの例を示す図である。
【図5】図5は、本実施形態における色情報のフォーマット例を示す図である。
【図6】図6は、本実施形態における一連の描画コマンドの例を示す図である。
【図7】図7は、本実施形態における色テーブルの一例を示す図である。
【図8】図8は、本実施形態におけるIndexテーブルの一例を示す図である。
【図9】図9は、本実施形態におけるメインメモリのメモリ空間の構成を示す図である。
【図10】図10は、本実施形態におけるIndexページのメインメモリにおけるデータ格納形式(Indexフォーマット)を示す図である。
【図11】図11は、本実施形態におけるARGBページのメインメモリにおけるデータ格納形式(ARGBフォーマット)を示す図である。
【図12】図12は、本実施形態における描画処理のフローチャートである。
【図13】図13は、図12のダイレクト描画処理のフローチャートである。
【図14】図14は、図12のIndex描画処理のフローチャートである。
【図15】図15は、図12のIndes&ARGB描画処理のフローチャートである。
【図16】図16は、本実施形態における描画例(最終出力)を示す図である。
【図17】図17は、本実施形態におけるメインメモリにおけるIndex値とARGB値の描画例を示す図である。
【図18】図18は、本実施形態におけるIndexテーブル生成処理のフローチャートである。
【図19】図19は、本実施形態における第2のIndexテーブル生成処理のフローチャートである。
【図20】図20は、本実施形態における面積演算処理を示すフローチャートである。
【図21】図21は、図1の画像形成装置における電装・制御装置の第2の構成を示すブロック図である。
【図22】図22は、図21の画像処理部のハードウェア構成を示す図である。
【図23】図23は、図22のIndex値変換部における処理フローを示す図である。
【発明を実施するための形態】
【0021】
以下に添付図面を参照して、この発明にかかる画像処理装置および画像処理方法の最良な実施の形態を詳細に説明する。
【0022】
(実施の形態)
以下、図面を参照して本発明の形態を説明する。図1は、本発明を実施した多色画像形成装置の機構部の構成例を示す図である。この多色画像形成装置(以降、画像形成装置と略す)において、符号1は像担持体であるベルト状の感光体であり、その感光体1は回転ローラ2、3により回動可能に支持され、その各回転ローラ2、3の駆動により矢印A方向に回動される。感光体1の外周部には、帯電手段である帯電装置4、除電ランプL、感光体1用のクリーニングブレード15Aが配置されている。帯電装置4の下流位置には、光書込手段であるレーザ書き込みユニット5より発せられるレーザ光が照射される光書き込み部がある。
【0023】
光書き込み部より下流位置には、複数の現像ユニット(現像手段)が切り換え自在に支持された多色現像装置6が配置されている。多色現像装置6は、収容するトナーの色毎に、イエロー現像ユニット、マゼンタ現像ユニット、シアン現像ユニットを備えている。多色現像装置6の上部には、黒色トナーを収容したブラック現像ユニット7が備えられている。
【0024】
これらの各現像ユニットのいずれか1つが対応する色の現像タイミングに同期し、現像可能な位置に移動する。多色現像装置6は、円周上120度の回転によっていずれかの現像ユニットを選択する機能を有している。そして、これらの現像ユニットが稼動するときには、ブラック現像ユニット7は感光体1より離間した位置に移動する。その移動は、カム45の回転により行なわれる。
【0025】
レーザ書き込みユニット5は、図示しないレーザ光源から複数色の画像形成信号(書き込み情報)に応じたレーザ光を順次発生させ、ポリゴンモータ5Aによって回転されるポリゴンミラー5Bを用いてそのレーザ光を周期的に偏向させ、fθレンズ5Cおよびミラー5Dなどを経て、帯電された感光体1の表面を走査してその表面に静電潜像を形成させる。
【0026】
感光体1の表面に形成される静電潜像は、対応する現像ユニットからのトナーによって現像され、トナー画像が形成・保持される。中間転写ベルト10は、感光体1に隣接しており、回転ローラ11、12により矢印B方向に回動可能に支持されている。感光体1上のトナー画像は、中間転写ベルト10の裏側にある転写ブラシ(第1の転写手段)13により、その中間転写ベルト10の表面に転写される。
【0027】
感光体1の表面は1色毎にクリーニングブレード15Aによりクリーニングされ、その表面に所定色のトナー画像が形成される。そして、その都度中間転写ベルト10の1回動毎にその表面の同じ位置に感光体1上のトナー画像が転写されて、中間転写ベルト10上に複数色のトナー画像が重ね合わせられて保持される。その後、そのトナー画像は用紙やプラスチック等の記録媒体に転写される。
【0028】
用紙への転写に際しては、給紙装置(給紙カセット)17に収納されている用紙が給紙ローラ18によって繰り出されて搬送ローラ19により搬送され、レジストローラ対20に付き当てられた状態で一旦停止された後、トナー画像の転写位置が正規のものとなるようにタイミングがとられて中間転写ベルト10と転写ローラ(第2の転写手段)14のニップに再搬送される。そして、その用紙は転写ローラ14の作用により中間転写ベルト10上の複数色のトナー画像が一括転写された後、定着装置50に送られ、そこでトナー像が定着された後、排紙ローラ対51により本体フレーム9の上部の排紙スタック部52に排出される。
【0029】
中間転写ベルト10には、回転ローラ11の部位に中間転写ベルト10用のクリーニング装置16が設けられ、クリーニングブレード16Aがクリーニングブレード接離用アーム16Cを介して接離自在の構成となっている。このクリーニングブレード16Aは、感光体1からトナー画像を受け取る工程では、中間転写ベルト10から離れ、中間転写ベルト10より用紙にトナー画像が転写された後に接触するようになっていて、用紙にトナー画像が転写された後の残留トナーをかきとる。クリーニングブレード16Aは、すでに記したように、感光体1用と中間転写ベルト10用がある。これらブレードがかきとった廃トナーは、回収容器15に収納する。その回収容器15は適宜交換される。中間転写ベルト10用のクリーニング装置16の内部に設けられたオーガ16Bが、クリーニングブレード16Aでかきとられた廃トナーを搬送し、図示しない搬送手段で回収容器15に送るようになっている。
【0030】
符号31はユニット化されたプロセスカートリッジで、感光体1、帯電装置4、中間転写ベルト10、クリーニング装置16、用紙搬送路を形成する搬送ガイド30などを一体に組み込み、寿命到来時に交換できるように構成されている。プロセスカートリッジ31の交換のほかに、多色現像装置6、ブラック現像ユニット7なども寿命到来時に交換するが、その交換性やジャム紙の処理を容易にするため、本体の一部の前フレーム8は支軸9Aを中心に開閉可能に回動できる構造にしてある。
【0031】
図1の左側には、電装・制御装置60が収納されている。その上方には、ファン58が備えられており、機内の温度過昇防止のために排風する。図の右側には、比較的小規模な別の給紙装置59が備えられている。なお、この実施形態では、中間転写体として中間転写ベルト10を使用したが、中間転写ドラムを使用することもできる。
【0032】
次に、以上のように構成された画像形成装置の詳細な構成および動作について説明する。図2は、図1の画像形成装置100における電装・制御装置の構成を示すブロック図である。
【0033】
CPU(Central Processing Unit)201は、画像形成装置100全体の制御を行う他、画像処理や、Indexテーブルの生成などを行う。CPU I/F202は、メモリアービター(メモリARB)203に接続され、CPU201とメモリアービター203間のI/Fを処理する。また、メモリアービター203は、CPU201や、下記の通信制御部209およびDMA制御部206などとメインメモリ205とのアクセスを制御する。メモリコントローラ204は、メインメモリ205を制御し、データの読み出し/書き込みを行う。メインメモリ205は、CPU201のプログラムやIndexテーブルや、Indexページデータ、ARGBページデータや、階調処理後CMYKページのデータなどの各種データなどを格納する。
【0034】
DMA制御部206は、画像形成を実施するプリンタエンジン208に同期して、メインメモリ205に格納された階調処理後のCMYKページの画像データを受け取り、エンジンコントローラ207へ転送する。エンジンコントローラ207は、画像形成のためプリンタエンジン208を制御する。また、通信制御部209は、ネットワークを介して接続されるPC(パーソナルコンピュータ)210からのPDLデータを受け取りメインメモリ205へ転送する。CPU201は、このPDLデータを解析し、得られた描画情報(描画コマンド)に従って、ASIC200を制御する。
【0035】
次に、本発明の実施の形態にかかる画像処理の流れについて、図3を参照し説明する。 図3は、本発明の実施の形態にかかる画像処理の流れを示すブロック図である。
【0036】
(1)メインメモリ205のPDLデータ格納領域であるPDL記憶部301は、通信制御部209から送られたPDLデータを記憶する。
【0037】
(2)図3のPDL解析処理部302としてのCPU201は、上記PDL記憶部からPDLデータを読み込み、それを解析して色情報(RGBA値;なお、RGBはカラー値であり、Aは属性情報である。また、属性情報としては、任意の情報を設定でき、例えば、写真画像、文字画像、グラフィクス画像など描画する画像の種別を識別するための情報を含めることができる。)を含む描画コマンドを生成する。そして、生成した描画コマンドをメインメモリ205の描画コマンド格納領域である描画コマンド記憶部303に記憶する。以下に、描画コマンドの例を、図4に示す。
【0038】
(A)は、バンド情報設定コマンドであり、バンドの先頭アドレスとそのバンドの高さと幅が定義されている。(B)はグラフィックス描画コマンドの1つの4角形描画コマンドであり、色情報と、バンド領域の始点座標とX幅、Y幅が定義されている。このコマンドで指定されたバンド領域に指定された色で4角形を描画するコマンドである。図5に色情報のフォーマットを示す。色情報は、同図に示すように、R,G,B,Aのそれぞれに8bitが割り当てられた32bitデータである(下記の水平ライン描画コマンドにおいても同様)。
【0039】
(C)はグラフィックス描画コマンドの1つの水平ライン描画コマンドであり、色情報(RGBA値)と、水平ラインの始点座標とX幅が定義されている。このコマンドで指定された位置に指定された色で水平ラインを描画するコマンドである。グラフィックス描画領域と文字領域のグラフィックス画像は基本的には、(B)、(C)のコマンドを使った基本的な4角形と水平ラインで描画される。
【0040】
(D)は変倍を伴う写真画像描画コマンドであり、ソース画像およびDIS画像のX幅およびY幅、ならびに描画位置の座標、ソース画像の先頭アドレスと非可逆圧縮FLAG、写真属性情報などが定義されている。このコマンドで指定されたバンド領域に指定されたソース画像を変倍した写真画像を描画するコマンドである。(E)は一連の描画コマンドの終端を示す終了コマンドである。図6に一連の描画コマンドの例を示す。同図に示すように、描画コマンドは、図4に示したコマンド群から構成される。
【0041】
ここで、図3の説明に戻る。
(3)メインメモリ205の描画コマンド格納領域である描画コマンド記憶部303に図4に例示した各種描画コマンドを記憶する。
【0042】
(4)CPU201のIndexテーブル生成処理部(Index番号生成手段)304は、描画コマンド記憶部303から描画コマンドを受け取り、この描画コマンドがグラフィックス描画であれば、後述する図18のIndexテーブル生成処理により、図7および図8に例示する色テーブルとIndexテーブルを生成する。そして、色テーブルを色テーブル記憶部305へ転送し、IndexテーブルをIndexテーブル記憶部306へ転送する。また、Index描画処理部309とARGB描画処理部308へはそれぞれ、色情報と描画コマンドを転送する。一方、描画コマンドが写真画像描画コマンドであったり、IndexテーブルのIndex値として用いるハッシュ値が衝突していた場合(すなわちARGB描画する場合)のコマンド数をカウントし、その比率が高い場合は、ダイレクト描画FLAGを“1”にする。
【0043】
(5)色テーブル記憶部305としてのメインメモリ205は、Indexテーブル生成処理部304から転送されてきた色テーブルを記憶する。この色テーブルは、図7に示すように、入力順に、Index値が設定される。
【0044】
(6)Indexテーブル記憶部306としてのメインメモリ205は、Indexテーブル生成処理部304から転送されてきたIndexテーブルを記憶する。このIndexテーブルは、図8に示すように、Index値と色情報(色値RGBと属性情報A)を対応付けるテーブルである。ここでの属性情報は、文字/写真/グラフィクス等を識別するための情報である。
【0045】
(7)CPU201の描画処理部307は、図12に示す描画処理を実行する。この描画処理を説明する前に、メインメモリ205内のメモリ空間の構成と、IndexページとARGBページのメインメモリ205におけるデータ格納形式について図9〜11を用いて説明する。図9は、メインメモリ205におけるメモリ空間の構成を示している。
【0046】
図9において、プログラム領域900は、CPU201が実行するプログラムを格納する。PDLデータ格納領域901は、PCから送られたPDLデータを格納する領域である。色テーブル格納領域902は、図3の色テーブル記憶部305に相当し、Indexテーブル生成処理部304で生成された色テーブルを記憶する領域である。Indexテーブル格納領域903は、図3のIndexテーブル記憶部306に相当し、Indexテーブル生成処理部304で生成されたIndexテーブルを記憶する領域である。Indexページ格納領域(Indexメモリ)904は、図10に例示したデータ格納形式に基づき、ページのIndex値を格納する領域である。ARGBページ格納領域(ARGBメモリ)905は、図11に例示したデータ格納形式に基づき、カラー値のデータを格納する領域である。階調処理後CMYKページ格納領域906は、階調処理後のCMYKデータを格納する領域である。
【0047】
図10は、Indexページのメインメモリ205におけるデータ格納形式(Indexフォーマット)を示している。このデータ格納形式では、8bitのIndex値を持ち、251を法としたMOD演算により、0〜250の値(Index番号)を有する。また、“255”という値は、Index番号としては使用せず、識別情報として、図11のARGB値(色情報)で、ARGBページにてその画素の色を表現していることを示すために使用している。
【0048】
図11にARGBページのメインメモリ205におけるデータ格納形式(ARGBフォーマット)を示している。同図に示すようにA(属性),R,G,Bそれぞれ8bitからなる32bitのARGB値が格納される形式となっている。なお、図11では、図5に示した色情報のフォーマットとは、A(属性),R,G,Bのデータの並びが異なっているが、データの並びは任意に設計することができる。
【0049】
ここから、図12に例示した描画処理について、さらに詳細な処理フローを示す図13〜15を参照し説明する。この処理は、図3の描画処理部307にて実行される。
【0050】
はじめに、Indexテーブル生成処理部304から描画コマンドと色情報を受け取り(図12:ステップS1201)、このときダイレクト描画FLAGが1であれば(ステップS1202でYes)、Index値の描画をせずに、ARGB値のみを使用してダイレクトに描画する(ステップS1207)。この全ダイレクト描画処理は、図13に示すように、図9に示すARGBページ格納領域905に、すべての画素について、指定された描画コマンドでARGB値を書き込む(ステップS1301〜S1302)。描画コマンドが写真画像描画の場合、写真画像のソース画像の色情報を順次図9のメインメモリのARGBページ格納領域905に図11のARGBフォーマットで描画する。
【0051】
一方、ダイレクト描画FLAGが0であれば(ステップS1202でNo)、色テーブル記憶部305の色テーブルからIndex値を読み込む(ステップS1203)。そして、そのIndex値が“255”であれば(このとき写真画像であるか、Index値が衝突を起こしているため)(ステップS1204でYes)、Index値“255”とARGB値とを描画する(ステップS1206)。ここでは、図14に示すように、図9に示すIndexページ格納領域904に、指定された描画コマンドでIndex値“255”を書き込み、ARGBページ格納領域905に、指定された描画コマンドでARGB値を書き込むことを、すべての画素について行う(ステップS1401〜S1403)。
【0052】
ステップS1203で読み込んだIndex値が“255”でない場合(ステップS1204でNo)、Index描画処理を実行する(ステップS1205)。具体的には、図15に示すように、図9のメインメモリのIndexページ格納領域904に、指定された描画コマンドで、読み込んだIndex値を図10のIndexフォーマットで書き込むことを、すべての画素について行う(ステップS1501〜S1502)。最後に、ステップS1208ですべての描画コマンドを処理したか判断し、すべての描画コマンドの処理が完了するまで、上記一連の処理を繰り返す。
【0053】
(8)ここで図3に戻る。上記におけるIndex値の描画処理は、図3のIndex描画処理部309としてのCPU201が実行する。Index描画処理部309は、描画コマンド記憶部303から描画コマンドを受け取り、図9のIndexページ格納領域904に、色テーブル記憶部305から受け取ったIndex値を図10のIndexフォーマットで描画する。なお、Index描画処理において、描画コマンドの色情報とIndexテーブルの色情報が異なる場合の上記ステップS1503の処理は、ARGB描画処理部308で実行する。
【0054】
(9)上記におけるARGB値の描画処理は、ARGB描画処理部308が、例えば、描画コマンドが写真描画コマンドの場合、描画コマンド記憶部303から写真描画コマンドと写真画像のソース画像(色情報)を受け取り、ARGBページ格納領域1005に、図16、17の例のように写真画像を描画する。なお、写真画像は基本的に多くの色が存在するため、Indexテーブルの生成処理は行われない。
【0055】
(10)ARGBページ画像記憶部310としてのメインメモリ205のARGBページ格納領域905は、ARGB描画処理部308により描画されたARGBページ画像を記憶する。
【0056】
(11)Indexページ画像記憶部311としてのメインメモリ205のIndexページ格納領域904は、Index描画処理部309により描画されたIndexページ画像を記憶する。
【0057】
(12)Indexテーブル変換処理部312としてのCPU201は、Indexページ画像記憶部311からIndexページ画像を画素単位に読み込み、Index値を、図11のフォーマットでARGB値へ変換し、切替処理部313へ転送する。
【0058】
(13)切替処理部313としてのCPU201は、Indexテーブル変換処理部312からのARGB値とARGBページ画像記憶部310から画素単位に読み込まれるARGB値とを、上記(11)のIndexページ画像の内容で切り替える。この切替処理部313は、具体的には、IndexページのIndex値が、0〜250のIndex番号の場合は、Indexテーブル変換処理部312からの入力を出力し、Index値が“255”の場合は、ARGBページ画像記憶部310からの入力を出力する。
【0059】
(14)RGB−>CMYK色変換処理部314としてのCPU201は、切替処理部313からのデータを、RGBからCMYKへ色変換し、変換した画像データをUCR処理部315へ転送する。
【0060】
(15)UCR処理部315としてのCPU201は、RGB−>CMYK色変換処理部314で色変換した画像データを、UCR(Under Color Removal)処理を行い、UCR処理後のデータを階調処理部316へ転送する。
【0061】
(16)階調処理部316としてのCPU201は、UCR処理部315でUCR処理した画像データに対し階調処理を行い、階調処理後のCMYKページ画像データを、階調処理後CMYKページ画像記憶部317へ転送する。
【0062】
(17)階調処理後CMYKページ画像記憶部317としてのメインメモリ205の階調処理後CMYKページ格納領域906は、画像処理部にて上記(12)〜(16)の処理が施された階調処理後CMYKページ画像を記憶する。
【0063】
(18)DMA処理部318としての図2のDMA制御部206は、階調処理後CMYKページ画像記憶部317から、階調処理後CMYKページ画像データを読み込み、プリンタエンジン319(図2の208)へ転送する。
【0064】
(19)プリンタエンジン319で、階調処理後CMYKページ画像データに基づきプリントアウトする。
【0065】
ここで、図16、図17に描画例を示す。図16は、プリントアウトの結果である。図17に示すように、写真画像は基本的に色数が多いので、図11のフォーマットのカラー値でメインメモリ205のARGBページ格納領域に描画し、グラフィックス部分は色数が少ないので、図10のIndexフォーマットでIndexページ格納領域に描画している。このように、グラフィックス部分をIndex値でのみ描画するので、描画するデータ量が小さく、描画処理の高速化をはかることができる。
【0066】
(第1のIndexテーブル生成処理)
次に、第1のIndexテーブル生成処理について、図18を用いて説明する。図18は、Indexテーブル生成処理のフローチャートである。
【0067】
はじめに、Indexテーブルの色情報、ダイレクト描画数および全体描画数を“0”に初期化する(ステップS1801)。なお、Indexテーブルの色情報の初期値としては、色情報として使用されない数値を用いてもよい。
【0068】
次に、図3の描画コマンド記憶部303の描画コマンドを読み込む(ステップS1802)。
【0069】
ステップS1803の判断にて、描画コマンドが写真画像描画コマンドであると判定された場合、ステップS1810へ移行し、色テーブルに、図10のIndexフォーマットでのIndex値として使用しない値“255”をセットする。この色テーブルは図3の描画処理部307が再度Index値を求める必要が無いように、描画コマンドの順番にあわせて色テーブルとして、Index値を記録している(図7参照)。そして、ステップS1811にて、ダイレクト描画数に“1”を加算する。
【0070】
一方、ステップS1803の判断にて、描画コマンドが写真画像描画コマンドでないと判定された場合、図3の描画コマンド記憶部303から描画コマンドの色情報を読み込む(ステップS1804)。
【0071】
次に、ハッシュ関数によりIndex値を求める。具体的には、ステップS1804で読み込んだ色情報を、Indexフォーマットで用いる8bitの最大値である256に近い素数“251”を法としたMOD演算(剰余演算)を行い、その剰余値をIndex値とする(ステップS1805)。ここでの剰余演算は、(R*224+G*216+B*+A)%251として行う。ただし、“*”は乗算の演算子、“%”は剰余(除算の余り)を求める演算子である。一般的にMOD演算(剰余演算)は複雑であるが、上記“251”の逆数を予め準備し、それをカラー情報値(R*224+G*216+B*+A)に乗算しさらに整数化した値に、“251”を乗算し、その値とカラー情報値との差分を得ることで、剰余値が得られる。
【0072】
次に、ステップS1806の判断で、求めたIndex値がIndexテーブルのIndex番号欄に値が入っているかチェックする。Index値が入っていないとの判断は、ステップS1801で初期化された“0”値(もしくは色情報として使用されない数値)が入っているか(すなわち初期状態のままであるか)で行う。
【0073】
ステップS1806の判断で、ステップS1805で求めたIndex値が、Indexテーブルで使用されていないと判定された場合、ステップS1808へ移行し、色テーブルにIndex番号をセットし、さらにステップS1809へ移行して、Indexテーブルに描画する色情報をセットする。
【0074】
ステップS1806の判断で、ステップS1805で求めたIndex値が、Indexテーブルで使用されていると判定された場合、ステップS1807へ移行し、ステップS1805で求めたIndex値に対応するIndexテーブルの色情報が描画する色と同じか判断する。
【0075】
これらの色情報が異なれば、ステップS1810へ移行し、色テーブルに“255”をセットし、ステップS1811でダイレクト描画のカウンタをカウントUPする(“1”加算する)。一方、ステップS1805で求めたIndex値に対応するIndexテーブルの色情報が描画する色と同じであれば、ステップS1812へ移行し、全体の描画数のカウンタをカウントUPする。
【0076】
次いで、ステップS1813で全ての描画コマンドを読み込みチェックしたかを判断し、未だ未チェックの描画コマンドがあると判定された場合は、ステップS1802へ戻り、一連の処理を実行する。
【0077】
全ての描画コマンドのチェックが完了すると(ステップS1813でYes)、ステップS1814へ移行し、このステップで、下式からダイレクト描画RATEを求める。
ダイレクト描画RATE = (ダイレクト描画数 / 全体描画数)*100
【0078】
次に、ダイレクト描画RATEが所定の許容値以上であるか(許容値を超えているか)判断し(ステップS1815)、許容値以上であると判定された場合、ダイレクト描画FLAG=1とし(ステップS1816)、一方、許容値以下であると判定された場合はダイレクト描画FLAG=0とし(ステップS1817)、終了する。なお、ダイレクト描画RATEの許容値としては、50〜70%などの値が設定される。
【0079】
(第2のIndexテーブル生成処理)
次に、第2のIndexテーブル生成処理について図19を用いて説明する。図19は、第2のIndexテーブル生成処理を示すフローチャートである。この第2のIndexテーブル生成処理と、前述した第1のIndexテーブル生成処理との違いは、第1のIndexテーブル生成処理で、ダイレクト描画数と全体描画数からダイレクト描画RATEを求めたのに対し、本処理例では、ダイレクト描画面積と全体描画面積からダイレクト描画RATE求める点である。図19において、図18と同一の処理ステップには、同一の符号を付している。
【0080】
図19において、図18と異なるのは、新規のステップS1900が追加された点と、図18のステップS1811,S1812,S1814をそれぞれ、S1911,S1912,S1914に示すように変更した点である。具体的には、(1)ステップS1900にて、面積演算処理を行い、(2)ステップS1911にて、ダイレクト描画面積を計数するカウンタにダイレクト描画する画素面積を加算し、(3)ステップS1912にて、全体描画面積を計数するカウンタに、描画する画素面積を加算し、(4)ステップS1914にて、ダイレクト描画RATE=(ダイレクト描画面積/全体描画面積)*100としてダイレクト描画RATEを求める、点である。その他の処理は、第1のIndexテーブル生成処理と同一であるので、ここではその説明を省略する。
【0081】
ここで、ステップS1900での面積演算処理について、図20を用いて説明する。図20は、上記面積演算処理を示すフローチャートである。
【0082】
はじめに、描画コマンドが四角形描画コマンドであるか判断する(ステップS2001)。
【0083】
ステップS2001の判断で、描画コマンドが四角形描画コマンドであると判定された場合、四角形描画コマンドで指定された四角形のX幅とY幅を乗算し、描画面積を求める(ステップS2002)。一方、ステップS2001の判断で、描画コマンドが四角形描画コマンドでないと判定された場合、描画コマンドが水平ライン描画コマンドであるかを判断する(ステップS2003)。
【0084】
ステップS2003の判断で、描画コマンドが水平ライン描画コマンドであると判定された場合、水平ライン描画コマンドで指定された水平ラインのX幅を用い、水平ライン描画であるが故にX幅を描画面積として求めている(ステップS2004)。一方、ステップS2003の判断で、描画コマンドが水平ライン描画コマンドでないと判定された場合、残りの写真描画コマンドであるのでこの描画コマンドで指定されたDIS画像のX幅とY幅を乗算し、描画面積を求めている(ステップS2005)。
【0085】
(画像形成装置100における電装・制御装置の第2の構成)
次に、図1の画像形成装置100における電装・制御装置の第2の構成について図21,22を用いて説明する。図21は、図1の画像形成装置100における電装・制御装置の第2の構成を示すブロック図である。前述の第1の構成では、図3に示した画像処理部の機能をCPU201で実現していたが、本第2の構成では、ASIC211に、図3の画像処理部の機能を実現する画像処理部212を設けた点が異なっている。その他の構成要素は、図2に示したものと同一であり、同一の構成要素には同一の符号を付し、その説明を省略する。
【0086】
図22に、図21に示すASIC211に追加された画像処理部212のハードウェア構成を示している。以下では、この図を参照し、この画像処理部212の構成について、図22を用いて説明する。
【0087】
メモリアービターI/F2201は、画像処理パラメータ読み込み部2202とIndex/ARGB画像読み込み部2210と画像処理後画像書き込み部2219のメモリアービター(メモリARB)への要求の調停を行う。
【0088】
画像処理パラメータ読み込み部2202は、メモリアービターI/F2201を介して、図21に示すメインメモリ205の画像処理パラメータ領域から各種のパラメータを読み込み、後述する符号2204〜2210の各画像処理パラメータ記憶部へ転送する。パラメータアドレス生成部2203は、図21のメインメモリ205の画像処理パラメータ領域から各種のパラメータを読み込むためのアドレスを生成する。
【0089】
DMAパラメータ記憶部2204は、画像処理パラメータ読み込み部2202から受け取った、バンド幅、バンド高さ、バンドスタートアドレス、階調処理後CMYKバンド幅、階調処理後CMYKバンド高さ、C、M、Y、Kバンドスタートアドレスなどを格納する。Indrexテーブル記憶部2205は、図3のIndexテーブル生成部304で生成された、Index値変換部2214に必要な図11に示すようなIndrexテーブルを格納する。
【0090】
格子点データ記憶部2206は、画像処理パラメータ読み込み部2202から受け取った、色変換処理部2215に必要な四面体補間に用いる格子点データなどを格納する。ガンマテーブル記憶部2207は、画像処理パラメータ読み込み部2202から受け取った、色変換処理部2215に必要なガンマデータなどを格納する。ハーフトンパラメータ記憶部2208は、画像処理パラメータ読み込み部2202から受け取った階調処理部2216に必要なハーフトンパラメータなどを格納する。しきい値マトリックス記憶部2209は、画像処理パラメータ読み込み部2202から受け取った、階調処理部2216に必要なしきい値マトリックスなどを格納する。
【0091】
Index/ARGB画像読み込み部2210は、メモリアービターI/F2201を介して、図21のメインメモリ205のIndexページ格納領域からIndexページのデータを読み込み、Indexバッファー部2212へ転送する。さらに、メインメモリ205のARGBページ格納領域からARGBページのデータを読み込み、ARGBバッファー部2213へ転送する。これは、ARGBページデータが必要である場合と不必要である場合があるが、その場合に応じて、IndexページデータとARGB画像を順次読み込むのは効率が悪いので、IndexページデータとARGBページデータの両方を同時に読み込み各バッファーへ格納している。
【0092】
Indexバッファー部2212は、Indexページデータを複数画素ごとに格納している。ARGBバッファー部2213は、ARGBページデータを複数画素ごとに格納している。Index/ARGB画像アドレス生成部2211は、図2のメインメモリ205のIndexページ格納領域とARGBページ格納領域からIndexページデータとARGBページデータを読み込むためのアドレスを生成する。Index値変換部2214は、Indexバッファー部2212からIndexページデータを読み込み、さらにARGBバッファー部2213からARGBページデータを読み込む。そして、Indexページデータに基づきARGB値へ変換し色変換処理部2215へ転送する。
【0093】
ここで、図23に図22のIndex値変換部2214における処理フローを示し、その説明をする。
【0094】
Indexバッファー部2212とARGBバッファー部2213からそれぞれIndexページデータとARGBページデータを画素ごとに読み込む(ステップS2301)。
【0095】
次に、画素単位に読み込まれたIndex値が“255”である場合(ステップS2302でYes)、ステップS2304へ移行し、ステップS2301で読み込んだその画素に対応するARGB値を、その画素の色とする。一方、Index値が“255”でない場合、ステップS2303へ移行し、Index値でIndexテーブルをアクセスし、対応するARGB値を求める。
【0096】
次に、全ての画素を処理したか判定し(ステップS2305)、未だ処理していない画素が存在する場合はステップS2301へ戻り、全ての画素が処理されるまで上記一連の処理を繰り返す。
【0097】
ここで、図22に戻り、その説明を続ける。色変換処理部2215は、Index値変換部2214からRGB画像データを読み込み、RGB−>CMYの色変換処理とBG/UCR処理を行い、CMYKデータを階調処理部2216へ転送する。階調処理部2216は、しきい値マトリックス記憶部2209からしきい値マトリックスを読み込み、色変換処理部2215からCMYKデータを受け取ることにより階調処理(ハーフトーン処理)を実行し、メモリのワード単位に画像処理後画像バッファー部2217へ階調処理後のデータを転送する。画像処理後画像バッファー部2217は、階調処理部2216で処理された画像データを、複数の効率の良いバースト転送をするために複数のワードデータを一時格納する。
【0098】
画像処理後画像書き込み部2219は、メモリアービターI/F2201を介して、画像処理後画像バッファー部2217に格納された複数ワードの画像データを、図2のメインメモリ205の階調処理後ページメモリ領域へ書き込む。画像処理後画像アドレス生成部2218は、メインメモリ205のメモリ領域のアドレス演算を行う。この時、画像処理後画像データに対し水平ライン単位でアドレスを生成する。
【0099】
以上で説明した例では、写真画像描画とグラフィックス画像描画を分け、写真画像描画は無条件でARGBフォーマットのカラー画像として扱ったが、写真画像においても、色数が少ないと判断できる場合は、グラフィックス画像描画で行ったIndexテーブルへの変換処理を行うようにしてもよい。また、ここでは、色情報として、RGBA(ただし、Aは属性情報)について記述しているが、CMY、CMYK、Lab色でも同様に考えることができる。
【0100】
本実施形態では、画素のフォーマットを図10、11のように32bitのARGBフォーマットと8bitのIndexフォーマットで表現している。Indexフォーマットによる描画では、8bit/PIXELで描画することが可能であり、処理スピードを速くすることが可能である。また、全画素について32bitの画素データを保持するのではないので、メモリ空間を効率よく利用でき、また、減色処理を必要としないので、高画質を保つことが可能である。
【0101】
また、特許文献2のように、Indexテーブルを作成時にIndexテーブルの値を順次、比較するのでは無く、ハッシュ関数を使用し、そのキーの値でIndexテーブルを作成するのでIndexテーブルの生成が高速である。また、描画する時に描画する色のキー(Index値)でIndexテーブルをアクセスし、Indexテーブルの色と描画する色が異なるキーの衝突が起きた場合、その色は32bitのカラー値(ARGB)で描画するので、キーの衝突が起きても、正しく描画することが可能であり、また、そのことは大きなスピードの低下にはつながらない。
【0102】
また、背景技術にて前述した再描画の問題においても、図10のフォーマットで図9のようにメモリを確保しているため、再度のIndexテーブルでのバンド画像の展開処理は発生しないので、再描画処理においても、高速化が可能である。
【0103】
また、図10、11のフォーマットで図17のように描画する場合、写真画像の面積が支配的である場合に、Index値の“255”とARGB値の色情報の2つを同時に描画する必要があり、この場合、Index値の描画が無駄に多くなってしまう。これに対処するため、図18の処理フローのように、写真画像描画の場合や、Indexテーブルをミスヒットした場合(すなわち、Index値が衝突した場合)のARGBで描画する描画コマンドの数をカウントし、また全体の描画コマンドをカウントし、全てのカウントが終了した時に、ARGBで描画するカウント値と全体の描画コマンドのカウント値からARGBで描画する割合を求め、その数値が許容範囲であるか判断し、許容値を超えている場合はダイレクト描画(ARGBのみ描画する方法)へ切り替えることにより、描画スピードの低下を防ぐことができる。
【0104】
またもう1つの処理として、図19の処理フローのように、写真画像やIndexテーブルをミスヒットした場合のARGBで描画する描画面積を求めその面積を加算し、また全体の描画面積を求め、全ての描画コマンドを終了した時に、ARGBで描画する描画面積と全体の描画面積からARGBで描画する割合を求め、その数値が許容範囲であるか判断し、許容値を超えている場合は、ダイレクト描画へ切り替えることにより、描画スピードの低下を防ぐことができる。
【0105】
本実施形態の画像形成装置で実行される前述の処理フローを実現するプログラムは、ROM等に予め組み込んで提供するように構成されるが、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)、各種メモリカード等のコンピュータで読み取り可能な記録媒体に記録して提供することもできる。
【0106】
また、本実施形態の画像形成装置で実行される上記プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【0107】
本実施の形態の画像形成装置で実行されるプログラムは、上述した各部(描画コマンド生成部、描画部、画像処理部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、描画コマンド生成部、描画部、画像処理部が主記憶装置であるメインメモリ上に生成されるようになっている。
【0108】
なお、上記実施の形態では、本発明の画像形成装置を、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも2つの機能を有する複合機に適用した例を挙げて説明するが、複写機、プリンタ、スキャナ装置、ファクシミリ装置等の画像形成装置であればいずれにも適用することができる。
【符号の説明】
【0109】
100 画像形成装置
200,211 ASIC
201 CPU
202 CPU I/F
203 メモリARB
204 メモリコントローラ
205 メインメモリ
206 DMA制御部
207 エンジンコントローラ
208 プリンタエンジン
209 通信制御部
210 PC
212 画像処理部
301 PDL記憶部
302 PDL解析処理部
303 描画コマンド記憶部
304 Indexテーブル生成処理部
305 色テーブル記憶部
306 Indexテーブル記憶部
307 描画処理部
308 ARGB描画処理部
309 Index描画処理部
310 ARGBページ画像記憶部
311 Indexページ画像記憶部
312 Indexテーブル変換処理部
313 切替処理部
314 RGB−>CMY色変換処理部
315 UCR処理部
316 階調処理部
317 階調処理後CMYKページ画像記憶部
318 DMA処理部
319 プリンタエンジン
【先行技術文献】
【特許文献】
【0110】
【特許文献1】特開2008−78820号公報
【特許文献2】特開2007−216675号公報

【特許請求の範囲】
【請求項1】
入力情報を解析し、色情報を含む描画情報を生成する描画情報生成手段と、
生成された前記描画情報の色情報からハッシュ関数を用いてIndex番号を生成するIndex番号生成手段と、
前記Index番号生成手段により生成されたIndex番号が、未使用で有るか判定するIndex未使用判定手段と、
前記Index未使用判定手段により、前記Index番号が未使用と判定された場合に、Indexテーブルとして前記Index番号および前記色情報の組が格納されるIndexテーブル記憶手段と、
前記Index未使用判定手段により、前記Index番号が使用済みであると判定された場合に、前記Indexテーブル記憶手段に格納されたIndex番号に対応する色情報を取得し、該色情報が、前記描画情報の色情報と同一であるか判断するIndex色判断手段と、
前記Index色判断手段により、前記2つの色情報が同一であると判定された場合に、Index番号を描画するIndex番号描画手段と、
前記Index番号描画手段により描画されるIndexページのIndex値を記憶するIndexデータ記憶手段と、
前記Index色判断手段により、前記2つの色情報が異なると判定された場合に、Index番号として使用しない値を前記Indexページに描画する識別情報描画手段と、
前記Index色判断手段により、前記2つの色情報が異なると判定された場合に、前記描画情報の色情報を描画する第1の描画手段と、
前記第1の描画手段により描画されるページの色情報からなる画像データを記憶する画像データ記憶手段と、
前記Indexデータ記憶手段に記憶されたIndex値と前記画像データ記憶手段に記憶された色情報とを画素毎に読み込み、読み込んだIndex値に基づいて、Index番号に対しては前記IndexテーブルをアクセスすることによりIndex番号を色情報へ変換した変換後の色情報を用い、Index番号として使用されない値のIndex値に対しては前記画像データ記憶手段に記憶された色情報を用いて、画像データを生成する画像データ生成手段と、
前記画像データ生成手段により生成された画像データに画像処理を行う画像処理手段と
を有することを特徴とする画像処理装置。
【請求項2】
前記描画情報が写真画像を描画するものである場合、前記識別情報描画手段は、Index番号として使用しない値を前記Indexデータ記憶手段に描画し、前記描画情報の色情報を前記画像データ記憶手段に描画することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記Index色判断手段により、前記2つの色情報が異なると判定された場合に、前記描画情報に含まれる該当の描画コマンドの数をカウントする第1の描画コマンドカウント手段と、
全描画コマンドの数をカウントする第2の描画コマンドカウント手段と、
前記第1および第2の描画コマンドカウント手段によるカウント結果から、前記描画情報の色情報を描画に使う描画処理の割合を算出し、該割合に基づいて、前記描画情報の色情報のみを使って描画を行う全ダイレクト描画をすべきか判断するダイレクト描画判断手段と、
前記ダイレクト描画判断手段により、全ダイレクト描画をすべきと判断された場合に、前記描画情報の色情報のみを使って描画を行う第2の描画手段と、
を有することを特徴とする請求項1または請求項2に記載の画像処理装置。
【請求項4】
前記描画情報に含まれる描画コマンドから描画面積を算出する描画面積算出手段と、
前記Index未使用判定手段により、Index番号が使用済みであると判定された場合に、前記Indexテーブル記憶手段に記憶されたIndex番号に対応する色情報を取得し、該色情報が、前記描画情報の色情報と同一であるか判断するIndex色判断手段と、
前記Index色判断手段により、前記2つの色情報が異なる場合に、前記描画面積算出手段により算出された、該当の描画コマンドに対応する描画面積を加算する第1の描画面積算出手段と、
前記描画面積算出手段により算出された描画面積を基に、全描画面積を算出する第2の描画面積算出手段と、
前記第1および第2の描画面積算出手段による描画面積の算出結果から、前記描画情報の色情報を描画に使う描画処理の割合を算出し、該割合に基づいて、前記描画情報の色情報のみを使って描画を行う全ダイレクト描画をすべきか判断するダイレクト描画判断手段と、
前記ダイレクト描画判断手段により、全ダイレクト描画をすべきと判断された場合に、前記描画情報の色情報のみを使って描画を行う第2の描画手段と
を有することを特徴とする請求項1または請求項2に記載の画像処理装置。
【請求項5】
入力情報を解析し、色情報を含む描画情報を生成する描画情報生成工程と、
生成された前記描画情報の色情報からハッシュ関数を用いてIndex番号を生成するIndex番号生成工程と、
前記Index番号生成工程により生成されたIndex番号が、未使用で有るか判定するIndex未使用判定工程と、
前記Index未使用判定工程により、前記Index番号が未使用と判定された場合に、Indexテーブルとして前記Index番号および前記色情報の組をIndexテーブル記憶手段に格納するIndexテーブル記憶工程と、
前記Index未使用判定工程により、前記Index番号が使用済みであると判定された場合に、前記Indexテーブル記憶手段に格納されたIndex番号に対応する色情報を取得し、該色情報が、前記描画情報の色情報と同一であるか判断するIndex色判断工程と、
前記Index色判断工程により、前記2つの色情報が同一であると判定された場合に、Index番号を描画するIndex番号描画工程と、
前記Index番号描画工程により描画されるIndexページのIndex値をIndexデータ記憶手段に記憶するIndexデータ記憶工程と、
前記Index色判断工程により、前記2つの色情報が異なると判定された場合に、Index番号として使用しない値を前記Indexページに描画する色情報識別情報描画工程と、
前記Index色判断工程により、前記2つの色情報が異なると判定された場合に、前記描画情報の色情報を描画する第1の描画工程と、
前記第1の描画工程により描画されるページの色情報からなる画像データを画像データ記憶手段に記憶する画像データ記憶工程と、
前記Indexデータ記憶手段に記憶されたIndex値と前記画像データ記憶手段に記憶された色情報とを画素毎に読み込み、読み込んだIndex値に基づいて、Index番号に対しては前記IndexテーブルをアクセスすることによりIndex番号を色情報へ変換した変換後の色情報を用い、Index番号として使用されない値のIndex値に対しては前記画像データ記憶手段に記憶された色情報を用いて、画像データを生成する画像データ生成工程と、
前記画像データ生成工程により生成された画像データに画像処理を行う画像処理工程と
を含むことを特徴とする画像処理方法。
【請求項6】
前記描画情報が写真画像を描画するものである場合、前記色情報識別情報描画工程は、Index番号として使用しない値を前記Indexデータ記憶手段に描画し、前記描画情報の色情報を前記画像データ記憶手段に描画することを特徴とする請求項5に記載の画像処理方法。
【請求項7】
前記Index色判断工程により、前記2つの色情報が異なると判定された場合に、前記描画情報に含まれる該当の描画コマンドの数をカウントする第1の描画コマンドカウント工程と、
全描画コマンドの数をカウントする第2の描画コマンドカウント工程と、
前記第1および第2の描画コマンドカウント工程によるカウント結果から、前記描画情報の色情報を描画に使う描画処理の割合を調べ、該割合に基づいて、前記描画情報の色情報のみを使って描画を行う全ダイレクト描画をすべきか判断するダイレクト描画判断工程と、
前記ダイレクト描画判断工程により、全ダイレクト描画をすべきと判断された場合に、前記描画情報の色情報のみを使って描画を行う第2の描画工程と
をさらに含むことを特徴とする請求項5または請求項6に記載の画像処理方法。
【請求項8】
前記描画情報に含まれる描画コマンドから描画面積を算出する描画面積算出工程と、
前記Index未使用判定工程により、Index番号が使用済みであると判定された場合に、前記Indexテーブル記憶手段に記憶されたIndex番号に対応する色情報を取得し、該色情報が、前記描画情報の色情報と同一であるか判断するIndex色判断工程と、
前記Index色判断工程により、前記2つの色情報が異なる場合に、前記描画面積算出工程により算出された、該当の描画コマンドに対応する描画面積を加算する第1の描画面積算出工程と、
前記描画面積算出工程により算出された描画面積を基に、全描画面積を算出する第2の描画面積算出工程と、
前記第1および第2の描画面積算出工程の結果から、前記描画情報の色情報を描画に使う描画処理の割合を算出し、該割合に基づいて、前記描画情報の色情報のみを使って描画を行う全ダイレクト描画をすべきか判断するダイレクト描画判断工程と、
前記ダイレクト描画判断工程により、全ダイレクト描画をすべきと判断された場合に、
前記描画情報の色情報を描画する第2の描画工程と
をさらに含むことを特徴とする請求項5または請求項6に記載の画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図16】
image rotate


【公開番号】特開2010−213203(P2010−213203A)
【公開日】平成22年9月24日(2010.9.24)
【国際特許分類】
【出願番号】特願2009−59697(P2009−59697)
【出願日】平成21年3月12日(2009.3.12)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】