用于处理浮点数的系统、浮点数处理方法及装置与流程

文档序号:18667547发布日期:2019-09-13 20:23阅读:166来源:国知局
用于处理浮点数的系统、浮点数处理方法及装置与流程

本申请实施例涉及计算机技术领域,具体涉及用于处理浮点数的系统、方法和装置。



背景技术:

图形处理器是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。通常利用图片处理器进行图像渲染处理,从而分担了中央处理器的图像处理任务,使得中央处理器可以执行其他更多的系统任务。



技术实现要素:

本申请实施例提出了用于处理浮点数的系统、浮点数处理方法及装置。

第一方面,本申请实施例提供了一种用于处理浮点数的系统,包括:图形处理器,用于接收中央处理器发送的待处理浮点数,对待处理浮点数执行数学运算,得到运算结果,将运算结果转化为颜色数据,向中央处理器输出颜色数据;中央处理器,用于读取颜色数据,以及将颜色数据转化为结果数据。

在一些实施例中,颜色数据以四元组的形式存储,其中,四元组包括红色分量、绿色分量、蓝色分量以及透明度分量。

在一些实施例中,中央处理器,还用于将获取到的浮点数拆分成至少两部分,形成待处理浮点数。

在一些实施例中,图形处理器,还用于接收中央处理器发送的待处理颜色数据,对待处理颜色数据进行处理,得到处理后的颜色数据,向中央处理器输出处理后的颜色数据。

第二方面,本申请实施例提供了一种用于图形处理器的浮点数处理方法,该方法包括:接收中央处理器发送的待处理浮点数;对待处理浮点数执行数学运算,得到运算结果;将运算结果转化为颜色数据;向中央处理器输出颜色数据。

在一些实施例中,颜色数据以四元组的形式存储,其中,四元组包括红色分量、绿色分量、蓝色分量以及透明度分量。

在一些实施例中,该方法还包括:接收中央处理器发送的待处理颜色数据;对待处理颜色数据进行处理,得到处理后的颜色数据;向中央处理器输出处理后的颜色数据。

第三方面,本申请实施例提供了一种用于图形处理器的浮点数处理装置,该装置包括:浮点数接收单元,配置用于接收中央处理器发送的待处理浮点数;浮点数计算单元,配置用于对待处理浮点数执行数学运算,得到运算结果;转化单元,配置用于将运算结果转化为颜色数据;输出单元,配置用于向中央处理器输出颜色数据。

在一些实施例中,颜色数据以四元组的形式存储,其中,四元组包括红色分量、绿色分量、蓝色分量以及透明度分量。

在一些实施例中,该装置还包括:颜色数据接收单元,配置用于接收中央处理器发送的待处理颜色数据;颜色数据处理单元,配置用于对待处理颜色数据进行处理,得到处理后的颜色数据;输出单元,进一步配置用于向中央处理器输出处理后的颜色数据。

第四方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个图形处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个图形处理器执行,使得一个或多个图形处理器实现如第二方面中任一实现方式描述的方法。

第五方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被图形处理器执行时实现如第二方面中任一实现方式描述的方法。

本申请实施例提供的用于处理浮点数的系统、浮点数处理方法及装置,首先,图形处理器接收中央处理器发送的待处理浮点数,对待处理浮点数执行数学运算,得到运算结果;然后,将运算结果转化为颜色数据,向中央处理器输出所述颜色数据;最后,中央处理器读取颜色数据,以及将颜色数据转化为结果数据。通过由图形处理器执行浮点数的计算,并将计算结果转化为可以输出的颜色数据,使得中央处理器只需对接收到的颜色数据进行数据转换即可得到浮点数的计算结果,从而分担了中央处理器的浮点数运算的任务。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是可以应用本申请实施例的浮点数处理方法或浮点数处理装置的示例性系统架构图;

图2是根据本申请的用于处理浮点数的系统的一个实施例的时序图;

图3是根据本实施例的用于处理浮点数的系统的又一个实施例的时序图;

图4是根据本申请的用于处理浮点数的方法的一个实施例的流程图;

图5是根据本申请的用于处理浮点数的装置的一个实施例的结构示意图;

图6是适于用来实现本申请实施例中的图形处理器的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请实施例的浮点数处理方法或浮点数处理装置的示例性系统架构100。

如图1所示,系统架构100可以包括中央处理器101、图形处理器102。中央处理器101和图形处理器102之间通信连接。中央处理器101和图形处理器102一般包括逻辑运算部件、寄存器部件和控制部件。其中,中央处理器101可以用于解释计算机指令以及处理数据。图形处理器102可以用于大规模并发计算,加速图像处理过程。

中央处理器101和图形处理器102可以是支持opencl(opencomputinglanguage,开放运算语言)和/或ucda(computeunifieddevicearchitecture,统一计算架构)的各种厂家生产的各种型号的中央处理器和图形处理器。

应该理解,图1中的中央处理器和图形处理器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的中央处理器和图形处理器。

继续参考图2,示出了根据本申请的用于处理浮点数的系统的一个实施例的时序图200。

本申请实施例中的用于处理浮点数的系统可以包括:图形处理器和中央处理器。其中,图形处理器,用于接收中央处理器发送的待处理浮点数,对待处理浮点数执行数学运算,得到运算结果,将运算结果转化为颜色数据,向中央处理器输出所述颜色数据。中央处理器,用于读取颜色数据,以及将颜色数据转化为结果数据。

如图2所示,在步骤201中,图形处理器接收中央处理器发送的待处理浮点数。

在本实施例中,当中央处理器要执行浮点数运算时,可以将浮点数运算的任务交给图形处理器处理。具体地,首先把待处理的浮点数传递给图形处理器。

在步骤202中,图形处理器对待处理浮点数执行数学运算,得到运算结果。

在本实施例中,图形处理器对接收到的待处理浮点数执行数学运算,得到运算结果。其中,数学运算可以包括常见的如加、减、乘、除、乘方、开方、对数等运算,还可以包括如导数、积分、卷积、取整等运算。一般地,结果数据为浮点数,作为对待处理浮点数执行运算后的结果。

在步骤203中,图形处理器将运算结果转化为颜色数据。

在本实施例中,基于上述步骤202中得到的运算结果,图形处理器可以使用各种方法将运算结果转化为对应的颜色数据。其中,颜色数据可以指能够表达颜色的数据,且数据的表示方式符合常用的颜色模式。一般地,常用的颜色模式有rgb模式(其中,r代表red红色、g代表green绿色、b代表blue蓝色)、rgba模式(其中,r代表red红色、g代表green绿色、b代表blue蓝色、a代表alpha透明度)、cmyk模式(其中,c代表cyan青色、m代表magenta品红色、y代表yellow黄色、k代表keyplate定位套版色即黑色)、hsb模式(h代表hue色相、s代表saturation饱和度、b代表brightness亮度)、yuv模式(其中,y代表明亮度,u代表色度,v代表浓度)、lab模式(其中,l代表亮度通道、a和b代表颜色通道,其中a通道的颜色是从红色到深绿,b通道的颜色是从蓝色到黄色)、位图模式(只使用黑白两种颜色之中的一种颜色)以及灰度模式(使用不同明度的灰色)等。

在本实施例的一些可选的实现方式中,颜色数据可以是包括红色分量、绿色分量、蓝色分量、以及透明度分量共四个分量的四元组。采用红色分量、绿色分量、蓝色分量来代表三种颜色的强度,并且利用这三种颜色的叠加来得到各种各样的颜色,再使用透明度分量表示颜色显示时的不同透明度,是目前广泛应用的一种颜色表达标准。一般地,红色分量、绿色分量和蓝色分量中的每个分量各占用8位(即1字节)的存储空间。透明度分量可以影响上述三种颜色的叠加效果,改变上述三种颜色叠加后形成的颜色的透明程度。透明度分量一般也占用8位(即1字节)的存储空间。图形处理器可以利用各种转化方法将运算结果转化为包括红色分量、绿色分量、蓝色分量、以及透明度分量的颜色数据。

在本实施例的一些可选的实现方式中,可以按照如下所示的转化方法将运算结果转化为颜色数据:

步骤1、计算红色分量:

步骤1.1、将运算结果除以“1/256”,得到第一中间结果。

步骤1.2、对上述步骤1.1中得到的第一中间结果下取整,并将经过下取整之后得到的结果作为红色分量的取值。其中,对某个数下取整表示取不大于该数的最大整数。

步骤2、计算绿色分量:

步骤2.1、将运算结果除以“1/256”所得到的余数作为第二中间结果。

步骤2.2、将上述步骤2.1中得到的第二中间结果除以“1/2562”,得到第三中间结果。

步骤2.3、对上述步骤2.2中得到的第三中间结果进行下取整,并将经过下取整之后得到的结果作为绿色分量的取值。

步骤3、计算蓝色分量:

步骤3.1、将上述步骤2.1中得到的第二中间结果除以“1/2562”所得到的余数作为第四中间结果。

步骤3.2、将上述步骤3.1中得到的第四中间结果除以“1/2563”,得到第五中间结果。

步骤3.3、对上述步骤3.2中得到的第五中间结果进行下取整,并将经过下取整之后得到的结果作为蓝色分量的取值。

步骤4、计算透明度分量:

步骤4.1、将上述步骤3.1中得到的第四中间结果除以“1/2563”所得到的余数作为第六中间结果。

步骤4.2、将上述步骤4.1中得到的第六中间结果除以“1/2564”,得到第七中间结果。

步骤4.3、对上述步骤4.2中得到的第七中间结果进行下取整,并将经过下取整之后得到的结果作为透明度分量的取值。

在本实施例的一些可选的实现方式中,可以按照如下所示的转化方法将运算结果转化为颜色数据:

步骤1、计算红色分量:

步骤1.1、将运算结果除以“1/128”,得到第一中间结果。

步骤1.2、对上述步骤1.1中得到的第一中间结果下取整,并将经过下取整之后得到的结果作为红色分量的取值。

步骤2、计算绿色分量:

步骤2.1、将运算结果除以“1/128”所得到的余数作为第二中间结果。

步骤2.2、将上述步骤2.1中得到的第二中间结果除以“1/1282”,得到第三中间结果。

步骤2.3、对上述步骤2.2中得到的第三中间结果进行下取整,并将经过下取整之后得到的结果作为绿色分量的取值。

步骤3、计算蓝色分量:

步骤3.1、将上述步骤2.1中得到的第二中间结果除以“1/1282”所得到的余数作为第四中间结果。

步骤3.2、将上述步骤3.1中得到的第四中间结果除以“1/1283”,得到第五中间结果。

步骤3.3、对上述步骤3.2中得到的第五中间结果进行下取整,并将经过下取整之后得到的结果作为蓝色分量的取值。

步骤4、计算透明度分量:对运算结果下取整,并将经过下取整之后得到的结果作为透明度分量的取值。

在本实施例的一些可选的实现方式中,颜色数据可以是包括红色分量、绿色分量和蓝色分量共三个分量的三元组。采用红色分量、绿色分量、蓝色分量来代表三种颜色的强度,并且利用这三种颜色的叠加来得到各种各样的颜色。图形处理器可以利用各种转化方法将运算结果转化为包括红色分量、绿色分量以及蓝色分量的颜色数据。

在本实施例的一些可选的实现方式中,可以按照如下所示的转化方法将运算结果转化为颜色数据:

步骤1、计算红色分量:

步骤1.1、将运算结果除以“1/256”,得到第一中间结果。

步骤1.2、对上述步骤1.1中得到的第一中间结果下取整,并将经过下取整之后得到的结果作为红色分量的取值。其中,上述下取整表示取不大于第一中间结果的最大整数。

步骤2、计算绿色分量:

步骤2.1、将运算结果除以“1/256”所得到的余数作为第二中间结果。

步骤2.2、将上述步骤2.1中得到的第二中间结果除以“1/2562”,得到第三中间结果。

步骤2.3、对上述步骤2.2中得到的第三中间结果进行下取整,并将经过下取整之后得到的结果作为绿色分量的取值。

步骤3、计算蓝色分量:

步骤3.1、将上述步骤2.1中得到的第二中间结果除以“1/2562”所得到的余数作为第四中间结果。

步骤3.2、将上述步骤3.1中得到的第四中间结果除以“1/2563”,得到第五中间结果。

步骤3.3、对上述步骤3.2中得到的第五中间结果进行下取整,并将经过下取整之后得到的结果作为蓝色分量的取值。

在本实施例的一些可选的实现方式中,可以按照如下所示的转化方法将运算结果转化为颜色数据:

步骤1、计算红色分量:

步骤1.1、将运算结果除以“1/128”,得到第一中间结果。

步骤1.2、对上述步骤1.1中得到的第一中间结果下取整,并将经过下取整之后得到的结果作为红色分量的取值。

步骤2、计算绿色分量:

步骤2.1、将运算结果除以“1/128”所得到的余数作为第二中间结果。

步骤2.2、将上述步骤2.1中得到的第二中间结果除以“1/1282”,得到第三中间结果。

步骤2.3、对上述步骤2.2中得到的第三中间结果进行下取整,并将经过下取整之后得到的结果作为绿色分量的取值。

步骤3、计算蓝色分量:

步骤3.1、将上述步骤2.1中得到的第二中间结果除以“1/1282”所得到的余数作为第四中间结果。

步骤3.2、将上述步骤3.1中得到的第四中间结果除以“1/1283”,得到第五中间结果。

步骤3.3、对上述步骤3.2中得到的第五中间结果进行下取整,并将经过下取整之后得到的结果作为蓝色分量的取值。

在步骤204中,图形处理器向中央处理器输出颜色数据。

在本实施例中,图形处理器将由上述步骤203中计算出的颜色数据向中央处理器输出。

在步骤205中,中央处理器将颜色数据转化为结果数据。

在本实施例中,中央处理器根据与上述步骤203中的将运算结果转化为颜色数据的各种转化方法中的各个步骤的逆运算,将图形处理器发送的颜色数据转化为结果数据。一般地,结果数据为浮点数,作为对待处理浮点数执行运算后的结果。

在本实施例的一些可选的实现方式中,若颜色数据为包括红色分量、绿色分量、蓝色分量、以及透明度分量的四元组,可以按照如下所示的转化方法将颜色结果转化为结果数据:

步骤1、将红色分量乘以“1/256”,得到第一中间结果。

步骤2、将绿色分量乘以“1/2562”,得到第二中间结果。

步骤3、将蓝色分量乘以“1/2563”,得到第三中间结果。

步骤4、将透明度分量乘以“1/2564”,得到第四中间结果。

步骤5、计算上述步骤1~4中得到的第一中间结果、第二中间结果、第三中间结果以及第四中间结果的总和,并将该计算结果作为结果数据。

在本实施例的一些可选的实现方式中,若颜色数据为包括红色分量、绿色分量、蓝色分量、以及透明度分量的四元组,可以按照如下所示的转化方法将颜色结果转化为结果数据:

步骤1、将红色分量乘以“1/128”,得到第一中间结果。

步骤2、将绿色分量乘以“1/1282”,得到第二中间结果。

步骤3、将绿色分量乘以“1/1283”,得到第三中间结果。

步骤4、计算上述步骤1~3中得到的第一中间结果、第二中间结果、第三中间结果以及透明度分量的总和,并将该计算结果作为结果数据。

在本实施例的一些可选的实现方式中,若颜色数据为包括红色分量、绿色分量以及蓝色分量的三元组,可以按照如下所示的转化方法将颜色结果转化为结果数据:

步骤1、将红色分量乘以“1/256”,得到第一中间结果。

步骤2、将绿色分量乘以“1/2562”,得到第二中间结果。

步骤3、将绿色分量乘以“1/2563”,得到第三中间结果。

步骤4、计算上述步骤1~3中得到的第一中间结果、第二中间结果以及第三中间结果的总和,并将该计算结果作为结果数据。

在本实施例的一些可选的实现方式中,若颜色数据为包括红色分量、绿色分量以及蓝色分量的三元组,可以按照如下所示的转化方法将颜色结果转化为结果数据:

步骤1、将红色分量乘以“1/128”,得到第一中间结果。

步骤2、将绿色分量乘以“1/1282”,得到第二中间结果。

步骤3、将蓝色分量乘以“1/1283”,得到第三中间结果。

步骤4、计算上述步骤1~3中得到的第一中间结果、第二中间结果、第三中间结果以及透明度分量的总和,并将该计算结果作为结果数据。

在本实施例的一些可选的实现方式中,图形处理器还可以接收中央处理器发送的待处理颜色数据。然后,图形处理器对待处理颜色数据进行处理,得到处理后的颜色数据。然后,图形处理器向中央处理器输出处理后的颜色数据。其中,图形处理器可以对待处理颜色数据进行各种处理,例如灰度化、二值化、模式转化、数据压缩以及数据筛选等。其中,颜色数据和处理后的颜色数据可以指能够表达颜色的数据,且数据的表示方式符合常用的颜色模式。一般地,常用的颜色模式有rgb模式(其中,r代表red红色、g代表green绿色、b代表blue蓝色)、rgba模式(其中,r代表red红色、g代表green绿色、b代表blue蓝色、a代表alpha透明度)、cmyk模式(其中,c代表cyan青色、m代表magenta品红色、y代表yellow黄色、k代表keyplate定位套版色即黑色)、hsb模式(h代表hue色相、s代表saturation饱和度、b代表brightness亮度)、yuv模式(其中,y代表明亮度,u代表色度,v代表浓度)、lab模式(其中,l代表亮度通道、a和b代表颜色通道,其中a通道的颜色是从红色到深绿,b通道的颜色是从蓝色到黄色)、位图模式(只使用黑白两种颜色之中的一种颜色)以及灰度模式(使用不同明度的灰色)等。

在本实施例的一些可选的实现方式中,图形处理器可以对待处理颜色数据进行灰度化处理。假设待处理颜色数据为包括红色分量、绿色分量以及蓝色分量共三个分量的三元组,那么处理后的颜色数据为包括三个相同的灰度分量的三元组。具体地,可以通过多种方法将待处理颜色数据进行灰度化处理。例如,可以将三个分量的总和的三分之一作为灰度分量,得到包括三个相同的灰度分量的三元组表示的处理后的颜色数据。例如,还可以将红色分量乘以30得到第一中间分量、将绿色分量乘以59得到第二中间分量、将蓝色分量乘以11得到第三中间分量,然后将第一中间分量、第二中间分量和第三中间分量的总和再加上五十,然后除以100所得到的结果作为灰度分量,得到包括三个相同的灰度分量的三合元组表示的处理后的颜色数据。

在本实施例的一些可选的实现方式中,图形处理器可以对待处理颜色数据进行模式转化。假设待处理颜色数据为包括亮度分量、色度分量以及浓度分量共三个分量的三元组,处理后的颜色数据为包括红色分量、绿色分量以及蓝色分量共三个分量的三元组。具体地,可以有利用各种方法将上述待处理颜色数据转化为上述处理后的颜色数据。例如,可以将亮度分量乘以1.164,然后加上浓度分量与1.596的乘积,再减去222.9所得到的结果作为红色分量。将亮度分量乘以1.164,然后减去色度分量与0.392的乘积,再减去浓度分量与0.823的乘积,最后加上135.6所得到的结果作为绿色分量。将亮度分量乘以1.164,然后加上色度分量与2.017的乘积,然后减去276.8所得到的结果作为蓝色分量。例如,还可以将浓度分量与128的差,然后乘以1.4075,再加上亮度分量所得到的结果作为红色分量。先计算色度分量与128的差,然后乘以0.3455得到第一中间变量,然后计算浓度分量与128的差,然后乘以0.7169得到第二中间变量,然后将亮度分量依次减去第一中间变量和第二中间变量之后所得到的结果作为绿色分量。计算色度分量与128的差,然后乘以1.799,然后加上色度分量,并将所得到的结果作为蓝色分量。

本申请的上述实施例提供的用于处理浮点数的系统通过图形处理器分担了中央处理器的浮点数运算的任务,对待处理的浮点数执行数学运算得出运算结果。由于图形处理器不能直接输出浮点数,因此,将运算结果先转化为颜色数据,然后再向中央处理器输出运算结果对应的颜色数据。中央处理器只需将图形处理器输出的颜色数据进行转化,即可得到结果数据,作为浮点数运算的结果,从而减轻了中央处理器的浮点运算任务负担。

进一步参见图3,图3是根据本实施例的用于处理浮点数的系统的又一个实施例的时序图300。

如图3所示,在步骤301中,中央处理器先将获取到的浮点数拆分成至少两部分,形成待处理浮点数。

在本实施例中,中央处理器可以先将浮点数运算任务中所涉及的浮点数进行拆分,按照各种拆分方法,将涉及的浮点数拆分成两个或两个以上多个部分,并且将拆分后的结果作为待处理浮点数发送给图形处理器。

在本实施例的一些可选的实现方式中,可以将上述浮点数拆分为两部分,包括指数部分和尾数部分。

在本实施例的一些可选的实现方式中,可以按照上述浮点数的位数将上述浮点数拆分为多个部分。例如,假设上述浮点数占用32位的存储空间,那么可以取上述浮点数的前16位作为一部分,后16位作为另一部分。还可以取上述浮点数的前8位作为一部分,后24位作为另一部分。还可以将上述浮点数中的每8位作为一部分,共拆分为4部分。

在本实施例的一些可选的实现方式中,可以提取上述浮点数的奇数位的数组成一部分,提取上述浮点数的偶数位的数组成另一部分。

在步骤302中,图形处理器接收中央处理器发送的待处理浮点数。

在本实施例中,基于上述步骤301中,中央处理器对浮点数运算任务中所涉及的浮点数拆分为多个部分,并将拆分后得到的多个部分作为待处理浮点数。图形处理器接收中央处理器发送的包括多个部分的待处理浮点数。

在步骤303中,图形处理器对待处理浮点数执行数学运算,得到运算结果。

在本实施例中,图形处理器对待处理浮点数执行数学运算,得到运算结果。具体的,图形处理器对待处理浮点数所包括的各个部分分别执行数学运算,得到与各个部分分别对应的各部分的运算结果。其中,数学运算可以包括常见的如加、减、乘、除、乘方、开方、对数等运算,还可以包括如导数、积分、卷积、取整等运算。

在步骤304中,图形处理器将运算结果转化为颜色数据。

在本实施例中,基于上述步骤303中得到的运算结果,图形处理器可以使用各种方法将运算结果转化为对应的颜色数据。具体地,图形处理器可以使用各种方法将上述步骤303中的待处理浮点数所包括的各个部分各自对应的运算结果分别转化为各个部分对应的颜色数据其中,颜色数据可以指能够表达颜色的数据,且数据的表示方式符合常用的颜色模式。一般地,常用的颜色模式有rgb模式(其中,r代表red红色、g代表green绿色、b代表blue蓝色)、rgba模式(其中,r代表red红色、g代表green绿色、b代表blue蓝色、a代表alpha透明度)、cmyk模式(其中,c代表cyan青色、m代表magenta品红色、y代表yellow黄色、k代表keyplate定位套版色即黑色)、hsb模式(h代表hue色相、s代表saturation饱和度、b代表brightness亮度)、yuv模式(其中,y代表明亮度,u代表色度,v代表浓度)、lab模式(其中,l代表亮度通道、a和b代表颜色通道,其中a通道的颜色是从红色到深绿,b通道的颜色是从蓝色到黄色)、位图模式(只使用黑白两种颜色之中的一种颜色)以及灰度模式(使用不同明度的灰色)等。

将运算结果转化为对应的颜色数据的转化过程具体可以参考图2对应实施例中的步骤203中的相关说明,在此不再赘述。

在步骤305中,图形处理器向中央处理器输出颜色数据。

在本实施例中,图形处理器将上述步骤304中的颜色数据向中央处理器输出。具体地,图形处理器将上述步骤304中的待处理浮点数所包括的各个部分所对应的颜色数据向中央处理器输出。

在步骤306中,中央处理器将颜色数据转化为结果数据。

在本实施例中,中央处理器根据与上述步骤304中的将运算结果转化为颜色数据的各种转化方法中的各个步骤的逆运算,将图形处理器发送的颜色数据转化为结果数据。具体地,中央处理器将步骤305中由图形处理器发送的待处理浮点数所包括的各个部分所对应的颜色数据转化为待处理浮点数所包括的各个部分所对应的结果数据。

将运算结果转化为颜色数据的转化过程具体可以参考图2对应实施例中的步骤205中的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,中央处理器还可以按照与上述步骤301中的各种拆分方法所对应的逆拆分方法来将图形处理器发送的包括多个部分对应的结果数据合并为完整结果数据。例如,若上述浮点数拆分为指数部分和尾数部分,那么中央处理器可以将图形处理器发送的指数部分对应的结果数据作为完整结果数据的指数部分,将图形处理器发送的尾数部分对应的结果数据作为完整结果数据的尾数部分。例如,若上述浮点数拆分为前后各16位的两部分,那么中央处理器可以将图形处理器发送的前浮点数前16位部分对应的结果数据作为完整结果数据的前半部分,将图形处理器发送的前浮点数后16位部分对应的结果数据作为完整结果数据的后半部分,将前后两个部分合并得到整体结果数据。

从图3中可以看出,与图2对应的实施例相比,本实施例中的用于处理浮点数的系统的时序300增加了步骤301。由此,通过中央处理器先将浮点数运算任务中的浮点数进行拆分,然后将拆分后得到的多个部分作为待处理浮点数发送给图形处理器进行处理,而图形处理器能够并行地同时执行各个部分的运算,从而进一步地提高了浮点数的运算速度。另外,由于经过拆分后的浮点数的各部分的字节数较小,可以一定程度降低了运算结果和将运算结果转化为颜色数据的转化过程中可能存在的精度损失。

进一步参考图4,其示出了根据本申请的用于处理浮点数的方法的一个实施例的流程图400。该用于处理浮点数的方法的流程400,包括以下步骤:

步骤401,接收中央处理器发送的待处理浮点数。

在本实施例中,当中央处理器要执行浮点数运算时,可以将浮点数运算的任务交给图形处理器处理。具体地,首先把待处理的浮点数传递给图形处理器。

步骤402,对待处理浮点数执行数学运算,得到运算结果。

在本实施例中,图形处理器对待处理浮点数执行数学运算,得到运算结果。其中,数学运算可以包括常见的如加、减、乘、除、乘方、开方、对数等运算,还可以包括如导数、积分、卷积、取整等运算。

步骤403,将运算结果转化为颜色数据。

在本实施例中,基于上述步骤202中得到的运算结果,图形处理器可以使用各种方法将运算结果转化为对应的颜色数据。其中,颜色数据可以指能够表达颜色的数据,且数据的表示方式符合常用的颜色模式。一般地,常用的颜色模式有rgb模式(其中,r代表red红色、g代表green绿色、b代表blue蓝色)、rgba模式(其中,r代表red红色、g代表green绿色、b代表blue蓝色、a代表alpha透明度)、cmyk模式(其中,c代表cyan青色、m代表magenta品红色、y代表yellow黄色、k代表keyplate定位套版色即黑色)、hsb模式(h代表hue色相、s代表saturation饱和度、b代表brightness亮度)、yuv模式(其中,y代表明亮度,u代表色度,v代表浓度)、lab模式(其中,l代表亮度通道、a和b代表颜色通道,其中a通道的颜色是从红色到深绿,b通道的颜色是从蓝色到黄色)、位图模式(只使用黑白两种颜色之中的一种颜色)以及灰度模式(使用不同明度的灰色)等。

在本实施例中,将运算结果转化为颜色数据的转化过程具体可以参考图2对应实施例中的步骤203的相关转化方式的说明,在此不再赘述。

步骤404,向中央处理器输出所述颜色数据。

在本实施例中,图形处理器将由上述步骤203中计算出的红色分量、绿色分量、蓝色分量以及透明度分量所组成的四元组作为颜色数据向中央处理器输出。

在本实施例的一些可选的实现方式中,图形处理器还可以接收中央处理器发送的待处理颜色数据。然后,图形处理器对待处理颜色数据进行处理,得到处理后的颜色数据。然后,图形处理器向中央处理器输出处理后的颜色数据。具体可以参考图2对应实施例中的步骤203的相关说明,在此不再赘述。

本实施例中的用于处理浮点数的方法的通过由中央处理器所在的终端设备中的其它处理器分担中央处理器的浮点数运算任务,减轻了中央处理器的负担,使得其它处理器在执行浮点数运算的任务时,中央处理器还可以执行终端设备中的其它任务,从而提高中央处理器所在的终端设备的整体性能。

进一步参考图5,作为对上述各图所示方法的实现,本申请提供了用于处理浮点数的装置的一个实施例,该装置实施例与图4所示的方法实施例相对应。

如图5所示,本实施例所述的用于处理浮点数的装置500包括浮点数接收单元501、浮点数计算单元502、转化单元503和输出单元504。其中,浮点数接收单元501,配置用于接收中央处理器发送的待处理浮点数;浮点数计算单元502,配置用于对待处理浮点数执行数学运算,得到运算结果;转化单元503,配置用于将运算结果转化为颜色数据;输出单元504,配置用于向中央处理器输出颜色数据。

在本实施例中,用于生成信息的装置500中:浮点数接收单元501、浮点数计算单元502、转化单元503和输出单元504的具体处理及其所带来的技术效果可分别参考图4对应实施例中的步骤401、步骤402、步骤403和步骤404的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,上述颜色数据以四元组的形式存储,其中,四元组包括红色分量、绿色分量、蓝色分量以及透明度分量。

在本实施例的一些可选的实现方式中,上述装置还包括:颜色数据接收单元(图中未示出),配置用于接收中央处理器发送的待处理颜色数据;颜色数据处理单元(图中未示出),配置用于对待处理颜色数据进行处理,得到处理后的颜色数据;输出单元504进一步配置用于向中央处理器输出处理后的颜色数据。

本申请的上述实施例提供的装置,通过浮点数接收单元501接收中央处理器发送的待处理浮点数,然后由浮点数计算单元502对待处理浮点数执行数学运算,得到运算结果,然后通过转化单元503将上述运算结果转化为对应的颜色数据,最后输出单元504将颜色数据向中央处理器输出,从而分担了中央处理器的浮点数运算的任务,使得中央处理器可以处理其他任务,从而提高了中央处理器的任务处理效率。

下面参考图6,其示出了适于用来实现本申请实施例中的图形处理器600的结构示意图。图6示出的仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图6所示,图形处理器600包括存储部分601、缓存部分602、控制部分603和计算部分604。其中,计算部分604主要执行各种运算,如算数运算、移位操作、地址运算与转换等,运算过程中所涉及的数据可以从存储部分601和/或缓存部分602获取。存储部分601主要用于保存在计算过程中产生的数据或者指令等。控制单元603主要对指令进行译码,并且向存储部分601、缓存部分602和计算部分604发出执行指令的多个控制信号。缓存部分602可以访问存储部分601读取所需数据。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为终端设备及计算机软件程序。例如,本公开的实施例包括一种终端设备及计算机程序产品。其中,终端设备包括图形处理器,图形处理器可以与终端设备所包括的中央处理器通信连接。计算机程序产品包括承载在终端设备上的可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以调用图形处理器来执行本申请的方法中限定的上述功能。

需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、静态随机访问存储器(sram)、动态随机访问存储器(dram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在图形处理器中,例如,可以描述为:一种图形处理器,包括浮点数接收单元、浮点数计算单元、转化单元和输出单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为接收中央处理器发送的待处理浮点数的单元。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:接收中央处理器发送的待处理浮点数;对待处理浮点数执行数学运算,得到运算结果;将运算结果转化为颜色数据;向中央处理器输出颜色数据。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1