Operator Library: Base
ConvertPixelFormat 연산자는 원하는 출력 Pixel Format에 맞추어 Arithmetic과 Bit Width를 조정하면서 가능한 한 많은 정보를 유지하려고 시도합니다. 따라서 이 연산자를 사용하면 출력 링크에서 Bit Width와 Arithmetic을 정의할 수 있습니다.
이 알고리즘의 주요 원리는 두 가지입니다.
-
클리핑을 통한 Arithmetic 변경
- unsigned에서 signed로 변환: 출력의 MSB가 부호 비트로 사용됩니다.
- signed에서 unsigned로 변환: 양수 값으로 클리핑됩니다. 즉, 값이 0보다 작으면 0으로 설정됩니다.
-
상대적인 밝기를 유지하면서 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. 예시
컬러 링크의 경우, 각 컬러 컴포넌트가 개별적으로 처리됩니다.
ConvertPixelFormat 연산자의 사용법은 다음 예시에 나와 있습니다.
-
그림 204, '16비트 출력을 위해 추가된 ConvertPixelFormat 연산자'
기본 가이드 - ConvertPiyelFormat을 사용하여 DMA Bit Width를 변경합니다.
-
예시 - 이 예시는 3x3 필터를 사용하여 Bayer RAW 패턴의 디모자이징을 수행하는 방법을 보여줍니다.
-
Examples - 이 예제는 5x5 필터를 사용한 Bayer RAW 패턴의 디모자이징(demosaicing)을 보여줍니다.
-
'Bayer 3x3 Demosacing with White Balancing'
예시 - 이 예시는 3x3 필터를 사용하여 Bayer RAW 패턴의 디모자이징을 수행하는 방법을 보여줍니다. 또한 색상 보정을 위한 화이트 밸런싱이 추가됩니다.
-
'Bayer 5x5 Demosacing with White Balancing'
Examples - 이 예제는 5x5 필터를 사용한 Bayer RAW 패턴의 디모자이징을 보여줍니다. 또한 색상 보정을 위한 화이트 밸런싱이 추가되었습니다.
-
Examples - 이 예제는 컬러 패턴이 Red/BlueFollowedByGreen_GreenFollowedByBlue/Red인 쌍선형 라인 스캔 카메의 Bayer RAW 패턴 디모자이징을 보여줍니다.
-
Examples - 이 예제는 컬러 패턴이 Red/BlueFollowedByBlue/Red_GreenFollowedByGreen인 양선형 라인 스캔 카메라의 Bayer RAW 패턴 디모자이킹을 보여줍니다.
-
'Bayer Demosaicing a Line Scan Camera with 8 Bit BiColor Bayer Pattern'
Examples - 이 예제는 BiColor Bayer 패턴(BiColorRGBG, BiColorGRGB, BiColorBGRG 및 BiColorGBGR, 예를 들어 racer 2 L 카메라용)이 있는 CXP-12 라인 스캔 카메라의 8비트 Bayer RAW 패턴 디모자이킹을 보여줍니다. 또한 이 예제에는 라인 스캔 트리거 모듈과 화이트 밸런싱 모듈이 포함되어 있습니다.
-
'Bayer Demosaicing a Line Scan Camera with 10 Bit BiColor Bayer Pattern'
Examples - 이 예제는 BiColor Bayer 패턴(BiColorRGBG, BiColorGRGB, BiColorBGRG 및 BiColorGBGR, 예를 들어 racer 2 L 카메라용)이 있는 CXP-12 라인 스캔 카메라의 10비트 Bayer RAW 패턴 디모자이킹을 보여줍니다. 또한 이 예제에는 라인 스캔 트리거 모듈과 화이트 밸런싱 모듈이 포함되어 있습니다.
-
'Bayer Demosaicing a Line Scan Camera with 12 Bit BiColor Bayer Pattern'
Examples - 이 예제는 BiColor Bayer 패턴(BiColorRGBG, BiColorGRGB, BiColorBGRG 및 BiColorGBGR, 예를 들어 racer 2 L 카메라용)이 있는 CXP-12 라인 스캔 카메라의 10비트 Bayer RAW 패턴 디모자이킹을 보여줍니다. 또한 이 예제에는 라인 스캔 트리거 모듈과 화이트 밸런싱 모듈이 포함되어 있습니다.
-
'Co-Processor Large Filter Calculation'
예시 - imaFlex 플랫폼의 보조 프로세서 기능을 보여줍니다. 예시로 대형 필터 커널이 계산됩니다.
-
'Image Received: Event Generation and General Purpose Output (GPO)'
Examples - 이 예시는 이미지 프레임의 시작과 끝에 대한 신호 및 이벤트 생성을 보여줍니다.
-
예제 - 이미지 스트림을 분할하고 병합하는 방법을 보여줍니다. 이미지에 트레일러를 추가합니다.
-
Examples - 이 예제는 2D Shading Correction 구현을 보여줍니다. 보정 값은 프레임 그래버 RAM에 저장됩니다. 이 애플릿은 고정밀 오프셋 및 게인 보정을 수행합니다.
-
'1D Shading Correction Using Block RAM'
Examples - 이 예제는 1D Shading Correction을 보여줍니다. 보정 값은 블록 RAM 메모리에 저장됩니다.
-
'1D Shading Correction Using Frame Grabber RAM'
Examples - 이 예제는 1D Shading Correction을 보여줍니다. 보정 값은 Frame Grabber RAM에 저장됩니다.
-
'imaFlex CXP-12 Quad Platform에서의 DMAFromPC 연산자 예시'
예시 - Shading Correction의 예를 통해 연산자를 사용하는 방법 시연



이전

