説明

画像処理装置及び画像処理プログラム

【課題】複数の色空間の指定が混在している場合でも処理時間を短縮することができる画像処理装置及び画像処理プログラムを提供する。
【解決手段】描画コマンドが渡されると、描画コマンド解釈部11は描画コマンドを解釈し、中間コード生成部12は、指定されている色空間が特定色空間でなければ特定色空間以外の中間コードを生成して中間コード記憶部13に記憶させる。この特定色空間以外の中間コードは、特定色空間が指定された場合及びページの終了の際に、描画部14で描画処理し、色変換処理部15で特定色空間以外の色空間から特定色空間への色空間の変換処理を行って、中間コード生成部12は特定色空間の中間コードを生成する。ページの終了の際に特定色空間の中間コードが生成されていれば、描画部14で特定色空間の中間コードに従って描画処理を行い、描画した画像を出力装置17に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及び画像処理プログラムに関するものである。
【背景技術】
【0002】
ページ記述言語の中には複数の色空間を定義してもよいものがある。画像形成装置などの出力装置においては、使用する色材等の色が決まっていることから、それらの色を要素とする予め決められた色空間(以下、特定色空間と呼ぶ)の画像を受け付けることになる。従って、特定色空間以外の各色空間から特定色空間への色空間変換が必要となる。
【0003】
例えば特許文献1では、ページ記述言語で記述された描画コマンドごとに、特定色空間以外の各色空間から特定色空間への色空間変換を行っている。この場合、描画コマンドの数だけ色空間変換を行うことになる。
【0004】
通常、一連の描画コマンドのなかで使われる色空間は一つであり、ユーザが使うアプリケーションの種類や設定に応じて色空間が決まる。たとえ一連の描画コマンドのなかで一つの色空間しか用いられていなくても、逐次処理する場合には色空間が一つであることが分からないため、色変換を都度実行することになり時間を要する結果となる。
【0005】
そのため、例えば特許文献2では、描画処理に先だって描画コマンドに含まれている色空間の指定を検出しておき、CMYK色空間が指定された描画コマンドが一つでも存在する場合はCMYKレンダリングを選択して。RGB色空間が指定された描画コマンドについてそれぞれ色変換を行っている。また、検出結果からRGB色空間しか使用されていなければ、RGBレンダリングを選択して描画を行い、その後に色変換を行っている。この場合、RGB色空間が指定された描画コマンドだけであれば1回の色変換の時間とともに検索時間が必要である。また、CMYK色空間が指定された描画コマンドだけであっても、検索時間は必要となる。さらに、混在している場合にはRGB色区間が指定された描画コマンドの数だけの色変換の時間と検索時間が必要となる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平5−16440号公報
【特許文献2】特開2006−295369号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、複数の色空間の指定が混在している場合でも処理時間を短縮することができる画像処理装置及び画像処理プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【0008】
本願請求項1に記載の発明は、色空間の指定が混在するページ記述言語で記述された描画コマンドから中間コードを生成するとともに該中間コードの生成の際に前記描画コマンドで色空間として予め決められた特定色空間の指定またはページの最後を検出する中間コード生成手段と、前記中間コード生成手段で前記特定色空間の指定またはページの最後を検出した場合にそれまでの中間コードについて画像を描画する描画手段と、前記描画手段で描画した画像の色空間を前記特定色空間へ変換する色空間変換手段を有することを特徴とする画像処理装置である。
【0009】
本願請求項2に記載の発明は、本願請求項1に記載の発明における前記中間コード生成手段が、前記特定色空間の指定を検出してそれまでの中間コードについて前記描画手段で画像を描画して前記色空間変換手段で色空間変換した画像について前記特定色空間の中間コードを生成することを特徴とする画像処理装置である。
【0010】
本願請求項3に記載の発明は、本願請求項2に記載の発明における前記描画手段は、前記中間コード生成手段がページの最後を検出し、それまでに前記特定色空間の中間コードを生成していた場合には、前記特定色空間の中間コードについての描画を行うことを特徴とする画像処理装置である。
【0011】
本願請求項4に記載の発明は、コンピュータに、請求項1から請求項3のいずれか1項に記載の画像処理装置の機能を実行させるものであることを特徴とする画像処理プログラムである。
【発明の効果】
【0012】
本願請求項1に記載の発明によれば、複数の色空間の指定が混在している場合でも処理時間を短縮することができる。
【0013】
本願請求項2に記載の発明によれば、色空間を特定色空間にそろえた中間コードを生成することができる。
【0014】
本願請求項3に記載の発明によれば、特定色空間にそろえられた中間コードから色空間変換することなく画像を描画することができる。
【0015】
本願請求項4に記載の発明によれば、本願請求項1から請求項3のいずれか1項に記載の発明の効果を得ることができる。
【図面の簡単な説明】
【0016】
【図1】本発明の実施の一形態を含む構成図である。
【図2】本発明の実施の一形態における動作の一例を示す流れ図である。
【図3】本発明の実施の一形態の動作の一例における情報の流れ図である。
【図4】第1の具体例の説明図である。
【図5】第2の具体例の説明図である。
【図6】第3の具体例の説明図である。
【図7】本発明の実施の一形態で説明した機能をコンピュータプログラムで実現した場合におけるコンピュータプログラム及びそのコンピュータプログラムを格納した記憶媒体とコンピュータの一例の説明図である。
【発明を実施するための形態】
【0017】
図1は、本発明の実施の一形態を含む構成図である。図中、11は描画コマンド解釈部、12は中間コード生成部、13は中間コード記憶部、14は描画部、15は色変換処理部、16は出力制御部、17は出力装置である。ここでは、複数の色空間の指定が混在するのを許すページ記述言語で記述された一連の描画コマンドが与えられ、その描画コマンドに従って描画処理を行って出力装置17から画像を出力する構成の一例を示している。
【0018】
描画コマンド解釈部11は、与えられた描画コマンドを解釈し、中間コード生成部12に対して描画コマンドに対応する中間コードを生成させる。
【0019】
中間コード生成部12は、描画コマンド解釈部11で解釈した描画コマンドから中間コードを生成して中間コード記憶部13に記憶させる。中間コードの生成の際に、描画コマンドで色空間として予め決められた特定色空間の指定の検出、及び、ページの最後を検出する。特定色空間の指定を検出した場合には、それまでの中間コードについて描画部14で画像を描画して色変換処理部15で特定色空間に色空間変換した画像について、特定色空間の中間コードを生成して中間コード記憶部13に記憶させる。
【0020】
中間コード記憶部13は、中間コード生成部12で生成された中間コードを記憶する。なお、中間コード以外にも、例えば特定色空間の中間コードの有無や、特定色空間以外の中間コードの有無及び当該中間コードの先頭ポインタなど、中間コードを管理するための情報についても記憶していてよい。
【0021】
描画部14は、中間コード生成部12で特定色空間の指定、及び、ページの最後を検出した場合に、それまでに中間コード生成部12で生成されて中間コード記憶部13に記憶されている特定色空間以外の中間コードについて、その中間コードに従って画像を描画する。描画した画像は色変換処理部15に渡し、色空間変換された後に中間コード生成部12へ戻される。また、中間コード生成部12でページの最後を検出した場合には、さらに、それまでに特定色空間の中間コードが存在するか否かを判断して、存在している場合には、ページの最後で生成した特定色空間の中間コードを含め、特定色空間の複数の中間コードについて描画処理を行い、1ページ分の画像を出力装置17へ出力する。
【0022】
色変換処理部15は、描画部14で描画した画像の色空間を特定色空間へ変換する色空間変換処理を行う。色空間変換処理の際には、出力装置17の色再現特性に応じた色変換処理など、種々の色処理を行ってもよい。
【0023】
出力制御部16は、出力装置17を制御し、描画部14で描画して出力装置17に対して出力される1ページ分の画像を出力させる。
【0024】
出力装置17は、描画部14から出力される1ページ分の画像を受け取り、可視化して出力する。出力装置17としてはどのような装置でもよく、例えば画像形成装置や表示装置等であってよい。
【0025】
図2は、本発明の実施の一形態における動作の一例を示す流れ図である。まずS51において、特定色空間以外の中間コードが存在することを示す第1のフラグをオフにしておく。また、特定色空間の中間コードが存在することを示す第2のフラグについてもオフにしておく。
【0026】
S52において、描画コマンド解釈部11は、与えられた描画コマンドを解釈する。S53において、解釈した描画コマンドがページ終了を示すものであったか否かを判断する。ページ終了でなければ、S54において、描画コマンドで指定された色空間が特定色空間であるか否かを判断する。
【0027】
指定された色空間が特定色空間以外であれば、S55において、第1のフラグがオンであるか否かを判断する。第1のフラグがオフの場合には、S56において第1のフラグをオンに変更し、特定色空間以外の中間コードの先頭を示すポインタを設定する。そしてS64へ進み、中間コード生成部12は処理対象の描画コマンドに対応する特定色空間以外の中間コードを生成して中間コード記憶部13に記憶させる。この場合には、S57で設定したポインタがS64で生成した中間コードを指すようにする。そしてS52へ戻って次の描画コマンドの処理を行う。
【0028】
S55で第1のフラグが既にオンであり、特定色空間以外の中間コードを既に生成している場合には、S64へ進み、中間コード生成部12は処理対象の描画コマンドに対応する特定色空間以外の中間コードを生成して中間コード記憶部13に記憶させる。この場合には第1のフラグの変更及びポインタの変更は行わない。そしてS52へ戻って次の描画コマンドの処理を行う。
【0029】
S54で指定された色空間が特定色空間であると判断された場合には、まずS58において、特定色空間の中間コードが存在することを示す第2のフラグをオンにする。そして、S59において、第1のフラグがオンになっているか否かを判断する。第1のフラグがオンになっており、特定色空間以外の中間コードを既に生成している場合には、S60において、直前までに生成された特定色空間以外の中間コードを描画部14で描画処理する。描画処理は、S57で設定したポインタが指し示す中間コードから直前までの中間コードについて行えばよい。さらに、描画した画像の色空間を、S61において色変換処理部15で特定色空間に変換する。そして、S62において中間コード生成部12は、描画して色空間変換を行った画像をもとに一つのイメージコマンドを意味する特定色空間の中間コードを生成して中間コード記憶部13に記憶させる。描画処理により不要となった特定色空間以外の中間コードは中間コード記憶部13から削除されて存在しなくなるので、S63において特定色空間以外の中間コードの存在を示す第1のフラグをオフにする。S64において、中間コード生成部12はS52で解釈した描画コマンドに対応する特定色空間の中間コードを生成し、中間コード記憶部13に記憶させる。そしてS52へ戻って次の描画コマンドの処理を行う。
【0030】
このようにして各描画コマンドに対する処理を行い、ページ終了を示す描画コマンドを検出すると、S53からS65へ進む。S65において、第1のフラグがオンになっているか否かを調べる。特定色空間以外の中間コードが存在することを示す第1のフラグがオンになっていた場合には、S66において、先頭ポインタの位置から直前までに生成された特定色空間以外の中間コードについて描画部14で描画処理する。さらに、描画した画像の色空間を、S67において色変換処理部15で特定色空間に変換する。なお、S65において第1のフラグがオンになっていない場合には、そのままS68へ進む。
【0031】
S68において、第2のフラグがオンになっているか否かを調べる。特定色空間の中間コードが存在することを示す第2のフラグがオンになっている場合には、S69において、S66で描画し、S67で色空間変換を行っている場合には、色空間変換の画像をもとに特定色空間の中間コードを生成して中間コード記憶部13に記憶させ、その中間コードを含めて、S70において特定色空間の中間コードを描画部14で描画処理し、出力装置17へ出力する画像とする。なお、S68で第2のフラグがオフになっている場合にはS70の処理を行わずに、S67で色空間の変換を行った後の画像を、出力装置17へ出力する画像とすればよい。
【0032】
図3は、本発明の実施の一形態の動作の一例における情報の流れ図である。描画コマンドが渡されると、S81で描画コマンドを解釈し、指定されている色空間が特定色空間でなければ、S82で特定色空間以外の中間コードが生成される。この特定色空間以外の中間コードは、特定色空間が指定された描画コマンドを解釈した場合、あるいは、ページの終了を示す描画コマンドを解釈した場合に、S83で描画処理され、続いてS84で特定色空間以外の色空間から特定色空間への色空間の変換処理が行われる。ページの終了の際に特定色空間が指定された描画コマンドが存在していなければ、描画して色空間の変換処理を行った画像を出力装置17へ出力する。
【0033】
特定色空間が指定された描画コマンドが存在していた場合には、S84で色空間の変換処理を行った後の画像をもとに特定色空間の中間コードをS85で生成する。また、S81で解釈した描画コマンドにおいて特定色空間が指定されていた場合には、S85で特定色空間の中間コードが生成される。ページの終了の際に特定色空間の中間コードが生成されていれば、S86で特定色空間の中間コードに従って描画処理を行い、描画した画像を出力装置17に出力する。
【0034】
以下、いくつかの具体例を用いながらさらに説明する。なお、以下の具体例では、特定色空間がCMYK色空間、特定色空間以外の色空間がRGB色空間であるものとしている。また、各具体例の図において、実際に描画を行う描画コマンドを楕円で示し、その個数がN個であるものとしている。楕円の内部には指定されている色空間を示している。
【0035】
図4は、第1の具体例の説明図である。この例では、いずれの描画コマンドも特定色空間以外のRGB色空間が指定されている場合の例を示している。最初の描画コマンド(No.1)については、図2のS52で解釈され、S54で特定色空間以外と判定されてS55へ進む。最初は第1のフラグがオフになっているのでS55からS56へ進み、第1のフラグをオンにするとともに、S57でRGB中間コードの先頭ポインタを設定し、S64においてRGB中間コードを生成する。2番目(No.2)以降の描画コマンドについては、S56及びS57は行われずにS64でRGB中間コードがそれぞれ生成される。
【0036】
N番目(No.N)の描画コマンドまで処理が終了し、ページが終了すると、図2のS53からS65へ進み、この例の場合には第1のフラグがオンになっているので、S66において直前までのN個のRGB中間コードを描画処理し、さらにS67で特定色空間であるCMYK色空間への色空間の変換処理を行う。第2のフラグはオフのままとなっているので、色空間の変換処理を行った描画画像をそのまま出力装置17へ出力する。この例の場合、ページの終了で1回の色空間の変換処理を行うことになる。
【0037】
図5は、第2の具体例の説明図である。この例では、いずれの描画コマンドも特定色空間のCMYK色空間が指定されている場合の例を示している。最初の描画コマンド(No.1)については、図2のS52で解釈され、S54で特定色空間であると判定されてS58へ進む。S58で第2のフラグをオンにしておく。第1のフラグはオフになっているので、S64においてCMYK中間コードを生成する。2番目(No.2)以降の描画コマンドについても、S64でCMYK中間コードがそれぞれ生成されることになる。
【0038】
N番目(No.N)の描画コマンドまで処理が終了し、ページが終了すると、図2のS53からS65へ進み、この例の場合には第1のフラグがオフのままであるのでS68へ進み、S68で第2のフラグがオンになっているので、S70でCMYK中間コードに従って描画処理を行い、描画した画像をそのまま出力装置17へ出力する。この例の場合、色空間の変換処理は行われない。
【0039】
図6は、第3の具体例の説明図である。この例では、RGB色空間が指定されている描画コマンドと、CMYK色空間が指定されている描画コマンドとが混在している例を示している。最初のM個の描画コマンドはRGB色空間が指定され、No.M+1の描画コマンドはCMYK色空間が指定され、続く(N−M−1)個の描画コマンドはRGB色空間が指定されているものとしている。
【0040】
最初の描画コマンド(No.1)については、図2のS52で解釈され、S54で特定色空間以外と判定されてS55へ進む。最初は第1のフラグがオフになっているのでS55からS56へ進み、第1のフラグをオンにするとともに、S57でRGB中間コードの先頭ポインタを設定し、S64においてRGB中間コードを生成する。2番目(No.2)からM番目(No.M)までの(M−1)個の描画コマンドについては、S56及びS57は行われずにS64でRGB中間コードがそれぞれ生成される。
【0041】
M+1番目(No.M+1)の描画コマンドについては、S52で解釈するとCMYK色空間が指定されていることから、S54からS58へ進み、S58で第2のフラグをオンにしておく。この場合、第1のフラグがオンになっているので、S60で先頭ポインタが指し示している位置から直前までのRGB中間コードについて描画処理を行い、描画された画像をS61でCMYK色空間に色空間変換し、描画して色空間変換した画像についてS62でCMYK中間コードを生成する。なお、S63で第1のフラグをオフにしておく。そして、S64でM+1番目(No.M+1)の描画コマンドに対応するCMYK中間コードを生成する。
【0042】
M+2番目(No.M+2)の描画コマンドについては、S52で解釈するとRGB色空間が指定されていることからS55へ進み、S55で第1のフラグがオフになっていることからS56で第1のフラグをオンにするとともに、S57でRGB中間コードの先頭ポインタを設定し、S64においてRGB中間コードを生成する。M+3番目(No.M+3)からN番目(No.N)までの(N−M−2)個の描画コマンドについては、S56及びS57は行われずにS64でRGB中間コードがそれぞれ生成される。
【0043】
N番目(No.N)の描画コマンドまで処理が終了し、ページが終了すると、図2のS53からS65へ進み、この例の場合には第1のフラグがオンになっているので、S66において先頭ポインタが指し示している位置から直前までの(N−M−1)個のRGB中間コードを描画処理し、さらにS67で特定色空間であるCMYK色空間への色空間の変換処理を行う。また、S68で第2のフラグがオンになっているので、描画して色空間変換した画像についてS69でCMYK中間コードを生成する。そして、S70でCMYK中間コードに従って描画処理を行う。CMYK中間コードは、1番目からM番目までのM個の描画コマンドに従って描画して色空間変換した画像をもとに生成したCMYK中間コードと、M+1番目の描画コマンドに従って生成したCMYK中間コードと、M+2番目からN番目までの(N−M−1)個の描画コマンドに従って描画して色空間変換したCMYK中間コードの3つであり、これらについて描画処理を行うことになる。描画されたCMYKの画像を出力装置17へ出力すればよい。
【0044】
この例の場合には、1番目からM番目までのM個の描画コマンドに従って描画した画像に対してと、M+2番目からN番目までの(N−M−1)個の描画コマンドに従って描画した画像に対しての、2回の色空間の変換処理が行われることになる。
【0045】
図7は、本発明の実施の一形態で説明した機能をコンピュータプログラムで実現した場合におけるコンピュータプログラム及びそのコンピュータプログラムを格納した記憶媒体とコンピュータの一例の説明図である。図中、21はプログラム、22はコンピュータ、31は光磁気ディスク、32は光ディスク、33は磁気ディスク、34はメモリ、41はCPU、42は内部メモリ、43は読取部、44はハードディスク、45はインタフェース、46は通信部である。
【0046】
上述の本発明の実施の一形態で説明した各部の機能を全部あるいは部分的に、コンピュータにより実行可能なプログラム21によって実現してもよい。その場合、そのプログラム21およびそのプログラムが用いるデータなどは、コンピュータが読み取り可能な記憶媒体に記憶させておけばよい。記憶媒体とは、コンピュータのハードウェア資源に備えられている読取部43に対して、プログラムの記述内容に応じて、磁気、光、電気等のエネルギーの変化状態を引き起こして、それに対応する信号の形式で、読取部43にプログラムの記述内容を伝達するものである。例えば、光磁気ディスク31,光ディスク32(CDやDVDなどを含む)、磁気ディスク33,メモリ34(ICカード、メモリカード、フラッシュメモリなどを含む)等である。もちろんこれらの記憶媒体は、可搬型に限られるものではない。
【0047】
これらの記憶媒体にプログラム21を格納しておき、例えばコンピュータ22の読取部43あるいはインタフェース45にこれらの記憶媒体を装着することによって、コンピュータからプログラム21を読み出し、内部メモリ42またはハードディスク44(磁気ディスクやシリコンディスクなどを含む)に記憶し、CPU41によってプログラム21を実行することによって、上述の本発明の実施の一形態で説明した機能が全部あるいは部分的に実現される。あるいは、通信路を介してプログラム21をコンピュータ22に転送し、コンピュータ22では通信部46でプログラム21を受信して内部メモリ42またはハードディスク44に記憶し、CPU41によってプログラム21を実行することによって実現してもよい。
【0048】
コンピュータ22には、このほかインタフェース45を介して様々な装置と接続してもよい。例えば出力装置17は、このインタフェース45を介して接続してもよい。また、情報を表示する表示手段や利用者からの情報を受け付ける受付手段等も接続されていてもよい。なお、処理対象となる描画コマンドは、通信路を介して通信部46で受け取るほか、記憶媒体から読み出してもよいし、あるいは、コンピュータ22で動作する他のプログラムから受け取ってもよい。
【0049】
もちろん、部分的にハードウェアによって構成することもできるし、全部をハードウェアで構成してもよい。あるいは、他の構成とともに本発明の実施の一形態で説明した機能の全部あるいは部分的に含めたプログラムとして構成してもよい。もちろん、他の用途に適用する場合には、その用途におけるプログラムと一体化してもよい。
【符号の説明】
【0050】
11…描画コマンド解釈部、12…中間コード生成部、13…中間コード記憶部、14…描画部、15…色変換処理部、16…出力制御部、17…出力装置、21…プログラム、22…コンピュータ、31…光磁気ディスク、32…光ディスク、33…磁気ディスク、34…メモリ、41…CPU、42…内部メモリ、43…読取部、44…ハードディスク、45…インタフェース、46…通信部。

【特許請求の範囲】
【請求項1】
色空間の指定が混在するページ記述言語で記述された描画コマンドから中間コードを生成するとともに該中間コードの生成の際に前記描画コマンドで色空間として予め決められた特定色空間の指定またはページの最後を検出する中間コード生成手段と、前記中間コード生成手段で前記特定色空間の指定またはページの最後を検出した場合にそれまでの中間コードについて画像を描画する描画手段と、前記描画手段で描画した画像の色空間を前記特定色空間へ変換する色空間変換手段を有することを特徴とする画像処理装置。
【請求項2】
前記中間コード生成手段は、前記特定色空間の指定を検出してそれまでの中間コードについて前記描画手段で画像を描画して前記色空間変換手段で色空間変換した画像について前記特定色空間の中間コードを生成することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記描画手段は、前記中間コード生成手段がページの最後を検出し、それまでに前記特定色空間の中間コードを生成していた場合には、前記特定色空間の中間コードについての描画を行うことを特徴とする請求項2に記載の画像処理装置。
【請求項4】
コンピュータに、請求項1から請求項3のいずれか1項に記載の画像処理装置の機能を実行させるものであることを特徴とする画像処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−254429(P2011−254429A)
【公開日】平成23年12月15日(2011.12.15)
【国際特許分類】
【出願番号】特願2010−128878(P2010−128878)
【出願日】平成22年6月4日(2010.6.4)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】