(57)【要約】【課題】カラー画像が含まれている場合でも全体の処理の高速化を図りつつ、印刷画像の高品質化を保つ画像処理装置やプログラムを提供する。【解決手段】バンドメモリ１０５へＲＧＢの階調データの展開を行うときに、中間コードから画像の種別がイメージ以外であって、パターンがソリッドまたは２値パターンであって、さらに、ＲＧＢの階調値が“００００００００（２進）”または“１１１１１１１１（２進）”のとき、ＲＧＢの階調データをＧｒａｙデータとしてバンドメモリに簡易展開を行う。それ以外のときはそのままＲＧＢ階調データをバンドメモリ１０５に展開する。Ｇｒａｙデータのとき色補正テーブルを利用した色変換処理は行わず、“００００００００”または“１１１１１１１１”の補間値をとる。その後圧縮してホストコンピュータ１から印刷装置２に出力して印刷を行う。【選択図】図６
2005151065.tif 000002
【特許請求の範囲】
【請求項１】
カラーデータを含む画像データに対して画像処理を行う画像処理装置であって、
前記画像データの画像の種別がイメージ画像以外であって、かつ、前記画像の色が白または黒のとき、前記画像データを構成するＲＧＢ（レッド、グリーン、ブルー）各データを１色分の白または黒の画像データとしてバンドメモリに展開する展開手段と、
前記１色分として展開された画像データを前記バンドメモリから読み出して、前記画像データの補間値を演算してＣＭＹＫ（シアン、マゼンダ、イエロー、ブラック）の画像データに変換する色変換手段と、
を有することを特徴とする画像処理装置。
【請求項２】
請求項１記載の画像処理装置であって、
前記展開手段は、前記画像の種別がグラフィックス画像で、かつ前記グラフィックス画像が単色または２色から構成されているとき、前記グラフィックス画像の色が白または黒の単色、もしくは前記グラフィックス画像の色が白及び黒の２色、か否かを判別する、ことを特徴とする画像処理装置。
【請求項３】
請求項１記載の画像処理装置であって、
前記展開手段は、前記画像の種別が文字のとき、前記文字画像の色が白または黒か否かを判別する、ことを特徴とする画像処理装置。
【請求項４】
請求項１記載の画像処理装置であって、
前記展開手段は、前記画像の種別がイメージ画像であることを検出したとき、前記画像の色は白または黒でないと判別する、ことを特徴とする画像処理装置。
【請求項５】
請求項１記載の画像処理装置であって、
前記展開手段は、前記画像の種別がグラフィックス画像で、前記グラフィックス画像が３色以上の模様から構成されるとき、前記画像の色は白または黒でないと判別する、ことを特徴とする画像処理装置。
【請求項６】
カラーデータを含む画像データに対して画像処理を行う画像処理装置であって、
前記画像データを所定幅を有するバンドメモリに展開させるための中間コードを生成する中間コード生成手段と、
前記中間コード生成手段で生成した中間コードから前記画像データの画像の種別を判別し、前記種別がイメージ以外であって、当該画像が単色または２色から構成され、さらに、当該画像の色が白または黒であるとき、前記画像データを１色分の白または黒の画像データとして前記バンドメモリに展開する展開手段と、
前記展開手段で展開された前記画像データをバンドメモリから読み出して色変換を行う色変換手段と、
を有することを特徴とする画像処理装置。
【請求項７】
請求項６記載の画像処理装置であって、
前記色変換手段は、前記１色分の色または黒の画像データに対してその画像データの補間値を演算して、ＣＭＹＫ（シアン、マゼンダ、イエロー、ブラック）の画像データに変換する、ことを特徴とする画像処理装置。
【請求項８】
カラーデータを含む画像データに対して画像処理を行うプログラムであって、
前記画像データの画像の種別がイメージ画像以外であって、かつ、前記画像の色が白または黒のとき、前記画像データを構成するＲＧＢ（レッド、グリーン、ブルー）各データを１色分の白または黒の画像データとしてバンドメモリに展開する展開処理と、
前記１色分として展開された画像データを前記バンドメモリから読み出して、前記画像データの補間値を演算してＣＭＹＫ（シアン、マゼンダ、イエロー、ブラック）の画像データに変換する色変換処理と、
をコンピュータに実行させることを特徴とするプログラム。
【請求項９】
カラーデータを含む画像データに対して画像処理を行うプログラムであって、
前記画像データを所定幅を有するバンドメモリに展開させるための中間コードを生成する中間コード生成処理と、
前記中間コード生成処理で生成した中間コードから前記画像データの画像の種別を判別し、前記種別がイメージ以外であって、当該画像が単色または２色から構成され、さらに、当該画像の色が白または黒であるとき、前記画像データを１色分の白または黒の画像データとして前記バンドメモリに展開する展開処理と、
前記展開処理で展開された前記画像データをバンドメモリから読み出して色変換を行う色変換処理と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタや複写機などの画像処理装置、及び画像処理を行うプログラムに関する。詳しくは、バンドメモリへの簡易展開を行う画像処理装置及び、画像処理のためのプログラムに関する。
【背景技術】
【０００２】
ホストコンピュータで作成した画像をプリンタで印刷させる場合、従来から、ホストコンピュータ内にはプリンタを制御するためのプリンタドライバが備えられ、プリンタ内で処理できる印刷データに変換してプリンタに出力するようになされている。すなわち、プリンタドライバでは、アプリケーションソフトウェアによって生成されたＲＧＢ（レッド、グリーン、ブルー）階調データを含む印刷データをもとに、一旦中間コードに変換してバンドメモリに展開し、その後ＲＧＢ階調データをＣＭＹＫ（シアン、マゼンダ、イエロー、ブラック）階調データに色変換を行い、プリンタに出力するようになされている。
【０００３】
一方、ドライバ内で色変換を行う際に、印刷を行う画像の描画種（文字、グラフィックス、イメージ）によって参照する色変換用の補正テーブルを異なるようにすることで、色の鮮やかさを強調させるようにしたり、自然色に近い色を強調させるようにし、高品質な印刷画像を保つようにしている。このためドライバは、ＲＧＢ階調データをバンドメモリに展開させる際に、例えば各画素ごとに描画種の情報を含む属性情報を生成して、ＲＧＢ階調データとともにバンドメモリに展開させるようにし、この属性情報をもとに参照すべき色変換用のテーブルを選択するようにしている（例えば以下の特許文献１、２）。
【特許文献１】特許第３２２５５０６号  特許公報
【特許文献２】特開２０００−１６５６９０号  特許公開公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、バンドメモリに展開させる際にＲＧＢ階調データをチェックして１ページ分の画像内にカラー画像が含まれていると判断したとき、１ページ分のＲＧＢデータをすべてバンドメモリに展開させるとともに、色変換処理を行わなければならず、全体の処理を早めることができなかった。例えば、１ページ分の画像が複数の印刷オブジェクトから構成されている場合に、一部に黒色のグラフィックスから構成されるオブジェクトが存在しているときでも、黒色を示す値（“00000000”）をＲ、Ｇ、Ｂそれぞれ、各画素ごとにバンドメモリに展開させ、さらに、この値に対して色変換処理を行わなければならなかったのである。
【０００５】
そこで、本発明は、印刷対象の画像にカラー画像が含まれている場合でも全体の処理の高速化を図りつつ、印刷画像の高品質化を保つ画像処理装置やプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために本発明は、カラーデータを含む画像データに対して画像処理を行う画像処理装置であって、画像データの画像の種別がイメージ画像以外であって、かつ、画像の色が白または黒のとき、画像データを構成するＲＧＢ（レッド、グリーン、ブルー）各データを１色分の白または黒の画像データとしてバンドメモリに展開する展開手段と、１色分として展開された画像データをバンドメモリから読み出して画像データの補間値を演算してＣＭＹＫ（シアン、マゼンダ、イエロー、ブラック）の画像データに変換する色変換手段と、を有することを特徴としている。これにより、例えば、ＲＧＢそれぞれ３色分の画像データをバンドメモリに展開させずに１色分の画像データを展開させ、さらにＣＭＹＫの画像データへの色変換もその補間値をとるだけなので処理の高速化を図る画像処理装置を提供することができる。また、画像の種別がイメージのときや、イメージ以外で画像の色が白または黒以外のときにはＲＧＢそれぞれ３色分の画像データに対してＣＭＹＫへの色変換を行っているので高品質な画像を形成する画像処理装置を提供することができる。
【０００７】
また、上記目的を達成するために本発明は、カラーデータを含む画像データに対して画像処理を行う画像処理装置であって、画像データを所定幅を有するバンドメモリに展開させるための中間コードを生成する中間コード生成手段と、中間コード生成手段で生成した中間コードから画像データの画像の種別を判別し、画像の種別がイメージ以外であって、その画像が単色または２色から構成され、さらに、その画像の色が白または黒であるとき、画像データを１色分の白または黒の画像データとしてバンドメモリに展開する展開手段と、展開手段で展開された画像データをバンドメモリから読み出して色変換を行う色変換手段と、を有することを特徴としている。これにより、例えば、１色分の画像データをバンドメモリに展開させるだけなので処理の高速化を図る画像処理装置を提供することができる。また、画像の種別がイメージのとき、またはイメージ以外であってもソリッドまたは２値パターン以外のとき、またはイメージであってソリッドまたは２値パターンであっても白または黒から構成されていないとき、３色分の画像データに対して色変換を行うようにしたので高品質の画像を形成する画像処理装置を提供することができる。
【０００８】
さらに、上記目的を達成するために、カラーデータを含む画像データに対して画像処理を行うプログラムであって、画像データの画像の種別がイメージ画像以外であって、かつ、画像の色が白または黒のとき、画像データを構成するＲＧＢ（レッド、グリーン、ブルー）各データを１色分の白または黒の画像データとしてバンドメモリに展開する展開処理と、１色分として展開された画像データをバンドメモリから読み出して、画像データの補間値を演算してＣＭＹＫ（シアン、マゼンダ、イエロー、ブラック）の画像データに変換する色変換処理と、をコンピュータに実行させるプログラムであることを特徴としている。これにより、例えば、これにより、例えば、ＲＧＢそれぞれ３色分の画像データをバンドメモリに展開させずに１色分の画像データを展開させ、さらにＣＭＹＫの画像データへの色変換もその補間値をとるだけなので処理の高速化を図る画像処理装置を提供することができる。また、画像の種別がイメージのときや、イメージ以外で画像の色が白または黒以外のときにはＲＧＢそれぞれ３色分の画像データに対してＣＭＹＫへの色変換を行っているので高品質な画像を形成するプログラムを提供することができる。
【０００９】
さらに、上記目的を達成するために本発明は、カラーデータを含む画像データに対して画像処理を行うプログラムであって、画像データを所定幅を有するバンドメモリに展開させるための中間コードを生成する中間コード生成処理と、中間コード生成処理で生成した中間コードから画像データの画像の種別を判別し、種別がイメージ以外であって、その画像が単色または２色から構成され、さらに、その画像の色が白または黒であるとき、画像データを１色分の白または黒の画像データとして前記バンドメモリに展開する展開処理と、展開処理で展開された画像データをバンドメモリから読み出して色変換を行う色変換処理と、をコンピュータに実行させるプログラムであることを特徴としている。これにより、例えば、１色分の画像データをバンドメモリに展開させるだけなので処理の高速化を図るプログラムを提供することができる。また、画像の種別がイメージのとき、またはイメージ以外であってもソリッドまたは２値パターン以外のとき、またはイメージであってソリッドまたは２値パターンであっても白または黒から構成されていないとき、３色分の画像データに対して色変換を行うようにしたので高品質の画像を形成するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明を実施するための最良の形態を説明する。図１は、本発明が適用される全体システムの構成例である。図１に示すように本システムは、ホストコンピュータ１と印刷装置２とから構成される。
【００１１】
ホストコンピュータ１は、ＣＰＵ１０と、表示部１１と、ＨＤＤ（Hard Disk Drive）１２と、ＲＯＭ１３と、ＲＡＭ１４、及びインターフェース（Ｉ／Ｆ）１５とから構成され、互いにバスを介して接続されている。ＣＰＵ１０はコンピュータ１内で画像処理等の各種の処理を実行するためのものである。詳細は後述する。表示部１１は、ＣＰＵ１０の制御により印刷対象の画像等を表示する。ＨＤＤ１２は印刷対象の画像等を格納するためのもので、ＣＰＵ１０の制御により印刷対象の画像が格納され適宜読み出される。ＲＯＭ１３は本発明が適用されるプログラムや各種処理を行うためのプログラムが格納され、ＣＰＵ１０により適宜読み出されて処理が実行される。ＲＡＭ１４は、ＣＰＵ１０のワーキングメモリとしての役割を果たしＣＰＵ１０の実行結果等が適宜格納される。Ｉ／Ｆ１５は、ＣＰＵ１０の制御により印刷対象の画像を所定の伝送フォーマットに変換して外部に出力するためのものである。
【００１２】
このように構成されたホストコンピュータ１では、ＨＤＤ１２に記憶された画像をＣＰＵ１０の制御により表示部１１に表示させ、ユーザによるホストコンピュータ１の操作によりＣＰＵ１０はＲＯＭ１３から画像処理のためのプログラムを読み出す。そして、ＣＰＵ１０でかかる処理が実行され適宜ＲＡＭ１４に画像処理後のデータが格納される等することでＩ／Ｆ１５から印刷対象の画像が出力される。
【００１３】
次に印刷装置２について説明する。印刷装置２は、ＣＰＵ２０と、インターフェース（Ｉ／Ｆ）２１と、ＲＯＭ２２と、ＲＡＭ２３と、印刷エンジン２４、そしてコントロールパネル２５とから構成され、バスを介して互いに接続されている。ＣＰＵ２０はＲＯＭ２２に格納されたプログラムを読み出して各種処理を実行するためのものである。詳細は後述する。Ｉ／Ｆ２１は、ホストコンピュータ１から所定の伝送フォーマットで出力された印刷対象の画像データが入力され、印刷装置２内で処理できるデータに変換する。ＲＯＭ２２はＣＰＵ２０が処理を実行するプログラムが格納される。ＲＡＭ２３はＣＰＵ２０のワーキングメモリとしての役割を果たし処理後のデータ等がＣＰＵ２０の制御により適宜格納される。印刷エンジン２４は、後述するレーザダイオードや感光体ドラム等から構成され、印刷媒体に対して実際に画像の印刷を行う。コントロールパネル２５は、印刷媒体の種別や枚数等を指定するためのものである。例えば、コントロールパネル２５は液晶ディスプレイから構成される。
【００１４】
このように構成された印刷装置２では、ホストコンピュータ１から画像データがＩ／Ｆ２１に入力され一旦ＲＡＭ２３に格納される。そしてＣＰＵ２０は適宜ＲＯＭ２２から印刷のためのプログラムを読み出して処理が実行され印刷のための駆動データを生成する。駆動データはＣＰＵ２０の制御により印刷エンジン２４に出力され、実際にホストコンピュータ１で生成した画像が印刷されることになる。
【００１５】
図２には、図１に示すシステムの機能ブロックの構成を示す。全体としてホストコンピュータ１と印刷装置２とから構成されるのは図１と同様である。図１に示すようにホストコンピュータ１は、アプリケーション部１０１とドライバ１１０とから構成される。なお、アプリケーション部１０１及びドライバ１１０は図１のＣＰＵ１０、ＲＯＭ１３、ＲＡＭ１４に対応するものである。
【００１６】
アプリケーション部１０１は、文字データ、図形データ、ビットマップデータ等の印刷対象のデータを生成する。ＲＯＭ１３に格納されたワードプロセッサや図形ツールなどのアプリケーションプログラムをＣＰＵ１０が読み出して実行することで、文字や、グラフィックス、図形などの印刷データが生成される。この印刷データは、所定の記述言語により表現されたデータである。例えば、ＰＤＬ（Page Description Language）や、ＧＤＩ（Graphic Device Interface）によるコマンド形式で印刷データが表現される。詳細は後述する。かかる言語で表現された印刷データはＣＰＵ１０の制御により、ドライバ１１０に出力される。
【００１７】
ドライバ１１０は図２に示すように、コマンド解析部１０２と、中間コード生成部１０３と、画像展開部１０４と、バンドメモリ１０５と、色処理部１０６、及び圧縮部１０７とから構成される。コマンド解析部１０２はアプリケーション部１０１と接続されるとともに、中間コード生成部１０３に接続される。コマンド解析部１０２は、アプリケーション部１０１からＧＤＩ等の言語で記述された印刷データが入力され、そのコマンド内容を解析しその結果を中間コード生成部１０３に出力する。
【００１８】
中間コード生成部１０３は、コマンド解析部１０２から出力された情報をもとに中間コードを生成して画像展開部１０４に出力する。この中間コードは主として後述するバンドメモリ１０５に対しどのように画像を格納させるかの情報を示すものである。画像展開部１０４は、中間コード生成部１０３からの中間コードが入力され、このコードをもとにバンドメモリ１０５に対して実際にＲＧＢ階調データをメモリ１０５に格納、展開させる。また、画像展開部１０４は、中間コードから、画像の種別を示す情報を含む属性情報Ｘを生成する。後段の色変換処理やハーフトーン処理で画像の種別に適した色補正テーブルやハーフトーンテーブルを選択するためである。画像の種別としては、文字、グラフィックス、イメージがある。この属性情報Ｘもバンドメモリ１０５に展開される。属性情報Ｘの生成についての詳細は後述する。
【００１９】
さらに画像展開部１０４では、中間コード（さらに中間コードに含まれるＲＧＢ階調データ）からＲＧＢＸのデータとしてバンドメモリに展開させるか、Ｇｒａｙデータとして展開させるのか、について決定する。ＲＧＢＸのデータとは、ＲＧＢ階調データにさらに属性情報Ｘを付加したデータのことで、Ｇｒａｙデータとは、白色のデータ（ＲＧＢ色空間では、ＲＧＢの各色それぞれ“１１１１１１１１（２進数）”として表現される）または黒色のデータ（同様にＲＧＢ各色それぞれ“００００００００（２進数）”）を１バイトで表したデータのことである。すなわち、本来白色、黒色のＲＧＢの階調値は各ＲＧＢそれぞれ８ビットで表現された“１１１１１１１１”または、“００００００００”の３バイトで表現されるが、Ｇｒａｙデータは白色、黒色をＲＧＢそれぞれ３バイトではなく、1バイトで“１１１１１１１１”または“００００００００”として表現したものである。したがって、ＲＧＢＸとしてバンドメモリ１０５に展開させたとき、各色１バイトで３バイト分、さらに属性情報Ｘも１バイト分あるため全体として４バイト分の大きさがあるが、Ｇｒａｙデータの場合、１バイト分の大きさのみである（属性情報Ｘは付加しない）ため、格納すべきデータ量が少ない分バンドメモリ１０５への展開の処理時間を早めることができる。なお、Ｇｒａｙデータとして展開したとき属性情報Ｘを付加していないのは、ＧｒａｙデータでＣＭＹＫへの色変換を行うとき補正テーブルを参照する必要がなく、またその後のハーフトーン処理のときも解像優先、階調優先、どちらのハーフトーンテーブルを利用してもＧｒａｙデータに対する出力値は変わらないからである。
【００２０】
なお、画像展開部１０４では、ＲＧＢ階調データをＲＧＢＸとして展開させたか、あるいはＧｒａｙデータとして展開させたかによって、色補正テーブルを利用して色変換処理を行うか否かを示す種別キーを生成する。すなわち、後述する色処理部１０６においてこの種別キーによって色補正テーブルを利用して色変換するのか、当該テーブルを利用せず色変換するのかを決定するのである。生成した種別キーはＣＰＵ１０の制御によりＲＡＭ１４に格納される。
【００２１】
バンドメモリ１０５は、画像展開部１０４からのＲＧＢＸデータまたはＧｒａｙデータが入力されＣＰＵ１０の制御によりいづれかがが格納される。図３にバンドメモリ１０５の構成例を示す。バンドメモリ１０５は、１ページ分の画像領域を複数の領域に分割し、各領域が１つのバンドとして構成される。このようにすることで、バンドメモリ１０５自体の容量を１ページ分持たせる必要がなくなり、処理の効率化を図り、安価なメモリによりバンドメモリ１０５を構成することができる。
【００２２】
なお、ＲＧＢＸデータの各値は上述したように８ビットで表現され（各ＲＧＢごとに０から２５５までの値を有する）、各画素ごと、そして各色ごとにこれらの値が格納されることになる。また、Ｇｒａｙデータの場合は、図３に示すように各画素８ビットのデータ（１バイト分のデータ）として格納される。ＲＧＢの各階調値はすべて同じ“００００００００”または“１１１１１１１１”となるため、１バイト分のこの値を格納させることで、メモリ１０５の効率化と処理の高速化を図ることができる。なお、バンドメモリ１０５上の各座標位置は印刷媒体上の座標位置に対応する。したがってオブジェクト画像の配置をメモリ１０５上で対応するように配置させることで所望の印刷画像が得られる。
【００２３】
図２に戻り、色処理部１０６は、バンドメモリ１０６からのＲＧＢＸデータまたはＧｒａｙデータが入力されて色変換処理を行い、ＣＭＹＫの階調データを生成して圧縮部１０７に出力する。色処理部１０６の具体的構成を図４に示す。図４に示すように、色処理部１０６は第１のスイッチング部１２０と、色変換部１２１と加算部１２２とから構成される。第１のスイッチング部１２０は、バンドメモリ１０５から読み出されたＲＧＢデータまたはＧｒａｙデータとを種別キーに応じてスイッチングするように構成される。種別キーが色補正テーブルを用いて色変換処理を行わないことを示すとき（バンドメモリ１０５にＧｒａｙデータとして展開されたとき）、バンドメモリ１０５から読み出されたＧｒａｙデータは後述する白黒用変換部１２１１に出力されるよう切替わる。一方、種別キーが色補正テーブルを用いて色変換処理を行うようにすることを示すとき（バンドメモリにＲＧＢＸデータとして展開されたとき）、バンドメモリ１０５から読み出されたＲＧＢデータは後述する色変換処理部１２１２に出力されるよう切替わる。なお、第１のスイッチング部１２０の切り替えはＣＰＵ１０の制御によって行われる。
【００２４】
色変換部１２１は、白黒用変換部１２１１と色変換処理部１２１２、第２のスイッチング部１２１３、及び３つの色補正テーブル１２１４Ａ、１２１４Ｂ、１２１４Ｃとから構成される。白黒用変換部１２１１は、第１のスイッチング部１２０により入力されたＧｒａｙデータをＣＭＹＫ色空間のデータに変換する。すなわち、ＲＧＢ色空間で白色のデータを示す“ｆｆ（１６進）”の補完をとってＣＭＹＫ色空間で白色のデータを示す“００（１６進）”に変換し、ＲＧＢ色空間で黒色のデータを示す“００（１６進）”の補完をとってＣＭＹＫ色空間で黒色のデータを示す“ｆｆ（１６進）”に変換する。このように変換されたＣＭＹＫデータは圧縮部１０７に出力される。
【００２５】
一方、第１のスイッチング部１２０から出力されたＲＧＢデータは色変換処理部１２１２に入力され、属性情報Ｘにより第２のスイッチング部１２１３が３つの色補正テーブル１２１４Ａ、１２１４Ｂ、１２１４Ｃのうちいづれか１つのテーブルが選択され、選択されたテーブルに基づいてＣＭＹＫデータへの色変換処理が行われる。属性情報Ｘには、オブジェクトに対する画像の種別（文字、グラフィックス、イメージ）に関する情報が含まれているため、第２のスイッチング部１２１３でこの情報をもとに色補正テーブルが選択される。
【００２６】
なお、本実施例において色変換処理は、四面体補間による変換処理が行われる。すなわち、色変換処理部１２１２に入力されたＲＧＢの各階調データに対して対応するＣＭＹＫの各階調データを選択された色補正テーブル１２１４Ａ〜１２１４Ｃから求めることになるが、ＲＧＢのすべての階調値に対して対応するＣＭＹＫの各階調値をもたせるようなテーブルでは、膨大なデータ量となる。例えば、ＲＧＢの各階調値が“０（１０進）”から“２５５（１０進）”までの２５６種類の値を有しているとき、このすべての組合せに対するＣＭＹＫの階調値は２５６の３乗分のデータ量を有することになる。そこで、ＲＧＢのそれぞれの各階調値に対して所定の割合で間引いた格子点に対するＣＭＹＫの各階調値をもたせるようにテーブル１２１４Ａ〜１２１４Ｃを構成する。これにより、テーブル１２１４Ａ〜１２１４Ｃを格納するメモリの容量を減らすことができる。
【００２７】
また、本実施例において色補正テーブル１２１４Ａ〜１２１４Ｃは全部で３種類ある。色補正テーブル１２１４Ａは、色合わせの量が多く自然色を再現するのに適したテーブルである。属性情報Ｘから画像の種別がイメージのとき選択される。色補正テーブル１２１４Ｃは、色合わせが少なく色を鮮やかに再現するのに適したテーブルである。属性情報Ｘから文字の画像種のときに選択される。またテーブル１２１４Ｂは色合わせが２つのテーブル１２１４Ａ、１２１４Ｃの中間で混合も２つのテーブル１２１４Ａ、１２１４Ｃの中間の値を取りうるテーブルである。属性情報Ｘにおいて画像の種別がグラフィックスのときに選択される。
【００２８】
色変換後のＣＭＹＫの階調データは加算部１２２に出力される。加算部１２２は属性情報ＸとＣＭＹＫの階調データとを加算する。属性情報Ｘはハーフトーン処理のとき、画像の種別に応じて最適なハーフトーンテーブルが選択されるときに必要だからである。加算部１２２で加算されたＣＭＹＫの階調データは圧縮部１０７に出力される。
【００２９】
図２に戻り、圧縮部１０７は白黒用変換部１２１１及び加算部１２２から出力されたＣＭＹＫの階調データが入力され、圧縮処理を施して印刷装置２に出力する。圧縮するのは、ＣＭＹＫ階調データの転送効率をあげるためである。圧縮処理は、例えば多く出現するコードに符号長の短い符号を割り当て、出現率が少ないコードに符号長の長い符号を割り当てる、いわゆるハフマン符号化を用いる。もちろん、それ以外の圧縮処理であってもよい。
【００３０】
印刷装置２の機能的なブロックの構成も図２に示す。印刷装置２は、解凍部２０１と、ハーフトーン処理部２０２と、パルス幅変調部２０３と、印刷エンジン２４とから構成される。解凍部２０１と、ハーフトーン処理部２０２、及びパルス幅変調部２０３は、図１のＣＰＵ２０、ＲＯＭ２２、及びＲＡＭ２３に対応する。
【００３１】
解凍部２０１は、ホストコンピュータ１から出力された、圧縮後のＣＭＹＫの階調データが入力され、伸長処理（解凍）を行う。解凍後のＣＭＹＫデータ（ＲＧＢＸとしてバンドメモリ１０５に展開されたデータのときは属性情報Ｘも含む）はハーフトーン処理部２０２に出力される。ハーフトーン処理部２０２は、属性情報Ｘのうち画像の種別に応じて複数のハーフトーンテーブルから最適なテーブルを選択して、濃淡画像の中間階調を表現した再生画像データを生成する。テーブルは例えば、網点を細かくしてスクリーン線数を多くとったテーブルと、網点を粗くしてスクリーン線数を少なくとったテーブルの２種類がある。スクリーン線数が多いと細い線が欠けることなく忠実に再現できるため解像度がよく、文字やグラフィックスを印刷するには有利である。また、スクリーン線数が少ないと階調の変化をそれだけ多く再現できるため、イメージを印刷するには有利である。よって、属性情報Ｘのうち画像の種別を示す情報が文字やグラフィックスのときは、スクリーン線数の多いテーブルを選択し、イメージのときはスクリーン線数の少ないテーブルを選択するようにする。そして、ハーフトーン処理部２０２は、テーブル内のＣＭＹＫ階調データに対応する出力値を求めて（いわゆるγテーブル）、その出力値を再生画像データとして出力する。
【００３２】
パルス幅変調部２０３は、ハーフトーン処理部２０２からの再生画像データが入力され、印刷媒体に形成されるドットごとにレーザ駆動パルス有り又は無し等の駆動データを生成する。生成した駆動データは、印刷エンジン２４に出力される。
【００３３】
印刷エンジン２４は、レーザダイオード（ＬＤ）２４１、感光体ドラム２４２とから構成される。レーザダイオード２４１は、パルス幅変調部２１２からの駆動データが入力され、その駆動データに対応したレーザ光を感光体ドラム２４２に照射する。これにより、ドラム２４２上に潜像が形成される。そして、ＣＭＹＫの各色のトナーがドラム２４２に付着することで現像され、図示しない転写ベルト等を介して、実際に印刷用紙等の記録媒体に画像が印刷されることになる。
【００３４】
以上のように構成された本発明が適用されるシステムでの動作の詳細について説明する。図５にはそのうち、ホストコンピュータ１内での処理の動作を示すフローチャートである。ホストコンピュータ１のＣＰＵ１０は、本処理を実行するためのプログラムをＲＯＭ１３から読み出すことで処理が開始される（ステップＳ１０）。
【００３５】
次いでＣＰＵ１０は、印刷のための画像等を生成し、その画像を示すＧＤＩ描画レコードを生成する。このＧＤＩ描画レコードは、上述したようにアプリケーション部１０１において画像を生成することにより生成されるものである。例えば、図７（ａ）に示す印刷画像を生成したときで説明する。この図に示すように１ページ分の画像は、イメージ１とイメージ２、２つの文字１と文字２、そして２つのグラフィックス１、２から構成されている。ＧＤＩ描画レコードは、１つのオブジェクト画像ごとにコマンド形式で表現される。
【００３６】
このうち、イメージ１についての描画コマンドは、図７（ｂ）に示すように“Ｉｍａｇｅ（Ｘ１、Ｙ１、Ｗ１、Ｈ１、Ｒ０、Ｂ０、Ｇ０、…）”と表現される。“Ｉｍａｇｅ”は、オブジェクト画像がイメージであることを示す。“Ｘ１、Ｙ１”は、１ページの画像の原点（０，０）を最も左上の画素にとったとき、イメージ１の開始位置の座標を示す。“Ｗ１”はイメージ１の幅、“Ｈ１”はイメージ１の高さを示す。また、“Ｒ０、Ｇ０、Ｂ０、…”はイメージ１の各画素のＲＧＢ階調値を示す。イメージ２も同様に、開始位置を“Ｘ２、Ｙ２”、幅を“Ｗ２”、高さを“Ｈ２”としてＧＤＩ描画レコードが表現される。
【００３７】
グラフィックス１は、開始位置の座標“Ｘ４、Ｙ４”，終了位置の座標“Ｘ５、Ｙ５”とする線が複数からなるものとして表現される。グラフィックス２は、開始位置の座標“Ｘ７、Ｙ７”、幅“Ｗ７”、高さ“Ｈ７”となる。グラフィックス２は矩形の形状で、その矩形を白を背景として複数の黒ドットからなっている。かかるグラフィックスは、２値パターンと呼ばれる。よって、２色分のＲＧＢ階調値で表現できるため、グラフィックス２の描画レコードでは“Ｒ０、Ｇ０、Ｂ０、Ｒ１、Ｇ１、Ｂ１”となる。
【００３８】
文字１は、文字を示すコマンド“Ｃｈａｒ”、その引数にその開始位置を示す“Ｘ３、Ｙ３”、幅“Ｗ３”、高さ“Ｈ３”、文字の色を示すＲＧＢの階調値“Ｒ、Ｇ、Ｂ”として表現される。さらに文字２は、コマンド“Ｃｈａｒ”の引数に開始位置“Ｘ６、Ｙ６”、幅“Ｗ６”、高さ“Ｈ６”、ＲＧＢの階調値“Ｒ、Ｇ、Ｂ”として表現される。なお、文字１はモノクロデータ（ＲＧＢそれぞれ“００００００００（２進）”または“１１１１１１１１（２進）”）であり、文字２はカラーデータ（モノクロデータ以外のデータ）である。このように生成した描画コマンドは、ＣＰＵ１０の制御によって例えばＲＡＭ１４に一時記憶される。
【００３９】
図５に戻り、かかる描画レコードを生成すると、次いでＣＰＵ１０はこの描画レコードを解析する（ステップＳ１２）。上述したように、図２のコマンド解析部１０２で処理される。生成した描画コマンドをＲＡＭ１４から読み出して、描画レコードのコマンド等から、オブジェクト画像が文字なのか、グラフィックスなのか、イメージなのか等を示す情報を生成することになる。
【００４０】
次いでＣＰＵ１０は、解析した描画レコードから中間コードを生成する（ステップＳ１３）。図２における中間コード生成部１０３で行われる。図７（ｂ）の描画レコードから生成した中間コードの例を図８（ａ）に示す。中間コードは図８（ａ）に示すようにバンドごとに生成される。バンド１には図７（ａ）のイメージ１のみ存在し、中間コードは“ＩＭ（Ｘ'１，Ｙ'１）、Ｗ１、Ｈ１、（Ｒ０、Ｇ０、Ｂ０、…）”と表現される。ここで“ＩＭ”は画像の種別がイメージであることを示すもので、“Ｘ'１、Ｙ'１”はバンドメモリ１上での開始位置を示す。 “Ｗ１”はイメージ１の幅、“Ｈ１”はイメージ１の高さ、 “Ｒ０、Ｇ０、Ｂ０、…”はイメージ１の各画素のＲＧＢ階調値を示す。
【００４１】
バンド２には、図７（ａ）のイメージ２と文字１とが存在する。イメージ２はイメージ１とほぼ同様である。ただし、開始位置の座標はバンド２上での開始位置、すなわちバンド２での最も左上の位置を原点（０，０）としたものである。文字１の中間コードは“ＣＨ（Ｘ'３，Ｙ'３）、Ｗ３、Ｈ３、“あ”、（Ｒ，Ｇ、Ｂ）”となる。“ＣＨ”は画像の種別が文字であることを示し、“（Ｘ'３，Ｙ'３）”は文字１の開始点の座標位置、“Ｗ３”は文字１の幅、“Ｈ３”は文字１の高さ、“（Ｒ、Ｇ、Ｂ）”は、文字１の色を示す。この場合、ＲＧＢの各値は“００００００００（２進）”または“１１１１１１１１（２進）”となる。開始点の座標位置は、同様にバンド２での最も左上の位置を原点（０，０）とした場合の位置である。“あ”は文字１のキャラクタを示す。
【００４２】
バンド３には、図７（ａ）のグラフィックス１と文字２とが存在する。グラフィックス１は“ＧＲＰ（Ｘ'４，Ｙ'４，Ｗ４）、…”と表現される。“ＧＲＰ”は、画像の種別がグラフィックスであることを示し、“Ｘ'４，Ｙ'４”はグラフィクス１の開始点、“Ｗ４”は開始点からの幅を示す。グラフィックス１は開始点からの幅分の長さを有する線が複数構成されて、形成されているものである。よって、グラフィックス１を形成するように、“ＧＲＰ（）”と表現された中間コードが複数生成されることになる。さらにバンド３には、文字２があるため、中間コード“ＣＨ（Ｘ'６，Ｙ'６）、Ｗ６、Ｈ６、“Ａ”、（Ｒ，Ｇ，Ｂ）”が生成される。ほぼ文字１と同様であるが、開始点が異なる。
【００４３】
バンド４には図７（ａ）のグラフィックス２が存在する。グラフィックス２の中間コードは“ＬＥＣＴＡＮＧＬＥ（Ｘ'７、Ｙ'７）、Ｗ７、Ｈ７、（Ｒ０、Ｇ０、Ｂ０）、（Ｒ１、Ｇ１、Ｂ１）”となる。“ＬＥＣＴＡＮＧＬＥ”はグラフィックス２が矩形のグラフィックスであることを示す。開始点、幅、高さは上述した中間コードと同様に表現される。また、グラフィックス２は２値パターンであるため、ＲＧＢの階調値は２種類とりうる。よって、２つのＲＧＢ階調値“（Ｒ０、Ｇ０、Ｂ０）、（Ｒ１、Ｇ１、Ｂ１）”がある。
【００４４】
図５に戻り、ＣＰＵ１０は上述した中間コードを生成（ステップＳ１３）した後、ＣＰＵ１０はバンドメモリ１０５への展開処理を行う（ステップＳ１４）。ここで、バンドメモリ１０５への展開に際して、ＲＧＢの階調データをそのまま展開するのか、Ｇｒａｙデータとして展開するかの判断を行う。Ｇｒａｙデータとして展開すれば、メモリ１０５への書き込み量が少なくなり、さらに色変換処理もテーブルを用いた変換処理を行わないため、印刷処理の高速化を図ることができるからである。これにより例えば、カラー印刷をモノクロ印刷なみに行うことも可能になる。
【００４５】
バンドメモリ１０５への展開処理の詳細を図６に示す。まず、ＣＰＵ１０は画像の種別がイメージか否か判断する。イメージ画像は、自然色を再現した色変換を行う必要があるからである。具体的には、ステップＳ１３で生成した中間コードの“ＩＭ”、“ＧＲＰ”、“ＣＨ”等の文字列からＣＰＵ１０が判断する。すなわち、中間コードに“ＩＭ”が含まれているときは、画像の種別はイメージと判断でき、“ＧＲＰ”や“ＬＥＣＴＡＮＧＬＥ”が含まれているときは画像の種別がグラフィックスであると判断でき、さらに“ＣＨ”が含まれているときは画像の種別が文字であると判断できる。“ＩＭ”のとき、本ステップで“ＹＥＳ”が選択されステップＳ１４６に移行し、“ＧＲＰ”や“ＬＥＣＴＡＮＧＬＥ”、“ＣＨ”のときは本ステップで“ＮＯ”が選択されステップＳ１４２に移行する。
【００４６】
ステップＳ１４２においてＣＰＵ１０は、パターンがソリッドまたは２値パターンであるか否か判断する。ソリッドとは、色が単色であることをいい、２値パターンは上述したように２種類の色を有する場合である。ＣＰＵ１０は、中間コードのうちＲＧＢの階調値を読み出すことで判断する。すなわち、ＲＧＢの階調値が１種類であればソリッドと判断でき、２種類であれば２値パターンと判断できる。例えば、グラフィックス１は単色で構成され、その中間コードには１種類のＲＧＢ階調値“（Ｒ，Ｇ、Ｂ）”を有するため、ソリッドのパターンとなる。また、グラフィックス２は２種類のＲＧＢ階調値“（Ｒ０、Ｇ０、Ｂ０、Ｒ１、Ｇ１、Ｂ１）”を有しているため２値パターンと判断できる。ソリッドまたは２値パターンのときは本ステップで“ＹＥＳ”が選択されステップＳ１４３に移行する。また、グラフィックスや文字でソリッド、２値パターン以外、例えばグラフィックス内に模様が形成されている場合等は、色補正等の処理を行う必要があるため、本ステップで“ＮＯ”が選択され、処理はステップＳ１４６に移行する。
【００４７】
ステップＳ１４３においてＣＰＵ１０は、Ｒ＝Ｇ＝Ｂ＝“００００００００（２進）”または“１１１１１１１１（２進）”（１６進数で“００”または“ｆｆ”）であるか否か判断する。色が白または黒からなるものか否かを判断している。画像の種別がグラフィックスや文字であり、ソリッドまたは２値パターンで構成されても、実際の色が白や黒以外の色ならば色補正テーブルを使用して色変換を行うべきだからである。このステップも、ＣＰＵ１０は中間コードの各ＲＧＢの階調値を読出し、その値が“００００００００（２進）”または“１１１１１１１１（２進）”か否かで判断することができる。白または黒のときは本ステップで“ＹＥＳ”が選択されステップＳ１４４に移行する。白や黒以外のときは本ステップで“ＮＯ”が選択されステップＳ１４６に移行する。
【００４８】
ステップＳ１４４においてＣＰＵ１０は、種別キーを生成する。上述したように、種別キーは色補正テーブルを使用して色変換行うか否かの情報を示す。本ステップＳ１４４では、色変換を行わないことを示す種別キーを生成することになる。生成した種別キーは上述したように、ＲＡＭ１４にＣＰＵ１０の制御によって記憶される。
【００４９】
次いでＣＰＵ１０は、ＲＧＢの階調データをＧｒａｙデータとしてバンドメモリ１０５に展開する。すなわち、ＲＧＢの各階調値“００００００００（２進）”または“１１１１１１１１（２進）”は、ＲＧＢそれぞれバンドメモリ１０５に展開させるのではなく、８ビットの“００００００００”または“１１１１１１１１”自体で展開させる。そして、バンドメモリ１０５への展開処理が終了して、処理はステップＳ１５に移行する。
【００５０】
一方、ステップＳ１４１で“ＹＥＳ”、ステップＳ１４２及びＳ１４３で“ＮＯ”が選択されるとステップＳ１４６にて、ＣＰＵ１０は種別キーを生成する。ここではステップＳ１４４の種別キーとは異なり、色補正テーブルを用いて色変換すべきことを示す種別キーを生成する。生成した種別キーは同様にＲＡＭ１４に記憶される。そして、処理はステップＳ１４７に移行し、ＣＰＵ１０は、ＲＧＢの階調値と属性情報Ｘとをバンドメモリ１０５に展開することになる。展開処理が終了して、ステップＳ１６に移行する。
【００５１】
バンドメモリ１０５への展開により、印刷媒体上での印刷形態を決定することになり、その後ＣＰＵ１０はＧｒａｙデータまたはＲＧＢ階調データに対してＣＭＹＫデータへの色変換処理を行うことになる。図８（ａ）の中間コードをバンドメモリ１０５に展開させたときの画像の例を図８（ｂ）に示す。
【００５２】
図５に戻り、展開処理（ステップＳ１４）が終了すると、ＣＭＹＫの階調データへの変換処理を行うことになる（ステップＳ１５、ステップＳ１６）。ここで、Ｇｒａｙデータとしてバンドメモリ１０５に展開したとき（図６のステップＳ１４５）、入力値に対する補間値をとる白黒変換処理（ステップＳ１５）を行う。ＲＧＢＸとして展開したときは（図６のステップＳ１４７）、色補正テーブルを用いた色変換処理（ステップＳ１６）を行う。白黒変換処理は、上述したように（図４参照）、Ｇｒａｙデータである“００００００００（２進）”または“１１１１１１１１（２進）”の補間をとって、それぞれ“１１１１１１１（２進）”または“００００００００（２進）”をＣＭＹＫの階調データとして出力する。色変換処理も上述したように、四面体補間を用いた処理で属性情報Ｘにより画像の種別に応じた補正テーブル１２１４Ａ〜１２１４Ｃが選択されてＲＧＢの階調値に対応したＣＭＹＫの階調値を得る。ＣＭＹＫデータへの変換が終了すると、処理はともにステップＳ１７に移行する。
【００５３】
ステップＳ１７においてＣＰＵ１０は、圧縮処理を行う。上述したようにＣＭＹＫの階調データに対してハフマン符号等による符号化によりデータの圧縮を行う。そして、圧縮したＣＭＹＫの階調データを印刷装置２へ出力する（ステップＳ１８）。１ページ分すべてのＣＭＹＫの階調データを生成する（ステップＳ１９で“ＹＥＳ”）と、本処理は終了し（ステップＳ２０）、まだデータが存在すればステップＳ１１に移行し上述した処理が繰り返されることになる。
【００５４】
以上の処理によりホストコンピュータ１から圧縮されたＣＭＹＫの階調データ（ＲＧＢＸとしてバンドメモリに展開されたときはさらに属性情報Ｘも含む）が印刷装置２に出力される。そして、印刷装置２において解凍部２０１にて解凍され、ハーフトーン処理２０２により濃淡画像を形成した再生画像データが生成される。ＲＧＢＸとして展開された場合のＣＭＹＫの階調データは、属性情報Ｘにより解像優先または階調優先のいづれかのハーフトーンテーブルが選択される。Ｇｒａｙデータとして展開された場合のＣＭＹＫの階調データ（この場合は“１１１１１１１１”または“００００００００”）は、どちらのテーブルでもよい。γテーブルを利用したハーフトーン処理では、入力値と出力値との関係を示すγ特性（入力値が“０（１０進）”近傍では出力値が急激に高くなり、入力値が“２５５（１０進）”に近づくに従い除々に出力値“２５５”に近づくように出力値が変化する特性）上、入力値“０”（２進表現で“００００００００”）と“２５５”（２進表現で“１１１１１１１１”）とはその特性の影響を受けずに、どのようなテーブルを選択しても出力値は変わらないためである。
【００５５】
そして、生成した再生画像データはパルス幅変調部２０３にてドットの生成を示す駆動データを生成し、印刷エンジン２４にて印刷媒体に対する印刷が行われることになる。
【００５６】
以上説明してきたように、本発明によれば、印刷画像の種別がグラフィックスまたは文字のときでかつ、ソリッドまたは２値パターンであって、さらにＲＧＢの階調値が“０”（１０進）または“２５５”（１０進）のとき、すべてのＲＧＢ値をバンドメモリ１０５へ展開させるのではなく、１バイト分の階調値を展開させるようにしたので、画像処理の高速化を図ることができ、印刷動作を高速に行うことができるとともに、高品質の画像を印刷することができる。
【００５７】
上述の例では、バンドメモリ１０５への展開と色処理とをホストコンピュータ１で行うとして説明したが、例えば印刷装置２でかかる展開と処理とを行わせるようにしても、上述した効果を得ることができる。また、ホストコンピュータ１としてパーソナルコンピュータや、さらには携帯電話、ＰＤＡ（Personal Digital Assistance）などの情報携帯端末であってもよい。
【００５８】
また印刷装置２の例としてレーザプリンタの例で説明したが、その他にもインクジェットプリンタやバブルジェット（登録商標）プリンタ、さらにはファクシミリや複写機、さらにこれらの機能を備えた複合機であっても本発明の効果を奏することができる。
【００５９】
さらに、ハーフトーン処理の例としてγテーブルによる処理の例で説明したが、その他にも各画素の階調値と閾値マトリックス内の閾値とを比較してドットの有無を示す再生画像データを生成するディザ法や、同じく閾値との比較により再生画像データを生成するとともにその誤差分をまわりの未処理画素に拡散して誤差分を含めて閾値との比較を行う誤差拡散法などによるハーフトーン処理であってもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明が適用されるシステムの構成図である。
【図２】本発明が適用されるシステムの機能ブロックの構成図である。
【図３】バンドメモリ１０５の構成例を示す図である。
【図４】色処理部１０６の構成例を示す図である。
【図５】画像処理の動作を示すフローチャートである。
【図６】バンドメモリへの展開処理の動作を示すフローチャートである。
【図７】印刷画像の例と、その描画レコードの例を示す図である。
【図８】中間コードの例と、バンドメモリに印刷画像が展開されたときの例を示す図である。
【符号の説明】
【００６１】
１  ホストコンピュータ    ２  印刷装置    １０  ＣＰＵ    １３  ＲＯＭ    １４  ＲＡＭ    ２０  ＣＰＵ    ２２  ＲＯＭ    ２３  ＲＡＭ    １０１  アプリケーション部    １０３  中間コード生成部    １０４  画像展開部    １０５  バンドメモリ  １０６  色処理部    １２０  第１のスイッチング部    １２１  色変換部    ２０２  ハーフトーン処理部    １２１１  白黒用変換部    １２１２  色変換処理部    １２１３  第２のスイッチング部    １２１４Ａ  色補正テーブル１    １２１４Ｂ  色補正テーブル２    １２１４Ｃ  色補正テーブル３
【図１】
2005151065.tif 000003
【図２】
2005151065.tif 000004
【図３】
2005151065.tif 000005
【図４】
2005151065.tif 000006
【図５】
2005151065.tif 000007
【図６】
2005151065.tif 000008
【図７】
2005151065.tif 000009
【図８】
2005151065.tif 000010