CN114820313A - 基于数据流架构的图像缩放装置、方法、设备及存储介质 - Google Patents

基于数据流架构的图像缩放装置、方法、设备及存储介质 Download PDF

Info

Publication number
CN114820313A
CN114820313A CN202210446502.1A CN202210446502A CN114820313A CN 114820313 A CN114820313 A CN 114820313A CN 202210446502 A CN202210446502 A CN 202210446502A CN 114820313 A CN114820313 A CN 114820313A
Authority
CN
China
Prior art keywords
module
image scaling
chip cache
address generation
data
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
CN202210446502.1A
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.)
Shenzhen Corerain Technologies Co Ltd
Original Assignee
Shenzhen Corerain Technologies Co Ltd
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 Shenzhen Corerain Technologies Co Ltd filed Critical Shenzhen Corerain Technologies Co Ltd
Priority to CN202210446502.1A priority Critical patent/CN114820313A/zh
Publication of CN114820313A publication Critical patent/CN114820313A/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/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4023Scaling of whole images or parts thereof, e.g. expanding or contracting based on decimating pixels or lines of pixels; based on inserting pixels or lines of pixels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)

Abstract

本发明实施例公开了一种基于数据流架构的图像缩放装置、方法、设备及存储介质。该装置包括:第一可编程地址生成模块、第二可编程地址生成模块、第一片上缓存模块、第二片上缓存模块以及计算模块。通过使用第二片上缓存模块预先缓存离线计算得到的所需的插值系数,再通过两个可编程地址生成模块根据各自的配置,基于图像缩放算法顺序依次产生两个片上缓存模块的读地址,从而可以直接从第一片上缓存模块和第二片上缓存模块中依次分别读取到对应的目标特征数据和目标插值系数,并输出给计算模块计算得到输出特征图的各个特征数据。避免了实时计算插值系数的过程,简化了AI芯片实现图像缩放操作的过程,从而降低了对AI芯片性能和功耗的影响。

Description

基于数据流架构的图像缩放装置、方法、设备及存储介质
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种基于数据流架构的图像缩放装置、方法、设备及存储介质。
背景技术
随着深度学习的快速发展,神经网络算法已经大量应用于机器视觉应用,例如图像识别与图像分类等。针对神经网络算法复杂、计算量大以及推理运行时间过长等问题,AI芯片进行了定制化的设计来对神经网络算法的运行进行加速。图像缩放(resize)操作是神经网络算法中的一种常用操作,其对特征图进行缩放,将特征图缩放至指定的大小。常用的图像缩放方法有双线性插值(bilinear)和最邻近插值(Nearest Neighbor,NN)等等。其中,现有的应用双线性插值方法的缩放过程为:将输出特征图的边界点与输入特征图的边界点重叠,然后将输出特征图的其余所有点等间隔的放在边界点确定的区域内,这样每个输入特征图的每两个点之间都按照缩放比例因子等间距的插入了一些输出点,输出特征图每个点的大小只与输入特征图上与其相邻的四个输入特征点相关,再计算相关的插值系数,即可计算得到输出特征点的值。
而传统方式通常采用CPU或者通过指令控制算数逻辑单元(ALU)进行运算来实现bilinear resize操作,实现方式比较简单,直接使用一个ALU进行计算,并将参数、指令和数据都存放在存储单元中,实现过程如下:主控单元开始执行图像缩放操作,ALU从存储单元中读取当前计算的特征点在特征图上的索引和缩放比例因子(scale),ALU根据索引和scale计算得到四个bilinear系数,ALU将计算得到的四个bilinear系数存回到存储单元中,ALU从存储单元中读取数据和bilinear系数,ALU使用数据和bilinear系数完成计算,ALU将计算后的结果存回到存储单元中,重复上述过程,即可对特征图上所有特征点完成resize操作。
可见,传统的resize操作需要调用浮点数乘法器实时计算bilinear的插值系数,同时也需要反复多次读写存储单元,从而影响了AI芯片的性能和功耗。类似的,NN等其他图像缩放方法也存在这些问题。
发明内容
本发明实施例提供一种基于数据流架构的图像缩放装置、方法、设备及存储介质,以避免插值系数的实时计算过程,简化图像缩放操作过程,从而降低对AI芯片性能和功耗的影响。
第一方面,本发明实施例提供了一种基于数据流架构的图像缩放装置,该装置包括:第一可编程地址生成模块、第二可编程地址生成模块、第一片上缓存模块、第二片上缓存模块以及计算模块;其中,
所述第一可编程地址生成模块用于根据第一外部配置,基于所使用的图像缩放算法顺序产生所述第一片上缓存模块的第一读地址;
所述第二可编程地址生成模块用于根据第二外部配置,基于所述图像缩放算法顺序产生所述第二片上缓存模块的第二读地址;
所述第一片上缓存模块用于缓存输入特征图的特征数据,以及依次根据每个所述第一读地址读取目标特征数据;
所述第二片上缓存模块用于缓存预先离线计算得到的所述图像缩放算法所需的插值系数,以及依次根据每个所述第二读地址读取目标插值系数;
所述计算模块用于依次根据所述目标特征数据和对应的所述目标插值系数,基于所述图像缩放算法进行计算,以得到输出特征图的各个特征数据。
可选的,所述第一可编程地址生成模块包括外部可配置的第一寄存器,所述第一寄存器用于存储所述第一外部配置;所述第二可编程地址生成模块包括外部可配置的第二寄存器,所述第二寄存器用于存储所述第二外部配置。
可选的,所述计算模块还用于将得到的所述输出特征图的各个特征数据输出到结果缓存空间中进行缓存。
可选的,所述图像缩放算法包括最邻近插值算法;相应的,所述第一片上缓存模块还用于直接将所述目标特征数据作为插值结果,并直接将所述插值结果输出到结果缓存空间中进行缓存。
可选的,所述结果缓存空间包括所述第一片上缓存模块和外部存储模块中的一种。
第二方面,本发明实施例还提供了一种基于数据流架构的图像缩放方法,该方法包括:
通过第一可编程地址生成模块基于所使用的图像缩放算法顺序为输出特征图的每个特征点产生第一片上缓存模块的第一读地址,以及通过第二可编程地址生成模块基于所述图像缩放算法顺序为所述输出特征图的每个特征点产生第二片上缓存模块的第二读地址;其中,所述第一片上缓存模块用于缓存输入特征图的特征数据,所述第二片上缓存模块用于缓存预先离线计算得到的所述图像缩放算法所需的插值系数;
通过所述第一片上缓存模块依次根据每个所述第一读地址读取目标特征数据并输出,以及通过所述第二片上缓存模块依次根据每个所述第二读地址读取目标插值系数并输出;
通过计算模块接收所述目标特征数据和所述目标插值系数,并依次根据所述目标特征数据和对应的所述目标插值系数,基于所述图像缩放算法进行计算,以得到所述输出特征图的各个特征数据。
可选的,在所述通过第一可编程地址生成模块基于所使用的图像缩放算法顺序为输出特征图的每个特征点产生第一片上缓存模块的第一读地址,以及通过第二可编程地址生成模块基于所述图像缩放算法顺序为所述输出特征图的每个特征点产生第二片上缓存模块的第二读地址之前,还包括:
根据预设的神经网络算法模型获取待缩放的所述输入特征图的第一尺寸和所述输出特征图的第二尺寸,以及所使用的所述图像缩放算法;
根据所述第一尺寸、所述第二尺寸和所述图像缩放算法的计算模式对所述第一可编程地址生成模块和所述第二可编程地址生成模块进行配置。
可选的,在所述根据所述第一尺寸、所述第二尺寸和所述图像缩放算法的计算模式对所述第一可编程地址生成模块和所述第二可编程地址生成模块进行配置之前,还包括:
根据所述第一尺寸和所述第二尺寸预先离线计算得到所述插值系数并缓存到所述第二片上缓存模块中。
第三方面,本发明实施例还提供了一种计算机设备,该计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的基于数据流架构的图像缩放方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的基于数据流架构的图像缩放方法。
本发明实施例提供了一种基于数据流架构的图像缩放装置,包括第一可编程地址生成模块、第二可编程地址生成模块、第一片上缓存模块、第二片上缓存模块和计算模块,通过使用第二片上缓存模块预先缓存离线计算得到的所使用的图像缩放算法所需的插值系数,以及使用第一片上缓存模块预先缓存输入特征图的特征数据,再通过第一可编程地址生成模块和第二可编程地址生成模块根据各自的配置,基于所使用的图像缩放算法顺序依次产生第一片上缓存模块和第二片上缓存模块的读地址,从而可以直接从第一片上缓存模块和第二片上缓存模块中依次分别读取到对应的目标特征数据和目标插值系数,并输出给计算模块计算得到输出特征图的各个特征数据。避免了实时计算插值系数的过程,简化了AI芯片实现图像缩放操作的过程,从而降低了对AI芯片性能和功耗的影响。
附图说明
图1为本发明实施例一提供的基于数据流架构的图像缩放装置的结构示意图;
图2为本发明实施例二提供的基于数据流架构的图像缩放方法的流程图;
图3为本发明实施例三提供的计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一可编程地址生成模块称为第二可编程地址生成模块,且类似地,可将第二可编程地址生成模块称为第一可编程地址生成模块。第一可编程地址生成模块和第二可编程地址生成模块两者都是可编程地址生成模块,但其不是同一可编程地址生成模块。术语“第一”、“第二”等不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
实施例一
图1为本发明实施例一提供的基于数据流架构的图像缩放装置的结构示意图,本实施例可适用于AI芯片实施神经网络算法的过程中,需要对特征图进行缩放的情况。如图1所示,该装置包括:第一可编程地址生成模块11、第二可编程地址生成模块12、第一片上缓存模块13、第二片上缓存模块14以及计算模块15;其中,所述第一可编程地址生成模块11用于根据第一外部配置,基于所使用的图像缩放算法顺序产生所述第一片上缓存模块13的第一读地址;所述第二可编程地址生成模块12用于根据第二外部配置,基于所述图像缩放算法顺序产生所述第二片上缓存模块14的第二读地址;所述第一片上缓存模块13用于缓存输入特征图的特征数据,以及依次根据每个所述第一读地址读取目标特征数据;所述第二片上缓存模块14用于缓存预先离线计算得到的所述图像缩放算法所需的插值系数,以及依次根据每个所述第二读地址读取目标插值系数;所述计算模块15用于依次根据所述目标特征数据和对应的所述目标插值系数,基于所述图像缩放算法进行计算,以得到输出特征图的各个特征数据。
具体的,第一可编程地址生成模块11和第二可编程地址生成模块12为通用的可编程地址生成模块,是针对数据流架构AI芯片的片上缓存模块专门设计的地址生成模块。当AI芯片要执行特定的图像缩放算法时,第一可编程地址生成模块11可以接收第一外部配置并完成初始化,以准备按照所使用的图像缩放算法的计算过程顺序的连续产生第一片上缓存模块13的第一读地址,同时第二可编程地址生成模块12可以接收第二外部配置并完成初始化,以准备按照所使用的图像缩放算法的计算过程顺序的连续产生第二片上缓存模块14的第二读地址,其中的第一外部配置与第二外部配置可以相同。
第一片上缓存模块13中缓存有输入特征图的特征数据,具体可以按照AI芯片设计的数据缓存模式进行缓存,同时第一片上缓存模块13还可用于缓存最终计算得到的输出特征图的特征数据。第二片上缓存模块14中缓存有预先离线计算得到的所使用的图像缩放算法所需的插值系数,针对某些图像缩放算法,输出特征图的每个特征点可以对应一组插值系数,如使用双线性插值算法,则每个特征点可以对应一组四个插值系数,而每组插值系数仅与特征点的位置信息(即坐标)有关,与具体的特征数据无关,因此在给定输入特征图的尺寸和输出特征图的尺寸后,即可直接提前计算得到输出特征图的各个特征点对应计算所需的插值系数,具体可以通过AI芯片的驱动程序提前离线计算得到并按照AI芯片设计的数据缓存模式缓存到第二片上缓存模块14中。另外,在AI芯片执行卷积(convolution)操作时,第二片上缓存模块14还可用于缓存预先计算得到的convolution权重数据。
在第一可编程地址生成模块11和第二可编程地址生成模块12准备开始生成读数据地址后,可以由数据流驱动第一可编程地址生成模块11和第二可编程地址生成模块12,以使第一可编程地址生成模块11根据第一外部配置为输出特征图的每个特征点自动计算对应的第一读地址,第二可编程地址生成模块12根据第二外部配置为输出特征图的每个特征点自动计算对应的第二读地址,第一可编程地址生成模块11和第二可编程地址生成模块12可以连续的实时产生地址,同时它们是否产生新的地址由数据流驱动,即如果第一片上缓存模块13中缓存有数据并且数据可以输出,则第一可编程地址生成模块11为即将输出的数据产生第一读地址,如果第二片上缓存模块14中缓存有数据并且数据可以输出,则第二可编程地址生成模块12为即将输出的数据产生第二读地址。
在第一可编程地址生成模块11产生了第一读地址之后,只要第一片上缓存模块13中对应第一读地址已缓存有数据同时计算模块15可以处理新的数据,第一片上缓存模块13即可立即从第一读地址中读取出数据作为当前的目标特征数据并进行输出。同理,在第二可编程地址生成模块12产生了第二读地址之后,只要第二片上缓存模块14中对应第二读地址已缓存有数据同时计算模块15可以处理新的数据,第二片上缓存模块14即可立即从第二读地址中读取出数据作为当前的目标插值系数并进行输出。
计算模块15可以是AI芯片的计算模块,当有数据连续进入计算模块15时,计算模块15可以按照所使用的图像缩放算法指定的计算方式对数据完成乘累加计算,同时计算模块15也可用于AI芯片的卷积操作计算。具体可以在计算模块15接收到第一片上缓存模块13输出的目标特征数据和第二片上缓存模块14输出的目标插值系数之后,按照所使用的图像缩放算法完成运算过程,此过程连续进行,最终完成对整张输出特征图的运算。
对于数据流架构的AI芯片,通常整个图像缩放操作连续的以流水形式运行,即第一可编程地址生成模块11和第二可编程地址生成模块12分别连续生成N(正整数)个地址,而第一片上缓存模块13和第二片上缓存模块14在相应的第一个地址产生并接收到之后立即读取数据输出,计算模块15在接收到第一组数据后立即进行计算,整个过程各模块同时在工作,第一片上缓存模块13和第二片上缓存模块14在读出相应的第一个地址的数据后立即读取第二个地址的数据,然后依次读取之后接收到的地址的数据,同样计算模块15也是类似的运行。
在上述技术方案的基础上,可选的,所述第一可编程地址生成模块11包括外部可配置的第一寄存器,所述第一寄存器用于存储所述第一外部配置;所述第二可编程地址生成模块12包括外部可配置的第二寄存器,所述第二寄存器用于存储所述第二外部配置。
具体的,第一可编程地址生成模块11和第二可编程地址生成模块12中均可提供一组外部可配置的寄存器,当AI芯片要执行特定的算法时,可以根据算法的计算模式和AI芯片的片上缓存模块的数据缓存模式生成对应的寄存器配置,并配置给第一可编程地址生成模块11和第二可编程地址生成模块12中的寄存器,则第一可编程地址生成模块11和第二可编程地址生成模块12即可根据各自的配置连续产生数据读地址。具体在进行图像缩放操作过程中,可以首先根据预设的神经网络算法模型获取待缩放的输入特征图的第一尺寸和输出特征图的第二尺寸,以及所使用的图像缩放算法,再根据第一尺寸、第二尺寸和该图像缩放算法的计算模式生成第一可编程地址生成模块11的第一外部配置和第二可编程地址生成模块12的第二外部配置,然后可以通过AI芯片的驱动程序对第一可编程地址生成模块11和第二可编程地址生成模块12进行配置,具体即可对第一寄存器和第二寄存器进行配置。其中,AI芯片的工作需要用户提供要运行的网络模型,此模型通常存储在上位机(PC或服务器中),运行在上位机中的用户程序通过PCIE或其他总线将网络模型传输给AI芯片的驱动程序,驱动程序即可从网络模型中获取输入输出图大小等参数。
进一步的,第一可编程地址生成模块11和第二可编程地址生成模块12可用于实现如下形式的基本函数功能:
Figure BDA0003615739140000101
其中,y表示产生的读地址,floor表示向下取整,x表示当前计算的特征点在输出特征图上的索引,A、B、C、D、E和T均为寄存器配置参数(整数参数且可以为负)。第一可编程地址生成模块11和第二可编程地址生成模块12完成的功能函数是多层上述基本函数功能的组合,通过对第一寄存器和第二寄存器的配置,即可基于上述基本函数功能实现各种软件框架中的各种图像缩放操作。示例性的,应用双线性插值算法时,若输入特征图width大小为16,输出特征图width大小为32,channel大小为64,同时算法的align_corner属性为true,则可以生成对width方向寻址的寄存器配置为:A=0,B=16-1=15,C=0,D=32-1=31,E=0,T=64,然后对于height方向的寻址过程也进行类似的寄存器配置即可。在完成对第一可编程地址生成模块11和第二可编程地址生成模块12的寄存器配置后,即可对第一可编程地址生成模块11和第二可编程地址生成模块12进行初始化,以准备开始生成读数据地址。
在上述技术方案的基础上,可选的,所述计算模块15还用于将得到的所述输出特征图的各个特征数据输出到结果缓存空间中进行缓存。进一步可选的,所述结果缓存空间包括所述第一片上缓存模块13和外部存储模块中的一种。具体的,计算模块15可以在每完成一次计算过程之后,将得到的计算结果输出到外部存储模块DDR或者AI芯片的片上存储单元(具体即可以是第一片上缓存模块13)中,以便后续的使用。
在上述技术方案的基础上,可选的,所述图像缩放算法包括最邻近插值算法;相应的,所述第一片上缓存模块13还用于直接将所述目标特征数据作为插值结果,并直接将所述插值结果输出到结果缓存空间中进行缓存。具体的,针对最邻近插值算法的图像缩放操作,也可以采用上述的装置结构以及配置方式,但是由于最邻近插值算法直接取周围最邻近的数据作为插值结果,不需要进行计算,因此,本实施例所提供的装置在执行最邻近插值算法时,计算模块15不工作,第二可编程地址生成模块12和第二片上缓存模块14也可不工作,第一可编程地址生成模块11采用类似上述的寄存器配置之后,连续产生第一读地址给到第一片上缓存模块13,第一片上缓存模块13即可使用第一读地址直接读取数据作为插值结果,且不输出给计算模块15,而是直接从第一片上缓存模块13内部存储到结果缓存空间中。其中,可选的,所述结果缓存空间包括所述第一片上缓存模块13和外部存储模块中的一种。特殊的,若最邻近插值算法操作需要与其他计算操作进行合并同时处理,则第一片上缓存模块13也可以将读取的数据输出给计算模块15进行其他计算操作的处理。从而可以实现各种软件框架的不同图像缩放模式,提升了AI芯片的通用性。
本发明实施例所提供的基于数据流架构的图像缩放装置,包括第一可编程地址生成模块、第二可编程地址生成模块、第一片上缓存模块、第二片上缓存模块和计算模块,通过使用第二片上缓存模块预先缓存离线计算得到的所使用的图像缩放算法所需的插值系数,以及使用第一片上缓存模块预先缓存输入特征图的特征数据,再通过第一可编程地址生成模块和第二可编程地址生成模块根据各自的配置,基于所使用的图像缩放算法顺序依次产生第一片上缓存模块和第二片上缓存模块的读地址,从而可以直接从第一片上缓存模块和第二片上缓存模块中依次分别读取到对应的目标特征数据和目标插值系数,并输出给计算模块计算得到输出特征图的各个特征数据。避免了实时计算插值系数的过程,简化了AI芯片实现图像缩放操作的过程,从而降低了对AI芯片性能和功耗的影响。
实施例二
图2为本发明实施例二提供的基于数据流架构的图像缩放方法的流程图。本实施例可适用于AI芯片实施神经网络算法的过程中,需要对特征图进行缩放的情况,该方法可以应用于本发明任意实施例所提供的基于数据流架构的图像缩放装置,具备该装置相应的方法流程和有益效果。如图2所示,具体包括如下步骤:
S21、通过第一可编程地址生成模块基于所使用的图像缩放算法顺序为输出特征图的每个特征点产生第一片上缓存模块的第一读地址,以及通过第二可编程地址生成模块基于所述图像缩放算法顺序为所述输出特征图的每个特征点产生第二片上缓存模块的第二读地址;其中,所述第一片上缓存模块用于缓存输入特征图的特征数据,所述第二片上缓存模块用于缓存预先离线计算得到的所述图像缩放算法所需的插值系数。
S22、通过所述第一片上缓存模块依次根据每个所述第一读地址读取目标特征数据并输出,以及通过所述第二片上缓存模块依次根据每个所述第二读地址读取目标插值系数并输出。
S23、通过计算模块接收所述目标特征数据和所述目标插值系数,并依次根据所述目标特征数据和对应的所述目标插值系数,基于所述图像缩放算法进行计算,以得到所述输出特征图的各个特征数据。
在上述技术方案的基础上,可选的,在所述通过第一可编程地址生成模块基于所使用的图像缩放算法顺序为输出特征图的每个特征点产生第一片上缓存模块的第一读地址,以及通过第二可编程地址生成模块基于所述图像缩放算法顺序为所述输出特征图的每个特征点产生第二片上缓存模块的第二读地址之前,还包括:根据预设的神经网络算法模型获取待缩放的所述输入特征图的第一尺寸和所述输出特征图的第二尺寸,以及所使用的所述图像缩放算法;根据所述第一尺寸、所述第二尺寸和所述图像缩放算法的计算模式对所述第一可编程地址生成模块和所述第二可编程地址生成模块进行配置。
在上述技术方案的基础上,可选的,在所述根据所述第一尺寸、所述第二尺寸和所述图像缩放算法的计算模式对所述第一可编程地址生成模块和所述第二可编程地址生成模块进行配置之前,还包括:根据所述第一尺寸和所述第二尺寸预先离线计算得到所述插值系数并缓存到所述第二片上缓存模块中。
具体的,相关内容可以参考上述实施例的说明,在此将不再冗述。
本发明实施例所提供的技术方案,通过使用第二片上缓存模块预先缓存离线计算得到的所使用的图像缩放算法所需的插值系数,以及使用第一片上缓存模块预先缓存输入特征图的特征数据,再通过第一可编程地址生成模块和第二可编程地址生成模块根据各自的配置,基于所使用的图像缩放算法顺序依次产生第一片上缓存模块和第二片上缓存模块的读地址,从而可以直接从第一片上缓存模块和第二片上缓存模块中依次分别读取到对应的目标特征数据和目标插值系数,并输出给计算模块计算得到输出特征图的各个特征数据。避免了实时计算插值系数的过程,简化了AI芯片实现图像缩放操作的过程,从而降低了对AI芯片性能和功耗的影响。
实施例三
图3为本发明实施例三提供的计算机设备的结构示意图,示出了适于用来实现本发明实施方式的示例性计算机设备的框图。图3显示的计算机设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图3所示,该计算机设备包括处理器31、存储器32、输入装置33及输出装置34;计算机设备中处理器31的数量可以是一个或多个,图3中以一个处理器31为例,计算机设备中的处理器31、存储器32、输入装置33及输出装置34可以通过总线或其他方式连接,图3中以通过总线连接为例。
存储器32作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于数据流架构的图像缩放方法对应的程序指令/模块。处理器31通过运行存储在存储器32中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的基于数据流架构的图像缩放方法。
存储器32可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器32可进一步包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置33可用于获取用户预设的神经网络算法模型,以及产生与计算机设备的用户设置和功能控制有关的键信号输入等。输出装置34可用于向后续模块传输计算结果等等。
实施例四
本发明实施例四还提供一种包含计算机可执行指令的存储介质,该计算机可执行指令在由计算机处理器执行时用于执行一种基于数据流架构的图像缩放方法,该方法包括:
通过第一可编程地址生成模块基于所使用的图像缩放算法顺序为输出特征图的每个特征点产生第一片上缓存模块的第一读地址,以及通过第二可编程地址生成模块基于所述图像缩放算法顺序为所述输出特征图的每个特征点产生第二片上缓存模块的第二读地址;其中,所述第一片上缓存模块用于缓存输入特征图的特征数据,所述第二片上缓存模块用于缓存预先离线计算得到的所述图像缩放算法所需的插值系数;
通过所述第一片上缓存模块依次根据每个所述第一读地址读取目标特征数据并输出,以及通过所述第二片上缓存模块依次根据每个所述第二读地址读取目标插值系数并输出;
通过计算模块接收所述目标特征数据和所述目标插值系数,并依次根据所述目标特征数据和对应的所述目标插值系数,基于所述图像缩放算法进行计算,以得到所述输出特征图的各个特征数据。
存储介质可以是任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM、兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于数据流架构的图像缩放方法中的相关操作。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种基于数据流架构的图像缩放装置,其特征在于,包括:第一可编程地址生成模块、第二可编程地址生成模块、第一片上缓存模块、第二片上缓存模块以及计算模块;其中,
所述第一可编程地址生成模块用于根据第一外部配置,基于所使用的图像缩放算法顺序产生所述第一片上缓存模块的第一读地址;
所述第二可编程地址生成模块用于根据第二外部配置,基于所述图像缩放算法顺序产生所述第二片上缓存模块的第二读地址;
所述第一片上缓存模块用于缓存输入特征图的特征数据,以及依次根据每个所述第一读地址读取目标特征数据;
所述第二片上缓存模块用于缓存预先离线计算得到的所述图像缩放算法所需的插值系数,以及依次根据每个所述第二读地址读取目标插值系数;
所述计算模块用于依次根据所述目标特征数据和对应的所述目标插值系数,基于所述图像缩放算法进行计算,以得到输出特征图的各个特征数据。
2.根据权利要求1所述的基于数据流架构的图像缩放装置,其特征在于,所述第一可编程地址生成模块包括外部可配置的第一寄存器,所述第一寄存器用于存储所述第一外部配置;所述第二可编程地址生成模块包括外部可配置的第二寄存器,所述第二寄存器用于存储所述第二外部配置。
3.根据权利要求1所述的基于数据流架构的图像缩放装置,其特征在于,所述计算模块还用于将得到的所述输出特征图的各个特征数据输出到结果缓存空间中进行缓存。
4.根据权利要求1所述的基于数据流架构的图像缩放装置,其特征在于,所述图像缩放算法包括最邻近插值算法;相应的,所述第一片上缓存模块还用于直接将所述目标特征数据作为插值结果,并直接将所述插值结果输出到结果缓存空间中进行缓存。
5.根据权利要求3或4所述的基于数据流架构的图像缩放装置,其特征在于,所述结果缓存空间包括所述第一片上缓存模块和外部存储模块中的一种。
6.一种基于数据流架构的图像缩放方法,其特征在于,包括:
通过第一可编程地址生成模块基于所使用的图像缩放算法顺序为输出特征图的每个特征点产生第一片上缓存模块的第一读地址,以及通过第二可编程地址生成模块基于所述图像缩放算法顺序为所述输出特征图的每个特征点产生第二片上缓存模块的第二读地址;其中,所述第一片上缓存模块用于缓存输入特征图的特征数据,所述第二片上缓存模块用于缓存预先离线计算得到的所述图像缩放算法所需的插值系数;
通过所述第一片上缓存模块依次根据每个所述第一读地址读取目标特征数据并输出,以及通过所述第二片上缓存模块依次根据每个所述第二读地址读取目标插值系数并输出;
通过计算模块接收所述目标特征数据和所述目标插值系数,并依次根据所述目标特征数据和对应的所述目标插值系数,基于所述图像缩放算法进行计算,以得到所述输出特征图的各个特征数据。
7.根据权利要求6所述的基于数据流架构的图像缩放方法,其特征在于,在所述通过第一可编程地址生成模块基于所使用的图像缩放算法顺序为输出特征图的每个特征点产生第一片上缓存模块的第一读地址,以及通过第二可编程地址生成模块基于所述图像缩放算法顺序为所述输出特征图的每个特征点产生第二片上缓存模块的第二读地址之前,还包括:
根据预设的神经网络算法模型获取待缩放的所述输入特征图的第一尺寸和所述输出特征图的第二尺寸,以及所使用的所述图像缩放算法;
根据所述第一尺寸、所述第二尺寸和所述图像缩放算法的计算模式对所述第一可编程地址生成模块和所述第二可编程地址生成模块进行配置。
8.根据权利要求7所述的基于数据流架构的图像缩放方法,其特征在于,在所述根据所述第一尺寸、所述第二尺寸和所述图像缩放算法的计算模式对所述第一可编程地址生成模块和所述第二可编程地址生成模块进行配置之前,还包括:
根据所述第一尺寸和所述第二尺寸预先离线计算得到所述插值系数并缓存到所述第二片上缓存模块中。
9.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求6-8中任一所述的基于数据流架构的图像缩放方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求6-8中任一所述的基于数据流架构的图像缩放方法。
CN202210446502.1A 2022-04-26 2022-04-26 基于数据流架构的图像缩放装置、方法、设备及存储介质 Pending CN114820313A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210446502.1A CN114820313A (zh) 2022-04-26 2022-04-26 基于数据流架构的图像缩放装置、方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210446502.1A CN114820313A (zh) 2022-04-26 2022-04-26 基于数据流架构的图像缩放装置、方法、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114820313A true CN114820313A (zh) 2022-07-29

Family

ID=82508242

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210446502.1A Pending CN114820313A (zh) 2022-04-26 2022-04-26 基于数据流架构的图像缩放装置、方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114820313A (zh)

Similar Documents

Publication Publication Date Title
EP3451157B1 (en) Device and method for performing forward operation of convolutional neural network
WO2018192500A1 (zh) 处理装置和处理方法
EP3451241A1 (en) Device and method for performing training of convolutional neural network
US11200724B2 (en) Texture processor based ray tracing acceleration method and system
CN107766079B (zh) 处理器以及用于在处理器上执行指令的方法
CN114092336B (zh) 基于双线性插值算法的图像缩放方法、装置、设备及介质
US20240012788A1 (en) Systems and methods for implementing a machine perception and dense algorithm integrated circuit and enabling a flowing propagation of data within the integrated circuit
CN111105023B (zh) 数据流重构方法及可重构数据流处理器
CN112488908B (zh) 一种计算装置、计算方法、存储介质及终端
CN112163601A (zh) 图像分类方法、系统、计算机设备及存储介质
CN107315716B (zh) 一种用于执行向量外积运算的装置和方法
CN112799599B (zh) 一种数据存储方法、计算核、芯片和电子设备
CN108491924B (zh) 一种面向人工智能计算的神经网络数据串行流水处理装置
CN114201107A (zh) 存储装置、操作存储装置的方法以及电子装置
CN116710912A (zh) 一种矩阵乘法器及矩阵乘法器的控制方法
CN109685208B (zh) 一种用于神经网络处理器数据稀梳化加速的方法及装置
CN111860814B (zh) 一种用于执行batch normalization运算的装置和方法
CN117217274A (zh) 向量处理器、神经网络加速器、芯片及电子设备
CN114820313A (zh) 基于数据流架构的图像缩放装置、方法、设备及存储介质
CN114022366B (zh) 基于数据流架构的图像尺寸调整装置、调整方法及设备
CN114327639A (zh) 基于数据流架构的加速器、加速器的数据存取方法及设备
CN114840886A (zh) 一种基于数据流架构的可安全读写存储装置、方法及设备
US20230252600A1 (en) Image size adjustment structure, adjustment method, and image scaling method and device based on streaming architecture
US20230376665A1 (en) Systems and methods for executing a programmable finite state machine that accelerates fetchless computations and operations of an array of processing cores of an integrated circuit
CN112749799B (zh) 基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法

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