(57)【特許請求の範囲】
【請求項１】
エッジアルファを使用して画像を並進させるシステムにおいて、
画像のエッジに適用されるエッジアルファ値でプログラム可能な１つ以上のレジスタであって、画像は、指定の進行方向に画像フレームを横切って並進され、そしてエッジは、指定の進行方向に垂直であり、前記エッジアルファ値は少なくとも速度に基づくものであり、当該速度は前記画像が前記画像フレームを横切って並進すべき速度であるような１つ以上のレジスタと、
前記１つ以上のレジスタに結合されたコントロールユニットであって、
画像のピクセル及びそれに対応するアルファ値を混合ユニットに供給し、
画像のエッジを検出し、
前記１つ以上のレジスタからのエッジアルファ値を、画像のエッジを形成するピクセルと共に前記混合ユニットへ供給して、画像フレームの対応ピクセルと混合させる、
ように構成されたコントロールユニットと、
を備えたシステム。
【請求項２】
前記エッジアルファ値は、画像フレームを横切って画像を並進すべき速度に対応する分数ピクセル値に基づいて指定される、請求項１に記載のシステム。
【請求項３】
前記エッジアルファ値は、それに対応する各アルファ値の分数値である、請求項１に記載のシステム。
【請求項４】
前記画像フレームの対応ピクセルは、画像のエッジを形成するピクセルに隣接する、請求項１に記載のシステム。
【請求項５】
ソースバッファから画像を形成する画像ピクセルをフェッチするように構成されたフェッチユニットを更に備え、画像ピクセルは、画像のエッジを形成するエッジピクセルと、エッジピクセルではない画像ピクセルより成る内部ピクセルとを含み、更に、フェッチユニットは、内部ピクセルに対応するアルファ値をフェッチし、前記コントロールユニットは、更に、
エッジピクセルを識別して画像のエッジを検出し、
内部ピクセル及び内部ピクセルに対応するアルファ値を前記混合ユニットへ供給し、
エッジピクセル、及び１つ以上のレジスタからのエッジアルファ値を前記混合ユニットへ供給して、画像フレームの対応ピクセルと混合する、
ように構成された、請求項１に記載のシステム。
【請求項６】
１つ以上のユーザインターフェイスユニットを更に備え、このユーザインターフェイスユニットは、
１つ以上の付加的な画像を形成するピクセル、及びそのピクセルに対応する各アルファ値を１つ以上の付加的なソースバッファからフェッチし、及び
ピクセル及び各アルファ値を混合ユニットに供給して、画像フレームのピクセル、内部ピクセル、アルファ値、エッジピクセル、及びエッジアルファ値と混合させる、
ように構成された、請求項５に記載のシステム。
【請求項７】
前記画像は、ビデオストリームのフレームである、請求項５に記載のシステム。
【請求項８】
前記エッジピクセルは、画像のエッジのうちの第１エッジを形成する第１エッジピクセル、及び画像のエッジのうちの第２エッジを形成する第２エッジピクセルを含み、
前記エッジアルファ値は、第１エッジピクセルに関連した第１のエッジアルファ値、及び第２エッジピクセルに関連した第２のエッジアルファ値を含み、
前記第１エッジ及び第２エッジは、指定の進行方向に垂直であり、
前記第１アルファ値と第２アルファ値の和は、１００％不透明に対応するアルファ値を表わす、請求項５に記載のシステム。
【請求項９】
エッジアルファを使用して画像を並進させる方法において、
画像の画像ピクセル及びそれに対応するアルファ値を混合ユニットへ供給する段階であって、画像は、指定の進行方向に画像フレームを横切って並進され、そして画像のエッジは、指定の進行方向に垂直であるような段階と、
画像のエッジを検出する段階と、
エッジアルファ値を、画像のエッジを形成するエッジピクセルと共に前記混合ユニットへ供給して、画像フレームの対応ピクセルと混合させる段階であって、前記エッジアルファ値は少なくとも速度に基づくものであり、当該速度は前記画像が前記画像フレームを横切って並進すべき速度である段階と、
を備えた方法。
【請求項１０】
前記画像ピクセルは、行先フレームに対応し、前記エッジピクセルは、その行先フレームのエッジに対応し、前記方法は、更に、
前記混合ユニットがエッジアルファ値をエッジピクセルに適用して、前記行先フレームのエッジの２つ以上を部分的に透明にさせる一方、前記行先フレームの２つ以上のエッジの内側の行先フレームのエリアを完全に不透明に保持する段階と、
指定の進行方向にディスプレイフレームを横切って前記行先フレームを並進させる段階と、
を備えた請求項９に記載の方法。
【請求項１１】
エッジアルファ値をエッジピクセルに適用する前記段階は、
前記エッジアルファ値のうちの第１のエッジアルファ値を、前記行先フレームの２つ以上のエッジのうちの第１エッジに対応する前記エッジピクセルのうちの第１エッジピクセルに適用すること、及び
前記エッジアルファ値のうちの第２のエッジアルファ値を、前記行先フレームの２つ以上のエッジのうちの第２エッジに対応する前記エッジピクセルのうちの第２エッジピクセルに適用すること、
を含み、前記第１及び第２エッジは、互いに平行である、請求項１０に記載の方法。
【請求項１２】
エッジアルファ値をエッジピクセルに適用する前記段階は、更に、
前記エッジアルファ値のうちの第３のエッジアルファ値を、前記行先フレームの２つ以上のエッジのうちの第３エッジに対応する前記エッジピクセルのうちの第３エッジピクセルに適用すること、及び
前記エッジアルファ値のうちの第４のエッジアルファ値を、前記行先フレームの２つ以上のエッジのうちの第４エッジに対応する前記エッジピクセルのうちの第４エッジピクセルに適用すること、
を含み、前記第３及び第４エッジは、互いに平行で、且つ前記第１エッジ及び第２エッジに垂直である、請求項１１に記載の方法。
【請求項１３】
ディスプレイフレームを横切って指定の進行方向に行先フレームを並進させることは、少なくとも前記並進速度に対応する移動ピクセル数にしたがって行先フレームを並進させることを含み、そのピクセル数は、整数値ではなく分数値である、請求項１１に記載の方法。
【請求項１４】
前記並進速度と、前記ディスプレイフレームに毎秒表示されるフレーム数を表わすフレームレートから、前記ピクセル数を計算することを含む、請求項１３に記載の方法。
【請求項１５】
エッジアルファ値をエッジピクセルに適用する前記段階は、更に、
前記エッジアルファ値のうちの第１のエッジアルファ値を、前記行先フレームの２つ以上のエッジのうちの第１エッジに対応する前記エッジピクセルのうちの第１エッジピクセルに適用すること、及び
前記エッジアルファ値のうちの第２のエッジアルファ値を、前記行先フレームの２つ以上のエッジのうちの第２エッジに対応する前記エッジピクセルのうちの第２エッジピクセルに適用すること、
を含み、前記第１及び第２エッジは、互いに平行であり、そして前記第１のエッジアルファ値及び第２のエッジアルファ値は、前記分数値に基づいて指定される、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィック情報処理の分野に関するもので、より詳細には、スクリーンを横切って画像／ビデオフレームを移動することに関する。
【背景技術】
【０００２】
移動電話、ノードブックコンピュータ、等のポータブルデジタル装置を含む多数のコンピュータシステムの動作の一部分は、液晶ディスプレイ（ＬＣＤ）のようなあるタイプのディスプレイ装置を使用して、画像、ビデオ情報／ストリーム及びデータを表示することである。従って、これらのシステムは、典型的に、画像及びデータ、ビデオ情報を含む、を発生するための機能を合体しており、それらは、その後、ディスプレイ装置へ出力される。そのような装置は、典型的に、画像及びビデオ情報をその後の表示のために処理するビデオグラフィック回路を備えている。
【０００３】
デジタル画像処理では、画像の最小の情報アイテムが「画素」と称され、更に一般的には、「ピクセル」とも称される。便宜上、ピクセルは、一般的に、規則的な二次元格子に配列される。この配列を使用し、各ピクセルに同じ動作を独立して均一に適用することで多数の共通の動作を実施することができる。各ピクセルは、デジタル画像の基本的部分であるから、ピクセル数が多い程、デジタル画像の表現精度が高くなる。各ピクセルの強度が変化し、カラーシステムでは、各ピクセルが、典型的に、赤、緑、青、及び黒のような３つ又は４つの成分を有する。
【０００４】
ＬＣＤスクリーンのようなディスプレイ装置に表示されるほとんどの画像及びビデオ情報は、一連の画像フレーム又は略してフレームとして解釈される。一般的に、フレームとは、完全な動画又はビデオストリームを作り上げる多数の静止画像の１つであるが、フレームは、又、単にデジタル（個別又は連続スキャン）ディスプレイに表示される静止画像としてより広く解釈することもできる。フレームは、典型的に、画像／ビデオフレームの解像度に基づいて指定数のピクセルより成る。フレームに関連した情報は、典型的に、スクリーン上に表示されるピクセルごとにカラー値より成る。カラー値は、１ビットモノクロ、４ビットパレット化、８ビットパレット化、１６ビットハイカラー、及び２４ビットトゥルーカラーのフォーマットで共通に記憶される。ピクセルの透明度に関する情報を保持するために付加的なアルファチャンネルがしばしば使用される。カラー値は、多数のカラースペースの１つに対応する情報を表わすことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
カラー値に加えて、ピクセルは、ピクセルの不透明度情報を与える関連ピクセル毎アルファ値も有する。アルファ値は、アルファチャンネルと通常称されるものに記憶され、各アルファ値は、０と１との間であり、０の値は、ピクセルがカバレージ情報をもたず透明であることを意味し、そして１の値は、ピクセルが不透明であることを意味する。この不透明情報に基づき、画像フレームの種々のレイヤが一緒に混合される。一般的に、混合とは、１つのレイヤの一部分を別のレイヤ上にオーバーレイするか、又はあるエレメントの部分的透明の見掛けをあるレイヤに生成するために、画像の多数のレイヤを合成するプロセスである。例えば、混合は、コンピュータでレンダリングされた画像エレメントをライブフッテージと合成するときに広く使用される。あるケースでは、スクリーンを横切って画像が並進(translate)（移動(move)）される。画像は、静止画像でもよいし、又はビデオフレームのコンテンツを表わしてもよい。それ故、混合結果は、画像の動きを表わす。画像が動く速度と、毎秒表示されるフレームの数とに基づき、垂直及び水平の両方向に移動するピクセルの数を計算することができる。即ち、移動率は、ピクセルを参照することができる。典型的に、移動のピクセル数は、整数ではなく、１ピクセル以下の移動率（又は分数ピクセル移動）を指示する。しかしながら、（移動ピクセルの）数をそれに最も近い整数に丸め、そしてあるフレームにおける特別なピクセル移動で補償するきには、並進が希望通りのスムースなものとはならない。
【０００６】
当業者であれば、そのような従来技術をここに開示する本発明と比較した後に、従来技術に関連した他の対応する問題が明らかとなろう。
【課題を解決するための手段】
【０００７】
ビデオ及び／又は画像フレームのピクセルを処理するためのディスプレイパイプにおける混合ユニットは、複数のレイヤに対するピクセルを混合するための複数の混合段を備えている。例えば、複数（２、３又はそれ以上）のレイヤが、一度に２レイヤ混合され、各混合段は、２つのレイヤにおいて混合動作を遂行し、所与の混合段の出力は、次の混合段への入力を与え、等々で、最終混合段まで至る。各混合段内で混合を行うのに使用される混合方程式は、複数の混合レベルを伴うマルチステップ方程式である。各所与の混合段内で、現在レイヤのアルファ値及びカラー値と、（背景レイヤで始めて）それ以前に混合されたレイヤを表わすカラー結果とが全て合成されて、合成レイヤにおける所与のピクセル位置に対する出力値を得る。混合は、多数のタイプのアルファ値を使用して遂行される。例えば、個々のピクセルは、各々、それに対応するピクセル毎アルファ値を有し、個々のフレームは、各々、静的なフレーム毎アルファ値を有し、そして個々のフレームは、各々、フレーム毎ディゾルブアルファ値とも称される静的なフレーム毎合成アルファ値を有する。ある実施形態では、ピクセル毎アルファ値は、カラー値で予め乗算される。
【０００８】
１組の実施形態において、エッジ(edge)アルファ値として指定される付加的なタイプのアルファ値も、混合中に使用される。あるケースでは、スクリーンを横切って画像が並進（移動）される。画像が移動する速度と、毎秒表示されるフレームの数とに基づき、垂直及び水平の両方向に移動するピクセルの数が計算される。即ち、移動率は、ピクセルを参照する。移動のピクセル数は、整数ではなく、１ピクセル以下の移動率（又は分数ピクセル移動）を指示する。（移動ピクセルの）数をそれに最も近い整数に丸め、そしてあるフレームにおける特別なピクセル移動で補償する場合は、スクリーンを横切る並進が希望通りのスムースなものには見えない。それ故、ビデオ及び／又は画像フレームのピクセルの処理に使用されるディスプレイパイプは、並進されるべき画像のエッジに関連したエッジアルファ値を記憶するために１つ以上のレジスタを備えている。画像は、静止画像でもよいし、又はビデオフレームのコンテンツを表わしてもよい。エッジアルファ値は、ディスプレイフレームにおいて画像が移動される分数ピクセルに基づいてセットされる。ディスプレイパイプは、進行方向にあるピクセルの列及び行をコピーし、そしてこの付加的な列及び行にエッジアルファ値を適用する。エッジアルファ値は、画像の付加的な列及び行と、ディスプレイフレーム内の隣接ピクセルとの混合をコントロールし、１ピクセル以下の率の移動を模擬する部分ピクセル移動の作用を与える。
【０００９】
１組の実施形態において、ビデオパイプは、画像のエッジに適用されるエッジアルファ値でプログラムできる１つ以上のレジスタを備え、画像は、指定の進行方向に画像フレームを横切って並進され、そしてエッジは、指定の進行方向に垂直である。又、ビデオパイプは、画像のピクセル及びそれに対応するアルファ値を混合ユニットへ供給し、画像のエッジを検出し、そして１つ以上のレジスタからのエッジアルファ値を、画像のエッジを形成するピクセルと共に混合ユニットへ供給して、画像フレームの対応ピクセルと混合するために、１つ以上のレジスタに結合されたコントロールユニットも備えている。エッジアルファ値は、画像フレームを横切って画像を並進すべき分数ピクセル値に基づいて指定される。更に、エッジアルファ値は、それに対応する各アルファ値の分数値でもよい。換言すれば、エッジアルファ値は、画像のエッジを形成するピクセルではない画像ピクセルに対応するアルファ値の分数値である。画像フレームの対応ピクセルは、画像のエッジを形成するピクセルに隣接する。
【００１０】
別の１組の実施形態において、ディスプレイパイプは、ソースバッファから画像ピクセルをフェッチするためのフェッチユニットを備えている。画像ピクセルは、指定の進行方向に画像フレームを横切って並進される画像を形成し、画像ピクセルは、画像のエッジを形成するエッジピクセルを含むと共に、エッジピクセルではない残りの画像ピクセルを表わす内部ピクセルも含む。又、フェッチユニットは、内部ピクセルに対応するアルファ値もフェッチする。ディスプレイパイプは、更に、エッジピクセルに関連したエッジアルファ値でプログラムできるレジスタを備えると共に、エッジピクセルを識別し、内部ピクセル及びアルファ値を混合ユニットへ供給して画像フレームのピクセルと混合し、且つエッジピクセル及びエッジアルファ値を混合ユニットへ供給して画像フレームの対応ピクセルと混合するためにコントロールユニットも備えている。又、ディスプレイパイプは、１つ以上の付加的な画像を形成するピクセルをフェッチすると共に、ピクセルに対応する各アルファ値もフェッチするために１つ以上のユーザインターフェイスユニットを備えている。このユーザインターフェイスユニットは、ピクセル及び各アルファ値を混合ユニットに供給して、画像フレームのピクセル、内部ピクセル、アルファ値、エッジピクセル、及びエッジアルファ値と混合させる。画像ピクセルにより形成された画像は、ビデオストリームのフレームを表わす。エッジピクセルは、画像の第１エッジを形成するエッジピクセル、及び画像の第２エッジを形成するエッジピクセルを含み、第１エッジ及び第２エッジは、指定の進行方向に垂直である。対応的に、エッジアルファ値は、画像の第１エッジを形成するエッジピクセルに関連した第１のエッジアルファ値、及び画像の第２エッジを形成するエッジピクセルに関連した第２のエッジアルファ値を含み、第１のアルファ値と第２のアルファ値の和は、１００％不透明に対応するアルファ値を表わす。
【００１１】
１つの実施形態において、システムは、指定の進行方向に指定の並進率でディスプレイフレームを横切って並進されるビデオフレームに対応してビデオピクセルにより表されたビデオ情報を記憶するためのビデオバッファを備えている。ビデオピクセルは、ビデオフレームのエッジに沿ったビデオ情報を表わすエッジピクセルを含む。又、システムは、画像ピクセルにより表された画像情報を記憶するためのフレームバッファを備えると共に、エッジピクセルに関連したエッジアルファ値を記憶する少なくとも１つのレジスタを含むディスプレイパイプも備えている。指定の並進率は、垂直及び水平方向への移動のピクセル数に対応し、そしてその移動ピクセル数に従ってアルファ値が指定される。ディスプレイパイプは、ビデオバッファからビデオピクセルを、及びフレームバッファから画像ピクセルをフェッチし、そしてエッジアルファ値を、フェッチしたエッジピクセルと混合して、混合エッジピクセルを発生する。次いで、ディスプレイパイプは、混合エッジピクセルを含むフェッチしたビデオピクセルを、フェッチした画像ピクセルと混合して、混合ピクセルを発生する。更に、システムは、混合ピクセルを受け取って、その混合ピクセルをディスプレイスクリーンに表示すべく与えるためにディスプレイコントローラも備えている。
【００１２】
以下、添付図面を参照して、本発明を詳細に説明する。
【図面の簡単な説明】
【００１３】
【図１】グラフィックディスプレイシステムを含む集積回路の一実施形態のブロック図である。
【図２】システムメモリを含むグラフィックディスプレイシステムの一実施形態のブロック図である。
【図３】グラフィックディスプレイシステムにおけるディスプレイパイプの一実施形態のブロック図である。
【図４】一実施形態による異なる混合方法に対する混合方程式のテーブルである。
【図５】一実施形態による異なる混合方法に対する有効アルファ値の各計算のテーブルである。
【図６ａ】一実施形態により２つの画像レイヤのフレームピクセルを混合するための混合段の概略図である。
【図６ｂ】一実施形態により異なる混合方法の１つに基づいて混合するように図６ａの混合段をプログラムするための選択メカニズムの論理図である。
【図７】一実施形態によりディスプレイフレーム内の行先フレームの配置及び移動を示す図である。
【図８】スクリーンを横切って画像を移動するための方法の一実施形態を示すフローチャートである。
【図９】ディスプレイフレームにビデオフレームを表示する方法の一実施形態を示すフローチャートである。
【発明を実施するための形態】
【００１４】
本発明は、種々の変更を受けそして別の形態でも実施できるが、その特定の実施形態を一例として添付図面に示して以下に詳細に説明する。しかしながら、添付図面及び詳細な説明は、本発明を、ここに開示する特定の形態に限定するものではなく、本発明は、特許請求の範囲に規定される本発明の精神及び範囲内に入る全ての変更、等効物及び代替え物を網羅することを理解されたい。ここに使用する見出しは、編成上の目的に過ぎず、説明の範囲を限定するためのものではない。又、本出願全体にわたって使用される「〜してもよい(may)」という語は、許すという意味（即ち、〜の潜在性があるという意味）で使用されるもので、強制の意味（即ち、〜しなければならないという意味）ではない。同様に、「含む(include)」、「含んでいる(including)」及び「含む(includes)」という語は、含むことを意味するが、それに限定されない。
【００１５】
種々のユニット、回路又は他のコンポーネントは、１つ又は複数のタスクを遂行するように「構成される」ものとして述べる。この点について、「構成される」とは、動作中に１つ又は複数のタスクを遂行する「回路を有する」ことを一般的に意味する構造を広く表現するものである。従って、ユニット／回路／コンポーネントは、そのユニット／回路／コンポーネントが現在オンでなくても、タスクを遂行するように構成することができる。一般的に、「構成される」に対応する構造を形成する回路は、ハードウェア回路、及び／又は動作を行うために実行できるプログラムインストラクションを記憶するメモリを含む。このメモリは、スタティック又はダイナミックランダムアクセスメモリのような揮発性メモリ、及び／又は光学的又は磁気ディスク記憶装置、フラッシュメモリ、プログラマブルリードオンリメモリ、等の不揮発性メモリを含む。同様に、種々のユニット／回路／コンポーネントは、説明の便宜上、１つ又は複数のタスクを遂行するものとして説明されてもよい。そのような説明は、「構成される」という句を含むものと解釈されねばならない。１つ以上のタスクを遂行するように構成されたユニット／回路／コンポーネントを表現する場合に、そのユニット／回路／コンポーネントに関して３５Ｕ.Ｓ.Ｃ.§１１２、第６節の解釈を引用しないことが明確に意図される。
【００１６】
図１を参照すれば、システム１００のブロック図が示されている。図１の実施形態において、システム１００は、外部メモリ１０２Ａ−１０２Ｂに結合された集積回路（ＩＣ）１０１を備えている。ここに示す実施形態では、ＩＣ１０１は、中央処理ユニット（ＣＰＵ）ブロック１１４を備え、これは、１つ以上のプロセッサ１１６及びレベル２（Ｌ２）キャッシュ１１８を含む。他の実施形態は、Ｌ２キャッシュ１１８を含まず、及び／又は付加的なレベルのキャッシュを含むことがある。更に、３つ以上のプロセッサ１１６を含む実施形態や、１つのプロセッサ１１６しか含まない実施形態も意図される。ＩＣ１０１は、更に、１組の１つ以上の非リアルタイム（ＮＲＴ）周辺装置１２０、及び１組の１つ以上のリアルタイム（ＲＴ）周辺装置１２８を備えている。ここに示した実施形態では、ＲＴ周辺装置１２８は、画像プロセッサ１３６、１つ以上のディスプレイパイプ１３４、並進ユニット１３２、及びポートアービター１３０を含む。他の実施形態では、より多くのプロセッサ１３６又はより少ない画像プロセッサ１３６、より多くのディスプレイパイプ１３４又はより少ないディスプレイパイプ１３４、及び／又は必要に応じて付加的なリアルタイム周辺装置が含まれてもよい。画像プロセッサ１３６は、システム１００の１つ以上のカメラから画像データを受け取るように結合される。同様に、ディスプレイパイプ１３４は、システムの１つ以上のディスプレイをコントロールする１つ以上のディスプレイコントローラ（図示せず）に結合される。画像プロセッサ１３６は、並進ユニット１３２に結合され、該ユニットは、更に、ポートアービター１３０に結合され、これは、ディスプレイパイプ１３４にも結合される。ここに示す実施形態では、ＣＰＵブロック１１４は、ブリッジ／直接メモリアクセス（ＤＭＡ）コントローラ１２４に結合され、このコントローラは、１つ以上の周辺装置１２６、及び／又は１つ以上の周辺インターフェイスコントローラ１２２に結合される。周辺装置１２６及び周辺インターフェイスコントローラ１２２の数は、種々の実施形態においてゼロから希望の数まで変化する。図１に示すシステム１００は、更に、Ｇ０  １１２Ａ及びＧ１  １１２Ｂのような１つ以上のグラフィックコントローラを含むグラフィックユニット１１０を備えている。他の実施形態では、グラフィックユニット当たりのグラフィックコントローラの数及びグラフィックユニットの数が変化し得る。図１に示すように、システム１００は、１つ以上のメモリ物理的インターフェイスユニット（ＰＨＹ）１０４Ａ−１０４Ｂに結合されたメモリコントローラ１０６を備えている。メモリＰＨＹ１０４Ａ−１０４Ｂは、ＩＣ１０１のピンを経てメモリ１０２Ａ−１０２Ｂと通信するように構成される。又、メモリコントローラ１０６は、１組のポート１０８Ａ−１０８Ｅも含む。ポート１０８Ａ−１０８Ｂは、各々、グラフィックコントローラ１１２Ａ−１１２Ｂに結合される。ＣＰＵブロック１１４は、ポート１０８Ｃに結合される。ＮＲＴ周辺装置１２０及びＲＴ周辺装置１２８は、各々、ポート１０８Ｄ−１０８Ｅに結合される。他の実施形態では、メモリコントローラ１０６に含まれるポートの数が、��モリコントローラの数と同様に、変化し得る。他の実施形態では、メモリ物理的レイヤ（ＰＨＹ）１０４Ａ−１０４Ｂ及びそれに対応するメモリ１０２Ａ−１０２Ｂの数が、図１に示す２つより少なくても多くてもよい。
【００１７】
１つの実施形態において、各ポート１０８Ａ−１０８Ｅは、特定タイプのトラフィックに関連している。例えば、１つの実施形態において、トラフィックのタイプは、ＲＴトラフィック、非ＲＴ（ＮＲＴ）トラフィック、及びグラフィックトラフィックを含む。他の実施形態では、前記トラフィックタイプの副組に加えて又はそれに代わって他のトラフィック形態が含まれる。各タイプのトラフィックは、異なる仕方で（例えば、要件及び振舞いに関して）特徴付けされてもよく、そしてメモリコントローラ１０６は、その特徴に基づいて高い性能を発揮するようにトラフィックタイプを異なる仕方で取り扱う。例えば、ＲＴトラフィックは、指定の時間量内に各メモリ動作のサービスを要求する。動作のレイテンシーが指定の時間量を越える場合には、ＲＴ周辺装置１２８にエラー動作が生じる。例えば、画像プロセッサ１３６において画像データが失われるか、又はディスプレイパイプ１３４が結合されたディスプレイに表示された画像が目で見て歪んだ状態になる。ＲＴトラフィックは、例えば、同時性(isochronous)として特徴付けられる。他方、グラフィックトラフィックは、比較的高い帯域巾であるが、レイテンシーに敏感でない。プロセッサ１１６等からのＮＲＴトラフィックは、性能上の理由でレイテンシーに敏感であるが、高いレイテンシーに生き残る。即ち、ＮＲＴトラフィックは、一般的に、ＮＲＴトラフィックを発生する装置においてエラー動作を生じることなくいかなるレイテンシーでもサービスされる。同様に、レイテンシーにはあまり敏感でないが高い帯域巾のグラフィックトラフィックは、一般的に、いかなるレイテンシーでもサービスされる。他のＮＲＴトラフィックは、比較的低い帯域巾であって且つ一般的に適度なレイテンシーでサービスされるオーディオトラフィックを含む。ほとんどの周辺装置のトラフィックもＮＲＴである（例えば、磁気、光学又はソリッドステート記憶装置のような記憶装置へのトラフィック）。異なるトラフィックタイプに関連したポート１０８Ａ−１０８Ｅを設けることにより、メモリコントローラ１０６は、異なるトラフィックタイプに並列に露出される。
【００１８】
上述したように、ＲＴ周辺装置１２８は、画像プロセッサ１３６及びディスプレイパイプ１３４を含む。ディスプレイパイプ１３４は、１つ以上の画像フレームをフェッチしそしてそれらフレームを混合して表示画像を生成するための回路を含む。ディスプレイパイプ１３４は、更に、１つ以上のビデオパイプラインを含み、ビデオフレームは、（比較的）スタティックな画像フレームと混合されて、ビデオフレームレートで表示するためのフレームを生成する。ディスプレイパイプ１３４の出力は、ディスプレイスクリーンに表示されるべきピクセルのストリームである。ピクセル値は、ディスプレイスクリーンに表示するためにディスプレイコントローラへ送信される。画像プロセッサ１３６は、カメラデータを受け取り、そしてそのデータを、メモリに記憶される画像へと処理する。
【００１９】
ディスプレイパイプ１３４及び画像プロセッサ１３６は、両方とも、バーチャルアドレススペースで動作し、従って、並進を使用して、メモリを読み取り又は書き込むメモリ動作のための物理的アドレスを発生する。画像プロセッサ１３６は、多少ランダムアクセスメモリのパターンを有し、従って、並進のための並進ユニット１３２に依存する。並進ユニット１３２は、キャッシュ記憶された他の並進に対して並進がどれほど頻繁に使用されるかに基づき各並進をある期間中キャッシュ記憶する並進ルックアサイドバッファ（ＴＬＢ）を使用する。例えば、ＴＬＢは、セットアソシアティブ又はフルアソシアティブ構造を使用し、最近最も使用されていない（ＬＲＵ）タイプのアルゴリズムを使用して、セット内の並進の間で（又はフルアソシアティブ構成ではＴＬＢにわたって）並進の使用の最近度をランク付けする。ＬＲＵタイプのアルゴリズムは、例えば、トゥルーＬＲＵ、擬似ＬＲＵ、最近最も使用される（ＭＲＵ）、等を含む。更に、ＴＬＢにおける容量ミスの影響を減少するために非常に大きなＴＬＢが実施される。
【００２０】
他方、ディスプレイパイプ１３４のアクセスパターンは、非常に規則的である。例えば、各ソース画像の画像データは、バーチャルアドレススペースの連続メモリ位置に記憶される。従って、ディスプレイパイプ１３４は、バーチャルページからのソース画像データの処理を開始し、その後のバーチャルページは、そのバーチャルページに対して連続的となる。即ち、バーチャルページ番号は、画像データがフェッチされたときにページからページへ１だけ増加又は減少する数字順である。同様に、並進は、メモリ内の所与のページテーブルにおいて互いに連続的である（例えば、ページテーブル内の連続的エントリは、互いに数字的に１だけ大きいか又は小さいバーチャルページ番号を並進する）。幾つかの実施形態では、２つ以上のページテーブルが使用され、従って、ページテーブルの最後のエントリは、次のページテーブルの最初のエントリと連続していないが、ほとんどの並進は、ページテーブルにおいて連続している。別の仕方で考えると、画像データを記憶するバーチャルページは、バーチャルアドレススペースにおいて互いに隣接している。即ち、バーチャルアドレススペースにおいて隣接するバーチャルページ間に介在するページはない。
【００２１】
ディスプレイパイプ１３４は、ディスプレイパイプが画像データを読み取る前に並進をプリフェッチする並進ユニットを実施する。プリフェッチは、ソース画像の処理を開始すべきときに開始され、そして並進ユニットは、並進ユニットの並進メモリをいっぱいにするに充分な連続的並進をプリフェッチする。ディスプレイパイプのフェッチ回路は、バーチャルページのデータの処理が完了したときに並進ユニットに通知し、そして並進ユニットは、対応する並進を無効化して、付加的な並進をプリフェッチする。従って、最初のプリフェッチが完了すると、ディスプレイパイプ１３４がバーチャルページからのフェッチを開始するとき、各バーチャルページの並進を並進ユニットにおいて頻繁に利用することができる。更に、ディスプレイパイプ１３４からの並進ユニット１３２に対する競合は、並進プリフェッチユニットの利益のために排除される。ディスプレイパイプ１３４の並進ユニット１３２は、１組の隣接バーチャルページに対して並進をフェッチするので、それらは、「ストリーミング並進ユニット」と称される。
【００２２】
一般的に、ディスプレイパイプ１３４は、比較的スタティックなフレームをフェッチするように構成された１つ以上のユーザインターフェイスユニットを備えている。即ち、スタティックフレームのソース画像は、ビデオシーケンスの一部分ではない。スタティックフレームは、変化されるが、ビデオシーケンスに対応するビデオフレームレートに従って変化するのではない。ディスプレイパイプ１３４は、更に、ビデオフレームをフェッチするように構成された１つ以上のビデオパイプラインを備えてもよい。これらの種々のパイプライン（例えば、ユーザインターフェイスユニット及びビデオパイプライン）は、一般的に、「画像処理パイプライン」と称される。
【００２３】
メモリコントローラ１０６に戻ると、一般的に、ポートは、１つ以上のソースと通信するためのメモリコントローラ１０６上の通信ポイントである。あるケースでは、ポートは、ソース専用である（例えば、ポート１０８Ａ−１０８Ｂは、各々、グラフィックコントローラ１１２Ａ−１１２Ｂ専用である）。他のケースでは、ポートは、複数のソース間で共有される（例えば、プロセッサ１１６は、ＣＰＵポート１０８Ｃを共有し、ＮＲＴ周辺装置１２０は、ＮＲＴポート１０８Ｄを共有し、そしてディスプレイパイプ１３４及び画像プロセッサ１３６のようなＲＴ周辺装置１２８は、ＲＴポート１０８Ｅを共有する）。ポートは、１つ以上のソースと通信するために単一のインターフェイスに結合される。従って、ソースがインターフェイスを共有するときには、ソース間を選択するためにインターフェイスのソース側にアービターがある。例えば、Ｌ２キャッシュ１１８は、メモリコントローラ１０６へのＣＰＵポート１０８Ｃに対してアービターとして働く。ポートアービター１３０は、ＲＴポート１０８Ｅに対するアービターとして働き、そして同様のポートアービター（図示せず）は、ＮＲＴポート１０８Ｄに対するアービターである。ポート上の単一ソース又はポート上のソースの組み合わせは、エージェントと称される。各ポート１０８Ａ−１０８Ｅは、その各々のエージェントと通信するためにインターフェイスに結合される。インターフェイスは、任意のタイプの通信媒体（例えば、バス、ポイント対ポイント相互接続、等）であり、任意のプロトコルを実施することができる。幾つかの実施形態では、ポート１０８Ａ−１０８Ｅは、全て、同じインターフェイス及びプロトコルを実施する。他の実施形態では、異なるポートが異なるインターフェイス及び／又はプロトコルを実施する。更に別の実施形態では、メモリコントローラ１０６は、単一ポート付きである。
【００２４】
一実施形態において、各ソースは、そのソースにより伝送される各メモリ動作にサービスクオリティ（ＱｏＳ）パラメータを指定する。ＱｏＳパラメータは、メモリ動作に対するサービスの要求レベルを識別する。高いサービスレベルを要求するＱｏＳパラメータ値を伴うメモリ動作は、低いサービスレベルを要求するメモリ動作に勝る優先度が与えられる。各メモリ動作は、フローＩＤ（ＦＩＤ）を含む。このＦＩＤは、メモリ動作のフローの一部分としてメモリ動作を識別する。メモリ動作のフローは、一般的に、関係があり、一方、同じソースからであっても、異なるフローからのメモリ動作は、関係がない。ＦＩＤの一部分（例えば、ソースフィールド）は、ソースを識別し、そしてＦＩＤの残りの部分は、フロー（例えば、フローフィールド）を識別する。従って、ＦＩＤは、トランザクションＩＤと同様であり、あるソースは、トランザクションＩＤを単にＦＩＤとして送信する。そのようなケースでは、トランザクションＩＤのソースフィールドは、ＦＩＤのソースフィールドであり、そしてトランザクションＩＤのシーケンス番号（同じソースからのトランザクション間でそのトランザクションを識別する）は、ＦＩＤのフローフィールドである。幾つかの実施形態では、異なるトラフィックタイプは、ＱｏＳパラメータの異なる定義を有する。即ち、異なるトラフィックタイプは、ＱｏＳパラメータの異なるセットを有する。
【００２５】
メモリコントローラ１０６は、各ポート１０８Ａ−１０８Ｅを経て受け取ったＱｏＳパラメータを処理するように構成され、そして相対的ＱｏＳパラメータ値を使用して、ポートを経て受け取られるメモリ動作を、そのポートからの他のメモリ動作に対して及び他のポートを経て受け取られる他のメモリ動作に対してスケジュールする。より詳細には、メモリコントローラ１０６は、ＱｏＳパラメータの異なるセット（例えば、ＲＴ  ＱｏＳパラメータ及びＮＲＴ  ＱｏＳパラメータ）から引き出されたＱｏＳパラメータを比較するように構成されると共に、ＱｏＳパラメータに基づいてスケジューリングの判断を行うように構成される。
【００２６】
幾つかの実施形態では、メモリコントローラ１０６は、メモリ動作を保留にするためのＱｏＳレベルをアップグレードするように構成される。種々のアップグレードメカニズムがサポートされる。例えば、メモリコントローラ１０６は、高いＱｏＳレベルを指定するＱｏＳパラメータを有する同じフローからの別のメモリ動作を受け取るのに応答してフローのメモリ動作を保留にするためのＱｏＳレベルをアップグレードするように構成される。この形態のＱｏＳアップグレードは、インバンド(in-band)アップグレードと称される。というのは、通常のメモリ動作送信方法を使用して送信されるＱｏＳパラメータが同じフローにおいてメモリ動作に対する暗示的なアップグレード要求としても働くからである。メモリコントローラ１０６は、同じフローではなく同じポート又はソースからの保留中のメモリ動作をプッシュするように構成される。というのは、新たに受け取られるメモリ動作は、より高いＱｏＳレベルを指定するからである。別の例として、メモリコントローラ１０６は、１つ以上のエージェントから側波帯インターフェイスに結合するように構成され、そして側波帯インターフェイスを経てアップグレード要求を受け取るのに応答してＱｏＳレベルをアップグレードする。別の例では、メモリコントローラ１０６は、保留中のメモリ動作の相対的年齢を追跡するように構成される。メモリコントローラ１０６は、年取ったメモリ動作のＱｏＳレベルをある年齢においてアップグレードするように構成される。アップグレードが行われる年齢は、年取ったメモリ動作の現在ＱｏＳパラメータに依存する。
【００２７】
メモリコントローラ１０６は、ポートを経て受け取られる各メモリ動作によりアドレスされるメモリチャンネルを決定するように構成され、そしてそれに対応するチャンネルを経てメモリ１０２Ａ−１０２Ｂへメモリ動作を送出するように構成される。チャンネルの数及びチャンネルへのアドレスのマッピングは、種々の実施形態において変化し、メモリコントローラにおいてプログラム可能である。メモリコントローラ１０６は、同じチャンネルへマップされたメモリ動作のＱｏＳパラメータを使用して、チャンネルへ送出されるメモリ動作の順序を決定する。
【００２８】
プロセッサ１１６は、インストラクションセットアーキテクチャーを実施し、そしてそのインストラクションセットアーキテクチャーで定義されたインストラクションを実行するよう構成される。例えば、プロセッサ１１６は、これに限定されないが、スカラー、スーパースカラー、パイプライン、スーパーパイプライン、順序ずれ、適正順序、推論的、非推論的、等、又はその組み合わせを含む任意のマイクロアーキテクチャーを使用する。プロセッサ１１６は、回路を含み、又、任意であるが、マイクロコード技術を実施し、そして１つ以上のレベル１キャッシュを含み、キャッシュ１１８及びＬ２キャッシュを形成する。他の実施形態では、プロセッサ１１６に複数レベルのキャッシュが含まれ、そしてキャッシュ１１８は、ハイアラーキーにおいて次に低いレベルである。キャッシュ１１８は、任意のサイズ及び構成（セットアソシアティブ、直接マップ、等）を使用することができる。
【００２９】
グラフィックコントローラ１１２Ａ−１１２Ｂは、グラフィック処理回路である。一般的に、グラフィックコントローラ１１２Ａ−１１２Ｂは、表示されるべきオブジェクトをフレームバッファへレンダリングするように構成される。グラフィックコントローラ１１２Ａ−１１２Ｂは、グラフィック動作の一部分又は全部、及び／又は幾つかのグラフィック動作のハードウェア加速を遂行するようにグラフィックソフトウェアを実行するグラフィックプロセッサを含む。ハードウェア加速及びソフトウェア実施の量は、実施形態ごとに変化する。
【００３０】
ＮＲＴ周辺装置１２０は、性能及び／又は帯域巾の理由でメモリ１０２Ａ−１０２Ｂへの独立したアクセスが与えられる非リアルタイム周辺装置を備えている。即ち、ＮＲＴ周辺装置１２０によるアクセスは、ＣＰＵブロック１１４とは独立しており、ＣＰＵブロック１１４のメモリ動作と並列に進行する。周辺装置１２６、及び／又は周辺インターフェイスコントローラ１２２によってコントロールされる周辺インターフェイスに結合される周辺装置のような他の周辺装置も、非リアルタイム周辺装置であるが、メモリへの独立したアクセスを要求しない。ＮＲＴ周辺装置１２０の種々の実施形態は、ビデオエンコーダ及びデコーダ、スケーラー／ローテーター回路、画像圧縮／解凍回路、等を含む。
【００３１】
ブリッジ／ＤＭＡコントローラ１２４は、周辺装置１２６及び周辺インターフェイスコントローラ１２２をメモリスペースへ橋絡する回路を含む。ここに示す実施形態では、ブリッジ／ＤＭＡコントローラ１２４は、周辺装置／周辺インターフェイスコントローラからＣＰＵブロック１１４を経てメモリコントローラ１０６へメモリ動作を橋絡する。又、ＣＰＵブロック１１４は、橋絡されるメモリ動作と、プロセッサ１１６／Ｌ２キャッシュ１１８からのメモリ動作との間のコヒレンス性も維持する。Ｌ２キャッシュ１１８は、橋絡されるメモリ動作を、ＣＰＵインターフェイスを経てＣＰＵポート１０８Ｃへ送出されるプロセッサ１１６からのメモリ動作と裁定する。又、ブリッジ／ＤＭＡコントローラ１２４は、メモリへ及びメモリからデータのブロックを転送するために周辺装置１２６及び周辺インターフェイスコントローラ１２２に代わってＤＭＡ動作を与える。より詳細には、ＤＭＡコントローラは、周辺装置１２６及び周辺インターフェイスコントローラ１２２に代わってメモリコントローラ１０６を経てメモリ１０２Ａ−１０２Ｂへの及び該メモリからの転送を遂行するように構成される。ＤＭＡコントローラは、ＤＭＡ動作を遂行するためにプロセッサ１１６によりプログラム可能である。例えば、ＤＭＡコントローラは、ＤＭＡ転送を記述するためにメモリ１０２Ａ０１０２Ｂに記憶されたデータ構造（例えば、ソース及び行先アドレス、サイズ、等）である記述子を経てプログラムすることができる。或いは又、ＤＭＡコントローラは、ＤＭＡコントローラにおけるレジスタ（図示せず）を経てプログラムすることができる。
【００３２】
周辺装置１２６は、望ましい入力／出力装置、或いはＩＣ１０１に含まれる他のハードウェア装置を含む。例えば、周辺装置１２６は、１つ以上のネットワーク媒体アクセスコントローラ（ＭＡＣ）のようなネットワーク周辺装置、例えば、イーサネットＭＡＣ又はワイヤレスフィデリティ（ＷｉＦｉ）コントローラを含む。周辺装置１２６には、種々のオーディオ処理装置を含むオーディオユニットが含まれる。周辺装置１２６は、１つ以上のデジタル信号プロセッサ、及び他の望ましい機能的コンポーネント、例えば、タイマー、オンチップ機密メモリ、暗号エンジン、等、又はその組み合わせを含む。
【００３３】
周辺インターフェイスコントローラ１２２は、任意のタイプの周辺インターフェイスに対するコントローラを含む。例えば、周辺インターフェイスコントローラ１２２は、ユニバーサルシリアルバス（ＵＳＢ）コントローラ、周辺コンポーネント相互接続エクスプレス（ＰＣＩｅ）コントローラ、フラッシュメモリインターフェイス、汎用入力／出力（Ｉ／Ｏ）ピン、等の種々のインターフェイスコントローラを含む。
【００３４】
メモリ１０２Ａ−１０２Ｂは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、倍データレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３、等）ＳＤＲＡＭ（ｍＤＤＲ３、等のＳＤＲＡＭの移動バージョン、及び／又はＬＰＤＤＲ２、等のＳＤＲＡＭの低電力バージョンを含む）、ＲＡＭＢＵＳ  ＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、等の任意のタイプのメモリである。１つ以上のメモリ装置が回路板に結合されて、単一インラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）、等のメモリモジュールを形成する。或いは又、装置は、チップ・オン・チップ構成、パッケージ・オン・パッケージ構成、又はマルチチップモジュール構成でＩＣ１０１と共にマウントされる。
【００３５】
メモリＰＨＹ１０４Ａ−１０４Ｂは、メモリ１０２Ａ−１０２Ｂへの低レベル物理的インターフェイスを取り扱う。例えば、メモリＰＨＹ１０４Ａ−１０４Ｂは、信号のタイミング、同期ＤＲＡＭメモリへの適切なクロック動作、等の役割を果たす。１つの実施形態では、メモリＰＨＹ１０４Ａ−１０４Ｂは、ＩＣ１０１内に供給されるクロックにロックするように構成され、そしてメモリ１０２Ａ及び／又はメモリ１０２Ｂにより使用されるクロックを発生するように構成される。
【００３６】
他の実施形態は、図１に示すコンポーネント及び／又は他のコンポーネントのサブセット又はスーパーセットを含めて、コンポーネントの他の組み合わせを含むことに注意されたい。所与のコンポーネントの１つの例が図１に示されたが、他の実施形態は、所与のコンポーネントの１つ以上の例を含む。
【００３７】
図２は、画像フレーム情報及びビデオフレーム情報がシステムメモリであるメモリ２０２に記憶されそしてディスプレイパイプ２１２に与えられる規範的なシステムの概略を示す部分ブロック図である。図２に示すように、メモリ２０２は、ビデオフレーム／情報を記憶するためのビデオバッファ２０６と、画像フレーム情報を記憶するための１つ以上（図示された実施形態では全部で２つ）の画像フレームバッファ２０８及び２１０とを備えている。ある実施形態では、ビデオバッファ２０６に記憶されるビデオフレーム／情報は、ビデオ情報の起点に基づいて第１のカラースペースに表わされる。例えば、ビデオ情報は、ＹＣｂＣｒカラースペースに表わされる。同時に、画像フレームバッファ２０８及び２１０に記憶された画像フレーム情報は、ディスプレイパイプ２１２の好ましい動作モードに基づいて第２のカラースペースに表わされる。例えば、画像フレームバッファ２０８及び２１０に記憶された画像フレーム情報は、ＲＧＢカラースペースに表される。ディスプレイパイプ２１２は、図２の実施形態にＵＩ２１４及び２１６として示された１つ以上のユーザインターフェイス（ＵＩ）ユニットを備え、これらは、メモリ２０２に結合されて、そこから画像（フレーム）データ／情報をフェッチし、画像データに対して種々の動作を遂行する。ビデオパイプ又はプロセッサ２２０も、同様に、メモリ２０２、特に、ビデオバッファ２０６からビデオデータをフェッチして、ビデオデータに対して種々の動作を遂行するように構成される。ＵＩ２１４及び２１６と、ビデオパイプ２２０とは、処理されてフェッチされた画像フレーム情報及びビデオ画像情報を混合ユニット２１８へ各々与えて、出力フレームを発生し、それら出力フレームは、バッファ２２２に記憶され、そこからディスプレイコントローラ２２４へ送られて、ディスプレイ装置（図示せず）、例えば、ＬＣＤに表示される。
【００３８】
１組の実施形態において、ＵＩ２１４及び２１６は、バッファ２０８及び２１０に記憶されるフレーム当たり少なくとも１つのアクティブな領域を定義するようにプログラムできる１つ以上のレジスタを含む。アクティブな領域とは、表示されるべきピクセルを含む画像フレーム内の領域を表わし、一方、フレームのアクティブな領域外のピクセルは、表示されない。フレームバッファ２０８及び２１０からピクセルをフェッチするのに必要なアクセスの数を減少するために、メモリ２０２（特に、フレームバッファ２０８及び２１０）からフレームをフェッチするときに、ＵＩ２１４及び２１６は、そのＵＩ２１４及び２１６内のレジスタのコンテンツにより定義される、フレームのアクティブな領域内の所与のフレームのピクセルのみをフェッチする。フレームのアクティブな領域外のピクセルは、混合値０に対応するアルファ値を有すると考えられる。換言すれば、フレームのアクティブな領域外のピクセルは、透明であるか又は不透明度０として自動的に処理され、従って、得られるディスプレイフレームに影響を及ぼさない。従って、処理されてフェッチされたピクセルは、他のフレームからのピクセル、及び／又はビデオパイプ２２０から混合ユニット２１８へ送られる処理された１つ以上のビデオフレームからのピクセルと混合される。
【００３９】
図３は、ディスプレイパイプ２１２の一実施形態３００の詳細な論理図である。１組の実施形態において、このディスプレイパイプ３００は、メモリ（又はアドレス可能な形態のメモリ、例えば、図２のメモリ２０２）に存在するグラフィック及びビデオデータを、ＬＣＤ及びアナログ／デジタルＴＶの両ディスプレイをサポートする１つ以上のディスプレイコントローラへ配送するように機能する。１つのカラースペース、例えば、ＹＣｂＣｒカラースペースに表されたビデオデータは、混合ユニット３１０に使用するためにディザされ、スケーリングされ、別のカラースペース（例えば、ＲＧＢカラースペース）へと変換され、そしてこれも第２の（即ち、ＲＢＧ）カラースペースに表される指定数（例えば、２つ）までのグラフィック（ユーザインターフェイス）平面と混合される。ディスプレイパイプ３００は、それ自身のクロックドメインで動作し、そして異なるサイズ及びタイミング要件の表示をサポートするためディスプレイコントローラへの非同期インターフェイスを与える。ディスプレイパイプ３００は、１つ以上（このケースでは２つ）のユーザインターフェイス（ＵＩ）ブロック３０４及び３２２（図２のＵＩ２１４及び２１６に対応する）、混合ユニット３１０（図２の混合ユニット２１８に対応する）、ビデオパイプ３２８（図２のビデオパイプ２２０に対応する）、パラメータＦＩＦＯ３５２、マスター及びスレーブホストインターフェイス各々３０２及び３０３より成る。図３の実施形態に示すブロックは、モジュール式であり、ある程度の再設計で、例えば、ユーザインターフェイス及びビデオパイプを追加したり除去したり、或いはホストマスター又はスレーブインターフェイス３０２及び３０３を変更したりすることができる。
【００４０】
上述したように、ディスプレイパイプ３００は、メモリからデータをフェッチし、そのデータを処理し、次いで、それを、非同期ＦＩＦＯ３２０を通して外部のディスプレイコントローラへ提示するように設計される。ディスプレイコントローラは、各垂直帰線消去インターバルの始めにアクチベートされる垂直帰線消去インターバル（ＶＢＩ）信号を通して表示のタイミングをコントロールする。この信号は、ディスプレイパイプ３００が、フレーム（特に、フレーム内のピクセル）の処理を初期化（再スタート）及び開始（出発）するようにさせる。初期化と開始との間にそのフレームに独特の構成パラメータが変更される。変更されないパラメータは、手前のフレームからの値を保持する。ピクセルが処理されて出力ＦＩＦＯ３２０へ入れられるにつれて、ディスプレイコントローラは、ディスプレイコントローラのクロック周波数（図３にｖｃｌｋと示す）でピクセルを除去するために信号（ポップ(pop)信号と称される）を発生する。
【００４１】
図３に示す実施形態では、各ＵＩユニットは、とりわけ、アクティブ領域情報、ベースアドレス情報、及び／又はフレームサイズ情報を含む画像フレーム情報を保持するために１つ以上のレジスタ３１９ａ−３１９ｎ及び３２１ａ−３２１ｎを各々含む。又、各ＵＩユニットは、各々、各フェッチユニット３０６及び３２４も備え、これらのユニットは、フレーム情報、特に、メモリからの所与のフレームに含まれたピクセルを、ホストマスターインターフェイス３０２を通してフェッチするように動作する。上述したように、ピクセル値は、混合ユニットの動作カラースペースとして指定されたカラースペース、このケースではＲＧＢカラースペースに表わされるが、これは、別の実施形態では、任意の指定のカラースペースでもよい。１組の実施形態において、フェッチユニット３０６及び３２４は、レジスタ３１９ａ−３１９ｎ及び３２１ａ−３２１ｎのコンテンツにより定義される、所与のフレームのアクティブな領域内の所与のフレームのピクセルのみをフェッチする。フェッチされたピクセルは、各ＦＩＦＯバッファ３０８及び３２６へ供給され、そこから、ＵＩユニットは、フェッチされたピクセルを各々の垂直及び水平スケーリングユニット（各々３０７及び３２７、並びに各々３０９及び３２９）へ送り、そこから、スケーリングされたピクセルは、混合ユニット３１０、特に、混合ユニット３１０内のレイヤ選択ユニット３１２へ送られる。混合ユニット３１０は、次いで、ＵＩ３０４及び３２２から得たフェッチされたピクセルを、他のフレームからのピクセル及び／又はビデオパイプ３２８から得たビデオピクセルと混合する。ピクセルは、混合段３１４、３１６及び３１８において混合されて、１つ以上の出力フレームを形成し、これらの出力フレームは、ＦＩＦＯ３２０へ通され、このＦＩＦＯ３２０に結合するディスプレイコントローラインターフェイスにより検索されて、選択されたディスプレイ、例えば、ＬＣＤに表示される。１組の実施形態において、出力フレームは、ビデオ情報のオリジナルカラースペース、例えば、ＹＣｂＣｒカラースペースへ変換されて戻されて、選択されたディスプレイに表示される。
【００４２】
混合ユニット３１０の全体的な動作について以下に述べる。混合ユニット３１０は、図３に示すように、ディスプレイパイプ３００の後端に位置する。これは、ＵＩ３０４及び３２２から並びにビデオパイプ３２８からのピクセルのフレームを、レイヤ選択ユニット３１２を通して受け取り、そしてそれらをレイヤごとに混合する。１組の実施形態において、混合ユニット３１０により受け取られたピクセルは、混合ユニット３１０が動作する第１のカラースペース（例えば、ＲＧＢ）に表される。ＵＩ３０４及びＵＩ３２２によりホストインターフェイス３０２を通してフェッチされたフレームは、既に第１のカラースペースに表されている。しかしながら、ビデオパイプ３２８内のフェッチユニット３３０によりフェッチされたビデオ画像フレーム情報は、第２のカラースペース（例えば、ＹＣｂＣｒ）に表される。従って、ビデオパイプ３２８によりフェッチされたビデオ画像フレームピクセルは、先ず、カラースペースコンバータ３４０を経て第１のカラースペース（混合ユニット３１０が動作する）へと変換され、その変換されたビデオ画像フレームピクセル（今やこれも第１のカラースペースに表されている）は、次いで、混合のために混合ユニット３１０へ送られる。最終的に得られるピクセルは、カラースペースコンバータユニット３４１を通して第２のカラースペース（例えば、ＹＣｂＣｒ）へ変換され、ビデオパイプのクロックレートｃｌｋで出力ＦＩＦＯ３２０にキューアップされ、そしてディスプレイコントローラのクロックレートｖｃｌｋでディスプレイコントローラによりフェッチされる。ＦＩＦＯ３２０は、混合ユニット３１０内に示されているが、別の実施形態では、ＦＩＦＯ３２０が混合ユニット３１０の外部、おそらく、ディスプレイコントローラユニット内に位置されてもよいことに注意されたい。更に、コンバータユニット３４１によるカラースペース変換は、得られたピクセルをＦＩＦＯ３２０に与える前に行うように示されているが、別の実施形態では、カラー変換は、ＦＩＦＯ３２０からフェッチされたデータに対して行ってもよい。
【００４３】
混合ユニット３１０へのソース（ＵＩ３０４及び３２６、及び／又はビデオパイプ３２８）は、指定のデフォールトピクセル位置（例えば、０、０）でスタートするピクセルにおいて、全フレームに対するピクセルデータ及びピクセル毎アルファ値を、巾、表示巾、及び高さ、表示高さと共に与える。混合ユニット３１０は、一度に単一のレイヤにおいて機能的に動作し、即ち一度に２枚のレイヤを混合し、その一方のレイヤは、予め混合された又は以前に混合されたレイヤを表わす。最も下のレイヤは、背景カラー（混合段３１４へ送られるＢＧ）として定義される）。レイヤ１は、レイヤ０と混合される（混合段３１６において）。次のレイヤであるレイヤ２は、混合段３１６からの出力と混合され（混合段３１８において）、等々、全てのレイヤが混合されるまで行われる。簡単化のために、３つの混合段３１４−３１８しか示されていないが、ディスプレイパイプ３００は、処理されるレイヤの希望の枚数に基づいて混合段をより多く含んでもよいし、より少なくてもよい。各レイヤ（レイヤ１でスタート）は、そのソースがどこから来るか指定し、ソースをレイヤにおいてプログラムで選択できるよう保証する。上述したように、又、図示されたように、混合ユニット３１０は、（混合段３１４−３１８を使用して）３枚のレイヤにおいて選択されるべき３つのソース（ＵＩ３０４、ＵＩ３２２、及びビデオパイプ３２８）を有する。混合ユニット３１０の出力においてＣＲＣ（繰り返し冗長チェック）も遂行される。又、混合ユニット３１０は、ＣＲＣのみのモードに入れられ、ここでは、出力ピクセルがディスプレイコントローラへ送られることなく出力ピクセルに対してＣＲＣのみが遂行される。
【００４４】
上述したように、各ソース（ＵＩ３０４、３２２、及びビデオパイプ３２８）は、ピクセル毎アルファ値を与える。アルファ値は、ピクセル毎混合を遂行するのに使用され、スタティックなフレーム毎アルファ値（例えば、飽和アルファ）で無効化され、又はスタティックなフレーム毎アルファ値（例えば、ディゾルブアルファ）と合成される。又、ピクセル毎アルファ値にカラー成分を予め乗算するオプションもある。１組の実施形態において、アルファ値は、０≦Ｖ≦１．０の範囲の値Ｖを表わす８ビットインデックスとして表され、ここで、Ｖ＝アルファ／２５５である。換言すれば、アルファ値は、実際には、除算によって最終的に正規化される８ビット値を通して０から１の範囲の値を表わす。より一般的には、アルファ値は、Ｖ（上述した）に対応するＮビットインデックスとして表され、Ｎビットインデックスは、最終的に、２N−１で除算されることで正規化されて、値Ｖ＝アルファ／２N−１を生じる。ソースの有効領域外のピクセル位置は、混合には使用されない。その下のレイヤは、そのピクセル位置がアルファ値０を有するかのように示される。所与のピクセルに対するアルファ値０は、所与のピクセルが見えず且つ表示されないことを指示する。
【００４５】
図４は、一実施形態により、考えられる異なる混合モードに対応する、考えられる異なる混合方程式を示すテーブル４００である。「通常」モードでは、ピクセル毎アルファ値がディゾルブアルファ値と合成される。「予めの乗算」モードでは、ピクセル毎予め乗算アルファ値がディゾルブアルファ値と合成される。「飽和」モードでは、ピクセル毎アルファ値がスタティックなフレーム毎アルファ値又は飽和アルファ値により無効化される。テーブル４００に示すように、‘Ｃ［ｋ、ｉ］’は、ピクセル位置［ｉ］におけるレイヤ［ｋ］からのカラー成分を表わし、‘Ａ［ｋ、ｉ］’は、ピクセル位置［ｉ］におけるレイヤ［ｋ］からのアルファ成分（即ち、ピクセル毎アルファ値）を表わし、‘ＡＳａｔ［ｋ］’は、レイヤ［ｋ］に対するスタティックな飽和アルファ値（即ち、無効化スタティックフレーム毎アルファ値）を表わし、そして‘ＡＤｉｓ［ｋ］’は、レイヤ［ｋ］に対するスタティックなディゾルブアルファ値（即ち、合成スタティックフレーム毎アルファ値）を表わす。所与のピクセルの各カラー成分には同じピクセル毎アルファ値が使用されるので、現在レイヤ（ｋ）に対する有効アルファ値（ＡＥｆｆＣｕｒ［ｉ］）、及びその下のレイヤ（ｋ−１）に対する有効アルファ値（ＡＥｆｆＰｒｅｖ［ｉ］）がピクセル毎に計算され、そして所与のピクセルに対する各カラー成分と混合される。それらの有効アルファ値の計算が図５のテーブルに作表されている。これら有効アルファ値は、次いで、次の混合方程式により表された所与のピクセルに対する各カラー成分の混合計算に使用される。
(１)  Cout[k,i]＝AEFFCur[i]＊C[k,i]＋(１−AEffPrev[i])＊Cout[k-1,i]
但し、Cout[k,i]は、ピクセル位置‘ｉ’におけるレイヤ‘ｋ’の出力値であり、C[k,i]は、ピクセル位置‘ｉ’におけるレイヤ‘ｋ’の入力値であり、Cout[k-1,i]は、ピクセル位置‘ｉ’における手前のレイヤ‘ｋ−１’の出力値である。予めの計算モードでは、現在ピクセル毎アルファ値が手前のピクセル毎アルファ値とは異なり、結果のオーバーフローを招き、結果における全ての値が値‘１’にクランプされる。
【００４６】
上述したように、ディスプレイパイプ３００における混合ユニット３１０は、混合段３１４−３１８によって例示された複数混合段（又は混合段）を含み、これは、複数の画像レイヤを単一の画像レイヤへと混合する。テーブル４００及び５００に定義された混合方程式（１）によれば、各混合段の出力は、所与のレイヤに対応する所与のカラースペースの各カラー成分に対して完全に混合されたカラー値となる。それらのカラー値は、次いで、後続の混合段において、次のレイヤに対応するカラー値及びアルファ値と混合される。図３に示す実施形態では、少なくとも４つのレイヤ、即ち背景レイヤ（混合ユニット３１０内のＢＧ）、第１の画像レイヤ（ＵＩ３０４から）、第２の画像レイヤ（ＵＩ３２２から）、及びビデオフレーム画像レイヤ（ビデオパイプ３２８から）が混合される。カラー値（所与のピクセルに対する各カラー平面／成分における個別の各値、例えば、‘Ｒ’カラー平面値、‘Ｇ’カラー平面値、及び‘Ｂ’カラー平面値）及びアルファ値は、全て、‘０’から‘１’の範囲内にあり、処理中の対応マルチビット値、例えば、各カラー平面成分に対する１０ビット値、及びアルファに対する８ビット値として表現される。アルファ値及びカラー値に使用されるビットの数は、各々、種々の処理上の事柄に基づいて変化する。例えば、以下に詳細に述べるように、ある状況の下では、所与の第１のカラースペースにおけるカラービットの数は、第２のカラースペースから第１のカラースペースへ変換するときに、所与の第１のカラースペースにおいて変化しない付加的な値を含むように拡張され、それにより、所与の第１のカラースペースにおけるカラー値を表わすのに使用されるビットの数を増加させる（例えば、ＹＣｂＣｒカラースペースからＲＧＢカラースペースへ変換するとき）。
【００４７】
マルチビットデータ値を使用して混合動作を遂行するとき、混合動作が２つのＮビット数の乗算を伴う場合には、その動作で２Ｎビット数を生じる。最初に指定されたビット数（即ち、Ｎビット）に戻るために、この数は、典型的に、結果を‘２N−１’に等しい数で除算することにより正規化される。混合式（１）は、マルチステップ混合プロセスとして実施され、それに基づいて、各混合段（３１４−３１８）は、上述したように、複数の混合レベルを含む。これは、各乗算（アルファ値での）がそれに対応する結果の正規化も予想することを意味する。テーブル４００及び５００に基づいて混合式（１）を実施する単純なやり方では、有効アルファ値のための１つの計算と、その有効アルファ値を、手前のレイヤのカラー値及びカラー成分毎の現在レイヤのカラー値と混合するために各々遂行される指定数の付加的な計算とが生じる。従って、例えば、ＲＧＢカラースペースで動作するときには、３つの付加的な計算、即ち‘Ｒ’カラー成分に対する計算、‘Ｇ’カラー成分に対する計算、及び‘Ｂ’カラー成分に対する計算がある。これらの計算は、各々の混合段について次の式で表される（説明上、通常モード、８ビットアルファ値、及び１０ビットカラー値について示す；他のモードも同様にテーブル４００及び５００に基づき、そして指定のアルファ値及びカラー値に対して使用される適当なビット数に基づき導出される）。
(２)  AE[7:0]＝(AD[7:0]＊AP[7:0])/'d255
但し、ＡＥは、有効アルファ値であり（テーブル５００に示すように、通常モードでは、現在レイヤ及び手前のレイヤに対して同じ値を有する）、ＡＤは、ディゾルブ値であり（合成されたフレーム毎のスタティックアルファ値）、そしてＡＰは、ピクセル毎のアルファ値である。
(３)  CO[9:0]＝((CCL[9:0]＊AE[7:0])/'d255)＋((CPL[9:0]＊(‘d255−AE[7:0])/'d255)
但し、ＣＯは、混合段出力に生じる所与のカラー成分に対する所与のピクセルのカラー値であり、ＣＣＬは、現在レイヤの所与のカラー成分に対する所与のピクセルのカラー値であり、そしてＣＰＬは、手前のレイヤの所与のカラー成分に対する所与のピクセルのカラー値である。上述したように、手前のレイヤは、手前の混合段からの結果を表わし、そして現在レイヤは、手前の混合段の結果と混合されるべきレイヤである。
【００４８】
前記式で観察されるように、正規化は、アルファ成分による乗算を含む項毎に１つの、３つの個別のインスタンスにおいて遂行される。しかしながら、正規化除算は、その除算演算が固定小数点に限定され、端数部分が落されることになるので、エラーを招くことがある。これらの落された端数部分は、それら全てのレベルの上に加えられ（即ち、各項について遂行されたとき）、各混合段を通して益々大きな不正確さが伝わっていく。しかしながら、累積されたアルファ乗算について正規化が必要となる場合に、望ましい結果が混合動作の終わりの実際のカラー値だけであるときには、カラー値の正規化が不要である。換言すれば、式（１）は、正規化を遅らせるように実施され、実際上は、実際の除算数を減少し、落される端数部分の合計数を減少させる。従って、アルファ値乗算の正規化は、各混合レベルで遂行されず、混合プロセスが完了するまで結果を端数形態で前方に送る。結果を端数形態で送るときのビット数の増加が指数関数的であるために、どの程度の中間結果を端数形態で送るかは、実際の設計及び実施上の事柄により決定される。１組の実施形態において、混合段３１４−３１８は、各々、混合段の出力において単一の除算を遂行し、各混合レベルで除算が遂行された場合に各所与の混合段内の各混合レベルで受けるエラーの複合化を防止する。
【００４９】
従って、混合動作に関して、混合段内の種々のレベルで除算動作を遂行するのではなくて、式（２）及び（３）の分母が維持され（正規化実行されず）、そして分母は、所与の混合段の終わり即ち少なくともその出力で除算動作を遂行するように合成される。例えば、式（１）のより正確な実施では、式（２）及び（３）が、（それら式（２）及び（３）に使用された同じパラメータを使用して）所与のカラースペース内の各カラー成分に適用される次の式へ合成される。
(４)  CO[9:0]＝(CCL[9:0]＊AD[7:0]＊AP[7:0]＋CPL[9:0]＊(‘d65025-AD＊AP))/’d65025
ここで、’d65025は、d’255の２乗であることに注意されたい。式（４）において明らかなように、有効なアルファ値を計算して正規化するのではなくて、混合動作が平坦化され、且つ式（２）及び（３）ごとに行われる３つの除算ではなくて、単一の除算のみが遂行される。数学的に式（２）及び（３）の合成は、式（４）と同一であるが、各除算が最下位ビットの１／２までのエラーを導入し得るので、式（４）は、式（１）の非常に正確な実施を表わす。
【００５０】
図６ａは、２つの画像レイヤのフレームピクセルを混合するための混合段（例えば、混合段３１４−３１８のいずれか）の１つの考えられる実施形態の回路図である。図６の回路図は、式（４）に基づいて実施される通常混合モードの回路図である。図６ａの回路図は、テーブル４００に示された式に基づいて他の混合モード（例えば、予め乗算モード、飽和モード、及びディスエイブルモード）を含むように変更できることに注意されたい。これは、種々の異なる仕方で達成できる。例えば、イネーブル信号を使用して、混合された出力カラー６１２を出力するか（通常モード、予め乗算モード及び飽和モード）、又は手前のレイヤのカラー６０８を出力する（ディスエイブルモード）。説明上、図６ｂは、以下で詳細に述べるように、図６ａに示す混合段に合体される１つの考えられる選択ブロックの回路図である。図６ａにおいて明らかなように、ピクセル毎のアルファ値６０２は、フレーム毎のアルファディゾルブ値で乗算され（６１４において）、２Ｎビット巾の結果が現在レイヤのカラー値で乗算され（６１８において）、そして正規化された値‘１’の２Ｎビット巾表現である（２N−１）2の値から減算され（６１６において）、次いで、手前のレイヤのカラー値で乗算される（６２０において）。１つの意味において、乗算エレメント６１８への入力６３２は、現在レイヤ（ｋ）の有効アルファ値と考えられ、そして乗算エレメント３２０への加算エレメント６１６の出力は、手前のレイヤ（ｋ−１）の有効アルファ値と考えられる。この点について「有効アルファ値」という語の使用は、テーブル４００及び５００における使用とは異なることに注意されたい。理解を容易にするために、手前のレイヤのカラー６０８に対応する有効アルファ値は、手前のレイヤのカラー６０８を乗算する値（アルファ値から導出される）として指定される。乗算６１８及び６２０の結果が加算され（６２２において）、それにより得られた和が（２N−１）2で除算されて（６２４において）、正規化されたＬビット巾の混合出力カラー値６１２を生じる。各線上のビット数で示すように、個々の乗算の結果は、正規化されずに送られ、２Ｎ＋Ｌのビット長さをもつカラー値を加算エレメント６２２の出力に生じる。
【００５１】
上述したように、図６ｂは、図６ａに示す混合段に合体される１つの考えられる選択ブロックの回路図である。より詳細には、アルファピクセル６０２の出力から乗算エレメント６１４への経路６３０は、選択エレメント６４６の出力に置き換えられ、そして乗算エレメント６１４から乗算エレメント６１８への経路６３２は、選択エレメント６４８の出力に置き換えられる。混合モード信号（全部で４つの異なる混合モードを表現するのに２ビットで充分であるので、２ビット信号）を使用して、選択エレメント６４６への異なる入力間を選択することができる。図示された例では、（１０進）値‘０’は、予め乗算モードに対応し、値‘１’は、通常モードに対応し、値‘２’は、飽和モードに対応し、そして値‘３’は、ディスエイブルモードに対応する。例えば、予め乗算モードでは、アルファピクセル値６０２が混合モード信号によって選択エレメント６４６の入力として選択され、従って、このエレメントは、アルファピクセル値６０２を乗算エレメント６１４へ出力する。又、混合モード信号は、アルファディゾルブ値６０４を選択エレメント６４８の入力として選択し、従って、このエレメントは、アルファディゾルブ値６０４を乗算エレメント６１８へ出力する。他の全ての混合モードに対して、混合モード信号は、乗算エレメント６１４の出力を選択エレメント６４８の入力として選択し、乗算エレメント６１８へ出力する。通常のモードでは、アルファピクセル値６０２が乗算エレメント６１４に与えられ（丁度図６ａと同様に）、飽和モードでは、アルファ飽和値６４２が乗算エレメント６１４に与えられ、そして最終的に、ディスエイブルモードでは、ゼロアルファ値６４４が乗算エレメント６１４に与えられる。上述したように、図６ｂは、図６ａに例示された単一混合段の具現化を使用するときにサポートされる複数の混合モードの１つの考えられる実施形態を単に表わすものである。
【００５２】
理論的に、Ｍ枚のレイヤが合成され（図３に示す実施形態では、Ｍ＝４）、そして（Ｎビットインデックスとして表された）アルファ値による乗算に対して正規化が遂行される場合には、除算は、最後の混合段（例えば、図３に示す実施形態では、混合段３１８）の出力において、(２N−１)Pによる除算の形態で遂行され、但し、Ｐ＝２[M-1]である。例えば、２つの混合段（即ち、３枚のレイヤ）を通して結果を搬送するときには、Ｐが２2（即ち、４）に等しく、そして分母が(２N−１)4に等しくなる。８ビットアルファ値では、この分母の値が２５５4、即ち４，２２８，２５０，６２５となる。明らかなように、分母のビットサイズは、指数関数的に増加し、ある設計内の複数の混合段を通して結果を搬送するに充分なものであってもなくてもよい。しかしながら、各混合段について図６ａの回路図に基づき式（１）を実施することにより、除算で導入されるエラーの著しい減少が達成される。そのような実施形態では、除算は、除算エレメント６２４により各段の端において遂行され、各混合段の出力がＬビット巾の出力を次の混合段への手前のレイヤのカラー値（６０８）として与えることになり、やがて、最終混合段が最終的なカラー出力を発生する。
【００５３】
最終混合段を通して結果を搬送するときに、各後続混合段の入力は、非正規化カラー値である。例えば、混合段３１４の端において正規化が遂行されない場合に、混合段３１４は、（２Ｎ＋Ｌ）のビット長さのカラー値を混合段３１６へ出力し、ここで、‘Ｌ’は、カラー値の指定の予想ビットサイズである。図６ａを参照すれば、この値は、加算エレメント６２２の出力により表わされる。従って、混合段３１６では、対応する乗算エレメント６２０への手前のレイヤのカラー入力（図６ａの入力６０８に対応する）が、図６ａに示すＬビットではなくて、（２Ｎ＋Ｌ）ビット数を与える。全体では、各混合段を通して混合結果を分数形態で搬送するとき、各後続混合段の各手前のレイヤのカラー入力は、手前の混合段により発生される出力と同じビット数を有する。最終混合段まで（例えば、図３の混合段３１８まで）複数の混合段を通して所与の混合段の出力において正規化が行われないと、（正規化される出力を有する最終的混合段を除く）各所与の混合段の非正規化出力は、合計‘Ｍ’枚のレイヤを通常モードにおいてＮビット巾のアルファ値及びＬビット巾のカラー値と混合したときに、次の式により表される。
(５)  CO[L-1:0]＝CCL[L-1:0]＊AD[N-1:0]＊AP[N-1:0]＊(2N-1)2＋CPL[X:0]＋((2N-1)2
-AD[N-1:0]＊AP[N-1:0])
但し、Ｘ＝２Ｎ＋(Ｍ−１)＋Ｌである。次いで、最終混合段の端において正規化が遂行され、これは、合計‘Ｍ’枚のレイヤを混合するとき次の式により表される最終カラー出力を発生し、各混合段は、２枚のレイヤに各々対応する２組のピクセルデータを混合し、それら２組のピクセルの１つは、手前の混合段の出力から受け取られる。
(６)  CO[L-1:0]＝(CCL[L-1:0]＊AD[N-1:0]＊AP[N-1:0]＊(2N-1)2＋CPL[X:0]＊((2N-1)
2-AD[N-1:0]＊AP[N-1:0]))／(2N-1)P
但し、上述したように、Ｐ＝２[M-1]である。
【００５４】
１組の実施形態において、アクティブな領域と称される有効なソース領域は、有効なピクセルデータを含むフレーム内のエリアとして定義される。アクティブな領域に対するピクセルデータは、ＵＩ３０４及び３２２によりメモリからフェッチされ、そしてＦＩＦＯ３０８及び３２６内に各々記憶される。アクティブな領域は、全フレームの左上角（０、０）からの開始及び終了（Ｘ、Ｙ）オフセットにより指定される。開始オフセットは、アクティブな領域の左上角を定義し、そして終了オフセットは、アクティブな領域の右下角の後のピクセル位置を定義する。座標が開始オフセット以上で且つ終了オフセット未満の位置のピクセルは、有効領域内にあると考えられる。いかなる数のアクティブな領域が指定されてもよい。例えば、１組の実施形態において、各フレーム内に４つまでのアクティブな領域が画成され、領域イネーブルビットにより指定される。開始及び終了オフセットは、ピクセル位置に整列される。アクティブな領域を含む全フレームが混合ユニット３１０へ送信される。フレーム内にあるが、アクティブな領域にはないピクセルは、表示されず、それ故、アクティブな領域外のピクセルが０のアルファ値を有するかのように、混合動作には関与しない。別の実施形態では、混合ユニット３１０は、全フレームを受け取るのではなく、フレームのアクティブな領域のみのピクセルデータを受け取り、そしてピクセルを受け取っていないフレーム内のエリアを、ゼロの混合値（アルファ値）を有するピクセルを受け取ったかのように自動的に処理するように設計される。
【００５５】
１組の実施形態において、フレームのアクティブな領域は、別の画像又はビデオストリームの上に現れるグラフィックオーバーレイを表わす。例えば、アクティブな領域は、ビデオストリームの上に重畳されるスタティックな画像を表わす。ある実施形態では、アクティブな領域は、より一般的には、その下の背景レイヤに提示される情報の上に望ましい情報を重畳するのに使用されるオーバーレイウインドウを表わす。例えば、ディスプレイパイプ２１２は、ビデオパイプ２２０（又は図３に示す３２８）と同様の２つ以上のビデオパイプを含み、そしてアクティブな領域にビデオ情報をオーバーレイする。同様に、ビデオストリームではなく、スタティックな画像が、アクティブな領域の下に表示されてもよく、等々である。図３を再び参照すれば、ビデオパイプ３２８は、ビデオストリームを混合ユニット３１０に与え、一方、ＵＩ３０４及び３２２は、アクティブ領域のピクセルがビデオストリーム上に表示されるべきスタティック画像オーバーレイを表わす画像フレームを与える。このケースでは、ＦＩＦＯ３２０からディスプレイコントローラへ送られる出力フレームは、ビデオパイプ３２８からのビデオピクセル情報を含み、そのビデオピクセル情報の上に重畳されたＦＩＦＯ３０８（垂直スケーリングブロック３０７及び水平スケーリングブロック３０９により最初にスケーリングされる）及び／又はＦＩＦＯ３２６（垂直スケーリングブロック３２７及び水平スケーリングブロック３２９により最初にスケーリングされる）からのフェッチされたピクセルが、混合ユニット３１０を参照して上述したように、そのフェッチされたピクセルのアルファ値及び他の関連特性に基づいて混合ユニット３１０によって一緒に混合される。この場合も、異なる実施形態は、同様に混合及び表示されるビデオ及びスタティック画像情報の種々の組み合わせを含み、ディスプレイパイプの機能は、付加的なビデオパイプ及び／又はユーザインターフェイスと共に必要に応じて適宜に拡張される。混合ユニット３１０も、同様に、混合される必要のある付加的なピクセルを収容するように拡張される。
【００５６】
１組の実施形態において、フェッチユニット３３０を使用して、ビデオパイプ３２８は、メモリからホストマスターインターフェイス３０２を経てビデオフレームデータ／情報をフェッチする。ビデオフレームデータ／情報は、所与のカラースペース、例えば、ＹＣｂＣｒカラースペースにおいて表わされる。ビデオパイプ３２８は、ランダムノイズ（ディザ）をサンプルへ挿入し（ディザユニット３３２）、そのデータを、バッファした後に（バッファ３３４）、垂直及び水平の両方向にスケーリングする（スケーラー３３６及び３３８）。ある実施形態では、混合ユニット３１０は、元のカラースペース（上述したように、ＹＣｂＣｒカラースペース）以外のカラースペースに表現されるべきビデオ（ピクセル）データを予想する。換言すれば、混合ユニット３１０は、第２のカラースペース、例えば、ＲＧＢカラースペースで動作する。それ故、ビデオフレームデータは、カラースペースコンバータユニット３４０により、第１のカラースペース、このケースでは、ＹＣｂＣｒカラースペースから、第２のカラースペース、このケースでは、ＲＧＢカラースペースへ変換される。カラースペースコンバータユニット３４０は、ビデオパイプ３２８内に位置されて示されているが、混合ユニット３１０へ送る準備ができたデータが、混合ユニット３１０により処理され及び／又は動作される前に、第１のカラースペースから第２のカラースペースへ変換される限り、ビデオパイプ３２８により送られる出力と、混合ユニットへ送られる入力との間のどこに位置されてもよいことに注意されたい。
【００５７】
変換されたデータ（即ち、第２のカラースペース、このケースでは、ＲＧＢカラースペースに表されるデータ）は、次いで、バッファされ（ＦＩＦＯ３４２）、その後、上述したように、第２のカラースペースに表された他の平面と混合されるべく混合ユニット３１０へ送られる。第１のカラースペースに表されたデータを、第２のカラースペースに表されたデータへ変換するプロセス中に、第１の（即ち、ＹＣｂＣｒ）カラースペースに表されたカラーを第２の（即ち、ＲＧＢ）カラースペースに表せないことがある。例えば、変換は、１より大きいか又は０より小さいＲ、Ｇ又はＢ成分値を生じる。それ故、あるディスプレイ装置にビデオを表示すると、望ましいもの及び／又は予想されるものとは異なる視覚結果を生じる。それ故、少なくとも１組の実施形態において、混合ユニット３１０は、変換されたピクセル値が第２のカラースペースに有効ピクセル値を表わさないときでも、変換されたピクセル値を使用して混合動作を遂行するように設計される。例えば、第２のカラースペース（又は混合ユニット３１０の動作カラースペース）がＲＧＢカラースペースである場合には、混合ユニット３１０は、＋４の高さの及び−４の低さのＲＧＢ値を許す。もちろん、これらの値は、異なってもよく、元のカラースペースがどんなものであるかにも依存する。これらの値は、第２の（即ち、ＲＧＢ）カラースペースに有効なピクセル値を表わすものではないが、第１の（即ち、ＹＣｂＣｒ）カラースペースにおける正しい値へ変換して戻すことができる。従って、元の（ＹＣｂＣｒ）カラースペースからのカラー情報は、ビデオパイプ３２８を通して維持され、ビデオフレームを表示する全てのディスプレイ装置に適切に表示される。それ故、混合ユニット３１０に使用されるカラー値のビット長さ（図６ａに‘Ｌ’で示され、対応的に上述された）は、混合ユニット３１０が動作する所与のカラースペースについて予想されるものとは異なってもよい。しかしながら、ここに述べる種々の実施形態は、指定のビットサイズ、又は換言すれば、指定ビット数の巾を有するアルファ値及びカラー値で動作する。
【００５８】
従って、最終混合段３１８により出力された混合されたピクセルを表示する前に、混合されたピクセルは、カラースペースコンバータユニット３４１を通して第２のカラースペース（即ち、このケースではＲＧＢ）から元のビデオカラースペース（即ち、このケースではＹＣｂＣｒカラースペース）へ変換される。ビデオパイプ３２８のケースと同様に、カラースペースコンバータユニット３４１は、混合ユニット３１０内で、混合段３１８とＦＩＦＯ３２０との間に位置されて示されているが、別の実施形態では、カラースペース変換がディスプレイコントローラ側においてディスプレイに与えられる前に遂行され、更に、図３に示す実施形態によって種々の他の実施形態が限定されるものではない。
【００５９】
アクティブな領域（上述した）と称される有効ソース領域と同様に、少なくとも１つの有効ビデオウインドウ又はビデオ行先フレーム（略して、行先フレーム）も定義される。アクティブな領域又は行先フレーム（及びそれらの各コンテンツ）は、指定の進行方向にディスプレイフレームを横切って並進又は移動される。図７は、行先フレームをどのように移動するか示す。アクティブな領域は、以下に詳細に述べるように同様に移動される。図７において、行先フレーム７０１は、出発位置に７０１ａとして表され、そして次の位置に７０１ｂとして表されている。ここに示す例では、行先フレーム７０１は、右下へ移動される。ビデオパイプ３２８は、ＤｓｔＨｅｉｇｈｔとして指定される指定の高さ及びＤｓｔＷｉｄｔｈとして指定される指定の巾を有するビデオウインドウ（行先フレーム）を発生する。ビデオパイプ３２８により発生される有効ピクセルの数は、ＤｓｔＨｅｉｇｈｔとＤｓｔＷｉｄｔｈとの積である。行先フレームは、ＵＩ３０４及びＵＩ３２２から得た画像情報と混合されるべく混合ユニット３１０へ送られる。行先フレームは、ディスプレイフレーム７２６内のＸ、Ｙオフセット（７１１）に配置される。ビデオパイプ３２８は、完全なピクセルフレームを混合ユニット３１０へ送るが、行先フレームにないピクセルは、有効領域にないと考えられ、混合ユニット３１０において混合されない。行先フレームのエッジにない全てのピクセルは、同じスタティックアルファ値、例えば、１．０のスタティックアルファ値を有し、これは、行先フレームのエッジ内の全てのビデオフレームが完全に不透明であることを指示する。図７において、行先フレーム７０１のエッジは、エッジ７０２ａ−７０２ｄとして指示される。
【００６０】
ディスプレイスクリーン７２６を横切って行先フレーム７０１をスムースに並進させるために、行先フレームのエッジ７０２ａ−７０２ｄに沿ったピクセルは、プログラム可能なエッジごとのアルファ値を有する。角のピクセル（即ち、エッジ７０２ａ及び７０２ｂにより形成された角、エッジ７０２ｂ及び７０２ｃにより形成された角、エッジ７０２ｃ及び７０２ｄにより形成された角、並びにエッジ７０ｄａ及び７０２ａにより形成された角）は、一緒に乗算される角を形成するエッジの各エッジアルファ値に等しいエッジアルファ値に関連している。例えば、エッジ７０２ａ及び７０２ｂにより形成された角ピクセルに関連したエッジアルファ値は、エッジ７０２ａに関連したエッジアルファ値及びエッジ７０２ｂに関連したエッジアルファ値を一緒に乗算することにより得られる。本質的に、エッジアルファ値は、ピクセル境界にない行先フレームの移動をシミュレーションするための手段をなす。換言すれば、部分ピクセル移動と思われるものでスクリーンを横切って行先フレームを並進することを許す。行先フレームをアニメ化し、スクリーンを横切ってそれをゆっくり移動するときに、全ピクセルインクリメントにおいて一度に１つのピクセルでしか歩進することができず、その結果、ピクチャー／移動は希望通りスムースに見えない。従って、全行先フレームのアルファ値とは異なるアルファ値が混合中にエッジ７０２ａ−７０２ｄに適用される。ある意味で、エッジは、部分的に透明に作られて、行先フレームの画像を、それがソースピクセル位置から「部分的に出て」行先ピクセル位置へ「部分的に入る」かのように見えるようにする。
【００６１】
例えば、図７において明らかなように、位置７０１ｂにおける行先フレーム７０１は、元のオフセット位置７１１から右へ１ピクセル及び下へ１ピクセルであるように示されている。しかしながら、並進率によれば、行先位置７０１ｂは、元のオフセット位置７１１から右へ１ピクセル未満であり且つ下へ１ピクセル未満であるように設計されている。例えば、行先フレームの公称行先位置は、元のオフセット位置７１１から右へ１．２５ピクセル及び下へ１．２５ピクセルとなっている。しかしながら、行先フレームは、実際にはピクセル境界で休止しているだけであるから、行先フレーム（位置）７０１ｂは、図７に示すように、１ピクセル右へ且つ１ピクセル下へ移動される。水平方向を考慮すれば、進行方向に（即ち、右手側へ）、エッジ７０２ｂのエッジアルファ値は、エッジ７０２ｂがそれに対応する実際の行先ピクセルエリアへ「２５％入っている」ことを表わす０．２５であるように指定され、そしてエッジ７０２ｄのエッジアルファ値は、エッジ７０２ｄがそれに対応する実際の行先ピクセルエリアから「２５％出ている」ことを表わす１−０．２５＝０．７５であるように指定される。それ故、ある意味では、エッジ７０２ａ−７０２ｄを部分的に透明にすることは、１ピクセル以下の移動率を模擬する。移動方向に垂直の反対エッジ（例えば、頂部／底部−７０２ａ及び７０２ｂ、左／右−７０２ｄ及び７０２ｂ）は、１のアルファ値を総計するようにプログラムされ、角は、隣接エッジの複数の各アルファ値でプログラムされる。透明性を使用して、エッジの画像ピクセルが各ピクセルエリア全体（ピクセル方形）を占有しないかのように見えるようにする。
【００６２】
１組の実施形態において、行先フレームの４つのエッジの各々に対応する各エッジアルファ値を含むエッジアルファ値がビデオパイプ３２８内の１つ以上のレジスタ３２３ａ−３２３ｎへプログラムされる。コントロールユニット３８０は、カラースペースコンバータ３４０から処理されたビデオピクセルを受け取り、そしてレジスタ３２３ａ−３２３ｎからエッジアルファ値を受け取る。コントロール回路３８０は、処理されたビデオピクセルのどれが行先フレームのエッジに沿ったビデオ情報を表わすか決定し、そして各エッジアルファ値を、所与のエッジアルファ値に対応する所与のエッジに沿ったビデオ情報を表わす全ての対応ピクセルに関連付ける。次いで、コントロールユニット３８０は、処理されたビデオピクセル及びエッジアルファ値を、ＦＩＦＯ３４２を経て混合ユニット３１０へ送って、ＵＩ３０４及びＵＩ３２２を経て受け取った画像情報と混合させる。
【００６３】
１組の実施形態において、パラメータＦＩＦＯ３５２を使用して、レジスタ３１９ａ−３１９ｎ、３２１ａ−３２１ｎ、３１７ａ−３１７ｎ及び３２３ａ−３２３ｎに対するプログラミング情報を記憶する。パラメータＦＩＦＯ３５２にはコントロールロジック３４４によりこのプログラミング情報が充填され、このコントロールロジックは、メモリからホストマスターインターフェイス３０２を経てプログラミング情報を得る。ある実施形態では、パラメータＦＩＦＯ３５２には、進歩型高性能バス（ＡＨＢ）を通りホストスレーブインターフェイス３０３を経てプログラミング情報が充填される。
【００６４】
図８は、スクリーンを横切って画像を移動するための方法の一実施形態を示すフローチャートである。行先フレームに対応する画像ピクセルがフェッチされ、この画像ピクセルは、行先フレームのエッジに対応するエッジピクセルを含む（８０２）。次いで、行先フレームのエッジが検出され（８０４）、エッジアルファ値をエッジピクセルに適用して、行先フレームのエッジの２つ以上を部分的に透明にさせる一方、行先フレームの２つ以上のエッジの内側の行先フレームのエリアを完全に不透明に保持する（８０６）。従って、行先フレームは、指定の進行方向にディスプレイフレームを横切って並進され（８０８）、部分ピクセル移動を模擬する。行先フレームは、整数値ではない分数値である移動ピクセル数に対応する並進速度でディスプレイフレームを横切って並進される。１組の実施形態において、エッジアルファ値をエッジピクセルに適用することは（８０６）、並進速度から移動ピクセル数を計算すると共に、ディスプレイフレームに毎秒表示されるフレーム数を表わすフレームレートを計算することを含む（８１０）。移動ピクセル数を表わす分数値に基づいて第１のエッジアルファ値及び第２のエッジアルファ値が指定される（８１２）。第１のエッジアルファ値は、行先フレームの第１エッジのエッジピクセルに適用され、そして第２のエッジアルファ値は、行先フレームの第２エッジのエッジピクセルに適用され、ここで、第１エッジ及び第２エッジは、左エッジ及び右エッジ、又は上エッジ及び下エッジのように互いに平行である（８１４）。
【００６５】
図９は、ディスプレイフレームにビデオフレームを表示する方法の一実施形態を示すフローチャートである。ビデオ情報がビデオバッファから検索され、ビデオ情報は、ビデオフレームに表示されるべきビデオピクセルにより表わされ、そしてビデオピクセルは、ビデオフレームのエッジに沿ったビデオ情報を表わすエッジピクセルを含む（９０２）。エッジピクセルに関連したエッジアルファ値も、１つ以上のレジスタから検索され、ビデオピクセルが処理される（９０４）。処理されたビデオピクセルは、ディスプレイフレームに表示されるべき付加的な画像情報を形成する対応ピクセルと混合される（９０６）。混合プロセスは、エッジアルファ値を処理されたエッジピクセルと混合することにより、ビデオフレームのエッジに沿って表わされたビデオ情報を、ビデオフレームのエッジの内側に表されたビデオ情報より透明なものにすることを含む（９０６）。ある実施形態では、ビデオフレームのエッジの内側に表されたビデオ情報は、完全に不透明とされる。ビデオフレームは、非ゼロの水平成分及び非ゼロの垂直成分を有する指定の進行方向にディスプレイフレームを横切って並進される（９０８）。
【００６６】
ある実施形態では、混合ステップ（９０６）は、エッジ当たり個別のエッジアルファ値を使用する。例えば、エッジアルファ値は、ビデオフレームの異なるエッジに各々関連した第１、第２、第３及び第４のエッジアルファ値を含む。換言すれば、４つのエッジアルファ値の各エッジアルファ値は、アルファ値に関連したエッジに沿ったビデオ情報を表わす各エッジピクセルに対応する。例えば、第１のエッジアルファ値は、ビデオフレームの左エッジに沿ったビデオ情報を表わすエッジピクセルに関連し、第２のアルファ値は、ビデオフレームの右エッジに沿ったビデオ情報を表わすエッジピクセルに関連し、等々である。混合中に、各エッジアルファ値は、それに対応するエッジピクセルと混合される。ビデオフレームの左エッジ及び右エッジに関連したエッジアルファ値は、指定の進行方向の水平成分の値に基づいて決定され、そしてビデオフレームの上エッジ及び下エッジに関連したエッジアルファ値は、指定の進行方向の垂直成分の値に基づいて決定される。
【００６７】
当業者であれば、以上の開示が完全に理解されれば、多数の変更や修正が明らかとなろう。そのような変更や修正は、全て、特許請求の範囲に包含される。
【符号の説明】
【００６８】
１００：システム
１０１：集積回路（ＩＣ）
１０２Ａ−１０２Ｂ：外部メモリ
１０４Ａ−１０４Ｂ：メモリ物理的インターフェイス回路（ＰＨＹ）
１０６：メモリコントローラ
１０８Ａ−１０８Ｅ：ポート
１１０：グラフィックユニット
１１４：ＣＰＵブロック
１１６：プロセッサ
１１８：キャッシュ
１２０：非リアルタイム（ＮＲＴ）周辺装置
１２２：周辺インターフェイスコントローラ
１２４：ＤＭＡコントローラ
１２６：周辺装置
１２８：リアルタイム（ＲＴ）周辺装置
１３０：ポートアービター
１３２：並進ユニット
１３４：ディスプレイパイプ
１３６：画像プロセッサ
２０２：メモリ
２０６：ビデオバッファ
２０８、２１０：画像フレームバッファ
２１２：ディスプレイパイプ
３００：ディスプレイパイプ
３０４、３２２：ユーザインターフェイス（ＵＩ）ブロック
３０６、３２４：フェッチユニット
３１０：混合ユニット
３２８：ビデオパイプ
３４４：コントロールロジック
３５２：パラメータＦＩＦＯ
【図１】
0005697763.tif 000002
【図２】
0005697763.tif 000003
【図３】
0005697763.tif 000004
【図４】
0005697763.tif 000005
【図５】
0005697763.tif 000006
【図６ａ】
0005697763.tif 000007
【図６ｂ】
0005697763.tif 000008
【図７】
0005697763.tif 000009
【図８】
0005697763.tif 000010
【図９】
0005697763.tif 000011