Library Memory

Memory ライブラリには、データのバッファリング、データの再配列、およびデータへのランダムアクセスを行うためのオペレーターが含まれています。 さまざまなオペレーターが存在します。 これらはすべて、独自のメモリアクセスの概念を実装しています。

メモリ要素とレイテンシーに関する実践的なガイダンスについては、 Memory Elements のチュートリアルと Latency のチュートリアルを参照してください。

オペレーターは、frame grabber RAM (DRAM)、FPGA 内部ブロック RAM(BRAM または URAM)、または FPGA distributed RAM (LUT RAM) を使用します。 次の表は、個々のオペレーターによってどのメモリタイプが使用されているかの概要を示しています。

名前 メモリタイプ
CoefficientBuffer Frame grabber RAM (DRAM)
CoefficientBufferMultiRoi Frame grabber RAM (DRAM)
FrameBufferMultiRoi Frame grabber RAM (DRAM)
FrameBufferMultiRoiDyn Frame grabber RAM (DRAM)
FrameBufferRandomRead Frame grabber RAM (DRAM)
FrameMemory FPGA 内部ブロック RAM
FrameMemoryRandomRd FPGA 内部ブロック RAM
ImageBuffer Frame grabber RAM (DRAM)
ImageBufferMultiRoI Frame grabber RAM (DRAM)
ImageBufferMultiRoIDyn Frame grabber RAM (DRAM)
ImageBufferSC Frame grabber RAM (DRAM)
ImageBufferSpatial Frame grabber RAM (DRAM)
ImageFifo FPGA 内部 RAM
ImageSequence Frame grabber RAM (DRAM)
KneeLUT FPGA 内部ブロック RAM
LineBuffer Frame grabber RAM (DRAM)
LineMemory FPGA 内部 RAM
LineMemoryRandomRd FPGA 内部ブロック RAM
LUT FPGA 内部ブロック RAM
RamLUT Frame grabber RAM (DRAM)
ROM FPGA 内部ブロック RAM

表 45: Library: Memory のオペレーターのメモリタイプ


frame grabber RAM (DRAM) を使用している場合でも、オペレーターはバッファリングに追加の FPGA 内部 RAM を必要とする場合があります。

遅延、つまりメモリオペレーターのレイテンシーは、オペレーターの実装によって異なります。 ピクセル遅延のみのオペレーターもあれば、ラインまたはフレーム遅延を持つオペレーターもあります。 次の表に、個々のメモリオペレーターの遅延を示します。

名前 レイテンシー
CoefficientBuffer なし: 出力がブロックされていない限り、常にデータを出力します。
CoefficientBufferMultiRoi なし: 出力がブロックされていない限り、常にデータを出力します。
FrameBufferMultiRoi 最小 1 フレーム: フレームがバッファに完全に書き込まれた後に読み取りが開始されます。出力がブロックされている場合、オペレーターは入力データをバッファリングします。
FrameBufferMultiRoiDyn 最小 1 フレーム: 座標入力を使用した読み取りは、フレームがバッファに完全に書き込まれた後に開始されます。出力がブロックされている場合、オペレーターは入力データをバッファリングします。
FrameBufferRandomRead 最小 1 フレーム: フレームが完全に書き込まれ次第、アドレス入力を使用して読み取りが開始されます。出力がブロックされている場合、オペレーターは入力データをバッファリングします。レイテンシーは読み取りアドレスデータの有無にも依存します。
FrameMemory 1 フレーム: フレームがバッファに完全に書き込まれた後に読み取りが開始されます。
FrameMemoryRandomRd 1 フレーム: フレームがバッファに完全に書き込まれた後に読み取りを開始できます。レイテンシーは読み取りアドレスデータの有無に依存します。
ImageBuffer 最小 1 ライン: バッファに完全に書き込まれ次第、ラインの読み取り出力が開始されます。出力がブロックされている場合、オペレーターは入力データをバッファリングします。
ImageBufferMultiRoI 最小 1 フレーム: フレームがバッファに完全に書き込まれた後に読み取りが開始されます。出力がブロックされている場合、オペレーターは入力データをバッファリングします。
ImageBufferMultiRoIDyn 最小 1 フレーム: 座標入力を使用した読み取りは、フレームがバッファに完全に書き込まれた後に開始されます。出力がブロックされている場合、オペレーターは入力データをバッファリングします。
ImageBufferSC 最小 1 ライン: バッファに完全に書き込まれ次第、ラインの読み取り出力が開始されます。出力がブロックされている場合、オペレーターは入力データをバッファリングします。
ImageBufferSpatial 最小 1 ライン: バッファに完全に書き込まれ次第、ラインの読み取り出力が開始されます。出力がブロックされている場合、オペレーターは入力データをバッファリングします。
ImageFifo レイテンシーなし。出力がブロックされている場合のみ、オペレーターは入力データをバッファリングして遅延させます。
ImageSequence 最小 SequenceLength フレーム: シーケンスのすべてのフレームがバッファに完全に書き込まれた後に読み取りが開始されます。出力がブロックされている場合、オペレーターは入力データをバッファリングします。
KneeLUT レイテンシーなし
LineBuffer 1 ライン: ラインがバッファに完全に書き込まれた後に読み取りが開始されます。
LineMemory 1 ライン: ラインがバッファに完全に書き込まれた後に読み取りが開始されます。
LineMemoryRandomRd 1 ライン: ラインがバッファに完全に書き込まれた後に読み取りを開始できます。レイテンシーは読み取りアドレスデータの有無に依存します。
LUT レイテンシーなし
RamLUT わずか数クロックサイクルのレイテンシー。アドレスに依存します。
ROM レイテンシーなし

表 46: Library: Memory内のオペレータの個別レイテンシ


次のリストは、Library: Memory のすべてのオペレーターをまとめたものです。

オペレータ名 簡単な説明 利用可能なバージョン
CoefficientBuffer

PCからフレームグラバーへの画像ファイルのアップロードを許可し、それらを画像ソースとして使用します。

バージョン 1.1
CoefficientBufferMultiRoi (imaFlex)

このオペレーターは、パラメーターを介して複数の並列画像で初期化でき、複数の関心領域(ROI)を読み出すことができる、フレームグラバーRAM(DRAM)内のバッファを実装します。

バージョン 3.6
FrameBufferMultiRoi (imaFlex)

入力画像をフレームグラバーRAM(DRAM)にバッファリングし、バッファリングされた画像ごとに任意の数のROIを出力します。

バージョン 3.6
FrameBufferMultiRoiDyn

入力画像をフレームグラバーRAM(DRAM)にバッファリングし、バッファリングされた画像ごとに複数の動的な関心領域(ROI)を読み出します。

バージョン 3.5
FrameBufferRandomRead

FrameBufferRandomReadは、ランダムリードアクセスを備えたメモリバッファです。

バージョン 1.3
FrameBufferRandomRead (imaFlex)

FrameBufferRandomRead(imaFlex)は、ランダムリードアクセスを備えたimaFlex CXP-12 QuadおよびimaFlex CXP-12 Pentaプラットフォーム用のメモリバッファです。

Version 3.3
FrameMemory

FrameMemoryは、ランダムライトアクセスを備えた小さなメモリブロックです。

バージョン 1.1
FrameMemoryRandomRd

FrameMemoryRandomRdは、ランダムリードアクセスを備えた小さなメモリブロックです。

バージョン 1.3
ImageBuffer

ROI選択を使用して、画像をフレームグラバーRAM(DRAM)にバッファリングします。

バージョン 1.1
ImageBufferMultiRoI

入力画像ストリームをフレームグラバーRAM(DRAM)にバッファリングし、各入力画像から任意の数のROIを出力します。

バージョン 1.1
ImageBufferMultiRoIDyn

入力画像をフレームグラバーRAM(DRAM)にバッファリングし、各画像から任意の数の動的ROIを転送します。

バージョン 1.1
ImageBufferSC

センサー補正とROI選択を使用して、画像をフレームグラバーRAM(DRAM)にバッファリングします。

バージョン 1.1
ImageFifo

FPGA内部RAMに制限された数のピクセルをバッファリングします。

バージョン 1.1
KneeLUT

一連のノードによるルックアップテーブルの近似を実装します。

バージョン 1.1
LineBuffer (imaFlex)

関心領域(ROI)サポートを使用して、画像データをフレームグラバーRAM(DRAM)にライン単位でバッファリングします。このオペレーターは、imaFlex CXP-12 QuadおよびimaFlex CXP-12 Pentaプラットフォームでのみ利用可能です。

Version 3.3
LineMemory

LineMemoryは、ランダムライトアクセスを備えた小さなメモリブロックです。

バージョン 1.1
LineMemoryRandomRd

LineMemoryRandomRdは、ランダムリードアクセスを備えた小さなメモリブロックです。

バージョン 1.3
LUT

動的コンテンツのルックアップテーブルを実装します。

バージョン 1.1
RamLUT

FPGA外部RAM(つまり、フレームグラバーRAM(DRAM))に基づく、動的コンテンツの大規模なルックアップテーブルを実装します。

バージョン 1.3
RamLUT (imaFlex)

FPGA外部RAMに基づく、動的コンテンツの大規模なルックアップテーブルを実装します。

Version 3.3
ROM

動的コンテンツのルックアップテーブルを実装します。

バージョン 1.1

表47. Library Memoryのオペレーター