Operator Library: Memory
이 연산자는 버퍼링된 데이터의 임의 읽기(random read)를 지원합니다. 프레임 데이터는 링크 I를 통해 연산자로 전송됩니다. 데이터의 임의 읽기는 주소를 RColA(읽기 열 주소) 및 RRowA(읽기 행 주소) 포트로 전송하여 수행할 수 있습니다. 연산자는 이 주소를 사용하여 지정된 좌표에 따라 프레임 데이터를 읽습니다. 결과 출력 프레임은 주소 입력의 이미지 크기를 갖습니다. RAM 유형의 VisualApplets 리소스가 1개 필요합니다. 자세한 내용은 'Allocation of Device Resources'를 확인하십시오. 연산자의 레이턴시에 대한 정보는 Table 46, 'Individual Latencies of the Operators in Library Memory'를 참조하십시오.
FrameBufferRandomRead(프레임 버퍼 임의 읽기) 연산자는 Frame Grabber RAM (DRAM)에 이미지 스트림을 버퍼링합니다. RAM 유형의 VisualApplets 리소스가 1개 필요합니다.
오퍼레이터에는 두 가지 상태가 있습니다.
-
쓰기 상태(Write State): 입력 이미지가 버퍼에 저장됩니다. 연산자는 FIFO 방식으로 작동합니다. 사용 가능한 Memory가 충분하면 여러 이미지를 버퍼에 저장할 수 있습니다.
-
읽기 상태(Read State): 이미지가 Memory에 완전히 저장된 후, 입력 RColA 및 RRowA에 지정된 주소를 사용하여 Memory를 읽습니다. 주소 개수와 주소 링크 이미지 크기에 따라 이미지 출력 너비와 높이가 정의됩니다.
이미지 데이터 입력과 주소 입력은 서로 동기화되지 않습니다. 이미지 크기가 서로 다를 수 있습니다. 주소 입력 RColA와 RRowA는 모두 O-동기화(O-synchronous)되어야 합니다.
입력 링크의 타이밍에 유의하십시오. 주소 입력은 버퍼링 없이 데이터 링크 입력 I와 동일한 연산자로부터 소스를 공급받아서는 안 됩니다. 이미지 데이터를 연산자에 쓰는 동안에는 현재 프레임을 읽기 위한 주소를 수신할 수 없기 때문입니다. 프레임이 버퍼에 완전히 저장된 경우에만 주소를 수신할 수 있습니다. 많은 경우 주소용 이미지를 생성하기 위해 CreateBlankImage 연산자가 사용됩니다.
이 연산자는 대용량의 비-FPGA Memory를 사용합니다. 저장해야 할 프레임이나 라인이 작은 경우에는 FrameMemoryRandomRd 또는 LineMemoryRandomRd 연산자 사용을 고려하십시오.
버퍼의 채워진 수준을 측정하기 위해 연산자는 FillLevel과 Overflow의 두 가지 파라미터를 제공합니다. FillLevel은 RAM이 채워진 백분율을 보여줍니다. Overflow 파라미터는 FillLevel이 100%에 가깝거나 100%이고 버퍼에 저장될 다음 이미지가 RAM 용량을 초과할 때 1로 설정됩니다. 오버플로가 발생하면 입력 프레임은 폐기됩니다. 사용자는 오버플로 파라미터를 폴링해야 합니다. 오버플로 상태의 지속 시간이 매우 짧을 수 있으므로 연산자의 폴링 주기 사이에 발생할 수도 있습니다.
InfiniteSource 파라미터는 연산자가 카메라에 직접 연결되어 있는지 또는 다른 Memory 연산자와 시퀀스로 연결되어 있는지 지정하는 데 사용됩니다. 자세한 내용은 'Infinite Sources / Connecting Cameras'를 확인하십시오.
Operator 제한 사항
-
빈 프레임은 지원되지 않습니다.
-
라인 길이가 다른 이미지는 지원되지 않습니다.
-
주소 포트의 Parallelism은 2로 설정해야 합니다.
-
I.MaxImgWidth * I.MaxImgHeight는 사용 가능한 RAM 크기(2^RamAddressWidth)를 초과해서는 안 됩니다.
Frame Grabber RAM (DRAM)을 사용하는 연산자를 통과하는 이론적 대역폭[bits/second]은 다음 공식에 따라 계산됩니다.

그러나 실제 대역폭은 DRAM 효율로 인해 항상 이론적 대역폭보다 낮습니다.
연산자를 통과하는 최대 대역폭은 Bit Width와 Parallelism의 곱이 내부 RAM Port Width와 같을 때 도달됩니다.
![]() |
플랫폼별 값 |
|---|---|
|
RAM Port Width와 System Clock은 플랫폼별로 다릅니다. 개별 플랫폼에 대한 자세한 내용은 Device Resources를 참조하세요. |
| Property | Value |
|---|---|
| Operator Type | M |
| Input Links | I, 이미지 데이터 입력 RColA, I 위치의 픽셀에 대한 열 주소 읽기 RRowA, I 위치의 픽셀에 대한 행 주소 읽기 |
| Output Link | O, 데이터 입력 |
동기식 및 비동기식 입력
- 동기 그룹: RColA 및 RRowA
- 입력 I는 그룹과 비동기적입니다.
|
입력 Bit Width의 범위:
입력 Bit Width는 네이티브 ram 데이터 너비를 초과해서는 안 됩니다. 자세한 내용은 Device Resources를 확인하십시오. |
|
|
열 주소의 Bit Width는 다음과 같습니다: ![]() |
|
|
행 주소의 Bit Width는 다음과 같습니다: ![]() |
|
|
연산자를 효율적으로 사용하려면 주소 포트의 Parallelism을 2로 설정해야 합니다. |
|
|
I.BitWidth x I.Kernel Columns x I.Kernel Rows <= RamDataWidth. |
|
|
I.MaxImgWidth * I.MaxImgHeight는 사용 가능한 RAM 크기(2^RamAddressWidth)를 초과해서는 안 됩니다. |
| RamDataWidth | |
|---|---|
| Type | static write parameter |
| Default | 해당 없음 |
| Range | 정수 |
|
이 파라미터는 RAM 인터페이스에서 사용할 수 있는 데이터 비트 수를 제공합니다. 입력 및 출력의 최대 비트 수입니다. |
|
| RamAddressWidth | |
|---|---|
| Type | static write parameter |
| Default | 해당 없음 |
| Range | 정수 |
|
이 파라미터는 사용 가능한 주소 비트 수를 제공합니다. 이는 최대 허용 이미지 크기와 최대 주소 너비를 계산하는 데 도움이 됩니다. |
|
| FillLevel | |
|---|---|
| Type | 동적 읽기 파라미터 |
| Default | 0 |
| Range | [0%, 100%] |
|
이 파라미터는 RAM의 채워진 수준을 제공합니다. |
|
| Overflow | |
|---|---|
| Type | 동적 읽기 파라미터 |
| Default | 0 |
| Range | [0, 1] |
|
이 파라미터는 버퍼 오버플로우를 나타냅니다. |
|
| InfiniteSource | |
|---|---|
| Type | static parameter |
| Default | ENABLED |
| Range | {ENABLED, DISABLED} |
|
이 파라미터는 카메라 연산자와 같은 infinite source 연산자에 대한 지원을 활성화합니다. 자세한 내용은 'Infinite Sources / Connecting Cameras'를 참조하십시오. |
|
FrameBufferRandomRead 연산자의 사용법은 다음 예시에 나와 있습니다.
-
'Color Plane Separation Option 5 - Sequential Output with Advances Processing'
컬러 평면 분리 예시. RGB 입력은 구성 요소별로 분리되어 하나의 DMA 채널을 통해 순차적으로 출력됩니다. 분리는 평행한 워드로 동일한 구성 요소를 수집하고 FrameBufferRandomRead로 읽는 방식으로 수행됩니다.
-
'Geometric Transformation Using FrameBufferRandomRead'
Examples- Geometric Transformation using FrameBufferRandomRead
-
'Geometric Transformation and Distortion Correction'
Examples- PixelReplicator를 이용한 Geometric Transformation and Distortion Correction
-
Examples- Distortion Correction
-
예제 - 라인 스캔 이미지 Scaling
-
예제 - 라인 스캔 이미지 Scaling
-
'Image Composition Using Exposure Fusion'
Examples - ExposureFusion

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








이전

