所有关于电路
行业文章

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

2021年3月18日通过Hugo Osornio, NXP Semiconductors

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

现代消费级和专业级的嵌入式设备越来越能够提供越来越多的有用功能。然而,这种功能的丰富性让设计师们质疑如何让用户能够访问所有的功能,同时又不让用户为复杂的界面所累。

类似智能手机的gui可以成为传统物理按钮的有效替代,因为它们提供了一些优于传统物理控制的改进。NXP通过集成显示控制器和图形加速器,使开发中功能丰富的图形用户界面更容易访问i.MX RT1170交叉MCU.

图1:i.MX RT1170 MCU

图1。i.MX RT1170 MCU

RT1170单片机的三种显示引擎

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

具有矢量图形加速功能的2D GPU通过支持CPU渲染可伸缩矢量图形和合成和操作位图,帮助优化嵌入式设备的功耗和性能。2D GPU也可以实时转换图像(缩放,任意角度旋转,反射,剪切)和颜色转换。

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

LCDIFV2支持使嵌入式设计人员能够创建和工作最多8个显示层,提供实时混合功能。

二维矢量图形GPU

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

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

因此,在捕捉有很多细节的图像(比如照片)时,使用像素图形是有意义的。相反,矢量图形最适合用于简单的形状,如书法、公司标识和图形用户界面。

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

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

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

填充规则描述在确定用纯色填充闭合形状的哪个部分时要应用的规则。此属性可以采用两个可能的值之一:非零和奇偶。选择非零规则后,填充算法将光线从所讨论的点投射到每个方向的无穷远。然后计算光线通过矢量图形中另一条线的频率。如果光线击中从左到右的一条线,它将在最后的总和上加一。如果直线从右向左,则算法减去一。如果最后的数字是零,则点位于外部。

相比之下,奇偶算法计算命中的每一行,而不考虑行的方向。如果结果和是偶数,问题的点在形状的外面。否则,它就在内部。

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

绘制结果形状时,程序员可以为每个路径指定颜色信息:

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

图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)也帮助主CPU从帧缓存中获取先前创建的显示数据,并在TFT LCD面板上显示。帧缓冲区是存储要显示的图像数据的内存空间。两个缓冲区可以互换使用。这样做可以在控制器绘制另一个缓冲区时更新其中一个缓冲区。除了LCDIFv2之外,i.MX RT1170单片机还集成了一个额外的eLCDIF显示控制器。

i.MX中的LCDIFv2控制器最多支持八层,供程序员在运行时混合和配置。所有这些都是在没有其他加速器模块参与的情况下发生的。每个层可以利用不同的颜色格式、画布大小、位置,并从任何内存位置的缓冲区中获取内容。

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

i.MX RT1170交叉MCU及其支持的设备

i.MX RT1170的异构图形管道由三个引擎组成,每个引擎都有自己的优点,可以帮助简化项目,并在统一使用时提高性能,同时节省内存。一些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读者分享有用的新闻、信息和技术的内容形式,而编辑性内容并不适合这种形式。所有行业文章都受到严格的编辑指导方针,目的是为读者提供有用的新闻,技术专长,或故事。Industry Articles中所表达的观点和观点是合作伙伴的观点和观点,不一定是All About Circuits或其作者的观点和观点。

0条评论