1

他の誰かがこれをやろうとしているのを見たことがありません。私がこれに間違った方法でアプローチしている可能性は十分にあります。基本的に、私は DVI 入力を備えたコンピュータを持っています。DVI 入力に何も接続されていない場合、コンピュータ上のプログラムが画面にいくつかの画像を読み込みます。出力ソースが DVI ポートに接続されている場合、プログラムは画像の書き込みを停止し、代わりに DVI ビデオ フィードを使用する必要があります。

DVI 入力が存在するかどうか、および現在有効なビデオ信号が存在するかどうかを判断するメカニズムは何ですか? ビデオ ストリームを読み取るにはどうすればよいですか?

それとも、私はこれを完全に間違った方法で行っていますか?

4

1 に答える 1

1

ハードウェア レベルでは、アナログまたはデジタルのほとんどのビデオ入力サブシステムは、入力信号の存在、または少なくとも入力信号の多くの特性を持つ何かを検出できます。

デジタル規格の場合、実際のクロッキング データは、独自のワイヤ上にあるか、シリアル データ ストリームにエンコードされています。クロックがあるように見え、その周波数が規則的で合理的である場合は、最初のテストになります (ただし、一部の規格では、合理的な周波数は広範囲の周波数をカバーできます)。

次に、ビデオ (デジタルだけでなく、アナログでも) はラインとフィールドの繰り返し構造を持っているため、ピクセル クロックの 2 つの識別可能な約数が存在する必要があります。1 つは各ラインの開始または終了に対応し、もう 1 つは開始または終了に対応します。各フィールド (画面) の終わり。繰り返しになりますが、これらは独自のワイヤを持っているか、独自のエンコード方法 (アナログの場合は特別な電圧) を持っているか、ピクセル データの時間ギャップを表している可能性があります。同期やリトレース時間がなかったとしても、画像内の多くの特徴が繰り返されるため、ピクセル データの統計分析によっておそらく X と Y の寸法の手がかりが得られるでしょう。

実際のビデオ入力サブシステム (フラットパネル モニターを考えてみてください) は、さらに複雑な検出および自動適応回路を持つことができます。たとえば、ラインあたりのドット数の解像度を変更するのに間に合うように入力をリサンプリングしたり、フレーム バッファーに入れることさえあります。 X と Y の両方でスケーリングします。

ビデオ キャプチャ回路の内部動作のどのような詳細が消費者に公開されているか、またはドライバー レベルのソフトウェアでさえ、使用されるチップセットの仕様に大きく依存します。うまくいけば、データ シートが利用可能になります。ただし、回路がビデオ信号であると「考える」何かを入力がキャプチャしているかどうかを示す読み取り可能なレジスタビットがどこかにある可能性はかなり高いです。X と Y の解像度、スキャン レート、ピクセル クロック レートなどのパラメータを読み取ることもできます。

同様に、ポートからデータを取得する機能はチップセットに依存しますが、ポートが何かに役立つ場合は、ビデオを消費するアプリケーションに何らかの有用な API を提供するオペレーティング システム ドライバーがあると思われます。

于 2012-05-18T04:39:27.293 に答える