(57)【要約】  データ（１６）およびタイムスタンプ要素（１８）を受信する受信側デバイス（１３）の出力クロックの周波数を補正するための出力クロック補正回路（１４）は、出力クロックフィードバックループ（２０）、ＦＩＦＯバッファ（２２）およびタイムスタンプアジャスタ（２４）を含む。出力クロックフィードバックループ（２０）は、タイムスタンプ要素（１８）に基づいて出力クロックの位相および／または周波数を調節する。ＦＩＦＯバッファ（２２）は、一時的にデータを格納する。タイムスタンプアジャスタ（２４）は、ＦＩＦＯバッファの状態に基づいてタイムスタンプ要素を選択的に調節する。一実施形態では、前記状態が、ＦＩＦＯバッファ内の実データレベルに少なくとも部分的に基づくものとなる。別の実施形態では、ＦＩＦＯバッファ（２２）が目標データレベル範囲を有し、ＦＩＦＯバッファ内の実データレベルがこの範囲外となったときに、タイムスタンプ要素が調節される。【選択図】図１
2011524723.tif 000002
【特許請求の範囲】
【請求項１】
受信側デバイスにおける出力クロックの周波数を補正するための回路であって、前記受信側デバイスが、データおよびタイムスタンプ要素を送信側デバイスから受信するものであり、前記タイムスタンプ要素が、前記出力クロックの所望の周波数に少なくとも部分的に基づくものである回路において、
前記出力クロックの位相および前記出力クロックの周波数の少なくとも一方を調節する出力クロックフィードバックループであって、前記調節が前記タイムスタンプ要素に少なくとも部分的に基づくものとなる出力クロックフィードバックループと、
前記データを一時的に格納するＦＩＦＯバッファと、
前記ＦＩＦＯバッファの状態に基づいて前記タイムスタンプ要素を選択的に調節するタイムスタンプアジャスタとを備えることを特徴とする回路。
【請求項２】
請求項１に記載の回路において、
前記出力クロックフィードバックループが位相ロックループであることを特徴とする回路。
【請求項３】
請求項１に記載の回路において、
前記ＦＩＦＯバッファが実データレベルを有し、前記ＦＩＦＯバッファの状態が前記実データレベルに少なくとも部分的に基づくものとなることを特徴とする回路。
【請求項４】
請求項３に記載の回路において、
前記ＦＩＦＯバッファが、上限および下限を含む目標データレベル範囲を有し、前記ＦＩＦＯバッファ内の前記実データレベルが前記上限を上回ったときに、前記タイムスタンプアジャスタが前記タイムスタンプ要素を調節することを特徴とする回路。
【請求項５】
請求項４に記載の回路において、
前記ＦＩＦＯバッファが、前記目標データレベル範囲内の所望のデータレベルを有し、前記タイムスタンプアジャスタが、前記ＦＩＦＯバッファ内の前記実データレベルと前記所望のデータレベルとの間の差に等しいオフセットに少なくとも部分的に基づく割合だけ、前記タイムスタンプ要素を増加させることを特徴とする回路。
【請求項６】
請求項５に記載の回路において、
前記タイムスタンプアジャスタが、予め設定された時間間隔で前記ＦＩＦＯバッファ内の前記実データレベルを監視するバッファモニタを含み、前記割合がさらに、前記予め設定された時間間隔の長さに少なくとも部分的に基づくものとなることを特徴とする回路。
【請求項７】
請求項３に記載の回路において、
前記ＦＩＦＯバッファが、下限を含む目標データレベル範囲を有し、前記ＦＩＦＯバッファ内の前記実データレベルが前記下限を下回ったときに、前記タイムスタンプアジャスタが前記タイムスタンプ要素を調節することを特徴とする回路。
【請求項８】
請求項７に記載の回路において、
前記ＦＩＦＯバッファが、前記目標データレベル範囲内の所望のデータレベルを有し、前記タイムスタンプアジャスタが、前記実データレベルと前記所望のデータレベルとの間のオフセットに少なくとも部分的に基づく割合だけ、前記タイムスタンプ要素を減少させることを特徴とする回路。
【請求項９】
請求項８に記載の回路において、
前記タイムスタンプアジャスタが、前記ＦＩＦＯバッファ内の前記実データレベルを一定期間毎に監視するバッファモニタを含み、当該バッファモニタが予め設定された時間間隔で前記ＦＩＦＯバッファの状態を監視し、前記割合がさらに、前記予め設定された時間間隔の長さに少なくとも部分的に基づくものとなることを特徴とする回路。
【請求項１０】
請求項３に記載の回路において、
前記ＦＩＦＯバッファが、上限および下限を含む目標データレベル範囲を備え、前記ＦＩＦＯバッファの前記実データレベルが前記下限と前記上限との間にあるときに、前記タイムスタンプアジャスタが前記タイムスタンプ要素を調節しないことを特徴とする回路。
【請求項１１】
請求項１に記載の回路において、
前記ＦＩＦＯバッファが実データレベルを有し、前記状態が前記ＦＩＦＯバッファ内の前記実データレベルの経時的変化に少なくとも部分的に基づくものとなることを特徴とする回路。
【請求項１２】
請求項１に記載の回路において、
前記タイムスタンプアジャスタが、前記ＦＩＦＯバッファの状態を一定期間毎に監視するバッファモニタを含むことを特徴とする回路。
【請求項１３】
請求項１２に記載の回路において、
前記バッファモニタが、予め設定された時間間隔で前記ＦＩＦＯバッファの状態を監視することを特徴とする回路。
【請求項１４】
請求項１２に記載の回路において、
前記受信側デバイスが、複数のピクセルが含まれるラインを有するビデオ出力を含み、前記予め設定された時間間隔が、１ライン当たりのピクセル数および前記出力クロックの周波数に少なくとも部分的に基づくものとなることを特徴とする回路。
【請求項１５】
請求項１２に記載の回路において、
前記受信側デバイスが、複数のラインを有するビデオ出力を含み、各ラインが複数のピクセルを有し、前記予め設定された時間間隔が、前記ビデオ出力のライン数に基づくものとなることを特徴とする回路。
【請求項１６】
請求項１に記載の回路において、
前記タイムスタンプアジャスタが、計算に基づく量だけ、前記タイムスタンプ要素を調節することを特徴とする回路。
【請求項１７】
請求項１に記載の回路において、
前記タイムスタンプアジャスタが、ルックアップテーブルから決定される量だけ、前記タイムスタンプ要素を調節することを特徴とする回路。
【請求項１８】
請求項１に記載の回路において、
前記ＦＩＦＯバッファがラインバッファであることを特徴とする回路。
【請求項１９】
請求項１に記載の回路を含むことを特徴とする受信側デバイス。
【請求項２０】
受信側デバイスにおける出力クロックの周波数を補正するための方法において、
出力クロックフィードバックループにより、前記出力クロックの位相および前記出力クロックの周波数の少なくとも一方を調節するステップであって、前記調節が、前記受信側デバイスにより受信されるタイムスタンプ要素に少なくとも部分的に基づくものとなるステップと、
前記受信側デバイスにより受信されたデータをＦＩＦＯバッファ内に一時的に格納するステップと、
タイムスタンプアジャスタにより、前記ＦＩＦＯバッファの状態に基づいて前記タイムスタンプ要素を選択的に調節するステップとを備えることを特徴とする方法。
【請求項２１】
請求項２０に記載の方法において、
前記出力クロックフィードバックループが位相ロックループであることを特徴とする方法。
【請求項２２】
請求項２０に記載の方法において、
前記選択的に調節するステップが、前記ＦＩＦＯバッファの実データレベルに少なくとも部分的に基づく量だけ前記タイムスタンプ要素を調節するステップを含むことを特徴とする方法。
【請求項２３】
請求項２０に記載の方法において、
前記選択的に調節するステップが、前記ＦＩＦＯバッファの実データレベルが前記ＦＩＦＯバッファの目標データレベル範囲外となったときに、前記タイムスタンプ要素を調節するステップを含むことを特徴とする方法。
【請求項２４】
請求項２３に記載の方法において、
前記選択的に調節するステップが、前記ＦＩＦＯバッファ内の前記実データレベルと所望のデータレベルとの間の差に等しいオフセットに少なくとも部分的に基づく割合だけ、前記タイムスタンプ要素を調節するステップを含むことを特徴とする方法。
【請求項２５】
請求項２３に記載の方法において、
前記選択的に調節するステップが、前記ＦＩＦＯバッファの前記実データレベルが前記目標データレベル範囲内にあるときに、前記タイムスタンプ要素を調節しないステップを含むことを特徴とする方法。
【請求項２６】
請求項２０に記載の方法において、
前記選択的に調節するステップが、前記状態を前記ＦＩＦＯバッファ内の実データレベルの経時的変化に少なくとも部分的に基づくものとするステップを含むことを特徴とする方法。
【請求項２７】
請求項２０に記載の方法において、
前記選択的に調節するステップが、バッファモニタにより、予め設定された時間間隔で前記ＦＩＦＯバッファの状態を監視するステップを含むことを特徴とする方法。
【請求項２８】
請求項２０に記載の方法において、
前記選択的に調節するステップが、アルゴリズムに基づく量だけ前記タイムスタンプ要素を調節するステップを含むことを特徴とする方法。
【請求項２９】
請求項２０に記載の方法において、
前記選択的に調節するステップが、ルックアップテーブルから決定される量だけ前記タイムスタンプ要素を調節するステップを含むことを特徴とする方法。
【請求項３０】
請求項２０に記載の方法において、
前記一時的に格納するステップが、前記ＦＩＦＯバッファをラインバッファとするステップを含むことを特徴とする方法。
【請求項３１】
受信側デバイスにおける出力クロックの周波数を補正するための回路であって、前記受信側デバイスが、データおよびタイムスタンプ要素を送信側デバイスから受信するものであり、前記タイムスタンプ要素が、前記出力クロックの所望の周波数に少なくとも部分的に基づくものである回路において、
前記出力クロックの位相および前記出力クロックの周波数の少なくとも一方を調節する位相ロックループであって、前記調節が前記タイムスタンプ要素に少なくとも部分的に基づくものとなる位相ロックループと、
前記データを一時的に格納するＦＩＦＯバッファであって、実データレベルと、上限および下限を有する目標データレベル範囲と、前記上限と前記下限との間にある所望のデータレベルとを有するＦＩＦＯバッファと、
前記実データレベルが前記目標データレベル範囲外にあるときのみ、前記ＦＩＦＯバッファの前記実データレベルと前記所望レベルとの差に基づく量だけ、前記タイムスタンプ要素を調節するタイムスタンプアジャスタとを備えることを特徴とする回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信側デバイスの出力クロック周波数を補正するための回路に関するものである。
【背景技術】
【０００２】
シリアルデータ通信は、各種デバイス間でデータを通信するために使用される。シリアルデータのストリームを受信して正確に復号するには、同期された送信側デバイスおよび受信側デバイス（例えば、ビデオディスプレイ）を含むシステムが必要とされる。多くの場合、受信側デバイスに送信されるシリアルデータのストリームには、ソースクロック信号、例えば、１６２ＭＨｚ（“低下したビットレート”）または２７０ＭＨｚの周波数（“高ビッドレート”）を有するリンクシンボルクロック（Link Symbol Clock）、およびタイムスタンプ情報または“カウンタ”（“Ｍ”および“Ｎ”とも呼ばれる）が含まれる。それらタイプのシステムにおいては、システムの正常機能を高めるために、ソースクロック周波数、例えば、受信側デバイスにおいて２５．１７５ＭＨｚ（例えば、ＶＧＡ）と２６８．５ＭＨｚ（例えば、ＷＱＸＧＡ）との間の範囲内の周波数とは異なる出力クロック周波数を有するストリームクロック（“ピクセルクロック”と呼ばれることもある）のような出力クロックを正確に再生しなければならない。あるシステムでは、ＭおよびＮのタイムスタンプ情報は、送信側デバイスからのデータストリーム内に埋め込まれ、ソースクロックと出力クロック間の相対周波数に関連する。
【０００３】
しかしながら、ソースクロックと出力クロック間の周波数差のため、正確な出力クロックの再生（ストリームクロックリカバリ（“ＳＣＲ”）と呼ばれることもある）は、従来のシステムでは難しい可能性がある。多くのシステムでは、受信側デバイス内でピクセルデータのような出力クロックデータのフローを一時的に格納して制御するために、ラインバッファ（“先入れ先出し”または“ＦＩＦＯ”バッファとも呼ばれる）が使用される。
【０００４】
あるシステムでは、受信側デバイスが、位相ロックループ（“ＰＬＬ”）のようなフィードバックループを使用して出力クロックリカバリ技術を実行することができる。ＰＬＬは、シリアルデータストリームを分析して、受信側デバイスを送信側デバイスと同期させようと試みる。しかしながら、周知のように、ＰＬＬは、ランダムおよび／または決定論的ジッタをもたらして、それが伝送エラーを引き起こす場合がある。このジッタは、絶えず蓄積して、ＦＩＦＯバッファ内のピクセルデータの量に最終的に影響を与える場合がある。例えば、ＦＩＦＯバッファ内のピクセルデータの漸増は、そのようなデータの過剰に繋がる可能性がある。本明細書では、そのことを“オーバーフロー”状態と称する。反対に、ＦＩＦＯバッファ内のピクセルデータの漸減は、そのようなデータの不足に繋がる可能性がある。本明細書では、そのことを“アンダーフロー”状態と称する。オーバーフローまたはアンダーフロー状態の何れにおいても、受信側デバイスのフレームリカバリおよび／または画像安定性に支障を来す場合がある。
【発明の概要】
【０００５】
本発明は、受信側デバイスにおける出力クロックの周波数の補正回路を対象とする。受信側デバイスは、送信側デバイスからデータおよびタイムスタンプ要素を受信する。タイムスタンプ要素は、少なくとも部分的に、出力クロックの所望の周波数に基づくものとなる。一実施形態においては、上記回路が、出力クロックフィードバックループ、ＦＩＦＯバッファおよびタイムスタンプアジャスタを含む。出力クロックフィードバックループは、出力クロックの位相および／または出力クロックの周波数を調節する。この調節は、少なくとも部分的に、タイムスタンプ要素に基づくものとなる。ＦＩＦＯバッファは、一時的にデータを格納する。タイムスタンプアジャスタは、ＦＩＦＯバッファの状態（ステータス）に基づいてタイムスタンプ要素を選択的に調節する。
【０００６】
ある実施形態では、出力クロックフィードバックループが位相ロックループである。一実施形態では、ＦＩＦＯバッファが実データレベルを有し、ＦＩＦＯバッファの状態が、少なくとも部分的に実データレベルに基づくものとなる。別の実施形態では、ＦＩＦＯバッファが、上限および下限を含む目標データレベル範囲を有する。この実施形態では、ＦＩＦＯバッファ内の実データレベルが上限を上回るか、あるいは下限を下回ったときに、タイムスタンプアジャスタがタイムスタンプ要素を調節する。ＦＩＦＯバッファは、目標データレベル範囲内の所望のデータレベルを有する。一実施形態では、タイムスタンプアジャスタが、ＦＩＦＯバッファ内の実データレベルと所望のデータレベルとの間の差に等しいオフセットに少なくとも部分的に基づく割合だけ、タイムスタンプ要素を調節する。別の実施形態では、上記状態が、ＦＩＦＯバッファ内の実データレベルの経時的変化に少なくとも部分的に基づくものとなる。
【０００７】
幾つかの実施形態では、タイムスタンプアジャスタが、予め設定された時間間隔でＦＩＦＯバッファ内の実データレベルを監視するバッファモニタを含む。一実施形態では、タイムスタンプアジャスタが、計算に基づく量で、タイムスタンプ要素を調節する。別の実施形態では、タイムスタンプアジャスタが、ルックアップテーブルまたはレジスタから決定される量で、タイムスタンプ要素を調節する。
【０００８】
本発明は、受信側デバイスにおける出力クロックの周波数の補正方法も対象とする。
【図面の簡単な説明】
【０００９】
本発明の新規な特徴は、本発明自体と同様に、その構造と動作の両方に関して、付随する説明と併用することにより、添付図面から最も良く理解されるであろう。それら図面においては、同様の符号が同様の部分を指している。
【００１０】
【図１】図１は、タイムスタンプアジャスタを含む本発明の特徴を有する出力クロック補正回路の一実施形態を示す概略的なフロー図である。
【図２】図２は、メインストリームプロセッサを含む受信側デバイスの概略を示すブロック図である。
【図３】図３は、ＦＩＦＯバッファを含むメインストリームプロセッサおよびタイムスタンプアジャスタの一実施形態のブロック図である。
【図４】図４は、複数のラインおよび複数のピクセルクロックを含む受信側デバイスの１フレームの簡略化した部分図である。
【図５】図５は、ＦＩＦＯバッファ内のＦＩＦＯ入力の数の関数として、タイムスタンプアジャスタによる第１タイムスタンプ要素Ｍの変化を示すグラフである。
【図６】図６は、第１タイムスタンプ要素Ｍの変化を決定するためにタイムスタンプアジャスタにより使用され得るルックアップテーブルの一実施形態である。
【図７】図７は、本発明の特徴を有する出力クロック補正回路の使用の結果得られる、時間の関数としてのＦＩＦＯバッファ内の実データレベルを示すグラフである。
【図８】図８は、受信側デバイスの出力クロック周波数を補正するための方法の一実施形態を示すフローチャートである。
【図９】図９は、受信側デバイスの出力クロック周波数を補正するための方法の別の実施形態を示すフローチャートである。
【発明を実施するための形態】
【００１１】
システム１０は、出力クロックの周波数と同様のまたは異なる周波数を有するソースクロックからの出力クロックの周波数を補正する出力クロック補正回路１４（本明細書では、“補正回路”または“回路”と称することもある）を含む。本明細書に記載のように、本発明は、ソースクロックドメイン（source clock domain）から出力クロックドメイン（output clock domain）へのような、任意のクロスクロックドメインデータ伝送システム（cross-clock domain data transport system）に適用することができる。本明細書の説明は主としてビデオシステムと、特に、ストリームクロック補正回路に焦点を合わせているが、本明細書の説明からビデオシステムに対する限定と解釈すべきではないことを認識されたい。例えば、本明細書に開示および記載の補正回路１４は、固定されたソースクロック送信周波数に基づいて受信側デバイスの可変オーディオクロックサンプリング周波数を再生および／または補正する必要があるオーディオアプリケーションにも、同等に有用である場合がある。また、その他の適当なタイプのクロスクロックドメインデータ伝送システムについても、本明細書に開示および記載の技術が有効である。
【００１２】
図１は、送信側デバイス１２および受信側デバイス１３（鎖線の矩形内に図示）を含むシステム１０の一実施形態の概要を与えるフローチャートダイアグラムである。なお、システム１０の代替的な実施形態では、受信側デバイス１３のみを含んで、送信側デバイス１２を省略することができる。受信側デバイス１３は、出力クロック補正回路１４の一実施形態を含む。システムの設計要件に適合させるために、出力クロック補正回路１４の具体的な構造を変えることができることを認識されたい。図１に示す実施形態では、ソースクロックが、送信側デバイス１２から生じるデータストリームに含まれる。ソースクロックは、受信側デバイス１３（図１において外側の破線の矩形として図示）で、最初に直列化されて、その後に、クロックおよびデータリカバリ（“ＣＤＲ”）を介して、再生、すなわち非直列化される。明確にするために、図１にはソースクロックの非直列化が示されていない。
【００１３】
データストリームは、バイトデータのような入力データ１６およびタイムスタンプ情報１８を含む。タイムスタンプ情報１８は、第１タイムスタンプ要素１８および第２タイムスタンプ要素１９（“Ｍ”および“Ｎ”として図１にそれぞれ図示）を含む。ある実施形態では、タイムスタンプ要素１８，１９は、ソースクロックと出力クロックの相対周波数に基づく２４ビットのデータとなり得る。なお、タイムスタンプ要素１８，１９は、２４ビットのデータ以外の情報をその代わりに含むこともできる。
【００１４】
図１に示す実施形態では、出力クロック補正回路１４が、出力クロックフィードバックループ２０（図１に内側の破線の矩形として図示）、ＦＩＦＯバッファ２２およびタイムスタンプアジャスタ２４を含む。出力クロックフィードバックループ２０は、出力クロックの位相および出力クロックの周波数のうちの少なくとも一方を調節する。ある実施形態では、その調節が、タイムスタンプ要素１８，１９の１またはそれ以上に少なくとも部分的に基づくものとなる。より具体的には、一実施形態では、その調節が少なくとも部分的に第１タイムスタンプ要素１８に基づくものとなり、その結果、第１タイムスタンプ要素１８の値が出力クロックの位相および／または周波数の調節の及ぶ範囲に影響を及ぼすものとなる。
【００１５】
一実施形態においては、出力クロックフィードバックループ２０が、当業者に知られた様々なタイプの位相ロックループ（“ＰＬＬ”）回路のうちの一つを含むことができる。ＰＬＬ回路２０の具体的な設計は変更することができる。例えば、図１に示す実施形態では、ＰＬＬ回路２０が、位相周波数検出器２６（“ＰＦＤ”）、電荷ポンプ回路２８（“ＣＰ”）、低域フィルタ３０（“ＬＰＦ”）あるいはその他の種類のフィルタ、および電圧制御発振器３２（“ＶＣＯ”）のうちの１またはそれ以上を含むことができる。なお、１またはそれ以上のそれら構成は、出力クロックフィードバックループ２０から完全に省略することもできる。若しくは、出力クロックフィードバックループ２０は、本発明の趣旨または範囲を逸脱しない範囲で、追加的または代替的なある程度類似の構成を含むことができる。出力クロックフィードバックループ２０は、図１に示す出力クロックフィードバックループ２０よりも複雑であっても、簡素であってもよい。
【００１６】
一実施形態においては、リファレンスクロック３４（図１で“Ｒｅｆ  Ｃｌｋ”として図示）を生成するために、第２タイムスタンプ要素１９（Ｎ）のような整数でソースクロックが割られる。その後、リファレンスクロック３４およびフィードバッククロック信号３６（図１で“ＦＢ  Ｃｌｋ”として図示）は、ＰＦＤ２６を使用して比較される。
【００１７】
ＰＦＤ２６は、必要とされる位相に追尾するために（上または下に）調節する方法を後続の回路に指示する、２つの出力３８Ａ，３８Ｂ（それぞれＵＰまたはＤＮ）を備えることができる。出力３８Ａ，３８Ｂは、ＣＰ２８に供給される。このＣＰは、ＬＰＦ３０の１またはそれ以上のコンデンサに対してより高いまたはより低い電圧信号の何れかを生成するアナログ電流スイッチとすることができる。ＬＰＦ３０は、電圧信号を取り入れて平滑化する。その後、この平滑化された信号は、ＶＣＯ３２に送られる。ＶＣＯ３２からの出力データ４０は、ＦＩＦＯバッファ２２に送信されるとともに、リファレンスクロック３４と比較するために、間接的および周期的にＰＦＤ２６にフィードバックされる。第１タイムスタンプ要素１８（Ｍ）は、除数（divisor）としてこのフィードバックサイクルに組み込まれる。後で詳細に説明するように、タイムスタンプアジャスタ２４は、ＦＩＦＯバッファ２２の状態を監視するバッファモニタ（図示省略）を含む。ＦＩＦＯバッファ２２の状態に基づいて、タイムスタンプアジャスタ２４は、第１タイムスタンプ要素１８を上または下に選択的に調節して、調節済みの第１タイムスタンプ要素１８Ａを生成する。この設計により、システム１０は、より正確に出力クロックを再生することができ、かつ／またはシステム１０のジッタ性能を改善することができる。
【００１８】
図２は、メインストリームプロセッサ２４２を含む受信側デバイス２１３の概略を示すブロック図である。この実施形態では、メインストリームプロセッサが物理層２４４とビデオプロセッサ２４６の間に位置する。ソースクロックは、図２に示すように、ソースクロックドメイン２４８にリンクシンボルクロックを含むことができる。ある実施形態では、入力データ１６（図１に図示）が、復号されたデータバイトおよび／またはＫコード特別シンボルを含むことができる。また、出力データ４０（図１に図示）は、従来から知られているように、データイネーブル（ＤＥ）、Ｈ−ｓｙｎｃ、Ｖ−ｓｙｎｃ等のような、再生された表示タイミング情報とともに、出力クロックドメイン２５０内にピクセルデータを含むことができる。
【００１９】
図３は、メインストリームプロセッサ３４２（破線内に図示）の一実施形態を含むシステム３１０の一部（鎖線内に図示）のブロック図である。図３に示す実施形態では、メインストリームプロセッサ３４２が、アンパックブロック（unpack block）３５２、レーンデマルチプレクサ（lane demultiplexer）３５４、ＦＩＦＯバッファ３２２、表示タイミングジェネレータ３５６およびタイムスタンプアジャスタ３２４を含む。一実施形態においては、アンパックブロック３５２およびＦＩＦＯバッファ３２２の一部が、ソースクロックドメイン３４８内にある。また、ＦＩＦＯバッファ３２２の残部、レーンデマルチプレクサ３５４および表示タイミングジェネレータ３５６は、出力クロックドメイン３５０内にある。さらに、タイムスタンプアジャスタ３２４は、図３に示すようなシステムクロックドメイン３５８内にあってもよい。しかしながら、メインストリームプロセッサ３４２の様々な構成要素は、図３の実施形態に示すドメインとは異なるドメイン内に代替的に含ませることができることを認識されたい。
【００２０】
アンパックブロック３５２の設計は変更することができる。一実施形態においては、アンパックブロック３５２は、物理層２４４（図２に図示）からソース（バイト）データ１６（図１に図示）を引き出すことができ、出力（ピクセル）データ４０（図１に図示）を抽出することができる。ある実施形態では、バイトデータからピクセルデータを抽出するために、循環バッファを使用することができる。あるいは、異なるタイプのバッファを利用することもできる。
【００２１】
一実施形態においては、レーンデマルチプレクサ３５４が、多数のレーンからのデータを組み合わせて、１つの単一ピクセルデータストリームを形成する。
【００２２】
ＦＩＦＯバッファ３２２は、出力データ４０を一時的に格納するメモリを含む。ＦＩＦＯバッファ３２２の設計は変更することができる。一実施形態では、ＦＩＦＯバッファは非同期である。ある実施形態では、図３に示すように、クロック交差（clock crossing）が生じる位置に、ＦＩＦＯバッファ３２２が配置される。例えば、ソースクロックは書込側クロックになり、出力クロックは読取側クロックになり得る。一実施形態においては、ＦＩＦＯバッファ３２２を、幅１２２ビットで深さ６４ビットとすることができる。この実施形態では、バッファすることができる最大ピクセルが１レーンにつき６４ピクセル、２レーンにつき１２８ピクセル、４レーンにつき２５６ピクセルである。１２２ビットのＦＩＦＯバッファ幅は、４レーンモード内の４ピクセルと、各ラインの第１ピクセルおよび各フレームの第１ラインのタグ情報のための２の追加ビットのバッファリングに対応する。この実施形態では、（ｉ）１転送単位内の変化、（ｉｉ）ＦＩＦＯバッファが出力クロック変化に対応するために必要とされること、（ｉｉｉ）出力クロックＰＬＬオフセット能力が不安定であること、のうちの１またはそれ以上に基づいて、深さ６４ビットが選択されている。
【００２３】
ある実施形態では、属性パケットからのフレームパラメータおよびＦＩＦＯバッファ３２２からのアベイラビリティに基づいて、表示タイミングジェネレータ３５６が、データイネーブル（ＤＥ）、Ｈ−ｓｙｎｃ、Ｖ−ｓｙｎｃ等のような表示タイミング情報を生成する。
【００２４】
後でより詳細に説明するように、非排他的な一例として、各ラインＬ1−Ｌnの第１ピクセルＰ1のような、ある予め設定された間隔で、ＦＩＦＯバッファ３２２の状態に基づいて、タイムスタンプアジャスタ３２４は、アルゴリズムに基づいて、またはルックアップテーブルあるいはレジスタに基づいて、第１タイムスタンプ要素１８を選択的に調節する。
【００２５】
図４は、複数のラインＬ1−Ｌnおよび複数のピクセルクロックＰ1−Ｐnを含む受信側デバイス４６２の１フレーム４６０の簡略化した部分図である。
【００２６】
様々な同期モードがタイミングリカバリのためにサポートされている。以下では、排他的にそれぞれ使用することができる幾つかの同期モードの非排他的な例を提供する。若しくは、同期モードのうちの１つを、期間中その他の同期モードの１またはそれ以上と結合させることができる。
【００２７】
一実施形態では、タイミングリカバリはライン同期モードで実行できる。このライン同期モードでは、第１ピクセルＰ1のアベイラビリティにより、表示タイミングカウンタをリセットすることができ、各ラインＬ1−Ｌnにバッファされたある一定数のピクセルが存在する。垂直帰線消去期間中、送信側デバイス１２（図１に図示）によってこの期間中に送られる同期情報が存在しないため、表示タイミングカウンタはフリーランモード（後述）で実行することができる。
【００２８】
別の実施形態では、タイミングリカバリはフレーム同期モードで実行することができる。このフレーム同期モードでは、各フレーム４６０が一度だけ同期されることとなり、それを各フレーム４６０の第１ラインＬ1の第１ピクセルＰ1で生じさせことができる。この時点の後は、次のフレームデータが到着するまで、フレームリカバリはフリーランモードとなる。
【００２９】
さらに別の実施形態では、タイミングリカバリをフリーランモードで実行することができる。フリーランモードでは、フレーム同期が少なくとも一度行われ、その後、表示タイミングカウンタがフリーランモードに入る。このモードは、フレーム同期とフリーランモード間で自動スイッチングまたは強制スイッチング（ファームウェアによる）の何れかによって促進される。
【００３０】
さらに別の実施形態では、タイミングリカバリがスタンドアロンモードで実行することができる。スタンドアロンモードでは、受信側デバイス４６２がパターンジェネレータデータを表示し、ビデオＰＬＬがオープンループモードにある。
【００３１】
ＦＩＦＯバッファが各フレーム４６０の第１ピクセルＰ1で空の状態または満杯の状態に近付くと、フレーム同期モードが再びアサートされることとなる。フリーランモードでは、各ラインＬ1−Ｌnの第１ピクセルＰ1で、現在の出力クロックが僅かに速いかあるいは僅かに遅いかどうか（それらは、ＦＩＦＯバッファをアンダフローまたはオーバフローの危険にさらす可能性がある）を判定するために、ＦＩＦＯバッファの状態が監視あるいは検査される。各ラインＬ1−Ｌnの最後で、必要な場合には、ルックアップテーブルに従って、または計算によって、第１スタンプ要素Ｍを調節することができる。
【００３２】
図５は、ＦＩＦＯバッファ内のＦＩＦＯ入力の数の関数として、タイムスタンプアジャスタによる第１タイムスタンプ要素の変化（デルタＭ）の一実施形態を示すグラフである。一実施形態では、ＦＩＦＯバッファは、上限（図５で“Ｕ”として図示）、下限（図５で“Ｌ”として図示）および所望のデータレベル（図５で“Ｄ”として図示）を含む目標データレベル範囲を有する。一実施形態では、所望のデータレベルがＦＩＦＯ深さの約２分の１である。代替的な実施形態では、所望のデータレベルを、ＦＩＦＯ深さの２分の１よりも大きくまたは小さくすることができる。図５に示す実施形態では、データレベルに対応するＦＩＦＯ入力の数がＵとＤとの間に含まれるときには、第１タイムスタンプ要素Ｍに対する調節は行われない。目標データレベル範囲においては、ＦＩＦＯは通常状態で起動しており、オーバフローまたはアンダフローの差し迫った危険が低減されていると考えられる。
【００３３】
しかしながら、データレベルに対応するＦＩＦＯ入力の数がＵを上回るときに、第１タイムスタンプ要素Ｍに対する正の調節が行われる。図１を再び参照すると、ＰＬＬにおいて除数として使用されるＭの値を増加させることにより、出力クロックの周波数が低下する。出力クロック周波数を低下させることにより、データは、ＦＩＦＯバッファ内に急速に入ることも蓄積することもなくなる。その結果、ＦＩＦＯバッファ内のデータレベルが低下することとなる。デルタＭについて適切な値が使用される場合、ＦＩＦＯバッファ内のデータレベルが目標データレベル範囲内に留まるように制御することができる。
【００３４】
反対に、データレベルに対応するＦＩＦＯ入力の数がＬを下回るときには、第１タイムスタンプ要素Ｍに対する負の調節が行われる。ＰＬＬにおいて除数として使用されるＭの値を減少させることにより、出力クロックの周波数が増加する。出力クロック周波数を増加させることにより、データはＦＩＦＯバッファ内により速く入って蓄積する。その結果、ＦＩＦＯバッファ内のデータレベルが増大することとなり、上述したように、目標データレベル範囲内に留まることができる。
【００３５】
代替的な実施形態では、状態バッファモニタは、上述したものとは幾分異なる方法で、ＦＩＦＯバッファの状態を監視する。この実施形態では、監視されるＦＩＦＯバッファの状態が、少なくとも部分的に、ＦＩＦＯバッファ内の実データレベルの経時的な変化に基づくものとなる。そのような一実施形態では、タイムスタンプアジャスタが第１タイムスタンプ要素Ｍを調節する必要があるかどうかを判定するために、バッファモニタが経時変化の速度を監視する。したがって、たとえ実データレベルが目標データレベル範囲内にあっても、タイムスタンプアジャスタが第１タイムスタンプ要素Ｍを調節する必要があると決定する程度に、実データレベルの変化の速度および／または方向が十分に速い場合もある。反対に、たとえデータレベルが目標データレベル範囲外にあっても、タイムスタンプアジャスタが第１タイムスタンプ要素Ｍを調節する必要がないような状態に、実データレベルの変化の速度および／または方向がある場合もある。つまり、一実施形態において、タイムスタンプアジャスタは、実データレベルおよびその変化の速度および／または方向に基づいて、将来の時点で実データレベルが目標データレベル範囲内にあるかどうかを予測することができる。
【００３６】
図６は、第１タイムスタンプ要素Ｍの変化を決定するためにタイムスタンプアジャスタにより使用され得るルックアップテーブルの非排他的な一例である。使用できる実際のルックアップテーブルは、非排他的な例として、ＦＩＦＯバッファのサイズ、受信側デバイスの１ライン当たりのピクセル数、および／またはある許容レベルの要件に依存して変わることがある。換言すれば、図６に示すルックアップテーブルは、説明を容易にするためだけに提供するものであり、限定を意図または意味するものではない。例えば、より狭いまたは広い目標データレベル範囲が、ある応用では必要となる場合もある。図６に示す実施例においては、目標データレベル範囲が２４のＦＩＦＯ入力と４０のＦＩＦＯ入力の間にある。この実施形態では、ＦＩＦＯ入力の数が２４と４０の間にある場合に、第１タイムスタンプ要素Ｍに対する調節は行われない。しかしながら、仮に、ＦＩＦＯ入力の数が１６と２４の間に含まれる場合には、この例では、デルタＭが−８０と等しくなり、よってＭが８０だけ減少する。ＦＩＦＯ入力の数が４８と５６の間に含まれる場合には、この例では、デルタＭが＋１６０と等しくなり、よってＭが１６０だけ増加する。
【００３７】
なお、ルックアップテーブルは、システム１０の設計要件に適合するように、図６に示すものよりも緻密にするようにしても、またはその反対にするようにしてもよい。すなわち、連続するデルタＭ値はより段階的にするようにしても、あるいはそうでなくてもよく、デルタＭ値の変化に必要なＦＩＦＯ入力の数は、より狭い間隔または広い間隔等であってもよい。
【００３８】
図６に示すルックアップテーブルの実施形態では、目標データレベル範囲がＦＩＦＯバッファの深さの特定の割合を反映するように、目標データレベル範囲をプリセットすることができる。例えば、この実施形態における目標データレベル範囲は、１６、すなわち６４の合計深さの２５％である。非排他的な代替的実施形態では、目標データレベル範囲は、ＦＩＦＯバッファの合計深さの約７５％，５０％，４０％，３０％，２０％，１０％または５％よりも小さくすることができる。さらに別の実施形態では、目標データレベル範囲を所望のデータレベルと等しくすることができる。すなわち、所望のデータレベルからの任意の偏差によって、タイムスタンプアジャスタによる第１タイムスタンプ要素Ｍの調節が行われるように、目標データレベル範囲をゼロとすることができる。
【００３９】
さらに別の代替的な実施形態では、様々な時点で、すなわち、予め設定された間隔またはその他の時間枠スキームで、適切なデルタＭを計算するためにアルゴリズムを適用することができる。そのような一実施形態においては、デルタＭを計算するために、以下のアルゴリズムを使用することができる。
【数１】
2011524723.tif 000003
【００４０】
上記方程式において、ＦＩＦＯオフセットは、特定の時点、すなわちフレームの各ラインＬ1−Ｌnの第１ピクセルＰ1におけるＦＩＦＯバッファ内の所望のデータレベルと実データレベルとの間の差である。また、ＨTotalは、受信側デバイスの各水平ラインのピクセル数である。この実施形態では、第１タイムスタンプ要素が調節されるのかどうかと、その調節されるときを決定するために、このアルゴリズムに基づいて、デルタＭについて上限および下限を予め設定することができる。つまり、デルタＭの絶対値がある値より小さい場合、第１タイムスタンプ要素Ｍに対する調節は行われない。反対に、デルタＭの絶対値がある値より大きい場合、第１タイムスタンプ要素Ｍに対する調節が行われる。
【００４１】
第１タイムスタンプ要素Ｍに対する調節は、アルゴリズムから計算される割合に基づく乗数（multiplier）の形態を取ることができる。例えば、特定の時点におけるＦＩＦＯオフセットが＋３２であり、ＨTotalが２０００である場合には、データがＦＩＦＯバッファに入る周波数を３２／２０００＝０．０１６または１．６％だけ減少させる必要がある。したがって、出力クロックフィードバックループ（例えば、ＰＬＬ）において使用される除数（調整されたＭ）がより大きくなるように、第１タイムスタンプ要素Ｍを１．６％だけ増加させるべきであり、それにより、データがＦＩＦＯバッファに入る度数が効果的に遅くなる。その結果として、ＦＩＦＯバッファ内のピクセルデータの蓄積が少なくなり、それによりオーバフローの可能性が低下する。
【００４２】
なお、上述したアルゴリズムは可能性のある多くのアルゴリズムのうちのごく一例であって、限定を意図または意味するものではなく、第１タイムスタンプ要素Ｍに対する任意の調節がＦＩＦＯバッファの状態に基づくものであればよい。
【００４３】
図７は、出力クロック補正回路の使用の結果得られる、時間の関数としてのＦＩＦＯバッファ内の実データレベルを示す例示的なグラフである。この実施例では、Ｔ1において、ＦＩＦＯバッファ内の実データレベル（ＦＩＦＯ入力）は、所望のレベルにあり、そのレベルは目標データレベル範囲内にある。したがって、Ｔ1では、第１タイムスタンプ要素Ｍに対する調節は行われない。
【００４４】
Ｔ2では、実データレベルがＴ1の実データレベルから幾分増加しているが、まだ目標データレベル範囲内にある。したがって、Ｔ2では、第１タイムスタンプ要素Ｍに対する調節は行われない。
【００４５】
Ｔ3では、実データレベルが目標データレベル範囲の上限Ｕよりも上に増加している。したがって、Ｔ3では、第１タイムスタンプ要素Ｍに対する調節が必要であることを、タイムスタンプアジャスタが判定する。前述したように、ルックアップテーブルの利用によって、または計算によって、出力クロックフィードバックループにおける使用のために第１タイムスタンプ要素Ｍが調節され、それにより、ＦＩＦＯバッファ内の実データレベルが目標データレベル範囲内となるように調節される。
【００４６】
Ｔ4では、実データレベルがＴ3の実データレベルから幾分減少して、目標データレベル範囲内に移動している。よって、Ｔ4では、第１タイムスタンプ要素Ｍに対する調節は行われない。
【００４７】
Ｔ5では、実データレベルがＴ4の実データレベルから幾分減少しているが、依然として目標データレベル範囲内にある。よって、Ｔ5では、第１タイムスタンプ要素Ｍに対する調節は行われない。
【００４８】
図７に示す時間Ｔ1−Ｔ5は、様々な時間フレームを示すものとなり得る。一実施形態においては、時間Ｔ1−Ｔ5の各々がフレームの各ラインの第１ピクセルＰ1を表すことができる。別の実施形態では、時間Ｔ1−Ｔ5の各々が、フレームの１ラインおきの第１ピクセルＰ1を表わすことができる。さらに別の実施形態では、時間Ｔ1−Ｔ5の各々は、すべてのフレームの最初のピクセルＰ1を表わすことができる。さらに別の実施形態では、時間Ｔ1−Ｔ5の各々は、予め設定された実時間間隔を表わすことができる。なお、時間Ｔ1−Ｔ5によって提示されるそれら例は、説明を簡単にするために与えたものであり、Ｔ1−Ｔ5についてその他の多くの可能性が存在し、それには均一および不均一な時間間隔が含まれることに留意されたい。
【００４９】
図８は、受信側デバイスにおける出力クロック周波数を補正する方法の一実施形態を示すフローチャートである。この実施形態では、ステップ８７０において、前述したように、予め設定された時間間隔でタイムスタンプアジャスタがＦＩＦＯバッファの状態を監視する。時間間隔は、少なくとも部分的に時間に基づくものとすることができ、あるいは、非排他的な一例として所与のフレームの各ラインの第１ピクセルクロックにおけるような、ある事象に少なくとも部分的に基づくものとすることができる。
【００５０】
ステップ８７２では、タイムスタンプアジャスタが、ＦＩＦＯバッファ内の実データレベルが予め設定した目標データレベル範囲外となるかどうかを判定する。実データレベルがこの範囲外とはならない場合、例えば、目標データレベル範囲内となる場合には、タイムスタンプアジャスタが次の予め設定された時間間隔まで待機して、ステップ８７０を繰り返す。実データレベルが予め設定した目標データレベル範囲外であると判定された場合には、タイムスタンプアジャスタが、前述したようにアルゴリズムを使用してステップ８７４で乗数を計算する。ある実施形態では、そのアルゴリズムが、ＦＩＦＯバッファ内の実データレベルの別のデータレベルとの比較に少なくとも部分的に基づいたものとなる。一実施形態では、実データレベルが比較されるデータレベルを、所望のデータレベルとすることができる。若しくは、実データレベルが比較されるデータレベルを、上限または下限レベルの一方とすることができる。
【００５１】
ステップ８７６では、計算された乗数を第１タイムスタンプ要素に乗じて、第１タイムスタンプ要素を上または下に調節することが行われる。
【００５２】
ステップ８７８では、調節済みの第１タイムスタンプ要素がＰＬＬのような出力クロックフィードバックループで利用されて、出力クロック周波数が補正される。この方法により、ＦＩＦＯバッファにおけるオーバフローまたはアンダフローの発生を低減することができる。このプロセスは、ステップ８７０において適当な時間間隔で繰り返される。
【００５３】
図９は、受信側デバイスの出力クロック周波数を補正するための方法の別の実施形態を示すフローチャートである。この実施形態では、ステップ９８０において、前述したように、タイムスタンプアジャスタが予め設定した時間間隔でＦＩＦＯバッファの状態を監視する。時間間隔は、少なくとも部分的に時間に基づくものとすることができ、あるいは、非排他的な一例として所与のフレームの各ラインの第１ピクセルクロックにおけるような、ある事象に少なくとも部分的に基づくものとすることができる。
【００５４】
ステップ９８２では、タイムスタンプアジャスタが、ＦＩＦＯバッファ内の実データレベルが予め設定した目標データレベル範囲外となるかどうかを判定する。実データレベルがこの範囲外とはならない場合、例えば、目標データレベル範囲内となる場合には、タイムスタンプアジャスタが次の予め設定された時間間隔まで待機して、ステップ９８０を繰り返す。実データレベルが予め設定した目標データレベル範囲外であると判定された場合には、タイムスタンプアジャスタが、前述したようにルックアップテーブルまたはレジスタから、ステップ９８４で乗数を決定する。
【００５５】
ステップ９８６では、ルックアップテーブルまたはレジスタからの乗数を第１タイムスタンプ要素に乗じて、第１タイムスタンプ要素を上または下に調節することが行われる。
【００５６】
ステップ９８８では、調節済みの第１タイムスタンプ要素がＰＬＬのような出力クロックフィードバックループで利用されて、出力クロック周波数が補正される。この方法により、ＦＩＦＯバッファにおけるオーバフローまたはアンダフローの発生を低減することができる。このプロセスは、ステップ９８０において適当な時間間隔で繰り返される。
【００５７】
本明細書に詳細に示して開示した具体的なシステム１０および出力クロック補正回路１５は、十分に、前述した利点を与えて目的を達成することができるものであるが、それらは１またはそれ以上の実施形態の単なる例示であり、添付の請求の範囲に記載されたもの以外に、本明細書に示す構造または意匠の細部に限定されることを意図するものではないことに留意されたい。
【図１】
2011524723.tif 000004
【図２】
2011524723.tif 000005
【図３】
2011524723.tif 000006
【図４】
2011524723.tif 000007
【図５】
2011524723.tif 000008
【図６】
2011524723.tif 000009
【図７】
2011524723.tif 000010
【図８】
2011524723.tif 000011
【図９】
2011524723.tif 000012
【国際調査報告】
2011524723.tif 000013