(57)【特許請求の範囲】
【請求項１】
テクスチャの原画像データを受けて、所定の詳細度を持って縮小したミップマップ画像を生成する画像生成装置であって、
上記原画像データの１ライン分のデータを保持し、保持したデータを順次にパラレル転送する、縦続接続された５つのラインバッファと、
上記各ラインバッファで保持された連続する少なくとも３ライン分のデータを受けて、入力ライン数ｎに基づく所定の画素を中心としたｎ×ｎの画素を抽出し、抽出したｎ×ｎの画素を重み付けされた係数で色値を加重平均して、テクスチャの幅、高さをあらかじめ設定した詳細度をもって縮小し所望のミップマップ画像データを生成する少なくとも２つのフィルタ部と、
パラレルイン・シリアルアウト機能を有し、最終段の上記ラインバッファからパラレル転送されるデータおよび上記各フィルタ部で生成されてパラレル転送されるミップマップ画像データを所定のタイミングで出力する複数のバッファを含む出力部と、を有し、
上記各フィルタ部は、
縮小率に応じた縮小フィルタを含み、係数ｋを１≦ｋ≦ｎを満たす整数とした場合に、原画像データの縦横のサイズを１／２k 倍にした縮小率の異なる縮小画像を生成し、
２ライン分取り込む毎に縮小フィルタの結果を保持し、
上記原画像データの入力段の上記ラインバッファは、
シリアルイン・パラレルアウト機能を有し、シリアルデータである原画像データを水平同期信号に同期して順次入力して１ライン分のデータを保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段のラインバッファおよび上記係数ｋが２を含む２以上の縮小率の所定のフィルタ部に出力する処理を順次繰り返し、
２段目以降の上記ラインバッファは、
水平同期信号に同期して前段の上記ラインバッファからパラレル転送された１ライン分のデータを入力して保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段の上記ラインバッファおよび上記フィルタ部に出力する処理を繰り返し、
上記各フィルタ部は、
上記係数ｋが１の１／２縮小処理を行う１／２フィルタ部と、
上記係数ｋが２の１／４縮小処理を行う１／４フィルタ部と、を含み、
上記係数ｋが１の縮小率の上記１／２フィルタ部は、
最終段の上記ラインバッファを含む当該最終段の上記ラインバッファから３ラインバッファにより転送されたデータを受けて縮小率１／２のミップマップ画像データを生成し、当該１／２縮小処理は、最初は３水平同期期間で行い、以降、２水平同期信号に一度行い、２水平同期信号に一度フィルタリング結果を対応する上記バッファに出力し、
上記係数ｋが２の縮小率の上記１／４フィルタ部は、
上記５つのラインバッファから転送されたデータを受けて縮小率１／４のミップマップ画像データを生成し、当該１／４の縮小処理は、最初は２水平同期期間で行い、以降、２水平同期信号に一度行い、４水平同期信号に一度フィルタリング結果を対応する上記バッファに出力する
画像生成装置。
【請求項２】
上記各フィルタ部は、ｎ×ｎの画素を抽出する場合、隣接するｎ×ｎの抽出画素とラインをオーバーラップさせて抽出する
請求項１記載の画像生成装置。
【請求項３】
上記出力部の上記バッファは、ビデオクロックに同期して上記フィルタ部で生成されたミップマップ画像データを入力し、上記ビデオクロックより高速なクロックで出力する
請求項１または２記載の画像生成装置。
【請求項４】
上記出力部は、上記各バッファによるミップマップ画像データを、それぞれ異なるタイミングで出力する出力回路を含む
請求項１から３のいずれか一に記載の画像生成装置。
【請求項５】
上記出力回路は、各バッファの出力毎に、出力すべき記憶回路のメモリ空間のベースポインタを切り換えて、ライン毎に書き込まれるように、各フィルタ部で生成されたミップマップ画像データを選択して出力する
請求項４記載の画像生成装置。
【請求項６】
テクスチャの原画像データの１ライン分のデータを保持し、保持したデータを順次にパラレル転送する、縦続接続された５つのラインバッファと、上記各ラインバッファで保持された連続する少なくとも３ライン分のデータを受けて、入力ライン数ｎに基づく所定の画素を中心としたｎ×ｎの画素を抽出し、抽出したｎ×ｎの画素を重み付けされた係数で色値を加重平均して、テクスチャの幅、高さをあらかじめ設定した詳細度をもって縮小し所望のミップマップ画像データを生成する少なくとも２つのフィルタ部と、パラレルイン・シリアルアウト機能を有し、最終段の上記ラインバッファからパラレル転送されるデータおよび上記各フィルタ部で生成されてパラレル転送されるミップマップ画像データを所定のタイミングで出力する複数のバッファを含む出力部と、を有する画像生成装置と、
上記原画像データおよび上記画像生成装置から出力されるミップマップ画像を記憶する記憶回路と、
上記記憶回路に記憶された画像データに基づいてテクスチャマッピング処理を行って出力画像を生成する画像処理回路と、を有し、
上記画像生成装置において、
上記各フィルタ部は、
縮小率に応じた縮小フィルタを含み、係数ｋを１≦ｋ≦ｎを満たす整数とした場合に、原画像データの縦横のサイズを１／２k 倍にした縮小率の異なる縮小画像を生成し、
２ライン分取り込む毎に縮小フィルタの結果を保持し、
上記原画像データの入力段の上記ラインバッファは、
シリアルイン・パラレルアウト機能を有し、シリアルデータである原画像データを水平同期信号に同期して順次入力して１ライン分のデータを保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段のラインバッファおよび上記係数ｋが２を含む２以上の縮小率の所定のフィルタ部に出力する処理を順次繰り返し、
２段目以降の上記ラインバッファは、
水平同期信号に同期して前段の上記ラインバッファからパラレル転送された１ライン分のデータを入力して保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段の上記ラインバッファおよび上記フィルタ部に出力する処理を繰り返し、
上記フィルタ部は、
上記係数ｋが１の１／２縮小処理を行う１／２フィルタ部と、
上記係数ｋが２の１／４縮小処理を行う１／４フィルタ部と、を含み、
上記係数ｋが１の縮小率の上記１／２フィルタ部は、
最終段の上記ラインバッファを含む当該最終段の上記ラインバッファから３ラインバッファにより転送されたデータを受けて縮小率１／２のミップマップ画像データを生成し、当該１／２縮小処理は、最初は３水平同期期間で行い、以降、２水平同期信号に一度行い、２水平同期信号に一度フィルタリング結果を対応する上記バッファに出力し、
上記係数ｋが２の縮小率の上記１／４フィルタ部は、
上記５つのラインバッファから転送されたデータを受けて縮小率１／４のミップマップ画像データを生成し、当該１／４の縮小処理は、最初は２水平同期期間で行い、以降、２水平同期信号に一度行い、４水平同期信号に一度フィルタリング結果を対応する上記バッファに出力する
画像処理装置。
【請求項７】
上記各フィルタ部は、ｎ×ｎの画素を抽出する場合、隣接するｎ×ｎの抽出画素とラインをオーバーラップさせて抽出する
請求項６記載の画像処理装置。
【請求項８】
上記出力部の上記バッファは、ビデオクロックに同期して上記フィルタ部で生成されたミップマップ画像データを入力し、上記ビデオクロックより高速なクロックで出力する
請求項６または７記載の画像処理装置。
【請求項９】
上記出力部は、上記各バッファによるミップマップ画像データを、それぞれ異なるタイミングで出力する出力回路を含む
請求項６から８のいずれか一に記載の画像処理装置。
【請求項１０】
上記出力回路は、各バッファの出力毎に、出力すべき記憶回路のメモリ空間のベースポインタを切り換えて、ライン毎に書き込まれるように、各フィルタ部で生成されたミップマップ画像データを選択して出力する
請求項９記載の画像処理装置。
【請求項１１】
テクスチャの原画像データを受けて、所定の詳細度を持って縮小したミップマップ画像を生成する画像生成方法であって、
上記原画像データの１ライン分のデータを５ライン分、縦続接続されたラインバッファに保持する保持ステップと、
上記ラインバッファに保持したデータを順次にパラレル転送する転送ステップと、
フィルタ部において、上記各ラインバッファで保持され、パラレル転送された連続する少なくとも３ライン分のデータを受けて、入力ライン数ｎに基づく所定の画素を中心としたｎ×ｎの画素を抽出する抽出ステップと、
上記フィルタ部において、抽出したｎ×ｎの画素を重み付けされた係数で色値を加重平均して、テクスチャの幅、高さをあらかじめ設定した詳細度をもって縮小し所望のミップマップ画像データを生成する生成ステップと、
最終段の上記ラインバッファからパラレル転送されるデータおよび上記各フィルタ部で生成されてパラレル転送されるミップマップ画像データを所定のタイミングでシリアルデータとして、パラレルイン・シリアルアウト機能を有するバッファにより出力する出力ステップと、を有し、
上記生成ステップにおいては、
上記フィルタ部において、係数ｋを１≦ｋ≦ｎを満たす整数とした場合に、原画像データの縦横のサイズを１／２k 倍にした縮小率の異なる縮小画像を生成し、
上記原画像データの入力段の上記ラインバッファにおいては、
シリアルデータである原画像データを水平同期信号に同期して順次入力して１ライン分のデータを保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段のラインバッファおよび上記係数ｋが２を含む２以上の縮小率の所定のフィルタ部にパラレルに出力する処理を順次繰り返し、
２段目以降の上記ラインバッファにおいては、
水平同期信号に同期して前段の上記ラインバッファからパラレル転送された１ライン分のデータを入力して保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段の上記ラインバッファおよび上記フィルタ部に出力する処理を繰り返し、
上記抽出ステップおよび上記生成ステップにおいては、
フィルタ部において、縮小率に応じた縮小フィルタを用いた処理を行い、２ライン分取り込む毎に縮小フィルタの結果を保持し、
上記保持ステップおよび上記転送ステップにおいては、
縦続接続された５つのラインバッファによりデータの保持およびパラレル転送を行い、
上記生成ステップは、
上記係数ｋが１の１／２縮小処理を行う１／２縮小画像生成ステップと、
上記係数ｋが２の１／４縮小処理を行う１／４縮小画像生成ステップと、を含み、
上記係数ｋが１の縮小率の上記１／２縮小画像生成ステップにおいては、
上記フィルタ部において、最終段の上記ラインバッファを含む当該最終段の上記ラインバッファから３ラインバッファにより転送されたデータを受けて縮小率１／２のミップマップ画像データを生成し、当該１／２縮小処理は、最初は３水平同期期間で行い、以降、２水平同期信号に一度行い、２水平同期信号に一度フィルタリング結果を対応する上記バッファに出力し、
上記係数ｋが２の縮小率の上記１／４縮小画像生成ステップにおいては、
上記フィルタ部において、上記５つのラインバッファから転送されたデータを受けて縮小率１／４のミップマップ画像データを生成し、当該１／４の縮小処理は、最初は２水平同期期間で行い、以降、２水平同期信号に一度行い、４水平同期信号に一度フィルタリング結果を対応する上記バッファに出力する
画像生成方法。
【請求項１２】
ｎ×ｎの画素を抽出する場合、隣接するｎ×ｎの抽出画素とラインをオーバーラップさせて抽出する
請求項１１記載の画像生成方法。
【請求項１３】
テクスチャの原画像データの１ライン分のデータを５ライン分、縦続接続されたラインバッファに保持する保持ステップと、
上記ラインバッファに保持したデータを順次にパラレル転送する転送ステップと、
フィルタ部において、上記各ラインバッファで保持され、パラレル転送された連続する少なくとも３ライン分のデータを受けて、入力ライン数ｎに基づく所定の画素を中心としたｎ×ｎの画素を抽出する抽出ステップと、
上記フィルタ部において、抽出したｎ×ｎの画素を重み付けされた係数で色値を加重平均して、テクスチャの幅、高さをあらかじめ設定した詳細度をもって縮小し所望のミップマップ画像データを生成する第１の生成ステップと、
最終段の上記ラインバッファからパラレル転送されるデータおよび上記各フィルタ部で生成されてパラレル転送されるミップマップ画像データを所定のタイミングでシリアルデータとして、パラレルイン・シリアルアウト機能を有するバッファにより出力する出力ステップと、
原画像データおよび生成したミップマップ画像データを記憶回路に記憶する記憶ステップと、
上記記憶ステップで記憶された画像データに基づいてテクスチャマッピング処理を行って出力画像を生成する第２の生成ステップと、を有し、
上記第１の生成ステップにおいては、
上記フィルタ部において、係数ｋを１≦ｋ≦ｎを満たす整数とした場合に、原画像データの縦横のサイズを１／２k 倍にした縮小率の異なる縮小画像を生成し、
上記原画像データの入力段の上記ラインバッファにおいては、
シリアルデータである原画像データを水平同期信号に同期して順次入力して１ライン分のデータを保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段のラインバッファおよび上記係数ｋが２を含む２以上の縮小率の所定のフィルタ部にパラレルに出力する処理を順次繰り返し、
２段目以降の上記ラインバッファにおいては、
水平同期信号に同期して前段の上記ラインバッファからパラレル転送された１ライン分のデータを入力して保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段の上記ラインバッファおよび上記フィルタ部に出力する処理を繰り返し、
上記抽出ステップおよび上記第１の生成ステップにおいては、
フィルタ部において、縮小率に応じた縮小フィルタを用いた処理を行い、２ライン分取り込む毎に縮小フィルタの結果を保持し、
上記保持ステップおよび上記転送ステップにおいては、
縦続接続された５つのラインバッファによりデータの保持およびパラレル転送を行い、
上記第１の生成ステップは、
上記係数ｋが１の１／２縮小処理を行う１／２縮小画像生成ステップと、
上記係数ｋが２の１／４縮小処理を行う１／４縮小画像生成ステップと、を含み、
上記係数ｋが１の縮小率の上記１／２縮小画像生成ステップにおいては、
上記フィルタ部において、最終段の上記ラインバッファを含む当該最終段の上記ラインバッファから３ラインバッファにより転送されたデータを受けて縮小率１／２のミップマップ画像データを生成し、当該１／２縮小処理は、最初は３水平同期期間で行い、以降、２水平同期信号に一度行い、２水平同期信号に一度フィルタリング結果を対応する上記バッファに出力し、
上記係数ｋが２の縮小率の上記１／４縮小画像生成ステップにおいては、
上記フィルタ部において、上記５つのラインバッファから転送されたデータを受けて縮小率１／４のミップマップ画像データを生成し、当該１／４の縮小処理は、最初は２水平同期期間で行い、以降、２水平同期信号に一度行い、４水平同期信号に一度フィルタリング結果を対応する上記バッファに出力する
画像処理方法。
【請求項１４】
ｎ×ｎの画素を抽出する場合、隣接するｎ×ｎの抽出画素とラインをオーバーラップさせて抽出する
請求項１３記載の画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、１または複数の解像度のミップマップ画像を生成する画像生成装置、画像処理装置およびそれらの方法に関するものである。
【０００２】
【従来の技術】
３次元グラフィックスシステムにおいては、３次元座標を３角形などのポリゴン（多角形）に分解し、そのポリゴンを描画することで、画像全体の描画が行われる。したがって、この場合、３次元画像は、ポリゴンの組み合わせで定義されていると言える。
ところで、身の回りにある物体表面は、複雑な模様の繰り返しパターンを有することが多く、模様やパターンが複雑で細かくなるほど、各模様やパターンを３角形などでモデリングすることは困難となる。そこで、これを解決する手段として、テクスチャマッピング (Texture Mapping)が用いられる。
【０００３】
テクスチャマッピングは、スキャナ等で取り込んだイメージデータを、物体表面に貼り付けることにより、少ない頂点数で、リアリティの高い画像を実現するもので、オブジェクト（Object）座標系からテクスチャ（Texture ）座標系への写像ｆを定義し、さらに、ウインドウ（Window）座標系からテクスチャ座標系への写像ｇを求めて、ウインドウ座標系における各ピクセル（Pixel, Picture Cell Element ）に対応するテクスチャの要素であるテクセル（Texel, Texture Cell Element ）を求める。
【０００４】
テクスチャに利用される画像データは、テクスチャメモリと呼ばれるメモリ領域に格納される。したがって、動画像データを用いてテクスチャメモリを随時更新する処理を行うと、動画像によるテクスチャマッピング処理が可能となる。
【０００５】
ところで、テクスチャマッピングは、上述のように、テクスチャを、物体表面に貼り付けることにより行われる。
たとえば、図１１（Ａ）に示すように、オブジェクト座標系上において、矩形ポリゴン２００の表面にテクスチャ２０１を貼り付けたものがあり、これを、図１１（Ｂ）に示すように回転させて表示した場合、ウインドウ座標系上においては、元のポリゴン（この場合は、矩形）に対して、左端に、拡大されたテクスチャが貼り付けられ、右にいくほど、縮小されたテクスチャが貼り付けられたように見える。
この場合、画素に、原画よりも拡大されたテクスチャを貼り付けるときには、たとえば、４近傍補間等の、原画のフィルタリング処理を行うことで、リアルタイムに対処することができる。
【０００６】
しかしながら、テクスチャが縮小される場合には、１つの画素に、多くのテクセルが対応することとなり、画像のエイリアシング（Aliasing）妨害が目立つようになる。
そこで、ポリゴンの大きさに対応した多種類のテクスチャの大きさを有するテクスチャパターンをあらかじめ生成しておき、必要に応じてそれをポリゴンにマッピングするミップマップ（MIPMAP:multum in parvo、many things in a small place）テクスチャマッピング法（以下、ミップマップ法という）が知られている。
【０００７】
ミップマップ法においては、テクスチャメモリに、原画を種々の縮小率で縮小したビットマップのデータ（Bitmap Data ）（テクスチャデータ）を記憶させておく。
たとえば、図１２に示すように、原画の横と縦の長さを順次１／２に縮小したイメージ（縮小率が1/2 、1/4 、1/8 、・・・のイメージ）をあらかじめ用意し、テクスチャメモリに記憶させておく。
【０００８】
各々の縮小画像のサイズに関しては、詳細度( ＬＯＤ：Level of Detail)という尺度が用いられる。最も大きい画像は入力画像と同じサイズであり、これはＬＯＤ「０」である。縦横のサイズが１／２（面積では１／４）の縮小画像はＬＯＤ「１」である。同様に、縦横のサイズが１／４，１／８の画像は、それぞれＬＯＤ「２」，「３」というように、縦横のサイズが１／２になる度にＬＯＤの値は１ずつ増加する。この縮小画像セットは、理論上は縦横のサイズが１×１ピクセルの大きさになるまで用意しておく必要がある。
【０００９】
そして、ミップマップ処理では、テクスチャマッピングの際に、処理するピクセルにおける縮小率に最も近いサイズの縮小画像を選択して貼り付けることで、高速でかつエイリアシングのない処理結果を得る。
また、さらに高画質を望む場合は、選択した縮小画像内で補間演算を行ったり（bilinear処理）、複数のサイズの縮小画像を選択し、縮小画像間でさらに補間演算を行ったり（trilinear 処理）する手法などが知られている。
これらの演算にはより多くの時間がかかるが、近年の半導体技術の発達によって高速な演算が可能になったことから、現在では普通に利用されている。
【００１０】
【発明が解決しようとする課題】
ところで、ミップマップ処理は、複数の解像度を持つ縮小画像を用意する必要があり、これに時間がかかるため、動画像のように次々と更新される画像に対し、リアルタイムで縮小画像のセットを揃えることは困難であるとされていた。
【００１１】
そこで、従来、生成されたミップマップ画像に折り返しが生じないミップマップ画像生成装置が提案されている（たとえば特開平７−２３０５５５号公報参照）。
この装置では、たとえば折り返しノイズを抑えるために、離散コサイン変換（ＤＣＴ）、逆離散コサイン変換（ＩＤＣＴ）や、離散フーリエ変換および逆フーリエ変換等の空間変換処理部を含み、空間変換中に高周波をカットするフィルタが用いられる。
【００１２】
しかしながら、この従来の装置では、ＤＣＴおよびＩＤＣＴ等の空間変換処理を行うために、これをハードウェアで実現しようとすると、回路規模が大きくなるという不利益がある。
【００１３】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、回路規模の増大を招くことなく、ミップマップ処理によってリアルタイムに１または複数の解像度のテクスチャ画像（ミップマップ画像）を生成できる画像生成装置、それらを用いてテクスチャマッピング処理を高い精度で行うことができる画像処理装置およびそれらの方法を提供することにある。
【００１４】
【課題を解決するための手段】
上記目的を達成するため、本発明は、テクスチャの原画像データを受けて、所定の詳細度を持って縮小したミップマップ画像を生成する画像生成装置であって、上記原画像データの１ライン分のデータを保持し、保持したデータを順次にパラレル転送する、縦続接続された５つのラインバッファと、上記各ラインバッファで保持された連続する少なくとも３ライン分のデータを受けて、入力ライン数ｎに基づく所定の画素を中心としたｎ×ｎの画素を抽出し、抽出したｎ×ｎの画素を重み付けされた係数で色値を加重平均して、テクスチャの幅、高さをあらかじめ設定した詳細度をもって縮小し所望のミップマップ画像データを生成する少なくとも２つのフィルタ部と、パラレルイン・シリアルアウト機能を有し、最終段の上記ラインバッファからパラレル転送されるデータおよび上記各フィルタ部で生成されてパラレル転送されるミップマップ画像データを所定のタイミングで出力する複数のバッファを含む出力部と、を有し、上記各フィルタ部は、縮小率に応じた縮小フィルタを含み、係数ｋを１≦ｋ≦ｎを満たす整数とした場合に、原画像データの縦横のサイズを１／２k 倍にした縮小率の異なる縮小画像を生成し、２ライン分取り込む毎に縮小フィルタの結果を保持し、上記原画像データの入力段の上記ラインバッファは、シリアルイン・パラレルアウト機能を有し、シリアルデータである原画像データを水平同期信号に同期して順次入力して１ライン分のデータを保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段のラインバッファおよび上記係数ｋが２を含む２以上の縮小率の所定のフィルタ部に出力する処理を順次繰り返し、２段目以降の上記ラインバッファは、水平同期信号に同期して前段の上記ラインバッファからパラレル転送された１ライン分のデータを入力して保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段の上記ラインバッファおよび上記フィルタ部に出力する処理を繰り返し、上記各フィルタ部は、上記係数ｋが１の１／２縮小処理を行う１／２フィルタ部と、上記係数ｋが２の１／４縮小処理を行う１／４フィルタ部と、を含み、上記係数ｋが１の縮小率の上記１／２フィルタ部は、最終段の上記ラインバッファを含む当該最終段の上記ラインバッファから３ラインバッファにより転送されたデータを受けて縮小率１／２のミップマップ画像データを生成し、当該１／２縮小処理は、最初は３水平同期期間で行い、以降、２水平同期信号に一度行い、２水平同期信号に一度フィルタリング結果を対応する上記バッファに出力し、上記係数ｋが２の縮小率の上記１／４フィルタ部は、上記５つのラインバッファから転送されたデータを受けて縮小率１／４のミップマップ画像データを生成し、当該１／４の縮小処理は、最初は２水平同期期間で行い、以降、２水平同期信号に一度行い、４水平同期信号に一度フィルタリング結果を対応する上記バッファに出力する。
【００１５】
また、本発明の画像処理装置は、テクスチャの原画像データの１ライン分のデータを保持し、保持したデータを順次にパラレル転送する、縦続接続された５つのラインバッファと、上記各ラインバッファで保持された連続する少なくとも３ライン分のデータを受けて、入力ライン数ｎに基づく所定の画素を中心としたｎ×ｎの画素を抽出し、抽出したｎ×ｎの画素を重み付けされた係数で色値を加重平均して、テクスチャの幅、高さをあらかじめ設定した詳細度をもって縮小し所望のミップマップ画像データを生成する少なくとも２つのフィルタ部と、パラレルイン・シリアルアウト機能を有し、最終段の上記ラインバッファからパラレル転送されるデータおよび上記各フィルタ部で生成されてパラレル転送されるミップマップ画像データを所定のタイミングで出力する複数のバッファを含む出力部と、を有する画像生成装置と、上記原画像データおよび上記画像生成装置から出力されるミップマップ画像を記憶する記憶回路と、上記記憶回路に記憶された画像データに基づいてテクスチャマッピング処理を行って出力画像を生成する画像処理回路と、を有し、上記画像生成装置において、上記各フィルタ部は、縮小率に応じた縮小フィルタを含み、係数ｋを１≦ｋ≦ｎを満たす整数とした場合に、原画像データの縦横のサイズを１／２k 倍にした縮小率の異なる縮小画像を生成し、２ライン分取り込む毎に縮小フィルタの結果を保持し、上記原画像データの入力段の上記ラインバッファは、シリアルイン・パラレルアウト機能を有し、シリアルデータである原画像データを水平同期信号に同期して順次入力して１ライン分のデータを保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段のラインバッファおよび上記係数ｋが２を含む２以上の縮小率の所定のフィルタ部に出力する処理を順次繰り返し、２段目以降の上記ラインバッファは、水平同期信号に同期して前段の上記ラインバッファからパラレル転送された１ライン分のデータを入力して保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段の上記ラインバッファおよび上記フィルタ部に出力する処理を繰り返し、上記フィルタ部は、上記係数ｋが１の１／２縮小処理を行う１／２フィルタ部と、上記係数ｋが２の１／４縮小処理を行う１／４フィルタ部と、を含み、上記係数ｋが１の縮小率の上記１／２フィルタ部は、最終段の上記ラインバッファを含む当該最終段の上記ラインバッファから３ラインバッファにより転送されたデータを受けて縮小率１／２のミップマップ画像データを生成し、当該１／２縮小処理は、最初は３水平同期期間で行い、以降、２水平同期信号に一度行い、２水平同期信号に一度フィルタリング結果を対応する上記バッファに出力し、上記係数ｋが２の縮小率の上記１／４フィルタ部は、上記５つのラインバッファから転送されたデータを受けて縮小率１／４のミップマップ画像データを生成し、当該１／４の縮小処理は、最初は２水平同期期間で行い、以降、２水平同期信号に一度行い、４水平同期信号に一度フィルタリング結果を対応する上記バッファに出力する。
【００１６】
また、本発明では、上記画像生成装置および回路のフィルタ部は、ｎ×ｎの画素を抽出する場合、隣接するｎ×ｎの抽出画素とラインをオーバーラップさせて抽出する。
【００１７】
また、本発明では、上記画像生成装置および回路の出力部は、ビデオクロックに同期して上記フィルタ部で生成されたミップマップ画像データを入力し、上記ビデオクロックより高速なクロックで出力するバッファを含む。
【００１８】
また、本発明では、上記画像生成装置および回路は、それぞれ異なる詳細度をもって縮小したミップマップ画像データを生成する複数のフィルタ部を有し、上記出力部は、上記各フィルタ部によるミップマップ画像データを、それぞれ異なるタイミングで出力する出力回路を含む。
【００１９】
また、本発明では、上記画像生成装置および回路の出力回路は、各フィルタ部の出力毎に、出力すべき上記記憶回路のメモリ空間のベースポインタを切り換えて、ライン毎に書き込まれるように、各フィルタ部で生成されたミップマップ画像データを選択して出力する。
【００２０】
また、本発明では、上記画像生成装置および回路のラインバッファは、水平同期信号に同期してラインデータの入力およびパラレル転送を行う。
【００２１】
また、本発明は、テクスチャの原画像データを受けて、所定の詳細度を持って縮小したミップマップ画像を生成する画像生成方法であって、上記原画像データの１ライン分のデータを５ライン分、縦続接続されたラインバッファに保持する保持ステップと、上記ラインバッファに保持したデータを順次にパラレル転送する転送ステップと、フィルタ部において、上記各ラインバッファで保持され、パラレル転送された連続する少なくとも３ライン分のデータを受けて、入力ライン数ｎに基づく所定の画素を中心としたｎ×ｎの画素を抽出する抽出ステップと、上記フィルタ部において、抽出したｎ×ｎの画素を重み付けされた係数で色値を加重平均して、テクスチャの幅、高さをあらかじめ設定した詳細度をもって縮小し所望のミップマップ画像データを生成する生成ステップと、最終段の上記ラインバッファからパラレル転送されるデータおよび上記各フィルタ部で生成されてパラレル転送されるミップマップ画像データを所定のタイミングでシリアルデータとして、パラレルイン・シリアルアウト機能を有するバッファにより出力する出力ステップと、を有し、上記生成ステップにおいては、上記フィルタ部において、係数ｋを１≦ｋ≦ｎを満たす整数とした場合に、原画像データの縦横のサイズを１／２k 倍にした縮小率の異なる縮小画像を生成し、上記原画像データの入力段の上記ラインバッファにおいては、シリアルデータである原画像データを水平同期信号に同期して順次入力して１ライン分のデータを保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段のラインバッファおよび上記係数ｋが２を含む２以上の縮小率の所定のフィルタ部にパラレルに出力する処理を順次繰り返し、２段目以降の上記ラインバッファにおいては、水平同期信号に同期して前段の上記ラインバッファからパラレル転送された１ライン分のデータを入力して保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段の上記ラインバッファおよび上記フィルタ部に出力する処理を繰り返し、上記抽出ステップおよび上記生成ステップにおいては、フィルタ部において、縮小率に応じた縮小フィルタを用いた処理を行い、２ライン分取り込む毎に縮小フィルタの結果を保持し、上記保持ステップおよび上記転送ステップにおいては、縦続接続された５つのラインバッファによりデータの保持およびパラレル転送を行い、上記生成ステップは、上記係数ｋが１の１／２縮小処理を行う１／２縮小画像生成ステップと、上記係数ｋが２の１／４縮小処理を行う１／４縮小画像生成ステップと、を含み、上記係数ｋが１の縮小率の上記１／２縮小画像生成ステップにおいては、上記フィルタ部において、最終段の上記ラインバッファを含む当該最終段の上記ラインバッファから３ラインバッファにより転送されたデータを受けて縮小率１／２のミップマップ画像データを生成し、当該１／２縮小処理は、最初は３水平同期期間で行い、以降、２水平同期信号に一度行い、２水平同期信号に一度フィルタリング結果を対応する上記バッファに出力し、上記係数ｋが２の縮小率の上記１／４縮小画像生成ステップにおいては、上記フィルタ部において、上記５つのラインバッファから転送されたデータを受けて縮小率１／４のミップマップ画像データを生成し、当該１／４の縮小処理は、最初は２水平同期期間で行い、以降、２水平同期信号に一度行い、４水平同期信号に一度フィルタリング結果を対応する上記バッファに出力する。
【００２２】
また、本発明の画像処理方法は、テクスチャの原画像データの１ライン分のデータを５ライン分、縦続接続されたラインバッファに保持する保持ステップと、上記ラインバッファに保持したデータを順次にパラレル転送する転送ステップと、フィルタ部において、上記各ラインバッファで保持され、パラレル転送された連続する少なくとも３ライン分のデータを受けて、入力ライン数ｎに基づく所定の画素を中心としたｎ×ｎの画素を抽出する抽出ステップと、上記フィルタ部において、抽出したｎ×ｎの画素を重み付けされた係数で色値を加重平均して、テクスチャの幅、高さをあらかじめ設定した詳細度をもって縮小し所望のミップマップ画像データを生成する第１の生成ステップと、最終段の上記ラインバッファからパラレル転送されるデータおよび上記各フィルタ部で生成されてパラレル転送されるミップマップ画像データを所定のタイミングでシリアルデータとして、パラレルイン・シリアルアウト機能を有するバッファにより出力する出力ステップと、原画像データおよび生成したミップマップ画像データを記憶回路に記憶する記憶ステップと、上記記憶ステップで記憶された画像データに基づいてテクスチャマッピング処理を行って出力画像を生成する第２の生成ステップと、を有し、上記第１の生成ステップにおいては、上記フィルタ部において、係数ｋを１≦ｋ≦ｎを満たす整数とした場合に、原画像データの縦横のサイズを１／２k 倍にした縮小率の異なる縮小画像を生成し、上記原画像データの入力段の上記ラインバッファにおいては、シリアルデータである原画像データを水平同期信号に同期して順次入力して１ライン分のデータを保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段のラインバッファおよび上記係数ｋが２を含む２以上の縮小率の所定のフィルタ部にパラレルに出力する処理を順次繰り返し、２段目以降の上記ラインバッファにおいては、水平同期信号に同期して前段の上記ラインバッファからパラレル転送された１ライン分のデータを入力して保持し、次の水平同期信号に同期して保持した１ライン分のデータを次段の上記ラインバッファおよび上記フィルタ部に出力する処理を繰り返し、上記抽出ステップおよび上記第１の生成ステップにおいては、フィルタ部において、縮小率に応じた縮小フィルタを用いた処理を行い、２ライン分取り込む毎に縮小フィルタの結果を保持し、上記保持ステップおよび上記転送ステップにおいては、縦続接続された５つのラインバッファによりデータの保持およびパラレル転送を行い、上記第１の生成ステップは、上記係数ｋが１の１／２縮小処理を行う１／２縮小画像生成ステップと、上記係数ｋが２の１／４縮小処理を行う１／４縮小画像生成ステップと、を含み、上記係数ｋが１の縮小率の上記１／２縮小画像生成ステップにおいては、上記フィルタ部において、最終段の上記ラインバッファを含む当該最終段の上記ラインバッファから３ラインバッファにより転送されたデータを受けて縮小率１／２のミップマップ画像データを生成し、当該１／２縮小処理は、最初は３水平同期期間で行い、以降、２水平同期信号に一度行い、２水平同期信号に一度フィルタリング結果を対応する上記バッファに出力し、上記係数ｋが２の縮小率の上記１／４縮小画像生成ステップにおいては、上記フィルタ部において、上記５つのラインバッファから転送されたデータを受けて縮小率１／４のミップマップ画像データを生成し、当該１／４の縮小処理は、最初は２水平同期期間で行い、以降、２水平同期信号に一度行い、４水平同期信号に一度フィルタリング結果を対応する上記バッファに出力する。
【００２３】
また、本発明方法では、ｎ×ｎの画素を抽出する場合、隣接するｎ×ｎの抽出画素とラインをオーバーラップさせて抽出する。
【００２４】
本発明によれば、たとえば原画像データが画像生成装置および記憶回路に入力され、記憶回路の所定の領域に原画像データが記憶される。
また、画像生成回路においては、ラインバッファに原画像データの１ライン分のデータが保持され、保持したデータが順次にパラレル転送される。
そして、各ラインバッファで保持された連続するたとえば３ライン分のデータがフィルタ部に供給される。
フィルタ部では、入力ライン数ｎに基づく所定の画素を中心としたｎ×ｎ（たとえば３×３）の画素が抽出される。このとき、たとえば、ｎ×ｎの画素を抽出する場合、隣接するｎ×ｎの抽出画素とラインがオーバーラップされて抽出される。
そして、抽出したｎ×ｎの画素を重み付けされた係数で色値が加重平均されて、テクスチャの幅（横）、高さ（縦）があらかじめ設定した詳細度をもって縮小されて所望のミップマップ画像データが生成され、出力部に出力される。
【００２５】
出力部では、フィルタで生成されたミップマップ画像データが所定のタイミングで出力される。
出力部においては、たとえばフィルタ部で生成されたミップマップ画像データがビデオクロックに同期してバッファに保持され、保持されたミップマップ画像データがビデオクロックより高速なクロックで出力される。
また、フィルタ部が複数存在する場合には、出力部は、出力回路により各フィルタ部によるミップマップ画像データが、それぞれ異なるタイミングで出力される。具体的には、たとえば各フィルタ部の出力毎に、出力すべき記憶回路のメモリ空間のベースポインタを切り換えて、ライン毎に書き込まれるように、各フィルタ部で生成されたミップマップ画像データが選択されて出力される。
記憶回路では、画像生成回路からのミップマップ画像データが、所定の領域に書き込まれる。
次に、画像処理回路によって、記憶回路に記憶された画像データが読み出されて、レンダリング処理が行われる。
【００２６】
【発明の実施の形態】
以下、図面に関連付けて本発明の実施形態に係る画像処理装置について説明する。
【００２７】
図１は、本発明に係る画像処理装置の全体構成を示す図であり、図２は、図１に示す画像処理装置の要部を信号の流れを含めてより具体的に示すブロック図である。
本画像処理装置１は、図１および図２に示すように、ビデオ信号生成回路２、ミップマップ（ＭＩＰＭＡＰ）処理回路３、テクスチャメモリ４、レンダリング回路５、フレームメモリ６、ディスプレイ７、および制御回路８を有し、これらがＡＶ(Audio Visual)バス９を介して接続されている。
【００２８】
ここで、ミップマップ処理回路３が本発明の画像生成装置に対応し、テクスチャメモリ４が本発明の記憶回路に対応し、レンダリング回路５が本発明の画像処理回路に対応し、フレームメモリ６が本発明のフレームメモリに対応し、ディスプレイ７が本発明の表示手段に対応している。
【００２９】
以下、画像処理装置１の各構成要素の機能について説明する。
【００３０】
ビデオ信号生成回路２は、ビデオ撮像装置から得られたデジタルのビデオ信号（たとえば動画像信号）や、ＭＰＥＧデコード処理を経て得られたデジタルのビデオ信号を生成し、これをビデオ信号Ｓ２としてミップマップ処理回路３およびテクスチャメモリ４に出力する。
ビデオ信号Ｓ２は、ミップマップ処理における、詳細度ＬＯＤのレベル（以下、ＬＯＤレベルとも記す）が「０」の画像の信号である。ここで、詳細度が本発明の解像度に対応している。
【００３１】
ミップマップ処理回路３は、ビデオ信号生成回路２から入力したビデオ信号Ｓ２を用いて、それぞれＬＯＤレベルが「０」，「１」，「２」，・・・，「ｎ」のテクスチャ画像（ミップマップ画像）に応じたビデオ信号Ｓ３０，Ｓ３１，Ｓ３２，・・・，Ｓ３ｎをリアルタイムに生成し、これをテクスチャメモリ４に出力する。
ｋを１≦ｋ≦ｎを満たす整数とした場合に、ＬＯＤレベル「ｋ」の画像は、ＬＯＤレベル「０」の画像の縦横のサイズを１／２k 倍にした縮小画像である。
なお、ＬＯＤレベル「ｋ」の値が大きくなるに従って、縮小画像の解像度は低くなる。
本実施形態では、ミップマップ処理回路３は、ビデオ信号Ｓ２の入力に同期して、具体的には、水平同期信号ＨＳＹＮＣに同期して、ビデオ信号Ｓ３０〜Ｓ３ｎの生成および出力をリアルタイムに行う。
【００３２】
図３は、本発明に係るミップマップ処理回路３の具体的な構成例を示す回路図である。また、図４は、図３のラインバッファのデータ入力および転送のタイミングチャートを示す図である。
【００３３】
本ミップマップ処理回路３は、ラインバッファ３００〜３０４、１／２フィルタ部３０５、１／４フィルタ部３０６、バッファ３０７〜３０９、非同期ＦＩＦＯ(asyncronous First-In First-Out)３１０〜３１２、および出力回路３１３を有している。
【００３４】
ビデオ信号生成回路２によるビデオ信号Ｓ２の入力ラインに対して、ラインバッファ３０４、３０３、３０２、３０１、３００の順に縦続接続されている。
【００３５】
ラインバッファ３０４は、いわゆるシリアルイン・パラレルアウトの機能を有し、図４（Ａ）〜（Ｃ）に示すように、水平同期信号ＳＹＮＣに同期して、ビデオ信号生成回路２によるシリアルなビデオ信号Ｓ２の１ライン分のデータＡを順次に入力し、ｈ０の期間１ライン分のデータＡを保持し、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータＡを次のラインバッファ３０３、および１／４フィルタ部３０６にパラレル転送する。
ラインバッフ３０４は、このパラレル転送に並行して、図４（Ａ）〜（Ｃ）に示すように、水平同期信号ＳＹＮＣに同期して、ビデオ信号生成回路２によるシリアルなビデオ信号Ｓ２の次の１ライン分のデータＢを順次に入力し、期間ｈ１の間１ライン分のデータＢを保持し、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータＢを次のラインバッファ３０３、および１／４フィルタ部３０６にパラレル転送する。
ラインバッファ３０４は、以降、同様の動作を１ライン分のデータＣ〜Ｇ，・・・に対して順次に行う。
【００３６】
ラインバッファ３０３は、図４（Ａ）〜（Ｄ）に示すように、水平同期信号ＨＳＹＮＣに同期してパラレル転送された１ライン部のデータＡをｈ１の期間に入力して保持し、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータＡを次のラインバッファ３０２、および１／４フィルタ部３０６にパラレル転送する。
ラインバッフ３０３は、このパラレル転送に並行して、図４（Ａ）〜（Ｄ）に示すように、水平同期信号ＳＹＮＣに同期して、ラインバッファ３０４からパラレル転送された次の１ライン分のデータＢを入力し、期間ｈ２の間１ライン分のデータＢを保持し、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータＢを次のラインバッファ３０２、および１／４フィルタ部３０６にパラレル転送する。
ラインバッフ３０３は、以降、同様の動作を１ライン分のデータＣ〜Ｇ，・・・に対して順次に行う。
【００３７】
ラインバッファ３０２は、図４（Ａ）〜（Ｅ）に示すように、水平同期信号ＨＳＹＮＣに同期してパラレル転送された１ライン部のデータＡをｈ２の期間に入力して保持し、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータＡを次のラインバッファ３０１、１／２フィルタ部３０５、および１／４フィルタ部３０６にパラレル転送する。
ラインバッフ３０２は、このパラレル転送に並行して、図４（Ａ）〜（Ｅ）に示すように、水平同期信号ＳＹＮＣに同期して、ラインバッファ３０３からパラレル転送された次の１ライン分のデータＢを入力し、期間ｈ３の間１ライン分のデータＢを保持し、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータＢを次のラインバッファ３０１、１／２フィルタ部３０５、および１／４フィルタ部３０６にパラレル転送する。
ラインバッフ３０２は、以降、同様の動作を１ライン分のデータＣ〜Ｇ，・・・に対して順次に行う。
【００３８】
ラインバッファ３０１は、図４（Ａ）〜（Ｆ）に示すように、水平同期信号ＨＳＹＮＣに同期してパラレル転送された１ライン部のデータＡをｈ３の期間に入力して保持し、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータＡを次のラインバッファ３００、１／２フィルタ部３０５、および１／４フィルタ部３０６にパラレル転送する。
ラインバッフ３０１は、このパラレル転送に並行して、図４（Ａ）〜（Ｆ）に示すように、水平同期信号ＳＹＮＣに同期して、ラインバッファ３０２からパラレル転送された次の１ライン分のデータＢを入力し、期間ｈ４の間１ライン分のデータＢを保持し、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータＢを次のラインバッファ３００、１／２フィルタ部３０５、および１／４フィルタ部３０６にパラレル転送する。
ラインバッフ３０１は、以降、同様の動作を１ライン分のデータＣ〜Ｇ，・・・に対して順次に行う。
【００３９】
ラインバッファ３００は、図４（Ａ）〜（Ｆ）に示すように、水平同期信号ＨＳＹＮＣに同期してパラレル転送された１ライン部のデータＡをｈ４の期間に入力して保持し、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータＡを１／２フィルタ部３０５、１／４フィルタ部３０６、およびバッファ３０７にパラレル転送する。
ラインバッフ３００は、このパラレル転送に並行して、図４（Ａ）〜（Ｆ）に示すように、水平同期信号ＳＹＮＣに同期して、ラインバッファ３０１からパラレル転送された次の１ライン分のデータＢを入力し、期間ｈ５間に１ライン分のデータＢを保持し、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータＢを１／２フィルタ部３０５、１／４フィルタ部３０６、およびバッファ３０７にパラレル転送する。
ラインバッフ３００は、以降、同様の動作を１ライン分のデータＣ〜Ｇ，・・・に対して順次に行う。
【００４０】
１／２フィルタ部３０５は、たとえば３×３の９画素分を抽出する９点縮小フィルタを有し、ラインバッファ３０２、３０１、および３００からの３ライン分のデータ（たとえばＡ〜Ｃ）を受けて、図５および図６に示すような９点縮小フィルタを通したデータを保持し、たとえば図６（Ｃ）に示すように、保持した９点に対し重み付けされた係数を使用してカラー（色）値を加重平均することで、テクスチャの幅（横）、高さ（縦）をそれぞれ１／２に縮小し、縮小したミップマップ画像データＳ３０５をバッファ３０８に出力する。
図６（Ｃ）の例では、９点の中心画素の重み付け係数が１／４、左右および上下の４画像の重み付け係数が１／８、周囲４画素の重み付け係数が１／１６に設定されている。
【００４１】
なお、１／２フィルタ部３０５に配置される９点縮小フィルタは、隣接の９点と１ラインだけオーバーラップするように入力ラインデータに対してフィルタリングを行う。
１／２フィルタ部３０５は、３つのラインバッファ３００〜３０２に対しては、２ライン分取り込む毎に縮小フィルタの結果を保持する。
この１／２フィルタ部３０５においては、１／２縮小処理は、最初は３ｈ期間で行われ、以降、５ｈ，７ｈと２水平同期信号ＨＳＹＮＣに一度行われる。
そして、２水平同期信号ＨＳＹＮＣに一度、１／２フィルタ部３０５からフィルタリング結果がミップマップ画像データＳ３０５としてバッファ３０８に出力される。
【００４２】
１／４フィルタ部３０６は、たとえば５×５の２５画素分を抽出する２５点縮小フィルタを有し、ラインバッファ３０４、３０３、３０２、３０１、および３００からの５ライン分のデータ（たとえばＡ〜Ｅ）を受けて、図６および図７に示すような２５点縮小フィルタを通したデータを保持し、たとえば図６（Ｅ）に示すように、保持した２５点に対し重み付けされた係数を使用してカラー値を加重平均することで、テクスチャの幅（横）、高さ（縦）をそれぞれ１／４に縮小し、縮小したミップマップ画像データＳ３０６をバッファ３０９に出力する。
図６（Ｅ）の例では、２５点の中心画素の重み付け係数が１／９、左右および上下の４画像の重み付け係数が２／２７、斜め上下に隣接する４画素の重み付け係数が４／８１、中心画素が上下および左右に１画素おいた４画素の重み付け係数が１／２７、それらの上下および左右の８画素の重み付け係数が２／８１、周囲４画素の重み付け係数が１／８１に設定されている。
【００４３】
なお、１／４フィルタ部３０６に配置される２５点縮小フィルタは、隣接の２５点と１ラインだけオーバーラップするように入力ラインデータに対してフィルタリングを行う。
１／４フィルタ部３０６は、５つのラインバッファ３００〜３０４に対しては、２ライン分取り込む毎に縮小フィルタの結果を保持する。
この１／４フィルタ部３０６においては、１／４縮小処理は、最初は２ｈ期間で行われ、以降、６ｈ，１０ｈと４水平同期信号ＨＳＹＮＣに一度行われる。
そして、４水平同期信号ＨＳＹＮＣに一度、１／４フィルタ部３０６からフィルタリング結果がミップマップ画像データＳ３０６としてバッファ３０９に出力される。
【００４４】
バッファ３０７は、いわゆるパラレルイン・シリアルアウトの機能を有し、低速のビデオクロックＶＣＬＫに同期してラインバッファ３００からパラレル転送された１ライン部のデータを受けて、ビデオクロックＶＣＬＫより高速（周波数の高い）クロックＨＩＣＬＫに同期してシリアルデータとして非同期ＦＩＦＯ３１０に転送する。
【００４５】
バッファ３０８は、パラレルイン・シリアルアウトの機能を有し、低速のビデオクロックＶＣＬＫに同期して１／２フィルタ部３０５からパラレル転送された１／２縮小のミップマップ画像データＳ３０５（テクスチャデータ）を受けて、ビデオクロックＶＣＬＫより高速クロックＨＩＣＬＫに同期してシリアルデータとして非同期ＦＩＦＯ３１１に転送する。
【００４６】
バッファ３０９は、パラレルイン・シリアルアウトの機能を有し、低速のビデオクロックＶＣＬＫに同期して１／４フィルタ部３０６からパラレル転送された１／４縮小のミップマップ画像データＳ３０６（テクスチャデータ）を受けて、ビデオクロックＶＣＬＫより高速クロックＨＩＣＬＫに同期してシリアルデータとして非同期ＦＩＦＯ３１２に転送する。
【００４７】
非同期ＦＩＦＯ３１０は、バッファ３０７から転送された１ライン分のシリアルデータを順次に入力し、入力順にＬＯＤ０のデータとして出力回路３１３に出力する。
【００４８】
非同期ＦＩＦＯ３１１は、バッファ３０８からシリアルデータとして転送されたＬＯＤ１のデータである１／２縮小のミップマップ画像データを順次に入力し、入力順出力回路３１３に出力する。
【００４９】
非同期ＦＩＦＯ３１２は、バッファ３０９からシリアルデータとして転送されたＬＯＤ２のデータである１／４縮小のミップマップ画像データを順次に入力し、入力順に出力回路３１３に出力する。
【００５０】
出力回路３１３は、非同期ＦＩＦＯ３１０によるＬＯＤ０の１ライン分のシリアルデータ、非同期ＦＩＦＯ３１１によるＬＯＤ１の１／２縮小のミップマップ画像データ、および非同期ＦＩＦＯ３１２によるＬＯＤ２の１／４縮小のミップマップ画像データを、たとえばそれぞれ異なるタイミングでテクスチャメモリ４に出力する。
出力回路３１３は、たとえば図８に示すように、それぞれ詳細度（縮小レベル）が異なるデータが格納される非同期ＦＩＦＯ３１０、３１１、３１２の出力先を、メモリ空間ＭＳのベースポインタＢＰを切り換えて、ライン毎に書き込まれるように、非同期ＦＩＦＯ３１０、３１１、３１２の出力を選択してテクスチャメモリ４に出力する。
【００５１】
テクスチャメモリ４は、ビデオ信号生成回路２からのビデオ信号Ｓ２と、ミップマップ処理回路３からのビデオ信号（ミップマップ画像データ）Ｓ３０〜Ｓ３ｎとを所定の領域に記憶する。
【００５２】
次に、図１および図２に示す画像処理装置１におけるテクスチャメモリ４の具体的な構成例について説明する。
【００５３】
図９は、テクスチャメモリ４の具体的な構成例を示す図である。
テクスチャメモリ４は、図９に示すように、物理メモリ４１，４２およびバス４３，４４を有する。
【００５４】
物理メモリ４１，４２は、デュアルポートメモリであり、データの書き込みとデータの読み出しとを独立して行える。
物理メモリ４１の書き込みポートは、図１および図２に示すＡＶバス９に接続されており、ビデオ信号生成回路２から出力された原画像データであるビデオ信号Ｓ２が入力される。
また、物理メモリ４１の読み出しポートは、バス４４に接続されている。
【００５５】
物理メモリ４２の書き込みポートはバス４３に接続されており、物理メモリ４２の読み出しポートはバス４４に接続されている。
【００５６】
バス４３は、図１および図２に示すＡＶバス９および物理メモリ４２の書き込みポートに接続されており、ＡＶバス９を介してミップマップ画像データＳ３０〜Ｓ３ｎを受けて、これらを物理メモリ４２の書き込みポートに出力する。
【００５７】
バス４４は、物理メモリ４１，４２の読み出しポートと、図１および図２に示すＡＶバス９とに接続されており、物理メモリ４１，４２から読み出しされた画像データＳ４をレンダリング回路５に出力する。
【００５８】
図９に示す構成のテクスチャメモリ４では、ミップマップ画像データＳ３０〜Ｓ３ｎを書き込む物理メモリ４２内のアドレスが、ライン単位で不連続となることから、高速動作が可能なたとえばＳＲＡＭなどを用いることが好ましい。
【００５９】
レンダリング回路５は、テクスチャメモリ４に記憶されたビデオ信号Ｓ２，Ｓ３1 〜Ｓ３n のうち、制御回路８によって指定されたＬＯＤレベルのビデオ信号Ｓ４をテクスチャメモリ４から読み出し、読み出したビデオ信号Ｓ４を用いてレンダリング処理を行ってビデオ信号Ｓ５を生成し、これをフレームメモリ６に出力する。
このレンダリング処理では、３次元モデルに動画像を張り付けるテクスチャマッピングが行われる。
【００６０】
フレームメモリ６は、レンダリング回路５から入力して記憶したビデオ信号をディスプレイ７に出力する。
【００６１】
ディスプレイ７は、フレームメモリ６から入力したビデオ信号に応じた画像を表示する。
【００６２】
次に、上記構成を有する画像処理装置１の動作を説明する。
【００６３】
ビデオ信号生成回路２において生成された原画像データとしてのビデオ信号Ｓ２がミップマップ処理回路３およびテクスチャメモリ４に出力される。
そして、ビデオ信号Ｓ２が、ＡＶバス９を介して、テクスチャメモリ４の物理メモリ４１の書き込みポートに入力され、物理メモリ４１に書き込まれる。
【００６４】
また、ミップマップ処理回路３においては、ビデオ信号生成回路２によるシリアルなビデオ信号Ｓ２の１ライン分のデータがラインバッファ３０４に順次に入力され、ｈ（０，１，・・）の期間に１ライン分のデータが保持され、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータが次のラインバッファ３０３、および１／４フィルタ部３０６にパラレル転送される。
ラインバッファ３０３では、水平同期信号ＨＳＹＮＣに同期してラインバッファ３０４からパラレル転送された１ライン部のデータがｈ（１，２，・・・）の期間に入力されて保持され、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータが次のラインバッファ３０２、および１／４フィルタ部３０６にパラレル転送される。
ラインバッファ３０２では、水平同期信号ＨＳＹＮＣに同期してラインバッファ３０３からパラレル転送された１ライン部のデータがｈ（２，３，・・・）の期間に入力されて保持され、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータが次のラインバッファ３０１、１／２フィルタ部３０５、および１／４フィルタ部３０６にパラレル転送される。
ラインバッファ３０１では、水平同期信号ＨＳＹＮＣに同期してラインバッファ３０２からパラレル転送された１ライン部のデータがｈ（３，４，・・・）の期間に入力されて保持され、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータが次のラインバッファ３００、１／２フィルタ部３０５、および１／４フィルタ部３０６にパラレル転送される。
さらに、ラインバッファ３００では、水平同期信号ＨＳＹＮＣに同期してラインバッファ３０１からパラレル転送された１ライン部のデータＡがｈ（４，５，・・・）の期間に入力されて保持され、次の水平同期信号ＳＹＮＣに同期して、保持した１ライン分のデータが１／２フィルタ部３０５、１／４フィルタ部３０６、およびバッファ３０７にパラレル転送される。
【００６５】
１／２フィルタ部３０５においては、ラインバッファ３０２、３０１、および３００からの３ライン分のデータを受けて、９点縮小フィルタを通したデータが保持される。９点縮小フィルタでは、隣接の９点と１ラインだけオーバーラップするように入力ラインデータに対してフィルタリングが行われる。
そして、１／２フィルタ部３０５では、保持した９点に対し重み付けされた係数を使用してカラー値が加重平均され、これによりテクスチャの幅（横）、高さ（縦）がそれぞれ１／２に縮小される。
この１／２フィルタ部３０５においては、１／２縮小処理は、最初は３ｈ期間で行われ、以降、５ｈ，７ｈと２水平同期信号ＨＳＹＮＣに一度行われる。
そして、２水平同期信号ＨＳＹＮＣに一度、１／２フィルタ部３０５からフィルタリング結果がミップマップ画像データＳ３０５としてバッファ３０８に出力される。
【００６６】
また、１／４フィルタ部３０６では、ラインバッファ３０４、３０３、３０２、３０１、および３００からの５ライン分のデータを受けて、２５点縮小フィルタを通したデータが保持される。２５点縮小フィルタでは、隣接の２５点と１ラインだけオーバーラップするように入力ラインデータに対してフィルタリングが行われる。
そして、１／４フィルタ部３０６は、保持した２５点に対し重み付けされた係数を使用してカラー値が加重平均され、これによりテクスチャの幅（横）、高さ（縦）がそれぞれ１／４に縮小される。
この１／４フィルタ部３０６においては、１／４縮小処理は、最初は２ｈ期間で行われ、以降、６ｈ，１０ｈと４水平同期信号ＨＳＹＮＣに一度行われる。
そして、４水平同期信号ＨＳＹＮＣに一度、１／４フィルタ部３０６からフィルタリング結果がミップマップ画像データＳ３０６としてバッファ３０９に出力される。
【００６７】
バッファ３０７では、低速のビデオクロックＶＣＬＫに同期してラインバッファ３００からパラレル転送された１ライン部のデータが入力され、入力されたデータがビデオクロックＶＣＬＫより高速クロックＨＩＣＬＫに同期してシリアルデータとして非同期ＦＩＦＯ３１０に転送される。
バッファ３０８では、低速のビデオクロックＶＣＬＫに同期して１／２フィルタ部３０５からパラレル転送された１／２縮小のミップマップ画像データＳ３０５が入力され、入力されたデータが高速ＨＩＣＬＫに同期してシリアルデータとして非同期ＦＩＦＯ３１１に転送される。
同様に、バッファ３０９では、低速のビデオクロックＶＣＬＫに同期して１／４フィルタ部３０６からパラレル転送された１／４縮小のミップマップ画像データＳ３０６が入力され、入力されたデータが高速クロックＨＩＣＬＫに同期してシリアルデータとして非同期ＦＩＦＯ３１２に転送される。
【００６８】
そして、非同期ＦＩＦＯ３１０において、バッファ３０７から転送された１ライン分のシリアルデータが順次に入力され、入力順にＬＯＤ０のデータとして出力回路３１３に出力される。
また、非同期ＦＩＦＯ３１１では、バッファ３０８からシリアルデータとして転送されたＬＯＤ１のデータである１／２縮小のミップマップ画像データが順次に入力され、入力順に出力回路３１３に出力される。
同様に、非同期ＦＩＦＯ３１２では、バッファ３０９からシリアルデータとして転送されたＬＯＤ２のデータである１／４縮小のミップマップ画像データが順次に入力され、入力順に出力回路３１３に出力される。
【００６９】
出力回路３１３では、非同期ＦＩＦＯ３１０によるＬＯＤ０の１ライン分のシリアルデータ、非同期ＦＩＦＯ３１１によるＬＯＤ１の１／２縮小のミップマップ画像データ、および非同期ＦＩＦＯ３１２によるＬＯＤ２の１／４縮小のミップマップ画像データが、メモリ空間ＭＳのベースポインタＢＰを切り換えて、ライン毎に書き込まれるように、非同期ＦＩＦＯ３１０、３１１、３１２の出力が選択され、選択されたミップマップ画像データがフレームメモリ４に出力される。
【００７０】
テクスチャメモリ４では、ミップマップ処理回路３からのミップマップ画像データＳ３０〜Ｓ３ｎが、ＡＶバス９およびテクスチャメモリ４のバス４３を介して、物理メモリ４２の書き込みポートに入力され、物理メモリ４２に書き込まれる。
このとき、図８を参照して説明したように、ミップマップ画像データＳ３０〜Ｓ３ｎは、メモリ空間ＭＳのベースポインタＢＰを切り換えて、衝突することなくライン毎に連続して書き込まれる。
そして、物理メモリ４１，４２への書き込み動作とは独立に、レンダリング回路５からの要求に応じて、物理メモリ４１および４２に記憶された画像データ（ビデオ信号）Ｓ４が、バス４４およびＡＶバス９を介して、レンダリング回路５に読み出される。
【００７１】
次に、レンダリング回路５によって、テクスチャメモリ４に記憶されたビデオ信号Ｓ２，Ｓ３1 〜Ｓ３n のうち、制御回路８によって指定されたＬＯＤレベルのビデオ信号がビデオ信号Ｓ４としてテクスチャメモリ４から読み出される。
そして、レンダリング回路５において、ビデオ信号Ｓ４を用いてレンダリング処理が行われ、それによって生成されたビデオ信号Ｓ５がフレームメモリ６に書き込まれる。
そして、フレームメモリ６から読み出されたビデオ信号がディスプレイ７に出力され、ビデオ信号に応じた画像がディスプレイ７に表示される。
【００７２】
以上説明したように、本実施形態によれば、原画像データの１ライン分のデータを保持し、保持したデータを順次にパラレル転送する、縦続接続されたラインバッファ３００〜３０４と、各ラインバッファで保持された連続する３ライン分、５ライン分のデータを受けて、入力ライン数ｎに基づく所定の画素を中心としたｎ×ｎの画素を抽出し、抽出したｎ×ｎの画素を重み付けされた係数で色値を加重平均して、テクスチャの幅、高さをあらかじめ設定した詳細度をもって縮小し所望のミップマップ画像データを生成する１／２フィルタ部３０５、１／４フィルタ部３０６と、フィルタ部３０５，３０６で生成されたミップマップ画像を所定のタイミングで出力する出力回路３１３を設けたので、回路規模の増大を招くことなく、ミップマップ処理によってリアルタイムに１または複数の解像度のミップマップ画像データを生成することができる利点がある。
そして、生成したミップマップ画像データを用いて高精度でテクスチャマッピング処理を行うことができる利点がある。
【００７３】
また、フィルタ部３０５，３０６は、ｎ×ｎの画素を抽出する場合、隣接するｎ×ｎの抽出画素とラインをオーバーラップさせて抽出することから、よりリアルタイムに１または複数の解像度のミップマップ画像データを生成することができる。
【００７４】
図１０は、折り返しノイズの発生度合いを示す図である。
図１０（Ａ）のように折り返しノイズが発生する原（オリジナル）画像データを従来のように間引き処理により詳細度ＬＯＤ１で縮小した場合、図１０（Ｂ）に示すように、折り返しノイズを十分に取り除くことができない。
これに対して、本発明のフィルタ部を用いた場合、図１０（Ｃ）に示すように、折り返しノイズを十分に取り除くことができる。
そのため、画像処理装置１によれば、レンダリング回路５が生成した３次元動画像信号によって得られる画像は、縮小時のエイリアシングが抑えられた高品質なものになる。
【００７５】
なお、ミップマップ処理においては、縮小画像は厳密には縦横のサイズが１×１ピクセルのサイズまで利用される可能性があるが、実際には動画像の内容を確認できなくなるほど縮小することは少ないと考えられるため、ビデオ信号Ｓ２がＨＤＴＶ（High Definition Television, １９２０×１０８０ピクセル）やＳＤＴＶ（Standard Definition Television, ７２０×５２５ピクセル）程度のサイズである場合、ミップマップ処理回路３は、ＬＯＤレベル「１」，「２」，「３」のミップマップ画像データを生成すれば十分である。
【００７６】
【発明の効果】
以上説明したように、本発明によれば、回路規模の増大を招くことなく、ミップマップ処理によってリアルタイムに１または複数の解像度のミップマップ画像データを生成することができる利点がある。
そして、生成したミップマップ画像データを用いて高精度でテクスチャマッピング処理を行うことができる利点がある。
【図面の簡単な説明】
【図１】本発明に係る画像処理システムの全体構成を示す図である。
【図２】図１に示す画像処理装置の要部を信号の流れを含めてより具体的に示すブロック図である。
【図３】図１および図２に示す本発明に係る画像生成装置としてのミップマップ処理回路の具体的な構成例を示す図である。
【図４】本発明に係る画像生成装置としてのミップマップ処理回路の動作を説明するためのタイミングチャートである。
【図５】本発明に係る画像生成としてミップマップ処理回路における１／２フィルタ部の処理を説明するための図である。
【図６】本発明に係る画像生成としてミップマップ処理回路における１／２フィルタ部および１／４フィルタ部の処理を説明するための図である。
【図７】本発明に係る画像生成としてミップマップ処理回路における１／４フィルタ部の処理を説明するための図である。
【図８】テクスチャメモリへのミップマップ画像データをメモリ空間に書き込む場合の例を示す図である。
【図９】図１および図２に示すテクスチャメモリの構成例を示す図である。
【図１０】折り返しノイズの発生度合いを示す図である。
【図１１】テクスチャマッピング処理を説明するための図である。
【図１２】ミップマップ処理を説明するための図である。
【符号の説明】
１…画像処理装置、２…ビデオ信号生成回路、３…ミップマップ処理回路、４…テクスチャメモリ、５…レンダリング回路、６…フレームメモリ、７…ディスプレイ、８…制御回路、９…ＡＶバス、３００〜３０４…ラインバッファ、３０５…１／２フィルタ部、３０６…１／４フィルタ部、３０７〜３０９…バッファ、３１０〜３１２…非同期ＦＩＦＯ、３１３…出力回路、４１、４２…物理メモリ、４３，４４…バス。
【図１】
0004670185.tif 000002
【図２】
0004670185.tif 000003
【図３】
0004670185.tif 000004
【図４】
0004670185.tif 000005
【図５】
0004670185.tif 000006
【図６】
0004670185.tif 000007
【図７】
0004670185.tif 000008
【図８】
0004670185.tif 000009
【図９】
0004670185.tif 000010
【図１０】
0004670185.tif 000011
【図１１】
0004670185.tif 000012
【図１２】
0004670185.tif 000013