画像形成装置、画像形成方法、プログラムおよび記録媒体
【課題】効率的に描画データを読み出し・書き込み可能な画像形成装置、画像形成方法、プログラムおよび記録媒体を提供すること。
【解決手段】本発明の画像形成装置110は、描画データが格納される画像データメモリのサイズに応じて、描画データを分割する分割処理手段234と、分割処理手段が分割した各描画データで使用される色数を計数する計数処理手段236と、分割処理手段が分割した各描画データを中間データとして保存する描画データ保存手段238と、中間データを使用してRGB形式の描画データを生成する多値描画処理手段240と、多値描画処理手段が生成したRGB形式の描画データをCMYK形式の描画データに変換する色変換処理手段242とを含む。
【解決手段】本発明の画像形成装置110は、描画データが格納される画像データメモリのサイズに応じて、描画データを分割する分割処理手段234と、分割処理手段が分割した各描画データで使用される色数を計数する計数処理手段236と、分割処理手段が分割した各描画データを中間データとして保存する描画データ保存手段238と、中間データを使用してRGB形式の描画データを生成する多値描画処理手段240と、多値描画処理手段が生成したRGB形式の描画データをCMYK形式の描画データに変換する色変換処理手段242とを含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置に関し、より詳細には、描画処理を効率化する画像形成装置、画像形成方法、プログラムおよび記録媒体に関する。
【背景技術】
【0002】
画像形成装置は、コンピュータ上で作成された文書や画像などを印刷する場合、PDL(Page Description Language)によって文字や図形の位置情報、書式情報などのデータを解析・解読し、ビットマップイメージを作成して紙媒体等に印刷する。画像形成装置がPDLを解析・解読する際に行う描画処理として、透過制御処理がある。透過制御処理とは、背景上に描かれたオブジェクトが透けて、オブジェクトが背景に溶け込んでいるように描画する処理であり、Microsoft社が提供するWindows(登録商標)Vista等のOSで使用されている電子文書規格であるXPS(XML Paper Specification)に基づいた描画処理である。
【0003】
透過制御処理では、重畳する描画データ(以降、ソースデータとして参照する。)の透過属性情報と、ソースデータが重畳される描画先の画像データ(以降、デスティネーションとして参照する。)の透過属性情報とを使用して、最終的に描画される描画データの色情報を決定する。これらの透過属性情報は、描画データを構成するピクセル毎に保存する必要がある。
【0004】
また、現在の画像形成装置では、PDLを解析して得られたカラー画像に対して、複数画素単位で階調を表現させるハーフトーン処理が施されている。ハーフトーン処理とは、黒と白の2色だけを用いてハーフトーン(中間色)を表現する技術であり、2値出力の表示装置でグレースケールを表現しようとする技術である。ハーフトーン処理を実行する場合、透過制御処理後にも描画オブジェクトの属性情報が必要となる。
【0005】
したがって、透過制御処理を実行する場合には、描画データの色情報、属性情報、および透過属性情報がピクセル毎に必要となり、RGB24bitで1ピクセル分の描画データを処理するためには、色情報(3バイト)の他、属性情報および透過属性情報のデータをCPUのレジスタにロードする必要がある。
【0006】
特許文献1は、入力された描画コマンドをビットマップ画像に描画する描画プレーンを生成する手段と、描画コマンドの画像オブジェクトを描画プレーンに重畳して新たに描画プレーンを生成する手段と、描画コマンドとその属性から画像全体の各ピクセルに対して属性の決定に用いる情報プレーンを生成する手段とを備える画像形成装置を開示する。この画像形成装置は、RGB24bitの描画プレーンおよび3bitの情報プレーンを用いて、RGB24bitからCMYK32bitの色空間変換を行う。したがって、特許文献1の画像形成装置は、1ピクセル分の描画処理を実行するために、少なくとも4バイトのデータ量を処理する。
【0007】
一方、現在の画像形成装置で使用されているCPUは通常、32bit(4バイト)のレジスタを含んで構成されている。
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1に示すような従来の画像形成装置で透過制御処理を実行しようとする場合、色情報および属性情報の他、透過属性情報を含む描画データをレジスタにロードする必要があるため、通常使用されている32bitのレジスタは、1ピクセル分の描画データを1度にロードすることができない。このため、CPUは、RAM等に格納されている描画データを1バイト単位でレジスタにロードして、1ピクセル分の描画データを処理しなければならず、解像度が高い印刷データほど描画処理が非効率的になるという問題があった。
【0009】
したがって、画像形成装置に搭載されたCPUが少ない読み出し回数で効率的に描画データを読み出すことができ、さらに描画データを効率的に画像データメモリに書き込むことができる画像形成装置が必要とされていた。
【0010】
本発明は、上述した従来技術の問題点に鑑みてなされたものであり、効率的に描画データを読み出し・書き込み可能な画像形成装置、画像形成方法、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明では、上述した問題に対応するために、描画データを処理する画像形成装置は、描画データが格納される画像データメモリのサイズに応じて、描画データを分割する分割処理手段と、分割処理手段が分割した各描画データで使用される色数を計数する計数処理手段と、分割処理手段が分割した各描画データを中間データとして保存する描画データ保存手段と、中間データを使用してRGB形式の描画データを生成する多値描画処理手段と、多値描画処理手段が生成したRGB形式の描画データをCMYK形式の描画データに変換する色変換処理手段とを含む。
【0012】
中間データには、描画データの色情報と、描画データの属性情報、および描画データが描画される画像データに対する描画データの透過の割合を示す透過属性値とが含まれており、多値描画処理手段は、描画データの色情報および透過属性値を使用して描画データに対して透過制御処理を実行することができる。
【0013】
また、多値描画処理手段は、描画データが描画される画像データの色情報および透過属性値を使用して、描画データに対して透過制御処理を実行することができる。
【0014】
さらに、画像形成装置は、描画データの属性情報を使用して、色変換処理手段が生成した描画データに対してハーフトーン処理を実行して、描画データを2値化する2値変換処理手段をさらに備えており、描画データをグレースケールで表現することができる。
【0015】
さらに、画像形成装置が備えるCPUが、2回の読み出しで1ピクセル分の描画データを読み取り可能であり、描画処理を効率化することができる。
【0016】
さらに、色変換処理手段は、多値描画処理手段が描画データを生成する際に使用した画像データメモリの同一領域にCMYK形式の描画データを格納し、これにより、画像データメモリへの書き込み処理を効率化することができる。
【0017】
さらに、計数処理手段は、分割された各描画データで使用される色値と、当該色値に関連付けられたインデックスとが登録されるインデックステーブルを作成し、多値描画処理手段は、インデックステーブルを使用して、RGB形式の描画データを生成し、色変換処理手段は、RGB形式およびCMYK形式の色値対応表を用いて、多値描画処理手段が生成したRGB形式の描画データをCMYK形式の描画データに変換して出力データとするため、描画処理に必要とされるデータ量を大幅に削減することができる。
【0018】
さらに、描画データの属性情報には、インデックステーブルを用いた描画形式であるインデックス描画形式を指定する情報が含まれており、多値描画処理手段は、インデックス描画形式を指定する情報を使用して、RGB各色8ビットの描画形式およびインデックス描画形式のいずれかを描画形式として選択することができる。
【0019】
さらに、多値描画処理手段は、分割された描画データで使用されている色数に応じて、インデックス描画形式を指定することができる。
【0020】
さらに、多値描画処理手段は、分割された描画データ毎に描画形式を選択することができる。
【0021】
さらに、多値描画処理手段は、描画データの属性情報にラスターオペレーション処理を指定する値が含まれている場合に、描画データに対してラスターオペレーション処理を実行し、描画データの属性情報に前記透過属性値が含まれている場合に、描画データに対して透過制御処理を実行するため、ラスターオペレーション処理または透過制御処理を選択的に指定することができる。
【0022】
また、本発明は、画像形成装置が、画像データメモリのサイズに応じて描画データを分割し、各描画データで使用される色数を計数し、各描画データを中間データとして保存し、中間データを使用してRGB形式の描画データを生成し、RGB形式の描画データをCMYK形式の描画データに変換する方法を提供する。
【0023】
さらに、本発明は、画像処理装置を上記機能手段として機能させるためのコンピュータ実行可能なプログラムおよび記録媒体を提供する。
【図面の簡単な説明】
【0024】
【図1】本発明の画像形成装置100のハードウェア構成の実施形態を示した図。
【図2】本実施形態のコントローラ110の機能ブロック200を示した図。
【図3】本実施形態のコントローラ110が実行する描画処理のフローチャート。
【図4】従来のPDLの描画命令400Aおよび本実施形態のコントローラ110が使用する描画命令400Bの実施形態を示した図。
【図5】描画モジュール・インタフェース232が描画した描画オブジェクトの実施形態を示した図。
【図6】計数処理部236が描画オブジェクトの色を計数するために使用されるカラーテーブルおよび色数管理テーブルの実施形態を示した図。
【図7】中間データとして保存される描画データのデータ構造700Aおよび描画コマンドの対応表700Bを示した図。
【図8】描画データが格納される画像データメモリ800のデータ構造を示す概念図。
【図9】インデックス描画形式により描画データを処理する際に使用するインデックステーブルの作成処理のフローチャート。
【図10】図9の処理によって作成されたインデックステーブルの実施形態を示した図。
【図11】インデックス描画形式によって画像データメモリに点順次フォーマットで格納された描画データのデータ構造を示した図。
【発明を実施するための形態】
【0025】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図1は、本発明の画像形成装置100のハードウェア構成の実施形態を示す。画像形成装置100は、ネットワークプリンタやラインプリンタなどの印刷処理装置として機能し、画像形成装置100の制御を行うコントローラ110と、用紙に画像を印刷するためのエンジン140と、ユーザからの入力を受領し、または画像形成装置100の状態を表示するパネル装置150とを含んで構成されている。
【0026】
コントローラ110は、CPU112と、ROM114とを含んでいる。CPU112は、コントローラ110が実装するプログラムの命令を実行する。ROM114は、コントローラ110上で動作するプログラムを格納する。また、コントローラ110は、RAM116を含んでおり、プログラムが生成するページ空間を提供するページメモリ等の画像データメモリや、プログラムが動作するために必要なワークメモリとして機能する。さらに、コントローラ110は、NVRAM118を含んでおり、NVRAM118は、画像形成装置100の印刷設定条件などを保存する。
【0027】
また、コントローラ110は、ネットワーク・インタフェース(以下、ネットワークI/Fとして参照する。)120とエンジン・インタフェース(以下、エンジンI/Fとして参照する。)122とを含んでおり、ネットワークI/F120は、ネットワークを介してホストPC130とデータ交換を行ない、エンジンI/F122は、エンジン140に対する印刷制御を行う。さらに、コントローラ110は、パネル装置150の制御を行うためのパネル・インタフェース(以下、パネルI/Fとして参照する。)124とを含んでおり、ユーザからの入力を受領して各種処理を実行する。
【0028】
さらに、画像形成装置100は、ネットワークを介してホストPC130に接続されており、ホストPC130から印刷指示を受領して印刷処理を行う。ネットワークは、1000Base−TXなどのイーサネット(登録商標)、光ネットワーク、IEEE802.11などの規格に準拠した無線ネットワークを含んで構成することができ、フレームまたはTCP/IPプロトコルに基づくパケット通信によって、相互通信が行われる。ネットワークは、LAN(Local Area Network)などの狭域ネットワークとして構成することができる。
【0029】
図2は、本実施形態のコントローラ110の機能ブロック200を示した図である。コントローラ110は、PDL(Page Description Language)の構文解析を行うPDLパーサ220と、描画処理を行う描画コア230とを含んで構成されている。PDLパーサ220は、ホストPC130から受領した印刷データに含まれるPDLの構文解析を行う。PDLパーサ220は、Post ScriptやPDF、PCL、XPSなどの様々なページ記述言語を解析可能であり、描画コア230を呼び出して描画処理を実行させることにより、PDLの種類に関わらず描画が可能である。
【0030】
描画コア230は、描画モジュール・インタフェース(以下、描画モジュールI/Fとして参照する。)232と、分割処理部234と、計数処理部236と、描画データ保存部238とを含んでいる。描画モジュールI/F232は、PDLパーサ220からテキスト、イメージ、ベクターグラフィックス等の描画データや、色、ブラシ、透過属性情報である透過属性値、線形状等の描画設定情報を受領するインタフェースであり、描画データや描画設定情報を設定可能なインタフェース関数を備えている。描画コア230は、当該インタフェース関数を用いてPDLから描画データを生成する。なお、インタフェース関数については、より詳細に後述する。
【0031】
分割処理部234は、コントローラ110が1ページ分の描画データを格納可能なメモリを確保できない場合に、ページメモリ等の画像データメモリが格納可能な大きさに描画データを分割する。具体的には、分割処理部234は、描画モジュールI/F232が描画するデータである描画オブジェクトをバンド高さに応じて分割する。バンド高さとは、描画オブジェクトが描画される画像データであるデスティネーションをy軸方向に分割した領域の幅であり、画像データメモリが格納可能な描画データのデータ量によって決められる。なお、分割処理部234の分割処理については、より詳細に後述する。
【0032】
計数処理部236は、分割処理部234が分割した各描画オブジェクトを構成する色の数である色数を計数する。計数処理部236は、計数した色数をバンドに関連付けて色数管理テーブルに登録する。また、計数処理部236は、計数した色数がしきい値以下の場合には、後述するインデックステーブルを作成する。しきい値は、RGBの各色を8ビットで表現される色数よりも少ない値、例えば、2、4、16、128、256等とすることができる。したがって、1ピクセルの描画データを表現するのに24ビットの画像データメモリを必要とするRGBの各色8ビットの表現形式に比べて、インデックステーブルを用いて描画データを表現するインデックス形式は、使用する画像データメモリのデータ量を大幅に削減することができる。
【0033】
描画データ保存部238は、分割処理部234が分割した描画データを中間データとしてRAM等のメモリまたはHDD等の主記憶装置に保存する。なお、計数処理部236の計数処理、インデックステーブル作成処理、および保存される中間データの詳細については、より詳細に後述する。
【0034】
さらに、描画コア230は、多値描画処理部240と、色変換処理部242と、2値変換処理部244とを含んでいる。多値描画処理部240は、中間データとして保存されている描画データおよびデスティネーションの描画データを用いて、描画対象であるオブジェクトの描画データを生成し、各色8ビットのRGBカラーデータとして画像データメモリに格納する。また、多値描画処理部240は、描画形式がインデックス形式である場合、計数処理部236が作成したインデックステーブルを用いて描画データを画像データメモリに格納する。
【0035】
色変換処理部242は、多値描画処理部240が画像データメモリに格納した描画データに対して色変換処理を実行して、RGB形式の描画データを、デバイスの色特性に適合したCMYK形式の描画データに変換し、画像データメモリを更新する。また、色変換処理部242は、描画形式がインデックス形式である場合、RBG形式の色値とCMYK形式の色値との対応表を用いて、描画データをRGB形式からCMYK形式に変換する。
【0036】
2値変換処理部244は、画像データメモリからCMYK形式の描画データおよび属性データを受領し、属性データを用いて、描画オブジェクト毎にディザ法や誤差拡散法などによる階調処理、ディザリング処理等のハーフトーン処理を実行して、描画データを2値形式に変換する。属性データには、オブジェクトの種類、例えば、当該オブジェクトを構成する各ピクセルがイメージ、文字、塗りつぶし図形、線等であるかを示すフラグ情報が含まれている。本実施形態のハーフトーン処理では、オブジェクトの各ピクセルの色と、ハーフトーンパターンまたはディザパターンの閾値とを比較し、当該ピクセルの色が閾値以上である場合には、属性データからオブジェクトの種類を判断し、当該オブジェクトに適したハーフトーンパターンを用いてハーフトーン処理を行う。
【0037】
図3は、本実施形態のコントローラ110が実行する描画処理のフローチャートを示す。以下、図3を参照して、コントローラ110の描画処理について説明する。
【0038】
図3の処理は、画像形成装置100がホストPC130から印刷データを受領することにより開始する。図3の処理は、ステップS300から開始し、ステップS301では、画像形成装置100のコントローラ110に実装されているPDLパーサ220が、受領した印刷データに含まれるページ記述言語を解析する。ステップS302は、PDLパーサ220が、描画コア230に含まれる描画モジュールI/F232をコールして描画処理を実行する。
【0039】
ステップS303では、分割処理部234が、ステップS302で生成された描画オブジェクトを特定のバンド高さ毎に分割する。ステップS304では、計数処理部236が、後述するカラーテーブルを使用して、分割された各描画オブジェクトの色数を計数する。ステップS305では、計数処理部236が、ステップS304で計数した色数がしきい値以下であるか判断し、色数がしきい値以下である場合には(yes)、処理をステップS306に分岐する。ステップS306では、計数処理部236が、後述するインデックステーブルを作成する。一方、ステップS305の判定で、色数がしきい値よりも大きいと判断された場合には(no)、処理をステップS307に分岐する。
【0040】
ステップS307では、描画データ保存部238が、分割された描画データおよび描画設定情報を中間データとして保存する。ステップS308では、多値描画処理部240が中間データを取得し、描画形式がインデックス形式であるか否か判断する。ステップS308の判定で、描画形式がインデックス形式でないと判断された場合(no)、処理をステップS309に分岐させる。ステップS309では、多値描画処理部240が、描画データを画像データメモリに描画する。ステップS310では、色変換処理部242が、出力デバイスの色特性に合わせて描画データの色変換を行う。
【0041】
一方、ステップS308の判定で、描画形式がインデックス形式であると判断された場合(yes)、処理をステップS311に分岐させる。ステップS311では、多値描画処理部240が、インデックステーブルを用いて描画データを画像データメモリに描画する。ステップS312では、色変換処理部242が、RGB形式およびCMYK形式の色値対応表を用いて、描画データをRGB形式からCMYK形式に変換する。
【0042】
ステップS313では、2値変換処理部244が、色変換処理部242が変換した描画データに対してハーフトーン処理を実行して2値形式に変換し、ステップS314で処理を終了する。
【0043】
図4は、従来のPDLの描画命令400Aおよび本実施形態のコントローラ110が使用する描画命令400Bの実施形態を示した図である。描画命令400Aは、Post Scriptで使用される描画命令である。描画命令400Aは、カラースペースとしてRGBカラースペースが指定されており、色値(0.5,0.0,0.0)が指定されている。また、描画命令400Aは、対角の座標(100,100)および座標(200,200)を指定して矩形を描画する。
【0044】
描画命令400Bには、描画データの色指定を行うインタフェース関数setcolorと、矩形を描画するインタフェース関数rectangleとが含まれている。インタフェース関数setcolorは、第1引数でカラースペースを指定し、第2〜第4引数で描画データの色値を0.0〜1.0の範囲で指定する。本実施形態では、カラースペースとしてRGBカラースペースが指定されており、色値(0.5,0.0,0.0)が指定されている。
【0045】
インタフェース関数rectangleは、描画データとされるべき値を引数として対角の座標(100,100)および座標(200,200)が指定された矩形を描画するインタフェース関数である。これらのインタフェース関数をコールすることにより、上述したPost Scriptの描画命令が生成する描画データと同じ描画データを生成することができる。
【0046】
図5は、描画モジュールI/F232が描画した描画オブジェクトの実施形態を示した図である。以下、図5を参照して、分割処理部234の描画データの分割処理について説明する。
【0047】
図5には、描画オブジェクト510、520が示されている。図5の実施形態では、バンド高さを256としており、Y座標が0〜255をバンド0、Y座標が256〜512をバンド1として規定している。描画オブジェクト510は、インタフェース関数rectangleに引数(100,100,200,200)を設定して描画されたデータである。図5に示すように、描画オブジェクト510は、Y座標が0〜255の範囲に収まるため、バンド0に分類される。
【0048】
描画オブジェクト520は、インタフェース関数rectangleに引数(100,100,300,300)を設定して描画されたデータである。図5に示すように、描画オブジェクト520は、バンド高さを規定する境界を跨って存在する。したがって、本実施形態の場合、分割処理部234は、描画オブジェクト520を、描画オブジェクト522と描画オブジェクト524とに分割する。本実施形態では、描画オブジェクト522はバンド0に分類され、描画オブジェクト524はバンド1に分類される。なお、本実施形態では、バンド高さを256としているが、画像データメモリに格納可能な限り、任意の大きさにすることができる。また、本実施形態では、座標の原点を左下にして説明しているが、他の実施形態では、原点を左上に規定することもできる。
【0049】
分割処理部234は、画像データメモリに格納可能なデータ量の描画データ、本実施形態では、描画オブジェクト510、520に分割する。そして、多値描画処理部240が、描画データのうちの一つ、例えば、描画オブジェクト510を画像データメモリに格納する。その他の描画データ、例えば、描画オブジェクト520は、圧縮して画像データメモリ以外のRAMに格納するか、またはHDDに待避しておく。描画データ510の描画処理が終了した場合には、描画データ510は圧縮されて画像データメモリ以外のRAMに格納され、またはHDDに格納される。そして、多値描画処理部240は、圧縮された描画データ520を解凍して画像データメモリにロードし、またはHDDから画像データメモリに描画データをロードする。
【0050】
図6は、計数処理部236が描画オブジェクトの色を計数するために使用されるカラーテーブルおよび色数管理テーブルの実施形態を示した図である。以下、図6を参照して、カラーテーブル610および色数管理テーブル620について説明する。図6で説明する各種データおよび各種データに対して施す処理によって、本実施形態の色変換処理が行われる。
【0051】
カラーテーブル610はハッシュテーブルであり、描画オブジェクトで使用されている色を示す色値を元に生成されたハッシュ値であるインデックス値612を添え字とした配列である。本実施形態のカラーテーブル610は、256の配列が結合されたデータ構造を有しており、各配列には、描画オブジェクトで使用されている色を示す色値がリスト形式で格納される。
【0052】
本実施形態では、インデックス値612は、描画オブジェクトで使用されている色の色値を元に算出される。具体的には、描画オブジェクトを構成するピクセルの色値がRGB(255,0,0)である場合、これらの値の総和をハッシュテーブルサイズで除したときに得られる剰余(モジュロ)をハッシュ値とする。すなわち、RGB(255,0,0)の場合、色値の総和(255+0+0)をハッシュテーブルサイズ(256)で除して得られた剰余(255)がハッシュ値、すなわちインデックス値である。したがって、色値(255,0,0)は、インデックス値(255)に関連付けられた配列616に格納される。
【0053】
同様に、色値がRGB(0,0,255)である場合、色値の総和(0+0+255)をハッシュテーブルサイズ(256)で除して得られた剰余(255)がインデックス値であり、色値(0,0,255)は、当該インデックス値に関連付けられた配列618に新たなリストとして追加される。なお、同一の色値がカラーテーブルに既に登録されている場合には、当該色値は登録されない。
【0054】
計数処理部236は、バンド単位で分割された各描画オブジェクトのカラーテーブルを作成し、カラーテーブルに登録された色値の数を計数する。そして、計数処理部236は、計数された数を当該描画オブジェクトで使用されている色の数として、色数管理テーブル620に登録する。
【0055】
色数管理テーブル620は、各バンドで使用されている色の数を登録するデータテーブルである。色数管理テーブル620のバンド622には、分割処理部234が生成したバンドを固有に識別するバンド名が登録される。色数624には、各バンドで使用される色の数が、バンド名に関連付けられて登録される。
【0056】
図7は、描画データ保存部238が中間データとして保存する描画データのデータ構造700Aおよび描画モジュールI/F232が発行する描画コマンドの対応表700Bを示した図である。以下、図7を参照して、中間データについて説明する。
【0057】
中間データは、分割処理部234が分割した各描画オブジェクトの属性情報、描画位置情報およびイメージデータ等を含むデータであり、FIFO(First In First Out)形式により、RAMやHDD等の記憶装置に格納される。中間データは、描画オブジェクトの属性情報であるグラフィックス状態(GStatus)が格納されるレコード710と、描画モジュールI/F232が発行する描画コマンドのID番号722、パッディングバイト724および描画コマンドの属性情報(flag)726が格納されるレコード720と、描画コマンドによって生成される描画データの位置情報が格納されるレコード730とが含まれる。
【0058】
レコード710に格納されるグラフィックス状態には、描画オブジェクトのカラースペース、色値、透過属性値、ラスターオペレーション(Raster Operation値(以降、ROP値として参照する。)、線幅および描画形式情報などの属性情報が含まれる。描画形式情報とは、描画オブジェクトをRGB形式によって描画する方法か、インデックス形式によって描画する方法かを選択するための情報である。
【0059】
図5を参照して説明した描画コマンドsetcolor(RGBColor,0.5,0.0,0.0)の場合、RGBカラースペースおよび色値(0.5,0.0,0.0)が、グラフィックス状態として設定される。なお、同一のバンド内で複数の色が使用されている場合には、複数の色値をグラフィックス状態として設定することができる。
【0060】
レコード720に含まれる描画コマンドのID番号722には、描画モジュールI/F232が発行する描画コマンドの種類が設定される。対応表700Bには、描画コマンドのID番号と描画コマンドとの対応関係が示されている。本実施形態では、ID=0x00は、矩形を描画するコマンドであるRectangleを示し、ID=0x01は、直線を描画するコマンドであるLineDrawを示している。また、ID=0x02は、直線で囲まれた領域を塗りつぶすコマンドであるLineFillを示しており、ID=0x03は、イメージを描画するコマンドであるImageを示している。さらに、ID=0x04は、文字を描画するコマンドであるTextを示している。
【0061】
描画コマンドの属性情報(flag)726には、例えば、描画コマンドRectangleをClipとする場合に、クリッピングの有効を示す情報などが含まれ、ビット操作により当該属性情報を指定することができる。
【0062】
レコード730には、描画コマンドによって生成される描画オブジェクトの位置情報が格納され、図5を参照して説明した描画コマンドRectangle(100,100,200,200)の場合、引数として指定された描画オブジェクトの左下座標(100,100)および右上座標(200,200)が、それぞれレコード732、レコード734、レコード736およびレコード738に登録される。
【0063】
また、レコード740には、別のバンドの描画データが中間データとして登録されている。当該描画データの描画コマンドID742は、テキストを描画するコマンドが設定されており、そのテキストの描画位置が、レコード744およびレコード746で指定される。レコード748には、EUC−JPやShift_JIS、UTF−8などのテキストの文字コードが登録される。レコード750は、描画される文字の大きさが登録され、文字の大きさを指定するポイント等の値が設定される。
【0064】
さらに、レコード760には、他のバンドの描画データが中間データとして登録されている。当該描画データの描画コマンドID762は、イメージを描画するコマンドが設定されており、そのイメージの描画位置が、レコード764およびレコード766で指定される。レコード768には、描画されるイメージデータが設定される。レコード768には、描画されるイメージデータが格納されたメモリ領域のアドレスや圧縮されたイメージデータ、非圧縮のイメージデータなどを格納することができる。
【0065】
なお、本実施形態では、座標の原点が左下に位置することを前提にして描画オブジェクトの描画位置を説明しているが、他の実施形態では、原点を左上に規定して描画位置を指定することができる。
【0066】
図8は、描画データが格納される画像データメモリ800のデータ構造を示す概念図である。図8に示す画像データメモリ800は、各ピクセルのRGB色情報が点順次フォーマットで格納されるメモリ領域であるRGBプレーン810と、各ピクセルの属性値が格納されるメモリ領域である属性プレーン820と、デスティネーションの各ピクセルの透過属性値が格納されるメモリ領域である透過プレーン830とを含んでいる。
【0067】
RGBプレーン810は、描画処理が施されたオブジェクトのピクセル毎の色情報(P、R、G、B)が設定されるメモリ領域であり、描画オブジェクトが描画されるデスティネーションを構成する各ピクセルの色情報が予め設定されている。RGBプレーン810には、例えば、ページに何も描画されていない場合には、初期値としてデスティネーションの色値であるCd(P,R,G,B)=(0,255,255,255)が設定される。そして、RGBプレーン810には、当該デスティネーションの色値等を使用して算出される描画処理後のデスティネーションの色値であるCd’が登録される。なお、デスティネーションの色値Cd’の算出方法については、より詳細に後述する。
【0068】
RGBプレーン810の各色情報は1バイトのデータ量を有しているため、1ピクセルの描画に必要な色情報のデータサイズは4バイトである。Pはパディングバイトであり、カラースペースがRGBカラースペースの場合には、0がパディングバイトとして埋められる。R、G、Bは、それぞれ赤、緑、青を示しており、本実施形態では、各色が8ビットの情報量を有しているため、各色が256種類の色を表現することができる。
【0069】
属性プレーン820は、描画処理が施されたオブジェクトの各ピクセルの属性情報が格納されるメモリ領域である。属性情報は、描画されたピクセルの種類を区別するための情報であり、描画されたピクセルが、文字、イメージ、グラフィックス等であるか区別するために使用される。本実施形態では、1ピクセルの描画に必要な属性情報のサイズは1バイト(8ビット)であり、1ピクセルにつき最大で256種類の属性情報を持たせることができる。
【0070】
透過プレーン830は、透過制御処理が施されたオブジェクトの透過属性値が登録されるメモリ領域であり、描画オブジェクトが描画されるデスティネーションを構成する各ピクセルの透過属性値が予め設定されている。透過プレーン830には、例えば、初期値としてデスティネーションの透過属性値Ad=0(不透過)が設定される。透過属性値は、重畳する描画データの透過の割合を示す値であり、0〜100の値で指定される。当該透過属性値は、描画処理後のデスティネーションの色値を決定するために使用され、透過制御処理後のデスティネーションの透過属性値であるAd’が、透過プレーン830に登録される。なお、透過制御処理後のデスティネーションの透過属性値Ad’の算出方法については、より詳細に後述する。本実施形態では、1ピクセルの描画に必要とされる透過属性値のデータサイズは1バイト(8ビット)である。なお、ラスターオペレーション処理を実行する場合には、透過プレーン830は使用されない。
【0071】
本実施形態の画像形成装置100のCPU112は、1ピクセル分の描画データとして、4バイトの色情報、1バイトの属性情報および1バイトの透過属性情報を処理し、1ピクセル分の描画処理に必要な描画データサイズは、合計6バイトとなる。本実施形態では、1ピクセルの描画処理を実行する場合、CPU112に含まれる32bitレジスタが、4バイトの色情報と、1バイトの属性情報および1バイトの透過属性情報とを個別にロードするように構成されており、合計2回の読み出し処理で1ピクセル分の描画データを取得することができる。
【0072】
なお、本実施形態では、属性プレーン820および透過プレーン830を個別のメモリ領域として説明しているが、他の実施形態では、同一のプレーン内に同一のピクセルの属性情報および透過属性値を格納してもよい。この場合、1ピクセル分の属性情報および透過属性値として、2バイトのメモリ領域が必要となる。
【0073】
多値描画処理部240は、FIFO形式により中間データとして保存された描画データを順に取り出して、ラスターオペレーション処理または透過制御処理を実行して、図8に示すように画像データメモリに格納する。ラスターオペレーション処理は、Windows(登録商標)系のOSで使用されるグラフィックスエンジンが行う画像処理であり、同一領域内で重畳する図形を構成する各ピクセルの色値をビット演算(例えば、OR、XOR、AND等)する処理である。
【0074】
透過制御処理は、Windows(登録商標)Vista等のOSがサポートするXPSやPDF等で使用される画像処理であり、同一領域内で重畳する図形の透過属性値(0〜100%)を使用して色値を決定し、描画オブジェクトの透過性描画を実現する処理である。本実施形態の多値描画処理部240は、ラスターオペレーション処理および透過制御処理の双方を用いて描画処理を行うことはないが、他の実施形態では、ラスターオペレーション処理および透過制御処理の双方を同時に用いて描画処理を行ってもよい。
【0075】
以下、本実施形態の上述した透過制御処理について、さらに詳細に説明する。通常、透過制御処理は、(1)描画対象であるソースデータに対してのみ実行する場合と、(2)ソースデータおよび当該ソースデータが描画されたデスティネーションの双方に対して実行する場合とがある。
【0076】
(1)の場合、ソースデータのピクセル値をS、デスティネーションのピクセル値をD、ソースデータの透過属性値をα(0〜1の値)とすると、透過制御処理実行後の色値NewDは、以下のようになる。
【0077】
【数1】
【0078】
この処理は、RGBの各色に対して実施される。デスティネーションのピクセル値Dが存在しない場合には、透過プレーン830は使用されない。
【0079】
(2)の場合、ソースデータの透過属性値をAs(0〜1の値)、デスティネーションの透過属性値をAd、透過制御処理実施後のデスティネーションの透過属性値をAd’、ソースデータの色値をCs、デスティネーションの色値をCd、透過制御処理実施後のデスティネーションの色値をCd’とすると、以下の式が成り立つ。
【0080】
【数2】
【0081】
透過制御処理によって算出されたデスティネーションの透過属性値Ad’は、透過プレーン830の該当するメモリ領域に格納される。
【0082】
多値描画処理部240は描画処理を行う場合、中間データとして保存されているグラフィックス状態(GStatus)を取得する。GStatusに描画対象であるオブジェクトの透過属性値が設定されている場合には、多値描画処理部240は、GStatusから当該透過属性値および色値を取得するとともに、RGBプレーン810に設定されているデスティネーションの色値と、透過プレーン830に設定されているデスティネーションの透過属性値とを取得する。
【0083】
そして、多値描画処理部240は、描画オブジェクトの透過属性値および色値と、デスティネーションの色値および透過属性値とを用いて、透過制御処理を実行して、新たな描画データであるデスティネーションの色値および透過属性値を算出し、画像データメモリを更新する。なお、本実施形態では、透過制御処理の方式は、同一ページを処理する場合には1つの方式が採用されるため、複数の方式が混在することはない。
【0084】
一方、GStatusにROP値としてラスターオペレーション処理を指定するIDが設定されている場合には、多値描画処理部240は、重畳するソースデータおよびデスティネーションデータの各ピクセルの色値に対して、当該IDにより指定されたビット演算を実行する。当該IDは、0から255までの256通り設定することができ、各IDに対してビット演算が予め関連付けられている。
【0085】
次に、色変換処理部242は、多値描画処理部240が生成した描画データに対して色変換処理を実行する。色変換処理は、描画データの色情報をRGB形式からCMYK形式に変換する処理であり、本実施形態では、色変換処理として、カラーマッチング処理およびBG/UCR(Black generation/Under Color removal)処理が利用される。
【0086】
色変換処理部242は、多値描画処理部240が生成したRGBプレーン810および属性プレーン820に格納されるRGB形式の描画データを画像データメモリから取得し、カラーマッチング・モジュールをコールする。カラーマッチング・モジュールは、取得した描画データに対して、カラーマッチング処理を実行し、描画データの色を出力デバイスの色特性に適合した色に変換し、画像データメモリの同一アドレスに格納する。
【0087】
さらに、カラーマッチング処理では、属性プレーンに格納された属性データを参照して、文字、イメージ、グラフィックス等の描画オブジェクトの種類毎に色を変換することができる。
【0088】
次に、色変換処理部242は、BG/UCRモジュールをコールする。BG/UCRモジュールは、画像データメモリに格納されている描画データにBG/UCR処理を実行して、描画データの表現形式をRGB形式からCMYK形式に変換する。
【0089】
図8は、BG/UCR処理実施後のCMYK形式の描画データが格納されるメモリ領域であるKCMYプレーン840を示している。KCMYプレーン840は、ピクセル毎の色情報(K、C、M、Y)が含まれている。各色情報は1バイトのデータ量を有しており、1ピクセルの描画に必要な色情報のデータサイズは4バイトである。K、C、M、Yは、それぞれ黒、シアン、マゼンダ、黄を示しており、本実施形態では、各色が8ビットの情報量を有するため、各色が256種類の色を表現することができる。
【0090】
図8に示すように、BG/UCR処理の前後では、描画データのサイズは変更されず、本実施形態では、描画データのサイズは4バイトのままである。また、BG/UCR処理後の描画データは、画像データメモリの同一領域に格納される。すなわち、色変換処理部242は、余分なメモリ領域の取得を行わずに、色変換処理を実行することができる。
【0091】
次に、2値変換処理部244は、色変換処理部242が生成したCMYK形式の描画データおよび属性データを画像データメモリから取得し、ハーフトーン処理を実行する。
【0092】
図9は、本実施形態の多値描画処理部240がインデックス描画形式により描画データを処理する際に使用するインデックステーブルの作成処理のフローチャートである。インデックス描画形式とは、インデックステーブルを使用した描画形式であり、RGB各色8ビットで描画処理を行う描画形式に比べて、1ピクセルの描画データを表現するのに必要なデータ量が少ない。以下、図9を参照して、インデックステーブルの作成処理について説明する。なお、本実施形態では、計数処理部236がインデックステーブルを作成するが、他の実施形態では、他の機能処理部がインデックステーブルを作成してもよい。
【0093】
図9の処理は、図3を参照して説明した処理のステップS306に対応する。図9の処理は、ステップS900から開始し、ステップS901でインデックス値を設定するための変数Indexに0が設定されて初期化される。ステップS902では、計数処理部236が、該当するバンドの属性情報(GStatus)を取得し、ステップS903では、計数処理部236が、取得した属性情報に含まれるバンドで使用されている色の色値をインデックステーブルに登録する。ステップS904では、計数処理部236が、ステップS903で登録された色値に関連付けて、インデックス値として変数Indexの値をインデックステーブルに登録する。
【0094】
ステップS905では、計数処理部236が、該当するバンドで使用されている総ての色の色値が登録されたか判断し、総ての色値が登録されていない場合(no)には、処理をステップS906に分岐する。ステップS906では、変数Indexの値がインクリメントされ、ステップS903に処理を戻す。
【0095】
一方、ステップS905の判定で、総ての色値が登録されていると判断された場合(yes)には、処理をステップS907に分岐する。ステップS907では、計数処理部236が、他に取得すべきバンドの属性情報があるか否か判断し、取得すべきバンドの属性情報がある場合(yes)には、処理をステップS901に戻して、別のバンドのインデックステーブルを作成する。
【0096】
一方、ステップS907の判定で、取得すべきバンドの属性情報が無いと判断された場合(no)には、処理がステップS908に分岐され、図9の処理が終了する。
【0097】
図10は、図9の処理によって作成されたインデックステーブルの実施形態を示した図である。以下、図10を参照して、インデックステーブル1010、1020について説明する。インデックステーブルは、分割処理部234が生成したバンド毎に作成され、インデックステーブル1010は、或るバンド用のインデックステーブルであり、インデックステーブル1020は、別のバンド用のインデックステーブルである。
【0098】
インデックステーブル1010、1020には、バンドで使用されている色の色値1014、1024と、当該色に関連付けられたインデックス1012、1022とが登録される。本実施形態では、インデックステーブル1010には、色値として(255,0,0)および(0,0,255)が登録されており、それぞれインデックス値として0および1が関連付けられて登録されている。また、インデックステーブル1020には、色値として(255,0,0)、(0,0,255)、(0,255,0)および(0,255,255)が登録されており、それぞれインデックス値として0、1、2および3が関連付けられて登録されている。なお、本実施形態では、色値はRGB形式で表されており、インデックス値は10進数で表されている。
【0099】
図11は、インデックス描画形式によって画像データメモリ1110、1120および1130に点順次フォーマットで格納された描画データのデータ構造を示した図である。画像データメモリ1110は、描画データを構成する1ピクセルの色値を1ビットで表現する実施形態であり、最大で2色の色を表現することができる。画像データメモリ1120は、1ピクセルの色値を2ビットで表現する実施形態であり、最大で4色の色を表現することができる。画像データメモリ1130は、1ピクセルの色値を4ビットで表現する実施形態であり、最大で16色の色を表現することができる。このため、インデックス描画形式は、RGB各色8ビットで描画処理を行う描画形式に比べて、1ピクセルの描画データを表現するのに必要とされるデータ量を低減することができる。
【0100】
本実施形態の描画コア230は、中間データとして保存された描画データを取得し、描画形式としてインデックス形式が指定されている場合には、インデックステーブルを使用して画像データメモリに描画データを格納する。そして、描画コア230は、予め用意されたRGB形式の色値と、CMYK形式の色値との対応表を用いて、画像データメモリに格納された描画データをRGB形式からCMYK形式に変換して、出力データとすることができる。
【0101】
本実施形態の上記機能は、C、C++、C#、Java(登録商標)などのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、CD−ROM、MO、DVD、フレキシブルディスク、EEPROM、EPROMなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【0102】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【0103】
100…画像形成装置、110…コントローラ、112…CPU、114…ROM、116…RAM、118…NVRAM、120…ネットワークI/F、122…エンジンI/F、124…パネルI/F、130…ホストPC、140…エンジン、150…パネル装置、220…PDLパーサ、230…描画コア、232…描画モジュールI/F、234…分割処理部、236…計数処理部、238…描画データ保存部、240…多値描画処理部、242…色変換処理部、244…2値変換処理部
【先行技術文献】
【特許文献】
【0104】
【特許文献1】特開2004−243569号公報
【技術分野】
【0001】
本発明は、画像形成装置に関し、より詳細には、描画処理を効率化する画像形成装置、画像形成方法、プログラムおよび記録媒体に関する。
【背景技術】
【0002】
画像形成装置は、コンピュータ上で作成された文書や画像などを印刷する場合、PDL(Page Description Language)によって文字や図形の位置情報、書式情報などのデータを解析・解読し、ビットマップイメージを作成して紙媒体等に印刷する。画像形成装置がPDLを解析・解読する際に行う描画処理として、透過制御処理がある。透過制御処理とは、背景上に描かれたオブジェクトが透けて、オブジェクトが背景に溶け込んでいるように描画する処理であり、Microsoft社が提供するWindows(登録商標)Vista等のOSで使用されている電子文書規格であるXPS(XML Paper Specification)に基づいた描画処理である。
【0003】
透過制御処理では、重畳する描画データ(以降、ソースデータとして参照する。)の透過属性情報と、ソースデータが重畳される描画先の画像データ(以降、デスティネーションとして参照する。)の透過属性情報とを使用して、最終的に描画される描画データの色情報を決定する。これらの透過属性情報は、描画データを構成するピクセル毎に保存する必要がある。
【0004】
また、現在の画像形成装置では、PDLを解析して得られたカラー画像に対して、複数画素単位で階調を表現させるハーフトーン処理が施されている。ハーフトーン処理とは、黒と白の2色だけを用いてハーフトーン(中間色)を表現する技術であり、2値出力の表示装置でグレースケールを表現しようとする技術である。ハーフトーン処理を実行する場合、透過制御処理後にも描画オブジェクトの属性情報が必要となる。
【0005】
したがって、透過制御処理を実行する場合には、描画データの色情報、属性情報、および透過属性情報がピクセル毎に必要となり、RGB24bitで1ピクセル分の描画データを処理するためには、色情報(3バイト)の他、属性情報および透過属性情報のデータをCPUのレジスタにロードする必要がある。
【0006】
特許文献1は、入力された描画コマンドをビットマップ画像に描画する描画プレーンを生成する手段と、描画コマンドの画像オブジェクトを描画プレーンに重畳して新たに描画プレーンを生成する手段と、描画コマンドとその属性から画像全体の各ピクセルに対して属性の決定に用いる情報プレーンを生成する手段とを備える画像形成装置を開示する。この画像形成装置は、RGB24bitの描画プレーンおよび3bitの情報プレーンを用いて、RGB24bitからCMYK32bitの色空間変換を行う。したがって、特許文献1の画像形成装置は、1ピクセル分の描画処理を実行するために、少なくとも4バイトのデータ量を処理する。
【0007】
一方、現在の画像形成装置で使用されているCPUは通常、32bit(4バイト)のレジスタを含んで構成されている。
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1に示すような従来の画像形成装置で透過制御処理を実行しようとする場合、色情報および属性情報の他、透過属性情報を含む描画データをレジスタにロードする必要があるため、通常使用されている32bitのレジスタは、1ピクセル分の描画データを1度にロードすることができない。このため、CPUは、RAM等に格納されている描画データを1バイト単位でレジスタにロードして、1ピクセル分の描画データを処理しなければならず、解像度が高い印刷データほど描画処理が非効率的になるという問題があった。
【0009】
したがって、画像形成装置に搭載されたCPUが少ない読み出し回数で効率的に描画データを読み出すことができ、さらに描画データを効率的に画像データメモリに書き込むことができる画像形成装置が必要とされていた。
【0010】
本発明は、上述した従来技術の問題点に鑑みてなされたものであり、効率的に描画データを読み出し・書き込み可能な画像形成装置、画像形成方法、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明では、上述した問題に対応するために、描画データを処理する画像形成装置は、描画データが格納される画像データメモリのサイズに応じて、描画データを分割する分割処理手段と、分割処理手段が分割した各描画データで使用される色数を計数する計数処理手段と、分割処理手段が分割した各描画データを中間データとして保存する描画データ保存手段と、中間データを使用してRGB形式の描画データを生成する多値描画処理手段と、多値描画処理手段が生成したRGB形式の描画データをCMYK形式の描画データに変換する色変換処理手段とを含む。
【0012】
中間データには、描画データの色情報と、描画データの属性情報、および描画データが描画される画像データに対する描画データの透過の割合を示す透過属性値とが含まれており、多値描画処理手段は、描画データの色情報および透過属性値を使用して描画データに対して透過制御処理を実行することができる。
【0013】
また、多値描画処理手段は、描画データが描画される画像データの色情報および透過属性値を使用して、描画データに対して透過制御処理を実行することができる。
【0014】
さらに、画像形成装置は、描画データの属性情報を使用して、色変換処理手段が生成した描画データに対してハーフトーン処理を実行して、描画データを2値化する2値変換処理手段をさらに備えており、描画データをグレースケールで表現することができる。
【0015】
さらに、画像形成装置が備えるCPUが、2回の読み出しで1ピクセル分の描画データを読み取り可能であり、描画処理を効率化することができる。
【0016】
さらに、色変換処理手段は、多値描画処理手段が描画データを生成する際に使用した画像データメモリの同一領域にCMYK形式の描画データを格納し、これにより、画像データメモリへの書き込み処理を効率化することができる。
【0017】
さらに、計数処理手段は、分割された各描画データで使用される色値と、当該色値に関連付けられたインデックスとが登録されるインデックステーブルを作成し、多値描画処理手段は、インデックステーブルを使用して、RGB形式の描画データを生成し、色変換処理手段は、RGB形式およびCMYK形式の色値対応表を用いて、多値描画処理手段が生成したRGB形式の描画データをCMYK形式の描画データに変換して出力データとするため、描画処理に必要とされるデータ量を大幅に削減することができる。
【0018】
さらに、描画データの属性情報には、インデックステーブルを用いた描画形式であるインデックス描画形式を指定する情報が含まれており、多値描画処理手段は、インデックス描画形式を指定する情報を使用して、RGB各色8ビットの描画形式およびインデックス描画形式のいずれかを描画形式として選択することができる。
【0019】
さらに、多値描画処理手段は、分割された描画データで使用されている色数に応じて、インデックス描画形式を指定することができる。
【0020】
さらに、多値描画処理手段は、分割された描画データ毎に描画形式を選択することができる。
【0021】
さらに、多値描画処理手段は、描画データの属性情報にラスターオペレーション処理を指定する値が含まれている場合に、描画データに対してラスターオペレーション処理を実行し、描画データの属性情報に前記透過属性値が含まれている場合に、描画データに対して透過制御処理を実行するため、ラスターオペレーション処理または透過制御処理を選択的に指定することができる。
【0022】
また、本発明は、画像形成装置が、画像データメモリのサイズに応じて描画データを分割し、各描画データで使用される色数を計数し、各描画データを中間データとして保存し、中間データを使用してRGB形式の描画データを生成し、RGB形式の描画データをCMYK形式の描画データに変換する方法を提供する。
【0023】
さらに、本発明は、画像処理装置を上記機能手段として機能させるためのコンピュータ実行可能なプログラムおよび記録媒体を提供する。
【図面の簡単な説明】
【0024】
【図1】本発明の画像形成装置100のハードウェア構成の実施形態を示した図。
【図2】本実施形態のコントローラ110の機能ブロック200を示した図。
【図3】本実施形態のコントローラ110が実行する描画処理のフローチャート。
【図4】従来のPDLの描画命令400Aおよび本実施形態のコントローラ110が使用する描画命令400Bの実施形態を示した図。
【図5】描画モジュール・インタフェース232が描画した描画オブジェクトの実施形態を示した図。
【図6】計数処理部236が描画オブジェクトの色を計数するために使用されるカラーテーブルおよび色数管理テーブルの実施形態を示した図。
【図7】中間データとして保存される描画データのデータ構造700Aおよび描画コマンドの対応表700Bを示した図。
【図8】描画データが格納される画像データメモリ800のデータ構造を示す概念図。
【図9】インデックス描画形式により描画データを処理する際に使用するインデックステーブルの作成処理のフローチャート。
【図10】図9の処理によって作成されたインデックステーブルの実施形態を示した図。
【図11】インデックス描画形式によって画像データメモリに点順次フォーマットで格納された描画データのデータ構造を示した図。
【発明を実施するための形態】
【0025】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図1は、本発明の画像形成装置100のハードウェア構成の実施形態を示す。画像形成装置100は、ネットワークプリンタやラインプリンタなどの印刷処理装置として機能し、画像形成装置100の制御を行うコントローラ110と、用紙に画像を印刷するためのエンジン140と、ユーザからの入力を受領し、または画像形成装置100の状態を表示するパネル装置150とを含んで構成されている。
【0026】
コントローラ110は、CPU112と、ROM114とを含んでいる。CPU112は、コントローラ110が実装するプログラムの命令を実行する。ROM114は、コントローラ110上で動作するプログラムを格納する。また、コントローラ110は、RAM116を含んでおり、プログラムが生成するページ空間を提供するページメモリ等の画像データメモリや、プログラムが動作するために必要なワークメモリとして機能する。さらに、コントローラ110は、NVRAM118を含んでおり、NVRAM118は、画像形成装置100の印刷設定条件などを保存する。
【0027】
また、コントローラ110は、ネットワーク・インタフェース(以下、ネットワークI/Fとして参照する。)120とエンジン・インタフェース(以下、エンジンI/Fとして参照する。)122とを含んでおり、ネットワークI/F120は、ネットワークを介してホストPC130とデータ交換を行ない、エンジンI/F122は、エンジン140に対する印刷制御を行う。さらに、コントローラ110は、パネル装置150の制御を行うためのパネル・インタフェース(以下、パネルI/Fとして参照する。)124とを含んでおり、ユーザからの入力を受領して各種処理を実行する。
【0028】
さらに、画像形成装置100は、ネットワークを介してホストPC130に接続されており、ホストPC130から印刷指示を受領して印刷処理を行う。ネットワークは、1000Base−TXなどのイーサネット(登録商標)、光ネットワーク、IEEE802.11などの規格に準拠した無線ネットワークを含んで構成することができ、フレームまたはTCP/IPプロトコルに基づくパケット通信によって、相互通信が行われる。ネットワークは、LAN(Local Area Network)などの狭域ネットワークとして構成することができる。
【0029】
図2は、本実施形態のコントローラ110の機能ブロック200を示した図である。コントローラ110は、PDL(Page Description Language)の構文解析を行うPDLパーサ220と、描画処理を行う描画コア230とを含んで構成されている。PDLパーサ220は、ホストPC130から受領した印刷データに含まれるPDLの構文解析を行う。PDLパーサ220は、Post ScriptやPDF、PCL、XPSなどの様々なページ記述言語を解析可能であり、描画コア230を呼び出して描画処理を実行させることにより、PDLの種類に関わらず描画が可能である。
【0030】
描画コア230は、描画モジュール・インタフェース(以下、描画モジュールI/Fとして参照する。)232と、分割処理部234と、計数処理部236と、描画データ保存部238とを含んでいる。描画モジュールI/F232は、PDLパーサ220からテキスト、イメージ、ベクターグラフィックス等の描画データや、色、ブラシ、透過属性情報である透過属性値、線形状等の描画設定情報を受領するインタフェースであり、描画データや描画設定情報を設定可能なインタフェース関数を備えている。描画コア230は、当該インタフェース関数を用いてPDLから描画データを生成する。なお、インタフェース関数については、より詳細に後述する。
【0031】
分割処理部234は、コントローラ110が1ページ分の描画データを格納可能なメモリを確保できない場合に、ページメモリ等の画像データメモリが格納可能な大きさに描画データを分割する。具体的には、分割処理部234は、描画モジュールI/F232が描画するデータである描画オブジェクトをバンド高さに応じて分割する。バンド高さとは、描画オブジェクトが描画される画像データであるデスティネーションをy軸方向に分割した領域の幅であり、画像データメモリが格納可能な描画データのデータ量によって決められる。なお、分割処理部234の分割処理については、より詳細に後述する。
【0032】
計数処理部236は、分割処理部234が分割した各描画オブジェクトを構成する色の数である色数を計数する。計数処理部236は、計数した色数をバンドに関連付けて色数管理テーブルに登録する。また、計数処理部236は、計数した色数がしきい値以下の場合には、後述するインデックステーブルを作成する。しきい値は、RGBの各色を8ビットで表現される色数よりも少ない値、例えば、2、4、16、128、256等とすることができる。したがって、1ピクセルの描画データを表現するのに24ビットの画像データメモリを必要とするRGBの各色8ビットの表現形式に比べて、インデックステーブルを用いて描画データを表現するインデックス形式は、使用する画像データメモリのデータ量を大幅に削減することができる。
【0033】
描画データ保存部238は、分割処理部234が分割した描画データを中間データとしてRAM等のメモリまたはHDD等の主記憶装置に保存する。なお、計数処理部236の計数処理、インデックステーブル作成処理、および保存される中間データの詳細については、より詳細に後述する。
【0034】
さらに、描画コア230は、多値描画処理部240と、色変換処理部242と、2値変換処理部244とを含んでいる。多値描画処理部240は、中間データとして保存されている描画データおよびデスティネーションの描画データを用いて、描画対象であるオブジェクトの描画データを生成し、各色8ビットのRGBカラーデータとして画像データメモリに格納する。また、多値描画処理部240は、描画形式がインデックス形式である場合、計数処理部236が作成したインデックステーブルを用いて描画データを画像データメモリに格納する。
【0035】
色変換処理部242は、多値描画処理部240が画像データメモリに格納した描画データに対して色変換処理を実行して、RGB形式の描画データを、デバイスの色特性に適合したCMYK形式の描画データに変換し、画像データメモリを更新する。また、色変換処理部242は、描画形式がインデックス形式である場合、RBG形式の色値とCMYK形式の色値との対応表を用いて、描画データをRGB形式からCMYK形式に変換する。
【0036】
2値変換処理部244は、画像データメモリからCMYK形式の描画データおよび属性データを受領し、属性データを用いて、描画オブジェクト毎にディザ法や誤差拡散法などによる階調処理、ディザリング処理等のハーフトーン処理を実行して、描画データを2値形式に変換する。属性データには、オブジェクトの種類、例えば、当該オブジェクトを構成する各ピクセルがイメージ、文字、塗りつぶし図形、線等であるかを示すフラグ情報が含まれている。本実施形態のハーフトーン処理では、オブジェクトの各ピクセルの色と、ハーフトーンパターンまたはディザパターンの閾値とを比較し、当該ピクセルの色が閾値以上である場合には、属性データからオブジェクトの種類を判断し、当該オブジェクトに適したハーフトーンパターンを用いてハーフトーン処理を行う。
【0037】
図3は、本実施形態のコントローラ110が実行する描画処理のフローチャートを示す。以下、図3を参照して、コントローラ110の描画処理について説明する。
【0038】
図3の処理は、画像形成装置100がホストPC130から印刷データを受領することにより開始する。図3の処理は、ステップS300から開始し、ステップS301では、画像形成装置100のコントローラ110に実装されているPDLパーサ220が、受領した印刷データに含まれるページ記述言語を解析する。ステップS302は、PDLパーサ220が、描画コア230に含まれる描画モジュールI/F232をコールして描画処理を実行する。
【0039】
ステップS303では、分割処理部234が、ステップS302で生成された描画オブジェクトを特定のバンド高さ毎に分割する。ステップS304では、計数処理部236が、後述するカラーテーブルを使用して、分割された各描画オブジェクトの色数を計数する。ステップS305では、計数処理部236が、ステップS304で計数した色数がしきい値以下であるか判断し、色数がしきい値以下である場合には(yes)、処理をステップS306に分岐する。ステップS306では、計数処理部236が、後述するインデックステーブルを作成する。一方、ステップS305の判定で、色数がしきい値よりも大きいと判断された場合には(no)、処理をステップS307に分岐する。
【0040】
ステップS307では、描画データ保存部238が、分割された描画データおよび描画設定情報を中間データとして保存する。ステップS308では、多値描画処理部240が中間データを取得し、描画形式がインデックス形式であるか否か判断する。ステップS308の判定で、描画形式がインデックス形式でないと判断された場合(no)、処理をステップS309に分岐させる。ステップS309では、多値描画処理部240が、描画データを画像データメモリに描画する。ステップS310では、色変換処理部242が、出力デバイスの色特性に合わせて描画データの色変換を行う。
【0041】
一方、ステップS308の判定で、描画形式がインデックス形式であると判断された場合(yes)、処理をステップS311に分岐させる。ステップS311では、多値描画処理部240が、インデックステーブルを用いて描画データを画像データメモリに描画する。ステップS312では、色変換処理部242が、RGB形式およびCMYK形式の色値対応表を用いて、描画データをRGB形式からCMYK形式に変換する。
【0042】
ステップS313では、2値変換処理部244が、色変換処理部242が変換した描画データに対してハーフトーン処理を実行して2値形式に変換し、ステップS314で処理を終了する。
【0043】
図4は、従来のPDLの描画命令400Aおよび本実施形態のコントローラ110が使用する描画命令400Bの実施形態を示した図である。描画命令400Aは、Post Scriptで使用される描画命令である。描画命令400Aは、カラースペースとしてRGBカラースペースが指定されており、色値(0.5,0.0,0.0)が指定されている。また、描画命令400Aは、対角の座標(100,100)および座標(200,200)を指定して矩形を描画する。
【0044】
描画命令400Bには、描画データの色指定を行うインタフェース関数setcolorと、矩形を描画するインタフェース関数rectangleとが含まれている。インタフェース関数setcolorは、第1引数でカラースペースを指定し、第2〜第4引数で描画データの色値を0.0〜1.0の範囲で指定する。本実施形態では、カラースペースとしてRGBカラースペースが指定されており、色値(0.5,0.0,0.0)が指定されている。
【0045】
インタフェース関数rectangleは、描画データとされるべき値を引数として対角の座標(100,100)および座標(200,200)が指定された矩形を描画するインタフェース関数である。これらのインタフェース関数をコールすることにより、上述したPost Scriptの描画命令が生成する描画データと同じ描画データを生成することができる。
【0046】
図5は、描画モジュールI/F232が描画した描画オブジェクトの実施形態を示した図である。以下、図5を参照して、分割処理部234の描画データの分割処理について説明する。
【0047】
図5には、描画オブジェクト510、520が示されている。図5の実施形態では、バンド高さを256としており、Y座標が0〜255をバンド0、Y座標が256〜512をバンド1として規定している。描画オブジェクト510は、インタフェース関数rectangleに引数(100,100,200,200)を設定して描画されたデータである。図5に示すように、描画オブジェクト510は、Y座標が0〜255の範囲に収まるため、バンド0に分類される。
【0048】
描画オブジェクト520は、インタフェース関数rectangleに引数(100,100,300,300)を設定して描画されたデータである。図5に示すように、描画オブジェクト520は、バンド高さを規定する境界を跨って存在する。したがって、本実施形態の場合、分割処理部234は、描画オブジェクト520を、描画オブジェクト522と描画オブジェクト524とに分割する。本実施形態では、描画オブジェクト522はバンド0に分類され、描画オブジェクト524はバンド1に分類される。なお、本実施形態では、バンド高さを256としているが、画像データメモリに格納可能な限り、任意の大きさにすることができる。また、本実施形態では、座標の原点を左下にして説明しているが、他の実施形態では、原点を左上に規定することもできる。
【0049】
分割処理部234は、画像データメモリに格納可能なデータ量の描画データ、本実施形態では、描画オブジェクト510、520に分割する。そして、多値描画処理部240が、描画データのうちの一つ、例えば、描画オブジェクト510を画像データメモリに格納する。その他の描画データ、例えば、描画オブジェクト520は、圧縮して画像データメモリ以外のRAMに格納するか、またはHDDに待避しておく。描画データ510の描画処理が終了した場合には、描画データ510は圧縮されて画像データメモリ以外のRAMに格納され、またはHDDに格納される。そして、多値描画処理部240は、圧縮された描画データ520を解凍して画像データメモリにロードし、またはHDDから画像データメモリに描画データをロードする。
【0050】
図6は、計数処理部236が描画オブジェクトの色を計数するために使用されるカラーテーブルおよび色数管理テーブルの実施形態を示した図である。以下、図6を参照して、カラーテーブル610および色数管理テーブル620について説明する。図6で説明する各種データおよび各種データに対して施す処理によって、本実施形態の色変換処理が行われる。
【0051】
カラーテーブル610はハッシュテーブルであり、描画オブジェクトで使用されている色を示す色値を元に生成されたハッシュ値であるインデックス値612を添え字とした配列である。本実施形態のカラーテーブル610は、256の配列が結合されたデータ構造を有しており、各配列には、描画オブジェクトで使用されている色を示す色値がリスト形式で格納される。
【0052】
本実施形態では、インデックス値612は、描画オブジェクトで使用されている色の色値を元に算出される。具体的には、描画オブジェクトを構成するピクセルの色値がRGB(255,0,0)である場合、これらの値の総和をハッシュテーブルサイズで除したときに得られる剰余(モジュロ)をハッシュ値とする。すなわち、RGB(255,0,0)の場合、色値の総和(255+0+0)をハッシュテーブルサイズ(256)で除して得られた剰余(255)がハッシュ値、すなわちインデックス値である。したがって、色値(255,0,0)は、インデックス値(255)に関連付けられた配列616に格納される。
【0053】
同様に、色値がRGB(0,0,255)である場合、色値の総和(0+0+255)をハッシュテーブルサイズ(256)で除して得られた剰余(255)がインデックス値であり、色値(0,0,255)は、当該インデックス値に関連付けられた配列618に新たなリストとして追加される。なお、同一の色値がカラーテーブルに既に登録されている場合には、当該色値は登録されない。
【0054】
計数処理部236は、バンド単位で分割された各描画オブジェクトのカラーテーブルを作成し、カラーテーブルに登録された色値の数を計数する。そして、計数処理部236は、計数された数を当該描画オブジェクトで使用されている色の数として、色数管理テーブル620に登録する。
【0055】
色数管理テーブル620は、各バンドで使用されている色の数を登録するデータテーブルである。色数管理テーブル620のバンド622には、分割処理部234が生成したバンドを固有に識別するバンド名が登録される。色数624には、各バンドで使用される色の数が、バンド名に関連付けられて登録される。
【0056】
図7は、描画データ保存部238が中間データとして保存する描画データのデータ構造700Aおよび描画モジュールI/F232が発行する描画コマンドの対応表700Bを示した図である。以下、図7を参照して、中間データについて説明する。
【0057】
中間データは、分割処理部234が分割した各描画オブジェクトの属性情報、描画位置情報およびイメージデータ等を含むデータであり、FIFO(First In First Out)形式により、RAMやHDD等の記憶装置に格納される。中間データは、描画オブジェクトの属性情報であるグラフィックス状態(GStatus)が格納されるレコード710と、描画モジュールI/F232が発行する描画コマンドのID番号722、パッディングバイト724および描画コマンドの属性情報(flag)726が格納されるレコード720と、描画コマンドによって生成される描画データの位置情報が格納されるレコード730とが含まれる。
【0058】
レコード710に格納されるグラフィックス状態には、描画オブジェクトのカラースペース、色値、透過属性値、ラスターオペレーション(Raster Operation値(以降、ROP値として参照する。)、線幅および描画形式情報などの属性情報が含まれる。描画形式情報とは、描画オブジェクトをRGB形式によって描画する方法か、インデックス形式によって描画する方法かを選択するための情報である。
【0059】
図5を参照して説明した描画コマンドsetcolor(RGBColor,0.5,0.0,0.0)の場合、RGBカラースペースおよび色値(0.5,0.0,0.0)が、グラフィックス状態として設定される。なお、同一のバンド内で複数の色が使用されている場合には、複数の色値をグラフィックス状態として設定することができる。
【0060】
レコード720に含まれる描画コマンドのID番号722には、描画モジュールI/F232が発行する描画コマンドの種類が設定される。対応表700Bには、描画コマンドのID番号と描画コマンドとの対応関係が示されている。本実施形態では、ID=0x00は、矩形を描画するコマンドであるRectangleを示し、ID=0x01は、直線を描画するコマンドであるLineDrawを示している。また、ID=0x02は、直線で囲まれた領域を塗りつぶすコマンドであるLineFillを示しており、ID=0x03は、イメージを描画するコマンドであるImageを示している。さらに、ID=0x04は、文字を描画するコマンドであるTextを示している。
【0061】
描画コマンドの属性情報(flag)726には、例えば、描画コマンドRectangleをClipとする場合に、クリッピングの有効を示す情報などが含まれ、ビット操作により当該属性情報を指定することができる。
【0062】
レコード730には、描画コマンドによって生成される描画オブジェクトの位置情報が格納され、図5を参照して説明した描画コマンドRectangle(100,100,200,200)の場合、引数として指定された描画オブジェクトの左下座標(100,100)および右上座標(200,200)が、それぞれレコード732、レコード734、レコード736およびレコード738に登録される。
【0063】
また、レコード740には、別のバンドの描画データが中間データとして登録されている。当該描画データの描画コマンドID742は、テキストを描画するコマンドが設定されており、そのテキストの描画位置が、レコード744およびレコード746で指定される。レコード748には、EUC−JPやShift_JIS、UTF−8などのテキストの文字コードが登録される。レコード750は、描画される文字の大きさが登録され、文字の大きさを指定するポイント等の値が設定される。
【0064】
さらに、レコード760には、他のバンドの描画データが中間データとして登録されている。当該描画データの描画コマンドID762は、イメージを描画するコマンドが設定されており、そのイメージの描画位置が、レコード764およびレコード766で指定される。レコード768には、描画されるイメージデータが設定される。レコード768には、描画されるイメージデータが格納されたメモリ領域のアドレスや圧縮されたイメージデータ、非圧縮のイメージデータなどを格納することができる。
【0065】
なお、本実施形態では、座標の原点が左下に位置することを前提にして描画オブジェクトの描画位置を説明しているが、他の実施形態では、原点を左上に規定して描画位置を指定することができる。
【0066】
図8は、描画データが格納される画像データメモリ800のデータ構造を示す概念図である。図8に示す画像データメモリ800は、各ピクセルのRGB色情報が点順次フォーマットで格納されるメモリ領域であるRGBプレーン810と、各ピクセルの属性値が格納されるメモリ領域である属性プレーン820と、デスティネーションの各ピクセルの透過属性値が格納されるメモリ領域である透過プレーン830とを含んでいる。
【0067】
RGBプレーン810は、描画処理が施されたオブジェクトのピクセル毎の色情報(P、R、G、B)が設定されるメモリ領域であり、描画オブジェクトが描画されるデスティネーションを構成する各ピクセルの色情報が予め設定されている。RGBプレーン810には、例えば、ページに何も描画されていない場合には、初期値としてデスティネーションの色値であるCd(P,R,G,B)=(0,255,255,255)が設定される。そして、RGBプレーン810には、当該デスティネーションの色値等を使用して算出される描画処理後のデスティネーションの色値であるCd’が登録される。なお、デスティネーションの色値Cd’の算出方法については、より詳細に後述する。
【0068】
RGBプレーン810の各色情報は1バイトのデータ量を有しているため、1ピクセルの描画に必要な色情報のデータサイズは4バイトである。Pはパディングバイトであり、カラースペースがRGBカラースペースの場合には、0がパディングバイトとして埋められる。R、G、Bは、それぞれ赤、緑、青を示しており、本実施形態では、各色が8ビットの情報量を有しているため、各色が256種類の色を表現することができる。
【0069】
属性プレーン820は、描画処理が施されたオブジェクトの各ピクセルの属性情報が格納されるメモリ領域である。属性情報は、描画されたピクセルの種類を区別するための情報であり、描画されたピクセルが、文字、イメージ、グラフィックス等であるか区別するために使用される。本実施形態では、1ピクセルの描画に必要な属性情報のサイズは1バイト(8ビット)であり、1ピクセルにつき最大で256種類の属性情報を持たせることができる。
【0070】
透過プレーン830は、透過制御処理が施されたオブジェクトの透過属性値が登録されるメモリ領域であり、描画オブジェクトが描画されるデスティネーションを構成する各ピクセルの透過属性値が予め設定されている。透過プレーン830には、例えば、初期値としてデスティネーションの透過属性値Ad=0(不透過)が設定される。透過属性値は、重畳する描画データの透過の割合を示す値であり、0〜100の値で指定される。当該透過属性値は、描画処理後のデスティネーションの色値を決定するために使用され、透過制御処理後のデスティネーションの透過属性値であるAd’が、透過プレーン830に登録される。なお、透過制御処理後のデスティネーションの透過属性値Ad’の算出方法については、より詳細に後述する。本実施形態では、1ピクセルの描画に必要とされる透過属性値のデータサイズは1バイト(8ビット)である。なお、ラスターオペレーション処理を実行する場合には、透過プレーン830は使用されない。
【0071】
本実施形態の画像形成装置100のCPU112は、1ピクセル分の描画データとして、4バイトの色情報、1バイトの属性情報および1バイトの透過属性情報を処理し、1ピクセル分の描画処理に必要な描画データサイズは、合計6バイトとなる。本実施形態では、1ピクセルの描画処理を実行する場合、CPU112に含まれる32bitレジスタが、4バイトの色情報と、1バイトの属性情報および1バイトの透過属性情報とを個別にロードするように構成されており、合計2回の読み出し処理で1ピクセル分の描画データを取得することができる。
【0072】
なお、本実施形態では、属性プレーン820および透過プレーン830を個別のメモリ領域として説明しているが、他の実施形態では、同一のプレーン内に同一のピクセルの属性情報および透過属性値を格納してもよい。この場合、1ピクセル分の属性情報および透過属性値として、2バイトのメモリ領域が必要となる。
【0073】
多値描画処理部240は、FIFO形式により中間データとして保存された描画データを順に取り出して、ラスターオペレーション処理または透過制御処理を実行して、図8に示すように画像データメモリに格納する。ラスターオペレーション処理は、Windows(登録商標)系のOSで使用されるグラフィックスエンジンが行う画像処理であり、同一領域内で重畳する図形を構成する各ピクセルの色値をビット演算(例えば、OR、XOR、AND等)する処理である。
【0074】
透過制御処理は、Windows(登録商標)Vista等のOSがサポートするXPSやPDF等で使用される画像処理であり、同一領域内で重畳する図形の透過属性値(0〜100%)を使用して色値を決定し、描画オブジェクトの透過性描画を実現する処理である。本実施形態の多値描画処理部240は、ラスターオペレーション処理および透過制御処理の双方を用いて描画処理を行うことはないが、他の実施形態では、ラスターオペレーション処理および透過制御処理の双方を同時に用いて描画処理を行ってもよい。
【0075】
以下、本実施形態の上述した透過制御処理について、さらに詳細に説明する。通常、透過制御処理は、(1)描画対象であるソースデータに対してのみ実行する場合と、(2)ソースデータおよび当該ソースデータが描画されたデスティネーションの双方に対して実行する場合とがある。
【0076】
(1)の場合、ソースデータのピクセル値をS、デスティネーションのピクセル値をD、ソースデータの透過属性値をα(0〜1の値)とすると、透過制御処理実行後の色値NewDは、以下のようになる。
【0077】
【数1】
【0078】
この処理は、RGBの各色に対して実施される。デスティネーションのピクセル値Dが存在しない場合には、透過プレーン830は使用されない。
【0079】
(2)の場合、ソースデータの透過属性値をAs(0〜1の値)、デスティネーションの透過属性値をAd、透過制御処理実施後のデスティネーションの透過属性値をAd’、ソースデータの色値をCs、デスティネーションの色値をCd、透過制御処理実施後のデスティネーションの色値をCd’とすると、以下の式が成り立つ。
【0080】
【数2】
【0081】
透過制御処理によって算出されたデスティネーションの透過属性値Ad’は、透過プレーン830の該当するメモリ領域に格納される。
【0082】
多値描画処理部240は描画処理を行う場合、中間データとして保存されているグラフィックス状態(GStatus)を取得する。GStatusに描画対象であるオブジェクトの透過属性値が設定されている場合には、多値描画処理部240は、GStatusから当該透過属性値および色値を取得するとともに、RGBプレーン810に設定されているデスティネーションの色値と、透過プレーン830に設定されているデスティネーションの透過属性値とを取得する。
【0083】
そして、多値描画処理部240は、描画オブジェクトの透過属性値および色値と、デスティネーションの色値および透過属性値とを用いて、透過制御処理を実行して、新たな描画データであるデスティネーションの色値および透過属性値を算出し、画像データメモリを更新する。なお、本実施形態では、透過制御処理の方式は、同一ページを処理する場合には1つの方式が採用されるため、複数の方式が混在することはない。
【0084】
一方、GStatusにROP値としてラスターオペレーション処理を指定するIDが設定されている場合には、多値描画処理部240は、重畳するソースデータおよびデスティネーションデータの各ピクセルの色値に対して、当該IDにより指定されたビット演算を実行する。当該IDは、0から255までの256通り設定することができ、各IDに対してビット演算が予め関連付けられている。
【0085】
次に、色変換処理部242は、多値描画処理部240が生成した描画データに対して色変換処理を実行する。色変換処理は、描画データの色情報をRGB形式からCMYK形式に変換する処理であり、本実施形態では、色変換処理として、カラーマッチング処理およびBG/UCR(Black generation/Under Color removal)処理が利用される。
【0086】
色変換処理部242は、多値描画処理部240が生成したRGBプレーン810および属性プレーン820に格納されるRGB形式の描画データを画像データメモリから取得し、カラーマッチング・モジュールをコールする。カラーマッチング・モジュールは、取得した描画データに対して、カラーマッチング処理を実行し、描画データの色を出力デバイスの色特性に適合した色に変換し、画像データメモリの同一アドレスに格納する。
【0087】
さらに、カラーマッチング処理では、属性プレーンに格納された属性データを参照して、文字、イメージ、グラフィックス等の描画オブジェクトの種類毎に色を変換することができる。
【0088】
次に、色変換処理部242は、BG/UCRモジュールをコールする。BG/UCRモジュールは、画像データメモリに格納されている描画データにBG/UCR処理を実行して、描画データの表現形式をRGB形式からCMYK形式に変換する。
【0089】
図8は、BG/UCR処理実施後のCMYK形式の描画データが格納されるメモリ領域であるKCMYプレーン840を示している。KCMYプレーン840は、ピクセル毎の色情報(K、C、M、Y)が含まれている。各色情報は1バイトのデータ量を有しており、1ピクセルの描画に必要な色情報のデータサイズは4バイトである。K、C、M、Yは、それぞれ黒、シアン、マゼンダ、黄を示しており、本実施形態では、各色が8ビットの情報量を有するため、各色が256種類の色を表現することができる。
【0090】
図8に示すように、BG/UCR処理の前後では、描画データのサイズは変更されず、本実施形態では、描画データのサイズは4バイトのままである。また、BG/UCR処理後の描画データは、画像データメモリの同一領域に格納される。すなわち、色変換処理部242は、余分なメモリ領域の取得を行わずに、色変換処理を実行することができる。
【0091】
次に、2値変換処理部244は、色変換処理部242が生成したCMYK形式の描画データおよび属性データを画像データメモリから取得し、ハーフトーン処理を実行する。
【0092】
図9は、本実施形態の多値描画処理部240がインデックス描画形式により描画データを処理する際に使用するインデックステーブルの作成処理のフローチャートである。インデックス描画形式とは、インデックステーブルを使用した描画形式であり、RGB各色8ビットで描画処理を行う描画形式に比べて、1ピクセルの描画データを表現するのに必要なデータ量が少ない。以下、図9を参照して、インデックステーブルの作成処理について説明する。なお、本実施形態では、計数処理部236がインデックステーブルを作成するが、他の実施形態では、他の機能処理部がインデックステーブルを作成してもよい。
【0093】
図9の処理は、図3を参照して説明した処理のステップS306に対応する。図9の処理は、ステップS900から開始し、ステップS901でインデックス値を設定するための変数Indexに0が設定されて初期化される。ステップS902では、計数処理部236が、該当するバンドの属性情報(GStatus)を取得し、ステップS903では、計数処理部236が、取得した属性情報に含まれるバンドで使用されている色の色値をインデックステーブルに登録する。ステップS904では、計数処理部236が、ステップS903で登録された色値に関連付けて、インデックス値として変数Indexの値をインデックステーブルに登録する。
【0094】
ステップS905では、計数処理部236が、該当するバンドで使用されている総ての色の色値が登録されたか判断し、総ての色値が登録されていない場合(no)には、処理をステップS906に分岐する。ステップS906では、変数Indexの値がインクリメントされ、ステップS903に処理を戻す。
【0095】
一方、ステップS905の判定で、総ての色値が登録されていると判断された場合(yes)には、処理をステップS907に分岐する。ステップS907では、計数処理部236が、他に取得すべきバンドの属性情報があるか否か判断し、取得すべきバンドの属性情報がある場合(yes)には、処理をステップS901に戻して、別のバンドのインデックステーブルを作成する。
【0096】
一方、ステップS907の判定で、取得すべきバンドの属性情報が無いと判断された場合(no)には、処理がステップS908に分岐され、図9の処理が終了する。
【0097】
図10は、図9の処理によって作成されたインデックステーブルの実施形態を示した図である。以下、図10を参照して、インデックステーブル1010、1020について説明する。インデックステーブルは、分割処理部234が生成したバンド毎に作成され、インデックステーブル1010は、或るバンド用のインデックステーブルであり、インデックステーブル1020は、別のバンド用のインデックステーブルである。
【0098】
インデックステーブル1010、1020には、バンドで使用されている色の色値1014、1024と、当該色に関連付けられたインデックス1012、1022とが登録される。本実施形態では、インデックステーブル1010には、色値として(255,0,0)および(0,0,255)が登録されており、それぞれインデックス値として0および1が関連付けられて登録されている。また、インデックステーブル1020には、色値として(255,0,0)、(0,0,255)、(0,255,0)および(0,255,255)が登録されており、それぞれインデックス値として0、1、2および3が関連付けられて登録されている。なお、本実施形態では、色値はRGB形式で表されており、インデックス値は10進数で表されている。
【0099】
図11は、インデックス描画形式によって画像データメモリ1110、1120および1130に点順次フォーマットで格納された描画データのデータ構造を示した図である。画像データメモリ1110は、描画データを構成する1ピクセルの色値を1ビットで表現する実施形態であり、最大で2色の色を表現することができる。画像データメモリ1120は、1ピクセルの色値を2ビットで表現する実施形態であり、最大で4色の色を表現することができる。画像データメモリ1130は、1ピクセルの色値を4ビットで表現する実施形態であり、最大で16色の色を表現することができる。このため、インデックス描画形式は、RGB各色8ビットで描画処理を行う描画形式に比べて、1ピクセルの描画データを表現するのに必要とされるデータ量を低減することができる。
【0100】
本実施形態の描画コア230は、中間データとして保存された描画データを取得し、描画形式としてインデックス形式が指定されている場合には、インデックステーブルを使用して画像データメモリに描画データを格納する。そして、描画コア230は、予め用意されたRGB形式の色値と、CMYK形式の色値との対応表を用いて、画像データメモリに格納された描画データをRGB形式からCMYK形式に変換して、出力データとすることができる。
【0101】
本実施形態の上記機能は、C、C++、C#、Java(登録商標)などのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、CD−ROM、MO、DVD、フレキシブルディスク、EEPROM、EPROMなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【0102】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【0103】
100…画像形成装置、110…コントローラ、112…CPU、114…ROM、116…RAM、118…NVRAM、120…ネットワークI/F、122…エンジンI/F、124…パネルI/F、130…ホストPC、140…エンジン、150…パネル装置、220…PDLパーサ、230…描画コア、232…描画モジュールI/F、234…分割処理部、236…計数処理部、238…描画データ保存部、240…多値描画処理部、242…色変換処理部、244…2値変換処理部
【先行技術文献】
【特許文献】
【0104】
【特許文献1】特開2004−243569号公報
【特許請求の範囲】
【請求項1】
描画データを処理する画像形成装置であって、
前記描画データが格納される画像データメモリのサイズに応じて、前記描画データを分割する分割処理手段と、
前記分割処理手段が分割した各描画データで使用される色数を計数する計数処理手段と、
前記分割処理手段が分割した各描画データを中間データとして保存する描画データ保存手段と、
前記中間データを使用してRGB形式の描画データを生成する多値描画処理手段と、
前記多値描画処理手段が生成したRGB形式の描画データをCMYK形式の描画データに変換する色変換処理手段と、
を含む画像形成装置。
【請求項2】
前記中間データには、前記描画データの色情報と、前記描画データの属性情報、および前記描画データが描画される画像データに対する前記描画データの透過の割合を示す透過属性値とが含まれており、
前記多値描画処理手段は、前記描画データの色情報および前記透過属性値を使用して前記描画データに対して透過制御処理を実行する、請求項1に記載の画像形成装置。
【請求項3】
前記多値描画処理手段は、前記描画データが描画される画像データの色情報および透過属性値を使用して、前記描画データに対して透過制御処理を実行する、請求項2に記載の画像形成装置。
【請求項4】
前記画像形成装置は、前記描画データの属性情報を使用して、前記色変換処理手段が生成した描画データに対しハーフトーン処理を実行して描画データを2値化する2値変換処理手段をさらに備えている、請求項1〜3のいずれか1項に記載の画像形成装置。
【請求項5】
前記画像形成装置が備えるCPUが、2回の読み出しで1ピクセル分の前記描画データを読み取り可能である、請求項1〜4のいずれか1項に記載の画像形成装置。
【請求項6】
前記色変換処理手段は、前記多値描画処理手段が描画データを生成する際に使用した画像データメモリの同一領域に前記CMYK形式の描画データを格納する、請求項1〜5のいずれか1項に記載の画像形成装置。
【請求項7】
前記計数処理手段は、分割された各描画データで使用される色値と、前記色値に関連付けられたインデックスとが登録されるインデックステーブルを作成し、
前記多値描画処理手段は、前記インデックステーブルを使用してRGB形式の描画データを生成し、
前記色変換処理手段は、RGB形式およびCMYK形式の色値対応表を使用して、前記多値描画処理手段が生成したRGB形式の描画データをCMYK形式の描画データに変換して出力データとする、請求項1〜6のいずれか1項に記載の画像形成装置。
【請求項8】
前記描画データの属性情報には、前記インデックステーブルを用いた描画形式であるインデックス描画形式を指定する情報が含まれており、
前記多値描画処理手段は、前記インデックス描画形式を指定する情報を使用して、RGB各色8ビットの描画形式およびインデックス描画形式のいずれかを描画形式として選択することができる、請求項7に記載の画像形成装置。
【請求項9】
前記多値描画処理手段は、分割された描画データで使用されている色数に応じて、前記インデックス描画形式を指定することができる、請求項8に記載の画像形成装置。
【請求項10】
前記多値描画処理手段は、分割された描画データ毎に描画形式を選択することができる、請求項8または9に記載の画像形成装置。
【請求項11】
前記多値描画処理手段は、前記描画データの属性情報にラスターオペレーション処理を指定する値が含まれている場合に、前記描画データに対してラスターオペレーション処理を実行し、前記描画データの属性情報に前記透過属性値が含まれている場合に、前記描画データに対し透過制御処理を実行して描画処理を実行する、請求項2〜10のいずれか1項に記載の画像形成装置。
【請求項12】
画像形成装置が描画データを処理する方法であって、前記方法は、前記画像形成装置が、
前記描画データが格納される画像データメモリのサイズに応じて、前記描画データを分割するステップと、
分割された各描画データで使用される色数を計数するステップと、
前記分割された各描画データを中間データとして保存するステップと、
前記中間データを使用してRGB形式の描画データを生成するステップと、
前記RGB形式の描画データをCMYK形式の描画データに変換するステップと、
を実行する方法。
【請求項13】
前記中間データには、前記描画データの色情報と、前記描画データの属性情報、および前記描画データが描画される画像データに対する前記描画データの透過の割合を示す透過属性値とが含まれており、前記方法は、前記画像形成装置が、
前記描画データの色情報および前記透過属性値を使用して前記描画データに対して透過制御処理を実行するステップを含む、請求項12に記載の方法。
【請求項14】
前記RGB形式の描画データを生成するステップは、前記描画データが描画される画像データの色情報および透過属性値を使用して、前記描画データに対して透過制御処理を実行するステップを含む、請求項13に記載の方法。
【請求項15】
前記方法は、前記画像形成装置が、前記描画データの属性情報を使用して、前記CMYK形式の描画データに対しハーフトーン処理を実行して描画データを2値化するステップをさらに含む、請求項12〜14のいずれか1項に記載の方法。
【請求項16】
前記画像形成装置が備えるCPUが、2回の読み出しで1ピクセル分の前記描画データを読み取り可能である、請求項12〜15のいずれか1項に記載の方法。
【請求項17】
前記変換するステップは、前記RGB形式の描画データを生成する際に使用した画像データメモリの同一領域に前記CMYK形式の描画データを格納するステップを含む、請求項12〜16のいずれか1項に記載の方法。
【請求項18】
前記計数するステップは、前記分割された各描画データで使用される色値と、前記色値に関連付けられたインデックスとが登録されるインデックステーブルを作成するステップを含み、
前記RGB形式の描画データを生成するステップは、前記インデックステーブルを使用してRGB形式の描画データを生成するステップを含み、
前記変換するステップは、RGB形式およびCMYK形式の色値対応表を使用して、前記RGB形式の描画データをCMYK形式の描画データに変換して出力データとするステップを含む、請求項12〜17のいずれか1項に記載の方法。
【請求項19】
請求項12〜18のいずれか1項に記載の各ステップを画像形成装置に対して実行させるためのコンピュータ実行可能なプログラム。
【請求項20】
請求項19に記載のコンピュータ実行可能なプログラムを記録したコンピュータ可読な記録媒体。
【請求項1】
描画データを処理する画像形成装置であって、
前記描画データが格納される画像データメモリのサイズに応じて、前記描画データを分割する分割処理手段と、
前記分割処理手段が分割した各描画データで使用される色数を計数する計数処理手段と、
前記分割処理手段が分割した各描画データを中間データとして保存する描画データ保存手段と、
前記中間データを使用してRGB形式の描画データを生成する多値描画処理手段と、
前記多値描画処理手段が生成したRGB形式の描画データをCMYK形式の描画データに変換する色変換処理手段と、
を含む画像形成装置。
【請求項2】
前記中間データには、前記描画データの色情報と、前記描画データの属性情報、および前記描画データが描画される画像データに対する前記描画データの透過の割合を示す透過属性値とが含まれており、
前記多値描画処理手段は、前記描画データの色情報および前記透過属性値を使用して前記描画データに対して透過制御処理を実行する、請求項1に記載の画像形成装置。
【請求項3】
前記多値描画処理手段は、前記描画データが描画される画像データの色情報および透過属性値を使用して、前記描画データに対して透過制御処理を実行する、請求項2に記載の画像形成装置。
【請求項4】
前記画像形成装置は、前記描画データの属性情報を使用して、前記色変換処理手段が生成した描画データに対しハーフトーン処理を実行して描画データを2値化する2値変換処理手段をさらに備えている、請求項1〜3のいずれか1項に記載の画像形成装置。
【請求項5】
前記画像形成装置が備えるCPUが、2回の読み出しで1ピクセル分の前記描画データを読み取り可能である、請求項1〜4のいずれか1項に記載の画像形成装置。
【請求項6】
前記色変換処理手段は、前記多値描画処理手段が描画データを生成する際に使用した画像データメモリの同一領域に前記CMYK形式の描画データを格納する、請求項1〜5のいずれか1項に記載の画像形成装置。
【請求項7】
前記計数処理手段は、分割された各描画データで使用される色値と、前記色値に関連付けられたインデックスとが登録されるインデックステーブルを作成し、
前記多値描画処理手段は、前記インデックステーブルを使用してRGB形式の描画データを生成し、
前記色変換処理手段は、RGB形式およびCMYK形式の色値対応表を使用して、前記多値描画処理手段が生成したRGB形式の描画データをCMYK形式の描画データに変換して出力データとする、請求項1〜6のいずれか1項に記載の画像形成装置。
【請求項8】
前記描画データの属性情報には、前記インデックステーブルを用いた描画形式であるインデックス描画形式を指定する情報が含まれており、
前記多値描画処理手段は、前記インデックス描画形式を指定する情報を使用して、RGB各色8ビットの描画形式およびインデックス描画形式のいずれかを描画形式として選択することができる、請求項7に記載の画像形成装置。
【請求項9】
前記多値描画処理手段は、分割された描画データで使用されている色数に応じて、前記インデックス描画形式を指定することができる、請求項8に記載の画像形成装置。
【請求項10】
前記多値描画処理手段は、分割された描画データ毎に描画形式を選択することができる、請求項8または9に記載の画像形成装置。
【請求項11】
前記多値描画処理手段は、前記描画データの属性情報にラスターオペレーション処理を指定する値が含まれている場合に、前記描画データに対してラスターオペレーション処理を実行し、前記描画データの属性情報に前記透過属性値が含まれている場合に、前記描画データに対し透過制御処理を実行して描画処理を実行する、請求項2〜10のいずれか1項に記載の画像形成装置。
【請求項12】
画像形成装置が描画データを処理する方法であって、前記方法は、前記画像形成装置が、
前記描画データが格納される画像データメモリのサイズに応じて、前記描画データを分割するステップと、
分割された各描画データで使用される色数を計数するステップと、
前記分割された各描画データを中間データとして保存するステップと、
前記中間データを使用してRGB形式の描画データを生成するステップと、
前記RGB形式の描画データをCMYK形式の描画データに変換するステップと、
を実行する方法。
【請求項13】
前記中間データには、前記描画データの色情報と、前記描画データの属性情報、および前記描画データが描画される画像データに対する前記描画データの透過の割合を示す透過属性値とが含まれており、前記方法は、前記画像形成装置が、
前記描画データの色情報および前記透過属性値を使用して前記描画データに対して透過制御処理を実行するステップを含む、請求項12に記載の方法。
【請求項14】
前記RGB形式の描画データを生成するステップは、前記描画データが描画される画像データの色情報および透過属性値を使用して、前記描画データに対して透過制御処理を実行するステップを含む、請求項13に記載の方法。
【請求項15】
前記方法は、前記画像形成装置が、前記描画データの属性情報を使用して、前記CMYK形式の描画データに対しハーフトーン処理を実行して描画データを2値化するステップをさらに含む、請求項12〜14のいずれか1項に記載の方法。
【請求項16】
前記画像形成装置が備えるCPUが、2回の読み出しで1ピクセル分の前記描画データを読み取り可能である、請求項12〜15のいずれか1項に記載の方法。
【請求項17】
前記変換するステップは、前記RGB形式の描画データを生成する際に使用した画像データメモリの同一領域に前記CMYK形式の描画データを格納するステップを含む、請求項12〜16のいずれか1項に記載の方法。
【請求項18】
前記計数するステップは、前記分割された各描画データで使用される色値と、前記色値に関連付けられたインデックスとが登録されるインデックステーブルを作成するステップを含み、
前記RGB形式の描画データを生成するステップは、前記インデックステーブルを使用してRGB形式の描画データを生成するステップを含み、
前記変換するステップは、RGB形式およびCMYK形式の色値対応表を使用して、前記RGB形式の描画データをCMYK形式の描画データに変換して出力データとするステップを含む、請求項12〜17のいずれか1項に記載の方法。
【請求項19】
請求項12〜18のいずれか1項に記載の各ステップを画像形成装置に対して実行させるためのコンピュータ実行可能なプログラム。
【請求項20】
請求項19に記載のコンピュータ実行可能なプログラムを記録したコンピュータ可読な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2011−25478(P2011−25478A)
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願番号】特願2009−172300(P2009−172300)
【出願日】平成21年7月23日(2009.7.23)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願日】平成21年7月23日(2009.7.23)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]