Library Memory

Memory函式庫包含用於資料緩衝、資料重新排序以及資料隨機存取的運算子。 其中存在許多不同的運算子。 它們皆實現了各自對記憶體存取的構想。

有關記憶體元件與延遲的實務指引,請參閱 「記憶體元件教學」主題 以及 「延遲教學」主題。

這些操作員要麼使用 幀擷取卡 RAM(DRAM),或是 FPGA 內建的區塊 RAM(BRAM 或 URAM),或 FPGA 分散式 RAM(LUT RAM)。 下表概述了各運算子所使用的記憶體類型。

姓名 記憶體類型
CoefficientBuffer 幀擷取卡記憶體(DRAM)
CoefficientBufferMultiRoi 幀擷取卡記憶體(DRAM)
FrameBufferMultiRoi 幀擷取卡記憶體(DRAM)
FrameBufferMultiRoiDyn 幀擷取卡記憶體(DRAM)
FrameBufferRandomRead 幀擷取卡記憶體(DRAM)
FrameMemory FPGA 內部區塊 RAM
FrameMemoryRandomRd FPGA 內部區塊 RAM
ImageBuffer 幀擷取卡記憶體(DRAM)
ImageBufferMultiRoI 幀擷取卡記憶體(DRAM)
ImageBufferMultiRoIDyn 幀擷取卡記憶體(DRAM)
ImageBufferSC 幀擷取卡記憶體(DRAM)
ImageBufferSpatial 幀擷取卡記憶體(DRAM)
ImageFifo FPGA 內部 RAM
ImageSequence 幀擷取卡記憶體(DRAM)
KneeLUT FPGA 內部區塊 RAM
LineBuffer 幀擷取卡記憶體(DRAM)
LineMemory FPGA 內部 RAM
LineMemoryRandomRd FPGA 內部區塊 RAM
LUT FPGA 內部區塊 RAM
RamLUT 幀擷取卡記憶體(DRAM)
ROM FPGA 內部區塊 RAM

表 45. 函式庫記憶體中運算子的記憶體類型


即使操作員使用 幀擷取卡記憶體(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 最小序列長度幀數:待該序列的所有幀均已完整寫入緩衝區後,才會開始讀取。若輸出 被阻塞,則運算子會將輸入資料暫存於緩衝區中。
KneeLUT 無延遲
LineBuffer 第 1 行:待該行完全寫入緩衝區後,才會開始讀取。
LineMemory 第 1 行:待該行完全寫入緩衝區後,才會開始讀取。
LineMemoryRandomRd 第 1 行:待該行完全寫入緩衝區後,即可開始讀取。延遲取決於是否具備讀取位址資料。
LUT 無延遲
RamLUT 僅需幾個時脈週期的延遲。視位址而定。
ROM 零延遲

表 46. Library Memory 中各運算子的個別延遲


以下清單彙整了所有「圖書館記憶體」的運算子

運算子名稱 簡短說明 推出版本
CoefficientBuffer

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

Version 1.1
CoefficientBufferMultiRoi (imaFlex)

此運算子在 幀擷取卡的 RAM(DRAM)中 中實作一個緩衝區,該緩衝區可 透過其參數初始化為包含多個平行影像,並讀取多個 感興趣區域 (ROI)。

版本 3.6
FrameBufferMultiRoi

將輸入影像緩存至 Frame Grabber 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 平台設計、具備隨機讀取功能的記憶體緩衝區。

版本 3.3
FrameMemory

FrameMemory 是一個可隨機寫入的小型記憶體區塊。

Version 1.1
FrameMemoryRandomRd

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

版本 1.3
ImageBuffer

將影像暫存於 幀擷取卡記憶體 (DRAM) 並選取感興趣區域 (ROI)。

Version 1.1
ImageBufferMultiRoI

將輸入影像串流緩存至 幀擷取器 RAM(DRAM)中 中,並從每張輸入影像中輸出任意數量的區域興趣 (ROI) 。

Version 1.1
ImageBufferMultiRoIDyn

將輸入影像暫存於 幀擷取器 RAM(DRAM)中 中,並從每張影像中傳輸任意數量的動態感興趣區域 (ROI)。

Version 1.1
ImageBufferSC

將影像暫存於 幀擷取卡記憶體(DRAM)中 ,並進行感測器校正與 ROI 選取。

Version 1.1
ImageFifo

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

Version 1.1
KneeLUT

透過一連串節點來實作查找表的近似值。

Version 1.1
LineBuffer (imaFlex)

將影像資料逐行緩衝至 幀擷取卡記憶體(DRAM)中 中逐行緩衝,並支援感興趣區域 (ROI)。此 運算子僅適用於 imaFlex CXP-12 Quad 及imaFlex CXP-12 Penta 平台。

版本 3.3
LineMemory

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

Version 1.1
LineMemoryRandomRd

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

版本 1.3
LUT

實作了一個動態內容的查閱表。

Version 1.1
RamLUT

基於 FPGA 外部 RAM(即 幀擷取器 RAM(DRAM))來實現一個包含大量動態內容的查表功能。

版本 1.3
RamLUT (imaFlex)

基於 FPGA 外部 RAM,實作了一個用於動態內容的大型查找表。

版本 3.3
ROM

實作了一個動態內容的查閱表。

Version 1.1

表 47. 圖書館記憶體的運算子