(57)【要約】【課題】複数のレイヤを合成する処理に要するメモリ容量を低減することができる画像処理装置、画像処理方法、画像処理プログラム、およびそのプログラムを記録した記録媒体を提供すること。【解決手段】複数のレイヤを記述したＸＭＬドキュメントを解釈して描画命令を取得するＸＭＬパース部２２０と、取得した描画命令に基づいて描画することにより、複数のレイヤ画像をレイヤ画像メモリ２３２に展開するレイヤ画像展開部２３１と、レイヤ画像メモリ２３２に展開されるレイヤ画像を次々に合成することにより、合成画像を生成するレイヤ画像合成部２３５とを備える。レイヤ画像展開部２３１は、レイヤ画像メモリ２３２に展開されたレイヤ画像に、次のレイヤ画像を上書きするようにして展開することにより、レイヤ画像メモリ２３２として要するメモリ容量を低減させる。【選択図】図２
2009005131.tif 000002
【特許請求の範囲】
【請求項１】
所定のマークアップ言語により複数のレイヤを記述した入力データから、前記複数のレイヤを合成した合成画像を生成する画像処理装置であって、
前記入力データを解釈して、前記複数のレイヤの各々についての描画命令を取得する描画命令取得手段と、
前記取得した描画命令に基づいて描画することにより、前記複数のレイヤの各々についてのレイヤ画像を画像メモリに順次展開するレイヤ画像展開手段と、
前記画像メモリに展開されるレイヤ画像を次々に合成するレイヤ画像合成手段とを備え、
前記レイヤ画像展開手段は、前記画像メモリに展開済の前記レイヤ画像のうち合成に既に用いられた前記レイヤ画像を、新たに描画されるレイヤ画像に書き換えるようにして、前記複数のレイヤ画像を前記画像メモリに次々に展開することを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記画像メモリに展開されたレイヤ画像を、前記レイヤ画像を合成するための中間コードとして、中間コードメモリに登録する中間コード登録手段をさらに備え、
前記レイヤ画像合成手段は、前記登録された中間コードを用いて前記レイヤ画像を合成し、
前記中間コード登録手段は、前記中間コードメモリに登録された前記中間コードのうち合成済のレイヤ画像の中間コードを、新たな中間コードに書き換えるようにして、前記複数のレイヤ画像の中間コードを前記中間コードメモリに次々に登録することを特徴とする画像処理装置。
【請求項３】
請求項１または２に記載の画像処理装置において、
前記合成画像の画像データを印刷データとして出力する出力手段をさらに備え、
前記レイヤ画像合成手段は、前記画像メモリに展開されたレイヤ画像をトランスフォームし、前記トランスフォームされた画像を前記合成画像の画像領域上に配置するようにして、合成することを特徴とする画像処理装置。
【請求項４】
請求項１ないし３のいずれか一項に記載の画像処理装置において、
前記レイヤ画像展開手段は、前記画像メモリに展開済の前記レイヤ画像が合成に用いられると、前記画像メモリに展開された前記レイヤ画像を、前記展開済のレイヤ画像の次に描画するレイヤ画像で書き換えることを特徴とする画像処理装置。
【請求項５】
所定のマークアップ言語により複数のレイヤを記述した入力データから、前記複数のレイヤを合成した合成画像を生成する画像処理方法であって、
前記入力データを解釈して、前記複数のレイヤの各々についての描画命令を取得するステップと、
前記取得した描画命令に基づいて描画することにより、前記複数のレイヤの各々についてのレイヤ画像を画像メモリに順次展開するステップと、
前記画像メモリに展開されるレイヤ画像を次々に合成するステップとを備え、
前記画像メモリに展開済の前記レイヤ画像のうち合成に既に用いられた前記レイヤ画像を、新たに描画されるレイヤ画像に書き換えるようにして、前記複数のレイヤ画像を前記画像メモリに次々に展開することを特徴とする画像処理方法。
【請求項６】
所定のマークアップ言語により複数のレイヤを記述した入力データから、前記複数のレイヤを合成した合成画像を生成するための画像処理プログラムであって、
コンピュータを、
前記入力データを解釈して、前記複数のレイヤの各々についての描画命令を取得する描画命令取得手段、
前記取得した描画命令に基づいて描画することにより、前記複数のレイヤの各々についてのレイヤ画像を画像メモリに順次展開するレイヤ画像展開手段、
前記画像メモリに展開されるレイヤ画像を次々に合成するレイヤ画像合成手段、として機能させ、
前記レイヤ画像展開手段は、前記画像メモリに展開済の前記レイヤ画像のうち合成に既に用いられた前記レイヤ画像を、新たに描画されるレイヤ画像に書き換えるようにして、前記複数のレイヤ画像を前記画像メモリに次々に展開することを特徴とする画像処理プログラム。
【請求項７】
請求項６に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
複数のレイヤ画像を合成する画像処理装置、画像処理方法、画像処理プログラム、およびそのプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
近年発売されたオペレーションシステム「Windows Vista（登録商標）」においては、ＸＭＬ（EXtensible Markup Language）ベースの言語で記述されるＸＰＳドキュメントの形式で、ドキュメントの生成、共有、印刷、アーカイブなどの処理を行うようになっている（非特許文献１参照）。例えば、印刷を行う場合、プリンタドライバには、印刷の対象とする内容をＸＭＬで記述したＸＰＳドキュメントが出力される。プリンタドライバは、ＸＰＳドキュメントに記述されたＸＭＬのコードを解釈して、描画などの画像処理を行うことにより印刷画像を生成し、印刷画像に基づいて印刷を制御する。
【０００３】
ここで、ＸＰＳドキュメントでは、複数のレイヤを上層から下層に重ね合わせるようにして画像を表現するレイヤ機能がサポートされている。複数のレイヤが記述されたＸＰＳドキュメントを処理する際、プリンタドライバは、各レイヤをビットマップ形式のレイヤ画像に展開してから複数のレイヤ画像を重ね合わせるようにして、印刷画像を合成する。
【０００４】
【非特許文献１】“ＸＰＳ仕様書（XPS Paper Specification）”、［online］、インターネット<URL:http://www.microsoft.com/japan/whdc/xps/xpsspec.mspx>
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、複数のレイヤ画像を合成する際、複数のレイヤ画像をメモリに展開するので、大容量のメモリを必要としてしまうという課題があった。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも１つを解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
【０００７】
［適用例１］所定のマークアップ言語により複数のレイヤを記述した入力データから、前記複数のレイヤを合成した合成画像を生成する画像処理装置であって、前記入力データを解釈して、前記複数のレイヤの各々についての描画命令を取得する描画命令取得手段と、前記取得した描画命令に基づいて描画することにより、前記複数のレイヤの各々についてのレイヤ画像を画像メモリに順次展開するレイヤ画像展開手段と、前記画像メモリに展開されるレイヤ画像を次々に合成するレイヤ画像合成手段とを備え、前記レイヤ画像展開手段は、前記画像メモリに展開済の前記レイヤ画像のうち合成に既に用いられた前記レイヤ画像を、新たに描画されるレイヤ画像に書き換えるようにして、前記複数のレイヤ画像を前記画像メモリに次々に展開することを特徴とする画像処理装置。
【０００８】
この構成によれば、合成に既に用いられたレイヤ画像が書き換えられるようにして、入力データに記述された複数のレイヤのレイヤ画像が画像メモリに次々に展開されるので、レイヤ画像を展開するために要する画像メモリのメモリ容量が低減する。したがって、入力データから合成画像を生成する処理を、より少ないメモリ容量で実行できるようになる。
【０００９】
［適用例２］上記画像処理装置において、前記画像メモリに展開されたレイヤ画像を、前記レイヤ画像を合成するための中間コードとして、中間コードメモリに登録する中間コード登録手段をさらに備え、前記レイヤ画像合成手段は、前記登録された中間コードを用いて前記レイヤ画像を合成し、前記中間コード登録手段は、前記中間コードメモリに登録された前記中間コードのうち合成済のレイヤ画像の中間コードを、新たな中間コードに書き換えるようにして、前記複数のレイヤ画像の中間コードを前記中間コードメモリに次々に登録することを特徴とする画像処理装置。
【００１０】
この構成によれば、合成済のレイヤ画像の中間コードが書き換えられるようにして、複数のレイヤ画像の中間コードが次々に中間コードメモリに展開されるので、中間コードを登録するために要する中間コードメモリのメモリ容量が低減し、より少ないメモリ容量で処理を実行できるようになる。
【００１１】
［適用例３］上記画像処理装置において、前記合成画像の画像データを印刷データとして出力する出力手段をさらに備え、前記レイヤ画像合成手段は、前記画像メモリに展開されたレイヤ画像をトランスフォームし、前記トランスフォームされた画像を前記合成画像の画像領域上に配置するようにして、合成することを特徴とする画像処理装置。
【００１２】
この構成によれば、トランスフォームされた複数のレイヤ画像が配置されるようにして合成された合成画像の印刷データが画像処理装置から出力されるので、例えば割り付け印刷など、レイヤを用いた様々な印刷機能を実現することができる。
【００１３】
［適用例４］上記画像処理装置において、前記レイヤ画像展開手段は、前記画像メモリに展開済の前記レイヤ画像が合成に用いられると、前記画像メモリに展開された前記レイヤ画像を、前記展開済のレイヤ画像の次に描画するレイヤ画像で書き換えることを特徴とする画像処理装置。
【００１４】
この構成によれば、画像メモリに展開されたレイヤ画像を、展開済のレイヤ画像の次に描画するレイヤ画像で書き換えるので、レイヤ画像を展開するために要する画像メモリのメモリ容量をレイヤ画像１つ分に抑えることができる。
【００１５】
［適用例５］所定のマークアップ言語により複数のレイヤを記述した入力データから、前記複数のレイヤを合成した合成画像を生成する画像処理方法であって、前記入力データを解釈して、前記複数のレイヤの各々についての描画命令を取得するステップと、前記取得した描画命令に基づいて描画することにより、前記複数のレイヤの各々についてのレイヤ画像を画像メモリに順次展開するステップと、前記画像メモリに展開されるレイヤ画像を次々に合成するステップとを備え、前記画像メモリに展開済の前記レイヤ画像のうち合成に既に用いられた前記レイヤ画像を、新たに描画されるレイヤ画像に書き換えるようにして、前記複数のレイヤ画像を前記画像メモリに次々に展開することを特徴とする画像処理方法。
【００１６】
［適用例６］所定のマークアップ言語により複数のレイヤを記述した入力データから、前記複数のレイヤを合成した合成画像を生成するための画像処理プログラムであって、コンピュータを、前記入力データを解釈して、前記複数のレイヤの各々についての描画命令を取得する描画命令取得手段、前記取得した描画命令に基づいて描画することにより、前記複数のレイヤの各々についてのレイヤ画像を画像メモリに順次展開するレイヤ画像展開手段、前記画像メモリに展開されるレイヤ画像を次々に合成するレイヤ画像合成手段、として機能させ、前記レイヤ画像展開手段は、前記画像メモリに展開済の前記レイヤ画像のうち合成に既に用いられた前記レイヤ画像を、新たに描画されるレイヤ画像に書き換えるようにして、前記複数のレイヤ画像を前記画像メモリに次々に展開することを特徴とする画像処理プログラム。
【００１７】
［適用例７］上記画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明を実施するための最良の形態】
【００１８】
（第１の実施例）
以下、本発明の実施の形態に係る第１の実施例について図面を参照して説明する。
【００１９】
図１は、第１の実施例に係る印刷システムの構成を示したブロック図である。図１に示すように、印刷システム１は、ホストコンピュータ（画像処理装置）２およびプリンタ３を備えている。なお、本実施例では、プリンタ３が１枚の印刷用紙に対して複数ページの内容を印刷する、いわゆる割り付け印刷について説明するものとする。
【００２０】
ホストコンピュータ２は、例えば、汎用のパーソナルコンピュータである。ホストコンピュータ２は、図１に示すように、ＣＰＵ２０と、ＲＯＭ２１と、ＲＡＭ２２と、ハードディスク（以下、「ＨＤ」という）２３と、ＣＤ−ＲＯＭドライブ２４と、通信インターフェイス（以下、「通信Ｉ／Ｆ」という）２５とを備えている。通信Ｉ／Ｆ２５はケーブルを介してプリンタ３と相互にデータ通信可能に接続されている。
【００２１】
ＣＰＵ２０は、ホストコンピュータ２の主制御装置であり、ホストコンピュータ２の各構成の制御を司る。ＲＯＭ２１はホストコンピュータ２の各構成を制御するためのプログラムなどが記録された不揮発性のメモリである。ＲＡＭ２２はワーキングメモリなどとして用いられる汎用のメモリであり、ＲＡＭ２２のメモリ領域には、後述するレイヤ画像メモリ、中間コードメモリおよびページメモリが確保される。
【００２２】
ＨＤ２３は、アプリケーションプログラムやドライバプログラム（画像処理プログラム）などを予め記録している。このドライバプログラムは、ＣＤ−ＲＯＭ４などの記録媒体に記録された形態で供給され、ＣＤ−ＲＯＭドライブ２４がＣＤ−ＲＯＭ４からプログラムを読み出し、読み出したプログラムをＣＰＵ２０がＨＤ２３に記録したものである。なお、ドライバプログラムを記録した記録媒体の例としては、ＣＤ−ＲＯＭ４に限られることなく、フレキシブルディスクや、ＤＶＤ−ＲＯＭなどの光ディスク、ＭＯなどの光磁気ディスク、メモリカードなど、コンピュータ読み取り可能な種々の媒体が挙げられる。もっとも、電気通信回線を介して外部のサーバからドライバプログラムをダウンロードして、ＨＤ２３に記録するようにしてもよい。
【００２３】
図２は、ホストコンピュータの機能構成を示したブロック図である。図２に示すように、ホストコンピュータ２は、アプリケーション１００とプリンタドライバ２００とを有する。
【００２４】
アプリケーション１００は、プリンタ３に対する印刷要求元であり、例えば、文書作成ソフトウェアや表計算ソフトウェアである。アプリケーション１００は、オペレーションシステムの下で、印刷内容をＸＭＬで記述したＸＭＬドキュメント（入力データ）をプリンタドライバ２００に受け渡す。割り付け印刷の場合、このＸＭＬドキュメントには、印刷の対象とする複数のページが記述されている。ＸＭＬドキュメントの具体例としては、ＸＰＳドキュメントなどが挙げられる。
【００２５】
プリンタドライバ２００は、アプリケーション１００からＸＭＬドキュメントを受け取ると、ＸＭＬドキュメントをプリンタ３が処理可能なフォーマットの印刷データに変換し、プリンタに出力する。これらの処理を行うため、プリンタドライバ２００は、ドライバ内部の処理を制御する制御部２１０と、ＸＭＬドキュメントをパースするＸＭＬパース部（描画命令取得手段）２２０と、パースして得られた描画命令に基づいてレンダリングを行うレンダリング部２３０とを有している。なお、これらの構成を有するプリンタドライバ２００は、オペレーションシステムの下で、ＣＰＵ２０がＨＤ２３に記録されたドライバプログラムを読み出して実行することにより機能している。
【００２６】
制御部２１０は、アプリケーション１００からＸＭＬドキュメントの入力を受けるドキュメント入力部２１１と、プリンタドライバ２００内のデータ制御を行うデータ制御部２１２と、印刷データをプリンタ３に出力する印刷データ出力部（出力手段）２１３とを有している。データ制御部２１２は、入力されたＸＭＬドキュメントをＸＭＬパース部２２０に受け渡すことによりＸＭＬパース部２２０にパースさせ、パースにより得られた描画命令をレンダリング部２３０に受け渡すことによりレンダリング部２３０にレンダリングを行わせる。印刷データ出力部２１３は、レンダリングにより生成された画像を、印刷データとしてプリンタ３に出力する。
【００２７】
レンダリング部２３０は、パース後の描画命令に基づくレンダリングにおいて、ＸＭＬドキュメントに記述された複数のレイヤの画像（以下、「レイヤ画像」という）を合成して、合成画像を生成する処理を行う。そのため、レンダリング部２３０は、レイヤ画像展開部（レイヤ画像展開手段）２３１と、レイヤ画像メモリ（画像メモリ）２３２と、中間コード登録部２３３と、中間コードメモリ２３４と、レイヤ画像合成部（レイヤ画像合成手段）２３５と、ページメモリ２３６とを有する。
【００２８】
レイヤ画像展開部２３１は、データ制御部２１２から受け取る描画命令に基づいて、図形、テキスト、イメージなどのオブジェクトを描画することにより、レイヤ画像メモリ２３２にビットマップ形式のレイヤ画像を展開する。中間コード登録部２３３は、レイヤ画像メモリ２３２に展開されたレイヤ画像を、ドライバにとって処理し易い形式で表す中間コードに変換し、中間コードメモリ２３４に登録する。具合的には、中間コードは、レイヤ画像を所定の高さの領域（バンド）ごとに表すバンド画像の画像データや、バンドごとに行うトランスフォーム変換（拡大・縮小、回転など）を指定するトランスフォーム情報などを含んでいる。割り付け印刷においては１ページ分の領域に複数ページのレイヤを並べるようにして配列するので、トランスフォーム情報には、レイヤ画像の縮小倍率や、用紙への印刷方向に応じてレイヤ画像を回転させる回転量を示す情報が含まれる。
【００２９】
レイヤ画像合成部２３５は、登録された中間コードに基づいてバンド画像をトランスフォームする処理、およびトランスフォームされたバンド画像をレイアウトしてページメモリ２３６にレイヤ画像を書き込む処理を行う。そして、レイヤ画像展開部２３１、中間コード登録部２３３、レイヤ画像合成部２３５が複数のレイヤ画像を順次処理することにより、ページメモリ２３６に複数のレイヤ画像を次々に書き込むようにして、ページメモリ２３６のメモリ領域上に複数のレイヤ画像を合成する。
【００３０】
例えば、１枚の用紙に２ページを印刷する割り付け印刷を行う場合、図３に示すように、レイヤ画像展開部２３１は、１ページ目のレイヤ画像Ｌ１をレイヤ画像メモリ２３２に展開し（図３（ａ）参照）、中間コード登録部２３３は、レイヤ画像Ｌ１をバンドごとに表す中間コードＭ１を中間コードメモリ２３４に登録する（図３（ｂ）参照）。そして、レイヤ画像合成部２３５は、登録された中間コードＭ１に基づき各バンドの画像データをトランスフォーム（図３の例では縮小処理）し、ページメモリ２３６における１ページ目の割り付け位置２３６ａの該当アドレスに次々に書き込む（図３（ｃ）〜（ｅ）参照）。こうして、ページメモリ２３６上に、まず１ページ目のレイヤ画像Ｌ１がレイアウトされる。
【００３１】
レイヤ画像Ｌ１がレイアウトされると、次に、２ページ目のレイヤ画像Ｌ２をレイアウトする。レイヤ画像Ｌ２のレイアウトについても、レイヤ画像Ｌ１の場合と同様にして、レイヤ画像Ｌ１が展開されたレイヤ画像メモリ２３２（図４（ａ）参照）に、２ページ目のレイヤ画像Ｌ２を展開し（図４（ｂ）参照）、バンドごとの中間コードＭ２を登録する（図４（ｃ）参照）。そして、登録された中間コードＭ２に従ってトランスフォームした各バンドの画像データを、ページメモリ２３６における２ページ目の割り付け位置２３６ｂの該当アドレスに次々に書き込むようにしてレイヤ画像Ｌ２をレイアウトする（図４（ｄ）〜（ｆ）参照）。こうして、ページメモリ２３６上にはレイヤ画像Ｌ１，Ｌ２を合成した合成画像Ｇが形成される。この合成画像Ｇの印刷データをプリンタ３に出力することにより、１枚の用紙に２ページを印刷する割り付け印刷が行われる。
【００３２】
ここで、レイヤ画像展開部２３１は、中間コードとしての登録が済んで合成に用いられたレイヤ画像を、メモリの節約のため、レイヤ画像メモリ２３２のメモリ領域上で次のレイヤ画像に書き換えるようにしてメモリを管理する。図３，４の例では、レイヤ画像展開部２３１は、レイヤ画像Ｌ１を記憶したレイヤ画像メモリ２３２のメモリ領域上に、レイヤ画像Ｌ２を書き込むようにしてレイヤ画像Ｌ２を上書きしている（図４（ａ）、（ｂ）参照）。なお、レイヤ画像を書き換える方法としては、上書きに限られず、中間コードとして登録されたレイヤ画像については、レイヤ画像メモリ２３２からデータを消去して、次のレイヤ画像を書き込む前に予めメモリ領域を空けておくようにしてもよい。
【００３３】
次に、割り付け印刷における処理の流れについて、図５のフローチャートに従って説明する。なお、図５の処理は、ＣＰＵ２０が、ＨＤ２３に記録されたドライバプログラムを実行することにより行われるものである。
【００３４】
処理を開始して、ドキュメント入力部２１１が、アプリケーション１００からＸＭＬドキュメントの入力を受けると（ステップＳ１００）、ＸＭＬパース部２２０は、入力されたＸＭＬドキュメントをパースして１レイヤ分の描画命令を取得する（ステップＳ１１０）。次に、レイヤ画像展開部２３１は、取得した描画命令に基づいて描画することにより、レイヤ画像メモリ２３２にレイヤ画像を展開する（ステップＳ１２０）。
【００３５】
次に、中間コード登録部２３３は、レイヤ画像メモリ２３２から展開されたレイヤ画像を読み出して、レイヤ画像からバンドごとに中間コードを生成し、中間コードメモリ２３４に登録する（ステップＳ１３０）。
【００３６】
次に、レイヤ画像合成部２３５は、登録された中間コードを中間コードメモリ２３４から読み出して、中間コードのトランスフォーム情報に従ってトランスフォームを行い、トランスフォームされたバンドの画像をページメモリ２３６に展開する。ここでは、レイヤ画像合成部２３５は、中間コードメモリ２３４に登録された１レイヤ分の全中間コードについて処理を行い、ページメモリ２３６にレイヤ画像を展開する（ステップＳ１４０）。
【００３７】
次に、制御部２１０は、ＸＭＬドキュメントに記述された全レイヤについて処理を終了したか否かを判断する（ステップＳ１５０）。未処理のレイヤがあれば（ステップＳ１５０：Ｎｏ）、ステップＳ１１０に戻って、ＸＭＬドキュメントをさらにパースして次のレイヤについての描画命令を取得して、ステップＳ１１０〜Ｓ１４０の処理を繰り返す。このときのステップＳ１２０において、上述したように、レイヤ画像メモリ２３２に展開されたレイヤ画像に、ステップＳ１１０で取得した描画命令のレイヤ画像を上書きして展開する。また、ステップＳ１３０においても同様に、中間コードメモリ２３４に登録された中間コードに、ステップＳ１２０で展開したレイヤ画像の中間コードを上書きして登録する。
【００３８】
ステップＳ１１０〜Ｓ１４０の処理を繰り返し行い、ＸＭＬドキュメントに記述されたレイヤを次々に処理するようにして全レイヤについて処理が終了すれば（ステップＳ１５０：Ｙｅｓ）、ステップＳ１６０に進んで、印刷データ出力部２１３は、全レイヤ画像を合成した合成画像をページメモリ２３６から読み出し、合成画像を所定の高さを有するバンドごとに印刷データとしてプリンタ３に順次出力する。こうして、プリンタドライバ２００が、合成画像の印刷をプリンタ３に行わせることにより、複数ページを１枚の用紙に印刷する割り付け印刷がなされる。
【００３９】
以上に説明した印刷システム１によれば、以下の効果を得ることができる。
【００４０】
（１）レイヤ画像メモリ２３２に展開されたレイヤ画像に次に展開するレイヤ画像を上書きするようにして、以前のレイヤ画像のデータを残さないようにメモリを管理しているので、複数のレイヤを展開する場合であっても、レイヤ画像メモリ２３２として用いるメモリ領域は、レイヤ画像１つ分で済むようになる。したがって、複数のレイヤ画像をレイヤ画像メモリ２３２に展開する場合に比べて、レイヤ画像メモリ２３２として要するメモリ容量が大幅に低減し、ＸＭＬドキュメントの割り付け印刷におけるメモリ効率が大幅に向上する。
【００４１】
（２）レイヤ画像メモリ２３２として要するメモリ容量はレイヤの数に関わらずに一定（レイヤ画像１つ分）であるので、ＸＭＬドキュメントの処理中にメモリ容量不足によりレイヤ画像を展開できなくなる可能性が低減し、処理の安定性が向上する。
【００４２】
（３）中間コードメモリ２３４についても、レイヤごとに中間コードを上書きするようにしたので、中間コードメモリ２３４として要するメモリ容量を低減することができる。したがって、ＸＭＬドキュメントの割り付け印刷におけるメモリ効率が向上する。
【００４３】
（第２の実施例）
次に、第２の実施例について説明する。上記第１の実施例では、ホストコンピュータに備わるプリンタドライバ２００がレイヤ合成を行って印刷データを生成する、いわゆるドライバページの態様をなしていたが、第２の実施例では、システムのプリンタ側でパースおよびレンダリングが行われる。なお、以下では、第１の実施例と同様の構成については同じ符号を付与し、詳細な説明を省略する。
【００４４】
図６は、第２の実施例に係る印刷システムの構成を示したブロック図である。図６に示すように、印刷システム６は、ホストコンピュータ７と、プリンタ（画像処理装置）８とを備えている。ホストコンピュータ７は、アプリケーション１００と、プリンタドライバ３００とを備えている。プリンタドライバ３００は、アプリケーション１００から入力されたＸＭＬドキュメントを印刷データとしてプリンタ８に出力する処理を行う。
【００４５】
プリンタ８は、コントローラ８０と、印刷エンジン８１とを備えている。コントローラ８０は、制御部２１０、ＸＭＬパース部２２０、レンダリング部２３０を有しており、プリンタドライバ３００から受け取った印刷データ（入力データ）に対して、第１の実施例と同様にしてパースおよびレンダリングを行う。コントローラ８０は、レンダリングにより生成された合成画像を、印刷エンジン８１が処理可能な形式のデータに変換して、印刷エンジン８１に出力する。これにより合成画像が印刷される。
【００４６】
第２の実施例によれば、プリンタ側でパースおよびレンダリングを行うシステムにおいても、第１の実施例と同様の効果を得ることができる。
【００４７】
本画像処理装置は、第１の実施例および第２の実施例に限られることなく、以下に説明する変形例とすることもできる。
【００４８】
（変形例１）上記第１，２の実施例では、複数のレイヤ画像を合成することによって割り付け印刷を行う場合について説明したが、例えば、印刷対象とするページのレイヤに、丸秘などの文字を表すレイヤを重ねるスタンプマーク印刷など、レイヤ合成を伴う様々な印刷処理においても、上記実施例と同様にして、処理に要するメモリ容量を節約することができる。
【００４９】
（変形例２）上記第１，２の実施例では、１ページ分の中間コードを中間コードメモリ２３４に登録するようにしたが、中間コードメモリ２３４への中間コードの登録およびページメモリ２３６へのバンド画像の展開をバンドごとに繰り返すように処理する場合、ページメモリ２３６に展開済の中間コードには新たな中間コードを上書きするようにしてもよい。このようにすれば、中間コードの登録に要するメモリ容量がさらに低減するので、メモリ効率がさらに向上する。
【００５０】
（変形例３）上記第１，２の実施例では、処理の便宜上、レイヤ画像メモリ２３２に展開されたレイヤ画像を中間コードとして登録し、中間コードごとにページメモリ２３６に展開するようにしたが、レイヤ画像メモリ２３２に展開されたレイヤ画像に直接トランスフォーム変換を行って、ページメモリ２３６に展開するようにしてもよい。
【００５１】
（変形例４）上記第１，２の実施例では、レイヤ画像メモリ２３２に展開されたレイヤ画像に、次のレイヤ画像を上書きするようにして、レイヤ画像メモリ２３２に要するメモリ容量を１ページ分に抑えるようにしたが、所定ページ分のメモリ容量を使うようにしてもよい。例えば、レイヤ画像２つ分のメモリ領域をレイヤ画像メモリ２３２として確保し、展開された１ページ目のレイヤ画像から中間コードを登録する処理を行いながら、２ページ目のレイヤをレイヤ画像メモリ２３２に展開するようにしてもよい。そして、１ページ目のレイヤ画像に対する中間コードの登録処理を終えると、展開された２ページ目のレイヤ画像から中間コードを登録する処理を開始するとともに、３ページ目のレイヤ画像を１ページ目のレイヤ画像に上書きして展開する。このように、レイヤ画像２つ分のメモリを用いて、レイヤ画像の展開処理と中間コードの登録処理とを並行して進めることにより、レンダリングに要する時間を短縮することができる。
【００５２】
（変形例５）上記第１，２の実施例では、マークアップ言語であるＸＭＬにより複数のレイヤが記述されたＸＭＬドキュメントを処理する場合について説明したが、ＨＴＭＬ（HyperText Markup Language）やＸＨＴＭＬ（EXtensible HyperText Markup Language）で複数のレイヤが記述されたデータに対して処理する場合にも、処理に要するメモリ容量を節約することができる。
【００５３】
（変形例６）上記第１，２の実施例では、プリンタを例にして説明したが、プリンタに限られることなく、複写機やファックスであってもよい。また、ＸＭＬドキュメントをビットマップなどの画像データに展開する処理であれば、上記した機器に限られることなく様々な機器に適用することができる。
【図面の簡単な説明】
【００５４】
【図１】第１の実施例に係る印刷システムの構成を示したブロック図。
【図２】ホストコンピュータの機能的構成を示したブロック図。
【図３】１ページ目のレイヤ画像を合成する処理を説明するための説明図であり、（ａ）はレイヤ画像、（ｂ）は中間コード、（ｃ）〜（ｅ）は合成画像を示した図。
【図４】２ページ目のレイヤ画像を合成する処理を説明するための説明図であり、（ａ）、（ｂ）はレイヤ画像メモリに展開されたレイヤ画像、（ｃ）は中間コード、（ｄ）〜（ｆ）は合成画像を示した図。
【図５】割り付け印刷における処理の流れを示したフローチャート。
【図６】第２の実施例に係る印刷システムの構成を示したブロック図。
【符号の説明】
【００５５】
１…印刷システム、２…画像処理装置としてのホストコンピュータ、３…プリンタ、４…記録媒体としてのＣＤ−ＲＯＭ、２０…ＣＰＵ、２１…ＲＯＭ、２２…ＲＡＭ、２３…ハードディスク、２４…ＣＤ−ＲＯＭドライブ、２５…通信インターフェイス、１００…アプリケーション、２００…プリンタドライバ、２１０…制御部、２１１…ドキュメント入力部、２１２…データ制御部、２１３…出力手段としての印刷データ出力部、２２０…描画命令取得手段としてのＸＭＬパース部、２３０…レンダリング部、２３１…レイヤ画像展開手段としてのレイヤ画像展開部、２３２…画像メモリとしてのレイヤ画像メモリ、２３３…中間コード登録部、２３４…中間コードメモリ、２３５…レイヤ画像合成手段としてのレイヤ画像合成部、２３６…ページメモリ。
【図１】
2009005131.tif 000003
【図２】
2009005131.tif 000004
【図３】
2009005131.tif 000005
【図４】
2009005131.tif 000006
【図５】
2009005131.tif 000007
【図６】
2009005131.tif 000008