(57)【要約】【課題】データ転送オーバーヘッドが低減した、バースト・アクセス能力を持つメモリ・デバイスを適用することによってデータ要素を格納する方法を提供すること【解決手段】  データ要素 (1〜12) をメモリ・デバイス (118) に格納する方法は、データ要素 (1〜12) をデータ要素 (1〜12) の第一構成の組 (102〜108) にグループ化する第一グループ化ステップと、各データ要素 (1〜12) の第一コピーをデータ・ユニット (120) に書き込む第一書き込みステップであって、このステップによって、この第一構成の組の内の第一組 (102) に属するデータ要素 (1,2,3) の第一コピーが、第一データ・ユニット (120) に書き込まれる、第一書き込みステップと、データ要素 (1〜12) を、データ要素 (1〜12) の第二構成の組 (110〜116) にグループ化する第二グループ化ステップと、各データ要素 (1〜12) の第二コピーをさらなるデータ・ユニット (122) に書き込む第二書き込みステップであって、このステップによって、この第二構成の組の内の第一組 (110) に属するデータ要素 (1, 5, 9) の第二コピーが、さらなるデータ・ユニット (122) である第二データ・ユニット (122) に書き込まれる、第二書き込みステップ、を含む。
2005518584.tif 000002
【特許請求の範囲】
【請求項１】
バースト・アクセス能力を持つメモリ・デバイスを適用することによってデータ要素を格納する方法であって、
‐ 前記データ要素を、データ要素の第一構成の組にグループ化する第一グループ化ステップと、
‐前記各データ要素の第一コピーを、前記メモリ・デバイスのデータ・ユニットに書き込む第一書き込みステップであって、これにより、前記第一構成の前記組の内の第一組に属するデータ要素の第一コピーが、前記データ・ユニットの第一データ・ユニットに書き込まれる第一書き込みステップと、
を含む、データ要素を格納する方法において、
前記方法が、さらに、
‐前記データ要素をデータ要素の第二構成の組にグループ化する第二グループ化ステップと、
‐前記各データ要素の第二コピーを、前記メモリ・デバイスのさらなるデータ・ユニットに書き込む第二書き込みステップであって、これにより、前記第二構成の前記組の第一組に属するデータ要素の第二コピーが、前記さらなるデータ・ユニットの第二データ・ユニットに書き込まれる第二書き込みステップと、
を含むことを特徴とする方法。
【請求項２】
前記第一グループ化ステップが、前記第一コピーを後で読み出すことに基づいていることを特徴とする、請求項1に記載の方法。
【請求項３】
前記メモリ・デバイスが、同期ダイナミック・ランダム・アクセス・メモリであることを特徴とする、請求項1に記載の方法。
【請求項４】
前記第一構成の前記組の内の前記第一組が、データ要素のデータ・ブロックに対応することを特徴とする、請求項1に記載の方法。
【請求項５】
前記第一グループ化ステップが、データ要素の前記データ・ブロックの寸法に基づいていることを特徴とする、請求項4に記載の方法。
【請求項６】
前記第一グループ化ステップが、前記第一構成の前記組の前記第一組に属するデータ要素の前記第一コピーの読み込みアクセスを数回行うことに基づいていることを特徴とする、請求項4に記載の方法。
【請求項７】
前記データ要素が、イメージの各ピクセルの値に対応していることを特徴とする、請求項4に記載の方法。
【請求項８】
前記第一グループ化ステップが、表示モードがインターレース型であるか、またはプログレッシブ型であるか、に基づいていることを特徴とする、請求項６に記載の方法。
【請求項９】
データ要素をプロセスするためのプロセッサと、
バースト・アクセス能力を持つ、前記データ要素を格納するためのメモリ・デバイスと、
を有する、プロセッシング装置であって、
前記プロセッシング装置が、
‐ 前記データ要素を、データ要素の第一構成の組にグループ化する第一グループ化ステップと、
‐前記各データ要素の第一コピーを、前記メモリ・デバイスのデータ・ユニットに書き込む第一書き込みステップであって、これにより、前記第一構成の前記組の内の第一組に属するデータ要素の第一コピーが、前記データ・ユニットの第一データ・ユニットに書き込まれる第一書き込みステップと、
を含む方法であって、
‐前記データ要素をデータ要素の第二構成の組にグループ化する第二グループ化ステップと、
‐前記各データ要素の第二コピーを、前記メモリ・デバイスのさらなるデータ・ユニットに書き込む第二書き込みステップであって、これにより、前記第二構成の前記組の第一組に属するデータ要素の第二コピーが、前記さらなるデータ・ユニットの第二データ・ユニットに書き込まれる第二書き込みステップと、
をさらに含むことを特徴とする方法、
を実行することにより、前記データ要素を格納するように構成されている、プロセッシング装置。
【請求項１０】
イメージをプロセスするように設計されていることを特徴とする、請求項９に記載のプロセッシング装置。
【請求項１１】
ビデオ圧縮を行うように設計されていることを特徴とする、請求項10に記載のプロセッシング装置。
【請求項１２】
前記イメージ内のノイズを低減させるように設計されていることを特徴とする、請求項10に記載のプロセッシング装置。
【請求項１３】
前記イメージをインターレース解除するように設計されていることを特徴とする、請求項10に記載のプロセッシング装置。
【請求項１４】
上位変換を行うように設計されていることを特徴とする、請求項10に記載のプロセッシング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
バースト・アクセス能力を持つメモリ・デバイスを適用することによってデータ要素を格納する方法であって、
‐ 前記データ要素を、データ要素の第一構成の組にグループ化する第一グループ化ステップと、
‐前記各データ要素の第一コピーを、前記メモリ・デバイスのデータ・ユニットに書き込む第一書き込みステップであって、これにより、前記第一構成の前記組の内の第一組に属するデータ要素の第一コピーが、前記データ・ユニットの第一データ・ユニットに書き込まれるステップと、
を含む、データ要素を格納する方法に関する。
【０００２】
本発明は、さらに、
データ要素をプロセスするためのプロセッサと、
バースト・アクセス能力を持つ、前記データ要素を格納するためのメモリ・デバイスと、
を有する、プロセッシング装置であって、
‐ 前記データ要素を、データ要素の第一構成の組にグループ化する第一グループ化ステップと、
‐前記各データ要素の第一コピーを、前記メモリ・デバイスのデータ・ユニットに書き込む第一書き込みステップであって、これにより、前記第一構成の前記組の内の第一組に属するデータ要素の第一コピーが、前記データ・ユニットの第一データ・ユニットに書き込まれるステップと、
を含む方法、を実行することにより前記データ要素を格納するように構成されているプロセッシング装置、に関する。
【背景技術】
【０００３】
ビデオ・プロセッシング・アプリケーションの解像度が高くなるにつれて、ビデオ・シグナル・プロセッサは、厳しく制限された時限内に大量のデータを処理しなければならない。高いメモリ・バンド幅を得るために、幾つかのメモリ・デバイス（例えば、SDRAM）は、バースト・アクセス・モードという重要な特徴を用いる。読み込みコマンドまたは書き込みコマンドを１つ与えることにより、連続する幾つかのデータ・ワードにアクセスすることが、バースト・アクセス・モードにより可能となる。ダイナミック・メモリ・セルの読み出しは破壊的なので、メモリ・バンク内のセルの行内にあるコンテンツは、スタティック・メモリ・セル（つまりページ・レジスタ）の行にコピーされる。その後、このスタティック・メモリ・セルの行へのアクセスが行われる。同様に、別の行にアクセスしなければならない場合、第一に、スタティック・メモリ・セルの行内のコンテンツを、元の破壊されたダイナミック・セル内にコピーし戻さなければならない。行の起動および各々が事前チャージと称されるこれらの動作は、メモリ・セルのアレイ、つまりバンクへのアクセスがその間不可能となる、有益な時間を消費する。メモリ・バス・バンド幅の利用性を最適化するには、粒子サイズのデータ・バースト（例えば、8ワード）だけでデータにアクセスすべきである。これらのデータ・バーストは、全体としてアクセスすることしかできない、メモリ・デバイス内の重複していないデータ・ユニットを表している。データ要求は、数バイトにしか関わることができず（すなわち、データ・ユニットは、要求されたデータ・ブロックよりも大きい)、かつデータ要求は、メモリ・デバイス内の複数のデータ・ユニットに関与し得るので、転送オーバーヘッドの量がかなり多くなってしまう可能性がある。このオーバーヘッドを最小化するには、論理アドレスから物理アドレスへのマッピングが良好であることが重要である。このことを説明するために、以下に例を示す。ビデオ・プロセッシング・アルゴリズムは、8×8ピクセルの二次元アレイをプロセスする。このような二次元アレイは、データ・ブロックとして表される。様々なピクセルのアドレスが物理アドレスに線形にマッピングされている場合、このようなデータ・ブロックにアクセスすることによって7つの行変化が生じてしまう。しかしながら、このような8×8データ・ブロックのピクセルが、メモリ・デバイスの1つのデータ・ユニット内に保たれている場合、このような8×8データ・ブロックにアクセスしても、いかなる行変化も誘発されない。
【０００４】
ビジュアル通信とイメージ・プロセッシング2000 (Visual Communications and Image Processing 2000)、国際光工学会 (SPIE: The International Society for Optical Engineering) の議事録（第4067巻、第2部、922〜931頁、2000年）内の論文「SDRAMに基づいたビデオ・プロセッシング・アプリケーションのためのアレイ・アドレスの翻訳 (Array Address Translation for SDRAM-based Video Processing Application)」からは、多次元ビデオ・プロセッシング・アプリケーション内のメモリ・サイクル数を低減させるための、メモリ・アドレス翻訳ユニットが知られている。本論文には、メモリ・アクセス・パターンとメモリ・パラメータを考慮しながら適切なウィンドウ・サイズを探索するアルゴリズムが記述されている。論理アレイ（例えば、ビデオ・フレーム）は、ウィンドウと呼ばれる一組の矩形に仕切られる。このウィンドウ・サイズは、例えば、ビデオ・フレームからのピクセルを、関連するピクセルの幾つかのグループに、どのように分割するのかを決定する。換言すれば、ビデオ・フレームは幾つかの領域に分割されると、そのような領域の空間寸法はウィンドウの寸法に対応するようになる。このような領域からのピクセルはすべて、関連するピクセルの1グループに属する。関連するピクセルの各グループは、メモリ・デバイスの行に格納される。ウィンドウの長さは、ピクセルの水平方向の数に対応する。ウィンドウの高さは、垂直方向のピクセルの数に対応する。アドレス翻訳とは、論理アドレスに対する物理アドレスを決定することを意味する。データ要素（例えば、ピクセル）をメモリ・デバイスに格納するためには、データ要素の論理アドレスに対して、データ・ユニットの一部であるデータ・セルの物理アドレスを計算しなければならない。各ピクセルは、論理アドレスを持っている。このアドレスは、ビデオ・フレーム内のピクセル座標の組でもよい。関連するピクセルのグループを、1つのデータ・ユニット内に格納させる必要がある場合、このことにより、格納されるべきピクセルに関連する物理アドレスの計算が決定される。関連するピクセルのグループからのピクセルは、連続する物理アドレスにマッピングされるべきである。この論文では、アプリケーション・ソフトウエアを分析することに基づいて、ビデオ・データをメモリ内にマッピングすることが提案されている。
【０００５】
最適ではないウィンドウ・サイズを推定してしまうと、結果的に、論理アドレスから物理アドレスへのマッピングが最適ではなくなってしまう。この影響により、関連するピクセルのグループは1つのデータ・ユニット内に格納されず、幾つかのデータ・ユニットに渡り分散されてしまう。このような関連するピクセルのグループにアクセスする1回のデータ・ブロック要求のデータ転送オーバーヘッドが、著しくなってしまう。つまり、バースト・アクセスが1回実行されるのではなく、メモリ・デバイスが数回呼び出されてしまう。したがって、データ要素が格納される方法が、非常に重要となる。
【０００６】
【非特許文献１】論文「SDRAMに基づいたビデオ・プロセッシング・アプリケーションのためのアレイ・アドレスの翻訳 (Array Address Translation for SDRAM-based Video Processing Application)」ビジュアル通信とイメージ・プロセッシング2000 (Visual Communications and Image Processing 2000)、国際光工学会 (SPIE: The International Society for Optical Engineering) の議事録（第4067巻、第2部、922〜931頁、2000年）
【発明の開示】
【課題を解決するための手段】
【０００７】
本発明の目的は、データ転送オーバーヘッドが低減した、第一段落に記述した種類の方法を提供することである。この目的は、この方法がさらに、
‐ 前記データ要素をデータ要素の第二構成の組にグループ化する第二グループ化ステップと、
‐前記各データ要素の第二コピーを、前記メモリ・デバイスのさらなるデータ・ユニットに書き込む第二書き込みステップであって、これにより、前記第二構成の前記組の第一組に属するデータ要素の第二コピーが、前記さらなるデータ・ユニットの第二データ・ユニットに書き込まれる第二書き込みステップと
を含むことにより、達成される。本発明の重要な側面は、データ要素の多数のコピーが格納されることである。このことにより、データ要素のコピーを効率的に読み出すことが可能となる。本発明による方法の利点は、データ要素をプロセスするためのプロセッサと、データ要素を格納するためのメモリ・デバイスとの間で用いられるバンド幅の低減が達成されることである。プロセッサと書き込み用のメモリ・デバイスとの間では、データ・バスはバンド幅をさらに用いるが、データ要素にアクセスして読み出しを行うことが、実質的により少ないデータ転送オーバーヘッドで行えるので、データ・バス全体でのバンド幅の使用が低減される。第一グループ化ステップと第二グループ化ステップが、第一コピーと第二コピーを後で各々読み出すことに基づいていることは有利である。このことを、例によって説明する。図1Aも参照されたい。
【０００８】
12個のデータ要素 [1-12] があり、これらを、3つのデータ要素を各々格納できる複数のデータ・ユニットを有するメモリ・デバイスに書き込まれなければならない、と仮定する。このデータは、最初に、4つのバースト、つまり [1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12] にシーケンシャルに書き込まれる。この書き込みは、いかなるオーバーヘッドも引き起こさない。これらのデータ要素は、さらなるプロセッシングのために後で再び必要となるので、読み出されなければならない。このさらなるプロセッシングは、一種のサブサンプリングされた方法、つまり4つのデータ要素の内1つが取られる方法で実行されると想定する。したがって、最初は、データ要素 {1, 5, 9} がプロセスされる。これは、[1, 2, 3], [4, 5, 6], [7, 8, 9] というトリプルのデータ要素を有するデータ・ブロックにアクセスしなければならないので、オーバーヘッドが3×2 = 6個のデータ要素となることを意味する。このことに対応して、他のデータ要素（例えばトリプルの {2, 6, 10}）が後でプロセスされる。これは、[1, 2, 3], [4, 5, 6], [10, 11, 12] というトリプルのデータ要素を有するデータ・ブロックにアクセスしなければならないので、オーバーヘッドが3×2 = 6個のデータ要素となることを意味する。すべてのデータ要素が、このサブサンプリングされた方法でプロセスされて、オーバーヘッドが4×6 = 24個となった後、これらのデータ要素が、第二方法つまり今度はシーケンシャル順序でプロセスされると、オーバーヘッドは生じない。オーバーヘッドは、全体では24個のデータ要素となる。
【０００９】
これに代えて、データ要素が、最初はサブサンプリングされた方法で必要となり、かつその後シーケンシャル順序で必要となるであろう、という先験的知識を用いて、データ要素が格納される。本発明を用いてデータを二回書き込むと、書き込みオーバーヘッドは12個のデータ要素となる。メモリ・デバイス内には、[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12] および [1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12] というトリプルのデータ要素が格納される。しかしながら、データ要素を読み出しても、いかなるオーバーヘッドも生じない。オーバーヘッドは全体で12となり、前の場合の24よりも少ない。
【００１０】
本発明による方法の実施例の場合、メモリ・デバイスは、同期ダイナミック・ランダム・アクセス・メモリである。この方法は、バースト・アクセス・モードの特徴を持つメモリ・デバイスが使用される場合に有効である。読み出しコマンドまたは書み込みコマンドを１つ与えることによって、幾つかの連続的なデータ・ワードにアクセスすることが、バースト・アクセス・モードにより可能となる。このようなメモリ・デバイスの一例として、同期ダイナミック・ランダム・アクセス・メモリ (SDRAM) デバイスがある。さらに、ダブル・データ・レート同期DRAM (DDR SDRAM) またはダイレクト・ランバスDRAMのような、より高性能なメモリ・デバイスにアクセスするためにも、本方法は有益である。
【００１１】
本発明による方法の一実施例の場合、第一構成の組の内の第一組は、データ要素のデータ・ブロックに対応している。データ要素が、データ・ブロックに論理的に分割可能な要素のマトリクスに対応している場合、本方法を適用すると有利である。このことを、例を用いて説明する。図2Aと図2Bも参照されたい。データ要素の二次元マトリックスがあると仮定する。これらのデータ要素の複数のコピーが、1回は、64×1の寸法を有するデータ・ブロックに対応して、かつ1回は、16×4の寸法を有するデータ・ブロックに対応して、デバイス内に格納される。これらのコピーを書き込むためには、この二次元のマトリックスのデータのサイズに等しいオーバーヘッドが必要である。しかしながら、16×4のデータ・ブロック、または64×1のデータ・ブロックの読み出しアクセスは、オーバーヘッドをなくすことができる。この場合、必要なデータと格納されているデータとの間の重複部分が100%であることが想定されている。格納されているコピーが64×1のデータ・ブロックに対応しているだけで、16×4のデータ・ブロックに読み出しアクセスすることにより、オーバーヘッドが4×(64 - 16) となることになる。この場合も、重複部分が100%であることが想定されている。そうでなければ、オーバーヘッドがさらに大きなものになっていた可能性がある。
【００１２】
本発明による方法の実施例の場合、第一グループ化ステップは、データ要素のデータ・ブロックの寸法に基づいている。ビジュアル通信とイメージ・プロセッシング2000 (Visual Communications and Image Processing 2000)、国際光工学会 (SPIE: The International Society for Optical Engineering) の議事録（第4067巻、第2部、922〜931頁、2000年）内の論文「SDRAMに基づいたビデオ・プロセッシング・アプリケーションのためのアレイ・アドレスの翻訳 (Array Address Translation for SDRAM-based Video Processing Application)」には、論理アドレスと物理アドレスとの間の最適なマッピングをどのように決定できるかが記述されている。このマッピングの計算の場合、幾つかのパラメータが関係している。予想されるデータ・ブロックの読み出し要求を考慮に入れると有利である。このことは、どのデータ要素が同時に必要となるかということに関する先験的知識を用いて、マッピングが決定されることを意味する。したがって、データ・ブロックの寸法は、マッピングを定義するパラメータである。データ要素のグループ化は、論理アドレスから物理アドレスへのマッピングに対応することが明らかとなるであろう。
【００１３】
本発明による方法の実施例の場合、第一グループ化ステップは、第一構成の組の内の第一組に属するデータ要素の第一コピーの読み出しアクセスを数回行うことに基づいている。第一コピーが読み出される回数は、マッピングの決定に関連するパラメータである。この回数は、プログラムのプロセッシング・ステップ内でデータ・ブロックが発生する確率に関連している。プログラムは、様々なタイプのデータ・ブロックに対応した、幾つかのタイプのオペランドを持つことができる。例えば、MPEGの場合、データ・ブロックの組は、V = {(16×16), (17×16), (16×17), (17×17), (16×8), (18×8), (16×9), (18×9), (17×8), (17×9), (16×4), (18×4), (16×5), (18×5)} である。しかしながら、これらのタイプのすべてが、同じ周波数で用いられるとは限らない。このデータ・ブロックが発生する確率と、したがってメモリ・アクセスの要求とは、タイプごとに異なる。MPEGアプリケーションの場合、マクロ・ブロックによって、参照ピクチャはメモリ内に書き込まれる。書き込み要求の量は等しいが、この発生確率は、要求の全体量に比例する。したがって、書き込み要求の発生確率は、予測のためのデータ要求の量に高く依存する。予測のためのデータ要求の量は、とりわけ、フィールドとフレームの予測量、ピクチャ・グループ (GOP: Group Of Pictures) の構造、Bピクチャ内の前方、後方、かつ双方向に予測されたマクロ・ブロックの量などによって決定される。マッピングが発生の確率に依存している場合、有利である。
【００１４】
本発明による方法の実施例の場合、データ要素は、イメージの各ピクセルの値に対応している。大半のビデオ・プロセッシング・アルゴリズムは、多次元アレイ、すなわちデータ・ブロックと入れ子状のループとに基づいている。本発明による方法を、ビデオまたは静止イメージのプロセッシング・アルゴリズムに適用すると有利である。この場合、データ・ブロックの要素は、ピクセルの値に関係している。ピクセルの値は、輝度値、または色コンポーネントの内の1つの要素の値を表してもよい。
【００１５】
本発明による方法の実施例の場合、第一グループ化ステップは、表示モードがインターレース型であるか、またはプログレッシブ型であるかに基づいている。表示モードは、マッピングの定義に関連するパラメータである。このパラメータを考慮に入れてグループ化を定義すると有利である。
【００１６】
本発明によるイメージ・プロセッシング装置を設計すると有利である。このイメージ・プロセッシング装置は、以下のタイプのイメージ・プロセッシングを１つ以上支援することができる。
‐ ビデオ圧縮。つまり、例えばMPEG規格に準じたエンコーディングまたはデコーディング。
‐ インターレーシング解除：インターレングとは、奇数番号または偶数番号のイメージ・ラインを交互に伝送するための、一般的なビデオ・ブロードキャスト・プロシージャである。インターレーシング解除は、垂直解像度の完全な復元を試みる。つまり、各イメージに対して、奇数ラインと偶数ラインとを同時に利用可能にさせる。
‐ 上位変換：元の一連の入力イメージから、より大きな一連の出力イメージが計算される。出力イメージは、一時的に、元の2つの入力イメージの間に配置される。
‐ 一時的なノイズ低減。これは、空間的なプロセッシングも行って、空間に関する一時的なノイズ低減を図ることができる。
【００１７】
プロセッシング装置の修正とプロセッシング装置の変更は、説明されている方法の修正変更に対応できる。プロセッシング装置は、さらなるコンポーネント（例えば、イメージを表すシグナルを受信するためのインターフェース装置、プロセスされたイメージをエクスポートするためのインターフェース装置、またはプロセスされたイメージを表示するための表示装置）を有してもよい。
【発明を実施するための最良の形態】
【００１８】
本発明による方法およびプロセッシング装置の、これらの態様と他の態様は、以下に説明する実施例と具体例を参照することにより、かつ添付の図面を参照することにより、明らかとなり、かつ解明されるであろう。すべての図中で、対応する参照番号には、同一または同様の意味がある。
【００１９】
図1Aは、メモリ・デバイス118への12個のデータ要素1〜12の格納を概略的に示している。メモリ・デバイス118は、データ・ユニット120〜125, 127を有する。各データ・ユニットは、データ要素1〜12のコピーを格納のためのデータ・セル126, 128〜136を有する。例えば、データ・ユニット120は3つのデータ・セル126, 128, 130を有し、かつデータ・ユニット122は3つのデータ・セル132〜136を有する。表1には、トリプルのデータ要素が列挙されている。これらのデータ要素は、後でメモリ・デバイス118に書き込まれる。これらのトリプルの識別、つまり組102〜116も列挙されている。
【表１】
2005518584.tif 000003
【００２０】
図1Bは、メモリ・デバイス118への30個のピクセル (0, 0)〜(4, 5) の格納を概略的に示している。各ピクセル (0, 0)〜(4, 5) の2つのコピーが、メモリ・デバイス118内に格納される。第一に、これらのピクセルは、4×1ピクセルのデータ・ブロック構成にグループ化される。これらのピクセルのコピーは、この構成にしたがって格納される。次に、これらのピクセルは、2×2ピクセルのデータ・ブロック構成にグループ化され、かつその後、これらのピクセルのコピーは、この構成にしたがって格納される。表2には、後で書き込まれるピクセルの組の幾つかが列挙されている。データ・ユニットの識別番号120〜124, 138, 140も列挙されている。
【表２】
2005518584.tif 000004
【００２１】
図2Aは、メモリ・デバイス・データ・ユニット上への64×1ピクセルのマッピングを概略的に示している。図2Bは、メモリ・デバイス・データ・ユニット上への16×4ピクセルのマッピングを概略的に示している。ピクセル1つは、1バイトに対応していると想定されている。メモリ・デバイス201は、64個のデータ・ユニットを有する。各データ・ユニットは、64バイトを含むことができる。メモリ・デバイスの論理サイズは、128ピクセルを各々有する32本のビデオ・ラインからピクセルを保つことができるようになっている。メモリ・デバイスは、4つのバンクを含んでいる。様々なバンクに対応するデータ・ユニットが、参照符202〜208により示されている。ピクセルをマッピングするためのオプションを幾つか認識することができる。最も簡単な方法は、ビデオ・ラインの64個の逐次的なピクセルを、図2Aに図示されているように1つのデータ・ユニット上へマッピングすることである。図2Aは、64個のピクセルの連続した行の各々が、水平方向と垂直方向の両方のバンク内にどのようにインターリーブされているのかを示している。マッピングがインターリーブされているので、ピクセル・データがシーケンシャルに読み込まれたり、または書き込まれる場合、メモリへのアクセスによって4つのバンクが逐次良好にアドレスされる。しかしながら、16×16ピクセルのデータ・ブロックがメモリ・デバイスから要求される場合、転送されるデータ量はかなり多くなってしまう。データ・ブロックが1つのデータ・ユニット内で水平に位置付けられている場合、64×16ピクセルが転送される。データ・ブロックが2つのデータ・ユニットを水平方向にオーバーレイさせる場合、転送されるデータ量は128×16ピクセルとなる。マッピング戦略が図2Bに示されているように選択される場合、オーバーヘッドは少なくなる。しかしながら、128×1のデータ・ブロックが要求された場合は、より良好なマッピング戦略が図2Aから得られる。
【００２２】
図3は、メモリ・アドレス翻訳ユニット300と、メモリ・アドレス翻訳ユニット300が結合されている主要なコンポーネントとを概略的に示す。プロセッサ316は、メモリ・アクセスを要求する。データ要素のコピーは、メモリ・デバイス118内に格納される。プロセッサ316がメモリ・アクセスを要求する度に、プロセッサ316からメモリ・デバイス118へ、またはメモリ・デバイス118からプロセッサ316へデータ転送324が行われる。書き込み要求の度に、プロセッサ316は、この要求に対して書き込まなければならない、各データ・ブロック326の各データ要素328の論理アドレス320を、メモリ・アドレス翻訳ユニット300に供給する。メモリ・アドレス翻訳ユニット300は、この論理アドレス320を、複数のコピーを書き込むべきか否かに依存して、1つの物理アドレスまたは複数の物理アドレス322, 323に翻訳する。すべての場合に複数のコピーがメモリ・デバイス118に書き込まれるとは限らない点に留意されたい。なぜならば、書き込みの後に読み出し要求が1つしか生じない可能性があるからである。メモリ・アドレス翻訳ユニット300は、物理アドレスをメモリ・デバイス118に提供する。メモリ・デバイス118は、幾つかのデータ・ユニット330、331を含んでいる。各データ・ユニット330、331は、幾つかのデータ・セル332、333を含んでいる。メモリ・デバイス118は、4つのバンク340〜346を有する。
【００２３】
メモリ・アドレス翻訳ユニット300は、以下のコンポーネントを有する。
‐ メモリ転送オーバーヘッド・カルキュレータ (calculator) 306。このメモリ転送オーバーヘッド・カルキュレータは、メモリ転送オーバーヘッドを計算して、制御パラメータの組を得るように設計されている。制御パラメータの第一グループは、格納または検索されるデータ・ブロックの属性に関連している。これらのデータ・ブロックの属性は、例えば、垂直サイズ、水平サイズ、および特定の寸法を有するデータ・ブロックがアクセスされる確率である。別の側面は、各データ・ブロックの各第一データ要素の物理アドレスの確率分布である。この情報の他にも、メモリ・デバイス118の属性（例えば、メモリ・バスの幅と、バンク340〜346の数）が既知でなければならない。メモリ・バンクへ組織化すること（つまり、データ・ブロックを様々なバンク340〜346に渡って拡散させる戦略）は、メモリ・バンド幅の効率にとって重要な要素である。この戦略を、メモリ転送オーバーヘッド・カルキュレータに設けなければならない。
‐ 最少コスト・エスタブリッシャ308。最少コスト・エスタブリッシャは、メモリ転送オーバーヘッド・カルキュレータ306に、様々な制御パラメータの組を供給する。最少コスト・エスタブリッシャは、制御パラメータのどの組から、可能な最低のメモリ転送オーバーヘッドが得られるかを決定するように構成されている。最少コスト・エスタブリッシャからの出力は、最適なウィンドウ・サイズを含んでいる。この最少コスト・エスタブリッシャ308は、社内整理番号PHNL010057が付与された特許出願に記述されているユニットにしたがって設計してもよい。
‐ マッピング・ジェネレータ310。マッピング・ジェネレータ310は、データ・ブロック326のデータ要素328の論理アドレス320を、データ・ユニット330、331のデータ・セル332、333の物理アドレス322、323に翻訳するマッピングを生成するように構成されている。このマッピングを生成するには、マッピング・ジェネレータ310は、最少コスト・エスタブリッシャ308により計算される情報を必要とする。ルックアップ・テーブル334は、マッピング・ジェネレータからの出力である。このルックアップ・テーブル334は、マッピングを記述している。
‐ アドレス・ジェネレータ312。アドレス・ジェネレータ312は、論理アドレス320の各事例に対して物理アドレス322、323を決定する。アドレス・ジェネレータ312は、ルックアップ・テーブル334を使用する。
‐ メモリ・コマンド・ジェネレータ314。メモリ・デバイス118（例えばSDRAM）内のデータ・ユニット330、331にアクセスするには、第一に、行起動コマンド（行アドレス・ストローブ (RAS: Row Address Strobe) とも呼ばれる）をバンク340〜346に発行して、アドレスされている行をそのバンクのページにコピーしなければならない。ある程度の遅延の後、この同じバンクに対する読み込みコマンドまたは書き込みコマンド（列アドレス・ストローブ (CAS: Column Address Strobe (CAS)) とも呼ばれる）を発行して、行内の要求されているデータ・ユニットにアクセスすることができる。行内の要求されているデータ・ユニットがすべてアクセスされると、対応するバンクを事前チャージすることができる。これらのコマンドはすべて、タイミングが重要である。メモリ・コマンド・ジェネレータは、各データ・アクセスに対するこれらのコマンドを、正確な順序で、かつコマンド間に正確な遅延を生じさせて作成する。
【００２４】
図4は、本発明によるイメージ・プロセッシング装置400の最も重要な要素を示している。イメージ・プロセッシング装置400は、イメージを表しているデータをプロセスして、圧縮、解凍、強調、またはフィルタリングするためのプロセッサ416を持つ。このデータは、アンテナまたはケーブルを介してブロードキャストおよび受信することができるが、VCR (Video Cassette Recorder) またはDVD (Digital Versatile Disk) のような格納デバイスからのデータでもよい。データをインポートするためのインターフェース・ユニット410は、コネクタ414を持っている。データをインポートするためのインターフェース・ユニットは、イメージ・プロセッシング・ユニット400内でデータを転送させるためのバス412に結合されている。このデータは、ケーブルを介して外部に送信可能だが、VCRまたはCDレコーダ（コンパクト・ディスク・レコーダ）のようなデバイスを用いて格納してもよい。データをエクスポートするためのインターフェース・ユニット418は、コネクタ416を持っている。データをエクスポートするためのインターフェース装置は、イメージ・プロセッシング・ユニット400内でデータを転送させるためのバス412に結合されている。このデータは、イメージ・プロセッシング装置400が、イメージ・キャプチャ・ユニット420を用いて生成したものでもよい。イメージ・プロセッシング装置400は、このデータを、イメージ表示ユニット422を用いて視覚化してもよい。このデータは、メモリ・デバイス118内に格納することができる。メモリ・デバイス118に格納すべきデータ、またはメモリ・デバイス118から検索されるデータへのアクセスは各々、メモリ・アドレス翻訳ユニット300により扱われる。データを受信するためのインターフェース・ユニット410、データをエクスポートするためのインターフェース・ユニット418、およびプロセッサ416は、メモリ・アドレス翻訳ユニット300と通信して、データにアクセスする。
【００２５】
図5は、MPEGデコーディングを実行するように設計されているプロセッシング装置500を概略的に示している。プロセッシング装置500の入力コネクタには、ビット・ストリームが供給される。プロセッシング装置500は、出力コネクタ504で一連のイメージを供給する。MPEGデコーダは、可変長デコーディング・ユニット506、ラン・レングス・デコーディング・ユニット508、ジグザク・スキャン・ユニット510、逆量子化ユニット512、逆DCTユニット514、および動き補償ユニット516を有する。プロセッシング装置500は、ビデオ出力ユニット520とメモリ・デバイス118をさらに有する。このプロセッシング装置に本発明の方法を適用する方法を説明する。
【００２６】
MPEGデコーディングの場合、格納されているデータ要素には、ブロックに基づくアクセスとラインに基づくアクセスとの両方が必要である。
‐ 520：マクロ・ブロックを予測するには、メモリ・デバイス118からデータ要素を読み出すメモリ・アクセスが必要である。インターレース型データ・ブロックとプログレッシブ型データ・ブロックの両方が読み出される。Viを、要求されているインターレース型データ・ブロックの組とし、かつVpを、要求されているプログレッシブ型データ・ブロックの組とする。これらの組は、以下のデータ・ブロックから成る。これらのデータ・ブロックを要求して、予測が可能となるかも知れない。
Vi ={(16×16), (17×16), (16×17), (17×17), (16×8), (18×8), (16×9), (18×9), (17×8), (17×9), (16×4), (18×4), (16×5), (18×5)}、および、
Vp ={(16×16), (17×16), (16×17), (17×17),(16×8), (18×8), (16×9), (18×9)}
これらの要求されたデータ・ブロックは動き補償されるので、ピクチャ内の任意の位置に配置可能であり、かつしたがって、必ずしもデータ・ユニットにアラインされるとは限らない。つまり、相当な転送オーバーヘッドが生成される。
‐ 524：再構築されたマクロ・ブロックは、メモリ・デバイス118に書き込まれる。再構築の後、インターレース型またはプログレッシブ型のマクロ・ブロックは、元のメモリ内に書き込まれる。マクロ・ブロックは、ピクチャを左から右かつ頂部から底部まで走査しながらシーケンシャルにプロセスされるので、これらのデータ・ブロックは寸法 (16×16) を持ち、かつ16×16のグリッド上でアラインされる。
‐ 522：メモリ・デバイス118からデータが読み出されて、表示される。再構築されたビデオを表示するには、インターレース型データまたはプログレッシブ型データが、メモリからライン方向に読み出される。メモリに書き込まれている再構築されたビデオ・データは、表示のために読み出されるが、予測のための参照データとしても使用される。したがって、メモリ内の同じデータが、ブロックに基づくデータ要求と、ラインに基づく要求のために使用される。
【００２７】
予測のためにブロックに基づいた読み出しを行うことと、表示のためにラインに基づく読み出しを行うこととは、バス使用の最適化に対して矛盾している点に留意されたい。したがって、再構築されたマクロ・ブロックを、メモリ・デバイス118に二回（１回は予測520のため、かつ１回は表示522のため）書き込むことが提案される。データ要素のグループ化は、書き込みストリームごとに別々に最適化されて、読み出しの間に引き起こされるこれらのデータ要素の各転送オーバーヘッドは低減される。再構成されたデータを二回書き込むことにより、さらなるデータ転送が生じてしまうが、転送オーバーヘッドは全体的にはかなり減少するので、転送バンド幅の純益が得られる。したがって、予測のためには、再構築されたマクロ・ブロックは、寸法16×4を有するデータ・ブロックとして格納される。表示のためには、再構築マクロ・ブロックは、寸法64×1を有するデータ・ブロックとして格納される。市販されている大半のMPEGエンコーダは、Bピクチャを用いて、より高い性能（すなわち、圧縮比とピクチャ品質の成果）を達成している。例えば、ビット・ストリームは、I B P B P B P B I B というシーケンス構造を持っていてもよい。このようなシーケンスの場合、予測のための参照データとして、このデータの半分（IピクチャとPピクチャ）しか格納しなくてよい。この結果、要求／転送比率は全体的に低減する。
【００２８】
本発明は、デコードされたデータをメモリ・デバイスに二回書き込むことを提案しているが、必要なメモリ・サイズが必ずしもこれに比例して増加するとは限らない。デコードされたデータが一度しか格納されない従来のデコーダの場合、3つを若干上回るフレーム・メモリしか使用されない。提案されているデコーダ実施例の場合、出力データの半分は二回書き込まれるにも関わらず、必要となるフレーム・メモリは3つではなく4つである。したがって、書き込まれるデータは50%増加するが、必要となるメモリは33%増加するだけである。このことは、基本的に、従来のデコーダ内の3つのフレーム・メモリが非効率に使用されることに起因する。
【００２９】
上述した実施例は、本発明を限定しているのではなく例示しているのであり、かつ当業者は、添付されている請求の範囲の範囲内で代替実施例を設計することができる点に留意すべきである。請求項では、括弧の間に配置されている参照符号は何れも、請求項を限定するものとして構成されているのではない。「有する」という語は、請求項に列挙されている要素またはステップ以外の存在を除外するものではない。ある要素の前にある「１つの」という語は、そのような要素が複数存在することを除外するものではない。本発明は、幾つかの異なる要素を有するハードウエアと、適切なプログラムされたコンピュータとによって実施することができる。幾つかの手段を列挙しているユニット請求項では、これらの手段の幾つかは、同一のハードウエア部材によって具現化することができる。
【図面の簡単な説明】
【００３０】
【図１Ａ】メモリ・デバイスへの12個のデータ要素の格納を概略的に示す。
【図１Ｂ】メモリ・デバイスへの30個のピクセルの格納を概略的に示す。
【図２Ａ】メモリ・デバイス・データ・ユニット上への64×1ピクセルのマッピングを概略的に示す。
【図２Ｂ】メモリ・デバイス・データ・ユニット上への、16×4ピクセルのマッピングを概略的に示す。
【図３】メモリ・アドレス翻訳ユニット、およびメモリ・アドレス翻訳ユニットが接続されている主要なコンポーネントを概略的に示す。
【図４】本発明によるイメージ・プロセッシング装置の最も重要な要素を概略的に示す。
【図５】MPEGデコーディングを実行するように設計されたプロセッシング装置を概略的に示す。
【符号の説明】
【００３１】
102…第一構成の組
104…第一構成の組
106…第一構成の組
108…第一構成の組
110…第二構成の組
112…第二構成の組
114…第二構成の組
116…第二構成の組
118…メモリ・デバイス
122…さらなるデータ・ユニット
300…メモリ・アドレス翻訳ユニット
326…データ・ブロック
400…イメージ・プロセッシング装置
500…プロセッシング装置
【図１Ａ】
2005518584.tif 000005
【図１Ｂ】
2005518584.tif 000006
【図２Ａ】
2005518584.tif 000007
【図２Ｂ】
2005518584.tif 000008
【図３】
2005518584.tif 000009
【図４】
2005518584.tif 000010
【図５】
2005518584.tif 000011
【国際調査報告】
2005518584.tif 000012
2005518584.tif 000013