Operator SYNC

Operator Library: Synchronization

運算子 SYNC 會對所有輸入鏈路執行時間與影像尺寸的同步。 需進行同步的鏈路數量,是在運算子實例化時指定的。 所有輸出鏈路上的輸出影像皆為同步的,也就是說,它們在同一 時間輸出,且均具有相同的影像尺寸。 因此,此運算子會將非同步鏈路同步化,使其成為 O-同步, 並可應用於 O 型VisualApplets 運算子網路中。

此運算子不支援空行或空框。

若遇到混合域同步的情況(例如 2D 與 1D 及 0D 串流), 此運算子會將輸出連結轉換為最高輸入域。 當使用 SYNC 將 2D 連結與 1D 連結同步時,兩個輸出連結都會被設定為 2D 格式。 若 1D 連結提供的行數不足,系統將發出錯誤訊息。 當使用此運算子將 1D 連結與 0D 連結同步時,所有輸出連結均將採用 1D 格式。 在此情況下,若 0D 連結提供的像素數不足,系統將發出錯誤訊息。

若輸入影像的尺寸各不相同,該運算子會將影像進行同步處理,使所有輸出影像 皆具有相同的尺寸。

[提示] 同步規則

在使用 SYNC 運算子之前,請務必確保您已充分理解所有同步規則。 《使用者手冊》以及《基礎知識與範例》中皆詳細說明了這些同步規則,請參閱:

以下將分別說明時間同步與影像尺寸同步。

The Timing Synchronization

在傳輸像素的過程中,可能會因流量控制或鏈路頻寬超過 影像來源的頻寬而產生暫停。 上圖顯示了針對 2 條鏈路進行時間同步的方式。兩條輸入鏈路的時序各不相同。 然而,輸出鏈路上的資料是同步的,也就是說,所有鏈路上的像素都會在同一時間輸出。

此運算子對所有輸入連結的作用如同閥門: 除非所有輸入端皆出現有效像素,否則輸入連結將保持關閉狀態。 此時,該運算子會將所有輸入端的像素轉發至輸出端,也就是開啟閥門。

Image Dimension Synchronization

SYNC 運算子能夠使用不同的影像協定(VALT_IMAGE2D、VALT_LINE1D 或 VALT_PIXEL0D)來同步影像。 以下三張圖示範了不同影像協定的部分影像。

  • 2D

    2D 圖像具有有限的高度 H 和有限的寬度 W。 圖中顯示的第一張圖像是一張規則的 2D 圖像。第二張圖像則是一張不規則的 2D 圖像,其各條線 的長度各不相同。

  • 1D

    一維線條具有有限的寬度 W,但高度為無限大。 此類影像通常是在線掃描應用中產生的。 同樣地,圖中所示的第二張影像具有不同的線段長度。

  • 0D

    0D 資料流沒有寬度或高度。這些資料流屬於無限資料流。

若輸入鏈結上的影像尺寸不同,即 寬度(或行長)與高度不同,則會套用影像尺寸同步功能。 影像尺寸同步可確保輸出端的全部影像均具有相同的尺寸。 SYNC 運算子支援兩種同步模式:同步至最小影像(SyncToMin)以及同步 至最大影像(SyncToMax)。 您可透過參數SyncMode 選擇同步模式。 SyncToMin 模式會將較大的影像裁切,使其符合最小影像的尺寸。 SyncToMax 模式則會將較小的影像擴展,使其符合最大影像的尺寸。 缺失的像素將以虛擬零像素(黑色像素)填補。 將這兩種模式與三種不同的影像範圍結合,可產生以下基本的同步組合:

2D to 2D SyncToMin

2D to 2D SyncToMax

填充像素為零像素。

1D to 1D SyncToMin

1D to 1D SyncToMax

填充像素為零像素。

0D to 0D SyncToMin / SyncToMax

0D 影像之間的同步屬於純粹的時間同步,因為 0D 影像沒有影像維度。

2D to 1D SyncToMin

SyncToMin 功能用於將 2D 影像同步為 1D 影像,其會針對影像寬度進行尺寸同步。 輸出影像會保留原始 2D 影像的影像高度。1D 線流會被分割成多個影像,這些影像的 高度與原始 2D 影像相同。

2D to 1D SyncToMax

SyncToMax 針對 2D 至 1D 影像的同步功能,會對影像的寬度進行尺寸同步。 輸出影像會保留輸入 2D 影像的影像高度。1D 線流會被分割成多個影像,這些影像的 高度與 2D 影像相同。

2D to 0D SyncToMin / SyncToMax

由於 0D 資料流沒有形狀,因此 2D 至 0D 的同步僅需簡單地繞過這兩條鏈路即可。 當然,SYNC 運算子仍會執行時序同步 對於此組合而言,SyncToMin 與 SyncToMax 運算之間並無差異。

1D to 0D SyncToMin / SyncToMax

由於 0D 資料流沒有形狀,因此 1D 至 0D 的同步操作僅需簡單地繞過這兩條鏈路即可。 當然,SYNC 運算子仍會執行時序同步 對於此組合而言,SyncToMin 與 SyncToMax 操作之間並無差異。

2D to 1D to 0D SyncToMin / SyncToMax

此操作是 2D 轉 1D、2D 轉 0D 以及 1D 轉 0D 操作的組合。 2D 影像與 1D 線流在線長上保持同步。 1D 連結必須提供至少與 2D 影像所含行數相同的行數。 此外,0D 連結必須提供至少與 2D 轉 1D 同步所產生結果的像素數相同的像素數。 若這兩個條件皆滿足,運算子將輸出結果。

[注意] 注意

警告:若要模擬混合運作模式(例如 2D 轉 1D、1D 轉 0D 或這三者的任何組合),必須滿足以下 條件:

  1. 高度無限但寬度有限的鏈路(即一維鏈路)必須至少包含參與同步的所有二維通道中的最大(SyncToMax)/最小 (SyncToMin) 行數。

  2. 寬度和高度皆為無窮大的連結(即 0D 連結)必須至少提供所有 2D 至 2D 及 2D 至 1D 運算所能產生的最大(SyncToMax)/最小(SyncToMin) 像素數量 。

  3. 除非滿足某個特殊條件,否則無法針對混合域同步進行影像序列的模擬, 因為一條無限直線無法具有沿直線的序列,否則它就不再是無限的了。 高度的情況亦同。 若高度為有限值,則這並非一維連結,而是二維連結。 若要在所有連結上模擬影像序列,零維通道的像素數量必須與 進行二維至一維同步後的像素數量完全相同。 1D 通道上的行數必須與 2D 至 1D 同步後的結果完全相同。 多餘的行(1D)或多餘的像素(0D)將不會轉移到下一組影像序列中。

有關各種影像協定的更多資訊,請參閱〈影像協定、影像尺寸與資料結構〉。

I/O Properties

Property Value
Operator Type M
Input Links I[0],資料輸入
I[k],資料輸入
Output Link O[k],資料輸出

Supported Link Format

Link Parameter Input Link I[0] Input Link I[k] 輸出連結 O[k]
Bit Width [1, 64]1 [1, 64]2 與 I[k] 相同
Arithmetic {unsigned, signed} {unsigned, signed} 與 I[k] 相同
Parallelism any 與 I[0] 相同 與 I[0] 相同
Kernel Columns any any 與 I[k] 相同
Kernel Rows any any 與 I[k] 相同
Img Protocol {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D} {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D} auto3
Color Format any any 與 I[k] 相同
Color Flavor any any 與 I[k] 相同
Max. Img Width any any auto4
Max. Img Height any any auto5

1 2

無號輸入的 Bit Width 範圍為 [1, 64]。 有號輸入的範圍為 [2, 64]。 無號彩色輸入的範圍為 [3, 63],有號彩色輸入的範圍為 [6, 63]。

3

若至少有一個輸入為 VALT_IMAGE2D,則輸出影像協定為 VALT_IMAGE2D; 否則,若至少有一個輸入為 VALT_LINE1D,則輸出影像協定為 VALT_LINE1D。 若所有輸入皆為 VALT_PIXEL0D,則輸出影像協定為 VALT_PIXEL0D。

4

若參數SyncMode設定為 SyncToMin, 則輸出影像的最大寬度即為所有輸入影像最大寬度中的最小值。 若參數設定為 SyncToMax,則輸出影像的最大寬度即為所有輸入影像最大寬度中的最大值。

5

若參數SyncMode設定為 SyncToMin 則輸出影像的最大高度即為所有輸入影像最大高度中的最小值。 若參數設定為 SyncToMax,則輸出影像的最大高度即為所有輸入影像最大高度中的最大值。

Synchronous and Asynchronous Inputs

  • 所有輸入之間均為非同步的,亦即它們可能由不同的 M 型運算子,透過任意的 O 型運算子網路所提供。

Parameters

SyncMode
Type 靜態參數
Default SyncToMin
Range {SyncToMin, SyncToMax}

此參數用以指定運作模式: 在「SyncToMin」模式下,系統會將所有輸入影像同步至最小的影像,也就是將較大的影像裁切。 在「SyncToMax」模式下,系統會將所有較小的影像擴展至最大的影像。 請參閱上述說明。

Examples of Use

以下範例展示了運算子 SYNC 的用法: