(57)【特許請求の範囲】
【請求項１】
複数の素材画像を合成して合成画像を作成する合成画像作成装置であって、
個々の素材画像を、所定の単位領域ごとにそれぞれ独立して伸張可能な態様で圧縮された画像データとして格納する素材画像格納部と、
作成対象となる合成画像の一部を構成する部分画像を格納するための複数Ｎ個の部分画像メモリと、
前記素材画像格納部に格納されている圧縮された画像データのうち、指示された素材画像の指示された単位領域の部分を伸張するデータ伸張部と、
前記データ伸張部によって伸張された画像データを、作業場所として指定された部分画像メモリ上の所定の目標アドレスに保存する書込処理、もしくは、前記データ伸張部によって伸張された画像データと前記目標アドレスに保存されていた既存の画像データとについて所定の合成演算を行った上で、得られた新たな画像データを前記目標アドレスに保存する書換処理、を行う合成処理部と、
特定の素材画像を特定の大きさで特定の位置に配置することにより合成画像を作成することを示す合成画像作成コマンドを入力するコマンド入力部と、
作成対象となる合成画像を複数Ｍ個の部分画像に分割し、第１番目〜第Ｍ番目の部分画像をそれぞれ所定の部分画像メモリ内に生成するための指示を、順次、前記データ伸張部および前記合成処理部に与えるコントローラ部と、
前記各部分画像メモリ内に生成された第１番目〜第Ｍ番目の部分画像を順次外部へ出力するデータ出力部と、
を備え、
前記コントローラ部は、
第ｉ番目（１≦ｉ≦Ｍ）の部分画像を生成する際に、前記データ伸張部に対しては、前記合成画像作成コマンドに基づいて、前記第ｉ番目の部分画像に含まれるべき特定の素材画像の特定の単位領域を伸張対象として認識し、認識した伸張対象についての伸張処理を行う指示を与え、前記合成処理部に対しては、前記Ｎ個の部分画像メモリのうち、第（ｉ−１）番目の部分画像に対して指定されたもの以外の１つを作業場所として指定するとともに、前記合成画像作成コマンドに基づいて、伸張された個々の画像データについて前記書込処理もしくは前記書換処理を行うべき目標アドレスを決定するための情報を与え、
前記第ｉ番目の部分画像に関する伸張処理の指示を行う際に、前記第ｉ番目の部分画像と第（ｉ＋１）番目の部分画像との境界線に跨がって配置される跨線素材画像の前記境界線に跨がってもしくは前記境界線に接して配置される境界単位領域の先頭アドレスを記憶しておき、
前記第（ｉ＋１）番目の部分画像に関する前記跨線素材画像についての伸張処理の指示を行う際に、前記境界単位領域の先頭アドレスを参照して、伸張対象となる単位領域内の画像データのアドレスを指示することを特徴とする合成画像作成装置。
【請求項２】
複数の素材画像を合成して合成画像を作成する合成画像作成装置であって、
個々の素材画像を、所定の単位領域ごとにそれぞれ独立して伸張可能な態様で圧縮された画像データとして格納する素材画像格納部と、
作成対象となる合成画像の一部を構成する部分画像を格納するための複数Ｎ個の部分画像メモリと、
前記素材画像格納部に格納されている圧縮された画像データのうち、指示された素材画像の指示された単位領域の部分を伸張するデータ伸張部と、
前記データ伸張部によって伸張された画像データを、作業場所として指定された部分画像メモリ上の所定の目標アドレスに保存する書込処理、もしくは、前記データ伸張部によって伸張された画像データと前記目標アドレスに保存されていた既存の画像データとについて所定の合成演算を行った上で、得られた新たな画像データを前記目標アドレスに保存する書換処理、を行う合成処理部と、
特定の素材画像を特定の大きさで特定の位置に配置することにより合成画像を作成することを示す合成画像作成コマンドを入力するコマンド入力部と、
作成対象となる合成画像を複数Ｍ個の部分画像に分割し、第１番目〜第Ｍ番目の部分画像をそれぞれ所定の部分画像メモリ内に生成するための指示を、順次、前記データ伸張部および前記合成処理部に与えるコントローラ部と、
前記各部分画像メモリ内に生成された第１番目〜第Ｍ番目の部分画像を順次外部へ出力するデータ出力部と、
を備え、
前記コントローラ部は、第ｉ番目（１≦ｉ≦Ｍ）の部分画像を生成する際に、前記データ伸張部に対しては、前記合成画像作成コマンドに基づいて、前記第ｉ番目の部分画像に含まれるべき特定の素材画像の特定の単位領域を伸張対象として認識し、認識した伸張対象についての伸張処理を行う指示を与え、前記合成処理部に対しては、前記Ｎ個の部分画像メモリのうち、第（ｉ−１）番目の部分画像に対して指定されたもの以外の１つを作業場所として指定するとともに、前記合成画像作成コマンドに基づいて、伸張された個々の画像データについて前記書込処理もしくは前記書換処理を行うべき目標アドレスを決定するための情報を与え、
前記合成処理部が、
前記第ｉ番目の部分画像に関する指示に基づいて書込処理もしくは書換処理を行う際に、前記第ｉ番目の部分画像と第（ｉ＋１）番目の部分画像との境界線に跨がって配置される跨線素材画像の前記境界線に跨がって配置される跨線単位領域について伸張された画像データのうち、前記第（ｉ＋１）番目の部分画像に含まれる部分については、前記第（ｉ＋１）番目の部分画像についての作業場所として指定される次段部分画像メモリに対して先行した書込処理もしくは書換処理を行い、
前記第（ｉ＋１）番目の部分画像に関する指示に基づいて書込処理もしくは書換処理を行う際に、前記先行した書込処理もしくは書換処理の結果を利用した処理を行うことを特徴とする合成画像作成装置。
【請求項３】
請求項１または２に記載の合成画像作成装置において、
素材画像格納部が、個々の単位領域についての単位圧縮データと、個々の単位圧縮データの間に介挿された区切情報データと、を有する画像データとして、個々の素材画像を格納しており、
データ伸張部が、前記区切情報データに基づいて単位圧縮データ間の区切り位置を認識し、伸張対象として指示された特定の単位領域に対する伸張処理を行うことを特徴とする合成画像作成装置。
【請求項４】
請求項３に記載の合成画像作成装置において、
区切情報データが、単位圧縮データとしては用いられることがない特殊コードからなるマーカを含んでおり、
データ伸張部が、前記特殊コードに基づいて前記マーカーを検出することにより、単位圧縮データ間の区切り位置を認識することを特徴とする合成画像作成装置。
【請求項５】
請求項３または４に記載の合成画像作成装置において、
区切情報データが、後続する単位圧縮データのデータサイズを示すサイズ情報を含んでおり、
データ伸張部が、前記サイズ情報に基づいて、次の区切情報データのアドレスを認識してこれにアクセスすることを特徴とする合成画像作成装置。
【請求項６】
請求項３または４に記載の合成画像作成装置において、
区切情報データが、次の区切情報データの位置を示すアドレス情報を含んでおり、
データ伸張部が、前記アドレス情報に基づいて、次の区切情報データへアクセスすることを特徴とする合成画像作成装置。
【請求項７】
請求項１または２に記載の合成画像作成装置において、
素材画像格納部が、先頭にヘッダ部が付加された素材画像を格納しており、このヘッダ部に個々の単位領域についての単位圧縮データの先頭アドレスを示すアドレス情報が書き込まれており、
データ伸張部が、前記アドレス情報に基づいて、必要な単位領域内の画像データへアクセスすることを特徴とする合成画像作成装置。
【請求項８】
請求項１〜７のいずれかに記載の合成画像作成装置において、
素材画像格納部が、前景領域と背景領域とによって構成される素材画像とともに、前記背景領域を隠蔽するためのマスク画像を、圧縮された画像データとして格納しており、
データ伸張部が、前記マスク画像を含めた伸張処理を行い、
合成処理部が、前記マスク画像を用いて前記前景領域と前記背景領域とを区別し、前景領域についてのみ書込処理もしくは書換処理を行うことを特徴とする合成画像作成装置。
【請求項９】
請求項１〜８のいずれかに記載の合成画像作成装置において、
素材画像格納部が、横幅が素材画像の包摂矩形の横幅に等しく、縦幅が前記包摂矩形をＫ等分した値ｕに等しい、横方向に細長い単位領域内の画像の集合体からなる素材画像を格納していることを特徴とする合成画像作成装置。
【請求項１０】
請求項１〜８のいずれかに記載の合成画像作成装置において、
素材画像格納部が、横幅が所定値ａの整数倍、縦幅が所定値ｂの整数倍のサイズをもった包摂矩形に含まれ、横幅が前記値ａ、縦幅が前記値ｂである単位領域の集合体からなる素材画像を格納していることを特徴とする合成画像作成装置。
【請求項１１】
請求項１〜１０のいずれかに記載の合成画像作成装置において、
個々の部分画像メモリが、作成対象となる合成画像を縦方向にＭ分割することにより得られる横方向に細長い部分画像を格納することを特徴とする合成画像作成装置。
【請求項１２】
請求項１１に記載の合成画像作成装置において、
各部分画像の縦幅が、各単位領域の縦幅よりも大きくなるように設定されていることを特徴とする合成画像作成装置。
【請求項１３】
請求項１〜１２のいずれかに記載の合成画像作成装置において、
コマンド入力部が、複数の素材画像についての奥行き方向に関する配置順序を含む合成画像作成コマンドを入力し、
合成処理部が、奥から手前に向かう配置順序に従って複数の素材画像についての処理順を定め、当該処理順に従って個々の素材画像ごとに書込処理を実行してゆくことを特徴とする合成画像作成装置。
【請求項１４】
請求項１〜１２のいずれかに記載の合成画像作成装置において、
コマンド入力部が、複数の素材画像についての奥行き方向に関する配置順序と、個々の素材画像についての透明度と、を含む合成画像作成コマンドを入力し、
合成処理部が、奥から手前に向かう配置順序に従って複数の素材画像についての処理順を定め、当該処理順に従って個々の素材画像ごとに前記透明度を考慮した合成演算をともなう書換処理を実行してゆくことを特徴とする合成画像作成装置。
【請求項１５】
請求項１〜１４のいずれかに記載の合成画像作成装置において、
コントローラ部が、第ｉ番目（１≦ｉ≦Ｍ）の部分画像を生成する際に、ｉをＮで除した剰余ｗを求め、Ｎ個の部分画像メモリのうちの第ｗ番目（但し、ｗ＝０の場合は、第Ｎ番目）の部分画像メモリを作業場所として指定し、
データ出力部が、第１番目の部分画像メモリ〜第Ｎ番目の部分画像メモリに生成された部分画像を順番に出力する処理を、全Ｍ個の部分画像の出力が完了するまで繰り返し実行することを特徴とする合成画像作成装置。
【請求項１６】
請請求項１〜１５のいずれかに記載の合成画像作成装置において、
コマンド入力部が、入力した合成画像作成コマンドを格納するコマンドバッファを有し、複数枚の合成画像に共通して適用すべきコマンドについては入力を省略し、前記コマンドバッファに格納されているコマンドを流用できるようにしたことを特徴とする合成画像作成装置。
【請求項１７】
請求項１〜１６のいずれかに記載の合成画像作成装置において、
コントローラ部が、第ｉ番目の部分画像を生成する際に行った処理に関する履歴情報を格納するステータスバッファを有し、第（ｉ＋１）番目の部分画像を生成する際に、前記ステータスバッファに格納されている履歴情報を利用した処理を行うことを特徴とする合成画像作成装置。
【請求項１８】
請求項１〜１７のいずれかに記載の合成画像作成装置における、Ｎ個の部分画像メモリ、データ伸張部、合成処理部、コマンド入力部、コントローラ部、およびデータ出力部、として機能する回路部品を備えた半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、合成画像作成装置に関し、特に、圧縮状態の素材画像を伸張した上で合成して合成画像を作成する技術に関する。
【背景技術】
【０００２】
デジタル画像を生成する方法として、予め用意された複数の素材画像を所定位置に所定の大きさで割り付けて合成する方法は広く利用されている。特に、複数の素材画像を効率よく格納しておく必要がある場合は、個々の素材画像を圧縮した画像データの形で保存しておき、必要に応じてこれを伸張して利用する形態が採られる。たとえば、下記の特許文献１には、圧縮状態で格納された素材画像を伸張し、画像メモリに展開し、フレームメモリ上にマッピングすることにより、合成画像を生成して表示する装置が開示されている。
【０００３】
また、特許文献２および３には、複数の素材画像を部分的に重なり合いを生じさせて合成する際に、画像の透過色や半透明色を考慮した演算処理を行うことにより、下層に位置する素材画像が上層に位置する素材画像の透過色や半透明色の領域を通して表示されるようにする技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２８８９７７号公報
【特許文献２】特開２００２−２２９５５４号公報
【特許文献３】特開２００２−２２９５５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
パソコンなどの汎用コンピュータの場合、比較的大容量のメモリが組み込まれており、合成画像の作成作業はこのメモリを利用したソフトウエアによる処理として実行することができる。これに対して、専用の遊戯機器やゲーム機器などでは、素材画像をＲＯＭ内に圧縮画像データとして用意しておき、必要に応じて、これを専用の画像メモリー上に展開して画像の合成処理を行い、得られた合成画像を一旦フレームメモリ上に保存した上で外部へ出力する、というハードウエアによる処理形態をとる場合が多い。
【０００６】
一般に、伸張された素材画像のデータは、圧縮された状態に比べて１０〜１００倍の容量になり、このような大容量の画像データに対する合成処理を行うためには、大容量の画像メモリーやフレームメモリーが必要になる。また、遊戯機器やゲーム機器などでは、動画を取り扱うのが一般的であり、時系列的に並べられた多数の合成画像を順次高速処理する能力が要求される。このため、処理に利用するメモリには高速性も要求される。
【０００７】
このように、従来提案されている合成画像作成装置を実現するためには、素材画像を伸張し、展開し、これを合成して出力するために、高速で大容量のメモリが必要になるが、そのようなメモリを利用すれば、当然、装置の製造コストを低減することは困難であり、装置の小型化を図ることも困難になる。
【０００８】
そこで本発明は、必要なメモリ容量をできるだけ低減し、装置のコストダウンとともに小型化を図ることが可能な合成画像作成装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
(1)   本発明の第１の態様は、複数の素材画像を合成して合成画像を作成する合成画像作成装置において、
個々の素材画像を、所定の単位領域ごとにそれぞれ独立して伸張可能な態様で圧縮された画像データとして格納する素材画像格納部と、
作成対象となる合成画像の一部を構成する部分画像を格納するための複数Ｎ個の部分画像メモリと、
素材画像格納部に格納されている圧縮された画像データのうち、指示された素材画像の指示された単位領域の部分を伸張するデータ伸張部と、
データ伸張部によって伸張された画像データを、作業場所として指定された部分画像メモリ上の所定の目標アドレスに保存する書込処理、もしくは、データ伸張部によって伸張された画像データと目標アドレスに保存されていた既存の画像データとについて所定の合成演算を行った上で、得られた新たな画像データを目標アドレスに保存する書換処理、を行う合成処理部と、
特定の素材画像を特定の大きさで特定の位置に配置することにより合成画像を作成することを示す合成画像作成コマンドを入力するコマンド入力部と、
作成対象となる合成画像を複数Ｍ個の部分画像に分割し、第１番目〜第Ｍ番目の部分画像をそれぞれ所定の部分画像メモリ内に生成するための指示を、順次、データ伸張部および合成処理部に与えるコントローラ部と、
各部分画像メモリ内に生成された第１番目〜第Ｍ番目の部分画像を順次外部へ出力するデータ出力部と、
を設け、
コントローラ部は、第ｉ番目（１≦ｉ≦Ｍ）の部分画像を生成する際に、データ伸張部に対しては、合成画像作成コマンドに基づいて、第ｉ番目の部分画像に含まれるべき特定の素材画像の特定の単位領域を伸張対象として認識し、認識した伸張対象についての伸張処理を行う指示を与え、合成処理部に対しては、Ｎ個の部分画像メモリのうち、第（ｉ−１）番目の部分画像に対して指定されたもの以外の１つを作業場所として指定するとともに、合成画像作成コマンドに基づいて、伸張された個々の画像データについて書込処理もしくは書換処理を行うべき目標アドレスを決定するための情報を与えるようにしたものである。
【００１０】
(2)   本発明の第２の態様は、上述した第１の態様に係る合成画像作成装置において、
素材画像格納部が、個々の単位領域についての単位圧縮データと、個々の単位圧縮データの間に介挿された区切情報データと、を有する画像データとして、個々の素材画像を格納しており、
データ伸張部が、区切情報データに基づいて単位圧縮データ間の区切り位置を認識し、伸張対象として指示された特定の単位領域に対する伸張処理を行うようにしたものである。
【００１１】
(3)   本発明の第３の態様は、上述した第２の態様に係る合成画像作成装置において、
区切情報データが、単位圧縮データとしては用いられることがない特殊コードからなるマーカを含んでおり、
データ伸張部が、この特殊コードに基づいてマーカーを検出することにより、単位圧縮データ間の区切り位置を認識するようにしたものである。
【００１２】
(4)   本発明の第４の態様は、上述した第２または第３の態様に係る合成画像作成装置において、
区切情報データが、後続する単位圧縮データのデータサイズを示すサイズ情報を含んでおり、
データ伸張部が、このサイズ情報に基づいて、次の区切情報データのアドレスを認識してこれにアクセスするようにしたものである。
【００１３】
(5)   本発明の第５の態様は、上述した第２または第３の態様に係る合成画像作成装置において、
区切情報データが、次の区切情報データの位置を示すアドレス情報を含んでおり、
データ伸張部が、アドレス情報に基づいて、次の区切情報データへアクセスするようにしたものである。
【００１４】
(6)   本発明の第６の態様は、上述した第１の態様に係る合成画像作成装置において、
素材画像格納部が、先頭にヘッダ部が付加された素材画像を格納しており、このヘッダ部に個々の単位領域についての単位圧縮データの先頭アドレスを示すアドレス情報が書き込まれており、
データ伸張部が、このアドレス情報に基づいて、必要な単位領域内の画像データへアクセスするようにしたものである。
【００１５】
(7)   本発明の第７の態様は、上述した第１〜第６の態様に係る合成画像作成装置において、
素材画像格納部が、前景領域と背景領域とによって構成される素材画像とともに、背景領域を隠蔽するためのマスク画像を、圧縮された画像データとして格納しており、
データ伸張部が、マスク画像を含めた伸張処理を行い、
合成処理部が、マスク画像を用いて前景領域と背景領域とを区別し、前景領域についてのみ書込処理もしくは書換処理を行うようにしたものである。
【００１６】
(8)   本発明の第８の態様は、上述した第１〜第７の態様に係る合成画像作成装置において、
素材画像格納部が、横幅が素材画像の包摂矩形の横幅に等しく、縦幅が包摂矩形をＫ等分した値ｕに等しい、横方向に細長い単位領域内の画像の集合体からなる素材画像を格納しているようにしたものである。
【００１７】
(9)   本発明の第９の態様は、上述した第１〜第７の態様に係る合成画像作成装置において、
素材画像格納部が、横幅が所定値ａの整数倍、縦幅が所定値ｂの整数倍のサイズをもった包摂矩形に含まれ、横幅が値ａ、縦幅が値ｂである単位領域の集合体からなる素材画像を格納しているようにしたものである。
【００１８】
(10)  本発明の第１０の態様は、上述した第１〜第９の態様に係る合成画像作成装置において、
個々の部分画像メモリが、作成対象となる合成画像を縦方向にＭ分割することにより得られる横方向に細長い部分画像を格納するようにしたものである。
【００１９】
(11)  本発明の第１１の態様は、上述した第１０の態様に係る合成画像作成装置において、
各部分画像の縦幅が、各単位領域の縦幅よりも大きくなるように設定したものである。
【００２０】
(12)  本発明の第１２の態様は、上述した第１〜第１１の態様に係る合成画像作成装置において、
コマンド入力部が、複数の素材画像についての奥行き方向に関する配置順序を含む合成画像作成コマンドを入力し、
合成処理部が、奥から手前に向かう配置順序に従って複数の素材画像についての処理順を定め、当該処理順に従って個々の素材画像ごとに書込処理を実行するようにしたものである。
【００２１】
(13)  本発明の第１３の態様は、上述した第１〜第１１の態様に係る合成画像作成装置において、
コマンド入力部が、複数の素材画像についての奥行き方向に関する配置順序と、個々の素材画像についての透明度と、を含む合成画像作成コマンドを入力し、
合成処理部が、奥から手前に向かう配置順序に従って複数の素材画像についての処理順を定め、当該処理順に従って個々の素材画像ごとに透明度を考慮した合成演算をともなう書換処理を実行するようにしたものである。
【００２２】
(14)  本発明の第１４の態様は、上述した第１〜第１３の態様に係る合成画像作成装置において、
コントローラ部が、第ｉ番目（１≦ｉ≦Ｍ）の部分画像を生成する際に、ｉをＮで除した剰余ｗを求め、Ｎ個の部分画像メモリのうちの第ｗ番目（但し、ｗ＝０の場合は、第Ｎ番目）の部分画像メモリを作業場所として指定し、
データ出力部が、第１番目の部分画像メモリ〜第Ｎ番目の部分画像メモリに生成された部分画像を順番に出力する処理を、全Ｍ個の部分画像の出力が完了するまで繰り返し実行するようにしたものである。
【００２３】
(15)  本発明の第１５の態様は、上述した第１〜第１４の態様に係る合成画像作成装置において、
コントローラ部が、
第ｉ番目の部分画像に関する伸張処理の指示を行う際に、第ｉ番目の部分画像と第（ｉ＋１）番目の部分画像との境界線に跨がって配置される跨線素材画像の境界線に跨がってもしくは境界線に接して配置される境界単位領域の先頭アドレスを記憶しておき、
第（ｉ＋１）番目の部分画像に関する跨線素材画像についての伸張処理の指示を行う際に、境界単位領域の先頭アドレスを参照して、伸張対象となる単位領域内の画像データのアドレスを指示するようにしたものである。
【００２４】
(16)  本発明の第１６の態様は、上述した第１〜第１５の態様に係る合成画像作成装置において、
合成処理部が、
第ｉ番目の部分画像に関する指示に基づいて書込処理もしくは書換処理を行う際に、第ｉ番目の部分画像と第（ｉ＋１）番目の部分画像との境界線に跨がって配置される跨線素材画像の境界線に跨がって配置される跨線単位領域について伸張された画像データのうち、第（ｉ＋１）番目の部分画像に含まれる部分については、第（ｉ＋１）番目の部分画像についての作業場所として指定される次段部分画像メモリに対して先行した書込処理もしくは書換処理を行い、
第（ｉ＋１）番目の部分画像に関する指示に基づいて書込処理もしくは書換処理を行う際に、先行した書込処理もしくは書換処理の結果を利用した処理を行うようにしたものである。
【００２５】
(17)  本発明の第１７の態様は、上述した第１〜第１６の態様に係る合成画像作成装置において、
コマンド入力部が、入力した合成画像作成コマンドを格納するコマンドバッファを有し、複数枚の合成画像に共通して適用すべきコマンドについては入力を省略し、コマンドバッファに格納されているコマンドを流用できるようにしたものである。
【００２６】
(18)  本発明の第１８の態様は、上述した第１〜第１７の態様に係る合成画像作成装置において、
コントローラ部が、第ｉ番目の部分画像を生成する際に行った処理に関する履歴情報を格納するステータスバッファを有し、第（ｉ＋１）番目の部分画像を生成する際に、ステータスバッファに格納されている履歴情報を利用した処理を行うようにしたものである。
【００２７】
(19)  本発明の第１９の態様は、上述した第１〜第１８の態様に係る合成画像作成装置において、Ｎ個の部分画像メモリ、データ伸張部、合成処理部、コマンド入力部、コントローラ部、およびデータ出力部、として機能する回路部品を半導体集積回路によって構成するようにしたものである。
【発明の効果】
【００２８】
本発明に係る合成画像作成装置によれば、作成対象となる合成画像は、個々の部分画像ごとに部分画像メモリ上で作成され、順次出力される。しかも、素材画像は単位領域ごとにそれぞれ独立して伸張可能な態様で圧縮された画像データとして用意されているので、画像の合成作業は、素材画像全体を伸張することなく、必要な単位領域ごとに伸張しながら実行することができる。このため、合成画像全体を格納するための大容量メモリや、個々の素材画像全体を伸張するためのメモリは不要になり、必要なメモリ容量の低減を図ることができる。これにより、装置のコストダウンとともに小型化を図ることが可能になる。
【００２９】
また、素材画像の必要な単位領域だけを伸張しながら画像合成処理を行うことができるため、表示領域外に位置するような無駄な領域についての伸張処理を避けることができるようになるので、無駄な処理時間を省き、より高速な合成処理が可能になるという副次的な効果も得られる。
【図面の簡単な説明】
【００３０】
【図１】本発明の基本的な実施形態に係る合成画像作成装置の構成を示すブロック図である。
【図２】図１に示す素材画像格納部１１０内に格納されている素材画像Ｍ１〜Ｍ４の例を示す平面図である。
【図３】図２に示す素材画像Ｍ１〜Ｍ４を利用して作成された合成画像Ｐの一例を示す平面図である。
【図４】図３に示す合成画像Ｐを構成する複数の部分画像Ｑ１〜Ｑ４を示す平面図である。
【図５】図３に示す合成画像Ｐを作成するための合成画像作成コマンドに含まれる具体的な情報内容を示す平面図である。
【図６】本発明に係る合成画像作成装置における素材画像の圧縮形態の一例を示す平面図である。
【図７】図４に示す部分画像Ｑ１の作成プロセスを示す平面図である。
【図８】図４に示す部分画像Ｑ３の作成プロセスの第１段階を示す平面図である。
【図９】図４に示す部分画像Ｑ３の作成プロセスの第２段階を示す平面図である。
【図１０】図４に示す部分画像Ｑ３の作成プロセスの第３段階を示す平面図である。
【図１１】ＪＰＥＧ方式による画像データの圧縮方法の一例を示す平面図である。
【図１２】図１１に示す画像データをＪＰＥＧ形式で圧縮するフォーマット例を示す平面図である。
【図１３】圧縮された素材画像のフォーマットを、従来例および本願実施例を対比させて示す平面図である。
【図１４】図６の左に示す素材画像Ｍ１についての圧縮データのフォーマットを、従来例と本願実施例とを対比させた形で示す平面図である。
【図１５】本発明における圧縮素材画像データのより実用的なフォーマットの第１の例を示す平面図である。
【図１６】本発明における圧縮素材画像データのより実用的なフォーマットの第２の例を示す平面図である。
【図１７】本発明における圧縮素材画像データのより実用的なフォーマットの第３の例を示す平面図である。
【図１８】図４に示す各部分画像Ｑ１〜Ｑ４の左上隅点の座標を示す平面図である。
【図１９】第ｉ番目の部分画像Ｑｉ内に第ｊ番目の素材画像Ｍｊが含まれるか否かを判定する判定法の一例を示す平面図である。
【図２０】第ｉ番目の部分画像Ｑｉ内に含まれる第ｊ番目の素材画像内の単位領域を決定する決定法の一例を示す平面図である。
【図２１】図１に示すコントローラ部１３０が実行する処理手順を示す流れ図である。
【図２２】本発明において、素材画像とともにマスク画像を用いる例を示す平面図である。
【図２３】図１に示す合成処理部１５０によって実行されるブレンド処理（合成演算）の具体例を示す平面図である。
【図２４】第ｉ番目の部分画像に関する処理の履歴を第（ｉ＋１）番目の部分画像に関する処理に利用する変形例を示す平面図である。
【図２５】第ｉ番目の部分画像に関する処理の履歴を第（ｉ＋１）番目の部分画像に関する処理に利用する変形例を示す別な平面図である。
【図２６】素材画像上に設定する単位領域の変形例を示す平面図である。
【図２７】図２６に示す変形例のメリットを示す平面図である。
【発明を実施するための形態】
【００３１】
以下、本発明を図示する実施形態に基づいて説明する。
【００３２】
＜＜＜  §１．  基本的な実施形態の構成  ＞＞＞
図１は、本発明の基本的な実施形態に係る合成画像作成装置１００の構成を示すブロック図である。この装置は、外部から与えられる合成画像作成コマンドＣに基づいて、複数の素材画像を合成して合成画像Ｐを作成し、これを出力する機能を有している。図示のとおり、この合成画像作成装置１００は、素材画像格納部１１０、コマンド入力部１２０、コントローラ部１３０、データ伸張部１４０、合成処理部１５０、データ出力部１６０、部分画像メモリ１７１，１７２によって構成されている。
【００３３】
素材画像格納部１１０は、合成に用いる個々の素材画像を格納するための構成要素である。図２は、この素材画像格納部１１０内に格納されている素材画像Ｍ１〜Ｍ４の例を示す平面図である。実際には、より多数の素材画像を用意するのが一般的であるが、ここでは、説明の便宜上、図示のとおり、樹木の素材画像Ｍ１、鳥の素材画像Ｍ２、小屋の素材画像Ｍ３、犬の素材画像Ｍ４という４組の素材画像が用意されているものとする。また、各素材画像Ｍ１〜Ｍ４は、それぞれ本来の絵柄の領域を包摂する包摂矩形Ｒ１〜Ｒ４内の画像データとして用意されているものとする。すなわち、各素材画像は、いずれも矩形内にマトリックス状に配置された画素の集合体によって構成されている。
【００３４】
もっとも、素材画像格納部１１０内には、図２に示すような素材画像Ｍ１〜Ｍ４がそのまま格納されるわけではなく、圧縮された画像データの形で格納されることになる。本願では、説明の便宜上、圧縮された画像データを示す符号には「＊」印を付して区別できるようにしている。図１の素材画像格納部１１０内に格納されている素材画像Ｍ１＊〜Ｍ４＊は、それぞれ図２に示す素材画像Ｍ１〜Ｍ４の画像データを圧縮することにより得られた圧縮画像データである。
【００３５】
ここに示す実施形態の場合、素材画像格納部１１０はＲＯＭによって構成されており、各素材画像は、圧縮された状態で、このＲＯＭ内の所定のアドレスに格納されている。一方、コマンド入力部１２０、コントローラ部１３０、データ伸張部１４０、合成処理部１５０、データ出力部１６０、部分画像メモリ１７１，１７２は、後述する各機能を果たす回路部品を備えた半導体集積回路によって構成されている。したがって、ここに示す実施形態の場合、合成画像作成装置１００は、素材画像格納部１１０を構成する１チップのＲＯＭと、その余の各構成要素１２０〜１７２の集合体として機能する１チップのＬＳＩと、によって実現されている。
【００３６】
ここで重要な点は、各素材画像Ｍ１〜Ｍ４の圧縮方法である。一般的な画像データの圧縮方法では、画像ファイル全体を一括して圧縮して１つの圧縮データを得るという方法を採る。このような圧縮方法を採用すると、データ伸張時に圧縮データ全体を一括して伸張して元の画像ファイルに戻すという方法を採ることになる。これに対して、本発明では、個々の素材画像を所定の単位領域ごとにそれぞれ独立して伸張可能な態様で圧縮するという方法を採る。そのため、データ伸張時には、指定された任意の単位領域についてのみ伸張を行うことができる。
【００３７】
結局、素材画像格納部１１０内には、個々の素材画像Ｍ１〜Ｍ４が、所定の単位領域ごとにそれぞれ独立して伸張可能な態様で圧縮された画像データＭ１＊〜Ｍ４＊として格納されていることになるので、たとえば、「素材画像Ｍ１＊の第ｋ番目の単位領域」という指定を行えば、該当する単位領域内の画像データのみを独立して伸張して利用することができる。このような圧縮形態の具体例については後述する。
【００３８】
さて、ここでは具体例として、図２に示す４組の素材画像を用いて、図３に示すような合成画像Ｐを作成する場合を考えてみよう。この合成画像Ｐは、横幅ｐｈ、縦幅ｐｖをもった矩形の画像であり、マトリックス状に配置された画素の集合体によって構成されている。前掲の各特許文献に開示されている従来の一般的な合成画像作成装置の場合、このような合成画像Ｐを作成するために、横幅ｐｈ、縦幅ｐｖをもった画像を格納するのに必要な容量をもったフレームメモリが必要であった。また、素材画像を相互に重ね合わせる処理を行う必要上、素材画像を展開するための画像メモリとして、上記フレームメモリの数倍から十数倍の容量をもったメモリも必要であった。そのため、高速で大容量のメモリが必要になり、製造コストの高騰、装置の大型化が避けられないという問題が生じることは既に述べたとおりである。
【００３９】
そこで本発明では、まず、作成対象となる合成画像Ｐを複数Ｍ個の部分画像に分割して取り扱うようにしている。図４は、図３に示す合成画像Ｐを４分割して、部分画像Ｑ１〜Ｑ４に分けた状態を示す平面図である。個々の部分画像Ｑ１〜Ｑ４は、いずれも作成対象となる合成画像Ｐの一部を構成する画像であり、横幅ｐｈ、縦幅ｑ（ｑ＝ｐｖ／４）をもつ横方向に細長い矩形画像になる。理論的には、合成画像Ｐを必ずしも等分割する必要はないが、実用上は、部分画像メモリ１７１，１７２の構成を共通化できるように、各部分画像Ｑ１〜Ｑ４の横幅および縦幅が互いに等しくなるように等分割するのが好ましい。
【００４０】
図１に示す部分画像メモリ１７１，１７２は、部分画像Ｑ１〜Ｑ４を格納するためのメモリである。ここに示す実施例の場合、部分画像Ｑ１〜Ｑ４は、合成画像Ｐを等分割した画像であるためサイズは共通している。したがって、部分画像メモリ１７１，１７２としては、横幅ｐｈ、縦幅ｑという共通サイズの矩形画像を格納するのに適した容量のメモリを用意しておけばよい。合成画像Ｐを等分割しない場合は、得られる部分画像は互いにサイズが異なってしまうため、部分画像メモリ１７１，１７２としては最大サイズに合わせたものを用意する必要がある。この場合、メモリ容量の一部が無駄になるため、実用上は好ましくない。よって、実用上は、個々の部分画像メモリ１７１，１７２が、作成対象となる合成画像Ｐを縦方向にＭ分割することにより得られる横方向に細長い部分画像を格納することができるようにすればよい。
【００４１】
ここに示す実施形態では、２組の部分画像メモリ１７１，１７２が用意されているが、これは両者を交互に利用することにより、一方の部分画像メモリ上で部分画像を作成する処理を実行中に、他方の部分画像メモリ上に作成された部分画像を外部へ出力できるようにするためである。データ出力部１６０は、各部分画像メモリ１７１，１７２内に生成された第１番目〜第Ｍ番目の部分画像を順次外部へ出力する処理を行う。
【００４２】
たとえば、図４に示す例の場合、まず、部分画像メモリ１７１上で第１番目の部分画像Ｑ１を作成する処理を行い、続いて、部分画像メモリ１７２上で第２番目の部分画像Ｑ２を作成する処理を行う。そして、この第２番目の部分画像Ｑ２の作成中に、データ出力部１６０によって、第１番目の部分画像Ｑ１が外部へ出力される。次に、部分画像メモリ１７１上で第３番目の部分画像Ｑ３を作成する処理を行うが、その作成中に、データ出力部１６０によって、第２番目の部分画像Ｑ２が外部へ出力される。そして、部分画像メモリ１７２上で第４番目の部分画像Ｑ４を作成する処理を行うが、その作成中に、データ出力部１６０によって、第３番目の部分画像Ｑ３が外部へ出力され、最後に、データ出力部１６０によって、第４番目の部分画像Ｑ４が外部へ出力される。
【００４３】
このように、本発明では、作成対象となる合成画像Ｐ全体を格納するための画像メモリを用いる代わりに、個々の部分画像Ｑ１〜Ｑ４をそれぞれ格納するための部分画像メモリ１７１，１７２が用いられる。図４では、説明の便宜上、Ｍ＝４に設定し、合成画像Ｐを４分割した例を示したが、実際には、Ｍをより大きな値に設定し、分割数を増やすようにするのが好ましい。たとえば、Ｍ＝２０に設定して２０分割すれば、部分画像メモリ１７１，１７２としては、本来の合成画像Ｐを格納する容量の１／２０の容量をもったメモリを用意すれば足りる。２組の部分画像メモリ１７１，１７２の合計容量値を見ても、本来の合成画像Ｐを格納する容量の１／１０になり、必要な画像メモリの容量を大幅に削減することができる。
【００４４】
また、データ出力部１６０によって、部分画像メモリ１７１，１７２内に作成された個々の部分画像Ｑ１，Ｑ２，Ｑ３，Ｑ４が順次連続して出力されることになるので、装置１００内には、合成画像Ｐ全体を格納するための画像メモリが設けられていないにもかかわらず、外部からは、あたかも合成画像Ｐ全体を格納するフレームメモリから合成画像Ｐが読み出されて出力されているように見える。ここでは、１枚の合成画像Ｐ（静止画像）を作成する例を述べるが、実際には、このような合成画像Ｐを連続して複数枚作成して順番に出力することにより、装置１００から動画の画像データを供給することができるようになる。
【００４５】
なお、出力する合成画像Ｐのデータ形式を、ディスプレイ装置に直接与えることができる形式にする場合は、データ出力部１６０に、表示用同期信号（水平同期信号および垂直同期信号）を付加する機能をもたせておけばよい。具体的には、部分画像メモリ１７１，１７２内の各部分画像を出力する際に、第１行目の画素ラインを水平走査した後に水平同期信号を付加し、第２行目の画素ラインを水平走査した後に水平同期信号を付加し、... というように、各画素ラインのデータに水平同期信号を付加して出力し、合成画像Ｐの最終画素ラインを出力した後に、垂直同期信号を付加する処理を行えばよい。このように表示用同期信号を付加する上では、図４に示すように、合成画像Ｐを縦方向にＭ分割しておくと便利である。
【００４６】
続いて、部分画像メモリ１７１，１７２上に、部分画像Ｑ１〜Ｑ４を作成する処理を行うための構成要素について説明する。まず、コマンド入力部１２０は、外部から与えられた合成画像作成コマンドＣを入力するための構成要素である。ここで、合成画像作成コマンドＣは、特定の合成画像Ｐを作成することを示すコマンドであり、特定の素材画像を特定の大きさで特定の位置に配置することを示す情報を含んでいる。
【００４７】
図５は、図３に示す合成画像Ｐを作成するための合成画像作成コマンドＣに含まれる具体的な情報内容を示す平面図である。この例の場合、合成画像作成コマンドＣには、次の４組の情報が含まれている。
＜樹木の割付情報：素材画像Ｍ１を倍率ｍ１で位置Ｌ１（ｘ１，ｙ１）に配置＞
＜鳥の割付情報：素材画像Ｍ２を倍率ｍ２で位置Ｌ２（ｘ２，ｙ２）に配置＞
＜小屋の割付情報：素材画像Ｍ３を倍率ｍ３で位置Ｌ３（ｘ３，ｙ３）に配置＞
＜犬の割付情報：素材画像Ｍ４を倍率ｍ４で位置Ｌ４（ｘ４，ｙ４）に配置＞
【００４８】
図５に示す例の場合、作成対象となる合成画像Ｐの左上隅点に原点Ｏをとり、図の右方向にＸ軸、下方向にＹ軸をとった二次元ＸＹ座標系を定義している。各素材画像Ｍ１〜Ｍ４の割付位置は、当該素材画像の左上隅点の位置を示す配置基準点Ｌ１〜Ｌ４のＸＹ座標値によって定められる。たとえば、図示の例の場合、樹木の素材画像Ｍ１については、座標値（ｘ１，ｙ１）をもつ配置基準点Ｌ１に、左上隅点がくるような配置が指定されている。ここで、倍率ｍ１は、縦方向および横方向についての拡大率を示すものであり、ｍ１＞１の場合は、元の素材画像Ｍ１が縦横ｍ１倍に拡大されて割り付けられ（画素の補間が行われる）、ｍ１＜１の場合は、元の素材画像Ｍ１が縦横ｍ１倍に縮小されて割り付けられる（画素の間引きが行われる）。
【００４９】
なお、素材画像同士が部分的に重なり合いを生じる場合には、コマンド入力部１２０が、複数の素材画像についての奥行き方向に関する配置順序を含む合成画像作成コマンドＣを入力できるようにしておき、重なり合う部分について、いずれの素材画像（レイヤー）を優先して表示するかを判断できるようにしておく。図５に示す例の場合、樹木，小屋，犬が部分的に重なり合いを生じているが、奥行き方向に関する配置順序は、樹木→小屋→犬の順になっている。したがって、合成画像作成コマンドＣには、少なくとも、素材画像Ｍ１→Ｍ３→Ｍ４という奥行き方向に関する配置順序を示す情報を含ませておくようにする。
【００５０】
コマンド入力部１２０には、入力した合成画像作成コマンドＣを格納するコマンドバッファ１２１が設けられている。前述したように、合成画像Ｐを連続して複数枚作成して順番に出力することにより動画の画像データを供給する場合、複数枚の合成画像に共通して適用すべきコマンドについては入力を省略し、コマンドバッファ１２１に格納されているコマンドを流用できる。たとえば、図５に示す例の場合、樹木および小屋は移動しないため、ズームやパンなどの効果による視界領域の変化が生じない限り、位置Ｌ１，Ｌ３や倍率ｍ１，ｍ３は一定であり、コマンドバッファ１２１に格納されている情報を流用することができる。
【００５１】
コントローラ部１３０は、図４に示す例のように、作成対象となる合成画像Ｐを複数Ｍ個の部分画像に分割し、第１番目〜第Ｍ番目の部分画像をそれぞれ所定の部分画像メモリ１７１，１７２内に生成するための指示を、順次、データ伸張部１４０および合成処理部１５０に与える機能を果たす。
【００５２】
すなわち、コントローラ部１３０は、第ｉ番目（１≦ｉ≦Ｍ）の部分画像Ｑｉを生成するために、合成画像作成コマンドＣに基づいて、第ｉ番目の部分画像Ｑｉに含まれるべき特定の素材画像の特定の単位領域を伸張対象として認識し、認識した伸張対象についての伸張処理を、データ伸張部１４０に対して指示する。データ伸張部１４０は、いわゆるデコーダによって構成され、与えられた指示を受けて、素材画像格納部１１０に格納されている圧縮された画像データＭ１＊〜Ｍ４＊のうち、指示された素材画像の指示された単位領域の部分を伸張する処理を行う。
【００５３】
また、コントローラ部１３０は、合成処理部１５０に対して、部分画像メモリのうちの１つを、第ｉ番目の部分画像を作成するための作業場所として指定する。ここに示す実施例のように、２組の部分画像メモリ１７１，１７２が設けられている場合には、これらを交互に作業場所として指定すればよい。すなわち、奇数番目の部分画像については部分画像メモリ１７１を作業場所として指定し、偶数番目の部分画像については部分画像メモリ１７２を作業場所として指定すればよい。
【００５４】
コントローラ部１３０は、更に、合成画像作成コマンドＣに基づいて、データ伸張部１４０が伸張した個々の画像データを書き込むべき部分画像メモリ上の目標アドレスを決定するために必要な情報を収集し、これを合成処理部１５０に与える処理を行う。合成処理部１５０は、データ伸張部１４０によって伸張された画像データを、作業場所として指定された部分画像メモリ上の所定の目標アドレスに保存する書込処理を行う。
【００５５】
ここでは、データ伸張部１４０によって行われるデータ伸張処理と、合成処理部１５０によって行われる書込処理とを、より具体的な例に基づいて説明しよう。図６の左の図は、素材画像格納部１１０内に格納される素材画像Ｍ１の圧縮形態の一例を示す平面図である。図示のとおり、素材画像Ｍ１は、樹木の絵柄を包摂矩形Ｒ１内に収容した矩形状の画像である。この実施例の場合、素材画像Ｍ１を、横幅が包摂矩形Ｒ１の横幅に等しく、縦幅が包摂矩形Ｒ１をＫ等分した値ｕに等しい、横方向に細長いＫ個の単位領域Ｕ１〜ＵＫに分割している。包摂矩形Ｒ１は、その縦幅が各単位領域の縦幅ｕの整数倍（ｕ×Ｋ）になるように調整されているため、その底部に若干の余白領域（図にハッチングを施して示す領域）が生じている。ここでは、各単位領域Ｕ１〜ＵＫ内の素材画像を単位画像Ｍ１（１）〜Ｍ１（Ｋ）と呼ぶことにする。
【００５６】
一方、図６の右の図は、素材画像Ｍ１に対して圧縮処理を施して得られる圧縮された素材画像Ｍ＊の構成図である。第１番目の単位領域Ｕ１内の単位画像Ｍ１（１）は、圧縮処理により単位圧縮データＭ１（１）＊となり、第ｋ番目の単位領域Ｕｋ内の単位画像Ｍ１（ｋ）は、圧縮処理により単位圧縮データＭ１（ｋ）＊となる。圧縮前の単位画像Ｍ１（１）〜Ｍ１（Ｋ）は、同一の画素配列をもった同一サイズの画像であるため、いずれも同じ容量をもった画像データになるが、圧縮された単位圧縮データＭ１（１）＊〜Ｍ１（Ｋ）＊は、圧縮効率がそれぞれ異なるため、互いに容量が異なった画像データになる。図６の右の図において、各単位圧縮データＭ１（１）＊〜Ｍ１（Ｋ）＊のバーがそれぞれ異なる長さで示されているのは、互いにデータ容量が異なるためである。
【００５７】
結局、素材画像格納部１１０には、横幅が素材画像の包摂矩形Ｒの横幅に等しく、縦幅がこの包摂矩形ＲをＫ等分した値ｕに等しい、横方向に細長い単位領域Ｕ内の画像の集合体からなる素材画像が、個々の単位領域ごとに圧縮された状態で格納されていることになる。なお、実用上は、図４に示す各部分画像Ｑ１〜Ｑ４の縦幅ｑが、図６に示す各単位領域Ｕ１〜ＵＫの縦幅ｕよりも大きくなるような設定（ｑ＞ｕとする設定）を行うのが好ましい。これは、ｑ≦ｕとする設定を行うと、伸張した単位領域のうち、部分画像の枠外に食み出る領域が大きくなるためである。部分画像の枠外に食み出た領域は、部分画像の生成処理には利用されないので無駄になってしまう。
【００５８】
ここで重要な点は、単位圧縮データＭ１（１）＊〜Ｍ１（Ｋ）＊は、それぞれが独立して伸張可能な態様で圧縮されている点である。たとえば、コントローラ部１３０からデータ伸張部１４０に対して、素材画像Ｍ１の第ｋ番目の単位領域Ｕｋのみを伸張する旨の指示を与えれば、データ伸張部１４０は、素材画像格納部１１０から、素材画像Ｍ１の第ｋ番目の単位圧縮データＭ１（ｋ）＊を読み出し、これを単独で伸張して単位画像Ｍ１（ｋ）を得ることができる。
【００５９】
図５に例示したとおり、合成画像作成コマンドＣには、合成画像Ｐを作成する上で、どの素材画像をどの位置にどの倍率で割り付けるべきかを示す情報が含まれている。したがって、コントローラ部１３０は、この合成画像作成コマンドＣに基づいて、第ｉ番目（１≦ｉ≦Ｍ）の部分画像Ｑｉを生成するために必要な特定の素材画像の特定の単位領域を伸張対象として認識し、認識した伸張対象についての伸張処理を、データ伸張部１４０に対して指示することができる。
【００６０】
図７は、図４に示す部分画像Ｑ１の作成プロセスを示す平面図である。コントローラ部１３０は、合成画像作成コマンドＣに基づいて、第１番目の部分画像Ｑ１内には、素材画像Ｍ１の単位領域Ｕ１〜Ｕ４に属する単位画像Ｍ１（１）〜Ｍ１（４）と、素材画像Ｍ２の単位領域Ｕ１〜Ｕ２に属する単位画像Ｍ２（１）〜Ｍ２（２）とが必要であることを認識する。当該認識処理は、部分画像Ｑ１のサイズ、各素材画像Ｍ１〜Ｍ４のサイズ、各単位領域Ｕ１〜ＵＫのサイズ（これらの情報は、予め、素材画像格納部１１０やコントローラ部１３０内に格納しておけばよい）と、合成画像作成コマンドＣに含まれる配置基準点Ｌ１〜Ｌ４の座標値とに基づく幾何学的な演算によって行うことができる。
【００６１】
その結果、図７に示すように、ハッチングを施した合計６組の単位画像が伸張対象として認識され、データ伸張部１４０に対してこれら伸張対象についての伸張指示が与えられる。データ伸張部１４０は、この伸張指示を受けて、素材情報格納部１１０から、単位圧縮データＭ１（１）＊〜Ｍ１（４）＊およびＭ２（１）＊〜Ｍ２（２）＊を読み出して伸張処理を施し、単位画像Ｍ１（１）〜Ｍ１（４）およびＭ２（１）〜Ｍ２（２）を得る。
【００６２】
一方、コントローラ部１３０は、合成処理部１５０に対して、部分画像Ｑ１を作成するための作業場所として、部分画像メモリ１７１を指定するとともに、データ伸張部１４０が伸張した上記６組の単位画像を書き込むべき目標アドレスを決定するために必要な情報を与える。具体的には、たとえば、素材画像Ｍ１を構成する４組の単位画像Ｍ１（１）〜Ｍ１（４）を書き込むべき目標アドレスを決定するために必要な情報としては、配置基準点Ｌ１の座標値（ｘ１，ｙ１）と単位領域の縦幅ｕとを与えればよい。
【００６３】
合成処理部１５０は、このような情報に基づいて、単位画像Ｍ１（１）については、その左上隅点が座標値（ｘ１，ｙ１）に対応する配置基準点Ｌ１にくるように部分画像メモリ１７１上の特定の目標アドレスに書き込む処理を行うことができる。また、単位画像Ｍ１（２）については、その左上隅点が座標値（ｘ１，ｙ１＋ｕ）に対応する配置基準点Ｌ１′にくるように部分画像メモリ１７１上の特定の目標アドレスに書き込む処理を行うことができる。以下、同様に、合成処理部１５０は、データ伸張部１４０によって伸張された画像データを、作業場所として指定された部分画像メモリ１７１上の所定の目標アドレスに保存する書込処理を行う。
【００６４】
なお、図４に示す例において、部分画像Ｑ１の場合は、割付対象となる２つの素材画像Ｍ１，Ｍ２（樹木と鳥）が相互に重なり合う部分がないので、両者についての処理をどのような順序で行っても問題ないが、部分画像Ｑ２，Ｑ３，Ｑ４の場合は、複数の素材画像が部分的に重なり合いを生じているので、順序を考慮した処理を行う必要がある。したがって、実用上は、前述したとおり、コマンド入力部１２０が、複数の素材画像についての奥行き方向に関する配置順序を含む合成画像作成コマンドＣを入力し、合成処理部１５０が、奥から手前に向かう配置順序に従って複数の素材画像についての処理順を定め、当該処理順に従って個々の素材画像ごとに書込処理を実行してゆくようにすればよい。
【００６５】
図４に示す例の場合、鳥に関しては、他の素材との重なり合いはないが、樹木・小屋・犬に関しては、樹木が最も奥に配置され、その手前に小屋、更にその手前に犬が配置されている。そこで、ここでは、樹木→鳥→小屋→犬の順に奥から配置するように定めた場合を考えてみよう。この場合、合成画像作成コマンドＣには、Ｍ１→Ｍ２→Ｍ３→Ｍ４という配置順序を示す情報が含まれており、合成処理部１５０は、この配置順序に従って、個々の素材画像についての処理を実行することになる。
【００６６】
ここでは、部分画像Ｑ３についての処理を例にとって説明してみよう。図４に示すとおり、部分画像Ｑ３には、素材画像Ｍ１（樹木），Ｍ３（小屋），Ｍ４（犬）が含まれているので、作業場所として指定された部分画像メモリ１７１に対して、この順に書込処理が行われる。
【００６７】
まず、図８に示すように、素材画像Ｍ１（樹木）についての処理が行われる。具体的には、図８にハッチングを施して示すように、単位画像Ｍ１（８）〜Ｍ１（１２）を伸張対象とする指示がデータ伸張部１４０に対して与えられる。そして、伸張された各単位画像は、合成処理部１５０によって、作業場所となる部分画像メモリ１７１の所定アドレスに書き込まれる（このとき、単位画像Ｍ１（８）およびＭ１（１２）のうちの部分画像Ｑ３の枠から食み出した部分については、書込みは行われず、データは捨てられる）。
【００６８】
続いて、図９に示すように、素材画像Ｍ３（小屋）についての処理が行われる。すなわち、図９にハッチングを施して示すように、単位画像Ｍ３（２）〜Ｍ３（６）に対する伸張処理が行われ、作業場所となる部分画像メモリ１７１の所定アドレスに書き込まれる。このとき、データは、メモリに対して上書きされるため、素材画像Ｍ１（樹木）との重なり部分については、素材画像Ｍ３（小屋）のデータに書き換えられることになる。
【００６９】
最後に、図１０に示すように、素材画像Ｍ４（犬）についての処理が行われる。すなわち、図１０にハッチングを施して示すように、単位画像Ｍ４（１）に対する伸張処理が行われ、作業場所となる部分画像メモリ１７１の所定アドレスに書き込まれる。このときも、データは、メモリに対して上書きされるため、素材画像Ｍ３（小屋）との重なり部分については、素材画像Ｍ４（犬）のデータに書き換えられることになる。かくして、部分画像Ｑ３に対する処理は完了する。完成した部分画像Ｑ３の画像データは、部分画像メモリ１７１からデータ出力部１６０を経て、合成画像Ｐの一部として外部へ出力される。
【００７０】
このように、図１に示す合成画像作成装置１００によれば、作成対象となる合成画像Ｐは、図４に示すように個々の部分画像Ｑ１〜Ｑ４ごとに部分画像メモリ１７１もしくは１７２上で順番に作成され、データ出力部１６０によって、直接外部へと出力される。したがって、装置１００内には、合成画像Ｐ全体を格納するための大容量メモリを用意しておく必要はない。
【００７１】
また、素材画像格納部１１０内には、素材画像が単位領域ごとにそれぞれ独立して伸張可能な態様で圧縮された画像データとして用意されているので、画像の合成作業は、素材画像全体を伸張することなく、必要な単位領域ごとに伸張しながら実行することができる。データ伸張部１４０が伸張したデータを、合成処理部１５０によって部分画像メモリ１７１，１７２の目標アドレスに直接書き込むようにすれば、伸張した単位画像を一時的に格納しておくメモリを用意しておけば足り、伸張した素材画像全体を格納するメモリは不要になる。その結果、装置のコストダウンとともに小型化を図ることが可能になる。
【００７２】
更に、素材画像の必要な単位領域だけを伸張しながら画像合成処理を行うことができるため、表示領域外に位置するような無駄な領域についての伸張処理を避けることができるようになるので、無駄な処理時間を省き、より高速な合成処理が可能になるという副次的な効果も得られる。
【００７３】
＜＜＜  §２．  素材画像の圧縮方法  ＞＞＞
§１で述べたとおり、本発明に係る合成画像作成装置１００の素材画像格納部１１０には、単位領域ごとにそれぞれ独立して伸張可能な態様で圧縮された画像データとして、個々の素材画像を格納しておく必要がある。ここでは、このような態様で素材画像を圧縮する具体的な方法を説明する。
【００７４】
図１１は、画像データの圧縮方式として広く利用されているＪＰＥＧ方式による画像データの圧縮方法の一例を示す平面図である。ＪＰＥＧ方式では、縦横マトリックス状に配置された多数の画素の集合からなる素材画像Ｍを、８×８画素のブロック単位で取り扱うことにより圧縮が行われる。図示の例の場合、第１のブロック行は、圧縮対象ブロックＢ１１，Ｂ１２，Ｂ１３，…，Ｂ１ｚによって構成され、第２のブロック行は、圧縮対象ブロックＢ２１，Ｂ２２，Ｂ２３，…，Ｂ２ｚによって構成され、以下、同様である。
【００７５】
１つの圧縮対象ブロックは、いずれも８行８列に配置された６４個の画素の集合体によって構成されており、各画素には、それぞれ画素値が定義されている。ここでは、カラー画像を構成する個々の画素が、輝度値Ｙと色差成分値Ｃｂ，Ｃｒとを有する画素値をもっているものとしよう。ＪＰＥＧ方式の画像圧縮フォーマットには様々な規格が存在する。図１２には、そのうちの代表的な３つを例示した。
【００７６】
図１２(a) は、ＪＰＥＧ（ＹＵＶ４４４）と呼ばれているフォーマットを示すものである。ここで、ブロックＢ１１（Ｙ），Ｂ１１（Ｃｂ），Ｂ１１（Ｃｒ）は、図１１に示すブロックＢ１１を構成する６４個の画素の輝度値Ｙおよび色成分値Ｃｂ，Ｃｒを示している。続くブロックＢ１２（Ｙ），Ｂ１２（Ｃｂ），Ｂ１２（Ｃｒ）は、図１１に示すブロックＢ１２を構成する６４個の画素の輝度値Ｙおよび色成分値Ｃｂ，Ｃｒである。このようなブロックについて、それぞれ離散コサイン変換を行うことにより、素材画像の圧縮データＭ＊が得られる。圧縮効率は、ブロック内の画素値の分布状態に応じて異なるため、得られた圧縮データＭ＊の容量は不定長になる。
【００７７】
図１２(b) は、ＪＰＥＧ（ＹＵＶ４２２）と呼ばれているフォーマットを示すものである。輝度値Ｙについては、それぞれが８行８列に配置された６４個の画素によって構成されているが、色成分値Ｃｂ，Ｃｒについては、２つのブロック（たとえば、Ｂ１１，Ｂ１２）についての画素（８行１６列の画素）を、８行８列に配置された６４個の画素にまとめてしまっている（横方向に間引きもしくは平均化される）。また、図１２(c) は、ＪＰＥＧ（ＹＵＶ４２０）と呼ばれているフォーマットを示すものである。輝度値Ｙについては、それぞれが８行８列に配置された６４個の画素によって構成されているが、色成分値Ｃｂ，Ｃｒについては、４つのブロック（たとえば、Ｂ１１，Ｂ１２，Ｂ２１，Ｂ２２）についての画素（１６行１６列の画素）を、８行８列に配置された６４個の画素にまとめてしまっている（縦横方向ともに、間引きもしくは平均化される）。
【００７８】
上述したＪＰＥＧ方式をはじめ、様々なデータ圧縮方式が公知であるが、従来の一般的なデータ圧縮方式は、圧縮対象となる画像データをファイル単位で一括して圧縮し、これを伸張することを前提としているため、ある特定の一部分のみを選択的に伸張することはできない。たとえば、図１１に示す例の場合、素材画像Ｍを構成する画像は、個々のブロックＢ１１，Ｂ１２，Ｂ１３，... といった単位で圧縮されるものの、最終的に得られる圧縮された素材画像Ｍ＊は、個々のブロックについての圧縮データを羅列したものになるため、特定のブロックの部分のみを選択的に伸張することはできない。
【００７９】
特定の部分（単位領域）のみを選択的に伸張することができるようにするには、１つの単位圧縮データとこれに後続する次の単位圧縮データとの間に区切りを示す情報を付加しておく必要がある。そこで、以下に述べる本願実施例では、素材画像格納部１１０には、個々の単位領域についての単位圧縮データと、個々の単位圧縮データの間に介挿された区切情報データと、を有する画像データとして、個々の素材画像を格納するようにしている。
【００８０】
図１３は、圧縮された素材画像Ｍ＊のフォーマットを、従来例および本願実施例を対比させて示す平面図である。図１３(a) は、従来の一般的なフォーマット例を示している。この例の場合、圧縮データＭ＊の前にヘッダ部Ｈが付加され、後にフッタ部Ｆが付加されている。通常、ヘッダ部Ｈには、圧縮に用いたフォーマットを示すコード、全データ容量、素材画像の縦横のサイズなどの情報が書き込まれ、フッタ部Ｆには、ファイルの終端を示すコード（ＥＯＦ）が書き込まれる。ヘッダ部Ｈとフッタ部Ｆに挟まれた部分が、圧縮された素材画像Ｍ＊の本体部分であるが、ここには、もとの素材画像Ｍのデータファイル全体を圧縮することによって得られたデータがそのまま収容される。
【００８１】
これに対して、図１３(b) は、本発明の一実施例に係るフォーマットを示している。ここで、ヘッダ部Ｈおよびフッタ部Ｆの構成は従来のフォーマットと同様であるが、圧縮された素材画像Ｍ＊の本体部分は、個々の単位圧縮データの間に区切情報データを挿入したものになっている。すなわち、区切情報データＤ（１），Ｄ（２），... ，Ｄ（Ｋ）は、個々の単位圧縮データＭ（１）＊，Ｍ（２）＊，... ，Ｍ（Ｋ）＊の間の区切りを示すデータになっている。データ伸張部１４０は、この区切情報データに基づいて単位圧縮データ間の区切り位置を認識し、伸張対象として指示された特定の単位領域に対する伸張処理を行うことができる。
【００８２】
たとえば、図１１に示す例において、素材画像Ｍを構成する１ブロック行を１単位領域Ｕに設定した場合を考えてみよう。この場合、各単位領域Ｕの縦幅ｕ＝８画素ということになり、第１の単位領域Ｕ１は、ブロックＢ１１〜Ｂ１ｚで構成される領域、第２の単位領域Ｕ２は、ブロックＢ２１〜Ｂ２ｚで構成される領域ということになる。そして、図１３(b) に示す単位圧縮データＭ（１）＊は、ブロックＢ１１〜Ｂ１ｚからなる単位画像を圧縮して得られるデータであり、単位圧縮データＭ（２）＊は、ブロックＢ２１〜Ｂ２ｚからなる単位画像を圧縮して得られるデータということになる。
【００８３】
したがって、図１１に示す素材画像Ｍのうち、第２の単位領域Ｕ２（ブロックＢ２１〜Ｂ２ｚ）の部分のみを伸張する旨の指示を受けた場合、データ伸張部１４０は、この圧縮された素材画像Ｍ＊をヘッダ部Ｈから順次読み取ってゆき、区切情報データＤ（１）を１つ目の区切りとして認識し、区切情報データＤ（２）を２つ目の区切りとして認識した後に、これに後続する単位圧縮データＭ（２）＊の部分（３つ目の区切情報データＤ（３）の直前まで）を伸張対象として把握し、この伸張対象となる部分のみを伸張して第２の単位領域Ｕ２内の単位画像Ｍ（２）を得ることができる。
【００８４】
なお、区切情報データＤとしては、単位圧縮データとしては用いられることがない特殊コードからなるマーカを用いるようにすればよい。たとえば、圧縮方式としてＪＰＥＧ方式を採用した場合、圧縮後のデータ自身としては「ＦＦｍｍ」なる２バイトコード（但し、ｍｍは、００以外の１バイトコードで、「マーカ種」と呼ばれる）が用いられることはない。そこで、この「ＦＦｍｍ」なる特殊コードをマーカとして用いるようにすれば、データ伸張部１４０は、ヘッダ部Ｈに後続するデータを１バイトずつチェックしてゆき、「ＦＦｍｍ」に遭遇した場合に、これをマーカとして検出することができ、単位圧縮データ間の区切り位置を認識することができる。
【００８５】
図１４は、図６の左に示す素材画像Ｍ１についての圧縮データのフォーマットを、従来例と本願実施例とを対比させた形で示す平面図である。図６の左に示す素材画像Ｍ１を各単位領域Ｕ１〜ＵＫに分け、各単位画像Ｍ１（１）〜Ｍ１（Ｋ）に対して圧縮処理を施せば、図６の右に示すような単位圧縮データＭ１（１）＊〜Ｍ１（Ｋ）＊が得られることは§１で述べたとおりである。
【００８６】
従来の一般的なフォーマットでは、図１４(a) に示すように、単位圧縮データＭ１（１）＊〜Ｍ１（Ｋ）＊（前述したとおり、これらは不定長のデータになる）を羅列したデータ群を、ヘッダ部Ｈとフッタ部Ｆとの間に挟み込んだ形式のデータが、圧縮された素材画像Ｍ＊のデータファイルになる。図１４(a) では、説明の便宜上、個々の単位圧縮データＭ１（１）＊，Ｍ１（２）＊，Ｍ１（３）＊，... の間に区切り線が描かれているが、実際には、このような区切りの情報は含まれていない。したがって、伸張処理を行う際には、ヘッダ部Ｈに後続するデータを先頭から順次伸張してゆく処理を行わざるを得ず、結果的に、圧縮された素材画像Ｍ＊のデータファイル全体を伸張せざるを得ない。
【００８７】
これに対して、本発明の実施例に係るフォーマットでは、図１４(b) に示すように、各単位圧縮データＭ１（１）＊〜Ｍ１（Ｋ）＊の間に、それぞれ区切情報データＤ（１）〜Ｄ（Ｋ）が挿入されているので（ヘッダ部Ｈに後続する区切情報データＤ（１）は省略可）、データ伸張部１４０は、各単位圧縮データＭ１（１）＊〜Ｍ１（Ｋ）＊の区切りを認識し、指定された任意の単位圧縮データのみを独立して伸張することができる。たとえば、各区切情報データＤ（１）〜Ｄ（Ｋ）として、特殊コード「ＦＦｍｍ」なる２バイトのマーカを記録しておけば、「ＦＦｍｍ」なるデータに遭遇した時点で区切りの認識が可能になる。
【００８８】
具体的には、第ｋ番目の単位領域Ｕｋに対応する単位画像を伸張する旨の指示が与えられた場合、ヘッダ部Ｈに後続するデータを順に読み込んでゆき、第ｋ回目の「ＦＦｍｍ」に遭遇した後から、第（ｋ＋１）回目の「ＦＦｍｍ」（もしくは、フッタ部Ｆ）に遭遇するまでの間のデータを単位圧縮データＭ１（ｋ）＊として抽出し、これを伸張する処理を行えばよい。各区切情報データＤとしては、特殊コード「ＦＦｍｍ」なるマーカなど、たかだか２バイト程度のデータを用いればよいので、図１４(a) に示すフォーマットの代わりに図１４(b) に示すフォーマットを用いても、圧縮されたデータファイルの全体の容量はそれほど変わらない。
【００８９】
なお、区切情報データＤには、マーカ以外の付加情報を組み込むことも可能である。たとえば、マーカとなる特殊コード「ＦＦｍｍ」に任意の数バイトのコード「ｘｘ」を付加して、「ＦＦｍｍｘｘ」なるデータを区切情報データＤとして用いるようにすれば、付加コード「ｘｘ」の部分によって、付加的な情報を伝達することができる。
【００９０】
たとえば、図１５は、付加コード「ｘｘ」として、後続する単位圧縮データのデータサイズを示すサイズ情報を付加したフォーマットの例を示す平面図である。図示のとおり、第ｋ番目の区切情報データＤ（ｋ）は、マーカとして機能する２バイトコード「ＦＦｍｍ」とサイズ情報Ｓ（ｋ）とによって構成されている。ここで、サイズ情報Ｓ（ｋ）は、後続する単位圧縮データＭ（ｋ）＊のデータサイズを示している。同様に、第（ｋ＋１）番目の区切情報データＤ（ｋ＋１）は、マーカとして機能する２バイトコード「ＦＦｍｍ」とサイズ情報Ｓ（ｋ＋１）とによって構成されている。ここで、サイズ情報Ｓ（ｋ＋１）は、後続する単位圧縮データＭ（ｋ＋１）＊のデータサイズを示している。
【００９１】
このように、区切情報データＤ（ｋ）が、後続する単位圧縮データＭ（ｋ）＊のデータサイズを示すサイズ情報Ｓ（ｋ）を含んでいれば、データ伸張部１４０は、このサイズ情報に基づいて、次の区切情報データのアドレスを認識してこれにアクセスすることができるので、マーカ「ＦＦｍｍ」を探すために単位圧縮データを１バイトずつチェックする作業を省略することができる。
【００９２】
前述したとおり、ここに示す実施形態の場合、素材画像格納部１１０はＲＯＭによって構成されているので、このＲＯＭのアドレス空間上の所定のアドレスが認識できれば、当該アドレスのデータにアクセスすることができる。したがって、たとえば、図１５に示す例の場合、第ｋ番目の区切情報データＤ（ｋ）のマーカ「ＦＦｍｍ」が検出できれば、続くサイズ情報Ｓ（ｋ）を参照することにより（サイズ情報Ｓ（ｋ）のデータ長は、予め定めておく）、単位圧縮データＭ（ｋ）＊を読み飛ばし、直ちに第（ｋ＋１）番目の区切情報データＤ（ｋ＋１）のマーカ「ＦＦｍｍ」の検出ができる。このような検索方法を採れば、区切情報データＤの部分のみを飛び飛びに読み込みながら、指定された単位圧縮データに辿り着くことができ、効率的な検索が可能になる。
【００９３】
一方、図１６は、付加コード「ｘｘ」として、次の区切情報データの位置を示すアドレス情報を付加したフォーマットの例を示す平面図である。この例では、第ｋ番目の区切情報データＤ（ｋ）は、マーカとして機能する２バイトコード「ＦＦｍｍ」とアドレス情報Ａ（ｋ＋１）とによって構成されている。ここで、アドレス情報Ａ（ｋ＋１）は、次の区切情報データＤ（ｋ＋１）の先頭アドレスを示している。同様に、第（ｋ＋１）番目の区切情報データＤ（ｋ＋１）は、マーカとして機能する２バイトコード「ＦＦｍｍ」とアドレス情報Ａ（ｋ＋２）とによって構成されている。ここで、アドレス情報Ａ（ｋ＋２）は、次の区切情報データＤ（ｋ＋２）の先頭アドレスを示している。
【００９４】
このように、区切情報データＤ（ｋ）が、次の区切情報データＤ（ｋ＋１）の位置を示すアドレス情報Ａ（ｋ＋１）を含んでいれば、データ伸張部１４０は、このアドレス情報に基づいて、次の区切情報データにアクセスすることができるので、マーカ「ＦＦｍｍ」を探すために単位圧縮データを１バイトずつチェックする作業を省略することができる。たとえば、図１６に示す例の場合、第ｋ番目の区切情報データＤ（ｋ）のマーカ「ＦＦｍｍ」が検出できれば、続くアドレス情報Ａ（ｋ＋１）を参照することにより（アドレス情報Ａ（ｋ＋１）のデータ長は、予め定めておく）、単位圧縮データＭ（ｋ）＊を読み飛ばし、直ちに第（ｋ＋１）番目の区切情報データＤ（ｋ＋１）のマーカ「ＦＦｍｍ」の検出ができる。このような検索方法を採れば、区切情報データＤの部分のみを飛び飛びに読み込みながら、指定された単位圧縮データに辿り着くことができ、効率的な検索が可能になる。
【００９５】
図１５に示す実施例では、次の区切情報データＤ（ｋ＋１）の先頭アドレスを認識するために、現アドレスにサイズ情報Ｓ（ｋ）に基づく値を加算する演算が必要になるが、図１６に示す例の場合は、次の区切情報データＤ（ｋ＋１）の先頭アドレスＡ（ｋ＋１）が直接記録されているので、そのような演算は不要になるというメリットがある。ただ、大量の素材画像を用意しておく必要がある場合、素材画像格納部１１０として機能するＲＯＭのアドレス空間も大きくなり、ＲＯＭのアドレス長はそれだけ長くなる。したがって、アドレス情報を含む区切情報データのデータ長も長くなってしまうというデメリットがあるので、そのような場合は図１５に示す実施例を採るのが好ましい。
【００９６】
図１７に示す実施例は、別なアプローチに基づくフォーマットを示すものである。既に述べたとおり、圧縮された素材画像Ｍ＊のデータファイルの先頭にはヘッダ部Ｈが付加されている。ここに示す実施例は、このヘッダ部Ｈに個々の単位領域についての単位圧縮データの先頭アドレスを示すアドレス情報を書き込むようにしたものである。図示のＡ（１），Ａ（２），Ａ（３），,,, ，Ａ（ｋ），... は、それぞれ単位圧縮データＭ（１）＊，Ｍ（２）＊，Ｍ（３）＊，,,, ，Ｍ（ｋ）＊，... の先頭アドレスを示すアドレス情報である。この実施例では、これらのアドレス情報を一括して、ヘッダ部Ｈに書き込むようにしている。
【００９７】
したがって、データ伸張部１４０は、このヘッダ部Ｈに書き込まれているアドレス情報に基づいて、必要な単位領域内の画像データへアクセスすることが可能になる。たとえば、第ｋ番目の単位領域Ｕｋに対応する単位画像Ｍ（ｋ）を伸張する旨の指示が与えられた場合、データ伸張部１４０は、ヘッダ部Ｈのアドレス情報を参照することにより、第ｋ番目の単位圧縮データＭ（ｋ）＊の先頭アドレスＡ（ｋ）および第（ｋ＋１）番目の単位圧縮データＭ（ｋ＋１）＊の先頭アドレスＡ（ｋ＋１）を認識した上で、アドレスＡ（ｋ）〜Ａ（ｋ＋１）の直前までのデータを読み出し、これを伸張する処理を行えばよい。
【００９８】
図１７に示す例では、各単位圧縮データ間に区切情報データを介挿していないが、もちろん、マーカが記録された区切情報データを介挿するようにしてもよい。この場合、第ｋ番目の単位圧縮データＭ（ｋ）＊の先頭アドレスＡ（ｋ）のみを認識し、当該先頭アドレスＡ（ｋ）から次の単位圧縮データのマーカ直前までのデータを読み出せばよい。
【００９９】
＜＜＜  §３．  コントローラ部の処理  ＞＞＞
続いて、図１に示す合成画像作成装置１００におけるコントローラ部１３０の具体的な処理手順を述べる。ここでは、図１８に示すとおり、合成画像Ｐを、縦幅ｑをもった４組の部分画像Ｑ１〜Ｑ４に分割し、コントローラ部１３０が、個々の部分画像Ｑ１〜Ｑ４を部分画像メモリ内に生成するための指示を、順次、データ伸張部１４０および合成処理部１５０に与える場合を考えてみる。
【０１００】
図示のとおり、合成画像Ｐの左上隅点に原点Ｏをとり、図の右方向にＸ軸、下方向にＹ軸をとった二次元ＸＹ座標系を定義すれば、各部分画像Ｑ１〜Ｑ４の左上隅点の座標値は、それぞれＯ（０，０），Ｇ（０，ｑ），Ｇ（０，２ｑ），Ｇ（０，３ｑ）で表される。一般に、第ｉ番目の部分画像Ｑｉの左上隅点の座標値は、Ｇ（０，（ｉ−１）×ｑ）、左下隅点の座標値は、Ｇ（０，ｉ×ｑ）になる。コントローラ部１３０は、部分画像Ｑｉについての処理を行う際に、まず、この隅点の座標値を利用して、個々の素材画像が部分画像Ｑｉ内に含まれているか否かを判定する処理を行うことができる。含まれていると判定された素材画像については、更に、当該素材画像のどの単位領域が含まれているかを調べる処理を行い、該当する単位領域を伸張領域として、データ伸張部１４０に対して伸張処理を行う指示を与える。
【０１０１】
図１９は、第ｉ番目の部分画像Ｑｉ内に第ｊ番目の素材画像Ｍｊが含まれるか否かを判定する判定法の一例を示す平面図である。判定は、素材画像Ｍｊの配置位置を示す配置基準点Ｌｊ（素材画像Ｍｊの左上隅点）の座標値（ｘｊ，ｙｊ）と部分画像Ｑｉの左下隅点の座標値（０，ｉ×ｑ）とを比較することによって行われる。具体的には、それぞれのＹ座標値を比較して、「ｙｊ＜ｉ×ｑ（式（１））」が満足されれば、部分画像Ｑｉ内に素材画像Ｍｊが含まれる可能性がある、と判断することができる。逆に、上記式（１）が満足されなければ、部分画像Ｑｉの処理に関して素材画像Ｍｊは考慮する必要がないことになる。
【０１０２】
上記式（１）が満足された場合は、続いて、素材画像Ｍｊ内のどの単位領域が部分画像Ｑｉ内に含まれるかが調べられ（一部が含まれる場合も含む）、含まれる単位領域内の単位画像が伸張対象として指定される。図１９に示す例の場合、部分画像Ｑｉの形成面上に割り付けられる素材画像Ｍｊは、縦幅ｍ×ｖｊ、横幅ｍ×ｈｊの大きさをもっている。ここで、ｖｊおよびｈｊは、素材画像格納部１１０内に格納されている元の素材画像の縦および横のサイズであり、ｍは合成画像作成コマンドＣで指定された割付倍率である。また、部分画像Ｑｉの形成面上に割付後の各単位領域の縦幅は、ｍ×ｕで与えられる。
【０１０３】
したがって、ｙｊ＋ｋ×ｍ×ｕ＜ｉ×ｑ＋ｍ×ｕを満たす整数ｋの最大値ｋmaxを求めれば、第１番目〜第ｋmax番目の単位領域が伸張対象ということになる。図示の例の場合、ｋmax＝４になるため、ハッチングを施して示した第１〜第４の単位領域内の画像が伸張対象になる。
【０１０４】
なお、上の例では、Ｘ軸方向に関する割付位置に関するチェックは行っていないが、必要な場合は、座標値ｘｊおよび横幅ｍ×ｈｊを考慮して、素材画像Ｍｊが部分画像Ｑｉの横幅の範囲内に位置するか否かの判定も行うようにすればよい。もちろん、否定的な判定結果が得られた場合には、部分画像Ｑｉの処理に関して素材画像Ｍｊは考慮する必要がないことになる。
【０１０５】
図２０は、部分画像Ｑｉと素材画像Ｍｊとの別な位置関係を示す平面図である。図１９に示す例では、配置基準点Ｌｊが部分画像Ｑｉの内部に位置していたが、図２０に示す例では、配置基準点Ｌｊが部分画像Ｑｉの外部上方に位置している。このような位置関係にある場合、伸張対象とすべき単位領域は、位置ξ１〜ξ２の間に位置するハッチングを施した単位領域、すなわち、第（α＋１）番目〜第β番目の単位領域になる。別言すれば、第１番目〜第α番目の単位領域は、伸張対象から除外するべきである。もちろん、除外しなくても、合成処理部１５０は、部分画像Ｑｉ外の画像データについての書込処理は行わないので、処理に支障が生じるわけではないが、無駄な伸張処理が行われることになる。
【０１０６】
そこで、実用上は、上記式（１）「ｙｊ＜ｉ×ｑ」の判定を行い、肯定的な判定結果が得られた場合には、続いて図２０の式（２）「ｙｊ≦（ｉ−１）×ｑ−ｍ×ｕ」の判定を行うようにすればよい。式（２）は、部分画像Ｑｉの外部上方に、伸張対象から除外すべき単位領域が存在するか否かを判定するための条件式になっており、当該条件式が満足された場合、除外すべき単位領域が少なくとも１つ存在することになる。
【０１０７】
図２０の式（３）「（ｉ−１）×ｑ−ｍ×ｕ＜（ｙｊ＋α×ｍ×ｕ）≦（ｉ−１）×ｑ」は、式（２）が満足された場合に、伸張対象から除外すべき単位領域を求めるための式である。ここで、（ｙｊ＋α×ｍ×ｕ）は、位置ξ１のＹ座標に対応する値であり、結局、式（３）は、位置ξ１が、「（ｉ−１）×ｑ−ｍ×ｕ」の位置よりも下にあり、「（ｉ−１）×ｑ」の位置もしくはそれより上にある、という条件を示していることになる。そこで、式（３）を満足する整数αを求め、第１番目〜第α番目の単位領域まで読み飛ばし、第（α＋１）番目の単位領域から第β番目の単位領域まで順次処理を行えば、図２０にハッチングを施して示す単位領域についての処理が完了する。
【０１０８】
このとき、値βは、図２０の式（４）「ｉ×ｑ≦（ｙｊ＋β×ｍ×ｕ）＜ｉ×ｑ＋ｍ×ｕ」を満足する整数として求めることができる。ここで、（ｙｊ＋β×ｍ×ｕ）は、位置ξ２のＹ座標に対応する値であり、結局、式（４）は、位置ξ２が、「ｉ×ｑ」の位置もしくはそれより下にあり、「ｉ×ｑ＋ｍ×ｕ」の位置よりも上にある、という条件を示していることになる。式（２）を満たさない場合は、第１番目の単位領域から第β番目の単位領域までを伸張対象とすればよい。
【０１０９】
なお、図１に示すコントローラ部１３０には、ステータスバッファ１３１が組み込まれている。このステータスバッファ１３１は、第ｉ番目の部分画像Ｑｉを生成する際に行った処理に関する履歴情報を格納する機能を有しており、コントローラ部１３０は、第（ｉ＋１）番目の部分画像Ｑ（ｉ＋１）を生成する際に、このステータスバッファ１３１に格納されている履歴情報を利用した処理を行うことができる。
【０１１０】
たとえば、図２０に示す例は、第ｉ番目の部分画像Ｑｉに関して、第ｊ番目の素材画像Ｍｊについての処理を行う例であり、素材画像Ｍｊの第（α＋１）番目〜第β番目の単位領域内の画像を、所定の部分画像メモリの所定の目標アドレスに書き込む処理が行われる。このとき、第β番目の単位領域についての処理が完了すると、素材画像Ｍｊに関する処理はそこで終了し、続いて、第（ｊ＋１）番目の素材画像Ｍ（ｊ＋１）に関する処理に移行する。別言すれば、素材画像Ｍｊについての第（β＋１）番目以降の単位領域についての処理は行われない。
【０１１１】
そこで、第ｉ番目の部分画像Ｑｉに関する処理において、素材画像Ｍｊについては第β番目の単位領域までで処理が中断した旨の履歴情報をステータスバッファ１３１に格納しておくようにすれば、後に、第（ｉ＋１）番目の部分画像Ｑ（ｉ＋１）に関する処理を行う際に、当該履歴情報を利用した処理が可能になる。具体的には、部分画像Ｑ（ｉ＋１）に関する処理では、素材画像Ｍｊは必ず処理対象となるので（すなわち、素材画像Ｍｊを構成する少なくとも１つの単位領域が部分画像Ｑ（ｉ＋１）内に含まれているので）、素材画像Ｍｊに関しては、式（１）の条件判定を省略することができる。
【０１１２】
また、第ｉ番目の部分画像Ｑｉに関する処理における素材画像Ｍｊについての履歴情報として、第β番目の単位領域の一部についての書込処理を行った旨の情報をステータスバッファ１３１に格納しておけば、部分画像Ｑ（ｉ＋１）に関する素材画像Ｍｊについて処理を、第β番目の単位領域から続行することが可能になるので、式（２）や式（３）の条件判定も省略することができる。
【０１１３】
この他、ステータスバッファ１３１には、各素材画像の縦幅や横幅、割付倍率ｍなど、繰り返し利用される様々なデータを格納しておくことができ、これらのデータを利用することにより、コントローラ部１３０の処理を効率化することができる。
【０１１４】
図２１は、上述した基本方針に基づいて、コントローラ部１３０が実行する処理手順を示す流れ図である。まず、ステップＳ１において、部分画像Ｑの番号を示すパラメータｉが初期値１に設定される。続くステップＳ２では、第ｉ番目の部分画像Ｑｉについての処理が開始する。すなわち、コントローラ部１３０は、合成処理部１５０に対して、１つの部分画像メモリを作業場所に指定する。図１に示す例の場合、一対の部分画像メモリ１７１，１７２が用意されているので、パラメータｉが奇数値の場合は部分画像メモリ１７１を作業場所として指定し、パラメータｉが偶数値の場合は部分画像メモリ１７２を作業場所として指定すればよい。そうすれば、個々の部分画像ごとに、部分画像メモリ１７１もしくは１７２が交互に指定されることになる。
【０１１５】
次のステップＳ３では、素材画像Ｍの番号を示すパラメータｊが初期値１に設定される。そして、ステップＳ４において、第ｉ番目の部分画像Ｑｉ内に第ｊ番目の素材画像が含まれているか否かの判定が行われる。具体的には、図１９の式（１）の条件判定が行われる。肯定的な判定が行われた場合には、ステップＳ５へと進み、伸張対象となる単位領域を認識し、データ伸張部１４０に対して、これら伸張対象についての伸張処理を指示する。具体的には、図２０の式（２）〜式（４）に基づいて、伸張対象となる単位領域（図示の例の場合、第（α＋１）番目〜第β番目の単位領域）の認識が行われる。
【０１１６】
そして、ステップＳ６では、伸張された画像データについて、目標アドレスを決定するための情報を合成処理部１５０に与える処理が行われる。具体的には、図２０に示す例の場合、素材画像Ｍｊについての配置基準点Ｌｊの座標値（ｘｊ，ｙｊ）および割付倍率ｍが合成処理部１５０に与えられる。また、合成処理部１５０内に、各単位領域の縦幅ｕや部分画像Ｑｉの縦幅ｑの情報が登録されていない場合には、必要に応じてこれらの情報も与えるようにする。合成処理部１５０は、これらの情報に基づいて、データ伸張部１４０が伸張した画像データを、作業場所として指定された部分画像メモリの目標アドレスに書き込む処理を行う。
【０１１７】
続いて、ステップＳ７において、これまでの処理の履歴情報をステータスバッファ１３１に保存する処理が行われる。前述したとおり、ここで保存された履歴情報は、パラメータｉを更新した後に行われるステップＳ４，Ｓ５の処理で利用され、処理の効率化が図られる。
【０１１８】
ステップＳ８では、合成画像作成コマンドＣで指定されている全素材についての処理が終了したか否かが判断され、肯定的な判断がなされるまで、ステップＳ９を経てパラメータｊが更新され、ステップＳ４からの処理が繰り返し実行される。なお、合成画像作成コマンドＣにおいて、複数の素材画像についての奥行き方向に関する配置順序が指定されている場合には、奥から手前に向かう配置順序に従って各素材画像Ｍの番号を示すパラメータｊが付されるようにする。
【０１１９】
ステップＳ８で肯定的な判断がなされると、第ｉ番目の部分画像Ｑｉについての処理は終了である。§１で述べたとおり、部分画像メモリ１７１もしくは１７２上に部分画像Ｑｉが作成されると、データ出力部１６０によって、当該部分画像Ｑｉは合成画像Ｐの一部として外部へ出力される。
【０１２０】
続くステップＳ１０では、全部分画像についての処理が終了したか否かが判断され、肯定的な判断がなされるまで、ステップＳ１１を経てパラメータｉが更新され、ステップＳ２からの処理が繰り返し実行される。こうして、ステップＳ１０で肯定的な判断がなされると、合成画像作成コマンドＣに基づく合成画像Ｐの作成作業は完了する。
【０１２１】
＜＜＜  §４．  種々の変形例  ＞＞＞
以上、本発明の基本的実施形態に係る合成画像作成装置１００の構成および動作を、§１〜§３に渡って述べたが、最後に、本発明の変形例をいくつか述べておく。
【０１２２】
＜４−１．  マスク画像の併用＞
これまでの実施形態では、素材画像格納部１１０内に圧縮された状態で格納される素材画像として、図２に示すような素材画像Ｍ１〜Ｍ４を用いた例を示した。これらの素材画像は、樹木、鳥、小屋、犬などのモチーフとなる絵柄を包摂矩形Ｒ１〜Ｒ４に収容した矩形状の画像によって構成されている。通常、画像データは、このような矩形状のデータとして取り扱うのが一般的であるが、これら素材画像Ｍ１〜Ｍ４を用いて、図３に示すような合成画像Ｐを得るためには、各素材画像について、前景領域（モチーフとなる絵柄部分）と背景領域とを区別し、前景領域のみを抽出して利用する必要がある。
【０１２３】
前景領域と背景領域とを区別するには、たとえば、背景領域の画素に、前景領域には用いられていない固有の画素値を与える等の方法を採ることができるが、素材画像とは別個にマスク画像を用意する方法を採ってもよい。図２２は素材画像とそのマスク画像とを対比して示す平面図である。図２２(a) は、図２に示す素材画像Ｍ１と同じ樹木をモチーフとした素材画像である。樹木のモチーフは、包摂矩形Ｒ内に収容されており、全体としては矩形状の画像を構成している。ここで、本来の素材は、モチーフとなっている樹木を構成する前景領域Ｐｆの部分であり、背景領域Ｐｂの部分は、合成画像Ｐを作成する上では不要である。
【０１２４】
そこで、図２２(b) に示すようなマスク画像を用意する。このマスク画像は、画素値「０」をもった画素の集合からなる領域（図の白地領域）と、画素値「１」をもった画素の集合からなる領域（図のハッチング領域）とによって構成される二値画像であり、前者は、図２２(a) における前景領域を示し、後者は、図２２(a) における背景領域を示している。この図２２(b) に示すマスク画像は、図２２(a) に示す素材画像の背景領域Ｐｂを隠蔽する機能を有する。
【０１２５】
素材画像格納部１１０内に、図２２(a) に示すような前景領域Ｐｆと背景領域Ｐｂとによって構成される素材画像とともに、図２２(b) に示すようなマスク画像を、いずれも圧縮された画像データとして格納しておくようにし、データ伸張部１４０が、このマスク画像を含めた伸張処理を行うようにすれば、合成処理部１５０は、このマスク画像を用いて前景領域Ｐｆと背景領域Ｐｂとを区別し、前景領域Ｐｆについてのみ書込処理を行うことができる。
【０１２６】
＜４−２．  画像のブレンド処理＞
§１では、図３に示す合成画像Ｐを作成する際に、樹木→鳥→小屋→犬の順に奥から配置する作業手順を説明した。この例では、樹木、小屋、犬が相互に重なりを生じており、重なり合った部分については、後から処理される素材画像の内容を部分画像メモリ上に書き込む処理を行うことにより、手前に位置する素材画像に置き換えられることになる。一般的な素材であれば、このように、奥に位置する素材画像から順に書込処理（メモリへの上書き処理）を行ってゆくようにすれば、重なり具合に矛盾のない合成画像を作成することができる。
【０１２７】
しかしながら、必要に応じて、個々の素材画像に透明度というパラメータを設定し、奥に配置された素材画像が透けて見えるような合成画像を作成することも可能である。具体的には、コマンド入力部１２０が、複数の素材画像についての奥行き方向に関する配置順序と、個々の素材画像についての透明度と、を含む合成画像作成コマンドＣを入力できるようにしておき、合成処理部１５０が、奥から手前に向かう配置順序に従って複数の素材画像についての処理順を定め、当該処理順に従って個々の素材画像ごとに透明度を考慮した合成演算をともなう書換処理を実行してゆくようにすればよい。
【０１２８】
ここで、透明度を考慮した合成演算は、一般にブレンド処理と呼ばれている演算であり、部分画像メモリ上に記録されている既存の画素値（第（ｊ−１）番目以前の素材画像についての処理で記録された画素値）と、現在の処理対象となる素材画像についての画素値（第ｊ番目の素材画像についての画素値）とをブレンドすることによって、新たな画素値（ここでは、ブレンド値と呼ぶことにする）を求める演算である。
【０１２９】
図２３は、このブレンド処理の具体例を示す平面図である。この例は、図４に示す部分画像Ｑ３を作成するプロセスの最終段階を示すものである。すなわち、既に素材画像Ｍ１（樹木）の上に素材画像Ｍ３（小屋）を配置する処理が完了している状態において、更に、素材画像Ｍ４（犬）を配置する処理を行うプロセスを示している。ここでは、この素材画像Ｍ４（犬）に透明度Ｔが設定されていたものとしよう。この透明度Ｔは、０≦Ｔ＜１の間の値をとるパラメータであり、Ｔ＝０の場合は、奥に配置された素材画像が全く透けて見えない状態を示し、Ｔが１に近づくほど、奥に配置された素材画像が透けて見える割合が増えることになる。図２３に示す例の場合、犬の絵柄の奥に小屋の絵柄が透けて見えることになる。
【０１３０】
これまで述べてきた実施形態は、Ｔ＝０の場合の例であり、素材画像Ｍ４（犬）についての処理を行うと、部分画像メモリ上では、この素材画像Ｍ４（犬）の情報が新たに書き込まれ、既存の素材画像Ｍ３（小屋）の情報は失われることになる。たとえば、図２３に示す例の場合、部分画像メモリ上に記録されていた部分画像Ｑ３の画素Ｅ１の位置には、素材画像Ｍ４（犬）の画素Ｅ２の新たな画素値が書き込まれることになる。
【０１３１】
すなわち、これまで述べてきた実施形態の場合、第ｊ番目の素材画像Ｍｊについての処理とは、当該素材画像Ｍｊを構成する個々の画素の画素値を、部分画像メモリ上の所定の目標アドレスに書き込む「書込処理」と言うことができる。この「書込処理」では、目標アドレスに保存されていた既存の画素値（第（ｊ−１）番目の素材画像Ｍ（ｊ−１）についての処理を行った時点の画素値）は何ら参照されることはない。
【０１３２】
これに対して、ここで述べる変形例では、図２３に示すように、部分画像メモリ上の目標アドレスに位置する画素Ｅ１の画素値（ここでは、同じ符号Ｅ１で示す）と、当該目標アドレスに記録すべき素材画像Ｍ４上の画素Ｅ２の画素値（ここでは、同じ符号Ｅ２で示す）とについて、透明度を考慮したブレンド処理を行い、得られた新たな画素値Ｅ３によって、画素Ｅ１の画素値Ｅ１を書き換える「書換処理」と言うことができる。ここで、ブレンド処理としては、たとえば、Ｅ３＝Ｔ・Ｅ１＋（１−Ｔ）・Ｅ２なる演算に基づいて新たな画素値Ｅ３を求める処理を行えばよい。もちろん、合成画像作成コマンドにおいて、透明度の指定とともに、ブレンド処理の方法を指定できるようにしておき、指定された方法に基づくブレンド処理が行われるようにしてもよい。
【０１３３】
要するに、これまでの実施形態では、合成処理部１５０は、データ伸張部１４０によって伸張された画像データを、作業場所として指定された部分画像メモリ上の所定の目標アドレスに保存する「書込処理」（既存データとは無関係に新たなデータを書き込む処理）を行っていたが、ここで述べる変形例の場合、合成処理部１５０は、データ伸張部１４０によって伸張された画像データと目標アドレスに保存されていた既存の画像データとについて所定の合成演算（たとえば、上記ブレンド処理の演算）を行った上で、得られた新たな画像データを当該目標アドレスに保存する「書換処理」（既存データと新たなデータとを合成して既存データを書き換える処理）を行うことになる。
【０１３４】
＜４−３．  部分画像メモリの選択法＞
図１に示す基本的な実施形態に係る合成画像作成装置１００には、２組の部分画像メモリ１７１，１７２が設けられている。このように、部分画像メモリを２組設けている理由は、§１で述べたとおり、両者を交互に利用することにより、一方の部分画像メモリ上で部分画像を作成する処理を実行中に、他方の部分画像メモリ上に既に作成済みの部分画像をデータ出力部１６０を介して外部へ出力できるようにするためである。
【０１３５】
たとえば、第ｉ番目の部分画像Ｑｉが部分画像メモリ１７１上に作成されると、当該部分画像Ｑｉは、データ出力部１６０によって、合成画像Ｐの一部として外部へ出力されることになるが、１バイト単位のデータ列として時系列で出力されるため、部分画像Ｑｉを構成する全データの出力を完了するまでには時間が必要であり、その間、部分画像メモリ１７１は、新たな部分画像を作成する処理に利用することはできない。そこで、もう１組の部分画像メモリ１７２を設けておけば、部分画像メモリ１７１が部分画像Ｑｉを出力中に、第（ｉ＋１）番目の部分画像Ｑ（ｉ＋１）を部分画像メモリ１７２上に作成する処理を並行して行うことが可能になる。
【０１３６】
もちろん、本発明に用いる部分画像メモリの総数は２組に限定されるものではなく、複数Ｎ組であればよいので、３組以上の部分画像メモリを設けるようにしてもかまわない。２組の部分画像メモリを用いた実施形態では、これまで述べたとおり、両者を交互に選択して新たな部分画像の作成に利用することになるが、３組以上の部分画像メモリを用いる場合には、いわゆるローテーションシフトによる順次選択を行いながら、新たな部分画像の作成に利用すればよい。
【０１３７】
具体的には、コントローラ部１３０が、第ｉ番目（１≦ｉ≦Ｍ）の部分画像Ｑｉを生成する際に、ｉをＮで除した剰余ｗを求め、Ｎ個の部分画像メモリのうちの第ｗ番目（但し、ｗ＝０の場合は、第Ｎ番目）の部分画像メモリを作業場所として指定し、データ出力部１６０が、第１番目の部分画像メモリ〜第Ｎ番目の部分画像メモリに生成された部分画像を順番に出力する処理を、全Ｍ個の部分画像Ｑ１〜ＱＭの出力が完了するまで繰り返し実行するようにすればよい。
【０１３８】
もっとも、３組以上の部分画像メモリを設けた場合の作業場所の選択法は、上述したローテーションシフトによる順次選択法に限定されるものではない。要するに、データ出力部１６０が外部にデータを出力途中の部分画像メモリ以外のメモリ（別言すれば、過去に作成された部分画像の出力処理が既に完了したメモリ）を選択すればよい。一般的には、コントローラ部１３０は、第ｉ番目（１≦ｉ≦Ｍ）の部分画像を生成する際に、全Ｎ個の部分画像メモリのうち、第（ｉ−１）番目の部分画像Ｑｉに対して指定されたもの以外の１つ（つまり、直前に作業場所として指定されたもの以外の１つ）を作業場所として選択する指示を合成処理部１５０に与えればよい。
【０１３９】
なお、部分格納メモリの総数Ｎを多くすればするほど、出力終了待ち合わせ時間は短くてすむが、必要な総メモリの容量は大きくなり、製造コストは高騰する。
【０１４０】
＜４−４．  データ伸張部の総数＞
図１に示す基本的な実施形態に係る合成画像作成装置１００には、１組のデータ伸張部１４０のみが設けられているが、複数組のデータ伸張部（デコーダ回路）を設けておけば、より高速な伸張処理が可能になる。たとえば、複数の素材画像を伸張する必要がある場合、複数のデータ伸張部にそれぞれ分担させ、並列処理で伸張を行うようにすれば、伸張処理に要する時間を短縮することができる。
【０１４１】
＜４−５．  ステータスバッファの利用形態＞
§３では、図１に示すコントローラ部１３０に組み込まれているステータスバッファ１３１の機能を簡単に説明したが、ここでは、このステータスバッファ１３１を利用した具体的な処理プロセスを説明しよう。
【０１４２】
いま、図２４に示すように、第１の部分画像Ｑ１を作成するプロセスを考えてみる。図示のとおり、部分画像Ｑ１に対しては、素材画像Ｍ１（樹木）と素材画像Ｍ２（鳥）が割り付けられるが、これらの素材画像は、いずれも部分画像Ｑ１とＱ２の境界線Ｂを跨いで割り付けられる画像である。そこで、ここでは、このように部分画像間の境界線を跨いで割り付けられる素材画像を、跨線素材画像と呼ぶことにする。
【０１４３】
これら跨線素材画像Ｍ１，Ｍ２については、部分画像Ｑ１に関する割付処理を完了した後、引き続いて、部分画像Ｑ２に関する割付処理も行われることになるので、処理の引き継ぎが行われるようにすれば、作業効率を向上させることができる。ステータスバッファ１３１は、この処理の引き継ぎのための情報を一時保存するために利用することができる。すなわち、部分画像Ｑ１を生成する際に行った処理に関する履歴情報をステータスバッファ１３１に格納しておけば、部分画像Ｑ２を生成する際に、当該履歴情報を利用した効率的な処理を行うことができる。
【０１４４】
図２４に示す例の場合、部分画像Ｑ１を生成する処理では、跨線素材画像Ｍ１については、ハッチングを施して示す単位画像Ｍ１（１）〜Ｍ１（４）が処理対象となり、跨線素材画像Ｍ２については、ハッチングを施して示す単位画像Ｍ２（１）〜Ｍ２（２）が処理対象となる。すなわち、これらの単位画像が伸張対象となり、また、部分画像メモリへの書込処理や書換処理の対象となる。
【０１４５】
そこで、コントローラ部１３０が、部分画像Ｑ１を生成する処理を行う際に、跨線素材画像Ｍ１については、境界線Ｂに跨がって配置される境界単位領域Ｍ１（４）の先頭アドレスＡ（Ｍ１（４））をステータスバッファ１３１に記憶し、跨線素材画像Ｍ２については、境界線Ｂに跨がって配置される境界単位領域Ｍ２（２）の先頭アドレスＡ（Ｍ２（２））をステータスバッファ１３１に記憶しておくようにすれば、これらのアドレスを部分画像Ｑ２を生成する処理に利用することができる。
【０１４６】
具体的には、部分画像Ｑ２を生成する処理では、跨線素材画像Ｍ１については、境界単位領域Ｍ１（４）以降の各単位領域についての処理を指示する必要があり、跨線素材画像Ｍ２については、境界単位領域Ｍ２（２）以降の各単位領域についての処理を指示する必要があるが、ステータスバッファ１３１を参照すれば、これら境界単位領域Ｍ１（４），Ｍ２（２）の先頭アドレスＡ（Ｍ１（４）），Ａ（Ｍ２（２））を直ちに入手して、データ伸張部１４０に伝達することが可能になる。
【０１４７】
もちろん、アドレスＡ（Ｍ１（４）），Ａ（Ｍ２（２））は、配置基準点Ｌ１（ｘ１，ｙ１），Ｌ２（ｘ２，ｙ２）の座標値、単位領域の縦幅ｕ、割付倍率ｍ、単位領域の番号ｋを用いた演算を行えば算出することができるが、ステータスバッファ１３１にこれらのアドレスを記憶しておくようにすれば、そのような演算を省略し、より効率的な作業を行うことができる。
【０１４８】
なお、境界単位領域が境界線に接して配置される場合も、ほぼ同様の処理を行えばよい。たとえば、図２４に示す例の代わりに、図２５に示す例を考えてみよう。図２４に示す例では、境界単位領域Ｍ１（４）が境界線Ｂに跨がって配置されていたのに対し、図２５に示す例では、境界単位領域Ｍ１（３）が境界線Ｂの上方に接して配置されている（部分画像Ｑ１，Ｑ２の境界線Ｂが、ちょうど単位領域Ｍ１（３），Ｍ１（４）の境界線にもなっている）。このような場合も、部分画像Ｑ１を生成する処理を行う際に、境界単位領域Ｍ１（３）の先頭アドレスＡ（Ｍ１（３））をステータスバッファ１３１に記憶しておくようにすれば、部分画像Ｑ２を生成する処理を行う際に、この先頭アドレスＡ（Ｍ１（３））を参照して、伸張対象となる単位領域のアドレスを指定することができる。
【０１４９】
なお、この場合、部分画像Ｑ２を生成する処理を行う際に伸張対象となる単位領域は、単位領域Ｍ１（３）ではなく、次の単位領域Ｍ１（４）になるので、ステータスバッファ１３１に記憶されていたアドレスＡ（Ｍ１（３））に基づいて、次の単位領域Ｍ１（４）の先頭アドレスＡ（Ｍ１（４））を求める演算が必要になる。もちろん、部分画像Ｑ１を生成する処理を行う際に、境界線Ｂの下方に接する境界単位領域Ｍ１（４）の先頭アドレスＡ（Ｍ１（４））をステータスバッファ１３１に記憶するようにすれば、部分画像Ｑ２を生成する処理を行う際には、当該先頭アドレスＡ（Ｍ１（４））をそのまま利用することができる。
【０１５０】
結局、この変形例を一般論として説明すれば、コントローラ部１３０が、第ｉ番目の部分画像Ｑｉに関する伸張処理の指示を行う際に、第ｉ番目の部分画像Ｑｉと第（ｉ＋１）番目の部分画像Ｑ（ｉ＋１）との境界線Ｂに跨がって配置される跨線素材画像の境界線Ｂに跨がってもしくは境界線Ｂに接して配置される境界単位領域の先頭アドレスを記憶しておくようにし、第（ｉ＋１）番目の部分画像Ｑ（Ｉ＋１）に関する跨線素材画像についての伸張処理の指示を行う際に、記憶されていた境界単位領域の先頭アドレスを参照して、伸張対象となる単位領域内の画像データのアドレスを指示すればよい。
【０１５１】
＜４−６．  後続する部分画像についての先行処理＞
図２４に示す部分画像Ｑ１を作成するプロセスでは、跨線素材画像Ｍ１については単位画像Ｍ１（１）〜Ｍ１（４）が伸張対象となり、跨線素材画像Ｍ２については単位画像Ｍ２（１）〜Ｍ２（２）が伸張対象となる。したがって、部分画像Ｑ１を作成するプロセスにおいて、データ伸張部１４０は、これら伸張対象についての伸張処理を行い、合成処理部１５０は、作業場所として指定された部分画像メモリに対して、伸張された単位画像の書込処理を行うことになる。
【０１５２】
ただ、これまでの実施形態では、部分画像Ｑ１の領域から食み出した部分のデータはそのまま捨てられる。たとえば、図２４に示す例の場合、単位画像Ｍ１（４）やＭ２（２）は、境界線Ｂに跨がって配置された跨線単位領域について伸張された単位画像であるため、部分画像Ｑ１に含まれる部分（上方部分）については、作業場所となる部分画像メモリに書き込まれることになるが、部分画像Ｑ２に含まれる部分（下方部分）については、そのまま捨てられることになり、部分画像Ｑ１を作成するプロセスにおいて利用されることはない。
【０１５３】
一方、後続して行われる部分画像Ｑ２を作成するプロセスでは、やはり単位画像Ｍ１（４）やＭ２（２）の一部分（下方部分）が必要になるため、同じ跨線単位領域についての伸張処理が再度実行されることになる。このように、伸張処理は、単位領域ごとに行われるため、隣接する部分画像の境界線Ｂに跨がって配置される跨線単位領域については、無駄な処理が生じてしまう。
【０１５４】
ここで述べる変形例は、このような無駄な処理を解消するためのアプローチを示すものである。この変形例を実施する場合、合成処理部１５０は、部分画像Ｑ１を作成するプロセスにおいて、境界線Ｂに跨がって配置される跨線単位領域について伸張された単位画像Ｍ１（４）およびＭ２（２）のうち、部分画像Ｑ１に含まれる部分については、これまで述べてきた実施形態と同様に、部分画像Ｑ１についての作業場所として指定された部分画像メモリに対して書込処理を行い、部分画像Ｑ２に含まれる部分については、部分画像Ｑ２についての作業場所として指定される次段の部分画像メモリに対して先行した書込処理を行うようにする。そうすれば、続いて行われる部分画像Ｑ２を作成するプロセスでは、先行して行われた書込処理の結果を利用した処理を行うことができる。
【０１５５】
たとえば、図２４に示す例において、部分画像Ｑ１についての作業場所として部分画像メモリ１７１が指定され、部分画像Ｑ２についての作業場所として部分画像メモリ１７２が指定された場合を考えてみよう。この場合、部分画像Ｑ１を作成するプロセスでは、跨線素材画像Ｍ１を構成する単位画像Ｍ１（１），Ｍ１（２），Ｍ１（３）およびＭ１（４）の上方部分（境界線Ｂより上の部分）について、部分画像メモリ１７１に対する書込処理が実行されるとともに、単位画像Ｍ１（４）の下方部分（境界線Ｂより下の部分）については、次段の部分画像メモリ１７２に対する先行した書込処理が実行される。また、跨線素材画像Ｍ２を構成する単位画像Ｍ２（１）およびＭ２（２）の上方部分（境界線Ｂより上の部分）について、部分画像メモリ１７１に対する書込処理が実行されるとともに、単位画像Ｍ２（２）の下方部分（境界線Ｂより下の部分）について、次段の部分画像メモリ１７２に対する先行した書込処理が実行される。
【０１５６】
このように、次段の部分画像メモリ１７２に対する先行した書込処理を実行すれば、伸張処理を行って得られた単位画像の一部が無駄になるのを防ぐことができる。すなわち、後続して行われる部分画像Ｑ２を作成するプロセスでは、既に、単位画像Ｍ１（４）の下方部分（境界線Ｂより下の部分）および単位画像Ｍ２（２）の下方部分（境界線Ｂより下の部分）の内容が、部分画像メモリ１７２に書き込まれているので、これらについての再度の伸張処理や書込処理を省略することができる。
【０１５７】
この変形例を一般論として説明すれば、合成処理部１５０が、第ｉ番目の部分画像Ｑｉに関する指示に基づいて書込処理もしくは書換処理を行う際に、第ｉ番目の部分画像Ｑｉと第（ｉ＋１）番目の部分画像Ｑ（ｉ＋１）との境界線Ｂに跨がって配置される跨線素材画像の当該境界線Ｂに跨がって配置される跨線単位領域について伸張された画像データのうち、第（ｉ＋１）番目の部分画像Ｑ（ｉ＋１）に含まれる部分については、第（ｉ＋１）番目の部分画像Ｑ（ｉ＋１）についての作業場所として指定される次段部分画像メモリに対して先行した書込処理もしくは書換処理を行い、第（ｉ＋１）番目の部分画像Ｑ（ｉ＋１）に関する指示に基づいて書込処理もしくは書換処理を行う際に、この先行した書込処理もしくは書換処理の結果を利用した処理を行うようにすればよい。
【０１５８】
もちろん、先行した書込処理もしくは書換処理を行う対象となる次段部分画像メモリは、新たな部分画像を作成する処理の準備が完了した状態（すなわち、過去に作成した部分画像の全データが、データ出力部１６０を介して既に外部に出力されている状態）になっている必要がある。したがって、この変形例を実施する場合、実用上は、部分画像メモリの総数Ｎを３以上に設定し、§４−３で述べたローテーションシフトによる順次選択法により、作業場所の選択を行うようにするのが好ましい。
【０１５９】
なお、部分画像Ｑ（ｉ＋１）において、新たな素材画像が登場した場合などでは、部分画像Ｑｉを作成するプロセスにおいて次段部分画像メモリに対して先行して行った書込処理もしくは書換処理の結果に矛盾が生じるケースもあるが、そのようなケースについては、これまで述べてきた基本的な実施形態と同様に、部分画像Ｑ（ｉ＋１）を作成するプロセスにおいて、跨線単位領域についての処理を再度実行すればよい。
【０１６０】
＜４−７．  単位領域の変形例＞
これまで述べてきた実施形態は、図６に示す例のように、モチーフとなる所定の絵柄（たとえば、樹木の絵柄）を含む包摂矩形Ｒ１からなる素材画像Ｍ１を縦方向にＫ等分することにより、縦幅ｕをもった横方向に細長いＫ個の単位領域を設定していたが、本発明における単位領域の設定は、このような態様に限定されるものではない。
【０１６１】
たとえば、図２６は、素材画像Ｍ１上に設定した単位領域の変形例を示す平面図である。この例の場合、包摂矩形Ｒ内の素材画像Ｍ１を、横方向に３分割、縦方向に１４分割することにより、合計４２個の単位領域を設定している。その結果、１行目には、３組の単位領域Ｍ１（１１），Ｍ１（１２），Ｍ１（１３）が配置され、２行目には、３組の単位領域Ｍ１（２１），Ｍ１（２２），Ｍ１（２３）が配置され、... ，以下、同様である。もちろん、個々の単位領域内の画像データは、それぞれ独立して伸張可能な態様で圧縮される。
【０１６２】
各単位領域は、いずれも横幅ａ、縦幅ｂをもった矩形になる。一般論として説明すれば、横幅が所定値ａの整数倍、縦幅が所定値ｂの整数倍のサイズをもった包摂矩形Ｒ内に素材画像Ｍ１を定義し、横幅が値ａ、縦幅が値ｂである単位領域を設定すればよい。ここで、包摂矩形Ｒは、その横幅が単位領域の横幅ａの整数倍、縦幅が単位領域の縦幅ｂの整数倍になるように調整されているため、その右端部および底部に若干の余白領域（図にハッチングを施して示す領域）が生じている。
【０１６３】
このように、素材画像を縦横に分割して単位領域を設定すると、より効率的な処理が可能になる。たとえば、図２７に示す例のように、ある部分画像Ｑに対して、素材画像Ｍ１を図示の位置に割り付ける場合を考えてみよう。この場合、伸張対象となる単位領域は、図にハッチングを施して示す１４組の単位領域（第４〜１０行目の第２列目および第３列目の単位領域）のみになり、第１列目の単位領域については伸張する必要はない。すなわち、素材画像を縦横に分割して単位領域を設定することにより、伸張対象となる単位領域をきめ細かく指定することが可能になり、無駄な部分についての伸張処理を省くことが可能になる。
【符号の説明】
【０１６４】
１００：合成画像作成装置
１１０：素材画像格納部
１２０：コマンド入力部
１２１：コマンドバッファ
１３０：コントローラ部
１３１：ステータスバッファ
１４０：データ伸張部
１５０：合成処理部
１６０：データ出力部
１７１，１７２：部分画像メモリ
Ａ（１）〜Ａ（ｋ＋２）：アドレス／アドレス情報
Ａ（Ｍ１（３）），Ａ（Ｍ１（４）），Ａ（Ｍ２（２））：アドレス
ａ：単位領域の横幅
Ｂ：境界線
Ｂ１１〜Ｂ４ｚ：圧縮対象ブロック
ｂ：単位領域の縦幅
Ｃ：合成画像作成コマンド
Ｄ（１）〜Ｄ（Ｋ）：区切情報データ
Ｅ１，Ｅ２：画素
Ｆ：フッタ部
Ｇ：部分画像の隅点
Ｈ：ヘッダ部
ｉ：部分画像Ｑの番号を示すパラメータ
ｊ：素材画像Ｍの番号を示すパラメータ
ｋ：単位領域Ｕの番号を示すパラメータ
Ｋ：単位領域Ｕの総数
Ｌ１〜Ｌ４，Ｌ１′：配置基準点
Ｍ，Ｍ１〜Ｍ４：素材画像
Ｍ＊，Ｍ１＊〜Ｍ４＊：圧縮された素材画像
Ｍ（１）〜Ｍ（Ｋ）：素材画像Ｍを構成する各単位画像
Ｍ（１）＊〜Ｍ（Ｋ）＊：圧縮された単位画像（単位圧縮データ）
Ｍ１（１）〜Ｍ１（Ｋ）：素材画像Ｍ１を構成する各単位画像
Ｍ１（１）＊〜Ｍ１（Ｋ）＊：圧縮された単位画像（単位圧縮データ）
Ｍ２（１），Ｍ２（２）：素材画像Ｍ２を構成する各単位画像
Ｍ３（２）〜Ｍ３（５）：素材画像Ｍ３を構成する各単位画像
Ｍ４（１）：素材画像Ｍ４を構成する各単位画像
Ｍ（１１）〜Ｍ（２３）：素材画像Ｍ１を構成する各単位画像
ｍ，ｍ１〜ｍ４：割付倍率
Ｎ：部分画像メモリの総数
Ｏ：ＸＹ座標系の原点
Ｐ：合成画像
Ｐｂ：背景領域
Ｐｆ：前景領域
Ｐｈ：合成画像Ｐの横幅／部分画像Ｑ１〜Ｑ４の横幅
ｐｖ：合成画像Ｐの縦幅
Ｑ，Ｑ１〜Ｑ４：部分画像
ｑ：部分画像の縦幅
Ｒ，Ｒ１〜Ｒ４：素材画像の包摂矩形
Ｓ１〜Ｓ１１：流れ図の各ステップ
Ｓ（ｋ），Ｓ（ｋ＋１）：データサイズ／サイズ情報
Ｔ：透明度
Ｕ，Ｕ１〜ＵＫ：単位領域
ｕ：単位領域の縦幅
ｗ：ｉをＮで除した剰余
Ｘ：ＸＹ座標系の座標軸
ｘ１〜ｘ４：ＸＹ座標系のＸ座標値
Ｙ：ＸＹ座標系の座標軸
ｙ１〜ｙ４：ＸＹ座標系のＹ座標値
α，β：単位領域の番号
ξ１，ξ２：データ上の位置
【図１】
0005853654.tif 000002
【図２】
0005853654.tif 000003
【図３】
0005853654.tif 000004
【図４】
0005853654.tif 000005
【図５】
0005853654.tif 000006
【図６】
0005853654.tif 000007
【図７】
0005853654.tif 000008
【図８】
0005853654.tif 000009
【図９】
0005853654.tif 000010
【図１０】
0005853654.tif 000011
【図１１】
0005853654.tif 000012
【図１２】
0005853654.tif 000013
【図１３】
0005853654.tif 000014
【図１４】
0005853654.tif 000015
【図１５】
0005853654.tif 000016
【図１６】
0005853654.tif 000017
【図１７】
0005853654.tif 000018
【図１８】
0005853654.tif 000019
【図１９】
0005853654.tif 000020
【図２０】
0005853654.tif 000021
【図２１】
0005853654.tif 000022
【図２２】
0005853654.tif 000023
【図２３】
0005853654.tif 000024
【図２４】
0005853654.tif 000025
【図２５】
0005853654.tif 000026
【図２６】
0005853654.tif 000027
【図２７】
0005853654.tif 000028