Library Memory

Memory library 包含用於資料緩衝、資料重新排序以及資料隨機存取的 operator。 這裡有許多不同的 operator。 它們各自實作了不同的記憶體存取方式。

如需關於記憶體元素與 latency 的實用指南,請參閱 Memory Elements 教學主題 以及 Latency 教學主題。

這些 operator 使用的是 frame grabber RAM (DRAM)、FPGA 內部 block RAM (BRAM 或 URAM),或是 FPGA distributed RAM (LUT RAM)。 下表概述了各個 operator 所使用的記憶體類型。

姓名 Memory Type
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 內部 block RAM
FrameMemoryRandomRd FPGA 內部 block 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 內部 block RAM
LineBuffer Frame grabber RAM (DRAM)
LineMemory FPGA 內部 RAM
LineMemoryRandomRd FPGA 內部 block RAM
LUT FPGA 內部 block RAM
RamLUT Frame grabber RAM (DRAM)
ROM FPGA 內部 block RAM

表 45. Library Memory 中 operator 的記憶體類型


即使 operator 使用的是 frame grabber RAM (DRAM),也可能需要額外的 FPGA 內部 RAM 來進行緩衝。

The delay, i.e., latency of a memory operator, depends on the operator's implementation. Some operators only have a short pixel delay, while others have a line or frame delay. The following table lists the delay of the individual memory operators.

姓名 延遲
CoefficientBuffer 無:如果輸出未被阻擋,將始終輸出資料。
CoefficientBufferMultiRoi 無:如果輸出未被阻擋,將始終輸出資料。
FrameBufferMultiRoi 最少 1 張:在張資料完整寫入緩衝區後開始讀取。如果輸出被阻擋,operator 會對輸入資料進行緩衝。
FrameBufferMultiRoiDyn 最少 1 張:使用座標輸入的讀取作業會在張資料完整寫入緩衝區後開始。如果輸出被阻擋,operator 會對輸入資料進行緩衝。
FrameBufferRandomRead 最少 1 張:一旦張資料完整寫入,即開始使用位址輸入進行讀取。如果輸出被阻擋,operator 會對輸入資料進行緩衝。Latency 也取決於是否存在讀取位址資料。
FrameMemory 1 張:在張資料完整寫入緩衝區後開始讀取。
FrameMemoryRandomRd 1 張:在張資料完整寫入緩衝區後即可開始讀取。Latency 取決於是否存在讀取位址資料。
ImageBuffer 最少 1 行:一旦整行資料完整寫入緩衝區,輸出即開始讀取。如果輸出被阻擋,operator 會對輸入資料進行緩衝。
ImageBufferMultiRoI 最少 1 張:在張資料完整寫入緩衝區後開始讀取。如果輸出被阻擋,operator 會對輸入資料進行緩衝。
ImageBufferMultiRoIDyn 最少 1 張:使用座標輸入的讀取作業會在張資料完整寫入緩衝區後開始。如果輸出被阻擋,operator 會對輸入資料進行緩衝。
ImageBufferSC 最少 1 行:一旦整行資料完整寫入緩衝區,輸出即開始讀取。如果輸出被阻擋,operator 會對輸入資料進行緩衝。
ImageBufferSpatial 最少 1 行:一旦整行資料完整寫入緩衝區,輸出即開始讀取。如果輸出被阻擋,operator 會對輸入資料進行緩衝。
ImageFifo 無 latency。只有在輸出被阻擋時,operator 才會緩衝並延遲輸入資料。
ImageSequence 最少 SequenceLength 張:在某個序列的所有張資料完整寫入緩衝區後開始讀取。如果輸出被阻擋,operator 會對輸入資料進行緩衝。
KneeLUT 無 latency
LineBuffer 1 行:在行完全寫入緩衝區後開始讀取。
LineMemory 1 行:在行完全寫入緩衝區後開始讀取。
LineMemoryRandomRd 1 行:在行完全寫入緩衝區後即可開始讀取。延遲取決於是否存在讀取位址資料。
LUT 無 latency
RamLUT 僅有少數幾個時脈週期的延遲。取決於位址。
ROM 無延遲

Table 46. Individual Latencies of the Operators in Library Memory


以下清單總結了 Library Memory 的所有 Operator

Operator Name 短說明 推出時間
CoefficientBuffer

允許將電腦中的影像檔案上傳至擷取卡,並將其用作影像來源。

版本 1.1
CoefficientBufferMultiRoi (imaFlex)

此 Operator 在 frame grabber RAM (DRAM) 中實作一個緩衝區,可透過其參數以多個平行影像進行初始化,並讀出多個感興趣區域 (ROI)。

版本 3.6
FrameBufferMultiRoi (imaFlex)

將輸入影像緩衝在 Frame Grabber RAM (DRAM) 中,並針對每個緩衝的影像輸出任意數量的 ROI。

版本 3.6
FrameBufferMultiRoiDyn

將輸入影像緩衝在 Frame Grabber RAM (DRAM) 中,並針對每個緩衝的影像讀出多個動態感興趣區域 (ROI)。

版本 3.5
FrameBufferRandomRead

FrameBufferRandomRead 是一個具有隨機讀取存取的記憶體緩衝區。

Version 1.3
FrameBufferRandomRead (imaFlex)

FrameBufferRandomRead (imaFlex) 是適用於 imaFlex CXP-12 Quad 與 imaFlex CXP-12 Penta 平台的記憶體緩衝區,具備隨機讀取存取功能。

版本 3.3
FrameMemory

FrameMemory 是一個具有隨機寫入存取的小型記憶體區塊。

版本 1.1
FrameMemoryRandomRd

FrameMemoryRandomRd 是一個具有隨機讀取存取的小型記憶體區塊。

Version 1.3
ImageBuffer

在具有 ROI 選擇功能的 Frame Grabber RAM (DRAM) 中緩衝影像。

版本 1.1
ImageBufferMultiRoI

在 Frame Grabber RAM (DRAM) 中緩衝輸入影像串流,並從每個輸入影像輸出任意數量的 ROI。

版本 1.1
ImageBufferMultiRoIDyn

在 Frame Grabber RAM (DRAM) 中緩衝輸入影像,並從每個影像傳輸任意數量的動態 ROI。

版本 1.1
ImageBufferSC

在具有感測器校正與 ROI 選擇功能的 Frame Grabber RAM (DRAM) 中緩衝影像。

版本 1.1
ImageFifo

在 FPGA 內部 RAM 中緩衝有限數量的像素。

版本 1.1
KneeLUT

透過一系列節點實作對照表 (Lookup Table) 的近似值。

版本 1.1
LineBuffer (imaFlex)

使用支援興趣區 (ROI) 的 Frame Grabber RAM (DRAM) 逐行緩衝影像資料。此 operator 僅適用於 imaFlex CXP-12 Quad 與 imaFlex CXP-12 Penta 平台。

版本 3.3
LineMemory

LineMemory 是一個具有隨機寫入存取權的小型 Memory 區塊。

版本 1.1
LineMemoryRandomRd

LineMemoryRandomRd 是一個具有隨機讀取存取權的小型 Memory 區塊。

Version 1.3
LUT

實作動態內容的 Lookup Table。

版本 1.1
RamLUT

基於 FPGA 外部 RAM(即 Frame Grabber RAM (DRAM))實作大型動態內容 Lookup Table。

Version 1.3
RamLUT (imaFlex)

基於 FPGA 外部 RAM 實作大型動態內容 Lookup Table。

版本 3.3
ROM

實作動態內容的 Lookup Table。

版本 1.1

表 47. Library: Memory 的 operators