(57)【特許請求の範囲】
【請求項１】
複数の垂直方向スケーラであって、前記複数の垂直方向スケーラには画素が並列して供給され、前記画素は単一の原画像に対応し、各垂直方向スケーラが前記画素から垂直方向のスケーリングのために複数の画素を選択し、垂直方向にスケーリングされた１つの画素を生成するように構成された、複数の垂直方向スケーラと、
複数の水平方向スケーラであって、各水平方向スケーラがそれぞれの垂直方向スケーラの出力に連結され、前記それぞれの垂直方向スケーラから受け取った前記単一の原画像に対応する画素の水平方向スケーリングを実行するように構成された、複数の水平方向スケーラとを、備え、
前記画素は前記原画像の単一の列の中に位置し、前記単一の列が前記原画像の１つ以上のタイルに跨っており、
各垂直方向スケーラが、原画像をスケーリングするためにデジタル微分解析機（ＤＤＡ）値及びＤＤＡステップサイズを用いるように更に構成される、装置。
【請求項２】
前記複数の水平方向スケーラの各水平方向スケーラがそれぞれの垂直方向スケーラから受け取った、垂直方向にスケーリングされた画素を格納するためのシフトレジスタのチェインを含む、請求項１に記載の装置。
【請求項３】
フェッチユニットを更に備え、前記フェッチユニットが、
各タイルバッファが原画像の所与のタイルを格納する１つ以上のタイルバッファから画素列を取り込み、
前記画素列を前記複数の垂直方向スケーラに送る、ように構成された、請求項１に記載の装置。
【請求項４】
前記原画像の前記１つ以上のタイルが１つ以上のタイルバッファ内に格納される、請求項１に記載の装置。
【請求項５】
前記複数の垂直方向スケーラが画素の各列の異なる垂直部分を処理するように垂直列内に配置され、各垂直方向スケーラは隣接する垂直方向スケーラから単一のＤＤＡステップ離れて配置されている、請求項１に記載の装置。
【請求項６】
回転ユニットを更に備え、原画像が、前記複数の垂直方向スケーラに送られる前に前記回転ユニットによって回転される、請求項１に記載の装置。
【請求項７】
前記複数の垂直方向スケーラ及び前記複数の水平方向スケーラのそれぞれが、画素をスケーリングするためのマルチタップ・ポリフェーズフィルタを含み、前記マルチタップ・ポリフェーズフィルタの各タップが係数テーブルを含み、前記係数テーブルが複数のプログラマブルレジスタを含む、請求項１に記載の装置。
【請求項８】
単一の原画像から複数の画素を受け取る手順と、
複数の垂直方向スケーラ及び複数の水平方向スケーラを用いて垂直方向及び水平方向にスケーリングされた画素を生成する手順と、を含み、
垂直方向及び水平方向にスケーリングされた画素を生成する手順が、
前記複数の垂直方向スケーラを用いて画素列を垂直方向にスケーリングする手順と、
前記垂直方向にスケーリングされた画素を前記複数の水平方向スケーラに送る手順と、 前記垂直方向にスケーリングされた画素を前記複数の水平方向スケーラを用いて水平方向にスケーリングする手順と、を含み、 
前記画素列を垂直方向にスケーリングする手順の前に、前記複数の垂直方向スケーラの各垂直方向スケーラが、ダイレクト微分解析機（ＤＤＡ）値とＤＤＡステップサイズに基づき前記複数の受け取った画素から画素を選択する手順を更に含む、方法。
【請求項９】
１つ以上のタイルバッファから単一の原画像に対応する複数の画素を取り込む手順と、
複数の垂直方向スケーラを用いて、前記複数の取り込んだ画素を垂直方向にスケーリングする手順と、
各クロックサイクルの間に１つ以上の垂直にスケーリングされた画素を各垂直方向スケーラからそれぞれの水平方向スケーラに送る手順と、
複数の水平方向スケーラを用いて複数の垂直方向にスケーリングされた画素を水平方向にスケーリングする手順と、を含み、
各垂直方向スケーラ及び各水平方向スケーラがマルチタップ・ポリフェーズフィルタを含む、方法。
【請求項１０】
前記複数の取り込まれた画素が前記原画像の単一の列に位置している、請求項９に記載の方法。
【請求項１１】
前記複数の垂直方向スケーラが前記複数の取り込まれた画素を同時にスケーリングするように構成されている、請求項９に記載の方法。
【請求項１２】
前記複数の水平方向スケーラの各水平方向スケーラが、チェイン状に接続した複数のシフトレジスタを有し、前記チェインが前記マルチタップ・ポリフェーズフィルタの各タップに対応するシフトレジスタを含む、請求項９に記載の方法。
【請求項１３】
複数の垂直方向スケーラであって、前記複数の垂直方向スケーラには画素が並列して供給され、各垂直方向スケーラが前記画素から垂直方向のスケーリングのために複数の画素を選択し、垂直方向にスケーリングされた１つの画素を生成するように構成された、複数の垂直方向スケーラと、
複数の水平方向スケーラであって、各水平方向スケーラがそれぞれの垂直方向スケーラの出力に連結され、前記それぞれの垂直方向スケーラから受け取った画素の水平方向スケーリングを実行するように構成された、複数の水平方向スケーラと、
回転ユニットであって、原画像が、前記複数の垂直方向スケーラに送られる前に前記回転ユニットによって回転される、回転ユニットと、を備える、装置。
【請求項１４】
複数の垂直方向スケーラであって、前記複数の垂直方向スケーラには画素が並列して供給され、各垂直方向スケーラが前記画素から垂直方向のスケーリングのために複数の画素を選択し、垂直方向にスケーリングされた１つの画素を生成するように構成された、複数の垂直方向スケーラと、
複数の水平方向スケーラであって、各水平方向スケーラがそれぞれの垂直方向スケーラの出力に連結され、前記それぞれの垂直方向スケーラから受け取った画素の水平方向スケーリングを実行するように構成された、複数の水平方向スケーラと、を備え、
前記複数の垂直方向スケーラ及び前記複数の水平方向スケーラのそれぞれが、画素をスケーリングするためのマルチタップ・ポリフェーズフィルタを含み、前記マルチタップ・ポリフェーズフィルタの各タップが係数テーブルを含み、前記係数テーブルが複数のプログラマブルレジスタを含む、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全体として、図形情報処理に関し、特に、画像のスケーリング方法とスケーリングメカニズムに関する。
【背景技術】
【０００２】
図形処理機能を有する電子装置は、近年、次第に普及してきた。特にこれらの装置は、平均的消費者にとって益々手頃になりつつある。これらの電子装置では、スケーラユニットなどの多くの様々な構成要素及び機能ユニットを利用して図形処理が実行されている。スケーラユニット、又はスケーラは、通常、画像や映像フレームのサイズをスケーリングするために使用されている。例えば、１つの特定のシナリオにおいて、原画像が、元のフォーマットサイズが８００×６００画素であって、特定のディスプレイタイプに合わせるために１０２４×７６８画素に拡大しなければならない場合がある。典型的には、スケーラはクロック当たり１画素について逐次的に動作し、スケーリングには、多くの場合、各画素に必要なデータの取り込み及び再取り込みを伴う。この種のスケーリングは非効率であり、図形処理システムのメモリに過大な負荷を与える。
【発明の概要】
【０００３】
一実施形態において、図形処理システムは、スケーラユニットを含むコンテンプレートであって、スケーラユニットは、複数の垂直方向スケーラ及び水平方向スケーラを含み得る。図形処理システムは、複数のステージのパイプラインを含むことができ、各ステージにおいて様々なタイプの処理が原画像に対して実行され得る。原画像は、スケーラユニットに送られる前に１つ以上のパイプラインステージによって処理又は操作（例えば、回転）され得る。一実施形態において、垂直方向スケーラはスケーラユニットのフロントエンドに位置し得る。垂直方向スケーラは、原画像の画素を回転ユニットから取り込む、又は受け取ることができる。回転ユニットは、図形処理パイプラインにおけるスケーラユニットに先行するステージであり得る。
【０００４】
一実施形態において、スケーラユニットは、４つの垂直方向スケーラを含み得、これら４つの垂直方向スケーラのそれぞれは、画素を垂直方向にスケーリングするように構成し得る。各垂直方向スケーラは、垂直方向のスケーリングを実行するためのマルチタップ・ポリフェーズフィルタを含み得る。各垂直方向スケーラは、マルチタップ・ポリフェーズフィルタの各タップに対応するマルチプレクサを含み得、マルチプレクサは、垂直方向スケーラに供給された画素列から適切な画素を選択するように構成され得る。
【０００５】
各垂直方向スケーラの出力は、対応する水平方向スケーラに送られ得る。水平方向スケーラは、垂直方向スケーラから受け取った画素の水平方向のスケーリングを実行するように構成し得る。一実施形態において、スケーラユニットにおける各垂直方向スケーラに対して１つの水平方向スケーラがあり得る。各水平方向スケーラは、マルチタップ・ポリフェーズフィルタ、及びマルチタップ・ポリフェーズフィルタのタップに連結されたシフトレジスタのチェインを含み得る。対応する垂直方向スケーラから出力された、垂直方向に拡散縮小された各画素は、水平方向スケーラ内のシフトレジスタのチェインを通してシフトされ得る。
【０００６】
一実施形態において、原画像は複数のタイルに分割し得る。スケーラユニットは、原画像をタイル単位で処理するように構成し得る。１つ以上のタイルに跨がる画素列が、画像の左上のタイルの左端列から始めて垂直方向スケーラによって取り込まれ得る。次に、タイルの左端の列が取り込まれた後で、次に右隣りの列が取り込まれ得る。以降、タイルの右端に到達するまで続く。次に、左上タイルの下にあるタイルが処理され、画像内の左端のタイルの列の下端までこのパターンが継続し得る。次に、右隣りのタイルの列が処理され、画像の全てのタイルの列が処理されるまでこの処理が継続し得る。
【０００７】
これら及び他の特徴及び利点は、本明細書に記載されている方法の以下の詳細な説明を考慮して当業者には明らかになるであろう。
【０００８】
本方法とメカニズムの上記の特徴及び利点は、以下の添付図面と関連させて以降の説明を参照することによってより理解され得よう。
【図面の簡単な説明】
【０００９】
【図１】図形処理パイプラインの一実施形態を示すブロック図である。
【図２】１つ以上の実施形態に係る複数のタイルに分割された原画像である。
【図３】１つ以上の実施形態に係る垂直方向スケーラのフロントエンドのブロック図である。
【図４】１つ以上の実施形態に係る垂直方向マルチタップ・ポリフェーズフィルタを示すブロック図である。
【図５】水平方向マルチタップ・ポリフェーズフィルタの一実施形態のブロック図である。
【図６】作業中タイル集合の一実施形態のブロック図である。
【図７】垂直方向スケーラユニットに供給された画素列の一実施形態のブロック図である。
【図８】最初の水平方向パスにおける垂直方向スケーラによる画素の選択の一実施形態のブロック図である。
【図９】第２の水平方向パスにおける垂直方向スケーラによる画素の選択の一実施形態のブロック図である。
【図１０】垂直方向スケーラと水平方向スケーラとの間の接続の一実施形態のブロック図である。
【図１１】原画像をスケーリングするための方法の一実施形態を示す概略フローダイアグラムである。
【図１２】画素をスケーリングするための方法の一実施形態を示す概略フローダイアグラムである。
【図１３】システムの一実施形態のブロック図である。
【図１４】コンピュータ可読媒体の一実施形態のブロック図である。
【発明を実施するための形態】
【００１０】
以下の説明では、本明細書で提供されている方法及びメカニズムの完全な理解を提供するために、数多くの具体的な詳細が記載されている。しかし、当業者には、このような具体的な詳細がなくても、様々な実施形態を実行し得ることが認識されよう。いくつかの例においては、本明細書で記載されている方法を不明瞭にすることを避けるために公知の構造体、構成要素、信号、コンピュータプログラム命令、及び技術は詳細に示されていない。説明を簡略化及び明確化するために、図に示されている要素は必ずしも一定の比率で縮小して作図されていないことが理解されるであろう。例えば、一部の要素の寸法は、他の要素に対して誇張されている場合がある。
【００１１】
本明細書は、「一実施形態」という言及を含む。いろいろな文脈で現れる「一実施形態」というフレーズは、必ずしも同じ実施形態を意味しない。特定の特徴、構造、又は特性は、本開示と矛盾しない任意の好適な方法で組み合わせ得る。更に、本願全体を通じて用いられている「し得る」という語句は、強制的な意味（つまり、「しなければいけない」を意味する）よりむしろ、許容的な意味（つまり、「可能性を有する」を意味する）で用いられている。同様に「有する」、「含む」という語句は、含むことを意味するがそれに限定されない。
【００１２】
用語。以下のパラグラフでは、本開示（特許請求の範囲を含む）に記載されている用語の定義及び／又は文脈を提供する。
【００１３】
「備える」、「含む」。この用語は、オープン・エンドである。添付の特許請求の範囲で用いられたとき、この用語は、追加の構造体や手順を排除しない。次のような表現の請求項を考察すると、「複数の垂直方向スケーラを備える装置．．．．」。このような請求項は、その装置が追加の構成要素（例えば、プロセッサ、キャッシュ、メモリコントローラ）を含むことを排除しない。
【００１４】
「構成されている」。様々なユニット、回路、又は構成要素は、１つまたは複数のタスクを実行するように「構成されている」と記載または特許請求される場合がある。このような文脈において、「構成されている」は、ユニット／回路／構成要素が、動作中に１つまたは複数のタスクを実行する構造体（例えば、回路）を含むことを示すことによって構造体を暗示する時に使用される。然るが故に、ユニット／回路／構成要素は、特定のユニット／回路／構成要素が現在動作可能でない（つまり、オンの状態ではない）時でも、タスクを実行するように構成されていると言える。「構成されている」という言葉と共に用いられるユニット／回路／構成要素はハードウェア、例えば、回路、動作を実行できるプログラム命令を格納するメモリ、等を含む。ユニット／回路／構成要素が１つまたは複数のタスクを実行するように「構成されている」と記載するのは、そのユニット／回路／構成要素について、米国特許法第１１２条第６段落を発動しないように明示的に意図している。更に、「構成されている」は、問題のタスクを実行し得る方法で動作するソフトウェア及び／又はファームウェア（例えば、ＦＰＧＡ又はソフトウェアを実行する汎用プロセッサ）によって操作される一般的な構造体（例えば、一般的な回路）を含み得る。「構成されている」は、１つ以上のタスクを実施又は実行するのに適した装置（例えば、集積回路）を組み立てるように製造工程（例えば、半導体組み立て設備）を構成することも含み得る。
【００１５】
「基づく」。本明細書で用いられているとき、この用語は、判定に影響を及ぼす１つ以上の要因を言い表す時に使用される。この用語は、判定に影響を及ぼし得る追加の要因を排除しない。即ち、判定はこれらの要因だけに基づくか、又は、少なくとも部分的にこれらの要因に基づき得る。「Ｂに基づきＡを判定する」というフレーズを検討してみる。ＢはＡの判定に影響を及ぼす要因であるが、このようなフレーズはＡの判定がＣにも基づくことを排除しない。他の例では、ＡはＢだけに基づいて判定されることがあり得る。
【００１６】
図１を参照すると、図形処理パイプラインの一実施例を例示するブロック図が示されている。様々な実施形態において、パイプライン１０は、システムオンチップ（ＳｏＣ）、特定用途向け集積回路（ＡＳＩＣ）、装置、プロセッサ、プロセッサコア、又はその他の様々な類似装置に組込み得る。いくつかの実施形態において、パイプライン１０の１つ以上のインスタンスが、１つのＳｏＣ又はその他の装置内に含まれ得る。
【００１７】
原画像３４はメモリ１２内に格納でき、原画像３４は静止画像またはビデオストリームの１フレームであり得る。他の実施形態において、原画像３４は他の場所に格納し得る。原画像３４は、メモリ１２に格納でき、パイプライン１０で処理し得る任意の数の画像、映像または図形データを代表するものである。メモリ１２は、任意の数及びタイプのメモリ装置（例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、キャッシュ）を代表するものである。
【００１８】
原画像３４は、画素と呼ばれる多数の離散的な画像の要素で表され得る。デジタル画像処理において、画像または映像フレーム内の情報の最小単位体は「画素」と呼ぶことができる。画素は一般的に規則的な２次元グリッド内に配列されている。原画像３４内の各画素は、１つ以上の画素成分によって表し得る。画素成分は、画像が表現される色空間内の各色の色値を含み得る。例えば、色空間は、赤−緑−青（ＲＧＢ）色空間であり得る。したがって、各画素は、赤色の成分と、緑色の成分と、青色の成分とで表され得る。一実施形態において、色成分の数値は、ゼロから２N-1の範囲であり得、この場合、「Ｎ」は、数値を表すのに使用しているビット数である。各色成分の数値は、その画素における対応する色の輝度又は強度を表し得る。ルミナンス及びクロミナンス表現（ＹＣｒＣｂ）などの他の色空間も使用し得る。更に、追加の画素成分を含めることができる。例えば、ＲＧＢ成分とともに混色のためのアルファ値を含めてＡＲＧＢ色空間を形成し得る。各画素を格納するために用いるビット数は利用する特定のフォーマットに依存し得る。例えば、一部のシステムにおける画素は８ビットを必要とし、他のシステムにおける画素は１０ビットを必要とするなど、画素当たり様々な数のビットが様々なシステムで用いられている。
【００１９】
パイプライン１０は、画素当たり４個までの色成分を処理するために４個の別々のチャネル１４〜２０を含み得る。各チャネルは、回転ユニット、１組のタイルバッファ、１組の垂直方向スケーラ、及び１組の水平方向スケーラを含む。一実施形態において、チャネル１４はアルファチャネルを処理し得る。他の実施形態において、チャネル１４は利用されない場合があり、その代わりに、３つの色成分に対応する３つのチャネル１６〜２０だけが利用されることがある。リードダイレクトメモリアクセス（ＲＤＭＡ）ユニット２２は、図形データ（例えば、原画像３４）をメモリ１２から読み込むように構成し得る。ＲＤＭＡユニット２２は、４個の回転ユニット、４個のタイルバッファ、及びＤＭＡバッファ（非表示）を含み得る。４個のタイルバッファは、原画像３４の回転済みタイルを格納するために使用し得る。
【００２０】
原画像の各色成分に対して複数の垂直方向スケーラ及び水平方向スケーラがあり得る。各組の垂直方向スケーラは対応するタイルバッファの組から画素列を取り込むことができる。別の実施形態において、画素はタイルバッファから垂直方向スケーラに送られ得る。チャネル毎の垂直方向スケーラの各組には、任意の数の垂直方向スケーラを含むことができる。一実施形態において、各色成分チャンネルについてパイプライン１０の中に４個の別々の垂直方向スケーラがあり得る。他の実施形態において、他の数の垂直方向スケーラを色成分チャネル毎に用いることができる。
【００２１】
原画像３４は、複数のタイルに分割でき、回転ユニットによってタイル単位で処理し得る。回転されたタイルは、各色成分チャネルにおけるタイルバッファの１つに格納し得る。一実施形態において、チャネル当たり４個のタイルバッファがあり得るが、別の実施形態においては、他の数のタイルバッファを使用し得る。一実施形態において、垂直方向スケーラは、画素列を対応するタイルバッファから取り込むことができる。画素列は、原画像の１つ以上のタイルに広がり得る。
【００２２】
画素列は、垂直方向スケーラのフロントエンドにあるマルチプレクサに送られ得る。各垂直方向スケーラは、１つのマルチプレクサが垂直方向スケーラのマルチタップ・ポリフェーズフィルタの各タップ用として、複数のマルチプレクサを含み得る。各マルチプレクサは、実行するスケーリングのタイプに基づいて判定される適切な画素を画素列から選択し得る。１組の垂直方向スケーラの各垂直方向スケーラは、１つ以上の画素を処理し、単一の垂直方向にスケーリングされた画素を出力するように構成し得る。
【００２３】
原画像３４が処理される時、垂直方向スケーラは、デジタル微分解析機（ＤＤＡ）を用いて原画像における現在の位置を把握するように構成され得る。ＤＤＡは、初期位置と、ＤＤＡが原画像の中を各ステップの間にいくつ原画像３４の画素又は部分画素を移動するするかを決定するステップを含み得る。「部分画素」という用語は、ステップサイズが単一の画素より小さい時、又は、ステップサイズが小数点以下に小数部分を有するためＤＤＡが画素間に陥る場合に画素の一部を意味する。１より小さいステップがアップスケーリングに相当し、１より大きいステップがダウンスケーリングに相当する、というように、ステップサイズはスケーリングの倍率を制御する。
【００２４】
原画像３４は複数のタイルに分割でき、一実施形態において、この複数のタイルは１６画素行×１２８画素列であり得る。しかし、タイルサイズは他の実施形態において異なる場合がある。原画像３４の幅は、複数のタイルを用いて原画像３４の各行を構成できるように、タイルの幅より大きい場合がある。また、原画像３４の長さは、複数のタイルを用いて原画像３４の各列を構成できるように、タイルの長さより大きい場合がある。
【００２５】
各組の垂直方向スケーラは、原画像３４の左上のタイルから始めて、原画像３４のタイルを１回に１個ずつ処理し得る。一実施形態において、垂直方向スケーラは、単一のクロックサイクルにおいて、原画像３４の単一の列から画素を取り込むことができる。垂直方向スケーラは、単一の列から必要な数の画素を取り込むために必要な回数の取り込みを実行し得る。この必要な数の画素は、垂直方向スケーラの数と、各垂直方向スケーラのマルチタップ・ポリフェーズフィルタ内のタップの数と、実行されるスケーリングのタイプと、に基づき得る。いくつかの実施形態において、この必要な数の画素は、原画像３４の１つより多くのタイルに跨る場合がある。
【００２６】
タイルの列からすべての画素をスケーリングした後、垂直方向スケーラはタイル内を右に１列移動し、この列から画素を取り込むことができる。垂直方向スケーラは、タイルの右端に到達するまで右に向かって移動し続けることができる。次に、垂直方向スケーラはタイルの下の方の行に移動し、タイル全体を取り込むまでこのプロセスを続行することができる。いくつかの場合、最初のパスで処理される画素数が、タイルの１列の画素数と等しいか大きい場合、そのタイルについて単一のパスしか必要としない場合がある。１つのタイルを垂直方向にスケーリングした後、垂直方向スケーラは、直前に完了したタイルが原画像の底部タイルでない場合、直前に完了したタイルの真下にあるタイルに移動する。その場合、原画像から１つのタイル列全部を取り込み、垂直方向にスケーリングした後で、垂直方向スケーラは右隣のタイル列に移動し、原画像全体からすべての画素が取り込まれ、垂直方向にスケーリングされるまでこのパターンを続ける。
【００２７】
各垂直方向スケーラは、各クロックサイクルで垂直方向にスケーリングされた画素を生成し、その画素を対応する水平方向スケーラに送るように構成され得る。一実施形態において、各色成分チャネルについてパイプライン内に４個の別々の水平方向スケーラがあり得、他の実施形態においては、色成分チャネル毎に他の数の水平方向スケーラが用いられる場合がある。様々な実施形態において、パイプライン１０の各色成分チャネル内に各垂直方向スケーラに対応する水平方向スケーラがあり得る。
【００２８】
各水平方向スケーラは、垂直方向にスケーリングされた画素を対応する垂直方向スケーラから受け取ることができ、この垂直方向にスケーリングされた画素は、シフトレジスタのチェインの入力に連結され得る。水平方向スケーラのマルチタップ・ポリフェーズフィルタの各タップにシフトレジスタがあり得る。水平方向スケーラは、受け取った画素から水平方向にスケーリングされた画素を生成し得る。
【００２９】
各色成分チャネルにおいて、水平方向スケーラは垂直方向及び水平方向にスケーリングされた画素を正規化ユニット２４に出力し得る。一実施形態において、正規化ユニット２４は、受け取った画素値を０．０〜１．０の範囲に変換するように構成し得る。例えば、一実施形態において、水平方向スケーラから出力された１０ビット画素値は０〜１０２３の数値を取り得る。このような実施形態において、正規化ユニット２４は水平方向スケーラから受け取った数値を１０２３で割って数値の範囲を変更し得る。他の実施形態において、正規化ユニット２４は、画素値を表すために用いられるビット数に応じて他の数値で割り得る。また、正規化ユニット２４は、１つ以上の画素値から任意のオフセットを除去するように構成し得る。図１に示すように、チャネル１４の水平方向スケーラはディザユニット３２に連結されている。一実施形態において、チャネル１４はアルファチャネルを処理し、チャネル１４内の水平方向スケーラの出力はディザユニット３２に送られ得る。
【００３０】
正規化ユニット２４は、正規化された画素値を色空間変換（ＣＳＣ）ユニット２６に送り得る。ＣＳＣユニット２６は、２つの異なる色空間の間で変換するように構成し得る。例えば、一実施形態において、原画像３４において画素値はＲＧＢ色空間によって表すことができる。この実施形態において、パイプライン１０の出力は、ＹＣｂＣｒ色空間にある必要があり、ＣＳＣユニット２６は、画素をＲＧＢ色空間からＹＣｂＣｒ色空間に変換し得る。他の実施形態において、様々な他の色空間を利用でき、ＣＳＣユニット２６は、画素をこれらの様々な色空間の間で変換するように構成し得る。
【００３１】
一実施形態において、ＣＳＣユニット２６は、画素をクロマ・ダウンサンプリングユニット２８に送り得る。クロマ・ダウンサンプリングユニット２８は、実施するダウンサンプリングのタイプ（例えば、４：２：２、４：２：０）に基づいて画素の彩度成分をダウンサンプリングするように構成し得る。例えば、一実施形態において、変換先画像が４：２：０構造を用いると指定されている場合、クロマ・ダウンサンプリングユニット２８は、原画像の彩度画素成分の垂直方向及び水平方向のダウンサンプリングを実行し得る。いくつかの実施例において、彩度画素成分のダウンサンプリングがない場合、クロマダウンサンプリングユニット２８はパススルーユニットであり得る。
【００３２】
クロマダウンサンプリングユニット２８は、再フォーマットユニット３０に連結し得る。再フォーマットユニット３０は、正規化ユニット２４によって実行された正規化を反転するように構成し得る。したがって、画素値は、画素が正規化ユニット２４によって正規化される前に用いられていた以前の数値範囲に戻すことができる。画素は、再フォーマット化された後でディザユニット３２を通過でき、ディザユニット３２は、雑音を挿入して量子化誤差をランダム化し得る。ディザユニット３２からの出力は、処理された変換先画像であり得る。様々な実施形態において、この処理された変換先画像は、フレームバッファ、メモリ１２、ディスプレイコントローラ、ディスプレイ、又は別の場所に書き込み得る。他の実施形態において、図形処理パイプライン１０は、他のステージまたはユニットを含むことがあり、及び／又は図１に示すユニットの一部は異なる順序で配置され得る。パイプライン１０は、図形処理パイプラインの一実施例であり、本明細書に記載の方法及びメカニズムは、異なるタイプの別の図形処理パイプラインとともに使用し得る。
【００３３】
他の実施形態は、図１に示す構成要素の部分集合又は上位集合、及び／又は他の構成要素を含む、構成要素の他の組み合わせを含み得ることに留意願いたい。特定の構成要素の１つのインスタンスが図１で示されているが、他の実施形態では特定の構成要素の２つまたはそれ以上のインスタンスを含み得る。同様に、本明細書の全体にわたって、１つのインスタンスしか示されていない場合であっても、特定の構成要素の２つまたはそれ以上のインスタンスを含むことがあり、及び／又は、複数のインスタンスが示されていても、１つのインスタンスしか含まない実施形態が用いられることがある。
【００３４】
次に、図２を参照すると、複数のタイルに分割された原画像の一実施形態のブロック図が示されている。一実施形態において、原画像３４は水平方向にＭ個のタイルに、及び垂直方向にＮ個のタイルに分割し得る。第１列のタイルは、（０，０）、（０，１）など、（０，Ｎ−１）まで番号が付けられている。第１行のタイルは、（０，０）、（１，０）など、（Ｍ−１，０）まで番号が付けられている。
【００３５】
個々のタイルのサイズは、実施形態ごとに変わり得る。例えば、一実施形態において、個々のタイルは、各行が１２８画素を含むように、１６行×１２８列であり得る。別の実施形態において、画像のタイル行は、タイルの左側と右側の隣接するタイルから追加の７個の画素を取り込むことによって１４２画素まで拡大し得る。原画像３４の左端では、左端の画素が７回反復され、原画像３４の右端では、右端の画素が７回反復され得る。タイルの左右端の隣接するタイルから画素を取り込むこと（又は、端部画素の反復）によって、タイルの端の画素が水平方向にスケーリングされる時に、タイルの左端に対して左側に７個の追加画素が、及びタイルの右端に対して右側に７個の追加画素があるようにして、各水平方向スケーラ内の１５タップのポリフェーズフィルタを容易にするために実施し得る。これによって、１５タップのポリフェーズフィルタは一貫した方法で端部画素をスケーリングできる。他の実施形態において、水平ポリフェーズフィルタに異なる数のタップを用いる場合は、異なる数の画素をタイルの端部で取り込み又は反復し得る。
【００３６】
一実施形態において、スケーラユニット内のアーキテクチャは複数の垂直方向スケーラから始まり、複数の水平方向スケーラがそれに続き得る。一実施形態において、画素データに対して並列して動作する４個の垂直方向スケーラがあり得る。他の実施形態において、入力画素データに対して並列して動作する他の数の垂直方向スケーラを用い得る。垂直方向スケーラアーキテクチャ／ブロックは、画像の上部左、タイル（０，０）から開始し、タイル（０，Ｎ−１）に到達するまで第１列を下方に移動することによって、タイル上を動作し得る。第１列上を動作した後、垂直方向スケーラは次の列の上部、タイル（１，０）に移動し得る。垂直方向スケーラは第２列のタイルをその列の底部まで縦走して、画像の底部右のタイル（Ｍ−１，Ｎ−１）に到達するまでこのパターンを続け得る。
【００３７】
次に図３を参照すると、垂直方向スケーラのフロントエンドの一実施形態のブロック図が示されている。垂直方向スケーラのフロントエンドは、画素を原画像から取り込むためのフェッチユニット３６を含め得る。一実施形態において、フェッチユニット３６は、図形パイプラインの前のステージで処理された画素を格納し得るタイルバッファから画素を取り込むことができる。別の実施形態において、原画像はメモリに格納でき、フェッチユニット３６は画素をメモリから取り込むことができる。用語「原画像」は、メモリに格納された画像、又は図形処理パイプラインの前のステージ（例えば、回転ユニット）から受け取った画像を意味することができる。付言すれば、用語「原画像」は実際の画像、又はビデオストリームからのフレームを意味することがある。更に、用語「フェッチユニット」及び「フェッチロジック」は、本開示全体を通して互換的に用いられている。
【００３８】
一実施形態において、スケーラユニット全体内の全ての垂直方向スケーラに対して単一のフェッチユニット３６があってもよい。別の実施形態において、各垂直方向スケーラは別々のフェッチユニットを有する場合がある。フェッチユニット３６は１列の画素を取り込み、１列の画素をマルチプレクサ４０Ａ〜Ｅに供給し得る。マルチプレクサ４０Ａ〜Ｅは、垂直方向スケーラ内で用い得る任意の数のマルチプレクサの代表である。一実施形態において、垂直方向スケーラ内のポリフェーズフィルタの各タップにマルチプレクサがあり得る。各マルチプレクサ４０Ａ〜Ｅからの出力は、対応するポリフェーズフィルタのタップに送られ得る。
【００３９】
制御論理３８は、マルチプレクサ４０Ａ〜Ｅに対する選択信号を制御する。制御論理３８は、デジタル微分解析機（ＤＤＡ）を用いて原画像内の現在の画素位置を把握し得る。ＤＤＡは、初期位置、及び作業中タイル集合を通る各パスにおいてＤＤＡが移動する原画像の画素または部分画素の数を決定するステップを有する。一実施形態において、ＤＤＡ値及びステップサイズは、制御論理３８内に位置するレジスタに格納され得る。ステップサイズはスケーリング倍率を制御する。１未満のステップはアップスケーリングになり、１より大きいステップはダウンスケーリングになる。
【００４０】
一実施形態において、初期のＤＤＡ値は４．２０の２の補数形式で２４ビットレジスタから読み取り得る。４．２０形式は、２０ビットの小数部分を伴う４ビットの整数部分として定義され、「．」は、値の整数部分と小数部分を分離する小数点を表す。初期ＤＤＡ値の４．２０形式は、原画像の画素（０，０）を原点として最小又は最大初期ＤＤＡ値−８〜＋７を表し得る。スケーラが原画像の入力画素を順に反復処理するにつれて、ステップ値が現在のＤＤＡ値に追加され、次のＤＤＡ値を生成することができる。一実施形態において、ＤＤＡ値の小数部分のビット１５が「１」の場合に、４ビット係数インデックス（ビット１９：１６）が切り上げられるような、丸め処理が実装され得る。また、ＤＤＡ値の小数部の最上位ビット（１９）が「１」の場合、ＤＤＡ値の４ビット整数部は切り上げ得る。一実施形態において、最大ステップ値は４であり得る。この実施形態において、ステップ値は、３．２０形式の２３ビット符号なし数であり、このステップ値は２の補数計算で用いる４．２０形式にゼロ拡張され得る。他の実施形態において、最大ステップ値は、他の数値であり得る。
【００４１】
別の実施形態において、ＤＤＡ値は、１６．２０形式の３６ビットの２の補数であり得る。他の実施形態において、ＤＤＡ値の他のサイズ及び表現を利用し得る。１６．２０形式を用いてＤＤＡ値を表す場合、１６ビット整数部（丸め処理後）を用いて原画像の画素位置を決定することができる。垂直方向の場合８で除し、水平方向の場合１２８で除するこの数値は、どのタイルが参照されているかを示し得る。２０ビットの小数部分を係数テーブルのインデックスとして用い得る。一実施形態において、１６個の数値が係数テーブルに格納されており、この数値は１６個のフェーズに相当する。この実施形態において、小数部分（丸め処理後）の上部４ビットを用いてタップ当たり１６個の係数から選択し得る。他の実施形態において、他のフェーズ数を係数テーブルに格納でき、他のビット数の小数部分を用いてこれらのフェーズから選択し得る。
【００４２】
垂直方向スケーラの出力は水平方向スケーラの入力となり、水平方向スケーラは１５タップのポリフェーズフィルタを用い得る。水平方向スケーラのタップは、シフトレジスタのように入力され得る。フィルタの説明をすると、一実施形態において、各行の最初の画素をタイルの左側の７個の画素に繰り返し、各行の最後の画素をタイルの右側の７個の画素に繰り返すことによって、タイルは水平方向に拡大され得る。一実施形態において、制御論理３８は原画像の端部に関しては、必要なだけマルチプレクサの出力として端部画素を選択するように構成し得る。
【００４３】
次に図４を参照すると、垂直方向マルチタップ・ポリフェーズフィルタの一実施形態のブロック図が示されている。各垂直方向スケーラは、垂直方向マルチタップ・ポリフェーズフィルタ５０を含み得る。一実施形態において、マルチタップ・ポリフェーズフィルタ５０は５タップの垂直方向スケーラであり、５個のタップのそれぞれは係数テーブルを含むことができる。一実施形態において、各係数テーブルは１６個の項目を含むことができる。画素値は画素変数Ｙを中心として、フィルタ５０に入力される画素値は、Ｙ−２、Ｙ−１、Ｙ、Ｙ＋１、Ｙ＋２を含み得る。各画素には、テーブル５２〜６０の対応する係数テーブルから得た係数を掛け合せることができる。次に、５個の乗算器６２Ａ〜Ｅの出力及び丸め項６４が加算器６６によって加算され、結果がクランプユニット６８によってクランプされ得る。クランプユニット６８の出力は垂直方向にスケーリングされた画素であり、この数値は、対応する水平方向スケーラの入力に送られ得る。一実施形態において、パイプライン化された論理が、乗算器６２Ａ〜Ｅと加算器６６を実装するために用いられ得る。
【００４４】
一実施形態において、垂直方向スケーラの入力画素成分は１０．０符号なし形式の１０ビットであり得る。いくつかの実施形態において、１０．０成分は、１１ビット（１１．０）の２の補数に拡大し得る。一実施形態において、（係数テーブル内の）係数は４．１２の２の補数形式の１６ビットであり得る。入力成分及び対応する係数をフィルタの各タップで掛け合わせて、２７ビット（１５．１２）の２の補数が得られる。５個のタップ乗算器の出力は（丸め成分とともに）一緒に加算され３０ビット（１８．１２）の２の補数になり得る。次に、ゼロ未満又は１より大きい画素値を１４ビット（１０．４）符号なし数にクランプし得る。ゼロ未満の数値は全てゼロにクランプされ、１０２３以上（≧）の数値は１０２３（０×３ＦＦ０）にクランプされ得る。
【００４５】
次に図５を参照すると、水平方向マルチタップ・ポリフェーズフィルタの一実施形態のブロック図が示されている。各水平方向スケーラは、マルチタップ・ポリフェーズフィルタ９０を含み得る。一実施形態において、フィルタ９０は、１５タップのポリフェーズフィルタであり得る。他の実施形態において、フィルタ９０は、他の数のタップを含み得る。各タップは、対応する係数テーブル８４〜９８を含み得る。一実施形態において、各係数テーブルは１６個の係数項目を含み得る。他の実施形態において、各係数テーブルは他の数の係数項目を含み得る。
【００４６】
図５に示すように、画素値は変数Ｘを中心として、画素値は、Ｘ＋７、．．．、Ｘ＋１、Ｘ、Ｘ−１、．．．、Ｘ−７を含み得る。シフトレジスタ７０〜８２のチェインの各画素は、対応する係数テーブル８４〜９８から得た係数に掛け合わせ得る。係数は、係数テーブル８４〜９８内のプログラマブルレジスタに格納し得る。乗算器１００Ａ〜Ｉの出力及び丸め項１０２が加算器１０４で足し合わされ、加算器１０４の結果はクランプユニット１０６でクランプされ得る。クランプユニット１０６の出力は水平方向にスケーリングされた画素であり、この数値は正規化ユニット（非表示）の入力、別のパイプラインステージ、又は別の場所に送られ得る。一実施形態において、水平方向スケーラは、乗算器１００Ａ〜Ｉ及び加算器１０４を実装するためにパイプライン化された論理を用い得る。
【００４７】
一実施形態において、４個の水平方向スケーラがあり得る。他の実施形態において、他の数の水平方向スケーラが用いられ得る。４個の水平方向スケーラは、全て、同じ水平方向ＤＤＡ値であるが異なる垂直方向画素について動作し得る。いくつかの場合、垂直方向スケーラが列の左端の画素を水平方向スケーラに送った時、水平方向スケーラは画素を水平方向フィルタの１５個のタップ全てに一括して書き込み得る。水平方向スケーラは、また、初期ＤＤＡ  Ｘ値がマイナスの場合に画素を正しく複製することを確実にするために中央のタップが列開始画素−７を指すように設定し得る。他の場合、水平方向スケーラがマルチタップのために端部画素を反復することなく端部画素について動作できるように、追加の画素を隣接するタイルから取り込むことができる。
【００４８】
垂直方向スケーラが画素を処理し、画素を水平方向スケーラに送ると、画素がタップ上をシフトされ、中央タップのポインターが増加する。水平方向スケーラは、中央タップを現在のＤＤＡ値によって要求されている画素と比較し、値が一致すると、水平方向スケーラは出力画素の生成を開始し得る。水平方向スケーラがスケーリングされた出力画素を生成している任意のクロックにおいて、次のＤＤＡ値も現在の中央タップ値と一致した場合、水平方向スケーラは次の画素にシフトインせず、対応する垂直方向スケーラを次の画素に押し込むことを停止する。
【００４９】
新しい列のタイルを最初に通るパスの際に、水平方向スケーラは同じ列の後続のパスの開始時にこの数値を再ロードする必要があるので、ＤＤＡ値のコピーをスナップすることがある。一実施形態において、垂直方向スケーラは、新しい列が開始する場合水平方向スケーラに通知し得る。後続の列については、次のＤＤＡ値は現在のＤＤＡ値にＤＤＡステップサイズを加えた数値であり得る。
【００５０】
一実施形態において、水平方向スケーラは１つ以上の境界状態を判定するように構成し得る。水平方向シフトチェーンの第１のタップは、それが原画像の右端の画素であるかどうかを検出し、この状態検出に対応して、水平方向シフトレジスタチェーンはそれ以上の画素を垂直方向スケーラから受け付けないことがある。水平方向スケーラは、ＤＤＡ値を増分し続け、タップ値をシフトし続けるが、新しい画素がシフトレジスタにシフト入力されないため、画像の右端の画素がシフトレジスタチェーンの入力で複写され得る。一実施形態において、各水平方向スケーラは、生成された画素数がスケーリング後の出力画像に期待される画素数と等しいかどうかも検出し得る。水平方向スケーラがこの状態を検出した場合、水平方向スケーラは出力画素の生成を停止し、画像の終端に到達したことを示すフラグを設定し得る。次に、水平方向スケーラは、垂直方向スケーラが開始する新しいパスを待ち得る。
【００５１】
一実施形態において、水平方向スケーラに対する入力画素成分は、１０．４符号なし形式の１４ビットであり、これらの成分は、１５ビット（１１．４）の２の補数値まで拡大し得る。タップ係数は、１６ビット（４．１２）の２の補数値であり得る。この入力及び係数を掛け合わせて３１ビット（１５．１６）の２の補数値が得られる。１５タップの乗算器の出力は、丸め成分とともに一緒に加算され、３５ビット（１９．１６）の２の補数が生成され得る。この後、画素値は１４ビット（１０．４）の符号なし数にクランプされ得る。
【００５２】
上記の実施例と様々な成分及び数値の様々な形式及びビット長は、１つの可能な実施形態の代表である。他の実施形態において、垂直方向スケーラ及び水平方向スケーラ内の様々な種々の数値の形式及びビット長は変わり得ることが留意される。
【００５３】
次に図６を参照すると、１つ以上の実施形態に係る作業中タイル集合が示されている。一実施形態において、タイルのサイズは、１２８×８画素であり、作業中タイル集合は、３個のタイル（タイル１１２、１２０、１２８）を含み得る。一実施形態において、作業中タイル集合は、回転ユニットの出力ステージにあるタイルバッファに格納され得る。タイルバッファは、スケーラユニットの入力ステージにも連結され得る。一実施形態において、タイル１１２、１２０、１２８のそれぞれは、別々のタイルバッファに格納され得る。図６に示す実施例は、説明目的に限定したものであり、他の実施形態において、作業中タイル集合は、他の数のタイルを含む場合があり、タイルのサイズが変わることがある。
【００５４】
他の実施形態において、作業中集合の選択及びサイズは、各垂直方向スケーラのマルチタップ・ポリフェーズフィルタにおけるタップの数、及びスケーラユニットにおける垂直方向スケーラの数に依存し得る。作業中タイル集合の選択及びサイズは、スケーラユニットによって実行される垂直方向アップスケーリングまたはダウンスケーリングの倍率にも依存し得る。これらの要因は、各クロックサイクルにおいて取り込んでスケーラユニット内の複数の垂直方向スケーラに供給する必要がある画素の数を決定し得る。例えば、一実施形態において、スケーラユニットには４個の垂直方向スケーラがあり、各垂直方向スケーラは５タップのポリフェーズフィルタを含み、垂直方向スケーラは４倍のダウンスケーリングを行い得る。この実施形態において、スケーラユニット内の垂直方向スケーラの全てのタップについて十分な画素を取り込むために、少なくとも１７個の画素が単一のクロックサイクルにおいて単一の列から取り込まれる必要がある。各タイルは列当たり８個の画素を含むので、この実施形態において少なくとも３個のタイルを取り込む必要がある。
【００５５】
４個の別々の垂直方向スケーラには、３個のタイルから垂直列全体の２４画素が供給され得る。各垂直方向スケーラが単一の垂直方向にスケーリングされた画素を出力するために５個の画素を選択し使用するように、垂直方向スケーラのそれぞれは５タップのポリフェーズフィルタであり得る。２４画素の垂直方向の列は垂直方向スケーラに供給され、４個のポリフェーズフィルタの２０個のタップのそれぞれは、スケーリングされた出力を生成するのに必要な画素を選択し得る。一実施形態において、マルチタップ・ポリフェーズフィルタの各タップは、画素列から選択するためのマルチプレクサを含み得る。最上部の垂直方向スケーラは上部の画素上で動作し、残りの３個の垂直方向スケーラのそれぞれは隣接する垂直方向スケーラより１ステップ下で動作し、クロック当たり合計４個の隣接した、垂直方向にスケーリングされた画素を生成する。
【００５６】
ステップサイズが４の場合に対応したダウンスケーリングの一実施例において、各垂直方向スケーラはクロック当たり４個の画素を消費して、クロック当たり１個の垂直方向にダウンスケールされた画素を生成する。同様に、各水平方向スケーラは、原画像がクロック当たり１６画素の正味速度で消費されるように、４クロック当たり１個の画素を生成し得て、スケーリングされた出力画像はクロック当たり１画素の正味速度で生成される。
【００５７】
アップスケーリングの一実施例において、各垂直方向スケーラはクロック当たり０．２５個の画素を消費して、クロック当たり１個の垂直方向にアップスケールされた画素を生成する。各水平方向スケーラは、入力画像がクロック当たり１画素の正味速度で消費されるように、クロック当たり１個の画素を生成し、スケーリングされた出力画像はクロック当たり４個の画素の正味速度で生成される。
【００５８】
画像の開始点で、垂直方向スケーラは、フェッチロジックが３個の１２８×８バッファを画素で満たして、それらを２４画素の列として垂直方向スケーラに供給するまで待ち得る。スケーラ制御論理は４個の垂直方向スケーラのために最初の４個のＤＤＡ値を計算し得る。第１の垂直方向スケーラは第１のＤＤＡ値（ＤＤＡ−Ｉｎｉｔ）で動作を開始し、第２の垂直方向スケーラは（ＤＤＡ−Ｉｎｉｔ＋１ステップ）で動作を開始し、第３の垂直方向スケーラは（ＤＤＡ−Ｉｎｉｔ＋２ステップ）で動作を開始し、第４の垂直方向スケーラは（ＤＤＡ−Ｉｎｉｔ＋３ステップ）で動作を開始し得る。
【００５９】
フェッチロジックは、クロック当たり２４画素の列を垂直方向スケーラに供給し、水平方向に右端の画素に到達するまでステップを進める。現在の組の４個のＤＤＡステップについて動作しながら、スケーラロジックは次の組のステップを見ることができる。次の反復において現在の先頭のタイルバッファが必要ない場合、スケーラロジックはもはやバッファを必要としないという信号をフェッチロジックにアサートし得る。この信号がアサートされたのに応えて、フェッチロジックが右端の画素を垂直方向スケーラに供給した時、フェッチロジックは、原画像の次のタイルを取り込み、作業中集合に追加することができる。この信号がアサートされていない場合、フェッチロジックは作業中集合の次の水平方向パスのために、現在のバッファの組をスケーラ制御論理に供給し続ける。
【００６０】
このプロセスは、スケーラ制御論理が原画像の底部端を検出するまで続く。スケーラ制御論理が検出する多くの様々な境界状態が存在し得る。１つの状態は、いずれかの垂直方向スケーラのタップが原画像の最後の画素を超える画素を必要とする場合である。この状態が検出された場合、スケーラ制御論理は底部画素をそれを必要とするいずれかのタップに供給することによって複製し得る。一実施形態において、スケーラ制御論理は、垂直にスケーリングされた画素がいくつ生成されたかも把握し得る。次の反復時に、全ての垂直方向スケーラがスケーリングされた出力画像の終端部を越えて画素を生成しようとしている場合、スケーラ制御論理は「現在の列が完了」という信号をフェッチロジックにアサートし得る。
【００６１】
次のタイルの列に移動する時、垂直方向スケーラのＤＤＡが再び次の列の画像の最上部にあるので、垂直方向スケーラのＤＤＡにはＤＤＡ−Ｉｎｉｔ（４個の別々の垂直方向スケーラについて＋０、１、２、及び３ステップ）が再設定される。垂直方向スケーラは、水平方向スケーラの制御論理が画像の右端に到達したと判定するまで列を処理し続け得る。原画像の右下部のタイルに到達すると、垂直方向スケーラは「原画像が完了」という信号をアサートし得る。いくつかの場合、フェッチロジックは、垂直方向スケーラ及び水平方向スケーラから独立してこれを判定し得る。
【００６２】
作業中タイル集合は、またタイル１１２、１２０、１２８の左側のセクション１１４、１２２、１３０に追加の画素をそれぞれ含み得る。これらの７個の追加の画素は、水平方向スケーラのマルチタップ・ポリフェーズフィルタに対応するために取り込まれ、作業中タイル集合の一部として含まれ得る。一実施形態において、水平方向スケーラは１５タップのポリフェーズフィルタを含み得る。このような実施形態において、タイルの左側の７個の追加の画素は、作業中タイル集合に含まれ得る。水平方向スケーラがタイル１１２の左端の画素に中心を置くとき、セクション１１４の追加の７個の画素が通常の方法で水平方向のスケーリングを実行するのに十分な画素を１５タップフィルタに投入されることを可能にし得る。他の実施形態において、タイルの左側の追加の画素が取り込まれない時または作業中タイル集合に含まれない時は、端部画素がスケーラのフェッチロジックにより繰り返され得る。１５タップのフィルタがタイル１１２，１２０，１２８の右端の画素にそれぞれ中心を置く時、右側のセクション１１６、１２４、１３２の追加の７個の画素は同様の役目を果たす。
【００６３】
セクション１１８、１２６、１３４を含む作業中タイル集合の最も右側のセクションは、図形処理パイプラインの後のステージにおけるダウンスケーリングに対応するために作業中タイル集合に含まれ得る。クロマダウンスケーリングが後のステージで可能な場合、クロマダウンスケーリングユニットが正しく機能するように、スケーリングユニットによって生成される各タイルは各行に偶数の画素を有する必要がある。４：４：４の４：２：２への変換などのクロマダウンサンプリングの一実施例において、１個の画素を作るために２個の水平方向画素が用いられる。したがって、各行は偶数の画素を有することが必要となる。実行し得るスケーリングのタイプは、各実施形態によって異なり、スケーリングのタイプによって、多くの場合奇数の画素が生成され得る。これらの場合、スケーリングされたタイルの各行が偶数の画素を有するように、セクション１１８、１２６、１３４の追加の画素を用いて追加の画素を生成し得る。他の実施形態において、セクション１１８、１２６、１３４は作業中タイル集合から除外され得る。垂直方向スケーラがタイル１１２の全ての画素を使い終わったら、タイル１１２は退場させられ得る。次に、フェッチユニットが次のタイルを取り込み、このタイルをタイル１２０と１２８とともに新しい作業中タイル集合として含み得る。
【００６４】
次に、図７を参照すると、垂直方向スケーラユニットに供給される画素列の一実施形態のブロック図が示されている。垂直方向スケーラ１４２は垂直方向スケーラユニット１４０の最上部にあり、他の３個の垂直方向スケーラ１４４〜１４８のそれぞれは、隣接する垂直方向スケーラより１ＤＤＡステップだけ下であり得る。列の画素は、タイル（Ｘ，Ｙ）、（Ｘ，Ｙ＋１）、（Ｘ，Ｙ＋２）に跨がりうる。図７に示す画素は、原画像の単一の列から来たものであり、この単一の列は、図６に示すような作業中タイル集合から来ている。一実施形態において、作業中タイル集合から来た列の全体は２４画素を含み得る。他の実施形態において、作業中タイル集合から来た列の全体は、他の数の画素を含み得る。例えば、別の実施形態において、４個のタイルから成る作業中タイル集合を使用でき、各タイルは１６行を有し、したがって、この実施形態の列全体の画素は６４画素であり得る。
【００６５】
次に図８を参照すると、最初の水平方向パスにおける垂直方向スケーラによる画素選択の一実施形態のブロック図が示されている。垂直方向スケーラユニット１４０は、４個の垂直方向スケーラ１４２〜１４８を含み、破線は、各垂直方向スケーラが使用する画素を示す。垂直方向スケーラ１４２は、タイル（Ｘ，Ｙ）の行０の画素に中心を置き、垂直方向スケーラ１４４は、タイル（Ｘ，Ｙ）の行２の画素に中心を置き、垂直方向スケーラ１４６は、タイル（Ｘ，Ｙ）の行４の画素に中心を置き、垂直方向スケーラ１４８は、タイル（Ｘ，Ｙ）の行６の画素に中心を置く。この実施例において、初期ＤＤＡ値は０であり、ステップサイズは２である。一実施形態において、タイル（Ｘ，Ｙ）の行０の画素に中心を置く垂直方向スケーラ１４２の５タップのフィルタに対応するために、タイル（Ｘ，Ｙ−１）の底部の２個の画素が画素列に（列の最上部に）含まれ得る。別の実施形態において、タイル（Ｘ，Ｙ）の行０の画素は垂直方向スケーラ１４２の最上部３個のマルチプレクサによって反復して選択することができ、５タップのポリフェーズフィルタの最上部３個のタップにより使用され得る。
【００６６】
一実施形態において、垂直方向スケーラ１４２〜１４８の各垂直スケーラは、５タップのポリフェーズフィルタを含み得る。垂直方向スケーラ１４２〜１４８の各垂直方向スケーラは、また５個のマルチプレクサを含むことができ、各マルチプレクサはポリフェーズフィルタの対応するタップのための画素を選択するように構成される。図８に示す実施例において、各垂直方向スケーラによって選択される５個の画素は、順番に５個のタップに割り当てられる。例えば、タイル（Ｘ，Ｙ−１）の行６の画素は、垂直方向スケーラ１４２のポリフェーズフィルタの最上部タップに連結されたマルチプレクサによって選択され、タイル（Ｘ，Ｙ−１）の行７の画素は、そのポリフェーズフィルタの最上部タップから２番目のタップに連結されたマルチプレクサによって選択されるなどである。他の垂直方向スケーラのそれぞれは、同様にして、対応するポリフェーズフィルタのタップに連結されたマルチプレクサを用いて画素を選択し得る。
【００６７】
図８に示す実施例は、倍率２の垂直方向ダウンスケーリングに対する画素列からの画素の選択を示す。垂直方向ダウンスケーリングの倍率２は、スケーリングされた画像の行数が、原画像の行数の半分であることを示す。この実施例は説明のみを目的としたものであり、他の実施形態において、垂直方向スケーラ１４２〜１４８は異なる画素に割り当てることができ、スケーラ間の間隔は、実行するダウンスケーリングまたはアップスケーリングのタイプによって異なり得る。
【００６８】
一実施形態において、垂直スケーラ１４２〜１４８は、作業中タイル集合の左端から開始し、最初の水平方向パスにおける作業中タイル集合を右に水平方向に移動しながら画素列を処理し得る。作業中タイル集合を左端から右端まで移動し終わった後、垂直方向スケーラ１４２〜１４８のそれぞれは、作業中タイル集合をＤＤＡステップサイズの４倍分だけ下に移動し得る。例えば、この特定のダウンスケーリングの例では、ＤＤＡステップサイズは２であり、作業中タイル集合の右端に到達した後、垂直スケーラユニット１４０の各垂直スケーラは画素列を８画素分下に移動し、作業中タイル集合を通る２番目の水平方向パスにおいてこれらの場所から画素を選択し得る。
【００６９】
次に図９を参照すると、作業中タイル集合を通る第２の水平方向のパスの間に作業中タイル集合から画素を選択する一実施形態のブロック図が示されている。２番目の水平方向パスにおいて、垂直方向スケーラユニット１４０の各垂直方向スケーラは、画素列の前回の位置より４  ＤＤＡステップサイズ下の位置から画素を選択し得る。２番目のパスについては、垂直方向スケーラ１４２はタイル（Ｘ，Ｙ＋１）の行０の画素に中心を置き、垂直方向スケーラ１４４はタイル（Ｘ，Ｙ＋１）の行２の画素に中心を置き、垂直方向スケーラ１４６はタイル（Ｘ，Ｙ＋１）の行４の画素に中心を置き、垂直方向スケーラ１４８はタイル（Ｘ，Ｙ＋１）の行６の画素に中心を置く。作業中タイル集合を通る水平方向パスのこのプロセスは、タイルの列の全体がスケーリングされるまで原画像を下に移動し続け得る。次に、このプロセスは、右隣のタイルの列の最上部に移動し、その列を下に移動し、全体の画像が垂直方向にスケーリングされるまでこれを続ける。この実施例は、図８に示す実施例の続きであり、ＤＤＡステップサイズは２で２倍の垂直方向ダウンスケーリングに相当する。他の実施形態では、他のステップサイズ、ダウンスケーリング又はアップスケーリング倍率、他の取り込み画素数、及び他の数の垂直方向スケーラが用いられ得る。
【００７０】
次に図１０を参照すると、垂直方向スケーラと水平方向スケーラとの間の接続の一実施形態のブロック図が示されている。一実施形態において、垂直方向スケーラユニット１４０の各垂直方向スケーラ１４２〜１４８は、水平方向スケーラユニット１５０の対応する水平方向スケーラ１５２〜１５８に連結され得る。垂直方向スケーラ１４２はクロックサイクル当たり単一の垂直方向にスケーリングされた画素を水平方向スケーラ１５２に出力し、垂直方向スケーラ１４４はクロックサイクル当たり単一の垂直方向にスケーリングされた画素を水平方向スケーラ１５４に出力し、垂直方向スケーラ１４６は、クロックサイクル当たり単一の垂直方向にスケーリングされた画素を水平方向スケーラ１５６に出力し、垂直方向スケーラ１４８はクロックサイクル当たり単一の垂直方向にスケーリングされた画素を水平方向スケーラ１５８に出力し得る。
【００７１】
水平方向スケーラ１５２〜１５８はスケーリングされた画素を図形パイプラインの次のステージ（非表示）に出力し得る。一実施形態において、次のステージは正規化ユニットであり得る。別の実施形態において、水平方向スケーラ１５２〜１５８は、スケーリングされた画素をディスプレイユニット又はディスプレイコントローラに出力し得る。更に別の実施形態において、水平方向スケーラ１５２〜１５８は、スケーリングされた画素をメモリに出力し得る。他の実施形態において、他の数の垂直方向スケーラ及び水平方向スケーラがあり得る。
【００７２】
次に図１１を参照すると、原画像をスケーリングする方法の一実施形態が示されている。説明の目的のために、本実施形態における手順が順番に示されている。以下に記載の方法の様々な実施形態において、説明されている要素の１つ以上が、同時に実行されてもよいし、示されているのとは異なる順番で実行されてもよいし、又は全体的に省略されてもよいことに留意願いたい。所望に応じて、他の追加要素も実行し得る。
【００７３】
一実施形態において、スケーラユニットは原画像の複数の画素を受け取り得る（ブロック１６０）。様々な実施形態において、原画像はメモリに格納され、タイルバッファに格納され、図形処理パイプライン中の前のステージによってスケーラユニットに送られ、又は、他の様々な場所のいずれかに格納され若しくは他の様々な任意のユニットによって送られ得る。次に、画素列が複数の垂直方向スケーラに供給される（ブロック１６２）。次に、各垂直方向スケーラはＤＤＡ値及びＤＤＡステップサイズに基づき、画素列から画素を選択し得る（ブロック１６４）。一実施形態において、各垂直方向スケーラは５タップのポリフェーズフィルタを含み得て、各垂直方向スケーラはフィルタの５個のタップに対して５個の画素を選択し得る。
【００７４】
ブロック１６４の後、選択された画素は複数の垂直方向スケーラのそれぞれによって垂直方向にスケーリングし得る（ブロック１６６）。一実施形態において、４個の垂直方向スケーラを用い得るが、他の実施形態においては、他の数の垂直方向スケーラを用い得る。次に、垂直方向にスケーリングされた画素は、複数の水平方向スケーラに送られ得る（ブロック１６８）。一実施形態において、各垂直方向スケーラは対応する水平方向スケーラに連結され得る。４個の垂直方向スケーラを有する実施形態において、４個の水平方向スケーラがあり得る。
【００７５】
次に、垂直方向にスケーリングされた画素は、複数の水平方向スケーラによって水平方向にスケーリングされる（ブロック１７０）。複数の水平方向スケーラはそれぞれ、垂直方向にスケーリングされた画素をシフトレジスタのチェインにシフトインし、そしてチェイン中をシフトでき、チェインが垂直方向にスケーリングされた画素で満たされると、水平方向スケーラは水平方向にスケーリングされた画素を生成し得る。次に、垂直方向及び水平方向にスケーリングされた画素は、図形処理パイプラインの次のステージに送られ得る（ブロック１７２）。一実施形態において、このパイプラインの次のステージは正規化ユニットであり得る。あるいは、他の実施形態において、垂直方向及び水平方向にスケーリングされた画素は、メモリ場所、ディスプレイコントローラ、又はディスプレイユニットに送られ得る。
【００７６】
次に図１２を参照すると、画素をスケーリングする方法の一実施形態が示されている。説明の目的のために、本実施形態における手順が順番に示されている。以下に記載の方法の様々な実施形態において、説明されている要素の１つ以上が、同時に実行されてもよいし、示されているのとは異なる順番で実行されてもよいし、又は全体的に省略されてもよいことに留意願いたい。所望に応じて、他の追加要素も実行し得る。
【００７７】
一実施形態において、複数の画素を１つ以上のタイルバッファから取り込み得る（ブロック１８０）。原画像は、複数のタイルに分割でき、各タイルバッファは原画像から単一のタイルを格納できる。一実施形態において、複数の取り込まれた画素は原画像の単一の列に位置し得る。次に、複数の取り込まれた画素は、複数の垂直方向スケーラによって垂直方向にスケーリングされ得る（ブロック１８２）。複数の垂直方向スケーラは、複数の取り込まれた画素を同時にスケーリングするように構成され得る。複数の垂直方向スケーラの各垂直方向スケーラは、取り込まれた画素をスケーリングするためのマルチタップ・ポリフェーズフィルタを含み得る。
【００７８】
１つ以上の垂直方向にスケーリングされた画素が、各クロックサイクルの間、各垂直スケーラからそれぞれの水平方向スケーラに送られ得る（ブロック１８４）。次に、複数の垂直方向にスケーリングされた画素が、複数の水平方向スケーラによって水平方向にスケーリングされ得る（ブロック１８６）。各水平方向スケーラは、受け取った画素をスケーリングするためのマルチタップ・ポリフェーズフィルタを含み得る。各水平方向スケーラは、受け取った画素内をシフトするシフトレジスタのチェインも含み得、マルチタップ・ポリフェーズフィルタの各タップに対応するシフトレジスタがあり得る。
【００７９】
次に図１３を参照すると、システム１９０の一実施形態のブロック図が示されている。図に示すように、システム１９０は、デスクトップコンピュータ２００、ラップトップコンピュータ２１０、タブレットコンピュータ２２０、セル電話２３０、などのチップ、回路部品、構成部品等を表す。図示の実施形態において、システム１９０は、外部メモリ１９２に連結された少なくとも１個の集積回路１９８のインスタンスを含み得る。集積回路１９８は、１つ以上の（図１の）パイプライン１０のインスタンス又は１つ以上のパイプライン１０の一部を含み得る。
【００８０】
集積回路１９８は１つ以上の周辺機器１９４及び外部メモリ１９２に連結されている。電源電圧を集積回路１９８に供給し、並びに１つ以上の電源電圧をメモリ１９２及び／又は周辺機器１９４に供給する電源１９６も備えられている。様々な実施形態において、電源１９６はバッテリ（例えば、スマートフォン、ラップトップコンピュータ又はタブレットコンピュータの再充電式バッテリ）を表し得る。いくつかの実施形態において、１つ以上の集積回路１９８のインスタンスが含まれ得る（そして、１つ以上の外部メモリ１９２も含まれ得る）。
【００８１】
メモリ１９２は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、同期式ＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３等）、ＳＤＲＡＭ（ｍＤＤＲ３などのモバイルバージョンのＳＤＲＡＭ及び／又はＬＰＤＤＲ２などの低電力タイプのＳＤＲＡＭを含む）、ＲＡＭＢＵＳ  ＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）などの任意のタイプのメモリであり得る。１つ以上のメモリデバイスを回路基板に連結してシングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）などのメモリモジュールを形成し得る。あるいは、これらのデバイスは、集積回路１９８とともにチップ・オン・チップ構成、パッケージ・オン・パッケージ構成、又はマルチチップモジュール構成に装填し得る。
【００８２】
周辺機器１９４は、システム１９０のタイプに応じて、任意の所望の回路を含み得る。例えば、一実施形態において、周辺機器１９４は、ｗｉｆｉ，Ｂｌｕｅｔｏｏｔｈ（登録商標）、セルラー、全地球測位システムなどの様々なタイプの無線通信用デバイスを含み得る。周辺機器１９４は、ＲＡＭ記憶装置、ソリッドステート記憶装置、又はディスク記憶装置を含む追加の記憶装置も含み得る。周辺機器１９４は、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又はその他の入力デバイス、マイクロフォン、スピーカなどのユーザインターフェースデバイスを含み得る。
【００８３】
次に図１４を参照すると、（図１の）パイプライン１０に含まれている回路の代表である１つ以上のデータ構造体を含むコンピュータ可読媒体２４０の一実施形態のブロック図が示されている。概して、コンピュータ可読媒体２４０は、例えば、ディスク、ＣＤ−ＲＯＭ、又はＤＶＤ−ＲＯＭの、磁気または光媒体などの任意の永続的記憶媒体、ＲＡＭ（例えば、ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭなどの揮発性または不揮発性メモリ媒体、並びに、伝送媒体、又はネットワーク及び／若しくは無線リンクなどの通信媒体を介して送られる、電気的信号、電磁気的信号、デジタル信号などの信号、を介してアクセス可能な媒体を含み得る。
【００８４】
概して、コンピュータ可読媒体２４０上の回路のデータ構造体は、プログラムによって読み取られ、回路を包含するハードウェアを組み立てるために直接的または間接的に用いられ得る。例えば、データ構造体は、Ｖｅｒｉｌｏｇ又はＶＨＤＬなどの高レベル設計言語（ＨＤＬ）でのハードウェア機能の１つ以上の動作レベルの記述若しくはレジスタトランファーレベル（ＲＴＬ）記述を含み得る。記述は、記述を合成してゲートのリストを含む１つ以上のネットリストを合成ライブラリから生成する、合成ツールによって読み取られ得る。ネットリストは、回路を包含するハードウェアの機能も表すゲートの集合を含む。ネットリストは、次にマスクに適用する幾何学形状の記述する１つ以上のデータセットを生成するために配置配線され得る。次に様々な半導体製造工程でこのマスクを用いて回路に相当する半導体回路を製造し得る。または、コンピュータ可読媒体２４０上のデータ構造体は、（合成ライブラリの有無に関係なく）ネットリスト、または所望に応じたデータセットであり得る。更に別の代替では、データ構造体は、スケマティックプログラムの出力、又はネットリスト若しくはそこから導出されたデータセットであり得る。
【００８５】
コンピュータ可読媒体２４０はパイプライン１０の表現を含むが、他の実施形態は、パイプライン１０の任意の部分または複数の部分の組み合わせ（例えば、垂直方向スケーラ、水平方向スケーラ）の表現を含み得る。
【００８６】
上記の実施形態は限定しない実施例に過ぎないことが強調されるべきである。上記の開示が完全に理解されれば、当業者には多くの変形及び修正が明らかになるであろう。以下の請求項の範囲が、全てのかかる変形と修正を包含していると解釈されるものとする。
【図１】
0005991722.tif 000002
【図２】
0005991722.tif 000003
【図３】
0005991722.tif 000004
【図４】
0005991722.tif 000005
【図５】
0005991722.tif 000006
【図６】
0005991722.tif 000007
【図７】
0005991722.tif 000008
【図８】
0005991722.tif 000009
【図９】
0005991722.tif 000010
【図１０】
0005991722.tif 000011
【図１１】
0005991722.tif 000012
【図１２】
0005991722.tif 000013
【図１３】
0005991722.tif 000014
【図１４】
0005991722.tif 000015