산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

i.MX RT1170 MCU의 이기종 그래픽 파이프라인 이해

이 기사에서는 i.MX RT1170 MCU의 이기종 그래픽 파이프라인과 세 가지 주요 그래픽 가속 엔진에 대해 알아봅니다.

최신 소비자 및 전문가용 임베디드 장치는 점점 더 다양한 유용한 기능을 제공할 수 있게 되었습니다. 그러나 이러한 풍부한 기능으로 인해 디자이너는 복잡한 인터페이스로 사용자를 압도하지 않으면서 사용자가 모든 기능에 액세스할 수 있도록 하는 방법에 대해 의문을 갖게 됩니다.

스마트폰과 같은 GUI는 기존의 물리적 컨트롤에 비해 몇 가지 개선 사항을 제공하므로 기존 물리적 버튼에 대한 효과적인 대안이 될 수 있습니다. NXP는 i.MX RT1170 크로스오버 MCU에 포함된 것과 같은 다양한 통합 디스플레이 컨트롤러 및 그래픽 가속기를 통해 기능이 풍부한 그래픽 사용자 인터페이스 개발에 더 쉽게 접근할 수 있도록 합니다.

그림 1. i.MX RT1170 MCU

i.MX RT1170 MCU의 3가지 디스플레이 엔진

대부분의 NXP 마이크로컨트롤러는 필요한 GUI 주변 장치를 지원할 수 있지만 일부 장치(예:i.MX RT1170 MCU)에는 풍부한 GUI 애플리케이션을 지원하도록 설계된 내장 디스플레이 인터페이스 및 그래픽 가속기가 함께 제공됩니다. 보다 구체적으로, i.MX1170은 2D 벡터 그래픽 GPU, PxP 그래픽 가속기 및 LCDIFV2 지원을 포함합니다.

벡터 그래픽 가속 기능이 있는 전용 2D GPU는 확장 가능한 벡터 그래픽을 렌더링하고 비트맵을 구성 및 조작할 때 CPU를 지원하여 임베디드 장치의 전력 소비 및 성능을 최적화하는 데 도움이 됩니다. 2D GPU는 또한 이미지(크기, 임의의 각도에 의한 회전, 반사, 가위)를 변환하고 색상을 즉석에서 변환할 수 있습니다.

픽셀 처리 파이프라인(PxP)은 크기 조정, 회전 및 색상 공간 변환과 같은 다양한 이미지 변환 작업을 하나의 효율적인 처리 엔진으로 결합합니다.

LCDIFV2 지원을 통해 임베디드 디자이너는 최대 8개의 디스플레이 레이어를 만들고 작업할 수 있어 즉각적인 혼합 기능을 제공합니다.

2D 벡터 그래픽 GPU

픽셀 그래픽과 비교할 때 벡터 그래픽은 완전한 이미지를 형성하기 위해 개별 픽셀에 의존하지 않습니다. 벡터 그래픽 모델은 명령(예:이동, 선으로, 곡선으로)과 좌표를 사용하여 최종 이미지로 래스터화될 모양을 설명합니다.

JPEG 파일로 저장된 사진과 같은 픽셀 그래픽의 각 픽셀은 일정한 크기를 가지므로 일반적으로 픽셀 그래픽을 변환하면 항상 품질이 저하됩니다. 반면에 벡터 그래픽은 변형과 관련하여 더 유연합니다. 예를 들어, 벡터 이미지가 최종 이미지의 해상도와 독립적으로 작동하기 때문에 기본 모양의 점을 변형한 다음 품질 손실 없이 이미지를 다시 그리는 것이 쉽습니다.

따라서 사진과 같이 디테일이 많이 포함된 이미지를 캡처할 때는 픽셀 그래픽을 사용하는 것이 좋습니다. 대조적으로 벡터 그래픽은 서예, 회사 로고 및 그래픽 사용자 인터페이스와 같은 단순한 모양으로 작업할 때 가장 잘 사용됩니다.

벡터 이미지를 렌더링하려면 일반적으로 렌더링 대상, 경로 데이터, 채우기 정보, 변환 데이터, 색상 정보 및 혼합 규칙이 필요합니다. 렌더링 대상은 완료되면 렌더링된 이미지를 보유하는 버퍼입니다. 경로 데이터는 벡터 이미지에 있는 요소의 기하학을 설명하는 좌표와 경로 세그먼트를 포함하므로 벡터 이미지에서 가장 중요한 부분입니다. 각각의 작업과 함께 수행되는 작업 코드와 인수의 쌍으로 구성됩니다.

그림 2. 벡터 이미지를 렌더링하려면 일반적으로 렌더링 대상, 경로 데이터, 채우기 정보, 변환 데이터, 색상 정보 및 혼합 규칙이 필요합니다.

채우기 규칙은 닫힌 모양에서 단색으로 채울 부분을 결정할 때 적용할 규칙을 설명합니다. 이 속성은 0이 아닌 값과 짝수-홀수의 두 가지 가능한 값 중 하나를 사용할 수 있습니다. 0이 아닌 규칙을 선택하면 채우기 알고리즘이 해당 지점에서 각 방향으로 무한대로 광선을 투사합니다. 그런 다음 해당 광선이 벡터 그래픽의 다른 선을 통과하는 빈도를 계산합니다. 광선이 왼쪽에서 오른쪽으로 가는 선에 닿으면 최종 합계에 1을 더합니다. 선이 오른쪽에서 왼쪽으로 가는 경우 알고리즘은 1을 뺍니다. 마지막 숫자가 0이면 점은 외부에 있습니다.

대조적으로, 짝수-홀수 알고리즘은 라인의 방향에 관계없이 히트한 각 라인을 계산합니다. 결과 합계가 짝수이면 문제의 점이 모양 외부에 있습니다. 그렇지 않으면 내부에 있습니다.

다음은 변환, 회전 및 크기 조정과 같은 다양한 작업을 나타내기 위해 행렬을 조작하여 수행되는 변환입니다. 아핀 변환은 i.MX RT1170 MCU에 내장된 2D 벡터 GPU의 강력한 기능입니다.

결과 모양을 그릴 때 프로그래머는 각 경로에 색상 정보를 할당할 수 있습니다.

그림 3. 변환은 다양한 작업을 나타내기 위해 행렬을 조작하여 수행됩니다. 모양을 그릴 때 프로그래머는 각 경로에 색상 정보를 할당할 수 있습니다.

확장 버퍼 콘텐츠에 대한 경로를 혼합하는 방법을 나타내는 혼합 규칙은 최종 벡터 이미지를 구성하는 마지막 정보입니다. 경로 색상 매개변수의 알파 값과 블렌드 함수는 알파가 벡터 경로 자체와 대상 버퍼에 미치는 영향을 정의합니다.

i-MX RT1170의 2D 벡터 엔진에 액세스하는 옵션 중 하나인 VGLite API는 NXP 애플리케이션 노트 AN13075에서 자세히 설명하는 다양한 혼합 규칙을 구현합니다. 벡터 파이프라인 외에도 VGLite API는 래스터 이미지용 파이프라인도 제공합니다. API의 해당 부분에 대한 자세한 내용은 AN13075 애플리케이션 노트에서 확인할 수 있습니다.

PxP 2D 가속기

픽셀 처리 파이프라인(PxP)은 그래픽 버퍼 또는 합성 비디오를 디스플레이로 보내기 전에 처리할 수 있는 강력한 2D 가속기입니다. 블리팅, 알파 블렌딩, 색상 공간 변환, 고정 각도 회전 및 크기 조정과 같이 일반적으로 사용되는 여러 2D 그래픽 처리 작업을 통합합니다.

이 엔진의 한 가지 가능한 사용 사례는 두 개의 버퍼를 혼합하여 LCD로 전송되는 단일 출력 이미지를 형성하는 것입니다. 예를 들어 버퍼 중 하나에는 배경 이미지가 포함될 수 있고 다른 하나에는 텍스트 레이블이나 버튼과 같은 UI 요소가 포함될 수 있습니다. 레이어는 다양한 크기를 가질 수 있으며, PxP 엔진을 사용하면 빠르고 쉽게 확장할 수 있습니다. AN12110 애플리케이션 노트에서는 PxP가 해당 프로젝트의 LCD 화면에 맞도록 내부 버퍼를 확장하는 보다 심층적인 애플리케이션 예제에 대해 설명합니다.

일반적인 2D 작업을 PxP와 같은 전용 하드웨어 컨트롤러에 아웃소싱하면 임베디드 마이크로컨트롤러의 메인 CPU에서 기능을 구현하는 것과 비교하여 다양한 이점을 제공합니다. 소프트웨어 개발자는 가장 일반적인 기능을 쉽게 사용할 수 있으므로 바퀴를 다시 만들 필요가 없습니다. 메인 CPU는 또한 복잡한 2D 조작을 초당 여러 번 처리할 필요가 없습니다. 즉, 대신 다른 계산에 집중할 수 있으므로 보다 유창한 사용자 경험과 잠재적으로 에너지 효율성이 향상됩니다.

LCDIFV2 디스플레이 컨트롤러

LCDIF(Liquid Crystal Display Interface)의 두 번째 버전은 프레임 버퍼에서 이전에 생성된 디스플레이 데이터를 가져와 TFT LCD 패널에 표시함으로써 메인 CPU를 지원합니다. 프레임 버퍼는 표시할 이미지 데이터가 저장되는 메모리 공간입니다. 두 개의 버퍼를 서로 바꿔 사용할 수 있습니다. 이렇게 하면 컨트롤러가 다른 버퍼를 그리는 동안 버퍼 중 하나가 업데이트됩니다. LCDIFv2 외에도 i.MX RT1170 MCU에는 추가 eLCDIF 디스플레이 컨트롤러가 통합되어 있습니다.

i.MX 내의 LCDIFv2 컨트롤러는 프로그래머가 런타임에 혼합하고 구성할 수 있도록 최대 8개의 레이어를 지원합니다. 이 모든 것은 다른 가속기 모듈의 개입 없이 발생합니다. 각 레이어는 다른 색상 형식, 캔버스 크기, 위치를 활용하고 모든 메모리 위치에 있는 버퍼에서 콘텐츠를 가져올 수 있습니다.

LCDIFv2 컨트롤러는 또한 Index8BPP 형식을 지원하므로 프로그래머는 색상 조회 테이블과 함께 제공되는 인덱스 배열을 사용하여 픽셀당 32비트 이미지를 정의할 수 있습니다. 이 방법을 사용하면 추가 메모리를 희생하지 않고도 ARGB8888을 정의할 수 있습니다. AN13075 애플리케이션 노트와 공식 SDK는 이를 수행하는 방법에 대한 예를 제공합니다.

i.MX RT1170 크로스오버 MCU 및 지원 장치

i.MX RT1170의 이기종 그래픽 파이프라인은 3개의 엔진으로 구성되며, 각각은 프로젝트를 단순화하는 데 도움이 되는 고유한 이점이 있으며 동시에 사용할 경우 메모리를 절약하면서 성능을 향상시킵니다. 여러 NXP 장치는 이미 이 기사에서 논의된 일부 엔진을 지원합니다. i.MX RT1170은 세 가지 그래픽 가속기를 모두 지원합니다. Cortex-M7 기반 i.MX RT1050 및 i.MX RT106x 장치는 PxP 및 LCD 컨트롤러를 지원합니다. i.MX RT500은 Cortex-M33 코어를 기반으로 하며 2D GPU를 통합합니다.

하드웨어 외에도 NXP는 임베디드 장치용 GUI 개발을 위한 다양한 API와 유용한 도구를 지원하여 작고 빠른 모든 기능을 갖춘 장치를 만들 수 있습니다. NXP 웹사이트는 지원되는 다양한 API 및 도구와 지원되는 모든 장치에 대한 개요를 제공합니다. 또한 애플리케이션 노트, 비디오, SDK 예제 및 주문형 웨비나와 같은 다양한 교육 자료를 제공합니다.

업계 기사는 업계 파트너가 편집 콘텐츠에 적합하지 않은 방식으로 All About Circuits 독자와 유용한 뉴스, 메시지 및 기술을 공유할 수 있는 콘텐츠 형식입니다. 모든 산업 기사는 독자에게 유용한 뉴스, 기술 전문 지식 또는 이야기를 제공하기 위해 엄격한 편집 지침을 따릅니다. 업계 기사에 표현된 관점과 의견은 파트너의 것이며 반드시 All About Circuits 또는 해당 작성자의 의견은 아닙니다.


임베디드

  1. 샤프트 제조 공정 이해
  2. 클라우드 문화의 중요성 이해
  3. 예측 유지보수의 이점 이해
  4. IoT 위협 벡터 보호
  5. 밀링 머신의 기본 이해
  6. 현장에서의 머신 러닝
  7. 프로토 테크 팁:벡터와 래스터 그래픽 파일의 차이점
  8. 쇼크 업소버의 작동 이해
  9. 커플링 용어 이해
  10. 재료의 유연성 이해