図面 (/)

この項目の情報は公開日時点(2006年1月19日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

ビデオ表示ネットワーク管理を提供する。

解決手段

複数の出力を備えるビデオ表示ネットワークのリソースが構成され得る。暫定的構成がサポートされ得る。入力の構成は、出力の構成とは別に実行され得る。提供されるオプションを暫定的構成と共に動作可能なものに限定するために、ネットワークリソース間の相互依存性が考慮され得る。クライアントは、サービスによって提供される関数集合を使用して構成解空間トラバースすることができる。これらの関数は、トランザクショナル構成手法をサポートすることができる。相互依存性を考慮する役割は、ビデオミニポートなどのビデオドライバに委ねられ得る。クライアントは、様々な手法を用いて所望の構成を見出すことができる。所望の構成は、NP完全グラフ問題への解として扱われ得る。様々な構成目標(最適な構成など)が相互依存性を考慮して実現され得る。

概要

背景

複数のモニタを使用するコンピュータシステムが普及してきている。例えば、いまや、1台のコンピュータLCDパネル映写装置の両方を駆動することは普通である。さらに、コンピュータユーザは、いまや、自分のコンピュータを使用して、日常的にビデオ上映(DVDなど)を見る。そのような場合、コンピュータは、従来方式のモニタとテレビの両方を駆動することになる。

需要応えて、ビデオアダプタハードウェア製造者らは、いまや、ビデオアダプタ上に複数の出力を含める。このように、ユーザは、単一出力でのケーブル切り換えてその出力を再構成することなく、より簡単にコンピュータを使用して所望のデバイスを駆動することができる。

概要

ビデオ表示ネットワーク管理を提供する。 複数の出力を備えるビデオ表示ネットワークのリソースが構成され得る。暫定的構成がサポートされ得る。入力の構成は、出力の構成とは別に実行され得る。提供されるオプションを暫定的構成と共に動作可能なものに限定するために、ネットワークリソース間の相互依存性が考慮され得る。クライアントは、サービスによって提供される関数集合を使用して構成解空間トラバースすることができる。これらの関数は、トランザクショナル構成手法をサポートすることができる。相互依存性を考慮する役割は、ビデオミニポートなどのビデオドライバに委ねられ得る。クライアントは、様々な手法を用いて所望の構成を見出すことができる。所望の構成は、NP完全グラフ問題への解として扱われ得る。様々な構成目標(最適な構成など)が相互依存性を考慮して実現され得る。

目的

エニュメレーション関数(enumeration function)は、ネットワークリソース間の相互依存性に基づき、暫定的構成と共に動作可能なオプションだけを提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

プログラマチックインタフェースを実施するコンピュータ実行可能命令を備えるコンピュータ可読媒体において、前記インタフェースは、ビデオ表示ネットワーク暫定的構成の指示を受け取るサービスと、前記暫定的構成と共に動作可能な構成オプションエニュメレーションするサービスとへのアクセスを提供することを特徴とするコンピュータ可読媒体。

請求項2

前記エニュメレーションすることは、前記暫定的構成と共に動作可能な複数のビデオ表示ネットワークソースをエニュメレーションすることを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。

請求項3

前記エニュメレーションすることは、前記暫定的構成と共に動作可能な複数のビデオ表示ソースモードをエニュメレーションすることを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。

請求項4

前記エニュメレーションすることは、前記暫定的構成と共に動作可能な複数のビデオ表示ネットワークターゲットをエニュメレーションすることを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。

請求項5

前記エニュメレーションすることは、前記暫定的構成と共に動作可能な複数のビデオ表示ターゲットモードをエニュメレーションすることを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。

請求項6

前記インタフェースは、さらに、少なくとも1つのビデオ表示ネットワークソース上に前記複数のビデオ表示ソースモードの1つをピンニングするサービスへのアクセスを提供することを特徴とする請求項3に記載のコンピュータ可読媒体。

請求項7

前記インタフェースは、さらに、前記複数のビデオ表示ソースモードの前記1つの前記ピンニングの後で前記暫定的構成と共に動作可能な複数のビデオ表示ターゲットモードをエニュメレーションするサービスへのアクセスを提供することを特徴とする請求項6に記載のコンピュータ可読媒体。

請求項8

前記インタフェースは、さらに、前記複数のビデオ表示ソースモードの前記1つをアンピンニングするサービスへのアクセスを提供することを特徴とする請求項6に記載のコンピュータ可読媒体。

請求項9

前記インタフェースは、さらに、前記複数のビデオ表示ソースモードの前記1つの前記アンピンニングの後で前記暫定的構成と共に動作可能な複数のビデオ表示ソースモードをエニュメレーションするサービスへのアクセスを提供することを特徴とする請求項8に記載のコンピュータ可読媒体。

請求項10

前記インタフェースは、さらに、少なくとも1つのビデオ表示ネットワークターゲット上に前記複数のビデオ表示ターゲットモードの1つをピンニングするサービスへのアクセスを提供することを特徴とする請求項5に記載のコンピュータ可読媒体。

請求項11

前記インタフェースは、さらに、前記複数のビデオ表示ターゲットモードの前記1つの前記ピンニング後に前記暫定的構成と共に動作可能な複数のビデオ表示ターゲットモードをエニュメレーションするサービスへのアクセスを提供することを特徴とする請求項10に記載のコンピュータ可読媒体。

請求項12

前記インタフェースは、さらに、前記複数のビデオ表示ターゲットモードの前記1つをアンピンニングするサービスへのアクセスを提供することを特徴とする請求項10に記載のコンピュータ可読媒体。

請求項13

前記インタフェースは、さらに、前記複数のビデオ表示ターゲットモードの前記1つの前記アンピンニング後に前記暫定的構成と共に動作可能な複数のビデオ表示ターゲットモードをエニュメレーションするサービスへのアクセスを提供することを特徴とする請求項12に記載のコンピュータ可読媒体。

請求項14

前記インタフェースは、さらに、動作可能なビデオ表示ネットワーク構成をコミットするサービスへのアクセスを提供することを特徴とする請求項1に記載のコンピュータ可読媒体。

請求項15

ビデオ表示ネットワークの暫定的構成の指示を受け取るサービスと、前記暫定的構成と共に動作可能な構成オプションをエニュメレーションするサービスとへのアクセスを提供するプログラマチックインタフェースにアクセスするコンピュータ実行可能命令を備えることを特徴とするコンピュータ可読媒体。

請求項16

前記エニュメレーションすることは、前記暫定的構成と共に動作可能な複数のビデオ表示ターゲットモードをエニュメレーションすることを含むことを特徴とする請求項15に記載のコンピュータ可読媒体。

請求項17

前記インタフェースは、さらに、少なくとも1つのビデオ表示ネットワークターゲット上に前記複数のビデオ表示ターゲットモードの1つをピンニングするサービスへのアクセスを提供することを特徴とする請求項16に記載のコンピュータ可読媒体。

請求項18

複数のビデオターゲットを含む構成可能なビデオ表示ネットワークの構成を見出す方法であって、暫定的動作可能構成を構築するために前記ビデオ表示ネットワークの一連部分構成を受け取ること、および前記暫定的動作可能構成をコミットすることであって、前記ビデオ表示ネットワークにおいて前記暫定的動作可能構成を実施することを含むことを特徴とする方法。

請求項19

前記コミットの前に、前記暫定的動作可能構成から前記部分構成の少なくとも1つを除去する指示を受け取ることをさらに含むことを特徴とする請求項18に記載の方法。

請求項20

請求項18に記載の方法を実行するコンピュータ実行可能命令を備えることを特徴とするコンピュータ可読媒体。

請求項21

複数のリソースを含むと共に複数の出力を含むビデオ表示ネットワークを構成する方法であって、前記ビデオ表示ネットワークの前記複数のリソースのうちの第1のリソースでの構成の指示を含む、前記ビデオ表示ネットワークの部分構成の指示を受け入れること、前記ビデオ表示ネットワークの前記複数のリソース間相互依存性に基づき、前記ビデオ表示ネットワークの前記部分構成の前記指示と共に動作可能な、前記ビデオ表示ネットワークの前記リソースのうちの第2のリソースでの1つまたは複数の構成オプションを決定すること、および前記第2のリソースでの前記共に動作可能な構成オプションを指示することを含むことを特徴とする方法。

請求項22

前記受け入れることはビデオドライバによって実行され、前記決定することは前記ビデオドライバによって実行され、前記指示することは前記ビデオドライバによって実行されることを特徴とする請求項21に記載の方法。

請求項23

前記ビデオドライバはビデオミニポートを含み、前記受け入れることは前記ビデオミニポートによって実行され、前記決定することは前記ビデオミニポートによって実行され、前記指示することは前記ビデオミニポートによって実行されることを特徴とする請求項22に記載の方法。

請求項24

前記指示することは、デバイスドライバインタフェースのエニュメレーション関数へのプログラマチック呼び出しに応答して実行されることを特徴とする請求項21に記載の方法。

請求項25

前記指示することは、前記ビデオ表示ネットワークの前記複数のリソースでの共に動作可能な構成オプションを指示することを特徴とする請求項21に記載の方法。

請求項26

前記第1のリソースは、前記ビデオ表示ネットワークの第1のビデオパスにあり、前記第2のリソースは、前記ビデオ表示ネットワークの第2のビデオパスにあることを特徴とする請求項21に記載の方法。

請求項27

前記ビデオ表示ネットワークの前記部分構成は、前記ビデオ表示ネットワークの複数のビデオ入力のうちの1つでの構成を指示することを特徴とする請求項21に記載の方法。

請求項28

前記ビデオ表示ネットワークの前記部分構成は、前記ビデオ表示ネットワークの前記複数のビデオ出力のうちの1つでの構成を指示することを特徴とする請求項21に記載の方法。

請求項29

前記ビデオ表示ネットワークの前記部分構成は、前記ビデオ表示ネットワークの複数のディジタルビデオ入力表現ビデオ出力信号変換器のうちの1つでの構成を指示することを特徴とする請求項21に記載の方法。

請求項30

前記ディジタルビデオ入力表現/ビデオ出力信号変換器は、ビデオコーデックを含むことを特徴とする請求項29に記載の方法。

請求項31

前記ディジタルビデオ入力表現/ビデオ出力信号変換器は、ディジタルアナログ変換器を含むことを特徴とする請求項29に記載の方法。

請求項32

前記第1のリソースは、前記ビデオ表示ネットワークの入力を含み、前記第2のリソースは、前記ビデオ表示ネットワークの出力を含むことを特徴とする請求項21に記載の方法。

請求項33

前記ビデオ表示ネットワークの前記部分構成は、前記ビデオ表示ネットワークでのトポロジを指示することを特徴とする請求項21に記載の方法。

請求項34

前記ビデオ表示ネットワークの前記部分構成は、ビデオアダプタ出力からビデオデバイスへのマッピングを指示することを特徴とする請求項21に記載の方法。

請求項35

請求項21に記載の方法を実行するコンピュータ実行可能命令を備えることを特徴とするコンピュータ可読媒体。

請求項36

ビデオソースおよびビデオターゲットを含むビデオ表示ネットワークを構成する方法であって、前記ビデオ表示ネットワークでのトポロジを選択すること、前記ビデオソースでの共に動作可能なオプションをエニュメレーションすること、前記ビデオソースでの前記共に動作可能なオプションの中から、前記ビデオソースでのオプションをピンニングすること、前記ビデオターゲットでの共に動作可能なオプションをエニュメレーションすること、および前記ビデオターゲットでの前記共に動作可能なオプションの中から、前記ビデオターゲットでのオプションをピンニングすることを含むことを特徴とする方法。

請求項37

前記ビデオソースでの前記共に動作可能なオプションは、前記トポロジに関して共に動作可能であり、前記ビデオターゲットでの前記共に動作可能なオプションは、前記トポロジに関して共に動作可能であると共に、前記ビデオソースでの前記ピンニングされたオプションに関して共に動作可能であることを特徴とする請求項36に記載の方法。

請求項38

前記ビデオソースでのオプションをピンニングすることは、第1のビデオソースでのオプションをピンニングすることであって、第2のビデオソースでの構成オプションを無効化すること、前記第2のビデオソースでの前記構成オプションが無効化されていると判定すること、および前記第2のビデオソースでの前記構成オプションが無効化されていると判定したことに応答して、前記第1のビデオソースでの前記オプションをアンピンニングすることを含むことを特徴とする請求項36に記載の方法。

請求項39

所望のオプションが前記ビデオソースでの前記共に動作可能なオプションの中にないと判定したことに応答して、異なるトポロジを選択することをさらに含むことを特徴とする請求項36に記載の方法。

請求項40

所望のオプションが前記ビデオターゲットでの前記共に動作可能なオプションの中にないと判定したことに応答して、異なるトポロジを選択することをさらに含むことを特徴とする請求項36に記載の方法。

請求項41

所望のオプションが前記ビデオターゲットでの前記共に動作可能なオプションの中にないと判定したことに応答して、前記ビデオソースの少なくとも1つでの異なるオプションを選択することをさらに含むことを特徴とする請求項36に記載の方法。

請求項42

請求項36に記載の方法を実行するコンピュータ実行可能命令を備えることを特徴とするコンピュータ可読媒体。

請求項43

複数の出力を含む複数のリソースを含むビデオ表示ネットワークを構成するように動作可能なビデオドライバを実施するコンピュータ実行可能命令が符号化されているコンピュータ可読媒体であって、前記ビデオドライバは、前記ビデオ表示ネットワークの前記複数のリソースのうちの第1のリソースでの構成の指示を含む、前記ビデオ表示ネットワークの部分構成の指示を受け入れるように動作可能な論理と、前記ビデオ表示ネットワークの前記複数のリソース間の相互依存性に基づき、前記ビデオ表示ネットワークの前記部分構成の前記指示と共に動作可能な前記ビデオ表示ネットワークの前記複数のリソースのうちの第2のリソースでの1つまたは複数の構成オプションを決定するように動作可能な論理と、前記第2のリソースでの前記共に動作可能な構成オプションを指示するように動作可能な論理とを含むことを特徴とするコンピュータ可読媒体。

請求項44

ビデオ表示ネットワークでのトポロジを決定する方法を実行するコンピュータ実行可能命令を備えるコンピュータ可読媒体において、前記方法は、初期トポロジを用いて開始すること、およびモニタによってサポートされるビデオモードの観点から記述される目標に基づき、前記目標により適合するように前記初期トポロジを変更することを含むことを特徴とするコンピュータ可読媒体。

請求項45

前記変更することは、前記目標により適合する暫定的動作可能構成を生成することを含むことを特徴とする請求項44に記載のコンピュータ可読媒体。

請求項46

前記変更することは、前記ビデオ表示ネットワークのリソース間の相互依存性を説明するものであることを特徴とする請求項44に記載のコンピュータ可読媒体。

請求項47

前記目標は、ビデオ表示ターゲット上のビデオモード集合が、それらに接続されたビデオ表示装置上での優先モードをサポートしなければならないと仮定して、ビデオ表示ソース上のサポートされるグラフィックスビデオ表示ソースモード集合を最大にするように利用可能なビデオ出力コーデックを介して前記ビデオ表示ネットワークにおいて前記ビデオ表示ターゲットから前記ビデオ表示ソースまで経路指定する最善の方法を含むことを特徴とする請求項44に記載のコンピュータ可読媒体。

請求項48

前記目標は、ビデオ表示ターゲット上のビデオモード集合が、それらに接続されたビデオ表示装置上での優先モードを、指定された優先順位でサポートしなければならないと仮定して、ビデオ表示ソース上のサポートされるグラフィックスビデオ表示ソースモード集合を最大にするように利用可能なビデオ出力コーデックを介して前記ビデオ表示ネットワークにおいて前記ビデオ表示ターゲットから前記ビデオ表示ソースまで経路指定する最善の方法を含むことを特徴とする請求項44に記載のコンピュータ可読媒体。

請求項49

前記目標は、ビデオ表示ターゲット上のビデオモード集合が、それらに接続されたビデオ表示装置によってサポートされるビデオモードの少なくとも1つをサポートしなければならないと仮定して、ビデオ表示ソース上のサポートされるグラフィックスビデオ表示ソースモード集合を最大にするように利用可能なビデオ出力コーデックを介して前記ビデオ表示ネットワークにおいて前記ビデオ表示ターゲットから前記ビデオ表示ソースまで経路指定する最善の方法を含むことを特徴とする請求項44に記載のコンピュータ可読媒体。

請求項50

前記初期トポロジを変更することは、複数のビデオ出力にとって利用可能な複数のビデオモードをエニュメレーションすることを含むことを特徴とする請求項44に記載のコンピュータ可読媒体。

請求項51

前記初期トポロジを変更することは、前記複数のビデオモードの少なくとも1つを前記複数のビデオ出力の少なくとも1つにピンニングすることをさらに含むことを特徴とする請求項50に記載のコンピュータ可読媒体。

請求項52

前記初期トポロジを変更することは、複数のレンダリングターゲットにとって利用可能な複数のレンダリングモードをエニュメレーションすることをさらに含むことを特徴とする請求項51に記載のコンピュータ可読媒体。

請求項53

前記初期トポロジを変更することは、前記複数のレンダリングモードの少なくとも1つを前記複数のレンダリングターゲットの1つにピンニングすることをさらに含むことを特徴とする請求項52に記載のコンピュータ可読媒体。

請求項54

前記初期トポロジを変更することは、前記複数のレンダリングターゲットの前記1つの上にピンニングされた前記複数のレンダリングモードの前記少なくとも1つをアンピンニングすることをさらに含むことを特徴とする請求項53に記載のコンピュータ可読媒体。

請求項55

前記初期トポロジを変更することは、前記複数のレンダリングモードの別の1つを前記複数のレンダリングターゲットの前記1つにピンニングすることをさらに含むことを特徴とする請求項54に記載のコンピュータ可読媒体。

請求項56

所望のビデオ構成オプションの優先順位を付けたリストを満たすビデオ構成を決定する方法であって、前記優先順位を付けたリストに基づき、少なくとも1つの第1のリソースでの部分ビデオ構成を提出すること、前記部分ビデオ構成と共に動作可能な構成オプションのリストを受け取ること、前記優先順位を付けたリスト中の所望のオプションが、前記部分ビデオ構成と共に動作可能な構成オプションの前記リスト中に存在するかどうか判定すること、および前記所望のオプションが存在しないと判定したことに応答して、前記第1のリソースでの変更された部分構成を再提出することを含むことを特徴とする方法。

請求項57

前記ビデオ構成はビデオ表示ネットワークの構成を指示することを特徴とする請求項56に記載の方法。

請求項58

前記リストは前記ビデオ表示ネットワークでの所望の構成オプションを指示することを特徴とする請求項57に記載の方法。

請求項59

請求項56に記載の方法を実行するコンピュータ実行可能命令を備えることを特徴とするコンピュータ可読媒体。

請求項60

コンピュータ可読媒体において、複数のビデオ出力、複数のレンダリングターゲット、およびレンダリングターゲット関連への少なくとも1つのビデオ出力を備える第1のビデオ表示ネットワーク構成暫定的構成を獲得する手段と、前記第1のビデオ表示ネットワーク構成暫定的構成を、第2のビデオ表示ネットワーク構成暫定的構成で置き換える手段とを含むことを特徴とするビデオレンダリングデバイスドライバ。

請求項61

前記第1のビデオ表示ネットワーク構成暫定的構成を廃棄する手段をさらに含むことを特徴とする請求項60に記載のビデオレンダリングデバイスドライバ。

請求項62

前記第1のビデオ表示ネットワーク構成暫定的構成を置き換える前記手段は、複数のエニュメレーションされたビデオ出力のそれぞれにビデオモード制約条件を設定する手段を含むことを特徴とする請求項60に記載のビデオレンダリングデバイスドライバ。

請求項63

前記第1のビデオ表示ネットワーク構成暫定的構成を置き換える前記手段は、前記第2のビデオ表示ネットワーク構成暫定的構成を作成する手段を含むことを特徴とする請求項60に記載のビデオレンダリングデバイスドライバ。

請求項64

ビデオ出力構成中の少なくとも1つのビデオ出力上の複数のビデオモードをサポートするビデオ出力構成を求めてビデオドライバに照会すること、前記ビデオ出力構成中の前記少なくとも1つのビデオ出力上の前記複数のビデオモードの1つを暫定的に構成すること、および前記ビデオ出力構成中の少なくとも1つのレンダリングターゲット上の複数のレンダリングモードの1つを暫定的に構成することを含むことを特徴とする方法。

請求項65

前記複数のビデオモードの1つを暫定的に構成することは、前記少なくとも1つのビデオ出力上の複数の利用可能なビデオモードをエニュメレーションすることを含むことを特徴とする請求項64に記載の方法。

請求項66

前記複数のビデオモードの1つを暫定的に構成することは、第1のビデオモードが、第2のビデオモードを選択する前にも後にも有効であるように前記第1のビデオモードを選択し、前記第2のビデオモードを選択することをさらに含むことを特徴とする請求項65に記載の方法。

請求項67

前記複数のレンダリングモードの1つを暫定的に構成することは、前記少なくとも1つのレンダリングターゲット上の複数の利用可能なレンダリングモードをエニュメレーションすることを含むことを特徴とする請求項64に記載の方法。

請求項68

前記複数のレンダリングモードの1つを暫定的に構成することは、第1のレンダリングモードが、第2のレンダリングモードを選択する前にも後にも有効であるように前記第1のレンダリングモードを選択し、前記第2のレンダリングモードを選択することをさらに含むことを特徴とする請求項67に記載の方法。

請求項69

前記ビデオ出力構成をコミットすることをさらに含むことを特徴とする請求項64に記載の方法。

請求項70

請求項64に記載の方法を実行するコンピュータ実行可能命令を備えることを特徴とするコンピュータ可読媒体。

請求項71

複数のビデオ出力を含む構成可能なビデオ表示ネットワークを構成する方法であって、前記ビデオ表示ネットワークのビデオ入力の構成の指示を受け取ること、前記ビデオ入力の前記構成の前記指示を受け取ることとは別に、前記複数のビデオ出力のうちの1つのビデオ出力の構成の指示を受け取ること、および前記ビデオ出力の前記構成の前記指示および前記ビデオ入力の前記構成の前記指示に従って前記ビデオ表示ネットワークを構成することを含むことを特徴とする方法。

請求項72

前記ビデオ入力の前記構成の前記指示を受け取ることとも、前記ビデオ出力の前記構成の前記指示を受け取ることとも別に、前記ビデオ表示ネットワークのビデオ入力/出力変換器の構成の指示を受け取ることをさらに含むことを特徴とする請求項71に記載の方法。

請求項73

前記ビデオ出力の前記構成の前記指示は、第1のデバイスドライバインタフェース呼び出しで受け取られ、前記ビデオ入力の前記構成の前記指示は、第2のデバイスドライバインタフェース呼び出しで受け取られることを特徴とする請求項71に記載の方法。

請求項74

前記ビデオ出力の前記構成の前記指示は、デバイスドライバへの第1の呼び出しで受け取られ、前記ビデオ入力の前記構成の前記指示は、デバイスドライバへの第2の呼び出しで受け取られることを特徴とする請求項71に記載の方法。

請求項75

前記ビデオ出力の前記構成の前記指示はオペレーティングシステムによって送られ、前記ビデオ入力の前記構成の前記指示は前記オペレーティングシステムによって送られることを特徴とする請求項71に記載の方法。

請求項76

前記ビデオ表示ネットワークの前記ビデオ入力の前記構成の前記指示を受け取ったことに応答して、前記ビデオ表示ネットワークの前記ビデオ入力の前記構成の前記指示と共に動作可能なものに限定される、前記ビデオ表示ネットワークでの追加の可能な構成オプションの集合を指示することをさらに含むことを特徴とする請求項71に記載の方法。

請求項77

デバイスドライバは、どのオプションが、前記ビデオ表示ネットワークの前記ビデオ入力の前記構成の前記指示と共に動作可能であるか判定することを特徴とする請求項76に記載の方法。

請求項78

前記ビデオ表示ネットワークの少なくとも1つの構成オプションは、前記ビデオ表示ネットワークの前記ビデオ入力の前記構成の前記指示と共に動作可能ではないことを特徴とする請求項76に記載の方法。

請求項79

請求項71に記載の方法を実行するコンピュータ実行可能命令を備えることを特徴とするコンピュータ可読媒体。

請求項80

複数のビデオパスを含む構成可能なビデオ表示ネットワークの構成を管理する方法であって、少なくとも、前記ビデオ表示ネットワークの第1のビデオパス中のリソースでの構成を指示する部分ビデオ表示ネットワーク構成の指示を送ること、前記部分ビデオ表示ネットワーク構成の前記指示を送ったことに応答して、前記ビデオ表示ネットワークの第2のビデオパス中の前記ビデオ表示ネットワークのリソースでの可能な構成オプションであって、前記部分ビデオ表示ネットワーク構成の前記指示に基づき、選択されたときに前記部分ビデオ表示ネットワーク構成を無効化しないオプションに限定される前記リソースでの前記構成オプションの集合を受け取ること、および前記可能な構成オプションの少なくとも1つの指示を送ることを含むことを特徴とする方法。

請求項81

前記可能な構成オプションの前記少なくとも1つをコミットすることをさらに含むことを特徴とする請求項80に記載の方法。

請求項82

前記可能な構成オプションの前記少なくとも1つの前記指示を変更することをさらに含むことを特徴とする請求項80に記載の方法。

請求項83

請求項80に記載の方法を実行するコンピュータ実行可能命令を備えることを特徴とするコンピュータ可読媒体。

技術分野

0001

この技術分野は、ビデオ表示アダプタコンピュータビデオカードなど)の構成(configuration)に関する。

背景技術

0002

複数のモニタを使用するコンピュータシステムが普及してきている。例えば、いまや、1台のコンピュータがLCDパネル映写装置の両方を駆動することは普通である。さらに、コンピュータユーザは、いまや、自分のコンピュータを使用して、日常的にビデオ上映(DVDなど)を見る。そのような場合、コンピュータは、従来方式のモニタとテレビの両方を駆動することになる。

0003

需要応えて、ビデオアダプタハードウェア製造者らは、いまや、ビデオアダプタ上に複数の出力を含める。このように、ユーザは、単一出力でのケーブル切り換えてその出力を再構成することなく、より簡単にコンピュータを使用して所望のデバイスを駆動することができる。

発明が解決しようとする課題

0004

そのようなマルチモニタビデオアダプタは様々な機能を持つが、利用可能な構成は通常限られている。したがって、マルチモニタコンピュータシステムの構成に関連する改善された機能が求められている。

課題を解決するための手段

0005

複数の出力を備えるビデオ表示ネットワークを構成することは、可能な構成の絶対数およびリソース間構成相依存性のために、困難な問題となり得る。

0006

本明細書で説明する様々な技術を用いて、複数の出力を備えるビデオ表示ネットワークのリソースが構成され得る。例えば、暫定的構成(provisional configuration)がサポートされ得る。入力の構成は、出力の構成とは別に実行され得る。提供されるオプションを暫定的構成と共に動作可能(co-functional with)なものに限定するためにネットワークリソース間の相互依存性が考慮され得る。クライアントは、サービスによって提供される関数集合を使用して構成解空間(configuration solution space)を行き来する(トラバース:traverse)することができる。可能な構成解のトラバースはバックトラックを含み得る。例えば、バックトラックは、選択された構成オプションが別の所望の構成オプションを無効化するときに使用され得る。暫定的構成機能トランザクショナル構成手法をサポートすることができ、各リソースは別々に構成され得る。エニュメレーション関数(enumeration function)は、ネットワークリソース間の相互依存性に基づき、暫定的構成と共に動作可能なオプションだけを提供することができる。エニュメレーション(enumeration)されたオプションの妥当性は、ピンニング(ピン設定:pinning)後に保証され得る。

0007

関数(function)は、構成(暫定的構成と共に動作可能な構成など)をエニュメレーションし、リソースをピンニングすることを求める呼び出しを含むインタフェースグループ化され得る。構成を作成し、その構成をコミット(commit)するための他の呼び出しも設定され得る。関数は、構成へのトランザクショナル手法をサポートすることができる。

0008

構成目標に最も適合するトポロジが相互依存性を考慮して見出され得る。例えば、ターゲットが、それらに接続された表示装置上の優先モードをサポートしなければならないと仮定して、ソース上のサポートされるソースモード集合を最大にするように利用可能なコーデックを介してターゲットからソースまで経路指定する最善の方法が見出され得る。他の目標もサポートされ得る。優先順序付けもサポートされ得る。目標により適合するトポロジの追跡時に、エニュメレーションおよびピンニング機能が使用され得る。

0009

暫定的構成は、異なるリソースを構成することを求める別々のデバイスドライバインタフェース呼び出し(ある呼び出しはビデオ出力を、別の呼び出しはビデオ入力を求めるなど)を介して増分構成をサポートすることができる。呼び出しの間に、エニュメレーションは、残りのピンニングされていない(例えば、まだ暫定的に構成されていない)リソースでの共に動作可能なリソースを指示することができる。

0010

相互依存性を考慮する役割は、ビデオミニポートなどのビデオドライバに委ねる(例えば、それによって実行する)ことができる。クライアントは、様々な手法を使用して所望の構成を見出すことができる。所望の構成は、NP完全グラフ問題への解(solution)として扱われ得る。

0011

上記その他の特徴および利点は、添付の図面を参照して進められる開示の実施形態の以下の詳細な説明を読めばより明白になるであろう。

発明を実施するための最良の形態

0012

(実施例1)
(ビデオ表示ネットワークの例)
図1に、構成可能なビデオ表示ネットワーク100を示す。本明細書の各例のいずれかで説明する技術を用いてビデオ表示ネットワーク100が構成され得る。

0013

本明細書で説明する技術と共に使用するためのビデオ表示ネットワーク100は、1つまたは複数の入力110A〜110N(合計Σ個の入力、σなど)、2つ以上の出力120A〜120N(合計Τ個の入力、τなど)、および1つまたは複数のディジタルビデオ入力表現ビデオ出力信号変換器(digital-video-input-representation-to-video-output-signal converters)130A〜130N(合計Κ個の変換器、κなど)を備えることができる。

0014

入力110A〜110Nは、「ソース」(sources)または「サーフェス」(surfaces)とも呼ばれる。出力120A〜120Nは、「ターゲット」(targets)とも呼ばれる。ディジタルビデオ入力表現/ビデオ出力信号変換器は、「変換器」(converters)とも呼ばれる。

0015

入力、変換器、および出力以外に、ビデオ表示ネットワークは他のリソース140(ビデオメモリ帯域幅メモリ容量など)を含むこともできる。その他のリソース140は、入力、変換器、および出力によってビデオ表示機能を実現するのに使用され得る。

0016

ビデオ表示ネットワーク100はビデオ表示アダプタ(例えばビデオカード)などのハードウェアとして実施され得る。場合によっては、いくつかのリソースはアダプタの外部に存在し得る。

0017

例示的コンピュータシステムは、(例えばコンピュータシステムのアプリケーションによって書き込まれる)ディジタル形式の1つまたは複数のビデオビューを含むことができ、それらが入力110A〜110Nによって使用される。結果として複数の出力120A〜120Nから生じる信号を用いて複数のビデオ表示装置が駆動され得る。

0018

(実施例2)
代替のビデオ表示ネットワークの例)
図2に、別の構成可能なビデオ表示ネットワーク200を示す。本明細書の各例のいずれかで説明する技術を用いてビデオ表示ネットワーク200が構成され得る。

0019

この例では、単一のディジタルビデオ入力表現/ビデオ出力信号変換器に複数の入力が使用され得る(例えば、入力210Bおよび210Nが変換器230Nへの入力として使用される)。そのような構成は、第1の入力が1次コンテンツであり第2の入力がオーバーレイされるコンテンツである2つの入力を持つビデオ出力コーデックを用いることによって、1つのビデオ信号を別のビデオ信号上にオーバーレイする際に役立ち得る。そのような状況では、オーバーレイの位置およびサイズが、オーバーレイされるコンテンツを表すビデオ表示ネットワークソースでのビデオ表示ソースモードの一部として指定され得る。

0020

ビデオ表示ネットワークは、任意の数の入力、変換器、および複数の出力を備える他の多くの形を取ることができる。

0021

(実施例3)
(ビデオ表示ネットワークリソースの例)
本明細書の各例のいずれにおいても、リソースは、ビデオ表示ネットワーク入力(ソースまたはサーフェスなど)、ビデオ表示ネットワーク出力(ターゲットなど)、変換器、ビデオメモリ、帯域幅、メモリ容量などを含み得る。

0022

ビデオ表示ネットワークのトポロジはリソースと呼ばれることもある。例えば、リソースを構成することは、そのトポロジに関与する個々のリソースでの構成オプションの選択を考慮せずに単にあるトポロジを選択することを含み得る。

0023

(実施例4)
(ビデオ表示ネットワークにおけるビデオパスの例)
ビデオ表示ネットワーク100は複数のビデオパスを備えることができる。例えば、図1に示すように、1つのパスは入力110Aから、変換器130Aを介して出力120Aに至ることができる。別のパスは、入力110Aから変換器130Aを介して出力120Bに至ることができ、以下同様である。

0024

ビデオ表示ネットワーク100のトポロジは、その構成に従った異なるパスが存在するように構成され得る。例えば、変換器130Nの出力をビデオ出力120Nに送る代わりに、構成設定を変更することによってそれを異なるビデオ出力(120Bなど)に経路指定することもできる。

0025

(実施例5)
(ビデオ表示ネットワーク入力の例)
本明細書で説明する各例のいずれにおいても、ビデオ入力(または「ソース」)は、ディジタルサーフェスを提供するものなど、様々な形のいずれかを取ることができる。実際には、それらの入力は、様々なソースモードを使用するように構成され得る。そのようなモードは、幅、高さ、単位形式ラスタライズされたグラフィックスフィルタリング技法、1次サーフェスチェーン長さ(primary surface chain length)など、またはそれらの組合せといったパラメータを含み得る。

0026

(実施例6)
(ビデオ表示ネットワーク出力の例)
本明細書で説明する各例のいずれにおいてもビデオ出力(または「ターゲット」)は、出力信号を提供するものなど、様々な形のいずれかを取ることができる。出力に記述子を関連付けることができる。この記述子は、形式(DVI、HDMI、HD−15、BNC、Sビデオ、RF、RCAなど)およびHPD認識を指示することができる。出力は、ビデオ符号化タイプとも関連付けられ得る。さらに、ある出力は、別の出力と同期するようにも構成され得る。

0027

実際には、出力は、様々なターゲットモードを使用するように構成され得る。そのようなモードは、アクティブ領域(幅および高さなど)、総領域(幅および高さなど)、アクティブ領域変位(active region displacement)、画素符号化形式垂直帰線周波数水平帰線周波数、画素クロック速度、コンテンツ順序、原色、白色点基準、色空間変換マトリクスなど、またはそれらの組合せといったパラメータを含み得る。

0028

(実施例7)
(変換器の例)
本明細書の各例のいずれにおいても、ディジタルビデオ入力表現/ビデオ出力信号変換器は、ビデオコーデックやディジタル/アナログ変換器などの形をとることができる。いくつかの変換器は共用可能である。例えば、クローンミラーなど)モードでは、1つのコーデックがその信号を2つの出力に送ることができる。

0029

(実施例8)
(リソースの相互依存性の例)
理論的には、いくつのビデオ表示ネットワーク100の構成でも可能であるが、限られた数の理論的構成だけが動作可能な構成である。実際には、ビデオ表示ネットワーク100のリソースは、構成の相互依存性の影響を受ける。

0030

例えば、ビデオ入力110Aを特定のタイプのものとするように構成すると、大量のビデオメモリを消費し得る。そのような場合、別のビデオ入力(110Nなど)を同じタイプのものとするのに十分な残りのメモリがないことがある。例えば、それは、よりメモリ消費の少ないタイプにしか構成され得ないこともある。

0031

多種多様な他の相互依存性も存在する。例えば、変換器は、特定のビデオ入力タイプだけしか受け入れず、あるいは特定のビデオ出力タイプだけしか生成しないこともある。そのため、特定の入力が特定の変換器との組合せでは動作できない場合などもある。

0032

ゆえに、実際には、所望の構成の実施を阻む1つの障害は、それが動作しない可能性があることである。さらに、(様々な仕方相互接続され得る)複数のビデオ入力、複数の変換器、および複数のビデオ出力を備えるビデオ表示ネットワークでの無数の理論的に可能な組合せのうちからどの組合せが動作可能であるか決定することは容易ではない。

0033

図3は、ビデオ表示ネットワークでの構成可能なリソースの組合せを示すブロック図である。この例では、理論的に可能な構成300は、構成された第1のリソース302(ビデオ表示ネットワーク入力など)の1つまたは複数を、構成された第3のリソース306(ビデオ表示ネットワーク出力など)の1つまたは複数と接続された、構成された第2のリソース304(ビデオ表示ネットワーク変換器など)の1つまたは複数と接続することによって組み立てられ得る。結果として生じる理論的に可能な構成の集合310を、そこに含まれるリソースの構成に応じて、一部は動作可能であり、一部は動作不能である、可能な構成の膨大な集合体として示す。

0034

そのような膨大な解空間において最適な構成の解を見出すことは、3者間グラフマッチング問題(tri-partite graph matching problem)であり、それはNP完全問題である。したがって、リソースでの可能な構成の数が妥当な数を上回るとき、強引な手法を用いることは問題となる可能性がある。

0035

(実施例9)
(構成の例)
本明細書で説明する各例のいずれにおいても、リソースの構成は、ビデオ表示ネットワークのリソースの集合でのトポロジを選択することや、ネットワーク中の1つまたは複数のリソースでの構成オプション(モードなど)を選択すること(ネットワークが相互接続されるか否か)を含めて、多種多様な形を取ることができる。

0036

(実施例10)
構成方法の例)
図4に、本明細書で説明するビデオ表示ネットワークのいずれかで構成を実現するために使用され得る構成方法の一例400を示す。この方法も、本明細書で説明するその他の方法のいずれも、1つまたは複数のコンピュータ可読媒体上のコンピュータ実行可能命令によって実施され得る。

0037

410で、ビデオ表示ネットワークの第1のリソースの構成の指示が受け取られる。例えば、ビデオ表示ネットワークの特定のビデオ入力での構成が受け取られ得る。

0038

420で、第1のリソース構成の指示とは別に、ビデオ表示ネットワークの第2のリソースの構成の指示が受け取られる。例えば、ビデオ表示ネットワークの複数の出力の特定のビデオ出力の構成が受け取られ得る。

0039

次いで、430で、構成の指示に従ってビデオ表示ネットワークが構成される。

0040

実際には、ビデオ表示ネットワークの任意のリソース(例えば、2つの異なる入力、2つの異なる出力、2つの異なる変換器、1つの変換器および1つの出力など)についてその他の構成の指示が別個に受け取られ得る。

0041

別個に受け取られる指示は、プログラマチックインタフェースへの呼び出し(例えば、デバイスドライバインタフェース呼び出し)など、2つの異なる呼び出しを使用して受け取られるものを含み得る。例えば、1つのデバイスドライバへの2つの異なる呼び出しが使用され得る。あるいは、同じ呼び出しで2つの異なるパラメータが使用され得る。あるいは、リソースでの別個の値を指示する1つまたは複数のデータ構造が使用され得る。そのような呼び出しは、オペレーティングシステムなどのクライアントからもたらされ得る。

0042

そのようにして、ビデオ表示ネットワークのリソースは、独立に構成され得る。そのような構成は、ビデオ表示ネットワークのトポロジ(例えば、各リソースがどのように相互接続されるかなど)を指示することもできる。

0043

(実施例11)
(暫定的構成の例)
暫定的構成手法を用いれば、無数の可能な動作可能構成の中から望ましい構成を見出すことを含めて、様々な機能を円滑に行うことができる。図5に、図1に示すものなどのビデオ表示ネットワークのリソースの暫定的構成を指示する表500を示す。

0044

この例では、リソースσ1は暫定的に構成されている(例えば、ビデオ表示ネットワークのリソースの構成パラメータは格納されているが、その構成が完全に動作可能である必要はないなど)。そのような暫定的構成は、部分構成(例えば、ビデオ表示ネットワークリソースのうちの1つのリソースの構成や、ビデオ表示ネットワークでのトポロジの1つの指示など)の受け取りに基づくものとすることができる。暫定的構成ではすべてのリソースの構成が受け取られる必要はない。というのは、完全な構成パラメータセットを伴わない構成は、通常、まだ動作可能ではなく、暫定的構成は、「半動作可能」(semi-functional)ともいわれるからである。あるリソースの部分構成の提供は、そのリソースの「ピンニング」(pinning)とも呼ばれる。必要に応じて、その部分構成は除去され(または指定変更され)得る。部分構成の除去は、「アンピンニング」(ピン解除:unpinning)とも呼ばれる。

0045

(実施例12)
(トランザクショナル構成の例)
ビデオ表示ネットワークの構成を実現するトランザクショナル手法は、前述の暫定的構成に基づくものとすることができる。図6に、トランザクショナル手法によりビデオ表示ネットワーク630(図1に示すビデオ表示ネットワークなど)の構成を実現するための例示的な構成600を示す。

0046

構成例600では、クライアント610はビデオ表示ネットワークでの部分構成情報サーバ620に送ることができる。コミットを受け取ると、次いで、サーバ620は、部分構成の指示に従ってビデオ表示ネットワーク630を構成することができる。

0047

図7に、トランザクショナル手法によって構成を実行する方法の一例700を示す。710で、ビデオ表示ネットワークでの一連の部分構成が(例えば、サーバによってクライアントから)受け取られる。それらの部分構成を用いて暫定的動作可能構成が構築され得る。

0048

720で、暫定的動作可能構成がコミットされる。コミットすることによって、ビデオ表示ネットワーク(ネットワーク630など)において暫定的動作可能構成を実施することができる。

0049

暫定的動作可能構成は、実施されずに格納されることもある。例えば、構成は、ビデオ表示ネットワークのリソースを構成せずに(例えば、構成コミット指示が処理されるまで)格納され得る。

0050

(実施例13)
(共に動作可能な構成オプション決定の例)
ビデオ表示ネットワークのリソース間の相互依存性のために、一部の理論的に可能な構成オプションは、すでに組み立てられている暫定的動作可能構成に照らしてみると動作可能でないことがある。例えば、リソースσ1が(例えば図5に示すように)暫定的に構成されていると仮定すると、そのビデオ表示ネットワークの別のリソース(σΣなど)に利用可能な構成オプションは限定され得る。

0051

図8Aに、リソースσΣでの構成オプションの例示的な集合850を示す。別のリソースσ1が暫定的にどのように構成されているかに照らしてみると、そのうちの構成オプションの部分集合860だけが利用可能である(例えば、動作可能構成になるはずである)。そのような構成では、利用可能な構成オプションは、(暫定的動作可能構成などの)その他の構成オプションと「共に動作可能である」、または暫定的構成を「無効化しない」ものとして説明されることがある。

0052

あるリソースでの共に動作可能な構成オプションの集合860は、「エニュメレーション」とも呼ばれるプロセスにおいて暫定的構成時のフィードバックとして提供され得る。その場合、そのようなフィードバックを用いて、さらなる構成に関する決定(例えば、暫定的動作可能構成をさらに構築する、あるいは以前の暫定的動作可能構成に引き返すなど)が行われ得る。

0053

場合によっては、暫定的動作可能構成から部分構成を除去することが望ましいこともある。例えば、その暫定的動作可能構成が、まだ構成されていないリソースの所望の仕方での構成を許容しないことが発見され得る。したがって、本明細書で説明する構成方法のいずれも、暫定的動作可能構成から部分構成を除去する指示を受け取ることを含み、その指示(または、単に、古いものを指定変更する新しい部分構成)を受け取ったことに応答してその部分構成を除去することができる。このようにして、方法は、(例えば、その暫定的動作可能構成をコミットする前に)以前の暫定的動作可能構成に引き返す(例えば、リソースをアンピンニングする)ことができる。

0054

(実施例14)
(複数のリソースでの共に動作可能な構成オプションの決定の例)
実際には、複数のリソースでの共に動作可能な構成オプションを一度に決定することが望ましいことがある。例えば、所与のトポロジが部分構成の一部として選択された後で、選択されたトポロジと共に動作可能なビデオ表示ネットワークソースでの構成オプションをエニュメレーションすることが望ましいことがある。

0055

図8Bに、それぞれのリソース(σ1、σ2、σ3など)での共に動作可能な構成オプション880A、880B、880Cが指示され、複数のリソースでの構成オプションが一度に指示される構成を示す。図示の共に動作可能な構成オプションは、選択されたトポロジに関して共に動作可能である。これらのオプションは、相互には共に動作可能ではないことがある。例えば第1のリソースでの共に動作可能なオプションの1つを選択すると、別のリソースの共に動作可能なオプションの別の1つを無効化する(それと共に動作可能でなくなるなど)ことがある。

0056

この例では、元のオプション(870A、870B、870Cなど)の少なくとも一部は、選択されたトポロジに照らして利用可能で(例えば、共に動作可能で)はなくなる。オプションが他のリソース(ターゲットなど)にエニュメレーションされるときにも類似の構成が可能である。

0057

そのようなオプションは、ソフトウェア(ビデオドライバなど)によってエニュメレーションされ得る。本明細書で説明する各例のいずれにおいても、エニュメレーションされたオプションのいずれかが1つのリソースに選択された場合、そのような選択が、その他のリソースのいずれかでのオプションの少なくとも1つと共に動作可能になる(例えば、そのすべてを無効化しない)ことを保証することが望ましい。

0058

(実施例15)
(ピンニング時の共に動作可能なオプション無効化の例)
実際には、複数のリソースでのトポロジと共に動作可能な(例えば複数のリソースでの)構成オプションをエニュメレーションした後、そのような構成オプションは、部分的な暫定的構成に含み得る。しかしながら、第1のリソースでの構成オプションの1つをピンニングする(例えば暫定的に選択する)と、別のリソースでの別のオプションを無効化する(例えばそれと共に動作可能でなくなる)ことがある。

0059

図9A〜Cに、あるリソースでの構成オプションを選択することが別のリソースでの構成オプションを無効化する例を示す。1つのトポロジが選択され得る。図9Aに、トポロジを選択した後にエニュメレーションされた共に動作可能なオプション920A、920B、920C(それぞれ、例えば理論的に可能なオプション910A、910B、910Cの部分集合など)を示す。次いで、図9Bに、特定のオプション921が第1のリソースに選択されている(ピンニングされている)ことを示す。その結果、その他のリソースでの構成オプションの一部が利用できなくなる(それらが無効化される)ことがある。この例では、1つのオプションが920B’に現れなくなる。場合によっては、他のオプションも無効化される。あるいはおそらく、どれも無効化されないこともある。

0060

図9Cに、特定のオプション922が別のリソースに選択されている(例えばピンニングされている)ことを示す。その結果、残りのリソースでの構成オプションの一部が利用できなくなることがある。この例では、1つのオプションが920C”に現れなくなる。場合によっては、第1のリソースでのオプションの一部も無効化され得る(例えば、集合920A’(図示せず)を生じるなど)。しかしながら、実際には、1つのリソースがピンニングされた(例えば1つの構成オプションがそのリソースに選択された)後、ピンニングされた構成オプションは、エニュメレーションされた構成オプションの別の1つを選択することによって無効化されない。

0061

図9A〜9Cに示す現象のため、複数のリソースでエニュメレーションを行うときには、あるリソースをピンニングした後に無効化されるオプションの有無をチェックすることが必要になり得る。それは、再エニュメレーションによって実行され得る。

0062

(実施例16)
(別のピンニングシナリオ時の共に動作可能なオプション無効化の例)
図10A〜Cに、あるリソースの構成オプションを選択することが別のリソースの構成オプションを無効化する別の例を示す。1つのトポロジが選択され得る。図10Aに、トポロジを選択した後にエニュメレーションされた共に動作可能なオプション1020A、1020B、1020C(それぞれ、例えば理論的に可能なオプション1010A、1010B、1010Cの部分集合など)を示す。次いで、図10Bに、特定のオプション1021が第1のリソースに選択されている(例えばピンニングされている)ことを示す。その結果、その他のリソースでの構成オプションの一部が利用できなくなる(例えばそれらが無効化される)ことがある。この例では、1つのオプションが1020B’に現れなくなる。場合によっては、他のオプションも無効化される。あるいはおそらく、どれも無効化されないこともある。

0063

図10Cに、特定のオプション1022が別のリソースに選択されている(例えばピンニングされている)ことを示す。その結果、残りのリソースでの構成オプションの一部が利用できなくなることがある。この例では、1つのオプションが1020C”に現れなくなる。場合によっては、第1のリソースでのオプションの一部も無効化され得る(集合1020A’(図示せず)を生じるなど)。しかしながら、実際には、あるリソースがピンニングされた(例えば構成オプションがそのリソースに選択された)後、そのピンニングされた構成オプションは、エニュメレーションされた構成オプションの別の1つを選択することによって無効化されない。他の多くのシナリオが可能である。

0064

(実施例17)
(フィードバックを用いたトランザクショナル手法の例)
図11に、フィードバックを用いたトランザクショナル手法によってビデオ表示ネットワーク1130(図1に示すビデオ表示ネットワークなど)の構成を実現する構成例1100を示す。

0065

この構成例1100では、クライアント1110は、サーバ1120にビデオ表示ネットワークでの部分構成情報を送ることができる。部分構成情報は、そのビデオ表示ネットワークのリソースのいずれのものとすることもできる。部分構成は、そのビデオ表示ネットワークの1つのトポロジを指示することができる。

0066

構成情報(例えば、第1のリソースでの部分構成)を受け取った後で、(例えば第2のリソースでの)共に動作可能な構成オプションが提供され得る。これらの共に動作可能な構成オプションは、その部分構成とは異なるリソースでのものや、異なるパスにあるリソースでのものなどとすることができる。共に動作可能なオプションは、構成情報に基づいて制限され得る(例えば、少なくとも1つの共に動作可能ではないオプションが除去されるなど)。本明細書で説明するように、これらのオプションはエニュメレーションによって提供することができ、エニュメレーションは、複数のリソースについて一度に行うことができる。

0067

その他のリソースでの共に動作可能な構成オプションは、そのビデオ表示ネットワークのリソース間の相互依存性に基づくものとすることができる。クライアントは、共に動作可能な構成オプションの中から選択し、暫定的動作可能構成を構築し続けることができる。

0068

コミットを受け取ると、サーバ1120は、次いで、部分構成の指示にしたがってビデオ表示ネットワーク1130を構成することができる。

0069

図12に、サーバから見た、フィードバックを用いて構成を実行する方法の一例1200を示す。この方法は、図11に示す構成によって動作し得る。1210で、部分ビデオ表示ネットワーク構成の指示が受け取られる。例えば、この部分構成は、ビデオ表示ネットワークの第1のリソースでの構成を指示することができる。

0070

1220で、(先に図11Aまたは11Bについて説明したように)共に動作可能な構成オプションが指示される。代替として、各オプションが指示される前に指示されるオプションから除去されるはずの1つまたは複数の共に動作可能ではない構成オプションを除いて、すべての構成オプションを指示することもできる。この方法は、その構成をビデオ表示ネットワークにコミットするためのコミット(図示せず)を含むこともできる。

0071

図13に、クライアントから見た、フィードバックを用いた構成を実行する例示的な方法1300を示す。この方法は、図11に示す構成によって動作し得る。図1310で、部分ビデオ表示ネットワーク構成の指示が送られる。例えば、この部分構成は、そのビデオ表示ネットワークの第1のリソースでの構成を指示することができる。

0072

1320で、(先に図11Aまたは11Bについて説明したように)共に動作可能な構成オプションの集合が指示される。この場合もやはり、この方法は、その構成をビデオ表示ネットワークにコミットするためのコミット(図示せず)を含むこともできる。

0073

(実施例18)
(ビデオドライバにおけるサーバ実装の例)
共に動作可能な構成オプションを決定することは、ビデオドライバに委ねられ得る。本明細書で説明する各例のいずれにおいても、サーバによって実行されるアクションは、ビデオドライバ(ビデオミニポートなど)によって実行され得る。

0074

図14に、フィードバックを用いた暫定的構成が実施され得るアーキテクチャの一例1400を示す。この例は、クライアント1410(例えば、グラフィックスサブシステムといったオペレーティングシステム、アプリケーションなど)、相互依存論理1425を伴うドライバ1420(カーネルモードで動作するデバイス固有のビデオドライバなど)、および複数の表示装置1440A〜1440Nにビデオ出力を提供するビデオアダプタ1430を含む。

0075

ビデオドライバ1420は、本明細書で説明する各例のいずれにおいてもサーバとして働くことができる。相互依存論理1425は、部分構成を受け入れる関数、共に動作可能な構成オプションをエニュメレーションする関数、および構成をコミットする関数を含み得る。

0076

このように、表示アダプタのハードウェアベンダは、望ましいビデオ表示ネットワーク構成を決定するのに役立つ適当な相互依存論理1425を組み込んだ適当なドライバ1420を開発することができる。

0077

(実施例19)
(利点の例)
実施例18で論じたように、ビデオドライバに相互依存論理を実装すると、一定の制限事項のセットを用いて所与のハードウェア実装形態での適用範囲を狭めることによって、適当な構成の決定を簡単にすることができる。この論理が、そうではなく、オペレーティングシステムにあった場合、そのタスクはより複雑になり得る(例えば、完全に包括的であり、可能なあらゆる相互依存性をサポートすることが必要になる)。

0078

(実施例20)
(ビデオ表示ネットワーク構成の例)
図15に、部分構成によるビデオ表示ネットワークの構成方法の一例1500を示す。1504で、ビデオ表示ネットワークでのトポロジが選択される。1506で、ソースでの構成オプションがエニュメレーションされ、ピンニングされる。1508で、ターゲットの構成オプションがエニュメレーションされ、ピンニングされる。コミット(図示せず)を用いてその構成が実施され得る。

0079

本明細書の各例のいずれにおいても、ソースはターゲットの前にピンニングされるものと示されるが、常にそうする必要はない。例えば、ターゲットはソースの前にピンニングされ得る。

0080

(実施例21)
(動作可能な構成に収束する解空間のトラバースの例)
図16に、可能な動作可能複数ビデオ出力構成の組合せのグラフをトラバースする例示的方法1600の流れ図を示す。そのような方法は、サーバ(ビデオドライバ1420など)と対話するクライアント(クライアント1410など)によって使用され得る。この例ではビデオミニポートを示すが、別のビデオドライバ(ビデオドライバ1420など)も使用され得る。

0081

この例は、固定されたトポロジの動作可能ビデオ表示ネットワーク構成のサーチも含むが、他の例は、そのサーチの間にトポロジを変更するオプションを含むこともできる。例えば、トポロジは、ビデオ表示ネットワークソース上のビデオ表示ソースモードのピンニングが、別のビデオ表示ネットワークソースでの少なくとも1つの他のビデオ表示ソースモードを無効化した後で、変更されるように求められることがある。

0082

1602で、所望のビデオ表示ネットワークトポロジが選択されている。

0083

1604で、所望のビデオ表示ネットワークトポロジが与えられたとすると、少なくとも1つのビデオ表示ネットワークターゲット(すべてのターゲットなど)上で少なくとも1つのモニタサポートビデオ信号モード(すべてのモードなど)をサポートするビデオ表示ネットワーク構成(トポロジなど)を求めて、ビデオミニポートが照会される。

0084

1606で、獲得されたビデオ表示ネットワーク構成(トポロジなど)中の少なくとも1つのビデオ表示ソース(すべてのソースなど)上の利用可能なビデオ表示ソースモードの集合がエニュメレーションされる。

0085

1608で、ビデオ表示ソースモードが少なくとも1つのビデオ表示ネットワークソース(すべてのソースなど)上にピンニングされる。

0086

1610で、ビデオ表示ソースモードがそこにピンニングされる次のビデオ表示ネットワークソースがあるかどうか判定される。ピンニングされる次のビデオ表示ネットワークソースがある場合、プロセスは1612に進む。そうでない場合、プロセスは1614に進む。

0087

1612で、以前にエニュメレーションされたビデオ表示ソースモードのいずれかが無効化されているかどうか判定される。そうである場合、プロセスは1606に戻る。そうでない場合、プロセスは1608に戻る。この例では、別のビデオ表示ソースモードの選択に基づいて以前にエニュメレーションされたビデオ表示ソースモードの少なくとも1つが無効化され得るが、ビデオ表示ソースモードのすべてがそのような選択によって無効化され得るとは限らない。

0088

1614で、獲得されたビデオ表示ネットワーク構成中の少なくとも1つのビデオ表示ターゲット(すべてのターゲットなど)上の利用可能なビデオ表示ターゲットモードの集合がエニュメレーションされる。

0089

1616で、ビデオ表示ターゲットモードが少なくとも1つのビデオ表示ネットワークターゲット(すべてのターゲットなど)上にピンニングされる。

0090

1618で、ビデオ表示ターゲットモードがそこにピンニングされる次のビデオ表示ネットワークターゲットがあるかどうか判定される。ピンニングされる次のビデオ表示ネットワークターゲットがある場合、プロセスは1620に進む。そうでない場合、プロセスは1622に進む。

0091

1620で、以前にエニュメレーションされたビデオ表示ターゲットモードのいずれかが無効化されているかどうか判定される。そうである場合、プロセスは1614に戻る。そうでない場合、プロセスは1616に戻る。

0092

1622で、結果として生じる動作可能なビデオ表示ネットワーク構成の組合せがコミットされる。

0093

(実施例22)
(動作可能構成に収束する解空間トラバースの第1の詳細な例)
図17A〜Bに、可能な動作可能複数ビデオ出力構成の組合せのグラフをトラバースする方法の第1の詳細な例1700の流れ図を示す。そのような方法は、サーバ(ビデオドライバ1420など)と対話するクライアント(クライアント1410など)によって使用され得る。この例はビデオミニポートを示すが、別のビデオドライバ(ビデオドライバ1420など)も使用され得る。

0094

1702で、初期のビデオ表示ネットワークトポロジが提供されている。

0095

1704で、初期のビデオ表示ネットワークトポロジが与えられたとすると、少なくとも1つのビデオ表示ネットワークターゲット(すべてのターゲットなど)上の少なくとも1つのモニタサポートビデオ信号モード(すべてのモードなど)をサポートするビデオ表示ネットワーク構成(トポロジなど)を求めて、ビデオミニポートが照会される。

0096

1706で、1704の照会によって指定されたビデオ表示ネットワークトポロジがサポートされるかどうかについて判定される。指定されたビデオ表示ネットワークトポロジがサポートされる場合、プロセスは1708に進む。そうでない場合、プロセスは1710に進む。

0097

1708で、現在のビデオ表示ネットワークトポロジが最も望ましいビデオ表示ネットワークトポロジであるかどうかについて判定される。そうである場合、プロセスは1712に進む。そうでない場合、プロセスは1714に進む。

0098

1710で、少なくとも1つの他の初期のビデオ表示ネットワークトポロジが存在するかどうかについて判定される。そうである場合、プロセスは1704に戻る。そうでない場合、プロセスは1790で終了する。というのは、所望のサーチパラメータを伴う動作可能構成の組合せへの収束がないからである。

0099

1712で、獲得されたビデオ表示ネットワーク構成中の少なくとも1つのビデオ表示ネットワークソース(すべてのソースなど)上の利用可能なビデオ表示ソースモードの集合がエニュメレーションされる。次いでプロセスは1722に進む。

0100

1714で、ビデオ表示ネットワークトポロジは、ビデオ表示パス(マルチパスなど)の付加または除去によって新しい有効なビデオ表示ネットワークトポロジに調整される。次いでプロセスは1716に進み、そこで、その新しい有効なビデオ表示ネットワークトポロジがサポートされるかどうかについて判定される。そうである場合、プロセスは1708に戻る。そうでない場合、プロセスは1718に進む。

0101

1718で、有効なビデオ表示ネットワークトポロジによる増分変更によって獲得され得る少なくとも1つの他の所望のビデオ表示ネットワークトポロジがあるかどうかについて判定される。ある場合、プロセスは1720に進む。ない場合、プロセスは1790で終了する。

0102

1720で、別の所望のビデオ表示ネットワークトポロジが、ヌルトポロジによってのみ獲得可能(例えば、トポロジがそれ以上調整され得ないなど)であるかどうかについて判定される。そうである場合、プロセスは1704に戻る。そうでない場合、プロセスは1714に戻る。

0103

1722で、エニュメレーションされたビデオ表示ソースモードのいずれかがそれぞれのビデオ表示ネットワークソースに求められるモードを欠いているかどうかについて判定される。そうである場合、プロセスは1724に進む。そうでない場合、プロセスは1732に進む。

0104

1724で、任意のビデオ表示ネットワークソースがピンニングされたビデオ表示ソースモードを持つかどうかについて判定される。そうである場合、プロセスは1728に進み、そこでピンニングされたビデオ表示ソースモードがアンピンニングされ、次いで1712に戻る。そうでない場合、プロセスは1730に進む。1728におけるビデオ表示ソースモードアンピンニングは、ビデオ表示ネットワークソースの重要度に従って順序付けされ得る(例えば、ソースモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。

0105

1730で、ビデオ表示ネットワークソースに利用可能な少なくとも1つの他のビデオ表示ソースモードがあるかどうかについて判定される。ある場合、プロセスは1732に戻り、そこでビデオ表示ソースモードが少なくとも1つのビデオ表示ネットワークソース上に(例えばすべてのソースについて)ピンニングされ、次いで1734に進む。ない場合、プロセスは1790で終了する。1732におけるビデオ表示ソースモードピンニングは、ビデオ表示ネットワークソースの重要度に従って順序付けされ得る(例えば、ソースモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。

0106

1734で、ビデオ表示ソースモードがそこにピンニングされる次のビデオ表示ネットワークソースがあるかどうか判定される。ピンニングされる次のビデオ表示ネットワークソースがある場合、プロセスは1736に進む。そうでない場合、プロセスは1738に進む。

0107

1736で、以前にエニュメレーションされたビデオ表示ソースモードのいずれかが無効化されているかどうか判定される。そうである場合、プロセスは1712に戻る。そうでない場合、プロセスは1732に戻る。

0108

1738で、獲得されたビデオ表示ネットワーク構成中の少なくとも1つのビデオ表示ネットワークターゲット(すべてのターゲットなど)上の利用可能なビデオ表示ターゲットモードの集合がエニュメレーションされる。

0109

1742で、エニュメレーションされたビデオ表示ターゲットモードのいずれかが、それぞれのビデオ表示ネットワークターゲットに求められるモードを欠いているかどうかについて判定される。そうである場合、プロセスは1744に進む。そうでない場合、プロセスは1752に進む。

0110

1744で、任意のビデオ表示ネットワークターゲットがその上にピンニングされたビデオ表示ターゲットモードを持つかどうかについて判定される。そうである場合、プロセスは1748に進み、そこでピンニングされたビデオ表示ターゲットモードがアンピンニングされ、次いで1738に戻る。そうでない場合、プロセスは1750に進む。1748におけるビデオ表示ターゲットモードのアンピンニングは、ビデオ表示ネットワークターゲットの重要度に従って順序付けされ得る(例えば、ターゲットモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。

0111

1750で、ビデオ表示ネットワークターゲットに利用可能な少なくとも1つの他のビデオ表示ターゲットモードがあるかどうかについて判定される。ある場合、プロセスは1752に戻り、そこでビデオ表示ターゲットモードが、少なくとも1つのビデオ表示ネットワークターゲット上に(例えばすべてのターゲットについて)ピンニングされ、次いで1754に進む。ない場合、プロセスは1790で終了する。1752におけるビデオ表示ターゲットモードのピンニングは、ビデオ表示ネットワークターゲットの重要度に従って順序付けされ得る(例えば、ターゲットモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。

0112

1754で、ビデオ表示ターゲットモードがそこにピンニングされる次のビデオ表示ネットワークターゲットがあるかどうか判定される。ピンニングされる次のビデオ表示ネットワークターゲットがある場合、プロセスは1756に進む。そうでない場合、プロセスは1780に進む。

0113

1756で、以前にエニュメレーションされたビデオ表示ターゲットモードのいずれかが無効化されているかどうか判定される。そうである場合、プロセスは1738に戻る。そうでない場合、プロセスは1752に戻る。

0114

1780で、結果として生じる動作可能なビデオ表示ネットワーク構成の組合せがコミットされる。

0115

(実施例23)
(動作可能構成に収束する解空間のトラバースの第2の詳細な例)
図18A〜Cに、可能な動作可能複数ビデオ出力構成の組合せのグラフをトラバースする方法の第2の詳細な例1800の流れ図を示す。そのような方法は、サーバ(ビデオドライバ1420など)と対話するクライアント(クライアント1410など)によって使用され得る。この例にはビデオミニポートを示すが、別のビデオドライバ(ビデオドライバ1420など)も使用され得る。

0116

1802で、初期のビデオ表示ネットワークトポロジが提供されている。

0117

1804で、初期のビデオ表示ネットワークトポロジが与えられたとすると、少なくとも1つのビデオ表示ネットワークターゲット(すべてのターゲットなど)上で少なくとも1つのモニタサポートビデオ信号モード(すべてのモードなど)をサポートするビデオ表示ネットワーク構成(トポロジなど)を求めて、ビデオミニポートが照会される。

0118

1806で、1804の照会によって指定されたビデオ表示ネットワークトポロジがサポートされるかどうかについて判定される。指定されたビデオ表示ネットワークトポロジがサポートされる場合、プロセスは1808に進む。そうでない場合、プロセスは1810に進む。

0119

1808で、現在のビデオ表示ネットワークトポロジが最も望ましいビデオ表示ネットワークトポロジであるかどうかについて判定される。そうである場合、プロセスは1812に進む。そうでない場合、プロセスは1814に進む。

0120

1810で、少なくとも1つの他の初期のビデオ表示ネットワークトポロジが存在するかどうかについて判定される。そうである場合、プロセスは1804に戻る。そうでない場合、プロセスは1890で終了する。というのは、所望のサーチパラメータを伴う動作可能構成の組合せへの収束がないからである。

0121

1812で、獲得されたビデオ表示ネットワーク構成中の少なくとも1つのビデオ表示ネットワークソース(すべてのソースなど)上の利用可能なビデオ表示ソースモードの集合がエニュメレーションされる。次いでプロセスは1822に進む。

0122

1814で、ビデオ表示ネットワークトポロジは、ビデオ表示パス(マルチパスなど)の付加または除去によって新しい有効なビデオ表示ネットワークトポロジに調整される。次いでプロセスは1816に進み、そこでその新しい有効なビデオ表示ネットワークトポロジがサポートされるかどうかについて判定される。そうである場合、プロセスは1808に戻る。そうでない場合、プロセスは1818に進む。

0123

1818で、有効なビデオ表示ネットワークトポロジによる増分変更によって獲得され得る少なくとも1つの他の所望のビデオ表示ネットワークトポロジがあるかどうかについて判定される。ある場合、プロセスは1820に進む。ない場合、プロセスは1890で終了する。

0124

1820で、別の所望のビデオ表示ネットワークトポロジが、ヌルトポロジによってのみ獲得可能(例えば、トポロジがそれ以上調整され得ないなど)であるかどうかについて判定される。そうである場合、プロセスは1804に戻る。そうでない場合、プロセスは1814に戻る。

0125

1822で、エニュメレーションされたビデオ表示ソースモードのいずれかがそれぞれのビデオ表示ネットワークソースに求められるモードを欠いているかどうかについて判定される。そうである場合、プロセスは1824に進む。そうでない場合、プロセスは1832に進む。

0126

1824で、任意のビデオ表示ネットワークソースがピンニングされたビデオ表示ソースモードを持つかどうかについて判定される。そうである場合、プロセスは1828に進み、そこでピンニングされたビデオ表示ソースモードがアンピンニングされ、次いで1812に戻る。そうでない場合、プロセスは1830に進む。1828におけるビデオ表示ソースモードアンピンニングは、ビデオ表示ネットワークソースの重要度に従って順序付けされ得る(例えば、ソースモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。

0127

1830で、ビデオ表示ネットワークソースに利用可能な少なくとも1つの他のビデオ表示ソースモードがあるかどうかについて判定される。ある場合、プロセスは1832に戻り、そこでビデオ表示ソースモードが少なくとも1つのビデオ表示ネットワークソース上で(例えばすべてのソースについて)ピンニングされ、次いで1834に進む。ない場合、プロセスは1831に進む。1832におけるビデオ表示ソースモードのピンニングは、ビデオ表示ネットワークソースの重要度に従って順序付けされ得る(例えば、ソースモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。

0128

1831で、他の任意の所望のビデオ表示ネットワークトポロジが与えられたとすると、ビデオ表示ネットワークソースに利用可能な少なくとも1つの他のビデオ表示ソースモードがあるかどうかについて判定される。ある場合、プロセスは1818に戻る。ない場合、プロセスは1890で終了する。

0129

1834で、ビデオ表示ソースモードがそこにピンニングされる次のビデオ表示ネットワークソースがあるかどうか判定される。ピンニングされる次のビデオ表示ネットワークソースがある場合、プロセスは1836に進む。そうでない場合、プロセスは1838に進む。

0130

1836で、以前にエニュメレーションされたビデオ表示ソースモードのいずれかが無効化されているかどうか判定される。そうである場合、プロセスは1812に戻る。そうでない場合、プロセスは1832に戻る。

0131

1838で、獲得されたビデオ表示ネットワーク構成中の少なくとも1つのビデオ表示ネットワークターゲット(すべてのターゲットなど)上の利用可能なビデオ表示ターゲットモードの集合がエニュメレーションされる。

0132

1842で、エニュメレーションされたビデオ表示ターゲットモードのいずれかが、それぞれのビデオ表示ネットワークターゲットに求められるモードを欠いているかどうかについて判定される。そうである場合、プロセスは1844に進む。そうでない場合、プロセスは1852に進む。

0133

1844で、任意のビデオ表示ネットワークターゲットがその上にピンニングされたビデオ表示ターゲットモードを持つかどうかについて判定される。そうである場合、プロセスは1848に進み、そこでピンニングされたビデオ表示ターゲットモードがアンピンニングされ、次いで1838に戻る。そうでない場合、プロセスは1850に進む。1848におけるビデオ表示ターゲットモードのアンピンニングは、ビデオ表示ネットワークターゲットの重要度に従って順序付けされ得る(例えば、ターゲットモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。

0134

1850で、現在のビデオ表示ネットワークトポロジおよびビデオ表示ネットワークソース上にピンニングされたビデオ表示ソースモードが与えられたとすると、ビデオ表示ネットワークターゲットに利用可能な少なくとも1つの他のビデオ表示ターゲットモードがあるかどうかについて判定される。ある場合、プロセスは1852に戻り、そこでビデオ表示ターゲットモードが、少なくとも1つのビデオ表示ネットワークターゲット上に(例えばすべてのターゲットについて)ピンニングされ、次いで1854に進む。そうでない場合、プロセスは1856に進む。1852におけるビデオ表示ターゲットモードのピンニングは、ビデオ表示ネットワークターゲットの重要度に従って順序付けされ得る(例えば、ターゲットモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。

0135

1854で、ビデオ表示ターゲットモードがそこにピンニングされる次のビデオ表示ネットワークターゲットがあるかどうか判定される。ピンニングされる次のビデオ表示ネットワークターゲットがある場合、プロセスは1868に進む。そうでない場合、プロセスは1880に進む。

0136

1856で、何がより重要であるとみなされるか、すなわち、現在のビデオ表示ネットワークトポロジか、それとも現在ビデオ表示ネットワークソース上にピンニングされているビデオ表示ソースモードかについて判定される。現在ビデオ表示ネットワークソース上にピンニングされているビデオ表示ソースモードがより重要であるとみなされる場合、プロセスは1862に進む。現在のビデオ表示ネットワークトポロジがより重要であるとみなされる場合、プロセスは1864に進む。

0137

1862で、少なくとも1つの他の所望のビデオ表示ネットワークトポロジがあるかどうか判定される。ある場合、プロセスは1818に戻る。ない場合、プロセスは1866に進む。

0138

1864で、現在のビデオ表示ネットワークトポロジが与えられたとすると、少なくとも1つの他の所望のビデオ表示ソースモードがあるかどうかについて判定される。ある場合、プロセスは1828に戻る。ない場合、プロセスは1862に進む。

0139

1866で、少なくとも1つのビデオ表示ネットワークソース上で利用可能な少なくとも1つの他の望ましいビデオ表示ソースモードがあるかどうかについて判定される。ある場合、プロセスは1864に進む。ない場合、プロセスは1890で終了する。

0140

1868で、以前にエニュメレーションされたビデオ表示ターゲットモードのいずれかが無効化されているかどうかが判定される。そうである場合、プロセスは1838に戻る。そうでない場合、プロセスは1852に戻る。

0141

1880で、結果として生じる動作可能なビデオ表示ネットワーク構成の組合せがコミットされる。

0142

(実施例24)
目標構成を実現する方法の例)
図19に、(例えば、モニタによってサポートされるビデオモードの点で述べられている)目標に照らしてビデオ表示ネットワークのためのトポロジを決定する例示的な方法1900を示す流れ図を示す。

0143

1902で、プロセスは初期トポロジを用いて開始する。1906で、目標により適合するように(例えば、目標により適合する暫定的動作可能構成を生成することによって)初期トポロジが変更される。そのような変更は、ビデオ表示ネットワークのリソース間の相互依存性を考慮に入れることができる。

0144

可能な目標はビデオモードまたは他の構成オプションに関連し得る。例えば、1つの目標は、ビデオ表示ネットワークターゲット上のビデオモード集合が、それらに接続されたモニタすべてでの優先モードをサポートしなければならないものと仮定して、そのビデオ表示ネットワークソース上のサポートされるグラフィックスビデオ表示ネットワークソースモード集合を最大にするように、利用可能なビデオ出力コーデックを介して、ビデオ表示ネットワークにおいてビデオ表示ネットワークターゲットからビデオ表示ネットワークソースまで経路指定する最善の方法とすることができる。あるいは、そのような目標が達成され得ない場合、目標は、ビデオ表示ネットワークターゲット上のビデオモード集合が、指定された優先順位でそれらに接続されたモニタ上の優先モードをサポートしなければならないものと仮定して、そのビデオ表示ネットワークソース上のサポートされるグラフィックスビデオ表示ネットワークソースモード集合を最大にするように、利用可能なビデオ出力コーデックを介して、ビデオ表示ネットワークにおいてビデオ表示ネットワークターゲットからビデオ表示ネットワークソースまで経路指定する最善の方法とすることができる。あるいは、そのような目標が達成されえない場合、目標は、ビデオ表示ネットワークターゲット上のビデオモード集合が、それらに接続されたモニタによってサポートされるビデオモードの少なくとも1つをサポートしなければならないものと仮定して、そのビデオ表示ネットワークソース上でのサポートされるグラフィックスビデオ表示ネットワークソースモード集合を最大にするように、利用可能なビデオ出力コーデックを介して、ビデオ表示ネットワークにおいてビデオ表示ネットワークターゲットからビデオ表示ネットワークソースまで経路指定する最善の方法とすることができる。

0145

必要に応じて、第1の目標が試みられ得る。次いで、第1の目標が達成され得ない場合、第2の目標が試みられ、以下同様である。目標は「最適な」構成として説明されることもある。

0146

(実施例25)
(その他の目標の例)
前述の目標以外に、他の構成目標が求められることもあり、それらは本明細書で説明する技術によって円滑に行われ得る。例えば、以下を、別々に、または何らかの組合せとして達成することが重要とされ得る。

0147

1.レンダリングターゲット上での空間解像度を最大にする
2.レンダリングターゲット上での色解像度を最大にする
3.レンダリングターゲットの1つでの空間解像度と色解像度両方を最大にする(医療用画像処理アプリケーションコンピュータ援用設計などの場合)
4.ビデオストリーム同期問題を回避するために、リアルタイムテレビ放送表示を含むビューを表示するモニタ上のリフレッシュ速度マッチさせる。そのような同期問題は、アーチファクトや、フレーム落ちグリッチなど)や、その両方として現れる。

0148

5.1つまたは複数のGPUが同じビデオメモリバスをめぐって競合していると想定して、3D性能を高めるために、許容可能な最低のレンダリングモードでビューを駆動することによってビデオメモリ帯域幅をできるだけ温存する
そのような目標は、単純なビデオドライバの範囲を超えているため、そのような目標は、ビデオドライバの外部に(例えば、シェル、グラフィックスサブシステム、DXランタイムなどといった、オペレーティングシステムの上位層に)意思決定能力を配置することによって達成され得る。

0149

可能なレンダリングモードの絶対量の多さにより、ドライバはとてもそれらをエニュメレーションすることができない。構成目標を達成するために、(本明細書の各例で説明するような)照会またはトラバース手法を用いることができる。

0150

さらに別の目標が以下のように分類され得る。

0151

1.画像品質のために最適化されたモードでは、画像を可能な限り最適に表示することに最も配慮する。

0152

2.性能のために最適化されたモードでは、ビデオメモリバスを過負荷状態にしないことに最も配慮する(例えば、各コーデックがビデオメモリから読み取る必要があり、ゆえに、ビデオメモリ帯域幅を消費するなど)。

0153

3.電力消費のために最適化されたモードでは、それが2つのモニタのどちらかで優先モードを駆動することができない場合でさえ、最も電力消費の少ないコーデックを選択し、他のすべてのコーデックをオフにしようとすることがある。

0154

通常、任意の構成における暗黙的目標は、ビデオ出力が、それぞれのモニタによってサポートされる少なくとも1つのモードをサポートすることである。性能または電力管理考慮事項によって指定変更されない限り、通常、別の目標は、ビデオ出力が、そのそれぞれのモニタの優先モードをサポートしようとすることであり、その場合、モニタの重要度には、構成要求の一部としてクライアント(オペレーティングシステムなど)によって優先順位が付けられる。

0155

例えば、複数のビュー(クローンビューなど)で同じレンダリングターゲットを表示するために、ビデオドライバは、できるだけ多くのモニタをそれらの優先モードで実行させようとし、そうしないことは、要求された出力の1つが駆動され得ないことを意味するときにだけコーデックを共用するべきである。

0156

例えば、3つのビデオ出力と、2つだけのコーデックが関与する場合、モニタの少なくとも1つがその優先モードで実行されていない場合でさえも、3つの出力すべてをサポートするよう求められたときにコーデックを共用することが容認され得る。しかしながら、出力の2つだけをサポートするよう求められたとき、コーデックを共用せずに優先モードが両方のモニタ上で達成され得る場合には、コーデックを共用すべきではない。

0157

(実施例26)
(電力消費に関連する目標の例)
いくつかのシナリオでは、電力消費に関する目標を指定することが望ましいことがある。例えば、節電状態にはより小さい電力消費を伴う構成が優先され、全出力状態のときには、性能および/または画像品質が優先され得る。本明細書の各例のいずれにおいても、そのような目標が実施され得る。

0158

(実施例27)
(デバイスドライバインタフェースの例)
実施例45に、一連の関数(EnumerateAvailVidPNTargets、ConstrainNodesOnVidPNTargetsなど)およびその目的が列記されている。そのような関数は、ビデオデバイスドライバ(ビデオミニポートなど)によってサポートされるデバイスドライバインタフェースに含み得る。これらの関数は、クライアントによって、様々なアルゴリズムサーチアルゴリズムなど)を用いて、増分的にビデオ表示ネットワークを構築するのに使用され得る。

0159

(実施例28)
構成管理のための関数の例)
実施例45に、構成管理のための一連の関数が詳述されている。例えば、ある関数(GetActiveVidPNTopologyなど)はビデオ表示ネットワーク構成(トポロジなど)を識別する。別の関数(CommitVidPNImplなど)は、ビデオ表示ネットワーク構成をコミットする。別の関数(EnumCurrentlyAvailVidPNSourceModeSetsなど)は、所望のビデオ表示ネットワーク構成が与えられたとして、利用可能なビデオ表示ソースモードをエニュメレーションする。別の関数(EnumCurrentlyAvailVidPNTargetModeSetsなど)は、所望のビデオ表示ネットワーク構成が与えられたとして、利用可能なビデオ表示ターゲットモードをエニュメレーションする。別の関数(PinModeOnVidPNSourceなど)は、ビデオ表示ネットワークソース上にビデオ表示ソースモードをピンニングする。別の関数(PinModeOnVidPNTargetなど)は、ビデオ表示ネットワークターゲット上にビデオ表示ターゲットモードをピンニングする。別の関数(UnpinModeOnVidPNSourceなど)は、ビデオ表示ネットワークソース上のビデオ表示ソースモードをアンピンニングする。別の関数(UnpinModeOnVidPNTargetなど)は、ビデオ表示ネットワークターゲット上のビデオ表示ターゲットモードをアンピンニングする。別の関数(CreateVidPNImplなど)は、ビデオ表示ネットワーク構成を作成する。これらの関数の任意の組合せが、プログラマチックインタフェース(デバイスドライバインタフェースなど)の一部として実施され得る。そのようなインタフェースは、(例えばクライアントプログラムなどのための)サービスとしてこれらの関数へのアクセスを提供することができる。

0160

(実施例29)
(構成に到達する呼び出しの例)
図20に、構成に到達する呼び出しの例を示すブロック図を示す。そのような呼び出しは、デバイスドライバインタフェース(DDI)の一部として実施され得る。

0161

ステム2000は、ドライバ2002(ビデオミニポートなど)とグラフィックスカーネルサブシステム2004の間の通信を含む。指定されたビデオ表示ネットワーク構成が与えられたとして、EnumAvailVidPNTargetsを呼び出して、所与のビデオカードによってサポートされる利用可能なビデオ表示ネットワークターゲットがエニュメレーションされ得る。EnumAvailVidPNSourcesを呼び出して、その所与のビデオカードによってサポートされる利用可能なビデオ表示ネットワークソースがエニュメレーションされ得る。これら2つの呼び出しは、システム初期設定の一部とすることができる。代替として、これら2つの呼び出しを、ビデオアダプタ到達イベントPCIエクスプレスドッキングステーションホットプラグなど)の一部とすることもできる。状況によっては、ヌルビデオ表示ネットワーク構成様式がサポートされ、(例えば初期設定に適するように)すべての利用可能なビデオ表示ターゲットおよびソースを報告すべきことを知らせることもできる。

0162

IsMonitorConnectedを使用して、エニュメレーションされたビデオ表示ターゲットのどれがそれらに接続されたモニタを備えるか判定され得る。GetMonitorDescriptorを呼び出して、接続されたモニタごとにそれぞれのモニタの記述子が獲得され得る。ConstrainModesOnVidPNTargetsを呼び出して、モニタの記述子から獲得されたモニタ機能踏まえて、エニュメレーションされたビデオ表示ターゲットのそれぞれに対するビデオモード制約条件が設定され得る。

0163

ビデオ表示ネットワーク構築時に、任意選択でGetInitialVidPNImplを呼び出して、ビデオミニポートによって推奨されるビデオ表示ネットワークの暫定的構成が獲得され得る。CreateVidPNImplを呼び出し、ビデオミニポートによる任意選択の推奨に基づいてビデオ表示ネットワークの暫定的構成が作成され得る。代替として、CreateVidPNImplが、ミニポートによる任意選択の推奨を無視してビデオ表示ネットワークの暫定的構成を作成することもできる。

0164

半動作可能なビデオ表示ネットワークを作成することの一部として、ビデオ表示ソースモードがビデオ表示ネットワークソース上にピンニングされるまで、EnumCurrentlyAvailVidPNSourceModeSets、PinModeOnVidPNSource、およびUnpinModeOnVidPNSourceが呼び出され得る。ピンニングされるビデオ表示ソースモードが、ビデオ表示ネットワークソースで機能することが知られている場合、PinModeOnEachVidPNSourceを呼び出して、ビデオ表示ソースモードがビデオ表示ネットワークソースすべてに一度にピンニングされ得る。

0165

動作可能なビデオ表示ネットワークを完成することの一部として、ビデオ表示ターゲットモードがビデオ表示ネットワークターゲット上にピンニングされるまで、EnumCurrentlyAvailVidPNTargetModeSets、PinModeOnVidPNTarget、およびUnpinModeOnVidPNTargetが呼び出され得る。ピンニングされるビデオ表示ターゲットモードが、ビデオ表示ネットワークターゲットで機能することが知られている場合、PinModeOnEachVidPNTargetを呼び出して、ビデオ表示ターゲットモードがビデオ表示ネットワークターゲットすべてに一度にピンニングされ得る。

0166

ビデオ表示ネットワーク暫定的構成をコミットするには、CommitVidPNImplが呼び出され得る。動作可能なビデオ表示ネットワークの暫定的構成は、ビデオ表示ネットワークの各ソースごとに1次サーフェスチェーンセットアップされた後でコミットされ得る。CommitVidPNImplは、入力として、ビデオ表示ネットワークトポロジおよびビデオ表示ソースおよびターゲット(1次サーフェスチェーンなど)の外部の他のOS所有リソースを必要とすることがある。

0167

(実施例30)
(ビデオ出力とレンダリングターゲットの分離の例)
ビデオレンダリングデバイスドライバが(オペレーティングシステムに、したがって間接的にそのオペレーティングシステム上で走っているアプリケーションに)公開するインタフェースは、ビデオレンダリングデバイスが、そこで表示される画像を物理的に駆動しているビデオ出力と、アプリケーションが、それが表示しようとするコンテンツをそこに論理的にレンダリングしているレンダリングターゲットの概念を、2つの別個の独立したエンティティとして区別する必要はない。レンダリングターゲットは、ビデオレンダリングデバイス上の各ビデオ出力と、暗黙的、静的に関連付けられ得る。しかしながら、そのような手法は制約的であることがある。

0168

本明細書で説明する各例のいずれにおいても、レンダリングターゲットの明示的概念は、レンダリングモードの概念によってサポートされ得る。オペレーティングシステムにおける任意のデバイスの基本動作様式記述子である表示モードは次の2つのものとして説明することができる。それらは、(図1または図25に示すものなど、出力またはターゲットでの)出力様式記述子であるビデオモードと、(図1または図25に示すものなど、入力またはソースでの)入力様式記述子であるレンダリングモードである。そのような手法は、複数のビデオ出力を備えるシステムで特に有用である。ビデオドライバ(DDIなど)へのインタフェースは、ビデオモードとレンダリングモードの別個の仕様を許容し得る。

0169

ゆえに、論理的レンダリングターゲットは、その物理的ビデオ出力と切り離して動的に管理され得る。それらのターゲットは、実行時に選択のビデオ出力にマップされ、必要に応じてそれらを出力間で宛先変更し、あるいは単一のレンダリングターゲットを同時に複数の出力にマップすることさえもできる。

0170

(実施例31)
(モニタ到達/離脱(Monitor Arrival/Departure)管理の例)
本明細書で説明する技術のいずれも、モニタが実行中にシステムに接続され、またはシステムから取り外されるシナリオに適用され得る。例えば、モニタがシステムに到達し、またはシステムから離脱するときにシステムによってイベント(HPDイベントなど)が検出され、構成がしかるべく選択され得る。また、(クローンビュー、拡張デスクトップ管理などで)ビデオストリームを異なる出力に宛先変更する変更も実施され得る。前述のように論理的レンダリングターゲットをその物理的ビデオ出力と切り離して管理することによって、そのような動的構成変更での堅固なサポートが実現され得る。

0171

(実施例32)
(技術統合の例) 本明細書で説明する例のいずれにおいても、ビデオ表示装置は様々な形を取ることができる。例えば、図21に、本技術の、複数のビデオ表示装置を備えるコンピュータシステムへの統合の一例を示す。

0172

図21は、複数ビデオ出力装置システムの例示的なハイレベルアーキテクチャ2100を示す図である。デスクトップ2110、表示属性アプレット2112、および全画面グラフィックスアプリケーション2114は、グラフィックスサブシステム2120と通信する。グラフィックスサブシステム2120は、ビデオドライバ2130および別のビデオドライバ2132を駆動する。両ビデオドライバ(ビデオミニポートなど)は、ハードウェア抽象化層HAL)2140を介してビデオアダプタ2150および2152と通信し、それらが出力された信号を複数のビデオ出力装置の任意の組合せに送る。そのようなビデオ出力装置は、CRTモニタ2160、フラットパネルモニタ2162、ディジタルプロジェクタ2164、LCDモニタ2166、仮想現実ゴーグル2168などを含み得る。図示したもの以外の組合せも可能である。

0173

(実施例33)
(所望の構成に収束する解空間トラバースの例)
図22に、ビデオ構成が属性に基づいて決定され得るクライアント/サーバシステム2200を示す。クライアント2202はサーバ2204と通信する。クライアント2202は、優先順位情報を指定する優先順位2206を含む。

0174

そのような優先順位情報は、1つまたは複数の所望のトポロジのリスト、それぞれのソースでの望ましいモードのリスト、それぞれのターゲットでの望ましいモードのリストなど、あるいはそれらの何らかの組合せを含み得る。優先順位情報は、特定のソースモードがトポロジ選択より重要であるかどうかも含み得る。さらに、望ましいソースモードおよび望ましいターゲットモードにも(例えば重要度が最高のものから最低のものへ)優先順位を付けることができる。

0175

そのような優先順位は、優先順位リストの形とすることができる。しかしながら、優先順位は、論理への組み込み(クライアント2202でのif−thenステートメントなど)によっても実現され得る。

0176

図23に、先に図22に示したシステムでの場合などの、所望のビデオ構成オプションの優先順位リストに基づいてビデオ構成を決定する方法の一例2300を示す。

0177

2302で、少なくとも1つの第1のリソースでの部分ビデオ構成が提出される。

0178

2304で、その部分ビデオ構成と共に動作可能な構成オプションのリストが受け取られる。

0179

2306で、優先順位リスト中の所望のオプションが、その部分ビデオ構成と共に動作可能な構成オプションのリストに存在するかどうかについて判定される。

0180

2308で、所望のオプションが存在しないという判定に応答して、第1のリソースのために、変更された部分構成が再提出される。実際には、優先順位間のトレードオフが望ましい。

0181

(実施例34)
(トポロジが変更され得る所望の構成に収束する解空間のトラバースの例)
図24に、可能な動作可能複数ビデオ出力構成の組合せのグラフをトラバースする方法の別の例2400の流れ図を示す。ただし、この例は、所望の動作可能ビデオ表示ネットワーク暫定的構成の決定時にトポロジを変更する可能性を含む。

0182

2402で、特定のトポロジが選択される。

0183

2404で、ビデオ表示ソースモードが選択され、ビデオ表示ソース上にピンニングされる。

0184

2406で、(エニュメレーションなどによって)任意のビデオ表示ターゲットモードが利用可能であるかどうか判定される。そうである場合、プロセスは2408に進む。そうでない場合、プロセスは2410に進む。

0185

2408で、ビデオ表示ターゲットモードが選択され、ビデオ表示ターゲットにピンニングされる。次いで、この方法は(コミット後などに)終了し得る。

0186

2410で、以前に選択されたトポロジを持つことが、選択されたビデオ表示ソースモードを持つことより重要であるかどうか判定される。答えがYESである場合、2412で異なるビデオ表示ソースモードが選択され、そのビデオ表示ソース上にピンニングされ、プロセスは2406に戻る。そうでない場合、2414で異なるトポロジが選択され、プロセスは2404に戻る。

0187

この例は、ソースモードとトポロジの間のトレードオフを示しているが、リソース間の他のトレードオフも可能である。さらに、その他の例のいくつかに示すように、所望のオプションに優先順位を付けることができる。

0188

この例で実施され、図24に示す論理は、先に、図16で示したのと同様に、複数のビデオ表示ソースおよび/または複数のビデオ表示ターゲットに適応するように変更され得る。例えば、図24の2410〜2414で実施される論理は、図16の1608と1610の間、および/または1616と1618の間に挿入することができる。

0189

この例では、サーチは、図24の2402で行われるように、初期トポロジを用いて開始する。そのトポロジにおけるビデオ表示パスでは、ビデオ表示ターゲットモードがそのビデオ表示パスのビデオ表示ネットワークターゲットにピンニングされる前に、ビデオ表示ソースモードがそのビデオ表示パスのビデオ表示ネットワークソースにピンニングされ得る。例えば、サーチは、単一のソースビュービデオ表示パスを用いて開始し、ソースとターゲット両方にモードをピンニングし、次いで、別のビデオ表示パスをそこに付加することによってトポロジを増大させる。代替として、トポロジは、ビデオ表示ソースモードだけがピンニングされるときにも変更され得る。

0190

(実施例35)
構成サービスの使用の例)
構成サービスの実行例は、次にビデオ表示ネットワークの構成を始めることができる。この例では、そのトポロジに3つのソースを有するビデオ表示ネットワーク、およびそれら3つのソースのそれぞれにエニュメレーションされた以下のビデオ表示ソースモード集合を想定する。

0191

0192

クライアントが、ビデオ表示ネットワークソースのそれぞれで可能な最高の空間解像度を得ようとしており、第1のビデオ表示ネットワークソースが最も重要であり、第2のビデオ表示ネットワークソースが次に重要であり、第3の最後のビデオ表示ネットワークソースが最も重要度が低いと想定すると、それは、第1のビデオ表示ネットワークソース上に最高のモードをピンニングしようとするはずであり、それは(4,1280×1024)である。

0193

しかしながら、そうすることにより、クライアントは第2のビデオ表示ネットワークソース上のモード(4,1280×1024)、(5,1600×1200)、(6,2000×1500)を無効化する。クライアントはこのことをまだ知らないため、第2のビデオ表示ネットワークソース上に以前にエニュメレーションされた最高のモード((6,2000×1500)など)をピンニングしようとするが、それは、指定されたビデオ表示ソースモードが無効化されていることを示す状況コードと共に失敗する。

0194

この時点で、クライアントは、ビデオ表示ネットワークソースすべてにわたって利用可能なビデオ表示ソースモードを再エニュメレーションし、以下の3つの集合を獲得する。

0195

0196

クライアントは、次いで、第2のビデオ表示ネットワークソース上に利用可能な最高のビデオ表示ソースモード((3,1024×768)など)をピンニングするはずである。しかしながら、この追加モードをサポートすると、ビデオカードは、もはや、第3のビデオ表示ネットワークソース上で(2,800×600)も(3,1024×768)もサポートすることができない。

0197

この場合もやはりこの事実を知らないため、クライアントは、そのビデオ表示ソースに以前にエニュメレーションされた最高のモード((3,1024×768)など)をピンニングしようとする。それに失敗すると、クライアントはすべてのソースにわたって利用可能なモードを再エニュメレーションし、以下の集合

0198

0199

を取得し、第3の最後のビデオ表示ネットワークソースにただ1つのモード選択肢が残される。

0200

この時点で、クライアントは、このソースモード分配を受け入れ、それから動作可能なビデオ表示ネットワークに到達するためにターゲットモードをピンニングすることもでき、あるいは、640×480空間解像度が十分な高さではないと判断し、より適した解(例えば、第1のビデオ表示ネットワークソース上に1280×1024空間解像度を設定することを伴わないもの、あるいは、そのトポロジに2つだけのビデオ表示ネットワークソースを有するものなど)を見出すために引き返すこともできる。

0201

以下の印を付けたモードリストは全プロセスを要約するものであり、各集合における太字下線を付したモードはピンニングされたモードを表し、取り消し線を付したモードは、第1のビデオ表示ネットワークターゲット上のモードがピンニングされたときに無効化されたモードを表し、二重取り消し線を付したモードは、第2のビデオ表示ネットワークターゲットがピンニングされたときに無効化されたモードを表す。

0202

0203

前述のアルゴリズムは、レンダリングマルチモード収束に単純化した貪欲法(Greedy approach)を用いるものであり、バックトラックを用いないことがわかる。そうではなく、クライアントがより複雑なサーチ(深さ優先サーチなど)を用いてより適するレンダリングマルチモードを見出すこともできる。また、前述のアルゴリズムは、図16の方法例1600の場合のように、収束プロセスを通して所望のトポロジが固定されるものと想定していることもわかる。

0204

(実施例36)
(マルチモニタ/マルチビューシステムの例)
図25は、マルチモニタ/マルチビューシステムの一例2500の図であり、以下の形式論を用いて説明することができる。場合によっては、「ビデオ表示ネットワーク」の代わりに「VidPN」という用語が用いられ、「ビデオ表示(video presenting)」の代わりに「ビデオ表示(video present)」が用いられることもある。また、場合によっては、「暫定的構成」に言及するのに「実装形態」という用語も用いられる。システム2500は、本明細書で説明する各例のいずれとも一緒に用いることができる。
1.Mはモニタの集合2510m=(δM)であり、式中、
a.モニタmは、ビデオレンダリングデバイスの出力を監視するビデオ表示装置であり、
b.δM∈{EDID v1.0,EDID v1.1,EDID v1.2,EDID v1.3,DIEXTを伴うEDID v1.3}はモニタ記述子である。
2.Tは、1台のビデオレンダリングデバイスの、ビデオ表示ターゲットの集合2520t=(δT)であり、式中、
a.δT∈{(形式[δT],HPD認識[δT])}はビデオ表示ターゲット記述子であり、式中、
i.形式[δT]∈VC≡{DVI,HDMI,HDMI−2,HD−15,BNC,4ピンSビデオ,7ピンSビデオ,RF,RCAコンポジット,3コンポーネントRCA,その他}はビデオ出力形式タイプであり、
ii.HPD認識[δT]∈HPD≡{割り込み可能,非破壊的ポーリング,破壊的にポーリング,なし}はビデオ出力HPD認識であり、その場合ビデオ出力は、以下を備える。
1.割り込み可能HPD認識 ビデオミニポートがOSにモニタ到達/離脱に関して非同期的通知することができる場合に限る。
2.非破壊的にポーリングされるHPD認識 ビデオミニポートが、視覚的アーチファクトを生じずに、基礎をなすハードウェアを定期的にポーリングすることによってのみOSにモニタ到達/離脱を報告することができる場合に限る。
3.破壊的にポーリングされるHPD認識 ビデオミニポートが、基礎をなすハードウェアを散発的にポーリングすることによってのみOSにモニタ到達/離脱を報告することができ、各ポーリングで視覚的アーチファクトを生じる場合に限る。
4.HPD認識なし ビデオミニポートがモニタ到達/離脱を認識せず、したがって、OSにそのようなイベントの発生を非同期的に通知することも、同期的に報告することもできない場合に限る。
b.符号化∈(VE)VCはビデオ符号化タイプであり、式中、
i.VE≡{Digital_YCbCr,Digital_RGB,Analog_YPbPr,Analog_RGB,Analog_YC,Analog_Composite,Other}はビデオ符号化タイプであり、ビデオ出力コネクタは、以下に示す表1で指定されるようにそれぞれのビデオ出力符号化にマップされる(注:DDCサポートの存在は、モニタ記述子、δMを獲得する可能性を示唆する)。

0205

0206

c.同期されている:

0207

0208

は、ビデオ出力同期述部であり、2つの出力が与えられたとすると、それらが相互に同期しているか否かを判定する。
3.Κはビデオ表示コーデックの集合2530κ=(δΚ)であり、式中、
a. δΚはビデオコーデック記述子である。
4.Σはビデオ表示ソースの集合2550σ=(δΣ)であり、式中、
a.δΣ∈{線形,その他}はビデオ表示ソース記述子であり、
b.モニタ上に表示される各ビデオ表示ネットワーク入力のコンテンツをビューという。
5.Vはビューの集合2560v=(δV)であり、式中、
a.δV∈{(重要度[dV],向き[dV])}はビュー記述子であり、式中、
i.重要度[dV]

0209

0210

{1次,2次,その他}
ii.向き[dV]

0211

0212

{左,右,中央,その他}
である。
6.

0213

0214

は32ビット空間座標の集合である。

0215

7.Θは、表示モードの集合θ=(wΘ,hΘ,rΘ,fΘ)であり、式中、
a.wΘ∈S\{0}は表示モード幅である。
b.hΘ∈S\{0}は表示モード高さである。
c.rΘ∈RΘは表示モードフレーム速度であり、式中、
i.RΘ≡{a.b|a,b

0216

0217

{1..0xFFFF}}は、Hz単位の表示モードフレーム速度の集合である。

0218

d.fΘ∈FΘは表示モード単位形式(すなわちモニタの有効色解像度、すなわちモニタ技術の関数である物理的パラメータ)であり、式中、
i.FΣ≡{1ビット,5ビット,6ビット,8ビット,10ビット,12ビット,16ビット,18ビット,32ビット,以下未定}は表示モード色解像度の集合である。
e.gΘ∈[1.0,+∞)∪{SD−601,HD−709}は、モニタ技術の輝度応答関数であるモニタ転送関数(すなわちモニタガンマ)である。

0219

8.Βはビデオ表示ターゲットモードの集合β=(AΒ,TΒ,Δ(AΒTΒ),fΒ,vrΒ,hrΒ,crΒ,oΒ,cpΒ,gΒ,TΒ,YUV→RGB,bpoΒ,wpoΒ,pmΒ)であり、また、表示ターゲットモードとも呼ばれ、式中、
a.AΒ∈{(Width[AΒ],Height[AΒ])}は、ビデオ表示ターゲットモードアクティブ領域であり、式中、
i.Width[AΒ]はビデオ表示モードアクティブ領域幅である。
ii.Height[AΒ]はビデオ表示モードアクティブ領域高さである。
b.TΒ∈{(Width[TΒ],Height[TΒ])}は、ビデオ表示ターゲットモード総領域であり、式中、
i.Width[TΒ]はビデオ表示モード総領域幅である。
ii.Height[TΒ]はビデオ表示モード総領域高さである。
c.Δ(AΒTΒ)∈{(OffsetHoriz[AΒ,TΒ],OffsetVert[AΒ,TΒ])}は、ビデオ表示ターゲットモードのアクティブ領域変位であり、式中、
i.OffsetHoriz[AΒ,TΒ]はビデオ表示モードの水平アクティブ領域変位である。
ii.OffsetVert[AΒ,TΒ]はビデオ表示モードの垂直アクティブ領域変位である。
d.fΒ∈FΒ=FΒ,analog∪FΒ,digitalは、ビデオモード画素符号化形式であり、式中、
i.FΒ,digital≡{Y10Cb10Cr10,Y8Cb8Cr8,sR10G10B10,sR8G8B8}はディジタルビデオモード画素符号化形式の集合である。
ii.FΒ,analog≡{YPbPr,Analog_YC,Analog_Composite,RGB}はアナログビデオモード画素符号化形式の集合である。
e.vrΒ∈VRΒは垂直リフレッシュ速度であり、垂直同期速度、あるいは垂直帰線周波数とも呼ばれ、式中、
i.VRΒ≡{a.b|a,b

0220

0221

{1..0xFFFFFFFF}}は、Hz単位の整数垂直リフレッシュ速度(rationalvertical refresh rate)の集合であり、普通、50から200Hzの範囲内にある。

0222

f.hrΒ∈HRΒは水平リフレッシュ速度であり、水平同期速度、ライン速度、あるいは水平帰線周波数とも呼ばれ、式中、
i.HRΒ≡{a.b|a,b

0223

0224

{1..0xFFFFFFFF}}は、Hz単位の分数水平リフレッシュ速度(fractional horizontal refresh rate)の集合であり、普通、10から200KHzの範囲内にある。

0225

g.crΒ∈CRΒは画素クロック速度であり、式中、
i.CRΒ≡{a|a

0226

0227

{1..0xFFFFFFFF}}はHz単位の画素クロック速度の集合であり、普通、1から500MHzの範囲内にある。

0228

h.oΒ∈OΒはコンテンツ順序であり、式中、
i.OΒ≡{Progressive,Interlaced_upperFieldFirst,Interlaced_lowerFieldFirst}は、コンテンツ順序タイプの集合であり、式中、プログレッシブ方式コンテンツ順序でのフィールド速度=垂直同期速度であり、インターレース方式コンテンツ順序でのフィールド速度=2x垂直同期速度である。

0229

i.cpΒ∈CPΒは原色である((x,y)で表された3原色であり、x=X/(X+Y+Z)およびy=Y/(X+Y+Z)であり、何らかの仕様に関連する)。
j.wprΒ∈CPΒは白色点基準(すなわち基準白色)である。
k.gΒ∈[1.0,+∞)∪{SD−601,HD−709}は転送関数の指数(すなわちガンマ係数)である。
l.TΒ,YUV→RGBはY'U'V'からR’G'B’への色空間変換マトリクスである。
m.

0230

0231

黒色点オフセット(すなわちセットアップ電圧)である。

0232

n.

0233

0234

は白色点オフセットである。

0235

o.

0236

0237

はビデオ表示ターゲットモード優先序数であり、式中、モード優先度は{0x01..0xff}の範囲によって表され、0x01が最高の優先度を示し、0xffが最低の優先度、または無関係なモード優先を示す。0x00は不明/初期設定なしに予約される。

0238

一定のビデオモードが業界規模の(事実上と正式両方の)標準化によって定義される。これらのモードは、以下の表2に列記するもの、ならびに以下のVESA汎用イミング式(GTF)によって定義される連続的なモードの集合を含み得る。

0239

βGTF≡βGTF,VR∪βGTF,HR∪βGTF,CR
式中、

0240

0241

である。

0242

0243

0244

0245

0246

9.Γは、ビデオ表示ソースモードの集合、γ=(wΓ,hΓ,fΓ,ψΓ,nΓ,pmΓ)であり、表示ソースモードとも呼ばれ、式中、
a.wΓ∈S\{0}はビデオ表示ソースモード幅である。
b.hΓ∈S\{0}はビデオ表示ソースモード高さである。
c.fΓ∈FΓはビデオ表示ソースモード単位形式であり、式中、
i.FΓはビデオ表示ソースモード単位形式の集合であり、以下の2つの主要なサブクラス類別され得る。
1.最新のDirectXリリースにおけるD3DFORMATエニュメレーションタイプによって定義される、グラフィックスビデオ表示ソースモード単位形式。
2.(未定)によって定義される、テキストビデオ表示ソースモード単位形式。
d.ψΓ∈ΨΓは、レンダリング時に使用されるラスタライズされたグラフィックスフィルタリング技法であり、式中、
i.ΨΓは、最新のDirectXリリースにおけるD3DDDIMLTISAMPLE_TYPEエニュメレーションタイプによって定義される、ラスタライズされたグラフィックスフィルタリング技法の集合である。
e.nΓ∈Nは、1次サーフェスチェーン長さ(すなわち1次サーフェスチェーン中のサーフェスの数)である。
f.

0247

0248

は、ビデオ表示ソースモード優先序数であり、式中、モード優先度は{0x01..0xff}の範囲によって表され、0x01が最高の優先度を示し、0xffが最低の優先度または無関係なモード優先を示す。0x00は不明/初期設定なしに予約される。
10.ρMT∈TMは、モニタ接続性トポロジ、すなわちモニタから、それらが接続されるビデオ表示ターゲットへのマッピングである。
11.ρTK∈KTは、ビデオ表示ターゲット/コーデックトポロジ、すなわちビデオ表示ターゲットから、それらを駆動するビデオ表示コーデックへのマッピングであり、ビデオカード上のプログラマブルクロスバーによって定義される。
12.ρKΣ∈ΣKは、ビデオ表示コーデック/ソーストポロジ、すなわちビデオ表示コーデックから、コーデックがそこから視覚コンテンツストリーミングするビデオ表示ソースへのマッピングである。
13.ρTΣ∈ΣTは、ビデオ表示ターゲット/ソーストポロジ2540、すなわち、その基礎をなすビデオ出力コーデックがそこから視覚コンテンツをストリーミングするビデオ表示ソースから、そのコンテンツがそこにストリーミングされるビデオ表示ターゲットへのマッピングである。
14.

0249

0250

は、サポートされるVidPNトポロジの集合、すなわちビデオ表示ターゲットの集合とビデオ表示ソースの集合からなる対

0251

0252

から、その対でのサポートされるVidPN実装形態のそれぞれの集合へのマッピングであり、各実装形態は、ビデオ表示ソースが、ビデオ出力コーデックを介して、それらが駆動するビデオ表示ターゲットに経路指定される方法を明示的に指定する。
15.

0253

0254

をVidPN実装形態といい、式中、
a.

0255

0256

はVidPNビデオ表示ターゲットの集合である。

0257

b.

0258

0259

はVidPNビデオ表示ソースの集合である。

0260

c.

0261

0262

はVidPNトポロジの集合である。
16.ρΣV∈VΣおよびρVΣ∈ΣVは、ビューと基礎をなすビデオ表示ソースの間の1:1対応であり、すなわちρΣVおよびρVΣはΣとVの間で同型である。
17.

0263

0264

は、マルチコーデックビデオ表示ターゲットモード集合ベクトル、すなわち、ビデオ出力コーデックから、それらがサポートするビデオ表示ターゲットモード集合へのマッピングである。
18.

0265

0266

は、マルチターゲットビデオ表示ターゲットモード集合ベクトル、すなわち、ビデオ表示ターゲットから、それらがサポートするビデオ表示ターゲットモード集合へのマッピングである。
19.

0267

0268

は、マルチモニタビデオモニタソースモード集合ベクトル、すなわち、モニタから、それらがサポートするビデオモニタソースモード集合へのマッピングである。
20.

0269

0270

は、マルチソースビデオ表示ソースモード集合ベクトル、すなわち、ビデオ表示ソースから、それらがサポートするビデオ表示ソースモード集合へのマッピングである。
21.

0271

0272

は、マルチコーデックビデオ表示ターゲットモードベクトル、すなわち、ビデオ出力コーデックから、それらのコーデックが、それらが接続されたビデオ表示ターゲットのビデオ出力上で駆動するビデオ表示ターゲットモードへのマッピングである。
22.

0273

0274

は、マルチ出力ビデオ表示ターゲットモードベクトル、すなわち、ビデオ表示ターゲットから、それらのビデオ表示ターゲット上で、それらが接続されたビデオ出力コーデックによって駆動されているビデオ表示ターゲットモードへのマッピングである。
23.

0275

0276

は、マルチモニタビデオ表示ターゲットモードベクトル、すなわち、モニタから、それらの上で、それらが接続されたビデオ表示ターゲットによって駆動されているビデオ表示ターゲットモードへのマッピングである。
24.

0277

0278

は、マルチモニタ表示モードベクトル、すなわち、モニタから、モニタの入力上で駆動される基礎をなすビデオ表示ターゲットモードの結果として、それらの上に表示される表示モードへのマッピングである。
25.

0279

0280

は、マルチソースビデオ表示ソースベクトル、すなわち、ビデオ表示ソースから、それらのソースが設定されるビデオ表示ソースモードへのマッピングである。
26.VidPN実装形態は、ビデオ表示ソースモードが、そのビデオ表示ソースのすべてにおいて正常に選択されている場合に限って半動作可能であるという。
27.VidPN実装形態は、それが半動作可能であり、かつビデオ表示ターゲットモードがそのビデオ表示ターゲットのすべてにおいて正常に選択されている場合に限って動作可能であるという。

0281

(実施例37)
(定義の例)
複雑な相互依存性の集合が関与していると仮定して、いくつかの形式的定義がいくつかの実装形態に使用され得る。いくつかの(ビュー,出力)対が、ビデオ出力コーデック(CRTC DAC、TMDSなど)への入力を表し得るビデオ表示ソースと、ビデオカード(HD−15、DVI、Sビデオなど)上のビデオ出力を表し得るビデオ表示ターゲットに組み込まれ得る。

0282

表示モードが、グラフィックススタックがユーザに表示されるレンダリングコンテンツを提供するための1次サーフェス形式を指定し得るビデオ表示ソースモードと、それぞれのビデオ出力で駆動されるビデオ信号形式を指定し得るビデオ表示ターゲットモードに組み込まれ得る。

0283

マルチ出力ビデオカードのビデオ表示機能は、ビデオ表示ソースの集合を、VidPNトポロジを介してビデオ表示ターゲットの集合に関連付けることができる、ビデオ表示ネットワーク(VidPN)の概念によってモデル化される。VidPNは、ビデオ表示ソースモードが、そのビデオ表示ソースのそれぞれでピンニングされる場合に限って半動作可能とみなされ得る。VidPNは、それが半動作可能であり、かつビデオ表示ターゲットモードが、そのビデオ表示ターゲットのそれぞれでピンニングされる場合に限って動作可能とみなされ得る。

0284

単一のビデオ表示ソースと単一のビデオ表示ターゲットとの関連をビデオ表示パスと呼ぶことができる。単一のビデオ表示ソースと複数のビデオ表示ターゲットとの関連をビデオ表示マルチパスと呼ぶことができる。

0285

前述の定義を用いると、ビデオミニポートのジョブは、表示モード管理の状況においては、それが駆動しているそれぞれのビデオカード上のビデオ表示構成の状態を表すアクティブなVidPNを管理するとともに、そのそれぞれがアクティブと設定され得る、動作可能なVidPNを増分的に構築するためにクライアントの要求に応えることであると説明され得る。

0286

(実施例38)
(複数のビデオ出力表示モード解の例)
マルチ出力ビデオカードに接続されたモニタ上の表示モードを変更すれば、ビデオミニポートの開発者らが、その場合、同じ基礎をなす物理装置を駆動していた特定のビデオドライバスタック間の複雑な同期を実施しなければならなかった、その世界の「単一出力動作」ビューに苦慮することもなくなり、単一のビデオドライバスタックによってサービスされる所与のビデオカード上での動作可能なVidPNの明示的なトランザクションベースのコミットによって置き換えられ得る。

0287

マルチ出力ビデオ表示モード解は、以下のような複数の基準に左右され得る。それらは、(a)ハードウェア制限事項(それぞれのビデオ表示ターゲットに接続されたモニタによってサポートされるビデオモード集合など)、(b)動作モード考慮事項(それぞれのビデオ表示ターゲットに接続されたモニタによって優先される特定のビデオモードなど)、(c)性能考慮事項(ビデオ出力コーデックによるビデオメモリバスでの競合の低減によって達成されるレンダリング性能の改善など)、(d)電力管理考慮事項(利用されないビデオ出力コーデックを使用不能にし、その機能を抑制することによって達成されるビデオカードの電力消費の低減など)、(e)熱放散考慮事項(あるユニットには、別のユニットが動作している間に冷却する機会が与えられ、逆の場合も同じであり、ゆえに、ビデオカードによって放散されるJ/秒の数が一定の所望の上限を超えて増大することがない、複数のユニット間で連続的に相互切換えを行うことによって達成されるビデオカードの動作温度の低減など)、および(f)有用性考慮事項(すべてのモニタを優先モードで駆動することができないと想定すると、ユーザの1次モニタ上でモニタの優先モードを駆動することが、それを第2のモニタ上で駆動するより重要であり、その場合どのモニタが1次であるかの決定は、ユーザ指定の動作モードの関数であるなど)である。例えば、DVILCD、SビデオHDTV、およびHD−15 CRT/3D眼鏡が与えられたとすると、ユーザは、最良の明瞭さを有するDVI LCD上で作業/読取りブラウズを行い、最大のアクティブ画素領域を有するSビデオHDTV上で映画を見、最高のリフレッシュ速度および最適なゲーム体験をサポートするHD−15 CRT/3D眼鏡でゲームをプレーしようとすることができる。

0288

(実施例39)
(解空間の例)
そのターゲット上で利用可能な、可能なすべてのビデオ表示ターゲットモード集合、および利用可能なビデオ表示ソースモードをその入力間で分配する様々なすべての方法を備え、それらのそれぞれの可用性は、(基礎をなすビデオコーデックにおけるハードウェアスケーリングの存在などの因子に基づく)それぞれの出力上で駆動されるビデオモードの関数である、可能なすべてのVidPN実装形態を含む解空間は、単純で強引なエニュメレーションでは解決困難なことがある。Tビデオ表示ターゲット、Kコーデック、およびΣビデオ表示ソースの一般的な場合での強引でない手法は、古典的な3者間グラフマッチング問題と類似しており、それはNPCであることが知られている(例えば、多項式時間で実行され、理想的な、または大域的に最適な解を見出す公知のアルゴリズムがないなど)。理想的な解に可能な限り近い近似解を求めることが望ましい。

0289

(実施例40)
(複雑さの例)
どの構成が動作可能であるか決定することは複雑なタスクである。例えば、所与の構成について、以下を考慮することが必要になり得る。

0290

1.どのビデオ出力を駆動するのにどのビデオ出力コーデックが使用され得るか
2.どのレンダリングターゲットの1次サーフェスをビデオ信号に変換するのにどのビデオコーデックが使用され得るか
3.ビデオ出力間での可能なビデオモード集合分配はどのようなものか
4.各ビデオコーデックが駆動することのできる可能なビデオモードは何か
5.レンダリングターゲット間での可能なグラフィックスレンダリングモード分配はどのようなものか。

0291

サーチを複雑にする問題のいくつかは、コードが不十分なリソースであること、およびコーデックが普通は出力より少ないことであり、そのため、クローンビューでは、可能な場合は常に、複数の出力にわたって単一のコーデックを共用することが有益である。そのような手法は、各モニタが両方ともサポートする共通ビデオモードを持たない場合には、機能しないことがある同じビデオモードを両方のモニタに強制するという欠点を持つ(例えば、CRTは最大1280×1024まで上げることができるが、LCDは1600×1200だけをサポートすることがある)。それらがビデオモードを共用する場合であっても、そのような手法はモニタを駆動する理想的な方法ではないこともある。というのは、そのビデオモードがそれらのモニタの優先モードではないことがあるからである。例えば、あるプロジェクタは、640×480、800×600、1024×768(ネイティブ)、および1280×1024をサポートする。そのLCDは、640×480、800×600、1024×768、1280×1024、および1400×1050(ネイティブ)をサポートする。これら2つの間でコーデックを共用することは、1つのドライバだけがその優先ビデオモードで駆動され得ることを意味する。

0292

あるいは、あるLCDは、1024×768、1280×1024、1600×1200(優先)をサポートすることができるとする。そして、あるプロジェクタは、640×480、800×600(優先)、および1024×768をサポートすることができるものとする。共用は、どちらのモニタもその優先モードで駆動され得ないことを意味する。

0293

また、すべてのコーデックが等しく作成されるとは限らない。ビデオカードは、1つが他方より多くのモードを実行し、あるいはそれらのいくつかをより適切に実行することができる異なるコーデックを持つことがある。特定のモードが特定のコーデックで利用可能である(例えば、1つのコーデックは16ビットだけを行うことができ、別のコーデックは32ビットモードだけを行うことができるなど)場合には、状況がより一層複雑になり得る。

0294

最後に、クロスバーを用いてコーデックを異なる出力に経路指定変更することができるが、その制限事項、およびコーデックのビデオ出力の技術との非互換性の結果として、特定のコーデックが特定の出力の部分集合に限定されることになり得る(例えば、CRTCはDVIを駆動することができず、TMDSはSビデオのHD−15を駆動することができないなど)。

0295

可能なすべての実装形態をエニュメレーションするという強引な手法(brute force approach)を回避するために、代わりに、収束手法が用いられ得る。

0296

(実施例41)
(ビデオドライバに決定を委ねることの利点の例)
本明細書で説明する各例のいずれにおいても、特定の暫定的構成がそのビデオアダプタで動作可能であるかどうかの決定は、デバイスドライバによって達成され(に委ねられ)得る。1つの可能な代替方法は、ビデオアダプタの集合(すべての知られているビデオアダプタなど)に及ぶ決定を処理することができる一般例の一般解を構築することである。しかしながら、そのような解は、膨大な数のシナリオを処理する論理を必要とするはずである。

0297

そうではなく、デバイスドライバに決定を委ねることによって、デバイスドライバをより軽量にすることができ、それが一般例を解決する必要がなくなる。例えば、デバイスドライバは、対応するビデオアダプタが実施することのできない(例えば、ハードウェアに存在しない)シナリオを処理するための論理を含む必要がない。このようにして、デバイスドライバのサイズが縮小され、(一般解に比べて)その性能(速度など)が増大され得る。

0298

(実施例42)
(トポロジとソース/ターゲットの間の比較の例)
トポロジは、その複数のオプション(ビデオ表示パスなど)が同時に構成され得る、構成可能なリソースとして扱われ得る。一度に1つのオプション(ソース/ターゲットモードなど)だけが構成され得るビデオ表示ソース/ターゲットに比較する。モードは、所与のモード集合内で相互に排他的とすることができ、他方、表示パスは必ずしも相互に排他的とする必要はないが、そうすることもできる。

0299

(実施例43)
(手法例)
2つの可能な手法は、照会に基づく手法およびトラバースに基づく手法を含む。照会に基づく手法には、OSによって提供された要件の集合を満たす解を求めて表示ミニポートに照会することが関与し得る。トラバースに基づく手法には、それぞれ、そのターゲットとソースに選択された所望のビデオ表示ターゲットモードとビデオ表示ソースモードを用いて動作可能なVidPN実装形態を増分的に構築することによって、解空間をナビゲートすることが関与し得る。VidPNのほぼ最適な実装形態を決定することは、ビデオミニポートに任せることができる。

0300

代替として、OSは、ビデオミニポートに、(1)DDI側でのそれに対する適合が、ビデオ表示ターゲットモードエニュメレーション時にOSによって検証され得る、そこに接続されたモニタを持つ各VidPNターゲットごとのビデオ表示ターゲットモード集合要件(例えば、ビデオカードは、接続されたモニタによってサポートされないビデオ信号モードを公開してはならないなど)、および(2)表示ミニポートが、優先モニタソースモードが、まず、より好ましいモニタ上でサポートされるVidPN実装形態を見出すことができ、システムに接続されたあらゆるモニタ上での優先モニタソースモードサポートがその理想解である、供給された優先順位方式に基づいてモニタの優先モニタソースモードをサポートするビデオ表示ターゲットモード集合の指針を供給することもできる。

0301

VidPNソース上でサポートされるグラフィックスビデオ表示ソースモードのほぼ最適な分配を見出すことは、グラフィックスサブシステムのクライアント(シェルなど)に任せることができ、その場合、ドライバは、単に、指定された動作状態下でのビデオカードの機能を報告するAPIによって、それぞれのビデオ表示ソースモード集合分配解空間をトラバースすることができることを公開するだけである。貪欲法と同様に単純な手法も、グラフベースのサーチと同様に複雑な手法も用いられ得る。

0302

(実施例44)
コンピューティング環境の例)
図26および以下の説明は、開示の技術が実施され得るコンピューティング環境の一例の簡単な一般的説明を提供するためのものである。必須ではないが、以下では、開示の技術を、パーソナルコンピュータ(PC)によって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで説明する。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実施するルーチンプログラムオブジェクト、コンポーネント、データ構造などを含む。さらに、開示の技術は、ハンドヘルド機器マルチプロセッサシステムマイクロプロセッサベースの、またはプログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータメインフレームコンピュータなどを含む、他のコンピュータシステム構成を用いて実施することもできる。また、開示の技術は、タスクが、通信ネットワークを介してリンクされたリモート処理装置によって実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、ローカルリモート両方の記憶装置に位置することができる。

0303

図26を参照すると、開示の技術を実施するシステムの一例は、処理装置2602、システムメモリ2604、およびシステムメモリ2604を含む様々なシステムコンポーネントを処理装置2602に結合するシステムバス2606を備える従来型のPC2600の形で汎用コンピューティングデバイスを含む。システムバス2606は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ周辺バス、およびローカルバスを含むいくつかの種類のバス構造のいずれでもよい。システムメモリ2604は、読取り専用メモリ(ROM)2608およびランダムアクセスメモリ(RAM)2610を含む。PC2600内の諸要素間の情報転送支援する基本ルーチンを含む基本入出力システム(BIOS)2612は、ROM2608に格納される。

0304

PC2600は、さらに、ハードディスク(図示せず)との間で読取りおよび書込みを行うハードディスクドライブ2614、取り外し可能磁気ディスク2617との間で読取りおよび書込みを行う磁気ディスクドライブ2616、および取り外し可能光ディスク2619(CD−ROMなどの光媒体)との間で読取りおよび書込みを行う光ディスクドライブ2618を含む。ハードディスクドライブ2614、磁気ディスクドライブ2616、および光ディスクドライブ2618は、それぞれ、ハードディスクドライブインタフェース2620、磁気ディスクドライブインタフェース2622、および光ドライブインタフェース2624によってシステムバス2606に接続される。各ドライブおよびそれに関連するコンピュータ可読媒体は、PC2600にコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性記憶を提供する。この例示的動作環境では、磁気カセットフラッシュメモリカードディジタルビデオディスク、CD、DVD、RAM、ROMなど、PCからアクセス可能なデータを格納することのできる他の種類のコンピュータ可読媒体を使用することもできる。

0305

ハードディスクドライブ、磁気ディスク2617、光ディスク2619、ROM2608、またはRAM2610には、オペレーティングシステム2630、1つまたは複数のアプリケーションプログラム2632、その他のプログラムモジュール2634、およびプログラムデータ2636を含むいくつかのプログラムモジュールを格納することができる。ユーザは、キーボード2640やポインティングデバイス2642(マウスなど)といった入力装置を介してPC2600にコマンドおよび情報を入力することができる。他の入力装置(図示せず)は、ディジタルカメラマイクロホンジョイスティックゲームパッド、衛生パラボラアンテナスキャナなどを含み得る。上記その他の入力装置は、しばしば、システムバス2606に結合されたシリアルポートインタフェース2644を介して処理装置2602に接続されるが、パラレルポートや、ゲームポートユニバーサルシリアルバス(USB)といった他のインタフェースによっても接続され得る。システムバス2606には、ビデオアダプタ2648などのインタフェースを介して、モニタ2646または他の種類の表示装置も接続される。スピーカプリンタ(図示せず)など、他の周辺出力装置も含み得る。

0306

PC2600は、リモートコンピュータ2650など、1つまたは複数のリモートコンピュータへの論理接続を用いてネットワークで接続された環境で動作することができる。リモートコンピュータ2650は、別のPC、サーバ、ルータ、ネットワークPC、またはピアデバイスなど他の一般のネットワークノードとすることができ、図26には記憶装置2652だけしか示されていないが、通常、PC2600に関連して前述した諸要素の多くまたはすべてを含む。図26に示す論理接続は、ローカルエリアネットワーク(LAN)2654および広域ネットワークWAN)2656を含む。そのようなネットワーク環境は、オフィス、企業規模のコンピュータネットワークイントラネットインターネットでよく見られるものである。

0307

LANネットワーク環境で使用されるとき、PC2600は、ネットワークインタフェース2658を介してLAN2654に接続される。WANネットワーク環境で使用されるとき、PC2600は、通常、モデム2660またはインターネットなどのWAN2656を介して通信を確立する他の手段を含む。モデム2660は、内蔵でも外付けでもよく、シリアルポートインタフェース2644を介してシステムバス2606に接続することができる。ネットワーク化環境では、パーソナルコンピュータ2600に関連して示すプログラムモジュール、またはその一部は、リモート記憶装置に格納することもできる。図示のネットワーク接続は例示であり、コンピュータ間で通信リンクを確立する他の手段も使用され得る。

0308

(実施例45)
(仕様例)
以下は、本明細書で説明する様々な技術をサポートするビデオ表示ネットワークを実施するための仕様の一例である。この例では、ビデオ表示ネットワーク(video presenting network)は、「ビデオ表示ネットワーク(video present network)」または「VidPN」と呼ばれることがある。このビデオ表示ネットワークでの特定の構成は「VidPN実装形態」と呼ばれることがある。

0309

説明する関数は、APIやDDIといったプログラマチックインタフェースに一体化することができる。そのようなインタフェースは、オペレーティングシステムなどのクライアントによるアクセスのためにデバイスドライバによって実施され得る。

0310

0311

0312

0313

0314

0315

0316

0317

0318

0319

0320

0321

0322

0323

0324

0325

0326

0327

0328

0329

0330

0331

0332

0333

0334

0335

0336

0337

0338

0339

0340

0341

0342

0343

0344

0345

0346

0347

0348

0349

0350

0351

0352

0353

0354

0355

0356

0357

0358

0359

0360

0361

0362

0363

0364

(実施例46)
(モニタの相対的重要度の例)
本明細書の各例のいずれにおいても、複数のモニタを処理するビデオドライバ(ビデオミニポートなど)は、推奨される動作可能構成を提供するよう求められることがある。そのような場合、モニタの相対的重要度が指定され得る。例えば、モニタが(例えば、重要度が最大のものから最小のものまで)ランク付けされ得る。その場合、ドライバは、指定された相対的重要度に従って構成を提供することができる。

0365

(実施例47)
ステートレス実装形態の例)
本明細書で説明する技術のいくつかは、ビデオドライバが、暫定的構成の状態(例えばそれがピンニングされ、アンピンニングされている)を維持する手法を使用して説明されている。しかしながら、ステートレスの手法も用いられ得る。このやり方では、ビデオドライバは、(暫定的構成などの)状態を追跡する必要がなく、より軽量で簡単なものにすることができる。必要に応じて、クライアントソフトウェアは、所望の構成の決定時に状態を追跡することもできる。

0366

そのような手法では、プログラミングインタフェース(DDIなど)を用いて、暫定的構成の状態に関する情報が渡され得る。例えば、データ構造を用いて構成詳細が保持され、インタフェースを介して渡され得る。

0367

(実施例48)
(ステートレスドライバインタフェースの例)
以下は、本明細書で説明する様々な技術をサポートするビデオ表示ネットワークを実施するための、ステートレスビデオ表示ネットワーク管理ミニポートインタフェースを含む、カーネルモードドライバインタフェース(DDIなど)の一例である。この例では、ビデオ表示ネットワーク(video presenting network)を「ビデオ表示ネットワーク(video present network)」または「VidPN」ともいう。ビデオ表示ネットワークの特定の構成を「VidPN実装形態」ともいう。また、この例では、「ミニポート」という語を使用するが、そこで説明する技術は、任意の表示アダプタまたはビデオドライバに適用され得る。

0368

カーネルモードドライバの一例は、ビデオミニポートの一部とすることができる。各物理GPUは独自のアダプタとして扱われ、アダプタは、以下で検索されるHANDLEhAdapterによって表され得る。単一のGPUが複数の出力(ヘッドなど)を持つ場合、それは、やはり、単一アダプタとして扱われ得る。

0369

ミニポートのHwVidQueryInterface関数が、ドライバエントリポイントを検索するために以下のQUERY_INTERFACE構造を用いて呼び出され得る。

0370

0371

HwVidQueryInterface呼び出しは、このインタフェースが正常に検索された場合、NO_ERRORを返し、そうでない場合、適当なエラーコードを返すはずである。ドライバエントリポイントは、以下のD3DKMDDI_INTERFACE構造で返され得る。このインタフェースの照会は、暗黙的にそれを参照することができる。ゆえに、このインタフェースが照会された後でドライバの初期設定に失敗した場合、ドライバが明示的参照を行っていなくても、インタフェース逆参照関数が呼び出され得る。

0372

0373

0374

0375

D3DKMDDI_INTERFACE構造で戻されたhAdapterは、pInterfaceReferenceおよびpInterfaceDereferenceのコンテキストとして渡され得る。それはまた、このインタフェース中のアダプタ関数のhAdapterパラメータでも渡され得る。

0376

0377

インタフェース特有のデータは、ドライバが呼び出すことのできる実行時におけるコールバック関数へのポインタを含むことができる。hAdapterは、実行時のアダプタハンドルとすることができ、アダプタハンドルを要求するコールバックのために渡され得る。

0378

前述のインタフェース以外に、以下の既存のIOCTLも使用され得る。

0379

0380

0381

EnumVideoPresentSourceSetは、指定された表示アダプタが持つビデオ表示ソースのリストを獲得するために、それぞれの表示アダプタのレンダリング後(post-rendering)のビデオ表示諸機能を駆動しているVidPN管理インスタンスによって、システム中の各表示アダプタごとに呼び出され得る。

0382

ミニポートは、INTERFACESPECIFICDATAインタフェースを介してオペレーティングシステムによって提供されたAllocSysMemForOutParamCbコールバックを使用して、システムメモリで、指定された表示アダプタでの要求されたビデオ表示ソースの集合を含むのに十分な大きさのバッファ割り振ることができる。割り振りのサイズは、sizeof(D3DKMDDI_VIDEO_PRESENT_SOURCE_SET)+sizeof(D3DKMDDI_VIDEO_PRESENT_SOURCE)*(ビデオ表示ソースの数−1)になるはずである。

0383

出力パラメータのメモリが割り振られると、ミニポートは、以下の定義に基づいてそれにデータを取り込むことができる。

0384

0385

定義中、
・NumOfVideoPresentSources−VideoPresentSourcesに列記されたビデオ表示ソースの数。
・VideoPresentSources−集合中のビデオ表示ソース記述子の配列のアドレス。実際の要素数は、NumOfVideoPresentSourcesで指定される。
以下のように定義されるビデオ表示ソース記述子を用いる。

0386

0387

定義中、
・VideoPresentSourceID−ミニポートおよびオペレーティングシステムによってそれぞれのビデオ表示ソースを参照するのに使用される一意のID。
・dwReserved−他のビデオ表示ソース記述子属性はここに行く。
以下のように定義されるビデオ表示ソースIDを用いる。
ypedef UINTD3DKMDDI_VIDEO_PRESENT_SOURCE_ID
この関数から正常に戻ると、オペレーティングシステムは、出力パラメータで戻されたデータの存続時間の所有権を取ることができ、それを完了したときにそれがサポートする割り振りに要したメモリを割り振り解除することができる。

0388

戻りコード
STATUS_SUCCESSは、ドライバが呼び出しを正常に処理したことを示す。

0389

0390

EnumVideoPresentTargetSetは、指定された表示アダプタが持つビデオ表示ターゲットのリストを獲得するために、それぞれの表示アダプタのレンダリング後のビデオ表示諸機能を駆動しているVidPN管理インスタンスによって、システム中の各表示アダプタごとに呼び出され得る。

0391

ミニポートは、INTERFACESPECIFICDATAインタフェースを介してオペレーティングシステムによって提供されたAllocSysMemForOutParamCbコールバックを使用して、システムメモリで、指定された表示アダプタのための要求されたビデオ表示ソースの集合を含むのに十分な大きさのバッファを割り振ることができる。割り振りのサイズは、sizeof(D3DKMDDI_VIDEO_PRESENT_TARGET_SET)+sizeof(D3DKMDDI_VIDEO_PRESENT_TARGET)*(ビデオ表示ターゲットの数−1)になるはずである。

0392

出力パラメータのメモリが割り振られると、ミニポートは、以下の定義に基づいてそれにデータを取り込むことができる。

0393

0394

定義中、
・NumOfVideoPresentTargets−VideoPresentSourcesに列記されたビデオ表示ターゲットの数。
・VideoPresentSources−集合中のビデオ表示ターゲット記述子の配列のアドレス。実際の要素数は、NumOfVideoPresentTargetsで指定される。
以下のように定義されるビデオ表示ターゲット記述子を用いる。

0395

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ