Operator Overflow

Operator Library: Synchronization

「溢出」運算子將無法中斷的二維輸入資料流與後續的影像處理管線分離,因為該管線有時可能會被阻塞。 當輸出資料受阻,導致內部小型緩衝區已滿時,該運算子會識別出溢出狀況。若發生溢出, 系統會立即在當前幀後綴上行尾標記與幀尾標記,藉此截斷該幀。該幀將被視為 已損毀,並據此產生事件。當新幀進入輸入端 I,而輸出端仍處於阻塞狀態時, 系統會跳過這些幀,並產生一則關於丟失幀的事件。

請參閱 「可中斷與不可中斷資料流」教學主題 以獲取實務指引。

[注意] 溢出導致框架非矩形

當因溢出情況而截斷一個傳入幀時,傳出幀的最後一行通常會比其他行更短 。請確保後續的影像處理流程能夠處理這種情況。

每當發生一個損毀或遺失的幀時,便會產生一個溢出事件。溢出事件傳輸的資料有效載荷包含 幀號與溢出類型。事件有效載荷以三個 16 位元資料字的形式提供。前兩個字代表 幀號的 32 位元值,其中最低有效位元儲存在第一個字中。 第三個 16 位元組則提供 一個溢出遮罩,其遮罩位元定義如下:

  • [0]:幀資料損毀

  • [1]:丟失一幀

  • [2]:事件損失發生在之前

  • [3]: 畫面正常

  • [4] .. [15]:保留

請注意,幀號會在擷取開始時重設。另請注意,第一個幀的幀號為零,而 DMA 傳輸則從幀號一開始。 幀號是一個 32 位元值。若達到最大值,將重新從零開始。在 64 位元目標執行環境中, DMA 傳輸編號將為 64 位元值。 若「幀損壞」標誌被設定,則事件中所指幀號的幀已損壞,也就是說該幀長度不完整,因此後續處理 可能會產生無效結果。 若「幀遺失」標誌被設定,則事件中所指幀號的幀已被完全捨棄,因此後續處理管線並未 從該幀接收任何資料。 「幀損壞」標誌與「幀遺失」標誌絕不會同時出現在同一個事件中。「事件遺失」標誌是額外的安全機制,表示該事件已遺失。 此情況僅可能發生於極高的事件發生率下,在正常條件下不應發生。

I/O Properties

Property Value
Operator Type M
Input Link 我,勢不可擋的資料輸入
Output Link O,資料輸出

Supported Link Format

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

Parameters

EventsForSuccessfulFrame
Type 動態讀取/寫入參數
Default 關閉
Range [關閉、開啟]

指定是否應針對任何通過的幀產生事件。

發生溢出
Type 動態讀取參數
Default 0
Range [0, 1]

若發生溢出事件,則發出通知。

此參數會在讀取存取後重置,因此可顯示在上一筆讀取 存取與本次讀取存取之間是否發生溢出情況。

Examples of Use

以下範例展示了「Overflow」運算子的用法: