(57)【特許請求の範囲】
【請求項１】
現在のフレームの第１の部分をディスプレイ装置の第１の部分における表示のために伝送するように構成された第１のディスプレイパイプラインを含む第１の手段と、
前記第１の手段とは異なる第２の手段であって、前記現在のフレームの第２の部分を前記ディスプレイ装置の第２の部分における表示のために伝送するように構成された第２のディスプレイパイプラインを含む前記第２の手段とを備え、
前記第１の手段は、
次のフレームに対応するデータを受信し、
前記第１のディスプレイパイプライン及び前記第２のディスプレイパイプラインの両方が次のフレームの設定データを受信したとき、通常垂直ブランキング期間信号を受信し、前記設定データは、入力/出力フレームのサイズ、ピクセルフォーマット、ソースフレームの位置、出力の宛先のうちの少なくとも１つに対応するパラメータを含み、
前記第１のディスプレイパイプライン又は前記第２のディスプレイパイプラインのいずれかが前記次のフレームの設定データを受信していなかったときは、前記通常垂直ブランキング期間信号とは異なる繰返し垂直ブランキング期間信号を受信し、
前記第２のディスプレイパイプラインが前記次のフレームを駆動するための準備ができていないと判定すると、前記ディスプレイ装置の表示のために前記現在のフレームを再び伝送し、前記判定は前記繰返し垂直ブランキング期間信号を検出することを含んでいる、装置。
【請求項２】
前記次のフレームに対応する前記データは、前記設定データを含む、請求項１に記載の装置。
【請求項３】
前記次のフレームの設定データを受信していない場合、前記第２のディスプレイパイプラインが前記次のフレームを伝送するための準備ができていないことを判別する手段を更に含む、請求項２に記載の装置。
【請求項４】
前記通常垂直ブランキング期間信号を受信することに応じて、前記第１のディスプレイパイプライン及び前記第２のディスプレイパイプラインの両方は、前記次のフレームを処理するように構成され、前記繰返し垂直ブランキング期間信号を受信することに応じて、前記第１のディスプレイパイプライン及び前記第２のディスプレイパイプラインの両方は、前記現在のフレームを再び処理するように構成される、請求項１に記載の装置。
【請求項５】
前記第１のディスプレイパイプライン及び前記第２のディスプレイパイプラインの各々は、通常垂直ブランキング期間信号又は繰返し垂直ブランキング期間信号のいずれかを伝送するためにタイミング生成器を含み、前記装置は、前記第１のディスプレイパイプライン及び前記第２のディスプレイパイプラインの両方にとってのマスタタイミング生成器となるように、少なくとも１つのタイミング生成器をプログラムするように構成され、各ディスプレイパイプラインは、前記次のフレームのフレームパケットを受信するときに、前記第１のディスプレイパイプラインの第１のタイミング生成器及び前記第２のディスプレイパイプラインの第２のタイミング生成器に通知を送信するように構成される、請求項４に記載の装置。
【請求項６】
前記第１のディスプレイパイプライン及び前記第２のディスプレイパイプラインの両方は、同じ通常垂直ブランキング期間信号及び繰返し垂直ブランキング期間信号を利用するように構成される、請求項５に記載の装置。
【請求項７】
第１のディスプレイパイプラインによって、ディスプレイ装置の第１の部分における表示のために現在のフレームの第１の部分を伝送することと、
第２のディスプレイパイプラインによって、前記ディスプレイ装置の第２の部分おける表示のために現在のフレームの第２の部分を伝送することと、
前記第１のディスプレイパイプラインによって、次のフレームに対応するデータを受信することと、
前記第１のディスプレイパイプライン及び前記第２のディスプレイパイプラインの両方が次のフレームの設定データを受信したとき、通常垂直ブランキング期間信号を受信することであって、前記設定データは、入力/出力フレームのサイズ、ピクセルフォーマット、ソースフレームの位置、出力の宛先のうちの少なくとも１つに対応するパラメータを含むことと、
前記第１のディスプレイパイプライン又は前記第２のディスプレイパイプラインのいずれかが前記次のフレームの設定データを受信していなかったときは、前記通常垂直ブランキング期間信号とは異なる繰返し垂直ブランキング期間信号を受信することと、
前記第２のディスプレイパイプラインが前記次のフレームを駆動するための準備ができていないと判定すると、前記ディスプレイ装置の表示のために前記現在のフレームを再び伝送することであって、前記判定は前記繰返し垂直ブランキング期間信号を検出することを含んでいること、を含む、方法。
【請求項８】
前記次のフレームに対応する前記データは、前記設定データを含む、請求項７に記載の方法。
【請求項９】
前記次のフレームの設定データを受信していない場合、前記第２のディスプレイパイプラインが前記次のフレームを伝送するための準備ができていないことを判別することを更に含む、請求項８に記載の方法。
【請求項１０】
前記通常垂直ブランキング期間信号を受信することに応じて、前記第１のディスプレイパイプライン及び前記第２のディスプレイパイプラインの両方によって、前記次のフレームが処理され、前記繰返し垂直ブランキング期間信号を受信することに応じて、前記第１のディスプレイパイプライン及び前記第２のディスプレイパイプラインの両方によって、前記現在のフレームが再び処理される、請求項７に記載の方法。
【請求項１１】
前記第１のディスプレイパイプライン及び前記第２のディスプレイパイプラインの両方によって、同じ通常垂直ブランキング期間信号及び繰返し垂直ブランキング期間信号を利用することを更に含む、請求項１０に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
（技術分野）
【０００２】
本明細書に記述する実施形態は、グラフィカル情報処理の分野に関し、特に、画像フレームの別々の部分を分割ディスプレイに対して駆動するために多重ディスプレイパイプラインを利用することに関する。
（従来技術）
【０００３】
携帯電話、ノートブックコンピュータなどの携帯型デジタルデバイスを含む多くのコンピュータシステムの動作の一部分は、画像、映像情報／ストリーム、及びデータを表示するために液晶ディスプレイ（ＬＣＤ）などのディスプレイ装置を利用するようになっている。したがって、これらのシステムは、一般的に、後にディスプレイ装置に出力される、映像情報を含む、画像及びデータを生成するための機能を内蔵する。このようなデバイスは、一般的に、後の表示のための画像及び映像情報を処理するための映像グラフィック回路（すなわちディスプレイパイプライン）を含む。
【０００４】
デジタル画像形成では、画像中の最小情報要素が「画素」、より一般的に「ピクセル」と呼ばれる。便宜上、ピクセルは、規則的な二次元グリッドに概ね配置される。このような配置を用いることで、各ピクセルに対して個別に同じ操作を一様に適用することにより、多くの共通操作を実施することができる。各ピクセルがデジタル画像の基本的部分であるので、ピクセル数が多いほど、デジタル画像のより精確な表現をもたらすことができる。電子ディスプレイに特定の色を表現するために、各ピクセルは、所望の色に存在する赤、緑、及び青それぞれの量に相当する３つの値を有し得る。電子ディスプレイ用の幾つかのフォーマットは、ピクセルの透明度を表す、アルファと呼ばれる第４の値も含み得る。このフォーマットは、一般にＡＲＧＢ又はＲＧＢＡと称される。ピクセル色を表すための別のフォーマットは、ＹＣｂＣｒであり、ここで、Ｙがピクセルの輝度又は明るさに対応し、Ｃｂ及びＣｒが、青の色差（Ｃｂ）及び赤の色差（Ｃｒ）を表す２つの色差クロミナンス成分に対応する。
【０００５】
ＬＣＤ画面などのディスプレイ装置に表示される大半の画像及び映像情報は、順序付けられた画像フレーム、つまりは、フレームの連続とみなされる。フレームは、概して、完結した動画又は映像ストリームを構成する多くの静止画のうちの１つであるが、より大雑把に言えば、デジタル（飛び越し又は順次走査）ディスプレイに表示される単なる静止画とみなすこともできる。フレームは、一般的に、画像／映像フレームの解像度に従った特定数のピクセルから成る。大半のグラフィックシステムは、画像及び映像フレーム情報のピクセルを記憶するためにメモリ（一般に「フレームバッファ」と称される）を使用する。フレームバッファ内の情報は、一般的に、画面に表示されるべきピクセル毎の色値から成る。
【０００６】
画像間の一定の間隔によって、映像ストリーム又はアニメション画像の動きがスムーズになる。一定の間隔がなければ、映像ストリーム中の物及び人の動きが不規則及び不自然に見える。ＬＣＤディスプレイ及びデジタル映像規格の使用が一般的になる前には、アナログブラウン管のテレビ及びモニタは、画面の右下コーナから、各映像フレームが始まる左上に戻るように電子銃を再配置するために、垂直ブランキング期間（ＶＢＩ）と呼ばれる信号を使用した。ＶＢＩ信号は、その当初の目的では使われていないが、現代の映像システムに存在し続けており、画像フレームを更新するための一定の間隔を提供することができる。
【０００７】
ディスプレイパイプラインは、或る解像度までの表示解像度をサポートするように構成され得る。４０００ピクセルのオーダーの水平解像度（又は４ｋ解像度）を有するディスプレイなどの高解像度ディスプレイが、益々普及しつつある。低解像度ディスプレイ用に設計されたディスプレイパイプラインは、これらの高解像度ディスプレイ用の画面にピクセルを表示するために必要とされるピクセル帯域幅をサポートできない場合がある。加えて、フレームリフレッシュレートが１２０ヘルツ（Ｈｚ）以上の場合があり、ディスプレイパイプラインに対して要求される毎秒当りの処理量が増加することになる。
【０００８】
上記を考慮して、ピクセルを処理し、高解像度ディスプレイに対して駆動するための方法及びメカニズムが望まれる。
【発明の概要】
【０００９】
高解像度ディスプレイに対してピクセルを駆動するためのシステム、装置、及び方法が企図される。
【００１０】
一実施形態では、装置は、２つのディスプレイパイプライン及びマスタタイミング生成器を含み得る。ソースフレームのシーケンスの各ソースフレームは、複数の部分に論理的に区画され得る。ソースフレームの部分は、次いで、ディスプレイパイプラインにより取り込まれて処理され、対応する表示画面に提示され得るが、それは、高解像度ディスプレイの場合もある。例えば、一実施形態では、フレームが垂直に半分に論理的に分割され得、別々のディスプレイパイプラインが各半分を駆動するために利用され得る。したがって、第１のディスプレイパイプラインが画面の第１の半分を駆動し得、第２のディスプレイパイプラインが画面の第２の半分を駆動し得、得られた単一の画像又は映像フレームがディスプレイに示される。このようにして、各ディスプレイパイプラインは、ピクセル処理全体の半分のみを実施するように構成され得る。
【００１１】
各ディスプレイパイプラインは、ソースフレームをフェッチ及び処理するための１つ以上の内部ピクセル処理パイプラインを含み得る。各ディスプレイパイプラインは、複数のエントリを含み得る先入れ先出し（ＦＩＦＯ）バッファ及びＦＩＦＯに接続された制御ユニットも含み得る。制御ユニットは、複数のフレームパケットを受信するように構成され得、それらの各々は、ソースフレームのうちの１つに対応し得、各フレームパケットは、ヘッダ及び１つ以上のコマンドを含み得る。制御ユニットは、各フレームパケットをＦＩＦＯバッファのエントリに記憶するように構成され得る。新たなフレームパケットが、そのパケットが対応するフレームよりも前にデバイスプロセッサから各ディスプレイパイプラインに送出され得る。両方のディスプレイパイプラインは、同じフレームに関する新たなパラメータＦＩＦＯパケットに切り替わるように構成され得る。
【００１２】
一実施形態では、所与のフレームを処理する間に、各ディスプレイパイプラインは、次のフレームに対応するフレームパケットが既に受信されているかを判定し得、各ディスプレイパイプラインは、次のフレームに対応するフレームパケットが既に受信されている場合に、マスタタイミング生成器に通知を送信し得る。両方のディスプレイパイプラインが次のフレームのフレームパケットを受信している場合、ディスプレイパイプラインが表示のための次のフレームを処理すべきであることを示す通常垂直ブランキング期間（ＶＢＩ）信号がマスタタイミング生成器により生成され得る。ディスプレイパイプラインのいずれかが次のフレームのフレームパケットを受信していない場合、ディスプレイパイプラインが前のフレームを繰り返すべきであることを示す繰返しＶＢＩ信号がマスタタイミング生成器により生成され得る。
【００１３】
これら及び他の機能及び利点は、本明細書に提示するアプローチの以下の詳細な説明を考慮すると、当業者にとって明らかになるであろう。
【図面の簡単な説明】
【００１４】
方法及びメカニズムの上記の利点及び更なる利点は、添付の図面と併せて以下の説明を参照することでより理解され得る。
【図１】メモリ及び１つ以上のディスプレイ装置に接続されたシステムオンチップ（ＳＯＣ）の一実施形態を図示するブロック図である。
【図２】ＳＯＣ内で使用するためのデュアルディスプレイパイプラインの一実施形態のブロック図である。
【図３】ディスプレイパイプラインフロントエンドの一実施形態を図示するブロック図である。
【図４】映像ファイルの表示及び対応するパラメータＦＩＦＯの一実施形態を図示するブロック図である。
【図５】パラメータＦＩＦＯエントリの一実施形態を図示するブロック図である。
【図６】映像／ＵＩパイプラインの一実施形態を図示するブロック図である。
【図７】非分割表示画面及び２ウェイ分割表示画面を図示するブロック図である。
【図８】２ウェイ表示分割を可能にするための回路の一実施形態を図示するブロック図である。
【図９】２ウェイ表示分割を可能にするための回路のタイミング図である。
【図１０】仮想的な単一のコントローラの一実施形態を図示するブロック図である。
【図１１】２つのディスプレイパイプラインを同期させるための制御ロジックの一実施形態を図示するブロック図である。
【図１２】異なる種類の垂直ブランキング期間（ＶＢＩ）信号を生成するための方法の一実施形態を図示する一般化されたフロー図である。
【図１３】ディスプレイパイプライン内でソースフレームを処理するための方法の一実施形態を図示する一般化されたフロー図である。
【図１４】システムの一実施形態のブロック図である。
【発明を実施するための形態】
【００１５】
以下の説明では、本明細書に提示する方法及びメカニズムの完全な理解をもたらすために、多数の具体的な詳細が記載される。しかし、これらの具体的な詳細を伴わずに各種の実施形態が実践され得ることを当業者は認識するはずである。幾つかの事例では、本明細書に記述するアプローチが不明瞭となることを避けるため、周知の構造、構成要素、信号、コンピュータプログラム命令、及び技術は詳細に示されていない。図示の簡潔性及び明瞭性のために、図に示す要素は必ずしも縮尺どおりに描かれていないことが理解されるであろう。例えば、幾つかの要素の寸法は、他の要素に対して誇張される場合がある。
【００１６】
本明細書は、「一実施形態」に対する参照を含む。異なる文脈に現れる、「一実施形態では」というフレーズは、必ずしも同じ実施形態を参照しない。特定の機能、構造又は特性は、本開示に整合する任意の適当な方法で組み合わせられ得る。更に、本出願を通して使用されるとき、「〜し得る、〜してもよい（may）」という語は、義務的な意味（すなわち、〜しなければならない（must）を意味する）ではなく、許容的な意味（すなわち、〜する可能性を有することを意味する）で使用される。同様に、「含む（include）」、「含んでいる（including）」及び「含む（includes）」という語は、何かを含むことを意味するが、その何かに限定されることを意味しない。
【００１７】
用語。以下の段落は、本開示（添付の請求項を含む）に見られる用語の定義及び／又は文脈を提供する。
【００１８】
「備える、含む（Comprising）」。この用語はオープンエンドである。添付の請求項に使用されるとき、この用語は、追加の構造又はステップを除外しない。「．．．ディスプレイパイプラインを備える装置。」と記載される請求項について検討してみる。このような請求項は、装置が追加構成要素（例えば、プロセッサ、メモリコントローラ）を含むことを除外しない。
【００１９】
「〜するように構成される（Configured To）」。各種のユニット、回路、又は他の構成要素は、タスク又はタスク群を実施する「ように構成される」と記述又は請求され得る。このような文脈では、「〜するように構成される」は、ユニット／回路／構成要素が、動作中にタスク又はタスク群を実施する構造（例えば回路）を含むことを示すことにより構造を暗示するために使用される。したがって、ユニット／回路／構成要素は、特定のユニット／回路／構成要素が現在動作していない（例えば、オンの状態でない）ときでも、タスクを実施するように構成されると言い得る。「〜するように構成される」という文言と共に使用されるユニット／回路／構成要素は、ハードウェア、例えば、回路、動作を実施するために実行可能なプログラム命令を記憶するメモリなどを含む。ユニット／回路／構成要素が１つ以上のタスクを実施する「ように構成される」との記載は、そのユニット／回路／構成要素について、米国特許法第１１２条（ｆ）が発動されないことを明示的に意図している。加えて、「〜するように構成される」は、問題のタスク（１つ以上）を実施できる方法で動作するようにソフトウェア及び／又はファームウェア（例えば、ソフトウェアを実行するＦＰＧＡ又は汎用プロセッサ）によって操作される一般的な構造（例えば、一般的な回路）を含み得る。「〜するように構成される」は、１つ以上のタスクを実施又は実行するように適合されたデバイス（例えば集積回路）を組み立てるように製造工程（例えば半導体組立設備）を適合させることも含み得る。
【００２０】
「基づく」。本明細書に使用するとき、この用語は、判定に影響を及ぼす１つ以上の要因を記述するために使用される。この用語は、判定に影響を及ぼし得る追加要因を排除しない。つまり、判定はこれらの要因のみに基づくか、又は、少なくとも部分的にこれらの要因に基づき得る。「Ｂに基づいてＡを判定する」というフレーズについて検討してみる。ＢはＡの判定に影響を及ぼす要因であり得るが、このようなフレーズはＡの判定がＣにも基づくことを排除しない。他の事例では、ＡはＢのみに基づいて判定され得る。
【００２１】
次に図１を参照すると、メモリ１１２及びディスプレイ装置１２０に接続されたシステムオンチップ（ＳＯＣ）１１０の一実施形態のブロック図が示されている。本明細書では、ディスプレイ装置がより簡潔にディスプレイと称され得る。名前が暗示するように、ＳＯＣ１１０の構成要素は、集積回路「チップ」として、単一の半導体基板上に集積され得る。幾つかの実施形態では、構成要素は、システム内の２つ以上の個別のチップ上に実装され得る。しかし、本明細書では、ＳＯＣ１１０が例として使用される。図示する実施形態では、ＳＯＣ１１０の構成要素は、中央処理装置（ＣＰＵ）コンプレックス１１４、ディスプレイパイプ１１６及び１１７、周辺構成要素１１８Ａ〜１１８Ｂ（より短く、「周辺装置」）、メモリコントローラ１２２、並びに通信ファブリック１２７を含む。構成要素１１４、１１６、１１７、１１８Ａ〜１１８Ｂ、及び１２２は、全て通信ファブリック１２７に接続され得る。メモリコントローラ１２２は、使用中にメモリ１１２に接続され得る。同様に、ディスプレイパイプ１１６及び１１７は、使用中にディスプレイ１２０に接続され得る。図示する実施形態では、ＣＰＵコンプレックス１１４は、１つ以上のプロセッサ１２８及びレベル２（Ｌ２）キャッシュ１３０を含む。
【００２２】
ディスプレイパイプ１１６及び１１７は、ディスプレイ１２０に表示するための１つ以上の静止画、及び／又は１つ以上の映像シーケンスを処理するためのハードウェアを含み得る。概して、各ソース静止画又は映像シーケンスについて、ディスプレイパイプ１１６及び１１７は、フレーム／映像シーケンスのそれぞれの部分を表すデータをメモリコントローラ１２２を介してメモリ１１２から読み出すためのメモリ読出し操作を生成するように構成され得る。
【００２３】
ディスプレイパイプ１１６及び１１７は、画像データ（静止画、映像シーケンスなど）に対して任意の種類の処理を実施するように構成され得る。一実施形態では、ディスプレイパイプ１１６及び１１７は、静止画のスケール変更、映像シーケンスのフレームのそれぞれの部分に対するディザ処理、スケール変更、及び／又は色空間変換を実行するように構成され得る。ディスプレイパイプ１１６及び１１７は、表示のための出力フレームを生成するために、静止画フレーム及び映像シーケンスフレームをブレンド処理するように構成され得る。ディスプレイパイプ１１６及び１１７の各々は、より一般的には、ディスプレイパイプライン、ディスプレイ制御ユニット、又はディスプレイコントローラとも称され得る。ディスプレイ制御ユニットは、概して、静止画及び／又は映像シーケンスなどの１つ以上のソースから表示のためのフレームを準備するように構成された任意のハードウェアであり得る。
【００２４】
より詳細には、ディスプレイパイプ１１６及び１１７の各々は、メモリ１１２に記憶された１つ以上のソースバッファ１２６Ａ〜１２６Ｂからソースフレームのそれぞれの部分を取り出し、ソースバッファからのフレームを合成し、得られたフレームをディスプレイ１２０の対応する部分に表示するように構成され得る。ソースバッファ１２６Ａ及び１２６Ｂは、メモリ１１２に記憶され得る任意の数のソースフレームバッファを表す。したがって、ディスプレイパイプ１１６及び１１７は、複数のソースバッファ１２６Ａ〜１２６Ｂを読み出し、出力フレームを生成するために画像データを合成するように構成され得る。
【００２５】
ディスプレイ１２０は、任意の種類の視覚ディスプレイ装置であり得る。ディスプレイ１２０は、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）、プラズマ、ブラウン管（ＣＲＴ）などであり得る。ディスプレイ１２０は、ＳＯＣ１１０を含むシステム（例えば、スマートフォン若しくはタブレット）に内蔵され得、及び／又はコンピュータモニタ、テレビ、若しくは他のデバイスなど、個別に収容されたデバイスであり得る。
【００２６】
幾つかの実施形態では、ディスプレイ１２０は、ＳＯＣ１１０に直接接続され得、ディスプレイパイプ１１６及び１１７により制御され得る。つまり、ディスプレイパイプ１１６及び１１７は、１つ以上のクロック、及び／又は垂直ブランキング期間及び水平ブランキング周期制御などのタイミング信号を含む各種の制御／データ信号をディスプレイに提供し得るハードウェア（「バックエンド」）を含み得る。クロックは、ピクセルが送信されていることを示すピクセルクロックを含み得る。データ信号は、例えば赤、緑、及び青などの色信号を含み得る。ディスプレイパイプ１１６及び１１７は、ディスプレイ１２０をリアルタイム又はほぼリアルタイムで制御し、フレームにより示される画像をディスプレイが表示しているときに表示されるべきピクセルを示すデータを提供し得る。このようなディスプレイ１２０とのインターフェースは、例えば、ＶＧＡ、ＨＤＭＩ（登録商標）、デジタルビデオインターフェース（ＤＶＩ）、液晶ディスプレイ（ＬＣＤ）インターフェース、プラズマインターフェース、ブラウン管（ＣＲＴ）インターフェース、任意の独自のディスプレイインターフェースなどであり得る。
【００２７】
一実施形態では、各ディスプレイパイプライン１１６及び１１７は、互いに独立して動作するように構成され得る。この実施形態では、各ディスプレイパイプライン１１６及び１１７は、（図１には、１つのディスプレイのみが示されるが）別々のディスプレイを駆動するように構成され得る。例えば、この実施形態では、ディスプレイパイプライン１１６は、第１のディスプレイを駆動するように構成され得、ディスプレイパイプライン１１７は、第２のディスプレイを駆動するように構成され得る。別の実施形態では、ディスプレイ１２０は、垂直に半分に論理的に分割され得る。この実施形態では、ディスプレイパイプライン１１６は、画面の第１の半分を駆動し得、ディスプレイパイプライン１１７は、画面の第２の半分を駆動し得る。このようにして、各ディスプレイパイプライン１１６及び１１７は、ピクセル処理全体の半分のみを実施するように構成され得る。プロセッサ１２８上で動作するソフトウェアは、選ばれた実施形態に従って動作するように、ディスプレイパイプライン１１６及び１１７をプログラムするように構成され得る。他の実施形態では、単一のディスプレイ１２０を駆動するために、異なる数のディスプレイパイプラインがＳＯＣ１１０内で利用され得ることに留意されたい。例えば、別の実施形態では、４つの部分に論理的に区画される単一のディスプレイ１２０を駆動するために、４つのディスプレイパイプラインが利用され得る。
【００２８】
ＣＰＵコンプレックス１１４は、ＳＯＣ１１０のＣＰＵの役割を果たす１つ以上のＣＰＵプロセッサ１２８含み得る。システムのＣＰＵは、オペレーティングシステムなどの、システムの主制御ソフトウェアを実行するプロセッサ（１つ以上）を含む。概して、使用中にＣＰＵにより実行されるソフトウェアは、システムの所望の機能を実現するためにシステムの他の構成要素を制御し得る。ＣＰＵプロセッサ１２８は、アプリケーションプログラムなどの他のソフトウェアも実行し得る。アプリケーションプログラムは、ユーザ機能を提供し得、より下位のデバイス制御に関してオペレーティングシステムに依存し得る。したがって、ＣＰＵプロセッサ１２８は、アプリケーションプロセッサとも称され得る。ＣＰＵコンプレックスは、Ｌ２キャッシュ１３０、及び／又はシステムの他の構成要素とのインターフェース（例えば、通信ファブリック１２７とのインターフェース）などの他のハードウェアを更に含み得る。
【００２９】
周辺装置１１８Ａ〜１１８Ｂは、ＳＯＣ１１０に含まれる追加ハードウェア機能の任意の集合であり得る。例えば、周辺装置１１８Ａ〜１１８Ｂは、映像エンコーダ／デコーダ、カメラなどの画像センサデータ用の画像信号プロセッサ、スケーラ、ローテータ、ブレンダ、グラフィック処理ユニットなどの映像周辺装置を含み得る。周辺装置１１８Ａ〜１１８Ｂは、マイクロフォン、スピーカ、マイクロフォン及びスピーカとのインターフェース、オーディオプロセッサ、デジタル信号プロセッサ、ミキサなどのオーディオ周辺装置を含み得る。周辺装置１１８Ａ〜１１８Ｂは、ユニバーサルシリアルバス（ＵＳＢ）、ＰＣＩエキスプレス（ＰＣＩｅ）を含むペリフェラルコンポーネントインターコネクト（ＰＣＩ）、シリアル及びパラレルポートなどのインターフェースを含む、ＳＯＣ１１０の外部の各種インターフェース用のインターフェースコントローラを含み得る。周辺装置１１８Ａ〜１１８Ｂは、メディアアクセスコントローラ（ＭＡＣ）などのネットワーク用周辺装置を含み得る。ハードウェアの任意の集合が含まれ得る。
【００３０】
メモリコントローラ１２２は、概して、ＳＯＣ１１０の他の構成要素からのメモリ操作を受け、メモリ操作を完了するためにメモリ１１２にアクセスするための回路を含み得る。メモリコントローラ１２２は、任意の種類のメモリ１１２にアクセスするように構成され得る。例えば、メモリ１１２は、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３など）ＤＲＡＭを含むシンクロナスＤＲＡＭ（ＳＤＲＡＭ）などのダイナミックＲＡＭ（ＤＲＡＭ）であり得る。ＤＤＲ  ＤＲＡＭの低電力／モバイルバージョン（例えば、ＬＰＤＤＲ、ｍＤＤＲなど）がサポートされ得る。メモリコントローラ１２２は、メモリ操作、操作用のデータなどをバッファリングするための各種の待ち行列と、操作を順序付け、メモリ１１２のために定義されたインターフェースに従ってメモリ１１２にアクセスするための回路とを含み得る。
【００３１】
通信ファブリック１２７は、ＳＯＣ１１０の構成要素間で通信するための任意の通信相互接続及び通信プロトコルであり得る。通信ファブリック１２７は、共有バス構成、クロスバー構成、及び、ブリッジを有する階層化バス、を含むバスベースであり得る。通信ファブリック１２７は、パケットベースでもあり得、ブリッジを有する階層構造、クロスバー、ポイントツーポイント、又は他の相互接続であり得る。
【００３２】
ＳＯＣ１１０の構成要素の数（及びＣＰＵコンプレックス１１４内などの、図１に示すものの下位構成要素の数）が実施形態によって異なり得ることに留意されたい。各構成要素／下位構成要素の数は、図１に示すよりも多くてもよく、少なくてもよい。図１には示さない多くの他の構成要素をＳＯＣ１１０が含み得ることにも留意されたい。各種の実施形態では、ＳＯＣ１１０は、集積回路（ＩＣ）、特定用途向け集積回路（ＡＳＩＣ）、又は装置とも称され得る。
【００３３】
次に図２に移ると、ＳＯＣ内で使用するためのデュアルディスプレイパイプラインの一実施形態の一般化されたブロック図が示される。２つのディスプレイパイプライン２１０及び２４０は、相互接続インターフェース２５０に接続され得る。２つのディスプレイパイプラインを示すが、他の実施形態では、ホストＳＯＣ（例えばＳＯＣ１１０）は、異なる数のディスプレイパイプラインを含み得る。ディスプレイパイプラインの各々は、ソース画像の半分を処理し、目的とする画像のうちの得られた半分をディスプレイ（示していない）の対応する半分に表示するように構成され得る。
【００３４】
一実施形態では、ディスプレイパイプライン２１０及び２４０は、レンダリングされたグラフィカル情報を仮想的な単一のコントローラ（例えば、図１０の仮想的な単一のコントローラ１０００）によりディスプレイに送信し得る。相互接続インターフェース２５０は、ディスプレイパイプライン２１０及び２４０と上位ファブリックとの間で信号及びパケットをルーティングするための、マルチプレクサ及び制御ロジックを含み得る。相互接続インターフェース２５０は、図１の通信ファブリック１２７に対応し得る。
【００３５】
ディスプレイパイプライン２１０及び２４０は、割り込みインターフェースコントローラ２１２及び２１６をそれぞれ含み得る。割り込みインターフェースコントローラ２１２及び２１６は、内部ピクセル処理パイプライン２１４及び２１８にそれぞれ提示されるべき割り込みを生成するための、ソース又は外部デバイスの数を拡張するためのロジックを含み得る。コントローラ２１２及び２１６は、エンコード方式、割り込みベクタアドレスを記憶するためのレジスタ、並びに、割り込みに対するチェック、イネーブル、及び確認応答をするための制御ロジックを提供し得る。割り込みの数及び選択されるプロトコルは、設定可能であり得る。
【００３６】
ディスプレイパイプライン２１０及び２４０は、１つ以上の内部ピクセル処理パイプライン２１４及び２１８をそれぞれ含み得る。内部ピクセル処理パイプライン２１４及び２１８は、ユーザインターフェース（ＵＩ）層を処理及び表示するための１つ以上のＡＲＧＢ（アルファ、赤、緑、青）パイプラインを含み得る。内部ピクセル処理パイプライン２１４及び２１８は、ＹＵＶコンテンツなどの映像コンテンツを処理及び表示するための１つ以上のパイプラインも含み得る。幾つかの実施形態では、内部ピクセル処理パイプライン２１４及び２１８は、グラフィカル情報を、後処理ロジック２２０及び２２２それぞれへの出力として送信する前に、ブレンド処理するためのブレンド処理回路を含み得る。
【００３７】
ディスプレイパイプライン２１０及び２４０は、後処理ロジック２２０及び２２２をそれぞれ含み得る。後処理ロジック２２０は、色管理、環境適応ピクセル（ＡＡＰ）修正、動的バックライト制御（ＤＰＢ）、パネルガンマ補正、及びディザ処理のために使用され得る。ディスプレイインターフェース２３０及び２３２は、内部パネルディスプレイと通信するためのプロトコルに対応し得る。例えば、モバイルインダストリプロセッサインターフェース（ＭＩＰＩ）のディスプレイシリアルインターフェース（ＤＳＩ）規格が使用され得る。代わりに、４レーンエンベデッドディスプレイポート（ｅＤＰ）規格が使用され得る。後処理ロジック及びディスプレイインターフェースは、ディスプレイバックエンドとも称され得る。
【００３８】
一実施形態では、分割表示モードにあるとき、ディスプレイパイプライン２１０及び２４０は、現在のフレームの終了時に次のフレームに進むことが可能である場合に、第１の通知を受信し得る。制御ロジック（示していない）は、ディスプレイパイプライン２１０及び２４０の両方が、次のフレームを処理するのに十分なほど早く次のフレームのフレームパケットを有しているかを判定するように構成され得、そうである場合に、制御ロジックは、次のフレームに進むために第１の通知をディスプレイパイプライン２１０及び２４０に送信するように構成され得る。一実施形態では、第１の通知は、通常ＶＢＩ信号であり得る。
【００３９】
ディスプレイパイプライン２１０及び２４０のいずれかが、次のフレームを駆動するための準備ができていない場合、制御ロジックは、次のフレームに進むのではなく、現在のフレームを繰り返すことをそれらに指示する第２の通知をディスプレイパイプライン２１０及び２４０に送信するように構成され得る。パイプラインが準備できているかどうかは、各種の方法で定義され得る。例えば、２つ以上のパイプラインがフレームの設定情報を有し、もって、各々が望ましい見た目（例えば、顕著なアーチファクト、部分間での望ましくない明るさ又は色の不一致がない）を伴ってフレームを提示する方法でフレームの一部分を駆動し得る場合、パイプラインは準備できているとみなされ得る。そうでない場合、少なくとも１つのパイプラインは、満足のいくフレームの全体的な見た目を提供するために必要とされる情報を有しておらず、そのパイプラインは、準備できていないとみなされ得る。一例として、ディスプレイパイプライン２１０は、次のフレームの設定データを遅れずに有し得るが、ディスプレイパイプライン２４０は有し得ない。したがって、この場合、ディスプレイパイプライン２１０は、次のフレームを処理するための準備ができていても、ディスプレイパイプライン２１０は、次のフレームに移るのではなく同じフレームを再び繰り返し得る。一実施形態では、第２の通知は、繰返しＶＢＩ信号であり得る。ＶＢＩ信号（通常又は繰返し）は、新たな垂直ブランキング期間（ＶＢＩ）の開始点を確立するパルス又は他の信号であり得る。ＶＢＩは、フレームの最後のピクセルがディスプレイに対して駆動されたときから、それに続くフレームの最初のピクセルがディスプレイに対して駆動されるときまでの期間として定義され得る。
【００４０】
次に図３を参照すると、ディスプレイパイプラインフロントエンド３００の一実施形態のブロック図が示される。ディスプレイパイプラインフロントエンド３００は、図１のディスプレイパイプ１１６及び１１７のフロントエンド部分を表し得る。ディスプレイパイプラインフロントエンド３００は、システムバス３２０及びディスプレイバックエンド３３０に接続され得る。幾つかの実施形態では、ディスプレイバックエンド３３０は、ディスプレイパイプラインフロントエンド３００により生成されたピクセルを表示するためにディスプレイと直接インターフェースし得る。ディスプレイパイプラインフロントエンド３００は、１つ以上の映像／ユーザインターフェース（ＵＩ）パイプライン３０１Ａ〜Ｂ、ブレンドユニット３０２、色域調整ユニット３０３、色空間変換器３０４、制御レジスタ３０５、パラメータ先入れ先出しバッファ（ＦＩＦＯ）３０６、及び制御ユニット３０７などの機能サブブロックを含み得る。ディスプレイパイプラインフロントエンド３００は、他の構成要素も含み得るが、わかりづらくなるため図３には示していない。
【００４１】
システムバス３２０は、幾つかの実施形態では、図１による通信ファブリック１２７に対応し得る。システムバス３２０は、各種機能ブロックが互いにデータの受け渡しができるように、当該機能ブロックを接続する。ディスプレイパイプラインフロントエンド３００は、処理対象の映像フレームデータを受信するためにシステムバス３２０に接続され得る。幾つかの実施形態では、ディスプレイパイプラインフロントエンド３００は、処理された映像フレームを、システムバス３２０に接続され得る他の機能ブロック及び／又はメモリにも送信し得る。「映像フレーム」という用語が使用されるとき、これは、ディスプレイに描写され得る、画像などの任意の種類のフレームを表すことを意図していることを理解されたい。
【００４２】
ディスプレイパイプラインフロントエンド３００は、１つ以上の映像／ＵＩパイプライン３０１Ａ〜Ｂを含み得、それらの各々は、実施形態に応じて映像及び／又はユーザインターフェース（ＵＩ）パイプラインであり得る。本明細書では、「映像／ＵＩパイプライン」及び「ピクセル処理パイプライン」という用語が相互交換可能に使用され得ることに留意されたい。他の実施形態では、ディスプレイパイプラインフロントエンド３００は、１つ以上の専用映像パイプライン及び／又は１つ以上の専用ＵＩパイプラインを有し得る。各映像／ＵＩパイプライン３０１は、システムバス３２０に接続されたバッファからソース画像（又はソース画像の一部分）をフェッチし得る。バッファリングされたソース画像は、例えば、図１によるシステムメモリ１１２などのシステムメモリ内にあり得る。各映像／ＵＩパイプライン３０１は、別個のソース画像（又は別個のソース画像の一部分）をフェッチし得、非限定的に、（例えば、ＹＣｂＣｒからＡＲＧＢへの）フォーマット変換、画像スケール変更、及びディザ処理を含む各種の方法でソース画像を処理し得る。幾つかの実施形態では、各映像／ＵＩパイプラインは、ソース画像から特定の順序で一度に１つのピクセルを処理し、ピクセルデータのストリームを出力し、ピクセルデータが通過するときに同じ順序を維持し得る。
【００４３】
一実施形態では、ユーザインターフェースパイプラインとして利用されるとき、所与の映像／ＵＩパイプライン３０１は、ソース画像中のプログラム可能なアクティブ領域をサポートし得る。アクティブ領域は、ソース画像のうち表示されるべき部分のみを定義し得る。ある実施形態では、所与の映像／ＵＩパイプライン３０１は、アクティブ領域内のデータのみをフェッチするように構成され得る。アクティブ領域の外側では、アルファ値０のダミーデータがピクセルデータとしてパスされ得る。
【００４４】
制御ユニット３０７は、各種の実施形態では、メモリからデータをフェッチするために映像／ＵＩパイプライン３０１Ａ〜Ｂから出される読出し要求のアービトレーションを行うように構成され得る。幾つかの実施形態では、読出し要求は、仮想アドレスを示し得る。メモリ管理ユニット（示していない）は、要求がメモリに提示される前に、仮想アドレスをメモリ内の物理アドレスに変換し得る。幾つかの実施形態では、制御ユニット３０７は、専用のステートマシン又は順序論理回路を含み得る。メモリに記憶されたプログラム命令を実行する汎用プロセッサは、他の実施形態では、制御ユニット３０７の機能を実行するために利用され得る。
【００４５】
ブレンドユニット３０２は、映像／ＵＩパイプライン３０１Ａ〜Ｂの１つ以上からピクセルストリームを受信し得る。１つのピクセルストリームのみが受信される場合、ブレンドユニット３０２は、ストリームを次の下位ブロックへ単に通過させ得る。しかし、２つ以上のピクセルストリームが受信される場合、ブレンドユニット３０２は、表示されるべき画像を作り出すためにピクセル色をブレンド処理し得る。各種の実施形態では、ブレンドユニット３０２は、ある画像から別の画像に移行したり、又はアクティブなアプリケーションウィンドウの上に通知ウィンドウを表示したりするために使用され得る。例えば、カレンダリマインダなどの通知のための上層映像フレームは、別のアプリケーションにもかかわらず、例えばインターネットブラウザウィンドウなどの上に、すなわちディスプレイの主要要素として、現れる必要があり得る。カレンダリマインダは、ブラウザウィンドウが少なくとも部分的に視認可能となり得る幾つかの透明又は半透明の要素を含み得、そのことは、ブレンドユニット３０２がカレンダリマインダの色及び透明度に基づいてブラウザウィンドウの見た目を調整することを必要とし得る。ブレンドユニット３０２の出力は、１つ以上の入力ピクセルストリームのうちの単一のピクセルストリーム合成物であり得る。
【００４６】
ブレンドユニット３０２の出力は、色域調整ユニット３０３に送信され得る。色域調整ユニット３０３は、ブレンドユニット３０２からの出力のカラーマッピングを調整し、意図されるターゲットディスプレイの利用可能な色にうまくマッチングさせ得る。色域調整ユニット３０３の出力は、色空間変換器３０４に送信され得る。色空間変換器３０４は、色域調整ユニット３０３からピクセルストリーム出力を受け取り、それを新たな色空間に変換し得る。色空間変換器３０４は、次いで、ピクセルストリームをディスプレイバックエンド３３０に送信したり、システムバス３２０に戻したりし得る。他の実施形態では、ピクセルストリームは、他のターゲット送り先に送信され得る。例えば、ピクセルストリームは、例えばネットワークインターフェースに送信され得る。幾つかの実施形態では、ブレンド処理及び色域補正が適用された後に、色の混合に基づいて新たな色空間が選ばれ得る。更なる実施形態では、色空間は、意図されるターゲットディスプレイに基づいて変更され得る。
【００４７】
ディスプレイバックエンド３３０は、ディスプレイパイプラインフロントエンド３００により生成されたピクセルを表示するためにディスプレイを制御し得る。ディスプレイバックエンド３３０は、ディスプレイパイプラインフロントエンド３００の出力ＦＩＦＯ（示していない）から、ピクセルクロックに従って規則的なレートでピクセルを読み出し得る。レートは、ディスプレイの解像度及びディスプレイのリフレッシュレートに依存し得る。例えば、Ｎ×Ｍの解像度及び毎秒Ｒフレームのリフレッシュレートを有するディスプレイは、Ｎ×Ｍ×Ｒに基づくピクセルクロック周波数を有し得る。一方、出力ＦＩＦＯは、ピクセルがディスプレイパイプラインフロントエンド３００により生成されるときに書き込まれ得る。
【００４８】
ディスプレイバックエンド３３０は、各ピクセルがディスプレイパイプラインフロントエンド３００により処理されるときに、処理された画像データを受信し得る。ディスプレイバックエンド３３０は、各映像フレームが表示される前に、画像データに対する最終処理を提供し得る。幾つかの実施形態では、ディスプレイバックエンド３３０は、ディスプレイバックエンド３３０に接続された電子ディスプレイに固有の、環境適応ピクセル（ＡＡＰ）修正、動的バックライト制御（ＤＰＢ）、ディスプレイパネルガンマ補正、及びディザ処理を含み得る。
【００４９】
各種の下位ブロックが映像フレームをどのように操作するかをディスプレイパイプラインフロントエンド３００が制御するために使用し得るパラメータが、制御レジスタ３０５に記憶され得る。これらのレジスタは、非限定的に、入出力フレームサイズを設定すること、入出力ピクセルフォーマット、ソースフレームの位置、及び出力先（ディスプレイバックエンド３３０又はシステムバス３２０）を設定することを含み得る。制御レジスタ３０５は、パラメータＦＩＦＯ３０６によりロードされ得る。
【００５０】
パラメータＦＩＦＯ３０６は、ホストプロセッサ、ダイレクトメモリアクセスユニット、グラフィック処理ユニット、又はコンピューティングシステム内の任意の他の適当なプロセッサによりロードされ得る。他の実施形態では、パラメータＦＩＦＯ３０６は、システムメモリからの値、例えば、図１のシステムメモリ１１２からの値を直接フェッチし得る。パラメータＦＩＦＯ３０６は、各ソース映像フレームがフェッチされる前に、ディスプレイパイプラインフロントエンド３００の制御レジスタ３０５を更新するように構成され得る。幾つかの実施形態では、パラメータＦＩＦＯは、各フレームの全ての制御レジスタ３０５を更新し得る。他の実施形態では、パラメータＦＩＦＯは、各フレームの全てを含むか、または全く含まない制御レジスタ３０５の部分集合を更新するように構成され得る。使用され本明細書に記述するＦＩＦＯは、バッファに記憶されるデータが書き込まれたのと同じ順序で読み出される、メモリストレージバッファを意味し得る。ＦＩＦＯは、ＲＡＭ又はレジスタで構成され得、ＦＩＦＯ内の最初及び最後のエントリへのポインタを利用し得る。
【００５１】
所与のソース映像フレームを処理する間、制御ユニット３０７は、次のソース映像フレームを処理するために必要とされる設定データが既に受信されているかを判定し得る。設定データは、この説明のために「フレームパケット」と称され得る。制御ユニット３０７は、次のソース映像フレームに対応する次のフレームパケットがパラメータＦＩＦＯ３０６により受信されているときに、ディスプレイバックエンド３３０に通知を送信するように構成され得る。ディスプレイバックエンド３３０は、全てのディスプレイパイプラインフロントエンドが、次のソース映像フレームに対応する次のフレームパケットを受信している場合に、通常ＶＢＩ信号を生成し、ディスプレイパイプラインフロントエンド３３０に（及び他のディスプレイパイプラインフロントエンドに）伝達するように構成され得る。代わりに、ディスプレイパイプラインフロントエンドのうちのいずれかが次のフレームパケットを受信していない場合、ディスプレイバックエンド３３０は、繰返しＶＢＩ信号を生成し、ディスプレイパイプラインフロントエンド３３０及び他のディスプレイパイプラインフロントエンドに伝達し得る。
【００５２】
図３に図示するディスプレイパイプラインフロントエンド３００が単なる例であることに留意されたい。他の実施形態では、ディスプレイパイプラインが意図される特定の用途に応じて、異なる機能ブロック及び機能ブロックの異なる設定が可能となり得る。例えば、他の実施形態では、３つ以上の映像／ＵＩパイプラインがディスプレイパイプラインフロントエンド内に含まれ得る。
【００５３】
次に図４に移ると、映像ファイルの表示及び対応するパラメータＦＩＦＯが示される。各種の実施形態では、映像４０１は、例えば、ムービングピクチャーエキスパートグループ４パート１４（ＭＰ４）、アドバンスドビデオコーディング（Ｈ．２６４／ＡＶＣ）、又はオーディオビデオインターリーブ（ＡＶＩ）などのフォーマットの映像クリップを含むファイルを表し得る。代わりに、映像４０１は、スライドショーと一般に称され、タイミングがとれた間隔で表示され得る、各画像がフレームとみなされる一連の静止画であり得る。画像は、ジョイントフォトグラフィックエキスパートグループ（ＪＰＥＧ）、ＲＡＷ画像フォーマット（ＲＡＷ）、グラフィックス交換フォーマット（ＧＩＦ）、又はポータブルネットワークグラフィックス（ＰＮＧ）などのフォーマット形式であり得る。実証のために、１から５の番号を付された５つのフレームを有する映像４０１が図示される。しかし、映像４０１には、任意の数のフレームが含まれ得る。
【００５４】
映像フレーム４０２は、映像４０１からの単一のフレームを表し得る。この例では、映像フレーム４０２は、映像４０１のフレーム番号２として図示される。映像フレーム４０２は、前に説明したフォーマットのいずれか又は任意の他の適当なフォーマットの単一の画像であり得る。映像フレーム４０２は、ＡＲＧＢ、ＹＣｂＣｒ、又は他の適当なピクセルフォーマットのピクセル情報のリストを含み得る。
【００５５】
パラメータＦＩＦＯ４０３は、図３に図示するようなパラメータＦＩＦＯ３０６に対応し得、前述したような機能を有し得る。実証のために、図４には、１から１０のうち４及び７を除く番号が付された８つのフレームパケットを保持するものとして、パラメータＦＩＦＯ４０３が図示される。しかし、パラメータＦＩＦＯ４０３は、ＦＩＦＯのサイズ及びフレームパケットのサイズにより許容されるのと同じくらい多くのフレームパケットを保持し得る。フレームパケットの数は、パケットの使用が意図される映像４０１の映像フレームの数に対応し得る。フレームパケット４及び７（示していない）は、幾つかの映像フレームがフレームパケットを必要としない場合があることを図示するために除外される。他の実施形態では、各映像フレームについてフレームパケットが必要とされ得る。フレームパケットのそれぞれのサイズは、サイズがフレームパケット毎に異なり得ることを図示するために、１０個の例の間で変化するように示される。他の実施形態では、各フレームパケットは、標準的な均一のサイズであり得る。
【００５６】
フレームパケット４０４は、パラメータＦＩＦＯ４０３に記憶された単一のフレームパケットを表し得る。フレームパケット４０４は、所与の映像フレームに関連する各種のレジスタの設定を含み得る。この例では、フレームパケット４０４は、番号２として図示もされる映像フレーム４０２に対応し得る番号２として示される。フレームパケット４０４は、１つのパラメータコマンドをそれぞれ表す、２ａ、２ｂ、及び２ｃとラベル付けされた３つのセクションに分割されて図示される。所与のフレームパケットは、０個から、パラメータＦＩＦＯ４０３に記憶され得るのと同じほど多くの任意の数のパラメータコマンドを含み得る。各パラメータコマンド２ａ〜２ｃは、映像フレーム４０２に関連する１つ以上のレジスタのための設定を含み得る。パラメータコマンド２ａ〜２ｃは、各コマンドに含まれる設定の数に基づく各種の長さを有し得る。他の実施形態では、パラメータコマンド２ａ〜２ｃは、１つ以上の特定の長さに標準化され得る。
【００５７】
図１のＳＯＣ１１０などのシステムでは、ディスプレイパイプ１１６及び１１７は、映像４０１の映像フレーム１が表示された後で、映像フレーム４０２が表示される前に、パラメータコマンド２ａ〜２ｃが実行され、映像フレーム４０２が、パラメータコマンド２ａ〜２ｃに対応するパラメータを用いて表示されるように、映像フレーム４０２及びフレームパケット４０４のそれぞれの部分を処理し得る。これらのパラメータは、これらの現在の設定値を変更する別のパラメータコマンドが実行されるまで、これらの設定値のままであり得る。幾つかの実施形態では、幾つか又は全てのパラメータの値は、例えば、図１のプロセッサ１１４により送信された操作など、パラメータＦＩＦＯ４０３に関連しないコマンドにより変更され得る。
【００５８】
次に図５を参照すると、パラメータＦＩＦＯエントリ５００の一実施形態が示される。図５は、図４のパラメータＦＩＦＯ４０３などのパラメータＦＩＦＯ内のエントリを図示する。パラメータＦＩＦＯエントリ５００は、フレームパケット５０２、５０３、及び５０４により図示するような幾つかのフレームパケットを含み得る。
【００５９】
フレームパケット５０２は、幾つかの実施形態では、フレームヘッダ５２０を含み、それに、図５に描写するようなパラメータコマンド５２２ａ〜５２２ｎなどの多数のパラメータコマンドが続き得る。所与のフレームパケットは、０個のパラメータコマンドから、所与のサイズのＦＩＦＯに適合し得る最大数のコマンドまでを含み得る。０個のパラメータコマンドを伴うフレームパケットは、ヌルパラメータ設定と称され得る。フレームパケット５０２は、フレームパケット５０２の前にパラメータＦＩＦＯ４０３に書き込まれた全てのフレームパケットが読み出されたときに、パラメータＦＩＦＯ４０３から読み出され得る。フレームパケット５０２が読み出されるとき、読み出される最初のワードはフレームヘッダ５２０であり得る。
【００６０】
フレームヘッダ５２０は、フレームパケット５０２の構造に関する情報を含み得る。例えば、フレームヘッダ５２０は、フレームパケット５０２のサイズに対応する値を含み得る。幾つかの実施形態では、サイズは、フレームパケット５０２中のバイト数又はワード数を表し得、他の実施形態では、パラメータコマンドの数を表し得る。フレームヘッダ５２０は、それが意図される映像フレームに対応する値も含み得る。各種の実施形態では、フレームヘッダ５２０は、それがフレームヘッダであることを示すための値、及び／又は、フレームパケット５０２が、特定の映像フレームではなく、処理されるべき次の映像フレームと共に使用されるべきであることを示すための値を含み得る。この最後の機能は、映像が再生されていたり、画像が表示されていたりする間にユーザが設定を調整する場合に便利であり得る。例えば、ユーザは、特定の映像フレームにおいてではなく可能な限りすぐに変更が実施されることを期待して、明るさ設定又はズーム係数を変更し得る。
【００６１】
フレームパケット５０２は、０個以上のパラメータコマンド５２２ａ〜ｎを含み得る。幾つかの実施形態では、例えばパラメータコマンド５２２ａなどの所与のパラメータコマンドは、１つのパラメータ制御ワード５２３ａを含み得る。パラメータ制御ワードは、パラメータコマンド５２２ａの構造を定義し得る。例えば、パラメータ制御ワード５２３ａは、どれだけ多くのパラメータ設定がコマンドに含まれるかを示すためのパラメータカウント値を含み得る。パラメータ制御ワード５２３ａは、パラメータ設定が書き込まれるべき開始レジスタアドレスを示すためのパラメータ開始値も含み得る。幾つかの実施形態は、パラメータコマンド５２２ａが内部的なもの、すなわち、ディスプレイパイプライン１１６などのディスプレイパイプライン内のレジスタのためのものであるか、又は、外部的なもの、すなわち、ディスプレイパイプライン１１６の外側のレジスタのためのものであるかを示す種類値も含み得る。幾つかの実施形態では、パラメータ開始値は、内部パラメータコマンドのためにのみ使用され得、ここで、レジスタは、完全なデータワードよりも小さなアドレス値を用いてアドレス指定され得る。このような実施形態では、外部コマンドは、残りのパラメータデータを用いて書き込まれるべきレジスタ（１つ以上）の開始アドレスを形成するために、パラメータデータのうちの最初の１つ以上のワードを使用し得る。
【００６２】
パラメータコマンド５２２ａ中の各パラメータ設定は、パラメータデータ［０］からパラメータデータ［ｍ］として図５に示す、パラメータデータの１つ以上のワードを含み得る。パラメータコマンド５２２ａに含まれるパラメータデータワードの数は、パラメータコマンドの種類、内部若しくは外部、及び、パラメータコマンド５２２ａにより書き込まれるべきレジスタの数に依存し得る。各種の実施形態では、パラメータコマンド５２２は、様々な数のパラメータデータを含んでもよく、特定の数のパラメータデータに標準化されてもよい。
【００６３】
図４及び図５のフレームパケット、映像フレーム及びパラメータＦＩＦＯの説明は、単なる例であることに留意されたい。他の実施形態では、フレームパケットの構造は、図５に図示する単一のワードではなくヘッダのための複数のワードを含み得、ヘッダは、所与のフレームパケット中の最初のワードでなくてもよい。各種の実施形態では、フレームパケット及びパラメータコマンドは、図４及び図５に図示するような各種の長さではなく固定長であり得る。
【００６４】
図６を参照すると、映像／ＵＩパイプライン６００の一実施形態のブロック図が示される。映像／ＵＩパイプライン６００は、図３に図示するようなディスプレイパイプライン３００の映像／ＵＩパイプライン３０１Ａ及び３０１Ｂに対応し得る。図示する実施形態では、映像／ＵＩパイプライン６００は、フェッチユニット６０５、ディザユニット６１０、ラインバッファ６１５、スケーラユニット（１つ以上）６２０、色空間変換器６２５、及び色域調整ユニット６３０を含む。概して、映像／ＵＩパイプライン６００は、メモリに記憶されたソースフレームのピクセルデータをフェッチし、次いで、図３に図示するようなディスプレイパイプラインフロントエンド３００のブレンドユニット３０２などのブレンドユニットに処理されたデータを送信する前に、フェッチされたデータを処理する役割を果たし得る。
【００６５】
フェッチユニット６０５は、映像／ＵＩパイプライン６００の要求者（１つ以上）により必要とされるソースピクセルデータの読出し要求を生成するように構成され得る。ソースバッファからのソースラインのフェッチは、一般にソースバッファの「パス」と称される。ソースバッファの各パスの最中に、データのうちの必要とされる部分又はブロックが、上から下に、そして左から右にフェッチされ得、ここで、「上」、「下」、「左」及び「右」は、ディスプレイを基準とする。他の実施形態では、ソースバッファのパスが異なるように進み得る。
【００６６】
各読出し要求は、データの部分がメモリに記憶される場所を示す１つ以上のアドレスを含み得る。幾つかの実施形態では、読出し要求に含まれるアドレス情報は、仮想（本明細書では「論理」とも称される）アドレス空間に向けられ得、アドレスは、メモリデバイス内の物理的位置を直接指示しない。このような場合、仮想アドレスは、読出し要求がソースバッファに送信される前に、物理アドレスにマッピングされ得る。メモリ管理ユニットは、幾つかの実施形態では、仮想アドレスを物理アドレスにマッピングするために使用され得る。幾つかの実施形態では、メモリ管理ユニットは、ディスプレイパイプラインフロントエンド内に含まれ得る一方、他の実施形態では、コンピューティングシステム内の何処かに位置し得る。
【００６７】
特定の状況では、グラフィック処理が行われる所与の色空間内で所与のシステムが生成又は管理できる色の合計数が制限され得る。このような場合、制限されたカラーパレットを有する画像における色深度の錯覚を起こすために、ディザ処理と呼ばれる技術が使用される。ディザ処理された画像では、利用可能ではない色が、利用可能な色の範囲による色付きピクセルの拡散により近似される。画像／映像フレーム中の明るさ又は色調のスムーズなグラデーションの段階的なレンダリングを含む、画像及び映像処理におけるディザ処理は、量子化誤差をランダム化するために或るノイズ形態を意図的に適用することにより、大きなパターンを防ぐためにも使用される。ディザユニット６１０は、各種の実施形態では、ＹＣｂＣｒフォーマットデータの輝度チャネルに関して、構造化ノイズディザ処理を提供し得る。ＹＣｂＣｒの彩度チャネルなどの他のチャネル、及びＡＲＧＢなどの他のフォーマットは、ディザ処理され得ない。
【００６８】
ラインバッファ６１５は、それぞれの表示画面の行ラインに対応する受信フレームデータを記憶するように構成され得る。フレームデータは、行ライン内に含まれる個々のピクセルのルミナンス及びクロミナンスを示し得る。ラインバッファ６１５は、各種の設計スタイルのうちのいずれかに従って設計され得る。例えば、ラインバッファ６１５は、ＳＲＡＭ、ＤＲＡＭ、又は任意の他の適当なメモリであり得る。幾つかの実施形態では、ラインバッファ６１５は、単一の入力／出力ポートを含み得る一方、他の実施形態では、ラインバッファ６１５は、複数のデータ入力／出力ポートを含み得る。
【００６９】
幾つかの実施形態では、ソースピクセルのスケール変更は２つのステップで実施され得る。第１のステップは、垂直スケール変更を実施し得、第２のステップは、水平スケール変更を実施し得る。図示する実施形態では、スケーラユニット（１つ以上）６２０は、垂直及び水平スケール変更を実施し得る。スケーラユニット（１つ以上）６２０は、様々な設計スタイルのうちの１つに従って設計され得る。幾つかの実施形態では、スケーラユニット（１つ以上）６２０の垂直スケーラ及び水平スケーラは、９タップ３２フェーズフィルタとして実装され得る。これらのマルチフェーズフィルタは、各種の実施形態では、フェッチユニット６０５により取り出された各ピクセルに重み付け係数を乗算し得る。得られたピクセル値は、次いで加算され、次いで端数処理され、スケール処理されたピクセルが形成され得る。スケール変更処理に使用されるべきピクセルの選択は、スケールポジション値の一部分に依存し得る。幾つかの実施形態では、重み付け係数は、プログラム可能なテーブルに記憶され得、スケール変更に使用するための重み付け係数の選択は、スケールポジション値の別の部分に依存し得る。
【００７０】
幾つかの実施形態では、スケールポジション値（本明細書では、「表示ポジション値」とも称される）は、複数の部分を含み得る。例えば、スケールポジション値は、整数部分及び小数部分を含み得る。幾つかの実施形態では、スケール変更すべきピクセルの決定は、スケールポジション値の整数部分に依存し得、重み付け係数の選択は、スケールポジション値の小数部分に依存し得る。幾つかの実施形態では、スケールポジション値を決定するためにデジタル微分解析器（ＤＤＡ）が使用され得る。
【００７１】
映像／ＵＩパイプライン６００内の色管理は、色空間変換器６２５及び色域調整ユニット６３０により実行され得る。幾つかの実施形態では、色空間変換器６２５は、ＹＣｂＣｒソースデータをＲＧＢフォーマットに変換するように構成され得る。代わりに、色空間変換器は、ＲＧＢフォーマットのソースデータからオフセットを除去するように構成され得る。色空間変換器６２５は、各種の実施形態では、入力オフセットユニット、行列乗算器、及び出力オフセットユニット（全て示していない）などの各種の機能的ブロックを含み得る。このようなブロックの使用は、ＹＣｂＣｒフォーマットからＲＧＢフォーマットへの変換及びその逆の変換を可能にし得る。
【００７２】
各種の実施形態では、色域調整ユニット６３０は、ピクセルを非線形色空間から線形色空間に、及びその逆に変換するように構成され得る。幾つかの実施形態では、色域調整ユニット６３０は、ルックアップテーブル（ＬＵＴ）及び補間ユニットを含み得る。ＬＵＴは、幾つかの実施形態では、プログラム可能であり、各種の設計スタイルのうちの１つに従って設計され得る。例えば、ＬＵＴは、ＳＲＡＭ若しくはＤＲＡＭ、又は任意の他の適当なメモリ回路を含み得る。幾つかの実施形態では、複数のＬＵＴが利用され得る。例えば、ガンマ計算とガンマ補正計算のために別々のＬＵＴが使用され得る。
【００７３】
図６に図示する実施形態が単なる例であることに留意されたい。他の実施形態では、異なる機能ブロック及び機能ブロックの異なる設定が可能であり、企図される。
【００７４】
次に図７を参照すると、非分割表示画面及び２ウェイ分割表示画面のブロック図が示される。画面７０２は、図７の上部に示され、画面が論理的に区画されていないシナリオを表す。対照的に、画面７０４は、画面７０２と同じサイズであるが、画面７０４は２つの部分に論理的に区画されている。区画は、画面を左半分と右半分に分割することにより実施することができ、画面の上から下に真っ二つに区画する。他の実施形態では、画面は、異なるように及び／又は３つ以上の部分に区画され得る。例えば、別の実施形態では、画面は、上半分と下半分に水平に区画され得る。
【００７５】
一実施形態では、映像フレーム全体が、２つのディスプレイパイプラインを使用して画面７０４に表示され、単一のディスプレイパイプラインを使用して画面７０２に表示される映像フレーム全体と同じに見え得る。映像フレームは、テレビ番組、映画又は他の画像シーケンスのシーンからのフレームの例を図示するために、画面７０２及び７０４において雲のかたまりとして示される。画面７０４の（画面７０２と比べた）相違は、第１のディスプレイパイプラインが映像フレームの左側をディスプレイに対して駆動しており、第２のディスプレイパイプラインが映像フレームの右側をディスプレイに対して駆動していることである。画面７０４に表示される映像に対応する映像フレームのシーケンス中の映像フレーム毎に、画面７０４に対して、第１のディスプレイパイプラインが、映像フレームの左側を駆動し続けており、第２のディスプレイパイプラインが、映像フレームの右側を対して駆動し続けている。対照的に、単一のディスプレイパイプラインは、映像フレームのシーケンス中の映像フレーム毎に、画面７０２のために映像フレーム全体をディスプレイに対して駆動している。
【００７６】
次に図８に移ると、２ウェイ表示分割を可能にするための回路の一実施形態のブロック図が示される。一実施形態では、ディスプレイバックエンド（示していない）の出力でラインバッファが利用され得る。例えば、一実施形態では、図２のディスプレイパイプライン２１０及び２４０からの出力は、図８の回路の入力（又はデータ入力）に伝達され得る。ピクセルは、先入れ先出しバッファ（ＦＩＦＯ）８０５及びＦＩＦＯ８１０に順に書き込まれ得る。各ＦＩＦＯ８０５及び８１０は、映像フレームのラインの半分を記憶するように構成され得、それは、映像フレームのフルラインのいずれか半分に対応する。一実施形態では、図８の回路のピクセル出力（又はデータ入力）は、仮想的な単一のコントローラ（例えば、図１０の仮想的な単一のコントローラ１０００）に伝達され得る。
【００７７】
ピクセル書込みシーケンスは、書込みイネーブル０（ＷＥ０）及び書込みイネーブル１（ＷＥ１）により制御され得る。読出しイネーブル０（ＲＥ０）及び読出しイネーブル１（ＲＥ１）は、ＦＩＦＯからＡＮＤゲート８１５及び８２０をそれぞれ通り、またＯＲゲート８２５を通ってデータ出力バスへのピクセル読出しを制御し得る。分割表示ケースのピーク帯域幅が非分割表示ケースの場合と同じ一定帯域幅であるので、データ出力バスは、データ入力バスと同じ幅を有し、データ入力バスと同じクロックレートで動作し得る。
【００７８】
次に図９を参照すると、２ウェイ表示分割を可能にするための回路の一実施形態のタイミング図が示される。タイミング図は、図８に示した回路図に基づく。この説明のために、（ディスプレイ全体の）ライン毎のピクセル数は２＊Ｎと仮定され、Ｎは正の整数である。
【００７９】
一実施形態では、ラインの第１の半分の最中に、ピクセル０から（Ｎ−１）がＦＩＦＯ８０５に書き込まれ得る。ラインの第２の半分の最中に、ピクセルＮから（２Ｎ−１）がＦＩＦＯ８１０に書き込まれ得る。ライン半分の遅延の後に、ＦＩＦＯ８０５に記憶されたピクセル０から（Ｎ−１）及びＦＩＦＯ８１０に記憶されたピクセルＮから（２Ｎ−１）が並行に読み出され、インターリーブされて出力され得る。
【００８０】
次に図１０に移ると、仮想的な単一のコントローラ１０００の一実施形態のブロック図が示される。仮想的な単一のコントローラ１０００は、２つのディスプレイパイプラインを伴うコンピューティングシステムのために、少なくとも３つの異なるシナリオで１つ以上のディスプレイを制御するように構成され得る。第１のシナリオは、第１のディスプレイパイプラインにディスプレイ全体を駆動させることを伴う。第２のシナリオは、第２のディスプレイパイプラインにディスプレイ全体を駆動させることを伴う。第３のシナリオは、２つのディスプレイパイプラインに分割表示の別々の部分を駆動させることを伴う。
【００８１】
一実施形態では、分割表示シナリオの場合、仮想的な単一のコントローラ１０００がデュアルコントローラとして構成され得る。この実施形態では、ピクセルデインターリーバ１００６が、受信されたピクセルデータをデインターリーブするように構成され得る。ピクセルデインターリーバ１００６の出力は、マルチプレクサ（ｍｕｘ）１０１０及び１０１２に伝達され得る。ｍｕｘ１０１０及び１０１２は、デュアルパイプモード信号により制御され得る。デュアルパイプモード信号は、仮想的な単一のコントローラ１０００の動作モード（単一表示又は分割表示）を選択し得る。デインターリーブされたピクセルデータは、次いでコントローラ１０１４及び１０１６に送信され得る。
【００８２】
ピクセルクロックは、ｍｕｘ１００８の入力に、及び、ピクセルクロックを２つに分割するように構成され得るクロック分周器１００４に接続され得る。クロック分周器１００４の出力は、ｍｕｘ１００８の入力に接続され得、デュアルパイプモード信号は、ｍｕｘ１００８のための選択信号であり得る。ｍｕｘ１００８の出力から選択されたクロックは、次いでコントローラ１０１４及び１０１６に接続され得る。分割表示モードでは、コントローラ１０１４及び１０１６は、ピクセルを２つのレーン（４レーン動作の場合）又は１つのレーン（２レーン動作の場合）に出力し得る。
【００８３】
ｍｕｘ１０１８は、単一のコントローラがディスプレイ全体を駆動するシナリオで、どのコントローラがディスプレイを駆動するかを選択するように構成され得る。ｍｕｘ１０１８の出力はｍｕｘ１０２０に接続され、ｍｕｘ１０２０は、単一のコントローラがディスプレイ全体を駆動しているときに、デュアルパイプモード（分割表示の場合）又はシングルパイプモードを選択するように構成され得る。ｍｕｘ１０２０の出力は、インターフェース１０２２の４つのレーンに接続され得る。インターフェース１０２２は、ディスプレイ（示していない）に接続され得る。
【００８４】
一実施形態では、分割表示モードでは、各コントローラ１０１４及び１０１６は、映像クロックレートの半分で動作し得、映像フレームのライン毎のピクセルの半分が各コントローラ１０１４及び１０１６を通過し得る。デュアルコントローラモードでは、水平映像フォーマットタイミングパラメータは、シングルコントローラモードの場合に使用される、それらの値のうちの半分に対してプログラムされ得る。垂直映像フォーマットタイミングパラメータは、表示分割による影響を受け得ず、通常クロックレートで動作し得る。
【００８５】
次に図１１に移ると、２つのディスプレイパイプラインを同期させるための制御ロジックの一実施形態が示される。単一のディスプレイを駆動するために２つのディスプレイパイプラインを利用することは、２つのディスプレイパイプラインを同じフレームに同期させたままにすることに関連する各種の課題を提示し得る。例えば、一実施形態では、各ディスプレイパイプラインは、所与のフレームに対して動作し得、次のフレームの設定データ（すなわちフレームパケット）は、現在のフレームと次のフレームとの間のフレーム境界の直ぐ近くにある２つのディスプレイパイプラインに送信され得る。したがって、幾つかの場合、ディスプレイパイプラインの一方は、次のフレームの設定データを次のフレームの処理のために遅れずに受信し得る一方、ディスプレイパイプラインの他方は、設定データを遅れずに受信し得ない。このような場合、本明細書に開示する技術が利用されなければ、一方のディスプレイパイプラインは、フレームの間違った半分をディスプレイに導き得、ディスプレイに対して駆動される映像フレームの２つの半分は、特に、現在のフレームから次のフレームへと映像シーケンスの変化が起きるときに、著しく異なって見え得る。
【００８６】
上記のシナリオが生じることを避けるために、選択されたディスプレイパイプラインが次のフレームパケットを次のフレームの処理のために遅れずに受信しているかどうかに基づいて、異なる種類の垂直ブランキング期間（ＶＢＩ）信号が生成され得る。第１の種類のＶＢＩ信号は、「通常ＶＢＩ」信号と称され得、この通常ＶＢＩ信号は、各ディスプレイパイプラインが次のフレームの設定データの全てを既に受信しているときに送信され得る。第２の種類のＶＢＩ信号は、「繰返しＶＢＩ」信号と称され得、繰返しＶＢＩ信号は、ディスプレイパイプラインのいずれかが次のフレームの設定データの全てを未だ受信していないときに送信され得る。
【００８７】
図１１に示すように、２つのディスプレイパイプライン１１００及び１１０５が存在する。ディスプレイパイプライン１１００は、制御ユニット１１１０、パラメータＦＩＦＯ１１１５、及びタイミング生成器１１３０を含む。ディスプレイパイプライン１１００は、わかりづらくなるため図１１には示さない他のロジックも含み得る。制御ユニット１１１０は、パラメータＦＩＦＯ１１１５が次のフレームのフレームパケットを受信しているかを判定するように構成され得る。パラメータＦＩＦＯ１１１５が次のフレームのフレームパケットを受信していることを制御ユニット１１１０が検出すると、制御ユニット１１１０は、対応する通知をタイミング生成器１１３０及び１１３５に送信し得る。同様に、ディスプレイパイプライン１１０５は、制御ユニット１１２０、パラメータＦＩＦＯ１１２５、及びタイミング生成器１１３５を含む。パラメータＦＩＦＯ１１２５が次のフレームのフレームパケットを受信していることを制御ユニット１１２０が検出すると、制御ユニット１１２０は、通知をタイミング生成器１１３０及び１１３５に送信し得る。
【００８８】
一実施形態では、タイミング生成器１１３０及び１１３５のいずれかが、所与の分割表示シナリオのためのマスタタイミング生成器として選択され得る。別の実施形態では、タイミング生成器１１３０及び１１３５の一方のみが、マスタタイミング生成器になることができ得る。タイミング生成器１１３０又はタイミング生成器１１３５のいずれかがマスタタイミング生成器となり得る実施形態の場合、ホストデバイスのプロセッサ上で実行されるソフトウェアは、どのタイミング生成器がマスタになるかを選択するように構成され得る。この信号は、どのタイミング生成器が、各フレームについてディスプレイパイプライン１１００及び１１０５の両方に対して通常ＶＢＩ信号又は繰返しＶＢＩ信号を駆動するかを判定するために、ｍｕｘ１１４０及び１１４５に伝達され得る。各種の実施形態では、ｍｕｘ１１４０及び１１４５に伝達される選択信号は、同じでもよく、同じでなくてもよい。分割表示を使用しない実施形態では、ディスプレイパイプライン１１００及び１１０５の各々が別々のディスプレイを駆動し得、タイミング生成器１１３０及び１１３５が互いに独立して動作し得る。幾つかの実施形態では、両方のディスプレイパイプラインのために１つのタイミング生成器のみが存在し得ることに留意されたい。このような場合、このタイミング生成器は、両方のパイプラインにとって常にマスタタイミング生成器となる。
【００８９】
一実施形態では、各タイミング生成器１１３０及び１１３５は、特定の時点におけるディスプレイパイプライン１１００及び１１０５の両方からの通知の状態に基づいて、通常ＶＢＩ又は繰返しＶＢＩ信号のいずれかを生成し得る。ディスプレイパイプライン１１００及び１１０５の両方は、どのフレームを次に処理すべきかを判定するときに、同じ通常／繰返しＶＢＩ信号対を確認するディスプレイパイプライン１１００及び１１０５の両方を用いて、通常／繰返しＶＢＩ信号対のうちの１つのみを確認及び利用するように構成され得る。
【００９０】
次に図１２を参照すると、異なる種類の垂直ブランキング期間（ＶＢＩ）信号を生成するための方法１２００の一実施形態が示される。説明のために、この実施形態のステップが順番に示される。後述する方法の各種の実施形態では、記述する要素のうちの１つ以上が、示しているのとは異なる順序で同時に実行されてもよく、完全に省略されてもよいことに留意されたい。他の追加要素も所望に応じて実行され得る。本明細書に記述する各種のディスプレイパイプラインのいずれも、方法１２００を実行するように構成され得る。
【００９１】
第１のディスプレイパイプラインのマスタタイミング生成器は、次のフレームのフレームパケットを受信していることを特定する通知をディスプレイパイプラインの全てから受信しているかを判定し得る（ブロック１２０５）。マスタタイミング生成器は、次フレームのＶＢＩ信号の生成に備えて、ディスプレイパイプラインの全てから通知を受信しているかを判定し得る。現在の画像フレームは、ホストデバイスのディスプレイに表示され得る。一実施形態では、ホストデバイスは、２つのディスプレイパイプラインを有し得る。他の実施形態では、デバイスは、３つ以上のディスプレイパイプラインを有し得る。
【００９２】
マスタタイミング生成器は、次のフレームパケットを受信しているという通知をディスプレイパイプラインの全てから受信している場合（条件ブロック１２１０；“Ｙｅｓ”）に、通常ＶＢＩ信号を生成し、ディスプレイパイプラインのそれぞれに伝達し得る（ブロック１２１５）。そうでない場合、マスタタイミング生成器は、少なくとも１つのディスプレイパイプラインから通知を受信していない場合（条件ブロック１２１０；“Ｎｏ”）、繰返しＶＢＩ信号を生成し、ディスプレイパイプラインのそれぞれに伝達し得る（ブロック１２２０）。ブロック１２１５及び１２２０の後、ディスプレイパイプラインは、次のフレームの処理を開始し得（ブロック１２２５）、次いで、方法１２００はブロック１２０５に復帰し得る。
【００９３】
次に図１３を参照すると、ディスプレイパイプライン内でソースフレームを処理するための方法１３００の一実施形態が示される。説明のために、この実施形態のステップは順番に示される。後述する方法の各種の実施形態では、記述する要素のうちの１つ以上が、示しているのとは異なる順序で同時に実行されてもよく、完全に省略されてもよいことに留意されたい。他の追加要素も所望に応じて実行され得る。本明細書に記述する各種のディスプレイパイプラインのいずれも、方法１３００を実施するように構成され得る。
【００９４】
ディスプレイパイプラインが現在のソースフレームを処理している（ブロック１３０５）間に、ディスプレイパイプラインは、次のソースフレームの設定データを伴うフレームパケットを受信する場合（条件ブロック１３１０；“Ｙｅｓ”）に、次のフレームパケットを受信しているという通知をマスタタイミング生成器に送信し得る（ブロック１３１５）。幾つかの実施形態では、ディスプレイパイプラインは、通知を２つ以上のタイミング生成器に送信し得る。加えて、デバイス又は装置が複数のタイミング生成器を有するとき、タイミング生成器のうちの１つは、マスタタイミング生成器となるようにソフトウェアにより選択され得る。ディスプレイパイプラインは、現在のフレームの処理を始める前に、次のフレームのフレームパケットを受信していてもよいことに留意されたい。この場合、ディスプレイパイプラインは、現在のフレームの最中に通知を送信し得る。しかし、他の実施形態では、ディスプレイパイプラインは、フレームパケットがどの程度早く受信される（すなわち、現在のフレームよりもどれだけ前のフレームである）かには関係なく、フレームパケットを受信すると直ちに通知を送信し得る。
【００９５】
ディスプレイパイプラインは、次のソースフレームの設定データを伴うフレームパケットを受信しない場合（条件ブロック１３１０；“Ｎｏ”）、通知がマスタタイミング生成器に送信されることを避け得る（ブロック１３２０）。次に、ディスプレイパイプラインは、ＶＢＩ信号をマスタタイミング生成器から受信し得る（ブロック１３２５）。受信されたＶＢＩ信号が通常ＶＢＩ信号である場合（条件ブロック１３３０；“通常”）、ディスプレイパイプラインは、映像シーケンスの次のソースフレームを処理し得る（ブロック１３３５）。受信されたＶＢＩ信号が繰返しＶＢＩ信号である場合（条件ブロック１３３０；“繰返し”）、ディスプレイパイプラインは、現在のフレームを再び駆動し得る（ブロック１３４０）。各種の実施形態では、所与のディスプレイパイプラインは、繰返しＶＢＩ信号を受信する場合、所与のディスプレイパイプラインが次のフレームのフレームパケットを既に有している場合でも、現在のフレームを再び処理することに留意されたい。ブロック１３３５及び１３４０の後、方法１３００は、次のソースフレームの設定データを伴うフレームパケットがディスプレイパイプラインにより受信されているかを判定するために、条件ブロック１３１０に復帰し得る。
【００９６】
次に図１４を参照すると、システム１４００の一実施形態のブロック図が示される。示すように、システム１４００は、デスクトップコンピュータ１４１０、ラップトップコンピュータ１４２０、タブレットコンピュータ１４３０、携帯電話１４４０、テレビ１４５０（若しくは、テレビに接続されるように構成されたセットトップボックス）、腕時計又は他のウェアラブルアイテム１４６０などのチップ、回路、構成要素などを表し得る。他のデバイスが可能であり、企図される。図示する実施形態では、システム１４００は、外部メモリ１４０２に接続された（図１の）ＳｏＣ１１０の少なくとも１つのインスタンスを含む。
【００９７】
ＳｏＣ１１０は、１つ以上の周辺装置１４０４及び外部メモリ１４０２に接続される。供給電圧をＳｏＣ１１０に供給するとともに１つ以上の供給電圧をメモリ１４０２及び／又は周辺装置１４０４に供給する電源１４０６も設けられる。各種の実施形態では、電源１４０６は、バッテリ（例えば、スマートフォン、ラップトップ又はタブレットコンピュータの再充電可能なバッテリ）を表し得る。幾つかの実施形態では、ＳｏＣ１１０の２つ以上のインスタンスが含まれ得る（及び２つ以上の外部メモリ１４０２もまた含まれ得る）。
【００９８】
メモリ１４０２は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３など）ＳＤＲＡＭ（ｍＤＤＲ３などのモバイルバージョンのＳＤＲＡＭ、及び／又はＬＰＤＤＲ２などの低電力バージョンのＳＤＲＡＭを含む）、ＲＡＭＢＵＳ  ＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）などの任意の種類のメモリであり得る。シングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）などのメモリモジュールを形成するために、１つ以上のメモリデバイスが回路基板に接続され得る。代わりに、デバイスは、チップオンチップ構成、パッケージオンパッケージ構成、又はマルチチップモジュール構成にてＳｏＣ１１０に装着され得る。
【００９９】
周辺装置１４０４は、システム１４００の種類に応じた任意の所望の回路を含み得る。例えば、一実施形態では、周辺装置１４０４は、ＷｉＦｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、セルラー、全地球測位システムなどの各種の無線通信用装置を含み得る。周辺装置１４０４は、ＲＡＭストレージ、ソリッドステートストレージ、又はディスクストレージなどの追加ストレージも含み得る。周辺装置１４０４は、タッチディスプレイ画面若しくはマルチタッチディスプレイ画面を含むディスプレイ画面、キーボード又は他の入力デバイス、マイクロフォン、スピーカなどのユーザインターフェースデバイスを含み得る。
【０１００】
各種の実施形態では、前述した方法及び／又はメカニズムを実施するためにソフトウェアアプリケーションのプログラム命令が使用され得る。プログラム命令は、ハードウェアの挙動をＣなどの高級プログラミング言語で記述し得る。代わりに、Ｖｅｒｉｌｏｇなどのハードウェア設計言語（ＨＤＬ）が使用され得る。プログラム命令は、非一時的なコンピュータ可読記憶媒体に記憶され得る。多数の種類の記憶媒体が利用可能である。記憶媒体は、プログラム実行のためのプログラム命令及び関連データをコンピュータに提供するために、コンピュータにより使用中にアクセス可能であり得る。幾つかの実施形態では、ゲートのリストを含むネットリストを合成ライブラリから生成するために、合成ツールがプログラム命令を読み出す。
【０１０１】
上述した実施形態は、実装の非限定的な例にすぎないことが強調される。上記の開示を十分に理解すれば、多くの変形及び変更が当業者にとって明らかとなるであろう。以下の請求項は、このような変形及び変更の全てを包含するように解釈されることを意図している。
【図１】
0006652937.tif 000002
【図２】
0006652937.tif 000003
【図３】
0006652937.tif 000004
【図４】
0006652937.tif 000005
【図５】
0006652937.tif 000006
【図６】
0006652937.tif 000007
【図７】
0006652937.tif 000008
【図８】
0006652937.tif 000009
【図９】
0006652937.tif 000010
【図１０】
0006652937.tif 000011
【図１１】
0006652937.tif 000012
【図１２】
0006652937.tif 000013
【図１３】
0006652937.tif 000014
【図１４】
0006652937.tif 000015