運算子 FrameBufferRandomRead

Library: Memory 運算子

此運算子可協助隨機讀取 緩衝區中的資料。幀資料是透過連結 I 傳輸至此運算子的。 透過將位址傳輸至RColA(讀取 欄位位址)和RRowA(讀取行位址)埠,即可執行資料的隨機讀取。運算子將利用這些位址 根據指定座標讀取幀資料。產出的幀資料將具有 與輸入位址相符的影像尺寸。此操作員需一個類型為 RAM的VisualApplets 資源。更多資訊請參閱「裝置資源的分配」。關於 此操作員的延遲資訊,請參閱表 46「庫記憶體中各操作員的個別延遲」。

FrameBufferRandomRead(幀緩衝區隨機 讀取)運算子會將影像流緩存至 幀擷取器 RAM(DRAM)中中緩衝圖像流。需具備一個 類型為RAM的VisualApplets 資源。

此運算子有兩種狀態:

  1. 寫入狀態:輸入影像儲存於緩衝區中。該運算子運作方式類似於 FIFO。若記憶體空間充足,則可將多張影像儲存於 緩衝區中。

  2. 讀取狀態:當影像完全儲存至記憶體後,將 根據輸入端 RColA 和 RRowA 所提供的位址讀取記憶體內容。位址數量 以及位址與影像尺寸的對應關係,共同決定了影像的輸出寬度與 高度。

影像資料輸入與位址輸入 彼此並非同步。兩者的影像尺寸可能不同。兩個位址 輸入 RColA 和 RRowA 都必須為 O-同步。

請注意輸入連結的時序。 位址輸入絕不能由與資料連結輸入 I 相同的運算子處理,且不得 進行緩衝。這是因為在將影像資料寫入運算子期間,無法接受任何 用於讀取當前幀的位址。只有當幀已完全儲存至 緩衝區後,才可接受位址。 在許多情況下,該運算子 CreateBlankImage 會被用來 為這些位址產生影像。

此運算子使用大型非 FPGA 記憶體。若 僅需儲存小型幀或行,請考慮使用下列運算子 FrameMemoryRandomRd 或 LineMemoryRandomRd。

為了測量緩衝區的填滿程度, 該運算子提供 2 個參數:FillLevel和 Overflow。FillLevel 顯示 RAM 的填滿百分比。當 FillLevel 接近或達到 100%,且 接下來要儲存至緩衝區的影像將超過 RAM 容量時,Overflow 參數會被設為 1。 若發生 溢出情況,輸入幀將被捨棄。使用者必須輪詢溢出參數。由於 溢出狀態的持續時間可能非常短暫,因此有可能發生在 操作員的輪詢週期之間。

參數 「InfiniteSource」用於指定該運算子是 直接連接至攝影機,還是與其他記憶體運算子依序串接。如需更多資訊,請參閱「無限來源/連接攝影機」。

Operator Restrictions

  • 不支援空影格。

  • 不支援具有不同行長度的影像。

  • 位址埠的並行度必須設定為 2。

  • I.MaxImgWidth*I.MaxImgHeight不得超過 可用 RAM 大小:2^RamAddressWidth。

頻寬最佳化

流經使用 Frame Grabber RAM (DRAM) 之 operator 的理論頻寬 [bits/second] 是根據下列公式計算:

然而,由於 DRAM 效率的關係,實際頻寬總是小於理論頻寬。

當 Bit Width 與 Parallelism 的乘積等於內部 RAM Port Width 時, 即可達到流經該 operator 的 最大頻寬。

[注意] 平台特定值

RAM Port Width 與 System Clock 因平台而異。如需關於您個人平台的詳細資訊,請參閱 Device Resources。

I/O Properties

Property Value
Operator Type M
Input Links I,影像資料輸入
RColA,I 處像素的讀取欄位址
RRowA,I 處像素的讀取列位址
Output Link O,資料輸入

同步與非同步輸入

  • 同步群組:RColA 與 RRowA
  • 輸入 I 對於該群組而言是非同步的。

Supported Link Format

Link Parameter Input Link I 輸入鏈結 RColA 輸入鏈結 RRowA Output Link O
Bit Width [1, 64]1 auto2 auto3 as I
Arithmetic {unsigned, signed} 無號數 無號數 as I
Parallelism 1 {1, 2}4 如 RColA as I
Kernel Columns [1, Ram Data Width / Bit Width / Kernel Rows]5 1 1 as I
Kernel Rows [1, Ram Data Width / Bit Width / Kernel Columns]5 1 1 as I
Img Protocol VALT_IMAGE2D as I as I as I
Color Format any VAF_GRAY VAF_GRAY as I
Color Flavor any FL_NONE FL_NONE as I
Max. Img Width any6 any 如 RColA 如 RColA
Max. Img Height any6 any 如 RColA 如 RColA

1

輸入 Bit Width 的範圍為:

  • 針對無號輸入:[1, 64]

  • 對於有號數值:[2, 64]

  • 對於無號彩色輸入:[3, 63]

  • 針對有號色彩輸入:[6, 63]。

輸入位元寬度不得超過原生 RAM 資料寬度。請檢查 裝置資源 以取得更多資訊。

2

行位址的 bit width 為:

3

列位址的 bit width 為:

4

地址埠的並行度必須設定為 2,才能 有效利用該運算子。

5

I.BitWidth x I.Kernel Columns x I.Kernel Rows <= RamDataWidth.

6

I.MaxImgWidth*I.MaxImgHeight不得超過 可用 RAM 大小:2^RamAddressWidth。

Parameters

RamDataWidth
Type 靜態寫入參數
Default 不適用
Range 整數

此參數提供可用於 RAM 介面的資料位元數。這是用於輸入和輸出的最大位元數。

RamAddressWidth
Type 靜態寫入參數
Default 不適用
Range 整數

此參數提供可用的位址位元數。這有助於計算最大允許的影像尺寸 以及最大位址寬度。

FillLevel
Type 動態讀取參數
Default 0
Range [0%, 100%]

此參數用於設定 RAM 的填滿程度。

Overflow
Type 動態讀取參數
Default 0
Range [0, 1]

此參數表示發生緩衝區溢位。

InfiniteSource
Type 靜態參數
Default ENABLED
Range {ENABLED, DISABLED}

此參數啟用對無限來源 operator(例如 Camera operator)的支援。如需詳細資訊,請參閱 'Infinite Sources / Connecting Cameras'。

Examples of Use

以下範例展示了 FrameBufferRandomRead 運算子的使用方式: