(58)【調査した分野】(Int.Cl.,DB名)
前記複数の水平方向スケーラの各水平方向スケーラがそれぞれの垂直方向スケーラから受け取った、垂直方向にスケーリングされた画素を格納するためのシフトレジスタのチェインを含む、請求項1に記載の装置。
前記複数の垂直方向スケーラが画素の各列の異なる垂直部分を処理するように垂直列内に配置され、各垂直方向スケーラは隣接する垂直方向スケーラから単一のDDAステップ離れて配置されている、請求項1に記載の装置。
前記複数の垂直方向スケーラ及び前記複数の水平方向スケーラのそれぞれが、画素をスケーリングするためのマルチタップ・ポリフェーズフィルタを含み、前記マルチタップ・ポリフェーズフィルタの各タップが係数テーブルを含み、前記係数テーブルが複数のプログラマブルレジスタを含む、請求項1に記載の装置。
前記複数の水平方向スケーラの各水平方向スケーラが、チェイン状に接続した複数のシフトレジスタを有し、前記チェインが前記マルチタップ・ポリフェーズフィルタの各タップに対応するシフトレジスタを含む、請求項9に記載の方法。
【発明を実施するための形態】
【0010】
以下の説明では、本明細書で提供されている方法及びメカニズムの完全な理解を提供するために、数多くの具体的な詳細が記載されている。しかし、当業者には、このような具体的な詳細がなくても、様々な実施形態を実行し得ることが認識されよう。いくつかの例においては、本明細書で記載されている方法を不明瞭にすることを避けるために公知の構造体、構成要素、信号、コンピュータプログラム命令、及び技術は詳細に示されていない。説明を簡略化及び明確化するために、図に示されている要素は必ずしも一定の比率で縮小して作図されていないことが理解されるであろう。例えば、一部の要素の寸法は、他の要素に対して誇張されている場合がある。
【0011】
本明細書は、「一実施形態」という言及を含む。いろいろな文脈で現れる「一実施形態」というフレーズは、必ずしも同じ実施形態を意味しない。特定の特徴、構造、又は特性は、本開示と矛盾しない任意の好適な方法で組み合わせ得る。更に、本願全体を通じて用いられている「し得る」という語句は、強制的な意味(つまり、「しなければいけない」を意味する)よりむしろ、許容的な意味(つまり、「可能性を有する」を意味する)で用いられている。同様に「有する」、「含む」という語句は、含むことを意味するがそれに限定されない。
【0012】
用語。以下のパラグラフでは、本開示(特許請求の範囲を含む)に記載されている用語の定義及び/又は文脈を提供する。
【0013】
「備える」、「含む」。この用語は、オープン・エンドである。添付の特許請求の範囲で用いられたとき、この用語は、追加の構造体や手順を排除しない。次のような表現の請求項を考察すると、「複数の垂直方向スケーラを備える装置....」。このような請求項は、その装置が追加の構成要素(例えば、プロセッサ、キャッシュ、メモリコントローラ)を含むことを排除しない。
【0014】
「構成されている」。様々なユニット、回路、又は構成要素は、1つまたは複数のタスクを実行するように「構成されている」と記載または特許請求される場合がある。このような文脈において、「構成されている」は、ユニット/回路/構成要素が、動作中に1つまたは複数のタスクを実行する構造体(例えば、回路)を含むことを示すことによって構造体を暗示する時に使用される。然るが故に、ユニット/回路/構成要素は、特定のユニット/回路/構成要素が現在動作可能でない(つまり、オンの状態ではない)時でも、タスクを実行するように構成されていると言える。「構成されている」という言葉と共に用いられるユニット/回路/構成要素はハードウェア、例えば、回路、動作を実行できるプログラム命令を格納するメモリ、等を含む。ユニット/回路/構成要素が1つまたは複数のタスクを実行するように「構成されている」と記載するのは、そのユニット/回路/構成要素について、米国特許法第112条第6段落を発動しないように明示的に意図している。更に、「構成されている」は、問題のタスクを実行し得る方法で動作するソフトウェア及び/又はファームウェア(例えば、FPGA又はソフトウェアを実行する汎用プロセッサ)によって操作される一般的な構造体(例えば、一般的な回路)を含み得る。「構成されている」は、1つ以上のタスクを実施又は実行するのに適した装置(例えば、集積回路)を組み立てるように製造工程(例えば、半導体組み立て設備)を構成することも含み得る。
【0015】
「基づく」。本明細書で用いられているとき、この用語は、判定に影響を及ぼす1つ以上の要因を言い表す時に使用される。この用語は、判定に影響を及ぼし得る追加の要因を排除しない。即ち、判定はこれらの要因だけに基づくか、又は、少なくとも部分的にこれらの要因に基づき得る。「Bに基づきAを判定する」というフレーズを検討してみる。BはAの判定に影響を及ぼす要因であるが、このようなフレーズはAの判定がCにも基づくことを排除しない。他の例では、AはBだけに基づいて判定されることがあり得る。
【0016】
図1を参照すると、図形処理パイプラインの一実施例を例示するブロック図が示されている。様々な実施形態において、パイプライン10は、システムオンチップ(SoC)、特定用途向け集積回路(ASIC)、装置、プロセッサ、プロセッサコア、又はその他の様々な類似装置に組込み得る。いくつかの実施形態において、パイプライン10の1つ以上のインスタンスが、1つのSoC又はその他の装置内に含まれ得る。
【0017】
原画像34はメモリ12内に格納でき、原画像34は静止画像またはビデオストリームの1フレームであり得る。他の実施形態において、原画像34は他の場所に格納し得る。原画像34は、メモリ12に格納でき、パイプライン10で処理し得る任意の数の画像、映像または図形データを代表するものである。メモリ12は、任意の数及びタイプのメモリ装置(例えば、ダイナミックランダムアクセスメモリ(DRAM)、キャッシュ)を代表するものである。
【0018】
原画像34は、画素と呼ばれる多数の離散的な画像の要素で表され得る。デジタル画像処理において、画像または映像フレーム内の情報の最小単位体は「画素」と呼ぶことができる。画素は一般的に規則的な2次元グリッド内に配列されている。原画像34内の各画素は、1つ以上の画素成分によって表し得る。画素成分は、画像が表現される色空間内の各色の色値を含み得る。例えば、色空間は、赤−緑−青(RGB)色空間であり得る。したがって、各画素は、赤色の成分と、緑色の成分と、青色の成分とで表され得る。一実施形態において、色成分の数値は、ゼロから2
N-1の範囲であり得、この場合、「N」は、数値を表すのに使用しているビット数である。各色成分の数値は、その画素における対応する色の輝度又は強度を表し得る。ルミナンス及びクロミナンス表現(YCrCb)などの他の色空間も使用し得る。更に、追加の画素成分を含めることができる。例えば、RGB成分とともに混色のためのアルファ値を含めてARGB色空間を形成し得る。各画素を格納するために用いるビット数は利用する特定のフォーマットに依存し得る。例えば、一部のシステムにおける画素は8ビットを必要とし、他のシステムにおける画素は10ビットを必要とするなど、画素当たり様々な数のビットが様々なシステムで用いられている。
【0019】
パイプライン10は、画素当たり4個までの色成分を処理するために4個の別々のチャネル14〜20を含み得る。各チャネルは、回転ユニット、1組のタイルバッファ、1組の垂直方向スケーラ、及び1組の水平方向スケーラを含む。一実施形態において、チャネル14はアルファチャネルを処理し得る。他の実施形態において、チャネル14は利用されない場合があり、その代わりに、3つの色成分に対応する3つのチャネル16〜20だけが利用されることがある。リードダイレクトメモリアクセス(RDMA)ユニット22は、図形データ(例えば、原画像34)をメモリ12から読み込むように構成し得る。RDMAユニット22は、4個の回転ユニット、4個のタイルバッファ、及びDMAバッファ(非表示)を含み得る。4個のタイルバッファは、原画像34の回転済みタイルを格納するために使用し得る。
【0020】
原画像の各色成分に対して複数の垂直方向スケーラ及び水平方向スケーラがあり得る。各組の垂直方向スケーラは対応するタイルバッファの組から画素列を取り込むことができる。別の実施形態において、画素はタイルバッファから垂直方向スケーラに送られ得る。チャネル毎の垂直方向スケーラの各組には、任意の数の垂直方向スケーラを含むことができる。一実施形態において、各色成分チャンネルについてパイプライン10の中に4個の別々の垂直方向スケーラがあり得る。他の実施形態において、他の数の垂直方向スケーラを色成分チャネル毎に用いることができる。
【0021】
原画像34は、複数のタイルに分割でき、回転ユニットによってタイル単位で処理し得る。回転されたタイルは、各色成分チャネルにおけるタイルバッファの1つに格納し得る。一実施形態において、チャネル当たり4個のタイルバッファがあり得るが、別の実施形態においては、他の数のタイルバッファを使用し得る。一実施形態において、垂直方向スケーラは、画素列を対応するタイルバッファから取り込むことができる。画素列は、原画像の1つ以上のタイルに広がり得る。
【0022】
画素列は、垂直方向スケーラのフロントエンドにあるマルチプレクサに送られ得る。各垂直方向スケーラは、1つのマルチプレクサが垂直方向スケーラのマルチタップ・ポリフェーズフィルタの各タップ用として、複数のマルチプレクサを含み得る。各マルチプレクサは、実行するスケーリングのタイプに基づいて判定される適切な画素を画素列から選択し得る。1組の垂直方向スケーラの各垂直方向スケーラは、1つ以上の画素を処理し、単一の垂直方向にスケーリングされた画素を出力するように構成し得る。
【0023】
原画像34が処理される時、垂直方向スケーラは、デジタル微分解析機(DDA)を用いて原画像における現在の位置を把握するように構成され得る。DDAは、初期位置と、DDAが原画像の中を各ステップの間にいくつ原画像34の画素又は部分画素を移動するするかを決定するステップを含み得る。「部分画素」という用語は、ステップサイズが単一の画素より小さい時、又は、ステップサイズが小数点以下に小数部分を有するためDDAが画素間に陥る場合に画素の一部を意味する。1より小さいステップがアップスケーリングに相当し、1より大きいステップがダウンスケーリングに相当する、というように、ステップサイズはスケーリングの倍率を制御する。
【0024】
原画像34は複数のタイルに分割でき、一実施形態において、この複数のタイルは16画素行×128画素列であり得る。しかし、タイルサイズは他の実施形態において異なる場合がある。原画像34の幅は、複数のタイルを用いて原画像34の各行を構成できるように、タイルの幅より大きい場合がある。また、原画像34の長さは、複数のタイルを用いて原画像34の各列を構成できるように、タイルの長さより大きい場合がある。
【0025】
各組の垂直方向スケーラは、原画像34の左上のタイルから始めて、原画像34のタイルを1回に1個ずつ処理し得る。一実施形態において、垂直方向スケーラは、単一のクロックサイクルにおいて、原画像34の単一の列から画素を取り込むことができる。垂直方向スケーラは、単一の列から必要な数の画素を取り込むために必要な回数の取り込みを実行し得る。この必要な数の画素は、垂直方向スケーラの数と、各垂直方向スケーラのマルチタップ・ポリフェーズフィルタ内のタップの数と、実行されるスケーリングのタイプと、に基づき得る。いくつかの実施形態において、この必要な数の画素は、原画像34の1つより多くのタイルに跨る場合がある。
【0026】
タイルの列からすべての画素をスケーリングした後、垂直方向スケーラはタイル内を右に1列移動し、この列から画素を取り込むことができる。垂直方向スケーラは、タイルの右端に到達するまで右に向かって移動し続けることができる。次に、垂直方向スケーラはタイルの下の方の行に移動し、タイル全体を取り込むまでこのプロセスを続行することができる。いくつかの場合、最初のパスで処理される画素数が、タイルの1列の画素数と等しいか大きい場合、そのタイルについて単一のパスしか必要としない場合がある。1つのタイルを垂直方向にスケーリングした後、垂直方向スケーラは、直前に完了したタイルが原画像の底部タイルでない場合、直前に完了したタイルの真下にあるタイルに移動する。その場合、原画像から1つのタイル列全部を取り込み、垂直方向にスケーリングした後で、垂直方向スケーラは右隣のタイル列に移動し、原画像全体からすべての画素が取り込まれ、垂直方向にスケーリングされるまでこのパターンを続ける。
【0027】
各垂直方向スケーラは、各クロックサイクルで垂直方向にスケーリングされた画素を生成し、その画素を対応する水平方向スケーラに送るように構成され得る。一実施形態において、各色成分チャネルについてパイプライン内に4個の別々の水平方向スケーラがあり得、他の実施形態においては、色成分チャネル毎に他の数の水平方向スケーラが用いられる場合がある。様々な実施形態において、パイプライン10の各色成分チャネル内に各垂直方向スケーラに対応する水平方向スケーラがあり得る。
【0028】
各水平方向スケーラは、垂直方向にスケーリングされた画素を対応する垂直方向スケーラから受け取ることができ、この垂直方向にスケーリングされた画素は、シフトレジスタのチェインの入力に連結され得る。水平方向スケーラのマルチタップ・ポリフェーズフィルタの各タップにシフトレジスタがあり得る。水平方向スケーラは、受け取った画素から水平方向にスケーリングされた画素を生成し得る。
【0029】
各色成分チャネルにおいて、水平方向スケーラは垂直方向及び水平方向にスケーリングされた画素を正規化ユニット24に出力し得る。一実施形態において、正規化ユニット24は、受け取った画素値を0.0〜1.0の範囲に変換するように構成し得る。例えば、一実施形態において、水平方向スケーラから出力された10ビット画素値は0〜1023の数値を取り得る。このような実施形態において、正規化ユニット24は水平方向スケーラから受け取った数値を1023で割って数値の範囲を変更し得る。他の実施形態において、正規化ユニット24は、画素値を表すために用いられるビット数に応じて他の数値で割り得る。また、正規化ユニット24は、1つ以上の画素値から任意のオフセットを除去するように構成し得る。
図1に示すように、チャネル14の水平方向スケーラはディザユニット32に連結されている。一実施形態において、チャネル14はアルファチャネルを処理し、チャネル14内の水平方向スケーラの出力はディザユニット32に送られ得る。
【0030】
正規化ユニット24は、正規化された画素値を色空間変換(CSC)ユニット26に送り得る。CSCユニット26は、2つの異なる色空間の間で変換するように構成し得る。例えば、一実施形態において、原画像34において画素値はRGB色空間によって表すことができる。この実施形態において、パイプライン10の出力は、YCbCr色空間にある必要があり、CSCユニット26は、画素をRGB色空間からYCbCr色空間に変換し得る。他の実施形態において、様々な他の色空間を利用でき、CSCユニット26は、画素をこれらの様々な色空間の間で変換するように構成し得る。
【0031】
一実施形態において、CSCユニット26は、画素をクロマ・ダウンサンプリングユニット28に送り得る。クロマ・ダウンサンプリングユニット28は、実施するダウンサンプリングのタイプ(例えば、4:2:2、4:2:0)に基づいて画素の彩度成分をダウンサンプリングするように構成し得る。例えば、一実施形態において、変換先画像が4:2:0構造を用いると指定されている場合、クロマ・ダウンサンプリングユニット28は、原画像の彩度画素成分の垂直方向及び水平方向のダウンサンプリングを実行し得る。いくつかの実施例において、彩度画素成分のダウンサンプリングがない場合、クロマダウンサンプリングユニット28はパススルーユニットであり得る。
【0032】
クロマダウンサンプリングユニット28は、再フォーマットユニット30に連結し得る。再フォーマットユニット30は、正規化ユニット24によって実行された正規化を反転するように構成し得る。したがって、画素値は、画素が正規化ユニット24によって正規化される前に用いられていた以前の数値範囲に戻すことができる。画素は、再フォーマット化された後でディザユニット32を通過でき、ディザユニット32は、雑音を挿入して量子化誤差をランダム化し得る。ディザユニット32からの出力は、処理された変換先画像であり得る。様々な実施形態において、この処理された変換先画像は、フレームバッファ、メモリ12、ディスプレイコントローラ、ディスプレイ、又は別の場所に書き込み得る。他の実施形態において、図形処理パイプライン10は、他のステージまたはユニットを含むことがあり、及び/又は
図1に示すユニットの一部は異なる順序で配置され得る。パイプライン10は、図形処理パイプラインの一実施例であり、本明細書に記載の方法及びメカニズムは、異なるタイプの別の図形処理パイプラインとともに使用し得る。
【0033】
他の実施形態は、
図1に示す構成要素の部分集合又は上位集合、及び/又は他の構成要素を含む、構成要素の他の組み合わせを含み得ることに留意願いたい。特定の構成要素の1つのインスタンスが
図1で示されているが、他の実施形態では特定の構成要素の2つまたはそれ以上のインスタンスを含み得る。同様に、本明細書の全体にわたって、1つのインスタンスしか示されていない場合であっても、特定の構成要素の2つまたはそれ以上のインスタンスを含むことがあり、及び/又は、複数のインスタンスが示されていても、1つのインスタンスしか含まない実施形態が用いられることがある。
【0034】
次に、
図2を参照すると、複数のタイルに分割された原画像の一実施形態のブロック図が示されている。一実施形態において、原画像34は水平方向にM個のタイルに、及び垂直方向にN個のタイルに分割し得る。第1列のタイルは、(0,0)、(0,1)など、(0,N−1)まで番号が付けられている。第1行のタイルは、(0,0)、(1,0)など、(M−1,0)まで番号が付けられている。
【0035】
個々のタイルのサイズは、実施形態ごとに変わり得る。例えば、一実施形態において、個々のタイルは、各行が128画素を含むように、16行×128列であり得る。別の実施形態において、画像のタイル行は、タイルの左側と右側の隣接するタイルから追加の7個の画素を取り込むことによって142画素まで拡大し得る。原画像34の左端では、左端の画素が7回反復され、原画像34の右端では、右端の画素が7回反復され得る。タイルの左右端の隣接するタイルから画素を取り込むこと(又は、端部画素の反復)によって、タイルの端の画素が水平方向にスケーリングされる時に、タイルの左端に対して左側に7個の追加画素が、及びタイルの右端に対して右側に7個の追加画素があるようにして、各水平方向スケーラ内の15タップのポリフェーズフィルタを容易にするために実施し得る。これによって、15タップのポリフェーズフィルタは一貫した方法で端部画素をスケーリングできる。他の実施形態において、水平ポリフェーズフィルタに異なる数のタップを用いる場合は、異なる数の画素をタイルの端部で取り込み又は反復し得る。
【0036】
一実施形態において、スケーラユニット内のアーキテクチャは複数の垂直方向スケーラから始まり、複数の水平方向スケーラがそれに続き得る。一実施形態において、画素データに対して並列して動作する4個の垂直方向スケーラがあり得る。他の実施形態において、入力画素データに対して並列して動作する他の数の垂直方向スケーラを用い得る。垂直方向スケーラアーキテクチャ/ブロックは、画像の上部左、タイル(0,0)から開始し、タイル(0,N−1)に到達するまで第1列を下方に移動することによって、タイル上を動作し得る。第1列上を動作した後、垂直方向スケーラは次の列の上部、タイル(1,0)に移動し得る。垂直方向スケーラは第2列のタイルをその列の底部まで縦走して、画像の底部右のタイル(M−1,N−1)に到達するまでこのパターンを続け得る。
【0037】
次に
図3を参照すると、垂直方向スケーラのフロントエンドの一実施形態のブロック図が示されている。垂直方向スケーラのフロントエンドは、画素を原画像から取り込むためのフェッチユニット36を含め得る。一実施形態において、フェッチユニット36は、図形パイプラインの前のステージで処理された画素を格納し得るタイルバッファから画素を取り込むことができる。別の実施形態において、原画像はメモリに格納でき、フェッチユニット36は画素をメモリから取り込むことができる。用語「原画像」は、メモリに格納された画像、又は図形処理パイプラインの前のステージ(例えば、回転ユニット)から受け取った画像を意味することができる。付言すれば、用語「原画像」は実際の画像、又はビデオストリームからのフレームを意味することがある。更に、用語「フェッチユニット」及び「フェッチロジック」は、本開示全体を通して互換的に用いられている。
【0038】
一実施形態において、スケーラユニット全体内の全ての垂直方向スケーラに対して単一のフェッチユニット36があってもよい。別の実施形態において、各垂直方向スケーラは別々のフェッチユニットを有する場合がある。フェッチユニット36は1列の画素を取り込み、1列の画素をマルチプレクサ40A〜Eに供給し得る。マルチプレクサ40A〜Eは、垂直方向スケーラ内で用い得る任意の数のマルチプレクサの代表である。一実施形態において、垂直方向スケーラ内のポリフェーズフィルタの各タップにマルチプレクサがあり得る。各マルチプレクサ40A〜Eからの出力は、対応するポリフェーズフィルタのタップに送られ得る。
【0039】
制御論理38は、マルチプレクサ40A〜Eに対する選択信号を制御する。制御論理38は、デジタル微分解析機(DDA)を用いて原画像内の現在の画素位置を把握し得る。DDAは、初期位置、及び作業中タイル集合を通る各パスにおいてDDAが移動する原画像の画素または部分画素の数を決定するステップを有する。一実施形態において、DDA値及びステップサイズは、制御論理38内に位置するレジスタに格納され得る。ステップサイズはスケーリング倍率を制御する。1未満のステップはアップスケーリングになり、1より大きいステップはダウンスケーリングになる。
【0040】
一実施形態において、初期のDDA値は4.20の2の補数形式で24ビットレジスタから読み取り得る。4.20形式は、20ビットの小数部分を伴う4ビットの整数部分として定義され、「.」は、値の整数部分と小数部分を分離する小数点を表す。初期DDA値の4.20形式は、原画像の画素(0,0)を原点として最小又は最大初期DDA値−8〜+7を表し得る。スケーラが原画像の入力画素を順に反復処理するにつれて、ステップ値が現在のDDA値に追加され、次のDDA値を生成することができる。一実施形態において、DDA値の小数部分のビット15が「1」の場合に、4ビット係数インデックス(ビット19:16)が切り上げられるような、丸め処理が実装され得る。また、DDA値の小数部の最上位ビット(19)が「1」の場合、DDA値の4ビット整数部は切り上げ得る。一実施形態において、最大ステップ値は4であり得る。この実施形態において、ステップ値は、3.20形式の23ビット符号なし数であり、このステップ値は2の補数計算で用いる4.20形式にゼロ拡張され得る。他の実施形態において、最大ステップ値は、他の数値であり得る。
【0041】
別の実施形態において、DDA値は、16.20形式の36ビットの2の補数であり得る。他の実施形態において、DDA値の他のサイズ及び表現を利用し得る。16.20形式を用いてDDA値を表す場合、16ビット整数部(丸め処理後)を用いて原画像の画素位置を決定することができる。垂直方向の場合8で除し、水平方向の場合128で除するこの数値は、どのタイルが参照されているかを示し得る。20ビットの小数部分を係数テーブルのインデックスとして用い得る。一実施形態において、16個の数値が係数テーブルに格納されており、この数値は16個のフェーズに相当する。この実施形態において、小数部分(丸め処理後)の上部4ビットを用いてタップ当たり16個の係数から選択し得る。他の実施形態において、他のフェーズ数を係数テーブルに格納でき、他のビット数の小数部分を用いてこれらのフェーズから選択し得る。
【0042】
垂直方向スケーラの出力は水平方向スケーラの入力となり、水平方向スケーラは15タップのポリフェーズフィルタを用い得る。水平方向スケーラのタップは、シフトレジスタのように入力され得る。フィルタの説明をすると、一実施形態において、各行の最初の画素をタイルの左側の7個の画素に繰り返し、各行の最後の画素をタイルの右側の7個の画素に繰り返すことによって、タイルは水平方向に拡大され得る。一実施形態において、制御論理38は原画像の端部に関しては、必要なだけマルチプレクサの出力として端部画素を選択するように構成し得る。
【0043】
次に
図4を参照すると、垂直方向マルチタップ・ポリフェーズフィルタの一実施形態のブロック図が示されている。各垂直方向スケーラは、垂直方向マルチタップ・ポリフェーズフィルタ50を含み得る。一実施形態において、マルチタップ・ポリフェーズフィルタ50は5タップの垂直方向スケーラであり、5個のタップのそれぞれは係数テーブルを含むことができる。一実施形態において、各係数テーブルは16個の項目を含むことができる。画素値は画素変数Yを中心として、フィルタ50に入力される画素値は、Y−2、Y−1、Y、Y+1、Y+2を含み得る。各画素には、テーブル52〜60の対応する係数テーブルから得た係数を掛け合せることができる。次に、5個の乗算器62A〜Eの出力及び丸め項64が加算器66によって加算され、結果がクランプユニット68によってクランプされ得る。クランプユニット68の出力は垂直方向にスケーリングされた画素であり、この数値は、対応する水平方向スケーラの入力に送られ得る。一実施形態において、パイプライン化された論理が、乗算器62A〜Eと加算器66を実装するために用いられ得る。
【0044】
一実施形態において、垂直方向スケーラの入力画素成分は10.0符号なし形式の10ビットであり得る。いくつかの実施形態において、10.0成分は、11ビット(11.0)の2の補数に拡大し得る。一実施形態において、(係数テーブル内の)係数は4.12の2の補数形式の16ビットであり得る。入力成分及び対応する係数をフィルタの各タップで掛け合わせて、27ビット(15.12)の2の補数が得られる。5個のタップ乗算器の出力は(丸め成分とともに)一緒に加算され30ビット(18.12)の2の補数になり得る。次に、ゼロ未満又は1より大きい画素値を14ビット(10.4)符号なし数にクランプし得る。ゼロ未満の数値は全てゼロにクランプされ、1023以上(≧)の数値は1023(0×3FF0)にクランプされ得る。
【0045】
次に
図5を参照すると、水平方向マルチタップ・ポリフェーズフィルタの一実施形態のブロック図が示されている。各水平方向スケーラは、マルチタップ・ポリフェーズフィルタ90を含み得る。一実施形態において、フィルタ90は、15タップのポリフェーズフィルタであり得る。他の実施形態において、フィルタ90は、他の数のタップを含み得る。各タップは、対応する係数テーブル84〜98を含み得る。一実施形態において、各係数テーブルは16個の係数項目を含み得る。他の実施形態において、各係数テーブルは他の数の係数項目を含み得る。
【0046】
図5に示すように、画素値は変数Xを中心として、画素値は、X+7、...、X+1、X、X−1、...、X−7を含み得る。シフトレジスタ70〜82のチェインの各画素は、対応する係数テーブル84〜98から得た係数に掛け合わせ得る。係数は、係数テーブル84〜98内のプログラマブルレジスタに格納し得る。乗算器100A〜Iの出力及び丸め項102が加算器104で足し合わされ、加算器104の結果はクランプユニット106でクランプされ得る。クランプユニット106の出力は水平方向にスケーリングされた画素であり、この数値は正規化ユニット(非表示)の入力、別のパイプラインステージ、又は別の場所に送られ得る。一実施形態において、水平方向スケーラは、乗算器100A〜I及び加算器104を実装するためにパイプライン化された論理を用い得る。
【0047】
一実施形態において、4個の水平方向スケーラがあり得る。他の実施形態において、他の数の水平方向スケーラが用いられ得る。4個の水平方向スケーラは、全て、同じ水平方向DDA値であるが異なる垂直方向画素について動作し得る。いくつかの場合、垂直方向スケーラが列の左端の画素を水平方向スケーラに送った時、水平方向スケーラは画素を水平方向フィルタの15個のタップ全てに一括して書き込み得る。水平方向スケーラは、また、初期DDA X値がマイナスの場合に画素を正しく複製することを確実にするために中央のタップが列開始画素−7を指すように設定し得る。他の場合、水平方向スケーラがマルチタップのために端部画素を反復することなく端部画素について動作できるように、追加の画素を隣接するタイルから取り込むことができる。
【0048】
垂直方向スケーラが画素を処理し、画素を水平方向スケーラに送ると、画素がタップ上をシフトされ、中央タップのポインターが増加する。水平方向スケーラは、中央タップを現在のDDA値によって要求されている画素と比較し、値が一致すると、水平方向スケーラは出力画素の生成を開始し得る。水平方向スケーラがスケーリングされた出力画素を生成している任意のクロックにおいて、次のDDA値も現在の中央タップ値と一致した場合、水平方向スケーラは次の画素にシフトインせず、対応する垂直方向スケーラを次の画素に押し込むことを停止する。
【0049】
新しい列のタイルを最初に通るパスの際に、水平方向スケーラは同じ列の後続のパスの開始時にこの数値を再ロードする必要があるので、DDA値のコピーをスナップすることがある。一実施形態において、垂直方向スケーラは、新しい列が開始する場合水平方向スケーラに通知し得る。後続の列については、次のDDA値は現在のDDA値にDDAステップサイズを加えた数値であり得る。
【0050】
一実施形態において、水平方向スケーラは1つ以上の境界状態を判定するように構成し得る。水平方向シフトチェーンの第1のタップは、それが原画像の右端の画素であるかどうかを検出し、この状態検出に対応して、水平方向シフトレジスタチェーンはそれ以上の画素を垂直方向スケーラから受け付けないことがある。水平方向スケーラは、DDA値を増分し続け、タップ値をシフトし続けるが、新しい画素がシフトレジスタにシフト入力されないため、画像の右端の画素がシフトレジスタチェーンの入力で複写され得る。一実施形態において、各水平方向スケーラは、生成された画素数がスケーリング後の出力画像に期待される画素数と等しいかどうかも検出し得る。水平方向スケーラがこの状態を検出した場合、水平方向スケーラは出力画素の生成を停止し、画像の終端に到達したことを示すフラグを設定し得る。次に、水平方向スケーラは、垂直方向スケーラが開始する新しいパスを待ち得る。
【0051】
一実施形態において、水平方向スケーラに対する入力画素成分は、10.4符号なし形式の14ビットであり、これらの成分は、15ビット(11.4)の2の補数値まで拡大し得る。タップ係数は、16ビット(4.12)の2の補数値であり得る。この入力及び係数を掛け合わせて31ビット(15.16)の2の補数値が得られる。15タップの乗算器の出力は、丸め成分とともに一緒に加算され、35ビット(19.16)の2の補数が生成され得る。この後、画素値は14ビット(10.4)の符号なし数にクランプされ得る。
【0052】
上記の実施例と様々な成分及び数値の様々な形式及びビット長は、1つの可能な実施形態の代表である。他の実施形態において、垂直方向スケーラ及び水平方向スケーラ内の様々な種々の数値の形式及びビット長は変わり得ることが留意される。
【0053】
次に
図6を参照すると、1つ以上の実施形態に係る作業中タイル集合が示されている。一実施形態において、タイルのサイズは、128×8画素であり、作業中タイル集合は、3個のタイル(タイル112、120、128)を含み得る。一実施形態において、作業中タイル集合は、回転ユニットの出力ステージにあるタイルバッファに格納され得る。タイルバッファは、スケーラユニットの入力ステージにも連結され得る。一実施形態において、タイル112、120、128のそれぞれは、別々のタイルバッファに格納され得る。
図6に示す実施例は、説明目的に限定したものであり、他の実施形態において、作業中タイル集合は、他の数のタイルを含む場合があり、タイルのサイズが変わることがある。
【0054】
他の実施形態において、作業中集合の選択及びサイズは、各垂直方向スケーラのマルチタップ・ポリフェーズフィルタにおけるタップの数、及びスケーラユニットにおける垂直方向スケーラの数に依存し得る。作業中タイル集合の選択及びサイズは、スケーラユニットによって実行される垂直方向アップスケーリングまたはダウンスケーリングの倍率にも依存し得る。これらの要因は、各クロックサイクルにおいて取り込んでスケーラユニット内の複数の垂直方向スケーラに供給する必要がある画素の数を決定し得る。例えば、一実施形態において、スケーラユニットには4個の垂直方向スケーラがあり、各垂直方向スケーラは5タップのポリフェーズフィルタを含み、垂直方向スケーラは4倍のダウンスケーリングを行い得る。この実施形態において、スケーラユニット内の垂直方向スケーラの全てのタップについて十分な画素を取り込むために、少なくとも17個の画素が単一のクロックサイクルにおいて単一の列から取り込まれる必要がある。各タイルは列当たり8個の画素を含むので、この実施形態において少なくとも3個のタイルを取り込む必要がある。
【0055】
4個の別々の垂直方向スケーラには、3個のタイルから垂直列全体の24画素が供給され得る。各垂直方向スケーラが単一の垂直方向にスケーリングされた画素を出力するために5個の画素を選択し使用するように、垂直方向スケーラのそれぞれは5タップのポリフェーズフィルタであり得る。24画素の垂直方向の列は垂直方向スケーラに供給され、4個のポリフェーズフィルタの20個のタップのそれぞれは、スケーリングされた出力を生成するのに必要な画素を選択し得る。一実施形態において、マルチタップ・ポリフェーズフィルタの各タップは、画素列から選択するためのマルチプレクサを含み得る。最上部の垂直方向スケーラは上部の画素上で動作し、残りの3個の垂直方向スケーラのそれぞれは隣接する垂直方向スケーラより1ステップ下で動作し、クロック当たり合計4個の隣接した、垂直方向にスケーリングされた画素を生成する。
【0056】
ステップサイズが4の場合に対応したダウンスケーリングの一実施例において、各垂直方向スケーラはクロック当たり4個の画素を消費して、クロック当たり1個の垂直方向にダウンスケールされた画素を生成する。同様に、各水平方向スケーラは、原画像がクロック当たり16画素の正味速度で消費されるように、4クロック当たり1個の画素を生成し得て、スケーリングされた出力画像はクロック当たり1画素の正味速度で生成される。
【0057】
アップスケーリングの一実施例において、各垂直方向スケーラはクロック当たり0.25個の画素を消費して、クロック当たり1個の垂直方向にアップスケールされた画素を生成する。各水平方向スケーラは、入力画像がクロック当たり1画素の正味速度で消費されるように、クロック当たり1個の画素を生成し、スケーリングされた出力画像はクロック当たり4個の画素の正味速度で生成される。
【0058】
画像の開始点で、垂直方向スケーラは、フェッチロジックが3個の128×8バッファを画素で満たして、それらを24画素の列として垂直方向スケーラに供給するまで待ち得る。スケーラ制御論理は4個の垂直方向スケーラのために最初の4個のDDA値を計算し得る。第1の垂直方向スケーラは第1のDDA値(DDA−Init)で動作を開始し、第2の垂直方向スケーラは(DDA−Init+1ステップ)で動作を開始し、第3の垂直方向スケーラは(DDA−Init+2ステップ)で動作を開始し、第4の垂直方向スケーラは(DDA−Init+3ステップ)で動作を開始し得る。
【0059】
フェッチロジックは、クロック当たり24画素の列を垂直方向スケーラに供給し、水平方向に右端の画素に到達するまでステップを進める。現在の組の4個のDDAステップについて動作しながら、スケーラロジックは次の組のステップを見ることができる。次の反復において現在の先頭のタイルバッファが必要ない場合、スケーラロジックはもはやバッファを必要としないという信号をフェッチロジックにアサートし得る。この信号がアサートされたのに応えて、フェッチロジックが右端の画素を垂直方向スケーラに供給した時、フェッチロジックは、原画像の次のタイルを取り込み、作業中集合に追加することができる。この信号がアサートされていない場合、フェッチロジックは作業中集合の次の水平方向パスのために、現在のバッファの組をスケーラ制御論理に供給し続ける。
【0060】
このプロセスは、スケーラ制御論理が原画像の底部端を検出するまで続く。スケーラ制御論理が検出する多くの様々な境界状態が存在し得る。1つの状態は、いずれかの垂直方向スケーラのタップが原画像の最後の画素を超える画素を必要とする場合である。この状態が検出された場合、スケーラ制御論理は底部画素をそれを必要とするいずれかのタップに供給することによって複製し得る。一実施形態において、スケーラ制御論理は、垂直にスケーリングされた画素がいくつ生成されたかも把握し得る。次の反復時に、全ての垂直方向スケーラがスケーリングされた出力画像の終端部を越えて画素を生成しようとしている場合、スケーラ制御論理は「現在の列が完了」という信号をフェッチロジックにアサートし得る。
【0061】
次のタイルの列に移動する時、垂直方向スケーラのDDAが再び次の列の画像の最上部にあるので、垂直方向スケーラのDDAにはDDA−Init(4個の別々の垂直方向スケーラについて+0、1、2、及び3ステップ)が再設定される。垂直方向スケーラは、水平方向スケーラの制御論理が画像の右端に到達したと判定するまで列を処理し続け得る。原画像の右下部のタイルに到達すると、垂直方向スケーラは「原画像が完了」という信号をアサートし得る。いくつかの場合、フェッチロジックは、垂直方向スケーラ及び水平方向スケーラから独立してこれを判定し得る。
【0062】
作業中タイル集合は、またタイル112、120、128の左側のセクション114、122、130に追加の画素をそれぞれ含み得る。これらの7個の追加の画素は、水平方向スケーラのマルチタップ・ポリフェーズフィルタに対応するために取り込まれ、作業中タイル集合の一部として含まれ得る。一実施形態において、水平方向スケーラは15タップのポリフェーズフィルタを含み得る。このような実施形態において、タイルの左側の7個の追加の画素は、作業中タイル集合に含まれ得る。水平方向スケーラがタイル112の左端の画素に中心を置くとき、セクション114の追加の7個の画素が通常の方法で水平方向のスケーリングを実行するのに十分な画素を15タップフィルタに投入されることを可能にし得る。他の実施形態において、タイルの左側の追加の画素が取り込まれない時または作業中タイル集合に含まれない時は、端部画素がスケーラのフェッチロジックにより繰り返され得る。15タップのフィルタがタイル112,120,128の右端の画素にそれぞれ中心を置く時、右側のセクション116、124、132の追加の7個の画素は同様の役目を果たす。
【0063】
セクション118、126、134を含む作業中タイル集合の最も右側のセクションは、図形処理パイプラインの後のステージにおけるダウンスケーリングに対応するために作業中タイル集合に含まれ得る。クロマダウンスケーリングが後のステージで可能な場合、クロマダウンスケーリングユニットが正しく機能するように、スケーリングユニットによって生成される各タイルは各行に偶数の画素を有する必要がある。4:4:4の4:2:2への変換などのクロマダウンサンプリングの一実施例において、1個の画素を作るために2個の水平方向画素が用いられる。したがって、各行は偶数の画素を有することが必要となる。実行し得るスケーリングのタイプは、各実施形態によって異なり、スケーリングのタイプによって、多くの場合奇数の画素が生成され得る。これらの場合、スケーリングされたタイルの各行が偶数の画素を有するように、セクション118、126、134の追加の画素を用いて追加の画素を生成し得る。他の実施形態において、セクション118、126、134は作業中タイル集合から除外され得る。垂直方向スケーラがタイル112の全ての画素を使い終わったら、タイル112は退場させられ得る。次に、フェッチユニットが次のタイルを取り込み、このタイルをタイル120と128とともに新しい作業中タイル集合として含み得る。
【0064】
次に、
図7を参照すると、垂直方向スケーラユニットに供給される画素列の一実施形態のブロック図が示されている。垂直方向スケーラ142は垂直方向スケーラユニット140の最上部にあり、他の3個の垂直方向スケーラ144〜148のそれぞれは、隣接する垂直方向スケーラより1DDAステップだけ下であり得る。列の画素は、タイル(X,Y)、(X,Y+1)、(X,Y+2)に跨がりうる。
図7に示す画素は、原画像の単一の列から来たものであり、この単一の列は、
図6に示すような作業中タイル集合から来ている。一実施形態において、作業中タイル集合から来た列の全体は24画素を含み得る。他の実施形態において、作業中タイル集合から来た列の全体は、他の数の画素を含み得る。例えば、別の実施形態において、4個のタイルから成る作業中タイル集合を使用でき、各タイルは16行を有し、したがって、この実施形態の列全体の画素は64画素であり得る。
【0065】
次に
図8を参照すると、最初の水平方向パスにおける垂直方向スケーラによる画素選択の一実施形態のブロック図が示されている。垂直方向スケーラユニット140は、4個の垂直方向スケーラ142〜148を含み、破線は、各垂直方向スケーラが使用する画素を示す。垂直方向スケーラ142は、タイル(X,Y)の行0の画素に中心を置き、垂直方向スケーラ144は、タイル(X,Y)の行2の画素に中心を置き、垂直方向スケーラ146は、タイル(X,Y)の行4の画素に中心を置き、垂直方向スケーラ148は、タイル(X,Y)の行6の画素に中心を置く。この実施例において、初期DDA値は0であり、ステップサイズは2である。一実施形態において、タイル(X,Y)の行0の画素に中心を置く垂直方向スケーラ142の5タップのフィルタに対応するために、タイル(X,Y−1)の底部の2個の画素が画素列に(列の最上部に)含まれ得る。別の実施形態において、タイル(X,Y)の行0の画素は垂直方向スケーラ142の最上部3個のマルチプレクサによって反復して選択することができ、5タップのポリフェーズフィルタの最上部3個のタップにより使用され得る。
【0066】
一実施形態において、垂直方向スケーラ142〜148の各垂直スケーラは、5タップのポリフェーズフィルタを含み得る。垂直方向スケーラ142〜148の各垂直方向スケーラは、また5個のマルチプレクサを含むことができ、各マルチプレクサはポリフェーズフィルタの対応するタップのための画素を選択するように構成される。
図8に示す実施例において、各垂直方向スケーラによって選択される5個の画素は、順番に5個のタップに割り当てられる。例えば、タイル(X,Y−1)の行6の画素は、垂直方向スケーラ142のポリフェーズフィルタの最上部タップに連結されたマルチプレクサによって選択され、タイル(X,Y−1)の行7の画素は、そのポリフェーズフィルタの最上部タップから2番目のタップに連結されたマルチプレクサによって選択されるなどである。他の垂直方向スケーラのそれぞれは、同様にして、対応するポリフェーズフィルタのタップに連結されたマルチプレクサを用いて画素を選択し得る。
【0067】
図8に示す実施例は、倍率2の垂直方向ダウンスケーリングに対する画素列からの画素の選択を示す。垂直方向ダウンスケーリングの倍率2は、スケーリングされた画像の行数が、原画像の行数の半分であることを示す。この実施例は説明のみを目的としたものであり、他の実施形態において、垂直方向スケーラ142〜148は異なる画素に割り当てることができ、スケーラ間の間隔は、実行するダウンスケーリングまたはアップスケーリングのタイプによって異なり得る。
【0068】
一実施形態において、垂直スケーラ142〜148は、作業中タイル集合の左端から開始し、最初の水平方向パスにおける作業中タイル集合を右に水平方向に移動しながら画素列を処理し得る。作業中タイル集合を左端から右端まで移動し終わった後、垂直方向スケーラ142〜148のそれぞれは、作業中タイル集合をDDAステップサイズの4倍分だけ下に移動し得る。例えば、この特定のダウンスケーリングの例では、DDAステップサイズは2であり、作業中タイル集合の右端に到達した後、垂直スケーラユニット140の各垂直スケーラは画素列を8画素分下に移動し、作業中タイル集合を通る2番目の水平方向パスにおいてこれらの場所から画素を選択し得る。
【0069】
次に
図9を参照すると、作業中タイル集合を通る第2の水平方向のパスの間に作業中タイル集合から画素を選択する一実施形態のブロック図が示されている。2番目の水平方向パスにおいて、垂直方向スケーラユニット140の各垂直方向スケーラは、画素列の前回の位置より4 DDAステップサイズ下の位置から画素を選択し得る。2番目のパスについては、垂直方向スケーラ142はタイル(X,Y+1)の行0の画素に中心を置き、垂直方向スケーラ144はタイル(X,Y+1)の行2の画素に中心を置き、垂直方向スケーラ146はタイル(X,Y+1)の行4の画素に中心を置き、垂直方向スケーラ148はタイル(X,Y+1)の行6の画素に中心を置く。作業中タイル集合を通る水平方向パスのこのプロセスは、タイルの列の全体がスケーリングされるまで原画像を下に移動し続け得る。次に、このプロセスは、右隣のタイルの列の最上部に移動し、その列を下に移動し、全体の画像が垂直方向にスケーリングされるまでこれを続ける。この実施例は、
図8に示す実施例の続きであり、DDAステップサイズは2で2倍の垂直方向ダウンスケーリングに相当する。他の実施形態では、他のステップサイズ、ダウンスケーリング又はアップスケーリング倍率、他の取り込み画素数、及び他の数の垂直方向スケーラが用いられ得る。
【0070】
次に
図10を参照すると、垂直方向スケーラと水平方向スケーラとの間の接続の一実施形態のブロック図が示されている。一実施形態において、垂直方向スケーラユニット140の各垂直方向スケーラ142〜148は、水平方向スケーラユニット150の対応する水平方向スケーラ152〜158に連結され得る。垂直方向スケーラ142はクロックサイクル当たり単一の垂直方向にスケーリングされた画素を水平方向スケーラ152に出力し、垂直方向スケーラ144はクロックサイクル当たり単一の垂直方向にスケーリングされた画素を水平方向スケーラ154に出力し、垂直方向スケーラ146は、クロックサイクル当たり単一の垂直方向にスケーリングされた画素を水平方向スケーラ156に出力し、垂直方向スケーラ148はクロックサイクル当たり単一の垂直方向にスケーリングされた画素を水平方向スケーラ158に出力し得る。
【0071】
水平方向スケーラ152〜158はスケーリングされた画素を図形パイプラインの次のステージ(非表示)に出力し得る。一実施形態において、次のステージは正規化ユニットであり得る。別の実施形態において、水平方向スケーラ152〜158は、スケーリングされた画素をディスプレイユニット又はディスプレイコントローラに出力し得る。更に別の実施形態において、水平方向スケーラ152〜158は、スケーリングされた画素をメモリに出力し得る。他の実施形態において、他の数の垂直方向スケーラ及び水平方向スケーラがあり得る。
【0072】
次に
図11を参照すると、原画像をスケーリングする方法の一実施形態が示されている。説明の目的のために、本実施形態における手順が順番に示されている。以下に記載の方法の様々な実施形態において、説明されている要素の1つ以上が、同時に実行されてもよいし、示されているのとは異なる順番で実行されてもよいし、又は全体的に省略されてもよいことに留意願いたい。所望に応じて、他の追加要素も実行し得る。
【0073】
一実施形態において、スケーラユニットは原画像の複数の画素を受け取り得る(ブロック160)。様々な実施形態において、原画像はメモリに格納され、タイルバッファに格納され、図形処理パイプライン中の前のステージによってスケーラユニットに送られ、又は、他の様々な場所のいずれかに格納され若しくは他の様々な任意のユニットによって送られ得る。次に、画素列が複数の垂直方向スケーラに供給される(ブロック162)。次に、各垂直方向スケーラはDDA値及びDDAステップサイズに基づき、画素列から画素を選択し得る(ブロック164)。一実施形態において、各垂直方向スケーラは5タップのポリフェーズフィルタを含み得て、各垂直方向スケーラはフィルタの5個のタップに対して5個の画素を選択し得る。
【0074】
ブロック164の後、選択された画素は複数の垂直方向スケーラのそれぞれによって垂直方向にスケーリングし得る(ブロック166)。一実施形態において、4個の垂直方向スケーラを用い得るが、他の実施形態においては、他の数の垂直方向スケーラを用い得る。次に、垂直方向にスケーリングされた画素は、複数の水平方向スケーラに送られ得る(ブロック168)。一実施形態において、各垂直方向スケーラは対応する水平方向スケーラに連結され得る。4個の垂直方向スケーラを有する実施形態において、4個の水平方向スケーラがあり得る。
【0075】
次に、垂直方向にスケーリングされた画素は、複数の水平方向スケーラによって水平方向にスケーリングされる(ブロック170)。複数の水平方向スケーラはそれぞれ、垂直方向にスケーリングされた画素をシフトレジスタのチェインにシフトインし、そしてチェイン中をシフトでき、チェインが垂直方向にスケーリングされた画素で満たされると、水平方向スケーラは水平方向にスケーリングされた画素を生成し得る。次に、垂直方向及び水平方向にスケーリングされた画素は、図形処理パイプラインの次のステージに送られ得る(ブロック172)。一実施形態において、このパイプラインの次のステージは正規化ユニットであり得る。あるいは、他の実施形態において、垂直方向及び水平方向にスケーリングされた画素は、メモリ場所、ディスプレイコントローラ、又はディスプレイユニットに送られ得る。
【0076】
次に
図12を参照すると、画素をスケーリングする方法の一実施形態が示されている。説明の目的のために、本実施形態における手順が順番に示されている。以下に記載の方法の様々な実施形態において、説明されている要素の1つ以上が、同時に実行されてもよいし、示されているのとは異なる順番で実行されてもよいし、又は全体的に省略されてもよいことに留意願いたい。所望に応じて、他の追加要素も実行し得る。
【0077】
一実施形態において、複数の画素を1つ以上のタイルバッファから取り込み得る(ブロック180)。原画像は、複数のタイルに分割でき、各タイルバッファは原画像から単一のタイルを格納できる。一実施形態において、複数の取り込まれた画素は原画像の単一の列に位置し得る。次に、複数の取り込まれた画素は、複数の垂直方向スケーラによって垂直方向にスケーリングされ得る(ブロック182)。複数の垂直方向スケーラは、複数の取り込まれた画素を同時にスケーリングするように構成され得る。複数の垂直方向スケーラの各垂直方向スケーラは、取り込まれた画素をスケーリングするためのマルチタップ・ポリフェーズフィルタを含み得る。
【0078】
1つ以上の垂直方向にスケーリングされた画素が、各クロックサイクルの間、各垂直スケーラからそれぞれの水平方向スケーラに送られ得る(ブロック184)。次に、複数の垂直方向にスケーリングされた画素が、複数の水平方向スケーラによって水平方向にスケーリングされ得る(ブロック186)。各水平方向スケーラは、受け取った画素をスケーリングするためのマルチタップ・ポリフェーズフィルタを含み得る。各水平方向スケーラは、受け取った画素内をシフトするシフトレジスタのチェインも含み得、マルチタップ・ポリフェーズフィルタの各タップに対応するシフトレジスタがあり得る。
【0079】
次に
図13を参照すると、システム190の一実施形態のブロック図が示されている。図に示すように、システム190は、デスクトップコンピュータ200、ラップトップコンピュータ210、タブレットコンピュータ220、セル電話230、などのチップ、回路部品、構成部品等を表す。図示の実施形態において、システム190は、外部メモリ192に連結された少なくとも1個の集積回路198のインスタンスを含み得る。集積回路198は、1つ以上の(
図1の)パイプライン10のインスタンス又は1つ以上のパイプライン10の一部を含み得る。
【0080】
集積回路198は1つ以上の周辺機器194及び外部メモリ192に連結されている。電源電圧を集積回路198に供給し、並びに1つ以上の電源電圧をメモリ192及び/又は周辺機器194に供給する電源196も備えられている。様々な実施形態において、電源196はバッテリ(例えば、スマートフォン、ラップトップコンピュータ又はタブレットコンピュータの再充電式バッテリ)を表し得る。いくつかの実施形態において、1つ以上の集積回路198のインスタンスが含まれ得る(そして、1つ以上の外部メモリ192も含まれ得る)。
【0081】
メモリ192は、ダイナミックランダムアクセスメモリ(DRAM)、同期式DRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3等)、SDRAM(mDDR3などのモバイルバージョンのSDRAM及び/又はLPDDR2などの低電力タイプのSDRAMを含む)、RAMBUS DRAM(RDRAM)、スタティックRAM(SRAM)などの任意のタイプのメモリであり得る。1つ以上のメモリデバイスを回路基板に連結してシングルインラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)などのメモリモジュールを形成し得る。あるいは、これらのデバイスは、集積回路198とともにチップ・オン・チップ構成、パッケージ・オン・パッケージ構成、又はマルチチップモジュール構成に装填し得る。
【0082】
周辺機器194は、システム190のタイプに応じて、任意の所望の回路を含み得る。例えば、一実施形態において、周辺機器194は、wifi,Bluetooth(登録商標)、セルラー、全地球測位システムなどの様々なタイプの無線通信用デバイスを含み得る。周辺機器194は、RAM記憶装置、ソリッドステート記憶装置、又はディスク記憶装置を含む追加の記憶装置も含み得る。周辺機器194は、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又はその他の入力デバイス、マイクロフォン、スピーカなどのユーザインターフェースデバイスを含み得る。
【0083】
次に
図14を参照すると、(
図1の)パイプライン10に含まれている回路の代表である1つ以上のデータ構造体を含むコンピュータ可読媒体240の一実施形態のブロック図が示されている。概して、コンピュータ可読媒体240は、例えば、ディスク、CD−ROM、又はDVD−ROMの、磁気または光媒体などの任意の永続的記憶媒体、RAM(例えば、SDRAM、RDRAM、SRAMなど)、ROMなどの揮発性または不揮発性メモリ媒体、並びに、伝送媒体、又はネットワーク及び/若しくは無線リンクなどの通信媒体を介して送られる、電気的信号、電磁気的信号、デジタル信号などの信号、を介してアクセス可能な媒体を含み得る。
【0084】
概して、コンピュータ可読媒体240上の回路のデータ構造体は、プログラムによって読み取られ、回路を包含するハードウェアを組み立てるために直接的または間接的に用いられ得る。例えば、データ構造体は、Verilog又はVHDLなどの高レベル設計言語(HDL)でのハードウェア機能の1つ以上の動作レベルの記述若しくはレジスタトランファーレベル(RTL)記述を含み得る。記述は、記述を合成してゲートのリストを含む1つ以上のネットリストを合成ライブラリから生成する、合成ツールによって読み取られ得る。ネットリストは、回路を包含するハードウェアの機能も表すゲートの集合を含む。ネットリストは、次にマスクに適用する幾何学形状の記述する1つ以上のデータセットを生成するために配置配線され得る。次に様々な半導体製造工程でこのマスクを用いて回路に相当する半導体回路を製造し得る。または、コンピュータ可読媒体240上のデータ構造体は、(合成ライブラリの有無に関係なく)ネットリスト、または所望に応じたデータセットであり得る。更に別の代替では、データ構造体は、スケマティックプログラムの出力、又はネットリスト若しくはそこから導出されたデータセットであり得る。
【0085】
コンピュータ可読媒体240はパイプライン10の表現を含むが、他の実施形態は、パイプライン10の任意の部分または複数の部分の組み合わせ(例えば、垂直方向スケーラ、水平方向スケーラ)の表現を含み得る。
【0086】
上記の実施形態は限定しない実施例に過ぎないことが強調されるべきである。上記の開示が完全に理解されれば、当業者には多くの変形及び修正が明らかになるであろう。以下の請求項の範囲が、全てのかかる変形と修正を包含していると解釈されるものとする。