(57)【要約】【課題】半透明描画処理が設定されたＰＤＬの中間データに対する多値描画処理を経て保存されたピクセルデータへのアクセス効率を向上させる。【解決手段】ＰＤＬの中間データをもとに多値描画処理で点順次のピクセルデータとして、色値を表すカラープレーンを、ルックアップテーブル（１バイト）を用いて描画し、ピクセル属性を表すプレーン（１バイト）と半透明描画処理用の半透明値を表すディスティネーション透過プレーン（１バイト）を描画する際、ピクセル属性とディスティネーション透過の両プレーンをまとめて１ピクセルあたり２バイトで保存する統合プレーンを描画する。【選択図】図１０
2011020276.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語に基づいて得られた描画命令を取得する描画命令取得部と、
描画すべき図形毎に情報がまとめられた図形情報を前記取得された描画命令に基づいて生成する図形情報生成部と、
前記生成された図形情報に基づいて前記図形を構成する画素の情報である画素情報を生成する画素情報生成部と、
前記生成された画素情報を変換して前記画素を描画するための階調情報を生成する階調情報生成部と、
前記生成された階調情報に基づいて画像形成出力を実行するための出力情報を生成する出力情報生成部とを含む画像形成装置であって、
前記図形情報生成部は、前記図形の半透明描画に関する情報を含む前記図形情報を前記描画命令に基づいて生成し、
前記画素情報生成部は、前記図形を構成する画素の彩色情報、前記画素の属性情報及び前記画素が構成する図形の半透明描画に関する情報を、夫々の情報のために確保された記憶領域に格納し、且つ前記画素の彩色情報として前記画素の彩色を示すインデックス情報を格納することによって前記画素情報を生成し、前記インデックス情報と前記画素の彩色自体を示す情報とが関連付けられた彩色参照情報を他の記憶領域に保持することを特徴とする画像形成装置。
【請求項２】
前記画素情報生成部は、前記画素の彩色情報として前記画素の彩色自体を示す情報を格納することも可能であることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記画素情報生成部は、前記図形情報における前記描画すべき図形がフルカラーデータである場合に、前記画素の彩色情報として前記画素の彩色自体を示す情報を格納することを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記画素情報生成部は、前記彩色参照情報に含まれる前記インデックス情報の数が所定数に達した場合に、前記画素の彩色情報として前記画素の彩色自体を示す情報を格納することを特徴とする請求項２または３に記載の画像形成装置。
【請求項５】
前記画素情報生成部は、前記図形情報における前記描画すべき図形がインデックスイメージであり、前記インデックスイメージを識別するインデックスのビット数が所定数以上である場合に、前記画素の彩色情報として前記画素の彩色自体を示す情報を格納することを特徴とする請求項２乃至４いずれかに記載の画像形成装置。
【請求項６】
前記彩色参照情報に登録可能なインデックス情報の数が可変であることを特徴とする請求項１乃至５いずれかに記載の画像形成装置。
【請求項７】
前記画素情報生成部は、
ページを複数に分割した夫々の範囲であるバンド毎に前記図形情報に基づいて前記画素情報を生成し、
前記彩色参照情報に登録可能なインデックス情報の数について、異なる数を前記バンド毎に用いることが可能であることを特徴とする請求項６に記載の画像形成装置。
【請求項８】
前記画素の彩色情報において、前記彩色参照情報に登録可能なインデックス情報の数として異なる数が混在可能であることを特徴とする請求項６に記載の画像形成装置。
【請求項９】
描画命令取得部が、ページ記述言語に基づいて得られた描画命令を取得し、
図形情報生成部が、描画すべき図形毎に情報がまとめられた情報であって前記図形の半透明描画に関する情報を含む図形情報を前記取得された描画命令に基づいて生成し、
画素情報生成部が、前記生成された図形情報に基づき、前記図形を構成する画素の彩色情報、前記画素の属性情報及び前記画素が構成する図形の半透明描画に関する情報を、夫々の情報のために確保された記憶領域に格納し、且つ前記画素の彩色情報として前記画素の彩色を示すインデックス情報を格納することによって前記図形を構成する画素の情報である画素情報を生成すると共に、前記インデックス情報と前記画素の彩色自体を示す情報とが関連付けられた彩色参照情報を他の記憶領域に保持し、
階調情報生成部が、前記生成された画素情報を変換して前記画素を描画するための階調情報を生成し、
出力情報生成部が、前記生成された階調情報に基づいて画像形成出力を実行するための出力情報を生成すること特徴とする画像データ処理方法。
【請求項１０】
ページ記述言語に基づいて得られた描画命令を取得するステップと、
描画すべき図形毎に情報がまとめられた情報であって前記図形の半透明描画に関する情報を含む図形情報を前記取得された描画命令に基づいて生成するステップと、
前記生成された図形情報に基づき、前記図形を構成する画素の彩色情報、前記画素の属性情報及び前記画素が構成する図形の半透明描画に関する情報を、夫々の情報のために確保された記憶領域に格納するステップと、
前記画素の彩色情報として前記画素の彩色を示すインデックス情報を格納することによって前記図形を構成する画素の情報である画素情報を生成するステップと、
前記インデックス情報と前記画素の彩色自体を示す情報とが関連付けられた彩色参照情報を他の記憶領域に保持するステップと、
前記生成された画素情報を変換して前記画素を描画するための階調情報を生成するステップと、
前記生成された階調情報に基づいて画像形成出力を実行するための出力情報を生成するステップとを画像形成装置に実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページ記述言語（ＰＤＬ）で表した入力データをプリント出力用のデータに処理する手段を有した画像形成装置（例えば、プリンタ、デジタル複写機、複合機等）に関し、より詳しくは、半透明描画処理が設定されたＰＤＬの中間（ピクセル）データに対するアクセス効率を向上するための処理手段を有した画像形成装置、当該画像形成装置に用いる画像データ処理方法及び制御プログラムに関する。
【背景技術】
【０００２】
従来から、プリンタ等の画像形成装置では、ホスト装置で作成されたページ記述言語（ＰＤＬ）によって表した印刷コマンドを受取り、プリント出力用のデータとして処理し、出力に用いる。ＰＤＬとしては、ＰｏｓｔＳｃｒｉｐｔやＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）、ＰＣＬ（Ｐｒｉｎｔｅｒ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅ）、ＸＰＳ（ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）等が使用され、画像形成装置は、これらのＰＤＬで記述された印刷コマンドをそれぞれ解析するためのパーサを搭載する。
【０００３】
ＰＤＬの１つであるＸＰＳでは半透明描画という従来のＰＤＬにはない処理が新たに追加されている。半透明描画処理は、半透明で画像同士を重ね合わせる処理で、設定された処理パラメータ（半透明値）に従って処理される。具体的には、重ね合わせる各画像の半透明値を１以下として、通常、重ね合わせたときに全体が１となるように、この処理パラメータが描画オブジェクト毎に設定される。
この半透明描画処理は、ＰＤＬを解析した後に得られる中間データをもとにＲＧＢ２４ビットの多値のピクセルデータに対して行われる処理である。つまり、プリント出力用のデータを得るためには、描画オブジェクト毎にピクセル単位で画像処理（ハーフトーン処理、ＢＧ／ＵＣＲ等）等を施すことが必要で、これらの処理は、ＲＧＢ２４ビットの多値で描画した後に行うが、半透明描画処理もこれらの処理と同様に、ＲＧＢ２４ビットの多値の描画データに対しても行う。
【０００４】
ところで、ＰＤＬに設定されているオブジェクト情報は、中間データをもとにＲＧＢ２４ビットの多値描画を行った後は、各ピクセルとのつながりがなくなってしまうため、その後行う画像処理に用いるために、中間データに記されていたオブジェクト情報を保存しておく必要がある。即ち、描画時にオブジェクト情報は、ピクセル毎に文字で描画されたものか、グラフィックスで描画されたものか、イメージで描画されたものか等を保存し、その後のカラー処理やハーフトーン処理で活用する必要がある。なお、画像処理に用いるために中間データに記されるオブジェクト情報を、各ピクセルに対し属性の決定に用いる情報プレーンの形で保存する方法は、従来から知られている(例えば、特許文献１、参照)。
【０００５】
上記した半透明描画処理のパラメータ（半透明値）もオブジェクト情報の１つとして同様にピクセル毎に保存しておく必要がある。また、ＸＰＳの半透明描画処理では半透明描画処理の処理方法によっては、描画先の半透明描画処理の半透明値も保存しておく必要がある。この場合、重ねるデータ（「ソースデータ」という）の半透明値と描画先（「ディスティネーション」という）の半透明値を使用して描画する（下記［発明を実施するための形態］の記載、参照）ので、これもピクセル毎に保存する必要がある。
従って、ＲＧＢ２４ビット多値描画に必要な情報は、色値の他に、ピクセルの属性と半透明値がピクセル毎に必要になる。よって、ＲＧＢフルカラーで処理する場合は、１ピクセルあたり、ＲＧＢ２４ビットのほかに、ピクセルの属性と半透明値のためのそれぞれ１バイトを加えて、全部で５バイトのデータをハンドリングしながら処理を行うことになる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように、半透明描画処理が設定されたＰＤＬの中間（ピクセル）データに対し、ＲＧＢフルカラーで多値描画処理をする場合、１ピクセルあたり５バイト必要になるため、ピクセル単位に順番に配置すると、１ピクセルは５バイト単位のアクセスになる。コンピュータのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）は、現在、通常４バイト(３２ビット)のレジスタで構成されるのが普通であるから、１回の読出しで１ピクセル分（５バイトのデータ）にアクセスできないので、通常は１バイトずつアクセスすることになるので５回の命令で１ピクセルのデータの読み出しが可能になる。また、６４ビットレジスタで構成されるＣＰＵでも、５バイトずつアクセスすると、必ず境界にまたがる場合が出てくるので効率の悪さは同じである。
【０００７】
このような課題に対して、カラーデータ、属性データ及び半透明描画処理のデータ夫々に対してプレーンを設け、カラープレーンにおける１ピクセルあたりのデータを４バイトとし、属性プレーン及び半透明描画処理のプレーンにおける１ピクセルあたりのデータを夫々１バイトとすることにより、１ピクセルあたり合計６バイトとする方法が提案されている。この場合、上述した４バイトのレジスタ構成のＣＰＵにおいて、３回のアクセスで丁度２ピクセル分のデータが読み出されることとなり、メモリアクセスの効率を向上することができる。
しかしながら、画像形成装置における画像形成出力の速度向上のためには、上記メモリアクセス効率の更なる向上が求められる。
本発明は、上記従来技術の問題に鑑みてなされたもので、その目的は、半透明描画処理が設定されたＰＤＬの中間データに対する多値描画処理を経て保存されたピクセルデータへのアクセス効率を向上させることにある。
【課題を解決するための手段】
【０００８】
本発明の一態様は、ページ記述言語に基づいて得られた描画命令を取得する描画命令取得部と、描画すべき図形毎に情報がまとめられた図形情報を前記取得された描画命令に基づいて生成する図形情報生成部と、前記生成された図形情報に基づいて前記図形を構成する画素の情報である画素情報を生成する画素情報生成部と、前記生成された画素情報を変換して前記画素を描画するための階調情報を生成する階調情報生成部と、前記生成された階調情報に基づいて画像形成出力を実行するための出力情報を生成する出力情報生成部とを含む画像形成装置であって、前記図形情報生成部は、前記図形の半透明描画に関する情報を含む前記図形情報を前記描画命令に基づいて生成し、前記画素情報生成部は、前記図形を構成する画素の彩色情報、前記画素の属性情報及び前記画素が構成する図形の半透明描画に関する情報を、夫々の情報のために確保された記憶領域に格納し、且つ前記画素の彩色情報として前記画素の彩色を示すインデックス情報を格納することによって前記画素情報を生成し、前記インデックス情報と前記画素の彩色自体を示す情報とが関連付けられた彩色参照情報を他の記憶領域に保持することを特徴とする。
また、前記画素情報生成部は、前記画素の彩色情報として前記画素の彩色自体を示す情報を格納することも可能であることが好ましい。
また、前記画素情報生成部は、前記図形情報における前記描画すべき図形がフルカラーデータである場合に、前記画素の彩色情報として前記画素の彩色自体を示す情報を格納することが好ましい。
また、前記画素情報生成部は、前記彩色参照情報に含まれる前記インデックス情報の数が所定数に達した場合に、前記画素の彩色情報として前記画素の彩色自体を示す情報を格納することが好ましい。
また、前記画素情報生成部は、前記図形情報における前記描画すべき図形がインデックスイメージであり、前記インデックスイメージを識別するインデックスのビット数が所定数以上である場合に、前記画素の彩色情報として前記画素の彩色自体を示す情報を格納することが好ましい。
また、前記彩色参照情報に登録可能なインデックス情報の数が可変であることが好ましい。
また、前記画素情報生成部は、ページを複数に分割した夫々の範囲であるバンド毎に前記図形情報に基づいて前記画素情報を生成し、前記画素の彩色自体を示す情報のビット数として、異なるビット数を前記バンド毎に用いることが可能であることが好ましい。
また、前記彩色参照情報において前記画素の彩色自体を示す情報のビット数として異なるビット数が混在可能であることが好ましい。
本発明の他の態様は、画像データ処理方法であって、描画命令取得部が、ページ記述言語に基づいて得られた描画命令を取得し、図形情報生成部が、描画すべき図形毎に情報がまとめられた情報であって前記図形の半透明描画に関する情報を含む図形情報を前記取得された描画命令に基づいて生成し、画素情報生成部が、前記生成された図形情報に基づき、前記図形を構成する画素の彩色情報、前記画素の属性情報及び前記画素が構成する図形の半透明描画に関する情報を、夫々の情報のために確保された記憶領域に格納し、且つ前記画素の彩色情報として前記画素の彩色を示すインデックス情報を格納することによって前記図形を構成する画素の情報である画素情報を生成すると共に、前記インデックス情報と前記画素の彩色自体を示す情報とが関連付けられた彩色参照情報を他の記憶領域に保持し、階調情報生成部が、前記生成された画素情報を変換して前記画素を描画するための階調情報を生成し、出力情報生成部が、前記生成された階調情報に基づいて画像形成出力を実行するための出力情報を生成すること特徴とする。
本発明の他の態様は、制御プログラムであって、ページ記述言語に基づいて得られた描画命令を取得するステップと、描画すべき図形毎に情報がまとめられた情報であって前記図形の半透明描画に関する情報を含む図形情報を前記取得された描画命令に基づいて生成するステップと、前記生成された図形情報に基づき、前記図形を構成する画素の彩色情報、前記画素の属性情報及び前記画素が構成する図形の半透明描画に関する情報を、夫々の情報のために確保された記憶領域に格納するステップと、前記画素の彩色情報として前記画素の彩色を示すインデックス情報を格納することによって前記図形を構成する画素の情報である画素情報を生成するステップと、前記インデックス情報と前記画素の彩色自体を示す情報とが関連付けられた彩色参照情報を他の記憶領域に保持するステップと、前記生成された画素情報を変換して前記画素を描画するための階調情報を生成するステップと、前記生成された階調情報に基づいて画像形成出力を実行するための出力情報を生成するステップとを画像形成装置に実行させることを特徴とする。
【発明の効果】
【０００９】
本発明によると、半透明描画処理が設定されたＰＤＬの中間（ピクセル）データに対する多値描画処理において、多値描画処理を経て保存されたピクセルデータへのアクセス効率の向上を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る画像形成装置のハードウェア構成の概略を示す図である。
【図２】画像形成装置（図１）のコントローラのソフトウェア構成を示すブロック図である。
【図３】描画コアモジュールを有するＰＤＬ部（図２参照）のモジュール構成を示すブロック図である。
【図４】ＰｏｓｔＳｃｒｉｐｔの描画コマンドの１例を示す図である。
【図５】描画モジュールＩ／Ｆが描画コマンド（図４）に応じて行う関数Ｉ／Ｆの設定例を示す図である。
【図６】描画オブジェクトに共通する、中間データの保存に用いるデータ構造を示す概念図である。
【図７】ＩＤ番号と描画コマンドの対応表の１例を示すものである。
【図８】中間データをもとに多値描画部によって描画されるピクセルデータの各プレーンのデータ構成を示す概念図である。
【図９】ピクセル属性・ディスティネーション透過の両プレーンを統合したフォーマットを示す概念図である。
【図１０】本実施形態に係るルックアップテーブルの例を示す図である。
【図１１】ハッシュ法におけるデータ構造を示す図である。
【図１２】属性プレーンの１バイト中に含まれる情報を示す図である。
【図１３】バンディング処理におけるバンドデータとページデータとの関係を説明する概念図である。
【図１４】バンドデータに対する描画処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に本発明に係る画像形成装置の実施形態を添付した図面を参照して説明する。本実施形態においては、半透明描画処理の機能を有し、描画情報の生成処理が効率化された画像形成装置について説明する。
図１は、本発明の実施形態に係る画像形成装置のハードウェア構成の概略を示す図である。同図に示すように、画像形成装置は、ホストＰＣ（Ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）２０から印刷コマンドを受取り、受取った印刷コマンドに従いプリンタエンジン３０を動作させるために画像形成装置を構成する各部を制御するコントローラ１０と、用紙に画像を印刷するプリンタエンジン３０と、ユーザインターフェースとして機能する操作パネル４０で構成される。なお、コントローラ１０は、後述するように、ホストＰＣ２０で作成されたＰＤＬによって表した印刷コマンドを受取り、受取った印刷コマンドをもとにプリント出力用の画像データを生成し、この画像データを用いてプリンタエンジン３０を動作させる。また、操作パネル４０は、画像形成装置の動作状態等の機器条件をユーザに知らせる表示部と、またユーザが画像形成装置に動作条件を指示する入力を行う入力部を持つ。
【００１２】
コントローラ１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３、ＮＶ（Ｎｏｎｖｏｌａｔｉｌｅ）ＲＡＭ１４、ネットワークインターフェース（Ｉ／Ｆ）１５、エンジンＩ／Ｆ１６、パネルＩ／Ｆ１７の各要素よりなる。
ＣＰＵ１１は、ソフトウェアプログラムの命令を実行する。ＲＯＭ１２は、ＣＰＵ１１が動作するプログラムを格納するメモリである。ＲＡＭ１３は、コントローラソフトが作成するページメモリやＣＰＵ１１によるソフトウェアの動作に必要なワークメモリとして利用されるメモリである。不揮発性のＮＶＲＡＭ１４は、画像形成装置の印刷条件などの設定条件を保存しておくメモリである。
また、ネットワークＩ／Ｆ１５は、ネットワーク上に接続されたホストＰＣ２０とデータのやり取りを行うためのＩ／Ｆである。エンジンＩ／Ｆ１６は、プリンタエンジン３０との間で印刷指示等のやり取りを行うためのＩ／Ｆである。パネルＩ／Ｆ１７は、操作パネル４０との間でデータの入出力を行うためのＩ／Ｆである。
【００１３】
コントローラ１０は、ＲＯＭ１２に格納されたプログラムの一部に、受取った印刷コマンドをもとにプリント出力用の画像データを生成するためのプログラムを記録し、このプログラムをＣＰＵ１１が駆動することで、後述する図２及び図３に示す機能を実現する手段を構成する。
なお、上記プログラムを記録する媒体としては、上記ＲＯＭ１２に限らず、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）−ＲＯＭ、ＭＯ（Ｍａｇｎｅｔ  Ｏｐｔｉｃａｌ  Ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体を用いることができる。また、プログラムを、インターネット等のネットワーク（図示せず）に接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしても良い。
【００１４】
図２は、画像形成装置（図１）のコントローラのソフトウェア構成を示すブロック図である。
コントローラ１０内のソフトウェア構成は、プリンタコントロールシステム部１０４の制御下に、ホストＰＣ２０とデータの交換を行うネットワークＩ／Ｆ部１０２、操作パネル４０の制御を行うパネルＩ／Ｆ部１０３、受け取った印刷コマンド（印刷データ）をもとにプリント出力用の画像データを生成するＰＤＬ部１０５、プリンタエンジン３０に対し印刷指示等を行うエンジンＩ／Ｆ部１０６を有する。
【００１５】
図３は、描画コアモジュールを有するＰＤＬ部（図２参照）のモジュール構成を示すブロック図である。
ＰＤＬ部１０５は、プリンタコントロールシステム部１０４を介して受取ったＰＤＬで記述された印刷コマンドを解析するＰＤＬパーサ部１２０とＰＤＬパーサ部１２０の解析結果をもとに描画処理及びプリント出力用の画像データへの変換処理を行う描画コアモジュール１１０よりなる。すなわち、ＰＤＬパーサ部１２０が、描画命令である印刷コマンドを取得する描画命令取得部として機能する。
描画コアモジュール１１０は、描画モジュールＩ／Ｆ１１３、中間データ保存部１１４、多値描画部１１５、カラー変換部１１６、ＣＭＹＫ２値変換部１１７の各部を有する。
【００１６】
描画モジュールＩ／Ｆ１１３は、ＰＤＬパーサ部１２０から解析結果であるテキスト、イメージ、ベクターグラフィックス、描画設定情報を受け取るためのＩ／Ｆである。
中間データ保存部１１４は、テキスト、イメージ、ベクターグラフィックス等の描画オブジェクトを表す描画データと、色値及び半透明描画処理（後記で詳述）の設定等の描画設定情報を保存するための機能部である。
多値描画部１１５は、中間形式保存部１１４から指定されたカラースペースでピクセルデータを描画するための機能部である。
カラー変換部１１６は、多値描画部１１５によって多値で描画されたデータからデバイスカラー（機器に依存する特性）へ変換するための機能部である。
ＣＭＹＫ２値変換部１１７は、カラー変換部１１６で処理されたデバイスカラーをＣＭＹＫ（Ｃ：シアン，Ｍ：マゼンタ，Ｙ：イエロー，Ｋ：ブラック）２値でハーフトーン処理を行うための機能部である。
なお、多値描画部１１５のカラースペースは、ページの始めに描画カラースペースとして指定されたものに従う。ＲＧＢカラースペースが指定された場合は、ＲＧＢ各色８ビットで描画される。
【００１７】
描画コアモジュール１１０を有するＰＤＬ部１０５の構成を示す図３を参照しながら、ＰＤＬによって表した印刷コマンドの処理の流れを説明する。
先ず、ＰＤＬパーサ１２０は、印刷コマンドのＰＤＬを解析する。この実施形態では、ＰＤＬパーサ１２０は、ＰｏｓｔＳｃｒｉｐｔ、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）、ＰＣＬ（Ｐｒｉｎｔｅｒ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅ）、ＸＰＳ（ｅＸｔｅｎｓｉｂｌｅ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）等の各ＰＤＬの構文の違いをそれぞれ解析する機能を有し、解析したＰＤＬに対応して、描画コアモジュール１１０の描画モジュールＩ／Ｆ１１３をコールする。
描画モジュールＩ／Ｆ１１３は、イメージ、グラフィックス、文字等の描画オブジェクトを表す描画データと、色値、ブラシ、半透明描画処理（後記で詳述）、線形状等の描画設定情報を得るためのＩ／Ｆとして、全てのＰＤＬの描画に対応するＩ／Ｆとして機能する。
【００１８】
描画モジュールＩ／Ｆ１１３は、ＰｏｓｔＳｃｒｉｐｔを例にすると、以下のような動作で描画コマンドに対応する。
ＰｏｓｔＳｃｒｉｐｔでは、例えば、図４に示すような描画コマンドが発行される。即ち、この描画コマンドには、ＲＧＢカラースペースで（Ｒ，Ｇ，Ｂ）＝（０．５，０．０，０．０）の色で、ページの左下を原点として、左下、右上座標をそれぞれ（１００，１００）、（２００，２００）で指定して矩形を描画するコマンドが記述されている。
この描画コマンドに対し、描画モジュールＩ／Ｆ１１３は、色を設定するＩ／Ｆをコールし、その後、矩形領域を設定するために座標を設定するＩ／Ｆと塗りつぶし指定するＩ／Ｆをコールすることで、描画コマンドに従い矩形を描画することができる。
【００１９】
図５は、このとき描画モジュールＩ／Ｆ１１３が描画コマンドに応じて行う関数Ｉ／Ｆの設定例を示す図である。
この関数Ｉ／Ｆは、図５に記述するように、図４の描画コマンドに応じて関数シーケンスへの変換を行う。図５の関数シーケンスにおけるｓｅｔｃｏｌｏｒの第１引数は、ＲＧＢカラースペースを指定し、第２から第４引数でＲＧＢ各色の色値を０．０から１．０の範囲で指定する。図５の例では、図４の描画コマンドに対応する（０．５，０．０，０．０）が記述されている。
また、図５の関数シーケンスにおけるｒｅｃｔａｎｇｌｅは、矩形描画関数で左上座標と右下座標が指定される。図５の例では、図４の描画コマンドに対応する（１００，１００、２００，２００）が記述されている。
なお、他の言語も同様に描画モジュールＩ／Ｆ１１３をコールすることで、描画コマンドに応じた描画が可能である。
【００２０】
描画モジュールＩ／Ｆ１１３がコールされた後、中間データ保存部１１４により描画モジュールＩ／Ｆ１１３を介して得られる描画データと描画設定情報は、中間データとしてメモリ上またはファイル上に保存される。
上記した描画モジュールＩ／Ｆ１１３の動作例で説明すると、ｓｅｔｃｏｌｏｒ関数では、ＲＧＢカラースペースと色値（０．５，０．０，０．０）が設定され、これらを描画設定情報の一つとして得る。
描画データ（イメージ、グラフィックス、文字等の描画オブジェクト）を修飾するためのデータをグラフィックス状態といい、カラースペースと色値は、グラフィックス状態としてメモリ上に保存される。グラフィックス状態には、カラースペースと色値の他に、半透明描画処理のパラメータ、Ｒａｓｔｅｒ  Ｏｐｅｒａｔｉｏｎ値、線幅などがある。
グラフィックス状態は、図形、イメージ、グラフィックス、文字等の描画オブジェクトを表す描画データと関連付けて保存するときに各オブジェクトに共通なデータ構造を持つ。
【００２１】
図６は、各種描画オブジェクトに共通する、中間データの保存に用いるデータ構造の１例を示す概念図である。なお、図６中の（Ａ）、（Ｂ）、（Ｃ）は、３種の描画オブジェクトに対しグラフィックス状態（Ｇｓｔａｔｕｓ）を関連付けて保存するときのデータ構造の例を示したもので、それぞれグラフィックス状態（Ｇｓｔａｔｕｓ）を表すデータを保存するデータ部６０１と描画オブジェクトを表す描画データを保存するデータ部６０３よりなる。即ち、図６に示すよう情報は、描画すべき図形ごとに情報がまとめられた図形情報であり、描画モジュールＩ／Ｆ１１３が、図形情報生成部として機能する。
中間データのグラフィックス状態（Ｇｓｔａｔｕｓ）を表すデータを保存するデータ部６０１には、描画データを修飾するためのデータとして、カラースペースと色値、線幅、半透明描画処理のパラメータ（半透明値）、Ｒａｓｔｅｒ  Ｏｐｅｒａｔｉｏｎ値等の描画に共通な設定情報を保存する。図６に示す例では、固定長サイズのＧｓｔａｔｕｓレコードを先頭に、次に描画オブジェクトを表す描画データのＩＤ番号がくる。
【００２２】
ＩＤ番号は、描画コマンド（描画オブジェクト）と対応付けられている。
図７は、ＩＤ番号と描画コマンドの対応表の１例を示すものである。同図の例では、描画コマンドとして、５種類が示されている。ＩＤ＝０ｘ００は矩形描画（Rｅｃｔａｎｇｌｅ）を、ＩＤ＝０ｘ０１は直線の描画(ＬｉｎｅＤｒａｗ)を、ＩＤ＝０ｘ０２は直線で囲まれた領域の塗りつぶし(ＬｉｎｅＦｉｌｌ)を、ＩＤ＝０ｘ０３はＩｍａｇｅの描画を、ＩＤ＝０ｘ０４は文字の描画を示す。
また、ＩＤ番号に続くパッディングバイトとｆｌａｇの後には、描画コマンドに対応する描画関数の引数、イメージデータ、コードデータ等が保存される。
図５に示した描画モジュールＩ／Ｆ１１３がｒｅｃｔａｎｇｌｅ描画コマンドに応じて行う関数Ｉ／Ｆによるコールの例を引くと、このときに保存される中間データ、即ち、図６中の（Ａ）のグラフィックス状態（Ｇｓｔａｔｕｓ）には、カラースペースと色値が保存され、ｒｅｃｔａｎｇｌｅの座標はｌｅｆｔ＝１００，ｔｏｐ＝１００，ｒｉｇｈｔ＝２００，ｂｏｔｔｏｍ＝２００が保存される。なお、ＩＤ番号の次のバイトは、パッディングバイトで０が入る。また、ｆｌａｇは、描画コマンドの属性として使われる。属性の例としてＲｅｃｔａｎｇｌｅコマンドをＣｌｉｐ（描画領域を限定するコマンド）とする場合は、Ｃｌｉｐであることを示すビットをＯＮにする。
【００２３】
次に、多値描画部１１５の動作を説明する。
多値描画部１１５が行う描画処理は、中間データ保存部１１４によって保存された中間データをもとにピクセルデータを描画する処理で、プリント出力用の画像データ処理（カラー変換、ハーフトーニング等）の前段で行われる。描画結果のピクセルデータは、点順次に、即ち、ページ画像のピクセルの並び順に、メモリに保存される。換言すると、多値描画部１１５が生成する情報は、描画すべき図形を構成する画素の情報、即ち画素情報であり、多値描画部１１５が、画素情報生成部として機能する。
具体的には、設定されたカラースペースに従って各色８ビット（多値）の色値を表すカラープレーン、各ピクセルの属性をカラープレーンに対応付けて表すピクセル属性プレーン、半透明描画処理に用いる半透明値を表すディスティネーション透過プレーンの各プレーンのピクセルデータを点順次に描画する。
【００２４】
図８（Ａ）〜（Ｄ）は、中間データをもとに多値描画部１１５によって描画されるピクセルデータの各プレーンのデータ構成を示す概念図である。
図８（Ａ）に示すカラープレーンは、ページ領域を描画するピクセルについて、点順示フォーマットで色値を保存する。同図に示す例は、カラースペースがＲＧＢ（ＲはＲｅｄ、ＧはＧｒｅｅｎ、ＢはＢｌｕｅ）の場合で、ＲＧＢ（各色８ビット）のピクセル色値が点順示に保存される。このカラープレーンは、同図に示すように、１ピクセル当たり４バイトを確保して実施する。なお、図８（Ａ）中のＰはパッティングバイト（パディングバイト）であり、カラースペースがＲＧＢの場合には、Ｐの値は０が埋められる。なお、カラースペースがＣＭＹＫの場合４バイトを全部ピクセル色値で使用する。
図８（Ｂ）に示すカラープレーンは、本実施形態の要旨に係る構成であり、図８（Ａ）と同様に、ページ領域を描画するピクセルについて店順次フォーマットで色値を保存する。ここで、図８（Ｂ）に示す態様は、図８（Ａ）の態様のように、ＲＧＢ各色８ビットのピクセル色値を保存するのではなく、２５６色、即ち８ビットのルックアップテーブルへのインデックス値である８ビットのデータ（図８（Ｂ）中に「Ｉｄ」として示す）を保存する。従って、図８（Ｂ）に示すカラープレーンの場合、１ピクセルあたり１バイトが確保される。
【００２５】
図８（Ｃ）に示すピクセル属性プレーンは、上記で説明した中間データ（図６に示したデータ構造、参照）に示される描画オブジェクトを表す描画データがピクセルデータを描画するときに消失してしまうと、各描画オブジェクトの特性をプリント出力用の画像データに反映できなくなるので、ピクセルの属性として描画オブジェクトを関連付けるために作られる。
この実施形態では、各ピクセルの属性を表すデータ値（図８（Ｃ）中に「Ａ」として示す）を８ビットで持つ。８ビットであれば各ビットで夫々の属性を表現することにより、少なくとも８種類の属性値を表現できる。属性を表すデータ値は、描画されたピクセルが文字、イメージ、グラフィックス等の描画オブジェクト種類のいずれに属するかの判断のために使用される。尚、ピクセルが属する描画オブジェクトの種類が、文字、イメージ、グラフィックスのいずれに属するかを判断するためには、いずれにも属さない場合も含めて４種類を判断することができれば良く、少なくとも２ビットで判断可能である。
更に、本実施形態に係るピクセル属性プレーンは、カラープレーンのデータが、図８（Ａ）に示すようなカラーデータそのものの形式であるか、図８（Ｂ）に示すようなルックアップテーブルの形式であるかを示す情報（以降、カラープレーン形式情報とする）が含まれる。このカラープレーン形式情報は、図８（Ａ）の場合と図８（Ｂ）の場合との２通りを識別すれば良いため、１ビットで可能である。
図８（Ｄ）に示す半透明描画処理に用いるディスティネーション透過プレーンは、描画先（ディスティネーション）の半透明描画処理に用いる半透明値（図８（Ｄ）中に「Ｔ」として示す）を８ビットで持つ。なお、透過プレーンの使用方法については、後記で詳細に説明する。
【００２６】
図８（Ａ）〜（Ｄ）の各プレーンは、メモリが１ページ分確保できる場合には、図６に示したデータ構造で保存された中間データを保存された順番に取り出して、指定されたアドレス（座標データ）に書込むことにより作られる。図８（Ａ）〜（Ｄ）の各プレーンは、夫々画素の彩色情報、画素の属性情報及び画素が構成する図形の半透明描画の情報について、予め確保されたメモリ上の記憶領域である。
図６に示したデータ構造では、描画コマンド（ＩＤ番号）を識別することで、ピクセル属性としての描画オブジェクトとピクセルのアドレス（座標データ）とが得られ、これらのデータに基づいて、ピクセル属性プレーンにデータを書込む。同時に、当該描画コマンドのＧｓｔａｔｕｓ（グラフィックス状態）からカラースペースと色値、半透明描画処理のパラメータとしての半透明値、Ｒａｓｔｅｒ  Ｏｐｅｒａｔｉｏｎ値等が得られ、これらのデータに基づいて、カラープレーン、ディスティネーション透過プレーンそれぞれにデータを書込む。
このとき、図８（Ｂ）に示すように、カラープレーン上で表す色値をインデックス値で表す場合、このインデックス値は、カラールックアップテーブルによって色値と関連付けられる。これにより、後の画像処理においてルックアップテーブルを参照することにより、色値を復元することができる。インデックス値を採用することにより、１バイトで１ピクセル分のデータを表すことが可能となり、
処理するデータ量を低減できる。
また、書き込む際に、以下に示すＲａｓｔｅｒ  Ｏｐｅｒａｔｉｏｎ又は半透明描画処理を行う。
【００２７】
ＲＯＰ（Ｒａｓｔｅｒ  Ｏｐｅｒａｔｉｏｎ）は、Ｗｉｎｄｏｗｓ（登録商標）ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のグラフィックスエンジンで使われる画像処理であり、同じ領域に重なる図形の色値をＲＧＢ各色毎にビット演算をする処理である。ビット演算は、ＯＲ，ＸＯＲ，ＡＮＤがある。
他方、半透明描画処理は、Ｗｉｎｄｏｗｓ（登録商標）  Ｖｉｓｔａ（登録商標）でサポートされるＸＰＳやＰＤＦで使われる画像処理で、同じ領域に重なる色値の透過割合を０％から１００％で指定することで半透明描画する処理である。
通常、ＲＯＰと半透明描画処理が同時に使われることはないが、使われていてもよい。
【００２８】
ＲＯＰが行われる場合は、ディスティネーション透過プレーン（図８（Ｄ）、参照）には書込みは行わない。また、Ｇｓｔａｔｕｓ（グラフィックス状態）から得られるＲａｓｔｅｒ  Ｏｐｅｒａｔｉｏｎ値（ＩＤ）によって、重なる画像（ピクセル）の色値同士でＯＲ，ＸＯＲ，ＡＮＤのビット演算を実施し、演算結果をカラープレーンの当該ピクセルのＲＧＢ色値（各色８ビット）データとして書込む。
なお、Ｇｓｔａｔｕｓ（グラフィックス状態）に保存されているＲＯＰを指定するＩＤは、０〜２５５までの２５６通りあり、それぞれどのようなビット演算が行うか予め定義されている。この定義に従ってＲＧＢ各色毎にソースとディスティネーションのビット演算を実施する。
また、ビット演算を実施した後に、ピクセル属性プレーンに描画したピクセルのオブジェクト情報（文字、イメージ、グラフィックス）をピクセルの属性として点順次に書込む。
【００２９】
半透明描画処理は、次に示す処理方法で実施する。
この実施形態で採用する半透明描画処理は、大別すると、描画対象のソースデータに対してのみ処理条件を設定する場合と、ソースデータ（重ねるデータ）と描画後のディスティネーションデータ（描画先のデータ）の両方に処理条件を設定する場合がある。
前者の場合、ソースとディスティネーションそれぞれのピクセルの色値を、ソース：Ｓ、ディスティネーション：Ｄとし、ソースの半透明値（０から１の間をとる）を半透明値：αとすると、半透明描画処理後の色値：ＮｅｗＤは、下記式（１）に基づいて算出することができる。
ＮｅｗＤ ＝ Ｓ＊α＋（１−α）＊Ｄ    ・・・式（１）
この半透明描画後の色値を算出する処理は、ＲＧＢの各色毎に行う。また、上記のようにソースデータに対してのみ、ソースα処理条件を設定する場合、ディスティネーション透過プレーン（図８（Ｄ）、参照）は、使用しない。
【００３０】
また、ソースデータと描画後のディスティネーションデータの両方に処理条件を設定する場合、
Ａｓ：ソースの半透明値
Ａｄ：ディスティネーション半透明値
Ａｄ’：描画後のディスティネーション半透明値
Ｃｓ：ソース色値
Ｃｄ：ディスティネーション色値
Ｃｄ’：描画後のディスティネーション色値
とすると、Ａｄ’及びＣｄ’は、それぞれ例えば下記式（２）及び式（３）に基づいて算出することができる。
Ａｄ’ ＝ （１−Ａｓ）＊Ａｄ＋Ａｓ    ・・・式（２）
Ｃｄ’ ＝ （（１−Ａｓ）＊Ａｄ＊Ｃｄ＋Ａｓ＊Ｃｓ）／Ａｄ’    ・・・式（３）
【００３１】
上記式（２）に基づいて算出される描画後のディスティネーション半透明値Ａｄ’は、ディスティネーション透過プレーン（図８（Ｄ）、参照）の該当ピクセルに描画されることになる。
ソースの半透明値Ａｓは、Ｇｓｔａｔｕｓ（グラフィックス状態）に設定されている。
多値描画部１１５が中間データの描画オブジェクトをページメモリに描画する場合、Ｇｓｔａｔｕｓに設定されている描画対象オブジェクトの半透明描画処理に用いる半透明値、色値を取り出して、またディスティネーションのカラープレーンに設定されている色値、同じくディスティネーション透過プレーンに設定されているディスティネーション半透明値を使用して、新たなディスティネーション色値とディスティネーション半透明値を計算して、算出値によりそれぞれの値を更新する。
なお、半透明描画処理の処理方法は、同一ページを処理する場合１つの方法に定められているので、複数の処理方法が混在することはない。
【００３２】
以上の説明は、図８（Ａ）に示すカラープレーンへＲＧＢデータを書込む多値描画処理の場合を説明したが、ＣＭＹＫ各色８ビットで描画する場合は、図８（Ａ）に示すカラープレーンにおける１ピクセル当たりパッディングバイトＰを有するＰＲＧＢ３２ビットで表現していたものをＣＭＹＫ３２ビットで描画するように置き換えればよい。つまり、パッティングバイトＰは設ける必要はない。なお、グレースケールの場合は１ピクセル当たり８ビットで描画することになる。
また、中間データのＧｓｔａｔｕｓに半透明描画処理に用いる半透明値があるか否かを確認することにより半透明描画処理の有無を判定する手段を備え、この半透明描画処理判定手段によって半透明描画処理がないと判断された場合に、色値を表すプレーンとして、多値をＣＭＹＫ２値形式の色値で表す描画処理を行うようにしてもよい。
【００３３】
ここで、多値描画処理によって保存されるピクセルデータの保存方法について説明する。
この種の画像形成装置では、多値描画処理によって、色値の他に、ピクセルの属性と半透明値をピクセルデータとして生成し、これらのデータをプリント出力に用いるために保存する。このピクセルデータの保存方法は、従来技術のように、ピクセル単位に順番に配置すると、１ピクセルは５バイト単位のアクセスになってしまい、４バイト（３２ビット）のレジスタで構成されるＣＰＵにとってアクセス効率の低下を招くことは、先に述べたとおりである。
そこで、プリント出力に用いる際、保存したピクセルデータを読出す時のアクセス効率を高めることができる保存方法をこの実施形態では採用する。
【００３４】
ピクセルデータを保存する形態として、概念的には３種の別プレーンとする例について、図８を参照して説明した。ただ、実際の各プレーンの保存形態は、別の記憶領域を利用して保存する必要はなく、プレーンを統合して保存する方法を採ることが可能である。
この実施形態では、先ず、カラープレーンには、図８（Ａ）に示したように、１ピクセルあたり４バイトで点順次に色値を保存するので、４バイト構成のレジスタを持つＣＰＵからのアクセスに都合がよい。よって、カラープレーンは、図８（Ａ）に示したフォーマットで保存する方法を採用する。
【００３５】
また、ピクセル属性プレーンには、ピクセル属性としてのオブジェクト情報（文字、イメージ、グラフィックス）を保存するために必要な容量として、１ピクセルあたり１バイトを確保できればよく、ディスティネーション透過プレーンには、ディスティネーション半透明値を保存するために必要な容量として、１ピクセルあたり１バイトを確保できればよい。よって、ピクセル属性とディスティネーション透過の両プレーンをまとめて１ピクセルあたり２バイトで保存する統合プレーンを用いる方法を採用する。この方法によると、１回のアクセスで、ピクセル属性としてのオブジェクト情報とディスティネーション半透明値の２ピクセル分を取得できる。
図９は、ピクセル属性とディスティネーション透過の両プレーンを統合したフォーマットの概念図を示す。同図に示すように、統合プレーンには、ページ領域を描画するピクセルについて、点順示フォーマットでピクセル属性Ａとディスティネーション半透明値Ｔをまとめて保存する。
【００３６】
上記のピクセルデータの保存方法をとることで、カラープレーンの４バイトと統合（ピクセル属性＋ディスティネーション半透明値）プレーンの２バイトを１ピクセル分としてアクセスを行うことができる。つまり、１．５回の読出しコマンドで１ピクセルデータの読出しができるようになって、少ないコマンド数でピクセルデータの読出しができるために、処理効率を高めることができる。
なお、カラープレーンに４バイトを確保するので、ＣＭＹＫの場合についても、１．５回の読出しコマンドで１ピクセルデータの読出しができることに変わりがなく、ＲＧＢ,ＣＭＹＫいずれも効率よくハンドリングでき、３種のプレーンに保存されたピクセルデータを、以後に行うカラー変換、ハーフトーニング等のプリント出力用の画像データの処理の効率化が図れる。
【００３７】
更に、上述したように、本実施形態においては、カラープレーンの情報においてルックアップテーブルを採用することにより、１ピクセルあたり１バイトで点順次にインデックス値を保存する。この場合、４バイト構成のレジスタを有するＣＰＵからのアクセスでは１アクセスで４ピクセル分のインデックス値を取得することができる。上述した統合プレーンにおいて４ピクセル分を読み出すためには２回のアクセスが必要であるため、合計３回のアクセスで４ピクセル分のデータの読み出しができ、更に画像処理の処理効率を向上することができる。以下、ルックアップテーブルを採用する場合について説明する。
【００３８】
図１０は、本実施形態に係るルックアップテーブルの例である。図１０に示すように、本実施形態に係るルックアップテーブルにおいては、カラー値、即ち画素の彩色を示す情報が、夫々を識別するインデックス値と関連付けられている。即ち、本実施形態に係るルックアップテーブルは、彩色参照情報として用いられる。図１０に示すように、本実施形態においては、インデックス０から２５５までの２５６通りのカラー値を登録することができる。また、図１０に示すように、テーブルを構成するカラー値は、各色８ビットのＲＧＢもしくはＣＭＹＫの場合があり、中間データのカラースペースに応じて用いられる。図１０に示すルックアップテーブルの要素値は、多値描画手段が一番初めに実行される初期段階では全て“０”で初期化されている。
次に、図１０に示すルックアップテーブルの作成方法について説明する。上述したように、多値描画部１１５は、図６において説明したような中間データの描画オブジェクトを逐次描画していく。その際、多値描画部１１５は、ＧＳｔａｔｕｓに含まれるカラーデータ値を取得し、ルックアップテーブル上にそのカラーデータの色が登録されているか否か調べる。そして、登録されている場合、多値描画部１１５は、そのインデックス値を取得し、図８（Ｂ）において説明したように、インデックス値をカラープレーンに格納する。
他方、ＧＳｔａｔｕｓに含まれるカラーデータの色が登録されていない場合、多値描画部１１５は、ルックアップテーブルに新規にそのカラーデータを登録し、そのインデックス値を取得する。そして、多値描画部１１５は、取得したインデックス値をカラープレーンに格納する。このような処理により、図８（Ｂ）に示すようにカラープレーンにインデックス値が格納される。
【００３９】
次に、ＧＳｔａｔｕｓに含まれるカラーデータが、ルックアップテーブル上に登録されているか否かを判断する方法について説明する。本実施形態において、多値描画部１１５は、ハッシュ法と呼ばれる方法を用いて、ルックアップテーブル上にカラーデータが登録されているか否かを判断する。以下、ハッシュ法について説明する。
ハッシュ法とは、検索対象（この場合、カラーデータのカラー値）をハッシュ関数を用いて変換してハッシュ値を求め、そのハッシュ値に基づいて検索を行う方法であり、予め検索対象を絞り込むことによって検索処理についての処理負荷を低減することができる。図１１は、ハッシュ法におけるデータ構造を示す図である。図１１に示すように、ハッシュ法においては、まずハッシュ値の羅列であるハッシュ値テーブルが設けられており、本実施形態においては、“０”〜“２５５”までの２５６個の値のテーブルがハッシュ値テーブルとして設けられている。
また、ハッシュ値テーブルに含まれる各ハッシュ値には、ルックアップテーブルに登録された各カラーデータに関連付けられたハッシュレコードが登録されている。図１１においては、ハッシュ値テーブルのうち“２”のハッシュ値について、２つのハッシュレコードが登録されている例が示されている。図１１に示すように、各ハッシュレコードは、“Ｉｄ”、“Ｔｂｌｐｔｒ”、“Ｎｅｘｔ”のデータを含む。“Ｉｄ”は、対応するルックアップテーブルのインデックス値を示す。“Ｔｂｌｐｔｒ”は、対応するルックアップテーブルのカラーデータへのポインタである。“Ｎｅｘｔ”は、同一のハッシュ値に登録されている次のハッシュレコードへのポインタである。尚、図１１に示すように、次のレコードがない場合、“Ｎｅｘｔ”はＮｕｌｌ値となっている。
図１１の例においては、ハッシュ値“２”には２つのハッシュレコードが登録されており、その２つのハッシュレコードは、夫々ルックアップテーブルのインデックス値“０”、“１”に関連付けられている。これは、ルックアップテーブルのインデックス値“０”及び“１”のカラーデータのハッシュ値が、共に“２”になることを示す。
【００４０】
次に、多値描画部１１５が、ハッシュ法を用いてインデックス値を得る方法について説明する。まず、中間データのＧＳｔａｔｕｓからカラーデータを得ると、多値描画部１１５は、ハッシュ値を計算する。本実施形態において、多値描画部１１５は、以下の式（４）をハッシュ関数としてハッシュ値を求める。
Ｈａｓｈ（ｘ）＝（Ｒ＋Ｇ＋Ｂ）％２５６    ・・・式（４）
上記式（４）は、ハッシュ値として、ＧＳｔａｔｕｓから得られたＲ、Ｇ、Ｂの各値を足して２５６除算した余りを求めることを示している。この２５６は、図１１に示すハッシュ値テーブルのテーブルサイズに等しく、式（４）により、０〜２５５までのいずれかの値がハッシュ値として算出される。尚、Ｒ、Ｇ、Ｂの値が互いに異なる場合であっても、その和が同一であり、結果的にハッシュ値が同一になる場合がある。その場合に、図１１のハッシュ値“２”のように、複数のレコードが１つのハッシュ値に登録されることとなる。
多値描画部１１５は、式（４）によりカラーデータのハッシュ値を求めると、そのハッシュ値に登録されたハッシュレコードに関連付けられたルックアップテーブルを参照し、Ｒ、Ｇ、Ｂの各値を比較する。Ｒ、Ｇ、Ｂの各値が同一のカラーデータがルックアップテーブルに見つかるか、そのハッシュ値に登録されたハッシュレコードのリストの最後に到達するまで、即ち、“Ｎｅｘｔ”がＮｕｌｌ値となるまで、Ｒ、Ｇ、Ｂ値の比較を繰り返すことにより、同一のカラーデータが既にルックアップテーブルに登録されていないか否か判断する。
Ｒ、Ｇ、Ｂの各値が同一のカラーデータがルックアップテーブルに見つかった場合、多値描画部１１５は、処理中のピクセルのカラーデータが、既にルックアップテーブルに登録されていると判断する。他方、Ｒ、Ｇ、Ｂの各値が同一のカラーデータがルックアップテーブルに見つからず、リストの最後に到達した場合、多値描画部１１５は、処理中のピクセルのカラーデータは、ルックアップテーブルに登録されていないと判断し、ルックアップテーブルへのカラーデータの登録処理を行う。
【００４１】
ルックアップテーブルへのカラーデータの登録処理においては、まず、ルックアップテーブルにおける新規インデックス値を取得する。このインデックス値は、たとえばグローバル変数として保存しておき、ルックアップテーブルに新規なデータが登録される度に１足しておけば、“０”〜“２５５”まで順番にインデックス値を割り当てることができる。
ルックアップテーブルにおける新規インデックス値を取得すると、多値描画部１１５は、取得した新規なインデックス値に対応するルックアップテーブルに、中間データのＧＳｔａｔｕｓから取得したカラーデータを書き込む。例えば、図１１においてハッシュ値“２”の２番目のハッシュレコードを新規登録する場合、ルックアップテーブルのインデックス値“１”のデータにカラーデータを書き込む。
そして、多値描画部１１５は、カラーデータを新規登録したルックアップテーブル上のアドレスを、ハッシュレコードの“ＴｂｌＰｔｒ”に書き込むと共に、このハッシュレコードのアドレスを、１つ前のハッシュレコードの“Ｎｅｘｔ”に書き込む。また、多値描画部１１５は、最初に取得した新規インデックス値をカラープレーンに格納する。最後に、多値描画部１１５は、属性プレーンに、対象のピクセルのカラープレーンが、ルックアップテーブルの形式であることを示すビットを書き込む。このような処理により、多値描画部１１５によるピクセルデータの保存処理が完了する。
図１２に、属性プレーンにおける１バイト中において、各ビットに割り当てられる情報の例を示す。図１２に示すように、本実施形態に係る属性プレーンの各バイトにおいては、各ピクセルの属性を示す情報として２ビットが割り当てられている。そして、カラープレーンの形式を示す情報に１ビットが割り当てられている。上述したように、属性プレーン等の各プレーンのデータは多値描画部１１５によって生成される。即ち、図１２に示すような情報は、多値描画部１１５によって生成される。そして、カラー変換部１１６は、図１２に示すような属性プレーンの情報を参照して、カラープレーンの処理方法を決定する。
【００４２】
ここで、図１０において説明したように、本実施形態においてルックアップテーブルに登録可能なカラーデータの個数は２５６個である。しかしながら、画像形成出力すべき画像によっては、２５６色以上の色が必要となる場合もあり得る。
多値描画部１１５では、中間データ上にある描画オブジェクトに何色が用いられているかを認識することができない。中間データを登録する場合にカラー数をカウントする方法もあるが、更に描画する過程で色が増える場合がある。例えば、ＲＯＰ処理ではソースデータとディスティネーションデータのビット演算をすることで新しい色が生成される。また、半透明描画においても同様に色が増える。このような場合に、ルックアップテーブルの登録数が不足することが考えられる。
具体的には、上述したようにグローバル変数として保存されているインデックス値が“２５６”である場合、既にルックアップテーブルが一杯であることを示している。この場合、多値描画部１１５は、カラープレーンのピクセルデータをルックアップテーブル形式ではなく、図８（Ａ）において説明したようなカラーデータの形式で格納する。そして、属性プレーンに、対象のピクセルのカラープレーンが、カラーデータの形式であることを示すビットを書き込む。
このような処理により、可能な限りルックアップテーブル形式を採用してカラープレーンのデータを格納してメモリアクセス回数を低減し、ルックアップテーブルが一杯になった場合でもカラーデータそのものを用いてカラープレーンに情報を格納することが可能となる。
尚、本実施形態においては、ルックアップテーブルに登録可能なカラー値の数が２５６個であるため、カラープレーンの形式をインデックス形式からカラーデータの形式に切り換えるインデックス値の閾値を２５６とするが、この値は、ルックアップテーブルに登録可能なカラー値の数に応じて定められる。即ち、多値描画部１１５は、ルックアップテーブルに既に登録されたカラーデータの数が所定の閾値に達した場合に、カラープレーンの形式を切り換える。
【００４３】
更に、ルックアップテーブルが一杯になった場合の他にも、ルックアップテーブルを用いずに、カラーデータそのものを登録すべき場合がある。例えば、中間データ上の描画データがフルカラーのイメージデータである場合、用いるカラーの総数が２５６色を超えてしまう可能性が高い。このような場合、ルックアップテーブルの仕様を予めキャンセルすることによって、文字や図形の描画についてのピクセルデータを優先的にルックアップテーブルに登録することができ、メモリアクセスを効率化することができる。
具体的な処理として、多値描画部１１５は、中間データにおける描画データのＩＤ番号を参照し、描画データがフルカラーか否かを判断する。図７に示す描画データのＩＤ番号のうち、ＩＤ＝０ｘ０３はフルカラーイメージ、ＩＤ＝０ｘ０４はインデックステーブルを使用したカラー値、即ちインデックスイメージで、１、２、４、８ビットいずれかのインデックス値を有するイメージである。ここで、１、２、４、８ビットは、夫々カラー値のビット数を示し、１の場合、１ビット、即ち白黒であることを示す。以降、４色、１６色、２５６色の場合を示す。このインデックス値のビット数は、図６に示す中間データにおいて、例えばｆｌａｇに格納されている。
多値描画部１１５は、描画データのＩＤ番号が０ｘ０３である場合、描画データはフルカラーイメージであるため、ルックアップテーブルの検索は行わずに、ＲＧＢ２４ビットフルカラーデータで描画する。また、ＩＤ番号が０ｘ０４である場合において、ビット数が８ビット、即ち２５６色である場合も同様に、ＲＧＢ２４ビットフルカラーデータで描画する。そして、属性プレーンに、対象のピクセルのカラープレーンが、カラーデータの形式であることを示すビットを書き込む。
【００４４】
次に、バンディング処理について説明する。
上記の説明で多値描画部１１５が処理に必要なメモリ容量として、１ページ分確保できるものとして説明したが、１ページ分のメモリ容量が確保できない場合には、バンディング処理という方法によって描画処理を行う。
図１３は、バンディング処理におけるバンドデータとページデータとの関係を説明する概念図である。バンディング処理は、コントローラ１０が１ページ分のメモリ容量が確保できない場合に、図１３に示すように、ページデータを高さ方向に複数に分割し、分割したバンドデータ単位でメモリ容量を確保し（図１３の例では、高さ１０２４のバンドメモリを確保）、処理を行うことで、ページデータの処理を可能にする方法である。
【００４５】
バンディング処理では、多値描画部１１５は、描画処理に必要な中間データを取得する際に、バンド単位でメモリにアクセスし、取得した中間データを確保したバンドメモリに保存することで描画処理を実行する。バンドメモリに保存することができた中間データ以外のバンドデータは、圧縮するか、ハードディスク（不図示）等に退避しておく。圧縮した形で処理を待つバンドデータは、描画要求があった時点で圧縮を解凍してバンドメモリ上にロードする。ハードディクス退避しておいた場合にも描画要求があった時点でメモリ上にロードする。描画が終了し、次のバンド描画要求があった時点で圧縮するか、又はハードディスクへ保存するような処理を行う。
【００４６】
中間データ（図６に示したデータ構造、参照）をもとにバンディング処理で描画を行う際、各描画オブジェクトの座標データから各バンドデータにクリップしてバンドメモリに描画する。
描画結果としてバンドメモリに保存するピクセルデータは、図８及び図９の例に示したフォーマットになるが、バンド毎に違うフォーマットを適用できるようにすることによりメモリ容量を節約でき、バンドメモリに保存したピクセルデータを利用する際にも無駄なアクセス操作をしなくてもすむ。例えば、バンド０がグレーデータしかない場合は、カラープレーンは、１バイト（８ビット）グレープレーンのみでよく、ピクセル属性とディスティネーション透過の統合プレーンは、変わらないのでそれぞれ１バイトずつの２バイトとなる。他方、バンド１には、カラーデータが含まれる場合は、４バイトＰＲＧＢプレーンと、ピクセル属性とディスティネーション透過の統合プレーンは、変わらず２バイトとなる。なお、各バンドで使用されている色は、中間データのＧｓｔａｔｕｓ（グラフィックス状態）に含まれるカラーデータを調べることにより判定することができる。
【００４７】
ここで、バンドデータに対する描画処理を図１４に示すフロー図に基づいて説明する。
図１４のフローに示すように、バンディング動作が起動されると、先ず、描画対象となるページデータのバンドデータｂａｎｄ０〜６から予め定められた順番に従い１つのバンドデータを取得する（ステップＳ１４０１）。
次に、取得したバンドデータ内の描画対象ピクセルを点順次に指定し（ステップＳ１４０２）、指定されたピクセルに対する中間データのＧｓｔａｔｕｓ（グラフィックス状態）を取得する（ステップＳ１４０３）。
次に、指定されたピクセルのＧｓｔａｔｕｓに含まれる色値を調べ、色値がモノクロかカラーかを判断する（ステップＳ１４０４）。
【００４８】
ステップＳ１４０４で調べた色値から当該ピクセルがカラーであると判断された場合には（ステップＳ１４０４-ＮＯ）、次に、対象のピクセルデータをルックアップテーブルの形式とするか否かを判断する（ステップＳ１４０５）。ステップＳ１４０５の判断は、上述したように、ルックアップテーブルが一杯であるか否か及びフルカラーイメージであるか否かの判断によって処理される。
ルックアップテーブルの形式とする場合（ステップＳ１４０５-ＹＥＳ）、上述した方法にてインデックス値を取得してバンドメモリのカラープレーンに書き込むと共に、新規な色である場合はルックアップテーブルにカラーデータを登録する（ステップＳ１４０５）。
他方、ルックアップテーブルの形式ではなく、カラーデータの形式とする場合、バンドメモリのカラープレーンに、ＰＲＧＢフォーマット（４バイト）でＲＧＢ又はＣＭＹＫの色値を書込む（ステップＳ１４０６）。
他方、色値から当該ピクセルがモノクロであると判断された場合には（ステップＳ１４０４-ＹＥＳ）、バンドメモリのカラープレーンに、モノクロフォーマット（１バイト）で濃度値を書込む（ステップＳ１４０７）。
なお、上記の書込みステップで書込む色値又は濃度値は、半透明描画処理が設定されている場合には、設定条件に従い半透明描画の色値を計算し、算出した色値を書込む。
次いで、バンドメモリのピクセル属性プレーンに当該ピクセルのピクセル属性としてのオブジェクト情報（文字、イメージ、グラフィックス）を書込む（ステップＳ１４０８）。ステップＳ１４０８の処理においては、上述したように、対応するピクセルのカラープレーンの形式がルックアップテーブルの形式であるかカラーデータの形式であるかを示す情報も書き込まれる。
さらに、半透明描画処理が設定されている場合には、当該ピクセルのディスティネーション半透明値を計算して（上記式（２）、参照）、算出値をバンドメモリのディスティネーション透過プレーンに書込み、バンドメモリのディスティネーション半透明値を更新する（ステップＳ１４０９）。
【００４９】
ステップＳ１４０２で指定されたピクセルについてピクセルデータを描画した後、カレントバンドの全ピクセルの描画処理を完了したか否かを確認する（ステップＳ１４１０）。
カレントバンドの中に描画が未処理のピクセルがあれば（ステップＳ１４１０-ＮＯ）、ステップＳ１４０２に戻り、点順次に次のピクセルを指定して、上記と同様に描画処理を行う。
他方、カレントバンドの全ピクセルの描画処理を完了した場合には（ステップＳ１４１０-ＹＥＳ）、描画処理後のバンドメモリ上のバンドデータを転送し、バンドメモリを開放して次の描画に備える（ステップＳ１４１１）。なお、描画処理後のバンドデータは、例えば、ハードディスクに保存して、プリント出力用の画像データヘの処理を待つ。
次に、ステップＳ１４０１で取得したバンドデータの全ピクセルデータを描画し、バンドメモリが利用できる状態になったところで、描画対象となるページデータの全バンドの描画処理を完了したか否かを確認する（ステップＳ１４１２）。
描画対象となるページデータ中に描画が未処理のバンドデータがあれば（ステップＳ１４１２-ＮＯ)、ステップＳ１４０１に戻り、次のバンドデータを取得して、上記と同様に描画処理を行う。
他方、描画対象となるページデータの全バンドデータの描画処理を完了した場合には（ステップＳ１４１２-ＹＥＳ）、この描画処理を終了する。
【００５０】
描画コアモジュール１１０の処理に戻って、多値描画処理を行った多値描画部１１５の後段の画像処理部について説明する。後段の画像処理部では、多値描画部１１５によって描画された多値ページメモリのピクセルデータをプリント出力用の画像データに変換する処理を行う。
先ず、カラー変換部１１６によって行う色変換処理について説明する。
色変換処理は、カラーマッチング処理、ＢＧ／ＵＣＲ（Ｂｌａｃｋ  ｇｅｎｅｒａｔｉｏｎ及びＵｎｄｅｒ  Ｃｏｌｏｒ  ｒｅｍｏｖａ１）処理を実施し、デバイスＣＭＹＫ（プリンタエンジン３０で画像出力に用いる画像データ）に変換する処理が主な処理である。
【００５１】
カラー変換部１１６は、多値描画部１１５によって描画されたカラープレーン、ピクセル属性プレーン、ディスティネーション透過プレーンの各プレーンに保存されたピクセルデータを用いてカラーマッチング処理を行う。この際、カラー変換部１１６は、属性プレーンの情報のうちカラープレーンの情報形式を示す情報を参照し、ルックアップテーブルの形式である場合は、ルックアップテーブルからカラーデータを取得する。
カラーマッチングは、プリント出力しようとする画像が意図したとおりの色特性を持つ画像となるように、出力デバイス（プリンタエンジン３０）に依存する特性を色変換のパラメータの調整により補正する。
本実施形態のカラー変換部１１６は、上記の多値描画処理で得られたＰＲＧＢカラープレーンのＲＧＢ各色８ビットのピクセルデータの入力を受け、このデータに色変換によるカラーマッチング処理を施す。カラーマッチング処理後のＲＧＢ各色８ビットのデータは、同じメモリアドレスに上書きされる。
【００５２】
カラーマッチング処理をする際に、上記の多値描画処理で得られたピクセル属性プレーンのピクセルデータを参照して、文字、イメージ、グラフィックスのオブジェクトの種類に応じたマッチング処理パラメータを適用することにより、適正なカラーマッチングを行い、画質を向上することができる。また、オブジェクトの種類におけると同様に、多値描画処理で得られたディスティネーション透過プレーンについても、ディスティネーション半透明値を参照して、この半透明値に応じたマッチング処理パラメータを適用することにより、適正なカラーマッチングを行い、画質を向上することができる。
【００５３】
さらに、多値描画処理で得られたＰＲＧＢカラープレーンのＲＧＢ各色８ビットのピクセルデータ若しくは、インデックス値に基づいてルックアップテーブルから得られたピクセルデータに対してＢＧ／ＵＣＲ処理を実施する。このＢＧ／ＵＣＲ処理の出力は、ＣＭＹＫになる。ピクセル毎にＢＧ／ＵＣＲ変換されたデータは、元のＰＲＧＢカラープレーンとして保存されていたのと同じメモリアドレスに上書きされる。なお、ＰＲＧＢカラープレーンの色値は４バイトであるため、変換後も同じアドレスに保存できる。
このように、多値描画部１１５による多値描画処理で各プレーンに保存されたピクセルデータは、カラー変換部１１６におけるカラーマッチング処理及びＢＧ／ＵＣＲ処理によってカラースペース及びカラーデータが変換される。ただ、このデータ変換のために、余分なメモリ容量を必要とせず、メモリの取得を行うこともない。
【００５４】
ＣＭＹＫ２値変換部１１７は、カラー変換部１１６によって処理された多値のＣＭＹＫデータを２値に変換する。
ＣＭＹＫ２値変換部１１７は、カラー変換部１１６からのＣＭＹＫ各色８ビットのカラープレーンデータとピクセル属性プレーンデータを受け取り、ＣＭＹＫ各色８ビットのピクセルデータに対するハーフトーン処理を実施し、２値でＣＭＹＫ各色のページメモリに保存する。この処理の際、ピクセル属性プレーンデータは、描画オブジェクト毎に適用するハーフトーンパターンを変更するために用いる。
換言すると、カラー変換部１１６及びＣＭＹＫ２値変換部１１７が、多値描画部１１５によって生成された画素情報に基づき、画素を描画するための階調情報を生成する階調情報生成部として機能する。
このように、本実施形態においては、カラープレーンの情報としてルックアップテーブルを用いることにより、１アクセスで情報を読み出し可能なピクセル数を増やし、画像処理の処理効率を向上することができる。
【００５５】
尚、上記実施形態においては、図１０において説明したように、ルックアップテーブルに登録可能なカラーデータの数として２５６個、即ち１バイト分を設ける場合が例として説明されている。しかしながら、これは一例であり、それ以上であってもそれ以下であっても良い。
例えば、ルックアップテーブルに登録可能なカラーデータの数を１６個、即ち４ビット分とすると、インデックス値の情報量が４ビットとなり、１バイト中に２ピクセル分のカラーデータを格納することが可能になる。これにより、４バイト構成のＣＰＵの場合１回のアクセスで８ピクセル分のカラーデータを読み出すことが可能となる。この他、インデックス値のビット数を８の約数とすることにより、カラープレーンの１バイトを余剰無く消費することができるため、ＣＰＵによるメモリアクセスの効率を向上することができる。
また、ルックアップテーブルに登録可能なカラーデータの数を可変とすることもできる。例えば、上述したバンド毎にインデックスのビット数を変えても良い。これにより、メモリ容量を節約でき、バンドメモリに保存したピクセルデータを利用する際にも無駄なアクセス操作をしなくてもすむ。この場合、インデックスのビット数毎にルックアップテーブルを設けることになる。また、そのピクセルについて適用されているルックアップテーブルのインデックスのビット数を属性プレーンの余剰ビットに記録しておく。これにより、バンド毎にインデックスのビット数を変えて制御することが可能になる。
【符号の説明】
【００５６】
１０・・コントローラ、１１・・ＣＰＵ、３０・・プリンタエンジン、４０・・操作パネル、１０４・・プリンタコントロールシステム部、１０５・・ＰＤＬ部、１１０・・描画コアモジュール、１１３・・描画モジュールＩ／Ｆ、１１４・・中間データ保存部、１１５・・多値描画部、１１６・・カラー変換部、１１７・・ＣＭＹＫ２値変換部、１２０・・ＰＤＬパーサ部。
【先行技術文献】
【特許文献】
【００５７】
【特許文献１】特開２００４−２４３５６９号公報
【図１】
2011020276.tif 000003
【図２】
2011020276.tif 000004
【図３】
2011020276.tif 000005
【図４】
2011020276.tif 000006
【図５】
2011020276.tif 000007
【図６】
2011020276.tif 000008
【図７】
2011020276.tif 000009
【図８】
2011020276.tif 000010
【図９】
2011020276.tif 000011
【図１０】
2011020276.tif 000012
【図１１】
2011020276.tif 000013
【図１２】
2011020276.tif 000014
【図１３】
2011020276.tif 000015
【図１４】
2011020276.tif 000016