JP2004334533A - Image processing device and method - Google Patents
Image processing device and method Download PDFInfo
- Publication number
- JP2004334533A JP2004334533A JP2003129514A JP2003129514A JP2004334533A JP 2004334533 A JP2004334533 A JP 2004334533A JP 2003129514 A JP2003129514 A JP 2003129514A JP 2003129514 A JP2003129514 A JP 2003129514A JP 2004334533 A JP2004334533 A JP 2004334533A
- Authority
- JP
- Japan
- Prior art keywords
- information
- color
- intermediate code
- image data
- black
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Facsimile Image Signal Circuits (AREA)
- Color Image Communication Systems (AREA)
- Color, Gradation (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、入力される描画命令あるいは描画命令から生成された中間コード画像データに基づいてレンダリング処理してビットマップイメージを作成し、印字装置等に出力する画像処理技術に関するものである。
【0002】
【従来の技術】
パーソナルコンピュータなどの上位処理装置から印字命令を受けた画像処理装置は、実際の印字情報である描画命令を受信して順に解釈し、ビットマップイメージを作成して出力する。この処理過程において、画像処理装置がページバッファを保持している場合には、解釈したビットマップイメージをそのままページバッファに書き込み(レンダリング処理)、ページ単位で出力する。また、ページバッファは多大な記憶容量を必要とするため、ページバッファではなく、1ページを複数に分割したバンド単位のバッファ(バンドバッファ)を保持している場合も多い。このような場合には、一度バンド単位の中間コード画像データに変換し、全ての描画命令の解釈および中間コード画像データの生成終了後、バンド単位で中間コード画像データを解釈し、ビットマップイメージをバンドバッファに書き込むレンダリング処理を行う。
【0003】
通常、ページバッファあるいはバンドバッファに書き込まれたビットマップイメージは、印字装置等に送信される前に補正処理が施される。例えば、描画命令による色空間指定がRGBの場合、印字装置に出力するためには色空間をCMYKに変換しなければならない。しかし、全てのビットマップイメージに対して一律に色空間変換を行うと印字の品質に問題が生じるため、描画内容(フォント、グラフィックス、イメージなど)に応じた処理が望ましい。描画内容に応じた処理を行うためには、それぞれの描画命令の内容がどのような描画内容(フォント、グラフィックス、イメージなど)かを示す属性情報が色変換処理時に必要となる。そのため、描画命令の描画内容に基づいて、レンダリング処理によってビットマップイメージを生成する際に1ないし数画素毎に属性情報を付加しておく。なお、バンドバッファを保持してバンド単位でレンダリング処理を行う画像処理装置においては、中間コード画像データに描画命令の属性情報が渡され、バンドバッファに展開されたビットマップイメージに対して属性情報が付加される。そして、ビットマップイメージに付加されている属性情報を参照して、展開されたビットマップイメージに対して補正処理が行われる。
【0004】
一方、描画命令あるいは中間コード画像データによる色空間指定を、始めから印字装置などが要求する色空間であるCMYK色空間にすることにより、色変換処理が必要なくなり、少なくとも色変換のための属性情報を保持する必要はなくなる。しかし、上位処理装置上のソフトウェアがWindows(登録商標)のGDI(Graphic Device Interface)を使用している場合、画像処理装置は論理演算(ROP:Raster Operation)の処理に対応しなければならない。このROP処理は色空間としてRGBを前提としているため、描画命令あるいは中間コード画像データの色空間指定を始めからCMYKとしてしまうと、論理演算後の結果が想定したものとは異なることにより印字品質が低下する。
【0005】
そのため、描画命令あるいは中間コード画像データの色空間はRGBが前提となり、特にフォントなどの印字品質を向上させるためには忠実に各ドットの描画内容を保持することが重要となり、グラフィックスなど別の描画内容の背景が存在する場合にはなおさらである。
【0006】
一例として、特許文献1に記載されている画像処理方法では、テキストオブジェクトの描画命令には文字列、文字色および背景色を表す情報が含まれ、背景色にはグラフィックス用、文字色にはテキスト用の色処理を施すことが考案されている。これによって、文字の周囲での背景色に対する処理の変更を防ぎ、一様な背景色の描画を行っている。
【0007】
また、例えば特許文献2には、エッジ部分について黒色の色材による黒画像の形成に代えて、他の色(例えばシアン(C)、マゼンタ(M)、イエロー(Y))の色材あるいはこれらの色の色材と黒の色材を混合して使用することが記載されている。これによって、カラー背景上における単独色の黒色オブジェクトのエッジ部における各色の画像の位置合わせズレによる好ましくない白か又は薄い色の縁取りの発生や、周囲の画素との色材量の差に起因する画質劣化を防止し、黒のオブジェクトの再現性を向上させている。
【0008】
フォントや線画などを描画する場合、従来より用いられている印字装置などの解像度では斜めのエッジ部にジャギーと呼ばれる凹凸が視認され、視覚的な画質の劣化を生じてしまう場合がある。このようなジャギーを低減するため、いくつかの手法が提案されている。
【0009】
その一つとして、パルス幅変調方式がある。パルス幅変調方式は、印字装置として電子写真方式を用いる場合の高解像度化の方法の一つである。具体的には、中間調のビデオデータに対し、参照する三角波の種類やしきい値などを切り替えて出力することによって、1画素における画像形成位置や面積を制御し、擬似的に解像度を向上させる技術である。例えば特許文献3などにも記載されている。
【0010】
図13は、パルス幅変調方式における画像形成位置の一例の説明図、図14は、パルス幅変調方式により描画された画像の一例の拡大図である。例えば図13に示す例では、出力解像度を主/副走査線ともに2倍にするものとして1画素を4分割し、そのいずれの位置を濃度に応じて選択し、画像形成を行う。具体例として、図14(A)に示すように文字や線画の斜め線が存在する場合、そのままでは階段状の凹凸が視認されやすい。ここでパルス変調方式を用いることによって、図14(B)に示すように1画素以下(ここでは1/4)の画像形成が行われ、階段状の部分の凹凸が小さくなって視覚的になめらかな斜め線が形成されることになる。
【0011】
図15は、パルス幅変調方式を適用した場合の白抜けへの対応の説明図である。上述のようなパルス幅変調方式を用いる場合、背景色上に黒の文字や線画を描画すると、図13に示したパターンを用いて画像形成する画素については黒の画素として処理してしまうため、1画素の領域のうち画像形成された領域以外の部分が白く抜けてしまうという問題がある。例えば図15(A)に示した例では、中央の画素において右下の1/4を黒で画像形成しているが、残りの3/4の領域は白抜けを起こしてしまう。この白抜けが原因となり、文字そのものの画質は向上しても、ページ全体で見た場合に画質が劣化してしまう場合がある。
【0012】
このような不具合を解消するため、図13に示したようなパターンのいずれを用いるかを示す情報を黒色の濃度の代わりに保持するとともに、他のCMY色については黒の文字や線画としての描画を行わずに背景の色を残すことが考えられている。そして、黒色については指定されたパターンで擬似的に高解像度で画像形成するとともに、他の色については背景色による画像形成を行う。これによって図15(B)に示すように擬似的に高解像度で画像形成した画素についても白抜けを防止することができ、印字装置において高画質の画像を形成することができる。なお、このような白抜けの防止処理については、例えば特許文献4等に記載されている。
【0013】
例えば上述の特許文献1に記載されている技術において、このようなパルス幅変調方式の技術を利用しようとすると、背景色の描画を行った上に文字や線画の描画を行うため、文字や線画のエッジ部分における白抜けを防止することができない。また、特許文献2に記載されている技術では、エッジ部分の黒を他の色による黒色に変更してしまうため、背景色は残らず、パルス幅変調方式などを適用することができない。さらに、特許文献3や特許文献4では、基本的にCMYKなどの黒成分を含む色空間において、黒色の濃度情報の代わりに図13に示すパターンのいずれを用いるかを示す情報を保持するものであり、黒色を含まない例えばRGB色空間において図13に示すパターンのいずれを用いるかを示す情報をどのように保持するかについては考慮されていない。さらに、図13に示すパターンのいずれを用いるかを示す情報と背景色をともに保持するための描画処理の高速化が望まれている。
【0014】
【特許文献1】
特開2001−236199号公報
【特許文献2】
特開平10−052947号公報
【特許文献3】
特許第3266576号公報
【特許文献4】
特開2000−242461号公報
【0015】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、高解像度での画像形成が可能であるとともに、高解像度化の際の白抜けを防止し、かつそのような描画処理を高速に行える画像処理装置及び画像処理方法を提供することを目的とするものである。
【0016】
【課題を解決するための手段】
本発明は、入力される描画命令に基づいてビットマップイメージを作成する画像処理装置または画像処理方法であって、描画命令あるいは描画命令から生成された中間コード画像データ中に、色情報とともに該色情報を使用するか否かを示す色指定有効/無効情報を保持させておく。そして、そのような描画命令あるいは中間コード画像データに基づいてレンダリング処理を行う際に、色指定有効/無効情報に従って、色情報をイメージ記憶手段に書き込むか否かを判断してレンダリング処理を行う。例えば色指定有効/無効情報が色情報を使用する設定の場合には、各色情報の値に基づいてビットマップイメージ及び属性情報をイメージ記憶手段へ書き込む。また色指定有効/無効情報が色情報を使用しない設定の場合には、属性情報についてはイメージ記憶手段へ書き込み、各色情報のイメージ記憶手段へ書き込みを行わないことにより背景色を保存する。このように背景色を保存することによって、例えばパルス幅変調方式などによる高解像度化の処理にも対応することができる。それとともに、高解像度化処理の際の白抜けを防止し、文字や線画などの画質を向上させることができる。また、背景色を意識することなく保存することができるため、描画処理を高速化することができる。なお、黒色の情報は、色情報とは別に、例えば属性情報として保持しておくことができる。
【0017】
また本発明では、1画素に対して背景色(R/G/B)の情報と黒色(K)の情報の2つの値を同時に持つ。そのため、RGB色空間上で実行される論理演算に対しては、背景色と黒色(に対応するR=G=Bの値)のそれぞれに対して論理演算を行い、それぞれの結果に基づいてイメージ記憶手段への書き込みを行う。例えば、黒色の情報についての論理演算の結果、RGB全ての色要素の値が等しく、かつ論理演算前の値と等しい場合には、既に演算後の黒色の情報がイメージ記憶手段に保持されているものとする。また、RGB全ての色要素の値が等しいが、論理演算前の値と等しくない場合には、黒色の情報についての論理演算の結果から、演算後の黒色の情報を決定する。これらの場合には、背景色の演算結果はそのまま有効としておく。さらに、RGBの色要素の値に1つでも等しくないものが含まれる場合には、色情報について行った論理演算の結果を無効とし、黒色の情報についての論理演算の結果を、演算後の色情報とすることができる。このとき、属性情報内の描画オブジェクトの種類をグレイフォントあるいはグレイラインからそれぞれフォントあるいはグラフィックスに変更しておく。このような論理演算時の処理を行うことによって、描画された画像の不連続性を防止し、画質を向上させることができる。
【0018】
なお、色指定有効/無効情報は、各色毎に独立に設定可能に構成することができる。また、描画手段の全部又は一部の機能は、専用の回路で構成することができる。
【0019】
【発明の実施の形態】
図1は、本発明の実施の一形態を示す機能ブロック図である。図中、1は上位処理装置、2は画像処理装置、3は印字装置、11は中間コード生成部、12は中間コードメモリ、13は中間コード画像データ展開部、14はバンドバッファ、15は出力制御部である。画像処理装置2は、本発明の画像処理装置あるいは本発明の画像処理方法を実現する装置の一例であり、この例では描画命令を受け取ってバンド毎の中間コード画像データを生成した後、バンド単位のビットマップイメージを作成し、出力する場合を示している。ここでは、描画命令は例えばパーソナルコンピュータなどの上位処理装置1から受け取り、作成したビットマップイメージを印字装置3に出力するものとして図示している。なお、上位処理装置1と画像処理装置2は、ケーブル接続されたり、あるいはLANなどのネットワークによって通信可能に接続されていてよい。また、画像処理装置2と印字装置3とは、配線などによって直結されている場合が多いが、これに限られるものではない。
【0020】
画像処理装置2は、中間コード生成部11、中間コードメモリ12、中間コード画像データ展開部13、バンドバッファ14、出力制御部15を含んで構成されている。中間コード生成部11は、上位処理装置1から送られてくる描画命令を受け取り、その描画命令を解釈してバンド単位の中間コード画像データを生成する。
【0021】
生成する中間コード画像データには、描画する色の情報とともに描画オブジェクトの種類などの属性情報が含まれており、その属性情報の一部として、あるいは属性情報とは別に、その中間コード画像データ中の色情報を使用するか否かを示す色指定有効/無効情報を含んでいる。この色指定有効/無効情報は、例えば色情報中の色成分毎に設定可能にしておくことができる。例えば文字や線画のエッジ部など、高解像度により画像形成が必要な部分では、黒色の情報として例えば図13に示したような高解像度化のためのパターンのいずれを選択するかを示す情報を含んでおり、この場合に色指定有効/無効情報は色情報を使用しない設定とする。
【0022】
描画オブジェクトの種類としては種々の指定が考えられるが、ここでは特に本発明により影響がある描画オブジェクトの種類として少なくとも色情報を使用して文字を描画する「フォント」及び線画などを描画する「グラフィックス」と、高解像度化の処理を行うため色情報を使用せずに文字を描画する「グレイフォント」及び線画などを描画する「グレイライン」が使用されるものとする。なお、中間コード画像データのデータフォーマットの例については後述する。
【0023】
中間コードメモリ12は、中間コード生成部11で生成した中間コード画像データを記憶する。また、例えば中間コード生成部11で上位処理装置1から受け取った描画命令を記憶するなど、中間コード生成部11における処理において利用することも可能である。
【0024】
中間コード画像データ展開部13は、本発明の描画手段の機能を含み、中間コードメモリ12からバンド単位に中間コード画像データを読み出してレンダリングし、ビットマップイメージ及び属性情報を作成してバンドバッファ14に書き込む。なお、属性情報はビットマップイメージの1ないし複数画素毎に付加することができる。ビットマップイメージに付加する属性情報には、上述の高解像度化の処理を行うための黒色の情報を含めておくことができる。
【0025】
中間コード画像データ展開部13は、レンダリング処理の際に中間コード画像データ中の色指定有効/無効情報を参照し、色指定有効/無効情報に従って色情報を前記イメージ記憶手段に書き込むか否かを判断してレンダリング処理を行う。例えば色指定有効/無効情報が色情報を使用する設定の場合には、中間コード画像データ中の色情報に基づいてビットマップイメージを属性情報とともにバンドバッファ14へ書き込む。また、色指定有効/無効情報が色情報を使用しない設定の場合には、色情報についてはバンドバッファ14へ書き込まずに属性情報をバンドバッファ14に書き込む。これによって、既に描画処理が行われた画素については、属性情報は書き換えられるものの、色情報が背景色として残ることになる。従ってレンダリング処理時には背景色に関する特別な処理を行わなくてよいため、処理を高速化することができる。特にレンダリング処理ではバンドバッファ14のアクセスが非常に多く、時間がかかる。従って、バンドバッファ14へのアクセスが減少すれば、それだけ処理を短時間で終えることができ、高速化することができる。なお、ビットマップイメージに付加する属性情報中に黒色の情報を含める場合、その黒色の情報は、中間コード画像データが保持する黒色の情報に基づいて決定することができる。
【0026】
さらに中間コード画像データ展開部13は、描画命令(中間コード画像データ)により論理演算(ROP)処理が指示された場合、指示されたROP処理を実行する。このとき、色指定有効/無効情報が色情報を使用しない設定で黒色の情報を保持している場合、ROP処理は黒色の情報と色情報のそれぞれについて行い、演算結果に基づいてバンドバッファ14への書き込みを行う。この処理についての詳細は後述する。
【0027】
バンドバッファ14は本発明におけるイメージ記憶手段に対応するものであり、中間コード画像データ展開部13で展開したバンド単位のビットマップイメージ及び属性情報を保持する。なお、バンドバッファ14は例えばカラーのビットマップイメージを記憶する際には、色成分毎に別々のプレーンとして記憶する面順次データとして記憶したり、あるいは画素毎にすべての色成分のデータを保持する点順次データとして記憶することができる。また、バンドバッファ14として、1バンド分の記憶領域を有するほか、複数バンド分の記憶領域を有し、中間コード画像データ展開部13によるビットマップイメージ及び属性情報の書き込みと、出力制御部15による読み出しを並行して行えるように構成することもできる。ビットマップイメージと属性情報は、画素毎に両者を保持するほか、ビットマップイメージと属性情報を別々の領域に保持しても良い。
【0028】
出力制御部15は、バンドバッファ14に展開されたビットマップイメージを読み出し、印字装置3などに転送する。このとき、高解像度化のための黒色の情報を含む場合には、その黒色の情報に従って印字装置3を制御し、高解像度の画像形成を行わせる。その場合、背景色についても画像形成を行わせ、白抜けを防止する。
【0029】
図2は、本発明の実施の一形態における、より具体的な機能ブロック図である。図中、21は入力制御部、22は描画命令解釈部、23は中間コード画像データ生成部、31は中間コード画像データ解釈部、32は圧縮/伸長処理部、33は縮小/拡大処理部、34は色変換部、35は点面変換部である。実線の矢印はデータの流れを示し、破線の矢印は制御の流れを示している。
【0030】
この例では、中間コード生成部11は、入力制御部21、描画命令解釈部22、中間コード画像データ生成部23を含んで構成されている。また中間コード画像データ展開部13は、中間コード画像データ解釈部31、圧縮/伸長処理部32、縮小/拡大処理部33、色変換部34、点面変換部35を含んで構成されている。
【0031】
入力制御部21は、上位処理装置1などから送られてくる描画命令を受信し、中間コードメモリ12に記憶させる。そして描画命令解釈部22を起動する。描画命令解釈部22は、中間コードメモリ12に記憶されている描画命令を順に読み出し、解釈する。そして、この描画命令の解釈処理によって得られた情報(属性情報、色情報、エッジ情報、イメージなど)を中間コード画像データ生成部23に引き渡す。中間コード画像データ生成部23は、上述の中間コード生成部11における中間コード画像データの生成に関する各種の機能を実行し、描画命令解釈部22から渡された情報から、バンド単位で中間コード画像データを生成し、中間コードメモリ12に格納する。
【0032】
図3は、従来の中間コード画像データの一例の説明図、図4は、本発明において用いる中間コード画像データの一例の説明図である。描画オブジェクトの種類としては、グラフィックス、フォント、イメージなどが挙げられる。このうち、グラフィックスやフォントについては、中間コード画像データのみで表現可能であるが、イメージの場合には、中間コード画像データとイメージの2つで構成される。
【0033】
従来の中間コード画像データでは、いずれの描画オブジェクトの場合もヘッダ部とボディ部で構成されている。ヘッダ部は、例えばグラフィックスやフォントの場合には、図3(A)に示すようにコマンドID、属性情報フィールドと、色情報、その他の情報が含まれている。また例えばイメージの場合には、図3(B)に示すように、コマンドID、属性情報フィールドと、イメージへのポインタ、その他の情報が含まれている。イメージの場合には、色情報はイメージ自体が保持することになる。ボディ部には、描画命令解釈部22から渡されたエッジ情報から作成した描画領域を指定する情報、例えばランレングス情報等を保持する。
【0034】
図3に示した例では、色情報としてRGB色空間におけるそれぞれの色成分の情報を保持するものとし、3つのフィールドで構成されている。例えばCMYK色空間における色情報を保持する場合は、4つのフィールドによって構成されることになる。なお、イメージについても同様であるが、例えば2値画像であれば1フィールドのみで構成される。
【0035】
最近、上位処理装置1上のドキュメント作成のアプリケーションでは、ディスプレイ上で複数の画像が重なる位置に描かれる場合に、元の画像と新たに書き込まれた画像に対し指定された論理演算により両方の画像を重ね合わせて表示し、また作成したドキュメントを印字する場合には、例えばMicrosoft社製のGDIなどのインタフェースを通して、合成された画像ではなく、元の画像と新たに書き込まれた画像とそれらの重ね合わせを行う論理演算子をドライバソフトウェアに渡し、それらをもとにドライバソフトウェアは描画命令を生成する。これにより、画像処理装置2が受信した描画命令の色空間はRGBであり、また元の画像と新たに書き込まれた画像間の論理演算はまだ実行されていないため、中間コード画像データ生成部15で生成される中間コード画像データの色空間はRGBである必要がある。そのため、図3に示した例における色情報は、RGB色空間を使用して示している。グレイ色を表現する場合には、グラフィックスやフォントの場合には色情報としてR=G=Bとすれば良く、イメージの場合にも画素の色情報をR=G=Bとすればよい。
【0036】
本発明の中間コード画像データのデータフォーマットの一例を図4に示している。図4に示す例では、通常、中間コード画像データが扱う色空間としてCMYK色空間とRGB色空間の両方を想定しているために色情報を格納するフィールドを4つ設けている。この場合、色空間がRGB色空間の場合には、色情報を格納するフィールドが1つ余る。このフィールドを色指定有効/無効情報と黒色の情報を格納するフィールドとして使用することができる。通常、1つの色成分の情報を格納する領域のサイズは8ビット(各色のレベルが0〜255により)である。1つ余ったフィールドも8ビットを利用できるので、色指定有効/無効情報の領域として1ビット、残りの領域に黒色の情報を格納することができる。
【0037】
この場合、黒色の情報を保持する領域が7ビットとなってしまい、黒色のレベルが0〜127の範囲しか設定できなくなる。しかし、パルス幅変調方式を用いた高解像度化の処理を行うために、例えば図13に示したようなパターンのいずれかを示すだけであれば0〜15の値を保持できればよく、4ビット分の領域があれば十分である。ただし、図4に示した黒色の情報の領域に設定された値は実際の濃度値とは異なるものであるため、この黒色の情報が有効か否かを識別するために、ここでは描画オブジェクトの種類として、黒色の情報を有する「フォント」として「グレイフォント」、黒色の情報を有する「グラフィックス」として「グレイライン」の2種類を追加している。
【0038】
ここでは色指定有効/無効情報と黒色の情報を同じフィールドに含めた例を示しているが、例えば当該フィールドを黒色の情報のみで使用し、色指定有効/無効情報は属性情報フィールドやその他のフィールドに含めても良い。
【0039】
図5は、本発明において用いる中間コード画像データの別の例の説明図である。図5に示す例では、黒色の情報を属性情報フィールドに含め、また色指定有効/無効情報をその他の情報の一部として含めて構成した例を示している。また図5に示す例では、色指定有効/無効情報を色成分毎に独立に持たせている。これにより汎用性を高めている。また、上述の図4に示す例ではCMYK色空間である場合には色指定有効/無効情報を保持することができないが、図5に示す例ではCMYK色空間の場合でも同様に各色に対して色情報の有効/無効を設定可能となる。
【0040】
なお、高解像度化のための黒色の情報は、例えば図13に示したパターンのいずれかを示すものに限られるものではなく、様々な分割パターンを適用することができる。
【0041】
図2に戻り、中間コード画像データ展開部13の中間コード画像データ解釈部31は、上述の中間コード画像データ展開部13の機能として説明した多くの機能を実行するものであり、中間コードメモリ12から中間コードを順に取り出して解釈し、バンド単位でバンドバッファ14に描画処理し、ビットマップイメージに展開する。また、描画した画素に対応する属性情報についてもビットマップイメージとともにバンドバッファ14に格納する。図6は、バンドバッファへの書き込み処理の一例の説明図である。中間コード画像データ解釈部31は、バンドバッファ14へビットマップイメージを書き込む際に、中間コード画像データ中の色指定有効/無効情報を参照する。そして、色指定有効/無効情報が色情報を使用する設定の場合には、図6(A)に示すように、中間コード画像データ中の色情報(R,G,B)及び属性情報をバンドバッファ14へ書き込む。また、色指定有効/無効情報が色情報を使用しない設定の場合には、図6(B)に示すように、色情報についてはバンドバッファ14へ書き込まず、属性情報をバンドバッファ14に書き込む。これによって、既に描画処理が行われた画素については、属性情報は書き換えられるものの、色情報が背景色として残ることになる。また、図6における属性情報には、高解像度化の処理を行うための黒色の情報を含めておく。従って高解像度化の処理を行う際には、属性情報中の黒色の情報によって高解像度の画像形成を行うことができるとともに、背景色の情報を用いた白抜けを防止するための処理を行うことができる。また中間コード画像データ解釈部31は、論理演算が指定された場合に、指定された論理演算についても実際に実行する。このとき、バンドバッファ14に書き込むビットマップイメージの色空間としてRGB色空間を採用することによって、正しく簡単に論理演算を行うことができる。なお、黒色の情報を保持している場合には、色情報と黒色の情報についてそれぞれ論理演算し、その結果に応じて演算結果を決定する。
【0042】
再び図2に戻り、圧縮/伸長処理部32は、圧縮されたイメージを伸長してバンドバッファ14に書き込む。縮小/拡大処理部33は、描画するオブジェクトがイメージの時、中間コードメモリ12に格納されている中間コード画像データ中の拡大率に従って、イメージを縮小あるいは拡大処理する。
【0043】
色変換部34は、バンドバッファ14中のビットマップイメージに対して、それぞれの描画オブジェクトに応じた色空間変換処理や色補正処理などを行う。このときビットマップイメージに付加されている属性情報に従って処理を行うことができる。色空間変換処理として、上述のようにビットマップイメージの色情報としてRGB色空間の色情報をバンドバッファ14に書き込んでいる場合、印字装置3が要求する例えばCMYK色空間の色情報に変換する。このとき、黒色の情報が高解像度化の処理のための情報である場合には、この黒色の情報を保存するように色変換を行う。また、高解像度化の処理を行わないグレイなどの色では、例えばグラフィックスやフォントの場合には単独色の黒色に変換し、イメージの場合にはプロセス黒(シアン、マゼンダ、黄色あるいはさらに黒色の混色)に変換するなどといったことが可能である。
【0044】
点面変換部35は、バンドバッファ14にビットマップイメージを記憶する際に、例えば図6に示すように画素毎にすべての色成分のデータを保持する点順次データとして記憶しているとき、印字装置3が色成分毎に別々のプレーンとして記憶する面順次データを要求する場合、点順次データから面順次データへ変換する。もちろん、面順次データとして記憶されているビットマップイメージを、点順次データへ変換する機能を有していても良い。
【0045】
なお、中間コード画像データ展開部13の全部又は一部の構成、あるいはさらにバンドバッファ14などは、専用の回路で構成することが可能である。これによって高速に処理を行うことが可能である。
【0046】
次に、本発明の実施の一形態における動作の一例について説明する。例えば、パーソナルコンピュータなどの上位処理装置1と画像処理装置2がネットワークなどで接続されているようなプリントシステムにおいては、上位処理装置1からネットワークなどを通じて描画命令が画像処理装置2に送られてくるので、画像処理装置2は入力制御部21で描画命令を受け取って中間コードメモリ12に格納する。一連の描画命令を受信したら、あるいは描画命令の受信と並行して、描画命令解釈部22及び中間コード画像データ生成部23が動作する。描画命令解釈部22は、上位処理装置1から受け取った描画命令を解釈し、解釈結果を中間コード画像データ生成部23に渡す。画像データ生成部23は、描画命令解釈部22から渡された解釈結果に基づき、それぞれのバンド毎の中間コード画像データを生成する。このとき、文字や線画のエッジ部分など、高解像度化の処理を行う必要のある部分については、そのパターン情報を黒色の情報として生成し、また色指定有効/無効情報については色情報を無効に設定しておく。さらに描画オブジェクトの種類として「グレイフォント」あるいは「グレイライン」に設定する。
【0047】
例えば1ページ分など、一連の描画命令について中間コード画像データの生成が終了したら、中間コード画像データ展開部13が起動され、中間コード画像データ解釈部31は中間コードメモリ12に格納されている中間コード画像データに従ってレンダリング処理を行う。
【0048】
図7は、本発明の実施の一形態における基本的なレンダリング処理の一例を示すフローチャートである。なお、図7に示す処理例では、中間コード画像データはそれぞれの主走査ライン毎に描画開始点と終了点あるいはランレングスとの組(エッジリスト)を1ないし複数組保持しているものとする。
【0049】
S41において、中間コードメモリ12に格納されている中間コード画像データを1つ取り出し、そのヘッダ部の情報を解析する。このヘッダ部には、図4や図5に示したようにRGBの色情報や高解像度化の処理のための黒色の情報、色指定有効/無効情報などが含まれている。S42において色指定有効/無効情報を調べ、色情報が有効か否かを判定する。色情報が有効であれば、中間コード画像データ中のボディ部に格納されているそれぞれのエッジリストについて、S43〜S47の処理を繰り返す。また、それぞれのエッジリストについて、描画開始点から描画終了点までの画素数、あるいはランレングスで指定された画素数だけS44〜S46を繰り返し、S45において、それぞれの画素について図6(A)に示したようにRGBの色情報と属性情報をバンドバッファ14に書き込む。
【0050】
また、S42で色指定有効/無効情報が色情報を無効とする設定であると判定された場合には、それぞれのエッジリストについてS48〜S52を繰り返し、またエッジリスト中のそれぞれの画素についてS49〜S51を繰り返し、S50において、図6(B)に示したように1画素について属性情報のみをバンドバッファ14に書き込む。この場合、RGBの色情報の部分はそのまま残しておく。
【0051】
このように、色指定有効/無効情報に従ってS43〜S47またはS48〜S52の処理を、それぞれの中間コード画像データについて実行する。そして、1バンド分の中間コード画像データについて順に上述の処理を行うことによって、バンドバッファ14に1バンド分の画像が描画されることになる。
【0052】
図7に示した処理の一例では、単純に上書き描画を行う場合について示しているが、描画命令において論理演算が指定されている場合もある。図8、図9は、論理演算を伴うレンダリング処理の一例を示すフローチャートである。なお、ここでは中間コード画像データによりバンドバッファ14に書き込む描画オブジェクトの種類は、高解像度化の処理のための黒色の情報を伴わない通常の描画オブジェクトであるものとする。また、ここでは論理演算の一例として、デスティネーション画像とソース画像の間で論理演算を行うものとし、新たに中間コード画像データから得られる画像をソース画像、すでにバンドバッファ14に書き込まれている画像をデスティネーション画像とする。もちろん2つの画像間の論理演算に限らず、ペン、マスクなどと呼ばれる画像情報を用いる場合であってもよい。
【0053】
中間コード画像データを1つ取り出し、その中間コード画像データに登録されているそれぞれのエッジリスト毎にS61〜S80の処理を繰り返し、また1つのエッジリストにより描画するそれぞれの画素毎にS62〜S79の処理を繰り返す。
【0054】
S63において、バンドバッファ14に書き込まれているビットマップイメージの属性情報から、描画オブジェクトの種類が「グレイフォント」や「グレイライン」などのように高解像度化処理のための黒色の情報を保持している描画オブジェクトの種類であるか否かを判定する。
【0055】
バンドバッファ14に書き込まれているビットマップイメージの描画オブジェクトの種類が「グレイフォント」や「グレイライン」などでなければ、通常の論理演算を伴う描画処理を行う。すなわち、S64においてバンドバッファ14に格納されているビットマップイメージの色情報をデスティネーションとし、また中間コード画像データから得られる色情報をソースとして、指示された論理演算をS65において実行する。S66において、演算結果をバンドバッファ14に書き込み、1画素の論理演算を伴う描画処理を終了する。これによって、描画オブジェクトの種類が「グレイフォント」や「グレイライン」などでない場合の論理演算を伴う1画素の描画処理が行われる。
【0056】
バンドバッファ14に書き込まれているビットマップイメージの描画オブジェクトの種類が「グレイフォント」や「グレイライン」などの場合には、RGBの色情報と黒色の情報とについて、それぞれ、論理演算を実行する。そして、その結果に応じてイメージバッファ14への書き込みを行う。
【0057】
すなわち、まずS67においてバンドバッファ14に格納されているビットマップイメージの色情報をデスティネーションとし、また中間コード画像データから得られる色情報をソースとして、指示された論理演算をS68において実行し、S69において、演算結果の色情報をバンドバッファ14に書き込む。これは、背景色に対する論理演算であり、周囲の色との一致性を保証するためのものである。
【0058】
さらに、バンドバッファ14に書き込まれているビットマップイメージ中の高解像度化処理のための黒色の情報について、論理演算を行う。S70において、バンドバッファ14に書き込まれている属性情報中の黒色の情報からRGBの色情報を算出し、これをデスティネーションとする。また中間コード画像データから得られる色情報をソースとして、指示された論理演算をS71において行う。
【0059】
このようにしてバンドバッファ14に書き込まれている属性情報中の高解像度化処理のための黒色の情報とビットマップイメージの色情報とについてそれぞれ論理演算を行う。そして、論理演算の結果をバンドバッファ14に書き戻す際には、ここでは黒色の情報に対して行った論理演算の結果に基づいて行う。高解像度化処理を行わなければ、当該画素はグレイ色(黒色)によって描画されていた画素であるので、黒色の情報に対して行った論理演算の結果を優先するためである。
【0060】
S72において、黒色の情報に対して行った論理演算の結果をR’G’B’とするとき、R’=G’=B’であるか否かを判定する。R’=G’=B’であれば、論理演算の結果はグレイ色であるので、黒色の情報を保持して良いことが想定される。この場合、さらにS73において、論理演算前のRGB(R=G=B)の値と論理演算後のR’G’B’(R’=G’=B’)の値を比較する。値の比較はR=G=B及びR’=G’=B’であるので、R成分、G成分、B成分のいずれを比較しても良いが、ここでは論理演算前のRと論理演算後のR’を比較している。比較の結果、両者が同じ値であれば演算前の黒色の情報をそのまま保持すればよい。従って、属性情報のバンドバッファ14への書き込みは行わない。
【0061】
また、論理演算前のRと論理演算後のR’を比較した結果、等しくない場合には、論理演算によってグレイ色としての濃度が変更されることになる。このような場合には、S74において論理演算後のR’(=G’=B’)から改めて高解像度化処理のための黒色の情報を作成し、属性情報としてバンドバッファ14に書き込む。
【0062】
S72でR=G=Bではない(例えばR≠GやR≠Bなど)場合には、論理演算によってグレイ(黒)以外の色に変更されることを示している。従って、論理演算結果を当該画素の色情報として保持する必要がある。そのためS75において、論理演算後の色情報をバンドバッファ14に書き込む。これによって、S69で書き込まれた背景色を用いた論理演算結果は無効となる。
【0063】
また、S76で中間コード画像データの描画オブジェクトの種類が「グレイフォント」か否かを判定し、「グレイフォント」であればS77で描画オブジェクトの種類を「フォント」に変更するとともに色指定有効/無効情報を有効に設定し、属性情報をバンドバッファ14に書き込む。また、中間コード画像データの描画オブジェクトの種類が「グレイライン」であれば、S78において描画オブジェクトの種類を「グラフィックス」に変更するとともに色指定有効/無効情報を有効に設定し、属性情報をバンドバッファ14に書き込む。
【0064】
このようにして、1画素分の論理演算処理を伴う描画処理を行うことができる。このS63〜S78の処理を、エッジリストによって指定される区間あるいはランレングスで指定された画素数だけS62〜S79で繰り返し、さらに、このような処理をそれぞれのエッジリストについてS61〜S80で繰り返す。これによって、1つの中間コード画像データについての論理演算を伴う描画処理を行うことができる。
【0065】
上述のバンドバッファ14に書き込まれているビットマップイメージの描画オブジェクトの種類が「グレイフォント」や「グレイライン」などの場合の1画素の処理について、例を用いて説明する。図10は、バンドバッファ14に書き込まれているビットマップイメージが属性情報として黒色の情報を含む場合の論理演算処理の一例の説明図である。図10において、色の違いはハッチングを異ならせて示している。図10では、論理演算結果においても高解像度化処理のための黒色の情報を保持する場合を示している。いま、バンドバッファ14には図10(A)に示すように右下の1/4を描画する黒色の情報が属性情報として保持され、また背景色が色情報として保持されているものとする。そして、図10(B)に示す中間コード画像データから得られる色情報との間で論理演算を行うものとする。
【0066】
この場合、図8のS67〜S69で説明したように、まず、背景色について論理演算を行う。すなわち、図10(D)に示すようにバンドバッファ14に書き込まれているビットマップイメージのRGBの色情報をデスティネーションとし、図10(E)に示すように中間コード画像データから得られる色情報をソースとして論理演算を行う。これによって図10(F)に示す色情報が得られる。とりあえず、この論理演算によって得られた色情報をバンドバッファ14に書き込む。
【0067】
また、図10(G)に示す黒色の情報は、そのままではRGBの色情報ではないため、R=G=Bの色情報に変換する。そして、変換したR=G=Bの色情報をデスティネーションとし、図10(H)に示す中間コード画像データから得られる色情報をソースとして論理演算を行う。この例では論理演算後もR’=G’=B’の関係が保たれ、さらにR=R’の場合を示しており、図10(I)に示すように図10(G)と同じ黒色の情報が得られる。この場合には、もともと図10(I)と同じ黒色の情報がすでに書き込まれていることから、図10(I)に示す論理演算後の黒色の情報はバンドバッファ14には書き込まないことによって、処理を高速化する。黒色の情報をバンドバッファ14に書き込まなくても、論理演算後の画素は図10(C)に示すように黒色の情報および論理演算後の背景色を有することになる。
【0068】
なお、論理演算後もR’=G’=B’の関係が保たれているがR≠R’である場合には、R’(またはG’、B’)から新たに生成した黒色の情報を属性情報としてバンドバッファ14に書き込むことになる。具体例として論理演算の一つである反転を考えると、図10(G)のパターンは図13からR=G=B=65(=01000001(2進8ビット))の値を持つ色情報に変換される。そして、この色情報に対して反転の論理演算を行う。論理演算の結果としてR’=G’=B’=190(=10111110(2進8ビット))が得られる。論理演算の前後で値が異なるので、R’の値(=190)から黒色の情報を得ることになる。図13を参照して分かるように、値190の形状は、値65の形状を反転したものとなる。このように、論理演算後も反転したエッジの形状を保持することになる。
【0069】
図11は、バンドバッファ14に書き込まれているビットマップイメージが属性情報として黒色の情報を含む場合の論理演算処理の別の例の説明図である。図11においても、色の違いはハッチングを異ならせて示している。図11では、論理演算の結果、別の色に変更されてしまう場合を示している。いま、バンドバッファ14には図11(A)に示すように右下の1/4を描画する黒色の情報が属性情報として保持され、また背景色が色情報として保持されているものとする。そして、図11(B)に示す中間コード画像データから得られる色情報との間で論理演算を行うものとする。
【0070】
この場合も、まず背景色について論理演算を行う。すなわち、図11(D)に示すようにバンドバッファ14に書き込まれているビットマップイメージのRGBの色情報をデスティネーションとし、図11(E)に示すように中間コード画像データから得られる色情報をソースとして論理演算を行う。これによって図11(F)に示す色情報が得られる。とりあえず、この論理演算によって得られた色情報をバンドバッファ14に書き込む。
【0071】
また、図11(G)に示す黒色の情報は、そのままではRGBの色情報ではないため、R=G=Bの色情報に変換する。そして、変換したR=G=Bの色情報をデスティネーションとし、図11(H)に示す中間コード画像データから得られる色情報をソースとして論理演算を行う。この例では論理演算後のR’、G’、B’はR’=G’=B’の関係を満たしていないとする。例えばB’≠G’であったり、G’≠R’である場合、R’=G’=B’の関係を満たさなくなる。このような場合には、図11(I)に論理演算結果を示しているが、この論理演算結果をバンドバッファ14にビットマップイメージの色情報として書き込む。これによって、図11(F)に示した背景色に対する論理演算結果は上書きされて無効となる。演算結果としては図11(C)に示すように、図11(I)に示した論理演算結果となる。なお、この場合には、描画オブジェクトの種類を「グレイフォント」から「フォント」へ、あるいは「グレイライン」から「グラフィックス」へ変更する。これによって、黒色の情報は参照されなくなり、右下1/4の黒の描画は行われなくなる。よって図11(I)に示すような論理演算結果が得られる。
【0072】
なお、上述の論理演算を伴う描画処理の例では、中間コード画像データは黒色の情報を伴わないものとして説明しているが、中間コード画像データが黒色の情報を伴う場合には、中間コード画像データの黒色の情報をR=G=Bの色情報に変換してソースとし、論理演算を行えばよい。あるいは、中間コード画像データが黒色の情報を伴っている場合には上書き描画のみとしてもよい。
【0073】
図12は、本発明の実施の一形態における色変換処理の一例を示すフローチャートである。上述のようにして例えば1バンド分の中間コード画像データに従ったレンダリング処理が終了すると、バンドバッファ14にはRGB色空間の色情報と属性情報を有するビットマップイメージが書き込まれている。例えば印字装置3がCMYK色空間の色情報を必要とする場合、RGB色空間からCMYK色空間への変換が必要になる。色変換部34は、この色空間の変換を行う。
【0074】
色変換部34は、S91〜S96の処理を1バンド分のそれぞれの画素について行う。S92において、当該画素の描画オブジェクトの種類が「グレイフォント」または「グレイライン」であるか否かを判定する。これらの描画オブジェクトの種類である場合には、S93において、背景色となるRGB色空間の色情報を、CMY色空間の色情報に変換する。この場合には、Kを用いないように変換する。そして、S94において属性情報中の高解像度化処理のための黒色の情報に基づいてKの値を決定する。これによって、高解像度化処理のための黒色の情報とともに背景色を残したまま、色変換を行うことができる。
【0075】
また、当該画素の描画オブジェクトの種類が「グレイフォント」または「グレイライン」以外の場合には、S95において、RGB色空間の色情報を、CMYK色空間の色情報に変換すればよい。
【0076】
このようにして色変換されたビットマップイメージは、さらに必要に応じて点面変換部35において点順次の情報を面順次の情報に変換する点面変換処理を行った後、出力制御部15がビットマップイメージを印字装置3などに出力する。このとき、K色の情報として高解像度化処理のための黒色の情報が格納されている場合には、印字装置3を制御して、その画素について局所的に高解像度化のための処理を行う。例えばパルス幅変調方式を用いる場合には、パルスの種類や閾値などの制御を行うことによって、擬似的に高解像度で画素を形成することができる。
【0077】
以上、本発明の実施の一形態について説明したが、本発明はこの実施の形態に限られるものではなく、種々の変形が可能である。例えば上述の説明では、バンド毎に中間コード画像データを生成してからレンダリング処理を行っているが、例えばページ単位にレンダリングしたり、中間コード画像データを生成せずに描画命令から直接、レンダリング処理を行うように構成しても良い。
【0078】
【発明の効果】
以上の説明から明らかなように、本発明によれば、高解像度化の処理に対応して高画質の画像を形成することができるとともに、その際の白抜けを防止し、画質を向上させることができる。また、レンダリング処理時には背景色を意識する必要がないため、白抜けを防止するための処理を高速に実行することができる。さらに、高解像度化の処理のための黒色の情報を保存しながら、論理演算を伴う描画処理も正確に行うことができる。このように、全体として高速に、しかも高画質の画像を得ることができるという効果がある。
【図面の簡単な説明】
【図1】本発明の実施の一形態を示す機能ブロック図である。
【図2】本発明の実施の一形態における、より具体的な機能ブロック図である。
【図3】従来の中間コード画像データの一例の説明図である。
【図4】本発明において用いる中間コード画像データの一例の説明図である。
【図5】本発明において用いる中間コード画像データの別の例の説明図である。
【図6】バンドバッファへの書き込み処理の一例の説明図である。
【図7】本発明の実施の一形態における基本的なレンダリング処理の一例を示すフローチャートである。
【図8】論理演算を伴うレンダリング処理の一例を示すフローチャートである。
【図9】論理演算を伴うレンダリング処理の一例を示すフローチャート(続き)である。
【図10】バンドバッファ14に書き込まれているビットマップイメージが属性情報として黒色の情報を含む場合の論理演算処理の一例の説明図である。
【図11】バンドバッファ14に書き込まれているビットマップイメージが属性情報として黒色の情報を含む場合の論理演算処理の別の例の説明図である。
【図12】本発明の実施の一形態における色変換処理の一例を示すフローチャートである。
【図13】パルス幅変調方式における画像形成位置の一例の説明図である。
【図14】パルス幅変調方式により描画された画像の一例の拡大図である。
【図15】パルス幅変調方式を適用した場合の白抜けへの対応の説明図である。
【符号の説明】
1…上位処理装置、2…画像処理装置、3…印字装置、11…中間コード生成部、12…中間コードメモリ、13…中間コード画像データ展開部、14…バンドバッファ、15…出力制御部、21…入力制御部、22…描画命令解釈部、23…中間コード画像データ生成部、31…中間コード画像データ解釈部、32…圧縮/伸長処理部、33…縮小/拡大処理部、34…色変換部、35…点面変換部。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image processing technique for generating a bitmap image by performing a rendering process based on an input drawing command or intermediate code image data generated from the drawing command, and outputting the bitmap image to a printing device or the like.
[0002]
[Prior art]
An image processing apparatus that receives a print command from a higher-level processing device such as a personal computer receives and sequentially interprets a drawing command, which is actual print information, and creates and outputs a bitmap image. In this process, if the image processing device holds a page buffer, the interpreted bitmap image is written as is to the page buffer (rendering process) and output in page units. Further, since the page buffer requires a large storage capacity, it often holds not a page buffer but a buffer (band buffer) in units of bands obtained by dividing one page into a plurality. In such a case, the intermediate code image data is converted into band-based intermediate code image data once, all the rendering commands are interpreted, and the intermediate code image data is generated. Performs rendering processing to write to the band buffer.
[0003]
Normally, a bitmap image written in a page buffer or a band buffer is subjected to a correction process before being transmitted to a printing device or the like. For example, if the color space designation by the drawing command is RGB, the color space must be converted to CMYK in order to output to the printing device. However, if the color space conversion is uniformly performed on all the bitmap images, a problem occurs in the printing quality. Therefore, it is desirable to perform processing in accordance with the drawing contents (font, graphics, image, and the like). In order to perform a process according to the drawing content, attribute information indicating what drawing content (font, graphics, image, etc.) of each drawing command is required at the time of the color conversion process. For this reason, attribute information is added to one or several pixels at the time of generating a bitmap image by rendering processing based on the drawing content of the drawing command. In an image processing apparatus that holds a band buffer and performs a rendering process on a band-by-band basis, attribute information of a rendering command is passed to intermediate code image data, and attribute information is assigned to a bitmap image developed in the band buffer. Will be added. Then, with reference to the attribute information added to the bitmap image, a correction process is performed on the developed bitmap image.
[0004]
On the other hand, by specifying the color space by the drawing command or the intermediate code image data from the beginning to the CMYK color space, which is the color space required by the printing device or the like, the color conversion processing becomes unnecessary, and at least the attribute information for color conversion Is no longer necessary. However, when the software on the higher-level processing device uses Windows (registered trademark) GDI (Graphic Device Interface), the image processing device must cope with the processing of a logical operation (ROP: Raster Operation). Since this ROP process is based on RGB as the color space, if the rendering command or the color space specification of the intermediate code image data is set to CMYK from the beginning, the result after the logical operation will be different from the assumed one, and the printing quality will be poor. descend.
[0005]
Therefore, the color space of the drawing command or the intermediate code image data is premised on RGB, and in order to improve the printing quality of fonts and the like, it is important to hold the drawing contents of each dot faithfully. This is especially true if there is a background of the drawing content.
[0006]
As an example, in the image processing method described in
[0007]
Also, for example, in
[0008]
When drawing fonts, line drawings, and the like, irregularities called jaggies are visually recognized at oblique edges at the resolution of a conventionally used printing device or the like, which may cause a visual degradation in image quality. Several techniques have been proposed to reduce such jaggies.
[0009]
One of them is a pulse width modulation method. The pulse width modulation method is one of the methods for increasing the resolution when an electrophotographic method is used as a printing device. Specifically, by switching the type and threshold value of the triangular wave to be referred to and outputting the halftone video data, the image forming position and area in one pixel are controlled, and the resolution is improved in a pseudo manner. Technology. For example, it is described in
[0010]
FIG. 13 is an explanatory diagram of an example of an image forming position in the pulse width modulation method, and FIG. 14 is an enlarged view of an example of an image drawn by the pulse width modulation method. For example, in the example shown in FIG. 13, one pixel is divided into four parts assuming that the output resolution is doubled for both the main and sub-scanning lines, and any of the positions is selected in accordance with the density to form an image. As a specific example, when there is a diagonal line of a character or a line drawing as shown in FIG. Here, by using the pulse modulation method, as shown in FIG. 14B, an image of one pixel or less (in this case, 1/4) is formed, and the unevenness of the step-like portion is reduced, so that it is visually smooth. The oblique line is formed.
[0011]
FIG. 15 is an explanatory diagram of how to deal with white spots when the pulse width modulation method is applied. In the case of using the pulse width modulation method as described above, if a black character or a line image is drawn on a background color, a pixel for forming an image using the pattern shown in FIG. 13 is processed as a black pixel. There is a problem that a portion other than the image-formed region of the one-pixel region is whitened out. For example, in the example shown in FIG. 15A, an image is formed in black at the lower right quarter in the center pixel, but white areas occur in the remaining 3/4 region. Due to this white spot, even if the image quality of the character itself is improved, the image quality may deteriorate when viewed on the entire page.
[0012]
In order to solve such a problem, information indicating which of the patterns as shown in FIG. 13 is to be used is stored instead of the black density, and the other CMY colors are drawn as black characters or line drawings. It is conceived to leave the background color without performing the process. Then, for a black color, an image is formed at a pseudo high resolution in a designated pattern, and for the other colors, an image is formed using a background color. As a result, as shown in FIG. 15B, it is also possible to prevent white spots from being formed in a pseudo-high-resolution image, and to form a high-quality image in a printing apparatus. It should be noted that such white spot prevention processing is described in, for example,
[0013]
For example, in the technique described in
[0014]
[Patent Document 1]
JP 2001-236199 A
[Patent Document 2]
JP-A-10-052947
[Patent Document 3]
Japanese Patent No. 3266576
[Patent Document 4]
JP-A-2000-242461
[0015]
[Problems to be solved by the invention]
The present invention has been made in view of the above-described circumstances, and it is possible to form an image at a high resolution, to prevent white spots at the time of increasing the resolution, and to perform such a drawing process at a high speed. It is an object to provide a processing device and an image processing method.
[0016]
[Means for Solving the Problems]
The present invention relates to an image processing apparatus or an image processing method for creating a bitmap image based on an input drawing command, wherein the drawing command or intermediate code image data generated from the drawing command contains the color information together with color information. Color designation valid / invalid information indicating whether to use the information is held. Then, when rendering processing is performed based on such a drawing command or intermediate code image data, it is determined whether or not to write color information into the image storage means in accordance with color designation valid / invalid information, and rendering processing is performed. For example, when the color specification valid / invalid information is set to use color information, the bitmap image and the attribute information are written to the image storage unit based on the value of each color information. When the color specification valid / invalid information is set not to use color information, the attribute information is written to the image storage means, and the background color is stored by not writing each color information to the image storage means. By storing the background color in this manner, it is possible to cope with a process of increasing the resolution by, for example, a pulse width modulation method. At the same time, it is possible to prevent white spots at the time of high resolution processing, and to improve the image quality of characters and line drawings. Further, since the image can be saved without being aware of the background color, the drawing process can be sped up. The black information can be stored separately from the color information, for example, as attribute information.
[0017]
Further, in the present invention, one pixel has two values of information of background color (R / G / B) and information of black (K) at the same time. Therefore, with respect to the logical operation performed on the RGB color space, the logical operation is performed on each of the background color and black (the value of R = G = B corresponding thereto), and the image is calculated based on each result. Write to the storage means. For example, as a result of the logical operation on the black information, if the values of all the RGB color elements are equal and equal to the values before the logical operation, the black information after the operation is already stored in the image storage means. Shall be. If the values of all the RGB color elements are equal but not equal to the values before the logical operation, the black information after the operation is determined from the result of the logical operation on the black information. In these cases, the calculation result of the background color is kept valid. Further, if at least one of the RGB color element values is not equal, the result of the logical operation performed on the color information is invalidated, and the result of the logical operation on the black information is changed to the color after the operation. It can be information. At this time, the type of the drawing object in the attribute information is changed from gray font or gray line to font or graphics, respectively. By performing the processing at the time of such a logical operation, discontinuity of a drawn image can be prevented, and image quality can be improved.
[0018]
The color designation valid / invalid information can be configured to be independently set for each color. In addition, all or a part of the function of the drawing unit can be configured by a dedicated circuit.
[0019]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 1 is a functional block diagram showing an embodiment of the present invention. In the figure, 1 is an upper processing device, 2 is an image processing device, 3 is a printing device, 11 is an intermediate code generation unit, 12 is an intermediate code memory, 13 is an intermediate code image data development unit, 14 is a band buffer, and 15 is an output. It is a control unit. The
[0020]
The
[0021]
The generated intermediate code image data includes attribute information such as the type of a drawing object together with information on a color to be drawn, and is included in the intermediate code image data as a part of the attribute information or separately from the attribute information. Color specification valid / invalid information indicating whether or not to use the color information. This color designation valid / invalid information can be settable, for example, for each color component in the color information. For example, a portion requiring image formation with high resolution, such as an edge portion of a character or a line drawing, includes, as black information, information indicating which of the patterns for high resolution as shown in FIG. 13 is to be selected. In this case, the color designation valid / invalid information is set so as not to use the color information.
[0022]
Various designations can be considered as the type of the drawing object. In this case, in particular, as the type of the drawing object affected by the present invention, a “font” that draws a character using at least color information and a “graphic that draws a line drawing” And "Gray font" for drawing characters without using color information and "Gray line" for drawing line drawings for high resolution processing. An example of the data format of the intermediate code image data will be described later.
[0023]
The intermediate code memory 12 stores the intermediate code image data generated by the
[0024]
The intermediate code image
[0025]
The intermediate code image
[0026]
Further, when a logical operation (ROP) process is instructed by a rendering command (intermediate code image data), the intermediate code image
[0027]
The
[0028]
The
[0029]
FIG. 2 is a more specific functional block diagram according to the embodiment of the present invention. In the figure, 21 is an input control unit, 22 is a rendering command interpretation unit, 23 is an intermediate code image data generation unit, 31 is an intermediate code image data interpretation unit, 32 is a compression / decompression processing unit, 33 is a reduction / enlargement processing unit, 34 is a color conversion unit, and 35 is a point plane conversion unit. The solid arrows indicate the flow of data, and the dashed arrows indicate the flow of control.
[0030]
In this example, the intermediate
[0031]
The
[0032]
FIG. 3 is an explanatory diagram of an example of conventional intermediate code image data, and FIG. 4 is an explanatory diagram of an example of intermediate code image data used in the present invention. The types of drawing objects include graphics, fonts, images, and the like. Of these, graphics and fonts can be represented only by intermediate code image data, but in the case of images, they are composed of two pieces of intermediate code image data and images.
[0033]
In the conventional intermediate code image data, any drawing object is composed of a header part and a body part. For example, in the case of graphics and fonts, the header section includes a command ID, an attribute information field, color information, and other information as shown in FIG. In the case of an image, for example, as shown in FIG. 3B, a command ID, an attribute information field, a pointer to the image, and other information are included. In the case of an image, the color information is held by the image itself. The body section holds information specifying a drawing area created from the edge information passed from the drawing command interpreting section 22, for example, run-length information.
[0034]
In the example shown in FIG. 3, it is assumed that information of each color component in the RGB color space is held as color information, and is composed of three fields. For example, when the color information in the CMYK color space is held, it is composed of four fields. The same applies to an image. For example, a binary image is composed of only one field.
[0035]
Recently, in a document creation application on the
[0036]
FIG. 4 shows an example of the data format of the intermediate code image data of the present invention. In the example shown in FIG. 4, since the CMYK color space and the RGB color space are both assumed as the color space handled by the intermediate code image data, four fields for storing color information are provided. In this case, if the color space is an RGB color space, there is one more field for storing color information. This field can be used as a field for storing color designation valid / invalid information and black information. Usually, the size of the area for storing information of one color component is 8 bits (the level of each color is 0 to 255). Since the remaining one field can also use 8 bits, it is possible to store 1 bit as a color designation valid / invalid information area and black information in the remaining area.
[0037]
In this case, the area holding the black information is 7 bits, and the black level can only be set in the range of 0 to 127. However, in order to perform the process of increasing the resolution using the pulse width modulation method, for example, if only one of the patterns as shown in FIG. Is sufficient. However, since the value set in the black information area shown in FIG. 4 is different from the actual density value, in order to identify whether or not this black information is valid, the drawing object As the types, two types of “grey font” as “font” having black information and “gray line” as “graphics” having black information are added.
[0038]
Here, an example is shown in which the color specification valid / invalid information and the black information are included in the same field. May be included in the field.
[0039]
FIG. 5 is an explanatory diagram of another example of the intermediate code image data used in the present invention. FIG. 5 shows an example in which black information is included in the attribute information field, and color designation valid / invalid information is included as a part of other information. In the example shown in FIG. 5, color designation valid / invalid information is provided independently for each color component. This enhances versatility. Further, in the example shown in FIG. 4 described above, the color designation valid / invalid information cannot be held in the case of the CMYK color space, but in the example shown in FIG. Enable / disable of color information can be set.
[0040]
The black information for increasing the resolution is not limited to, for example, any one of the patterns shown in FIG. 13, and various division patterns can be applied.
[0041]
Returning to FIG. 2, the intermediate code image
[0042]
Returning to FIG. 2 again, the compression /
[0043]
The color conversion unit 34 performs a color space conversion process, a color correction process, and the like on the bitmap image in the
[0044]
When storing the bitmap image in the
[0045]
The whole or a part of the structure of the intermediate code image
[0046]
Next, an example of an operation according to the embodiment of the present invention will be described. For example, in a print system in which the
[0047]
When the generation of the intermediate code image data for a series of drawing commands, for example, for one page, is completed, the intermediate code image
[0048]
FIG. 7 is a flowchart illustrating an example of a basic rendering process according to an embodiment of the present invention. In the processing example shown in FIG. 7, it is assumed that the intermediate code image data holds one or a plurality of sets (edge list) of a drawing start point and an end point or a run length for each main scanning line. .
[0049]
In S41, one piece of intermediate code image data stored in the intermediate code memory 12 is extracted, and the information of the header part is analyzed. As shown in FIGS. 4 and 5, the header section includes RGB color information, black information for high resolution processing, color designation valid / invalid information, and the like. In S42, the color designation valid / invalid information is checked to determine whether the color information is valid. If the color information is valid, the processing of S43 to S47 is repeated for each edge list stored in the body part in the intermediate code image data. Further, for each edge list, S44 to S46 are repeated by the number of pixels from the drawing start point to the drawing end point or the number of pixels specified by the run length, and in S45, each pixel is shown in FIG. As described above, the RGB color information and the attribute information are written in the
[0050]
If it is determined in S42 that the color designation valid / invalid information is set to invalidate the color information, S48 to S52 are repeated for each edge list, and S49 to S52 are performed for each pixel in the edge list. S51 is repeated, and in S50, only the attribute information for one pixel is written to the
[0051]
In this way, the processing of S43 to S47 or S48 to S52 is executed for each intermediate code image data according to the color designation valid / invalid information. Then, by performing the above-described processing in order on the intermediate code image data for one band, an image for one band is drawn in the
[0052]
In the example of the processing shown in FIG. 7, the case where the overwrite drawing is simply performed is shown. However, a logical operation may be specified in the drawing command. FIG. 8 and FIG. 9 are flowcharts illustrating an example of the rendering process involving the logical operation. Here, it is assumed that the type of drawing object to be written into the
[0053]
One piece of intermediate code image data is taken out, the processing of S61 to S80 is repeated for each edge list registered in the intermediate code image data, and the processing of S62 to S79 is performed for each pixel to be drawn by one edge list. Repeat the process.
[0054]
In S63, from the attribute information of the bitmap image written in the
[0055]
If the type of the drawing object of the bitmap image written in the
[0056]
When the type of the drawing object of the bitmap image written in the
[0057]
That is, first, in S67, the designated logical operation is executed in S68 using the color information of the bitmap image stored in the
[0058]
Further, a logical operation is performed on black information for high resolution processing in the bitmap image written in the
[0059]
In this way, a logical operation is performed on the black information for the high resolution processing in the attribute information written in the
[0060]
In S72, when the result of the logical operation performed on the black information is R'G'B ', it is determined whether or not R' = G '= B'. If R ′ = G ′ = B ′, since the result of the logical operation is gray, it is assumed that black information may be held. In this case, in S73, the value of RGB (R = G = B) before the logical operation is compared with the value of R'G'B '(R' = G '= B') after the logical operation. Since the comparison of the values is R = G = B and R ′ = G ′ = B ′, any of the R component, the G component, and the B component may be compared. The following R 'is compared. As a result of the comparison, if both values are the same, the black information before the calculation may be held as it is. Therefore, writing of the attribute information to the
[0061]
If the result of comparison between R before the logical operation and R 'after the logical operation is not equal, the density as a gray color is changed by the logical operation. In such a case, black information for high resolution processing is newly created from R ′ (= G ′ = B ′) after the logical operation in S74, and is written to the
[0062]
If R = G = B is not satisfied in S72 (for example, R ≠ G or R ≠ B), it indicates that the color is changed to a color other than gray (black) by a logical operation. Therefore, it is necessary to hold the result of the logical operation as color information of the pixel. Therefore, in S75, the color information after the logical operation is written in the
[0063]
In S76, it is determined whether or not the type of the drawing object of the intermediate code image data is “gray font”. The invalid information is set to be valid, and the attribute information is written to the
[0064]
In this way, it is possible to perform the drawing process involving the logical operation process for one pixel. The processing of S63 to S78 is repeated in S62 to S79 for the number of pixels specified in the section or run length specified by the edge list, and such processing is repeated in S61 to S80 for each edge list. This makes it possible to perform a drawing process involving a logical operation on one piece of intermediate code image data.
[0065]
The processing of one pixel when the type of the drawing object of the bitmap image written in the above-described
[0066]
In this case, as described in S67 to S69 of FIG. 8, first, a logical operation is performed on the background color. That is, as shown in FIG. 10D, the destination is the RGB color information of the bitmap image written in the
[0067]
Further, the black information shown in FIG. 10G is not RGB color information as it is, so it is converted into R = G = B color information. Then, a logical operation is performed using the converted color information of R = G = B as a destination and color information obtained from the intermediate code image data shown in FIG. 10H as a source. In this example, the relationship of R ′ = G ′ = B ′ is maintained even after the logical operation, and the case where R = R ′ is shown. As shown in FIG. 10 (I), the same black color as in FIG. Information is obtained. In this case, since the same black information as that of FIG. 10I has already been written, the black information after the logical operation shown in FIG. Speed up processing. Even if the black information is not written in the
[0068]
Note that, even after the logical operation, the relationship of R ′ = G ′ = B ′ is maintained, but if R ≠ R ′, black information newly generated from R ′ (or G ′, B ′) To the
[0069]
FIG. 11 is an explanatory diagram of another example of the logical operation processing when the bitmap image written in the
[0070]
Also in this case, first, a logical operation is performed on the background color. That is, as shown in FIG. 11D, the destination is the RGB color information of the bitmap image written in the
[0071]
Further, the black information shown in FIG. 11G is not RGB color information as it is, and thus is converted into R = G = B color information. Then, a logical operation is performed using the converted color information of R = G = B as a destination and color information obtained from the intermediate code image data shown in FIG. 11H as a source. In this example, it is assumed that R ', G', and B 'after the logical operation do not satisfy the relationship of R' = G '= B'. For example, when B '≠ G' or G '≠ R', the relationship of R '= G' = B 'is not satisfied. In such a case, the result of the logical operation is shown in FIG. 11I, and the result of the logical operation is written to the
[0072]
Note that, in the example of the drawing process involving the logical operation described above, the intermediate code image data is described as not accompanying black information. However, when the intermediate code image data accompanies black information, the intermediate code image data is not included. The black information of the data may be converted into color information of R = G = B and used as a source to perform a logical operation. Alternatively, when the intermediate code image data is accompanied by black information, only the overwrite drawing may be performed.
[0073]
FIG. 12 is a flowchart illustrating an example of the color conversion processing according to the embodiment of the present invention. When the rendering process according to the intermediate code image data for one band is completed as described above, the bit buffer image having the color information and the attribute information of the RGB color space is written in the
[0074]
The color conversion unit 34 performs the processing of S91 to S96 for each pixel of one band. In S92, it is determined whether the type of the drawing object of the pixel is “gray font” or “gray line”. In the case of these types of drawing objects, in S93, the color information in the RGB color space as the background color is converted into the color information in the CMY color space. In this case, conversion is performed so that K is not used. Then, in S94, the value of K is determined based on the black information for the high resolution processing in the attribute information. As a result, color conversion can be performed while leaving the background color together with the black information for the high resolution processing.
[0075]
If the type of the drawing object of the pixel is other than “gray font” or “gray line”, the color information in the RGB color space may be converted into the color information in the CMYK color space in S95.
[0076]
The bitmap image thus color-converted is further subjected to a point-plane conversion process for converting point-sequential information into plane-sequential information in a point-plane conversion unit 35, if necessary, and then the
[0077]
As mentioned above, although one Embodiment of this invention was described, this invention is not limited to this Embodiment, A various deformation | transformation is possible. For example, in the above description, rendering processing is performed after generating intermediate code image data for each band. However, for example, rendering processing is performed on a page basis, or rendering processing is performed directly from a drawing command without generating intermediate code image data. May be performed.
[0078]
【The invention's effect】
As is clear from the above description, according to the present invention, it is possible to form a high-quality image corresponding to the processing for increasing the resolution, to prevent white spots at that time, and to improve the image quality. Can be. Further, at the time of rendering processing, it is not necessary to be aware of the background color, so that processing for preventing white spots can be executed at high speed. Further, the drawing process involving the logical operation can be performed accurately while the black information for the process of increasing the resolution is stored. Thus, there is an effect that a high-quality image can be obtained at high speed as a whole.
[Brief description of the drawings]
FIG. 1 is a functional block diagram showing an embodiment of the present invention.
FIG. 2 is a more specific functional block diagram according to the embodiment of the present invention.
FIG. 3 is an explanatory diagram of an example of conventional intermediate code image data.
FIG. 4 is an explanatory diagram of an example of intermediate code image data used in the present invention.
FIG. 5 is an explanatory diagram of another example of intermediate code image data used in the present invention.
FIG. 6 is an explanatory diagram of an example of a writing process to a band buffer.
FIG. 7 is a flowchart illustrating an example of a basic rendering process according to an embodiment of the present invention.
FIG. 8 is a flowchart illustrating an example of a rendering process involving a logical operation.
FIG. 9 is a flowchart (continued) illustrating an example of a rendering process involving a logical operation.
FIG. 10 is an explanatory diagram of an example of a logical operation process when a bitmap image written in a
FIG. 11 is an explanatory diagram of another example of the logical operation process when the bitmap image written in the band buffer includes black information as attribute information.
FIG. 12 is a flowchart illustrating an example of a color conversion process according to an embodiment of the present invention.
FIG. 13 is an explanatory diagram of an example of an image forming position in the pulse width modulation method.
FIG. 14 is an enlarged view of an example of an image drawn by a pulse width modulation method.
FIG. 15 is an explanatory diagram of how to deal with white spots when the pulse width modulation method is applied.
[Explanation of symbols]
DESCRIPTION OF
Claims (17)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003129514A JP2004334533A (en) | 2003-05-07 | 2003-05-07 | Image processing device and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003129514A JP2004334533A (en) | 2003-05-07 | 2003-05-07 | Image processing device and method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004334533A true JP2004334533A (en) | 2004-11-25 |
Family
ID=33505332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003129514A Pending JP2004334533A (en) | 2003-05-07 | 2003-05-07 | Image processing device and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004334533A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006163700A (en) * | 2004-12-06 | 2006-06-22 | Kyocera Mita Corp | Drawing processor and program |
JP2006237681A (en) * | 2005-02-22 | 2006-09-07 | Oki Data Corp | Color image processor |
JP2006345315A (en) * | 2005-06-09 | 2006-12-21 | Canon Inc | Image processing apparatus and method thereof |
JP2007150982A (en) * | 2005-11-30 | 2007-06-14 | Fuji Xerox Co Ltd | Image forming engine and image forming apparatus |
JP2013505854A (en) * | 2009-09-25 | 2013-02-21 | オセ−テクノロジーズ・ベー・ヴエー | How to create a printable raster image file |
-
2003
- 2003-05-07 JP JP2003129514A patent/JP2004334533A/en active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006163700A (en) * | 2004-12-06 | 2006-06-22 | Kyocera Mita Corp | Drawing processor and program |
JP4624087B2 (en) * | 2004-12-06 | 2011-02-02 | 京セラミタ株式会社 | Drawing processing apparatus and program |
JP2006237681A (en) * | 2005-02-22 | 2006-09-07 | Oki Data Corp | Color image processor |
JP4541181B2 (en) * | 2005-02-22 | 2010-09-08 | 株式会社沖データ | Color image processing device |
JP2006345315A (en) * | 2005-06-09 | 2006-12-21 | Canon Inc | Image processing apparatus and method thereof |
US7697168B2 (en) | 2005-06-09 | 2010-04-13 | Canon Kabushiki Kaisha | Image processing apparatus and method for generating bitmap data and attribute information from a raster data |
JP4484770B2 (en) * | 2005-06-09 | 2010-06-16 | キヤノン株式会社 | Image processing apparatus and method |
JP2007150982A (en) * | 2005-11-30 | 2007-06-14 | Fuji Xerox Co Ltd | Image forming engine and image forming apparatus |
JP2013505854A (en) * | 2009-09-25 | 2013-02-21 | オセ−テクノロジーズ・ベー・ヴエー | How to create a printable raster image file |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0654759B1 (en) | Printing apparatus | |
JP3545409B2 (en) | How to add traps to print pages specified in page description language format | |
US6323958B1 (en) | Printing apparatus | |
JP3008943B1 (en) | Image processing apparatus and image processing method | |
JPH1166327A (en) | Method and device for processing image and recording medium | |
JP7009316B2 (en) | Image forming apparatus, its image forming method, and a program | |
JP2004334533A (en) | Image processing device and method | |
US6611632B1 (en) | Device and method for interpolating image data and medium on which image data interpolating program is recorded | |
JPH05342314A (en) | Picture processor | |
US20040111665A1 (en) | Information processing apparatus, image formation apparatus, drawing processing method, and computer product | |
JP3728183B2 (en) | Printing control apparatus, drawing control apparatus, data processing method, and storage medium | |
JP4514168B2 (en) | Image processing system and image processing method | |
JP2011053263A (en) | Image processing device, image processing method, image output system, program and recording medium | |
JP2009129342A (en) | Image processing device and method | |
JP2004021886A (en) | Image processing device and image processing method | |
JP2006272556A (en) | Image processor and image processing program | |
JP2003051929A (en) | Image processing method and apparatus | |
JP3636891B2 (en) | Color image output method | |
JP2004320361A (en) | Image processor and image processing method | |
JP4539801B2 (en) | Image processing apparatus and image forming apparatus | |
JP2002024840A (en) | Drawing processing device | |
JP2006140597A (en) | Device and method for printing control, computer program, and storage medium | |
JP2005038084A (en) | Method and device for converting drawing data | |
JP4072403B2 (en) | Information processing apparatus, information processing method, and program | |
JP3862460B2 (en) | Information processing method and apparatus, and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060420 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081203 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090128 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090401 |