画像処理装置及びその処理方法
【課題】 属性データを生成することなく、省メモリの構成で高速に、疑似中間調化によるジャギーを抑制する。
【解決手段】 印刷データから第1の中間データを生成し、前記印刷データから文字のエッジ部を抽出した文字エッジデータを第2の中間データとして生成し、前記第1の中間データに対して描画処理を行い、描画処理後のデータに対して第1の線数のディザマトリクスを用いて疑似中間調化処理を行い第1の疑似中間調画像を生成し、前記第2の中間データに対して描画処理を行い、描画後のデータに対して前記第1の線数よりも高い第2の線数のディザマトリクスを用いて疑似中間調化処理を行い第2の疑似中間調画像を生成する。そして、前記第1の疑似中間調画像と前記第2の疑似中間調画像との論理和演算により得られる疑似中間調画像を出力する。
【解決手段】 印刷データから第1の中間データを生成し、前記印刷データから文字のエッジ部を抽出した文字エッジデータを第2の中間データとして生成し、前記第1の中間データに対して描画処理を行い、描画処理後のデータに対して第1の線数のディザマトリクスを用いて疑似中間調化処理を行い第1の疑似中間調画像を生成し、前記第2の中間データに対して描画処理を行い、描画後のデータに対して前記第1の線数よりも高い第2の線数のディザマトリクスを用いて疑似中間調化処理を行い第2の疑似中間調画像を生成する。そして、前記第1の疑似中間調画像と前記第2の疑似中間調画像との論理和演算により得られる疑似中間調画像を出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及びその処理方法に関するものである。
【背景技術】
【0002】
PDLデータやドキュメントデータから疑似中間調の画像データを生成して印刷を行う画像形成装置において、疑似中間調化した際に生じるエッジ部のジャギーを滑らかに補正する技術がある。補正の技術として、疑似中間調の画像データと、画像データに含まれる各ピクセルの属性を記述した属性データとで補正すべきエッジ部分を検出して補正処理を行うものがある(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−252194号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、文献1では、画像データと属性データとを作成する必要があり、疑似中間調化前の画像データと属性データを格納するメモリが必要となる。
【0005】
本発明は、属性データを生成することなく、省メモリの構成で高速に、疑似中間調化によるジャギーを抑制する装置及び方法を提供する。
【課題を解決するための手段】
【0006】
本発明は、画像処理装置であって、
印刷データから第1の中間データを生成し、前記印刷データから文字のエッジ部を抽出した文字エッジデータを第2の中間データとして生成する生成手段と、
前記第1の中間データに対して描画処理を行い、前記描画処理後のデータに対して第1の線数のディザマトリクスを用いて疑似中間調化処理を行い第1の疑似中間調画像を生成し、前記第2の中間データに対して描画処理を行い、前記描画処理後のデータに対して前記第1の線数よりも高い第2の線数のディザマトリクスを用いて疑似中間調化処理を行い第2の疑似中間調画像を生成する処理手段と、
前記第1の疑似中間調画像と前記第2の疑似中間調画像との論理和演算により得られる疑似中間調画像を出力する出力手段と、
を有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、文字データを描画する背景の濃度が濃く、且つ文字データの濃度が薄い場合(例えば白文字)であっても、疑似中間調画像のエッジ部に生じるジャギーの補正を適正に行うことができ、印刷結果の高画質化が可能となる。
【図面の簡単な説明】
【0008】
【図1】第1の実施形態における画像形成装置の構成を示す図。
【図2】典型的な画像処理部の構成を示す図。
【図3】本実施形態における画像処理部の構成を示す図。
【図4】本実施形態におけるエッジ補正結果の一例を示す図。
【図5】エッジ補正用の中間データ生成処理を示すフローチャート。
【図6】PDLデータ及び中間データの一例を示す図。
【図7】PDLデータの濃度指定値が補正された中間データを示す図。
【図8】文字形状の内側又は外側の形状を抽出する例を示す図。
【図9】本実施形態における描画処理を示すフローチャート。
【図10】文字の濃度が濃い場合の中間データを画像データメモリに上書きする図。
【図11】文字の濃度が薄い場合の中間データを画像データメモリに上書きする図。
【図12】濃度指定値の補正処理を示すフローチャート。
【図13】第2の実施形態における課題を説明するための図。
【図14】PDLデータの解像度を超高解像度に置き換える例を示す図。
【図15】本実施形態におけるエッジ補正判定処理を示すフローチャート。
【図16】第3の実施形態における課題を説明するための図。
【図17】中間データの白地判定を説明するための図。
【図18】白地判定処理を示すフローチャート。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。本実施形態では、印刷データ(PDLデータやドキュメント内に含まれる文字データ)から疑似中間調の画像データを生成して印刷を行う画像形成装置を例に説明する。
【0010】
また、本実施形態では疑似中間調化した際の画像エッジ部のジャギーが最も顕著な文字データに注目し、属性データを生成せずにエッジを滑らかに補正する技術は以下の構成を備えるものとする。
【0011】
即ち、印刷データからエッジ部を抽出した文字エッジデータを内部的に生成する。その文字データを任意の線数を持つディザマトリックスを用いて疑似中間調化して描画する。その後、文字データを疑似中間調化した際に利用したディザマトリックスより高い線数のディザマトリックスを用いて文字エッジデータ部分を疑似中間調化して上書き又はマージ(OR書き)して描画する。その結果、描画した文字のエッジ部分が縁取られ、エッジ部のジャギーを抑制することができる。
【0012】
[第1の実施形態]
第1の実施形態における画像形成装置の構成を、図1を用いて説明する。画像形成装置100には、本装置全体を制御するコントローラ101が搭載されている。コントローラ101にはCPU104が搭載され、CPU104が制御プログラムなどに基づいてシステムバス103を介して印刷部(プリンタエンジン)110に出力情報としての画像信号を出力する。尚、制御プログラムはROM106のプログラム用ROMや外部メモリ113等に記憶される。
【0013】
ROM106のプログラムROMには、CPU104の制御プログラム等が記憶され、フォントROMには、出力情報としての画像信号を生成する際に使用するフォントデータ等を記憶されている。更に、ROM106にはデータROMも含まれ、各種プログラムが動作するために必要な初期値が格納されている。CPU104は、外部I/F107を介してホストコンピュータなどからのPDLデータの受信が可能となるように構成されている。RAM105は、CPU104の主メモリ、ワークエリアなどとして機能するメモリで、不図示の増設ポートに接続されるオプションRAMにより、メモリ容量を拡張することができるように構成されている。尚、RAM105は、中間データや画像データの展開領域やプリンタモード設定情報の格納領域等に用いられる。
【0014】
ハードディスク(HD)、ICカードなどの外部メモリ113は、メモリコントローラ(MC)112によりアクセスが制御される。また、コントローラ101には、描画処理H/W102が搭載されていても良く、PDLデータを受信後のCPU104で行われる処理の一部を描画処理H/W102に行わせることにより、高速に処理することが可能になる。尚、外部メモリ113は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。
【0015】
操作部111には、操作のためのスイッチやLED表示器等が配置されている。また、外部メモリは1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、不図示のNVRAMを有し、操作部111からのプリンタモード設定情報を記憶するようにしてもよい。
【0016】
次に、疑似中間調化された画像データのエッジ部分のジャギーを補正処理する画像処理部200の典型的な構成を、図2を用いて説明する。この画像処理部200には、PDLデータ受信部201、PDL処理部202、中間データ生成部203、描画処理部205、疑似中間調化部209、エッジ補正部210、印刷処理部211が含まれる。これらの処理部のプログラムはROM106のプログラムROMに保存され、プログラムは実行時に先立ちROM106のプログラムROMからRAM105に展開され、CPU104によって実行される。また、プログラムはROM106のプログラムROM以外にも、外部メモリ113のHDDなどに保存される形で提供されてもよい。
【0017】
中間データスプール204、画像データメモリ206、属性データメモリ207、画像データスプール208はRAM105内に確保されるワークエリア領域で、中間データ、画像データの一時保存に利用される。
【0018】
PDLデータ受信部201はネットワークを介して外部からPDLデータを受信する。受信されたPDLデータはPDL処理部202に渡され、PDLデータを解釈したPDL解釈情報を中間データ生成部203に渡す。ここで中間データ生成部203はPDL処理部202から渡されたPDL解釈情報を元に中間データを中間データスプール204内に格納する。そして、中間データスプール204に1ページ分の中間データが格納されると、描画処理部205が中間データスプール204から中間データを読み出して描画処理を行う。描画処理部205の描画処理により、1ページ分の画像データと属性データが画像データメモリ206と属性データメモリ207に作成される。その後、描画処理部205は、1ページ分の画像データと属性データを画像データメモリ206と属性データメモリ207から読み出し、画像データスプール208に格納する。
【0019】
このとき、それぞれデータを圧縮しながら画像スプーラ208に格納しておく。非圧縮のメモリ領域が画像データメモリ206、属性データメモリ207の1ページ分のみで、その他のページのデータは画像データスプール208に圧縮して格納されるため、メモリ容量が少ない画像形成装置を作ることができる。画像データスプール208に格納された画像データと属性データは疑似中間調化部209に渡され、疑似中間調化した画像データと属性データがエッジ補正部210に渡される。エッジ補正部210は、属性データからエッジ部分を抽出し、疑似中間調化された画像データのエッジ部に補正処理をかけジャギーを抑制する。疑似中間調化及びエッジ補正処理された画像データは、印刷処理部211に渡されて印刷される。
【0020】
上述の典型的な構成では、画像データ及び属性データを作成する必要があるため、処理に時間がかかる。また、疑似中間調化されていない画像データは疑似中間調化された画像に比べてデータサイズが大きく、メモリ容量が増えることによる製品コストが増加する。また、システムバス103のデータ転送速度やRAM105のデータ格納速度が遅い場合、データサイズが大きくなったことにより処理速度が増加する。
【0021】
ここで、本実施形態における疑似中間調化された画像データのエッジ部分のジャギーを補正する処理を、図3を用いて説明する。画像処理部301のPDLデータ受信部302がネットワークを介してPDLデータを受信する。受信されたPDLデータはPDL処理部303に渡され、PDL解釈情報が中間データ生成部306に渡される前に、エッジ補正判定部304に渡される。エッジ補正判定部304はPDL解釈情報に基づいてエッジ補正するか否かの判定と、その補正方法を決定する。
エッジ補正判定部304は、エッジ補正の有無にかかわらず、PDL解釈部303から渡されたPDL解釈情報を中間データ生成部306に渡す。そして、中間データ生成部306が中間データ(例えば、ディスプレイリスト)を作成し中間データスプール307に格納する。その後、エッジ補正判定部304はエッジ補正すべきと判定した場合、文字エッジデータ生成部305に判定結果を渡す。文字エッジデータ生成部305はエッジ補正用のデータを作成し中間データ生成部306に受け渡し、中間データ生成部306が中間データスプール307にエッジ補正用の中間データ(例えば、ディスプレイリスト)を出力する。1ページ分の中間データが中間データスプール307に出力されると、描画処理部308が中間データを読み込み、描画処理を行い、描画処理した結果を疑似中間調化部309で疑似中間調化して画像データメモリ310に書き込む。描画処理部308は中間データに生成されているエッジ補正用の中間データも読み込んで描画処理するため、画像データメモリ310はエッジ補正済みの画像データが生成されることになる。
【0022】
その後、描画処理部308によって1ページ分の画像データが画像データメモリ310に生成されると、画像データスプール311に格納する。この時、画像データを圧縮して格納することによりメモリ容量を少なくすることができる。画像データスプール311に格納されたデータは印刷処理部312に渡されて印刷される。このような構成にすることにより属性データの作成を行う必要が無いため、処理が削減されて高速な処理を実現することができる。また、疑似中間調化した画像データのみ扱うためデータサイズが小さく、システムバス103のデータ転送速度やRAM105のデータ格納速度が遅い場合にも、処理速度が遅くなることがない。
【0023】
図4に示す(A)〜(E)は、本発明に係るエッジ補正処理により得られるエッジ補正結果の一例を示す図である。図4の(A)のように文字データの濃度が濃い場合は、図4の(B)のようにエッジ補正処理によって文字の内側にピクセルが追加されることによりジャギーが抑制される。しかしながら、図4の(C)のように文字データの濃度が薄い場合は、図4の(D)のように文字の内側にエッジ補正処理によってピクセルが追加されるとジャギーが抑制されず、かつ文字にゴミが付加されたようになってしまう。そのため、図4の(C)のように文字の濃度が薄い場合は、図4の(E)のように文字の外側にエッジ補正処理によってピクセルを追加することが本発明の目指す補正結果となる。
【0024】
ここで、図4で説明した処理を実現するために、エッジ補正判定部304と文字エッジデータ生成部305の処理により行われる、エッジ補正用の中間データ生成処理を、図5を用いて説明する。
【0025】
尚、エッジ補正判定部304と文字エッジデータ生成部305のプログラムは、RAM105もしくは外部メモリ113に保存されており、実行時にRAM105に展開されてCPU104によって実行される。
【0026】
図6は、本実施形態におけるPDLデータ及び中間データの一例を示す図である。ここでは、PDLデータ601として1つのオブジェクトを示しているが、実際は複数のオブジェクトを含む。S501において、エッジ補正判定処部304はPDL解釈部303からPDL解釈情報を受け取る。具体的には、PDLデータ601に含まれるオブジェクト種類、ROP指定、文字マスクイメージ、濃度指定、ディザ指定を受け取る処理である。次に、S502において、エッジ補正判定部304はPDL解釈情報の内容に関わらず、PDL解釈情報を中間データ生成部306に渡して中間データを生成させる。ここで生成される中間データは図6に示す中間データ602(第1の中間データ)であり、PDLデータ601と同じ内容のものである。
【0027】
次に、S503において、エッジ補正判定部304はPDL解釈情報からオブジェクト種類を参照し、文字であるか否かを判定する。判定の結果、文字でなければ、エッジ補正判定部304はこの処理を終了するが、文字であればS504へ処理を進め、黒文字以外か否かを判定する。ここでPDL解釈情報の濃度指定が黒(濃度が256階調で濃度指定が255)の場合は、疑似中間調化してもエッジ部のジャギーが発生しないため、エッジ補正判定部304は補正処理を行わないと判定し、この処理を終了する。
【0028】
一方、PDL解釈情報の濃度指定が黒以外(濃度が256階調で濃度指定が255以外)の場合は、エッジ補正が必要であると判定し、S505へ処理を進め、エッジ補正方法を判定する。S505で、エッジ補正判定部304はPDL解釈情報の濃度指定から濃度値を取得し、文字の濃度が閾値以上(所定濃度以上)の場合は濃い文字と判定し、また文字の濃度が閾値より低い場合は薄い文字と判定する。尚、閾値はROM106のデータROMに初期値が保存されており、エッジ補正判定部304はその初期値を読み出すことによって閾値を得ることができる。また、閾値は任意の値でもよく、閾値を操作部111からユーザが書き換えられるような構成にしてもよい。
【0029】
この例では、画像形成装置の起動時に、閾値をROM106のデータROMからRAM105にコピーしておく。エッジ補正判定部304はRAM105の値を参照するようにしておき、操作部111からRAM105内の閾値を書き換えることにより、エッジ補正判定部304に任意の閾値が設定できるようになる。また、PDLデータに閾値書き換え情報を付加しておき、PDL解釈部303がRAM105内の閾値を書き換えるようにしてもよい。
【0030】
上述のS505で、濃度が薄いと判定された場合はS506へ処理を進め、PDL解釈情報はエッジ補正判定部304から文字エッジデータ生成部305に渡され、エッジ補正用のPDL解釈情報の生成が行われる。つまり、文字エッジデータ生成部305はPDL解釈情報に含まれる文字マスクイメージから、文字の外側の形状を抜き出した文字エッジマスクイメージを生成する。文字エッジデータ生成部305はPDL解釈情報に含まれる文字マスクイメージを、作成した文字エッジマスクイメージに置き換える。ここで文字の外側の形状を抜き出した文字エッジデータとは、図8に示す802のように、文字形状の外側に隣接するピクセル部分のみを抜き出してマスクイメージ化したものである。
【0031】
次に、S507において、文字エッジデータ生成部305はPDL解釈情報に含まれる濃度指定値の値を補正し、PDL解釈情報を置き換える。ここで濃度指定値を補正するのは、薄い濃度のまま疑似中間調化してエッジ部分を縁取りしても、疑似中間調化した際にオンビット(ディザマトリクス内に記載された閾値より、大きい濃度を持つピクセル)になるピクセルが少なく効果が出ないためである。この濃度指定値の補正方法は元の指定値の反転、又は固定値を設定する方法などがある。尚、濃度値指定値の補正処理に関しての詳細説明は図12を用いて後述するが、図7に濃度指定を反転して置き換える例を示す。図7に示すPDLデータ701の濃度指定値に20(濃度256階調)が指定されている場合、中間データ702のエッジ補正用データの濃度設定値に235を設定する。
【0032】
一方、S505で、濃度が濃いと判定された場合はS508へ処理を進め、文字エッジデータ生成部305はPDL解釈情報に含まれる文字マスクイメージから、文字の内側の形状を抜き出した文字エッジマスクイメージを生成する。文字エッジデータ生成部305はPDL解釈情報に含まれる文字マスクイメージを、作成した文字エッジマスクイメージに置き換える。ここで文字の内側の形状を抜き出した文字エッジデータとは、図8に示す801のように文字形状の内側に隣接するピクセル部分のみを抜き出してマスクイメージ化したものである。
【0033】
次に、S509において、文字エッジデータ生成部305は補正方法の判定結果に依存せず、PDL解釈情報のROP指定をOR書きとし、ディザマトリクス指定をより高線数(第2の線数)のディザマトリクス指定(超高線数ディザ)に置き換える。そして、S510において、文字エッジデータ生成部305は上述の置き換えられたPDL解釈情報を中間データ生成部306に渡し、エッジ補正用の中間データを中間データスプール307に生成させる。ここで生成される中間データは図6に示す中間データ(第2の中間データ)で、S506からS510の文字エッジデータ生成部305の処理によりPDLデータ601からエッジ補正用データとして生成されたものである。
【0034】
図5を用いて説明したエッジ補正用の中間データを含む中間データを描画処理部308及び疑似中間調化部309が描画処理して文字のエッジ部分の縁取りを行い、ジャギーを抑制した画像データを生成する処理を、図9を用いて説明する。
【0035】
尚、描画処理部308及び疑似中間調化部309のプログラムはRAM105もしくは外部メモリ113に保存されており、実行時にRAM105に展開されてCPU104により実行される。また、この処理を行う描画処理H/W102が搭載されている場合には、描画処理H/W102でこの処理を実行してもよい。
【0036】
描画処理部308は中間データスプール307にエッジ補正用で無い元の中間データとエッジ補正用の中間データが生成されているため、それを順番に読み込んで描画処理するだけでよい。図10に示す中間データ1001はエッジ補正用で無い元の中間データであり、中間データ1002はエッジ補正用の中間データである。中間データ1001と中間データ1002は中間データスプール307に格納されている。
【0037】
まず、S901において、描画処理部308はエッジ補正用で無い元の中間データ1001から文字マスクイメージを読み込み、描画処理後の画像(例えば、ビットマップイメージ)を生成する。次に、S902において、描画処理部308は描画処理後の画像を疑似中間調化部309に渡す。そして、疑似中間調化部309が描画処理後の画像を疑似中間調化処理して疑似中間調化された画像(第1の疑似中間調画像)を描画処理部308に返す。この時、疑似中間調化部309は中間データ1001からディザマトリクス指定を参照し、低線数(第1の線数)(解像度)のディザマトリクスを用いて疑似中間調化する。そして、S903において、描画処理部308はS902で疑似中間調化された画像を画像データメモリ310に上書きする。
【0038】
次に、S904において、描画処理部308はエッジ補正用で中間データから文字エッジマスクイメージ(文字の内側のエッジ)を読み込み、描画処理後の画像(例えば、ビットマップイメージ)を生成する。次に、S905において、描画処理部308は描画処理後の画像を疑似中間調化部309に渡す。そして、疑似中間調化部309が描画処理後の画像を疑似中間調化処理して疑似中間調化された画像(第2の疑似中間調画像)を描画処理部308に返す。この時、疑似中間調化部309は中間データ1001からディザマトリクス指定を参照し、高線数(第2の線数)(超高解像度)のディザマトリクスを用いて疑似中間調化する。ここで、第2の線数は、第1の線数よりも高い。そして、S906において、描画処理部308はS905で疑似中間調化された画像を画像データメモリ310(記憶部)にOR(論理和)書き(上書き)する。
【0039】
上述の処理により、文字全体を低線数のディザマトリクスで疑似中間調化して描画した際に発生するエッジ部のジャギーを、文字内側のエッジ部のみ高線数のディザマトリクスで疑似中間調化した結果をOR書きする。これによりエッジ部のジャギーを抑制することができる。なお、S903、S906の処理を行わずに、S902で生成された疑似中間調化された画像とS905で生成された疑似中間調化された画像との論理和演算を行って得られたデータを、画像データメモリ310に出力して記憶してもよい。または、S902で生成された疑似中間調化された画像とS905で生成された疑似中間調化された画像との論理和演算を行って得られたデータを、中間データスプール311に出力してもよい。上述した図10に示す例は、文字の濃度が濃い場合の中間データだが、図11の文字の濃度が薄い場合にも同様な処理で対応できる。図11に示す中間データの場合、S904において描画処理部308が文字の外側のエッジ部を抽出した文字エッジマスクイメージ(中間データ1101に含まれるもの)となり、文字の外側のエッジ部に縁取りを実施する。
【0040】
図5に示すS507において、文字エッジデータ生成部305が行う濃度指定値の補正処理の詳細を、図12を用いて説明する。尚、文字エッジデータ生成部305のプログラムはRAM105もしくは外部メモリ113に保存されており、実行時にRAM105に展開されてCPU104により実行される。
【0041】
S1201において、文字エッジデータ生成部305が濃度補正方法をどの処理方法で行うかを示す設定値(濃度値を補正するのための設定値)を取得する。この濃度値を補正するための設定値に関連する情報の初期値はROM106に格納されており、起動時に、RAM105に格納される。起動後は操作部111もしくは設定変更データを外部I/F107を通じて受けとることにより濃度値を補正するための設定値が変更される。濃度値を補正するための設定値に関連する情報とは、補正方法を表す濃度値を補正するための設定値、固定値方法の場合の濃度値、変換テーブルのことである。また、この例では濃度値を補正するための設定値の種類は、固定値方法、変換テーブル方法、濃度値反転方法であるとする。S1201において、文字エッジデータ生成部305が取得するのはRAM105に格納された濃度値を補正するための設定値である。
【0042】
次に、S1202において、文字エッジデータ生成部305はS1201にて取得した設定値が固定値方法か否かを判定する。判定の結果、固定値方法であった場合はS1203へ処理を進め、RAM105より固定値方法の場合の濃度値を取得する。そして、S1204において、文字エッジデータ生成部305はPDL解釈情報の濃度値指定をS1203で取得した濃度値に置き換える。
【0043】
一方、S1202で、固定値方法でなかった場合はS1205へ処理を進め、文字エッジデータ生成部305はS1201において取得した濃度補正設定がテーブル変換方法であるか否かを判定する。判定の結果、テーブル変換方法であった場合はS1206へ処理を進め、RAM105より変換テーブルを取得する。そして、S1207において、文字エッジデータ生成部305はPDL解釈情報に含まれる濃度値指定の濃度値を取得し、その濃度値を変換テーブルで変換した濃度値をPDL解釈情報の濃度指定に置き換える。
【0044】
また、S1205で、変換テーブル方法でなかった場合はS1208へ処理を進める。文字エッジデータ生成部305はS1201において取得した濃度補正設定が反転方式であった場合、PDL解釈情報に含まれる濃度値指定の濃度値を取得し、続くS1209において、PDL解釈情報の濃度値指定を反転した濃度値に置き換える。
【0045】
このように、濃度補正方法を切り替えるのは、データの種類やユーザの好みによっては文字のエッジ部分を補正した場合、画質が劣化したように見えるという問題があるためである。また、データの種類やユーザの好みで濃度補正方法を変更できるようにすることで、上述の問題を解消することができる。本発明は図3に示す処理により、図2に示す画像データと属性データを作る構成にも適用可能で、その場合は、属性データに文字か否かの判定がわかる情報を付加する必要がある。
【0046】
第1の実施形態によれば、文字データを描画する背景の濃度が濃く、文字データの濃度が薄い場合(例えば白文字)でも、疑似中間調画像のエッジ部に生じるジャギーの補正を適正に行うことができ、印刷結果の高画質化が行えるという効果がある。
【0047】
[第2の実施形態]
次に、図13乃至図15を用いて第2の実施形態を詳細に説明する。図13に示す印刷結果1301を得るPDLデータは文字数が少ないため、エッジ補正用の中間データ生成(主に文字エッジマスクイメージの生成)にかかる時間が少なく全体の処理速度が低下しない。一方、印刷結果1302を得るPDLデータでは文字数が多いため、エッジ補正用の中間データ生成に時間がかかるため、全体の処理速度が低下してしまう懸念がある。つまり、印刷結果1303を得るようなPDLデータは文字のサイズが予め定められたサイズより小さいという特徴を利用して改善する。このように、文字のサイズが予め定められたサイズより小さい場合、文字の殆どの部分がエッジ部分となるため、文字マスクイメージと文字エッジマスクイメージとの差分がでない。
【0048】
即ち、小さい文字の場合、文字エッジマスクイメージを作成せずに、ディザマトリクス指定のみを高線数のディザマトリクスに置き換える。その中間データの例を図14に示すPDLデータ1401で、中間データ1402ではディザマトリクス指定のみを高線数のディザマトリクスに置き換えた(解像度から超高解像度)だけになる。
【0049】
第2の実施形態を適用するエッジ補正判定部304の処理を、図15を用いて説明する。尚、エッジ補正判定部304は、RAM105もしくは外部メモリ113に保存されており、実行時にRAM105に展開されてCPU104によって実行される。
【0050】
エッジ補正判定処部304は、PDL解釈部303からPDL解釈情報を受け取る(S1501)。エッジ補正判定部304は文字であるか否かを判断し(S1502)、文字である場合は、更に小さい文字であるか(所定サイズより小さいサイズの文字であるか)を判断する(1503)。小さい文字である(所定サイズより小さいサイズの文字である)場合、エッジ補正判定部304は、PDL解釈情報のディザマトリクス指定のみを置き換え(S1504)、PDL解釈情報を中間データ生成部306に渡す(S1505)。
【0051】
一方、小さい文字で無い場合は、エッジ補正判定部304はPDL解釈情報を変更せずに中間データ生成部306に渡した後(S1506)、S1507でエッジ補正用の中間データを生成する。S1507は図5のS504〜S510と同様の処理となるため、説明は省略する。
【0052】
なお、S1502において、ラインか否かを判定し、ラインと判定された場合、S1504とS1505の処理を行ってもよい。
【0053】
第2の実施形態によれば、PDLデータ内に含まれる文字のサイズが小さい場合においても処理速度を落とさずに、第1の実施形態での文字のエッジ部分の疑似階調化によるジャギーを抑制する効果がある。
【0054】
[第3の実施形態]
次に、図16乃至図18を用いて第3の実施形態を詳細に説明する。図16の(A)に示すように、白い背景(白地)に、白文字を書いて印刷結果には反映されないようにしている場合がある。ユーザがアプリケーション上でセキュリティの高い文字や文章などを、他人から見えないように工夫している場合などに多い。その場合に、文字のエッジ補正をしてしまうと、ユーザが隠していた文字が見えるようになってしまうという問題がある。この問題を改善するために、描画処理部308において背景を参照してエッジ補正処理用の描画処理するか否かを切り替えるが、疑似階調化された画像データを作成する場合には単純に背景を判断できない。
【0055】
図16の(B)に示すように、疑似階調化された画像データをピクセルごとに見ると、白と判定されてしまうからである。よって、疑似階調化された画像データにおいて背景を判断する場合は、図16の(C)のように、ピクセル単位でなく小領域ごとに判断すべきである。
【0056】
ここで、領域ごとに白地判定を行い、エッジ補正処理用の描画処理を行うか否かを切り替える描画処理部308の処理を、図18を用いて説明する。尚、描画処理部308及び疑似中間調化部309のプログラムはRAM105もしくは外部メモリ113に保存されており、実行時にRAM105に展開されてCPU104によって実行される。また、この処理を行う描画処理H/W102が搭載されている場合には、描画処理H/W102が実行してもよい。
【0057】
文字が白文字である場合、図17に示すように、中間データに白地判定指示1701が追加されている。描画処理部308は、この白地判定指示1701がある場合、白地判定を行うように判断する(S1801)。描画処理部308は領域ごとに白地判定を行い、RAM105に保存しておく(S1802)。S1803〜S1807は図9のS901〜S905と同様な処理を行う。
【0058】
次に、S1807において、描画処理部308は、エッジ補正用の疑似中間調化された画像データを画像データメモリ310にOR書きするが、S1802の白地判定結果をRAM105から読み出し、白地と判定されている領域にはOR書きを行わない。
【0059】
白い背景(白地)に白の文字を描画するようなPDLデータの印刷結果は白紙の状態で出力される。上述のPDLデータに第1の実施形態を単純に適用した場合、印刷結果は白紙でなく文字のエッジ部が描画されてしまう不正な結果になる場合があるが、第3の実施形態を適用することにより文字のエッジが描画されない正常な結果となる効果がある。
【0060】
[他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、画像処理装置及びその処理方法に関するものである。
【背景技術】
【0002】
PDLデータやドキュメントデータから疑似中間調の画像データを生成して印刷を行う画像形成装置において、疑似中間調化した際に生じるエッジ部のジャギーを滑らかに補正する技術がある。補正の技術として、疑似中間調の画像データと、画像データに含まれる各ピクセルの属性を記述した属性データとで補正すべきエッジ部分を検出して補正処理を行うものがある(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−252194号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、文献1では、画像データと属性データとを作成する必要があり、疑似中間調化前の画像データと属性データを格納するメモリが必要となる。
【0005】
本発明は、属性データを生成することなく、省メモリの構成で高速に、疑似中間調化によるジャギーを抑制する装置及び方法を提供する。
【課題を解決するための手段】
【0006】
本発明は、画像処理装置であって、
印刷データから第1の中間データを生成し、前記印刷データから文字のエッジ部を抽出した文字エッジデータを第2の中間データとして生成する生成手段と、
前記第1の中間データに対して描画処理を行い、前記描画処理後のデータに対して第1の線数のディザマトリクスを用いて疑似中間調化処理を行い第1の疑似中間調画像を生成し、前記第2の中間データに対して描画処理を行い、前記描画処理後のデータに対して前記第1の線数よりも高い第2の線数のディザマトリクスを用いて疑似中間調化処理を行い第2の疑似中間調画像を生成する処理手段と、
前記第1の疑似中間調画像と前記第2の疑似中間調画像との論理和演算により得られる疑似中間調画像を出力する出力手段と、
を有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、文字データを描画する背景の濃度が濃く、且つ文字データの濃度が薄い場合(例えば白文字)であっても、疑似中間調画像のエッジ部に生じるジャギーの補正を適正に行うことができ、印刷結果の高画質化が可能となる。
【図面の簡単な説明】
【0008】
【図1】第1の実施形態における画像形成装置の構成を示す図。
【図2】典型的な画像処理部の構成を示す図。
【図3】本実施形態における画像処理部の構成を示す図。
【図4】本実施形態におけるエッジ補正結果の一例を示す図。
【図5】エッジ補正用の中間データ生成処理を示すフローチャート。
【図6】PDLデータ及び中間データの一例を示す図。
【図7】PDLデータの濃度指定値が補正された中間データを示す図。
【図8】文字形状の内側又は外側の形状を抽出する例を示す図。
【図9】本実施形態における描画処理を示すフローチャート。
【図10】文字の濃度が濃い場合の中間データを画像データメモリに上書きする図。
【図11】文字の濃度が薄い場合の中間データを画像データメモリに上書きする図。
【図12】濃度指定値の補正処理を示すフローチャート。
【図13】第2の実施形態における課題を説明するための図。
【図14】PDLデータの解像度を超高解像度に置き換える例を示す図。
【図15】本実施形態におけるエッジ補正判定処理を示すフローチャート。
【図16】第3の実施形態における課題を説明するための図。
【図17】中間データの白地判定を説明するための図。
【図18】白地判定処理を示すフローチャート。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。本実施形態では、印刷データ(PDLデータやドキュメント内に含まれる文字データ)から疑似中間調の画像データを生成して印刷を行う画像形成装置を例に説明する。
【0010】
また、本実施形態では疑似中間調化した際の画像エッジ部のジャギーが最も顕著な文字データに注目し、属性データを生成せずにエッジを滑らかに補正する技術は以下の構成を備えるものとする。
【0011】
即ち、印刷データからエッジ部を抽出した文字エッジデータを内部的に生成する。その文字データを任意の線数を持つディザマトリックスを用いて疑似中間調化して描画する。その後、文字データを疑似中間調化した際に利用したディザマトリックスより高い線数のディザマトリックスを用いて文字エッジデータ部分を疑似中間調化して上書き又はマージ(OR書き)して描画する。その結果、描画した文字のエッジ部分が縁取られ、エッジ部のジャギーを抑制することができる。
【0012】
[第1の実施形態]
第1の実施形態における画像形成装置の構成を、図1を用いて説明する。画像形成装置100には、本装置全体を制御するコントローラ101が搭載されている。コントローラ101にはCPU104が搭載され、CPU104が制御プログラムなどに基づいてシステムバス103を介して印刷部(プリンタエンジン)110に出力情報としての画像信号を出力する。尚、制御プログラムはROM106のプログラム用ROMや外部メモリ113等に記憶される。
【0013】
ROM106のプログラムROMには、CPU104の制御プログラム等が記憶され、フォントROMには、出力情報としての画像信号を生成する際に使用するフォントデータ等を記憶されている。更に、ROM106にはデータROMも含まれ、各種プログラムが動作するために必要な初期値が格納されている。CPU104は、外部I/F107を介してホストコンピュータなどからのPDLデータの受信が可能となるように構成されている。RAM105は、CPU104の主メモリ、ワークエリアなどとして機能するメモリで、不図示の増設ポートに接続されるオプションRAMにより、メモリ容量を拡張することができるように構成されている。尚、RAM105は、中間データや画像データの展開領域やプリンタモード設定情報の格納領域等に用いられる。
【0014】
ハードディスク(HD)、ICカードなどの外部メモリ113は、メモリコントローラ(MC)112によりアクセスが制御される。また、コントローラ101には、描画処理H/W102が搭載されていても良く、PDLデータを受信後のCPU104で行われる処理の一部を描画処理H/W102に行わせることにより、高速に処理することが可能になる。尚、外部メモリ113は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。
【0015】
操作部111には、操作のためのスイッチやLED表示器等が配置されている。また、外部メモリは1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、不図示のNVRAMを有し、操作部111からのプリンタモード設定情報を記憶するようにしてもよい。
【0016】
次に、疑似中間調化された画像データのエッジ部分のジャギーを補正処理する画像処理部200の典型的な構成を、図2を用いて説明する。この画像処理部200には、PDLデータ受信部201、PDL処理部202、中間データ生成部203、描画処理部205、疑似中間調化部209、エッジ補正部210、印刷処理部211が含まれる。これらの処理部のプログラムはROM106のプログラムROMに保存され、プログラムは実行時に先立ちROM106のプログラムROMからRAM105に展開され、CPU104によって実行される。また、プログラムはROM106のプログラムROM以外にも、外部メモリ113のHDDなどに保存される形で提供されてもよい。
【0017】
中間データスプール204、画像データメモリ206、属性データメモリ207、画像データスプール208はRAM105内に確保されるワークエリア領域で、中間データ、画像データの一時保存に利用される。
【0018】
PDLデータ受信部201はネットワークを介して外部からPDLデータを受信する。受信されたPDLデータはPDL処理部202に渡され、PDLデータを解釈したPDL解釈情報を中間データ生成部203に渡す。ここで中間データ生成部203はPDL処理部202から渡されたPDL解釈情報を元に中間データを中間データスプール204内に格納する。そして、中間データスプール204に1ページ分の中間データが格納されると、描画処理部205が中間データスプール204から中間データを読み出して描画処理を行う。描画処理部205の描画処理により、1ページ分の画像データと属性データが画像データメモリ206と属性データメモリ207に作成される。その後、描画処理部205は、1ページ分の画像データと属性データを画像データメモリ206と属性データメモリ207から読み出し、画像データスプール208に格納する。
【0019】
このとき、それぞれデータを圧縮しながら画像スプーラ208に格納しておく。非圧縮のメモリ領域が画像データメモリ206、属性データメモリ207の1ページ分のみで、その他のページのデータは画像データスプール208に圧縮して格納されるため、メモリ容量が少ない画像形成装置を作ることができる。画像データスプール208に格納された画像データと属性データは疑似中間調化部209に渡され、疑似中間調化した画像データと属性データがエッジ補正部210に渡される。エッジ補正部210は、属性データからエッジ部分を抽出し、疑似中間調化された画像データのエッジ部に補正処理をかけジャギーを抑制する。疑似中間調化及びエッジ補正処理された画像データは、印刷処理部211に渡されて印刷される。
【0020】
上述の典型的な構成では、画像データ及び属性データを作成する必要があるため、処理に時間がかかる。また、疑似中間調化されていない画像データは疑似中間調化された画像に比べてデータサイズが大きく、メモリ容量が増えることによる製品コストが増加する。また、システムバス103のデータ転送速度やRAM105のデータ格納速度が遅い場合、データサイズが大きくなったことにより処理速度が増加する。
【0021】
ここで、本実施形態における疑似中間調化された画像データのエッジ部分のジャギーを補正する処理を、図3を用いて説明する。画像処理部301のPDLデータ受信部302がネットワークを介してPDLデータを受信する。受信されたPDLデータはPDL処理部303に渡され、PDL解釈情報が中間データ生成部306に渡される前に、エッジ補正判定部304に渡される。エッジ補正判定部304はPDL解釈情報に基づいてエッジ補正するか否かの判定と、その補正方法を決定する。
エッジ補正判定部304は、エッジ補正の有無にかかわらず、PDL解釈部303から渡されたPDL解釈情報を中間データ生成部306に渡す。そして、中間データ生成部306が中間データ(例えば、ディスプレイリスト)を作成し中間データスプール307に格納する。その後、エッジ補正判定部304はエッジ補正すべきと判定した場合、文字エッジデータ生成部305に判定結果を渡す。文字エッジデータ生成部305はエッジ補正用のデータを作成し中間データ生成部306に受け渡し、中間データ生成部306が中間データスプール307にエッジ補正用の中間データ(例えば、ディスプレイリスト)を出力する。1ページ分の中間データが中間データスプール307に出力されると、描画処理部308が中間データを読み込み、描画処理を行い、描画処理した結果を疑似中間調化部309で疑似中間調化して画像データメモリ310に書き込む。描画処理部308は中間データに生成されているエッジ補正用の中間データも読み込んで描画処理するため、画像データメモリ310はエッジ補正済みの画像データが生成されることになる。
【0022】
その後、描画処理部308によって1ページ分の画像データが画像データメモリ310に生成されると、画像データスプール311に格納する。この時、画像データを圧縮して格納することによりメモリ容量を少なくすることができる。画像データスプール311に格納されたデータは印刷処理部312に渡されて印刷される。このような構成にすることにより属性データの作成を行う必要が無いため、処理が削減されて高速な処理を実現することができる。また、疑似中間調化した画像データのみ扱うためデータサイズが小さく、システムバス103のデータ転送速度やRAM105のデータ格納速度が遅い場合にも、処理速度が遅くなることがない。
【0023】
図4に示す(A)〜(E)は、本発明に係るエッジ補正処理により得られるエッジ補正結果の一例を示す図である。図4の(A)のように文字データの濃度が濃い場合は、図4の(B)のようにエッジ補正処理によって文字の内側にピクセルが追加されることによりジャギーが抑制される。しかしながら、図4の(C)のように文字データの濃度が薄い場合は、図4の(D)のように文字の内側にエッジ補正処理によってピクセルが追加されるとジャギーが抑制されず、かつ文字にゴミが付加されたようになってしまう。そのため、図4の(C)のように文字の濃度が薄い場合は、図4の(E)のように文字の外側にエッジ補正処理によってピクセルを追加することが本発明の目指す補正結果となる。
【0024】
ここで、図4で説明した処理を実現するために、エッジ補正判定部304と文字エッジデータ生成部305の処理により行われる、エッジ補正用の中間データ生成処理を、図5を用いて説明する。
【0025】
尚、エッジ補正判定部304と文字エッジデータ生成部305のプログラムは、RAM105もしくは外部メモリ113に保存されており、実行時にRAM105に展開されてCPU104によって実行される。
【0026】
図6は、本実施形態におけるPDLデータ及び中間データの一例を示す図である。ここでは、PDLデータ601として1つのオブジェクトを示しているが、実際は複数のオブジェクトを含む。S501において、エッジ補正判定処部304はPDL解釈部303からPDL解釈情報を受け取る。具体的には、PDLデータ601に含まれるオブジェクト種類、ROP指定、文字マスクイメージ、濃度指定、ディザ指定を受け取る処理である。次に、S502において、エッジ補正判定部304はPDL解釈情報の内容に関わらず、PDL解釈情報を中間データ生成部306に渡して中間データを生成させる。ここで生成される中間データは図6に示す中間データ602(第1の中間データ)であり、PDLデータ601と同じ内容のものである。
【0027】
次に、S503において、エッジ補正判定部304はPDL解釈情報からオブジェクト種類を参照し、文字であるか否かを判定する。判定の結果、文字でなければ、エッジ補正判定部304はこの処理を終了するが、文字であればS504へ処理を進め、黒文字以外か否かを判定する。ここでPDL解釈情報の濃度指定が黒(濃度が256階調で濃度指定が255)の場合は、疑似中間調化してもエッジ部のジャギーが発生しないため、エッジ補正判定部304は補正処理を行わないと判定し、この処理を終了する。
【0028】
一方、PDL解釈情報の濃度指定が黒以外(濃度が256階調で濃度指定が255以外)の場合は、エッジ補正が必要であると判定し、S505へ処理を進め、エッジ補正方法を判定する。S505で、エッジ補正判定部304はPDL解釈情報の濃度指定から濃度値を取得し、文字の濃度が閾値以上(所定濃度以上)の場合は濃い文字と判定し、また文字の濃度が閾値より低い場合は薄い文字と判定する。尚、閾値はROM106のデータROMに初期値が保存されており、エッジ補正判定部304はその初期値を読み出すことによって閾値を得ることができる。また、閾値は任意の値でもよく、閾値を操作部111からユーザが書き換えられるような構成にしてもよい。
【0029】
この例では、画像形成装置の起動時に、閾値をROM106のデータROMからRAM105にコピーしておく。エッジ補正判定部304はRAM105の値を参照するようにしておき、操作部111からRAM105内の閾値を書き換えることにより、エッジ補正判定部304に任意の閾値が設定できるようになる。また、PDLデータに閾値書き換え情報を付加しておき、PDL解釈部303がRAM105内の閾値を書き換えるようにしてもよい。
【0030】
上述のS505で、濃度が薄いと判定された場合はS506へ処理を進め、PDL解釈情報はエッジ補正判定部304から文字エッジデータ生成部305に渡され、エッジ補正用のPDL解釈情報の生成が行われる。つまり、文字エッジデータ生成部305はPDL解釈情報に含まれる文字マスクイメージから、文字の外側の形状を抜き出した文字エッジマスクイメージを生成する。文字エッジデータ生成部305はPDL解釈情報に含まれる文字マスクイメージを、作成した文字エッジマスクイメージに置き換える。ここで文字の外側の形状を抜き出した文字エッジデータとは、図8に示す802のように、文字形状の外側に隣接するピクセル部分のみを抜き出してマスクイメージ化したものである。
【0031】
次に、S507において、文字エッジデータ生成部305はPDL解釈情報に含まれる濃度指定値の値を補正し、PDL解釈情報を置き換える。ここで濃度指定値を補正するのは、薄い濃度のまま疑似中間調化してエッジ部分を縁取りしても、疑似中間調化した際にオンビット(ディザマトリクス内に記載された閾値より、大きい濃度を持つピクセル)になるピクセルが少なく効果が出ないためである。この濃度指定値の補正方法は元の指定値の反転、又は固定値を設定する方法などがある。尚、濃度値指定値の補正処理に関しての詳細説明は図12を用いて後述するが、図7に濃度指定を反転して置き換える例を示す。図7に示すPDLデータ701の濃度指定値に20(濃度256階調)が指定されている場合、中間データ702のエッジ補正用データの濃度設定値に235を設定する。
【0032】
一方、S505で、濃度が濃いと判定された場合はS508へ処理を進め、文字エッジデータ生成部305はPDL解釈情報に含まれる文字マスクイメージから、文字の内側の形状を抜き出した文字エッジマスクイメージを生成する。文字エッジデータ生成部305はPDL解釈情報に含まれる文字マスクイメージを、作成した文字エッジマスクイメージに置き換える。ここで文字の内側の形状を抜き出した文字エッジデータとは、図8に示す801のように文字形状の内側に隣接するピクセル部分のみを抜き出してマスクイメージ化したものである。
【0033】
次に、S509において、文字エッジデータ生成部305は補正方法の判定結果に依存せず、PDL解釈情報のROP指定をOR書きとし、ディザマトリクス指定をより高線数(第2の線数)のディザマトリクス指定(超高線数ディザ)に置き換える。そして、S510において、文字エッジデータ生成部305は上述の置き換えられたPDL解釈情報を中間データ生成部306に渡し、エッジ補正用の中間データを中間データスプール307に生成させる。ここで生成される中間データは図6に示す中間データ(第2の中間データ)で、S506からS510の文字エッジデータ生成部305の処理によりPDLデータ601からエッジ補正用データとして生成されたものである。
【0034】
図5を用いて説明したエッジ補正用の中間データを含む中間データを描画処理部308及び疑似中間調化部309が描画処理して文字のエッジ部分の縁取りを行い、ジャギーを抑制した画像データを生成する処理を、図9を用いて説明する。
【0035】
尚、描画処理部308及び疑似中間調化部309のプログラムはRAM105もしくは外部メモリ113に保存されており、実行時にRAM105に展開されてCPU104により実行される。また、この処理を行う描画処理H/W102が搭載されている場合には、描画処理H/W102でこの処理を実行してもよい。
【0036】
描画処理部308は中間データスプール307にエッジ補正用で無い元の中間データとエッジ補正用の中間データが生成されているため、それを順番に読み込んで描画処理するだけでよい。図10に示す中間データ1001はエッジ補正用で無い元の中間データであり、中間データ1002はエッジ補正用の中間データである。中間データ1001と中間データ1002は中間データスプール307に格納されている。
【0037】
まず、S901において、描画処理部308はエッジ補正用で無い元の中間データ1001から文字マスクイメージを読み込み、描画処理後の画像(例えば、ビットマップイメージ)を生成する。次に、S902において、描画処理部308は描画処理後の画像を疑似中間調化部309に渡す。そして、疑似中間調化部309が描画処理後の画像を疑似中間調化処理して疑似中間調化された画像(第1の疑似中間調画像)を描画処理部308に返す。この時、疑似中間調化部309は中間データ1001からディザマトリクス指定を参照し、低線数(第1の線数)(解像度)のディザマトリクスを用いて疑似中間調化する。そして、S903において、描画処理部308はS902で疑似中間調化された画像を画像データメモリ310に上書きする。
【0038】
次に、S904において、描画処理部308はエッジ補正用で中間データから文字エッジマスクイメージ(文字の内側のエッジ)を読み込み、描画処理後の画像(例えば、ビットマップイメージ)を生成する。次に、S905において、描画処理部308は描画処理後の画像を疑似中間調化部309に渡す。そして、疑似中間調化部309が描画処理後の画像を疑似中間調化処理して疑似中間調化された画像(第2の疑似中間調画像)を描画処理部308に返す。この時、疑似中間調化部309は中間データ1001からディザマトリクス指定を参照し、高線数(第2の線数)(超高解像度)のディザマトリクスを用いて疑似中間調化する。ここで、第2の線数は、第1の線数よりも高い。そして、S906において、描画処理部308はS905で疑似中間調化された画像を画像データメモリ310(記憶部)にOR(論理和)書き(上書き)する。
【0039】
上述の処理により、文字全体を低線数のディザマトリクスで疑似中間調化して描画した際に発生するエッジ部のジャギーを、文字内側のエッジ部のみ高線数のディザマトリクスで疑似中間調化した結果をOR書きする。これによりエッジ部のジャギーを抑制することができる。なお、S903、S906の処理を行わずに、S902で生成された疑似中間調化された画像とS905で生成された疑似中間調化された画像との論理和演算を行って得られたデータを、画像データメモリ310に出力して記憶してもよい。または、S902で生成された疑似中間調化された画像とS905で生成された疑似中間調化された画像との論理和演算を行って得られたデータを、中間データスプール311に出力してもよい。上述した図10に示す例は、文字の濃度が濃い場合の中間データだが、図11の文字の濃度が薄い場合にも同様な処理で対応できる。図11に示す中間データの場合、S904において描画処理部308が文字の外側のエッジ部を抽出した文字エッジマスクイメージ(中間データ1101に含まれるもの)となり、文字の外側のエッジ部に縁取りを実施する。
【0040】
図5に示すS507において、文字エッジデータ生成部305が行う濃度指定値の補正処理の詳細を、図12を用いて説明する。尚、文字エッジデータ生成部305のプログラムはRAM105もしくは外部メモリ113に保存されており、実行時にRAM105に展開されてCPU104により実行される。
【0041】
S1201において、文字エッジデータ生成部305が濃度補正方法をどの処理方法で行うかを示す設定値(濃度値を補正するのための設定値)を取得する。この濃度値を補正するための設定値に関連する情報の初期値はROM106に格納されており、起動時に、RAM105に格納される。起動後は操作部111もしくは設定変更データを外部I/F107を通じて受けとることにより濃度値を補正するための設定値が変更される。濃度値を補正するための設定値に関連する情報とは、補正方法を表す濃度値を補正するための設定値、固定値方法の場合の濃度値、変換テーブルのことである。また、この例では濃度値を補正するための設定値の種類は、固定値方法、変換テーブル方法、濃度値反転方法であるとする。S1201において、文字エッジデータ生成部305が取得するのはRAM105に格納された濃度値を補正するための設定値である。
【0042】
次に、S1202において、文字エッジデータ生成部305はS1201にて取得した設定値が固定値方法か否かを判定する。判定の結果、固定値方法であった場合はS1203へ処理を進め、RAM105より固定値方法の場合の濃度値を取得する。そして、S1204において、文字エッジデータ生成部305はPDL解釈情報の濃度値指定をS1203で取得した濃度値に置き換える。
【0043】
一方、S1202で、固定値方法でなかった場合はS1205へ処理を進め、文字エッジデータ生成部305はS1201において取得した濃度補正設定がテーブル変換方法であるか否かを判定する。判定の結果、テーブル変換方法であった場合はS1206へ処理を進め、RAM105より変換テーブルを取得する。そして、S1207において、文字エッジデータ生成部305はPDL解釈情報に含まれる濃度値指定の濃度値を取得し、その濃度値を変換テーブルで変換した濃度値をPDL解釈情報の濃度指定に置き換える。
【0044】
また、S1205で、変換テーブル方法でなかった場合はS1208へ処理を進める。文字エッジデータ生成部305はS1201において取得した濃度補正設定が反転方式であった場合、PDL解釈情報に含まれる濃度値指定の濃度値を取得し、続くS1209において、PDL解釈情報の濃度値指定を反転した濃度値に置き換える。
【0045】
このように、濃度補正方法を切り替えるのは、データの種類やユーザの好みによっては文字のエッジ部分を補正した場合、画質が劣化したように見えるという問題があるためである。また、データの種類やユーザの好みで濃度補正方法を変更できるようにすることで、上述の問題を解消することができる。本発明は図3に示す処理により、図2に示す画像データと属性データを作る構成にも適用可能で、その場合は、属性データに文字か否かの判定がわかる情報を付加する必要がある。
【0046】
第1の実施形態によれば、文字データを描画する背景の濃度が濃く、文字データの濃度が薄い場合(例えば白文字)でも、疑似中間調画像のエッジ部に生じるジャギーの補正を適正に行うことができ、印刷結果の高画質化が行えるという効果がある。
【0047】
[第2の実施形態]
次に、図13乃至図15を用いて第2の実施形態を詳細に説明する。図13に示す印刷結果1301を得るPDLデータは文字数が少ないため、エッジ補正用の中間データ生成(主に文字エッジマスクイメージの生成)にかかる時間が少なく全体の処理速度が低下しない。一方、印刷結果1302を得るPDLデータでは文字数が多いため、エッジ補正用の中間データ生成に時間がかかるため、全体の処理速度が低下してしまう懸念がある。つまり、印刷結果1303を得るようなPDLデータは文字のサイズが予め定められたサイズより小さいという特徴を利用して改善する。このように、文字のサイズが予め定められたサイズより小さい場合、文字の殆どの部分がエッジ部分となるため、文字マスクイメージと文字エッジマスクイメージとの差分がでない。
【0048】
即ち、小さい文字の場合、文字エッジマスクイメージを作成せずに、ディザマトリクス指定のみを高線数のディザマトリクスに置き換える。その中間データの例を図14に示すPDLデータ1401で、中間データ1402ではディザマトリクス指定のみを高線数のディザマトリクスに置き換えた(解像度から超高解像度)だけになる。
【0049】
第2の実施形態を適用するエッジ補正判定部304の処理を、図15を用いて説明する。尚、エッジ補正判定部304は、RAM105もしくは外部メモリ113に保存されており、実行時にRAM105に展開されてCPU104によって実行される。
【0050】
エッジ補正判定処部304は、PDL解釈部303からPDL解釈情報を受け取る(S1501)。エッジ補正判定部304は文字であるか否かを判断し(S1502)、文字である場合は、更に小さい文字であるか(所定サイズより小さいサイズの文字であるか)を判断する(1503)。小さい文字である(所定サイズより小さいサイズの文字である)場合、エッジ補正判定部304は、PDL解釈情報のディザマトリクス指定のみを置き換え(S1504)、PDL解釈情報を中間データ生成部306に渡す(S1505)。
【0051】
一方、小さい文字で無い場合は、エッジ補正判定部304はPDL解釈情報を変更せずに中間データ生成部306に渡した後(S1506)、S1507でエッジ補正用の中間データを生成する。S1507は図5のS504〜S510と同様の処理となるため、説明は省略する。
【0052】
なお、S1502において、ラインか否かを判定し、ラインと判定された場合、S1504とS1505の処理を行ってもよい。
【0053】
第2の実施形態によれば、PDLデータ内に含まれる文字のサイズが小さい場合においても処理速度を落とさずに、第1の実施形態での文字のエッジ部分の疑似階調化によるジャギーを抑制する効果がある。
【0054】
[第3の実施形態]
次に、図16乃至図18を用いて第3の実施形態を詳細に説明する。図16の(A)に示すように、白い背景(白地)に、白文字を書いて印刷結果には反映されないようにしている場合がある。ユーザがアプリケーション上でセキュリティの高い文字や文章などを、他人から見えないように工夫している場合などに多い。その場合に、文字のエッジ補正をしてしまうと、ユーザが隠していた文字が見えるようになってしまうという問題がある。この問題を改善するために、描画処理部308において背景を参照してエッジ補正処理用の描画処理するか否かを切り替えるが、疑似階調化された画像データを作成する場合には単純に背景を判断できない。
【0055】
図16の(B)に示すように、疑似階調化された画像データをピクセルごとに見ると、白と判定されてしまうからである。よって、疑似階調化された画像データにおいて背景を判断する場合は、図16の(C)のように、ピクセル単位でなく小領域ごとに判断すべきである。
【0056】
ここで、領域ごとに白地判定を行い、エッジ補正処理用の描画処理を行うか否かを切り替える描画処理部308の処理を、図18を用いて説明する。尚、描画処理部308及び疑似中間調化部309のプログラムはRAM105もしくは外部メモリ113に保存されており、実行時にRAM105に展開されてCPU104によって実行される。また、この処理を行う描画処理H/W102が搭載されている場合には、描画処理H/W102が実行してもよい。
【0057】
文字が白文字である場合、図17に示すように、中間データに白地判定指示1701が追加されている。描画処理部308は、この白地判定指示1701がある場合、白地判定を行うように判断する(S1801)。描画処理部308は領域ごとに白地判定を行い、RAM105に保存しておく(S1802)。S1803〜S1807は図9のS901〜S905と同様な処理を行う。
【0058】
次に、S1807において、描画処理部308は、エッジ補正用の疑似中間調化された画像データを画像データメモリ310にOR書きするが、S1802の白地判定結果をRAM105から読み出し、白地と判定されている領域にはOR書きを行わない。
【0059】
白い背景(白地)に白の文字を描画するようなPDLデータの印刷結果は白紙の状態で出力される。上述のPDLデータに第1の実施形態を単純に適用した場合、印刷結果は白紙でなく文字のエッジ部が描画されてしまう不正な結果になる場合があるが、第3の実施形態を適用することにより文字のエッジが描画されない正常な結果となる効果がある。
【0060】
[他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
画像処理装置であって、
印刷データから第1の中間データを生成し、前記印刷データから文字のエッジ部を抽出した文字エッジデータを第2の中間データとして生成する生成手段と、
前記第1の中間データに対して描画処理を行い、前記描画処理後のデータに対して第1の線数のディザマトリクスを用いて疑似中間調化処理を行い第1の疑似中間調画像を生成し、前記第2の中間データに対して描画処理を行い、前記描画処理後のデータに対して前記第1の線数よりも高い第2の線数のディザマトリクスを用いて疑似中間調化処理を行い第2の疑似中間調画像を生成する処理手段と、
前記第1の疑似中間調画像と前記第2の疑似中間調画像との論理和演算により得られる疑似中間調画像を出力する出力手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記文字エッジデータは、前記印刷データに含まれる文字を抽出し、前記文字の濃度が所定濃度よりも小さい場合、前記文字の外側の形状を抽出したデータであることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記文字エッジデータは、前記印刷データに含まれる文字を抽出し、前記文字の濃度が所定濃度以上の場合、前記文字の内側の形状を抽出したデータであることを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記印刷データはPDLデータであることを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記第1の中間データと前記第2の中間データはディスプレイリストであることを特徴とする請求項1に記載の画像処理装置。
【請求項6】
前記印刷データに含まれる文字を抽出し、該抽出した文字のサイズが所定のサイズより小さいか否かを判定する判定手段を更に有し、
前記判定手段による判定の結果、前記抽出した文字のサイズが前記所定のサイズよりも大きい場合、前記生成手段による生成と前記処理手段による処理と前記出力手段による出力を行うことを特徴とする請求項1に記載の画像処理装置。
【請求項7】
前記印刷データに含まれる文字を抽出し、該抽出した文字のサイズが所定のサイズより小さいか否かを判定する判定手段を更に有し、
前記判定手段による判定の結果、前記抽出した文字のサイズが前記所定のサイズよりも小さい場合、前記第2の中間データの生成を行わずに、前記第1の中間データを描画処理したデータに対して、前記第1の線数よりも高い線数のディザマトリクスを用いて疑似中間調化処理を行うことを特徴とする請求項1に記載の画像処理装置。
【請求項8】
前記文字エッジデータが白文字を示す場合に、前記文字の背景が白地であるか否かを判定する手段を更に有し、
前記背景が白地であると判定された場合、前記処理手段は処理を行わないことを特徴とする請求項1に記載の画像処理装置。
【請求項9】
前記判定する手段は、文字の背景をピクセル単位ではなく領域ごとに白地か否かを判定することを特徴とする請求項8に記載の画像処理装置。
【請求項10】
画像処理装置の処理方法であって、
生成手段が、印刷データから第1の中間データを生成し、前記印刷データから文字のエッジ部を抽出した文字エッジデータを第2の中間データとして生成する生成工程と、
処理手段が、前記第1の中間データに対して描画処理を行い、前記描画処理後のデータに対して第1の線数のディザマトリクスを用いて疑似中間調化処理を行い第1の疑似中間調画像を生成し、前記第2の中間データに対して描画処理を行い、前記描画処理後のデータに対して前記第1の線数よりも高い第2の線数のディザマトリクスを用いて疑似中間調化処理を行い第2の疑似中間調画像を生成する処理工程と、
出力手段が、前記第1の疑似中間調画像と前記第2の疑似中間調画像との論理和演算により得られる疑似中間調画像を出力する出力工程と、
を有することを特徴とする画像処理装置の処理方法。
【請求項11】
コンピュータを請求項1乃至9の何れか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項1】
画像処理装置であって、
印刷データから第1の中間データを生成し、前記印刷データから文字のエッジ部を抽出した文字エッジデータを第2の中間データとして生成する生成手段と、
前記第1の中間データに対して描画処理を行い、前記描画処理後のデータに対して第1の線数のディザマトリクスを用いて疑似中間調化処理を行い第1の疑似中間調画像を生成し、前記第2の中間データに対して描画処理を行い、前記描画処理後のデータに対して前記第1の線数よりも高い第2の線数のディザマトリクスを用いて疑似中間調化処理を行い第2の疑似中間調画像を生成する処理手段と、
前記第1の疑似中間調画像と前記第2の疑似中間調画像との論理和演算により得られる疑似中間調画像を出力する出力手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記文字エッジデータは、前記印刷データに含まれる文字を抽出し、前記文字の濃度が所定濃度よりも小さい場合、前記文字の外側の形状を抽出したデータであることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記文字エッジデータは、前記印刷データに含まれる文字を抽出し、前記文字の濃度が所定濃度以上の場合、前記文字の内側の形状を抽出したデータであることを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記印刷データはPDLデータであることを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記第1の中間データと前記第2の中間データはディスプレイリストであることを特徴とする請求項1に記載の画像処理装置。
【請求項6】
前記印刷データに含まれる文字を抽出し、該抽出した文字のサイズが所定のサイズより小さいか否かを判定する判定手段を更に有し、
前記判定手段による判定の結果、前記抽出した文字のサイズが前記所定のサイズよりも大きい場合、前記生成手段による生成と前記処理手段による処理と前記出力手段による出力を行うことを特徴とする請求項1に記載の画像処理装置。
【請求項7】
前記印刷データに含まれる文字を抽出し、該抽出した文字のサイズが所定のサイズより小さいか否かを判定する判定手段を更に有し、
前記判定手段による判定の結果、前記抽出した文字のサイズが前記所定のサイズよりも小さい場合、前記第2の中間データの生成を行わずに、前記第1の中間データを描画処理したデータに対して、前記第1の線数よりも高い線数のディザマトリクスを用いて疑似中間調化処理を行うことを特徴とする請求項1に記載の画像処理装置。
【請求項8】
前記文字エッジデータが白文字を示す場合に、前記文字の背景が白地であるか否かを判定する手段を更に有し、
前記背景が白地であると判定された場合、前記処理手段は処理を行わないことを特徴とする請求項1に記載の画像処理装置。
【請求項9】
前記判定する手段は、文字の背景をピクセル単位ではなく領域ごとに白地か否かを判定することを特徴とする請求項8に記載の画像処理装置。
【請求項10】
画像処理装置の処理方法であって、
生成手段が、印刷データから第1の中間データを生成し、前記印刷データから文字のエッジ部を抽出した文字エッジデータを第2の中間データとして生成する生成工程と、
処理手段が、前記第1の中間データに対して描画処理を行い、前記描画処理後のデータに対して第1の線数のディザマトリクスを用いて疑似中間調化処理を行い第1の疑似中間調画像を生成し、前記第2の中間データに対して描画処理を行い、前記描画処理後のデータに対して前記第1の線数よりも高い第2の線数のディザマトリクスを用いて疑似中間調化処理を行い第2の疑似中間調画像を生成する処理工程と、
出力手段が、前記第1の疑似中間調画像と前記第2の疑似中間調画像との論理和演算により得られる疑似中間調画像を出力する出力工程と、
を有することを特徴とする画像処理装置の処理方法。
【請求項11】
コンピュータを請求項1乃至9の何れか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図9】
【図12】
【図14】
【図15】
【図16】
【図17】
【図18】
【図8】
【図10】
【図11】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図9】
【図12】
【図14】
【図15】
【図16】
【図17】
【図18】
【図8】
【図10】
【図11】
【図13】
【公開番号】特開2012−257202(P2012−257202A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2012−88782(P2012−88782)
【出願日】平成24年4月9日(2012.4.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願日】平成24年4月9日(2012.4.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]