CN115601223B - 一种图像预处理装置、方法和芯片 - Google Patents

一种图像预处理装置、方法和芯片 Download PDF

Info

Publication number
CN115601223B
CN115601223B CN202211094583.XA CN202211094583A CN115601223B CN 115601223 B CN115601223 B CN 115601223B CN 202211094583 A CN202211094583 A CN 202211094583A CN 115601223 B CN115601223 B CN 115601223B
Authority
CN
China
Prior art keywords
control module
module
image
adjacent source
coordinates
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
Application number
CN202211094583.XA
Other languages
English (en)
Other versions
CN115601223A (zh
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.)
Chongqing Bitmap Information Technology Co ltd
Original Assignee
Chongqing Bitmap Information Technology 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 Chongqing Bitmap Information Technology Co ltd filed Critical Chongqing Bitmap Information Technology Co ltd
Priority to CN202211094583.XA priority Critical patent/CN115601223B/zh
Publication of CN115601223A publication Critical patent/CN115601223A/zh
Application granted granted Critical
Publication of CN115601223B publication Critical patent/CN115601223B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/606Rotation of whole images or parts thereof by memory addressing or mapping
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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

一种图像预处理装置、方法和芯片
技术领域
本发明涉及数据处理技术领域,具体涉及一种图像预处理装置、方法和芯片。
背景技术
在计算机视觉领域,特别是目标检测方向,从摄像头采集到的图像质量直接影响目标检测的准确度和性能,所以一般需要对采集到的图像做预处理,其中图像的缩放和仿射变换是图像预处理中比较重要的一个环节,可以将图像缩放或旋转到一个需要的尺寸,以便于神经网络加速器进行进一步的处理和识别。
目前通常采用双线性插值算法实现图像的缩放或旋转计算,也就是通过两个存储单元作为查找表分别存储行列方向原始图像素点坐标及对应插值系数,原始图像素点坐标用于获取源像素值,获取到源像素值后再读取插值系数进行插值计算,浪费了比较大的存储空间并且有更高的读写延迟,直接增加了芯片的面积和功耗。可见,现有技术中的图像预处理存在使用了较大的存储空间的问题。
发明内容
针对相关技术中所存在的不足,本发明提供的一种图像预处理装置、方法和芯片,其解决现有技术中的图像预处理存在使用了较大的存储空间的问题,采用寄存器流水的方式来缓存插值权重数据,节省了两个查找表式的存储单元,降低了片上存储单元的消耗。
第一方面,本发明提供一种图像预处理装置,所述装置包括:主控模块、读取模块、缓存模块、缓存控制模块和插值计算模块;所述主控模块用于根据当前预处理配置参数,计算出目标图像中的当前像素坐标对应原始图像中的多个相邻源像素坐标和多个插值权重参数;其中,所述当前预处理配置参数包括缩放因子或仿射因子;所述读取模块分别与所述主控模块、所述缓存模块和外部图像存储器相连,用于根据所述多个相邻源像素坐标从外部图像存储器中获取相对应的多个相邻源像素值,并将所述多个相邻源像素值存储在所述缓存模块中;所述缓存控制模块分别与所述主控模块、所述缓存模块和所述插值计算模块相连,用于通过寄存器流水结构存储所述多个差值权重参数,还用于从所述缓存模块中读取所述多个相邻源像素值;还用于根据所述差值计算模块的计算进度、所述缓存模块的存储容量或/和寄存器流水结构的存储容量发送相对应的反压指令到所述主控模块,使所述主控模块根据所述反压指令判断是否进行下一个像素坐标的相邻源像素坐标和插值权重参数的计算;所述插值计算模块用于对当前像素坐标对应的所述多个相邻源像素值和所述差值权值参数进行融合计算,得到目标图像中当前像素坐标对应的目标像素值。
可选地,所述读取模块包括:读控模块,与所述主控模块相连,用于根据所述多个相邻源像素坐标生成读取指令;DMA控制器,分别与所述读控模块和所述外部图像存储器相连,用于根据所述读取指令,通过DAM的方式从外部图像存储器中读取相对应的多个相邻源像素值。
可选地,当所述缩放因子大于或等于预设阈值时,所述读控模块还用于根据所述多个相邻源像素坐标生成Burst读取指令,使DMA控制器根据所述Burst读取指令采用AXIBurst读取方式从外部图像存储器中读取相对应的整行源像素值。
可选地,当所述缩放因子大于或等于预设阈值时,所述读控模块还用于判断当前相邻源像素坐标中的纵坐标是否与目标纵坐标相同,若判断出与目标纵坐标不相同时再生成相对应的Burst读取指令;其中,所述目标纵坐标为生成上一个Burst读取指令的相邻源像素坐标中的纵坐标。
可选地,所述插值计算模块包括:Booth乘法单元,与所述缓存控制模块相连,用于对所述多个插值权重参数之间进行乘法运算,得到多个差值运算结果;FIFO缓存单元,与所述Booth乘法单元相连,用于对所述多个差值运算结果进行缓存;混合运算单元,与所述FIFO缓存单元和所述缓存控制模块相连,用于将所述缓存控制模块读取的所述多个相邻源像素值和所述多个差值运算结果进行混合运算,得到所述当前像素坐标对应的目标像素值。
可选地,所述装置还包括:像素值写入模块,分别与所述插值计算模块和所述DMA控制器相连,用于将所述目标像素值通过所述DMA控制器写入到所述外部图像存储器中相对应的位置。
可选地,所述缓存模块包括Ping-Pong缓存。
可选地,所述主控模块用于根据当前预处理配置参数,获取目标图像中的当前像素坐标对应原始图像中的多个相邻源像素坐标和多个插值权重参数,包括:根据所述当前预处理配置参数中的缩放因子和目标图像中的当前像素坐标得到原始图像的原始坐标,或根据所述当前预处理配置参数中的仿射因子和目标图像中的当前像素坐标得到原始图像的原始坐标;根据所述原始坐标的整数部分,得到与所述原始坐标相邻的多个相邻源像素坐标;根据所述原始坐标的小数部分,得到所述多个插值权重参数。
第二方面,本发明提供一种图像预处理方法,所述方法包括:主控模块根据当前预处理配置参数,计算出目标图像中的当前像素坐标对应原始图像中的多个相邻源像素坐标和多个插值权重参数;其中,所述当前预处理配置参数包括缩放因子或仿射因子;读取模块根据所述多个相邻源像素坐标从外部图像存储器中获取相对应的多个相邻源像素值,并将所述多个相邻源像素值存储在所述缓存模块中;缓存控制模块通过寄存器流水结构存储所述多个差值权重参数,并从所述缓存模块中读取所述多个相邻源像素值;根据所述差值计算模块的计算进度、所述缓存模块的存储容量或/和寄存器流水结构的存储容量发送相对应的反压指令到所述主控模块,使所述主控模块根据所述反压指令判断是否进行下一个像素坐标的相邻源像素坐标和插值权重参数的计算;插值计算模块对当前像素坐标对应的所述多个相邻源像素值和所述差值权值参数进行融合计算,得到目标图像中当前像素坐标对应的目标像素值。
第三方面,本发明提供一种芯片,所述芯片包括上述图像预处理装置。
相比于相关技术,本发明具有如下有益效果:
1、本发明通过主控模块遍历目标图所有像素坐标的同时计算出对应于原始图像中的相邻源像素坐标以及对应插值权重系数,使读取模块根据相邻源像素坐标从外部图像存储器中读取相对应的相邻源像素值暂存在缓存控制模块中;而缓存控制模块对插值权重系数通过寄存器流水的方式进行缓存,且缓存控制模块将自存的插值权重系数以及从缓存模块读取相对应的相邻源像素值发送到插值计算模块进行融合计算,从而得到目标图像中每个像素点对应的目标像素值。因此,本实施例采用寄存器流水的方式来缓存插值权重数据,节省了两个查找表式的存储单元,降低了片上存储单元的消耗。
2、由于本实施例中相邻源像素值和插值权重参数的数据传输路径不同,通过缓存控制模块对主控模块的反压控制,可以实现在主控模块中的插值权重计算和插值计算模块中的双线性插值计算的动态平衡调节,从而保证了数据处理的效率,同时也保证数据不会丢失。
附图说明
图1所示为本实施例提供的一种图像预处理装置的结构示意图;
图2所示为本实施例提供的一种图像缩放的示意图;
图3所示为本实施例提供的一种图像缩放的流程示意图;
图4所示为本实施例提供的另一种图像预处理装置的结构示意图;
图5所示为本实施例提供的一种插值计算模块的结构示意图;
图6所示为本实施例提供的一种主控模块的状态机示意图;
图7所示为本实施例提供的一种图像预处理方法的流程示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
第一方面,本发明提供一种图像预处理方法,具体包括以下实施例:
实施例一
图1所示为本实施例提供的一种图像预处理装置的结构示意图,如图1所示,本发明提供的图像预处理装置100具体包括:
主控模块110、读取模块120、缓存模块130、缓存控制模块140和插值计算模块150;
所述主控模块110用于根据当前预处理配置参数,计算出目标图像中的当前像素坐标对应原始图像中的多个相邻源像素坐标和多个插值权重参数;其中,所述当前预处理配置参数包括缩放因子或仿射因子;
所述读取模块120分别与所述主控模块110、所述缓存模块130和外部图像存储器200相连,用于根据所述多个相邻源像素坐标从外部图像存储器200中获取相对应的多个相邻源像素值,并将所述多个相邻源像素值存储在所述缓存模块130中;
所述缓存控制模块140分别与所述主控模块110、所述缓存模块130和所述插值计算模块150相连,用于通过寄存器流水结构存储所述多个差值权重参数,还用于从所述缓存模块130中读取所述多个相邻源像素值;还用于根据所述差值计算模块的计算进度、所述缓存模块130的存储容量或/和寄存器流水结构的存储容量发送相对应的反压指令到所述主控模块110,使所述主控模块110根据所述反压指令判断是否进行下一个像素坐标的相邻源像素坐标和插值权重参数的计算;
所述插值计算模块150用于对当前像素坐标对应的所述多个相邻源像素值和所述差值权值参数进行融合计算,得到目标图像中当前像素坐标对应的目标像素值。
需要说明的是,本实施例中对图像的预处理包括图像缩放和仿射变换,在阐述本实施例图像预处理装置的工作原理之前,先对本实施例的图像缩放和仿射变换的处理过程进行介绍:
图像缩放旨在将某个尺寸的图像转换为其他尺寸的图像,如放大或缩小图像,图2中的2a为原始图像,图2中的2b为缩放后的目标图像,根据缩放倍数和目标图像的素点坐标di[i][j]可以反推出原始图像对应的像素点坐标si[x][y],得到的原始图像像素点坐标si[x][y]不一定是整数,但肯定介于si[ix][iy]、si[ix+1][iy]、si[ix][iy+1]、si[ix+1][iy+1]这四个相邻像素点之间(ix为对x取整,iy为对y取整),可以将这四个相邻像素点坐标对应的像素值进行插值计算得到目标图像的像素值。如图3所示,原始图像为si(宽ws,高hs),目标图像为di(宽wd,高hd),行缩放因子为(ws/wd),列缩放因子为(hs/hd),计算方法为遍历目标图像的所有像素点坐标[i,j],根据缩放因子得到对应的原始图像的像素点坐标[x,y],该坐标为浮点数,对[x,y]取整数部分可以得到[ix,iy],取[x,y]的小数部分并乘2048(左移11bit)可以得到[u,v],可知原始图像像素点周围的四个相邻点的坐标为si[ix][iy]、si[ix+1][iy]、si[ix][iy+1]、si[ix+1][iy+1],计算得到对应四个像素权重(2048-u,2048-v),(u,2048-v),(2048-u,v)和(u,v)。根据原始图像四个相邻点的像素值以及对应权重做加权求和可以得到最终的目标图像的像素值di[i][j]。
仿射变换是一种对图像的简单变换,包括旋转、平移,即将一张图进行线性变换,仿射变换前后的图像有凸性、共线性、平行性和共线比例不变性等特点。假设原始图像为si,目标图像为di,根据仿射变换的旋转和平移不变性原理,可以得到:[Xs,Ys]为原始图像中像素点坐标,[Xd,Yd]为经过仿射变换之后目标图像中对应像素点的坐标,[tx,ty]分别为水平方向和垂直方向偏移,θ为仿射变换的旋转角度,可以得到:
变换得到:
Xs=cosθ*Xd-sinθ*Yd-(tx*cosθ-ty*sinθ)
Ys=sinθ*Xd+cosθ*Yd-(tx*sinθ+ty*cosθ)
计算得到的目标像素点对应的原图像素点坐标si[Xs][Ys],si[Xs][Ys]不一定是整数,对[Xs,Ys]取整数部分可以得到[iXs,iYs],取[Xs,Ys]的小数部分并乘2048(左移11bit)可以得到[u,v],原始图像像素点周围的四个点的坐标为si[iXs][iYs]、si[iXs+1][iYs]、si[iXs][iYs+1]、si[iXs+1][iYs+1],以及对应四个相邻像素权重(2048-u,2048-v),(u,2048-v),(2048-u,v)和(u,v)。根据原始图像四个相邻点的像素值以及对应权重做加权求和可以得到最终的目标图像的像素值di[i][j]。
在本实施例中,所述图像预处理装置的工作原理为:主控模块遍历目标图像中的所有坐标,分别根据当前预处理配置参数中的缩放因子或仿射因子,以及上述阐述的图像缩放或仿射变换的公式得到对应的原始图像中原始坐标周围的四个相邻像素点坐标和四个插值权重参数;此外,目标图像和当前预处理配置参数可以通过参数配置的方式设置到主控模块中,也可以通过指令的方式发送到主控模块中。
进一步地,主控模块将计算出的四个相邻像素点坐标发送到读取模块,使读取模块根据主控模块计算得到的四个相邻源像素点坐标从外部图像存储器中读取到相对应的四个相邻源像素值,然后将读取到的数据写入到缓存模块中进行存储;与此同时,主控模块还将计算出的四个插值权重参数发送到缓存控制模块中,使缓存控制模块通过寄存器流水结构存储所述四个插值权重参数。其中,所述四个插值权重参数作为一组权重参数流水式的寄存在所述缓存控制模块中,所述四个相邻源像素值也作为一组像素值缓存在缓存模块中,所述缓存控制模块从缓存模块中读取一组像素值和相对应的一组权重参数同时发送到插值计算模块中,使所述插值计算模块对这组像素值和相对应的权重参数进行融合计算,得到目标图像中当前像素坐标对应的目标像素值。
在本实施例中,所述反压指令包括异常指令和正常指令,当所述缓存模块的存储容量已满或读取模块中寄存器流水结构存储已满或所述插值计算模块计算进度异常,则所述缓存控制模块发送异常的反压指令到所述主控模块中,使所述主控模块暂停进行下一个像素坐标的相关计算;当所述缓存模块的存储容量未满、寄存器流水结构存储未满且所述插值计算模块计算进度正常时,则所述缓存控制模块发送正常的反压指令到所述主控模块中,使所述主控模块继续进行下一个像素坐标的相关计算,从而实现对数据处理的动态调节。
相比于相关技术,本发明具有如下有益效果:
1、本发明通过主控模块遍历目标图所有像素坐标的同时计算出对应于原始图像中的相邻源像素坐标以及对应插值权重系数,使读取模块根据相邻源像素坐标从外部图像存储器中读取相对应的相邻源像素值暂存在缓存控制模块中;而缓存控制模块对插值权重系数通过寄存器流水的方式进行缓存,且缓存控制模块将自存的插值权重系数以及从缓存模块读取相对应的相邻源像素值发送到插值计算模块进行融合计算,从而得到目标图像中每个像素点对应的目标像素值。因此,本发明采用寄存器流水的方式来缓存插值权重数据,节省了两个查找表式的存储单元,降低了片上存储单元的消耗。
2、由于本发明中相邻源像素值和插值权重参数的数据传输路径不同,通过缓存控制模块对主控模块的反压控制,可以实现在主控模块中的插值权重计算和插值计算模块中的双线性插值计算的动态平衡调节,从而保证了数据处理的效率,同时也保证数据不会丢失。
实施例二
图4所示为本实施例提供的另一种图像预处理装置的结构示意图;如图4所示,在本实施例中,所述读取模块120包括:
读控模块121,与所述主控模块110相连,用于根据所述多个相邻源像素坐标生成读取指令;
DMA控制器122,分别与所述读控模块121和所述外部图像存储器200相连,用于根据所述读取指令,通过DAM的方式从外部图像存储器200中读取相对应的多个相邻源像素值。
进一步地,当所述缩放因子大于或等于预设阈值时,所述读控模块121还用于根据所述多个相邻源像素坐标生成Burst读取指令,使DMA控制器122根据所述Burst读取指令采用AXI Burst读取方式从外部图像存储器200中读取相对应的整行源像素值。
可选地,当所述缩放因子大于或等于预设阈值时,所述读控模块121还用于判断当前相邻源像素坐标中的纵坐标是否与目标纵坐标相同,若判断出与目标纵坐标不相同时再生成相对应的Burst读取指令;其中,所述目标纵坐标为生成上一个Burst读取指令的相邻源像素坐标中的纵坐标。
需要说明的是,通过以上对图像缩放原理的描述可知,在图像放大的场景中,遍历目标图像所有像素坐标时,邻近的几个像素坐标值可能映射到原始图像中同一个像素值,即原始图像素值利用率相对较高,但是如果频繁采用读单点的方式读取这一个像素值无疑是效率低下的,所以在这种情况下本实施例选择采用AXI Burst读取的方式将原始图中某一行的像素连续读取,并存储到缓存模块中,后面如果需要反复用到某个像素值直接从缓存模块中读取数据即可,避免出现频繁占用***总线导致效率低下的问题,从而提高了***总线利用率。
在本实施例中,所述装置还包括:像素值写入模块160,分别与所述插值计算模块150和所述DMA控制器121相连,用于将所述目标像素值通过所述DMA控制器写入到所述外部图像存储器200中相对应的位置。
在本实施例中,所述缓存模块包括Ping-Pong缓存,其内部包含了2组RAM,每组RAM又包含两个深度为128,宽度为32bit的真双端口RAM。
实施例三
图5所示为本实施例提供的一种插值计算模块的结构示意图;如图5所示,所述插值计算模块150包括:
Booth乘法单元151,与所述缓存控制模块140相连,用于对所述多个插值权重参数之间进行乘法运算,得到多个差值运算结果;
FIFO缓存单元152,与所述Booth乘法单元151相连,用于对所述多个差值运算结果进行缓存;
混合运算单元153,与所述FIFO缓存单元152和所述缓存控制模块140相连,用于将所述缓存控制模块140读取的所述多个相邻源像素值和所述多个差值运算结果进行混合运算,得到所述当前像素坐标对应的目标像素值。
需要说明的是,插值计算模块主要完成以下公式所示的计算,其结构框图如图5所示,
for(i=0;i<W;i++){for(j=0;j<H;j++){di[i][j]=(si[iy][ix]*(2048-u)*(2048-v)+si[iy][ix+1]*u*(2048-v)+si[iy+1][ix]*(2048-u)*v+si[iy+1][ix+1]*u*v)>>22}}
其中(2048-u)*(2048-v),u*(2048-v),(2048-u)*v和u*v这四个乘法计算通过Booth乘法单元来完成,可以较好地改善时序,提高计算效率;然后将这四个乘法结果放到一个深度为4,宽度为88的FIFO缓存单元中进行缓存。在原始图像中的多个相邻源像素值从缓存模块中读取回来的时候,同时读取FIFO缓存单元的乘法结果,数据在混合运算单元的前端对齐,进行乘法计算,然后将乘法结果相加,将加法结果移位后截位处理即得到了目标图对应点的目标像素值。
实施例四
在本实施例中,所述主控模块用于根据当前预处理配置参数,获取目标图像中的当前像素坐标对应原始图像中的多个相邻源像素坐标和多个插值权重参数,包括:根据所述当前预处理配置参数中的缩放因子和目标图像中的当前像素坐标得到原始图像的原始坐标,或根据所述当前预处理配置参数中的仿射因子和目标图像中的当前像素坐标得到原始图像的原始坐标;根据所述原始坐标的整数部分,得到与所述原始坐标相邻的多个相邻源像素坐标;根据所述原始坐标的小数部分,得到所述多个插值权重参数。
需要说明的是,主控模块根据缩放因子或仿射因子计算出相邻源像素坐标和插值权重参数的计算过程可以参考上述实施例一中对图像缩放和仿射变换的原理阐述。
图6所示为本实施例提供的一种主控模块的状态机示意图;主控模块的主要功能是分别根据图像缩放或仿射变换的模式,在不同缩放倍数或旋转角度和平移配置下,遍历目标图像的所有像素坐标,计算出原始图像中的原始像素坐标并得到对应的原始像素坐标周围的四个相邻像素点,主控模块的状态机如图6所示,IDLE为初始状态,当配置完成并且收到start指令后,跳入到AR_START状态,然后无条件跳转到AR_Y_CNT状态,当读取模块可以接收读取数据命令时,状态跳转到AR_X_CNT状态,此时对目标图像的横坐标进行计数w_cnt,当计到W-1时,代表当前行的计数完成,状态跳转到AR_Y_CNT状态,同时目标图像的纵坐标h_cnt加1,然后跳转到AR_X_CNT状态,直到w_cnt=W-1&h_cnt=H-1,此时目标图像素坐标遍历完成,状态跳转到IDLE状态。在遍历坐标时会同步产生当前坐标对应原图中的四个相邻源像素坐标,以及4个对应的插值权重参数,像素坐标发送给去读模块以便进行图像数据的读取,4个插值权重参数发送到缓存控制模块进行流水寄存。
需要说明的是,通过变换仿射变换算法后发现,图像缩放和仿射变换的主要流程都是根据遍历目标图像素坐标来计算对应原图像素坐标和插值权重,只是计算方法略有不同,在整个数据路径都是外部图像存储器-读取模块-缓存模块-插值计算模块,则数据路径、缓存和插值计算部分的逻辑及硬件模块可以完全复用。因此本实施例通过巧妙调整仿射变换算法使其与图像缩放有较高相似度,在硬件实现上可以尽可能复用缓存单元和计算资源,与现有技术中将两个算法通过不同模块进行实现相比,大幅降低了芯片面积和功耗。
第二方面,本发明提供一种图像预处理方法,具体包括以下实施例:
实施例五
图7所示为本实施例提供的一种图像预处理方法的流程示意图;如图7所示,本实施例提供的图像预处理方法具体包括以下步骤:
步骤S101,主控模块根据当前预处理配置参数,计算出目标图像中的当前像素坐标对应原始图像中的多个相邻源像素坐标和多个插值权重参数;其中,所述当前预处理配置参数包括缩放因子或仿射因子;
步骤S102,读取模块根据所述多个相邻源像素坐标从外部图像存储器中获取相对应的多个相邻源像素值,并将所述多个相邻源像素值存储在所述缓存模块中;
步骤S103,根据所述差值计算模块的计算进度、所述缓存模块的存储容量或/和寄存器流水结构的存储容量发送相对应的反压指令到所述主控模块,使所述主控模块根据所述反压指令判断是否进行下一个像素坐标的相邻源像素坐标和插值权重参数的计算;
步骤S104,插值计算模块对当前像素坐标对应的所述多个相邻源像素值和所述差值权值参数进行融合计算,得到目标图像中当前像素坐标对应的目标像素值。
在本实施例中,所述缓存控制模块还通过寄存器流水结构存储所述多个差值权重参数,并从所述缓存模块中读取所述多个相邻源像素值。
需要说明的是,本实施例提供的图像预处理方法与上述实施例一中的原理和处理过程相同,此处就不再赘述。
第三方面,本发明提供一种芯片,包括上述实施例一到实施例四任一项所述的图像预处理装置。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (8)

1.一种图像预处理装置,其特征在于,所述装置包括:
主控模块、读控模块、DMA控制器、缓存模块、缓存控制模块和插值计算模块;
所述主控模块用于根据当前预处理配置参数,计算出目标图像中的当前像素坐标对应原始图像中的多个相邻源像素坐标和多个插值权重参数;其中,所述当前预处理配置参数包括缩放因子或仿射因子;
所述读控模块与所述主控模块相连,用于根据所述多个相邻源像素坐标生成读取指令;所述DMA控制器分别与所述读控模块、外部图像存储器和缓存模块相连,用于根据所述读取指令,通过DAM的方式从外部图像存储器中读取相对应的多个相邻源像素值,并将所述多个相邻源像素值存储在所述缓存模块中;其中,当所述缩放因子大于或等于预设阈值时,所述读控模块还用于判断当前相邻源像素坐标中的纵坐标是否与目标纵坐标相同,若判断出与目标纵坐标不相同时再生成相对应的Burst读取指令;所述目标纵坐标为生成上一个Burst读取指令的相邻源像素坐标中的纵坐标;
所述缓存控制模块分别与所述主控模块、所述缓存模块和所述插值计算模块相连,用于通过寄存器流水结构存储所述多个插值权重参数,还用于从所述缓存模块中读取所述多个相邻源像素值;还用于根据所述插值计算模块的计算进度、所述缓存模块的存储容量或/和寄存器流水结构的存储容量发送相对应的反压指令到所述主控模块,使所述主控模块根据所述反压指令判断是否进行下一个像素坐标的相邻源像素坐标和插值权重参数的计算;
所述插值计算模块用于对当前像素坐标对应的所述多个相邻源像素值和所述插值权重参数进行融合计算,得到目标图像中当前像素坐标对应的目标像素值。
2.如权利要求1所述的图像预处理装置,其特征在于,DMA控制器根据所述Burst读取指令采用AXI Burst读取方式从外部图像存储器中读取相对应的整行源像素值。
3.如权利要求1所述的图像预处理装置,其特征在于,所述插值计算模块包括:
Booth乘法单元,与所述缓存控制模块相连,用于对所述多个插值权重参数之间进行乘法运算,得到多个插值运算结果;
FIFO缓存单元,与所述Booth乘法单元相连,用于对所述多个插值运算结果进行缓存;
混合运算单元,与所述FIFO缓存单元和所述缓存控制模块相连,用于将所述缓存控制模块读取的所述多个相邻源像素值和所述多个插值运算结果进行混合运算,得到所述当前像素坐标对应的目标像素值。
4.如权利要求1所述的图像预处理装置,其特征在于,所述装置还包括:
像素值写入模块,分别与所述插值计算模块和所述DMA控制器相连,用于将所述目标像素值通过所述DMA控制器写入到所述外部图像存储器中相对应的位置。
5.如权利要求1-4任一项所述的图像预处理装置,其特征在于,所述缓存模块包括Ping-Pong 缓存。
6.如权利要求1所述的图像预处理装置,其特征在于,所述主控模块用于根据当前预处理配置参数,获取目标图像中的当前像素坐标对应原始图像中的多个相邻源像素坐标和多个插值权重参数,包括:
根据所述当前预处理配置参数中的缩放因子和目标图像中的当前像素坐标得到原始图像的原始坐标,或根据所述当前预处理配置参数中的仿射因子和目标图像中的当前像素坐标得到原始图像的原始坐标;
根据所述原始坐标的整数部分,得到与所述原始坐标相邻的多个相邻源像素坐标;
根据所述原始坐标的小数部分,得到所述多个插值权重参数。
7.一种图像预处理方法,其特征在于,应用于权利要求1-6任一项所述的图像预处理装置,所述方法包括:
主控模块根据当前预处理配置参数,计算出目标图像中的当前像素坐标对应原始图像中的多个相邻源像素坐标和多个插值权重参数;其中,所述当前预处理配置参数包括缩放因子或仿射因子;
读取模块根据所述多个相邻源像素坐标从外部图像存储器中获取相对应的多个相邻源像素值,并将所述多个相邻源像素值存储在所述缓存模块中;
缓存控制模块通过寄存器流水结构存储所述多个插值权重参数,并从所述缓存模块中读取所述多个相邻源像素值;根据所述插值计算模块的计算进度、所述缓存模块的存储容量或/和寄存器流水结构的存储容量发送相对应的反压指令到所述主控模块,使所述主控模块根据所述反压指令判断是否进行下一个像素坐标的相邻源像素坐标和插值权重参数的计算;
插值计算模块对当前像素坐标对应的所述多个相邻源像素值和所述插值权重参数进行融合计算,得到目标图像中当前像素坐标对应的目标像素值。
8.一种芯片,其特征在于,所述芯片包括权利要求1-6任一项所述的图像预处理装置。
CN202211094583.XA 2022-09-08 2022-09-08 一种图像预处理装置、方法和芯片 Active CN115601223B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211094583.XA CN115601223B (zh) 2022-09-08 2022-09-08 一种图像预处理装置、方法和芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211094583.XA CN115601223B (zh) 2022-09-08 2022-09-08 一种图像预处理装置、方法和芯片

Publications (2)

Publication Number Publication Date
CN115601223A CN115601223A (zh) 2023-01-13
CN115601223B true CN115601223B (zh) 2023-08-04

Family

ID=84843463

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211094583.XA Active CN115601223B (zh) 2022-09-08 2022-09-08 一种图像预处理装置、方法和芯片

Country Status (1)

Country Link
CN (1) CN115601223B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117057982B (zh) * 2023-10-11 2024-01-26 北京地平线信息技术有限公司 对图像进行扭曲变换的集成电路及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107851214A (zh) * 2015-07-23 2018-03-27 米雷普里卡技术有限责任公司 针对二维阵列处理器的性能增强
CN114092338A (zh) * 2022-01-20 2022-02-25 长沙金维信息技术有限公司 图像缩放快速计算方法
CN114463178A (zh) * 2022-02-09 2022-05-10 浙江派大芯集成电路有限公司 一种图像处理芯片、方法及设备
CN114707649A (zh) * 2022-03-28 2022-07-05 北京理工大学 一种通用卷积运算装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107851214A (zh) * 2015-07-23 2018-03-27 米雷普里卡技术有限责任公司 针对二维阵列处理器的性能增强
CN114092338A (zh) * 2022-01-20 2022-02-25 长沙金维信息技术有限公司 图像缩放快速计算方法
CN114463178A (zh) * 2022-02-09 2022-05-10 浙江派大芯集成电路有限公司 一种图像处理芯片、方法及设备
CN114707649A (zh) * 2022-03-28 2022-07-05 北京理工大学 一种通用卷积运算装置

Also Published As

Publication number Publication date
CN115601223A (zh) 2023-01-13

Similar Documents

Publication Publication Date Title
JP5437311B2 (ja) 画像補正方法、画像補正システム、角度推定方法、および角度推定装置
US9280810B2 (en) Method and system for correcting a distorted input image
EP2347385A1 (en) Method and system for image resizing based on interpolation enhanced seam operations
EP1347410B1 (en) Edge-based enlargement and interpolation of images
WO2014005783A1 (en) A method and system for correcting a distorted input image
CN109886866B (zh) 一种自适应仿射变换处理方法及装置
CN115601223B (zh) 一种图像预处理装置、方法和芯片
CN102222317A (zh) 一种图像缩放方法和***
KR101140953B1 (ko) 영상 왜곡 보정 장치 및 방법
Zhang et al. Optical flow reusing for high-efficiency space-time video super resolution
US5870105A (en) System and method for local storage of image data during object to image mapping
CN111784733B (zh) 图像处理方法、装置、终端和计算机可读存储介质
CN115631223A (zh) 基于自适应学习和聚合的多视图立体重建方法
CN105513011A (zh) 图像缩放方法
CN112508790B (zh) 一种图像插值方法、装置、设备及介质
CN113538237A (zh) 一种图像拼接***、方法及电子设备
CN114820289B (zh) 一种基于径向对称投影模型的鱼眼图像矫正方法
Tian et al. A fast edge-directed interpolation algorithm
CN106408499B (zh) 用于图像处理的逆向映射表的获取方法及装置
Yang et al. FPGA Implementation of Image Super-Resolution Based on Bicubic Interpolation and CNN
CN116071245B (zh) 图像处理方法、装置及***
CN117057982B (zh) 对图像进行扭曲变换的集成电路及电子设备
CN112053369B (zh) 一种低延时图像去畸变和桶形映射的融合算法
CN117710201A (zh) 图像缩放方法及装置、电子设备和计算机存储介质
CN115187448A (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
GR01 Patent grant
GR01 Patent grant