yaboPP电子
行业的文章

了解i.MX RT1170 mcu的异构图形管道

2021年3月18日通过雨果·奥索尼奥,恩智浦半导体公司

在本文中,了解i.MX RT1170单片机的异构图形管道及其三个主要的图形加速引擎。

现代消费级和专业级嵌入式设备正变得越来越有能力提供越来越多的有用特性。然而,这种功能的丰富性让设计师质疑,如何让所有的功能对用户来说都是可访问的,而不是用一个复杂的界面让他们不知所措。

智能手机状GUI可以是传统物理按钮的有效替代品,因为它们提供了对经典物理控制的一些改进。NXP使开发功能丰富的和图形用户界面更可访问各种集成显示控制器和图形加速器,如包含在内的各种集成显示控制器和图形加速器i.MX RT1170交叉MCU

图1:i.MX RT1170 MCU

图1所示。i.MX RT1170单片机

imx RT1170单片机的三个显示引擎

虽然大多数NXP微控制器可以支持必要的GUI外设,但一些设备(如i.MX RT1170 MCU)带有内置的显示界面和图形加速器,旨在支持丰富的GUI应用程序。更具体地说,i.MX1170包括2D矢量图形GPU、PxP图形加速器和LCDIFV2支持。

具有向量图形加速的专用2D GPU有助于通过支持CPU渲染可缩放向量图形和组合和操纵位图来优化嵌入式设备的功耗和性能。2D GPU还可以转换图像(通过任何任意角度,反射,剪切)和颜色在飞行中转换它们的图像(刻度。

像素处理管道(PxP)将各种图像转换操作(如缩放、旋转和颜色空间转换)组合到一个单一的高效处理引擎中。

LCDIFv2支持使嵌入式设计人员能够创建和工作多达八个显示屏,提供可在线混合功能。

2D矢量图形处理器

与像素图形相比,矢量图形并不依赖单个像素来形成完整的图像。矢量图形模型使用命令(例如移动、线到、曲线到)和坐标来描述形状,然后将其栅格化为最终的图像。

像素图形(例如存储为JPEG文件的照片)中的每个像素都有一个恒定的大小,这通常意味着对像素图形的转换总是会导致质量的损失。另一方面,矢量图形在变换时更加灵活。例如,很容易变换原始形状的点,然后在不影响质量的情况下重新绘制图像,因为矢量图像独立于最终图像的分辨率。

因此,使用像素图形在捕获具有大量细节的图像时是有道理的,就像照片一样。相比之下,使用简单的形状,如书法,公司徽标和图形用户界面时,最佳使用向量图形。

渲染矢量图像通常需要一个渲染目标、路径数据、填充信息、转换数据、颜色信息和混合规则。渲染目标是在完成渲染后保存渲染图像的缓冲区。路径数据是矢量图像中最关键的部分,因为它包含描述矢量图像中元素几何形状的坐标和路径段。它分别由一对操作代码和伴随每个操作的参数组成:

渲染矢量图像通常需要一个渲染目标、路径数据、填充信息、转换数据、颜色信息和混合规则。

图2。渲染矢量图像通常需要一个渲染目标、路径数据、填充信息、转换数据、颜色信息和混合规则。

填充规则描述了当决定用纯色填充封闭形状的哪一部分时应用什么规则。该属性可以取两种可能的值之一:非零值和偶奇值。选择非零规则后,填充算法在每个方向上从问题点投射一条射线到无限远。然后计算光线通过矢量图中另一条线的频率。如果射线击中一条从左到右的直线,它会使最终的和加1。如果这条线从右向左走,算法就减1。如果最后的数字是零,点就在外面。

相比之下,奇偶算法计算每一行被击中的次数,而不考虑该行的方向。如果最终的和是偶数,那么有问题的点在形状之外。否则,它就在里面。

接下来是转换,通过操作矩阵来表示各种操作,如平移、旋转和缩放。仿射变换是i.MX RT1170 MCU内置2D矢量图形处理器的一个强大功能。

当绘制最终形状时,程序员可以为每个路径分配颜色信息:

渲染矢量图像通常需要一个渲染目标、路径数据、填充信息、转换数据、颜色信息和混合规则。

图3。变换是通过操纵矩阵来表示各种操作来完成的。在绘制形状时,程序员能够为每个路径分配颜色信息。

混合规则规定了如何混合扩展缓冲区内容的路径,它是构成最终矢量图像的最后一条信息。路径的颜色参数的alpha值和混合函数定义了alpha值在矢量路径本身和目标缓冲区上的效果。

VGLite API——访问i-MX RT1170的2D矢量引擎的选项之一——实现了各种混合规则NXP应用笔记AN13075更详细地讨论。除了矢量管道外,VGLITE API还提供了一个用于光栅图像的管道。更多关于API的部分可以在AN13075应用笔记中找到。

PXP 2D加速器

像素处理管道(PXP)是一个功能强大的2D加速器,可以在将图形缓冲区或复合视频发送到显示器之前。它集成了几种常用的2D图形处理操作,例如闪烁,alpha混合,颜色空间转换,固定角度旋转和缩放。

该引擎的一个可能用例是将两个缓冲器混合以形成发送到LCD的单个输出图像。例如,其中一个缓冲区可以包含背景图像,而另一个缓冲器可以包含UI元素,例如文本标签或按钮。图层可以具有不同的尺寸,PXP引擎还允许快速轻松地进行缩放。AN12110应用笔记讨论了更深入的示例应用程序,其中PXP将内部缓冲区缩放以适合该项目的LCD屏幕。

与实现嵌入式微控制器主CPU上的功能相比,将共同的2D操作外包给专用硬件控制器(如PXP)提供了一系列优势。软件开发人员不必重新发明轮子,因为最常见的功能很容易获得。主要CPU也不必多次处理复杂的2D操纵一秒钟,这意味着它可以专注于其他计算,这导致更流利的用户体验和潜在的能效。

LCDIFv2显示控制器

液晶显示界面(LCDIF)的第二个版本也通过从帧缓冲器获取先前创建的显示数据并在TFT LCD面板上显示它来帮助主CPU。帧缓冲器是存储要显示的图像数据的存储器中的空间。可以互换使用两个缓冲器。这样做允许在控制器绘制另一个时更新缓冲区。除了LCDIFv2之外,I.MXTRO1170 MCU还包含一个额外的ELCDIF显示控制器。

i.MX中的LCDIFv2控制器最多支持8层,供程序员在运行时混合和配置。所有这一切都没有涉及到其他加速器模块。每一层都可以使用不同的颜色格式、画布大小、位置,并从任何内存位置的缓冲区获取内容。

LCDIFv2控制器还支持Index8BPP格式,它允许程序员使用颜色查找表和与之配套的索引数组来定义每像素32位的图像。这个方法使定义ARGB8888成为可能,而不必牺牲额外的内存。AN13075应用笔记和官方SDK给出了如何实现这一点的例子。

i.mxTRT1170 SCRISSORM MCU及其支持的设备

i.MX RT1170的异构图形管道由三个引擎组成,每个引擎都有自己的好处,有助于简化项目,并且在齐声中使用时,可以在节省内存时提高其性能。几种NXP设备已经支持本文中讨论的一些引擎:i.MXRT1170支持所有三个图形加速器。基于Cortex-M7的I.MX RT1050和I.MX RT106x器件支持PXP和LCD控制器。I.MX RT500基于Cortex-M33核心并包含一个2D GPU。

除了硬件,NXP通过支持不同的api和帮助嵌入式设备开发gui的工具,可以创建小而快速的全功能设备。NXP公司的网站提供了各种支持的api和工具以及所有支持的设备的概述。它还提供不同的培训材料,如应用程序笔记、视频、SDK示例和按需在线研讨会。

行业文章是一种内容形式,它允许行业合作伙伴以编辑内容不太适合的方式与All About Circuits阅读器共享有用的新闻、消息和技术。yaboPP电子所有的行业文章都受到严格的编辑指导,目的是为读者提供有用的新闻,技术专长,或故事。在行业文章中所表达的观点和意见是合作伙伴的观点,而不一定是所有关于电路或其作者的观点和意见。yaboPP电子