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

图像处理方法及装置、电子设备、计算机可读介质

文献发布时间:2023-06-19 11:22:42


图像处理方法及装置、电子设备、计算机可读介质

技术领域

本公开实施例涉及计算机技术领域,特别涉及一种图像处理方法、一种图像处理装置、一种电子设备、一种计算机可读介质。

背景技术

在一些相关技术中,用集成电路(IC,Integrated Circuit)对图像进行处理,能够实现对图像的镜像翻转。

但是,在对图像进行镜像处理时,处理效率和资源利用率都较低。

发明内容

本公开实施例提供一种图像处理方法、一种图像处理装置、一种电子设备、一种计算机可读介质。

第一方面,本公开实施例提供一种图像处理方法,包括:

按照预定顺序依次对源图像中的各行像素进行镜像处理以获得目标图像,其中,对所述源图像中任意一行像素进行镜像处理的步骤包括:

从存储器读取该行像素中多个待复制像素的信息并写入堆栈;

读取所述堆栈中的多个所述待复制像素的信息并写入所述存储器。

在一些实施例中,对于所述源图像中任意一行像素,多个所述待复制像素在所述存储器中存储所述源图像的源存储空间中的地址与多个所述待复制像素对应的所述存储器中存储所述目标图像的目标存储空间中的地址非对齐;读取所述堆栈中的多个所述待复制像素的信息并写入所述存储器的步骤包括:

读取所述堆栈中的多个所述待复制像素的信息并写入目标队列,其中,多个所述待复制像素的信息在所述目标队列中的位置与多个所述待复制像素对应的所述目标存储空间中的地址对齐;

将所述目标队列中的多个所述待复制像素的信息写入所述存储器。

在一些实施例中,读取所述堆栈中的多个所述待复制像素的信息并写入目标队列的步骤包括:

根据多个所述待复制像素在所述源存储空间中的地址和多个所述待复制像素对应的所述目标存储空间中的地址,生成无效像素的信息;

将所述无效像素的信息和多个所述待复制像素的信息写入所述目标队列,以使多个所述待复制像素的信息在所述目标队列中的位置与多个所述待复制像素对应的所述目标存储空间中的地址对齐。

在一些实施例中,所述无效像素的信息对应的所述目标存储空间中的地址为无效地址;将所述目标队列中的多个所述待复制像素的信息写入所述存储器的步骤包括:

屏蔽对所述无效地址的写入访问;

根据多个所述待复制像素对应的所述目标存储空间中的地址,将所述目标队列中的多个所述待复制像素的信息写入所述目标存储空间。

在一些实施例中,将所述无效像素的信息和多个所述待复制像素的信息写入所述目标队列的步骤包括:

根据所述存储器的位宽和所述待复制像素的信息的长度,确定目标顺序;

将所述无效像素的信息和多个所述待复制像素的信息按照目标顺序写入所述目标队列。

在一些实施例中,所述存储器的位宽为128比特,所述待复制像素的信息的长度为4字节。

在一些实施例中,对所述源图像中任意一行像素进行镜像处理时,申请一组对所述存储器的读写访问。

第二方面,本公开实施例提供一种图像处理装置,包括处理模块、存储器、堆栈;

所述处理模块用于按照预定顺序依次对源图像中的各行像素进行镜像处理以获得目标图像,其中,所述处理模块对所述源图像中任意一行像素进行镜像处理包括:

所述处理模块从所述存储器读取该行像素中多个待复制像素的信息并写入所述堆栈;

所述处理模块读取所述堆栈中的多个所述待复制像素的信息并写入所述存储器。

第三方面,本公开实施例提供一种电子设备,其包括:

一个或多个处理器;

存储器,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本公开实施例第一方面所述的任意一种图像处理方法;

一个或多个I/O接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互。

第四方面,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开实施例第一方面所述的任意一种图像处理方法。

本公开实施例中,以源图像中的行为单位从存储器中读取源图像中任意一行中的全部待复制像素的信息,并通过堆栈,按照先进后出原则将堆栈中的多个待复制像素信息写入存储器中存储目标图像的存储空间,得到的目标图像中对应多个待复制像素的部分为源图像中对应多个待复制像素的部分的镜像,从而实现了对源图像的镜像处理;以行为单位进行操作极大的减少了对存储器的访问次数,节约了存储器的带宽,提高了存储和计算资源的利用率,提升了图像处理效率。

附图说明

附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其它特征和优点对本领域技术人员将变得更加显而易见,在附图中:

图1是通过bitblit映射方式实现图像镜像翻转的示意图;

图2是本公开实施例中一种图像处理方法的流程图;

图3是本公开实施例中对源图像中任意一行像素进行镜像处理的示意图;

图4是本公开实施例中另一种图像处理方法中部分步骤的流程图;

图5是本公开实施例中又一种图像处理方法中部分步骤的流程图;

图6是本公开实施例中对像素位置的对齐操作的示意图;

图7是本公开实施例中再一种图像处理方法中部分步骤的流程图;

图8是本公开实施例中再一种图像处理方法中部分步骤的流程图;

图9是本公开实施例中一种图像处理装置的组成框图;

图10是本公开实施例中一种电子设备的组成框图;

图11是本公开实施例中一种计算机可读介质的组成框图。

具体实施方式

为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开提供的图像处理方法、图像处理装置、电子设备、计算机可读介质进行详细描述。

在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。

在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。

如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。

本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。

除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。

经本公开的发明人研究发现,在一些相关技术中,用verilog实现图像镜像翻转时,主要通过单像素读写的比特位块传输(bitblit)映射方式。如图1所示,源图像共有n行像素,每一行中包括m个像素。以源图像中第1行为例,在对源图像进行镜像处理得到目标图像时,需要:从双倍速率同步动态随机存储器(DDR SDRAM,Double Data Rate SynchronousDynamic Random Access Memory)中读取第1行中的第1个像素的像素值,作为目标图像第1行中的第m个像素的像素值写入DDR SDRAM中;从DDR SDRAM中读取第1行中的第2个像素的像素值,作为目标图像第1行中的第m-1个像素的像素值写入DDR SDRAM;……;从DDR SDRAM中读取第1行中的第m个像素的像素值,作为目标图像第1行中的第1个像素的像素值写入DDR SDRAM中。即,需要以像素为单位不停地对DDR SDRAM进行访问,严重影响其他程序单元(module)对DDR SDRAM的访问,造成DDR SDRAM带宽不足。而且以像素为单位重复对DDRSDRAM进行访问,会导致存储资源和计算资源的浪费,且耗时巨大。

有鉴于此,第一方面,参照图2,本公开实施例提供一种图像处理方法,包括:

在步骤S100中,按照预定顺序依次对源图像中的各行像素进行镜像处理以获得目标图像,其中,对所述源图像中任意一行像素进行镜像处理的步骤包括:

在步骤S110中,从存储器读取该行像素中多个待复制像素的信息并写入堆栈;

在步骤S120中,读取所述堆栈中的多个所述待复制像素的信息并写入所述存储器。

需要说明的是,堆栈中的数据严格按照先进后出的原则进行存储。图3为本公开实施例中对源图像中任意一行像素进行镜像处理的示意图。如图3所示,源图像中的任意一行中多个待复制像素包括第1像素、第2像素、……、第m像素,从存储器中依次读取第1像素、第2像素、……、第m像素并写入堆栈,然后从堆栈中根据先进后出的原则,按照第m像素、第m-1像素、……、第1像素的顺序读取各个像素的信息,并从目标图像在存储器中的存储空间的首地址开始,依次写入存储器中。生成的目标图像中,第1像素对应源图像中第m像素的信息,第2像素对应源图像中第m-1像素的信息,……,第m像素对应源图像中第1个像素的信息。即完成对源图像的镜像翻转,生成的目标图像是源图像的镜像。

在本公开实施例中,以源图像中的行为单位进行操作,即对源图像中的任意一行像素进行镜像处理时,在步骤S110中,通过对存储器的一次访问,读取该行中的全部待复制像素的信息;在步骤S120中,通过对存储器的一次访问,将堆栈中的多个待复制像素的信息写入存储器。

需要说明的是,对于源图像中的任意一行像素,多个待复制像素可以包括该行中的所有像素,也可以包括该行中的部分像素。本公开实施例对此不做特殊限定。当多个待复制像素包括该行中的所有像素时,通过步骤S100将源图像整体进行镜像处理,得到的目标图像为源图像的镜像;当多个待复制像素包括该行中的部分像素时,通过步骤S100将源图像中对应各行待复制像素的部分做镜像处理,得到的目标图像中,对应多个待复制像素的部分为源图像中对应多个待复制像素的部分的镜像。

本公开实施例提供的图像处理方法中,以源图像中的行为单位从存储器中读取源图像中任意一行中的全部待复制像素的信息,并通过堆栈,按照先进后出原则将源图像中任意一行中的待复制像素信息写入存储器中存储目标图像的存储空间,得到的目标图像中对应多个待复制像素的部分为源图像中对应多个待复制像素的部分的镜像,从而实现了对源图像的镜像处理;以行为单位进行操作极大的减少了对存储器的访问次数,节约了存储器的带宽,提高了存储和计算资源的利用率,提升了图像处理效率。

在本公开实施例中,通过步骤S100对源图像进行镜像处理时,还能够在地址非对齐时对像素的位置进行对齐操作。例如,在源图像中任意一行像素中,从第二个像素开始复制,而在目标图像中,从第三个像素开始覆盖,则表示地址非对齐;将源图像中任意一行像素中,从第二个像素开始进行镜像处理,并用镜像处理后的像素从目标图像中的第三个像素开始进行覆盖,则为对像素位置的对齐操作。

在本公开实施例中,在地址非对齐时,通过先进先出的队列实现像素位置的对齐操作。

相应地,参照图4,在一些实施例中,对于所述源图像中任意一行像素,多个所述待复制像素在所述存储器中存储所述源图像的源存储空间中的地址与多个所述待复制像素对应的所述存储器中存储所述目标图像的目标存储空间中的地址非对齐;步骤S120包括:

在步骤S121中,读取所述堆栈中的多个所述待复制像素的信息并写入目标队列,其中,多个所述待复制像素的信息在所述目标队列中的位置与多个所述待复制像素对应的所述目标存储空间中的地址对齐;

在步骤S122中,将所述目标队列中的多个所述待复制像素的信息写入所述存储器。

在本公开实施例中,通过在目标队列中添加无效像素的信息,使得多个待复制像素的信息在目标队列中的位置与多个待复制像素对应的所述目标存储空间中的地址对齐。

相应地,参照图5,在一些实施例中,步骤S121包括:

在步骤S121a中,根据多个所述待复制像素在所述源存储空间中的地址和多个所述待复制像素对应的所述目标存储空间中的地址,生成无效像素的信息;

在步骤S121b中,将所述无效像素的信息和多个所述待复制像素的信息写入所述目标队列,以使多个所述待复制像素的信息在所述目标队列中的位置与多个所述待复制像素对应的所述目标存储空间中的地址对齐。

图6为地址非对齐时对像素位置的对齐操作的一种实施方式的示意图。在图6中,源图像中的任意一行中多个待复制像素包括第1像素、第2像素、……、第m像素。源图像中的第1像素的地址为‘h0004’,目标像素中的第1像素的地址为‘h1008’,即地址非对齐。将两个无效像素的信息写入目标队列,然后从存储器中依次读取源图像中的第1像素、第2像素、……、第m像素并写入堆栈,然后从堆栈中根据先进后出的原则,按照第m像素、第m-1像素、……、第1像素的顺序读取各个像素的信息,并写入目标队列,目标队列中第1像素对应源图像中第m像素的信息,第2像素对应源图像中第m-1像素的信息,……,第m像素对应源图像中第1个像素的信息;且目标队列中,对应源图像中第m像素的第1像素为目标队列中的第三个像素,即与目标图像中第1像素对齐。根据先入先出的原则,将目标队列中的第1像素、第2像素、……、第m像素写入存储器,覆盖目标图像中的第1像素、第2像素、……、第m像素。即实现对像素位置的对齐操作。

在本公开实施例中,无效像素并不覆盖目标图像中的像素。

相应地,参照图7,在一些实施例中,所述无效像素的信息对应的所述目标存储空间中的地址为无效地址;步骤S122包括:

在步骤S122a中,屏蔽对所述无效地址的写入访问;

在步骤S122b中,根据多个所述待复制像素对应的所述目标存储空间中的地址,将所述目标队列中的多个所述待复制像素的信息写入所述目标存储空间。

在本公开实施例中,对存储器的一次操作中,从存储器中读取或向存储器中写入的像素的信息的数量=存储器的位宽/像素的信息的长度。其中,存储器的位宽是指一个时钟周期内所能传送的数据的位数。例如,存储器的位宽为128比特,像素的信息的长度为4字节,则对存储器的一次操作中,从存储器中读取或向存储器中写入4个像素。

在本公开实施例中,为实现对像素位置的对齐操作,在将无效像素的信息和多个待复制像素的信息写入目标队列时,需要以存储器一次操作中所能传送的像素数量为单位进行排序,例如,以4个像素为单位进行排序,然后将排序后的无效像素的信息和多个待复制像素的信息写入目标队列。

相应地,参照图8,在一些实施例中,步骤S121b包括:

在步骤S121b1中,根据所述存储器的位宽和所述待复制像素的信息的长度,确定目标顺序;

在步骤S121b2中,将所述无效像素的信息和多个所述待复制像素的信息按照目标顺序写入所述目标队列。

本公开实施例对存储器的位宽和待复制像素的信息的长度不做特殊限定。在一些实施例中,所述存储器的位宽为128比特,所述待复制像素的信息的长度为4字节。

在一些实施例中,对所述源图像中任意一行像素进行镜像处理时,申请一组对所述存储器的读写访问。

需要说明的是,一组对存储器的读写访问包括对存储器的一次读取和一次访问。

第二方面,参照图9,本公开实施例提供一种图像处理装置,包括处理模块101、存储器102、堆栈103;

所述处理模块101用于按照预定顺序依次对源图像中的各行像素进行镜像处理以获得目标图像,其中,所述处理模块101对所述源图像中任意一行像素进行镜像处理包括:

所述处理模块101从所述存储器102读取该行像素中多个待复制像素的信息并写入所述堆栈103;

所述处理模块101读取所述堆栈103中的多个所述待复制像素的信息并写入所述存储器102。

本公开实施例提供的图像处理装置用于执行本公开实施例第一方面所述的图像处理方法,上文已经对图像处理方法进行了详细介绍,此处不再赘述。

第三方面,参照图10,本公开实施例提供一种电子设备,其包括:

一个或多个处理器201;

存储器202,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本公开实施例第一方面所述的任意一种图像处理方法;

一个或多个I/O接口203,连接在处理器与存储器之间,配置为实现处理器与存储器的信息交互。

其中,处理器201为具有数据处理能力的器件,其包括但不限于中央处理器(CPU)等;存储器202为具有数据存储能力的器件,其包括但不限于随机存取存储器(RAM,更具体如SDRAM、DDR等)、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、闪存(FLASH);I/O接口(读写接口)203连接在处理器201与存储器202间,能实现处理器201与存储器202的信息交互,其包括但不限于数据总线(Bus)等。

在一些实施例中,处理器201、存储器202和I/O接口203通过总线204相互连接,进而与计算设备的其它组件连接。

第四方面,参照图11,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开实施例第一方面所述的任意一种图像处理方法。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。

本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其它实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。

相关技术
  • 图像处理方法、图像处理装置、电子设备和计算机可读存储介质
  • 图像处理方法、图像处理装置、电子设备和计算机可读存储介质
技术分类

06120112899158