一种降低显存的方法及装置与流程

文档序号:12963462阅读:609来源:国知局
一种降低显存的方法及装置与流程

本发明涉及数据存储技术领域,尤其涉及一种降低显存的方法及装置。



背景技术:

在现有技术中,位图解码后的常用存储方式有4种,分别是argb_4444:即a=4,r=4,g=4,b=4,那么一个像素点占4+4+4+4=16位,即占2字节的内存;argb_8888:即a=8,r=8,g=8,b=8,那么一个像素点占8+8+8+8=32位,即占4字节的内存;rgb_565:即r=5,g=6,b=5,没有透明度,那么一个像素点占5+6+5=16位,即占2字节的内存;alpha_8:只有透明度,没有颜色,那么一个像素点占8位,即占1字节的内存。由此可知argb_8888存储方式是最占内存的。而存储方式中位数越高,代表其可以存储的颜色信息越多,当然图像也就越逼真。

其中,argb_4444的存储方式已经被高版本的安卓系统舍弃;alpha_8的存储方式由于不能存储颜色信息也被舍弃;argb_8888的存储方式为安卓系统默认的位图解码后的存储方式。

具体的,现有的使用安卓系统的显示设备在显示位图时,首先,从磁盘中获取编码后的位图(即待显示位图),再对编码后的位图采用argb_8888的解码方式进行解码,并将解码后位图按照argb_8888的存储方式存储在显存中。最后,显示屏在显示位图时,从显存中读取待显示位图对应的数字信号,并将该数字信号转换成模拟信号输出至显示屏。

但是,在现有技术中,针对所有的位图皆采用argb_8888的解码方式解码,即解码后的位图中每个像素的存储方式为argb_8888,也就是说解码后的位图中的每个像素占用4个字节。而应用在墨水屏显示位图时,由于墨水屏显示灰度图像,若解码后的所有位图中每个像素的存储方式仍为argb_8888时,则存在浪费存储空间的问题。



技术实现要素:

本发明的实施例提供一种降低显存的方法及装置,解决了现有的显示设备在显示位图时,由于皆采用argb_8888的解码方式进行解码,导致解码后位图中每个像素的存储方式亦为argb_8888,而存在浪费存储空间的问题。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,提供一种降低显存的方法,包括:

确定图像的属性;所述图像的属性用于表征所述图像是否包含透明度,以及是否为灰度图像;

若所述图像的属性表征所述图像不包含透明度且为灰度图像,则将所述图像采用第一存储方式存储于显存中,所述第一存储方式为所述图像中每个像素点占据2m比特位的存储方式;

否则,将所述图像采用第二存储方式存储于显存中,所述第二存储方式为所述图像中每个像素点占据2n比特位的存储方式;其中,n大于m。

第二方面,提供一种降低显存的装置,包括:

确定模块,用于确定图像的属性;所述图像的属性用于表征所述图像是否包含透明度以及事都为灰度图像;

存储模块,用于若所述确定模块确定出的所述图像的属性表征所述图像不包含透明度且为灰度图像,则将所述图像采用第一存储方式存储于显存中,所述第一存储方式为所述图像中每个像素点占据2m比特位的存储方式;

所述存储模块,还用于若所述确定模块确定出的所述图像的属性表征所述图像包含透明度,和/或不为灰度图像,则将所述图像采用第二存储方式存储于显存中,所述第二存储方式为所述图像中每个像素点占据2n比特位的存储方式;其中,n大于m。

本发明实施例提供的降低显存的方法及装置,通过确定图像的属性,若图像的属性表征图像不包含透明度且为灰度图像时,将图像采用第一存储方式存储与显存中;否则将图像采用第二存储方式存储与显存中。其中第二存储方式比第一存储方式所占用的比特位大。本申请相比与现有技术,可根据不同图像的属性动态选择相应的存储方式。且经大量实验证明,通过与图像属性对应的存储方式存储的位图在显示时,主观上的显示效果差别很小。因此,本申请中对于部分图像采用比特位小于第二存储方式的第一存储方式进行存储,相比于现有技术中对于所有属性的图像皆采用第二存储方式进行存储,能有效降低显存的存储空间。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种降低显存的方法;

图2为本发明实施例提供的一种降低显存的装置。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供的降低显存的方法的执行主体为降低显存的装置,该装置可以为执行该方法的包含显示屏的电子设备,例如,计算机、手机、平板电脑、显示器、电子书等具有显示功能的产品,或者,可以是可应用在电子设备中的硬件模块和/或软件模块,例如可以包括电子设备中的中央处理器(英文:centralprocessingunit,简称:cpu)等。需要说明的是,上述的显示屏可为彩屏,也可为墨水屏。

需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能或作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。

需要说明的是,本申请实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。

本发明实施例提供一种降低显存的方法,如图1所示,该方法具体包括如下步骤:

101、确定图像的属性。

其中,上述图像的属性用于表征图像是否包含透明度,以及是否为灰度图像。

可选的,上述的图像可为两种形式的图像,具体如下述:

第一种形式:解码后的图像。

示例性的,在确定图像的属性之前,首先对编码的图像采用现有的解码方式进行解码,即对编码的图像采用argb_8888的解码方式进行解码,解码后的图像中每个像素表示为argb_8888的形式。

可选的,若步骤101中的图像为解码后的图像时,则该图像为argb色彩模式的图像,步骤101中确定图像的属性,具体通过如下方式实现:

根据图像的argb色彩模式,确定图像的属性。

具体的,当图像的每个像素中a通道的值为255,则表征图像不包含透明度。当rgb三个分量的像素值均相等时,则确定该图像为灰度图像。对应的,当图像中存在某一像素的a通道的值不为255,则表征图像包含透明度。当图像中存在某一像素的rgb三个分量的像素值不相等时,则确定该图像不是灰度图像。

需要说明的是,任何根据argb信息判断图像是否包含透明度,以及是否为灰度图像的方法,皆在本发明的保护范围之内。

第二种形式:解码前的图像。

示例性的,若步骤101中的图像为解码前的图像时,即步骤101中的图像为编码的图像。此时图像为各种存储格式的图像,例如png、jpg以及pcx等等。

可选的,若步骤101中的图像为编码前的图像时,则根据如下两种方式确定图像的属性,具体如下:

a、根据图像的扩展名,确定图像是否包含透明度以及是否为灰度图像。

示例性的,上述的图像的扩展名表示图像的存储格式。若图像的扩展名为.gray时,则判断图像不包含透明度,且为灰度图像。

或者,

b、根据图像的文件头中的属性字段,确定图像是否包含透明度以及是否为灰度图像。

示例性的,上述的图像的文件头中的属性字段为文件头中文件类型的字段(即filetype对应字段),表示图像的类型。若该字段为gray,则表示该图像不包含透明度,且为灰度图像。

需要说明的是,上述的根据图像的扩展名以及文件头中的属性字段,判断图像是否包含透明度以及是否为灰度图像仅仅是一种示例,任何根据图像中存储的信息判断图像是否包含透明度以及是否为灰度图像的方法,皆在本发明的保护范围之内。

102a、若图像的属性表征图像不包含透明度,且为灰度图像,则将图像采用第一存储方式存储于显存中。

其中,第一存储方式为图像中每个像素点占据2m比特位的存储方式。

102b、否则将图像采用第二存储方式存储于显存中。也就是说,若图像的属性表征图像包含透明度,和/或不为灰度图像,则将图像采用第二存储方式存储于显存中。

其中,第二存储方式为图像中每个像素点占据2n比特位的存储方式;且n大于m。

可选的,上述的第一存储方式为rgb_565,即一个像素占用16比特位,2个字节的内存空间。上述的第二存储方式为argb_8888,即一个像素占用32比特位,4个字节的内存空间(在本申请中为显存空间)。

可选的,基于步骤101的介绍,若步骤102(102a、102b)中的图像为解码后的图像,且解码后图像的存储方式为argb_8888,则当图像的属性表征图像包含透明,和/或不是灰度图像时,保持图像的存储方式不变,即将图像采用第二存储方式存储与显存中。若图像的属性表征图像是不包含透明度且为灰度图像时,将图像的存储方式由原来的第二存储方式更改为第一存储方式,即将图像的存储方式由原来的argb_8888更改为rgb_565。

可选的,基于步骤101的介绍,若步骤102(102a、102b)中的图像为解码前的图像,当判断图像的属性表征图像不包含透明度,且为灰度图像时,步骤102a中的将图像采用第一存储方式存储于显存中,具体包括:

102a1、将图像以与第一存储方式相适应的解码方式解码,并将解码后的图像采用第一存储方式存储于显存中。

对应的,基于步骤101的介绍,若步骤102(102a、102b)中的图像为解码前的图像,当判断图像的属性表征图像包含透明度,和/或不是灰度图像时,步骤102a中的将图像采用第二存储方式存储于显存中,具体包括:

102b1、将图像以与第二存储方式相适应的解码方式解码,并将解码后的图像采用第二存储方式存储于显存中。

示例性的,上述与第一存储方式相适应的解码方式为,将解码算法中的inpreferredconfig参数配置为第一存储方式,即将解码算法中的inpreferredconfig参数配置为rgb_565;上述与第二存储方式相适应的解码方式为,将解码算法中的inpreferredconfig参数配置为第二存储方式,即将解码算法中的inpreferredconfig参数配置为argb_8888。需要说明的是,配置好inpreferredconfig参数后,解码后的图像以与inpreferredconfig参数对应的存储方式存储。

需要说明的是,在现有的安卓系统中虽然已将argb_4444的存储方式舍弃,但其他系统并未将argb_4444的存储方式舍弃。因此,针对除安卓系统外的其他系统,本方案提供的方法还可以包括,图像的属性表征图像是否为灰度图像。若图像为灰度图像,则采用argb_4444的存储方式存储图像;否则,采用argb_8888的存储方式存储图像。进一步的,当确定出图像为灰度图像时,图像的属性还可表征图像是否包含透明度。若包含,则保持argb_4444的存储方式不变;若不包含,则采用rgb_565的存储方式存储图像。进一步需要说明的是,上述的确定图像是否为灰度图像,以及是否包含透明度的方法与本申请提供方案中的确定方法相同,这里不再赘述。

本发明实施例提供的降低显存的方法及装置,通过确定图像的属性,若图像的属性表征图像不包含透明度且为灰度图像时,将图像采用第一存储方式存储与显存中;否则将图像采用第二存储方式进行存储。其中第二存储方式比第一存储方式所占用的比特位大。本申请相比与现有技术,可根据不同图像的属性动态选择相应的存储方式。且经大量实验证明,通过与图像属性对应的存储方式存储的位图在显示时,主观上的显示效果与现有技术中对于所有属性的图像皆采用第二存储方式进行存储的位图显示时的显示效果差别很小。因此,本申请中对于部分图像采用比特位小于第二存储方式的第一存储方式进行存储,相比于现有技术中对于所有属性的图像皆采用第二存储方式进行存储,能有效降低显存的存储空间。

本发明提供一种降低内存的装置,如图2所示的一种降低显存的装置结构示意图,该装置包括:确定模块21、存储模块22,其中:

确定模块21,用于确定图像的属性;图像的属性用于表征图像是否包含透明度,以及是否为灰度图像。

存储模块22,用于若确定模块21确定出图像的属性表征图像不包含透明度且为灰度图像,则将图像采用第一存储方式存储于显存中,第一存储方式为图像中每个像素点占据2m比特位的存储方式。

存储模块22,还用于若确定模块21确定出的图像的属性征图像包含透明度,和/或不为灰度图像,则将图像采用第二存储方式存储于显存中,第二存储方式为图像中每个像素点占据2n比特位的存储方式;其中,n大于m。

可选的,确定模块21用于:

根据图像的扩展名,确定图像是否包含透明度以及是否为灰度图像。

或者,

根据图像的文件头中的属性字段,确定图像是否包含透明度以及是否为灰度图像。

可选的,存储模块22用于:

将确定模块21确定出的不包含透明度且为灰度图像的图像以与第一存储方式相适应的解码方式解码,并将解码后的图像采用所述第一存储方式存储于显存中;将确定模块21确定出的包含透明度,和/或不为灰度图像的图像以与第二存储方式相适应的解码方式解码,并将解码后的图像采用第二存储方式存储于显存中。

可选的,确定模块21,用于根据图像的argb色彩模式,确定图像的属性。

可选的,第一存储方式为rgb_565,第二存储方式为argb_8888。

本发明实施例提供的降低显存的方法及装置,通过确定图像的属性,若图像的属性表征图像不包含透明度且为灰度图像时,将图像采用第一存储方式存储与显存中;否则将图像采用第二存储方式进行存储。其中第二存储方式比第一存储方式所占用的比特位大。本申请相比与现有技术,可根据不同图像的属性动态选择相应的存储方式。且经大量实验证明,通过与图像属性对应的存储方式存储的位图在显示时,主观上的显示效果与现有技术中对于所有属性的图像皆采用第二存储方式进行存储的位图显示时的显示效果差别很小。因此,本申请中对于部分图像采用比特位小于第二存储方式的第一存储方式进行存储,相比于现有技术中对于所有属性的图像皆采用第二存储方式进行存储,能有效降低显存的存储空间。

需要说明的是,在具体实现过程中,上述如图1所示的降低显存的方法所执行的各步骤均可以通过硬件形式的处理器执行存储器中存储的软件形式的计算机执行指令实现,为避免重复,此处不再赘述。而上述降低显存的方法所执行的动作所对应的程序均可以以软件形式存储于该降低显存的方法实施的存储器中,以便于处理器调用执行以上各个单元对应的操作。

上文中的存储器可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom),快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);还可以包括上述种类的存储器的组合。

上文所提供的设备中的处理器可以是一个处理器,也可以是多个处理元件的统称。例如,处理器可以为中央处理器(centralprocessingunit,cpu;也可以为其他通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等;还可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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