图像预处理的装置及方法与流程

文档序号:20707342发布日期:2020-05-12 16:38阅读:173来源:国知局
图像预处理的装置及方法与流程

本申请涉及图像处理技术领域,尤其涉及一种图像预处理的装置及方法。



背景技术:

随着人工智能技术的发展,计算机视觉技术也取得了巨大进步,且被广泛应用于视频内容/行为识别、图像语义理解、图像处理等诸多场景中。在采用算法处理之前,通常需要对图像进行预处理,例如图像缩放。图像缩放时目标图像的一行由原始图像的两行缩放而来,但在计算时目标图像的两行都将用到原始图像的同一行数据进行计算,这就产生了大量重复行数据。现有技术通常会将这些重复的行数据读取到存储器中,然后再进行计算,在图像较大的情况下,需要较大的存储空间才能实现。



技术实现要素:

为解决上述问题,本申请提供了一种图像预处理的装置及方法,该图像预处理的装置能够在较小的存储空间实现图像的格式转换和尺寸缩放,有利于节省存储资源。

本申请实施例第一方面提供了一种图像预处理的装置,该装置包括存储器、任务管理器和图像预处理器;所述图像预处理器包括先入先出数据缓存器、控制模块、输入直接存储访问器、输入数据缓存器、转换-缩放模块;

所述存储器,用于存储待处理图像的预处理任务;

所述任务管理器,用于从所述存储器中获取所述预处理任务,并将所述预处理任务下发给所述先入先出数据缓存器;

所述控制模块,用于从所述先入先出数据缓存器中获取所述预处理任务、解析所述预处理任务以得到任务参数;并根据所述任务参数确定是否对所述待处理图像进行切割,若是则对所述待处理图像进行切割,得到所述待处理图像的已切割行数据;

所述控制模块,还用于使能所述输入直接存储访问器将所述已切割行数据加载到所述输入数据缓存器;并调用所述转换-缩放模块从所述输入数据缓存器读取所述已切割行数据,对所述已切割行数据进行格式转换和尺寸缩放。

结合第一方面,在一种示例中,所述输入数据缓存器包括n个随机存储器,且所述n个随机存储器的存储深度均相同;在根据所述任务参数确定是否对所述待处理图像进行切割方面,所述控制模块具体用于:

从所述任务参数中获取所述待处理图像的行宽和所述随机存储器的存储深度;

若所述待处理图像的行宽大于所述随机存储器的存储深度,则对所述待处理图像进行切割,否则不需要对所述待处理图像进行切割;

结合第一方面,在一种示例中,在使能所述输入直接存储访问器将所述已切割行数据加载到所述输入数据缓存器方面,所述控制模块具体用于:

若所述已切割行数据经过格式转换和尺寸缩放后不需要进行算法处理,则在第一个缓冲周期,使能所述输入直接存储访问器按垂直方向将输入的所述已切割行数据加载到所述n个随机存储器的第一组随机存储器;

在第二个缓冲周期,使能所述输入直接存储访问器按垂直方向将输入的所述已切割行数据加载到所述n个随机存储器的第二组随机存储器;

交替将输入的所述已切割行数据加载到第一组随机存储器、第二组随机存储器,直至加载完所有所述已切割行数据;

若所述已切割行数据经过格式转换和尺寸缩放后需要进行算法处理,则在第一个缓冲周期,使能所述输入直接存储访问器按水平方向将输入的所述已切割行数据加载到所述n个随机存储器的第一组随机存储器;

在第二个缓冲周期,使能所述输入直接存储访问器按水平方向将输入的所述已切割行数据加载到所述n个随机存储器的第二组随机存储器;

交替将输入的所述已切割行数据加载到第一组随机存储器、第二组随机存储器,直至加载完所有所述已切割行数据。

结合第一方面,在一种示例中,所述控制模块还用于:

若不需要对所述待处理图像进行切割,则在第一个缓冲周期,使能所述输入直接存储访问器以行为单位将输入的所述待处理图像的行数据加载到所述n个随机存储器的第一组随机存储器;

在第二个缓冲周期,使能所述输入直接存储访问器将输入的所述行数据加载到所述n个随机存储器的第二组随机存储器;

交替将输入的所述行数据加载到第一组随机存储器、第二组随机存储器,直至加载完所有所述行数据。

本申请实施例第二方面提供了一种图像预处理的方法,该方法包括:

从先入先出数据缓存器中获取待处理图像的预处理任务,解析所述预处理任务以得到任务参数;

根据所述任务参数确定是否对所述待处理图像进行切割,若是则对所述待处理图像进行切割,得到所述待处理图像的已切割行数据;

使能输入直接存储访问器将所述已切割行数据加载到输入数据缓存器;

调用转换-缩放模块从所述输入数据缓存器读取所述已切割行数据,对所述已切割行数据进行格式转换和尺寸缩放。

可以看出,在本申请实施例的方案中,任务管理器从存储器中获取待处理图像的预处理任务,将预处理任务下发给先入先出数据缓存器;控制模块从先入先出数据缓存器中获取预处理任务、解析预处理任务以得到任务参数;并根据任务参数确定是否对待处理图像进行切割,若是则执行切割操作,得到待处理图像的已切割行数据;并使能输入直接存储访问器将已切割行数据加载到输入数据缓存器;并调用转换-缩放模块从输入数据缓存器读取已切割行数据,对已切割行数据进行格式转换和尺寸缩放。由于是根据待处理图像的预处理任务参数,对待处理图像执行切割操作,将较大的待处理图像的行数据切割成多个小份,再将切割后的行数据以一定加载方式缓存至输入数据缓存器,最后按照加载方式从输入数据缓存器读取已切割行数据进行格式转换和尺寸缩放,这样在较小的存储空间实现图像的格式转换和尺寸缩放,有利于节省存储资源。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种图像预处理的装置的结构示意图;

图2为本申请实施例提供的另一种图像预处理的装置的结构示意图;

图3为本申请实施例提供的一种加载方式的示例图;

图4为本申请实施例提供的一种乒乓操作的示例图;

图5为本申请实施例提供的另一种加载方式的示例图;

图6为本申请实施例提供的另一种加载方式的示例图;

图7为本申请实施例提供的一种图像预处理的方法的流程示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

本申请说明书、权利要求书和附图中出现的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同的对象,而并非用于描述特定的顺序。

请参见图1,图1为本申请实施例提供的图像预处理的装置的结构示意图,如图1所示,包括任务管理器100(如,task_manager_top)、存储器200(如,ddr(doubledataratesynchronousdynamicrandomaccessmemory,双倍速率同步动态随机存储器))和图像预处理装器300,图像预处理器300包括先入先出数据缓存器310(如,fifo(firstinputfirstoutput))、控制模块320(如,control_module,ctl_module)、输入直接存储访问器330(如,idma(inputdirectmemoryaccess))、输入数据缓存器340(如,ibuf(inputbuffer))、转换-缩放模块350(如,cvt_resize(colorvectortransformation_resize)),以上各部分通过网络或电路连接进行通信。

具体的,存储器200,用于存储待处理图像的预处理任务;任务管理器100,用于从存储器200获取待处理图像的预处理任务,并将预处理任务下发给先入先出数据缓存器310;控制模块320,用于从先入先出数据缓存器310中获取预处理任务,并对预处理任务进行解析以得到具体任务参数;控制模块320,还用于根据所述任务参数确定是否对所述待处理图像进行切割,若是则对所述待处理图像进行切割,得到所述待处理图像的已切割行数据;控制模块320,还用于使能输入直接存储访问器330将已切割行数据加载到输入数据缓存器340进行缓存;控制模块320,还用于调用转换-缩放模块350从输入数据缓存器340中读取缓存的已切割行数据,对已切割行数据进行格式转换和尺寸缩放。

本申请具体实施例中,待处理图像的预处理任务由工作人员输入上述存储器200,控制模块320起着控制图像预处理器300中各部分的运行的作用,控制模块320可以是处理器、处理芯片等。待处理图像指需要进行预处理的图像,本申请中的切割、格式转换和尺寸缩放等操作主要针对待处理图像的像素进行。预处理任务的任务参数指对待处理图像进行预处理的过程中各部分运行的控制参数,包括待处理图像的行宽和列宽,例如:1050字节;待处理图像经过预处理后输出的行宽和列宽,例如:780字节,主要用于尺寸缩放;待处理图像的色彩格式、待处理图像经过预处理后输出的色彩格式,例如:yuv格式和rgb格式,主要用于色彩格式转换;输入数据缓存器340的随机存储器所能存储的存储深度;待处理图像在输入数据缓存器340中的地址,例如:待处理图像的第0至第n行数据在输入数据缓存器340的具体哪一块随机存储器中;待处理图像的输入输出地址,例如:输入数据缓存器340的上一模块地址和下一模块地址,转换-缩放模块350的上一模块地址和下一模块地址;任务地址,例如:色彩格式转换和尺寸缩放任务的地址为转换-缩放模块350,等等。

另外,在待处理图像被切割后,根据实际情况选定采用哪种预设加载方式将已切割行数据加载到输入数据缓存器340,例如:从第0行开始的垂直方向的加载方式或者从第0行开始的水平方向的加载方式。在已切割行数据加载至输入数据缓存器340的过程中,会判断输入数据缓存器340中的已切割行数据是否满足一次尺寸缩放计算条件,当满足时启动一次格式转换和尺寸缩放计算,调用转换-缩放模块350读取缓存到输入数据缓存器340中的已切割行数据,然后执行格式转换和尺寸缩放操作,例如:将yuv格式的待处理图像转换为rgb格式,采用最近邻插值、双线性插值或三次插值算法对待处理图像进行尺寸缩放。所谓尺寸缩放计算条件即在待处理图像被切割的情况下,待处理图像相邻两行的同一份已切割行数据被加载到输入数据缓存器340,或者在待处理图像未被切割的情况下,待处理图像相邻两行的行数据被加载到输入数据缓存器340。例如:在待处理图像被切割的情况下,输入数据缓存器340中缓存了待处理图像第0行的第0份数据和第1行的第0份数据,或者在待处理图像未被切割的情况下,输入数据缓存器340中缓存了待处理图像的第0行数据和第1行数据。

可以看出,在本申请实施例的方案中,任务管理器100从存储器200中获取待处理图像的预处理任务,将预处理任务下发给先入先出数据缓存器310;控制模块320从先入先出数据缓存器310中获取预处理任务、解析预处理任务以得到任务参数;并根据任务参数确定是否对待处理图像进行切割,若是则执行切割操作,得到待处理图像的已切割行数据;并使能输入直接存储访问器330将已切割行数据加载到输入数据缓存器340;并调用转换-缩放模块350从输入数据缓存器340读取已切割行数据,对已切割行数据进行格式转换和尺寸缩放。由于是根据待处理图像的预处理任务参数,对待处理图像执行切割操作,将较大的待处理图像的行数据切割成多个小份,再将切割后的行数据以一定加载方式缓存至输入数据缓存器,最后按照加载方式从输入数据缓存器读取已切割行数据进行格式转换和尺寸缩放,这样在较小的存储空间实现图像的格式转换和尺寸缩放,有利于节省存储资源。

请参见图2,图2为本申请实施例提供的另一种图像预处理的装置的结构示意图,基于图1所示的图像预处理的装置,图2所示的图像预处理的装置中,图像预处理器300还包括算法处理模块360(processmodule,pro_module)、输出数据缓存器370(outputbuffer,obuf)以及输出直接存储访问器380(outputdirectmemoryaccess,odma)。其中,控制模块320,还用于若已切割行数据经过转换-缩放模块350的格式转换和尺寸缩放后需要进行算法处理,则将经过格式转换和尺寸缩放的已切割行数据传输至算法处理模块360进行算法处理,并将经过算法处理的已切割行数据写入输出数据缓存器370;若已切割行数据经过格式转换和尺寸缩放后不需要进行算法处理,则将经过格式转换和尺寸缩放的已切割行数据直接写入输出数据缓存器370;控制模块320,还用于使能输出直接存储访问器380将输出数据缓存器370中的已切割行数据写回存储器200。

本申请具体实施例中,经过格式转换和尺寸缩放后的已切割行数据可以直接流向算法处理模块360,也可以直接写入输出数据缓存器370,或者在经过算法处理后写入输出数据缓存器370,由输出直接存储访问器380将输出数据缓存器370中缓存的已切割行数据写回存储器200,数据传输更加灵活。

在一种示例中,所述输入数据缓存器340包括n个随机存储器,且所述n个随机存储器的存储深度均相同;在根据所述任务参数确定是否对所述待处理图像进行切割方面,所述控制模块320具体用于:

从所述任务参数中获取所述待处理图像的行宽和所述随机存储器的存储深度;

若所述待处理图像的行宽大于所述随机存储器的存储深度,则对所述待处理图像进行切割,否则不需要对所述待处理图像进行切割;

在对所述待处理图像进行切割方面,所述控制模块具体用于:

根据所述待处理图像的行宽和所述随机存储器的存储深度对所述待处理图像进行切割。

本申请具体实施例中,输入数据缓存器340由4块随机存储器构成,每块随机存储器的存储深度相同,例如:100字节,当控制模块320检测到待处理图像的行宽大于所述随机存储器的存储深度时,对所述待处理图像进行切割,例如:待处理图像一行的宽度是1050字节,输入数据缓存器340中一块随机存储器的大小是100字节,那么就需要对待处理图像执行切割操作,对于一行数据,其被切割的份数ceiling=行宽/随机存储器大小,即1050/100=10.5份,取整也就是11份,即得到待处理图像每行的11份已切割行数据。同理,当控制模块320检测到待处理图像的行宽小于或等于随机存储器的存储深度时,不对待处理图像进行切割。

在一种示例中,在使能所述输入直接存储访问器330将所述已切割行数据加载到所述输入数据缓存器340方面,所述控制模块320具体用于:

若所述已切割行数据经过格式转换和尺寸缩放后不需要进行算法处理,则在第一个缓冲周期,使能所述输入直接存储访问器330按垂直方向将输入的所述已切割行数据加载到所述n个随机存储器的第一组随机存储器;

在第二个缓冲周期,使能所述输入直接存储访问器330按垂直方向将输入的所述已切割行数据加载到所述n个随机存储器的第二组随机存储器;

交替将输入的所述已切割行数据加载到第一组随机存储器、第二组随机存储器,直至加载完所有所述已切割行数据;

本申请具体实施例中,需考虑已切割行数据经过尺寸缩放后是否需要传输至算法处理模块360进行梯度计算、特征值提取等算法处理,若不需要,则按照垂直方向的加载方式将已切割行数据加载到4块随机存储器中。如图3所示,图3左侧表示待处理图像的已切割行数据,右侧表示垂直方向的加载ld顺序,即从待处理图像第0行的第0份已切割行数据开始加载,即加载ld0,按照垂直方向加载完第n-1行的第0份已切割行数据后,即加载ld(n-1),切换到第0行的第1份已切割行数据,即加载ld(n),按照垂直方向加载完第n-1行的第1份已切割行数据后,即加载ld(2n-1),再切换至下个垂直方向,直至加载完第n-1行的最后一份已切割行数据,即加载ld(4n-1)。

另外,为进一步节省图像预处理的时间,提高尺寸缩放的计算效率,4块随机存储器工作成两组,两组随机存储器在加载数据和读取数据的过程中形成乒乓操作。如图4所示,所谓乒乓操作即对于当前输入的已切割行数据或行数据通过一输入数据流选择模块将其缓存至第一组随机存储器,在第个二缓冲周期到来时,将输入的已切割行数据或行数据通过输入数据流选择模块缓存至第二组随机存储器,同时输入数据流选择模块将调用数据处理模块从第一组随机存储器中读取第一个缓冲周期缓存的已切割行数据或行数据进行处理,并通过输出数据流选择模块将经过数据处理模块处理的已切割行数据或行数据进行输出,在第三个缓冲周期到来时,将将输入的已切割行数据或行数据通过输入数据流选择模块缓存至第一组随机存储器,同时输入数据流选择模块将调用数据处理模块从第二组随机存储器中读取第二个缓冲周期缓存的已切割行数据或行数据进行处理,并通过输出数据流选择模块将经过数据处理模块处理的已切割行数据或行数据进行输出,就这样交替处理,直至已切割行数据或行数据被加载和读取完毕,需要说明的是,本申请中,上述输入数据流选择模块和输出数据流选择模块均可以是控制模块320,数据处理模块可以是转换-缩放模块350。

在需要进行图像切割且已切割行数据经过格式转换和尺寸缩放后不需要传输入至算法处理模块360的情况下,构成乒的2块随机存储器和构成乓的2块随机存储器不是固定的,需要根据重复行的出现进行确定,例如:在第一个缓冲周期,第一组随机存储器为(ram0,ram1),在第二个缓冲周期,第二组随机存储器为(ram2,ram3),在第三个缓冲周期,第一组随机存储器可能变为(ram3,ram0),因为ram3中保存了需要重复用到的已切割行数据,其中,上述ram0,ram1,ram2,ram3分别表示随机存储器的编号。

具体的,按图3中所示的加载方式,在第一个缓冲周期分别加载第0行的第0份已切割行数据ld0和第1行的第0份已切割行数据ld1至ram0和ram1,(ram0,ram1)构成第一组随机存储器,然后在第二个缓冲周期分别加载第1行的第0份已切割行数据ld1和第2行的第0份已切割行数据ld2至ram1和ram2,由于第1行的第0份已切割行数据ld0已经被加载至ram1,所以不再加载第1行的第0份已切割行数据ld0,(ram1,ram2)构成第二组随机存储器,交替加载已切割行数据至第一组随机存储器、第二组随机存储器。

若所述已切割行数据经过格式转换和尺寸缩放后需要进行算法处理,则在第一个缓冲周期,使能所述输入直接存储访问器330按水平方向将输入的所述已切割行数据加载到所述n个随机存储器的第一组随机存储器;

在第二个缓冲周期,使能所述输入直接存储访问器330按水平方向将输入的所述已切割行数据加载到所述n个随机存储器的第二组随机存储器;

交替将输入的所述已切割行数据加载到第一组随机存储器、第二组随机存储器,直至加载完所有所述已切割行数据。

本申请具体实施例中,在需要进行图像切割且已切割行数据经过格式转换和尺寸缩放后需要输入算法处理模块360的情况下,无需考虑重复行的出现,第一组随机存储器和第二组随机存储器是固定的,按照水平方向的加载方式加载已切割行数据,如图5所示,分别将第0行的第0份已切割行数据ld0、第1行的第0份已切割行数据ld4加载至ram0、ram1,然后将第0行的第1份已切割行数据ld1、第1行的第1份已切割行数据ld5加载至ram2、ram3,(ram0,ram1)构成第一组随机存储器,(ram2,ram3)构成第二组随机存储器,按照图5所示的水平加载方式,交替加载已切割行数据至第一组随机存储器、第二组随机存储器。

在一种示例中,在调用所述转换-缩放模块350从所述输入数据缓存器340读取所述已切割行数据,对所述已切割行数据进行格式转换和尺寸缩放方面,所述控制模块320具体用于:

在第二个缓冲周期,当第一组随机存储器中缓存的所述已切割行数据满足尺寸缩放计算条件时,将第一组随机存储器的编号传输给所述转换-缩放模块350,使得所述转换-缩放模块350根据第一组随机存储器的编号,读取第一组随机存储器缓存的所述已切割行数据进行格式转换和尺寸缩放;所述尺寸缩放采用双线性插值算法;

在第三个缓冲周期,当第二组随机存储器中缓存的所述已切割行数据满足尺寸缩放计算条件时,将第二组随机存储器的编号传输给所述转换-缩放模块350,使得所述转换-缩放模块350根据第二组随机存储器的编号读取第二组随机存储器缓存的所述已切割行数据进行格式转换和尺寸缩放;

交替读取第一组随机存储器、第二组随机存储器中缓存的所述已切割行数据进行格式转换和尺寸缩放,直至处理完所有所述已切割行数据。本申请具体实施例中,在得到已切割行数据的情况下,如上关于乒乓操作的描述,在第二个缓冲周期,当将已切割行数据加载至第二组随机存储器时,第一组随机存储器中的已切割行数据是满足尺寸缩放计算条件的,此时,控制模块320将第一组随机存储器的编号,例如:ram0、ram1,传输给转换-缩放模块350,转换-缩放模块350根据接收到的编号读取ram0、ram1中的已切割行数据进行格式转换和尺寸缩放。在第三个缓冲周期,当将已切割行数据再次加载至第一组随机存储器时,第二组随机存储器中的已切割行数据是满足尺寸缩放计算条件的,此时,控制模块320将第二组随机存储器的编号,例如:ram1、ram2或者ram2、ram3,转换-缩放模块350仅需根据接收到的编号第二组随机存储器中的已切割行数据进行格式转换和尺寸缩放,交替读取第一组随机存储器、第二组随机存储器中的已切割行数据进行格式转换和尺寸缩放,直至将整幅待处理图的已切割行数据处理完毕。需要说明的是,本申请中尺寸缩放计算采用双线性插值算法实现。

在一种示例中,所述控制模块320还用于:

若不需要对所述待处理图像进行切割,则在第一个缓冲周期,使能所述输入直接存储访问器330以行为单位将输入的所述待处理图像的行数据加载到所述n个随机存储器的第一组随机存储器;

在第二个缓冲周期,使能所述输入直接存储访问器330将输入的所述行数据加载到所述n个随机存储器的第二组随机存储器。

本申请具体实施例中,若不需要对所述待处理图像进行切割,则如图6所示,以整行为单位将输入的行数据加载到n个随机存储器的第一组随机存储器或第二组随机存储器。例如:将第0行和第1行整行的行数据ld0、ld1分别加载至ram0和ram1,将第1行和第2行整行的行数据ld1、ld2分别加载至ram1和ram2,此时,第1行的行数据为重复行,已经存在于ram1中,无需重复加载,(ram0,ram1)构成第一组随机存储器,(ram1,ram2)构成第二组随机存储器,交替加载待处理图像的行数据直至加载完毕。

在一种示例中,所述控制模块320还用于:

在第二个缓冲周期,当第一组随机存储器中缓存的所述行数据满足尺寸缩放计算条件时,将第一组随机存储器的编号传输给所述转换-缩放模块350,使得所述转换-缩放模块350根据第一组随机存储器的编号读取第一组随机存储器缓存的所述行数据进行格式转换和尺寸缩放;

在第三个缓冲周期,当第二组随机存储器中缓存的所述行数据满足尺寸缩放计算条件时,将第二组随机存储器的编号传输给所述转换-缩放模块350,使得所述转换-缩放模块350根据第二组随机存储器的编号读取第二组随机存储器缓存的所述行数据进行格式转换和尺寸缩放;

交替读取第一组随机存储器、第二组随机存储器中缓存的所述行数据进行格式转换和尺寸缩放,直至处理完所有所述行数据。

本申请具体实施例中,在未对待处理图像进行切割的情况下,在第二个缓冲周期,同样是当输入的行数据加载至第二组随机存储器时,第一组随机存储器中的行数据是满足尺寸缩放计算条件的,此时,控制模块320将第一组随机存储器的编号,例如:ram0、ram1,传输给转换-缩放模块350,转换-缩放模块350根据接收到的编号读取ram0、ram1中的行数据进行格式转换和尺寸缩放。在第三个缓冲周期,当将行数据再次加载至第一组随机存储器时,第二组随机存储器中的行数据是满足尺寸缩放计算条件的,此时,控制模块320将第二组随机存储器的编号,例如:ram1、ram2,传输给转换-缩放模块350,转换-缩放模块350根据接收到的编号读取ram1、ram2中的行数据进行格式转换和尺寸缩放,直至将整幅待处理图的行数据处理完毕。

可以看出,本申请实施例中n个随机存储器工作成两组进行待处理图像的已切割行数据或行数据的缓存和后续已切割行数据或行数据的读取,避免了读写并行的情况,有利于节省读取时间、提高格式转换和尺寸缩放的处理效率。

在一种示例中,所述控制模块320还用于:

若所述行数据经过格式转换和尺寸缩放后不需要进行算法处理,则将经过格式转换和尺寸缩放的所述行数据写入所述输出数据缓存器370;

若所述行数据经过格式转换和尺寸缩放后需要进行算法处理,则将经过格式转换和尺寸缩放的所述行数据传输至所述算法处理模块360进行算法处理,并将经过算法处理的所述行数据写入所述输出数据缓存器370;

使能所述输出直接存储访问器380将所述输出数据缓存器370中的所述行数据写回所述存储器200。

本申请具体实施例中,未对待处理图像进行切割的情况下,可以直接将转换-缩放模块350处理后的行数据输出到输出数据缓存器370,也可以直接将转换-缩放模块350处理后的行数据传输至算法处理模块360处理后输出到输出数据缓存器370,最后都将存回存储器200,得到完整的预处理后的图像。

请参见图7,图7为本申请实施例提供的一种图像预处理的方法的流程示意图,如图7所示,该方法包括步骤:

s71,从先入先出数据缓存器中获取待处理图像的预处理任务,解析所述预处理任务以得到任务参数;

s72,根据所述任务参数确定是否对所述待处理图像进行切割,若是则对所述待处理图像进行切割,得到所述待处理图像的已切割行数据;

s73,使能输入直接存储访问器将所述已切割行数据加载到输入数据缓存器;

s74,调用转换-缩放模块从所述输入数据缓存器读取所述已切割行数据,对所述已切割行数据进行格式转换和尺寸缩放。

在一种可能的示例中,所述方法还包括:

若所述已切割行数据经过格式转换和尺寸缩放后需要进行算法处理,则将经过格式转换和尺寸缩放的所述已切割行数据传输至所述算法处理模块进行算法处理,并将经过算法处理的所述已切割行数据写入所述输出数据缓存器;

若所述已切割行数据经过格式转换和尺寸缩放后不需要进行算法处理,则将经过格式转换和尺寸缩放的所述已切割行数据写入所述输出数据缓存器;

使能所述输出直接存储访问器将所述输出数据缓存器中的所述已切割行数据写回所述存储器。

在一种可能的示例中,所述输入数据缓存器包括n个随机存储器,且所述n个随机存储器的存储深度均相同;根据所述任务参数确定是否对所述待处理图像进行切割,包括:

从所述任务参数中获取所述待处理图像的行宽和所述随机存储器的存储深度;

若所述待处理图像的行宽大于所述随机存储器的存储深度,则对所述待处理图像进行切割,否则不需要对所述待处理图像进行切割;

所述对所述待处理图像进行切割,包括:

根据所述待处理图像的行宽和所述随机存储器的存储深度对所述待处理图像进行切割。

在一种可能的示例中,所述使能所述输入直接存储访问器将所述已切割行数据加载到所述输入数据缓存器,包括:

针对所述已切割行数据经过格式转换和尺寸缩放后不需要进行算法处理的情况:

在第一个缓冲周期,使能所述输入直接存储访问器按垂直方向将输入的所述已切割行数据加载到所述n个随机存储器的第一组随机存储器;

在第二个缓冲周期,使能所述输入直接存储访问器按垂直方向将输入的所述已切割行数据加载到所述n个随机存储器的第二组随机存储器;

交替将输入的所述已切割行数据加载到第一组随机存储器、第二组随机存储器,直至加载完所有所述已切割行数据;

针对所述已切割行数据经过格式转换和尺寸缩放后需要进行算法处理的情况:

在第一个缓冲周期,使能所述输入直接存储访问器按水平方向将输入的所述已切割行数据加载到所述n个随机存储器的第一组随机存储器;

在第二个缓冲周期,使能所述输入直接存储访问器按水平方向将输入的所述已切割行数据加载到所述n个随机存储器的第二组随机存储器;

交替将输入的所述已切割行数据加载到第一组随机存储器、第二组随机存储器,直至加载完所有所述已切割行数据。

在一种可能的示例中,所述调用所述转换-缩放模块从所述输入数据缓存器读取所述已切割行数据,对所述已切割行数据进行格式转换和尺寸缩放,包括:

在第二个缓冲周期,当第一组随机存储器中缓存的所述已切割行数据满足尺寸缩放计算条件时,将第一组随机存储器的编号传输给所述转换-缩放模块,使得所述转换-缩放模块根据第一组随机存储器的编号,读取第一组随机存储器缓存的所述已切割行数据进行格式转换和尺寸缩放;所述尺寸缩放采用双线性插值算法;

在第三个缓冲周期,当第二组随机存储器中缓存的所述已切割行数据满足尺寸缩放计算条件时,将第二组随机存储器的编号传输给所述转换-缩放模块,使得所述转换-缩放模块根据第二组随机存储器的编号读取第二组随机存储器缓存的所述已切割行数据进行格式转换和尺寸缩放;

交替读取第一组随机存储器、第二组随机存储器中缓存的所述已切割行数据进行格式转换和尺寸缩放,直至处理完所有所述已切割行数据。

在一种可能的示例中,所述方法还包括:

若不需要对所述待处理图像进行切割,则在第一个缓冲周期,使能所述输入直接存储访问器以行为单位将输入的所述待处理图像的行数据加载到所述n个随机存储器的第一组随机存储器;

在第二个缓冲周期,使能所述输入直接存储访问器将输入的所述行数据加载到所述n个随机存储器的第二组随机存储器;

交替将输入的所述行数据加载到第一组随机存储器、第二组随机存储器,直至加载完所有所述行数据。

在一种可能的示例中,所述方法还包括:

在第二个缓冲周期,当第一组随机存储器中缓存的所述行数据满足尺寸缩放计算条件时,将第一组随机存储器的编号传输给所述转换-缩放模块,使得所述转换-缩放模块根据第一组随机存储器的编号读取第一组随机存储器缓存的所述行数据进行格式转换和尺寸缩放;

在第三个缓冲周期,当第二组随机存储器中缓存的所述行数据满足尺寸缩放计算条件时,将第二组随机存储器的编号传输给所述转换-缩放模块,使得所述转换-缩放模块根据第二组随机存储器的编号读取第二组随机存储器缓存的所述行数据进行格式转换和尺寸缩放;

交替读取第一组随机存储器、第二组随机存储器中缓存的所述行数据进行格式转换和尺寸缩放,直至处理完所有所述行数据。

在一种可能的示例中,若所述行数据经过格式转换和尺寸缩放后不需要进行算法处理,则将经过格式转换和尺寸缩放的所述行数据写入所述输出数据缓存器;

若所述行数据经过格式转换和尺寸缩放后需要进行算法处理,则将经过格式转换和尺寸缩放的所述行数据传输至所述算法处理模块进行算法处理,并将经过算法处理的所述行数据写入所述输出数据缓存器;

使能所述输出直接存储访问器将所述输出数据缓存器中的所述行数据写回所述存储器。

需要说明的是,上述步骤s71-s74的具体实现方式,可参见图1至图6所示实施例的相关描述,在此不再赘述。

以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1