历史上的今天
返回首页

历史上的今天

今天是:2024年10月10日(星期四)

正在发生

2020年10月10日 | 一加 创新了UI绘图优化方法

2020-10-10 来源:爱集微

近日,EISA(欧洲影音协会)颁布年度大奖,其中,由于一加8提高了高端智能手机的门槛,展示了尖端硬件技术如何与华丽的产品设计相契合,因此,一加8被评为最佳智能手机。

而除了一加8所搭载的强劲的晓龙865处理器、120Hz屏幕刷新以及快充技术、后置四摄等,一加在软件方面的优化也是其能够获得这项大奖的原因之一。

我们平时在使用手机时看到显示屏幕上的画面,实际上时经历了一个非常复杂的过程才出现在我们的面前,其中需要手机处理器进行大量的运算,以及需要UI绘图渲染进程进行大量的绘图渲染,才能够完成复杂的显示任务。

非常直观的体验就是,在使用手机的过程中,有时往往会遇到掉帧、卡顿等情况,甚至不同的手机采用一样的处理器,有些手机容易发生卡顿,而有些手机就不容易,这就是软件的优化所带来的影响。今天要介绍的就是一加在19年3月29日申请的一项名为“UI绘图方法、装置和移动终端”的发明专利(申请号:201910251998.5),申请人为深圳市万普拉斯科技有限公司。

根据目前该专利公开的资料,让我们一起来看看一加的这项UI优化方法吧。

如上图,为该专利发明的UI绘图方法的流程示意图,首先,系统中专门用于绘图的部件开始接收绘图任务(就是我们需要手机显示画面),并启动主绘图线程以及额外的绘图线程。

而我们在手机上屏幕上看到的画面,实际上并不是直接出现在屏幕上的,而是需要在运行各种程序时生成一组绘图命令来进行绘图任务,通过这个命令来控制绘图线程进行绘图任务,其中对于主线程和额外线程的分配方法如下图所示:

这种分配方法分为两个步骤,首先将上传绘图材质操作、帧缓冲绘制操作以及字型点阵图准备操作,分配给一个预先建立的额外绘图线程。其次,将减少过度绘制操作分配给主绘图线程。

这样,绘图任务中的主绘图线程,就可以通过执行这种减少过度绘制操作来减少同一像素上的重复绘制和渲染,从而避免多余操作导致绘图超时而导致的掉帧现象。

我们接着回到UI绘图方法的主流程中,结合主线程和额外线程的分配方法,可知在系统中会预先设置减少过度绘制的策略,这也就是减少同一像素重复绘制的操作。而绘图任务的主绘图线程可以利用这种策略来对绘图任务每帧的操作进行检查,从中筛选出每帧绘图中可以省略的操作。

最后,当去除掉这些可省略的操作后,就可以获得最优绘图操作,并最终按照最优绘图操作来进行绘图。

我们再来看看这种UI绘图方法的可省操作筛选的流程示意图,这个过程也包括两个步骤,首先要针对每一帧绘图中所有图层,通过主绘图线程由近到远筛选出每帧绘图任务中需要被下一图层覆盖的绘图(也就是发生变化的画面),并需要判断下一图层是否为不透明图层(也就是判断下一图层是不是会将当前图层覆盖)。

如果下一图层为不透明时,就可以确定下一图层覆盖的绘图范围,并根据被覆盖的范围确定每帧绘图中可以省略的操作。

例如绘图任务中包括有绘制文字、绘制栅格以及绘制帧缓冲图层等任务时,就可以通过建立额外线程去执行绘制任务所需的操作。然后通过主绘图线程判断这些任务是否可以省略,最终由主绘图线程进行绘图。

以上就是一加发明的UI绘图方法,该方法通过去除绘图任务中每帧可省略的步骤,以此来获得最优绘图操作,并按照这种最优操作进行绘图。从而在利用多线程进行绘图时,提高了主绘图线程的绘图效率,也增加了绘图速度和显示帧率。


推荐阅读

史海拾趣

Arcolectric公司的发展小趣事

Arcolectric深知合作伙伴的重要性,因此一直致力于与全球各地的优质企业建立紧密的合作关系。通过与这些合作伙伴的深入合作,Arcolectric不仅获得了更多的市场机会和资源支持,还不断吸收和借鉴先进的经验和技术,推动公司的持续发展和创新。

福建国光公司的发展小趣事

Arcolectric始终坚持品质至上的原则,对产品的每一个环节都进行严格的质量控制。公司不仅通过国际制造架构的合作来确保产品的高品质,还积极引进先进的生产设备和技术人才,不断提升产品的性能和可靠性。这种对品质的执着追求使得Arcolectric的产品在全球范围内得到了广泛的认可和赞誉。

E Connector Solutions公司的发展小趣事

E Connector Solutions公司自成立以来,一直注重技术创新。在早期阶段,公司研发团队通过深入的市场调研,发现电子连接器市场存在着对高速、高密度连接器日益增长的需求。公司投入大量研发资源,成功开发出一款新型连接器产品,其传输速度更快、密度更高,满足了市场的需求。随着产品的推出,E Connector Solutions公司逐渐在市场中树立了技术领先的形象,赢得了客户的信赖。

常州能动(ENDRIVE)公司的发展小趣事

为了确保产品质量和客户满意度,常州能动不断完善质量管理体系。公司引进了国际先进的质量管理方法,建立了严格的质量检测流程。同时,公司还加大了对生产设备的投入,引进了先进的生产设备和技术,提高了生产效率和产品质量。这些努力使得常州能动的产品质量得到了客户的高度认可。

Amaze Electronics Pte Ltd公司的发展小趣事

在追求经济效益的同时,Amaze Electronics也积极承担社会责任,注重环保和可持续发展。公司致力于开发环保型电子产品,采用环保材料和节能技术,减少产品对环境的影响。此外,公司还积极参与环保公益活动,推动社会对环保问题的关注和行动。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。


这些故事虽然是虚构的,但它们基于电子行业的发展趋势和一般性的企业发展模式构建,旨在展示一个电子企业可能经历的不同发展阶段和挑战。请注意,这些故事并不针对任何特定的公司或事件,仅作为参考和启发。

Anatech Electronics Inc公司的发展小趣事

在追求经济效益的同时,Amaze Electronics也积极承担社会责任,注重环保和可持续发展。公司致力于开发环保型电子产品,采用环保材料和节能技术,减少产品对环境的影响。此外,公司还积极参与环保公益活动,推动社会对环保问题的关注和行动。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。


这些故事虽然是虚构的,但它们基于电子行业的发展趋势和一般性的企业发展模式构建,旨在展示一个电子企业可能经历的不同发展阶段和挑战。请注意,这些故事并不针对任何特定的公司或事件,仅作为参考和启发。

问答坊 | AI 解惑

进口功率模块专区 北京慧峰

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 北京慧峰腾达科技发展有限公司 专业代理销售功率元器件:电源模块,功率模块,GTR、IGBT、IPM、PIM、可控硅,整流桥模块,进口快速熔断器,电解电容。欢迎订购,电话: 13641266198,010-6293480 ...…

查看全部问答>

电源逆变器的制造工艺问答

电源逆变器的制造工艺问答 1. 电源逆变器的持续输出功率与峰值输出功率有什么不同? 持续功率和峰值功率因其表达的意义而不同。 持续负载=电流值×220(交流电压) 启动负载=2×功率值 一般而言,电器或电动工具的启动负载决定了您的电源 ...…

查看全部问答>

USB驱动的制作过程与体会

USB驱动的制作过程与体会…

查看全部问答>

嵌入式电机控制系统——pwm

今天学习了开发的PWM功能,给大家分享一下,因为是新手,有什么不足之处,大家多多指点啊!…

查看全部问答>

vs2005,模拟器是ce6的,F5启动一个winmain,部署成功,但是启动报错,为什么?

“无法启动程序....   管道的另一段上无任何进程” 部署已经成功了,我看模拟器里已经有exe了 控制台日志: INFO: WAVEDEV.DLL: SetI2SClockRate:  Using processor frequency reported by the OAL (50750000). Prescal ...…

查看全部问答>

ToolBar上面的button能gray,但是不能disabled,为什么

采用的是evc4,CceCommandBar,但是不管是使用EnableButton(ID_BUTTON,FALSE)还是SetState(ID_BUTTON,TBSTATE_INDETERMINATE ),结果Button只是gray,但是还是Enabled.请问这是怎么回事? 另外采用SHCreateMenuBar和SHFS_HIDESIPBUTTON可以创建没有s ...…

查看全部问答>

用C#在Pocket PC上播放.wav声音文件,可是听不到任何声音?

想在Pocket PC上写一个程序,用C#播放一个.wav文件当作提示音,可是听不到任何的声音。 代码如下所示,这段代码是直接从MSDN拷贝过来的,但在我的Pocket PC上运行过这段代码却放不出声音,在Visual Stadio 2005的pocket PC 2003 SE 模拟器上可以 ...…

查看全部问答>

内核DUMP问题

我一直想模仿IceSword编个查内核模块钩子的程序,今天终于把最重要且最基础的一步实现了 ——DUMP内核模块的内存到Ring3级,我保存成了个文件,然后和原始的内核文件 用Ultra比较了一下,结果很令我意外,有很多不一样,除了钩子以外 我原以为 ...…

查看全部问答>

求助:关于VHDL频率计计数器分档处记数的问题

本人新来社区,希望大家给予帮助。   问题是:现在用VHDL设计数字频率计,计数器在每个分档处该如何记数?请高手指教,如有程序更好,谢谢!…

查看全部问答>

求教KEIL RTX 下 LM3S6432 操作系统移植

买了块利尔达的开发板,想用KEIL 编译环境下的自带操作系统进行任务调度,在配置文件上,将rtx_config.c 文件复制到工程里,在跑程序的时候,操作系统只进行到初始化那一步,而没有去执行任务,不知道怎么回事,求教大虾指点,急得冒油了! #inc ...…

查看全部问答>