Operator Library: Synchronization
「溢出」運算子將無法中斷的二維輸入資料流與後續的影像處理管線分離,因為該管線有時可能會被阻塞。 當輸出資料受阻,導致內部小型緩衝區已滿時,該運算子會識別出溢出狀況。若發生溢出, 系統會立即在當前幀後綴上行尾標記與幀尾標記,藉此截斷該幀。該幀將被視為 已損毀,並據此產生事件。當新幀進入輸入端 I,而輸出端仍處於阻塞狀態時, 系統會跳過這些幀,並產生一則關於丟失幀的事件。
請參閱 「可中斷與不可中斷資料流」教學主題 以獲取實務指引。
![]() |
溢出導致框架非矩形 |
|---|---|
|
當因溢出情況而截斷一個傳入幀時,傳出幀的最後一行通常會比其他行更短 。請確保後續的影像處理流程能夠處理這種情況。 |
每當發生一個損毀或遺失的幀時,便會產生一個溢出事件。溢出事件傳輸的資料有效載荷包含 幀號與溢出類型。事件有效載荷以三個 16 位元資料字的形式提供。前兩個字代表 幀號的 32 位元值,其中最低有效位元儲存在第一個字中。 第三個 16 位元組則提供 一個溢出遮罩,其遮罩位元定義如下:
-
[0]:幀資料損毀
-
[1]:丟失一幀
-
[2]:事件損失發生在之前
-
[3]: 畫面正常
-
[4] .. [15]:保留
請注意,幀號會在擷取開始時重設。另請注意,第一個幀的幀號為零,而 DMA 傳輸則從幀號一開始。 幀號是一個 32 位元值。若達到最大值,將重新從零開始。在 64 位元目標執行環境中, DMA 傳輸編號將為 64 位元值。 若「幀損壞」標誌被設定,則事件中所指幀號的幀已損壞,也就是說該幀長度不完整,因此後續處理 可能會產生無效結果。 若「幀遺失」標誌被設定,則事件中所指幀號的幀已被完全捨棄,因此後續處理管線並未 從該幀接收任何資料。 「幀損壞」標誌與「幀遺失」標誌絕不會同時出現在同一個事件中。「事件遺失」標誌是額外的安全機制,表示該事件已遺失。 此情況僅可能發生於極高的事件發生率下,在正常條件下不應發生。
| 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 |
| EventsForSuccessfulFrame | |
|---|---|
| Type | 動態讀取/寫入參數 |
| Default | 關閉 |
| Range | [關閉、開啟] |
|
指定是否應針對任何通過的幀產生事件。 |
|
| 發生溢出 | |
|---|---|
| Type | 動態讀取參數 |
| Default | 0 |
| Range | [0, 1] |
|
若發生溢出事件,則發出通知。 此參數會在讀取存取後重置,因此可顯示在上一筆讀取 存取與本次讀取存取之間是否發生溢出情況。 |
|
以下範例展示了「Overflow」運算子的用法:
-
'Synchronization、Base 和 Filter Library 中特定 operator 的功能範例'
範例 - operator 使用方式示範

![[注意]](../common/images/admon/caution.png)
上一頁

