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