(57)【要約】【課題】  辺処理、アクティブ・オブジェクト決定、スパン内画素値決定および最終画素値決定の各専用ハードウェアのパイプライン接続によって構成されたレンダリング装置において、任意のモジュールまたは機能への処理集中によるパイプラインストールが引き起こす処理速度の低下を緩和する。【解決手段】  パイプラインを構成するそれぞれのモジュールによるバスアクセス時の調停アルゴリズムを前期各モジュール間の負荷関係に応じて変更することにより、ストールを回避または軽減するか、またはストールの影響を軽減させる。【選択図】  図１０
2006031160.tif 000002
【特許請求の範囲】
【請求項１】
ラスター画素イメージを形成するべくグラフィックオブジェクトの表示リストを処理する方法において、前記表示リストを解析し前記表示リストにフラグを付加する手段と、表示リストに付加されたフラグを判定する手段と、前記判定の結果フラグが立っていない場合に前記表ジリスとに対する処理を実行する第一の処理手段と、前記判定の結果フラグが立っている場合は前記第一の処理手段と同等の手段を実行する第二の処理手段とを有することを特徴とするグラフィックオブジェクト処理方法。
【請求項２】
請求項１に記載のグラフィックオブジェクト処理方法において、表示リストを解析しグラフィックオブジェクトにフラグを付加する手段がソフトウェアとして実装されることを特徴とするグラフィックオブジェクト処理方法。
【請求項３】
請求項１に記載のグラフィックオブジェクト処理方法において、第一の処理手段はハードウェアであり、第二の処理手段はプロセッサと前記プロセッサで実行可能なソフトウェアであることを特徴とするグラフィックオブジェクト処理方法。
【請求項４】
請求項３に記載のグラフィックオブジェクト処理方法において、フラグを付加する手段は特に表示リストと第一の処理手段の構成を解析してフラグを付加することを特徴とするグラフィックオブジェクト処理方法。
【請求項５】
請求項１に記載のグラフィックオブジェクト処理方法において、表示リストはグラフィックオブジェクトのプロパティ情報と前記グラフィックオブジェクトのプロパティ情報に対する処理を規定する命令ストリームとから構成されることを特徴とするグラフィックオブジェクト処理方法。
【請求項６】
請求項５に記載のグラフィックオブジェクト処理方法において、フラグを付加する手段は特にグラフィックオブジェクトのプロパティ情報を解析することを特徴とするグラフィックオブジェクト処理方法。
【請求項７】
請求項５に記載のグラフィックオブジェクト処理方法において、フラグを付加する手段は特に命令ストリームを解析することを特徴とするグラフィックオブジェクト処理方法。
【請求項８】
請求項５に記載のグラフィックオブジェクト処理方法において、表示リストを解析しグラフィックオブジェクトにフラグを付加するステップにおいて、任意の命令に対してフラグを設定することを特徴とするグラフィックオブジェクト処理方法。
【請求項９】
請求項５に記載のグラフィックオブジェクト処理方法において、表示リストを解析しグラフィックオブジェクトにフラグを付加するステップにおいて、任意のグラフィックオブジェクトのプロパティ情報に対してフラグを設定することを特徴とするグラフィックオブジェクト処理方法。
【請求項１０】
請求項１に記載のグラフィックオブジェクト処理方法において、第一の処理手段は表示リストを読み込む手段と、表示リストに設定されたフラグのｏｎ／ｏｆｆを判定する手段と、第二の処理手段に前記フラグに関連する表示リストのレコードを転送する手段とを有しており、第二の処理手段は第一の処理手段から前記表示リストのレコードを受信する手段を有することを特徴とするグラフィックオブジェクト処理方法。
【請求項１１】
請求項１に記載のグラフィックオブジェクト処理方法において、第一の処理手段はさらに複数の処理手段によって構成されることを特徴とするグラフィックオブジェクト処理方法。
【請求項１２】
請求項１１に記載のグラフィックオブジェクト処理方法において、第一の処理手段は複数の処理手段がパイプライン接続されることにより構成されることを特徴とするグラフィックオブジェクト処理方法。
【請求項１３】
請求項１１および請求項１２に記載のグラフィックオブジェクト処理方法において、第一の処理手段は表示リストを読み込み第一の処理手段内の動作を規定する内部コマンドを生成する処理手段を含むことを特徴とするグラフィックオブジェクト処理方法。
【請求項１４】
請求項１３に記載のグラフィックオブジェクト処理方法において、内部コマンドはフラグのために予約されたフィールドを有することを特徴とするグラフィックオブジェクト処理方法。
【請求項１５】
請求項１４に記載のグラフィックオブジェクト処理方法において、表示リストを読み込み第一の処理手段内の動作を規定する内部コマンドを生成する処理手段は表示リストに含まれるレコードのうち前記フラグが設定されたレコードに関連する内部コマンドに対してフラグを設定することを特徴とするグラフィックオブジェクト処理方法。
【請求項１６】
請求項１５に記載のグラフィックオブジェクト処理方法において、第一の処理手段を構成する複数の処理手段のうちの少なくとも一つは内部コマンドが有するフラグのために予約されたフィールドを読む手段と、前記フラグを判定する手段と、前記フラグに応じて処理手段自身に処理を割当てる手段と、前記フラグに応じて第二の処理手段に処理を割当てる手段と、第二の処理手段に前記内部コマンドを転送する手段とを有しており、第二の処理手段は第一の処理手段から内部コマンドを受信する手段と、第一の処理手段から受信したコマンドに対する処理を実行する手段を有することを特徴とするグラフィックオブジェクト処理方法。
【請求項１７】
請求項１６に記載のグラフィックオブジェクト処理方法において、第一の処理手段を構成する複数の処理手段のうち内部コマンドが有するフラグのために予約されたフィールドを読む手段と、前記フラグを判定する手段と、前記フラグに応じて処理手段自身に処理を割当てる手段と、前記フラグに応じて第二の処理手段に処理を割当てる手段と、第二の処理手段に前記内部コマンドを転送する手段とを有する処理手段は、さらに第二の処理手段から前記内部コマンドに対する応答を受信する手段を有しており、第二の処理手段は前記内部コマンドに対する処理実行後に前記処理に対する応答を発行する手段を有することを特徴とするグラフィックオブジェクト処理方法。
【請求項１８】
請求項１１および請求項１２に記載のグラフィックオブジェクト処理方法において、第二の処理手段は表示リストを読み込み第一の処理手段および第二の処理手段の動作を規定する内部コマンドを生成する処理手段を含むことを特徴とするグラフィックオブジェクト処理方法。
【請求項１９】
請求項１８に記載のグラフィックオブジェクト処理方法において、内部コマンドはフラグのために予約されたフィールドを有することを特徴とするグラフィックオブジェクト処理方法。
【請求項２０】
請求項１９に記載のグラフィックオブジェクト処理方法において、表示リストを読み込み第一の処理手段および第二の処理手段内の動作を規定する内部コマンドを生成する処理手段は表示リストに含まれるレコードのうち前記フラグが設定されたレコードに関連する内部コマンドに対してフラグを設定することを特徴とするグラフィックオブジェクト処理方法。
【請求項２１】
請求項２０に記載のグラフィックオブジェクト処理方法において、第二の処理手段は内部コマンドが有するフラグのために予約されたフィールドを読む手段と、前記フラグを判定する手段と、前記フラグに応じて第二の処理手段自身に処理を割当てる手段と、内部コマンドの種類に応じて第一の処理手段を構成する処理手段のうちの任意の処理手段を選択する手段と、前記フラグに応じて第一の処理手段の前記選択された処理手段に処理を割当てる手段と、第一の処理手段の前記選択された処理手段に前記内部コマンドを転送する手段とを有しており、第一の処理手段を構成する複数の処理手段は第二の処理手段から内部コマンドを受信する手段を有することを特徴とするグラフィックオブジェクト処理方法。
【請求項２２】
請求項２１に記載のグラフィックオブジェクト処理方法において、第二の処理手段は自身に割当てた内部コマンドに対する処理を実行後に第一の処理手段の前記選択された処理手段に内部コマンドに対する処理終了通知を発行する手段を有しており、第一の処理手段を構成する複数の処理手段は第二の処理手段から前記内部コマンドに対する処理終了通知を受信する手段を有することを特徴とするグラフィックオブジェクト処理方法。
【請求項２３】
請求項１に記載のグラフィックオブジェクト処理方法において、表示リストにフラグを付加する手段は表示リスト内の順序を入れ替えることを特徴とするグラフィックオブジェクト処理方法。
【請求項２４】
請求項５に記載のグラフィックオブジェクト処理方法において、表示リストにフラグを付加する手段は命令の順序を入れ替えることを特徴とするグラフィックオブジェクト処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト・グラフィック要素のラスタ画素画像へのレンダリング装置に関し、具体的には、レンダリング処理の一部としての画素データのフレーム記憶装置またはライン記憶装置を使用しない、そのようなオブジェクト・グラフィック要素の画素画像データへの効率的なレンダリングを行うレンダリング装置に関する。
【背景技術】
【０００２】
ほとんどのオブジェクト・ベース・グラフィックス・システムでは、ページまたは画面の画素ベース画像を保持するためにフレーム・ストアまたはページ・バッファが使用される。通常、グラフィック・オブジェクトの輪郭は、計算され、塗り潰され、フレーム・ストアに書き込まれる。二次元グラフィックスの場合、他のオブジェクトの手前にあるオブジェクトは、単純に背景オブジェクトの書込み後にフレーム・ストアに書き込まれ、これによって、画素単位で背景を置換する。これは、当技術分野では、「ペインタのアルゴリズム（Ｐａｉｎｔｅｒ’ｓ  ａｌｇｏｒｉｔｈｍ）」として一般に知られている。オブジェクトは、最も奥のオブジェクトから最も手前のオブジェクトという優先順位で検討され、通常は、各オブジェクトが、スキャン・ラインの順序でラスタ化され、画素が、各スキャン・ラインに沿ったシーケンシャルな並びでフレーム・ストアに書き込まれる。
【０００３】
この技法には、基本的に２つの問題がある。第１の問題は、フレーム・ストア内のすべての画素への高速なランダム・アクセスが必要であることである。これは、新たに検討されるオブジェクトのそれぞれが、フレーム・ストア内のどの画素にも影響する可能性があるからである。このため、フレーム・ストアは、通常は半導体のランダム・アクセス・メモリ（ＲＡＭ）内に保持される。高解像度カラー・プリンタの場合、必要なＲＡＭの量は非常に多くなり、通常は１００Ｍバイトを超えるが、これは、コストがかかり、高速での動作が困難である。第２の問題は、多数の画素がペイント（レンダリング）され、時間的に後のオブジェクトによって上塗り（再レンダリング）されることである。時間的に前のオブジェクトによる画素のペイントは、時間の浪費になる。
【０００４】
大量のフレーム・ストアの問題を克服するための方法の１つが、「バンディング（ｂａｎｄｉｎｇ）」の使用である。バンディングを使用する時には、一時にフレーム・ストアの一部だけがメモリ内に存在する。描画されるオブジェクトのすべてが、「表示リスト・ストア」に保存される。画像全体は上記と同様にレンダリングされるが、存在するフレーム・ストアの部分の外側をペイント（レンダリング）しようとする画素ペイント（レンダリング）動作は、「クリップ」アウトされる。オブジェクトのすべてが描画された後に、フレーム・ストアの部分を、プリンタ（または他の位置）に送り、フレーム・ストアの別の部分を選択し、この処理を繰り返す。この技法には、ペナルティが伴う。たとえば、描画されるオブジェクトは検討され、何度も（バンドごとに１回）再検討されなければならない。バンドの数が増えるにつれて、レンダリングが必要なオブジェクトの検査が繰り返されるし回数も増える。バンディングの技法は、上塗りのコストという問題を解決しない。
【０００５】
いくつかの他のグラフィック・システムでは、スキャン・ラインの順で画像が検討される。やはり、描画されるオブジェクトのすべてが、表示リスト・ストアに保存される。各スキャン・ライン上で、そのスキャン・ラインと交差するオブジェクトが優先順位の順でオブジェクトごとに検討され、オブジェクトの辺の交差点の間の画素のスパンが、ライン・ストアにセットされる。この技法も、大量のフレーム・ストアの問題を克服するが、やはり上塗りの問題をこうむる。
【０００６】
これらのほかに、大きいフレーム・ストアの問題と上塗りの問題の両方を解決する技法がある。そのような技法の１つでは、各スキャン・ラインが順番に作られる。やはり、描画されるオブジェクトのすべてが、表示リスト・ストアに保存される。各スキャン・ラインでは、そのスキャン・ラインと交差するオブジェクトの辺が、スキャン・ラインとの交差の座標の昇順で保持される。これらの交差の点または辺の交点が、順番に検討され、アクティブ・フラグの配列のトグルに使用される。そのスキャン・ライン上での対象となるオブジェクト優先順位ごとに１つのアクティブ・フラグがある。検討される辺の対のそれぞれの間で、最初の辺と次の辺の間にある各画素の色データが、アクティブ・フラグに対する優先順位エンコーダを使用して、どの優先順位が最も上にあるかを判定すること、および２つの辺の間のスパンの画素に関するその優先順位に関連する色を使用することによって生成される。次のスキャン・ラインに備えて、各辺の交差の座標が、各辺の性質に応じて更新される。この更新の結果として誤ってソートされた状態になった隣接する辺は、交換される。新しい辺も、辺のリストに合併される。
【０００７】
この技法は、フレーム・ストアまたはライン・ストアがなく、上塗りがなく、位数Ｎ倍（このＮは優先順位の数）ではなく定数位数の時間でオブジェクト優先順位が処理されるという大きい長所を有する。ただし、この技法は既存のグラフィック記述言語が必要とする多数の機能を実施できないので、その使用が極度に制限されている。
【０００８】
この技法に伴う１つ又は複数の欠陥を、実質的に克服するか、少なくとも改善する技法が提案されている（例えば、特許文献１参照）。
【０００９】
この技法においても各スキャン・ラインが順番に作られる。まず描画される全てのオブジェクトが、それぞれのオブジェクトの描画が開始されるスキャン・ライン順にソートされて表示リスト・ストアに保存される。各スキャン・ラインでは、そのスキャン・ラインと交差するオブジェクトの辺が交差座標の昇順に保持され、これら辺交差の隣接する対のそれぞれについて、対応するオブジェクトに関連する情報を検査して、辺交差の対応する対の間の画素位置のスパンに関するアクティブ・オブジェクトの組を決定し、画素位置のスパンのそれぞれについて、アクティブ・オブジェクトの対応する組を使用して、スパン内の位置のそれぞれの値を決定する。
【特許文献１】特開２０００−１４９０３５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、前述の技術を実施するにあたっては辺処理、アクティブ・オブジェクトの決定、スパン内の画素値の決定および複数アクティブ・オブジェクトの画素値から唯一の画素値の決定のそれぞれを専用ハードウェアによって実現し、それらのハードウェア接続してパイプラインを構成することによって実現するか、または全処理をソフトウェアによってホスト上に実現していた。この場合、ハードウェアによる実装においては、与えられた画素シーケンシャル・レンダリング装置のハードウェアによってある画像を描画する場合に、画像の特徴によっては任意のモジュールまたは機能に処理が集中し、パイプラインストールが発生し、処理速度が律速する可能性があった。
【００１１】
本発明は前述のような問題点を解決するためになされたものであり、その目的は描画処理において負荷が集中する機能の処理をハードウェアとソフトウェアとで並列に処理することによりストールを回避または軽減し、より高速な画素シーケンシャル・レンダリング装置を提供することである。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、請求項１記載の発明に係るグラフィックオブジェクト処理方法では、ラスター画素イメージを形成するべくグラフィックオブジェクトの表示リストを処理する方法において、前記表示リストを解析し前記表示リストにフラグを付加する手段と、表示リストに付加されたフラグを判定する手段と、前記判定の結果フラグが立っていない場合に前記表ジリスとに対する処理を実行する第一の処理手段と、前記判定の結果フラグが立っている場合は前記第一の処理手段と同等の手段を実行する第二の処理手段とを有することを特徴とする。
【００１３】
請求項２記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストを解析しグラフィックオブジェクトにフラグを付加するステップがソフトウェアによって実行されることを特徴とする。
【００１４】
請求項３記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第一の処理手段はハードウェアであり、第二の処理手段はプロセッサと前記プロセッサで実行可能なソフトウェアであることを特徴とする。
【００１５】
請求項４記載の発明に係るグラフィックオブジェクト処理方法では、さらに、フラグを付加する手段は特に表示リストと第一の処理手段の構成を解析してフラグを付加することを特徴とする。
【００１６】
請求項５記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストはグラフィックオブジェクトのプロパティ情報と前記グラフィックオブジェクトのプロパティ情報に対する処理を規定する命令ストリームとから構成されることを特徴とする。
【００１７】
請求項６記載の発明に係るグラフィックオブジェクト処理方法では、さらに、フラグを付加する手段は特にグラフィックオブジェクトのプロパティ情報を解析することを特徴とする。
【００１８】
請求項７記載の発明に係るグラフィックオブジェクト処理方法では、さらに、フラグを付加する手段は特に命令ストリームを解析することを特徴とする。
【００１９】
請求項８記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストを解析しグラフィックオブジェクトにフラグを付加するステップにおいて、任意の命令に対してフラグを設定することを特徴とする。
【００２０】
請求項９記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストを解析しグラフィックオブジェクトにフラグを付加するステップにおいて、任意のグラフィックオブジェクトのプロパティ情報に対してフラグを設定することを特徴とする。
【００２１】
請求項１０記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第一の処理手段は表示リストを読み込む手段と、表示リストに設定されたフラグのｏｎ／ｏｆｆを判定する手段と、第二の処理手段に前記フラグに関連する表示リストのレコードを転送する手段とを有しており、第二の処理手段は第一の処理手段から前記表示リストのレコードを受信する手段を有することを特徴とする。
【００２２】
請求項１１記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第一の処理手段はさらに複数の処理手段によって構成されることを特徴とする。
【００２３】
請求項１２記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第一の処理手段は複数の処理手段がパイプライン接続されることにより構成されることを特徴とする。
【００２４】
請求項１３記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第一の処理手段は表示リストを読み込み第一の処理手段内の動作を規定する内部コマンドを生成する処理手段を含むことを特徴とする。
【００２５】
請求項１４記載の発明に係るグラフィックオブジェクト処理方法では、さらに、内部コマンドはフラグのために予約されたフィールドを有することを特徴とする。
【００２６】
請求項１５記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストを読み込み第一の処理手段内の動作を規定する内部コマンドを生成する処理手段は表示リストに含まれるレコードのうち前記フラグが設定されたレコードに関連する内部コマンドに対してフラグを設定することを特徴とする。
【００２７】
請求項１６記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第一の処理手段を構成する複数の処理手段のうちの少なくとも一つは内部コマンドが有するフラグのために予約されたフィールドを読む手段と、前記フラグを判定する手段と、前記フラグに応じて処理手段自身に処理を割当てる手段と、前記フラグに応じて第二の処理手段に処理を割当てる手段と、第二の処理手段に前記内部コマンドを転送する手段とを有しており、第二の処理手段は第一の処理手段から内部コマンドを受信する手段と、第一の処理手段から受信したコマンドに対する処理を実行する手段を有することを特徴とする。
【００２８】
請求項１７記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第一の処理手段を構成する複数の処理手段のうち内部コマンドが有するフラグのために予約されたフィールドを読む手段と、前記フラグを判定する手段と、前記フラグに応じて処理手段自身に処理を割当てる手段と、前記フラグに応じて第二の処理手段に処理を割当てる手段と、第二の処理手段に前記内部コマンドを転送する手段とを有する処理手段は、さらに第二の処理手段から前記内部コマンドに対する応答を受信する手段を有しており、第二の処理手段は前記内部コマンドに対する処理実行後に前記処理に対する応答を発行する手段を有することを特徴とする。
【００２９】
請求項１８記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第二の処理手段は表示リストを読み込み第一の処理手段および第二の処理手段の動作を規定する内部コマンドを生成する処理手段を含むことを特徴とする。
【００３０】
請求項１９記載の発明に係るグラフィックオブジェクト処理方法では、さらに、内部コマンドはフラグのために予約されたフィールドを有することを特徴とする。
【００３１】
請求項２０記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストを読み込み第一の処理手段および第二の処理手段内の動作を規定する内部コマンドを生成する処理手段は表示リストに含まれるレコードのうち前記フラグが設定されたレコードに関連する内部コマンドに対してフラグを設定することを特徴とする。
【００３２】
請求項２１記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第二の処理手段は内部コマンドが有するフラグのために予約されたフィールドを読む手段と、前記フラグを判定する手段と、前記フラグに応じて第二の処理手段自身に処理を割当てる手段と、内部コマンドの種類に応じて第一の処理手段を構成する処理手段のうちの任意の処理手段を選択する手段と、前記フラグに応じて第一の処理手段の前記選択された処理手段に処理を割当てる手段と、第一の処理手段の前記選択された処理手段に前記内部コマンドを転送する手段とを有しており、第一の処理手段を構成する複数の処理手段は第二の処理手段から内部コマンドを受信する手段を有することを特徴とする。
【００３３】
請求項２２記載の発明に係るグラフィックオブジェクト処理方法では、さらに、第二の処理手段は自身に割当てた内部コマンドに対する処理を実行後に第一の処理手段の前記選択された処理手段に内部コマンドに対する処理終了通知を発行する手段を有しており、第一の処理手段を構成する複数の処理手段は第二の処理手段から前記内部コマンドに対する処理終了通知を受信する手段を有することを特徴とする。
【００３４】
請求項２３記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストにフラグを付加する手段は表示リスト内の順序を入れ替えることを特徴とする。
【００３５】
請求項２４記載の発明に係るグラフィックオブジェクト処理方法では、さらに、表示リストにフラグを付加する手段は命令の順序を入れ替えることを特徴とする。
【発明の効果】
【００３６】
以上説明したように本発明に寄れば、表示リスト・ストアをプリスキャンしてハードウェア構成と処理対象の画像の特徴とからボトルネックとなる処理機能を推定して表示リスト・ストア中の任意の命令に対して付加情報を追加し、付加情報付命令に対応する処理をソフトウェア実行することにより、描画処理におけるボトルネック処理をハードウェアとソフトウェアとで並列に実行して描画処理時間を短縮することが可能な画素シーケンシャル・レンダリング装置を提供する。
【発明を実施するための最良の形態】
【００３７】
以下で本発明の装置及びその動作について詳細に説明する。
【００３８】
図１は、コンピュータ・グラフィック・オブジェクト画像のレンダリングおよびプレゼンテーションのために構成されたコンピュータ・システム１０を概略的に示す図である。このシステムには、システム・ランダム・アクセス・メモリ（ＲＡＭ）１２に関連するホスト・プロセッサ１１が含まれ、システムＲＡＭ１２には、不揮発性のハード・ディスク・ドライブまたは類似の装置と、揮発性の半導体ＲＡＭを含めることができる。システム１０には、システム読取専用メモリ（ＲＯＭ）１３も含まれ、システムＲＯＭ１３は、通常は半導体ＲＯＭを基礎とし、多くの場合に、コンパクト・ディスク装置（ＣＤ−ＲＯＭ）によって補足することができる。システム１０には、ラスタ式に動作するビデオ表示装置（ＶＤＵ）またはプリンタなどの、画像を表示するための手段１４も組み込むことができる。
【００３９】
システム１０に関して上で説明した構成要素は、バス・システム１５を介して相互接続され、ＩＢＭ  ＰＣ／ＡＴタイプのパーソナル・コンピュータおよびそれから発展した構成、Ｓｕｎ  Ｓｐａｒｃｓｔａｔｉｏｎｓおよび類似物など、当技術分野で周知のコンピュータ・システムの通常動作モードで動作可能である。
【００４０】
やはり図１に図示されているように、画素シーケンシャル・レンダリング装置１６は、バス１５に接続され、システム１０からバス１５を介して命令およびデータを供給されるグラフィック・オブジェクト・ベースの記述から導出される画素ベースの画像のシーケンシャル・レンダリングのために構成される。画素シーケンシャル・レンダリング装置１６は、オブジェクト記述のレンダリングのためにシステムＲＡＭ１２を使用することができるが、専用のローカルメモリを実装・使用してもよい。
【００４１】
図２は基本的な機能データ流れを示す図である。図２の機能流れ図は、オブジェクト・グラフィック記述２１から始まる。このオブジェクト・グラフィック記述２１は、ホスト・プロセッサ１１によって生成されるか、システムＲＡＭ１２内に記憶されるかシステムＲＯＭ１３によって提供され、グラフィック・オブジェクトのパラメータを記述するのに使用され、そこから画素ベース画像をレンダリングするために、画素シーケンシャル・レンダリング装置１６によって解釈され得る。たとえば、オブジェクト・グラフィック記述２１には、ディスプレイ上の１点から別の点まで横断する直線の辺（単純ベクトル）または、直交する線を含む複数の辺によって二次元オブジェクトが定義される直交辺フォーマットを含むいくつかのフォーマットで辺を有するオブジェクトを組み込むことができる。これ以外に、連続曲線によってオブジェクトが定義されるフォーマットも、適当であり、これらには、乗算を実行する必要なしに二次曲線を単一の出力空間内でレンダリングできるようにするいくつかのパラメータによって単一の曲線を記述できる二次多項式の線分を含めることができる。三次スプラインや類似物などのそれ以外のデータ・フォーマットを使用することもできる。オブジェクトには、多数の異なる辺タイプの混合物を含めることができる。通常、すべてのフォーマットに共通するのは、それぞれの線（直線であれ曲線であれ）の始点と終点の識別子であり、通常は、これらは、スキャン・ライン番号によって識別され、したがって、その曲線をレンダリングすることのできる特定の出力空間が定義される。
【００４２】
レンダリングされるグラフィック・オブジェクトの記述に必要なデータを識別したので、グラフィック・システム１０は、表示リスト生成ステップ２２を実行する。
【００４３】
表示リスト生成２２は、取り付けられたＲＯＭ１３およびＲＡＭ１２を有するホスト・プロセッサ１１上で実行されるソフトウェア・モジュールとして実施されることが好ましい。表示リスト生成２２では、周知のグラフィック記述言語、グラフィック・ライブラリ呼出しまたは他のアプリケーション固有フォーマットのうちの１つまたは複数で表現されたオブジェクト・グラフィック記述を表示リストに変換する。表示リストは、通常は、表示リスト・ストア２３に書き込まれる。表示リスト・ストア２３は、一般にＲＡＭ１２内で形成されるが、その代わりに画素シーケンシャル・レンダリング装置１６がローカルに有するメモリ内で形成することもできる。表示リスト・ストア２３には、複数の構成要素を含めることができ、その１つは命令ストリームであり、もう１つは辺情報であり、ラスタ画像画素データを含めることができる。
【００４４】
命令ストリームには、特定の画像内で所望される特定のグラフィック・オブジェクトをレンダリングするために画素シーケンシャル・レンダリング装置１６によって読み取られる、命令として解釈可能なコードが含まれる。
【００４５】
表示リスト・ストア２３は、画素シーケンシャル・レンダリング装置１６によって読み取られる。画素シーケンシャル・レンダリング装置１６は、表示リストをラスタ画素のストリームに変換し、このストリームは、たとえばプリンタ、ディスプレイまたはメモリ・ストアなどの別の装置に転送することができる。
【００４６】
図３はオブジェクト・グラフィック記述２１から得られた表示リストを処理して画素を生成する画素シーケンシャル・レンダリング装置の構成図である。
【００４７】
図３の画素シーケンシャル・レンダリング装置は基本構成に対して複数のハードウェアモジュールの追加を選択することによって複数通りの構成をとり得ると共に、基本構成と追加拡張をしたハードウェア構成との機能互換性および異なる追加拡張をしたハードウェア構成相互の機能互換性を保証する仕組を有する。より具体的には、ハードウェア構成の差分を自律的にソフトウェア実行するための仕組を有する。図３においては３０１〜３０８が基本構成モジュールであり、３１０〜３１３が追加拡張モジュールである。
【００４８】
表示リストにはオリジナルのオブジェクト・グラフィック記述に含まれる描画オブジェクトが副走査線方向（ｙ座標）の昇順にソートされて記録されており、その他に各オブジェクトの辺情報は辺テーブルとして、各辺と対応づけられたレベル情報と他のレベルの同一座標の画素との関係（演算方法）がレベルテーブルとして、さらにオブジェクト内部の色を決定するための情報がフィルテーブルとして含まれる。また、オブジェクトの色を決定するための情報としては、色を生成するためのデータや処理が指定されており、ビットマップの読込みや圧縮画像を伸張し、その結果から任意の画素を取り込むことを指定している場合もある。
【００４９】
図３において３００は画素シーケンシャル・レンダリング装置であり後述する３０１〜３０８および３１０〜３１３のモジュールから構成されており（そのうち３０１〜３０６をパイプラインモジュールと呼ぶものとする）、３０１はシステムバスにアクセスして該表示リストを読み込み、命令ストリームを解釈して、後述の３０２〜３０５からなる後段のパイプラインモジュールに対する内部コマンドを発行する命令実行部であり、３０２は命令実行部３０１によって発行された内部コマンドに従って該表示リストに含まれる辺情報を読み取り、走査線単位で描画オブジェクトの辺情報を抽出し、該辺情報を走査線方向（ｘ座標）の昇順にソートした後、後述するパイプライン後段に位置する３０３のレベル優先度決定部に該辺情報をメッセージとして転送する辺処理部であり、３０３は命令実行部３０１によって発行された命令に従って該表示リストに含まれるレベルテーブルと辺処理部３０２によって生成された該辺情報とを読み込み、各走査線毎に各レベルの優先度と活性化された（描画に影響する）画素範囲を決定し、各走査線の該活性化された画素範囲の情報を優先度順にソートして他のレベルの画素との関係情報とともに画素範囲情報とし、後述するパイプライン後段に位置する３０４の塗りつぶしデータ決定部に該画素範囲情報を転送するレベル優先度決定部であり、３０４は命令実行部３０１によって発行された内部コマンドに従って該表示リストに含まれるフィルテーブルとレベル優先度決定部３０３によって生成された該画素範囲情報とを読み込み、レベル毎に活性化された画素の色を決定し、後述するパイプライン後段に位置する３０５の色合成部に該活性化された画素の色情報を３０３から転送されてきた画素範囲情報とともに転送する塗りつぶしデータ決定部であり、３０５は命令実行部３０１によって発行された内部コマンドに従ってレベル優先度決定部３０３によって生成された各レベルの画素範囲情報と塗りつぶしデータ決定部３０４によって決定された画素の色情報をもとに画素単位に色を決定する演算を実行し、画素の最終的な色を生成する色合成部であり、
３０６は色合成部３０５によって生成された最終画素を接続された外部機器に送出する画素出力部であり、３０７は該表示リストに前述の辺処理部３０２、レベル優先度決定部３０３、塗りつぶしデータ決定部３０４および色合成部３０５に実装されていない機能を要する内部コマンドが命令実行部３０１によって発行されたときに、該内部コマンドをソフトウェアの介在によって処理する互換性保証部であり、３０８は辺処理部３０２、レベル優先度決定部３０３、塗りつぶしデータ決定部３０４、色合成部３０５および互換性保証部３０７によるシステムバスへのアクセスに対する調停、順序付けを行いシステムバスへアクセスを中継するバスアクセス調停部である。
【００５０】
辺処理部３０２、レベル優先度決定部３０３、塗りつぶしデータ決定部３０４および色合成部３０５それぞれに対して拡張部品を追加することが可能であり、かつ塗りつぶしデータ決定部３０４に対しては画像伸張部３１０を追加することもでき、画像伸張部３１０はさらに拡張部品を追加することが可能である。以上のような拡張はシステムに要求される性能およびコストに応じてなされる。
【００５１】
３１０は画素色決定の際に圧縮画像を扱うことを可能にする例えばＪＰＥＧをサポートする拡張モジュールであるところの画像伸張部であり、３１１はＰｏｓｔＳｃｒｉｐｔに対応する拡張モジュールであるところの辺処理拡張部であり、３１２はＧＤＩに対応する拡張モジュールであるところの辺処理拡張部であり、３１３はＪＢＩＧに対応する拡張モジュールであるところの画像伸張拡張部である。
【００５２】
さらに画像伸張部３１０は自身が対応している伸張処理であれば自ら処理を行い、対応していない処理であれば互換性保証部３０７へコマンドを発行し、発行したコマンドに対する終了コマンドを受信し、最後に処理の終了通知を塗りつぶしデータ決定部３０４に発行する。
【００５３】
以下、図４のような画像に対応するオブジェクト・グラフィック記述を処理する場合を例に取り、図３の画素シーケンシャル・レンダリング装置の動作の概要を説明する。図４は先ず三角形のオブジェクト４１が描かれ（レベル１）、その上に重ねて楕円のオブジェクト４２が描かれている（レベル２）描画画面を示している。また、レベル０は例えば画像を印刷する場合の紙に相当する最も視点から遠いデフォルトのレベルを表しており、白などのデフォルトのバックグラウンド色を有するものとする。
【００５４】
図３の画素シーケンシャル・レンダリング装置による処理に先立ってオブジェクト・グラフィック記述はソフトウェアによって表示リストに変換される。表示リストは少なくとも以下に示す情報を含む。
（１）ｙ＝３０からｙ＝１４０の描画を行う。
（２）ｙ＝３０からｙ＝１４０までオブジェクト４１の領域開始を示す直線の辺がある。傾きも含む。
（３）ｙ＝３０からｙ＝１４０までオブジェクト４１の領域終端を示す直線の辺がある。傾きも含む。
（４）ｙ＝７０からｙ＝１１５までオブジェクト４２の領域開始を示す楕円弧の辺がある。正確には楕円弧は短い直線セグメントに分割され、各セグメントの開始位置と傾きの情報とともに含まれる。
（５）ｙ＝７０からｙ＝１１５までオブジェクト４２の領域終端を示す楕円弧の辺がある。正確には楕円弧は短い直線セグメントに分割され、各セグメントの開始位置と傾きの情報とともに含まれる。
（６）オブジェクト４１のレベル（ｚ座標）情報および他のレベルの同一座標の画素との関係（演算）、下位レベル（視点を基準にして遠い側）のオブジェクトの色情報が必要か（即ち透過か不透過か）、レベル内でどのように色が決定されるか（フィルタイプ）。
（７）オブジェクト４２のレベル（ｚ座標）情報および他のレベルの同一座標の画素との関係（演算）、下位レベル（視点を基準にして遠い側）のオブジェクトの色情報が必要か（即ち透過か不透過か）、レベル内でどのように色が決定されるか（フィルタイプ）。
（８）（２）から（６）へのポインタ情報。
（９）（３）から（６）へのポインタ情報。
（１０）（４）から（７）へのポインタ情報。
（１１）（５）から（７）へのポインタ情報。
（１２）オブジェクト４１の色を決定する（フィル）ための情報。
（１３）オブジェクト４２の色を決定する（フィル）ための情報。
（１４）（６）から（１２）へのポインタ情報
（１５）（７）から（１３）へのポインタ情報
（１６）辺テーブルアドレス
（１７）レベルテーブルアドレス
（１８）フィルテーブルアドレス
【００５５】
以上のうち（２）、（３）、（４）、（５）、（８）、（９）、（１０）および（１１）は辺テーブルに含まれ、（６）、（７）、（１２）および（１３）はレベルテーブルに含まれ、（１４）および（１５）はフィルテーブルに含まれる。表示リスト・ストアは所定のアドレスを先頭とするメモリ領域に格納される。
【００５６】
画素シーケンシャル・レンダリング装置３００が起動指示を受け付けると、命令実行部３０１は所定のアドレスから表示リストを読み込む。処理開始および描画領域がパイプライン下流の各モジュールに内部コマンドによって通知され、さらに辺処理部３０２には辺テーブルアドレス（１６）が内部コマンドによって通知され、レベル優先度決定部３０３にはレベルテーブルアドレス（１７）が内部コマンドによって通知され、塗りつぶしデータ決定部３０４にはフィルテーブルアドレス（１８）が内部コマンドによって通知される。この時点でパイプラインの各モジュール、即ち辺処理部３０２、レベル優先度決定部３０３、塗りつぶしデータ決定部３０４および色合成部３０５はパイプライン上流に位置するモジュールから所定の内部コマンドが転送されてくるまで待機状態となる。次に命令実行部３０１は辺処理部３０２、レベル優先度決定部３０３、塗りつぶしデータ決定部３０４および色合成部３０５に対して描画開始コマンドを発行する。
【００５７】
辺処理部３０２、レベル優先度決定部３０３、塗りつぶしデータ決定部３０４および色合成部３０５ではｙ＝０からｙ＝３０までは必要であればデフォルト（バックグラウンド色）画素を生成する。この間辺処理部３０２およびレベル優先度決定部３０３ではｙ＝３０からの処理を開始しており、塗りつぶしデータ決定部３０４ではｙ＝０からｙ＝３０の領域の処理として、デフォルト即ちバックグラウンドのレベルに対して走査線方向の全画素にバックグラウンド色を生成し、該バックグラウンド色を有する画素が色合成部３０５を通り（画素間演算処理されずに）最終画素として画素出力部３０６を介して出力される。
【００５８】
辺処理部３０２ではｙ＝３０までスキップし、ｙ＝３０からオブジェクト４１に属する２つの辺が発生することを検出し、辺テーブルに該２つの辺を登録して追跡を開始する。該２つの辺は同一オブジェクトに属するため既にｘオーダーでソートされた状態であり、そのままレベル優先度決定部３０３に内部コマンドで通知される。
【００５９】
レベル優先度決定部３０３は該２つの辺間でレベル１を活性状態にして、レベルテーブルからレベル１の属性を読み込み、内部コマンドを発行して２つの辺のｘ座標とレベル１の属性を塗りつぶしデータ決定部３０４に通知する。
【００６０】
塗りつぶしデータ決定部３０４はレベル１の属性に従ってフィルテーブルを検索し、フィルテーブルの情報とレベル属性に従って該２つの辺間の画素の色を決定し、各画素を色合成部３０５に通知する。また該２つの辺間にない領域に対してはｙ＝０からｙ＝３０までと同様にデフォルト色を生成して色合成部３０５に通知する。
【００６１】
色合成部３０５では複数レベル間の画素の演算処理が必要ないため、塗りつぶしデータ決定部３０４から受信した画素をそのまま最終画素として出力する。
【００６２】
辺処理部３０２はｙ＝７０から楕円のオブジェクトに属する２つの辺の追跡を開始する。ここでは後から加わった２つの辺は三角形オブジェクト４１の辺よりもｘが大きな座標に位置しているため、辺のソートを行う必要はない。また２つのオブジェクト４１と４２は重なっていないため、レベル優先度決定部３０３、塗りつぶしデータ決定部３０４および色合成部３０５はｙ＝３０からｙ＝６９までとほぼ同様に動作する。
【００６３】
三角形オブジェクト４１の辺と楕円オブジェクト４２の辺が交差したあとの走査線では辺情報のソートが必要となる。またオブジェクトが重なりを持つため、同一画素に対して複数のレベルが活性状態になり、画素を決定するための演算が行われるようになる。この様子をｙ＝８５の走査線に対する処理を例に挙げて説明する。
【００６４】
辺処理部３０２は辺を追跡していく過程で、辺の交差を監視しており、一度交差するとそれ以降は交差した後の順序に従って追跡を続けるものとする。従ってｙ＝８５では既に三角形オブジェクト４１の辺と楕円オブジェクト４２の辺は交差しており、辺のｘ座標はｘ０、ｘ１、ｘ２およびｘ３の順に更新され、レベル優先度決定部３０３に通知される。
【００６５】
レベル優先度決定部３０３は楕円オブジェクト４２の透過率が０でなければ、ｘ０からｘ１ではレベル１のみを活性状態にし、ｘ１からｘ２ではレベル１とレベル２を活性状態にし、ｘ２からｘ３ではレベル２のみを活性状態にする。また、楕円オブジェクト４２の透過率が０であれば、ｘ０からｘ１ではレベル１のみを活性状態にし、ｘ１からｘ３ではレベル２のみを活性状態にする。以降は楕円オブジェクト４２の透過率が０でない場合について説明を続ける。活性状態となっているレベルと両端の辺情報は塗りつぶしデータ決定部３０４に通知される。
【００６６】
塗りつぶしデータ決定部３０４はｘ＝０からｘ＝ｘ０まではデフォルトレベルのデフォルト色を生成し、ｘ０からｘ１まではレベル１の属性に従ってレベル１の画素の色を生成し、ｘ１からｘ２まではレベル１の属性に従ってレベル１の画素の色を生成すると共に、レベル２の属性に従ってレベル２の画素の色を生成し、ｘ２からｘ３まではレベル２の属性に従ってレベル２の画素の色を生成し、ｘ３から描画サイズの右端までの画素に対してはデフォルトレベルのデフォルト色を生成し、画素オーダーで色合成部３０５に転送する。
【００６７】
色合成部３０５はｘ＝０からｘ１の間は塗りつぶしデータ決定部３０４より受け取った画素色をそのまま出力し、ｘ１からｘ２に対してはレベル１の色に対してレベル２の色をレベルテーブルに記された所定のオペレーションを適用して重ねあわせることにより最終的な画素の色を出力し、ｘ２から描画サイズ右端までの画素に対しては再び塗りつぶしデータ決定部３０４より受け取った画素色をそのまま出力する。ただし、以上の処理においてデフォルト色に対しては何もしない場合もあり得る。
【００６８】
以上のような処理がパイプライン的に実行される。即ち、命令実行部３０１、辺処理部３０２、レベル優先度決定部３０３、塗りつぶしデータ決定部３０４および色合成部３０５の各モジュールは、自分の処理が終了すると次の処理を実行するモジュールに内部コマンドを発行して処理を依頼し、次の処理が可能になると前の処理を実行するモジュールからの内部コマンドを受け付ける状態になる。内部で処理を実行しているか、バッファがフルとなり新たな処理を受け付けられない場合は、前の処理を実行するモジュールとのパスを通じてビジー状態を通知し、処理を受け付けないことを通知する。ビジー状態を通知されたモジュールは内部コマンドを後の処理を実行するモジュールに転送することはできず、ストールが発生する。
【００６９】
以上の説明では、図３に示す基本構成のハードウェアが対応している機能のみが要求される画像を処理する場合について述べてきた。例えば、辺処理部３０２がＯｐｅｎＰａｇｅにのみ対応しているとすれば、ＯｐｅｎＰａｇｅの描画情報に基づいて生成された表示リスト・ストアが処理されていた。ここで、例えばＰｏｓｔＳｃｒｉｐｔの描画情報に基いて生成された表示リスト・ストアが指定された場合には、ハードウェア即ち辺処理部３０２では正しく処理することができないため、互換性保証部３０７に内部コマンドが転送される。互換性保証部３０７はシステムバスを介して接続されている図示されていないシステムメモリに格納されているハードウェアが対応していない内部コマンドの処理ルーチンのセットから適切なルーチンを読み出して該内部コマンドに対する処理を実行し、実行結果をシステムメモリか内部コマンド転送元のモジュールに転送し、処理の終了を内部コマンド転送元モジュールに通知する。内部コマンド転送元のモジュールは該処理の終了の通知を受けると、あたかも自分が処理したように後の処理を実行するモジュールに対して内部コマンドを発行して処理を継続させる。以上のように必ずしもハードウェアが全ての描画機能をサポートしていなくても、任意の表示リスト・ストアを処理することが可能となっている。
【００７０】
ここで、図５に示すように、同一走査線を始点として描かれた複数のオブジェクト５１〜５５が描かれており、かつ各オブジェクトのフィルがＪＰＥＧ画像で行われる場合、該走査線（図５において点線で示される）の処理において、各オブジェクトの画素毎のフィル情報を決定するために伸張処理が行われなければならない。しかしながらＪＰＥＧ伸張処理はハードウェアを用いても数クロックサイクルで処理することは難しいため、図５のような画像を扱う場合には、塗りつぶしデータ決定部３０４の入力がビジーとなりパイプラインがストールする可能性が高い。５１〜５５の全画像に対する伸張を同一ハードウェアで逐次実行するよりも、例えば５５の伸張処理だけはソフトウェアで並列に実行した方が高速に処理できる場合もある。このような判断は画素シーケンシャル・レンダリング装置のハードウェア構成情報と入力画像データとからある程度解析または推測可能である。
【００７１】
このときの機能の流れを図６に示す。さらにプリスキャンの流れの詳細を図７に示し、命令実行部３０１の処理の流れを図８に示し、画像伸張部３１０の処理の流れを図９に示し、表示リスト、コマンド、メモリ間の参照関係を図１０に示す。また、表示リストの命令ストリームの各命令および画素シーケンシャル・レンダリング装置の内部コマンドには少なくとも１−ｂｉｔのフラグフィールドが予約され、かつフラグは立っていない状態に初期化されるよう拡張されているものとする。
【００７２】
ハードウェアとソフトウェアによる並列実行に対応するために、コンピュータシステム１０はさらに、表示リストをプリスキャンし同一走査線上で開始され、かつ伸張処理を要するオブジェクトを抽出し、該オブジェクトのフィル情報の伸張命令に対してソフトウェアで伸張することを指示するフラグを付加する手段と（図６の６１および図７）、命令実行部３０１においては、該フラグが付加された伸張命令を読み取った場合に同等の意味のフラグを付加した画像伸張のための内部コマンドをパイプラインモジュールに出力する手段と（図８）、画像伸張部３１０においては、該フラグが付加された画像伸張コマンドを互換性保証部３０７に転送する手段および該画像伸張コマンドに対する応答を互換性保証部３０７から受け取る手段と（図９）、互換性保証部３０７においては、該画像伸張コマンドを処理し応答を画像伸張部３１０に発行する手段とをさらに有する。
【００７３】
表示リストにソフトウェア処理フラグを付加する手順を図７を用いて説明する。先ず画素シーケンシャル・レンダリング装置３００のハードウェア構成を記したファイルをシステムＲＡＭ１２またはシステムＲＯＭ１３からバス１５を介して読み込み（７１）、表示リスト２３をシステムＲＡＭ１２またはローカルメモリから読み込み（７２）、オブジェクトの数や位置関係を抽出し（７３）、７１および７３をもとに負荷が集中しそうな機能を推定し（７４）、負荷が集中する機能が発生する場合（７５）対象となるオブジェクトとその処理を特定する命令ストリーム中の命令を決定して（７６）、ソフトウェア処理フラグを付加し（７７）、付加が集中する機能が発生しない場合（７５）そのまま終了する。
【００７４】
このときの表示リスト２３、内部コマンドおよびシステムＲＡＭ１２の参照関係を図１０に示す。表示リスト２３には命令ストリーム１０１と辺情報１０２と塗りつぶし情報１０３とを有しているものとする。命令ストリーム中の各命令は処理種別と、処理種別によって辺レコードであるか塗りつぶしレコードであるところの処理対象と、処理のためのパラメータと、ソフトウェア処理フラグとを有する。辺情報は複数のレコードでひとつのグラフィック・オブジェクトを表現するセグメントレコードから構成され、各セグメントレコードは辺情報を生成するために必要な開始（ｘ，ｙ）座標と終端ｙ座標とセグメントの傾きｄｘと、そのセグメントが属するレベルと、終端座標から連続しかつ同一グラフィック・オブジェクトを表現するセグメントへのポインタと、その他の色、座標を決定するためのアルゴリズムで使用するパラメータとを含む。塗りつぶし情報の各レコードは塗りつぶしタイプと、同一色による塗りつぶしの場合はその色情報と、ビットマップの場合前記ビットマップが格納されているアドレスと、圧縮された画像の場合前記圧縮画像が格納されているアドレスと、伸張後のデータを格納するためのバッファのアドレスと、伸張パラメータなどのプロパティから構成される。例えば図１０におけるシステムＲＡＭ１２にマッピングされた圧縮画像で塗りつぶしを行う場合には、表示リスト２３には塗りつぶし情報のレコードとして前記圧縮画像が格納されたアドレスをソースとして与えられており、かつ伸張データ格納アドレスを与えられた塗りつぶしレコードと、前記塗りつぶしレコードと関連付けられたセグメントレコードと、前記塗りつぶしレコードを処理対象とする伸張命令と塗りつぶし命令とが含まれる。これらのデータを元に前記圧縮画像が格納されているアドレスをソースアドレスとして与えられ、前記伸張データを格納するためのバッファの先頭アドレスをデスティネーションアドレスとして与えられた伸張コマンドと、前記伸張データを格納するためのバッファの先頭アドレスをソースアドレスとして与えられた塗りぶつしコマンドを生成することにより、処理対象となるグラフィック・オブジェクトを所望の色で塗りつぶすことが可能となる。伸張命令にソフトウェア処理フラグが設定されている場合には、伸張コマンドのソフトウェア処理フラグ・フィールドにフラグが設定され、前記伸張処理は互換性保証部１０７に転送され処理される。
【００７５】
命令実行部３０１における処理のソフトウェア処理フラグに関わる動作の流れを図８を用いて説明する。まず、表示リスト２３から命令ストリームを読み込み（８１）、読み込んだ命令にソフトウェア処理フラグがついていれば（８２）ソフトウェア処理フラグ付コマンドを生成し（８３）、読み込んだ命令にソフトウェア処理フラグがついていなければ（８２）通常コマンドを生成する（８４）。
【００７６】
画像伸張部３１０における処理のソフトウェア処理フラグに関わる動作の流れを図９を用いて説明する。ただし受信したコマンドの内容が画像伸張部３１０がサポートする機能で実現可能なものである場合について述べる。まず画素データ決定部３０４からコマンドを受信し（９１）、通常コマンドであれば（９２）自身で処理を行い（９３）、ソフトウェア処理フラグ付コマンドであれば（９２）互換性保証部３０７に該コマンドを転送し（９４）、互換性保証部からの応答コマンドを受信し（９５）、最後に画素データ決定部３０４に応答コマンドを返す（９６）。
【００７７】
以上のような機能を追加することにより、該フラグなしの画像伸張コマンドは塗りぶつしデータ決定部３０４から画像伸張部３１０に転送されハードウェア処理されると共に、該フラグ付の画像伸張コマンドはさらに互換性保証部３０７に転送されソフトウェア処理される。該フラグが適当に付加されることにより画像伸張処理がハードウェアとソフトウェアとで並列に実行され、全体の処理時間が短縮される。
【００７８】
さらに、プリスキャンにおいて、ソフトウェア処理をするようにスケジュールした命令に関しては、ハードウェアによる処理に比べて時間を要することを考慮し、可能な限り早期にコマンドが発行されるように命令の順序を入れ替えることによって、性能を向上させることが可能な場合もあり得る。
【００７９】
表示リストに対しソフトウェアによる画像伸張を指示するフラグを付加する手段は、表示リスト生成時に同時に実行することも可能であるが、実質的にはオブジェクトの数および相互の位置関係を抽出可能なレベルにまで処理しなければならないため、このような場合もプリスキャンに含むものとする。
【００８０】
画像伸張は他のパイプライン処理と非同期に、ページ描画処理の開始と共に開始してもよい。この場合ＪＰＥＧ画像のオブジェクトが同一走査線で開始されるものでなくてもソフトウェアによる伸張を混在させることも有り得る。
【図面の簡単な説明】
【００８１】
【図１】レンダリング・システムの構成図
【図２】レンダリング・システムにおける機能の流れ
【図３】画素シーケンシャル・レンダリング装置の構成図
【図４】描画オブジェクトの例
【図５】描画オブジェクトの例
【図６】レンダリング・システムにおける機能の流れ
【図７】ソフトウェア処理フラグ生成の流れ
【図８】ソフトウェア処理フラグ付コマンド生成の流れ
【図９】ソフトウェア処理フラグ付コマンドによる制御の流れ
【図１０】表示リストと内部コマンドとシステムＲＡＭの参照関係
【符号の説明】
【００８２】
10  レンダリング・システム
11  ＣＰＵ
12  ＲＡＭ
13  ＲＯＭ
14  画像出力装置
15  バス
16  画素シーケンシャル・レンダリング装置
21  オブジェクト・グラフィック記述
22  表示リスト生成
23  表示リスト・ストア
24  −
25  画素出力
300  画素シーケンシャル・レンダリング装置
301  命令実行部
302  辺処理部
303  優先度決定部
304  画素データ決定部
305  色合成部
306  画素出力部
307  互換性保証部
308  バスアクセス調停部
309  −
310  画像伸張部
311  ＰｏｓｔＳｃｒｉｐｔ対応辺処理拡張部
312  ＧＤＩ対応辺処理拡張部
313  ＪＢＩＧ対応画像伸張拡張部
41  描画オブジェクト
42  描画オブジェクト
51  ＪＰＥＧ描画オブジェクト
52  ＪＰＥＧ描画オブジェクト
53  ＪＰＥＧ描画オブジェクト
54  ＪＰＥＧ描画オブジェクト
55  ＪＰＥＧ描画オブジェクト
61  プリスキャン
71  ハードウェア構成読込みステップ
72  表示リスト・ストア読込みステップ
73  オブジェクト情報解析ステップ
74  高負荷機能推定ステップ
75  高負荷機能有無判定ステップ
76  高負荷機能・オブジェクト決定ステップ
77  ソフトウェア処理フラグ付加ステップ
81  命令読込みステップ
82  ソフトウェア処理フラグ判定ステップ
83  ソフトウェア処理フラグ付コマンド生成ステップ
84  通常コマンド生成ステップ
91  コマンド受信ステップ
92  ソフトウェア処理フラグ判定ステップ
93  画像伸張処理ステップ
94  互換性保証部へのコマンド転送ステップ
95  補完性保証部からの応答コマンド受信ステップ
96  画像伸張コマンドに対する応答コマンド発行ステップ
101  命令ストリーム
102  辺情報
103  塗りつぶし情報
104  伸張コマンド
105  塗りつぶしコマンド
【図１】
2006031160.tif 000003
【図２】
2006031160.tif 000004
【図３】
2006031160.tif 000005
【図４】
2006031160.tif 000006
【図５】
2006031160.tif 000007
【図６】
2006031160.tif 000008
【図７】
2006031160.tif 000009
【図８】
2006031160.tif 000010
【図９】
2006031160.tif 000011
【図１０】
2006031160.tif 000012