(57)【特許請求の範囲】
【請求項１】
複雑度が変化するグラフィック・イメージを動的にリサイジングするビデオ・グラフィックス・システムであって、
第１のグラフィックイメージの第１のイメージ解像度を決定する決定手段と、
前記第１のグラフィック・イメージを前記第１のイメージ解像度にドローイングしてドローイングされたイメージを作成するドローイング手段と、
前記ドローイングされたイメージをターゲット解像度に拡大してディスプレイ・イメージを生成する拡大手段とを備え、
前記ドローイング手段と前記決定手段は単一フレームの時間期間内に実行され、前記拡大手段は前記単一フレームの前記時間期間内に実行され、
前記決定手段は第２のグラフィックイメージの計算時間を前記単一フレームの時間期間と比較し、前記第２のグラフィックイメージは前記第１のグラフィックイメージに先行することを特徴とするビデオ・グラフィック・システム。
【請求項２】
請求項１に記載のビデオ・グラフィック・システムにおいて、前記拡大手段はバイリニア・インタポレーションを実行する手段を含むことを特徴とするビデオ・グラフィック・システム。
【請求項３】
請求項１に記載のビデオ・グラフィック・システムにおいて、
前記拡大手段はリニア・インタポレーションを実行する手段を含むことを特徴とするビデオ・グラフィック・システム。
【請求項４】
請求項１に記載のビデオ・グラフィック・システムにおいて、
前記拡大手段はバイキュービック・インタポレーションを実行する手段を含むことを特徴とするビデオ・グラフィック・システム。
【請求項５】
請求項１に記載のビデオ・グラフィック・システムにおいて、
前記拡大手段は前記ドローイング手段および前記決定手段と同時に実行されることを特徴とするビデオ・グラフィック・システム。
【請求項６】
複雑度が変化するグラフィック・イメージを動的にリサイジングするビデオ・グラフィック・システムであって、
第１のグラフィックイメージの第１のイメージ解像度を決定する決定手段と、
前記第１のイメージ解像度で前記第１のグラフィック・イメージをドローイングしてドローイングされたイメージを作成するドローイング手段と、
前記ドローイングされたイメージをターゲット解像度に拡大してディスプレイ・イメージを生成する拡大手段とを備え、
前記ドローイング手段と前記決定手段は、単一フレームの時間期間内に実行され、前記拡大手段は前記単一フレームの前記時間期間内に実行され、
前記決定手段は、前記第１のグラフィック・イメージに先行する第２のグラフィック・イメージをドローイングする計算時間が最高基準点を越えているかどうかをさらに判断し、前記計算時間が前記最高基準点を越えていれば、前記第１のイメージ解像度を前記第２のグラフィック・イメージがドローイングされた第２のイメージ解像度より縮小するように決定し、
前記決定手段は、前記計算時間が最低基準点以下であるかどうかをさらに判断し、前記計算時間が前記最低基準点以下にあり且つ前記第２のイメージ解像度が前記ターゲット解像度と等しくなければ、前記第１のイメージ解像度を前記第２のイメージ解像度より拡大するように決定し、そうでなければ、前記第１のイメージ解像度を前記ターゲット解像度になるように決定する、
ことを特徴とするビデオ・グラフィック・システム。
【請求項７】
請求項１に記載のビデオ・グラフィック・システムにおいて、
前記グラフィック・イメージを２重バッファリングする２重バッファリング手段であって、第１フレーム・バッファが第１フレーム期間に前記ドローイング手段によって作成された前記ドローイングされたイメージを受け入れ、第２フレーム・バッファが第２フレーム期間に前記ドローイング手段によって作成され以前にドローイングされたイメージを含む２重バッファリング手段をさらに含み、前記以前にドローイングされたイメージは前記第１フレーム期間に前記拡大手段によって拡大され、前記第２フレームは前記第１フレームの直前の時間期間であることを特徴とするビデオ・グラフィック・システム。
【請求項８】
請求項７に記載のビデオ・グラフィック・システムにおいて、
前記ドローイング手段と前記拡大手段はスワップ・バッファ信号によって同期がとられることを特徴とするビデオ・グラフィック・システム。
【請求項９】
請求項１に記載のビデオ・グラフィック・システムにおいて、
複数のドローイング手段と、
複数の拡大手段とをさらに含み、
１つの前記ドローイング手段と１つの前記拡大手段はディスプレイ・デバイスのチャネルに対応し、複雑度が変化するグラフィック・イメージを複数のチャネルで独立に動的にリサイジングすることを特徴とするビデオ・グラフィック・システム。
【請求項１０】
コンピュータ・グラフィックス・システムをもつコンピュータ・ベースのシステムにおいて、複雑度が変化するグラフィック・イメージをダイナミックにリサイジングしてターゲット解像度のディスプレイ・イメージを一定フレーム・レートで生成する方法であって、
（ａ）単一フレームの時間期間内に複雑度が変化するグラフィック・イメージを第１のイメージ解像度にドローイングしてドローイングされたイメージを作成するステップと、
（ｂ）前記単一フレームの時間期間内にイメージの複雑度が変化する第２のグラフィック・イメージに対する第２のイメージ解像度を決定するステップであって、当該決定は前記複雑度が変化するグラフィック・イメージをドローイングする計算時間を前記単一フレームの時間期間と比較することによってなされ、前記複雑度が変化するグラフィック・イメージは前記第２のグラフィック・イメージに先行する、ステップと、
（ｃ）前記第１のイメージ解像度が前記ターゲット解像度より小さい場合は前記ドローイングされたイメージをターゲット解像度に拡大してディスプレイ・イメージを作成するステップとを含むことを特徴とする方法。
【請求項１１】
請求項１０に記載の方法において、
前記ステップ（ｃ）は１フレームの時間期間内に実行され、同じく１フレームの時間期間内に実行される前記ステップ（ａ）および（ｂ）と同時に実行されることを特徴とする方法。
【請求項１２】
請求項１０に記載の方法において、
（ｆ）前記ドローイングされたイメージを２重バッファリングするステップであって、第１フレーム・バッファが第１フレームの期間にステップ（ａ）においてドローイングされる前記グラフィック・イメージを受け入れ、第２フレーム・バッファが前記第１フレームの直前の時間期間である第２フレームの期間に作成された、以前にドローイングされたイメージをストアするステップと、
（ｇ）前記イメージ解像度を２重バッファリングするステップであって、バッファ解像度係数レジスタが前記第１フレーム・バッファにドローイングされるグラフィック・イメージに対応する前記イメージ解像度係数をストアし、解像度係数レジスタが前記第２フレーム・バッファ内にストアされた前記ドローイングされたイメージに対応する前記イメージ解像度係数をストアするステップと、
（ｈ）前記ドローイングされたイメージの前記２重バッファリングと前記イメージ解像渡の前記２重バッファリングの同期をとるステップであって、前記第１フレーム・バッファと前記第２フレーム・バッファは前記イメージ解像度係数が前記バッファ解像度係数レジスタから前記解像度係数レジスタに転送されるのと同時にスワップされるステップとをさらに含むことを特徴とする方法。
【請求項１３】
請求項１０に記載の方法において、
（ｄ）単一フレームの時間期間内に、複雑度が変化する前記第２のグラフィック・イメージを前記第２のイメージ解像度にドローイングし、第２のドローイングされたイメージを作成するステップと、
（ｅ）前記第２のイメージ解像度が前記ターゲット解像度より小さい場合は前記第２のドローイングされたイメージを前記ターゲット解像度に拡大し、第２のディスプレイ・イメージを作成するステップとをさらに含むことを特徴とする方法。
【請求項１４】
請求項６に記載のビデオ・グラフィック・システムにおいて、
前記拡大手段は、バイリニア・インタポレーションを実行する手段を含むことを特徴とするビデオ・グラフィック・システム。
【請求項１５】
請求項６に記載のビデオ・グラフィック・システムにおいて、
前記拡大手段は、リニア・インタポレーションを実行する手段を含むことを特徴とするビデオ・グラフィック・システム。
【請求項１６】
請求項６に記載のビデオ・グラフィック・システムにおいて、
前記拡大手段は、バイキュービック・インタポレーションを実行する手段を含むことを特徴とするビデオ・グラフィック・システム。
【請求項１７】
請求項６に記載のビデオ・グラフィック・システムにおいて、
前記拡大手段は前記ドローイング手段および前記決定手段と同時に実行されることを特徴とするビデオ・グラフィック・システム。
【請求項１８】
請求項６に記載のビデオ・グラフィック・システムにおいて、
前記第１のグラフィック・イメージを２重バッファリングする２重バッファリング手段であって、第１フレーム・バッファが第１フレーム期間に前記ドローイング手段によって作成された前記ドローイングされたイメージを受け入れ、第２フレーム・バッファが第２フレーム期間に前記ドローイング手段によって作成され以前にドローイングされたイメージを含む２重バッファリング手段をさらに含み、前記以前にドローイングされたイメージは前記第１フレーム期間に前記拡大手段によって拡大され、前記第２フレームは前記第１フレームの直前の時間期間であることを特徴とするビデオ・グラフィック・システム。
【請求項１９】
請求項１８に記載のビデオ・グラフィック・システムにおいて、
前記ドローイング手段と前記拡大手段はスワップ・バッファ信号によって同期がとられることを特徴とするビデオ・グラフィック・システム。
【請求項２０】
請求項６に記載のビデオ・グラフィック・システムにおいて、
複数のドローイング手段と、
複数の拡大手段とをさらに含み、
１つの前記ドローイング手段と１つの前記拡大手段は、ディスプレイ・デバイスのチャネルに対応して、多重チャネルにわたる複雑度が変化するグラフィック・イメージの独立動的・リサイジングを供給することを特徴とするビデオ・グラフィック・システム。
【請求項２１】
複雑度が変化するグラフィック・イメージを動的にリサイジングするビデオ・グラフィックス・システムであって、
グラフィック・イメージをイメージ解像度にドローイングしてドローイングされたイメージを作成する複数のドローイング手段と、
前記グラフィックイメージの少なくとも１つに対するイメージ解像度を決定する決定手段と、
前記ドローイングされたイメージをターゲット解像度に拡大してディスプレイ・イメージを生成する複数の拡大手段とを備え、
前記複数のドローイング手段の１つと前記決定手段は単一フレームの時間期間内に実行され、前記複数の拡大手段の各々は前記単一フレームの時間期間内に実行され、
１つの前記ドローイング手段と１つの前記拡大手段は、ディスプレイ・デバイスのチャネルに対応して、多重チャネルにわたる複雑度が変化するグラフィック・イメージの独立動的・リサイジングを供給し、
前記決定手段は、前記少なくとも１つのグラフィック・イメージに先行するグラフィック・イメージをドローイングする計算時間を前記単一フレームの時間期間と比較することを特徴とするビデオ・グラフィック・システム。
【請求項２２】
請求項２１に記載のビデオ・グラフィック・システムにおいて、
前記複数の拡大手段の各々は、バイリニア・インタポレーションを含むことを特徴とするビデオ・グラフィック・システム。
【請求項２３】
請求項２１に記載のビデオ・グラフィック・システムにおいて、
前記複数の拡大手段の各々は、リニア・インタポレーションを含むことを特徴とするビデオ・グラフィック・システム。
【請求項２４】
請求項２１に記載のビデオ・グラフィック・システムにおいて、
前記複数の拡大手段の各々は、バイキュービック・インタポレーションを含むことを特徴とするビデオ・グラフィック・システム。
【請求項２５】
請求項２１に記載のビデオ・グラフィック・システムにおいて、
前記拡大手段の少なくとも１つは前記ドローイング手段の少なくとも１つと同時に実行されることを特徴とするビデオ・グラフィック・システム。
【請求項２６】
請求項２１に記載のビデオ・グラフィック・システムにおいて、
前記計算時間が最高基準点を越えているかどうかを判断し、前記計算時間が前記最高基準点を越えていれば、前記少なくとも１つのグラフィック・イメージのイメージ解像度を前記少なくとも１つのグラフィック・イメージに先行するグラフィック・イメージがドローイングされた前記イメージ解像度より縮小するように決定する第１の決定手段と、
前記計算時間が最低基準点以下であるかどうかを判断し、前記計算時間が前記最低基準点以下にあり且つ前記少なくとも１つのグラフィック・イメージに先行するグラフィック・イメージがドローイングされた前記イメージ解像度が前記ターゲット解像度と等しくなければ、前記少なくとも１つのグラフィック・イメージのイメージ解像度を前記少なくとも１つのグラフィック・イメージに先行するグラフィック・イメージがドローイングされた前記イメージ解像度より拡大するように決定し、そうでなければ、前記少なくとも１つのグラフィック・イメージのイメージ解像度を前記ターゲット解像度になるように決定する第２の決定手段とをさらに含むことを特徴とするビデオ・グラフィック・システム。
【請求項２７】
請求項２１に記載のビデオ・グラフィック・システムにおいて、
前記グラフィック・イメージを２重バッファリングする２重バッファリング手段であって、第１フレーム・バッファが第１フレーム期間に前記ドローイング手段の１つによって作成された前記ドローイングされたイメージの１つを受け入れ、第２フレーム・バッファが第２フレーム期間に前記ドローイング手段の１つによって作成され以前にドローイングされたイメージを含む２重バッファリング手段をさらに含み、前記以前にドローイングされたイメージは前記第１フレーム期間に前記拡大手段の１つによって拡大され、前記第２フレームは前記第１フレームの直前の時間期間であることを特徴とするビデオ・グラフィック・システム。
【請求項２８】
請求項２７に記載のビデオ・グラフィック・システムにおいて、
前記ドローイング手段の１つ及び前記拡大手段の１つは、スワップ・バッファ信号によって同期がとられることを特徴とするビデオ・グラフィック・システム。
【請求項２９】
コンピュータ・グラフィックス・システムをもつコンピュータ・ベースのシステムにおいて、複雑度が変化するグラフィック・イメージを動的にリサイジングしてターゲット解像度のディスプレイ・イメージを一定フレーム・レートで生成する方法であって、
（ａ）単一フレームの時間期間内に前記複雑度が変化するグラフィック・イメージを第１のイメージ解像度にドローイングしてドローイングされたイメージを作成するステップと、
（ｂ）前記単一フレームの時間期間内に複雑度が変化する第２のグラフィック・イメージに対する第２のイメージ解像度を決定するステップであって、前記複雑度が変化するグラフィック・イメージは前記第２のグラフィック・イメージに先行する、ステップが、
前記複雑度が変化するグラフィック・イメージをドローイングする計算時間を最高基準点と比較し、前記計算時間が前記最高基準点を越える場合は前記第２のイメージ解像度を前記第１のイメージ解像度より縮小するように決定するステップと、
前記計算時間を最低基準点と比較し、前記計算時間が前記最低基準点以下にあり且つ前記第１のイメージ解像度が前記ターゲット解像度と等しくなければ、前記第２のイメージ解像度を前記第１のイメージ解像度より拡大するように決定し、そうでなければ、前記第２のイメージ解像度を前記ターゲット解像度になるように決定するステップとを含むステップと、
（ｃ）前記第１のイメージ解像度が前記ターゲット解像度より小さい場合は前記ドローイングされたイメージを前記ターゲット解像度に拡大して、前記ディスプレイ・イメージを作成するステップとを含むことを特徴とする方法。
【請求項３０】
請求項２９に記載の方法において、
前記ステップ（ｃ）は１フレームの時間期間内に実行され、前記ステップ（ａ）と（ｂ）は１フレームの時間期間内に同時に実行されることを特徴とする方法。
【請求項３１】
請求項２９に記載の方法において、
（ｄ）前記ドローイングされたイメージを２重バッファリングするステップであって、第１フレーム・バッファが第１フレームの期間にステップ（ａ）においてドローイングされる前記グラフィック・イメージを受け入れ、第２フレーム・バッファが前記第１フレームの直前の時間期間である第２フレームの期間に作成された、以前にドローイングされたイメージをストアするステップと、
（ｅ）前記イメージ解像度を２重バッファリングするステップであって、バッファ解像度係数レジスタが前記第１フレーム・バッファにドローイングされるグラフィック・イメージに対応する前記イメージ解像度係数をストアし、解像度係数レジスタが前記第２フレーム・バッファ内にストアされた前記ドローイングされたイメージに対応する前記イメージ解像度係数をストアするステップと、
（ｆ）前記ドローイングされたイメージの前記２重バッファリングと前記イメージ解像度の前記２重バッファリングの同期をとるステップであって、前記第１フレーム・バッファと前記第２フレーム・バッファは前記イメージ解像度係数が前記バッファ解像度係数レジスタから前記解像度係数レジタスに転送されるのと同時にスワップされるステップとをさらに含むことを特徴とする方法。
【請求項３２】
コンピュータ・グラフィックス・システムをもつコンピュータ・ベースのシステムにおいて、複雑度が変化するグラフィック・イメージを動的にリサイジングしてターゲット解像度のディスプレイ・イメージを一定フレーム・レートで生成する方法であって、
（ａ）前記複雑度が変化するグラフィック・イメージを第１のイメージ解像度にドローイングして、ドローイングされたイメージを作成するステップと、
（ｂ）前記ドローイングされたイメージの後のグラフィックイメージに対する第２のイメージ解像度を決定するステップと、
（ｃ）前記ドローイングされたイメージを前記ターゲット解像度に拡大して、前記ディスプレイ・イメージを作成するステップと、
（ｄ）前記ドローイングされたイメージを２重バッファリングするステップであって、第１フレーム・バッファが第１フレームの期間にステップ（ａ）においてドローイングされる前記グラフィックイメージを受け入れ、第２フレーム・バッファが前記第１フレームの直前の時間期間である第２フレームの期間に作成された、以前にドローイングされたイメージをストアするステップと、
（ｅ）前記イメージ解像度を２重バッファリングするステップであって、バッファ解像度係数レジスタが前記第１フレーム・バッファにドローイングされるグラフィック・イメージに対応する前記イメージ解像度係数をストアし、解像度係数レジスタが前記第２フレーム・バッファ内にストアされた前記ドローイングされたイメージに対応する前記イメージ解像度係数をストアするステップと、
（ｆ）前記ドローイングされたイメージの前記２重バッファリングと前記イメージ解像度の前記２重バッファリングの同期をとるステップであって、前記第１フレーム・バッファと前記第２フレーム・バッファは前記イメージ解像度係数が前記バッファ解像度係数レジスタから前記解像度係数レジタスに転送されるのと同時にスワップされるステップと
をさらに含み、
前記ステップ（ａ）と（ｂ）は１フレームの時間期間内に実行され、
前記ステップ（ｂ）は複雑度が変化する前記グラフィック・イメージをローイングする計算時間と前記単一フレームの時間期間とを比較することを含み、
（ｇ）前記計算時間を最高基準点と比較し、前記計算時間が前記最高基準点を越える場合は前記第２のイメージ解像度を前記第１のイメージ解像度より縮小するように決定するステップと、
（ｈ）前記計算時間を最低基準点と比較し、前記計算時間が前記最低基準点以下にあり且つ前記第１のイメージ解像度が前記ターゲット解像度より小さければ、前記第２のイメージ解像度を前記第１のイメージ解像度より拡大するように決定し、そうでなければ、前記第２のイメージ解像度を前記ターゲット解像度になるように決定するステップと
をさらに含むことを特徴とする方法。
【請求項３３】
請求項３２に記載の方法において、
前記ステップ（ｃ）は１フレームの時間期間内に実行され、前記ステップ（ａ）と（ｂ）は１フレームの時間期間内に同時に実行されることを特徴とする方法。
【発明の詳細な説明】
発明の背景
発明の分野
本発明はコンピュータ・グラフィックに関し、より具体的には、イメージ複雑度が変化するグラフィック・イメージを一定フレーム・レートで生成するコンピュータ・システムに関する。本発明は縮小機能と拡大機能を使用してグラフィック・イメージを一定フレーム・レートで生成し、連続的でスムーズなビジュアル効果を作り出している。
関連技術
コンピュータ・グラフィックを利用する多くのコンピュータ・アプリケーションは、システムがこれらのグラフィック・イメージを一定フレーム・レートで生成することを要求している。そのようなアプリケーションとしては、ユーザが対話型グラフィック環境で操作するビジュアル・シミュレーションやバーチャル・リアリティ（仮想現実）がある。具体的な環境としては、パイロットやドライバのトレーニング、医療と外科予見、医療診断と分析、コンピュータ支援設計、ユーザがデータをウォークスルー(walk-through)または操作する必要のある他のアプリケーションがある。これらのアプリケーションでは、グラフィック・イメージはシステムの最も重要な機能になっている。ユーザにとっては、頭や視野を動かした時イメージがスムーズな動きをして連続していることが必要である。
連続的グラフィック・イメージが保証されるのは、コンピュータがこれらのイメージを一定フレーム・レートで生成するときである。システムは１ビデオ・フレームまたはフィールドの時間制限内に各イメージを処理し、生成しなければならない。システムが１フレームの時間制限を越えてイメージの処理を延長するとビジュアル効果が影響を受け、可変フレーム・レートが生成されることになる。システムが一定フレーム・レートに準拠しないで、イメージを可変フレーム・レートで生成すると、ユーザから見たイメージが突発的に更新されることになる。このような突発的更新は体験の現実性からかけ離れており、ユーザを視覚的に混乱させている。従って、現実的で効果的な対話型グラフィック環境を実現するためには一定フレーム・レートが必要である。
ユーザが一定フレーム・レートを必要としているほかに、対話型グラフィック環境で使用される大多数のディスプレイ・デバイスは一定フレーム・レートで表示されるグラフィック・イメージだけを受け付けている。これらのデバイスはグラフィック・イメージを可変レートで受信することを扱うことができない。そのようなディスプレイ・デバイスとしては、コンピュータ・モニタ、プロジェクタ、テレビジョン・セット、ビデオ・カセット・レコーダ（ＶＣＲ）、ビデオ・ディスプレイ・ヘルメットがある。同様に、これらのデバイスはいずれも、グラフィック・イメージを一定出力ビデオ・レートで表示している。コンピュータ・システムがグラフィック・イメージを生成するときのフレーム・レートはディスプレイ・デバイスのビデオ・レートと同等である場合とそうでない場合がある。
シミュレーションや他の対話型グラフィック環境では、コンピュータ・システムのビデオ・ハードウェアにさまざまな計算負担を負わせている。このシステムの計算負担はイメージ複雑度に応じて変化している。また、計算負担はイメージ複雑度の増加に比例して増加している。生成され、表示されるグラフィカル・イメージは単純な空のビューから複雑な都会のビューまでの範囲にわたっている。どちらの場合も、ビデオ・ハードウェアは単一フレームに割り当てられた時間内にイメージを生成しなければならない。
この問題は、イメージが複雑であるため、グラフィックス・ハードウェアが１フレームの時間制限内にイメージをドローイング(drawing)できないとき発生する。イメージの処理時間が１フレームを越えると、代表例として、現在表示されているイメージは、ビデオ・ハードウェアが新しいイメージの計算を終えるまでに必要とするフレーム数の間繰返し表示されることが起こる。このように同じイメージを繰返し表示すると、実際のビデオ表示レートが低下し、シミュレーションの現実性に重大な影響を与えることになる。
一定フレーム・レートを保証する１つの方法は、フレーム・レートを十分に低く設定して、どの複雑度のイメージでも１フレーム内で生成し、表示できるようにすることである。この解決方法はいくつかの点で合理的でない。第１は、ビデオ・ハードウェアは常に最低の容量で実行されていることである。第２は、ユーザ側のビデオ効果は低下し、体験の現実性からかけ離れることである。
一定フレーム・レートを保つもう１つの方法では、視野にあるイメージのオブジェクトだけをドローイングし、遠くに離れたオブジェクトの複雑度を低減化することが中心になっている。この方法では、特定のフレーム・レートを保証するのではなく、グラフィック・ハードウェアのパフォーマンスを最大化している。
第３の方法では、可変フレーム・レートでイメージを表示できるモニタであるベクトル・ディスプレイを使用している。イメージをドローイングするのに公称フレーム時間より長くなるときは、フレーム時間が単純に延長されている。この解決方法には２つの欠点がある。１つは、ベクトル・ディスプレイが従来のラスタ・ディスプレイに比べて高価であることである。もう１つは、フレーム時間を延長できるのは、イメージを表示しているとき目に見えるフリッカまたはイメージ・スメア(imagesmear)が現れる直前に限られるため、ディスプレイの現実性が損なわれることである。
以上の理由から、グラフィック・イメージを一定フレーム・レートで生成するとき、コンピュータ・システムがイメージの複雑度に合わせてフレーム単位で自動調節することが要望されている。
発明の概要
本発明によれば、複雑なグラフィック・イメージを生成するのに要する時間を短縮することによって、イメージが１フレーム以内に生成されることを保証している。イメージを生成するのに２フレーム以上が必要であるときや、計算時間がフレーム制限に近づいたときは、イメージ解像度、つまり、サイズが単純に縮小される。イメージを小さくすると、イメージのフィル・レート(fillrate)、つまり、イメージのドロー時間はイメージ内のピクセル数に比例するので、ビデオ・ソフトウェアがイメージを生成する計算時間が短縮化される。低解像度でドローイングすると、ライン当りのピクセル数、イメージのライン数またはその両方が減少する。フィル要求量は減少したピクセル数だけ減少する。ビデオ・ソフトウェアが縮小イメージをドローイングしたあと、イメージはそのターゲット解像度、つまり、サイズまで戻されて拡大されてからディスプレイ・デバイスに送られる。この方法によると、複雑なグラフィック・イメージが１フレーム以内に生成され、一定フレーム・レートが保証される。
シミュレーション期間にディスプレイ・イメージの連続的でスムーズなビジュアル効果を保証するために、各イメージの解像度はフレーム単位で決定され、各イメージの表示と同期化される。該当する場合には、イメージは低解像度でドローイングされ、そのあとターゲット解像度に拡大されてから表示される。従って、イメージ解像度はフレームごとに異なる場合がある。この方法によると、複雑度が変化するイメージを入力できると同時に、一定ターゲット解像度をもつ出力を一定フレーム・レートでディスプレイ・デバイスに送ることができる。
また、本発明によれば、マルチチャネル機能も提供されている。マルチチャネル機能とは、複数のディスプレイ・デバイスのグラフィック・イメージをダイナミックにリサイジング(resizing)する機能である。本発明によれば、各ディスプレイ・デバイスのチャネルは独立に制御され、各ディスプレイ・デバイスが異なるイメージ解像度を使用できるようにする。
本発明のその他の特徴は下述する本発明の好適実施例の詳細説明および請求の範囲に示す通りである。
【図面の簡単な説明】
以下、添付図面を参照して本発明について説明する。図面において、同一または類似の働きをするエレメントは類似の符号を付けて示されている。さらに、符号の左側の数字はその符号が最初に現れている図面を示している。
図１はダイナミック・イメージ・リサイジングの概要を示す制御フロー図である。
図２はイメージをドローイングし、イメージ解像度を判断するダイナミック・イメージ・リサイジング・プロセスの第１ステップを示す制御フロー図である。
図３はＤＩＤ＝‘ｎ’のディスプレイ・チャネル‘Ｘ’のダイナミック・イメージ・リサイジングの同期を示すブロック図である。
好適実施例の詳細な説明
本発明によれば、複雑度が変化するグラフィック・イメージがダイナミックにリサイジングされ、ディスプレイ・イメージが一定フレーム・レートと一定ターゲット解像度で生成される。あるフレーム内では、グラフィック・イメージはイメージ解像度に従ってドローイングされる。後続フレームでは、ドローイングされたイメージはターゲット解像度でディスプレイ・デバイスに出力される。従って、グラフィック・イメージは、イメージの複雑度に関係なく、一定フレーム・レートで処理され、表示される。
以下に述べる環境例を中心に本発明について説明するが、その説明は単なる便宜的なものである。本発明は、この環境例における応用に限定されるものではなく、この分野の精通者ならば、以下の説明を読めば理解されるように、本発明は別の環境でも実現可能である。
以下では、グラフィック・イメージを連続的に縮小し、グラフィック・イメージをターゲット解像度に戻すように連続的に拡大するように作られたビデオ・ソフトウェアをもつコンピュータ・システムの環境を例にして本発明を説明する。具体的には、この分野の精通者ならば、以下の詳細説明を読めば理解されるように、本発明はそのような適応性を実現する方法が説明されている。
本発明の全体的制御フローは図１に示されている。図１において、ビデオ・ソフトウェアはフレーム、つまり、フレームＮ  １１４当たり１つのグラフィック・イメージを生成し、ドローイングする。このイメージは変化する複雑度をもち、後続フレーム、つまり、フレームＮ＋１  １１６期間にターゲット解像度で表示されるものである。
図１に戻って説明すると、ステップ１０６で、フレームＮ  １１４期間にビデオ・ソフトウェアは、まず、現イメージをフレーム・バッファにドローイングするとき使用されるイメージ解像度を決定する。このイメージ解像度は現イメージをドローイングするために使用される解像度係数を含んでいる。イメージ解像度はターゲット解像度である場合とそうでない場合とがある。イメージ解像度を決定すると、ビデオ・ソフトウェアはイメージ解像度に応じて現イメージをフレーム・バッファにドローイングする。ステップ１０６は以下でさらに詳しく説明する。
ステップ１０６は、イメージをビデオ・ハードウェアがアクセスできるフレーム・バッファにドローイングすることを１フレームの時間期間、つまり、フレームＮ  １１４の期間内に完了する。ステップ１０６のあと、ビデオ・ハードウェアはステップ１１０で、ドローイングされたイメージをフレーム・バッファから読み取り、そのドローイングされイメージをターゲット解像度でディスプレイ・デバイスに出力する。ビデオ・ハードウェアは、イメージがステップ１０６でドローイングされたとき縮小されたパーセントだけイメージを拡大する。この拡大により、ディスプレイ・デバイスが要求するターゲット解像度でイメージが表示されることが保証される。これは本発明の重要な特徴の１つであり、イメージ位置は拡大期間に一定になっている。イメージ位置が一定であるため、ユーザはイメージ内容が変化したと錯覚することがない。ステップ１１２で、イメージはユーザに表示される。ビデオ・ハードウェアは１フレーム、つまり、フレームＮ＋１  １１６の時間期間内にステップ１１０と１１２を完了する。
図２を参照して、図１のステップ１０６におけるビデオ・ソフトウェアの詳細を説明する。イメージ解像度を決定し、現イメージをその解像度でフレーム・バッファにドローイングするステップ１０６のプロセスは、１フレーム、つまり、フレームＮ  １１４の時間期間内に完了している。現イメージのイメージ解像度を決定するには、いくつかの方法が可能である。例えば、ビデオ・ソフトウェアはドローイングされる現イメージの内容に基づいてイメージ複雑度の分析を行なうことも、複数の先行イメージに基づいて分析を行なってイメージ複雑度の傾向を判別することも可能である。なお、本発明の特定実施例では、先行フレームのパフォーマンスだけに基づいてイメージ解像度を決定している。つまり、先行フレームのイメージをドローイングするときに要した時間が、現イメージのイメージ解像度を決定する基準になっている。なお、本発明のこの遡及分析の説明は単なる便宜的なものであり、本発明はこの環境例における応用に限定されるものではなく、この分野の精通者ならば、以下の説明を読めば理解されるように、本発明は別の環境でも実現可能である。
図２に戻って説明すると、ステップ２０２で、ビデオ・ソフトウェアは現イメージをフレーム・バッファにドローイングする。イメージはイメージ解像度２１０にドローイングされる。現イメージがドローイングされると、ビデオ・ソフトウェアはステップ２０４に進む。ステップ２０４で、ビデオ・ソフトウェアはドローイング時間、つまり、現イメージをフレーム・バッファにドローイングするときに要した時間を計算する。次に、ステップ２０６に進み、ビデオ・ソフトウェアは現イメージのドローイング時間を最高基準点(high-water mark)と比較する。この最高基準点は、そこに到達するとイメージ解像度の縮小が開始されるドローイング時間を表し、これにより、イメージが１フレーム時間期間内にドローイングされることが保証される。ドローイング時間は現イメージの複雑度に比例して増減する。
ステップ２０６に戻って説明すると、ドローイング時間が最高基準点を越える個所まで増加したときは、ビデオ・ソフトウェアはステップ２０８に進む。ステップ２０８で、ビデオ・ソフトウェアは新しい縮小イメージ解像度２１０を決定する。このイメージ解像度２１０は、次のフレーム、つまり、フレームＮ＋１のイメージをステップ２０２でドローイングするとき使用される。ビデオ・ソフトウェアはステップ２０８から出て、ステップ１０６を終了し、次のフレーム、つまり、フレームＮ＋１  １１６が開始されるのを待つ。
ステップ２０６に戻って説明すると、ドローイング時間がフレーム時間を越えていなければ、ビデオ・ソフトウェアはステップ２１２に進む。ステップ２１２で、ビデオ・ソフトウェアは現イメージのドローイング時間を最低基準点(low-water mark)と比較する。この最低基準点は、そこに到達すると縮小イメージ解像度の増加が開始されるドローイング時間を表している。現イメージのドローイング時間が最低基準点以下であれば、ビデオ・ソフトウェアはステップ２１４に進む。ステップ２１４で、ビデオ・ソフトウェアはイメージ解像度がターゲット解像度と等しいかどうかをチェックする。等しければ、イメージはすでにターゲット解像度にドローイングされているのでイメージは拡大されない。この場合は、イメージは低複雑度になっている。ビデオ・ソフトウェアはステップ２１４から出て、ステップ１０６を終了し、次のフレーム、つまり、フレームＮ＋１  １１６が開始されるのを待つ。
ステップ２１４に戻って説明すると、イメージ解像度がターゲット解像度と等しくなければ、ビデオ・ソフトウェアはステップ２１６に進む。ステップ２１６は、イメージが縮小イメージ解像度でドローイングされたこと、イメージが低複雑度であるためフレーム期間に余裕時間があることを示している。この余裕時間は次のフレームを高解像度でドローイングするために使用できる。ステップ２１６で、ビデオ・ソフトウェアは拡大イメージ解像度を求め、それを新しいイメージ解像度２１０としてストアする。そのあと、ビデオ・ソフトウェアはステップ２１６から出て、ステップ１０６を終了し、新フレーム、つまり、フレームＮ＋１  １１６の開始を待つ。
ステップ２１２に戻って説明すると、ドローイング時間が最適基準点以下でなければ、イメージ解像度は現イメージの複雑度に合ったものになっている。ビデオ・ソフトウェアはステップ２１２から出て、ステップ１０６を終了し、次のフレーム、つまり、フレームＮ＋１  １１６の開始を待つ。
連続オペレーションの期間、フレーム１などの第１フレームでは、イメージ１などの第１イメージをドローイングするために使用されるイメージ解像度２１０はターゲット解像度に等しくなっている。フレーム２などの次のフレームでは、イメージ１のドローイング時間はイメージ２などの第２イメージをフレーム・バッファにドローイングするために使用されるイメージ解像度を判断する基準となっている。同様に、フレーム３では、イメージ２のドローイング時間は、イメージ３をフレーム・バッファにドローイングするために使用されるイメージ解像度を判断する基準となっている。このプロセスは各フレームごとに繰り返される。
図３はダイナミック・イメージ・リサイジングの本発明に必要な同期を示すブロック図である。具体的には、図３はフレームＮ  １１４期間にイメージをフレーム・バッファにドローイングするステップ１０６のビデオ・ソフトウェアとフレームＮ＋１  １１６期間にイメージをディスプレイ・デバイスに出力するステップ１１０のビデオ・ハードウェアとの間の同期を示している。
従来のビデオ・システムと同様に、本発明はグラフィック・イメージを２重にバッファリングしている。２重バッファリングでは、フレーム・バッファは２つのフレーム・バッファ、例えば、フレーム・バッファＡ  ３０４とフレーム・バッファＢ  ３０６に論理的に分割されている。オペレーション時には、ビデオ・ソフトウェアはイメージを一方のフレーム・バッファ、例えば、フレーム・バッファＡ  ３０４にドローイングし、その間にビデオ出力コントローラ（ＶＯＣ）３１２は以前にドローイングしたイメージを他方のフレーム・バッファ、例えば、フレーム・バッファＢ  ３０６から読み取り、そのイメージをディスプレイ・デバイス‘Ｘ’３１８に出力する。
２重バッファリングによると、イメージがドローイングされているときそのイメージがユーザに表示されることがない。例えば、ビデオ・ソフトウェアがフレームＮ  １１４期間にイメージをフレーム・バッファＡ  ３０４にドローイングしている間に、ＶＯＣ  ３１２はフレームＮ−１期間にドローイングされていたイメージをフレーム・バッファＢ  ３０６から読み取り、それをディスプレイ・デバイス‘Ｘ’３１８に出力する。２フレーム・バッファ、つまり、フレーム・バッファＡ  ３０４とフレーム・バッファＢ  ３０８はフレーム単位でスワップされる。従って、前の例に続いて、次のフレーム、つまり、フレームＮ＋１  １１６で、ビデオ・ソフトウェアはイメージをフレーム・バッファＢ  ３０６にドローイングし、ＶＯＣ  ３１２はドローイングされたイメージをフレーム・バッファＡ  ３０４から読み取り、それをディスプレイ・デバイス‘Ｘ’３１８に出力する。
従来の２重バッファリング・メカニズムによる場合と同じように、本発明によれば、ポインタ付きの２重バッファリングが実現されている。このケースでは、ポインタはバッファ・スイッチ３０８と呼ばれる。バッファ・スイッチ３０８はフレーム・バッファのどちら側、つまり、フレーム・バッファＡ  ３０４にドローイングするか、フレーム・バッファＢ  ３０６にドローイングするか、どちら側から読み取るかを示している。ビデオ・ソフトウェアがイメージをフレーム・バッファの一方にドローイングすることを完了したとき、新しくドローイングされたイメージを収めている側のフレーム・バッファをＶＯＣ  ３１２が読み取り、ＶＯＣ  ３１２が表示を終えたばかりの側のフレーム・バッファにビデオ・ソフトウェアがドローイングするように、バッファ・スイッチ３０８を変更することができる。なお、バッファ・スイッチ３０８は変更したままにしておいてはならない。すなわち、ビデオ・ソフトウェアはイメージをフレーム・バッファにドローイングすることをフレーム期間のいつでも終了できるが、バッファ・スイッチ３０８はその時点では変更されない。フレームの途中でバッファ・スイッチを変更すると、ＶＯＣ  ３１２はドローイングされたイメージを読み取り、それをディスプレイ・デバイス‘Ｘ’３１８に出力している途中でフレーム・バッファをスイッチしてしまうことが起こる。従って、バッファ・スイッチ３０８の更新はＶＯＣ  ３１２によってディスプレイ・デバイス‘Ｘ’３１８上の垂直帰線消去期間に行われる。垂直帰線消去は、ＶＯＣ  ３１２がディスプレイ・デバイス‘Ｘ’３１８上の現ロケーションを右下隅（イメージの出力を完了したあとの位置）から左上隅（イメージの出力を開始する位置）にリセットする時間期間である。
本発明によれば、マルチチャネル機能も提供されている。これは、複数のディスプレイ・デバイスをドライブして、各々が異なるグラフィック・イメージを表示できるようにする機能である。例えば、ディスプレイ・デバイス‘Ｘ’３１８は複数のディスプレイ・デバイスの１つにすることができる。各チャネルまたはディスプレイ・デバイスは各々が異なる拡大比とスワップ・レートを使用するように独立にリサイジングすることができる。各ディスプレイ・デバイス・チャネルには固有のディスプレイＩＤ（ＤＩＤ）が割り当てられ、これは、そのチャネルを他のチャネルから独立してダイナミックにリサイジングするために使用される。つまり、ディスプレイ・デバイス‘Ｘ’３１８に対応するＤＩＤ＝‘ｎ’をもつチャネルのように、特定チャネルのフレーム・バッファがスワップされるときは、バッファ・スイッチ３０８はＤＩＤ＝‘ｎ’３１０の対応するスワップ・バッファ信号を受信し、そのＤＩＤに関連するフレーム・バッファをスワップする。ＤＩＤの実現方法の詳しい説明は以下に示されている。
イメージをフレーム・バッファＡ  ３０４またはフレーム・バッファＢ  ３０６からディスプレイ・デバイス‘Ｘ’３１８に出力するとき、ＶＯＣ  ３１２はイメージをターゲット解像度に拡大する。この拡大が必要になるのは、イメージが複雑であるためにビデオ・ソフトウェアがステップ１０６でイメージ解像度を縮小した場合である。従って、ビデオ・ソフトウェアとＶＯＣ  ３１２とを同期させ、イメージの解像度をＶＯＣ  ３１２に伝えて、正しい拡大が表示前に行えるようにするメカニズムが必要になる。以下では、チャネルＤＩＤ＝‘ｎ’をもつディスプレイ・デバイス‘Ｘ’３１８に対応する単一チャネルを例にして、同期化について説明する。
第１に、ビデオ・ソフトウェアはドローイングされたイメージの解像度をバッファ解像度係数レジスタ(Buffered Resolution Coefficients Register)３１４にストアする。これは、イメージ解像度が縮小されているか、拡大されているかに応じてステップ２０８または２１４で行われる。これにより、ビデオ・ハードウェアが正しい係数を使用して各イメージを拡大し、ディスプレイ・デバイス‘Ｘ’３１８に出力することが保証される。
第２に、ＤＩＤ＝‘ｎ’３１０のスワップ・バッファ信号がバッファ・スイッチ３０８とＶＯＣ  ３１２に入力され、フレーム・バッファＡ  ３０４とフレーム・バッファＢ  ３０６および関連解像度係数をスワップすべきことを通知する。ＤＩＤ＝‘ｎ’３１０のスワップ・バッファ信号を受信すると、バッファ・スイッチ３０８はフレーム・バッファ３０４，３０６をトグルする。ビデオ・ソフトウェアがイメージをフレーム・バッファＡ  ３０４にドローイングしていて、ＶＯＣ  ３１２がイメージをフレーム・バッファＢ  ３０６からディスプレイ・デバイス‘Ｘ’３１８に出力していれば、ＤＩＤ＝‘ｎ’３１０のスワップ・バッファ信号の後、ビデオ・ソフトウェアはフレーム・バッファＢ  ３０６にドローイングし、ＶＯＣ  ３１２はフレーム・バッファＡ  ３０４を出力する。次のＤＩＤ＝‘ｎ’３１０のスワップ・バッファ信号が受信されると、バッファ・スイッチ３０８はフレーム・バッファを再びスワップする。
ＤＩＤ＝‘ｎ’３１０のスワップ・バッファ信号を受信すると、
ＶＯＣ  ３１２はバッファ解像度係数レジスタ３１４の内容を解像度係数レジスタ３１６に移動する。従って、ＶＯＣ  ３１２はディスプレイ・デバイス‘Ｘ’３１８に出力される現イメージに関連する解像度係数を使用し、正しいレベルで拡大が行われる。このプロセスはダイナミックであり、各ディスプレイ・デバイスごとにフレーム単位でイメージ解像度を独立に変更する機能をもっている。さらに、このプロセスによると、すべてのグラフィック・イメージがその複雑度に関係なく、必要な１フレーム時間期間内に各ディスプレイ・デバイスごとに処理されることが保証される。
第３に、ＶＯＣ  ３１２はディスプレイ・デバイス‘Ｘ’３１８上の垂直帰線消去の開始時に垂直割込み３２０を発生する。ＶＯＣ  ３１２はこの垂直割込み３２０をビデオ・ソフトウェアとグラフィック・ハードウェアに送り、ＤＩＤ＝‘ｎ’３１０のスワップ・バッファ信号をトリガし、ビデオ・ソフトウェアとＶＯＣ  ３１２のオペレーションの同期をとる。
この特定実施例では、本発明によるマルチチャネル機能はＤＩＤテーブルを維持することによって実現され、そこでは、テーブル内の各ビットが固有ＤＩＤに対応づけられており、固有チャネル番号またはディスプレイ・デバイスに対応づけられている。従って、特定ＤＩＤ‘ｎ’のビットが変わると、ＤＩＤ＝‘ｎ’３１０のスワップ・バッファ信号がバッファ・スイッチ３０８と、割当てチャネルに対応するＶＯＣ  ３１２のバッファ解像度係数レジスタ３１４とに送られる。ＤＩＤ＝‘ｎ’３１０のスワップ・バッファ信号を受信すると、バッファ・スイッチ３０８は対応するフレーム・バッファＡ  ３０４とフレーム・バッファＢ  ３０６をスワップし、解像度係数が対応するバッファ解像度係数レジスタ３１４から対応する解像度係数レジスタ３１６にロードされる。
さらに、本発明の特定実施例によれば、マルチチャネル機能のＤＩＤテーブルはＸウィンドウ・システムを使用して実現されている。Ｘウィンドウ・システムはネットワーク・ベースのＵＮＩＸウィンドウ・システムを実現する標準プロトコルである。Ｘウィンドウ・システムは、ネットワーク・ベースのコンピュータ・システムにウィンドウ環境を構築し、それを管理する機能のユーザと開発者に提供している。これは、複数のディスプレイ・デバイス上に複数のウィンドウからなる環境である。Ｘウィンドウ・サーバの詳細は、IsraelおよびFortune共著「Ｘウィンドウ・システム・サーバ、Ｘバージョン１１、リリース５(X Window System Server, X Version 11, Release5)」(Digital Press1992)に記載されているが、本書の全内容は引用により本明細書の一部を構成するものである。これらの説明は単なる便宜的なものであり、本発明はこの環境例における応用に限定されるものではない。この分野の精通者ならば、以下の説明を読むことにより、本発明は別の環境でも実現されることを理解するはずである。
Ｘウィンドウ・システム・サーバ、つまり、Ｘサーバは複数のディスプレイ・デバイスに接続された単一グラフィックス・ディスプレイを含むマルチヘッド構成を管理することができる。Ｘサーバはディスプレイ・デバイス上の、Ｘウィンドウと呼ばれる各ウィンドウに固有ＤＩＤを割り当て、各Ｘウィンドウのイメージを２重バッファリングする標準プロトコルを取り入れている。Ｘサーバは各Ｘウィンドウの２重フレーム・バッファを、各ＤＩＤに関連するスワップ・バッファ・ビットを通して独立にスワップする。従って、ＸサーバがＤＩＤ＝‘ｎ’をもつＸウィンドウのフレーム・バッファをスワップする必要が起こると、Ｘサーバは対応するスワップ・バッファ・ビットをトグルするので、そのＸウィンドウのフレーム・バッファがスワップされることになる。
本発明の特定実施例では、このＸサーバ・メカニズムを使用してマルチチャネル機能のＤＩＤテーブルを実現している。上述したように、この特定実施例では、各ディスプレイ・デバイスとＤＩＤとが対応づけられている。各ディスプレイ・デバイスのＤＩＤはＸウィンドウＤＩＤであり、各ディスプレイ・デバイス、つまり、ディスプレイ・デバイス‘Ｘ’３１８はディスプレイ・エリア全体をカバーする１つのＸウィンドウを含んでいる。従って、ＤＩＤテーブル内の各ビットは、各ディスプレイ・デバイス・チャネルＤＩＤが１つのＸウィンドウを表しているのでＸサーバ・スワップ・バッファ・ビットである。特定実施例では、Ｘサーバ・メカニズムを使用して、他のチャネルから独立して各チャネルのフレーム・バッファをスワップするので、グラフィック・イメージを複数のチャネルで独立してダイナミックにリサイジングすることができる。
本発明の他の応用としては、次のような５つの環境があるが、本発明はこれらに限定されない。第１に、システムは本発明をピクセルの異なる部分に独立して適用することが可能である。例えば、ピクセルはフォアグラウンド（オーバレー）イメージとバックグラウンド・イメージの両方を収めることができる。従って、ピクセルのこれら２コンポーネントの各々は異なる解像度設定値をもつことになる。
第２に、システムは、水平のみ、垂直のみ、または細分性が変化するスケーリング・システムを構築することができる。例えば、本発明は１ライン、１ピクセル、２ピクセル、４ピクセルなどに適用することができる。
第３に、システムは単一ディスプレイ・デバイスに現れる１つまたは２つ以上のウィンドウに本発明を適用することができる。従って、各ウィンドウは異なる解像度設定値をもつことになる。
第４に、システムは高次フィルタ（バイキュービック(bi-cubic)）で本発明を実現することができるので、本発明はバイリニア・インタポレーション(bi-linear interpolation)に限定されない。さらに、システムは拡大されたライン、ポイントおよびテキストを鮮明にする特別な周波数エンハンス・フィルタを組み込むことが可能である。
第５に、システムはイメージの関心のある１つまたは２つ以上の特定エリアに適用することが可能である。例えば、システムはイメージのボーダ領域、センタ領域、またはフォーカル・ポイントに本発明を適用することができる。
以上、本発明の種々実施例について説明してきたが、これらの実施例は単なる例示であり、これらに限定されるものではない。この分野の精通者ならば理解されるように、本発明は請求の範囲に記載された本発明の精神と範囲から逸脱しない限り、種々態様に変更することが可能である。従って、本発明の範囲は上述した実施例のどれにも限定されず、請求の範囲に記載されている内容からのみ判断されるべきものである。
【図１】
0004043518.tif 000002
【図２】
0004043518.tif 000003
【図３】
0004043518.tif 000004