13 章

24
13 章 章章章章

description

13 章. 高橋敏行. マンデルブロ集合. フラクタル. 次元を持った無限に複雑なオブジェクト ブノワマンデルが概念を導入 天気予報 やデータ圧縮の基礎として利用 複素数 の反復計算により生成される. マンデルブロ集合. 複素数 平面 X-Y 上の以下の式の反復で得る 最大 反復数に達するか Z が無限大に発散するまで反復. マンデルブロ集合. 反復回数が多いほど,フラクタル画像の精度が高くなる 精度が高いほど,計算コストがかかる 従来のシリアル方式では多くの時間がかかる. C 言語を用いた表現. 最初は C 言語を用いて高レベルでモデル化 - PowerPoint PPT Presentation

Transcript of 13 章

13 章

高橋敏行

マンデルブロ集合

フラクタル• 次元を持った無限に複雑なオブジェクト

• ブノワマンデルが概念を導入

• 天気予報やデータ圧縮の基礎として利用

• 複素数の反復計算により生成される

マンデルブロ集合• 複素数平面 X-Y 上の以下の式の反復で得る

• 最大反復数に達するかZ が無限大に発散するまで反復

CZZ

Z

nn

2

1

0 0

マンデルブロ集合• 反復回数が多いほど,フラクタル画像の精

度が高くなる

• 精度が高いほど,計算コストがかかる

• 従来のシリアル方式では多くの時間がかかる

C 言語を用いた表現• 最初は C 言語を用いて高レベルでモデル

• 例として,マンデルブロ集合の 1 つの領域を表す画像を生成する

0

(XL,YL)

(XH,YH)

マンデルブロ集合の領域の定義

C 言語を用いた表現• 2 つの関数で構成される– main 関数– mandelbrot 関数

• main 関数– mandelbrot 関数の呼び出し– X と Y のスケーリング値の計算

スケーリング

拡大C の領域

描画領域

XSIZEYSIZE

XH-XL

YH-YL

スケーリング:dx=(XH-XL)/XSIZE dy=(YH-YL)/YSIZE

13-2 2

main 関数

13-2 2

main 関数スケーリング

mandelbrot 関数1. 出力ファイルを開き,ヘッダ情報を生成

2. 出力サイズ内の各ピクセルで計算値が無限大に発散か,反復数最大まで

3. 反復値に基づいてピクセルへ色を割り当て

単純のため,グレースケールにて表現

13-2 1

1.ヘッダ情報を生成

13-2 2

2. 各ピクセルの計算

(後述)

3. 色の割り当て

mandelbrot 関数• 2. 各ピクセル計算の詳細–◯_real は実部,◯ _imag は虚部の変数

1

22

22

2

2

__

_

)_2()_(

__2

)__()(

n

n

Ziimagzrealz

iimagztmp

iimagcabrealcba

iimagcrealcbiaba

iimagcrealcbia

CZ

・・

・・

13-2 2

C の実部と虚部をずらす

浮動小数点⇒固定小数点• 浮動小数点演算は,ハードウェアでレン

ダリングすると非効率– C-to- コンパイラは浮動小数点をサポートして

ない• 32 ビットの固定小数点を使用する– 整数 8 ビット,小数 24 ビットとする

• Impulse C ライブラリには,固定小数点演算のためのサポートがある

fix_mandelbrot 関数

ストリーミングバージョン

• FPGA への移植

1. 設定データを転送できるようにする(X-Y 平面を定義する入力値 )

2. ピクセルデータを転送できるようにする

ストリーミングバージョンプロセス

入力ストリーム config_stream

出力ストリーム pixel_stream

13-4 1ストリームを含む関数の宣言

32 ビット整数型でローカル変数の宣言

2 と 4 を定数の固定小数点として割り当て

コンフィギュレーション ストリームを開く

ピクセルストリームを開く

13-4 2

ピクセルストリーム へ書き出し (後述)

ストリームを閉じる

ストリーミングバージョン• ピクセルストリーム → 24 ビット

B<<16 BlueMask BlueMask GreenMask G<<8 GreenMask RedMask RedMask R

pixel_stream

8 ビット ( B )

8 ビット ( G )

8 ビット ( R )

以降では

より多くの並列処理を導入

プロセスを改善する