CN118338144A - 一种图像信号处理方法、系统、fpga及客户端 - Google Patents
一种图像信号处理方法、系统、fpga及客户端 Download PDFInfo
- Publication number
- CN118338144A CN118338144A CN202310014070.1A CN202310014070A CN118338144A CN 118338144 A CN118338144 A CN 118338144A CN 202310014070 A CN202310014070 A CN 202310014070A CN 118338144 A CN118338144 A CN 118338144A
- Authority
- CN
- China
- Prior art keywords
- image
- channel
- data
- fpga
- image data
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 57
- 230000002159 abnormal effect Effects 0.000 claims description 42
- 230000005540 biological transmission Effects 0.000 claims description 28
- 238000000034 method Methods 0.000 claims description 22
- 230000003139 buffering effect Effects 0.000 claims description 6
- 108091006146 Channels Proteins 0.000 description 146
- 230000008569 process Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Image Processing (AREA)
Abstract
本申请公开了一种图像信号处理方法、图像信号处理系统、FPGA及客户端。其中,该图像信号处理系统包括FPGA、客户端和至少两个图像传感器,该FPGA与各图像传感器分别通过不同的通道相连,且该FPGA还与客户端相连。应用于该FPGA的图像信号处理方法包括:通过各通道接收通道数据,通道数据包括图像传感器采集的图像数据;通过各通道对应的第一队列将各图像数据分别缓存至内存中对应的存储空间;在各存储空间已缓存的图像数据均已满足预设的第一数据量条件后,将各存储空间中已缓存的图像数据合并为目标数据;向客户端传输目标数据。本申请方案可提升FPGA的资源利用率,一定程度上减少对图像信号的处理成本。
Description
技术领域
本申请属于图像处理技术领域,尤其涉及一种图像信号处理方法、图像信号处理系统、FPGA及客户端。
背景技术
当前,在控制多颗图像传感器进行图像采集并相应显示多路图像时,通常采用如下解决方案:每颗图像传感器均由各自对应的现场可编程逻辑门阵列(FieldProgrammable Gate Array,FPGA)进行控制;各FPGA会将对应的图像传感器的数据发送给上层FPGA进行汇总;最后上层FPGA将各图像传感器的数据传输给客户端(例如电脑等)显示。
由于单个FPGA的资源对于获取图像数据和数据汇总而言,存在着较大富余,因此当前的解决方案会导致多个FPGA的大量资源被浪费,从而大大增加系统的成本。
发明内容
本申请提供了一种图像信号处理方法、图像信号处理系统、FPGA及客户端,可提升FPGA的资源利用率,一定程度上减少对图像信号的处理成本。
第一方面,本申请提供了一种图像信号处理方法,图像信号处理方法应用于图像信号处理系统中的现场可编程逻辑门阵列FPGA,图像信号处理系统还包括客户端和至少两个图像传感器,FPGA与各图像传感器分别通过不同的通道相连,且FPGA还与客户端相连,图像信号处理方法包括:
通过各通道接收通道数据,通道数据包括图像传感器采集的图像数据;
通过各通道对应的第一队列将各图像数据分别缓存至内存中对应的存储空间;
在各存储空间已缓存的图像数据均已满足预设的第一数据量条件后,将各存储空间中已缓存的图像数据合并为目标数据;
向客户端传输目标数据。
第二方面,本申请提供了一种图像信号处理方法,图像信号处理方法应用于图像信号处理系统中的客户端,图像信号处理系统还包括现场可编程逻辑门阵列FPGA和至少两个图像传感器,其中,客户端与FPGA相连,且FPGA还与各图像传感器相连,图像传感器用于采集图像数据,图像信号处理方法包括:
通过第二队列,接收FPGA所发送的目标数据;
基于预设的图像尺寸,对目标数据进行拆分,得到各图像传感器所采集的图像数据;
通过各图像传感器所对应的线程,对各图像数据并行地进行解码处理。
第三方面,本申请提供了一种FPGA,该FPGA集成于图像信号处理系统,图像信号处理系统还包括客户端及至少两个图像传感器,其中,FPGA与各图像传感器分别通过不同的通道相连,且FPGA还与客户端相连;FPGA包括:
第一接收模块,用于通过各通道接收通道数据,通道数据包括图像传感器采集的图像数据;
缓存模块,用于通过各通道对应的第一队列将各图像数据分别缓存至内存中对应的存储空间;
合并模块,用于在各存储空间已缓存的图像数据均已满足预设的第一数据量条件后,将各存储空间中已缓存的图像数据合并为目标数据;
传输模块,用于向客户端传输目标数据;
第四方面,本申请提供了一种客户端,该客户端集成于图像信号处理系统,图像信号处理系统还包括现场可编程逻辑门阵列FPGA及至少两个图像传感器,其中,FPGA与各图像传感器分别通过不同的通道相连,且FPGA还与客户端相连;客户端包括:
第二接收模块,用于通过第二队列,接收FPGA所发送的目标数据;
拆分模块,用于基于预设的图像尺寸,对目标数据进行拆分,得到各图像传感器所采集的图像数据;
处理模块,用于通过各图像传感器所对应的线程,对各图像数据并行地进行解码处理。
第五方面,本申请提供了一种图像信号处理系统,该图像信号处理系统包括:至少两个图像传感器、如第三方面所提供的FPGA及如第四方面所提供的客户端。
本申请与现有技术相比存在的有益效果是:仅采用单个FPGA即可实现对多个图像传感器的同步控制及数据汇总,相较现有技术而言,不仅成本较低,而且系统结构简单,可显著提升FPGA的资源利用率,降低数据同步的复杂度,以及提高数据传输的稳定性。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的图像信号处理系统的层级结构示意图;
图2是本申请实施例提供的应用于FPGA的图像信号处理方法的实现流程示意图;
图3是本申请实施例提供的存储空间的示例图;
图4是本申请实施例提供的应用于客户端的图像信号处理方法的实现流程示意图;
图5是本申请实施例提供的FPGA的结构框图;
图6是本申请实施例提供的客户端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含一系列步骤或单元的过程、方法或系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”及“第二”等是用于区别不同对象,而非用于描述特定顺序。
本申请提供了一种图像信号处理系统,该图像信号处理系统包括:FPGA、客户端及至少两个图像传感器。其中,FPGA与各图像传感器分别通过不同的通道相连,且FPGA还与客户端相连;以及,各图像传感器所对应的图像尺寸均保持一致。
在一些示例中,该客户端可具体为个人计算机(Personal Computer,PC),该FPGA与该客户端可具体通过两线式串行总线(Inter-Integrated Circuit,I2C)协议实现通信,此处不作限定。
可以理解,在图像信号处理系统中,各图像传感器所采集的图像数据均直接由同一FPGA进行处理及汇总,并在处理及汇总完成后发送给客户端进行后续的解码及显示等一系列操作。请参阅图1,图1给出了该图像信号处理系统的层级结构示意。
本申请针对上文所提出的图像信号处理系统,还提供了一种应用于该图像信号处理系统中的FPGA的图像信号处理方法。请参阅图2,图2给出了该图像信号处理方法的流程示意,详述如下:
步骤201,通过各通道接收通道数据,通道数据包括图像传感器采集的图像数据。
FPGA中内置有一脉冲宽度调制(Pulse width modulation,PWM)生成器。针对已相连的所有图像传感器,该PWM生成器可生成一个用于控制帧同步的频率可调且占空比可调的控制信号(External Frame Synchronism,EFSYNC)。在一些示例中,该控制信号的可调频率的范围可为0.1MHz~50MHz,可调占空比的范围可为0%~100%。该控制信号EFSYNC能够触发各个图像传感器的工作,使得各个图像传感器能够同步采集移动产业处理器接口(Mobile Industry Processor Interface,MIPI)格式的图像数据,并跟随已同步的时钟信号,通过FPGA的对应通道向FPGA进行数据传输。由此,FPGA可分别通过各通道接收高速串行数据流,再通过串转并模块(SelectIO Interface Wizard)将该高速串行数据流转换为并行数据流。
可以理解,FPGA转换所得的并行数据流即为各通道各自的通道数据。针对该并行数据流,FPGA除了可对同步码(sync code)进行信号检测之外,还可对用于低功耗(Low-Power)的双端传输通道也进行信号检测,由此确定出各通道的通道数据中的帧头位置,解码得到各通道数据中的图像数据(也即MIPI数据)。除此之外,FPGA还可针对该并行数据流进行循环冗余校验(Cyclical Redundancy Check,CRC),以此保障图像传感器与FPGA之间的数据传输的正确性。
步骤202,通过各通道对应的第一队列将各图像数据分别缓存至内存中对应的存储空间。
FPGA在获得各通道所对应的图像数据(也即各图像传感器所对应的图像数据)后,可进行写操作,该写操作指的是:将各图像数据分别缓存至内存。其中,该内存可为双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random AccessMemory,DDR SDRAM),也可为其它形态的存储器,此处不作限定。在一些示例中,该内存可具体为DDR3。
为实现有序缓存,FPGA在内存中为各个通道预先划分了各自对应的存储空间。也即,FPGA最终会将各图像数据分别缓存至内存中对应的存储空间内。
为了提升数据存储的效率,FPGA并不会直接将图像数据缓存于内存中,而是会通过各个通道所对应的第一队列,对各图像数据进行缓存处理,具体为:先将各图像数据缓存至对应的第一队列,再将各第一队列中已缓存的图像数据分别传输至内存中对应的存储空间。其中,每个第一队列可均为异步队列,具体为异步FIFO(First Input First Output)。
步骤203,在各存储空间已缓存的图像数据均已满足预设的第一数据量条件后,将各存储空间中已缓存的图像数据合并为目标数据。
各存储空间已缓存的图像数据的数据量会逐渐增加,正常情况下,最终各存储空间可缓存一帧完整的图像数据。本申请实施例可由此而设定第一数据量条件,也即,该第一数据量条件可具体根据图像传感器所采集的一帧完整的图像数据而设定,此处不作限定。
在各存储空间已缓存的图像数据均已满足预设的第一数据量条件后,FPGA可进行读操作,该读操作指的是:从内存将各存储空间已缓存的图像数据读出。
与前文所描述的写操作类似,该读操作也可通过队列而实现。为便于区分,可将写操作所采用的队列记作第三队列,且每个第三队列可均为异步队列,具体为异步FIFO。
可以理解,写操作时,数据流向为:从第一队列到内存的存储空间;读操作时,数据流向为:从内存的存储空间到第三队列。但需要注意的是,读操作的优先级低于写操作的优先级;也即,读操作一般在写操作的空闲期间完成。
FPGA可按照预设的传输协议进行时序整合,以此实现对已读出的图像数据的合并。在一些示例中,该传输协议可具体为通用串行总线(Universal Serial Bus,USB)3.0传输协议,此处不作限定。
步骤204,向客户端传输目标数据。
FPGA可通过I2C协议向客户端传输合并所得的目标数据。可以理解,该目标数据实际已包含了各图像传感器所采集的完整的一帧图像数据,因而客户端可通过对该目标数据的解析及处理,获得各帧图像数据。
在一些实施例中,图像传感器与FPGA之间部分通道的数据传输可能存在异常。为了避免异常通道导致数据同步发生紊乱,以及,为了保障其它通道的正常传输,在步骤202之前,FPGA还可进行如下操作:
A1、确定是否存在异常通道。
可以理解,异常通道(也即坏道)通常会带来一定的数据传输延时,从而导致给定的接收周期内,FPGA无法通过该异常通道接收到完整的图像数据。从数据的传输延时及数据的完整性出发,本申请实施例中,FPGA可考虑通过如下两种方式确定是否存在异常通道:
第一种方式基于帧信号而实现,具体为:在所有通道中接收到第一个帧开始包(Start-of-Frame Packet,SoF Packet)的情况下,启动帧信号检测,具体为检测除目标通道外的其它通道是否在预设时间段内接收到帧开始包。FPGA可将在预设时间段内未接收到帧开始包的通道确定为异常通道。
其中,目标通道指的是:在当前的接收周期内,接收到第一个帧开始包的通道;预设时间段指的是:起始时间为该第一个帧开始包的接收时间,时长为预设时长的时间段。在一些示例中,预设时长可具体为:N*width*pclk,其中,N为FPGA已连接的图像传感器的数量,width为图像传感器所采集的完整的一帧图像数据所对应的图像宽度(也即一行像素的像素数量),pclk为一个像素时钟的时长。当然,FPGA也可以将预设时长设定为更长或更短,但需要注意的是,该预设时长过短时,可能不利于对多个图像传感器之间的同步;该预设时长过长时,可能会需要更多的存储资源来缓存图像数据。
第二种方式基于数据量而实现,具体为:基于预设的计数起始条件及计数结束条件,对各通道所接收到的图像数据进行计数,并将各通道的计数结果与预设的计数阈值进行匹配。FPGA可将计数结果与计数阈值不匹配的通道确定为异常通道。
其中,计数起始条件及计数结束条件均与帧开始包相关。具体地,针对每一通道,该计数起始条件为检测到帧开始包,该计数终止条件为检测到下一帧开始包。可以理解,理论上来说,同一通道的两个时序上相邻的帧开始包之间的图像数据的数据量,应为完整的一帧图像数据的数据量,基于此理论,FPGA设定了以上计数起始条件及计数结束条件。
由此,根据以上计数起始条件及计数结束条件,针对每一通道:当该通道检测到第i个帧开始包时,可知当前是第i帧图像数据的开始,由此可开始对该第i帧图像数据的计数;当该通道再次检测到一个帧开始包,也即检测到第i+1个帧开始包时,可知当前是第i+1帧图像数据的开始,此时可读出该通道的计数结果进行后续的匹配操作,并在读出计数结果后重置该计数结果为0,由此可开始对该第i+1帧图像数据的计数。
其中,计数的对象具体为各通道已解码的图像数据的量化结果(二进制数据)。并且,根据前文描述可知,计数阈值可根据图像传感器所采集的完整的一帧图像数据所对应的图像尺寸而设定。仅作为示例,记图像尺寸为width*height,则该计数阈值可被设定为:width*height*图像传感器的位宽/8。
可以理解,以上两种方式可以择一执行,也可均执行,此处不作限定。在以上两种方式均执行时,只要任意方式确定某一通道存在异常,该通道即可被确定为异常通道;也即,针对任一通道,只有以上两种方式均确定该通道无异常,该通道才不会被确定为异常通道。
A2、在存在异常通道的情况下,基于除异常通道外的其它通道对异常通道的时钟数据进行替换,以及,基于预设的默认图像数据对异常通道的图像数据进行替换。
通道数据中,除了图像数据之外,还有时钟数据。可以理解,该时钟数据实际表达了图像数据的时序。由于异常通道并不能完整和/或准确的接收图像传感器所传输的数据,因而针对异常通道,FPGA应启动数据替换的操作,包括对该异常通道所接收到的通道数据中的时钟数据的替换,以及,对该异常通道所接收到的通道数据中的图像数据的替换。
具体地,FPGA可将该异常通道所接收到的通道数据中的时钟数据替换为:任一其它通道所接收到的通道数据中的时钟数据。其中,该其它通道不为异常通道,也即该其它通道指的是异常通道外的通道。仅作为示例,FPGA可随机选定该其它通道;或者,FPGA可根据通道顺序选定该其它通道。例如,图像传感器0至图像传感器9分别通过通道0至通道9与FPGA相连。假如通道2被确定为异常通道,其余通道均正常,则按通道顺序可知通道0排序最前,FPGA由此可将通道2所接收到的通道数据中的时钟数据替换为通道0所接收到的通道数据中的时钟数据。
具体地,FPGA可将该异常通道所接收到的通道数据中的图像数据替换为:默认图像数据。其中,该默认图像数据为0。也即,该异常通道所接收到的通道数据中的图像数据可被替换为常0。
在一些实施例中,为进一步提升数据缓存的效率,步骤202包括:
B1、针对任一通道,将通道的图像数据缓存至对应的第一队列。
考虑到FPGA对各通道所接收到的图像数据的缓存操作的流程基本一致,因而,此处以任一通道为例,对该通道的图像数据的缓存操作进行说明。正如前文已描述的,FPGA可先将通过该通道所接收到的图像数据缓存至对应的第一队列中。
B2、当第一队列中已缓存的图像数据满足预设的第二数据量条件时,将第一队列中已缓存的图像数据传输至对应的存储空间。
可以理解,图像传感器会持续向FPGA传输图像数据,这会使得第一队列中所缓存的图像数据不断增加。当第一队列中已缓存的图像数据达到一定数据量时,FPGA可将该第一队列中已缓存的图像数据传输至内存对应的存储空间。也即,FPGA可预先设定一第二数据量条件,该第二数据量条件在被满足时可触发FPGA将第一队列中已缓存的图像数据转移至通道在内存中所对应的存储空间。
在一些示例中,第二数据量条件可具体根据图像传感器所采集的一帧完整的图像数据中的N行图像数据而设定,此处不作限定。也即,当第一队列中已缓存有N行的图像数据时,可将该N行的图像数据传输至对应的存储空间。
在一些示例中,传输的手段可具体为突发传输(Burst transmission),使得图像数据可在短时间内从第一队列被传输至内存的对应存储空间中。
在一些实施例中,每个通道在内存中所对应的存储空间的大小可为两帧图像的尺寸;也即,每个存储空间可存储两帧完整的图像数据。每个存储空间可被划分为两个缓存池,则每个缓存池的大小可均为一帧图像的尺寸;也即,每个缓存池可存储一帧完整的图像数据。为便于说明,每个存储空间内的两个缓存池可被记作缓存池0及缓存池1。FPGA在读操作及写操作的过程中,涉及对写地址的更新,以此实现对各存储空间的两个缓存池的有效利用,具体过程如下:
当每个存储空间的缓存池0都被写满后,可认为对各个图像传感器的当前帧的写操作已结束。前文已描述了,读操作在写操作的空闲期间完成,因而FPGA可在下一个帧头信号(也即帧开始包)来临前,持续判断当前缓存池1已缓存的数据是否已被完全读出。如果已被完全读出,则可认为读操作结束,写地址可更新跳转到缓存池1。反之,如果还未被完全读出,则可认为读操作还未结束,写地址可保持不变(也即维持为缓存池0),使得下一次的写操作能够复写缓存池0,而不对未读完的缓存池1产生影响。
类似地,当每个存储空间的缓存池1都被写满后,也可参照上述过程进行读操作及写操作,只是FPGA判断的是当前缓存池0已缓存的数据是否已被完全读出,并在已被完全读出时,写地址可更新跳转到缓存池0,未被完全读出时,写地址可保持不变(也即维持为缓存池1),此处不再赘述。
需要注意的是,FPGA在上电后,写地址可初始化为缓存池0;当各通道所对应的第一帧图像数据均写完后,写地址可自动跳转到缓存池1,之后才开始通过上述过程进行写地址的更新。
在一些实施例中,为保障读出的图像数据的有序性,在将各存储空间中已缓存的图像数据合并为目标数据之前,FPGA具体可从各存储空间顺序读取已缓存的图像数据,其中,这里的顺序参照的是通道的顺序。在从各存储空间中顺序读取出已缓存的图像数据之后,为保障后续对图像数据的准确传输,FPGA可基于消隐信号,对已读出的各通道(也即各图像传感器)的图像数据进行处理,其中,此处的消隐信号具体包括:用于添加水平消隐(Hblank)时间的信号,以及,用于添加垂直消隐(Vblank)时间的信号。
FPGA中可集成有传输芯片。在得到处理后的各图像数据后,FPGA可通过通用可编程接口将该处理后的各图像数据发送至传输芯片,由该传输芯片将该处理后的各图像数据合并为目标数据,此处不再赘述。在一些示例中,传输芯片可以为用于USB3.0传输的芯片,例如CYUSB3014(简称为FX3)等,此处不作限定;相应地,通用可编程接口可以为传输芯片的传输接口,例如GPIF II32接口等,此处不作限定。
可以理解,通过基于消音信号对各图像数据的处理,FPGA可对已读出的各通道(也即各图像传感器)的图像数据添加水平消隐时间和垂直消隐时间,使得各通道(也即各图像传感器)的图像数据能够符合MIPI传输协议,满足了FPGA后续向客户端发送目标数据时的MIPI时序要求,提高了后续对目标数据的传输效率。
以FPGA共有10个通道,且FPGA共连接有10个图像传感器为例,记该10个通道为通道0至通道9,10个图像传感器为图像传感器0至图像传感器9,则基于本申请所提出的图像信号处理方法,FPGA所进行的操作简述如下:
FPGA中,各通道(也即各图像传感器)均有对应的第一队列,可分别记作FIFO0至FIFO9。除此之外,FPGA还已在其内存(例如DDR3)中,预先针对各通道(也即各图像传感器)设定了对应的存储空间。如图3所示,各存储空间可分别记作存储空间0至存储空间9,且各存储空间均包含两个缓存池,可记作缓存池0及缓存池1。其中,存储空间0用于存储通过通道0所接收的图像数据(也即图像传感器0所采集的图像数据),存储空间1用于存储通过通道1所接收的图像数据(也即图像传感器1所采集的图像数据),以此类推,此处不再赘述。
首先,FPGA可通过通道0接收到图像传感器0所采集的图像数据,通过通道1接收到图像传感器1所采集的图像数据,以此类推,此处不再赘述。
然后,FPGA可通过FIFO0将通过通道0所接收到的图像数据缓存至存储空间0中,通过FIFO1将通过通道1所接收到的图像数据缓存至存储空间1中,以此类推,此处不再赘述。
接着,在每个存储空间均存满一帧图像数据后,FPGA依序对各存储空间进行读取,具体为先读取存储空间0,再读取存储空间1,以此类推,此处不再赘述。由此,FPGA可读取出10帧图像数据。
最后,FPGA将已读取出的10帧图像数据合并为1帧目标数据,并通过I2C协议向客户端传输该1帧目标数据。
由上可见,在本申请实施例中,采用单个FPGA即可实现对多个图像传感器的同步控制及数据汇总,相较现有技术而言,不仅成本较低,而且系统结构简单,可显著提升FPGA的资源利用率,降低数据同步的复杂度,以及提高数据传输的稳定性。在此基础上,FPGA还新增了对异常通道的检测及数据替换功能,可增强图像信号处理系统的稳定性。
本申请针对上文所提出的图像信号处理系统,还提供了一种应用于该图像信号处理系统中的客户端的图像信号处理方法。请参阅图4,图4给出了该图像信号处理方法的流程示意,详述如下:
步骤401,通过第二队列,接收FPGA所发送的目标数据。
客户端已预先创建有第二队列。其中,该第二队列也可具体为异步FIFO。在接收到FPGA所发送的目标数据后,客户端可将该目标数据从第二队列的尾部存入。在需要读出数据时,客户端可从第二队列的头部读出已存储的目标数据。
在一些实施例中,在将目标数据存入第二队列时,若该第二队列已满,则可先从该第二队列的头部进行数据移除操作,之后再将该目标数据从第二队列的尾部存入。
步骤402,基于预设的图像尺寸,对目标数据进行拆分,得到各图像传感器所采集的图像数据。
基于前文对应用于FPGA的图像信号处理方法的描述可知,目标数据中的各帧图像数据(也即各图像传感器所采集的图像数据)是按照通道的顺序而固定排列的。由此,客户端可基于预设的图像尺寸对目标数据进行拆分,拆分所得结果自动会按照通道的顺序而排列,由此可得到已排序的各帧图像数据(也即各图像传感器所采集的图像数据)。
步骤403,通过各图像传感器所对应的线程,对各图像数据并行地进行解码处理。
客户端可在上电启动时就创建一线程池,其中,该线程池的大小可根据图像信号处理系统中的图像传感器的数量而设定,只要该线程池中的线程数量足以支撑对各图像传感器所采集的图像数据的处理即可。在对目标数据进行拆分,得到各帧图像数据后,该各帧图像数据可被传入线程池。线程池由此可为每帧图像数据分配一个线程(等价于为每个图像传感器分配一个线程)。各线程可以对各自的图像数据并行地执行处理任务,以提升对各帧图像数据的处理效率。在一些示例中,该处理任务包括解码处理任务以及显示处理任务等,此处不作限定,其中,解码处理任务为对图像数据进行解码,显示处理任务为将已解码的图像数据显示于程序界面。
在一些实施例中,客户端在上电启动后,可执行如一系列初始化操作,包括:初始化各程序变量的初始值、初始化硬件设备的初始状态、创建第二队列、创建线程池以及显示程序界面等,此处不作赘述。
在一些实施例中,客户端可通过I2C总线读写图像传感器与FPGA的寄存器的值,实现对二者功能的控制。
具体地,客户端可通过对图像传感器的寄存器的读写,控制其上电、复位、写入配置、使能出图和/或关闭等功能;以及,客户端可通过对FPGA的寄存器的读写,控制其复位和/或EFSYNC使能等功能。
由于图像信号处理系统中的图像传感器的数量为两个以上,因而客户端具体可先通过多路选择器逐通路地对各图像传感器进行控制,并在各图像传感器均正常工作之后,再由FPGA向各图像传感器发出控制信号EFSYNC,以执行上文所提出的应用于FPGA的图像信号处理方法及应用于客户端的图像信号处理方法,此处不再赘述。
由上可见,在本申请实施例中,采用单个FPGA即可实现对多个图像传感器的同步控制及数据汇总;相应地,客户端可对汇总的数据(也即目标数据)进行合理的拆分。相较现有技术而言,不仅成本较低,而且系统结构简单,可显著提升FPGA的资源利用率,降低数据同步的复杂度,以及提高数据传输的稳定性。在此基础上,客户端还通过多线程的方案,对多路图像数据进行并行解码和显示,使得多路图像数据能够被快速解码,且提升了多路图像数据的显示速率。
对应于上文所提出的应用于FPGA的图像信号处理方法,本申请还提供一种FPGA,该FPGA集成于图像信号处理系统中,此处不再对该图像信号处理系统进行赘述。请参阅图5,该FPGA5包括:
第一接收模块501,用于通过各通道接收通道数据,通道数据包括图像传感器采集的图像数据;
缓存模块502,用于通过各通道对应的第一队列将各图像数据分别缓存至内存中对应的存储空间;
合并模块503,用于在各存储空间已缓存的图像数据均已满足预设的第一数据量条件后,将各存储空间中已缓存的图像数据合并为目标数据;
传输模块504,用于向客户端传输目标数据。
在一些实施例中,通道数据还包括:时钟数据;该FPGA还包括:
确定模块,用于确定是否存在异常通道;
替换模块,用于在存在异常通道的情况下,基于除异常通道外的其它通道对异常通道的时钟数据进行替换,以及,基于预设的默认图像数据对异常通道的图像数据进行替换。
在一些实施例中,确定模块包括:
检测单元,用于在所有通道中接收到第一个帧开始包的情况下,检测除目标通道外的其它通道是否在预设时间段内接收到帧开始包,其中,目标通道为:接收到第一个帧开始包的通道,预设时间段指的是:起始时间为第一个帧开始包的接收时间,时长为预设时长的时间段;
第一确定单元,用于将在预设时间段内未接收到帧开始包的通道确定为异常通道。
在一些实施例中,确定模块包括:
计数单元,用于基于预设的计数起始条件及计数结束条件,对各通道所接收到的图像数据进行计数,其中,计数起始条件及计数结束条件均与帧开始包相关;
匹配单元,用于将各通道的计数结果与预设的计数阈值进行匹配;
第二确定单元,用于将计数结果与计数阈值不匹配的通道确定为异常通道。
在一些实施例中,缓存模块502,包括:
缓存单元,用于针对任一通道,将通道的图像数据缓存至对应的第一队列;
传输单元,用于当第一队列中已缓存的图像数据满足预设的第二数据量条件时,将第一队列中已缓存的图像数据传输至对应的存储空间。
在一些实施例中,该FPGA5还包括:
读取模块,用于从各存储空间顺序读取已缓存的图像数据;
处理模块,用于基于消隐信号,对读取出的各图像数据进行处理;
相应地,合并模块503,具体用于将处理后的各图像数据合并为目标数据。
对应于上文所提出的应用于客户端的图像信号处理方法,本申请还提供一种客户端,该客户端集成于图像信号处理系统中,此处不再对该图像信号处理系统进行赘述。请参阅图6,该客户端6包括:
第二接收模块601,用于通过第二队列,接收FPGA所发送的目标数据;
拆分模块602,用于基于预设的图像尺寸,对目标数据进行拆分,得到各图像传感器所采集的图像数据;
处理模块603,用于通过各图像传感器所对应的线程,对各图像数据并行地进行解码处理。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够将计算机程序代码携带到设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置、系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意5性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
0作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述5实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种图像信号处理方法,其特征在于,所述图像信号处理方法应用于图像信号处理系统中的现场可编程逻辑门阵列FPGA,所述图像信号处理系统还包括客户端和至少两个图像传感器,所述FPGA与各所述图像传感器分别通过不同的通道相连,且所述FPGA还与所述客户端相连,所述图像信号处理方法包括:
通过各所述通道接收通道数据,所述通道数据包括所述图像传感器采集的图像数据;
通过各所述通道对应的第一队列将各所述图像数据分别缓存至内存中对应的存储空间;
在各所述存储空间已缓存的所述图像数据均已满足预设的第一数据量条件后,将各所述存储空间中已缓存的所述图像数据合并为目标数据;
向所述客户端传输所述目标数据。
2.如权利要求1所述的图像信号处理方法,其特征在于,所述通道数据还包括:时钟数据;在所述通过各所述通道对应的第一队列将各所述图像数据分别缓存至内存中对应的存储空间之前,所述图像信号处理方法还包括:
确定是否存在异常通道;
在存在所述异常通道的情况下,基于除所述异常通道外的其它通道对所述异常通道的时钟数据进行替换,以及,基于预设的默认图像数据对所述异常通道的图像数据进行替换。
3.如权利要求2所述的图像信号处理方法,其特征在于,所述确定是否存在异常通道,包括:
在所有通道中接收到第一个帧开始包的情况下,检测除目标通道外的其它通道是否在预设时间段内接收到帧开始包,其中,所述目标通道为:接收到所述第一个帧开始包的通道,所述预设时间段指的是:起始时间为所述第一个帧开始包的接收时间,时长为预设时长的时间段;
将在所述预设时间段内未接收到帧开始包的通道确定为异常通道。
4.如权利要求2所述的图像信号处理方法,其特征在于,所述确定是否存在异常通道,包括:
基于预设的计数起始条件及计数结束条件,对各所述通道所接收到的图像数据进行计数,其中,所述计数起始条件及所述计数结束条件均与帧开始包相关;
将各所述通道的计数结果与预设的计数阈值进行匹配;
将计数结果与所述计数阈值不匹配的通道确定为异常通道。
5.如权利要求1所述的图像信号处理方法,其特征在于,所述通过各所述通道对应的第一队列将各所述图像数据分别缓存至内存中对应的存储空间,包括:
针对任一所述通道,将所述通道的所述图像数据缓存至对应的所述第一队列;
当所述第一队列中已缓存的所述图像数据满足预设的第二数据量条件时,将所述第一队列中已缓存的所述图像数据传输至对应的所述存储空间。
6.如权利要求1所述的图像信号处理方法,其特征在于,在所述将各所述存储空间中已缓存的所述图像数据合并为目标数据之前,所述图像信号处理方法还包括:
从各所述存储空间顺序读取已缓存的所述图像数据;
基于消隐信号,对读取出的各所述图像数据进行处理;
相应地,所述将各所述存储空间中已缓存的所述图像数据合并为目标数据,包括:
将处理后的各所述图像数据合并为目标数据。
7.一种图像信号处理方法,其特征在于,所述图像信号处理方法应用于图像信号处理系统中的客户端,所述图像信号处理系统还包括现场可编程逻辑门阵列FPGA和至少两个图像传感器,其中,所述客户端与所述FPGA相连,且所述FPGA还与各所述图像传感器相连,所述图像传感器用于采集图像数据,所述图像信号处理方法包括:
通过第二队列,接收所述FPGA所发送的目标数据;
基于预设的图像尺寸,对所述目标数据进行拆分,得到各所述图像传感器所采集的图像数据;
通过各所述图像传感器所对应的线程,对各所述图像数据并行地进行解码处理。
8.一种现场可编程逻辑门阵列FPGA,其特征在于,所述FPGA集成于图像信号处理系统,所述图像信号处理系统还包括客户端及至少两个图像传感器,其中,所述FPGA与各所述图像传感器分别通过不同的通道相连,且所述FPGA还与所述客户端相连;所述FPGA包括:
第一接收模块,用于通过各所述通道接收通道数据,所述通道数据包括所述图像传感器采集的图像数据;
缓存模块,用于通过各所述通道对应的第一队列将各所述图像数据分别缓存至内存中对应的存储空间;
合并模块,用于在各所述存储空间已缓存的所述图像数据均已满足预设的第一数据量条件后,将各所述存储空间中已缓存的所述图像数据合并为目标数据;
传输模块,用于向所述客户端传输所述目标数据。
9.一种客户端,其特征在于,所述客户端集成于图像信号处理系统,所述图像信号处理系统还包括现场可编程逻辑门阵列FPGA及至少两个图像传感器,其中,所述FPGA与各所述图像传感器分别通过不同的通道相连,且所述FPGA还与所述客户端相连;所述客户端包括:
第二接收模块,用于通过第二队列,接收所述FPGA所发送的目标数据;
拆分模块,用于基于预设的图像尺寸,对所述目标数据进行拆分,得到各所述图像传感器所采集的图像数据;
处理模块,用于通过各所述图像传感器所对应的线程,对各所述图像数据并行地进行解码处理。
10.一种图像信号处理系统,其特征在于,所述图像信号处理系统包括:至少两个图像传感器、如权利要求8所述的FPGA及如权利要求9所述的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310014070.1A CN118338144A (zh) | 2023-01-05 | 2023-01-05 | 一种图像信号处理方法、系统、fpga及客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310014070.1A CN118338144A (zh) | 2023-01-05 | 2023-01-05 | 一种图像信号处理方法、系统、fpga及客户端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118338144A true CN118338144A (zh) | 2024-07-12 |
Family
ID=91773290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310014070.1A Pending CN118338144A (zh) | 2023-01-05 | 2023-01-05 | 一种图像信号处理方法、系统、fpga及客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118338144A (zh) |
-
2023
- 2023-01-05 CN CN202310014070.1A patent/CN118338144A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200374482A1 (en) | Image transmission device and method including an image data receiver and a processor | |
JP6883377B2 (ja) | 表示ドライバ、表示装置及び表示ドライバの動作方法 | |
CN115460414B (zh) | 一种基板管理控制芯片的视频压缩方法、系统及相关组件 | |
CN116225990A (zh) | 基于fpga的多通道ddr读写仲裁装置 | |
CN104268113A (zh) | Dpi接口的lcd控制器以及其自适应带宽的方法 | |
CN103246754B (zh) | 一种高速数字信号采集、存储系统 | |
US9026703B2 (en) | Bus monitoring device, bus monitoring method, and program | |
CN112040284B (zh) | 多显示屏的同步显示控制方法、装置及存储介质 | |
CN108134912B (zh) | 一种视频流转换方法 | |
CN117032598B (zh) | Yuv视频传输系统、基板管理控制器、方法、设备和介质 | |
CN102625086A (zh) | 一种用于高清数字矩阵的ddr2存储方法和系统 | |
US20150263930A1 (en) | Methods for embedding an out-of-band signal into a usb capture stream | |
CN118338144A (zh) | 一种图像信号处理方法、系统、fpga及客户端 | |
US20200120045A1 (en) | Real-time data processing and storage apparatus | |
CN111757034A (zh) | 一种基于fpga的视频同步显示方法、装置和存储介质 | |
CN112995559B (zh) | 视频处理方法、装置及系统、显示控制器和显示控制系统 | |
US9965183B2 (en) | Method for processing data in storage device and storage device | |
CN114584782A (zh) | 一种图像发送方法、装置及电子设备 | |
CN117097881B (zh) | 一种图像处理模块的调试方法和装置 | |
CN102750244A (zh) | 分级缓冲的dma传送装置及传送方法 | |
CN103680402B (zh) | 一种基于leon3软核cpu的异步全彩led显示控制系统及其控制方法 | |
CN115833920B (zh) | 一种解调数据的传输方法和装置 | |
CN107608654B (zh) | 多路异步信息的传输控制装置及方法 | |
CN115357534B (zh) | 一种高速多路lvds采集系统及存储介质 | |
CN118214820B (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 |