1 / 24

13 章

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

Download Presentation

13 章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 13章 高橋敏行

  2. マンデルブロ集合

  3. フラクタル • 次元を持った無限に複雑なオブジェクト • ブノワマンデルが概念を導入 • 天気予報やデータ圧縮の基礎として利用 • 複素数の反復計算により生成される

  4. マンデルブロ集合 • 複素数平面 X-Y 上の以下の式の反復で得る • 最大反復数に達するか Zが無限大に発散するまで反復

  5. マンデルブロ集合 • 反復回数が多いほど,フラクタル画像の精度が高くなる • 精度が高いほど,計算コストがかかる • 従来のシリアル方式では多くの時間がかかる

  6. C言語を用いた表現 • 最初は C 言語を用いて高レベルでモデル化 • 例として,マンデルブロ集合の1つの領域を表す画像を生成する (XH,YH) (XL,YL) 0

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

  8. C言語を用いた表現 • 2つの関数で構成される • main 関数 • mandelbrot 関数 • main関数 • mandelbrot 関数の呼び出し • XとYのスケーリング値の計算

  9. スケーリング YH-YL 拡大 Cの領域 XH-XL スケーリング: dx=(XH-XL)/XSIZE dy=(YH-YL)/YSIZE 描画領域 XSIZE YSIZE

  10. 13-2 2 main関数

  11. 13-2 2 main関数 スケーリング

  12. mandelbrot 関数 • 出力ファイルを開き,ヘッダ情報を生成 • 出力サイズ内の各ピクセルで計算 値が無限大に発散か,反復数最大まで • 反復値に基づいてピクセルへ色を割り当て 単純のため,グレースケールにて表現

  13. 13-2 1 1.ヘッダ情報を生成

  14. 13-2 2 2.各ピクセルの計算 (後述) 3.色の割り当て

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

  16. 13-2 2 C の実部と虚部をずらす

  17. 浮動小数点⇒固定小数点 • 浮動小数点演算は,ハードウェアでレンダリングすると非効率 • C-to-コンパイラは浮動小数点をサポートしてない • 32ビットの固定小数点を使用する • 整数8ビット,小数24ビットとする • Impulse C ライブラリには,固定小数点演算のためのサポートがある fix_mandelbrot 関数

  18. ストリーミングバージョン • FPGAへの移植 • 設定データを転送できるようにする (X-Y 平面を定義する入力値) • ピクセルデータを転送できるようにする

  19. ストリーミングバージョン プロセス 入力ストリーム config_stream 出力ストリーム pixel_stream

  20. ストリームを含む関数の宣言 13-4 1 32ビット整数型で ローカル変数の宣言 2と4を定数の固定小数点として割り当て コンフィギュレーション ストリームを開く ピクセルストリームを開く

  21. 13-4 2 ピクセルストリーム へ書き出し (後述) ストリームを閉じる

  22. ストリーミングバージョン • ピクセルストリーム → 24 ビット B<<16 BlueMask BlueMask GreenMask G<<8 GreenMask RedMask RedMask R pixel_stream 8 ビット (R) 8 ビット (G) 8 ビット (B)

  23. 以降では より多くの並列処理を導入 プロセスを改善する

More Related