Operator FrameMemoryRandomRd

Operator Library: Memory

FrameMemoryRandomRd operator는 임의 읽기 액세스를 통해 메모리에 이미지를 버퍼링합니다. 프레임 데이터는 링크 I를 통해 operator로 전송됩니다. 데이터의 임의 읽기는 RColA(읽기 열 주소) 및 RRowA(읽기 행 주소) 포트로 주소를 전송하여 수행할 수 있습니다. operator는 주소를 사용하여 주어진 좌표별로 프레임 데이터를 읽습니다. 결과 출력 프레임은 주소 입력의 이미지 크기를 갖습니다.

필요한 memory 크기는 입력 프레임의 이미지 크기(Max. Img Width 및 Max. Img Height)에 의해 정의됩니다.

연산자 지연 시간에 대한 정보는 '표 46: Library Memory의 연산자별 지연 시간'을 참조하십시오.

이 operator는 두 가지 variant로 구현할 수 있습니다. 즉, 단일 버퍼 구현과 이중 버퍼 구현입니다. 첫 번째 구현은 RAM을 절약하지만 쓰기와 읽기의 시간적 중첩을 허용하지 않습니다. 따라서 쓰기 상태 동안 주소 입력 링크 RColA 및 RRowA가 중지됩니다. 후자의 구현은 RAM을 두 배로 늘리고 입력 링크 I에서 다음 프레임을 수용하는 동시에 마지막 프레임을 임의 읽기할 수 있도록 합니다.

오퍼레이터에는 두 가지 상태가 있습니다.

  1. Write State: 링크 I의 픽셀은 버퍼에 선형으로 저장됩니다. 즉, 픽셀의 좌표가 버퍼의 주소를 형성합니다.

  2. Read State: 입력 RColA 및 RRowA에 제공된 주소를 사용하여 memory를 읽어옵니다. 주소 수와 주소 링크 이미지 크기에 따라 이미지 출력 너비와 높이가 정의됩니다. 예를 들어, 단 하나의 픽셀로 구성된 프레임이 주소 입력으로 입력되면 출력 프레임은 단 하나의 픽셀로만 구성됩니다. 입력 프레임의 다른 픽셀은 폐기됩니다.

이미지 데이터 입력과 주소 입력은 서로 동기화되지 않습니다. 서로 다른 이미지 크기를 가질 수 있습니다. 두 주소 입력 RColA 및 RRowA는 모두 O-동기화되어야 합니다.

입력 링크의 타이밍에 유의하십시오. 주소 입력은 버퍼링 없이 데이터 링크 입력 I와 동일한 operator에서 소스를 가져와서는 안 됩니다. 이미지 데이터를 operator에 쓰는 동안에는 현재 프레임을 읽기 위한 주소를 수용할 수 없기 때문입니다. 프레임이 버퍼에 완전히 저장된 경우에만 주소를 수용할 수 있습니다. 많은 경우 주소용 이미지를 생성하기 위해 CreateBlankImage operator가 사용됩니다.

타이밍은 다음 그림에 시각화되어 있습니다.

이 operator는 FPGA의 내부 블록 RAM Memory를 사용합니다. 따라서 RAM 유형의 VisualApplets 프레임 그래버 리소스가 사용되지 않습니다. FPGA 내부 블록 RAM은 제한되어 있습니다. 전체 해상도 프레임이 FPGA 내부 블록 RAM에 맞지 않을 수 있습니다. 대신 FrameBufferRandomRead operator 사용을 고려하십시오.

Operator 제한 사항

  • 빈 프레임은 지원되지 않습니다.

  • 라인 길이가 다른 이미지는 지원되지 않습니다.

I/O Properties

Property Value
Operator Type M
Input Links I, 이미지 데이터 입력
RColA, I 위치의 픽셀에 대한 열 주소 읽기
RRowA, I 위치의 픽셀에 대한 행 주소 읽기
Output Link O, 데이터 입력

동기 및 비동기 입력

  • 동기 그룹: RColA 및 RRowA
  • 입력 I는 그룹과 비동기적입니다.

Supported Link Format

Link Parameter Input Link I 입력 링크 RColA 입력 링크 RRowA Output Link O
Bit Width [1, 64]1 auto2 auto3 as I
Arithmetic {unsigned, signed} unsigned unsigned as I
Parallelism 1 as I as I as I
Kernel Columns any 1 1 as I
Kernel Rows any 1 1 as I
Img Protocol VALT_IMAGE2D as I as I as I
Color Format any VAF_GRAY VAF_GRAY as I
Color Flavor any FL_NONE FL_NONE as I
Max. Img Width any any as RColA as RColA
Max. Img Height any any as RColA as RColA

1

부호 없는 입력의 경우 입력 Bit Width 범위는 [1, 64]입니다. 부호 있는 입력의 경우 범위는 [2, 64]입니다. 부호 없는 컬러 입력의 경우 범위는 [3, 63]이며, 부호 있는 컬러의 경우 범위는 [6, 63]입니다.

2

열 주소의 Bit Width는 다음과 같습니다:

3

행 주소의 Bit Width는 다음과 같습니다:

Parameters

구현
Type static parameter
Default SingleBuffer
Range {SingleBuffer, DoubleBuffer}

이 파라미터는 FrameMemoryRandomRd의 구현을 선택합니다(위 참조).

사용 예제

FrameMemoryRandomRd operator의 사용법은 다음 예시에 나와 있습니다.