CN117422807A - 颜色值的确定方法及装置、电子设备、计算机存储介质 - Google Patents

颜色值的确定方法及装置、电子设备、计算机存储介质 Download PDF

Info

Publication number
CN117422807A
CN117422807A CN202311733451.1A CN202311733451A CN117422807A CN 117422807 A CN117422807 A CN 117422807A CN 202311733451 A CN202311733451 A CN 202311733451A CN 117422807 A CN117422807 A CN 117422807A
Authority
CN
China
Prior art keywords
color value
value
texel
color
pixel
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.)
Granted
Application number
CN202311733451.1A
Other languages
English (en)
Other versions
CN117422807B (zh
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202311733451.1A priority Critical patent/CN117422807B/zh
Publication of CN117422807A publication Critical patent/CN117422807A/zh
Application granted granted Critical
Publication of CN117422807B publication Critical patent/CN117422807B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本申请实施例公开了一种颜色值的确定方法及装置、电子设备、计算机存储介质。该颜色值的确定方法包括:获取影响目标像素的多个纹素中每个纹素的移位颜色值;每个纹素的移位颜色值是根据纹素的纹理格式对纹素的纹素颜色值进行第一移位处理得到的;不同纹理格式的移位颜色值的小数值的小数位数和整数位数均相同;基于每个纹素对目标像素的影响因子和每个纹素的移位颜色值,确定目标像素的像素颜色值;按照纹理格式对应的还原方式,对像素颜色值进行还原处理,得到目标像素的目标颜色值。能够减少硬件模块的占用空间,从而节省图形处理器的占用空间。

Description

颜色值的确定方法及装置、电子设备、计算机存储介质
技术领域
本申请涉及图像处理技术领域,尤其涉及颜色值的确定方法及装置、电子设备、计算机存储介质。
背景技术
对使用了材质贴图的像素,通常需要图形处理器(Graphics Processing Unit,GPU)通过纹理滤波的方式来确定其颜色值。由于纹理格式存在多种,针对不同纹理格式进行纹理滤波的滤波单元的结构也不同。为了满足对不同纹理格式的纹理滤波需求,图形处理器的滤波模块中需要配置不同的滤波单元,导致图形处理器占用空间大。
发明内容
本申请实施例提供一种颜色值的确定方法及装置、电子设备、计算机存储介质,减小了图形处理器占用的空间。
本申请的技术方案是这样实现的:
本申请实施例提供了一种颜色值的确定方法,包括:
获取影响目标像素的多个纹素中每个纹素的移位颜色值;每个纹素的所述移位颜色值是根据所述纹素的纹理格式对所述纹素的纹素颜色值进行第一移位处理得到的;不同纹理格式的所述移位颜色值的小数值的小数位数和整数位数均相同;基于所述每个纹素对目标像素的影响因子和所述每个纹素的移位颜色值,确定目标像素的像素颜色值;按照所述纹理格式对应的还原方式,对所述像素颜色值进行还原处理,得到所述目标像素的目标颜色值。
本申请实施例提供了一种颜色值的确定装置,包括:
获取模块,用于获取影响目标像素的多个纹素中每个纹素的移位颜色值;每个纹素的所述移位颜色值是根据所述纹素的纹理格式对所述纹素的纹素颜色值进行第一移位处理得到的;不同纹理格式的所述移位颜色值的小数值的小数位数和整数位数均相同;
确定模块,用于基于所述每个纹素对目标像素的影响因子和所述每个纹素的移位颜色值,确定目标像素的像素颜色值;
还原模块,用于按照所述纹理格式对应的还原方式,对所述像素颜色值进行还原处理,得到所述目标像素的目标颜色值。
本申请实施例提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于在所述计算机程序运行时,执行上述颜色值的确定方法。
本申请实施例提供了一种计算机存储介质,其上存储有可执行指令,用于被处理器执行时,实现上述颜色值的确定方法。
本申请实施例提供一种颜色值的确定方法及装置、电子设备、计算机存储介质,由于移位颜色值是电子设备对从纹素中提取的原始的纹理颜色值进行第一移位处理得到的,不同纹理格式的纹素的移位颜色值的小数值的小数位和整数位均相同;如此,电子设备可以在进行移位颜色值的处理时采用相同结构的硬件模块,再配置针对不同纹理格式进行还原处理的硬件模块,就可以实现对不同纹理格式的纹理滤波。如此,能够减少纹理滤波时硬件模块的占用空间,从而节省电子设备中图形处理器的占用空间。
附图说明
图1示出了本申请实施例提供的一种像素和纹素的相对位置示意图;
图2示出了本申请实施例提供的一种相关技术中浮点格式的纹理滤波单元的硬件结构示意图;
图3示出了本申请实施例提供的一种相关技术中归一化格式的纹理滤波单元的硬件结构示意图;
图4示出了本申请实施例提供的一种纹理滤波单元的结构示意图;
图5示出了本申请实施例提供的一种颜色值的确定方法的流程示意图一;
图6示出了本申请实施例提供的一种颜色值的确定方法的流程示意图二;
图7示出了本申请实施例提供的一种颜色值的确定方法的流程示意图三;
图8示出了本申请实施例提供的一种颜色值的确定方法的流程示意图四;
图9示出了本申请实施例提供的一种颜色值的确定方法的流程示意图五;
图10示出了本申请实施例提供的一种颜色值的确定方法的流程示意图六;
图11示出了本申请实施例提供的一种颜色值的确定方法的流程示意图七;
图12示出了本申请实施例提供的一种颜色值的确定方法的流程示意图八;
图13示出了本申请实施例提供的一种颜色值的确定方法的流程示意图九;
图14示出了本申请实施例提供的一种颜色值的确定方法的流程示意图十;
图15示出了本申请实施例提供的一种颜色值的确定装置的结构示意图一;
图16示出了本申请实施例提供的一种颜色值的确定装置的结构示意图二;
图17示出了本申请实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
为便于理解本方案,在对本申请实施例进行说明之前,对本申请实施例中的应用背景进行说明。
纹理滤波是对一个使用材质贴图的像素,使用临近的一个或多个纹素计算其颜色值的方法。纹理滤波包括线性滤波和非线性滤波。由于像素和纹素往往不完全重合,像素的中心点可能不是纹素的中心点,影响一个像素纹理的纹素可能包括一个或多个纹素。以双线性滤波为例,像素和纹素的相对位置,如图1所示,16个纹素包括纹素0-纹素15,虚线包围的方框表示一个像素,该像素的颜色值C可以根据纹素5的颜色值、纹素6的颜色值/>、纹素9的颜色值/>和纹素10的颜色值/>来生成,如公式(1)所示。
公式(1)
其中,为对应/>的加权系数,表示对像素的颜色值/>影响的大小,i为0-3中的任意一个。基于公式(1),纹理滤波单元可以包括加法器和乘法器。由于纹理格式的多样性,不同纹理格式的颜色值的组成方式可能不同,位数也可能不同。如此,不同纹理格式的纹理滤波单元中,加法器和乘法器的预设位数可能不同,对于包含指数的纹理滤波单元还需要移位器。因此,不同纹理格式的纹理滤波单元的硬件结构可能不同。示例性的,相关技术中浮点格式的纹理滤波单元的硬件结构,如图2所示,该纹理滤波单元用于对32为浮点格式进行纹理滤波,该纹理滤波单元包括获取模块2001(包括获取单元1-4)、乘法器模块2002(包括乘法器1-4)、指数比较器2003、右向移位器模块2004(包括右向移位器1-4)、加法器2005和指数归一化模块2006。其中,获取模块2001用于从对应的纹素中提取颜色信息;颜色信息包括颜色值s1-s4;乘法器模块2002、指数比较器2003、右向移位器模块2004和加法器2005用于基于公式(1)完成运算,再通过指数归一化模块2006将运算结果转换为浮点格式。图3示出了一种相关技术中归一化格式的纹理滤波单元的硬件结构,该纹理滤波单元用于对unorm24进行纹理滤波,如图3所示,该纹理滤波单元包括获取模块3001(包括获取单元5-8)、乘法器模块3002(包括乘法器5-8)、加法器3003和四舍五入模块3004。其中,获取模块3001用于从对应的纹素中提取颜色值(包括:s5-s8);乘法器模块3002和加法器3003用于基于公式(1)完成运算,再通过四舍五入模块3004将运算结果转换为归一化格式。
相关技术中的一种纹理滤波单元的结构,如图4所示,纹理滤波单元包括:多路选择器4001、整型纹理滤波单元4002和浮点类型纹理滤波单元4003。其中,多路选择器4001用于根据纹素的纹理格式,将该纹理格式的颜色值传输至对应纹理格式的滤波单元(整型纹理滤波单元4002或者浮点类型纹理滤波单元4003);整型纹理滤波单元4002用于对至少一个纹素的整型格式颜色值进行处理,生成像素的整型格式颜色值;浮点类型纹理滤波单元4003用于对至少一个纹素的浮点格式颜色值进行处理,生成像素的浮点格式颜色值。可以看出,相关技术中,为了满足对多种纹理格式的纹理滤波需求,滤波模块需要配置多种纹理格式的纹理滤波单元,导致图形处理器占用空间大。
为了解决上述问题,本申请实施例提供一种颜色值的确定方法,如图5所示,该方法可以包括:S101-S103。
S101、获取影响目标像素的多个纹素中每个纹素的移位颜色值;每个纹素的移位颜色值是根据纹素的纹理格式对纹素的纹素颜色值进行第一移位处理得到的;不同纹理格式的移位颜色值的小数值的小数位数和整数位数均相同。
在本申请实施例中,电子设备需要从影响目标像素的多个纹素中确定每个纹素的移位颜色值,将每个纹素的移位颜色值输入纹理滤波单元,得到目标像素的颜色值。其中,影响目标像素的多个纹素的数量可以根据需要设置,对此,本申请实施例不作限制。如图1所示,影响目标像素的多个纹素可以包括9个纹素:纹素0-2、纹素4-6和纹素8-10,也可以包括4个纹素:纹素5、纹素6、纹素9和纹素10等。在本申请的一些实施例中,电子设备可以根据与目标像素之间的距离,确定多个纹素。例如,电子设备可以将与目标像素之间的距离小于预设距离阈值的纹素,作为影响目标像素的多个纹素;预设距离阈值可以根据需要设置,本申请实施例不作限制。
在本申请实施例中,电子设备从纹素中提取原始的纹理颜色值后,可以对不同纹理格式的纹理颜色值进行第一移位处理,得到移位颜色值,移位颜色值为小数值和进制底数的指数值次幂的乘积;这里,不同纹理格式的纹素的移位颜色值表示为公式(2)的形式。
公式(2)
其中,为小数值,/>为进制底数2,/>为指数值。不同纹理格式的/>的小数位数相同,整数位数也相同。其中,小数位数和整数位数均可以根据需要设置,本申请实施例不作限制。
表1
表1示出了32位浮点格式的数值组成方式,如表1所示,32位浮点格式的数值的最高位为符号位,符号位之后的8位为指数位,最后23位为尾数位,小数值的整数位默认为1。
示例性的,32位浮点格式的纹素颜色值的指数位为0b10000010,表示十进制数值130,如公式(3)所示;尾数位是0b11100000000000000000000,表示十进制数值0.875,如公式(4)所示;符号位是0,表示正数。其纹理颜色值的十进制数值通过公式(5)计算得到。
公式(3)
公式(4)
公式(5)
其中,偏置数bias为127。
在一些实施例中,为预设整数1合并23位尾数位,共计24位,表示为“1.23”,为 3。则32位浮点格式的移位颜色值可以表示“1.23”×23。公式(5)中的纹理颜色值可以表示 为“1.11100000000000000000000”×23,也即1.875×23。对于纹理格式为unorm24的纹理颜 色值,电子设备可以将其小数点向左移至最高位的值T之后,得到的小数值可以表示为 “T.23”,为23。unorm24的纹理颜色值可以表示为“T.23”×23。unorm24和32位浮点格式的 小数值的小数位的位数均为23,整数位的位数均为1。
在一些实施例中,共计25位,整数位为1位,小数位为24位。32位浮点格式的纹理 颜色值也可以表示为“0.24”×24,如此,电子设备可以将unorm24格式的颜色值的小数点向 左移至T之前,得到的小数值可以表示为“0.24”,为24。unorm24的纹理颜色值可以表示 为“0.24”×224。如此,unorm24和32位浮点格式的小数值的小数位的位数均为24,整数位 的位数均为1。
在本申请的一些实施例中,如果纹素的纹理格式为浮点格式,纹素颜色值即为二进制原码,如果纹素颜色值为负数,电子设备在对二进制原码计算前,需要将纹素颜色值取补码,再进行移位,得到移位颜色值。
在本申请的一些实施例中,如果纹素的纹理格式为有符号归一化snorm格式,纹素颜色值为正数则为二进制原码,电子设备可以直接进行移位,得到移位颜色值,再进行计算。纹素颜色值为负数则为二进制补码。电子设备可以先对纹素颜色值求补码,得到二进制原码,再进行移位,得到移位颜色值。
需要说明的是,各种颜色值在进行移位、乘法等计算前,需要用原码;而进行加法计算前,需要用补码。对于不同格式的颜色值,原码和补码之间的转换可以根据需要设置;对此,本申请实施例不作限制。
S102、基于每个纹素对目标像素的影响因子和每个纹素的移位颜色值,确定目标像素的像素颜色值。
在本申请实施例中,电子设备在确定每个纹素的移位颜色值之后,可以基于目标像素的影响因子对移位颜色值进行加权求和处理,得到像素颜色值。由于每个纹素的移位颜色值中的指数值可能不同,在通过加法器求和时,需要先对加权颜色值进行第二移位处理,得到指数值相同的第二移位颜色值,再将多个纹素的第二移位颜色值相加,得到目标像素的像素颜色值。
S103、按照纹理格式对应的还原方式,对像素颜色值进行还原处理,得到目标像素的目标颜色值。
在本申请实施例中,电子设备在得到像素颜色值的情况下,还需要对像素颜色值进行还原处理,将像素颜色值还原为多个纹素的纹理格式的颜色值。这里,不同纹理格式的还原方式可能不同。
在本申请的一些实施例中,在纹理格式为浮点格式的情况下,电子设备需要对像素颜色值进行浮点还原处理,即对像素颜色值进行移位,得到目标颜色值的指数位的值和尾数位的值。
在本申请的一些实施例中,在纹理格式为有符号归一化格式的情况下,电子设备可以先从像素颜色值中得到不包括符号的待还原颜色值,再根据像素颜色值的正负和待还原颜色值,进行四舍五入,得到目标颜色值。
在本申请的一些实施例中,在纹理格式为无符号归一化格式的情况下,电子设备可以根据待还原颜色值,进行四舍五入,得到目标颜色值。这里,电子设备可以从待还原颜色值中截取最高的预设尾数位数的值作为目标颜色值的整数位,以及最高的预设尾数位数之后的一位作为小数位,得到归一化颜色值,再对归一化颜色值进行四舍五入,得到目标颜色值。
可以理解的是,由于移位颜色值是电子设备对从纹素中提取的原始的纹理颜色值进行第一移位处理得到的,不同纹理格式的纹素的移位颜色值的小数值的小数位和整数位均相同;如此,电子设备可以在进行移位颜色值的处理时采用相同结构的硬件模块,再配置针对不同纹理格式进行还原处理的硬件模块,就可以实现对不同纹理格式的纹理滤波。如此,能够减少纹理滤波时硬件模块的占用空间,从而节省电子设备中图形处理器的占用空间。
在本申请的一些实施例中,S102中基于每个纹素对目标像素的影响因子和每个纹素的移位颜色值,确定目标像素的像素颜色值的实现可以包括:
S1021、基于每个纹素对目标像素的影响因子、多个纹素的指数值对多个纹素的移位颜色值进行加权求和处理,得到目标像素的像素颜色值。
在本申请实施例中,电子设备先对多个纹素的移位颜色值进行加权处理,得到加权颜色值之后,需要根据多个纹素的指数值对加权颜色值进行第二移位处理,第二移位处理是对加权颜色值的小数点向左移,同时增加指数值的过程。对于每个移位颜色值,小数点左移的位数与指数值增加的值相同;对于指数值不同的移位颜色值,小数点左移的位数不同。其中,小数点左移的位数可以根据需要设置,本申请实施例不做限制。
在本申请实施例中,在多个纹素的移位颜色值的指数值不同的情况下,小数点左移的位数,大于或者等于多个移位颜色值中指数值的最大值和对应的移位颜色值的指数值之间的差值;在多个纹素的移位颜色值的指数值相同的情况下,小数点左移的位数大于或者等于零。
可以理解的是,通过加权求和处理,可以根据不同纹理格式的颜色值的指数值,进行第二移位处理,将不同纹理格式的颜色值的指数值得到调整至相同,从而方便颜色值的加法器处理。
在本申请的一些实施例中,S101中获取影响目标像素的多个纹素中每个纹素的移位颜色值的实现,如图6所示,可以包括:S201-S202。
S201、获取每个纹素的颜色信息;每个纹素的颜色信息包括纹素颜色值和纹理格式。
在本申请实施例中,电子设备可以从影响目标像素的多个纹素中,提取每个纹素的颜色信息,颜色信息包括纹素颜色值及其纹理格式。如此,电子设备可以根据颜色信息确定每个纹素的移位颜色值。
S202、根据纹理格式,对每个纹素的纹素颜色值进行第一移位处理,得到每个纹素的移位颜色值。
在本申请实施例中,电子设备在确定每个纹素的颜色信息之后,可以根据颜色信息中的纹理格式,对颜色信息中的纹素颜色值进行第一移位处理,得到移位颜色值。
可以理解的是,电子设备可以获取每个纹素的纹素颜色值和纹理格式,如此,电子设备就可以根据纹素的纹理格式对纹素颜色值进行第一移位处理,从而得到移位颜色值。
在本申请的一些实施例中,纹素的纹理格式为浮点格式;S202中根据纹理格式,对每个纹素的纹素颜色值进行第一移位处理,得到每个纹素的移位颜色值的实现,如图7所示,可以包括:S301-S303。
S301、根据每个纹素的纹素颜色值的指数位的值,确定对应的移位颜色值的指数值。
S302、将预设整数作为所述移位颜色值中小数值的整数位的值。
S303、将纹素颜色值的尾数位的值,确定为移位颜色值中小数值的小数位的值。
在本申请实施例中,电子设备在得到浮点格式的纹素颜色值之后,可以从纹素颜色值中提取指数位和尾数位,根据指数位的值和尾数位的值,确定移位颜色值。
在本申请实施例中,电子设备可以将纹素颜色值的指数位的值与偏置数bias的差值确定为移位颜色值的指数值,将预设整数作为移位颜色值中小数值的整数位的值,以及,将纹素颜色值的尾数位的值作为移位颜色值中小数值的小数位的值。在本申请实施例中,电子设备对纹素颜色值如果没有进行移位,表示将纹素颜色值的小数点移动零位。
示例性的,纹素颜色值的符号位的值为0,表征纹素颜色值为正数;纹素颜色值的 符号位的值为1,表征纹素颜色值为负数。01000001011100000000000000000000为32位浮点 格式的纹素颜色值,其移位颜色值为“”×23。1100000101110 0000000000000000000为32位浮点格式的纹素颜色值,其移位颜色值也为“”×23
可以理解的是,浮点格式的纹素颜色值包括指数位和尾数位,电子设备可以不对其进行移位,直接根据纹素颜色值,快速确定出指数位的值和小数值。
在本申请的一些实施例中,纹素的纹理格式为归一化格式;S202中根据纹理格式,对每个纹素的纹素颜色值进行第一移位处理,得到每个纹素的移位颜色值的实现,如图8所示,可以包括:S401-S403。
S401、根据每个纹素的纹素颜色值,确定对应纹素的归一颜色值;归一颜色值为不包括符号值的原码颜色值;符号值表征纹素颜色值为正数或负数。
在本申请实施例中,归一化格式包括有符号归一化格式和无符号归一化格式。无符号归一化格式的纹素颜色值中不包括符号值,有符号归一化的纹素颜色值中的最高位的值为符号值。纹素颜色值包括符号值的情况不同,电子设备确定归一化颜色值的方式也不同。
在本申请的一些实施例中,归一化格式为无符号归一化格式,纹素颜色值不包括符号值,电子设备可以将纹素颜色值作为归一颜色值。示例性的,纹素颜色值为10110001,unorm8格式,则归一颜色值为10110001。
在本申请的一些实施例中,归一化格式为有符号归一化格式,在纹素颜色值的符号值表征纹素颜色值为正数的情况下,电子设备可以将纹素颜色值中除符号值以外的其他值作为归一颜色值。
在本申请的一些实施例中,归一化格式为有符号归一化格式,在纹素颜色值的符号值表征纹素颜色值为负数的情况下,电子设备可以将纹素颜色值中除符号值以外的其他值的补码作为归一颜色值;由于纹素颜色值为负数时,其纹素颜色值本身为补码颜色值,在移位处理前需要将其转换为原码颜色值,得到归一颜色值。
在本申请的实施例中,纹素颜色值的符号位为纹素颜色值的高位,符号位的位数可以根据需要设置。在一些实施例中,符号位的位数为1,纹素颜色值的最高位为符号位。
示例性的,纹素颜色值为10110001,snorm8格式。符号位为最高位“1”表征纹素颜色值为负数,则归一颜色值为纹素颜色值0b0110001的补码0b1001111。
S402、将归一颜色值的小数点向左移第一移位数,得到移位颜色值的小数值;第一移位数为浮点格式的移位颜色值中尾数位的位数。
S403、将第一移位数作为移位颜色值的指数值。
在本申请实施例中,电子设备在得到归一颜色值之后,可以将归一颜色值的小数点向左移第一移位数,得到移位颜色值的小数值;将第一移位数作为移位颜色值的指数值。其中,第一移位数为预设尾数位数,预设尾数位数可以根据需要设置。在一些实施例中,预设尾数位数可以为浮点格式的移位颜色值中尾数位的位数。
示例性的,浮点格式包括23位尾数位,浮点格式的移位颜色值中小数值包括1位整数位和23位小数位。unorm24的纹素颜色值为24位,需要将小数点左移23位,才能得到具有23位小数位,且整数位为纹素颜色值的最高位的小数值,指数值为23的移位颜色值。snorm24的纹素颜色值为24位,最高位为符号位,若符号位的符号值为0,则需要将低位23位的补码的小数点左移23位,整数位补0,得到移位颜色值的小数值。
可以理解的是,电子设备根据纹素颜色值确定归一颜色值之后,可以对归一颜色值左移,得到移位颜色值;在左移的第一移位数与浮点格式的尾数位的位数相同的情况下,电子设备可以通过相同的硬件模块对浮点格式和归一化格式的颜色值进行加权求和处理,节省加权求和所采用的硬件模块的占用空间。
在本申请的一些实施例中,S1021中基于每个纹素对目标像素的影响因子、多个纹素的指数值对多个纹素的移位颜色值进行加权求和处理,得到目标像素的像素颜色值的实现,如图9所示,可以包括:S501-S503。
S501、基于每个纹素对目标像素的影响因子,对多个纹素的移位颜色值进行加权处理,得到每个纹素的加权颜色值。
在本申请实施例中,电子设备可以将每个纹素对目标像素的影响因子和对应纹素的移位颜色值相乘,得到每个纹素的加权颜色值。
S502、基于多个纹素的指数值,对每个加权颜色值进行第二移位处理,得到每个纹素的第二移位颜色值。
在本申请实施例中,电子设备可以对加权颜色值进行第二移位处理,得到第二移位颜色值;每个纹素的第二移位颜色值的指数值相同。这里,第二移位处理可以为将加权颜色值的小数点向右移动,也可以为将加权颜色值的小数点向左移动;左移的位数或右移的位数可以根据第二移位颜色值中小数值的小数位的位数确定。
S503、对多个纹素的第二移位颜色值求和,得到目标像素的像素颜色值。
在本申请实施例中,电子设备在得到每个纹素的第二移位颜色值之后,可以将多个第二移位颜色值相加,得到目标像素的像素颜色值。电子设备可以根据像素颜色值的最高位确定像素颜色值的正负;最高位为1表示负数,最高位为0表示正数。
在本申请的一些实施例中,S503中对多个纹素的第二移位颜色值求和,得到目标像素的像素颜色值的实现,可以包括:S5031-S5032。
S5031、将每个第二移位颜色值的小数值更新为对应的第二移位颜色值的小数值的补码,得到多个求和颜色值。
S5032、将多个求和颜色值的和,作为目标像素的像素颜色值。
在本申请实施例中,在进行移位处理时颜色值采用的是原码,得到的第二移位颜色值为原码。如果纹素颜色值是负数,在进行求和时,需要将原码转换为补码,用补码相加。
在本申请实施例中,电子设备在得到第二移位颜色值后,可以对每个第二移位颜色值的小数值取补码,得到每个求和颜色值,再将每个求和颜色值相加的和作为目标像素的像素颜色值。
可以理解的是,电子设备对移位颜色值进行加权处理得到加权颜色值之后,可以通过第二移位处理,将多个加权颜色值的指数位对齐之后再求和,提高像素颜色值的准确性。
在本申请的一些实施例中,S502中基于多个纹素的指数值,对每个加权颜色值进行第二移位处理,得到每个纹素的第二移位颜色值中的实现,如图10所示,可以包括:S601-S602。
S601、将加权颜色值中小数值的小数点向左移第二移位数,得到第二移位颜色值的小数值;第二移位数和加权颜色值的指数的和大于或者等于多个纹素的指数值中的最大指数值。
S602、将加权颜色值中指数值增加第二移位数,得到第二移位颜色值的指数值。
在本申请实施例中,电子设备可以将加权颜色值的小数点向左移第二移位数,得到第二移位颜色值的小数值。第二移位颜色值的指数值为第二移位数和加权颜色值的指数的和,第二移位颜色值的指数值可以大于或者等于多个加权颜色值的指数值中的最大指数值。
在本申请的一些实施例中,纹理格式为浮点格式,第二移位颜色值的指数值等于最大指数值。例如,多个加权颜色值包括:1.10×23和1.01×25,则第二移位颜色值的指数值为5。电子设备可以将1.10×23中1.10的小数点左移2位,得到0.011×25。第二移位颜色值包括:0.011×25和1.01×25
在本申请的一些实施例中,纹理格式为归一化格式,第二移位颜色值的指数值等于纹素颜色值中小数位的位数。
在本申请实施例中,归一化格式的纹素颜色值中小数位的位数均相同,电子设备对加权颜色值左移的第二移位数为0。
在本申请的一些实施例中,纹素的纹理格式为浮点格式;S103中按照纹理格式对应的还原方式,对像素颜色值进行还原处理,得到目标像素的目标颜色值的实现,如图11所示,可以包括:S701-S703。
S701、将像素颜色值转换为待还原浮点颜色值;待还原浮点颜色值为原码颜色值。
在本申请实施例中,如果纹素颜色值为正数,像素颜色值本身为原码颜色值,则电子设备可以将像素颜色值作为待还原浮点颜色值。如果纹素颜色值为负数,像素颜色值本身为补码颜色值,则电子设备需要将纹素颜色值中的小数值的小数位的值还原为原码格式,再将最高位符号位设置为1,得到待还原浮点颜色值。
S702、对待还原浮点颜色值进行第三移位处理,得到浮点颜色值。
在本申请实施例中,电子设备在确定待还原浮点颜色值之后,需要对待还原浮点颜色值进行第三移位处理,得到浮点颜色值,使浮点颜色值的小数值的整数位为浮点格式对应的预设整数。
在本申请的一些实施例中,S702中对待还原浮点颜色值进行第三移位处理,得到浮点颜色值的实现,可以包括:S7021-S7022。
S7021、将待还原浮点颜色值中小数值的小数点向右移第三移位数,得到浮点颜色值的小数值;浮点颜色值中小数值的整数位为预设整数。
在本申请实施例中,电子设备可以将待还原浮点颜色值中小数值的小数点向右移第三移位数,得到的小数值为浮点颜色值的小数值。在本申请实施例中,电子设备可以将待还原浮点颜色值中小数值的小数点向右移,直到预设整数为小数值的整数位的值时停止,右移的位数即为第三移位数。
S7022、将像素颜色值的指数值减去第三移位数,得到浮点颜色值的指数值。
在本申请实施例中,待还原浮点颜色值的小数值在小数点右移之后,其指数值需要减少,才能颜色值不变。待还原浮点颜色值的小数点右移第三移位数,电子设备可以将像素颜色值的指数值减去第三移位数,得到浮点颜色值的指数值。
示例性的,像素颜色值为: 0.00101×230,则第三移位数为3,可以移至“1”为整数位的值。小数点右移三位后,得到浮点颜色值为:1.01×227
S703、根据像素颜色值和浮点颜色值,确定目标颜色值。
在本申请实施例中,电子设备在得到浮点颜色值的小数值和浮点颜色值的指数值之后,可以根据像素颜色值的正负性质、浮点颜色值的小数值和浮点颜色值的指数值,确定目标颜色值。其中,浮点颜色值的小数值用于确定目标颜色值的尾数位的值,浮点颜色值的指数值用于确定目标颜色值的指数位的值,像素颜色值是正数还是负数,用于确定目标颜色值的符号位的值。
在本申请的一些实施例中,S703中根据纹素颜色值和浮点颜色值,确定目标颜色值的实现,可以包括:S7031-S7033。
S7031、将浮点颜色值的小数值的小数位的值,确定为目标颜色值的尾数位的值。
S7032、将浮点颜色值的指数值作为目标颜色值的指数位的值。
在本申请实施例中,电子设备可以将浮点颜色值的小数值作为目标颜色值的尾数位的值;将浮点颜色值的指数值作为目标颜色值的指数位的值。
S7033、将与像素颜色值的正负性质对应的预设符号值,确定为目标颜色值的符号位的值。
在本申请实施例中,像素颜色值为正数,预设符号值为0;像素颜色值为负数,预设符号值为1。
可以理解的是,在纹素颜色值为浮点格式的情况下,电子设备可以根据像素颜色值的正负性质,对像素颜色值进行指数归一化,得到与多个纹素的纹理格式一致的目标颜色值。
在本申请的一些实施例中,纹素的纹理格式为归一化格式;S103中按照纹理格式对应的还原方式,对像素颜色值进行还原处理,得到目标像素的目标颜色值的实现,如图12所示,可以包括:S801-S803。
S801、根据像素颜色值的正负性质,对像素颜色值进行第四移位处理,得到待还原归一化颜色值;待还原归一化颜色值为原码颜色值。
在本申请实施例中,如果纹素颜色值为归一化格式,电子设备在得到像素颜色值之后,需要对像素颜色值进行四舍五入,得到目标颜色值。而四舍五入需要针对原码进行操作,因此,电子设备需要根据像素颜色值的正负性质,进行第四移位处理,得到待还原归一化颜色值。其中,第四移位处理需要使待还原归一化颜色值的整数位数与纹素颜色值的整数位数相同。示例性的,纹素颜色值的格式为unorm24,待还原归一化颜色值的整数位数为24。
在本申请的一些实施例中,在像素颜色值的正负性质表征像素颜色值为正数的情况下,电子设备可以将像素颜色值的小数点向右移第一移位数,得到待还原归一化颜色值。
在本申请实施例中,如果像素颜色值为正数,则像素颜色值本身为原码颜色值,电子设备可以对像素颜色值进行第一移位处理的逆处理,将像素颜色值的小数点右移第一移位数,得到待还原归一化颜色值。
在本申请的一些实施例中,在像素颜色值的正负性质表征像素颜色值为负数的情况下,将像素颜色值的小数位的值更新为像素颜色值的小数位的补码的值,得到负数颜色值;将负数颜色值的小数点向右移预设尾数位数,得到待还原归一化颜色值。
在本申请实施例中,如果像素颜色值为负数,则像素颜色值为补码颜色值,电子设备需要将像素颜色值取补码,还原为原码颜色值。这里,电子设备可以将像素颜色值中小数值的小数位的值更新为其补码,得到的负数颜色值为原码颜色值。然后,再对负数颜色值进行第一移位处理的逆处理,将像素颜色值的小数点右移第一移位数,得到待还原归一化颜色值。
S802、从待还原归一化颜色值中截取最高位的第一移位数的值作为归一化整数位的值,以及,从待还原归一化颜色值中截取第一移位数之后一位的值作为归一化小数位的值。
在本申请实施例中,电子设备在得到待还原归一化颜色值之后,可以从待还原归一化颜色值中截取归一化整数位的值和归一化小数位的值;其中,归一化小数位为归一化整数位之后的一位。
S803、根据纹素颜色值的格式、归一化整数位的值和归一化小数位的值,确定目标颜色值。
在本申请实施例中,电子设备需要根据纹素颜色值的格式,确定目标颜色值的格式。纹素颜色值为原码颜色值,目标颜色值也应为原码颜色值。纹素颜色值为补码颜色值,目标颜色值也应为补码颜色值。
在本申请实施例中,电子设备可以根据归一化小数位的值是否大于或者等于进制底数的一半,来确定归一化整数位的值保持原值还是加一,得到无符号颜色值。再将无符号颜色值的格式转换为纹素颜色值的格式,得到目标颜色值。
示例性的,纹素颜色值的格式为unorm4。待还原归一化颜色值1.00110,第一移位数为3,移位后得到1001.10则可以得到归一化整数位为1001,归一化小数位为1。归一化小数位1等于进制底数2的一半,则无符号颜色值应为1001+1=1010。
可以理解的是,针对归一化格式的纹素颜色值,电子设备可以对像素颜色值进行四舍五入,还原为归一化格式的颜色值,得到目标颜色值。通过四舍五入保持原归一化格式,可以提高目标颜色值的准确性。
在本申请的一些实施例中,S803中根据纹素颜色值的格式、归一化整数位的值和归一化小数位的值,确定目标颜色值的实现,如图13所示,可以包括:S901-S902。
S901、在归一化小数位的值小于进制底数的一半的情况下,将归一化整数位的值作为无符号颜色值;或者,在归一化小数位的值大于或者等于进制底数的一半的情况下,将归一化整数位的值与1的和作为无符号颜色值。
在本申请实施例中,电子设备可以判断归一化小数位的值和进制底数的一半之间的大小,得到判断结果。在判断结果表征在归一化小数位的值小于进制底数的一半的情况下,将归一化整数位的值作为无符号颜色值;在判断结果表征归一化小数位的值大于或者等于进制底数的一半的情况下,将归一化整数位的值与1的和作为无符号颜色值。需要说明的是,对于进制底数为2的颜色值,小数位为1则整数位加1,小数位为0则整数位保持不变。
S902、根据纹素颜色值的格式和无符号颜色值,确定目标颜色值。
在本申请实施例中,电子设备在确定无符号颜色值之后,可以将无符号颜色值的格式转换为纹素颜色值的格式,得到目标颜色值。
在本申请的一些实施例中,在纹素颜色值的格式为有符号归一化格式且像素颜色值为正数的情况下,电子设备可以将预设符号正数作为目标颜色值的符号位的值,以及,将无符号颜色值作为目标颜色值中除符号位以外的值。
在本申请实施例中,纹素颜色值为有符号归一化snorm格式,纹素颜色值为正数,表示目标颜色值应为原码颜色值。电子设备可以将预设符号正数合并无符号颜色值的结果,作为目标颜色值。
在本申请实施例中,预设符号正数可以根据需要设置,本申请实施例不作限制。
示例性的,无符号颜色值为101,纹素颜色值为正数,预设符号正数为0;则目标颜色值为0101。
在本申请的一些实施例中,在纹素颜色值的格式为有符号归一化格式且像素颜色值为负数的情况下,电子设备可以将预设符号负数作为目标颜色值的符号位的值,以及,将无符号颜色值的补码作为目标颜色值中除符号位以外的值。
在本申请实施例中,纹素颜色值为有符号归一化snorm格式,纹素颜色值为负数,表示目标颜色值应为补码颜色值。电子设备可以将预设符号负数合并无符号颜色值的补码的结果,作为目标颜色值。
在本申请实施例中,预设符号负数可以根据需要设置,本申请实施例不作限制。
示例性的,纹素颜色值为负数,预设符号负数为1。无符号颜色值为101,其补码为011,则目标颜色值为1011。
在本申请的一些实施例中,预设符号正数为0,预设符号负数为1。
在本申请的一些实施例中,在纹素颜色值的格式为无符号归一化格式的情况下,电子设备可以将无符号颜色值作为目标颜色值。
在本申请实施例中,纹素颜色值为无符号归一化格式unorm,则无符号颜色值即为目标颜色值。
示例性的,无符号颜色值为101,纹素颜色值为unorm4,则目标颜色值为0101。
可以理解的是,电子设备可以根据纹素颜色值的格式,对无符号颜色值进行处理,得到目标颜色值;如此,目标颜色值可以与纹素颜色值的格式相同,实现还原的效果。
本申请实施例提供一种颜色值的确定方法流程,如图14所示,该方法可以包括:
S11、获取影响目标像素的多个纹素的颜色信息;颜色信息包括纹素颜色值和纹理格式。
在本申请实施例中,纹素的纹理格式包括unorm24和32位浮点格式。
S12、判断多个纹素的纹理格式是否为unorm24;若是,则执行S13;若否,则执行S14。
在本申请实施例中,如果多个纹素的纹理格式不是unorm24,就是32为浮点格式。
S13、对每个纹素颜色值进行移位,得到多个移位颜色值。
S14、从每个纹素颜色值中提取指数位和尾数位,得到多个移位颜色值。
S15、基于每个纹素对目标像素的影响因子,对对应的一个移位颜色值进行加权处理,得到每个纹素的加权颜色值。
在本申请实施例中,影响因子为8位的定点数。S15中,24位移位颜色值与8位影响因子相乘,得到的加权颜色值的位数小于或者等于32。
S16、基于多个纹素的指数值,对每个加权颜色值进行第二移位处理,得到每个纹素的第二移位颜色值。
S17、将每个纹素的第二移位颜色值相加,得到像素颜色值。
在本申请实施例中,如果纹素颜色值为浮点格式,且符号位的值表征纹素颜色值为负数,则电子设备需要将每个纹素的第二移位颜色值的小数值更新为其补码,得到求和颜色值,再对求和颜色值相加,得到像素颜色值。
S18、判断多个纹素的纹理格式是否为unorm24;若是,则执行S19;若否,则执行S20。
在本申请的一些实施例中,S18的判断结果与S12的判断结果相同,S18可以直接采用S12的判断结果。
S19、将像素颜色值还原为unorm24格式的目标颜色值。
S20、将像素颜色值还原为32位浮点格式的目标颜色值。
在本申请实施例中,电子设备可以同时满足对两种纹理格式的纹理滤波:unorm24和32位浮点格式。通过判断纹素的纹理格式是否为unorm24来确定纹理格式是这两种中的哪一种,根据纹理格式对纹素颜色值进行第一移位处理,得到移位颜色值;再对移位颜色值加权求和,最后按照纹理格式还原,得到目标颜色值。
基于上述颜色值的确定方法,本申请实施例提供一种颜色值的确定装置的结构,如图15所示,该颜色值的确定装置110可以包括:
获取模块1101,用于获取影响目标像素的多个纹素中每个纹素的移位颜色值;每个纹素的所述移位颜色值是根据所述纹素的纹理格式对纹素的纹素颜色值进行第一移位处理得到的;不同纹理格式的所述移位颜色值的小数值的小数位数和整数位数均相同;
确定模块1102,用于基于所述每个纹素对目标像素的影响因子和所述每个纹素的移位颜色值,确定目标像素的像素颜色值;
还原模块1103,用于按照所述纹理格式对应的还原方式,对所述像素颜色值进行还原处理,得到所述目标像素的目标颜色值。
在一些实施例中,所述确定模块1102,还用于基于所述每个纹素对目标像素的影响因子、所述多个纹素的指数值对所述多个纹素的移位颜色值进行加权求和处理,得到所述目标像素的像素颜色值。
在一些实施例中,所述获取模块1101,还用于获取所述每个纹素的颜色信息;每个纹素的颜色信息包括纹素颜色值和纹理格式;根据所述纹理格式,对所述每个纹素的纹素颜色值进行第一移位处理,得到所述每个纹素的所述移位颜色值。
在一些实施例中,所述纹素的纹理格式为浮点格式;所述获取模块1101,还用于根据所述每个纹素的纹素颜色值的指数位的值,确定对应所述移位颜色值的指数值;将预设整数作为所述移位颜色值中小数值的整数位的值;将所述纹素颜色值的尾数位的值,确定为所述移位颜色值中小数值的小数位的值。
在一些实施例中,所述纹素的纹理格式为归一化格式;所述获取模块1101,还用于将根据所述每个纹素的纹素颜色值,确定对应纹素的归一颜色值;所述归一颜色值不包括符号值的原码颜色值;所述符号值表征所述纹素颜色值为正数或负数;将所述归一颜色值的小数点向左移第一移位数,得到所述移位颜色值的小数值;所述第一移位数为浮点格式的移位颜色值中尾数位的位数;将所述第一移位数作为所述移位颜色值的指数值。
在一些实施例中,所述归一化格式为有符号归一化格式;所述获取模块1101,还用于在所述纹素颜色值的符号值表征所述纹素颜色值为正数的情况下,将所述纹素颜色值中除所述符号值以外的其他值作为所述归一颜色值;在所述纹素颜色值的符号值表征所述纹素颜色值为负数的情况下,将所述纹素颜色值中除所述符号值以外的其他值的补码作为所述归一颜色值。
在一些实施例中,所述归一化格式为无符号归一化格式;所述获取模块1101,还用于将所述纹素颜色值作为所述归一颜色值。
在一些实施例中,所述确定模块1102,还用于基于所述每个纹素对目标像素的影响因子,对所述多个纹素的移位颜色值进行加权处理,得到所述每个纹素的加权颜色值;基于所述多个纹素的指数值,对每个所述加权颜色值进行第二移位处理,得到所述每个纹素的第二移位颜色值;对所述多个纹素的第二移位颜色值求和,得到所述目标像素的像素颜色值。
在一些实施例中,所述确定模块1102,还用于将所述加权颜色值中小数值的小数点向左移第二移位数,得到所述第二移位颜色值的小数值;所述第二移位数和所述加权颜色值的指数的和大于或者等于多个所述加权颜色值的指数值中的最大指数值;将所述加权颜色值中指数值增加第二移位数,得到所述第二移位颜色值的指数值。
在一些实施例中,在所述纹素的纹理格式为浮点格式的情况下,所述第二移位颜色值的指数值等于所述最大指数值。
在一些实施例中,在所述纹素的纹理格式为归一化格式的情况下,所述第二移位颜色值的指数值等于所述纹素颜色值中小数位的位数。
在一些实施例中,所述纹素颜色值为负值;所述确定模块1102,还用于将每个所述第二移位颜色值的小数值更新为对应的所述第二移位颜色值的小数值的补码,得到多个求和颜色值;将所述多个求和颜色值的和,作为所述目标像素的像素颜色值。
在一些实施例中,所述纹素的纹理格式为浮点格式;所述还原模块1103,还用于将所述像素颜色值转换为待还原浮点颜色值;所述待还原浮点颜色值为原码颜色值;对所述待还原浮点颜色值进行第三移位处理,得到浮点颜色值;根据所述纹素颜色值和所述浮点颜色值,确定所述目标颜色值。
在一些实施例中,所述还原模块1103,还用于将所述待还原浮点颜色值中小数值的小数点向右移第三移位数,得到浮点颜色值的小数值;所述浮点颜色值中小数值的整数位为预设整数;将所述待还原浮点颜色值的指数值减去所述第三移位数,得到浮点颜色值的指数值。
在一些实施例中,所述还原模块1103,还用于将将所述浮点颜色值的小数值的小数位的值,确定为所述目标颜色值的尾数位的值;将所述浮点颜色值的指数值作为所述目标颜色值的指数位的值;将与所述像素颜色值的正负性质对应的预设符号值,确定为所述目标颜色值的符号位的值。
在一些实施例中,所述纹素的纹理格式为归一化格式;所述还原模块1103,还用于根据所述像素颜色值的正负性质,对所述像素颜色值进行第四移位处理,得到待还原归一化颜色值;所述待还原归一化颜色值为原码颜色值;从所述待还原归一化颜色值中截取最高位的第一移位数的值作为归一化整数位的值,以及,从所述待还原归一化颜色值中截取第一移位数之后一位的值作为归一化小数位的值;根据所述纹素颜色值的格式、所述归一化整数位的值和归一化小数位的值,确定所述目标颜色值。
在一些实施例中,所述还原模块1103,还用于在所述像素颜色值的正负性质表征所述像素颜色值为正数的情况下,将所述像素颜色值的小数点向右移预设尾数位数,得到所述待还原归一化颜色值。
在一些实施例中,所述还原模块1103,还用于在所述像素颜色值的正负性质表征所述像素颜色值为负数的情况下,将所述像素颜色值的小数位的值更新为所述像素颜色值的小数位的补码的值,得到负数颜色值;将所述负数颜色值的小数点向右移预设尾数位数,得到所述待还原归一化颜色值。
在一些实施例中,所述还原模块1103,还用于在所述归一化小数位的值小于进制底数的一半的情况下,将所述归一化整数位的值作为无符号颜色值;或者,在所述归一化小数位的值大于或者等于所述进制底数的一半的情况下,将所述归一化整数位的值与1的和作为所述无符号颜色值;根据纹素颜色值的格式和所述无符号颜色值,确定所述目标颜色值。
在一些实施例中,所述还原模块1103,还用于在所述纹素颜色值的格式为有符号归一化格式且所述像素颜色值为正数的情况下,将预设符号正数作为所述目标颜色值的符号位的值,以及,将所述无符号颜色值作为所述目标颜色值中除所述符号位以外的值;在所述纹素颜色值的格式为有符号归一化格式且所述像素颜色值为负数的情况下,将预设符号负数作为所述目标颜色值的符号位的值,以及,将所述无符号颜色值的补码作为所述目标颜色值中除所述符号位以外的值;在所述纹素颜色值的格式为无符号归一化格式的情况下,将所述无符号颜色值作为所述目标颜色值。
基于图15,本申请实施例提供一种可选的颜色值的确定装置的结构。如图16所示,该装置可以对unorm24和32位浮点格式的颜色值进行纹理滤波。其中,获取模块1101包括4个获取单元111、112、113和114。确定模块1102可以包括:4个乘法器121、122、123和124、4个右向移位器126、127、128和129、1个指数比较器125和1个加法器1210;还原模块1103可以包括:1个多路选择器131、1个指数归一化模块132和1个四舍五入模块133。其中,获取单元111-114用于从影响目标像素的4个纹素中获取4个颜色信息,每个颜色信息包括移位颜色值和旁路信息,旁路信息中包括纹理格式;乘法器121-124用于将移位颜色值中的24位小数值,与8位影响因子相乘,得到加权颜色值;指数比较器11023用于对4个移位颜色值中的指数值进行比较,得到比较结果;右向移位器126-129用于根据比较结果,对加权颜色值进行第二移位处理,得到第二移位颜色值;加法器1210用于对4个第二移位颜色值相加,得到像素颜色值;多路选择器131用于在纹素的纹理格式为32位浮点格式的情况下,将像素颜色值传输至指数归一化模块132;或者,在纹素的纹理格式为unorm24的情况下,将像素颜色值传输至四舍五入模块133;指数归一化模块132用于将像素颜色值还原为32位浮点格式,得到目标颜色值;四舍五入模块133用于将像素颜色值还原为unorm24,得到目标颜色值。
需要说明的是,颜色信息在电路中传输,多路选择器131从加法器1210接收到的颜色信息包括像素颜色值和旁路信息,如此,多路选择器131可以根据旁路信息确定像素颜色值的纹理格式,在纹理格式为unorm24的情况下,将像素颜色值传输到四舍五入模块133,在纹理格式为32位浮点格式的情况下,将像素颜色值传输到指数归一化模块132。
可以理解的是,电子设备可以在32位浮点格式的纹理滤波单元中增加获取模块1101、多路选择器131和四舍五入模块133,对确定模块1102中用于加权求和的部分进行复用,就可以兼容对unorm24的纹理滤波功能;减少纹理滤波单元占用的空间,降低硬件开销。
图17示出了一种电子设备的结构,如图17所示,电子设备170包括存储器1707、处理器1708及存储在存储器1707上并可在处理器1708上运行的计算机程序;其中,处理器1708用于运行所述计算机程序时,执行如前述实施例中颜色值的确定方法。
可以理解,电子设备170还包括总线系统1709;电子设备170中的各个组件通过总线系统1709耦合在一起。可理解,总线系统1709用于实现这些组件之间的连接通信。总线系统1709除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ReadOnly Memory,ROM)、可编程只读存储器(Programmable Read Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(FlashMemory)、磁表面存储器、光盘、或只读光盘(Compact Disc-Read Only Memory,CD-ROM);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static Random Access Memory,SRAM)、同步静态随机存取存储器(Synchronous Static Random Access Memory,SSRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、同步动态随机存取存储器(SynchronousDynamic Random Access Memory,SDRAM)、双倍数据速率同步动态随机存取存储器(DoubleData Rate Synchronous Dynamic Random Access Memory,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced Synchronous Dynamic Random Access Memory,ESDRAM)、同步连接动态随机存取存储器(SyncLink Dynamic Random Access Memory,SLDRAM)、直接内存总线随机存取存储器(Direct Rambus Random Access Memory,DRRAM)。本申请实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器,处理器读取存储器中的信号,结合其硬件完成前述方法的步骤。
本申请实施例提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (23)

1.一种颜色值的确定方法,其特征在于,所述颜色值的确定方法包括:
获取影响目标像素的多个纹素中每个纹素的移位颜色值;每个纹素的所述移位颜色值是根据所述纹素的纹理格式对所述纹素的纹素颜色值进行第一移位处理得到的;不同纹理格式的所述移位颜色值的小数值的小数位数和整数位数均相同;
基于所述每个纹素对目标像素的影响因子和所述每个纹素的移位颜色值,确定目标像素的像素颜色值;
按照所述纹理格式对应的还原方式,对所述像素颜色值进行还原处理,得到所述目标像素的目标颜色值。
2.根据权利要求1所述的颜色值的确定方法,其特征在于,所述基于所述每个纹素对目标像素的影响因子和所述每个纹素的移位颜色值,确定目标像素的像素颜色值,包括:
基于所述每个纹素对目标像素的影响因子、所述多个纹素的指数值对所述多个纹素的移位颜色值进行加权求和处理,得到所述目标像素的像素颜色值。
3.根据权利要求2所述的颜色值的确定方法,其特征在于,所述获取影响目标像素的多个纹素中每个纹素的移位颜色值,包括:
获取所述每个纹素的颜色信息;每个纹素的颜色信息包括纹素颜色值和纹理格式;
根据所述纹理格式,对所述每个纹素的纹素颜色值进行第一移位处理,得到所述每个纹素的所述移位颜色值。
4.根据权利要求3所述的颜色值的确定方法,其特征在于,所述纹素的纹理格式为浮点格式;所述根据所述纹理格式,对所述每个纹素的纹素颜色值进行第一移位处理,得到所述每个纹素的所述移位颜色值,包括:
根据所述每个纹素的纹素颜色值的指数位的值,确定对应所述移位颜色值的指数值;
将预设整数作为所述移位颜色值中小数值的整数位的值;
将所述纹素颜色值的尾数位的值,确定为所述移位颜色值中小数值的小数位的值。
5.根据权利要求3所述的颜色值的确定方法,其特征在于,所述纹素的纹理格式为归一化格式;所述根据所述纹理格式,对所述每个纹素的纹素颜色值进行第一移位处理,得到所述每个纹素的所述移位颜色值,包括:
根据所述每个纹素的纹素颜色值,确定对应纹素的归一颜色值;所述归一颜色值为不包括符号值的原码颜色值;所述符号值表征所述纹素颜色值为正数或负数;
将所述归一颜色值的小数点向左移第一移位数,得到所述移位颜色值的小数值;所述第一移位数为浮点格式的移位颜色值中尾数位的位数;
将所述第一移位数作为所述移位颜色值的指数值。
6.根据权利要求5所述的颜色值的确定方法,其特征在于,所述归一化格式为有符号归一化格式;所述根据所述每个纹素的纹素颜色值,确定对应纹素的归一颜色值,包括:
在所述纹素颜色值的符号值表征所述纹素颜色值为正数的情况下,将所述纹素颜色值中除所述符号值以外的其他值作为所述归一颜色值;
在所述纹素颜色值的符号值表征所述纹素颜色值为负数的情况下,将所述纹素颜色值中除所述符号值以外的其他值的补码作为所述归一颜色值。
7.根据权利要求5所述的颜色值的确定方法,其特征在于,所述归一化格式为无符号归一化格式;所述根据所述每个纹素的纹素颜色值,确定对应纹素的归一颜色值,包括:
将所述纹素颜色值作为所述归一颜色值。
8.根据权利要求2所述的颜色值的确定方法,其特征在于,所述基于所述每个纹素对目标像素的影响因子、所述多个纹素的指数值对所述多个纹素的移位颜色值进行加权求和处理,得到所述目标像素的像素颜色值,包括:
基于所述每个纹素对目标像素的影响因子,对所述多个纹素的移位颜色值进行加权处理,得到所述每个纹素的加权颜色值;
基于所述多个纹素的指数值,对每个所述加权颜色值进行第二移位处理,得到所述每个纹素的第二移位颜色值;
对所述多个纹素的第二移位颜色值求和,得到所述目标像素的像素颜色值。
9.根据权利要求8所述的颜色值的确定方法,其特征在于,所述基于所述多个纹素的指数值,对每个所述加权颜色值进行第二移位处理,得到所述每个纹素的第二移位颜色值,包括:
将所述加权颜色值中小数值的小数点向左移第二移位数,得到所述第二移位颜色值的小数值;所述第二移位数和所述加权颜色值的指数的和大于或者等于多个所述加权颜色值的指数值中的最大指数值;
将所述加权颜色值中指数值增加第二移位数,得到所述第二移位颜色值的指数值。
10.根据权利要求9所述的颜色值的确定方法,其特征在于,
在所述纹素的纹理格式为浮点格式的情况下,所述第二移位颜色值的指数值等于所述最大指数值。
11.根据权利要求9所述的颜色值的确定方法,其特征在于,
在所述纹素的纹理格式为归一化格式的情况下,所述第二移位颜色值的指数值等于所述纹素颜色值中小数位的位数。
12.根据权利要求8所述的颜色值的确定方法,其特征在于,所述纹素颜色值为负值;所述对所述多个纹素的第二移位颜色值求和,得到所述目标像素的像素颜色值,包括:
将每个所述第二移位颜色值的小数值更新为对应的所述第二移位颜色值的小数值的补码,得到多个求和颜色值;
将所述多个求和颜色值的和,作为所述目标像素的像素颜色值。
13.根据权利要求1-12任一项所述的颜色值的确定方法,其特征在于,所述纹素的纹理格式为浮点格式;所述按照所述纹理格式对应的还原方式,对所述像素颜色值进行还原处理,得到所述目标像素的目标颜色值,包括:
将所述像素颜色值转换为待还原浮点颜色值;所述待还原浮点颜色值为原码颜色值;
对所述待还原浮点颜色值进行第三移位处理,得到浮点颜色值;
根据所述像素颜色值和所述浮点颜色值,确定所述目标颜色值。
14.根据权利要求13所述的颜色值的确定方法,其特征在于,所述对所述待还原浮点颜色值进行第三移位处理,得到浮点颜色值,包括:
将所述待还原浮点颜色值中小数值的小数点向右移第三移位数,得到浮点颜色值的小数值;所述浮点颜色值中小数值的整数位为预设整数;
将所述待还原浮点颜色值的指数值减去所述第三移位数,得到浮点颜色值的指数值。
15.根据权利要求13所述的颜色值的确定方法,其特征在于,所述根据所述像素颜色值和所述浮点颜色值,确定所述目标颜色值,包括:
将所述浮点颜色值的小数值的小数位的值,确定为所述目标颜色值的尾数位的值;
将所述浮点颜色值的指数值作为所述目标颜色值的指数位的值;
将与所述像素颜色值的正负性质对应的预设符号值,确定为所述目标颜色值的符号位的值。
16.根据权利要求1-12任一项所述的颜色值的确定方法,其特征在于,所述纹素的纹理格式为归一化格式;所述按照所述纹理格式对应的还原方式,对所述像素颜色值进行还原处理,得到所述目标像素的目标颜色值,包括:
根据所述像素颜色值的正负性质,对所述像素颜色值进行第四移位处理,得到待还原归一化颜色值;所述待还原归一化颜色值为原码颜色值;
从所述待还原归一化颜色值中截取最高位的第一移位数的值作为归一化整数位的值,以及,从所述待还原归一化颜色值中截取第一移位数之后一位的值作为归一化小数位的值;
根据所述纹素颜色值的格式、所述归一化整数位的值和归一化小数位的值,确定所述目标颜色值。
17.根据权利要求16所述的颜色值的确定方法,其特征在于,所述根据所述像素颜色值的正负性质,对所述像素颜色值进行第四移位处理,得到待还原归一化颜色值,包括:
在所述像素颜色值的正负性质表征所述像素颜色值为正数的情况下,将所述像素颜色值的小数点向右移预设尾数位数,得到所述待还原归一化颜色值。
18.根据权利要求16所述的颜色值的确定方法,其特征在于,所述根据所述像素颜色值的正负性质,对所述像素颜色值进行第四移位处理,得到待还原归一化颜色值,包括:
在所述像素颜色值的正负性质表征所述像素颜色值为负数的情况下,将所述像素颜色值的小数位的值更新为所述像素颜色值的小数位的补码的值,得到负数颜色值;
将所述负数颜色值的小数点向右移预设尾数位数,得到所述待还原归一化颜色值。
19.根据权利要求16所述的颜色值的确定方法,其特征在于,所述根据所述纹素颜色值的格式、所述归一化整数位的值和归一化小数位的值,确定所述目标颜色值,包括:
在所述归一化小数位的值小于进制底数的一半的情况下,将所述归一化整数位的值作为无符号颜色值;或者,在所述归一化小数位的值大于或者等于所述进制底数的一半的情况下,将所述归一化整数位的值与1的和作为所述无符号颜色值;
根据纹素颜色值的格式和所述无符号颜色值,确定所述目标颜色值。
20.根据权利要求19所述的颜色值的确定方法,其特征在于,所述根据纹素颜色值的格式和所述无符号颜色值,确定所述目标颜色值,包括:
在所述纹素颜色值的格式为有符号归一化格式且所述像素颜色值为正数的情况下,将预设符号正数作为所述目标颜色值的符号位的值,以及,将所述无符号颜色值作为所述目标颜色值中除所述符号位以外的值;
在所述纹素颜色值的格式为有符号归一化格式且所述像素颜色值为负数的情况下,将预设符号负数作为所述目标颜色值的符号位的值,以及,将所述无符号颜色值的补码作为所述目标颜色值中除所述符号位以外的值;
在所述纹素颜色值的格式为无符号归一化格式的情况下,将所述无符号颜色值作为所述目标颜色值。
21.一种颜色值的确定装置,其特征在于,所述颜色值的确定装置包括:
获取模块,用于获取影响目标像素的多个纹素中每个纹素的移位颜色值;每个纹素的所述移位颜色值是根据所述纹素的纹理格式对所述纹素的纹素颜色值进行第一移位处理得到的;不同纹理格式的所述移位颜色值的小数值的小数位数和整数位数均相同;
确定模块,用于基于所述每个纹素对目标像素的影响因子和所述每个纹素的移位颜色值,确定目标像素的像素颜色值;
还原模块,用于按照所述纹理格式对应的还原方式,对所述像素颜色值进行还原处理,得到所述目标像素的目标颜色值。
22.一种电子设备,其特征在于,所述电子设备包括
存储器,用于存储计算机程序;
处理器,用于在所述计算机程序运行时,执行如权利要求1-20任一项所述的颜色值的确定方法。
23.一种计算机存储介质,其特征在于,其上存储有可执行指令,用于被处理器执行时,实现如权利要求1-20任一项所述的颜色值的确定方法。
CN202311733451.1A 2023-12-15 2023-12-15 颜色值的确定方法及装置、电子设备、计算机存储介质 Active CN117422807B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311733451.1A CN117422807B (zh) 2023-12-15 2023-12-15 颜色值的确定方法及装置、电子设备、计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311733451.1A CN117422807B (zh) 2023-12-15 2023-12-15 颜色值的确定方法及装置、电子设备、计算机存储介质

Publications (2)

Publication Number Publication Date
CN117422807A true CN117422807A (zh) 2024-01-19
CN117422807B CN117422807B (zh) 2024-03-08

Family

ID=89526958

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311733451.1A Active CN117422807B (zh) 2023-12-15 2023-12-15 颜色值的确定方法及装置、电子设备、计算机存储介质

Country Status (1)

Country Link
CN (1) CN117422807B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6181347B1 (en) * 1997-09-17 2001-01-30 Cirrus Logic, Inc. Selectable mode smoothing texture filter for computer graphics
JP2002342778A (ja) * 2001-05-15 2002-11-29 Namco Ltd 画像生成システム、画像生成方法および情報記憶媒体
JP2002342779A (ja) * 2001-05-15 2002-11-29 Namco Ltd 画像生成システム、画像生成方法および情報記憶媒体
CN101201644A (zh) * 2007-08-02 2008-06-18 威盛电子股份有限公司 指数处理方法与系统
CN110349245A (zh) * 2018-04-05 2019-10-18 想象技术有限公司 高精度纹理过滤
CN115280368A (zh) * 2020-04-24 2022-11-01 华为技术有限公司 用于渲染的滤波

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6181347B1 (en) * 1997-09-17 2001-01-30 Cirrus Logic, Inc. Selectable mode smoothing texture filter for computer graphics
JP2002342778A (ja) * 2001-05-15 2002-11-29 Namco Ltd 画像生成システム、画像生成方法および情報記憶媒体
JP2002342779A (ja) * 2001-05-15 2002-11-29 Namco Ltd 画像生成システム、画像生成方法および情報記憶媒体
CN101201644A (zh) * 2007-08-02 2008-06-18 威盛电子股份有限公司 指数处理方法与系统
CN110349245A (zh) * 2018-04-05 2019-10-18 想象技术有限公司 高精度纹理过滤
CN115280368A (zh) * 2020-04-24 2022-11-01 华为技术有限公司 用于渲染的滤波

Also Published As

Publication number Publication date
CN117422807B (zh) 2024-03-08

Similar Documents

Publication Publication Date Title
US8719322B2 (en) Floating point format converter
US7949696B2 (en) Floating-point number arithmetic circuit for handling immediate values
CN109634558B (zh) 可编程的混合精度运算单元
US9645792B2 (en) Emulation of fused multiply-add operations
US20170017467A1 (en) Integer/floating point divider and square root logic unit and associates methods
CN111813375A (zh) 求模运算处理方法及相关产品
CN117422807B (zh) 颜色值的确定方法及装置、电子设备、计算机存储介质
CN106997284B (zh) 实现浮点运算操作的方法和装置
CN117420982A (zh) 包括融合乘累加器的芯片、设备及数据运算的控制方法
JPH02294731A (ja) 浮動小数点数演算処理装置及び除数倍数生成装置
CN113377334B (zh) 一种浮点数据处理方法、装置及存储介质
CN115483934A (zh) 用于多方安全计算的数据转换方法和装置
CN113126954B (zh) 浮点数乘法计算的方法、装置和算术逻辑单元
US7236999B2 (en) Methods and systems for computing the quotient of floating-point intervals
CN109558109B (zh) 数据运算装置及相关产品
CN116700663A (zh) 一种浮点数处理方法及装置
US5661674A (en) Divide to integer
CN109582279B (zh) 数据运算装置及相关产品
CN114201140A (zh) 指数函数处理单元、方法和神经网络芯片
CN118051200A (zh) 数据格式转换装置及方法、电子设备、计算机存储介质
EP3239833B1 (en) Calculating trigonometric functions using a four input dot product circuit
EP4390660A1 (en) Multi-input floating point number processing method and apparatus, processor and computer device
US8185723B2 (en) Method and apparatus to extract integer and fractional components from floating-point data
US20050010632A1 (en) Digital signal processor based on jumping floating-point arithmetic
CN116700665B (zh) 一种确定浮点数平方根倒数的方法及装置

Legal Events

Date Code Title Description
PB01 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