シミュレーション

VisualAppletsは、設計をシミュレーションするための強力で機能的なシミュレーション機能を提供します。実装された画像処理アルゴリズムの初期テストや検証にシミュレーションを使用できます。*.hapファイルを作成する必要なく、設計の編集直後にシミュレーションを開始できます。

VisualAppletsでのシミュレーションは機能的であり、つまりハードウェア実装の動作をエミュレートします。これにより、低水準シミュレーションと比較して非常に高速になります。機能的なシミュレーションの副次的な影響として、タイミングが考慮されないことがあります。オペレーターのシミュレーション動作は、実際のハードウェアにおける最終的なアプレットの画像処理と100%同じになります。

VisualAppletsで設計の動作をシミュレーションするために、2種類のシミュレーション要素が提供されています。

  • シミュレーションソース、および

  • シミュレーションプローブ。

シミュレーションソースはデータ入力に使用されます。1枚の画像または画像シーケンス全体をシミュレーションソースに読み込むことができます(画像ファイルから)。設計内の任意のリンクに1つのシミュレーションソースまたは1つのシミュレーションプローブを配置できます。これにより、それらのリンクに沿ったデータ転送は、接続されたソースモジュールによって上書きされるか、対応するプローブモジュールによって検査されます。

[注] 注意

一部のオペレーターは画像ソースとしても機能します。例:オペレーターCreateBlankImage。

シミュレーションプローブの結果画像を画像ファイルに保存できます。

ビジュアライゼーションの最適化のため、VisualAppletsのシミュレーションは2D画像に基づいています。

ただし、シミュレーションソースが接続されているリンクが0D(ピクセルのストリーム)、1D(ラインのストリーム)、または2D(フレームのストリーム)のいずれであっても、シミュレーションソースに少なくとも1つの2D画像が含まれている限り、シミュレーションを実行できます(「画像プロトコル、画像寸法、データ構造」を参照)。

制限事項

シミュレーションには以下の制限があります:

  • SIGNAL画像プロトコルのシミュレーションは実行できません。これは、SIGNAL画像プロトコルのシミュレーションが機能はエミュレートするものの、設計のタイミングはエミュレートしないためです。ただし、SIGNAL画像プロトコルのシミュレーションを行うには、タイミングのシミュレーションも必要になります。

  • 0D画像プロトコルのシミュレーションは、正確に1つのシミュレーションステップに制限されます。これは、シミュレーションでは1つのソースのすべてのピクセルデータが単一の2Dフレームに集約されるためです。ただし、残りの設計については後続のステップをシミュレーションできますが、0Dコンテンツを生成するオペレーターは最初のステップ中にのみデータを一度出力します。

  • オペレーターPseudoRandomNumberGenは、ハードウェア上の場合と同じ結果をシミュレーションで返しません。これは、オペレーターが非決定的であるためです。この例外については、オペレーターリファレンスでも説明されています。

  • オペレーターBlob Analysis 1Dは、ハードウェア上の場合と同じ結果をシミュレーションで返しません。これは、オペレーターにFlushIポートがあるものの、フラッシュが画像データに対して非同期であるため、ハードウェアと同じ動作を反映するようにシミュレーションできないためです。この例外についても、オペレーターリファレンスで説明されています。

サポートされている画像フォーマット

VisualAppletsでのシミュレーションでは、ソース画像および出力画像の保存の両方において、以下の画像フォーマットがサポートされています:

Bitmap

BMP 1ビット白黒(行の長さは8の倍数である必要があります)

BMP 8ビットグレー

BMP 24ビット(R8 G8 B8)sRGB色空間

BMPファイルを保存する際、RLE圧縮はサポートされていません。

TIFF(Tagged Image File Format)/TIF

TIFF 1ビット白黒(行の長さは8の倍数である必要があります)

TIFF 8ビットグレー

TIFF 24ビットカラーsRGB色空間

TIFF 48ビットカラーsRRB色空間

圧縮:なし、LZW、ZIP/Deflate、またはJPEG

JPEG/JPG
PNG

さらに、 .raw シミュレーションプローブ用に一時生成されたファイルをシミュレーションソースに読み込むことができます。

シミュレーションワークフロー

デザインでの画像データ処理のシミュレーションは、以下のステップで構成されています。

  1. 必要なシミュレーションソースとプローブをデザインに挿入します。

  2. シミュレーションで使用する画像ファイルをシミュレーションソースに読み込みます。

  3. ピクセルマージやピクセルアライメントなどのパラメータを使用して、画像入力を最適化します。

  4. メインシミュレーションウィンドウでシミュレーションの処理サイクル数を設定し、シミュレーションを開始します。

  5. シミュレーション結果を評価します。

  6. シミュレーション結果を保存します。

以下のセクションでは、これらのステップについて詳しく説明します。

Inserting Sources and Probes into your Design

シミュレーションの準備をするには、まずシミュレーションソースとプローブをデザインに挿入する必要があります。

  1. メインメニューから、Analysis → New Simulation Source / New Simulation Probeを選択するか、ツールバーの対応するアイコンを使用して、ソースとプローブを現在のデザインウィンドウに挿入します。

新しいシミュレーションソースとプローブの作成

図 85. 新しいシミュレーションソースとプローブの作成


シミュレーションソースとシミュレーションプローブはどちらも、マグネットアンカー付きの小さな画像フレームとして表示されます。

シミュレーションソースは灰色の画像フレーム、シミュレーションプローブは緑色の画像フレーム

図 86. シミュレーションソースは灰色の画像フレーム、シミュレーションプローブは緑色の画像フレーム


  1. アンカーを使用して、ソースまたはプローブをデザイン内のリンクに接続します。ソースは灰色、プローブは緑色であるため、シミュレーションソースとシミュレーションプローブを簡単に区別できます。

  2. ドラッグ&ドロップを使用して、ソースとプローブの位置を調整します。

  3. ドラッグ&ドロップを使用して、ソースとプローブをデザイン内のリンクに接続します。アンカーアイコンが青色に変わると、接続が有効であることを示します。

[注意] カーネルまたは信号を転送するリンクへのシミュレーションソースおよびプローブの接続

シミュレーションソースをカーネルを転送するリンクに接続できますが、シミュレーションソースはカーネルごとに正確に1つの入力画像を提供する必要があります。シミュレーションプローブを信号を転送するリンクに接続できますが、この場合、シミュレーションプローブはデータを提供しません。

Loading the Image File(s) to your Simulation Source(s)

The Simulation Source Viewer

Simulation Source Viewerでは、Test Imagesまたはテスト画像シーケンスを読み込んで、シミュレーションで使用できるようにすることができます。

まず、Simulation Source Viewerを簡単に見てみましょう。

  1. Simulation Source Viewerを開くには、デザイン内のソースをダブルクリックします。

Simulation Source Viewerが開きます:

Simulation Source Viewer

図 87. Simulation Source Viewer


メニューのすぐ下にはツールバーがあります。ツールバーのアイコンからは、 以下のオプションを利用できます(左から右へ):

  • 画像ファイルを開いて保存するためのファイルツールバー。

  • 画像表示に関するさまざまなオプションを提供す る表示ツールバー。これらはViewメニューの最初のオプションと同じです:

    Viewing Options

    図 88. Viewing Options


  • 画像シーケンス内を移動するための矢印。

  • メインビューアウィンドウ(および拡大鏡)の表示パネルに現在表示されている画像に関する詳細情報の表示:シミュレータにロードされた画像シーケンス内での画像の位置、および画像ファイルへのパスが表示されます

左側には、2つのタブを持つ設定パネルがあります:

Image File – Mapping

ここでは、シミュレーションの設定を調整できます。たとえば、ピクセルマージの値の入力や、ピクセルアライメントのオフセットの定義を行います。

Display Properties

ここでは、ご自身の画面にTest Imagesを表示するための設定を定義できます。モニタは常に8ビットカラー表示を使用するため、Test Imagesを評価する際にピクセルのどの部分を画面に表示するかを決定しなければならない場合があります。Display Propertiesの下で定義した設定はいずれも、シミュレーションやその結果に影響を与えません。

さらに、ここでは選択したピクセルの色値が、表示値とともにリスト表示されます。表示値は、ユーザーモニタに表示するためのマッピングされた値です。

ピクセル値

図 89. Pixel Values


右側には、現在選択されている画像を表示する表示パネルがあります。

ツールバーの対応するアイコンを使用するか、CTRL+MouseWheelUpで拡大、CTRL+MouseWheelDownで縮小することにより、表示チャネルに表示されている画像を拡大・縮小できます。

非常に高いズームファクターを選択すると、向きを分かりやすくするためにピクセルグリッドが表示され、ピクセルごとの16進数/10進数の値が表示されます。

シミュレーションビューアの下部には、もう1つのパネルがあります:これがSequence viewerです。ソース内で複数の画像を使用している場合、ここで画像シーケンスのすべての画像を確認したり、シーケンスの画像順序を変更したり、表示パネルや拡大鏡に表示する画像を選択したりできます。

実際、MagnifierはSource Viewerの2つ目のウィンドウであり、ドラッグ&ドロップによってメインのSource Viewerウィンドウから簡単に切り離すことができます。Magnifierには常に、メインのSource Viewerの表示パネルに表示されているものと同じ画像が表示されます。そのポインタは常にMagnifierウィンドウの中央にあり、表示パネルで指し示しているピクセルの正確な位置に配置されます。Magnifierウィンドウの大きな利点は、まったく異なるズームファクターで画像の一部を表示できることです:

拡大鏡でのズーム

図 90. 拡大鏡でのズーム


Magnifierのズームファクターを変更したい場合:

  1. Tools → Magnifierウィンドウをアクティブにします。

  2. CTRL+MouseWheelUpを使用して拡大し、CTRL+MouseWheelDownを使用して縮小します。

非常に高いズームファクターを選択すると、位置合わせをしやすくするためにピクセルグリッドが表示されます。

Loading Images into the Source

ソースにテストイメージまたはテストイメージシーケンスを読み込むには、

  1. デザイン内のソースをダブルクリックして、Simulation Source Viewerを開きます。

  2. Simulation Source Viewerのメインメニューから、File → Openを選択するか、ツールバーの対応するアイコンをクリックします。表示されたダイアログでシミュレーション入力イメージファイルを選択し、Openをクリックします。

[注] 注意

便利なテストイメージが、VisualAppletsのインストールフォルダ内の以下の場所にあります。 \Testimages.

[ヒント] ヒント

または、Windows Explorerからビューアーへ、あるいはWindows Explorerからダイアグラム内のソースへイメージファイルをドラッグ&ドロップするだけでも可能です。

入力イメージがSimulation Source Viewerに表示されます。

Simulation Source Viewerを閉じると、対応するソースのプレビューフレームにイメージのサムネイルが表示されます。

ソースでのサムネイル表示

図 91: ソースでのサムネイル表示


ソースをリンクに接続するとすぐに、ソースはそのリンクのパラメータ設定(最大イメージ寸法、Bit Width、Color Formatなど)を引き継ぎます。リンクの最大イメージ寸法よりも大きいイメージを読み込むと、シミュレーションで使用されるイメージの部分を囲む緑色の長方形がイメージ上に表示されます。

シミュレーションで使用されるハイライトされたイメージセクション

図 92: シミュレーションで使用されるハイライトされたイメージセクション


[注意] イメージの変換

カラー画像を1チャンネルのグレーリンクに読み込むことはできません(逆も同様です)。テストイメージがソースの接続先であるリンクのプロパティに適合しない場合は、イメージを変換する必要があります。テストイメージの変換に必要な機能を提供する画像処理プログラムを使用してください。VisualAppletsがサポートする画像フォーマットを使用してください。サポートされている画像フォーマットについては、'Supported Image Formats'を参照してください。

Loading an Image Sequence into your Simulation Source

新しいイメージをソースに読み込むとすぐに、そのイメージがSimulation Source Viewerのディスプレイパネルに表示され、ソースのイメージシーケンスに追加されます。イメージシーケンス内のすべてのイメージは、Simulation Source Viewerの下部にあるSequence Viewerで確認できます。

ディスプレイチャンネルに表示されている選択されたイメージのみがコンピュータのRAMに保存されます。シーケンス内の他のイメージは、必要なときにRAMに読み込まれます。したがって、長いイメージシーケンスをソースに読み込んでも、RAMの使用量にはほとんど影響しません。

イメージシーケンスを読み込んだ後、読み込み順序を変更することができます。Sequence Viewerで、ドラッグ&ドロップを使用してシーケンス内の希望の位置にイメージを配置します。

シーケンスから1つまたは複数のイメージを簡単に削除できます。

  1. CTRLを押しながら、削除するイメージを選択します。

  2. DELを押すか、メニューからEdit → Remove Selectedを選択します。

Sequence Viewerでは、sim[x]は次のシミュレーションステップ中にシミュレーションされるイメージを示します。SimulationダイアログでResetボタンをクリックすると、sim[x]をシーケンスの最初のイメージにリセットできます。シミュレーションステップとリセットの詳細については、'Setting the Number of Processing Cycles and Starting the Simulation'を参照してください。シミュレーションの順序は、現在ディスプレイパネルに表示されているイメージの影響を受けません。

シーケンス内でシミュレーションされるイメージを示す sim[x]

図93. sim[x]:シーケンス内でシミュレーションされている画像を示します


マッピングによって画像プロパティを変更した場合('Image File Mapping 'を参照)、サムネイルは自動的に更新されません。 デフォルトでは、Sequence Viewerにオリジナル画像のサムネイルが表示されます。

サムネイルの表示を調整するには、次の2つの方法があります。メニューから次を選択します。

  • View → Mapped Thumbsを選択して、シミュレーションで現在のマッピング設定を適用した後の画像のプレビューを表示するか、

  • View → Refreshを選択して、現在の画像の外観を反映したサムネイルを表示します。

パラメータによる画像入力の最適化

パラメータを使用して画像入力を最適化できるようになりました。すべてのパラメータはSimulation Source Viewerに表示されます。

ピクセル値

表示パネル上の各ピクセルには、実際には2つの十字カーソルが表示されます。 2つの十字カーソルが見えない場合は、表示パネルの画像を拡大してください:

表示ウィンドウと拡大鏡の十字カーソル

図94. 表示ウィンドウと拡大鏡の十字カーソル


白/黒の十字カーソルは、マウスカーソルの位置を示します。

色のついたカーソルは、マウスカーソルが指しているピクセルの中心に配置されます。この十字カーソルは、Magnifierのまったく同じピクセルにも表示されます。

設定パネルのタブDisplay Propertiesに対応するピクセル値が表示されます:

ピクセル値

図95. ピクセル値


ピクセル値を符号なし10進数、符号付き10進数、または16進数のいずれで表示するかを選択できます。

Displayには、画面に表示されている値が表示されます。 ソースに16 bitまたは48 bitの画像が読み込まれている場合、この値は実際のカラー値(またはグレイ値)とは異なる場合があります。画面上では、カラーチャンネルごとに8 bitしか表示できないためです。

画像寸法

Simulation Source ViewerのタブImage File – Mappingには、左側に現在の画像(ファイルから読み込まれた状態)の画像寸法、右側にリンクの画像寸法を示す表があります:

画像寸法

図96. 画像寸法


列Merged Pixelsについては、'Pixel Spitting and Merging'で説明しています。

画像ファイルの寸法がリンクの寸法よりも小さい場合、画像は1:1のスケールでリンクに転送されます。

画像ファイルの寸法がリンクの寸法を超える場合、画像のの一部のみがシミュレーションに使用されます。シミュレーションに使用される画像部分は、表示パネルの緑色の長方形で確認できます。また、対応する値が黄色でハイライト表示されます:

超過した画像寸法

図97. 超過した画像寸法


[ヒント] ヒント

表示画面に緑色の長方形が表示されない場合は、表示オプションをView → Fit to Windowに設定してください。

画像ファイルのマッピング

Simulation Source ViewerのタブImage File – Mappingには、テスト画像(ファイル)の Bit Width およびソースが接続されているリンクの Bit Width に関する情報も記載されています。

Image and Link の Bit Width

図 98. Image and Link の Bit Width


列Merged Pixelsについては、'Pixel Spitting and Merging'で説明しています。

リンクの Bit Width よりも大きい Bit Width を持つ画像を読み込む場合は、シミュレーションに使用する画像のビットをスライダーで選択できます。

使用する画像ビットのオフセットの定義

図 99. 使用する画像ビットのオフセットの定義


選択スライダーの Bit Width は、リンクの Bit Width と同じです。スライダーを使用して、オフセットの新しい位置を定義できます。オフセットは、画像の Bit Width に対するビット選択の開始点です。これらの設定に基づいて、Simulation Source Viewer は変更された画像を即座に計算し、表示パネルにそれを表示します。上記のスクリーンショットでは、8ビット画像の8ビットのうち上位4ビットが選択されています。そのため、シミュレーションに使用されるテスト画像は、256階調ではなく16階調のみを持ちます。

[注] Simulation Source Viewer での変更されたテスト画像の視覚化

PC モニター上の表示はピクセルあたり8ビットの情報に基づいているため、16階調のみを持つ画像を適切に表示することはできません。そのため、画面上で視覚化するために、テスト画像の16階調は8ビットモニター表示の256階調にマッピングされます。このマッピングによって表示されるグレーの階調数(16)が変わることはありませんが、それらの間のコントラストが向上します(0 = 黒、15 = 白)。

4ビット画像の Display Properties

図 100. 4ビット画像の Display Properties


逆に、読み込み先のリンク(つまりソースモジュールが接続されているリンク)よりも小さい Bit Width を持つ画像を読み込む場合は、Image File – Mapping タブの同じスライダーを使用して、リンクの Bit Width に対する画像のビットのオフセットを定義できます。リンクの残りのビットは NULL に設定されます。

下の図は、12ビットの Bit Width を持つリンクに8ビットのグレースケール画像が読み込まれた例を示しています。

使用するリンクビットのオフセットの定義

図 101. 使用するリンクビットのオフセットの定義


表示の配置

表示の配置を介して、変更されたテスト画像を Simulation Source Viewer で視覚化するためのいくつかの設定を定義できます。

リンクの Bit Width が8ビットより大きい場合は、リンクの Bit Width のうちどの8ビットを表示パネルに表示するかを定義する必要があります。PC モニターでの表示はカラーチャンネルあたり8ビットに制限されているため、より高い Bit Width は表示できません。

Simulation Source Viewer の Display properties タブでは、リンクのビットのうちどの8ビットを表示パネルに表示するかを定義できます。スライダーを使用して、表示可能な8ビットのオフセットを選択します。この表示配置の設定は、シミュレーションには影響しません。

以下の例では、リンクの Bit Width は12ビットです。スライダーを使用して、12ビットのうちどのビットを表示するかを決定できます。

表示の配置

図 102. Display Alignment


Pixel Spitting and Merging

イメージ BMP ファイル形式では、ピクセルのカラーチャンネルあたり最大8ビットが許可されます。 TIFF フォーマットでは、カラーチャンネルあたり最大16ビットが許可されます。これより高い Bit Width は、標準の画像ファイル形式で単純に保存することはできません。

VisualApplets では、これらの制限を回避するためにピクセル分割機能を提供しています。

ピクセル Bit Width が高い画像を標準の画像ファイル形式で保存するために、各ピクセルが複数の画像ファイルピクセルに分割されます。これにより、たとえば 8 x 8ビットピクセルなど、 BMP または TIFF ファイル形式ではカラーチャンネルあたり最大64ビットを保存できます。これらの画像は、通常の画像ファイルビューアや画像処理プログラムで表示できます。もちろん、VisualApplets によって生成されたピクセル分割画像は、水平方向に拡大されて表示されます。したがって、VisualApplets において、ピクセル分割は Bit Width(色深度)の高い画像のための単なる保存オプションです。

高 Bit Width の画像を読み込むには、次のように保存されています BMP または TIFF ファイルを取り込むには、1つの元のピクセルのカラー情報を共有する隣接ピクセルを1つのピクセルに統合し直す必要があります。これにより、シミュレーションソースビューアでpixel-split-imagesを統合して正しいマッピングを行うことができます。分割は次の場所で行うことができます: Simulation Probe Viewer ( 'Evaluating the Simulation Results')。ピクセル統合の設定は次の場所で定義できます: Simulation Source Viewer タブ Image File – Mapping:

Pixel Merge

図103. Pixel Merge


次の例では、2048x1024の BMP ファイル(Bit Width(色深度)8 bit)がソースに読み込まれています。これは16 bitの1024x1024画像として解釈されます。

Merge N pixel into 1 pixelフィールドに2と入力すると、ソース内の画像のBit Widthがカラーチャンネルあたり8 bitから16 bitに変更される一方で、ソース内の画像の行の長さは半分になり、2048から1024ピクセルに変更されます。

統合前:

Merging Factor = 1, Image Properties Do Not Fit Link Properties

図104. Merging Factor = 1, Image Properties Do Not Fit Link Properties


統合後:

Merging Factor = 2, Properties of Merged Image Fit Link Properties

図105. Merging Factor = 2, Properties of Merged Image Fit Link Properties


処理サイクルの設定とシミュレーションの開始

テスト画像またはテスト画像シーケンスをソースに読み込み、画像に関するすべての設定を定義したら、シミュレーションを開始できます。

[注意] Use Simulation Probes

画像処理結果を確認するすべての位置にシミュレーションプローブを挿入(および接続)していることを確認してください(' Inserting Sources and Probes into your Design'を参照)。

  1. メインメニューから次を選択します: 解析 → Start Simulation、またはツールバーアイコンをクリックします Start Simulation。
    これで、VisualAppletsによってDesign Rules Check 1が自動的に実行されます。

    Simulationウィンドウが開きます:

    Simulation Window

    図 106: シミュレーションウィンドウ


    上部のペインには、デザインで現在アクティブなすべてのシミュレーションソースおよびシミュレーションプローブがリスト表示されます。このリストは情報提供のみを目的としています。

    ウィンドウの下部のペインには、Design Rules Check 1の結果が表示されます。

    ドロップダウンリストボックスを使用して、リストの表示を変更できます。

    • Simulation Sources および Simulation Probes では、シミュレーション用に設定したソースとプローブのみが表示されます。

    • All Sources および All Probes では、デザイン内のすべてのデータソースとデータ送信先が表示されます。

    ソースおよびプローブの表示の変更

    図 107: ソースおよびプローブの表示の変更


[注意] エラーと注意の影響

シミュレーションは、Design Rules Check 1の実行中にエラーが検出されなかった場合にのみ開始できます。Design Rules Check 1によって作成された警告は、シミュレーションの開始を妨げません。

[注] 注意

単体のオペレーターをシミュレーション用に選択することはできません。シミュレーションは常にデザインのすべてのオペレーターに対して実行されます。

メインのシミュレーションウィンドウのリストに黄色い警告三角形のマークが付いたシミュレーションソースまたはプローブが表示されている場合、このソース/プローブはデザインのリンクに接続されていないため、シミュレーション中は無視されます。

未接続のシミュレーションモジュール

図 108: 未接続のシミュレーションモジュール


[注] 注意

カメラオペレーターは、シミュレーション中にデータを送信しません。シミュレーション用のデータを提供するには、出力リンクにシミュレーションソースを接続する必要があります。

Processing Cycle フィールドでは、プログラムに実行させる処理サイクルの数を指定できます。

また、System Settings メニュー(Settings → System Settings → Simulation)から、シミュレーションと処理サイクルを設定することもできます。

シミュレーション設定

図109. シミュレーション設定


Simulate data flow synchronization のチェックが解除されている場合:シミュレーションソースや CreateBlankImage、CoefficientBuffer などのオペレーターを含むデザイン内の各ソースは、サイクルごとに1つのデータセットを送信します。処理または転送するデータがこれ以上ない場合、サイクルは終了します。データ管理が簡素化されることにより、オペレーターはハードウェアにおける対応エンティティの動作から逸脱する可能性があります。つまり、オペレーターは入力ポート内に受信データを保存する代わりに、非現実的なほど巨大な内部バッファを実装する場合があります。

Simulate data flow synchronization が選択されている場合:デザイン全体がソースからシンクに向かってサイクルごとに1回シミュレーションされます。依存関係の正確なモデリングと正確なデータ管理に焦点が当てられます。ソースは、サイクルごとに1つ以上のデータセットを提供することが許可されます。以前に生成されたデータがまだ処理待ちである場合、シミュレーションによってソースからのデータ送信が妨げられることがあります。そのため、オペレーターはデータ処理によって収集が必要になるまで、受信データを持続的に入力ポート内に保持します。有効なデータが受信ポートに保存されている限り、上流のオペレーターによるデータ生成がブロックされます。これにより輻輳が発生し、ハードウェアにおけるインヒビットの概念に対応することで、デッドロックの検出が可能になります。

Simulate 1D line by line:複数のラインを1つの2Dフレームに集約して1Dデータを処理し、他の2Dデータと同様にシミュレーションします。これは高速でロバストですが、シミュレーションが正確に1つのシミュレーションサイクルに制限されます。Simulate 1D line by line を選択すると、各ラインが個別に処理されるため、1Dループの処理など、多段階のシミュレーションが可能になります。この機能はデータフローの同期に依存しているため、このオプションは Simulate data flow synchronization が選択されている場合にのみ選択できます。

[注] Simulate 1D line by line 実行中のシミュレーションプローブの動作

1Dリンクに接続されたシミュレーションプローブの場合、受信したラインデータはシミュレーションプローブ内の最後のフレームに追加されます。各処理サイクルの後、それぞれのラインが確定され、新しいフレームが開始されます。シミュレーションダイアログが開いている間は、Sequence Viewer はロックされます。

Simulation ビューで希望する量の Processing Cycles を選択した後、Start ボタンをクリックしてシミュレーションを実行できます。すべての処理の内部ステータスが維持されるため、シミュレーションダイアログが開いている限り、同じウィンドウから続けて実行を開始できます。ダイアログが閉じられると、すべてのオペレーターが初期化状態にリセットされます。

例:特定の AppendImage オペレーターは、連結のために3つの入力画像を必要とします。接続されたソースは、処理サイクルごとに1つの画像を提供します。AppendImage の出力リンクに接続されたシミュレーションプローブは、2サイクル分シミュレーションを実行しても、AppendImage が処理を開始するためにもう1つの画像が不足しているため、まだデータを表示しません。

2回目のシミュレーションステップ

図 110: 2回目のシミュレーションステップ


シミュレーションダイアログを開いたまま、追加の(3回目の)シミュレーションサイクルを実行できます。これにより、接続されたシミュレーションプローブでデータが提供されます。

3回目のシミュレーションステップ

図 111: 3回目のシミュレーションステップ


その間にダイアログを閉じて再度開いた場合、追加のシミュレーションサイクルはデザインの初期化後に実行されるため、AppendImageに必要な3つの画像のうち最初の画像が提供されます。

[注] ソースモジュール内での画像の処理順序

新しい処理サイクルでは、常にソースにロードされた画像シーケンスの次の画像が処理されます。シーケンス内のすべての画像の処理が完了すると、シーケンスの最初の画像が再び処理されます。

ソースにロードされている画像が1つだけの場合、処理サイクルごとにその画像が繰り返し処理されます。たとえば、4つの処理サイクルを指定すると、ソースの1つの画像が最大4回処理されます。

デザインによっては、SplitImageやRemoveImageなどのオペレータを使用する場合など、デザインに入力される画像の数が取得する出力画像の数と異なる場合があります。そのため、1つの処理サイクルにおいて、デザイン内のソースモジュールよりも多くの画像または少ない画像がプローブの結果として得られることがあります。VisualAppletsのBasics and Examplesの「Multiple DMA Channel Designs」の例も参照してください。

シミュレーションをクリアして開始状態にリセットするには、Resetボタンを使用します。

リセットを実行すると、次の効果があります。

  • すべてのシミュレーションソースの画像シーケンスがリセットされます。つまり、新しいシミュレーションはシーケンスの最初の画像から再度開始されます。

  • すべてのプローブの内容が削除されます。

  • すべてのオペレータが開始状態にリセットされます(画像カウンタ、入力ポートの未収集データなど)。

これで、デザインで定義されたデータ処理のシミュレーションを開始する準備が整いました。

  1. Startをクリックしてシミュレーションを開始します。

現在のシミュレーションステータスは、Simulationビューの下部にあるプログレスバーに表示されます。警告やエラーはLogパネルに表示され、Show Details/Hide Detailsボタンをクリックして開閉できます。警告やエラーが発生すると、Logパネルが自動的に表示されます。

[ヒント] ヒント

必要に応じて、シミュレーション中もシミュレーションモジュールのビューアウィンドウを開いたままにすることができます。ただし、これによりシミュレーションの速度が低下します。

シミュレーションの成功

図 112: シミュレーションの成功


シミュレーションの進行中、シミュレーションプローブモジュールには結果画像が格納されます。シミュレーション結果のサムネイルがプレビュー画像フレームに表示されます。シミュレーションプローブのシミュレーションビューアウィンドウを開くと、結果がフルサイズで表示されます。

[注] シミュレーションの自動リセット

デザインを変更すると、シミュレーションは自動的にリセットされます。リセット時には、すべてのシミュレーションプローブもクリアされます。

シミュレーション結果の評価

シミュレーション後、プローブでシミュレーション結果を確認できます。

[注] プローブに一部の画像が表示されない

シミュレーションプローブに非常に大きな画像が含まれている場合、メモリの制限により、VisualAppletsでこれらの画像が正しく表示されないことがあります。 その場合、グレーの画像(すべてのピクセルの値が205(0xCD)の画像)が表示されます。この問題が発生した場合は、シミュレーションにより小さな画像を使用してください。

デザイン内のプローブをダブルクリックして、Simulation Probe Viewerを開きます。

Simulation Source Viewer('Loading the Image File(s) to your Simulation Source(s) 'を参照)に似ています。 設定チャネルが左側に、表示チャネルが右側に、 Sequence ViewerがSimulation Probe Viewerウィンドウの下部に配置されています。

Simulation Probe Viewerでは、最初の評価用としてシミュレーション結果が表示されます。ピクセルアライメントによって表示オプションを変更したり、画像をファイルに保存したりできます。保存には、ピクセル分割などのいくつかのオプションを利用できます。

ツールバーの対応するアイコンを使用するか、CTRL+MouseWheelUpで拡大し、CTRL+MouseWheelDownで縮小することで、表示チャネルに表示されている画像を拡大・縮小できます。

非常に高いズーム倍率を選択すると、方向を把握しやすくするためにピクセルグリッドが表示され、対応するピクセル値がテキストで表示されます。

ピクセル値

Simulation Source Viewerと同様に、表示パネルの各ピクセルには2つの十字カーソルが表示されます。2つの十字カーソルが表示されない場合は、表示パネルの画像を拡大してください。白黒の十字カーソルはマウスカーソルの現在の位置を示し、色付きのカーソルはマウスポインターが指すピクセルの中心に配置されます。 この十字カーソルは、Magnifier上の全く同じピクセルにも表示されます。

設定パネルには、対応するピクセル値が表示されます。

Pixel Values Probe

図 113. Pixel Values Probe


選択したピクセルのカラー値の解釈を調整するには、さまざまなオプションがあります。

  • 16進数として表示するか、符号付きまたは符号なしの10進数として表示するかを選択できます。

  • 固定小数点数として解釈する場合の小数部のビット数を設定できます。

  • さらに、値に乗算されるScalingファクターを定義できます。これは、放射輝度から度への変換などの線形変換を実行する際に便利です。

Displayには、画面に表示される値が表示されます。プローブ内に16ビットまたは48ビットの画像がある場合、画面上ではカラーチャンネルあたり8ビットしか表示されないため、この値は実際のカラー値(または濃淡値)とは異なる場合があります。

Displayの値と画像ウィンドウ内の表示色の間でトーンマッピングを実行するカラーマップを選択できます。これは、符号付き画像データを扱う場合や、含まれる画像の特性がグレースケール表現では見えにくい場合に特に便利です。

シミュレーションプローブがカーネルを転送するリンクに接続されている場合は、KernelパネルのカーネルRowおよびカーネルColumnスピンボックスで個別のカーネル画像を選択できます。

画像シーケンス

画像がシミュレートされると、すぐにSimulation Probe Viewerに表示され、Sequence Viewerに追加されます。

Simulation Probe Viewer内の画像の順序を変更することはできません。

ただし、シーケンスから1枚以上の画像を削除することはできます。

  1. CTRLを押しながら、削除するイメージを選択します。

  2. DELを押すか、メニューからEdit → Remove Selectedを選択します。

マッピングによって画像プロパティを変更した場合(例:16ビット画像を BMP ファイルに保存する場合など)、サムネイルは自動的に更新されません。デフォルトでは、 Sequence Viewer には元のシミュレーション結果のサムネイルが表示されます。

行長の可変

VisualAppletsでは、行の長さが一様ではない長方形以外の画像の処理と表示も可能です。行の長さが異なる画像を表示することもできます。

このような画像の画像サイズは、VisualAppletsによって次のように計算されます。

[ヒント] 行の長さが不均一な画像のサイズ計算

画像サイズ = 最も長い行のピクセル数 × 行数

行の長さが NULL の行もカウントされます。画像の未定義領域は、表示画面上で青からシアンへのカラーグラデーションで表されます。

未定義の画像領域の表示

図 114: 未定義の画像領域の表示


空の画像は Empty Image というシンボルで表示され、保存することはできません。

空の画像のシンボル

図 115: 空の画像のシンボル


表示の配置

Simulation Probe Viewer の表示パネルでは、同じ画像を表示する方法として次の2つを提供しています。

  • Link View を有効にすると、リンクによってプローブに渡された時点の見た目のまま画像が表示されます。

  • File View を有効にすると、現在の設定でファイルを保存した際の見た目のまま画像が表示されます。

モニターは常にカラーチャネルあたり8 bitを使用するため、これより高いまたは低い Bit Width を持つ画像をそのまま表示することはできません。

シミュレーション結果の Bit Width が8 bitより高い場合、オフセットスライダーを使用して、表示パネルに表示する8 bitを選択できます。

Link View

図 116: Link View


この例では、16ビットグレースケールの上位8ビットが表示対象として選択されています。

画像の Bit Width が8 bit未満の場合、テスト画像のグレースケール値は、8 bitモニターディスプレイの256階調のグレースケール値に自動的にマッピングされます。このマッピングによって表示される階調の数自体は変わりませんが、階調間のコントラストが向上します。このマッピングを行わないと、人間の目には画像がまったく認識できない場合があります。例えば1 bit画像の場合、マッピングを行わずに値0および1をモニター表示に使用すると、人間の目にはどちらも黒として認識されてしまいます。この場合、VisualAppletsの自動 Bit Width マッピングにより、0が0(黒)に、1が255(白)に解釈されます。

Line Profile

Line Profile ビューには、ラインの個々のカラー値またはグレー値が表示されます。Line Profile は、Tools メニューから開くことができます。

出力エリアには次の2つがあります。

  • Overview: ライン全体における個々のカラー値またはグレー値が表示されます。

  • Detail: Overview ビューでマークされた領域を拡大表示します。Detail ビューに現在表示されている領域は、Overview ビュー上で白背景によって強調表示されます。Detail ビューの下にあるスクロールバーを使用すると、Detail ビューに表示される領域を移動できます。

Line Profile ビュー

図 117: Line Profile ビュー


スピンボックスの Line Index を使用して画像内の特定のラインを選択すると、そのラインが Display パネルにマークされます。

カラー画像の場合は、チェックボックスの R、G、B、および Y を使用して、個々のカラーチャンネルのオン/オフを切り替えることができます。Y は輝度を表します。さらに、スピンボックスの Position X を使用するか、シアンのマーカーを使用して、ライン内の特定のピクセル位置を選択できます。シアンのマーカーを使用するには、マウスを Detail ビューに移動させるだけです。値は R、G、B、および Y で表示されます。

ラインヒストグラム

Line Histogram ビューは、画像内の選択されたラインのカラー値またはグレイ値の分布を表したものです。Line Histogram は Tools メニューから開くことができます。

Line Histogram ビュー

図 118: Line Histogram ビュー


ヒストグラムビューは、常にダイアグラムの全高にわたるようにスケーリングされます。

スピンボックスの Line Index を使用して、画像内の特定のラインを選択できます。Line Profile ビューと同様に、選択したラインは Display パネルにマークされます。

カラー画像の場合は、チェックボックスの R、G、B、および Y を使用して、個々のカラーチャンネルのオン/オフを切り替えることができます。Y は輝度を表します。さらに、スピンボックスの Value を使用するか、シアンのマーカーを使用して、特定のカラー値を選択できます。シアンのマーカーを使用するには、マウスカーソルを出力ビューに合わせます。

16ビット画像など、より大きな色深度の場合は、スピンボックス Bin のスピンボックスの代わりに 値 が表示され、その横にビンの範囲が表示されます。

選択した Value または Bin の数値に対して、対応する範囲の値を持つピクセル数が Count に表示されます。Value または Bin に数値を手動で入力するか、ダイアグラム上にマウスをポイントして数値を選択できます。

カラー画像の場合、出力は基本カラー値の RGB と輝度値の Y に分割されます。

統計データの表示

Line Histogram ビューには、選択されたラインに対して計算された次の統計値も表示されます。

  • Mean 値

  • 標準偏差 (St. Dev.)

  • Minimal (Min.) 値

  • Maximum (Max.) 値

画像ヒストグラム

Image Histogram ビューは、画像内のカラー値またはグレイ値の分布を表したものです。Image Histogram は Tools メニューから開くことができます。

Image Histogram ビュー

図 119: Image Histogram ビュー


ヒストグラムビューは、常にダイアグラムの全高にわたるようにスケーリングされます。

カラー画像の場合は、チェックボックスの R、G、B、および Y を使用して、個々のカラーチャンネルのオン/オフを切り替えることができます。Y は輝度を表します。さらに、スピンボックスの Value を使用するか、シアンのマーカーを使用して、特定のカラー値を選択できます。シアンのマーカーを使用するには、マウスカーソルを出力ビューに合わせます。

16ビット画像など、より大きな色深度の場合は、スピンボックス Bin のスピンボックスの代わりに 値 が表示され、その横にビンの範囲が表示されます。

選択した Value または Bin の数値に対して、対応する範囲の値を持つピクセル数が Count に表示されます。Value または Bin に数値を手動で入力するか、ダイアグラム上にマウスをポイントして数値を選択できます。

カラー画像の場合、出力は基本カラー値の RGB と輝度値の Y に分割されます。

統計データの表示

Image Histogram ビューには、選択された画像に対して計算された次の統計値も表示されます。

  • Mean 値

  • 標準偏差 (St. Dev.)

  • Minimal (Min.) 値

  • Maximum (Max.) 値

シミュレーション結果の保存

シミュレーション結果は、TIFF/TIF、BMP、JPEG/JPG、および PNG の画像ファイル形式で保存できます。TIFF 形式はカラーチャンネルあたり 8 ビットおよび 16 ビットをネイティブサポートしますが、BMP はチャンネルあたり 8 ビットのみをサポートします。

画像を TIFF/TIF または BMP ファイルとして実際に保存する前に、Save Options ダイアログですべての保存設定を定義する必要があります。

  1. ダイアログを開くには、Simulation Probe ViewerのメインメニューからFile → Save Optionsを選択します。これにより、Save OptionsパネルがSimulation Probe Viewerの右側に開きます。

Save Optionsダイアログ

図 120. Save Optionsダイアログ


Destination File Formatでは、画像を保存するフォーマットを定義できます:

保存用のファイルフォーマットオプション

図 121. 保存用のファイルフォーマットオプション


1ビットのシミュレーション結果を8ビットのファイルフォーマットで保存する場合は、Normalize gray valuesチェックボックスをオンにします。ここでのNormalizingとは、0を0(黒)に、1を255(白)にマッピングすることを意味します。

ピクセルアライメント

画像のBit Width(=リンクのBit Width)が、保存用に選択したファイルフォーマットのBit Widthと同じである場合は、画像を1:1で保存できます。

画像のBit WidthがファイルフォーマットのBit Widthよりも小さい場合は、スライダーを使用してピクセル配置オフセットを変更できます。これにより、シミュレーション結果のビットを、ファイルフォーマットの(より大きな)ピクセル内の特定の位置に保存できます。たとえば、12ビットリンクのビットを16ビットの最下位12ビットまたは最上位12ビットに保存します TIFF 画像。

画像のBit WidthがファイルフォーマットのBit Widthよりも大きい場合は、スライダーを使用して、画像ピクセルのどのビットをファイルに保存し、どのビットを破棄するかを選択できます。

ファイルに保存される状態の(ストリップされた)画像のプレビューを表示するには:Simulation Probe Viewerのメインウインドウで、設定パネルの上部にあるラジオボタンをFile Viewに設定します。

ピクセル分割

VisualAppletsのピクセル分割オプションを使用する場合は、1つのピクセルの色情報をいくつのピクセルに分割するかを定義できます('Pixel Spitting and Merging'も参照)。

たとえば、16ビットのシミュレーション結果を8ビットで保存する場合 BMP ファイル、 Split 1 Pixel into を2ピクセルに設定します。これで、画像の16ビットピクセルが2つの8ビットピクセルに分割されます。

Save Optionsダイアログでの分割ファクターの設定

図 122. Save Optionsダイアログでの分割ファクターの設定


分割によって、行の長さは分割ファクターに応じて2倍、3倍などになります。この例では、行の長さが2倍になります。通常の画像表示/処理プログラムでは、これらの分割された画像を表示できます。ただし、8ビットのBit Widthを前提としているため、画像表示は水平方向に拡大されます。

[注] 分割された画像の再変換

分割された画像をシミュレーションソースにロードし、ピクセルマージオプションを使用して元のBit Widthに再変換できます('Pixel Spitting and Merging'を参照)。

保存

[重要] 重要

メインメニューからFile → Saveを選択すると、Save Optionsダイアログで定義したすべての設定が適用されます。

シミュレーション結果をファイルに保存するには、次のように進めます:

  1. メインメニューからFile → Saveを選択します。

  2. 保存場所とファイル名を指定します。

  3. Saveをクリックします。

[ヒント] 画像シーケンスの保存

画像シーケンス全体を保存することもできます。画像シーケンスを保存するには、Simulation Viewerで保存するすべての画像を選択します。これを行うには、CTRLキーを押しながら画像をクリックします。次に、メインメニューからFile → Saveを選択します。保存された画像には自動的に番号が付けられます。

よくある質問

Q: カラー画像をグレースケール画像に変換し、シミュレーションソースへのロードを試みました。しかし、VisualAppletsが1チャンネルのリンクへの画像のロードを拒否します。何が問題でしょうか?

A: 画像はカラー情報のために依然として(彩度0%の)3チャンネルを使用しています。画像を1チャンネルの画像に変換してください。

Q: シミュレーションプローブに、シミュレーション後の結果が含まれません。何が問題でしょうか?

A: シミュレーションサイクル数が不足している可能性があります。サイクル数を増やしてください。さらに、アルゴリズムが画像を出力していない可能性があります。オペレーターリファレンスでそれぞれのオペレーターの制限事項を確認してください。また、シミュレーションプローブが信号リンクに接続されている場合、出力データが表示されることはありません。

Q: シミュレーションプローブが自動的にクリアされます。なぜですか?

A: デザインが変更されるたびに、シミュレーションプローブがクリアされることがあります。モジュールの移動や、現在のポートに影響を与えないオペレーターの内部パラメータの変更などの軽微なデザイン変更では、これは発生しません。デザインのトポロジを変更する変更や、リンクを介して接続されたオペレーターに伝播するパラメータの変更により、プローブが無効になります。