CN113612936A - 一种csi相机高帧率图像采集方法 - Google Patents
一种csi相机高帧率图像采集方法 Download PDFInfo
- Publication number
- CN113612936A CN113612936A CN202110897214.3A CN202110897214A CN113612936A CN 113612936 A CN113612936 A CN 113612936A CN 202110897214 A CN202110897214 A CN 202110897214A CN 113612936 A CN113612936 A CN 113612936A
- Authority
- CN
- China
- Prior art keywords
- frame
- address
- buffer
- image data
- csi
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000008569 process Effects 0.000 claims abstract description 40
- 230000005540 biological transmission Effects 0.000 claims description 61
- 238000012545 processing Methods 0.000 claims description 33
- 238000010586 diagram Methods 0.000 description 10
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/765—Interface circuits between an apparatus for recording and another apparatus
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Studio Devices (AREA)
Abstract
本申请公开了一种CSI相机高帧率图像采集方法,包括:步骤1,将CSI控制器中的第一缓存帧地址设置为第二缓存帧地址;步骤2,当判定CSI控制器识别出的图像数据帧的帧头信号满足帧头中断阈值时,进入帧头中断服务,读取采集队列中的缓存帧地址配置为第三缓存帧地址,并根据CSI控制器中的第二缓存帧地址存储图像数据帧;步骤3,当判定CSI控制器识别出的图像数据帧的帧尾信号满足帧尾中断阈值时,进入帧尾中断服务,将第二缓存帧地址添加至交付队列,并将第三缓存帧地址配置为CSI控制器中存储下一帧图像数据帧的第二缓存帧地址。通过本申请中的技术方案,解决了英伟达平台图像数据采集过程中实时性较差以及线程图像采集过程中容易出现图像丢帧的问题。
Description
技术领域
本申请涉及图像采集的技术领域,具体而言,涉及一种CSI相机高帧率图像采集方法。
背景技术
英伟达nvidia在2019年推出的一款高性能嵌入式视觉与AI平台nvidia jetsontx2,该平台集成了Camera Serial Interface(CSI)图像传输接口,采用CSI传输协议进行图像数据采集。在CSI传输协议中,为了将传输线上的图像数据一帧一帧分隔开,CSI传输协议要求在传输图像数据的开始和结束位置分别添加帧头信号(帧开始)和帧尾信号(帧结束),以便解析出准确的单帧图像数据。
该平台采用双线程方式进行图像采集,包括采集线程和等待传输完成线程。在工业相机领域,对于图像采集过程的连续性、图像的完整性要求都会比较高,且需要支持用户的触发操作,即用户发送一个触发信号,图像传感器输出一帧采集图像。通过测试,该平台至少存在以下问题:
(1)由于平台运行过程中的线程并不是时时刻刻一直在运行的,且线程中需要按顺序执行一系列相关操作。如图1所示,由于触发采集图像的帧头信号完全由用户控制,当帧头信号在采集线程中特定的阶段到达时,如配置采集缓存帧地址阶段、开启图像传输阶段、超时错误处理阶段,将会导致采集线程无法捕获该帧头信号,因此,无法确定相应的缓存帧地址,特别是当图像的采集帧率达到330fps以上时,该平台会出现丢帧现象,导致平台图像采集的实时性较差。
(2)由于图像数据在传输过程中会受到外界环境的干扰,存在帧头信号和/或帧尾信号丢失的现象,为了保证线程能够正常运行,通常需要设置超时时间。但是,在等待传输完成线程中,如图2所示,当采集图像的分辨率较大、一帧图像的数据较多时,无法在设定的超时时间(如200ms)内接收到帧尾信号,该帧图像则会因等待传输完成线程判定其为错误帧被丢弃,导致平台出现丢帧现象。
发明内容
本申请的目的在于:解决nvidia jetson tx2平台图像数据采集过程中实时性较差以及线程图像采集过程中容易出现图像丢帧的问题。
本申请的技术方案是:提供了一种CSI相机高帧率图像采集方法,该方法适用于图像处理平台,图像处理平台中设置有CSI控制器,方法包括:步骤1,将CSI控制器中的第一缓存帧地址设置为第二缓存帧地址;步骤2,当判定CSI控制器识别出的图像数据帧的帧头信号满足帧头中断阈值时,进入帧头中断服务,读取采集队列中的缓存帧地址配置为第三缓存帧地址,并根据CSI控制器中的第二缓存帧地址存储图像数据帧;步骤3,当判定CSI控制器识别出的图像数据帧的帧尾信号满足帧尾中断阈值时,进入帧尾中断服务,将第二缓存帧地址添加至交付队列,并将第三缓存帧地址配置为CSI控制器中存储下一帧图像数据帧的第二缓存帧地址。
上述任一项技术方案中,进一步地,图像数据帧由图像传感器发送至CSI控制器,图像传感器依据CSI协议配置图像数据帧的帧头信号以及帧尾信号。
上述任一项技术方案中,进一步地,步骤1之前,方法还包括:CSI控制器读取采集队列中第一个缓存帧地址,记作保留缓存帧地址,读取采集队列中第二个缓存帧地址,记作第一缓存帧地址。
上述任一项技术方案中,进一步地,步骤2中具体包括:步骤21,当判定CSI控制器识别出的图像数据帧的帧头信号满足帧头中断阈值时,进入帧头中断服务,判断采集队列是否为空;步骤22,若是,将保留缓存帧地址配置为第三缓存帧地址,若否,读取采集队列中的缓存帧地址配置为第三缓存帧地址;步骤23,根据CSI控制器中的第二缓存帧地址存储图像数据帧,开启下一帧图像数据帧的传输,并重置帧头中断阈值,退出帧头中断服务。
上述任一项技术方案中,进一步地,步骤3中具体包括:步骤31,当判定CSI控制器识别出的图像数据帧的帧尾信号满足帧尾中断阈值时,进入帧尾中断服务,判断第二缓存帧地址是否为保留缓存帧地址;步骤32,若是,丢弃第二缓存帧地址中对应的存储数据,若否,将第二缓存帧地址添加至交付队列;步骤33,将第三缓存帧地址配置为CSI控制器中存储下一帧图像数据帧的第二缓存帧地址,并重置帧尾中断阈值,退出帧尾中断服务。
上述任一项技术方案中,进一步地,步骤23之前,方法还包括:判断传输标志位的状态是否处于使能状态,若是,对上一帧图像数据帧进行帧尾异常处理,若否,将传输标志位修改为使能状态,其中,帧尾异常处理的过程具体包括:步骤A,判断存储上一帧图像数据帧的第二缓存帧地址是否为保留缓存帧地址;步骤B,若是,将第三缓存帧地址保存为存储当前图像数据帧的第二缓存帧地址,若否,对存储上一帧图像数据帧的第二缓存帧地址进行残帧标记,并将标记后的第二缓存帧地址添加至交付队列。
上述任一项技术方案中,进一步地,步骤33之前,方法还包括:判断传输标志位的状态是否处于使能状态,若是,将传输标志位的状态修改为清除状态,若否,对当前图像数据帧进行帧头异常处理,其中,帧头异常处理的过程具体包括:步骤C,判断采集队列是否为空,若是,将保留缓存帧地址配置为第三缓存帧地址,若否,读取采集队列中的缓存帧地址配置为第三缓存帧地址;步骤D,将CSI控制器中的第二缓存帧地址配置为存储下一帧图像数据帧的地址,并开启下一帧图像数据帧的传输。
上述任一项技术方案中,进一步地,方法还包括:步骤4,生成任务队列调度信号,并退出帧尾中断服务;步骤5,根据任务队列调度信号,读取交付队列中的地址,并设置交付队列中地址的状态为可提交状态,添加至完成队列,完成队列用于向用户提供存储的图像数据帧。
上述任一项技术方案中,进一步地,采集队列中包含多个缓存帧地址,第一缓存帧地址为采集队列中的一个缓存帧地址。
上述任一项技术方案中,进一步地,图像处理平台为nvidia jetson tx2平台。
本申请的有益效果是:
本申请中的技术方案,利用帧头、帧尾信号触发中断服务,以便利用帧头中断服务和帧尾中断服务分别对存储图像数据帧的缓存帧地址进行配置,避免了线程图像采集过程中缓存地址配置前的较长准备时间,不仅有助于提高图像的实时性,而且解决了高采集帧频率下的丢帧问题。
在本申请的优选实现方式中,还设置了保留缓存帧地址,并对帧头中断服务与帧尾中断服务进行了相应的优化,以保证中断服务能够获取到有效的缓存地址,进而解决因中断服务出现卡顿、无法正常运行等异常现象造成的图像丢帧问题。
在本申请的优选实现方式中,还通过增加传输标志位,利用帧头中断服务与帧尾中断服务对传输标志位的状态进行判断,以解决因帧头、帧尾信号丢失导致的图像数据帧采集中断、采集不到图像等异常问题,提高了在nvidia jetson tx2平台中利用双中断服务进行图像数据采集的可靠性。
附图说明
本申请的上述和/或附加方面的优点在结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是现有技术中采集线程丢帧现象的示意图;
图2是现有技术中等待传输完成线程丢帧现象的示意图;
图3是根据本申请的一个实施例的CSI相机高帧率图像采集方法的示意流程图;
图4是根据本申请的一个实施例的线程方案与中断方案时序对比示意图;
图5是根据本申请的一个实施例的采集启动过程优化的示意流程图;
图6是根据本申请的一个实施例的帧头中断服务优化的示意流程图;
图7是根据本申请的一个实施例的帧尾中断服务优化的示意流程图;
图8是根据本申请的另一个实施例的帧头中断服务优化的示意流程图;
图9是根据本申请的另一个实施例的帧尾中断服务优化的示意流程图;
图10是根据本申请的一个实施例的任务队列处理过程的示意流程图。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施方式对本申请进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互结合。
在下面的描述中,阐述了很多具体细节以便于充分理解本申请,但是,本申请还可以采用其他不同于在此描述的其他方式来实施,因此,本申请的保护范围并不受下面公开的具体实施例的限制。
实施例一:
如图3所示,本实施例提供了一种CSI相机高帧率图像采集方法,该方法适用于图像处理平台,该图像处理平台为嵌入式视觉与AI平台nvidia jetson tx2,图像处理平台中设置有CSI控制器。
经过高采集帧频率测试,当采集帧率达到330fps以上时,该平台会出现丢帧现象,影响图像采集的实时性和连续性。而通过对该平台双线程图像采集架构的分析,研究人员发现,由于采集线程执行过程中各步骤占用的时间较长,如果采集线程调度不及时或者帧头信号在采集线程中特定的阶段到达时,如配置采集缓存帧地址阶段、开启图像传输阶段、超时错误处理阶段,将导致在帧头信号到达之前不能配置好相应的缓存帧地址,此时只能等待下一个帧头信号到来后再继续进行图像传输,导致当前帧头信号对应的图像丢失,产生图像丢帧。
因此,本实施例中利用双中断服务代替原有的双线程服务,由于中断的优先级是远高于线程的,只要中断信号到来,中断服务一般都是立刻执行的,而且中断服务不会被其他低优先级中断打断,也不会被系统内核调度打断,所以中断服务的实时性很好。
本实施例中,为了实现通过双中断服务进行图像数据帧的采集存储,本实施例中设定存储图像数据帧的地址队列包含三个,分别为采集队列、交付队列以及完成队列,其中,采集队列中包含多个缓存帧地址,每一个缓存帧地址对应一个数据存储空间。
在进行图像帧数据存储时,先由采集队列中提取出一个缓存帧地址进行数据存储,完成后该缓存帧地址被添加至交付队列,之后再被添加至完成队列,以便提交给用户。
本实施例中,将双中断服务进行图像数据帧采集的过程至少划分为采集启动过程、双中断服务切换缓存帧地址过程、任务队列处理过程,该方法具体包括:
步骤1,将CSI控制器中的第一缓存帧地址设置为第二缓存帧地址currentbuffer,其中,第二缓存帧地址current buffer为存储图像数据帧的存储地址,图像数据帧由图像传感器发送至CSI控制器,图像传感器依据CSI协议配置图像数据帧的帧头信号以及帧尾信号;
具体的,在采集启动过程中初始化任务队列,并从采集队列中读取一个缓存帧地址作为CSI控制器中存储图像数据帧的第一缓存帧地址,以便当检测到第一帧图像数据帧的帧头信号时,能够直接将该第一缓存帧地址作为当前正在进行图像传输的缓存帧地址,即第二缓存帧地址current buffer,因此,当第一帧图像数据帧到达时,能够直接进行存储,之后便可转交给交付队列,进行后续处理。
步骤2,当判定CSI控制器识别出的图像数据帧的帧头信号满足帧头中断阈值时,进入帧头中断服务,读取采集队列中的缓存帧地址配置为第三缓存帧地址future buffer,并根据CSI控制器中的第二缓存帧地址current buffer存储图像数据帧;
具体的,本实施例在双中断服务切换缓存帧地址过程中,首先设定:当检测到图像数据帧的帧头信号满足帧头中断阈值时,触发帧头中断服务,由帧头中断服务从采集队列中取出一个缓存帧地址,作为下一帧图像数据帧的存放位置,即第三缓存帧地址futurebuffer,配置给CSI控制器作为后续图像数据帧填充的位置。
之后,通过使能控制CSI控制器对应的传输寄存器,开启当前图像数据帧的传输,将其存储至第二缓存帧地址current buffer。
需要说明的是,本实施例中的帧头中断阈值可以设定为1,即每当接收到一个帧头信号时,触发进入帧头中断服务。
步骤3,当判定CSI控制器识别出的图像数据帧的帧尾信号满足帧尾中断阈值时,进入帧尾中断服务,将第二缓存帧地址current buffer添加至交付队列,并将第三缓存帧地址future buffer配置为CSI控制器中存储下一帧图像数据帧的第二缓存帧地址currentbuffer,交付队列用于输出图像数据帧。
具体的,当检测到图像数据帧的帧尾信号满足帧尾中断阈值时,触发帧尾中断服务,帧尾中断服务首先将已经填充有当前图像帧数据的第二缓存帧地址current buffer添加中交付队列中,以便用于后续的数据输出。之后,将帧头中断服务中确定的第三缓存帧地址future buffer配置为下一帧图像数据帧存储用的第二缓存帧地址current buffer。
本实施例中,通过帧头信号和帧尾信号的检测,实现了双中断服务切换缓存帧地址的过程,即在帧头中断服务中,根据当前图像数据帧的帧头信号提前读取下一帧的缓存帧地址;在帧尾中断服务中,根据帧尾信号将帧头中断服务中读取出的缓存帧地址配置为CSI控制器存储下一帧图像帧数据的缓存帧地址。正是通过上述双中断服务切换缓存帧地址的过程,优化了图像数据帧缓存帧地址配置的方式,缩短了地址配置的时间,有助于解决高帧率图像采集过程中的丢帧问题。
如图4所示,当采集帧率达到330fps以上时,采集线程中由于不能及时配置第二帧图像数据的缓存帧地址,将导致第二帧图像数据的丢失。而通过采用本实施例中的技术方案,由于在检测到第一帧图像数据的帧头信号进入帧头中断服务后,已经提前配置好了第三缓存帧地址future buffer,当第二帧图像数据的帧头信号到达时,即可实现对第二帧图像数据的实时存储,优化了平台图像采集的实时性。
经实测,本实施例中的方案可以做到3000fps不丢帧,并且采集过程中因为不存在线程方案中等超时的过程,所以同时能够解决触发采集或者分辨率过大导致的异常帧、残帧等问题,提升了nvidia jetson tx2平台的图像采集性能。
实施例二:
在进行双中断图像数据采集的过程中,通过对大量的图像数据采集过程统计发现,当采集帧率较高时,双中断方案程序运行过程中进场出现卡顿甚至无法正常运行的情况,且发生此类情况时伴随着丢帧现象。
通过研究发现,当某一时间段内的采集帧频率突然加大,或者当用户取出采集队列中所有的缓存帧地址且系统中未接受到新释放的缓存帧地址时,将会导致进入帧头中断服务后,无法从采集队列中读取有效缓存帧地址的情况,即帧头中断服务将会取出一个空的缓存帧地址,该缓存帧地址是没有地址空间去存储图像数据帧的,导致后续的帧尾中断服务无法正常执行,也就无法准备下次帧头中断服务和开启下一帧图像数据帧的传输,从而导致图像处理平台崩溃或者卡死。
本实施例为了防止图像处理平台发生卡顿、崩溃或者卡死的现象,在上述实施例的基础上,本实施例对上述高帧率图像采集方法进行了优化,如图5所示,在步骤1之前,方法还包括:
CSI控制器读取采集队列中第一个缓存帧地址,记作保留缓存帧地址,读取采集队列中第二个缓存帧地址,记作第一缓存帧地址。
具体的,在采集启动过程,对任务队列进行初始化,并从采集队列中提起取出一个缓存帧地址,作为保留缓存帧地址。如果出现进入帧头中断服务后无法从采集队列中读取有效缓存帧地址的情况,则使用该保留缓存帧地址接收图像数据帧。
需要说明的是,由于上述情况仅出现在超高采集帧率下,已经超出了平台的处理带宽,丢帧不可避免,因此,该保留缓存帧地址可以不提交到交付队列,仅用于保证帧头、帧尾中断服务能够正常运行,保证采集启动过程正常运转。
之后,再从采集队列中取出第二个缓存帧地址,记作第一缓存帧地址,作为采集启动过程后第一帧图像数据帧的第二缓存帧地址current buffer。并设置帧头中断阈值以及帧尾中断阈值,开启CSI图像传输通道和图像传感器sensor图像数据传输。
需要说明的是,图像传感器sensor是图像数据的来源,当图像传感器sensor的图像数据中的帧头信号到来时,帧头中断服务会被启动;当帧尾信号到来时,帧尾中断服务会被启动。采集启动过程只执行一次,它会作为第二阶段“双中断服务切换缓存帧地址过程”的入口,后续循环采集图像过程由第二阶段实现。
相应的,对上述实施例中的步骤2和步骤3进行优化,如图6所示,该步骤2中具体包括:
步骤21,当判定CSI控制器识别出的图像数据帧的帧头信号满足帧头中断阈值时,进入帧头中断服务,判断采集队列是否为空;
步骤22,若是,将保留缓存帧地址配置为第三缓存帧地址future buffer,
若否,读取采集队列中的缓存帧地址配置为第三缓存帧地址future buffer;
步骤23,根据CSI控制器中的第二缓存帧地址current buffer存储图像数据帧,开启下一帧图像数据帧的传输,并重置帧头中断阈值,退出帧头中断服务。
具体的,在当前图像数据帧已经传输到了帧头或帧尾时,才会触发第二阶段中的两个中断服务,而这两个中断服务配置的是下一帧图像数据帧传输时要使用的缓存帧地址。
因此,在帧头中断服务过程中,需要判断采集队列是否为空,如果是空,为了保证中断服务能够正常运行,将保留缓存帧地址配置为第三缓存帧地址future buffer;如果不是空,则将读取采集队列中的缓存帧地址配置为第三缓存帧地址future buffer。使能CSI控制器对应的传输寄存器,开启当前下一帧图像数据帧的传输,根据CSI控制器中的第二缓存帧地址current buffer存储图像数据帧。
并设置(重置)下次触发帧头中断服务的帧头中断阈值,为下帧图像数据帧传输进入帧头中断做准备工作。之后,使能帧头中断,等待下帧图像数据帧的帧头信号的到来,结束帧头中断服务。
本实施例中,帧头中断服务的主要作用是设置下一帧图像数据帧传输的地址,并开启当前帧头信号对应的图像数据帧的传输,同时将该地址保存为第三缓存帧地址futurebuffer,提供给帧尾中断服务去替换第二缓存帧地址current buffer。
如图7所示,该步骤3中具体包括:
步骤31,当判定CSI控制器识别出的图像数据帧的帧尾信号满足帧尾中断阈值时,进入帧尾中断服务,判断第二缓存帧地址current buffer是否为保留缓存帧地址;
步骤32,若是,丢弃第二缓存帧地址current buffer中对应的存储数据,若否,将第二缓存帧地址current buffer添加至交付队列;
步骤33,将第三缓存帧地址future buffer配置为CSI控制器中存储下一帧图像数据帧的第二缓存帧地址current buffer,并重置帧尾中断阈值,退出帧尾中断服务。
具体的,进入帧尾中断服务后,判断用于存储当前图像数据帧的地址是否为保留缓存帧地址。如果是的话,由于保留缓存帧地址并不提交到交付队列,因此,将其存储的数据丢弃,直接将帧头中断服务中确定的第三缓存帧地址future buffer配置为CSI控制器中存储下一帧图像数据帧的第二缓存帧地址current buffer。
如果不是的话,则将第二缓存帧地址current buffer添加至交付队列,之后将帧头中断服务中确定的第三缓存帧地址future buffer配置为CSI控制器中存储下一帧图像数据帧的第二缓存帧地址current buffer。
并设置下次触发帧尾中断服务的帧尾中断阈值,为下帧图像数据帧传输进入帧尾中断做准备工作。之后,使能帧尾中断,等待下帧图像数据帧的帧为信号的到来,退出帧尾中断服务。
本实施例中,帧尾中断服务的主要作用是将当前图像数据帧传输完成的第二缓存帧地址current buffer交给上层,并将第三缓存帧地址future buffer设置给第二缓存帧地址current buffer。
实施例三:
本领域技术人员能够理解的是,在nvidia jetson tx2平台中,图像数据是通过CSI协议规定的电平信号在导线上传输的,由于类似电磁干扰等因素的影响,在导线上传输的电平信号会出现抖动现象,严重时会导致CSI控制器对电平信号的识别发生错误。当CSI控制器对帧头、帧尾信号进行校验时,如果其中某位电平信号识别错误,将导致帧头或帧尾信号校验错误,CSI控制器会直接将错误的数据包丢弃,从而出现帧头、帧尾丢失的情况,进而影响后续的数据传输。
为了避免在双中断图像数据采集的过程中,发生由于帧头、帧尾信号丢失导致的图像数据帧采集中断、采集不到图像等异常问题,在上述实施例的基础上,本实施例对上述高帧率图像采集方法进行了优化,如图8所示,步骤23之前,该方法还包括:
判断传输标志位的状态是否处于使能状态,若是,对上一帧图像数据帧进行帧尾异常处理,若否,将传输标志位修改为使能状态,其中,帧尾异常处理的过程具体包括:
步骤A,判断存储上一帧图像数据帧的第二缓存帧地址current buffer是否为保留缓存帧地址;
步骤B,若是,将第三缓存帧地址future buffer保存为存储当前图像数据帧的第二缓存帧地址current buffer,
若否,对存储上一帧图像数据帧的第二缓存帧地址current buffer进行残帧标记,并将标记后的第二缓存帧地址current buffer添加至交付队列。
具体的,在帧头中断服务中添加变量,作为传输标志位,来判断是否出现帧头、帧尾信号丢失的现象,并进行如下定义:
a.当传输开始或者一副图像传输完毕时,传输标志位会被清除;
b.当帧头到来时,传输标志位会被使能。
因此,可以得出以下结论:
1、正常传输情况下,帧头中断服务中的传输标志位应该是清除状态,帧头中断服务会将该传输标志位的状态修改为使能状态;而帧尾中断服务中的传输标志位应该是使能状态,帧尾中断服务会将该状态标志位修改为清除状态。
2、帧头中断服务中如果传输标志位的状态为使能状态,则表明上一帧图像数据帧对应的帧尾信号丢失。
3、帧尾中断服务中如果传输标志位的状态为清除状态,则表明当前图像数据帧的帧头信号丢失。
因此,在进入帧头中断服务配置完第三缓存帧地址future buffer后,对传输标志位的状态进行判断,当其为使能状态时,表明上一帧图像数据帧的帧尾信号因干扰而丢失,需要进行帧尾异常处理,具体包括:
判断第二缓存帧地址current buffer是否是保留缓存帧地址,如果是保留缓存帧地址,将第三缓存帧地址future buffer保存为第二缓存帧地址current buffer即可;如果不是保留缓存帧地址,则将该buffer标记为残帧,然后添加到交付队列中,并将第三缓存帧地址future buffer保存为第二缓存帧地址current buffer。再由交付队列添加至完成队列,当用户取到完成队列中的该帧图像数据帧后,可以获取到其对应的状态,对其是否为残帧进行判断,以便自行选择后续处理方式。
当其清除状态时,表明图像数据帧传输正常,执行步骤23即可。
同样的,如图9所示,步骤33之前,该方法还包括:
判断传输标志位的状态是否处于使能状态,若是,将传输标志位的状态修改为清除状态,若否,对当前图像数据帧进行帧头异常处理,其中,帧头异常处理的过程具体包括:
步骤C,判断采集队列是否为空,若是,将保留缓存帧地址配置为第三缓存帧地址future buffer,
若否,读取采集队列中的缓存帧地址配置为第三缓存帧地址future buffer;
步骤D,将CSI控制器中的第二缓存帧地址配置为存储下一帧图像数据帧的地址,并开启下一帧图像数据帧的传输。
具体的,帧尾中断服务中,如果传输标志位不是使能状态,表明当前图像数据帧的帧头信号丢失,此时,进行类似帧头中断服务中的过程:
判断采集队列是否为空,如果是空,为了保证中断服务能够正常运行,将保留缓存帧地址配置为第三缓存帧地址future buffer;如果不是空,则将读取采集队列中的缓存帧地址配置为第三缓存帧地址future buffer。使能CSI控制器对应的传输寄存器,开启当前下一帧图像数据帧的传输,根据CSI控制器中的第二缓存帧地址current buffer存储图像数据帧。
实施例四:
在上述实施例的基础上,为了缩短中断处理时间,避免中断服务时间过长会导致其他平台服务无法及时得到调度,从而出现卡顿、性能下降等问题,本实施例将一些不是必须在中断服务中执行的数据处理流程放到任务队列处理过程中,因此,在帧尾中断服务结束之前,设定其会发送一个任务队列调度信号,具体任务会由平台去调度执行,这样可以大大缩短中断服务的执行时间,保证系统的调度性能和响应性能。
如图10所示,该方法中还包括:
步骤4,生成任务队列调度信号,并退出帧尾中断服务;
步骤5,根据任务队列调度信号,读取交付队列中的地址,并设置交付队列中地址的状态为可提交状态,添加至完成队列,完成队列用于向用户提供存储的图像数据帧。
具体的,当交付队列中的地址添加至完成队列后,相机驱动框架会发出一个图像完成信号,以通知用户可以从完成队列中取出图像数据,具体实现过程本实施例并不限定。
以上结合附图详细说明了本申请的技术方案,本申请提出了一种CSI相机高帧率图像采集方法,该方法包括:步骤1,将CSI控制器中的第一缓存帧地址设置为第二缓存帧地址;步骤2,当判定CSI控制器识别出的图像数据帧的帧头信号满足帧头中断阈值时,进入帧头中断服务,读取采集队列中的缓存帧地址配置为第三缓存帧地址,并根据CSI控制器中的第二缓存帧地址存储图像数据帧;步骤3,当判定CSI控制器识别出的图像数据帧的帧尾信号满足帧尾中断阈值时,进入帧尾中断服务,将第二缓存帧地址添加至交付队列,并将第三缓存帧地址配置为CSI控制器中存储下一帧图像数据帧的第二缓存帧地址。通过本申请中的技术方案,解决了英伟达平台图像数据采集过程中实时性较差以及线程图像采集过程中容易出现图像丢帧的问题。
本申请中的步骤可根据实际需求进行顺序调整、合并和删减。
本申请装置中的单元可根据实际需求进行合并、划分和删减。
尽管参考附图详地公开了本申请,但应理解的是,这些描述仅仅是示例性的,并非用来限制本申请的应用。本申请的保护范围由附加权利要求限定,并可包括在不脱离本申请保护范围和精神的情况下针对发明所作的各种变型、改型及等效方案。
Claims (10)
1.一种CSI相机高帧率图像采集方法,其特征在于,所述方法适用于图像处理平台,所述图像处理平台中设置有CSI控制器,所述方法包括:
步骤1,将所述CSI控制器中的第一缓存帧地址设置为第二缓存帧地址;
步骤2,当判定所述CSI控制器识别出的所述图像数据帧的帧头信号满足帧头中断阈值时,进入帧头中断服务,读取采集队列中的缓存帧地址配置为第三缓存帧地址,并根据所述CSI控制器中的第二缓存帧地址存储所述图像数据帧;
步骤3,当判定所述CSI控制器识别出的所述图像数据帧的帧尾信号满足帧尾中断阈值时,进入帧尾中断服务,将所述第二缓存帧地址添加至交付队列,并将所述第三缓存帧地址配置为所述CSI控制器中存储下一帧图像数据帧的第二缓存帧地址。
2.如权利要求1所述的CSI相机高帧率图像采集方法,其特征在于,所述图像数据帧由图像传感器发送至所述CSI控制器,所述图像传感器依据CSI协议配置所述图像数据帧的所述帧头信号以及所述帧尾信号。
3.如权利要求1所述的CSI相机高帧率图像采集方法,其特征在于,所述步骤1之前,所述方法还包括:
所述CSI控制器读取所述采集队列中第一个缓存帧地址,记作保留缓存帧地址,
读取所述采集队列中第二个缓存帧地址,记作所述第一缓存帧地址。
4.如权利要求3所述的CSI相机高帧率图像采集方法,其特征在于,所述步骤2中具体包括:
步骤21,当判定所述CSI控制器识别出的所述图像数据帧的帧头信号满足帧头中断阈值时,进入帧头中断服务,判断所述采集队列是否为空;
步骤22,若是,将所述保留缓存帧地址配置为所述第三缓存帧地址,
若否,读取采集队列中的缓存帧地址配置为第三缓存帧地址;
步骤23,根据所述CSI控制器中的第二缓存帧地址存储所述图像数据帧,开启下一帧图像数据帧的传输,并重置所述帧头中断阈值,退出所述帧头中断服务。
5.如权利要求4所述的CSI相机高帧率图像采集方法,其特征在于,所述步骤3中具体包括:
步骤31,当判定所述CSI控制器识别出的所述图像数据帧的帧尾信号满足帧尾中断阈值时,进入帧尾中断服务,判断所述第二缓存帧地址是否为所述保留缓存帧地址;
步骤32,若是,丢弃所述第二缓存帧地址中对应的存储数据,
若否,将所述第二缓存帧地址添加至交付队列;
步骤33,将所述第三缓存帧地址配置为所述CSI控制器中存储下一帧图像数据帧的第二缓存帧地址,并重置所述帧尾中断阈值,退出所述帧尾中断服务。
6.如权利要求4所述的CSI相机高帧率图像采集方法,其特征在于,所述步骤23之前,所述方法还包括:
判断传输标志位的状态是否处于使能状态,若是,对上一帧图像数据帧进行帧尾异常处理,若否,将所述传输标志位修改为使能状态,其中,所述帧尾异常处理的过程具体包括:
步骤A,判断存储上一帧图像数据帧的第二缓存帧地址是否为所述保留缓存帧地址;
步骤B,若是,将所述第三缓存帧地址保存为存储当前图像数据帧的第二缓存帧地址,
若否,对所述存储上一帧图像数据帧的第二缓存帧地址进行残帧标记,并将标记后的第二缓存帧地址添加至所述交付队列。
7.如权利要求5所述的CSI相机高帧率图像采集方法,其特征在于,所述步骤33之前,所述方法还包括:
判断传输标志位的状态是否处于使能状态,若是,将所述传输标志位的状态修改为清除状态,若否,对当前图像数据帧进行帧头异常处理,其中,所述帧头异常处理的过程具体包括:
步骤C,判断所述采集队列是否为空,若是,将所述保留缓存帧地址配置为所述第三缓存帧地址,
若否,读取采集队列中的缓存帧地址配置为第三缓存帧地址;
步骤D,将CSI控制器中的第二缓存帧地址配置为存储下一帧图像数据帧的地址,并开启下一帧图像数据帧的传输。
8.如权利要求1至7中任一项所述的CSI相机高帧率图像采集方法,其特征在于,所述方法还包括:
步骤4,生成任务队列调度信号,并退出所述帧尾中断服务;
步骤5,根据所述任务队列调度信号,读取所述交付队列中的地址,并设置所述交付队列中地址的状态为可提交状态,添加至完成队列,所述完成队列用于向用户提供存储的所述图像数据帧。
9.如权利要求1所述的CSI相机高帧率图像采集方法,其特征在于,所述采集队列中包含多个缓存帧地址,所述第一缓存帧地址为所述采集队列中的一个缓存帧地址。
10.如权利要求1所述的CSI相机高帧率图像采集方法,其特征在于,所述图像处理平台为nvidia jetson tx2平台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110897214.3A CN113612936B (zh) | 2021-08-05 | 2021-08-05 | 一种csi相机高帧率图像采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110897214.3A CN113612936B (zh) | 2021-08-05 | 2021-08-05 | 一种csi相机高帧率图像采集方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113612936A true CN113612936A (zh) | 2021-11-05 |
CN113612936B CN113612936B (zh) | 2024-07-09 |
Family
ID=78307163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110897214.3A Active CN113612936B (zh) | 2021-08-05 | 2021-08-05 | 一种csi相机高帧率图像采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113612936B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5375119A (en) * | 1991-10-30 | 1994-12-20 | Nokia Telecommunications Oy | Method for handling data transmission frames of variable length with a channel controller and for writing them to a cyclic buffer memory |
JP2006065591A (ja) * | 2004-08-26 | 2006-03-09 | Matsushita Electric Ind Co Ltd | 受信フレーム処理装置、通信処理装置、および受信フレーム処理方法 |
CN102438117A (zh) * | 2010-09-29 | 2012-05-02 | 联芯科技有限公司 | 手持终端上的摄像头图像数据采集方法及手持终端 |
US20160147679A1 (en) * | 2014-11-25 | 2016-05-26 | Intel Corporation | Posted interrupt architecture |
WO2017096633A1 (zh) * | 2015-12-09 | 2017-06-15 | 美的集团股份有限公司 | Uart的数据处理控制方法及控制装置 |
CN110519497A (zh) * | 2019-08-28 | 2019-11-29 | 中国大恒(集团)有限公司北京图像视觉技术分公司 | 一种基于vdma的零拷贝触发采集装置及方法 |
CN112559198A (zh) * | 2019-09-10 | 2021-03-26 | 北京东土科技股份有限公司 | 总线数据存储到存储器上的方法、存储装置及存储介质 |
-
2021
- 2021-08-05 CN CN202110897214.3A patent/CN113612936B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5375119A (en) * | 1991-10-30 | 1994-12-20 | Nokia Telecommunications Oy | Method for handling data transmission frames of variable length with a channel controller and for writing them to a cyclic buffer memory |
JP2006065591A (ja) * | 2004-08-26 | 2006-03-09 | Matsushita Electric Ind Co Ltd | 受信フレーム処理装置、通信処理装置、および受信フレーム処理方法 |
CN102438117A (zh) * | 2010-09-29 | 2012-05-02 | 联芯科技有限公司 | 手持终端上的摄像头图像数据采集方法及手持终端 |
US20160147679A1 (en) * | 2014-11-25 | 2016-05-26 | Intel Corporation | Posted interrupt architecture |
WO2017096633A1 (zh) * | 2015-12-09 | 2017-06-15 | 美的集团股份有限公司 | Uart的数据处理控制方法及控制装置 |
CN110519497A (zh) * | 2019-08-28 | 2019-11-29 | 中国大恒(集团)有限公司北京图像视觉技术分公司 | 一种基于vdma的零拷贝触发采集装置及方法 |
CN112559198A (zh) * | 2019-09-10 | 2021-03-26 | 北京东土科技股份有限公司 | 总线数据存储到存储器上的方法、存储装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
操虹;卢荣胜;马程;: "基于ARM9的多路视频采集系统设计", 现代显示, no. 05, 15 May 2009 (2009-05-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN113612936B (zh) | 2024-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112073246B (zh) | Oam消息传输方法、传输设备及存储介质 | |
US7228348B1 (en) | System and method for triggering communications data capture | |
US8572299B2 (en) | Hardware accelerator module and method for setting up same | |
CN116684659B (zh) | Bmc芯片的视频输出控制模块、方法、设备和服务器 | |
CN111988243B (zh) | 共享缓冲区状态的相干捕获 | |
CN110519497B (zh) | 一种基于vdma的零拷贝触发采集装置及方法 | |
US7328292B2 (en) | Arbitration method and device | |
US20090147796A1 (en) | Input/output buffer controller for optimized memory utilization and prevention of packet under-run errors | |
CN113722069A (zh) | 一种基于fpga的新型总线轮询调度方法及系统 | |
US9258834B2 (en) | Method of mobile terminal internal communications | |
CN113612936B (zh) | 一种csi相机高帧率图像采集方法 | |
CN110996120A (zh) | 一种视频流发送、接收方法 | |
WO2011137833A1 (zh) | 一种网络处理器和网络处理器所存程序的诊断方法 | |
CN112506722B (zh) | 一种应用于交换机的自检复位方法及装置 | |
CN115061959B (zh) | 数据交互方法、装置、系统、电子设备和存储介质 | |
CN110445730A (zh) | 基于WinPcap的网络数据实时采集存储方法和装置 | |
CN114756489A (zh) | 用于诊断数据的直接存储器访问(dma)引擎 | |
CN115442317A (zh) | 报文处理方法、装置、系统、设备及介质 | |
US9306854B2 (en) | Method and apparatus for diagnosing interface oversubscription and microbursts | |
US9047409B2 (en) | Method for processing data of a control unit in a data communication device | |
CN110740251B (zh) | 一种多相机同步取流方法、装置及系统 | |
US5793803A (en) | Underrecovery system and method for block processing modems | |
CN112751873B (zh) | 蓝牙midi数据转换方法、电路及存储介质 | |
CN112770047B (zh) | 用于图像实时存储的控制方法和控制装置及电子设备 | |
CN113193940B (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 |