JP5697763B2 - 画像並進のためのエッジのアルファ値でのレイヤ混合 - Google Patents

画像並進のためのエッジのアルファ値でのレイヤ混合 Download PDF

Info

Publication number
JP5697763B2
JP5697763B2 JP2013554456A JP2013554456A JP5697763B2 JP 5697763 B2 JP5697763 B2 JP 5697763B2 JP 2013554456 A JP2013554456 A JP 2013554456A JP 2013554456 A JP2013554456 A JP 2013554456A JP 5697763 B2 JP5697763 B2 JP 5697763B2
Authority
JP
Japan
Prior art keywords
edge
image
pixels
pixel
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013554456A
Other languages
English (en)
Other versions
JP2014513823A (ja
Inventor
ジョセフ ピー ブラット
ジョセフ ピー ブラット
ピーター エフ ホランド
ピーター エフ ホランド
ゴカン アヴカログラリ
ゴカン アヴカログラリ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2014513823A publication Critical patent/JP2014513823A/ja
Application granted granted Critical
Publication of JP5697763B2 publication Critical patent/JP5697763B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Description

本発明は、グラフィック情報処理の分野に関するもので、より詳細には、スクリーンを横切って画像/ビデオフレームを移動することに関する。
移動電話、ノードブックコンピュータ、等のポータブルデジタル装置を含む多数のコンピュータシステムの動作の一部分は、液晶ディスプレイ(LCD)のようなあるタイプのディスプレイ装置を使用して、画像、ビデオ情報/ストリーム及びデータを表示することである。従って、これらのシステムは、典型的に、画像及びデータ、ビデオ情報を含む、を発生するための機能を合体しており、それらは、その後、ディスプレイ装置へ出力される。そのような装置は、典型的に、画像及びビデオ情報をその後の表示のために処理するビデオグラフィック回路を備えている。
デジタル画像処理では、画像の最小の情報アイテムが「画素」と称され、更に一般的には、「ピクセル」とも称される。便宜上、ピクセルは、一般的に、規則的な二次元格子に配列される。この配列を使用し、各ピクセルに同じ動作を独立して均一に適用することで多数の共通の動作を実施することができる。各ピクセルは、デジタル画像の基本的部分であるから、ピクセル数が多い程、デジタル画像の表現精度が高くなる。各ピクセルの強度が変化し、カラーシステムでは、各ピクセルが、典型的に、赤、緑、青、及び黒のような3つ又は4つの成分を有する。
LCDスクリーンのようなディスプレイ装置に表示されるほとんどの画像及びビデオ情報は、一連の画像フレーム又は略してフレームとして解釈される。一般的に、フレームとは、完全な動画又はビデオストリームを作り上げる多数の静止画像の1つであるが、フレームは、又、単にデジタル(個別又は連続スキャン)ディスプレイに表示される静止画像としてより広く解釈することもできる。フレームは、典型的に、画像/ビデオフレームの解像度に基づいて指定数のピクセルより成る。フレームに関連した情報は、典型的に、スクリーン上に表示されるピクセルごとにカラー値より成る。カラー値は、1ビットモノクロ、4ビットパレット化、8ビットパレット化、16ビットハイカラー、及び24ビットトゥルーカラーのフォーマットで共通に記憶される。ピクセルの透明度に関する情報を保持するために付加的なアルファチャンネルがしばしば使用される。カラー値は、多数のカラースペースの1つに対応する情報を表わすことができる。
カラー値に加えて、ピクセルは、ピクセルの不透明度情報を与える関連ピクセル毎アルファ値も有する。アルファ値は、アルファチャンネルと通常称されるものに記憶され、各アルファ値は、0と1との間であり、0の値は、ピクセルがカバレージ情報をもたず透明であることを意味し、そして1の値は、ピクセルが不透明であることを意味する。この不透明情報に基づき、画像フレームの種々のレイヤが一緒に混合される。一般的に、混合とは、1つのレイヤの一部分を別のレイヤ上にオーバーレイするか、又はあるエレメントの部分的透明の見掛けをあるレイヤに生成するために、画像の多数のレイヤを合成するプロセスである。例えば、混合は、コンピュータでレンダリングされた画像エレメントをライブフッテージと合成するときに広く使用される。あるケースでは、スクリーンを横切って画像が並進(translate)(移動(move))される。画像は、静止画像でもよいし、又はビデオフレームのコンテンツを表わしてもよい。それ故、混合結果は、画像の動きを表わす。画像が動く速度と、毎秒表示されるフレームの数とに基づき、垂直及び水平の両方向に移動するピクセルの数を計算することができる。即ち、移動率は、ピクセルを参照することができる。典型的に、移動のピクセル数は、整数ではなく、1ピクセル以下の移動率(又は分数ピクセル移動)を指示する。しかしながら、(移動ピクセルの)数をそれに最も近い整数に丸め、そしてあるフレームにおける特別なピクセル移動で補償するきには、並進が希望通りのスムースなものとはならない。
当業者であれば、そのような従来技術をここに開示する本発明と比較した後に、従来技術に関連した他の対応する問題が明らかとなろう。
ビデオ及び/又は画像フレームのピクセルを処理するためのディスプレイパイプにおける混合ユニットは、複数のレイヤに対するピクセルを混合するための複数の混合段を備えている。例えば、複数(2、3又はそれ以上)のレイヤが、一度に2レイヤ混合され、各混合段は、2つのレイヤにおいて混合動作を遂行し、所与の混合段の出力は、次の混合段への入力を与え、等々で、最終混合段まで至る。各混合段内で混合を行うのに使用される混合方程式は、複数の混合レベルを伴うマルチステップ方程式である。各所与の混合段内で、現在レイヤのアルファ値及びカラー値と、(背景レイヤで始めて)それ以前に混合されたレイヤを表わすカラー結果とが全て合成されて、合成レイヤにおける所与のピクセル位置に対する出力値を得る。混合は、多数のタイプのアルファ値を使用して遂行される。例えば、個々のピクセルは、各々、それに対応するピクセル毎アルファ値を有し、個々のフレームは、各々、静的なフレーム毎アルファ値を有し、そして個々のフレームは、各々、フレーム毎ディゾルブアルファ値とも称される静的なフレーム毎合成アルファ値を有する。ある実施形態では、ピクセル毎アルファ値は、カラー値で予め乗算される。
1組の実施形態において、エッジ(edge)アルファ値として指定される付加的なタイプのアルファ値も、混合中に使用される。あるケースでは、スクリーンを横切って画像が並進(移動)される。画像が移動する速度と、毎秒表示されるフレームの数とに基づき、垂直及び水平の両方向に移動するピクセルの数が計算される。即ち、移動率は、ピクセルを参照する。移動のピクセル数は、整数ではなく、1ピクセル以下の移動率(又は分数ピクセル移動)を指示する。(移動ピクセルの)数をそれに最も近い整数に丸め、そしてあるフレームにおける特別なピクセル移動で補償する場合は、スクリーンを横切る並進が希望通りのスムースなものには見えない。それ故、ビデオ及び/又は画像フレームのピクセルの処理に使用されるディスプレイパイプは、並進されるべき画像のエッジに関連したエッジアルファ値を記憶するために1つ以上のレジスタを備えている。画像は、静止画像でもよいし、又はビデオフレームのコンテンツを表わしてもよい。エッジアルファ値は、ディスプレイフレームにおいて画像が移動される分数ピクセルに基づいてセットされる。ディスプレイパイプは、進行方向にあるピクセルの列及び行をコピーし、そしてこの付加的な列及び行にエッジアルファ値を適用する。エッジアルファ値は、画像の付加的な列及び行と、ディスプレイフレーム内の隣接ピクセルとの混合をコントロールし、1ピクセル以下の率の移動を模擬する部分ピクセル移動の作用を与える。
1組の実施形態において、ビデオパイプは、画像のエッジに適用されるエッジアルファ値でプログラムできる1つ以上のレジスタを備え、画像は、指定の進行方向に画像フレームを横切って並進され、そしてエッジは、指定の進行方向に垂直である。又、ビデオパイプは、画像のピクセル及びそれに対応するアルファ値を混合ユニットへ供給し、画像のエッジを検出し、そして1つ以上のレジスタからのエッジアルファ値を、画像のエッジを形成するピクセルと共に混合ユニットへ供給して、画像フレームの対応ピクセルと混合するために、1つ以上のレジスタに結合されたコントロールユニットも備えている。エッジアルファ値は、画像フレームを横切って画像を並進すべき分数ピクセル値に基づいて指定される。更に、エッジアルファ値は、それに対応する各アルファ値の分数値でもよい。換言すれば、エッジアルファ値は、画像のエッジを形成するピクセルではない画像ピクセルに対応するアルファ値の分数値である。画像フレームの対応ピクセルは、画像のエッジを形成するピクセルに隣接する。
別の1組の実施形態において、ディスプレイパイプは、ソースバッファから画像ピクセルをフェッチするためのフェッチユニットを備えている。画像ピクセルは、指定の進行方向に画像フレームを横切って並進される画像を形成し、画像ピクセルは、画像のエッジを形成するエッジピクセルを含むと共に、エッジピクセルではない残りの画像ピクセルを表わす内部ピクセルも含む。又、フェッチユニットは、内部ピクセルに対応するアルファ値もフェッチする。ディスプレイパイプは、更に、エッジピクセルに関連したエッジアルファ値でプログラムできるレジスタを備えると共に、エッジピクセルを識別し、内部ピクセル及びアルファ値を混合ユニットへ供給して画像フレームのピクセルと混合し、且つエッジピクセル及びエッジアルファ値を混合ユニットへ供給して画像フレームの対応ピクセルと混合するためにコントロールユニットも備えている。又、ディスプレイパイプは、1つ以上の付加的な画像を形成するピクセルをフェッチすると共に、ピクセルに対応する各アルファ値もフェッチするために1つ以上のユーザインターフェイスユニットを備えている。このユーザインターフェイスユニットは、ピクセル及び各アルファ値を混合ユニットに供給して、画像フレームのピクセル、内部ピクセル、アルファ値、エッジピクセル、及びエッジアルファ値と混合させる。画像ピクセルにより形成された画像は、ビデオストリームのフレームを表わす。エッジピクセルは、画像の第1エッジを形成するエッジピクセル、及び画像の第2エッジを形成するエッジピクセルを含み、第1エッジ及び第2エッジは、指定の進行方向に垂直である。対応的に、エッジアルファ値は、画像の第1エッジを形成するエッジピクセルに関連した第1のエッジアルファ値、及び画像の第2エッジを形成するエッジピクセルに関連した第2のエッジアルファ値を含み、第1のアルファ値と第2のアルファ値の和は、100%不透明に対応するアルファ値を表わす。
1つの実施形態において、システムは、指定の進行方向に指定の並進率でディスプレイフレームを横切って並進されるビデオフレームに対応してビデオピクセルにより表されたビデオ情報を記憶するためのビデオバッファを備えている。ビデオピクセルは、ビデオフレームのエッジに沿ったビデオ情報を表わすエッジピクセルを含む。又、システムは、画像ピクセルにより表された画像情報を記憶するためのフレームバッファを備えると共に、エッジピクセルに関連したエッジアルファ値を記憶する少なくとも1つのレジスタを含むディスプレイパイプも備えている。指定の並進率は、垂直及び水平方向への移動のピクセル数に対応し、そしてその移動ピクセル数に従ってアルファ値が指定される。ディスプレイパイプは、ビデオバッファからビデオピクセルを、及びフレームバッファから画像ピクセルをフェッチし、そしてエッジアルファ値を、フェッチしたエッジピクセルと混合して、混合エッジピクセルを発生する。次いで、ディスプレイパイプは、混合エッジピクセルを含むフェッチしたビデオピクセルを、フェッチした画像ピクセルと混合して、混合ピクセルを発生する。更に、システムは、混合ピクセルを受け取って、その混合ピクセルをディスプレイスクリーンに表示すべく与えるためにディスプレイコントローラも備えている。
以下、添付図面を参照して、本発明を詳細に説明する。
グラフィックディスプレイシステムを含む集積回路の一実施形態のブロック図である。 システムメモリを含むグラフィックディスプレイシステムの一実施形態のブロック図である。 グラフィックディスプレイシステムにおけるディスプレイパイプの一実施形態のブロック図である。 一実施形態による異なる混合方法に対する混合方程式のテーブルである。 一実施形態による異なる混合方法に対する有効アルファ値の各計算のテーブルである。 一実施形態により2つの画像レイヤのフレームピクセルを混合するための混合段の概略図である。 一実施形態により異なる混合方法の1つに基づいて混合するように図6aの混合段をプログラムするための選択メカニズムの論理図である。 一実施形態によりディスプレイフレーム内の行先フレームの配置及び移動を示す図である。 スクリーンを横切って画像を移動するための方法の一実施形態を示すフローチャートである。 ディスプレイフレームにビデオフレームを表示する方法の一実施形態を示すフローチャートである。
本発明は、種々の変更を受けそして別の形態でも実施できるが、その特定の実施形態を一例として添付図面に示して以下に詳細に説明する。しかしながら、添付図面及び詳細な説明は、本発明を、ここに開示する特定の形態に限定するものではなく、本発明は、特許請求の範囲に規定される本発明の精神及び範囲内に入る全ての変更、等効物及び代替え物を網羅することを理解されたい。ここに使用する見出しは、編成上の目的に過ぎず、説明の範囲を限定するためのものではない。又、本出願全体にわたって使用される「〜してもよい(may)」という語は、許すという意味(即ち、〜の潜在性があるという意味)で使用されるもので、強制の意味(即ち、〜しなければならないという意味)ではない。同様に、「含む(include)」、「含んでいる(including)」及び「含む(includes)」という語は、含むことを意味するが、それに限定されない。
種々のユニット、回路又は他のコンポーネントは、1つ又は複数のタスクを遂行するように「構成される」ものとして述べる。この点について、「構成される」とは、動作中に1つ又は複数のタスクを遂行する「回路を有する」ことを一般的に意味する構造を広く表現するものである。従って、ユニット/回路/コンポーネントは、そのユニット/回路/コンポーネントが現在オンでなくても、タスクを遂行するように構成することができる。一般的に、「構成される」に対応する構造を形成する回路は、ハードウェア回路、及び/又は動作を行うために実行できるプログラムインストラクションを記憶するメモリを含む。このメモリは、スタティック又はダイナミックランダムアクセスメモリのような揮発性メモリ、及び/又は光学的又は磁気ディスク記憶装置、フラッシュメモリ、プログラマブルリードオンリメモリ、等の不揮発性メモリを含む。同様に、種々のユニット/回路/コンポーネントは、説明の便宜上、1つ又は複数のタスクを遂行するものとして説明されてもよい。そのような説明は、「構成される」という句を含むものと解釈されねばならない。1つ以上のタスクを遂行するように構成されたユニット/回路/コンポーネントを表現する場合に、そのユニット/回路/コンポーネントに関して35U.S.C.§112、第6節の解釈を引用しないことが明確に意図される。
図1を参照すれば、システム100のブロック図が示されている。図1の実施形態において、システム100は、外部メモリ102A−102Bに結合された集積回路(IC)101を備えている。ここに示す実施形態では、IC101は、中央処理ユニット(CPU)ブロック114を備え、これは、1つ以上のプロセッサ116及びレベル2(L2)キャッシュ118を含む。他の実施形態は、L2キャッシュ118を含まず、及び/又は付加的なレベルのキャッシュを含むことがある。更に、3つ以上のプロセッサ116を含む実施形態や、1つのプロセッサ116しか含まない実施形態も意図される。IC101は、更に、1組の1つ以上の非リアルタイム(NRT)周辺装置120、及び1組の1つ以上のリアルタイム(RT)周辺装置128を備えている。ここに示した実施形態では、RT周辺装置128は、画像プロセッサ136、1つ以上のディスプレイパイプ134、並進ユニット132、及びポートアービター130を含む。他の実施形態では、より多くのプロセッサ136又はより少ない画像プロセッサ136、より多くのディスプレイパイプ134又はより少ないディスプレイパイプ134、及び/又は必要に応じて付加的なリアルタイム周辺装置が含まれてもよい。画像プロセッサ136は、システム100の1つ以上のカメラから画像データを受け取るように結合される。同様に、ディスプレイパイプ134は、システムの1つ以上のディスプレイをコントロールする1つ以上のディスプレイコントローラ(図示せず)に結合される。画像プロセッサ136は、並進ユニット132に結合され、該ユニットは、更に、ポートアービター130に結合され、これは、ディスプレイパイプ134にも結合される。ここに示す実施形態では、CPUブロック114は、ブリッジ/直接メモリアクセス(DMA)コントローラ124に結合され、このコントローラは、1つ以上の周辺装置126、及び/又は1つ以上の周辺インターフェイスコントローラ122に結合される。周辺装置126及び周辺インターフェイスコントローラ122の数は、種々の実施形態においてゼロから希望の数まで変化する。図1に示すシステム100は、更に、G0 112A及びG1 112Bのような1つ以上のグラフィックコントローラを含むグラフィックユニット110を備えている。他の実施形態では、グラフィックユニット当たりのグラフィックコントローラの数及びグラフィックユニットの数が変化し得る。図1に示すように、システム100は、1つ以上のメモリ物理的インターフェイスユニット(PHY)104A−104Bに結合されたメモリコントローラ106を備えている。メモリPHY104A−104Bは、IC101のピンを経てメモリ102A−102Bと通信するように構成される。又、メモリコントローラ106は、1組のポート108A−108Eも含む。ポート108A−108Bは、各々、グラフィックコントローラ112A−112Bに結合される。CPUブロック114は、ポート108Cに結合される。NRT周辺装置120及びRT周辺装置128は、各々、ポート108D−108Eに結合される。他の実施形態では、メモリコントローラ106に含まれるポートの数が、メモリコントローラの数と同様に、変化し得る。他の実施形態では、メモリ物理的レイヤ(PHY)104A−104B及びそれに対応するメモリ102A−102Bの数が、図1に示す2つより少なくても多くてもよい。
1つの実施形態において、各ポート108A−108Eは、特定タイプのトラフィックに関連している。例えば、1つの実施形態において、トラフィックのタイプは、RTトラフィック、非RT(NRT)トラフィック、及びグラフィックトラフィックを含む。他の実施形態では、前記トラフィックタイプの副組に加えて又はそれに代わって他のトラフィック形態が含まれる。各タイプのトラフィックは、異なる仕方で(例えば、要件及び振舞いに関して)特徴付けされてもよく、そしてメモリコントローラ106は、その特徴に基づいて高い性能を発揮するようにトラフィックタイプを異なる仕方で取り扱う。例えば、RTトラフィックは、指定の時間量内に各メモリ動作のサービスを要求する。動作のレイテンシーが指定の時間量を越える場合には、RT周辺装置128にエラー動作が生じる。例えば、画像プロセッサ136において画像データが失われるか、又はディスプレイパイプ134が結合されたディスプレイに表示された画像が目で見て歪んだ状態になる。RTトラフィックは、例えば、同時性(isochronous)として特徴付けられる。他方、グラフィックトラフィックは、比較的高い帯域巾であるが、レイテンシーに敏感でない。プロセッサ116等からのNRTトラフィックは、性能上の理由でレイテンシーに敏感であるが、高いレイテンシーに生き残る。即ち、NRTトラフィックは、一般的に、NRTトラフィックを発生する装置においてエラー動作を生じることなくいかなるレイテンシーでもサービスされる。同様に、レイテンシーにはあまり敏感でないが高い帯域巾のグラフィックトラフィックは、一般的に、いかなるレイテンシーでもサービスされる。他のNRTトラフィックは、比較的低い帯域巾であって且つ一般的に適度なレイテンシーでサービスされるオーディオトラフィックを含む。ほとんどの周辺装置のトラフィックもNRTである(例えば、磁気、光学又はソリッドステート記憶装置のような記憶装置へのトラフィック)。異なるトラフィックタイプに関連したポート108A−108Eを設けることにより、メモリコントローラ106は、異なるトラフィックタイプに並列に露出される。
上述したように、RT周辺装置128は、画像プロセッサ136及びディスプレイパイプ134を含む。ディスプレイパイプ134は、1つ以上の画像フレームをフェッチしそしてそれらフレームを混合して表示画像を生成するための回路を含む。ディスプレイパイプ134は、更に、1つ以上のビデオパイプラインを含み、ビデオフレームは、(比較的)スタティックな画像フレームと混合されて、ビデオフレームレートで表示するためのフレームを生成する。ディスプレイパイプ134の出力は、ディスプレイスクリーンに表示されるべきピクセルのストリームである。ピクセル値は、ディスプレイスクリーンに表示するためにディスプレイコントローラへ送信される。画像プロセッサ136は、カメラデータを受け取り、そしてそのデータを、メモリに記憶される画像へと処理する。
ディスプレイパイプ134及び画像プロセッサ136は、両方とも、バーチャルアドレススペースで動作し、従って、並進を使用して、メモリを読み取り又は書き込むメモリ動作のための物理的アドレスを発生する。画像プロセッサ136は、多少ランダムアクセスメモリのパターンを有し、従って、並進のための並進ユニット132に依存する。並進ユニット132は、キャッシュ記憶された他の並進に対して並進がどれほど頻繁に使用されるかに基づき各並進をある期間中キャッシュ記憶する並進ルックアサイドバッファ(TLB)を使用する。例えば、TLBは、セットアソシアティブ又はフルアソシアティブ構造を使用し、最近最も使用されていない(LRU)タイプのアルゴリズムを使用して、セット内の並進の間で(又はフルアソシアティブ構成ではTLBにわたって)並進の使用の最近度をランク付けする。LRUタイプのアルゴリズムは、例えば、トゥルーLRU、擬似LRU、最近最も使用される(MRU)、等を含む。更に、TLBにおける容量ミスの影響を減少するために非常に大きなTLBが実施される。
他方、ディスプレイパイプ134のアクセスパターンは、非常に規則的である。例えば、各ソース画像の画像データは、バーチャルアドレススペースの連続メモリ位置に記憶される。従って、ディスプレイパイプ134は、バーチャルページからのソース画像データの処理を開始し、その後のバーチャルページは、そのバーチャルページに対して連続的となる。即ち、バーチャルページ番号は、画像データがフェッチされたときにページからページへ1だけ増加又は減少する数字順である。同様に、並進は、メモリ内の所与のページテーブルにおいて互いに連続的である(例えば、ページテーブル内の連続的エントリは、互いに数字的に1だけ大きいか又は小さいバーチャルページ番号を並進する)。幾つかの実施形態では、2つ以上のページテーブルが使用され、従って、ページテーブルの最後のエントリは、次のページテーブルの最初のエントリと連続していないが、ほとんどの並進は、ページテーブルにおいて連続している。別の仕方で考えると、画像データを記憶するバーチャルページは、バーチャルアドレススペースにおいて互いに隣接している。即ち、バーチャルアドレススペースにおいて隣接するバーチャルページ間に介在するページはない。
ディスプレイパイプ134は、ディスプレイパイプが画像データを読み取る前に並進をプリフェッチする並進ユニットを実施する。プリフェッチは、ソース画像の処理を開始すべきときに開始され、そして並進ユニットは、並進ユニットの並進メモリをいっぱいにするに充分な連続的並進をプリフェッチする。ディスプレイパイプのフェッチ回路は、バーチャルページのデータの処理が完了したときに並進ユニットに通知し、そして並進ユニットは、対応する並進を無効化して、付加的な並進をプリフェッチする。従って、最初のプリフェッチが完了すると、ディスプレイパイプ134がバーチャルページからのフェッチを開始するとき、各バーチャルページの並進を並進ユニットにおいて頻繁に利用することができる。更に、ディスプレイパイプ134からの並進ユニット132に対する競合は、並進プリフェッチユニットの利益のために排除される。ディスプレイパイプ134の並進ユニット132は、1組の隣接バーチャルページに対して並進をフェッチするので、それらは、「ストリーミング並進ユニット」と称される。
一般的に、ディスプレイパイプ134は、比較的スタティックなフレームをフェッチするように構成された1つ以上のユーザインターフェイスユニットを備えている。即ち、スタティックフレームのソース画像は、ビデオシーケンスの一部分ではない。スタティックフレームは、変化されるが、ビデオシーケンスに対応するビデオフレームレートに従って変化するのではない。ディスプレイパイプ134は、更に、ビデオフレームをフェッチするように構成された1つ以上のビデオパイプラインを備えてもよい。これらの種々のパイプライン(例えば、ユーザインターフェイスユニット及びビデオパイプライン)は、一般的に、「画像処理パイプライン」と称される。
メモリコントローラ106に戻ると、一般的に、ポートは、1つ以上のソースと通信するためのメモリコントローラ106上の通信ポイントである。あるケースでは、ポートは、ソース専用である(例えば、ポート108A−108Bは、各々、グラフィックコントローラ112A−112B専用である)。他のケースでは、ポートは、複数のソース間で共有される(例えば、プロセッサ116は、CPUポート108Cを共有し、NRT周辺装置120は、NRTポート108Dを共有し、そしてディスプレイパイプ134及び画像プロセッサ136のようなRT周辺装置128は、RTポート108Eを共有する)。ポートは、1つ以上のソースと通信するために単一のインターフェイスに結合される。従って、ソースがインターフェイスを共有するときには、ソース間を選択するためにインターフェイスのソース側にアービターがある。例えば、L2キャッシュ118は、メモリコントローラ106へのCPUポート108Cに対してアービターとして働く。ポートアービター130は、RTポート108Eに対するアービターとして働き、そして同様のポートアービター(図示せず)は、NRTポート108Dに対するアービターである。ポート上の単一ソース又はポート上のソースの組み合わせは、エージェントと称される。各ポート108A−108Eは、その各々のエージェントと通信するためにインターフェイスに結合される。インターフェイスは、任意のタイプの通信媒体(例えば、バス、ポイント対ポイント相互接続、等)であり、任意のプロトコルを実施することができる。幾つかの実施形態では、ポート108A−108Eは、全て、同じインターフェイス及びプロトコルを実施する。他の実施形態では、異なるポートが異なるインターフェイス及び/又はプロトコルを実施する。更に別の実施形態では、メモリコントローラ106は、単一ポート付きである。
一実施形態において、各ソースは、そのソースにより伝送される各メモリ動作にサービスクオリティ(QoS)パラメータを指定する。QoSパラメータは、メモリ動作に対するサービスの要求レベルを識別する。高いサービスレベルを要求するQoSパラメータ値を伴うメモリ動作は、低いサービスレベルを要求するメモリ動作に勝る優先度が与えられる。各メモリ動作は、フローID(FID)を含む。このFIDは、メモリ動作のフローの一部分としてメモリ動作を識別する。メモリ動作のフローは、一般的に、関係があり、一方、同じソースからであっても、異なるフローからのメモリ動作は、関係がない。FIDの一部分(例えば、ソースフィールド)は、ソースを識別し、そしてFIDの残りの部分は、フロー(例えば、フローフィールド)を識別する。従って、FIDは、トランザクションIDと同様であり、あるソースは、トランザクションIDを単にFIDとして送信する。そのようなケースでは、トランザクションIDのソースフィールドは、FIDのソースフィールドであり、そしてトランザクションIDのシーケンス番号(同じソースからのトランザクション間でそのトランザクションを識別する)は、FIDのフローフィールドである。幾つかの実施形態では、異なるトラフィックタイプは、QoSパラメータの異なる定義を有する。即ち、異なるトラフィックタイプは、QoSパラメータの異なるセットを有する。
メモリコントローラ106は、各ポート108A−108Eを経て受け取ったQoSパラメータを処理するように構成され、そして相対的QoSパラメータ値を使用して、ポートを経て受け取られるメモリ動作を、そのポートからの他のメモリ動作に対して及び他のポートを経て受け取られる他のメモリ動作に対してスケジュールする。より詳細には、メモリコントローラ106は、QoSパラメータの異なるセット(例えば、RT QoSパラメータ及びNRT QoSパラメータ)から引き出されたQoSパラメータを比較するように構成されると共に、QoSパラメータに基づいてスケジューリングの判断を行うように構成される。
幾つかの実施形態では、メモリコントローラ106は、メモリ動作を保留にするためのQoSレベルをアップグレードするように構成される。種々のアップグレードメカニズムがサポートされる。例えば、メモリコントローラ106は、高いQoSレベルを指定するQoSパラメータを有する同じフローからの別のメモリ動作を受け取るのに応答してフローのメモリ動作を保留にするためのQoSレベルをアップグレードするように構成される。この形態のQoSアップグレードは、インバンド(in-band)アップグレードと称される。というのは、通常のメモリ動作送信方法を使用して送信されるQoSパラメータが同じフローにおいてメモリ動作に対する暗示的なアップグレード要求としても働くからである。メモリコントローラ106は、同じフローではなく同じポート又はソースからの保留中のメモリ動作をプッシュするように構成される。というのは、新たに受け取られるメモリ動作は、より高いQoSレベルを指定するからである。別の例として、メモリコントローラ106は、1つ以上のエージェントから側波帯インターフェイスに結合するように構成され、そして側波帯インターフェイスを経てアップグレード要求を受け取るのに応答してQoSレベルをアップグレードする。別の例では、メモリコントローラ106は、保留中のメモリ動作の相対的年齢を追跡するように構成される。メモリコントローラ106は、年取ったメモリ動作のQoSレベルをある年齢においてアップグレードするように構成される。アップグレードが行われる年齢は、年取ったメモリ動作の現在QoSパラメータに依存する。
メモリコントローラ106は、ポートを経て受け取られる各メモリ動作によりアドレスされるメモリチャンネルを決定するように構成され、そしてそれに対応するチャンネルを経てメモリ102A−102Bへメモリ動作を送出するように構成される。チャンネルの数及びチャンネルへのアドレスのマッピングは、種々の実施形態において変化し、メモリコントローラにおいてプログラム可能である。メモリコントローラ106は、同じチャンネルへマップされたメモリ動作のQoSパラメータを使用して、チャンネルへ送出されるメモリ動作の順序を決定する。
プロセッサ116は、インストラクションセットアーキテクチャーを実施し、そしてそのインストラクションセットアーキテクチャーで定義されたインストラクションを実行するよう構成される。例えば、プロセッサ116は、これに限定されないが、スカラー、スーパースカラー、パイプライン、スーパーパイプライン、順序ずれ、適正順序、推論的、非推論的、等、又はその組み合わせを含む任意のマイクロアーキテクチャーを使用する。プロセッサ116は、回路を含み、又、任意であるが、マイクロコード技術を実施し、そして1つ以上のレベル1キャッシュを含み、キャッシュ118及びL2キャッシュを形成する。他の実施形態では、プロセッサ116に複数レベルのキャッシュが含まれ、そしてキャッシュ118は、ハイアラーキーにおいて次に低いレベルである。キャッシュ118は、任意のサイズ及び構成(セットアソシアティブ、直接マップ、等)を使用することができる。
グラフィックコントローラ112A−112Bは、グラフィック処理回路である。一般的に、グラフィックコントローラ112A−112Bは、表示されるべきオブジェクトをフレームバッファへレンダリングするように構成される。グラフィックコントローラ112A−112Bは、グラフィック動作の一部分又は全部、及び/又は幾つかのグラフィック動作のハードウェア加速を遂行するようにグラフィックソフトウェアを実行するグラフィックプロセッサを含む。ハードウェア加速及びソフトウェア実施の量は、実施形態ごとに変化する。
NRT周辺装置120は、性能及び/又は帯域巾の理由でメモリ102A−102Bへの独立したアクセスが与えられる非リアルタイム周辺装置を備えている。即ち、NRT周辺装置120によるアクセスは、CPUブロック114とは独立しており、CPUブロック114のメモリ動作と並列に進行する。周辺装置126、及び/又は周辺インターフェイスコントローラ122によってコントロールされる周辺インターフェイスに結合される周辺装置のような他の周辺装置も、非リアルタイム周辺装置であるが、メモリへの独立したアクセスを要求しない。NRT周辺装置120の種々の実施形態は、ビデオエンコーダ及びデコーダ、スケーラー/ローテーター回路、画像圧縮/解凍回路、等を含む。
ブリッジ/DMAコントローラ124は、周辺装置126及び周辺インターフェイスコントローラ122をメモリスペースへ橋絡する回路を含む。ここに示す実施形態では、ブリッジ/DMAコントローラ124は、周辺装置/周辺インターフェイスコントローラからCPUブロック114を経てメモリコントローラ106へメモリ動作を橋絡する。又、CPUブロック114は、橋絡されるメモリ動作と、プロセッサ116/L2キャッシュ118からのメモリ動作との間のコヒレンス性も維持する。L2キャッシュ118は、橋絡されるメモリ動作を、CPUインターフェイスを経てCPUポート108Cへ送出されるプロセッサ116からのメモリ動作と裁定する。又、ブリッジ/DMAコントローラ124は、メモリへ及びメモリからデータのブロックを転送するために周辺装置126及び周辺インターフェイスコントローラ122に代わってDMA動作を与える。より詳細には、DMAコントローラは、周辺装置126及び周辺インターフェイスコントローラ122に代わってメモリコントローラ106を経てメモリ102A−102Bへの及び該メモリからの転送を遂行するように構成される。DMAコントローラは、DMA動作を遂行するためにプロセッサ116によりプログラム可能である。例えば、DMAコントローラは、DMA転送を記述するためにメモリ102A0102Bに記憶されたデータ構造(例えば、ソース及び行先アドレス、サイズ、等)である記述子を経てプログラムすることができる。或いは又、DMAコントローラは、DMAコントローラにおけるレジスタ(図示せず)を経てプログラムすることができる。
周辺装置126は、望ましい入力/出力装置、或いはIC101に含まれる他のハードウェア装置を含む。例えば、周辺装置126は、1つ以上のネットワーク媒体アクセスコントローラ(MAC)のようなネットワーク周辺装置、例えば、イーサネットMAC又はワイヤレスフィデリティ(WiFi)コントローラを含む。周辺装置126には、種々のオーディオ処理装置を含むオーディオユニットが含まれる。周辺装置126は、1つ以上のデジタル信号プロセッサ、及び他の望ましい機能的コンポーネント、例えば、タイマー、オンチップ機密メモリ、暗号エンジン、等、又はその組み合わせを含む。
周辺インターフェイスコントローラ122は、任意のタイプの周辺インターフェイスに対するコントローラを含む。例えば、周辺インターフェイスコントローラ122は、ユニバーサルシリアルバス(USB)コントローラ、周辺コンポーネント相互接続エクスプレス(PCIe)コントローラ、フラッシュメモリインターフェイス、汎用入力/出力(I/O)ピン、等の種々のインターフェイスコントローラを含む。
メモリ102A−102Bは、ダイナミックランダムアクセスメモリ(DRAM)、同期DRAM(SDRAM)、倍データレート(DDR、DDR2、DDR3、等)SDRAM(mDDR3、等のSDRAMの移動バージョン、及び/又はLPDDR2、等のSDRAMの低電力バージョンを含む)、RAMBUS DRAM(RDRAM)、スタティックRAM(SRAM)、等の任意のタイプのメモリである。1つ以上のメモリ装置が回路板に結合されて、単一インラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)、等のメモリモジュールを形成する。或いは又、装置は、チップ・オン・チップ構成、パッケージ・オン・パッケージ構成、又はマルチチップモジュール構成でIC101と共にマウントされる。
メモリPHY104A−104Bは、メモリ102A−102Bへの低レベル物理的インターフェイスを取り扱う。例えば、メモリPHY104A−104Bは、信号のタイミング、同期DRAMメモリへの適切なクロック動作、等の役割を果たす。1つの実施形態では、メモリPHY104A−104Bは、IC101内に供給されるクロックにロックするように構成され、そしてメモリ102A及び/又はメモリ102Bにより使用されるクロックを発生するように構成される。
他の実施形態は、図1に示すコンポーネント及び/又は他のコンポーネントのサブセット又はスーパーセットを含めて、コンポーネントの他の組み合わせを含むことに注意されたい。所与のコンポーネントの1つの例が図1に示されたが、他の実施形態は、所与のコンポーネントの1つ以上の例を含む。
図2は、画像フレーム情報及びビデオフレーム情報がシステムメモリであるメモリ202に記憶されそしてディスプレイパイプ212に与えられる規範的なシステムの概略を示す部分ブロック図である。図2に示すように、メモリ202は、ビデオフレーム/情報を記憶するためのビデオバッファ206と、画像フレーム情報を記憶するための1つ以上(図示された実施形態では全部で2つ)の画像フレームバッファ208及び210とを備えている。ある実施形態では、ビデオバッファ206に記憶されるビデオフレーム/情報は、ビデオ情報の起点に基づいて第1のカラースペースに表わされる。例えば、ビデオ情報は、YCbCrカラースペースに表わされる。同時に、画像フレームバッファ208及び210に記憶された画像フレーム情報は、ディスプレイパイプ212の好ましい動作モードに基づいて第2のカラースペースに表わされる。例えば、画像フレームバッファ208及び210に記憶された画像フレーム情報は、RGBカラースペースに表される。ディスプレイパイプ212は、図2の実施形態にUI214及び216として示された1つ以上のユーザインターフェイス(UI)ユニットを備え、これらは、メモリ202に結合されて、そこから画像(フレーム)データ/情報をフェッチし、画像データに対して種々の動作を遂行する。ビデオパイプ又はプロセッサ220も、同様に、メモリ202、特に、ビデオバッファ206からビデオデータをフェッチして、ビデオデータに対して種々の動作を遂行するように構成される。UI214及び216と、ビデオパイプ220とは、処理されてフェッチされた画像フレーム情報及びビデオ画像情報を混合ユニット218へ各々与えて、出力フレームを発生し、それら出力フレームは、バッファ222に記憶され、そこからディスプレイコントローラ224へ送られて、ディスプレイ装置(図示せず)、例えば、LCDに表示される。
1組の実施形態において、UI214及び216は、バッファ208及び210に記憶されるフレーム当たり少なくとも1つのアクティブな領域を定義するようにプログラムできる1つ以上のレジスタを含む。アクティブな領域とは、表示されるべきピクセルを含む画像フレーム内の領域を表わし、一方、フレームのアクティブな領域外のピクセルは、表示されない。フレームバッファ208及び210からピクセルをフェッチするのに必要なアクセスの数を減少するために、メモリ202(特に、フレームバッファ208及び210)からフレームをフェッチするときに、UI214及び216は、そのUI214及び216内のレジスタのコンテンツにより定義される、フレームのアクティブな領域内の所与のフレームのピクセルのみをフェッチする。フレームのアクティブな領域外のピクセルは、混合値0に対応するアルファ値を有すると考えられる。換言すれば、フレームのアクティブな領域外のピクセルは、透明であるか又は不透明度0として自動的に処理され、従って、得られるディスプレイフレームに影響を及ぼさない。従って、処理されてフェッチされたピクセルは、他のフレームからのピクセル、及び/又はビデオパイプ220から混合ユニット218へ送られる処理された1つ以上のビデオフレームからのピクセルと混合される。
図3は、ディスプレイパイプ212の一実施形態300の詳細な論理図である。1組の実施形態において、このディスプレイパイプ300は、メモリ(又はアドレス可能な形態のメモリ、例えば、図2のメモリ202)に存在するグラフィック及びビデオデータを、LCD及びアナログ/デジタルTVの両ディスプレイをサポートする1つ以上のディスプレイコントローラへ配送するように機能する。1つのカラースペース、例えば、YCbCrカラースペースに表されたビデオデータは、混合ユニット310に使用するためにディザされ、スケーリングされ、別のカラースペース(例えば、RGBカラースペース)へと変換され、そしてこれも第2の(即ち、RBG)カラースペースに表される指定数(例えば、2つ)までのグラフィック(ユーザインターフェイス)平面と混合される。ディスプレイパイプ300は、それ自身のクロックドメインで動作し、そして異なるサイズ及びタイミング要件の表示をサポートするためディスプレイコントローラへの非同期インターフェイスを与える。ディスプレイパイプ300は、1つ以上(このケースでは2つ)のユーザインターフェイス(UI)ブロック304及び322(図2のUI214及び216に対応する)、混合ユニット310(図2の混合ユニット218に対応する)、ビデオパイプ328(図2のビデオパイプ220に対応する)、パラメータFIFO352、マスター及びスレーブホストインターフェイス各々302及び303より成る。図3の実施形態に示すブロックは、モジュール式であり、ある程度の再設計で、例えば、ユーザインターフェイス及びビデオパイプを追加したり除去したり、或いはホストマスター又はスレーブインターフェイス302及び303を変更したりすることができる。
上述したように、ディスプレイパイプ300は、メモリからデータをフェッチし、そのデータを処理し、次いで、それを、非同期FIFO320を通して外部のディスプレイコントローラへ提示するように設計される。ディスプレイコントローラは、各垂直帰線消去インターバルの始めにアクチベートされる垂直帰線消去インターバル(VBI)信号を通して表示のタイミングをコントロールする。この信号は、ディスプレイパイプ300が、フレーム(特に、フレーム内のピクセル)の処理を初期化(再スタート)及び開始(出発)するようにさせる。初期化と開始との間にそのフレームに独特の構成パラメータが変更される。変更されないパラメータは、手前のフレームからの値を保持する。ピクセルが処理されて出力FIFO320へ入れられるにつれて、ディスプレイコントローラは、ディスプレイコントローラのクロック周波数(図3にvclkと示す)でピクセルを除去するために信号(ポップ(pop)信号と称される)を発生する。
図3に示す実施形態では、各UIユニットは、とりわけ、アクティブ領域情報、ベースアドレス情報、及び/又はフレームサイズ情報を含む画像フレーム情報を保持するために1つ以上のレジスタ319a−319n及び321a−321nを各々含む。又、各UIユニットは、各々、各フェッチユニット306及び324も備え、これらのユニットは、フレーム情報、特に、メモリからの所与のフレームに含まれたピクセルを、ホストマスターインターフェイス302を通してフェッチするように動作する。上述したように、ピクセル値は、混合ユニットの動作カラースペースとして指定されたカラースペース、このケースではRGBカラースペースに表わされるが、これは、別の実施形態では、任意の指定のカラースペースでもよい。1組の実施形態において、フェッチユニット306及び324は、レジスタ319a−319n及び321a−321nのコンテンツにより定義される、所与のフレームのアクティブな領域内の所与のフレームのピクセルのみをフェッチする。フェッチされたピクセルは、各FIFOバッファ308及び326へ供給され、そこから、UIユニットは、フェッチされたピクセルを各々の垂直及び水平スケーリングユニット(各々307及び327、並びに各々309及び329)へ送り、そこから、スケーリングされたピクセルは、混合ユニット310、特に、混合ユニット310内のレイヤ選択ユニット312へ送られる。混合ユニット310は、次いで、UI304及び322から得たフェッチされたピクセルを、他のフレームからのピクセル及び/又はビデオパイプ328から得たビデオピクセルと混合する。ピクセルは、混合段314、316及び318において混合されて、1つ以上の出力フレームを形成し、これらの出力フレームは、FIFO320へ通され、このFIFO320に結合するディスプレイコントローラインターフェイスにより検索されて、選択されたディスプレイ、例えば、LCDに表示される。1組の実施形態において、出力フレームは、ビデオ情報のオリジナルカラースペース、例えば、YCbCrカラースペースへ変換されて戻されて、選択されたディスプレイに表示される。
混合ユニット310の全体的な動作について以下に述べる。混合ユニット310は、図3に示すように、ディスプレイパイプ300の後端に位置する。これは、UI304及び322から並びにビデオパイプ328からのピクセルのフレームを、レイヤ選択ユニット312を通して受け取り、そしてそれらをレイヤごとに混合する。1組の実施形態において、混合ユニット310により受け取られたピクセルは、混合ユニット310が動作する第1のカラースペース(例えば、RGB)に表される。UI304及びUI322によりホストインターフェイス302を通してフェッチされたフレームは、既に第1のカラースペースに表されている。しかしながら、ビデオパイプ328内のフェッチユニット330によりフェッチされたビデオ画像フレーム情報は、第2のカラースペース(例えば、YCbCr)に表される。従って、ビデオパイプ328によりフェッチされたビデオ画像フレームピクセルは、先ず、カラースペースコンバータ340を経て第1のカラースペース(混合ユニット310が動作する)へと変換され、その変換されたビデオ画像フレームピクセル(今やこれも第1のカラースペースに表されている)は、次いで、混合のために混合ユニット310へ送られる。最終的に得られるピクセルは、カラースペースコンバータユニット341を通して第2のカラースペース(例えば、YCbCr)へ変換され、ビデオパイプのクロックレートclkで出力FIFO320にキューアップされ、そしてディスプレイコントローラのクロックレートvclkでディスプレイコントローラによりフェッチされる。FIFO320は、混合ユニット310内に示されているが、別の実施形態では、FIFO320が混合ユニット310の外部、おそらく、ディスプレイコントローラユニット内に位置されてもよいことに注意されたい。更に、コンバータユニット341によるカラースペース変換は、得られたピクセルをFIFO320に与える前に行うように示されているが、別の実施形態では、カラー変換は、FIFO320からフェッチされたデータに対して行ってもよい。
混合ユニット310へのソース(UI304及び326、及び/又はビデオパイプ328)は、指定のデフォールトピクセル位置(例えば、0、0)でスタートするピクセルにおいて、全フレームに対するピクセルデータ及びピクセル毎アルファ値を、巾、表示巾、及び高さ、表示高さと共に与える。混合ユニット310は、一度に単一のレイヤにおいて機能的に動作し、即ち一度に2枚のレイヤを混合し、その一方のレイヤは、予め混合された又は以前に混合されたレイヤを表わす。最も下のレイヤは、背景カラー(混合段314へ送られるBG)として定義される)。レイヤ1は、レイヤ0と混合される(混合段316において)。次のレイヤであるレイヤ2は、混合段316からの出力と混合され(混合段318において)、等々、全てのレイヤが混合されるまで行われる。簡単化のために、3つの混合段314−318しか示されていないが、ディスプレイパイプ300は、処理されるレイヤの希望の枚数に基づいて混合段をより多く含んでもよいし、より少なくてもよい。各レイヤ(レイヤ1でスタート)は、そのソースがどこから来るか指定し、ソースをレイヤにおいてプログラムで選択できるよう保証する。上述したように、又、図示されたように、混合ユニット310は、(混合段314−318を使用して)3枚のレイヤにおいて選択されるべき3つのソース(UI304、UI322、及びビデオパイプ328)を有する。混合ユニット310の出力においてCRC(繰り返し冗長チェック)も遂行される。又、混合ユニット310は、CRCのみのモードに入れられ、ここでは、出力ピクセルがディスプレイコントローラへ送られることなく出力ピクセルに対してCRCのみが遂行される。
上述したように、各ソース(UI304、322、及びビデオパイプ328)は、ピクセル毎アルファ値を与える。アルファ値は、ピクセル毎混合を遂行するのに使用され、スタティックなフレーム毎アルファ値(例えば、飽和アルファ)で無効化され、又はスタティックなフレーム毎アルファ値(例えば、ディゾルブアルファ)と合成される。又、ピクセル毎アルファ値にカラー成分を予め乗算するオプションもある。1組の実施形態において、アルファ値は、0≦V≦1.0の範囲の値Vを表わす8ビットインデックスとして表され、ここで、V=アルファ/255である。換言すれば、アルファ値は、実際には、除算によって最終的に正規化される8ビット値を通して0から1の範囲の値を表わす。より一般的には、アルファ値は、V(上述した)に対応するNビットインデックスとして表され、Nビットインデックスは、最終的に、2N−1で除算されることで正規化されて、値V=アルファ/2N−1を生じる。ソースの有効領域外のピクセル位置は、混合には使用されない。その下のレイヤは、そのピクセル位置がアルファ値0を有するかのように示される。所与のピクセルに対するアルファ値0は、所与のピクセルが見えず且つ表示されないことを指示する。
図4は、一実施形態により、考えられる異なる混合モードに対応する、考えられる異なる混合方程式を示すテーブル400である。「通常」モードでは、ピクセル毎アルファ値がディゾルブアルファ値と合成される。「予めの乗算」モードでは、ピクセル毎予め乗算アルファ値がディゾルブアルファ値と合成される。「飽和」モードでは、ピクセル毎アルファ値がスタティックなフレーム毎アルファ値又は飽和アルファ値により無効化される。テーブル400に示すように、‘C[k、i]’は、ピクセル位置[i]におけるレイヤ[k]からのカラー成分を表わし、‘A[k、i]’は、ピクセル位置[i]におけるレイヤ[k]からのアルファ成分(即ち、ピクセル毎アルファ値)を表わし、‘ASat[k]’は、レイヤ[k]に対するスタティックな飽和アルファ値(即ち、無効化スタティックフレーム毎アルファ値)を表わし、そして‘ADis[k]’は、レイヤ[k]に対するスタティックなディゾルブアルファ値(即ち、合成スタティックフレーム毎アルファ値)を表わす。所与のピクセルの各カラー成分には同じピクセル毎アルファ値が使用されるので、現在レイヤ(k)に対する有効アルファ値(AEffCur[i])、及びその下のレイヤ(k−1)に対する有効アルファ値(AEffPrev[i])がピクセル毎に計算され、そして所与のピクセルに対する各カラー成分と混合される。それらの有効アルファ値の計算が図5のテーブルに作表されている。これら有効アルファ値は、次いで、次の混合方程式により表された所与のピクセルに対する各カラー成分の混合計算に使用される。
(1) Cout[k,i]=AEFFCur[i]*C[k,i]+(1−AEffPrev[i])*Cout[k-1,i]
但し、Cout[k,i]は、ピクセル位置‘i’におけるレイヤ‘k’の出力値であり、C[k,i]は、ピクセル位置‘i’におけるレイヤ‘k’の入力値であり、Cout[k-1,i]は、ピクセル位置‘i’における手前のレイヤ‘k−1’の出力値である。予めの計算モードでは、現在ピクセル毎アルファ値が手前のピクセル毎アルファ値とは異なり、結果のオーバーフローを招き、結果における全ての値が値‘1’にクランプされる。
上述したように、ディスプレイパイプ300における混合ユニット310は、混合段314−318によって例示された複数混合段(又は混合段)を含み、これは、複数の画像レイヤを単一の画像レイヤへと混合する。テーブル400及び500に定義された混合方程式(1)によれば、各混合段の出力は、所与のレイヤに対応する所与のカラースペースの各カラー成分に対して完全に混合されたカラー値となる。それらのカラー値は、次いで、後続の混合段において、次のレイヤに対応するカラー値及びアルファ値と混合される。図3に示す実施形態では、少なくとも4つのレイヤ、即ち背景レイヤ(混合ユニット310内のBG)、第1の画像レイヤ(UI304から)、第2の画像レイヤ(UI322から)、及びビデオフレーム画像レイヤ(ビデオパイプ328から)が混合される。カラー値(所与のピクセルに対する各カラー平面/成分における個別の各値、例えば、‘R’カラー平面値、‘G’カラー平面値、及び‘B’カラー平面値)及びアルファ値は、全て、‘0’から‘1’の範囲内にあり、処理中の対応マルチビット値、例えば、各カラー平面成分に対する10ビット値、及びアルファに対する8ビット値として表現される。アルファ値及びカラー値に使用されるビットの数は、各々、種々の処理上の事柄に基づいて変化する。例えば、以下に詳細に述べるように、ある状況の下では、所与の第1のカラースペースにおけるカラービットの数は、第2のカラースペースから第1のカラースペースへ変換するときに、所与の第1のカラースペースにおいて変化しない付加的な値を含むように拡張され、それにより、所与の第1のカラースペースにおけるカラー値を表わすのに使用されるビットの数を増加させる(例えば、YCbCrカラースペースからRGBカラースペースへ変換するとき)。
マルチビットデータ値を使用して混合動作を遂行するとき、混合動作が2つのNビット数の乗算を伴う場合には、その動作で2Nビット数を生じる。最初に指定されたビット数(即ち、Nビット)に戻るために、この数は、典型的に、結果を‘2N−1’に等しい数で除算することにより正規化される。混合式(1)は、マルチステップ混合プロセスとして実施され、それに基づいて、各混合段(314−318)は、上述したように、複数の混合レベルを含む。これは、各乗算(アルファ値での)がそれに対応する結果の正規化も予想することを意味する。テーブル400及び500に基づいて混合式(1)を実施する単純なやり方では、有効アルファ値のための1つの計算と、その有効アルファ値を、手前のレイヤのカラー値及びカラー成分毎の現在レイヤのカラー値と混合するために各々遂行される指定数の付加的な計算とが生じる。従って、例えば、RGBカラースペースで動作するときには、3つの付加的な計算、即ち‘R’カラー成分に対する計算、‘G’カラー成分に対する計算、及び‘B’カラー成分に対する計算がある。これらの計算は、各々の混合段について次の式で表される(説明上、通常モード、8ビットアルファ値、及び10ビットカラー値について示す;他のモードも同様にテーブル400及び500に基づき、そして指定のアルファ値及びカラー値に対して使用される適当なビット数に基づき導出される)。
(2) AE[7:0]=(AD[7:0]*AP[7:0])/'d255
但し、AEは、有効アルファ値であり(テーブル500に示すように、通常モードでは、現在レイヤ及び手前のレイヤに対して同じ値を有する)、ADは、ディゾルブ値であり(合成されたフレーム毎のスタティックアルファ値)、そしてAPは、ピクセル毎のアルファ値である。
(3) CO[9:0]=((CCL[9:0]*AE[7:0])/'d255)+((CPL[9:0]*(‘d255−AE[7:0])/'d255)
但し、COは、混合段出力に生じる所与のカラー成分に対する所与のピクセルのカラー値であり、CCLは、現在レイヤの所与のカラー成分に対する所与のピクセルのカラー値であり、そしてCPLは、手前のレイヤの所与のカラー成分に対する所与のピクセルのカラー値である。上述したように、手前のレイヤは、手前の混合段からの結果を表わし、そして現在レイヤは、手前の混合段の結果と混合されるべきレイヤである。
前記式で観察されるように、正規化は、アルファ成分による乗算を含む項毎に1つの、3つの個別のインスタンスにおいて遂行される。しかしながら、正規化除算は、その除算演算が固定小数点に限定され、端数部分が落されることになるので、エラーを招くことがある。これらの落された端数部分は、それら全てのレベルの上に加えられ(即ち、各項について遂行されたとき)、各混合段を通して益々大きな不正確さが伝わっていく。しかしながら、累積されたアルファ乗算について正規化が必要となる場合に、望ましい結果が混合動作の終わりの実際のカラー値だけであるときには、カラー値の正規化が不要である。換言すれば、式(1)は、正規化を遅らせるように実施され、実際上は、実際の除算数を減少し、落される端数部分の合計数を減少させる。従って、アルファ値乗算の正規化は、各混合レベルで遂行されず、混合プロセスが完了するまで結果を端数形態で前方に送る。結果を端数形態で送るときのビット数の増加が指数関数的であるために、どの程度の中間結果を端数形態で送るかは、実際の設計及び実施上の事柄により決定される。1組の実施形態において、混合段314−318は、各々、混合段の出力において単一の除算を遂行し、各混合レベルで除算が遂行された場合に各所与の混合段内の各混合レベルで受けるエラーの複合化を防止する。
従って、混合動作に関して、混合段内の種々のレベルで除算動作を遂行するのではなくて、式(2)及び(3)の分母が維持され(正規化実行されず)、そして分母は、所与の混合段の終わり即ち少なくともその出力で除算動作を遂行するように合成される。例えば、式(1)のより正確な実施では、式(2)及び(3)が、(それら式(2)及び(3)に使用された同じパラメータを使用して)所与のカラースペース内の各カラー成分に適用される次の式へ合成される。
(4) CO[9:0]=(CCL[9:0]*AD[7:0]*AP[7:0]+CPL[9:0]*(‘d65025-AD*AP))/’d65025
ここで、’d65025は、d’255の2乗であることに注意されたい。式(4)において明らかなように、有効なアルファ値を計算して正規化するのではなくて、混合動作が平坦化され、且つ式(2)及び(3)ごとに行われる3つの除算ではなくて、単一の除算のみが遂行される。数学的に式(2)及び(3)の合成は、式(4)と同一であるが、各除算が最下位ビットの1/2までのエラーを導入し得るので、式(4)は、式(1)の非常に正確な実施を表わす。
図6aは、2つの画像レイヤのフレームピクセルを混合するための混合段(例えば、混合段314−318のいずれか)の1つの考えられる実施形態の回路図である。図6の回路図は、式(4)に基づいて実施される通常混合モードの回路図である。図6aの回路図は、テーブル400に示された式に基づいて他の混合モード(例えば、予め乗算モード、飽和モード、及びディスエイブルモード)を含むように変更できることに注意されたい。これは、種々の異なる仕方で達成できる。例えば、イネーブル信号を使用して、混合された出力カラー612を出力するか(通常モード、予め乗算モード及び飽和モード)、又は手前のレイヤのカラー608を出力する(ディスエイブルモード)。説明上、図6bは、以下で詳細に述べるように、図6aに示す混合段に合体される1つの考えられる選択ブロックの回路図である。図6aにおいて明らかなように、ピクセル毎のアルファ値602は、フレーム毎のアルファディゾルブ値で乗算され(614において)、2Nビット巾の結果が現在レイヤのカラー値で乗算され(618において)、そして正規化された値‘1’の2Nビット巾表現である(2N−1)2の値から減算され(616において)、次いで、手前のレイヤのカラー値で乗算される(620において)。1つの意味において、乗算エレメント618への入力632は、現在レイヤ(k)の有効アルファ値と考えられ、そして乗算エレメント320への加算エレメント616の出力は、手前のレイヤ(k−1)の有効アルファ値と考えられる。この点について「有効アルファ値」という語の使用は、テーブル400及び500における使用とは異なることに注意されたい。理解を容易にするために、手前のレイヤのカラー608に対応する有効アルファ値は、手前のレイヤのカラー608を乗算する値(アルファ値から導出される)として指定される。乗算618及び620の結果が加算され(622において)、それにより得られた和が(2N−1)2で除算されて(624において)、正規化されたLビット巾の混合出力カラー値612を生じる。各線上のビット数で示すように、個々の乗算の結果は、正規化されずに送られ、2N+Lのビット長さをもつカラー値を加算エレメント622の出力に生じる。
上述したように、図6bは、図6aに示す混合段に合体される1つの考えられる選択ブロックの回路図である。より詳細には、アルファピクセル602の出力から乗算エレメント614への経路630は、選択エレメント646の出力に置き換えられ、そして乗算エレメント614から乗算エレメント618への経路632は、選択エレメント648の出力に置き換えられる。混合モード信号(全部で4つの異なる混合モードを表現するのに2ビットで充分であるので、2ビット信号)を使用して、選択エレメント646への異なる入力間を選択することができる。図示された例では、(10進)値‘0’は、予め乗算モードに対応し、値‘1’は、通常モードに対応し、値‘2’は、飽和モードに対応し、そして値‘3’は、ディスエイブルモードに対応する。例えば、予め乗算モードでは、アルファピクセル値602が混合モード信号によって選択エレメント646の入力として選択され、従って、このエレメントは、アルファピクセル値602を乗算エレメント614へ出力する。又、混合モード信号は、アルファディゾルブ値604を選択エレメント648の入力として選択し、従って、このエレメントは、アルファディゾルブ値604を乗算エレメント618へ出力する。他の全ての混合モードに対して、混合モード信号は、乗算エレメント614の出力を選択エレメント648の入力として選択し、乗算エレメント618へ出力する。通常のモードでは、アルファピクセル値602が乗算エレメント614に与えられ(丁度図6aと同様に)、飽和モードでは、アルファ飽和値642が乗算エレメント614に与えられ、そして最終的に、ディスエイブルモードでは、ゼロアルファ値644が乗算エレメント614に与えられる。上述したように、図6bは、図6aに例示された単一混合段の具現化を使用するときにサポートされる複数の混合モードの1つの考えられる実施形態を単に表わすものである。
理論的に、M枚のレイヤが合成され(図3に示す実施形態では、M=4)、そして(Nビットインデックスとして表された)アルファ値による乗算に対して正規化が遂行される場合には、除算は、最後の混合段(例えば、図3に示す実施形態では、混合段318)の出力において、(2N−1)Pによる除算の形態で遂行され、但し、P=2[M-1]である。例えば、2つの混合段(即ち、3枚のレイヤ)を通して結果を搬送するときには、Pが22(即ち、4)に等しく、そして分母が(2N−1)4に等しくなる。8ビットアルファ値では、この分母の値が2554、即ち4,228,250,625となる。明らかなように、分母のビットサイズは、指数関数的に増加し、ある設計内の複数の混合段を通して結果を搬送するに充分なものであってもなくてもよい。しかしながら、各混合段について図6aの回路図に基づき式(1)を実施することにより、除算で導入されるエラーの著しい減少が達成される。そのような実施形態では、除算は、除算エレメント624により各段の端において遂行され、各混合段の出力がLビット巾の出力を次の混合段への手前のレイヤのカラー値(608)として与えることになり、やがて、最終混合段が最終的なカラー出力を発生する。
最終混合段を通して結果を搬送するときに、各後続混合段の入力は、非正規化カラー値である。例えば、混合段314の端において正規化が遂行されない場合に、混合段314は、(2N+L)のビット長さのカラー値を混合段316へ出力し、ここで、‘L’は、カラー値の指定の予想ビットサイズである。図6aを参照すれば、この値は、加算エレメント622の出力により表わされる。従って、混合段316では、対応する乗算エレメント620への手前のレイヤのカラー入力(図6aの入力608に対応する)が、図6aに示すLビットではなくて、(2N+L)ビット数を与える。全体では、各混合段を通して混合結果を分数形態で搬送するとき、各後続混合段の各手前のレイヤのカラー入力は、手前の混合段により発生される出力と同じビット数を有する。最終混合段まで(例えば、図3の混合段318まで)複数の混合段を通して所与の混合段の出力において正規化が行われないと、(正規化される出力を有する最終的混合段を除く)各所与の混合段の非正規化出力は、合計‘M’枚のレイヤを通常モードにおいてNビット巾のアルファ値及びLビット巾のカラー値と混合したときに、次の式により表される。
(5) 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])
但し、X=2N+(M−1)+Lである。次いで、最終混合段の端において正規化が遂行され、これは、合計‘M’枚のレイヤを混合するとき次の式により表される最終カラー出力を発生し、各混合段は、2枚のレイヤに各々対応する2組のピクセルデータを混合し、それら2組のピクセルの1つは、手前の混合段の出力から受け取られる。
(6) 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
但し、上述したように、P=2[M-1]である。
1組の実施形態において、アクティブな領域と称される有効なソース領域は、有効なピクセルデータを含むフレーム内のエリアとして定義される。アクティブな領域に対するピクセルデータは、UI304及び322によりメモリからフェッチされ、そしてFIFO308及び326内に各々記憶される。アクティブな領域は、全フレームの左上角(0、0)からの開始及び終了(X、Y)オフセットにより指定される。開始オフセットは、アクティブな領域の左上角を定義し、そして終了オフセットは、アクティブな領域の右下角の後のピクセル位置を定義する。座標が開始オフセット以上で且つ終了オフセット未満の位置のピクセルは、有効領域内にあると考えられる。いかなる数のアクティブな領域が指定されてもよい。例えば、1組の実施形態において、各フレーム内に4つまでのアクティブな領域が画成され、領域イネーブルビットにより指定される。開始及び終了オフセットは、ピクセル位置に整列される。アクティブな領域を含む全フレームが混合ユニット310へ送信される。フレーム内にあるが、アクティブな領域にはないピクセルは、表示されず、それ故、アクティブな領域外のピクセルが0のアルファ値を有するかのように、混合動作には関与しない。別の実施形態では、混合ユニット310は、全フレームを受け取るのではなく、フレームのアクティブな領域のみのピクセルデータを受け取り、そしてピクセルを受け取っていないフレーム内のエリアを、ゼロの混合値(アルファ値)を有するピクセルを受け取ったかのように自動的に処理するように設計される。
1組の実施形態において、フレームのアクティブな領域は、別の画像又はビデオストリームの上に現れるグラフィックオーバーレイを表わす。例えば、アクティブな領域は、ビデオストリームの上に重畳されるスタティックな画像を表わす。ある実施形態では、アクティブな領域は、より一般的には、その下の背景レイヤに提示される情報の上に望ましい情報を重畳するのに使用されるオーバーレイウインドウを表わす。例えば、ディスプレイパイプ212は、ビデオパイプ220(又は図3に示す328)と同様の2つ以上のビデオパイプを含み、そしてアクティブな領域にビデオ情報をオーバーレイする。同様に、ビデオストリームではなく、スタティックな画像が、アクティブな領域の下に表示されてもよく、等々である。図3を再び参照すれば、ビデオパイプ328は、ビデオストリームを混合ユニット310に与え、一方、UI304及び322は、アクティブ領域のピクセルがビデオストリーム上に表示されるべきスタティック画像オーバーレイを表わす画像フレームを与える。このケースでは、FIFO320からディスプレイコントローラへ送られる出力フレームは、ビデオパイプ328からのビデオピクセル情報を含み、そのビデオピクセル情報の上に重畳されたFIFO308(垂直スケーリングブロック307及び水平スケーリングブロック309により最初にスケーリングされる)及び/又はFIFO326(垂直スケーリングブロック327及び水平スケーリングブロック329により最初にスケーリングされる)からのフェッチされたピクセルが、混合ユニット310を参照して上述したように、そのフェッチされたピクセルのアルファ値及び他の関連特性に基づいて混合ユニット310によって一緒に混合される。この場合も、異なる実施形態は、同様に混合及び表示されるビデオ及びスタティック画像情報の種々の組み合わせを含み、ディスプレイパイプの機能は、付加的なビデオパイプ及び/又はユーザインターフェイスと共に必要に応じて適宜に拡張される。混合ユニット310も、同様に、混合される必要のある付加的なピクセルを収容するように拡張される。
1組の実施形態において、フェッチユニット330を使用して、ビデオパイプ328は、メモリからホストマスターインターフェイス302を経てビデオフレームデータ/情報をフェッチする。ビデオフレームデータ/情報は、所与のカラースペース、例えば、YCbCrカラースペースにおいて表わされる。ビデオパイプ328は、ランダムノイズ(ディザ)をサンプルへ挿入し(ディザユニット332)、そのデータを、バッファした後に(バッファ334)、垂直及び水平の両方向にスケーリングする(スケーラー336及び338)。ある実施形態では、混合ユニット310は、元のカラースペース(上述したように、YCbCrカラースペース)以外のカラースペースに表現されるべきビデオ(ピクセル)データを予想する。換言すれば、混合ユニット310は、第2のカラースペース、例えば、RGBカラースペースで動作する。それ故、ビデオフレームデータは、カラースペースコンバータユニット340により、第1のカラースペース、このケースでは、YCbCrカラースペースから、第2のカラースペース、このケースでは、RGBカラースペースへ変換される。カラースペースコンバータユニット340は、ビデオパイプ328内に位置されて示されているが、混合ユニット310へ送る準備ができたデータが、混合ユニット310により処理され及び/又は動作される前に、第1のカラースペースから第2のカラースペースへ変換される限り、ビデオパイプ328により送られる出力と、混合ユニットへ送られる入力との間のどこに位置されてもよいことに注意されたい。
変換されたデータ(即ち、第2のカラースペース、このケースでは、RGBカラースペースに表されるデータ)は、次いで、バッファされ(FIFO342)、その後、上述したように、第2のカラースペースに表された他の平面と混合されるべく混合ユニット310へ送られる。第1のカラースペースに表されたデータを、第2のカラースペースに表されたデータへ変換するプロセス中に、第1の(即ち、YCbCr)カラースペースに表されたカラーを第2の(即ち、RGB)カラースペースに表せないことがある。例えば、変換は、1より大きいか又は0より小さいR、G又はB成分値を生じる。それ故、あるディスプレイ装置にビデオを表示すると、望ましいもの及び/又は予想されるものとは異なる視覚結果を生じる。それ故、少なくとも1組の実施形態において、混合ユニット310は、変換されたピクセル値が第2のカラースペースに有効ピクセル値を表わさないときでも、変換されたピクセル値を使用して混合動作を遂行するように設計される。例えば、第2のカラースペース(又は混合ユニット310の動作カラースペース)がRGBカラースペースである場合には、混合ユニット310は、+4の高さの及び−4の低さのRGB値を許す。もちろん、これらの値は、異なってもよく、元のカラースペースがどんなものであるかにも依存する。これらの値は、第2の(即ち、RGB)カラースペースに有効なピクセル値を表わすものではないが、第1の(即ち、YCbCr)カラースペースにおける正しい値へ変換して戻すことができる。従って、元の(YCbCr)カラースペースからのカラー情報は、ビデオパイプ328を通して維持され、ビデオフレームを表示する全てのディスプレイ装置に適切に表示される。それ故、混合ユニット310に使用されるカラー値のビット長さ(図6aに‘L’で示され、対応的に上述された)は、混合ユニット310が動作する所与のカラースペースについて予想されるものとは異なってもよい。しかしながら、ここに述べる種々の実施形態は、指定のビットサイズ、又は換言すれば、指定ビット数の巾を有するアルファ値及びカラー値で動作する。
従って、最終混合段318により出力された混合されたピクセルを表示する前に、混合されたピクセルは、カラースペースコンバータユニット341を通して第2のカラースペース(即ち、このケースではRGB)から元のビデオカラースペース(即ち、このケースではYCbCrカラースペース)へ変換される。ビデオパイプ328のケースと同様に、カラースペースコンバータユニット341は、混合ユニット310内で、混合段318とFIFO320との間に位置されて示されているが、別の実施形態では、カラースペース変換がディスプレイコントローラ側においてディスプレイに与えられる前に遂行され、更に、図3に示す実施形態によって種々の他の実施形態が限定されるものではない。
アクティブな領域(上述した)と称される有効ソース領域と同様に、少なくとも1つの有効ビデオウインドウ又はビデオ行先フレーム(略して、行先フレーム)も定義される。アクティブな領域又は行先フレーム(及びそれらの各コンテンツ)は、指定の進行方向にディスプレイフレームを横切って並進又は移動される。図7は、行先フレームをどのように移動するか示す。アクティブな領域は、以下に詳細に述べるように同様に移動される。図7において、行先フレーム701は、出発位置に701aとして表され、そして次の位置に701bとして表されている。ここに示す例では、行先フレーム701は、右下へ移動される。ビデオパイプ328は、DstHeightとして指定される指定の高さ及びDstWidthとして指定される指定の巾を有するビデオウインドウ(行先フレーム)を発生する。ビデオパイプ328により発生される有効ピクセルの数は、DstHeightとDstWidthとの積である。行先フレームは、UI304及びUI322から得た画像情報と混合されるべく混合ユニット310へ送られる。行先フレームは、ディスプレイフレーム726内のX、Yオフセット(711)に配置される。ビデオパイプ328は、完全なピクセルフレームを混合ユニット310へ送るが、行先フレームにないピクセルは、有効領域にないと考えられ、混合ユニット310において混合されない。行先フレームのエッジにない全てのピクセルは、同じスタティックアルファ値、例えば、1.0のスタティックアルファ値を有し、これは、行先フレームのエッジ内の全てのビデオフレームが完全に不透明であることを指示する。図7において、行先フレーム701のエッジは、エッジ702a−702dとして指示される。
ディスプレイスクリーン726を横切って行先フレーム701をスムースに並進させるために、行先フレームのエッジ702a−702dに沿ったピクセルは、プログラム可能なエッジごとのアルファ値を有する。角のピクセル(即ち、エッジ702a及び702bにより形成された角、エッジ702b及び702cにより形成された角、エッジ702c及び702dにより形成された角、並びにエッジ70da及び702aにより形成された角)は、一緒に乗算される角を形成するエッジの各エッジアルファ値に等しいエッジアルファ値に関連している。例えば、エッジ702a及び702bにより形成された角ピクセルに関連したエッジアルファ値は、エッジ702aに関連したエッジアルファ値及びエッジ702bに関連したエッジアルファ値を一緒に乗算することにより得られる。本質的に、エッジアルファ値は、ピクセル境界にない行先フレームの移動をシミュレーションするための手段をなす。換言すれば、部分ピクセル移動と思われるものでスクリーンを横切って行先フレームを並進することを許す。行先フレームをアニメ化し、スクリーンを横切ってそれをゆっくり移動するときに、全ピクセルインクリメントにおいて一度に1つのピクセルでしか歩進することができず、その結果、ピクチャー/移動は希望通りスムースに見えない。従って、全行先フレームのアルファ値とは異なるアルファ値が混合中にエッジ702a−702dに適用される。ある意味で、エッジは、部分的に透明に作られて、行先フレームの画像を、それがソースピクセル位置から「部分的に出て」行先ピクセル位置へ「部分的に入る」かのように見えるようにする。
例えば、図7において明らかなように、位置701bにおける行先フレーム701は、元のオフセット位置711から右へ1ピクセル及び下へ1ピクセルであるように示されている。しかしながら、並進率によれば、行先位置701bは、元のオフセット位置711から右へ1ピクセル未満であり且つ下へ1ピクセル未満であるように設計されている。例えば、行先フレームの公称行先位置は、元のオフセット位置711から右へ1.25ピクセル及び下へ1.25ピクセルとなっている。しかしながら、行先フレームは、実際にはピクセル境界で休止しているだけであるから、行先フレーム(位置)701bは、図7に示すように、1ピクセル右へ且つ1ピクセル下へ移動される。水平方向を考慮すれば、進行方向に(即ち、右手側へ)、エッジ702bのエッジアルファ値は、エッジ702bがそれに対応する実際の行先ピクセルエリアへ「25%入っている」ことを表わす0.25であるように指定され、そしてエッジ702dのエッジアルファ値は、エッジ702dがそれに対応する実際の行先ピクセルエリアから「25%出ている」ことを表わす1−0.25=0.75であるように指定される。それ故、ある意味では、エッジ702a−702dを部分的に透明にすることは、1ピクセル以下の移動率を模擬する。移動方向に垂直の反対エッジ(例えば、頂部/底部−702a及び702b、左/右−702d及び702b)は、1のアルファ値を総計するようにプログラムされ、角は、隣接エッジの複数の各アルファ値でプログラムされる。透明性を使用して、エッジの画像ピクセルが各ピクセルエリア全体(ピクセル方形)を占有しないかのように見えるようにする。
1組の実施形態において、行先フレームの4つのエッジの各々に対応する各エッジアルファ値を含むエッジアルファ値がビデオパイプ328内の1つ以上のレジスタ323a−323nへプログラムされる。コントロールユニット380は、カラースペースコンバータ340から処理されたビデオピクセルを受け取り、そしてレジスタ323a−323nからエッジアルファ値を受け取る。コントロール回路380は、処理されたビデオピクセルのどれが行先フレームのエッジに沿ったビデオ情報を表わすか決定し、そして各エッジアルファ値を、所与のエッジアルファ値に対応する所与のエッジに沿ったビデオ情報を表わす全ての対応ピクセルに関連付ける。次いで、コントロールユニット380は、処理されたビデオピクセル及びエッジアルファ値を、FIFO342を経て混合ユニット310へ送って、UI304及びUI322を経て受け取った画像情報と混合させる。
1組の実施形態において、パラメータFIFO352を使用して、レジスタ319a−319n、321a−321n、317a−317n及び323a−323nに対するプログラミング情報を記憶する。パラメータFIFO352にはコントロールロジック344によりこのプログラミング情報が充填され、このコントロールロジックは、メモリからホストマスターインターフェイス302を経てプログラミング情報を得る。ある実施形態では、パラメータFIFO352には、進歩型高性能バス(AHB)を通りホストスレーブインターフェイス303を経てプログラミング情報が充填される。
図8は、スクリーンを横切って画像を移動するための方法の一実施形態を示すフローチャートである。行先フレームに対応する画像ピクセルがフェッチされ、この画像ピクセルは、行先フレームのエッジに対応するエッジピクセルを含む(802)。次いで、行先フレームのエッジが検出され(804)、エッジアルファ値をエッジピクセルに適用して、行先フレームのエッジの2つ以上を部分的に透明にさせる一方、行先フレームの2つ以上のエッジの内側の行先フレームのエリアを完全に不透明に保持する(806)。従って、行先フレームは、指定の進行方向にディスプレイフレームを横切って並進され(808)、部分ピクセル移動を模擬する。行先フレームは、整数値ではない分数値である移動ピクセル数に対応する並進速度でディスプレイフレームを横切って並進される。1組の実施形態において、エッジアルファ値をエッジピクセルに適用することは(806)、並進速度から移動ピクセル数を計算すると共に、ディスプレイフレームに毎秒表示されるフレーム数を表わすフレームレートを計算することを含む(810)。移動ピクセル数を表わす分数値に基づいて第1のエッジアルファ値及び第2のエッジアルファ値が指定される(812)。第1のエッジアルファ値は、行先フレームの第1エッジのエッジピクセルに適用され、そして第2のエッジアルファ値は、行先フレームの第2エッジのエッジピクセルに適用され、ここで、第1エッジ及び第2エッジは、左エッジ及び右エッジ、又は上エッジ及び下エッジのように互いに平行である(814)。
図9は、ディスプレイフレームにビデオフレームを表示する方法の一実施形態を示すフローチャートである。ビデオ情報がビデオバッファから検索され、ビデオ情報は、ビデオフレームに表示されるべきビデオピクセルにより表わされ、そしてビデオピクセルは、ビデオフレームのエッジに沿ったビデオ情報を表わすエッジピクセルを含む(902)。エッジピクセルに関連したエッジアルファ値も、1つ以上のレジスタから検索され、ビデオピクセルが処理される(904)。処理されたビデオピクセルは、ディスプレイフレームに表示されるべき付加的な画像情報を形成する対応ピクセルと混合される(906)。混合プロセスは、エッジアルファ値を処理されたエッジピクセルと混合することにより、ビデオフレームのエッジに沿って表わされたビデオ情報を、ビデオフレームのエッジの内側に表されたビデオ情報より透明なものにすることを含む(906)。ある実施形態では、ビデオフレームのエッジの内側に表されたビデオ情報は、完全に不透明とされる。ビデオフレームは、非ゼロの水平成分及び非ゼロの垂直成分を有する指定の進行方向にディスプレイフレームを横切って並進される(908)。
ある実施形態では、混合ステップ(906)は、エッジ当たり個別のエッジアルファ値を使用する。例えば、エッジアルファ値は、ビデオフレームの異なるエッジに各々関連した第1、第2、第3及び第4のエッジアルファ値を含む。換言すれば、4つのエッジアルファ値の各エッジアルファ値は、アルファ値に関連したエッジに沿ったビデオ情報を表わす各エッジピクセルに対応する。例えば、第1のエッジアルファ値は、ビデオフレームの左エッジに沿ったビデオ情報を表わすエッジピクセルに関連し、第2のアルファ値は、ビデオフレームの右エッジに沿ったビデオ情報を表わすエッジピクセルに関連し、等々である。混合中に、各エッジアルファ値は、それに対応するエッジピクセルと混合される。ビデオフレームの左エッジ及び右エッジに関連したエッジアルファ値は、指定の進行方向の水平成分の値に基づいて決定され、そしてビデオフレームの上エッジ及び下エッジに関連したエッジアルファ値は、指定の進行方向の垂直成分の値に基づいて決定される。
当業者であれば、以上の開示が完全に理解されれば、多数の変更や修正が明らかとなろう。そのような変更や修正は、全て、特許請求の範囲に包含される。
100:システム
101:集積回路(IC)
102A−102B:外部メモリ
104A−104B:メモリ物理的インターフェイス回路(PHY)
106:メモリコントローラ
108A−108E:ポート
110:グラフィックユニット
114:CPUブロック
116:プロセッサ
118:キャッシュ
120:非リアルタイム(NRT)周辺装置
122:周辺インターフェイスコントローラ
124:DMAコントローラ
126:周辺装置
128:リアルタイム(RT)周辺装置
130:ポートアービター
132:並進ユニット
134:ディスプレイパイプ
136:画像プロセッサ
202:メモリ
206:ビデオバッファ
208、210:画像フレームバッファ
212:ディスプレイパイプ
300:ディスプレイパイプ
304、322:ユーザインターフェイス(UI)ブロック
306、324:フェッチユニット
310:混合ユニット
328:ビデオパイプ
344:コントロールロジック
352:パラメータFIFO

Claims (15)

  1. エッジアルファを使用して画像を並進させるシステムにおいて、
    画像のエッジに適用されるエッジアルファ値でプログラム可能な1つ以上のレジスタであって、画像は、指定の進行方向に画像フレームを横切って並進され、そしてエッジは、指定の進行方向に垂直であり、前記エッジアルファ値は少なくとも速度に基づくものであり、当該速度は前記画像が前記画像フレームを横切って並進すべき速度であるような1つ以上のレジスタと、
    前記1つ以上のレジスタに結合されたコントロールユニットであって、
    画像のピクセル及びそれに対応するアルファ値を混合ユニットに供給し、
    画像のエッジを検出し、
    前記1つ以上のレジスタからのエッジアルファ値を、画像のエッジを形成するピクセルと共に前記混合ユニットへ供給して、画像フレームの対応ピクセルと混合させる、
    ように構成されたコントロールユニットと、
    を備えたシステム。
  2. 前記エッジアルファ値は、画像フレームを横切って画像を並進すべき速度に対応する分数ピクセル値に基づいて指定される、請求項1に記載のシステム。
  3. 前記エッジアルファ値は、それに対応する各アルファ値の分数値である、請求項1に記載のシステム。
  4. 前記画像フレームの対応ピクセルは、画像のエッジを形成するピクセルに隣接する、請求項1に記載のシステム。
  5. ソースバッファから画像を形成する画像ピクセルをフェッチするように構成されたフェッチユニットを更に備え、画像ピクセルは、画像のエッジを形成するエッジピクセルと、エッジピクセルではない画像ピクセルより成る内部ピクセルとを含み、更に、フェッチユニットは、内部ピクセルに対応するアルファ値をフェッチし、前記コントロールユニットは、更に、
    エッジピクセルを識別して画像のエッジを検出し、
    内部ピクセル及び内部ピクセルに対応するアルファ値を前記混合ユニットへ供給し、
    エッジピクセル、及び1つ以上のレジスタからのエッジアルファ値を前記混合ユニットへ供給して、画像フレームの対応ピクセルと混合する、
    ように構成された、請求項1に記載のシステム。
  6. 1つ以上のユーザインターフェイスユニットを更に備え、このユーザインターフェイスユニットは、
    1つ以上の付加的な画像を形成するピクセル、及びそのピクセルに対応する各アルファ値を1つ以上の付加的なソースバッファからフェッチし、及び
    ピクセル及び各アルファ値を混合ユニットに供給して、画像フレームのピクセル、内部ピクセル、アルファ値、エッジピクセル、及びエッジアルファ値と混合させる、
    ように構成された、請求項5に記載のシステム。
  7. 前記画像は、ビデオストリームのフレームである、請求項5に記載のシステム。
  8. 前記エッジピクセルは、画像のエッジのうちの第1エッジを形成する第1エッジピクセル、及び画像のエッジのうちの第2エッジを形成する第2エッジピクセルを含み、
    前記エッジアルファ値は、第1エッジピクセルに関連した第1のエッジアルファ値、及び第2エッジピクセルに関連した第2のエッジアルファ値を含み、
    前記第1エッジ及び第2エッジは、指定の進行方向に垂直であり、
    前記第1アルファ値と第2アルファ値の和は、100%不透明に対応するアルファ値を表わす、請求項5に記載のシステム。
  9. エッジアルファを使用して画像を並進させる方法において、
    画像の画像ピクセル及びそれに対応するアルファ値を混合ユニットへ供給する段階であって、画像は、指定の進行方向に画像フレームを横切って並進され、そして画像のエッジは、指定の進行方向に垂直であるような段階と、
    画像のエッジを検出する段階と、
    エッジアルファ値を、画像のエッジを形成するエッジピクセルと共に前記混合ユニットへ供給して、画像フレームの対応ピクセルと混合させる段階であって、前記エッジアルファ値は少なくとも速度に基づくものであり、当該速度は前記画像が前記画像フレームを横切って並進すべき速度である段階と、
    を備えた方法。
  10. 前記画像ピクセルは、行先フレームに対応し、前記エッジピクセルは、その行先フレームのエッジに対応し、前記方法は、更に、
    前記混合ユニットがエッジアルファ値をエッジピクセルに適用して、前記行先フレームのエッジの2つ以上を部分的に透明にさせる一方、前記行先フレームの2つ以上のエッジの内側の行先フレームのエリアを完全に不透明に保持する段階と、
    指定の進行方向にディスプレイフレームを横切って前記行先フレームを並進させる段階と、
    を備えた請求項9に記載の方法。
  11. エッジアルファ値をエッジピクセルに適用する前記段階は、
    前記エッジアルファ値のうちの第1のエッジアルファ値を、前記行先フレームの2つ以上のエッジのうちの第1エッジに対応する前記エッジピクセルのうちの第1エッジピクセルに適用すること、及び
    前記エッジアルファ値のうちの第2のエッジアルファ値を、前記行先フレームの2つ以上のエッジのうちの第2エッジに対応する前記エッジピクセルのうちの第2エッジピクセルに適用すること、
    を含み、前記第1及び第2エッジは、互いに平行である、請求項10に記載の方法。
  12. エッジアルファ値をエッジピクセルに適用する前記段階は、更に、
    前記エッジアルファ値のうちの第3のエッジアルファ値を、前記行先フレームの2つ以上のエッジのうちの第3エッジに対応する前記エッジピクセルのうちの第3エッジピクセルに適用すること、及び
    前記エッジアルファ値のうちの第4のエッジアルファ値を、前記行先フレームの2つ以上のエッジのうちの第4エッジに対応する前記エッジピクセルのうちの第4エッジピクセルに適用すること、
    を含み、前記第3及び第4エッジは、互いに平行で、且つ前記第1エッジ及び第2エッジに垂直である、請求項11に記載の方法。
  13. ディスプレイフレームを横切って指定の進行方向に行先フレームを並進させることは、少なくとも前記並進速度に対応する移動ピクセル数にしたがって行先フレームを並進させることを含み、そのピクセル数は、整数値ではなく分数値である、請求項11に記載の方法。
  14. 前記並進速度と、前記ディスプレイフレームに毎秒表示されるフレーム数を表わすフレームレートから、前記ピクセル数を計算することを含む、請求項13に記載の方法。
  15. エッジアルファ値をエッジピクセルに適用する前記段階は、更に、
    前記エッジアルファ値のうちの第1のエッジアルファ値を、前記行先フレームの2つ以上のエッジのうちの第1エッジに対応する前記エッジピクセルのうちの第1エッジピクセルに適用すること、及び
    前記エッジアルファ値のうちの第2のエッジアルファ値を、前記行先フレームの2つ以上のエッジのうちの第2エッジに対応する前記エッジピクセルのうちの第2エッジピクセルに適用すること、
    を含み、前記第1及び第2エッジは、互いに平行であり、そして前記第1のエッジアルファ値及び第2のエッジアルファ値は、前記分数値に基づいて指定される、請求項13に記載の方法。
JP2013554456A 2011-02-14 2012-01-18 画像並進のためのエッジのアルファ値でのレイヤ混合 Expired - Fee Related JP5697763B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/026,559 US8711170B2 (en) 2011-02-14 2011-02-14 Edge alphas for image translation
US13/026,559 2011-02-14
PCT/US2012/021745 WO2012112255A1 (en) 2011-02-14 2012-01-18 Layer blending with alpha values of edges for image translation

Publications (2)

Publication Number Publication Date
JP2014513823A JP2014513823A (ja) 2014-06-05
JP5697763B2 true JP5697763B2 (ja) 2015-04-08

Family

ID=45554889

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013554456A Expired - Fee Related JP5697763B2 (ja) 2011-02-14 2012-01-18 画像並進のためのエッジのアルファ値でのレイヤ混合

Country Status (8)

Country Link
US (1) US8711170B2 (ja)
EP (1) EP2676244B1 (ja)
JP (1) JP5697763B2 (ja)
KR (1) KR101517712B1 (ja)
AU (1) AU2012218103B2 (ja)
BR (1) BR112013020621A2 (ja)
RU (1) RU2013142095A (ja)
WO (1) WO2012112255A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9191551B2 (en) * 2012-02-24 2015-11-17 Apple Inc. Pixel normalization
US10181214B2 (en) * 2013-03-14 2019-01-15 Google Llc Smooth draping layer for rendering vector data on complex three dimensional objects
US9384589B2 (en) * 2013-04-29 2016-07-05 Microsoft Technology Licensing, Llc Anti-aliasing for geometries
WO2016010880A1 (en) * 2014-07-16 2016-01-21 Adc2 Technologies Corporation Multilevel video compression, decompression, and display for 4k and 8k applications
US9710879B2 (en) * 2014-09-08 2017-07-18 Ross Video Limited Methods and systems for computing an alpha channel value
JP6513313B2 (ja) * 2017-02-24 2019-05-15 三菱電機株式会社 画像合成表示装置及び方法、並びにプログラム及び記録媒体
KR20210012095A (ko) * 2019-07-23 2021-02-03 삼성전자주식회사 이미지 데이터의 레이어를 블렌딩하기 위한 전자 장치

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9024712D0 (en) * 1990-11-14 1991-01-02 Philips Electronic Associated Display method and apparatus
JP4461505B2 (ja) * 1999-04-16 2010-05-12 パナソニック株式会社 Osd表示装置
JP2001343967A (ja) * 2000-05-31 2001-12-14 Konami Co Ltd 表示制御方法、ゲーム機、記録媒体
JP3548521B2 (ja) 2000-12-05 2004-07-28 Necマイクロシステム株式会社 半透明画像処理装置及び方法
JP2003066944A (ja) * 2001-08-29 2003-03-05 Denso Corp 地図画像処理装置及びプログラム
JP4186561B2 (ja) * 2002-04-25 2008-11-26 ソニー株式会社 画像処理装置およびその方法
US7300192B2 (en) 2002-10-03 2007-11-27 Color Kinetics Incorporated Methods and apparatus for illuminating environments
US7274377B2 (en) * 2005-10-28 2007-09-25 Seiko Epson Corporation Viewport panning feedback system
US7826683B2 (en) 2006-10-13 2010-11-02 Adobe Systems Incorporated Directional feathering of image objects
WO2010030712A1 (en) 2008-09-09 2010-03-18 Citrix Systems, Inc. Methods and systems for per pixel alpha-blending of a parent window and a portion of a background image
JP5200788B2 (ja) * 2008-09-09 2013-06-05 富士通株式会社 映像信号処理装置、映像信号処理方法および映像信号処理プログラム

Also Published As

Publication number Publication date
AU2012218103A1 (en) 2013-08-29
EP2676244A1 (en) 2013-12-25
KR20130116364A (ko) 2013-10-23
WO2012112255A1 (en) 2012-08-23
AU2012218103B2 (en) 2015-05-21
BR112013020621A2 (pt) 2016-10-04
US8711170B2 (en) 2014-04-29
EP2676244B1 (en) 2016-12-28
RU2013142095A (ru) 2015-03-27
KR101517712B1 (ko) 2015-05-04
JP2014513823A (ja) 2014-06-05
US20120206468A1 (en) 2012-08-16

Similar Documents

Publication Publication Date Title
US8767005B2 (en) Blend equation
JP5697763B2 (ja) 画像並進のためのエッジのアルファ値でのレイヤ混合
JP6009692B2 (ja) グラフィックスプロセッシングユニットベースのメモリ転送動作を行うためのマルチモードメモリアクセス技法
US7289125B2 (en) Graphics device clustering with PCI-express
US7456835B2 (en) Register based queuing for texture requests
US8405668B2 (en) Streaming translation in display pipe
AU2012227210B2 (en) Inline image rotation
US20030169626A1 (en) System and method for controlling a number of outstanding data transactions within an integrated circuit
US9336563B2 (en) Buffer underrun handling
KR102317789B1 (ko) 하나의 이미지로부터 다양한 해상도를 갖는 이미지들을 생성할 수 있는 스케일러 회로와 이를 포함하는 장치들
US8711173B2 (en) Reproducible dither-noise injection
JP2013516664A (ja) フレームのアクティブな領域のみをフェッチするためのユーザインターフェイスユニット
US5966142A (en) Optimized FIFO memory
US8963938B2 (en) Modified quality of service (QoS) thresholds
US20080211823A1 (en) Three-dimensional graphic accelerator and method of reading texture data
US8963946B2 (en) Non-real-time dither using a programmable matrix
US8773455B2 (en) RGB-out dither interface

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150210

R150 Certificate of patent or registration of utility model

Ref document number: 5697763

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees