JP4927348B2 - ビデオ表示ネットワーク管理 - Google Patents

ビデオ表示ネットワーク管理 Download PDF

Info

Publication number
JP4927348B2
JP4927348B2 JP2005134489A JP2005134489A JP4927348B2 JP 4927348 B2 JP4927348 B2 JP 4927348B2 JP 2005134489 A JP2005134489 A JP 2005134489A JP 2005134489 A JP2005134489 A JP 2005134489A JP 4927348 B2 JP4927348 B2 JP 4927348B2
Authority
JP
Japan
Prior art keywords
video
video display
configuration
network
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005134489A
Other languages
English (en)
Other versions
JP2006018803A (ja
Inventor
エル.ラングレイ ブライアン
ジェー.アンドリュース マーカス
ミリルッド マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/925,662 external-priority patent/US7898533B2/en
Priority claimed from US10/925,445 external-priority patent/US7903045B2/en
Priority claimed from US10/925,859 external-priority patent/US8581803B2/en
Priority claimed from US10/925,837 external-priority patent/US7679612B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006018803A publication Critical patent/JP2006018803A/ja
Application granted granted Critical
Publication of JP4927348B2 publication Critical patent/JP4927348B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4122Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2838Distribution of signals within a home automation network, e.g. involving splitting/multiplexing signals to/from different paths

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Color Television Systems (AREA)

Description

この技術分野は、ビデオ表示アダプタ(コンピュータビデオカードなど)の構成(configuration)に関する。
複数のモニタを使用するコンピュータシステムが普及してきている。例えば、いまや、1台のコンピュータがLCDパネルと映写装置の両方を駆動することは普通である。さらに、コンピュータユーザは、いまや、自分のコンピュータを使用して、日常的にビデオ上映(DVDなど)を見る。そのような場合、コンピュータは、従来方式のモニタとテレビの両方を駆動することになる。
需要に応えて、ビデオアダプタハードウェア製造者らは、いまや、ビデオアダプタ上に複数の出力を含める。このように、ユーザは、単一出力でのケーブルを切り換えてその出力を再構成することなく、より簡単にコンピュータを使用して所望のデバイスを駆動することができる。
そのようなマルチモニタビデオアダプタは様々な機能を持つが、利用可能な構成は通常限られている。したがって、マルチモニタコンピュータシステムの構成に関連する改善された機能が求められている。
複数の出力を備えるビデオ表示ネットワークを構成することは、可能な構成の絶対数およびリソース間の構成相互依存性のために、困難な問題となり得る。
本明細書で説明する様々な技術を用いて、複数の出力を備えるビデオ表示ネットワークのリソースが構成され得る。例えば、暫定的構成(provisional configuration)がサポートされ得る。入力の構成は、出力の構成とは別に実行され得る。提供されるオプションを暫定的構成と共に動作可能(co-functional with)なものに限定するためにネットワークリソース間の相互依存性が考慮され得る。クライアントは、サービスによって提供される関数の集合を使用して構成解空間(configuration solution space)を行き来する(トラバース:traverse)することができる。可能な構成解のトラバースはバックトラックを含み得る。例えば、バックトラックは、選択された構成オプションが別の所望の構成オプションを無効化するときに使用され得る。暫定的構成機能はトランザクショナル構成手法をサポートすることができ、各リソースは別々に構成され得る。エニュメレーション関数(enumeration function)は、ネットワークリソース間の相互依存性に基づき、暫定的構成と共に動作可能なオプションだけを提供することができる。エニュメレーション(enumeration)されたオプションの妥当性は、ピンニング(ピン設定:pinning)後に保証され得る。
関数(function)は、構成(暫定的構成と共に動作可能な構成など)をエニュメレーションし、リソースをピンニングすることを求める呼び出しを含むインタフェースにグループ化され得る。構成を作成し、その構成をコミット(commit)するための他の呼び出しも設定され得る。関数は、構成へのトランザクショナル手法をサポートすることができる。
構成目標に最も適合するトポロジが相互依存性を考慮して見出され得る。例えば、ターゲットが、それらに接続された表示装置上の優先モードをサポートしなければならないと仮定して、ソース上のサポートされるソースモード集合を最大にするように利用可能なコーデックを介してターゲットからソースまで経路指定する最善の方法が見出され得る。他の目標もサポートされ得る。優先順序付けもサポートされ得る。目標により適合するトポロジの追跡時に、エニュメレーションおよびピンニング機能が使用され得る。
暫定的構成は、異なるリソースを構成することを求める別々のデバイスドライバインタフェース呼び出し(ある呼び出しはビデオ出力を、別の呼び出しはビデオ入力を求めるなど)を介して増分構成をサポートすることができる。呼び出しの間に、エニュメレーションは、残りのピンニングされていない(例えば、まだ暫定的に構成されていない)リソースでの共に動作可能なリソースを指示することができる。
相互依存性を考慮する役割は、ビデオミニポートなどのビデオドライバに委ねる(例えば、それによって実行する)ことができる。クライアントは、様々な手法を使用して所望の構成を見出すことができる。所望の構成は、NP完全グラフ問題への解(solution)として扱われ得る。
上記その他の特徴および利点は、添付の図面を参照して進められる開示の実施形態の以下の詳細な説明を読めばより明白になるであろう。
(実施例1)
(ビデオ表示ネットワークの例)
図1に、構成可能なビデオ表示ネットワーク100を示す。本明細書の各例のいずれかで説明する技術を用いてビデオ表示ネットワーク100が構成され得る。
本明細書で説明する技術と共に使用するためのビデオ表示ネットワーク100は、1つまたは複数の入力110A〜110N(合計Σ個の入力、σなど)、2つ以上の出力120A〜120N(合計Τ個の入力、τなど)、および1つまたは複数のディジタルビデオ入力表現/ビデオ出力信号変換器(digital-video-input-representation-to-video-output-signal converters)130A〜130N(合計Κ個の変換器、κなど)を備えることができる。
入力110A〜110Nは、「ソース」(sources)または「サーフェス」(surfaces)とも呼ばれる。出力120A〜120Nは、「ターゲット」(targets)とも呼ばれる。ディジタルビデオ入力表現/ビデオ出力信号変換器は、「変換器」(converters)とも呼ばれる。
入力、変換器、および出力以外に、ビデオ表示ネットワークは他のリソース140(ビデオメモリ、帯域幅、メモリ容量など)を含むこともできる。その他のリソース140は、入力、変換器、および出力によってビデオ表示機能を実現するのに使用され得る。
ビデオ表示ネットワーク100はビデオ表示アダプタ(例えばビデオカード)などのハードウェアとして実施され得る。場合によっては、いくつかのリソースはアダプタの外部に存在し得る。
例示的コンピュータシステムは、(例えばコンピュータシステムのアプリケーションによって書き込まれる)ディジタル形式の1つまたは複数のビデオビューを含むことができ、それらが入力110A〜110Nによって使用される。結果として複数の出力120A〜120Nから生じる信号を用いて複数のビデオ表示装置が駆動され得る。
(実施例2)
(代替のビデオ表示ネットワークの例)
図2に、別の構成可能なビデオ表示ネットワーク200を示す。本明細書の各例のいずれかで説明する技術を用いてビデオ表示ネットワーク200が構成され得る。
この例では、単一のディジタルビデオ入力表現/ビデオ出力信号変換器に複数の入力が使用され得る(例えば、入力210Bおよび210Nが変換器230Nへの入力として使用される)。そのような構成は、第1の入力が1次コンテンツであり第2の入力がオーバーレイされるコンテンツである2つの入力を持つビデオ出力コーデックを用いることによって、1つのビデオ信号を別のビデオ信号上にオーバーレイする際に役立ち得る。そのような状況では、オーバーレイの位置およびサイズが、オーバーレイされるコンテンツを表すビデオ表示ネットワークソースでのビデオ表示ソースモードの一部として指定され得る。
ビデオ表示ネットワークは、任意の数の入力、変換器、および複数の出力を備える他の多くの形を取ることができる。
(実施例3)
(ビデオ表示ネットワークリソースの例)
本明細書の各例のいずれにおいても、リソースは、ビデオ表示ネットワーク入力(ソースまたはサーフェスなど)、ビデオ表示ネットワーク出力(ターゲットなど)、変換器、ビデオメモリ、帯域幅、メモリ容量などを含み得る。
ビデオ表示ネットワークのトポロジはリソースと呼ばれることもある。例えば、リソースを構成することは、そのトポロジに関与する個々のリソースでの構成オプションの選択を考慮せずに単にあるトポロジを選択することを含み得る。
(実施例4)
(ビデオ表示ネットワークにおけるビデオパスの例)
ビデオ表示ネットワーク100は複数のビデオパスを備えることができる。例えば、図1に示すように、1つのパスは入力110Aから、変換器130Aを介して出力120Aに至ることができる。別のパスは、入力110Aから変換器130Aを介して出力120Bに至ることができ、以下同様である。
ビデオ表示ネットワーク100のトポロジは、その構成に従った異なるパスが存在するように構成され得る。例えば、変換器130Nの出力をビデオ出力120Nに送る代わりに、構成設定を変更することによってそれを異なるビデオ出力(120Bなど)に経路指定することもできる。
(実施例5)
(ビデオ表示ネットワーク入力の例)
本明細書で説明する各例のいずれにおいても、ビデオ入力(または「ソース」)は、ディジタルサーフェスを提供するものなど、様々な形のいずれかを取ることができる。実際には、それらの入力は、様々なソースモードを使用するように構成され得る。そのようなモードは、幅、高さ、単位形式、ラスタライズされたグラフィックスフィルタリング技法、1次サーフェスチェーン長さ(primary surface chain length)など、またはそれらの組合せといったパラメータを含み得る。
(実施例6)
(ビデオ表示ネットワーク出力の例)
本明細書で説明する各例のいずれにおいてもビデオ出力(または「ターゲット」)は、出力信号を提供するものなど、様々な形のいずれかを取ることができる。出力に記述子を関連付けることができる。この記述子は、形式(DVI、HDMI、HD−15、BNC、Sビデオ、RF、RCAなど)およびHPD認識を指示することができる。出力は、ビデオ符号化タイプとも関連付けられ得る。さらに、ある出力は、別の出力と同期するようにも構成され得る。
実際には、出力は、様々なターゲットモードを使用するように構成され得る。そのようなモードは、アクティブ領域(幅および高さなど)、総領域(幅および高さなど)、アクティブ領域変位(active region displacement)、画素符号化形式、垂直帰線周波数、水平帰線周波数、画素クロック速度、コンテンツ順序、原色、白色点基準、色空間変換マトリクスなど、またはそれらの組合せといったパラメータを含み得る。
(実施例7)
(変換器の例)
本明細書の各例のいずれにおいても、ディジタルビデオ入力表現/ビデオ出力信号変換器は、ビデオコーデックやディジタル/アナログ変換器などの形をとることができる。いくつかの変換器は共用可能である。例えば、クローン(ミラーなど)モードでは、1つのコーデックがその信号を2つの出力に送ることができる。
(実施例8)
(リソースの相互依存性の例)
理論的には、いくつのビデオ表示ネットワーク100の構成でも可能であるが、限られた数の理論的構成だけが動作可能な構成である。実際には、ビデオ表示ネットワーク100のリソースは、構成の相互依存性の影響を受ける。
例えば、ビデオ入力110Aを特定のタイプのものとするように構成すると、大量のビデオメモリを消費し得る。そのような場合、別のビデオ入力(110Nなど)を同じタイプのものとするのに十分な残りのメモリがないことがある。例えば、それは、よりメモリ消費の少ないタイプにしか構成され得ないこともある。
多種多様な他の相互依存性も存在する。例えば、変換器は、特定のビデオ入力タイプだけしか受け入れず、あるいは特定のビデオ出力タイプだけしか生成しないこともある。そのため、特定の入力が特定の変換器との組合せでは動作できない場合などもある。
ゆえに、実際には、所望の構成の実施を阻む1つの障害は、それが動作しない可能性があることである。さらに、(様々な仕方で相互接続され得る)複数のビデオ入力、複数の変換器、および複数のビデオ出力を備えるビデオ表示ネットワークでの無数の理論的に可能な組合せのうちからどの組合せが動作可能であるか決定することは容易ではない。
図3は、ビデオ表示ネットワークでの構成可能なリソースの組合せを示すブロック図である。この例では、理論的に可能な構成300は、構成された第1のリソース302(ビデオ表示ネットワーク入力など)の1つまたは複数を、構成された第3のリソース306(ビデオ表示ネットワーク出力など)の1つまたは複数と接続された、構成された第2のリソース304(ビデオ表示ネットワーク変換器など)の1つまたは複数と接続することによって組み立てられ得る。結果として生じる理論的に可能な構成の集合310を、そこに含まれるリソースの構成に応じて、一部は動作可能であり、一部は動作不能である、可能な構成の膨大な集合体として示す。
そのような膨大な解空間において最適な構成の解を見出すことは、3者間グラフマッチング問題(tri-partite graph matching problem)であり、それはNP完全問題である。したがって、リソースでの可能な構成の数が妥当な数を上回るとき、強引な手法を用いることは問題となる可能性がある。
(実施例9)
(構成の例)
本明細書で説明する各例のいずれにおいても、リソースの構成は、ビデオ表示ネットワークのリソースの集合でのトポロジを選択することや、ネットワーク中の1つまたは複数のリソースでの構成オプション(モードなど)を選択すること(ネットワークが相互接続されるか否か)を含めて、多種多様な形を取ることができる。
(実施例10)
(構成方法の例)
図4に、本明細書で説明するビデオ表示ネットワークのいずれかで構成を実現するために使用され得る構成方法の一例400を示す。この方法も、本明細書で説明するその他の方法のいずれも、1つまたは複数のコンピュータ可読媒体上のコンピュータ実行可能命令によって実施され得る。
410で、ビデオ表示ネットワークの第1のリソースの構成の指示が受け取られる。例えば、ビデオ表示ネットワークの特定のビデオ入力での構成が受け取られ得る。
420で、第1のリソース構成の指示とは別に、ビデオ表示ネットワークの第2のリソースの構成の指示が受け取られる。例えば、ビデオ表示ネットワークの複数の出力の特定のビデオ出力の構成が受け取られ得る。
次いで、430で、構成の指示に従ってビデオ表示ネットワークが構成される。
実際には、ビデオ表示ネットワークの任意のリソース(例えば、2つの異なる入力、2つの異なる出力、2つの異なる変換器、1つの変換器および1つの出力など)についてその他の構成の指示が別個に受け取られ得る。
別個に受け取られる指示は、プログラマチックインタフェースへの呼び出し(例えば、デバイスドライバインタフェース呼び出し)など、2つの異なる呼び出しを使用して受け取られるものを含み得る。例えば、1つのデバイスドライバへの2つの異なる呼び出しが使用され得る。あるいは、同じ呼び出しで2つの異なるパラメータが使用され得る。あるいは、リソースでの別個の値を指示する1つまたは複数のデータ構造が使用され得る。そのような呼び出しは、オペレーティングシステムなどのクライアントからもたらされ得る。
そのようにして、ビデオ表示ネットワークのリソースは、独立に構成され得る。そのような構成は、ビデオ表示ネットワークのトポロジ(例えば、各リソースがどのように相互接続されるかなど)を指示することもできる。
(実施例11)
(暫定的構成の例)
暫定的構成手法を用いれば、無数の可能な動作可能構成の中から望ましい構成を見出すことを含めて、様々な機能を円滑に行うことができる。図5に、図1に示すものなどのビデオ表示ネットワークのリソースの暫定的構成を指示する表500を示す。
この例では、リソースσは暫定的に構成されている(例えば、ビデオ表示ネットワークのリソースの構成パラメータは格納されているが、その構成が完全に動作可能である必要はないなど)。そのような暫定的構成は、部分構成(例えば、ビデオ表示ネットワークリソースのうちの1つのリソースの構成や、ビデオ表示ネットワークでのトポロジの1つの指示など)の受け取りに基づくものとすることができる。暫定的構成ではすべてのリソースの構成が受け取られる必要はない。というのは、完全な構成パラメータセットを伴わない構成は、通常、まだ動作可能ではなく、暫定的構成は、「半動作可能」(semi-functional)ともいわれるからである。あるリソースの部分構成の提供は、そのリソースの「ピンニング」(pinning)とも呼ばれる。必要に応じて、その部分構成は除去され(または指定変更され)得る。部分構成の除去は、「アンピンニング」(ピン解除:unpinning)とも呼ばれる。
(実施例12)
(トランザクショナル構成の例)
ビデオ表示ネットワークの構成を実現するトランザクショナル手法は、前述の暫定的構成に基づくものとすることができる。図6に、トランザクショナル手法によりビデオ表示ネットワーク630(図1に示すビデオ表示ネットワークなど)の構成を実現するための例示的な構成600を示す。
構成例600では、クライアント610はビデオ表示ネットワークでの部分構成情報をサーバ620に送ることができる。コミットを受け取ると、次いで、サーバ620は、部分構成の指示に従ってビデオ表示ネットワーク630を構成することができる。
図7に、トランザクショナル手法によって構成を実行する方法の一例700を示す。710で、ビデオ表示ネットワークでの一連の部分構成が(例えば、サーバによってクライアントから)受け取られる。それらの部分構成を用いて暫定的動作可能構成が構築され得る。
720で、暫定的動作可能構成がコミットされる。コミットすることによって、ビデオ表示ネットワーク(ネットワーク630など)において暫定的動作可能構成を実施することができる。
暫定的動作可能構成は、実施されずに格納されることもある。例えば、構成は、ビデオ表示ネットワークのリソースを構成せずに(例えば、構成コミット指示が処理されるまで)格納され得る。
(実施例13)
(共に動作可能な構成オプション決定の例)
ビデオ表示ネットワークのリソース間の相互依存性のために、一部の理論的に可能な構成オプションは、すでに組み立てられている暫定的動作可能構成に照らしてみると動作可能でないことがある。例えば、リソースσが(例えば図5に示すように)暫定的に構成されていると仮定すると、そのビデオ表示ネットワークの別のリソース(σΣなど)に利用可能な構成オプションは限定され得る。
図8Aに、リソースσΣでの構成オプションの例示的な集合850を示す。別のリソースσが暫定的にどのように構成されているかに照らしてみると、そのうちの構成オプションの部分集合860だけが利用可能である(例えば、動作可能構成になるはずである)。そのような構成では、利用可能な構成オプションは、(暫定的動作可能構成などの)その他の構成オプションと「共に動作可能である」、または暫定的構成を「無効化しない」ものとして説明されることがある。
あるリソースでの共に動作可能な構成オプションの集合860は、「エニュメレーション」とも呼ばれるプロセスにおいて暫定的構成時のフィードバックとして提供され得る。その場合、そのようなフィードバックを用いて、さらなる構成に関する決定(例えば、暫定的動作可能構成をさらに構築する、あるいは以前の暫定的動作可能構成に引き返すなど)が行われ得る。
場合によっては、暫定的動作可能構成から部分構成を除去することが望ましいこともある。例えば、その暫定的動作可能構成が、まだ構成されていないリソースの所望の仕方での構成を許容しないことが発見され得る。したがって、本明細書で説明する構成方法のいずれも、暫定的動作可能構成から部分構成を除去する指示を受け取ることを含み、その指示(または、単に、古いものを指定変更する新しい部分構成)を受け取ったことに応答してその部分構成を除去することができる。このようにして、方法は、(例えば、その暫定的動作可能構成をコミットする前に)以前の暫定的動作可能構成に引き返す(例えば、リソースをアンピンニングする)ことができる。
(実施例14)
(複数のリソースでの共に動作可能な構成オプションの決定の例)
実際には、複数のリソースでの共に動作可能な構成オプションを一度に決定することが望ましいことがある。例えば、所与のトポロジが部分構成の一部として選択された後で、選択されたトポロジと共に動作可能なビデオ表示ネットワークソースでの構成オプションをエニュメレーションすることが望ましいことがある。
図8Bに、それぞれのリソース(σ、σ、σなど)での共に動作可能な構成オプション880A、880B、880Cが指示され、複数のリソースでの構成オプションが一度に指示される構成を示す。図示の共に動作可能な構成オプションは、選択されたトポロジに関して共に動作可能である。これらのオプションは、相互には共に動作可能ではないことがある。例えば第1のリソースでの共に動作可能なオプションの1つを選択すると、別のリソースの共に動作可能なオプションの別の1つを無効化する(それと共に動作可能でなくなるなど)ことがある。
この例では、元のオプション(870A、870B、870Cなど)の少なくとも一部は、選択されたトポロジに照らして利用可能で(例えば、共に動作可能で)はなくなる。オプションが他のリソース(ターゲットなど)にエニュメレーションされるときにも類似の構成が可能である。
そのようなオプションは、ソフトウェア(ビデオドライバなど)によってエニュメレーションされ得る。本明細書で説明する各例のいずれにおいても、エニュメレーションされたオプションのいずれかが1つのリソースに選択された場合、そのような選択が、その他のリソースのいずれかでのオプションの少なくとも1つと共に動作可能になる(例えば、そのすべてを無効化しない)ことを保証することが望ましい。
(実施例15)
(ピンニング時の共に動作可能なオプション無効化の例)
実際には、複数のリソースでのトポロジと共に動作可能な(例えば複数のリソースでの)構成オプションをエニュメレーションした後、そのような構成オプションは、部分的な暫定的構成に含み得る。しかしながら、第1のリソースでの構成オプションの1つをピンニングする(例えば暫定的に選択する)と、別のリソースでの別のオプションを無効化する(例えばそれと共に動作可能でなくなる)ことがある。
図9A〜Cに、あるリソースでの構成オプションを選択することが別のリソースでの構成オプションを無効化する例を示す。1つのトポロジが選択され得る。図9Aに、トポロジを選択した後にエニュメレーションされた共に動作可能なオプション920A、920B、920C(それぞれ、例えば理論的に可能なオプション910A、910B、910Cの部分集合など)を示す。次いで、図9Bに、特定のオプション921が第1のリソースに選択されている(ピンニングされている)ことを示す。その結果、その他のリソースでの構成オプションの一部が利用できなくなる(それらが無効化される)ことがある。この例では、1つのオプションが920B’に現れなくなる。場合によっては、他のオプションも無効化される。あるいはおそらく、どれも無効化されないこともある。
図9Cに、特定のオプション922が別のリソースに選択されている(例えばピンニングされている)ことを示す。その結果、残りのリソースでの構成オプションの一部が利用できなくなることがある。この例では、1つのオプションが920C”に現れなくなる。場合によっては、第1のリソースでのオプションの一部も無効化され得る(例えば、集合920A’(図示せず)を生じるなど)。しかしながら、実際には、1つのリソースがピンニングされた(例えば1つの構成オプションがそのリソースに選択された)後、ピンニングされた構成オプションは、エニュメレーションされた構成オプションの別の1つを選択することによって無効化されない。
図9A〜9Cに示す現象のため、複数のリソースでエニュメレーションを行うときには、あるリソースをピンニングした後に無効化されるオプションの有無をチェックすることが必要になり得る。それは、再エニュメレーションによって実行され得る。
(実施例16)
(別のピンニングシナリオ時の共に動作可能なオプション無効化の例)
図10A〜Cに、あるリソースの構成オプションを選択することが別のリソースの構成オプションを無効化する別の例を示す。1つのトポロジが選択され得る。図10Aに、トポロジを選択した後にエニュメレーションされた共に動作可能なオプション1020A、1020B、1020C(それぞれ、例えば理論的に可能なオプション1010A、1010B、1010Cの部分集合など)を示す。次いで、図10Bに、特定のオプション1021が第1のリソースに選択されている(例えばピンニングされている)ことを示す。その結果、その他のリソースでの構成オプションの一部が利用できなくなる(例えばそれらが無効化される)ことがある。この例では、1つのオプションが1020B’に現れなくなる。場合によっては、他のオプションも無効化される。あるいはおそらく、どれも無効化されないこともある。
図10Cに、特定のオプション1022が別のリソースに選択されている(例えばピンニングされている)ことを示す。その結果、残りのリソースでの構成オプションの一部が利用できなくなることがある。この例では、1つのオプションが1020C”に現れなくなる。場合によっては、第1のリソースでのオプションの一部も無効化され得る(集合1020A’(図示せず)を生じるなど)。しかしながら、実際には、あるリソースがピンニングされた(例えば構成オプションがそのリソースに選択された)後、そのピンニングされた構成オプションは、エニュメレーションされた構成オプションの別の1つを選択することによって無効化されない。他の多くのシナリオが可能である。
(実施例17)
(フィードバックを用いたトランザクショナル手法の例)
図11に、フィードバックを用いたトランザクショナル手法によってビデオ表示ネットワーク1130(図1に示すビデオ表示ネットワークなど)の構成を実現する構成例1100を示す。
この構成例1100では、クライアント1110は、サーバ1120にビデオ表示ネットワークでの部分構成情報を送ることができる。部分構成情報は、そのビデオ表示ネットワークのリソースのいずれのものとすることもできる。部分構成は、そのビデオ表示ネットワークの1つのトポロジを指示することができる。
構成情報(例えば、第1のリソースでの部分構成)を受け取った後で、(例えば第2のリソースでの)共に動作可能な構成オプションが提供され得る。これらの共に動作可能な構成オプションは、その部分構成とは異なるリソースでのものや、異なるパスにあるリソースでのものなどとすることができる。共に動作可能なオプションは、構成情報に基づいて制限され得る(例えば、少なくとも1つの共に動作可能ではないオプションが除去されるなど)。本明細書で説明するように、これらのオプションはエニュメレーションによって提供することができ、エニュメレーションは、複数のリソースについて一度に行うことができる。
その他のリソースでの共に動作可能な構成オプションは、そのビデオ表示ネットワークのリソース間の相互依存性に基づくものとすることができる。クライアントは、共に動作可能な構成オプションの中から選択し、暫定的動作可能構成を構築し続けることができる。
コミットを受け取ると、サーバ1120は、次いで、部分構成の指示にしたがってビデオ表示ネットワーク1130を構成することができる。
図12に、サーバから見た、フィードバックを用いて構成を実行する方法の一例1200を示す。この方法は、図11に示す構成によって動作し得る。1210で、部分ビデオ表示ネットワーク構成の指示が受け取られる。例えば、この部分構成は、ビデオ表示ネットワークの第1のリソースでの構成を指示することができる。
1220で、(先に図11Aまたは11Bについて説明したように)共に動作可能な構成オプションが指示される。代替として、各オプションが指示される前に指示されるオプションから除去されるはずの1つまたは複数の共に動作可能ではない構成オプションを除いて、すべての構成オプションを指示することもできる。この方法は、その構成をビデオ表示ネットワークにコミットするためのコミット(図示せず)を含むこともできる。
図13に、クライアントから見た、フィードバックを用いた構成を実行する例示的な方法1300を示す。この方法は、図11に示す構成によって動作し得る。図1310で、部分ビデオ表示ネットワーク構成の指示が送られる。例えば、この部分構成は、そのビデオ表示ネットワークの第1のリソースでの構成を指示することができる。
1320で、(先に図11Aまたは11Bについて説明したように)共に動作可能な構成オプションの集合が指示される。この場合もやはり、この方法は、その構成をビデオ表示ネットワークにコミットするためのコミット(図示せず)を含むこともできる。
(実施例18)
(ビデオドライバにおけるサーバ実装の例)
共に動作可能な構成オプションを決定することは、ビデオドライバに委ねられ得る。本明細書で説明する各例のいずれにおいても、サーバによって実行されるアクションは、ビデオドライバ(ビデオミニポートなど)によって実行され得る。
図14に、フィードバックを用いた暫定的構成が実施され得るアーキテクチャの一例1400を示す。この例は、クライアント1410(例えば、グラフィックスサブシステムといったオペレーティングシステム、アプリケーションなど)、相互依存論理1425を伴うドライバ1420(カーネルモードで動作するデバイス固有のビデオドライバなど)、および複数の表示装置1440A〜1440Nにビデオ出力を提供するビデオアダプタ1430を含む。
ビデオドライバ1420は、本明細書で説明する各例のいずれにおいてもサーバとして働くことができる。相互依存論理1425は、部分構成を受け入れる関数、共に動作可能な構成オプションをエニュメレーションする関数、および構成をコミットする関数を含み得る。
このように、表示アダプタのハードウェアベンダは、望ましいビデオ表示ネットワーク構成を決定するのに役立つ適当な相互依存論理1425を組み込んだ適当なドライバ1420を開発することができる。
(実施例19)
(利点の例)
実施例18で論じたように、ビデオドライバに相互依存論理を実装すると、一定の制限事項のセットを用いて所与のハードウェア実装形態での適用範囲を狭めることによって、適当な構成の決定を簡単にすることができる。この論理が、そうではなく、オペレーティングシステムにあった場合、そのタスクはより複雑になり得る(例えば、完全に包括的であり、可能なあらゆる相互依存性をサポートすることが必要になる)。
(実施例20)
(ビデオ表示ネットワーク構成の例)
図15に、部分構成によるビデオ表示ネットワークの構成方法の一例1500を示す。1504で、ビデオ表示ネットワークでのトポロジが選択される。1506で、ソースでの構成オプションがエニュメレーションされ、ピンニングされる。1508で、ターゲットの構成オプションがエニュメレーションされ、ピンニングされる。コミット(図示せず)を用いてその構成が実施され得る。
本明細書の各例のいずれにおいても、ソースはターゲットの前にピンニングされるものと示されるが、常にそうする必要はない。例えば、ターゲットはソースの前にピンニングされ得る。
(実施例21)
(動作可能な構成に収束する解空間のトラバースの例)
図16に、可能な動作可能複数ビデオ出力構成の組合せのグラフをトラバースする例示的方法1600の流れ図を示す。そのような方法は、サーバ(ビデオドライバ1420など)と対話するクライアント(クライアント1410など)によって使用され得る。この例ではビデオミニポートを示すが、別のビデオドライバ(ビデオドライバ1420など)も使用され得る。
この例は、固定されたトポロジの動作可能ビデオ表示ネットワーク構成のサーチも含むが、他の例は、そのサーチの間にトポロジを変更するオプションを含むこともできる。例えば、トポロジは、ビデオ表示ネットワークソース上のビデオ表示ソースモードのピンニングが、別のビデオ表示ネットワークソースでの少なくとも1つの他のビデオ表示ソースモードを無効化した後で、変更されるように求められることがある。
1602で、所望のビデオ表示ネットワークトポロジが選択されている。
1604で、所望のビデオ表示ネットワークトポロジが与えられたとすると、少なくとも1つのビデオ表示ネットワークターゲット(すべてのターゲットなど)上で少なくとも1つのモニタサポートビデオ信号モード(すべてのモードなど)をサポートするビデオ表示ネットワーク構成(トポロジなど)を求めて、ビデオミニポートが照会される。
1606で、獲得されたビデオ表示ネットワーク構成(トポロジなど)中の少なくとも1つのビデオ表示ソース(すべてのソースなど)上の利用可能なビデオ表示ソースモードの集合がエニュメレーションされる。
1608で、ビデオ表示ソースモードが少なくとも1つのビデオ表示ネットワークソース(すべてのソースなど)上にピンニングされる。
1610で、ビデオ表示ソースモードがそこにピンニングされる次のビデオ表示ネットワークソースがあるかどうか判定される。ピンニングされる次のビデオ表示ネットワークソースがある場合、プロセスは1612に進む。そうでない場合、プロセスは1614に進む。
1612で、以前にエニュメレーションされたビデオ表示ソースモードのいずれかが無効化されているかどうか判定される。そうである場合、プロセスは1606に戻る。そうでない場合、プロセスは1608に戻る。この例では、別のビデオ表示ソースモードの選択に基づいて以前にエニュメレーションされたビデオ表示ソースモードの少なくとも1つが無効化され得るが、ビデオ表示ソースモードのすべてがそのような選択によって無効化され得るとは限らない。
1614で、獲得されたビデオ表示ネットワーク構成中の少なくとも1つのビデオ表示ターゲット(すべてのターゲットなど)上の利用可能なビデオ表示ターゲットモードの集合がエニュメレーションされる。
1616で、ビデオ表示ターゲットモードが少なくとも1つのビデオ表示ネットワークターゲット(すべてのターゲットなど)上にピンニングされる。
1618で、ビデオ表示ターゲットモードがそこにピンニングされる次のビデオ表示ネットワークターゲットがあるかどうか判定される。ピンニングされる次のビデオ表示ネットワークターゲットがある場合、プロセスは1620に進む。そうでない場合、プロセスは1622に進む。
1620で、以前にエニュメレーションされたビデオ表示ターゲットモードのいずれかが無効化されているかどうか判定される。そうである場合、プロセスは1614に戻る。そうでない場合、プロセスは1616に戻る。
1622で、結果として生じる動作可能なビデオ表示ネットワーク構成の組合せがコミットされる。
(実施例22)
(動作可能構成に収束する解空間トラバースの第1の詳細な例)
図17A〜Bに、可能な動作可能複数ビデオ出力構成の組合せのグラフをトラバースする方法の第1の詳細な例1700の流れ図を示す。そのような方法は、サーバ(ビデオドライバ1420など)と対話するクライアント(クライアント1410など)によって使用され得る。この例はビデオミニポートを示すが、別のビデオドライバ(ビデオドライバ1420など)も使用され得る。
1702で、初期のビデオ表示ネットワークトポロジが提供されている。
1704で、初期のビデオ表示ネットワークトポロジが与えられたとすると、少なくとも1つのビデオ表示ネットワークターゲット(すべてのターゲットなど)上の少なくとも1つのモニタサポートビデオ信号モード(すべてのモードなど)をサポートするビデオ表示ネットワーク構成(トポロジなど)を求めて、ビデオミニポートが照会される。
1706で、1704の照会によって指定されたビデオ表示ネットワークトポロジがサポートされるかどうかについて判定される。指定されたビデオ表示ネットワークトポロジがサポートされる場合、プロセスは1708に進む。そうでない場合、プロセスは1710に進む。
1708で、現在のビデオ表示ネットワークトポロジが最も望ましいビデオ表示ネットワークトポロジであるかどうかについて判定される。そうである場合、プロセスは1712に進む。そうでない場合、プロセスは1714に進む。
1710で、少なくとも1つの他の初期のビデオ表示ネットワークトポロジが存在するかどうかについて判定される。そうである場合、プロセスは1704に戻る。そうでない場合、プロセスは1790で終了する。というのは、所望のサーチパラメータを伴う動作可能構成の組合せへの収束がないからである。
1712で、獲得されたビデオ表示ネットワーク構成中の少なくとも1つのビデオ表示ネットワークソース(すべてのソースなど)上の利用可能なビデオ表示ソースモードの集合がエニュメレーションされる。次いでプロセスは1722に進む。
1714で、ビデオ表示ネットワークトポロジは、ビデオ表示パス(マルチパスなど)の付加または除去によって新しい有効なビデオ表示ネットワークトポロジに調整される。次いでプロセスは1716に進み、そこで、その新しい有効なビデオ表示ネットワークトポロジがサポートされるかどうかについて判定される。そうである場合、プロセスは1708に戻る。そうでない場合、プロセスは1718に進む。
1718で、有効なビデオ表示ネットワークトポロジによる増分変更によって獲得され得る少なくとも1つの他の所望のビデオ表示ネットワークトポロジがあるかどうかについて判定される。ある場合、プロセスは1720に進む。ない場合、プロセスは1790で終了する。
1720で、別の所望のビデオ表示ネットワークトポロジが、ヌルトポロジによってのみ獲得可能(例えば、トポロジがそれ以上調整され得ないなど)であるかどうかについて判定される。そうである場合、プロセスは1704に戻る。そうでない場合、プロセスは1714に戻る。
1722で、エニュメレーションされたビデオ表示ソースモードのいずれかがそれぞれのビデオ表示ネットワークソースに求められるモードを欠いているかどうかについて判定される。そうである場合、プロセスは1724に進む。そうでない場合、プロセスは1732に進む。
1724で、任意のビデオ表示ネットワークソースがピンニングされたビデオ表示ソースモードを持つかどうかについて判定される。そうである場合、プロセスは1728に進み、そこでピンニングされたビデオ表示ソースモードがアンピンニングされ、次いで1712に戻る。そうでない場合、プロセスは1730に進む。1728におけるビデオ表示ソースモードアンピンニングは、ビデオ表示ネットワークソースの重要度に従って順序付けされ得る(例えば、ソースモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。
1730で、ビデオ表示ネットワークソースに利用可能な少なくとも1つの他のビデオ表示ソースモードがあるかどうかについて判定される。ある場合、プロセスは1732に戻り、そこでビデオ表示ソースモードが少なくとも1つのビデオ表示ネットワークソース上に(例えばすべてのソースについて)ピンニングされ、次いで1734に進む。ない場合、プロセスは1790で終了する。1732におけるビデオ表示ソースモードピンニングは、ビデオ表示ネットワークソースの重要度に従って順序付けされ得る(例えば、ソースモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。
1734で、ビデオ表示ソースモードがそこにピンニングされる次のビデオ表示ネットワークソースがあるかどうか判定される。ピンニングされる次のビデオ表示ネットワークソースがある場合、プロセスは1736に進む。そうでない場合、プロセスは1738に進む。
1736で、以前にエニュメレーションされたビデオ表示ソースモードのいずれかが無効化されているかどうか判定される。そうである場合、プロセスは1712に戻る。そうでない場合、プロセスは1732に戻る。
1738で、獲得されたビデオ表示ネットワーク構成中の少なくとも1つのビデオ表示ネットワークターゲット(すべてのターゲットなど)上の利用可能なビデオ表示ターゲットモードの集合がエニュメレーションされる。
1742で、エニュメレーションされたビデオ表示ターゲットモードのいずれかが、それぞれのビデオ表示ネットワークターゲットに求められるモードを欠いているかどうかについて判定される。そうである場合、プロセスは1744に進む。そうでない場合、プロセスは1752に進む。
1744で、任意のビデオ表示ネットワークターゲットがその上にピンニングされたビデオ表示ターゲットモードを持つかどうかについて判定される。そうである場合、プロセスは1748に進み、そこでピンニングされたビデオ表示ターゲットモードがアンピンニングされ、次いで1738に戻る。そうでない場合、プロセスは1750に進む。1748におけるビデオ表示ターゲットモードのアンピンニングは、ビデオ表示ネットワークターゲットの重要度に従って順序付けされ得る(例えば、ターゲットモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。
1750で、ビデオ表示ネットワークターゲットに利用可能な少なくとも1つの他のビデオ表示ターゲットモードがあるかどうかについて判定される。ある場合、プロセスは1752に戻り、そこでビデオ表示ターゲットモードが、少なくとも1つのビデオ表示ネットワークターゲット上に(例えばすべてのターゲットについて)ピンニングされ、次いで1754に進む。ない場合、プロセスは1790で終了する。1752におけるビデオ表示ターゲットモードのピンニングは、ビデオ表示ネットワークターゲットの重要度に従って順序付けされ得る(例えば、ターゲットモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。
1754で、ビデオ表示ターゲットモードがそこにピンニングされる次のビデオ表示ネットワークターゲットがあるかどうか判定される。ピンニングされる次のビデオ表示ネットワークターゲットがある場合、プロセスは1756に進む。そうでない場合、プロセスは1780に進む。
1756で、以前にエニュメレーションされたビデオ表示ターゲットモードのいずれかが無効化されているかどうか判定される。そうである場合、プロセスは1738に戻る。そうでない場合、プロセスは1752に戻る。
1780で、結果として生じる動作可能なビデオ表示ネットワーク構成の組合せがコミットされる。
(実施例23)
(動作可能構成に収束する解空間のトラバースの第2の詳細な例)
図18A〜Cに、可能な動作可能複数ビデオ出力構成の組合せのグラフをトラバースする方法の第2の詳細な例1800の流れ図を示す。そのような方法は、サーバ(ビデオドライバ1420など)と対話するクライアント(クライアント1410など)によって使用され得る。この例にはビデオミニポートを示すが、別のビデオドライバ(ビデオドライバ1420など)も使用され得る。
1802で、初期のビデオ表示ネットワークトポロジが提供されている。
1804で、初期のビデオ表示ネットワークトポロジが与えられたとすると、少なくとも1つのビデオ表示ネットワークターゲット(すべてのターゲットなど)上で少なくとも1つのモニタサポートビデオ信号モード(すべてのモードなど)をサポートするビデオ表示ネットワーク構成(トポロジなど)を求めて、ビデオミニポートが照会される。
1806で、1804の照会によって指定されたビデオ表示ネットワークトポロジがサポートされるかどうかについて判定される。指定されたビデオ表示ネットワークトポロジがサポートされる場合、プロセスは1808に進む。そうでない場合、プロセスは1810に進む。
1808で、現在のビデオ表示ネットワークトポロジが最も望ましいビデオ表示ネットワークトポロジであるかどうかについて判定される。そうである場合、プロセスは1812に進む。そうでない場合、プロセスは1814に進む。
1810で、少なくとも1つの他の初期のビデオ表示ネットワークトポロジが存在するかどうかについて判定される。そうである場合、プロセスは1804に戻る。そうでない場合、プロセスは1890で終了する。というのは、所望のサーチパラメータを伴う動作可能構成の組合せへの収束がないからである。
1812で、獲得されたビデオ表示ネットワーク構成中の少なくとも1つのビデオ表示ネットワークソース(すべてのソースなど)上の利用可能なビデオ表示ソースモードの集合がエニュメレーションされる。次いでプロセスは1822に進む。
1814で、ビデオ表示ネットワークトポロジは、ビデオ表示パス(マルチパスなど)の付加または除去によって新しい有効なビデオ表示ネットワークトポロジに調整される。次いでプロセスは1816に進み、そこでその新しい有効なビデオ表示ネットワークトポロジがサポートされるかどうかについて判定される。そうである場合、プロセスは1808に戻る。そうでない場合、プロセスは1818に進む。
1818で、有効なビデオ表示ネットワークトポロジによる増分変更によって獲得され得る少なくとも1つの他の所望のビデオ表示ネットワークトポロジがあるかどうかについて判定される。ある場合、プロセスは1820に進む。ない場合、プロセスは1890で終了する。
1820で、別の所望のビデオ表示ネットワークトポロジが、ヌルトポロジによってのみ獲得可能(例えば、トポロジがそれ以上調整され得ないなど)であるかどうかについて判定される。そうである場合、プロセスは1804に戻る。そうでない場合、プロセスは1814に戻る。
1822で、エニュメレーションされたビデオ表示ソースモードのいずれかがそれぞれのビデオ表示ネットワークソースに求められるモードを欠いているかどうかについて判定される。そうである場合、プロセスは1824に進む。そうでない場合、プロセスは1832に進む。
1824で、任意のビデオ表示ネットワークソースがピンニングされたビデオ表示ソースモードを持つかどうかについて判定される。そうである場合、プロセスは1828に進み、そこでピンニングされたビデオ表示ソースモードがアンピンニングされ、次いで1812に戻る。そうでない場合、プロセスは1830に進む。1828におけるビデオ表示ソースモードアンピンニングは、ビデオ表示ネットワークソースの重要度に従って順序付けされ得る(例えば、ソースモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。
1830で、ビデオ表示ネットワークソースに利用可能な少なくとも1つの他のビデオ表示ソースモードがあるかどうかについて判定される。ある場合、プロセスは1832に戻り、そこでビデオ表示ソースモードが少なくとも1つのビデオ表示ネットワークソース上で(例えばすべてのソースについて)ピンニングされ、次いで1834に進む。ない場合、プロセスは1831に進む。1832におけるビデオ表示ソースモードのピンニングは、ビデオ表示ネットワークソースの重要度に従って順序付けされ得る(例えば、ソースモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。
1831で、他の任意の所望のビデオ表示ネットワークトポロジが与えられたとすると、ビデオ表示ネットワークソースに利用可能な少なくとも1つの他のビデオ表示ソースモードがあるかどうかについて判定される。ある場合、プロセスは1818に戻る。ない場合、プロセスは1890で終了する。
1834で、ビデオ表示ソースモードがそこにピンニングされる次のビデオ表示ネットワークソースがあるかどうか判定される。ピンニングされる次のビデオ表示ネットワークソースがある場合、プロセスは1836に進む。そうでない場合、プロセスは1838に進む。
1836で、以前にエニュメレーションされたビデオ表示ソースモードのいずれかが無効化されているかどうか判定される。そうである場合、プロセスは1812に戻る。そうでない場合、プロセスは1832に戻る。
1838で、獲得されたビデオ表示ネットワーク構成中の少なくとも1つのビデオ表示ネットワークターゲット(すべてのターゲットなど)上の利用可能なビデオ表示ターゲットモードの集合がエニュメレーションされる。
1842で、エニュメレーションされたビデオ表示ターゲットモードのいずれかが、それぞれのビデオ表示ネットワークターゲットに求められるモードを欠いているかどうかについて判定される。そうである場合、プロセスは1844に進む。そうでない場合、プロセスは1852に進む。
1844で、任意のビデオ表示ネットワークターゲットがその上にピンニングされたビデオ表示ターゲットモードを持つかどうかについて判定される。そうである場合、プロセスは1848に進み、そこでピンニングされたビデオ表示ターゲットモードがアンピンニングされ、次いで1838に戻る。そうでない場合、プロセスは1850に進む。1848におけるビデオ表示ターゲットモードのアンピンニングは、ビデオ表示ネットワークターゲットの重要度に従って順序付けされ得る(例えば、ターゲットモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。
1850で、現在のビデオ表示ネットワークトポロジおよびビデオ表示ネットワークソース上にピンニングされたビデオ表示ソースモードが与えられたとすると、ビデオ表示ネットワークターゲットに利用可能な少なくとも1つの他のビデオ表示ターゲットモードがあるかどうかについて判定される。ある場合、プロセスは1852に戻り、そこでビデオ表示ターゲットモードが、少なくとも1つのビデオ表示ネットワークターゲット上に(例えばすべてのターゲットについて)ピンニングされ、次いで1854に進む。そうでない場合、プロセスは1856に進む。1852におけるビデオ表示ターゲットモードのピンニングは、ビデオ表示ネットワークターゲットの重要度に従って順序付けされ得る(例えば、ターゲットモードに、重要度が最高のものから最低のものへ優先順位を付けることができる)。
1854で、ビデオ表示ターゲットモードがそこにピンニングされる次のビデオ表示ネットワークターゲットがあるかどうか判定される。ピンニングされる次のビデオ表示ネットワークターゲットがある場合、プロセスは1868に進む。そうでない場合、プロセスは1880に進む。
1856で、何がより重要であるとみなされるか、すなわち、現在のビデオ表示ネットワークトポロジか、それとも現在ビデオ表示ネットワークソース上にピンニングされているビデオ表示ソースモードかについて判定される。現在ビデオ表示ネットワークソース上にピンニングされているビデオ表示ソースモードがより重要であるとみなされる場合、プロセスは1862に進む。現在のビデオ表示ネットワークトポロジがより重要であるとみなされる場合、プロセスは1864に進む。
1862で、少なくとも1つの他の所望のビデオ表示ネットワークトポロジがあるかどうか判定される。ある場合、プロセスは1818に戻る。ない場合、プロセスは1866に進む。
1864で、現在のビデオ表示ネットワークトポロジが与えられたとすると、少なくとも1つの他の所望のビデオ表示ソースモードがあるかどうかについて判定される。ある場合、プロセスは1828に戻る。ない場合、プロセスは1862に進む。
1866で、少なくとも1つのビデオ表示ネットワークソース上で利用可能な少なくとも1つの他の望ましいビデオ表示ソースモードがあるかどうかについて判定される。ある場合、プロセスは1864に進む。ない場合、プロセスは1890で終了する。
1868で、以前にエニュメレーションされたビデオ表示ターゲットモードのいずれかが無効化されているかどうかが判定される。そうである場合、プロセスは1838に戻る。そうでない場合、プロセスは1852に戻る。
1880で、結果として生じる動作可能なビデオ表示ネットワーク構成の組合せがコミットされる。
(実施例24)
(目標構成を実現する方法の例)
図19に、(例えば、モニタによってサポートされるビデオモードの点で述べられている)目標に照らしてビデオ表示ネットワークのためのトポロジを決定する例示的な方法1900を示す流れ図を示す。
1902で、プロセスは初期トポロジを用いて開始する。1906で、目標により適合するように(例えば、目標により適合する暫定的動作可能構成を生成することによって)初期トポロジが変更される。そのような変更は、ビデオ表示ネットワークのリソース間の相互依存性を考慮に入れることができる。
可能な目標はビデオモードまたは他の構成オプションに関連し得る。例えば、1つの目標は、ビデオ表示ネットワークターゲット上のビデオモード集合が、それらに接続されたモニタすべてでの優先モードをサポートしなければならないものと仮定して、そのビデオ表示ネットワークソース上のサポートされるグラフィックスビデオ表示ネットワークソースモード集合を最大にするように、利用可能なビデオ出力コーデックを介して、ビデオ表示ネットワークにおいてビデオ表示ネットワークターゲットからビデオ表示ネットワークソースまで経路指定する最善の方法とすることができる。あるいは、そのような目標が達成され得ない場合、目標は、ビデオ表示ネットワークターゲット上のビデオモード集合が、指定された優先順位でそれらに接続されたモニタ上の優先モードをサポートしなければならないものと仮定して、そのビデオ表示ネットワークソース上のサポートされるグラフィックスビデオ表示ネットワークソースモード集合を最大にするように、利用可能なビデオ出力コーデックを介して、ビデオ表示ネットワークにおいてビデオ表示ネットワークターゲットからビデオ表示ネットワークソースまで経路指定する最善の方法とすることができる。あるいは、そのような目標が達成されえない場合、目標は、ビデオ表示ネットワークターゲット上のビデオモード集合が、それらに接続されたモニタによってサポートされるビデオモードの少なくとも1つをサポートしなければならないものと仮定して、そのビデオ表示ネットワークソース上でのサポートされるグラフィックスビデオ表示ネットワークソースモード集合を最大にするように、利用可能なビデオ出力コーデックを介して、ビデオ表示ネットワークにおいてビデオ表示ネットワークターゲットからビデオ表示ネットワークソースまで経路指定する最善の方法とすることができる。
必要に応じて、第1の目標が試みられ得る。次いで、第1の目標が達成され得ない場合、第2の目標が試みられ、以下同様である。目標は「最適な」構成として説明されることもある。
(実施例25)
(その他の目標の例)
前述の目標以外に、他の構成目標が求められることもあり、それらは本明細書で説明する技術によって円滑に行われ得る。例えば、以下を、別々に、または何らかの組合せとして達成することが重要とされ得る。
1.レンダリングターゲット上での空間解像度を最大にする
2.レンダリングターゲット上での色解像度を最大にする
3.レンダリングターゲットの1つでの空間解像度と色解像度両方を最大にする(医療用画像処理アプリケーション、コンピュータ援用設計などの場合)
4.ビデオストリーム同期問題を回避するために、リアルタイムテレビ放送表示を含むビューを表示するモニタ上のリフレッシュ速度をマッチさせる。そのような同期問題は、アーチファクトや、フレーム落ち(グリッチなど)や、その両方として現れる。
5.1つまたは複数のGPUが同じビデオメモリバスをめぐって競合していると想定して、3D性能を高めるために、許容可能な最低のレンダリングモードでビューを駆動することによってビデオメモリ帯域幅をできるだけ温存する
そのような目標は、単純なビデオドライバの範囲を超えているため、そのような目標は、ビデオドライバの外部に(例えば、シェル、グラフィックスサブシステム、DXランタイムなどといった、オペレーティングシステムの上位層に)意思決定能力を配置することによって達成され得る。
可能なレンダリングモードの絶対量の多さにより、ドライバはとてもそれらをエニュメレーションすることができない。構成目標を達成するために、(本明細書の各例で説明するような)照会またはトラバース手法を用いることができる。
さらに別の目標が以下のように分類され得る。
1.画像品質のために最適化されたモードでは、画像を可能な限り最適に表示することに最も配慮する。
2.性能のために最適化されたモードでは、ビデオメモリバスを過負荷状態にしないことに最も配慮する(例えば、各コーデックがビデオメモリから読み取る必要があり、ゆえに、ビデオメモリ帯域幅を消費するなど)。
3.電力消費のために最適化されたモードでは、それが2つのモニタのどちらかで優先モードを駆動することができない場合でさえ、最も電力消費の少ないコーデックを選択し、他のすべてのコーデックをオフにしようとすることがある。
通常、任意の構成における暗黙的目標は、ビデオ出力が、それぞれのモニタによってサポートされる少なくとも1つのモードをサポートすることである。性能または電力管理考慮事項によって指定変更されない限り、通常、別の目標は、ビデオ出力が、そのそれぞれのモニタの優先モードをサポートしようとすることであり、その場合、モニタの重要度には、構成要求の一部としてクライアント(オペレーティングシステムなど)によって優先順位が付けられる。
例えば、複数のビュー(クローンビューなど)で同じレンダリングターゲットを表示するために、ビデオドライバは、できるだけ多くのモニタをそれらの優先モードで実行させようとし、そうしないことは、要求された出力の1つが駆動され得ないことを意味するときにだけコーデックを共用するべきである。
例えば、3つのビデオ出力と、2つだけのコーデックが関与する場合、モニタの少なくとも1つがその優先モードで実行されていない場合でさえも、3つの出力すべてをサポートするよう求められたときにコーデックを共用することが容認され得る。しかしながら、出力の2つだけをサポートするよう求められたとき、コーデックを共用せずに優先モードが両方のモニタ上で達成され得る場合には、コーデックを共用すべきではない。
(実施例26)
(電力消費に関連する目標の例)
いくつかのシナリオでは、電力消費に関する目標を指定することが望ましいことがある。例えば、節電状態にはより小さい電力消費を伴う構成が優先され、全出力状態のときには、性能および/または画像品質が優先され得る。本明細書の各例のいずれにおいても、そのような目標が実施され得る。
(実施例27)
(デバイスドライバインタフェースの例)
実施例45に、一連の関数(EnumerateAvailVidPNTargets、ConstrainNodesOnVidPNTargetsなど)およびその目的が列記されている。そのような関数は、ビデオデバイスドライバ(ビデオミニポートなど)によってサポートされるデバイスドライバインタフェースに含み得る。これらの関数は、クライアントによって、様々なアルゴリズム(サーチアルゴリズムなど)を用いて、増分的にビデオ表示ネットワークを構築するのに使用され得る。
(実施例28)
(構成管理のための関数の例)
実施例45に、構成管理のための一連の関数が詳述されている。例えば、ある関数(GetActiveVidPNTopologyなど)はビデオ表示ネットワーク構成(トポロジなど)を識別する。別の関数(CommitVidPNImplなど)は、ビデオ表示ネットワーク構成をコミットする。別の関数(EnumCurrentlyAvailVidPNSourceModeSetsなど)は、所望のビデオ表示ネットワーク構成が与えられたとして、利用可能なビデオ表示ソースモードをエニュメレーションする。別の関数(EnumCurrentlyAvailVidPNTargetModeSetsなど)は、所望のビデオ表示ネットワーク構成が与えられたとして、利用可能なビデオ表示ターゲットモードをエニュメレーションする。別の関数(PinModeOnVidPNSourceなど)は、ビデオ表示ネットワークソース上にビデオ表示ソースモードをピンニングする。別の関数(PinModeOnVidPNTargetなど)は、ビデオ表示ネットワークターゲット上にビデオ表示ターゲットモードをピンニングする。別の関数(UnpinModeOnVidPNSourceなど)は、ビデオ表示ネットワークソース上のビデオ表示ソースモードをアンピンニングする。別の関数(UnpinModeOnVidPNTargetなど)は、ビデオ表示ネットワークターゲット上のビデオ表示ターゲットモードをアンピンニングする。別の関数(CreateVidPNImplなど)は、ビデオ表示ネットワーク構成を作成する。これらの関数の任意の組合せが、プログラマチックインタフェース(デバイスドライバインタフェースなど)の一部として実施され得る。そのようなインタフェースは、(例えばクライアントプログラムなどのための)サービスとしてこれらの関数へのアクセスを提供することができる。
(実施例29)
(構成に到達する呼び出しの例)
図20に、構成に到達する呼び出しの例を示すブロック図を示す。そのような呼び出しは、デバイスドライバインタフェース(DDI)の一部として実施され得る。
システム2000は、ドライバ2002(ビデオミニポートなど)とグラフィックスカーネルサブシステム2004の間の通信を含む。指定されたビデオ表示ネットワーク構成が与えられたとして、EnumAvailVidPNTargetsを呼び出して、所与のビデオカードによってサポートされる利用可能なビデオ表示ネットワークターゲットがエニュメレーションされ得る。EnumAvailVidPNSourcesを呼び出して、その所与のビデオカードによってサポートされる利用可能なビデオ表示ネットワークソースがエニュメレーションされ得る。これら2つの呼び出しは、システム初期設定の一部とすることができる。代替として、これら2つの呼び出しを、ビデオアダプタ到達イベント(PCIエクスプレスやドッキングステーションホットプラグなど)の一部とすることもできる。状況によっては、ヌルビデオ表示ネットワーク構成様式がサポートされ、(例えば初期設定に適するように)すべての利用可能なビデオ表示ターゲットおよびソースを報告すべきことを知らせることもできる。
IsMonitorConnectedを使用して、エニュメレーションされたビデオ表示ターゲットのどれがそれらに接続されたモニタを備えるか判定され得る。GetMonitorDescriptorを呼び出して、接続されたモニタごとにそれぞれのモニタの記述子が獲得され得る。ConstrainModesOnVidPNTargetsを呼び出して、モニタの記述子から獲得されたモニタ機能を踏まえて、エニュメレーションされたビデオ表示ターゲットのそれぞれに対するビデオモード制約条件が設定され得る。
ビデオ表示ネットワーク構築時に、任意選択でGetInitialVidPNImplを呼び出して、ビデオミニポートによって推奨されるビデオ表示ネットワークの暫定的構成が獲得され得る。CreateVidPNImplを呼び出し、ビデオミニポートによる任意選択の推奨に基づいてビデオ表示ネットワークの暫定的構成が作成され得る。代替として、CreateVidPNImplが、ミニポートによる任意選択の推奨を無視してビデオ表示ネットワークの暫定的構成を作成することもできる。
半動作可能なビデオ表示ネットワークを作成することの一部として、ビデオ表示ソースモードがビデオ表示ネットワークソース上にピンニングされるまで、EnumCurrentlyAvailVidPNSourceModeSets、PinModeOnVidPNSource、およびUnpinModeOnVidPNSourceが呼び出され得る。ピンニングされるビデオ表示ソースモードが、ビデオ表示ネットワークソースで機能することが知られている場合、PinModeOnEachVidPNSourceを呼び出して、ビデオ表示ソースモードがビデオ表示ネットワークソースすべてに一度にピンニングされ得る。
動作可能なビデオ表示ネットワークを完成することの一部として、ビデオ表示ターゲットモードがビデオ表示ネットワークターゲット上にピンニングされるまで、EnumCurrentlyAvailVidPNTargetModeSets、PinModeOnVidPNTarget、およびUnpinModeOnVidPNTargetが呼び出され得る。ピンニングされるビデオ表示ターゲットモードが、ビデオ表示ネットワークターゲットで機能することが知られている場合、PinModeOnEachVidPNTargetを呼び出して、ビデオ表示ターゲットモードがビデオ表示ネットワークターゲットすべてに一度にピンニングされ得る。
ビデオ表示ネットワーク暫定的構成をコミットするには、CommitVidPNImplが呼び出され得る。動作可能なビデオ表示ネットワークの暫定的構成は、ビデオ表示ネットワークの各ソースごとに1次サーフェスチェーンがセットアップされた後でコミットされ得る。CommitVidPNImplは、入力として、ビデオ表示ネットワークトポロジおよびビデオ表示ソースおよびターゲット(1次サーフェスチェーンなど)の外部の他のOS所有リソースを必要とすることがある。
(実施例30)
(ビデオ出力とレンダリングターゲットの分離の例)
ビデオレンダリングデバイスドライバが(オペレーティングシステムに、したがって間接的にそのオペレーティングシステム上で走っているアプリケーションに)公開するインタフェースは、ビデオレンダリングデバイスが、そこで表示される画像を物理的に駆動しているビデオ出力と、アプリケーションが、それが表示しようとするコンテンツをそこに論理的にレンダリングしているレンダリングターゲットの概念を、2つの別個の独立したエンティティとして区別する必要はない。レンダリングターゲットは、ビデオレンダリングデバイス上の各ビデオ出力と、暗黙的、静的に関連付けられ得る。しかしながら、そのような手法は制約的であることがある。
本明細書で説明する各例のいずれにおいても、レンダリングターゲットの明示的概念は、レンダリングモードの概念によってサポートされ得る。オペレーティングシステムにおける任意のデバイスの基本動作様式記述子である表示モードは次の2つのものとして説明することができる。それらは、(図1または図25に示すものなど、出力またはターゲットでの)出力様式記述子であるビデオモードと、(図1または図25に示すものなど、入力またはソースでの)入力様式記述子であるレンダリングモードである。そのような手法は、複数のビデオ出力を備えるシステムで特に有用である。ビデオドライバ(DDIなど)へのインタフェースは、ビデオモードとレンダリングモードの別個の仕様を許容し得る。
ゆえに、論理的レンダリングターゲットは、その物理的ビデオ出力と切り離して動的に管理され得る。それらのターゲットは、実行時に選択のビデオ出力にマップされ、必要に応じてそれらを出力間で宛先変更し、あるいは単一のレンダリングターゲットを同時に複数の出力にマップすることさえもできる。
(実施例31)
(モニタ到達/離脱(Monitor Arrival/Departure)管理の例)
本明細書で説明する技術のいずれも、モニタが実行中にシステムに接続され、またはシステムから取り外されるシナリオに適用され得る。例えば、モニタがシステムに到達し、またはシステムから離脱するときにシステムによってイベント(HPDイベントなど)が検出され、構成がしかるべく選択され得る。また、(クローンビュー、拡張デスクトップ管理などで)ビデオストリームを異なる出力に宛先変更する変更も実施され得る。前述のように論理的レンダリングターゲットをその物理的ビデオ出力と切り離して管理することによって、そのような動的構成変更での堅固なサポートが実現され得る。
(実施例32)
(技術統合の例) 本明細書で説明する例のいずれにおいても、ビデオ表示装置は様々な形を取ることができる。例えば、図21に、本技術の、複数のビデオ表示装置を備えるコンピュータシステムへの統合の一例を示す。
図21は、複数ビデオ出力装置システムの例示的なハイレベルアーキテクチャ2100を示す図である。デスクトップ2110、表示属性アプレット2112、および全画面グラフィックスアプリケーション2114は、グラフィックスサブシステム2120と通信する。グラフィックスサブシステム2120は、ビデオドライバ2130および別のビデオドライバ2132を駆動する。両ビデオドライバ(ビデオミニポートなど)は、ハードウェア抽象化層(HAL)2140を介してビデオアダプタ2150および2152と通信し、それらが出力された信号を複数のビデオ出力装置の任意の組合せに送る。そのようなビデオ出力装置は、CRTモニタ2160、フラットパネルモニタ2162、ディジタルプロジェクタ2164、LCDモニタ2166、仮想現実ゴーグル2168などを含み得る。図示したもの以外の組合せも可能である。
(実施例33)
(所望の構成に収束する解空間トラバースの例)
図22に、ビデオ構成が属性に基づいて決定され得るクライアント/サーバシステム2200を示す。クライアント2202はサーバ2204と通信する。クライアント2202は、優先順位情報を指定する優先順位2206を含む。
そのような優先順位情報は、1つまたは複数の所望のトポロジのリスト、それぞれのソースでの望ましいモードのリスト、それぞれのターゲットでの望ましいモードのリストなど、あるいはそれらの何らかの組合せを含み得る。優先順位情報は、特定のソースモードがトポロジ選択より重要であるかどうかも含み得る。さらに、望ましいソースモードおよび望ましいターゲットモードにも(例えば重要度が最高のものから最低のものへ)優先順位を付けることができる。
そのような優先順位は、優先順位リストの形とすることができる。しかしながら、優先順位は、論理への組み込み(クライアント2202でのif−thenステートメントなど)によっても実現され得る。
図23に、先に図22に示したシステムでの場合などの、所望のビデオ構成オプションの優先順位リストに基づいてビデオ構成を決定する方法の一例2300を示す。
2302で、少なくとも1つの第1のリソースでの部分ビデオ構成が提出される。
2304で、その部分ビデオ構成と共に動作可能な構成オプションのリストが受け取られる。
2306で、優先順位リスト中の所望のオプションが、その部分ビデオ構成と共に動作可能な構成オプションのリストに存在するかどうかについて判定される。
2308で、所望のオプションが存在しないという判定に応答して、第1のリソースのために、変更された部分構成が再提出される。実際には、優先順位間のトレードオフが望ましい。
(実施例34)
(トポロジが変更され得る所望の構成に収束する解空間のトラバースの例)
図24に、可能な動作可能複数ビデオ出力構成の組合せのグラフをトラバースする方法の別の例2400の流れ図を示す。ただし、この例は、所望の動作可能ビデオ表示ネットワーク暫定的構成の決定時にトポロジを変更する可能性を含む。
2402で、特定のトポロジが選択される。
2404で、ビデオ表示ソースモードが選択され、ビデオ表示ソース上にピンニングされる。
2406で、(エニュメレーションなどによって)任意のビデオ表示ターゲットモードが利用可能であるかどうか判定される。そうである場合、プロセスは2408に進む。そうでない場合、プロセスは2410に進む。
2408で、ビデオ表示ターゲットモードが選択され、ビデオ表示ターゲットにピンニングされる。次いで、この方法は(コミット後などに)終了し得る。
2410で、以前に選択されたトポロジを持つことが、選択されたビデオ表示ソースモードを持つことより重要であるかどうか判定される。答えがYESである場合、2412で異なるビデオ表示ソースモードが選択され、そのビデオ表示ソース上にピンニングされ、プロセスは2406に戻る。そうでない場合、2414で異なるトポロジが選択され、プロセスは2404に戻る。
この例は、ソースモードとトポロジの間のトレードオフを示しているが、リソース間の他のトレードオフも可能である。さらに、その他の例のいくつかに示すように、所望のオプションに優先順位を付けることができる。
この例で実施され、図24に示す論理は、先に、図16で示したのと同様に、複数のビデオ表示ソースおよび/または複数のビデオ表示ターゲットに適応するように変更され得る。例えば、図24の2410〜2414で実施される論理は、図16の1608と1610の間、および/または1616と1618の間に挿入することができる。
この例では、サーチは、図24の2402で行われるように、初期トポロジを用いて開始する。そのトポロジにおけるビデオ表示パスでは、ビデオ表示ターゲットモードがそのビデオ表示パスのビデオ表示ネットワークターゲットにピンニングされる前に、ビデオ表示ソースモードがそのビデオ表示パスのビデオ表示ネットワークソースにピンニングされ得る。例えば、サーチは、単一のソースビュービデオ表示パスを用いて開始し、ソースとターゲット両方にモードをピンニングし、次いで、別のビデオ表示パスをそこに付加することによってトポロジを増大させる。代替として、トポロジは、ビデオ表示ソースモードだけがピンニングされるときにも変更され得る。
(実施例35)
(構成サービスの使用の例)
構成サービスの実行例は、次にビデオ表示ネットワークの構成を始めることができる。この例では、そのトポロジに3つのソースを有するビデオ表示ネットワーク、およびそれら3つのソースのそれぞれにエニュメレーションされた以下のビデオ表示ソースモード集合を想定する。
Figure 0004927348
クライアントが、ビデオ表示ネットワークソースのそれぞれで可能な最高の空間解像度を得ようとしており、第1のビデオ表示ネットワークソースが最も重要であり、第2のビデオ表示ネットワークソースが次に重要であり、第3の最後のビデオ表示ネットワークソースが最も重要度が低いと想定すると、それは、第1のビデオ表示ネットワークソース上に最高のモードをピンニングしようとするはずであり、それは(4,1280×1024)である。
しかしながら、そうすることにより、クライアントは第2のビデオ表示ネットワークソース上のモード(4,1280×1024)、(5,1600×1200)、(6,2000×1500)を無効化する。クライアントはこのことをまだ知らないため、第2のビデオ表示ネットワークソース上に以前にエニュメレーションされた最高のモード((6,2000×1500)など)をピンニングしようとするが、それは、指定されたビデオ表示ソースモードが無効化されていることを示す状況コードと共に失敗する。
この時点で、クライアントは、ビデオ表示ネットワークソースすべてにわたって利用可能なビデオ表示ソースモードを再エニュメレーションし、以下の3つの集合を獲得する。
Figure 0004927348
クライアントは、次いで、第2のビデオ表示ネットワークソース上に利用可能な最高のビデオ表示ソースモード((3,1024×768)など)をピンニングするはずである。しかしながら、この追加モードをサポートすると、ビデオカードは、もはや、第3のビデオ表示ネットワークソース上で(2,800×600)も(3,1024×768)もサポートすることができない。
この場合もやはりこの事実を知らないため、クライアントは、そのビデオ表示ソースに以前にエニュメレーションされた最高のモード((3,1024×768)など)をピンニングしようとする。それに失敗すると、クライアントはすべてのソースにわたって利用可能なモードを再エニュメレーションし、以下の集合
Figure 0004927348
を取得し、第3の最後のビデオ表示ネットワークソースにただ1つのモード選択肢が残される。
この時点で、クライアントは、このソースモード分配を受け入れ、それから動作可能なビデオ表示ネットワークに到達するためにターゲットモードをピンニングすることもでき、あるいは、640×480空間解像度が十分な高さではないと判断し、より適した解(例えば、第1のビデオ表示ネットワークソース上に1280×1024空間解像度を設定することを伴わないもの、あるいは、そのトポロジに2つだけのビデオ表示ネットワークソースを有するものなど)を見出すために引き返すこともできる。
以下の印を付けたモードリストは全プロセスを要約するものであり、各集合における太字で下線を付したモードはピンニングされたモードを表し、取り消し線を付したモードは、第1のビデオ表示ネットワークターゲット上のモードがピンニングされたときに無効化されたモードを表し、二重取り消し線を付したモードは、第2のビデオ表示ネットワークターゲットがピンニングされたときに無効化されたモードを表す。
Figure 0004927348
前述のアルゴリズムは、レンダリングマルチモード収束に単純化した貪欲法(Greedy approach)を用いるものであり、バックトラックを用いないことがわかる。そうではなく、クライアントがより複雑なサーチ(深さ優先サーチなど)を用いてより適するレンダリングマルチモードを見出すこともできる。また、前述のアルゴリズムは、図16の方法例1600の場合のように、収束プロセスを通して所望のトポロジが固定されるものと想定していることもわかる。
(実施例36)
(マルチモニタ/マルチビューシステムの例)
図25は、マルチモニタ/マルチビューシステムの一例2500の図であり、以下の形式論を用いて説明することができる。場合によっては、「ビデオ表示ネットワーク」の代わりに「VidPN」という用語が用いられ、「ビデオ表示(video presenting)」の代わりに「ビデオ表示(video present)」が用いられることもある。また、場合によっては、「暫定的構成」に言及するのに「実装形態」という用語も用いられる。システム2500は、本明細書で説明する各例のいずれとも一緒に用いることができる。
1.Mはモニタの集合2510m=(δ)であり、式中、
a.モニタmは、ビデオレンダリングデバイスの出力を監視するビデオ表示装置であり、
b.δ∈{EDID v1.0,EDID v1.1,EDID v1.2,EDID v1.3,DIEXTを伴うEDID v1.3}はモニタ記述子である。
2.Tは、1台のビデオレンダリングデバイスの、ビデオ表示ターゲットの集合2520t=(δ)であり、式中、
a.δ∈{(形式[δ],HPD認識[δ])}はビデオ表示ターゲット記述子であり、式中、
i.形式[δ]∈VC≡{DVI,HDMI,HDMI−2,HD−15,BNC,4ピンSビデオ,7ピンSビデオ,RF,RCAコンポジット,3コンポーネントRCA,その他}はビデオ出力形式タイプであり、
ii.HPD認識[δ]∈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サポートの存在は、モニタ記述子、δを獲得する可能性を示唆する)。
Figure 0004927348
c.同期されている:
Figure 0004927348
は、ビデオ出力同期述部であり、2つの出力が与えられたとすると、それらが相互に同期しているか否かを判定する。
3.Κはビデオ表示コーデックの集合2530κ=(δΚ)であり、式中、
a. δΚはビデオコーデック記述子である。
4.Σはビデオ表示ソースの集合2550σ=(δΣ)であり、式中、
a.δΣ∈{線形,その他}はビデオ表示ソース記述子であり、
b.モニタ上に表示される各ビデオ表示ネットワーク入力のコンテンツをビューという。
5.Vはビューの集合2560v=(δ)であり、式中、
a.δ∈{(重要度[d],向き[d])}はビュー記述子であり、式中、
i.重要度[d
Figure 0004927348
{1次,2次,その他}
ii.向き[d
Figure 0004927348
{左,右,中央,その他}
である。
6.
Figure 0004927348
は32ビット空間座標の集合である。
7.Θは、表示モードの集合θ=(wΘ,hΘ,rΘ,fΘ)であり、式中、
a.wΘ∈S\{0}は表示モード幅である。
b.hΘ∈S\{0}は表示モード高さである。
c.rΘ∈RΘは表示モードフレーム速度であり、式中、
i.RΘ≡{a.b|a,b
Figure 0004927348
{1..0xFFFF}}は、Hz単位の表示モードフレーム速度の集合である。
d.fΘ∈FΘは表示モード単位形式(すなわちモニタの有効色解像度、すなわちモニタ技術の関数である物理的パラメータ)であり、式中、
i.FΣ≡{1ビット,5ビット,6ビット,8ビット,10ビット,12ビット,16ビット,18ビット,32ビット,以下未定}は表示モード色解像度の集合である。
e.gΘ∈[1.0,+∞)∪{SD−601,HD−709}は、モニタ技術の輝度応答関数であるモニタ転送関数(すなわちモニタガンマ)である。
8.Βはビデオ表示ターゲットモードの集合β=(AΒ,TΒ,Δ(AΒΒ),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ΒΒ)∈{(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
Figure 0004927348
{1..0xFFFFFFFF}}は、Hz単位の整数垂直リフレッシュ速度(rationalvertical refresh rate)の集合であり、普通、50から200Hzの範囲内にある。
f.hrΒ∈HRΒは水平リフレッシュ速度であり、水平同期速度、ライン速度、あるいは水平帰線周波数とも呼ばれ、式中、
i.HRΒ≡{a.b|a,b
Figure 0004927348
{1..0xFFFFFFFF}}は、Hz単位の分数水平リフレッシュ速度(fractional horizontal refresh rate)の集合であり、普通、10から200KHzの範囲内にある。
g.crΒ∈CRΒは画素クロック速度であり、式中、
i.CRΒ≡{a|a
Figure 0004927348
{1..0xFFFFFFFF}}はHz単位の画素クロック速度の集合であり、普通、1から500MHzの範囲内にある。
h.oΒ∈OΒはコンテンツ順序であり、式中、
i.OΒ≡{Progressive,Interlaced_upperFieldFirst,Interlaced_lowerFieldFirst}は、コンテンツ順序タイプの集合であり、式中、プログレッシブ方式コンテンツ順序でのフィールド速度=垂直同期速度であり、インターレース方式コンテンツ順序でのフィールド速度=2x垂直同期速度である。
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.
Figure 0004927348
は黒色点オフセット(すなわちセットアップ電圧)である。
n.
Figure 0004927348
は白色点オフセットである。
o.
Figure 0004927348
はビデオ表示ターゲットモード優先序数であり、式中、モード優先度は{0x01..0xff}の範囲によって表され、0x01が最高の優先度を示し、0xffが最低の優先度、または無関係なモード優先を示す。0x00は不明/初期設定なしに予約される。
一定のビデオモードが業界規模の(事実上と正式両方の)標準化によって定義される。これらのモードは、以下の表2に列記するもの、ならびに以下のVESA汎用タイミング式(GTF)によって定義される連続的なモードの集合を含み得る。
βGTF≡βGTF,VR∪βGTF,HR∪βGTF,CR
式中、
Figure 0004927348
である。
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
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リリースにおけるD3DDDIMULTISAMPLE_TYPEエニュメレーションタイプによって定義される、ラスタライズされたグラフィックスフィルタリング技法の集合である。
e.nΓ∈Nは、1次サーフェスチェーン長さ(すなわち1次サーフェスチェーン中のサーフェスの数)である。
f.
Figure 0004927348
は、ビデオ表示ソースモード優先序数であり、式中、モード優先度は{0x01..0xff}の範囲によって表され、0x01が最高の優先度を示し、0xffが最低の優先度または無関係なモード優先を示す。0x00は不明/初期設定なしに予約される。
10.ρMT∈Tは、モニタ接続性トポロジ、すなわちモニタから、それらが接続されるビデオ表示ターゲットへのマッピングである。
11.ρTK∈Kは、ビデオ表示ターゲット/コーデックトポロジ、すなわちビデオ表示ターゲットから、それらを駆動するビデオ表示コーデックへのマッピングであり、ビデオカード上のプログラマブルクロスバーによって定義される。
12.ρKΣ∈Σは、ビデオ表示コーデック/ソーストポロジ、すなわちビデオ表示コーデックから、コーデックがそこから視覚コンテンツをストリーミングするビデオ表示ソースへのマッピングである。
13.ρTΣ∈Σは、ビデオ表示ターゲット/ソーストポロジ2540、すなわち、その基礎をなすビデオ出力コーデックがそこから視覚コンテンツをストリーミングするビデオ表示ソースから、そのコンテンツがそこにストリーミングされるビデオ表示ターゲットへのマッピングである。
14.
Figure 0004927348
は、サポートされるVidPNトポロジの集合、すなわちビデオ表示ターゲットの集合とビデオ表示ソースの集合からなる対
Figure 0004927348
から、その対でのサポートされるVidPN実装形態のそれぞれの集合へのマッピングであり、各実装形態は、ビデオ表示ソースが、ビデオ出力コーデックを介して、それらが駆動するビデオ表示ターゲットに経路指定される方法を明示的に指定する。
15.
Figure 0004927348
をVidPN実装形態といい、式中、
a.
Figure 0004927348
はVidPNビデオ表示ターゲットの集合である。
b.
Figure 0004927348
はVidPNビデオ表示ソースの集合である。
c.
Figure 0004927348
はVidPNトポロジの集合である。
16.ρΣV∈VΣおよびρVΣ∈Σは、ビューと基礎をなすビデオ表示ソースの間の1:1対応であり、すなわちρΣVおよびρVΣはΣとVの間で同型である。
17.
Figure 0004927348
は、マルチコーデックビデオ表示ターゲットモード集合ベクトル、すなわち、ビデオ出力コーデックから、それらがサポートするビデオ表示ターゲットモード集合へのマッピングである。
18.
Figure 0004927348
は、マルチターゲットビデオ表示ターゲットモード集合ベクトル、すなわち、ビデオ表示ターゲットから、それらがサポートするビデオ表示ターゲットモード集合へのマッピングである。
19.
Figure 0004927348
は、マルチモニタビデオモニタソースモード集合ベクトル、すなわち、モニタから、それらがサポートするビデオモニタソースモード集合へのマッピングである。
20.
Figure 0004927348
は、マルチソースビデオ表示ソースモード集合ベクトル、すなわち、ビデオ表示ソースから、それらがサポートするビデオ表示ソースモード集合へのマッピングである。
21.
Figure 0004927348
は、マルチコーデックビデオ表示ターゲットモードベクトル、すなわち、ビデオ出力コーデックから、それらのコーデックが、それらが接続されたビデオ表示ターゲットのビデオ出力上で駆動するビデオ表示ターゲットモードへのマッピングである。
22.
Figure 0004927348
は、マルチ出力ビデオ表示ターゲットモードベクトル、すなわち、ビデオ表示ターゲットから、それらのビデオ表示ターゲット上で、それらが接続されたビデオ出力コーデックによって駆動されているビデオ表示ターゲットモードへのマッピングである。
23.
Figure 0004927348
は、マルチモニタビデオ表示ターゲットモードベクトル、すなわち、モニタから、それらの上で、それらが接続されたビデオ表示ターゲットによって駆動されているビデオ表示ターゲットモードへのマッピングである。
24.
Figure 0004927348
は、マルチモニタ表示モードベクトル、すなわち、モニタから、モニタの入力上で駆動される基礎をなすビデオ表示ターゲットモードの結果として、それらの上に表示される表示モードへのマッピングである。
25.
Figure 0004927348
は、マルチソースビデオ表示ソースベクトル、すなわち、ビデオ表示ソースから、それらのソースが設定されるビデオ表示ソースモードへのマッピングである。
26.VidPN実装形態は、ビデオ表示ソースモードが、そのビデオ表示ソースのすべてにおいて正常に選択されている場合に限って半動作可能であるという。
27.VidPN実装形態は、それが半動作可能であり、かつビデオ表示ターゲットモードがそのビデオ表示ターゲットのすべてにおいて正常に選択されている場合に限って動作可能であるという。
(実施例37)
(定義の例)
複雑な相互依存性の集合が関与していると仮定して、いくつかの形式的定義がいくつかの実装形態に使用され得る。いくつかの(ビュー,出力)対が、ビデオ出力コーデック(CRTC DAC、TMDSなど)への入力を表し得るビデオ表示ソースと、ビデオカード(HD−15、DVI、Sビデオなど)上のビデオ出力を表し得るビデオ表示ターゲットに組み込まれ得る。
表示モードが、グラフィックススタックがユーザに表示されるレンダリングコンテンツを提供するための1次サーフェス形式を指定し得るビデオ表示ソースモードと、それぞれのビデオ出力で駆動されるビデオ信号形式を指定し得るビデオ表示ターゲットモードに組み込まれ得る。
マルチ出力ビデオカードのビデオ表示機能は、ビデオ表示ソースの集合を、VidPNトポロジを介してビデオ表示ターゲットの集合に関連付けることができる、ビデオ表示ネットワーク(VidPN)の概念によってモデル化される。VidPNは、ビデオ表示ソースモードが、そのビデオ表示ソースのそれぞれでピンニングされる場合に限って半動作可能とみなされ得る。VidPNは、それが半動作可能であり、かつビデオ表示ターゲットモードが、そのビデオ表示ターゲットのそれぞれでピンニングされる場合に限って動作可能とみなされ得る。
単一のビデオ表示ソースと単一のビデオ表示ターゲットとの関連をビデオ表示パスと呼ぶことができる。単一のビデオ表示ソースと複数のビデオ表示ターゲットとの関連をビデオ表示マルチパスと呼ぶことができる。
前述の定義を用いると、ビデオミニポートのジョブは、表示モード管理の状況においては、それが駆動しているそれぞれのビデオカード上のビデオ表示構成の状態を表すアクティブなVidPNを管理するとともに、そのそれぞれがアクティブと設定され得る、動作可能なVidPNを増分的に構築するためにクライアントの要求に応えることであると説明され得る。
(実施例38)
(複数のビデオ出力表示モード解の例)
マルチ出力ビデオカードに接続されたモニタ上の表示モードを変更すれば、ビデオミニポートの開発者らが、その場合、同じ基礎をなす物理装置を駆動していた特定のビデオドライバスタック間の複雑な同期を実施しなければならなかった、その世界の「単一出力動作」ビューに苦慮することもなくなり、単一のビデオドライバスタックによってサービスされる所与のビデオカード上での動作可能なVidPNの明示的なトランザクションベースのコミットによって置き換えられ得る。
マルチ出力ビデオ表示モード解は、以下のような複数の基準に左右され得る。それらは、(a)ハードウェア制限事項(それぞれのビデオ表示ターゲットに接続されたモニタによってサポートされるビデオモード集合など)、(b)動作モード考慮事項(それぞれのビデオ表示ターゲットに接続されたモニタによって優先される特定のビデオモードなど)、(c)性能考慮事項(ビデオ出力コーデックによるビデオメモリバスでの競合の低減によって達成されるレンダリング性能の改善など)、(d)電力管理考慮事項(利用されないビデオ出力コーデックを使用不能にし、その機能を抑制することによって達成されるビデオカードの電力消費の低減など)、(e)熱放散考慮事項(あるユニットには、別のユニットが動作している間に冷却する機会が与えられ、逆の場合も同じであり、ゆえに、ビデオカードによって放散されるJ/秒の数が一定の所望の上限を超えて増大することがない、複数のユニット間で連続的に相互切換えを行うことによって達成されるビデオカードの動作温度の低減など)、および(f)有用性考慮事項(すべてのモニタを優先モードで駆動することができないと想定すると、ユーザの1次モニタ上でモニタの優先モードを駆動することが、それを第2のモニタ上で駆動するより重要であり、その場合どのモニタが1次であるかの決定は、ユーザ指定の動作モードの関数であるなど)である。例えば、DVI LCD、SビデオHDTV、およびHD−15 CRT/3D眼鏡が与えられたとすると、ユーザは、最良の明瞭さを有するDVI LCD上で作業/読取り/ブラウズを行い、最大のアクティブ画素領域を有するSビデオHDTV上で映画を見、最高のリフレッシュ速度および最適なゲーム体験をサポートするHD−15 CRT/3D眼鏡でゲームをプレーしようとすることができる。
(実施例39)
(解空間の例)
そのターゲット上で利用可能な、可能なすべてのビデオ表示ターゲットモード集合、および利用可能なビデオ表示ソースモードをその入力間で分配する様々なすべての方法を備え、それらのそれぞれの可用性は、(基礎をなすビデオコーデックにおけるハードウェアスケーリングの存在などの因子に基づく)それぞれの出力上で駆動されるビデオモードの関数である、可能なすべてのVidPN実装形態を含む解空間は、単純で強引なエニュメレーションでは解決困難なことがある。Tビデオ表示ターゲット、Kコーデック、およびΣビデオ表示ソースの一般的な場合での強引でない手法は、古典的な3者間グラフマッチング問題と類似しており、それはNPCであることが知られている(例えば、多項式時間で実行され、理想的な、または大域的に最適な解を見出す公知のアルゴリズムがないなど)。理想的な解に可能な限り近い近似解を求めることが望ましい。
(実施例40)
(複雑さの例)
どの構成が動作可能であるか決定することは複雑なタスクである。例えば、所与の構成について、以下を考慮することが必要になり得る。
1.どのビデオ出力を駆動するのにどのビデオ出力コーデックが使用され得るか
2.どのレンダリングターゲットの1次サーフェスをビデオ信号に変換するのにどのビデオコーデックが使用され得るか
3.ビデオ出力間での可能なビデオモード集合分配はどのようなものか
4.各ビデオコーデックが駆動することのできる可能なビデオモードは何か
5.レンダリングターゲット間での可能なグラフィックスレンダリングモード分配はどのようなものか。
サーチを複雑にする問題のいくつかは、コードが不十分なリソースであること、およびコーデックが普通は出力より少ないことであり、そのため、クローンビューでは、可能な場合は常に、複数の出力にわたって単一のコーデックを共用することが有益である。そのような手法は、各モニタが両方ともサポートする共通ビデオモードを持たない場合には、機能しないことがある同じビデオモードを両方のモニタに強制するという欠点を持つ(例えば、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つのドライバだけがその優先ビデオモードで駆動され得ることを意味する。
あるいは、あるLCDは、1024×768、1280×1024、1600×1200(優先)をサポートすることができるとする。そして、あるプロジェクタは、640×480、800×600(優先)、および1024×768をサポートすることができるものとする。共用は、どちらのモニタもその優先モードで駆動され得ないことを意味する。
また、すべてのコーデックが等しく作成されるとは限らない。ビデオカードは、1つが他方より多くのモードを実行し、あるいはそれらのいくつかをより適切に実行することができる異なるコーデックを持つことがある。特定のモードが特定のコーデックで利用可能である(例えば、1つのコーデックは16ビットだけを行うことができ、別のコーデックは32ビットモードだけを行うことができるなど)場合には、状況がより一層複雑になり得る。
最後に、クロスバーを用いてコーデックを異なる出力に経路指定変更することができるが、その制限事項、およびコーデックのビデオ出力の技術との非互換性の結果として、特定のコーデックが特定の出力の部分集合に限定されることになり得る(例えば、CRTCはDVIを駆動することができず、TMDSはSビデオのHD−15を駆動することができないなど)。
可能なすべての実装形態をエニュメレーションするという強引な手法(brute force approach)を回避するために、代わりに、収束手法が用いられ得る。
(実施例41)
(ビデオドライバに決定を委ねることの利点の例)
本明細書で説明する各例のいずれにおいても、特定の暫定的構成がそのビデオアダプタで動作可能であるかどうかの決定は、デバイスドライバによって達成され(に委ねられ)得る。1つの可能な代替方法は、ビデオアダプタの集合(すべての知られているビデオアダプタなど)に及ぶ決定を処理することができる一般例の一般解を構築することである。しかしながら、そのような解は、膨大な数のシナリオを処理する論理を必要とするはずである。
そうではなく、デバイスドライバに決定を委ねることによって、デバイスドライバをより軽量にすることができ、それが一般例を解決する必要がなくなる。例えば、デバイスドライバは、対応するビデオアダプタが実施することのできない(例えば、ハードウェアに存在しない)シナリオを処理するための論理を含む必要がない。このようにして、デバイスドライバのサイズが縮小され、(一般解に比べて)その性能(速度など)が増大され得る。
(実施例42)
(トポロジとソース/ターゲットの間の比較の例)
トポロジは、その複数のオプション(ビデオ表示パスなど)が同時に構成され得る、構成可能なリソースとして扱われ得る。一度に1つのオプション(ソース/ターゲットモードなど)だけが構成され得るビデオ表示ソース/ターゲットに比較する。モードは、所与のモード集合内で相互に排他的とすることができ、他方、表示パスは必ずしも相互に排他的とする必要はないが、そうすることもできる。
(実施例43)
(手法例)
2つの可能な手法は、照会に基づく手法およびトラバースに基づく手法を含む。照会に基づく手法には、OSによって提供された要件の集合を満たす解を求めて表示ミニポートに照会することが関与し得る。トラバースに基づく手法には、それぞれ、そのターゲットとソースに選択された所望のビデオ表示ターゲットモードとビデオ表示ソースモードを用いて動作可能なVidPN実装形態を増分的に構築することによって、解空間をナビゲートすることが関与し得る。VidPNのほぼ最適な実装形態を決定することは、ビデオミニポートに任せることができる。
代替として、OSは、ビデオミニポートに、(1)DDI側でのそれに対する適合が、ビデオ表示ターゲットモードエニュメレーション時にOSによって検証され得る、そこに接続されたモニタを持つ各VidPNターゲットごとのビデオ表示ターゲットモード集合要件(例えば、ビデオカードは、接続されたモニタによってサポートされないビデオ信号モードを公開してはならないなど)、および(2)表示ミニポートが、優先モニタソースモードが、まず、より好ましいモニタ上でサポートされるVidPN実装形態を見出すことができ、システムに接続されたあらゆるモニタ上での優先モニタソースモードサポートがその理想解である、供給された優先順位方式に基づいてモニタの優先モニタソースモードをサポートするビデオ表示ターゲットモード集合の指針を供給することもできる。
VidPNソース上でサポートされるグラフィックスビデオ表示ソースモードのほぼ最適な分配を見出すことは、グラフィックスサブシステムのクライアント(シェルなど)に任せることができ、その場合、ドライバは、単に、指定された動作状態下でのビデオカードの機能を報告するAPIによって、それぞれのビデオ表示ソースモード集合分配解空間をトラバースすることができることを公開するだけである。貪欲法と同様に単純な手法も、グラフベースのサーチと同様に複雑な手法も用いられ得る。
(実施例44)
(コンピューティング環境の例)
図26および以下の説明は、開示の技術が実施され得るコンピューティング環境の一例の簡単な一般的説明を提供するためのものである。必須ではないが、以下では、開示の技術を、パーソナルコンピュータ(PC)によって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで説明する。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、開示の技術は、ハンドヘルド機器、マルチプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータシステム構成を用いて実施することもできる。また、開示の技術は、タスクが、通信ネットワークを介してリンクされたリモート処理装置によって実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモート両方の記憶装置に位置することができる。
図26を参照すると、開示の技術を実施するシステムの一例は、処理装置2602、システムメモリ2604、およびシステムメモリ2604を含む様々なシステムコンポーネントを処理装置2602に結合するシステムバス2606を備える従来型のPC2600の形で汎用コンピューティングデバイスを含む。システムバス2606は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかの種類のバス構造のいずれでもよい。システムメモリ2604は、読取り専用メモリ(ROM)2608およびランダムアクセスメモリ(RAM)2610を含む。PC2600内の諸要素間の情報転送を支援する基本ルーチンを含む基本入出力システム(BIOS)2612は、ROM2608に格納される。
PC2600は、さらに、ハードディスク(図示せず)との間で読取りおよび書込みを行うハードディスクドライブ2614、取り外し可能磁気ディスク2617との間で読取りおよび書込みを行う磁気ディスクドライブ2616、および取り外し可能光ディスク2619(CD−ROMなどの光媒体)との間で読取りおよび書込みを行う光ディスクドライブ2618を含む。ハードディスクドライブ2614、磁気ディスクドライブ2616、および光ディスクドライブ2618は、それぞれ、ハードディスクドライブインタフェース2620、磁気ディスクドライブインタフェース2622、および光ドライブインタフェース2624によってシステムバス2606に接続される。各ドライブおよびそれに関連するコンピュータ可読媒体は、PC2600にコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性記憶を提供する。この例示的動作環境では、磁気カセット、フラッシュメモリカード、ディジタルビデオディスク、CD、DVD、RAM、ROMなど、PCからアクセス可能なデータを格納することのできる他の種類のコンピュータ可読媒体を使用することもできる。
ハードディスクドライブ、磁気ディスク2617、光ディスク2619、ROM2608、またはRAM2610には、オペレーティングシステム2630、1つまたは複数のアプリケーションプログラム2632、その他のプログラムモジュール2634、およびプログラムデータ2636を含むいくつかのプログラムモジュールを格納することができる。ユーザは、キーボード2640やポインティングデバイス2642(マウスなど)といった入力装置を介してPC2600にコマンドおよび情報を入力することができる。他の入力装置(図示せず)は、ディジタルカメラ、マイクロホン、ジョイスティック、ゲームパッド、衛生パラボラアンテナ、スキャナなどを含み得る。上記その他の入力装置は、しばしば、システムバス2606に結合されたシリアルポートインタフェース2644を介して処理装置2602に接続されるが、パラレルポートや、ゲームポート、ユニバーサルシリアルバス(USB)といった他のインタフェースによっても接続され得る。システムバス2606には、ビデオアダプタ2648などのインタフェースを介して、モニタ2646または他の種類の表示装置も接続される。スピーカやプリンタ(図示せず)など、他の周辺出力装置も含み得る。
PC2600は、リモートコンピュータ2650など、1つまたは複数のリモートコンピュータへの論理接続を用いてネットワークで接続された環境で動作することができる。リモートコンピュータ2650は、別のPC、サーバ、ルータ、ネットワークPC、またはピアデバイスなど他の一般のネットワークノードとすることができ、図26には記憶装置2652だけしか示されていないが、通常、PC2600に関連して前述した諸要素の多くまたはすべてを含む。図26に示す論理接続は、ローカルエリアネットワーク(LAN)2654および広域ネットワーク(WAN)2656を含む。そのようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、インターネットでよく見られるものである。
LANネットワーク環境で使用されるとき、PC2600は、ネットワークインタフェース2658を介してLAN2654に接続される。WANネットワーク環境で使用されるとき、PC2600は、通常、モデム2660またはインターネットなどのWAN2656を介して通信を確立する他の手段を含む。モデム2660は、内蔵でも外付けでもよく、シリアルポートインタフェース2644を介してシステムバス2606に接続することができる。ネットワーク化環境では、パーソナルコンピュータ2600に関連して示すプログラムモジュール、またはその一部は、リモート記憶装置に格納することもできる。図示のネットワーク接続は例示であり、コンピュータ間で通信リンクを確立する他の手段も使用され得る。
(実施例45)
(仕様例)
以下は、本明細書で説明する様々な技術をサポートするビデオ表示ネットワークを実施するための仕様の一例である。この例では、ビデオ表示ネットワーク(video presenting network)は、「ビデオ表示ネットワーク(video present network)」または「VidPN」と呼ばれることがある。このビデオ表示ネットワークでの特定の構成は「VidPN実装形態」と呼ばれることがある。
説明する関数は、APIやDDIといったプログラマチックインタフェースに一体化することができる。そのようなインタフェースは、オペレーティングシステムなどのクライアントによるアクセスのためにデバイスドライバによって実施され得る。
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
(実施例46)
(モニタの相対的重要度の例)
本明細書の各例のいずれにおいても、複数のモニタを処理するビデオドライバ(ビデオミニポートなど)は、推奨される動作可能構成を提供するよう求められることがある。そのような場合、モニタの相対的重要度が指定され得る。例えば、モニタが(例えば、重要度が最大のものから最小のものまで)ランク付けされ得る。その場合、ドライバは、指定された相対的重要度に従って構成を提供することができる。
(実施例47)
(ステートレス実装形態の例)
本明細書で説明する技術のいくつかは、ビデオドライバが、暫定的構成の状態(例えばそれがピンニングされ、アンピンニングされている)を維持する手法を使用して説明されている。しかしながら、ステートレスの手法も用いられ得る。このやり方では、ビデオドライバは、(暫定的構成などの)状態を追跡する必要がなく、より軽量で簡単なものにすることができる。必要に応じて、クライアントソフトウェアは、所望の構成の決定時に状態を追跡することもできる。
そのような手法では、プログラミングインタフェース(DDIなど)を用いて、暫定的構成の状態に関する情報が渡され得る。例えば、データ構造を用いて構成詳細が保持され、インタフェースを介して渡され得る。
(実施例48)
(ステートレスドライバインタフェースの例)
以下は、本明細書で説明する様々な技術をサポートするビデオ表示ネットワークを実施するための、ステートレスビデオ表示ネットワーク管理ミニポートインタフェースを含む、カーネルモードドライバインタフェース(DDIなど)の一例である。この例では、ビデオ表示ネットワーク(video presenting network)を「ビデオ表示ネットワーク(video present network)」または「VidPN」ともいう。ビデオ表示ネットワークの特定の構成を「VidPN実装形態」ともいう。また、この例では、「ミニポート」という語を使用するが、そこで説明する技術は、任意の表示アダプタまたはビデオドライバに適用され得る。
カーネルモードドライバの一例は、ビデオミニポートの一部とすることができる。各物理GPUは独自のアダプタとして扱われ、アダプタは、以下で検索されるHANDLE hAdapterによって表され得る。単一のGPUが複数の出力(ヘッドなど)を持つ場合、それは、やはり、単一アダプタとして扱われ得る。
ミニポートのHwVidQueryInterface関数が、ドライバエントリポイントを検索するために以下のQUERY_INTERFACE構造を用いて呼び出され得る。
Figure 0004927348
HwVidQueryInterface呼び出しは、このインタフェースが正常に検索された場合、NO_ERRORを返し、そうでない場合、適当なエラーコードを返すはずである。ドライバエントリポイントは、以下のD3DKMDDI_INTERFACE構造で返され得る。このインタフェースの照会は、暗黙的にそれを参照することができる。ゆえに、このインタフェースが照会された後でドライバの初期設定に失敗した場合、ドライバが明示的参照を行っていなくても、インタフェース逆参照関数が呼び出され得る。
Figure 0004927348
Figure 0004927348
Figure 0004927348
D3DKMDDI_INTERFACE構造で戻されたhAdapterは、pInterfaceReferenceおよびpInterfaceDereferenceのコンテキストとして渡され得る。それはまた、このインタフェース中のアダプタ関数のhAdapterパラメータでも渡され得る。
Figure 0004927348
インタフェース特有のデータは、ドライバが呼び出すことのできる実行時におけるコールバック関数へのポインタを含むことができる。hAdapterは、実行時のアダプタハンドルとすることができ、アダプタハンドルを要求するコールバックのために渡され得る。
前述のインタフェース以外に、以下の既存のIOCTLも使用され得る。
Figure 0004927348
Figure 0004927348
EnumVideoPresentSourceSetは、指定された表示アダプタが持つビデオ表示ソースのリストを獲得するために、それぞれの表示アダプタのレンダリング後(post-rendering)のビデオ表示諸機能を駆動しているVidPN管理インスタンスによって、システム中の各表示アダプタごとに呼び出され得る。
ミニポートは、INTERFACESPECIFICDATAインタフェースを介してオペレーティングシステムによって提供されたAllocSysMemForOutParamCbコールバックを使用して、システムメモリで、指定された表示アダプタでの要求されたビデオ表示ソースの集合を含むのに十分な大きさのバッファを割り振ることができる。割り振りのサイズは、sizeof(D3DKMDDI_VIDEO_PRESENT_SOURCE_SET)+sizeof(D3DKMDDI_VIDEO_PRESENT_SOURCE)*(ビデオ表示ソースの数−1)になるはずである。
出力パラメータのメモリが割り振られると、ミニポートは、以下の定義に基づいてそれにデータを取り込むことができる。
Figure 0004927348
定義中、
・NumOfVideoPresentSources−VideoPresentSourcesに列記されたビデオ表示ソースの数。
・VideoPresentSources−集合中のビデオ表示ソース記述子の配列のアドレス。実際の要素数は、NumOfVideoPresentSourcesで指定される。
以下のように定義されるビデオ表示ソース記述子を用いる。
Figure 0004927348
定義中、
・VideoPresentSourceID−ミニポートおよびオペレーティングシステムによってそれぞれのビデオ表示ソースを参照するのに使用される一意のID。
・dwReserved−他のビデオ表示ソース記述子属性はここに行く。
以下のように定義されるビデオ表示ソースIDを用いる。
ypedef UINT D3DKMDDI_VIDEO_PRESENT_SOURCE_ID
この関数から正常に戻ると、オペレーティングシステムは、出力パラメータで戻されたデータの存続時間の所有権を取ることができ、それを完了したときにそれがサポートする割り振りに要したメモリを割り振り解除することができる。
戻りコード
STATUS_SUCCESSは、ドライバが呼び出しを正常に処理したことを示す。
Figure 0004927348
EnumVideoPresentTargetSetは、指定された表示アダプタが持つビデオ表示ターゲットのリストを獲得するために、それぞれの表示アダプタのレンダリング後のビデオ表示諸機能を駆動しているVidPN管理インスタンスによって、システム中の各表示アダプタごとに呼び出され得る。
ミニポートは、INTERFACESPECIFICDATAインタフェースを介してオペレーティングシステムによって提供されたAllocSysMemForOutParamCbコールバックを使用して、システムメモリで、指定された表示アダプタのための要求されたビデオ表示ソースの集合を含むのに十分な大きさのバッファを割り振ることができる。割り振りのサイズは、sizeof(D3DKMDDI_VIDEO_PRESENT_TARGET_SET)+sizeof(D3DKMDDI_VIDEO_PRESENT_TARGET)*(ビデオ表示ターゲットの数−1)になるはずである。
出力パラメータのメモリが割り振られると、ミニポートは、以下の定義に基づいてそれにデータを取り込むことができる。
Figure 0004927348
定義中、
・NumOfVideoPresentTargets−VideoPresentSourcesに列記されたビデオ表示ターゲットの数。
・VideoPresentSources−集合中のビデオ表示ターゲット記述子の配列のアドレス。実際の要素数は、NumOfVideoPresentTargetsで指定される。
以下のように定義されるビデオ表示ターゲット記述子を用いる。
Figure 0004927348
定義中、
・VideoPresentTargetID−ミニポートおよびオペレーティングシステムによってそれぞれのビデオ表示ターゲットを参照するのに使用される一意のID。
・VideoOutputTechnology−ビデオ出力技術のタイプ。
・VideoOutputHPDAwareness−ビデオ出力のHPD認識のタイプ。
・MonitorOrientationAwareness−モニタ方向認識
以下のように定義されるビデオ表示ターゲットIDが用いられる。
typedef UINT D3DKMDDI_VIDEO_PRESENT_TARGET_ID
ビデオ出力技術タイプ記述子は以下のように定義され得る。
Figure 0004927348
ビデオ出力HPD認識記述子タイプは以下のように定義され得る。
Figure 0004927348
ビデオ出力HPD認識は、表示アダプタによってそのビデオ出力上で感知されるモニタ接続性のレベルを表すのに使用することができ、以下の4つのタイプが利用可能である。
1.割り込み可能HPD認識−ミニポートがオペレーティングシステムにモニタ到達/離脱に関して非同期的に通知することができる場合に限る。
2.非破壊的にポーリングされるHPD認識−ミニポートは、オペレーティングシステムにモニタ到達/離脱に関して非同期的に通知することはできないが、オペレーティングシステムは、視覚的アーチファクトを生じずに、モニタの有無を定期的にポーリングすることができる場合に限る。
3.破壊的にポーリングされるHPD認識−ミニポートは、オペレーティングシステムにモニタ到達/離脱に関して非同期的に通知することはできないが、オペレーティングシステムは、各ポーリング時に視覚的アーチファクトを生じ、モニタの有無を散発的にポーリングすることができる場合に限る。
4.HPD認識なし−ミニポートが、割り込みによっても、ポーリングによっても、モニタ到達/離脱を認識しない場合に限る。
モニタ方向認識は以下のように定義され得る。
Figure 0004927348
この関数から正常に戻ると、オペレーティングシステムは、出力パラメータで戻されたデータの存続時間の所有権を取ることができ、それを完了したときにそれがサポートする割り振りに要したメモリを割り振り解除することができる。
戻りコード
STATUS_SUCCESSは、ドライバが呼び出しを正常に処理したことを示す。
Figure 0004927348
IsSupportedVidPNは、オペレーティングシステムがミニポートに、提供されたVidPN構成がサポートされる(動作可能なVidPNに拡張され得る)かどうか尋ねることができるようにする。第1の引数hAdapterは、そこでのVidPNサポートが問題となる表示アダプタを指定することができる。実際のVidPNは、第2の引数の第1のフィールド、pIsSupportedVidPNArg→pDesiredVidPNで指定することができ、その場合のVidPN記述子は以下のように定義され得る。
Figure 0004927348
VidPNトポロジ記述子は以下のように定義され得る。
Figure 0004927348
VidPNPresentPathSetは、VidPNのトポロジを構成するビデオ表示パスの集合を表すことができ、定義中、
Figure 0004927348
であり、
1.NumOfVidPNPresentPathsはVidPNPresentPaths中のビデオ表示パスの数を含み、
2.VidPNPresentPathsは、VidPNのトポロジを構成するビデオ表示パスの配列を含む。
VidPN表示パス記述子は以下のように定義され得る。
Figure 0004927348
D3DKMDDI_VIDPN_PRESENT_PATHは、あるVidPNトポロジ中の単一のビデオ表示ターゲットから単一のビデオ表示ソースへのマッピングを記述するのに使用され得るビデオ表示パス記述子であり、
・VidPNSourceは、ビデオ表示パスのソース記述子である。
・VidPNTargetは、ビデオ表示パスのターゲット記述子である。
・VidPNPresentPathTransformationは、ビデオ表示パスのコンテンツ変換記述子である。
定義中、VidPNソース記述子は以下のように定義され得る。
Figure 0004927348
定義中、
・VidPNSourceIDは、ミニポートおよびオペレーティングシステムによってそれぞれのビデオ表示ソースを参照するのに使用される一意のIDである。この値は、EnumVideoPresentSourceSet呼び出しからもたらされる。
・PinnedModeIndexは、現在のVidPN構成が与えられたとして、このビデオ表示ソース上で利用可能な共に動作可能なモード集合中のピンニングされているビデオ表示ソースモードの索引であり、またはこのソース上でモードがピンニングされていない場合は、D3DKMDDI_NO_PINNED_MODEである。
・pCofuncVidPNSourceModeSetは、このソースがそのメンバである、現在の(部分的または暫定的)VidPNと共に動作可能なVidPNソースモードである。
VidPNソースモード集合記述子は以下のように定義され得る。
Figure 0004927348
定義中、
・NumOfVidPNSourceModesは、VidPNSourceModesで列記されたビデオ表示ソースモードの数を指定する。
・VidPNSourceModesは、集合中のビデオ表示ソースモードの配列を含む。
VidPNソースモード記述子は以下のように定義され得る。
Figure 0004927348
定義中、TypeはVidPNソースモードタイプ記述子を含み、以下のように定義される。
Figure 0004927348
TypeがD3DKMDDI_RMT_GRAPHICSに等しい場合、ソースモード記述子は、グラフィックスレンダリング形式記述子grfxFormatを含み、以下のように定義される。
Figure 0004927348
定義中、
・sizePrimSurfは、このVidPNソースモードに必要とされる1次サーフェスのサイズを指定する。
・sizeVisibleは、ズームモードを含むパンモードに使用される、この1次サーフェスの可視部分のサイズを指定する。
・dwStrideは、ある走査線の先頭と次の走査線の先頭の間のバイト数を指定する。
・PixelFormatは画素形式を指定する。
・PixelValueAccessModeは、画素値情報のアクセスモードを指定する。
そうではなく、TypeがD3DKMDDI_RMT_TEXTに等しい場合、ソースモード記述子は、テキストレンダリング形式記述子textFormatを含み、以下のように定義される。
Figure 0004927348
さらに、VidPNターゲット記述子は以下のように定義され得る。
Figure 0004927348
定義中、
・VidPNTargetIDは、ミニポートおよびオペレーティングシステムによってそれぞれのビデオ表示ターゲットを参照するのに使用される一意のIDである。この値は、EnumVideoPresentTargetSet呼び出しからもたらされる。
・PinnedModeIndexは、現在のVidPN構成が与えられたとして、このビデオ表示ターゲット上で利用可能な共に動作可能なモードの集合中のピンニングされているビデオ表示ターゲットモードの索引であり、またはこのターゲット上にモードがピンニングされていない場合は、D3DKMDDI_NO_PINNED_MODEである。
・pCofuncVidPNSourceModeSetは、このターゲットがそのメンバである、現在の(部分的)VidPNと共に動作可能なVidPNターゲットモードである。
VidPNターゲットモード集合記述子は以下のように定義され得る。
Figure 0004927348
定義中、
・NumOfVidPNTargetModesは、VidPNTargetModesで列記されたビデオ表示ターゲットモードの数を指定する。
・VidPNTargetModesは、集合中のビデオ表示ターゲットモードの配列を含む。
定義中、VidPNターゲットモード記述子は、表53に示すように定義され得る。
Figure 0004927348
Figure 0004927348
Figure 0004927348
Figure 0004927348
定義中、
・vidStandardは、このモードがそれによって定義されるビデオモード標準を指定する(もしあれば)。
・sizeTotalは、画素単位のビデオ信号のサイズを指定する(HTotalおよびVTotalなど)。
・sizeActiveは、アクティブ画素単位の表示されるイメージのサイズを指定する(HActiveおよびVActiveなど)。
・sizeActiveOffsetは、総画素に対するアクティブ画素の位置を指定する。
・sizeTLDeltaVisibleFromActiveは、モニタ画面の、ビデオ信号のアクティブ画素右下隅からの可視画素の左上隅のデルタを指定する。
・sizeBRDeltaVisibleFromActiveは、モニタ画面の、ビデオ信号のアクティブ画素右下隅からの可視画素の右下隅のデルタを指定する。
・frqVSyncこのモードの垂直リフレッシュ周波数(Hz単位)を指定する。
・frqHSyncこのモードの水平リフレッシュ周波数(KHz単位)を指定する。
・sztPixelRateこのモードの画素クロック速度を指定する。
・ScanLineOrderingこのモードの走査線順序(プログレッシブ、インターレースなど)を指定する。
・IsGTFCompliantは、このモードの垂直同期、水平同期、およびクロック速度が、VESA汎用タイミング式によって課される制限事項に適合するかどうか指定する。
・ModePreferenceは、このモードが、それぞれのビデオ出力に接続されたモニタによって優先されるかどうか指定する。
このビデオ信号標準エニュメレーションを用いて、適宜、ビデオモード比較が簡素化され得る。
分数周波数記述子は以下のように定義され得る。
Figure 0004927348
定義中、
・Numeratorは、分数周波数の分子を指定する。
・Denominatorは、分数周波数の分母を指定する。
垂直周波数はHz単位で格納され、水平周波数はKHz単位で格納され得る。この符号化形式のダイナミックレンジは、(32ビットシステム上での)10^−7解像度を想定すると、{0..2^32−1/10^7}であり、これは、垂直周波数での{0..428.4967296}[Hz]、水平周波数での{0..428.4967296}[KHz]に変換される。このサブマイクロ秒精度範囲は、専門のビデオ用途にさえも許容可能なはずである(ビデオ信号同期での1マイクロ秒におけるエラーは、10^7/(60*60*24)=115.741日間周期でのタイムドリフトを示唆する)。
ビデオ信号走査線順序記述子は以下のように定義され得る。
Figure 0004927348
また、これを用いて、各フィールドが、1フレーム全体を含むか、それともその半分だけを(例えば、偶数線/奇数線を交互に)含むか指定することができる。エニュメレーションを用いてこの特性を明示的に指定することは、クライアントをモードベースのルックアップ表を維持する必要から解放することができると共に、D3DKMDDI_VIDEO_SIGNAL_STANDARDエニュメレーションに列記されない将来の標準モードにも拡張可能である。
可視画素のサイズおよびオフセットではなく可視/アクティブ画素マッピングのデルタを格納することには、理想/デフォルト状態がゼロであるというさらなる利点がある。
VidPN表示パス変換記述子は以下のように定義され得る。
Figure 0004927348
定義中、
・D3DKMDDI_VPPT_IDENTITYは、そのままで表示されるソースコンテンツを表す。この変換は、ビデオ表示ソースモードとビデオ表示ターゲットモードの空間解像度がマッチする場合に限って利用可能であることに留意されたい。
・D3DKMDDI_VPPT_CENTEREDは、ターゲットモードの空間解像度に対して中央に配置され、拡縮なしで表示されるソースコンテンツを表す。
・指定されたVidPNは、少なくとも、1つの有効なトポロジを指定する必要があるが、そのターゲット/ソースの一部または全部をそれぞれにピンニングされたモードを用いて構成させることもできる。
戻りコード
STATUS_SUCCESSは、ドライバが呼び出しを正常に処理したことを示す。
STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGYは、指定されたVidPNトポロジが無効であることを示す。
Figure 0004927348
EnumCofuncVidPNSourceIDSetは、指定されたVidPN実装形態と共に動作可能なVidPNソースIDの集合をエニュメレーションする。VidPNソースは、そのVidPN実装形態を無効あるいはサポートなしにすることなくそれが少なくとも1つのビデオ表示パスを介してそのトポロジに付加され得る場合に限り、所与のVidPN実装形態と共に動作可能とすることができる。ミニポートは、D3DKMDDI_INTERFACESPECIFICDATA.pfnAllocSysMemForOutParamCbを使用して、pEnumCofuncVidPNSourceIDSetArgによって指し示される、全エニュメレーション結果を収容するのに十分な大きさのバッファを割り振ることができる。割り振りのサイズは、sizeof(D3DKMDDI_VIDEO_PRESENT_SOURCE_ID_SET)+sizeof(D3DKMDDI_VIDEO_PRESENT_SOURCE_ID)*(共に動作可能なビデオ表示ソースの数−1)になるはずである。
出力パラメータのメモリが割り振られると、ミニポートは、以下の定義に基づいてそこにデータを取り込むことができる。
Figure 0004927348
定義中、
・NumOfVidPNSourceIDsは、VideoPresentSourceIDsに列記されたビデオ表示ソースのIDの数を指定する。
・VideoPresentSourceIDsは、集合中のビデオ表示ソースのIDの配列を表す。
この関数から正常に戻ると、オペレーティングシステムは、出力パラメータで戻されたデータの存続時間の所有権を取ることができ、それを完了したときにそれがサポートする割り振りに要したメモリを割り振り解除することができる。
戻りコード
STATUS_SUCCESSは、ドライバが呼び出しを正常に処理したことを示す。
STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGYは、指定されたVidPNトポロジが無効であることを示す。
STATUS_NO_MEMORYは、ミニポートが、要求されたエニュメレーションに適するバッファを割り振ることができなかったことを示す。
Figure 0004927348
EnumCofuncVidPNTargetIDSetは、指定されたVidPN実装形態と共に動作可能なVidPNターゲットIDの集合をエニュメレーションする。VidPNターゲットは、そのVidPN実装形態を無効あるいはサポートなしにすることなくそれが少なくとも1つのビデオ表示パスを介してそのトポロジに付加され得る場合に限り、所与のVidPN実装形態と共に動作可能とすることができる。ミニポートは、D3DKMDDI_INTERFACESPECIFICDATA.pfnAllocSysMemForOutParamCbを使用して、pEnumCofuncVidPNTargetIDSetArgによって指し示される、全エニュメレーション結果を収容するのに十分な大きさのバッファを割り振ることができる。割り振りのサイズは、sizeof(D3DKMDDI_VIDEO_PRESENT_ TARGET_ID_SET)+sizeof(D3DKMDDI_VIDEO_PRESENT_TARGET_ID)*(共に動作可能なビデオ表示ターゲットの数−1)になるはずである。
出力パラメータのメモリが割り振られると、ミニポートは、以下の定義に基づいてそこにデータを取り込むことができる。
Figure 0004927348
定義中、
・NumOfVidPNTargetIDsは、VideoPresentTargetIDsで列記されたビデオ表示ターゲットのIDの数を指定する。
・VideoPresentSourceIDsは、集合中のビデオ表示ターゲットのIDの配列を表す。
この関数から正常に戻ると、オペレーティングシステムは、出力パラメータで戻されたデータの存続時間の所有権を取ることができ、それを完了したときにそれがサポートする割り振りに要したメモリを割り振り解除することができる。
戻りコード
STATUS_SUCCESSは、ドライバが呼び出しを正常に処理したことを示す。
STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGYは、指定されたVidPNトポロジが無効であることを示す。
STATUS_NO_MEMORYは、ミニポートが、要求されたエニュメレーションに適するバッファを割り振ることができなかったことを示す。
Figure 0004927348
EnumVidPNCofuncModalityは、オペレーティングシステムに、指定されたVidPN中の各ビデオ表示パス上の共に動作可能なビデオ表示およびターゲットモード集合をエニュメレーションさせ、
・pConstrainingVidPNは、それに関してVidPNのターゲットおよびソース上の共に動作可能なモード集合が求められているVidPNである。
・pVidPNPresentPathSetWithCofuncModeSetsは、各ソース/ターゲットに、制約VidPNと共に動作可能なモード集合が取り込まれるVidPN表示パスの集合である。制約VidPNの任意のソース/ターゲットがその上にピンニングされたモードを持つ場合、それらの索引は、結果集合中のそれぞれのVidPNソース/ターゲット記述子において正しく更新されるはずである。
ミニポートは以下のようにデータを取り込むはずである。
Figure 0004927348
この関数から正常に戻ると、オペレーティングシステムは、出力パラメータで戻されたデータの存続時間の所有権を取ることができ、それを完了したときにそれがサポートする割り振りに要したメモリを割り振り解除することができる。
戻りコード
STATUS_SUCCESSは、ドライバが呼び出しを正常に処理したことを示す。
STATUS_NO_MEMORYは、ミニポートが、要求されたエニュメレーションに適するバッファを割り振ることができなかったことを示す。
表57−関数RecommendFunctionalVidPN
Figure 0004927348
RecommendFunctionalVidPNは、ハードウェアの現在の状態が与えられたとして、オペレーティングシステムに、ミニポートによって推奨されるVidPNを照会させる。オペレーティングシステムは、ユーザ設定(最後に使用された様式など)が指定されていない構成に遭遇した場合にそれを使用することができる。この要求の一部として、オペレーティングシステムは、ミニポートに、それらに接続されたモニタの相対的重要度を表す、最重要なものから配列されたVidPNターゲットIDのベクトルpVidPNTargetPrioritizationVectorを指定する。次に、ミニポートは、現在のハードウェアの状態でそれがオペレーティングシステムに推奨しようとする動作可能なVidPNにデータを取り込むのに十分なメモリを割り振り、それぞれのフィールドにデータを取り込み、そのアドレスをpRecommendedFunctionalVidPNに割り当てるはずである。この関数から正常に戻ると、オペレーティングシステムは、出力パラメータで戻されたデータの存続時間の所有権を取ることができ、それを完了したときにそれがサポートする割り振りに要したメモリを割り振り解除することができる。
戻りコード
STATUS_SUCCESSは、ドライバが呼び出しを正常に処理したことを示す。
STATUS_GRAPHICS_NO_RECOMMENDED_VIDPNは、ミニポートが、表示アダプタの現在の構成でのVidPN推奨を持たないことを示す。
STATUS_NO_MEMORYは、ミニポートが、要求されたエニュメレーションに適するバッファを割り振ることができなかったことを示す。
(実施例49)
(ビデオレンダリングデバイスドライバのデバイス固有部分の例)
本明細書で説明する技術のいずれも、ビデオレンダリングデバイスドライバのデバイス固有部分で実施され得る。ドライバの再利用可能部分は、ビデオレンダリングデバイスドライバ間で共用され得る。
例えば、MICROSOFT(登録商標)WINDOWS(登録商標)オペレーティングシステムで実行される実装形態では、ビデオポートはドライバの再利用可能部分として働くことができ、ビデオミニポートはビデオレンダリングデバイスドライバのデバイス固有部分として働くことができる。
(利点の例)
マルチモニタ表示モード管理は、ビデオレンダリング/表示デバイス(グラフィックスアダプタとも呼ばれるビデオカードなど)およびビデオ監視装置(モニタなど)の諸機能を処理する複雑な問題である。表示モード管理における複雑さを生じる主要な問題は、それぞれが単一のマルチ出力ビデオカード上の別個の(ビュー,出力)マッピングを表す、グラフィックス表示装置オブジェクト(MICROSOFT(登録商標)WINDOWS(登録商標)GDIオブジェクトなど)の諸機能間の固有の相互依存性であり、それは、既存の表示モード管理アーキテクチャによってはうまく処理されない。
これらの相互依存性は、主に、(1)それらを駆動することができるコーデックより多くのビデオ出力を持つシステム上のビデオ出力コーデックをめぐる可能な競合、(2)主として、(a)ビデオカードに存在するビデオ出力コーデックの諸機能の差異、(b)任意のビデオ出力コーデックを任意の互換性のあるビデオ出力に経路指定することのできるクロスバーの使用によりビデオ出力コーデックを様々なビデオ出力と共に使用することができるビデオカードの能力、(c)ビデオ出力コーデックが不十分なリソースである(駆動されるビデオ出力の数より少ないなどの)場合に複数のビデオ出力にビデオ出力コーデックを共用することができるビデオカードの能力、(d)ビデオストリームの1つを改ざんすることが許容されない場合、あるいはその上に2次信号をオーバーレイする必要のあるビデオストリームが、すでに、アナログ形式であり、ディジタルオーバーレイを付加し、次いで、それを再変調するだけのためにそれを復号化することが無駄である場合に、複数のビデオ出力コーデックまたは単一のマルチ入力ビデオ出力コーデックを単一のビデオ出力(オーバーレイなど)に使用することができるビデオカードの能力に起因する、所与のビデオカード内の任意の所与のマルチ出力ビデオ表示構成の確立を求める要求を満たす複数の方法、(3)最終的には定期的なビデオメモリ読取りに還元される、そのそれぞれが関連する1次サーフェスのコンテンツをそれぞれのビデオ出力インタフェース上のビデオ信号に変換する役割を果たす、ビデオ出力コーデックによって利用されるビデオメモリバス帯域幅をめぐる競合、あるいは、(4)所与のビデオ表示パス(レンダリングされたディジタルコンテンツから物理ビデオインタフェース出力までの論理パスなど)をサポートするのに必要とされる1次サーフェスによるビデオメモリ容量をめぐる競合から生じる。
したがって、前述の、利用可能な(ビュー,出力)対の表示モード集合間の相互依存性は、1つの(ビュー,出力)対だけでのものより複雑である。具体的には、あるビューで所与の1次サーフェス形式を使用することを選択すると、それぞれの出力でどのビデオ信号が表示され得るかに影響を及ぼしうる。また、単一のビューが複数の出力で表示されるシナリオを考察すると、利用可能なビデオ信号の集合も、どのように、どのビデオ出力コーデックを使用して、結果として生じる表示構成が実施されるかに基づいて変わる。最後に、複数のビューが単一のビデオカード上で用いられる(それぞれがおそらく複数の出力に表示される)シナリオを考察すると、利用可能なビデオ信号は、様々なビューと出力の間の関連に基づいて変わる。すなわち、ビデオカードがどのビデオ信号をその出力で駆動することができるかは、それが、どのタイプの1次サーフェスを表示するよう求められているか、およびそれらをどのようなやり方で(例えばどの出力に)表示すべきかの関数である。
さらに、設計は、所与の1次サーフェスコンテンツを、それぞれのビデオ出力上で駆動される異なる空間解像度にアップサンプルまたはダウンサンプルすることができる昨今のビデオカードのスケーリング機能を考慮に入れないことがある。したがって、マルチ出力ビデオカードに関して行われ得る2つの主要な抽象化は、(1)2つの異なる物理デバイスの状態を含む、統一された「表示モード」記述子様式で表される、ビデオカードとモニタ両方を含む多機能表示装置抽象化の簡略化されたビューと、(2)(ビュー,出力)ごとに1つの、独立のビデオドライバスタックおよびそれぞれのグラフィックスデバイスの複製によって達成され得る、単一出力モードエニュメレーションのマルチ出力への拡張である。これらの抽象化は、そのようなデバイスを適正に駆動するのに十分ではなく、以下で置き換えられ得る。(1)ビューおよび出力での異なる様式記述子、(2)クライアントにそれが求めるモードをピンニングさせ、利用可能なモードの更新された集合を再エニュメレーションさせて、一連の反復(グラフィックスサーチなど)で最終的に動作可能な解に収束させる機能平衡化DDIを公開するビデオミニポートをホスティングする、ビデオカードごとに1つのビデオドライバスタック、および(3)表示モード相互依存性、結果として生じる利用可能なモード集合の無効化、およびモード変更失敗をサポートするための実装形態の拡大。
(代替物)
どの例の技術も、その他の例のいずれか1つまたは複数で説明した技術と組み合わせることができる。本発明の原理が適用され得る多くの可能な実施形態を考えると、説明した実施形態は、本発明の例であり、本発明の範囲を限定するものと解釈すべきではないことを理解すべきである。そうではなく、本発明の範囲は、以下の特許請求の範囲によってカバーされるものを含む。したがって、本発明として、これらの特許請求の範囲の範囲および精神に含まれるものすべてを特許請求するものである。
構成可能なビデオ表示ネットワークの一例を示すブロック図である。 構成可能なビデオ表示ネットワークの別の例を示すブロック図である。 ビデオ表示ネットワークでの構成の組合せを示すブロック図である。 図1に示すものなどの構成可能なビデオ表示ネットワークの構成方法を示す流れ図である。 図1に示すものなどのビデオ表示ネットワークの暫定的構成の例を示す表である。 図1に示すものなどのビデオ表示ネットワークの構成を実現するトランザクショナル手法の一例を示すブロック図である。 トランザクショナル手法を介して構成を実行する方法の一例を示す流れ図である。 図1に示すものなどのビデオ表示ネットワークの暫定的構成時のフィードバックでのソースの例を示すブロック図である。 図8Aに類似の、複数のリソースのフィードバックでのソースの例を示すブロック図である。 ピンニング時の複数のリソースでの共に動作可能なオプションの例を示すブロック図である。 ピンニング時の複数のリソースでの共に動作可能なオプションの例を示すブロック図である。 ピンニング時の複数のリソースでの共に動作可能なオプションの例を示すブロック図である。 ピンニング時の複数のリソースでの共に動作可能なオプションの他の例を示すブロック図である。 ピンニング時の複数のリソースでの共に動作可能なオプションの他の例を示すブロック図である。 ピンニング時の複数のリソースでの共に動作可能なオプションの他の例を示すブロック図である。 図1に示すものなどのビデオ表示ネットワークの構成を実現するフィードバックを用いたトランザクショナル手法の一例を示すブロック図である。 サーバから見た、フィードバックを用いたトランザクショナル手法により構成を実行する方法の一例を示す流れ図である。 クライアントから見た、フィードバックを用いたトランザクショナル手法による構成を実行する方法の一例を示す流れ図である。 暫定的構成が実施され得るアーキテクチャの一例を示すブロック図である。 ビデオ表示ネットワークの構成方法の一例を示す流れ図である。 所望の構成に収束する解空間の系統的トラバースによる所望の構成の発見方法の一例を示す流れ図である。 所望の構成に収束する解空間の系統的トラバースによる所望の構成の第1の詳細な発見方法の例を示す流れ図である。 所望の構成に収束する解空間の系統的トラバースによる所望の構成の第1の詳細な発見方法の例を示す流れ図である。 所望の構成に収束する解空間の系統的トラバースによる所望の構成の第2の詳細な発見方法の例を示す流れ図である。 所望の構成に収束する解空間の系統的トラバースによる所望の構成の第2の詳細な発見方法の例を示す流れ図である。 所望の構成に収束する解空間の系統的トラバースによる所望の構成の第2の詳細な発見方法の例を示す流れ図である。 ビデオ表示ネットワークでのトポロジの決定方法の一例を示す流れ図である。 ビデオ表示ネットワークでの構成に到達するクライアントとサーバの間の呼び出しを示すブロック図である。 当該技術の実装形態の、複数のビデオ表示装置を備えるコンピュータシステムへの統合を示すブロック図である。 所望のビデオ構成を決定する際に優先順位を考慮に入れるクライアント/サーバシステムを示すブロック図である。 図22のものなどのクライアント/サーバシステムにおける所望のビデオ構成の決定方法の一例を示す流れ図である。 当該方法の実行時にトポロジが変更され得る解空間の系統的トラバースによる所望の構成の発見方法の一例を示す流れ図である。 マルチモニタ/マルチビューシステムの一例を示すブロック図である。 開示の技術を実施する例示的システムを構成する汎用コンピューティングデバイスを示す図である。
符号の説明
140 その他のリソース
610 クライアント
620 サーバ
630 ビデオ表示ネットワーク
1110 クライアント
1120 サーバ
1130 ビデオ表示ネットワーク
1410 クライアント
1420 ドライバ
1425 相互依存性論理
1430 ビデオアダプタ
1440A 表示装置
2002 ビデオドライバ
2004 グラフィックスカーネルサブシステム
2110 デスクトップ
2112 表示属性アプレット
2114 全画面グラフィックスアプリケーション
2120 グラフィックスサブシステム
2130 ビデオドライバ
2132 ビデオドライバ
2140 ハードウェア抽象化層
2150 ビデオアダプタ
2152 ビデオアダプタ
2160 CRTモニタ
2162 フラットパネルモニタ
2164 ディジタルプロジェクタ
2166 LCDモニタ
2168 仮想現実ゴーグル
2202 クライアント
2204 サーバ
2206 優先順位
2602 処理装置
2604 システムメモリ
2606 システムバス
2620 ハードディスクドライブインタフェース
2622 磁気ディスクドライブインタフェース
2624 光ドライブインタフェース
2630 オペレーティングシステム
2632 アプリケーションプログラム
2634 プログラムモジュール
2636 プログラムデータ
2640 キーボード
2644 シリアルポートインタフェース
2646 モニタ
2648 ビデオアダプタ
2650 リモートコンピュータ
2658 ネットワークインタフェース
2660 モデム

Claims (13)

  1. ビデオ表示ネットワークの暫定的構成の指示を受け取るサービスであって、前記ビデオ表示ネットワークは、少なくとも第1のビデオネットワークリソースと、複数の第2のビデオネットワークリソースとを含み、前記暫定的構成は、前記第1のビデオネットワークリソースを含む、サービスと、
    前記複数の第2のビデオネットワークリソースに関する第1の複の構成オプションをエニュメレーションするサービスであって、前記第1の複数の構成オプションは、前記第1のビデオネットワークリソースと共に動作可能である、サービスと
    前記第1の複数の構成オプションのうちの1つをピンニングするサービスと、
    前記複数の第2のビデオネットワークリソースに関する第2の複数の構成オプションであって、該ピンニングされた構成オプションと共に動作可能な第2の複数の構成オプションをエニュメレーションするサービスと、
    へのアクセスを提供するインタフェースにアクセスするためのコンピュータ実行可能命令を格納したことを特徴とするコンピュータ可読記録媒体。
  2. 記第1の複の構成オプションは、
    前記暫定的構成と共に動作可能な複数のビデオ表示ネットワークソースをエニュメレーションすることを含むことを特徴とする請求項1に記載のコンピュータ可読記録媒体。
  3. 記第1の複の構成オプションは、
    前記暫定的構成と共に動作可能な複数のビデオ表示ソースモードをエニュメレーションすることを含むことを特徴とする請求項1に記載のコンピュータ可読記録媒体。
  4. 記第1の複の構成オプションは、
    前記暫定的構成と共に動作可能な複数のビデオ表示ネットワークターゲットをエニュメレーションすることを含むことを特徴とする請求項1に記載のコンピュータ可読記録媒体。
  5. 記第1の複の構成オプションは、
    前記暫定的構成と共に動作可能な複数のビデオ表示ターゲットモードをエニュメレーションすることを含むことを特徴とする請求項1に記載のコンピュータ可読記録媒体。
  6. 記第1の複の構成オプションは、少なくとも1つのビデオ表示ネットワークソースを含ことを特徴とする請求項3に記載のコンピュータ可読記録媒体。
  7. 前記インタフェースは、さらに、
    前記複数のビデオ表示ソースモードの前記1つをアンピンニングするサービスへのアクセスを提供することを特徴とする請求項6に記載のコンピュータ可読記録媒体。
  8. 前記インタフェースは、さらに、
    前記複数のビデオ表示ソースモードの前記1つの前記アンピンニングの後で前記暫定的構成と共に動作可能な複数のビデオ表示ソースモードをエニュメレーションするサービスへのアクセスを提供することを特徴とする請求項に記載のコンピュータ可読記録媒体。
  9. 記第1の複の構成オプションは、少なくとも1つのビデオ表示ネットワークターゲットを含み、前記インタフェースは、さらに、前記少なくとも1つのビデオ表示ネットワークターゲット上に前記複数のビデオ表示ターゲットモードの1つをピンニングするサービスへのアクセスを提供することを特徴とする請求項5に記載のコンピュータ可読記録媒体。
  10. 前記インタフェースは、さらに、
    前記複数のビデオ表示ターゲットモードの前記1つの前記ピンニング後に前記暫定的構成と共に動作可能な複数のビデオ表示ターゲットモードをエニュメレーションするサービスへのアクセスを提供することを特徴とする請求項に記載のコンピュータ可読記録媒体。
  11. 前記インタフェースは、さらに、
    前記複数のビデオ表示ターゲットモードの前記1つをアンピンニングするサービスへのアクセスを提供することを特徴とする請求項に記載のコンピュータ可読記録媒体。
  12. 前記インタフェースは、さらに、
    前記複数のビデオ表示ターゲットモードの前記1つの前記アンピンニング後に前記暫定的構成と共に動作可能な複数のビデオ表示ターゲットモードをエニュメレーションするサービスへのアクセスを提供することを特徴とする請求項11に記載のコンピュータ可読記録媒体。
  13. 前記インタフェースは、さらに、
    動作可能なビデオ表示ネットワーク構成をコミットするサービスへのアクセスを提供することを特徴とする請求項1に記載のコンピュータ可読記録媒体。
JP2005134489A 2004-04-30 2005-05-02 ビデオ表示ネットワーク管理 Expired - Fee Related JP4927348B2 (ja)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US56705304P 2004-04-30 2004-04-30
US60/567,053 2004-04-30
US10/925,662 US7898533B2 (en) 2004-04-30 2004-08-24 Video presenting network configuration solution space traversal
US10/925,445 2004-08-24
US10/925,445 US7903045B2 (en) 2004-04-30 2004-08-24 Video presenting network supporting separately-configurable resources
US10/925,859 2004-08-24
US10/925,662 2004-08-24
US10/925,859 US8581803B2 (en) 2004-04-30 2004-08-24 Video presenting network management
US10/925,837 2004-08-24
US10/925,837 US7679612B2 (en) 2004-04-30 2004-08-24 Configuration goals via video presenting network

Publications (2)

Publication Number Publication Date
JP2006018803A JP2006018803A (ja) 2006-01-19
JP4927348B2 true JP4927348B2 (ja) 2012-05-09

Family

ID=34939631

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005134489A Expired - Fee Related JP4927348B2 (ja) 2004-04-30 2005-05-02 ビデオ表示ネットワーク管理

Country Status (4)

Country Link
EP (1) EP1591892A3 (ja)
JP (1) JP4927348B2 (ja)
KR (1) KR101117871B1 (ja)
CN (1) CN1716194B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129477B (zh) * 2011-04-23 2013-01-09 山东大学 一种多模态联合的图像重排序方法
US20150326864A1 (en) * 2014-05-09 2015-11-12 Nokia Technologies Oy Method and technical equipment for video encoding and decoding
JP6131376B1 (ja) * 2016-10-28 2017-05-17 株式会社計測技術研究所 信号入出力処理装置
CN109346014B (zh) * 2018-09-29 2020-07-03 歌尔科技有限公司 一种虚拟现实设备及其屏幕控制方法
CN112380386A (zh) * 2020-11-19 2021-02-19 深圳Tcl新技术有限公司 视频搜索方法及装置、终端、计算机可读存储介质
CN112362332B (zh) * 2020-11-27 2022-10-21 歌尔科技有限公司 一种游戏手柄摇杆校准测试装置及校准测试方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2271253A (en) * 1992-10-03 1994-04-06 Ibm Data compression at a video conference computer workstation
JPH06274292A (ja) * 1993-03-18 1994-09-30 Fuji Xerox Co Ltd プリンタ選択基準表示装置
US5787246A (en) 1994-05-27 1998-07-28 Microsoft Corporation System for configuring devices for a computer system
CN1156379A (zh) * 1995-11-07 1997-08-06 索尼公司 视频显示装置
US6028643A (en) * 1997-09-03 2000-02-22 Colorgraphic Communications Corporation Multiple-screen video adapter with television tuner
US6556253B1 (en) * 1999-10-26 2003-04-29 Thomson Licensing S.A. Multi-window picture adjustment arrangement for a video display
JP2000132361A (ja) 1999-11-24 2000-05-12 Seiko Epson Corp プリンタ検索装置及びその方法
US7460086B1 (en) * 1999-12-13 2008-12-02 Honeywell International Inc. Multiple and hybrid graphics display types
JP3643078B2 (ja) 2002-01-18 2005-04-27 東日本電信電話株式会社 設備情報のシステム間照合装置及び方法
US7134040B2 (en) 2002-04-17 2006-11-07 International Business Machines Corporation Method, system, and program for selecting a path to a device to use when sending data requests to the device

Also Published As

Publication number Publication date
KR20060047658A (ko) 2006-05-18
CN1716194B (zh) 2010-06-09
EP1591892A2 (en) 2005-11-02
CN1716194A (zh) 2006-01-04
EP1591892A3 (en) 2012-08-15
JP2006018803A (ja) 2006-01-19
KR101117871B1 (ko) 2012-04-13

Similar Documents

Publication Publication Date Title
US20110149161A1 (en) Video presenting network configuration solution space traversal
CN105103123B (zh) 用于虚拟显示器的系统和方法
CN103530078B (zh) 用于显示镜像的系统与方法
US7679612B2 (en) Configuration goals via video presenting network
CN103329094B (zh) 交叉环境重定向
US7903045B2 (en) Video presenting network supporting separately-configurable resources
CN103339600A (zh) 立即远程呈现
GB2502082A (en) A method for providing content to an additional display
JP4927348B2 (ja) ビデオ表示ネットワーク管理
CN117130571A (zh) 基于多核异构系统的显示方法、设备、芯片、存储介质
EP2606640A1 (en) System and method for mapping audio and video streams from audio/video source to multiple audio/video sinks
US8581803B2 (en) Video presenting network management
KR20250139147A (ko) 인터커넥트 기반의 컴퓨팅 장치 연결 및 방법
Rousseau Implementation of video streaming via USB on a microcontroller
CN115866293A (zh) 一种视频分析方法和视频分析系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110322

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110622

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110715

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120203

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120209

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4927348

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees