一种图片处理方法及装置制造方法及图纸

技术编号:27093643 阅读:63 留言:0更新日期:2021-01-25 18:29
本申请提供一种图片处理方法及装置,涉及终端系统优化领域,解决了现有技术中图片显示的处理过程中的内存浪费问题,和位图数据转换成纹理数据上传到GPU的内存中耗时大造成的卡顿问题。该方法包括:显示一个应用的交互界面,当检测到用户作用于该交互界面的预设操作时,将应用待显示的图片数据解码为位图数据,并将位图数据封装为纹理数据;将纹理数据存储于图形处理器GPU可访问的内存分区中;触发GPU读取纹理数据执行绘制处理,得到渲染后的数据;触发显示器根据渲染后的数据显示图片。发显示器根据渲染后的数据显示图片。发显示器根据渲染后的数据显示图片。

【技术实现步骤摘要】
一种图片处理方法及装置


[0001]本申请涉及终端
,尤其涉及一种图片处理方法及装置。

技术介绍

[0002]移动设备显示应用程序(Application,APP)界面上的图片之前,该移动设备的中央处理器(Central Processing Unit,CPU)需要先将该图片解码成位图数据,并将该位图数据保存在属于CPU的内存分区中,然后CPU将属于CPU内存分区中的位图数据转换成纹理数据,并将该纹理数据传输到属于图形处理器(Graphics Processing Unit,GPU)的内存分区中,最后通过GPU将该纹理数据绘制出来,显示在移动设备的显示屏上。
[0003]可以理解的是,APP上的图片显示过程需要占用CPU的一块内存用于存储数据处理过程中解码生成的位图数据,还需要占用GPU的一块内存用于存储将位图数据转换后的纹理数据。可见,上述技术方案需要给CPU分配一块内存,并给GPU分配一块内存,内存占用较为浪费;再者,将位图数据转换成纹理数据上传到GPU的内存中,耗时比较大,在图片显示过程中易出现卡顿的现象,用户查看图片不流畅,导致用户体验较差。

技术实现思路

[0004]本申请提供一种图片处理方法及装置,解决了现有技术中图片显示的处理过程中内存占用的浪费问题,和位图数据转换成纹理数据上传到GPU的内存中耗时大造成的卡顿问题。
[0005]为达到上述目的,本申请采用如下技术方案:
[0006]第一方面提供一种图片处理方法,该方法可以应用于电子设备。该方法可以包括:电子设备显示一个应用的交互界面,当检测到用户作用于该交互界面的预设操作,同时应用基于输入事件,开始获取待显示的图片数据,将应用待显示的图片数据解码为位图数据,并将位图数据封装为纹理数据;将纹理数据存储于图形处理器GPU可访问的内存分区中;触发GPU读取纹理数据执行绘制处理,得到渲染后的数据;触发显示器根据渲染数据渲染后的数据显示图片。应理解:预设操作包括但不限于滑动,点击,双击,长按,重按,隔空手势,视线焦点移动等。
[0007]现有技术中,内存分配器先为CPU申请内存分区,用于存储供CPU访问的位图数据,而后再为GPU申请内存分区,用于存储供GPU访问的纹理数据。而在本申请实施例中,电子设备定义的内存分配器,用于申请存储纹理数据的、供图形处理器GPU可访问的内存分区,在对图片数据进行解码时,将图片数据解码后生成的纹理数据存储在该内存分区中,这样一来,不需要申请供CPU访问的内存分区,可以解决现有技术中图片显示的处理过程中内存占用的浪费问题;并且,本申请对图片数据进行解码的过程,也不需要将位图数据转换成纹理数据再将数据从CPU的内存上传到GPU的内存,可以解决数据拷贝耗时大而造成的卡顿问题,提升用户体验。
[0008]在一种可能的设计方式中,在将应用的待显示的图片数据解码为位图数据之前,
该方法还包括:创建软件解码器;定义内存分配器,内存分配器用于申请GPU可访问的内存分区,GPU可访问的内存分区用于存储纹理数据。上述可能的实现方式中,通过改进内存分配器,定义GPU可访问的内存分区,且该内存分区用于存储解码生成的纹理数据,不需要申请CPU可访问的内存,减少了内存占用的浪费。
[0009]在一种可能的设计方式中,内存分配器用于申请GPU可访问的内存分区包括:内存分配器用于调用第一接口向内部存储器申请GPU可访问的内存分区,第一接口为GPU申请内存分区的标准接口,GPU可访问的内存分区包括GPU可访问的物理地址范围和GPU可访问的内存分区的大小。上述可能的实现方式中,通过调用GPU申请内存分区的标准接口来申请内存,避免了申请CPU的内存,减少了内存占用的浪费。
[0010]在一种可能的设计方式中,将应用的待显示的图片数据解码为位图数据,并将位图数据封装为纹理数据包括:对待显示的图片数据的第一行的图片数据进行解码,生成第一行的图片数据的位图数据,对第一行的图片数据的位图数据进行数据转换,生成第一行的图片数据的纹理数据;然后对待显示的图片数据的第二行数据执行上述处理,直至处理完待显示的图片数据的最后一行的图片数据。上述可能的实现方式中,通过对图片数据进行解码,对解码生成的位图数据并行地转换处理,直接得到纹理数据,从而避免了将CPU的内存分区中存储的位图数据转换成纹理数据再上传到GPU的内存分区中的过程,从而可以避免数据上传耗时大造成的卡顿问题。
[0011]在一种可能的设计方式中,对待显示的图片数据的第一行的图片数据进行解码,生成第一行的图片数据的所述位图数据,对第一行的图片数据的位图数据进行数据转换,生成第一行的图片数据的纹理数据;然后对待显示的图片数据的第二行数据执行上述处理,直至处理完待显示的图片数据的最后一行的图片数据,包括:调用解码函数对第一行图片数据进行解码处理,生成第一行图片数据对应的位图数据;调用纹理转换动态库,对第一行图片数据对应的位图数据进行数据类型转换处理,生成第一行图片数据对应的纹理数据,纹理转换动态库包括将位图数据转换为纹理数据的转换函数;然后对待显示的图片数据的第二行图片数据执行上述处理,直至处理完待显示的图片数据的最后一行的图片数据。上述可能的实现方式中,通过对位图数据进行并行化的加速处理,直接生成纹理数据,从而避免了将CPU的内存分区中存储的位图数据转换成纹理数据再上传到GPU的内存分区中的过程,从而可以避免数据上传耗时大造成的卡顿问题。
[0012]第二方面提供一种电子设备,该电子设备包括:存储器和一个或多个处理器;存储器和处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当处理器执行计算机指令时,电子设备执行第一方面及其任一种可能的设计方式所述的方法。
[0013]第三方面提供一种芯片系统,该芯片系统可以应用于电子设备;该系统包括一个或多个接口电路和一个或多个处理器;接口电路和处理器通过线路互联;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,该信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,电子设备执行第一方面及其任一种可能的设计方式所述的方法。
[0014]第四方面提供一种可读存储介质,可读存储介质中存储有指令,当可读存储介质在电子设备上运行时,使得电子设备执行第一方面及其任一种可能的设计方式所述的方法。
[0015]第五方面提供一种计算机程序产品,其特征在于,当计算机程序产品在计算机上运行时,使得计算机执行第一方面及其任一种可能的设计方式所述的方法。
[0016]可以理解地,上述提供的任一种电子设备、芯片系统、可读存储介质和计算机程序产品,均可以根据上文所提供的对应的图片显示方法来实现,因此,其所能达到的有益效果可参考上文所提供的图片显示方法的有益效果,此处不再赘述。
附图说明
[0017]图1为本申请实施例提供的一种电子设备的结构示意图;
[0018]图2为本申请实施例提供的一种电子设备处理器和内存的结构示意图;
[0019]图3为本申请实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图片处理方法,其特征在于,应用于电子设备,所述方法包括:显示一个应用的交互界面,当检测到用户作用于所述交互界面的预设操作时,将所述应用待显示的图片数据解码为位图数据,并将所述位图数据封装为纹理数据;将所述纹理数据存储于图形处理器GPU可访问的内存分区中;触发所述GPU读取所述纹理数据执行绘制处理,得到渲染后的数据;触发显示器根据所述渲染后的数据显示图片。2.根据权利要求1所述的方法,其特征在于,所述将所述应用的待显示的图片数据解码为位图数据之前,所述方法还包括:创建软件解码器;定义内存分配器,所述内存分配器用于申请所述GPU可访问的内存分区,所述GPU可访问的内存分区用于存储所述纹理数据。3.根据权利要求2所述的方法,其特征在于,所述内存分配器用于申请所述GPU可访问的内存分区包括:所述内存分配器用于调用第一接口向内部存储器申请所述GPU可访问的内存分区,所述第一接口为所述GPU申请内存分区的标准接口,所述GPU可访问的内存分区包括所述GPU可访问的物理地址范围和所述GPU可访问的内存分区的大小。4.根据权利要求1至3任一项所述的方法,其特征在于,所述将所述应用待显示的图片数据解码为位图数据,并将所述位图数据封装为纹理数据包括:对所述待显示的图片数据的第一行的图片数据进行解码,生成第一行的图片数据的位图数据,对第一行的图片数据的位图数据进行数据转换,生成第一行的图片数据的纹理数据;然后对所述待显示的图片数据的第二行数据执行上述处理,直至处理完所述待显示的图片数据的最后一行的图片数据。5.根据权利要求4所述的方法,其特征在于,对所述待显示的图片数据的第一行的图片数据进行解码,生成第一行的图片数据的位图数据,对第一行的图片数据的位图数据进行数据转换,生成第一行的图片数据的纹理数据;然后对所述待显示的图片数据的第二行数据执行上述处理,直至处理完所述待显示的图片数据的最后一行的图片数据,包括:调用解码函数对所述第一行图片数据进行解码处理,生成所述第一行图片数据对应的位图数据;调用纹理转换动态库,对所述第一行图片数据对应的位图数据进行数据类型转换处理,生成所述第一行图片数据对应的纹理数据,所述纹理转换动态库包括将位图数据转换为纹理数据的转换函数;然后对所述待显示的图片数据的第二行图片数据执行上述处理,直至处理完所述待显示的图片数据的最后一行的图片数据。6.一种电子设备,其特征在于,所述电子设备包括:存储器和一个或多个处理器;所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,所述电子设备执行如下操作:显示一个应用的交互界面,当检测到用户作用于所述交互界面的预设操作时,将所述应用待显示的图片数据解码为位图数据,并将所述位图数据封装为纹理数据;将所述纹理数据存储于图形处理器GPU可访问的内存分区中;...

【专利技术属性】
技术研发人员:谭威孟坤涂赟王亮
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利