Operator Library: Memory
このオペレーターは、画像ストリームを Frame Grabber RAM (DRAM) にバッファリングします。 タイプ RAM のVisualAppletsリソースが1つ必要です。詳細については、「デバイスリソースの割り当て」を確認してください。 また、このオペレーターは関心領域(ROI)のサポートも備えています。 ビットの総数(Bit WidthとParallelismの積)は、それぞれのフレームグラバーのメモリ制限を超えてはなりません。
オペレーターのレイテンシについては、「表 46:Library Memory 内のオペレーターの個別のレイテンシ」を参照してください。
このオペレーターはFIFOとして動作します。 入力データは即座に出力に転送されます。 ただし、後続のオペレーターが入力帯域幅を処理できないなどの理由で出力がブロックされた場合、オペレーターはデータを保存します。 したがって、メモリにデータが Fill されるのは、オペレーターがデータを出力できない場合のみです。 多くの場合、このオペレーターはピーク時の入力帯域幅を補正するために使用されます。
内部的に、イメージバッファは画像ライン単位で動作します。 この内部ラインバッファ機能により、非常に短いメモリレイテンシが実現します。 もちろん、バッファに格納されるライン数が増えるとレイテンシは増加します。 例えば、メモリに転送された画像は即座に出力に転送されます。 アプリケーションでは、カメラが残りの画像ラインを転送している間にも、部分的なカメラ画像をPCに転送することができます。
パラメータ XOffset、XLength、YOffset、YLength を使用して、ROIサイズを定義できます。 入力画像の幅が XOffset と XLength の合計より小さい場合でも、オペレーターはパラメータ化された XLength を読み取ります。 この場合、オペレーターは追加のピクセルに対して未定義のメモリコンテンツを出力します。 入力画像の高さが要求される出力画像の高さより小さい場合、オペレーターは利用可能なラインのみを出力します。
Line1Dアプリケーションモードでは、YOffsetおよびYLengthの設定はバッファに影響しません。
バッファの Fill レベルを測定するために、オペレーターには FillLevel と Overflow の2つのパラメータが用意されています。 FillLevelは、RAMの Fill レベルを25%刻みで示します。 Overflowパラメータは、FillLevelが100%に近いか100%に達しており、バッファに格納される次の画像がRAM容量を超える場合に1に設定されます。 オーバーフローが発生した場合、入力データは破棄され、入力画像の高さが縮小されます。 その結果、不完全な画像がメモリに保存されます。 ユーザーはオーバーフローパラメータをポーリングする必要があります。 オーバーフロー状態の継続時間は非常に短いため、オペレーターのポーリングサイクル内で発生する可能性があります。
パラメータ InfiniteSource は、オペレーターがカメラに直接接続されているか、他のメモリオペレーターとシーケンス接続されているかを指定するために使用されます。 詳細については、「インフィニットソース / カメラの接続」を確認してください。
Operator Restrictions
-
空のフレームはサポートされていません。
![]() |
利用可能なメモリ空間 |
|---|---|
|
オペレーターは内部データに追加のメモリ空間を必要とします。そのため、使用されるRAMリソースの全量を画像データのバッファリングに使用できるわけではありません。 バッファリングされる画像データに実際に使用可能な空間は、ハードウェアプラットフォーム(Platform RAM Size および Platform RAM Interface Width)とリンク構成によって異なります。 Platform RAM Size および Platform RAM Interface Width の詳細については、デバイスリソースを参照してください。) RAMリソースの利用可能な容量は、次の式を使用して計算できます。
数式で使用されている略語と測定単位:
|
Frame Grabber RAM (DRAM) を使用するオペレーターを通過する理論上の帯域幅 [ビット/秒] は、次の式に従って計算されます。

しかし、実際の帯域幅はDRAMの効率により、常に理論上の帯域幅よりも小さくなります。
オペレーターを通過する最大帯域幅は、Bit WidthとParallelismの積が内部のRAM Port Widthと等しい場合に達します。
![]() |
プラットフォーム固有の値 |
|---|---|
|
RAM Port WidthとSystem Clockはプラットフォーム固有のものです。 個々のプラットフォームの詳細については、Device Resourcesを参照してください。 |
|
符号なし入力の場合、入力ビット幅の範囲は[1, 64]です。 符号付き入力の場合、範囲は[2, 64]です。 符号なしカラー入力の場合、範囲は[3, 63]であり、符号付きカラー入力の場合の範囲は[6, 63]です。 |
|
|
ビット幅とParallelismの積が、ネイティブのRAMデータ幅を超えてはなりません。 詳細については、Device Resourcesを確認してください。 |
| XOffset | |
|---|---|
| タイプ | dynamic/static read/write parameter |
| Default | 0 |
| 範囲 | [0, Max.Img Width - XLength] |
|
このパラメータは、ROIの左上隅のX座標を定義します。 ステップサイズはParallelismです。 |
|
| XLength | |
|---|---|
| タイプ | dynamic/static read/write parameter |
| Default | 1024 |
| 範囲 | [2*parallelism, Max.Img Width - XOffset] |
|
このパラメータはROIの幅を定義します。 ステップサイズはParallelismです。 |
|
| YOffset | |
|---|---|
| タイプ | dynamic/static read/write parameter |
| Default | 0 |
| 範囲 | [0, Max.Img Height - YLength] |
|
このパラメータは、ROIの左上隅のY座標を定義します。 |
|
| YLength | |
|---|---|
| タイプ | dynamic/static read/write parameter |
| Default | 1024 |
| 範囲 | [1, Max.Img Height - YOffset] |
|
This parameter defines the height of the ROI. |
|
| FillLevel | |
|---|---|
| タイプ | 動的リードパラメータ |
| Default | 0 |
| 範囲 | [0%, 100%] |
|
このパラメータは、DRAMのFillレベルを25%刻みで提供します。 |
|
| Overflow | |
|---|---|
| タイプ | 動的リードパラメータ |
| Default | 0 |
| 範囲 | [0, 1] |
|
このパラメータはバッファオーバーフローを示します。 |
|
| InfiniteSource | |
|---|---|
| タイプ | static パラメータ |
| Default | ENABLED |
| 範囲 | {ENABLED, DISABLED} |
|
このパラメータは、Cameraオペレーターなどの無限ソースオペレーターのサポートを有効にします。 詳細については、'Infinite Sources / Connecting Cameras'を参照してください。 |
|
ImageBufferオペレーターの使用法は、次の例に示されています。
-
Getting Started
-
基本原則 - VisualAppletsのコンセプトを学ぶ
-
データフロー - VisualAppletsで使用されるパイプライン構造について学ぶ
-
Synchronization Rules - Oタイプネットワークでのオペレーターの使用。
-
「Infinite Sources / Connecting Cameras」
Infinite Sources - カメラへのオペレーターの接続(DRC2レイテンシエラー)
-
デザインのパラメータ化
-
デザインのパラメータ化 - 無効化されたパラメータ
-
デザインのパラメータ化 - 不正なパラメータ値
-
オペレーターのデバイスリソースの割り当てについて学びます。
-
Basic Guide Basic Acquisition - ImageBuffer operatorでの不正な状態
-
例 - ヒストグラムシレッショルド
-
Examples - ラインスキャンアプリケーションにおけるオペレーター Blob_Analysis_1D の使用方法を示します。
-
例 - ブロブ解析オペレーターが入力カメラ画像に適用されます。 このアプレットは、アプレット内でのブロブデータの使用方法を示しています。 このケースでは、最大面積を持つオブジェクトが特定され、その座標を使用して元の画像からオブジェクトが切り出されます。
-
「オペレーター JPEG_Encoder を使用したJPEG圧縮」
例 - オペレーター JPEG_Encoder の使用法を示す簡単な例。
-
例 - カラーJPEG圧縮用のJPEGユーザーライブラリ要素の使用法を示す簡単な例。
-
例 - microEnable 4および5プラットフォーム向けで非推奨となった JPEG_Encoder_Gray オペレーターの使用方法を示すシンプルな例です。
-
例 - 画像寸法が測定され、デザインフローの分析に使用できます。
-
例 - ジェネレータによって画像タイミングが提供されている間、デザインのデータフローを解析できます。
-
例 - デバッグ目的で画像を手動で挿入できます。
-
Examples - 2つの連続する画像間の差分を計算します。 差分をしきい値処理し、DMAチャネル経由で出力します。
-
Examples - ラインスキャンカメラ用フィルターの実装方法について説明します。
-
例 - High Speedかつ頑健なレーザーライン検出アルゴリズム。 このアルゴリズムは、サブピクセル精度の結果を得るために重心座標を決定します。
-
'A rolling average is applied on a dynamic number of images'
例 - Rolling Average - Loop

![[注]](../common/images/admon/note.png)



前へ

