(57)【要約】【課題】フレームバッファＦＢ１〜ＦＢ４がメモリ９上の任意の位置に分散されている場合でも効率よく表示することが可能になるビデオ出力コントローラ及びビデオカード１を提供する。【解決手段】ビデオ出力バッファ５と、ＤＭＡコントローラ６と、ディスプレイコントローラ７とを有するビデオ出力コントローラであって、ディスプレイコントローラは、ＤＭＡコマンドリスト中のどのＤＭＡコマンドを発行するかを決定するＤＭＡコマンドリスト処理部と、初期化のきっかけとなる初期化信号を受け取る初期化信号ポートと、ＤＭＡコマンドの発行のきっかけとなるステップ信号を受け取るステップ信号ポートと、初期化信号及びステップ信号を元にＤＭＡコマンドの発行のタイミング信号をＤＭＡコマンドリスト処理部に通知する外部信号処理部とを有する。【選択図】図１
2005092742.tif 000002
【特許請求の範囲】
【請求項１】
ＤＭＡコマンドリストを保持する第１の記憶装置と、フレームバッファを保持する第２の記憶装置と、ビデオ出力バッファと、ＤＭＡコントローラと、ディスプレイコントローラとを有し、
前記ディスプレイコントローラは、どのＤＭＡコマンドを発行するかを決定するＤＭＡコマンドリスト処理部と、初期化のきっかけとなる初期化信号を受け取る初期化信号ポートと、前記ＤＭＡコマンドの発行のきっかけとなるステップ信号を受け取るステップ信号ポートと、前記初期化信号及び前記ステップ信号を元にＤＭＡコマンドの発行のタイミング信号を前記ＤＭＡコマンドリスト処理部に通知する外部信号処理部とを有することを特徴とするビデオ出力コントローラ。
【請求項２】
前記初期化信号ポートが前記初期化信号を受け取った時に前記ＤＭＡコマンドリスト処理部は初期化され、前記ステップ信号ポートが前記ステップ信号を受け取った時に、前記ディスプレイコントローラは前記ＤＭＡコマンドを前記ＤＭＡコントローラへ転送し、前記ＤＭＡコントローラは前記ＤＭＡコマンドに従って前記第２の記憶装置から前記ビデオ出力バッファに前記フレームバッファを転送することを特徴とする請求項１記載のビデオ出力コントローラ。
【請求項３】
前記ＤＭＡコマンドリスト処理部は、前記ＤＭＡコマンドリストの先頭位置を保持するリストヘッダと、次に発行する前記ＤＭＡコマンドの位置を保持するリストポインタとを有し、
前記ＤＭＡコマンドリスト処理部は、前記初期化信号ポートが前記初期化信号を受け取った場合、前記リストヘッダが保持する前記先頭位置を前記リストポインタへ複写し、前記ステップ信号ポートが前記ステップ信号を受け取った場合、前記リストポインタが示す前記ＤＭＡコマンドを発行し、予め決められた規則に従って前記リストポインタを更新し、
前記ＤＭＡコマンドリストは複数のレベルからなる階層構造を有し、前記リストポインタは第１のレベルのノードを示し、前記ＤＭＡコマンドが発行されるときは、前記ノードの下のレベルのノードからたどれる複数の前記ＤＭＡコマンドが起動されることを特徴とする請求項１又は２記載のビデオ出力コントローラ。
【請求項４】
第２のレベル以下の前記ＤＭＡコマンドが起動される順番は予め決まっており、
前記ＤＭＡコマンドリストは、ブロックフラグを有し、他のハードウェアユニットの起動を指定し、
前記ディスプレイコントローラは、前記ハードウェアユニットが発生する第３の信号を受け取るポートを具備し、前記第３の信号を検出するまで前記ブロックフラグが立っている前記ＤＭＡコマンドを停止し、前記第３の信号を検出した場合、前記ブロックフラグで止められていた前記ＤＭＡコマンドを実行することを特徴とする請求項３記載のビデオ出力コントローラ。
【請求項５】
フレームバッファを描画する複数の画像処理装置と、
ＤＭＡコマンドリストを保持する第１の記憶装置と、
前記フレームバッファを保持する第２の記憶装置と、
ビデオ出力バッファと、
ＤＭＡコントローラと、
ディスプレイコントローラとを有し、
前記ディスプレイコントローラは、どのＤＭＡコマンドを発行するかを決定するＤＭＡコマンドリスト処理部と、初期化のきっかけとなる初期化信号を受け取る初期化信号ポートと、前記ＤＭＡコマンドの発行のきっかけとなるステップ信号を受け取るステップ信号ポートと、前記初期化信号及び前記ステップ信号を元にＤＭＡコマンドの発行のタイミング信号を前記ＤＭＡコマンドリスト処理部に通知する外部信号処理部とを有することを特徴とするビデオカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ出力コントローラ及びビデオカードに係り、特に、グラフィックスプロセッサのプログラマブルなビデオ出力コントローラに係る。
【背景技術】
【０００２】
従来から、複数の転送元のアドレスが格納されたメモリと、このメモリに格納された転送元のアドレスのうち先頭のアドレスが設定された転送元アドレス設定レジスタとを有するＤＭＡ（ダイレクトメモリアクセス）回路が知られている（例えば、特許文献１参照。）。
【０００３】
また、ＣＰＵからの指示に基いてＤＭＡ転送すべき複数ライン分の各データブロック毎の先頭アドレスを格納する転送アドレス格納手段と、複数の転送データライン数を格納する転送データライン数格納手段とを有するＤＭＡ転送装置が知られている（例えば、特許文献２参照。）。
【０００４】
更に、初期のメモリロケーションと初期のメモリロケーションを基準とした複数のパラメータロケーション（ソースアドレス、デスティネーションアドレスなど）のための少なくとも１つのポインタを備えるパラメータブロック構造を有するインテリジェントＭＤＡコントローラ（ＩＤＭＡＣ）が知られている（例えば、特許文献３参照。）。
【特許文献１】特開２００１−８４２１７号公報
【特許文献２】特開２００２−１３２７０６号公報
【特許文献３】米国特許第６２０２１０６Ｂ１号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、これらのＤＭＡ装置はハードウエアで構成されていたため、表示画像の解像度は、予め決められた複数の解像度の中から選ぶことしかできなかった。また、通常、フレームバッファはメモリ上の連続した領域に確保されている。したがって、例えば、分散共有メモリ型計算機システムで協調レンダリングを行う際に、一度それら（フレームバッファ）を集めて１フレームを構成して表示するという段階をふんでいた。
【０００６】
本発明はこのような関連技術の問題点を解決するために成されたものであり、その目的は、フレームバッファがメモリ上の任意の位置に分散されている場合でも効率よく表示することが可能になるビデオ出力コントローラ及びビデオカードを提供することである。
【課題を解決するための手段】
【０００７】
本発明の第１の特徴は、ＤＭＡコマンドリストを保持する第１の記憶装置と、フレームバッファを保持する第２の記憶装置と、ビデオ出力バッファと、ＤＭＡコントローラと、ディスプレイコントローラとを有するビデオ出力コントローラであって、ディスプレイコントローラは、どのＤＭＡコマンドを発行するかを決定するＤＭＡコマンドリスト処理部と、初期化のきっかけとなる初期化信号を受け取る初期化信号ポートと、ＤＭＡコマンドの発行のきっかけとなるステップ信号を受け取るステップ信号ポートと、初期化信号及びステップ信号を元にＤＭＡコマンドの発行のタイミング信号をＤＭＡコマンドリスト処理部に通知する外部信号処理部とを有することを要旨とする。
【０００８】
本発明の第２の特徴は、フレームバッファを描画する複数の画像処理装置と、ＤＭＡコマンドリストを保持する第１の記憶装置と、フレームバッファを保持する第２の記憶装置と、ビデオ出力バッファと、ＤＭＡコントローラと、ディスプレイコントローラとを有するビデオカードであって、ディスプレイコントローラは、どのＤＭＡコマンドを発行するかを決定するＤＭＡコマンドリスト処理部と、初期化のきっかけとなる初期化信号を受け取る初期化信号ポートと、ＤＭＡコマンドの発行のきっかけとなるステップ信号を受け取るステップ信号ポートと、初期化信号及びステップ信号を元にＤＭＡコマンドの発行のタイミング信号をＤＭＡコマンドリスト処理部に通知する外部信号処理部とを有することを要旨とする。
【発明の効果】
【０００９】
本発明によれば、フレームバッファがメモリ上の任意の位置に分散されている場合でも効率よく表示することが可能になるビデオ出力コントローラ及びビデオカードを提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下図面を参照して、本発明の実施の形態を説明する。図面の記載において同一あるいは類似の部分には同一あるいは類似な符号を付している。
【００１１】
（第１の実施の形態）
図１に示すように、本発明の第１の実施の形態に係るビデオカード１は、ＣＰＵ２による外部制御の元、画像を描画して画像データ（以後、「フレームバッファ」という）ＦＢ１〜ＦＢ４を生成する複数の画像処理装置（例えば、レンダリングエンジン）４ａ〜４ｄと、ＤＭＡコマンドリストを格納する第１の記憶装置８と、フレームバッファＦＢ１〜ＦＢ４を格納する第２の記憶装置９と、表示装置３への出力を管理するディスプレイコントローラ７と、ビデオ出力バッファ５と、ＤＭＡコントローラ６とを有する。
【００１２】
図２は、図１に示したビデオカード１のうちビデオ出力コントローラに相当する部分を示す。ビデオ出力コントローラは、ＤＭＡコマンドリスト１６を保持する第１の記憶装置８と、フレームバッファＦＢ１〜ＦＢ４を保持する第２の記憶装置９と、ビデオ出力バッファ５と、ＤＭＡコントローラ６と、ディスプレイコントローラ７とを有する。ＤＭＡコマンドリスト１６には、複数のＤＭＡコマンドＤＣ1〜ＤＣ5が含まれる。ＤＭＡコマンドＤＣ1〜ＤＣ5のそれぞれには、転送元のアドレス（src addr）、転送先のアドレス（dst addr）、及び転送するデータ（フレームバッファ）のサイズ（size）が含まれる。ディスプレイコントローラ７は、どのＤＭＡコマンドＤＣ1〜ＤＣ5を発行するかを決定するＤＭＡコマンドリスト処理部１０と、初期化のきっかけとなる初期化信号ＳIを受け取る初期化信号ポート１３と、ＤＭＡコマンドＤＣ1〜ＤＣ5の発行のきっかけとなるステップ信号ＳSを受け取るステップ信号ポート１４と、初期化信号ＳI及びステップ信号ＳSを元にＤＭＡコマンドＤＣ1〜ＤＣ5の発行のタイミング信号をＤＭＡコマンドリスト処理部１０に通知する外部信号処理部１５とを有する。ＤＭＡコマンドリスト処理部１０は、ＤＭＡコマンドリスト１６の先頭位置を保持するリストヘッダ１１と、次に発行するＤＭＡコマンドＤＣ2の位置を保持するリストポインタ１２とを有する。初期化信号ＳIはいわゆる V-Sync 信号にあたる。またステップ信号ＳSはいわゆるH-Sync信号にあたる。ディスプレイコントローラ７には、初期化信号ＳIとステップ信号ＳSが入力される。
【００１３】
外部信号処理部１５は、初期化信号ＳIとステップ信号ＳSからＤＭＡコマンドリスト処理部１０に対してタイミング信号を生成する。具体的には、外部信号処理部１５は、描画終了のタイミングを検知してＤＭＡコマンドリスト処理部１０に初期化のタイミング信号を通知し、また外部からの信号に応じてＤＭＡコマンドの発行のタイミング信号をＤＭＡコマンドリスト処理部１０に通知する。
【００１４】
ＤＭＡコマンドリスト処理部１０は、第１の記憶装置８に保持された一連のＤＭＡコマンドリスト１６から適切なＤＭＡコマンドＤＣ1〜ＤＣ5を取得してＤＭＡコントローラ６に送る。即ち、ＤＭＡコマンドリスト処理部１０は、外部信号処理部１４からの通知に従って、ＤＭＡコントローラ６に対してＤＭＡコマンドの発行を行う。
【００１５】
ＤＭＡコントローラ６は、ディスプレイコントローラ７から直接ＤＭＡコマンドＤＣ1〜ＤＣ5を受けて、或いはポインタで間接的に受ける場合は第１の記憶装置８からＤＭＡコマンドＤＣ1〜ＤＣ5を読み込んで、ブロック転送を行う。そのために、第１の記憶装置８に置かれる１ステップで起動されるＤＭＡコマンドＤＣ1〜ＤＣ5は複数のＤＭＡコマンドから構成されることがある。
【００１６】
ビデオ出力バッファ５は、ビデオ出力用に一時的に画像データ（フレームバッファ）ＦＢ１〜ＦＢ４を保持し、通常１ライン分のデータが保持される程度の大きさを有する。
【００１７】
第１の記憶装置８は、ディスプレイコントローラ７が直接高速にアクセスできるメモリであっても構わないし、或いは第２の記憶装置９の一部の領域であっても構わない。ＤＭＡコマンドリスト１６の要素（ＤＭＡコマンドＤＣ1〜ＤＣ5）は、ＤＭＡコマンドデータと次のステップ信号ＳSで発行するＤＭＡコマンドデータへのポインタを具備する。リストポインタ１２を更新する際、リストポインタ１２をＤＭＡコマンドデータへのポインタで書き換える。ＤＭＡコマンドリストの要素は総て同一のサイズを有し、起動されるべき順番に並んでいる。リストポインタ１２を更新することは、ＤＭＡコマンドリスト１６の要素のサイズをリストポインタ１２に加算することである。
【００１８】
第２の記憶装置は、インベデッド（embedded）ＤＲＡＭなどの内蔵ＤＲＡＭであることが望ましい。
【００１９】
次に、図３を用いてビデオ出力コントローラの基本的な動作について説明する。
【００２０】
（イ）先ず、Ｓ０１段階で、初期化信号ポート１３は、初期化のきっかけとなる初期化信号ＳI（V-Sync）を受け取る。すると、Ｓ０２段階で、ＤＭＡコマンドリスト処理部１０は初期化される。具体的には、ＤＭＡコマンドリスト処理部１０は、リストヘッダ１１が保持する先頭位置をリストポインタ１２へ複写する。換言すれば、ＤＭＡコマンドリスト処理部１０は、リストヘッダ１１に保持されているＤＭＡコマンドリストの先頭番地をリストポインタ１２にロードする。
【００２１】
（ロ）次に、Ｓ０３段階で、ステップ信号ポート１４は、ＤＭＡコマンドＤＣ1〜ＤＣ5の発行のきっかけとなるステップ信号ＳSを受け取る。すると、Ｓ０４段階で、ディスプレイコントローラ７はＤＭＡコマンドＤＣ1〜ＤＣ5をＤＭＡコントローラ６へ転送し、ＤＭＡコントローラ６はＤＭＡコマンドＤＣ1〜ＤＣ5に従って第２の記憶装置９からビデオ出力バッファ５にフレームバッファＦＢ１〜ＦＢ４を転送する。即ち、ディスプレイコントローラ７は、ＤＭＡコントローラ６にＤＭＡコマンドＤＣ1〜ＤＣ5を送ってブロック転送を行う。ここで実際には、ＤＭＡコントローラ６は１ライン分のデータをビデオ出力バッファ５へ転送する。具体的には、ＤＭＡコマンドリスト処理部１０は、ステップ信号ポート１４がステップ信号ＳSを受け取った場合、リストポインタ１２が示すＤＭＡコマンドＤＣ1〜ＤＣ5を発行し、予め決められた規則に従ってリストポインタ１２を更新する。
【００２２】
（ハ）そして、Ｓ０５段階で、１フレームの描画が終了しているか否かを判断する。１フレームの描画が終了している場合（Ｓ０５段階でＹｅｓ）、Ｓ０１段階に戻り、初期化信号ポート１３は、初期化のきっかけとなる初期化信号ＳI（V-Sync）を待ち受け、新たなフレームの描画を開始する。まだ１フレームの描画が終了していない場合（Ｓ０５段階でＮｏ）、ステップ信号ポート１４は、ＤＭＡコマンドＤＣ1〜ＤＣ5の発行のきっかけとなるステップ信号ＳSを待ち受ける。
【００２３】
このように、画面の転送を指示するＤＭＡコマンドＤＣ1〜ＤＣ5を第１の記憶装置８上にアプリケーションが自由に定義できる。したがって、分散レンダリングによってフレームバッファＦＢ１〜ＦＢ４が図４のように第２の記憶装置９内で分散して自由に配置された場合であっても、一箇所にあつめることなく図１の表示装置３の出力画面２０にビデオ出力できる。
【００２４】
また、フレームバッファＦＢ１〜ＦＢ４を第２の記憶装置９内で分散して自由に配置することができるため、第２の記憶装置９の使用メモリ量を削減することができる。
【００２５】
また、ビデオカード１或いはビデオ出力コントローラは、外部から初期化信号ＳI或いはステップ信号ＳSを受けて動作する為、出力画面２０に表示される画像のたわみを抑えることができる。
【００２６】
以上説明したように、第１の実施の形態によれば、第２の記憶装置９内に分散して配置されたフレームバッファＦＢ１〜ＦＢ４を一箇所に集めることなく出力することが可能になる。したがって、アプリケーションのレンダリング方式の自由度が高くなり、一箇所に集める場合よりも少ないメモリ量で同等の効果が得られる。本来ならハードウエアがすべて行っていたＣＲＴＣ等のビデオ出力コントローラの機能の一部をソフトウエアに置き換えることで、自由に解像度を変更することができる。またフレームバッファがメモリ上に分散して構成された場合にも柔軟に対応できる。
【００２７】
なお、表示装置３の具体例としては、ＣＲＴ表示装置、液晶表示装置、プラズマ表示装置などがある。したがって、図２に示したディスプレイコントローラ７は、これらの表示装置の具体例に対応した制御装置（例えば、ＣＲＴＣ等）に適用できる。
【００２８】
（第１の実施の形態の変形例）
通常、初期化信号（V-Sync）ＳIとステップ信号（H-Sync）ＳSは周期的な信号であり、ステップ信号ＳSが所定の回数だけ入ったところで初期化信号ＳIが入る。第１の実施の形態の変形例では、外部信号処理部１５内にステップ信号ＳSが入った回数を数えるカウンタを設けた場合について説明する。
【００２９】
図５に示すように、第１の実施の形態の変形例に係るビデオ出力コントローラは、ＤＭＡコマンドリスト１６を保持する第１の記憶装置８と、フレームバッファＦＢ１〜ＦＢ４を保持する第２の記憶装置９と、ビデオ出力バッファ５と、ＤＭＡコントローラ６と、ディスプレイコントローラ７とを有する。ＤＭＡコマンドリスト１６には、複数のＤＭＡコマンドＤＣ1〜ＤＣ5が含まれる。ディスプレイコントローラ７は、どのＤＭＡコマンドＤＣ1〜ＤＣ5を発行するかを決定するＤＭＡコマンドリスト処理部１０と、初期化のきっかけとなる初期化信号ＳIを受け取る初期化信号ポート１３と、ＤＭＡコマンドＤＣ1〜ＤＣ5の発行のきっかけとなるステップ信号ＳSを受け取るステップ信号ポート１４と、初期化信号ＳI及びステップ信号ＳSを元にＤＭＡコマンドＤＣ1〜ＤＣ5の発行のタイミング信号をＤＭＡコマンドリスト処理部１０に通知する外部信号処理部１５とを有する。ＤＭＡコマンドリスト処理部１０は、ＤＭＡコマンドリスト１６の先頭位置を保持するリストヘッダ１１と、次に発行するＤＭＡコマンドＤＣ2の位置を保持するリストポインタ１２とを有する。
【００３０】
外部信号処理部１５は、ステップ信号ＳSを受け取った回数を数えるカウンタ２２と、予め与えられた描画終了ステップ回数を記憶する最大値レジスタ２１とを有する。外部信号処理部１５は、ステップ信号ＳSを受け取った回数が最大値レジスタ２１に記憶されている描画終了ステップ回数と等しい場合、ＤＭＡコマンドリスト処理部１０に初期化のタイミング信号を送る。なお、描画終了ステップ回数は、１フレームあたりに受信するステップ信号ＳSの回数の最大値に相当する。
【００３１】
外部信号処理部１５は、予め設定した１フレームあたりのステップ信号ＳSの受信回数が最大値に達したとき、初期化信号ＳIが入るかどうかを調べる。初期化信号ＳIが入らない場合、上位のシステムに割り込みをいれて不整合を通知する。
【００３２】
第１の実施の形態の変形例によれば、１フレームあたりのステップ信号ＳSの受信回数をカウントすることにより、正確に画像を表示することができる。
【００３３】
更に、第１の実施の形態と同様な効果が得られることは言うまでもない。
【００３４】
（第２の実施の形態）
第２の実施の形態では、表示装置３の出力画面２０を縦方向に分割して、各々の領域に対応するフレームバッファを分散して配置させた場合について説明する。
【００３５】
図６に示すように、第２の実施の形態に係るビデオ出力コントローラは、ＤＭＡコマンドリスト１６を保持する第１の記憶装置８と、フレームバッファＦＢ１〜ＦＢ４を保持する第２の記憶装置９と、ビデオ出力バッファ５と、ＤＭＡコントローラ６と、ディスプレイコントローラ７とを有する。ＤＭＡコマンドリスト１６には、複数のＤＭＡコマンド群ＤＣ1〜ＤＣ5が含まれる。ディスプレイコントローラ７は、どのＤＭＡコマンド群ＤＣ1〜ＤＣ5を発行するかを決定するＤＭＡコマンドリスト処理部１０と、初期化のきっかけとなる初期化信号ＳIを受け取る初期化信号ポート１３と、ＤＭＡコマンド群ＤＣ1〜ＤＣ5の発行のきっかけとなるステップ信号ＳSを受け取るステップ信号ポート１４と、初期化信号ＳI及びステップ信号ＳSを元にＤＭＡコマンド群ＤＣ1〜ＤＣ5の発行のタイミング信号をＤＭＡコマンドリスト処理部１０に通知する外部信号処理部１５とを有する。
【００３６】
１つのステップ信号ＳSによって発行されるＤＭＡコマンド群ＤＣ1〜ＤＣ5には、複数のＤＭＡコマンドＣＭＤ１〜ＣＭＤ４がそれぞれ含まれる。即ち、１つのステップ信号ＳSによって、複数のＤＭＡコマンドＣＭＤ１〜ＣＭＤ４が発行される。ＤＭＡコマンド群ＤＣ1〜ＤＣ5の詳細な構成は、図９を参照して説明する。
【００３７】
ＤＭＡコマンドリスト処理部１０は、ＤＭＡコマンドリスト１６の先頭位置を保持するリストヘッダ１１と、次に発行するＤＭＡコマンド群ＤＣ2の位置を保持するリストポインタ１２と、ステップ信号ＳSで起動するＤＭＡコマンドＣＭＤ１〜ＣＭＤ４をたどるコマンドポインタ２３とを有する。ステップ信号ＳSを受信することにより、リストポイン１２は起動すべきＤＭＡコマンド群ＤＣ1〜ＤＣ5を切り替える。コマンドポインタ２３は、１つのステップ信号ＳSで起動すべきＤＭＡコマンドＣＭＤ１〜ＣＭＤ４を切り替える。
【００３８】
次に、図７を用いて図６に示したビデオ出力コントローラの基本的な動作について説明する。
【００３９】
（イ）先ずＳ１１段階で、初期化信号ポート１３は、初期化のきっかけとなる初期化信号ＳIを受け取る。すると、Ｓ１２段階で、ＤＭＡコマンドリスト処理部１０は初期化される。具体的には、ＤＭＡコマンドリスト処理部１０は、リストヘッダ１１が保持する先頭位置をリストポインタ１２へ複写する。
【００４０】
（ロ）次に、Ｓ１３段階で、ステップ信号ポート１４は、ＤＭＡコマンド群ＤＣ1〜ＤＣ5の発行のきっかけとなるステップ信号ＳSを受け取る。すると、Ｓ１４段階で、ディスプレイコントローラ７はＤＭＡコマンド群ＤＣ1〜ＤＣ5をＤＭＡコントローラ６へ転送し、ＤＭＡコントローラ６はＤＭＡコマンド群ＤＣ1〜ＤＣ5に従って第２の記憶装置９からビデオ出力バッファ５にフレームバッファＦＢ１〜ＦＢ４を転送する。即ち、ディスプレイコントローラ７は、ＤＭＡコントローラ６へＤＭＡコマンド群ＤＣ1〜ＤＣ5を送ってブロック転送を行う。ここで実際には、ＤＭＡコントローラ６は１ライン分のデータをビデオ出力バッファ５へ転送する。具体的には、ＤＭＡコマンドリスト処理部１０は、ステップ信号ポート１４がステップ信号ＳSを受け取った場合、リストポインタ１２が示すＤＭＡコマンド群ＤＣ1〜ＤＣ5に含まれる複数のＤＭＡコマンドＣＭＤ１〜ＣＭＤ４を発行し、予め決められた規則に従ってリストポインタ１２を更新する。なお、１つのステップ信号ＳSにより発行される複数のＤＭＡコマンドＣＭＤ１〜ＣＭＤ４は、同時にあるいは順番にＤＭＡコントローラに転送される。第２の実施の形態においては、特に転送されるＤＭＡコマンドＣＭＤ１〜ＣＭＤ４の順番については規定しない。また起動される順番も規定しない。ＤＭＡコマンドＣＭＤ１〜ＣＭＤ４は並列に起動されて処理されてもよいし、ＤＭＡコマンドＣＭＤ１〜ＣＭＤ４が送られた順番に起動されてもよい。
【００４１】
（ハ）そして、Ｓ１５段階で、１フレームの描画が終了しているか否かを判断する。１フレームの描画が終了している場合（Ｓ１５段階でＹｅｓ）、Ｓ１１段階に戻り、初期化信号ポート１３は、初期化のきっかけとなる初期化信号ＳI（V-Sync）を待ち受け、新たなフレームの描画を開始する。まだ１フレームの描画が終了していない場合（Ｓ１５段階でＮｏ）、Ｓ１３段階に戻り、ステップ信号ポート１４は、ＤＭＡコマンドＤＣ1〜ＤＣ5の発行のきっかけとなるステップ信号ＳSを待ち受ける。
【００４２】
図８に示すように、表示装置３の出力画面２０を縦方向に分割して、各々の領域に対応するフレームバッファＦＢ１〜ＦＢ４を第２の記憶装置９内に分散して配置させた場合であっても、フレームバッファＦＢ１〜ＦＢ４を一箇所にあつめることなく出力画面２０にビデオ出力できる。
【００４３】
また、フレームバッファＦＢ１〜ＦＢ４を第２の記憶装置９内で分散して自由に配置することができるため、第２の記憶装置９の使用メモリ量を削減することができる。
【００４４】
また、ビデオカード１或いはビデオ出力コントローラは、外部から初期化信号ＳI或いはステップ信号ＳSを受けて動作する為、出力画面２０に表示される画像のたわみを抑えることができる。
【００４５】
以上説明したように、第２の実施の形態によれば、第２の記憶装置９内に分散して配置されたフレームバッファＦＢ１〜ＦＢ４を一箇所に集めることなく出力することが可能になる。したがって、アプリケーションのレンダリング方式の自由度が高くなり、一箇所に集める場合よりも少ないメモリ量で同等の効果が得られる。本来ならハードウエアがすべて行っていたビデオ出力コントローラの機能の一部をソフトウエアに置き換えることで、自由に解像度を変更することができる。またフレームバッファがメモリ上に分散して構成された場合にも柔軟に対応できる。
【００４６】
なお、表示装置３の具体例としては、ＣＲＴ表示装置、液晶表示装置、プラズマ表示装置などがある。したがって、図６に示したディスプレイコントローラ７は、これらの表示装置の具体例に対応した制御装置（例えば、ＣＲＴＣ等）に適用できる。
【００４７】
図９に示すように、ＤＭＡコマンドリスト１６は複数のレベルからなる階層構造を有する。具体的には、ＤＭＡコマンドリスト１６は、複数のＤＭＡコマンド群ＤＣ1〜ＤＣ5を有する。そして、ＤＭＡコマンド群ＤＣ1〜ＤＣ5のそれぞれは、複数のＤＭＡコマンドＣＭＤ１〜ＣＭＤ４と、ノード２５とを有する。リストポインタ１２は第１のレベルのノード２５を示し、ＤＭＡコマンド群ＤＣ1〜ＤＣ5が発行されるときは、ノード２５の下のレベルのノード２５からたどれる複数のＤＭＡコマンドＣＭＤ１〜ＣＭＤ４が起動される。リストヘッダ１１は、ＤＭＡコマンドリスト１６の先頭位置（ノード）２５を保持する。リストポインタ１２は、次に発行するＤＭＡコマンド群ＤＣ3の位置（ノード）２５を保持する。コマンドポインタ２３は、ステップ信号ＳSで起動するＤＭＡコマンドＣＭＤ１〜ＣＭＤ４をたどる。
【００４８】
（第２の実施の形態の変形例）
第２の実施の形態の変形例では、複数プロセスで生成される画像を一つの画面にウィンドウ表示する方法について説明する。具体的には、図１０（ａ）に示す背景３０に、図１０（ｂ）及び図１０（ｃ）に示す第１及び第２のウィンドウ３１、３２を重ね合わせて、図１０（ｄ）に示すように一つのフレームに表示する場合について説明する。
【００４９】
図９に示したように、第２の実施の形態では各ステップ信号ＳSで起動されるＤＭＡコマンド群ＤＣ1〜ＤＣ5に含まれるＤＭＡコマンドＣＭＤ１〜ＣＭＤ４の数は総て同じであった。しかし、第２の実施の形態の変形例では、ウィンドウが重なる部分だけ起動するＤＭＡコマンドＣＭＤ１〜ＣＭＤ４の数が異なる。即ち、背景３０を書いているプロセスの描画に加え、第１及び第２のウィンドウ３１、３２が重なっている部分（ライン）３３では第１及び第２のウィンドウ３１、３２の分だけ余計にＤＭＡコマンドを転送する必要がある。
【００５０】
図１１に示すように、ＤＭＡコマンド群ＤＣ1、ＤＣ4、ＤＣ5は、背景３０のみを表示すればよいため、ノード２５と、ＤＭＡコマンドＣＭＤ１、ＣＭＤ２とを有する。一方、ＤＭＡコマンド群ＤＣ2、ＤＣ3は、第１及び第２のウィンドウ３１、３２及び背景３０を表示するため、ノード２５と、ＤＭＡコマンドＣＭＤ１〜ＣＭＤ４とを有する。
【００５１】
また、図９に示した第２の実施の形態と異なり、図１１に示した変形例では、ＤＭＡコマンドＣＭＤ１〜ＣＭＤ４の発行順序を遵守する必要がある。即ち、背景３０を転送してから第１及び第２のウィンドウ３１、３２を転送して、画面上に上書きして描画する必要がある。したがって、コマンドポインタ２３は、ＤＭＡコマンドＣＭＤ１〜ＣＭＤ４を順番にたどらなければならない。
【００５２】
（第３の実施の形態）
第３の実施の形態では、画像の拡大縮小表示をする場合について説明をする。
【００５３】
図１２に示すように、本発明の第３の実施の形態に係るビデオ出力コントローラは、ＤＭＡコマンドリスト１６を保持する第１の記憶装置８と、フレームバッファＦＢ１〜ＦＢ４を保持する第２の記憶装置９と、ビデオ出力バッファ５と、ＤＭＡコントローラ６と、ディスプレイコントローラ７と、画像の拡大縮小表示のためのフィルタリングを行うフィルタリングハードウェア４０とを有する。フィルタリングハードウェア４０は、中間データ保持メモリ４１と補間器４２とを有する。ＤＭＡコマンドリスト１６には、複数のＤＭＡコマンドＤＣ1〜ＤＣ5が含まれる。ディスプレイコントローラ７は、ＤＭＡコマンドリスト処理部１０と、初期化信号ポート１３と、ステップ信号ポート１４と、外部信号処理部１５とを有する。ＤＭＡコマンドリスト処理部１０は、リストヘッダ１１と、リストポインタ１２とを有する。
【００５４】
このように、第３の実施の形態に係るビデオ出力コントローラは、図２に示したビデオ出力コントローラに比して、フィルタリングハードウエア４０を新たに付加した点が異なる。
【００５５】
次に、図１３〜図１６を参照して、図１２に示したビデオ出力コントローラを用いて画像を拡大縮小する方法について説明する。
【００５６】
図１３は、縦横方向へ２倍拡大する単純なアルゴリズムを示す。図１３の上段は２倍拡大処理前のピクセル列を示し、図１３の中段は横方向へ２倍拡大処理した後のピクセル列を示し、図１３の下段は更に縦方向に２倍拡大処理した後のピクセル列を示す。ここでは、２倍拡大を例として示してあるが、整数倍なら同様の方式で拡大が可能である。まず 1ラインＣ1,1、Ｃ1,2、Ｃ1,3、・・・をフィルタリングハードウェア４０の中間データ保持メモリ４１に転送し、１ラインの横方向の拡大処理を行う。具体的には、図１３の上段及び中段に示すように、１ラインＣ1,1、Ｃ1,2、Ｃ1,3、・・・分の元のピクセル列の間に中間ピクセルＣ1,j+0.5を配置し、左のピクセルのカラーをコピーして中間ピクセルＣ1,j+0.5のカラーを生成する。横方向への拡大処理が終了した後のラインＣ1,jを２回ビデオ出力バッファ５に転送すれば、図１３の下段に示すような縦方向への拡大処理（Ｃ1,j、Ｃ2,j）ができる。
【００５７】
図１４は、バイリニア補間により縦横方向へ２倍拡大するアルゴリズムを示す。図１３に比べて画像品質の向上が期待できる。図１４の上段は２倍拡大処理前のピクセル列を示し、図１４の中段は横方向へ２倍拡大処理した後のピクセル列を示し、図１４の下段は更に縦方向に２倍拡大処理した後のピクセル列を示す。ここでは、２倍の拡大を例に取り説明するが、その他の倍数であっても構わない。まず、第１ラインＣ1,1、Ｃ1,2、Ｃ1,3、・・・を中間データ保持メモリ４１に転送する。そして、（１）式に従って第１ラインの横方向の拡大処理を行う。具体的には、図１４の上段及び中段に示すように、第１ラインのピクセル列Ｃ1,1、Ｃ1,2、Ｃ1,3、・・・の間に中間ピクセルＣ1,j+0.5を挿入する。ただし、中間ピクセルＣ1,j+0.5の値は、隣り合うピクセルから線形補間して得られる。２倍拡大の場合は単に隣り合う２つのピクセルＣ1,j-1、Ｃ1,j+1の平均をとればよい。次に、第２ラインＣ2,1、Ｃ2,2、Ｃ2,3、・・・を中間データ保持メモリ４１に転送する。そして、（２）式に従って第２ラインの横方向の拡大処理を行う。
【００５８】
Ｃi,j+0.5＝（Ｃi,j+Ｃi,j+1）／２                ・・・（１）
Ｃi+1,j+0.5＝（Ｃi+1,j+Ｃi+1,j+1）／２          ・・・（２）
次に、第１ラインＣ1,1、Ｃ1,2、Ｃ1,3、・・・と第２ラインＣ2,1、Ｃ2,2、Ｃ2,3、・・・との間で縦方向拡大を行う。具体的には、図１４の下段に示すように、第１ラインＣ1,1、Ｃ1,2、Ｃ1,3、・・・と第２ラインＣ2,1、Ｃ2,2、Ｃ2,3、・・・の上下に対応する各ピクセルの間で線形補間して中間ピクセルＣi+0.5,jを生成する。次に、第１ライン及び新たに生成した第１．５ラインに相当する中間ラインをビデオ出力バッファ５に転送する。そして、元画像の第３ラインを中間データ保持メモリ４１に転送し、同様に横方向に拡大をしてから縦方向に中間ピクセルを生成して縦方向拡大を行う。これを繰り返すことで縦横2倍拡大が可能である。
【００５９】
図１５（ａ）は、横方向へ１／２倍縮小する単純なアルゴリズムを示す。図１５（ａ）の上段は１／２倍縮小処理前のピクセル列を示し、図１５（ａ）の下段は横方向へ１／２倍縮小処理した後のピクセル列を示す。ここでは、１／２倍縮小を例にとり説明するが、（１／整数）倍ならば同様の手法で縮小画像の生成が可能である。具体的には、第１ラインＣ1,1、Ｃ1,2、Ｃ1,3、・・・を中間データ保持メモリ４１に転送し、１つおきにピクセルＣ1,2、Ｃ1,4、・・・を間引いて１／２サイズのラインを形成する。このようにして横方向に縮小する。
【００６０】
図１５（ｂ）は、縦横方向へ１／２倍縮小する単純なアルゴリズムを示す。図１５（ｂ）の左側は縦横方向へ１／２倍縮小処理前のピクセル列を示し、図１５（ｂ）の中央は横方向へ１／２倍縮小処理した後のピクセル列を示し、図１５（ｂ）の右側は更に縦方向に１／２倍縮小処理した後のピクセル列を示す。ここでは、１／２倍縮小を例にとり説明するが、（１／整数）倍ならば同様の手法で縮小画像の生成が可能である。まず、第１ラインを中間データ保持メモリ４１に転送し、１つおきにピクセルを間引いて１／２サイズのラインを形成する。このようにして横方向に縮小する。そして間引いた後のピクセルをビデオ出力バッファ５に転送する。この横方向縮小処理を1ラインおきに行いビデオ出力バッファ５に転送する。このようにして、縦方向への縮小処理が可能になる。
【００６１】
図１６は、バイリニア補間により縦横方向へ１／２倍縮小するアルゴリズムを示す。図１６の上段は縦横方向へ１／２倍縮小処理前のピクセル列を示し、図１６の下段は縦横方向へ１／２倍縮小処理した後のピクセル列を示す。まずは２つのラインを中間データ保持バッファ４１に転送し、縦横２×２ピクセル、計４ピクセルの平均値を取って新しい１つのピクセルを生成する。これで縦横１／２倍の縮小処理となる。次に出来上がった１ラインをビデオ出力バッファ５に転送すれば画像の縮小が可能である。
【００６２】
なお、図１２に示すビデオ出力コントローラには、転送の同期機構が必要になる。すなわち、先ず、フィルタリングハードウェア４０へデータを転送する。その後、フィルタリングハードウェア４０での処理が開始される。それから、フィルタリングハードウェア４０からビデオ出力バッファ５へデータが転送される。この順番で処理が行われる必要がある。したがって、ディスプレイコントローラ７には、ＤＭＡ転送ばかりでなくフィルタリングハードウェア４０の起動も行っている。すなわちＤＭＡコマンドリスト１６には、データ転送とＨＷユニット起動の２つの記述が可能になっている。
【００６３】
また、図１７に示すように、ＤＭＡコマンドリスト１６にはブロックフラグ４３が付加されている。ディスプレイコントローラ７は、ＤＭＡコマンドの終了を検知して次のＤＭＡコマンドを実行することが可能である。転送の順序はディスプレイコントローラ７が管理しているので、フィルタリングハードウェア４０の処理の終了をディスプレイコントローラ７に通知する機構を設けた。また、ディスプレイコントローラ７にはフィルタリングハードウェア４０からの通知を受け取るまで、転送を止めておく機構も設けた。第３の実施の形態では、図１７に示すように、階層化ＤＭＡコマンドリスト１６のリスト要素にブロックフラグ４３を設け、ブロックフラグ４３が１である場合、ディスプレイコントローラ７はフィルタリングハードウェア４０からの信号があるまで、該当するＤＭＡコマンドの起動を停止する。以上により、フィルタリングハードウェア４０へのデータの転送と、フィルタリングハードウェア４０の起動と、処理後のデータの転送とが、一定の順序に従って起動されることが可能になる。
【００６４】
以上説明したように、第３の実施の形態によれば、第２の記憶装置９内に分散して配置されたフレームバッファＦＢ１〜ＦＢ４を一箇所に集めることなく出力することが可能になる。したがって、アプリケーションのレンダリング方式の自由度が高くなり、一箇所に集める場合よりも少ないメモリ量で同等の効果が得られる。本来ならハードウエアがすべて行っていたビデオ出力コントローラの機能の一部をソフトウエアに置き換えることで、自由に解像度を変更することができる。またフレームバッファがメモリ上に分散して構成された場合にも柔軟に対応できる。
【００６５】
上記のように、本発明は、第１乃至第３の実施の形態及びその変形例によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。即ち、本発明はここでは記載していない様々な実施の形態等を包含するということを理解すべきである。したがって、本発明はこの開示から妥当な特許請求の範囲に係る発明特定事項によってのみ限定されるものである。
【図面の簡単な説明】
【００６６】
【図１】本発明の第１の実施の形態に係るビデオカードを示すブロック図である。
【図２】図１に示したビデオカードのうちビデオ出力コントローラに相当する部分を示すブロック図である。
【図３】図２に示したビデオ出力コントローラの基本的な動作を示すフローチャートである。
【図４】図２に示したビデオ出力コントローラにより複数のフレームバッファが出力画面に出力される様子を示す図である。
【図５】第１の実施の形態の変形例に係るビデオ出力コントローラを示すブロック図である。
【図６】第２の実施の形態に係るビデオ出力コントローラを示すブロック図である。
【図７】図６に示したビデオ出力コントローラの基本的な動作を示すフローチャートである。
【図８】図６に示したビデオ出力コントローラにより複数のフレームバッファが出力画面に出力される様子を示す図である。
【図９】図６に示したＤＭＡコマンド群の詳細な構成を示すブロック図である。
【図１０】図１０（ａ）は第２の実施の形態の変形例に係る背景を示し、図１０（ｂ）は第２の実施の形態の変形例に係る第１のウィンドウを示し、図１０（ｃ）は第２の実施の形態の変形例に係る第２のウィンドウを示し、図１０（ｄ）は背景に第１及び第２のウィンドウを重ね合わせた表示画面の一例を示す。
【図１１】第２の実施の形態の変形例に係るＤＭＡコマンド群の詳細な構成を示すブロック図である。
【図１２】第３の実施の形態に係るビデオ出力コントローラを示すブロック図である。
【図１３】縦横方向へ２倍拡大する単純なアルゴリズムを示す。
【図１４】バイリニア補間により縦横方向へ２倍拡大するアルゴリズムを示す。
【図１５】図１５（ａ）は横方向へ１／２倍縮小する単純なアルゴリズムを示し、図１５（ｂ）は縦横方向へ１／２倍縮小する単純なアルゴリズムを示す。
【図１６】バイリニア補間により縦横方向へ１／２倍縮小するアルゴリズムを示す。
【図１７】第３の実施の形態におけるブロックフラグとＤＭＡコマンドの一例を示す。
【符号の説明】
【００６７】
１    ビデオカード
２    ＣＰＵ
３    表示装置
４ａ〜４ｄ    第１乃至第４のレンダリングエンジン
５    ビデオ出力バッファ
６    ＤＭＡコントローラ
７    ディスプレイコントローラ
８    第１の記憶装置
９    第２の記憶装置
１０    ＤＭＡコマンドリスト処理部
１１    リストヘッダ
１２    リストポインタ
１３    初期化信号ポート
１４    ステップ信号ポート
１５    外部信号処理部
２０    出力画面
２１    最大値レジスタ
２２    カウンタ
２３    コマンドポインタ
２５    ノード
４０    フィルタリングハードウェア
４１    中間データ保持メモリ
４２    補間器
４３    ブロックフラグ
ＣＭＤ１〜ＣＭＤ４    ＤＭＡコマンド
ＤＣ1〜ＤＣ5    ＤＭＡコマンド（ＤＭＡコマンド群）
ＦＢ１〜ＦＢ４    画像データ（フレームバッファ）
ＳI    初期化信号
ＳS    ステップ信号
【図１】
2005092742.tif 000003
【図２】
2005092742.tif 000004
【図３】
2005092742.tif 000005
【図４】
2005092742.tif 000006
【図５】
2005092742.tif 000007
【図６】
2005092742.tif 000008
【図７】
2005092742.tif 000009
【図８】
2005092742.tif 000010
【図９】
2005092742.tif 000011
【図１０】
2005092742.tif 000012
【図１１】
2005092742.tif 000013
【図１２】
2005092742.tif 000014
【図１３】
2005092742.tif 000015
【図１４】
2005092742.tif 000016
【図１５】
2005092742.tif 000017
【図１６】
2005092742.tif 000018
【図１７】
2005092742.tif 000019