CN105630467B - 用户交互界面的渲染处理方法及处理装置 - Google Patents
用户交互界面的渲染处理方法及处理装置 Download PDFInfo
- Publication number
- CN105630467B CN105630467B CN201410605731.9A CN201410605731A CN105630467B CN 105630467 B CN105630467 B CN 105630467B CN 201410605731 A CN201410605731 A CN 201410605731A CN 105630467 B CN105630467 B CN 105630467B
- Authority
- CN
- China
- Prior art keywords
- user interaction
- floating point
- interaction interface
- instruction
- letter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Advance Control (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种用户交互界面的渲染处理方法,包括:将需要渲染的用户交互界面数据以浮点数的类型装载在多个数组中,每个数组存放至少两个浮点数;将多个数组中的浮点数加载到SSE寄存器中;在一个CPU时钟周期内,对需要进行算术逻辑运算的数组中的所述至少两个浮点数同时进行算术逻辑运算;将计算结果从SSE寄存器中取出并放入内存中;以及调用绘图接口,根据内存中的计算结果绘制用户交互界面。此外,本发明还提供一种用户交互界面的渲染处理装置。上述用户交互界面的渲染处理方法与处理装置处理速度更快、适用范围更广。
Description
技术领域
本发明涉及用户交互界面的渲染处理技术,尤其涉及一种用户交互界面的渲染处理方法及处理装置。
背景技术
对于一个软件产品,用户界面(User Interface,简称UI)设计的好坏与否直接影响着用户体验。UI制作的越炫丽,交互越符合用户习惯,则软件受众群体越大。可以说,UI在很大程度上决定着用户是否喜欢这个产品,是否愿意持续使用下去。
随着用户对UI的要求越来越高,与此相矛盾的是,UI性能可能会下降。无论是动画技术,还是半透明效果,都需要大量计算,这些都会导致中央处理器(Central ProcessingUnit,简称CPU)在短时间内负荷巨大,出现UI卡、慢等情况。
现有的优化UI性能的通用技术,一般多采用多线程编程技术或使用DirectX技术。
多线程编程技术虽然可以开启多个线程,分担运算,在一般情况下,可以有效解决UI性能问题,但是,当存在大量透明效果计算,或者绘制量级很大时,也需要考虑多线程问题,增加了程序复杂度,而且也带来了线程切换的消耗。
使用DirectX技术,可以让图形处理器(Graphic Processing Unit,简称GPU)分担CPU的负荷,一定程度上可以解决UI卡、慢等问题,但是DirectX技术需要操作系统和硬件支持,在某些机器上,DirectX技术不被支持。
发明内容
有鉴于此,本发明提供一种处理速度快、且适用范围更广的用户交互界面的渲染处理方法及处理装置。
一种用户交互界面的渲染处理方法,包括:将需要渲染的用户交互界面数据以浮点数的类型装载在多个数组中,每个数组存放至少两个浮点数;将多个数组中的浮点数加载到SSE寄存器中;在一个CPU时钟周期内,对需要进行算术逻辑运算的数组中的所述至少两个浮点数同时进行算术逻辑运算;将计算结果从SSE寄存器中取出并放入内存中;以及调用绘图接口,根据内存中的计算结果绘制用户交互界面。
一种用户交互界面的渲染处理装置,包括:数据类型转换模块,用于将需要渲染的用户交互界面数据转换为浮点数;第一处理模块,用于将转换为浮点数装载在多个数组中,每个数组存放至少两个浮点数;第二处理模块,用于将多个数组中的浮点数加载到SSE寄存器中;第三处理模块,用于在一个CPU时钟周期内,对需要进行算术逻辑运算的数组中的所述至少两个浮点数同时进行算术逻辑运算;结果获取模块,用于将计算结果从SSE寄存器中取出并放入内存中;以及界面绘制模块,用于调用绘图接口,根据内存中的计算结果绘制用户交互界面。
本发明实施例提出的用户交互界面的渲染处理方法及装置,基于SSE指令集,由于SSE指令函数可以对需要进行算术逻辑运算的数组中的浮点数同时进行算术逻辑运算,也就是可以进行批量运算,因此,本发明可以有效的提高计算速度,从而大大加快用户交互界面的渲染速度。另外,由于大部分机器都支持SSE指令集,因此,适用范围更广。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1是一种可应用于本发明实施例的用户终端的结构框图。
图2为本发明第一实施例提供的用户交互界面的渲染处理方法的流程图。
图3为本发明第二实施例提供的用户交互界面的渲染处理方法的流程图。
图4为本发明第三实施例提供的用户交互界面的渲染处理装置的结构示意图。
图5为本发明第四实施例提供的用户交互界面的渲染处理装置的结构示意图。
具体实施方式
本发明实施例所提供的用户交互界面的渲染处理用户交互界面的渲染处理可应用于终端设备中实现对交互界面数据的处理,终端设备可以包括智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机、台式计算机、车载电脑等等。
图1示出了一种可应用于本发明实施例中的终端设备的结构框图。如图1所示,终端设备100包括存储器102、存储控制器104,一个或多个(图中仅示出一个)处理器106、外设接口108、射频模块110、定位模块112、图像采集模块114、音频模块116、触控屏幕118以及按键模块120。这些组件通过一条或多条通讯总线/信号线122相互通讯。
可以理解,图1所示的结构仅为示意,终端设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
存储器102可用于存储软件程序以及模块,如本发明实施例中的用户交互界面的渲染处理方法及装置对应的程序指令/模块,处理器106通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理,如本发明实施例提供的用户交互界面的渲染处理方法。
存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器102可进一步包括相对于处理器106远程设置的存储器,这些远程存储器可以通过网络连接至终端设备100。处理器106以及其他可能的组件对存储器102的访问可在存储控制器104的控制下进行。
外设接口108将各种输入/输入装置耦合至CPU以及存储器102。处理器106运行存储器102内的各种软件、指令以执行终端设备100的各种功能以及进行数据处理。
在一些实施例中,外设接口108,处理器106以及存储控制器104可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
射频模块110用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。
定位模块112用于获取终端设备100的当前位置。定位模块112的实例包括但不限于全球卫星定位系统(GPS)、基于无线局域网或者移动通信网的定位技术。
图像采集模块114用于拍摄照片或者视频。拍摄的照片或者视频可以存储至存储器102内,并可通过射频模块110发送。
音频模块116向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
触控屏幕118在终端设备100与用户之间同时提供一个输出及输入界面。具体地,触控屏幕118向用户显示视频输出,这些视频输出的内容可包括文字、图形、视频、及其任意组合。一些输出结果是对应于一些用户界面对象。触控屏幕118还接收用户的输入,例如用户的点击、滑动等手势操作,以便用户界面对象对这些用户的输入做出响应。检测用户输入的技术可以是基于电阻式、电容式或者其他任意可能的触控检测技术。触控屏幕118显示单元的具体实例包括但并不限于液晶显示器或发光聚合物显示器。
按键模块120同样提供用户向终端设备100进行输入的接口,用户可以通过按下不同的按键以使终端设备100执行不同的功能。
本发明实施例所提供的交互界面渲染处理方法是一种基于SSE的交互界面渲染处理方法,优选的,基于SSE2指令集。
SSE2是Streaming SIMD Extensions 2的简称,也就是SIMD流技术扩展2或数据流单指令多数据扩展指令集2。SSE2指令集是Intel公司在SSE指令集的基础上发展起来的。SIMD(Single Instruction Multiple Data,单指令多数据)技术,是一种使用单指令处理多个数据流的CPU执行模式,即,在一个CPU执行周期内,一个指令可以完成处理多个数据操作。
相比于SSE,SSE2使用了144个新增指令,扩展了MMX技术和SSE技术,这些指令提高了广大应用程序的运行性能。随MMX(Multi Media eXtensions,多媒体扩展指令集)技术引进的SIMD整数指令从64位扩展到了128位,使SIMD整数类型操作的有效执行率成倍提高。双倍精度浮点SIMD指令允许以SIMD格式同时执行两个浮点操作,提供双倍精度操作支持有助于加速各种应用。由于SSE2技术能够大幅提升性能,因此,目前主流的机器,都支持SSE2,所以本文主要阐述使用SSE2进行UI优化的方法。
无论MMX、SSE,还是SSE2,其加速渲染的基本原理都是SIMD,即:在CPU的一个时钟周期内,一个指令可以完成多个数据操作。由于SSE2使用了128位的存储单元,因此在处理浮点运算时会比传统的技术更快,例如,对于32位的浮点数来讲,128位的存储单元可以存储4个,也就是说,SSE2中所有计算一次性可以针对4个单精度浮点数(32位)来完成,这种批处理会带来效率的提升。
在UI开发中,经常需要对连续密集的数据进行大量运算,例如,当使用浏览器的时候,可能会存在放大,缩小的操作。此时需要对UI数据全部计算一遍,又例如,在一个UI上,按钮可能有几十个,每个按钮都可以对应好几张图片,这些图片都需要根据当前按钮的状态,重新计算其显示效果。在上述这些情况下,就需要对连续密集的数据进行计算,这正是SSE2长处。另外,当遇到像AlphaBlend这样的函数计算时,SSE可以重写一个函数,实现类似AlphaBlend的功能,其计算量是可以由算法本身来控制的。
在下面的实施例中,默认使用32位操作系统。
为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。
第一实施例
图2为第一实施例提供的用户交互界面的渲染处理方法的流程图。如图2所示,本实施例的用户交互界面的渲染处理方法包括以下步骤:
步骤S11,将需要渲染的用户交互界面数据转换为浮点数。
浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到。
用户交互界面数据,一般是整数。但SSE技术,进行的是高精度的计算,所以必须使用浮点数。整数转换为浮点数很简单,例如1,其浮点数就是1.0000。
步骤S12,将转换为浮点数装载在多个数组中,每个数组存放至少两个浮点数。
步骤S13,将多个数组中的浮点数加载到SSE寄存器中。
步骤S14,在一个CPU时钟周期内,对需要进行算术逻辑运算的数组中的所述至少两个浮点数同时进行算术逻辑运算。
步骤S15,将计算结果从SSE寄存器中取出并放入内存中。
可以将计算结果以位图的形式存放在内存中,位图中包括颜色值的信息。
步骤S16,调用绘图接口,根据内存中的计算结果绘制用户交互界面。
直接调用绘图接口使用内存中的结果进行渲染,例如直接调用绘图接口将位图中的颜色值显示到用户终端的屏幕上形成用户交互界面。
绘图接口包括:GDI或GDI+。GDI为图形设备接口(Graphics Device Interface)的简称,GDI负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。GDI+(Graphics Device Interface+),负责在显示屏幕和打印设备输出有关信息,它是一组通过C++类实现的应用程序编程接口。GDI+是以前版本GDI的继承者。
优选的,所述SSE寄存器为128位的SSE2寄存器。优选的,所述数组内存存放有4个单精度浮点数或2个双精度浮点数。这样,在调用SSE指令,对这4个浮点数进行的算术逻辑运算可以在一个CPU指令执行周期中完成的,相较于依次遍历每个浮点数,逐个对每个浮点数进行算术逻辑运算的方法,计算量和for循环的次数,可以下降75%。
本实施例提供的上述方法可以使用SSE指令函数的C/C++代码实现,也可以使用包含SSE汇编指令的代码实现,本发明的具体实施方式并不以此为限。
由于SSE指令函数可以对需要进行算术逻辑运算的数组中的浮点数同时进行算术逻辑运算,也就是可以进行批量运算,因此,可以有效的提高计算速度,从而也大大加快用户交互界面的渲染处理速度。举例而言,假设一次渲染需要1000ms,使用本实施例提出的用户交互界面的渲染处理方法,则可以在200ms左右完成一次渲染。
第二实施例
图3为第二实施例提供的用户交互界面的渲染处理方法的流程图。如图3所示,本实施例中重点介绍在C/C++程序中,使用SSE2指令进行用户交互界面的渲染的处理方法。本实施例的用户交互界面的渲染处理方法包括以下步骤:
步骤S21,将需要渲染的用户交互界面数据转换为浮点数;
步骤S22,将转换为浮点数装载在多个数组中,每个数组存放四个浮点数;
步骤S23,将多个包含浮点数的数组加载到SSE2寄存器中;
步骤S24,使用intrinsic函数调用SSE指令,intrinsic函数包括头文件xmmintrin.h;
Intrinsics是一个函数集合,包含其头文件xmmintrin.h后,可以直接在C/C++程序中使用。相比汇编语言,Intrinsics函数对算法进行优化,更加易于调试,其移植性、可维护性、可读性也更好。
步骤S25,将需要进行算术逻辑运算的数组载入数据类型为__m128的变量中;
SSE2运算的标准数据类型只有一个,即:__m128。__m128是一个16字节、128位的数据类型,对应着128位寄存器。几乎所有的SSE2运算都是使用该数据类型。
m128可以这样定义:
typedef struct_declspec(intrin_type)_declspec(align(16))_m128{
float m128_f32[4];
}__m128;
步骤S26,使用intrinsic函数中的运算指令对需要进行算术逻辑运算的数组进行逻辑运算;
SSE2指令函数由3个部分组成,中间用下划线分开,如:
_mm_set_ps,其中,mm表示多媒体扩展指令集,set表示此函数的含义缩写,ps表示该函数对结果变量的影响,由两个字母组成,第一个字母表示对结果变量的影响方式,可以是p或是s;p表示把结果作为指向一组数据的指针,每一个元素都将参与运算;s表示只将结果变量中的第一个元素参与运算。第二个字母表示参与运算的数据类型;s表示32位浮点数,d表示64位浮点数,i32表示32位定点数,i64表示64位定点数。
在SSE2浮点运算指令中,包括两种类型:ps和ss。ps是指packed single-precision,即该指令对寄存器中四个单精度浮点数进行运算;而ss即scalar single-precision,该指令对寄存器中的第一位进行运算。
例如:_m128_mm_add_ps(_m128a,_m128b),表示对两个128位的数据相加后将结果返回。
其他intrinsic函数中的运算指令还包括:减法运算指令(_mm_sub_ps/_mm_sub_ss)、乘法运算指令(_mm_mul_ps/_mm_mul_ss)、除法运算指令(_mm_div_ps/_mm_div_ss)、平方根运算指令(_mm_sqrt_ps/_mm_sqrt_ss)、逐项取最大值运算指令(_mm_max_ps/_mm_max_ss)、或逐项取最小值运算指令(_mm_min_ps/_mm_min_ss)等。
步骤S27,保存数据类型为__m128的计算结果;
步骤S28,将计算结果从SSE寄存器中取出并放入内存中;以及
步骤S29,调用绘图接口,根据内存中的计算结果绘制用户交互界面。
在C/C++程序中,使用SSE2指令函数编程时,可以使用128位的数据类型__m128和一系列C++函数来实现这些算术和逻辑操作。而C++编译器决定程序使用哪个SSE寄存器,所以开发人员并不需要了解底层硬件细节,开发更方便。使用SSE2加速,可以有效的增加UI绘制效率,而使用intrinsics函数集调用SSE2指令,可以得到良好的可读性与可维护性。
第三实施例
图4为第三实施例提供的用户交互界面的渲染处理装置的结构示意图。本实施例提供的用户交互界面的渲染处理装置可以用于实现用户交互界面的渲染处理。如图4所示,用户交互界面的渲染处理装置30包括:
数据类型转换模块31,用于将需要渲染的用户交互界面数据转换为浮点数;
第一处理模块32,用于将转换为浮点数装载在多个数组中,每个数组存放至少两个浮点数;
第二处理模块33,用于将多个数组中的浮点数加载到SSE寄存器中;
第三处理模块34,用于在一个CPU时钟周期内,对需要进行算术逻辑运算的数组中的所述至少两个浮点数同时进行算术逻辑运算;
结果获取模块35,用于将计算结果从SSE寄存器中取出并放入内存中;以及
界面绘制模块36,用于调用绘图接口,根据内存中的计算结果绘制用户交互界面。
优选地,所述SSE寄存器为128位寄存器。
优选地,所述数组内存存放有4个单精度浮点数或2个双精度浮点数。
本实施例用户交互界面的渲染处理装置30的各功能模块实现各自功能的具体过程,请参见上述图2至图3所示实施例中描述的具体内容,此处不再赘述。
本发明实施例提供的用户交互界面的渲染处理装置,基于SSE指令集,由于SSE指令函数可以对需要进行算术逻辑运算的数组中的浮点数同时进行算术逻辑运算,也就是可以进行批量运算,因此,本发明可以有效的提高计算速度,从而大大加快用户交互界面的渲染速度。另外,由于大部分机器都支持SSE指令集,因此,适用范围更广。
第四实施例
图5为第四实施例提供的用户交互界面的渲染处理装置的结构示意图。本实施例提供的用户交互界面的渲染处理装置可以用于实现用户交互界面的渲染处理。如图5所示,用户交互界面的渲染处理装置40可以包括:数据类型转换模块41,第一处理模块42,第二处理模块43,第三处理模块44,结果获取模块45,界面绘制模块46。与第三实施例不同的是,于此实施例中,所述第三处理模块44进一步包括:
调用单元441,用于使用intrinsic函数调用SSE指令,intrinsic函数包括头文件xmmintrin.h;
载入单元442,用于将需要进行算术逻辑运算的数组载入数据类型为__m128的变量中;
运算单元443,使用intrinsic函数中的运算指令对需要进行算术逻辑运算的数组进行逻辑运算;
保存单元444,保存数据类型为__m128的计算结果。
其中,所述intrinsic函数中的运算指令可以包括:加法运算指令、减法运算指令、乘法运算指令、除法运算指令、平方根运算指令、逐项取最大值运算指令、或逐项取最小值运算指令等。
本实施例用户交互界面的渲染处理装置40的各功能模块实现各自功能的具体过程,请参见上述图2至图3所示实施例中描述的具体内容,此处不再赘述。
在C/C++程序中,使用SSE2指令函数编程时,可以使用128位的数据类型__m128和一系列C++函数来实现这些算术和逻辑操作。而C++编译器决定程序使用哪个SSE寄存器,所以开发人员并不需要了解底层硬件细节,开发更方便。使用SSE2加速,可以有效的增加UI绘制效率,而使用intrinsics函数集调用SSE2指令,可以得到良好的可读性与可维护性。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (11)
1.一种用户交互界面的渲染处理方法,其特征在于,包括:
通过单指令多数据流技术扩展SSE指令函数的C++代码,实现以下操作:
将需要渲染的用户交互界面数据转化为浮点数;
将所述浮点数装载在多个数组中,每个数组存放至少两个浮点数;
通过绘图接口中的C++编译器选择使用的寄存器,并将多个数组中的浮点数加载到所述寄存器中;
其中,所述绘图接口是一组通过C++类实现的应用程序编码接口,用于负责系统与绘图程序之间的信息交换,处理所有窗口Windows程序的图形输出,所述绘图接口包括:图形设备接口GDI和GDI+中的至少一个;
在一个CPU时钟周期内,基于单指令多数据流技术扩展2SSE2的指令函数编程方式,并使用128位数据类型和C++函数,对需要进行算术逻辑运算的数组中的所述至少两个浮点数同时进行算术逻辑运算;
将计算结果从所述寄存器中取出,并将所述计算结果以位图的形式放入内存中,所述位图中包括颜色值的信息;以及
调用所述绘图接口,根据内存中的计算结果绘制用户交互界面,并将所述位图中的颜色值显示在所述用户交互界面。
2.如权利要求1所述的用户交互界面的渲染处理方法,其特征在于,所述寄存器为128位寄存器。
3.如权利要求1所述的用户交互界面的渲染处理方法,其特征在于,所述数组内存存放有4个单精度浮点数或2个双精度浮点数。
4.如权利要求1所述的用户交互界面的渲染处理方法,其特征在于,所述SSE2指令函数由三个部分组成,中间用下划线分开,其中,第一部分表示多媒体扩展指令集,第二部分表示所述指令函数的含义缩写,第三部分表示所述指令函数对结果变量的影响;
其中,所述第三部分由两个字母组成;
第一个字母表示对结果变量的影响方式,所述第一个字母为p时,表示把结果作为指向一组数据的指针,每一个元素都将参与运算,所述第一个字母为s时,表示只将结果变量中的第一个元素参与运算;
第二个字母表示参与运算的数据类型,所述第二个字母为s时,表示32位浮点数,所述第二个字母为d时,表示64位浮点数,所述第二个字母为i32时,表示32位定点数,所述第二个字母为i64时,表示64位定点数。
5.如权利要求4所述的用户交互界面的渲染处理方法,其特征在于,所述SSE2指令函数中的运算指令包括:加法运算指令、减法运算指令、乘法运算指令、除法运算指令、平方根运算指令、逐项取最大值运算指令、或逐项取最小值运算指令。
6.一种用户交互界面的渲染处理装置,其特征在于,包括:
数据类型转换模块,用于将需要渲染的用户交互界面数据转换为浮点数;
第一处理模块,用于将所述浮点数装载在多个数组中,每个数组存放至少两个浮点数;
第二处理模块,用于通过绘图接口中的C++编译器选择使用的寄存器,并将多个数组中的浮点数加载到所述寄存器中;
其中,所述绘图接口是一组通过C++类实现的应用程序编码接口,用于负责系统与绘图程序之间的信息交换,处理所有窗口Windows程序的图形输出,所述绘图接口包括:图形设备接口GDI和GDI+中的至少一个;
第三处理模块,用于在一个CPU时钟周期内,基于SSE2的指令函数编程方式,并使用128位数据类型和C++函数,对需要进行算术逻辑运算的数组中的所述至少两个浮点数同时进行算术逻辑运算;
结果获取模块,用于将计算结果从所述寄存器中取出,并将所述计算结果以位图的形式放入内存中,所述位图中包括颜色值的信息;以及
界面绘制模块,用于调用所述绘图接口,根据内存中的计算结果绘制用户交互界面,并将所述位图中的颜色值显示在所述用户交互界面。
7.如权利要求6所述的用户交互界面的渲染处理装置,其特征在于,所述寄存器为128位寄存器。
8.如权利要求6所述的用户交互界面的渲染处理装置,其特征在于,所述数组内存存放有4个单精度浮点数或2个双精度浮点数。
9.如权利要求6所述的用户交互界面的渲染处理装置,其特征在于,所述SSE2指令函数由三个部分组成,中间用下划线分开,其中,第一部分表示多媒体扩展指令集,第二部分表示所述指令函数的含义缩写,第三部分表示所述指令函数对结果变量的影响;
其中,所述第三部分由两个字母组成;
第一个字母表示对结果变量的影响方式,所述第一个字母为p时,表示把结果作为指向一组数据的指针,每一个元素都将参与运算,所述第一个字母为s时,表示只将结果变量中的第一个元素参与运算;
第二个字母表示参与运算的数据类型,所述第二个字母为s时,表示32位浮点数,所述第二个字母为d时,表示64位浮点数,所述第二个字母为i32时,表示32位定点数,所述第二个字母为i64时,表示64位定点数。
10.如权利要求9所述的用户交互界面的渲染处理装置,其特征在于,所述SSE2指令函数中的运算指令包括:加法运算指令、减法运算指令、乘法运算指令、除法运算指令、平方根运算指令、逐项取最大值运算指令、或逐项取最小值运算指令。
11.一种计算机可读存储介质,其特征在于,所述存储介质中存储有可执行指令,所述可执行指令执行时实现权利要求1至5中任一项所述的用户交互界面的渲染处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410605731.9A CN105630467B (zh) | 2014-10-31 | 2014-10-31 | 用户交互界面的渲染处理方法及处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410605731.9A CN105630467B (zh) | 2014-10-31 | 2014-10-31 | 用户交互界面的渲染处理方法及处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105630467A CN105630467A (zh) | 2016-06-01 |
CN105630467B true CN105630467B (zh) | 2020-07-14 |
Family
ID=56045459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410605731.9A Active CN105630467B (zh) | 2014-10-31 | 2014-10-31 | 用户交互界面的渲染处理方法及处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105630467B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558187B (zh) * | 2017-09-27 | 2022-08-23 | 斑马智行网络(香港)有限公司 | 一种用户界面渲染方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103135973A (zh) * | 2011-11-30 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 一种界面引擎中的图形图像渲染方法和装置 |
CN104102488A (zh) * | 2014-07-18 | 2014-10-15 | 无锡梵天信息技术股份有限公司 | 一种基于多线程并行化的3d引擎系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7430656B2 (en) * | 2002-12-31 | 2008-09-30 | Intel Corporation | System and method of converting data formats and communicating between execution units |
-
2014
- 2014-10-31 CN CN201410605731.9A patent/CN105630467B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103135973A (zh) * | 2011-11-30 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 一种界面引擎中的图形图像渲染方法和装置 |
CN104102488A (zh) * | 2014-07-18 | 2014-10-15 | 无锡梵天信息技术股份有限公司 | 一种基于多线程并行化的3d引擎系统 |
Non-Patent Citations (1)
Title |
---|
"基于光线跟踪的动态场景加速结构及其更新算法的研究";杨玺坤;《中国优秀硕士学位论文全文数库 信息科技辑》;20111215(第S2期);参见第2.3节,第3.3.3节 * |
Also Published As
Publication number | Publication date |
---|---|
CN105630467A (zh) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11989640B2 (en) | Scalable neural network processing engine | |
US10338925B2 (en) | Tensor register files | |
JP7322254B2 (ja) | ニューラルネットワークプロセッサにおいてタスクを割り当てるためのシステム及び方法 | |
US20180341484A1 (en) | Tensor Processor Instruction Set Architecture | |
US20240069957A1 (en) | Systems and Methods for Task Switching in Neural Network Processor | |
CN113272889A (zh) | 基于用户活动调整显示刷新率 | |
CN110832460A (zh) | 基于中断率来修改处理器频率 | |
US20120144160A1 (en) | Multiple-cycle programmable processor | |
CN108369511A (zh) | 用于基于通道的跨步存储操作的指令和逻辑 | |
KR20050005730A (ko) | 라운드 및 시프트를 갖는 simd 정수 곱셈 하이 | |
CN104951358A (zh) | 基于优先级的上下文抢占 | |
US20170003966A1 (en) | Processor with instruction for interpolating table lookup values | |
CN112199119B (zh) | 向量运算装置 | |
CA3240487A1 (en) | Vector shift method, processor, and electronic device | |
CN111381664A (zh) | 控制处理器中的功率状态降级 | |
KR20150035161A (ko) | 그래픽 처리 장치 및 이의 동작 방법 | |
CN105630467B (zh) | 用户交互界面的渲染处理方法及处理装置 | |
KR102092049B1 (ko) | Simd 슬라이딩 윈도우 연산 | |
US9823927B2 (en) | Range selection for data parallel programming environments | |
CN111752745A (zh) | 对码字中相邻两位错误的检测 | |
US20130159680A1 (en) | Systems, methods, and computer program products for parallelizing large number arithmetic | |
US20230394276A1 (en) | Subtask storage for streaming convolutions in neural network processor | |
US7861067B1 (en) | Adjustable cycle pipeline system and method | |
KR101863483B1 (ko) | 중간 스토리지로서 파이프라인 레지스터들의 활용 | |
US20140028574A1 (en) | Techniques for latching input events to display flips |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |