在资源有限的嵌入式图形应用中设计“类智能手机”用户界面
来源:http://ic.big-bit.com/发布时间:2015-07-07114浏览
询问 AI真是拜智能手机所赐!现在,只要是拥有显示屏的产品,人们总会希望其用户界面和智能手机一样。您将看到越来越多的产品集成彩色屏幕。咖啡机、安防系统和恒温器仅仅是其中的几个例子。消费者对这些简单产品的新期望给设计人员带来了新的挑战。对于资源有限的嵌入式图形应用,设计人员如何通过有限的RAM和处理能力实现使用阿尔法混合背景的图标?
本文将讨论如何克服这一挑战。具体探讨以下问题:如何综合使用一些技术,如使用选定阿尔法值的阿尔法混合、逐行处理程序和使用全局透明颜色呈现非矩形图标,来有效呈现使用阿尔法混合背景的图标。
图1:使用PIC24FJ256DA210 MCU生成采用阿尔法混合背景的图标示例
阿尔法混合是一种算法,将新像素(前景)与屏幕上的现有像素(背景)结合,创造部分透明到完全透明的效果,其中,阿尔法值定义透明度(公式1)。
公式(1):RP = FP α + BP (1 – α)
其中:
RP——产生的阿尔法混合像素
FP——前景像素
BP——背景像素
α——阿尔法值因子(0 ≤ α ≤ 1)
α定义前景像素亮度的百分比。这意味着0.25 α示例值表示25%亮度的前景像素,那么 (1 – α)则表示75%亮度的背景像素。
在大多数资源有限的环境中,硬件中不存在阿尔法混合引擎。因此,由软件实现阿尔法混合是唯一选择。不幸的是,由于存在α和 (1 – α)分量而需要大量的乘法和除法运算。事实上,每个像素由三种颜色分量(红、绿、蓝)组成,导致公式1执行三次,这又增加了一层复杂性。这就意味着需要巨大的处理能力和时间。
一种解决方案是实现选择性α值,这足以产生所需的“智能手机”效果,和完整范围阿尔法混合一样。由于α是亮度百分比,值为50% 意味着1位转变,25%为2位转变,而75%为原始值的25%和50%之和。公式1变换为以下三个公式:
公式(2):RP = (FP >> 2) + [(BP >> 1) + (BP >> 2)](α = .25)
公式(3):RP = (FP >> 1) + (BP >> 1)(α = .50)
公式(4):RP = [(FP >> 2) + (FP >> 1)] + (BP >> 2)(α = .75)
使用16 bpp 颜色数据来保持较低的存储需求,而不使用常见的32 bpp颜色数据。16 bpp颜色格式由5位红色、6位绿色和5位蓝色(5-6-5)组成。在这种格式中,一次可执行所有RGB 分量的转变,消除了单独对每个颜色分量进行运算的需要,从而加速运算。
阿尔法混合运算可对完整图像、逐行或在像素级别执行。对完整图像执行阿尔法混合运算时,需要大容量存储器来存储前景、背景和结果。逐像素级别执行阿尔法混合运算时,需要更多的读取和存储开销。而在逐行级别执行运算可在这两者之间做到平衡。这将需要一个缓冲器,但大小仅限于屏幕的宽度,原因是单行可处理的最大像素等于屏幕的宽度。图2所示为将矩形面板进行50%阿尔法混合到背景图像的伪过程。在本例中,背景是一个图像,而前景是一个平面彩色面板。
图2:Microchip图形库中实现的50%阿尔法混合的伪代码
非矩形图标可以使用全局透明颜色来呈现。这个想法是对图标的不应呈现像素使用预先定义的全局透明颜色。与其他方法相比,该方法仅需要较低的固件处理开销并且不需要每个像素包含是否需要被绘制的附加信息。同时,允许灵活地单独改变背景图像和/或前景图标。图3给出了使用组合技术创建“类智能手机”图标的运行时输出。
图3:呈现类智能手机图标流程
图中文字:
图标 图标的面板 将被占据的背景图像
具有忽略像素的图标 渲染后的面板和背景图像
屏幕上进行阿尔法混合后的面板
最终屏幕输出
通过具有较小存储器和较低处理能力的单片机,采用上述技术即可实现“类智能手机”用户界面。将简化的阿尔法混合公式与逐行处理和全局透明颜色结合,可在资源有限的嵌入式图形应用中实现RAM需求和处理能力之间的平衡。
新闻来源:http://ic.big-bit.com/,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。

