(57)【要約】      （修正有）【課題】マルチメディアソースデバイスとマルチメディアディスプレイデバイスとの間で複数のマルチメディアデータパケットの伝送を最適化する方法および装置を提供する。【解決手段】マルチメディアソースデバイスおよびディスプレイデバイスは、マルチメディアソースデバイスおよびマルチメディアディスプレイデバイスからマルチメディアデータパケットを運ぶよう構成された単方向メインリンクと、マルチメディアソースデバイスとマルチメディアディスプレイデバイスとの間で情報を転送するよう構成された双方向補助チャネルとによって結合されている。その方法は、少なくとも以下の動作で実行できる。メインリンク上のマルチメディアソースデバイスによってテストパターンを準備する動作と、テストパターンに基づいて、メインリンクの伝送品質因子を決定する動作と、伝送品質因子に基づいて、マルチメディアデータパケットの伝送を最適化する動作。【選択図】  図１
2004336745.tif 000002
【特許請求の範囲】
【請求項１】
マルチメディアソースデバイスとマルチメディアディスプレイデバイスとの間で行われる複数のマルチメディアデータパケットの伝送をリアルタイムに最適化するための方法であって、前記マルチメディアソースデバイスおよび前記マルチメディアディスプレイデバイスは、前記マルチメディアソースデバイスおよび前記マルチメディアディスプレイデバイスから前記マルチメディアデータパケットを運ぶよう構成された単方向メインリンクと、前記マルチメディアソースデバイスと前記マルチメディアディスプレイデバイスとの間で情報を転送するよう構成された双方向補助チャネルとによって結合されており、前記方法は、
前記メインリンク上の前記マルチメディアソースデバイスによってテストパターンを準備する工程と、
前記テストパターンに基づいて、前記メインリンクの伝送品質因子を決定する工程と、
前記伝送品質因子に基づいて、前記マルチメディアデータパケットの前記伝送を最適化する工程と、を備える、方法。
【請求項２】
請求項１に記載の方法であって、伝送品質因子を決定する前記決定工程は、
前記マルチメディアディスプレイデバイスにより、前記テストパターンに基づいて、ビットエラーレートを決定する工程と、
前記補助チャネルにより、前記ビットエラーレートを前記ソースデバイスに送信する工程と、を備える、方法。
【請求項３】
請求項２に記載の方法であって、前記最適化工程は、
前記ビットエラーレートが、所定の閾値ビットエラーレートよりも大きいか否かを判断する工程を備える、方法。
【請求項４】
請求項３に記載の方法であって、前記最適化工程は、さらに、
前記ビットエラーレートが、前記所定の閾値ビットエラーレートよりも大きいと判断された場合に、前記メインリンク上の前記マルチメディアデータパケットの伝送レートが、最小伝送レートよりも大きいか否かを判断する工程を備える、方法。
【請求項５】
請求項４に記載の方法であって、前記伝送レートが、前記最小伝送レートよりも大きい場合に、
前記メインリンク伝送レートを低減する工程と、
前記低減されたメインリンク伝送レートに基づいて、前記ビットエラーレートを決定する工程と、を備える、方法。
【請求項６】
請求項１に記載の方法であって、前記双方向補助チャネルは、前記ディスプレイデバイスから前記ソースデバイスへ情報を運ぶよう構成された単方向の上りチャネルと、前記メインチャネルの一部として含まれ、前記上りチャネルと協調して前記ソースデバイスから前記ディスプレイデバイスへ情報を運ぶための単方向の下りチャネルと、から形成されている、方法。
【請求項７】
請求項１に記載の方法であって、前記複数のマルチメディアデータパケットは、複数の関連のマルチメディアデータパケットストリームに分割される、方法。
【請求項８】
請求項７に記載の方法であって、前記メインリンク部は、さらに、
前記マルチメディアデータパケットストリームの内の特定の１つとそれぞれ関連した複数の仮想リンクを備え、前記仮想リンクの各々は、関連の仮想リンク帯域幅と仮想リンクレートとを有する、方法。
【請求項９】
請求項５に記載の方法であって、メインリンク帯域幅は、少なくとも、前記仮想リンク帯域幅の総計に等しい、方法。
【請求項１０】
請求項８に記載の方法であって、前記仮想リンクの各々に関連する前記仮想リンクレートの各々は、最適化される、方法。
【請求項１１】
請求項１に記載の方法であって、さらに、
アクティブなディスプレイデバイスが、前記メインリンクおよび前記補助リンクに接続されたことを自動的に判断するホットプラグイベントを検出する工程と、
前記ホットプラグイベントの前記検出の直後に前記最適化を開始する工程と、を備える、方法。
【請求項１２】
マルチメディアソースデバイスとマルチメディアディスプレイデバイスとの間で行われる複数のマルチメディアデータパケットの伝送を連続的に最適化するための装置であって、前記マルチメディアソースデバイスおよび前記マルチメディアディスプレイデバイスは、前記マルチメディアソースデバイスおよび前記マルチメディアディスプレイデバイスから前記マルチメディアデータパケットを運ぶよう構成された単方向メインリンクと、前記マルチメディアソースデバイスと前記マルチメディアディスプレイデバイスとの間で情報を転送するよう構成された双方向補助チャネルとによって結合されており、前記装置は、
前記メインリンク上の前記マルチメディアソースデバイスによってテストパターンを準備するための手段と、
前記テストパターンに基づいて、前記メインリンクの伝送品質因子を決定するための手段と、
前記伝送品質因子に基づいて、前記マルチメディアデータパケットの前記伝送を最適化するための手段と、を備える、装置。
【請求項１３】
請求項１２に記載の装置であって、伝送品質因子を決定する前記決定手段は、
前記マルチメディアディスプレイデバイスにより、前記テストパターンに基づいて、ビットエラーレートを決定するための手段と、
前記補助チャネルにより、前記ビットエラーレートを前記ソースデバイスに送信するための手段と、を備える、装置。
【請求項１４】
請求項１３に記載の装置であって、前記最適化手段は、
前記ビットエラーレートが、所定の閾値ビットエラーレートよりも大きいか否かを判断するための手段を備える、装置。
【請求項１５】
請求項１４に記載の装置であって、前記最適化手段は、さらに、
前記ビットエラーレートが、前記所定の閾値ビットエラーレートよりも大きいと判断された場合に、前記メインリンク上の前記マルチメディアデータパケットの伝送レートが、最小伝送レートよりも大きいか否かを判断するための手段を備える、装置。
【請求項１６】
請求項１５に記載の装置であって、前記伝送レートが、前記最小伝送レートよりも大きい場合に、
前記メインリンク伝送レートを低減するための手段と、
前記低減されたメインリンク伝送レートに基づいて、前記ビットエラーレートを決定するための手段と、を備える、装置。
【請求項１７】
請求項１２に記載の装置であって、前記双方向補助チャネルは、前記ディスプレイデバイスから前記ソースデバイスへ情報を運ぶよう構成された単方向の上りチャネルと、前記メインチャネルの一部として含まれ、前記上りチャネルと協調して前記ソースデバイスから前記ディスプレイデバイスへ情報を運ぶための単方向の下りチャネルと、から形成されている、装置。
【請求項１８】
請求項１２に記載の装置であって、前記複数のマルチメディアデータパケットは、複数の関連のマルチメディアデータパケットストリームに分割される、装置。
【請求項１９】
請求項１８に記載の装置であって、前記メインリンク部は、さらに、
前記マルチメディアデータパケットストリームの内の特定の１つとそれぞれ関連した複数の仮想リンクを備え、前記仮想リンクの各々は、関連の仮想リンク帯域幅と仮想リンクレートとを有する、装置。
【請求項２０】
請求項１６に記載の装置であって、メインリンク帯域幅は、少なくとも、前記仮想リンク帯域幅の総計に等しい、装置。
【請求項２１】
請求項１９に記載の装置であって、前記仮想リンクの各々に関連する前記仮想リンクレートの各々は、最適化される、装置。
【請求項２２】
請求項１２に記載の装置であって、さらに、
アクティブなディスプレイデバイスが、前記メインリンクおよび前記補助リンクに接続されたことを自動的に判断するホットプラグイベントを検出するための手段と、
前記ホットプラグイベントの前記検出の直後に前記最適化を開始するための手段と、を備える、装置。
【請求項２３】
マルチメディアソースデバイスとマルチメディアディスプレイデバイスとの間で行われる複数のマルチメディアデータパケットの伝送をリアルタイムに最適化するためのコンピュータプログラム製品であって、前記マルチメディアソースデバイスおよび前記マルチメディアディスプレイデバイスは、前記マルチメディアソースデバイスおよび前記マルチメディアディスプレイデバイスから前記マルチメディアデータパケットを運ぶよう構成された単方向メインリンクと、前記マルチメディアソースデバイスと前記マルチメディアディスプレイデバイスとの間で情報を転送するよう構成された双方向補助チャネルとによって結合されており、前記コンピュータプログラム製品は、
前記メインリンク上の前記マルチメディアソースデバイスによってテストパターンを準備するためのコンピュータコードと、
前記テストパターンに基づいて、前記メインリンクの伝送品質因子を決定するためのコンピュータコードと、
前記伝送品質因子に基づいて、前記マルチメディアデータパケットの前記伝送を最適化するためのコンピュータコードと、
前記コンピュータコードを格納するためのコンピュータ読み取り可能媒体と、を備える、コンピュータプログラム製品。
【請求項２４】
請求項２３に記載の方法であって、伝送品質因子を決定する前記コンピュータコードは、
前記マルチメディアディスプレイデバイスにより、前記テストパターンに基づいて、ビットエラーレートを決定するためのコンピュータコードと、
前記補助チャネルにより、前記ビットエラーレートを前記ソースデバイスに送信するためのコンピュータコードと、を備える、方法。
【請求項２５】
請求項２４に記載のコンピュータプログラム製品であって、前記最適化のためのコンピュータコードは、
前記ビットエラーレートが、所定の閾値ビットエラーレートよりも大きいか否かを判断するためのコンピュータコードを備える、コンピュータプログラム製品。
【請求項２６】
請求項２５に記載のコンピュータプログラム製品であって、前記最適化のためのコンピュータコードは、さらに、
前記ビットエラーレートが、前記所定の閾値ビットエラーレートよりも大きいと判断された場合に、前記メインリンク上の前記マルチメディアデータパケットの伝送レートが、最小伝送レートよりも大きいか否かを判断するためのコンピュータコードを備える、コンピュータプログラム製品。
【請求項２７】
請求項２６に記載のコンピュータプログラム製品であって、前記伝送レートが、前記最小伝送レートよりも大きい場合に、
前記メインリンク伝送レートを低減するためのコンピュータコードと、
前記低減されたメインリンク伝送レートに基づいて、前記ビットエラーレートを決定するためのコンピュータコードと、を備える、コンピュータプログラム製品。
【請求項２８】
請求項２３に記載のコンピュータプログラム製品であって、前記双方向補助チャネルは、前記ディスプレイデバイスから前記ソースデバイスへ情報を運ぶよう構成された単方向の上りチャネルと、前記メインチャネルの一部として含まれ、前記上りチャネルと協調して前記ソースデバイスから前記ディスプレイデバイスへ情報を運ぶための単方向の下りチャネルと、から形成されている、コンピュータプログラム製品。
【請求項２９】
請求項２３に記載のコンピュータプログラム製品であって、前記複数のマルチメディアデータパケットは、複数の関連のマルチメディアデータパケットストリームに分割される、コンピュータプログラム製品。
【請求項３０】
請求項２９に記載のコンピュータプログラム製品であって、前記メインリンク部は、さらに、
前記マルチメディアデータパケットストリームの内の特定の１つとそれぞれ関連した複数の仮想リンクを備え、前記仮想リンクの各々は、関連の仮想リンク帯域幅と仮想リンクレートとを有する、コンピュータプログラム製品。
【請求項３１】
請求項２７に記載のコンピュータプログラム製品であって、メインリンク帯域幅は、少なくとも、前記仮想リンク帯域幅の総計に等しい、コンピュータプログラム製品。
【請求項３２】
請求項３０に記載のコンピュータプログラム製品であって、前記仮想リンクの各々に関連する前記仮想リンクレートの各々は、最適化される、コンピュータプログラム製品。
【請求項３３】
請求項２３に記載のコンピュータプログラム製品であって、さらに、
アクティブなディスプレイデバイスが、前記メインリンクおよび前記補助リンクに接続されたことを自動的に判断するホットプラグイベントを検出するためのコンピュータコードと、
前記ホットプラグイベントの前記検出の直後に前記最適化を開始するためのコンピュータコードと、を備える、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスプレイデバイスに関するものである。さらに具体的には、本発明は、ビデオソースをビデオディスプレイに結合するのに適したデジタルディスプレイインターフェースに関する。
【背景技術】
【０００２】
現在のところ、ビデオディスプレイ技術は、アナログタイプのディスプレイデバイス（ブラウン管等）とデジタルタイプのディスプレイデバイス（液晶ディスプレイ、ＬＣＤ、プラズマスクリーン等）とに分けられる。いずれも、首尾良く画像を表示するためには特定の入力信号による駆動が不可欠である。例えば、代表的なアナログシステムは、通信リンクを通してディスプレイデバイス（ビデオシンクと称される場合もある）に直接結合されたアナログソース（パーソナルコンピュータ、ＤＶＤプレーヤ等）を備える。通信リンクは、当業者に良く知られたケーブルの形態（ＰＣの場合はアナログＶＧＡケーブルと称され、それ以外の場合はＶＧＡ  ＤＢ１５ケーブルと称される）をとるのが普通である。例えば、ＶＧＡ  ＤＢ１５ケーブルは、それぞれが特定の信号を運ぶように構成された１５のピンを備える。
【０００３】
ＶＧＡ  ＤＢ１５ケーブルの長所の一つは、実装が広汎に行われており、しかも拡大しつつあることによるその遍在性にある。上述されたアナログシステムが主流を占める限りは、ケーブルの形態がＶＧＡ  ＤＢ１５以外の形態に移行する必要性はほとんどない。
【０００４】
しかしながら、近年、デジタルシステムの爆発的な普及によって、デジタルビジュアルインターフェース（ＤＶＩ）ケーブル等のデジタルケーブルの需要が増してきた。周知のように、ＤＶＩは、ＤＤＷＧ（Digital Display Working Group）によって作成されたデジタルインターフェース規格である。データは、ＴＭＤＳ（Transition Minimized Differential Signaling）プロトコルを使用して伝送される。これは、デジタル信号をＰＣのグラフィックスサブシステムからディスプレイに供給する。ＤＶＩは、１６０ＭＨｚを超える帯域を扱うので、ＵＸＧＡおよびＨＤＴＶを一組のリンクでサポートする。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
今日におけるディスプレイ相互接続は、全体として、デスクトップとディスプレイとの相互接続アプリケーション用のＶＧＡ（アナログ）およびＤＶＩ（デジタル）、ならびにラップトップおよび他のオールインワンデバイスにおける内部接続アプリケーション用のＬＶＤＳ（デジタル）を含む。グラフィックスＩＣの供給メーカ、ディスプレイコントローラＩＣの供給メーカ、モニタのメーカ、パソコンの相手先商標製品の製造会社、およびデスクトップパソコンの消費者は、そのデザイン、製品定義、製造、マーケティング、および購買に関して決定を下す際に、多かれ少なかれ、インターフェースの選択を考慮しなければならない。例えば、とある顧客がアナログＶＧＡインターフェースの組み込まれたパソコンを購入すると仮定すると、その顧客は、アナログモニタおよびデジタルモニタのいずれかを購入しなければならない。デジタルモニタを購入した場合は、ＶＧＡインターフェースによって提供されるアナログビデオ信号を、そのモニタの内部で、インラインのアナログ−デジタルコンバータ（ＡＤＣ）またはそのモニタに組み込まれたＡＤＣによってデジタル化する。
【０００６】
したがって、特定の動作状況に基づいて、リアルタイムでパケットベースデジタルディスプレイにおいてデータパケットの伝送を最適化することが望ましい。
【課題を解決するための手段】
【０００７】
本発明のいくつかの実施形態では、マルチメディアソースデバイスとマルチメディアディスプレイデバイスとの間で複数のマルチメディアデータパケットの伝送を最適化する方法が開示されている。記載された実施形態では、マルチメディアソースデバイスおよびディスプレイデバイスは、マルチメディアソースデバイスおよびマルチメディアディスプレイデバイスからマルチメディアデータパケットを運ぶよう構成された単方向メインリンクと、マルチメディアソースデバイスとマルチメディアディスプレイデバイスとの間で情報を転送するよう構成された双方向補助チャネルとによって結合されている。その方法は、少なくとも以下の動作をたどることによって実行できる。メインリンク上のマルチメディアソースデバイスによってテストパターンを準備する動作と、テストパターンに基づいて、メインリンクの伝送品質因子を決定する動作と、伝送品質因子に基づいて、マルチメディアデータパケットの伝送を最適化する動作。
【０００８】
別の実施形態では、マルチメディアソースデバイスおよびマルチメディアディスプレイデバイスからマルチメディアデータパケットを運ぶよう構成された単方向メインリンクと、マルチメディアソースデバイスとマルチメディアディスプレイデバイスとの間で情報を転送するよう構成された双方向補助チャネルとによって結合されたマルチメディアソースデバイスおよびマルチメディアディスプレイデバイスの間で、複数のマルチメディアデータパケットの伝送を最適化するための装置が開示されている。その装置は、少なくとも、メインリンク上のマルチメディアソースデバイスによってテストパターンを準備する手段と、テストパターンに基づいて、メインリンクの伝送品質因子を決定する手段と、伝送品質因子に基づいて、マルチメディアデータパケットの伝送を最適化する手段とを備える。
【０００９】
さらに別の実施形態では、マルチメディアソースデバイスおよびマルチメディアディスプレイデバイスからマルチメディアデータパケットを運ぶよう構成された単方向メインリンクと、マルチメディアソースデバイスとマルチメディアディスプレイデバイスとの間で情報を転送するよう構成された双方向補助チャネルとによって結合されたマルチメディアソースデバイスおよびマルチメディアディスプレイデバイスの間で、複数のマルチメディアデータパケットの伝送を最適化するためのコンピュータプログラム製品が開示されている。そのコンピュータプログラム製品は、メインリンク上のマルチメディアソースデバイスによってテストパターンを準備するためのコンピュータコードと、テストパターンに基づいて、メインリンクの伝送品質因子を決定するためのコンピュータコードと、伝送品質因子に基づいて、マルチメディアデータパケットの伝送を最適化するためのコンピュータコードと、コンピュータコードを格納するためのコンピュータ読み取り可能媒体とを備える。
【発明を実施するための最良の形態】
【００１０】
以下では、添付の図面に一例が示された本発明の特定の一実施形態について詳しく言及する。以下では、特定の実施形態に言及しながら本発明の説明を行うが、これは、本発明がその実施形態に限定されることを意味しない。逆に、本発明は、添付の特許請求の範囲に規定された発明の趣旨および範囲に含まれるあらゆる代替形態、変更形態、および等価形態を網羅するものである。
【００１１】
マルチメディアソースデバイスとマルチメディアディスプレイデバイスとの間で複数のマルチメディアデータパケットの伝送を最適化するのに適した方法および装置が開示されている。記載された実施形態では、マルチメディアソースデバイスおよびディスプレイデバイスは、マルチメディアソースデバイスおよびマルチメディアディスプレイデバイスからマルチメディアデータパケットを運ぶよう構成された単方向メインリンクと、マルチメディアソースデバイスとマルチメディアディスプレイデバイスとの間で情報を転送するよう構成された双方向補助チャネルとによって結合されている。
【００１２】
マルチメディアソースデバイスとマルチメディアディスプレイデバイスとの間で複数のマルチメディアデータパケットの伝送を最適化する方法が開示されている。記載された実施形態では、マルチメディアソースデバイスおよびディスプレイデバイスは、マルチメディアソースデバイスおよびマルチメディアディスプレイデバイスからマルチメディアデータパケットを運ぶよう構成された単方向メインリンクと、マルチメディアソースデバイスとマルチメディアディスプレイデバイスとの間で情報を転送するよう構成された双方向補助チャネルとによって結合されている。
【００１３】
本発明は、少なくとも以下の動作をたどることにより、方法として実行できる。メインリンク上のマルチメディアソースデバイスによってテストパターンを準備する動作と、テストパターンに基づいて、メインリンクの伝送品質因子を決定する動作と、伝送品質因子に基づいて、マルチメディアデータパケットの伝送を最適化する動作。
【００１４】
例えば、図１は、本発明の一実施形態に従って、クロスプラットフォームのパケットベースデジタルビデオディスプレイインターフェース１００を示す概略図である。インターフェース１００は、物理リンク１０６（パイプとも呼ばれる）によってトランスミッタ１０２をレシーバ１０４に接続する。本実施形態では、トランスミッタ１０２は、複数のデータストリーム１０８〜１１２を受信し、必要に応じて、各データストリームを、対応する数のデータパケット１１４にパケット化する。これらのデータパケットは、次に、対応するデータストリームの形に構成され、関連の仮想パイプ１１６〜１２０によってレシーバ１０４に受け渡される。なお、各仮想リンクのリンクレート（すなわち、データパケットの転送速度）は、データストリームごとに最適化することができるので、物理リンク１０６によって運ばれるデータストリームは、それぞれが各自の関連のリンクレートを有することになる（データストリームごとにリンクレートが異なることもあり得る）。データストリーム１１０−１１４は、ビデオ、グラフィック、オーディオなど、任意の数の形態を取りうる。
【００１５】
ソースがビデオソースである場合は、データストリーム１１０−１１４は、コンポジットビデオ、シリアルデジタル、パラレルデジタル、ＲＧＢ、またはコンシューマデジタルビデオ等の任意の数および形式の周知のフォーマットをとることができる各種のビデオ信号を含む。ソース１０２が、例えばアナログテレビ、スチルカメラ、アナログＶＣＲ、ＤＶＤプレーヤ、カムコーダ、レーザディスクプレーヤ、ＴＶチューナ、セットトップボックス（サテライトＤＳＳやケーブル信号をともなう）等の何らかのアナログビデオソースを含む場合は、ビデオ信号はアナログビデオ信号であって良い。ソース１０２は、また、デジタルテレビ（ＤＴＶ）やデジタルスチルカメラ等のデジタル画像ソースを含むことも可能である。デジタルビデオ信号は、ＳＭＰＴＥ  ２７４Ｍ−１９９５（解像度：１９２０ｘ１０８０、プログレッシブ走査またはインターレース走査）、ＳＭＰＴＥ  ２９６Ｍ−１９９７（解像度：１２８０ｘ７２０、プログレッシブ走査）、標準４８０プログレッシブ走査ビデオ等の任意の数および形式の周知のデジタルフォーマットをとることができる。
【００１６】
ソース１０２がアナログ画像信号を提供する場合は、アナログ・デジタルコンバータ（Ａ／Ｄ）がアナログの電圧信号または電流信号を一連の不連続のデジタルコード化番号（信号）に変換し、その過程で、デジタル処理に適した適切なデジタル画像データワードが形成される。Ａ／Ｄコンバータとしては、様々なタイプのものが使用可能である。例えば、フィリップス、テキサスインスツルメント、アナログデバイス、ブルックツリー等によって製造されたＡ／Ｄコンバータが使用可能である。
【００１７】
例えば、データストリーム１１０がアナログ形式の信号である場合は、そのアナログデータは、トランスミッタ１０２に含まれる或いはトランスミッタ１０２に結合されているアナログ・デジタルコンバータ（図示せず）によってデジタル化される。そのデジタル化されたデータストリーム１１０は、次に、パケタイザによってパケット化され、複数のデータパケット１１４に変換される。各データパケット１１４は、仮想リンク１１６によってレシーバ１０４に送信される。レシーバ１０４は、次に、データパケット１１４を適切に再結合してオリジナルのフォーマットに戻し、データストリーム１１０を再構築する。なお、リンクレートは、固有なストリームレートと無関係である。なお、リンクレートは、固有なストリームレートと無関係である。ただし、物理リンク１０６のリンク帯域幅は、送信されるデータストリームの総帯域幅よりも高帯域幅である必要がある。本実施形態では、受信データ（ビデオデータの場合にはピクセルデータ等）をデータマッピング定義に基づいて各仮想リンク用にパックしている。したがって、ＤＶＩ等の従来の相互接続と異なり、物理リンク１０６（または同リンクを構成する任意の仮想リンク）は、ピクセルデータをリンク文字クロックごとに一つずつ運ぶ必要がない。
【００１８】
このように、インターフェース１００は、ビデオデータおよびグラフィックスデータだけでなく、必要に応じてオーディオデータおよび他のアプリケーションデータをも移送する拡張可能な媒体として機能する。また、本発明は、ホットプラグイベントの検出をサポートし、物理リンク（すなわちパイプ）をその最適な伝送レートに自動的に設定する。本発明は、マルチプラットフォーム用のあらゆるディスプレイに対して、ピン数が少ない純粋デジタル方式のディスプレイ相互接続を提供する。プラットフォームとしては、ホスト、ディプレイ、ラップトップ／オールインワンはもちろん、ＨＤＴＶおよびその他の家電アプリケーションも含まれる。
【００１９】
本発明は、ビデオデータおよびグラフィックスデータを提供するだけでなく、ディスプレイタイミング情報をデジタルストリームに組み込み、最適且つ即時性のディスプレイ調整を可能にすることによって、「Ａｕｔｏ−Ａｄｊｕｓｔ」等の機能を不要にすることができる。本発明によるインターフェースは、そのパケットベースの特性がゆえに拡張可能であるので、マルチメディアアプリケーション用の複数のビデオ／グラフィックスストリームおよびオーディオストリーム等の複数のデジタルデータストリームをサポートすることができる。また、ケーブルを新たに敷設しなくても、周辺装置を取り付けたりディスプレイを制御したりするためのユニバーサルシリアルバス（ＵＳＢ）転送を行うことができる。
【００２０】
以下では、本発明によるディスプレイインターフェースの他の実施形態が説明される。
【００２１】
図２は、図１に示されたシステム１００に基づいたシステム２００であり、ビデオソース２０２とビデオディスプレイユニット２０４とを接続するために使用される。図中の実施形態において、ビデオソース２０２は、デジタル画像（すなわちデジタルビデオソース）２０６およびアナログ画像（すなわちアナログビデオソース）２０８の一方または両方を含むことができる。デジタル画像ソース２０６の場合は、デジタルデータストリーム２１０がトランスミッタ１０２に提供され、アナログビデオソース２０８の場合は、同ソースに結合されたＡ／Ｄコンバータユニット２１２がアナログデータストリーム２１３を対応するデジタルデータストリーム２１４に変換する。デジタルデータストリーム２１４は、次に、デジタルデータストリーム２１０とほぼ同じ方法でトランスミッタ１０２によって処理される。ディスプレイユニット２０４は、アナログ方式またはデジタル方式のディスプレイであって良く、或いは、供給されたアナログ信号およびデジタル信号のいずれかを処理できるディスプレイであって良い。いずれの場合も、ディスプレイユニット２０４は、レシーバ１０４をディスプレイ２１８に繋げるディスプレイインターフェース２１６を備え、もしアナログ形式のディスプレイである場合はさらにＤ／Ａコンバータユニット２２０を備える。本実施形態では、ビデオソース２０２が、任意の形態（デスクトップパソコンや、デジタルＴＶまたはアナログＴＶ、セットトップボックス等）をいくらでもとることができる一方で、ビデオディスプレイユニット１０４は、ビデオディスプレイ（ＬＣＤディスプレイやＣＲＴディスプレイ等）の形態をとることができる。
【００２２】
ビデオソースまたはビデオシンクの形態に関わらず、各種データストリームは、物理リンク１０６を利用した伝送に先だってデジタル化（必要な場合のみ）およびパケット化される。物理リンク１０６は、等時性データストリームのための単方向のメインリンク２２２と、ビデオソース２０２とビデオディスプレイ２０４との間におけるリンクのセットアップおよび他のデータトラフィック（各種のリンク管理情報やＵＳＢデータ等）のための双方向の補助チャネル２２４とを含む。
【００２３】
メインリンク２２２は、したがって、複数の等時性データストリーム（複数のビデオ／グラフィックスストリームおよびマルチチャネルオーディオストリーム等）を同時に伝送することができる。本実施形態では、メインリンク２２２は、複数の各種仮想チャネルを含み、各チャネルは、数ギガビット／秒（Ｇｂｐｓ）で等時性データストリーム（非圧縮のグラフィックス／ビデオデータおよびオーディオデータ等）を転送することができる。したがって、論理的な観点から見ると、メインリンク２２２は一本の物理パイプのように見え、その内部には複数の仮想パイプを確立することができる。このように、論理データストリームが物理チャネルに割り当てられるのではなく、むしろ、各論理データストリームが各自の論理パイプ（すなわち上記の仮想チャネル）で運ばれると考えることができる。
【００２４】
本実施形態では、メインリンク２２２の速度すなわち転送レートは、リンクの状態を補正するように調整することが可能である。例えば、一実装形態では、メインリンク２２２の速度は、最低速度である約１．０Ｇｂｐｓ／チャネルから約２．５Ｇｂｐｓ／チャネルまでの範囲におよそ０．４Ｇｂｐｓきざみで調整することができる（図３参照）。２．５Ｇｂｐｓ／チャネルである場合は、メインリンク２２２は、色の深さが１８ビット／ピクセルであるＳＸＧＡ  ６０Ｈｚをチャネルごとにサポートすることができる。なお、チャネル数の減少は、相互接続のコストを低減させるのみならず、携帯機器等の電力依存性のアプリケーションにとっての重要な考慮事項である（そして望ましいことである）消費電力の減少をもたらす。しかしながら、チャネル数を４本まで増やすと、メインリンク２２２は、色の深さが２４ビット／ピクセルである６０ＨｚのＷＱＳＸＧＡ（画像解像度：３２００ｘ２０４８）または色の深さが１８ビット／ピクセルである６０ＨｚのＱＳＸＧＡ（画像解像度：２５６０ｘ２０４８）を、データの圧縮なしにサポートすることができる。最低速度である１．０Ｇｂｐｓ／チャネルである場合でも、２本のチャネルがあれば非圧縮ＨＤＴＶ（すなわち１０８０ｉまたは７２０ｐ）データストリームをサポートすることができる。
【００２５】
本実施形態では、メインリンクのデータレートは、その帯域幅がメインリンクを構成する仮想リンクの総帯域幅を超えるように選択される。インターフェースに送信されたデータは、その固有なレートでトランスミッタに到達する。そして、レシーバ１０４の中の時間ベースリカバリ（ＴＢＲ）ユニット２２６が、必要に応じてメインリンクのデータパケットに組み込まれたタイムスタンプを使用し、ストリームのもとの固有なレートを再生成する。しかしながら、図２Ｂに示された適切に設定されたデジタルディスプレイデバイス２３２では、ディスプレイデータはリンク文字クロックレートでディスプレイドライバ電子機器に送信されるので、時間ベースのリカバリは不要である。したがって、必要とされるチャネル数を大幅に減らし、それに応じてディスプレイの複雑度およびコストを下げることができる。例えば、図２Ｃに示された代表的なＬＣＤパネル２３２では、ディスプレイデータは基本的に各カラムドライバ２３４へと通じており、各カラムドライバ２３４はロウドライバ２３６と合わせて使用されて、アレイ２４０の中からディスプレイエレメント２３８を選択して駆動するので、時間ベースのリカバリは不要である。
【００２６】
他の実施形態は、リンクレートおよびピクセル／オーディオクロックレートのための単純計算法を説明する。今日に存在する標準的なピクセル／オーディオクロック周波数は、全て、下記のマスタ周波数のサブセットであることが研究によって明らかになっている。
２３．７６ＧＨｚ＝２10ｘ３3ｘ５7ｘ１１1Ｈｚ
これは、ピクセル（またはオーディオ）クロックレートが４つのパラメータすなわちＡ、Ｂ、Ｃ、Ｄを用いて下記のように表されることを意味する。
ピクセルクロックレート＝２Aｘ３Bｘ５Cｘ１１D
Ａ＝４ビット、Ｂ＝２ビット、Ｃ＝３ビット、そしてＤ＝１ビット
【００２７】
ピクセルクロックレートと異なるリンクレート（８Ｂ／１０Ｂ文字等の１０ビットの文字を使用するリンクの場合は、シリアルリンクビットレート÷１０である）を有するリンクであっても、これら４つのパラメータＡ’、Ｂ’、Ｃ’、Ｄ’でリンクレートを定義すると好都合である。すなわち、リンククロックをもとにしたピクセル／オーディオクロックの再生成が単純ですむ。例えば、リンクレートがＡ’＝６、Ｂ’＝３、Ｃ’＝７、Ｄ’＝０として設定されると、対応するリンクレートは１３５ＭＨｚである。しかしながら、ピクセルクロックレートがＡ＝８、Ｂ＝３、Ｃ＝６、Ｄ＝０（＝１０８ＭＨｚ）であるとすると、ピクセルクロックは、ピクセルクロックレートがリンクレート×２2／５1に等しいため、リンククロックから生成できる。
【００２８】
再び、時間ベースのリカバリを必要とするシステムに戻る。このようなシステムでは、時間ベースリカバリユニット２２６をデジタルクロックシンセサイザとして実装して良い。とある非圧縮ビデオストリームでは、後ほど詳述されるパケットヘッダに格納されているタイムスタンプは２０ビット値である。所定の一ストリームでは、４つの２０ビット値が各ヘッダに順に格納されている（ＴＳ３−０、ＴＳ７−４、ＴＳ１１−８、ＴＳ１５−１２、ＴＳ１９−１６）。固有なストリーム周波数（Ｆｒｅｑ＿ｎａｔｉｖｅ）は、リンク文字クロック周波数（Ｆｒｅｑ＿ｌｉｎｋ＿ｃｈａｒ）をもとにして次のように求められる。
式（１）：Ｆｒｅｑ＿ｎａｔｉｖｅ＝Ｆｒｅｑ＿ｌｉｎｋ＿ｃｈａｒｘ（ＴＳ１９−０）／２20
【００２９】
トランスミッタ１０２は、固有なストリームクロックの数をリンク文字クロック周波数周期の２20周期ごとにカウントすることによってこのタイムスタンプを生成する。カウンタ値は、リンク文字クロックの２20周期ごとに更新される。これら２種類のクロックは互いに非同期であるので、タイムスタンプ値は時間とともに１ずつ変化する。次の更新までのあいだ、トランスミッタ１０２は、所定のパケットストリームのヘッダに同一のタイムスタンプを入れて繰り返し送信する。タイムスタンプの急激な変化（１カウントを上回る変化）は、ストリームソースが不安定状態にある表れとしてレシーバによって解釈される。
【００３０】
なお、オーディオストリームの場合は、タイムスタンプは送信されない。この場合は、ソースデバイスは、オーディオのサンプルレートおよびビット数／サンプルをディスプレイデバイスに通知する。ディスプレイデバイスは、式（２）およびリンク文字レートに基づいてオーディオレートを決定することによって、元のオーディオストリームレートを再生成する。
式（２）：オーディオレート＝（オーディオサンプルレート）ｘ（ビット数／サンプル）ｘ（チャネル数）
【００３１】
図４Ａに示されたメインリンクデータパケット４００は、メインリンクパケットヘッダ４０２を含む。メインリンクパケットヘッダ４０２は、図４Ｂに示されるように、１６ビットで構成され、このうちビット３〜０はストリームＩＤ（ＳＩＤ）であり（ストリームの最大カウント値は１６であることを表している）、ビット４はタイムスタンプ（ＴＳ）ＬＳＢである。ビット４が１であるとき、このパケットヘッダは、最下位４ビット分のタイムスタンプ値を有する（非圧縮ビデオストリームのためにのみ使用される）。ビット５は、ビデオフレームシーケンスビットであり、ビデオフレーム境界において０から１に或いは１から０に切り替わるフレームカウンタの最下位ビットとして機能する（非圧縮ビデオストリームのためにのみ使用される）。ビット７およびビット６は予備であり、ビット８〜１１は、先の８ビットのエラーをチェックする４ビットのＣＲＣ（ＣＲＣ）である。ビット１５〜１２は、タイムスタンプ／ストリームＩＤの反転であり（ＴＳＰ／ＳＩＤｎ）、非圧縮ビデオの際には２０ビットのタイムスタンプ値のうちの４ビット分として使用される。
【００３２】
本発明によるインターフェースの利点の１つは、互いに異なるフォーマットの複数のデータストリームを多重化する能力を有すること、そして、複数のサブパケットを含む複数のメインリンクデータパケットを有するということにある。例えば、図５は、本発明の一実施形態に従って、サブパケットを内包するとともに複数パケットの多重化を可能にするように構成されたシステム５００を示している。システム５００は、図２に示されたシステム２００の特定の一実施形態であり、したがって、本発明の範囲または趣旨を限定するものとは解釈されない。システム５００は、トランスミッタ１０２の中にストリームソースマルチプレクサ５０２を備える。該マルチプレクサ５０２は、ストリーム１である補足データストリーム５０４をデータストリーム２１０と結合して多重化データストリーム５０６を形成する。多重化データストリーム５０６は、次に、リンク層マルチプレクサ５０８に転送され、該マルチプレクサ５０８は、任意の数のデータストリームを結合し、複数のデータパケット５１２からなる多重化メインリンクストリーム５１０を形成する。データパケット５１２のなかには、任意の数のサブパケット５１４を内包するものもある。リンク層デマルチプレクサ５１６が、多重化データストリーム５１０をストリームＩＤ（ＳＩＤ）および関連のサブパケットヘッダに基づいてデータストリーム成分に分割する一方で、ストリームシンクデマルチプレクサ５１８は、サブパケットに含まれるストリーム１の補足データストリームをさらに分割する。
【００３３】
図６は、図５に示された、３本のストリームを多重化してメインリンク２２２に載せる場合のストリーム５１０の一例として、多重化メインリンクストリーム６００を詳細に示した図である。この例における３本のストリームとは、ＵＸＧＡグラフィックス（ストリームＩＤ＝１）、１２８０ｘ７２０ピクセルのビデオ（ストリームＩＤ＝２）、およびオーディオ（ストリームＩＤ＝３）である。メインリンクパケット４００は、パケットヘッダのサイズが小さいので、パケットのオーバーヘッドを最小限に抑え、ひいては非常に高いリンク効率を可能にする。パケットヘッダをこれほど小さくできるのは、メインリンク２２２を通したパケットの伝送に先だって、パケットの属性が補助チャネル２２４を介して伝えられるからである。
【００３４】
一般に、サブパケットの内包は、メインパケットストリームが非圧縮ビデオである場合に有効な手段である。これは、非圧縮ビデオデータストリームが、ビデオブランキング期間に対応するデータアイドル期間を有するためである。したがって、非圧縮ビデオストリームからなるメインリンクトラフィックは、この期間内に特殊文字ヌルからなる一連のパケットを含んでいる。各種のデータストリームを多重化する能力をフルに活用することによって、本発明の実現形態は、ソースストリームがビデオデータストリームである場合におけるメインリンクレートとピクセルデータレートとの差を、各種の方法を使用して補正することができる。例えば、図７に示されるように、ピクセルデータレートが０．５Ｇｂ／ｓである場合は、０．２ｎｓ毎に１ピクセルデータビットが伝送される。この例では、リンクレートが１．２５Ｇｂ／ｓに設定されており、０．８ｎｓ毎に１ピクセルデータビットが伝送される。このとき、トランスミッタ１０２は、図８に示されるように、ピクセルデータ間に特殊文字を散在させる。第１のピクセルデータビットＰ１と第１のピクセルデータビットＰ２との間には、２つの特殊文字が配される。特殊文字の存在によって、レシーバ１０４は、ピクセルデータビットを区別することが可能になる。ピクセルデータビット間に特殊文字を散在させると、データストリームを定常状態にすることもできる。したがって、リンクの同期化を維持することが可能になる。この例では、特殊文字はヌル文字である。リンクレートが十分に大きいので、このような方法ではラインバッファは必要でなく、小規模なＦＩＦＯのみが必要である。しかしながら、受信側では、ビデオ信号の再構築のために比較的多くのロジックが必要である。レシーバは、特殊文字の開始と終了を認識する必要がある。
【００３５】
特殊文字を散在させる方法に替わる方法に、連続するピクセルデータビットをヌル値などの特殊文字で置き換える方法がある。例えば、トランスミッタ１０４に含まれるラインバッファにＰ１〜Ｐ４を供給し、次いで、他のピクセルデータを使用できるようになるまでの間、同バッファに１つまたはそれ以上のヌル値を供給することができる。このような実現形態は、上述した散在させる方法よりも大きいバッファスペースを必要とする。このような実現形態ではリンク速度が大きいので、多くの場合、ラインバッファを満たすために必要な時間のほうがラインバッファを満たした後にデータを伝送するために必要な時間よりも長い。
【００３６】
図５Ａを参照にして説明したように、本発明によるインターフェースの長所の１つは、各種のデータストリームを多重化できるだけでなく、ある特定のメインリンクデータパケット内に任意の数のサブパケットを内包させられる点にある。図９Ａは、本発明の一実施形態に従って、代表的なサブパケット９００を示している。サブパケット９００は、サブパケットヘッダ９０２を含み、サブパケットヘッダ９０２は、本実施形態において２バイトであるとともに、ＳＰＳ（Sub-Packet Start：サブパケット開始）特殊文字をともなっている。このサブパケット９００を内包するメインリンクデータパケットに、サブパケット９００だけでなくパケットペイロードも含まれる場合は、ＳＰＥ（Sub-Packet End：サブパケット終了）特殊文字によって、サブパケットの終了を表さなければならない。そうでないと、メインパケットの終了（図９Ｂの例では後続のＣＯＭ文字によって示されている）が、サブパケット９０２の終了および同サブパケットを内包するメインパケットの終了の両方を表すことになる。しかしながら、サブパケットを内包するメインパケットに、ペイロードが含まれない場合は、そのサブパケットをＳＰＥによって終了する必要はない。図９Ｂは、本発明の一実施形態にしたがって、メインリンクパケットに含まれる代表的なサブパケットのフォーマットを示している。なお、ヘッダフィールドおよびサブパケットペイロードの定義は、サブパケット９０２を使用する特定のアプリケーションプロファイルに依存する。
【００３７】
サブパケットを内包する方法のなかでも特に有用な一例として、図１０に示されるように、非圧縮グラフィックス画像１０００を選択的にリフレッシュする方法がある。全体フレーム１００２の属性（水平合計または垂直合計、画像幅または画像高さ等）は、ストリームが有効である限りは一定であるので、補助チャネル２４４を介して伝送される。選択的なリフレッシュの際には、各ビデオフレームあたり一部１００４のみが更新される。更新される長方形（すなわち部分１００４）の座標値はフレーム毎に異なるので、上記長方形の４つのＸＹ座標はフレーム毎に伝送する必要がある。別の一例として、２５６色のグラフィックスデータで必要とされるカラールックアップテーブル（ＣＬＵＴ）データを伝送する方法がある。このとき、８ビットのピクセルデータは２５６のＣＬＵＴ入力の一つであり、ＣＬＵＴの内容は動的に更新されなければならない。
【００３８】
単一の双方向補助チャネル２２４は、リンクのセットアップに有用な機能や、メインリンクの動作をサポートする機能はもちろんのこと、ＵＳＢトラフィック等の補助アプリケーションデータを運ぶ機能など、各種のサポート機能のためのコンジットとして働く。例えば、補助チャネル２２４があれば、ディスプレイデバイスは、同期の喪失、パケットの脱落、およびトレーニングセッション（後述する）の結果等のイベントを、ソースデバイスに通知することができる。例えば、ある特定のトレーニングセッションが失敗であった場合は、トランスミッタ１０２は、その失敗したトレーニングセッションに関する予め選択された結果或いは決定された結果に基づいて、メインリンクレートを調整する。このように、調整可能で且つ高速のメインリンクと、比較的低速で且つ非常に高信頼性の補助チャネルとを組み合わせて閉ループを形成すると、様々なリンク状態に渡って非常に頑強な動作を維持することが可能になる。場合によっては（例えば図５Ｂに示した例では）、メインリンク２２２の帯域の一部５２２を使用して、ソースデバイス２０２からシンクデバイス２０２にデータを転送するための論理的な双方向補助チャネル５２０を確立し、さらに、シンクデバイス２０４からソースデバイス２０２にいたる単方向の上りチャネル５２４を確立することができる。使用目的によっては、このような論理的な双方向補助チャネルを使用する方が、図５Ａで説明した半二重の双方向チャネルを使用するよりも望ましい。
【００３９】
実際にパケットデータストリームの伝送を始めるに先だって、トランスミッタ１０２は、モデムのリンクセットアップに概念的に類似したリンクトレーニングセッションを通して継続的なリンクを確立する。リンクトレーニングの際は、メインリンクのトランスミッタ１０２から定義済みのトレーニングパターンが送信されるので、レシーバ１０４は、確かなビットロックまたは文字ロックを実現できるか否かを決定することができる。本実施形態では、トランスミッタ１０２とレシーバ１０４との間におけるトレーニング関連のハンドシェークが補助チャネルによって運ばれる。図１１は、本発明の一実施形態にしたがって、リンクトレーニングパターンの一例を示している。図のように、トレーニングセッションの際は、イコライザを最適化する目的でレシーバによって使用されるランレングスのうち、フェーズ１が最短のランレングスを、そしてフェーズ２が最長のランレングスを表している。フェーズ３では、リンクの品質が妥当でありさえすれば、ビットロックおよび文字ロックの両方が実現される。通常、トレーニング期間は約１０ｍｓであり、この間に約１０７ビットのデータが送信される。確かなロックを実現できない場合は、レシーバ１０４は、その旨を補助チャネル２２４を介してトランスミッタ１０２に通知する。すると、トランスミッタ１０２は、リンクレートを引き下げ、トレーニングセッションを再度行う。
【００４０】
補助チャネル２２４は、トレーニングセッション用のコンジットとして働くだけでなく、メインリンクパケットストリームの記述を運ぶために使用することもできる。したがって、メインリンク２２２におけるパケット伝送のオーバーヘッドを大幅に減らすことができる。さらに、補助チャネル２２４は、どのモニタ上でも見られるディスプレイデータチャネル（ＤＤＣ）に替わって拡張ディスプレイ識別データ（ＥＤＩＤ）情報を運ぶように構成することもできる（ＥＤＩＤは、ベンダ情報、最大画像サイズ、色特性、出荷時の初期設定タイミング、周波数範囲の限界、ならびにモニタ名用およびシリアル番号用の文字列等の、モニタおよびその能力に関する基本情報を含む、ＶＥＳＡによる標準データフォーマットである。これらの情報は、ディスプレイの中に格納され、モニタとＰＣグラフィックスアダプタとの間に位置するＤＤＣを通じてシステムと通信するために使用される。システムは、これらの情報を、モニタおよびシステムを共同で作業させるための設定目的で使用する）。拡張プロトコルモードと称されるモードにあるとき、補助チャネルは、キーボード、マウス、マイクロホン等の追加のデータタイプをサポートする際に必要とされるように、非同期および等時性の両方のパケットを運ぶことができる。
【００４１】
図１２は、本発明の一実施形態にしたがって、システム２００を論理的に階層化した状態１２００を示している。実装形態の詳細は、使用目的に応じて異なる可能性があるが、ソース（ビデオソース２０２等）は、一般に、トランスミッタハードウェアを含むソース物理層１２０２と、多重化ハードウェアおよび状態マシン（すなわちファームウェア）を含むソースリンク層１２０４と、オーディオ／ヴィジュアル／グラフィックスハードウェアおよび関連のソフトウェア等のデータストリームソース１２０６とからなる。同様に、ディスプレイデバイスは、物理層１２０８（各種のレシーバハードウェアを含む）と、逆多重化ハードウェアおよび状態マシン（すなわちファームウェア）を含むシンクリンク層１２１０と、ディスプレイ／タイミングコントローラハードウェアおよびオプションのファームウェアを含むストリームシンク１２１２とからなる。ソースアプリケーションプロファイル層１２１４は、ソースがリンク層１２０４と通信する際のフォーマットを定義しており、同様に、シンクアプリケーションプロファイル層１２１６は、シンク１２１２がリンク層１２１０と通信する際のフォーマットを定義している。
【００４２】
以下では、各層が詳細に説明される。
【００４３】
ソースデバイスの物理層
本実施形態において、ソースデバイスの物理層１２０２は、エレクトリカルサブ層１２０２−１およびロジカルサブ層１２０２−２を含む。エレクトリカルサブ層１２０２−１は、ホットプラグ／アンプラグ検出回路等のインターフェース初期化用またはインターフェース動作用のあらゆる回路、ドライバ／レシーバ／ターミネーションレジスタ、パラレル・シリアル／シリアル・パラレル変換、およびスペクトル拡散可能なフェーズロックループ（ＰＬＬ）等を含む。ロジカルサブ層１２０２−２は、パケット化／逆パケット化用の回路、データのスクランブリング／デスクランブリング用の回路、およびリンクトレーニングにおけるパターン形成用の回路、時間ベースリカバリ回路、およびデータのエンコーディング／デコーディング用の回路を含む。このうち、データのエンコーディング／デコーディングは、例えば、２５６のリンクデータ文字および１２の制御文字（図１３にその一例が示されている）をメインリンク２２２に提供し、マンチェスタIIエンコーディング（図１４参照）を補助チャネル２２４に提供する８Ｂ／１０Ｂ（ＡＮＳＩ  Ｘ３．２３０−１９９４の第１１条に規定されている）である。
【００４４】
８Ｂ／１０Ｂエンコーディングアルゴリズムは、例えば、ＵＳＰ  ４，４８６，７３９に記載されており、それは、参考のために組み入れられる。当業者に知られているように、８Ｂ／１０Ｂコードは、８ビットのデータブロックをコード化してシリアル伝送用の１０ビットのコードワードを得るブロックコードである。また、８Ｂ／１０Ｂ伝送コードは、ランダムな１と０とからなる１ビット幅のデータストリームを、１と０とからなる最大ランレングスが５であるＤＣバランスドストリームに変換する。このようなコードは、十分な信号遷移を提供することによって、トランシーバ１１０等のレシーバによる高信頼性のクロックリカバリを可能にする。さらに、ＤＣバランスドストリームは、光ファイバ結線および電磁結線に対して有利であることがわかっている。シリアルストリームの中の１および０の平均数は、等しいまたはほぼ等しいレベルに維持される。８Ｂ／１０Ｂ伝送コードは、１の数と０の数との間のディスパリティを、６ビットおよび４ビットのブロック境界内において−２、０、または２に限定する。このコード体系は、また、コマンドコードと称されるシグナリング用の追加コードを実装する。
【００４５】
非圧縮ディスプレイデータによって表される反復ビットパターンを回避するため（そしてＥＭＩを抑えるため）、メインリンク２２２で伝送されるデータは、先ず、８Ｂ／１０Ｂエンコーディングに先だってスクランブルされる。トレーニングパケットおよび特殊文字以外のすべてのデータがスクランブルされる。このスクランブルの機能は、線形フィードバックシフトレジスタ（ＬＦＳＲ）によって実装される。データ暗号化が使用可能に設定されている場合は、ＬＦＳＲシードの初期値は暗号キーセットに応じて異なる。データのスクランブルが暗号化をともなわない場合は、初期値は固定される。
【００４６】
データストリームの属性は、補助チャネル２２４で伝送されるので、メインリンクのパケットヘッダは、ストリームの識別番号として機能することができる。したがって、オーバーヘッドを大幅に減らすとともに、リンクの帯域を最大にすることが可能である。また、メインリンク２２２および補助リンク２２４は、いずれも個別のクロック信号線を有さない。したがって、メインリンク２２２および補助リンク２２４のレシーバは、データをサンプリングし、受信したデータストリームからクロックを抽出する。補助チャネル２２４は半二重双方向であり、尚かつトラフィックの方向が頻繁に変化するので、レシーバのエレクトリカルサブ層に含まれるどのフェーズロックループ（ＰＬＬ）にとっても、素早くフェーズロックを行うことが重要である。したがって、マンチェスタII（ＭII）コードの信号遷移が、頻繁で且つ均一であるおかげで、補助チャネルのレシーバのＰＬＬは、わずか１６データ期間のあいだにフェーズロックを行う。
【００４７】
リンクのセットアップ時には、補助チャネル２２４を通じたハンドシェークを使用し、メインリンク２２２のデータレートのネゴシエーションが行われる。このプロセスでは、既知の複数組のトレーニングパケットが、最も高いリンク速度でメインリンク２２２を通じて送信される。そして、その結果の成功または失敗が、補助チャネル２２４を介してトランスミッタ１０２に戻される。トレーニングが失敗した場合は、メインリンクの速度は減らされ、トレーニングは成功するまで繰り返される。このように、ソース物理層１１０２はケーブルの問題に強く、したがって、外部ホストがアプリケーションを監視するのに適している。しかしながら、従来のディスプレイインターフェースと異なり、メインチャネルのリンクデータレートは、ピクセルクロックレートから切り離されている。リンクデータレートは、リンク帯域が伝送ストリームの総帯域を超えるように設定される。
【００４８】
ソースデバイスのリンク層
ソースリンク層１２０４は、リンクの初期化および管理を扱っている。例えば、モニタの起動時またはモニタケーブルの接続時に生成されたホットプラグイベントをソース物理層１２０２から受信すると、ソースリンク層１２０４は、補助チャネル２２４を通じた交換を介してレシーバの能力を評価することによって、トレーニングセッションによって決定された最大のメインリンクデータレートと、レシーバ上にある時間ベースのリカバリユニットの数と、両端にある使用可能なバッファサイズと、ＵＳＢ拡張の可用性とを決定し、関連のホットプラグイベントをストリームソース１２０６に通知する。ソースリンク層１２０４は、また、ストリームソース１２０６からの要請に応じてディスプレイ能力（ＥＤＩＥまたはそれと同等なもの）を読み出す。通常の動作時には、ソースリンク層１２０４は、補助チャネル２２４を介してストリーム属性をレシーバ１０４に送信し、要求されたデータストリームを扱うのに十分なリソースをメインリンク２２２が有するか否かをストリームソース１２０４に通知し、同期性の喪失やバッファのオーバーフロー等のリンクの失敗に関するイベントをストリームソース１２０４に通知し、ストリームソース１２０４によって発信されたＭＣＣＳコマンドを補助チャネル２２４を介してレシーバに送信する。ソースリンク層１２０４とストリームソース／シンクとの間における通信は、全て、アプリケーションプロファイル層１２１４で定義されたフォーマットを使用して行われる。
【００４９】
アプリケーションプロファイル層（ソースおよびシンク）
一般に、アプリケーションプロファイル層は、ストリームソース（またはシンク）が関連のリンク層とインターフェースをとる際のフォーマットを定義する。アプリケーションプロファイル層によって定義されるフォーマットは、アプリケーション独立のフォーマット（リンク状況を照会するためのリンクメッセージ）とアプリケーション依存のフォーマット（メインリンクのデータマッピング、レシーバのための時間ベースのリカバリ方程式、そして、もし該当する場合は、シンク能力／ストリーム属性メッセージのサブパケットフォーマット）とに分類される。アプリケーションプロファイル層は、次の色フォーマットをサポートする。すなわち、２４ビットＲＧＢ、１６ビットＲＧＢ、１８ビットＲＧＢ、３０ビットＲＧＢ、２５６色ＲＧＢ（ＣＬＵＴベース）、１６ビットＣｂＣｒ４２２、２０ビットＹＣｂＣｒ４２２、および２４ビットＹＣｂＣｒ４４４である。
【００５０】
例えば、ディスプレイデバイスのアプリケーションプロファイル層（ＡＰＬ）層１２１４は、基本的に、メインリンク２２２を通して行われるストリームソース／シンク通信のためのフォーマットを記述するアプリケーションプログラミングインターフェース（ＡＰＩ）である。記述されるフォーマットは、インターフェース１００に送信された或いはインターフェース１００から受信されたデータを表すフォーマットを含む。ＡＰＬ１２１４の特徴のいくつかは（例えば電力管理コマンドフォーマット等は）ベースラインモニタ機能であり、これらはインターフェース１００のあらゆる用途に共通である。これに対し、データマッピングフォーマットやストリーム属性フォーマット等の他の非ベースラインモニタ機能は、使用目的および伝送される等時性ストリームの種類に固有のものである。そして、使用目的の如何に関わらず、ストリームソース１２０４は、メインリンク２２２上でのパケットストリームの伝送に先だって、メインリンク２２２が保留データストリームを扱うことができるか否かを確認するためにソースリンク層１２１４に照会する。
【００５１】
メインリンク２２２が、保留パケットストリームをサポートできると決定された場合は、ストリームソース１２０６は、ストリーム属性をソースリンク層１２１４に送信する。ストリーム属性は、さらに、補助チャネル２２４を通してレシーバに伝送される。これらの属性は、ある特定のストリームのパケットを識別するために、該ストリームをもとにして元データを回復するために、そして該元データのフォーマットを上記ストリームに固有なデータレートに戻すために、レシーバによって使用される情報である。データストリームの属性は、使用目的に応じて異なる。
【００５２】
メインリンク２２２上で所望の帯域を使用できない場合は、ストリームソース１２０６は、例えば、イメージのリフレッシュレートまたは色の深みを低減させることによる修正措置をとって良い。
【００５３】
ディスプレイデバイスの物理層
ディスプレイデバイスの物理層１２０８は、ディスプレイデバイスリンク層１２１０およびディスプレイデバイスＡＰＬ１２１６を、リンクデータの伝送または受信のために使用されるシグナリング技術から隔離する。メインリンク２２２および補助チャネル２２４は、ロジカルサブ層と、コネクタ仕様を含むエレクトリカルサブ層とからなる物理層を各自に有する。例えば、図１５に示されるように、半二重で且つ双方向である補助チャネル２２４は、リンクの両端にそれぞれトランスミッタおよびレシーバを有する。補助リンクのトランスミッタ１５０２は、ロジカルサブ層１２０８−１からリンク文字を提供される。これらの特殊文字は、次いでシリアル化され、対応する補助リンクレシーバ１５０４に伝送される。レシーバ１５０４は、シリアル化されたリンク文字を補助リンク２２４から受信し、そのデータをリンク文字クロックレートで逆シリアル化する。なお、ソースのロジカルサブ層の主な機能は、トランスミッタポートのために、信号エンコーディング、パケット化、データスクランブリング（ＥＭＩ抑制を目的とする）、およびトレーニングパターン生成を行うことである。これに対し、レシーバのロジカルサブ層の主な機能は、レシーバポートのために、信号デコーディング、逆パケット化、データデスクランブリング、および時間ベースのリカバリを行うことである。
【００５４】
補助チャネル
補助チャネルのロジカルサブ層の主な機能は、データのエンコーディングおよびデコーディングと、データのフレーミングおよびデフレーミングとを含み、補助チャネルプロトコルは、スタンドアロンプロトコル（Ｐｏｉｎｔ−ｔｏ−Ｐｏｉｎｔ接続形態におけるリンクのセットアップ機能／管理機能に限定される）および拡張プロトコルの２つの選択肢を有する。スタンドアロンプロトコルは、リンク層の状態マシンまたはファームウェアによる管理が可能である軽量プロトコルであり、拡張プロトコルは、ＵＳＢトラフィック等の他のデータタイプおよびデイジーチェーンシンクデバイス等の他の接続形態をサポートするプロトコルである。なお、データのエンコーディングおよびデコーディングの体系はプロトコルによらず同一であるが、データのフレーミングは両プロトコル間で異なる。
【００５５】
図１５に示されるように、補助チャネルのエレクトリカルサブ層は、トランスミッタ１５０２およびレシーバ１５０４を含む。トランスミッタ１５０２は、ロジカルサブ層からリンク文字を提供され、これらのリンク文字は、次いでシリアル化されて送出される。レシーバ１５０４は、シリアル化されたリンク文字をリンク層から受信し、次いでそれらをリンク文字クロックレートで逆シリアル化する。補助チャネル２２４の正信号および負信号は、図示されているように、リンクの各端において５０オームの終端レジスタにアースされて終了する。本実装形態において、駆動電流は、リンクの状態に応じて変動するようにプログラムすることが可能であり、約８ｍＡから約２４ｍＡまでの範囲で変動することによって、約４００ｍＶから約１．２Ｖまでの範囲の電圧Ｖｄｉｆｆｅｒｅｎｔｉａｌ＿ｐｐを得ることができる。電気的なアイドル状態では、正信号および負信号のいずれも駆動されていない。このような電気的なアイドル状態から伝送を開始する際は、ＳＹＮＣパターンを伝送してリンクを再確立しなければならない。本実施形態では、ＳＹＮＣパターンは、補助チャネルの差動ペア信号をクロックレートで２８回トグリングしたものと、それに続く４つのマンチェスタIIコードの１とからなる。ソースデバイスの中の補助チャネルマスタは、補助チャネル２２４の正信号および負信号を定期的に駆動するまたは測定することによって、ホットプラグおよびホットアンプラグのイベントを検出する。
【００５６】
メインリンク
本実施形態では、メインリンク２２２は、ローカルクリスタル周波数の整数倍である離散的で且つ可変であるリンクレートをサポートする（２４ＭＨｚのローカルクリスタル周波数と一致する代表的な一組のリンクレートに関しては、図３を参照のこと）。図１６に示されるように、（単方向チャネルである）メインリンク２２２は、ソースデバイスにはトランスミッタ１６０２のみを、そしてディスプレイデバイスにはレシーバ１６０４のみを有する。
【００５７】
図に示されるように、ケーブル１６０４は、一組のツイストペア線を含む形態をとり、ツイストペア線は、それぞれ、代表的なＲＧＢ色ベースのビデオシステム（例えばＰＡＬベースのテレビシステム）で使用される赤（Ｒ）、緑（Ｇ）、および青（Ｂ）の各ビデオ信号用である。当業者に知られているように、ツイストペアケーブルは、個別に絶縁された二本の線を互いに巻き付けたものからなるタイプのケーブルである。一方の線は信号を運び、他方の線はアースされ、信号の干渉を吸収する。信号は、システムによっては、ＮＴＳＣビデオテレビシステムで使用される成分ベースの信号（Ｐｂ、Ｐｒ、Ｙ）であっても良い。ケーブルの内部では、各ツイストペアが個別にシールドされている。また、ピンは、＋１２Ｖ電力用とアース用の２つがある。各差動ペアの特性インピーダンスは、１００オーム±２０％である。また、ケーブル全体もシールドされている。この全体のシールドおよび個別のシールドは、両端のコネクタシェルにショートされている。コネクタシェルは、ソースデバイス内においてアース端子にショートされている。図１７に示されるコネクタ１７００は、一列にならんだ１３のピンを有し、こうして形成されるピン配列は、ソースデバイス側のコネクタおよびディスプレイデバイス側のコネクタに共通である。ソースデバイスは、電力を供給する。
【００５８】
メインリンク２２２は両端で終結する。また、メインリンク２２２はＡＣ結合されているので、終端電圧は０Ｖ（アース端子）から＋３．６Ｖまでの間ならどこでも良い。本実装形態において、駆動電流は、リンクの状態に応じて変動するようにプログラムすることが可能であり、約８ｍＡから約２４ｍＡまでの範囲で変動することによって、約４００ｍＶから約１．２Ｖまでの範囲の電圧Ｖｄｉｆｆｅｒｅｎｔｉａｌ＿ｐｐを得ることができる。電圧の振れは、トレーニングパターンを使用して接続ごとに最小となるように選択される。電気的なアイドル状態は、電力管理モードの際にもたらされる。電気的なアイドル状態では、正信号および負信号のいずれも駆動されない。このような電気的なアイドル状態から伝送を開始する際は、トレーニングセッションを実行し、レシーバとのリンクを再確立しなければならない。
【００５９】
状態図
次に、後述される図１８および図１９に示された状態図をもとにして発明を説明する。図１８は、後述されるソースの状態図を示している。オフ状態１８０２のとき、システムは停止しているので、ソースは使用不可に設定されている。ここで、ソースが使用可能に設定されると、システムは、省電力およびレシーバ検出に適したスタンバイ状態１８０４に移行する。レシーバが存在するか否か（すなわちホットプラグあるいはホットプレイ）を検出するためには、補助チャネルに定期的に（例えば１０ｍｓごとに１ｕｓの）パルスを発し、駆動時における終端レジスタ間の電圧降下を測定する。測定された電圧降下に基づいて、レシーバは存在すると決定された場合は、システムは、レシーバが検出されたこと、すなわちホットプラグイベントが検出されたことを表すレシーバ検出状態１８０６に移行する。レシーバが検出されなかった場合は、レシーバが検出されるまで、または時間切れになるまで、レシーバの検出が続けられる。なお、ソースデバイスは、場合によっては、ディスプレイの検出をこれ以上試みない「オフ」状態に移行することを選択しても良い。
【００６０】
状態１８０６で、ディスプレイのホットアンプラグイベントが検出された場合は、システムは、スタンドバイ状態１８０４に戻る。それ以外の場合は、ソースは、正信号および負信号によって補助チャネルを駆動してレシーバを稼働させ、次いで、レシーバの後続の応答をチェックする。もし何の応答も得られなかった場合は、レシーバは稼働していないので、ソースは状態１８０６にとどまる。もしディスプレイから信号が得られた場合は、ディスプレイは稼働されており、ソースはレシーバのリンク能力（最大リンクレートやバッファサイズ、時間ベースのリカバリユニットの数等）を読み出せる状態にある。したがって、システムはメインリンク初期化状態１８０８に移行し、トレーニング開始の通知を開始できる状態になる。
【００６１】
このとき、メインリンクを通して指定のリンクレートでトレーニングパターンを送信することによって、トレーニングセッションが開始され、関連のトレーニング状況がチェックされる。レシーバは、三段階の段階ごとに合格／不合格ビットを設定し、トランスミッタは、合格が検出された場合にのみ次の段階に進む。したがって、合格が検出されたときは、メインリンクは上記リンクレートを実現可能な状態にある。このとき、インターフェースは通常動作状態１８１０に移行する。それ以外の場合は、リンクレートが低減され、トレーニングセッションが繰り返される。通常動作状態１８１０にあるあいだも、ソースはリンク状況の指標を定期的に監視し続ける。そして、もし不合格である場合は、ホットアンプラグイベントが検出され、システムはスタンドバイ状態１８０４に移行し、ホットプラグ検出イベントまで待機する。しかしながら、もし同期性の喪失が検出された場合は、システムは状態１８０８に移行し、メインリンク再開イベントまで待機する。
【００６２】
図１９は、後述されるディスプレイの状態図１９００を示している。状態１９０２のときは、電圧は検出されず、ディスプレイはＯＦＦ状態になる。スタンドバイモード状態１９０４のときは、メインリンクレシーバおよび補助チャネルスレーブはともに電気的にアイドル状態にある。このとき、補助チャネルスレーブポートの終端レジスタ間において電圧降下が監視される。所定の電圧が検出された場合は、補助チャネルスレーブポートはホットプラグイベントを表すべくオンにされ、システムは表示状態１９０６に移行する。それ以外の場合は、ディスプレイはスタンバイ状態１９０４にとどまる。状態１９０６（メインリンク初期設定の段階）のときに、ディスプレイが検出された場合は、補助チャネルスレーブポートは完全にオンにされ、トランスミッタはレシーバリンク能力読み出しコマンドに応答し、ディスプレイ状態は１９０８に移行する。そうでなく、補助チャネル上で、所定の期間以上にわたって何の活動も検出されない場合は、補助チャネルスレーブポートはスタンバイ状態１９０４に移行される。
【００６３】
トレーニング開始通知の段階では、ディスプレイは、トレーニングパターンを使用してイコライザを調整することによって、トランスミッタによるトレーニングの開始に応答し、各段階の結果を更新する。トレーニングが不合格である場合は、別のトレーニングセッションまで待機し、トレーニングが合格である場合は、通常動作状態１９１０に進む。補助チャネル上でまたは（トレーニング用の）メインリンク上で、所定の期間（例えば１０ｍｓ）以上にわたって何の活動も検出されない場合は、補助チャネルスレーブポートはスタンバイ状態１９０４に移される。
【００６４】
図２０〜２４は、クロスプラットフォームのディスプレイインターフェースの具体的な実装形態を示している。
【００６５】
図２０は、本発明にしたがって、トランスミッタ２００４を内蔵するオンボードグラフィックスエンジン２００２を有するＰＣマザーボード２０００を示している。なお、トランスミッタ２００４は、図１に示されたトランスミッタ１０２の具体的な一例である。本実施形態では、トランスミッタ２００４は、マザーボード２０００に搭載されたコネクタ２００６に（コネクタ１７００の配線とともに）結合されている。マザーボード２０００は、ツイストペアケーブル２０１０によってディスプレイデバイス２００８に接続されている。
【００６６】
当該分野で知られているように、ＰＣＩ  Ｅｘｐｒｅｓｓ（米国カリフォルニア州サンタクララ所在のＩｎｔｅｌ社によって開発された）は、高帯域でローピンカウントで尚かつシリアルな相互接続技術である。ＰＣＩ  Ｅｘｐｒｅｓｓは、また、既存のＰＣＩインフラとの間でソフトウェア互換性を維持することもできる。この構成では、ＰＣＩ  Ｅｘｐｒｅｓｓポートを拡大し、クロスプラットフォームインターフェースの要件に準拠させている。クロスプラットフォームインターフェースは、図のようなマザーボード搭載のコネクタを使用してディスプレイデバイスを直接駆動することができる。
【００６７】
マザーボードにコネクタを搭載することが実用的でない場合は、図２１に示されるように、ＰＣＩ  ＥｘｐｒｅｓｓマザーボートのＳＤＶＯスロットを通して信号を送出し、パッシブカードコネクタを使用して同信号をＰＣに戻すことができる。また、図２３に示されるように、アドイングラフィックスカードも、現行世代のアドイングラフィックスカードと同様に、オンボードグラフィックスエンジンに取って代わることができる。
【００６８】
使用用途がノートブックである場合は、マザーボードのグラフィックスエンジン上に設けられたトランスミッタは、内部配線を通して、パネルを直接駆動する内蔵型のレシーバ／ＴＣＯＮを駆動する。最もコスト効率の良い実装形態としては、図２４に示されるように、レシーバ／ＴＣＯＮをパネルに搭載することによって相互接続配線の数を８本または１０本に減らすことができる。
【００６９】
上記の実施例は、全て、内蔵型のトランスミッタを想定している。しかしながら、独立型のトランスミッタを構成し、それを、ＡＧＰスロットまたはＳＤＶＯスロットを通してＰＣＩおよびＰＣＩ  Ｅｘｐｒｅｓｓ環境に統合させることも可能である。独立型のトランスミッタは、グラフィックスハードウェアやグラフィックスソフトウェアに変更を加えることなく出力ストリームを有効にすることができる。
【００７０】
フローチャートの実施形態
以下では、本発明を有効にする具体的なプロセスを示した各フローチャートを参照にしながら本発明の手順を説明する。具体的に言うと、図２５〜２９は、それ単独でまたは他のプロセスとの組み合わせによって本発明の態様を表すことができる相互に関連し合った複数のプロセスを示したフローチャートである。
【００７１】
図２５は、本発明の一実施形態にしたがって、インターフェース１００の動作モードを決定するためのプロセス２５００を詳細に示したフローチャートである。このプロセスは、ビデオソースおよびディスプレイデバイスがともにデジタルである場合にのみ動作モードをデジタルモードに設定する。それ以外の場合は動作モードをアナログモードに設定する。なお、ここで言う「アナログモード」は、従来のＶＧＡモードはもちろん、位置合わせ信号を組み込まれた差動アナログビデオおよび双方向の側波帯を有する拡張アナログモードをも含むことができる。この拡張アナログモードは後述される。
【００７２】
ステップ２５０２では、ビデオソースに対して問い合わせを行い、そのビデオソースがアナログデータまたはデジタルデータをサポートするか否かを決定する。ビデオソースがアナログデータのみをサポートする場合は、結合デバイス１００の動作モードはアナログに設定され（ステップ２５０８）、プロセスは終了する（ステップ２５１２）。
【００７３】
ビデオソースがデジタルデータを出力できる場合は、プロセスはステップ２５０６に進む。次に、ディスレプレイデバイスに対して問い合わせを行い、そのディスプレイデバイスがデジタルデータを受信するように構成されているか否かを決定する。ディスプレイデバイスがアナログデータのみをサポートする場合は、結合デバイスの動作モードはアナログに設定され（ステップ２５０８）、プロセスは終了する（ステップ２５１２）。それ以外の場合は、結合デバイスの動作モードはデジタルに設定される（ステップ２５１０）。例えば、プロセッサによって結合デバイス内のスイッチを制御し、結合デバイスのモードをデジタルに設定して良い。結合デバイスは、一般に、ビデオソースおよびビデオシンクがともに対応するデジタルモードで動作している場合にのみ、完全にデジタルモードで動作するように構成される。
【００７４】
図２６は、本発明のいくつかの態様にしたがって、ビデオ画像の品質をリアルタイムでチェックするためのプロセス２６００を詳細に示したフローチャートである。この例では、プロセス２６００における決定は、全て、ディスプレイインターフェースに結合されたプロセッサによって下される。
【００７５】
ステップ２６００では、ビデオソースからビデオ信号が受信される。次に、受信されたビデオソースに関連したビデオソースから信号品質テストパターンが提供される（ステップ２６０２）。ステップ２６０４では、信号品質テストパターンに基づいてビットエラーレートが決定される。次に、そのビットエラーレートが閾値を上回るか否かの決定か下される（ステップ２６０６）。ビットエラーレートが閾値以下であると決定された場合は、他にビデオフレームがあるか否かの決定が下される（ステップ２６１４）。他にもビデオフレームがあると決定された場合は、プロセスはステップ２６００に戻る。それ以外の場合は、プロセスは終了する。
【００７６】
しかしながら、ステップ２６０６において、ビットレートが閾値を上回ると決定された場合は、ビットレートが最小ビットレートを上回るか否かの決定が下される（ステップ２６０８）。ビットレートが最小ビットレートを上回る場合は、ビットレートは引き下げられ（ステップ２６１０）、プロセスはステップ２６０６に戻る。ビットレートが最小ビットレート以下である場合は、アナログモードに切り替えられ（ステップ２６１２）、プロセスは終了する。
【００７７】
図２７は、本発明の一実施形態にしたがって、リンクのセットアップのプロセス２７００を示したフローチャートである。プロセス２７００は、ホットプラグ検出イベント通知が受信される２７０２から開始する。２７０４では、関連の補助チャネルによるメインリンクの照会が行われ、最大データレート、レシーバに含まれる時間ベースのリカバリユニットの数、および使用可能なバッファのサイズが決定される。次に、２７０６では、トレーニングセッションによる最大リンクデータレートの検証が行われ、２７０８では、データストリームソースにホットプラグイベントが通知される。２７１０では、補助チャネルを通してディスプレイ能力（例えばＥＤＩＤ等を使用する）の決定がなされる。そして、２７１２においてディスプレイが照会に応答する結果、２７１４ではメインリンクトレーニングセッションの協調動作が行われる。
【００７８】
次に、２７１６では、補助チャネルを通してストリームソースからレシーバにストリーム属性が送信される。さらに２７１８では、ストリームソースは、要求された数のデータストリームをメインリンクが２７２０でサポートできるか否かに関する通知を受ける。２７２０では、関連のパケットヘッダを加えることによって各種のデータパケットが形成され、２７２２では、複数のソースストリームの多重化がスケジュールされる。２７２４では、リンク状況がＯＫか否かに関する決定が下される。リンク状況がＯＫでない場合は、２７２６において、ソースがリンクの失敗に関する通知を受け、そうでない場合は、２７２８において、各種のパケットヘッダに基づいてリンクデータストリームが固有のストリームに再構成される。次に、２７３０では、再構成された固有なデータストリームがディスプレイデバイスに引き渡される。
【００７９】
図２８は、本発明の一実施形態に従って、トレーニングセッションを実施するためのプロセス２８００を詳細に示したフローチャートである。なお、トレーニングセッションのプロセス２８００は、図２５において説明された動作２５０６の一実装形態である。トレーニングセッションは、トレーニングパターンがメインリンクを通じて所定のリンクレートでレシーバに送信される２８０２から開始する。図１１には、本発明の一実施形態にしたがって、代表的なリンクトレーニングパターンが示されている。図のように、トレーニングセッション中は、フェーズ１が最短のランレングスを、フェーズ２が最長のランレングスを表している。レシーバは、これら２種類のフェーズを使用してイコライザを最適化する。フェーズ３では、リンク品質が合理的である限り、ビットロックおよび文字ロックの両方が実現されている。レシーバは、２８０４において関連のトレーニング状況をチェックし、そのチェック結果に基づいて２８０６において３つのフェーズおよびトランスミッタのそれぞれに対して合格／不合格ビットを設定する。レシーバは、各フェーズで合格が検出された場合にのみ次のフェーズに進む。そして、合格が検出されない場合には、２８１０でリンクレートを引き下げ、トレーニングセッションを再度行う。２８１２では、合格が検出されたリンクレートでのメインリンクの準備を整える。
【００８０】
図２９は、本発明を実装するために利用されるコンピュータシステム２９００を示している。コンピュータシステム２９００は、本発明を実装できるグラフィックスシステムのほんの一例にすぎない。コンピュータシステム２９００は、中央処理装置（ＣＰＵ）１５１０と、ランダムアクセスメモリ（ＲＡＭ）２９２０と、読み出し専用メモリ（ＲＯＭ）２９２５と、１つまたはそれ以上の周辺機器２９３０と、グラフィックスコントローラ２９６０と、一次ストレージデバイス２９４０および２９５０と、デジタルディスプレイデバイス２９７０とを含む。当業者に周知のように、ＲＯＭが、データおよび命令を単方向にＣＰＵ２９１０に転送するように機能するのに対し、ＲＡＭは、データおよび命令を双方向に転送するために使用されるのが普通である。ＣＰＵ２９１０は、一般に、任意の数のプロセッサを含んで良い。一次ストレージデバイス２９４０および２９５０は、共に、任意の適切なコンピュータ読み取り可能媒体を含んで良い。マスメモリデバイスであるのが普通である二次ストレージ媒体８８０も、やはり、ＣＰＵ２９１０に双方向的に結合され、追加のデータ記憶容量を提供している。マスメモリデバイス８８０は、コンピュータコードやデータ等を含むプログラムを格納するために使用可能であるコンピュータ読み取り可能媒体である。通例、マスメモリデバイス８８０は、一般に一次ストレージデバイス２９４０、２９５０よりも低速のハードディスクやテープなどのストレージ媒体である。マスメモリデバイス８８０は、磁気テープもしくは紙テープリーダ、または他の何らかの周知のデバイスの形態をとって良い。なお、マスメモリデバイス８８０の中に保持されている情報は、適切であると思われる場合には、標準的な方式によってＲＡＭ２９２０の一部に仮想メモリとして組み込まれて良い。
【００８１】
ＣＰＵ２９１０は、また、１つまたはそれ以上の入出力デバイス８９０に結合して良い。入出力デバイス８９０は、ビデオモニタ、トラックボール、マウス、キーボード、マイクロホン、タッチセンシティブディスプレイ、変換器型カードリーダ、磁気テープもしくは紙テープリーダ、タブレット、スタイラス、音声もしくは手書き文字レコグナイザ、および他のコンピュータに代表される他の周知の入力デバイス等のデバイスを含むがこれらに限定されない。最後に、ＣＰＵ２９１０は、図中で２９９５として示されたネットワーク接続を使用して、コンピュータに、またはインターネットネットワークもしくはイントラネットネットワーク等の通信ネットワーク等に結合して良い。このようなネットワーク接続を設ければ、ＣＰＵ２９１０は、上述された方法の各ステップを実施するにあたって、ネットワークから情報を受信したりネットワークに情報を出力したりできると考えられる。このような情報は、ＣＰＵ２９１０を使用して実行される一連の命令として表されることが多く、例えば搬送波に埋め込まれたコンピュータデータ信号等の形態で、ネットワークから受信したりネットワークに出力したりして良い。上述した装置および素材は、コンピュータのハードウェアおよびソフトウェアの分野の当業者には馴染みのものである。
【００８２】
グラフィックスコントローラ２９６０は、アナログ画像データおよびそれに対応する基準信号を生成し、これらをともにデジタルディスプレイデバイス２９７０に提供する。アナログ画像データは、例えば、ＣＰＵ２９１０または外部のエンコード（図示せず）から受信されたピクセルデータに基づいて生成することができる。一実施形態では、アナログ画像データはＲＧＢフォーマットで提供され、基準信号は当該分野では周知のＶＳＹＣＮ信号およびＨＳＹＮＣ信号を含む。しかしながら、本発明は、他のフォーマットのアナログ画像、データ、および／または基準信号を使用して実装することも可能である。例えば、アナログ画像データは、対応する時間基準信号をともなうビデオ信号データを含むこともできる。
【００８３】
以上では、いくつかの実施形態のみを取り上げて説明したが、本発明は、発明の趣旨または範囲を逸脱しない限りにおいて、他の様々な形態で実施することができる。上記の実施例は、例示的であって限定的ではないので、本発明は、上述された詳細に限定されることはなく、添付された特許請求の範囲の範囲内であらゆる等価な形態を変更形態として含むことができる。
【００８４】
好ましい実施形態を用いて本発明の説明を行ったが、本発明の範囲内の代替、置換、および等価物が存在する。本発明のプロセスおよび装置の両方を実施する多くの別の方法が存在することに注意されたい。したがって、本発明は、本発明の趣旨および範囲に含まれる代替、置換、および等価物のすべてを包含するものとして解釈される。
【図面の簡単な説明】
【００８５】
【図１】本発明の一実施形態にしたがって、クロスプラットフォームのディスプレイインターフェース１００を示した概略図である。
【図２Ａ】本発明の一実施形態にしたがって、ビデオソースとビデオディスプレイユニットとを接続するために使用されるビデオインターフェースシステムを示した図である。
【図２Ｂ】本発明の一実施形態にしたがって、ビデオソースとビデオディスプレイユニットとを接続するために使用されるビデオインターフェースシステムを示した図である。
【図２Ｃ】本発明の一実施形態にしたがって、ビデオソースとビデオディスプレイユニットとを接続するために使用されるビデオインターフェースシステムを示した図である。
【図３】本発明の一実施形態にしたがって、典型的なメインリンクレートを示している。
【図４Ａ】本発明の一実施形態にしたがって、メインリンクデータパケットを示した図である。
【図４Ｂ】本発明の一実施形態にしたがって、メインリンクパケットヘッダを示した図である。
【図５Ａ】本発明の一実施形態にしたがって、サブパケットを内包するとともに複数のパケットの多重化を可能にするように構成されたシステムを示した図である。
【図５Ｂ】図５Ａに示されたシステムの別の一実装形態を示した図である。
【図６】図５に示されたストリームの一例として、多重化されたメインリンクを詳細に示した図である。
【図７】本発明の一実施形態にしたがって、データストリームの別の一例を示した図である。
【図８】本発明の一実施形態にしたがって、多重化されたデータストリームのさらに別の一例を示した図である。
【図９Ａ】本発明の一実施形態にしたがって、代表的なサブパケットを示した図である。
【図９Ｂ】本発明の一実施形態にしたがって、代表的なメインリンクデータパケットを示した図である。
【図１０】選択的にリフレッシュされるグラフィックス画像の一例を示した図である。
【図１１】本発明の一実施形態にしたがって、典型的なリンクトレーニングパターンを示している。
【図１２】本発明の一実施形態にしたがって、システムの論理的な階層化を示した図である。
【図１３】本発明の一実施形態にしたがって、８Ｂ／１０Ｂを使用した典型的な特殊文字マッピングを示している。
【図１４】本発明の一実施形態にしたがって、典型的なマンチェスタIIエンコーディング方式を示した図である。
【図１５】本発明の一実施形態にしたがって、代表的な補助チャネルのエレクトリカルサブ層を示した図である。
【図１６】本発明の一実施形態にしたがって、代表的なメインリンクのエレクトリカルサブ層を示した図である。
【図１７】本発明の一実施形態にしたがって、代表的なコネクタを示した図である。
【図１８】本発明の一実施形態にしたがったソースの状態図である。
【図１９】本発明の一実施形態にしたがったディスプレイの状態図である。
【図２０】本発明のコンピュータベースの一実装形態を示した図である。
【図２１】本発明のコンピュータベースの一実装形態を示した図である。
【図２２】本発明のコンピュータベースの一実装形態を示した図である。
【図２３】本発明のコンピュータベースの一実装形態を示した図である。
【図２４】本発明のコンピュータベースの一実装形態を示した図である。
【図２５】本発明の一実施形態にしたがって、インターフェースの動作モードを決定するためのプロセスを詳細に示したフローチャートである。
【図２６】本発明のいくつかの態様にしたがって、ビデオ画像の品質をリアルタイムでチェックするためのプロセスを詳細に示したフローチャートである。
【図２７Ａ】本発明の一実施形態にしたがって、リンクをセットアップするプロセスを示したフローチャートである。
【図２７Ｂ】本発明の一実施形態にしたがって、リンクをセットアップするプロセスを示したフローチャートである。
【図２８】本発明の一実施形態に従って、トレーニングセッションを実施するためのプロセスを詳細に示したフローチャートである。
【図２９】本発明を実装するために利用されるコンピュータシステムを示した図である。
【図１】
2004336745.tif 000003
【図２Ａ】
2004336745.tif 000004
【図２Ｂ】
2004336745.tif 000005
【図２Ｃ】
2004336745.tif 000006
【図３】
2004336745.tif 000007
【図４Ａ】
2004336745.tif 000008
【図４Ｂ】
2004336745.tif 000009
【図５Ａ】
2004336745.tif 000010
【図５Ｂ】
2004336745.tif 000011
【図６】
2004336745.tif 000012
【図７】
2004336745.tif 000013
【図８】
2004336745.tif 000014
【図９Ａ】
2004336745.tif 000015
【図９Ｂ】
2004336745.tif 000016
【図１０】
2004336745.tif 000017
【図１１】
2004336745.tif 000018
【図１２】
2004336745.tif 000019
【図１３】
2004336745.tif 000020
【図１４】
2004336745.tif 000021
【図１５】
2004336745.tif 000022
【図１６】
2004336745.tif 000023
【図１７】
2004336745.tif 000024
【図１８】
2004336745.tif 000025
【図１９】
2004336745.tif 000026
【図２０】
2004336745.tif 000027
【図２１】
2004336745.tif 000028
【図２２】
2004336745.tif 000029
【図２３】
2004336745.tif 000030
【図２４】
2004336745.tif 000031
【図２５】
2004336745.tif 000032
【図２６】
2004336745.tif 000033
【図２７Ａ】
2004336745.tif 000034
【図２７Ｂ】
2004336745.tif 000035
【図２８】
2004336745.tif 000036
【図２９】
2004336745.tif 000037
【外国語明細書】
1. TITLE OF THE INVENTION
METHOD OF REAL TIME OPTIMIZING MULTIMEDIA PACKET TRANSMISSION RATE
2. BACKGROUND OF THE INVENTION
Field of the Invention
[0001] The invention relates to display devices.  More specifically, the invention relates to digital display interface suitable for coupling video sources to video display devices. 
Description of the Related Art
[0002] Currently, video display technology is divided into analog type display devices (such as cathode ray tubes) and digital type display devices (such as liquid crystal display, or LCD, plasma screens, etc.), each of which must be driven by specific input signals in order to successfully display an image.  For example, a typical analog system includes an analog source (such as a personal computer, DVD player, etc.) coupled directly to a display device (sometimes referred to as a video sink) by way of a communication link.  The communication link typically takes the form of a cable (such as an analog VGA cable in the case of a PC, otherwise referred to as VGA DB15 cable) well known to those of skill in the art.  For example, the VGA DB15 cable includes 15 pins, each of which is arranged to carry a specific signal.  
[0003] One of the advantages of the VGA DB15 cable is the ubiquitous nature of the cable, due to the large and ever-expanding installed base.  As long as the analog systems described above predominate, there is little incentive to migrate away from any other cable form than the VGA DB15.  
[0004] However, in recent years, the exploding growth of digital systems has made the use of digital capable cables such as Digital Visual Interface (DVI) cable more desirable.  It is well known that DVI is a digital interface standard created by the Digital Display Working Group (DDWG).  Data are transmitted using the transition minimized differential signaling (TMDS) protocol, providing a digital signal from the PC's graphics subsystem to the display.  DVI handles bandwidths in excess of 160 MHz and thus supports UXGA and HDTV with a single set of links.
[0005] Today's display interconnect landscape includes the VGA (analog) and DVI (digital) for desktop display interconnect applications as well as LVDS (digital) for internal connectivity applications within laptops and other all-in-one devices.  Graphics IC vendors, display controller IC vendors, monitor manufacturers and PC OEMs as well as desktop PC consumers, to one degree or another, must factor interface choice into their design, product definition, manufacturing, marketing and purchase decisions.  For example, if a consumer purchases a PC with an analog VGA interface then the consumer must either purchase an analog monitor or a digital monitor in which the analog video signal provided by the VGA interface has been digitized by way of an inline analog to digital converter (ADC) or an ADC built into the particular monitor. 
[0006] Therefore, it would be desirable to optimize the transmission of data packets in a packet based digital display in real time based upon particular operating conditions.
3. SUMMARY OF THE INVENTION
[0007] According to some embodiments of the invention, a method of optimizing transmission of a number of multimedia data packets between a multimedia source device and a multimedia display device is disclosed.  In the described embodiment, the multimedia source device and the display device are coupled by way of a unidirectional main link arranged to carry the multimedia data packets from the multimedia source device and the multimedia display device and a bi-directional auxiliary channel arranged to transfer information between the multimedia source device and the multimedia display device.  The method can be carried out by following at least the following operations.  Providing a test pattern by the multimedia source device on the main link, determining a transmission quality factor of the main link based upon the test pattern, and optimizing the transmission of the multimedia data packets based upon the transmission quality factor.
[0008] In another embodiment, an apparatus for optimizing transmission of a number of multimedia data packets between a multimedia source device and a multimedia display device coupled by way of a unidirectional main link arranged to carry the multimedia data packets from the multimedia source device and the multimedia display device and a bi-directional auxiliary channel arranged to transfer information between the multimedia source device and the multimedia display device is disclosed.  The apparatus includes at least means for providing a test pattern by the multimedia source device on the main link, means for determining a transmission quality factor of the main link based upon the test pattern, and means for optimizing the transmission of the multimedia data packets based upon the transmission quality factor.
[0009] In yet another embodiment of the invention, computer program product for optimizing transmission of a number of multimedia data packets between a multimedia source device and a multimedia display device coupled by way of a unidirectional main link arranged to carry the multimedia data packets from the multimedia source device and the multimedia display device and a bi-directional auxiliary channel arranged to transfer information between the multimedia source device and the multimedia display device is disclosed.  The computer program product includes computer code for providing a test pattern by the multimedia source device on the main link, computer code for determining a transmission quality factor of the main link based upon the test pattern, computer code for optimizing the transmission of the multimedia data packets based upon the transmission quality factor, and computer readable medium for storing the computer code.
4. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] Reference will now be made in detail to a particular embodiment of the invention an example of which is illustrated in the accompanying drawings.  While the invention will be described in conjunction with the particular embodiment, it will be understood that it is not intended to limit the invention to the described embodiment.  To the contrary, it is intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims.
[0011] A method and apparatus suitable for optimizing transmission of a number of multimedia data packets between a multimedia source device and a multimedia display device is disclosed.  In the described embodiment, the multimedia source device and the display device are coupled by way of a unidirectional main link arranged to carry the multimedia data packets from the multimedia source device and the multimedia display device and a bi-directional auxiliary channel arranged to transfer information between the multimedia source device and the multimedia display device.  
[0012] A method of optimizing transmission of a number of multimedia data packets between a multimedia source device and a multimedia display device is disclosed.  In the described embodiment, the multimedia source device and the display device are coupled by way of a unidirectional main link arranged to carry the multimedia data packets from the multimedia source device and the multimedia display device and a bi-directional auxiliary channel arranged to transfer information between the multimedia source device and the multimedia display device.  
[0013] As a method, the invention can be carried out by following at least the following operations.  Providing a test pattern by the multimedia source device on the main link, determining a transmission quality factor of the main link based upon the test pattern, and optimizing the transmission of the multimedia data packets based upon the transmission quality factor.
[0014] For example, Fig. 1 shows a generalized representation of a cross platform packet based digital video display interface 100 in accordance with an embodiment of the invention.  The interface 100 connects a transmitter 102 to a receiver 104 by way of a physical link 106 (also referred to as a pipe).  In the described embodiment, a number of data streams 108 - 112 are received at the transmitter 102 that, if necessary, packetizes each into a corresponding number of data packets 114.  These data packets are then formed into corresponding data streams each of which are passed by way of an associated virtual pipe 116 - 120 to the receiver 104.  It should be noted that the link rate (i.e., the data packet transfer rate) for each virtual link can be optimized for the particular data stream resulting in the physical link 106 carrying data streams each having an associated link rate (each of which could be different from each other depending upon the particular data stream).  The data streams 110 - 114 can take any number of forms such as video, graphic, audio, etc.  
[0015] Typically, when the source is a video source, the data streams 110 - 114 include various video signals that can have any number and type of well-known formats, such as composite video, serial digital, parallel digital, RGB, or consumer digital video.  The video signal can be an analog video signal provided the source 102 includes some form of an analog video source such as for example, an analog television, still camera, analog VCR, DVD player, camcorder, laser disk player, TV tuner, set top box (with satellite DSS or cable signal) and the like.  The source 102 can also include a digital image source such as for example a digital television (DTV), digital still camera, and the like.  The digital video signal can be any number and type of well known digital formats such as, SMPTE 274M-1995 (1920 x 1080 resolution, progressive or interlaced scan), SMPTE 296M-1997 (1280 x 720 resolution, progressive scan), as well as standard 480 progressive scan video.  
[0016] In the case where the source 102 provides an analog image signal, an analog-to-digital converter (A/D) converts an analog voltage or current signal into a discrete series of digitally encoded numbers (signal) forming in the process an appropriate digital image data word suitable for digital processing. Any of a wide variety of A/D converters can be used.  By way of example, other A/D converters include, for example those manufactured by: Philips, Texas Instrument, Analog Devices, Brooktree, and others.
[0017] For example, if the data stream 110 is an analog type signal, the an analog to digital converter (not shown) included in or coupled to the transmitter 102 will digitize the analog data which is then packetize by a packetizer that converts the digitized data stream 110 into a number of data packets 114 each of which will be transmitted to the receiver 104 by way of the virtual link 116.  The receiver 104 will then reconstitute the data stream 110 by appropriately recombining the data packets 114 into their original format.  It should be noted that the link rate is independent of the native stream rates.  The only requirement is that the link bandwidth of the physical link 106 be higher than the aggregate bandwidth of data stream(s) to be transmitted .  In the described embodiment, the incoming data (such as pixel data in the case of video data) is packed over the respective virtual link based upon a data mapping definition.  In this way, the physical link 106 (or any of the constituent virtual links) does not, as does conventional interconnects such as DVI, carry one pixel data per link character clock.
[0018] In this way, the interface 100 provides a scaleable medium for the transport of not only video and graphics data, but also audio and other application data as may be required.  In addition, the invention supports hot-plug event detection and automatically sets the physical link (or pipe) to its optimum transmission rate.  The invention provides for a low pin count, purely digital display interconnect for all displays suitable for multiple platforms. Such platforms include host to display, laptop/all-in-one as well as HDTV and other consumer electronics applications.  
[0019] In addition to providing video and graphics data, display timing information can be embedded in the digital stream providing essentially perfect and instant display alignment, obviating the need for features like "Auto-Adjust" and the like.  The packet based nature of the inventive interface provides scalability to support multiple, digital data streams such as multiple video/graphics streams and audio streams for multimedia applications.  In addition, a universal serial bus (USB) transport for peripheral attachment and display control can be provided without the need for additional cabling. 
[0020] Other embodiments of the inventive display interface will be discussed below.
[0021] Fig. 2 illustrates a system 200 based upon the system 100 shown in Fig.1 that is used to connect a video source 202 and a video display unit 204.  In the illustrated embodiment, the video source 202 can include either or both a digital image (or digital video source) 206 and an analog image (or analog video source) 208.  In the case of the digital image source 206, a digital data stream 210 is provided to the transmitter 102 whereas in the case of the analog video source 208, an A/D converter unit 212 coupled thereto, converts an analog data stream 213 to a corresponding digital data stream 214.  The digital data stream 214 is then processed in much the same manner as the digital data stream 210 by the transmitter 102.  The display unit 204 can be an analog type display or a digital type display or in some cases can process either analog or digital signals provided thereto.  In any case, the display unit 204 includes a display interface 216 that interfaces the receiver 104 with a display 218 and a D/A converter unit 220 in the case of an analog type display.  In the described embodiment, the video source 202 can take any number of forms (such as a personal desktop computer, digital or analog TV, set top box, etc.) whereas the video display unit 104 can take the form of a video display (such as an LCD type display, CRT type display, etc.).  
[0022] Regardless of the type of video source or video sink, however, the various data streams are digitized (if necessary) and packetized prior to transmission over the physical link 106 which includes a uni-directional main link 222 for isochronous data streams and a bi-directional auxiliary channel 224 for link setup and other data traffic (such as various link management information, Universal serial bus (USB) data, etc.) between the video source 202 and the video display 204.
[0023] The main link 222 is thereby capable of simultaneously transmitting multiple isochronous data streams (such as multiple video/graphics streams and multi-channel audio streams).  In the described embodiment, the main link 222 includes a number of different virtual channels, each capable of transferring isochronous data streams (such as uncompressed graphics/video and audio data) at multiple gigabits per second (Gbps).  From a logical viewpoint, therefore, the main link 222 appears as a single physical pipe and within this single physical pipe, multiple virtual pipes can be established.  In this way, logical data streams are not assigned to physical channels rather, each logical data stream is carried in its own logical pipe (i.e., virtual channel described above).  
[0024] In the described embodiment, the speed, or transfer rate, of the main link 222 is adjustable to compensate for link conditions.  For example, in one implementation, the speed of the main link 222 can be adjusted in a range approximated by a slowest speed of about 1.0 Gbps to about 2.5 Gbps per channel in approximately 0.4Gbps increments (see Fig. 3).  At 2.5 Gbps per channel, the main link 222 can support SXGA 60Hz with a  color depth of 18 bits per pixel over a single channel.  It should be noted that a reduction in the number of channels reduces not only the cost of interconnect, but also reduces the power consumption which is an important consideration (and desirable) for power sensitive applications such as portable devices and the like.  However, by increasing the number of channels to four, the main link 222 can support WQSXGA (3200 x 2048 image resolution) with a color depth of 24-bits per pixel at 60Hz. or QSXGA (2560 x 2048) with a color depth of 18-bits per pixel at 60Hz, without data compression.  Even at the lowest rate of 1.0 Gbps per channel, only two channels are required to support an uncompressed HDTV (i.e., 1080i or 720p) data stream.
[0025] In the described embodiment, a main link data rate is chosen whose bandwidth exceeds the aggregate bandwidth of the constituent virtual links.  Data sent to the interface arrives at the transmitter at its native rate.  A time-base recovery (TBR) unit 226 within the receiver 104 regenerates the stream's original native rate using time stamps embedded in the main link data packets, if necessary.  It should be noted, however, that for appropriately configured digital display devices 232 shown in Fig. 2B, time base recovery is unnecessary since display data is be sent to the display driver electronics at the link character clock rate, thereby greatly reducing the number of channels required with a commensurate reduction in complexity and cost for the display. For example, Fig. 2C illustrates an exemplary LCD panel 232 configured in such a way that no time base recovery since display data is essentially pipelined to the various column drivers 234 that are used in combination with row drivers 236 to drive selected display elements 238 in the array 240.
[0026] Other embodiments describe a simple enumeration method for the link rate and the pixel/audio clock rate.  It has been researched and understood that all the standard pixel/audio clock frequencies that exist today are a subset of the following master frequency:
23.76GHz = 210 x 33 x 57 x 111 Hz
This means that a pixel (or audio) clock rate can be expressed with four parameters, A, B, C, and D as:
Pixel clock rate = 2A * 3B x 5C x 11D
A = 4 bits, B = 2 bits, C = 3 bits, and D = 1 bit.
[0027] Even for a link whose link rate (which is the serial link bit rate / 10 for a link that uses 10-bit character such as 8B/10B characters) may be different from the pixel clock rate, there is a benefit in defining the link rate with these four parameters, A', B', C', and D': The benefit is the simplicity in regenerating pixel/audio clocks from a link clock.  For example, let's say the link rate is set as A' = 6, B' = 3, C' = 7, and D' = 0 and the corresponding link rate is 135MHz.  However, suppose the pixel clock rate is set as A = 8, B = 3, C = 6, and D = 0 (= 108MHz), then the pixel clock can be generated from link clock as  pixel clock rate is equal to the link rate * 22 / 5 1 .
[0028] Referring back to those systems requiring time base recovery, the time-base recovery unit 226 may be implemented as a digital clock synthesizer.  For an uncompressed video stream, the time stamp is stored in the packet header which as described in more detail below, is a 20-bit value. For a given stream, four of 20 bits are stored in each header successively (TS3-0, TS7-4, TS11-8, TS15-12, TS19-16).  Native stream frequency (Freq_native) is obtained from link character clock frequency (Freq_link_char) as:
Eq(1)  Freq_native = Freq_link_char * (TS19-0)/220
[0029] The transmitter 102 generates this time stamp by counting the number of native stream clocks in 220 cycles of the link character clock frequency period. The counter updates the value every 220 cycles of the link character clock.  Since these two clocks are asynchronous with each other, the time stamp value will change by 1 over time.  Between updates, the transmitter 102 will repeatedly send the same time stamp in the header of the given packet stream.  A sudden change of the time stamp value (by more than 1 count) may be interpreted by the receiver as an indication of an unstable condition of the stream source.
[0030] It should be noted that, no time stamp is communicated for an audio stream. In this case, the source device informs the display device of the audio sample rate and number of bits per sample. By determining the audio rate based upon Eq(2) and the link character rate, the display device regenerates the original audio stream rate.
Eq(2)  Audio rate = (audio sample rate) x (# bits per sample) x (# channels) 
[0031] A main link data packet 400 shown in Fig. 4A includes a main link packet header 402 as shown in Fig. 4B that is formed of 16 bits where bits 3-0 are the Stream ID (SID) (indicating that maximum stream count is 16), bit 4 is the Time Stamp (TS) LSB.  When bit 4 is equal to 1, this packet header has the least significant 4 bits of Time Stamp value (used only for uncompressed video stream).  Bit 5 is a Video frame sequence bit which acts as the least significant bit of the frame counter which toggles from "0" to "1" or from "1" to "0" at the video frame boundary (used only for uncompressed video stream).  Bits 7 and 6 are reserved whereas bits 8 through 10 are a 4-bit CRC (CRC) that checks errors for the previous eight bits.  Bits 15-12 are Time Stamp/Stream ID Inversion. (TSP/SIDn) which for uncompressed video are used as four bits of 20-bit Time Stamp value.
[0032] One of the advantages of the inventive interface is the ability to multiplex different data streams each of which can be different formats as well as have certain main link data packets include a number of sub packets.  For example, Fig. 5 shows a system 500 arranged to provide sub-packet enclosure and multiple-packet multiplexing in accordance with an embodiment of the invention.  It should be noted that the system 500 is a particular embodiment of the system 200 shown in Fig. 2 and should therefore not be construed as limiting either the scope or intent of the invention.  The system 500 includes a stream source multiplexer 502 included in the transmitter 102 used to combine a stream 1 supplemental data stream 504 with the data stream 210 to form a multiplexed data stream 506. The multiplexed data stream 506 is then forwarded to a link layer multiplexer 508 that combines any of a number of data streams to form a multiplexed main link stream 510 formed of a number of data packets 512 some of which may include any of a number of sub packets 514 enclosed therein.  A link layer de-multiplexer 516 splits the multiplexed data stream 510 into its constituent data streams based on the stream IDs (SIDs) and associated sub packet headers while a stream sink de-multiplexer 518 further splits off the stream 1 supplemental data stream contained in the sub-packets.  
[0033] Fig. 6 shows a high-level diagram of the multiplexed main link stream 600 as an example of the stream 510 shown in Fig. 5 when three streams are multiplexed over the main link 222. The three streams in this example are: UXGA graphics (Stream ID = 1), 1280x720p video (Stream ID = 2), and audio (Stream ID = 3).  The small packet header size of main link packet 400 minimizes the packet overhead, which results in the very high link efficiency. The reason the packet header can be so small is that the packet attributes are communicated via the auxiliary channel 224 prior to the transmission of the packets over main link 222. 
[0034] Generally speaking, the sub-packet enclosure is an effective scheme when the main packet stream is an uncompressed video since an uncompressed video data stream has data idle periods corresponding to the video-blanking period. Therefore, main link traffic formed of an uncompressed video stream will include series of Null special character packets during this period.  By capitalizing on the ability to multiplex various data streams, certain implementations of the present invention use various methods to compensate for differences between the main link rate and the pixel data rate when the source stream is a video data stream. For example, as illustrated in Fig. 7, the pixel data rate is .5 Gb/sec, such that a bit of pixel data is transmitted every 2 ns.  In this example, the link rate has been set to 1.25 Gb/sec, such that a bit of pixel data is transmitted each .8 ns.  Here, transmitter 102 intersperses special characters between pixel data as illustrated in Fig. 8.  Two special characters are disposed between a first bit of pixel data P1 and a second bit of pixel data P2.  The special characters allow receiver 104 to distinguish each bit of pixel data.  Interspersing the special characters between bits of pixel data also creates a steady stream of data that allows the link to maintain synchronization.  In this example, the special characters are Null characters.  No line buffer is needed for such methods, only a small FIFO, because the link rate is sufficiently fast.  However, relatively more logic is required on the receiving side to reconstruct the video signal.  The receiver needs to recognize when the special characters begin and end.  
[0035] An alternative to the interspersing method is to alternate consecutive bits of pixel data with special characters, such as null values.  For example, P1 through P4 could be fed into a line buffer included in the transmitter 104, then one or more null values could be fed into the buffer until more pixel data are available.  Such implementations require a relatively larger buffer space than the interspersing methods described above.  In many such implementations, the time required to fill the line buffer will exceed the time required to transmit the data after the line buffer is full, due to the relatively high link speeds.  
[0036] As discussed with reference to Fig. 5A, one of the advantages of the inventive interface is the ability to not only multiplex various data streams, but also the enclosing of any of a number of sub packets within a particular main link data packet.  Fig. 9A shows a representative sub-packet 900 in accordance with an embodiment of the invention. The sub-packet 900 includes a sub-packet header 902 that in the described embodiment is 2 bytes and is accompanied by SPS (Sub-Packet Start) special character. If the main link data packet in which the sub-packet 900 is enclosed contains a packet payload in addition to the sub-packet 900, the end of the sub-packet 900 must be marked by SPE (Sub-Packet End) special character. Otherwise, the end of the main packet (as indicated by ensuing COM character in the example shown in Fig. 9B) marks the end of both the sub-packet 902 and the main packet into which it is enclosed.  However, a sub-packet does not need to end with SPE when its enclosing main packet has no payload.  Fig 9B shows an exemplary sub-packet format within a main link packet in accordance with an embodiment of the invention.  It should be noted that the definition of the header field and sub-packet payload is dependent on the specific application profile that uses the sub-packet 902.
[0037] A particularly useful example of sub-packet enclosure usage is selective refresh of an uncompressed graphics image 1000 illustrated in Fig. 10.  The attributes of the entire frame 1002 (Horizontal/Vertical Total, Image Width/Height, etc.) will be communicated via the auxiliary channel 224 since those attributes stay constant as long as the stream remains valid. In selective refresh operation, only a portion 1004 of the image 1000 is updated per video frame. The four X-Y coordinates of the updated rectangle(s) (i.e., the portion 1004) must be transmitted every frame since the values of the rectangle coordinates changes from frame to frame.  Another example is the transmission of color look-up table (CLUT) data for required for 256-color graphic data where the 8-bit pixel data is an entry to the 256-entry CLUT and the content of the CLUT must be dynamically updated.
[0038] The single bi-directional auxiliary channel 224 provides a conduit to for various support functions useful for link set up and supporting main link operations as well as to carry auxiliary application data such as USB traffic.  For example, with the auxiliary channel 224, a display device can inform the source device of events such as sync loss, dropped packets and the results of training sessions (described below). For example, if a particular training session fails, the transmitter 102 adjusts the main link rate based upon pre-selected or determined results of the failed training session.  In this way, the closed loop created by combining an adjustable, high speed main link with a relatively slow and very reliable auxiliary channel allows for robust operation over a variety of link conditions.  It should be noted that in some cases (an example of which is shown in Fig. 5B), a logical bi-directional auxiliary channel 520 can be established using a portion 522 of the bandwidth of the main link 222 to transfer data from the source device 202 to the sink device 204 and a uni-directional back channel 524 from the sink device 204 to the source device 202.  In some applications, use of  this logical bi-directional auxiliary channel may be more desirable than using a half-duplex bi-directional channel described in Fig. 5A.
[0039] Prior to starting the transmission of actual packet data streams the transmitter 102 establishes a stable link through a link training session that is analogous in concept to the link setup of the modem. During link training, the main link transmitter 102 sends a pre-defined training pattern so that the receiver 104 can determine whether it can achieve a solid bit/character lock. In the described embodiment, training related handshaking between the transmitter 102 and the receiver 104 is carried on the auxiliary channel.  An example of a link training pattern is shown in Fig. 11 in accordance with an embodiment of the invention.  As illustrated, during the training session, a phase 1 represents the shortest run length while phase 2 is the longest that are used by the receiver to optimize an equalizer.  In phase 3, both bit lock and character lock are achieved as long as the link quality is reasonable. Typically, the training period is about 10 ms, in which time, approximately 107 bits of data are sent. If the receiver 104 does not achieve solid lock, it informs the transmitter 102 via the auxiliary channel 224 and the transmitter 102 reduces the link rate and repeats the training session.
[0040] In addition to providing a training session conduit, the auxiliary channel 224 can be also used to carry main link packet stream descriptions thereby greatly reducing the overhead of packet transmissions on the main link 222.  Furthermore, the auxiliary channel 224 can be configured to carry Extended Display Identification Data (EDID) information replacing the Display Data Channel (DDC) found on all monitors (EDID is a VESA standard data format that contains basic information about a monitor and its capabilities, including vendor information, maximum image size, color characteristics, factory pre-set timings, frequency range limits, and character strings for the monitor name and serial number.  The information is stored in the display and is used to communicate with the system through the DDC which sites between the monitor and the PC graphics adapter. The system uses this information for configuration purposes, so the monitor and system can work together).  In what is referred to as an extended protocol mode, the auxiliary channel can carry both asynchronous and isochronous packets as required to support additional data types such as keyboard, mouse and microphone.
[0041] Fig. 12 illustrates a logical layering 1200 of the system 200 in accordance with an embodiment of the invention.  It should be noted that while the exact implementation may vary depending upon application, generally, a source (such as the video source 202) is formed of a source physical layer 1202 that includes transmitter hardware, a source link layer 1204 that includes multiplexing hardware and state machine (or firmware), and a data stream source 1206 such as Audio/Visual/Graphics hardware and associated software. Similarly, a display device includes a physical layer 1208 (including various receiver hardware), a sink link layer 1210 that includes de-multiplexing hardware and state machine (or firmware) and a stream sink 1212 that includes display/timing controller hardware and optional firmware. A source application profile layer 1214 defines the format with which the source communicates with the link layer 1204 and similarly, a sink application profile layer 1216 defines the format with which the sink 1212 communicates with the sink link layer 1210.
[0042] The various layers will now be discussed in more detail.
SOURCE DEVICE PHYSICAL LAYER 
[0043]In the described embodiment, the source device physical layer 1202 includes an electrical sub layer 1202-1 and a logical sub layer 1202-2.  The electrical sub layer 1202-1 includes all circuitry for interface initialization/operation such as hot plug/unplug detection circuit, drivers/receivers/termination resistors, parallel-to-serial/serial-to-parallel conversions, and spread-spectrum-capable PLL's .  The logical sub layer 1202-2 includes circuitry for, packetizing/de-packetizing, data scrambling/de-scrambling, pattern generation for link training, time-base recovery circuits, and data encoding/decoding such as 8B/10B (as specified in ANSI X3.230-1994, clause 11) that provides 256 link data characters and twelve control characters (an example of which is shown as Fig. 13) for the main link 222 and Manchester II for the auxiliary channel 224 (see Fig. 14).  
[0044] It should be noted that the 8B/10B encoding algorithm is described, for example, in U.S. Patent Number 4,486,739, which is hereby incorporated by reference.  As known by those of skill in the art, the 8B/10B code is a block code that encodes 8-bit data blocks into 10-bit code words for serial transmission.  In addition, the 8B/10B transmission code converts a byte wide data stream of random 1s and 0s into a DC balanced stream of 1s and 0s with a maximum run length of 5.  Such codes provide sufficient signal transitions to enable reliable clock recovery by a receiver, such as transceiver 110.  Moreover, a DC balanced data stream proves to be advantageous for fiber optic and electromagnetic wire connections.  The average number of 1s and 0s in the serial stream is be maintained at equal or nearly equal levels.  The 8B/10B transmission code constrains the disparity between the number of 1s and 0s to be -2, 0, or 2 across 6 and 4 bit block boundaries.  The coding scheme also implements additional codes for signaling, called command codes.
[0045] It should be noted that in order to avoid the repetitive bit patterns exhibited by uncompressed display data (and hence, to reduce EMI), data transmitted over main link 222 is first scrambled before 8B/10B encoding. All data except training packets and special characters will be scrambled.  The scrambling function is implemented with Linear Feedback Shift Registers (LFSRs). When data encryption is enabled, the initial value of an LFSR seed is dependent on an encryption key set. If it is data scrambling without encryption, the initial value will be fixed.
[0046] Since data stream attributes are transmitted over the auxiliary channel 224, the main link packet headers serve as stream identification numbers thereby greatly reducing overhead and maximizing link bandwidth.  It should also be noted that neither the main link 222 nor the auxiliary link 224 has separate clock signal lines.  In this way, the receivers on main link 222 and auxiliary link 224 sample the data and extract the clock from the incoming data stream.  Fast phase locking  for any phase lock loop (PLLs) circuit in the receiver electrical sub layer is important for since the auxiliary channel 224 is half-duplex bi-directional and the direction of the traffic changes frequently.  Accordingly, the PLL on the auxiliary channel receiver phase locks in as few as 16 data periods thanks to the frequent and uniform signal transitions of Manchester II (MII) code
[0047] At link set up time, the data rate of main link 222 is negotiated using the handshake over auxiliary channel 224.  During this process, known sets of training packets are sent over the main link 222 at the highest link speed.  Success or failure is communicated back to the transmitter 102 via the auxiliary channel 224.  If the training fails, main link speed is reduced and training is repeated until successful.  In this way, the source physical layer 1102 is made more resistant to cable problems and therefore more suitable for external host to monitor applications.  However, unlike conventional display interfaces, the main channel link data rate is decoupled from the pixel clock rate.  A link data rate is set so that link bandwidth exceeds the aggregate bandwidth of the transmitted streams.  
SOURCE DEVICE LINK LAYER
[0048] The source link layer 1204 handles the link initialization and management.  For example, upon receiving a hot plug detect event generated upon monitor power-up or connection of the monitor cable from the source physical layer 1202, the source device link layer 1204 evaluates the capabilities of the receiver via interchange over the auxiliary channel 224 to determine a maximum main link data rate as determined by a training session, the number of time-base recovery units on the receiver,  available buffer size on both ends, availability of USB extensions and then notifies the stream source 1206 of an associated hot plug event.  In addition, upon request from the stream source 1206, the source link layer 1204 reads the display capability (EDID or equivalent).  During a normal operation, the source link layer 1204 sends the stream attributes to the receiver 104 via the auxiliary channel 224, notifies the stream source 1204 whether the main link 222 has enough resource for handling the requested data streams, notifies the stream source 1204 of link failure events such as sync loss and buffer overflow, and sends MCCS commands submitted by the stream source 1204 to the receiver via the auxiliary channel 224.  All communications between the source link layer 1204 and the stream source/sink use the formats defined in the application profile layer 1214.
APPLICATION PROFILE LAYER (SOURCE AND SINK)
[0049] In general, the Application Profile Layer defines formats with which a stream source (or sink) will interface with the associated link layer.  The formats defined by the application profile layer are divided into the following categories, Application independent formats (Link Message for Link Status inquiry) and Application dependent formats (main link data mapping, time-base recovery equation for the receiver, and sink capability/stream attribute messages sub-packet formats, if applicable). The Application Profile Layer supports the following color formats 24-bit RGB, 16-bit RG2565, 18-bit RGB, 30-bit RGB, 256-color RGB (CLUT based), 16-bit, CbCr422, 20-bit YCbCr422, and 24-bit YCbCr444.
[0050] For example, the display device application profile layer (APL) 1214 is essentially an application-programming interface (API) describing the format for Stream Source/Sink communication over the main link 222 that includes a presentation format for data sent to or received from the interface 100.  Since some aspects of the APL 1214 (such as the power management command format) are baseline monitor functions, they are common to all uses of the interface 100.  Whereas other non-baseline monitor functions, such as such as data mapping format and stream attribute format, are unique to an application or a type of isochronous stream that is to be transmitted.  Regardless of the application, the stream source 1204 queries the source link layer 1214 to ascertain whether the main link 222 is capable of handling the pending data stream(s) prior to the start any packet stream transmission on the main link 222.
[0051] When it is determined that the main link 222 is capable of supporting the pending packet stream(s), the stream source 1206 sends stream attributes to the source link layer 1214 that is then transmitted to the receiver over the auxiliary channel 224.  These attributes are the information used by the receiver to identify the packets of a particular stream, to recover the original data from the stream and to format it back to the stream's native data rate.  The attributes of the data stream are application dependent.  
[0052] In those cases where the desired bandwidth is not available on the main link 222, the stream source 1214 may take corrective action by, for example, reducing the image refresh rate or color depth.
DISPLAY DEVICE PHYSICAL LAYER
[0053] The display device physical layer 1216 isolates the display device link layer 1210 and the display device APL 1216 from the signaling technology used for link data transmission/reception. The main link 222 and the auxiliary channel 224 have their own physical layers, each consisting of a logical sub layer and an electrical sub layer that includes the connector specification.  For example, the half-duplex, bi-directional auxiliary channel 224 has both a transmitter and a receiver at each end of the link as shown in Fig 15.   An auxiliary link transmitter 1502 is provided with link characters by a logical sub layer 1208-1 that are then serialized serialized and transmitted to a corresponding auxiliary link receiver 1504. The receiver 1504, in turn, receives serialized link character from the auxiliary link 224 and de-serializes the data at a link character clock rate.  It should be noted that the major functions of the source logical sub layers include signal encoding, packetizing, data scrambling (for EMI reduction), and training pattern generation for the transmitter port.  While for the receiver port, the major functions of the receiver logical sub layer includes signal decoding, de-packetizing, data de-scrambling, and time-base recovery.
AUXILIARY CHANNEL
[0054] The major functions of auxiliary channel logical sub layer include data encoding and decoding, framing/de-framing of data and there are two options in auxiliary channel protocol: standalone protocol (limited to link setup/management functions in a point-to-point topology) is a lightweight protocol that can be managed by the Link Layer state-machine or firmware and extended protocol that supports other data types such as USB traffic and topologies such as daisy-chained sink devices.  It should be noted that the data encoding and decoding scheme is identical regardless of the protocol whereas framing of data differs between the two.
[0055] Still referring to Fig. 15, the auxiliary channel electrical sub layer contains the transmitter 1502 and the receiver 1504. The transmitter 1502 is provided with link characters by the logical sub layer, which it serializes and transmits out. The receiver 1504 receives serialized link character from the link layer and subsequently de-serializes it at link character clock rate.  The positive and negative signals of auxiliary channel 224 are terminated to ground via 50-ohm termination resistors at each end of the link as shown.  In the described implementation, the drive current is programmable depending on the link condition and ranges from approximately 8mA to approximately 24mA resulting in a range of Vdifferential_pp of approximately 400mV to approximately 1.2V.  In electrical idle modes, neither the positive nor the negative signal is driven. When starting transmission from the electrical idle state, the SYNC pattern must be transmitted and the link reestablished.  In the described embodiment, the SYNC pattern consists of toggling a auxiliary channel differential pair signals at clock rate 28 times followed by four 1's in Manchester II code.  The auxiliary channel master in the source device detects hot-plug and hot-unplug events by periodically driving or measuring the positive and negative signals of auxiliary channel 224.
MAIN LINK
[0056] In the described embodiment, the main link 222 supports discrete, variable link rates that are integer multiples of the local crystal frequency (see Fig 3 for a representative set of link rates consonant with a local crystal frequency of 24-MHz).  As shown in Fig. 16, the main link 222 (being an unidirectional channel) has only a transmitter 1602 at the source device and only a receiver 1604 at the display device.  
[0057] As shown, the cable 1604 takes the form includes a set of twisted pair wires, one for each of the Red (R), Green(G), and Blue(B) video signals provides in a typical RGB color based video system (such as PAL based TV systems).  As known by those of skill in the art, twisted pair cable is a type of cable that consists of two independently insulated wires twisted around one another.  One wire carries the signal while the other wire is grounded and absorbs signal interference.  It should be noted that in some other systems, the signals could also be component based signals (Pb, Pr, Y) used for NTSC video TV systems.  Within the cable, each twisted pair is individually shielded.  Two pins for +12V power and ground are provided. The characteristics impedance of each differential pair is 100 ohms +/- 20%.  The entire cable is also shielded. This outer shield and individual shields are shorted to the connector shells on both ends. The connector shells are shorted to ground in a source device.  A connector 1700 as shown in Fig. 17 has 13 pins in one row having a pinout that is identical both for the connector on the source device end and that on the display device end. The source device supplies the power.
[0058] The main link 222 is terminated on both ends and since the main link 222 is AC coupled, the termination voltage can be anywhere between 0V (ground) to +3.6V.  In the described implementation, the drive current is programmable depending on the link condition and ranges from approximately 8mA to approximately 24mA resulting in a range of Vdifferential_pp of approximately 400mV to approximately 1.2V.  The minimum voltage swing is selected for each connection using a training pattern.  An electrical idle state is provided for power management modes.  In electrical idle, neither the positive nor the negative signals are driven. When starting a transmission from electrical idle state, the transmitter must conduct a training session in order re-establish the link with the receiver.
STATE DIAGRAMS
[0059] The invention will now be described in terms of state diagrams shown in Figs. 18 and 19 described below.  Accordingly, Fig.18 shows the source state diagram described below.  At an off state 1802, the system is off such that the source is disabled.  If the source is enabled, then the system transitions to a standby state 1804 suitable for power saving and receiver detection.  In order to detect whether or not the receiver is present (i.e., hot plug/play), the auxiliary channel is periodically pulsed (such as for 1us every 10ms) and a measure of a voltage drop across the termination resistors during the driving is measured.  If it is determined that a receiver is present based upon the measured voltage drop, then the system transitions to a detected receiver state 1806 indicating that a receiver has been detected, i.e., a hot plug event has been detected.  If, however, there is no receiver detected, then the receiver detection is continued until such time, if ever, a receiver is detected or a timeout has elapsed.  It should be noted that in some cases the source device may choose to go to "OFF" state from which no further display detection is attempted.  
[0060] If at the state 1806 a display hot unplug event is detected, then the system transitions back to the standby state 1804.  Otherwise the source drives the auxiliary channel with a positive and negative signal to wake up receiver and the receiver's subsequent response, if any, is checked.  If there is no response received, then the receiver has not woken up and source remains in the state 1806.  If, however, a signal is received from the display, then the display has woken up and the source is ready read the receiver link capabilities (such as max link rate, buffer size, and number of time-base recovery units) and the system transitions to a main link initialization state 1808 and is ready to commence a training start notification phase.  
[0061] At this point, a training session is started by sending a training pattern over the main link at a set link rate and checks an associated training status.  The receiver sets a pass/fail bit for each of three phases and the transmitter will proceed to the next phase upon detection of pass only such that when a pass is detected, the main link is ready at that link rate.  At this point, the interface transitions to a normal operation state 1510, otherwise, the link rate is reduced and the training session is repeated.  During the normal operation state 1810, the source continues to periodically monitor a link status index, which if fails, a hot unplug event is detected and the system transitions to the standby state 1804 and waits for a hot plug detection event.  If, however, a sync loss is detected, then the system transitions to state 1808 for a main link re-initiation event.
[0062] Fig 19 shows the display state diagram 1900 described below.  At a state 1902, no voltage is detected, the display goes to an OFF state.  At a standby mode state 1904, both main link receiver and auxiliary channel slave are in electrical idle, a voltage drop across the termination resistors of auxiliary channel slave port are monitored for a predetermined voltage.  If the voltage is detected, then the auxiliary channel slave port is turned on indicating a hot plug event and the system moves to a display state 1906, otherwise, the display remains in the standby state 1904.  At the state 1906 (main link initialization phase), if a display is detected, then the auxiliary slave port is fully turned on, and the transmitter responds to a receiver link capability read command and the display state transitions to 1908, otherwise, if there is no activity on the auxiliary channel for more than a predetermined period of time then the auxiliary channel slave port is put into the to standby state 1904.
[0063] During a training start notification phase, the display responds to the training initiation by the transmitter by adjusting the equalizer using training patterns,  updating the result for each phase.  If the training fails, then wait for another training session and if the training passes, then go to normal operation state 1910.  If there is no activity on the auxiliary channel or on the main link (for training) for more than a predetermined (10ms, for example), the auxiliary channel slave port is set to the standby state 1904.
[0064] Figs. 20 - 24 show particular implementations of the cross platform display interface.  
[0065] Fig. 20 shows a PC motherboard 2000 having an on-board graphics engine 2002 that incorporates a transmitter 2004 in accordance with the invention.  It should be noted that the transmitter 2004 is a particular example of the transmitter 102 shown in Fig. 1.  In the described embodiment, the transmitter 2004 is coupled to an connector 2006 (along the lines of the connector 1700) mounted on the motherboard 2000 which in turn is connected to a display device 2008 by way of a twisted pair cable 2010.
[0066] As known in the art, PCI Express (developed by Intel Corporation of Santa Clara, CA) is a high-bandwidth, low pin count, serial, interconnect technology that also maintains software compatibility with existing PCI infrastructure.  In this configuration, the PCI Express port is augmented to become compliant with the requirements of the cross platform interface which can directly drive a display device either using a motherboard mounted connector as shown.
[0067] In situations where it is not practical to mount the connector on the motherboard, the signals can be routed through the SDVO slot of the PCI Express motherboard and brought to the back of the PC using a passive card connector as shown in Fig. 21. As is the case with the current generation of add-in graphics cards, a add-in graphics card can supplant the onboard graphics engine as shown in Fig. 23.
[0068] In the case of notebook applications, the transmitter on the motherboard graphics engine would drive through internal cabling, an integrated receiver/TCON which would drive the panel directly.  For the most cost effective implementation, the receiver/TCON would be mounted on the panel thereby reducing the number of interconnect wires to 8 or 10 as shown in Fig. 24 
[0069] All of the above examples assume integrated transmitters.  However, is it quite feasible to implement as a standalone transmitter integrating into PCI and PCI Express environments through the AGP or SDVO slots, respectively.  A standalone transmitter will enable output streams without any change in graphics hardware or software.
FLOWCHART EMBODIMENTS
[0070] The methodology of the invention will now be described in terms of a number of flowcharts each describing a particular process for enabling the invention.  Specifically, FIGS 25 - 29 describe a number of interrelated processes that when used singly or in any combination described aspects of the invention.
[0071] Fig. 25 shows a flowchart detailing a process 2500 for determining an operational mode of the interface 100 in accordance with an embodiment of the invention.  In this process, the operational mode will only be set to a digital mode if the video source and the display device are both digital.  Otherwise, the operational mode will be set to analog mode.  It should be noted that "analog mode" in this context can include both conventional VGA mode as well as enhanced analog mode having differential analog video with embedded alignment signal and bi-directional sideband.  This enhanced analog mode will be described below.
[0072] In step 2502, a video source is interrogated to determine whether the video source supports analog or digital data.  If the video source supports only analog data, the operational mode of coupling device 100 will be set to analog (step 2508), then the process will end (step 2512).  
[0073] If the video source can output digital data, the process continues to step 2506.  The display device is then interrogated to determine whether the display device is configured to receive digital data.  If the display device supports only analog data, the operational mode of coupling device will be set to analog (step 2508), then the process will end (step 2512).  Otherwise, the operational mode of the coupling device is set to digital (step 2510).  For example, a processor may control switches within the coupling device to set the mode to digital.  In general, the coupling device is configured to operate in a fully digital mode only when both the video source and the video sink are operating in a corresponding digital mode.
[0074] Fig. 26 shows a flowchart detailing a process 2600 for providing a real time video image quality check in accordance with some aspects of the invention.  In this example, all determinations of process 2600 are made by a processor coupled to the display interface.
[0075] In step 2600, a video signal is received from a video source.  Next, a signal quality test pattern is provided by the video source associated with the received video signal (step 2602).  In step 2604, a determination of a bit error rate is made, based upon the quality test pattern.  Then, a determination is made of whether the bit error rate is greater than a threshold value (step 2606).  If the bit error rate is determined to not be greater than the threshold value, then a determination is made (step 2614) of whether or not there are more video frames.  If it is determined that there are more video frames, then the process returns to step 2600.  Otherwise, the process ends.  
[0076] However, if the bit error rate is determined to be greater than the threshold value in step 2606, a determination is made (step 2608) as to whether the bit rate is greater than a minimum bit rate.  If the bit rate is greater than a minimum bit rate, then the bit rate is lowered (step 2610) and the process returns to step 2606.  If the bit rate is not greater than the minimum bit rate, then the mode is changed to analog mode (step 2612) and the process ends.
[0077] Fig. 27 shows a flowchart for a link set up process 2700 in accordance with an embodiment of the invention. The process 2700 begins at 2702 by the receiving of a hot plug detection event notification.  At 2704 a main link inquiry is made by way of an associated auxiliary channel to determine a maximum data rate, a number of time base recovery units included in a receiver, and available buffer size.  Next, at 2706, the maximum link data rate is verified by way of a training session and at 2708, a data stream source is notified of the hot plug event.  At 2710, the capabilities of the display (using EDID, for example) are determined by way of the auxiliary channel and the display responds to the inquires at 2712 which, in turn, results a collaboration of the main link training session at 2714.
[0078] Next, at 2716, the stream source sends stream attributes to the receiver by way of the auxiliary channel and at 2718, the stream sources are further notified whether the main link is capable of supporting the requested number of data streams.  At 2720, the various data packets are formed by adding associated packet headers and at 2722, the multiplexing of a number of source streams is scheduled.  At 2724 a determination is made whether or not the link status is OK.  When the link status is not OK, then the source(s) are notified of a link failure event at 2726, otherwise, the link data streams are reconstructed into the native streams based upon the various packet headers at 2728.  At 2730, the reconstructed native data streams are then passed to the display device.
[0079] Fig. 28 shows a flowchart detailing a process 2800 for performing a training session in accordance with an embodiment of the invention.  It should be noted that the training session process 2800 is one implementation of the operation 2506 described in Fig. 25.  A training session is started at 2802 by sending a training pattern over the main link at a set link rate to the receiver.  A typical link training pattern is shown in Fig. 11 in accordance with an embodiment of the invention.  As illustrated, during the training session, a phase 1 represents the shortest run length while phase 2 is the longest.  The receiver is to use these two phases to optimize the equalizer.  In phase 3, both bit lock and character lock are achieved as long as the link quality is reasonable.  At 2804, the receiver checks an associated training status and based upon the training status check, the receiver sets a pass/fail bit for each of three phases and the transmitter at 2806.  At each phase, the receiver will proceed to the next phase upon detection of pass only and at 2810 and if the receiver does not detect a pass then the receiver reduces the link rate and repeats the training session.  The main link is ready at that link rate at which a pass is detected at 2812.
[0080] Fig. 29 illustrates a computer system 2900 employed to implement the invention.  Computer system 2900 is only an example of a graphics system in which the present invention can be implemented. Computer system 2900 includes central processing unit (CPU) 1510, random access memory (RAM) 2920, read only memory (ROM) 2925, one or more peripherals 2930, graphics controller 2960, primary storage devices 2940 and 2950, and digital display unit 2970.   As is well known in the art, ROM acts to transfer data and instructions uni-directionally to the CPUs 2910, while RAM is used typically to transfer data and instructions in a bi-directional manner.  CPUs 2910 may generally include any number of processors.  Both primary storage devices 2940 and 2950 may include any suitable computer-readable media.  A secondary storage medium 880, which is typically a mass memory device, is also coupled bi-directionally to CPUs 2910 and provides additional data storage capacity.  The mass memory device 880 is a computer-readable medium that may be used to store programs including computer code, data, and the like.  Typically, mass memory device 880 is a storage medium such as a hard disk or a tape which generally slower than primary storage devices 2940, 2950.  Mass memory storage device 880 may take the form of a magnetic or paper tape reader or some other well-known device.  It will be appreciated that the information retained within the mass memory device 880, may, in appropriate cases, be incorporated in standard fashion as part of RAM 2920 as virtual memory.  
[0081] CPUs 2910 are also coupled to one or more input/output devices 890 that may include, but are not limited to, devices such as video monitors, track balls, mice, keyboards, microphones, touch-sensitive displays, transducer card readers, magnetic or paper tape readers, tablets, styluses, voice or handwriting recognizers, or other well-known input devices such as, of course, other computers.  Finally, CPUs 2910 optionally may be coupled to a computer or telecommunications network, e.g., an Internet network or an intranet network, using a network connection as shown generally at 2995.  With such a network connection, it is contemplated that the CPUs 2910 might receive information from the network, or might output information to the network in the course of performing the above-described method steps.  Such information, which is often represented as a sequence of instructions to be executed using CPUs 2910, may be received from and outputted to the network, for example, in the form of a computer data signal embodied in a carrier wave.  The above-described devices and materials will be familiar to those of skill in the computer hardware and software arts.
[0082] Graphics controller 2960 generates analog image data and a corresponding reference signal, and provides both to digital display unit 2970. The analog image data can be generated, for example, based on pixel data received from CPU 2910 or from an external encode (not shown). In one embodiment, the analog image data is provided in RGB format and the reference signal includes the VSYNC and HSYNC signals well known in the art.  However, it should be understood that the present invention can be implemented with analog image, data and/or reference signals in other formats. For example, analog image data can include video signal data also with a corresponding time reference signal.
[0083] Although only a few embodiments of the present invention have been described, it should be understood that the present invention may be embodied in many other specific forms without departing from the spirit or the scope of the present invention.  The present examples are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope of the appended claims along with their full scope of equivalents.
[0084] While this invention has been described in terms of a preferred embodiment, there are alterations, permutations, and equivalents that fall within the scope of this invention.  It should also be noted that there are many alternative ways of implementing both the process and apparatus of the present invention.  It is therefore intended that the invention be interpreted as including all such alterations, permutations, and equivalents as fall within the true spirit and scope of the present invention.
5. BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 shows a generalized representation of a cross platform display interface 100 in accordance with an embodiment of the invention.
Fig. 2A illustrates a video interface system that is used to connect a video source and a video display unit in accordance with a number of embodiments of the invention.
Fig. 2B illustrates a video interface system that is used to connect a video source and a video display unit in accordance with a number of embodiments of the invention.
Fig. 2C illustrates a video interface system that is used to connect a video source and a video display unit in accordance with a number of embodiments of the invention.
Fig. 3 shows exemplary main link rates in accordance with an embodiment of the invention.  
Fig. 4A shows a main link data packet in accordance with an embodiment of the invention.
Fig. 4B shows a main link packet header in accordance with an embodiment of the invention.
Fig. 5A shows a system arranged to provide sub-packet enclosure and multiple-packet multiplexing in accordance with an embodiment of the invention.
Fig. 5B shows another implementation of the system shown in Fig. 5A.
Fig. 6 shows a high-level diagram of the multiplexed main link stream as an example of the stream shown in Fig. 5.
Fig. 7 show another example of a data stream in accordance with the invention.
Fig. 8 shows yet another example of a multiplexed data stream in accordance with an embodiment of the invention.
Fig. 9A shows a representative sub-packet in accordance with an embodiment of the invention.
Fig. 9B shows a representative main link data packet in accordance with an embodiment of the invention.
Fig. 10 shows an example of a selectively refreshed graphics image.
Fig. 11 shows an exemplary link training pattern in accordance with an embodiment of the invention.
Fig. 12 illustrates a logical layering of the system in accordance with an embodiment of the invention.
Fig. 13 shows an exemplary special character mapping using 8B/10B in accordance with an embodiment of the invention.
Fig. 14 shows an exemplary Manchester II encoding scheme in accordance with an embodiment of the invention.
Fig. 15 shows a representative auxiliary channel electrical sub layer in accordance with an embodiment of the invention.
Fig. 16 shows a representative main link electrical sub layer in accordance with an embodiment of the invention.
Fig. 17 shows a representative connector in accordance with an embodiment of the invention.
Fig. 18 shows a source state diagram in accordance with an embodiment of the invention.
Fig. 19 shows a display state diagram in accordance with an embodiment of the invention.
Fig. 20 illustrates various computer based implementations of the invention.
Fig. 21 illustrates various computer based implementations of the invention.
Fig. 22 illustrates various computer based implementations of the invention.
Fig. 23 illustrates various computer based implementations of the invention.
Fig. 24 illustrates various computer based implementations of the invention.
Fig. 25 shows a flowchart detailing a process for determining an operational mode of the interface in accordance with an embodiment of the invention.
Fig. 26 shows a flowchart detailing a process for providing a real time video image quality check in accordance with some aspects of the invention.
Fig. 27A shows a flowchart for a link set up process in accordance with an embodiment of the invention.
Fig. 27B shows a flowchart for a link set up process in accordance with an embodiment of the invention.
Fig. 28 shows a flowchart detailing a process for performing a training session in accordance with an embodiment of the invention.
Fig. 29 illustrates a computer system employed to implement the invention.
1.  A method of real time optimizing transmission of a number of multimedia data packets between a multimedia source device and a multimedia display device coupled by way of a unidirectional main link arranged to carry the multimedia data packets from the multimedia source device and the multimedia display device and a bi-directional auxiliary channel arranged to transfer information between the multimedia source device and the multimedia display device, comprising:
providing a test pattern by the multimedia source device on the main link;
determining a transmission quality factor of the main link based upon the test pattern; and
optimizing the transmission of the multimedia data packets based upon the transmission quality factor.
2.  A method as recited in claim 1, wherein the determining a transmission quality factor comprises:
determining a bit error rate based upon the test pattern by the multimedia display device;
sending the bit error rate to the source device by way of the auxiliary channel.
3.  A method as recited in claim 2, wherein the optimizing comprises:
determining if the bit error rate is greater than a predetermined threshold value bit error rate.
4.  A method as recited in claim 3 wherein the optimizing further comprises:
when the bit error rate is determined to be greater than the predetermined threshold bit error rate, then
determining if the transmission rate of the multimedia data packets on the main link is greater than a minimum transmission rate.
5.  A method as recited in claim 4, wherein when the transmission rate is greater than the minimum transmission rate then,
reducing the main link transmission rate; and
determining the bit error rate based upon the reduced main link transmission rate.
6.  A method as recited in claim 1, wherein the bi-directional auxiliary channel is formed of a uni-directional back channel configured to carry information from the display device to the source device and a uni-directional forward channel included as part of the main channel for carrying information from the source device to the display device in concert with the back channel.
7.  A method as recited in claim 1, wherein the number of multimedia data packets are divided into a number or associated multimedia data packets streams.
8.  A method as recited in claim 7, wherein the main link unit further comprises:
a number of virtual links each being associated with a particular one of the multi media data packet streams wherein each of said virtual links has an associated virtual link bandwidth and a virtual link rate.
9.  A method as recited in claim 5, wherein a main link bandwidth is at least equal to an aggregate of the virtual link bandwidths.
10.  A method as recited in claim 8 wherein each of the virtual link rates associated with each of the virtual links are optimized.
11.  A method as recited in claim 1, further comprising:
detecting a hot plug event that automatically determines when an active display device is connected to the main link and the auxiliary link; and
commencing the optimization immediately subsequent to the detection of the hot plug event.
12.  An apparatus for continuous optimizing transmission of a number of multimedia data packets between a multimedia source device and a multimedia display device coupled by way of a unidirectional main link arranged to carry the multimedia data packets from the multimedia source device and the multimedia display device and a bi-directional auxiliary channel arranged to transfer information between the multimedia source device and the multimedia display device, comprising:
means for providing a test pattern by the multimedia source device on the main link;
means for determining a transmission quality factor of the main link based upon the test pattern; and
means for optimizing the transmission of the multimedia data packets based upon the transmission quality factor.
13.  An apparatus as recited in claim 12, wherein the determining a transmission quality factor comprises:
means for determining a bit error rate based upon the test pattern by the multimedia display device;
means for sending the bit error rate to the source device by way of the auxiliary channel.
14.  An apparatus as recited in claim 13, wherein the optimizing comprises:
means for determining if the bit error rate is greater than a predetermined threshold value bit error rate.
15.  An apparatus as recited in claim 14 wherein the optimizing further comprises:
means for determining if the transmission rate of the multimedia data packets on the main link is greater than a minimum transmission rate when the bit error rate is determined to be greater than the predetermined threshold bit error rate.
16.  An apparatus as recited in claim 15, wherein when the transmission rate is greater than the minimum transmission rate then,
means for reducing the main link transmission rate; and
means for determining the bit error rate based upon the reduced main link transmission rate.
17.  An apparatus as recited in claim12, wherein the bi-directional auxiliary channel is formed of a uni-directional back channel configured to carry information from the display device to the source device and a uni-directional forward channel included as part of the main channel for carrying information from the source device to the display device in concert with the back channel.
18.  An apparatus as recited in claim 12, wherein the number of multimedia data packets are divided into a number or associated multimedia data packets streams.
19.  An apparatus as recited in claim 18, wherein the main link unit further comprises:
a number of virtual links each being associated with a particular one of the multi media data packet streams wherein each of said virtual links has an associated virtual link bandwidth and a virtual link rate.
20.  An apparatus as recited in claim 16, wherein a main link bandwidth is at least equal to an aggregate of the virtual link bandwidths.
21.  An apparatus as recited in claim 19 wherein each of the virtual link rates associated with each of the virtual links are optimized.
22.  An apparatus as recited in claim 12, further comprising:
means for detecting a hot plug event that automatically determines when an active display device is connected to the main link and the auxiliary link; and
means for commencing the optimization immediately subsequent to the detection of the hot plug event.
23.  Computer program product for real time optimizing transmission of a number of multimedia data packets between a multimedia source device and a multimedia display device coupled by way of a unidirectional main link arranged to carry the multimedia data packets from the multimedia source device and the multimedia display device and a bi-directional auxiliary channel arranged to transfer information between the multimedia source device and the multimedia display device, comprising:
computer code for providing a test pattern by the multimedia source device on the main link;
computer code for determining a transmission quality factor of the main link based upon the test pattern; 
computer code for optimizing the transmission of the multimedia data packets based upon the transmission quality factor; and
computer readable medium for storing the computer code.
24.  A method as recited in claim 23, wherein the determining a transmission quality factor comprises:
computer code for determining a bit error rate based upon the test pattern by the multimedia display device;
computer code for sending the bit error rate to the source device by way of the auxiliary channel.
25.  Computer program product as recited in claim 24, wherein the optimizing comprises:
computer code for determining if the bit error rate is greater than a predetermined threshold value bit error rate.
26.  Computer program product as recited in claim 25 wherein the optimizing further comprises:
computer code for determining if the transmission rate of the multimedia data packets on the main link is greater than a minimum transmission rate when the bit error rate is determined to be greater than the predetermined threshold bit error rate.
27.  Computer program product as recited in claim 26, wherein when the transmission rate is greater than the minimum transmission rate then,
computer code for reducing the main link transmission rate; and
computer code for determining the bit error rate based upon the reduced main link transmission rate.
28.  Computer program product as recited in claim 23, wherein the bi-directional auxiliary channel is formed of a uni-directional back channel configured to carry information from the display device to the source device and a uni-directional forward channel included as part of the main channel for carrying information from the source device to the display device in concert with the back channel.
29.  Computer program product as recited in claim 23, wherein the number of multimedia data packets are divided into a number or associated multimedia data packets streams.
30.  Computer program product as recited in claim 29, wherein the main link unit further comprises:
a number of virtual links each being associated with a particular one of the multi media data packet streams wherein each of said virtual links has an associated virtual link bandwidth and a virtual link rate.
31.  Computer program product as recited in claim 27, wherein a main link bandwidth is at least equal to an aggregate of the virtual link bandwidths.
32.  Computer program product as recited in claim 30 wherein each of the virtual link rates associated with each of the virtual links are optimized.
33.  Computer program product as recited in claim 23, further comprising:
detecting a hot plug event that automatically determines when an active display device is connected to the main link and the auxiliary link; and
commencing the optimization immediately subsequent to the detection of the hot plug event.
1. ABSTRACT
A method and apparatus of optimizing transmission (both real time and continuous) of a number of multimedia data packets between a multimedia source device and a multimedia display device is disclosed.  In the described embodiment, the multimedia source device and the display device are coupled by way of a unidirectional main link arranged to carry the multimedia data packets from the multimedia source device and the multimedia display device and a bi-directional auxiliary channel arranged to transfer information between the multimedia source device and the multimedia display device.  The method can be carried out by following at least the following operations.  Providing a test pattern by the multimedia source device on the main link, determining a transmission quality factor of the main link based upon the test pattern, and optimizing the transmission of the multimedia data packets based upon the transmission quality factor.
2. REPRESENTATIVE DRAWING
Fig. 1
2004336745.tif 000038
2004336745.tif 000039
2004336745.tif 000040
2004336745.tif 000041
2004336745.tif 000042
2004336745.tif 000043
2004336745.tif 000044
2004336745.tif 000045
2004336745.tif 000046
2004336745.tif 000047
2004336745.tif 000048
2004336745.tif 000049
2004336745.tif 000050
2004336745.tif 000051
2004336745.tif 000052
2004336745.tif 000053
2004336745.tif 000054
2004336745.tif 000055
2004336745.tif 000056
2004336745.tif 000057
2004336745.tif 000058
2004336745.tif 000059
2004336745.tif 000060
2004336745.tif 000061
2004336745.tif 000062
2004336745.tif 000063
2004336745.tif 000064
2004336745.tif 000065
2004336745.tif 000066
2004336745.tif 000067
2004336745.tif 000068
2004336745.tif 000069
2004336745.tif 000070
2004336745.tif 000071
2004336745.tif 000072