오퍼레이터 라이브러리: Synchronization
SYNC 오퍼레이터는 모든 입력 링크의 타이밍 및 이미지 크기 동기화를 수행합니다. 동기화해야 하는 링크 수는 오퍼레이터 인스턴스화 시 지정됩니다. 모든 출력 링크의 출력 이미지는 동기화되며, 즉 동일한 시간에 출력되고 모두 동일한 이미지 크기를 갖습니다. 따라서 이 오퍼레이터는 비동기 링크를 동기화하여 O-동기화 상태로 만들고 O-타입 VisualApplets 오퍼레이터 네트워크에서 사용할 수 있도록 합니다.
이 오퍼레이터는 빈 라인이나 빈 프레임을 지원하지 않습니다.
2D와 1D 및 0D 스트림 간의 혼합 도메인 동기화의 경우, 오퍼레이터는 출력 링크를 가장 높은 입력 도메인으로 변환합니다. SYNC를 사용하여 2D 링크와 1D 링크를 동기화하는 경우, 두 출력 링크 모두 2D 형식으로 설정됩니다. 1D 링크가 충분한 라인을 제공하지 않으면 에러가 발생합니다. 오퍼레이터를 사용하여 1D 링크와 0D 링크를 동기화하는 경우, 모든 출력 링크가 1D 형식이 됩니다. 이 경우 0D 링크가 충분한 픽셀을 제공하지 않으면 에러가 발생합니다.
입력 이미지의 크기가 서로 다른 경우, 오퍼레이터는 모든 출력 이미지의 크기가 동일해지도록 이미지를 동기화합니다.
![]() |
동기화 규칙 |
|---|---|
|
SYNC 오퍼레이터를 사용하기 전에 모든 동기화 규칙을 이해하고 있는지 확인하십시오. 사용 설명서 및 기초와 예제에서 동기화 규칙을 자세히 설명하고 있습니다. 다음을 참조하십시오:
|
타이밍 동기화와 이미지 크기 동기화 모두에 대해 다음에서 설명합니다.

픽셀 전송 중 흐름 제어 또는 이미지 소스의 대역폭을 초과하는 링크 대역폭으로 인해 일시 중지(pause)가 발생할 수 있습니다. 위 그림은 2개의 링크에 대해 시간 동기화가 수행되는 방식을 보여줍니다. 두 입력 링크의 타이밍은 서로 다릅니다. 그러나 출력 링크 데이터는 동기화되어, 즉 모든 링크에서 픽셀이 동시에 출력됩니다.
이 오퍼레이터는 모든 입력 링크에 대한 밸브 역할을 합니다: 모든 입력에 유효한 픽셀이 존재할 때까지 입력 링크가 닫혀 있습니다. 그 후 오퍼레이터는 모든 입력의 픽셀을 출력으로 전달하며, 즉 밸브를 엽니다.
SYNC 오퍼레이터는 VALT_IMAGE2D, VALT_LINE1D 또는 VALT_PIXEL0D의 서로 다른 이미지 프로토콜을 사용하여 이미지를 동기화할 수 있습니다. 다음 세 그림은 서로 다른 이미지 프로토콜의 몇 가지 이미지를 보여줍니다.
-
2D

2D 이미지는 유한한 높이 H와 유한한 너비 W를 가집니다. 그림에 표시된 첫 번째 이미지는 일반적인 2D 이미지입니다. 두 번째 이미지는 라인 길이가 서로 다른 불규칙한 2D 이미지입니다.
-
1D

1D 라인은 유한한 너비 W를 가지지만 높이는 무한합니다. 이러한 유형의 이미지는 일반적으로 라인 스캔 애플리케이션에서 생성됩니다. 마찬가지로 그림에 표시된 두 번째 이미지는 라인 길이가 서로 다릅니다.
-
0D

0D 스트림은 너비나 높이가 없습니다. 이러한 스트림은 무한 데이터 스트림입니다.
이미지 크기 동기화는 입력 링크의 이미지 크기가 서로 다를 때, 즉 너비(또는 라인 길이)와 높이가 다를 때 적용됩니다. 이미지 크기 동기화는 출력의 모든 이미지가 동일한 크기를 갖도록 보장합니다. SYNC 오퍼레이터는 가장 작은 이미지에 맞추는 동기화(SyncToMin)와 가장 큰 이미지에 맞추는 동기화(SyncToMax)의 두 가지 동기화 모드를 지원합니다. SyncMode 파라미터를 통해 동기화 모드를 선택합니다. SyncToMin 모드는 가장 작은 이미지에 맞추기 위해 더 큰 이미지를 자릅니다. SyncToMax 모드는 가장 큰 이미지에 맞추기 위해 작은 이미지를 확장합니다. 누락된 픽셀은 더미 제로 픽셀(검은색 픽셀)로 채워집니다(Fill). 이 두 모드를 세 가지 서로 다른 이미지 도메인과 결합하면 다음과 같은 기본 동기화 조합이 가능합니다:

2D-1D 이미지 간의 SyncToMin 동기화는 너비의 이미지 크기 동기화를 수행합니다. 출력 이미지는 입력 2D 이미지의 이미지 높이를 유지합니다. 1D 라인 스트림은 2D 이미지와 동일한 높이를 가진 이미지로 분할됩니다.

2D-1D 이미지 간의 SyncToMax 동기화는 너비의 이미지 크기 동기화를 수행합니다. 출력 이미지는 입력 2D 이미지의 이미지 높이를 유지합니다. 1D 라인 스트림은 2D 이미지와 동일한 높이를 가진 이미지로 분할됩니다.

0D 데이터 스트림에는 형태가 없으므로 2D-0D 동기화는 두 링크의 단순한 바이패스입니다. 물론 SYNC 오퍼레이터는 여전히 타이밍 동기화를 수행합니다. 이 조합에서는 SyncToMin과 SyncToMax 동작 간에 차이가 없습니다.

0D 데이터 스트림에는 형태가 없으므로 1D-0D 동기화는 두 링크의 단순한 바이패스입니다. 물론 SYNC 오퍼레이터는 여전히 타이밍 동기화를 수행합니다. 이 조합에서는 SyncToMin과 SyncToMax 동작 간에 차이가 없습니다.
이 동작은 2D-1D, 2D-0D 및 1D-0D 동작의 조합입니다. 2D 이미지와 1D 라인 스트림은 라인 길이로 동기화됩니다. 1D 링크는 2D 이미지가 포함하는 라인 수 이상의 라인을 제공해야 합니다. 또한 0D 링크는 2D-1D 동기화 결과가 생성하는 픽셀 수 이상의 픽셀을 제공해야 합니다. 이 두 조건을 모두 충족하면 오퍼레이터가 결과를 출력합니다.
![]() |
주의 |
|---|---|
|
경고: 2D-1D 또는 1D-0D와 같은 혼합 동작 모드나 세 가지 모두의 조합을 시뮬레이션하려면 다음 조건을 충족해야 합니다:
|
다양한 이미지 프로토콜에 대한 자세한 내용은 'Image Protocols, Image Dimensions and Data Structure'에서 확인할 수 있습니다.
| Property | Value |
|---|---|
| Operator Type | M |
| Input Links | I[0], 데이터 입력 I[k], 데이터 입력 |
| 출력 링크 | O[k], 데이터 출력 |
|
부호 없는 입력의 경우 입력 Bit Width 범위는 [1, 64]입니다. 부호 있는 입력의 경우 범위는 [2, 64]입니다. 부호 없는 컬러 입력의 경우 범위는 [3, 63]이고 부호 있는 컬러의 경우 범위는 [6, 63]입니다. |
|
|
입력 중 하나 이상이 VALT_IMAGE2D인 경우 출력 이미지 프로토콜은 VALT_IMAGE2D이며, 그렇지 않고 입력 중 하나 이상이 VALT_LINE1D인 경우 VALT_LINE1D입니다. 모든 입력의 VALT_PIXEL0D는 이미지 프로토콜 VALT_PIXEL0D를 가집니다. |
|
|
파라미터 SyncMode가 SyncToMin인 경우, 최대 출력 이미지 너비는 입력 최대 이미지 너비 중 최솟값입니다. 파라미터가 SyncToMax로 설정된 경우, 최대 출력 이미지 너비는 입력 최대 이미지 너비 중 최댓값입니다. |
|
|
파라미터 SyncMode가 SyncToMin인 경우, 최대 출력 이미지 높이는 입력 최대 이미지 높이 중 최솟값입니다. 파라미터가 SyncToMax로 설정된 경우, 최대 출력 이미지 높이는 입력 최대 이미지 높이 중 최댓값입니다. |
동기식 및 비동기식 입력
- 모든 입력은 서로 비동기적입니다. 즉, 임의의 O형 오퍼레이터 네트워크를 통해 서로 다른 M형 오퍼레이터로부터 소스를 제공받을 수 있습니다.
| SyncMode | |
|---|---|
| Type | static parameter |
| Default | SyncToMin |
| Range | {SyncToMin, SyncToMax} |
|
이 파라미터는 작동 모드를 지정합니다. SyncToMin 모드에서 오퍼레이터는 모든 입력 이미지를 가장 작은 이미지에 동기화하여 더 큰 이미지를 잘라냅니다. SyncToMax 모드에서 오퍼레이터는 모든 더 작은 이미지를 가장 큰 이미지에 맞게 확장합니다. 위의 설명을 참조하십시오. |
|
SYNC 오퍼레이터의 사용법은 다음 예시에 나와 있습니다.
-
'M-type Operators with Multiple Inputs'
동기화 규칙 - SYNC 오퍼레이터 사용법
-
동기화 - 교착 상태(Deadlock) 방지.
-
'두 카메라 소스의 이미지 데이터 결합 - 오버레이 블렌드 구축'
예시 - 두 카메라 동기화.
-
예제 - 히스토그램 임계값 처리
-
'Bayer Demosaicing Algorithm According to Laroche'
예제 - Laroche Bayer 디모자이킹 필터
-
'Modified Laroche Bayer Demosaicing Algorithm '
예제 - 리소스가 최적화된 Laroche Bayer 디모자이킹 필터
-
예시 - Logic Analyzer: 오실로스코프와 같은 신호 측정 및 분석을 편리하게 수행하는 방법입니다.
-
예제 - 연속된 두 이미지 간의 차이를 계산합니다. 차이 값에 임계값이 적용되어 DMA 채널을 통해 출력됩니다.
-
'High Dynamic Range and Low Dynamic Range Example Using Camera Response Function'
Examples - High Dynamic Range According to Debevec
-
'High Dynamic Range and Low Dynamic Range Example with a Weighted Linear Ansatz'
Examples - High Dynamic Range with Linear Ansatz
-
예시 - 고속 및 고견고성 레이저 라인 감지 알고리즘. 이 알고리즘은 서브픽셀 해상도 결과를 얻기 위해 무게 중심(center of gravity) 좌표를 결정합니다.
-
'동적 이미지 수에 대해 롤링 평균(rolling average)이 적용됩니다.'
예제 - 롤링 평균 - 루프
-
'루프를 이용한 초점 심도(Depth From Focus)'
예제 - 루프를 이용한 초점 심도(Depth From Focus)
-
예시 - Auto Exposure: Exposure Time의 자동 조절
-
예제 - 이 예제는 2D Shading Correction의 구현을 보여줍니다. 보정 값은 프레임 그래버 RAM에 저장됩니다. 이 앱릿은 고정밀 오프셋 및 게인 보정을 수행합니다.
-
'RamLUT operator를 사용한 2D Shading Correction / Flat Field Correction'
예시 - 이 예시는 2D Shading Correction 구현을 보여줍니다. 보정 값은 RamLUT operator에 저장됩니다. Applet은 고정밀 오프셋 및 게인 보정을 수행합니다.
-
'imaFlex CXP-12 Quad 플랫폼에서의 DMAFromPC 오퍼레이터 예시'
예시 - Shading Correction 예제를 사용하여 오퍼레이터를 사용하는 방법 시연

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




![[주의]](../common/images/admon/caution.png)





이전

