(57)【要約】本開示は、画像処理に役立つメモリの体系化スキームについて記述する。メモリ・コントローラ・アーキテクチャも記述される。それはこの体系化スキームを利用する。この体系化スキームおよびコントローラ・アーキテクチャは、ビデオ・シーケンスを作成する高性能、高品質画像処理のために特に役立つが、その他の画像処理設定にも適用することができる。これら記述された技術およびメモリの体系化構造によって、ビデオ・デバイスの他の記憶アプリケーションのためにメモリが共有される。
2009522698.tif 000002
【特許請求の範囲】
【請求項１】
第１の画像の第１のピクセル・データと、第２の画像の第１のピクセル・データとを含む第１のメモリ・ワードをメモリ内に格納することと、
前記第１の画像の第２のピクセル・データと、前記第２の画像の第２のピクセル・データとを含む第２のメモリ・ワードを前記メモリ内に格納することと
を備える方法。
【請求項２】
前記第１の画像の第３のピクセル・データと、前記第２の画像の第３のピクセル・データとを含む第３のメモリ・ワードを前記メモリ内に格納することを更に備える請求項１に記載の方法。
【請求項３】
前記第１のメモリ・ワードは更に、第３の画像の第１のピクセル・データを含み、前記第２のメモリ・ワードは更に、前記第３の画像の第２のピクセル・データを含む請求項１に記載の方法。
【請求項４】
前記第１および第２のメモリ・ワードは、前記メモリのうちの隣接する行である請求項１に記載の方法。
【請求項５】
前記第１および第２の画像の隣接するピクセルは、前記メモリのうちの隣接する行に格納され、前記第１および第２のメモリ・ワードはそれぞれ、複数の画像からのピクセルを含む請求項１に記載の方法。
【請求項６】
前記第１のピクセル・データと前記第２のピクセル・データとを同時に取得するために、前記メモリから、メモリ・アクセス・サイクルで、前記第１のメモリ・ワードへアクセスすることと、
前記メモリ・アクセス・サイクルで前記第１のメモリ・ワードへアクセスすることに応答して、前記第１の画像の第１のピクセル・データを、第１の画像処理モジュールへ送ることと、
前記メモリ・アクセス・サイクルで前記第１のメモリ・ワードへアクセスすることに応答して、前記第２の画像の第１のピクセル・データを、第２の画像処理モジュールへ送ることと
を更に備える請求項１に記載の方法。
【請求項７】
前記第１の画像処理モジュールにおいて、前記第１の画像の第１のピクセル・データを処理することと、
同時に、前記第２の画像処理モジュールにおいて、前記第２の画像の第１のピクセル・データを処理することと
を更に備える請求項６に記載の方法。
【請求項８】
前記第１の画像の第１のピクセル・データの処理されたバージョンを、前記第２の画像の第１のピクセル・データの処理されたバージョンと、共通のメモリ・ワードにおいて結合することと、
異なるメモリ・アクセス・サイクルで、前記共通のメモリ・ワードを、前記メモリへ格納し戻すことと
を更に備える請求項７に記載の方法。
【請求項９】
メモリ・アクセス・サイクルで、前記メモリから前記第１のメモリ・ワードへアクセスすることと、
前記メモリ・アクセス・サイクルで前記第１のメモリ・ワードへアクセスすることに応答して、前記第１および第２の画像の第１のピクセル・データを画像処理モジュールへ送ることと、
前記画像処理モジュールにおいて、前記第１および第２の画像の第１のピクセル・データを処理することと、
異なるメモリ・アクセス・サイクルで、前記第１および第２の画像の第１のピクセル・データの処理されたバージョンを、前記メモリに格納し戻すこととを更に備え、
前記第１および第２の画像の第１のピクセル・データの処理されたバージョンは、前記メモリの共通のメモリ・ワード内に格納される請求項１に記載の方法。
【請求項１０】
前記メモリに非ピクセル・データを格納することを更に備える請求項１に記載の方法。
【請求項１１】
前記第１のメモリ・ワードは、プロセッサによって実行可能な命令の幅と一致し、
前記方法は更に、
前記第１のメモリ・ワードの幅全体を、ピクセル・データとともにパックするために、前記第１の画像および前記第２の画像を含む複数の画像からの第１のピクセル・データを格納することを備える請求項１に記載の方法。
【請求項１２】
デバイスであって、
第１の画像の第１のピクセル・データと、第２の画像の第１のピクセル・データとを含む第１のメモリ・ワードと、
前記第１の画像の第２のピクセル・データと、前記第２の画像の第２のピクセル・データとを含む第２のメモリ・ワードとを含むメモリと、
前記第１および第２の画像の前記第１のピクセル・データを送るために、メモリ・アクセス・サイクルで、前記第１のメモリ・ワードにアクセスするコントローラと
を備えるデバイス。
【請求項１３】
前記メモリは、前記第１の画像の第３のピクセル・データと、前記第２の画像の第３のピクセル・データとを含む第３のメモリ・ワードを含む請求項１２に記載のデバイス。
【請求項１４】
前記第１のメモリ・ワードは更に、第３の画像の第１のピクセル・データを含み、前記第２のメモリ・ワードは更に、前記第３の画像の第２のピクセル・データを含む請求項１２に記載のデバイス。
【請求項１５】
前記第１および第２のメモリ・ワードは、前記メモリのうちの隣接する行である請求項１２に記載のデバイス。
【請求項１６】
前記第１および第２の画像の隣接するピクセルは、前記メモリのうちの隣接する行に格納され、前記第１および第２のメモリ・ワードはそれぞれ、ビデオ・シーケンスの複数の画像からのピクセルを含む請求項１２に記載のデバイス。
【請求項１７】
第１の画像処理モジュールと、第２の画像処理モジュールとを更に備え、
前記コントローラは、前記メモリ・アクセス・サイクルで前記第１のメモリ・ワードへアクセスすることに応答して、前記第１の画像の第１のピクセル・データを、前記第１の画像処理モジュールへ送り、
前記コントローラは、前記メモリ・アクセス・サイクルで前記第１のメモリ・ワードへアクセスすることに応答して、前記第２の画像の第１のピクセル・データを、前記第２の画像処理モジュールへ送る請求項１２に記載のデバイス。
【請求項１８】
前記第１の画像処理モジュールは、前記第１の画像の第１のピクセル・データを処理し、
同時に、前記第２の画像処理モジュールは、前記第２の画像の第１のピクセル・データを処理する
請求項１７に記載のデバイス。
【請求項１９】
前記コントローラは、前記第１の画像の第１のピクセル・データの処理されたバージョンを、前記第２の画像の第１のピクセル・データの処理されたバージョンと、共通のメモリ・ワードにおいて結合し、
前記コントローラは、異なるメモリ・アクセス・サイクルで、前記共通のメモリ・ワードを、前記メモリへ格納し戻す
請求項１８に記載のデバイス。
【請求項２０】
画像処理モジュールを更に備え、
前記コントローラは、前記メモリ・アクセス・サイクルで前記第１のメモリ・ワードへアクセスすることに応答して、前記第１および第２の画像の第１のピクセル・データを画像処理モジュールへ送り、
前記画像処理モジュールは、前記第１および第２の画像の第１のピクセル・データを処理し、
前記コントローラは、異なるメモリ・アクセス・サイクルで、前記第１および第２の画像の第１のピクセル・データの処理されたバージョンを、前記メモリに格納し戻し、
前記第１および第２の画像の第１のピクセル・データの処理されたバージョンは、前記メモリの共通のメモリ・ワード内に格納される請求項１２に記載のデバイス。
【請求項２１】
前記メモリは更に、非ピクセル・データを含む請求項１２に記載のデバイス。
【請求項２２】
命令を実行することができるプロセッサを更に備え、
前記第１のメモリ・ワードは、前記命令に関連付けられた幅と一致し、
前記メモリは、前記第１のメモリ・ワードの幅全体を、前記第１の画像および前記第２の画像を含む複数の画像からのピクセル・データとともにパックするために、前記複数の画像からの第１のピクセル・データを格納する請求項１２に記載のデバイス。
【請求項２３】
メモリであって、
第１の画像の第１のピクセル・データと、第２の画像の第１のピクセル・データとを含む第１のメモリ・ワードと、
前記第１の画像の第２のピクセル・データと、前記第２の画像の第２のピクセル・データとを含む第２のメモリ・ワードと
を備えるメモリ。
【請求項２４】
前記第１の画像の第３のピクセル・データと、前記第２の画像の第３のピクセル・データとを含む第３のメモリ・ワードを更に備える請求項２３に記載のメモリ。
【請求項２５】
前記第１のメモリ・ワードは更に、第３の画像の第１のピクセル・データを含み、前記第２のメモリ・ワードは更に、前記第３の画像の第２のピクセル・データを含む請求項２３に記載のメモリ。
【請求項２６】
前記第１および第２のメモリ・ワードは、前記メモリのうちの隣接する行である請求項２３に記載のメモリ。
【請求項２７】
前記第１および第２の画像の隣接するピクセルは、前記メモリのうちの隣接する行に格納され、前記第１および第２のメモリ・ワードはそれぞれ、ビデオ・シーケンスの複数の画像からのピクセルを含む請求項２３に記載のメモリ。
【請求項２８】
前記メモリに格納された非ピクセル・データを更に備える請求項２３に記載のメモリ。
【請求項２９】
前記メモリ・ワードは６４ビットを備え、前記第１および第２のピクセルはそれぞれ８ビットを備える請求項２３に記載のメモリ。
【請求項３０】
前記第１のメモリ・ワードは、第３の画像の第１のピクセル・データを含み、前記第２のメモリ・ワードは、前記第３の画像の第２のピクセル・データを含み、
前記第１のメモリ・ワードは、第４の画像の第１のピクセル・データを含み、前記第２のメモリ・ワードは、前記第４の画像の第２のピクセル・データを含み、
前記第１のメモリ・ワードは、第５の画像の第１のピクセル・データを含み、前記第２のメモリ・ワードは、前記第５の画像の第２のピクセル・データを含み、
前記第１のメモリ・ワードは、第６の画像の第１のピクセル・データを含み、前記第２のメモリ・ワードは、前記第６の画像の第２のピクセル・データを含み、
前記第１のメモリ・ワードは、第７の画像の第１のピクセル・データを含み、前記第２のメモリ・ワードは、前記第７の画像の第２のピクセル・データを含み、
前記第１のメモリ・ワードは、第８の画像の第１のピクセル・データを含み、前記第２のメモリ・ワードは、前記第８の画像の第２のピクセル・データを含む請求項２９に記載のメモリ。
【請求項３１】
前記メモリは、各々が２またはそれ以上の画像のピクセル・データを含む少なくとも５１２メモリ・ワードを定める少なくとも５１２行を含む請求項２９に記載のメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像およびビデオ処理に関し、更に詳しくは、ビデオ・シーケンスの画像フレーム処理のための記憶装置に関する。
【背景技術】
【０００２】
デジタル・ビデオ機能は、デジタル・テレビ、デジタル直接衛星放送システム、無線通信デバイス、ポータブル・デジタル・アシスタント（ＰＤＡ）、ラップトップ・コンピュータ、デスクトップ・コンピュータ、直接２方式通信デバイス（しばしば、「ウォーキ・トーキー」と称される）、および、例えばセルラ、衛星、または地上ベースの無線電話のような無線電話を含む広範囲のデバイスに組み入れることができる。これらのデバイスは、フル・モーション・ビデオ・シーケンスを作成し、修正し、送信し、格納し、再生する際に、従来のアナログ・ビデオ・システムに対して著しい改善を提供することができる。
【０００３】
多くのビデオ処理およびコーディング技術が、デジタル・ビデオ・シーケンスの通信のために確立された。Moving Picture Experts Group（ＭＰＥＧ）は、例えば、ＭＰＥＧ−１、ＭＰＥＧ−２、およびＭＰＥＧ−４を含む多くのビデオ・コーディング規格を開発した。他の規格は、ＩＴＵ  Ｈ．２６３規格およびＩＴＵ  Ｈ．２６４規格を含んでいる。更に、多くの所有権付き規格も様々な企業によって開発されている。また、新しい規格の出現および発展が続いている。
【０００４】
これらのビデオ規格の多くはデータ圧縮を利用する。例えば、多くのビデオ・コーディング技術は、インター・フレーム圧縮を提供するために、時間的またはインター・フレーム相関を活用することによってデータを圧縮するように設計されたグラフィクスおよびビデオ圧縮アルゴリズムを利用する。インター・フレーム圧縮技術は、画像フレームのピクセル・ベースの表現を、動作表現に変換することによって、フレームにわたったデータ冗長を活用する。更に、ビデオ圧縮技術はしばしば、空間またはイントラ・フレーム相関と称される、画像フレーム内の類似性を利用する。これによって、画像フレーム内の動作表現が更に圧縮されるイントラ・フレーム圧縮が可能となる。このイントラ・フレーム圧縮は、一般に、例えば、離散コサイン変換（ＤＣＴ）変換のような静止画像を圧縮する従来処理に基づく。
【０００５】
しかしながら、ビデオ圧縮を行なう前に、多くの「フロント・エンド」画像処理技術が、ビデオ・シーケンスの画像フレームについて実行される。例えば、フロント・エンド画像処理技術は、しばしば、画像センサから生成された画像について用いられる。そのような画像処理技術の例は、幾つか名前を挙げると、モザイク解除、レンズ・ロールオフ補正、スケーリング、色補正、色変換、および空間フィルタを含む。この処理は、例えば色調再生、彩度、色相再生、および鮮鋭度のような視覚的な画像品質特性を改善することができる。
【０００６】
例えば、ビデオ・アプリケーションで使用される幾つかの画像センサは、各センサの表面に配置されたカラー・フィルタ・アレイ（ＣＦＡ）を使用して、シーンをサンプリングする。様々なＣＦＡパターンを使用することが可能であり、各フォトサイトにつき３つの明度を得るために、デジタル・シグナル・プロセッサ（ＤＳＰ）を使用することができる。しかしながら、高品質のカラー・ビデオ画像を得るための画像処理技術が必要とされる。一般に、これらの画像処理技術が、ビデオ・コーディング・ユニットによる画像圧縮またはその他のビデオ・コーディングに先行する限りは、これらの技術は、本明細書において、「フロント・エンド」画像処理と称される。しかしながら、他の用語では、これらの画像処理技術は、「ポスト処理」ステップとも称される。なぜなら、これらの処理は、画像が画像センサによって取得された後になされるからである。
【０００７】
あいにく、これらの画像処理ステップは、リアルタイム・ビデオ電話通信（ＶＴ）アプリケーションにおけるリアルタイム・ビデオ・エンコードに対する問題を呈する。例えば、ビデオ・シーケンスのリアルタイム送信を保証するために、全ての画像処理を極めて迅速に行なう必要がある。従って、リアルタイム画像処理は、一般に幾つかの異なる画像処理モジュールによる広範囲な画像処理が実行されることを保証するために、非常に高い帯域幅メモリと大規模な記憶装置とを必要とする。あいにく、メモリ帯域幅およびメモリ・スペースは、ほとんどのビデオ・コーディング・デバイスの場合、制限されている。
【発明の開示】
【発明の概要】
【０００８】
本開示は、画像処理に役立つメモリ体系化スキームについて記述する。この体系化スキームは、ビデオ・シーケンスを生成する画像の高品質な高性能画像処理のために役立つが、その他の画像処理設定にも適用可能である。また、メモリの記述された技術および体系構成によって、メモリが、ビデオ・デバイスのその他のストレージ・アプリケーションで共有されるようになる。
【０００９】
この開示に従って、複数の画像のためのピクセル・データを含むようにメモリ・ワードが定義される。例えば、各メモリ・ワードは、処理パイプラインまたはビデオ・シーケンス内に、幾つかのシーケンシャルな画像のためのピクセル・データを含めることができる。メモリの隣接するメモリ・ワードは、シーケンシャルな画像の隣接するピクセルのデータを含むことができる。異なる画像のピクセル・データが、並列画像処理のために、異なる画像処理モジュールに送られるように、各メモリ・ワードからのピクセル・データの分離を容易にするメモリ・コントローラ・アーキテクチャもまた記述される。この開示に従って、共有されたメモリ・ワードにおける画像データの構成は、画像センサ処理を加速し、リアルタイム・ビデオ電話（ＶＴ）アプリケーションのために特に望ましい。更に、本明細書に記載のメモリ体系化スキームおよびコントローラ・アーキテクチャはまた、例えば、デバイスのデジタル・シグナル・プロセッサ（ＤＳＰ）によって実行される３２ビット命令または６４ビット命令や、他のタイプの非ピクセル情報のようなその他の情報を、メモリ・ワード内に格納する能力をサポートすることができる。従って、本明細書で記述されたメモリ構成およびコントローラ・アーキテクチャによって、メモリは、フロント・エンド・ビデオ処理アプリケーションおよびその他のアプリケーションの両方に共有されるようになる。
【００１０】
１つの実施形態では、本開示は、第１の画像の第１のピクセル・データと、第２の画像の第１のピクセル・データとを含む第１のメモリ・ワードを、メモリ内に格納することと、第１の画像の第２のピクセル・データと、第２の画像の第２のピクセル・データとを含む第２のメモリ・ワードを、メモリ内に格納することとを備える方法を提供する。
【００１１】
別の実施形態では、本開示は、第１の画像の第１のピクセル・データと第２の画像の第１のピクセル・データとを含む第１のメモリ・ワード、および、第１の画像の第２のピクセル・データと第２の画像の第２のピクセル・データとを含む第２のメモリ・ワードを含むメモリと、第１および第２の画像の第１のピクセル・データを送るために、メモリ・アクセス・サイクルで、第１のメモリ・ワードにアクセスするコントローラとを備えるデバイスを提供する。
【００１２】
別の実施形態では、本開示は、第１の画像の第１のピクセル・データと第２の画像の第１のピクセル・データとを含む第１のメモリ・ワードと、第１の画像の第２のピクセル・データと第２の画像の第２のピクセル・データとを含む第２のメモリ・ワードとを備えるメモリを提供する。
【００１３】
本発明の１または複数の実施形態の詳細は、添付図面および以下に記述される。本発明の他の特徴、目的、および利点は、詳細説明、図面、および特許請求の範囲から明らかになるであろう。
【詳細な説明】
【００１４】
本開示は、複数の異なる画像のためのピクセル・データが、メモリ・ワードに含まれているメモリのための体系スキームを記述する。言い換えれば、所与のメモリ・ワードは、多くの画像のためのピクセル・データを含むように定義することができる。幾つかの画像の連続的なピクセルが、メモリの隣接した行内に格納される。ここで、各行は、１または複数の画像について、ピクセル・データを含むメモリ・ワードによって定義される。本開示に従って、メモリ・ワード内の画像データの構成は、リアルタイム・ビデオ電話（ＶＴ）のために特に好適なフロント・エンド画像処理を加速することができる。並列画像処理のために、異なる画像のピクセル・データが、異なる画像処理モジュールに送られることを可能にするために、各メモリ・ワードからのピクセル・データの分離を容易にするメモリ・コントローラ・アーキテクチャも記述される。幾つかの実施形態では、所与のメモリ・ワードは、多くの並列画像処理動作によって「共有」され、多くの画像のための画像データが、共有されたメモリ・ワードから、多くの画像処理動作へと同時に逆多重化（すなわち、分散）される。これは、実際に、多くの画像処理動作が、共有されたメモリ・ワードに同時にアクセスし、メモリ・ワードの異なる部分内にカプセル化された異なる画像を処理することを可能にする。
【００１５】
記述されたメモリ体系化スキームおよびコントローラ・アーキテクチャはまた、例えば、デバイスのデジタル・シグナル・プロセッサ（ＤＳＰ）によって実行される３２ビット命令または６４ビット命令、キャッシュとして格納される情報、またはその他のタイプのデータのような他の情報を格納する能力をサポートすることができる。言い換えれば、メモリ体系化スキームは、例えば６４ビット幅のような比較的広いメモリ・ワードを可能にし、これは、メモリが、多くのアプリケーションのために使用されることを可能にする。同時に、記載されたメモリ・コントローラ・アーキテクチャによって、例えば、所与のメモリ・ワードから幾つかの画像のピクセルを分離するために、比較的広いメモリ・ワードが、より小さなユニットに分離される。これによって、幾つかの画像のピクセルが、フロント・エンド画像処理モジュールによって並列して処理される。このように、記載された体系化スキームおよびコントローラ・アーキテクチャは、フロント・エンド画像処理を加速することができ、これは、特に、リアルタイム・ビデオ電話（ＶＴ）アプリケーションに望ましい。
【００１６】
図１は、典型的なビデオ・コーディング・デバイス２を例示するブロック図である。ビデオ・コーディング・デバイス２は、ビデオ・データをコード化および送信することが可能なデジタル・ビデオ・デバイスの一部を形成することができる。ビデオ・データは、ビデオ・カメラから取得され、ビデオ・アーカイブから検索され、あるいはその他の方法で取得される。コーディング・デバイス２は、例えば、デジタル・テレビ、デジタル直接衛星放送システム、無線通信デバイス、携帯情報端末（ＰＤＡ）、ラップトップ・コンピュータ、デスクトップ・コンピュータ、デジタル・カメラ、デジタル記録デバイス、ネットワーク対応デジタル・テレビ、セルラまたは衛星無線電話、あるいはＶＴ機能を備えた任意の電気通信デバイスのようなデバイス内に実装される。コーディング・デバイス２は、例えばＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４、あるいはその他任意のビデオ・コーディング規格のようなビデオ・コーディング規格に従うことができる。コーディング・デバイス２は、例えば動作予測および動作補正のようなインター・フレーム・コーディング技術をサポートすることができ、例えば、イントラ・フレーム・コーディングのために使用されるイントラ予測コーディングや空間推定のようなその他の技術をサポートすることができる。
【００１７】
図１に示されるように、コーディング・デバイス２は、ビデオ・シーケンスをコード化するビデオ・コーディング装置４、およびコーディング前後のビデオ・シーケンスを格納するビデオ・メモリ１４を含む。デバイス２はまた、コード化されたシーケンスを他のデバイスへ送信するための送信機１６と、恐らくは、例えばビデオ・カメラのように、ビデオ・シーケンスを取得し、取得したシーケンスをメモリ１４に格納するためのビデオ・キャプチャ・デバイス１２を含む。コーディング・デバイス２の様々な要素は、通信バス１５を経由して通信可能に接続されうる。その他多くの要素もコーディング・デバイス１０に含まれうるが、簡略のために図１では例示していない。本明細書に記載された技術がその他様々なアーキテクチャで実装されうるように、図１に例示するアーキテクチャは単に典型例である。
【００１８】
ビデオ・メモリ１４は一般に、比較的大きなメモリ・スペースを含む。ビデオ・メモリ１４は、例えば、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、あるいはＦＬＡＳＨメモリを含みうる。メモリ１４は、いわゆる「ＮＯＲ」あるいは「ＮＡＮＤ」メモリ技術、あるいはその他のデータ・ストレージ技術に基づきうる。他の例において、ビデオ・メモリ１４は、不揮発性メモリあるいはその他のタイプのデータ記憶装置を含みうる。
【００１９】
ビデオ・コーディング装置４は、ハードウェア、ソフトウェア、ファームウェア、および／または１または複数のマイクロプロセッサの組み合わせを含むモバイル無線電話のためのいわゆる「チップ・セット」、デジタル・シグナル・プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはこれらの様々な組み合わせを備える。ビデオ・コーディング装置４は、一般に、ローカル・メモリ８に接続されたビデオ・コーダ６を含んでいる。ビデオ・コーダ６は、デジタル・ビデオ・データのエンコードおよびデコードのためのエンコーダ／デコーダ（コーデック）を備えうる。ローカル・メモリ８は、ビデオ・メモリ１４に対してより小型かつより高速なメモリ・スペースを備えうる。一例として、ローカル・メモリ８は、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）を備えうる。ローカル・メモリ８は、ビデオ・コーディング装置４の他の構成要素とともに統合された「オンチップ」メモリを備え、プロセッサ集約的なコーディング処理中、データへの極めて迅速なアクセスを提供する。しかしながら、メモリ１４および８は、同じメモリ部分に結合されうるし、あるいは、多くの他の構成で実現されうる。
【００２０】
ビデオ・コーディング装置４は、ローカル・メモリ８に対する書き込みおよびメモリ・フェッチを制御するメモリ・コントローラ１０を含んでいる。繰り返すが、図１に例示するアーキテクチャは単なる典型例であり、メモリ８およびメモリ・コントローラ１０内で実現される技術はまた、他のアーキテクチャへも適用され、外部メモリ１４の体系にも適用することができる。
【００２１】
一例として、ビデオ・コーダ６は、フロント・エンド・ビデオ処理ユニット１８およびビデオ・コーディング・ユニット１９を含むことができる。フロント・エンド・ビデオ処理装置１８は、一般に、画像品質を改善するためにビデオ・シーケンスのフレームについて１または複数の画像処理技術を実行し、もって、ビデオ・シーケンスの品質を改善する。例えば、フロント・エンド・ビデオ処理ユニット１８は、例えば、モザイク解除、レンズ・ロールオフ補正、スケーリング、色補正、色変換、および空間フィルタリングのような技術を実行することができる。更に、フロント・エンド・ビデオ処理ユニット１８は、他の技術を実行することができる。一般に、これら技術がビデオ・コーダ６によるコーディング前である限りは、ユニット１８によって実行される技術は、「フロント・エンド」画像処理技術と称される。
【００２２】
ビデオ・キャプチャ・デバイス１２は、各センサの表面に配置されたカラー・フィルタ・アレイ（ＣＦＡ）を含む画像センサを備えうる。この場合、ユニット１８によって実行されるフロント・エンド画像処理は、デバイス１２によって取得されたビデオ・シーケンスの品質を改善することができる。例えば、ビデオ・コーダ６は、ユニット１８を定義するようにプログラムされたＤＳＰを含むことができる。これは、画像キャプチャ・デバイス１２によって取得された画像のフロント・エンド処理を実行する。上述したように、メモリ８内で実現される体系化スキームは、画像処理帯域幅効率を改善し、メモリ８（又はメモリ１４）の同じ領域が、これらの両方のフロント・エンド画像処理目的、およびその他の記憶目的のために使用されるようにすることができる。
【００２３】
ビデオ・コーディング・ユニット１９は、ビデオ・コーディングを行なう。それは、例えばインター・フレーム圧縮またはイントラ・フレーム圧縮のような１または複数のビデオ圧縮技術を含む。例えば、ビデオ・コーディング・ユニット１９は、時間的すなわちインター・フレーム・データ相関を利用してインター・フレーム圧縮を提供するために、動作推定技術および動作補正技術を実施することができる。あるいは、またはそれに加えて、ビデオ・コーディング・ユニット１９は、空間的すなわちイントラ・フレーム・データ相関を利用してイントラ・フレーム圧縮を提供するために、空間推定技術およびイントラ予測技術を実施することができる。動作補正（またはイントラ予測）の出力は、「残差」（residual）と呼ばれ、一般に、コード化される現在のビデオ・ブロックと、動作推定または空間推定によって識別される予測ブロックとの間の差を示すデータのブロックを備える。
【００２４】
ビデオ・コーディング・ユニット１９が、残差を生成するために動作補正（またはイントラ予測）を行なった後、この残差を更にコード化し、データを更に圧縮するために、一連の追加ステップを実行することができる。これら実行される追加ステップは、使用されているコーディング規格に依存するが、一般に「残差コーディング」と称される。何れの場合も、ビデオ・コーディング・ユニット１９は、例えばビデオ・デバイス２の送信機１６を経由して他のデバイスへビデオ・シーケンスを通信する必要のあるデータ量を低減するために、これらビデオ圧縮技術のうちの１または複数を実行する。
【００２５】
本開示の技術は、フロント・エンド・ビデオ処理ユニット１８による画像処理中に容易に適用可能である。特に、本開示は、画像処理帯域幅効率を改善し、メモリ８（又はメモリ１４）の同じ領域が、例えばビデオ圧縮または非ビデオ・アプリケーションのためのような他の記憶目的のために使用されることを可能にするローカル・メモリ８（または、例えば外部メモリ１４のような類似のメモリ）のための体系化技術を考慮する。更に、本開示は、メモリ８（またはメモリ１４）内のデータ体系化スキームを利用することができるメモリ・コントローラ１０のためのアーキテクチャを提案する。フロント・エンド画像処理に関する典型的な目的のために記述されたが、本明細書で記述されたメモリ・アーキテクチャは、多くの画像が処理される他の環境にも適用されうる。
【００２６】
図２は、本明細書で記述したメモリ体系化技術を実施する典型的なデバイス２０を図示する別のブロック図である。この例において、デバイス２０は、メモリ２２と、メモリ２２へのアクセスを制御するメモリ・コントローラ２４とを含んでいる。メモリ・コントローラ２４は、（２８Ａ、２８Ｂおよび２８Ｃと呼ばれ、集合的に「モジュール２８」と称される）複数の画像処理ユニット２６に接続されることができる。簡略のために３つのモジュールのみが図示されているが、画像処理ユニット２６は、任意の数の画像処理モジュール２８を含むことができる。モジュール２８は、モザイク解除モジュール、レンズ・ロールオフ補正モジュール、スケーリング・モジュール、色補正モジュール、色変換モジュール、および空間フィルタ・モジュール、または、その他多くのフロント・エンド画像処理モジュールを含みうる。更に、モジュール２８は、同じ機能を実行する多くの画像処理モジュールを含む。これによって、異なる画像について、この機能を並列実行することができる。
【００２７】
本開示の技術に従って、幾つかの異なる画像に関連付けられたピクセルは、同じメモリ・ワード内に格納される。そして、メモリ・ワードは、ピクセルに分けられ、モジュール２８によって並列処理される。ある実施形態では、異なる画像に関連付けられた画像データは、同時にメモリ２２から読み取られ、モジュール２８へ分配される。実際、これによって、モジュール２８は、効率的な方法でメモリ２２を共有することができる。
【００２８】
メモリ・コントローラ２４は更に、例えばデジタル・シグナル・プロセッサ（ＤＳＰ）２５のような他のデバイス、または、その他のタイプのハードウェア、プロセッサ、またはロジック回路にも接続されうる。このように、メモリ２２の内容は、異なるタイプのハードウェア、プロセッサ、および処理ユニットにおいて使用されうる。繰り返すが、本開示は特に、メモリ２２の内容の画像処理に非常に役立つメモリ体系化スキームを考慮する。これは柔軟性が高く、他のタイプのデータもメモリ２２に格納することができる。
【００２９】
デバイス２０は、図１のデバイス２に相当しうるが、本開示は必ずしもこの点に限定されていない。例えば、メモリ２２は、メモリ８または１４の何れかに相当することができ、メモリ・コントローラ２４は、メモリ・コントローラ１０に相当することができる。画像処理ユニット２６は、フロント・エンド・ビデオ処理ユニット１８に相当することができ、ＤＳＰ２５は、ビデオ・コーディング・ユニット１９に相当することができる。しかしながら、繰り返すが、図２に例示するアーキテクチャは、多くのデバイスおよびシステムにより広く適用可能であり、図１のデバイス２に必ずしも限定されない。
【００３０】
本開示に従って、メモリ２２はメモリ・ワードに体系化される。各メモリ・ワードは、複数の異なる画像に関連付けられたピクセル・データを格納するために使用される。例えば、メモリ２２内のメモリ・ワードの各々は、幾つかの画像のためのピクセル・データをサポートするように定義することができる。一方、現在、ほんの僅かの画像しか格納されていないのであれば、所与のピクセル・データは、ピクセル・データで完全に占められる必要はない。一例として、幾つかの異なる画像用のそれぞれの第１のピクセルは、第１のメモリ・ワードに格納されうる。各異なる画像の次のピクセルはそれぞれ、第２のメモリ・ワードに格納されうる。したがって、幾つかの画像の連続的なピクセルは、メモリ２２の連続した行に格納される。各行は、幾つかの画像のピクセル・データを含むメモリ・ワードによって定義される。
【００３１】
メモリ・コントローラ２４は、１メモリ・ワードの異なるデータが、並列処理のためにモジュール２８のうちの異なる１つへ同時に送信されるように、メモリ２２内のメモリ・ワードからのデータ抽出を考慮するように構成される。モジュール２８の各々は、モジュールのうちの他のものの処理時間と本質的に近い（あるいは一致する）時間間隔内でそれぞれのデータを処理するように構成されうる。これは、画像データの効率的な同時処理を可能にする。
【００３２】
しかしながら、例えば実行可能命令のような非ピクセル・データを格納するために、特定のメモリ・ワードが使用される場合、メモリ・コントローラ２４は、十分なメモリ・ワード（この場合、命令）がＤＳＰ２５に送られることを可能にする。他の非ピクセル情報も、メモリ・ワードに格納されうる。メモリ・コントローラ２４は、メモリ・ワードの内容を定義するコマンドを受信することができる。そして、所与のメモリ・ワードが幾つかの異なる画像のためのピクセル・データを格納するために使用される場合、異なる画像に関連付けられたピクセル・データを並列処理できるように、メモリ・コントローラ２４は、メモリ・ワードからそのようなピクセル・データを同時に分けることができる。
【００３３】
図３は、本開示に従った典型的なメモリ体系化を例示する典型的なブロック図である。図３のデータ構造３０は、メモリ２２に格納されうる。図３に示すように、データ構造３０の各行は、複数の異なる画像、すなわちゼロまたはそれ以上の画像のためのピクセル・データを含むメモリ・ワードを備える。例えば、第１の行（第１のメモリ・ワード）は、画像Ｐのためのピクセル・データＰ０、画像Ｑのためのピクセル・データＱ０、および画像Ｒのためのピクセル・データＲ０を含みうる。Ｐ０は、画像Ｐの第１のピクセルを表わし、Ｑ０は、画像Ｑの第１のピクセルを表わし、Ｒ０は、画像Ｒのための第１のピクセルを表わしうる。他の画像の第１のピクセルも含まれうる。例えば、メモリ・ワードが幅６４ビットで、ピクセルがそれぞれ８ビットを含む場合、８つの異なる画像用の８つの異なるピクセルが、単一のメモリ・ワードに格納されうる。
【００３４】
同様に、第２の行（第２のメモリ・ワード）は、画像Ｐのためのピクセル・データＰ１、画像Ｑのためのピクセル・データＱ１、および画像Ｒのためのピクセル・データＲ１を含みうる。Ｐ１は、画像Ｐの第２のピクセルを表わし、Ｑ１は、画像Ｑの第２のピクセルを表わし、Ｒ１は、画像Ｒのための第２のピクセルを表わしうる。従って、画像Ｐ、ＱおよびＲの隣接するピクセルは、メモリの隣接する行に格納されうる。各行は、いくつかの異なる画像について、唯一のピクセル値のデータを含んでいるかもしれないが、所与の画像について１を超えるピクセルを、所与のメモリ・ワードに格納することも可能である。
【００３５】
図３のデータ構造３０の例では、全てのメモリ・ワードが、画像Ｐ、ＱおよびＲのためのピクセル・データを格納することができる。この場合、各画像は、Ｎ＋１個のピクセルを含みうる。ここで、Ｎ＋１は、画像の記憶のために割り付けられた行の数を表わす。以下により詳細に示すように、例えば、ほんの少しの画像しか処理されておらず、余分なスペースが、メモリ・ワードの各々に存在する場合、メモリ・ワードの１または複数のセクション（又はスロット）は、データを含んでいないこともありうる。実際は、単一の画像を格納し処理するために、同じ体系化スキームを使用できる場合もある。その場合、メモリ・ワードはそれぞれ、データの唯一のピクセルしか含まない。しかしながら、この場合、各メモリ・ワードの余分なスペースは一般に未使用だろう。
【００３６】
更に、データ構造３０は、Ｎ＋１個の行それぞれについて、例えば図２のメモリ２２内において、隣接したメモリ・スペース内で繰り返されうる。これによって、図４を用いて更に説明するように、追加の画像グループが、共有メモリ・ワードを用いて格納されるようになる。
【００３７】
図４は、本開示に従ったメモリ体系を例示する別の典型的なブロック図である。図４のデータ構造４０は、メモリ２２に格納され、本開示に従ったメモリの論理体系を表わす。図４に示すように、データ構造４０の各行は、複数の異なる画像用のピクセル・データを含むメモリ・ワードを備える。しかしながら、この場合、最初のＮ＋１個の行（最初のＮ＋１個のメモリ・ワード）は、画像Ｐ、ＱおよびＲのピクセル・データを含んでいる。一方、それ以降の行（それ以降のメモリ・ワード）は、画像Ｘ、ＹおよびＺのためのピクセル・データを含んでいる。
【００３８】
図３および図４に例示するようなメモリ・ワードの行構成は、フロント・エンド画像処理には極めて有利になりえる。この場合、メモリ・コントローラ２４は、異なる画像用のピクセル・データを同時に分け、画像処理ユニット２６の異なる画像処理モジュール２８へ、異なる画像用のピクセル・データを転送するように構成されうる。したがって、いくつかの画像は、画像処理ユニット２６によって並列処理され、これによって、メモリ２２は、多くのモジュール２８によって効率的に共有される。更に、メモリ２２内でのデータ構造３０（図３）の全体長さにわたって横切ることによって、メモリ・コントローラ２４は、画像Ｐ、Ｑおよび／またはＲのピクセルにすべてアクセスしたことを確認することができる。従って、データ構造３０内の隣接するメモリ・ワード内に、画像の全てのピクセルではなく、各メモリ・ワードに各画像の１つのみのピクセルを含めることが望ましい。この場合、データ構造３０を介した１つのパスが、画像処理ユニット２６によるデータ構造３０内の所与の画像の処理を保証することができる。
【００３９】
同時に、データ構造３０および４０内のメモリ・ワードの比較的大きな幅（行）は、非ピクセル・データあるいは他のタイプのデータを格納するために、そのようなデータが使用されることを可能にする。メモリに格納されうる他のタイプのデータの例は、グラフィックス深さ情報、グラフィックス・バッファのｚ−バッファ情報、あるいはコンピュータ実行可能なソフトウェア命令を含んでいる。また別の例では、格納されるデータは、非ビデオ・アプリケーションを含み、任意の目的のために使用されるキャッシュを備えることができる。任意のメモリ・ワードの特徴を定義するために、メモリ・コントローラ２４によって制御信号が受信されうる。６４ビットのメモリ・ワードの場合、幾つかのワードは、実行可能なソフトウェア命令でありうる。これは、アクセスされることが可能であり、実行のためにＤＳＰ２５へ転送されることが可能である。他のメモリ・ワードは、（図３および図４に示すように）異なる画像用のピクセル・データを含みうる。また、他のワードは、例えばグラフィックス・バッファ情報のような他のタイプのデータあるいはキャッシュを含みうる。重要なことに、メモリ・コントローラ２４は、メモリ２２のメモリ・ワードにおいて、これら異なるタイプの情報をサポートするように構成される。メモリ２２は、それ自体、様々な物理構成のうちの何れかを採用している。例えば、メモリ２２は、幅８ビットのメモリ・モジュールからなる８つのバンクを構成することができる。別の例として、メモリ２２は、幅３２ビット・ワードのアドレス可能なメモリ・モジュールからなる２つのバンクを構成することができる。また別の例として、メモリ２２は、幅６４ビット・ワードのアドレス可能なメモリを提供する単一のメモリ・モジュールを備えることができる。
【００４０】
図５は、本開示による異なるタイプのデータで構成されたメモリ・ワード５１−５５を示す別のブロック図である。ここで示すように、メモリ・ワード５１、５２、５３および５４は、幾つかの画像用のピクセル・データを含んでいる。例えば、メモリ・ワード５１は、８つの異なる画像のピクセル０を含んでいる。同様に、メモリ・ワード５２は、８つの異なる画像のピクセル１を含んでいる。メモリ・ワード５３は、８つの異なる画像のピクセル２を含んでいる。また、メモリ・ワード５４は、８つの異なる画像のピクセルＮを含んでいる。しかしながら、幾つかの場合、８未満のピクセルが、メモリ・ワード５１−５４に格納されうる。この場合、ピクセル「スロット」の１または複数は、空であるか、ヌル・データが格納されうる。
【００４１】
メモリ・ワード５１−５４内のピクセル「スロット」の各々は、特定のフロント・エンド画像処理モジュールに相当しうる。特に、８つの画像の各々は、各メモリ・ワードの同じ「スロット」内に、１つのピクセルを格納しうる。このように、特定の画像処理モジュールに画像を送る必要がある場合、画像は、メモリ・ワード５１−５４の、対応する「スロット」に格納されることができる。そして、メモリ・ワード５１−５４を介した１つのパスが、所与の画像のピクセルを、必要に応じて処理できることを保証することができる。また他の例では、同じピクセルが、多くの画像処理モジュールへ送られうる。
【００４２】
従来のフロント・エンド画像処理は一般に連続的である。すなわち、所与の画像に関し、最初の処理の全てが、次の処理が実行される前に実行される。本開示の教示は、連続的なフロント・エンド画像処理を実行する能力を持っているが、そのような処理が、シーケンスのうちの幾つかの異なる画像に関して並列して行なわれることを可能にする。例えば、再び図５に示すように、画像１は、第１の画像処理モジュールに相当するメモリ・ワード５１−５４のメモリ・スロットに格納される一方、画像２は、別の画像処理モジュールに相当するメモリ・ワード５１−５４のメモリ・スロットに格納されうる。その他の画像も同様に、メモリ・ワード５１−５４のメモリ・スロット内に格納されうる。
【００４３】
所与の画像は、本質的には、メモリ・ワードのいくつかのスロットを通り、次に、連続的なフロント・エンド画像処理と、メモリへの次の書き込みがなされる。言い換えれば、図５では、（メモリ・ワード５１−５４の第２のスロットに格納される）画像２は、（例えば第１のスロット）のような異なるスロットに予め格納されており、その後、処理されて、第２のスロットへの書き込みがなされうる。このように、すべての画像は、未だに連続方式で処理されうる。しかしながら、本メモリ体系化スキームによって、そのような連続的な処理が、幾つかの画像について並列して実行されることが可能となる（これは、本質的には、画像が、処理および書き込みを介してメモリの異なるスロットを横切るいわゆる画像処理パイプラインを生成する）。メモリ・コントローラ２４は、ピクセル・トラッキング、それぞれのメモリ・ワードからのピクセル分離、適切なモジュール２８へのピクセルの転送、異なるメモリ・ワードへのピクセルの書き込みを容易にするロジックを含む。
【００４４】
図６は、メモリ・コントローラ６０のブロック図である。それは、メモリ・コントローラ２４（図２）の１つの典型的な実施形態である。メモリ・コントローラ６０は、異なる処理モジュールへ、所与のメモリ・ワードのデータの異なる部分を転送することができるように、メモリに格納されたメモリ・ワードからの同時データ抽出を容易にするメモリ出力ロジック６１を含んでいる。更に、メモリ・コントローラ６０は、メモリ入力ロジック６２を含む。メモリ入力ロジックは、処理されたデータを受け取り、このデータを、メモリ・ワードへ結合して、メモリに書き込まれる。制御信号６３および６４は、データ・フローがどのようにしてメモリに入力され、どのようにしてメモリから出力されるのかを制御するために、ロジック６１および６２へ送られる。
【００４５】
例えば、メモリからメモリ・ワードが受け取られた場合、出力ロジック６１は、様々なサブパーツにデータを分けることができる。これらは、１または複数の異なるモジュールへ送られることができる。図６の例では、メモリ・ワードは、図５のメモリ・ワード５１−５５のうちの１つを含みうる。例えば、メモリ・ワード５１がメモリから受け取られると、メモリ・コントローラの出力ロジック６１は、８つの異なる画像のピクセル・データを分けることができる。制御信号６３は、どのタイプのデータがメモリ・ワードに含まれているのかを識別する。従って、（図５のメモリ・ワード５１に示すように）８つの異なる画像用のピクセル・データは、（図６に示すように）第１のデータ、第２のデータ、第３のデータ、第４のデータ、第５のデータ、第６のデータ、第７のデータ、および第８のデータに相当しうる。メモリ出力ロジック６１は、所与のメモリ・ワードの異なるデータを、異なる処理モジュールへ転送する。
【００４６】
一方、非ピクセル情報を備えるメモリ・ワード５５が、メモリから受け取られると、メモリ・コントローラの出力ロジック６１は、そのような情報を、どこへ送るかを決定することができる。例えば、メモリ・ワード５５が、コンピュータ実行可能命令である場合、メモリ・ワード５５は、実行のために、例えばＤＳＰ２５（図２）のような共通の処理モジュールへ転送されうる。繰り返すが、制御信号６３は、どのタイプのデータがメモリ・ワードに含まれているのかを識別し、この場合、例えば、ＤＳＰ２５によって実行されるコンピュータ実行可能命令のような非ピクセル・データを含むとしてメモリ・ワード５５を識別する。
【００４７】
メモリ入力ロジック６２は、一般に、出力ロジック６１の逆の処理を行い、メモリにデータを書き込む。従って、８つの異なる画像の８つのピクセルが、８つの異なるモジュールによって処理されると、メモリ入力ロジック６２は、異なる画像の処理されたピクセル・データを受け取り、この処理されたピクセル・データを、メモリ・ワードと結合して、メモリに書き込む。一方、処理されたデータが、非ピクセル・データに相当する場合、制御信号６４は、このようにしてデータの識別を行い、メモリ内に非ピクセル・データとして格納する。このように、メモリ・コントローラ６０は、メモリ・ワード内の幾つかの異なる画像のピクセル・データの操作を可能とし、更に、メモリの共通のデータ構造内に格納されたメモリ・ワードから非ピクセル・データを抽出したり、逆にメモリ・ワードへ非ピクセル・データを格納したりする機能をサポートする。
【００４８】
図７は、本開示の実施形態に従った処理を例示するフローチャートである。図７は、図２に関して説明される。図７に示すように、メモリ２２は、第１の画像の第１のピクセル・データと、第２の画像の第１のピクセル・データとを含む第１のメモリ・ワードを格納する（７０）。言い換えれば、メモリ・ワードは、２またはそれ以上の異なる画像用のピクセル・データを含んでいる。メモリ２２は更に、第１の画像の第２のピクセル・データと、第２の画像の第２のピクセル・データとを含む第２のメモリ・ワードを格納する（７１）。したがって、メモリ２２に格納された連続的なメモリ・ワードは、異なる画像の隣接するピクセルを格納することができる。
【００４９】
メモリ・コントローラ２４は、例えば、メモリ・サイクルで、メモリ２２から第１のメモリ・ワードにアクセスする（７２）。コントローラ２４によるメモリ・アクセスは、例えば、画像処理ユニット２６から送られるようなフロンド・エンド画像処理コマンドに応じうる。メモリ・コントローラ２４は、第１の画像の第１のピクセル・データを第１の画像処理モジュール（例えば、モジュール２８Ａ）へ送り、第２の画像の第１のピクセル・データを第２の画像処理モジュール（例えば、モジュール２８Ｂ）へ送る（７３）。モジュール２８Ａおよび２８Ｂは、第１および第２の画像の第１のピクセル・データを同時に処理し（７４）、処理結果をメモリ・コントローラ２４へ返す。メモリ・コントローラ２４は、その後、例えば別のメモリ・サイクルで、第１および第２の画像の処理された第１のピクセル・データのバージョンを共通のメモリ・ワードへ格納する（７５）。この処理されたバージョンは、オリジナルのメモリ・ワードとは異なるメモリ・ワードに格納されうる。更に、そのようなデータの後の処理が、画像処理モジュール２８のうちの異なるモジュールでなされるように、ピクセル・データの処理されたバージョンが、メモリ・ワードのそれぞれの異なるスロットに移動されうる。
【００５０】
そして、メモリ・コントローラ２４は、例えば、別のメモリ・サイクルで、メモリ２２から、第２のメモリ・ワードへアクセスし（７６）、第１の画像の第２のピクセル・データを、第１の画像処理モジュール（例えば、モジュール２８Ａ）へ送り、第２の画像の第２のピクセル・データを、第２の画像処理モジュール（例えば、モジュール２８Ｂ）へ送る（７７）。このようにして、モジュール２８Ａおよび２８Ｂは、画像処理のため、同じ画像の連続したピクセルを受け取る。モジュール２８Ａおよび２８Ｂは、第１および第２の画像の第２のピクセル・データを同時に処理し（７８）、処理結果をメモリ・コントローラ２４へ返す。メモリ・コントローラ２４は、その後、例えば別のメモリ・サイクルで、第１および第２の画像の処理された第２のピクセル・データのバージョンを共通のメモリ・ワードへ格納する（７９）。この処理は、モジュール２８Ａおよび２８Ｂが異なる画像のピクセルの全てを処理できるように、メモリ２２に格納された多くの連続的なメモリ・ワードについて続けられる。
【００５１】
図７はフロー図として示されているが、本開示の教示に従い、メモリ・アクセスは一般に、あらゆる画像処理と並列してなされることが注目されるべきである。これによって、読み取り／書き込みの間に、メモリに対するアイドルなサイクルが存在しないことを保証することができる。したがって、図７のフローチャートは、各ステップが、連続的に実行される必要があるものとして見られるべきでない。むしろ、図７に示すステップのうちの１または複数は、同時に実行されうる。一般に、画像処理モジュールが、処理のためにサイクルを用いる場合は常に、処理時間の効率的な使用を促進するために、同時メモリ・アクセスを実行することができる。
【００５２】
メモリ・サイクル中、メモリ・ワードは、メモリから抽出され、ピクセルへ分離され、処理のために異なるピクセルが転送される。次のメモリ・サイクル中、処理されたピクセルのバージョンが結合され、共通のメモリ・ワードに格納される。この処理は、メモリ・ワードのピクセルの全てが処理されるまで、メモリに格納された連続的なメモリ・ワードにわたって、ピクセル抽出と、その後引き続いてなされる書き込みとを繰り返すことによって、続けられる。しかしながら、繰り返すが、メモリ・アクセスは、一般に、処理モジュールによって実行される画像処理と並行してなされる。
【００５３】
各画像のピクセルは全て、隣接するメモリ・ワードに格納されうる。このように、メモリ・ワードに格納された所与の画像を処理する必要がある場合、メモリ・ワードにわたる完全なパスは、所与のモジュールがその画像のピクセルをすべて受け取ることを保証することができる。更に、幾つかの画像のピクセルが、メモリ・ワードに格納されるので、メモリ・ワードにわたる完全なパスによって、異なる画像に関して並行して実行される幾つかの連続する画像処理技術が可能となる。
【００５４】
繰り返すが、本開示に従って、メモリ・ワード内の画像データの構成によって、フロント・エンド画像処理帯域幅効率を改善することができる。これは、リアルタイムＶＴアプリケーションに特に好ましい。メモリ・コントローラ用に具体的に記述されたアーキテクチャは、異なる画像のピクセル・データが、並列画像処理のために異なる画像処理モジュールへ送られるようにするために、各メモリ・ワードからのピクセル・データの分離を容易にする。更に、本明細書に記載のメモリ体系化スキームは、例えば、ＤＳＰによって実行される３２ビット命令または６４ビット命令のような他の情報、あるいは、他のアプリケーションのために使用されるデータを格納する機能をサポートする。例えば、フロント・エンド画像処理におけるピクセルの記憶用途ではない場合、同じメモリがグラフィック・バッファとして使用されうる。同時に、記述されたメモリ・コントローラ・アーキテクチャは、例えば、所与のメモリ・ワードから幾つかの画像のピクセルを分離するために、比較的広いメモリ・ワードが、より小さなユニットへ分けられることを可能にする。これによって、幾つかの画像のピクセルが、フロンド・エンド画像処理モジュールによって並列して処理されるようになる。このようにして、説明した体系化スキームおよびコントローラ・アーキテクチャは、フロント・エンド画像処理を加速することができる。これは、リアルタイムＶＴアプリケーションに特に望ましい。更に、例えば、フロント・エンド・ビデオ処理が実行されていない場合、メモリを他の目的のために使用することができる等、メモリに柔軟性を与える。
【００５５】
しかしながら、本明細書で記述された技術に対し、様々な変形例がなされうる。例えば、幾つかの場合、メモリ・コントローラは、同じピクセル・データを、１を超える画像処理モジュールへ送るように構成されうる。更に、２Ｄ空間フィルタリングを行う幾つかの場合、画像処理モジュールのうちの１または複数は、入力の幾つかのライン（例えば、隣接した画像、または、隣接したピクセルに関連付けられた幾つかのピクセル）を受け取り、この幾つかのラインに基づいて、出力の１つのライン（この場合、フィルタされた出力）を出力することができる。これら実施形態およびその他の実施形態は、請求項の範囲内にある。
【図面の簡単な説明】
【００５６】
【図１】図１は、本明細書で記述されたメモリ体系化技術を実施する典型的なデバイスを図示するブロック図である。
【図２】図２は、本明細書で記述されたメモリ体系化技術を実施する典型的なデバイスを図示する別のブロック図である。
【図３】図３は、本開示に従った典型的なメモリ体系化を図示するブロック図である。
【図４】図４は、本開示に従った典型的なメモリ体系化を図示するブロック図である。
【図５】図５は、本開示に従った異なる画像のピクセル・データで構成された典型的なメモリ・ワードを図示するブロック図である。
【図６】図６は、本明細書で記述されたメモリ・ワードをサポートし、かつメモリがその他の目的に使用されることを可能にする典型的なコントローラ・アーキテクチャを図示するブロック図である。
【図７】図７は、本開示の実施形態に従った典型的な処理を図示するフローチャートである。
【図１】
2009522698.tif 000003
【図２】
2009522698.tif 000004
【図３】
2009522698.tif 000005
【図４】
2009522698.tif 000006
【図５】
2009522698.tif 000007
【図６】
2009522698.tif 000008
【図７】
2009522698.tif 000009
【国際調査報告】
2009522698.tif 000010
2009522698.tif 000011
2009522698.tif 000012