一种芯片及基于芯片的图像伸缩变换方法与流程

文档序号:35287918发布日期:2023-09-01 09:34阅读:26来源:国知局
一种芯片及基于芯片的图像伸缩变换方法与流程

本申请属于图像,尤其涉及一种芯片及图像伸缩变换的方法。


背景技术:

1、在图像识别中,经常需要做图像的放大和缩小。例如,在人脸检测和识别中,对于从图像中检测到的人脸,需要将局部图像提取出来并缩放到标准大小,然后送入人脸识别器进行识别。

2、给定原始图像和目标图像的分辨率,做伸缩变换就是对原始图像中的像素进行上/下采样,得到目标图像中的像素值。这一计算过程通常是在软件中实现的。

3、在基于中央处理器(central processing unit,cpu)和双倍数据率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,ddrsdram)的计算机系统中,直接通过软件计算实现伸缩变换,最大的问题是速度慢,耗时长。这是由ddr的存储特点决定的。作为一种动态存储器,在ddr中对随机地址进行读写访问,花费的时间要远远长于对连读地址进行访问。


技术实现思路

1、有鉴于此,本申请实施例提供了一种芯片及基于芯片的图像伸缩变换方法,能够解决相关技术中的一个或多个技术问题。

2、第一方面,本申请一实施例提供了一种芯片,第一输入缓存和第二输入缓存,用于按数据调度需求从片外存储器中各自获取原始图像的k行数据直至原始图像的全部数据获取完毕则停止获取;其中,第一输入缓存和第二输入缓存按数据调度需求执行一次为一个周期;第一横向缩放模块,用于对第一输入缓存存储的原始图像的k行数据进行横向上/下采样得到目标图像的k行数据并缓存入第一中间缓存;第二横向缩放模块,用于对第二输入缓存存储的原始图像的k行数据进行横向上/下采样得到目标图像的k行数据并缓存入第二中间缓存;第一纵向缩放模块,用于对第一中间缓存和第二中间缓存当前周期存储的目标图像的k行数据进行纵向上/下采样得到满足目标分辨率的目标图像的m行数据并缓存入所述第一输出缓存;第二纵向缩放模块,用于对第一中间缓存和所述第二中间缓存下一周期存储的目标图像部分区域的k行数据进行纵向上/下采样得到满足目标分辨率的目标图像n行数据并将缓存入所述第二输出缓存;第一输入缓存和所述第二输出缓存,用于将目标图像部分区域数据传输至指定地址;其中,k、m、n为自然数,三者的数值可相等或不相等。

3、第二方面,本申请一实施例提供了一种基于芯片的图像伸缩变换的方法,应用于如第一方面所述的芯片,方法包括:按数据调度需求触发第一输入缓存和第二输入缓存从片外存储器中各读取原始图像的k行数据,并写入第一输入缓存和第二输入缓存;致动第一横向缩放模块和第二横向缩放模块对当前周期内第一输入缓存和第二输入缓存获取的原始图像数据进行横向上/下采样得到满足目标横向分辨率的目标图像k行数据,并分别缓存入第一中间缓存和第二中间缓存,同时按数据调度需求触发第一输入缓存和第二输入缓存各读取原始图像k行数据;判断是否需要对当前周期内获取的原始图像若干行数据进行纵向缩放,若需要则致动第一纵向缩放模块读取第一中间缓存和第二中间缓存当前周期缓存的数据进行纵向上/下采样得到满足目标纵向分辨率的目标图像m行数据并缓存入第一输出缓存;待当前周期内得到的目标图像部分区域数据全部缓存入第一输出缓存时,致动第一横向缩放模块和第二横向缩放模块对下一周期内第一入缓存和第二输入缓存获取的原始图像k行数据进行横向上/下采样得到满足目标横向分辨率的目标图像k行数据,并分别缓存入第一中间缓存和第二中间缓存;判断是否需要对下一周期内获取的原始图像若干行数据进行纵向缩放,若需要则致动第一纵向缩放模块读取第一中间缓存和第二中间缓存下一周期缓存的数据进行纵向上/下采样得到满足目标纵向分辨率的目标图像n行数据并缓存入第二输出缓存;待当前周期内得到的目标图像部分区域数据全部缓存入第二输出缓存时,则重复上述步骤对原始图像剩下的图像数据进行新一轮伸变换直至得到满足目标分辨率的完整目标图像。

4、第三方面,本申请一实施例提供了一种电子设备,包括如第一方面任一实施例所述的芯片。

5、第四方面,本申请一实施例提供了一种深度相机,包括上述芯片,芯片用于对深度相机采集的图像进行伸缩变换处理以得到满足目标分辨率的图像。

6、第五方面,本申请一实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第二方面任一实施例所述的方法。

7、第六方面,本申请一实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备实现如第二方面任一实施例所述的方法。

8、本申请实施例通过几块小容量片上存储器对存储在片外存储器中的图像内容进行缓存,并通过上/下采样的方法计算出伸缩变换后的像素值,使得上/下采样计算过程与图像缓存过程并行进行构成多级流水线,从而极大地提高图像伸缩变换的计算速度。



技术特征:

1.一种应用于图像伸缩变换的芯片,所述芯片与片外存储器耦接,其特征在于,所述芯片至少包括:第一输入缓存及第二输入缓存、第一横向缩放模块及第二横向缩放模块、第一中间缓存及第二中间缓存模块、第一纵向缩放模块及第一纵向缩放模块和第一输出缓存及第二输出缓存,其中:

2.如权利要求1所述的芯片,其特征在于,所述芯片还包括调度模块,所述调度模块包括读取请求子模块和接收请求子模块,所述读取请求子模块用于根据数据调度需求和/或所述第一输入缓存和所述第二输入缓存的缓存空间向所述片外存储器发送读取数据请求;所述接收请求子模块用于接收所述片外存储器响应于读取数据请求发送的原始图像数据,并将接收到的数据写入所述第一输入缓存和所述第二输入缓存。

3.如权利要求1所述的芯片,其特征在于,所述芯片还包括参数寄存器,用于寄存横向缩放模块和纵向缩放模块进行上/下采样的参数,所述参数可通过上位机或片外处理器获取并作为设计参数直接体现在芯片的设计中。

4.如权利要求3所述的芯片,其特征在于,所述参数包括横向亚像素参数和纵向亚像素参数,其中,所述横向亚像素参数用于规定原始图像横向相邻像素的距离被细化成若干份,所述纵向亚像素参数用于规定原始图像纵向相邻像素的距离被细化成若干份。

5.如权利要求3所述的芯片,其特征在于,所述参数还包括横向整数步长及横向亚像素步长、纵向整数步长及纵向亚像素步长,根据步长可以得到进行上/下采样所需的下一个有效行/列是原所述始图像中哪一行/列及上/下采样后所述目标图像行/列在所述原始图像中的亚像素位置。

6.如权利要求5所述的芯片,其特征在于,所述芯片从所述片外存储器获取所述目标图像当前目标行在所述原始图像中的对应行数据之前,还需计算出当前目标行和下一个目标行在所述原始图像中的亚像素位置,进而确定当前目标行和下一个目标行在原始图像中各自的对应行;若当前目标行与下一个目标行在所述原始图像中拥有一个或两个相同的对应行,则所述芯片在获取所述当前目标行在所述原始图像中的对应行数据后,不再为所述下一个目标行重复获取同样的数据,而是直接使用已存储在相应的输入缓存里的数据进行后续的计算和传输。

7.如权利要求5所述的芯片,其特征在于,在相应的输出缓存尚未完全存入目标图像的当前目标行前,如果某组输入缓存处于空闲状态并且下一个目标行在原始图像中的某个对应行尚未被获取,那么继续从所述片外存储器读取下一个目标行在原始图像中的未被获取过的对应行数据并存入处于空闲状态的一组输入缓存,但该组输入缓存内的数据需等到当前目标行完全存入对应的输出缓存后,下一个目标行变成新的当前目标行时才能进行横向缩放并存入对应的一组中间缓存。

8.如权利要求1所述的芯片,其特征在于,所述芯片包括多个标识寄存器,用于协调和控制输入缓存、中间缓存及输出缓存的数据流,从而使得上/下采样计算过程与图像缓存过程并行进行且构成多级流水线。

9.如权利要求1所述的芯片,其特征在于,所述芯片还包括备用数据池,所述备用数据池用于暂存从所述第一输出缓存或所述第二输出缓存读取出的待送往所述片外存储器的目标图像部分像素;所述备用数据池存储的数据个数大于或等于从所述第一输出缓存或所述第二输出缓存中读取一个数据所需的时钟周期数。

10.一种基于芯片的图像伸缩变换方法,其特征在于,应用于如权利要求1~9所述的芯片,所述方法包括:

11.一种相机,其特征在于,包括如权利要求1至9任一项所述的芯片,所述芯片用于对所述相机采集的图像进行伸缩变换处理以得到满足目标分辨率的图像。


技术总结
本申请适用于图像技术领域,提供一种芯片及基于芯片的图像伸缩变换方法,芯片至少包括:输入缓存用于从片外存储器获取原始图像部分数据;第一缩放模块用于在输入缓存获取原始图像当前部分数据的同时,对原始图像的历史部分数据进行横向/纵向缩放得到目标图像部分区域的横向/纵向缩放结果;中间缓存用于缓存目标图像部分区域的横向/纵向缩放结果;第二缩放模块用于获取目标图像部分区域的历史横向/纵向缩放结果并对目标图像部分区域的历史横向/纵向缩放结果进行纵向/横向缩放,得到满足目标分辨率的目标图像部分区域;输出缓存用于存储目标图像部分区域并输出。本申请实施例可极大地提高图像伸缩变换的计算速度。

技术研发人员:肖晗,袁峰
受保护的技术使用者:奥比中光科技集团股份有限公司
技术研发日:
技术公布日:2024/1/14
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1