CN115187448A - 一种基于芯片的图像仿射变换方法及芯片 - Google Patents

一种基于芯片的图像仿射变换方法及芯片 Download PDF

Info

Publication number
CN115187448A
CN115187448A CN202210684991.4A CN202210684991A CN115187448A CN 115187448 A CN115187448 A CN 115187448A CN 202210684991 A CN202210684991 A CN 202210684991A CN 115187448 A CN115187448 A CN 115187448A
Authority
CN
China
Prior art keywords
image
input
data
output image
partial
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.)
Pending
Application number
CN202210684991.4A
Other languages
English (en)
Inventor
肖晗
袁峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orbbec Inc
Original Assignee
Orbbec Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Orbbec Inc filed Critical Orbbec Inc
Priority to CN202210684991.4A priority Critical patent/CN115187448A/zh
Priority to PCT/CN2022/122362 priority patent/WO2023240841A1/zh
Publication of CN115187448A publication Critical patent/CN115187448A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/02Affine transformations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

本申请适用于图像处理及芯片技术领域,提供一种基于芯片的图像仿射变换方法及芯片,方法包括:触发多组输入缓存中的当前组输入缓存及中间缓存从片外存储器中读取输入图像的当前部分图像数据和计算所需的参数数据,并分别写入所述当前组输入缓存及中间缓存;在读取所述输入图像当前部分数据的同时,致动计算单元利用参数数据对多组输入缓存中的历史组输入缓存获取的所述输入图像历史部分图像数据进行仿射变换及插值计算,得到目标输出图像的历史部分处理结果;将历史部分处理结果写入输出缓存并同时对当前部分数据执行仿射变换及插值计算,以得到目标输出图像的完整处理结果。本申请实施例不仅控制成本且提升计算速度。

Description

一种基于芯片的图像仿射变换方法及芯片
技术领域
本申请属于图像处理及芯片技术领域,尤其涉及一种基于芯片的图像仿射变换方法及芯片。
背景技术
在图像识别中,为提高图像识别的准确率,经常需要对图像进行视角变换。例如,摄像头从不同的距离及不同的角度拍摄得到墙上一幅画的图像是不同的,如果将这些从不同距离及不同角度拍摄的图像通过变换矩阵统一投影成摄像头在画的正前方固定距离处拍摄的图像,可有利于提高图像识别的准确率。这种变换称为射影变换。然而在实际应用中,由于平行的直线在射影变换下可能变成不平行的,一般采用仿射变换来近似代替射影变换,如人脸识别的预处理。
现有技术中,常采用中央处理器(Central Processing Unit,CPU)和双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous Dynamic Random AccessMemory,DDR SDRAM)的计算机系统实现仿射变换,但在该系统中直接通过变换矩阵进行仿射变换会出现速度慢及耗时长的问题,因为DDR是一种动态存储器,在DDR中对随机地址进行读写访问花费的时间要远远长于对连读地址进行访问。
发明内容
有鉴于此,本申请实施例提供了一种基于芯片的图像仿射变换方法及芯片,能够解决相关技术中的一个或多个技术问题。
第一方面,本申请一实施例提供了一种基于芯片的图像仿射变换方法,所述数字芯片包括多组输入缓存、中间缓存、计算单元及输出缓存,其中,所述图像仿射变换方法包括:触发多组输入缓存中的当前组输入缓存及中间缓存从片外存储器中读取输入图像的当前部分图像数据和计算所需的参数数据,并分别写入所述当前组输入缓存及所述中间缓存;其中,参数数据包括所需视角的目标输出图像及对应的分辨率;在读取输入图像当前部分数据的同时,致动计算单元利用所述参数数据对多组输入缓存中的历史组输入缓存获取的输入图像历史部分图像数据进行仿射变换及插值计算,得到目标输出图像的历史部分处理结果;将历史部分处理结果写入输出缓存并同时对当前部分数据执行仿射变换及插值计算,以得到目标输出图像的完整处理结果。
第二方面,本申请一实施例提供一种芯片,包括:多组输入缓存,用于轮循从片外存储器读取输入图像的部分图像数据;中间缓存,用于根据多组输入缓存读取数据的时序从片外存储器读取所述输入图像的部分参数数据;其中,参数数据包括输入图像数据在所述片外存储器的起始地址、目标输出图像的分辨率、输出图像的指定存储地址;计算模块,用于在多组输入缓存中的当前组输入缓存从片外存储器中获取输入图像的当前部分数据的同时,利用参数数据对多组输入缓存中的历史组输入缓存从所述片外存储器中获取的输入图像的历史部分数据进行插值计算,得到输出图像的部分处理结果;输出缓存,用于存储所述部分处理结果。
第三方面,本申请一实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面实施例所述的方法。
第四方面,本申请一实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备实现如第一方面实施例所述的方法。
本申请实施例通过芯片内部的几块输入缓存对存储在片外存储器中的输入图像的局部图像数据(或称部分图像数据)进行缓存,并通过插值计算方法计算仿射变换后的像素值使得插值计算过程与图像缓存过程可并行进行,不仅控制了成本,还极大地提高图像仿射变换的计算速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的一种芯片的架构示意图;
图2是本申请一实施例提供的一种基于芯片的图像仿射变换方法的实现流程示意图;
图3是本申请一实施例提供的一种输入图像和所需视场的目标输出图像在仿射变换下的映射关系示意图;
图4是本申请一实施例提供的一种基于芯片的图像仿射变换方法中步骤S120的实现流程示意图;
图5是本申请一实施例提供的一种顶点和主边位置示意图;
图6是本申请一实施例提供一种目标输出图像在输入图像中的映射图像示意图;
图7是本申请一实施例提供的一种芯片的架构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在本申请说明书中描述的“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
此外,在本申请的描述中,“多个”的含义是两个或两个以上。术语“第一”和“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
还应当理解,除非另有明确的规定或限定,术语“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是直接相连,也可以是通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
目前,图像仿射变换常应用于CPU和DDR的计算机系统中,其直接通过变换矩阵实现仿射变换,但该方法速度慢及耗时长。
有鉴于此,本申请实施例提供一种基于芯片的图像仿射变换方法及芯片,仅通过几块小容量SRAM对存储在DDR中的局部图像数据(或部分图像数据)进行缓存;并在利用插值计算方法计算仿射变换后的像素值时,使插值计算过程与图像缓存过程并行进行,不仅控制了成本,还极大地提高图像仿射变换的计算速度。
为了更好地说明本申请的技术方案,下述实施例将结合一些具体参数对本申请的技术方案进行详细的阐述和说明。应理解,这些参数只是为了便于说明而优选的一些参数,并不能解释为对本申请的具体限定。
图1为根据本申请一实施例提供的一种芯片的架构示意图,为了更好地说明本实施例的芯片,在图1中示出了与芯片23耦接的片外存储器23A。更具体地,芯片23包括多组输入缓存231、计算模块232、输出缓存233及中间缓存234,其中:
多组输入缓存231,用于轮循从片外存储器23A获取输入图像的部分数据,直至输入图像的全部数据获取完毕则停止获取。
中间缓存234,用于缓存计算模块232计算时所需的参数;其中,参数包括所需视场的目标输出图像及对应的分辨率。
计算模块232用于在多组输入缓存231中的当前组输入缓存从片外存储器23A中获取输入图像的当前部分数据的同时,利用中间缓存234缓存的参数对多组输入缓存中的历史组输入缓存从片外存储器23A中获取到的输入图像的历史部分数据进行插值计算,得到输出图像的部分处理结果。
输出缓存233,用于存储部分处理结果,并待输出图像的完整处理结果写入输出缓存后,将输出图像的完整处理结果写入片外存储器23A指定的对应地址中。
在一个实施例中,输入图像数据存储在片外存储器23A中。优选地,片外存储器23A可为DDR存储器。在其他一些实施例中,DDR存储器还可以采用诸如同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM)、动态随机存储器(DynamicRandom Access Memory,DRAM),或伪静态随机存储器(Pseudo static random accessmemory,PSRAM)等替代,此处不作限制。
图2为根据本申请一实施例提供的一种基于数字芯片的图像仿射变换方法的实现流程示意图,图像仿射变换方法可以包括步骤S110至S130。
S110,触发多组输入缓存中的当前组输入缓存从片外存储器中获取输入图像的当前部分数据,并写入当前组输入缓存中及中间缓存。
在一个实施例中,获取输入图像的数据包括图像数据和参数数据,其中,图像数据写入输入缓存中,参数数据写入中间缓存中;优选地,图像数据包括输入图像的像素值及像素坐标等,参数数据包括所需视角的目标输出图像及对应的分辨率、输入图像对应的输出图像在片外存储器中的指定地址等。
进一步地,多组输入缓存轮流切换为当前组输入缓存并从片外存储器中获取输入图像的部分数据,直至输入图像的全部数据获取完毕则停止获取;优选地,多组输入缓存至少包括两组输入缓存,两组输入缓存乒乓操作从片外存储器中获取输入图像的部分数据,即当前组输入缓存是当前执行缓存操作的输入缓存,而下述提及的历史组输入缓存则是已执行缓存操作的输入缓存,即其读取输入图像数据的时刻位于当前组输入缓存之前。
S120,在当前组输入缓存从片外存储器中获取输入图像的当前部分数据的同时,利用中间缓存中的数据对多组输入缓存中的历史组输入缓存从片外存储器中获取到的输入图像的历史部分数据进行仿射变换及插值计算,得到所需视角的目标输出图像的部分处理结果。
更具体地,当多组输入缓存轮流切换为当前组输入缓存并从片外存储器中获取输入图像的部分数据时,对历史组输入缓存从片外存储器中获取到的输入图像的部分数据进行仿射变换及插值计算,得到所需视角的目标输出图像的部分处理结果,直至得到目标输出图像的全部或完整处理结果。此时,由于插值计算过程与图像缓存过程并行进行,极大地提高了图像仿射变换的计算速度。
图3为输入图像和所需视场的目标输出图像在仿射变换下的映射关系示意图。如图3所示,若目标输出图像为矩形图像,由于平行线在仿射变换下仍保持平行,则该目标输出图像映射在输入图像上是一个形状为平行四边形的映射图像。在一些实施例中,基于仿射变换原理计算出目标输出图像的四个顶点在输入图像的坐标,从而根据顶点坐标获取目标输出图像在输入图像中的映射图像;在其他一些实施例中,还可根据目标输出图像的分辨率并通过仿射变换原理计算出目标输出图像的四个顶点在输入图像的亚像素精度坐标,后再通过插值计算便可得到输出图像的所有像素。需要说明的是,本申请可优选使用亚像素精度坐标,以得到高分辨率的输出图像。
有鉴于此,在一个实施例中,步骤S120更具体地如图4所示,可以包括步骤S121至S123。
S121,基于所需视角的目标输出图像及仿射变换原理,获取目标输出图像在输入图像中的映射图像。
在一个实施例中,仿射变换是射影变换的特例,其公式为:
Figure BDA0003694835950000071
其中,(x0,y0)和(x1,y1)代表同一个点在两个不同视角下拍摄的图像中的坐标,A11至A23是变换矩阵的参数,即表征输入图像和目标输出图像的变换,且基于该公式可将目标输出图像变换至与输入图像同一坐标系下,得到目标输出图像在输入图像中的映射图像。
S122,定义映射图像中任一顶点所在的一边为主边,另一边为副边,根据目标输出图像的分辨率计算映射图像主边及副边的点数及各点坐标。
在一个实施例中,假设第一顶点为映射图像的任一顶点,如图5所示,第一顶点为映射图像的主顶点,主边为映射图像上主顶点左边,而主顶点右边为副边。需要说明的是,主顶点可优选为位于映射图像中最高处的点,以便于后续计算。
进一步地,在一个实施例中,根据目标输出图像的分辨率以及映射图像的顶点在输入图像中的亚像素精度坐标,从主顶点开始沿映射图像的主边和副边向映射图像的另外两个顶点前进分别计算主边和副边的各点数及坐标,并利用主边和副边的点数及坐标确定插值计算时的前进步长,其中每一步长所到达的位置都对应输出图像的一个像素。因此,沿着映射图像的主边和副边前进各有一个步长,主边上的步长称为主边步长,副边上的步长称为副边步长,每个步长带有方向性,如图5箭头排布路径所示的向左下方前进或者向右下方前进。
S123,根据主边及副边上各点的坐标对历史部分数据进行插值计算,生成目标输出图像的部分处理结果。
在一些实施例中,步骤S123可以包括根据主边上间隔主边步长的各点坐标,以主边上各点为起始点,沿着平行于映射图像的副边方向且以副边步长前进,对到达的且属于历史部分数据的各点进行插值计算得到各点的像素值,生成目标输出图像的部分处理结果;对到达且不属于历史部分数据的各点,将这些点的相关信息写入中间缓存,待当前组输入缓存获取到的当前部分数据中包括这些点时,可直接从中间缓存中读取数据对这些点进行插值计算生成各点的像素值,得到输出图像的部分处理结果。
更具体地,如图6所示,平行四边形ABDC为目标输出图像在输入图像中的映射图像,点C为映射图像的主顶点,CA为映射图像的主边,CD为映射图像的副边。根据目标输出图像的分辨率计算映射图像主边CA和副边CD的点数和坐标得到主边步长和副边步长,后从主边的每个点起始沿副边方向以副边步长前进(如图6的箭头路径所示)插值计算各点的像素值。当多组输入缓存执行乒乓操作轮流读取输入图像的部分数据时,假设输入图像最上方被映射图像覆盖的历史部分数据存储到历史组输入缓存,输入图像中间被映射图像覆盖的当前部分数据存储到当前组输入缓存。
当当前组输入缓存读取输入图像中间被映射图像覆盖的部分时,计算单元对历史组输入缓存读取的映射图像数据以点C为主顶点,以主边CA上间隔主边步长的各点为起始点,沿副边CD方向(即图6所示的箭头方向)以副边步长前进,对到达的且属于历史部分数据的各点(如图6所示箭头的实线)进行插值计算得到各点的像素值,生成输出图像的部分处理结果;对到达的且不属于历史部分数据的各点(如图6所示箭头的虚线),将这些点的相关信息写入中间缓存,待当前组输入缓存获取到的当前部分数据中包括这些点时,可直接从中间缓存中读取数据对这些点进行插值计算生成各点的像素值,得到输出图像的部分处理结果。
在另一个实施例中,由于所需视场的目标输出图像的分辨率受输出缓存的限制,所以会存在实际所需的目标输出图像的分辨率大于输出缓存所预设的标准输出图像分辨率的情况。因此,在执行步骤S121之前还包括步骤S1201:判断目标输出图像的分辨率与输出缓存中的标准输出图像分辨率的大小关系,并根据判断结果自适应选择是否利用标准输出图像替换目标输出图像进行后续计算。优选地,可分为三种情形:
(1)第一种情形:若目标输出图像的分辨率等于输出缓存中的标准输出图像分辨率,则直接执行前述步骤S121、步骤S122和步骤S123;
(2)第二种情形:若目标输出图像的分辨率小于输出缓存中的标准输出图像的分辨率,则仍按标准输出图像的分辨率计算,同时在输出缓存存储的标准输出图像中指定目标输出图像所在区域,并利用标准输出图像代替前述的目标输出图像继续执行前述步骤S121、步骤S122和步骤S123。
在一个实施例中,指定标准输出图像的左上角部分为目标输出图像,待芯片计算出最终的处理结果后,即得到标准输出图像的全部或完整处理结果,可根据指定区域从输出缓存内存储的完整处理结果中只读取左上角部分,从而将目标输出图像写入诸如DDR等片外存储器指定的对应地址中。
(3)第三种情形:若目标输出图像的分辨率大于输出缓存中的标准输出图像的分辨率,步骤S120可以包括:步骤S221和步骤S222。
S221,确定目标输出图像的分辨率大于标准输出图像分辨率,将目标输出图像分割成若干个输出图像块;其中,每个输出图像块的分辨率小于或等于标准输出图像分辨率。
在一个实施例中,步骤S222可以包括以下两种子情形中的一种或多种。
(1)第一种子情形:若输出图像块的分辨率等于标准输出图像分辨率,利用该输出图像块替换前述的步骤S121、步骤S122和S123中的目标输出图像继续执行前述步骤,此处不再赘述。
(2)第二种子情形:若输出图像块的分辨率小于标准输出图像的分辨率,则仍按标准输出图像分辨率计算,同时在输出缓存输出的标准输出图像中指定输出图像块所在区域,并利用标准输出图像代替前述目标输出图像继续执行前述步骤S121、步骤S122和步骤S123。需要说明的是,第二种子情形可以与前述的第二种情形类比。
S130,将历史部分处理结果写入输出缓存并同时执行当前部分数据的仿射变换及插值计算,以得到目标输出图像的完整处理结果。
待目标输出图像的完整处理结果已全部写入输出缓存,则从输出缓存中读取输出图像的完整处理结果并写入片外存储器指定的地址中。
如上所述,本申请实施例提供一种基于数字芯片的图像仿射变换方法,能够通过几块专用的小容量SRAM对存储在DDR中的局部图像内容进行缓存,并通过插值的方法计算出仿射变换后的像素值,插值计算过程与图像缓存过程并行进行,从而极大地提高图像仿射变换的计算速度。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图7为根据本申请图1的基础上提供的又一芯片的架构示意图,该芯片实施例中未详细描述之处请参见前述内容。
在一些实施例中,多组输入缓存231至少包括第一组输入缓存和第二组输入缓存,芯片还包括调度模块235,用于调度多组输入缓存231中的第一组输入缓存和第二组输入缓存轮流切换为当前组输入缓存以读取输入图像的图像数据及调度中间缓存读取输入图像的参数数据,即当当前组输入缓存及中间缓存读取输入图像的当前部分数据时,历史组输入缓存及中间缓存已完成读取输入图像的历史部分数据的步骤并准备将数据传输至计算模块232;计算模块232,用于利用中间缓存中的参数数据对多组输入缓存231中的历史组输入缓存从片外存储器23A中获取到的输入图像的历史部分数据进行插值计算,得到输出图像的部分处理结果。其中,调度模块235和计算模块232并行操作。
在一些实施例中,继续参见图6所示,调度模块235包括发送读数据请求子模块2351和接收数据子模块2352。
在一个实施例中,发送读数据请求子模块2351,用于确定输入图像中未被读入的剩余数据量,若剩余数据量为0,则待当前组输入缓存读入完成后,将多组输入缓存231均标识为不可用;若剩余数据量不为0,则确定当前组输入缓存的可用空间,若可用空间能够容纳预设长度数据量,则发送读数据请求;若所述可用空间无法容纳预设长度数据量,则切换当前组输入缓存。
接收数据子模块2352,用于接收片外存储器响应于读数据请求发送的输入图像的当前部分数据,并将当前部分数据的图像数据及参数数据分别写入当前组输入缓存及中间缓存234。
在一些实施例中,计算模块232包括获取主边子模块2321和插值并写入子模块2322,获取主边子模块2321和插值并写入子模块2322串联执行。
其中,获取主边子模块2321,用于根据目标输出图像及仿射变换原理,获取目标输出图像在输入图像中的映射图像;并定义映射图像中任一顶点所在的一边为主边,另一边为副边,利用目标输出图像的分辨率计算映射图像主边及副边的点数及各点坐标,将映射图像主边及副边的点数及各点坐标写入中间缓存234。
插值并写入子模块2322,用于从中间缓存234读取映射图像主边及副边的点数及各点坐标对历史部分数据进行插值计算,生成输出图像的部分处理结果,将部分处理结果写入输出缓存233。
本申请一实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例中的各个步骤。
本申请一实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备可实现前述方法实施例中的各个步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-only memory,ROM)、RAM、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (11)

1.一种基于芯片的图像仿射变换方法,其特征在于,所述芯片包括多组输入缓存、中间缓存、计算单元及输出缓存,其中,所述图像仿射变换方法包括:
触发所述多组输入缓存中的当前组输入缓存及中间缓存从片外存储器中读取输入图像的当前部分图像数据和计算所需的参数数据,并分别写入所述当前组输入缓存及所述中间缓存;所述参数数据包括所需视角的目标输出图像及对应的分辨率;
在读取所述输入图像当前部分图像数据的同时,致动所述计算单元利用所述参数数据对所述多组输入缓存中的历史组输入缓存获取的所述输入图像的历史部分图像数据进行仿射变换及插值计算,得到所述目标输出图像的历史部分处理结果;其中,所述历史组输入缓存读取数据的时刻位于所述当前组输入缓存之前;
将所述历史部分处理结果写入输出缓存并同时对当前部分数据执行仿射变换及插值计算,以得到所述目标输出图像的完整处理结果。
2.如权利要求1所述的方法,其特征在于,所述致动计算单元利用所述参数数据对所述多组输入缓存中的历史组输入缓存获取的所述输入图像历史部分图像数据进行仿射变换及插值计算,得到所述目标输出图像的历史部分处理结果;包括:
基于所述所需视角的目标输出图像及仿射变换原理,获取所述目标输出图像在所述输入图像中的映射图像;
定义所述映射图像中任一顶点所在边分别为主边和副边,并根据所述目标输出图像的分辨率计算所述映射图像主边及副边的点数及各点坐标;
基于所述主边及副边上各点的坐标对所述历史部分图像数据进行插值计算,得到所述目标输出图像的历史部分处理结果。
3.如权利要求2所述的方法,其特征在于,所述基于所述所需视角的目标输出图像及仿射变换原理,获取所述目标输出图像在所述输入图像中的映射图像,包括:
基于仿射变换原理计算所述目标输出图像的四个顶点映射在所述输入图像的坐标,从而根据顶点坐标获取所述目标输出图像在所述输入图像中的映射图像。
4.如权利要求1-3任一项所述的方法,其特征在于,所述致动计算单元利用所述参数数据对所述多组输入缓存中的历史组输入缓存获取的所述输入图像历史部分图像数据进行仿射变换及插值计算,得到所述目标输出图像的历史部分处理结果之前,包括:
判断所述目标输出图像的分辨率与所述输出缓存中的标准输出图像分辨率的大小关系,并根据判断结果自适应选择是否将所述目标输出图像替换为标准输出图像再进行后续计算。
5.如权利要求2或3所述的方法,其特征在于,得到所述映射图像主边及副边的点数及各点坐标后,还包括:
利用主边和副边的点数及坐标确定所述插值计算时的前进步长,其中每一步长所到达的位置都对应所述目标输出图像的一个像素;其中,所述主边上的步长为主边步长,所述副边上的步长为副边步长。
6.如权利要求5所述的方法,其特征在于,所述基于所述主边及副边上各点的坐标对所述历史部分图像数据进行插值计算得到所述目标输出图像的历史部分处理结果,包括:
根据所述主边上间隔所述主边步长的各点坐标,以所述主边上各点为起始点,沿着平行于所述映射图像的所述副边方向且以所述副边步长前进,对到达且属于所述历史部分数据的各点进行所述插值计算得到各点的像素值,生成所述目标输出图像的部分处理结果;
对到达但不属于所述历史部分数据的各点,将所述各点的相关信息写入所述中间缓存,待所述当前组输入缓存获取到的当前部分数据中包括所述各点时,可从所述中间缓存中读取所述各点进行插值计算生成各点的像素值,得到所述目标输出图像的当前部分处理结果。
7.一种芯片,其特征在于,包括:
多组输入缓存,用于轮循从片外存储器读取输入图像的部分图像数据;
中间缓存,用于根据所述多组输入缓存读取数据的时序从所述片外存储器读取所述输入图像的部分参数数据;其中,所述参数数据包括所需视场的目标输出图像及对应的分辨率;
计算模块,用于在所述多组输入缓存中的当前组输入缓存从所述片外存储器中获取所述输入图像的当前部分数据的同时,利用所述参数数据对所述多组输入缓存中的历史组输入缓存从所述片外存储器中获取的所述输入图像的历史部分数据进行插值计算,得到所述输出图像的部分处理结果;其中,所述历史组输入缓存读取数据的时刻位于所述当前组输入缓存之前;
输出缓存,用于存储所述输出图像的部分处理结果。
8.如权利要求7所述的芯片,其特征在于,还包括调度模块,用于调度多组输入缓存中的各组输入缓存轮流切换为当前组输入缓存以读取输入图像的图像数据及调度所述中间缓存读取输入图像的参数数据;其中,所述调度模块和所述计算模块并行操作。
9.如权利要求8所述的芯片,其特征在于,所述调度模块包括发送读数据请求子模块和接收数据子模块,
所述发送读数据请求子模块,用于确定所述输入图像中未被读入的剩余数据量,若剩余数据量为0,则待当前组输入缓存读入完成后,将所述多组输入缓存均标识为不可用;若剩余数据量不为0,则确定当前组输入缓存的可用空间,若所述可用空间能够容纳预设长度数据量,则发送读数据请求;若所述可用空间无法容纳预设长度数据量,则切换当前组输入缓存;
所述接收数据子模块,用于接收所述片外存储器响应于所述读数据请求发送的输入图像的当前部分数据,并将所述当前部分数据写入所述当前组输入缓存。
10.如权利要求7至9任一项所述的芯片,其特征在于,所述计算模块包括获取主边子模块和插值并写入子模块,所述获取主边子模块和所述插值并写入子模块串联操作;
所述获取主边子模块,用于根据目标输出图像及仿射变换原理,获取目标输出图像在输入图像中的映射图像;并定义所述映射图像中任一顶点所在的一边为主边,另一边为副边,利用目标输出图像的分辨率计算所述映射图像主边及副边的点数及各点坐标,将所述映射图像主边及副边的点数及各点坐标写入所述中间缓存;
所述插值并写入子模块,用于从所述中间缓存读取映射图像主边及副边的点数及各点坐标对历史部分数据进行插值计算,生成所述输出图像的部分处理结果,将所述部分处理结果写入所述输出缓存。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的图仿射变换方法。
CN202210684991.4A 2022-06-15 2022-06-15 一种基于芯片的图像仿射变换方法及芯片 Pending CN115187448A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210684991.4A CN115187448A (zh) 2022-06-15 2022-06-15 一种基于芯片的图像仿射变换方法及芯片
PCT/CN2022/122362 WO2023240841A1 (zh) 2022-06-15 2022-09-29 一种基于芯片的图像仿射变换方法及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210684991.4A CN115187448A (zh) 2022-06-15 2022-06-15 一种基于芯片的图像仿射变换方法及芯片

Publications (1)

Publication Number Publication Date
CN115187448A true CN115187448A (zh) 2022-10-14

Family

ID=83513384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210684991.4A Pending CN115187448A (zh) 2022-06-15 2022-06-15 一种基于芯片的图像仿射变换方法及芯片

Country Status (2)

Country Link
CN (1) CN115187448A (zh)
WO (1) WO2023240841A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7809186B2 (en) * 2004-04-27 2010-10-05 Canon Kabushiki Kaisha Image processing apparatus, image processing method, program thereof, and recording medium
CN108564551B (zh) * 2018-04-25 2021-01-15 珠海全志科技股份有限公司 鱼眼图像处理方法及鱼眼图像处理装置
CN110503602B (zh) * 2018-05-18 2023-07-04 杭州海康微影传感科技有限公司 一种图像的投影变换方法、装置及电子设备
CN109886866B (zh) * 2019-01-15 2023-06-13 珠海亿智电子科技有限公司 一种自适应仿射变换处理方法及装置
CN110648356A (zh) * 2019-08-07 2020-01-03 浙江省北大信息技术高等研究院 一种基于视觉数字信号处理的多目标跟踪处理优化方法

Also Published As

Publication number Publication date
WO2023240841A1 (zh) 2023-12-21

Similar Documents

Publication Publication Date Title
US9280810B2 (en) Method and system for correcting a distorted input image
JP2637931B2 (ja) テクスチャ・マッピングを行うコンピュータ・システム
US5586234A (en) Parallel processing three-dimensional drawing apparatus for simultaneously mapping a plurality of texture patterns
US6985150B2 (en) Accelerator control unit configured to manage multiple hardware contexts
US7990391B2 (en) Memory system having multiple address allocation formats and method for use thereof
US20080074430A1 (en) Graphics processing unit with unified vertex cache and shader register file
WO2022127242A1 (zh) 游戏图像处理方法、装置、程序和可读介质
US11657119B2 (en) Hardware accelerated convolution
CN110958362A (zh) 基于分块查表的图像校正系统及其方法
EP1721298A2 (en) Embedded system with 3d graphics core and local pixel buffer
US6831658B2 (en) Anti-aliasing interlaced video formats for large kernel convolution
CN112017107A (zh) 基于zynq平台的高并行度、低延时的图像缩放及其裁剪的处理方法
CN113643414A (zh) 一种三维图像生成方法、装置、电子设备及存储介质
CN110706332B (zh) 一种基于噪声点云的场景重建方法
CN108280801B (zh) 基于双线性插值的重映射方法、装置和可编程逻辑器件
US7360020B2 (en) Method for improving cache-miss performance
CN115187448A (zh) 一种基于芯片的图像仿射变换方法及芯片
JP3629243B2 (ja) モデリング時の距離成分を用いてレンダリング陰影処理を行う画像処理装置とその方法
CN115601223B (zh) 一种图像预处理装置、方法和芯片
US6816162B2 (en) Data management to enable video rate anti-aliasing convolution
EP1195719A2 (en) Rendering memory in a volume rendering system
JPH08305625A (ja) 演算処理機能付き半導体メモリ及びそれを用いた処理装置
JPH0772915B2 (ja) 図形シェーディング装置
US6985153B2 (en) Sample request mechanism for supplying a filtering engine
CN111191780A (zh) 均值池化累加电路、装置以及方法

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