CN115018713B - 实现图形旋转的数据存储及访问方法、装置和存储介质 - Google Patents
实现图形旋转的数据存储及访问方法、装置和存储介质 Download PDFInfo
- Publication number
- CN115018713B CN115018713B CN202210924450.4A CN202210924450A CN115018713B CN 115018713 B CN115018713 B CN 115018713B CN 202210924450 A CN202210924450 A CN 202210924450A CN 115018713 B CN115018713 B CN 115018713B
- Authority
- CN
- China
- Prior art keywords
- coordinates
- graph
- points
- coordinate
- rotation
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000013500 data storage Methods 0.000 title claims abstract description 30
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 27
- 230000009466 transformation Effects 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 17
- 230000000694 effects Effects 0.000 claims description 7
- 241001442234 Cosa Species 0.000 claims description 3
- 244000089409 Erythrina poeppigiana Species 0.000 claims description 3
- 235000009776 Rathbunia alamosensis Nutrition 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005855 radiation Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
- G06T3/606—Rotation of whole images or parts thereof by memory addressing or mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0007—Image acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/02—Affine transformations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本申请公开了实现图形旋转的数据存储及访问方法、装置和存储介质,利用划线算法对图形块单元的边界点坐标进行确定,同时并行做旋转后坐标的反映射得到源图坐标,再到源图数据缓存器中取出对应坐标的点。在低资源消耗问题的条件下解决图形旋转的效率问题,针对旋转数据块的处理的特性提出实现图形旋转的数据存储及访问方法,能够提高旋转数据块的处理效率。
Description
技术领域
本申请涉及图形加速器领域,尤其是实现图形旋转的数据存储及访问方法、装置和存储介质。
背景技术
传统的图形旋转加速装置的方法主要有两类,包括:(1)将源图按固定块进行划分后,再基于块单元做仿射变换来得到旋转后的4个顶点坐标,还要根据旋转后的顶点来确定块边界的归属情况,再利用bresenham划线算法确定4条边上所有点的坐标,最后通过反映射(放射反变换)得到源图坐标上的点。这种方法对待旋转的数据以行为单位存储,并未对如何存储及使用时如何高效访问做设计说明。(2)基于输入输出缓冲区大小进行块单元尺寸的自适应调整,从而充分利用缓冲区来进行仿射变换,缩放,旋转和错切等。这种方法在检测到数据有效且x%5为4时需要暂停一个周期,等待两个周期把插值运算的原始图像的四个像素点从缓存中读出来,然后进行插值运算得到目标像素点数据。在某些情况下就会降低变换的处理效率。
因此,相关技术存在的上述技术问题亟待解决。
发明内容
本申请旨在解决相关技术中的技术问题之一。为此,本申请实施例提供实现图形旋转的数据存储及访问方法、装置和存储介质,能够实现图形旋转的数据存储及访问。
根据本申请实施例一方面,提供实现图形旋转的数据存储及访问方法,所述方法包括:
将原图形的顶点坐标通过仿射变换得到目标图坐标系中的坐标;
根据目标图坐标系中的坐标得到目标图的旋转中心;
根据输入的旋转角度得到顶点的旋转后的坐标,获得所述旋转后的坐标之间的整数坐标点,根据所述整数坐标点描绘图像边界;
将旋转后的图形每一行的所有点坐标反映射到原图形的坐标系,得到源头坐标点;
对原图形的坐标系的像素值进行双线性插值得到目标像素值;
根据所述源头坐标点的奇偶性分布得到每个插值源像素点对应的存储地址;
将滤波后的点和对应目标图坐标点输入图像叠加器中进行混叠,得到最终的旋转叠加后的效果图。
在其中一个实施例中,所述根据输入的旋转角度得到顶点的旋转后的坐标,包括:
接收输入的旋转角度;
根据输入的旋转角度,通过仿射变换器得到顶点的旋转后的坐标。
在其中一个实施例中,目标图坐标系中的坐标若有4个顶点,分别为A、B、C、D,所述获得所述旋转后的坐标之间的整数坐标点,根据所述整数坐标点描绘图像边界,包括:
通过bresenham划线模块得到A与D、D与C之间的所有整数坐标点,根据A与D、D与C之间的所有整数坐标点描绘图像的左边界;
通过bresenham划线模块得到A与B、B与C之间的所有整数坐标点,根据A与B、B与C之间的所有整数坐标点描绘图像的右边界。
在其中一个实施例中,所述将旋转后的图形每一行的所有点坐标反映射到原图形的坐标系,包括:
将所述图像边界输入左右边界信息缓存器,由仿射逆变换器对旋转后的图形按从上到下的顺序依次将每一行的所有点坐标反映射到原图形的坐标系。
在其中一个实施例中,点坐标反映射到原图形的坐标系的计算公式包括:
x0=x1cosa+y1sina-ccosa-dsina+m
y0=x1sina+y1cosa-csina-dcosa+n
其中,x0为点坐标反映射到原图形的横坐标,y0为点坐标反映射到原图形的纵坐标,x1为通过仿射变换得到目标图坐标系中的横坐标,y1为通过仿射变换得到目标图坐标系中的纵坐标,c为目标图的旋转中心的横坐标,d为目标图的旋转中心的纵坐标,m为原图形的旋转中心的横坐标,n为原图形的旋转中心的纵坐标。
在其中一个实施例中,所述方法还包括:
在每个块缓存中,按奇数行奇数列、奇数行偶数列、偶数行奇数列、偶数行偶数列的方式对所述插值源像素点进行存储。
在其中一个实施例中,所述根据所述源头坐标点的奇偶性分布得到每个插值源像素点对应的存储地址,所述奇偶性分布包括:所述源头坐标点的横坐标和纵坐标均为奇数、所述源头坐标点的横坐标和纵坐标均为偶数、所述源头坐标点的横坐标为偶数且纵坐标为奇数、所述源头坐标点的横坐标为奇数且纵坐标为偶数。
根据本申请实施例一方面,提供实现图形旋转的数据存储及访问装置,所述装置包括:
第一模块,用于将原图形的顶点坐标通过仿射变换得到目标图坐标系中的坐标;
第二模块,用于根据目标图坐标系中的坐标得到目标图的旋转中心;
第三模块,用于根据输入的旋转角度得到顶点的旋转后的坐标,获得所述旋转后的坐标之间的整数坐标点,根据所述整数坐标点描绘图像边界;
第四模块,用于将旋转后的图形每一行的所有点坐标反映射到原图形的坐标系,得到源头坐标点;
第五模块,用于对原图形的坐标系的像素值进行双线性插值得到目标像素值;
第六模块,用于根据所述源头坐标点的奇偶性分布得到每个插值源像素点对应的存储地址;
第七模块,用于将滤波后的点和对应目标图坐标点输入图像叠加器中进行混叠,得到最终的旋转叠加后的效果图。
根据本申请实施例一方面,提供实现图形旋转的数据存储及访问装置,所述装置包括:
至少一个处理器;
至少一个存储器,所述存储器用于存储至少一个程序;
当至少一个所述程序被至少一个所述处理器执行时实现如前面实施例所述的实现图形旋转的数据存储及访问方法。
根据本申请实施例一方面,提供存储介质,所述存储介质存储有处理器可执行的程序,所述处理器可执行的程序被处理器执行时实现如前面实施例所述的实现图形旋转的数据存储及访问方法。
本申请实施例提供的实现图形旋转的数据存储及访问方法、装置和存储介质的有益效果为:本申请利用bresenham划线算法对图形块单元的边界点坐标进行确定,与此同时,并行做旋转后坐标的反映射得到源图坐标,再到源图数据缓存器中取出对应坐标的点。在低资源消耗问题的条件下解决图形旋转的效率问题。本申请针对旋转数据块的处理的特性提出一种实现图形旋转的数据存储及访问方法能够,提高旋转数据块的处理效率。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的图像旋转后与目标图叠加操作的示意图;
图2为本申请实施例提供的实现图形旋转的数据存储及访问方法的流程图;
图3为本申请实施例提供的实现图形旋转的数据存储及访问方法系统实现的框图;
图4为本申请实施例提供的当前块宽度为奇数时的存储示意图;
图5为本申请实施例提供的当前块宽度为偶数时的存储示意图;
图6为本申请实施例提供的实现图形旋转的数据存储及访问装置的示意图;
图7为本申请实施例提供的一种实现图形旋转的数据存储及访问装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
传统的图形旋转加速装置的方法主要有两类,包括:(1)将源图按固定块进行划分后,再基于块单元做仿射变换来得到旋转后的4个顶点坐标,还要根据旋转后的顶点来确定块边界的归属情况,再利用bresenham划线算法确定4条边上所有点的坐标,最后通过反映射(放射反变换)得到源图坐标上的点。这种方法对待旋转的数据以行为单位存储,并未对如何存储及使用时如何高效访问做设计说明。(2)基于输入输出缓冲区大小进行块单元尺寸的自适应调整,从而充分利用缓冲区来进行仿射变换,缩放,旋转和错切等。这种方法在检测到数据有效且x%5为4时需要暂停一个周期,等待两个周期把插值运算的原始图像的四个像素点从缓存中读出来,然后进行插值运算得到目标像素点数据。在某些情况下就会降低变换的处理效率。综上所述:不同的数据存储和访问方式对图形旋转的效率有很大的影响,因此一种兼顾效率与资源消耗的高效的数据存取方式亟待解决。
为了解决上述问题,本申请提出了一种实现图形旋转的数据存储及访问方法、装置和存储介质。简要的说,本申请提供的是一种基于固定大小块的双缓存器(例如固定块尺寸可以设置为16x16,但不作限定)及旋转插值数据查表通道的数据存取装置,再利用bresenham划线算法对图形块单元的边界点坐标进行确定,与此同时,并行做旋转后坐标的反映射得到源图坐标,再到源图数据缓存器中取出对应坐标的点。在低资源消耗问题的条件下解决图形旋转的效率问题。
如图1和图2所示,本申请提出的了一种实现图形旋转的数据存储及访问方法包括:
S201、将原图形的顶点坐标通过仿射变换得到目标图坐标系中的坐标;
S202、根据目标图坐标系中的坐标得到目标图的旋转中心;
S203、根据输入的旋转角度得到顶点的旋转后的坐标,获得所述旋转后的坐标之间的整数坐标点,根据所述整数坐标点描绘图像边界;
S204、将旋转后的图形每一行的所有点坐标反映射到原图形的坐标系,得到源头坐标点;
S205、对原图形的坐标系的像素值进行双线性插值得到目标像素值;
S206、根据所述源头坐标点的奇偶性分布得到每个插值源像素点对应的存储地址;
S207、将滤波后的点和对应目标图坐标点输入图像叠加器中进行混叠,得到最终的旋转叠加后的效果图。
可选地,所述根据输入的旋转角度得到顶点的旋转后的坐标,包括:接收输入的旋转角度;根据输入的旋转角度,通过仿射变换器得到顶点的旋转后的坐标。
可选地,目标图坐标系中的坐标若有4个顶点,分别为A、B、C、D,所述获得所述旋转后的坐标之间的整数坐标点,根据所述整数坐标点描绘图像边界,包括:通过bresenham划线模块得到A与D、D与C之间的所有整数坐标点,根据A与D、D与C之间的所有整数坐标点描绘图像的左边界;通过bresenham划线模块得到A与B、B与C之间的所有整数坐标点,根据A与B、B与C之间的所有整数坐标点描绘图像的右边界。
具体地,所述将旋转后的图形每一行的所有点坐标反映射到原图形的坐标系,包括:将所述图像边界输入左右边界信息缓存器,由仿射逆变换器对旋转后的图形按从上到下的顺序依次将每一行的所有点坐标反映射到原图形的坐标系。
其中,点坐标反映射到原图形的坐标系的计算公式包括:
x0=x1cosa+y1sina-ccosa-dsina+m
y0=x1sina+y1cosa-csina-dcosa+n
其中,x0为点坐标反映射到原图形的横坐标,y0为点坐标反映射到原图形的纵坐标,x1为通过仿射变换得到目标图坐标系中的横坐标,y1为通过仿射变换得到目标图坐标系中的纵坐标,c为目标图的旋转中心的横坐标,d为目标图的旋转中心的纵坐标,m为原图形的旋转中心的横坐标,n为原图形的旋转中心的纵坐标。
更多地,本实施例的方法还包括:在每个块缓存中,按奇数行奇数列、奇数行偶数列、偶数行奇数列、偶数行偶数列的方式对所述插值源像素点进行存储。
具体地,本实施例的根据所述源头坐标点的奇偶性分布得到每个插值源像素点对应的存储地址,所述奇偶性分布包括:所述源头坐标点的横坐标和纵坐标均为奇数、所述源头坐标点的横坐标和纵坐标均为偶数、所述源头坐标点的横坐标为偶数且纵坐标为奇数、所述源头坐标点的横坐标为奇数且纵坐标为偶数。
如图3所示,本申请相较于相关技术,对数据存储和访问的方法做了更加细致的设计,其中在数据块的存储方面采用双缓存提高数据的响应能力;在对单个数据块的存取方面,针对最终插值是采用bilinear方式,同时需要2x2的4个点,从而采用了4块小缓存分别存储“奇数行奇数列”“奇数行偶数列”“偶数行奇数列”“偶数行偶数列”的数据。
同时,本申请在计算旋转后的边界坐标和反映射的操作之间增加一个fifo,从而不必再将旋转后的所有边界坐标计算完成后,再对旋转后的图形进行反映射操作。可在左右边界表非空的条件下并行执行,无需等待左右边界都完全画好再执行反映射操作。
本发明具体的实施过程如下:
如图1所示,若原图像有4个顶点A、B、C、D,顶点坐标通过仿射变换得到目标图坐标系中的坐标A’、B’、C’、D’。设A(x0,y0),A’(x1,y1),原图形的旋转中心在(m,n),目标图的旋转中心在(c,d)。在用户输入旋转角度后由“仿射变换器”得到四个顶点的旋转后的坐标,再通过bresenham划线模块把A’—D’—C’之间的所有整数坐标点描出来形成图像的左边界,同时把A’—B’—C’之间的所有整数坐标点描出来形成图像的右边界。将左右边界的信息一对一对地输入到“左右边界信息缓存器”中,再由“仿射逆变换器”对旋转后的图形按从上到下的顺序依次将每一行的所有点坐标反映射到源图坐标系。
在源图缓存器将数据准备好后,根据由目标坐标反映射回源图的坐标点,由于反映射回的源图的横坐标和纵坐标由整数部分和小数部分组成,因此反映射回的源图的坐标点的位置会处在4个像素中间,如图5所示,选择此4个像素值进行双线性插值得到目标像素值;或者刚好落在某个整数点上,此时以该坐标为左上角分别向下和向右选择2个点做双线性插值得到目标像素值。而所有的点的存储是按特定规律存到4个小buf中的,在每个块缓存中数据按“奇数行奇数列”“奇数行偶数列”“偶数行奇数列”“偶数行偶数列”的方式进行存储。在仿射逆变换器生成需要插值的源头坐标点时,需要根据该点的x,y坐标的奇偶情况,分别到对应的缓冲区去将插值需要的4个点取回来。具体操作如下:
当前块的宽度L为奇数时,如图4所示,针对x和y的奇偶情况分成以下四类:
(1)x为奇数,y为奇数
左上点:buf_11;buf_addr = (L/2)*(y/2)+(x/2)
右上点:buf_10;buf_addr = (L/2+1)*(y/2)+(x/2+1)
左下点:buf_01;buf_addr = (L/2)*(y/2+1)+(x/2)
右下点:buf_00;buf_addr = (L/2+1)*(y/2+1)+(x/2+1)
(2)x为偶数,y为奇数
左上点:buf_10;buf_addr = (L/2+1)*(y/2)+(x/2)
右上点:buf_11;buf_addr = (L/2)*(y/2)+(x/2)
左下点:buf_00;buf_addr = (L/2+1)*(y/2+1)+(x/2)
右下点:buf_01;buf_addr = (L/2)*(y/2+1)+(x/2)
(3)x为奇数,y为偶数
左上点:buf_01;buf_addr = (L/2)*(y/2)+(x/2)
右上点:buf_00;buf_addr = (L/2+1)*(y/2)+(x/2+1)
左下点:buf_11;buf_addr = (L/2)*(y/2)+(x/2)
右下点:buf_10;buf_addr = (L/2+1)*(y/2)+(x/2+1)
(4)x为偶数,y为偶数
左上点:buf_00;buf_addr = (L/2+1)*(y/2)+(x/2)
右上点:buf_01;buf_addr = (L/2)*(y/2)+(x/2)
左下点:buf_10;buf_addr = (L/2+1)*(y/2)+(x/2)
右下点:buf_11;buf_addr = (L/2)*(y/2)+(x/2)
当前块的宽度L为偶数时,如图5所示,针对x和y的奇偶情况分成以下四类:
(1)x为奇数,y为奇数
左上点:buf_11;buf_addr = (L/2)*(y/2)+(x/2)
右上点:buf_10;buf_addr = (L/2)*(y/2)+(x/2+1)
左下点:buf_01;buf_addr = (L/2)*(y/2+1)+(x/2)
右下点:buf_00;buf_addr = (L/2)*(y/2+1)+(x/2+1)
(2)x为偶数,y为奇数
左上点:buf_10;buf_addr = (L/2)*(y/2)+(x/2)
右上点:buf_11;buf_addr = (L/2)*(y/2)+(x/2)
左下点:buf_00;buf_addr = (L/2)*(y/2+1)+(x/2)
右下点:buf_01;buf_addr = (L/2)*(y/2+1)+(x/2)
(3)x为奇数,y为偶数
左上点:buf_01;buf_addr = (L/2)*(y/2)+(x/2)
右上点:buf_00;buf_addr = (L/2)*(y/2)+(x/2+1)
左下点:buf_11;buf_addr = (L/2)*(y/2)+(x/2)
右下点:buf_10;buf_addr = (L/2)*(y/2)+(x/2+1)
(4)x为偶数,y为偶数
左上点:buf_00;buf_addr = (L/2+1)*(y/2)+(x/2)
右上点:buf_01;buf_addr = (L/2)*(y/2)+(x/2)
左下点:buf_10;buf_addr = (L/2+1)*(y/2)+(x/2)
右下点:buf_11;buf_addr = (L/2)*(y/2)+(x/2)
按以上条件进行判断,可以得到每个插值源像素点再对应buf中存储的地址。最后,将源图滤波后的点和对应目标图坐标点送入图像叠加器中进行混叠,得到最终的旋转叠加后的效果图。
此外,本申请还提供了实现图形旋转的数据存储及访问装置,如图6所示,所述装置包括:
第一模块601,用于将原图形的顶点坐标通过仿射变换得到目标图坐标系中的坐标;
第二模块602,用于根据目标图坐标系中的坐标得到目标图的旋转中心;
第三模块603,用于根据输入的旋转角度得到顶点的旋转后的坐标,获得所述旋转后的坐标之间的整数坐标点,根据所述整数坐标点描绘图像边界;
第四模块604,用于将旋转后的图形每一行的所有点坐标反映射到原图形的坐标系,得到源头坐标点;
第五模块605,用于对原图形的坐标系的像素值进行双线性插值得到目标像素值;
第六模块606,用于根据所述源头坐标点的奇偶性分布得到每个插值源像素点对应的存储地址;
第七模块607,用于将滤波后的点和对应目标图坐标点输入图像叠加器中进行混叠,得到最终的旋转叠加后的效果图。
此外,本申请还提供了实现图形旋转的数据存储及访问装置,如图7所示,所述装置包括:
至少一个处理器701;
至少一个存储器702,所述存储器702用于存储至少一个程序;
当至少一个所述程序被至少一个所述处理器701执行时实现如前面实施例所述的实现图形旋转的数据存储及访问方法。
此外,本申请还提供了存储介质,所述存储介质存储有处理器可执行的程序,所述处理器可执行的程序被处理器执行时实现如前面实施例所述的实现图形旋转的数据存储及访问方法。
上述方法实施例中的内容均适用于本存储介质实施例中,本存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或方框有时能以相反顺序被执行。此外,在本申请的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本申请,但应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本申请是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本申请。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本申请的范围,本申请的范围由所附权利要求书及其等同方案的全部范围来决定。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
尽管已经示出和描述了本申请的实施方式,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (6)
1.实现图形旋转的数据存储及访问方法,其特征在于,所述方法包括:
将原图形的顶点坐标通过仿射变换得到目标图坐标系中的坐标;
根据目标图坐标系中的坐标得到目标图的旋转中心;
根据输入的旋转角度得到顶点的旋转后的坐标,目标图坐标系中的坐标若有4个顶点,分别为A、B、C、D,通过bresenham划线模块得到A与D、D与C之间的所有整数坐标点,根据A与D、D与C之间的所有整数坐标点描绘图像的左边界;
通过bresenham划线模块得到A与B、B与C之间的所有整数坐标点,根据A与B、B与C之间的所有整数坐标点描绘图像的右边界;
将图像边界输入左右边界信息缓存器,由仿射逆变换器对旋转后的图形按从上到下的顺序依次将每一行的所有点坐标反映射到原图形的坐标系,得到源头坐标点;
当反映射到的原图形的坐标点位置处在4个像素点中间时,选择此4个像素点的像素值对原图形的坐标系的像素值进行双线性插值得到目标像素值;
根据源头坐标点的奇偶性分布得到每个插值源像素点对应的存储地址,其中,所述奇偶性分布包括:所述源头坐标点的横坐标和纵坐标均为奇数、所述源头坐标点的横坐标和纵坐标均为偶数、所述源头坐标点的横坐标为偶数且纵坐标为奇数、所述源头坐标点的横坐标为奇数且纵坐标为偶数;
插值源像素点存储在4个块缓存中,在每个块缓存中,按奇数行奇数列、奇数行偶数列、偶数行奇数列、偶数行偶数列的方式对所述插值源像素点进行存储;
根据源头坐标点的横坐标和纵坐标的奇偶情况,分别到对应的块缓存将插值需要的4个像素点取回来;
将滤波后的点和对应目标图坐标点输入图像叠加器中进行混叠,得到最终的旋转叠加后的效果图。
2.根据权利要求1所述的实现图形旋转的数据存储及访问方法,其特征在于,所述根据输入的旋转角度得到顶点的旋转后的坐标,包括:
接收输入的旋转角度;
根据输入的旋转角度,通过仿射变换器得到顶点的旋转后的坐标。
3.根据权利要求2所述的实现图形旋转的数据存储及访问方法,其特征在于,点坐标反映射到原图形的坐标系的计算公式包括:
x0=x1cosa+y1sina-ccosa-dsina+m
y0=x1sina+y1cosa-csina-dcosa+n
其中,x0为点坐标反映射到原图形的横坐标,y0为点坐标反映射到原图形的纵坐标,x1为通过仿射变换得到目标图坐标系中的横坐标,y1为通过仿射变换得到目标图坐标系中的纵坐标,c为目标图的旋转中心的横坐标,d为目标图的旋转中心的纵坐标,m为原图形的旋转中心的横坐标,n为原图形的旋转中心的纵坐标。
4.实现图形旋转的数据存储及访问装置,其特征在于,所述装置包括:
第一模块,用于将原图形的顶点坐标通过仿射变换得到目标图坐标系中的坐标;
第二模块,用于根据目标图坐标系中的坐标得到目标图的旋转中心;
第三模块,用于根据输入的旋转角度得到顶点的旋转后的坐标,目标图坐标系中的坐标若有4个顶点,分别为A、B、C、D,通过bresenham划线模块得到A与D、D与C之间的所有整数坐标点,根据A与D、D与C之间的所有整数坐标点描绘图像的左边界;通过bresenham划线模块得到A与B、B与C之间的所有整数坐标点,根据A与B、B与C之间的所有整数坐标点描绘图像的右边界;
第四模块,用于将图像边界输入左右边界信息缓存器,由仿射逆变换器对旋转后的图形按从上到下的顺序依次将每一行的所有点坐标反映射到原图形的坐标系,得到源头坐标点;
第五模块,用于当反映射到的原图形的坐标点位置处在4个像素点中间时,选择此4个像素点的像素值对原图形的坐标系的像素值进行双线性插值得到目标像素值;根据源头坐标点的横坐标和纵坐标的奇偶情况,分别到对应的块缓存将插值需要的4个像素点取回来;
第六模块,用于根据所述源头坐标点的奇偶性分布得到每个插值源像素点对应的存储地址;其中,所述奇偶性分布包括:所述源头坐标点的横坐标和纵坐标均为奇数、所述源头坐标点的横坐标和纵坐标均为偶数、所述源头坐标点的横坐标为偶数且纵坐标为奇数、所述源头坐标点的横坐标为奇数且纵坐标为偶数;插值源像素点存储在4个块缓存中,在每个块缓存中,按奇数行奇数列、奇数行偶数列、偶数行奇数列、偶数行偶数列的方式对所述插值源像素点进行存储;
第七模块,用于将滤波后的点和对应目标图坐标点输入图像叠加器中进行混叠,得到最终的旋转叠加后的效果图。
5.实现图形旋转的数据存储及访问装置,其特征在于,所述装置包括:
至少一个处理器;
至少一个存储器,所述存储器用于存储至少一个程序;
当至少一个所述程序被至少一个所述处理器执行时实现如权利要求1-3中任一项所述的实现图形旋转的数据存储及访问方法。
6.存储介质,其特征在于,所述存储介质存储有处理器可执行的程序,所述处理器可执行的程序被处理器执行时实现如权利要求1-3中任一项所述的实现图形旋转的数据存储及访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210924450.4A CN115018713B (zh) | 2022-08-03 | 2022-08-03 | 实现图形旋转的数据存储及访问方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210924450.4A CN115018713B (zh) | 2022-08-03 | 2022-08-03 | 实现图形旋转的数据存储及访问方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115018713A CN115018713A (zh) | 2022-09-06 |
CN115018713B true CN115018713B (zh) | 2023-11-14 |
Family
ID=83065814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210924450.4A Active CN115018713B (zh) | 2022-08-03 | 2022-08-03 | 实现图形旋转的数据存储及访问方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115018713B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109886866A (zh) * | 2019-01-15 | 2019-06-14 | 珠海亿智电子科技有限公司 | 一种自适应仿射变换处理方法及装置 |
CN111626938A (zh) * | 2020-06-04 | 2020-09-04 | Oppo广东移动通信有限公司 | 图像插值方法、图像插值装置、终端设备及存储介质 |
CN113284053A (zh) * | 2021-04-19 | 2021-08-20 | 广州匠芯创科技有限公司 | 2d图形任意角度旋转的实现方法及介质 |
CN113298695A (zh) * | 2021-06-25 | 2021-08-24 | 北京爱芯科技有限公司 | 一种图像处理组件和芯片、图像处理方法和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE470204T1 (de) * | 2007-09-05 | 2010-06-15 | Vidiom Sa | Verfahren zum drehen von bildern |
-
2022
- 2022-08-03 CN CN202210924450.4A patent/CN115018713B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109886866A (zh) * | 2019-01-15 | 2019-06-14 | 珠海亿智电子科技有限公司 | 一种自适应仿射变换处理方法及装置 |
CN111626938A (zh) * | 2020-06-04 | 2020-09-04 | Oppo广东移动通信有限公司 | 图像插值方法、图像插值装置、终端设备及存储介质 |
CN113284053A (zh) * | 2021-04-19 | 2021-08-20 | 广州匠芯创科技有限公司 | 2d图形任意角度旋转的实现方法及介质 |
CN113298695A (zh) * | 2021-06-25 | 2021-08-24 | 北京爱芯科技有限公司 | 一种图像处理组件和芯片、图像处理方法和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115018713A (zh) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5091220B2 (ja) | テクスチャ情報をコード化するための方法および装置 | |
CN102460503B (zh) | 显示源图像的变形版本的设备和方法 | |
US20070008333A1 (en) | Texture filter using parallel processing to improve multiple mode filter performance in a computer graphics environment | |
CN107533752B (zh) | 用于图形处理的基于表面格式的自适应存储器地址扫描 | |
US20100265254A1 (en) | Graphics filled shape drawing | |
US8130234B2 (en) | Computer graphics rendering apparatus and method | |
CN108492243B (zh) | 一种基于块处理的图像旋转装置、系统和方法 | |
JP4154336B2 (ja) | ラスター画像のフレームを描画する方法及び装置 | |
KR20090000499A (ko) | 3차원 그래픽스 데이터 렌더링 방법 및 장치 | |
JP2002042159A (ja) | コンピュータ・グラフィック・システムにおけるアンチエイリアシング方法 | |
US8463074B2 (en) | System and method for rotating images | |
US6762765B2 (en) | Bandwidth reduction for zone rendering via split vertex buffers | |
CN109587500B (zh) | 一种基于fpga的动态可重配置视频缩放器 | |
TWI395152B (zh) | 繪圖處理單元及處理邊框顏色資訊之方法 | |
CN115018713B (zh) | 实现图形旋转的数据存储及访问方法、装置和存储介质 | |
US20080211823A1 (en) | Three-dimensional graphic accelerator and method of reading texture data | |
WO2023196120A1 (en) | Variable rate tessellation | |
CN108629734B (zh) | 图像几何变换方法、装置及终端 | |
US11257277B2 (en) | Methods and apparatus to facilitate adaptive texture filtering | |
Fahmy | Generalised parallel bilinear interpolation architecture for vision systems | |
CN113284053A (zh) | 2d图形任意角度旋转的实现方法及介质 | |
JP2005346605A (ja) | アンチエイリアス描画方法およびこれを用いた描画装置 | |
CN102129667A (zh) | 一种图像缩放方法 | |
JP5310079B2 (ja) | 画像描画装置 | |
KR101032835B1 (ko) | 백터 그래픽스 기술에 있어서 스캔라인 기반의 랜더링 방법 및 그에 따른 장치 |
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 |