成像数据处理方法及装置与流程

文档序号:21273320发布日期:2020-06-26 23:04阅读:290来源:国知局
成像数据处理方法及装置与流程

本申请实施例涉及数据处理技术领域,尤其涉及一种成像数据处理方法及装置。



背景技术:

随着技术的发展,成像设备的成像速度日益增高。一些成像设备例如共聚焦显微影像仪的成像速度几乎达到了机械硬盘实际写入速度的上限,这使得在对序列图像数据进行保存时部分成像数据可能无法正确写入硬盘。

为此,相关技术中采用双线程单缓冲区的方法,即写线程将待写入硬盘的数据放入缓冲区尾部,读线程从缓冲区头部读取数据写入硬盘,由此将序列成像数据保存到硬盘。

然而,在这种方法中,缓冲区作为共享资源,写线程和读线程不能同时使用该共享资源,这使得写操作和读操作不能同时进行,即,若写线程正在对缓冲区进行写操作,读线程需要等待写线程的写操作完成后才能对缓冲区进行读操作,反之亦然。成像设备的处理器在进行数据保存的同时还需要进行其他数据处理任务,保存数据时的等待会造成处理器资源的浪费,影响其他数据处理任务的执行,导致成像设备的处理效率较低,成像速度降低。



技术实现要素:

有鉴于此,本发明实施例提供一种成像数据处理方法和装置,用以避免成像设备的处理器在进行数据保存时由于需要等待而造成处理器资源的浪费,提高成像设备的处理器效率,进而提高成像设备的成像速度。

第一方面,本申请实施例提供了一种成像数据处理方法,其包括:

根据预设缓冲区的标识信息,确定可存储成像数据包且可访问的第一缓冲区和存储有成像数据包且可访问的第二缓冲区,以使得第一线程可在第一缓冲区内写入成像数据包,以及第二线程可从第二缓冲区读取成像数据包,其中,预设缓冲区的数量大于或等于2。

可选的,在本申请的一种实施例中,成像数据包包括:目标文件路径、帧序号和目标成像数据;对应的,第二线程可从第二缓冲区读取成像数据包包括:根据目标文件路径和帧序号,将目标成像数据写入目标文件路径对应的目标文件中。

可选的,在本申请的一种实施例中,根据目标文件路径和帧序号,将目标成像数据写入目标文件路径对应的目标文件,包括:

判断目标文件路径中是否存在对应的目标文件;

如果否,则创建目标文件,并根据帧序号将目标数据写入目标文件。

可选的,在本申请的一种实施例中,根据目标文件路径和帧序号,将所述目标成像数据写入所述目标文件路径对应的目标文件,包括:

判断所述目标文件路径中是否存在对应的所述目标文件;

如果是,则根据所述帧序号和所述目标文件的大小,将所述目标成像数据写入所述目标文件。

可选的,在本申请的一种实施例中,标识信息包括:状态标识和计数标识,状态标识用于指示预设缓冲区处于可访问状态或者禁止访问状态,计数标识用于指示预设缓冲区中当前存储的成像数据包的数量。

可选的,在本申请的一种实施例中,该成像数据处理方法还包括:

在第一线程在第一缓冲区内写入成像数据包之前,将第一缓冲区的状态标识设置为用于指示禁止访问状态;

在第一线程在第一缓冲区内写入成像数据包之后,将第一缓冲区的状态标识设置为用于指示可访问状态。

可选的,在本申请的一种实施例中,在将第一缓冲区的状态标识设置为用于指示可访问状态之后,还包括:

将第一缓冲区的计数标识调整为用于指示当前存储的成像数据包的数量增加1个。

可选的,在本申请的一种实施例中,该成像数据处理方法还包括:

在第二线程从第二缓冲区读取成像数据包之前,将第二缓冲区的状态标识设置为用于指示禁止访问状态;

在第二线程从第二缓冲区读取成像数据包之后,将第二缓冲区的状态标识设置为用于指示可访问状态。

可选的,在本申请的一种实施例中,在将第二缓冲区的状态标识设置为用于指示可访问状态之后,还包括:

将第二缓冲区的计数标识调整为用于指示当前存储的成像数据包的数量减少1个。

可选的,本申请实施例提供一种成像数据处理装置,其用于根据预设缓冲区的标识信息,确定可存储成像数据包且可访问的第一缓冲区和存储有所述成像数据包且可访问的第二缓冲区,以使得第一线程可在所述第一缓冲区内写入所述成像数据包,以及第二线程可从所述第二缓冲区读取所述成像数据包,其中,所述预设缓冲区的数量大于或等于2。

本申请实施例提供了一种成像数据处理方法和装置,该成像数据处理方法包括:根据预设缓冲区的标识信息,确定可存储成像数据包且可访问的第一缓冲区和存储有成像数据包且可访问的第二缓冲区,以使得第一线程可在第一缓冲区内写入成像数据包,以及第二线程可从第二缓冲区读取成像数据包,其中,预设缓冲区的数量大于或等于2。由于存在至少两个预设缓冲区,在同一时间最多只有一个预设缓冲区被确定为第二缓冲区,以用于第二线程读取成像数据包,因此,成像设备的处理器可以在剩余的预设缓冲区中确定第一缓冲区,用于第一线程写入成像数据包,第一线程无须等待即可向某个预设缓冲区写入数据,反之亦然。由此可以减少数据保存过程对成像设备的处理器资源的占用,使得处理器资源可以执行其他更多的数据处理任务,提高了成像设备的处理器的使用效率,进而提高了成像设备的成像速度。

附图说明

后文将参照附图以示例性而非限制性的方式详细描述本申请实施例的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比值绘制的。附图中:

图1为本申请实施例提供的一种成像数据处理方法的流程图;

图2为本申请实施例提供的一种成像数据处理方法的流程图;

图3为本申请实施例提供的一种成像数据处理方法的流程图;

图4为本申请实施例提供的一种成像数据保存至文件的方法的流程图;

图5为本申请实施例提供的一种成像数据保存至文件的方法的流程图;

图6为本申请实施例提供的一种成像数据保存至文件的方法的流程图;

图7为本申请实施例提供的一种成像数据保存至文件的方法的流程图。

具体实施方式

下面结合本发明实施例附图进一步说明本发明实施例具体实现。

实施例一

图1为本申请实施例提供的一种成像数据处理方法的流程图,该成像数据处理方法可以由成像设备的处理器执行,也可以由与成像设备连接的控制装置或服务器等执行,本实施例对此不作限定。为了便于描述,本实施例中以该成像数据处理方法由成像设备的处理器执行为例进行说明。如图1所示,该成像数据处理方法可以包括:

s101、根据预设缓冲区的标识信息,确定可存储成像数据包且可访问的第一缓冲区和存储有成像数据包且可访问的第二缓冲区。

其中,预设缓冲区的数量大于或等于2。

本实施例中,预设缓冲区可以是在成像设备的内存中预留的指定大小的存储空间,用于对待保存的成像数据包进行临时存储。成像设备对目标物进行成像后,通常需要将成像数据保存到硬盘等存储器以供后续使用。由于成像设备的成像速度与存储器的写入速度之间通常存在不匹配,因此需要通过设置这样的预设缓冲区来临时存储成像数据,解除二者之间的速度制约。

本实施例中,预设缓冲区的数量大于或等于2,意指在成像设备的内存中设置有至少两个这样的预设缓冲区。每个预设缓冲区设置有标识信息,根据标识信息可以判断当前是否可以在该预设缓冲区写入成像数据包或者从该预设缓冲区的读取成像数据包,换言之,标识信息用于指示预设缓冲区是否可访问、是否存储有成像数据包、是否有存储空间等。本实施例对标识信息的内容不做限定,可选的,在一种可能的实现方式中,标识信息可以表示四种状态:可读、可写、写数据中或读数据中。此处仅是举例,标识信息科根据实际需要进行设置。

可选的,预设缓冲区可以采用先进先出的存储方式,使得相对于单个预设缓冲区而言,成像数据的保存能够遵循成像数据产生顺序。

s102、第一线程在第一缓冲区内写入成像数据包,第二线程从第二缓冲区读取成像数据包。

本实施例中,第一线程用于向预设缓冲区中写入成像数据包,例如,第一线程可以每次向某个预设缓冲区写入1个成像数据包。可选的,第一线程每次在第一缓冲区内写入成像数据包时,可以将该成像数据包写在第一缓冲区的尾部,以使得相对于每个预设缓冲区,能够实现数据的先进先出。

本实施例中,第二线程用于从预设缓冲区中读取成像数据包,例如,第二线程可以每次从某个预设缓冲区读取1个数据包。可选的,第二线程每次从第二缓冲区读取成像数据包时,可以从第二缓冲区的头部读取数据,以使得相对于每个预设缓冲区,能够实现数据的先进先出。

本申请实施例中,成像设备的处理器例如可以在接收到写数据信号时,根据预设缓冲区的标识信息在预设缓冲区中确定可存储成像数据包且可访问的第一缓冲区,以使得第一线程可在第一缓冲区内写入成像数据包,例如在接收到指示预设缓冲区内有数据要读取的信号时,根据预设缓冲区的标识信息在预设缓冲区中确定存储有成像数据包且可访问的第二缓冲区,以使第二线程可从第二缓冲区读取成像数据包。由于存在至少两个预设缓冲区,在同一时间最多只有一个预设缓冲区被确定为第二缓冲区,以用于第二线程读取成像数据包,因此,成像设备的处理器可以在剩余的预设缓冲区中确定第一缓冲区,用于第一线程写入成像数据包,第一线程无须等待即可向某个预设缓冲区写入数据,反之亦然。由此可以减少数据保存过程对成像设备的处理器资源的占用,使得处理器资源可以执行其他更多的数据处理任务,提高了成像设备的处理器的使用效率,进而提高了成像设备的成像速度。

实施例二

图2为本申请实施例提供的成像数据处理方法的流程图。本实施例在图1所示实施例的基础上,进一步对接收到写数据信号时的成像数据处理方法的具体实现过程进行详细说明。需要说明的是,在成像设备的处理器接收到写数据信号时,第二线程可以正在从第二缓冲区读取成像数据包,也可以不进行成像数据包的读取,本实施例对此不做限定。为了便于描述,下文以在第二线程正在从第二缓冲区读取成像数据包时成像设备的处理器接收到写数据信号为例进行说明。如图2所示,本实施例提供的成像数据处理方法,可以包括以下步骤:

s201、响应于接收到写数据信号,根据预设缓冲区的标识信息,确定可存储成像数据包且可访问的第一缓冲区,预设缓冲区的数量大于或等于2。

其中,标识信息包括状态标识和计数标识。状态标识用于指示预设缓冲区处于可访问状态或者禁止访问状态。计数标识用于指示预设缓冲区中当前存储的成像数据包的数量。

本实施例中,写数据信号可以用于指示要成像数据包需要临时保存到预设缓冲区,其可以是成像设备有新的成像数据包需要保存而发出的请求信号。

本实施例中,根据状态标识确定预设缓冲区是否可访问,可访问状态可以是指预设缓冲区处于空闲中,禁止访问状态可以是指预设缓冲区处于写数据中或读数据中。每个预设缓冲区的初始状态为空闲,即每个预设缓冲区的初始状态标识用于指示预设缓冲区处于可访问状态。状态标识的表示形式不限,例如,状态标识为0表示预设缓冲区处于可访问状态,状态标识为1表示预设缓冲区处于禁止访问状态。此处仅为举例,根据实际设置,也可以设置为状态标识为1表示预设缓冲区处于可访问状态,状态标识为0表示预设缓冲区处于禁止访问状态。

本实施例中,根据计数标识确定预设缓冲区是否可存储成像数据包或是否存储有成像数据包。计数标识的表示形式不限,例如,可以使用十进制整数来表示,例如,计数标识初始为0,当有成像数据包写入预设缓冲区时增加1,当从预设缓冲区读取数据时减去1,计数标识为0表示预设缓冲区未存储有成像数据,计数标识为缓冲区可存储成像数据包的上限表示预设缓冲区不可存储成像数据包。此处仅为举例,根据实际需求设置其他类型的计数标识。

本实施例中,响应于接收到写数据信号,在第一种可能的实现方式中,可以根据状态标识在预设缓冲区中确定除第二缓冲区之外的预设缓冲区作为可访问缓冲区,然后根据计数标识在可访问缓冲区中确定可写缓冲区作为候选缓冲区,进而从候选缓冲区中随机选择或者按照预设规则选择一个缓冲区作为第一缓冲区。在第二种可能实现的方式中,可以根据计数标识在预设缓冲区中确定可写缓冲区,然后根据状态标识将第二缓冲区之外的可写缓冲区作为候选缓冲区,进而从候选缓冲区中随机选择或者按照预设规则选择一个缓冲区作为第一缓冲区。在第二种可能的实现方式中,根据状态标识和计数标识依次查询每个缓冲区,将第一次找到的可存储成像数据包且可访问的预设缓冲区作为第一缓冲区。

s202、将第一缓冲区的状态标识设置为用于指示禁止访问状态。

本实施例中,在确定了第一缓冲区之后,将第一缓冲区的状态标识设置为用于指示禁止访问状态,例如设置为“1”,表示第一线程正在占用第一缓冲区。若此时接收到读数据信号,需要在第一缓冲区之外的预设缓冲区内确定存储有成像数据包且可访问的第二缓冲区,以使得第二线程可从第二缓冲区读取成像数据包。

s203、第一线程在第一缓冲区内写入成像数据包。

本实施例中,第一线程可以在第二缓冲区的尾部写入成像数据包,以相对于第一缓冲区而言写入和读取成像数据包的过程遵循先进先出的规则。

s204、将第一缓冲区的状态标识设置为用于指示可访问状态。

本实施例中,在第一缓冲区内写入成像数据包之后,将第一缓冲区的状态标识设置为用于指示可访问状态,例如设置为“0”,表示第一线程不占用第一缓冲区。若此时接收到读数据信号,可以在包括第一缓冲区在内的所有预设缓冲区内确定存储有成像数据包且可访问的第二缓冲区,以使得第二线程可从第二缓冲区读取成像数据包。

s205、将第一缓冲区的计数标识调整为用于指示当前存储的成像数据包的数量增加1个。

本实施例中,在第一缓冲区内写入成像数据包之后,将第一缓冲区的计数标识调整为用于指示当前存储的成像数据包的数量增加1个,例如,在写入成像数据包之前,计数标识设置为“0”,在写入成像数据包之后,将计数标识设置为“1”,表示第一缓冲区内存储有1个成像数据包。

本申请实施例中,由于存在至少两个预设缓冲区,并且在同一时间最多只有一个预设缓冲区被确定为第二缓冲区,以用于第二线程读取成像数据包,因此,成像设备的处理器可以在剩余的预设缓冲区中确定第一缓冲区,用于第一线程写入数据。第一线程无须等待即可向某个预设缓冲区写入数据,由此可以减少数据保存过程对成像设备的处理器资源的占用,使得处理器资源可以执行其他更多的数据处理任务,提高了成像设备的处理器的使用效率,进而提高了成像设备的成像速度。

实施例三

图3为本申请实施例提供的成像数据处理方法的流程图。本实施例在图1所示实施例的基础上,进一步对接收到读数据信号时的成像数据处理方法的具体实现过程进行详细说明。需要说明的是,在成像设备的处理器接收到写数据信号时,第一线程可以正在第一缓冲区内写入成像数据包,也可以不进行成像数据包的写入,本实施例对此不做限定。为了便于描述,下文以在第一线程正在从第一缓冲区读取成像数据包时成像设备的处理器接收到写数据信号为例进行说明。如图3所示,本实施例提供的成像数据处理方法,可以包括以下步骤:

s301、响应于接收到读数据信号,根据预设缓冲区的标识信息,确定存储有成像数据包且可访问的第二缓冲区,预设缓冲区的数量大于或等于2。

其中,标识信息包括状态标识和计数标识,状态标识用于指示预设缓冲区处于可访问状态或者禁止访问状态,计数标识用于指示预设缓冲区中当前存储的成像数据包的数量。

本实施例中,读数据信号可以用于预设缓冲区中有成像数据包要被读取,其可以是在第一线程在第一缓冲区中写入成像数据包后发出的,也可以是成像设备的处理器查询预设缓冲区的标识信息例如计数标识得到的,本实施例对此不做限定。

本实施例中的状态标识和计数标识可以与s201中的状态标识和计数标识相同,此处不再赘述。

本实施例中,响应于接收到读数据信号,在第一种可能的实现方式中,可以根据状态标识在预设缓冲区中确定除第一缓冲区之外的预设缓冲区作为可放问缓冲区,然后根据计数标识在可访问缓冲区中确定可读缓冲区作为候选缓冲区,进而从候选缓冲区中随机选择或者按照预设规则选择一个缓冲区作为第二缓冲区。在第二种可能实现的方式中,可以根据计数标识在预设缓冲区中确定可读缓冲区,然后根据状态标识将第二缓冲区之外的可读缓冲区作为候选缓冲区,进而从候选缓冲区中随机选择或者按照预设规则选择一个缓冲区作为第二缓冲区。在第二种可能的实现方式中,根据状态标识和计数标识依次查询每个缓冲区,将第一次找到的存储有成像数据包且可访问的预设缓冲区作为第二缓冲区。

s302、将第二缓冲区的状态标识设置为用于指示禁止访问状态。

本实施例中,在确定了第二缓冲区之后,将第二缓冲区的状态标识设置为用于指示禁止访问状态,例如设置为“1”,表示第二线程正在占用第二缓冲区。若此时接收到写数据信号,需要在第二缓冲区之外的预设缓冲区内确定可存储成像数据包且可访问的第一缓冲区,以使得第一线程可从第一缓冲区读取成像数据包。

s303、第二线程从第二缓冲区读取成像数据包。

本实施例中,第二线程可以从第二缓冲区的头部读取成像数据包,以相对于第二缓冲区而言写入和读取成像数据包的过程遵循先进先出的规则。在读取到成像数据包之后还将该成像数据包保存至目标文件。

s304、将第二缓冲区的状态标识设置为用于指示可访问状态。

本实施例中,在从第二缓冲区读取成像数据包之后,将第二缓冲区的状态标识设置为用于指示可访问状态,例如设置为“0”,表示第二线程不占用第二缓冲区。若接收到写数据信号,成像设备的处理器可以在包括第二缓冲区在内的所有预设缓冲区内确定可存储成像数据包且可访问的第一缓冲区,以使得第一线程可从第一缓冲区读取成像数据包。

s305、将第二缓冲区的计数标识调整为用于指示当前存储的成像数据包的数量减少1个。

本实施例中,在从第二缓冲区内读取成像数据包之后,将第二缓冲区的计数标识调整为用于指示当前存储的成像数据包的数量减去1个,例如,在读取成像数据包之前,计数标识设置为“4”,在读取成像数据包之后,将计数标识设置为“3”,表示第一缓冲区内存储有3个成像数据包。

本申请实施例中,通过设置至少两个预设缓冲区,并且在同一时间最多只有一个预设缓冲区被确定为第一缓冲区,以用于第一线程写入成像数据包,因此,成像设备的处理器可以在剩余的预设缓冲区中确定第二缓冲区,以使得第二线程可读取成像数据。第二线程无须等待即可从某个预设缓冲区读取数据,提高了成像数据读取的效率。

实施例四

在图1至图3所示实施例提供的成像数据处理方法的基础上,本实施例四提供了一种成像数据处理方法,进一步对第二线程从第二缓冲区读取数据的场景进行说明。在该场景中,第二线程从第二缓冲区读取到成像数据包时还将该成像数据保存至文件,以便后续分析使用。

根据成像设备要保存的文件类型,目标文件可分为两种:单帧成像文件和序列成像文件,单帧成像文件中仅保存单帧成像数据,序列成像文件保存有连续多帧成像数据。由于成像数据包是在第一线程向缓冲区写入之前对每个单帧成像数据进行封装后的数据包,因此,在目标文件为单帧成像文件时,可以直接将每个成像数据包保存为目标文件,而在目标文件为序列成像文件时,需要将成像数据包保存至文件的合适位置,以使得目标文件中保存的序列成像数据的顺序遵循成像数据产生顺序。

为了使得保存序列成像数据至文件时遵循成像数据产生顺序,保证在全局上的先进先出。可选的,在本实施例的一种实施例中,在第一线程向缓冲区写入之前将单帧成像数据封装成至少包括目标文件路径、帧序号和目标成像数据,即成像数据包可以包括:目标文件路径、帧序号和目标成像数据,相应地,第二线程可以根据目标文件路径和帧序号,将目标成像数据写入目标文件路径对应的目标文件中。

本实施例中,目标成像数据可以是指成像设备采集并且需要保存的单帧图像数据,目标文件路径可以是指目标成像数据要被保存的目标文件对应的路径,帧序号可以是指目标成像数据要被保存在目标文件的位置。帧序号起始数可以根据需要进行定义,例如可以为0或1。若成像数据包要保存为单帧图像文件,则帧序号为起始数。若成像数据包要保存至序列图像文件,则帧序号表示目标成像数据要被保存在目标文件的位置。

下面参照图4和图5对本实施例中将成像数据保存至文件的过程进行说明,图4为本申请实施例提供的一种成像数据保存至文件的方法的流程图,图5为图4中所示成像数据保存至文件的方法的一种具体实现方式的流程图。需要说明的是,此处只是示例性说明,并不代表本申请局限于此。如图4所示,在本实施提供的成像数据保存至文件中,根据目标文件路径和帧序号,将目标成像数据写入目标文件路径对应的目标文件,包括:

s401、判断目标文件路径中是否存在对应的目标文件;

若目标文件路径中不存在对应的目标文件,则执行s402;可选的,若目标文件路径中存在对应的目标文件,则执行s403。

s402、创建目标文件,并根据帧序号将目标数据写入目标文件。

本实施例中,在目标文件路径不存在对应的目标文件时,创建目标文件,根据帧序号确定将目标成像数据写入目标文件的位置。若帧序号为起始数,则直接写入目标成像数据,否则需要根据帧序号和成像数据包的大小预留一定存储空间后写入目标成像数据。根据帧序号和成像数据包的大小预留存储空间是为了给在该成像数据包之前产生但目前尚未保存到目标文件的成像数据包预留位置,使得保存序列成像数据到文件中时遵循照成像数据产生顺序。

s403、根据帧序号和目标文件的大小,将目标成像数据写入目标文件。

本实施例中,在目标文件路径存在对应的目标文件时,可打开目标文件,获取目标文件当前的大小,并根据帧序号和目标文件当前的大小判断是直接在帧序号指示的位置写入目标成像数据,还是预留一定存储空间中写入目标数据。与s402的实现原理相同,预留存储空间是为了给在该成像数据包之前产生但目前尚未保存到目标文件的成像数据包预留位置,使得保存序列成像数据到文件中时遵循照成像数据产生顺序。

为了便于更好地理解,下面结合图5通过具体场景对s401~s403进行说明。在该场景中,帧序号用id表示且起始帧为0,成像数据包的大小用s表示,目标文件的大小用f表示。如图5所示,在读取到成像数据包时,首先判断目标文件路径是否存在对应的目标文件(s401),若目标文件路径不存在对应的目标文件,则创建目标文件(s4021)。在创建目标文件之后,判断成像数据包中的id是否为0(s4022),若id为0,则直接在该目标文件写入目标成像数据(s4023);若id不为0,则在该目标文件中写入大小为id*s的空白数据后写入目标成像数据(s4024),然后关闭目标文件(s404)。若目标文件路径存在对应的目标文件,则打开该目标文件(s4031),获取目标文件当前的大小f(s4032),并判断f是否小于id*s(s4033)。若f不小于id*s,则移动文件指针到id*s处,直接写入目标成像数据(s4034);若f小于id*s,则移动文件指针到目标文件末尾,在目标文件中写入大小为id*s-f的空白数据后写入目标成像数据(s4035),然后关闭目标文件。

本实施例中,由于在第二缓冲区中缓存的成像数据包中包括目标文件路径、帧序号和目标成像数据,帧序号指示目标成像数据要被保存在目标文件路径对应的目标文件的位置,因此,在保存成像数据包到文件时能够根据目标文件路径确定目标文件,根据帧序号和目标文件的大小确定目标成像数据要被保存在目标文件中的位置,使得目标文件中保存的序列成像数据的顺序遵循成像数据产生顺序,实现了成像数据保存过程中在全局上的先进先出。

可选的,在本申请的另一种实施例中,在第一线程向缓冲区写入之前将单帧成像数据封装成至少包括文件头、目标文件路径、帧序号和目标成像数据,即除了目标文件路径、帧序号和目标成像数据之外,成像数据包还包括文件头。相应地,第二线程根据目标文件路径、帧序号和文件头,将目标成像数据写入目标文件路径对应的目标文件中。

下面参照图6和图7对本实施例中将成像数据保存至文件的过程进行说明,图6为本申请实施例提供的一种成像数据保存至文件的方法的流程图,图5为图7中所示成像数据保存至文件的方法的一种具体实现方式的流程图。如图6所示,在本实施例提供的成像数据保存至文件方法中,根据目标文件路径、帧序号和文件头,将目标成像数据写入目标文件路径对应的目标文件中,包括:

s601、判断目标文件路径中是否存在对应的目标文件。

若目标文件路径中不存在对应的目标文件,则执行s602;若目标文件路径中存在对应的目标文件,则执行s603。

s602、创建目标文件,写入文件头并根据帧序号将目标数据写入目标文件。

s603、根据帧序号、目标文件的大小和文件头的大小,将目标成像数据写入目标文件。

为了便于更好地理解,下面结合图7通过具体场景对s601~s603进行说明。在该场景中,帧序号用id表示且起始帧为0,成像数据包的大小用s表示,目标文件的大小用f表示,文件头的大小用h表示。如图7所示,在读取到成像数据包时,首先判断目标文件路径是否存在对应的目标文件(图7中的s601),若目标文件路径不存在对应的目标文件,则创建目标文件(s6021)。在创建目标文件之后,写入文件头(s6022),然后判断成像数据包中的id是否为0(s6023),若id为0,则直接在该目标文件的文件头之后写入目标成像数据(s6024);若id不为0,则在该目标文件中写入大小为id*s的空白数据后写入目标成像数据(s6025),然后关闭目标文件(s604)。若目标文件路径存在对应的目标文件,则打开该目标文件(s6031),获取目标文件当前的大小f(s6032),并判断f是否小于h+id*s(s6033)。若f不小于h+id*s,则移动文件指针到h+id*s处,直接写入目标成像数据(s6034);若f小于h+id*s,则移动文件指针到目标文件末尾,在目标文件中写入大小为h+id*s-f的空白数据后写入目标成像数据(s6035),然后关闭目标文件(s604)。

图6和图7所示实现方式的技术原理和技术效果与图4和图5所示实现方式的技术原理和技术效果相同,此处不再赘述。

在本申请实施例中,由于存在至少两个预设缓冲区,在一定程度上隔离了第一线程和第二线程的操作,使得第一线程和第二线程可以并发读写成像数据包,减少了数据保存过程对成像设备的处理器资源的占用,提高了成像设备的处理器的使用效率,进而提高了成像设备的成像速度。同时,由于使成像数据包中包括目标文件路径、帧序号和目标成像数据和/或文件头,在保存成像数据包到文件时能够根据目标文件路径确定目标文件,根据帧序号和目标文件的大小确定目标成像数据要被保存在目标文件中的位置,使得目标文件中保存的序列成像数据的顺序遵循成像数据产生顺序,实现了成像数据保存过程中在全局上的先进先出。换言之,本实施例提供的成像数据处理方法利用多缓冲区避免了在数据保存过程中的等待问题,同时又解决了多缓冲区无法保证全局上的先进先出的问题,使得能够高效保存序列成像数据。

实施例五

本实施例提供了一种成像数据处理装置,该成像数据处理装置,用于根据预设缓冲区的标识信息,确定可存储成像数据包且可访问的第一缓冲区和存储有成像数据包且可访问的第二缓冲区,以使得第一线程可在第一缓冲区内写入成像数据包,以及第二线程可从第二缓冲区读取成像数据包,其中,预设缓冲区的数量大于或等于2。

可选的,在本申请的一种实施例中,标识信息包括:状态标识和计数标识,状态标识用于指示预设缓冲区处于可访问状态或者禁止访问状态,计数标识用于指示预设缓冲区中当前存储的成像数据包的数量。

可选的,在本申请的一种实施例中,该成像数据处理装置还用于在第一线程在第一缓冲区内写入成像数据包之前,将第一缓冲区的状态标识设置为用于指示禁止访问状态;

在第一线程在第一缓冲区内写入成像数据包之后,将第一缓冲区的状态标识设置为用于指示可访问状态。

可选的,在本申请的一种实施例中,该成像数据处理装置还用于用于在将第一缓冲区的状态标识设置为用于指示可访问状态之后,将第一缓冲区的计数标识调整为用于指示当前存储的成像数据包的数量增加1个。

可选的,在本申请的一种实施例中,该成像数据处理装置还用于在第二线程从第二缓冲区读取成像数据包之前,将第二缓冲区的状态标识设置为用于指示禁止访问状态;

在第二线程从第二缓冲区读取成像数据包之后,将第二缓冲区的状态标识设置为用于指示可访问状态。

可选的,在本申请的一种实施例中,该成像数据处理装置还用于在将第二缓冲区的状态标识设置为用于指示可访问状态之后,将第二缓冲区的计数标识调整为用于指示当前存储的成像数据包的数量减少1个。

可选的,在本申请的一种实施例中,成像数据包包括:目标文件路径、帧序号和目标成像数据;对应的,第二线程可根据目标文件路径和帧序号,将目标成像数据写入目标文件路径对应的目标文件中。

可选的,在本申请的一种实施例中,第二线程可用于判断目标文件路径中是否存在对应的目标文件;

如果否,则创建目标文件,并根据帧序号将目标数据写入目标文件。

可选的,在本申请的一种实施例中,第二线程可用于判断目标文件路径中是否存在对应的目标文件;

如果是,则根据帧序号和目标文件的大小,将目标成像数据写入目标文件。

本实施例提供的成像数据处理装置,用于执行本申请任意方法实施例提供的成像数据处理方法,其技术原理和技术效果类似,此处不再赘述。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1