Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Встроенный

Понимание конвейера гетерогенной графики микроконтроллеров i.MX RT1170

В этой статье вы узнаете о конвейере неоднородной графики микроконтроллера i.MX RT1170 и его трех основных механизмах ускорения графики.

Современные встраиваемые устройства потребительского и профессионального уровня становятся все более способными предлагать все более широкий спектр полезных функций. Однако такое разнообразие функций заставляет дизайнеров сомневаться, как сделать все функции доступными для пользователей, не перегружая их сложным интерфейсом.

Графические интерфейсы, подобные смартфонам, могут быть эффективной альтернативой традиционным физическим кнопкам, поскольку они предлагают несколько улучшений по сравнению с классическими физическими элементами управления. NXP делает разработку многофункциональных и графических пользовательских интерфейсов более доступной с помощью различных интегрированных контроллеров дисплея и графических ускорителей, таких как те, которые включены в кроссовер MCU i.MX RT1170.

Рисунок 1. Микроконтроллер i.MX RT1170

Три модуля отображения i.MX RT1170 MCU

Хотя большинство микроконтроллеров NXP могут поддерживать необходимые периферийные устройства с графическим интерфейсом пользователя, некоторые устройства (например, i.MX RT1170 MCU) поставляются со встроенными интерфейсами дисплея и графическими ускорителями, предназначенными для поддержки приложений с богатым графическим интерфейсом. Более конкретно, i.MX1170 включает графический процессор 2D векторной графики, графический ускоритель PxP и поддержку LCDIFV2.

Выделенный двухмерный графический процессор с ускорением векторной графики помогает оптимизировать энергопотребление и производительность встроенных устройств, поддерживая ЦП в рендеринге масштабируемой векторной графики, а также при составлении растровых изображений и управлении ими. Графический процессор 2D также может преобразовывать изображения (масштабировать, вращать на любой произвольный угол, отражения, сдвиги) и преобразовывать их в цвет на лету.

Конвейер обработки пикселей (PxP) объединяет различные операции преобразования изображений, такие как масштабирование, поворот и преобразование цветового пространства, в единый эффективный механизм обработки.

Поддержка LCDIFV2 позволяет разработчикам встраиваемых систем создавать и работать с восемью слоями отображения, предлагая возможности смешивания «на лету».

Графический процессор 2D-векторной графики

По сравнению с пиксельной графикой, векторная графика не полагается на отдельные пиксели для формирования полного изображения. В модели векторной графики используются команды (такие как перемещение, линия в, кривая в) и координаты для описания форм, которые затем будут преобразованы в окончательное изображение.

Каждый пиксель в пиксельной графике, такой как фотография, сохраненная в виде файла JPEG, имеет постоянный размер, что обычно означает, что преобразование пиксельной графики всегда приводит к потере качества. Векторная графика, с другой стороны, более гибкая, когда дело доходит до преобразования. Например, легко преобразовать точки примитивной формы, а затем перерисовать изображение без потери качества, поскольку векторные изображения работают независимо от разрешения окончательного изображения.

Поэтому использование пиксельной графики имеет смысл при съемке изображений с большим количеством деталей, например фотографий. В отличие от этого, векторную графику лучше всего использовать при работе с простыми формами, такими как каллиграфия, логотипы компаний и графический пользовательский интерфейс.

Для визуализации векторных изображений обычно требуется цель визуализации, данные пути, информация о заливке, данные преобразования, информация о цвете и правила наложения. Целевой объект рендеринга - это буфер, в котором хранится визуализированное изображение после его завершения. Данные пути являются наиболее важной частью векторного изображения, поскольку они содержат координаты и сегменты пути, которые описывают геометрию элементов, присутствующих в векторном изображении. Он состоит из пар кода операции и аргументов, которые используются для каждой операции, соответственно:

Рисунок 2. Для рендеринга векторных изображений обычно требуются цель рендеринга, данные пути, информация о заливке, данные преобразования, информация о цвете и правила наложения.

Правило заливки описывает, какое правило применять при определении того, какую часть замкнутой формы следует заливать сплошным цветом. Это свойство может принимать одно из двух возможных значений:ненулевое и четно-нечетное. Если выбрано ненулевое правило, алгоритм заливки отбрасывает луч от рассматриваемой точки на бесконечность в каждом направлении. Затем он считает, как часто этот луч проходит другую линию в векторной графике. Если луч попадает в линию, идущую слева направо, он добавляет единицу к окончательной сумме. Если линия идет справа налево, алгоритм вычитает единицу. Если окончательное число равно нулю, точка лежит снаружи.

Напротив, четно-нечетный алгоритм подсчитывает каждое попадание в строку без учета ее направления. Если полученная сумма четная, рассматриваемая точка находится за пределами фигуры. В противном случае это внутри.

Далее идет преобразование, которое выполняется путем манипулирования матрицами для представления различных операций, таких как перемещение, поворот и масштабирование. Аффинные преобразования - мощная функция встроенного графического процессора 2D-векторов микроконтроллера i.MX RT1170.

При рисовании получившейся формы программист может назначить информацию о цвете для каждого пути:

Рисунок 3. Преобразование выполняется путем манипулирования матрицами для представления различных операций. При рисовании фигур программист может назначить информацию о цвете для каждого контура.

Правило смешивания, которое устанавливает, как смешать путь к содержимому расширенного буфера, является последней частью информации, составляющей окончательное векторное изображение. Значение альфа-канала из параметра цвета контура и функция смешивания определяют эффект, который альфа-канал будет оказывать на сам контур вектора и целевой буфер.

VGLite API - один из вариантов доступа к 2D-векторной системе i-MX RT1170 - реализует различные правила смешивания, которые более подробно обсуждаются в примечании к приложению NXP AN13075. Помимо векторного конвейера, VGLite API также предоставляет конвейер для растровых изображений. Дополнительную информацию об этой части API можно найти в примечании к применению AN13075.

Ускоритель PxP 2D

Конвейер обработки пикселей (PxP) - это мощный 2D-ускоритель, который может обрабатывать графические буферы или составное видео перед его отправкой на дисплей. Он объединяет несколько часто используемых операций обработки 2D-графики, таких как копирование, альфа-смешивание, преобразование цветового пространства, поворот на фиксированный угол и масштабирование.

Одним из возможных вариантов использования этого механизма является смешивание двух буферов для формирования единого выходного изображения, отправляемого на ЖК-дисплей. Например, один из буферов может содержать фоновое изображение, а другой - элементы пользовательского интерфейса, такие как текстовые метки или кнопки. Слои могут иметь разные размеры, а механизм PxP также позволяет быстро и легко масштабировать. В примечаниях к применению AN12110 обсуждается более подробный пример приложения, в котором PxP масштабирует внутренний буфер для соответствия ЖК-экрану этого проекта.

Передача общих 2D-операций выделенному аппаратному контроллеру, такому как PxP, дает ряд преимуществ по сравнению с реализацией функций на основном ЦП встроенного микроконтроллера. Разработчикам программного обеспечения не нужно изобретать велосипед, поскольку наиболее распространенные функции легко доступны. Основному процессору также не нужно выполнять сложные 2D-манипуляции несколько раз в секунду, а это означает, что он может вместо этого сосредоточиться на других вычислениях, что обеспечивает более плавное взаимодействие с пользователем и потенциально более эффективное использование энергии.

Контроллер дисплея LCDIFV2

Вторая версия интерфейса жидкокристаллического дисплея (LCDIF) также помогает главному процессору, выбирая ранее созданные данные дисплея из буфера кадра и отображая их на ЖК-панели TFT. Буфер кадра - это пространство в памяти, где хранятся отображаемые данные изображения. Возможно взаимозаменяемое использование двух буферов. Это позволяет обновлять один из буферов, пока контроллер рисует другой. Помимо LCDIFv2, i.MX RT1170 MCU включает дополнительный контроллер дисплея eLCDIF.

Контроллер LCDIFv2 в i.MX поддерживает до восьми уровней, которые программисты могут смешивать и настраивать во время выполнения. Все это происходит без участия других модулей ускорителя. Каждый слой может использовать свой цветовой формат, размер холста, положение и извлекать содержимое из буферов в любой области памяти.

Контроллер LCDIFv2 также поддерживает формат Index8BPP, который позволяет программистам определять изображение с разрешением 32 бита на пиксель, используя таблицу поиска цвета и связанный с ней индексный массив. Этот метод позволяет определить ARGB8888, не жертвуя дополнительной памятью. В примечании к применению AN13075 и официальном SDK приведены примеры того, как это сделать.

Микроконтроллер кроссовера i.MX RT1170 и поддерживаемые устройства

Конвейер гетерогенной графики i.MX RT1170 состоит из трех модулей, каждый из которых имеет свои преимущества, которые помогают упростить проект и, при совместном использовании, улучшить его производительность при экономии памяти. Некоторые устройства NXP уже поддерживают некоторые механизмы, обсуждаемые в этой статье:i.MX RT1170 поддерживает все три графических ускорителя. Устройства i.MX RT1050 на базе Cortex-M7 и i.MX RT106x поддерживают PxP и ЖК-контроллер. I.MX RT500 основан на ядре Cortex-M33 и включает 2D-графический процессор.

Помимо оборудования, NXP позволяет создавать небольшие и быстрые полнофункциональные устройства, поддерживая различные API-интерфейсы и полезные инструменты для разработки графического интерфейса пользователя для встраиваемых устройств. На веб-сайте NXP представлен обзор различных поддерживаемых API и инструментов, а также всех поддерживаемых устройств. Он также предлагает различные учебные материалы, такие как заметки по применению, видео, примеры SDK и веб-семинары по запросу.

Отраслевые статьи - это форма контента, позволяющая отраслевым партнерам делиться полезными новостями, сообщениями и технологиями с читателями All About Circuits, что не подходит для редакционного контента. Все отраслевые статьи подлежат строгим редакционным правилам с целью предлагать читателям полезные новости, технические знания или истории. Точки зрения и мнения, выраженные в отраслевых статьях, принадлежат партнеру, а не обязательно All About Circuits или ее авторам.


Встроенный

  1. Понимание процесса изготовления вала
  2. Понимание значения облачной культуры
  3. Понимание преимуществ профилактического обслуживания
  4. Защита вектора угроз Интернета вещей
  5. Понимание основ фрезерного станка
  6. Машинное обучение в полевых условиях
  7. Совет Proto Tech:разница между файлами векторной и растровой графики
  8. Понимание работы амортизатора
  9. Понимание термина сцепление
  10. Понимание гибкости материала