VGA ケーブルの長さと EDID(Extended Display Identification Data) について

Last Update: June 7th, 2021
Article ID: 951201


一部のプロジェクターやテレビの中には、「USB 3.0 VGA グラフィックス変換アダプター」を使ってPC に接続すると何も表示されないのに、PC に搭載された VGA ポートや「USB 2.0 VGA アダプター」であれば問題なく表示されるものがあります。いったいなぜこのようなことが起きるのでしょうか。

DisplayLink 社 製の USB 3.0 グラフィックチップは、USB 2.0 世代のチップとは異なる動作をします。具体的には、もしそのアダプターに何も接続されていないと自ら「無効」になります。

これに関し、HDMI と DVI にはホットプラグ検出用のピンが実装されているため問題にはなりません。一方、VGA にはそのような仕組みがありません。したがって、VGA インターフェースを使用するモニターが接続されているかどうかを PC が検知するには、モニターが接続されたときに自動送信されるバイナリ信号、ディスプレイ情報(EDID)を、VGA ケーブル経由で読み取る必要があります。

しかし、3m 程度を超える長い VGA ケーブルを使った環境の場合、この EDID 情報が送信途中で失われるケースがあります。そうすると USB 3.0 VGA グラフィック変換アダプターは、そこにはディスプレイが接続されていないと判断してしまい「無効」になったままとなり、結果として表示ができない状態になるのです。


背景

この現象を理解するには、基本技術としての EDID 規格に目を向ける必要があります。EDID(Extended Display Identification Data)とは、ほとんどの PC 用外部モニターに保存されている電子的なバイナリ情報です。EDID 情報には、そのモニタが対応する解像度とリフレッシュレート、推奨タイミング、色空間、オーディオ機能の有無、その他メーカー独自の情報など、そのモニター固有の様々な情報が含まれています。

通常、例えば 1920×1080(FHD、1080p)のモニターをコンピュータに直接接続した場合、システム側に搭載された GPU は EDID を読み取るためにモニターとの通信を試みます。これに成功すると、モニターの推奨解像度が 1920×1080 だとわかり、1920×1080 の画像を適切に出力できます。しかし EDID が存在しない場合、グラフィックカードは接続されたモニターにどのような解像度で出力するかについて、適当な判断を下すことになっています。その結果 1920×1080 解像度に対応した大型モニターに、640×480 の解像度が表示されてしまうということがおこります。ここで重要なのは、直接ケーブルで接続されているモニターであればたとえ EDID がなくても、コンピュータ(GPU)は画像を(適当な解像度ではあっても)出力する、ということです。

しかし、USB 3.0 VGA グラフィック変換アダプターを使用している環境では、EDID がモニターから取得できないということはモニターが全く接続されていないことを意味します。

では、どのような場合に「EDID が取得できない」ということが起こるのでしょうか?

一例として、VGA ポートが搭載されているような古いテレビの中には、EDID を提供しない製品があります。残念ながら、これらのテレビを USB 3.0 - VGA グラフィック変換アダプタを使って外部モニターとして動作させる解決策はみつかりません。唯一の回避策は、USB 3.0 - VGA アダプタの代わりに、USB 2.0 - VGA アダプタを使用するか、コンピュータのダイレクト VGA ポートを使用することです。

ほとんどのプロジェクターは EDID 情報を提供しますが、プロジェクターを使うような環境では、長い VGA ケーブルが使用されるケースが多くなります(例:シーリング・プロジェクターのように、天井に予めケーブルが埋め込まれているなど)。

3m を超えるような長い VGA ケーブルを使用した場合、送信される EDID 信号が途中で劣化し、USB 3.0 VGA アダプターで認識できなくなることがあります。このような問題を解決するには、VGAケーブルを PC 搭載の VGA ポート経由で直接接続する、より短い VGA ケーブルを使用する、EDID なしでも少なくともデフォルトのモードを試すことができる USB 2.0 VGAアダプタを使用する、のいずれかの方法をとる必要が生じます。


この情報は役に立ちましたか?