Operator Library: Synchronization
Operator SYNC 會對所有輸入鏈結執行時間與影像尺寸同步。 需同步的鏈結數量是在實例化 Operator 時指定。 所有輸出鏈結上的輸出影像皆為同步,亦即它們會在同一時間輸出,且具有相同的影像尺寸。 因此,該 Operator 會同步非同步鏈結,使其成為 O 同步,並可用於 O 型 VisualApplets operator 網路中。
此 Operator 不支援空行或空影格。
若為混合域同步(例如 2D 與 1D 及 0D 資料流), Operator 會將輸出鏈結轉換至最高輸入域。 當使用 SYNC 將 2D 鏈結與 1D 鏈結同步時,兩個輸出鏈結都會設為 2D 格式。 如果 1D 鏈結未提供足夠的行數,將會發出錯誤。 當使用 Operator 將 1D 鏈結與 0D 鏈結同步時,所有輸出鏈結都將採用 1D 格式。 在此情況下,如果 0D 鏈結未提供足夠的像素,將會發出錯誤。
若輸入影像具有不同的影像尺寸,Operator 會同步影像,使所有輸出影像 具有相同的尺寸。
![]() |
同步規則 |
|---|---|
|
在使用 SYNC operator 之前,請確保您已完全理解所有同步規則。 使用者手冊與基礎和範例中詳細說明了同步規則,請參閱: |
以下將詳細說明計時同步與影像尺寸同步。

在傳輸像素期間,可能會因為流量控制或鏈結頻寬超過影像來源頻寬 而產生暫停。 上圖顯示了如何為 2 個鏈結執行時間同步。兩個輸入鏈結具有不同的計時。 然而,輸出鏈結資料已同步,亦即像素會在所有鏈結上同時輸出。
此 Operator 的作用就像所有輸入鏈結的閥門: 在所有輸入端都出現有效像素之前,輸入鏈結保持關閉狀態。 接著,Operator 會將所有輸入端的像素轉發至輸出端,也就是開啟閥門。
SYNC operator 能夠使用不同的影像協定 VALT_IMAGE2D、VALT_LINE1D 或 VALT_PIXEL0D 來同步影像。 以下三張圖說明瞭不同影像協定的一些影像。
-
2D

2D 影像具有有限的高度 H 和有限的寬度 W。 圖中顯示的第一張影像是一般的 2D 影像。第二張影像是具有不同行長度的不規則 2D 影像。
-
1D

1D 線條具有有限的寬度 W,但高度無限。 這些類型的影像通常建立於線掃描應用中。 同樣地,圖中說明的第二張影像具有不同的行長度。
-
0D

0D 資料流沒有任何寬度或高度。這些資料流是無限的資料流。
如果輸入鏈結上的影像具有不同的影像尺寸(亦即不同的寬度或行長度和不同的高度),則會套用影像尺寸同步。 影像尺寸同步可確保輸出端的所有影像尺寸相同。 SYNC operator 支援 2 種同步模式:同步至最小影像 (SyncToMin) 與同步至最大影像 (SyncToMax)。 您透過參數 SyncMode 選擇同步模式。 SyncToMin 模式會裁切較大的影像以符合最小的影像。 SyncToMax 模式會擴展較小的影像以符合最大的影像。 遺失的像素會以虛擬零像素(黑色像素)填補。 將這 2 種模式與 3 種不同的影像域相結合,可得出以下基本同步組合:
Synchronization between 0D images is a pure time synchronization since 0D images have no image dimensions.

針對 2D 至 1D 影像的 SyncToMin 同步會執行寬度的影像尺寸同步。 輸出影像會保留輸入 2D 影像的影像高度。1D 線條資料流會被分割成與 2D 影像具有相同高度的影像。

針對 2D 至 1D 影像的 SyncToMax 同步會執行寬度的影像尺寸同步。 輸出影像會保留輸入 2D 影像的影像高度。1D 線條資料流會被分割成與 2D 影像具有相同高度的影像。

由於 0D 資料流沒有形狀,因此 2D 至 0D 同步只是簡單地繞過兩個鏈結。 當然,SYNC operator 仍會執行計時同步。 此組合的 SyncToMin 與 SyncToMax 操作沒有區別。

由於 0D 資料流沒有形狀,因此 1D 至 0D 同步只是簡單地繞過兩個鏈結。 當然,SYNC operator 仍會執行計時同步。 此組合的 SyncToMin 與 SyncToMax 操作沒有區別。
此操作是 2D 至 1D、2D 至 0D 以及 1D 至 0D 操作的組合。 2D 影像和 1D 線條資料流會在行長度上進行同步。 1D 鏈結必須提供至少包含 2D 影像的行數。 此外,0D 鏈結必須提供至少產生 2D 至 1D 同步結果的像素數。 如果這兩個條件都滿足,Operator 將會輸出結果。
![]() |
注意 |
|---|---|
|
警告:模擬混合操作模式(例如 2D 至 1D 或 1D 至 0D,或所有 3 種模式的任意組合)需要滿足以下條件:
|
有關不同 image protocols 的詳細資訊,請參見 'Image Protocols, Image Dimensions and Data Structure'。
|
無號輸入的 Bit Width 範圍為 [1, 64]。 針對有號輸入,範圍為 [2, 64]。 針對無號彩色輸入,範圍為 [3, 63],而針對有號彩色輸入,範圍為 [6, 63]。 |
|
|
如果至少有一個輸入為 VALT_IMAGE2D,則輸出 image protocol 為 VALT_IMAGE2D;否則,如果至少有一個輸入為 VALT_LINE1D,則為 VALT_LINE1D。若所有輸入的 image protocol 皆為 VALT_PIXEL0D,則為 VALT_PIXEL0D。 |
|
|
如果參數 SyncMode 為 SyncToMin,則最大輸出影像寬度為輸入最大影像寬度中的最小值。如果參數設定為 SyncToMax,則最大輸出影像寬度為輸入最大影像寬度中的最大值。 |
|
|
如果參數 SyncMode 為 SyncToMin,則最大輸出影像高度為輸入最大影像高度中的最小值。如果參數設定為 SyncToMax,則最大輸出影像高度為輸入最大影像高度中的最大值。 |
同步與非同步輸入
- 所有輸入彼此非同步,即它們可能透過任意的 O 型運算子網路來自主機型運算子。
| SyncMode | |
|---|---|
| Type | static parameter |
| Default | SyncToMin |
| Range | {SyncToMin, SyncToMax} |
|
此參數指定運作模式:在 SyncToMin 模式下,運算子會將所有輸入影像同步至最小的影像,即裁切較大的影像。在 SyncToMax 模式下,運算子會將所有較小的影像擴展至最大的影像。請參閱上述說明。 |
|
以下範例展示了運算子 SYNC 的使用方式:
-
Synchronization Rules - Use of the SYNC Operator
-
Synchronization - 避免死結。
-
'Combine Image Data From Two Camera Sources - Building an Overlay Blend'
範例 - 同步兩台相機。
-
範例 - 柱狀圖閾值處理
-
「Bayer Demosaicing Algorithm According to Laroche」
範例 - Laroche Bayer Demosaicing 濾波器
-
「Modified Laroche Bayer Demosaicing Algorithm 」
範例 - 資源最佳化的 Laroche Bayer Demosaicing 濾波器
-
範例 - Logic Analyzer:一種便捷且類似示波器的訊號量測與分析方式。
-
範例 - 計算兩張連續影像之間的差異。 系統會對這些差異進行閾值處理,並透過 DMA 通道輸出。
-
「High Dynamic Range and Low Dynamic Range Example Using Camera Response Function」
範例 - 根據 Debevec 的 High Dynamic Range
-
'High Dynamic Range and Low Dynamic Range Example with a Weighted Linear Ansatz'
範例 - 採用 Linear Ansatz 的 High Dynamic Range
-
範例 - 一種 High Speed 且強固的雷射線偵測演算法。 此演算法可決定重心座標以取得亞像素解析度結果。
-
範例 - 移動平均 - 迴圈
-
範例 - 使用迴圈的 Depth From Focus
-
範例 - Auto Exposure:自動調整 Exposure Time
-
範例 - 此範例展示了 2D Shading Correction 的實作。 校正值會儲存在畫面擷取卡 RAM 中。 該 Applet 會執行高精度的偏移與增益校正。
-
'使用 RamLUT Operator 進行 2D Shading Correction / 平場校正'
範例 - 此範例顯示了 2D Shading Correction 的實作。 校正值儲存在 operator RamLUT 中。 此 applet 執行高精確度的位移和增益校正。
-
「imaFlex CXP-12 Quad Platform 上的 DMAFromPC 運算子範例」
範例 - 以 Shading Correction 為例示範如何使用此運算子

![[提示]](../common/images/admon/tip.png)




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





上一頁

