説明

画像処理装置及び画像処理方法

【課題】 描画オブジェクトの重ね合わせ処理における処理速度を向上し、必要とするメモリ容量を削減した画像処理装置及び画像処理方法を提供する。
【解決手段】 描画部1は、描画命令に従って描画処理を行い、描画データを生成して描画データ記憶部2に保持させる。生成する描画データのデータ構造は、含めるデータにより異なるいくつかのデータ構造のうちのいずれかをとる。2つの描画オブジェクトの重ね合わせを行う際には、重ね合わされる2つの描画オブジェクトがそれぞれ有しているデータ構造と、重ね合わせの際の条件(例えばブレンドモードや環境変数、マスクデータの有無など)によって、重ね合わせた描画データを表現するために必要なデータを特定し、そのデータを含む最低限のデータ構造を使用するものと決定する。これにより全てのデータを全ての描画オブジェクトが保持する場合に比べ、必要とするメモリ容量を格段に削減できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像の描画処理を行う画像処理技術に関するものである。
【背景技術】
【0002】
一般に画像の出力を行う際には、アプリケーションプログラムやオペレーティングシステムなどから出力される描画コマンドに従って、ビットマップ画像を形成する描画処理が行われ、そのビットマップ画像が出力される。あるいは描画コマンドから一旦中間コードを生成し、その中間コードからビットマップ画像を形成する場合もある。渡される描画コマンドはそれぞれの描画オブジェクト毎に生成されており、描画処理時には複数の描画オブジェクトが重なり合うように描画する場合もある。このように描画オブジェクトが重なり合う場合、それぞれの描画オブジェクトにおける属性などの情報を保持し、重なり合う描画オブジェクトの属性を考慮しながら描画処理を進めてゆくことになる。
【0003】
このように描画オブジェクトの重なりを処理しなければならないために、従来の描画処理においては、全ての描画オブジェクトについて、重ね合わせに関係する全ての情報を保持しながら行っていた。例えばビットマップ画像として描画してゆく場合には、各ピクセルの色情報を保持するカラープレーン、透明度を表すアルファ値を保持するアルファプレーン、ぼかしを含めたクリップ形状を示すためのシェープ値を保持するシェーププレーン、図形形状を示すマスク値を保持するマスクプレーンなど、各ピクセルが持つ属性をそれぞれのピクセルごとに保持している。
【0004】
また、重なりを有する描画処理の方法の一つとして、描画処理時に重なり部分毎に分割した図形ごとにデータを保持する、平面状マップを用いる方法がある。この方法の場合には、分割した図形ごとに、色情報、アルファ値、シェープ値、マスク値といった属性情報を保持することになる。そのため、ビットマップ画像と比較して全てのピクセルごとに保持しないので必要なメモリ量の削減と処理速度の向上が可能である。
【0005】
しかし、多くの混合処理の場合には、全ての属性情報を混合に使用するわけではなく、混合の条件や入力画像の状態によっては重ね合わせ処理に影響を及ぼさない属性も多い。そのため、重ね合わせ処理に影響を及ぼさない属性が多い場合には、使われない情報に多くのメモリを使用し、処理速度の低下を招くこととなるという問題があった。
【0006】
例えば特許文献1には、重ね合わせ処理を行った結果を圧縮することで、保持しておくデータ量を削減する技術が記載されている。しかし、処理結果についてはデータ量を削減することができるものの、重ね合わせ処理を行う際には全ての属性情報を保持しているため、重ね合わせの処理自体には多くのメモリが必要である上、処理時間もかかり、さらには重ね合わせ処理後の圧縮を行うための処理時間も必要となる。
【0007】
【特許文献1】特開平11−316831号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
本発明は、上述した事情に鑑みてなされたもので、描画オブジェクトの重ね合わせ処理における処理速度を向上し、必要とするメモリ容量を削減した画像処理装置及び画像処理方法を提供することを目的とするものである。
【課題を解決するための手段】
【0009】
本発明は、描画命令に従って描画オブジェクトの重ね合わせ処理を含む描画処理を行って描画データを生成する画像処理装置及び画像処理方法であり、描画データとして、複数のデータ構造を取り得ることを特徴とするものである。そして、描画オブジェクトの重ね合わせ処理を行うときに、重ね合わせ後の描画データのデータ構造を、重ね合わされる2つの描画オブジェクトのデータ構造と、重ね合わせの際の条件(例えばブレンドモードや環境変数、マスクデータの有無など)によって決定する。一般にはデータ量の多い方へデータ構造をあわせてゆくことになるが、描画データの場合には、逆に重ね合わせ後の描画データが、重ね合わせ前の描画オブジェクトのデータ構造より少ないデータのデータ構造で表現できる場合がある。このような場合には、少ないデータで表現可能なデータ構造を使用するものと決定することができる。
【0010】
データ構造として、色データ、色データと透明度、色データと透明度とシェープ値を含むデータ構造を取り得ることができ、そのうちの色データとしては、単色階調データ、3色カラーデータ、4色カラーデータのいずれかを含むようなデータ構造を選択的に用いることができる。例えば透明処理を行う場合には透明度あるいはさらにシェープ値が必要となるが、不透明化した場合などでは、透明度やシェープ値は不要であり、これらのデータを含まないデータ構造を用いることができる。
【0011】
描画データとしては、ビットマップデータ、上述の平面状マップデータ、あるいはスキャンラインごとに、同一の描画結果となる区間毎に分割したエッジリストデータなど、種々の形式の描画データを生成することができる。
【発明の効果】
【0012】
本発明によれば、記憶手段に描画データを保持する際に、必要なデータのみを保持するように構成することができ、必要とするメモリ容量を削減することができる。また、記憶手段から読み出すデータ量も描画データによっては大幅に少なくすることができることから、描画処理に要する時間を短縮することができる。さらに、重ね合わせ処理の際に重ね合わせ後の描画データのデータ構造を決定することから、最終的な描画処理結果が保持しなければならないデータも必要最低限のデータ量に抑えることができるため、変換や圧縮といった処理を行わずにそのまま保持することができ、処理速度の向上が期待できるという効果がある。
【発明を実施するための最良の形態】
【0013】
図1は、本発明の実施の一形態を示すブロック図である。図中、1は描画部、2は描画データ記憶部である。描画部1は、描画命令に従って描画処理を行って描画データを生成し、描画データ記憶部2に保持させる。描画命令によっては、それまでに描画処理を行った描画オブジェクトの描画データを描画データ記憶部2から読み出して、新たな描画オブジェクトとの間の重ね合わせ処理や論理演算処理なども行う。本発明では、生成する描画データのデータ構造は、含めるデータにより異なるいくつかのデータ構造のうちのいずれかをとる。取り得るデータ構造の一例については後述する。このデータ構造は、描画処理時に決定する。
【0014】
例えば描画オブジェクト間の重ね合わせ処理を行う際には、重ね合わされる2つの描画オブジェクトがそれぞれ有しているデータ構造と、重ね合わせの際の条件(例えば重ね合わせ方法を示すブレンドモードや、重ね合わせ処理の時点での環境変数、マスクデータの有無など)によって、重ね合わせた描画データを表現するために必要なデータを特定し、そのデータを含む最低限のデータ構造を使用するものと決定する。そしてそのデータ構造の描画データを生成し、描画データ記憶部2に保持させる。
【0015】
描画処理の際にはすべての属性データが必要というわけではなく、例えば不透明を指定した上書き描画を行う場合には、透明処理の際に必要となる透明度や、透明処理時に周辺部分で透明度を変化させるためのシェープ値などのデータは不要であり、そのようなデータを保持する必要がない。一般に、2つの描画オブジェクト間で重ね合わせ処理を行う場合には、両者が有する属性のデータが必要となる場合が多く、データの種類は増加する方向にある。しかし、例えば透明度などのデータを有していた描画オブジェクトの上に、上述のような不透明の指定により上書きされた場合には、透明度のデータは不要なる、といったように、画像の描画処理においては必要とするデータの種類が減少する場合もある。そのような場合には、減少した種類のデータを含むデータ構造を使用するものと決定することができる。このようにすべての属性データを含まないデータ構造を取り得ることによって、すべての描画データがすべてのデータを含む場合に比べて、描画データ記憶部2のメモリ容量を削減することができる。
【0016】
描画データ記憶部2は、描画部1で生成された描画データを保持し、また描画部1に対して保持している描画データを渡す。上述のように描画データは必要最小限のデータを含んでいるだけであるため、メモリ容量を削減することができるとともに、例えば圧縮などの処理を行わなくても描画データを保持することができ、処理速度の向上に寄与することができる。例えば1ページ分などの所定単位の最終的な描画データは、後段の処理手段に渡される。
【0017】
描画データのデータ構造の一例について説明する。ここでは、スキャンラインごとに、同一の描画結果となる区間毎に分割したエッジリストデータを描画データとして生成する場合について説明する。図2は、エッジリストデータのデータ構造の一例の説明図である。エッジリストデータでは、図2に示すように、スキャンラインのY座標と、そのエッジリストデータが示す区間の開始X座標及び長さ、そしてその区間における属性データを一つのユニットとし、このユニットの集合で画像を表現する。
【0018】
属性データのフィールドには、上述のように各種の属性を示すデータが含まれる。例えば、色データ、透明度を示すアルファ値、透明処理を行う領域及び周辺部での透明処理の適用度合いを示すシェープ値、その他描画に必要なタグ情報などが含まれる。従来は、どのような描画処理を行う場合でも対応できるように、これらのデータをすべて含む単一のデータ構造を用いていた。本発明では、以下に説明するような複数のデータ構造を用いて、描画処理に必要なデータを含むデータ構造を適用できるようにしている。なお、いずれのデータ構造を用いているかを示すデータも属性データのフィールドに含めておく。
【0019】
図3は、本発明の実施の一形態において使用可能なデータ構造の一例の説明図である。図3に示す例では、属性を示すデータとして色データ、アルファ値、シェープ値の3つがある場合を例として示している。なお、図3に示すそれぞれのタイプのデータが、図2に示す属性データに含まれることになる。
【0020】
色データは、例えばモノトーンの画像などでは単色の階調データがあればよく、カラー画像では3色あるいは4色のカラーデータが必要である。ここでは単色階調データを「グレイ」と表記している。また、3色カラーデータとしてRGBのデータを、4色カラーデータとしてCMYKのデータをそれぞれ保持するものとして、それぞれ「RGB」、「CMYK」と表記している。
【0021】
上述の各属性のデータの有無と、このような色データのいずれか(色データなしを含む)の組み合わせによって、図3に示す12種類のタイプのデータ構造を使用することができる。タイプ0〜タイプ3は、アルファ値及びシェープ値を有しない場合のデータ構造を示している。タイプ0は色データなしの場合を、タイプ1は色データとして単色階調データを有する場合を、タイプ2は色データとして3色カラーデータを有する場合を、タイプ3は色データとして4色カラーデータを有する場合を、それぞれ示している。
【0022】
タイプ16〜タイプ19は、アルファ値は有するがシェープ値を有しない場合のデータ構造を示している。タイプ0〜タイプ3の場合と同様に、タイプ16は色データなしの場合、タイプ17は色データが単色階調データの場合、タイプ18は色データが3色カラーデータの場合、タイプ19は色データが4色カラーデータの場合を、それぞれ示している。
【0023】
タイプ32〜タイプ35は、アルファ値及びシェープ値とも有する場合のデータ構造を示している。上述の各タイプと同様に、タイプ32は色データなしの場合、タイプ33は色データが単色階調データの場合、タイプ34は色データが3色カラーデータの場合、タイプ35は色データが4色カラーデータの場合を、それぞれ示している。
【0024】
描画オブジェクトの重ね合わせを行わない通常の上書き描画(アルファ値=1.0、ブレンドモード=ノーマル、マスクなし)の場合には、出力する画像の色空間に合わせてタイプ1、タイプ2、タイプ3のいずれかのデータ構造を選択して用い、描画データを作成すればよい。また、描画オブジェクト間の重ね合わせ処理を行う場合のデータ構造としては、マスクを用いない場合にはタイプ17〜19のいずれかを、マスクを用いる場合にはタイプ33〜35のいずれかを用い、描画データを作成すればよい。なお、色データを有しないタイプ0,14,32は通常は使用せず、特殊用途に利用することができる。
【0025】
具体例として、色データとして単色階調データの場合に8ビット、3色カラーデータの場合に24ビット、4色カラーデータの場合に32ビット、アルファ値として8ビット、シェープ値として8ビットのデータ幅を必要とする場合を考える。このとき、図3に示したデータ部分のデータ幅は、タイプ1で8ビット、タイプ2で24ビット、タイプ3で32ビット、タイプ17で16ビット、タイプ18で32ビット、タイプ19で40ビット、タイプ33で16ビット、タイプ34で40ビット、タイプ34で48ビットとなる。従来のようにすべての属性のデータを保持する場合、カラー画像を扱うのであればそれぞれのエッジリストデータが40ビットあるいは48ビットのデータを含むことになる。しかし本発明では、必要ない属性のデータを保持しないデータ構造を選択できるので、例えばモノクロの階調画像であれば8ビットまでデータを削減することができる。従って、データ長を短縮できるエッジリストデータが多数存在する場合には、描画データ記憶部2に保持されるデータ量を大幅に削減することが可能である。
【0026】
描画オブジェクト間の重ね合わせ処理を行う場合には、まず、新たに描画する描画オブジェクトについてエッジリストデータを作成し、既に描画されて描画データ記憶部2に記憶されているエッジリストデータとの間で重なり合いの判断を行い、1つのエッジリストデータで重なっている部分と重なっていない部分とが存在する場合にはエッジリストデータを分割し、新たに描画する描画オブジェクトと重なっている領域のエッジリストデータについて、新たなエッジリストデータを生成して描画データ記憶部2に保持させる。新たに生成するエッジリストデータのデータ構造は、新たに描画する描画オブジェクトのエッジリストデータのデータ構造と、描画データ記憶部2に保持されている描画オブジェクトのエッジリストデータのデータ構造と、重ね合わせ処理の条件、例えばアルファ値、ブレンドモード、マスクの有無などによって決定される。
【0027】
図4は、重ね合わせる2つのデータ構造と新たなデータ構造との関係の一例の説明図である。一般には、新たなエッジリストデータのデータ構造に含まれる属性のデータの種類は、重ね合わせる2つのエッジリストデータのデータ構造に含まれる属性のデータの和、すなわち重ね合わせる2つのエッジリストデータのいずれも表現可能なデータ構造とすればよい。例えば、重ね合わせる2つのエッジリストデータのデータ構造が、図3に示すタイプ1〜3のように色データのみのデータ構造と、タイプ17〜19のようにアルファ値と色データのデータ構造であれば、新たなエッジリストデータのデータ構造は、タイプ17〜19のようにアルファ値と色データのデータ構造とすればよい(図4(A))。同様に、タイプ1〜3のように色データのみのデータ構造と、タイプ33〜35のようにアルファ値とシェープ値と色データのデータ構造であれば、新たなエッジリストデータのデータ構造は、タイプ33〜35のようにアルファ値とシェープ値と色データのデータ構造とすればよい(図4(B))。さらに、タイプ17〜19のようにアルファ値と色データのデータ構造と、タイプ33〜35のようにアルファ値とシェープ値と色データのデータ構造であれば、新たなエッジリストデータのデータ構造は、タイプ33〜35のようにアルファ値とシェープ値と色データのデータ構造とすればよい(図4(C))。
【0028】
色データについても同様であり、タイプ1,17,33に示す単色階調データ(グレイ)のデータ構造とタイプ2,18,34に示す3色カラーデータ(RGB)のデータ構造とのエッジリストデータの重ね合わせの場合には、新たなエッジリストデータのデータ構造はタイプ2,18,34に示す3色カラーデータ(RGB)のデータ構造とすればよい(図4(D))。また、タイプ1,17,33に示す単色階調データ(グレイ)のデータ構造とタイプ3,19,35に示す4色カラーデータ(CMYK)のデータ構造とのエッジリストデータの重ね合わせの場合には、新たなエッジリストデータのデータ構造はタイプ3,19,35に示す4色カラーデータ(CMYK)のデータ構造とすればよい(図4(F))。なお図4(D)〜(F)では色データの部分のみを示しており、それぞれのタイプに応じてアルファ値あるいはアルファ値とシェープ値を含む場合がある。
【0029】
さらに、重ね合わせの条件としてマスクを有する場合には、重ね合わせる2つのエッジリストデータのデータ構造にかかわらず、新たなエッジリストデータのデータ構造はシェープ値を含むタイプ33〜35のいずれかとすればよい(図4(G))。この例ではアルファ値も必ず含むことになる。
【0030】
例えば、アルファ値が0.5で、マスクが無く、ブレンドモードがノーマルの場合、描画する描画オブジェクトのエッジリストデータのデータ構造がタイプ18であり、重ね合わせる描画データ記憶部2に保持されているエッジリストデータのデータ構造がタイプ2であるときには、重ね合わせた後のエッジリストデータのデータ構造はタイプ18となる。もし、描画データ記憶部2に保持されているエッジリストデータのデータ構造がタイプ33のときには、重ね合わせ後のエッジリストデータのデータ構造はタイプ34となる。
【0031】
なお、上述の色データについて、タイプ2,18,34に示す3色カラーデータ(RGB)のデータ構造とタイプ3,19,35に示す4色カラーデータ(CMYK)のデータ構造とのエッジリストデータの重ね合わせの場合には、新たなエッジリストデータのデータ構造はタイプ2,18,34に示す3色カラーデータ(RGB)のデータ構造とする(図4(E))。すなわちデータ量が減少する方向へのデータ構造の変換を行うことになる。これは、上述のような一般のデータ量が増加する方向へのデータ構造の決定とは異なるものである。この例における3色カラーデータであるRGBと4色カラーデータであるCMYKとは、1対1の対応がとれない。RGBからCMYKへの変換は一意に決まらないが、CMYKからRGBへの変換は一意に決まるため、色の一致をはかるためにはRGBで統一した方がよい。そのために、このようなデータ量が減少する方向にデータ構造の選択を行う。
【0032】
描画処理においては、このようなデータ量を減少する方向にデータ構造を変更できる場合がほかにも存在する。例えば不透明(アルファ値=1.0)で上書き描画する場合、重ね合わされるエッジリストデータがアルファ値あるいはアルファ値とシェープ値を有するタイプ17〜19あるいはタイプ33〜35であったとしても、新たに生成されるエッジリストデータはタイプ1〜3を選択することができる。また、ある特定の論理演算(あるいは論理演算の並び)の場合に、上述のようなデータ量を減少する方向にデータ構造を変更できることがある。このように、描画処理においては一般的なデータ量を維持または増加する方向へのデータ構造の変更の他に、逆にデータ量を減少する方向のデータ構造の変更が可能である。
【0033】
上述のような2つの描画オブジェクト(エッジリストデータ)のデータ構造と重ね合わせの条件から、新たに生成する描画オブジェクト(エッジリストデータ)のデータ構造を決定する方法としては、例えば、上述のような全ての条件について記述しておいてもよいし、優先順位に基づく演算で決定してもよい。
【0034】
上述の図3には色データ、アルファ値、シェープ値の3つを属性のデータとして有するデータ構造について示した。しかし図3に示したデータ構造は一例であって、並び順や含める属性のデータの種類についても任意であり、そのほかの各種の属性についても同様に必要に応じて保持するデータ構造を選択可能にし、データ量を削減することができる。
【0035】
また、上述の例では描画データとしてエッジリストデータを生成する場合について説明した。本発明で生成する描画データはエッジリストデータに限られるものではなく、例えば平面状マップデータを生成したり、あるいはビットマップデータを生成するなど、各種の描画データを生成する際に適用可能である。なお、ビットマップデータ以外のデータを描画データとして生成する場合には、例えば1ジョブや1ページ分、1バンド分、1ライン分などの所定の描画処理が終了した後に、ビットマップ画像へ展開する処理を行うことになる。
【図面の簡単な説明】
【0036】
【図1】本発明の実施の一形態を示すブロック図である。
【図2】エッジリストデータのデータ構造の一例の説明図である。
【図3】本発明の実施の一形態において使用可能なデータ構造の一例の説明図である。
【図4】重ね合わせる2つのデータ構造と新たなデータ構造との関係の一例の説明図である。
【符号の説明】
【0037】
1…描画部、2…描画データ記憶部。

【特許請求の範囲】
【請求項1】
描画命令に従って描画オブジェクトの重ね合わせ処理を含む描画処理を行って描画データを生成する描画手段と、該描画手段で生成した前記描画データを保持する記憶手段を有する画像処理装置であって、前記記憶手段は、前記描画データとして複数のデータ構造のいずれかの形式で保持し、前記描画手段は、前記描画オブジェクトの重ね合わせ処理を行うとき、重ね合わされる2つの描画オブジェクトのデータ構造と、重ね合わせの際の条件によって、重ね合わせ後の描画データのデータ構造を決定して、前記描画データを前記記憶手段に保持させることを特徴とする画像処理装置。
【請求項2】
複数の前記データ構造として、色データ、色データと透明度、色データと透明度とシェープ値を含むデータ構造を取り得ることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記色データとして、単色階調データ、3色カラーデータ、4色カラーデータのいずれかを含むことを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記描画手段は、重ね合わせ後の描画データが、重ね合わせ前の描画オブジェクトのデータ構造より少ないデータのデータ構造で表現可能であるときには、該少ないデータで表現可能なデータ構造を使用するものと決定することを特徴とする請求項1ないし請求項3のいずれか1項に記載の画像処理装置。
【請求項5】
前記描画手段は、前記描画データとして、スキャンラインごとに、同一の描画結果となる区間毎に分割したエッジリストデータを生成することを特徴とする請求項1ないし請求項4のいずれか1項に記載の画像処理装置。
【請求項6】
前記描画手段は、前記描画データとして、同一の描画結果となる領域毎の図形に分割した平面状マップデータを生成することを特徴とする請求項1ないし請求項4のいずれか1項に記載の画像処理装置。
【請求項7】
前記描画手段は、前記描画データとしてビットマップデータを生成することを特徴とする請求項1ないし請求項4のいずれか1項に記載の画像処理装置。
【請求項8】
描画命令に従って描画オブジェクトの重ね合わせ処理を含む描画処理を描画手段で行って描画データを生成し、生成した前記描画データを記憶手段に保持させながら描画処理を進める画像処理方法であって、前記描画データは複数のデータ構造のいずれかをとり、前記描画オブジェクトの重ね合わせ処理を行うとき、重ね合わされる2つの描画オブジェクトのデータ構造と、重ね合わせの際の条件によって、重ね合わせ後の描画データのデータ構造を決定して、重ね合わせ後の描画データを前記記憶手段に保持させることを特徴とする画像処理方法。
【請求項9】
複数の前記データ構造として、色データ、色データと透明度、色データと透明度とシェープ値を含むデータ構造を取り得ることを特徴とする請求項8に記載の画像処理方法。
【請求項10】
前記色データとして、単色階調データ、3色カラーデータ、4色カラーデータのいずれかを含むことを特徴とする請求項9に記載の画像処理方法。
【請求項11】
重ね合わせ後の描画データが、重ね合わせ前の描画オブジェクトのデータ構造より少ないデータのデータ構造で表現可能であるときには、該少ないデータで表現可能なデータ構造を使用するものと決定することを特徴とする請求項8ないし請求項10のいずれか1項に記載の画像処理方法。
【請求項12】
前記描画データとして、スキャンラインごとに、同一の描画結果となる区間毎に分割したエッジリストデータを生成することを特徴とする請求項8ないし請求項11のいずれか1項に記載の画像処理方法。
【請求項13】
前記描画データとして、同一の描画結果となる領域毎の図形に分割した平面状マップデータを生成することを特徴とする請求項8ないし請求項11のいずれか1項に記載の画像処理方法。
【請求項14】
前記描画データとしてビットマップデータを生成することを特徴とする請求項8ないし請求項11のいずれか1項に記載の画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2006−139342(P2006−139342A)
【公開日】平成18年6月1日(2006.6.1)
【国際特許分類】
【出願番号】特願2004−325962(P2004−325962)
【出願日】平成16年11月10日(2004.11.10)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】