(57)【特許請求の範囲】
【請求項１】
フェッチユニットと、
１以上のタイルバッファと、
前記フェッチユニットに結合されたメモリと、
を備え、
前記フェッチユニットは、前記メモリに記憶されたソース画像からピクセルを読み取るために複数の読み取り動作を発生するように構成され、それら複数の読み取り動作は、前記ソース画像において遂行される回転に基づく順序で発生され、
前記フェッチユニットは第１のタイルバッファ内の場所に前記ピクセルを書き込み、前記回転された画像は回転が実行された後のソース画像であり、
回転がない場合、前記ソース画像の１つのラインからのピクセルが第１のタイルバッファにおいて対角ラインに書き込まれる、装置。
【請求項２】
回転がある場合、前記ソース画像の１つのラインからのピクセルが第１のタイルバッファの１つのラインに書き込まれ、回転された画像のピクセルの列が単一のクロックサイクルにおいて第１のタイルバッファから読み取られることができるように、前記ピクセルが第１のタイルバッファ内の場所に書き込まれる、請求項１に記載の装置。
【請求項３】
前記ソース画像は、複数のタイルを含み、各タイルバッファは、前記ソース画像の単一のタイルを記憶するように構成される、請求項２に記載の装置。
【請求項４】
各タイルの巾は、前記ソース画像の巾より狭く、そして各タイルの長さは、前記ソース画像の長さより短い、請求項３に記載の装置。
【請求項５】
さらに、垂直スケーラーユニットを含み、前記第１のタイルバッファは複数のランダムアクセスメモリ（ＲＡＭ）を含み、前記第１のタイルバッファの前記複数のＲＡＭの各ＲＡＭは、１つのピクセルのみが単一のクロックサイクルにおいて前記第１のタイルバッファの複数のＲＡＭの各ＲＡＭに書き込まれまたはＲＡＭから読み出されるようにし、前記垂直スケーラーユニットは前記第１のタイルバッファの前記複数のＲＡＭの各ＲＡＭから１つのピクセルを読み出すように構成される、請求項４に記載の装置。
【請求項６】
ターゲットピクセル位置を記憶するように構成されたテーブルを更に備え、前記ターゲットピクセル位置は、所与のタイルバッファの位置に対応し、そして前記フェッチユニットは、
対応する読み取り動作を発生するのに応答して前記ターゲットピクセル位置を前記テーブルに書き込み、
所与の読み取り動作からピクセルを受け取るのに応答して前記テーブルから前記ターゲットピクセル位置を検索し、そして
前記受け取ったピクセルを所与のタイルバッファ内の前記ターゲットピクセル位置に書き込む、
ように構成された請求項３に記載の装置。
【請求項７】
前記テーブルは、テーブルのエントリごとにトランザクション識別子（ＩＤ）を記憶するように構成され、該トランザクションＩＤは、特定の読み取り動作に対応し、そしてその特定の読み取り動作からピクセルを受け取るのに応答して、前記フェッチユニットは、テーブルの対応エントリを使用して、所与のタイルバッファ内のターゲットピクセル位置を決定するように構成された、請求項６に記載の装置。
【請求項８】
前記フェッチユニットは、所与の読み取り動作を発生すると同時に、それに対応するターゲットピクセル位置を前記テーブルに書き込むように構成された、請求項６に記載の装置。
【請求項９】
メモリ管理ユニット（ＭＭＵ）を更に備え、前記フェッチユニットは、複数の読み取り動作に対するバーチャルアドレスを発生するように構成され、そして前記ＭＭＵは、
前記バーチャルアドレスを前記メモリ内の物理的アドレスへ変換し、
前記物理的アドレスに対して読み取り動作を遂行し、そして
検索されたピクセルを前記フェッチユニットへ搬送する、
ように構成された、請求項１に記載の装置。
【請求項１０】
前記フェッチユニットは、更に、バーチャルアドレストランザクションを予めロードするためにプリフェッチ要求を発生するよう構成された、請求項９に記載の装置。
【請求項１１】
ソース画像において遂行されるべき選択された回転を指示する構成ビットを受け取り、  ソース画像に対する読み取り要求を発行し、その読み取り要求は、前記選択された回転に基づく順序で発行されるものであり、
前記読み取り要求ごとに、回転画像における対応ピクセルのターゲット位置を計算し、前記回転画像は、前記選択された回転が遂行された後のソース画像であり、
前記計算されたターゲット位置をテーブルに記憶し、
前記ソース画像からピクセルを受け取り、
前記計算されたターゲット位置を検索し、そして前記受け取ったピクセルをタイルバッファ内の前記計算されたターゲット位置に記憶する、
ように構成された回転ユニットであって、
回転がない場合、前記ソース画像の１つのラインからのピクセルがタイルバッファにおいて対角ラインに書き込まれる、回転ユニット。
【請求項１２】
前記ソース画像は、複数のタイルへ区画化され、それらのタイルは、選択された回転に基づく順序で前記ソース画像から読み取られ、前記タイルバッファは、回転画像の個々のタイルを記憶するのに使用される、回転がある場合、前記ソース画像の１つのラインからのピクセルがタイルバッファの１つのラインに書き込まれる、請求項１１に記載の回転ユニット。
【請求項１３】
グラフィックパイプラインの後続段が前記タイルバッファからピクセルをフェッチするのに応答して、前記回転ユニットは、前記ソース画像の後続タイルに対する読み取り要求を発行するように構成される、請求項１２に記載の回転ユニット。
【請求項１４】
ソース画像からピクセルをフェッチする要求を発生する段階であって、フェッチ要求を発行する順序は、指定の回転に基づくものである段階と、
ピクセルに対するターゲット位置を計算する段階であって、そのターゲット位置は、指定の回転に基づいて計算され、そしてそのターゲット位置は、前記ソース画像を回転した画像内の位置に対応するものである段階と、
前記ピクセルを受け取りそしてタイルバッファにおいて記憶する段階と、
回転がない場合、前記ソース画像の１つのラインからのピクセルを前記タイルバッファの対角ラインに書き込む段階と、
を備えた方法。
【請求項１５】
前記計算されたターゲット位置を、前記フェッチ要求の発行に応答してテーブルに記憶する段階と、
前記ピクセルを受け取るのに応答して前記テーブルにおいて前記計算されたターゲット位置をルックアップする段階と、
を更に備えた請求項１４に記載の方法。
【請求項１６】
前記ソース画像の回転した画像のピクセルの列が単一のクロックサイクルにおいてタイルバッファから読み出されることができるように、前記ピクセルをタイルバッファにおいて前記計算されたターゲット位置に記憶し、
回転がある場合、前記ソース画像の１つのラインからのピクセルを前記タイルバッファの１つのラインに書き込む、
請求項１５に記載の方法。
【請求項１７】
前記タイルバッファは複数のランダムアクセスメモリ（ＲＡＭ）を含み、前記タイルバッファの各ＲＡＭは１つのピクセルのみが単一のクロックサイクルにおいてＲＡＭに書き込まれまたはＲＡＭから読み出されることができるようにし、前記方法はさらに、単一のクロックサイクルにおいて前記タイルバッファからピクセルの全体の列を読み出す段階を含み、前記タイルバッファからのピクセルの全体の列は前記ソース画像の回転された画像の列に対応する、請求項１４に記載の方法。
【請求項１８】
ソース画像を複数のタイルへ区画化する段階であって、その区画化は、指定の回転に基づくものである段階と、
前記ソース画像の第１タイルからピクセルを読み取る段階と、
前記第１タイルからのピクセルをタイルバッファのターゲット位置に記憶する段階であって、そのターゲット位置は前記指定の回転に基づいて計算されるものであり、前記回転された画像は前記回転が実行された後のソース画像である段階と、
グラフィックパイプラインの後続段によって前記タイルバッファが読み取られたことを検出するのに応答して、
前記ソース画像の第２タイルからピクセルを読み取り、及び
前記第２タイルからのピクセルを前記タイルバッファに記憶する、
という段階と、
回転がない場合、前記ソース画像の１つのラインからのピクセルを前記タイルバッファの対角ラインに書き込む段階と、
を備えた方法。
【請求項１９】
前記ターゲット位置は前記指定の回転に基づいて計算されるものであり、それによって、回転された画像のピクセルの列は単一のクロックサイクルにおいて前記タイルバッファから読み出されることができ、
回転がある場合、前記ソース画像の１つのラインからのピクセルを前記タイルバッファの１つのラインに書き込む、
請求項１８に記載の方法。
【請求項２０】
前記タイルバッファは、複数の個々のランダムアクセスメモリ（ＲＡＭ）を含み、前記タイルバッファの複数のＲＡＭの各ＲＡＭは１つのピクセルのみが単一のクロックサイクルにおいてＲＡＭに書き込まれまたはＲＡＭから読み出されるようにし、
前記スケーラーユニットは、
単一のクロックサイクルにおいて前記タイルバッファの各ＲＡＭから単一のピクセルを読み取り、
単一のクロックサイクルにおいて前記タイルバッファからピクセルの全体の列をフェッチするように構成され、前記タイルバッファからのピクセルの全体の列は前記回転された画像の列に対応する、請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、グラフィック情報処理に関するもので、より特定すれば、画像を回転する方法及びメカニズムに関する。
【背景技術】
【０００２】
コンピューティング装置、特に、移動装置は、多くの場合、制限されたメモリリソース及びバッテリのような限定された電源を有する。ディスプレイを伴うコンピューティング装置は、通常、ビデオ及び画像を操作及び表示するために異なる形式のグラフィックハードウェアを備えている。グラフィックハードウェアは、表示するように意図された画像を発生及び処理するために多数の異なる形式の動作を遂行する。グラフィックハードウェアにより遂行される１つの共通の動作は、画像の回転である。典型的に、画像を回転するために大きなバッファが使用される。しかしながら、それらのバッファは、多量のシリコンエリアを必要とし、付加的な電力を消費し、グラフィックハードウェアのコストを増加させ、移動装置のバッテリ寿命を短縮させる。
【発明の概要】
【０００３】
画像を回転するためのシステム及び方法が提供される。
【０００４】
種々の実施形態において、ソース画像のインライン回転を遂行して回転画像を発生する装置が提供される。この装置は、多段グラフィック処理パイプラインの一部分である。この装置は、メモリからソース画像ピクセルをフェッチするためのフェッチユニットを備えており、メモリに記憶されたソース画像内のピクセルのアドレスを発生するよう構成される。フェッチユニットは、更に、ソース画像に対して遂行される回転の形式に基づく順序でピクセルアドレスを発生する。ソース画像は、複数のタイルへ区画化され、この区画化は、遂行される回転に基づくものである。ピクセルは、ソース画像からタイルごとにフェッチされる。
【０００５】
又、この装置は、検索されたピクセルを記憶するための１つ以上のタイルバッファも備えている。ピクセルは、タイルバッファ内のターゲット位置に記憶され、そしてターゲット位置は、遂行される回転に基づく。一実施形態において、各タイルバッファは、画像の所与の回転タイルからのデータの一部分を記憶するために複数の個別の個々のランダムアクセスメモリ（ＲＡＭ）を備えている。種々の実施形態において、タイルバッファのピクセルは、グラフィック処理パイプラインの後続段により読み取られて処理される。
【０００６】
これら及び他の特徴並びに効果は、ここに述べる解決策の以下の詳細な説明から当業者に明らかとなろう。
【０００７】
方法及びメカニズムの前記及び更に別の効果は、添付図面を参照した以下の詳細な説明から良好に理解されるであろう。
【図面の簡単な説明】
【０００８】
【図１】回転ユニットの一実施形態を示すブロック図である。
【図２】１つ以上の実施形態に基づくルックアップテーブルである。
【図３】回転タイルバッファの一実施形態を示すブロック図である。
【図４】１つ以上の実施形態に基づく３つの区画化された画像を示す。
【図５】区画化されたソース画像と４つのタイルバッファとの間の対応性の一実施形態を示すブロック図である。
【図６】４つのタイルバッファ及び区画化された回転画像の一部分の一実施形態を示すブロック図である。
【図７】タイルバッファの一実施形態を示すブロック図である。
【図８】遂行される種々の形式の回転を示すブロック図のグループである。
【図９】インライン形態でピクセルを回転するための方法の一実施形態を示す一般化されたフローチャートである。
【図１０】画像のインライン回転を遂行するための方法の一実施形態を示す一般化されたフローチャートである。
【図１１】システムの一実施形態のブロック図である。
【図１２】コンピュータ読み取り可能な媒体の一実施形態のブロック図である。
【発明を実施するための形態】
【０００９】
以下の説明では、ここに表わす方法及びメカニズムを完全に理解するために多数の特定の細部について述べる。しかしながら、当業者であれば、これら特定の細部なしに種々の実施形態を具現化できることが明らかであろう。ある例では、ここに述べる解決策を不明瞭にしないために、良く知られた構造、コンポーネント、信号、コンピュータプログラムインストラクション及び技術は、詳細に示さない。説明を簡単及び明瞭にするため、図示された要素は、必ずしも正しい縮尺で描かれていない。例えば、幾つかの要素の寸法は、他の要素よりも誇張されている。
【００１０】
本明細書には「一実施形態」を言及することが含まれる。異なる文脈において「一実施形態において」という句が現れることは、必ずしも、同じ実施形態を言及するものではない。特定の特徴、構造又は特性は、本開示と矛盾しない適当な仕方で組み合わせることができる。更に、本出願全体に使用される「〜してもよい(may)」という語は、許すという意味（即ち、〜の潜在性があるという意味）で使用されるもので、強制の意味（即ち、〜しなければならないという意味）ではない。同様に、「含む(include)」、「含んでいる(including)」及び「含む(includes)」という語は、含むことを意味するが、それに限定されない。
【００１１】
用語。次の章は、本開示（特許請求の範囲を含む）に見られる用語に関する定義及び／又は状況を与えるものである。
【００１２】
「備える(Comprising)」。この用語は、オープンエンドである。特許請求の範囲に使用されるときには、この用語は、付加的な構造又はステップを除外するものではない。「フェッチユニットを備える装置(An apparatus comprising a fetch unit…)」という請求項を考える。このような請求項は、装置が付加的なコンポーネント（例えば、プロセッサ、キャッシュ、メモリコントローラ）を含むことを除外するものではない。
【００１３】
「〜ように構成された(Configured To)」。種々のユニット、回路又は他のコンポーネントは、１つ又は複数のタスクを遂行するように「構成される」ものとして説明され又は請求される。この点について、「構成される」とは、ユニット／回路／コンポーネントが動作中に１つ又は複数のタスクを遂行する構造体（例えば、回路）を含むことを指示することにより、構造体を暗示するのに使用される。従って、ユニット／回路／コンポーネントは、その指定のユニット／回路／コンポーネントが現在動作していない（例えば、オンでない）ときでも、タスクを遂行するように構成されると言うことができる。「構成される」の言語と共に使用されるユニット／回路／コンポーネントは、ハードウェア、例えば、回路、動作を具現化するために実行できるプログラムインストラクションを記憶するメモリ、等を含む。ユニット／回路／コンポーネントが１つ以上のタスクを遂行するように「構成された」という表現は、そのユニット／回路／コンポーネントに関して３５Ｕ.Ｓ.Ｃ.§１１２、第６節を引用しないことが明確に意図される。更に、「構成される」は、問題とするタスクを遂行できるようにソフトウェア及び／又はファームウェア（例えば、ソフトウェアを実行するＦＰＧＡ又は汎用プロセッサ）を動作することで操作されるジェネリック構造体（例えば、ジェネリック回路）を含む。又、「構成される」は、１つ以上のタスクを具現化又は遂行する装置（例えば、集積回路）を製造するように製造プロセス（例えば、半導体製造ファシリティ）を適用することも含む。
【００１４】
「第１(First)」、「第２(Second)」、等。ここで使用するこれら用語は、それに続く名詞のための表現として使用されるもので、特に指示のない限り、任意の形式の順序（例えば、空間的、時間的、論理的）を意味するものではない。例えば、４タイルバッファを伴う回転ユニットでは、「第１」及び「第２」タイルバッファという語は、４つのタイルバッファのうちのいずれか２つを指すのに使用される。
【００１５】
「〜に基づく(Based On)」。ここで使用するこの用語は、決定に影響する１つ以上のファクタを記述するのに使用される。この用語は、決定に影響する付加的なファクタを除外するものではない。即ち、決定は、これらのファクタのみに基づいてもよいし、又はこれらのファクタに少なくとも一部分基づくものでもよい。「Ｂに基づいてＡを決定する(determine A based on B)」という句について考える。Ｂは、Ａの決定に影響するファクタであるが、そのような句は、Ａの決定を、Ｃに基づくことからも除外しない。他の例では、Ａは、Ｂのみに基づいて決定されてもよい。
【００１６】
図１は、回転ユニットの一実施形態を示すブロック図である。種々の実施形態において、回転ユニット１０は、システムオンチップ（ＳｏＣ）内のグラフィック処理パイプライン内に合体される。一実施形態において、グラフィック処理パイプラインは、個別プロセッサチップ又はコプロセッサである。ある実施形態では、グラフィック処理パイプラインは、グラフィックデータをディスプレイコントローラ又はディスプレイ装置に付与する。他の実施形態では、グラフィック処理パイプラインは、グラフィックデータを、更なる処理のために、又はディスプレイ装置によるその後の消費のために、メモリ内の記憶位置に付与する。他の実施形態では、回転ユニット１０は、集積回路（ＩＣ）、特定用途向け集積回路（ＡＳＩＣ）、装置、或いは種々の他の同様の装置のいずれかに合体される。
【００１７】
ソース画像１５は、静止画像であるか又はビデオストリームのフレームである。ソース画像１５は、ピクセルとして知られた非常に多数の個別画素により表わされる。デジタル画像では、画像又はビデオフレームにおける最小の情報アイテムが「ピクセル」である。ピクセルは、一般的に、規則的な二次元グリッドに配列される。ソース画像１５の各ピクセルは、１つ以上のピクセル成分によって表される。ピクセル成分は、画像が表わされたカラースペース内の各カラーのカラー値を含む。例えば、カラースペースは、赤・緑・青（ＲＧＢ）カラースペースである。従って、各ピクセルは、赤成分、緑成分及び青成分により表される。これら成分の値は、そのピクセルの対応カラーの輝度又は強度を表わす。ルミナンス及びクロミナンス表現（ＹＣｒＣｂ）のような他のカラースペースも使用される。更に、付加的なピクセル成分も含まれる。例えば、混合のためのアルファ値をＲＧＢ成分と共に含ませて、ＡＲＧＢカラースペースを形成してもよい。
【００１８】
回転ユニット１０は、ソース画像１５内のソース位置からピクセルを読み取り、そしてそれを、行先画像のターゲット位置に対応するタイルバッファ２４−３０内の位置に書き込むように構成される。回転ユニット１０は、９０°の倍数の回転、及び／又は水平又は垂直方向のフリップを遂行する。回転ユニット１０への入力である回転構成ビットにより指定の回転が指示される。本開示全体にわたって使用される「回転」という用語は、そのワードの慣習的な意味において９０°、１８０°、又は２７０°の回転（時計方向又は反時計方向）を指す。更に、「回転」とは、フリップ（即ち、画像のｘスワップ又はｙスワップ方向変化）を指す。
【００１９】
回転ユニット１０は、メモリ１６に記憶されたソース画像１５から指定の順序でピクセルをフェッチするためのフェッチユニット１２を備えている。一実施形態において、フェッチユニット１２は、ソース画像１５におけるピクセルのアドレスを発生する。フェッチユニット１２は、アドレスが発生される順序を、遂行される回転の形式に基づいて決定する。フェッチユニット１２は、発生されたアドレスを使用して読み取り要求を発行し、そしてアドレスがメモリ管理ユニット（ＭＭＵ）１４により使用されて、メモリ１６からの読み取り動作を遂行する。別の実施形態では、論理的ファブリックインターフェイス（図示せず）がＭＭＵ１４とメモリ１６との間に含まれる。一実施形態において、フェッチユニット１２は、直接メモリアクセス（ＤＭＡ）読み取り動作を遂行して、ソース画像１５からピクセルを読み取る。フェッチユニット１２は、ＤＭＡ読み取り動作を遂行するためにＤＭＡコントローラを備えている。
【００２０】
ＭＭＵ１４は、メモリアドレス変換を遂行するように構成される。一実施形態では、ＭＭＵ１４は、バーチャルアドレスを利用して、フェッチユニット１２が、ソース画像１５に対応するバーチャルアドレス範囲にアドレスできるようにする。ＭＭＵ１４は、バーチャル／物理的変換を遂行して、バーチャルアドレスをメモリ１６の実際の物理的アドレスにマップさせる。種々の実施形態において、ＭＭＵ１４は、ミス時フェッチ要求である変換を待機することにより被るレイテンシを回避するためにフェッチユニット１２が変換をプリフェッチできるようにする。一実施形態では、フェッチユニット１２は、プリフェッチのバーチャルアドレスを発生するためにプリフェッチエンジン（図示せず）を備えている。この実施形態では、ＭＭＵ１４は、フェッチユニット１２からのプリフェッチ要求を処理するためにプリフェッチユニット（図示せず）を備えている。一実施形態において、フェッチユニット１２は、現在タイルがフェッチされる１タイル前にプリフェッチ要求を送信する。そのプリフェッチ要求は、ＭＭＵ１４内のストリーミング変換テーブル（ＳＴＴ）（図示せず）をポピュレートするのに使用される。フェッチユニット１２が実際のメモリ要求を発行すると、その要求は、ＳＴＴを使用して直ちに変換される。
【００２１】
フェッチユニット１２は、ソース画像１５からピクセルをフェッチし、そしてそのピクセルをタイルバッファ２４−３０内の適当な位置に書き込むように構成される。一実施形態において、フェッチユニット１２は、１つ以上のピクセルに対応する特定のトランザクション識別子（ＩＤ）をもつ読み取り要求を発行する。フェッチユニット１２は、回転された画像のタイルにおける１つ以上のピクセルの行先位置を計算する。次いで、フェッチユニット１２は、ルックアップテーブル１８のエントリにトランザクションＩＤを記憶し、そしてピクセル行先位置がエントリに含まれる。その特定トランザクションＩＤのピクセルがメモリ１６から受け取られると、ルックアップテーブル１８の対応エントリが検索され、そして位置情報を使用して、タイルバッファ２４−３０の所与のタイルバッファのどこにピクセルを書き込むべきか決定する。
【００２２】
一実施形態において、ルックアップテーブル１８は、ランダムアクセスメモリ（ＲＡＭ）である。種々の実施形態において、ルックアップテーブル１８は、種々の数のエントリを含む。フェッチされたピクセルは、ルックアップテーブル１８に記憶された位置データに基づきタイルバッファ２４−３０のターゲット位置に記憶される。ピクセルは、実際上、タイルバッファ２４−３０の所与のタイルバッファのターゲット位置に書き込まれたのと同様に再配置される。
【００２３】
タイルバッファ２４−３０の各々は、回転された画像の所与のタイルを記憶する。ソース画像１５及びそれに対応する回転画像の各々は、指定の回転に基づいて複数のタイルに配分される。一実施形態において、回転画像のタイルは、１６行のピクセルｘ１２８列のピクセルである。しかしながら、他の実施形態では、タイルのサイズが変化してもよい。複数のタイルを使用して、ソース画像１５の各行を形成するように、ソース画像１５の巾をタイルの巾より大きくしてもよい。又、複数のタイルを使用して、ソース画像１５の各列を形成するように、ソース画像１５の長さをタイルの長さより大きくしてもよい。タイルバッファ２４−３０の各々は、ソース画像１５の所与の回転タイルを記憶し、そしてパイプラインの次の段によりタイルバッファが読み取られた後、タイルバッファは、ソース画像１５の新たなタイルで埋められる。一実施形態において、各カラー成分は、回転画像の４つのタイルを記憶するための４つのタイルバッファを含む。例えば、ソース画像１５をＡＲＧＢフォーマットで表す場合には、アルファカラー成分に対して４つのタイルバッファがあり、赤のカラー成分に対して４つのタイルバッファがあり、緑のカラー成分に対して４つのタイルバッファがあり、そして青のカラー成分に対して４つのタイルバッファがある。
【００２４】
一実施形態において、回転画像の一部分を形成するタイルバッファ２４−３０に記憶されたタイルは、画像処理パイプラインの後続段へ搬送される。一実施形態において、パイプラインの後続段は、行先画像の回転タイルをアップスケール又はダウンスケールするためのスケーラーユニット（例えば、スケーラー３２）である。スケーラー３２は、パイプライン内で使用される多数の垂直及び水平スケーラーを表わす。別の実施形態では、パイプラインの次の段は、スケーラー３２以外のユニット（カラースペース変換ユニット、正規化ユニット、ダウンサンプリングユニット）である。更に別の実施形態では、回転ユニット１０は、行先画像の回転タイルをディスプレイユニット（図示せず）に搬送する。更に別の実施形態では、回転ユニット１０は、ターゲット画像の回転タイルをメモリ１６又は別の記憶位置に搬送する。
【００２５】
一実施形態において、フェッチユニット１２により発生される各読み取り要求は、６４バイトまでのデータを読み取る。他の実施形態では、読み取り要求は、他の量のデータを要求する。一実施形態において、各読み取り要求は、ソース画像１５のタイルのライン（即ち、行）に向けられる。回転画像のターゲットタイルサイズが１６行ｘ１２８列でありそして指定の回転が９０又は２７０°である場合、ソース画像１５は、１６列ｘ１２８行のタイルへと区画化される。フェッチユニット１２は、タイルの最も上のラインをフェッチし、そしてタイルの底まで１ラインごとに下に進む。各フェッチは、ソース画像１５のタイルのラインからのピクセルを要求する。１６ピクセルの１ライン全体を検索するには１つ以上のフェッチが必要であり、次いで、フェッチは、次のラインへと下に進んで、次の１６ピクセルを検索し、次いで、１タイル全体に対して１２８本のラインが検索されるまでこのプロセスが続けられる。ソース画像１５の１行からの１６個のピクセルは、指定の（９０又は２７０°の）回転に対し回転画像の単一列を形成する。他の実施形態では、タイルの他のサイズ（例えば、２５６ｘ２４、６４ｘ１６、５１２ｘ３２）が使用され、そして他の形式の回転が遂行される。
【００２６】
一実施形態において、回転ユニット１０によりピクセルが受け取られたときに、タイルバッファ２４−３０のどこにピクセルを記憶するかに基づいてオンザフライ決定がなされる。この決定は、ルックアップテーブル１８に記憶された位置情報に基づく。ある実施形態では、ピクセルは、順序ずれして戻され、そしてピクセル行先情報を含むタグデータに基づいてタイルバッファ２４−３０内の正しい位置へルーティングされる。
【００２７】
フェッチユニット１２は、トランザクションＩＤ及びピクセル行先をルックアップテーブル１８に記憶する。ピクセルデータは、順序ずれして戻され、そしてルックアップテーブル１８へ搬送される。ルックアップテーブル１８は、ソース画像１５のネーティブフォーマット及び回転画像のターゲットフォーマットに基づいてピクセル当たりのビット数を拡張するためにビット拡張ユニット２０へピクセルを搬送する。ビット拡張ユニットは、メモリから検索されるピクセルが、パイプライン内の次の段（即ち、スケーラー３２）により使用されるものと同じサイズである場合には、含まれなくてもよい。ある実施形態では、スウィズルユニット２２は、フェッチされたピクセルの順序を再アレンジする。例えば、一実施形態において、ピクセルは、青、緑、赤及びアルファ色成分の順序で受け取られる。スウィズルユニット２２は、ピクセルを、アルファ、赤、緑及び青色成分の順序に再順序付けする。
【００２８】
各ピクセルを記憶するのに使用されるビット数は、使用される特定フォーマットに依存する。例えば、あるシステムにおけるピクセルは、８ビットを必要とし、一方、他のシステムにおけるピクセルは、１０ビットを必要とし、等々であり、種々のシステムにおいてピクセル当たり種々のビット数が使用される。一実施形態において、ソース画像１５は、８ビットで表されたピクセルを含む。グラフィックパイプラインは、１０ビットのピクセルを使用し、従って、ソース画像１５から受け取られるピクセルは、ビット拡張ユニット２０により８ビットから１０ビットへ拡張される。ある実施形態では、ビット拡張ユニット２０及びスウィズルユニット２２は、含まれなくてもよいし、又はパススルーユニットでもよいことに注意されたい。ある実施形態では、フェッチされたピクセルは、ビット拡張ユニット２０及びスウィズルユニット２２を通過せずに、タイルバッファ２４−３０へ直接搬送される。
【００２９】
ルックアップテーブル１８、ビット拡張ユニット２０及びスウィズルユニット２２は、フェッチユニット１２の一部分として示されているが、これは、単なる例示に過ぎず、他の実施形態では、ユニットは、他の適当な仕方で配置されてもよい。例えば、別の実施形態では、ルックアップテーブル１８、ビット拡張ユニット２０及び／又はスウィズルユニット２２は、フェッチユニット１２とは異なる個別ユニットでもよい。
【００３０】
各タイルバッファ２４−３０は、回転された画像の異なるタイルに対応する。他の実施形態では、回転されたタイルからのピクセルを記憶するのに、４の他に、別の数のタイルバッファが使用されてもよい。更に、各タイルバッファは、複数のＲＡＭを含み、そして各ＲＡＭは、１行の所与の画像タイルを記憶する。例えば、一実施形態において、各タイルバッファは、画像タイルの１６行に対応する１６個の個々のＲＡＭを含む。他の実施形態では、１６の他に、別の数の行をもつ他のタイルサイズが使用される。これらの実施形態では、タイル当たりの行数に対応して各バッファに他の数のＲＡＭがあってもよい。例えば、別の実施形態では、タイルサイズが３２行ｘ１２８列である場合に、タイルバッファ当たり３２のＲＡＭがある。
【００３１】
図１に示したコンポーネントは、適当なバス及び／又はインターフェイスメカニズムを使用して互いに結合される。ある実施形態では、これらコンポーネントは、アドバンスト・マイクロコントローラ・バス・アーキテクチャー（ＡＭＢＡ（登録商標））プロトコル（ＡＲＭ（登録商標）ホールディングズからの）を使用するか、又は論理ブロックを接続及び管理するための他の適当なオンチップ相互接続仕様を使用して、接続される。ＡＭＢＡバス及び／又はインターフェイスは、例えば、アドバンストｅＸｔｅｎｓｉｂｌｅインターフェイス（ＡＸＩ）、アドバンスト・ハイパーフォーマンス・バス（ＡＨＢ）、アドバンスト・システム・バス（ＡＳＢ）、アドバンスト・ペリフェラル・バス（ＡＰＢ）、及びアドバンスト・トレース・バス（ＡＴＢ）を含む。
【００３２】
他の実施形態には、図１に示したコンポーネント及び／又は他のコンポーネントのサブセット又はスーパーセットを含めて、コンポーネントの他の組み合わせが含まれることに注意されたい。図１には、所与のコンポーネントの一例が示されているが、他の実施形態は、所与のコンポーネントの１つ以上の例を含んでもよい。同様に、この詳細な説明全体にわたり、所与のコンポーネントの一例しか示されていなくても、１つ以上の例が含まれてもよく、及び／又は複数の例が示されていても、１つの例しか含まない実施形態が使用されてもよい。
【００３３】
図２には、ルックアップテーブルの一実施形態が示されている。ルックアップテーブル１８の各エントリは、トランザクション識別子（ＩＤ）フィールド、タイルバッファ番号フィールド、ライン（行）番号フィールド、及び列番号フィールドを含めて、複数のデータフィールドを含む。トランザクションＩＤフィールドは、ソース画像１５内の１つ以上のアドレスに対する特定の読み取り要求に対応する。フェッチユニット１２（図１）は、１つ以上のピクセルの読み取り要求を発行するときにルックアップテーブル１８に読み取り要求に対応するエントリを記憶する。各エントリは、回転後画像のタイルにおいてソースピクセル（１つ又は複数）をどこに配置すべきか指示する位置座標を含む。一実施形態において、回転後画像タイルは、タイルバッファに記憶され、そしてピクセルは、全グラフィック処理パイプラインの次の段によりタイルバッファから読み取られる。
【００３４】
読み取り要求に対応するピクセルがメモリから検索されるとき、ルックアップテーブル１８の対応エントリを使用して、その検索されたピクセルをタイルバッファのどこに記憶するか決定する。例えば、読み取りトランザクションＩＤ４３に対応するデータがメモリから戻されるとき、トランザクションＩＤ４３のエントリが回転ユニットにより使用されて、タイルバッファ２４においてライン０列２４のスタート位置にピクセルを記憶する。一実施形態では、単一のトランザクションで検索されるピクセルの数は、８である。他の実施形態では、他の数のピクセルが単一トランザクションで検索される。
【００３５】
ルックアップテーブル１８に示すエントリは、例示のためのものに過ぎない。ルックアップテーブル１８は、他の実施形態では、８より少ない又は８より多いエントリを含んでもよく、そしてルックアップテーブル１８は、異なる編成とされ、他の情報フィールドを含んでもよい。例えば、一実施形態において、回転の形式を指示する回転構成ビットが、テーブル１８に記憶される。別の実施形態では、各エントリは、そのエントリが使用されたときを指示するために有効ビットを含んでもよく、それ故、その後のトランザクションＩＤに対して別のエントリによりオーバーライトされてもよい。他の実施形態では、ルックアップテーブル１８に他の形式の情報が記憶されてもよく、そしてルックアップテーブル１８は、適当な形態で編成されてもよい。
【００３６】
図３は、回転タイルバッファの一実施形態のブロック図である。タイルバッファ２４は、１６の個別の行を含み、その各々は、個別のＲＡＭである。１６個の個別のＲＡＭは、行０、行１、行２、・・・行１５のような画像タイルの個別の行を記憶するのに使用される。各ＲＡＭは、回転画像のタイルの個別行に関連したピクセルを記憶する。この実施形態では、タイルサイズは、１６行ｘ１２８列である。他の実施形態では、他のタイルサイズが使用されてもよく、そしてタイルバッファ２４は、タイルにおける行の数に対応する他の数のＲＡＭを含んでもよい。
【００３７】
一実施形態において、グラフィックパイプラインの次の段は、垂直スケーラーユニットである。この垂直スケーラーユニットは、単一のクロックサイクルにおいてタイルバッファ２４からピクセルの１列全体をフェッチする。ある実施形態では、タイルバッファ２４の各ＲＡＭは、クロックサイクル当たり単一のアクセスを許す。それ故、タイルバッファ２４は、各行が個別のＲＡＭに記憶されるように構成され、垂直スケーラーが各クロックサイクルにおいて各行から単一のピクセルを読み取ることができるようにされる。他の実施形態では、タイルバッファ２４は、グラフィックパイプラインの次の段によりタイルバッファ２４からデータをどのように読み取るかに基づいて、他の仕方で構成される。
【００３８】
図４には３つの区画化された画像が示されている。回転を行わない場合のソース画像の区画化は、ソース画像５０で示されている。ソース画像５０は、（０、０）−（２、２）で示す８つのタイルに区画化され、そしてタイルが処理される順序は、最も左上角のタイルで始まって最も左側の列を下に進み、即ち（０、０）（０、１）及び（０、２）で示すブロックでスタートする。次いで、最も左側の列がフェッチされた後に、その右側の次の列（タイル（１、０）（１、１）及び（１、２））がフェッチされ、等々となる。
【００３９】
９０°の時計方向回転を行うためのソース画像の区画化は、ソース画像ブロック５２で示されている。この場合、ソース画像の区画化は、指定の回転に基づくものとなり、処理されるべき第１のタイルは、ソース画像５２の最も左下のタイルとなる。ソース画像５２の最も左下のタイルは、９０°回転を行った後の回転画像５４において最も左上のタイルとなり、このため、ソース画像５２の最も左下のタイルが、処理されるべき第１のタイルとなる。ソース画像５２のタイルは、最も左側のタイル（０、０）でスタートして最も下のタイル行において処理され、タイル（０、１）（０、２）（０、３）及び（０、４）を経て進む。次いで、最も上のタイル行がタイル（１、０）からタイル（１、４）へと処理される。ソース画像５２のタイルの処理は、９０°の回転により決定された形態で進み、タイルは、指定の回転を行った後に位置された通りに処理される。処理される第１のタイルは、回転画像５４の最も左上で終わるタイルである。次いで、画像は、（回転画像５４の）第１のタイル列を下降するように処理され、次いで、その右側の次の列へ進み、等々となる。回転画像５４は、ソース画像５２が処理されそして回転ユニット（例えば、図１の回転ユニット１０）により回転された後に行先画像がどのように現れるか示している。他の形式の回転（９０°以外の回転）に対してソース画像をタイルへ区画化することは、行われる特定形式の回転に基づいて同様に実行される。又、図４に示す画像及びタイルのサイズは、単なる例示に過ぎず、他の数及びサイズのタイルを伴う他の画像も同様に処理することができる。
【００４０】
図５には、区画化されたソース画像とタイルバッファとの間の対応関係の一実施形態が示されている。図５には、ソース画像５２（９０°時計方向回転に対して区画化された）が示されており、そして処理される第１の４つのタイル（（０、０）（０、１）（０、２）及び（０、３））と、それらタイルが記憶される対応するタイルバッファ２４−３０とが矢印で接続されている。例えば、タイル（０、０）は、タイルバッファ２４に記憶され、タイル（０、１）は、タイルバッファ２６に記憶され、タイル（０、２）は、タイルバッファ２８に記憶され、そしてタイル（０、３）は、タイルバッファ３０に記憶される。
【００４１】
図５は、区画化されたソース画像５２の１つの色成分についてタイルバッファへのタイルのルーティングを示す。区画化されたソース画像５２の各色成分は、個別のタイルバッファに記憶される。例えば、ＡＲＧＢフォーマットでは、画像５２の最初の４つのタイルの全ての色成分を記憶するために全部で１６個のタイルバッファが使用される。
【００４２】
タイルバッファ２４−３０がグラフィックパイプラインの後続段により読み取られた後に、区画化されたソース画像５２の次の４つのタイルがタイルバッファ２４−３０に書き込まれる。一実施形態において、グラフィックパイプラインの次の段は、タイルバッファ２４−３０から一度に１つ読み取りを行い、タイルバッファ２４が読み取られた場合は、区画化されたソース画像５２の次のタイルがタイルバッファ２４に書き込まれ、次いで、タイルバッファ２６が読み取られるまでプロセスが停止され、等々となるようにする。
【００４３】
図６には、４つのタイルバッファと、区画化された回転画像の一部分とが示されている。タイルバッファ２４−３０は、図５に示されたソース画像５２から４つのタイルを記憶する。ソース画像５２からのこれら４つのタイルは、回転画像５４に示された４つのタイル（（０、０）（０、１）（０、２）及び（０、３））に対応する。ソース画像５２のオリジナルタイルから回転画像５４へのピクセルの回転は、ピクセルがタイルバッファ２４−３０に書き込まれるときに行われる。回転画像５４の４つのタイルは、グラフィックパイプラインの後続段（図示せず）によりタイルバッファ２４−３０から読み取られる。或いは又、回転画像５４の４つのタイルに記憶されたピクセルは、ディスプレイ（図示せず）又はメモリの位置（図示せず）へ搬送される。
【００４４】
タイルは、回転画像５４に、その画像の左上ブロックで始めて記憶され、次いで、画像の最下縁に到達するまでタイルの最も左の列を下るように処理が続けられる。次いで、タイルは、最も左から２番目の列の最上部に記憶され続け、画像の残り部分全体を通してそのように続けられる。別の実施形態では、タイルは、回転画像５４に異なる順序で記憶されてもよい。
【００４５】
図７には、タイルバッファの一実施形態のブロック図が示されている。種々の実施形態において、タイルバッファ２６のサイズは、個々の画像タイルのサイズに一致するように変化し得る。一実施形態において、個々の画像タイルは、１６ラインｘ１２８列であり、各ラインは、１２８個のピクセルを含む。別の実施形態では、画像タイルのラインは、タイルの右側及び左側に付加的な７つのピクセルをフェッチすることにより１４２個のピクセルへ拡張される。タイルの右縁及び左縁に隣接タイルからピクセルをこのようにフェッチすることは、グラフィックパイプラインの後続段における１５タップの多相水平スケーラーフィルタを容易にするために行われる。
【００４６】
タイルバッファ２６は、１４２ラインｘ１６列のサイズを有するものとして示されている。一実施形態において、これは、１６ラインｘ１４２列のソース画像タイルサイズ及び９０°又は２７０°の指定回転に対応する。各ボックスの表示は、回転画像内のピクセル位置を指す。ピクセルは、ソース画像からフェッチされ、そして指定回転に基づいてタイルバッファ２６内の適当な位置に記憶される。タイルバッファ２６の各ボックスの表示は、回転画像のタイル内のピクセル位置を指す。
【００４７】
タイルバッファ２６に示したピクセルの配置を利用して、単一のクロックサイクル中に複数のピクセルをタイルバッファ２６に書き込むことができる。例えば、一実施形態において、タイルバッファ２６のピクセルの各垂直配列は、個別のＲＡＭに対応する。従って、ＲＡＭ０−１５の各々は、単一のクロックサイクル中に単一のピクセルの書き込み又は読み取りしか許さない。それ故、オリジナルのソース画像からピクセルデータをどのようにフェッチするかに基づき、クロックサイクル当たりせいぜい１つのピクセルしかＲＡＭに書き込んだりＲＡＭから読み取ったりする必要がないように各ＲＡＭにピクセルが配置される。
【００４８】
一実施形態において、オリジナルソース画像からフェッチ当たり１つのラインでピクセルがフェッチされ、そしてフェッチされたピクセルの各セットは、回転がある場合には、タイルバッファ２６の単一ライン（例えば、ライン０−列０、ライン１−列０、等）に書き込まれ、そして回転がない場合には、タイルバッファ２６の対角ライン（例えば、ライン０−列０、ライン０−列１、ライン０−列２、等）に書き込まれる。又、ピクセル配列体は、回転画像の単一列をターゲットとする１６個のピクセルをグラフィックパイプラインの次の段により単一のクロックサイクル中にタイルバッファ２６から読み出すことができるようにする。図７に示すタイルバッファ２６のサイズは、単なる例示に過ぎず、他の実施形態では、他のタイルサイズが使用されてもよいことに注意されたい。更に、他の実施形態では、タイルバッファ内のピクセルの他の配列も考えられ、意図される。
【００４９】
図８は、実行可能な種々の形式の回転のブロック図である。各形式の回転に対して２つのブロックが示されており、一方のブロックは、「ソース」と示されたオリジナルソース画像を示し、そして第２のブロックは、特定形式の回転（例えば、９０°、２７０°、Ｘフリップ）後の最終的な画像を示す。各ソース画像に隣接する２つの矢印は、ピクセルスキャン方向（実線）及びラインスキャン方向（破線）を示す。ピクセルスキャン方向は、ソース画像の各タイルからピクセルがスキャン（即ち、フェッチ）される方向を指示する。ラインスキャン方向は、ソース画像の各タイルからラインがスキャンされる方向、及びタイルがスキャンされる方向を指示する。ピクセル及びラインスキャン方向は、フェッチユニット１２（図１）のようなフェッチユニットにより読み取りアドレスが発生される順序を決定する。フェッチユニット１２は、全画像或いは全行又は列に対して動作するのではなく、画像のタイルに対して動作することにより、ソース画像を回転及び／又はフリップする。フェッチユニット１２は、回転画像の最も左上のタイルをターゲットとするソース画像のタイルでスタートして、タイルごとに、ソース画像からピクセルをフェッチするように構成される。
【００５０】
１６の異なる回転及びフリップ組み合わせに対して８つの独特の画像配向が示されている。回転及びフリップの組み合わせの幾つかは、同じ画像配向を生じ、それ故、図８には１回しか示されていない。例えば、９０°の回転の後にｘ（水平）方向にフリップすることは、２７０°の回転の後にｙ（垂直）方向にフリップすることと同等である。
【００５１】
図８に示す例は、実行される回転の形式を余すところなく示すものではなく、他の形式の回転も実行できることに注意されたい。更に、図８に示す規範的画像は、方形画像であるが、ここに開示する方法及びメカニズムでは、長方形のソース画像も使用できる。又、他の実施形態では、他のピクセル及びラインスキャン方向が使用されてもよい。
【００５２】
図９には、インライン形態でピクセルを回転する方法の一実施形態が示されている。説明上、この実施形態におけるステップは、順次に示されている。以下に述べる方法の種々の実施形態において、ここに述べる要素の１つ以上は、同時に遂行されてもよいし、図示された順序とは異なる順序で遂行されてもよいし、又は完全に除去されてもよいことに注意されたい。又、必要に応じて、他の付加的な要素が遂行されてもよい。
【００５３】
一実施形態において、ソース画像からのピクセルに対して指定の回転に基づく順序でフェッチ要求を発行する（ブロック６０）。ソース画像をタイルへと区画化し、タイルの最も上の行で始めて行ごとにタイルを下方に進むようにして各タイルからピクセルをフェッチする。ソース画像をタイルへと区画化することは、実行される特定の回転に基づく。例えば、１６行ｘ１２８列のタイルサイズをもつ一実施形態では、指定の回転が９０°である場合に、ソース画像は、１２８行及び１６列をもつタイルへと区画化される。各行は、１６ピクセルを含み、そして全部で１２８行に対して最も上の行で始めて最も下の行へと下方に進むように行をフェッチする。ソース画像から読み取られる各行は、９０°の回転に基づく回転画像では列になる。フェッチされるソース画像の第１タイルは、回転画像の最も左上のタイルとして終了するタイルであり、従って、回転画像の第１のタイル列を下るようにタイルがフェッチされる。次いで、その右側の次のタイル列（回転画像で見て）がフェッチされ、等々となって、ソース画像の全てのタイルがフェッチされるまで行われる。
【００５４】
次いで、ピクセルに対してターゲット位置を計算する（ブロック６２）。ターゲット位置は、指定の回転に基づいて計算される。例えば、指定の回転が９０°である場合には、ソース画像のタイルから読み取られる各行は、回転画像の対応タイルの列をターゲットとする。ソース画像のタイルの最も上の行は、回転画像の対応タイルの最も右の列をターゲットとし、ソース画像のタイルの最も上から２番目の行は、回転画像のタイルの最も右から２番目の列をターゲットとする。
【００５５】
次いで、計算されたターゲット位置をテーブルに記憶する（ブロック６４）。一実施形態において、計算されたターゲット位置をテーブルに記憶するのと同時に、フェッチ要求を発行する。ソース画像からピクセルが受け取られると、それに対応するターゲット位置をテーブルにおいてルックアップする（ブロック６６）。テーブルは、発行されたフェッチ要求に対してエントリを記憶し、そしてエントリは、要求のトランザクションＩＤに基づいて識別される。次いで、受け取ったピクセルを、タイルバッファにおいて、計算されたターゲット位置に記憶する（ブロック６８）。これらのステップは、ソース画像の全てのタイルの全てのピクセルがフェッチされて、指定の回転に基づくタイルバッファの適当な位置に記憶されるまで、繰り返される。タイルバッファは、後続段により読み取られるか又はメモリに記憶され、ソース画像内の後続タイルからピクセルを記憶するために各タイルバッファを再使用できるようにする。
【００５６】
図１０には、画像のインライン回転を遂行する方法の一実施形態が示されている。説明上、この実施形態におけるステップは、順次に示されている。以下に述べる方法の種々の実施形態において、ここに述べる要素の１つ以上は、同時に遂行されてもよいし、図示された順序とは異なる順序で遂行されてもよいし、又は完全に除去されてもよいことに注意されたい。又、必要に応じて、他の付加的な要素が遂行されてもよい。
【００５７】
一実施形態において、ソース画像を複数のタイルに区画化する（ブロック７０）。ソース画像の区画化は、実行される指定回転に基づく。区画化は、ソース画像のコンテンツを変化させるか或いはソース画像がメモリ装置に記憶される場所を変化させる実際の物理的区画化ではない。区画化は、ソース画像をタイルの論理的配列へとバーチャルに区画化するものである。ソース画像の第１のタイルからのピクセルを読み取る（ブロック７２）。一実施形態において、ソース画像の第１のタイルは、指定の回転に基づいてソース画像の複数のタイルから選択される。回転画像の最も左上のタイルをターゲットとするソース画像のタイルは、ソース画像から選択される第１のタイルである。次いで、タイルバッファ内のターゲット位置にピクセルを記憶する（ブロック７４）。ターゲット位置は、実行される指定回転に基づいて計算される。
【００５８】
次いで、グラフィックパイプラインの後続段によりタイルバッファが読み取られたことを検出するのに応答して（条件ブロック７６）、ソース画像の後続タイルからピクセルを読み取る（ブロック８０）。次いで、ソース画像の後続タイルからのピクセルをタイルバッファに記憶する（ブロック８２）。グラフィックパイプラインの後続段によりタイルバッファが読み取られない場合には（条件ブロック７６）、回転ユニットが、１つ以上のクロックサイクル中、停止となる（ブロック７８）。１つ以上のクロックサイクル中の停止の後に、回転ユニットは、タイルバッファがグラフィックパイプラインの後続段によって読み取られたかどうか再び決定する（条件ブロック７６）。一実施形態において、グラフィックパイプラインの後続段は、回転画像を垂直及び水平にスケーリングするためのスケーラーユニットである。
【００５９】
第１タイル及び後続タイルの順序は、指定の回転に基づき選択される。例えば、ソース画像から選択される第１のタイルは、回転画像の最も左上のタイルとして終了するタイルである。次いで、ソース画像から選択される第２タイルは、回転画像の最も左上のタイルの下で終了するタイルである。このプロセスは、回転画像のタイルの最も左側の列として終了するタイルについて続けられ、次いで、その右側の次の列が処理され、等々となる。最も最近処理されたタイルがソース画像の最後のタイルである場合には（条件ブロック８４）、この方法が終了となる。ソース画像の最後のタイルは、回転画像の最も右下のタイルをターゲットとしている。手前のタイルが最後のタイルでない場合には、この方法は、条件ブロック７６へ戻る。
【００６０】
他の実施形態では、個々のタイルが回転画像内のその位置に基づいて読み取られる順序は変化してもよい。例えば、別の実施形態では、回転画像内に位置されるときの最も右上のタイルは、最初に処理されるタイルであり、そしてタイルは、回転画像の最も右側の列を下に進むように処理される。次いで、タイルの列は、右から左への順序で処理される。タイルが回転画像内のその位置に基づいてタイルバッファに書き込まれる順序の変更も考えられ、意図される。ある実施形態では、複数のタイルバッファを使用して、回転画像の複数のタイルを同時に記憶する。１つ以上のタイルバッファが後続段により読み取られ、或いはディスプレイユニット又は記憶位置へ搬送されるときには、各タイルバッファは、ピクセルの別のタイルからのピクセルで埋められる。
【００６１】
図１１は、システム９０の一実施形態のブロック図である。図示されたように、システム９０は、デスクトップコンピュータ１００、ラップトップコンピュータ１１０、タブレットコンピュータ１２０、セルラーホン１３０、等のチップ、回路、コンポーネント、等を表わす。ここに示す実施形態では、システム９０は、外部メモリ９２に結合された集積回路９８の少なくとも１つのインスタンスを含む。集積回路９８は、回転ユニット１０（図１）の１つ以上のインスタンスを含む。ある実施形態において、集積回路９８は、１つ以上のプロセッサ及び１つ以上のグラフィック処理パイプラインを伴うＳｏＣである。
【００６２】
集積回路９８は、１つ以上の周辺装置９４及び外部メモリ９２に結合される。電源９６も設けられ、集積回路９８に供給電圧を供給すると共に、メモリ９２及び／又は周辺装置９４に１つ以上の供給電圧を供給する。種々の実施形態において、電源９６は、バッテリ（例えば、スマートホン、ラップトップ又はタブレットコンピュータの充電型バッテリ）を表わす。ある実施形態では、２つ以上の集積回路９８が含まれる（且つ２つ以上の外部メモリ９２も含まれる）。
【００６３】
メモリ９２は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、倍データレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３、等）ＳＤＲＡＭ（ｍＤＤＲ３等のＳＤＲＡＭの移動バージョン、及び／又はＬＰＤＤＲ２等のＳＤＲＡＭの低電力バージョンを含む）、ＲＡＭＢＵＳ  ＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、等の任意の形式のメモリである。１つ以上のメモリ装置が回路板に結合されて、シングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）、等のメモリモジュールを形成する。或いは又、装置は、集積回路９８と共に、チップオンチップ構成、パッケージオンパッケージ構成、又はマルチチップモジュール構成でマウントされてもよい。
【００６４】
周辺装置９４は、システム９０の形式に基づいて望ましい回路を含む。例えば、一実施形態では、周辺装置９４は、ｗｉｆｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、セルラー、グローバルポジショニングシステム、等の、種々の形式のワイヤレス通信のための装置を含む。又、周辺装置９４は、ＲＡＭ記憶装置、ソリッドステート記憶装置、又はディスク記憶装置を含む付加的な記憶装置も含む。又、周辺装置９４は、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又は他の入力装置、マイクロホン、スピーカ、等のユーザインターフェイス装置を含む。
【００６５】
図１２には、回転ユニット１０（図１）に含まれる回路を表わす１つ以上のデータ構造体を含むコンピュータ読み取り可能な媒体１４０のブロック図の一実施形態が示されている。一般的に述べると、コンピュータ読み取り可能な媒体１４０は、磁気又は光学的媒体のような非一時的記憶媒体、例えば、ディスク、ＣＤ−ＲＯＭ、又はＤＶＤ−ＲＯＭ、揮発性又は不揮発性メモリ媒体、例えば、ＲＡＭ（例えば、ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭ、等）、ＲＯＭ、等、並びにネットワーク及び／又はワイヤレスリンクのような通信媒体を経て搬送される電気、電磁又はデジタル信号のような送信媒体又は信号を経てアクセスできる媒体を含む。
【００６６】
一般的に、コンピュータ読み取り可能な媒体１４０における回路のデータ構造（１つ又は複数）は、プログラムにより読み取られ、そして回路より成るハードウェアを製造するために直接的又は間接的に使用される。例えば、データ構造は、ベリログ又はＶＨＤＬのような高レベルデザイン言語（ＨＤＬ）でのハードウェア機能の１つ以上の振舞いレベル記述又はレジスタ転送レベル（ＲＴＬ）記述を含む。これら記述は、合成ライブラリからのゲートのリストより成る１つ以上のネットリストを発生するために記述を合成する合成ツールによって読み取られる。ネットリストは、回路より成るハードウェアの機能も表わすゲートのセットを含む。次いで、ネットリストは、マスクに適用される幾何学的形状を記述する１つ以上のデータセットを発生するように配置され、ルーティングされる。次いで、マスクは、種々の半導体製造ステップにおいて、その回路に対応する半導体回路（１つ又は複数）を製造するのに使用される。或いは又、コンピュータ読み取り可能な媒体１４０におけるデータ構造は、必要に応じて、ネットリスト（合成ライブラリを伴うもの又は伴わないもの）でもデータセットでもよい。更に別の形態では、データ構造は、図式的プログラムの出力、或いはそこから導出されたネットリスト又はデータセットを含む。
【００６７】
コンピュータ読み取り可能な媒体１４０は回転ユニット１０の表現を含むが、他の実施形態では、回転ユニット１０の任意の部分又は部分の組み合わせの表現（例えば、フェッチユニット１２、タイルバッファ２４−３０、ルックアップテーブル１８）が含まれてもよい。
【００６８】
前記実施形態は、具現化の非限定例であることを強調しておく。当業者であれば、前記開示が充分に理解されれば、多数の変更や修正が明らかとなろう。そのような変更や修正は、全て、特許請求の範囲に包含されることが意図される。
【符号の説明】
【００６９】
１０：回転ユニット
１２：フェッチユニット
１４：メモリ管理ユニット（ＭＭＵ）
１５：ソース画像
１６：メモリ
１８：ルックアップテーブル
２０：ビット拡張ユニット
２２：スウィズルユニット
２４−３０：タイルバッファ
３２：スケーラー
５０、５２：ソース画像
５４：回転画像
９０：システム
９２：外部メモリ
９４：周辺装置
９６：電源
９８：集積回路
１４０：コンピュータ読み取り可能な媒体
【図１】
0005632891.tif 000002
【図２】
0005632891.tif 000003
【図３】
0005632891.tif 000004
【図４】
0005632891.tif 000005
【図５】
0005632891.tif 000006
【図６】
0005632891.tif 000007
【図７】
0005632891.tif 000008
【図８】
0005632891.tif 000009
【図９】
0005632891.tif 000010
【図１０】
0005632891.tif 000011
【図１１】
0005632891.tif 000012
【図１２】
0005632891.tif 000013