(58)【調査した分野】(Int.Cl.,DB名)
前記第1の生成工程において、ディザ法による量子化処理を行うことにより前記第1のドットデータを生成し、前記第2の生成工程において、ディザ法による量子化処理を行うことにより前記第2のドットデータを生成することを特徴とする請求項1に記載の画像処理方法。
前記第2の画像データは、多値の階調値を有するRGB画像データであり、前記第1の生成工程では前記第1の画像データをCMYKの色データに変換した後、前記量子化処理を行い、前記第2の生成工程では前記第2の画像データをCMYKの色データに変換した後、前記量子化処理を行うことを特徴とする請求項1または2に記載の画像処理方法。
前記画像形成データに基づいて前記被記録媒体にノズルからインクを吐出して記録を行う記録工程をさらに有することを特徴とする請求項1乃至3のいずれか一項に記載の画像処理方法。
前記第2の生成工程では、前記カラーの属性の画像の記録の解像度が前記黒文字の属性の画像の記録の解像度と等しくなるように前記第2のドットデータを生成することを特徴とする請求項1乃至4のいずれか1項に記載の画像処理方法。
元画像データから黒文字の属性の画像のデータとカラーの属性の画像のデータを分離し、分離した前記カラーの属性の画像のデータに画像を低解像度化する処理をして得た黒文字を示す第1の画像データと、前記第1の画像データにおける黒文字よりも低い解像度でカラーの画像を示す第2の画像データと、を出力する出力手段と、
前記出力手段が出力した前記第1の画像データに基づき、量子化処理を行い、前記黒文字の画像を形成するためのドットの形成の有無を示す第1のドットデータを生成する第1の生成手段と、
前記第2の画像データに基づき、量子化処理を行い、各画素あたりのドットエリアの数を前記第1の生成手段が前記第1の画像データの各画素当たりに割り当てることが可能なドットエリアより多くして、前記第2の画像データにおける各画素にドットを割り当てて前記カラーの属性の画像を形成するためのドットの形成の有無を示すドットデータを生成する第2の生成手段と、
前記第1のドットデータと前記第2のドットデータとに基づいて被記録媒体に画像を形成するため前記画像形成データを生成する第3の生成手段と、
を有することを特徴とする画像処理システム。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【0013】
図1は、本発明の一実施形態に係るインクジェット記録装置であるプリンタを模式的に示す図である。本実施形態のプリンタはフルラインタイプの記録装置であり、
図1に示すように、記録ヘッド101〜104を備える。記録ヘッド101〜104のそれぞれには、記録媒体106の幅に対応した同じ種類のインクを吐出する複数のノズルが配列したノズル列が、1200dpiのピッチでx方向(所定方向)に配列されている。記録ヘッド101〜104は、それぞれブラック(K)、シアン(C)、マゼンタ(M)、イエロー(Y)のインクを吐出する記録ヘッドである。これら異なる種類のインクを吐出する記録ヘッド101〜104が、図のようにy方向に沿って並ぶことにより、本実施形態の記録ヘッドが形成されている。
【0014】
図2は、記録ヘッド101のノズル配列を示す図である。図のように記録ヘッド101には、複数の吐出基板1011〜1013がノズル配列方向に沿って配置されている。各吐出基板にはそれぞれ10111〜10114、10121〜10124、10131〜10134からなるノズル列が設けられている。ここでは簡単のため説明を省略するが、それぞれの吐出基板1011〜1013にはノズル配列方向に4列のノズル列が配列している。そして、被記録媒体上の対応する領域に対して、記録ヘッド101〜104がそれぞれ異なる色のインクを吐出することで、カラー画像を記録する。なお、各吐出基板におけるノズル列の数は特に限定されない。
図1に戻る。記録媒体106は、搬送ローラ105(および他の不図示のローラ)がモータ(不図示)の駆動力によって回転することにより、図中y方向に搬送される。記録媒体106が搬送される間に、記録ヘッド101〜104それぞれの複数のノズルからは、記録媒体106の搬送速度に対応した周波数で、記録データに従った吐出動作が行われる。これにより、各色のドットが記録データに対応して所定の解像度で記録され、記録媒体106一頁分の画像が形成される。
【0015】
y方向における記録ヘッド101〜104よりも下流の位置には、記録ヘッド101〜104と並列する状態で所定のピッチで読み取り素子が配列したスキャナ107が配備されている。スキャナ107は、記録ヘッド101〜104で記録した画像を読み取り、RGBの多値データとして出力することができる。
【0016】
なお、本発明を適用可能な記録装置は、以上説明したフルラインタイプの装置に限られない。例えば、記録ヘッドやスキャナを記録媒体の搬送方向と交差する方向に走査して記録を行う、いわゆるシリアルタイプの記録装置にも本発明を適用することはできる。また、本実施形態はインク色毎に記録ヘッドを備える例を用いているが、1つの記録ヘッドから複数色のインクを吐出する形態であってもよい。さらに、1つの吐出基板上に複数色のインクに対応したノズル列を配列した形態であってもよい。
【0017】
図3は、本発明の一実施形態に係る記録システムを示すブロック図である。同図に示すように、この記録システムは、
図1に示したプリンタ100と、そのホスト装置としてのパーソナルコンピュータ(PC)200を有して構成される。
【0018】
ホストPC200は、主に以下の要素を有して構成される。CPU201は、記憶手段であるHDD203やRAM202に保持されているプログラムに従った処理を実行する。RAM202は、揮発性のストレージであり、プログラムやデータを一時的に保持する。HDD203は、不揮発性のストレージであり、同じくプログラムやデータを保持する。後述する量子化マスクもHDD203に記憶される。本実施形態では、データ転送I/F(インターフェース)204はプリンタ100との間におけるデータの送受信を制御する。このデータ送受信の接続方式としては、USB、IEEE1394、LAN等を用いることができる。キーボード・マウスI/F205は、キーボードやマウス等のHID(Human Interface Device)を制御するI/Fであり、ユーザは、このI/Fを介して入力を行うことができる。ディスプレイI/F206は、ディスプレイ(不図示)における表示を制御する。
【0019】
一方、プリンタ100は、主に以下の要素を有して構成される。CPU211は、ROM213やRAM212に保持されているプログラムに従い、後述する各実施形態の処理を実行する。RAM212は、揮発性のストレージであり、プログラムやデータを一時的に保持する。ROM213は不揮発性のストレージであり、後述する処理で使用するテーブルデータやプログラムを保持することができる。
【0020】
データ転送I/F214はホストPC200との間におけるデータの送受信を制御する。ヘッドコントローラ215は、
図1に示したそれぞれの記録ヘッド101〜104に対して記録データを供給するとともに、記録ヘッドの吐出動作を制御する。具体的には、ヘッドコントローラ215は、RAM212の所定のアドレスから制御パラメータと記録データを読み込む構成とすることができる。そして、CPU211が、制御パラメータと記録データをRAM212の上記所定のアドレスに書き込むと、ヘッドコントローラ215により処理が起動され、記録ヘッドからのインク吐出が行われる。スキャナコントローラ217は、
図1に示したスキャナ107の個々の読み取り素子を制御しつつ、これらから得られたRGBデータをCPU211に出力する。
【0021】
画像処理アクセラレータ216は、CPU211よりも高速に画像処理を実行可能なハードウェアである。具体的には、画像処理アクセラレータ216は、RAM212の所定のアドレスから画像処理に必要なパラメータとデータを読み込む構成とする。そして、CPU211が上記パラメータとデータをRAM212の上記所定のアドレスに書き込むと、画像処理アクセラレータ216が起動され、上記データに対し所定の画像処理が行われる。本実施形態では、後述される量子化マスクの判定処理をCPU211によるソフトウェアで行う。一方、後述するRGBのデータからCMYKデータへの変換、量子化処理によるドットデータの決定や、複数のドットデータ同士の合成等の記録の際の画像処理については、画像処理アクセラレータ216によるハードウェア処理で行う。また圧縮された受信データのデータ解凍処理を行うこともできる。なお、画像処理アクセラレータ216は必須な要素ではく、プリンタの仕様などに応じて、CPU211による処理のみで上記のテーブルパラメータの作成処理および画像処理を実行してもよい。
【0022】
(第1実施形態)
図4は、本発明の第1の実施形態にかかる、インクジェットプリントシステムが実行する画像処理のフローを示すフローチャートである。ここでホストPCおよびインクジェットプリンタは、
図3に示したホストPC200およびプリンタ100である。
【0023】
以下に
図4に示すフローチャートの説明を行う。まず、ホストPC200は以下のステップs2001〜ステップs2006の処理を行う。ステップs2001では、PDL(ページ記述言語)に基づき、黒文字・カラー画像を含んだ入力画像を描画する。ステップs2002では、入力画像から黒文字部・カラー画像部を分離し、黒文字画像、カラー画像を生成する。ステップs2003では、生成されたカラー画像に対して、低解像度化処理を行う。ステップs2004では、低解像度カラー画像を不可逆圧縮する。ステップs2005では、生成黒文字画像を可逆圧縮し、ステップs2006では、圧縮されたカラー画像・黒文字画像をプリンタ100に向けて送出する。
【0024】
上記処理で、ステップs2003〜ステップs2004の処理と、ステップs2005の処理は、ステップs2002から分岐してどちらか一方の処理だけを行うのではなく、両方の処理を行い、その後ステップs2006で両方の処理結果をまとめる形となる。よって、両方の処理順番には特に制限は無い。
【0025】
次に、プリンタ100は以下のステップs1001〜ステップs1009の処理を行う。
【0026】
ステップs1001では、圧縮されたカラー画像・黒文字画像をホストPC200からデータ転送I/F214を介して受信する。ステップs1002では、不可逆圧縮されたカラー画像をデータ解凍することにより展開して低解像度カラー画像を取得する。ステップs1003では、低解像度カラー画像を低解像度CMYKインク色データに変換する。ステップs1004では、低解像度CMYKインク色データを量子化処理し、CMYK印字データを生成する。ステップs1005では、可逆圧縮された黒文字画像を展開して黒文字画像を取得する。ステップs1006では、黒文字画像をKインク色データに変換する。ステップs1007では、Kインク色データを量子化処理し、K印字データを生成する。ステップs1008では、CMYK印字データとK印字データを合成して、合成CMYK印字データを生成する。ステップs1009では、合成印字データを記録ヘッドを用いて記録する。上記処理で、ステップs1002〜ステップs1004の処理と、ステップs1005〜ステップs1007の処理は、ステップs1001から分岐してどちらか一方の処理だけを行うのではない。両方の処理を行い、その後ステップs1008で両方の処理結果を合成する形となるので、両方の処理順番には特に制限は無い。
【0027】
次に、各ステップで行う処理の、好適な処理例の詳細説明を行う。
【0028】
図5はステップs2001でPDL(ページ記述言語)に基づき、黒文字・カラー画像を含んだ入力画像を描画する際の、好適な処理例である。ここでは一般的にPDLと記述しているが、PDLの実体としては以下の様な物等が有り、既存のいずれのPDLを用いても構わない。
【0029】
・アドビシステムズ社が提唱したPostScript、PDF(Portable Document Format)
・MicroSoft社が提唱したXPS(XML Paper Specification)
ステップs20011では、PDLで記述されたデータを受け取る。次いでステップs20012では、PDLを解釈して、オブジェクト描画命令を描画順に並べたリストを作成する。ステップs20013では、リスト中にオブジェクト描画命令がもしこれ以上無かった場合には処理を終了する。まだオブジェクト描画命令が有る場合にはステップs20014に進む。ステップs20014では、入力画像ページバッファに今回描画すべきオブジェクトを描画する。ここで、描画解像度としては、黒文字品位として最終的に欲しい解像度で描画する。
【0030】
また、描画する画像データは、本実施形態ではRGB各8bitとする。但し、8bitに限定される必要はなく、より大きなbit数、例えば16bitとする事でより高い階調表現を行っても構わない。
【0031】
ステップs20015では、今回描画するオブジェクトが黒文字オブジェクトであるか否かを判定する。黒文字オブジェクトで無かった場合にはステップs20016に進み、黒文字オブジェクトだった場合にはステップs20017に進む。ここで、黒文字オブジェクトであるかどうかの判定方法としては、好適には以下の条件を全て満たすかを判定する。
【0032】
判定条件1:描画するオブジェクトはビットマップ画像では無い
判定条件2:描画するオブジェクトの色がR=G=B=0である
一般的に、PDL中では写真画像はビットマップ画像で描画されるように記述され、文字オブジェクトはベクター描画命令や文字コード+フォント情報の形で記述されているので、上記判定条件で黒文字であるかを判定する事が可能である。
【0033】
ステップs20016では、今回描画した各画素の属性を「カラー画素」とセットし、次の描画オブジェクトの処理に移る為に、ステップs20013に進む。ステップs20017では、今回描画した各画素の属性を「黒文字画素」とセットし、次の描画オブジェクトの処理に移る為に、ステップs20013に進む。
【0034】
図7にホストPC200中のRAM202中に設定された入力画像ページバッファの一例を示す。入力画像ページバッファ2021は所定の横画素数×縦画素数分の領域を持ち、先頭画素は20211である。そして、各画素はRGB(Red、Green、Blue)値および属性値A(Attribute)から構成される。RGB値はモニタの表現色であるsRGB等の色空間座標中の色座標(R、G、B)を示すデータである。この場合、上記のステップs20014では、各画素のRGB領域に色の情報を設定し、ステップs20016もしくはステップs20017で属性値A領域を設定する事となる。
【0035】
図8に入力画像ページバッファの他の例を示す。入力画像ページバッファ2021と属性値バッファ2022aはいずれも所定の横画素数×縦画素数分の領域を持ち、先頭画素は20221および2022a1である。そして、入力画像ページバッファ2021の各画素はRGB値から構成され、属性値バッファ2021aの各画素は属性値Aから構成される。この場合、上記のステップs20014では、入力画像ページバッファ2022中の各画素のRGB領域に色の情報を設定し、ステップs20016もしくはステップs20017で属性値バッファ中の属性値A領域を設定する事となる。
【0036】
他にも、R、G、B、A、それぞれ個別のバッファを保持する等、様々な実施の形態が考えられるが、いずれの方式を用いても構わない。
図7のバッファ構成を取る場合には、アドレス管理等が1通りで済むので制御が簡略化出来、プログラムサイズが小さく出来る、という効果が得られる。また、
図8のバッファ構成を取る場合には、属性値を表現するbit数がRGB値のbit数よりも小さい場合には、属性値バッファサイズを小さくして使用メモリ量を少なくする事が出来る。
【0037】
図6はステップs2002で入力画像から黒文字部とカラー画像部とを分離し、黒文字画像、カラー画像を生成する際の、好適な処理例である。ステップs20021では、入力画像ページバッファの処理開始画素および終了画素を設定する。ステップs20022では、終了画素に達し、これ以上処理する画素が無いかを判定する。これ以上処理する画素が無い場合には処理を終了し、有る場合にはステップs20023に進む。ステップs20023では、処理対象の画素の属性値が「黒文字画素」であるかを判定する。非黒文字画素で有った場合にはステップs20024に進み、黒文字画素で有った場合には、ステップs20025に進む。ステップs20024では、入力画像ページバッファ中のカラー画素値をカラー画像ページバッファにコピーし、次の画素の処理を行う為にステップs20022に進む。
【0038】
ステップs20025では、入力画像ページバッファ中の黒文字画素値を黒文字画像ページバッファにコピーし、次の画素の処理を行う為にステップs20022に進む。
【0039】
図9にホストPC200中のRAM202中に設定されたカラー画像ページバッファおよび黒文字画像ページバッファの一例を示す。カラー画像ページバッファ2023および黒文字画像ページバッファ2023Tは入力画像ページバッファと同じ横画素数×縦画素数分の領域を持ち、先頭画素は20231および2023T1である。そして、カラー画像ページバッファ2023の各画素の階調値はRGB値で示され、黒文字画像ページバッファ2023Tの各画素は黒文字情報Tから構成される。この場合、上記のステップs20024では、カラー画像ページバッファ2022中の各画素のRGB領域に色の情報を設定し、ステップs20016もしくはステップs20017で黒文字画像ページバッファ2023T中の黒文字情報Tを設定する事となる。
【0040】
ここで、黒文字画像ページバッファ2023Tの黒文字情報Tは、RGB値と比べて少ないbit数とする事が出来る。ステップs20015での黒文字オブジェクト判定時に、「判定条件2:描画するオブジェクトの色がR=G=B=0である」という条件が有る。その為、ステップs20017で黒文字画像ページバッファ2023T中の黒文字情報Tを設定する場合、その画素の入力画像ページバッファ中のRGB値は必ず「R=G=B=0」である。よって、1bitで表現する事が可能である。こうする事で、黒文字画像ページバッファ2023Tのサイズを小さく抑える事が可能となる。
【0041】
ステップs2003では、生成カラー画像に対して、低解像度化処理を行う。
【0042】
図10中の2024はホストPC200中のRAM202中に設定された低解像度カラー画像ページバッファの一例を示す。低解像度カラー画像ページバッファ2024はカラー画像ページバッファ2023の半分の横画素数×縦画素数分の領域を持ち、先頭画素は20241である。そして、低解像度カラー画像ページバッファ2024の各画素はRGB値から構成される。
【0043】
上記のステップs2003では、カラー画像ページバッファ2023のカラー画像を縮小して、低解像度カラー画像ページバッファに低解像度カラー画像を生成する。
【0044】
低解像度カラー画像ページバッファ2024中の実線は縮小カラー画素の境界を表し、破線は対応する
図9のカラー画像ページバッファ中のカラー画素の境界を表す。本例では、縮小率を縦・横共に1/2としているので、カラー画像ページバッファ中の2×2画素が、低解像度カラー画像ページバッファの1画素に対応する事となる。
【0045】
具体的な縮小処理方法例としては、
図9中のカラー画像ページバッファの先頭画素20231および右、下、右下の4画素の画素値の平均値を算出し、
図10中の低解像度カラー画像ページバッファの先頭画素20241の画素値としている。同様に、全ての低解像度カラー画像ページバッファの画素について、対応するカラー画像ページバッファの画素を用いて縮小処理を行う。
【0046】
ここで縮小処理時に、縮小率としては整数分の1とする事が好ましい。なぜなら、縮小処理時に整数分の1でない場合には、モアレの様な周期性のノイズが生じてしまうからである。更には、後述のプリンタ100中のステップs1004で行う拡大処理時に整数倍の拡大処理で実現出来、処理がシンプルでかつ最終的な画質的にも好ましい結果が得られるからである。また、更に好ましくは、縮小率2のべき乗分の1とする事が好ましい。こうする事で平均値の算出時に除算を用いる事無く、ビットシフト処理による算出で高速に処理を行う事が出来る。
ステップs2004では、低解像度カラー画像を不可逆圧縮する。
【0047】
本例ではJPEG(Joint Picture Expert Group)で規定されている圧縮方法を用いたが、圧縮方法としては既存の如何なる方法を用いても構わない。不可逆圧縮を選択している理由は、元々黒文字と比べて、ディテールの劣化が目立たない事があげられる。また、ラインヘッドを用いたプリンタでのフルカラー記録の場合には、色間の記録位置ズレが生じてしまうケースが有り、データとしての正確さを追求しても、最終的な画像品位が維持されにくい場合があるからである。
【0048】
また、本発明において必ず圧縮しなければいけない訳では無い。何故なら、既に画素数を縦・横それぞれ1/2に縮小しているので、少なくともデータ量としては1/4になっている。その為、プリントシステム全体として、プリント速度と転送速度のバランスによっては、これ以上の圧縮を必要としないケースもある。また、縦・横それぞれ1/3に縮小した場合にはデータ量としては1/9、縦・横それぞれ1/4に縮小した場合にはデータ量としては1/16と更に小さくなる。
ステップs2005では、生成黒文字画像を可逆圧縮する。
【0049】
本例ではRL(Run Length)圧縮方法を用いたが、圧縮方法としては既存の如何なる方法を用いても構わない。
【0050】
可逆圧縮を選択している理由は、元々カフルカラー画像と比べて、ディテールの再現性が求められる事が一つ。また、黒文字記録の場合、ラインヘッドを用いたプリンタでの記録であっても、色間の記録位置ズレの影響が生じない為、データとしての正確さを追求する事で最終的な画像品位が維持され易いからである。
【0051】
また、ステップs2004同様、本発明において必ず圧縮しなければいけない訳では無い。何故なら、黒文字画像ページバッファ2023Tを構成する各画素の黒文字情報Tを1bitとする事で、少なくともデータ量としてはRGBデータと比べ1/24になっている。その為、プリントシステム全体として、プリント速度と転送速度のバランスによっては、これ以上の圧縮を必要としないケースもある。
【0052】
ステップs2006では、圧縮されたカラー画像・黒文字画像をプリンタ100に向けて送出する。
【0053】
上記の様に、低解像度カラー画像と縮小を行わない黒文字部を用いるので、黒文字品位を維持したまま大幅に転送データ量を低減出来る。圧縮方法としても、カラー画像に可逆圧縮、黒文字部に不可逆圧縮を適用すれば、黒文字品位を維持したまま更に転送データ量を低減出来る。このように、カラー画像と黒文字部で別データとなっているので、更にそれぞれ好適な圧縮方法を適宜適用する事が可能である。
【0054】
ステップs1001では、圧縮されたカラー画像・黒文字画像をホストPC200から受信する。
【0055】
ここで受信された、圧縮された低解像度カラー画像は、ステップs1002で処理される。また、圧縮された黒文字画像はステップs1005で処理される。もしホストPC200で圧縮処理を施さなかった場合には、低解像度カラー画像はステップs1002をスキップしてステップs1003へ、また黒文字画像はステップs1005をスキップしてs1006へと送られて処理が行われる事となる。
【0056】
ステップs1002では、不可逆圧縮されたカラー画像を展開して低解像度カラー画像を生成する。
【0057】
ここでの展開方法はホストPC200のステップs2004で行われた不可逆圧縮方法に対応する。本例ではJPEG圧縮されたデータをデコードする。デコードされたデータは
図10に記載の低解像度カラー画像バッファ2024と同じフォーマットで、プリンタ100中のRAM212中の低解像度カラー画像バッファ(不図示)に保持される。
【0058】
ステップs1003では、低解像度カラー画像を低解像度CMYKインク色データに変換する。
【0059】
低解像度カラー画像の画素値であるRGB値は、モニタの表現色であるsRGB等の色空間座標中の色座標(R、G、B)を示すデータである。これをマトリクス演算処理や三次元LUTを用いた処理等の既知の手法によって、プリンタのインク色濃度データ(CMYK)に変換する。本実施形態のプリンタ100はブラック(K)、シアン(C)、マゼンタ(M)、イエロー(Y)のインクを用いることから、RGB信号の画像データは、K、C、M、Yの各8ビットの色信号で階調値が表現される画像データに変換される。また、インクの数はK、C、M、Yの4色を例に挙げたが、画質向上の為に、濃度の薄いライトシアン(Lc)やライトマゼンタ(Lm)やグレー(Gy)のインクなど、その他のインクを追加してあってもよい。
【0060】
図11に、プリンタ100中のRAM212中に設定されたカラー画像部用の低解像度CMYKインク色濃度バッファおよび黒文字部用のKインク色バッファの一例を示す。カラー画像部用の低解像度CMYKインク色濃度バッファは以下の4つのインク色バッファから構成される。
【0061】
・低解像度Cインク色濃度バッファ2121C・先頭画素は2121C1・各画素はCインク色濃度値
・低解像度Mインク色濃度バッファ2121M・先頭画素は2121M1・各画素はMインク色濃度値
・低解像度Yインク色濃度バッファ2121Y・先頭画素は2121Y1・各画素はYインク色濃度値
・低解像度Kインク色濃度バッファ2121K1・先頭画素は2121K11・各画素はK1インク色濃度値
上記4つのインク色バッファは、いずれも低解像度カラー画像ページバッファ2024と同じ横画素数×縦画素数分の領域を持ち、各画素は8bitの多値情報である。画素としては1対1に対応している。よって、例えば
図10に記載の低解像度カラー画像バッファ2024の先頭画素20241のRGBがステップs1003でインク色に変換され、変換結果が
図11の2121C1、2121M1、2121Y1、2121K11に格納される。
【0062】
ステップs1004では、低解像度CMYKインク色データを量子化処理し、イメージの属性の画像を形成するためのドットの形成の有無を示す第1のドットデータとしてのCMYK印字データを生成する。
【0063】
量子化手法としては、誤差拡散法やディザ法などを用いることができる。
【0064】
図12に、プリンタ100中のRAM212中に設定されたカラー画像部用のCMYK印字データバッファおよび黒文字部用のK印字データバッファの一例を示す。カラー画像部用の低解像度CMYKインク色濃度バッファは以下の4つのインク色バッファから構成される。
【0065】
・C印字データバッファ 2122C 先頭画素は2122C1 各画素はCドットOn/Off情報
・M印字データバッファ 2122M 先頭画素は2122M1 各画素はMインクOn/Off情報
・Y印字データバッファ 2122Y 先頭画素は2122Y1 各画素はYインクOn/Off情報
・K印字データバッファ 2122K1 先頭画素は2122K11 各画素はKインクOn/Off情報
上記4つの印字データバッファは、本実施形態ではいずれも入力画像ページバッファ2021と同じ横画素数×縦画素数分の領域を持つ。また、この印字データバッファの1画素が、記録ノズルによる吐出のOn/Offに対応している。また、低解像度CMYKインク色データバッファと比べ、横・縦いずれの画素数も2倍となっている。つまり、本実形態ではステップs1004で各インク色データを量子化する際に、
図10、11中の一画素を4分割して4つの画素対応のエリアとし、それぞれの画素対応のエリア毎のドットのON,OFFを定めている。ここで、量子化の結果に応じて低解像度CMYKインク色データの1画素に割り当てることができるドットの最大個数は、後述する黒文字用のKインク色データの1画素に割り当てることができるドットの最大個数より多い。このように低解像度CMYKインク色データと黒文字用のKインク色データとで各画素当たりのドット数を異ならせることにより、量子化処理を経た後の黒文字画像用のドットデータとカラー画像用のドットデータとによる印字の解像度を近付けている。低解像度CMYKインク色データの1画素に割り当てるドットの最大の個数は、ホストPC200中で処理されるステップs2003での低解像度化処理時のカラー画像の縮小率に対応して決定すればよい。例えばs1004とs1007の量子化処理を経た後の黒文字画像用のドットデータとカラー画像用のドットデータとによる印字の解像度が等しくなるように決定することができる。
【0066】
図13に本実施例における量子化例を示す。
図13(a)がステップs1004で各インク色データを量子化する際の量子化パターン例である。本実施例では全部のインク色で常に同じ量子化パターンを用いているが、画質の向上の為に、インク色毎に異なるパターンとしたり、画素位置毎に異なる量子化パターンとなる様に制御したりしても良い。
【0067】
ステップs1005では、可逆圧縮された黒文字画像を展開して黒文字画像を生成する。ここでの展開方法はホストPC200のステップs2005で行われた可逆圧縮方法に対応する。本例ではRL圧縮されたデータをデコードする。デコードされたデータは
図9に記載の黒文字画像バッファ2023Tと同じフォーマットで、プリンタ100中のRAM212中の低解像度カラー画像バッファ(不図示)に保持される。
【0068】
ステップs1006では、黒文字画像をKインク色データに変換する。
黒文字画像画素値であるTは、モニタの表現色であるsRGB等の色空間座標中の色座標(R=0、G=0、B=0)を示すデータである。これをマトリクス演算処理や一次元LUTを用いた処理等の既知の手法によって、プリンタのKインク色濃度データ(K)に変換する。また、インクの数はKの1色を例に挙げたが、画質向上の為に、濃度の薄いグレー(Gy)のインクなど、その他のインクを追加してあってもよい。
【0069】
また、
図11中の黒文字部用のKインクページバッファ2121K2は入力画像ページバッファと同じ横画素数×縦画素数分の領域を持ち、先頭画素は2121K21である。そして、黒文字画像ページバッファ2023Tの各画素は黒インク値K2から構成される。画素としては1対1に対応しているので、例えば
図9に記載の黒文字画像ページバッファ2023Tの先頭画素の2023T1の黒文字情報Tが上記のステップs1006でKインク色データに変換され、変換結果が
図11の2121K21に格納される。ここで、黒文字情報Tは2値であるが、変換後のKインク色データは8bitの多値データである。こうして黒文字部のKインクの濃度を多値で制御する事で、記録メディアに応じた適切なインクの記録量を制御する事が可能となる。
【0070】
ステップs1007では、Kインク色データを量子化処理によって低階調化し、K印字データを生成する。ステップs1004と同様、量子化手法としては、誤差拡散やディザなどを利用可能である。本実施形態においては但し、より好ましくは量子化手法としてはs1004とs1007のいずれも誤差拡散手法よりはディザ手法の方が好ましい。何故なら、まず誤差拡散は量子化の結果として生ずる量子化誤差を周辺の画素に振り撒く事となる。しかし、本実施例の様に、カラー画像部と黒文字画像部を個別に量子化する場合には、カラー画像部と黒文字画像部が交互に繰り返す画像領域において、誤差の伝搬が良好に行われない為である。
【0071】
図12中の黒文字部用のK印字データバッファ2122K2は、黒文字部用のKインクページバッファ2121K2と同じ横画素数×縦画素数分の領域を持ち、先頭画素は2122K21である。また、この印字データバッファの1画素が、記録ノズルによる吐出のOn/Offに対応している。これは、本実施例ではステップs1006で各インク色データを量子化する際に、1×1画素の2レベルに量子化しているからである。
【0072】
図13(b)がステップs1007でKインク色データを量子化する際の量子化パターン例である。
【0073】
また、本実施例では、ホストPC200中のステップs2003での低解像度化が1/2×1/2、プリンタ100中のステップs1004でのカラー画像部の拡大率が2×2、ステップs1006での黒文字部の拡大率が1×1となっている。
【0074】
しかし、必ずしも低解像度化の倍率と拡大率とが逆数の関係になっている必要はない。例えば、低解像度化が1/2×1/2、プリンタ100中のステップs1004でのカラー画像部の拡大率が4×4、ステップs1007での黒文字部の拡大率が2×2となっていても構わない。つまり、縮小時のカラー画像部・黒文字部の縮小比率と、拡大時のカラー画像部・黒文字部の拡大比率と、が逆数の関係となっていれば良い。
【0075】
ステップs1008では、ステップs1004で生成されたCMYK印字データとステップs1007で生成されたK印字データを合成して、プリンタが印字に用いる画像形成データである合成CMYK印字データを生成する。
【0076】
合成CMYK印字データバッファは、
図12中のカラー画像部用のCMYK印字データバッファと同じ構成である。具体的な処理例としては、
図12中のカラー画像用のK印字データバッファ中のK印字データと、黒文字用のK印字データバッファ中のK印字データの論理和を算出し、合成CMYK印字データのK印字データを作成する。合成CMYK印字データ中のC、M、Y各印字データは、ステップs1004で生成されたCMYK印字データ中のC、M、Y各印字データと同じである。
【0077】
量子化によって得られた2値データ(ドットデータ)は、画素位置毎に、どのインクを吐出するかを記録されたものである。写真部と文字部が排他的に分かれている場合には、写真部でインクを吐出する画素位置では、文字部のインクは吐出しない。逆に、文字部のインクを吐出する画素位置では、写真部のインクは吐出しない。そのため、ステップs1008では、写真部と文字部が排他的に分かれている場合には、2つの量子化データの論理和を算出する形では無く、単純加算することでも合成データを作成することができる。
【0078】
ステップs1009では、合成印字データを記録ヘッドを用いて記録する。
【0079】
プリンタ100は、量子化によって得られた2値データ(ドットデータ)に基づいて、記録ヘッドを駆動し記録媒体に各色のインクを吐出して記録を行う。本実施形態において記録は、
図1に示した記録ヘッド101〜104を備えた記録機構によって行われる。
【0080】
また、本実施の形態では、「黒文字画素」か「カラー画素」という判定を2つの判定条件で判定し、それぞれを異なる解像度でデータ処理を行ったが、本発明の適用範囲は上記組み合わせに限る物では無く、他の様々な対象・判定条件で行っても構わない。
【0081】
例えば、「単色インク色画素」と「複数インク色画素」とを異なる解像度でデータ処理する事で、単色のインク色で形成される文字に関しては色ズレの危険無く高解像度で画像形成可能である。この場合、判定条件の例は具体的には、
判定条件1:描画するオブジェクトはビットマップ画像では無い
判定条件2:描画するオブジェクトの色がR,G,Bのうち1つが0であり、残る二つが255である。
【0082】
ここでの前提条件としては、R=0、G=B=255の場合にはシアンインクのみ、G=0、R=B=255の場合にはマゼンタインクのみ、B=0、R=G=255の場合にはイエローインクのみで画像形成する事である。
【0083】
この場合には、それぞれの単色インク文字データに対して、黒文字同様の処理を適用して、カラー画像データと合成して出力する事となる。こうする事で黒文字だけでなく、単色インク文字についても同様の高精細文字が実現出来る。
【0084】
他にも、RGB値で判定せず、RGB値を実際に印刷するCMYK値に変換して、インク量を用いて判定しても良い。
【0085】
描画するオブジェクトがビットマップ画像か否かを文字判定条件の一つとして用いたが、この判定条件についても、これに限る必要は無く、以下の様な条件を用いても構わない。
【0086】
・描画オブジェクトが文字オブジェクトである
・描画オブジェクトがベクター描画オブジェクトである
・描画オブジェクトが1bit2値のビットマップオブジェクトである
・PDFフォーマット中のレンダリングインテントがColorimetricである
以上の様にする事で、黒文字の記録品位を維持しつつ、転送データ量の低減と、プリンタ側での処理量の低減の両方を同時に実現する事が出来る。
【0087】
(第2実施形態)
第1の実施形態では、まずホストPC200中のステップs2001でPDL(ページ記述言語)に基づき、黒文字・カラー画像を含んだ入力画像を描画する。その後、ステップs2002で黒文字部・カラー画像部を分離して、黒文字画像、カラー画像を生成する。
【0088】
これはフルカラーの描画を黒文字解像度と同じ解像度で行う為、黒文字品位を高解像度化した場合に描画処理時間がその分長くなってしまっていた。
【0089】
そこで、本実施の形態では、ステップs2001〜ステップs2002を纏めて、「最初からカラー画像については低解像度で描画し、黒文字画像については高解像度で描画する」という方法で高速に描画を行う。
【0090】
図14は本実施の形態における、黒文字・カラー画像を含んだ入力画像を描画し、黒文字部・カラー画像部を分離し、黒文字画像、カラー画像を生成する好適な処理例描画処理のフローチャートである。本ステップs2007は、
図4中のステップs2001〜ステップs2002部分に相当する。
【0091】
ステップs20071では、PDLで記述されたデータを受け取る。
ステップs20072では、PDLを解釈して、オブジェクト描画命令を描画順に並べたリストを作成する。
ステップs20073では、リスト中にオブジェクト描画命令がもしこれ以上無かった場合には処理を終了する。まだオブジェクト描画命令が有る場合にはステップs20014に進む。
【0092】
ステップs20074では、今回描画するオブジェクトが黒文字オブジェクトであるか否かを判定する。黒文字オブジェクトで無かった場合にはステップs20076に進み、黒文字オブジェクトだった場合にはステップs20075に進む。
ステップs20075では、当該黒文字オブジェクトが、他のカラーオブジェクトと描画領域が重複しているか否かを確認する。重複している場合には、ステップs20076に進み、重複していない場合にはステップs20077に進む。
ステップs20076では、当該オブジェクトをカラー画像ページバッファに、低解像度で描画する。その後ステップs20073に戻る。
ステップs20077では、当該オブジェクトを黒文字画像ページバッファに、高解像度で描画する。この際、メモリ使用量を低減する為に、描画時に1bit情報にして描画しても良い。その後ステップs20073に戻る。
【0093】
図15は本実施の形態における、PDL処理例を説明する図である。カンバス2025中にカラー画像オブジェクト20251と黒文字オブジェクト20252、20253が存在している。この場合、本実施の形態の場合、黒文字オブジェクト20252はカラー画像オブジェクト20251と描画領域が重複しているので、カラー画像ページバッファに低解像度で描画する。そして、黒文字オブジェクト20253はカラー画像オブジェクト20251と描画領域が重複していないので、黒文字画像ページバッファに高解像度で描画される。
【0094】
以上の様に行う事で、カラー画像ページバッファを作成する為に、高解像度の描画をしてから縮小する、という作業をせずに、黒文字の品位を向上させる事が可能となる。
【0095】
ここまで、黒文字についてはR=G=B=0に限定して説明を行ってきたが、本発明の効果はここに限定される物では無く、黒文字についてはR=G=Bという条件で判定しても良い。この場合には黒文字画像バッファの画素値としては8bitデータとなる。こうする事で、グレー文字に関しても高解像度記録を実現しつつ、RGB24bitよりデータを1/3に低減する事が可能となる。
【0096】
他にも、黒文字データとして、複数bitを用いて特定の階調値のみに限定した高解像度記録を行う事も可能である。
【0097】
また、Kインクだけでなく、他の特定のインク色について高解像度記録を行いたい場合にも、本発明を適用する事は可能である。
【0098】
また、多値データの殆どを8bitで記載したが、より高い階調表現を行いたい場合には、それよりも大きなbit数の多値データを取り扱っても良い。
【0099】
以上で説明した本発明の実施形態では、プリント用データの生成の処理、特にカラー画像の処理の負荷を抑えることが出来る。