掌桥专利:专业的专利平台
掌桥专利
首页

一种图像处理组件和芯片、图像处理方法和存储介质

文献发布时间:2023-06-19 12:19:35


一种图像处理组件和芯片、图像处理方法和存储介质

技术领域

本申请涉及图像处理技术领域,具体而言,涉及一种图像处理组件和芯片、图像处理方法和存储介质。

背景技术

目前仿射变换函数即warp函数常应用于传统视觉领域或AI视觉领域的算法开发中,而在应用该函数时目前一般采用软件方法实现,而采用软件方法实现该仿射变换函数所占用cpu资源较多,造成cpu负载过大。

发明内容

本申请实施例的目的在于提供一种图像处理组件和芯片、图像处理方法和存储介质,用以解决上述问题。

第一方面,本发明提供一种图像处理组件,所述图像处理组件包括地址产生单元、源图像读取单元以及插值计算单元,所述地址产生单元与所述源图像读取单元连接,所述源图像读取单元与所述插值计算单元连接;所述地址产生单元,用于根据目标像素点的坐标计算目标像素点在源图像中的源点坐标;根据源点坐标确定源点坐标对应的多个邻域整数坐标;根据源点坐标对应的多个邻域整数坐标确定每一邻域整数坐标在存储器中的读取地址,并将邻域整数坐标在存储器中的读取地址发送给所述源图像读取单元;所述源图像读取单元,用于根据每一邻域整数坐标在存储器中的读取地址读取获得每一邻域整数坐标对应的像素值,并将每一邻域整数坐标对应的像素值发送给所述插值计算单元;所述插值计算单元,用于根据每一邻域整数坐标对应的像素值进行插值计算得到所述目标像素点在所述源图像对应的仿射图像中的像素值。

在上述设计的图像处理组件中,通过实体硬件地址产生单元、源图像读取单元以及插值计算单元的配合,可以基于目标像素点的坐标计算查询得出目标像素点在源图像对应的仿射图像中的像素值进而实现目标像素点的仿射变换,通过这样的方式当地址产生单元接收仿射区域中的每一目标像素点后即可得到仿射区域中每一目标像素点对应的像素值,进而即可得到仿射区域对应的仿射图像;由此可以得出,本申请方案采用纯硬件方式完成warp计算,进而使得warp无需CPU软件执行,降低CPU的资源占用率。

在第一方面的可选实施方式中,所述图像处理组件还包括写入单元,所述写入单元分别与所述地址产生单元和所述插值计算单元连接,所述地址产生单元,还用于根据目标像素点的坐标生成所述目标像素点在存储器中的写入地址,并将所述写入地址发送给所述写入单元;所述写入单元,用于将所述目标像素点在所述源图像对应的仿射图像中的像素值写入在所述目标像素点对应的写入地址中。

在第一方面的可选实施方式中,所述源图像读取单元包括多个读取线程,所述源图像读取单元,用于利用多个读取线程读取多个邻域整数坐标对应的多个像素值,其中,每一读取线程对应读取一邻域整数坐标对应的像素值。

在上述设计的实施方式中,通过多读取线程对多个邻域整数坐标对应的像素值进行同时读取,加快图像处理组件的读取处理速度。

在第一方面的可选实施方式中,所述图像处理组件还包括缓存单元,所述缓存单元设置在所述源图像读取单元和所述插值计算单元之间;所述缓存单元,用于存储所述源图像读取单元读取的邻域整数坐标对应的像素值。

在第一方面的可选实施方式中,所述地址产生单元还与所述缓存单元连接;所述地址产生单元,还用于判断所述缓存单元中是否存在多个邻域整数坐标中的至少一个邻域整数坐标;若存在,则向所述插值计算单元发送所述缓存单元中的邻域整数坐标对应的像素值,并向所述源图像读取单元发送不存在于所述缓存单元中的邻域整数坐标对应的读取地址;若不存在,则执行根据源点坐标对应的多个邻域整数坐标确定邻域整数坐标在存储器中的读取地址,并将邻域整数坐标在存储器中的读取地址发送给所述源图像读取单元的步骤。

在上述设计的实施方式中,通过缓存单元将邻域整数坐标对应的像素值进行缓存,使得在图像处理组件处理的多个目标像素点对应的邻域整数坐标重复时可直接从缓存单元中读取即可,进而节约生成读取地址和从存储器中读取的时间,加快图像处理组件的处理速度。

第二方面,本发明提供一种图像处理方法,所述方法应用于前述实施方式中任一项所述的图像处理组件,所述方法包括:根据目标像素点的坐标计算目标像素点在源图像中的源点坐标;根据源点坐标确定源点坐标对应的多个邻域整数坐标;根据源点坐标对应的多个邻域整数坐标确定每一邻域整数坐标在存储器中的读取地址;根据每一邻域整数坐标在存储器中的读取地址读取获得每一邻域整数坐标对应的像素值;根据每一邻域整数坐标对应的像素值进行插值计算得到所述目标像素点在所述源图像对应的仿射图像中的像素值。

在上述设计的图像处理方法中,通过实体图像处理组件基于目标像素点的坐标计算查询得出目标像素点在源图像对应的仿射图像中的像素值进而实现目标像素点的仿射变换,通过这样的方式当地址产生单元接收仿射区域中的每一目标像素点后即可得到仿射区域中每一目标像素点对应的像素值,进而即可得到仿射区域对应的仿射图像;由此可以得出,本申请方案采用纯硬件方式完成warp计算,进而使得warp无需CPU软件执行,降低CPU的资源占用率。

在第二方面的可选实施方式中,在所述根据目标像素点的坐标计算目标像素点在源图像中的源点坐标之前,所述方法还包括:获取源图像对应的仿射图像中的目标区域,所述目标区域通过源图像中的多边形区域仿射变换后得到;依次读取所述目标区域中的每一像素点的坐标以获得每一所述目标像素点的坐标。

在第二方面的可选实施方式中,在所述根据每一邻域整数坐标对应的像素值进行插值计算得到所述目标像素点在所述源图像对应的仿射图像中的像素值之后,所述方法还包括:根据所述目标像素点的坐标生成所述目标像素点的对应的写入地址;将所述目标像素点在所述源图像对应的仿射图像中的像素值写在所述目标像素点对应的写入地址中。

第三方面,本发明提供一种图像处理装置,该装置包括计算模块,用于根据目标像素点的坐标计算目标像素点在源图像中的源点坐标;确定模块,用于根据源点坐标确定源点坐标对应的多个邻域整数坐标;以及,根据源点坐标对应的多个邻域整数坐标确定每一邻域整数坐标在存储器中的读取地址;读取模块,用于根据每一邻域整数坐标在存储器中的读取地址读取获得每一邻域整数坐标对应的像素值;插值计算模块,用于根据每一邻域整数坐标对应的像素值进行插值计算得到所述目标像素点在所述源图像对应的仿射图像中的像素值。

在上述的图像处理装置中,通过实体图像处理组件基于目标像素点的坐标计算查询得出目标像素点在源图像对应的仿射图像中的像素值进而实现目标像素点的仿射变换,通过这样的方式当地址产生单元接收仿射区域中的每一目标像素点后即可得到仿射区域中每一目标像素点对应的像素值,进而即可得到仿射区域对应的仿射图像;由此可以得出,本申请方案采用纯硬件方式完成warp计算,进而使得warp无需CPU软件执行,降低CPU的资源占用率。

在第三方面的可选实施方式中,所述装置还包括获取模块,用于获取源图像对应的仿射图像中的目标区域,所述目标区域通过源图像中的多边形区域仿射变换后得到;所述读取模块,还用于依次读取所述目标区域中的每一像素点的坐标以获得每一所述目标像素点的坐标。

在第三方面的可选实施方式中,所述装置还包括生成模块,用于根据所述目标像素点的坐标生成所述目标像素点的对应的写入地址;写入模块,用于将所述目标像素点在所述源图像对应的仿射图像中的像素值写在所述目标像素点对应的写入地址中。

第四方面,本发明提供一种芯片,所述芯片包括第一方面任一可选实施方式中所述的数据处理组件。

第五方面,实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时执行第二方面、第二方面的任一可选的实现方式中的所述方法。

第六方面,实施例提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时执行第二方面、第二方面的任一可选的实现方式中的所述方法。

第七方面,实施例提供了一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行第二方面、第二方面的任一可选的实现方式中的所述方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的图像处理组件的第一结构示意图;

图2为本申请实施例提供的源图像和仿射图像的示例图;

图3为本申请实施例提供的图像处理组件的第二结构示意图;

图4为本申请实施例提供的图像处理组件的第三结构示意图;

图5为本申请实施例提供的图像处理组件的第四结构示意图;

图6为本申请实施例提供的芯片的结构示意图;

图7为本申请实施例提供的图像处理方法的第一流程图;

图8为本申请实施例提供的图像处理方法的第二流程图;

图9为本申请实施例提供的图像处理方法的第三流程图;

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

图11为本申请实施例提供的电子设备的结构示意图。

图标:1-图像处理组件;4-芯片;10-地址产生单元;20-源图像读取单元;201-读取线程;30-插值计算单元;40-写入单元;50-缓存单元;100-计算模块;110-确定模块;120-读取模块;130-插值计算模块;140-获取模块;150-生成模块;160-写入模块;11-电子设备;1101-处理器;1102-存储器;1103-通信总线。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

本申请实施例提供一种图像处理组件,该图像处理组件采用纯硬件方式完成warp计算,进而使得warp无需CPU软件执行,降低CPU的资源占用率,如图1所示,该图像处理组件1包括地址产生单元10、源图像读取单元20以及插值计算单元30,该地址产生单元10与源图像读取单元20连接,该源图像读取单元20与插值计算单元30连接。

上述结构图像处理组件,地址产生单元10可接收外部发送的目标像素点的坐标,根据目标像素点的坐标计算目标像素点对应源图像中的源点坐标;然后根据源点坐标确定源点坐标对应的多个邻域整数坐标,根据源点坐标对应的多个邻域坐标确定每一邻域整数坐标在存储器中的读取地址,将该读取地址发送给源图像读取单元20。其中,目标像素点可为源图像仿射变换后的仿射图像中的任意一个像素点;如图2的示例,该源图像为图2左边的具有不规则四边形的图像,该仿射图像为右边的具有规则矩形的图像,该具有不规则的四边形的图像可通过仿射变换转换成右边的具有规则矩形的图像,其中,不规则的四边形区域中的每一点可称为源点,规则矩形区域可为目标区域,其中的每一点可为目标像素点,本方案中的目标像素点可为仿射图像中的任意一点,地址产生单元10可依次读取仿射图像中的每一目标像素点进而依次进行处理,目标像素点的坐标计算对应的源点坐标的方式可采用现有的warp转换计算公式,例如,采用如下转换计算公式:

其中,dst,y表示目标像素点的坐标,

源图像读取单元20根据地址产生单元10发送的每一邻域整数坐标的读取地址在存储器中读取每一邻域整数坐标对应的像素值,其中,存储器具有多个读取地址,每一读取地址对应存储有一像素值,每一读取地址根据一个邻域整数坐标的坐标值计算生成。源图像读取单元20读取出每一邻域整数坐标对应的像素值之后,将读取出的数据传输给插值计算单元30。

插值计算单元30根据多个邻域整数坐标分别对应的像素值进行插值计算,进而得到该目标像素点在源图像对应的仿射图像中的像素值。

上述设计的图像处理组件,通过实体硬件地址产生单元、源图像读取单元以及插值计算单元的配合,可以基于目标像素点的坐标计算查询得出目标像素点在源图像对应的仿射图像中的像素值进而实现目标像素点的仿射变换,通过这样的方式当地址产生单元接收仿射区域中的每一目标像素点后即可得到仿射区域中每一目标像素点对应的像素值,进而即可得到仿射区域对应的仿射图像;由此可以得出,本申请方案采用纯硬件方式完成warp计算,进而使得warp无需CPU软件执行,降低CPU的资源占用率。

在本实施例的可选实施方式中,如图3所示,该图像处理组件1还包括写入单元40,该写入单元40分别与地址产生单元10和插值计算单元30连接,该地址产生单元10还用于根据目标像素点的坐标生成目标像素点在存储器中的写入地址,其中,写入地址可根据目标像素点的坐标值计算生成,不同坐标值的目标像素点对应的写入地址不同。地址产生单元10生成目标像素点在存储器中的写入地址后可将该写入地址发送给写入单元40,写入单元40在获得插值计算单元30计算出该目标像素点对应的像素值后,将该目标像素点对应的像素值在存储器对应的写入地址中写入。

在本实施例的可选实施方式中,如图4所示,该图像处理组件1还包括缓存单元50,该源图像读取单元20通过该缓存单元50与插值计算单元30连接,该缓存单元50用于存储源图像读取单元20读取的邻域整数坐标对应的像素值。作为一种可能的实施方式,该缓存单元50存储的邻域整数坐标对应的像素值可实时更新,例如,当接收到一个或一批源图像读取单元20传输的像素值之后可将上一次存储的像素值进行删除。

在本实施例的可选实施方式中,当图像处理组件处理多个目标像素点时,这多个目标像素点对应的源点坐标所对应的邻域整数坐标可能存在重复的情况,在这样的场景下,本方案可采用如下方式来节约读取时间和处理速度,该缓存单元50还可以与地址产生单元10连接,该地址产生单元10在得到源点坐标对应的多个邻域整数坐标后,可判断缓存单元中是否存在多个邻域整数坐标中的任何一个邻域整数坐标,若存在,那么存在的邻域整数坐标的像素值则不用进行读取,可直接通过缓存单元50传输给插值计算单元30;不存在于缓存单元50中的邻域整数坐标则生成对应的读取地址,进而通过源图像读取单元20从存储器中进行读取获得对应的像素值。

在本实施例的可选实施方式中,如图5所示,该源图像读取单元20可包括多个读取线程201,源图像读取单元20在得到地址产生单元10发送的每一邻域整数坐标对应的读取地址后,可通过多个读取线程201来读取这多个读取地址,进而得到多个邻域整数坐标对应的多个像素值,例如,当邻域整数坐标为4个,对应的读取地址即为4个,那么,源图像读取单元20中的读取线程也可以有4个,进而每一个读取线程基于一个读取地址读取对应的像素值,得到4个邻域整数坐标分别对应的像素值,通过这样多个读取线程的方式可以加快源图像读取单元20的读取速度。

在本实施例的可选实施方式中,如图6所示,前述任一实施方式的图像处理组件1可设置在芯片4中。

本申请提供一种图像处理方法,该图像处理方法应用于前述的图像处理组件,如图7所示,该方法包括如下步骤:

步骤S700:根据目标像素点的坐标计算目标像素点在源图像中的源点坐标。

步骤S710:根据源点坐标确定源点坐标对应的多个邻域整数坐标。

步骤S720:根据源点坐标对应的多个邻域整数坐标确定每一邻域整数坐标在存储器中的读取地址;

步骤S730:根据每一邻域整数坐标在存储器中的读取地址读取获得每一邻域整数坐标对应的像素值。

步骤S740:根据每一邻域整数坐标对应的像素值进行插值计算得到目标像素点在源图像对应的仿射图像中的像素值。

上述步骤S700~步骤S720的过程与前述地址产生单元的执行过程一致,上述步骤S730的过程与前述源图像读取单元的执行过程一致,上述步骤S740的过程与前述插值计算单元的执行过程一致,在这里不再赘述。

上述设计的图像处理方法,通过实体图像处理组件基于目标像素点的坐标计算查询得出目标像素点在源图像对应的仿射图像中的像素值进而实现目标像素点的仿射变换,通过这样的方式当地址产生单元接收仿射区域中的每一目标像素点后即可得到仿射区域中每一目标像素点对应的像素值,进而即可得到仿射区域对应的仿射图像;由此可以得出,本申请方案采用纯硬件方式完成warp计算,进而使得warp无需CPU软件执行,降低CPU的资源占用率。

在本实施例的可选实施方式中,如图8所示,在步骤S740之后,本申请方案还可以包括如下步骤:

步骤S800:根据目标像素点的坐标生成目标像素点的对应的写入地址。

步骤S810:将目标像素点在源图像对应的仿射图像中的像素值写在目标像素点对应的写入地址中。

上述步骤S800与步骤S810与前述写入单元的执行过程一致,在这里不再赘述。这里需要说明的是,生成目标像素点的写入地址的时机可在得到目标像素点在源图像对应的仿射图像中的像素值之后,根据目标像素点的坐标进行生成;还可以在执行步骤S700获得目标像素点的坐标后即可生成对应的写入地址。

在本实施例的可选实施方式中,如图9所示,在步骤S700之前,本申请方案可以通过如下步骤来得到待处理的目标像素点,包括:

步骤S900:获取源图像对应的仿射图像中的目标区域。

步骤S910:依次读取目标区域中的每一像素点的坐标以获得每一目标像素点的坐标。

上述步骤在前述对图2和地址产生单元的描述中已经进行了描述,在这里不再赘述。

图10出示了本申请提供的图像处理装置的示意性结构框图,应理解,该装置与上述图7至图9中执行的方法实施例对应,能够执行前述的方法涉及的步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operatingsystem,OS)中的软件功能模块。具体地,该装置包括:计算模块100,用于根据目标像素点的坐标计算目标像素点在源图像中的源点坐标;确定模块110,用于根据源点坐标确定源点坐标对应的多个邻域整数坐标;以及,根据源点坐标对应的多个邻域整数坐标确定每一邻域整数坐标在存储器中的读取地址;读取模块120,用于根据每一邻域整数坐标在存储器中的读取地址读取获得每一邻域整数坐标对应的像素值;插值计算模块130,用于根据每一邻域整数坐标对应的像素值进行插值计算得到目标像素点在源图像对应的仿射图像中的像素值。

在上述设计的图像处理装置中,通过实体图像处理组件基于目标像素点的坐标计算查询得出目标像素点在源图像对应的仿射图像中的像素值进而实现目标像素点的仿射变换,通过这样的方式当地址产生单元接收仿射区域中的每一目标像素点后即可得到仿射区域中每一目标像素点对应的像素值,进而即可得到仿射区域对应的仿射图像;由此可以得出,本申请方案采用纯硬件方式完成warp计算,进而使得warp无需CPU软件执行,降低CPU的资源占用率。

在本实施例的可选实施方式中,该装置还包括获取模块140,用于获取源图像对应的仿射图像中的目标区域,该目标区域通过源图像中的多边形区域仿射变换后得到;读取模块120,还用于依次读取目标区域中的每一像素点的坐标以获得每一目标像素点的坐标。

在本实施例的可选实施方式中,该装置还包括生成模块150,用于根据目标像素点的坐标生成目标像素点的对应的写入地址;写入模块160,用于将目标像素点在源图像对应的仿射图像中的像素值写在目标像素点对应的写入地址中。

如图11所示,本申请提供一种电子设备11,包括:处理器1101和存储器1102,处理器1101和存储器1102通过通信总线1103和/或其他形式的连接机构(未标出)互连并相互通讯,存储器1102存储有处理器1101可执行的计算机程序,当计算设备运行时,处理器1101执行该计算机程序,以执行时执行前述任一可选的实现方式中的方法,例如步骤S700至步骤S740:根据目标像素点的坐标计算目标像素点在源图像中的源点坐标;根据源点坐标确定源点坐标对应的多个邻域整数坐标;根据源点坐标对应的多个邻域整数坐标确定每一邻域整数坐标在存储器中的读取地址;根据每一邻域整数坐标在存储器中的读取地址读取获得每一邻域整数坐标对应的像素值;根据每一邻域整数坐标对应的像素值进行插值计算得到目标像素点在源图像对应的仿射图像中的像素值。

本申请提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前述任一可选的实现方式中的方法。

其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-OnlyMemory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。

本申请提供一种计算机程序产品,该计算机程序产品在计算机上运行时,使得计算机执行前述任一可选的实现方式中的所述方法。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种图像处理组件和芯片、图像处理方法和存储介质
  • 图像处理方法、装置、图像处理芯片、摄像组件及飞行器
技术分类

06120113254304