Operator Library: Memory
이 연산자는 FPGA 기반 메모리에 비교적 적은 수의 픽셀을 버퍼링하는 데 사용할 수 있습니다. 이 연산자는 RAM 유형의 ‘ VisualApplets ’ 리소스를 필요로 하지 않습니다. 대신, 이 연산자는 FPGA 내부 메모리를 사용합니다. 이는 다음 중 하나일 수 있습니다. FPGA 내부 블록 RAM이거나, FPGA 분산 RAM(LUT RAM), 또는 UltraRAM 메모리 (URAM은 imaFlex CXP-12 Quad 및 imaFlex CXP-12 Penta 플랫폼에서만 사용 가능합니다). 이 두 가지 중 어느 것을 사용할지는 Parameter ImplementationType을 통해 수동으로 설정하거나, 운영자의 구성에 따라 운영자가 자동으로 선택할 수 있습니다.
ImageFifo 연산자는 동기화 전에 라인이나 픽셀을 버퍼링하는 데 자주 사용됩니다. FPGA 내부 메모리의 용량이 제한적이기 때문에, 사용 가능한 리소스를 초과하지 않고는 전체 해상도의 프레임을 버퍼링하기 어렵습니다.
operator의 지연 시간에 대한 정보는 Table 46, 'Individual Latencies of the Operators in Library Memory'를 참조하십시오.
EntitiesToStore 및 EntityType 매개변수는 사용 가능한 최대 버퍼 크기를 정의합니다. 이 연산자는 선입선출(FIFO) 메모리 방식입니다. 모든 입력 데이터는 즉시 출력으로 전달됩니다. 그러나 후속 연산자가 입력 대역폭을 처리할 수 없는 등의 이유로 출력이 차단된 경우, 이 연산자는 데이터를 저장합니다. 따라서 메모리는 연산자가 데이터를 출력할 수 없는 경우에만 채워집니다.
버퍼의 채움 수준을 측정하기 위해 운영자는 FillLevel 매개변수를 지정합니다. FillLevel은 FIFO의 채움 수준을 백분율로 표시합니다.
InfiniteSource 매개변수는 해당 연산자가 카메라에 직접 연결되어 있는지, 아니면 다른 메모리 연산자와 시퀀스 형태로 연결되어 있는지를 지정하는 데 사용됩니다. InfiniteSource가 비활성화된 경우, 해당 연산자는 오버플로 상태에 빠질 수 없습니다. 자세한 내용은 ‘무한 소스/카메라 연결’을 참조하십시오.
ImplementationType 매개변수를 사용하면 운영자가 사용할 하드웨어 메모리를 지정할 수 있습니다.
| EntitiesToStore | |
|---|---|
| Type | static parameter |
| Default | 1 |
| Range | any |
|
이 매개변수는 최대 저장해야 할 픽셀, 라인 또는 프레임의 수를 정의합니다. 엔티티 유형은 EntityType 매개변수를 사용하여 정의됩니다. |
|
| 엔티티 유형 | |
|---|---|
| Type | static parameter |
| Default | 프레임 |
| Range | {FRAME, LINE, PIXEL} |
|
이 매개변수는 저장할 엔티티의 유형을 정의합니다. 이 매개변수는 EntityType 유형의 EntitiesToStore 개체를 버퍼링할 수 있습니다. FRAME은 입력 링크의 이미지 프로토콜이 VALT_IMAGE2D인 경우에만 선택할 수 있습니다. LINE은 VALT_LINE2D 및 VALT_LINE1D 프로토콜에서 선택할 수 있으며, PIXEL은 항상 활성화되어 있습니다. |
|
| ImplementationType | |||||||
|---|---|---|---|---|---|---|---|
| Type | 정적 쓰기 파라미터 | ||||||
| Default | AUTO | ||||||
| Range | (AUTO, BRAM, LUTRAM, URAM) | ||||||
|
ImplementationType 파라미터는 오퍼레이터의 구현 전략, 즉 오퍼레이터 구현에 어떤 메모리 요소가 사용되는지에 영향을 줍니다. 다음 값 중 하나를 선택할 수 있습니다: AUTO: 연결된 링크의 매개변수화를 기반으로 최적의 구현 전략이 자동으로 선택됩니다. BRAM: 오퍼레이터가 FPGA의 블록 RAM을 사용합니다.
LUTRAM: 이 operator는 FPGA의 LUT RAM을 사용합니다. URAM: 오퍼레이터가 FPGA의 UltraRAM을 사용합니다.
|
|||||||
| FillLevel | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0%, 100%] |
|
이 매개변수는 버퍼의 채움 수준을 지정합니다. 이 연산자는 FPGA 리소스를 효율적으로 사용합니다. 일부 구성에서는 버퍼에 100% 이상의 데이터를 저장할 수 있습니다. |
|
| InfiniteSource | |
|---|---|
| Type | static parameter |
| Default | ENABLED |
| Range | {ENABLED, DISABLED} |
|
이 파라미터는 카메라 오퍼레이터와 같은 무한 소스 오퍼레이터에 대한 지원을 활성화합니다. 자세한 내용은 'Infinite Sources / Connecting Cameras'를 참조하십시오. |
|
다음 예제에서는 ImageFifo 연산자의 사용법을 보여줍니다.
-
동기화 - 교착 상태 방지.
-
예시 - 줄 복제를 위해 한 줄을 버퍼링하는 연산자의 사용.
-
예시 - 라로슈-바이엘 디모자이징 필터
-
예시 - 자원 최적화 라로슈-바이어 디모자이징 필터
-
컬러 플레인의 순차적 DMA 출력. 컬러 분리는 ImageBufferMultiROI 연산자를 사용하여 수행됩니다. 추가적인 사전 정렬(pre-sorting)을 통해 대역폭과 리소스를 최적화합니다.
-
예시 - 이미지 크기가 측정되며 디자인 흐름을 분석하는 데 사용할 수 있습니다.
-
Example - 하드웨어에서 디자인 내부 데이터 흐름 제어를 디버깅하고 가능한 보정을 수행하기 위한 예제입니다.
-
예제 - 이미지 스트림을 분할하고 병합하는 방법을 보여줍니다. 이미지에 트레일러를 추가합니다.
-
Examples - Scaling A Line Scan Image
-
'카메라 응답 함수를 이용한 고동적 범위 및 저동적 범위 예시'
예시 - 데베벡(Debevec) 방식에 따른 고동적 범위(HDR)
-
'가중 선형 접근법을 이용한 고동적 범위 및 저동적 범위 예시'
예시 - 선형 접근법을 이용한 고역동범위(HDR)
-
'동적 이미지 수에 대해 롤링 평균(rolling average)이 적용됩니다.'
예제 - 롤링 평균 - 루프


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

