Operator Library: Memory
이 연산자는 FPGA 기반 메모리에 비교적 적은 수의 픽셀을 버퍼링하는 데 사용할 수 있습니다. 이 연산자는 RAM 유형의 VisualApplets 리소스가 필요하지 않습니다. 대신 FPGA 내부 메모리를 사용합니다. 이 메모리는 FPGA 내부 블록 RAM, FPGA 분산형 RAM(LUT RAM) 또는 UltraRAM 메모리(URAM은 imaFlex CXP-12 Quad 및 imaFlex CXP-12 Penta 플랫폼에서만 지원됨) 중 하나일 수 있습니다. 둘 중 어떤 것을 사용할지는 ImplementationType 파라미터를 통해 수동으로 설정하거나 연산자 구성에 따라 연산자가 자동으로 선택합니다.
ImageFifo 연산자는 동기화 전에 라인이나 픽셀을 버퍼링하는 데 자주 사용됩니다. FPGA 내부 메모리가 제한되어 있으므로, 사용 가능한 리소스를 초과하지 않고 전체 해상도의 프레임을 버퍼링하기는 어렵습니다.
연산자 지연 시간에 대한 정보는 '표 46: Library Memory의 연산자별 지연 시간'을 참조하십시오.
EntitiesToStore 및 EntityType 파라미터는 최대 사용 가능한 버퍼 크기를 정의합니다. 이 연산자는 선입선출(FIFO) 메모리입니다. 모든 입력 데이터는 즉시 출력으로 전달됩니다. 그러나 후속 연산자가 입력 대역폭을 처리할 수 없어 출력이 차단되는 등의 이유로 출력이 막히면 연산자가 데이터를 저장합니다. 따라서 메모리는 연산자가 데이터를 출력할 수 없는 경우에만 채워집니다.
버퍼의 Fill 레벨을 측정하기 위해 연산자는 FillLevel 파라미터를 제공합니다. FillLevel은 Fifo의 채워진 비율(%)을 보여줍니다.
InfiniteSource 파라미터는 연산자가 카메라에 직접 연결되어 있는지 또는 다른 메모리 연산자와 시퀀스로 연결되어 있는지 지정하는 데 사용됩니다. InfiniteSource가 비활성화된 경우 연산자는 오버플로 상태에 빠질 수 없습니다. 자세한 내용은 'Infinite Sources / Connecting Cameras'를 확인하십시오.
Parameter ImplementationType을 사용하면 연산자가 사용할 하드웨어 Memory를 지정할 수 있습니다.
| Property | Value |
|---|---|
| Operator Type | M |
| Input Link | I, image data input |
| Output Link | O, data output |
| EntitiesToStore | |
|---|---|
| Type | static parameter |
| Default | 1 |
| Range | any |
|
이 파라미터는 최대 몇 개의 픽셀, 라인 또는 프레임을 저장해야 하는지 정의합니다. 엔티티 유형은 EntityType 파라미터를 사용하여 정의됩니다. |
|
| EntityType | |
|---|---|
| Type | static parameter |
| Default | FRAME |
| Range | {FRAME, LINE, PIXEL} |
|
이 파라미터는 저장할 엔티티의 유형을 정의합니다. 이 파라미터는 EntityType의 EntitiesToStore 단위를 버퍼링할 수 있습니다. FRAME은 입력 링크 이미지 프로토콜이 VALT_IMAGE2D인 경우에만 선택할 수 있습니다. LINE은 프로토콜 VALT_LINE2D 및 VALT_LINE1D용으로 선택할 수 있으며, PIXEL은 항상 활성화됩니다. |
|
| ImplementationType | |||||||
|---|---|---|---|---|---|---|---|
| Type | static write parameter | ||||||
| Default | AUTO | ||||||
| Range | (AUTO, BRAM, LUTRAM, URAM) | ||||||
|
ImplementationType 파라미터는 연산자의 구현 전략, 즉 연산자를 구현하는 데 어떤 Memory 요소가 사용되는지에 영향을 미칩니다. 다음 값 중 하나를 선택할 수 있습니다. AUTO: 연결된 링크의 파라미터 설정을 바탕으로 최적의 구현 전략이 자동으로 선택됩니다. BRAM: 연산자가 FPGA의 Block RAM을 사용합니다.
LUTRAM: 연산자가 FPGA의 LUT RAM을 사용합니다. URAM: 연산자가 FPGA의 UltraRAM을 사용합니다.
|
|||||||
| FillLevel | |
|---|---|
| Type | 동적 읽기 파라미터 |
| Default | 0 |
| Range | [0%, 100%] |
|
이 파라미터는 버퍼의 Fill 레벨을 제공합니다. 연산자는 FPGA 리소스를 효율적으로 사용합니다. 일부 구성에서는 버퍼에 100%를 초과하여 저장하는 것이 가능합니다. |
|
| InfiniteSource | |
|---|---|
| Type | static parameter |
| Default | ENABLED |
| Range | {ENABLED, DISABLED} |
|
이 파라미터는 카메라 연산자와 같은 무한 소스 연산자에 대한 지원을 활성화합니다. 자세한 내용은 'Infinite Sources / Connecting Cameras'를 참조하십시오. |
|
ImageFifo 연산자의 사용법은 다음 예시와 같습니다:
-
동기화 - 데드락 방지.
-
예시 - 라인 복제를 위해 하나의 라인을 버퍼링하는 연산자 사용.
-
'Bayer Demosaicing Algorithm According to Laroche'
예시 - Laroche 베이어 디모자이킹 필터
-
'Modified Laroche Bayer Demosaicing Algorithm '
예시 - 리소스가 최적화된 Laroche 베이어 디모자이킹 필터
-
컬러 평면의 순차적 DMA 출력. 컬러 분리는 ImageBufferMultiROI 연산자를 사용하여 수행됩니다. 추가적인 사전 정렬(pre-sorting)을 통해 대역폭과 리소스가 최적화됩니다.
-
예제 - 이미지 치수가 측정되며 디자인 흐름을 분석하는 데 사용할 수 있습니다.
-
예제 - 하드웨어에서 내부 데이터 흐름 제어를 디버깅하고 보정하기 위한 목적입니다.
-
예제 - 이미지 스트림을 분할하고 병합하는 방법을 보여줍니다. 이미지에 트레일러를 추가합니다.
-
예제 - 라인 스캔 이미지 Scaling
-
'Camera Response Function을 이용한 High Dynamic Range 및 Low Dynamic Range 예제'
예제 - Debevec 방식에 따른 High Dynamic Range
-
'가중선형 안자츠를 적용한 High Dynamic Range 및 Low Dynamic Range 예제'
예제 - 선형 안자츠를 적용한 High Dynamic Range
-
예제 - 이동 평균 - 루프


![[참고]](../common/images/admon/note.png)
이전

