(57)【特許請求の範囲】
【請求項１】
画像と他の画像との合成処理を行う画像処理装置であって、
前記画像に基づく分割画像にＭｏｄｅ情報として倍率設定情報を付加したパケットを生成する生成手段と、
前記倍率設定情報に従い前記分割画像の解像度変換を行う解像度変換手段、
前記解像度変換後の分割画像に対する前記他の画像上での合成位置を算出する算出手段、
前記合成位置に対応する前記他の画像上の複数の分割画像を選択する選択手段、
前記解像度変換後の分割画像と前記複数の分割画像の前記Ｍｏｄｅ情報として画像合成を行う情報を付加したパケットを生成する第２の生成手段、
前記解像度変換後の分割画像と前記複数の分割画像の前記Ｍｏｄｅ情報に従い前記解像度変換後の分割画像と前記複数の分割画像との合成処理をする合成手段とを有することを特徴とする画像処理装置。
【請求項２】
前記合成手段による合成処理が正常に実行されなかった場合、前記第２の生成手段は、正常に行われなかった合成処理に関係する分割画像のパケットを再び生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
画像と他の画像との合成処理を行う画像処理方法であって、
前記画像に基づく分割画像にＭｏｄｅ情報として倍率設定情報を付加したパケットを生成し、
前記倍率設定情報に従い前記分割画像の解像度変換を行い、
前記解像度変換後の分割画像に対する前記他の画像上での合成位置を算出し、
前記合成位置に対応する前記他の画像上の複数の分割画像を選択し、
前記解像度変換後の分割画像と前記複数の分割画像の前記Ｍｏｄｅ情報として画像合成を行なう情報を付加したパケットを生成し、
前記解像度変換後の分割画像と前記複数の分割画像の前記Ｍｏｄｅ情報に従い前記解像度変換後の分割画像と前記複数の分割画像との合成処理をすることを特徴とする画像処理方法。
【請求項４】
前記合成処理が正常に実行されなかった場合、正常に行われなかった合成処理に関係する分割画像のパケットを再び生成することを特徴とする請求項３に記載の画像処理方法。
【請求項５】
請求項３の画像処理方法をコンピュータで行なわせるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、原画像と他の画像との合成処理を行う画像処理装置、画像処理方法、及びプログラムに関する。
【０００２】
【従来の技術】
画像の合成処理機能は、パーソナルコンピュータ等情報処理装置や、スキャナ、プリンタ、ＦＡＸ、複写機、そして、これらの機能を兼備えるデジタル複合機等画像処理装置において、有用な機能の一つとなっている。例えば、パーソナルコンピュータにおいては、所定の画像処理ソフトウェアを実行するＣＰＵが、画像の合成処理を実行する画像合成ユニットとして機能する。同様に、デジタル複合機においては、コントローラに含まれる画像処理部が、画像合成ユニットとして機能する。
【０００３】
従来、これらの装置において複数の画像を合成処理する場合、画像全体のラスターファイルに関して処理を行っていた。例えば、図２３に示すように、合成する画像全体のラスターファイル（画像Ａ、画像Ｂ）を処理の対象として画像合成ユニットに入力させ、合成処理を実行させ合成結果画像Ｃを得ていた。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来のように、画像全体を合成処理の処理対象としていたのでは、合成処理を施す必要が無い部分も合成の対象として扱うため、合成処理に無駄に時間がかかるという問題があった。また、画像全体を扱うため、画像のサイズに応じては、合成に必要となるハードウェアリソースも膨大になるという問題があった。また、画像合成におけるＣＰＵの制御及び管理負荷等も増加するという問題もあった。
【０００５】
本発明は、上述した問題点を解決するためのものであり、複数の原画像に関する合成処理を高速かつ低コストに実行できるようにした画像処理装置、画像処理方法、及びプログラムを提供することを目的とする。
【０００６】
また、所定の定型画像に関する合成処理を高速かつ低コストに実行できるようにした画像処理装置、画像処理方法、及びプログラムを提供することを目的とする。
【０００７】
また、装置のコストアップを招くことなくフォームオーバーレイ印刷の高速化を可能とした画像処理装置、画像処理方法、及びプログラムを提供することを目的とする。
【０００８】
また、合成処理の制御及び管理を行うＣＰＵ等の負荷の削減を可能とした画像処理装置、画像処理方法、及びプログラムを提供することを目的とする。
【０００９】
また、ＣＰＵと合成回路とで合成処理の負荷を分散することができるので、高速化及び低コスト化が可能となった画像処理装置、画像処理方法、及びプログラムを提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明の画像処理装置は、画像と他の画像との合成処理を行う画像処理装置であって、
前記画像に基づく分割画像にＭｏｄｅ情報として倍率設定情報を付加したパケットを生成する生成手段と、
前記倍率設定情報に従い前記分割画像の解像度変換を行う解像度変換手段、
前記解像度変換後の分割画像に対する前記他の画像上での合成位置を算出する算出手段、
前記合成位置に対応する前記他の画像上の複数の分割画像を選択する選択手段、
前記解像度変換後の分割画像と前記複数の分割画像の前記Ｍｏｄｅ情報として画像合成を行う情報を付加したパケットを生成する第２の生成手段、
前記解像度変換後の分割画像と前記複数の分割画像の前記Ｍｏｄｅ情報に従い前記解像度変換後の分割画像と前記複数の分割画像との合成処理をする合成手段とを有することを特徴とする。
【００２５】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
【００２６】
（第１の実施形態）
図１は、本発明の画像処理装置を適用可能なデジタル複合機の構成を示すブロック図である。
【００２７】
複合機コントローラ （１００）は、画像入力デバイスであるスキャナ（１３１）や画像出力デバイスであるプリンタ（１３０）と接続されている。また、複合機コントローラ（１００）は、ネットワークあるいはパラレルインタフェイス等の外部インタフェイス（１０５）を通じて外部機器との間で画像データ等の入出力をおこなう。外部機器としては、例えば、プリンタ（１３０）で出力するための印刷データ（コードデータ）を送信するＰＣやプリンタサーバ、ファクシミリ装置、及びリモートコピーや重連コピー等のために画像の送受信が相互に可能な他のデジタル複合機等が挙げられる。
【００２８】
システム制御部（１０１）は内部にＣＰＵを含み、複合機全体を制御する。ＣＰＵは、後述する画像合成のためのプログラムを実行することができる。ＲＡＭ（１０２）はシステム制御部（１０１）内のＣＰＵが動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＯＭ（１０３）はブートＲＯＭであり、システムのブートプログラムが格納されている。操作部（１０４）はシステム制御部（１０１）に接続され、ユーザインタフェイスを提供する。
【００２９】
画像リング（１０６，１０７）は、一対の単方向接続経路の組み合わせにより構成されシステム制御部（１０１）と画像処理部（１１０）間のデータの受け渡しを行うバスである。画像リング（１０６，１０７）は、画像処理部（１１０）内で、画像データ入力インタフェイス（１１１）及び画像データ出力インタフェイス（１１２）を介し、コマンド処理部（１１５）、ステータス処理部（１１６）、タイルバス（１２６）に接続される。
【００３０】
コマンド処理部（１１５）は、画像データ入力インタフェイス（１１１）、画像データ出力インタフェイス（１１２）及びレジスタ設定バス（１２８）に接続されている。コマンド処理部（１１５）は、システム制御部（１０１）より発行され、画像リング（１０６）を介して入来したコマンドパケット（後述）を解釈する。そして、そのコマンドで指定された各処理ブロック内のレジスタへアクセスする。そのコマンドにより要求されるレジスタ書き込みおよびレジスタ読み出しは、レジスタ設定バス（１２８）を介して実行される。レジスタ読み出しを行った場合には読み出した情報を再度コマンドパケット化し、生成したコマンドパケットを画像データ出力インタフェイス（１１２）を介してシステム制御部（１０１）へ返送する。
【００３１】
ステータス処理部（１１６）は各画像データ処理部（１２１-１２４）のステータスを監視する。そして、ステータス処理部（１１６）は、ステータスに応じてシステム制御部（１０１）に対して割り込み（インタラプト）を発行するためのインタラプトバケット（後述）を生成し、画像データ出力インタフェイス（１１２）に出力する。
【００３２】
タイルバススイッチ（１２６）には、さらに、スキャナインタフェイス（１２０）、プリンタインタフェイス（１１９）、画像合成部（１２１）、解像度変換部（１２２）、色空間変換部（１２３）、画像回転部（１２４）が接続される。
【００３３】
スキャナインタフェイスは（１２０）は、スキャナ（１３１）より出力されるラスタ画像データを入力する。そして、レジスタ設定バス（１２８）を介してシステム制御部（１０１）から設定された所定の方法により、入力したラスタ画像データをタイル形式の画像へ構造変換する。またこの変換処理とともに、クロックの同期化を行い、タイルバススイッチ（１２６）に対し、タイル変換された画像データを出力する。
【００３４】
プリンタインタフェイス（１１９）は、タイルバススイッチ（１２６）からタイル画像データを入力し、ラスタ画像データへの構造変換及び、クロックレートの変更を行い、変換されたラスタ画像データをプリンタ（１３０）へ出力する。
【００３５】
なお、画像処理部（１１０）をプリンタ（１３０）やスキャナ（１３１）と接続せずに用いることもできる。この場合には、スキャナインタフェイス（１２０）及びプリンタインタフェイス（１１９）が行うラスタ画像データとタイル画像データとの形式変換機能を行う手段を別途設ける。これにより、スキャナインタフェイス（１２０）及び／又はプリンタインタフェイス（１１９）を除去可能となる。
【００３６】
画像合成部（１２１）は、タイル画像データの単位での画像合成処理を行う。画像合成部（１２１）の詳細については後述する。
【００３７】
解像度変換部（１２２）は、画像メモリ（１２９）を用いて画像の解像度の変更処理を行う。色空間変換部（１２３）は、画像メモリ（１２９）を用いてカラー及びグレースケール画像の色空間の変換処理を行う。画像回転部（１２４）は、画像の回転処理を行う。
【００３８】
画像メモリ制御部（１２５）は、メモリバス（１２７）及びレジスタ設定バス（１２８）に接続される。画像メモリ制御部（１２５）は、各画像データ処理部（１２２，１２３，１２４）の要求に従い、画像メモリ（１２９）に対して、画像データの書き込み、読み出し等の動作を行う。
【００３９】
外部記憶装置（１３２）は、ＨＤＤ（ハードディスクドライブ）等により構成されており、システム制御部（１０１）に接続されている。また、外部記憶装置（１３２）は、合成をおこなうための画像や、システムが動作するためのプログラム、設定情報等を記憶している。
【００４０】
次に、本実施形態における処理単位である、タイル画像について図２を用いて説明する。図２に示すように、ラスター画像データとしてスキャナ（１３１）や外部インタフェイス（１０５）等から入力され、ＲＡＭ（１０２）にファイルとして格納された１ページの画像２００が、システム制御部（１０１）により、複数の矩形領域（Ｔｉｌｅ）に分割される。各タイル領域は縦３２画素、横３２画素の大きさを有しており、領域毎にタイル画像が生成される。ここで、Ａ４サイズの原稿をスキャナ部（１０６）により６００×６００ｄｐｉの解像度で読み取ったとし、３２×３２画素のタイルで分割したとすると、Ａ４サイズの原稿から３４３２０個のタイル画像が生成される。なお、上述したように、同様の機能を有するスキャナインタフェイス（１２０）に、タイル生成処理を行わせることもできる。
【００４１】
生成したタイル画像にＸ及びＹ座標を与えることにより、それぞれのタイル画像を一意に識別することができる。ここで、タイル座標はピクセル座標から次のようにして算出できる。例えば、図２（ａ）に示すように左上からタイル位置を定めた時、左上が０，０であり、ＸまたはＹと書かれた矢印の方向に行くにつれてそれぞれの座標及びタイル位置のＸ，Ｙ成分が増加する。図中でＴｉｌｅ（０，０）等とあるものが一つのタイルを示し、その括弧内がタイル位置を示すＸ座標，Ｙ座標である。図２（ａ）の様にタイル位置を決めたとき、画像位置ｉｍｇ＿ｘ，ｉｍｇ＿ｙ［ピクセル］からタイル位置ｔｉｌｅ＿ｘ， ｔｉｌｅ＿ｙへの変換式は、次の様に表せる。
ｔｉｌｅ＿ｘ＝ｉｎｔ（ｉｍｇ＿ｘ／３２）
ｔｉｌｅ＿ｙ＝ｉｎｔ（ｉｍｇ＿ｙ／３２）
本実施形態では、図２（ａ）に従うタイル分割と各タイルへの識別情報の付加を行う。しかし、本発明はこれに限るものではなく、生成したタイル画像に、シリアル番号をつけることによって識別するようにしてもよい。このとき、図２（ｂ）に示すように、画像位置ｉｍｇ＿ｘ，ｉｍｇ＿ｙ［ピクセル］からタイル番号ｔｉｌｅ＿ｎｕｍへの変換式は、次の様に表せる。
ｔｉｌｅ＿ｎｕｍ＝ｉｎｔ（ｉｍｇ＿ｘ／３２＋ｉｎｔ（ｉｍｇ＿ｙ／３２＊２２０））
また、タイル画像生成においては、読み取り解像度や画像処理の都合に応じて、システム制御部（１０１）がタイル画像を扱い易い形状や画素数にすることができる。
【００４２】
次に、本実施形態の複合機コントローラ（１００）内で画像データの処理に用いられるパケットのフォーマットを説明する。
【００４３】
本実施形態における画像処理部（１１０）は、画像データを、パケット化された形式で転送する。また、画像データを取り扱う際、予め定めた小領域（タイル）単位で取り扱うことを特徴とする。タイル単位で画像データを取り扱うことにより、少ないメモリ容量で画像処理を行うことが可能である。
【００４４】
まず、図３に示すタイルデータパケットのフォーマットについて説明する。
【００４５】
タイルデータパケットは、所定画素数（本実施形態では３２画素×３２画素とする）で分割したタイル単位の画像データ（３０２）と、後述する制御情報が格納されるヘッダ（３０１）と、画像付加情報（３１６）から構成される。本実施形態においては、１つのタイルデータパケットで１タイル単位の画像データを格納する。
【００４６】
次に、図４に示すコマンドパケットのフォーマットについて説明する。
【００４７】
コマンドパケットは、ヘッダ（４０１）及びコマンド（４０２）から構成され、レジスタ設定バス（１２８）を介して各画像データ処理部（１２１，１２２，１２３，１２４）等の動作を制御するレジスタへのアクセスを行うためのものである。コマンド（４０２）はアクセスするレジスタのアドレス（４０５）及びデータ（４０４）の組から構成される。
【００４８】
次に、図５に示すインタラプトパケットのフォーマットについて説明する。
【００４９】
インタラプトパケットはヘッダ（５０１）及びインタラプトデータ（５０２）からなり、画像処理部（１１０）からシステム制御部（１０１）への割り込みを通知するために用いられる。インタラプトパケットは、処理中に異常が発生した場合や、スキャナでスキャン動作が終了した場合などに発行される。
【００５０】
次に、各データパケットのヘッダ（３０１，４０１，５０１）に含まれる情報について説明する。
【００５１】
パケットの種別（Type）はヘッダ（３０１，４０１，５０１）内のPacketType（Pckt Type）（３０３）で区別され、本実施形態では、以下のようにPacketType
（３０３）の値とパケット種別とが対応しているものとする。
PacketType 種別
０００１タイルデータパケット
００１０コマンドパケット
０１００インタラプトパケット
ChipID（３０４）はパケットの送信先（ターゲットとなるチップのID）を示し、本実施形態では以下のようにChipID（３０４）の値と送信先とが対応しているものとする。
ChipID送信先
００００システム制御部（１０１）
０００１画像処理部（１１０）
ImageType（３０５）には例えば１bit Black&White / ８bit Color RGB / ８bit Color CMYKなど、パケットに含まれる画像データのデータタイプを示す値が格納される。
【００５２】
PageID（３０６）は、画像データのページ数（ページ番号）を示し、JobID（３０７）はソフトウェアで画像処理を管理するためのJob IDを格納する。
【００５３】
PacketIDY（３０８）及びPacketIDX（３０９）は、パケットに含まれる（又は指定される）画像データが、画像全体においてどの位置におけるタイルに相当するかを示す。タイル位置はＹ方向（PacketIDY（３０８））とＸ方向（PacketIDX（３０９））を組み合わせ、YnXnで表される。
【００５４】
Process Instruction（３１０）は５bitのUnitID（３１４）及び３bitのMode（３１５）の組である処理Unit１-８から構成され、各処理Unitは左（下位）から順番に処理される。処理されたUnitID及びModeは廃棄され、次に処理されるUnitID及びModeが左端に位置するよう、Process Instruction全体が左に８BitShiftされる。Process Instruction（３１０）にはUnitID（３１４）とMode（３１５）の組が最大８組格納される。UnitID（３１４）は以下に示すように画像処理部（１１０）内の各部を指定し、Mode（２１６）は各部での動作モードを指定する。これにより、１つの画像データパケットに含まれる（又は指定される）画像データに対し、最大でのべ８つのブロックで連続処理を指定することが可能である。
【００５５】
なお、本実施形態ではUnit IDと対応する各部の関係は以下の通りとする。
UnitID対応する処理部
００１０１プリンタインタフェイス（１１９）
００１１０スキャナインタフェイス（１２０）
０１０００画像合成部（１２１）
０１００１解像度変換部（１２２）
０１０１０色空間変換部（１２３）
０１１００画像回転部（１２４）
また、PacketByteLength（３１１）はパケットのトータルバイト数を示す。ImageDataByteLengh（３１２）はパケットに含まれる画像データのバイト数を示す。CompressFlug（３１３）は画像データが圧縮されているかどうかを表す。ImageDataOffset（３１７）、ZDataOffset（３１８）は、それぞれのデータのパケットの先頭からのOffsetを表している。ZDataByteLength（３１９）は、画像付加情報のバイト数を表し、thumbnail（３２０）は、画像のサムネイル情報である。
【００５６】
CmdType（４０３）はコマンドパケット内のコマンドのタイプを示す。CmdNum（４０４）はコマンドパケット内のコマンドの数を示す。Address（４０５）、Data（４０６）はレジスタ設定バスを介してアクセスするレジスタのアドレスとデータを示す。
【００５７】
IntChipID（５０３）は割り込みパケットの送信元を示し、IntData（５０２）に含まれるModule０ Status-Module８ Status（５０４）がその送信元内の割り込み発生源である各モジュールのStatus（状態）である。本実施形態では以下のようにIntChipID（５０３）の値と発生源とが対応している。
IntChipID送信元
００００システム制御部（１０１）
０００１画像処理部（１１０）
従って、例えば、画像処理部（１１０）においては、画像合成部（１２１）及び画像データ処理部（１２２-１２４）のそれぞれがモジュールに相当し、あるモジュールから割り込みが発生した際に、画像処理部（１１０）が各モジュールのStatusを抽出して、対応するModule Status（５０４）へ格納したインタラプトパケットを作成する。この場合、インタラプトパケットのIntChipIDは画像処理部（１１０）を示す"０００１"、送信先であるChipID（３０４）は例えばシステム制御部（１０１）を示す"００００"となる。
【００５８】
以上のフォーマットに従うパケットデータを用いた複合機コントローラの画像合成処理動作を以下に説明する。
【００５９】
まず、本実施形態における画像合成処理の流れを図６に示す。本実施形態では、複合機コントローラ（１００）が、ＲＡＭ（１０２）に格納しているそれぞれ１ページの画像Ａ（６０１）と画像Ｂ（６０２）を、画像合成部（１２１）を用いて合成し、画像Ｃ（６０３）を生成して再びＲＡＭ（１０２）に格納する。なお、本実施形態では、説明を明瞭にするため、画像Ａ（６０１）及び画像Ｂ（６０２）は、２値の白黒画像であるとする。
【００６０】
また、図７は、画像合成処理における複合機コントローラ（１００）の動作を説明するフローチャートである。以下、図１、６、７を用いて、画像Ａと画像Ｂから、合成画像Ｃを生成する手順を説明する。なお、以下に説明する動作は、システム制御部（１０１）内部のＣＰＵがＲＡＭ（１０２）もしくはＲＯＭ（１０３）に記憶されたプログラムを実行し、各部を制御することによって実現することができる。なお、上述したように、画像処理部（１１０）は、各パケットを用いて制御される。
【００６１】
まず、システム制御部（１０１）は、ＲＡＭ（１０２）に予め格納されている画像Ａ（６０１）と画像Ｂ（６０２）を読み出し、図２に示したように、ラスターファイルからタイル状のタイル画像に分割する（Ｓ７０１）。
【００６２】
システム制御部（１０１）は、分割された画像Ａ（６０１）のタイルから、合成すべき画像が含まれているタイル画像を抽出する（Ｓ７０２）。タイルの抽出は、画像の背景色と各タイルに含まれるピクセルの比較により行う。タイル内に背景色と異なるピクセルが含まれている場合に、合成する画像が含まれていると識別される。図６の画像（６０４）は、画像Ａ（６０１）の左上端部を拡大したものである。このように、本実施形態では、白色を背景色にしているので、黒画素を含むタイル画像（６０５）が合成すべきタイルとして抽出される。タイルは、図２（ａ）に示したように、Ｘ方向の座標位置およびＹ方向の座標位置の組み合わせで番号付けされ識別される。
【００６３】
システム制御部（１０１）は、抽出したタイル画像（６０５）に含まれるタイルＡ（Ｘ，Ｙ）に対応する画像Ｂ（６０２）のタイルＢ（Ｘ，Ｙ）を読み出し、タイルＡ（Ｘ，Ｙ）、タイルＢ（Ｘ，Ｙ）からデータパケットを生成する（Ｓ７０３）。以後、タイルＡ（Ｘ，Ｙ）を含むデータパケットをデータパケットＡ、タイルＢ（Ｘ，Ｙ）を含むデータパケットをデータパケットＢと呼ぶ。このとき、データパケットＡ、及びＢに付加するヘッダ（３０１）における、ProcessInstraction（３１０）のUnitID、及びChipID（３０４）は、ともに、Unit ID 1＝“０１０００”（画像合成部）とし、Unit ID 2-8＝“０００００”、ChipID＝０００１”（画像処理部）とする。また、Process Instruction（３１０）にあるMode（３１５）に画像合成を行うモードが設定される。また、タイル位置（Ｘ，Ｙ）に関しては、Ｙ方向がPacketIDY（３０８）に、Ｘ方向がPacketIDX（３０９）に設定される。
【００６４】
システム制御部（１０１）は、生成したデータパケットＡ、Ｂを、画像リング（１０６）を介し、画像合成部（１２１）（画像処理部１１０）へ送信する（Ｓ７０４）。画像処理部（１１０）内の画像データ入力インタフェイス（１１１）は、データパケットＡ，Ｂを受け取り、ヘッダのProcessInstraction（３１０）を解析し、最初に処理すべきUnit ID 1が画像合成部（１２１）を示しているので、データパケットＡ，Ｂを、画像合成部（１２１）へ送る。
【００６５】
画像合成部（１２１）は、タイルバス（１２６）を介して送られてくるデータパケットＡ、Ｂの２パケットを受け取ると、パケットのProcess Instruction（３１０）を読み取る。ここで、各ヘッダのUnitID（３１４）が画像合成部（１２１）を表すIDと一致するか判定する。そして、上述したように、この場合IDが一致するので、画像合成部（１２１）は、タイル位置（Ｘ，Ｙ）が一致するかを、Ｙ方向に関してPacketIDY（３０８）、Ｘ方向に関してPacketIDX（３０９）を見ることで判定する。判定の結果、ここでもタイル位置は一致する。そして、次に、Mode（３１５）の設定に従い、データパケットに含まれるタイルＡ（Ｘ，Ｙ）とＢ（Ｘ，Ｙ）の合成を行う（Ｓ７０５）。ここで、画像合成部（１２１）は、パケットから取り出されたタイルＡ（Ｘ，Ｙ）とＢ（Ｘ，Ｙ）に関し、タイルに含まれる画素毎にＯＲ処理を施して、合成画像タイルＣ（Ｘ，Ｙ）を生成する。
【００６６】
次に、画像合成部（１２１）は、ステップＳ７０５での画像合成が正常に終了したか否かを判定する（Ｓ７０６）。ここで、正常に終了した場合（Ｓ７０６，Ｙｅｓ）、ステップＳ７０７の処理に移行し、異常終了の場合（Ｓ７０６，Ｎｏ）は、後述するステップＳ７１３の処理に移行する。
【００６７】
画像合成部（１２１）は、タイルＡ（Ｘ，Ｙ）とＢ（Ｘ，Ｙ）の合成が正常に終了すると（Ｓ７０６，Ｙｅｓ）、合成結果Ｃ（Ｘ，Ｙ）に対し、タイルＢ（Ｘ，Ｙ）のヘッダ情報を付加することで、データパケットＣを生成する（Ｓ７０７）。ここで、生成されたパケットのProcess Instruction（３１０）は８ビットシフトすることで、Unit ID 1-8＝"０００００"とされ、また、ChipID（３０４）はシステム制御部（１０１）を表すID、"００００"に変換される。
【００６８】
画像合成部（１２１）は、生成したデータパケットＣを、システム制御部（１０１）へ送信する（Ｓ７０８）。ここで、データパケットＣは、タイルバス（１２６）、画像データ出力インタフェイス（１１２）、画像リング１０７を介して、システム制御部（１０１）に送信される。
【００６９】
また、画像合成部（１２１）は、データパケットＡのヘッダ情報のみを取り出し、ChipID（３０４）をシステム制御部（１０１）を表すIDに変換し、ヘッダ情報だけのデータパケットＡ２をシステム制御部（１０１）へ送信する（Ｓ７０９）。
【００７０】
システム制御部（１０１）は、合成結果Ｃ（Ｘ，Ｙ）を含むデータパケットＣと、上記データパケットＡ２の２パケットを受け取る（Ｓ７１０）。そして、タイルＡ（Ｘ，Ｙ）とＢ（Ｘ，Ｙ）の送信が正常に行われ、画像合成部（１２１）での合成が正常に終了したと判断し、全ての合成対象のタイルについて合成処理が終了したか否かを判断する（Ｓ７１１）。ここで、終了していないと判断した場合（Ｓ７１１，Ｎｏ）、ステップＳ７０３に戻り、システム制御部（１２１）は、次に合成すべきタイルＡ（Ｘ’，Ｙ’）とＢ（Ｘ’，Ｙ’）にヘッダ情報を付加し、ステップＳ７０４において、パケットの形式で画像合成部（１２１）へ送信し、以後、上述と同様の処理を繰り返す。
【００７１】
一方、画像合成部（１２１）において、タイルＡ（Ｘ，Ｙ）とＢ（Ｘ，Ｙ）の合成が異常終了したと判定した場合には（Ｓ７０６，Ｎｏ）、画像合成部（１２１）からその旨の通知を受けたステータス処理部（１１６）が、インタラプトパケットを生成し、システム制御部（１０１）へ送信する（Ｓ７１３）。また、画像合成部（１２１）は、タイルＡ（Ｘ，Ｙ）のヘッダ情報のみを取り出し、ChipID（３０４）をシステム制御部（１０１）のIDに変換し、ヘッダ情報だけのデータパケットＡ３をシステム制御部（１０１）へ送信する（Ｓ７１４）。
【００７２】
システム制御部（１０１）は、インタラプトパケットとタイルＡ（Ｘ，Ｙ）のヘッダ情報のみのパケットの２パケットを受け取る（Ｓ７１５）。そして、タイルＡ（Ｘ，Ｙ）とＢ（Ｘ，Ｙ）の合成が異常終了したと判断し、画像合成部（１２１）のステータスを初期化する（Ｓ７１６）。ここで、ステータスの初期化は、コマンドパケットを用いて行われる。具体的には、まず、システム制御部が、画像合成部（１２１）のステータスを初期化する旨のコマンドを記載したコマンドパケットを生成する。そして、生成したコマンドパケットを画像処理部（１１０）へ送信する。そして、画像処理部（１１０）のコマンド処理部（１１５）は、受信したコマンドパケットを解釈し、レジスタ設定バス（１２８）を介してステータスを初期化する設定を画像合成部（１２１）内のレジスタに対して行う。
【００７３】
ステータスの初期化を行った後、再度タイルＡ（Ｘ，Ｙ）とＢ（Ｘ，Ｙ）を画像合成部（１２１）へ送信し（Ｓ７１７）、再度ステップＳ７０５に戻り、処理が正常に行われなかったタイルに係る上記画像の合成を行う。
【００７４】
以上のようにして、画像の合成処理を各タイルについて繰り返し、合成すべきタイルに対して合成処理が実行されると（Ｓ７１１，Ｙｅｓ）、システム制御部（１０１）は画像合成部（１２１）から受信した合成結果と、画像Ｂの合成に使わなかったタイルからラスターファイルを展開し、画像ＡとＢの合成結果画像Ｃを得（Ｓ７１２）、一連の処理が終了する。
【００７５】
以上、本実施形態では、複合機のコントローラにおいて、図６に示す画像Ａと画像Ｂの合成処理を行い、画像Ｃを生成する場合で本発明を説明した。まず、システム制御部が、ＲＡＭに格納している画像Ａと画像Ｂを、それぞれタイル画像に分割し、得られた画像Ａのタイル画像から合成処理の対象となるタイル画像を抽出した。そして、画像処理の内容や座標情報を含むヘッダを、抽出したタイル画像に付加してデータパケットＡ及びＢを生成し画像処理部に対して出力するようにした。そして、画像処理部内に構成された画像合成部は、データパケットＡ及びＢを入力し、ヘッダの画像処理情報に従いタイル画像の画像合成を行い、画像合成後のタイル画像ＣからデータパケットＣを生成して出力するようにした。さらに、システム制御部は、画像合成部により出力されたデータパケットＣのタイル画像Ｃに基づき、画像Ａ及び画像Ｂの合成結果である画像Ｃを生成するようにした。
【００７６】
これにより、合成処理の必要があるタイル画像のみを合成処理することができるので、画像合成のための処理時間を短縮させることができる。また、タイル画像単位で処理を行うので画像合成部等におけるメモリ等ハードウェアリソースの削減を可能となる。また、データパケットの形態で画像処理情報とともにタイル画像を出力するので、画像合成のための制御及び管理を行うシステム制御部の負荷の削減が可能となる。
【００７７】
また、本実施形態では、画像合成部は、タイル画像の合成が正常に行われたか否かを判定して、画像合成が正常に行われていないと判定された場合、その旨を介しシステム制御部に対して通知するようにした。そして、システム制御部は、ステータス処理部を介した通知に応じて、合成が正常に行われなかったデータパケットを再び出力するようにした。
【００７８】
これにより、各タイル画像についての画像合成を確実に行うことができるので、画像合成処理が不能になることや、劣化した合成結果画像が得られるようなことを回避することができる。
【００７９】
（第２の実施形態）
本実施形態では、図８に示すように、サイズの異なる２つの画像を合成する場合について説明する。なお、本実施形態の合成処理に用いられるハードウェア構成は、第１の実施形態において説明した図１の複合機コントローラと同一である。
【００８０】
本実施形態における画像合成処理の流れを図８に示す。本実施形態では、複合機コントローラ（１００）が、ＲＡＭ（１０２）に格納しているそれぞれ１ページの画像Ａ（８０１）と画像Ｂ（８０２）を、画像合成部（１２１）を用いて合成し、画像Ｃ（８０３）を生成して再びＲＡＭ（１０２）に格納する。また、第１の実施形態と同様に、画像Ａ（８０１）及び画像Ｂ（８０２）は、２値の白黒画像であるとする。
【００８１】
ただし、第１の実施形態と異なり、画像Ａ（８０１）は、画像Ｂ（８０２）よりも小さく、合成により得られる画像Ｃ（８０３）は、画像Ｂ（８０２）と同じ大きさである。
【００８２】
上述したように、画像タイルは、Ｘ方向及びＹ方向に関して、３２画素単位で、タイル位置が決定される。一方、ラスター画像データである画像Ａ、及び画像Ｂの合成位置は、ページ画像の座標系を基準に１画素単位で指定することができる。この合成位置は、例えば、操作部（１０４）において、操作者が、タッチパネルもしくはデジタイザ等を用いて、所望の位置座標を入力することにより、指定される。
【００８３】
このように自由に合成位置を指定できるようにすると、画像合成処理を実行する際には、画像Ａに関するタイル位置と、画像Ｂに関するタイル位置に、画素単位の誤差が生じ、画像Ａのタイルと、画像Ｂのタイルとが、１対１で対応しないことがある。
【００８４】
本実施形態では、複合機コントローラ（１００）は、予め、以下に示す合成位置の規則に従いタイル画像の選択処理を行い、画像合成処理を実行する。
【００８５】
図９から図１３は、タイルＡ(Ｘ，Ｙ)を合成すべき位置と画像Ｂとの関係を説明する図である。
【００８６】
図９に示すように、タイルＡ(Ｘ，Ｙ)が、画像Ｂの領域外になる場合、タイルＢ(Ｘ，Ｙ)はないからタイル画像の合成は不要である。
【００８７】
図１０（Ａ）に示すように、タイルＡ（Ｘ，Ｙ）およびタイルＢ（Ｘ，Ｙ）の座標位置が完全に一致する（重なる）場合は、タイルＡ（Ｘ，Ｙ）に対応するタイルＢ（Ｘ，Ｙ）は一枚になる。ただし、図１０（Ｂ）および図１０（Ｃ）に示すように、タイルＡ（Ｘ，Ｙ）が画像Ｂの周辺部に対応する場合がある。しかし、この場合も、タイルＡ（Ｘ，Ｙ）に対応するタイルＢ（Ｘ，Ｙ）は一枚になる。
【００８８】
図１１（Ａ）に示すように、タイルＡ（Ｘ，Ｙ）とタイルＢ（Ｘ，Ｙ）のＸ方向またはＹ方向の座標位置が重なる場合、タイルＡ（Ｘ，Ｙ）に対応するタイルＢ（Ｘ，Ｙ）は二枚になる。また、図１１（Ｂ）に示すように、タイルＡ（Ｘ，Ｙ）とタイルＢ（Ｘ，Ｙ）の座標が一致せず、画像Ｂの端部にある場合も、タイルＡ（Ｘ，Ｙ）に対応するタイルＢ（Ｘ，Ｙ）は二枚になる。
【００８９】
図１２に示すように、タイルＡ（Ｘ，Ｙ）が画像Ｂの領域内にあり、かつ、タイルＡ（Ｘ，Ｙ）とタイルＢ（Ｘ，Ｙ）の座標位置が全く重ならない場合、タイルＡ（Ｘ，Ｙ）に対応するタイルＢ（Ｘ，Ｙ）は四枚になる。
【００９０】
以下では、図１２に示すような、タイルＡ（Ｘ，Ｙ）と四枚のタイルＢ（Ｘ，Ｙ）を合成する例を説明する。なお、タイルＢ（Ｘ，Ｙ）の数が変わっても合成する手法は同じで、発明の本質が失われるものではない。
【００９１】
図１３は、本実施形態の画像合成処理における複合機コントローラ（１００）の動作を説明するフローチャートである。以下、図１、８、１３を用いて、画像Ａと画像Ｂから、合成画像Ｃを生成する手順を説明する。なお、以下に説明する動作は、システム制御部（１０１）内部のＣＰＵがＲＡＭ（１０２）もしくはＲＯＭ（１０３）に記憶されたプログラムを実行し、各部を制御することによって実現することができる。なお、上述したように、画像処理部（１１０）は、各パケットを用いて制御される。
【００９２】
まず、システム制御部（１０１）は、ＲＡＭ（１０２）に予め格納されている画像Ａ（８０１）と画像Ｂ（８０２）を読み出し、図２に示したように、ラスターファイルからタイル状のタイル画像に分割する（Ｓ１３０１）。
【００９３】
システム制御部（１０１）は、分割した全てのタイルＢ（Ｘ，Ｙ）を、合成画像Ｃのタイル画像であるタイルＣ（Ｘ，Ｙ）としてＲＡＭ（１０２）へ複写する（Ｓ１３０２）。
【００９４】
システム制御部（１０１）は、分割された画像Ａ（８０１）のタイルから、合成すべき画像が含まれているタイル画像を抽出する（Ｓ１３０３）。第１の実施形態と同様に、タイルの抽出は、画像の背景色と各タイルに含まれるピクセルの比較により行う。
【００９５】
図８に示すように、ＲＡＭ（１０２）に格納された１ページ分のタイル画像Ｃから、画像Ａから抽出されたタイルＡ（Ｘ０，Ｙ０）に対応する複数のタイル画像Ｃを選択する（Ｓ１３０４）。
【００９６】
そして、タイルＡ（Ｘ０，Ｙ０）と、選択された四枚のタイルＣ（Ｘ０，Ｙ０）、タイルＣ（Ｘ１，Ｙ０）、タイルＣ（Ｘ０，Ｙ１）、タイルＣ(Ｘ１，Ｙ１)とを合成する処理が実行される。
【００９７】
次に、タイルＡ（Ｘ０，Ｙ０）、タイルＣ（Ｘ０，Ｙ０）からデータパケットを生成する（Ｓ１３０５）。以後、タイルＡ（Ｘ０，Ｙ０）を含むデータパケットをデータパケットＡ、タイルＣ（Ｘ０，Ｙ０）を含むデータパケットをデータパケットＣと呼ぶ。このとき、データパケットＡ、及びＣに付加するヘッダ（３０１）における、ProcessInstraction（３１０）のUnitID、及びChipID（３０４）は、ともに、Unit ID 1＝"０１０００"（画像合成部）とし、Unit ID 2-8＝"０００００"、ChipID＝"０００１"（画像処理部）とする。また、Process Instruction（３１０）にあるMode（３１５）に画像合成を行うモードが設定される。また、タイル位置（Ｘ，Ｙ）に関しては、Ｙ方向がPacketIDY（３０８）に、Ｘ方向がPacketIDX（３０９）に設定される。
【００９８】
なお、第１の実施形態とは異なり、画像合成には、ModeおよびUnit IDが三組使用され、一つ目のModeに画像合成を指示する値が、二つ目のModeに合成位置のＸ座標が、三つ目のModeに合成位置のＹ座標がそれぞれ設定される。Unit IDにはすべて画像合成部（１２１）を示す値が設定される。
【００９９】
システム制御部（１０１）は、生成したデータパケットＡ、Ｃを、画像リング（１０６）を介し、画像合成部（１２１）（画像処理部１１０）へ送信する（Ｓ１３０６）。画像処理部（１１０）内の画像データ入力インタフェイス（１１１）は、データパケットＡ，Ｃを受け取り、ヘッダのProcessInstraction（３１０）を解析し、最初に処理すべきUnit ID 1が画像合成部（１２１）を示しているので、データパケットＡ，Ｃを、画像合成部（１２１）へ送る。
【０１００】
画像合成部（１２１）は、データパケットＡおよびデータパケットＣを受信し、パケットのProcess Instruction （３１０）を読み取る。そして、読み取ったUnitID（３１４）が画像合成部（１２１）を表すIDと一致すれば、読み取ったMode（３１５）に従う処理、つまりタイルＡ（Ｘ０，Ｙ０）とタイルＣ（Ｘ０，Ｙ０）とを合成する処理を実行する（Ｓ１３０７）。画像合成部（１２１）は、受信したパケットからタイル画像を取り出して合成処理を行う。パケットから取り出されたタイルＡ（Ｘ０，Ｙ０）は、タイルＣ（Ｘ０，Ｙ０）に対応する座標位置へ変換される。そして、画像合成部（１２１）は、座標位置が変換されたタイルＡ（Ｘ０，Ｙ０）と、タイルＣ（Ｘ０，Ｙ０）とを論理和処理したタイル画像データタイルＣ（Ｘ’０，Ｙ’０）を出力する。勿論、合成後のタイル画像データの座標系は合成画像Ｃの座標系に一致する。
【０１０１】
次に、画像合成部（１２１）は、ステップＳ１３０７での画像合成が正常に終了したか否かを判定する（Ｓ１３０８）。ここで、正常に終了した場合（Ｓ１３０８，Ｙｅｓ）、ステップＳ１３０９の処理に移行し、異常終了の場合（Ｓ１３０８，Ｎｏ）は、ステップＳ１３１５の処理に移行する。
【０１０２】
ここで、ステップＳ１３１５〜Ｓ１３１９までの処理は、第１の実施形態のステップＳ７１３〜Ｓ７１７に示したエラー処理と同様なものであるので、ここではその説明を省略する。
【０１０３】
画像合成部（１２１）は、タイルＡ（Ｘ０，Ｙ０）とＣ（Ｘ０，Ｙ０）の合成が正常に終了すると（Ｓ１３０８，Ｙｅｓ）、合成結果のタイルＣ（Ｘ’０，Ｙ’０）をタイルＣ（Ｘ０，Ｙ０）が格納されていたパケットに格納し、データパケットＣを生成する（Ｓ１３０９）。ここで、画像合成部（１２１）は、データパケットのProcess Instruction （３１０）を、８ビットシフトしている。また、ChipID （３１９）にシステム制御部（１０１）を示すIDを設定している。
【０１０４】
次に、生成したデータパケットＣをシステム制御部（１０１）に送信する（Ｓ１３１０）。さらに、画像合成部（１２１）は、タイルＡ（Ｘ０，Ｙ０）のパケットからヘッダ情報（３０１）を取り出して、ChipID（３１９）にシステム制御部（１０１）を示すIDを設定した、ヘッダ情報だけのパケットＡ２をシステム制御部（１０１）へ送信する。
【０１０５】
システム制御部（１０１）は、合成結果のタイルＣ（Ｘ’０，Ｙ’０）のデータパケットＣ、および、タイルＡ（Ｘ０，Ｙ０）のヘッダ情報（３０１）だけのパケットＡ２を受信する（Ｓ１３１２）。
【０１０６】
そして、タイルＡ（Ｘ０，Ｙ０）のパケットおよびタイルＣ（Ｘ０，Ｙ０）のパケットが正常に送信され、画像合成部（１２１）による合成処理が正常に終了したと判断して、タイルＡ（Ｘ０，Ｙ０）に関して選択された全てのタイルＣについて合成処理が終了したか否かを判断する（Ｓ１３１３）。
【０１０７】
ここで、タイルＡ（Ｘ０，Ｙ０）の合成処理が終了していないと判断すると（Ｓ１３１３，Ｎｏ）、ステップＳ１３０５に戻り、次に合成すべきタイル画像データのパケットを画像合成部（１２１）へ送信する。
【０１０８】
従って、続いてタイルＡ（Ｘ０，Ｙ０）およびタイルＣ（Ｘ０，Ｙ１）、タイルＡ（Ｘ０，Ｙ０）およびタイルＣ（Ｘ１，Ｙ０）、並びに、タイルＡ（Ｘ０，Ｙ０）およびタイルＣ（Ｘ１，Ｙ１）の合成処理が順次行われて、それらの合成結果タイルＣ（Ｘ’０，Ｙ’１）、タイルＣ（Ｘ’１，Ｙ’０）およびタイルＣ（Ｘ’１，Ｙ１’）が得られる。
【０１０９】
一方、タイルＡ（Ｘ０，Ｙ０）の合成処理が終了したと判断すると（Ｓ１３１３，Ｙｅｓ）、抽出したタイル画像Ａ全てについて、合成処理が終了したか否かを判断する（Ｓ１３１４）。
【０１１０】
ここで、合成処理が終了していないと判断した場合（Ｓ１３１４，Ｎｏ）、ステップＳ１３０４に戻り、次のタイルＡに関する処理が開始される。すなわち、画像Ａから抽出されたタイルＡ（Ｘ１，Ｙ０）と、合成画像Ｃから選定される四枚のタイルＣ（Ｘ１，Ｙ０）、タイルＣ（Ｘ２，Ｙ０）、タイルＣ（Ｘ１，Ｙ１）、タイルＣ(Ｘ２，Ｙ１)とを合成する処理が実行される。
【０１１１】
ただし、タイルＣ（Ｘ，Ｙ）の一部には既に合成処理が施されているので、その合成結果がタイル画像として使用される。つまり、図８において、タイルＣ（Ｘ’１，Ｙ’０）、タイルＣ（Ｘ’１，Ｙ’１）、タイルＣ（Ｘ２，Ｙ０）およびタイルＣ（Ｘ２，Ｙ１）に関し、上記と同様な画像合成処理が実行される。
【０１１２】
以上のような合成処理を継続し、合成処理すべき全てのタイル画像Ａについて処理が終了したら（Ｓ１３１４，Ｙｅｓ）、システム制御部（１０１）はタイルＣ（Ｘ，Ｙ）をラスタ画像ファイルに展開し、合成画像Ｃを構成し、処理を終了する。
【０１１３】
以上、本実施形態では、画像Ａのタイルと、画像Ｂのタイルとが、１対１で対応しない場合において、画像Ａと原画像Ｂとの合成位置座標に応じて、タイル画像Ａに対応するタイル画像Ｂを選択して、タイル画像Ａと各タイル画像Ｂとを合成するようにした。
【０１１４】
これにより、任意の合成位置を指定する場合においても、必要最低数のタイルのみを用いた合成処理ができるので、タイル処理による高速性を維持したまま、使用者の要求に柔軟に応じた合成処理を実行することが可能となる。
【０１１５】
（第３の実施形態）
本実施形態では、図１４に示すように、他の画像との合成のために予め格納されている定型画像と任意の１つの画像とを合成する場合について説明する。なお、本実施形態の合成処理に用いられるハードウェア構成は、第１の実施形態において説明した図１の複合機コントローラと同一である。
【０１１６】
本実施形態における画像合成処理の流れを図１５に示す。本実施形態では、複合機コントローラ（１００）が、ＲＡＭ（１０２）に格納しているそれぞれ１ページの定型画像Ａ（１５０１）と１ページの画像Ｂ（１５０２）を、画像合成部（１２１）を用いて合成し、画像Ｃ（１５０３）を生成して再びＲＡＭ（１０２）に格納する。また、第１及び第２の実施形態と同様に、定型画像Ａ（１５０１）及び画像Ｂ（１５０２）は、２値の白黒画像であるとする。
【０１１７】
ただし、第１及び第２の実施形態と異なり、定型画像Ａ（１５０１）は、外部記憶装置（１３２）に、合成すべき画像として、予め格納されている。
【０１１８】
定型画像Ａ（１５０１）のタイルへの分割例を、図１６に示す。本実施形態においても、白色を背景色にしているので、黒画素を含むタイル画像が合成すべきタイルである。
【０１１９】
図１７は、画像合成処理における複合機コントローラ（１００）の動作を説明するフローチャートである。以下、図１、１５、１７を用いて、定型画像Ａと画像Ｂから、合成画像Ｃを生成する手順を説明する。なお、以下に説明する動作は、システム制御部（１０１）内部のＣＰＵがＲＡＭ（１０２）もしくはＲＯＭ（１０３）に記憶されたプログラムを実行し、各部を制御することによって実現することができる。なお、上述したように、画像処理部（１１０）のは、各パケットを用いて制御される。
【０１２０】
まず、合成処理の開始とともに、システム制御部（１０１）は外部記憶装置（１３２）に予め格納されている定型画像Ａを読み出し、読み出した定型画像Ａをタイルに分割し、分割された定型画像ＡをＲＡＭ（１０２）に格納する。このとき、タイルのＸ座標、Ｙ座標とＲＡＭ（１０２）に格納されたアドレスからなる定型画像タイル情報が生成される（Ｓ１７０１）。
【０１２１】
システム制御部（１０１）は、合成される任意の画像Ｂを、ラスターファイルからタイル状のタイル画像に分割する（Ｓ１７０２）。
【０１２２】
システム制御部（１０１）は、分割した全てのタイルＢ（Ｘ，Ｙ）を、合成画像Ｃのタイル画像であるタイルＣ（Ｘ，Ｙ）としてＲＡＭ（１０２）へ複写する（Ｓ１７０３）。
【０１２３】
図１５に示すように、システム制御部（１０１）は、ＲＡＭ（１０２）に格納された１ページ分のタイル画像Ｃから、タイルＡ（Ｘ０，Ｙ０）に対応する複数のタイル画像Ｃを選択する（Ｓ１７０４）。
【０１２４】
そして、タイルＡ（Ｘ０，Ｙ０）と、選択された四枚のタイルＣ（Ｘ０，Ｙ０）、タイルＣ（Ｘ１，Ｙ０）、タイルＣ（Ｘ０，Ｙ１）、タイルＣ(Ｘ１，Ｙ１)とを合成する処理が実行される。
【０１２５】
以降、第２の実施形態と同様の処理を実行する。すなわち、本実施形態における図１７のステップＳ１７０５〜Ｓ１７１９は、第２の実施形態における図１３のステップＳ１３０５〜Ｓ１３１９に対応しており、それぞれのステップ番号に関して、同様な処理を実行する。
【０１２６】
したがって、定型画像の全てのタイル画像Ａについて処理が終了したら（Ｓ１７１４，Ｙｅｓ）、システム制御部（１０１）はタイルＣ（Ｘ，Ｙ）をラスタ画像ファイルに展開し、合成画像Ｃを構成することができる。
【０１２７】
以上、本実施形態では、外部記憶装置の定型画像Ａのタイル画像ＡをＲＡＭに格納して、ＲＡＭに格納されるタイル画像Ａと、タイル画像Ａに対応するタイル画像Ｂとを合成処理するようにした。
【０１２８】
これにより、予め合成するための定型画像を決めておけば、合成対象のタイル画像Ａを抽出するための手間を省くことができ、より一層の処理の高速化やＣＰＵ等の制御負荷の軽減が達成できる。また、必要なタイル画像のみが定型画像として外部記憶装置及びＲＡＭに記憶され、利用できるので、メモリ量をさらに削減でき、低コストな合成処理が可能となる。
【０１２９】
なお、本実施形態では、合成処理開始前において、定型画像は、ラスタ画像ファイルとして外部記憶装置に格納されているが、座標情報とももにタイル画像として格納されていてもよい。この場合、タイル画像への分割の手間も省くことができるので、合成処理の更なる高速化が達成できる。
【０１３０】
（第４の実施形態）
本実施形態では、図１８に示すように、解像度変換された定型画像と任意の１つの画像とを合成する場合について説明する。なお、本実施形態の合成処理に用いられるハードウェア構成は、第１の実施形態において説明した図１の複合機コントローラと同一である。
【０１３１】
本実施形態における画像合成処理の流れを図１９に示す。本実施形態では、複合機コントローラ（１００）が、ＲＡＭ（１０２）に格納している定型画像Ａ（１９０１）と１ページの画像Ｂ（１９０２）を、画像合成部（１２１）を用いて合成し、画像Ｃ（１９０３）を生成して再びＲＡＭ（１０２）に格納する。また、第１〜第３の実施形態と同様に、画像Ａ（１９０１）及び画像Ｂ（１９０２）は、２値の白黒画像であるとする。また、本実施形態においても、白色を背景色とし、黒画素を含むタイル画像が合成すべきタイルとする。
【０１３２】
ただし、第３の実施形態と異なり、定型画像Ａ（１９０１）は、画像Ｂの指定された合成範囲（１９０４）に合うように合成される。したがって、定型画像Ａ（１９０１）は、拡大または縮小の解像度変換処理が施され、変換された画像（１９０５）が、画像Ｂと合成される。
【０１３３】
図１に示すように、解像度変換部（１２２）は、タイルバス（１２６）に接続されており、システム制御部（１０１）及び画像合成部（１２１）との間でデータパケットを転送することができる。
【０１３４】
したがって、本実施形態では、まず、ＲＡＭ（１０２）から解像度変換部（１２２）へ定型画像タイルＡを送り、解像度変換部（１２２）において定型画像タイルＡの解像度変換を行う。そして、変換された定型画像タイルＡを一旦ＲＡＭ（１０２）に戻した後で、解像度変換された定型画像タイルＡと画像Ｂとの合成処理を実行する。
【０１３５】
図２０は、本実施形態の画像合成処理における複合機コントローラ（１００）の動作を説明するフローチャートである。以下、図１、１９、２０を用いて、定型画像Ａと画像Ｂから、合成画像Ｃを生成する手順を説明する。なお、以下に説明する動作は、システム制御部（１０１）内部のＣＰＵがＲＡＭ（１０２）もしくはＲＯＭ（１０３）に記憶されたプログラムを実行し、各部を制御することによって実現することができる。なお、上述したように、画像処理部（１１０）は、各パケットを用いて制御される。
【０１３６】
まず、合成処理の開始とともに、システム制御部（１０１）は外部記憶装置（１３２）に予め格納されている定型画像Ａを読み出し、読み出した定型画像Ａをタイルに分割し、分割された定型画像ＡをＲＡＭ（１０２）に格納する。このとき、タイルのＸ座標、Ｙ座標とＲＡＭ（１０２）に格納されたアドレスからなる定型画像タイル情報が生成される（Ｓ２００１）。
【０１３７】
次に、ＲＡＭ（１０２）のタイル画像Ａから、データパケットが生成され、生成されたデータパケットは、解像度変換部（１２２）へ送信される。ここで、ヘッダのProcess Instruction（３１０）のModeには、画像Ｂの合成範囲に合うような解像度変換を行うための倍率が設定される（Ｓ２００２）。
【０１３８】
解像度変換部（１２２）では、受信されたデータパケットのヘッダの倍率設定情報に基づき、タイルの解像度変換が実行される（Ｓ２００３）。
【０１３９】
解像度変換されたタイルは再びデータパケットに変換され、システム制御部（１０１）へ送信される（Ｓ２００４）。
【０１４０】
システム制御部（１０１）へ送られたデータパケットのタイル画像Ａは、解像度変換後の定型画像ＡとしてＲＡＭ（１０２）に一旦格納される（Ｓ２００５）。
【０１４１】
次に、画像Ｂをラスターファイルからタイル画像に分割し（Ｓ２００６）、タイル画像Ｂをバッファメモリにタイル画像Ｃとしてコピーする（Ｓ２００７）。
【０１４２】
ステップＳ２００３での解像度変換により各タイル画像Ａの大きさが変化しているので、ＲＡＭ（１０２）の各タイル画像Ａの画像Ｃ（画像Ｂの複写画像）上での合成位置を算定する（Ｓ２００８）。合成位置の算定の詳細については後述する。
【０１４３】
そして、ステップＳ２００８において算定した合成位置に基づき、各タイル画像Ａに対応するタイル画像Ｃを選択し（Ｓ２００９）、以降、第３の実施形態と同様の処理を実行する。
【０１４４】
すなわち、本実施形態における図２０のステップＳ２０１１〜Ｓ２０１９は、第３の実施形態における図１７のステップＳ１７０５〜Ｓ１７１４に対応しており、ステップＳ２０２０〜Ｓ２０２４は、ステップＳ１７１５〜Ｓ１７１９に対応しており、それぞれのステップ番号に関して、同様な処理を実行する。
【０１４５】
以上が、本実施形態における画像合成処理の流れである。次に、本実施形態における解像度変換と、ステップＳ２００８の合成位置の算定について詳細に説明する。
【０１４６】
タイルに分割された定型画像Ａ（１９０１）に対し、縮小する解像度変換を施した場合のタイルの例を、図２１（Ａ）に示す。また、タイルに分割された定型画像Ａ（１９０１）に対し、拡大する解像度変換を施した場合のタイルの例を、図２２（Ａ）に示す。
このように、定型画像Ａに対して縮小もしくは拡大する解像度変換処理を行った場合、解像度変換前の定型画像タイルＡと、解像度変換後の定型画像タイルＡ’とでは、タイル毎の大きさが異なる。
【０１４７】
まず、解像度変換により定型画像Ａが元の大きさより縮小される場合について説明する。図２１（Ｂ）に示すように、上記ステップＳ２００３において、定型画像Ａに含まれるタイルＡ（２１０１）は、解像度変換されることにより、タイルＡ’（２１０２）に変換される。変換されたタイルＡ’（２１０２）は、元のタイルＡ（２１０１）に対し、中に含まれる画像（２１０３）が小さく、タイル中にデータが含まれない部分（２１０４）ができる。
【０１４８】
本実施形態では、システム制御部（１０１）は、解像度変換されたタイルＡ’（２１０２）をそのまま使用し、データが含まれる部分のみを合成する。すなわち、ステップＳ２００８において、図２０（Ｂ）に示すように、タイルＡ’（２１０２）の画像を含まない部分（２１０４）に、隣接するタイルＡ”（２１０５）が重なるように合成位置を計算する。ここで、タイルＡ”（２１０５）は、タイルＡ’（２１０３）の下方向に位置する、解像度変換された後のタイルである。したがって、ステップＳ２００８では、タイルＡ”（２１０５）は、画像を含まない部分（２１０４）だけ、上方向にシフトする座標変換が施される。
【０１４９】
次に解像度変換により定型画像Ａが元の大きさより拡大される場合について説明する。図２２（Ｂ）に示すように、上記ステップＳ２００３において、定型画像Ａに含まれるタイルＡ（２２０１）は、解像度変換されることにより、タイルＡ’（２２０２）に変換される。変換されたタイルＡ’（２２０２）は、元のタイルＡ（２２０１）に対し画像が大きくなる。
【０１５０】
本実施形態では、解像度変換部（１２２）は、ステップＳ２００４において、元のタイルＡの大きさに対しはみ出す部分を別のタイルに分割し、分割した複数のタイルＡ’（２２０３）〜（２２０６）をシステム制御部（１０１）へ送る。システム制御部（１０１）は、送られてきたタイルから拡大後の定型画像をラスターファイルへ展開する。展開されたラスターファイルはシステム制御部（１０１）によりタイルに分割され画像合成に使用される。またシステム制御部（１０１）は、タイルのＸ座標、Ｙ座標とＲＡＭ（１０２）上に格納されたアドレスからなる拡大後の定型画像タイル情報を生成する。
【０１５１】
さらに、ステップＳ２００８において、システム制御部（１０１）は、解像度変換後の定型画像タイルＡ’（Ｘ，Ｙ）が、画像Ｂ内において対応する座標位置を算定し、タイルＡ’（Ｘ，Ｙ）の座標変換を行う。
【０１５２】
以上、縮小または拡大処理後に算定した合成位置に基づき、ステップＳ２００９において、各タイル画像Ａに対応するタイル画像Ｃ（タイル画像Ｂ）が選択される。
【０１５３】
システム制御部（１０１）は、画像Ｂから対応するタイルＢ（Ｘ，Ｙ）を読み出す。このとき、定型画像タイルＡ’（Ｘ，Ｙ）が合成される位置により、タイルＢ（Ｘ，Ｙ）は０枚、１枚、２枚、４枚の４種類になる。
【０１５４】
本実施形態において、タイルＡ(Ｘ，Ｙ)を合成すべき位置と画像Ｂとの関係は、第２の実施形態において説明した、図９から図１２に示すものと同じである。
【０１５５】
すなわち、図９に示すように、定型画像タイルＡ’（Ｘ，Ｙ）が、合成する画像Ｂの範囲を超える場合、対応するタイルＢ（Ｘ，Ｙ）は無いことになり、タイルの合成は不要となる。
【０１５６】
図１０（Ａ）に示すように、定型画像タイルＡ’（Ｘ，Ｙ）と合成する画像Ｂのタイルの座標が完全に一致し重なる場合、対応するタイルＢ（Ｘ，Ｙ）は１枚となる。また、図１０（Ｂ）、図１０（Ｃ）のように画像の周辺部が対象となる場合も１枚となることがある。
【０１５７】
図１１（Ａ）に示すように、定型画像タイルＡ’（Ｘ，Ｙ）と合成する画像ＢのタイルのＸ方向、もしくはＹ方向の座標が重なる場合は、対応するタイルＢ（Ｘ，Ｙ）は２枚となる。
【０１５８】
図１１（Ｂ）に示すように、定型画像タイルＡ’（Ｘ，Ｙ）と合成する画像Ｂのタイルが重ならないが画像の周辺部にある場合も２枚となる。
図１２に示すように、定型画像タイルＡ’（Ｘ，Ｙ）と合成する画像Ｂのタイルの座標が全く重ならない場合は、対応するタイルＢ（Ｘ，Ｙ）は４枚となる。
【０１５９】
以上説明してきたように、本実施形態では、定型画像のタイル画像Ａを解像度変換して合成する場合、縮小または拡大処理後のタイル画像の領域情報に基づき、各タイル画像の合成位置座標を算定し、算定した合成位置座標に基づき各タイル画像の座標変換を行うようにした。
【０１６０】
これにより、座標変換後のタイル画像に関して第３の実施形態と同様な合成処理が可能となるので、解像度変換をともなう高度な合成処理も高速かつ低コストに実行することができる。
【０１６１】
（他の実施形態）
上記各実施形態では、デジタル複合機を用いて本発明の合成処理を説明したが、これに限るものではなく、ファクシミリ装置、プリンタ装置単体、スキャナ装置単体等他の画像処理装置に関しても、本発明を適用可能であることはいうまでもない。
【０１６２】
また、上記各実施形態では、記憶装置に格納される２つの画像の合成処理を行う場合について説明したが、本発明は、これに限るものではなく、様々な画像処理動作に関して適用可能である。
【０１６３】
例えば、第３及び第４の実施形態における合成処理の適用例として、フォームオーバーレイ印刷が挙げられる。すなわち、外部インタフェイス（１０５）に接続されるＰＣやプリントサーバが、外部記憶装置（１３２）に格納されるフォーム画像を指定するとともに印刷データを送信する。デジタル複合機は、印刷データをラスターデータに変換し、指定されたフォーム画像を外部記憶装置（１３２）から読み出して、第３及び第４の実施形態の合成処理を実行する。合成処理後の画像データは、プリンタ（１３０）に送信され印刷される。
【０１６４】
これにより、オーバーレイ印刷に必要なタイル画像のみをフォーム画像として外部記憶装置及びＲＡＭに記憶しておいて利用できるので、装置のコストアップを招くことなくフォームオーバーレイ印刷の高速化が可能となる。
【０１６５】
また、上記各実施形態における、図７、図１３、図１７、図２０の各フローチャートは、システム制御部（１０１）側の処理と画像処理部（１１０）側の処理とを１つにまとめたものである。これらフローチャートにおいて、システム制御部（１０１）側のＣＰＵが実行する処理は、画像合成プログラム等ソフトウェアを用いた、タイル分割処理、合成画像の抽出処理、パケット生成処理等である。一方、画像処理部（１１０）側の画像合成部（１２１）が実行する処理は、ＯＲ回路等ハードウェアを用いた、画素レベルの合成処理や、パケットの転送処理等である。
【０１６６】
このように、上記実施形態においては、システム制御部（１０１）側と画像処理部（１１０）側とでは、処理内容が明確に分けられている。また、画像処理部（１１０）は、システム制御部（１０１）からデータパケットを受け取ると、それ以後、システム制御部（１０１）からの制御を受けることなく、そのパケットに関する画像処理を実行することができる。
【０１６７】
したがって、上記フローチャートに従う処理を行う際には、ＣＰＵにおけるソフトウェアによるパケット生成処理等と、画像合成部（１２１）におけるハードウェアによる合成処理等とを、複数のタイルに関して平行に実行することもできる。これにより、システム制御部（１０１）側のＣＰＵと画像処理部（１１０）側の回路化された画像合成部（１２１）とで、合成処理の負荷を分散することができるので、さらなる高速化及び低コスト化が可能となる。
【０１６８】
また、本発明は、デジタル複合機等画像処理装置のみでなく、ＰＣ等情報処理装置にも適用可能である。このとき、情報処理装置が専用のハードウェアを有していなくとも、ＣＰＵおよびワークＲＡＭ上で稼動するソフトウェアが、本発明の画像合成処理を実行するようにすればよい。
【０１６９】
すなわち、本発明は、前述した実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、完成されることは言うまでもない。
【０１７０】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（Ｒ）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭを用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７１】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、次のプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるＣＰＵなどが処理を行って実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７２】
同様に、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを蓄積した外部装置（例えばアプリケーションサーバー等）から、ネットワークを介してダウンロードすることにより、システムあるいは装置の記憶装置（例えば上述した本実施の形態における外部記憶装置１３２）に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）がこの外部装置に格納されたプログラムコードを読み出し実行することによっても、完成されることは言うまでもない。
【０１７３】
【発明の効果】
以上説明してきたように、本発明によれば、複数の原画像に関する合成処理を高速かつ低コストに実行できるという効果がある。
【０１７４】
また、本発明によれば、所定の定型画像に関する合成処理を高速かつ低コストに実行できるという効果がある。
【０１７５】
また、本発明によれば、装置のコストアップを招くことなくフォームオーバーレイ印刷の高速化が可能となるという効果がある。
【０１７６】
また、本発明によれば、合成処理の制御及び管理を行うＣＰＵ等の負荷の削減が可能となるという効果がある。
【０１７７】
また、本発明によれば、ＣＰＵと合成回路とで合成処理の負荷を分散することができるので、高速化及び低コスト化が可能となるという効果がある。
【図面の簡単な説明】
【図１】本発明の画像処理装置を適用可能なデジタル複合機の構成を示すブロック図である。
【図２】タイル画像を示す図である。
【図３】データパケットのフォーマットを示す図である。
【図４】コマンドパケットのフォーマットを示す図である。
【図５】インタラプトパケットのフォーマットを示す図である。
【図６】第１の実施形態における画像合成処理の流れを示す図である。
【図７】第１の実施形態における複合機コントローラの動作を説明するフローチャートである。
【図８】第２の実施形態における画像合成処理の流れを示す図である。
【図９】タイルＡを合成すべき位置と画像Ｂとの関係を説明する図である。
【図１０】タイルＡを合成すべき位置と画像Ｂとの関係を説明する図である。
【図１１】タイルＡを合成すべき位置と画像Ｂとの関係を説明する図である。
【図１２】タイルＡを合成すべき位置と画像Ｂとの関係を説明する図である。
【図１３】タイルＡを合成すべき位置と画像Ｂとの関係を説明する図である。
【図１４】第３の実施形態の合成画像の関係を示す図である。
【図１５】第３の実施形態における画像合成処理の流れを示す図である。
【図１６】定型画像Ａのタイルへの分割例を示す図である。
【図１７】第３の実施形態における複合機コントローラの動作を説明するフローチャートである。
【図１８】第４の実施形態における合成画像の関係を示す図である。
【図１９】第４の実施形態における画像合成処理の流れを示す図である。
【図２０】第４実施形態における複合機コントローラの動作を説明するフローチャートである。
【図２１】定型画像Ａに対して縮小する解像度変換を行った場合を説明する図である。
【図２２】定型画像Ａに対して拡大する解像度変換を行った場合を説明する図である。
【図２３】従来の合成画像の関係を説明するための図である。
【符号の説明】
１０１  システム制御部
１０２  ＲＡＭ
１０３  ＲＯＭ
１０６  画像リング
１０７  画像リング
１１１  画像データ入力インタフェイス
１１２  画像データ出力インタフェイス
１２１  画像合成部
１２２  解像度変換部
６０１  画像Ａ
６０２  画像Ｂ
【図１】
0003970102.tif 000002
【図２】
0003970102.tif 000003
【図３】
0003970102.tif 000004
【図４】
0003970102.tif 000005
【図５】
0003970102.tif 000006
【図６】
0003970102.tif 000007
【図７】
0003970102.tif 000008
【図８】
0003970102.tif 000009
【図９】
0003970102.tif 000010
【図１０】
0003970102.tif 000011
【図１１】
0003970102.tif 000012
【図１２】
0003970102.tif 000013
【図１３】
0003970102.tif 000014
【図１４】
0003970102.tif 000015
【図１５】
0003970102.tif 000016
【図１６】
0003970102.tif 000017
【図１７】
0003970102.tif 000018
【図１８】
0003970102.tif 000019
【図１９】
0003970102.tif 000020
【図２０】
0003970102.tif 000021
【図２１】
0003970102.tif 000022
【図２２】
0003970102.tif 000023
【図２３】
0003970102.tif 000024