(57)【要約】【課題】  プログラマブルシェーダ機能を有した画像処理プロセッサにおいて、三角形分割手法を採用してより滑らかな拡大画像を得ることができる。【解決手段】  頂点シェーダ２１は、入力されるポリゴンの頂点データに基づき、その頂点データに対応する、表示部５上で位置を求める。ラスタライザ２２は、頂点シェーダ２１により求められた表示部５上での頂点の位置から、ポリゴンに、指定されたテクスチャがマッピングされた画像を、表示部５に表示するのに必要な、表示部５上の画素を求める。ピクセルシェーダ２３は、ポリゴンに、指定されたテクスチャがマッピングされた画像を、表示部５に表示するために、ラスタライザ２２から、画素値の必要な表示部５上の個々の画素の位置の情報が与えられるごとに、当該位置の画素値を、当該位置の所定の周辺のテクスチャ画素の値を三角形分割手法に基づき補間することにより求める。【選択図】  図１
2018032301.tif 000002
【特許請求の範囲】
【請求項１】
入力されるポリゴンの頂点データに基づき、その頂点データに対応する、表示部上で位置を求める頂点シェーダと、
前記頂点シェーダにより求められた前記表示部上での頂点の位置から、前記ポリゴンに、指定されたテクスチャがマッピングされた画像を、前記表示部に表示するのに必要な、前記表示部上の画素を求めるラスタライザと、
前記ポリゴンに、指定されたテクスチャがマッピングされた画像を、前記表示部に表示するために、前記ラスタライザから、画素値の必要な前記表示部上の個々の画素の位置の情報が与えられるごとに、当該位置の画素値を、当該位置の所定の周辺のテクスチャ画素の値を補間することにより求めるピクセルシェーダと、
を備えた画像処理プロセッサにおける画像データ処理方法であって、
前記ピクセルシェーダは、当該位置が含まれる、前記テクスチャの画素格子に係る、三角形分割手法における三角形分割パターンを、前記画素格子を構成する画素及びその周辺の画素から決定し、決定された前記三角形分割パターンに基づき前記所定の周辺のテクスチャ画素の値を補間して、当該位置の画素値を求めることを特徴とする画像データ処理方法。
【請求項２】
前記ピクセルシェーダは、前記三角形分割パターンを決定する際に、前記画素格子を構成する画素及びその周辺の画素の各値について、低域濾過フィルタを施しつつ勾配値を求めることを特徴とする請求項１に記載の画像データ処理方法。
【請求項３】
前記ピクセルシェーダは、前記三角形分割パターンを決定する際に、当該位置が含まれる、前記テクスチャの画素格子に係る前記三角形分割パターンと、当該画素格子の上下左右の格子に係る前記三角形分割パターンとを仮決定し、仮決定された、当該位置が含まれる、前記テクスチャの画素格子に係る前記三角形分割パターンと、当該画素格子の上下左右の格子に係る前記三角形分割パターンとが不整合の場合には、整合させることにより、当該位置が含まれる、前記テクスチャの画素格子に係る前記三角形分割パターンを最終決定することを特徴とする請求項１に記載の画像データ処理方法。
【請求項４】
入力されるポリゴンの頂点データに基づき、その頂点データに対応する、表示部上で位置を求める頂点シェーダ処理と、
前記頂点シェーダ処理により求められた前記表示部上での頂点の位置から、前記ポリゴンに、指定されたテクスチャがマッピングされた画像を、前記表示部に表示するのに必要な、前記表示部上の画素を求めるラスタライザ処理と、
前記ポリゴンに、指定されたテクスチャがマッピングされた画像を、前記表示部に表示するために、前記ラスタライザ処理から、画素値の必要な前記表示部上の個々の画素の位置の情報が与えられるごとに、当該位置の画素値を、当該位置の所定の周辺のテクスチャ画素の値を補間することにより求めるピクセルシェーダ処理と、
を有し、画像処理プロセッサにレンダリング処理を行わせる画像データ処理プログラムであって、
前記ピクセルシェーダ処理は、当該位置が含まれる、前記テクスチャの画素格子に係る、三角形分割手法における三角形分割パターンを、前記画素格子を構成する画素及びその周辺の画素から決定し、決定された前記三角形分割パターンに基づき前記所定の周辺のテクスチャ画素の値を補間して、当該位置の画素値を求めることを特徴とする画像データ処理プログラム。
【請求項５】
複数のコンピュートユニットを有したコンピュートシェーダを備え、レンダリング処理を行う画像処理プロセッサにおける画像データ処理方法であって、
各コンピュートユニットは、
テクスチャを分割した各分割テクスチャを担当して並列的に処理するものであって、プログラムにより並列的に動作する複数のスレッドを有し、
前記複数のスレッドを利用して、前記分割テクスチャを構成する各画素の値から、各画素により構成される各格子のうちの所定数の格子について、三角形分割手法で使用する三角形分割パターンを一括で決定し、
ポリゴンに前記テクスチャがマッピングされた画像を表示部に表示するために、拡大した画像を格納するバッファ上の画素の位置に対応する前記所定数の格子上の位置を求め、
各格子に含まれる前記位置に係る前記表示部上の画素の値を、各格子に対応する各スレッドを利用して、各格子に対して決定された前記三角形分割パターンに基づき当該分割テクスチャにおける周辺の画素の値を補間して求めることを特徴とする画像データ処理方法。
【請求項６】
前記複数のスレッドは、前記三角形分割パターンを一括で決定する際に、処理の過程で得られた値を、前記複数のスレッドに共通のメモリに格納しつつ処理を行うことを特徴とする請求項５に記載の画像データ処理方法。
【請求項７】
前記各コンピュートユニットは、前記複数のスレッドを利用して前記三角形分割パターンを一括で決定する際に、各格子を構成する画素及びその周辺の画素の各値について、低域濾過フィルタを施しつつ勾配値を求め、
当該フィルタ処理により、利用する前記分割テクスチャの画素数に対して、得られる前記三角形分割パターンの数が減じてしまう分、前記各コンピュートユニットに、前記各分割テクスチャの境界部分が重複して割り当てられることを特徴とする請求項５に記載の画像データ処理方法。
【請求項８】
前記各コンピュートユニットは、前記複数のスレッドを利用して前記三角形分割パターンを一括で決定する際に、各スレッドに対応する格子に係る前記三角形分割パターンと、当該格子の上下左右の格子に係る前記三角形分割パターンとを仮決定し、仮決定された、当該スレッドに対応する格子に係る前記三角形分割パターンと、当該格子の上下左右の格子に係る前記三角形分割パターンとが不整合の場合には、整合させることにより、当該スレッドに対応する格子に係る前記三角形分割パターンを最終決定することを特徴とする請求項５に記載の画像データ処理方法。
【請求項９】
各々が複数の並列動作可能なスレッドを有する、複数の並列動作可能なコンピュートユニットを備えた画像処理プロセッサに、ポリゴンで構成される三次元モデルの情報と貼られるべきテクスチャの情報に基づきレンダリング処理を行わせる画像データ処理プログラムであって、
前記テクスチャを複数に分割した分割テクスチャの各々を前記各コンピュートユニットに割り当てる処理と、
前記複数のスレッドに、前記分割テクスチャを構成する各画素の値から、各画素により構成される各格子のうちの所定数の格子について、三角形分割手法で使用する三角形分割パターンを一括で決定させる処理と、
前記ポリゴンに前記テクスチャがマッピングされた画像を表示部に表示するために、拡大した画像を格納するバッファ上の画素の位置に対応する前記所定数の格子上の位置を求める処理と、
各格子に対応する各スレッドに、各格子に含まれる前記位置に係る前記表示部上の画素の値を、各格子に対して決定された前記三角形分割パターンに基づき当該分割テクスチャにおける周辺の画素の値を補間して求めさせる処理を有することを特徴とする画像データ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プロセッサにおける画像データ処理方法及びそのプログラムに関し、特に、プログラマブルシェーダを搭載した画像処理プロセッサにおける画像データ処理方法及びそのプログラムに関する。
【背景技術】
【０００２】
三次元コンピュータグラフィックスにおいては、描画すべきオブジェクトを、多数のポリゴンにより表現されるポリゴンモデルを利用して生成するのが一般的である。ポリゴンモデルの描画処理においては、ポリゴン表面に陰影をつけるシェーディング処理や、ポリゴンモデルの表面にテクスチャ画像を貼り付けるテクスチャマッピング処理が行われる。
【０００３】
これらの処理は、高速処理を期して、初期においては、専用のハードウェア回路を用いた固定パイプラインによって実現していたが、更に技術開発が進むに応じて、表現力の向上を目的として、三次元座標から二次元座標への変換およびシェーディング処理のプログラマブル化が進展し、全体として“プロセッサ”としての性格を帯びるようになった。従って、ＣＰＵに対して、画像処理プロセッサ（例えば、ＧＰＵ（Graphic Processing Unit））と称されるようなった。
【０００４】
かかるＧＰＵにおいては、上記座用変換からテクスチャマッピングまでの処理を行う機能部が全体として慣例上“シェーダ”とも称されているが、それを構成する各処理のプログラマブル化が進んでおり、固定処理ではなく、ユーザが自由に可変的に各種シェーディング処理を選択実行できるようになってきている。具体的には、ポリゴンの頂点単位でのプログラマブル化から、ラスタライズ後のピクセル単位でのプログラマブル化を経て、最近では、ＧＰＵ内のプログラマブルな機能部分を、画像処理のみならず汎用計算にも利用可能なようにした“コンピュートシェーダ”と称される構成を有するものまで登場している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００２−５２０７４８号公報
【特許文献２】特開２０１３−２５１７１７号公報
【非特許文献】
【０００６】
【非特許文献１】X. Yu, B. S. Morse, and T. W. Sederberg, “Image Reconstruction Using Data-Dependent Triangulation”, IEEE Computer Graphics and Applications, Vol. 21, No. 3, pp. 62-68 May/Jun. (2001)
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、上述のようなＧＰＵにおけるレンダリング処理においては、ポリゴンへテクスチャ画像を貼り付ける処理の際に、テクスチャ画像を拡大したり、縮小したり、あるいは変形したりする処理が行われ、これらの拡大・縮小・変形の各処理にはバイリニアフィルタリングやバイキュービックフィルタリングが用いられる（例えば、特許文献１参照）。
【０００８】
しかしながら、バイリニアフィルタリングやバイキュービックフィルタリングの各処理では、オブジェクトの斜め方向のエッジにいわゆるシャギーが発生し、全体的にぼやけてしまうという課題がある。
【０００９】
一方、高品質な拡大手法として、コスト関数やエッジ方向などに応じて、画像領域を三角形に分割して画素を補間する三角形分割手法が提案されており、代表的なものとして、Data Dependent Triangulationが挙げられる（例えば、非特許文献１参照）。これは、各画素を頂点とする格子状の各領域に渡って、コスト関数に基づいて分割といわゆる”edge swap”とを繰り返して領域を分割し、補間すべき画素の値を算出する際のサンプリング（参照）画素点を決定する手法である。
【００１０】
この“三角形分割手法”を画像拡大処理に応用したものとして、例えば特許文献２がある。当該文献においては、２次元コンピュータグラフィックス処理において描画する際の補間処理として三角形分割手法を採用し、デコーダにより伸長された画像データと三角形分割評価回路により決定された各領域の分割パターンとを対応付けて画像メモリに格納すると共に、補間により値を決定すべき画素がある場合に、補間すべき画素を含む格子の領域についての分割パターンの情報と、その格子に係る所定の画素値を画像メモリから読み込み、補間すべき画素の値を求める画像表示処理装置及び画像表示処理方法が開示されている。
【００１１】
しかしながら、特許文献２に開示された技術においては、デコーダによりライン又はブロック単位で得られる二次元画像データをシーケンシャルに入力し、入力データに対して三角形分割手法を適用して処理を行ったデータをワークバッファ等のメモリに格納し、描画回路がワークバッファに格納されたデータにアクセスして補間データを得ているので、三次元コンピュータグラフィックスの描画回路のようにテクスチャマッピングのための特定アドレスのテクスチャをＵＶ値で指定するような処理とは、前提の構成が異なる。
【００１２】
すなわち、三次元コンピュータグラフィックスにおけるテクスチャマッピングにように、任意の座標の補間データがランダムに要求される場合には、特許文献２に開示された技術のように画像データをシーケンシャル処理できず、また分割パターン情報を格納しておくためのワークバッファが必要であるが、例えば、ゲーム開発用のエンジンであるUnityなどの３Ｄレンダラのマテリアルにピクセルシェーダとして補間方法を与える場合など、レンダラ等の制約によりワークバッファを利用できない場合では、特許文献２に開示された技術を利用することができない。
【００１３】
また、コンピュートシェーダが搭載されてそれを利用する場合のように、ブロック単位で任意のブロック座標の補間データをランダムに要求されるような態様においては、特許文献２とは前提が異なり、新たな適用方法を模索する必要がある。
【００１４】
本発明は上述のような事情から為されたものであり、本発明の目的は、三角形分割手法を採用してより滑らかな拡大画像を得ることができる、プログラマブルシェーダ機能を有した画像処理プロセッサにおける画像データ処理方法及びそのプログラムを提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明の画像処理プロセッサにおける画像データ処理方法は、入力されるポリゴンの頂点データに基づき、その頂点データに対応する、表示部上で位置を求める頂点シェーダと、前記頂点シェーダにより求められた前記表示部上での頂点の位置から、前記ポリゴンに、指定されたテクスチャがマッピングされた画像を、前記表示部に表示するのに必要な、前記表示部上の画素を求めるラスタライザと、前記ポリゴンに、指定されたテクスチャがマッピングされた画像を、前記表示部に表示するために、前記ラスタライザから、画素値の必要な前記表示部上の個々の画素の位置の情報が与えられるごとに、当該位置の画素値を、当該位置の所定の周辺のテクスチャ画素の値を補間することにより求めるピクセルシェーダと、を備えた画像処理プロセッサにおける画像データ処理方法であって、前記ピクセルシェーダは、当該位置が含まれる、前記テクスチャの画素格子に係る、三角形分割手法における三角形分割パターンを、前記画素格子を構成する画素及びその周辺の画素から決定し、決定された前記三角形分割パターンに基づき前記所定の周辺のテクスチャ画素の値を補間して、当該位置の画素値を求めることを要旨とする。
【００１６】
ここで、前記ピクセルシェーダは、前記三角形分割パターンを決定する際に、前記画素格子を構成する画素及びその周辺の画素の各値について、低域濾過フィルタを施しつつ勾配値を求めることが望ましい。
【００１７】
また、詳細には、前記ピクセルシェーダは、前記三角形分割パターンを決定する際に、当該位置が含まれる、前記テクスチャの画素格子に係る前記三角形分割パターンと、当該画素格子の上下左右の格子に係る前記三角形分割パターンとを仮決定し、仮決定された、当該位置が含まれる、前記テクスチャの画素格子に係る前記三角形分割パターンと、当該画素格子の上下左右の格子に係る前記三角形分割パターンとが不整合の場合には、整合させることにより、当該位置が含まれる、前記テクスチャの画素格子に係る前記三角形分割パターンを最終決定する。
【００１８】
また、上記目的を達成するため、本発明の画像処理プロセッサにおける画像データ処理プログラムは、入力されるポリゴンの頂点データに基づき、その頂点データに対応する、表示部上で位置を求める頂点シェーダ処理と、前記頂点シェーダ処理により求められた前記表示部上での頂点の位置から、前記ポリゴンに、指定されたテクスチャがマッピングされた画像を、前記表示部に表示するのに必要な、前記表示部上の画素を求めるラスタライザ処理と、前記ポリゴンに、指定されたテクスチャがマッピングされた画像を、前記表示部に表示するために、前記ラスタライザ処理から、画素値の必要な前記表示部上の個々の画素の位置の情報が与えられるごとに、当該位置の画素値を、当該位置の所定の周辺のテクスチャ画素の値を補間することにより求めるピクセルシェーダ処理と、を有し、画像処理プロセッサにレンダリング処理を行わせる画像データ処理プログラムであって、前記ピクセルシェーダ処理は、当該位置が含まれる、前記テクスチャの画素格子に係る、三角形分割手法における三角形分割パターンを、前記画素格子を構成する画素及びその周辺の画素から決定し、決定された前記三角形分割パターンに基づき前記所定の周辺のテクスチャ画素の値を補間して、当該位置の画素値を求めることを要旨とする。
【００１９】
また、上記目的を達成するため、本発明の画像処理プロセッサにおける画像データ処理方法は、複数のコンピュートユニットを有したコンピュートシェーダを備え、レンダリング処理を行う画像処理プロセッサにおける画像データ処理方法であって、各コンピュートユニットは、テクスチャを分割した各分割テクスチャを担当して並列的に処理するものであって、プログラムにより並列的に動作する複数のスレッドを有し、前記複数のスレッドを利用して、前記分割テクスチャを構成する各画素の値から、各画素により構成される各格子のうちの所定数の格子について、三角形分割手法で使用する三角形分割パターンを一括で決定し、ポリゴンに前記テクスチャがマッピングされた画像を表示部に表示するために、拡大した画像を格納するバッファ上の画素の位置に対応する前記所定数の格子上の位置を求め、各格子に含まれる前記位置に係る前記表示部上の画素の値を、各格子に対応する各スレッドを利用して、各格子に対して決定された前記三角形分割パターンに基づき当該分割テクスチャにおける周辺の画素の値を補間して求めることを要旨とする。
【００２０】
ここで、前記複数のスレッドは、前記三角形分割パターンを一括で決定する際に、処理の過程で得られた値を、前記複数のスレッドに共通のメモリに格納しつつ処理を行うことが好適である。
【００２１】
また、前記各コンピュートユニットは、前記複数のスレッドを利用して前記三角形分割パターンを一括で決定する際に、各格子を構成する画素及びその周辺の画素の各値について、低域濾過フィルタを施しつつ勾配値を求め、当該フィルタ処理により、利用する前記分割テクスチャの画素数に対して、得られる前記三角形分割パターンの数が減じてしまう分、前記各コンピュートユニットに、前記各分割テクスチャの境界部分が重複して割り当てられることが効果的である。
【００２２】
また、詳細には、前記各コンピュートユニットは、前記複数のスレッドを利用して前記三角形分割パターンを一括で決定する際に、各スレッドに対応する格子に係る前記三角形分割パターンと、当該格子の上下左右の格子に係る前記三角形分割パターンとを仮決定し、仮決定された、当該スレッドに対応する格子に係る前記三角形分割パターンと、当該格子の上下左右の格子に係る前記三角形分割パターンとが不整合の場合には、整合させることにより、当該スレッドに対応する格子に係る前記三角形分割パターンを最終決定する。
【００２３】
また、上記目的を達成するため、本発明の画像処理プロセッサにおける画像データ処理プログラムは、各々が複数の並列動作可能なスレッドを有する、複数の並列動作可能なコンピュートユニットを備えた画像処理プロセッサに、ポリゴンで構成される三次元モデルの情報と貼られるべきテクスチャの情報に基づきレンダリング処理を行わせる画像データ処理プログラムであって、前記テクスチャを複数に分割した分割テクスチャの各々を前記各コンピュートユニットに割り当てる処理と、前記複数のスレッドに、前記分割テクスチャを構成する各画素の値から、各画素により構成される各格子のうちの所定数の格子について、三角形分割手法で使用する三角形分割パターンを一括で決定させる処理と、前記ポリゴンに前記テクスチャがマッピングされた画像を表示部に表示するために、拡大した画像を格納するバッファ上の画素の位置に対応する前記所定数の格子上の位置を求める処理と、各格子に対応する各スレッドに、各格子に含まれる前記位置に係る前記表示部上の画素の値を、各格子に対して決定された前記三角形分割パターンに基づき当該分割テクスチャにおける周辺の画素の値を補間して求めさせる処理を有することを要旨とする。
【発明の効果】
【００２４】
本発明の画像処理プロセッサにおける画像データ処理方法及びそのプログラムによれば、プログラマブルシェーダ機能を有した画像処理プロセッサにおいて、三角形分割手法を採用してより滑らかな拡大画像を得ることができる。
【００２５】
特に、コンピュートシェーダを備えた画像処理プロセッサにおいては、三角形分割手法における複数の三角形分割パターンが一括で得られ、それにより、表示部での表示に必要な各画素の値も一括して求めることができる。
【００２６】
また、各格子について三角形分割パターンを決定する際に、当該格子を構成する画素及びその周辺の画素の各値について、低域濾過フィルタを施しつつ勾配値を求めているので、ノイズ等を除去できる。
【図面の簡単な説明】
【００２７】
【図１】本発明の画像データ処理方法及びそのプログラムの一実施形態が具現化される画像処理装置の構成を示すブロック図である。
【図２】図２（ａ）は、ラスタライザ２２における処理の手順を示すフローチャートであり、同図（ｂ）はラスタライズ処理を説明するための図である。
【図３】ラスタライザ２２から画素値の算出の依頼があるごとに行われるピクセルシェーダ２３における処理の手順を示すフローチャートである。
【図４】三角形分割パターンの決定処理の手順の詳細を示すフローチャートである。
【図５】三角形分割パターンの決定処理を説明するための図である。
【図６】三角形分割パターンの決定処理を説明するための図である。
【図７】三角形分割パターンの決定処理を説明するための図である。
【図８】三角形分割パターンの決定処理を説明するための図である。
【図９】三角形分割パターンの決定処理を説明するための図である。
【図１０】決定された三角形分割パターンに基づく補間処理を説明するための図である。
【図１１】本発明の画像データ処理方法及びそのプログラムにおける他の実施形態が具現化される画像処理装置の構成を示すブロック図である。
【図１２】各コンピュートユニット２５１の詳細構成を示すブロック図である。
【図１３】テクスチャをどのように分割して処理するかの例を示す図である。
【図１４】各コンピュートユニット２５１の処理手順を示すフローチャートである。
【図１５】ステップＳ３２における、１６×１６個の分割テクスチャ画素値ＴＰＶから、９×９個の分割パターンを一括して決定する処理の詳細手順を示すフローチャートである。
【図１６】三角形分割パターンの決定処理を説明するための図である。
【図１７】三角形分割パターンの決定処理を説明するための図である。
【図１８】三角形分割パターンの決定処理を説明するための図である。
【図１９】三角形分割パターンの決定処理を説明するための図である。
【図２０】三角形分割パターンの決定処理を説明するための図である。
【発明を実施するための形態】
【００２８】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。  
＜プログラマブルピクセルシェーダ機能を有するＧＰＵでの実施形態＞
図１は、本発明の画像データ処理方法及びそのプログラムの一実施形態が具現化される画像処理装置の構成を示すブロック図である。
【００２９】
同図に示した画像処理装置は、三次元グラフィックス画像が表示される表示部５と、複数のテクスチャのデータが格納されるＶＲＡＭ３と、ポリゴンで構成される３Ｄモデルの頂点データと貼り付けるべき各テクスチャを特定する情報を供給するＣＰＵ１と、ＣＰＵ１から供給された頂点データとテクスチャを特定する情報に基づき、頂点データから、表示部５上で表示される範囲に対応する各画素を求めると共に、ＶＲＡＭ３に格納された対応するテクスチャのデータを読み込んできて、それに基づき、上記対応する各画素の値を算出して出力するＧＰＵ２Ａと、表示部５の前段に位置し、ＧＰＵ２Ａから出力された各画素データが格納されるフレームバッファ４と、を備えている。
【００３０】
ＧＰＵ２Ａは、頂点シェーダ２１、ラスタライザ２２、ピクセルシェーダ２３、及びテクスチャフェッチ部２４を有している。以下、図１と併せて、図２乃至図１０を参照しつつ、ＧＰＵ２Ａにおけるいわゆるレンダリング処理を詳細に説明する。なお、頂点シェーダ２１、ラスタライザ２２、及びピクセルシェーダ２３は、いずれもプログラム可能なものである。
【００３１】
頂点シェーダ２１は、ＣＰＵ１から供給された頂点データに対して、各種の座標変換を施し、それらの表示部５上での表示位置（座標）を求める。
【００３２】
図２（ａ）は、ラスタライザ２２における処理の手順を示すフローチャートであり、同図（ｂ）はラスタライズ処理を説明するための図である。そこで、ラスタライザ２２は、まず、頂点シェーダ２１から送られてきた表示部５上での頂点データから、図２（ｂ）に示すようにラスタライズ処理を行い、値の必要な画素を導き出す（ステップＳ１１）。図２（ｂ）では頂点データから導出した境界において、画素の中心が境界の内側に位置する場合に画素値を求める例を示している。次に、ラスタライザ２２は、値の必要な画素ごとに、ピクセルシェーダ２３に対して、各画素の位置を、テクスチャのＵＶ座標系の値ＵＶ（０〜１，０〜１）として与えることにより、ピクセルシェーダ２３に画素値の算出を依頼する（ステップＳ１２）。そして、値の必要な画素ごとに、ピクセルシェーダ２３から画素値を取得する（ステップＳ１３）。Ｓ１１の処理で得られた、値の必要な画素すべてについて画素値が得られれば（ステップＳ１４において肯定判定）、ステップＳ１５に移行し、取得した各画素値をフレームバッファ４に書き込んで表示部５での表示に供する。なお、ここでは、説明の便宜上、すべての画素値が得られてから一括してフレームバッファ４に供給するような手順になっているが、各画素値が得られるたびに個々にフレームバッファ４に供給することも考えられ、いずれであってもよい。
【００３３】
図３は、ラスタライザ２２から画素値の算出の依頼があるごとに行われるピクセルシェーダ２３における処理の手順を示すフローチャートであり、図４は、その一部の処理である三角形分割パターンの決定処理の手順の詳細を示すフローチャートであり、図５乃至図１０は、三角形分割パターンの決定処理と決定された分割パターンに基づく補間処理を説明するための図である。図３に示したピクセルシェーダ２３における処理は、今回、ユーザにより特徴的にプログラミングされる部分である。プログラミング言語は、例えば、ＨＬＳＬ（High Level Shading Language）やＣｇである。
【００３４】
図３を参照して、まず、ピクセルシェーダ２３は、ラスタライザ２２からのＵＶ座標値ＵＶの入力を伴って、ピクセルシェーダ２３から、値の必要な画素のその値の算出の依頼があったか否かを判定し（ステップＳ２１）、その依頼があった場合（ステップＳ２１において肯定判定）には、当該値を三角形分割手法を用いて求めるべく、当該値の必要な画素に対応した１つの三角形分割パターンを決定する（ステップＳ２２）。
【００３５】
三角形分割パターンの決定処理の詳細は、図４を参照して、ピクセルシェーダ２３は、まず、ラスタライザ２２から受け取ったＵＶ座標値ＵＶをテクスチャピクセル座標値に変換する（ステップＳ２２１）。これは簡単には、テクスチャ画像の解像度を乗ずることにより行える。次に、ピクセルシェーダ２３は、得られたテクスチャピクセル座標値から、図５（ａ）に示すように、その位置を囲う４点のテクスチャ画素の左上の画素を便宜上、基準点（０，０）としたときの、（−３、−３）〜（４，４）までの画素、すなわち８×８の画素の各値を、テクスチャフェッチ部２４にテクスチャアドレスＴＡを指定することにより、ＶＲＡＭ３からの読込みを指示する（ステップＳ２２２）。この（−３、−３）〜（４，４）の８×８の画素の値は、当該ＵＶ座標値ＵＶとして与えられた、当該値の必要な画素のその値を三角形分割手法による補間により求めるための三角形分割パターンを決定するために必要な情報である。また、このように８×８の画素の値を必要としたのは、以下に説明する低域濾過フィルタ処理を施してノイズ耐性を高める等のためである。
【００３６】
そこで、図５（ａ）に示すような８×８の画素の値を受け取ると、ピクセルシェーダ２３は、次に、同図（ｂ）に示すような３×３の画素をカバーするようなプリフィルタＰＦを用意し、同図（ｃ）に示すように、８×８の画素を順次走査し、その都度、３×３の画素の値を平均化することにより、走査終了時に、図６（ａ）に示すような６×６の画素値を得る（ステップＳ２２３）。
【００３７】
次に、ピクセルシェーダ２３は、得られた６×６の画素値に対して、図６（ｂ）に示すような２×２の画素をカバーするような勾配フィルタＧＦを用意し、同図（ｃ）に示すように、６×６の画素を順次走査し、その都度、２×２の画素の値に基づく勾配を求めることにより、言い換えれば、各格子に対応する勾配値を求めることにより、走査終了時に、図７（ａ）に示すような５×５の格子に対応した５×５の勾配値を得る（ステップＳ２２４）。
【００３８】
次に、ピクセルシェーダ２３は、得られた５×５の勾配値に対して、図７（ｂ）に示すような３×３の勾配値をカバーするような平均化フィルタＡＦを用意し、同図（ｃ）に示すように、５×５の勾配値を順次走査し、その都度、３×３の勾配値を平均化することにより、走査終了時に、図９（ａ）に示すような３×３の勾配値を得る（ステップＳ２２５）。
【００３９】
上述のように得られた３×３の勾配値から、値を得たい位置を含む格子、すなわち（０，０）〜（１，１）で構成された格子についての三角形分割パターンを決定するのであるが、前提として、まず、その三角形分割パターンについて、図８を参照して説明する。ここでは、画素値の傾斜を３６０度／１６の精度、すなわち２２．５度単位の精度まで近似する場合を説明する。画素値の傾斜を２２．５度単位の精度まで近似する場合、注目する４つの画素点が形成する格子領域の各々に決定される分割パターンは、図８に示した１５通りとなる。
【００４０】
そこで、図９（ａ）のように得られた３×３の勾配値から、中央の格子について、言い換えれば、テクスチャ画素（０，０）、（０，１）、（１，０）、（１，１）で構成された格子について、図８に示した分割パターンのいずれかを決定するのであるが、そのとき当該９個の勾配値から、中央の格子に加えて、その上下左右の格子についても分割パターンを求める（ステップＳ２２６）。このとき、中央の格子についての分割パターンとその上下左右の分割パターンの接続が整合のとれた接続であるならば（ステップＳ２２７において肯定判定）、そのときの中央の格子についても分割パターンが最終的な求めたい分割パターンとなる。例えば、分割パターンが図９（ｂ）のように求まった場合には、整合がとれているので、求めたい中央の格子についての分割パターンは、同図（ｃ）のように決定される。
【００４１】
一方、中央の格子についての分割パターンとその上下左右の分割パターンの接続が不整合の場合には（ステップＳ２２７において否定判定）、例えば、図９（ｄ）に示すように、整合するようにパターンを修正する（ステップＳ２２８）。
【００４２】
図３に戻り、次に、上述のようにステップＳ２２で得られた三角形分割パターンを使用して、三角形分割手法に基づく補間により、値を得たい位置、言い換えれば、ラスタライザ２２によりＵＶ座標値ＵＶとして与えられた、値の算出を要求された画素の値を算出する（ステップＳ２３）。
【００４３】
このとき、補間に使用する周囲のテクスチャ画素は、三角形分割手法によれば、求められた分割パターンに応じて決まる。そのことを図１０を参照して簡単に説明する。  
図１０（ａ）〜（ｈ）は、参照画素の取り方を示した分割パターンの例を示す図である。例えば、同図（ａ）のように、分割なしのパターンの場合には、格子の各頂点の画素ｐ（ｕｌ），ｐ（ｕｒ），ｐ（ｄｌ），ｐ（ｄｒ）の線形補間により、値の必要な位置ｒｐの値を算出する。また、同図（ｂ）の２分割の場合であって、値の必要な位置ｒｐが同図に示すような場合、画素ｐ（ｕｌ），ｐ（ｕｒ），ｐ（ｄｌ）の値に基づき、位置ｒｐの値を算出する。また、同図（ｃ）に示す３分割の１パターンであって、値の必要な位置ｒｐが同図に示すような場合、画素ｐ（ｕｒ），ｐ（ｄｌ），ｐ（ｄｌｌ）の値に基づき、位置ｒｐの値を算出する。また、同図（ｄ）に示す３分割の１パターンであって、値の必要な位置ｒｐが同図に示すような場合、画素ｐ（ｕｒ），ｐ（ｄｌ），ｐ（ｕｒｒ）の値に基づき、位置ｒｐの値を算出する。また、同図（ｅ）に示す３分割の１パターンであって、値の必要な位置ｒｐが同図に示すような場合、画素ｐ（ｕｒ），ｐ（ｄｌ），ｐ（ｕｒｕ）の値に基づき、位置ｒｐの値を算出する。また、同図（ｆ）に示す３分割の１パターンであって、値の必要な位置ｒｐが同図に示すような場合、画素ｐ（ｕｒ），ｐ（ｄｌ），ｐ（ｄｌｄ）の値に基づき、位置ｒｐの値を算出する。また、同図（ｇ）及び（ｈ）に示す４分割の各パターンについても、各分割領域において同様である。更に、図には例示していない他の７つの分割パターンについても同様である。
【００４４】
従って、結局、図１０（ｉ）に示す１２個のテクスチャ画素の値があれば、その格子内の補間すべき位置については、値が決定できることになる。この１２個については、三角形分割パターンを決定するために読み込んでくる図５（ａ）に示した８×８の画素に完全に含まれているので、改めてＶＲＡＭ３から読み込んでくる必要はないことになる。
【００４５】
再度、図３に戻り、最後に、ステップＳ２３で得られた画素値を、ラスタライザ２２により要求された画素値として、ラスタライザ２２に返す（ステップＳ２４）。
【００４６】
以上が、プログラマブルピクセルシェーダ機能を有するＧＰＵでの実施形態である。
【００４７】
なお、テクスチャフェッチ部２４に標準仕様としてバイリニアやバイキュービック等のフィルタ処理が組み込まれている場合には、その機能は解除する。上述のようなピクセルシェーダ２３でのフィルタ処理と競合してしまい、意図しないぼやけた画像等になってしまわないようにするためである。従って、上述のように、読み込んだ画素値をそのままピクセルシェーダ２３に与える。
【００４８】
なお、上述した各フィルタ処理は、想定されるノイズの種類やその大きさに応じて、変更することができる。
【００４９】
以上のように、プログラマブルピクセルシェーダ機能を有するＧＰＵでの実施形態においては、ラスタライザ２２が、値の必要な表示部５上の画素位置を画素単位でピクセルシェーダ２３に知らせることによりピクセルシェーダ２３にその値を要求し、ピクセルシェーダ２３が、テクスチャの画素値を使用して、三角形分割手法に基づく補間により、その値を算出してラスタライザ２２に返すという処理を行っているので、より滑らかな拡大画像を得ることができる。
【００５０】
＜コンピュートシェーダ機能を有するＧＰＵでの実施形態＞
図１１は、本発明の画像データ処理方法及びそのプログラムにおける他の実施形態が具現化される画像処理装置の構成を示すブロック図である。
【００５１】
同図に示した画像処理装置は、三次元グラフィックス画像が表示される表示部５と、複数のテクスチャのデータが格納されるＶＲＡＭ３と、少なくとも、ポリゴンで構成される３Ｄモデルの頂点データとテクスチャを特定する情報と共に、各テクスチャを分割して処理する際のその分割に係る情報を供給するＣＰＵ１と、ＣＰＵ１から供給された頂点データ、テクスチャを特定する情報、及び上記分割情報に基づき、ＶＲＡＭ３に格納された対応するテクスチャを、分割された単位ごとに、一括してその三角形分割パターンを求めると共に、頂点データに基づく拡大率に応じて、表示部５における表示画素の値を、求めた全分割パターンに基づいて、三角形分割手法により、一括して補間して求めて出力するＧＰＵ２Ｂと、表示部５の前段に位置し、ＧＰＵ２Ａから出力された各画素データが格納されるフレームバッファ４と、を備えている。
【００５２】
また、図１１に示すように、ＧＰＵ２Ｂは、コンピュートシェーダ２５及びディスパッチャ２６を有しており、更に、コンピュートシェーダ２５は、それぞれが、分割されたテクスチャの各々（以下、“分割テクスチャ”と称す）を担当して処理する複数のコンピュートユニット２５１ａ、２５１ｂ、２５１ｃ、・・・を有している。
【００５３】
図１２は、各コンピュートユニット２５１の詳細構成を示すブロック図である。同図に示すように、各コンピュートユニット２５１は、ＶＲＡＭ３から担当する分割テクスチャの各画素値ＴＰＶを読み込んでくるテクスチャフェッチ部２５１１と、テクスチャフェッチ部２５１１を介して読み込まれた分割テクスチャの各画素値ＴＰＶをそれぞれ並列的に処理する複数のスレッド２５１２ａ、２５１２ｂ、２５１２ｃ、・・・と、各スレッド２５１２における処理の過程の情報や処理結果が格納される共有メモリ２５１３と、を備えている。スレッド２５１２の数は、例えば７６８である。また、共有メモリ２５１３は、例えば３２ｋバイトのキャッシュメモリである。
【００５４】
次に、図１１に示した画像処理装置の動作及び処理手順を説明する。
ＶＲＡＭ３に格納されたテクスチャが、どのように分割されて処理されるかは、予め設計される。図１３は、テクスチャをどのように分割して処理するかの例を示す図である。ここでは、一つの分割テクスチャを１６×１６のテクスチャ画素で構成するものとし、テクスチャを３×２の分割テクスチャ（（０，０）〜（１，２））として分割している。ここで、各分割テクスチャを６格子分重複させているのは、後述する三角形分割パターンを決定する処理において、分割の境界で欠落なく分割パターンを求められるようにするためである（当該重複がなければ、後述するフィルタ処理に応じて欠落が生じてしまう）。
【００５５】
そこで、ＣＰＵ１は、ＧＰＵ２Ｂに対して、頂点データ、テクスチャを特定する情報と共に、“分割情報”、すなわち分割テクスチャを構成する画素の数（例えば、上記のように１６×１６）や、分割テクスチャの数の情報等を予め通知する。ＧＰＵ２Ｂのディスパッチャ２６は、ＣＰＵ１から供給された当該情報に基づき、必要な数のコンピュートユニット２５１を把握すると共に、それらのコンピュートユニット２５１に、担当して処理すべき分割テクスチャを、グループIDで通知する。それにより、例えば、図１３に示す例では、例えば、コンピュートユニット２５１ａ、２５１ｂ、２５１ｃ、２５１ｄ、２５１ｅ、２５１ｆが、それぞれ、分割テクスチャ（０，０）、（０，１）、（０，２）、（１，０）、（１，１）、（１，２）を担当するように設定され、グループIDとして（０，０）、（０，１）、（０，２）、（１，０）、（１，１）、（１，２）が渡される。
【００５６】
図１４は、各コンピュートユニット２５１の処理手順を示すフローチャートである。当該処理は、各コンピュートユニット２５１にプログラムにより組み込まれ、また、各コンピュートユニット２５１は並列的に動作可能である。プログラム言語は、例えばＨＬＳＬやＣｇである。
【００５７】
そこで、その処理手順を同図に沿って説明すると、まず、各コンピュートユニット２５１のテクスチャフェッチ部２５１１が、ディスパッチャ２６から通知されたグループIDから計算されるＵＶ座標値の範囲により、担当する分割テクスチャの各画素値ＴＰＶ（１６×１６画素）を読み込んでくる（ステップＳ３１）。次に、読み込んだ１６×１６個の分割テクスチャ画素値ＴＰＶから、９×９個の三角形分割パターンを一括して決定する（ステップＳ３２）。
【００５８】
図１５は、ステップＳ３２における、１６×１６個の分割テクスチャ画素値ＴＰＶから、９×９個の分割パターンを一括して決定する処理の詳細手順を示すフローチャートである。図１６乃至図２０は、当該手順を説明するための図である。
【００５９】
前提として、読み込んできた担当する分割テクスチャの１６×１６の画素値ＴＰＶを、図１６に示すようにローカルに画素（ｘ，ｙ）（ｘ＝−３〜１２、ｙ＝−３〜１２）と表すものとし、一方、スレッド２５１２ａ、２５１２ｂ、・・・のうち、２５６個を選択して、それらを、二次元の画素（ｘ，ｙ）に対応させて、スレッド２５１２［ｉ，ｊ］（ｉ＝１〜１６、ｊ＝１〜１６）と表記するものとし、各スレッド２５１２［ｉ，ｊ］が、各画素（ｘ，ｙ）又は平均値に対して１対１で担当して処理する構成となっている。なお、図１６以下に示す具体例では、画素（−３，−３）がスレッド２５１２［１，１］に対応し、画素（１２，−３）がスレッド２５１２［１６，１］に対応し、画素（−３，１２）がスレッド２５１２［１，１６］に対応し、そして最後に画素（１２，１２）がスレッド２５１２［１６，１６］に対応するようにしているが、これは単なる説明の便宜上の対応関係である。
【００６０】
そこで、まず、スレッド２５１２［ｉ，ｊ］（ｉ＝１〜１６、ｊ＝１〜１６）の各々は、対応する担当の画素（ｘ，ｙ）（ｘ＝−３〜１２、ｙ＝−３〜１２）の値ＴＰＶを、共有メモリ２５１３に格納する（ステップＳ３２１）。そして、メモリバリア処理、すなわち、各スレッド２５１２におけるすべての格納が終了するまで待機する（ステップＳ３２２）。
【００６１】
次に、１４×１４個のスレッド２５１２［ｉ，ｊ］（ｉ＝２〜１５、ｊ＝２〜１５）の各々は、図１６に示すように、共有メモリ２５１３から自身担当の画素を中心とした３×３画素の値を共有メモリ２５１３から読み込んできて、プリフィルタ処理により一の値を算出し、共有メモリ２５１３に格納する（ステップＳ３２３）。このプリフィルタ処理は、図５（ｂ）、（ｃ）を参照して説明した処理と同じであるが、各スレッド２５１２が並列的に当該プリフィルタ処理を行うところが先の実施形態とは異なる。そして、スレッド２５１２［ｉ，ｊ］（ｉ＝２〜１５、ｊ＝２〜１５）によるすべての格納が終了するまで待機する（ステップＳ３２４）。当該ステップを抜けると、この時点、１４×１４個の情報が共有メモリ２５１３に格納される。
【００６２】
次に、１３×１３個のスレッド２５１２［ｉ，ｊ］（ｉ＝２〜１４、ｊ＝３〜１５）の各々は、図１７に示すように、自身担当の画素を左下画素として含む格子を構成する２×２画素の値を共有メモリ２５１３から読み込んできて、勾配フィルタ処理により一の値を算出し、共有メモリ２５１３に格納する（ステップＳ３２５）。この勾配フィルタ処理は、図６（ｂ）、（ｃ）を参照して説明した処理と同じであるが、各スレッド２５１２が並列的に当該勾配フィルタ処理を行うところが先の実施形態とは異なる。そして、スレッド２５１２［ｉ，ｊ］（ｉ＝２〜１４、ｊ＝３〜１５）によるすべての格納が終了するまで待機する（ステップＳ３２６）。当該ステップを抜けると、この時点、１３×１３個の情報が共有メモリ２５１３に格納される。
【００６３】
次に、１１×１１個のスレッド２５１２［ｉ，ｊ］（ｉ＝３〜１３、ｊ＝４〜１４）の各々は、図１８に示すように、自身担当の画素が格子中心の左下側画素で、格子中心に最も近い画素として含まれる３×３の値を共有メモリ２５１３から読み込んできて、平均化フィルタ処理により一の値を算出し、共有メモリ２５１３に格納する（ステップＳ３２７）。この平均化フィルタ処理は、図７（ｂ）、（ｃ）を参照して説明した処理と同じであるが、各スレッド２５１２が並列的に当該平均化フィルタ処理を行うところが先の実施形態とは異なる。そして、スレッド２５１２［ｉ，ｊ］（ｉ＝３〜１３、ｊ＝４〜１４）によるすべての格納が終了するまで待機する（ステップＳ３２８）。当該ステップを抜けると、この時点、１１×１１個の情報が共有メモリ２５１３に格納される。
【００６４】
次に、９×９個のスレッド２５１２［ｉ，ｊ］（ｉ＝４〜１２、ｊ＝５〜１３）の各々は、図１９に示すように、自身担当の格子の値を中心とした３×３の値を共有メモリ２５１３から読み込んできて、それらの値に基づき、自身担当の格子に加えて、その上下左右の格子についても分割パターン（図８参照）を求め、図４の手順で説明したのと同様、上下左右の格子についての分割パターンと整合が取れていれば、中央の分割パターンを自身担当の格子についての分割パターンとして決定し、整合が取れていなければ修正し、最終的に決定された中央の分割パターンを自身担当の格子についての分割パターンとして共有メモリ２５１３に格納する（実際に格納するのは、パターン番号等）（ステップＳ３２９）。この処理は、図９を参照して説明した処理と同じであるが、各スレッド２５１２が並列的に当該処理を行うところが先の実施形態とは異なる。そして、スレッド２５１２［ｉ，ｊ］（ｉ＝４〜１２、ｊ＝５〜１３）によるすべての格納が終了するまで待機する（ステップＳ３３０）。当該ステップを抜けると、最終的に、９×９個の三角形分割パターンに係る情報が共有メモリ２５１３に格納される。
図１３に示したように各分割テクスチャを６格子分重複させているのは、図２０に示すように、１６×１６のテクスチャ画素から、上記のように最終的に９×９個の三角形分割パターンに係る情報を得るためであり、分割テクスチャを重複させないと、三角形分割パターンに係る情報が得られない領域が発生するためである。
【００６５】
図１４に戻り、各コンピュートユニット２５１ａ、ｂ、ｃ、・・・（図１３の場合は、コンピュートユニット２５１ａ〜２５１ｆ）は、ＣＰＵ１から供給されるテクスチャの拡大率に応じて確保された拡大画像を格納するためのバッファ内の表示画素であって、それらの位置をＵＶ座標値としたときに、自身担当の分割テクスチャのＵＶ座標値範囲に含まれるそれらの位置（ＲＧＢの値を求めたい位置）と、自身担当の分割テクスチャの画素との対応関係（拡大率が大きくなれば、値を求めたい各位置の方が精細になる）を求める（ステップＳ３３）。
【００６６】
そして、各コンピュートユニット２５１ａ、ｂ、ｃ、・・・（図１３の場合は、コンピュートユニット２５１ａ〜２５１ｆ）に含まれる９×９個のスレッド２５１２［ｉ，ｊ］（ｉ＝４〜１２、ｊ＝５〜１３）の各々は、並列的に、自身が担当する格子に含まれる、値が求められるべき複数の位置の値を、自身が担当する格子について上記ステップＳ３２９において決定された三角形分割パターンに基づき、当該パターンに応じた周辺画素（図１０参照）を利用して、三角形分割手法により求める（ステップＳ３４）。
【００６７】
最後に、各コンピュートユニット２５１ａ、ｂ、ｃ、・・・（図１３の場合は、コンピュートユニット２５１ａ〜２５１ｆ）は、含まれる９×９個のスレッド２５１２［ｉ，ｊ］（ｉ＝４〜１２、ｊ＝５〜１３）の各々により算出された表示部５上の画素のためのすべての値をフレームバッファ４に出力する（ステップＳ３５）。尚、スレッドの仕様効率を上げるため、９×９個の三角形分割情報の各々に対して、複数のスレッドを割り当てることもできる。
【００６８】
なお、上述したコンピュートシェーダ機能を有するＧＰＵでの実施形態において、各コンピュートユニット２５１が担当するテクスチャ画素の数を１６×１６画素としたが、これに限られることはなく、必要なフィルタ処理に応じて決定すればよい。但し、当然、各コンピュートユニット２５１に含まれるスレッド２５１２の数で制限される。
【００６９】
以上で説明したコンピュートシェーダ機能を有するＧＰＵでの実施形態においては、各コンピュートユニット２５１が、テクスチャを分割して得られた各分割テクスチャについて並列的に処理し、かつ、各コンピュートユニット２５１に含まれる各スレッド２５１２がそれぞれ１画素を担当して、並列的に三角形分割パターンを求め、それらの三角形分割パターンに基づき、三角形分割手法により、並列的に補間を行っているので、高速により滑らかな拡大画像を得ることができる。
【産業上の利用可能性】
【００７０】
本発明の画像処理プロセッサにおける画像データ処理方法及びそのプログラムは、例えば、ゲーム機、汎用ＰＣ、遊技機、いわゆるスマートフォン等に搭載されるＧＰＵに採用できる。
【符号の説明】
【００７１】
１  ＣＰＵ
２Ａ、２Ｂ  ＧＰＵ
２１  頂点シェーダ
２２  ラスタライザ
２３  ピクセルシェーダ
２４  テクスチャフェッチ部
２５  コンピュートシェーダ
２５１  コンピュートユニット
２５１１  テクスチャフェッチ部
２５１２  スレッド
２５１３  共有メモリ
２６  ディスパッチャ
３  ＶＲＡＭ
４  フレームバッファ
５  表示部
【図１】
2018032301.tif 000003
【図２】
2018032301.tif 000004
【図３】
2018032301.tif 000005
【図４】
2018032301.tif 000006
【図５】
2018032301.tif 000007
【図６】
2018032301.tif 000008
【図７】
2018032301.tif 000009
【図８】
2018032301.tif 000010
【図９】
2018032301.tif 000011
【図１０】
2018032301.tif 000012
【図１１】
2018032301.tif 000013
【図１２】
2018032301.tif 000014
【図１３】
2018032301.tif 000015
【図１４】
2018032301.tif 000016
【図１５】
2018032301.tif 000017
【図１６】
2018032301.tif 000018
【図１７】
2018032301.tif 000019
【図１８】
2018032301.tif 000020
【図１９】
2018032301.tif 000021
【図２０】
2018032301.tif 000022