著录项信息
专利名称 | 一种图像快速旋转的方法及装置 |
申请号 | CN201710067843.7 | 申请日期 | 2017-02-07 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2018-08-14 | 公开/公告号 | CN108399603A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06T3/60 | IPC分类号 | G;0;6;T;3;/;6;0查看分类表>
|
申请人 | 厦门雅迅网络股份有限公司 | 申请人地址 | 福建省厦门市火炬高新区软件园创新大厦C区303-E
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 厦门雅迅网络股份有限公司 | 当前权利人 | 厦门雅迅网络股份有限公司 |
发明人 | 施正;姚亮;黄睿欣;牟韵文;何展然 |
代理机构 | 厦门市精诚新创知识产权代理有限公司 | 代理人 | 何家富 |
摘要
本发明提出一种图像快速旋转的方法及装置,通过使用图形处理器(GPU,Graphics Processing Unit)的多核并行计算代替中央处理器(CPU,Central Processing Unit)中对图像旋转的数据处理,大大地提高了旋转的效率,并且在计算的过程中增加了运算用时的统计,使得程序能够在不同的设备上或者同个设备不同状态下都尽可能的保证运行流畅度,由此提高客户的使用体验度。
1.一种图像快速旋转的方法,其特征在于,包括步骤:
S10,采用双线性插值法将完整图像数据转换成极坐标矩阵,获取用户旋转角度并对极坐标进行偏移,采用双线性插值法转换极坐标以得到旋转一次后的完整图像数据;
S20,输出旋转后的完整图像数据;
S30,统计执行步骤S10的时长,预设第一阈值,若时长小于预设的第一阈值,则重复执行步骤S10至S20直至完整图像数据最终完成与用户旋转角度所匹配的旋转,若时长大于等于预设的第一阈值,则执行步骤S40至S50;
S40,采用双线性插值法将屏幕数据的外接圆范围所包含的图像数据转换成极坐标矩阵,其中,屏幕数据的外接圆范围所包含的图像数据记为第一图像数据,除屏幕数据的外接圆范围所包含的图像数据之外的图像数据记为第二图像数据,获取用户旋转角度并对极坐标进行偏移,采用双线性插值法转换极坐标以得到旋转一次后的第一图像数据,输出第一图像数据;重复上述过程直至第一图像数据最终完成与用户旋转角度所匹配的旋转;
S50,在用户结束图像旋转时,采用双线性插值法将第二图像数据转换成极坐标矩阵,获取用户在S40结束后最终的旋转角度并对极坐标进行偏移,采用双线性插值法转换极坐标以得到最终旋转后的第二图像数据,将最终旋转后的第二图像数据与最终旋转后的第一图像数据相结合,组成旋转后的完整图像数据用于后续其他的计算。
2.根据权利要求1所述的图像快速旋转的方法,其特征在于,将所述的步骤S30替换为S30’,并还包括步骤S60和S70,其中:
S30’,统计执行步骤S10的时长,预设第一阈值和第二阈值,若时长小于预设的第一阈值,则重复执行步骤S10至S20直至完整图像数据最终完成与用户旋转角度所匹配的旋转,若时长大于等于预设的第一阈值且小于预设的第二阈值,则执行步骤S40至S50,若时长大于等于预设的第二阈值,则执行步骤S60至S70;
S60,采用最邻近插值法将第一图像数据转换成极坐标矩阵,获取用户旋转角度并对极坐标进行偏移,采用最邻近插值法转换极坐标以得到旋转一次后的第一图像数据,输出旋转后的第一图像数据;重复上述过程直至第一图像数据最终完成与用户旋转角度所匹配的旋转,并在最后一次重复的过程中,采用双线性插值法转换极坐标以得到最后一次旋转后的第一图像数据并输出;
S70,在用户结束图像旋转时,采用双线性插值法将第二图像数据转换成极坐标矩阵,获取用户旋转角度并对极坐标进行偏移,采用双线性插值法转换极坐标直接得到旋转后的第二图像数据,将最终旋转后的第二图像数据与最终旋转后的第一图像数据相结合,组成旋转后的完整图像数据用于后续其他的计算。
3.根据权利要求1或2所述的图像快速旋转的方法,其特征在于,还包括:步骤S00,获取完整图像数据。
4.一种装置,其特征在于,包括:
处理器以及存储器;
所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,使得所述装置执行上述权利要求1至3任一所述的图像快速旋转的方法。
5.根据权利要求4所述的一种装置,其特征在于,所述程序包括第一程序以及第二程序,所述的处理器包括中央处理器以及图形处理器,
所述中央处理器用于执行所述第一程序,使得所述装置执行上述权利要求3所述的图像快速旋转的方法中的步骤S00;
所述图形处理器用于执行所述第二程序,使得所述装置执行上述权利要求1或2所述的图像快速旋转的方法。
一种图像快速旋转的方法及装置\n技术领域\n[0001] 本发明涉及计算机图像处理领域,具体涉及一种图像快速旋转的方法及装置。\n背景技术\n[0002] 随着手机软件的快速发展,越来越多与地图相关的软件被开发出来。当我们在制作手机中与地图相关的软件时,不可避免的会对地图进行旋转操作,旋转算法众多,算法的复杂度与结果各不相同。如果只采用复杂算法进行地图的旋转,对于性能较好的设备能够完全流畅的操作,但对于性能较差的设备或处于繁忙状态的设备,在对地图进行旋转时则会出现卡顿的情况。因此我们需要一种能够高速处理图像旋转和自适应设备情况的旋转方案。\n发明内容\n[0003] 本发明的目的在于提供一种图像快速旋转的方法及装置,该方法能高速处理图像旋转并且能够自适应设备情况。\n[0004] 具体方案如下:\n[0005] 一种图像快速旋转的方法,包括步骤:\n[0006] S10,采用双线性插值法将完整图像数据转换成极坐标矩阵,获取用户旋转角度并对极坐标进行偏移,采用双线性插值法转换极坐标以得到旋转一次后的完整图像数据;\n[0007] S20,输出旋转后的完整图像数据;\n[0008] S30,统计执行步骤S10的时长,预设第一阈值,若时长小于预设的第一阈值,则重复执行步骤S10至S20直至完整图像数据最终完成与用户旋转角度所匹配的旋转,若时长大于等于预设的第一阈值,则执行步骤S40至S50;\n[0009] S40,采用双线性插值法将屏幕数据的外接圆范围所包含的图像数据转换成极坐标矩阵,其中,屏幕数据的外接圆范围所包含的图像数据记为第一图像数据,除屏幕数据的外接圆范围所包含的图像数据之外的图像数据记为第二图像数据,获取用户旋转角度并对极坐标进行偏移,采用双线性插值法转换极坐标以得到旋转一次后的第一图像数据,输出第一图像数据;重复上述过程直至第一图像数据最终完成与用户旋转角度所匹配的旋转;\n[0010] S50,在用户结束图像旋转时,采用双线性插值法将第二图像数据转换成极坐标矩阵,获取用户在S40结束后最终的旋转角度并对极坐标进行偏移,采用双线性插值法转换极坐标以得到最终旋转后的第二图像数据,将最终旋转后的第二图像数据与最终旋转后的第一图像数据相结合,组成旋转后的完整图像数据用于后续其他的计算。\n[0011] 进一步的,将所述的步骤S30替换为S30’,并还包括步骤S60和S70,其中:\n[0012] S30’,统计执行步骤S10的时长,预设第一阈值和第二阈值,若时长小于预设的第一阈值,则重复执行步骤S10至S20直至完整图像数据最终完成与用户旋转角度所匹配的旋转,若时长大于等于预设的第一阈值且小于预设的第二阈值,则执行步骤S40至S50,若时长大于等于预设的第二阈值,则执行步骤S60至S70;\n[0013] S60,采用最邻近插值法将第一图像数据转换成极坐标矩阵,获取用户旋转角度并对极坐标进行偏移,采用最邻近插值法转换极坐标以得到旋转一次后的第一图像数据,输出旋转后的第一图像数据;重复上述过程直至第一图像数据最终完成与用户旋转角度所匹配的旋转,并在最后一次重复的过程中,采用双线性插值法转换极坐标以得到最后一次旋转后的第一图像数据并输出;\n[0014] S70,在用户结束图像旋转时,采用双线性插值法将第二图像数据转换成极坐标矩阵,获取用户旋转角度并对极坐标进行偏移,采用双线性插值法转换极坐标直接得到旋转后的第二图像数据,将最终旋转后的第二图像数据与最终旋转后的第一图像数据相结合,组成旋转后的完整图像数据用于后续其他的计算。\n[0015] 进一步的,还包括:步骤S00,获取完整图像数据。\n[0016] 一种装置,包括:\n[0017] 处理器以及存储器;\n[0018] 所述存储器用于存储程序;\n[0019] 所述处理器用于执行所述存储器中的程序,使得所述装置执行上述的图像快速旋转的方法。\n[0020] 进一步的,所述程序包括第一程序以及第二程序,\n[0021] 所述的处理器包括中央处理器以及图形处理器,\n[0022] 所述中央处理器用于执行所述第一程序,使得所述装置执行上述的图像快速旋转的方法中的步骤S00;\n[0023] 所述图形处理器用于执行所述第二程序,使得所述装置执行上述的图像快速旋转的方法。\n[0024] 本发明有益效果:通过使用图形处理器(GPU,Graphics Processing Unit)的多核并行计算代替中央处理器(CPU,Central Processing Unit)中对图像旋转的数据处理,大大地提高了旋转的效率,并且在计算的过程中增加了运算用时的统计,使得程序能够在不同的设备上或者同个设备不同状态下都尽可能的保证运行流畅度,由此提高客户的使用体验度。\n附图说明\n[0025] 图1为本发明一实施例方法流程图。\n具体实施方式\n[0026] 为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。现结合附图和具体实施方式对本发明进一步说明。\n[0027] 实施例1为一种图像快速旋转的方法,包括步骤:\n[0028] S10,采用双线性插值法将完整图像数据转换成极坐标矩阵,获取用户旋转角度并对极坐标进行偏移,采用双线性插值法转换极坐标以得到旋转一次后的完整图像数据;\n[0029] S20,输出旋转后的完整图像数据;\n[0030] S30,统计执行步骤S10的时长,预设第一阈值,若时长小于预设的第一阈值,则重复执行步骤S10至S20直至完整图像数据最终完成与用户旋转角度所匹配的旋转,若时长大于等于预设的第一阈值,则执行步骤S40至S50;\n[0031] S40,采用双线性插值法将屏幕数据的外接圆范围所包含的图像数据转换成极坐标矩阵,其中,屏幕数据的外接圆范围所包含的图像数据记为第一图像数据,除屏幕数据的外接圆范围所包含的图像数据之外的图像数据记为第二图像数据,获取用户旋转角度并对极坐标进行偏移,采用双线性插值法转换极坐标以得到旋转一次后的第一图像数据,输出第一图像数据;重复上述过程直至第一图像数据最终完成与用户旋转角度所匹配的旋转;\n[0032] S50,在用户结束图像旋转时,采用双线性插值法将第二图像数据转换成极坐标矩阵,获取用户旋转角度并对极坐标进行偏移,采用双线性插值法转换极坐标直接得到旋转后的第二图像数据,将最终旋转后的第二图像数据与最终旋转后的第一图像数据相结合,组成旋转后的完整图像数据用于后续其他的计算。\n[0033] 实施例2\n[0034] 实施例2在实施例1的基础上,更改步骤S30为S30’并还包括步骤S60及S70,其中:\n[0035] S30’,统计执行步骤S10的时长,预设第一阈值和第二阈值,若时长小于预设的第一阈值,则重复执行步骤S10至S20直至完整图像数据最终完成与用户旋转角度所匹配的旋转,若时长大于等于预设的第一阈值且小于预设的第二阈值,则执行步骤S40至S50,若时长大于等于预设的第二阈值,则执行步骤S60至S70;\n[0036] S60,采用最邻近插值法将第一图像数据转换成极坐标矩阵,获取用户旋转角度并对极坐标进行偏移,采用最邻近插值法转换极坐标以得到旋转一次后的第一图像数据,输出旋转后的第一图像数据;重复上述过程直至第一图像数据最终完成与用户旋转角度所匹配的旋转,并在最后一次重复的过程中,采用双线性插值法转换极坐标以得到最后一次旋转后的第一图像数据并输出;\n[0037] S70,在用户结束图像旋转时,采用双线性插值法将第二图像数据转换成极坐标矩阵,获取用户旋转角度并对极坐标进行偏移,采用双线性插值法转换极坐标直接得到旋转后的第二图像数据,将最终旋转后的第二图像数据与最终旋转后的第一图像数据相结合,组成旋转后的完整图像数据用于后续其他的计算。\n[0038] 接下来结合另一实施例3装置对实施例2的方法进行说明,示例中,以地图数据的旋转示出,可以知道的是,图像数据包括但不限于地图数据,本实施例3的装置包含了中央处理器、存储器、显卡三个单元。其中显卡的GPU为主要单元,至少需要支持openCL2.0以上或CUDA的多线程编程能力,主要的数据计算功能在GPU中实现, GPU程序对处理的用时进行统计,并通过处理时间的不同而采用不同的旋转策略。存储器用于存储程序,程序用以获取地图的数据并完成地图数据的旋转计算。中央处理器为辅助单元,主要用来获取地图的数据并向GPU发出操作指令。在另外的实施例4装置中,包括中央处理器和存储器,存储器存储程序,由中央处理器执行存储器的程序以完成实施例1以及实施例2的方法[0039] 从硬件方面来看,考虑到GPU的多核处理器对离散型、互不相关的数据进行并行计算有着天然的优势,并且目前的GPU通用计算技术已相对成熟。我们在进行地图数据的计算时将使用GPU处理器代替CPU处理器进行数据的运算,不仅可以减少CPU的使用率还可以提高数据的计算速度。\n[0040] 从图像的旋转算法来看,目前图像旋转的方式众多,每种旋转方法都有其各自的特点,一般来说旋转的效果和旋转的速率成反比。所以我们应该对不同硬件的设备采用不同的算法来进行数据的处理。我们知道用极坐标进行图像的旋转是一种常用的方式,极坐标用在地图的旋转上有特别的效果,因为对地图的旋转是要连续输出显示的。用极坐标旋转的过程中对图像的旋转只需要偏移极坐标矩阵就能够完成,通过GPU的并行计算偏移的时间复杂度为O(1)。对GPU中图像旋转用时进行统计,设定两个时间阈值t1与t2(t1=t2时\n[0073] 第二步:在GPU的缓存中截取屏幕尺寸外接圆所包含的数据,记为A。\n[0074] 第三步:GPU总线程数定义为A所对应极坐标矩阵的像素值,并将A通过最邻近插值法转为极坐标矩阵,记为A’。\n[0075] 第四步:分配线程,对A’进行偏移。\n[0076] 第五步:将偏移后的A’用最邻近插值法转为直角坐标矩阵,输出给CPU显示。\n[0077] 重复第四步和第五步,直到完成旋转。\n[0078] 第六步:对最终的A’用双线性插值法转为直角坐标矩阵,得到较好的旋转后图像,输出显示。\n[0079] 第七部:将A以外的区域(记为B)再进行旋转。\n[0080] 尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
法律信息
- 2022-12-06
- 2020-02-04
实质审查的生效
IPC(主分类): G06T 3/60
专利申请号: 201710067843.7
申请日: 2017.02.07
- 2018-08-14
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |