(57)【要約】【課題】記憶される描画命令の削減を図ること。【解決手段】画像処理装置１００は、複数の図形の各々について、描画命令Ｉと、領域情報と、を取得する。画像処理装置１００は、取得した領域情報が示すラインセットＬの各々について、複数の図形のうちの少なくとも一部が描画される図形が同一の各ラインセットＬが同じグループとなるように分類する。画像処理装置１００は、グループの各々について、グループに分類されたラインセットＬを示す領域情報と、グループに分類されたラインセットＬに少なくとも一部が描画される図形について取得した描画命令Ｉと、を関連付けて記憶部１０１に記憶させる。画像処理装置１００は、ラインセットＬの各々について、ラインセットＬが示す領域情報に関連付けられて記憶部１０１に記憶された描画命令Ｉに基づいて、ラインセットＬについて画像データｉｍｇを生成する。【選択図】図１
2015049687.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置が、
描画領域に描画される複数の図形の各々について、前記図形を前記描画領域に描画させる描画命令と、前記描画領域を分割した複数の分割領域のうちの前記図形の少なくとも一部が描画される分割領域を示す領域情報と、を取得し、
取得した前記領域情報が示す分割領域の各々について、前記複数の図形のうちの少なくとも一部が描画される図形が同一の各分割領域が同じグループとなるように分類し、
分類した前記グループの各々について、前記グループに分類された分割領域を示す領域情報と、前記グループに分類された分割領域に少なくとも一部が描画される図形について取得した前記描画命令と、を関連付けて第１記憶部に記憶させ、
取得した前記領域情報が示す分割領域の各々について、前記分割領域が示す領域情報に関連付けられて前記第１記憶部に記憶された前記描画命令に基づいて、前記分割領域内の各画素を示す画像データを生成する、
処理を実行することを特徴とする画像処理方法。
【請求項２】
前記分類する処理では、前記複数の図形のうちの少なくとも一部が描画される図形が同一であり、かつ前記画像データを生成する処理における前記画像データの生成順が連続する各分割領域が同一のグループとなるように分類することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記グループに分類された分割領域を示す領域情報は、前記グループに分類された分割領域のうち前記生成順が先頭または末尾の分割領域を示す領域情報と、前記グループに分類された分割領域の数を示す情報と、によって表されることを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記生成する処理では、分類した前記グループの各々を対象とし、対象のグループについて前記第１記憶部に記憶された前記描画命令を特定し、特定した前記描画命令に基づいて、前記対象のグループに分類された前記分割領域の各々について前記画像データを生成することを特徴とする請求項１〜３のいずれか一つに記載の画像処理方法。
【請求項５】
前記生成する処理では、前記第１記憶部のうち特定した前記描画命令が記憶された記憶領域を示すアドレスを第２記憶部に記憶させ、前記第２記憶部に記憶された前記アドレスが示す記憶領域に記憶された前記描画命令に基づいて、前記対象のグループに分類された前記分割領域の各々について前記画像データを生成することを特徴とする請求項４に記載の画像処理方法。
【請求項６】
描画領域に描画される複数の図形の各々について、前記図形を前記描画領域に描画させる描画命令と、前記描画領域を分割した複数の分割領域のうちの前記図形の少なくとも一部が描画される分割領域を示す領域情報と、を取得する取得部と、
前記取得部が取得した前記領域情報が示す分割領域の各々について、前記複数の図形のうちの少なくとも一部が描画される図形が同一の各分割領域が同じグループとなるように分類する分類部と、
前記分類部が分類した前記グループの各々について、前記グループに分類された分割領域を示す領域情報と、前記グループに分類された分割領域に少なくとも一部が描画される図形について取得した前記描画命令と、を関連付けて記憶部に記憶させる関連付け部と、
取得した前記領域情報が示す分割領域の各々について、前記分割領域が示す領域情報に前記関連付け部によって関連付けられて前記記憶部に記憶された前記描画命令に基づいて、前記分割領域内の各画素を示す画像データを生成する生成部と、
を有することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理方法、および画像処理装置に関する。
【背景技術】
【０００２】
従来、画像処理において、一括描画単位がそれぞれ異なるフレームバッファ方式、タイリング方式、ラインバッファ方式などの技術が公知である（例えば、以下特許文献１〜３参照。）。
【０００３】
また、画像処理において、表示面を分割した分割領域ごとに、分割領域に描画される図形の頂点および位置情報や図形の各辺の式などの図形情報を出力し、分割領域内の各画素の画像データを生成する技術が公知である（例えば、以下特許文献４参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−８４７９８号公報
【特許文献２】特開２０１２−１８５６９７号公報
【特許文献３】国際公開第２００６／０７３１３１号
【特許文献４】特開２０１３−３００６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、分割領域ごとに描画命令を記憶領域に記憶すると、記憶されるデータ量が多くなるという問題点がある。
【０００６】
１つの側面では、本発明は、記憶される描画命令の削減を図ることができる画像処理方法、および画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、描画領域に描画される複数の図形の各々について、前記図形を前記描画領域に描画させる描画命令と、前記描画領域を分割した複数の分割領域のうちの前記図形の少なくとも一部が描画される分割領域を示す領域情報と、を取得し、取得した前記領域情報が示す分割領域の各々について、前記複数の図形のうちの少なくとも一部が描画される図形が同一の各分割領域が同じグループとなるように分類し、分類した前記グループの各々について、前記グループに分類された分割領域を示す領域情報と、前記グループに分類された分割領域に少なくとも一部が描画される図形について取得した前記描画命令と、を関連付けて第１記憶部に記憶させ、取得した前記領域情報が示す分割領域の各々について、前記分割領域が示す領域情報に関連付けられて前記第１記憶部に記憶された前記描画命令に基づいて、前記分割領域内の各画素を示す画像データを生成する画像処理方法、および画像処理装置が提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、記憶される描画命令の削減を図ることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明にかかる画像処理装置による一動作例を示す説明図である。
【図２Ａ】図２Ａは、本発明にかかる画像処理装置を利用したシステムのハードウェア構成例を示すブロック図である。
【図２Ｂ】図２Ｂは、本発明にかかる画像処理装置の機能ブロック例を示す説明図である。
【図３】図３は、描画される図形例を示す説明図である。
【図４】図４は、頂点情報例を示す説明図である。
【図５】図５は、各図形の描画命令例を示す説明図である。
【図６】図６は、ソート前中間データ例を示す説明図である。
【図７】図７は、継続数バッファＬｃｂ例と開始番号バッファＬｓｂ例とを示す説明図である。
【図８】図８は、継続数バッファＬｃｂと開始番号バッファＬｓｂの更新例１を示す説明図である。
【図９】図９は、継続数バッファＬｃｂと開始番号バッファＬｓｂの更新例２を示す説明図である。
【図１０】図１０は、継続数バッファＬｃｂと開始番号バッファＬｓｂの更新例３を示す説明図である。
【図１１】図１１は、継続数バッファＬｃｂと開始番号バッファＬｓｂの更新例４を示す説明図である。
【図１２】図１２は、継続数バッファＬｃｂと開始番号バッファＬｓｂの更新例５を示す説明図である。
【図１３】図１３は、継続数バッファＬｃｂと開始番号バッファＬｓｂの更新例６を示す説明図である。
【図１４】図１４は、図３に示す図形例に関する継続数バッファＬｃｂおよび開始番号バッファＬｓｂの更新遷移例を示す説明図（その１）である。
【図１５】図１５は、図３に示す図形例に関する継続数バッファＬｃｂおよび開始番号バッファＬｓｂの更新遷移例を示す説明図（その２）である。
【図１６】図１６は、図３に示す図形例に関する継続数バッファＬｃｂおよび開始番号バッファＬｓｂの更新遷移例を示す説明図（その３）である。
【図１７】図１７は、ソート済中間データ生成例１を示す説明図である。
【図１８】図１８は、ソート済中間データ生成例２を示す説明図である。
【図１９】図１９は、図３に示す図形例に関するソート済中間データ例を示す説明図である。
【図２０】図２０は、ラインセットＬごとのソート済中間データ例と本発明のソート済中間データ例との比較を示す説明図である。
【図２１】図２１は、描画データ復元例を示す説明図である。
【図２２】図２２は、画像処理装置による画像処理手順例を示すフローチャート（その１）である。
【図２３】図２３は、画像処理装置による画像処理手順例を示すフローチャート（その２）である。
【図２４】図２４は、画像処理装置によるソート前処理手順例を示すフローチャートである。
【図２５】図２５は、第１更新処理手順例を示すフローチャートである。
【図２６】図２６は、第２更新処理手順例を示すフローチャートである。
【図２７】図２７は、第３更新処理手順例を示すフローチャートである。
【図２８】図２８は、ソート処理手順例１を示すフローチャートである。
【図２９】図２９は、ソート処理手順例２を示すフローチャートである。
【図３０】図３０は、画像データ生成処理手順例を示すフローチャートである。
【図３１】図３１は、画像処理装置を利用したシステム例を示す説明図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明にかかる画像処理方法、および画像処理装置の実施の形態を詳細に説明する。
【００１１】
図１は、本発明にかかる画像処理装置による一動作例を示す説明図である。画像処理装置１００は、描画領域ａｒｅａの各画素の画像データｉｍｇを生成するための装置である。画像処理装置１００は、例えば、図２Ａに示すＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの特定の装置であってもよいし、図２Ａに示すＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が画像処理プログラムを実行することにより実現してもよい。描画領域ａｒｅａは、例えば、ディスプレイなどの表示面などが挙げられる。
【００１２】
画像処理装置１００は、複数の図形の各々について、図形を描画領域ａｒｅａに描画させる描画命令Ｉと、描画領域ａｒｅａを分割した複数の分割領域のうちの図形の少なくとも一部が描画される分割領域を示す領域情報と、を取得する。複数の図形は、描画領域ａｒｅａに描画される。図１の例では、図形Ａと図形Ｂとが描画領域ａｒｅａに描画される。描画命令Ｉとは、図形を作成するための作成情報を数値や式として表現した命令であり、例えば、ベクター形式で記述された命令である。具体的には、描画命令Ｉが実行されると、複数の図形の各々の頂点を示す頂点情報１０２から描画命令Ｉに記述された頂点に基づき頂点データが取得される。頂点情報１０２は、例えば、図２Ａに示すＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ディスクなどの記憶装置に記憶されてある。または、頂点情報１０２は、例えば、図２Ｂに示す内蔵ＳＲＡＭなどに記憶されてある。図１の例では、図形Ａと図形Ｂとが描画領域ａｒｅａに描画される。ここで、分割領域は、例えば、ラインセットＬと称する。ラインセットＬのサイズは、例えば、ラインバッファのサイズである。図１において、描画領域ａｒｅａの横方向のサイズがラインバッファのサイズであるため、ラインセットＬは、描画領域ａｒｅａを縦方向に分割した分割領域である。また、領域情報は、例えば、複数のラインセットＬのうち図形が描画される描画範囲を示す情報である。領域情報は、例えば、図２Ａに示すＲＡＭ、ＲＯＭ、ディスクなどの記憶装置に記憶されてある。描画範囲を示す情報は、例えば、ラインセット開始番号Ｌｓと、ラインセット開始番号Ｌｓから図形が少なくとも一部描画されるラインセットＬの数であるラインセット継続数Ｌｃと、を有する。ここでラインセットＬの番号とは、例えば、描画領域ａｒｅａの縦方向に描画順に先頭から付した番号である。
【００１３】
つぎに、画像処理装置１００は、取得した領域情報が示すラインセットＬの各々について、複数の図形のうちの少なくとも一部が描画される図形が同一の各ラインセットＬが同じグループとなるように分類する。また、画像処理装置１００は、ラインセットＬの各々について、複数の図形のうちの少なくとも一部が描画される図形が同一であり、かつ画像データｉｍｇを生成する処理における画像データｉｍｇの生成順が連続する各分割領域が同一のグループとなるように分類する。本実施の形態では、ラインセットＬごとにラインセットＬの各画素の画像データｉｍｇを生成するため、隣接するラインセットＬを同一のグループに分類することにより、画像データｉｍｇ生成時の制御の容易化を図ることができる。生成順は、例えば、描画領域ａｒｅａへの画像データの描画順である。
【００１４】
例えば、画像処理装置１００は、ラインセットＬの各々について、少なくとも一部が描画される図形を特定し、特定結果が同一のラインセットを同一のグループにし、かつ生成順が連続するラインセットＬを同一のグループにする。例えば、ラインセットＬがラインバッファサイズであると、生成順が連続するラインセットＬは、隣接するラインセットＬとなる。
【００１５】
例えば、図形Ａは、ラインセットＬ［１］からラインセットＬ［４］までに描画され、図形Ｂは、ラインセットＬ［４］からラインセットＬ［６］までに描画される。そのため、画像処理装置１００は、例えば、ラインセットＬ［１］からラインセットＬ［３］までを図形Ａのみが描画されるグループＧ１に分類する。画像処理装置１００は、ラインセットＬ［４］を図形Ａおよび図形Ｂが描画されるグループＧ２に分類する。画像処理装置１００は、ラインセットＬ［５］とラインセットＬ[６]を図形Ｂのみが描画されるグループＧ３に分類する。
【００１６】
画像処理装置１００は、グループの各々について、グループに分類されたラインセットＬを示す領域情報と、グループに分類されたラインセットＬに少なくとも一部が描画される図形について取得した描画命令Ｉと、を関連付けて記憶部１０１に記憶させる。記憶部１０１は、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。また、記憶部１０１は、例えば、画像処理装置１００の外部のメモリであってもよいし、内部のメモリであってもよい。記憶部１０１が外部のメモリである場合、例えば、記憶部１０１は、図２Ａに示すＲＡＭなどである。内部のメモリである場合、例えば、記憶部１０１は、図２Ｂに示す内蔵ＳＲＡＭなどである。例えば、ラインセットＬを示す領域情報は、例えば、グループに分類されたラインセットＬのうち、生成順が先頭のラインセットＬの番号であるラインセット開始番号Ｌｓと、グループに分類されたラインセットＬの数であるラインセット継続数Ｌｃと、を有する。
【００１７】
例えば、画像処理装置１００は、グループＧ１について、ラインセット開始番号Ｌｓとして１と、ラインセット継続数Ｌｃとして３と、図形Ａの描画命令群ＩＡと、を記憶部１０１に関連付けて記憶させる。例えば、画像処理装置１００は、グループＧ２について、ラインセット開始番号Ｌｓとして４と、ラインセット継続数Ｌｃとして１と、図形Ａの描画命令群ＩＡと図形Ｂの描画命令群ＩＢと、を記憶部１０１に関連付けて記憶させる。例えば、画像処理装置１００は、グループＧ３について、ラインセット開始番号Ｌｓとして５と、ラインセット継続数Ｌｃとして２と、図形Ｂの描画命令群ＩＢと、を記憶部１０１に関連付けて記憶させる。
【００１８】
つぎに、画像処理装置１００は、取得した領域情報が示すラインセットＬの各々について、ラインセットＬが示す領域情報に関連付けられて記憶部１０１に記憶された描画命令Ｉに基づいて、ラインセットＬ内の各画素を示す画像データｉｍｇを生成する。具体的には、画像処理装置１００は、ラインセットＬを番号順に選択する。そして、画像処理装置１００は、ラインセットＬを選択する都度、選択したラインセットＬの番号に基づいて記憶部１０１に記憶された描画命令Ｉを取得する。そして、画像処理装置１００は、取得した描画命令Ｉを実行することにより、ラインセットＬの各画素の画素データを生成する。生成された画素データは、例えば、ラインバッファなどに記憶される。
【００１９】
このように、少なくとも一部が描画される図形の組み合わせごとに分割領域をグループ分けし、グループごとに描画命令Ｉを記憶させることにより、分割領域ごとの画像データを生成するために記憶される描画命令の削減を図ることができる。
【００２０】
図２Ａは、本発明にかかる画像処理装置を利用したシステムのハードウェア構成例を示すブロック図である。図２Ａにおいて、システム２７０は、ＣＰＵ２５１と、ＧＰＵ２５２と、ＲＯＭ２５３と、ＲＡＭ２５４と、ディスクドライブ２５５と、ディスク２５６と、を有する。システム２７０は、Ｉ／Ｆ２５７と、入力装置２５８と、出力装置２５９と、を有する。また、各部はバス２６０によってそれぞれ接続される。
【００２１】
ここで、ＣＰＵ２５１は、システム２７０の全体の制御を司る。ＧＰＵ２５２は、画像処理に特化した装置である。ＲＯＭ２５３は、ブートプログラムなどのプログラムを記憶する。ＲＡＭ２５４は、ＣＰＵ２５１のワークエリアとして使用される。ディスクドライブ２５５は、ＣＰＵ２５１の制御にしたがってディスク２５６に対するデータのリード／ライトを制御する。ディスク２５６は、ディスクドライブ２５５の制御で書き込まれたデータを記憶する。ディスク２５６としては、磁気ディスク、光ディスクなどが挙げられる。
【００２２】
Ｉ／Ｆ２５７は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワークＮＥＴに接続され、このネットワークＮＥＴを介して他の装置に接続される。そして、Ｉ／Ｆ２５７は、ネットワークＮＥＴと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２５７には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００２３】
入力装置２５８は、キーボード、マウス、タッチパネルなど利用者の操作により、各種データの入力を行うインターフェースである。また、入力装置２５８は、カメラから画像や動画を取り込むこともできる。また、入力装置２５８は、マイクから音声を取り込むこともできる。出力装置２５９は、ＣＰＵ２５１またはＧＰＵ２５２の指示により、データを出力するインターフェースである。出力装置２５９には、ディスプレイが挙げられる。
【００２４】
例えば、画像処理装置１００がＧＰＵ２５２である場合、ＧＰＵ２５２は、ＣＰＵ２５１からの指示に応じて出力装置２５９に表示させる画像データを生成する。
【００２５】
図２Ｂは、本発明にかかる画像処理装置の機能ブロック例を示す説明図である。画像処理装置１００は、描画命令ソート前処理部２０２と、描画命令ソート実行部２０３と、描画実行部２０４と、を有する。画像処理装置１００は、例えば、図２Ａに示したＧＰＵ２５２であってもよい。例えば、ＧＰＵ２５２である場合、各部は、論理積回路、否定論理回路、論理和回路や、ラッチ回路であるＦＦ（Ｆｌｉｐ  Ｆｌｏｐ）などの素子によって形成されてもよい。また、各部は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によって実現されてもよい。具体的には、例えば、上述した各部の機能をハードウェア記述言語などによってネットリストに機能定義し、そのネットリストを論理合成してＡＳＩＣやＰＬＤに与えることにより、各部を実現してもよい。
【００２６】
また、画像処理装置１００は、例えば、図２Ａに示したＣＰＵ２５１であってもよい。例えば、ＣＰＵ２５１である場合、各部は、画像処理装置１００がアクセス可能な記憶装置に記憶された画像処理プログラムにコーディングされてもよい。そして、画像処理装置１００が記憶装置から画像処理プログラムを読み出して、画像処理プログラムにコーディングされた処理を実行する。これにより、各部の処理が実現されてもよい。
【００２７】
また、画像処理装置１００は、記憶部として内蔵ＳＲＡＭ２０１を有する。ここでは、描画命令Ｉ、頂点データ、ソート前中間データ、ソート済中間データなどを記憶させるための専用の内蔵ＳＲＡＭを例に挙げているが、これに限らず、他の装置と共有のＳＲＡＭやディスクなどが使用されてもよい。
【００２８】
描画命令ソート前処理部２０２は、描画領域ａｒｅａに描画される複数の図形の各々について、図形を描画させる描画命令Ｉと、図形の頂点を示す頂点データと、を取得する。
【００２９】
図３は、描画される図形例を示す説明図である。ここでは、描画領域ａｒｅａに図形１〜図形１７まで描画される例を挙げる。
【００３０】
図４は、頂点情報例を示す説明図である。頂点情報１０２は、例えば、描画面に表示される図形の頂点ごとに頂点を示す情報である。具体的には、頂点データ群は、頂点ごとに、頂点番号、ｘ、ｙ、ｚ、ｎｘ、ｎｙ、ｎｚ、ｓ、ｔのフィールドを有する。各フィールドに情報が設定されることにより、各頂点を示す頂点データ（４０１−１〜４０１−４など）として記憶される。
【００３１】
ｘ軸とｙ軸とｚ軸とからなる３次元の直交座標系が予め定義されてある。ｘ、ｙ、ｚのフィールドには、各座標値が設定される。ｘ、ｙ、ｚのフィールドに設定された情報は頂点の位置を示す。ｎｘ、ｎｙ、ｎｚのフィールドには、法線ベクトルの座標値が設定される。ｎｘ、ｎｙ、ｎｚのフィールドに設定された情報は法線ベクトルの位置を示す。ｓ、ｔのフィールドには、テクスチャーの座標値が設定される。ｓ、ｔのフィールドに設定された情報は、テクスチャーの位置を示す。頂点情報１０２は、例えば、内蔵ＲＡＭ２０１内の頂点データ領域２１２に記憶される。ここでは、頂点データとして、３次元を例に挙げたが２次元であってもよい。
【００３２】
図５は、各図形の描画命令例を示す説明図である。取得部２２１は、描画領域ａｒｅａに描画される図形ごとに、頂点データに基づいて図形を描画領域ａｒｅａに描画させる描画命令Ｉを取得する。各描画命令Ｉは、例えば、内蔵ＳＲＡＭ２０１内の描画命令データ領域２１１に記憶されてある。
【００３３】
具体的に、取得部２２１は、第１描画命令デコーダ２２３と、描画範囲算出部２２４と、ソート前中間データ生成部２２５と、を有する。具体的には、第１描画命令デコーダ２２３は、描画命令データ領域２１１から、未取得の図形を描画させる描画命令Ｉを読み出すことにより、描画命令Ｉを取得する。第１描画命令デコーダ２２３は、取得した描画命令Ｉをデコードして頂点データ取得指示信号を描画範囲算出部２２４へ出力する。なお、第１描画命令デコーダ２２３は、１図形を描画させる描画命令Ｉ単位で取得する。
【００３４】
描画範囲算出部２２４は、頂点データ取得指示信号が示す頂点データを頂点データ領域２１２から取得する。そして、描画範囲算出部２２４は、取得した頂点データに基づいて描画領域ａｒｅａ上における頂点位置を算出する。なお、頂点位置を算出する際に、行列乗算によるアフィン変換を施すなどの座標変換が行われるが、詳細な説明は省略する。そして、描画範囲算出部２２４は、頂点位置に基づいて図形がいずれのラインセットＬからいずれのラインセットＬまでに描画されるかを算出する。これにより、描画範囲算出部２２４は、複数のラインセットＬのうち、図形が描画されるラインセットＬを示す情報を算出する。図３の例では、描画領域ａｒｅａを所定方向に分割したラインセットＬ［０］〜ラインセットＬ［１１］までの１２のラインセットＬがある。ここで、ラインセットＬの横サイズは、画面フルサイズと同等であり、縦サイズは１画素〜数画素である。図形が描画されるラインセットＬを示す情報としては、例えば、図形の描画が開始するラインセット開始番号Ｌｓと、ラインセット開始番号Ｌｓから図形の描画が終了するラインセット終了番号までのラインセット継続数Ｌｃと、が算出される。
【００３５】
ソート前中間データ生成部２２５は、描画命令Ｉと、ラインセット開始番号Ｌｓと、ラインセット継続数Ｌｃと、に基づいてソート前中間データを生成する。具体的には、ソート前中間データ生成部２２５は、ラインセット開始番号Ｌｓおよびラインセット継続数Ｌｃを埋め込んだ描画範囲通知命令を生成する。そして、ソート前中間データ生成部２２５は、描画範囲通知命令を第１描画命令デコーダ２２３からの描画命令Ｉの直前に挿入することにより、ソート前中間データを生成する。そして、ソート前中間データ生成部２２５は、生成されたソート前中間データを内蔵ＳＲＡＭ２０１上のソート前中間データ領域２１３に書き込む。
【００３６】
図６は、ソート前中間データ例を示す説明図である。ソート前中間データは、例えば、描画される図形の各々について、ラインセット開始番号Ｌｓおよびラインセット継続数Ｌｃを埋め込んだ描画範囲通知命令と、描画命令Ｉと、を有する。
【００３７】
つぎに、分類部２２２は、取得した領域情報が示す分割領域の各々について、複数の図形のうちの少なくとも一部が描画される図形が同一の各分割領域が同じグループとなるように分類する。また、分類部２２２は、さらに、画像データの生成順が隣接する各分割領域が同一のグループとなるように分類する。画像データの生成順は、例えば、ディスプレイに表示させる場合、１画面のうちの表示順である。図６の例では、画像データの生成順は、ラインセットＬの並び順であり、ラインセットＬ［０］からラインセットＬ［１１］の順である。
【００３８】
具体的には、分類部２２２は、継続数バッファＬｃｂと、前処理用継続数カウンタＬｃｃｐと、継続数比較部２２６と、開始番号参照更新部２２７と、開始番号バッファＬｓｂと、を有する。
【００３９】
図７は、継続数バッファＬｃｂ例と開始番号バッファＬｓｂ例とを示す説明図である。継続数バッファＬｃｂは、ラインセットＬごとに、同一のソート済中間データが繰り返し現れるラインセットＬ数を保持するバッファである。ここで、ｉは、継続数バッファＬｃｂのデータ記憶位置を指定するためのインデックスとする。また、開始番号バッファＬｓｂは、同一のソート済中間データが最初に現れるラインセット番号である。ここで、ｉは、開始番号バッファＬｓｂのデータ記憶位置を指定するためのインデックスである。
【００４０】
上述したラインセット継続数Ｌｃとラインセット開始番号Ｌｓは図形ごとに描画命令Ｉに付随する情報である。これに対して、継続数バッファＬｃｂおよび開始番号バッファＬｓｂは、任意のラインセットＬにおいて複数の図形が描画されることがあるため、同一描画命令群で繰り返し描画可能なラインセットＬの配置に関する情報である。各バッファのエントリ数は、１フレームの高さをラインバッファｌｂｕｆの高さにより除算した数である。例えば、１フレームの高さが４８０画素、ラインバッファｌｂｕｆの高さが４画素であれば、エントリ数は１２０であり、ｉは０〜１１９となる。なお、上述したように、本実施の形態では、エントリ数を１２とする。開始番号バッファＬｓｂと、継続数バッファＬｃｂと、の値の組み合わせよって、各ラインセットＬのグループを特定可能である。
【００４１】
継続数比較部２２６は、描画命令Ｉソート前処理段階において、図形ごとの描画範囲と、継続数バッファＬｃｂの対応する値と、を比較する。そして、継続数比較部２２６は、比較結果に応じて継続数バッファＬｃｂの更新や設定値を保持する。継続数比較部２２６は、カウンタリセットフラグを有する。
【００４２】
継続数前値バッファＬｃｐは、継続数バッファＬｃｂの更新前の値を一時的に保持しておき、条件判定の比較値として用いる。
【００４３】
前処理用継続数カウンタＬｃｃｐは、継続数比較部２２６による比較結果に基づいて、ラインセットＬごとに継続数を算出するためのカウンタである。
【００４４】
開始番号参照更新部２２７は、更新済の継続数バッファＬｃｂの値に基づいて継続数比較部２２６による比較結果に基づいて、開始番号バッファＬｓｂを更新する。
【００４５】
開始番号一時バッファＬｓｔは、開始番号バッファＬｓｂの更新前の値が一時的に保持されるバッファであり、保持された値は条件判定の比較値として用いられる。
【００４６】
ここで、理解の容易化のために、まず、描画範囲の重なりが異なる２つの図形について、開始番号バッファＬｓｂと継続数バッファＬｃｂとの更新例を５つ挙げて説明し、３つの図形について、開始番号バッファＬｓｂと継続数バッファＬｃｂとの更新例を１つ挙げて説明する。また、ここでの更新例は、簡易的な説明であって、詳細な更新例については後述するフローチャートに示す。
【００４７】
図８は、継続数バッファＬｃｂと開始番号バッファＬｓｂの更新例１を示す説明図である。更新例１では、図形１の描画範囲が図形２の描画範囲よりも広く、図形２の描画範囲が図形１の描画範囲に含まれる。図形１の描画範囲はラインセットＬ［１］からラインセットＬ［７］までである。図形１のラインセット開始番号は１であり、図形１のラインセット継続数は７である。図形２の描画範囲はラインセットＬ［３］からラインセットＬ［５］までである。図形２のラインセット開始番号は３であり、図形２のラインセット継続数は３である。分類部２２２は、継続数バッファＬｃｂと開始番号バッファＬｓｂとのそれぞれの値を０でリセットする（ステップＳ８０）。
【００４８】
継続数バッファＬｃｂの現在値がリセット値０である。そのため、継続数比較部２２６は、継続数バッファＬｃｂ［１］〜［７］までに図形１のラインセット開始番号Ｌｓと図形１のラインセット継続数Ｌｃとに基づく値を書き込む（ステップＳ８１）。
【００４９】
そして、図形１のラインセット開始番号は１であるため、開始番号参照更新部２２７は、開始番号バッファＬｓｂの［１］から［７］までに図形１のラインセット開始番号を書き込む（ステップＳ８２）。
【００５０】
つぎに、図形２のラインセット開始番号Ｌｓは３であり、図形２のラインセット継続数Ｌｃが３である。そのため、図形２については、ラインセットＬ［３］の継続数が３であり、ラインセットＬ［４］の継続数が２であり、ラインセットＬ［５］の継続数が１である。図形２についてのラインセットＬの継続数とは、当該ラインセットＬの番号からラインセット終了番号までのラインセットＬの数である。
【００５１】
継続数比較部２２６は、現在の継続数バッファＬｃｂ［３］、［４］、［５］はそれぞれ５、４、３である。そのため、継続数比較部２２６は、図形２について各ラインセットＬの継続数が対応する現在の継続数バッファＬｃｂの値より小さいため、図形２についてのラインセットＬの継続数により上書きする（ステップＳ８３）。
【００５２】
つぎに、開始番号参照更新部２２７は、図形２のラインセット開始番号Ｌｓは３であるため、開始番号バッファＬｓｂ［３］から［５］までに三角形２のラインセット開始番号を書き込む（ステップＳ８４）。
【００５３】
図形１によってラインセットＬ［１］〜［７］が１つのグループに分類されていたが、図形２によってラインセットＬ［１］，［２］と、ラインセットＬ［３］〜［５］と、ラインセットＬ［６］，［７］と、の３つのグループに分類される。そのため、継続数比較部２２６は、継続数バッファＬｃｂ［１］，［２］を適正値で更新し、継続数バッファＬｃｂ［６］，［７］を更新しない（ステップＳ８５）。そして、開始番号参照更新部２２７は、開始番号バッファＬｓｂ［６］，［７］を６に更新し、開始番号バッファＬｓｂ［１］，［２］を更新しない（ステップＳ８６）。各ステップについての詳細は、フローチャートに示す。
【００５４】
ステップＳ８６における開始番号バッファＬｓｂと継続数バッファＬｃｂとによれば、ラインセットＬ［１］，［２］と、ラインセットＬ［３］〜［５］と、ラインセットＬ［６］，［７］と、の３つのグループＧ１〜Ｇ３に分類される。
【００５５】
図９は、継続数バッファＬｃｂと開始番号バッファＬｓｂの更新例２を示す説明図である。更新例２では、図形２の描画範囲が図形１の描画範囲よりも広く、図形１の描画範囲が図形２の描画範囲に含まれる。図形１の描画範囲はラインセットＬ［３］からラインセットＬ［５］までである。図形１のラインセット開始番号は３であり、図形１のラインセット継続数は３である。図形２の描画範囲はラインセットＬ［１］からラインセットＬ［６］までである。図形２のラインセット開始番号は１であり、図形２のラインセット継続数は６である。分類部２２２は、継続数バッファＬｃｂと開始番号バッファＬｓｂとのそれぞれの値を０でリセットする（ステップＳ９０）。
【００５６】
まず、継続数バッファＬｃｂの現在値がリセット値０である。そのため、継続数比較部２２６は、継続数バッファＬｃｂ［３］から［５］までに図形１のラインセット開始番号Ｌｓと図形１のラインセット継続数Ｌｃとに基づく値を書き込む（ステップＳ９１）。
【００５７】
そして、図形１のラインセット開始番号Ｌｓは３であるため、開始番号参照更新部２２７は、開始番号バッファＬｓｂ［３］から［５］までに図形１のラインセット開始番号Ｌｓを書き込む（ステップＳ９２）。
【００５８】
つぎに、図形２のラインセット開始番号Ｌｓは１であり、図形２のラインセット継続数Ｌｃが６である。そのため、図形２については、ラインセットＬ［１］の継続数が６であり、ラインセットＬの順に継続数が単調減少してラインセットＬ［６］の継続数が１である。現在値が設定されている継続数バッファＬｃｂ［３］から［５］よりも大きい範囲であるため、図形２の描画範囲は、図形１の描画範囲によって３つのグループに分断される。継続数比較部２２６は、現在値が設定されていないかつ図形２の描画範囲に含まれるラインセットＬの継続数バッファＬｃｂ［１］，［２］，［６］を、分断長により補正した図形２についてのラインセット継続数により更新する（ステップＳ９３）。分断長とは、例えば、描画の開始位置から分断が開始される直前の位置までのラインセット数である。また、分断長とは、例えば、分断の開始位置から分断の終了位置までのラインセット数である。継続数バッファＬｃｂ［１］，［２］についての分断長は、２であり、継続数バッファＬｃｂ［６］についての分断長は、３である。図形２についてのラインセットＬ［１］の継続数６は２に補正され、図形２についてのラインセットＬ［２］の継続数５は１に補正される。図形２についてのラインセットＬ［６］の継続数１は１に補正される。
【００５９】
開始番号参照更新部２２７は、図形２の描画範囲のうち、図形１の描画範囲と一致しないラインセットＬ［１］，［２］，［６］に対応する開始番号バッファＬｓｂ［１］，［２］，［６］にそれぞれ１と１と６を書き込む（ステップＳ９４）。
【００６０】
ステップＳ９４における開始番号バッファＬｓｂと継続数バッファＬｃｂとによれば、ラインセットＬ［１］，［２］と、ラインセットＬ［３］〜［５］と、ラインセットＬ［６］と、の３つのグループＧ１〜Ｇ３に分類される。
【００６１】
図１０は、継続数バッファＬｃｂと開始番号バッファＬｓｂの更新例３を示す説明図である。更新例３では、図形１の継続数と図形２の継続数とは同一であるが、図形２の描画範囲と図形１の描画範囲との一部が重なる。図形１の描画範囲はラインセットＬ［３］〜［６］までである。図形１のラインセット開始番号は３であり、図形１のラインセット継続数は４である。図形２の描画範囲はラインセットＬ［１］〜［４］までである。図形２のラインセット開始番号は１であり、図形２のラインセット継続数は４である。分類部２２２は、継続数バッファＬｃｂと開始番号バッファＬｓｂとのそれぞれの値を０でリセットする（ステップＳ１００）。
【００６２】
まず、継続数バッファＬｃｂの現在値がリセット値０である。そのため、継続数比較部２２６は、継続数バッファＬｃｂ［３］〜［６］までに図形１のラインセット開始番号Ｌｓと図形１のラインセット継続数Ｌｃとに基づく値を書き込む（ステップＳ１０１）。
【００６３】
そして、図形１のラインセット開始番号Ｌｓは３であるため、開始番号参照更新部２２７は、開始番号バッファＬｓｂ［３］〜［６］までに図形１のラインセット開始番号Ｌｓを書き込む（ステップＳ１０２）。
【００６４】
つぎに、図形２のラインセット開始番号Ｌｓは１であり、図形２のラインセット継続数Ｌｃが４である。そのため、図形２については、ラインセットＬ［１］の継続数が４であり、ラインセットＬの順に継続数が単調減少してラインセットＬ［４］の継続数が１である。図形２についてのラインセットＬの継続数と現在値が設定されている継続数バッファＬｃｂ［３］から［６］とは一部重なっているため、図形２の描画範囲と図形１の描画範囲とは互いに２グループに分断される。継続数比較部２２６は、継続数バッファＬｃｂ［１］，［２］と継続数バッファＬｃｂ［３］，［４］をそれぞれ分断長により補正した図形２についてのラインセット継続数により更新する（ステップＳ１０３）。図形２についてのラインセットＬ［１］の継続数４は２に補正され、図形２についてのラインセットＬ［２］の継続数３は１に補正される。図形２についてのラインセットＬ［３］の継続数２は２に補正され、図形２についてのラインセットＬ［４］の継続数１は１に補正される。
【００６５】
つぎに、図形２の開始番号Ｌｓは１であり、現在の継続数バッファＬｃｂ［１］は２であるため、開始番号参照更新部２２７は、開始番号バッファＬｓｂ［１］，［２］に図形２の開始番号ＬＳである１を書き込む（ステップＳ１０４）。ラインセットＬ［３］，［４］に対応する開始番号バッファＬｓｂ［３］，［４］には適正値が入っているため、開始番号参照更新部２２７は、更新しない。
【００６６】
開始番号参照更新部２２７は、図形１のみが描画されるラインセットＬ［５］，［６］に対応する開始番号バッファＬｓｂ［５］，［６］を適正値５により更新する（ステップＳ１０５）。
【００６７】
ステップＳ１０５における開始番号バッファＬｓｂと継続数バッファＬｃｂとによれば、ラインセットＬ［１］，［２］と、ラインセットＬ［３］，［４］と、ラインセットＬ［５］，［６］と、の３つのグループＧ１〜Ｇ３に分類される。
【００６８】
図１１は、継続数バッファＬｃｂと開始番号バッファＬｓｂの更新例４を示す説明図である。更新例４では、図形１の継続数と図形２の継続数とは同一であるが、図形２の描画範囲と図形１の描画範囲との一部が重なる。図形１の描画範囲はラインセットＬ［１］〜［４］までである。図形１のラインセット開始番号は１であり、図形１のラインセット継続数は４である。図形２の描画範囲はラインセットＬ［３］〜［６］までである。図形２のラインセット開始番号は３であり、図形２のラインセット継続数は４である。分類部２２２は、継続数バッファＬｃｂと開始番号バッファＬｓｂとのそれぞれの値を０でリセットする（ステップＳ１１０）。
【００６９】
まず、継続数バッファＬｃｂの現在値がリセット値０である。そのため、継続数比較部２２６は、継続数バッファＬｃｂ［１］〜［４］までに図形１のラインセット開始番号Ｌｓと図形１のラインセット継続数Ｌｃとに基づく値を書き込む（ステップＳ１１１）。
【００７０】
そして、図形１のラインセット開始番号Ｌｓは１であり、開始番号参照更新部２２７は、開始番号バッファＬｓｂ［１］〜［４］までに図形１のラインセット開始番号Ｌｓを書き込む（ステップＳ１１２）。
【００７１】
つぎに、図形２のラインセット開始番号Ｌｓは３であり、図形２のラインセット継続数Ｌｃは４である。そのため、図形２については、ラインセットＬ［３］の継続数が４であり、ラインセットＬの順に継続数が単調減少してラインセットＬ［６］の継続数が１である。図形２についてのラインセットＬの継続数と値が設定されている継続数バッファＬｃｂ［１］から［４］とは一部重なっているため、図形２の描画範囲と図形１の描画範囲とは互いに２グループに分断される。継続数比較部２２６は、継続数バッファＬｃｂ［５］，［６］をそれぞれ分断長により補正した図形２についてのラインセット継続数により更新する（ステップＳ１１３）。図形２についてのラインセットＬ［５］の継続数２は２に補正され、図形２についてのラインセットＬ［６］の継続数１は１に補正される。また、図形２についてのラインセットＬ［３］の継続数４は２に補正され、図形２についてのラインセットＬ［４］の継続数３は１に補正される。そのため、現在継続数バッファＬｃｂに設定されている値と同一であるため、更新されない。
【００７２】
そして、図形２と図形１との両方が描画されるラインセットＬ［３］，［４］の開始番号が３であり、図形２のみが描画されるラインセットＬ［５］，［６］の開始番号が５である。そのため、開始番号参照更新部２２７は、開始番号バッファＬｓｂ［３］，［４］に開始番号３を書き込み、開始番号バッファＬｓｂ［５］，［６］に開始番号５を書き込む（ステップＳ１１４）。
【００７３】
継続数比較部２２６は、図形１のラインセット継続数Ｌｃによって更新された継続数バッファＬｃｂ［１］，［２］を、それぞれ適正値２，１により更新する（ステップＳ１１５）。
【００７４】
ステップＳ１１５における開始番号バッファＬｓｂと継続数バッファＬｃｂとによれば、ラインセットＬ［１］，［２］と、ラインセットＬ［３］，［４］と、ラインセットＬ［５］，［６］と、の３つのグループＧ１〜Ｇ３に分類される。
【００７５】
図１２は、継続数バッファＬｃｂと開始番号バッファＬｓｂの更新例５を示す説明図である。更新例５では、図形２の描画範囲と図形１の描画範囲とが重ならない。図形１の描画範囲はラインセットＬ［０］〜［２］までである。図形１のラインセット開始番号は０であり、図形１のラインセット継続数は３である。図形２の描画範囲はラインセットＬ［４］からラインセットＬ［７］までである。図形２のラインセット開始番号は４であり、図形２のラインセット継続数は４である。分類部２２２は、継続数バッファＬｃｂと開始番号バッファＬｓｂとのそれぞれの値を０でリセットする（ステップＳ１２０）。
【００７６】
まず、継続数バッファＬｃｂの現在値がリセット値０である。そのため、継続数比較部２２６は、継続数バッファＬｃｂ［０］〜［２］までに図形１のラインセット開始番号Ｌｓと図形１のラインセット継続数Ｌｃとに基づく値を書き込む（ステップＳ１２１）。
【００７７】
そして、図形１のラインセット開始番号Ｌｓは０であり、開始番号参照更新部２２７は、開始番号バッファＬｓｂ［０］〜［２］までに図形１のラインセット開始番号Ｌｓを書き込む（ステップＳ１２２）。
【００７８】
つぎに、図形２のラインセット開始番号Ｌｓは４であり、図形２のラインセット継続数Ｌｃは４である。そのため、図形２については、ラインセットＬ［４］の継続数が４であり、ラインセットＬの順に継続数が単調減少してラインセットＬ［７］の継続数が１である。図形２についてのラインセットＬの継続数と値が設定されている継続数バッファＬｃｂ［０］〜［３］とは重複していない。そのため、継続数比較部２２６は、継続数バッファＬｃｂ［４］〜［７］までに図形２のラインセット開始番号Ｌｓとラインセット継続数Ｌｃとに基づく値を設定する（ステップＳ１２３）。
【００７９】
そして、図形２のラインセット開始番号Ｌｓは４であるため、開始番号参照更新部２２７は、開始番号バッファＬｓｂ［４］〜［７］までに図形２のラインセット開始番号Ｌｓを書き込む（ステップＳ１２４）。
【００８０】
ステップＳ１２４における開始番号バッファＬｓｂと継続数バッファＬｃｂとによれば、ラインセットＬ［０］〜［２］と、ラインセットＬ［４］〜［７］と、の２つのグループＧ１，Ｇ２に分類される。
【００８１】
図１３は、継続数バッファＬｃｂと開始番号バッファＬｓｂの更新例６を示す説明図である。更新例６では、図形１から図形３がそれぞれ一部重複する。ステップＳ１３０〜Ｓ１３２は更新例１〜５と同様の処理であるため、説明を省略する。
【００８２】
図形２の描画範囲はラインセットＬ［２］〜［５］であり、図形２のラインセットＬ［２］の継続数は４であり、ラインセットＬの順に継続数が単調減少してラインセットＬ［５］の継続数が１である。図形２の各ラインセットＬの継続数と値が設定されている継続数バッファＬｃｂ［１］から［４］とは一部重なっているため、図形２の描画範囲と図形１の描画範囲とは互いに２グループに分断される。継続数比較部２２６は、継続数バッファＬｃｂ［５］を分断長により補正した図形２についてのラインセット継続数により更新する（ステップＳ１３３）。図形２についてのラインセットＬ［２］の継続数３は３に補正され、図形２についてのラインセットＬ［３］の継続数２は２に補正される。また、図形２についてのラインセットＬ［４］の継続数１は１に補正され、図形２についてのラインセットＬ［５］の継続数０は１に補正される。そのため、ラインセットＬ［２］〜［４］について補正した継続数は、継続数バッファＬｃｂ［２］〜［４］に設定されている値と同一であるため、更新されない。
【００８３】
そして、図形２と図形１との両方が描画されるラインセットＬ［２］〜［４］の開始番号が２であり、図形１が描画されず図形２が描画されるラインセットＬ［５］の開始番号が５である。そのため、開始番号参照更新部２２７は、開始番号バッファＬｓｂ［２］〜［４］のそれぞれに２を書き込み、開始番号バッファＬｓｂ［５］に５を書き込む（ステップＳ１３４）。
【００８４】
図形２が描画されず図形１が描画されるラインセットＬ［１］の継続数は図形２と図形１が描画されるラインセットＬ［２］からラインセットＬ［４］によって４でない。そのため、継続数比較部２２６は、図形１のラインセット継続数Ｌｃによって更新された継続数バッファＬｃｂ［１］を、適正値１により更新する（ステップＳ１３５）。
【００８５】
つぎに、図形３の描画範囲は、ラインセットＬ［３］〜［７］である。図形３についてのラインセットＬ［３］の継続数が５であり、ラインセットＬの順に継続数が単調減少してラインセットＬ［７］の継続数が１である。そのため、ラインセットＬ［１］と、ラインセットＬ［２］，［３］，［４］と、ラインセットＬ［５］、の３つのグループが、図形３によってさらに異なるグループに分類される。継続数比較部２２６は、継続数バッファＬｃｂ［６］，［７］を分断長により補正した図形３のラインセット継続数Ｌｃによって更新する（ステップＳ１３６）。継続数バッファＬｃｂ［３］，［４］，［５］には適正値が残るため、継続数比較部２２６は、更新しない。
【００８６】
つぎに、図形１と図形２と図形３との３つの図形が重複するラインセットＬ［３］，［４］のラインセット開始番号が３であり、図形３の一部のみが描画されるラインセットＬ［６］，［７］のラインセット開始番号が６である。そのため、開始番号参照更新部２２７は、開始番号バッファＬｓｂ［３］，［４］に３を書き込み、開始番号バッファＬｓｂ［６］，［７］に６を書き込む（ステップＳ１３７）。なお、開始番号バッファＬｓｂ［５］には適正値が残るため、開始番号参照更新部２２７は、開始番号バッファＬｓｂ［５］を更新しない。
【００８７】
継続数比較部２２６は、ラインセットＬ［２］とラインセットＬ［３］，［４］とで異なるグループに分類されるため、継続数バッファＬｃｂ［２］を適正値により更新する（ステップＳ１３８）。ラインセットＬ［２］の開始番号バッファＬｓｂ［２］は適正値が残るため、開始番号参照更新部２２７は、開始番号バッファＬｓｂ［２］を更新しない。
【００８８】
ステップＳ１３８における開始番号バッファＬｓｂと継続数バッファＬｃｂとによれば、５つのグループＧ１〜Ｇ５に分類される。グループＧ１〜Ｇ５は、それぞれラインセットＬ［１］と、ラインセットＬ［２］と、ラインセットＬ［３］，［４］と、ラインセットＬ［５］と、ラインセットＬ［６］，［７］とである。
【００８９】
ここで、値が確定した後の開始番号バッファＬｓｂの値には以下のような特徴がある。図形の組み合わせが同一であるラインセットＬに対応する開始番号バッファＬｓｂの値は、同一の開始番号である。ここでの図形の組み合わせでは、ラインセットＬに少なくとも一部が描画される図形が１つであっても、１つの図形の組み合わせとする。図形の組み合わせが同一であるラインセットＬのうち、生成順において先頭であるラインセットＬの番号と、当該ラインセットＬに対応する開始番号バッファＬｓｂの値と、は一致する。
【００９０】
また、値が確定した後の継続数バッファＬｃｂの値には以下のような特徴がある。例えば、ラインセットＬに対応する継続数バッファＬｃｂの値が０の場合、ラインセットＬに描画すべき図形がないことを示す。また、例えば、ラインセットＬに対応する継続数バッファＬｃｂの値が１の場合、以下２通りの特徴に分かれる。生成順が直前のラインセットＬに対応する継続数バッファＬｃｂの値が１または０の場合、隣接するラインセットＬの中に図形の組み合わせが同一であるラインセットＬがないラインセットＬである。すなわち、同一のグループに分類されたラインセットＬが他にないことを示す。生成順が直前のラインセットＬに対応する継続数バッファＬｃｂの値が２の場合、図形の組み合わせが同一のラインセットＬのうちの生成順が最後尾のラインセットＬである。すなわち、同一のグループに分類されたラインセットＬのうちの生成順が最後尾のラインセットＬであることを示す。
【００９１】
また、例えば、ラインセットＬに対応する継続数バッファＬｃｂの値が１より大きい場合、以下２通りの特徴に分かれる。生成順が直前のラインセットＬに対応する継続数バッファＬｃｂの値が１または０の場合、図形の組み合わせが同一のラインセットＬのうちの生成順が先頭のラインセットＬである。すなわち、同一のグループに分類されたラインセットＬのうちの生成順が先頭のラインセットＬであることを示す。生成順が直前のラインセットＬに対応する継続数バッファＬｃｂの値が現在対象のラインセットＬに対応する継続数バッファＬｃｂの値よりも１大きい場合、現在対象のラインセットＬは以下の通りである。現在対象のラインセットＬは、図形の組み合わせが同一のラインセットＬのうち、生成順が先頭および最後尾でないラインセットＬであることを示す。
【００９２】
図１４から図１６は、図３に示す図形例に関する継続数バッファＬｃｂおよび開始番号バッファＬｓｂの更新遷移例を示す説明図である。図１４から図１６中の経路とは、後述するフローチャートに記載のステップの経路である。
【００９３】
まず、分類部２２２は、各バッファ要素を０によって初期化する（ステップＳ１４０１）。つぎに、分類部２２２は、図形１のラインセット継続数と、継続数バッファＬｃｂと、を比較する（ステップＳ１４０２）。そして、分類部２２２は、比較結果に基づいて、継続数バッファＬｃｂを更新する（ステップＳ１４０３）。ここでは、継続数バッファＬｃｂ［１］，［２］が経路３に従って更新される。そして、分類部２２２は、図形１について開始番号バッファＬｓｂを更新する（ステップＳ１４０４）。ここでは、開始番号バッファＬｓｂ［１］，［２］が経路９に従って更新される。
【００９４】
つぎに、分類部２２２は、図形２のラインセット継続数Ｌｃと、継続数バッファＬｃｂと、を比較する（ステップＳ１４０５）。分類部２２２は、比較結果に基づいて、継続数バッファＬｃｂを更新する継続数バッファＬｃｂ［１］，［２］を経路２に従って維持し、継続数バッファＬｃｂ［３］〜［５］を経路３に従って更新する（ステップＳ１４０６）。ここでは、継続数バッファＬｃｂ［１］，［２］は、更新値と現在値が同じであるため、現在値が維持される。
【００９５】
つぎに、分類部２２２は、開始番号バッファＬｓｂ［１］，［２］を経路９に従って更新し、開始番号バッファＬｓｂ［３］〜［５］を経路８に従って更新する（ステップＳ１４０７）。分類部２２２は、図形３のラインセット継続数Ｌｃと継続数バッファＬｃｂとを比較する（ステップＳ１４０８）。そして、分類部２２２は、比較結果に基づいて、継続数バッファＬｃｂ［１］，［２］を経路２に従って維持する（ステップＳ１４０９）。ここでは、継続数バッファＬｃｂ［１］，［２］が維持される。分類部２２２は、開始番号バッファＬｓｂ［１］，［２］を経路９に従って更新し、開始番号バッファＬｓｂ［３］〜［５］を経路８に従って更新する（ステップＳ１４１０）。
【００９６】
つぎに、分類部２２２は、図形４のラインセット継続数Ｌｓと、継続数バッファＬｃｂとを比較する（ステップＳ１４１１）。そして、分類部２２２は、比較結果に基づいて、継続数バッファＬｃｂ［３］を経路７に従って更新する。そして、分類部２２２は、継続数バッファＬｃｂ［４］，［５］を経路２に従って維持し、継続数バッファＬｃｂ［６］，［７］を経路３に従って更新する（ステップＳ１４１２）。
【００９７】
分類部２２２は、開始番号バッファＬｓｂ［４］，［５］を経路９に従って更新し、開始番号バッファＬｓｂ［６］，［７］を経路８に従って更新する（ステップＳ１４１３）。分類部２２２は、図形５のラインセット継続数Ｌｃと継続数バッファＬｃｂとを比較する（ステップＳ１４１４）。分類部２２２は、比較結果に基づいて、継続数バッファＬｃｂ［１０］，［１１］を経路３に従って更新する（ステップＳ１４１５）。分類部２２２は、開始番号バッファＬｓｂ［１０］，［１１］を経路８に従って更新する（ステップＳ１４１６）。
【００９８】
分類部２２２は、図形６〜１６のそれぞれのラインセット継続数Ｌｃと継続数バッファＬｃｂとを比較する（ステップＳ１４１７）。分類部２２２は、比較結果に基づいて、継続数バッファＬｃｂ［１０］，［１１］を経路２に従って維持する（ステップＳ１４１８）。分類部２２２は、開始番号バッファＬｓｂ［１０］，［１１］を経路８に従って更新する（ステップＳ１４１９）。
【００９９】
つぎに、分類部２２２は、図形１７のラインセット継続数Ｌｃと継続数バッファＬｃｂとを比較する（ステップＳ１４２０）。分類部２２２は、比較結果に基づいて、継続数バッファＬｃｂ［５］〜［７］を経路２に従って維持する。さらに、分類部２２２は、継続数バッファＬｃｂ［８］，［９］を経路５および経路４に従って更新し、継続数バッファＬｃｂ［１０］，［１１］を経路２に従って維持する（ステップＳ１４２１）。分類部２２２は、開始番号バッファＬｓｂ［５］を経路９に従って更新し、開始番号バッファＬｓｂ［６］〜［１１］を経路８に従って更新する（ステップＳ１４２２）。
【０１００】
つぎに、描画命令ソート実行部２０３は、グループの各々について、領域情報と、描画命令Ｉと、を関連付けて記憶部に記憶させる関連付け部である。ここでの領域情報は、グループに分類されたラインセットＬを示す。また、描画命令Ｉは分類されたラインセットＬに少なくとも一部が描画される図形について取得した描画命令Ｉである。記憶部は、図２Ｂに示す内蔵ＳＲＡＭ２０１である。例えば、グループに分類されたラインセットＬを示す領域情報は、グループに分類された分割領域のうち生成順が先頭または末尾の分割領域を示す領域情報と、グループに分類された分割領域の数を示す情報と、によって表される。ここでは、グループに分類されたラインセットＬを示す領域情報は、先頭の分割領域を示す領域情報として開始番号と、グループに分類された分割領域の数を示す情報として継続数と、を含む。これにより、領域情報のビット幅を統一させることができ、データ量を削減することができる。
【０１０１】
具体的に、例えば、描画命令ソート実行部２０３は、ソート済中間データ圧縮部２３１と、ソート済中間データ生成部２３２と、を有する。
【０１０２】
ソート済中間データ圧縮部２３１は、ソート済中間データ生成部２３２によるソート済中間データの生成を制御する。ソート済中間データ圧縮部２３１は、継続数埋め込み部２３５と、開始番号判定部２３３と、削除スイッチ２３４と、を有する。
【０１０３】
開始番号判定部２３３は、ラインセットＬごとに、開始番号バッファＬｓｂを参照して、冗長なソート前中間データか否かを判断する。開始番号判定部２３３は、冗長でないと判定された場合、継続数埋め込み部２３５を駆動して継続数埋め込み部２３５により継続数バッファＬｃｂからラインセット継続数を読み出させる。具体的には、開始番号判定部２３３は、例えば、Ｌｃｂ読み出し指示信号を継続数埋め込み部２３５へ出力する。冗長であると判定された場合、削除スイッチ２３４を駆動して削除スイッチ２３４によりソート済中間データを削除させる。具体的には、開始番号判定部２３３は、例えば、判定結果信号を削除スイッチ２３４へ出力する。
【０１０４】
継続数埋め込み部２３５は、開始番号判定部２３３の制御により、継続数バッファＬｃｂからラインセット継続数を読み出し、ソート済中間データ生成部２３２に受け渡す。
【０１０５】
削除スイッチ２３４は、開始番号判定部２３３の制御により、ソート済中間データ生成部２３２によって冗長な中間データを削除したソート済中間データを生成させる。
【０１０６】
ソート済中間データ生成部２３２は、継続数埋め込み部２３５からラインセット継続数データを受け付けた場合、ラインセットスタート命令と、ラインセット継続数Ｌｃｉと、ラインスタートを示す領域情報と、描画命令Ｉと、を関連付けて生成する。ソート済中間データ生成部２３２は、削除スイッチ２３４から削除指示信号を受け付けた場合、描画命令Ｉを生成しない。
【０１０７】
ここでは、ソート済中間データの生成例の詳細については、生成例１と生成例２を用いて説明する。図２Ｂに示す描画実行部２０４は、生成例１の機能ブロック例である。生成例２の機能ブロック例については、省略する。
【０１０８】
＜生成例１＞
描画命令ソート実行部２０３は、例えば、複数のラインセットＬの各々を生成順に対象とする。描画命令ソート実行部２０３は、対象のラインセットＬに対応する開始番号バッファＬｓｂの値を読み出す。描画命令ソート実行部２０３は、読み出した開始番号と、対象のラインセットＬの番号と、が一致しない場合、描画命令Ｉを生成しない。描画命令ソート実行部２０３は、読み出した開始番号と、対象のラインセットＬの番号と、が一致した場合、継続数バッファＬｃｂの値を読み出す。描画命令ソート実行部２０３は、読み出した値が０である場合、描画命令Ｉを生成しない。描画命令ソート実行部２０３は、読み出した値が１である場合、描画命令Ｉを生成する。描画命令ソート実行部２０３は、読み出した値が２以上である場合、描画命令Ｉを生成し、生成順において対象のラインセットＬのつぎのラインセットＬから（読み出した値−１）後のラインセットＬまでの描画命令Ｉを生成しない。
【０１０９】
図１７は、ソート済中間データ生成例１を示す説明図である。ここでは、理解の容易化のために、上述した更新例１によって確定された継続数バッファＬｃｂおよび開始番号バッファＬｓｂを例に挙げる。ｋは対象のラインセットＬを決定するための識別子である。
【０１１０】
ｋが０の場合、描画命令ソート実行部２０３は、開始番号バッファＬｓｂ［０］の値がｋであり、継続数バッファＬｃｂ［０］の値が０であるため、描画命令Ｉを生成しないと判定する。ｋが１の場合、描画命令ソート実行部２０３は、開始番号バッファＬｓｂ［１］の値がｋであり、継続数バッファＬｃｂ［１］の値が２以上であるため、描画命令Ｉを生成すると判定する。描画命令ソート実行部２０３は、ラインスタート命令と、継続数バッファＬｃｂ［１］の値と、ラインセットＬの番号と、を関連付けて内蔵ＳＲＡＭ２０１に記憶させる。そして、描画命令ソート実行部２０３は、図形１の描画命令群を、内蔵ＳＲＡＭ２０１のうち、関連付けて記憶した記憶領域に連続する記憶領域に記憶させる。
【０１１１】
ｋが２の場合、描画命令ソート実行部２０３は、開始番号バッファＬｓｂ［２］の値がｋでないため、描画命令Ｉを生成しないと判定する。ｋが３の場合、描画命令ソート実行部２０３は、開始番号バッファＬｓｂ［３］の値がｋであり、継続数バッファＬｃｂ［３］の値が２以上であるため、描画命令Ｉを生成すると判定する。描画命令ソート実行部２０３は、ラインスタート命令と、継続数バッファＬｃｂ［３］の値と、ラインセットＬの番号と、を関連付けて内蔵ＳＲＡＭ２０１に記憶させる。そして、描画命令ソート実行部２０３は、図形１の描画命令群および図形２の描画命令群を、内蔵ＳＲＡＭ２０１のうち、関連付けて記憶した記憶領域に連続する記憶領域に記憶させる。
【０１１２】
ｋが４の場合、描画命令ソート実行部２０３は、開始番号バッファＬｓｂ［４］の値がｋでないため、描画命令Ｉを生成しないと判定する。ｋが５の場合、描画命令ソート実行部２０３は、開始番号バッファＬｓｂ［５］の値がｋでないため、描画命令Ｉを生成しないと判定する。ｋが６の場合、描画命令ソート実行部２０３は、開始番号バッファＬｓｂ［６］の値がｋであり、継続数バッファＬｃｂ［６］の値が２以上であるため、描画命令Ｉを生成すると判定する。描画命令ソート実行部２０３は、ラインスタート命令と、継続数バッファＬｃｂ［６］の値と、ラインセットＬの番号と、を関連付けて内蔵ＳＲＡＭ２０１に記憶させる。そして、描画命令ソート実行部２０３は、図形２の描画命令群を、内蔵ＳＲＡＭ２０１のうち、関連付けて記憶した記憶領域に連続する記憶領域に記憶させる。
【０１１３】
最後に、ｋが７の場合、描画命令ソート実行部２０３は、開始番号バッファＬｓｂ［７］の値が＝ｋでないため、描画命令Ｉを生成しないと判定する。
【０１１４】
＜生成例２＞
まず、描画命令ソート実行部２０３は、例えば、複数のラインセットＬの各々を生成順に対象とする。描画命令ソート実行部２０３は、対象のラインセットＬに対応する継続数バッファＬｃｂの値を読み出す。描画命令ソート実行部２０３は、読み出した値が０の場合、描画命令Ｉを生成せずに、生成順が対象のラインセットＬの直後のラインセットＬに対応する継続数バッファＬｃｂを読み出す。一方、描画命令ソート実行部２０３は、読み出した値が１であり、かつ生成順が対象のラインセットＬの直前のラインセットＬに対応する継続数バッファＬｃｂの値が１または０である場合、対象のラインセットＬについての描画命令Ｉを生成する。また、描画命令ソート実行部２０３は、読み出した値が２以上であり、かつ生成順が対象のラインセットＬの直前のラインセットＬに対応する継続数バッファＬｃｂの値が１または０である場合、対象のラインセットＬについての描画命令Ｉを生成する。そして、描画命令ソート実行部２０３は、生成順において対象のラインセットＬの直後のラインセットＬから読み出した値後のラインセットＬまでの描画命令Ｉを生成しない。
【０１１５】
図１８は、ソート済中間データ生成例２を示す説明図である。ここでは、理解の容易化のために、上述した更新例１によって確定された継続数バッファＬｃｂおよび開始番号バッファＬｓｂを例に挙げる。ｋは対象のラインセットＬを決定するための識別子である。ｋが０の場合、継続数バッファＬｃｂ［０］の値が０であるため、描画命令ソート実行部２０３は、描画命令Ｉを生成しないと判定する。
【０１１６】
ｋが１の場合、継続数バッファＬｃｂ［１］の値が２であり、生成順が直前のラインセットＬに対応する継続数バッファＬｃｂ［０］の値が０であるため、描画命令ソート実行部２０３は、描画命令Ｉを生成すると判定する。ここで、生成順が直前のラインセットＬに対応する継続数バッファＬｃｂを省略して直前の継続数バッファＬｃｂと称する。描画命令ソート実行部２０３は、ラインスタート命令と、継続数バッファＬｃｂ［１］の値と、ラインセットＬの番号と、を関連付けて内蔵ＳＲＡＭ２０１に記憶させる。そして、描画命令ソート実行部２０３は、図形１の描画命令群を、内蔵ＳＲＡＭ２０１のうち、関連付けて記憶した記憶領域に連続する記憶領域に記憶させる。
【０１１７】
ｋが２の場合、継続数バッファＬｃｂ［２］の値が１であり、直前の継続数バッファＬｃｂ［１］の値が２であるため、描画命令ソート実行部２０３は、描画命令Ｉを生成しないと判定する。ｋが３の場合、継続数バッファＬｃｂ［３］の値が３であり、直前の継続数バッファＬｃｂ［２］の値が１であるため、描画命令ソート実行部２０３は、描画命令Ｉを生成すると判定する。描画命令ソート実行部２０３は、ラインスタート命令と、継続数バッファＬｃｂ［３］の値と、ラインセットＬの番号と、を関連付けて内蔵ＳＲＡＭ２０１に記憶させる。そして、描画命令ソート実行部２０３は、図形１の描画命令群および図形２の描画命令群を、内蔵ＳＲＡＭ２０１のうち、関連付けて記憶した記憶領域に連続する記憶領域に記憶させる。
【０１１８】
ｋが４の場合、継続数バッファＬｃｂ［４］の値が２であり、直前の継続数バッファＬｃｂ［３］の値が３であるため、描画命令ソート実行部２０３は、生成しないと判定する。ｋが５の場合、継続数バッファＬｃｂ［５］の値が１であり、直前の継続数バッファＬｃｂ［４］の値が２であるため、描画命令ソート実行部２０３は、生成しないと判定する。
【０１１９】
ｋが６の場合、継続数バッファＬｃｂ［６］の値が２であり、直前の継続数バッファＬｃｂ［５］の値が１であるため、描画命令ソート実行部２０３は、描画命令Ｉを生成すると判定する。描画命令ソート実行部２０３は、ラインスタート命令と、継続数バッファＬｃｂ［６］の値と、ラインセットＬの番号と、を関連付けて内蔵ＳＲＡＭ２０１に記憶させる。そして、描画命令ソート実行部２０３は、図形２の描画命令群を、内蔵ＳＲＡＭ２０１のうち、関連付けて記憶した記憶領域に連続する記憶領域に記憶させる。
【０１２０】
最後に、ｋが７の場合、継続数バッファＬｃｂ［７］の値が１、直前の継続数バッファＬｃｂ［６］の値が２であるため、描画命令ソート実行部２０３は、生成しないと判定する。
【０１２１】
図１９は、図３に示す図形例に関するソート済中間データ例を示す説明図である。ソート済中間データ１９００は、継続数とラインセットＬの番号とが埋め込まれたラインセットスタート命令と、描画命令群と、がグループごとに並べられてある。ソート済中間データ１９００は、内蔵ＳＲＡＭ２０１内のソート済中間データ領域２１４に記憶される。ラインセットスタート命令と、継続数と、ラインセットＬの番号と、によって、ラインスタート命令に後続する描画命令群が使用するラインセットＬが特定可能である。
【０１２２】
図２０は、ラインセットＬごとのソート済中間データ例と本発明のソート済中間データ例との比較を示す説明図である。例えば、ラインセットＬごとのソート済中間データ例では、ラインセットＬ［１］とラインセットＬ［２］との各値が同一であるため、冗長であるが、本発明のソート済中間データ１９００では、冗長な描画命令が１つに纏められてある。
【０１２３】
つぎに、描画実行部２０４は、取得した領域情報が示す分割領域の各々について、ラインセットＬが示す領域情報に関連付けられて記憶部に記憶された描画命令Ｉに基づいて、ラインセットＬ内の各画素を示す画像データを生成する。上述したように、記憶部は、内蔵ＳＲＡＭ２０１である。
【０１２４】
また、描画実行部２０４は、分類したグループの各々を対象とし、対象のグループについて記憶部に記憶された描画命令Ｉを特定し、特定した描画命令Ｉに基づいて、対象のグループに分類された分割領域の各々について画像データを生成する生成部である。このように、対象のグループごとに描画命令Ｉが内蔵ＳＲＡＭ２０１から検索されることにより、検索回数を減少させることができる。また、描画命令ソート実行部２０３は、記憶部のうち特定した描画命令Ｉが記憶された記憶領域を示すアドレスを第２記憶部に記憶させる。そして、描画命令ソート実行部２０３は、第２記憶部に記憶されたアドレスが示す記憶領域に記憶された前記描画命令Ｉに基づいて、対象のグループに分類された分割領域の各々について画像データを生成する。このように、描画命令Ｉのアドレスのみを記憶させておくことにより、少ない情報量によって検索に係る時間を短縮させることができる。ここで、第２記憶部は、例えば、ソート済中間データ開始アドレスレジスタ２４５である。
【０１２５】
具体的には、描画実行部２０４は、ソート済中間データ復元部２４１と、第２描画命令デコーダ２４２と、描画部２４３と、ラインバッファｌｂｕｆと、を有する。ソート済中間データ復元部２４１は、内蔵ＳＲＡＭ２０１に記憶されたソート済中間データを復元した復元済中間データを第２描画命令デコーダ２４２に渡す。ソート済中間データ復元部２４１は、例えば、継続数読み取り部２４４と、描画用継続数カウンタＬｃｃｄと、ソート済中間データ再生部２４６と、ソート済中間データ開始アドレスレジスタ２４５と、を有する。
【０１２６】
継続数読み取り部２４４は、ソート済中間データのラインスタート命令に埋め込まれたラインセット継続数を読み取り、描画用継続数カウンタＬｃｃｄにセットする。描画用継続数カウンタＬｃｃｄは、継続数読み取り部２４４によってセットされたラインセット継続数を初期値とし、生成の対象となるラインセットＬが移行する都度、カウントダウンする。描画用継続数カウンタＬｃｃｄにより、現在の中間データを使い回す処理が終了するラインセットＬが判別可能である。
【０１２７】
つぎに、ソート済中間データ開始アドレスレジスタ２４５は、対象のラインセットＬの番号がラインセットスタート命令に埋め込まれた番号と一致している場合、ラインセットスタート命令のつぎに記憶された描画命令Ｉの記憶領域のアドレスを保持する。
【０１２８】
ソート済中間データ再生部２４６は、ソート済中間データ開始アドレスレジスタ２４５に記憶されたアドレスが示すソート済中間データを内蔵ＳＲＡＭ２０１から読み出すことにより、ソート済中間データを復元する。そして、ソート済中間データ再生部２４６は、復元済中間データを第２描画命令デコーダ２４２へ渡す。
【０１２９】
第２描画命令デコーダ２４２は、復元済中間データに含まれる各図形の描画命令群をデコードし、デコード後の描画命令群を描画部２４３に受け渡す。さらに、第２描画命令デコーダ２４２は、デコード中に頂点データを取得するトリガとなる命令を検出した際に、頂点データ取得指示信号を描画部２４３に送る。そして、描画部２４３は、当該頂点データ取得指示信号を受けて、内蔵ＳＲＡＭ２０１上の頂点データ領域２１２から頂点データを読み出し、描画を実行してラインセットＬの各画素の画像データを生成する。
【０１３０】
図２１は、描画データ復元例を示す説明図である。ここでは、理解の容易化のために、簡単なソート済中間データを例に挙げて説明する。ｋは描画対象となるラインセットＬを示す識別子である。描画実行部２０４は、描画用継続数カウンタＬｃｃｄを０にリセットする。そして、描画実行部２０４は、ソート済中間データを先頭から順に読み出す。ｋが０の場合、描画実行部２０４は、ラインセットスタート命令に埋め込まれたラインセットＬの番号がｋと異なるため、ｋをインクリメントする。
【０１３１】
ｋが１の場合、描画実行部２０４は、ラインセットスタート命令に埋め込まれたラインセットＬの番号がｋと一致するため、ラインセットスタート命令に埋め込まれたラインセット継続数を読み取る。そして、描画実行部２０４は、ラインセットスタート命令のつぎに記憶された描画命令Ｉの記憶領域のアドレスＡＤＤＲ２をソート済中間データ開始アドレスレジスタ２４５に記憶させる。描画実行部２０４は、ソート済中間データ開始アドレスレジスタ２４５に記憶されたアドレスＡＤＤＲ２が示す描画命令群Ｉ１からつぎのラインセットスタート命令の直前の描画命令群Ｉ３までの描画命令群をすべて抽出する。これにより、抽出された描画命令群が、復元済中間データとなる。
【０１３２】
つぎに、ｋが２の場合、描画実行部２０４は、描画用継続数カウンタＬｃｃｄの値が１以上であるため、描画用継続数カウンタＬｃｃｄをカウントダウンする。そして、描画実行部２０４は、ソート済中間データ開始アドレスレジスタ２４５に記憶されたアドレスＡＤＤＲ２が示す描画命令群からつぎのラインセットスタート命令の直前の描画命令群までの描画命令群をすべて抽出する。これにより、抽出された描画命令群が復元済中間データとなる。このように、描画実行部２０４は、ラインセットＬごとに復元済中間データを生成することにより、ラインセットＬごとに画像データを生成することができる。これにより、記憶領域に描画命令Ｉを全てのラインセットＬごとに重複して記憶せずに済むため、省メモリ化を図ることができる。
【０１３３】
（画像処理装置１００による画像処理手順例）
図２２および図２３は、画像処理装置による画像処理手順例を示すフローチャートである。画像処理装置１００は、第１描画命令デコーダ２２３によって、描画命令Ｉから、対象となる図形の描画命令Ｉを取得する（ステップＳ２２０１）。画像処理装置１００は、第１描画命令デコーダ２２３によって、取得した描画命令Ｉを解釈する（ステップＳ２２０２）。そして、画像処理装置１００は、第１描画命令デコーダ２２３によって、頂点データ取得指示を出力する（ステップＳ２２０３）。画像処理装置１００は、第１描画命令デコーダ２２３によって、描画命令Ｉを転送する（ステップＳ２２０４）。
【０１３４】
つぎに、画像処理装置１００は、描画範囲算出部２２４によって、開始番号Ｌｓ，継続数Ｌｃを算出する（ステップＳ２２０５）。画像処理装置１００は、描画範囲算出部２２４によって、開始番号Ｌｓ，継続数Ｌｃを分類部２２２とソート前中間データ生成部２２５とへ転送する（ステップＳ２２０６）。ステップＳ２２０６のつぎに、ステップＳ２２０７とステップＳ２２０９へ移行する。
【０１３５】
そして、画像処理装置１００は、ソート前中間データ生成部２２５によって、描画範囲通知命令を追加する（ステップＳ２２０７）。つぎに、画像処理装置１００は、ソート前中間データ生成部２２５によって、描画範囲通知命令に開始番号Ｌｓ，継続数Ｌｃを埋め込む（ステップＳ２２０８）。なお、描画範囲通知命令とは、例えば上述のラインセットスタート命令である。画像処理装置１００は、分類部２２２によって、各バッファを更新し最終値を確定する（ステップＳ２２０９）。
【０１３６】
ステップＳ２２０８およびステップＳ２２０９のつぎに、画像処理装置１００は、描画命令ソート前処理部２０２によって、全図形が対象の図形となりソート前中間データの生成を完了したか否かを判断する（ステップＳ２２１０）。完了していないと判断された場合（ステップＳ２２１０：Ｎｏ）、画像処理装置１００は、ステップＳ２２０１へ戻る。一方、完了したと判断された場合（ステップＳ２２１０：Ｙｅｓ）、画像処理装置１００は、ソート済中間データ圧縮部２３１によって、対象となるラインセットＬについての冗長中間データを削除する制御を行う（ステップＳ２２１１）。
【０１３７】
そして、画像処理装置１００は、ソート前中間データをラインセット番号順にソートする（ステップＳ２２１２）。そして、画像処理装置１００は、全ラインセットＬが対象のラインセットＬとなり冗長中間データの削除を完了したか否かを判断する（ステップＳ２２１３）。完了していないと判断された場合（ステップＳ２２１３：Ｎｏ）、画像処理装置１００は、ステップＳ２２１１へ戻る。
【０１３８】
一方、完了したと判断された場合（ステップＳ２２１３：Ｙｅｓ）、画像処理装置１００は、ソート済中間データ復元部２４１によって、対象のラインセットＬについての圧縮中間データの制御を行う（ステップＳ２３０１）。そして、画像処理装置１００は、ソート済中間データを取得する（ステップＳ２３０２）。画像処理装置１００は、ソート済中間データ復元部２４１によって、ソート済中間データを解釈する（ステップＳ２３０３）。そして、画像処理装置１００は、ソート済中間データ復元部２４１によって、頂点データ取得指示を出力する（ステップＳ２３０４）。画像処理装置１００は、ソート済中間データ復元部２４１によって、描画命令Ｉを転送する（ステップＳ２３０５）。そして、画像処理装置１００は、描画部２４３により、ソート済中間データ復元部２４１によって転送された描画命令Ｉを実行する（ステップＳ２３０６）。そして、画像処理装置１００は、ラインバッファｌｂｕｆへの対象のラインセットＬについての画像データを生成する（ステップＳ２３０７）。画像処理装置１００は、全ラインセットＬが対象のラインセットＬとして画像データの生成が完了したか否かを判断する（ステップＳ２３０８）。
【０１３９】
画像データの生成が完了したと判断された場合（ステップＳ２３０８：Ｙｅｓ）、画像処理装置１００は、一連の処理を終了する。画像データの生成が完了していないと判断された場合（ステップＳ２３０８：Ｎｏ）、画像処理装置１００は、ステップＳ２３０１へ戻る。
【０１４０】
図２４は、画像処理装置によるソート前処理手順例を示すフローチャートである。ここでは、上述したステップＳ２２０１からステップＳ２２１０までの詳細な処理手順について説明する。画像処理装置１００は、分類部２２２によって、継続数バッファＬｃｂを初期化する（ステップＳ２４０１）。そして、画像処理装置１００は、分類部２２２によって、開始番号バッファＬｓｂを初期化する（ステップＳ２４０２）。画像処理装置１００は、対象となる図形の描画命令Ｉを取得する（ステップＳ２４０３）。画像処理装置１００は、第１描画命令デコーダ２２３によって、取得した描画命令Ｉを解釈する（ステップＳ２４０４）。そして、画像処理装置１００は、第１描画命令デコーダ２２３によって、頂点データ取得指示を出力する（ステップＳ２４０５）。画像処理装置１００は、第１描画命令デコーダ２２３によって、描画命令Ｉを転送する（ステップＳ２４０６）。
【０１４１】
つぎに、画像処理装置１００は、描画範囲算出部２２４によって、開始番号Ｌｓ，継続数Ｌｃを算出する（ステップＳ２４０７）。画像処理装置１００は、描画範囲算出部２２４によって、開始番号Ｌｓ，継続数Ｌｃを分類部２２２とソート前中間データ生成部２２５とへ転送する（ステップＳ２４０８）。ステップＳ２４０８のつぎに、ステップＳ２４０９およびステップＳ２４１１へ移行する。
【０１４２】
つぎに、画像処理装置１００は、ソート前中間データ生成部２２５によって、描画範囲通知命令を追加する（ステップＳ２４０９）。そして、画像処理装置１００は、ソート前中間データ生成部２２５によって、描画範囲通知命令に開始番号Ｌｓ，継続数Ｌｃを埋め込み（ステップＳ２４１０）、ステップＳ２４１４へ移行する。一方、画像処理装置１００は、分類部２２２によって、第１バッファ更新処理を行う（ステップＳ２４１１）。
【０１４３】
つぎに、画像処理装置１００は、分類部２２２によって、第２バッファ更新処理を行う（ステップＳ２４１２）。そして、画像処理装置１００は、分類部２２２によって、第３バッファ更新処理を行う（ステップＳ２４１３）。つぎに、画像処理装置１００は、全図形が対象となってソート前中間データの生成が完了したかを判断する（ステップＳ２４１４）。完了していないと判断された場合（ステップＳ２４１４：Ｎｏ）、画像処理装置１００は、ステップＳ２４０３へ戻る。一方、完了したと判断された場合（ステップＳ２４１４：Ｙｅｓ）、画像処理装置１００は、一連の処理を終了する。
【０１４４】
図２５は、第１更新処理手順例を示すフローチャートである。画像処理装置１００は、継続数比較部２２６によって、前処理用継続数カウンタＬｃｃｐを０にリセットする（ステップＳ２５０１）。例えば、画像処理装置１００は、Ｌｃｃｐ＝０にする。つぎに、画像処理装置１００は、継続数比較部２２６によって、カウンタリセットフラグをリセットする（ステップＳ２５０２）。そして、画像処理装置１００は、ｋ＝Ｌｓ＋Ｌｃ−１とする（ステップＳ２５０３）。ここで、ｋはＬｓ＋Ｌｃ−１からＬｓに遡る。ｋが降順となるのは、複数の図形が同一のラインセットを部分的に占める場合、省略可能なラインセット継続数が最大公約数的に減少するのを、前処理用継続数カウンタＬｃｃｐの値が１からカウントアップすることにより処理するためである。
【０１４５】
画像処理装置１００は、継続数比較部２２６によって、Ｌｃｃｐ＝Ｌｃｃｐ＋１とする（ステップＳ２５０４）。そして、画像処理装置１００は、継続数比較部２２６によって、Ｌｃｂ［ｋ］＞Ｌｃｃｐであるか否かを判断する（ステップＳ２５０５）。Ｌｃｂ［ｋ］＞Ｌｃｃｐである場合（ステップＳ２５０５：Ｙｅｓ）、画像処理装置１００は、ステップＳ２５１１へ移行する。
【０１４６】
Ｌｃｂ［ｋ］＞Ｌｃｃｐでない場合（ステップＳ２５０５：Ｎｏ）、画像処理装置１００は、継続数比較部２２６によって、Ｌｃｂ［ｋ］＝＝０であるか否かを判断する（ステップＳ２５０６）。ここで、記号＝＝は、プログラミング言語Ｃの文法に倣い、等価であることを意味する。Ｌｃｂ［ｋ］＝＝０でない場合（ステップＳ２５０６：Ｎｏ）、画像処理装置１００は、ステップＳ２５１２へ移行する。Ｌｃｂ［ｋ］＝＝０であると判断された場合（ステップＳ２５０６：Ｙｅｓ）、画像処理装置１００は、継続数比較部２２６によって、Ｌｃｂ［ｋ＋１］＞０であるか否かを判断する（ステップＳ２５０７）。
【０１４７】
Ｌｃｂ［ｋ＋１］＞０でないと判断された場合（ステップＳ２５０７：Ｎｏ）、画像処理装置１００は、ステップＳ２５１１へ移行する。Ｌｃｂ［ｋ＋１］＞０であると判断された場合（ステップＳ２５０７：Ｙｅｓ）、画像処理装置１００は、継続数比較部２２６によって、カウンタリセットフラグが立っているか否かを判断する（ステップＳ２５０８）。カウンタリセットフラグが立っているとは、イネーブル状態になっていることを示す。カウンタリセットフラグが立っていると判断された場合（ステップＳ２５０８：Ｙｅｓ）、画像処理装置１００は、ステップＳ２５１１へ移行する。カウンタリセットフラグが立っている場合に、継続数バッファＬｃｂ［ｋ＋１］が０より大きいのは、つぎのラインセット［ｋ＋１］において、現在対象の図形によりＬｃｂ［ｋ＋１］が更新されたことを意味する。現在対象の図形と、以前対象となった図形と、の重複によって発生する継続数バッファ［ｋ＋１］の更新ではないため、現在の前処理用継続数カウンタＬｃｃｐが継続数バッファＬｃｂ［ｋ］の値として適切であることになる。そのため、ステップＳ２５０８においてＹｅｓの場合、ステップＳ２５１１へ移行することになる。
【０１４８】
カウンタリセットフラグが立っていないと判断された場合（ステップＳ２５０８：Ｎｏ）、画像処理装置１００は、継続数比較部２２６によって、前処理用継続数カウンタＬｃｃｐを１にリセットする（ステップＳ２５０９）。ここでは、画像処理装置１００は、Ｌｃｃｐ＝１とする。そして、画像処理装置１００は、継続数比較部２２６によって、カウンタリセットフラグを立てる（ステップＳ２５１０）。つぎに、画像処理装置１００は、継続数比較部２２６によって、継続数バッファＬｃｂ［ｋ］を前処理用継続数カウンタＬｃｃｐにより更新する（ステップＳ２５１１）。例えば、画像処理装置１００は、Ｌｃｂ［ｋ］＝Ｌｃｃｐとする。カウンタリセットフラグが立っていない場合に、継続数バッファＬｃｂ［ｋ＋１］が０より大きいのは、つぎのラインセット［ｋ＋１］が以前対象となった図形と現在対象の図形との、重複によって更新されたことを意味する。そして、つぎのラインセット［ｋ＋１］はラインセットの継続区間の上端であることを意味する。そのため、現在の対象のラインセット［ｋ］からｋの値が小さい方向にあらたなラインセット継続区間ができる。そのため、ステップＳ２５０８においてＮｏの場合、処理手順が経路５のようになることにより、現在の前処理用継続数カウンタＬｃｃｐが１にリセットされ、継続数バッファＬｃｂ［ｋ］も１によって更新される。また、つぎの対象のラインセットについての処理手順に備えてカウンタリセットフラグが立てられる。
【０１４９】
そして、画像処理装置１００は、分類部２２２によって、ｋ≦Ｌｓであるか否かを判断する（ステップＳ２５１２）。ｋ≦Ｌｓでないと判断された場合（ステップＳ２５１２：Ｎｏ）、画像処理装置１００は、ｋ＝ｋ−１とし（ステップＳ２５１３）、ステップＳ２５０４へ戻る。ｋ≦Ｌｓであると判断された場合（ステップＳ２５１２：Ｙｅｓ）、画像処理装置１００は、一連の処理を終了する。
【０１５０】
図２６は、第２更新処理手順例を示すフローチャートである。画像処理装置１００は、継続数比較部２２６によって、Ｌｃｂ［Ｌｓ−１］＞１であるか否かを判断する（ステップＳ２６０１）。Ｌｃｂ［Ｌｓ−１］＞１であると判断された場合（ステップＳ２６０１：Ｙｅｓ）、画像処理装置１００は、継続数比較部２２６によって、前処理用継続数カウンタＬｃｃｐを０にリセットする（ステップＳ２６０２）。例えば、画像処理装置１００は、Ｌｃｃｐ＝０とする。画像処理装置１００は、ｋ＝Ｌｓ−１とする（ステップＳ２６０３）。
【０１５１】
つぎに、画像処理装置１００は、継続数比較部２２６によって、Ｌｃｃｐ＝Ｌｃｃｐ＋１とする（ステップＳ２６０４）とする。画像処理装置１００は、継続数比較部２２６によって、継続数Ｌｃｂバッファ［ｋ］をＬｃｃｐにより更新する（ステップＳ２６０５）。例えば、画像処理装置１００は、Ｌｃｂ［ｋ］＝Ｌｃｃｐとする。
【０１５２】
そして、画像処理装置１００は、Ｌｃｃｐを０にリセットする（ステップＳ２６０６）。画像処理装置１００は、継続数比較部２２６によって、Ｌｃｂ［ｋ−１］≦１であるか否かを判断する（ステップＳ２６０７）。Ｌｃｂ［ｋ−１］≦１であると判断された場合（ステップＳ２６０７：Ｙｅｓ）、画像処理装置１００は、一連の処理を終了する。Ｌｃｂ［ｋ−１］≦１でないと判断された場合（ステップＳ２６０８：Ｎｏ）、画像処理装置１００は、ｋ＝ｋ−１とし（ステップＳ２６０８）、ステップＳ２６０５へ戻る。
【０１５３】
図２７は、第３更新処理手順例を示すフローチャートである。画像処理装置１００は、開始番号参照更新部２２７によって、ラインセット開始番号一時バッファＬｓｔを開始番号バッファＬｓｂ［Ｌｓ］にリセットする（ステップＳ２７０１）。画像処理装置１００は、Ｌｓｔ＝Ｌｓｂ［Ｌｓ］とする。
【０１５４】
画像処理装置１００は、継続数比較部２２６によって、継続数前置バッファＬｃｐを継続数バッファＬｃｂ［Ｌｓ］にリセットする（ステップＳ２７０２）。画像処理装置１００は、Ｌｃｐ＝Ｌｃｂ［Ｌｓ］とする。つぎに、画像処理装置１００は、ｋ＝Ｌｓとする（ステップＳ２７０３）。そして、画像処理装置１００は、継続数比較部２２６によって、Ｌｃｂ［ｋ］＞Ｌｃｐであるか否かを判断する（ステップＳ２７０４）。Ｌｃｂ［ｋ］＞Ｌｃｐでないと判断された場合（ステップＳ２７０４：Ｎｏ）、画像処理装置１００は、ステップＳ２７０７へ移行する。Ｌｃｂ［ｋ］＞Ｌｃｐであると判断された場合（ステップＳ２７０４：Ｙｅｓ）、画像処理装置１００は、開始番号参照更新部２２７によって、開始番号一時バッファＬｓｔをｋにリセットする（ステップＳ２７０５）。例えば、画像処理装置１００は、Ｌｓｔ＝ｋとする。
【０１５５】
画像処理装置１００は、継続数比較部２２６によって、ＬｃｐをＬｃｂ［ｋ］にリセットする（ステップＳ２７０６）。例えば、画像処理装置１００は、Ｌｃｐ＝Ｌｃｂ［ｋ］とする。画像処理装置１００は、開始番号参照更新部２２７によりＬｓｂ［ｋ］＝Ｌｓｔとする（ステップＳ２７０７）。画像処理装置１００は、継続数前置バッファＬｃｐをデクリメントする（ステップＳ２７０８）。画像処理装置１００は、例えば、Ｌｃｐ＝Ｌｃｐ−１とする。
【０１５６】
画像処理装置１００は、継続数比較部２２６によって、ｋ≧Ｌｓ＋Ｌｃであるか否かを判断する（ステップＳ２７０９）。ｋ≧Ｌｓ＋Ｌｃでない場合（ステップＳ２７０９：Ｎｏ）、画像処理装置１００は、ｋ＝ｋ＋１とし（ステップＳ２７１０）、ステップＳ２７０４へ移行する。ｋ≧Ｌｓ＋Ｌｃである場合（ステップＳ２７０９：Ｙｅｓ）、画像処理装置１００は、一連の処理を終了する。
【０１５７】
図２８は、ソート処理手順例１を示すフローチャートである。ここでは、上述したステップＳ２２１１，Ｓ２２１２の詳細なソート処理手順を示す。画像処理装置１００は、描画命令ソート実行部２０３により、ｋ＝０とする（ステップＳ２８０１）。画像処理装置１００は、ラインセット番号ｋを埋め込んだラインセットスタート命令を生成する（ステップＳ２８０２）。そして、画像処理装置１００は、開始番号判定部２３３によって、Ｌｓｂ［ｋ］＝＝ｋであるか否かを判断する（ステップＳ２８０３）。Ｌｓｂ［ｋ］＝＝ｋでないと判断された場合（ステップＳ２８０３：Ｎｏ）、画像処理装置１００は、削除スイッチ２３４により、削除を行い（ステップＳ２８０４）、ステップＳ２８１１へ移行する。
【０１５８】
Ｌｓｂ［ｋ］＝＝ｋであると判断された場合（ステップＳ２８０３：Ｙｅｓ）、画像処理装置１００は、Ｌｃｂ［ｋ］＝＝０であるか否かを判断する（ステップＳ２８０５）。Ｌｃｂ［ｋ］＝＝０である場合（ステップＳ２８０５：Ｙｅｓ）、画像処理装置１００は、ステップＳ２８０４へ移行する。Ｌｃｂ［ｋ］＝＝０でない場合（ステップＳ２８０５：Ｎｏ）、画像処理装置１００は、ラインセット番号ｋが埋め込まれたラインセットスタート命令中のラインセット継続数フィールドＬｃｉに継続数バッファＬｃｂ［ｋ］の値を埋め込む（ステップＳ２８０６）。
【０１５９】
そして、画像処理装置１００は、ラインセット番号ｋが埋め込まれたラインセットスタート命令を内蔵ＳＲＡＭ２０１に書き込む（ステップＳ２８０７）。そして、画像処理装置１００は、複数の図形のうちの対象の図形はラインセットＬ［ｋ］に属するか否かを判断する（ステップＳ２８０８）。ここで、対象の図形はラインセットＬ［ｋ］に属するとは、対象の図形の少なくとも一部がラインセットＬ［ｋ］に描画されることを示す。
【０１６０】
属すると判断された場合（ステップＳ２８０８：Ｙｅｓ）、画像処理装置１００は、ソート前中間データをソート済中間データとして内蔵ＳＲＡＭ２０１に書き込み（ステップＳ２８０９）、ステップＳ２８１０へ移行する。属さないと判断された場合（ステップＳ２８０８：Ｎｏ）、画像処理装置１００は、ステップＳ２８１０へ移行する。
【０１６１】
つぎに、画像処理装置１００は、全図形が対象の図形としてソート済中間データの書き込み処理が完了したか否かを判断する（ステップＳ２８１０）。完了していないと判断された場合（ステップＳ２８１０：Ｎｏ）、画像処理装置１００は、ステップＳ２８０８へ戻る。完了したと判断された場合（ステップＳ２８１０：Ｙｅｓ）、画像処理装置１００は、全ラインセットＬが対象のラインセットＬとしてソート処理が完了したか否かを判断する（ステップＳ２８１１）。完了していないと判断された場合（ステップＳ２８１１：Ｎｏ）、画像処理装置１００は、ｋ＝ｋ＋１とし（ステップＳ２８１２）、ステップＳ２８０２へ戻る。完了したと判断された場合（ステップＳ２８１１：Ｙｅｓ）、画像処理装置１００は、一連の処理を終了する。
【０１６２】
図２９は、ソート処理手順例２を示すフローチャートである。ここでは、上述したステップＳ２２１１，Ｓ２２１２の詳細なソート処理手順を示す。画像処理装置１００は、ｋ＝０とする（ステップＳ２９０１）。つぎに、画像処理装置１００は、ラインセット番号ｋを埋め込んだラインセットスタート命令を生成する（ステップＳ２９０２）。画像処理装置１００は、Ｌｃｂ［ｋ］＝＝０であるか否かを判断する（ステップＳ２９０３）。
【０１６３】
Ｌｃｂ［ｋ］＝＝０であると判断された場合（ステップＳ２９０３：Ｙｅｓ）、画像処理装置１００は、削除スイッチ２３４により、ソート前中間データの削除を行う（ステップＳ２９０４）。Ｌｃｂ［ｋ］＝＝０でないと判断された場合（ステップＳ２９０３：Ｎｏ）、画像処理装置１００は、ｋ＝＝０であるか否かを判断する（ステップＳ２９０５）。ｋ＝＝０である場合（ステップＳ２９０５：Ｙｅｓ）、画像処理装置１００は、ステップＳ２９０７へ移行する。ｋ＝＝０でない場合（ステップＳ２９０５：Ｎｏ）、画像処理装置１００は、Ｌｃｂ［ｋ−１］＝＝１または０、かつＬｃｂ［ｋ］≧１であるか否かを判断する（ステップＳ２９０６）。Ｌｃｂ［ｋ−１］＝＝１または０でない、またはＬｃｂ［ｋ］≧１でない場合（ステップＳ２９０６：Ｎｏ）、画像処理装置１００は、ステップＳ２９０４へ移行する。
【０１６４】
Ｌｃｂ［ｋ−１］＝＝１または０、かつＬｃｂ［ｋ］≧１である場合（ステップＳ２９０６：Ｙｅｓ）、ラインセット番号ｋが埋め込まれたラインセットスタート命令中のラインセット継続数フィールドＬｃｉに継続数バッファＬｃｂ［ｋ］を埋め込む（ステップＳ２９０７）。例えば、画像処理装置１００は、Ｌｃｉ＝Ｌｃｂ［ｋ］とする。
【０１６５】
つぎに、画像処理装置１００は、ラインセット番号ｋが埋め込まれラインセットスタート命令を内蔵ＳＲＡＭ２０１に書き出す（ステップＳ２９０８）。そして、画像処理装置１００は、対象の図形はラインセットＬ［ｋ］に属するか否かを判断する（ステップＳ２９０９）。対象の図形はラインセットＬ［ｋ］に属する場合（ステップＳ２９０９：Ｙｅｓ）、画像処理装置１００は、ソート前中間データをソート済中間データとして内蔵ＳＲＡＭ２０１に書き出す（ステップＳ２９１０）。
【０１６６】
そして、画像処理装置１００は、全図形が対象の図形としてソート済中間データの書き込み処理を完了したか否かを判断する（ステップＳ２９１１）。完了していないと判断された場合（ステップＳ２９１１：Ｎｏ）、画像処理装置１００は、ステップＳ２９０９へ戻る。完了したと判断された場合（ステップＳ２９１１：Ｙｅｓ）、画像処理装置１００は、全ラインセットＬが対象のラインセットＬとしてソート処理が完了したか否かを判断する（ステップＳ２９１２）。完了していないと判断された場合（ステップＳ２９１２：Ｎｏ）、画像処理装置１００は、ｋ＝ｋ＋１とし（ステップＳ２９１３）、ステップＳ２９０２へ戻る。完了したと判断された場合（ステップＳ２９１２：Ｙｅｓ）、画像処理装置１００は、一連の処理を終了する。
【０１６７】
図３０は、画像データ生成処理手順例を示すフローチャートである。ここでは、上述したＳ２３０１〜Ｓ２３０８の詳細な画像データ生成処理手順について説明する。画像処理装置１００は、ソート済中間データ復元部２４１によって、描画用継続数カウンタＬｃｃｄを０によりリセットする（ステップＳ３００１）。画像処理装置１００は、ｋ＝０とする（ステップＳ３００２）。画像処理装置１００は、ソート済中間データ復元部２４１によって、ラインセット番号ｋが埋め込まれたラインセットスタート命令を検出したか否かを判断する（ステップＳ３００３）。
【０１６８】
検出したと判断された場合（ステップＳ３００３：Ｙｅｓ）、画像処理装置１００は、埋め込まれたラインセット継続数Ｌｃｉを読み取り、描画用継続数カウンタＬｃｃｄにセットする（ステップＳ３００４）。例えば、画像処理装置１００は、Ｌｃｃｄ＝Ｌｃｉとする。画像処理装置１００は、継続数読み取り部２４４によって、描画命令Ｉの先頭のアドレスをソート済中間データ開始アドレスレジスタ２４５に退避させ（ステップＳ３００５）、ステップＳ３００９へ移行する。
【０１６９】
一方、検出していないと判断された場合（ステップＳ３００３：Ｎｏ）、画像処理装置１００は、ソート済中間データ復元部２４１によって、Ｌｃｃｄ＞１であるか否かを判断する（ステップＳ３００６）。ステップＳ３００３におけるＮｏの場合、ラインセットＬ［ｋ］に属する中間データが省略または存在しない場合である。Ｌｃｃｄ＞１でないと判断された場合（ステップＳ３００６：Ｎｏ）、画像処理装置１００は、ステップＳ３０１２へ移行する。Ｌｃｃｄ＞１であると判断された場合（ステップＳ３００６：Ｙｅｓ）、画像処理装置１００は、描画用継続数カウンタＬｃｃｄをカウントダウンする（ステップＳ３００７）。例えば、画像処理装置１００は、Ｌｃｃｄ＝Ｌｃｃｄ−１とする。ステップＳ３００６において、Ｙｅｓの場合、対象のラインセットＬに対応するソート済中間データは省略されている。
【０１７０】
画像処理装置１００は、ソート済中間データ再生部２４６によって、ソート済中間データ開始アドレスレジスタ２４５に設定されたアドレスに基づきソート済中間データを内蔵ＳＲＡＭ２０１から読み出し（ステップＳ３００８）、ステップＳ３００９へ移行する。
【０１７１】
そして、画像処理装置１００は、第２描画命令デコーダ２４２によって、ソート済中間データを解釈し、描画部２４３に送る（ステップＳ３００９）。そして、画像処理装置１００は、描画部２４３により、描画を実行する（ステップＳ３０１０）。また、画像処理装置１００は、画像データを生成する（ステップＳ３０１１）。最後に、全ラインセットＬが対象のラインセットＬとして画像データの生成処理が完了したか否かを判断する（ステップＳ３０１２）。いずれかのラインセットＬが完了していないと判断された場合（ステップＳ３０１２：Ｎｏ）、画像処理装置１００は、ｋ＝ｋ＋１とし（ステップＳ３０１３）、ステップＳ３００３へ戻る。全ラインセットＬが完了していると判断された場合（ステップＳ３０１２：Ｙｅｓ）、画像処理装置１００は、一連の処理を終了する。
【０１７２】
図３１は、画像処理装置を利用したシステム例を示す説明図である。システム３１００としては、自動車を例に挙げる。システム３１００は、各種センサー３１０１と、グラフィックスＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）３１０２と、メータクラスターディスプレイ３１０３と、各種入力装置３１０４と、を有する。各種センサー３１０１としては、車速、エンジン回転数、などをチェックする。グラフィックスＳｏＣ３１０２は、画像処理装置１００を有する専用のプロセッサである。そして、グラフィックスＳｏＣ３１０２は、メータクラスターディスプレイ３１０３に表示させるための画像データをラインセットＬ単位で生成する。各種入力装置３１０４は、ウィンカーレバーなどである。例えば、グラフィックスＳｏＣ３１０２は、例えば、図２Ａに示したＣＰＵ２５１、ＧＰＵ２５２、ＲＯＭ２５３、ディスクドライブ２５５、ディスク２５６などを有していてもよい。
【０１７３】
また、画像処理装置を利用したシステムとしては、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、テレビ、携帯端末装置などのディスプレイを有する装置であったり、プリンタなどであってもよい。
【０１７４】
以上説明したように、本実施の形態にかかる画像処理装置１００は、描画される図形の組み合わせごとに分割領域をグループ分けし、グループごとに描画命令Ｉを記憶部に記憶させる。これにより、分割領域ごとの画像データを生成するために記憶される描画命令の削減を図ることができる。例えば記憶先の記憶部は、例えば、画像処理装置１００の外部のメモリであってもよいし、内部のメモリであってもよい。外部のメモリである場合、記憶される描画命令を削減することにより、他の装置と画像処理装置１００とによる記憶領域の競合の発生を抑止することができる。内部のメモリであると、メモリ量に制約があるため、制約内に記憶格納データ量を収めるための画像処理装置１００による処理が複雑化する。そのため、画像データの精度や中間データの精度が低下する場合がある。これに対して、上述したように本実施の形態にかかる画像処理装置１００によれば、記憶される描画命令の削減を図ることができるため、データの精度が低下することを抑止することができる。
【０１７５】
また、画像処理装置１００は、複数の図形のうちの少なくとも一部が描画される図形が同一であり、かつ画像データを生成する処理における画像データの生成順が連続する各分割領域が同一のグループとなるように分類する。このように、生成順にグループ化されるため、同一の描画命令が連続して使用されるようになり、同一の描画命令を使い回すための制御を容易化させることができる。
【０１７６】
また、グループに分類された分割領域を示す領域情報は、グループに分類された分割領域のうち生成順が先頭または末尾の分割領域を示す領域情報と、前記グループに分類された分割領域の数を示す情報と、によって表される。このように、ビット幅を合わせることにより、記憶される描画命令の削減を図ることができる。
【０１７７】
また、画像処理装置１００は、分類したグループの各々を対象とし、対象のグループについて記憶部に記憶された描画命令Ｉを特定し、特定した描画命令Ｉに基づいて、対象のグループに分類された分割領域の各々について画像データを生成する。これにより、グループごとに記憶部を１回検索するだけで、画像データを生成することができるため、検索に要する時間を短縮することが可能となる。
【０１７８】
また、画像処理装置１００は、特定した描画命令Ｉが記憶された記憶領域を示すアドレスを第２記憶部に記憶させる。そして、画像処理装置１００は、第２記憶部に記憶されたアドレスが示す記憶領域に記憶された描画命令Ｉに基づいて、対象のグループに分類された分割領域の各々について画像データを生成する。このように、特定した描画命令Ｉを記憶させるレジスタを持たずに、描画命令Ｉが格納された記憶領域のアドレスをレジスタに記憶させておくことにより、記憶部からの描画命令Ｉの特定が容易となり、特定に要する時間の短縮化を図ることができる。
【０１７９】
また、複数の分割領域の各々のサイズは、ラインバッファのサイズである。そのため、分割領域ごとに画像データを作成する際に、分割領域のサイズとラインバッファのサイズとが同じであれば、分割領域について生成した画像データをそのままラインバッファに記憶させることができる。
【０１８０】
なお、本実施の形態で説明した画像処理方法は、予め用意された画像処理プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本画像処理プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、画像処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１８１】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１８２】
（付記１）画像処理装置が、
描画領域に描画される複数の図形の各々について、前記図形を前記描画領域に描画させる描画命令と、前記描画領域を分割した複数の分割領域のうちの前記図形の少なくとも一部が描画される分割領域を示す領域情報と、を取得し、
取得した前記領域情報が示す分割領域の各々について、前記複数の図形のうちの少なくとも一部が描画される図形が同一の各分割領域が同じグループとなるように分類し、
分類した前記グループの各々について、前記グループに分類された分割領域を示す領域情報と、前記グループに分類された分割領域に少なくとも一部が描画される図形について取得した前記描画命令と、を関連付けて第１記憶部に記憶させ、
取得した前記領域情報が示す分割領域の各々について、前記分割領域が示す領域情報に関連付けられて前記第１記憶部に記憶された前記描画命令に基づいて、前記分割領域内の各画素を示す画像データを生成する、
処理を実行することを特徴とする画像処理方法。
【０１８３】
（付記２）前記分類する処理では、前記複数の図形のうちの少なくとも一部が描画される図形が同一であり、かつ前記画像データを生成する処理における前記画像データの生成順が連続する各分割領域が同一のグループとなるように分類することを特徴とする付記１に記載の画像処理方法。
【０１８４】
（付記３）前記グループに分類された分割領域を示す領域情報は、前記グループに分類された分割領域のうち前記生成順が先頭または末尾の分割領域を示す領域情報と、前記グループに分類された分割領域の数を示す情報と、によって表されることを特徴とする付記２に記載の画像処理方法。
【０１８５】
（付記４）前記生成する処理では、分類した前記グループの各々を対象とし、対象のグループについて前記第１記憶部に記憶された前記描画命令を特定し、特定した前記描画命令に基づいて、前記対象のグループに分類された前記分割領域の各々について前記画像データを生成することを特徴とする付記１〜３のいずれか一つに記載の画像処理方法。
【０１８６】
（付記５）前記生成する処理では、前記第１記憶部のうち特定した前記描画命令が記憶された記憶領域を示すアドレスを第２記憶部に記憶させ、前記第２記憶部に記憶された前記アドレスが示す記憶領域に記憶された前記描画命令に基づいて、前記対象のグループに分類された前記分割領域の各々について前記画像データを生成することを特徴とする付記４に記載の画像処理方法。
【０１８７】
（付記６）前記複数の分割領域の各々のサイズは、ラインバッファのサイズであることを特徴とする付記１〜５のいずれか一つに記載の画像処理方法。
【０１８８】
（付記７）描画領域に描画される複数の図形の各々について、前記図形を前記描画領域に描画させる描画命令と、前記描画領域を分割した複数の分割領域のうちの前記図形の少なくとも一部が描画される分割領域を示す領域情報と、を取得する取得部と、
前記取得部が取得した前記領域情報が示す分割領域の各々について、前記複数の図形のうちの少なくとも一部が描画される図形が同一の各分割領域が同じグループとなるように分類する分類部と、
前記分類部が分類した前記グループの各々について、前記グループに分類された分割領域を示す領域情報と、前記グループに分類された分割領域に少なくとも一部が描画される図形について取得した前記描画命令と、を関連付けて記憶部に記憶させる関連付け部と、
取得した前記領域情報が示す分割領域の各々について、前記分割領域が示す領域情報に前記関連付け部によって関連付けられて前記記憶部に記憶された前記描画命令に基づいて、前記分割領域内の各画素を示す画像データを生成する生成部と、
を有することを特徴とする画像処理装置。
【符号の説明】
【０１８９】
１００  画像処理装置
１０１  記憶部
２０１  内蔵ＳＲＡＭ
２０３  描画命令ソート実行部
２０４  描画実行部
２２１  取得部
２２２  分類部
１〜１７，Ａ，Ｂ  図形
Ｌ  ラインセット
ＩＡ，ＩＢ，Ｉ１〜Ｉ１７  描画命令群
ｉｍｇ  画像データ
ａｒｅａ  描画領域
【図１】
2015049687.tif 000003
【図２Ａ】
2015049687.tif 000004
【図２Ｂ】
2015049687.tif 000005
【図３】
2015049687.tif 000006
【図４】
2015049687.tif 000007
【図５】
2015049687.tif 000008
【図６】
2015049687.tif 000009
【図７】
2015049687.tif 000010
【図８】
2015049687.tif 000011
【図９】
2015049687.tif 000012
【図１０】
2015049687.tif 000013
【図１１】
2015049687.tif 000014
【図１２】
2015049687.tif 000015
【図１３】
2015049687.tif 000016
【図１４】
2015049687.tif 000017
【図１５】
2015049687.tif 000018
【図１６】
2015049687.tif 000019
【図１７】
2015049687.tif 000020
【図１８】
2015049687.tif 000021
【図１９】
2015049687.tif 000022
【図２０】
2015049687.tif 000023
【図２１】
2015049687.tif 000024
【図２２】
2015049687.tif 000025
【図２３】
2015049687.tif 000026
【図２４】
2015049687.tif 000027
【図２５】
2015049687.tif 000028
【図２６】
2015049687.tif 000029
【図２７】
2015049687.tif 000030
【図２８】
2015049687.tif 000031
【図２９】
2015049687.tif 000032
【図３０】
2015049687.tif 000033
【図３１】
2015049687.tif 000034