ConvertPixelFormat 오퍼레이터

Operator Library: Base

ConvertPixelFormat 연산자는 원하는 출력 Pixel Format에 맞추어 Arithmetic과 Bit Width를 조정하면서 가능한 한 많은 정보를 유지하려고 시도합니다. 따라서 이 연산자를 사용하면 출력 링크에서 Bit Width와 Arithmetic을 정의할 수 있습니다.

이 알고리즘의 주요 원리는 두 가지입니다.

  1. 클리핑을 통한 Arithmetic 변경
    • unsigned에서 signed로 변환: 출력의 MSB가 부호 비트로 사용됩니다.
    • signed에서 unsigned로 변환: 양수 값으로 클리핑됩니다. 즉, 값이 0보다 작으면 0으로 설정됩니다.
  2. 상대적인 밝기를 유지하면서 Bit Width 변경
    • 출력 Bit Width가 증가하면, 원하는 Bit Width에 맞추기 위해 값이 왼쪽으로 시프트됩니다.
    • 출력 Bit Width가 감소하면, 원하는 Bit Width에 맞추기 위해 값이 나누어지고 반올림됩니다.

따라서 출력 값은 다음과 같이 결정될 수 있습니다.

Input Bit Width Output Bit Width Input Arithmetic Output Arithmetic Input Value Output Value Comment
Decimal Binary Decimal Binary
4 5 unsigned unsigned 10 1010 20 10100 value * 2
5 4 unsigned unsigned 15 1111 8 1000 value를 2로 나누고 반올림
5 4 unsigned unsigned 31 11111 15 1111 최댓값으로 클리핑된 value
4 4 unsigned signed 11 1011 6 0100 value를 2로 나누고 반올림
4 4 signed unsigned 4 0100 8 1000 value * 2
5 4 signed unsigned 10 01010 10 1010 유지된 value
5 4 signed unsigned -2 11110 0 0000 0으로 클리핑된 value
5 4 signed signed -7 11001 -4 1100 value를 2로 나누고 반올림

표 34. 예시


컬러 링크의 경우, 각 컬러 컴포넌트가 개별적으로 처리됩니다.

I/O Properties

Property Value
Operator Type O
Input Link I, data input
Output Link O, data output

Supported Link Format

Link Parameter Input Link I Output Link O
Bit Width [1, 64]1 [1, 64]2
Arithmetic {unsigned, signed} {unsigned, signed}
Parallelism any as I
Kernel Columns any as I
Kernel Rows any as I
Img Protocol {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D} as I
Color Format any as I
Color Flavor any as I
Max. Img Width any as I
Max. Img Height any as I

1

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

2

출력 Bit Width의 범위는 [1, 64]입니다. signed 출력의 경우 범위는 [2, 64]입니다. unsigned 컬러 출력의 경우 범위는 [3, 63]이며, signed 컬러의 경우 범위는 [6, 63]입니다.

Parameters

없음

사용 예제

ConvertPixelFormat 연산자의 사용법은 다음 예시에 나와 있습니다.