(57)【要約】【課題】  パイプラインオーバーラップが組み込まれた表示処理ラインバッファを提供する。【解決手段】  パイプラインオーバーラップが組み込まれた表示処理ラインバッファ用の装置、システムおよび方法を開示する。例えば、開示されている装置は、画素処理アルゴリズムを用いて画像の第１の部分の画素値を処理する処理ロジックと、処理ロジックに接続されている複数のラインバッファとを備える。複数のラインバッファは、画像のうち、第１の部分に隣接する複数のほかの部分の画素値を少なくともいくつか保持している。複数のラインバッファが保持する画像の複数のほかの部分の画素値は、第１の部分の画素値と画素処理アルゴリズムによって畳み込まれる、画像の複数の隣接する部分の画素値に対応する。これ以外の実施形態も複数開示する。【選択図】  図１
2009545085.tif 000002
【特許請求の範囲】
【請求項１】
画像に対して適用される画像処理パイプラインと対応付けられるパイプラインオーバーラップ係数を決定する段階と、
複数のラインバッファを提供する段階と、
前記複数のラインバッファを利用する前記画像処理パイプラインに基づいて画素データを処理する段階と
を備え、
前記画像は互いに水平方向に隣接する複数の画像領域に分割され、前記複数の画像領域はそれぞれ領域幅を持ち、前記複数のラインバッファは、前記領域幅および前記パイプラインオーバーラップ係数の２倍を収容するのに十分な幅を持つ
方法。
【請求項２】
前記画像処理パイプラインは複数のアルゴリズムを有し、各アルゴリズムは水平方向のオーバーラップに対応付けられており、パイプラインオーバーラップ係数を決定する段階は複数の前記水平方向のオーバーラップの和を決定する段階を含む
請求項１に記載の方法。
【請求項３】
各アルゴリズムの水平方向のオーバーラップは、各アルゴリズムが１つの画像領域の境界に隣接する画素に対して適用される場合に、各アルゴリズムがサンプリングする、隣接する画像領域の水平方向に互いに隣接する複数の画素値の数を含む
請求項２に記載の方法。
【請求項４】
前記領域幅は、画像領域の１次元における画素数を含む
請求項１に記載の方法。
【請求項５】
前記複数のラインバッファを利用する前記画像処理パイプラインに基づいて画素データを処理する段階は、前記画像処理パイプラインを用いて、前記複数のラインバッファに格納されている画素値に対して、任意の一の画像領域の画素値を畳み込む段階を含み、前記複数のラインバッファは前記任意の画像領域の画素を格納するとともに隣接する画像領域の画素を格納する
請求項４に記載の方法。
【請求項６】
画素処理アルゴリズムを用いて画像の第１の部分の画素値を処理する処理ロジックと、
前記処理ロジックに接続されている複数のラインバッファと
を備え、
前記複数のラインバッファは、前記画像のうち、前記第１の部分に隣接する複数のほかの部分の画素値を少なくともいくつか保持しており、前記複数のラインバッファが保持する前記画像の前記複数のほかの部分の画素値は、前記画素処理アルゴリズムによって前記第１の部分の画素値に対して畳み込まれる、前記画像において隣接する前記複数のほかの部分の画素値に対応する
装置。
【請求項７】
前記処理ロジックに接続されるメモリ
をさらに備え、
前記メモリは、前記第１の部分の前記画素値を少なくとも格納する
請求項６に記載の装置。
【請求項８】
前記処理ロジックに接続される表示ロジック
をさらに備え、
前記表示ロジックは、前記処理ロジックによって処理された画素値を受け取る
請求項６に記載の装置。
【請求項９】
前記第１の部分の画素値に対して前記画素処理アルゴリズムによって畳み込まれる、前記画像において隣接する前記複数のほかの部分の画素値は、各画素処理アルゴリズムが前記第１の部分の画素値に対して畳み込む画素値の数を足し合わせた和に対応する、隣接する前記複数のほかの部分の複数の画素値を含む
請求項６に記載の装置。
【請求項１０】
画素処理アルゴリズムを用いて画像の第１の部分の画素値を処理する処理ロジックと、
前記処理ロジックに接続され、前記第１の部分の前記画素値を少なくとも格納するメモリと、
前記処理ロジックに接続されている複数のラインバッファと
を備え、
前記複数のラインバッファは、前記画像のうち、前記第１の部分に隣接する複数のほかの部分の画素値を少なくともいくつか保持しており、前記複数のラインバッファが保持する前記画像の前記複数のほかの部分の画素値は、前記画素処理アルゴリズムによって前記第１の部分の画素値に対して畳み込まれる、前記画像において隣接する前記複数のほかの部分の画素値に対応する
システム。
【請求項１１】
前記メモリは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、または不揮発性メモリのうち１つを含む
請求項１０に記載のシステム。
【請求項１２】
前記第１の部分の前記画素値を受け取るアンテナ
をさらに備える請求項１０に記載のシステム。
【請求項１３】
前記アンテナは、ダイポールアンテナ、狭帯域メアンダラインアンテナ（ＭＬＡ）、広帯域ＭＬＡ、逆Ｆアンテナ、面状逆Ｆアンテナ、グーバーアンテナ、またはパッチアンテナのうち１つを含む
請求項１２に記載のシステム。
【請求項１４】
複数の命令を格納する機械アクセス可能媒体を備える物品であって、前記複数の命令が機械によって実行されると、前記機械は、
画像処理パイプラインに対応付けられるパイプラインオーバーラップ係数を決定し、
複数のラインバッファを提供し、
前記複数のラインバッファを用いる前記画像処理パイプラインに基づいて画素データを処理し、
前記画像処理パイプラインは画像フレームを処理し、前記画像データフレームは水平方向に互いに隣接する複数の画像領域に分割され、各画像領域は領域幅を持ち、前記複数のラインバッファは、前記領域幅および前記パイプラインオーバーラップ係数の２倍を収容するのに十分な幅を持つ
物品。
【請求項１５】
前記画像処理パイプラインは複数のアルゴリズムを有し、各アルゴリズムは水平方向のオーバーラップに対応付けられており、パイプラインオーバーラップ係数を決定する前記複数の命令が機械によって実行されると、前記機械は、
複数の前記水平方向のオーバーラップの和を決定する
請求項１４に記載の物品。
【請求項１６】
各アルゴリズムの水平方向のオーバーラップは、各アルゴリズムが１つの画像領域の境界に隣接する画素に対して適用される場合に、各アルゴリズムがサンプリングする、隣接する画像領域の水平方向に互いに隣接する複数の画素値の数を含む
請求項１５に記載の物品。
【請求項１７】
前記領域幅は、画像領域の１次元における画素数を含む
請求項１４に記載の物品。
【請求項１８】
前記複数のラインバッファを利用する前記画像処理パイプラインに基づいて画素データを処理するための前記複数の命令を機械が実行すると、前記機械は、
前記画素処理パイプラインを用いて、前記複数のラインバッファに格納されている画素値に対して、任意の一の画像領域の画素値を畳み込み、前記複数のラインバッファは前記任意の画像領域の画素を格納するとともに隣接する画像領域の画素を格納する
請求項１７に記載の物品。
【発明の詳細な説明】
【背景技術】
【０００１】
表示用の画像処理は通常、ラスタ方式で行われる。ラスタ方式によると、画素処理は順次行われ、フレーム内の最上行の左端の画素から開始されて、どの行もすべての画素を処理しつつフレーム中を１行毎に下がっていく。フレーム内のある１行の任意の１つの画素を処理している場合、画素処理アルゴリズム「フィルタカーネル」は、その周囲の垂直方向に隣接する画素にアクセスしなければならない場合がある。しかし、通常の処理パイプラインでは画素は普通ラスタ方式で順次走査されるので、周囲の垂直方向に隣接する画素は即座に利用可能でない場合もある。
【０００２】
周囲の垂直方向に隣接する画素にアクセスするための解決方法として一般的に用いられているのは、処理対象の画素の周囲に設けられている複数の行にわたる画素を格納しておくラインバッファを用いて、実施されるフィルタがこれらの垂直方向に隣接する画素を利用できるようにする方法である。このように、例えば、５×５の２次元（２Ｄ）フィルタカーネルを用いる場合、通常は周囲の４つの行の画素を格納するべく４つのラインバッファを利用する。９×９の２Ｄフィルタの場合には、８つのラインバッファを使用する必要がある。しかし、ラインバッファは高価なものである。特に、各ラインバッファが通常少なくとも１９２０個の画素値を格納する幅を持つフルハイビジョン（ＨＤ）画像処理では、コストが高い。複数のフィルタカーネルを使用する通常の画像処理パイプラインでは、フル幅のラインバッファの利用に関連するコストは受け入れがたいレベルに達し得る。
【図面の簡単な説明】
【０００３】
添付図面は、本明細書に組み込まれその一部を成し、本発明の原理に応じた１以上の実施形態を説明するものであって、本発明の記載と共に、実施形態を説明する。図面内容は、必ずしも実寸に即したものではなく、本発明の原理を説明することに重点を置く。図面は以下の通りである。
【０００４】
【図１】本発明の一部の実施形態に係る画像処理システムの一部を示す図である。
【０００５】
【図２】画像処理方式の一例を示す図である。
【０００６】
【図３】本発明の一部の実施形態に係るプロセスを示すフローチャートである。
【０００７】
【図４】画像処理パイプライン方式の一例を示す図である。
【０００８】
【図５】画像処理画素ラベリング方式の一例を示す図である。
【０００９】
【図６】本発明の一部の実施形態に係るパイプラインオーバーラップが組み込まれた画像処理方式の一例を示す図である。
【００１０】
【図７】本発明の一部の実施形態に係るシステムを示す図である。
【発明を実施するための最良の形態】
【００１１】
以下では添付図面を参照しつつ本発明を説明する。複数の図面において、同一の参照番号を用いて、同一または同様の構成要素を特定している場合がある。以下では特定の構造、アーキテクチャ、インターフェース、方法等の具体的且つ詳細な内容に基づいて本発明のさまざまな側面について十分に説明するが、こういった詳細な内容は説明を目的として述べられているに過ぎず本発明を限定するものと解されるべきではない。さらに、当業者であれば、本開示内容を鑑みることによって、本発明のさまざまな側面は、以下に記載する具体的且つ詳細な内容から離れたほかの例または実施形態において実現され得ることが分かる。以下に開示する内容では、公知のデバイス、回路、および方法については、不必要に詳細な内容によって本発明の説明が分かりにくくなるのを避けるべく、説明を省略している。
【００１２】
図１は、本発明の一部の実施形態に係る画像処理システム１００の一部を示す簡略化ブロック図である。システム１００は、表示処理エンジン（ＤＰＥ）１０２と、表示コントローラ１０４と、メモリコントローラ１０６と、メモリ１０８とを備えるとしてもよい。ＤＰＥ１０２は、複数のラインバッファ１１２を含むバッファ群を有する。
【００１３】
ＤＰＥ１０２は、画素データの処理をサポートすることができるものであれば、ハードウェア、ソフトウェアおよび／またはファームウェアの形態のロジックをどのように組み合わせるとしてもよい。ここで、本発明の一部の実施形態によると、ＤＰＥ１０２は、複数のフィルタカーネルを含むフィルタカーネル群に対応付けられる水平方向の総パイプラインオーバーラップを少なくとも評価できる処理ロジックを有するとしてもよい。ここで、該フィルタカーネル群は、ＤＰＥ１０２が実施するフィルタパイプラインを構成するものと考えられ得る。この点については以下で詳細に後述する。このため、本発明の一部の実施形態によると、ＤＰＥ１０２は、画素データの処理をサポートするために十分な幅を有するラインバッファ１１２を提供することができるとしてもよい。ここで、以下に詳述するように、水平方向に隣接し合う領域間におけるオーバーラップの程度を変化させるとしてもよい。また、ＤＰＥ１０２は１以上の処理コア（不図示）を有するとしてもよい。処理コアはそれぞれ、並列および／または同時に、本発明の実施形態に係るプロセスを実行することができるとしてもよい。ＤＰＥ１０２の利用および機能については、以下でさらに詳述する。
【００１４】
表示コントローラ１０４は、ＤＰＥ１０２から供給される処理後の画素データをディスプレイを駆動するのに適したフォーマット（つまり、表示向けデータ）に変換することができるものであれば、どのような処理および／または制御ロジック（つまり、ハードウェア、ソフトウェアおよび／またはファームウェアの形態）を有するとしてもよい。例えば、本発明はこれに限定されないが、ＤＰＥ１０２がコントローラ１０４に供給する処理後の画素データは特定のカラーデータフォーマット、例えば圧縮ＲＧＢ（赤緑青）フォーマットで、コントローラ１０４は、例えば対応する液晶ディスプレイ（ＬＣＤ）用駆動データレベル等を生成することによって、このデータを変形するとしてもよい。図１に示す構成ではＤＰＥ１０２とコントローラ１０４とが別々の構成要素として示されているが、本発明はこのような構成に限定されない。当業者であれば、例えば、表示コントローラ１０４の機能の一部またはすべてがＤＰＥ１０２によって実行される構成、または、ＤＰＥ１０２および／またはコントローラ１０４の機能が表示プロセッサおよび／またはマイクロプロセッサ等のホストプロセッサによって実現され得る構成に想到するであろう。
【００１５】
メモリコントローラ１０６は、フィルタカーネル群に応じてＤＰＥ１０２によって処理またはフィルタリングされる画素データ（つまり、画素値）をＤＰＥ１０２に供給することができるものであれば、どのようなメモリアクセスロジック（つまり、ハードウェア、ソフトウェアおよび／またはファームウェアの形態）を有するとしてもよい。コントローラ１０６はさらに、ＤＰＥ１０２によって処理された画素値に対応する画素データを格納するべく、メモリ１０８へのアクセスをＤＰＥ１０２に与えるとしてもよい。メモリコントローラ１０６はさらに、メモリ１０８に格納または保持されている画素データ（処理後または未処理）に対するアクセスを表示コントローラ１０４に与えるとしてもよい。しかし、本発明はメモリコントローラ１０６について、特定の実施形態に限定されるものではないので、この点についてはこれ以上詳細には説明しない。
【００１６】
メモリ１０８は、画素データを格納および／または保持するのに適しているメモリデバイスまたはメモリ機構であればどのようなものを有するとしてもよい。画素データは、例えば、輝度および色差信号（つまり、「ＹＵＶ」データ）の形態を取るとしてもよいし、または、ＲＧＢ（赤緑青）カラー画素データまたはカラー画素値であってもよいし、またはその他の可能な形態を取るとしてもよい。メモリ１０８は、ＲＡＭ（ランダムアクセスメモリ）メモリ等の不揮発性メモリ技術または例えばフラッシュメモリ等の揮発性メモリ技術のうちどのようなメモリ技術によって構成されるとしてもよく、本発明はメモリ１０８として利用されるメモリの種類によって限定されるものではまったくない。
【００１７】
図２は、画像処理の方法２００の一例を簡略化して示す図である。図２は、本発明の一部の実施形態に係るプロセスを説明することのみを目的としているので、図２に示す量または項目はいずれも本発明を限定するものと解釈されるべきではない。図２は、例えばハイビジョン（ＨＤ）の１９２０×１０８０表示フォーマット（つまり、フレーム２０２は１９２０個の垂直方向に延伸する列と１０８０個の水平方向に延伸する行で配置される画素値を含む）に対応する画像フレーム２０２を示す。ここで、フレーム２０２は、互いに水平方向に隣接し合う４つの領域２０４〜２０７に分割され、領域２０４〜２０７はそれぞれ、１０８０行と４８０列で配置される画素値を含み、境界２０８によって、隣接する領域に対して画定されている。図２に示す構成では４つの領域２０４〜２０７が示されているが、本発明は領域の数または領域の幅（例えば、１領域当たりのピクセル列数）によって限定されるものではない。
【００１８】
本発明の一部の実施形態に係る、フレーム２０２の所与のピクセル行に適用される画像処理方法によると、任意の領域２０４〜２０７の画素は、ほかの領域２０４〜２０７の画素とは別に処理されるとしてもよい。つまり、一例を挙げると、領域２０５の画素は領域２０６の画素とは別に処理されるとしてもよい。さらに、本発明の一部の実施形態によると、領域２０４〜２０６のそれぞれの領域の画素は別々に、順次および／またはシリアルに（つまり、１つの処理コアを用いる）処理されるとしてもよいし、または並列に（つまり、複数の処理コアを用いる）処理されるとしてもよい。また、本発明の一部の実施形態に係る画像処理方法は、ラスタ走査式画像処理方法とは区別されるとしてもよい。ここで、ラスタ走査型画像処理方法は、フレーム２０２の任意の行について、その行の画素をすべて順次および／またはシリアルに処理する。
【００１９】
図３は、本発明の一部の実施形態に係るプロセス３００を示すフローチャートである。説明の便宜上、図１に示すシステム１００および図２に示す方法２００を参照しつつプロセス３００を説明するが、本発明はこれに限定されるのではなく、本発明に係る適切なデバイスがサポートするほかのプロセスまたは方法も実施可能である。
【００２０】
プロセス３００は、画像処理パイプラインに対応付けられるパイプラインオーバーラップ値を決定することから開始されるとしてもよい（動作３０２）。本発明の一部の実施形態によると、ＤＰＥ１０２は前処理段階で動作３０２を実行するとしてもよい。つまり、動作３０２は、画素データを処理することを目的として１以上のフィルタカーネルを利用する画像処理パイプラインを実施するべくＤＰＥ１０２が構成される時点で実行されるとしてもよい。当業者であれば、ＤＰＥ１０２のようなデバイスが実行する画像処理は、例えば所定の画素値と周囲の画素の重み付け値とを畳み込むべく機能する数値マトリックスを実際には構成している、フィルタカーネルを１以上利用することに想到するであろう。また、当業者であれば想到するように、ＤＰＥ１０２のようなデバイスが、フィルタアルゴリズムに応じて、内部処理ロジックを用いて、画素値を処理して対応する数値カーネルを実施するとしてもよい。
【００２１】
図４は、一連のフィルタカーネルを用いる画像処理パイプライン４００の一例を示す図である。図４は、プロセス３００、特に動作３０２、を説明するために供されており、同図に示す量または項目は本発明を限定するものと解釈されるべきではない。パイプライン４００は、アルゴリズムまたはフィルタカーネルを３つ有する。具体的には、第１のアルゴリズム４０２（５×５の２次元（２Ｄ）フィルタカーネルに対応）、第２のアルゴリズム４０４（９タップの水平フィルタ、または１次元（１Ｄ）フィルタに対応）、および第３のアルゴリズム４０６（９×９の２Ｄフィルタに対応）を有する。当業者であれば、Ｎ×Ｎの２Ｄフィルタカーネル（例えば、５×５の２Ｄ、９×９の２Ｄ等）およびＮタップの水平フィルタといった用語の意味するところを理解するであろうが、これらの用語は今後の説明でも用いられる。アルゴリズム４０２〜４０６はアルゴリズムの一例で、図４において説明のみを目的として供されており、特定の画像処理アルゴリズムおよび／または特定の画像処理パイプライン方式に本発明を限定するものと解釈されるべきではない。
【００２２】
当業者であればさらに、アルゴリズム４０２を用いる画像処理方法は、少なくとも４ラインを有するラインバッファ４０８を用いて、画素値の行のうち、アルゴリズム４０２が処理している画素に対して垂直方向に隣接および／または近接する４行（上の２行と下の２行）の画素値を格納する必要があり得ることに想到する。同様に、アルゴリズム４０６を利用する場合には、少なくとも８ラインを有するラインバッファ４１０を利用して８行の画素値を格納する必要があり得る。さらに、当業者であれば想到するように、アルゴリズム４０４、つまり９タップの水平アルゴリズムは、互いに隣接する行の画素値を格納するラインバッファを利用する必要がない。これは、該アルゴリズムは処理対象の画素に対して、同一の行内で隣接および／または近接する画素の値を畳み込むためである。また、本発明の一部の実施形態によると、互いに水平方向に隣接する画像領域に分割されるフレームの画素データに対して画像処理を行うべくパイプライン４００を利用する場合、ラインバッファ４０８／４１０の幅（つまり、１ラインまたは１行当たりに格納される画素値の数）は、パイプライン４００が処理する画像フレームの水平方向の最大解像度よりも小さい。
【００２３】
図５は、画素をラベリングする方法５００の一例を示す図である。図５は、プロセス３００、特に、動作３０２を説明するために供されており、同図に示す量または項目はいずれも本発明を限定するものと解釈されるべきではない。図５には、領域境界５０６で互いから分離される２つの隣接する画像領域５０４および５０５の代表的な部分を示す。領域５０４内にあって領域境界に隣接する画素５０８が（例えば、画素５０８は、幅が２４０画素の領域の１つの行で２４０番目の画素である）、パイプライン４００（図４）を利用するＤＰＥ１０２によって処理される場合を考える。画素５０８について、アルゴリズム４０２を適用すると、画素５０８の値に対して、当該画素５０８の周囲の５×５のマトリックス５１０に含まれる画素の重み付け値を畳み込み、アルゴリズム４０４を適用すると、画素５０８の値に対して、当該画素５０８と同じ行内で両側に位置する４つの隣接する画素５１２の重み付け値を畳み込み、アルゴリズム４０６を適用すると、画素５０８の値に対して、当該画素５０８の周囲の９×９のマトリックス５１４に含まれる画素の重み付け値を畳み込む。
【００２４】
パイプライン４００（図４）を参照しつつ図５を考えると、領域５０４内の画素５０８にパイプライン４００が適用される場合、画素５０８の値がパイプライン４００によって正確に処理されるとすると、画素５０８の値に対して領域５０５内のいくつかの画素の値を畳み込むことになると考えられ得る。特に、画素５０８を含む行のみを考えると、画素５０８は領域５０４内で２４０番目の最後の画素であり（領域幅は例えば２４０画素である）、アルゴリズム４０２（５×５の２Ｄフィルタ）は、画素５０８の右側に隣接する２つの画素５１６（例えば、２４１番目と２４２番目の画素）の値を畳み込まなければならない。同様に、アルゴリズム４０４（９タップの水平フィルタ）は、画素５０８の右側に隣接する４つの画素５１７（例えば、２４１番目から２４４番目の画素）の値を畳み込まなければならない。しかし、このような畳み込みを実行する場合、アルゴリズム４０２がそれら４つの画素５１７のさらに右側に隣接する２つの画素５１８（例えば、２４５番目と２４６番目の画素）に畳み込みを先に行っていなければ、アルゴリズム４０４は２４０番目の画素の値（つまり、画素５０８の値）と２４４番目の画素の値を畳み込む場合に、２４４番目の画素について正確な値を用いることができない場合がある。
【００２５】
同様に、アルゴリズム４０６（９×９の２Ｄフィルタ）は画素５０８の右側に隣接する４つの画素５１７（例えば、２４１番目から２４４番目の画素）の値を畳み込まなければならない。しかし、このような畳み込みを実行する場合、アルゴリズム４０４がこれら４つの画素５１７のさらに右側に隣接する４つの画素５１９（例えば２４５番目から２４８番目の画素）に畳み込みを先に行っていなければ、そして、アルゴリズム４０２がこれら４つの画素５１９のさらに右側に隣接する２つの画素５２０（例えば、２４９番目と２５０番目の画素）に対して先に畳み込みを行っていなければ、アルゴリズム４０６は２４４番目の画素と２４０番目の画素の値とを畳み込む場合に２４４番目の画素について正確な値を用いることができない場合がある。このため、水平方向に互いに隣接する領域に分割される画像フレームの１つの領域内の画素に対してパイプライン４００を適用して得られる結果が、ラスタ走査型画素処理方法を利用する場合に得られる結果と数学的に略等しくなるように、本発明では水平方向にオーバーラップを定義する。該水平方向のオーバーラップは、処理中の領域に隣接する領域から取られる十分な数の画素を含む。
【００２６】
例えば、図５に示すように、本発明の一部の実施形態によると、領域５０４内の最右端の画素５０８に対してパイプライン４００を数学的に正しく適用できるように、オーバーラップ５２２を定義する。該オーバーラップは、最右端の画素に隣接する領域５０５内の１０個の画素を含む。このため、本発明の一部の実施形態によると、領域５０４の処理にオーバーラップ５２２を組み込むことによって、領域５０４を画像処理すると、標準的なラスタ走査型プロセスによって得られる結果に数学的に略等しい結果を得ることができる。
【００２７】
一般的に、本発明の一部の実施形態で定義されるパイプラインオーバーラップ係数は、以下の式１で表される。
【数１】
2009545085.tif 000003
ここで、画素処理パイプラインの各アルゴリズム「ｉ」には水平方向オーバーラップ係数ｈ＿ｏｖｅｒｌａｐ［ｉ］が対応付けられている。このような構成とする場合、例えば、パイプライン４００のアルゴリズム４０２の水平方向オーバーラップ係数は２で、パイプライン４００のアルゴリズム４０４と４０６の水平方向オーバーラップ係数は４である。このため、パイプライン４００のｐｉｐｅｌｉｎｅ＿ｏｖｅｒｌａｐ（式１）の値は「１０」となる。本発明の一部の実施形態によると、動作３０２は、式１に従ってパイプラインオーバーラップ係数をＤＰＥ１０２に決定させることを含むとしてもよい。ＤＰＥ１０２には、プロセス３００で用いられる画素処理パイプラインの各アルゴリズムの水平方向オーバーラップ係数ｈ＿ｏｖｅｒｌａｐ［ｉ］が与えられている。これに代えて、パイプラインオーバーラップ係数は、例えばホストプロセッサ等の別のデバイスからＤＰＥ１０２に与えられるとしてもよい。
【００２８】
プロセス３００では続いて、領域幅とパイプラインオーバーラップ係数の２倍とを収納するのに十分な幅を持つラインバッファを１以上提供する（動作３０４）。図６は、本発明の一部の実施形態に従って、画像領域に対応付けられている水平方向のオーバーラップを含む画像６００の一例を示す図である。この水平方向のオーバーラップの幅は、動作３０２で決定されるパイプラインオーバーラップ係数に対応する。図６は、プロセス３００、特に動作３０４を説明するために供されており、同図に示す量または項目はいずれも本発明を限定するものと解釈されるべきではない。
【００２９】
図６に示すように、一例として挙げる画像６００は、互いに水平方向に隣接する３つの領域に分割されている。そのうち左端の領域６０２は、本発明の一部の実施形態によると、隣接する領域６０６の複数の列を組み込んだオーバーラップ６０４を有するとしてもよい。オーバーラップ６０４の幅は、動作３０２において特定の画像処理パイプラインについて決定されるパイプラインオーバーラップ係数に対応する。フィルタカーネル等の画像処理アルゴリズムの多くは対称性を有するので、次の領域６０６は、本発明の一部の実施形態によると、２つのオーバーラップを有するとしてもよい。第１のオーバーラップ６０８は領域６０６の左側に位置する領域６０４の複数の列を組み込んでおり、第２のオーバーラップ６１０は領域６０６の右側に位置する領域６１２の複数の列を組み込んでいる。オーバーラップ６０８および６１０の幅もまた、動作３０２で決定されるパイプラインオーバーラップ係数に対応するとしてもよい。
【００３０】
第３番目の右端の領域６１２は、該領域６１２の左側に位置する領域６０６の複数の列を組み込んでいるオーバーラップ６１４を有するとしてもよい。オーバーラップ６１４の幅もまた、動作３０２で決定されるパイプラインオーバーラップ係数に対応するとしてもよい。このように、例えば、パイプライン４００が領域６０２、６０６および６１２の画素に対して別々に適用される場合、本発明の一部の実施形態によると、オーバーラップ６０４、６０８、６１０および６１４はそれぞれ、パイプラインオーバーラップ係数「１０」に等しい幅を持つとしてもよい。つまり、この例を用いると、オーバーラップ６０４、６０８、６１０および６１４それぞれの幅は、隣接する領域６０６、６０２、６１２および６０６のうち１０列を含めるものしてよい。
【００３１】
図６に示すように、処理対象の画像の水平方向および垂直方向の寸法がそれぞれｉｍａｇｅ＿ｗおよびｉｍａｇｅ＿ｈである場合、各領域「ｊ」の水平方向および垂直方向の寸法はそれぞれｒｅｇｉｏｎ＿ｗ（ｊ）およびｉｍａｇｅ＿ｈとなり得る。さらに、上述したように、各領域はｐｉｐｅｌｉｎｅ＿ｏｖｅｒｌａｐに等しい幅のオーバーラップの１つまたは２つに対応付けられ得る。このように、本発明の一部の実施形態によると、領域６０２および６１２のそれぞれについて、処理対象の画素データの全幅は以下の式で表されるとしてもよい。
【数２】
2009545085.tif 000004
一方、領域６０６について、処理対象の画素データの全幅は以下の式で表されるとしてもよい。
【数３】
2009545085.tif 000005
ここで、３つの領域すべての領域幅が同一で例えば２４０画素でありｐｉｐｅｌｉｎｅ＿ｏｖｅｒｌａｐ値が１０画素であるとすると、領域６０２および６１２について処理対象となる画素データの幅は２５０画素で、領域６０６について処理対象となる画素データの幅は２６０画素となる。このように、画像６００の各領域に対して画像処理パイプラインを適用して、全画像６００をラスタ走査型で処理する場合と数学的に同様の結果を得るためには、本発明の一部の実施形態によると、式（２）で表される幅のラインバッファを使用するとしてもよい。つまり、上記の例を用いると、そのようなラインバッファは、領域幅が２４０画素であるのに対して、２６０画素の幅を持つとしてもよい。
【００３２】
しかし、本発明は、画像フレームを処理する際に用いられる領域の数について特定の数に限定するものではなく、すべての領域の領域幅が同一である構成に限定されるものでもないことに留意されたい。また、本発明の範囲および精神から逸脱することなく、画像領域、画像区分、画像ストリップ、画像ストライド、画像帯、および／または画像部分といった用語をほとんど同じ意味で用いるとしてもよい。
【００３３】
図３に戻って説明を続けると、動作３０４を実行する場合、動作３０２でパイプラインオーバーラップ係数（例えば、ｐｉｐｅｌｉｎｅ＿ｏｖｅｒｌａｐ）についてアクセスまたは決定しているので、ＤＰＥ１０２は該オーバーラップ係数および所定の領域幅（例えば、ｒｅｇｉｏｎ＿ｗ）に基づいて１以上のラインバッファを提供する。ここで、これらのラインバッファの幅は、上述した式（２）に対応する。例えば、パイプライン４００（図４）および画像６００（図６）について、動作３０４は、幅が２６０画素であるラインバッファを１０個提供することを含む。
【００３４】
プロセス３００は続いて、処理対象の画素データを受信するとしてもよい（動作３０６）。本発明の一部の実施形態によると、動作３０６は、ＤＰＥ１０２にメモリコントローラ１０６を利用させてメモリ１０８に格納されている画素データにアクセスさせることによって実行されるとしてもよい。このように、例えば、動作３０６は、ＤＰＥ１０２が内部ＤＭＡ（ダイレクトメモリアクセス）エンジン（不図示）を利用してコントローラ１０６を介してメモリ１０８に格納されている画素データにアクセスすることを含むとしてもよい。ここで、本発明の一部の実施形態によると、メモリ１０８から取得する画素データの幅は動作３０４で提供されるラインバッファの幅に一致する。上述の例を用いて説明を続けると、ＤＰＥの処理対象が画素５０８（図５）で、動作３０４で提供されるラインバッファの幅が２６０画素である場合、動作３０６は、画素５０８を含む行を中心とした、領域６０６（幅＝２４０画素）の９行に対応する画素データ、および、これら９行について、領域６０２および６１２に対応する画素データからオーバーラップ領域６０８および６１０の画素データをＤＰＥ１０２が取得することを含むとしてもよい。
【００３５】
プロセス３００は続いて、画像処理パイプラインによって画素データを処理するとしてもよい（動作３０８）。本発明の一部の実施形態によると、ＤＰＥ１０２は、動作３０６で受け取った画素データを動作３０４で提供されたラインバッファ内に格納して、該画素データに対してフィルタパイプラインを適用することによって動作３０８を実行するとしてもよい。上述の例を用いて説明を続けると、ＤＰＥ１０２は、アルゴリズム４０２、４０４および４０６（つまり、パイプライン４００）を連続で利用して、動作３０６で受け取った画素データを処理して、該画素データをフィルタリングするとしてもよい。
【００３６】
図３に示す動作は、図中の順序で実行される必要はない。また、図示されている動作をすべて実行する必要は必ずしもない。また、ほかの動作に左右されない動作は、そのようなほかの動作と並行して実行されるとしてもよい。さらに、動作３０２および３０４は、例えば前処理段階などで、一回実行されるとしてもよい。これに続いて、２つ以上の処理コアおよび／または２つ以上のＤＰＥ１０２によって、動作３０６および３０８が複数回且つ同時に実行されるとしてもよい。ここで、例えば、動作３０６／３０８を１回実行することは、１つの領域（例えば、領域６０２）の画素を処理することと関連付けられ得る。一方、動作３０６／３０８をこれとは別に１回実行することは、別の領域（例えば、領域６０６）の画素を処理することと関連付けられ得る。また、同図に示す動作の少なくとも一部は、機械可読媒体において実施される複数の命令または複数の命令群としてインプリメントされるとしてもよい。
【００３７】
図７は、本発明の一部の実施形態に係るシステム７００の一例を示す図である。システム７００は、ホストプロセッサ７０２と、グラフィクスプロセッサ７０４と、メモリ７０６および７０８（例えば、ＤＲＡＭ：ダイナミックランダムアクセスメモリ、ＳＲＡＭ：スタティックランダムアクセスメモリ、不揮発性メモリ等）と、バスまたは通信経路７１０と、入出力（Ｉ／Ｏ）インターフェース７１２（例えば、ＵＳＢ（ユニバーサルシンクロナスバス）インターフェース、パラレルポート、シリアルポート、電話ポート、および／またはほかのＩ／Ｏインターフェース）と、ネットワークインターフェース７１４（例えば、有線および／または無線ＬＡＮ（ローカルエリアネットワーク）および／またはＷＡＮ（ワイドエリアネットワーク）および／またはＰＡＮ（パーソナルエリアネットワーク）および／またはほかの有線および／または無線ネットワークインターフェース）と、表示プロセッサおよび／またはコントローラ７１６と、ディスプレイ７１８とを備えるとしてもよい。システム７００はまた、ネットワークインターフェース７１４に接続されるアンテナ７１５（例えば、ダイポールアンテナ、狭帯域メアンダラインアンテナ（ＭＬＡ）、広帯域ＭＬＡ、逆Ｆアンテナ、面状逆Ｆアンテナ、グーバー（Ｇｏｕｂａｕ）アンテナ、パッチアンテナ等）を備える。一般的に、システム７００は表示向けに画素データを処理するのに適しているシステムであればどのようなシステムであってもよい。
【００３８】
システム７００には、さまざまな物理的実施形態が考えられ得る。例えば、システム７００は、パーソナルコンピュータ（ＰＣ）、ネットワーク化ＰＣ、メディアＰＣ、サーバーコンピュータシステム、ハンドヘルドコンピュータプラットフォーム（例えば、携帯情報端末（ＰＤＡ））、ゲームシステム（携帯可能またはそれ以外）、セットトップボックス（ＳＴＢ）、携帯電話ハンドセット等において、実施されるとしてもよい。また、システム７００の一部の構成要素は、ＳＯＣ（システムオンチップ）集積回路（ＩＣ）等の単一のデバイス内で実施され得るが、システム７００の構成要素は、複数のＩＣまたはデバイスにわたって別々に設けられるとしてもよい。例えば、ホストプロセッサ７０２ならびに構成要素７０４、７０６、７１２および７１４は、例えば単一のＰＣ内に含まれる複数のＩＣとして実施され得る一方、表示プロセッサ７１６は、ホストプロセッサ７０２ならびに構成要素７０４、７０６、７１２および７１４に対して通信経路７１０を介して接続されるディスプレイ７１８等の別のデバイスにおいて実施され得る。これに代えて、ディスプレイ７１８以外のシステム７００の構成要素はすべて、ディスプレイ７１８に接続される単一のプラットフォームまたはデバイスにおいて実施されるとしてもよい。そのようなプラットフォームまたはデバイスは、いくつか例をあげると、メディアＰＣまたはＳＴＢがある。
【００３９】
ホストプロセッサ７０２は、表示プロセッサ７１６に対して画素データおよび／または命令を与えることができる任意の制御および／または処理ロジック（つまり、ハードウェア、ソフトウェアおよび／またはファームウェアの形態）を含む特定用途向けまたは汎用プロセッサを有するとしてもよい。例えば、ホストプロセッサ７０２は、画像フレーム（または画像領域の複数の行等の、画像フレームの一部）の画素データをメモリ７０８に格納するとしてもよい。ここで、表示プロセッサ７１６は、メモリ７０８の画素データにアクセスするとしてもよい。一実施形態によると、ホストプロセッサ７０２は、パイプラインオーバーラップが組み込まれた表示処理ラインバッファをサポートする多数のタスクのうち任意のものを実行することができるとしてもよい。これらのタスクには、これに本発明が限定されるわけではないが、例えば、フィルタパイプライン（例えば、パイプライン４００）を構成するアルゴリズム等の画素処理アルゴリズムを表示プロセッサ７１６に提供すること、プロセッサ７１６に（アンテナ７１５およびインターフェース７１４を介して）マイクロコードをダウンロードすること、プロセッサ７１６内のレジスタを初期化および／または構成すること、サービスを中断すること、画素および／または画像データをアップロードおよび／またはダウンロードするためのバスインターフェースを提供すること等が含まれるとしてもよい。別の実施形態によると、これらの機能の一部またはすべてが表示プロセッサ７１６によって実行されるとしてもよい。さらに、図７はホストプロセッサ７０２と表示プロセッサ７１６とを別々の構成要素として示しているが、本発明はこのような構成に限定されるものではなく、当業者であればプロセッサ７０２および７１６を、システム７００の他の構成要素と共に、単一のＩＣ内で実施し得ることに想到するであろう。
【００４０】
バスまたは通信経路７１０は、システム７００の構成要素のうち任意の構成要素間で、情報（例えば、画素データ、命令等）を伝送するための任意の機構を有するとしてもよい。例えば、本発明はこのような構成に限定されないが、通信経路７１０は、メモリ７０６または１０８と表示プロセッサ７１６との間で例えば画素データを伝送することができる多目的バスを有するとしてもよい。これに代えて、通信経路７１０は無線通信経路を有するとしてもよい。さらに、グラフィクスプロセッサ７０４は、表示プロセッサ７１６にメモリ７０６／７０８との間で画素データの送受信を行わせることができる機能を実現するメモリコントローラ（不図示）を有するとしてもよい。
【００４１】
表示プロセッサ７１６は、本発明の一部の実施形態に従ってパイプラインオーバーラップが組み込まれた表示処理ラインバッファを実施することができ、処理後の画素データをディスプレイ７１８に与えることができる、任意の制御および／または処理ロジック（つまり、ハードウェア、ソフトウェアおよび／またはファームウェアの形態）を有するとしてもよい。さらに、プロセッサ７１６は、ＤＰＥ１０２を１以上有するとしてもよいし、または、上述したようなＤＰＥ１０２の機能を実現するとしてもよい。さらにプロセッサ７１６は、プロセス３００を実施するＤＰＥ１０２が生成する、処理後の画素データをさらに処理して、例えばカラー画素値を対応する表示駆動データレベル等に変換するとしてもよい。図７では表示プロセッサ７１６を独立構成要素として示しているが、本発明はこのような構成に限定されず、当業者であれば、例えば表示プロセッサ７１６の機能の一部またはすべてがグラフィクスプロセッサ７０４および／またはホストプロセッサ７０２によって実行され得ることに想到するであろう。
【００４２】
最後になったが、ディスプレイ７１８は、表示プロセッサ７１６から供給され、ＤＰＥ１０２によって処理される画素データを表示することができるデバイスであればどのようなものであってもよい。ここで、優れた例をいくつか挙げると、ディスプレイ７１８は液晶ディスプレイ（ＬＣＤ）またはプラズマディスプレイパネル（ＰＤＰ）であってもよい。しかし、本発明は、ディスプレイ７１８で利用される表示パネルについて特定の種類に限定されるものではない。
【００４３】
このように、本発明の一部の実施形態によると、パイプラインオーバーラップを含むようにサイズが決定されるラインバッファを利用した表示プロセッサおよび／または表示処理エンジンによって、複雑で高品質の画素処理アルゴリズム（例えば、動き補償デインターレース、モスキートノイズ低減等）を、水平方向に互いに隣接する複数の領域に分割される画像に対して行われる処理方法において利用することができるようになるとしてもよい。ここで、このような処理方法によれば、上述したアルゴリズムを数学的に正確に実行することができるとともに、表示処理パイプライン専用のシリコン領域についてコストを最小化することができる。
【００４４】
本発明に整合する１以上の例を以上で説明して本発明を図示および説明したが、上記の説明は本発明をすべて網羅しているものではなく、また本発明の範囲を開示されている特定の実施形態に限定するものでもない。上記の教示内容に鑑みて変形および変更を行うことは明らかに可能であり、または、本発明のさまざまな実施形態を実施することによって本発明を変形および変更し得る。例えば、図１および同図に関連する説明はメモリコントローラ１０６に接続されている単一の表示処理エンジン１０２を示すものであるが、当業者であれば、本発明に係る表示処理システムは複数の表示処理エンジンを利用して、各表示処理エンジンが本発明に従って動作して、複数の表示処理エンジンは１以上のメモリコントローラに接続される構成としてもよいことに想到するであろう。多くのほかの実施形態に基づいて、パイプラインオーバーラップが組み込まれた表示処理ラインバッファを実現し得ることは明らかである。
【００４５】
本願の明細書において記載したデバイス、素子、動作、データの種類、命令等はいずれも、明示的に特定されていなければ、本発明にとって本質的または不可欠なものと解釈されるべきではない。また、本明細書において、冠詞「ａ（１つ）」は１以上を意味するものとする。「接続された」または「応答する」または「〜と通信する」といった用語または表現は、本明細書または本願特許請求の範囲において、広く解釈されるべきである。例えば、「〜に接続された」という表現は、使用されている文脈に応じて適切に解釈され、通信用に接続された状態、電気的に接続された状態、および／または動作可能に接続された状態を意味するものであってよい。さらに、当業者であれば、画素、画素値、画素データ、表示データおよび／または画像データは略同じ意味を指す用語として利用され得ることに想到するであろう。本発明の精神および原理から大きく離れることなく、本発明の上述した実施形態を変更および変形するとしてもよい。そのような変更および変形はすべて、本開示内容の範囲に含まれて本願の特許請求の範囲によって保護されるべく、本明細書に含まれるものとする。
【図１】
2009545085.tif 000006
【図２】
2009545085.tif 000007
【図３】
2009545085.tif 000008
【図４】
2009545085.tif 000009
【図５】
2009545085.tif 000010
【図６】
2009545085.tif 000011
【図７】
2009545085.tif 000012
【国際調査報告】
2009545085.tif 000013
2009545085.tif 000014