(57)【要約】【課題】メモリに対する画像データの描画に要する時間を短縮することが可能な画像処理装置を提供する。【解決手段】描画処理部１２０は、回路構成が再構成可能な再構成可能回路内の回路として構成され、画像メモリ１３０にアクセスすることで、画像データに表されたオブジェクトを画像メモリ１３０に描画する。中間データ生成部１１０は、画像データを解釈することで、継続して異なるオブジェクトを画像メモリ１３０に描画するよう描画処理部１２０に指示するためのコマンドを生成する。【選択図】図１
2015016586.tif 000002
【特許請求の範囲】
【請求項１】
回路構成が再構成可能な再構成可能回路と、
前記再構成可能回路内の回路として構成され、画像メモリにアクセスすることで、画像データに表されたオブジェクトを前記画像メモリに描画する描画処理手段と、
前記画像データを解釈することで、継続して異なるオブジェクトを前記画像メモリに描画するよう前記描画処理手段に指示するためのコマンドを生成するコマンド生成手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記コマンド生成手段は、前記画像データに表された複数のオブジェクトのうち、前記画像メモリに対して同一の描画処理が行われ描画順番が連続する複数のオブジェクトを、継続して前記画像メモリに描画するよう前記描画処理手段に指示するための前記コマンドを生成する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
描画処理を実行する回路を前記描画処理手段に実現させるための回路構成情報を生成し、前記回路構成情報に基づき前記描画処理手段に回路を構成する制御手段を更に有し、
前記制御手段は、前記コマンドに従い、同一の描画処理が行われる複数のオブジェクトの描画処理が連続する場合、前記描画処理手段の回路を変更せずに、継続して描画処理を前記描画処理手段に実行させる、
ことを特徴とする請求項１又は請求項２に記載の画像処理装置。
【請求項４】
第１描画処理を実行する第１回路を前記描画処理手段に実現させるための回路構成情報を記憶する実行用記憶手段と、
第１描画処理の次に第２描画処理を実行する第２回路を前記描画処理手段に実現させるための回路構成情報を記憶する待機用記憶手段と、
を更に有し、
前記制御手段は、同一の描画処理が行われる複数のオブジェクトの描画順番が連続する場合、前記実行用記憶手段に記憶された回路構成情報に基づき前記第１回路を前記描画処理手段に継続して構成し、同一の描画処理が行われる複数のオブジェクトの描画順番が連続しない場合、前記待機用記憶手段に記憶された回路構成情報を前記実行用記憶手段にロードして前記第２回路を前記描画処理手段に構成する、
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
同一の描画処理が行われる複数のオブジェクトの描画順番が連続しない場合、前記制御手段は、当該複数のオブジェクトのそれぞれの描画処理を実行する回路を前記描画処理手段に実現させるための複数の回路構成情報を主記憶手段上で生成し、描画順番に従い、前記複数の回路構成情報のそれぞれを、順次、前記主記憶手段から前記待機用記憶手段にロードし、前記待機用記憶手段から前記実行用記憶手段にロードすることで、前記実行用記憶手段に記憶された回路構成情報を描画順番に従って変更して前記描画処理手段の回路を変更し、同一の描画処理が行われる複数のオブジェクトの描画順番が連続する場合、前記制御手段は、前記実行用記憶手段に記憶された回路構成情報を変更せずに、前記実行用記憶手段に記憶された回路構成情報に基づき前記描画処理手段に回路を構成する、
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記コマンド生成手段は、前記画像データに基づき各オブジェクトの描画処理を示す中間データを生成し、前記中間データを解釈することで、前記画像メモリに対して同一の描画処理が行われ描画順番が連続する複数のオブジェクトを示すリストを生成し、
前記描画処理手段は、前記リストに従い、前記連続する複数のオブジェクトを継続して前記画像メモリに書き込む、
ことを特徴とする請求項１から請求項５のいずれか一項に記載の画像処理装置。
【請求項７】
コンピュータに、
画像メモリにアクセスすることで、画像データに表されたオブジェクトを前記画像メモリに描画する描画処理回路を、回路構成が再構成可能な再構成可能回路内の回路として構成するステップと、
前記画像データを解釈することで、継続して異なるオブジェクトを前記画像メモリに描画するよう前記描画処理回路に指示するためのコマンドを生成するステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
メモリに対する画像データの描画の高速化を図った技術が知られている。例えば、特許文献１には、画像情報の属性の出現頻度に応じて構成記憶手段に記憶される回路の属性を選択し、選択した回路を動的回路再構成手段に構成させる装置が開示されている。
【０００３】
特許文献２には、回路構成情報を効率的に保持、転送する再構成可能回路が開示されている。この再構成可能回路は、複数の回路構成情報を記憶するＤＲＡＭと、プロセッシングエレメントにロードされた回路構成情報をキャッシュする二次キャッシュとを備え、プロセッシングエレメントにロードすべき回路構成情報が二次キャッシュに記憶されていない場合、ＤＲＡＭから二次キャッシュに回路構成情報を読み出し、二次キャッシュからプロセッシングエレメントに回路構成情報をロードする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１４３０４０号公報
【特許文献２】特開２０１０−２９８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、画像データをメモリに描画する装置が再構成可能回路で構成される場合、回路構成情報の生成に要する時間や再構成可能回路に回路構成情報をロードするのに要する時間が、再構成可能回路による描画処理に要する時間よりも長くなることがある。この場合、全体の処理時間が増大するおそれがある。
【０００６】
本発明の目的は、メモリに対する画像データの描画に要する時間を短縮することが可能な画像処理装置及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
請求項１に係る発明は、回路構成が再構成可能な再構成可能回路と、前記再構成可能回路内の回路として構成され、画像メモリにアクセスすることで、画像データに表されたオブジェクトを前記画像メモリに描画する描画処理手段と、前記画像データを解釈することで、継続して異なるオブジェクトを前記画像メモリに描画するよう前記描画処理手段に指示するためのコマンドを生成するコマンド生成手段と、を有することを特徴とする画像処理装置である。
【０００８】
請求項２に係る発明は、前記コマンド生成手段は、前記画像データに表された複数のオブジェクトのうち、前記画像メモリに対して同一の描画処理が行われ描画順番が連続する複数のオブジェクトを、継続して前記画像メモリに描画するよう前記描画処理手段に指示するための前記コマンドを生成する、ことを特徴とする請求項１に記載の画像処理装置である。
【０００９】
請求項３に係る発明は、描画処理を実行する回路を前記描画処理手段に実現させるための回路構成情報を生成し、前記回路構成情報に基づき前記描画処理手段に回路を構成する制御手段を更に有し、前記制御手段は、前記コマンドに従い、同一の描画処理が行われる複数のオブジェクトの描画処理が連続する場合、前記描画処理手段の回路を変更せずに、継続して描画処理を前記描画処理手段に実行させる、ことを特徴とする請求項１又は請求項２に記載の画像処理装置である。
【００１０】
請求項４に係る発明は、第１描画処理を実行する第１回路を前記描画処理手段に実現させるための回路構成情報を記憶する実行用記憶手段と、第１描画処理の次に第２描画処理を実行する第２回路を前記描画処理手段に実現させるための回路構成情報を記憶する待機用記憶手段と、を更に有し、前記制御手段は、同一の描画処理が行われる複数のオブジェクトの描画順番が連続する場合、前記実行用記憶手段に記憶された回路構成情報に基づき前記第１回路を前記描画処理手段に継続して構成し、同一の描画処理が行われる複数のオブジェクトの描画順番が連続しない場合、前記待機用記憶手段に記憶された回路構成情報を前記実行用記憶手段にロードして前記第２回路を前記描画処理手段に構成する、ことを特徴とする請求項３に記載の画像処理装置である。
【００１１】
請求項５に係る発明は、同一の描画処理が行われる複数のオブジェクトの描画順番が連続しない場合、前記制御手段は、当該複数のオブジェクトのそれぞれの描画処理を実行する回路を前記描画処理手段に実現させるための複数の回路構成情報を主記憶手段上で生成し、描画順番に従い、前記複数の回路構成情報のそれぞれを、順次、前記主記憶手段から前記待機用記憶手段にロードし、前記待機用記憶手段から前記実行用記憶手段にロードすることで、前記実行用記憶手段に記憶された回路構成情報を描画順番に従って変更して前記描画処理手段の回路を変更し、同一の描画処理が行われる複数のオブジェクトの描画順番が連続する場合、前記制御手段は、前記実行用記憶手段に記憶された回路構成情報を変更せずに、前記実行用記憶手段に記憶された回路構成情報に基づき前記描画処理手段に回路を構成する、ことを特徴とする請求項４に記載の画像処理装置である。
【００１２】
請求項６に係る発明は、前記コマンド生成手段は、前記画像データに基づき各オブジェクトの描画処理を示す中間データを生成し、前記中間データを解釈することで、前記画像メモリに対して同一の描画処理が行われ描画順番が連続する複数のオブジェクトを示すリストを生成し、前記描画処理手段は、前記リストに従い、前記連続する複数のオブジェクトを継続して前記画像メモリに書き込む、ことを特徴とする請求項１から請求項５のいずれか一項に記載の画像処理装置である。
【００１３】
請求項７に係る発明は、コンピュータに、画像メモリにアクセスすることで、画像データに表されたオブジェクトを前記画像メモリに描画する描画処理回路を、回路構成が再構成可能な再構成可能回路内の回路として構成するステップと、前記画像データを解釈することで、継続して異なるオブジェクトを前記画像メモリに描画するよう前記描画処理回路に指示するためのコマンドを生成するステップと、を実行させることを特徴とするプログラムである。
【発明の効果】
【００１４】
請求項１，７に係る発明によると、本発明の構成を用いない場合と比較して、メモリに対する画像データの描画に要する時間を短縮することが可能となる。
【００１５】
請求項２に係る発明によると、同一の描画処理が行われ描画順番が連続する複数のオブジェクトが継続して画像メモリに書き込まれ、本発明の構成を用いない場合と比較して、メモリに対する画像データの描画に要する時間を短縮することが可能となる。
【００１６】
請求項３に係る発明によると、同一の描画処理が行われる複数のオブジェクトの描画順番が連続する場合に回路構成が変更されず、本発明の構成を用いない場合と比較して、メモリに対する画像データの描画に要する時間を短縮することが可能となる。
【００１７】
請求項４に係る発明によると、実行用記憶手段及び待機用記憶手段を用いて描画処理手段の回路を切り替える装置において、同一の描画処理が行われる複数のオブジェクトの描画順番が連続する場合、本発明の構成を用いない場合と比較して、メモリに対する画像データの描画に要する時間を短縮することが可能となる。
【００１８】
請求項５に係る発明によると、同一の描画処理が行われる複数のオブジェクトの描画順番が連続する場合、回路構成情報のロード回数が削減され、本発明の構成を用いない場合と比較して、全体の処理時間が短縮される。
【００１９】
請求項６に係る発明によると、中間データを利用することで、本発明の構成を用いない場合と比較して、メモリに対する画像データの描画に要する時間を短縮することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】実施形態に係るシステムの一例を示すブロック図である。
【図２】再構成可能回路を用いて処理を行うシステムの一例を示すブロック図である。
【図３】実施形態に係る画像処理装置のハードウェア構成の一例を示すブロック図である。
【図４】再構成制御部の動作の一例を説明するための模式図である。
【図５】参考例に係る描画処理を説明するための模式図である。
【図６】実施形態に係る描画処理の一例を説明するための模式図である。
【図７】中間データのフォーマットの一例を示す図である。
【図８】中間データのフォーマットの一例を示す図である。
【図９】中間データのフォーマットの一例を示す図である。
【図１０】中間データのフォーマットの一例を示す図である。
【図１１】実施形態に係る描画処理の一例を説明するための模式図である。
【図１２】実施形態に係る画像処理装置の動作の一例を説明するための模式図である。
【図１３】実施形態に係る画像処理装置の動作の一例を示すフローチャートである。
【図１４】実施形態に係る画像処理装置の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００２１】
図１に、本発明の実施形態に係るシステムの一例を示す。本システムは、画像処理装置１００と、画像メモリ１３０と、印刷装置１４０とを含む。画像処理装置１００は、中間データ生成部１１０と描画処理部１２０とを含む。
【００２２】
例えば、ページ記述言語（ＰＤＬ：Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述された画像データが、コンピュータ等の装置から画像処理装置１００に提供される。ページ記述言語は、印刷処理やディスプレイ表示処理等を情報処理装置に実行させるためのコンピュータプログラミング言語である。ページ記述言語で記述された画像データは、印刷対象の画像を構成する文字や図形等のオブジェクトの位置情報、書式情報及び色情報等を含む。
【００２３】
中間データ生成部１１０はコマンドデコーダであり、画像データを解釈することで、印刷対象の画像が中間言語で記述された中間データを生成し、出力する。中間データは、最終的に印刷装置１４０に出力される描画データに変換される前段階のデータであり、描画データの生成の手順を表すコマンドを含む。中間データの具体例として、例えばディスプレイリスト（ＤＬ）があるが、本発明はこの例に限定されるものではない。中間データは、印刷対象の画像の構成要素であるオブジェクトのそれぞれについて、当該オブジェクトを描画する手順を表す描画コマンドを含む。具体的には、中間データは、ページ内におけるオブジェクトの位置を示す位置情報、そのオブジェクトの描画順番（描画コマンドの実行順番）、そのオブジェクトの大きさを示すサイズ情報、そのオブジェクトの描画内容（例えばイメージや図形や文字等）を示す描画情報、及び、そのオブジェクトの色（例えばオブジェクトを何色で塗りつぶすか等）を示す色情報等を含む。例えば、あるページの中間データは、当該ページを構成する各オブジェクトの描画手順を表すコマンドの集合であると捉えられる。
【００２４】
また、中間データ生成部１１０は、画像データを解釈し、実行される描画処理が同一であり描画順番が連続する複数のオブジェクトを、継続して画像メモリ１３０に書き込むよう描画処理部１２０に指示するための新たな中間データ（コマンド）を生成する。なお、中間データ生成部１１０はコマンド生成手段の一例に相当する。
【００２５】
描画処理部１２０（ラスタライザ）は、例えばＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）である。描画処理部１２０は、中間データ生成部１１０から中間データを取得し、当該中間データに従って、印刷装置１４０に適合し印刷装置１４０で取り扱われる描画データを生成する。描画データは、例えば印刷画像を構成する画素毎の情報（画素値）を含むラスタデータであり、一例としてビットマップデータ等である。描画処理部１２０は、画像メモリ１３０（フレームメモリ）にアクセスして描画データを画像メモリ１３０に書き込むことで、描画データを画像メモリ１３０に記憶させる。例えば、描画処理部１２０は、中間データが示す描画順番（実行順番）に従い、各オブジェクトを順番に画像メモリ１３０に書き込む。また、実行される描画処理が同一である複数のオブジェクトの描画順番が連続する場合、描画処理部１２０は、当該複数のオブジェクトを継続して画像メモリ１３０に書き込む（オブジェクト連続処理）。この場合、異なるオブジェクトが継続して画像メモリ１３０に書き込まれることになる。
【００２６】
印刷装置１４０は、描画データによって表される画像を用紙等の記録媒体に印刷する。例えば、１ページ分の描画データが画像メモリ１３０に書き込まれると、この描画データは印刷装置１４０に出力され、描画データによって表される画像が印刷装置１４０によって記録媒体に印刷される。
【００２７】
上述した画像処理装置１００では、例えばＤＲＰ（Ｄｙｎａｍｉｃ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｐｒｏｃｅｓｓｏｒ：動的再構成可能プロセッサ）によって処理が実行される。
【００２８】
図２に、ＤＲＰを用いて処理を行うシステムの一例を示す。このシステムは、一例として、メインＣＰＵ（中央演算装置）１と、メインメモリ２と、ＣＰＵバス−ＰＣＩブリッジ３と、ＤＲＰアクセラレータ４と、これらを接続するための内部バス５０とを含む。ＤＲＰアクセラレータ４は、例えば複数のＤＲＰシステム５とＰＣＩスイッチ６とを含む。ＰＣＩスイッチ６には、複数のＤＲＰシステム５が接続されている。ＤＲＰシステム５は、ＤＲＰ１０とＤＤＲメモリ４０とを含む。ＤＤＲメモリ４０には、ＤＲＰ１０を制御するためのデータやプログラム等が記憶される。
【００２９】
図３に、画像処理装置１００のハードウェア構成の一例を示す。図３に示す例では、画像処理装置１００は、ＤＲＰ１０によって構成される。
【００３０】
ＤＲＰ１０は、内部の論理回路の構成を動的に変更（再構成）可能なプロセッサである。ＤＲＰ１０は、一例として、特開２００９−３７６５号公報に開示されているＤＡＰ・ＤＮＡアーキテクチャのプロセッサであるが、本発明はこの例に限定されるものではなく、他の回路で構成されてもよい。以下、図３を参照してＤＲＰ１０の一例を説明する。
【００３１】
ＤＲＰ１０は、ＤＡＰ（Ｄｉｇｉｔａｌ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｃｅｓｓｏｒ）と称される再構成制御部１２（ＲＩＳＣコアモジュール）と、ＤＮＡ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｎｅｔｗｏｒｋ  Ａｒｃｈｉｔｅｃｔｕｒｅ）と称される再構成可能回路部１４（ダイナミックコンフィギュラブルデータフローアクセラレータ）とを含む。ＤＲＰ１０は、再構成制御部１２及び再構成可能回路部１４に加え、再構成可能回路部１４のダイレクト入出力用のインタフェース１６と、ＰＣＩインタフェース１８と、ＳＤＲＡＭインタフェース２０と、ＤＭＡコントローラ２２と、その他の周辺デバイス２４と、これらを接続するための内部バス（高速スイッチングバス）２６とを含む。再構成制御部１２は、デバッグインタフェース１２ａと、ＲＩＳＣコア１２ｂと、命令キャッシュ１２ｃと、データキャッシュ１２ｄとを含む。再構成可能回路部１４は、ＰＥマトリックス１４ａと、コンフィギュレーションメモリ１４ｂとを含む。ＰＥマトリックス１４ａには、複数の処理エレメントＰＥ（論理回路要素）が２次元に配置されている。一例として、３７６個の処理エレメントＰＥが、ＰＥマトリックス１４ａに配置されている。コンフィギュレーションメモリ１４ｂには、コンフィギュレーションデータ１４ｃが格納されている。コンフィギュレーションデータ１４ｃは、ＰＥマトリックス１４ａに含まれる処理エレメントＰＥの機能及び／又は接続を変えてＰＥマトリックス１４ａを再構成し、ＰＥマトリックス１４ａに回路を構成するためのデータである。
【００３２】
再構成制御部１２は、再構成可能回路部１４を含むＤＲＰ１０全体の動作制御を行うモジュールであり、例えば、制御のためのプログラムを実行することで実現される。再構成制御部１２は、ＰＥマトリックス１４ａ内の処理エレメントＰＥの接続関係を制御することで、ＰＥマトリックス１４ａにおいてデータ処理のための回路を構成する。また、再構成制御部１２は、ＰＥマトリックス１４ａにおいて構成された回路に対してデータを供給したり、その回路からのデータを他のシステムに出力したりする制御を行う。
【００３３】
コンフィギュレーションデータ１４ｃは、ＰＥマトリックス１４ａの回路構成を規定するデータである。ＰＥマトリックス１４ａ内の回路の再構成は、コンフィギュレーションデータ１４ｃに従って行われる。コンフィギュレーションメモリ１４ｂには、複数のコンフィギュレーションデータ１４ｃが記憶される。コンフィギュレーションメモリ１４ｂ内の複数のコンフィギュレーションデータ１４ｃのうち１つが選択されてアクティブ状態になると、そのコンフィギュレーションデータ１４ｃが規定する回路構成がＰＥマトリックス１４ａ内に構成されることになる。一例として、コンフィギュレーションメモリ１４ｂには３つのコンフィギュレーションデータ１４ｃが記憶されている。但し、本発明はこの例に限定されるものではなく、３つ以外の数のコンフィギュレーションデータ１４ｃが、コンフィギュレーションメモリ１４ｂに記憶されてもよい。
【００３４】
コンフィギュレーションメモリ１４ｂについて詳しく説明すると、コンフィギュレーションメモリ１４ｂは、複数バンク（複数のメモリ）の構成となっている。例えば、コンフィギュレーションメモリ１４ｂは、実行バンク＃０（実行用のメモリ）、バンク＃１（待機用のメモリ）及びバンク＃２（待機用のメモリ）によって構成されている。そして、実行バンク＃０に格納されたコンフィギュレーションデータ１４ｃによって、ＰＥマトリックス１４ａには第１の機能が構成されて実行される。また、バックグラウンドバンクとしてのバンク＃１又はバンク＃２にそれぞれ格納されたコンフィギュレーションデータ１４ｃによって、ＰＥマトリックス１４ａには第２の機能又は第３の機能が構成される。そして、コンフィギュレーションメモリ１４ｂのバンクを切り替えることにより、ＰＥマトリックス１４ａには、第１の機能に替わって第２の機能又は第３の機能が再構成される。ＰＥマトリックス１４ａの再構成は、例えば１サイクル（クロックサイクル）でダイナミックに行われる。このようにＰＥマトリックス１４ａは、回路を構成するための複数の処理エレメントＰＥと、これらの処理エレメントＰＥを接続するための内部配線とを含む再構成ユニットであり、内部配線によって処理エレメントＰＥの接続を変えることにより、ＰＥマトリックス１４ａに含まれる回路が再構成される。
【００３５】
ここで、図４を参照して、ＰＥマトリックス１４ａに構成される機能の切り替え処理について説明する。例えば、再構成制御部１２は、中間データ（各オブジェクトの描画コマンド）に従い、各オブジェクトを画像メモリ１３０に描画するためのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成し（ＤＡＰ動作）、当該コンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃１又はバンク＃２にロードする（ＤＡＰ動作）。具体的には、再構成制御部１２は、オブジェクトの位置情報、サイズ情報、描画内容及び色情報等のパラメータ（中間データに規定されているパラメータ）に基づき、当該オブジェクトを画像メモリ１３０に描画するためのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成する。そして、再構成制御部１２は、当該コンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃１又はバンク＃２にロードし、さらに、バンク＃１又はバンク＃２から実行バンク＃０にコンフィギュレーションデータ１４ｃをロードすることで、コンフィギュレーションデータ１４ｃに応じた機能をＰＥマトリックス１４ａに構成する（ＤＡＰ動作）。ＰＥマトリックス１４ａは、実行バンク＃０にロードされたコンフィギュレーションデータ１４ｃによって構成された機能を実行する（ＤＮＡ動作）。なお、再構成制御部１２によって実行されるＤＡＰ動作は、ソフトウェアのよる処理に相当し、ＰＥマトリックス１４ａによって実行されるＤＮＡ動作は、ハードウェアによる処理に相当する。
【００３６】
次に、図５を参照して、参考例に係る描画処理の一例を説明する。ここで、画像メモリ１３０上に描画データを描画する処理（描画処理）の種類について説明する。描画処理としては、一例として、「ＧＲＡ」、「ＲＡＳ−Ｇ」及び「ＲＥＣＴ」等の描画コマンドがある。「ＧＲＡ」は、指定された２点間を線分で描画することを示す描画コマンドである。「ＲＡＳ−Ｇ」は、指定された領域をＢｉｔｍａｐ等の形式で描画することを示す描画コマンドである。「ＲＥＣＴ」は、指定された領域を、いわゆるベタで塗り潰すことを示す描画コマンドである。これらの描画コマンドは、各オブジェクトの中間データに規定されている。
【００３７】
例えば、ＰＥマトリックス１４ａで構成される描画処理部１２０は、中間データによって規定される描画順番に従い、画像メモリ１３０に各オブジェクトを描画する。一例として、図５に示すように、１番目のオブジェクト（小文字の「ａ」）の描画処理が「ＲＡＳ−Ｇ」であり、２番目のオブジェクト（小文字の「ｉ」）の描画処理が「ＧＲＡ」であり、３番目のオブジェクト（大文字の「Ｂ」）の描画処理が「ＧＲＡ」である場合について説明する。この場合、再構成制御部１２は、１番目のオブジェクト（「ａ」）の中間データに基づき、１番目のオブジェクトの描画処理「ＲＡＳ−Ｇ」を実行するためのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成し、当該コンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃２にロードし、さらに、当該コンフィギュレーションデータ１４ｃをバンク＃２から実行バンク＃０にロードする（ＤＡＰ動作）。これにより、ＰＥマトリックス１４ａに、１番目のオブジェクトの描画処理「ＲＡＳ−Ｇ」を実行するための回路が構成される。そして、ＰＥマトリックス１４ａは、１番目のオブジェクト（「ａ」）を対象にして「ＲＡＳ−Ｇ」を実行することで、１番目のオブジェクト（「ａ」）を画像メモリ１３０に書き込む（ＤＮＡ動作）。
【００３８】
また、再構成制御部１２は、２番目のオブジェクト（「ｉ」）の中間データに基づき、２番目のオブジェクトの描画処理「ＧＲＡ」を実行するためのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成し、「ＧＲＡ」用のコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃１にロードする（ＤＡＰ動作）。例えば、ＰＥマトリックス１４ａが、１番目のオブジェクトの描画処理「ＲＡＳ−Ｇ」を実行している間に、再構成制御部１２は、２番目のオブジェクトの描画処理「ＧＲＡ」用のコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃１にロードしておく（ＤＡＰ動作）。すなわち、ＤＮＡ動作と並行してＤＡＰ動作が行われる。そして、ＰＥマトリックス１４ａによる１番目のオブジェクトの描画処理「ＲＡＳ−Ｇ」が終了すると、再構成制御部１２は、２番目のオブジェクトの描画処理「ＧＲＡ」用のコンフィギュレーションデータ１４ｃを、バンク＃１から実行バンク＃０にロードする（ＤＡＰ動作）。これにより、ＰＥマトリックス１４ａには、２番目のオブジェクトの描画処理「ＧＲＡ」を実行するための回路が構成される。そして、ＰＥマトリックス１４ａは、２番目のオブジェクト（「ｉ」）を対象にして「ＧＲＡ」を実行することで、２番目のオブジェクト（「ｉ」）を画像メモリ１３０に書き込む（ＤＮＡ動作）。
【００３９】
また、再構成制御部１２は、３番目のオブジェクト（「Ｂ」）の中間データに基づき、３番目のオブジェクトの描画処理「ＧＲＡ」を実行するためのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成し、「ＧＲＡ」用のコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃２にロードする（ＤＡＰ動作）。例えば、ＰＥマトリックス１４ａが、２番目のオブジェクトの描画処理「ＧＲＡ」を実行している間に、再構成制御部１２は、３番目のオブジェクトの描画処理「ＧＲＡ」用のコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃２にロードしておく（ＤＡＰ動作）。そして、ＰＥマトリックス１４ａによる２番目のオブジェクトの描画処理「ＧＲＡ」が終了すると、再構成制御部１２は、３番目のオブジェクトの描画処理「ＧＲＡ」用のコンフィギュレーションデータ１４ｃを、バンク＃２から実行バンク＃０にロードする（ＤＡＰ動作）。これにより、ＰＥマトリックス１４ａには、３番目のオブジェクトの描画処理「ＧＲＡ」を実行するための回路が構成される。そして、ＰＥマトリックス１４ａは、３番目のオブジェクト（「Ｂ」）を対象にして「ＧＲＡ」を実行することで、３番目のオブジェクト（「Ｂ」）を画像メモリ１３０に書き込む（ＤＮＡ動作）。
【００４０】
４番目以降のオブジェクトについても同様に、各オブジェクトの描画処理を実行するためのコンフィギュレーションデータ１４ｃがＤＤＲメモリ４０上で生成され、当該コンフィギュレーションデータ１４ｃがＤＤＲメモリ４０からバンク＃１又はバンク＃２にロードされる。ＤＤＲメモリ４０からバンク＃１，＃２には、コンフィギュレーションデータ１４ｃが交互にロードされる。そして、バンク＃１又はバンク＃２から実行バンク＃０にコンフィギュレーションデータ１４ｃがロードされ、ＰＥマトリックス１４ａによって描画処理が実行される。
【００４１】
図５に示す参考例に係る描画処理では、実行される描画処理が同一である複数のオブジェクトの描画順番が連続する場合であっても、ＤＤＲメモリ４０上でコンフィギュレーションデータ１４ｃを一旦生成し、ＤＤＲメモリ４０からバンク＃１又はバンク＃２にコンフィギュレーションデータ１４ｃをロードし、さらに、実行バンク＃０にコンフィギュレーションデータ１４ｃをロードする。すなわち、各オブジェクトの描画処理を実行する度に、ＰＥマトリックス１４ａの回路構成が変更されることになる。図５に示す例で説明すると、２番目のオブジェクト（「ｉ」）〜Ｎ番目のオブジェクト（「ｘ」）の描画処理はいずれも「ＧＲＡ」であるにもかかわらず、オブジェクト毎のコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で一旦生成し、オブジェクト毎のコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃１又はバンク＃２にロードし、さらに、バンク＃１又はバンク＃２から実行バンク＃０にロードしている。このように、各オブジェクトの描画処理を行う度に、オブジェクト毎にコンフィギュレーションデータ１４ｃを生成し、各オブジェクトのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンクへとロードしているため、コンフィギュレーションデータ１４ｃの生成時間やロード時間が増大し、全体の処理時間が増大するおそれがある。例えば、コンフィギュレーションデータ１４ｃの生成に要する時間と、コンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンクへロードする時間とを合わせた時間（ＤＡＰ動作に要する時間）よりも、ＰＥマトリックス１４ａによる描画処理に要する時間（ＤＮＡ動作に要する時間）が短い場合、コンフィギュレーションデータ１４ｃの生成及びロード（ＤＡＰ動作）が、描画処理（ＤＮＡ動作）に追い付かず、全体の処理時間が増大する。つまり、ＤＡＰ動作とＤＮＡ動作とを並行して実行している場合に、ＤＡＰ動作に要する時間がＤＮＡ動作に要する時間よりも長くなると、ＤＮＡ動作の待機時間が発生し、全体の処理時間が増大することになる。
【００４２】
本実施形態においては、実行される描画処理が同一である複数のオブジェクトの描画順番が連続する場合、参考例に係る描画処理とは異なり、オブジェクト毎にコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成してバンクへとロードせずに、当該複数のオブジェクトを継続して描画する。この場合、ＰＥマトリックス１４ａは、自身の回路構成を変更せずに、当該連続する複数のオブジェクトを継続して画像メモリ１３０に書き込む。
【００４３】
ここで、図６を参照して、本実施形態に係る描画処理の一例を説明する。図６（ａ）に本実施形態に係る描画処理の一例を示し、図６（ｂ）に参考例に係る描画処理の一例を示す。例えば、図５に示す例と同様に、１番目のオブジェクトの描画処理が「ＲＡＳ−Ｇ」であり、２番目のオブジェクトの描画処理が「ＧＲＡ」であり、３番目の描画処理が「ＧＲＡ」である場合について説明する。
【００４４】
図６（ａ）を参照して、本実施形態に係る描画処理を説明する。まず、再構成制御部１２は、１番目のオブジェクトの描画処理「ＲＡＳ−Ｇ」を実行するためのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成し、当該コンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃２にロードし、さらに、当該コンフィギュレーションデータ１４ｃをバンク＃２から実行バンク＃０にロードする（ＤＡＰ動作）。これにより、ＰＥマトリックス１４ａに、１番目のオブジェクトの描画処理「ＲＡＳ−Ｇ」を実行するための回路が構成される。そして、ＰＥマトリックス１４ａは、１番目のオブジェクトを対象にして「ＲＡＳ−Ｇ」を実行することで、１番目のオブジェクトを画像メモリ１３０に書き込む（ＤＮＡ動作）。
【００４５】
また、再構成制御部１２は、２番目のオブジェクトの描画処理「ＧＲＡ」を実行するためのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成し、当該コンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃１にロードしておく（ＤＡＰ動作）。例えば、ＤＮＡ動作と並行してＤＡＰ動作が行われる。そして、ＰＥマトリックス１４ａによる１番目のオブジェクトの描画処理「ＲＡＳ−Ｇ」が終了すると、再構成制御部１２は、２番目のオブジェクトの描画処理「ＧＲＡ」用のコンフィギュレーションデータ１４ｃを、バンク＃１から実行バンク＃０にロードする（ＤＡＰ動作）。これにより、ＰＥマトリックス１４ａには、２番目のオブジェクトの描画処理「ＧＲＡ」を実行するための回路が構成される。そして、ＰＥマトリックス１４ａは、２番目のオブジェクトを対象にして「ＧＲＡ」を実行することで、２番目のオブジェクトを画像メモリ１３０に書き込む（ＤＮＡ動作）。
【００４６】
３番目のオブジェクトの描画処理は「ＧＲＡ」であり、２番目のオブジェクトの描画処理と同一であるため、再構成制御部１２は、３番目のオブジェクト用のコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成せず、ＤＤＲメモリ４０からバンク＃１又はバンク＃２へのコンフィギュレーションデータ１４ｃのロードも実行しない。この場合、ＰＥマトリックス１４ａは、３番目のオブジェクトの位置情報、サイズ情報及び色情報等のパラメータ（中間データに規定されているパラメータ）を取得し、ＰＥマトリックス１４ａ自身の回路構成は変更せずに、当該パラメータのみを変更して３番目のオブジェクトを画像メモリ１３０に書き込む（オブジェクト連続処理）。すなわち、３番目のオブジェクトの描画処理「ＧＲＡ」を実行するための回路は、２番目のオブジェクトの描画処理を実行するときにＰＥマトリックス１４ａに既に構成されているため、ＰＥマトリックス１４ａは当該回路を利用することで、３番目のオブジェクトを画像メモリ１３０に書き込む。更に換言すると、オブジェクト連続処理が実行されている間、実行バンク＃０にロードされたコンフィギュレーションデータ１４ｃは書き換えられずに、同一の描画処理を実行するための回路がＰＥマトリックス１４ａに構成されることになる。一方で、オブジェクト連続処理が実行されない場合、実行バンク＃０にロードされたコンフィギュレーションデータ１４ｃは書き換えられ、ＰＥマトリックス１４ａの回路構成が変更されることになる。例えば、不連続処理が継続する場合、バンク＃１又はバンク＃２から実行バンク＃０にコンフィギュレーションデータ１４ｃが交互にロードされることで、実行バンク＃０に記憶されたコンフィギュレーションデータ１４ｃが書き換えられることになる。
【００４７】
４番目以降のオブジェクトについても、実行される描画処理が同一である複数のオブジェクトの描画順番が連続する場合、ＰＥマトリックス１４ａは自身の回路構成を変更せずに、連続する複数のオブジェクトを継続して画像メモリ１３０に書き込む（オブジェクト連続処理）。図６（ａ）に示す例では、２番目〜Ｎ番目のオブジェクトの描画処理が同一であるため、ＰＥマトリックス１４ａは、回路構成を変更せずに、２番目〜Ｎ番目のオブジェクトを継続して画像メモリ１３０に書き込む。
【００４８】
オブジェクト連続処理が行われている間、再構成制御部１２は、オブジェクト連続処理の後に実行される描画処理のコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成し、当該コンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃１又はバンク＃２にロードする。図６（ａ）に示す例では、オブジェクト連続処理「ＧＲＡ」の後に、（Ｎ＋１）番目のオブジェクトを対象にして描画処理「ＲＡＳ−Ｇ」の実行が予定されているため、再構成制御部１２は、（Ｎ＋１）番目のオブジェクト用の描画処理「ＲＡＳ−Ｇ」を実行するためのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成し、当該コンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃２にロードする。そして、ＰＥマトリックス１４ａによるオブジェクト連続処理「ＧＲＡ」が終了すると、再構成制御部１２は、「ＲＡＳ−Ｇ」を実行するためのコンフィギュレーションデータ１４ｃをバンク＃２から実行バンク＃０にロードする（ＤＡＰ動作）。これにより、ＰＥマトリックス１４ａは、「ＲＡＳ−Ｇ」を実行することで、（Ｎ＋１）番目のオブジェクトを画像メモリ１３０に書き込む（ＤＮＡ動作）。それ以降のオブジェクトについても同様であり、実行される描画処理が同一である複数のオブジェクトの描画順番が連続する場合、ＰＥマトリックス１４ａは自身の回路構成を変更せずに、連続する複数のオブジェクトを継続して画像メモリ１３０に書き込む。一方、実行される描画処理が同一である複数のオブジェクトの描画順番が連続しない場合、再構成制御部１２は、連続しない各オブジェクトに対する描画処理用のコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成し、当該コンフィギュレーションデータ１４ｃをバンク＃１又はバンク＃２にロードする。
【００４９】
なお、図６（ｂ）に示す参考例では、図５に示す参考例と同様に、実行される描画処理が同一である複数のオブジェクトの描画順番が連続する場合であっても、ＤＤＲメモリ４０上でコンフィギュレーションデータ１４ｃを一旦生成し、ＤＤＲメモリ４０からバンク＃１又はバンク＃２にコンフィギュレーションデータ１４ｃを交互にロードする。
【００５０】
以上のように、本実施形態によると、実行される描画処理が同一である複数のオブジェクトの描画順番が連続する場合、ＰＥマトリックス１４ａの回路を変更せずに、ＰＥマトリックス１４ａに既に構成された回路を利用し、連続する複数のオブジェクトを継続して画像メモリ１３０に書き込むことで、参考例に係る描画処理と比較して、全体の処理時間が短縮される。すなわち、本実施形態では、実行される描画処理が同一である複数のオブジェクトの描画順番が連続する場合、オブジェクト毎にコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成してバンクへとロードせずに、オブジェクト連続処理を実行することで、ＤＤＲメモリ４０上でコンフィギュレーションデータ１４ｃを生成するのに要する時間と、ＤＤＲメモリ４０からバンクへコンフィギュレーションデータ１４ｃをロードするのに要する時間とが削減される。そのことにより、参考例と比較して、全体の処理時間が短縮される。つまり、コンフィギュレーションデータ１４ｃの生成及びロードの回数が削減されるので、参考例と比較して、全体の処理時間が短縮される。
【００５１】
次に、本実施形態の具体例について説明する。まず、図７を参照して、中間データ生成部１１０によって生成される中間データについて説明する。一例として、中間データは、Ｓｔｒｅａｍ０（パラメータ情報）とＳｔｒｅａｍ１（シェイプ情報）とを含む。中間データ生成部１１０は、画像データに表されたオブジェクト毎にＳｔｒｅａｍ０及びＳｔｒｅａｍ１を生成し、各オブジェクトのＳｔｒｅａｍ０及びＳｔｒｅａｍ１を、各オブジェクトの実行順序（描画順番）に並べてリスト化する。
【００５２】
Ｓｔｒｅａｍ０は、「コンフィギュレーションＩＤ（Ｃｏｎｆｉｇ  ＩＤ）」、「Ｄａｔａ  ＩＤ」、「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」、「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」、「ＢｉｔＭａｓｋ＿ＣｏｎｓｔＣｏｌｏｒ」、「Ｏｆｆｓｅｔ＿Ｙ＿ＬＳＢ、Ｏｆｆｓｅｔ＿Ｘ＿ＬＳＢ」、及び、「Ｂｂｏｘ」を含む。また、Ｓｔｒｅａｍ１は、「Ｃｏｎｆｉｇ  ＩＤ」、「Ｄａｔａ  ＩＤ」、及び、「Ｓｈａｐｅ  ｄａｔａ」を含む。
【００５３】
「Ｃｏｎｆｉｇ  ＩＤ」は、コンフィギュレーションデータ１４ｃのＩＤであり、画像メモリ１３０上にオブジェクトを描画する処理（描画処理）の種類を示す。上記の「ＲＡＳ−Ｇ」、「ＧＲＡ」及び「ＲＥＣ」等の描画コマンドが、当該描画処理に該当する。この「Ｃｏｎｆｉｇ  ＩＤ」を参照することで、描画対象となるオブジェクトの描画処理が特定される。「Ｄａｔａ  ＩＤ」は、画像データのＳｈａｐｅコマンドのシリーズ番号であり、各オブジェクトの描画順番を示す。「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」は、Ｓｔｒｅａｍ１の先頭アドレスを示す。「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」は、Ｓｈａｐｅコマンドの長さを示し、ｂｙｔｅ単位で規定される。「ＢｉｔＭａｓｋ＿ＣｏｎｓｔＣｏｌｏｒ」は、画像データのカラーコマンドで指定された値を規定し、画像データの色属性の一例として、画像データの色空間や階調等を規定する。「Ｏｆｆｓｅｔ＿Ｙ＿ＬＳＢ、Ｏｆｆｓｅｔ＿Ｘ＿ＬＳＢ」は、原点からの位置を示す。「Ｂｂｏｘ」はバウンダリボックスであり、画像データに表されたオブジェクトの描画領域を規定する。例えば、「Ｂｂｏｘ」は、オブジェクトに外接する矩形状の描画領域の位置及びサイズを規定する。一例として、「Ｂｂｏｘ」はｘ−ｙ座標系で規定され、矩形状の描画領域における対角線上の頂点の座標（（Ｌｘ，Ｌｙ）、（Ｇｘ，Ｇｙ））を示す。「Ｓｈａｐｅ  ｄａｔａ」は、Ｓｈａｐｅコマンドのデータであり、オブジェクトの形状等を示す。「Ｓｈａｐｅ  ｄａｔａ」は可変長であり、一例として２５６ｂｙｔｅバースト単位となるように０データが埋められる。なお、図７に示す中間データのフォーマットは一例であり、本発明はこの例に限定されるものではない。ページ内におけるオブジェクトの位置情報、描画順番、サイズ情報、描画情報及び色情報等を規定するものであれば、中間データのフォーマットは、図７に示すフォーマット以外のものであってもよい。
【００５４】
本実施形態では、中間データ生成部１１０は、実行される描画処理が同一であり描画順番が連続する複数のオブジェクト（オブジェクト連続処理の対象となる複数のオブジェクト）と、オブジェクト連続処理の対象とならないオブジェクトとを区別し、それぞれ異なる中間データを生成する。以下、オブジェクト連続処理の対象となるオブジェクトの中間データを、「連続処理用の中間データ」と称し、オブジェクト連続処理の対象とならないオブジェクトの中間データを、「不連続処理用の中間データ」と称することとする。
【００５５】
例えば、中間データ生成部１１０は、各オブジェクトの中間データに含まれる「Ｃｏｎｆｉｇ  ＩＤ」を参照することで、各オブジェクトの描画処理を特定する。特定された描画処理が同一であり複数のオブジェクトの描画順番が連続する場合、中間データ生成部１１０は、当該複数のオブジェクトについては「連続処理用の中間データ」を生成する。一方、同一の描画処理が実行される複数のオブジェクトの描画順番が連続しない場合、中間データ生成部１１０は、当該オブジェクトについては「不連続処理用の中間データ」を生成する。
【００５６】
図８に、不連続処理用の中間データの一例を示す。中間データ生成部１１０は、不連続処理用の中間データのＳｔｒｅａｍ０（パラメータ情報）に、連続処理ではないことを示す情報「Ｓｉｎｇｌｅ  Ｏｂｊ．」を追加する。「Ｓｉｎｇｌｅ  Ｏｂｊ．」以外の情報は、図７に示す元々の中間データに含まれる情報と同じである。
【００５７】
図９に、連続処理用の中間データの一例を示す。中間データ生成部１１０は、連続処理用の中間データのＳｔｒｅａｍ０（パラメータ情報）に、連続処理であることを示す情報「Ｃｏｎｔｉｎｕｅ  Ｏｂｊ．」を追加し、「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」に替えて「Ｉｎｄｅｘ  Ｔｏｐ  ａｄｄｒｅｓｓ」を規定し、「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」に替えて「Ｉｎｄｅｘ  Ｏｂｊｅｃｔ  ａｄｄｒｅｓｓ」を規定する。「Ｉｎｄｅｘ  Ｔｏｐ  ａｄｄｒｅｓｓ」及び「Ｉｎｄｅｘ  Ｏｂｊｅｃｔ  ａｄｄｒｅｓｓ」については後述する。
【００５８】
また、中間データ生成部１１０は、連続処理用の中間データのＳｔｒｅａｍ１（パラメータ／シェイプ情報）に、「ＢｉｔＭａｓｋ＿ＣｏｎｓｔＣｏｌｏｒ」、「Ｏｆｆｓｅｔ＿Ｙ＿ＬＳＢ、Ｏｆｆｓｅｔ＿Ｘ＿ＬＳＢ」、及び、「Ｂｂｏｘ」を追加する。すなわち、中間データ生成部１１０は、連続処理対象のオブジェクトの位置情報及び色情報を、Ｓｔｒｅａｍ１に追加する。これにより、Ｓｔｒｅａｍ１には、オブジェクトの位置情報、色情報及び「Ｓｈａｐｅ  ｄａｔａ」が規定されることになる。
【００５９】
さらに、中間データ生成部１１０は、連続処理の対象となるオブジェクトのＳｔｒｅａｍ０（パラメータ情報）に基づき、Ｓｔｒｅａｍ２（連続処理情報）を生成する。このＳｔｒｅａｍ２（連続処理情報）は、連続処理対象の各オブジェクトの描画順番を規定するとともに、メモリ上における各オブジェクトのＳｔｒｅａｍ１（パラメータ／シェイプ情報）のアドレスを規定する。具体的には、中間データ生成部１１０は、連続処理対象の各オブジェクトの「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」及び「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」を、描画順番通りにＳｔｒｅａｍ２に規定する。
【００６０】
ここで、図１０を参照して、Ｓｔｒｅａｍ０とＳｔｒｅａｍ２との対応関係について説明する。Ｓｔｒｅａｍ２には、連続処理対象となるオブジェクト＃１〜＃Ｎの「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」及び「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」が、８ｂｙｔｅ単位で描画順番通りに規定される。また、Ｓｔｒｅａｍ２の最後には、連続処理の終了を示す情報「Ｅｎｄ  ｏｆ  ＤＮＡ  ｃｏｎｔｉｎｕｏｕｓ  ｅｘｅｃｕｔｅ」が規定される。Ｓｔｒｅａｍ２に規定された順番に従って、各オブジェクトの描画処理が行われる。この描画処理の詳細については後述する。
【００６１】
Ｓｔｒｅａｍ０の「Ｉｎｄｅｘ  Ｔｏｐ  ａｄｄｒｅｓｓ」は、Ｓｔｒｅａｍ２の先頭アドレスを示す。各オブジェクトのＳｔｒｅａｍ０には、「Ｉｎｄｅｘ  Ｔｏｐ  ａｄｄｒｅｓｓ」が規定されているため、各オブジェクトのＳｔｒｅａｍ０を参照することで、Ｓｔｅａｍ２の先頭アドレスが特定される。例えば、連続処理対象の複数のオブジェクトのうち１番目のオブジェクト＃１のＳｔｒｅａｍ０に「Ｉｎｄｅｘ  Ｔｏｐ  ａｄｄｒｅｓｓ」が規定され、同様に、２番目のオブジェクト＃２のＳｔｒｅａｍ０にも「Ｉｎｄｅｘ  Ｔｏｐ  ａｄｄｒｅｓｓ」が規定されている。３番目〜Ｎ番目のオブジェクトのＳｔｒｅａｍ０にも「Ｉｎｄｅｘ  Ｔｏｐ  ａｄｄｒｅｓｓ」が規定されている。
【００６２】
また、各オブジェクトのＳｔｒｅａｍ０の「Ｉｎｄｅｘ  Ｏｂｊｅｃｔ  ａｄｄｒｅｓｓ」は、Ｓｔｒｅａｍ２において各オブジェクトの「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」が規定されているアドレスを示す。例えば、オブジェクト＃１は１番目のオブジェクトであるため、オブジェクト＃１の「Ｉｎｄｅｘ  Ｏｂｊｅｃｔ  ａｄｄｒｅｓｓ」は、「Ｉｎｄｅｘ  Ｔｏｐ  ａｄｄｒｅｓｓ」と同じアドレスを示す。また、オブジェクト＃２の「Ｉｎｄｅｘ  Ｏｂｊｅｃｔ  ａｄｄｒｅｓｓ」は、Ｓｔｒｅａｍ２においてオブジェクト＃２の「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」が規定されているアドレスを示す。他のオブジェクトについても同様である。
【００６３】
以上のように、本実施形態では、描画処理部１２０による描画処理の前に、中間データ生成部１１０によって、新たな中間データであるＳｔｒｅａｍ０、Ｓｔｒｅａｍ１及びＳｔｒｅａｍ２が生成される。
【００６４】
そして、オブジェクト連続処理が行われる場合、ＰＥマトリックス１４ａは、Ｓｔｒｅａｍ２を参照することで、オブジェクト＃１の「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」及び「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」をパラメータとして取得する。そして、ＰＥマトリックス１４ａは、Ｓｔｒｅａｍ１を参照し、「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」及び「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」で特定されるメモリ領域に規定されたオブジェクト＃１のパラメータ（「Ｓｈａｐｅ  ｄａｔａ」、「ＢｉｔＭａｓｋ＿ＣｏｎｓｔＣｏｌｏｒ」及び「Ｂｂｏｘ」）に従って、オブジェクト＃１を画像メモリ１３０に書き込む。オブジェクト＃１の描画処理が終了すると、ＰＥマトリックス１４ａは、Ｓｔｒｅａｍ２を参照することで、オブジェクト＃２の「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」及び「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」をパラメータとして取得する。そして、ＰＥマトリックス１４ａは、Ｓｔｒｅａｍ１を参照し、「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」及び「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」で特定されるメモリ領域に規定されたオブジェクト＃２のパラメータ（「Ｓｈａｐｅ  ｄａｔａ」、「ＢｉｔＭａｓｋ＿ＣｏｎｓｔＣｏｌｏｒ」及び「Ｂｂｏｘ」）に従って、オブジェクト＃２を画像メモリ１３０に書き込む。オブジェクト＃３〜＃Ｎについても同様の処理が行われる。
【００６５】
図１１に、メモリ上における各オブジェクトの「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」及び「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」の関係の一例を示す。例えば、ＰＥマトリックス１４ａは、オブジェクト＃１の「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」及び「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」で特定されるメモリ領域（例えば６４ｂｙｔｅ）に規定されたオブジェクト＃１のパラメータ（「Ｓｈａｐｅ  ｄａｔａ」、「ＢｉｔＭａｓｋ＿ＣｏｎｓｔＣｏｌｏｒ」及び「Ｂｂｏｘ」）に従って、オブジェクト＃１を画像メモリ１３０に書き込む。また、ＰＥマトリックス１４ａは、オブジェクト＃２の「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」及び「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」で特定されるメモリ領域（例えば１２８ｂｙｔｅ）に規定されたオブジェクト＃２のパラメータ（「Ｓｈａｐｅ  ｄａｔａ」、「ＢｉｔＭａｓｋ＿ＣｏｎｓｔＣｏｌｏｒ」及び「Ｂｂｏｘ」）に従って、オブジェクト＃２を画像メモリ１３０に書き込む。オブジェクト＃３〜＃Ｎについても同様の処理が行われる。
【００６６】
また、オブジェクト連続処理が行われない場合、ＰＥマトリックス１４ａは、不連続処理用のＳｔｒｅａｍ１を参照してオブジェクトの描画処理を行う。
【００６７】
次に、図１２を参照して、Ｓｔｒｅａｍ０，１，２に基づき実行される描画処理について説明する。まず、再構成制御部１２は、中間データを生成するためのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成し、当該コンフィギュレーションデータをバンク＃１にロードし、さらに、バンク＃１から実行バンク＃０にロードする（ＤＡＰ動作）。これにより、ＰＥマトリックス１４ａに、中間データ生成部１１０の機能を実現する回路が構成される。中間データ生成部１１０は、画像データを解釈することで、Ｓｔｒｅａｍ０、Ｓｔｒｅａｍ１及びＳｔｒｅａｍ２を生成する。
【００６８】
そして、再構成制御部１２は、Ｓｔｒｅａｍ０及びＳｔｒｅａｍ２を参照し、描画処理用のコンフィギュレーションデータ１４ｃの生成、ロード、パラメータ設定、ＤＮＡ動作の実行／終了確認等の描画処理制御を行う。
【００６９】
例えば、１番目のオブジェクトの描画処理が「ＲＡＳ−Ｇ」であり、２番目のオブジェクトの描画処理が「ＧＲＡ」であり、３番目の描画処理が「ＧＲＡ」である場合について説明する。
【００７０】
再構成制御部１２は、１番目のオブジェクトのＳｔｒｅａｍ０を参照することで、１番目のオブジェクトが連続処理の対象ではないことを特定し、さらに、Ｓｔｒｅａｍ０に規定されたパラメータに基づき、１番目のオブジェクトの描画処理「ＲＡＳ−Ｇ」を実行するためのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成する。１番目のオブジェクトは連続処理の対象となっていないため、図８に示すＳｔｒｅａｍ０（不連続処理用の中間データ）が再構成制御部１２で参照されてコンフィギュレーションデータ１４ｃが生成されることになる。そして、再構成制御部１２は、当該コンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃２にロードし、さらに、バンク＃２から実行バンク＃０に当該コンフィギュレーションデータ１４ｃをロードする（ＤＡＰ動作）。これにより、ＰＥマトリックス１４ａに、１番目のオブジェクトの描画処理「ＲＡＳ−Ｇ」を実行するための回路が構成される。そして、ＰＥマトリックス１４ａは、１番目のオブジェクトのＳｔｒｅａｍ１を解釈し、Ｓｔｒｅａｍ１に規定された「Ｓｈａｐｅ  Ｄａｔａ」に従って、１番目のオブジェクトを対象にして「ＲＡＳ−Ｇ」を実行することで、１番目のオブジェクトを画像メモリ１３０に書き込む（ＤＮＡ動作）。１番目のオブジェクトは連続処理の対象となっていないため、図８に示すＳｔｒｅａｍ１（不連続処理用の中間データ）がＰＥマトリックス１４ａで解釈されて描画処理が行われることになる。
【００７１】
また、再構成制御部１２は、２番目のオブジェクトのＳｔｒｅａｍ０を参照することで、２番目のオブジェクトが連続処理の対象であることを特定し、さらに、Ｓｔｒｅａｍ０に基づき、２番目のオブジェクトの描画処理「ＧＲＡ」を実行するためのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成する。２番目のオブジェクトは連続処理の対象となっているため、図９に示すＳｔｒｅａｍ０（連続処理用の中間データ）が再構成制御部１２で参照されてコンフィギュレーションデータ１４ｃが生成されることになる。そして、再構成制御部１２は、当該コンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃１にロードする（ＤＡＰ動作）。例えば、ＰＥマトリックス１４ａが、１番目のオブジェクトの描画処理「ＲＡＳ−Ｇ」を実行している間に、再構成制御部１２は、２番目のオブジェクトの描画処理「ＧＲＡ」用のコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃１にロードしておく。そして、ＰＥマトリックス１４ａによる１番目のオブジェクトの描画処理「ＲＡＳ−Ｇ」が終了すると、再構成制御部１２は、２番目のオブジェクトの描画処理「ＧＲＡ」用のコンフィギュレーションデータ１４ｃを、バンク＃１から実行バンク＃０にロードする（ＤＡＰ動作）。これにより、ＰＥマトリックス１４ａには、描画処理「ＧＲＡ」を実行するための回路が構成される。
【００７２】
そして、ＰＥマトリックス１４ａは、連続処理用の中間データであるＳｔｒｅａｍ２及びＳｔｒｅａｍ１を参照し、連続処理の対象となっている２〜Ｎ番目のオブジェクトを対象にして「ＧＲＡ」を実行することで、２〜Ｎ番目のオブジェクトを継続して画像メモリ１３０に書き込む（ＤＮＡ動作）。一例として、図１０に示すＳｔｒｅａｍ２を例にとって説明する。ＰＥマトリックス１４ａは、Ｓｔｒｅａｍ２を参照することで、連続する１つ目のオブジェクト＃１（図１２で示す２番目のオブジェクト）の「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」及び「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」をパラメータとして取得する。そして、ＰＥマトリックス１４ａは、Ｓｔｒｅａｍ１を解釈し、オブジェクト＃１の「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」及び「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」で特定されるメモリ領域に規定されたオブジェクト＃１のパラメータ（「Ｓｈａｐｅ  ｄａｔａ」、「ＢｉｔＭａｓｋ＿ＣｏｎｓｔＣｏｌｏｒ」及び「Ｂｂｏｘ」）に従って、オブジェクト＃１を対象として「ＧＲＡ」を実行することでオブジェクト＃１を画像メモリ１３０に書き込む（ＤＮＡ動作）。
【００７３】
さらに、ＰＥマトリックス１４ａは、Ｓｔｒｅａｍ２を参照することで、連続する２つめのオブジェクト＃２（図１２で示す３番目のオブジェクト）の「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」及び「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」をパラメータとして取得する。そして、ＰＥマトリックス１４ａは、Ｓｔｒｅａｍ１を解釈し、オブジェクト＃２の「Ｓｈａｐｅ  Ｔｏｐ  ａｄｄｒｅｓｓ」及び「Ｓｈａｐｅ  Ｌｅｎｇｔｈ」で特定されるメモリ領域に規定されたオブジェクト＃２のパラメータ（「Ｓｈａｐｅ  ｄａｔａ」、「ＢｉｔＭａｓｋ＿ＣｏｎｓｔＣｏｌｏｒ」及び「Ｂｂｏｘ」）に従って、オブジェクト＃２を対象として「ＧＲＡ」を実行することでオブジェクト＃２を画像メモリ１３０に書き込む（ＤＮＡ動作）。ＰＥマトリックス１４ａには描画処理「ＧＲＡ」を実行するための回路が既に構成されているため、ＰＥマトリックス１４ａは当該回路を維持した状態で、オブジェクト＃２を画像メモリ１３０に書き込む。すなわち、連続処理を行う場合、オブジェクト＃２の描画処理「ＧＲＡ」を実行するためのコンフィギュレーションデータ１４ｃは、再構成制御部１２によってＤＤＲメモリ４０上で生成されず、バンクへのコンフィギュレーションデータ１４ｃのロードも実行されない。
【００７４】
ＰＥマトリックス１４ａは、Ｎ番目のオブジェクトまで連続して画像メモリ１３０に書き込む。そして、ＰＥマトリックス１４ａは、Ｓｔｒｅａｍ２を参照し、連続処理終了「Ｅｎｄ  ｏｆ  ＤＮＡ  ｃｏｎｔｉｎｕｏｕｓ  ｅｘｅｃｕｔｅ」を検出した場合、連続処理を終了する。
【００７５】
２〜Ｎ番目のオブジェクトについて連続処理が行われている間、再構成制御部１２は、（Ｎ＋１）番目のオブジェクトのＳｔｒｅａｍ０を参照することで、（Ｎ＋１）番目のオブジェクトが連続処理の対象でないことを特定し、さらに、Ｓｔｒｅａｍ０に規定されたパラメータに基づき、（Ｎ＋１）番目のオブジェクトの描画処理「ＲＡＳ−Ｇ」を実行するためのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成する。そして、再構成制御部１２は、当該コンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃２にロードする。Ｎ番目のオブジェクトの描画処理が終了すると、再構成制御部１２は、バンク＃２から実行バンク＃０にコンフィギュレーションデータ１４ｃをロードする（ＤＡＰ動作）。これにより、ＰＥマトリックス１４ａに、（Ｎ＋１）番目のオブジェクトの描画処理「ＲＡＳ−Ｇ」を実行するための回路が構成される。そして、ＰＥマトリックス１４ａは、（Ｎ＋１）番目のオブジェクトのＳｔｒｅａｍ１を解釈し、Ｓｔｒｅａｍ１に規定された「Ｓｈａｐｅ  Ｄａｔａ」に従って、（Ｎ＋１）番目のオブジェクトを対象にして「ＲＡＳ−Ｇ」を実行することで、（Ｎ＋１）番目のオブジェクトを画像メモリ１３０に書き込む（ＤＮＡ動作）。（Ｎ＋２）番目以降のオブジェクトについても、画像処理装置１００はＳｔｒｅａｍ０，１，２を解釈することで、オブジェクトの連続処理又は不連続処理を実行する。
【００７６】
以上のように、描画処理前に中間データとしてのＳｔｒｅａｍ０，１，２を予め生成しておき、ＰＥマトリックス１４ａがＳｔｒｅａｍ２及びＳｔｒｅａｍ１を解釈することで、オブジェクト連続処理が実行される場合には、描画処理に必要なパラメータがＰＥマトリックス１４ａに設定されて描画処理が実行される。すなわち、再構成制御部１２が各オブジェクトのＳｔｒｅａｍ０を解釈してオブジェクト毎にコンフィギュレーションデータ１４ｃを生成せずに済み、また、オブジェクト毎のコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンクにロードせずに済む。つまり、再構成制御部１２によるＤＡＰ動作が行われなくても、ＰＥマトリックス１４ａによる描画処理が実行されることになる。このように、再構成制御部１２によるコンフィギュレーションデータ１４ｃの生成及びコンフィギュレーションデータ１４ｃのロードの回数が削減されるので、コンフィギュレーションデータ１４ｃの生成時間及びロード時間が削減され、その結果、全体の処理時間が短縮される。換言すると、描画処理前に、Ｓｔｒｅａｍ０，１に加え、ハードウェアであるＰＥマトリックス１４ａが解釈し得るＳｔｒｅａｍ２を予め生成しておくことで、オブジェクト連続処理が実行される場合には、ソフトウェア処理であるＤＡＰ動作が省略され、ハードウェア処理であるＤＮＡ動作（描画処理）が実行される。このようにＤＡＰ動作が省略されるので、全体の処理時間が短縮される。
【００７７】
次に、図１３及び図１４に示すフローチャートを参照して、画像処理装置１００の動作の一例を説明する。
【００７８】
まず、割り込み処理（描画要求）が発生すると、描画処理部１２０に割り込みマスクが設定され（Ｓ０１）、以降、描画処理の状態に応じて処理Ａ，Ｂ，Ｃのいずれかが実行される（Ｓ０２）。ここで、処理Ａは、描画処理開始時に実行される処理であり、バンク＃１及びバンク＃２のいずれにもコンフィギュレーションデータ１４ｃがロードされていないときに実行される処理である。処理Ｂは、描画処理の途中に実行される処理であり、バンク＃１及びバンク＃２の両方にコンフィギュレーションデータ１４ｃがロードされて描画処理が実行されているときに実行される処理である。処理Ｃは、描画処理終了時に実行される処理であり、最後のオブジェクトの描画処理が終了したときに実行される処理である。
【００７９】
まず、処理Ａが実行される場合について説明する。この場合、描画処理のコマンドが選択され（Ｓ０３）、当該描画処理を実行するためのパラメータが設定されてコンフィギュレーションデータ１４ｃがＤＤＲメモリ４０上で生成され（Ｓ０４）、当該コンフィギュレーションデータ１４ｃがＤＤＲメモリ４０からバンク＃１にロードされる（Ｓ０５）。図１４に、この一連の処理の流れを示す。まず、再構成制御部１２は、描画対象のオブジェクトのＳｔｒｅａｍ０を解釈することで描画処理のコマンドを選択する（Ｓ２０）。また、再構成制御部１２は、描画対象のオブジェクトのＳｔｒｅａｍ０を参照することで、当該オブジェクトが連続処理の対象か否かを特定する。当該オブジェクトが連続処理の対象でない場合、再構成制御部１２は、当該オブジェクトのＳｔｒｅａｍ０を参照し、Ｓｔｒｅａｍ０に規定されたパラメータに従い、当該オブジェクトを描画するためのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成する（Ｓ２１）。一方、描画対象のオブジェクトが連続処理の対象である場合、再構成制御部１２は、当該オブジェクトのＳｔｒｅａｍ０及びＳｔｒｅａｍ２を参照し、Ｓｔｒｅａｍ０に規定されたパラメータに従い、当該オブジェクトを描画するためのコンフィギュレーションデータ１４ｃをＤＤＲメモリ４０上で生成する（Ｓ２２）。そして、再構成制御部１２は、コンフィギュレーションデータ１４ｃをＤＤＲメモリ４０からバンク＃１にロードする（Ｓ２３）。図１２に戻って説明すると、再構成制御部１２は、コンフィギュレーションデータ１４ｃをバンク＃１から実行バンク＃０にロードする。そして、ＰＥマトリックス１４ａは、実行バンク＃０にロードされたコンフィギュレーションデータ１４ｃによって構成された機能を実行することで、描画処理を実行する（Ｓ０６）。その後、ステップＳ０３〜Ｓ０５の処理と同様に、描画処理のコマンドが選択され（Ｓ０７）、当該描画処理を実行するためのパラメータが設定されたコンフィギュレーションデータ１４ｃがＤＤＲメモリ４０上で生成され（Ｓ０８）、当該コンフィギュレーションデータ１４ｃがＤＤＲメモリ４０からバンク＃２にロードされる（Ｓ０９）。そして、処理Ａは終了し（Ｓ１０）、割り込みマスクが解除され（Ｓ１１）、割り込み処理は終了する。なお、ステップＳ０７にて描画処理の終了コマンドが検出された場合、処理Ａは終了する（Ｓ１０）。
【００８０】
次に、処理Ｂが実行される場合について説明する。この場合、割り込み処理（描画要求）が発生すると、再構成制御部１２はＰＥマトリックス１４ａの処理を停止させ（Ｓ１２）、コンフィギュレーションデータ１４ｃをバンク＃１又はバンク＃２から実行バンク＃０にロードする。そして、ＰＥマトリックス１４ａは、実行バンク＃０にロードされたコンフィギュレーションデータ１４ｃによって構成された機能を実行することで、描画処理を実行する（Ｓ１３）。その後、ステップＳ０３〜Ｓ０５の処理と同様に、描画処理のコマンドが選択され（Ｓ１４）、当該描画処理を実行するためのパラメータが設定されてコンフィギュレーションデータ１４ｃがＤＤＲメモリ４０上で生成され（Ｓ１５）、当該コンフィギュレーションデータがＤＤＲメモリ４０からバンク＃１又はバンク＃２にロードされる（Ｓ１６）。そして、割り込みマスクが解除され（Ｓ１１）、割り込み処理は終了する。なお、ステップＳ１４にて描画処理の終了コマンドが検出された場合、処理Ｂは終了する（Ｓ１７）。
【００８１】
次に、処理Ｃが実行される場合について説明する。この場合、最後のオブジェクトの描画処理が終了しているため、再構成制御部１２はＰＥマトリックス１４ａの処理を停止させる（Ｓ１８）。そして、割り込みマスクが解除され（Ｓ１１）、割り込み処理は終了する。
【００８２】
以上のように、コンフィギュレーションデータ１４ｃが実行バンク＃０にロードされて描画処理が実行されることになる。
【符号の説明】
【００８３】
１０  ＤＲＰ、１２  再構成制御部、１４  再構成可能回路部、１００  画像処理装置、１１０  中間データ生成部、１２０  描画処理部、１３０  画像メモリ、１４０  印刷装置。
【図１】
2015016586.tif 000003
【図２】
2015016586.tif 000004
【図３】
2015016586.tif 000005
【図４】
2015016586.tif 000006
【図５】
2015016586.tif 000007
【図６】
2015016586.tif 000008
【図７】
2015016586.tif 000009
【図８】
2015016586.tif 000010
【図９】
2015016586.tif 000011
【図１０】
2015016586.tif 000012
【図１１】
2015016586.tif 000013
【図１２】
2015016586.tif 000014
【図１３】
2015016586.tif 000015
【図１４】
2015016586.tif 000016