オペレーター ImageBuffer

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リソースの利用可能な容量は、次の式を使用して計算できます。

  • 利用されるRAMサイズ [バイト] = ((PRS * 2^20 / (PRIW / 8 bit)) / RLS) * MIW * BW / 8

  • 利用されるRAMサイズ [ライン] = ((PRS * 2^20 / (PRIW / 8 bit)) / RLS)

  • 利用されるRAMサイズ [フレーム] = ((PRS * 2^20 / (PRIW / 8 bit)) / RLS) / MIH

数式で使用されている略語と測定単位:

  • PRS:Platform RAM Size [MB単位、1MB = 2^20 バイト]

  • PRIW:Platform RAM Interface Width [ビット単位]

  • MIW:MaxImageWidth [ピクセル単位]

  • MIH:MaxIMageHeight [ライン単位]

  • P:Parallelism

  • BW:Bit Width [ビット単位]

  • RLS:Raw Line Size:2 ^ ceil(log2n(MIW / P + 4))

帯域幅の最適化

Frame Grabber RAM (DRAM) を使用するオペレーターを通過する理論上の帯域幅 [ビット/秒] は、次の式に従って計算されます。

しかし、実際の帯域幅はDRAMの効率により、常に理論上の帯域幅よりも小さくなります。

オペレーターを通過する最大帯域幅は、Bit WidthとParallelismの積が内部のRAM Port Widthと等しい場合に達します。

[注] プラットフォーム固有の値

RAM Port WidthとSystem Clockはプラットフォーム固有のものです。 個々のプラットフォームの詳細については、Device Resourcesを参照してください。

I/O Property

Property 値
オペレータータイプ M
Input Link I、画像データ入力
Output Link O、データ入力

サポートされているリンクフォーマット

Link Parameter Input Link I Output Link O
Bit Width [1, 64]12 as I
Arithmetic {unsigned, signed} as I
Parallelism any3 as I
Kernel Columns 1 as I
Kernel Rows 1 as I
Img Protocol {VALT_IMAGE2D, VALT_LINE1D} as I
Color Format any as I
Color Flavor any as I
Max. Img Width 65535 as I
Max. Img Height 65535 as I

1

符号なし入力の場合、入力ビット幅の範囲は[1, 64]です。 符号付き入力の場合、範囲は[2, 64]です。 符号なしカラー入力の場合、範囲は[3, 63]であり、符号付きカラー入力の場合の範囲は[6, 63]です。

2 3

ビット幅と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オペレーターの使用法は、次の例に示されています。