提高图像获取速度的方法和装置的制造方法

xiaoxiao2021-2-23  123

提高图像获取速度的方法和装置的制造方法
【技术领域】
[0001]本发明涉及图像获取领域,特别是指一种提高图像获取速度的方法和装置。
【背景技术】
[0002]随着社会的发展,视频监控、图像采集等技术得到了飞速的发展,并且被广泛应用到了各个行业之中。实现视频监控、图像采集的电子电路包括图像传感器、图像采集模块、图像处理模块和处理器,其中,图像传感器也称感光元件,它能够感知光学信号并将其转换为电子信号,然后输出给图像采集模块,图像采集模块是图像处理的前提,即对转换后的电子信号进行预处理,如电子信号进行A/D模数转换等,图像采集模块再将经过预处理后的电子信号输出给图像处理模块,图像处理模块对经过预处理的电子信号进行一定的处理之后供处理器使用,图像处理模块对图像的处理包括:格式的转换、图像的裁剪、图像的渲染等等。
[0003]由于图像处理模块与处理器之间需要数据缓冲,现有技术中,首先在处理器的内存中预先分配好图像处理模块的图像输出地址(缓存1)和处理器的图像获取地址(缓存2),获取图像的方法为:将图像处理模块的图像输出地址设置为缓存1,处理器实时检测图像处理模块,判断一帧图像数据是否传输完成,当传输完成后,处理器将缓存1中的数据拷贝到缓存2中,供处理器使用,而缓存1继续用来存放新的图像处理模块处理完成的图像。
[0004]现有技术中的获取图像的方法,以图像传感器输出图像大小为640x480为例,如果图像格式为YUV格式的,那一帧图像总的数据量为640x480x2 = 614400,单位字节;如果图像格式为RGB格式的话,一帧图像总的数据量将是上面的一倍,为640x480x4 = 1228800,单位字节。如果图像传感器输出图像大小更大的话(如= 1200x800),那一帧图像总的数据量又会增大很多,所以对图像数据的拷贝非常的耗时,同时增加了处理器的系统消耗。
[0005]现有技术存在的问题是:
[0006]1.图像采集速度慢、效率不高,主要原因是图像数据经过了一个“拷贝”的过程,才能被处理器所用到,一般图像传感器所获得的一帧图像的数据量非常的大,拷贝的过程非常的耗时;
[0007]2.图像采集增加了处理器的系统消耗:在拷贝数据的时候,处理器处于高强度运行状态,造成系统的消耗非常的高。

【发明内容】

[0008]本发明要解决的技术问题是提供一种提高图像获取速度的方法和装置,它能够提高图像获取速度、降低处理器的系统消耗。
[0009]为解决上述技术问题,本发明提供技术方案如下:
[0010]—种提高图像获取速度的方法,用于电子电路,所述电子电路包括图像传感器、图像采集模块、图像处理模块和处理器,所述图像传感器的输出端连接所述图像采集模块的输入端,所述图像采集模块的输出端连接所述图像处理模块的输入端,所述图像处理模块的输出端连接所述处理器,所述方法包括:
[0011]判断所述图像处理模块是否将图像数据输出完成,如果是,执行下一步骤,如果否,重复执行本步骤;
[0012]将所述图像处理模块的图像数据输出地址更新为新的输出地址。
[0013]—种提高图像获取速度的装置,用于电子电路,所述电子电路包括图像传感器、图像采集模块、图像处理模块和处理器,所述图像传感器的输出端连接所述图像采集模块的输入端,所述图像采集模块的输出端连接所述图像处理模块的输入端,所述图像处理模块的输出端连接所述处理器,包括:
[0014]第一判断模块:用于判断所述图像处理模块是否将图像数据输出完成,如果是,转至更新模块,如果否,则重复执行;
[0015]更新模块:用于将所述图像处理模块的图像数据输出地址更新为新的输出地址。
[0016]本发明具有以下有益效果:
[0017]本发明中,当图像数据输出完成后,将图像数据输出地址进行更新,使存储图像数据的缓存从存入缓存区中移除,并可以将存储图像数据的缓存添加至读取缓存区中,并没有“拷贝”缓存中的图像数据,避免了现有技术中采用“拷贝”而造成的时间损耗和系统损耗,因此,与现有技术相比,本发明加快了图像数据的获取速度,降低了处理器的系统损耗。
【附图说明】
[0018]图1为本发明的电子电路的一种实施例的结构不意图;
[0019]图2为本发明的提高图像获取速度的方法的一种实施例的流程示意图;
[0020]图3为本发明的提高图像获取速度的方法的另一种实施例的流程示意图;
[0021]图4为本发明的提高图像获取速度的方法的又一种实施例的流程示意图;
[0022]图5为本发明的提高图像获取速度的方法的再一种实施例的流程示意图;
[0023]图6为本发明的提高图像获取速度的方法进行的图像数据获取的一种实施例的流程不意图;
[0024]图7为本发明的提高图像获取速度的方法进行的图像数据读取的一种实施例的流程不意图;
[0025]图8为本发明的提高图像获取速度的装置的一种实施例的结构示意图;
[0026]图9为本发明的提高图像获取速度的装置的另一种实施例的结构示意图;
[0027]图10为本发明的提高图像获取速度的装置的又一种实施例的结构示意图;
[0028]图11为本发明的提高图像获取速度的装置的再一种实施例的结构示意图。
【具体实施方式】
[0029]为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
[0030]—方面,本发明实施例提供一种提高图像获取速度的方法,如图1所示,用于电子电路,电子电路包括图像传感器11、图像采集模块12、图像处理模块13和处理器14,图像传感器11的输出端连接图像采集模块12的输入端,图像采集模块12的输出端连接图像处理模块13的输入端,图像处理模块13的输出端连接处理器14,如图2所示,该方法包括:
[0031]步骤S101:判断图像处理模块13是否将图像数据输出完成,如果是,执行下一步骤,如果否,重复执行本步骤;
[0032]本步骤中,优选的,处理器14实时检测图像处理模块14中的相关寄存器的值,判断一帧图像数据是否传输完成,本步骤中的判断方法还可以采用本领域技术人员容易想到的其它方法。另外,本步骤中,在内存中预先分配好用于存入图像数据的存入缓存区,图像处理模块13将图像数据存入内存中预先分配的存入缓存区。
[0033]步骤S102:将图像处理模块13的图像数据输出地址更新为新的输出地址。
[0034]本步骤中,在内存中预先分配好用于读取图像数据的读取缓存区,当图像处理模块13将图像数据输出完成后,处理器14通过更新图像数据输出地址的方式,将缓存从存入缓存区中移除,并将缓存分配给用于处理器14读取图像数据的读取缓存区,而经过更新后的新的输出地址为重新分配的存入缓存区中的缓存,用于存储接下来图像处理模块13输出的图像数据。
[0035]本实施例中,只是将存储图像数据的缓存从存入缓存区中移除,并添加至读取缓存区中,并没有“拷贝”缓存中的图像数据,避免了现有技术中采用“拷贝”而造成的时间损耗和系统损耗,因此,与现有技术相比,本实施例加快了图像数据的获取速度,降低了处理器的系统损耗。
[0036]作为图2实施例的一种改进,如图3所示,本实施例还包括:
[0037]步骤S103:当需要使用图像处理模块13处理后的图像数据时,从该图像数据对应的存储地址中读取该图像数据。
[0038]本实施例中,处理器14当需要使用图像处理模块13处理后的图像数据时,就会检测图像数据对应的存储地址中是否有图像数据,如果有,则将图像数据从对应的存储地址中读取出来进行处理,其中,存储地址为读取缓存区中存储该图像数据的缓存地址。图2实施例与本实施例中的步骤S103可以是一个连续的方法,也可以为两个独立的方法。
[0039]作为图3实施例的一种改进,如图4所示,所述步骤S101之前包括:
[0040]步骤100:预先建立用于记录能够存入图像数据的地址的存入地址表和用于记录能够读取已存图像数据的地址的读取地址表,所述存入地址表中预先记录有至少两个能够存入图像数据的地址;
[0041 ]本步骤中,存入地址表和读取地址表的建立能够使图像数据的存入和读取更有条理,图像处理模块13处理完成的图像数据可以直接存入到存入地址表中,同样,处理器14需要图像数据时,也可以直接在读取地址表中将图像 数据取出,处理器14不需要在内存中进行查找,进一步提高了图像数据存入和读取的速度,另外,为了使存入地址表在存储完图像数据后,还能够及时存储新的图像数据,将存入地址表中预先记录有至少两个能够存入图像数据的地址;
[0042]所述步骤S101进一步为:
[0043]步骤S101’:判断所述图像处理模块是否将图像数据输出完成,如果是,则将已经存入图像数据的地址从所述存入地址表中删除并添加至所述读取地址表中,执行下一步骤,如果否,则重复执行本步骤。
[0044]本步骤中,将经过图像处理模块13处理后的图像数据存储到存入地址表的对应地址中,当存入地址表的相应地址中存储的图像数据传输完成后,将该存入地址表的存储有图像数据的相应地址添加至读取地址表中,方便处理器14的使用。
[0045]本实施例中,建立有存入地址表和读取地址表,当图像数据传输完成,将已经存入图像数据的地址从存入地址表中删除并添加至读取地址表中,提高了图像数据存储和读取的便利性。
[0046]作为图4实施例的进一步改进,如图5所示,步骤S103进一步为:
[0047]步骤S1031:当需要使用图像处理模块13处理后的图像数据时,判断读取地址表是否为空,如果是,重复执行本步骤,如果否,执行下一步骤;
[0048]本步骤中,处理器14在使用图像数据时,先检测读取地址表是否为空,是为了防止读取地址表中没有图像数据而使处理器14进行获取动作,造成的浪费处理器14的资源的现象。
[0049]步骤S1032:将读取地址表中的地址中存储的图像数据取出;
[0050]步骤S1033:将已经取出图像数据的地址从读取地址表中删除并添加至存入地址表中。
[0051]本实施例,对上述实施例进行了进一步的优化,将已经取出图像数据的地址从读取地址表中删除并添加至存入地址表中,用于存储新的经过图像处理模块13处理后的图像数据,无需处理器14在存入地址表中设置新的用于存储图像数据的地址,进一步地提高了图像数据的获取速度。
[0052]作为图4和图5所示实施例的进一步改进,存入地址表和读取地址表均采用链表结构。
[0053]本实施例中,链表结构是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表结构最明显的好处就是,常规数组排列关联项目的方式不同于数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换。本实施例中,使用链表结构可以充分利用内存空间,实现灵活的内存动态管理。
[0054]下面,本发明中提供了一种图像数据获取的具体的实施例,如图6所示:
[0055]步骤S1:系统上电;
[0056]步骤S2:系统初始化;
[0057]步骤S3:从内存中分配η个图像数据存储缓存;
[0058]步骤S4:将这η个图像数据存储缓存的地址挂入链表write_buf中;
[0059]步骤S5:将图像处理模块13输出图像的地址设为write_buf链表中的第一个图像数据存储缓存;
[0060]步骤S6: 一帧数据是否传输完成,如果是,则执行下一步,如果否,则重复执行本步骤;
[0061 ]步骤S7:将存储有图像数据的图像数据存储缓存从write_buf链表中移除,其余图像数据存储缓存依次向前移动一个位置;
[0062]步骤S8:将存有图像数据的图像数据存储缓存挂入链表read_buf的起始位置;[0063 ] 步骤S9:更新图像处理模块13输出图像的地址为wr i t e_buf链表中新的图像数据存储缓存。
[0064]本实施例中,步骤S3中,图像数据存储缓存为上述的实施例中的存入地址表中的缓存;步骤S4和S9中,write_buf为定义的用于存入图像数据的链表的结构体变量,read_buf为定义的用于读取图像数据的链表的结构体变量。
[0065]本实施例中,系统在上电的时候,会在内存中首先分配η个图像数据存储缓存,这个η可以根据实际应用,最少为2个,本实施例中,优选为4个,上限不限,但通常应用的时候一般不超过20个,图像数据存储缓存分配完成后,首先一个接一个挂入链表Write_bUf中,用来存储新接收的图像数据;一旦有write_buf中某个图像数据存储缓存中存储了一帧完整的图像,就将该图像数据存储缓存从write_buf中移除,并将该图像数据存储缓存挂入链表read_buf中,供处理器14使用。
[0066]下面,本发明中还提供了一种图像数据读取的具体的实施例,如图7所示:
[0067]步骤S11:开始读取图像;
[0068]步骤S12:链表read_buf是否存储有图像数据;
[0069]步骤S13:将read_buf链表中第一个图像数据存储缓存取出;
[0070]步骤S14:进行相关处理;
[0071 ]步骤S15:处理完成,将该图像数据存储缓存从read_buf链表中移除,其余图像数据缓存依次向前移动一个位置;
[0072]步骤S16:将该图像数据存储缓存挂入链表write_buf的末尾位置。
[0073]本实施例中,当处理器14需要处理图像的时候,就会检测链表read_buf中是否有图像数据存储缓存已经挂入,如果有的话,获得图像数据存储缓存的地址,然后使用其中的图像数据进行相关的处理。
[0074]图6和图7实施例中定义了如下结构体:
[0075]结构体是一种构造性数据,它是由不同类型的数据项组成的复合类型,结构体是建造动态数据结构(如链表)非常有用的工具。本实施例中的链表就是由结构体类型的数据所构成的。
[0076]以下是本实施例中定义的图像数据存储缓存的结构体:
[0077]Struct buf_info{
[0078]Unsigned int*bufaddr;
[0079]Unsigned int*list;
[0080]};
[0081 ]其中,buf adding向图像缓存区的地址;1 i st指向下一个图像数据存储缓存结构体的地址,默认值为NULL;
[0082]以下是本实施例中定义的存入地址表采用的链表结构:
[0083]Struct listbuf{
[0084]Unsigned int*listhead;
[0085]};
[0086]listhead指向第一个图像数据存储缓存结构体的地址,默认值为NULL;
[0087]本实施例定义两个链表变量,structlistbuf write_buf 和struct listbufreacLbuf,当图像数据存储缓存中没有图像数据的话,挂入Write_bUf链表,用于存放新的图像处理模块13处理完成的图像;当图像数据存储缓存中有图像数据的话,挂入reacLbuf链表,供处理器14使用。
[0088]图像数据存储缓存在被分配好后,其地址就确定了;每个图像数据存储缓存对应一个图像数据存储缓存的结构体:
[0089]Struct buf_info{
[0090]Unsigned int*bufaddr;
[0091]Unsigned int*list;
[0092]};
[0093]变量bufaddr中保存的就是图像数据存储缓存的地址;而变量1 i st保存的是下一个图像数据存储缓存所对应的struct buf_info结构体的首地址,而变量write_buf■或read_buf保存的第一个图像数据存储缓存所对应的struct buf_info结构体的首地址,这样就把多个图像数据存储缓存链接了起来,形成了一个链表。
[0094]图6和图7实施例中,仅仅操作的是图像数据存储缓存的地址,并没有拷贝图像数据存储缓存中的图像数据。当图像数据存储缓存没有图像数据的话,就将图像数据存储缓存的地址放入write_buf链表中,这样保存新图像数据的时候,图像处理模块13就能找到该图像数据存储缓存;当图像数据存储缓存有图像数据的话,就将图像数据存储缓存的地址放入reacLbuf链表中,这样处理器14处理图像的时候,就能找到该图像数据存储缓存。该实施例中,由于仅仅操作的是图像数据存储缓存的地址,而不是拷贝图像数据存储缓存,所以,加快了图像的获取速度,降低处理器14的系统消耗。
[0095]另一方面,本发明实施例还提供一种 提高图像获取速度的装置,如图1所示,用于电子电路,电子电路包括图像传感器11、图像采集模块12、图像处理模块13和处理器14,图像传感器11的输出端连接图像采集模块12的输入端,图像采集模块12的输出端连接图像处理模块13的输入端,图像处理模块13的输出端连接处理器14,如图8所示,包括:
[0096]第一判断模块111:用于判断图像处理模块13是否将图像数据输出完成,如果是,转至更新模块,如果否,则重复执行;
[0097]更新模块112:用于将图像处理模块13的图像数据输出地址更新为新的输出地址。
[0098]本实施例中,只是将存储图像数据的缓存从存入缓存区中移除,并添加至读取缓存区中,并没有“拷贝”缓存中的图像数据,避免了现有技术中采用“拷贝”而造成的时间损耗和系统损耗,因此,与现有技术相比,本实施例加快了图像数据的获取速度,降低了处理器的系统损耗。
[0099]作为图8实施例的一种改进,如图9所示,还包括:
[0100]读取模块113:用于当需要使用图像处理模块13处理后的图像数据时,从该图像数据对应的存储地址中读取该图像数据。
[0101]本实施例中,存储地址为读取缓存区中存储该图像数据的缓存地址。图2实施例与本实施例中的读取模块113可以是一个连续的结构,也可以为两个独立的结构。
[0102]作为图9实施例的一种改进,如图10所示,第一判断模块111连接有:
[0103]记录模块110:用于预先建立用于记录能够存入图像数据的地址的存入地址表和用于记录能够读取已存图像数据的地址的读取地址表,存入地址表中预先记录有至少两个能够存入图像数据的地址;
[0104]第一判断模块111进一步用于:
[0105]判断所述图像处理模块是否将图像数据输出完成,如果是,则将已经存入图像数据的地址从所述存入地址表中删除并添加至所述读取地址表中,转至更新模块,如果否,则重复执行。
[0106]本实施例中,建立有存入地址表和读取地址表,当图像数据传输完成,将已经存入图像数据的地址从存入地址表中删除并添加至读取地址表中,提高了图像数据存储和读取的便利性。
[0107]作为图10实施例的进一步改进,如图11所示,读取模块113包括:
[0108]第二判断模块1131:用于当需要使用图像处理模块13处理后的图像数据时,判断读取地址表是否为空,如果是,重复执行本步骤,如果否,执行下一步骤;
[0109]取出模块132:用于将读取地址表中的地址中存储的图像数据取出;
[0110]转换模块1133:用于将已经取出图像数据的地址从读取地址表中删除并添加至存入地址表中。
[0111]本实施例,对上述实施例进行了进一步的优化,将已经取出图像数据的地址从读取地址表中删除并添加至存入地址表中,用于存储新的经过图像处理模块13处理后的图像数据,无需处理器14在存入地址表中设置新的用于存储图像数据的地址,进一步地提高了图像数据的获取速度。
[0112]作为图10和图11实施例的进一步改进,记录模块110中的存入地址表和读取地址表均米用链表结构。
[0113]本实施例中,链表结构是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表结构最明显的好处就是:常规数组排列关联项目的方式不同于这些数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换。本实施例中,使用链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。
[0114]以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【主权项】
1.一种提高图像获取速度的方法,用于电子电路,所述电子电路包括图像传感器、图像采集模块、图像处理模块和处理器,所述图像传感器的输出端连接所述图像采集模块的输入端,所述图像采集模块的输出端连接所述图像处理模块的输入端,所述图像处理模块的输出端连接所述处理器,其特征在于,所述方法包括: 判断所述图像处理模块是否将图像数据输出完成,如果是,执行下一步骤,如果否,重复执行本步骤; 将所述图像处理模块的图像数据输出地址更新为新的输出地址。2.根据权利要求1所述的提高图像获取速度的方法,其特征在于,所述方法还包括: 当需要使用所述图像处理模块处理后的图像数据时,从该图像数据对应的存储地址中读取该图像数据。3.根据权利要求2所述的提高图像获取速度的方法,其特征在于,所述判断所述图像处理模块是否将图像数据输出完成之前包括: 预先建立用于记录能够存入图像数据的地址的存入地址表和用于记录能够读取已存图像数据的地址的读取地址表,所述存入地址表中预先记录有至少两个能够存入图像数据的地址; 所述判断所述图像处理模块是否将图像数据输出完成进一步为: 判断所述图像处理模块是否将图像数据输出完成,如果是,则将已经存入图像数据的地址从所述存入地址表中删除并添加至所述读取地址表中,执行下一步骤,如果否,则重复执行本步骤。4.根据权利要求3所述的提高图像获取速度的方法,其特征在于,所述当需要使用所述图像处理模块处理后的图像数据时,从该图像数据对应的存储地址中读取该图像数据进一步为: 当需要使用所述图像处理模块处理后的图像数据时,判断所述读取地址表是否为空,如果是,重复执行本步骤,如果否,执行下一步骤; 将所述读取地址表中的地址中存储的图像数据取出; 将已经取出图像数据的地址从所述读取地址表中删除并添加至所述存入地址表中。5.根据权利要求3或4所述的提高图像获取速度的方法,其特征在于,所述存入地址表和读取地址表均采用链表结构。6.—种提高图像获取速度的装置,用于电子电路,所述电子电路包括图像传感器、图像采集模块、图像处理模块和处理器,所述图像传感器的输出端连接所述图像采集模块的输入端,所述图像采集模块的输出端连接所述图像处理模块的输入端,所述图像处理模块的输出端连接所述处理器,其特征在于,包括: 第一判断模块:用于判断所述图像处理模块是否将图像数据输出完成,如果是,转至更新模块,如果否,则重复执行; 更新模块:用于将所述图像处理模块的图像数据输出地址更新为新的输出地址。7.根据权利要求6所述的提高图像获取速度的装置,其特征在于,还包括: 读取模块:用于当需要使用所述图像处理模块处理后的图像数据时,从该图像数据对应的存储地址中读取该图像数据。8.根据权利要求7所述的提高图像获取速度的装置,其特征在于,所述第一判断模块连接有: 记录模块:用于预先建立用于记录能够存入图像数据的地址的存入地址表和用于记录能够读取已存图像数据的地址的读取地址表,所述存入地址表中预先记录有至少两个能够存入图像数据的地址; 所述第一判断模块一进一步用于: 判断所述图像处理模块是否将图像数据输出完成,如果是,则将已经存入图像数据的地址从所述存入地址表中删除并添加至所述读取地址表中,转至更新模块,如果否,则重复执行。9.根据权利要求8所述的提高图像获取速度的装置,其特征在于,所述读取模块包括: 第二判断模块:用于当需要使用所述图像处理模块处理后的图像数据时,判断所述读取地址表是否为空,如果是,重复执行,如果否,转至取出模块; 取出模块:用于将所述读取地址表中的地址中存储的图像数据取出; 转换模块:用于将已经取出图像数据的地址从所述读取地址表中删除并添加至所述存入地址表中。10.根据权利要求8或9所述的提高图像获取速度的装置,其特征在于,所述记录模块中的所述存入地址表和读取地址表均采用链表结构。
【专利摘要】本发明公开了一种提高图像获取速度的方法和装置,属于图像获取领域,所述方法和装置用于电子电路,所述方法包括:判断所述图像处理模块是否将图像数据输出完成,如果是,执行下一步骤,如果否,重复执行本步骤;将所述图像处理模块的图像数据输出地址更新为新的输出地址。本发明中的图像获取方法,仅仅操作的是图像数据存储的地址,并没有“拷贝”输出地址中的图像数据,避免了现有技术中采用“拷贝”而造成的时间损耗和系统损耗。因此,与现有技术相比,本发明加快了图像的获取速度,降低了处理器的系统损耗。
【IPC分类】H04N5/232
【公开号】CN105491281
【申请号】CN201510824902
【发明人】贾天亮
【申请人】北京天诚盛业科技有限公司
【公开日】2016年4月13日
【申请日】2015年11月24日

最新回复(0)