図1は、本発明の実施例1に係るホストPCの機能構成を示すブロック図である。
本実施例のホストPC10には、図1に示されるように、印刷装置としてのプリンタ11が接続される。ホストPC10は、モニタ(後述)に表示されたカラー画像をプリンタ11で印刷すべく、カラー画像処理を実施する。
ホストPC10は、画像処理装置として、図1に示されるように、アプリケーション部12、OS(Operating System)部13及びプリンタドライバ部14を含んで構成される。
また、ホストPC10には、図示せぬモニタが接続される。モニタは、表示装置として、幾何図形や文字等の図形を含むカラー画像を表示する。
アプリケーション部12は、モニタに表示されたカラー画像の印刷要求を、OS部13に入力する。
OS部13は、図1に示されるように、スプールファイル生成部15及びビットマップイメージ変換部16を備えている。
スプールファイル生成部15は、アプリケーション部12からの印刷要求に応じて、描画すべき図形の形状や色等を指定するためのデータを、所定の形式に基づき記述して、文書データとしてのスプールファイルを生成する。また、スプールファイル生成部15は、入力部として、生成したスプールファイルをプリンタドライバ部14へ入力する。
本実施例では、スプールファイルの記述形式の例として、Microsoft社のXPS(XML Paper Specification)を採用する。XPSは、マークアップ言語の一つであるXML(eXtensible Markup Language)を用いて、ページを構成する各要素の定義を行うページ記述言語である。周知のように、XMLは、複数の要素と属性とを組み合わせることにより、階層的な構造を記述可能なマークアップ言語であり、XPSにおいて、要素が描画命令に対応し、属性が要素、即ち描画命令のパラメータに対応する。
図2は、スプールファイルの一例を示す図である。
XPSで記述されたスプールファイルには、通常、ページの内容が記述されるマークアップデータや、フォントやイメージ等を指定するためのリソースデータ、各ページ間の関係が記述されるメタデータ等、複数のファイルがパッケージングされる。図2に示されるスプールファイル30は、これらのファイルのうち、図形に関する記述が含まれるマークアップデータに対応している。本実施例では、このマークアップデータを、スプールファイルと同義のものとして、以降、参照することとする。
図2(a)に示されるスプールファイル30は、図形の描画命令に対応する16の要素31−1〜16を含んで構成される。
要素31−1〜5及び要素31−12〜16は、円形や矩形等の幾何図形の描画命令に対応するPath要素である。各Path要素には、幾何図形の形状を指定するためのパラメータであるData属性が含まれる。また、要素31−6〜11は、文字の描画命令を示すGlyphs要素である。
尚、本実施例では、幾何図形及び文字を総称して、図形と記す。
各要素31−1〜16には、また、図形の色を指定するためのパラメータであるFill属性が含まれる。本実施例では、スプールファイル生成部15は、第一のカラー形式として、sRGB(standard RGB)形式を用いて、図形の色の指定を行う。ここで、sRGB形式は、光の三原色であるR(Red)、G(Green)及びB(Blue)の3成分の値の組み合わせにより色を表現するRGB形式の規格の一つである。
XPSで記述されるスプールファイルでは、このsRGB形式を利用して、R/G/Bの各成分が0〜255の範囲の値で表される。即ち、要素内の属性名を示す文字列「Fill」に続く記号列「”#RRGGBB”」により、該要素に対応する図形の色が指定される。ここで、この記号列に含まれる「RR」、「GG」、「BB」は、それぞれ、2桁の16進数を表す英数字であり、図形の色の第一カラー情報としてのR成分値、G成分値、B成分値を指定する。
例えば、図2に示されるスプールファイル30には、要素31−1として、記号列「<Path Fill=”#FF0000” Data=”M10,90 a 60,60 0 1 1 0,1”/>」が含まれている。この要素31−1では、Data属性を示す記号列「Data=”M10,90 a 60,60 0 1 1 0,1”」により、図形の形状が指定され、Fill属性に対応する記号列「Fill=”#FF0000”」により、図形の色が指定される。このFill属性で指定されるR成分値、G成分値、B成分値は、それぞれ、R=255、G=0、B=0である。
図3は、スプールファイルの描画結果を示す図である。
この描画結果32は、図2に示されるスプールファイル30に基づき描画され、スプールファイル30内の各要素31−1〜16に対応する16の図形33−1〜16を含む。
例えば、描画結果32の図形33−1は、スプールファイル30内の要素31−1に対応し、円形の幾何図形からなる図形である。また、描画結果32の図形33−6は、要素31−6に対応し、複数の文字からなる図形である。
ビットマップイメージ変換部16は、変換生成部として、第一のカラー形式に基づく第一合成カラー情報としてのビットマップイメージに対して、カラー形式の変換、即ち色変換を施して、第二のカラー形式に基づく第二合成カラー情報としてのビットマップイメージを生成する。
本実施例では、上記したように、第一のカラー形式としてsRGB形式が採用される。sRGB形式に基づき生成されたビットマップイメージを、本実施例では、RGBビットマップイメージと記す。
また、本実施例では、第二のカラー形式として、プリンタ11のカラー形式に対応するCMYK形式が採用される。ここで、CMYK形式は、プリンタ11で使用される各トナーに対応する4成分の値の組み合わせにより色を表現する形式である。ビットマップイメージ変換部16により、CMYK形式に色変換して生成されるビットマップイメージを、CMYKビットマップイメージと記す。
プリンタドライバ部14は、図1に示されるように、受信部17、構文解析部18、形状データテーブル19、カラー値管理部20、編集部21、ラスタライズ部22及び送信部23を備えている。
受信部17は、OS部13から入力されたスプールファイルを受信する。受信されたスプールファイルは、構文解析部18へ送られる。
構文解析部18は、解析検出部として、受信部17から受け取ったスプールファイルの構文を解析して、各図形に関する情報を含む図形情報から、図形の色を定義するカラーデータと、形状を定義する形状情報としての形状データとを検出すると共に、対応する図形を識別するための図形番号を付与する。
本実施例では、構文解析部18は、スプールファイルに含まれる各要素を、図形情報として検出する。そして、構文解析部18は、スプールファイルにおける要素の出現順序に基づいて、図形番号の付与を行う。例えば、要素の出現順序がN番目であった場合、構文解析部18は、該要素から検出される各データに、図形番号「図形N」を付与する。また、構文解析部18は、該要素に含まれるFill属性を、カラーデータとして検出すると共に、該要素の要素名と、該要素に含まれるFill属性を除く全属性とを、形状データとして検出する。
例えば、構文解析部18は、スプールファイル30(図2)から要素31−1を検出して、図形番号「図形1」を付与する。また、該要素31−1から、図形33−1(図3)に対応するカラーデータとして、「Fill=”#FF0000”」を検出する。更に、構文解析部18は、該要素31−1から、図形33−1に対応する形状データとして、「Path Data=”M10,90 a 60,60 0 1 1 0,1”」を検出する。
また、構文解析部18は、スプールファイルの構文解析処理が完了すると、編集部21に編集指示を行う。
形状データテーブル19は、形状情報記憶部として、構文解析部18から入力された図形番号及び形状データを記憶する。
図4は、形状データテーブルの構成を示す説明図である。
形状データテーブル19には、図4に示されるように、スプールファイル30(図2)から検出された形状データが、図形番号に対応して記憶されている。
例えば、形状データテーブル19には、図形番号「図形1」に対応して、形状データ「Path Data=”M10,90 a 60,60 0 1 1 0,1”」が記憶されている。
カラー値管理部20は、各図形の色を示すカラー値を管理する機能を有し、図1に示されるように、カラー値登録部24、RGBカラー値テーブル25、ビットマップイメージ生成部26、CMYKカラー値テーブル27、テーブル生成部28及びカラー値取得部29を備えている。
カラー値登録部24は、構文解析部18から図形番号及びカラーデータの入力を受けると、該カラーデータから、第一カラー情報としてのRGBカラー値を取得する。カラー値登録部24は、R成分値、G成分値及びB成分値からなるRGBカラー値を取得して、図形番号と共に、RGBカラー値テーブル25に登録する。
例えば、図形番号「図形1」及びカラーデータ「Fill=”#FF0000”」が入力された場合、カラー値登録部24は、該カラーデータを分析し、R=255、G=0及びB=0からなるRGBカラー値を取得する。ここで、R、G、Bは、それぞれ、カラーデータであるFill属性により指定されるRGBカラー値のR成分値、G成分値、B成分値である。カラー値登録部24は、図形番号「図形1」に対応させて、取得したRGBカラー値をRGBカラー値テーブル25に登録する。
RGBカラー値テーブル25は、第一カラー情報記憶部としての機能を有し、第一カラー情報としてのRGBカラー値を、図形番号と共に記憶する。
図5は、RGBカラー値テーブルの構成を示す説明図である。
RGBカラー値テーブル25には、図5に示されるように、スプールファイル30(図2)内のFill属性に基づき取得されたRGBカラー値が、図形番号に対応して記憶されている。
例えば、図5のRGBカラー値テーブル25には、図形番号「図形1」に対応して、R成分値、G成分値及びB成分値からなるRGBカラー値「R=255,G=0,B=0」が記憶されている。
ビットマップイメージ生成部26は、RGBカラー値テーブル25に登録された各RGBカラー値に基づいて、第一合成カラー情報としてのRGBビットマップイメージを生成する。ビットマップイメージ生成部26は、例えば、図5に示されるRGBカラー値テーブル25に基づいて、16ピクセルからなるRGBビットマップイメージを生成する。ここで、RGBビットマップイメージは、各ピクセルが、対応する図形番号のRGBカラー値を有するビットマップイメージである。本実施例では、図形番号「図形N」に対応するピクセルのピクセル番号を「ピクセルN」と記す。
CMYKカラー値テーブル27は、第二カラー情報記憶部としての機能を有し、プリンタ11で印字可能な第二カラー情報としてのCMYKカラー値を、図形番号と共に記憶する。CMYKカラー値テーブル27に記憶される各CMYKカラー値は、それぞれ、C成分値、M成分値、Y成分値及びK成分値からなる。
図6は、CMYKカラー値テーブルの構成を示す説明図である。
例えば、CMYKカラー値テーブル27には、図形番号「図形1」に対応して、C成分値「1」、M成分値「253」、Y成分値「254」及びK成分値「0」からなるCMYKカラー値「C=1,M=253,Y=254,K=0」が記憶されている。
テーブル生成部28は、取得部として、複数のピクセルからなるCMYKビットマップイメージから、各ピクセルが有するCMYKカラー値を取得して、CMYKカラー値テーブル27を生成する。
カラー値取得部29は、取得部として、入力された図形番号に基づいて、CMYKカラー値テーブル27を検索し、対応するCMYKカラー値を取得して出力する。例えば、図形番号「図形1」が入力されると、カラー値取得部29は、CMYKカラー値テーブル27(図6)から、図形番号「図形1」に対応するCMYKカラー値「C=1,M=253,Y=254,K=0」を取得して出力する。
編集部21は、構文解析部18からの編集指示に基づいて、カラー値管理部20に色変換指示を行う。また編集部21は、図形番号に基づいて、形状データテーブル19から形状データを取得すると共に、カラー値管理部20からCMYKカラー値を取得して、形状データ及びCMYKカラー値をラスタライズ部22に入力する。
ラスタライズ部22は、編集部21から入力された各形状データ及びCMYKカラー値に基づいて、ラスタライズデータを生成し、送信部23へ送る。
送信部23は、出力部として、ラスタライズ部22からラスタライズデータを受け取って、該ラスタライスデータを印刷要求と共にプリンタ11へ送信する。
プリンタ11は、シアン(C)、マゼンタ(M)、イエロー(Y)及びブラック(K)の4色のトナーを用いてカラー印刷を行う印刷装置であり、ホストPC10から印刷要求及びラスタライズデータを受信して、該ラスタライズデータに基づく印刷を行う。
次に、本実施例のホストPC10の動作について、説明する。
ここでは、図3に示される描画結果32をプリンタ11により印刷すべく、カラー画像処理が実行される場合の流れについて、図7に沿って説明する。
図7は、本発明に係るホストPCのカラー画像処理動作を示すフローチャートである。
アプリケーション部12からOS部13に印刷要求が入力される(ステップS101)と、OS部13のスプールファイル生成部15が、スプールファイルを生成する(ステップS102)。スプールファイル生成部15は、図2に示されるスプールファイル30を生成し、プリンタドライバ部14へ送る。
そして、プリンタドライバ部14の受信部17が、OS部13からスプールファイル30を受信して、構文解析部18へ送る(ステップS103)。
前述したように、スプールファイル生成部15により生成されたスプールファイル30は、XPSで記述され、各図形の色は、モニタでの表示に適したRGB形式で指定されている。一方、一般的なプリンタは、CMYKの4色のトナーを用いて、カラー印刷を行う。したがって、モニタに表示されたカラー画像を、プリンタ11により印刷するためには、RGB形式に基づき指定されたRGBカラー値を、CMYK形式のCMYKカラー値に色変換する必要がある。
そこで、まず、構文解析部18が、スプールファイル30の構文解析処理を行う(ステップS104)。この構文解析処理の詳細については、図8を用いて説明する。
図8は、本発明に係るホストPCの実施例1における構文解析動作を示すフローチャートである。
構文解析部18は、スプールファイル30(図2)内の記号を順に読み込んで解析し、各図形33−1〜16(図3)に対応する図形情報を探索する。そして、スプールファイル30に含まれる各要素31−1〜16を、図形情報として、出現順に一つずつ選択する(ステップS201)。構文解析部18は、まず、図形33−1に対応する要素31−1、即ち「<Path Fill=”#FF0000” Data=”M10,90 a 60,60 0 1 1 0,1”/>」を、一番目の図形情報として選択する。
構文解析部18は、選択した図形情報に対して、選択順に基づき図形番号を付与する(ステップS202)。構文解析部18は、要素31−1に対応する図形情報に、図形番号「図形1」を付与する。
次に、構文解析部18は、選択された図形情報から、カラーデータを検出する(ステップS203)。構文解析部18は、図形情報に含まれるFill属性「Fill=”#FF0000”」を、カラーデータとして検出し、図形番号「図形1」及びカラーデータ「Fill=”#FF0000”」を、カラー値管理部20のカラー値登録部24に入力する。
続いて、カラー値登録部24が、入力されたカラーデータから、RGBカラー値を取得する(ステップS204)。カラー値登録部24は、カラーデータ「Fill=”#FF0000”」を分析し、R成分値「255」、G成分値「0」及びB成分値「0」からなるRGBカラー値「R=255,G=0,B=0」を取得する。
そして、カラー値登録部24は、取得したRGBカラー値を、入力された図形番号「図形1」と共に、RGBカラー値テーブル25に登録する(ステップS205)。RGBカラー値テーブル25には、図5に示されるように、図形番号「図形1」に対応して、RGBカラー値「R=255,G=0,B=0」が記憶される。
カラー値登録部24は、RGBカラー値の登録が完了すると、構文解析部18に登録完了を通知する。
続いて、構文解析部18が、選択された図形情報から、形状データを検出する(ステップS206)。構文解析部18は、図形情報からカラーデータを除く部分「Path Data=”M10,90 a 60,60 0 1 1 0,1”」を、形状データとして検出する。
そして、構文解析部18は、検出した形状データを、図形番号「図形1」と共に、形状データテーブル19に登録する(ステップS207)。形状データテーブル19には、図4に示されるように、図形番号「図形1」に対応して、形状データ「Path Data=”M10,90 a 60,60 0 1 1 0,1”」が記憶される。
続いて、構文解析部18は、スプールファイル30に未選択の図形情報が有るか否かを判断する(ステップS208)。構文解析部18は、未選択の図形情報が有ると判断する(ステップS208)と、それらの図形情報を出現順に選択する(ステップS201)。そして、ホストPC10において、選択された図形情報に対し、ステップS202からステップS207までの処理が実行される。
構文解析部18が、図形33−16(図3)に対応する要素31−16(図2)を、図形情報として選択し(ステップS201)、図形番号「図形16」を付与した(ステップS202)後、ステップS203からステップS207までの処理が実行されると、構文解析部18は、未選択の図形情報が無いと判断する(ステップS208)。これにより、ホストPC10における構文解析処理が終了する。
上記のように、スプールファイル30に対する構文解析処理が実行され、各図形に対応するRGBカラー値がRGBカラー値テーブル25に登録されると共に、形状データが形状データテーブル19に登録される。
図7に戻って、構文解析処理が完了する(ステップS104)と、構文解析部18は、編集部21に編集指示を行う。
編集部21は、編集指示を受けると、カラー値管理部20に色変換指示を行う。そして、カラー値管理部20が、色変換処理を実行する(ステップS105)。この色変換処理の詳細については、図9及び図10を用いて説明する。
図9は、本発明に係るホストPCの実施例1における色変換動作を示すフローチャートであり、図10は、本発明に係るホストPCの色変換動作を説明する図である。
カラー値管理部20において、ビットマップイメージ生成部26が編集部21から色変換指示を受けると、ビットマップイメージ生成部26は、RGBカラー値テーブル25(図5)に登録されている各RGBカラー値に基づいて、RGBビットマップイメージを生成する(ステップS301)。ビットマップイメージ生成部26は、図形番号「図形1」から「図形16」にそれぞれ対応する16のRGBカラー値を読み出して、図10(a)に示されるように、16ピクセルからなるRGBビットマップイメージ34を生成する(ステップS301)。
ビットマップイメージ生成部26は、RGBカラー値テーブル25から、まず、図形番号「図形1」に対応するRGBカラー値「R=255,G=0,B=0」を読み出し、該RGBカラー値を有するピクセル番号「ピクセル1」のピクセル34−1を生成する。次に、ビットマップイメージ生成部26は、RGBカラー値テーブル25から、図形番号「図形2」に対応するRGBカラー値「R=255,G=128,B=240」を読み出して、対応するピクセル番号「ピクセル2」のピクセル34−2を生成する。このように、ビットマップイメージ生成部26は、各図形番号に対応するRGBカラー値を有するピクセル番号「ピクセル1」から「ピクセル16」までの各ピクセル34−1〜16を生成して、RGBビットマップイメージ34を生成する。図10(a)に示されるRGBビットマップイメージ34は、4ピクセル×4ピクセルの形状を有するが、これは一例であり、例えば16ピクセル×1ピクセル等、他の形状に生成しても良い。
ビットマップイメージ生成部26は、RGBビットマップイメージ34(図10(a))を生成すると、続いて、該RGBビットマップイメージ34を色変換すべく、OS部13に色変換要求を入力する。
カラー値管理部20からOS部13に色変換要求が入力されると、OS部13のビットマップイメージ変換部16が、RGBビットマップイメージ34に、RGB形式からCMYK形式へのカラー形式の変換、即ち色変換を施して、図10(b)に示されるように、CMYKビットマップイメージ35を生成する(ステップS302)。
CMYKビットマップイメージ35は、16ピクセルからなり、ピクセル番号「ピクセル1」のピクセル35−1は、RGBビットマップイメージ34のピクセル34−1を色変換して生成される。即ち、ピクセル35−1は、ピクセル34−1のRGBカラー値「R=255,G=0,B=0」に対応するCMYKカラー値を有する。同様に、CMYKビットマップイメージ35のピクセル35−2は、RGBビットマップイメージ34のピクセル34−2に対応し、ピクセル35―16は、ピクセル34−16に対応する。ビットマップイメージ変換部16は、これら16ピクセル分の色変換処理を、同時に実行し、CMYKビットマップイメージ35を生成する。
ビットマップイメージ変換部16によるRGBビットマップイメージ34からCMYKビットマップイメージ35への色変換が完了すると、カラー値管理部20のテーブル生成部28が、生成されたCMYKビットマップイメージ35に基づいて、CMYKカラー値テーブル27を生成する(ステップS303)。
テーブル生成部28は、まず、CMYKビットマップイメージ35から、ピクセル番号「ピクセル1」のピクセル35−1が有するCMYKカラー値「C=1,M=253,Y=254,K=0」を取得する。そして、テーブル生成部28は、該CMYKカラー値を、図形番号「図形1」に対応させて、CMYKカラー値テーブル27(図6)に記憶させる。同様に、テーブル生成部28は、各ピクセル35−2〜16が有するCMYKカラー値を順に取得し、ピクセル番号「ピクセルN」に対応する図形番号「図形N」と共に、CMYKカラー値テーブル27に記憶させる。
テーブル生成部28は、図6に示されるように、CMYKカラー値テーブル27を生成すると、色変換の完了を編集部21に通知する。これにより、カラー値管理部20による色変換処理が終了する。
上記のように、RGBカラー値テーブル25に基づいて、各図形33−1〜16(図3)のRGBカラー値をそれぞれ有する16ピクセルのRGBビットマップイメージ34(図10(a))が生成された後、CMYKビットマップイメージ35への色変換が実施される。
図7に戻って、色変換処理の完了を通知されると、編集部21は、編集処理を実行する(ステップS106)。この編集処理の詳細については、図11を用いて説明する。
図11は、本発明に係るホストPCの編集動作を示すフローチャートである。
編集部21は、まず、図形番号を「図形1」から順に選択する(ステップS401)。そして、編集部21は、選択した図形番号を、カラー値管理部20に入力する。
そして、カラー値管理部20のカラー値取得部29が、入力された図形番号に基づいて、CMYKカラー値テーブル27から、対応するCMYKカラー値を取得し、該CMYKカラー値を編集部21に送る(ステップS402)。カラー値取得部29は、図形番号「図形1」に基づいて、CMYKカラー値テーブル27(図6)から、CMYKカラー値「C=1,M=253,Y=254,K=0」を取得して出力する。
続いて、編集部21は、選択した図形番号に基づいて、形状データテーブル19から、対応する形状データを取得する(ステップS403)。編集部21は、図形番号「図形1」に基づいて、形状データテーブル19(図4)から、形状データ「Path Data=”M10,90 a 60,60 0 1 1 0,1”」を取得する。
そして、編集部21は、取得した形状データ及びCMYKカラー値を、ラスタライズ部22に入力する(ステップS404)。編集部21は、図形番号「図形1」に対応する形状データ「Path Data=”M10,90 a 60,60 0 1 1 0,1”」及びCMYKカラー値「C=1,M=253,Y=254,K=0」を、ラスタライズ部22に入力し、ラスタライズ部22が、これらを対応させて記憶する。
次に、編集部21は、未選択の図形番号が有るか否かを判断する(ステップS405)。編集部21は、未選択の図形番号が有ると判断する(ステップS405)と、それらの図形番号を順に選択する(ステップS401)。そして、ホストPC10において、選択された図形番号に対して、ステップS402からステップS404までの処理が実行される。
図形番号「図形16」が選択され(ステップS401)、該図形番号に対応するCMYKカラー値及び形状データが取得された後、ラスタライズ部22に入力される(ステップS402〜S404)と、編集部21は、未選択の図形番号が無いと判断する(ステップS405)。これにより、ホストPC10における編集処理が終了する。
上記のように、各図形に対応する形状データ及びCMYKカラー値が取得され、ラスタライズ部22に入力される。
図7に戻って、編集処理が完了すると、編集部21は、ラスタライズ部22にラスタライズ指示を行う。そして、ラスタライズ部22が、入力された各形状データ及びCMYKカラー値に基づいて、ラスタライズデータを生成する(ステップS107)。ラスタライズ部22は、生成したラスタライズデータを送信部23へ送る。
続いて、送信部23が、ラスタライズデータを、印刷要求と共にプリンタ11へ送信する(ステップS108)。これにより、ホストPC10におけるカラー画像処理が完了する。
プリンタ11は、ホストPC10から印刷要求およびラスタライズデータを受信すると、該ラスタライデータに基づいて、カラー印刷を行う。
上記のように、ホストPC10において、RGB形式で色指定されたスプールファイルが生成された後、カラー形式がCMYK形式に色変換され、ラスタライズデータが生成される。
このように、本実施例のホストPC10は、各図形の色がRGB形式で指定されたスプールファイルに対し、色変換処理を実行する際に、各図形に対応するRGBカラー値に基づき、RGBビットマップイメージを生成することにより、ビットマップイメージの色変換を行うAPIを用いた色変換処理を実行可能とする。
図17は、従来のホストPCの色変換動作を説明する図である。
従来のホストPCは、図17に示されるように、図形毎に、RGB形式からCMYK形式への色変換処理を実行する。例えば、図2のスプールファイル30を色変換する場合、ホストPCのOS部は、16の図形33−1〜33−16(図3)それぞれに対して、APIを呼び出して、色変換処理を実行することとなる。
図12は、色変換処理に要する処理時間を説明する図(その1)である。
図12(a)は、従来のホストPCに対応する図であり、図12(b)は、本実施例のホストPC10に対応する図である。また、図12に示される各罫線は、それぞれ、時刻を示す。
従来のホストPCでは、図形毎に色変換が施されるので、図形の数をNとすると、単一のカラー値の色変換をN回繰り返さなければならない。したがって、APIの呼び出しや復帰、ユーザモードから特権モードへの実行権限の切り替え等に要する処理時間、即ち色変換オーバーヘッドが、N回発生することとなる。図12(a)には、N=4の場合の例が示されている。
一方、本実施例のホストPC10では、一つのビットマップイメージに対して色変換が実行されるので、図12(b)に示されるように、色変換オーバーヘッドは1回しか発生しない。したがって、色変換処理に要する処理時間の短縮化が可能となる。図12(b)では、図12(a)に示される従来の処理時間と比較して、時間Δtが短縮される。
以上のように、本実施例のホストPC10によれば、図形毎に色変換を繰り返さずとも、ビットマップイメージを生成することにより、既存のAPIを利用して、各RGBカラー値をCMYカラー値に同時に色変換可能となる。したがって、色変換に係るオーバーヘッドの影響が軽減され、多大なコストをかけることなく、色変換の処理速度の向上が実現される。
図13は、本発明の実施例2に係るホストPCの機能構成を示すブロック図である。
本実施例のホストPC40は、OS部41にカラー値変換部49が追加されると共に、プリンタドライバ部42のカラー値管理部43に、カウンタ45、判定部46、カラー値参照部47及びテーブル登録部48が追加される構成が、実施例1とは異なる。
尚、本実施例において、実施例1と同一の構成については同一の符号で示し、これらについての詳しい説明を省略する。
ホストPC40は、画像処理装置として、図13に示されるように、アプリケーション部12、OS部41及びプリンタドライバ部42を含んで構成される。
OS部41は、図13に示されるように、スプールファイル生成部15、ビットマップイメージ変換部16及びカラー値変換部49を備えている。
カラー値変換部49は、変換取得部として、RGBカラー値からCMYKカラー値への色変換を行う。
プリンタドライバ部42は、図13に示されるように、受信部17、構文解析部18、形状データテーブル19、カラー値管理部43、編集部21、ラスタライズ部22及び送信部23を備えている。
カラー値管理部43は、図13に示されるように、カラー値登録部44、カウンタ45、判定部46、RGBカラー値テーブル25、ビットマップイメージ生成部26、カラー値参照部47、CMYKカラー値テーブル27、テーブル生成部28、テーブル登録部48及びカラー値取得部を備えている。
カラー値登録部44は、構文解析部18から図形番号及びカラーデータの入力を受けると、カウンタ45にカラーデータの入力を通知する。また、カラー値登録部44は、入力されたカラーデータからRGBカラー値を取得し、図形番号及びRGBカラー値をRGBカラー値テーブル25(図5)に登録する。
カウンタ45は、計数部として、カラー値登録部44からの通知に基づいて、RGBカラー値テーブル25に登録されたRGBカラー値の数、即ち、構文解析部18により検出された図形情報の数を、図形数nとして計数する。
判定部46は、編集部21からの色変換指示に基づき、カウンタ45から計数中の図形数nを取得して、該図形数nと所定の図形数閾値nthとを比較し、大小を判定する。図形数nが図形数閾値nth以上、即ちn≧nthである場合、判定部46は、ビットマップイメージ生成部26に、RGBビットマップイメージの生成を指示する。図形数nが図形数閾値nth未満、即ちn<nthである場合、判定部46は、カラー値参照部47にRGBカラー値の変換を指示する。
カラー値参照部47は、RGBカラー値テーブル25に登録された各RGBカラー値を参照し、OS部41のカラー値変換部49により、該RGBカラー値をCMYKカラー値に変換させる。
テーブル登録部48は、カラー値変換部49により変換された各CMYKカラー値を順に受け取って、CMYKカラー値テーブル27(図6)に順に登録する。
次に、本実施例のホストPC40の動作について、説明する。
本実施例のホストPC40によるカラー画像処理の大まかな流れは、図7に示されるフローチャートと同一である。一方、ステップS104の構文解析処理及びステップS105の色変換処理の詳細は、実施例1とは異なる。ここでは、まず、図7のステップS104の処理に相当する構文解析処理について、図14に沿って説明する。
図14は、本発明に係るホストPCの実施例2における構文解析動作を示すフローチャートである。
構文解析部18は、スプールファイルの構文解析に先立ち、まず、カラー値管理部43にカウンタ45の初期化を指示する。この指示に基づき、カウンタ45により計数される図形数nが、n=0に初期化される(ステップS501)。
続いて、構文解析部18は、スプールファイル30(図2)を読み込んで解析し、各要素31−1〜16を図形情報として、出現順に一つずつ選択し(ステップS201)、選択順に基づき図形番号を付与する(ステップS202)。
そして、構文解析部18は、選択された図形情報から、カラーデータを検出し、図形番号及びカラーデータをカラー値登録部24に入力する(ステップS203)。
次に、カラー値登録部24が、入力されたカラーデータから、RGBカラー値を取得し(ステップS204)、取得したRGBカラー値を、入力された図形番号と共に、RGBカラー値テーブル25に登録する(ステップS205)。
また、カラー値登録部24は、カウンタ45に加算指示を送る。カウンタ45は、この加算指示に基づき、計数中の図形数nに1を加算して、n+1とする(ステップS502)。
RGBカラー値の登録が完了すると、カラー値登録部24は、構文解析部18に登録完了を通知する。
登録完了を通知されると、構文解析部18は、続いて、選択された図形情報から、形状データを検出し(ステップS206)、検出した形状データを、図形番号と共に、形状データテーブル19に登録する(ステップS207)。
次に、構文解析部18は、スプールファイル30に未選択の図形情報が有るか否かを判断する(ステップS208)。そして、未選択の図形情報が有ると判断する(ステップS208)と、それらの図形情報を出現順に選択する(ステップS201)。そして、ホストPC40において、選択された図形情報に対し、ステップS202からステップS207までの処理が実行される。未選択の図形情報が無いと判断される(ステップS208)と、ホストPC10における構文解析処理が終了する。
上記のように、各図形に対応するRGBカラー値がRGBカラー値テーブル25に登録されると共に、カウンタ45により図形数nが計数される。
次に、図7のステップS105の処理に相当する色変換処理について、図15に沿って説明する。
図15は、本発明に係るホストPCの実施例2における色変換動作を示すフローチャートである。
ここでは、まず、カウンタ45の計数値である図形数nが図形数閾値nth以上である場合の色変換処理の流れについて、説明する。
色変換処理の実行に先立ち、カラー値管理部20は、編集部21から色変換指示を受ける。この色変換指示に基づき、判定部46が、カウンタ45から、計数中の図形数nを取得し、該図形数nと図形数閾値nthとを比較する(ステップS601)。
図形数nが図形数閾値nth以上、即ちn≧nthである場合(ステップS602)、判定部46は、ビットマップイメージ生成部26に、RGBビットマップイメージの生成を指示する。
ビットマップイメージ生成部26は、RGBカラー値テーブル25に基づき、RGBビットマップイメージ34(図10(a))を生成し(ステップS301)、OS部13に色変換要求を入力する。
そして、OS部13のビットマップイメージ変換部16が、RGBビットマップイメージ34を色変換して、CMYKビットマップイメージ35(図10(b))を生成する(ステップS302)。
続いて、テーブル生成部28が、生成されたCMYKビットマップイメージ35に基づいて、CMYKカラー値テーブル27を生成する(ステップS303)。CMYKカラー値テーブル27の生成が完了すると、テーブル生成部28は、色変換の完了を編集部21に通知する。これにより、カラー値管理部20による色変換処理が終了する。
上記のように、図形数nが図形数閾値nth以上である場合、RGBビットマップイメージが生成され、ビットマップイメージ変換部16により、RGBビットマップイメージからCMYKビットマップイメージへの色変換が実施される。
次に、図形数nが図形数閾値nth未満である場合について、説明する。
ステップS602において、図形数nが図形数閾値nth未満、即ちn<nthである場合、判定部46は、カラー値参照部47にRGBカラー値の変換を指示する。
カラー値参照部47は、この指示に基づいて、まず、図形番号を「図形1」から順に選択する(ステップS603)。
そして、カラー値参照部47は、RGBカラー値テーブル25を参照し、選択した図形番号に対応するRGBカラー値を取得する(ステップS604)。カラー値参照部47は、RGBカラー値テーブル25(図5)から、まず、図形番号「図形1」に対応するRGBカラー値「R=255,G=0,B=0」を取得して、図形番号及びRGBカラー値を、OS部41のカラー値変換部49に入力する。
カラー値変換部49は、入力されたRGBカラー値を、CMYKカラー値に色変換する(ステップS605)。カラー値変換部49は、RGBカラー値「R=255,G=0,B=0」に色変換を施して、CMYKカラー値「C=1,M=253,Y=254,K=4」を取得し、図形番号と共に出力する。
カラー値変換部49により色変換されたCMYKカラー値は、図形番号と共に、テーブル登録部48に入力される。そして、テーブル登録部48が、入力されたCMYKカラー値を、入力された図形番号と共に、CMYKカラー値テーブル27(図6)に登録する(ステップS606)。テーブル登録部48は、図形番号「図形1」及びCMYKカラー値「C=1,M=253,Y=254,K=4」を、CMYKカラー値テーブル27に記憶させた後、登録完了をカラー値参照部47に通知する。
カラー値参照部47は、登録完了を通知されると、未選択の図形番号が有るか否かを判断する(ステップS607)。未選択の図形番号が有ると判断する(ステップS607)と、カラー値参照部47は、それらの図形番号を順に選択する(ステップS603)。そして、ホストPC40は、選択された図形番号に対して、ステップS604からステップS606までの処理を実行する。
未選択の図形番号が無いと判断される(ステップS607)と、カラー値参照部47は、色変換の完了を編集部21に通知する。これにより、ホストPC40における色変換処理が完了する。
上記のように、図形数nが図形数閾値nth未満である場合、RGBカラー値テーブル25に登録された各RGBカラー値が、一つずつ、CMYKカラー値に色変換される。
図16は、色変換処理に要する処理時間を説明する図(その2)である。
図16(a)は、実施例1のホストPC10に対応する図であり、図16(b)は、本実施例のホストPC40に対応する図である。何れも、図形数閾値nth未満となる図形数n=2の場合の処理時間を示す。
実施例1のホストPC10では、ビットマップイメージの色変換を行うAPIを用いて、色変換処理を実行する。したがって、図16(a)に示されるように、ビットマップイメージの作成に処理時間を費やすこととなる。
一方、本実施例のホストPC40は、色変換処理に先立ち、図形数を計数し、該図形数が所定の図形数閾値未満である場合は、ビットマップイメージを生成することなく、単一のカラー値の色変換を行うAPIを用いて、図形毎に色変換処理を実行する。したがって、判定に要する処理時間と、各図形に対する色変換オーバーヘッドとに比較して、イメージ作成に費やす処理時間が長い場合、処理時間の短縮化が可能となる。図16(b)では、図16(a)に示される実施例1の処理時間と比較して、時間Δt´が短縮される。
以上のように、本実施例のホストPC40によれば、描画すべき図形の数に基づいて、色変換に使用するAPIを選択可能となるので、より効果的な処理速度の向上が実現される。