説明

受信側デバイスの出力クロック周波数の補正回路

データ(16)およびタイムスタンプ要素(18)を受信する受信側デバイス(13)の出力クロックの周波数を補正するための出力クロック補正回路(14)は、出力クロックフィードバックループ(20)、FIFOバッファ(22)およびタイムスタンプアジャスタ(24)を含む。出力クロックフィードバックループ(20)は、タイムスタンプ要素(18)に基づいて出力クロックの位相および/または周波数を調節する。FIFOバッファ(22)は、一時的にデータを格納する。タイムスタンプアジャスタ(24)は、FIFOバッファの状態に基づいてタイムスタンプ要素を選択的に調節する。一実施形態では、前記状態が、FIFOバッファ内の実データレベルに少なくとも部分的に基づくものとなる。別の実施形態では、FIFOバッファ(22)が目標データレベル範囲を有し、FIFOバッファ内の実データレベルがこの範囲外となったときに、タイムスタンプ要素が調節される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、受信側デバイスの出力クロック周波数を補正するための回路に関するものである。
【背景技術】
【0002】
シリアルデータ通信は、各種デバイス間でデータを通信するために使用される。シリアルデータのストリームを受信して正確に復号するには、同期された送信側デバイスおよび受信側デバイス(例えば、ビデオディスプレイ)を含むシステムが必要とされる。多くの場合、受信側デバイスに送信されるシリアルデータのストリームには、ソースクロック信号、例えば、162MHz(“低下したビットレート”)または270MHzの周波数(“高ビッドレート”)を有するリンクシンボルクロック(Link Symbol Clock)、およびタイムスタンプ情報または“カウンタ”(“M”および“N”とも呼ばれる)が含まれる。それらタイプのシステムにおいては、システムの正常機能を高めるために、ソースクロック周波数、例えば、受信側デバイスにおいて25.175MHz(例えば、VGA)と268.5MHz(例えば、WQXGA)との間の範囲内の周波数とは異なる出力クロック周波数を有するストリームクロック(“ピクセルクロック”と呼ばれることもある)のような出力クロックを正確に再生しなければならない。あるシステムでは、MおよびNのタイムスタンプ情報は、送信側デバイスからのデータストリーム内に埋め込まれ、ソースクロックと出力クロック間の相対周波数に関連する。
【0003】
しかしながら、ソースクロックと出力クロック間の周波数差のため、正確な出力クロックの再生(ストリームクロックリカバリ(“SCR”)と呼ばれることもある)は、従来のシステムでは難しい可能性がある。多くのシステムでは、受信側デバイス内でピクセルデータのような出力クロックデータのフローを一時的に格納して制御するために、ラインバッファ(“先入れ先出し”または“FIFO”バッファとも呼ばれる)が使用される。
【0004】
あるシステムでは、受信側デバイスが、位相ロックループ(“PLL”)のようなフィードバックループを使用して出力クロックリカバリ技術を実行することができる。PLLは、シリアルデータストリームを分析して、受信側デバイスを送信側デバイスと同期させようと試みる。しかしながら、周知のように、PLLは、ランダムおよび/または決定論的ジッタをもたらして、それが伝送エラーを引き起こす場合がある。このジッタは、絶えず蓄積して、FIFOバッファ内のピクセルデータの量に最終的に影響を与える場合がある。例えば、FIFOバッファ内のピクセルデータの漸増は、そのようなデータの過剰に繋がる可能性がある。本明細書では、そのことを“オーバーフロー”状態と称する。反対に、FIFOバッファ内のピクセルデータの漸減は、そのようなデータの不足に繋がる可能性がある。本明細書では、そのことを“アンダーフロー”状態と称する。オーバーフローまたはアンダーフロー状態の何れにおいても、受信側デバイスのフレームリカバリおよび/または画像安定性に支障を来す場合がある。
【発明の概要】
【0005】
本発明は、受信側デバイスにおける出力クロックの周波数の補正回路を対象とする。受信側デバイスは、送信側デバイスからデータおよびタイムスタンプ要素を受信する。タイムスタンプ要素は、少なくとも部分的に、出力クロックの所望の周波数に基づくものとなる。一実施形態においては、上記回路が、出力クロックフィードバックループ、FIFOバッファおよびタイムスタンプアジャスタを含む。出力クロックフィードバックループは、出力クロックの位相および/または出力クロックの周波数を調節する。この調節は、少なくとも部分的に、タイムスタンプ要素に基づくものとなる。FIFOバッファは、一時的にデータを格納する。タイムスタンプアジャスタは、FIFOバッファの状態(ステータス)に基づいてタイムスタンプ要素を選択的に調節する。
【0006】
ある実施形態では、出力クロックフィードバックループが位相ロックループである。一実施形態では、FIFOバッファが実データレベルを有し、FIFOバッファの状態が、少なくとも部分的に実データレベルに基づくものとなる。別の実施形態では、FIFOバッファが、上限および下限を含む目標データレベル範囲を有する。この実施形態では、FIFOバッファ内の実データレベルが上限を上回るか、あるいは下限を下回ったときに、タイムスタンプアジャスタがタイムスタンプ要素を調節する。FIFOバッファは、目標データレベル範囲内の所望のデータレベルを有する。一実施形態では、タイムスタンプアジャスタが、FIFOバッファ内の実データレベルと所望のデータレベルとの間の差に等しいオフセットに少なくとも部分的に基づく割合だけ、タイムスタンプ要素を調節する。別の実施形態では、上記状態が、FIFOバッファ内の実データレベルの経時的変化に少なくとも部分的に基づくものとなる。
【0007】
幾つかの実施形態では、タイムスタンプアジャスタが、予め設定された時間間隔でFIFOバッファ内の実データレベルを監視するバッファモニタを含む。一実施形態では、タイムスタンプアジャスタが、計算に基づく量で、タイムスタンプ要素を調節する。別の実施形態では、タイムスタンプアジャスタが、ルックアップテーブルまたはレジスタから決定される量で、タイムスタンプ要素を調節する。
【0008】
本発明は、受信側デバイスにおける出力クロックの周波数の補正方法も対象とする。
【図面の簡単な説明】
【0009】
本発明の新規な特徴は、本発明自体と同様に、その構造と動作の両方に関して、付随する説明と併用することにより、添付図面から最も良く理解されるであろう。それら図面においては、同様の符号が同様の部分を指している。
【0010】
【図1】図1は、タイムスタンプアジャスタを含む本発明の特徴を有する出力クロック補正回路の一実施形態を示す概略的なフロー図である。
【図2】図2は、メインストリームプロセッサを含む受信側デバイスの概略を示すブロック図である。
【図3】図3は、FIFOバッファを含むメインストリームプロセッサおよびタイムスタンプアジャスタの一実施形態のブロック図である。
【図4】図4は、複数のラインおよび複数のピクセルクロックを含む受信側デバイスの1フレームの簡略化した部分図である。
【図5】図5は、FIFOバッファ内のFIFO入力の数の関数として、タイムスタンプアジャスタによる第1タイムスタンプ要素Mの変化を示すグラフである。
【図6】図6は、第1タイムスタンプ要素Mの変化を決定するためにタイムスタンプアジャスタにより使用され得るルックアップテーブルの一実施形態である。
【図7】図7は、本発明の特徴を有する出力クロック補正回路の使用の結果得られる、時間の関数としてのFIFOバッファ内の実データレベルを示すグラフである。
【図8】図8は、受信側デバイスの出力クロック周波数を補正するための方法の一実施形態を示すフローチャートである。
【図9】図9は、受信側デバイスの出力クロック周波数を補正するための方法の別の実施形態を示すフローチャートである。
【発明を実施するための形態】
【0011】
システム10は、出力クロックの周波数と同様のまたは異なる周波数を有するソースクロックからの出力クロックの周波数を補正する出力クロック補正回路14(本明細書では、“補正回路”または“回路”と称することもある)を含む。本明細書に記載のように、本発明は、ソースクロックドメイン(source clock domain)から出力クロックドメイン(output clock domain)へのような、任意のクロスクロックドメインデータ伝送システム(cross-clock domain data transport system)に適用することができる。本明細書の説明は主としてビデオシステムと、特に、ストリームクロック補正回路に焦点を合わせているが、本明細書の説明からビデオシステムに対する限定と解釈すべきではないことを認識されたい。例えば、本明細書に開示および記載の補正回路14は、固定されたソースクロック送信周波数に基づいて受信側デバイスの可変オーディオクロックサンプリング周波数を再生および/または補正する必要があるオーディオアプリケーションにも、同等に有用である場合がある。また、その他の適当なタイプのクロスクロックドメインデータ伝送システムについても、本明細書に開示および記載の技術が有効である。
【0012】
図1は、送信側デバイス12および受信側デバイス13(鎖線の矩形内に図示)を含むシステム10の一実施形態の概要を与えるフローチャートダイアグラムである。なお、システム10の代替的な実施形態では、受信側デバイス13のみを含んで、送信側デバイス12を省略することができる。受信側デバイス13は、出力クロック補正回路14の一実施形態を含む。システムの設計要件に適合させるために、出力クロック補正回路14の具体的な構造を変えることができることを認識されたい。図1に示す実施形態では、ソースクロックが、送信側デバイス12から生じるデータストリームに含まれる。ソースクロックは、受信側デバイス13(図1において外側の破線の矩形として図示)で、最初に直列化されて、その後に、クロックおよびデータリカバリ(“CDR”)を介して、再生、すなわち非直列化される。明確にするために、図1にはソースクロックの非直列化が示されていない。
【0013】
データストリームは、バイトデータのような入力データ16およびタイムスタンプ情報18を含む。タイムスタンプ情報18は、第1タイムスタンプ要素18および第2タイムスタンプ要素19(“M”および“N”として図1にそれぞれ図示)を含む。ある実施形態では、タイムスタンプ要素18,19は、ソースクロックと出力クロックの相対周波数に基づく24ビットのデータとなり得る。なお、タイムスタンプ要素18,19は、24ビットのデータ以外の情報をその代わりに含むこともできる。
【0014】
図1に示す実施形態では、出力クロック補正回路14が、出力クロックフィードバックループ20(図1に内側の破線の矩形として図示)、FIFOバッファ22およびタイムスタンプアジャスタ24を含む。出力クロックフィードバックループ20は、出力クロックの位相および出力クロックの周波数のうちの少なくとも一方を調節する。ある実施形態では、その調節が、タイムスタンプ要素18,19の1またはそれ以上に少なくとも部分的に基づくものとなる。より具体的には、一実施形態では、その調節が少なくとも部分的に第1タイムスタンプ要素18に基づくものとなり、その結果、第1タイムスタンプ要素18の値が出力クロックの位相および/または周波数の調節の及ぶ範囲に影響を及ぼすものとなる。
【0015】
一実施形態においては、出力クロックフィードバックループ20が、当業者に知られた様々なタイプの位相ロックループ(“PLL”)回路のうちの一つを含むことができる。PLL回路20の具体的な設計は変更することができる。例えば、図1に示す実施形態では、PLL回路20が、位相周波数検出器26(“PFD”)、電荷ポンプ回路28(“CP”)、低域フィルタ30(“LPF”)あるいはその他の種類のフィルタ、および電圧制御発振器32(“VCO”)のうちの1またはそれ以上を含むことができる。なお、1またはそれ以上のそれら構成は、出力クロックフィードバックループ20から完全に省略することもできる。若しくは、出力クロックフィードバックループ20は、本発明の趣旨または範囲を逸脱しない範囲で、追加的または代替的なある程度類似の構成を含むことができる。出力クロックフィードバックループ20は、図1に示す出力クロックフィードバックループ20よりも複雑であっても、簡素であってもよい。
【0016】
一実施形態においては、リファレンスクロック34(図1で“Ref Clk”として図示)を生成するために、第2タイムスタンプ要素19(N)のような整数でソースクロックが割られる。その後、リファレンスクロック34およびフィードバッククロック信号36(図1で“FB Clk”として図示)は、PFD26を使用して比較される。
【0017】
PFD26は、必要とされる位相に追尾するために(上または下に)調節する方法を後続の回路に指示する、2つの出力38A,38B(それぞれUPまたはDN)を備えることができる。出力38A,38Bは、CP28に供給される。このCPは、LPF30の1またはそれ以上のコンデンサに対してより高いまたはより低い電圧信号の何れかを生成するアナログ電流スイッチとすることができる。LPF30は、電圧信号を取り入れて平滑化する。その後、この平滑化された信号は、VCO32に送られる。VCO32からの出力データ40は、FIFOバッファ22に送信されるとともに、リファレンスクロック34と比較するために、間接的および周期的にPFD26にフィードバックされる。第1タイムスタンプ要素18(M)は、除数(divisor)としてこのフィードバックサイクルに組み込まれる。後で詳細に説明するように、タイムスタンプアジャスタ24は、FIFOバッファ22の状態を監視するバッファモニタ(図示省略)を含む。FIFOバッファ22の状態に基づいて、タイムスタンプアジャスタ24は、第1タイムスタンプ要素18を上または下に選択的に調節して、調節済みの第1タイムスタンプ要素18Aを生成する。この設計により、システム10は、より正確に出力クロックを再生することができ、かつ/またはシステム10のジッタ性能を改善することができる。
【0018】
図2は、メインストリームプロセッサ242を含む受信側デバイス213の概略を示すブロック図である。この実施形態では、メインストリームプロセッサが物理層244とビデオプロセッサ246の間に位置する。ソースクロックは、図2に示すように、ソースクロックドメイン248にリンクシンボルクロックを含むことができる。ある実施形態では、入力データ16(図1に図示)が、復号されたデータバイトおよび/またはKコード特別シンボルを含むことができる。また、出力データ40(図1に図示)は、従来から知られているように、データイネーブル(DE)、H−sync、V−sync等のような、再生された表示タイミング情報とともに、出力クロックドメイン250内にピクセルデータを含むことができる。
【0019】
図3は、メインストリームプロセッサ342(破線内に図示)の一実施形態を含むシステム310の一部(鎖線内に図示)のブロック図である。図3に示す実施形態では、メインストリームプロセッサ342が、アンパックブロック(unpack block)352、レーンデマルチプレクサ(lane demultiplexer)354、FIFOバッファ322、表示タイミングジェネレータ356およびタイムスタンプアジャスタ324を含む。一実施形態においては、アンパックブロック352およびFIFOバッファ322の一部が、ソースクロックドメイン348内にある。また、FIFOバッファ322の残部、レーンデマルチプレクサ354および表示タイミングジェネレータ356は、出力クロックドメイン350内にある。さらに、タイムスタンプアジャスタ324は、図3に示すようなシステムクロックドメイン358内にあってもよい。しかしながら、メインストリームプロセッサ342の様々な構成要素は、図3の実施形態に示すドメインとは異なるドメイン内に代替的に含ませることができることを認識されたい。
【0020】
アンパックブロック352の設計は変更することができる。一実施形態においては、アンパックブロック352は、物理層244(図2に図示)からソース(バイト)データ16(図1に図示)を引き出すことができ、出力(ピクセル)データ40(図1に図示)を抽出することができる。ある実施形態では、バイトデータからピクセルデータを抽出するために、循環バッファを使用することができる。あるいは、異なるタイプのバッファを利用することもできる。
【0021】
一実施形態においては、レーンデマルチプレクサ354が、多数のレーンからのデータを組み合わせて、1つの単一ピクセルデータストリームを形成する。
【0022】
FIFOバッファ322は、出力データ40を一時的に格納するメモリを含む。FIFOバッファ322の設計は変更することができる。一実施形態では、FIFOバッファは非同期である。ある実施形態では、図3に示すように、クロック交差(clock crossing)が生じる位置に、FIFOバッファ322が配置される。例えば、ソースクロックは書込側クロックになり、出力クロックは読取側クロックになり得る。一実施形態においては、FIFOバッファ322を、幅122ビットで深さ64ビットとすることができる。この実施形態では、バッファすることができる最大ピクセルが1レーンにつき64ピクセル、2レーンにつき128ピクセル、4レーンにつき256ピクセルである。122ビットのFIFOバッファ幅は、4レーンモード内の4ピクセルと、各ラインの第1ピクセルおよび各フレームの第1ラインのタグ情報のための2の追加ビットのバッファリングに対応する。この実施形態では、(i)1転送単位内の変化、(ii)FIFOバッファが出力クロック変化に対応するために必要とされること、(iii)出力クロックPLLオフセット能力が不安定であること、のうちの1またはそれ以上に基づいて、深さ64ビットが選択されている。
【0023】
ある実施形態では、属性パケットからのフレームパラメータおよびFIFOバッファ322からのアベイラビリティに基づいて、表示タイミングジェネレータ356が、データイネーブル(DE)、H−sync、V−sync等のような表示タイミング情報を生成する。
【0024】
後でより詳細に説明するように、非排他的な一例として、各ラインL1−Lnの第1ピクセルP1のような、ある予め設定された間隔で、FIFOバッファ322の状態に基づいて、タイムスタンプアジャスタ324は、アルゴリズムに基づいて、またはルックアップテーブルあるいはレジスタに基づいて、第1タイムスタンプ要素18を選択的に調節する。
【0025】
図4は、複数のラインL1−Lnおよび複数のピクセルクロックP1−Pnを含む受信側デバイス462の1フレーム460の簡略化した部分図である。
【0026】
様々な同期モードがタイミングリカバリのためにサポートされている。以下では、排他的にそれぞれ使用することができる幾つかの同期モードの非排他的な例を提供する。若しくは、同期モードのうちの1つを、期間中その他の同期モードの1またはそれ以上と結合させることができる。
【0027】
一実施形態では、タイミングリカバリはライン同期モードで実行できる。このライン同期モードでは、第1ピクセルP1のアベイラビリティにより、表示タイミングカウンタをリセットすることができ、各ラインL1−Lnにバッファされたある一定数のピクセルが存在する。垂直帰線消去期間中、送信側デバイス12(図1に図示)によってこの期間中に送られる同期情報が存在しないため、表示タイミングカウンタはフリーランモード(後述)で実行することができる。
【0028】
別の実施形態では、タイミングリカバリはフレーム同期モードで実行することができる。このフレーム同期モードでは、各フレーム460が一度だけ同期されることとなり、それを各フレーム460の第1ラインL1の第1ピクセルP1で生じさせことができる。この時点の後は、次のフレームデータが到着するまで、フレームリカバリはフリーランモードとなる。
【0029】
さらに別の実施形態では、タイミングリカバリをフリーランモードで実行することができる。フリーランモードでは、フレーム同期が少なくとも一度行われ、その後、表示タイミングカウンタがフリーランモードに入る。このモードは、フレーム同期とフリーランモード間で自動スイッチングまたは強制スイッチング(ファームウェアによる)の何れかによって促進される。
【0030】
さらに別の実施形態では、タイミングリカバリがスタンドアロンモードで実行することができる。スタンドアロンモードでは、受信側デバイス462がパターンジェネレータデータを表示し、ビデオPLLがオープンループモードにある。
【0031】
FIFOバッファが各フレーム460の第1ピクセルP1で空の状態または満杯の状態に近付くと、フレーム同期モードが再びアサートされることとなる。フリーランモードでは、各ラインL1−Lnの第1ピクセルP1で、現在の出力クロックが僅かに速いかあるいは僅かに遅いかどうか(それらは、FIFOバッファをアンダフローまたはオーバフローの危険にさらす可能性がある)を判定するために、FIFOバッファの状態が監視あるいは検査される。各ラインL1−Lnの最後で、必要な場合には、ルックアップテーブルに従って、または計算によって、第1スタンプ要素Mを調節することができる。
【0032】
図5は、FIFOバッファ内のFIFO入力の数の関数として、タイムスタンプアジャスタによる第1タイムスタンプ要素の変化(デルタM)の一実施形態を示すグラフである。一実施形態では、FIFOバッファは、上限(図5で“U”として図示)、下限(図5で“L”として図示)および所望のデータレベル(図5で“D”として図示)を含む目標データレベル範囲を有する。一実施形態では、所望のデータレベルがFIFO深さの約2分の1である。代替的な実施形態では、所望のデータレベルを、FIFO深さの2分の1よりも大きくまたは小さくすることができる。図5に示す実施形態では、データレベルに対応するFIFO入力の数がUとDとの間に含まれるときには、第1タイムスタンプ要素Mに対する調節は行われない。目標データレベル範囲においては、FIFOは通常状態で起動しており、オーバフローまたはアンダフローの差し迫った危険が低減されていると考えられる。
【0033】
しかしながら、データレベルに対応するFIFO入力の数がUを上回るときに、第1タイムスタンプ要素Mに対する正の調節が行われる。図1を再び参照すると、PLLにおいて除数として使用されるMの値を増加させることにより、出力クロックの周波数が低下する。出力クロック周波数を低下させることにより、データは、FIFOバッファ内に急速に入ることも蓄積することもなくなる。その結果、FIFOバッファ内のデータレベルが低下することとなる。デルタMについて適切な値が使用される場合、FIFOバッファ内のデータレベルが目標データレベル範囲内に留まるように制御することができる。
【0034】
反対に、データレベルに対応するFIFO入力の数がLを下回るときには、第1タイムスタンプ要素Mに対する負の調節が行われる。PLLにおいて除数として使用されるMの値を減少させることにより、出力クロックの周波数が増加する。出力クロック周波数を増加させることにより、データはFIFOバッファ内により速く入って蓄積する。その結果、FIFOバッファ内のデータレベルが増大することとなり、上述したように、目標データレベル範囲内に留まることができる。
【0035】
代替的な実施形態では、状態バッファモニタは、上述したものとは幾分異なる方法で、FIFOバッファの状態を監視する。この実施形態では、監視されるFIFOバッファの状態が、少なくとも部分的に、FIFOバッファ内の実データレベルの経時的な変化に基づくものとなる。そのような一実施形態では、タイムスタンプアジャスタが第1タイムスタンプ要素Mを調節する必要があるかどうかを判定するために、バッファモニタが経時変化の速度を監視する。したがって、たとえ実データレベルが目標データレベル範囲内にあっても、タイムスタンプアジャスタが第1タイムスタンプ要素Mを調節する必要があると決定する程度に、実データレベルの変化の速度および/または方向が十分に速い場合もある。反対に、たとえデータレベルが目標データレベル範囲外にあっても、タイムスタンプアジャスタが第1タイムスタンプ要素Mを調節する必要がないような状態に、実データレベルの変化の速度および/または方向がある場合もある。つまり、一実施形態において、タイムスタンプアジャスタは、実データレベルおよびその変化の速度および/または方向に基づいて、将来の時点で実データレベルが目標データレベル範囲内にあるかどうかを予測することができる。
【0036】
図6は、第1タイムスタンプ要素Mの変化を決定するためにタイムスタンプアジャスタにより使用され得るルックアップテーブルの非排他的な一例である。使用できる実際のルックアップテーブルは、非排他的な例として、FIFOバッファのサイズ、受信側デバイスの1ライン当たりのピクセル数、および/またはある許容レベルの要件に依存して変わることがある。換言すれば、図6に示すルックアップテーブルは、説明を容易にするためだけに提供するものであり、限定を意図または意味するものではない。例えば、より狭いまたは広い目標データレベル範囲が、ある応用では必要となる場合もある。図6に示す実施例においては、目標データレベル範囲が24のFIFO入力と40のFIFO入力の間にある。この実施形態では、FIFO入力の数が24と40の間にある場合に、第1タイムスタンプ要素Mに対する調節は行われない。しかしながら、仮に、FIFO入力の数が16と24の間に含まれる場合には、この例では、デルタMが−80と等しくなり、よってMが80だけ減少する。FIFO入力の数が48と56の間に含まれる場合には、この例では、デルタMが+160と等しくなり、よってMが160だけ増加する。
【0037】
なお、ルックアップテーブルは、システム10の設計要件に適合するように、図6に示すものよりも緻密にするようにしても、またはその反対にするようにしてもよい。すなわち、連続するデルタM値はより段階的にするようにしても、あるいはそうでなくてもよく、デルタM値の変化に必要なFIFO入力の数は、より狭い間隔または広い間隔等であってもよい。
【0038】
図6に示すルックアップテーブルの実施形態では、目標データレベル範囲がFIFOバッファの深さの特定の割合を反映するように、目標データレベル範囲をプリセットすることができる。例えば、この実施形態における目標データレベル範囲は、16、すなわち64の合計深さの25%である。非排他的な代替的実施形態では、目標データレベル範囲は、FIFOバッファの合計深さの約75%,50%,40%,30%,20%,10%または5%よりも小さくすることができる。さらに別の実施形態では、目標データレベル範囲を所望のデータレベルと等しくすることができる。すなわち、所望のデータレベルからの任意の偏差によって、タイムスタンプアジャスタによる第1タイムスタンプ要素Mの調節が行われるように、目標データレベル範囲をゼロとすることができる。
【0039】
さらに別の代替的な実施形態では、様々な時点で、すなわち、予め設定された間隔またはその他の時間枠スキームで、適切なデルタMを計算するためにアルゴリズムを適用することができる。そのような一実施形態においては、デルタMを計算するために、以下のアルゴリズムを使用することができる。
【数1】

【0040】
上記方程式において、FIFOオフセットは、特定の時点、すなわちフレームの各ラインL1−Lnの第1ピクセルP1におけるFIFOバッファ内の所望のデータレベルと実データレベルとの間の差である。また、HTotalは、受信側デバイスの各水平ラインのピクセル数である。この実施形態では、第1タイムスタンプ要素が調節されるのかどうかと、その調節されるときを決定するために、このアルゴリズムに基づいて、デルタMについて上限および下限を予め設定することができる。つまり、デルタMの絶対値がある値より小さい場合、第1タイムスタンプ要素Mに対する調節は行われない。反対に、デルタMの絶対値がある値より大きい場合、第1タイムスタンプ要素Mに対する調節が行われる。
【0041】
第1タイムスタンプ要素Mに対する調節は、アルゴリズムから計算される割合に基づく乗数(multiplier)の形態を取ることができる。例えば、特定の時点におけるFIFOオフセットが+32であり、HTotalが2000である場合には、データがFIFOバッファに入る周波数を32/2000=0.016または1.6%だけ減少させる必要がある。したがって、出力クロックフィードバックループ(例えば、PLL)において使用される除数(調整されたM)がより大きくなるように、第1タイムスタンプ要素Mを1.6%だけ増加させるべきであり、それにより、データがFIFOバッファに入る度数が効果的に遅くなる。その結果として、FIFOバッファ内のピクセルデータの蓄積が少なくなり、それによりオーバフローの可能性が低下する。
【0042】
なお、上述したアルゴリズムは可能性のある多くのアルゴリズムのうちのごく一例であって、限定を意図または意味するものではなく、第1タイムスタンプ要素Mに対する任意の調節がFIFOバッファの状態に基づくものであればよい。
【0043】
図7は、出力クロック補正回路の使用の結果得られる、時間の関数としてのFIFOバッファ内の実データレベルを示す例示的なグラフである。この実施例では、T1において、FIFOバッファ内の実データレベル(FIFO入力)は、所望のレベルにあり、そのレベルは目標データレベル範囲内にある。したがって、T1では、第1タイムスタンプ要素Mに対する調節は行われない。
【0044】
2では、実データレベルがT1の実データレベルから幾分増加しているが、まだ目標データレベル範囲内にある。したがって、T2では、第1タイムスタンプ要素Mに対する調節は行われない。
【0045】
3では、実データレベルが目標データレベル範囲の上限Uよりも上に増加している。したがって、T3では、第1タイムスタンプ要素Mに対する調節が必要であることを、タイムスタンプアジャスタが判定する。前述したように、ルックアップテーブルの利用によって、または計算によって、出力クロックフィードバックループにおける使用のために第1タイムスタンプ要素Mが調節され、それにより、FIFOバッファ内の実データレベルが目標データレベル範囲内となるように調節される。
【0046】
4では、実データレベルがT3の実データレベルから幾分減少して、目標データレベル範囲内に移動している。よって、T4では、第1タイムスタンプ要素Mに対する調節は行われない。
【0047】
5では、実データレベルがT4の実データレベルから幾分減少しているが、依然として目標データレベル範囲内にある。よって、T5では、第1タイムスタンプ要素Mに対する調節は行われない。
【0048】
図7に示す時間T1−T5は、様々な時間フレームを示すものとなり得る。一実施形態においては、時間T1−T5の各々がフレームの各ラインの第1ピクセルP1を表すことができる。別の実施形態では、時間T1−T5の各々が、フレームの1ラインおきの第1ピクセルP1を表わすことができる。さらに別の実施形態では、時間T1−T5の各々は、すべてのフレームの最初のピクセルP1を表わすことができる。さらに別の実施形態では、時間T1−T5の各々は、予め設定された実時間間隔を表わすことができる。なお、時間T1−T5によって提示されるそれら例は、説明を簡単にするために与えたものであり、T1−T5についてその他の多くの可能性が存在し、それには均一および不均一な時間間隔が含まれることに留意されたい。
【0049】
図8は、受信側デバイスにおける出力クロック周波数を補正する方法の一実施形態を示すフローチャートである。この実施形態では、ステップ870において、前述したように、予め設定された時間間隔でタイムスタンプアジャスタがFIFOバッファの状態を監視する。時間間隔は、少なくとも部分的に時間に基づくものとすることができ、あるいは、非排他的な一例として所与のフレームの各ラインの第1ピクセルクロックにおけるような、ある事象に少なくとも部分的に基づくものとすることができる。
【0050】
ステップ872では、タイムスタンプアジャスタが、FIFOバッファ内の実データレベルが予め設定した目標データレベル範囲外となるかどうかを判定する。実データレベルがこの範囲外とはならない場合、例えば、目標データレベル範囲内となる場合には、タイムスタンプアジャスタが次の予め設定された時間間隔まで待機して、ステップ870を繰り返す。実データレベルが予め設定した目標データレベル範囲外であると判定された場合には、タイムスタンプアジャスタが、前述したようにアルゴリズムを使用してステップ874で乗数を計算する。ある実施形態では、そのアルゴリズムが、FIFOバッファ内の実データレベルの別のデータレベルとの比較に少なくとも部分的に基づいたものとなる。一実施形態では、実データレベルが比較されるデータレベルを、所望のデータレベルとすることができる。若しくは、実データレベルが比較されるデータレベルを、上限または下限レベルの一方とすることができる。
【0051】
ステップ876では、計算された乗数を第1タイムスタンプ要素に乗じて、第1タイムスタンプ要素を上または下に調節することが行われる。
【0052】
ステップ878では、調節済みの第1タイムスタンプ要素がPLLのような出力クロックフィードバックループで利用されて、出力クロック周波数が補正される。この方法により、FIFOバッファにおけるオーバフローまたはアンダフローの発生を低減することができる。このプロセスは、ステップ870において適当な時間間隔で繰り返される。
【0053】
図9は、受信側デバイスの出力クロック周波数を補正するための方法の別の実施形態を示すフローチャートである。この実施形態では、ステップ980において、前述したように、タイムスタンプアジャスタが予め設定した時間間隔でFIFOバッファの状態を監視する。時間間隔は、少なくとも部分的に時間に基づくものとすることができ、あるいは、非排他的な一例として所与のフレームの各ラインの第1ピクセルクロックにおけるような、ある事象に少なくとも部分的に基づくものとすることができる。
【0054】
ステップ982では、タイムスタンプアジャスタが、FIFOバッファ内の実データレベルが予め設定した目標データレベル範囲外となるかどうかを判定する。実データレベルがこの範囲外とはならない場合、例えば、目標データレベル範囲内となる場合には、タイムスタンプアジャスタが次の予め設定された時間間隔まで待機して、ステップ980を繰り返す。実データレベルが予め設定した目標データレベル範囲外であると判定された場合には、タイムスタンプアジャスタが、前述したようにルックアップテーブルまたはレジスタから、ステップ984で乗数を決定する。
【0055】
ステップ986では、ルックアップテーブルまたはレジスタからの乗数を第1タイムスタンプ要素に乗じて、第1タイムスタンプ要素を上または下に調節することが行われる。
【0056】
ステップ988では、調節済みの第1タイムスタンプ要素がPLLのような出力クロックフィードバックループで利用されて、出力クロック周波数が補正される。この方法により、FIFOバッファにおけるオーバフローまたはアンダフローの発生を低減することができる。このプロセスは、ステップ980において適当な時間間隔で繰り返される。
【0057】
本明細書に詳細に示して開示した具体的なシステム10および出力クロック補正回路15は、十分に、前述した利点を与えて目的を達成することができるものであるが、それらは1またはそれ以上の実施形態の単なる例示であり、添付の請求の範囲に記載されたもの以外に、本明細書に示す構造または意匠の細部に限定されることを意図するものではないことに留意されたい。

【特許請求の範囲】
【請求項1】
受信側デバイスにおける出力クロックの周波数を補正するための回路であって、前記受信側デバイスが、データおよびタイムスタンプ要素を送信側デバイスから受信するものであり、前記タイムスタンプ要素が、前記出力クロックの所望の周波数に少なくとも部分的に基づくものである回路において、
前記出力クロックの位相および前記出力クロックの周波数の少なくとも一方を調節する出力クロックフィードバックループであって、前記調節が前記タイムスタンプ要素に少なくとも部分的に基づくものとなる出力クロックフィードバックループと、
前記データを一時的に格納するFIFOバッファと、
前記FIFOバッファの状態に基づいて前記タイムスタンプ要素を選択的に調節するタイムスタンプアジャスタとを備えることを特徴とする回路。
【請求項2】
請求項1に記載の回路において、
前記出力クロックフィードバックループが位相ロックループであることを特徴とする回路。
【請求項3】
請求項1に記載の回路において、
前記FIFOバッファが実データレベルを有し、前記FIFOバッファの状態が前記実データレベルに少なくとも部分的に基づくものとなることを特徴とする回路。
【請求項4】
請求項3に記載の回路において、
前記FIFOバッファが、上限および下限を含む目標データレベル範囲を有し、前記FIFOバッファ内の前記実データレベルが前記上限を上回ったときに、前記タイムスタンプアジャスタが前記タイムスタンプ要素を調節することを特徴とする回路。
【請求項5】
請求項4に記載の回路において、
前記FIFOバッファが、前記目標データレベル範囲内の所望のデータレベルを有し、前記タイムスタンプアジャスタが、前記FIFOバッファ内の前記実データレベルと前記所望のデータレベルとの間の差に等しいオフセットに少なくとも部分的に基づく割合だけ、前記タイムスタンプ要素を増加させることを特徴とする回路。
【請求項6】
請求項5に記載の回路において、
前記タイムスタンプアジャスタが、予め設定された時間間隔で前記FIFOバッファ内の前記実データレベルを監視するバッファモニタを含み、前記割合がさらに、前記予め設定された時間間隔の長さに少なくとも部分的に基づくものとなることを特徴とする回路。
【請求項7】
請求項3に記載の回路において、
前記FIFOバッファが、下限を含む目標データレベル範囲を有し、前記FIFOバッファ内の前記実データレベルが前記下限を下回ったときに、前記タイムスタンプアジャスタが前記タイムスタンプ要素を調節することを特徴とする回路。
【請求項8】
請求項7に記載の回路において、
前記FIFOバッファが、前記目標データレベル範囲内の所望のデータレベルを有し、前記タイムスタンプアジャスタが、前記実データレベルと前記所望のデータレベルとの間のオフセットに少なくとも部分的に基づく割合だけ、前記タイムスタンプ要素を減少させることを特徴とする回路。
【請求項9】
請求項8に記載の回路において、
前記タイムスタンプアジャスタが、前記FIFOバッファ内の前記実データレベルを一定期間毎に監視するバッファモニタを含み、当該バッファモニタが予め設定された時間間隔で前記FIFOバッファの状態を監視し、前記割合がさらに、前記予め設定された時間間隔の長さに少なくとも部分的に基づくものとなることを特徴とする回路。
【請求項10】
請求項3に記載の回路において、
前記FIFOバッファが、上限および下限を含む目標データレベル範囲を備え、前記FIFOバッファの前記実データレベルが前記下限と前記上限との間にあるときに、前記タイムスタンプアジャスタが前記タイムスタンプ要素を調節しないことを特徴とする回路。
【請求項11】
請求項1に記載の回路において、
前記FIFOバッファが実データレベルを有し、前記状態が前記FIFOバッファ内の前記実データレベルの経時的変化に少なくとも部分的に基づくものとなることを特徴とする回路。
【請求項12】
請求項1に記載の回路において、
前記タイムスタンプアジャスタが、前記FIFOバッファの状態を一定期間毎に監視するバッファモニタを含むことを特徴とする回路。
【請求項13】
請求項12に記載の回路において、
前記バッファモニタが、予め設定された時間間隔で前記FIFOバッファの状態を監視することを特徴とする回路。
【請求項14】
請求項12に記載の回路において、
前記受信側デバイスが、複数のピクセルが含まれるラインを有するビデオ出力を含み、前記予め設定された時間間隔が、1ライン当たりのピクセル数および前記出力クロックの周波数に少なくとも部分的に基づくものとなることを特徴とする回路。
【請求項15】
請求項12に記載の回路において、
前記受信側デバイスが、複数のラインを有するビデオ出力を含み、各ラインが複数のピクセルを有し、前記予め設定された時間間隔が、前記ビデオ出力のライン数に基づくものとなることを特徴とする回路。
【請求項16】
請求項1に記載の回路において、
前記タイムスタンプアジャスタが、計算に基づく量だけ、前記タイムスタンプ要素を調節することを特徴とする回路。
【請求項17】
請求項1に記載の回路において、
前記タイムスタンプアジャスタが、ルックアップテーブルから決定される量だけ、前記タイムスタンプ要素を調節することを特徴とする回路。
【請求項18】
請求項1に記載の回路において、
前記FIFOバッファがラインバッファであることを特徴とする回路。
【請求項19】
請求項1に記載の回路を含むことを特徴とする受信側デバイス。
【請求項20】
受信側デバイスにおける出力クロックの周波数を補正するための方法において、
出力クロックフィードバックループにより、前記出力クロックの位相および前記出力クロックの周波数の少なくとも一方を調節するステップであって、前記調節が、前記受信側デバイスにより受信されるタイムスタンプ要素に少なくとも部分的に基づくものとなるステップと、
前記受信側デバイスにより受信されたデータをFIFOバッファ内に一時的に格納するステップと、
タイムスタンプアジャスタにより、前記FIFOバッファの状態に基づいて前記タイムスタンプ要素を選択的に調節するステップとを備えることを特徴とする方法。
【請求項21】
請求項20に記載の方法において、
前記出力クロックフィードバックループが位相ロックループであることを特徴とする方法。
【請求項22】
請求項20に記載の方法において、
前記選択的に調節するステップが、前記FIFOバッファの実データレベルに少なくとも部分的に基づく量だけ前記タイムスタンプ要素を調節するステップを含むことを特徴とする方法。
【請求項23】
請求項20に記載の方法において、
前記選択的に調節するステップが、前記FIFOバッファの実データレベルが前記FIFOバッファの目標データレベル範囲外となったときに、前記タイムスタンプ要素を調節するステップを含むことを特徴とする方法。
【請求項24】
請求項23に記載の方法において、
前記選択的に調節するステップが、前記FIFOバッファ内の前記実データレベルと所望のデータレベルとの間の差に等しいオフセットに少なくとも部分的に基づく割合だけ、前記タイムスタンプ要素を調節するステップを含むことを特徴とする方法。
【請求項25】
請求項23に記載の方法において、
前記選択的に調節するステップが、前記FIFOバッファの前記実データレベルが前記目標データレベル範囲内にあるときに、前記タイムスタンプ要素を調節しないステップを含むことを特徴とする方法。
【請求項26】
請求項20に記載の方法において、
前記選択的に調節するステップが、前記状態を前記FIFOバッファ内の実データレベルの経時的変化に少なくとも部分的に基づくものとするステップを含むことを特徴とする方法。
【請求項27】
請求項20に記載の方法において、
前記選択的に調節するステップが、バッファモニタにより、予め設定された時間間隔で前記FIFOバッファの状態を監視するステップを含むことを特徴とする方法。
【請求項28】
請求項20に記載の方法において、
前記選択的に調節するステップが、アルゴリズムに基づく量だけ前記タイムスタンプ要素を調節するステップを含むことを特徴とする方法。
【請求項29】
請求項20に記載の方法において、
前記選択的に調節するステップが、ルックアップテーブルから決定される量だけ前記タイムスタンプ要素を調節するステップを含むことを特徴とする方法。
【請求項30】
請求項20に記載の方法において、
前記一時的に格納するステップが、前記FIFOバッファをラインバッファとするステップを含むことを特徴とする方法。
【請求項31】
受信側デバイスにおける出力クロックの周波数を補正するための回路であって、前記受信側デバイスが、データおよびタイムスタンプ要素を送信側デバイスから受信するものであり、前記タイムスタンプ要素が、前記出力クロックの所望の周波数に少なくとも部分的に基づくものである回路において、
前記出力クロックの位相および前記出力クロックの周波数の少なくとも一方を調節する位相ロックループであって、前記調節が前記タイムスタンプ要素に少なくとも部分的に基づくものとなる位相ロックループと、
前記データを一時的に格納するFIFOバッファであって、実データレベルと、上限および下限を有する目標データレベル範囲と、前記上限と前記下限との間にある所望のデータレベルとを有するFIFOバッファと、
前記実データレベルが前記目標データレベル範囲外にあるときのみ、前記FIFOバッファの前記実データレベルと前記所望レベルとの差に基づく量だけ、前記タイムスタンプ要素を調節するタイムスタンプアジャスタとを備えることを特徴とする回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公表番号】特表2011−524723(P2011−524723A)
【公表日】平成23年9月1日(2011.9.1)
【国際特許分類】
【出願番号】特願2011−514737(P2011−514737)
【出願日】平成21年6月16日(2009.6.16)
【国際出願番号】PCT/US2009/047456
【国際公開番号】WO2009/155263
【国際公開日】平成21年12月23日(2009.12.23)
【出願人】(500370562)インテグレイテッド・デバイス・テクノロジー・インコーポレイテッド (1)
【Fターム(参考)】