掌桥专利:专业的专利平台
掌桥专利
首页

一种基于Blit的图片重复贴图方法

文献发布时间:2024-04-18 20:00:50


一种基于Blit的图片重复贴图方法

技术领域

本发明属于GPU处理技术领域,尤其涉及一种基于Blit的图片重复贴图方法。

背景技术

图片重复贴图是GPU的一个常规处理操作,功能是直接配置GPU硬件进行数据搬移,搬移效率高,即将一个源图片重复拼贴至另一图像表面。Blit(位块传输)是GPU基础功能之一,Blit是一种大规模数据传输模式,将以矩形形式连续存储的数据块从存储器中源地址搬移到目的地址。基本上所有GPU都支持硬件Blit操作。

对于图片重复贴图操作,当前的实现方式一般为获取源图片和目的区域等信息,直接配置GPU硬件寄存器,由GPU硬件直接完成该操作。该方法配置简单,对于大尺寸图片重复贴图效率很高。但是GPU进行图片重复贴图功能时,常常受图片尺寸的影响,对于小尺寸图片,其重复贴图性能往往不如大尺寸图片,当图片尺寸越小,其性能下降越为明显。当桌面操作中小尺寸图片重复贴图次数较多时,甚至可能会出现卡顿,影响用户体验。因此,若能提升小尺寸图片重复贴图效率,将会有效提升GPU性能及桌面用户体验。

发明内容

鉴于上述问题,本发明的目的在于提供一种基于Blit的图片重复贴图方法,旨在解决现有方法针对小尺寸图片贴图效率较低的技术问题。

本发明采用如下技术方案:

所述基于Blit的图片重复贴图方法,包括下述步骤:

步骤S1、获取待贴图的源图片尺寸,以及贴图目标区域的尺寸和坐标信息;

步骤S2、将源图片尺寸与重复贴图效率下降的临界尺寸进行比较;

步骤S3、如果源图片尺寸大于临界尺寸,则以源图片和贴图目标区域的信息,配置GPU硬件完成重复贴图操作;

步骤S4、如果源图片尺寸不大于临界尺寸,则根据源图片尺寸和临界尺寸计算待拼接图片尺寸大小;

步骤S5、以待拼接图片尺寸大小计算申请临时显存;

步骤S6、采用Blit操作将源图片拼接至临时显存中;

步骤S7、根据临时显存中的拼接图片以及贴图目标区域的信息,配置GPU硬件完成重复贴图操作。

进一步的,步骤S4中,待拼接图片的宽高分别为Wt和Ht:

其中

进一步的,步骤S6的具体过程如下:

S61、计算临时显存初始贴图矩形坐标{d00x1,d00y1,d00x2,d00y2};

S62、根据源图片尺寸Ws*Hs和临时显存尺寸Wt*Ht,计算临时显存中X轴需要贴图数量m=Wt/Ws,Y轴上需要的贴图数量n=Ht/Hs;

S63、根据源图片尺寸Ws*Hs、初始贴图矩形坐标{d00x1,d00y1,d00x2,d00y2}、临时显存中X轴贴图数量m、Y轴贴图数量n计算临时显存中各个贴图矩形的坐标,其中临时显存中X轴第j个、Y轴第i个贴矩形的坐标为:

{dijx1,dijy1,dijx2,dijy2}={d00x1+j*Ws,d00y1+i*Hs,d00x2+j*Ws,d00y2+i*Hs}

其中0≤i≤(n–1),0≤j≤(m–1)。

S64、根据源图片信息、临时显存区域的贴图矩形坐标信息构建Blit命令流,将源图片搬移至临时显存的各个坐标上,得到拼接图片。

本发明的有益效果是:本发明采用Blit操作将源图片在临时显存中拼接,先根据源图片和临时显存信息,计算临时显存中初始贴图坐标和X轴及Y轴上需要的贴图数量,然后由源图片尺寸、临时显存初始贴图坐标、临时显存X轴和Y轴需要的贴图数量,计算临时显存中各个贴图的坐标,最后采用源图片信息、临时显存区域贴图坐标信息等构建Blit命令流,将源图片搬移至临时显存的各个坐标上。通过本发明方法,对于小尺寸图片,先采用Blit功能将其拼接成较大尺寸的拼接图片,再进行重复贴图操作,能够明显提升贴图效率。

附图说明

图1是本发明实施例提供的基于Blit的图片重复贴图方法的流程图;

图2是本发明实施例提供基于Blit的图片重复贴图方法的过程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

Blit功能是GPU的基础功能之一,该功能是直接配置GPU硬件进行数据搬移,搬移效率高。对于大尺寸图片重复贴图效率很高,但对于小尺寸图片,其贴图效率较差,当短时间内小尺寸图片重复贴图操作次数较多时,甚至会影响GPU性能,导致桌面操作出现卡顿,影响用户体验。通过分析GPU重复贴图操作,发现当图片尺寸由大变小时,GPU性能往往不是成比例的线性下降,而是在图片尺寸小于某个数值之后,性能出现较大幅度下降。针对此问题,本发明提供了一种基于Blit的图片重复贴图方法以解决此问题,该方法通过Blit操作将较小图片拼接成较大图片后,再进行重复贴图操作,从而提升小尺寸图片重复贴图效率。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

如图1所示,本实施例提供的基于Blit的图片重复贴图方法,包括下述步骤:

步骤S1、获取待贴图的源图片尺寸,以及贴图目标区域的尺寸和坐标信息。

GPU在操作贴图时,将源图片重复贴图到目标区域。贴图前需要获取的参数有待贴图片的尺寸,即源图片尺寸。另外,还包括贴图目标区域的一些信息,包括区域尺寸和区域的坐标信息,便于能够将源图片贴图到合适位置。

步骤S2、将源图片尺寸与重复贴图效率下降的临界尺寸进行比较。

如前所述,GPU重复贴图操作,图片尺寸越大效率越高,GPU性能越好。但是图片尺寸由大变小时,GPU性能不是成比例的线性下降,而是在图片尺寸小于某个数值(即临界尺寸)之后,性能出现较大幅度下降,这与GPU的不同处理能力相关。因此针对当前型号的GPU,可以得到相应的临界尺寸。

步骤S3、如果源图片尺寸大于临界尺寸,则以源图片和贴图目标区域的信息,配置GPU硬件完成重复贴图操作。

如果源图片尺寸大于临界尺寸,表明当前源图片尺寸相对较大,可以直接进行图片重复贴图操作,通过配置GPU硬件完成该操作。

步骤S4、如果源图片尺寸不大于临界尺寸,则根据源图片尺寸和临界尺寸计算待拼接图片尺寸大小。

如果源图片尺寸小于或等于临界尺寸,表明当前源图片尺寸相对较小,直接重复贴图操作效率低。比如结合图2所示,源图片尺寸为Ws*Hs,即宽和高分别为Ws和Hs,重复贴图效率下降的临界尺寸为W*H,则计算待拼接图片尺寸Wt*Ht,有:

其中

步骤S5、以待拼接图片尺寸大小计算申请临时显存。

本步骤按照前述计算得到的待拼接图片尺寸大小申请临时缓存,用于后续操作中存放拼接后的图片,即存放拼接图片。

步骤S6、采用Blit操作将源图片拼接至临时显存中。

在计算机图形学中,矩形通常通过一个RECT结构来表示,该结构定义了矩形的左上角和右下角坐标,具体来说,RECT结构定义如下:

因此,一个矩形的坐标可以表示为{left,top,right,bottom}。

基于此,本步骤的具体过程如下:

S61、计算临时显存初始贴图矩形坐标{d00x1,d00y1,d00x2,d00y2}。

这里d00表示X轴第1个Y轴第一个贴图矩形,即初始贴图矩形,可表示为:

{d00x1,d00y1,d00x2,d00y2}={0,0,Ws,Hs}。

另外,为了确保贴图矩形的坐标不超过临时显存大小,可以通过与临时显存范围求交集形式确定贴图矩形的坐标,即:

{d00x1,d00y1,d00x2,d00y2}={0,0,Ws,Hs}∩{0,0,Wt,Ht}。

S62、根据源图片尺寸Ws*Hs和临时显存尺寸Wt*Ht,计算临时显存中X轴需要贴图数量m=Wt/Ws,Y轴上需要的贴图数量n=Ht/Hs。

S63、根据源图片尺寸Ws*Hs、初始贴图矩形坐标{d00x1,d00y1,d00x2,d00y2}、临时显存中X轴贴图数量m、Y轴贴图数量n计算临时显存中各个贴图矩形的坐标,其中临时显存中X轴第j个、Y轴第i个贴矩形的坐标为:

{dijx1,dijy1,dijx2,dijy2}={d00x1+j*Ws,d00y1+i*Hs,d00x2+j*Ws,d00y2+i*Hs}

其中0≤i≤(n–1),0≤j≤(m–1)。

同样为了确保不超过临时显存大小,通过求交方式确定各贴图矩形的坐标,即:

{dijx1,dijy1,dijx2,dijy2}={d00x1+j*Ws,d00y1+i*Hs,d00x2+j*Ws,d00y2+i*Hs}∩{0,0,Wt,Ht}。

S64、根据源图片信息、临时显存区域的贴图矩形坐标信息构建Blit命令流,将源图片搬移至临时显存的各个坐标上,得到拼接图片。

步骤S7、根据临时显存中的拼接图片以及贴图目标区域的信息,配置GPU硬件完成重复贴图操作。

将小尺寸的源图片拼接成一个不小于临界尺寸的拼接图片后,保存在临时显存中。然后重复从临时显存中获取拼接图片,将拼接图片重复贴图至贴图目标区域中,完成重复贴图操作。

从上述过程可知,本发明实施例对于源图片尺寸大于临界尺寸的重复贴图操作,以源图片、目的区域信息配置GPU硬件完成重复贴图操作;对于图片尺寸不大于临界尺寸的重复贴图操作,先计算临时显存中初始贴图坐标和X轴及Y轴上需要的贴图数量,然后由源图片尺寸、临时显存初始贴图坐标、临时显存X轴和Y轴需要的贴图数量,计算临时显存中各个贴图的坐标,采用Blit操作将源图片搬移至临时显存的各个坐标上,实现将源图片拼接成较大尺寸的拼接图片,最后再将拼接图片重复贴图至目标区域。这样可以利用GPU高效的Blit功能,解决因图片尺寸小而导致的重复贴图效率下降的问题,提高小尺寸图片重复贴图的效率。对于一些小尺寸图片重复贴图操作较多的场景,可以有效提升GPU的性能和桌面用户体验。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

相关技术
  • 芯片操作方法、芯片、可读存储介质、录入设备及成像盒
  • 存储设备在线检测方法、装置、设备及可读存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种存储池创建方法、装置、设备及可读存储介质
  • 存储设备的系统重置方法、装置、系统及可读存储介质
  • 芯片封装模块制造方法、装置、设备及可读存储介质
  • 芯片控温方法、装置、设备、存储介质及芯片封装模块
技术分类

06120116543242