(57)【要約】  メモリ（２０、３０、４０）内の効率的リサンプリングを、選択された関心データストリングを特定する第１の部分と、選択されたストリング内のデータ値グループを特定する第２の部分とを含むアドレス要求を生成することにより行う。アドレス要求の第１の部分は、単一の読み出し動作中に、選択された値ストリングを取得するためにメモリに送られる。読み出しアドレスの第２の部分は、選択された値ストリングをマスクして、そのストリング内の関心値グループを取得する。
2007529821.tif 000002
【特許請求の範囲】
【請求項１】
グループ内のデータ値の数より多い値を含む選択されたデータストリング内の所定のデータ値グループをメモリから取得する方法であって、
第１と第２の部分を含むアドレス要求を生成する段階であって、第１の部分は選択された関心データストリングを特定し、第２の部分は選択されたストリング内で所定の関心値グループを特定する段階と、
前記アドレス要求の第１の部分を前記メモリに作用させて、読み出し動作中に前記選択されたデータストリングを読み出す段階と、
前記アドレス要求の第２の部分により、選択されたストリングをマスキングして、前記選択されたストリング内の前記所定のデータ値グループを選択する段階と、を有することを特徴とする。
【請求項２】
請求項に記載の方法であって、さらに、
前記第１と第２の部分がそれぞれ少なくとも１つの最上位ビットと少なくとも１つの最下位ビットを有するように、前記アドレス要求を生成する段階を有することを特徴とする方法。
【請求項３】
請求項１に記載の方法であって、
前記マスキングする方法は、
前記選択されたデータストリングをデマルチプレクサに作用させる段階と、
前記アドレス要求の第２の部分により前記デマルチプレクサを制御する段階と、を有することを特徴とする方法。
【請求項４】
請求項１に記載の方法であって、
前記選択されたデータストリングは各グループの所定のデータ値の数より少なくとも２多いデータ値を含むことを特徴とする方法。
【請求項５】
請求項１に記載の方法であって、
選択された値ストリングは別々のサブストリングを有し、
前記マスキングするステップは、さらに、前記アドレス要求の第２の部分により各サブストリングをマスキングする段階を有することを特徴とする方法。
【請求項６】
請求項５に記載の方法であって、
前記サブストリングはＹ、Ｕ、及びＶピクセルデータを有することを特徴とする方法。
【請求項７】
グループ内のデータ値の数より多い値を含む選択されたデータストリング内の所定のデータ値グループをメモリから取得する装置であって、
第１と第２の部分を含むアドレス要求を生成する段階であって、第１の部分は選択された関心データストリングを特定し、第２の部分は選択されたストリング内で所定の関心値グループを特定するアドレスジェネレータと、
少なくとも１つのデータ値ストリングを格納し、前記アドレス要求の第１の部分に応じて選択されたデータストリングを読み出すメモリと、
前記アドレス要求の第２の部分により、選択されたストリングをマスキングして、前記選択されたストリング内の前記所定のデータ値グループを選択する少なくとも１つのデマルチプレクサと、を有することを特徴とする装置。
【請求項８】
請求項７に記載の装置であって、
前記アドレス要求の第１と第２の部分はそれぞれ、少なくとも１つの最上位ビットと少なくとも１つの最下位ビットを有することを特徴とする装置。
【請求項９】
請求項に記載の装置であって、
選択された値ストリングは別々のサブストリングを有することを特徴とする装置。
【請求項１０】
請求項７に記載の装置であって、
さらに、各々が前記アドレス要求の第２の部分により対応する各サブストリングを個別にマスキングする複数のデマルチプレクサをさらに含むことを特徴とする装置。
【請求項１１】
請求項５に記載の方法であって、
前記サブストリングはＹ、Ｕ、及びＶピクセルデータを有することを特徴とする方法。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
本発明は、２００４年３月１５日に出願された米国仮特許出願第６０／５５３，１６７号に基づく米国特許法第１１９条（ｅ）による優先権を主張するものである。
【技術分野】
【０００２】
本発明はメモリに記憶された値に効率的にアクセスしてデータのリサンプリング等をする方法に関する。
【背景技術】
【０００３】
アナログ信号のデジタル信号への変換は、そのアナログ信号を特定の周波数でサンプリングして、そのサンプルを対応するデジタルサンプルとして記憶することにより行われる。アプリケーションによっては、出力のサンプリングレートが入力のサンプリングレートと異なることを要するものもある。サンプリングレートまたは位相を変換するプロセスは、一般に「リサンプリング（ｒｅ−ｓａｍｐｌｉｎｇ）」と呼ばれている。ビデオの世界では、データのリサンプリングは画像ピクセルの数または構成を変更したい時にはいつでも行われる。例えば、ＣＣＩＲ６５６やＡＴＳＣなどのフォーマットの画像を表示装置と互換性のあるピクセル構成に変換する場合などである。データのリサンプリングは、ピクチャインピクチャ処理や電子的ピクチャ配置補正（ｅｌｅｃｔｒｏｎｉｃ  ｐｉｃｔｕｒｅ  ｇｅｏｍｅｔｒｙ  ｃｏｒｒｅｃｔｉｏｎ）の間にも行われる。
【０００４】
データのリサンプリングを実行する装置は、一般的には多相フィルタを用いる。このようなフィルタは個別のサブフィルタが集まってできている。サブフィルタを組み合わせて、周りの入力ピクセル値の重みつけ合計を用いて、出力ピクセル値を計算する。重み計数の動的制御は、入力ピクセル位置に対して所望の出力ピクセル位置に応じて行われる。周りの少なくとも２つの入力ピクセルを補間に使用する。周りのピクセルを多く使えば使うほど複雑になるが、結果がよくなる。
【０００５】
水平配置補正をするシステムの場合、リサンプリングは水平方向でだけ行われ、４つの水平に隣接する入力ピクセルを用いて１つの出力ピクセルを計算する。１つの出力ピクセルを計算するために使用した４つの隣接する入力ピクセルは、前のサンプルを計算するために使用した４つのピクセルであってもよい。あるいは、この４つのピクセルのクラスタを入力ピクセル１つか２つ分シフトすることもできる。
【０００６】
図１は、先行技術のリニアメモリ構造１０を示す図であり、各メモリ位置に１つのピクセルが記憶されている。データ値Ａ、Ｂ、Ｃ等は隣接する水平ピクセルのピクセル値を集合的に表す。図１のデータ構造には、必要とする４つの隣接ピクセル値を取得するために４つの読み取り動作をしなければならないという欠点がある。各クロックサイクルで４つの隣接ピクセルを読み取る必要がある場合、メモリの帯域幅の問題がある。なぜなら、１クロックごとの読み取り動作は１アドレスに限定されているからである。メモリクロックを４倍速くすればこの問題は解決できるが、現実的でないことが多い。
【０００７】
よって、単一の読み取り動作中に、所定数の記憶値のいずれにもランダムアクセスできる方法が必要である。
【発明の開示】
【課題を解決するための手段】
【０００８】
概略的に、本原理の好ましい実施形態では、特定のデータ値ストリング内のデータ値の所定グループをメモリから取得する方法を提供する。その特定データ値の数はそのグループ内のデータ値の数より少なくとも１だけ多い。該方法は、最初に、第１と第２の部分を有するアドレス要求を生成する第１の部分は特定の関心ストリングを特定し、第２の部分はその特定データ値ストリング内の関心値の所定グループを特定する。アドレス要求の第１の部分は、読み出し動作中にその特定のデータ値ストリングを読み出すためにメモリをアドレスするために使われる。選択されたストリングにはアドレス要求の第２の部分に従ってマスキング動作がなされ、ストリング内の値の所定グループを選択する。この方法を用いて得られる利点は、各メモリ位置で複数セットの所定データ値グループが提供され、そのどれもが単一の読み出し動作中に取得できる点である。
【発明を実施するための最良の形態】
【０００９】
以下に詳細に説明するように、例示した実施形態はそれぞれ、メモリに格納された値ストリング内の異なる所定の値グループへのアクセスを可能とし、単一読み取り動作中に各所定の値グループにアクセスできるメモリ構造を提供する。
【００１０】
図２は、メモリ構造の第１の実施形態２０を示し、単一読み出し動作中に複数の値グループのいずれにもランダムアクセスできるものである。説明を容易にするため、各所定のグループは４つの値を含み、各値は一般的に画像内のピクセルを表す。しかし、各グループは大体４つの値を含み、いかなるタイプのデータ値を含んでいてもよい。
【００１１】
メモリ構造２０にはＮ個のブロックがＭ列あり、ここでＭとＮは整数である。図２に示した実施形態では、ブロックサイズＮが各所定の関心値グループの数と等しい。配置補正を目的としたビデオリサンプリングの場合、各所定の値グループは４つの値を含み、補正されるピクセルの周りの４つの隣接するピクセル値に対応している。図２のメモリ構造２０の場合、Ｍ＝７、Ｎ＝４である。メモリ構造１０のＭ列は別々のアドレスを有し、例として番号０、１、２、３．．．Ｍで示されている。
【００１２】
ランダムアクセスを容易にするため、メモリ構造２０中の各連続する列は、前の列と共通の値を有するＮ−１個のブロックを有する。このように、例えば図２では、アドレス０の列は、それぞれ値Ａ、Ｂ、Ｃ、Ｄを含む４つのブロックを含む。アドレス１及び２の列は、それぞれ、値Ｂ、Ｃ、Ｄ、Ｅと値Ｃ、Ｄ、Ｅ、Ｆを含む。メモリ構造２０のＭ個のブロックの１つの読み出しにより、４つのブロックの値がセットで得られる。
【００１３】
図１のメモリ構造１０と比較して、図２のメモリ構造２０は、単一の読み取り動作中に４つのピクセル値の所定のセットを取得することができ、一度に１つのピクセルを読み取るのと比較して効率が高くなる。しかし、図２のメモリ構造２０では、列読み取り時にピクセル位相と呼ばれることが多い単一の４ブロックセットを読み出すことができるだけである。このように、アドレスが０の列の読み取りにより、単一のピクセル位相Ａ、Ｂ、Ｃ、及びＤが得られ、２５％の効率が達成（単一ピクセル位相／毎列４ピクセル値）できる。図２のメモリ構造２０は図１のメモリ構造１０のメモリ帯域幅問題を解消するが、メモリ構造２０の効率は低いのでほとんどのアプリケーションでは望ましいものではない。
【００１４】
図３はＭ列を有するメモリ構造３０を示す図である。各列はＮ＋Ｙブロックを有する。ここで、ＮとＹはゼロより大きい整数である。図２のメモリ構造２０と同様に、メモリ構造３０のＭ列はそれぞれアドレス０、１、２、３、．．．Ｍの１つを有する。図示した実施形態では、Ｍ＝８、Ｎ＝４、Ｙ＝３である。このように、図３のメモリ構造３０の８列はそれぞれ、図２のメモリ構造２０の各列の４つのブロックと比較して、７つのブロックを含む。図２のメモリ構造２０と比較して、メモリ構造３０の後に続く各列はＹブロックを前の各列と共通に有する。
【００１５】
後でよりよく理解できるように、各列にＮ＋Ｙブロックを有するメモリ構造３０により、単一読み取り動作中にピクセル位相の組み合わせ数をより大きくすることにより、効率をより高くすることができる。例えば、メモリ構造３０のアドレス０の最初の列を考える。この列はピクセル値Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、及びＧを含み、次の４つのピクセル位相を与える：
【数１】
2007529821.tif 000003
このように、図３のメモリ構造３０の各列を読み取るので、異なる４つのピクセル位相を取得することができる。
【００１６】
メモリ構造３０の各列中に格納されたピクセル位相の選択は、復号プロセスにより行われ、関心ピクセル位相が特定され、残りのピクセル位相がマスキングされる。このため、メモリ構造３０に作用されるアドレス要求は２つの部分、すなわち通常は、必ずしもそうではないが、少なくとも１つの最上位ビットと少なくとも１つの最下位ビットを有する。アドレス要求の第１の部分、すなわち最上位ビット（ＭＳＢ）は、関心ピクセル位相を含む列を特定する。アドレス要求の第２の部分、すなわち最下位ビット（ＬＳＢ）は、特定された列中の関心ピクセル位相を特定する。
【００１７】
図３に例示したメモリ構造３０に関しては、アドレス要求は２値の５ビットストリングｘｘｘｙｙを有する。アドレス要求の３つの最上位ビット（ＭＳＢ）（ｘｘｘ）は、８個の関心列の１つを指定し、２つの最下位ビット（ＬＳＢ）（ｙｙ）は、その列中の関心ピクセル位相を指定する。アドレス要求中のＬＳＢによりデマルチプレクサ（図示せず）または同様の構成要素が選択されていないピクセル位相をマスクする。図２のメモリ構造２０と比較して、図３のメモリ構造３０は４／７（４ピクセル位相／１列当たり７ブロック）すなわち５７％の効率となり、ほとんどのアプリケーションでは許容できる。
【００１８】
メモリ構造３０の各列中のブロック数を大きくすると効率が上がる。表１は、隣接する４ピクセルに対するランダムアクセスを要するアプリケーションの場合に、ブロックサイズの関数として記憶効率の向上を示している。ここでブロックごとの位相は２ｉの関数であり、ｉは整数のインデックス値である。これにより、上記のようにアドレスの復号が簡単になる。
【００１９】
【表１】
2007529821.tif 000004
図４は、本原理による配置補正回路４０の一部を示すブロック図であり、データアクセスを制御して以下に説明するやり方で配置補正を可能とするものである。回路４０は読み出しコントローラ４２を有する。この読み出しコントローラ４２は、後続のビデオラインを格納するメモリ４４からデータを読み出すための読出アドレスを生成する。各ビデオラインは複数のピクセル値を有し、各ピクセル値は後続のクロックサイクル中にメモリに格納されたものである。実際、メモリは各ビデオラインを個別のＹＵＶデータのストリングとして格納する。一般的には、メモリ４４の各列は７ブロックを含み、各ブロックはそれぞれＹ、Ｕ、及びＶのセットの１つに対してひとつながりの１０ビット値を格納している。データ転送を高速化するため、メモリ４４は読み出しコントローラ４２に結合した２１０ビットバスを有し、単一読み出し動作中にＹ、Ｕ、及びＶのひとつながりの７つの値のそれぞれを出力が可能である。
【００２０】
読み出しコントローラ４２は、一般的にはワイヤードエレメント（ｗｉｒｅｄ  ｅｌｅｍｅｎｔ）の形式をとり、例えば特定用途集積回路（ＡＳＩＣ）、プログラマブルゲートアレイ（ＰＧＡ）、またはこれらのデバイスの組み合わせである。あるいは、読み出しコントローラ４２はハードウェア、ソフトウェア、及びファームウェアの組み合わせを含んでいてもよい。ソフトウェアは、プログラム記憶装置（図示せず）に化体したアプリケーションプログラムとして実施される。
【００２１】
読み出し制御ブロック４２は、（一般的にはそれぞれが１３ビットの長さである）Ｓｔｒｅｔｃｈ信号とＯｆｆｓｅｔ信号により、メモリ４４にアクセスする読み出しアドレスを生成する。Ｓｔｒｅｔｃｈ信号は画像中の所望の引き延ばし（ｓｔｒｅｔｃｈｉｎｇ）の程度を示し、格納されたピクセル値のアドレッシングを順番に指示する。これは次のように理解できる。引き延ばしがなければ、読み出しコントローラ４２は、メモリに各ラインを格納するために、ピクセル値を書き込むのと同じやりかたで、後続のクロック信号で格納された各ビデオラインについてメモリ４４から後続のピクセル値を読み出す。このように、読み出しコントローラ４２によりメモリ４４から読み出された対応するピクセルストリングにより表された各ビデオラインは、メモリに読み込まれる時と同じように見える。
【００２２】
所定パーセンテージの画像の引き延ばしをするために、読み出しコントローラ４２はそのパーセンテージでビデオラインの引き延ばしをするやりかたでメモリ４４中のピクセル値を読み出さねばならない。よって、１０％の引き延ばしをするためには、読み出しコントローラ４２は、値がその同じパーセンテージだけ引き延ばされた画像の対応部分を表すピクセルを読み出さねばならない。所望の引き延ばしの程度に応じて、一般的には補間が必要になる。補間が必要になった場合、読み出しコントローラ４２はメモリ４４をアドレッシングして、最も近いピクセル値を取得し、必要な補間をするためのサブピクセル補間コマンドを生成する。このコマンドは、ダウンストリームインターポレータ（図示せず）が受け取る。
【００２３】
読み出しコントローラ４２により受け取られたオフセット信号は、対応するビデオラインにオフセットをかけるためにメモリ４４のアドレッシングにオフセットをかける程度を決定する。例えば、ビデオラインは２５ピクセルだけオフセットされると仮定する。そのようなオフセットをかけるため、読み出しコントローラは、メモリ４４をアドレッシングする後続の読み出しアドレスを出力して、２５ピクセルのオフセットを実現する。
【００２４】
Ｓｔｒｅｔｃｈ及びＯｆｆｓｅｔ信号に加えて、読み出しコントローラ４２は、バッファバイパス信号とライン開始信号を受け取る。ライン開始信号は各ラインの初めで読み出しコントローラ内のステートマシンを初期化する。バッファバイパス信号は、ＯｆｆｓｅｔとＳｔｒｅｔｃｈ信号をゼロに設定して、配置補正をディスエーブルする。
【００２５】
読み出しコントローラ４２から受け取った各ピクセル値のＹ、Ｕ、Ｖ成分の７つのひとつながりの１０ビット値は、それぞれ各データバスＹ＿データ、Ｖ＿データ、及びＵ＿データに乗せられ、サブアドレスデマルチプレクサに採用４６、４８、及び５０のセットの１つに送られる。各サブアドレスマルチプレクサ４６、４８、及び５０は、メモリ４４に送られた読み出しアドレスに関して、読み出しコントローラ４２により生成された２ビットのサンプル選択信号（ＳＡ−ＳＥＬ）を受け取る。サブアドレスデマルチプレクサの各々に送られたＳＡ−ＳＥＬにより、各デマルチプレクサは、それに送られたデータストリーム内の特定のピクセル位相を選択し、残りのピクセル位相をマスキングする。
【００２６】
言うまでもなく、図４の読み出しコントローラ４２は、図３のメモリ構造３０を参照して説明したのと同様に、単一の読み出し動作中に読み出されたピクセル値ストリング内のピクセル位相の組を選択することができる。読み出しコントローラ４２により生成された読み出しアドレスは、メモリ４４から特定のピクセル値ストリングを選択するアドレス要求の第１の部分を有する。サンプル選択信号（ＳＡ−ＳＥＬ）は、アドレス要求の第２の部分を有し、この第２の部分は、サブアドレスデマルチプレクサ４６、４８、及び５０を制御して、特定の関心ピクセル位相を選択し、その他の位相をマスキングするように動作する。このように、読み出しコントローラ４２は、単一の読み出し動作中に、メモリ４４から特定のピクセル値ストリングを読み出し、その特定のピクセル位相を選択するように動作する。
【００２７】
以上、単一読み出し動作中に、格納された値に効率的にアクセスして、値ストリング内の所定値のセットのいずれをも取得できる方法を説明した。
【図面の簡単な説明】
【００２８】
【図１】各メモリ位置に単一のピクセルが格納されている先行技術のリニアメモリ構造を示す図である。
【図２】値のグループへのランダムアクセスを可能とする本原理の第１の実施形態によるメモリ構造を示す図である。
【図３】値のグループへのランダムアクセスを可能とする本原理の第２の実施形態による第２のメモリ構造を示す図である。
【図４】本原理によるメモリ構造を化体した配置補正システムの読み出し制御回路を示す概略的ブロック図である。
【図１】
2007529821.tif 000005
【図２】
2007529821.tif 000006
【図３】
2007529821.tif 000007
【図４】
2007529821.tif 000008
【国際調査報告】
2007529821.tif 000009
2007529821.tif 000010