(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
本発明の実施形態は、シンクデバイスにおいてソースクロック速度の効率的な回復を可能にすることができる。本発明はここでは特定のアプリケーションのための例示的な実施形態と共に説明されるが、本発明はそれらに限定されないことが理解されるべきである。ここに提供される教示を利用可能な当業者であれば、その範囲内及び本発明が有意に有用であろう追加的な分野における追加的な修正、応用、及び実施形態を認識するであろう。
【0017】
本発明の実施形態は、任意のコンピュータシステム、計算デバイス、エンタテーメントシステム、メディアシステム、ゲームシステム、又は1つ以上の伝送リンクがソースデバイスとシンクデバイスを結合している任意のシステムにおいて用いられ得る。本発明は、システムが等時性データストリームを備えている場合に特に有用である。
【0018】
等時性データストリームは、送信されたデータが生成されたときのクロック周波数を受信機(即ちシンクデバイス)が決定可能であることを必要とする。非圧縮のオーディオデータストリーム及びビデオデータストリームは等時性データストリームの例である。例えば、DVDプレイヤからの非圧縮のオーディオ及びビデオストリームを受信しているフラットパネルテレビジョンディスプレイは、受信したデータストリームをディスプレイにおいて適切に表現するために、DVDプレイヤがデータをストリームしたときの速度を必要とするであろう。
【0019】
ディスプレイポート(DisplayPort)、高精細度マルチメディアインタフェース(High Definition Multimedia Interface)(HDMI)、デジタルビジュアルインタフェース(Digital Visual Interface)(DVI)等のような業界標準が、ソースデバイスを1つ以上のシンクデバイスに接続するためのインタフェースを規定している。例えばディスプレイポートは、ソースデータに適用されるクロック周波数をシンクデバイスが回復することを可能にするための方法を規定している。ディスプレイポート1.1においては、ソースデータ速度及びリンク速度に関連するMパラメータ及びNパラメータをソースデバイスが計算し、そして計算されたMパラメータ及びNパラメータはシンクデバイスへ伝送される。シンクデバイスは、ソースデバイスによって送られるMパラメータ及びNパラメータを取り込み(retrieves)、また、入ってくるリンク速度を決定することによって、シンクデバイスは、ソースデバイスで用いられているソースデータ速度を決定することができる。しかし、ディスプレイポート1.1において規定される方法は、ソースが直接的にシンクデバイスに結合されている場合に適切であろうから、データストリームがシンクデバイスに到着する前に多重リンクを行き来する場合には機能しなくなる。例えばソースデータストリームが多重リンクを行き来する場合、ソースでのリンク速度は、シンクでのリンク速度とは異なるであろう。本発明は、シンクデバイスがソースデバイスに直接的に又は間接的に結合されているかにかかわらず、シンクデバイスがソースデータ速度を決定することを可能にする。本発明は、一対の埋め込みパラメータ(embedded parameters)を提供することによって、ソース速度の回復を加速し且つ単純化する。実施形態によると、ロバストに検出可能なデータチャネル(robustly detectable data channel)が十分に調整された速度で提供され、参照速度をソースからシンクへ伝送する。加えて、データチャネルに埋め込まれたデータの速度のデータチャネルに対する安定で且つ正確な測定が伝送される。
【0020】
本発明は、概して、受信したデータストリームに埋め込まれたデータを構文解析する(parse)必要性をなくす。埋め込みデータを構文解析することは、種々の機能障害を引き起こす可能性がある。例えば、ビデオデータはデータ伝送の無いブランクインターバルを有しているので、シンクは、アクティブなインターバルを調べることのみによってどのようにして速度を再現するのかを決定する必要がある。例えば、垂直ブランク領域(vertical blanking region)におけるビデオデータ速度変化を追跡することは可能ではないであろう。また、ビデオストリームに埋め込まれたオーディオデータは、概してバースト的(bursty)であり(例えばその伝送がアクティブなビデオデータによって周期的にブロックされることに起因して)、また比較的低い速度でシンクに到着するので、速度追跡を困難にし、しかも比較的長いロック時間(lock times)の原因になっている。このことは、シンクがオーディオデータ速度にロックすることを試みることを理由として、長いターンオン遅延及び/又は歪んだ再生を引き起こす可能性がある。また、シンクの速度回復論理がオーディオデータのバーストを追跡してしまうと、信号歪を潜在的に引き起こす可能性もある。
【0021】
従来の試みはまた、入力インタフェースリンク速度及び出力インタフェースリンク速度に従って中間デバイスにMパラメータ及びNパラメータを更新させることと、入ってくるリンク速度と出て行くリンク速度の間での何らかの倍率(some scaling factor)を中間デバイスに計算させることとを含む。しかし、中間デバイスにそのような機能をさせることは、当該デバイスの複雑さ及びコストを増大する。別の試みは、ストリームシンクデバイスに、オーディオデータ及び/又はビデオデータを先入れ先出し(first-in-first-out)(FIFO)バッファ等のバッファ内へバッファリングさせることを含む。ストリームシンクデバイスは次いで、バッファレベルをモニターし、そしてバッファレベルを用いて、回復されたクロック速度を増大させ且つ/又は減少させる。バッファレベルが高くなるとクロック速度は増大し、その結果、バッファドレイン速度は増大する。バッファレベルが低くなるとクロック速度は減少し、その結果、バッファレベルが高くなる。この試みは、複数のモニターの間でのオーディオ位相不整合、オーディオクロックの増加及び/又は減少に起因するオーディオ信号歪、オーディオ/ビデオクロックに対する時間のかかる(例えば秒単位の)信号ロック時間、並びに比較的にコストのかかるバッファ要件といった問題を引き起こす。
【0022】
図1は本発明の実施形態に従うシステムである。システム100は、ソースデバイス101、シンクデバイス102、主リンク110、及び補助リンク112を含む。ソースデバイス101は、例えば、DVDデコーダ、CDプレイヤ、デジタルカメラ、又はMP3プレイヤのようなオーディオ及び/又はビデオストリーミングデバイスであってよい。ソースデバイス101は、コンピュータ又は等時性データを生成する他の計算デバイスであってもよい。ソースデバイス101は、ソースデータのストリームを生成し及び/又は受信し、並びにソースデータをシンクデバイスへ直接的に又は1つ以上の中間デバイス(分岐デバイス)を介してのいずれかで送信する機能性を包含する。ソースデバイス101は、必要に応じてソースデータを送信の前に処理する機能性を包含していてもよい。
図3は本発明の実施形態に従いソースデバイスの更なる詳細を示している。
【0023】
シンクデバイス102は、例えばテレビジョンディスプレイ、コンピュータディスプレイ、又はオーディオスピーカシステムであってよい。シンクデバイス102はオーディオ受信機又はビデオ受信機のような中間デバイスであってもよく、中間デバイスは、ディスプレイ又はスピーカシステムのような表現デバイス(rendering device)へオーディオストリーム及び/又はビデオストリームが送られる前にそのようなストリームに対して種々の処理機能を実行することができる。ここで、シンクデバイス102は、ソースデータストリームを表現すること及び/又はソースデータストリームの更なる処理のような理由によりソースデータストリーム及び関連するソースデータ速度を必要とするデバイスを代表する。シンクデバイス102は、ソースデータストリームをソースデバイス101から受信すると共にソースデータのクロック速度(即ちソースデータ速度)を回復する機能性を包含する。
図4は本発明の実施形態に従いシンクデバイスの更なる詳細を示している。
【0024】
主リンク110はソースデバイス101とシンクデバイス102を結合する。主リンク110は伝送リンクであり、それを介してデータ及び制御情報がソースデバイス101とシンクデバイス102の間で流れることができる。主リンク110は、ソースデバイス101とシンクデバイス102の間での有線接続又は無線接続のような1つ以上の物理的伝送媒体を含んでいてよい。ソースデバイス101内の送信機及びシンクデバイス102内の受信機は、主リンク110を含む多重物理リンクがデータ伝送にとってトランスペアレント(transparent)であるように、主リンク110を介した伝送を連携させる(coordinate)ことができる。例えば、伝送されているデータはシンボルレベルで幾つかの物理リンクに分配されてよく、例えば、各シンボルから等しい数のビットは、利用可能な物理リンクの各々を介して伝送され得る。
【0025】
データは望ましくはパケットベースのフォーマットで主リンク110を介して伝送される。パケットは、幾らかの量のデータをカプセル化し、またソースデバイス101及びシンクデバイス102の両方に知られているフォーマットを有する。例えば、パケットはヘッダ部とデータ部を含んでいてよい。ヘッダ部は、データ部におけるデータの種類、ソースデバイスの識別、シンクデバイスの識別、等のような制御情報を含んでいる。
【0026】
本発明の幾つかの実施形態は、ソースデバイス101とシンクデバイス102の間に補助リンク112を含み得る。補助リンク112は、例えば、ソースデバイス101とシンクデバイス102の間での制御情報の双方向転送のために用いられ得る。1つの実施形態では、補助リンク112は、シンクデバイス102によってそのデータ受信能力、例えば最大受信速度をソースデバイス101へ通信するために用いられてよく、その結果、ソースデバイス101は、規定された速度を超えないようにその送信機を設定することができる。幾つかの実施形態では、補助的なデータ及び制御情報は、別個の補助リンク112の代わりに主リンク110を介して伝送されてもよい。
【0027】
仮想チャネル120は、主リンク110を介してデータストリームを搬送する論理チャネルである。仮想チャネル120は、主リンク110に論理的に重ねられて(overlaid)おり、そして主リンク110の1つ以上の別個の物理リンクを利用することができる。仮想チャネル120のような1つ以上の仮想チャネル(しばしば「論理チャネル」とも称される)が主リンク110を通して起動されてよい。仮想チャネルに属しているデータは、当該仮想チャネル内でデータを搬送している各パケットのヘッダ部に含まれる1つ以上の識別子に基いて識別され得る。例えば、ヘッダ部は、仮想チャネルを一意的に識別するチャネル識別子を含んでいてよい。
【0028】
本発明の実施形態においては、仮想チャネル120は、ソースデバイス101からシンクデバイス102へ等時性データストリームを搬送するために用いることができる。例えば、ある仮想チャネルはDVDプレイヤからのビデオデータストリームを搬送するために用いることができ、また別の仮想チャネルは関連するオーディオストリームを搬送するために用いることができる。代替的には、同じ仮想チャネルがオーディオ及びビデオの両方を搬送することができる。仮想チャネル120のような仮想チャネルは、等時性データストリームを含む多重同時発生データストリームに対して主リンク110の全帯域が利用されることを可能にする。
【0029】
本発明の実施形態においては、ソースデバイス101、シンクデバイス102、主リンク110、補助リンク112、及び仮想チャネル120は、ディスプレイポートのような既知の標準、又はその変形の1つに従って動作する。ディスプレイポートは、例えば、主リンク110がソースデバイス101からシンクデバイス102への単方向性であること、及びリンク110が1つの、2つの、又は4つの物理リンクを備えていてよいことを規定している。ディスプレイポート標準に従う補助リンク112は、シンクデバイス102によって取り扱われ得る最大リンク速度及び最大チャネル速度のような情報を含む補助情報の双方向交換のために用いられる。他の実施形態においては、システム100は、別の既知の標準、例えば高精細度マルチメディアインタフェース(HDMI)、デジタルビジュアルインタフェース(DVI)、ビデオグラフィックスアレイ(Video Graphics Array)(VGA)若しくはその変形、及び低電圧差動シグナリング(Low Voltage Differential Signaling)(LVDS)、又は同様のカスタムデータ伝送標準に従って動作する主リンク110を有していてよい。
【0030】
図2は本発明の実施形態に従い別のシステム200を示している。システム200は、ソースデバイス201、多重シンクデバイス202及び203、並びに分岐デバイス204を含む。ソースデバイス201並びにシンクデバイス202及び203は、
図1に関して上述したようなものであってよい。分岐デバイス204は中間デバイスであり、入ってくるデータストリームを入力として取り、そして1つ以上のシンクデバイスへデータストリームを出力する。システム200に対応するシステムの例は多重チャネルオーディオスピーカシステムであり、その場合、オーディオ受信機分岐デバイスは、ソースデバイス(例えばDVDプレイヤ)からの入力オーディオストリームを取り、そしてオーディオ及びビデオを別個のシンクデバイス(例えば各オーディオチャネルのための別個のスピーカ及びビデオのためのテレビジョンディスプレイ)へ分配する。別の例はビデオスプリッタシステムであってよく、単一のソースデバイス(例えばコンピュータ)からのビデオ出力が多重シンクデバイス(例えば複数のディスプレイデバイス)へ分配されることを可能にする。
【0031】
システム200はディスプレイポート標準、又は1つ以上のその変形に適合していてもよい。従って、主リンク210、211、及び212は、等時性データストリームの搬送のために用いられる単方向リンクであってよい。各等時性データストリームは、例えば、仮想チャネル内で伝送されてよい。例えば、ソースデバイス201において生成されるビデオストリームのような等時性データストリームは、ソースデバイス201から分岐デバイス204へ仮想チャネル220において伝送され得る。分岐デバイス204は次いでビデオストリームをディスプレイモニタであってよいシンクデバイス202及び203へ分配する。分岐デバイス204からシンクデバイスの各々へのビデオストリームは、仮想チャネルにおいて伝送される。主リンク210、211、及び212のリンク速度は互いに異なっていてよい。
【0032】
システム100、200等に対応して、本発明の説明は幾つかのクロック周波数が区別されることを必要とする。ここで用いられる「シンボル」は、「データシンボル」又は「制御シンボル」を参照し得る。データシンボルは、ソースデバイス及びシンクデバイスに知られているプロトコルに従ってエンコードされている伝送されるべきデータである。データシンボルは、表示されるべきビデオデータのようなアクティブデータの他にブランキングインターバルデータ(blanking interval data)を含み得る。制御シンボルは、データシンボルをフレーミング(framing)するために用いられる一連のシンボルであって、ソースデバイス及びシンクデバイスによって知られているプロトコルに従ってエンコードされる。
【0033】
リンク速度は、シンボルが主リンク210、211、及び212のような物理リンク上で伝送されるときの速度又は周波数を参照する。各主リンク210、211、及び212は異なるリンク速度を各々が有していてよい。リンク速度に関係するのは、それぞれのリンクにわたってタイミングを確立するリンクシンボルクロック、即ちLS_CLKである。
【0034】
ソースデータ速度は、ソースがデータストリームを出力するときの速度又は周波数である。例えば、DVDデコーダからのビデオソースデータ速度は、デコーダからビデオデータが出力されるときの速度である。DVDデコーダからのオーディオソースデータ速度は、デコーダからオーディオデータが出力されるときの速度である。このように、ソースデータ速度は、実際のビデオデータのようなアクティブデータの他にブランキングインターバルを含む。データストリームのソースデータ速度の回復は本発明の鍵となる側面である。
【0035】
仮想チャネルデータ速度は、ソースデータを含むデータがインタフェース送信機デバイスへ入力されるときの速度又は周波数である。また、仮想チャネルデータ速度は、インタフェース受信デバイスが、受信したデータストリームをシンクデバイスへ表現のために入力するときの速度でもある。換言すれば、仮想チャネルデータ速度は、仮想チャネルのためのデータが送信機へ入力されるときの速度である。従って、仮想チャネルデータ速度は、対応するソースデータ速度よりも高く且つリンク速度よりも低い。
【0036】
図3は本発明の実施形態に従うソースデバイス201を示している。ソースデバイス201は、制御器301、メモリ302、永続的ストレージ(persistent storage)303、通信フレームワーク304、データソース310、リンクモジュール320、送信インタフェース330、クロックソース340、チャネライザ(channelizer)322、及び参照速度モジュール324を含む。制御器301は、中央プロセッサユニット(CPU)又はグラフィクスプロセッサユニット(GPU)を含む任意の1つ以上のプロセッサであってよい。制御器301はソースデバイス201内のデバイスの動作を制御する。例えば、制御器301は、リンクモジュール320、送信インタフェース330、クロックソース340、チャネライザ322、及び参照速度モジュール324の1つ以上を実装している論理命令を実行することができる。リンクモジュール320、送信インタフェース330、クロックソース340、チャネライザ322、及び参照速度モジュール324の論理命令は、ソフトウエア、ハードウエア、又はそれらの組み合わせにおいて実装され得る。
【0037】
メモリ302は、1つ以上のメモリデバイス、例えばダイナミックランダムアクセスメモリ(DRAM)デバイスを含む。メモリ302は、実行のための必要性に応じて、リンクモジュール320、送信インタフェース330、クロックソース340、チャネライザ322、及び参照速度モジュール324を含む部分モジュールのための論理を記憶するのに用いられる。メモリ302は、データソース310から送信インタフェース330へ入ってくるストリームデータをバッファするためにも用いられ得る。
【0038】
永続的ストレージ303は、磁気ディスク、光ディスク、フラッシュメモリ等のような1つ以上の永続的ストレージデバイスを含んでいてよい。永続的ストレージ303は、リンクモジュール320、送信インタフェース330、クロックソース340、チャネライザ322、及び参照速度モジュール324の論理を必要に応じて記憶することができる。例えば1つの実施形態では、永続的ストレージ303は、ソースデバイス201の起動に際してメモリ302内へロードされるべき実行可能な形態にあるソフトウエアにおいて実装されるリンクモジュール320、送信インタフェース330、クロックソース340、チャネライザ322、及び参照速度モジュール324の全ての部分を記憶している。
【0039】
通信バス304は、301、302、303、310、320、322、324、330、及び340の2つ以上のようなソースデバイス201の複数のコンポーネントを結合する。通信バス304は、周辺コンポーネントインタフェース(Peripheral Component Interface)(PCI)バス若しくはその変形の1つ、ユニバーサルシリアルバス(Universal Serial Bus)(USB)、ファイアワイヤ(Firewire)、イーサネット(登録商標)、又は同様のデバイスを含んでいてよい。
【0040】
データソース310は、ソースデータストリームを生成する任意のデバイスであってよい。例えば、ビデオ又は音楽の再生デバイス(例えばDVD、CD、MP3、デジタルカメラ等の再生デバイス又はデコーダ)がデータソース310に含まれていてよい。1つの実施形態では、データソース310は、DVDに記憶されているビデオデータを、データが送信インタフェース330へ送られる前にデコードすると共に非圧縮化する(uncompresses)DVD再生デバイスであってよい。例えば、DVDビデオデータは、動画専門家グループバージョン2(Motion Picture Experts Group version 2)(MPEG2)ビデオ圧縮標準を用いて記憶されていてよい。データソース310は、MPEG2標準に従ってMPEG2ビデオを非圧縮化すると共に非圧縮化されたビデオデータをリンクモジュール320内へ注入するであろうし、非圧縮化されたビデオデータは、シンクデバイス202へ伝送されてディスプレイ上で表現されるであろう。ここでは説明されないが、当業者であれば、限定はされないが例えばフレームバッファ、デコーダ、及びタイミング制御器のようなコンポーネントをデータソース310が含み得ることを理解するであろうし、これらのコンポーネントは、リンクモジュール320内へ入力されるべきソースデータストリームを生成することにおいて用いられ得る。
【0041】
リンクモジュール320は、送信要求に従ってパケット及び/又はフレームをパッキング及び/又はスタッフィング(stuffing)することのようなサービスを提供する機能性を包含する。リンクモジュール320はまた、補助データ(例えば制御情報、及び/又はビデオストリームと共に表示されるべき他の情報)を多重化すると共に暗号化を実行する機能性を提供することができる。
【0042】
チャネライザ322は、リンクモジュール320の一部として又は別個のモジュールとして実装され得る。チャネライザ322は、データソース310からのソースデータストリームを受信すると共に1つ以上の仮想チャネルを起動して当該ソースデータを1つ以上のソースデータストリームとしてシンクデバイスへ送信する機能性を包含している。例えば、DVDビデオ及びオーディオストリームをデータソース310から受信して、チャネライザ322は、ビデオストリーム及びオーディオストリームに対して1つ以上の仮想チャネルを起動することができる。チャネルの起動は、チャネルに対して識別子を生成することと、適切な識別子を対応するストリームデータと共にリンク層へ渡すこととを含み得る。本発明の幾つかの実施形態では、仮想チャネルの起動は、対応するシンクデバイス及び分岐デバイスとのメッセージの交換を伴う。仮想チャネルをセットアップすることに先立つメッセージの交換は、例えば、動的に決定されるチャネル速度を伴う仮想チャネルの設定を可能にする。
【0043】
例えば、仮想チャネルのチャネル速度は、データフローのパス(path)内の各デバイスがサポートし得る速度で設定されてよい。実施形態においては、チャネル速度は、対応するソースデータストリームのピーク速度より大きい値であって且つ基礎となっている伝送媒体の物理的伝送特性に合致する(maps to)値になるように設定され得る。また、チャネル速度は、データフローのパスに沿った実質的に全ての中間デバイスによってサポート可能なレベルに設定されることが望ましい。チャネライザ322又はリンクモジュール320は、望ましくは、設定されたレベルでチャネル速度が維持されるように、非アクティブデータを仮想チャネルデータストリーム内へ詰め込む(stuff)ことができる。
【0044】
参照速度モジュール324は、シンクデバイスへ伝送され得るタイミング関係を伝達する1つ以上の参照パラメータを決定する機能性を包含する。1つの実施形態では、参照速度モジュール324は、シンクデバイス202へ伝送されるべき第1のパラメータ及び第2のパラメータを決定する。第1のパラメータ及び第2のパラメータは、(ソースデータ速度)/(チャネル速度)の関係を表すように決定される。1つの実施形態では、第2のパラメータは、対応する仮想チャネルクロックの予め定められたサイクル数であってよい。第1のパラメータは、その結果、第2のパラメータによって定義される仮想チャネルクロックインターバル内で発生するソースデータストリームクロックのサイクル数であってよい。1つ以上の位相ロックループ等が、例えばクロックソース340からのクロックにロックオン(lock on)するために用いられ得る。
【0045】
クロックソース340は、ソースデータストリームクロック、仮想チャネルクロック、及びリンククロックを生成するために用いられる1つ以上のクロックソースを含んでいてよい。本発明の実施形態は、ソースデータストリームクロック、仮想チャネルクロック、及びリンククロックの各々に対してクロックソース340からの独立したクロックを用いてよく、全てに対して単一のクロックを用いてよく、又は組み合わせを用いてよい。例えば、ソースデータストリームクロック及び仮想チャネルクロックに対して同一のクロックが用いられる場合、第1及び第2のパラメータの値は、ソースデータストリームの送信の間に変化しないであろう。異なるクロックソースが用いられる場合には、例えば、第2のパラメータは一定であり得る一方で、第1のパラメータは、それが第2のパラメータに対して相対的に定義されるという理由で、変動し得る。クロックソース340において用いられるクロックソースは、1つ以上のクリスタル発振器又はシリコン発振器のような任意の既知のクロック生成デバイスを含んでいてよい。
【0046】
送信インタフェース330は、例えばリンクモジュール320からの出て行くデータストリームを受信すると共にそれをシンクデバイス202のようなシンクデバイス又は分岐デバイス204のような分岐デバイスへリンク210のような伝送リンクを介して送り出す機能性を包含する。送信インタフェース330はまた、必要に応じて、主リンク及び補助リンクの両方の種類が存在するシステムにおいてこれらを介してデータを送信する機能性を包含する。1つの実施形態では、送信インタフェース330は、物理レイヤにおいて規定される機能性、例えば物理的伝送、及び送信されるデータの誤り補正を包含する。データの送信はリンククロックに従って生じる。実施形態においては、送信インタフェース330は差動送信機を含むことができる。例えば1つの実施形態では、送信インタフェース330は、低電圧差動シグナリングインタフェース標準(LVDS)を用いて主リンク210を介してビデオデータフレーム及び制御情報を送信するのに必要な機能を含む。
【0047】
当業者であれば、ソースデバイス201は、図示されているものに加えてコンポーネント若しくはモジュールを備えていてよく又は図示されているのとは異なる組み合わせを備えていてよいことを理解するであろう。尚、データソース310、リンクモジュール320、送信インタフェース330、チャネライザ322、参照速度モジュール324、及びクロックソース340の機能性は、ソフトウエア、ファームウエア、ハードウエア、又はこれらの組み合わせにおいて実装され得る。1つの実施形態では、例えば、データソース310、リンクモジュール320、送信インタフェース330、チャネライザ322、参照速度モジュール324、及びクロックソース340の機能性は、ここに説明される本発明の側面を採用しているハードウエアデバイスを生成するためのマスクワーク/フォトマスクの創出を通して最終的に製造プロセスを構成することを可能にするために、ベリログ(Verilog)、RTL、ネットリスツ(netlists)のようなハードウエア記述言語において規定される。
【0048】
図4は本発明の実施形態に従いシンクデバイス202を示している。シンクデバイス202は、制御器401、メモリ402、永続的ストレージ403、通信フレームワーク404、データシンク430、リンクモジュール420、受信インタフェース410、クロックソース440、チャネルプロセッサ422、及び速度導出器(rate deriver)424を含む。制御器401は、中央プロセッサユニット(CPU)又はグラフィクスプロセッサユニット(GPU)を含む任意の1つ以上のプロセッサであってよい。制御器401はシンクデバイス202内のデバイスの動作を制御する。例えば、制御器401は、リンクモジュール420、受信インタフェース410、クロックソース440、チャネルプロセッサ422、及び速度導出器424の1つ以上を実装している論理命令を実行することができる。リンクモジュール420、受信インタフェース410、クロックソース440、チャネルプロセッサ422、及び速度導出器424の論理命令は、ソフトウエア、ハードウエア、又はそれらの組み合わせにおいて実装され得る。
【0049】
メモリ402は、1つ以上のメモリデバイス、例えばダイナミックランダムアクセスメモリ(DRAM)デバイスを含む。メモリ402は、実行のための必要性に応じて、リンクモジュール420、受信インタフェース430、クロックソース440、チャネルプロセッサ422、及び速度導出器424を含む部分モジュールのための論理を記憶するのに用いられる。メモリ402は、受信インタフェース410からデータシンク430へ入ってくるストリームデータをバッファするためにも用いられ得る。
【0050】
永続的ストレージ403は、磁気ディスク、光ディスク、フラッシュメモリ等のような1つ以上の永続的ストレージデバイスを含んでいてよい。永続的ストレージ403は、リンクモジュール420、受信インタフェース430、クロックソース440、チャネルプロセッサ422、及び速度導出器424の論理を必要に応じて記憶することができる。例えば1つの実施形態では、永続的ストレージ403は、シンクデバイス202の起動に際してメモリ402内へロードされるべき実行可能な形態にあるソフトウエアにおいて実装されるリンクモジュール420、受信インタフェース430、クロックソース440、チャネルプロセッサ422、及び速度導出器424の全ての部分を記憶している。
【0051】
通信バス404は、401、402、403、410、420、422、424、430、及び440のようなシンクデバイス202の複数のコンポーネントを結合する。通信バス404は、周辺コンポーネントインタフェース(PCI)バス若しくはその変形の1つ、USB、ファイアワイヤ、イーサネット(登録商標)、又は同様のデバイスを含んでいてよい。
【0052】
受信インタフェース410は、主リンク211のようなリンクからの入ってくるデータストリーム又はソースデバイス若しくは分岐デバイスからの入ってくるデータストリームを受信する機能性を包含する。受信したデータは次いでリンクモジュール420へ送られてよい。受信インタフェース410はまた、必要に応じて、主リンク及び補助リンクの両方の種類が存在するシステムにおいてこれらを介してデータを受信する機能性を包含する。1つの実施形態では、受信インタフェース410は、物理レイヤにおいて規定される機能性、例えば物理的伝送及び伝送されたデータの誤り補正を包含する。実施形態においては、受信インタフェース410は差動受信機を含むことができる。例えば1つの実施形態では、受信インタフェース410は、低電圧差動シグナリングインタフェース標準(LVDS)を用いて主リンク211を介してビデオデータフレーム及び制御情報を受信するのに必要な機能を含む。
【0053】
リンクモジュール420は、パケットがソースデバイスから分岐デバイスへどのように伝送されたかに従って、パケット及び/又はフレームをアンパッキング(unpacking)及び/又はデスタッフィング(destuffing)することのようなサービスを提供する機能性を包含する。リンクモジュール420はまた、補助データ(例えば制御情報、及び/又はビデオストリームと共に表示されるべき他の情報)を分離する(demultiplex)と共に入ってくるストリームの復号(decryption)を必要に応じて実行する機能性を提供することができる。
【0054】
データシンク430は、入ってくるストリームを受信すると共にそれを処理し且つ/又は表現することができる任意のデバイスであってよい。例えばデータシンク430は、テレビジョンディスプレイのようなビデオ及び/又はオーディオ表現デバイス、あるいはスピーカシステムのようなオーディオ表現デバイスであってよい。幾つかの実施形態では、データシンク430は、外部表現デバイスが接続されるインタフェースであってよい。1つの実施形態では、データシンク430は、非圧縮化されたビデオデータ及び関連するタイミング情報を受信するディスプレイデバイスであってよい。ここでは説明されないが、当業者であれば、限定はされないが例えばフレームバッファ、デコーダ、及びディスプレイタイミング回復モジュールのようなコンポーネントをデータシンク430が含み得ることを理解するであろう。
【0055】
チャネルプロセッサ422は、リンクモジュール420の一部として又は別個のモジュールとして実装され得る。チャネルプロセッサ422は、リンクモジュール420からのソースデータストリームを受信すると共にソースデータを1つ以上のソースデータストリームとして含む1つ以上の仮想チャネルを検出する機能性を包含する。例えば、DVDビデオ及びオーディオストリームをリンクモジュール420から受信して、チャネルプロセッサ422は、ビデオストリーム及びオーディオストリームのための1つ以上の仮想チャネルを決定することができる。決定は、仮想チャネルを定義している固有識別子を検出することに基いていてよい。チャネルプロセッサ422はまた、仮想チャネルをセットアップするに際してソースデバイスからのメッセージを受信すると共にこれに応答する機能性を包含し得る。チャネルプロセッサ422及び/又はリンクモジュール420はまた、当該フィルデータ(例えば仮想チャネルの伝送速度を予め規定されたチャネル速度と等しくするために分岐デバイスによって含まされるデータ)を識別すると共に破棄する機能性を包含する。
【0056】
速度導出器424は、ソースデバイス201から伝送される1つ以上の参照速度パラメータを検出すると共にこれらのパラメータ、リンク速度、及びチャネル速度に基いてソースデータ速度を決定する機能性を包含する。速度パラメータは、ソースデータ速度とチャネル速度の間でのタイミング関係を規定する。ソースデバイス201から伝送される1つ以上の速度パラメータは、例えば入ってくるパケットストリーム内のパケットのヘッダ情報から回復され得る。リンク速度及びチャネル速度は局所的に決定され得る。1つ以上の位相ロックループ、発振器、及び/又は同様のものが、リンククロック、仮想チャネルクロック、及び/又はソースデータストリームクロックのような受信され検出されるクロックにロックオンするために用いられ得る。
【0057】
クロックソース440は、データストリームクロック、仮想チャネルクロック、及びリンククロックの1つ以上にロックオンするために用いられる1つ以上のクロックソース及び/又はクロック回路を含んでいてよい。本発明の実施形態は、ソースデータストリームクロック、仮想チャネルクロック、及びリンククロックの各々に対してクロックソース440からの独立したクロックを用いてよく、全てに対して単一のクロックを用いてよく、又は組み合わせを用いてよい。クロックソース440において用いられるクロックソースは、1つ以上のクリスタル発振器若しくはシリコン発振器のような任意の既知のクロック生成デバイス、又は位相ロックループ回路のようなクロックロック回路を含んでいてよい。
【0058】
当業者であれば、シンクデバイス202は、図示されているものに加えてコンポーネント若しくはモジュールを備えていてよく、又は図示されているのとは異なる組み合わせを備えていてよいことを理解するであろう。尚、データシンク430、リンクモジュール420、受信インタフェース410、クロックソース440、チャネルプロセッサ422、及び速度導出器424の機能性は、ソフトウエア、ファームウエア、ハードウエア、又はこれらの組み合わせにおいて実装され得る。1つの実施形態では、例えば、データシンク430、リンクモジュール420、受信インタフェース410、クロックソース440、チャネルプロセッサ422、及び速度導出器424の機能性は、ここに説明される本発明の側面を採用しているハードウエアデバイスを生成するためのマスクワーク/フォトマスクの創出を通して最終的に製造プロセスを構成することを可能にするために、ベリログ、RTL、ネットリスツのようなハードウエア記述言語において規定される。
【0059】
図5はプロセス500を示しており、プロセス500によって、ソースデバイス201のようなソースデバイスは、シンクデバイス202のようなシンクデバイスがソースデータ速度を回復するのに必要な情報を送信することができる。ステップ510では、ソースデバイスは、ソースデータストリームを受信し且つ/又は生成する。例えばソースデバイスは、ビデオ及び/又はオーディオストリームを生成するDVD再生デバイスのようなデータソースであってよい。データソースによって生成されるビデオ及び/又はオーディオストリームは、ソースデータストリームとして参照される。データソースは、ビデオ及びオーディオデータのエンコーディング(例えばMPEG2)を含む幾つかの因子によって決定される速度でソースデータストリームを生成する。例えばクロックソース340におけるクロックソース又はクロックロック回路は、クロックを生成するために用いられてよく、又はソースデータストリームから生成されるクロックにロックオンするために用いられてよい。ソースデータストリームのデータ速度を決定するクロック周波数は、ソースデータストリームクロック又はソースデータストリーム速度と称される。
【0060】
ステップ520では、ソースデータストリームが1つ以上の仮想チャネルにマッピングされる。上述したように、仮想チャネルは物理的な伝送リンクに課せられた論理ストリームである。典型的には、仮想チャネルとソースデータストリームの間には1対1マッピングがある。しかし、幾つかのケースでは、1つのソースデータストリームは多重仮想チャネルにマッピングされ得る。説明を容易にし且つ一般性を損なわないように、プロセス500の以下の説明は、概してソースデータストリームと仮想チャネルの間での1対1マッピングを前提とする。例えば、ビデオ及び多重チャネルオーディオを伴うソースデータストリームは、多重仮想チャネルにマッピングされてよい。ソースデータストリームの最初のデータを受信すると、チャネライザ及び/又はリンクモジュールは、新たな仮想チャネルが必要であると決定する。チャネライザはチャネル識別子を生成することができ、チャネル識別子は、ソースデータストリームからの、データを搬送中のパケット毎のヘッダ部内にあってよい。幾つかの実施形態では、ソースデバイスは、例えばチャネライザ及び/又はリンクモジュールを用いて、シンクデバイス及び/又は対応する分岐デバイスに新たな仮想チャネルの開始を通知することができる。
【0061】
ステップ530では、チャネル速度が仮想チャネルに対して決定される。チャネル速度、即ち仮想チャネルクロック速度は、仮想チャネルがソースデータ及び他の補助データで一杯になる(populated with)ときの速度である。例えば、チャネル速度は、ソースデータ及び補助データがパケット内へパッキングされ、ヘッダが構成され、データがシンボル及び、パケットに加えられる任意の制御シンボルへエンコードされるときの速度からなる(account for)ことができる。しかし、本発明の実施形態は、盛り込まれている他の側面を有し且つ/又はチャネル速度から除外されて説明される側面の幾つかを有することができる点を特記しておく。各実施形態は、ソースデバイスと対応する1つ以上のシンクデバイスとの間でのチャネル速度を決定する一貫した方法を有することができる。
【0062】
ステップ540では、ソースデータストリームがチャネル化される(channelized)。例えば、チャネライザ322及び/又はリンクモジュール320は、ソースデータストリームからのデータをパケット化することができる。本発明の幾つかの実施形態では、補助データは仮想チャネルに多重化されてよい。チャネル化することは、データストリームデータ及び任意の補助データを固定サイズ又は可変サイズのパケットへパッキングすることと、各パケットのヘッダ部を形成することと、データストリームデータ及び補助データをエンコーディングスキームに従ってエンコードすることと、ソースデータストリームを表現デバイスにおいて表現するために必要な制御シンボルを付加することとを含む。例えばビデオソースデータストリームは、仮想チャネルデータが予め定められたチャネルデータ速度で送信され得るように、非アクティブデータと共にパッキングされる必要があるかもしれない。
【0063】
ステップ550ではリンク速度が決定される。例えば、リンク速度は、リンクモジュール320が送信インタフェース330を介してパケットを送信するときの速度である。典型的には、ソースデバイス、分岐デバイス、及びシンクデバイスは、各々が動作し得る1つ以上のリンク速度を有している。プロセス500の説明において用いられるような「リンク速度」の用語は、主リンク210のような出て行くリンクが動作するときのクロック速度を参照する。尚、リンク帯域は、主リンク210を含む全ての物理リンクの容量の総計を参照する。リンク速度は、典型的には、例えばクロックソース340からの予め設定されたクロックによって決定される。
【0064】
ステップ560では、シンクデバイスへ連絡されるべき速度パラメータが決定される。本発明の実施形態においては、第1の速度パラメータ(M)と第2の速度パラメータ(N)が決定される。本実施形態によると、パラメータM及びパラメータNは、ソースデータストリームクロックと仮想チャネルクロックの間の関係性を搬送することが意図されている。実施形態においては、Nは仮想チャネルクロックの予め定められたサイクル数に対応する値を有するように設定され、そしてMはNによって規定されるインターバルの間に生じるソースデータストリームクロックのサイクル数として測定される。他の実施形態は、M及びNを異なる方法で計算することを含んでよいが、いずれにしろソースデータ速度とチャネル速度の間の関係性を搬送する。Mパラメータ及びNパラメータは各仮想チャネルに対して別個に決定される。Mパラメータ及びNパラメータは、オーディオ及びビデオのような異なる種類のデータに対して別個に決定されてもよい。例えば、単一の仮想ストリーム内であっても、ビデオ及びオーディオは異なる速度で表現することを必要としてもよい。
【0065】
1つの実施形態によると、Nパラメータが決定された後に、例えば、設定を通して(1)がMを決定するために用いられてよい。
【0067】
ここで、Nは仮想チャネルクロックの設定されたサイクル数に対応する時間、F
source_data_rateはソースデータストリームの周波数、F
virtual_channel_rateは仮想チャネルクロックの周波数、そしてMはソースデータストリームに対するMパラメータである。F
source_data_rate及びF
virtual_channel_rateはそれぞれステップ510及び530に関して説明したように決定され得る。
【0068】
ステップ570では、決定されたMパラメータ及びNパラメータがシンクデバイスへ送信される。例えば、仮想チャネルに対して1ペアのみのMパラメータ及びNパラメータが決定された場合には、当該ペアの値が送信される。ビデオ及びオーディオに対する別個のペアのように仮想チャネルに対して多重ペアのM値及びN値が決定された場合には、実質的に全てのそれらのペアが送信されてよい。M値及びN値は、ソースデバイスからシンクデバイスへのパケットストリーム内へエンコードされ得る。1つの実施形態では、M値及びN値は、予め定められたフォーマットに従って、ソースデータストリームからのデータを搬送するパケットのヘッダフィールドにおいてエンコードされる。別の実施形態では、M値及びN値は、予め定められたフォーマットの特別のパケットを介して通信されてよい。
【0069】
本発明の実施形態においては、プロセス500(ステップ510〜570)は、シンクデバイスへ通信されているMパラメータ及びNパラメータを更新するために、一定のインターバルで繰り返されてよい。プロセス500の繰り返しの間のインターバルにおいては、最後に計算されたM値及びN値は、仮想チャネルの存在の間のインターバルで送信され得る。
【0070】
図6は本発明の実施形態に従いソースデータストリーム速度を導出するプロセス600を示している。プロセス600は、シンクデバイス202のようなシンクデバイスにおいて実行されるものとしてここでは説明される。しかし、上述したように、プロセス600は、ソースデータストリーム速度を回復する必要がある場合における中間デバイス又は分岐デバイスを含む他のデバイスにおいて実行され得る。
【0071】
ステップ610では、データストリームからのデータが受信される。例えば、シンクデバイス202の受信インタフェース410は、ソースデバイス201からのデータストリームを直接的に又は1つ以上の中間デバイス204を介して受信することができる。受信インタフェースは、主リンク211のような入ってくるリンクを介してデータストリームを受信することができ、誤り補正のような任意の物理レイヤ機能を実行し、そして回復されたフレームを別のモジュール、例えばリンクモジュール420に受け渡す。
【0072】
ステップ620では、リンクモジュール420及び/又はチャネルプロセッサ422のようなモジュールが、入ってくるデータストリームにおける仮想チャネルを検出する。例えば、リンクモジュール420は、入ってくるフレームを処理してパケットを回復すると共にスタッフィング(stuffing)しているパケット及びシンボルを検出し且つ除去することができる。チャネルプロセッサ422は、例えば、ヘッダフィールド内に同一の仮想チャネルからのような同一のチャネル識別子を有するパケットを処理することができる。
【0073】
ステップ630では、ソースデバイスから伝送された速度パラメータが回復される。例えば、第1及び第2の速度パラメータ(M及びN)は、1つ以上の入ってくるパケットのヘッダ部にエンコードされていてよい。別の実施形態では、Mパラメータ及びNパラメータは、ソースデバイスから伝送される別個のパケットから回復されてよい。プロセス500に関して説明されたように、対応するソースデータストリームクロックを回復するために、Mパラメータ及びNパラメータの1つ以上のペアが用いられてよい。
【0074】
ステップ640では、リンク速度が決定される。シンクデバイスのリンク速度は、分岐デバイス204がソースデバイス201とシンクデバイス202の間にあるシステム200におけるように、ソースデバイスのリンク速度とは異なっていてよい。シンクデバイスのリンク速度は、受信されるクロックにロックオンすることによりシンクデバイスによって決定され得る。例えば、シンクデバイス202は、入ってくるデータストリームにおいて受信したクロックにロックオンすることによって、そのリンク速度(即ち主リンク211が動作するときの速度)を検出することができる。実施形態においては、クロックソース及び/又はロック回路、例えば位相ロックループは、クロックを検出し且つそのクロックに同期するために用いられてよく、そのクロックに基いてデータがリンクを介して受信される。
【0075】
ステップ650では、仮想チャネルのチャネル速度が決定される。例えば、チャネルプロセッサ422及び/又はリンクモジュール420は、仮想チャネルデータが受信されるときの速度を決定することができる。チャネル速度を決定するのに先立ち、リンクモジュール420及び/又はチャネルプロセッサ422は、例えば仮想チャネルの伝送を予め定められたチャネル速度で維持するために中間デバイスによって挿入される任意のフィルデータを取り去る。例えば、ソースデバイス及び/又は中間デバイスは、スタッフィングパケット及びフィルデータを挿入して出て行くチャネル速度を調整することができる。チャネル速度の決定は、入ってくる仮想チャネルデータによって生成されるクロックにロックオンすることに基いていてよい。1つの実施形態では、リンククロックは、入ってくる仮想チャネルデータにより生成されるクロックにロックオンすることによってチャネル速度を決定するための参照として用いられる。
【0076】
ステップ660では、ソースデータストリームクロック又はソースデータ速度が決定される。例えば、速度導出器424は、チャネルプロセッサ422によって回復されたMパラメータ値及びNパラメータ値、リンクモジュール420によって決定されたリンククロック、並びにチャネルプロセッサ422及びリンクモジュール420によって決定された仮想チャネルデータ速度を受信することができる。受信されたパラメータ及び決定されたクロック速度は、ソースデータ速度を導出するために用いられ得る。1つの実施形態では、ソースデータ速度は以下の計算を用いて決定され得る。
【0078】
ここで、Nは仮想チャネルクロックの予め定められたサイクル数に対応する時間であり、そしてMはNによって規定されるインターバル内におけるソースデータクロックのサイクル数である。N及びMはソースデバイスから受信されるパラメータである。F
virtual_channel_rateはチャネル速度であり、シンクデバイスで決定される。F
ls_clkはリンク速度であり、ステップ640に関して上述したようにこれもシンクデバイスで決定される。F
source_data_rateは上記(2)を用いて決定され得る。尚、(2)においては、リンク速度(リンククロック)の代わりに任意の参照クロックが用いられ得る。また、幾つかの実施形態、例えばチャネル速度が独立して決定され得る実施形態においては、ソースデータ速度はM、N、及びチャネル速度のみを用いて決定され得る。
【0079】
プロセス600は、関連するソースデータストリームクロック速度を再計算するために周期的に繰り返されてよい。また、本発明の実施形態は、ソースデバイスから受信される1つ以上の速度パラメータを用いて関連するソースデータクロック速度を決定するために、プロセス600又は類似のプロセスを実装し得ることも特記しておく。ソースデバイスから受信する速度パラメータは、仮想チャネルクロック速度及びソースデータクロック速度に関連する。
【0080】
以上説明したように、本発明は、シンクデバイスがソースデバイスに直接的に又は間接的に結合されているかどうかにかかわらず、シンクデバイスが等時性データストリームのソースデータ速度を決定することを可能にする。ソースデータストリームに対する仮想チャネルを起動すると共に、次いでチャネル速度をソースデータ速度に関係付ける1つ以上のパラメータをシンクデバイスへ連絡することによって、ソースデバイスは、ソースデバイス及びシンクデバイスが異なるリンククロックを有している場合であっても、関連するソースクロックをシンクデバイスが再現することを可能にする。
【0081】
従来の試みと比較した本発明の効果は、分岐デバイス及びシンクデバイスにおけるコストの低減及び複雑さの軽減、ロック時間の短縮、信号対雑音比の向上、並びに複数の表現デバイスの間でのオーディオ位相調整の可能性を含む。分岐デバイスは、Mパラメータ及びNパラメータを再計算する必要なしにそれらを次に伝えれば済むので、分岐デバイスを単純化することができる。シンクデバイスには、仮想チャネルクロックを決定すること及び必要なソース速度を計算すること以外に負担が課せられないので、シンクデバイスを単純化することができる。また、本発明はソースデータ速度のより正確な回復を可能にするので、受信した信号の信号対雑音比がより高くなる。更に、本発明は処理パス(processing path)に起因する可変遅延成分を排除するので、複数の表現デバイスの間での位相調整が可能になる。
【0082】
概要及び要約の部は、発明者によって検討された本発明の1つ以上のしかし全部ではない例示的な実施形態を説明することができ、従って本発明及び添付の特許請求の範囲を限定することが意図されているわけではけっしてない。
【0083】
特定の機能の実装及びそれらの関係性を示す機能構築ブロックを補助として、本発明が上述のように説明されてきた。これらの機能構築ブロックの境界は、説明の便宜上ここでは適宜画定されてきた。特定の機能及びそれらの関係性が適切に実行される限りにおいて、代替的な境界が画定されてよい。
【0084】
特定の実施形態の上述した説明は、本発明の一般的性質を十分に明らかにするであろうから、他者は、当業者の知識を適用することによって、過度の実験を必要とせず、本発明の一般的概念から逸脱することなく、そのような特定の実施形態を容易に修正し且つ/又は種々の応用に適用することができる。従って、そのような適用及び修正は、ここに提示されている教示及び指針に基いて、開示されている実施形態と均等なものの意味及び範囲の範疇にあることが意図されている。ここでの用語等は、本出願書類の用語等が教示及び指針の下で当業者によって解釈されるべきであるという点において、説明を目的としたものであって限定を目的としていないことが理解されるべきである。
【0085】
本発明の広さ及び範囲は、上述したいかなる例示的な実施形態によっても限定されるべきではなく、以下の特許請求の範囲及びそれらと均等なものに従ってのみ画定されるべきである。