Scintillation pulse event data acquisition method and device, equipment and storage medium

By employing buffer group alternating reception and parallel processing techniques in high-energy ray detection, the challenges of high-speed transmission and real-time coincidence calculation in scintillation pulse event data acquisition were solved, improving data acquisition and processing efficiency and optimizing image reconstruction quality.

CN121763343APending Publication Date: 2026-03-31RAYCAN TECH CO LTD SU ZHOU
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-11-21
Publication Date
2026-03-31

AI Technical Summary

Technical Problem

In high-energy ray detection, the acquisition of scintillation pulse events generates a huge amount of data, making it difficult to achieve high-speed transmission and real-time coincidence calculation. It also consumes a lot of external storage space, and traditional coincidence schemes rely on the timing of events, resulting in long processing times and the discarding of a large amount of usable data, which affects the quality of image reconstruction.

Method used

By employing at least two buffer groups to alternately receive data and generate buffer snapshots, combined with parallel processing technology, high-speed data acquisition and parallel processing are achieved through the alternating reception and release of space by buffer groups, and computation is optimized by utilizing CPU and GPU resources.

Benefits of technology

It effectively solves the challenges of high-speed data transmission and real-time composite computing, improves data acquisition capabilities and composite processing speed, makes full use of computing resources, avoids data loss and the discarded flicker pulse single events in traditional solutions, and optimizes image reconstruction quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121763343A_ABST
    Figure CN121763343A_ABST
Patent Text Reader

Abstract

The invention discloses a data acquisition method for a scintillation pulse event, and the method comprises the steps: providing at least two buffer region groups, and each buffer region group comprises a plurality of buffer regions corresponding to a plurality of detector units of a detector; enabling the at least two buffer area groups to alternately receive flicker pulse event data, and transferring a data receiving task to the other buffer area group when any buffer area in the buffer area group for receiving the data is filled; generating the flash pulse event data in the filled buffer area group into a buffer area snapshot for coincidence processing; and after the snapshot of the filled buffer area is completed, releasing the filled buffer area group space to prepare for replacing the next data receiving task. According to the data acquisition method and device for the scintillation pulse event, the electronic equipment and the storage medium disclosed by the invention, the challenge of high-speed transmission of huge data volume generated in a short time by scintillation pulse acquisition can be effectively overcome, and the local time coincidence condition can be fully met.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of signal processing, and in particular to a method, apparatus, device, and storage medium for acquiring data of flicker pulse events. Background Technology

[0002] In many applications of high-energy ray detection, high-energy rays, such as gamma rays, are converted into visible light by scintillation crystals, and this visible light is further converted into scintillation pulse signals by photoelectric conversion devices.

[0003] PET (Positron Emission Tomography) is a non-invasive nuclear medicine imaging method that utilizes high-energy radiation. PET is a functional metabolic molecular imaging device that plays a crucial role in the research, diagnosis, and treatment of oncology and some neurological diseases.

[0004] like Figure 1 The illustration shows that after positrons annihilate within the patient's body, a pair of gamma photons moving in opposite directions are generated, each with an energy of 511 keV. These photons are received by a pair of detectors 102 and 103 in the PET device 100. The photoelectric conversion devices of the detectors and subsequent processing circuitry convert the gamma photons into scintillation pulse signals. The time, energy, and position of the gamma photons arriving at the detector units can be measured using these scintillation pulse signals. By differentiating between time and energy, a pair of gamma photons generated by the same annihilation event can be identified, termed a coincidence event or coincidence event pair. Therefore, coincidence processing of scintillation pulse events is a crucial step in PET image reconstruction, and high-quality coincidence methods significantly improve the quality of reconstructed images under the same conditions.

[0005] However, there are still several problems with the current matching processing of flicker pulse events.

[0006] On the one hand, scintillation pulse acquisition generates a massive amount of data in a short period, posing a challenge to high-speed transmission of such large volumes. Even if high-speed data transmission is feasible, real-time or near-real-time computation under high-speed data streams is difficult to achieve. Moreover, the large volume of data transmitted at high speed and the bottleneck of computation necessitate the dumping of data to external storage, leading to significant external storage space consumption. This not only requires the prior preparation of large-capacity external storage devices but also increases the configuration requirements of the computer system.

[0007] On the other hand, because the matching process uses time windows for discrimination and time matching, traditional matching schemes have a strong sequential dependency, requiring subsequent calculations to use the results of previous steps. Due to this sequential constraint, few optimization schemes have been proposed to shorten the matching process time.

[0008] Furthermore, traditional matching schemes often discard a large number of flicker pulse events, some, or even most, of which could have been used to construct matching event pairs. This affects the amount of data required for subsequent image reconstruction, and consequently, the quality of the reconstructed image.

[0009] The background art description is provided solely for the purpose of understanding the relevant technologies in this field and is not intended as an admission of prior art. Summary of the Invention

[0010] In this regard, the embodiments of this application intend to provide a method, apparatus, device and storage medium for acquiring data of flicker pulse events, which can at least partially solve or alleviate the above-mentioned technical problems.

[0011] In a first aspect, a method for acquiring data of a flicker pulse event is provided, comprising:

[0012] At least two buffer groups are provided, each buffer group including multiple buffers of multiple detection units of the corresponding detection device;

[0013] The at least two buffer groups are alternately receiving flash pulse event data. When any one of the buffer groups for receiving data is full, the task of receiving data is handed over to the other buffer group.

[0014] The blink pulse event data in the filled buffer group is used to generate a buffer snapshot for conformance processing; and

[0015] After a snapshot of a filled buffer is completed, the space of the filled buffer group is released to prepare for the next data reception task.

[0016] In some embodiments, data acquisition of flicker pulse events can be incorporated into a conformal processing scheme as its data acquisition process. Therefore, the data acquisition method according to embodiments of this application can serve as a data acquisition step or sub-step of a conformal processing method for flicker pulse events, which falls within the scope of this application.

[0017] In some embodiments, the at least two buffer groups are a primary buffer group and a secondary buffer group.

[0018] In some embodiments, the data acquisition method further includes: when a preset data reception duration is reached, generating a buffer snapshot for conformal processing from the flashing pulse events in the buffer group of the currently received data.

[0019] In some embodiments, each buffer in the same buffer group is the same size, thereby enabling it to hold the same number of flash pulse event data.

[0020] In some embodiments, the buffers in the at least two buffer groups are of the same size.

[0021] In some embodiments, the data acquisition method further includes: providing a plurality of communication ports corresponding to a plurality of detector units of a detector and to the plurality of buffers of each buffer group, such that each buffer is assigned to its respective communication port when data is received in each buffer group.

[0022] In a second aspect, a method for processing flicker pulse events is provided, comprising:

[0023] A buffer snapshot is obtained by the data acquisition method described in the embodiments of this application;

[0024] The buffer snapshot is preprocessed to obtain a flash pulse event sequence, which includes multiple flash pulse events arranged in chronological order;

[0025] The flashing pulse event sequence is subjected to coincidence processing to obtain a coincidence event dataset.

[0026] In some embodiments, performing coincidence processing on the flashing pulse event sequence to obtain a coincidence event dataset includes:

[0027] The plurality of flashing pulse events are processed in parallel once or multiple times, wherein in each parallel processing, each parallel task is assigned to a corresponding flashing pulse event and the coincidence state of the corresponding flashing pulse event is determined based on the temporal relationship between the corresponding flashing pulse event and one or more temporally adjacent flashing pulse events; and

[0028] Based on the determined coincidence state, a coincidence event dataset is obtained from the plurality of flashing pulse events.

[0029] In some embodiments, obtaining a coincidence event dataset from the plurality of flashing pulse events based on the determined coincidence state includes:

[0030] Parallel prefix sum operations are performed on the coincidence state representation values ​​of the plurality of flash pulse events to determine the target write position of the coincidence event pair, wherein the coincidence event pair includes a flash pulse event having the first state and a previous or next flash pulse event determined according to a preset rule; and

[0031] According to the target write position, the matching event pairs are written in parallel to the pre-allocated data space to obtain the matching event dataset.

[0032] In some embodiments, performing coincidence processing on the flashing pulse event sequence to obtain a coincidence event dataset includes:

[0033] Determine the coincidence state of the plurality of flashing pulse events, wherein the coincidence state includes at least a first state and a second state;

[0034] Parallel prefix sum operations are performed on the coincidence state representation values ​​of the plurality of flash pulse events to determine the target write position of the coincidence event pair, wherein the coincidence event pair includes a flash pulse event having the first state and a previous or next flash pulse event determined according to a preset rule; and

[0035] According to the target write position, the matching event pairs are written in parallel to the pre-allocated data space to obtain the matching event dataset.

[0036] In a third aspect, a data acquisition device for flicker pulse events is provided, comprising:

[0037] At least two buffer groups, each buffer group comprising multiple buffers corresponding to multiple detection units of the detection device;

[0038] The control unit is configured to cause the at least two buffer groups to alternately receive flash pulse event data, such that when any one of the buffer groups for receiving data is full, the control unit will transfer the data receiving task to the other buffer group.

[0039] A snapshot unit is configured to generate a buffer snapshot for conformance processing from the flash pulse event data in the filled buffer group; and

[0040] The release unit is configured to release the space of the filled buffer group after the snapshot of the filled buffer is completed, in order to prepare for the next data receiving task.

[0041] As mentioned above, in some embodiments, the acquisition of data for flicker pulse events can be incorporated into a conformance processing scheme as its data acquisition process. Therefore, the data acquisition apparatus according to embodiments of this application can serve as a data acquisition feature or element of a conformance processing method for flicker pulse events, which falls within the scope of this application.

[0042] In some embodiments, the at least two buffer groups are a primary buffer group and a secondary buffer group.

[0043] In some embodiments, the data acquisition device further includes: a timed triggering unit configured to trigger the snapshot unit to generate a buffer snapshot for conformal processing from the flashing pulse events in the buffer group of the currently received data when a preset data reception duration is reached.

[0044] In some embodiments, each buffer in the same buffer group is the same size, thereby enabling it to hold the same number of flash pulse event data.

[0045] In some embodiments, the buffers in the at least two buffer groups are of the same size.

[0046] In some embodiments, the data acquisition device further includes: a plurality of communication ports, the plurality of communication ports corresponding to a plurality of detection units of the detection device and to a plurality of buffers of each buffer group, such that when each buffer group receives data, each buffer of the buffer group receiving data is assigned to its respective communication port.

[0047] In a fourth aspect, a medical device is provided, characterized in that it comprises:

[0048] The detection device includes multiple detection units for detecting radiated photons and a conversion unit for converting the detected radiated photons into scintillation pulse events; and

[0049] The conformity processing apparatus according to the embodiments of this application.

[0050] In some embodiments, the medical device further includes: a data acquisition means for acquiring the converted flash pulse events; wherein the coincidence processing means is configured to generate a coincidence event dataset based on a buffer snapshot of the data acquisition means.

[0051] In some embodiments, the medical device is a PET scanner.

[0052] In a fifth aspect, an electronic device is provided, comprising: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program, when executed by the processor, implements the steps of the method according to any one of the embodiments of this application.

[0053] In a sixth aspect, a computer-readable storage medium is provided, characterized in that a computer program is stored on the storage medium, and when executed by a processor, the computer program implements the steps of the method according to any one of the embodiments of this application.

[0054] In the data acquisition scheme for flicker pulse events in the embodiments of this application, by providing at least two buffer groups, the at least two buffer groups alternately receive flicker pulse event data. When any buffer in the receiving buffer group is full, the data receiving task is transferred to the other buffer group. A buffer snapshot for conformation processing is generated from the flicker pulse event data in the filled buffer group. After the filled buffer snapshot is completed, the space of the filled buffer group is released to prepare for the next data receiving task. This effectively overcomes the challenge of high-speed transmission of huge amounts of data generated in a short time during flicker pulse acquisition. Moreover, by ensuring that each group of data is in the same time period, the local time conformation condition can be fully satisfied. Furthermore, this data acquisition scheme can achieve linear scalability of data acquisition capability by simply increasing the number of buffer groups, and expand the parallel capability of data acquisition tasks, providing potential for further accelerating the data conformation processing rate. In addition, this data acquisition scheme can make full use of computer resources. For example, by combining this data acquisition scheme with the conformation processing scheme of the embodiments of this application, it is possible to perform conformation processing in parallel while using memory as a buffer and optionally leveraging CPU capabilities to acquire data (snapshots). The latter can, for example, make full use of GPUs with parallel processing capabilities, thereby making full use of the computer's memory and CPU resources as well as the performance and characteristics of GPU resources to complete real-time conformation tasks.

[0055] In a further or additional matching processing scheme for flicker pulse events in the embodiments of this application, the multiple flicker pulse events are processed in parallel one or more times without regard to timing. In each parallel processing, each parallel task assigned to a corresponding flicker pulse event determines the matching state of the corresponding flicker pulse event based on the temporal relationship between the corresponding flicker pulse event and one or more temporally adjacent flicker pulse events. This improves the real-time matching processing capability under large data volumes and overcomes the limitation of current time-based matching processing, which is difficult to optimize due to the constraints of the preceding and following time sequences. The innovative introduction of a time-independent parallel matching process in time-based matching processing greatly optimizes the processing time. Furthermore, the matching processing method for flicker pulse events in the embodiments of this application can fully utilize individual flicker pulse events, avoiding the drawback of traditional matching schemes that often discard a large number of individual flicker pulse events.

[0056] In a further or additional embodiment of the flash pulse event coincidence processing scheme of this application, according to the coincidence state of the flash pulse event sequence, a parallel prefix sum operation is performed on the coincidence state characterization values ​​of the plurality of flash pulse events in the flash pulse event sequence to determine the target write position of the coincidence event pair. Then, according to the target write position, the coincidence event pair is written in parallel to the pre-allocated data space to obtain the coincidence event dataset. This can also improve the real-time coincidence processing capability under large data volume. Furthermore, through parallel prefix sum calculation, the events constituting the coincidence event pair are extracted from the flash pulse event sequence regardless of the preceding and following time sequence. Thus, the coincidence event extraction stage is freed from the constraints of the preceding and following time sequence in the time coincidence processing, efficiently obtains the coincidence event dataset, and greatly improves the processing efficiency of the coincidence processing.

[0057] Optional features and other effects of the embodiments of this application are described in part below, and in part will be apparent from reading this document. Attached Figure Description

[0058] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0059] Figure 1 This is a schematic diagram illustrating the acquisition and processing of scintillation pulse events using a PET device;

[0060] Figure 2 This is a schematic diagram of a multi-threaded accelerated algorithm pipeline;

[0061] Figure 3 This is a schematic diagram illustrating the time-based processing of a conformal algorithm.

[0062] Figure 4 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0063] Figure 5 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0064] Figure 6 This is a schematic diagram of a master-slave buffer group that can be used for data acquisition in embodiments of this application;

[0065] Figure 7 This is a comparison chart of different alternation strategies when the buffer is full;

[0066] Figures 8A to 8CThis is a schematic diagram illustrating the alternation of master and slave buffer groups for data acquisition in embodiments of this application;

[0067] Figure 9 This application illustrates a multi-buffer group swapping and multi-snapshot strategy for data acquisition according to an embodiment of the present application, which can be used for parallel conformance processing according to an embodiment of the present application.

[0068] Figure 10 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0069] Figure 11 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0070] Figure 12 This is a schematic diagram of events within a time window, illustrating different numbers of flash pulse events within a time window of equal duration;

[0071] Figure 13 It is based on Figure 11 An example diagram illustrating the time compliance processing method in the embodiment shown, in which different threads perform time compliance processing;

[0072] Figure 14 It is based on Figure 11 An example diagram illustrating the time compliance processing method in the embodiment shown, in which different threads perform time compliance processing;

[0073] Figure 15 It is based on Figure 11 An example diagram illustrating the time compliance processing method in the embodiment shown, in which different threads perform time compliance processing;

[0074] Figure 16 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0075] Figure 17 It is based on Figure 16 An example diagram illustrating the time compliance processing method in the embodiment shown, in which different threads perform time compliance processing;

[0076] Figure 18 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0077] Figure 19 It is based on Figure 18 An example diagram illustrating the time compliance processing method in the embodiment shown, in which different threads perform time compliance processing;

[0078] Figure 20 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0079] Figure 21 It is based on Figure 20 An example diagram illustrating the time compliance processing method in the embodiment shown, in which different threads perform time compliance processing;

[0080] Figure 22 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0081] Figure 23 It is based on Figure 22 An example diagram illustrating the time compliance processing method in the embodiment shown, in which different threads perform time compliance processing;

[0082] Figure 24 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0083] Figure 25 It is based on Figure 24 An example diagram illustrating the time compliance processing method in the embodiment shown, in which different threads perform time compliance processing;

[0084] Figure 26 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0085] Figure 27 This is a schematic diagram illustrating the writing of a matched event in the matching processing method according to an embodiment of this application;

[0086] Figure 28 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0087] Figure 29 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0088] Figure 30 This is an exemplary process diagram of determining the thread corresponding to the matched matching event in the matching processing method according to the embodiments of this application;

[0089] Figure 31 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0090] Figure 32 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0091] Figure 33 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0092] Figure 34This is an exemplary flowchart of a method for acquiring data of a flashing pulse event according to an embodiment of this application;

[0093] Figure 35 This is an exemplary flowchart of a method for processing flash pulse events according to an embodiment of this application;

[0094] Figure 36 This is an exemplary structural diagram of a flash pulse event matching processing device according to an embodiment of this application;

[0095] Figure 37 This is an exemplary structural diagram of a flash pulse event matching processing device according to an embodiment of this application;

[0096] Figure 38 This is an exemplary structural diagram of a data acquisition device for flash pulse events according to an embodiment of this application;

[0097] Figure 39 This is an exemplary structural diagram of a medical device according to an embodiment of this application;

[0098] Figure 40 This is an exemplary structural diagram of an electronic device that can be used to implement the methods described in the embodiments of this application. Detailed Implementation

[0099] To make the above-mentioned objectives, features, and advantages of this application more apparent and understandable, the specific embodiments of this application are described in detail below with reference to the accompanying drawings. Many specific details are set forth in the following description to provide a thorough understanding of this application. However, this application can be implemented in many other ways different from those described herein, and those skilled in the art can make similar modifications without departing from the spirit of this application. Therefore, this application is not limited to the specific embodiments disclosed below.

[0100] It should be noted that when an element is referred to as being "fixed to" another element, it can be directly on the other element or there may be an intervening element. When an element is referred to as being "connected to" another element, it can be directly connected to the other element or there may be an intervening element. The terms "vertical," "horizontal," "left," "right," and similar expressions used herein are for illustrative purposes only. The described features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided to give a full understanding of embodiments of this application. However, those skilled in the art will recognize that the technical solutions of this application can be practiced without one or more of these specific details, or other methods, components, materials, devices, or operations may be employed. In these cases, well-known structures, methods, devices, implementations, materials, or operations will not be shown or described in detail.

[0101] The flowcharts shown in the accompanying drawings are merely illustrative and do not necessarily include all content and operations / steps, nor do they necessarily have to be performed in the described order. For example, some operations / steps can be broken down, while others can be combined or partially combined; therefore, the actual execution order may change depending on the specific circumstances.

[0102] The terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish different objects, not to describe a specific order. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that comprises a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to such processes, methods, products, or apparatus. The terms "and / or" or "and / or" include any and all combinations of one or more of the associated listed items.

[0103] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the application.

[0104] The relevant aspects of this application are described below with reference to the accompanying drawings. It should be noted that the following description is for illustrative purposes and is not intended to limit the scope of protection of this application.

[0105] refer to Figure 1 and Figure 2 This illustrates an exemplary data acquisition and compliance process for a PET device. For example... Figure 1 As shown, gamma photons generated by positron decay and annihilation are received by detectors arranged around the device. The photoelectric conversion device of the detector and subsequent processing circuits can convert the gamma photons into scintillation pulse signals. By distinguishing between time and energy, a pair of gamma photons generated by the same annihilation event can be selected, which is called a coincidence event or coincidence event pair.

[0106] Some known matching algorithms can be broadly categorized into four aspects: data transformation, energy matching, time sorting, and time matching. The following is an example, not a limitation, illustration of each process:

[0107] 1) Data conversion: The data collected by the detectors of the PET equipment from each detection unit channel are converted to obtain the time and energy information of the scintillation pulse (single) event and the global scintillation crystal number.

[0108] 2) Energy Compliance: Based on the preset energy window, the energy of a single event is filtered, and data that does not meet the energy requirements is removed.

[0109] 3) Time sorting: Sort the single event data after energy matching and filtering according to time information to facilitate subsequent time matching.

[0110] 4) Timing Match: Based on a preset time window, scintillation pulse event pairs corresponding to gamma photon pairs generated by the same annihilation event are selected; these are also called matching event pairs (e.g., ...). Figure 1 The matching event pairs 1 and 2 are shown in the diagram, so that the image reconstruction algorithm can be applied to the matching event pairs located on the Line of Response (LOR) to obtain the corresponding reconstructed image.

[0111] Current PET equipment has multiple detection units (or scanning units) that can form a basic detection module (BDM). When using a computer for software matching, after acquiring all data packets sent by the BDM, it is desirable to perform matching processing in real time or near real time, so as to achieve near-synchronous matching event data at the end of data acquisition.

[0112] However, the number of detection units in current PET equipment is constantly increasing, for example, reaching 48 BDMs. Therefore, the amount of scintillation pulse event data generated is enormous, requiring high-speed data transmission and processing. In one scenario, the theoretical maximum data transmission rate can reach 2.5 GB / s. However, with current data reception methods, real-time data alignment cannot be achieved while ensuring data quality. One known strategy is to not perform data alignment processing during data acquisition, but instead store the data as a file first, and then perform data alignment uniformly. While this approach is stable, it increases the use of external storage and processing time.

[0113] In some known solutions, multi-threading techniques can be used to process certain processes in PET imaging that conform to the algorithm, such as utilizing the multi-threading capabilities of the CPU. Figure 2 The demonstrated algorithm flow proposes using multi-threaded parallel processing to read data from each BDM, perform data transformation, and energy screening. Each thread locally sorts the BDM data it is responsible for based on time information, forming multiple ordered subarrays. However, as... Figure 2 As shown, these ordered subarrays need to be synchronized to a main process and integrated using a global time-ordered sorting algorithm (such as the loser tree algorithm) to form a globally ordered array. Ultimately, as... Figure 2As shown, in this single main process, this globally ordered array is filtered by time information to obtain all the required matching event pairs.

[0114] refer to Figure 2 and Figure 3 This describes a time conformity (identification) processing method known to the inventors, which may be referred to as the "killAll" algorithm. Figure 3 The implementation process of the "killAll" algorithm is illustrated in the form of a diagram. For example... Figure 3 As shown, events numbered 1, 2, 3, 4... represent single events collected and sorted globally by time, and τ represents a preset time window. First, a time window τ1 is established starting with event number 1. If the number of events within time window τ1 exceeds two, all events within the time window (i.e., events 1, 2, and 3) will be removed according to the "killAll" algorithm. Next, a new time window τ1 is established starting with event number 4. If there are only two events within time window τ4 (e.g., events 1, 2, and 3),... Figure 3 If the event pair (i.e., events 4 and 5) is selected, then this pair will be retained, forming a matching event pair. Afterwards, starting with event 6, time windows will be established and matching event pairs will be searched for.

[0115] Despite this, current methods for processing scintillation pulse events still have several problems. Firstly, the acquisition of scintillation pulses generates a massive amount of data in a short period, posing a significant challenge to high-speed data transmission. Even with high-speed data transmission, real-time or near-real-time coincidence computation is difficult to achieve within high-speed data streams. Furthermore, the bottlenecks in data transmission and coincidence computation necessitate temporary storage of data in external storage, which not only consumes a large amount of external storage space but also increases the demands on computer system configuration. Secondly, existing temporal coincidence processing requires the use of time windows for event matching. This approach is heavily dependent on the temporal order of computation, with subsequent steps relying on the results of previous steps, limiting the possibility of developing optimization schemes to shorten processing time. Moreover, traditional methods often discard a large number of single scintillation pulse events, some, or even most, that could have been used to form coincidence event pairs, thus affecting the amount and quality of data for image reconstruction.

[0116] like Figure 2In the exemplary algorithm pipeline shown, despite employing multi-threading techniques, such as utilizing CPU multi-threading for acceleration, known time-matching algorithms still struggle to handle the ever-increasing data volume. Furthermore, due to the temporal constraints of time-matching, known time-matching algorithms must perform global sorting and time-matching processing sequentially in a single thread, significantly reducing processing efficiency and becoming a bottleneck limiting PET imaging speed. Additionally, traditional algorithms have a limited number of threads that a CPU can launch in parallel. Data is grouped according to different detector units, and each group is processed in parallel, but data processing within a group (including data transformation, energy matching, and local sorting) is still executed sequentially.

[0117] In addition, such as Figure 3 The time signatures shown indicate that the "killAll" algorithm has a clear computational dependency; the matching and elimination results of the previous event must be processed sequentially before the matching of subsequent events can be processed, which limits the algorithm's parallelization capability.

[0118] The following refers to the conformity processing scheme and related data acquisition scheme of numerous embodiments of this application.

[0119] like Figure 4 The diagram illustrates a method for processing flicker pulse events. The flicker pulse events processed by this method are, for example, flicker pulse events generated by a PET device.

[0120] like Figure 4 As shown, the conformity processing method includes an optional step S410.

[0121] S410: Obtain flash pulse event data used to generate the flash pulse event sequence.

[0122] exist Figure 4 In the illustrated embodiment, the acquisition of flash pulse events can be incorporated into a conformal processing scheme as its data acquisition process. However, those skilled in the art will understand that the data acquisition in the embodiments of this application, for example... Figure 5 The embodiments described herein may be independent of the conformity processing process as a separate innovative solution, or the data acquisition in the embodiments of this application may be combined with conformity processing methods not described in the embodiments of this application, which falls within the scope of this application, as described below.

[0123] Continue to refer to Figure 4 Preferably, the acquisition is obtained directly from the detector side, that is, from the scintillation pulse event data acquired from the detection device.

[0124] Furthermore, such as Figure 5 As shown, step S410 may include steps S411 to S414.

[0125] S411: Provide at least two buffer groups.

[0126] In this embodiment, each buffer group includes multiple buffers of the multiple detection units of the corresponding detection device.

[0127] like Figure 6 As shown, the at least two buffer groups can be a primary buffer group and a secondary buffer group. Figure 6 As shown, the master buffer group includes N master buffers; the slave buffer group includes N slave buffers. Here, the number of probe units, such as BDMs, is also N, for example, N = 48. Assuming the data sender has a total of N BDMs, a data acquisition task needs to be created for each BDM, and two buffers (master and slave) need to be allocated. All buffers are divided into two groups according to master-slave attributes, such as... Figure 6 As shown.

[0128] In a preferred embodiment, each buffer in the same buffer group is the same size, thus accommodating the same number of flash pulse event data. For example, the N main buffers in the main buffer group are of equal size; the N slave buffers in the slave buffer group are of equal size. According to a further preferred embodiment, the buffers in the at least two buffer groups are of the same size. For example, the main buffers in the main buffer group are of the same size as the slave buffers in the slave buffer group. For ease of memory block partitioning and management, the identical size of each buffer, capable of accommodating the same number of data packets, facilitates real-time local time synchronization processing.

[0129] In one embodiment, step S411 may further include initializing the at least two buffer groups, for example, initializing a master-slave buffer group.

[0130] S412: The at least two buffer groups alternately receive flash pulse event data, and when any one of the buffer groups for receiving data is full, the task of receiving data is handed over to the other buffer group.

[0131] By way of explanation and not limitation, if only one set of buffers is used to acquire data packets, once the buffer is full, data packets transmitted by the sending end during the dump will be lost before the buffer becomes available again if no measures are taken. To solve the problem of data packet loss in a single buffer group, in the blink pulse data acquisition of this application embodiment, data acquisition can continue even during buffer dumping. Thus, a second set of buffers can take over the task of the first set of buffers, and after the dumping of the first set of buffers is completed, the acquisition task can be taken over during the dumping of the second set of buffers. The two sets of buffers alternately perform the tasks of acquisition and dumping, thereby enabling continuous high-speed and efficient blink pulse event data acquisition.

[0132] As an optional preliminary step, step S410 may further include: providing multiple communication ports corresponding to multiple detector units of the detector and to the multiple buffers of each buffer group, so that each buffer is assigned to its respective communication port when data is received in each buffer group.

[0133] During data acquisition, the sender (e.g., the detection unit of a PET device, such as a BDM) can send data packets of flashing pulse events to the receiver via UDP (User Datagram Protocol). In specific embodiments, each BDM is assigned a unique port to a specific IP address, preferably a consecutive port number, such as 8000 to 8047. Accordingly, each buffer in at least two buffer groups (e.g., a master buffer group and a slave buffer group) corresponds to a unique port number and is assigned to the corresponding port number when receiving data. UDP, as a connectionless transport protocol in the Internet protocol suite, is understood in the general sense in this field; it allows applications to send encapsulated IP data packets without establishing a connection.

[0134] Continue to refer to Figure 4 Step S410 may also include steps S413 and S414:

[0135] S413: Generate a buffer snapshot of the flash pulse event data in the filled buffer group.

[0136] S414: After the snapshot of the filled buffer is completed, release the space of the filled buffer group to prepare for the next data reception task.

[0137] Continue to refer to Figure 4 Step S410 may also include optional step S415: when the preset data reception duration is reached, generate a buffer snapshot for conformal processing from the flashing pulse events in the buffer group of the currently received data.

[0138] Reference Figure 7 , Figures 8A to 8C and Figure 9 , Figure 7 A comparison chart showing different alternation strategies when the buffer is full is presented. Figures 8A to 8C This is a schematic diagram illustrating the alternation of master and slave buffer groups in the data acquisition method that can be used in embodiments of this application. Figure 9 This application illustrates a multi-buffer group exchange and multi-snapshot strategy for data acquisition according to embodiments of the present application, which can be used for parallel conformance processing according to embodiments of the present application.

[0139] The following references Figure 7 , Figures 8A to 8C and Figure 9Taking a master-slave buffer group as an example, this describes how to use a master-slave buffer group to alternately acquire data and generate buffer snapshots.

[0140] like Figure 8A and Figure 7 As shown in the diagram on the left, initially, all data acquisition tasks use the main buffer (group) to acquire data normally until any buffer within the group (such as main buffer 3) is filled. At this point, the entire main buffer group transfers its data acquisition tasks to the secondary buffer groups. Therefore, each set of data obtained from this exchange occurs within the same time period. For example... Figure 7 The diagram on the left schematically illustrates a set of buffer groups obtained using a synchronous switching strategy. When one of the main buffers (buffer 3) is full, the acquisition task is switched to another buffer group (the slave buffer group) to continue. At this time, each set of data in the current buffer group is acquired within the same time period, which satisfies the local time compliance condition. Figure 7 The diagram on the right schematically illustrates a group of buffers using an asynchronous swapping strategy. Each buffer is swapped only when it is full, and the acquisition times are different, thus failing to meet the local time compliance condition.

[0141] Continue to refer to Figure 8B When data is retrieved using the primary buffer group and the first buffer becomes full (e.g., primary buffer 3), the secondary buffer group swaps with the primary buffer group and takes over the retrieval task to retrieve data. (See reference) Figure 9 The main buffer group will generate snapshots of the acquired data in memory (e.g., buffer snapshots 1, 2, ..., n). Once the snapshots of the filled buffer group are generated, the filled buffer group (e.g., the main buffer group) can take over the acquisition task during the next swap from the buffer group. Figure 8C This is shown schematically.

[0142] Therefore, at least two sets of buffers, such as master and slave buffers, continuously alternate between executing fetch and snapshot tasks until a pre-set time length is reached. At this point, the fetch task of the last set of buffers stops, and a snapshot is generated from the remaining data. Figure 9 This illustration shows that after each buffer snapshot is generated, a matching task corresponding to that buffer snapshot can begin. For example, matching tasks 1, 2, ..., n can be executed for buffer snapshots 1, 2, ..., n. These matching tasks include, for example, step S430 as described in the embodiments of this application, as well as optional steps S420 and S440. They can also be used to execute other execution tasks, which falls within the scope of this application.

[0143] In short, during the data acquisition process, the solution of this application embodiment employs a strategy of at least two sets of buffers to achieve alternating data reception, thereby ensuring the continuity and efficiency of data processing. At the start of acquisition, the primary buffer group is responsible for receiving data; once any buffer is full, the reception task is transferred to the secondary buffer group.

[0144] A buffer group snapshot method is employed to prevent situations where the buffer cannot receive new data during data matching processing, especially when the data sending rate exceeds the processing rate. When the buffer is full, a copy is created in memory, and the matching task is performed on this copy. The original buffer group is then quickly released to prepare for receiving new data. This strategy not only prevents data loss but also minimizes the impact due to the extremely fast memory copying speed.

[0145] Moreover, in scenarios where multiple detection units acquire data, this synchronous switching ensures that the data in all buffers comes from the same time period, meeting the time compliance requirements.

[0146] Furthermore, this scheme allows each snapshot's conformation task to be performed independently, supporting parallel processing and thus optimizing the overall conformation processing flow. Specifically, due to the decoupling of acquisition and conformation processing, data acquisition (such as step S410) can be performed on the CPU, while conformation processing (such as step S430 and optional step S440) can utilize the high parallelism of the GPU, ensuring that the two processes do not interfere with each other and fully leveraging the performance of computing resources. Moreover, conformation processing (such as step S430 and optional step S440) can be linearly scaled to multiple computing nodes, such as multiple GPUs, achieving efficient task-level parallel processing. The application of this multi-snapshot strategy significantly improves the conformation processing rate and optimizes the data processing efficiency of PET imaging.

[0147] Continue to refer to Figure 4 The compliance processing method may include:

[0148] S420: Obtain a flashing pulse event sequence, the flashing pulse event sequence including multiple flashing pulse events arranged in chronological order.

[0149] In one embodiment, the flashing pulse event sequence is derived from a buffer group snapshot. Preferably, the flashing pulse event sequence processed in each conformation task (such as performing step S430 and optional steps S420 and S440) is obtained from a single buffer snapshot, and this will also be used as an example in the specific embodiments described below. However, the embodiments of this application are not limited thereto, and as mentioned above, step S410 may be an optional step in this conformation processing method.

[0150] In one specific embodiment, it is assumed that the detection device of a PET device containing N detection units obtains n buffer snapshots in a single data acquisition using step S410. Figure 9 Here, the buffer snapshots obtained from each buffer group are interpreted broadly, encompassing a file group corresponding to data from multiple buffers (hereinafter used as an example) or a single composite file consisting of data sets from multiple buffers. After acquiring the scintillation pulse event data of the PET device, n sets of scintillation pulse event data can be obtained, each set containing N scintillation pulse event data files. In this specific embodiment, as can be seen from the buffer group synchronization exchange method acquired in step S410, each set of scintillation pulse event data is within the same time period, and each set of data can be processed in parallel to select matching event pairs. Now, taking one set of data as an example, the matching process is briefly described, which may include optional data preprocessing (such as energy matching, time sorting), time matching status determination, and optional matching event dataset acquisition.

[0151] In this set of buffer snapshots, there are N snapshot file sets A1, A2, ..., A N The i-th set can be represented as:

[0152]

[0153] Where, n i This represents the number of single events contained in the i-th set. Each set matrix stores the time t when a single event is acquired, the location number p of the single event in the detection unit, and the energy e corresponding to the event acquired by the detector. Let the j-th single event in the i-th set be denoted as .

[0154]

[0155] So, A i It can be represented as

[0156]

[0157] In this embodiment of the application, step S420 may include an optional preprocessing step, as described above. The preprocessing step may include, for example, step S420' (unidentified): preprocessing the flicker pulse event data to obtain a flicker pulse event sequence.

[0158] like Figure 10 In the illustrated embodiment, the preprocessing step may include steps S421 and S422:

[0159] S421: Perform energy matching processing on the flicker pulse event data.

[0160] Optionally, data conversion may be included before energy matching.

[0161] In this specific embodiment, a set of N snapshot files A1, A2, ..., A N Taking one of the aforementioned buffer snapshots as an example, the blink pulse event data (data frames) of the buffer snapshot can be transformed to generate single-event data as described above. Optionally, the data transformation can be performed independently for each data frame, and can be parallelized using CPU or GPU.

[0162] Explained, energy coincidence can eliminate events that may have involved scattering. By setting an appropriate energy window range, such as 350–650 keV, most scattering events can be eliminated. Energy coincidence removes scattering events from the original set, i.e.

[0163]

[0164] The letters marked with an apostrophe (') represent information excluded after scattering time, for example, A′. i Let t' represent the i-th set of files from which scattering events are removed. i This represents the time when the i-th single event in the set matrix after removing scattering events is acquired, and so on.

[0165] Single event vectors that do not meet the energy window range will be directly removed from the set:

[0166]

[0167] Among them, e start It is the lower boundary of the energy window, e end It is the upper boundary of the energy window, n i i is the number of single events in the i-th set that satisfy the energy window range. The single event vectors in the set after energy conformation are calculated using the above formula and are true for the following:

[0168]

[0169] In this specific embodiment, compared to hardware matching which uses a matching discrimination circuit to directly select matching event pairs, software matching uses a detector to collect all single-event data before matching. This allows for adjustments to the matching algorithm's processing order as needed. For example, the pre-matching energy matching significantly reduces events that do not meet the energy window range. Furthermore, the energy matching operation for each single event is independent and can be accelerated using CPU or GPU parallelization methods. Pre-matching energy matching can eliminate a large number of single events, and the single-event data excluded by pre-matching energy matching will not participate in subsequent matching processing steps, greatly reducing the pressure on subsequent matching processing.

[0170] S422: Sort the flicker pulse event data by time to obtain the flicker pulse event sequence.

[0171] In this embodiment, after the energy is matched, the flicker pulse event data can be sorted by time to obtain the flicker pulse event sequence.

[0172] As an explanation, when using blink pulse event data from various buffer snapshots, the blink pulse event data (after energy matching) sorted by time is not all the data from the n buffer snapshots acquired in a single data acquisition, but rather the blink pulse event data from a single buffer snapshot. However, the time sorting of the blink pulse event data (after energy matching) from a single buffer snapshot is different from... Figure 2 The local sorting of each thread in the example shown is different, but it can be regarded as a global sorting of the blink pulse event data (after energy matching) of the single buffer snapshot, or a global sorting of local matching processing; while the data sorting of each snapshot file of the optional buffer snapshot can refer to Figure 2 The local sorting is shown.

[0173] For example, in the specific embodiment described above, the set of single events A′1, A′2, ..., A′ after energy matching is completed N This allows us to construct a total set of single events A′ containing all current single events, where each single event is arranged in ascending chronological order (i.e., a global sort corresponding to a single buffer snapshot):

[0174]

[0175]

[0176] Specifically, the single event sets corresponding to each snapshot file after energy matching are arranged in ascending order (i.e., a local sorting of each snapshot file):

[0177]

[0178] Furthermore, a suitable algorithm can be used to merge multiple ordered data streams into a single ordered data stream, thereby obtaining a global sort of the data corresponding to a single buffer snapshot:

[0179]

[0180] Each snapshot file's corresponding set of individual events can be sorted in ascending order using any suitable sorting algorithm. When merging multiple sets of individual events sorted in ascending time order based on energy into a single set sorted in ascending time order, any multi-way merge sorting algorithm can also be used. In a specific instance, GPU sorting API functions can be called, such as the `sort` function in the `thrust` library, to sort the energy-filtered event sequence based on time information.

[0181] Despite Figure 10 In the illustrated embodiment, energy matching processing is performed before time sorting, but it is conceivable to perform energy matching processing on the time-sorted sequence of flash pulse events after time sorting.

[0182] In another embodiment, the preprocessing step can be omitted to directly obtain the time-ordered scintillation pulse sequence, or one or more preprocessing sub-steps can be omitted, which falls within the scope of this application. For example, energy alignment and / or timing arrangement can be processed by hardware and completed before acquiring the scintillation pulse event data.

[0183] Continue to refer to Figure 4 The compliance processing method may include:

[0184] S430: Process the multiple flashing pulse events in parallel, either once or multiple times.

[0185] In this embodiment, in each parallel processing step, each parallel task is assigned to a corresponding flash pulse event, and the conformity status of the corresponding flash pulse event is determined based on the temporal relationship between the corresponding flash pulse event and one or more temporally adjacent flash pulse events, in order to generate a conformity event dataset.

[0186] In some embodiments, the parallel processing is a single-run parallel processing, which is performed using a set of threads corresponding to the plurality of flashing pulse events, each of which is assigned to a corresponding flashing pulse event.

[0187] Here, "thread" has its common meaning in this field and can be interpreted as the smallest unit of computational resources that can be scheduled for execution. A thread is contained within a process and is the actual unit of operation within that process. A thread refers to a single, sequential flow of control within a process; multiple threads can run concurrently within a process, each performing different tasks.

[0188] Although in this embodiment each parallel task is executed by a single thread, other embodiments are conceivable, such as each parallel task being executed by multiple threads or by other execution modules / units. Furthermore, in some embodiments, each parallel task is executed by an execution module in a program or software sense; however, different embodiments of this application also cover or are to be interpreted as parallel tasks being executed by physical units, such as in the case of a GPU, where each parallel task could be executed by a stream processor of the GPU or its core, which falls within the scope of this application.

[0189] In this embodiment, the parallel computing architecture of the GPU can be used to determine the conformity state of each flicker pulse event based on the parallelism of this application. However, this embodiment is not limited to this, and step S430 can also be implemented using the architecture of other parallel processors or parallel processor cores.

[0190] In other embodiments, the multiple flash pulse events of the flash pulse event sequence are divided into multiple groups, and the parallel processing is multiple parallel processing, using multiple groups of threads to execute the multiple parallel processing respectively, with each thread in each group being assigned to a corresponding flash pulse event in the corresponding group.

[0191] In a preferred embodiment, the grouped flash pulse events can be sequentially ordered according to a time sequence (subsequences). For example, for a flash pulse event sequence with M flash pulse events (M = L * K), it can be divided into K groups, each with L flash pulse events. The L flash pulse events in each subsequence are arranged sequentially in the flash pulse event sequence, where M, L, and K are natural numbers.

[0192] However, in alternative embodiments, multiple flash pulse events of a flash pulse event sequence may be grouped in other ways, which falls within the scope of this application.

[0193] In the various embodiments described below, a single parallel processing (thread) corresponding to a single blink pulse event will be used as an example (i.e., the blink pulse event sequence is not grouped), but this application is not limited thereto.

[0194] In the embodiments of this application, the coincidence state of a flash pulse event is determined based on the temporal relationship between the flash pulse event and one or more temporally adjacent flash pulse events, and more specifically, based on the relationship between the flash pulse event and one or more temporally adjacent flash pulse events within one or more time windows.

[0195] In some embodiments of this application, the conformity state may include, for example, a first state representing a conformity event pair and a second state not representing a conformity event pair. In some embodiments, the second state not representing a conformity event pair may represent a blink pulse event that does not form a conformity event pair with other events, or it may represent a blink pulse event that, although forming a conformity event pair, has already been marked by another blink pulse event, which may correspondingly have the first state, but this application is not limited to this. In some embodiments, the first state may have a corresponding characterization value, such as the binary value 1, and the second state may have a corresponding characterization value, such as the binary value 0.

[0196] In some embodiments, a flash pulse event determined to have a first state can also be marked as the next or previous flash pulse event in a predetermined timing sequence. For example, if the i-th flash pulse event has a first state, i-1 or i+1 can be marked as another flash pulse event matching the event pair, according to a predetermined (as described below) sequence. Accordingly, the i-th flash pulse event can be marked with the sequence number of the other flash pulse event in the timing sequence of the flash pulse event sequence, such as i-1 or i+1.

[0197] In some embodiments of this application, the relative position of the flashing pulse event corresponding to the parallel task (thread) in the traceable sequence can be determined mainly by tracing back along the time sequence, thereby determining the conformity state.

[0198] For example, determining the coincidence state of the corresponding flashing pulse event based on the temporal relationship between the corresponding flashing pulse event and one or more flashing pulse events that are temporally adjacent may include step S4300 (unidentified): through a specified time window, backtracking from the corresponding flashing pulse event to the farthest flashing pulse event, and determining the coincidence state of the corresponding flashing pulse event based on the parity position attribute of the corresponding flashing pulse event relative to the farthest flashing pulse event.

[0199] refer to Figure 11 In the illustrated embodiment, step S4300 may include:

[0200] S1110: Determine whether there are adjacent flash pulse events within a specified time window along the temporal direction starting from the corresponding flash pulse event;

[0201] S1120 If there are adjacent flashing pulse events, then starting from the corresponding flashing pulse event, backtracking event by event in the reverse direction of the time sequence to the farthest flashing pulse event;

[0202] S1140: Determine the parity position attribute of the corresponding flashing pulse event relative to the farthest flashing pulse event;

[0203] S1150: Determine the coincidence state of the corresponding flashing pulse event based on the parity position attribute:

[0204] S1160: If the corresponding flashing pulse event has the same parity position attribute as the farthest flashing pulse event, then the corresponding flashing pulse event is determined to be in the first state;

[0205] S1170: If the corresponding flashing pulse event has different parity position attributes from the farthest flashing pulse event, then the corresponding flashing pulse event is determined to be in the second state;

[0206] S1130: If there is no adjacent flashing pulse event, then the corresponding flashing pulse event is determined to be in the second state.

[0207] Reference Figure 11 , Figures 13 to 15 , Figure 11 The illustrated embodiment demonstrates a parallel implementation strategy. In one embodiment, the entire parallel implementation can be completed in time with only two thread-wide synchronizations.

[0208] As mentioned above, in this specific embodiment, parallel time compliance will be achieved by processing one event with one thread (thread i corresponds to processing a single event i), which is a confirmed compliance state here.

[0209] As described in the previous specific embodiments, after the single event set processing (e.g., energy matching and time sorting) is a total set A′ arranged in ascending time order, a suitable time window range can be selected to perform time matching (here, determining the matching status) in parallel, so as to determine all matching event pairs that meet the conditions.

[0210] refer to Figure 12 This displays a schematic diagram of events within a time window, illustrating different numbers of flash pulse events within a time window of equal duration. Specifically, as shown... Figure 12 As shown, when opening a time window based on a single event in a chronologically ordered set of events, the following scenarios may occur:

[0211] like Figure 12 As shown in (a), there is only one single event in the time window, which means that this single event cannot form any matching event within the given time window, so the single event is discarded.

[0212] like Figure 12As shown in (b), there are exactly two single events within the time window, indicating that there exists a pair of coincident events formed by these two single events within a given time window. However, there is an exception: if both single events are captured by the same detector, a response line cannot be formed and they must be discarded. Therefore, in this embodiment, step S4300, as in step S1160, further includes determining whether the corresponding flash pulse event and the next flash pulse event correspond to the same detector if the corresponding flash pulse event and the farthest flash pulse event have the same parity position attribute. If not, a first state is marked; if yes, a second state is marked.

[0213] like Figure 12 As shown in (c), there are three or more single events in the time window, indicating that there are multiple pairs of matching events within the given time window. Matching events can be selectively extracted as needed, or in some embodiments, all events can be discarded.

[0214] refer to Figures 11 to 15 As described in step S1110, especially as Figure 13 (a) indicates that thread i first determines whether a blinking pulse event exists within a time window established in the temporal direction (downstream) starting from single event i, and optionally determines the number of events n. Similarly, as Figure 13 (b) Figure 13 (c) Figure 13 (d) represents the execution status of threads i+1, i-1, and i-2, respectively. Specifically, in threads i, i+1, and i-1, there are flashing pulse events within the time windows established in the temporal direction (downstream) starting from the corresponding event; in thread i-2, there are no flashing pulse events within the time windows established in the temporal direction (downstream) starting from the corresponding event.

[0215] refer to Figures 11 to 15 As described in step S1130, if the case of a single event n is not found in step S1110 (such as the single event i-2 corresponding to thread i-2), it can be directly determined that the thread has not found a matching event and recorded as the second state. For example, the matching index of the event corresponding to this thread is recorded as 0.

[0216] refer to Figures 11 to 15 As described in step S1120, for the case where a single event n is found, backtracking is performed to find the farthest element m that satisfies the condition that the time interval between the previous event and the previous event is within the time window τ. Figure 14 As shown in (a), the furthest element m found by backtracking from thread i (corresponding to event i) is i-1. Similarly, as... Figure 14As shown in (b), the furthest element found by backtracking from thread i+1 (corresponding to event i+1) is also i-1. Within the backtrackable range, this can be called the backtracking interval, or more broadly, the pairing interval.

[0217] refer to Figures 11 to 15 As described in step S1140, starting from the furthest element m (e.g., i-1) found by backtracking within a given time window τ, the relative position attribute of the corresponding event (e.g., event i) and the furthest element is determined in the corresponding thread (e.g., thread i), more specifically, the parity position attribute. Figure 15 (a) illustrates that event i corresponding to thread i has different parity position attributes than the farthest element i-1, i.e., the second state. In the illustrated embodiment, the farthest element m is denoted as position 0 (even number), but other notation methods can be used without changing the essence. For example... Figure 15 (b) shows that the event i+1 corresponding to thread i+1 has the same parity position attribute as the farthest element i-1, which is the first state. At this time, the event paired with the event i+1 corresponding to this thread can be recorded as event i+2.

[0218] In various embodiments of this application, when determining the relative parity position attribute relative to the farthest element, for Figure 12 The situation shown in (c) can be handled in different ways. In some embodiments, when determining the relative parity position attribute, a time window τ is established starting from the farthest element m. m The system determines whether there are exactly two events within each time window, updates the matching status accordingly, and eliminates cases where a time window contains more than three events when judging the relative parity position attribute, ensuring that elements within the matching interval can be paired. However, in another embodiment, judging the relative parity position attribute can simply involve determining the parity of the corresponding event relative to the arrangement position of the furthest element. Both fall within the scope of this application.

[0219] exist Figure 11 In the illustrated embodiment, within each parallel task (e.g., thread), it is pre-determined whether there are events in the downstream time window before backtracking; however, it is also possible to determine whether there are events within the downstream time window after backtracking. Accordingly, as... Figure 16 As shown, step S4300 may include:

[0220] S1610: Starting from the corresponding flashing pulse event, backtrack along the reverse time sequence event by event to the furthest flashing pulse event;

[0221] S1620: Determine the parity position attribute of the corresponding flash pulse event relative to the farthest flash pulse event;

[0222] S1630: Determine the coincidence state of the corresponding flashing pulse event based on the parity position attribute:

[0223] S1640: If the corresponding flash pulse event has the same parity position attribute as the farthest flash pulse event, then it is further determined whether there are adjacent flash pulse events within a specified time window along the temporal direction starting from the corresponding flash pulse event:

[0224] S1660: If the adjacent flashing pulse event exists, then S1660: Determine the corresponding flashing pulse event as the first state.

[0225] S1670: If no adjacent flash pulse event exists, then S1670: Determine the corresponding flash pulse event as the second state.

[0226] S1650: If the corresponding flashing pulse event has different parity position attributes from the farthest flashing pulse event, determine the corresponding flashing pulse event as the second state.

[0227] Reference Figures 16 to 17 , Figure 17 The illustrated embodiment demonstrates another parallel implementation strategy. For example... Figure 17 As shown in (a), for example, taking task i+3 (such as thread i+3) as an example, its corresponding event i+3 can, for example, backtrack to the farthest element (also i-1 in this case) within a given time window τ in step S1610, determine the parity position attribute in step S1620, and determine the conformity state of the corresponding event i+3 in step S1630 based on the parity position attribute. Here, the parity position attribute of event i+3 is the same as that of the farthest element, which is even (E), thus... Figure 17 As shown in (b), in step S1640, it is determined whether a flicker pulse event exists within the time window established in the timing direction (downstream of the timing). Figure 17 In the embodiment shown, there are no adjacent events within the time window. For example, in step S1670, the corresponding event i+3 is determined to be in the second state, and the pairing index of the event corresponding to this thread is recorded as 0.

[0228] Other features in this embodiment can be referred to Figures 11 to 15 The embodiments shown can also selectively combine the same detector exclusion feature and / or multi-event rejection feature of the above embodiments.

[0229] exist Figure 11 and Figure 16 In the illustrated embodiment, the matching event pairs are represented by the first event in the time sequence. However, it is conceivable to represent them by the second (or third) event in the time sequence, in which case it would be unnecessary to determine whether there is an event within the downstream time window. Accordingly, as Figure 18 As shown, step S4300 may include:

[0230] S1810: Starting from the corresponding flashing pulse event, backtrack along the reverse time sequence event by event to the furthest flashing pulse event;

[0231] S1820: Determine the parity position attribute of the corresponding flash pulse event relative to the farthest flash pulse event;

[0232] S1830: Determine the coincidence state of the corresponding flashing pulse event based on the parity position attribute:

[0233] S1840: If the corresponding flashing pulse event has different parity position attributes from the farthest flashing pulse event, then the corresponding flashing pulse event is determined to be in the first state.

[0234] S1850: If the corresponding flashing pulse event has the same parity position attribute as the farthest flashing pulse event, then the corresponding flashing pulse event is determined to be in the second state.

[0235] Therefore, in this embodiment, the previous flash pulse event of the corresponding flash pulse event in the first state will be used as another matching event.

[0236] Reference Figures 18 to 19 , Figure 19 The illustrated embodiment demonstrates another parallel implementation strategy. For example... Figure 19 As shown, taking task i+3 (e.g., thread i+3) as an example, its corresponding event i+3 can, for example, backtrack to the farthest element (also i-1 in this case) within a given time window τ in step S1810, determine the parity position attribute in step S1820, and directly determine the conformity state of the corresponding event i+3 in step S1830 based on the parity position attribute. Here, the parity position attribute of event i+3 is the same as that of the farthest element, both being even (E). For example, in step S1850, the corresponding event i+3 is determined to be in the second state, and its representation value can be, for example, 0. Although Figure 19 For example, if task i+2 (e.g. thread i+2) is not identified, its corresponding event i+2, when it is confirmed that its parity position attribute (O) is not the same as the farthest element, for example in step S1840, the corresponding event i+2 is determined to be in the first state, and its representation value can be, for example, 1, and the event paired with the current thread's corresponding event i+2 is recorded as the previous event (i.e. event i+1).

[0237] Other features in this embodiment can be referred to Figures 11 to 17The embodiments shown can also selectively combine the same detector exclusion feature and / or multi-event rejection feature of the above embodiments.

[0238] In other embodiments of this application, the relative position of the flashing pulse event corresponding to the parallel task (thread) in the forward sequence can be determined mainly by moving forward along the time sequence, thereby determining the conformity state.

[0239] For example, determining the coincidence state of the corresponding flashing pulse event based on the temporal relationship between the corresponding flashing pulse event and one or more flashing pulse events that are temporally adjacent may include S4300': advancing from the corresponding flashing pulse event to the farthest flashing pulse event through a predetermined time window, and determining the coincidence state of the corresponding flashing pulse event based on the parity position attribute of the corresponding flashing pulse event relative to the farthest flashing pulse event.

[0240] Figure 20 The illustrated embodiments are similar to Figure 11 The illustrated embodiment, however, determines the direction (forward direction) in the opposite manner for each event. Specifically, as shown... Figure 20 As shown, step S4300' may include:

[0241] S2010: Determine whether there are adjacent flash pulse events within a specified time window in the reverse direction of the time sequence, starting from the corresponding flash pulse event;

[0242] If there are adjacent flashing pulse events, then S2020: Starting from the corresponding flashing pulse event, proceed event by event along the time sequence to the farthest flashing pulse event;

[0243] S2040: Determine the parity position attribute of the corresponding flashing pulse event relative to the farthest flashing pulse event;

[0244] S2050: Determine the conformity status of the corresponding flashing pulse event based on the parity position attribute:

[0245] S2060: If the corresponding flashing pulse event has the same parity position attribute as the farthest flashing pulse event, then the corresponding flashing pulse event is determined to be in the first state;

[0246] S2070: If the corresponding flashing pulse event has different parity position attributes from the farthest flashing pulse event, then the corresponding flashing pulse event is determined to be in the second state;

[0247] If no adjacent flashing pulse event exists, then S2030: Determine the corresponding flashing pulse event as the second state.

[0248] Accordingly, in this embodiment, the previous flash pulse event of the corresponding flash pulse event in the first state will be used as another matching event.

[0249] Reference Figures 20 to 21 , Figure 21 The illustrated embodiment demonstrates another parallel implementation strategy. For example... Figure 21 As shown in (a), for example, taking task i (such as thread i) as an example, its corresponding event i, for example, can be determined in step S2010 by establishing a given time window -τ in the reverse direction of the time sequence (for example, using a negative sign to indicate the time window established in the reverse direction of the time sequence) to determine whether there are adjacent events. Figure 21 As shown in (a), when adjacent events exist, in step S2020, the furthest element (e.g., i+3) is searched forward, as shown in the forward interval. In step S2040, the parity position attribute is determined, and in step S2050, the matching state of the corresponding event i is determined based on the parity position attribute. Here, the parity position attribute of the corresponding event i is different from that of the furthest event i+3 in the forward direction, and is odd (0). Therefore, for example, in step S2070, the corresponding event i is determined to be in the second state, and its characteristic value can be, for example, 0.

[0250] Other features in this embodiment can be referred to Figures 11 to 19 The embodiments shown can also selectively combine the same detector exclusion feature and / or multi-event rejection feature of the above embodiments.

[0251] exist Figure 20 In the illustrated embodiment, in each parallel task (e.g., thread), it is pre-determined whether there are events in the upstream time window before proceeding, but it is also possible to determine whether there are events within the upstream time window after proceeding. Accordingly, Figure 22 The illustrated embodiments are similar to Figure 16 The illustrated embodiment, however, determines the direction (forward direction) in the opposite manner for each event. Specifically, as shown... Figure 22 As shown, step S4300' may include:

[0252] S2210: Starting from the corresponding flashing pulse event, proceed along the time sequence to the farthest flashing pulse event;

[0253] S2220: Determine the parity position attribute of the corresponding flashing pulse event relative to the farthest flashing pulse event;

[0254] S2230: Determine the coincidence state of the corresponding flashing pulse event based on the parity position attribute:

[0255] S2240: If the corresponding flash pulse event has the same parity position attribute as the farthest flash pulse event, then it is further determined whether there are adjacent flash pulse events within a specified time window in the reverse direction of the time sequence, starting from the corresponding flash pulse event:

[0256] S2260: If the adjacent flashing pulse event exists, then the corresponding flashing pulse event is determined to be in the first state.

[0257] S2270: If no adjacent flash pulse event exists, then the corresponding flash pulse event is determined to be in the second state.

[0258] S2250: If the corresponding flashing pulse event has different parity position attributes from the farthest flashing pulse event, determine the corresponding flashing pulse event as the second state.

[0259] Accordingly, in this embodiment, the previous flash pulse event of the corresponding flash pulse event in the first state will be used as another matching event.

[0260] Reference Figures 22 to 23 , Figure 23 The illustrated embodiment demonstrates another parallel implementation strategy. For example... Figure 23 As shown in (a), for example, taking task i-1 (such as thread i-1) as an example, its corresponding event i-1 can, for example, move forward within a given time window τ in step S2210 to find the farthest element (in this case, i+3), and determine the parity position attribute in step S2220. Then, in step S2230, based on the parity position attribute, the conformity state of the corresponding event i-1 is determined. Here, the parity position attribute of event i-1 is the same as that of the farthest element, both being even (E), thus... Figure 23 As shown in (b), in step S2240, it is determined whether a flicker pulse event exists within the time window established in the reverse timing direction (upstream of the timing). Figure 23 In the embodiment shown in (b), there are no adjacent events within the time window -τ. For example, in step S2270, the corresponding event i-1 is determined to be in the second state, and its characterization value can be, for example, 0.

[0261] Other features in this embodiment can be referred to Figures 11 to 21 The embodiments shown can also selectively combine the same detector exclusion feature and / or multi-event rejection feature of the above embodiments.

[0262] exist Figure 20 and Figure 22In the illustrated embodiment, matching event pairs are represented by the first event in the reverse temporal direction. However, it is conceivable to represent them by the second event in the reverse temporal direction (i.e., the previous event in the temporal direction). In this case, it is unnecessary to determine whether there is an event within the upstream time window. Accordingly, Figure 24 The illustrated embodiments are similar to Figure 18 The illustrated embodiment, however, determines the direction (forward direction) in the opposite manner for each event. Specifically, as shown... Figure 24 As shown, step S4300' may include:

[0263] S2410: Starting from the corresponding flashing pulse event, proceed along the time sequence to the farthest flashing pulse event;

[0264] S2420: Determine the parity position attribute of the corresponding flashing pulse event relative to the farthest flashing pulse event;

[0265] S2430: Determine the coincidence state of the corresponding flashing pulse event based on the parity position attribute:

[0266] S2440: If the corresponding flashing pulse event has different parity position attributes from the farthest flashing pulse event, then the corresponding flashing pulse event is determined to be in the first state;

[0267] S2450: If the corresponding flashing pulse event has the same parity position attribute as the farthest flashing pulse event, then the corresponding flashing pulse event is determined to be in the second state.

[0268] Accordingly, the next flash pulse event in the timing direction of the corresponding flash pulse event in the first state is its matching pairing event.

[0269] Reference Figures 24 to 25 , Figure 25 The illustrated embodiment demonstrates another parallel implementation strategy. For example... Figure 25 As shown, taking task i-1 (e.g., thread i-1) as an example, its corresponding event i-1 can, for example, move forward within a given time window τ in step S2510 to find the farthest element (here, i+3), and determine the parity position attribute in step S2520. In step S2530, based on the parity position attribute, the corresponding event i-1's state is directly determined. Here, the parity position attribute of event i-1 is the same as that of the farthest element i+3, both being even (E). For example, in step S2550, the corresponding event i+3 is determined to be in the second state, and its characteristic value can be, for example, 0. Although... Figure 25For example, if task i (such as thread i) is not identified, its corresponding event i, when it is confirmed that its parity position attribute (O) is not the same as the farthest element, for example in step S2540, the corresponding event i is determined to be in the first state, and its representation value can be, for example, 1, and the next event of the corresponding event i (i.e. event i+1) is recorded accordingly.

[0270] Other features in this embodiment can be referred to Figures 11 to 23 The embodiments shown can also selectively combine the same detector exclusion feature and / or multi-event rejection feature of the above embodiments.

[0271] Furthermore, the method shown in the embodiments of this application may also include an optional step S440: obtaining a coincidence event dataset from the plurality of flashing pulse events of the flashing pulse event sequence according to the determined coincidence state.

[0272] As an alternative embodiment, the conformity processing method may exclude optional step S440. The conformity state obtained in step S430 may be combined with other schemes for processing flash pulse event sequences, or may be directly used for image reconstruction, which falls within the scope of this application.

[0273] The steps for generating a conformity event dataset according to embodiments of this application will be described below with reference to preferred embodiments. In these preferred embodiments, the generation of the conformity event dataset can be incorporated into a conformity processing scheme as part of it. However, those skilled in the art will understand that the conformity event dataset process of the embodiments of this application is itself innovative and can be combined with other steps of conformity processing methods not described in the embodiments of this application, which fall within the scope of this application, as described below.

[0274] Accordingly, refer to Figure 26 Step S440 may include:

[0275] S441: Perform a parallel prefix sum operation on the coincidence state characterization values ​​of the plurality of flash pulse events in the flash pulse event sequence to determine the target write position of the coincidence event pair.

[0276] In this embodiment, the matching event pair includes a flashing pulse event having the first state and a previous or next flashing pulse event determined according to a preset rule, such as according to... Figures 11 to 25 Different pre-set rules.

[0277] like Figure 27As shown, in order to complete the writing of paired event pairs, parallel writing is preferred. For any thread t in the first state (e.g., the pairing index is not 0), its matching state representation value can be recorded as binary 1 (correspondingly, the second state representation value can be recorded as 0). The total number S of threads from thread 0 to t-1 before thread t that have a pairing index (not 0) can be calculated in parallel. t Then the write position of thread t is S. t Therefore, S can also be obtained by using parallel reduction to find prefix sums. t .

[0278] like Figure 28 As shown, step S441 may include:

[0279] S4411: Divide the flashing pulse event sequence into multiple sub-sequences.

[0280] S4412: Through the first parallel prefix sum processing, perform an intra-group prefix sum operation on the coincidence state characterization value of the flash pulse event in each sub-sequence to obtain the intra-group prefix sum result of each sub-sequence.

[0281] More specifically, such as Figure 29 As shown, step S4412 may include:

[0282] S44121: Provides space for the first prefix and processing of subsequences.

[0283] In this embodiment, each first prefix and processing space has a space size that is twice or more the length of the subsequence.

[0284] like Figure 30 As shown, a processing space of the first prefix sum with a subsequence length twice that of the subsequence can be allocated.

[0285] S44122: Place the coincidence state characterization value of the flashing pulse event in the subsequence into a given space segment of the first prefix sum processing space, such that the empty space before the given space segment is greater than or equal to the length of the subsequence.

[0286] S44123: By progressively increasing the step size, the sum of the values ​​at each position of the given spatial segment and the values ​​at the preceding position is calculated in parallel until the progressive step size reaches the specified maximum step size.

[0287] The distance between the forward position and the position of the characterization value is the progressive increase.

[0288] S44124: Provide the value within the given spatial segment as the prefix sum result within the group.

[0289] In this embodiment, the length of the subsequence is 2^n (2^n).n The maximum increment step size is 2^(i-1) (2 i-1 ), where n is a natural number and i is an integer incrementing from 0 and less than or equal to n-1.

[0290] Reference Figures 27 to 30 This describes a specific embodiment of the grouped prefix sum processing (such as step S4412). It can be expressed in 2... n Grouping threads into sets (e.g., corresponding to a WARP in CUDA, i.e., 32 threads per group), first calculate the prefix sum within each group. For example... Figure 30 As shown, in this specific example, a 2×2 [space] can be created. n The system allocates a memory space of size ×sizeof(int), and places the grouped data to be calculated in the second half. Then, it performs parallel summation (n times) on any thread in the second half with an incrementing step size. In the i-th summation, the step size is 2. i-1 Summing, we get the previous 2 from this thread. i-1 By summing and recording the values, we obtain the within-group prefix sum. Then, we process this within-group prefix sum in the same way to obtain the between-group prefix sum, ultimately yielding the desired S. t .

[0291] S4413: Through the second prefix sum processing, perform inter-group prefix sum operation on the intra-group prefix sum results of the multiple sub-sequences to obtain the sequence prefix sum result of the flashing pulse event sequence.

[0292] Preferably, the second prefix sum processing is also a second parallel prefix sum processing.

[0293] Specifically, such as Figure 31 As shown, step S4413 may include:

[0294] S44131: Provides a second prefix sum processing space for intra-group prefix sum results of multiple subsequences.

[0295] The second prefix and processing space has a space size greater than or equal to that of the flashing pulse event sequence.

[0296] S44131: The intra-group prefix sum results of the multiple sub-sequences are placed into the second prefix sum processing space according to the time sequence.

[0297] S44131: Starting from the second subsequence in time, sequentially and in parallel obtain the prefix sum result of each group in each subsequence and the last prefix sum result of the group in the previous subsequence, until the last subsequence in time is reached.

[0298] S44131: Provide the value in the second prefix sum processing space as the sequence prefix sum result.

[0299] In this embodiment, the sequence prefix sum result corresponds to or is used to determine the target write location of the matching event pair.

[0300] In this embodiment, the sequence prefix sum result (i.e., inter-group prefix sum) can be obtained using a method similar to that of parallel intra-group prefix sum, but the difference is that from the second sequence until the last subsequence in time, the space value corresponding to the state of all threads processing the subsequence in parallel each time is added to the previous subsequence.

[0301] S442: Write the matching event pairs in parallel to the pre-allocated data space according to the target write position to obtain the matching event dataset.

[0302] Specifically, such as Figure 32 As shown, step S442 may include:

[0303] S4421: Obtain the sequence prefix sum result corresponding to the multiple flash pulse events of the flash pulse event sequence and the previous sequence prefix sum result in parallel to obtain the corresponding coincidence state of the flash pulse event.

[0304] S4422: Obtain the sequence prefix and result corresponding to the multiple flash pulse events in the flash pulse event sequence in parallel as the write position of the corresponding flash pulse event.

[0305] S4423: Write the flashing pulse event of the first state in the flashing pulse event sequence and the previous or next flashing pulse event determined according to a preset rule to the write position of the pre-allocated data space.

[0306] After filtering all single events according to time sequence, a set of matching event pairs arranged in chronological order will be obtained:

[0307]

[0308] Where n c C is the total number of matching event pairs, and C is the set of all matching event pairs that meet the time window conditions. A matching event pair is represented as...

[0309]

[0310] Among them, two single events satisfy the time window condition:

[0311]

[0312] The above formula t w It is the width of the time window. For any two matching event pairs within C... and There must be

[0313] |t ik -t jk |>t w k = 1, 2

[0314] This application innovatively designs a parallelized time conformity processing strategy, which overcomes the computational dependency limitation of the "killAll" time conformity algorithm and achieves parallelization, thereby significantly improving the real-time conformity processing capability when processing large amounts of data. Through this parallelization, the dependencies between different parts of the time conformity processing are resolved, enabling the proposal of an optimized conformity processing scheme.

[0315] Furthermore, this embodiment introduces optional parallel prefix sum calculation to independently extract events that constitute matching event pairs from the flashing pulse event sequence, thereby freeing the extraction stage from time constraints and optimizing processing time.

[0316] Furthermore, regarding optional data acquisition, the method proposed in this embodiment effectively addresses the challenges of handling massive data volumes and high-speed transmission generated by scintillation pulse acquisition within a short period. In addition, the use of a buffer group snapshot method not only achieves linear scaling of data acquisition capabilities and task parallelization but also effectively utilizes computer resources. For example, data acquisition can be performed on the CPU, while the matching process can be executed in parallel on the GPU to leverage its powerful parallel processing capabilities. This strategy fully utilizes the computer's memory, CPU, and GPU resources, thereby achieving efficient real-time matching tasks.

[0317] Tests based on the corresponding parallel computing architecture show that this parallelization strategy significantly improves the efficiency of the PET coincidence algorithm. When processing approximately 20GB of data acquisition, it achieves a speedup of approximately 3.06 times compared to existing technologies, providing strong support for high-speed PET imaging.

[0318] As mentioned above, the event dataset generation scheme of this application is innovative and can be combined with other or conventional time discrimination steps to obtain new embodiments. Figure 33 A method for processing a flicker pulse event is shown, which may include:

[0319] S3310: Obtain a flashing pulse event sequence, wherein the flashing pulse event sequence includes multiple flashing pulse events arranged in chronological order;

[0320] S3320: Determine the coincidence state of the plurality of flashing pulse events, the coincidence state including a first state and a second state;

[0321] S3330: Perform a parallel prefix sum operation on the coincidence state representation values ​​of the plurality of flash pulse events in the flash pulse event sequence to determine the target write position of the coincidence event pair, wherein the coincidence event pair includes a flash pulse event having the first state and a previous or next flash pulse event determined according to a preset rule; and

[0322] S3340: Write the matching event pairs in parallel to the pre-allocated data space according to the target write position to obtain the matching event dataset.

[0323] Figure 33 Other features and steps of the processing method shown in the embodiment can be found in the reference. Figures 4 to 32 The illustrated embodiment conforms to the features and steps of the processing method, and Figure 33 The compliance processing methods shown in the embodiments can be combined in a non-contradictory manner. Figures 4 to 32 The features and steps of the processing method shown in the embodiments are also the same as those in other embodiments, and this falls within the scope of this application.

[0324] As mentioned above, the data acquisition in the embodiments of this application can be an independent innovative solution separate from the conformity processing process, or the data acquisition in the embodiments of this application can be combined with conformity processing methods not described in the embodiments of this application, which falls within the scope of this application. Figure 34 A method for acquiring data of a flicker pulse event is shown, which may include:

[0325] S3410: Provides at least two buffer groups, each buffer group including multiple buffers corresponding to multiple detector elements of the detector;

[0326] S3420: The at least two buffer groups alternately receive flash pulse event data. When any one of the buffer groups for receiving data is full, the task of receiving data is transferred to the other buffer group.

[0327] S3430: Generate a buffer snapshot for conformance processing from the flash pulse event data in the filled buffer group; and

[0328] S3440: After the snapshot of the filled buffer is completed, release the space of the filled buffer group to prepare for the next data reception task.

[0329] Figure 34 Other features and steps of the data acquisition method in the illustrated embodiment can be found in [reference]. Figures 4 to 33 The illustrated embodiment conforms to the features, steps, and especially the data acquisition steps of the processing method, and Figure 34 The compliance processing methods shown in the embodiments can be combined in a non-contradictory manner. Figures 4 to 33The features and steps of the processing method shown in the embodiments are also the same as those in other embodiments, and this falls within the scope of this application.

[0330] Furthermore, such as Figure 35 As shown, a method for processing flicker pulse events is provided, which includes:

[0331] S3510: Obtain a buffer snapshot using the data acquisition method;

[0332] S3520: Preprocess the buffer snapshot to obtain a flash pulse event sequence, the flash pulse event sequence including multiple flash pulse events arranged in chronological order;

[0333] S3530: Perform coincidence processing on the flashing pulse event sequence to obtain a coincidence event dataset.

[0334] In this embodiment, it can be achieved through the embodiments of this application, such as... Figure 34 The data acquisition method of the illustrated embodiment acquires a buffer snapshot.

[0335] Figure 35 Other features and steps of the data acquisition method in the illustrated embodiment can be found in [reference]. Figures 4 to 34 The illustrated embodiment conforms to the features and steps of the processing method, and Figure 35 The compliance processing methods shown in the embodiments can be combined in a non-contradictory manner. Figures 4 to 34 The features and steps of the processing method shown in the embodiments are also the same as those in other embodiments, and this falls within the scope of this application.

[0336] Accordingly, this application also proposes a corresponding device. For example... Figure 36 A coincidence processing device 3600 for a flicker pulse event is shown, which may include:

[0337] Acquisition unit 3610 is configured to acquire a flashing pulse event sequence, the flashing pulse event sequence including multiple flashing pulse events arranged in chronological order; and

[0338] Multiple parallel task processing units 3620 are configured to process the multiple flashing pulse events in parallel once or multiple times. In each parallel processing iteration, each parallel task processing unit is assigned a corresponding flashing pulse event and determines the conformity state of the corresponding flashing pulse event based on its temporal relationship with one or more temporally adjacent flashing pulse events, thereby generating a conformity event dataset.

[0339] In this embodiment, the plurality of parallel task processing units include a plurality of parallel processors or a plurality of parallel processor cores or implemented thereon.

[0340] In a further embodiment, the plurality of parallel task processing units are plurality of parallel task processing threads executed by a plurality of parallel processors or a plurality of parallel processor cores.

[0341] Optionally, the processing apparatus may further include: a data acquisition device configured to acquire flash pulse event data for generating the flash pulse event sequence.

[0342] Optionally, the data acquisition device includes:

[0343] At least two buffer groups, each buffer group comprising multiple buffers corresponding to multiple detection units of the detection device;

[0344] The control unit is configured to cause the at least two buffer groups to alternately receive flash pulse event data, such that when any one of the buffer groups for receiving data is full, the control unit will transfer the data receiving task to the other buffer group.

[0345] A snapshot unit is configured to generate a buffer snapshot for conformance processing from the flash pulse event data in the filled buffer group; and

[0346] The release unit is configured to release the space of the filled buffer group after the snapshot of the filled buffer is completed, in order to prepare for the next data receiving task.

[0347] Optionally, the conformity processing device further includes:

[0348] The preprocessing unit is configured to preprocess the flicker pulse event data to obtain the flicker pulse event sequence.

[0349] Optionally, the preprocessing unit includes:

[0350] The sorting unit is configured to sort the flicker pulse event data by time to obtain the flicker pulse event sequence.

[0351] Optionally, the preprocessing unit includes:

[0352] The energy matching processing unit is configured to perform energy matching processing on the flicker pulse event data before the time sorting, or to perform energy matching processing on the flicker pulse event sequence after the time sorting.

[0353] Optionally, the conformity processing device further includes:

[0354] The coincidence event data generation unit is configured to obtain a coincidence event dataset from the plurality of flashing pulse events in the flashing pulse event sequence based on the determined coincidence state.

[0355] Optionally, the event data generation unit includes:

[0356] A parallel computing unit is configured to perform a parallel prefix sum operation on the coincidence state representation values ​​of the plurality of flash pulse events in the flash pulse event sequence to determine the target write position of the coincidence event pair, wherein the coincidence event pair includes a flash pulse event having the first state and a previous or next flash pulse event determined according to a preset rule; and

[0357] The data storage unit is configured to write the matching event pairs in parallel to a pre-allocated data space according to the target write location to obtain a matching event dataset.

[0358] like Figure 37 A coincidence processing device 3700 for a flicker pulse event is shown, which may include:

[0359] The acquisition unit 3710 is configured to acquire a flashing pulse event sequence, the flashing pulse event sequence including multiple flashing pulse events arranged in time sequence;

[0360] The coincidence state determination unit 3720 is configured to acquire the coincidence state of multiple flashing pulse events, wherein the coincidence state includes a first state and a second state;

[0361] Parallel computing unit 3730 is configured to perform a parallel prefix sum operation on the coincidence state representation values ​​of the plurality of flash pulse events in the flash pulse event sequence to determine the target write position of the coincidence event pair, wherein the coincidence event pair includes a flash pulse event having the first state and a previous or next flash pulse event determined according to a preset rule; and

[0362] Data storage unit 3740 is configured to write the matching event pairs in parallel to a pre-allocated data space according to the target write position to obtain a matching event dataset.

[0363] Optionally, the parallel computing unit includes a parallel processor or a parallel processor core, or is implemented thereon.

[0364] Optionally, the parallel computing unit is a parallel task processing thread executed by a parallel processor or a parallel processor core.

[0365] Optionally, the conformity processing device further includes:

[0366] The data acquisition device is configured to acquire flash pulse event data used to generate the flash pulse event sequence.

[0367] Optionally, the data acquisition device includes:

[0368] At least two buffer groups, each buffer group comprising multiple buffers corresponding to multiple detection units of the detection device;

[0369] The control unit is configured to cause the at least two buffer groups to alternately receive flash pulse event data, such that when any one of the buffer groups for receiving data is full, the control unit will transfer the data receiving task to the other buffer group.

[0370] A snapshot unit is configured to generate a buffer snapshot for conformance processing from the flash pulse event data in the filled buffer group; and

[0371] The release unit is configured to release the space of the filled buffer group after the snapshot of the filled buffer is completed, in order to prepare for the next data receiving task.

[0372] Optionally, the conformity status determination unit includes:

[0373] Multiple parallel task processing units are configured to process the multiple flashing pulse events in parallel once or multiple times. In each parallel processing, each parallel task processing unit is assigned to a corresponding flashing pulse event and determines the conformity state of the corresponding flashing pulse event based on the temporal relationship between the corresponding flashing pulse event and one or more temporally adjacent flashing pulse events.

[0374] like Figure 38 As shown, a data acquisition device 3800 for flashing pulse events is also provided, which includes:

[0375] At least two buffer groups 3810, each buffer group including multiple buffers corresponding to multiple detector elements of the detector;

[0376] The control unit 3820 is configured to cause the at least two buffer groups to alternately receive flash pulse event data, such that when any one of the buffer groups for receiving data is full, the control unit will transfer the data receiving task to the other buffer group.

[0377] Snapshot unit 3830 is configured to generate a buffer snapshot for conformance processing from the flash pulse event data in the filled buffer group; and

[0378] Release unit 3840 is configured to release the space of the filled buffer group after the snapshot of the filled buffer is completed, in order to prepare for the next data receiving task.

[0379] Optionally, the at least two buffer groups are a master buffer group and a slave buffer group.

[0380] Optionally, the data acquisition device further includes:

[0381] The timed triggering unit is configured to trigger the snapshot unit to generate a buffer snapshot for conformal processing from the flashing pulse events in the buffer group of the currently received data when a preset data reception duration is reached.

[0382] Optionally, the data acquisition device further includes:

[0383] Multiple communication ports, which correspond to multiple detector units of the detector and multiple buffers of each buffer group, such that when each buffer group receives data, each buffer of the buffer group receiving data is assigned to its respective communication port.

[0384] like Figure 39 As shown, a medical device 3900 is also provided, which may include a detection device 3910, including a plurality of detection units for detecting radiated photons and a conversion unit for converting the detected radiated photons into scintillation pulse events.

[0385] The medical device 3900 may also optionally include a data acquisition device 3920 and / or a coincidence processing device 3930 for receiving the converted flash pulse events, configured to generate a coincidence event dataset based on a buffer snapshot of the data acquisition device.

[0386] In a preferred embodiment, the medical device is a PET scanner.

[0387] Furthermore, it will be understood that the embodiments and features described above for the apparatus and units can be incorporated into the method embodiments, and vice versa.

[0388] Figure 40 A schematic diagram of an exemplary electronic device 4000 that can implement the methods of embodiments of this application is shown. In some embodiments, more or fewer electronic devices may be included than those shown. In some embodiments, the implementation may be carried out using one or more electronic devices.

[0389] like Figure 40As shown, the electronic device 4000 includes a processor 4001, which can perform various appropriate operations and processes based on programs and / or data stored in read-only memory (ROM) 4002 or loaded from storage portion 4008 into random access memory (RAM) 4003. The processor 4001 can be a single-core or multi-core processor, or may contain multiple processors. In some embodiments, the processor 4001 may include a general-purpose main processor and one or more special coprocessors, such as a graphics processing unit (GPU), a neural network processor (NPU), a digital signal processor (DSP), or other general-purpose or application-specific integrated circuits. The RAM 4003 also stores various programs and data required for the operation of the electronic device 4000. The processor 4001, ROM 4002, and RAM 4003 are interconnected via a bus 4004. An input / output (I / O) interface 4005 is also connected to the bus 4004.

[0390] The processor and memory described above are used together to execute a program stored in the memory. When the program is executed by a computer, it can implement the steps or functions of the methods described in the above embodiments.

[0391] The following components can be connected to I / O interface 4005: input section 4006 including keyboard, mouse, etc.; output section 4007 including monitor, speakers, etc.; storage section 4008 including hard disk, etc.; and communication section 4009 including network interface card, modem, etc. Communication section 4009 performs communication processing via a network such as the Internet. Drive 4010 is also connected to I / O interface 4005 as needed. Removable media 4011, such as disk, optical disk, magneto-optical disk, semiconductor memory, etc., are installed on drive 4010 as needed so that computer programs read from them can be installed into storage section 4008 as needed.

[0392] Figure 40 The electronic device shown is merely illustrative, but the electronic device according to embodiments of this application may include more than [other components]. Figure 40 The electronic device shown has more or fewer components or has more or fewer components than the one shown. Figure 40 The embodiments shown have the same, partially the same, or different architectures.

[0393] It should be noted that the descriptions of the various steps in the accompanying drawings are merely illustrative and do not limit the scope of this application. Those skilled in the art can make various modifications and changes to the steps in the relevant drawings under the guidance of this application. However, these modifications and changes are still within the scope of this application.

[0394] For example, in some embodiments, the system and its modules can be implemented using hardware, software, or a combination of both. The hardware portion can be implemented using dedicated logic; the software portion can be stored in memory and executed by an appropriate instruction execution system, such as a microprocessor or dedicated-design hardware. Those skilled in the art will understand that the methods and systems described above can be implemented using computer-executable instructions and / or included in processor control code, for example, such code provided on a carrier medium such as a disk, CD, or DVD-ROM, a programmable memory such as read-only memory (firmware), or a data carrier such as an optical or electronic signal carrier. The systems and modules of this application can be implemented not only with hardware circuits such as very large-scale integrated circuits or gate arrays, semiconductors such as logic chips, transistors, or programmable hardware devices such as field-programmable gate arrays, programmable logic devices, etc., but also with software, for example, executed by various types of processors, or with a combination of the aforementioned hardware circuits and software (e.g., firmware).

[0395] It should be noted that the above description of the modules is for convenience only and should not limit this application to the scope of the embodiments described. It is understood that those skilled in the art, after understanding the principle of the system, may arbitrarily combine the modules or construct subsystems connected to other modules without departing from this principle.

[0396] Although not shown, some embodiments also provide a computer-readable storage medium storing a computer program configured to be executed to perform the methods of any of the embodiments of this application. The computer program includes various program modules / units constituting the apparatus according to the embodiments of this application, and when executed, the computer program comprised of the various program modules / units can perform the functions corresponding to the various steps in the methods described in the above embodiments. The computer program can also run on electronic devices as described in the embodiments of this application.

[0397] The basic concepts have been described herein. It is obvious that the detailed disclosure above is merely illustrative and does not constitute a limitation of this application. Although not explicitly stated herein, various modifications, improvements, and corrections may be made to this application by those skilled in the art. Such modifications, improvements, and corrections are suggested in this application and therefore remain within the spirit and scope of the exemplary embodiments of this application.

[0398] Furthermore, this application uses specific terms to describe its embodiments. For example, "an embodiment," "one embodiment," and / or "some embodiments" refer to a particular feature, structure, or characteristic related to at least one embodiment of this application. Therefore, it should be emphasized and noted that "an embodiment," "one embodiment," or "an alternative embodiment" mentioned twice or more in different locations in this application do not necessarily refer to the same embodiment. In addition, certain features, structures, or characteristics in one or more embodiments of this application can be appropriately combined.

[0399] Furthermore, those skilled in the art will understand that aspects of this application can be described and illustrated through several patentable types or situations, including any new and useful combination of processes, machines, products, or substances, or any new and useful improvements thereof. Accordingly, aspects of this application can be implemented entirely by hardware, entirely by software (including firmware, resident software, microcode, etc.), or by a combination of hardware and software. All of the above hardware or software may be referred to as a “data block,” “module,” “engine,” “unit,” “component,” or “system.” Furthermore, aspects of this application may manifest as a computer product located on one or more computer-readable media, the product including computer-readable program code.

[0400] Computer storage media may contain a propagated data signal containing computer program code, for example, on baseband or as part of a carrier wave. This propagated signal may take various forms, including electromagnetic, optical, and suitable combinations thereof. Computer storage media can be any computer-readable medium other than a computer-readable storage medium, which can be connected to an instruction execution system, apparatus, or device to enable communication, propagation, or transmission of a program for use. The program code located on the computer storage medium can be propagated through any suitable medium, including radio, cable, fiber optic cable, RF, or similar media, or any combination of the above media.

[0401] The computer program code required for the operation of each part of this application can be written in any one or more programming languages, including object-oriented programming languages ​​such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB.NET, Python, etc., conventional procedural programming languages ​​such as C, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, dynamic programming languages ​​such as Python, Ruby, and Groovy, or other programming languages. This program code can run entirely on the user's computer, or as a standalone software package on the user's computer, or partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any network, such as a local area network (LAN) or wide area network (WAN), or connected to an external computer (e.g., via the Internet), or in a cloud computing environment, or used as a service such as Software as a Service (SaaS).

[0402] Furthermore, unless expressly stated in the claims, the order of processing elements and sequences, the use of numbers and letters, or other names described in this application are not intended to limit the order of the processes and methods of this application. Although the foregoing disclosure has discussed some currently considered useful embodiments of the invention through various examples, it should be understood that such details are for illustrative purposes only, and the appended claims are not limited to the disclosed embodiments; rather, the claims are intended to cover all modifications and equivalent combinations that conform to the substance and scope of the embodiments of this application. For example, while the system components described above can be implemented using hardware devices, they can also be implemented solely through software solutions, such as installing the described system on existing servers or mobile devices.

[0403] Similarly, it should be noted that, in order to simplify the description of the present application and thus aid in the understanding of one or more embodiments of the invention, the foregoing description of the embodiments of the present application sometimes combines multiple features into a single embodiment, drawing, or description thereof. However, this disclosure method does not imply that the subject matter of the application requires more features than those mentioned in the claims. In fact, the embodiments contain fewer features than all the features of the single embodiments disclosed above.

[0404] In some embodiments, numbers describing the quantity of components and attributes are used. It should be understood that such numbers used in the description of embodiments are modified in some examples with the terms "approximately," "approximately," or "generally." Unless otherwise stated, "approximately," "approximately," or "generally" indicates that the numbers are allowed to vary by ±20%. Accordingly, in some embodiments, the numerical parameters used in the specification and claims are approximate values, which may be changed depending on the characteristics required by individual embodiments. In some embodiments, numerical parameters should take into account specified significant digits and employ a general method of digit reservation. Although the numerical ranges and parameters used to confirm their breadth of scope in some embodiments of this application are approximate values, in specific embodiments, such values ​​are set as precisely as feasible.

[0405] For each patent, patent application, patent application publication, and other material such as articles, books, specifications, publications, and documents referenced in this application, the entire contents of that patent are incorporated herein by reference. This excludes historical application documents that are inconsistent with or conflict with the content of this application, as well as documents that limit the broadest scope of the claims in this application (currently or subsequently appended to this application). It should be noted that if there are any inconsistencies or conflicts between the descriptions, definitions, and / or terminology used in the supplementary materials of this application and the content of this application, the descriptions, definitions, and / or terminology used in this application shall prevail.

[0406] Finally, it should be understood that the embodiments described in this application are merely illustrative of the principles of the embodiments of this application. Other modifications may also fall within the scope of this application. Therefore, alternative configurations of the embodiments of this application are considered as examples and not limitations, and are regarded as consistent with the teachings of this application. Accordingly, the embodiments of this application are not limited to the embodiments explicitly described and illustrated in this application.

Claims

1. A method for acquiring data of a flickering pulse event, characterized in that, The data acquisition method includes: Provide at least two buffer groups, each buffer group including multiple buffers corresponding to multiple detector elements of the detector; The at least two buffer groups are alternately receiving flash pulse event data. When any one of the buffer groups for receiving data is full, the task of receiving data is handed over to the other buffer group. The blink pulse event data in the filled buffer group is used to generate a buffer snapshot for conformance processing; and After a snapshot of a filled buffer is completed, the space of the filled buffer group is released to prepare for the next data reception task.

2. The data acquisition method according to claim 1, characterized in that, The at least two buffer groups are a main buffer group and a slave buffer group.

3. The data acquisition method according to claim 1 or 2, characterized in that, The data acquisition method further includes: When the preset data reception duration is reached, the blink pulse events in the buffer group of the currently received data are used to generate a buffer snapshot for conformance processing.

4. The data acquisition method according to claim 1 or 2, characterized in that, Each buffer in the same buffer group is the same size, thus accommodating the same number of flash pulse event data.

5. The data acquisition method according to claim 4, characterized in that, The buffers in the at least two buffer groups are of the same size.

6. The data acquisition method according to claim 1 or 2, characterized in that, The data acquisition method further includes: Multiple communication ports are provided, corresponding to multiple detector units of the detector and multiple buffers of each buffer group, so that each buffer is assigned to its respective communication port when data is received in each buffer group.

7. A method for processing coincidence of flicker pulse events, characterized in that, The matching processing method includes: A buffer snapshot is obtained by the data acquisition method according to any one of claims 1 to 6; The buffer snapshot is preprocessed to obtain a flash pulse event sequence, which includes multiple flash pulse events arranged in chronological order; The flashing pulse event sequence is subjected to coincidence processing to obtain a coincidence event dataset.

8. The conformity processing method according to claim 7, characterized in that, The process of performing coincidence processing on the flashing pulse event sequence to obtain a coincidence event dataset includes: The plurality of flashing pulse events are processed in parallel once or multiple times, wherein in each parallel processing, each parallel task is assigned to a corresponding flashing pulse event and the coincidence state of the corresponding flashing pulse event is determined based on the temporal relationship between the corresponding flashing pulse event and one or more temporally adjacent flashing pulse events; and Based on the determined coincidence state, a coincidence event dataset is obtained from the plurality of flashing pulse events.

9. The conformity processing method according to claim 8, characterized in that, The step of obtaining a coincidence event dataset from the plurality of flashing pulse events based on the determined coincidence state includes: Parallel prefix sum operations are performed on the coincidence state representation values ​​of the plurality of flash pulse events to determine the target write position of the coincidence event pair, wherein the coincidence event pair includes a flash pulse event having the first state and a previous or next flash pulse event determined according to a preset rule; and According to the target write position, the matching event pairs are written in parallel to the pre-allocated data space to obtain the matching event dataset.

10. The conformity processing method according to claim 7, characterized in that, The process of performing coincidence processing on the flashing pulse event sequence to obtain a coincidence event dataset includes: Determine the coincidence state of the plurality of flashing pulse events, wherein the coincidence state includes at least a first state and a second state; Parallel prefix sum operations are performed on the coincidence state representation values ​​of the plurality of flash pulse events to determine the target write position of the coincidence event pair, wherein the coincidence event pair includes a flash pulse event having the first state and a previous or next flash pulse event determined according to a preset rule; and According to the target write position, the matching event pairs are written in parallel to the pre-allocated data space to obtain the matching event dataset.

11. A data acquisition device for a flicker pulse event, characterized in that, The data acquisition device includes: At least two buffer groups, each buffer group comprising multiple buffers corresponding to multiple detector elements of the detector; The control unit is configured to cause the at least two buffer groups to alternately receive flash pulse event data, such that when any one of the buffer groups for receiving data is full, the control unit will transfer the data receiving task to the other buffer group. A snapshot unit is configured to generate a buffer snapshot for conformance processing from the flash pulse event data in the filled buffer group; and The release unit is configured to release the space of the filled buffer group after the snapshot of the filled buffer is completed, in order to prepare for the next data receiving task.

12. The data acquisition device according to claim 11, characterized in that, The at least two buffer groups are a main buffer group and a slave buffer group.

13. The data acquisition device according to claim 11 or 12, characterized in that, The data acquisition device further includes: The timed triggering unit is configured to trigger the snapshot unit to generate a buffer snapshot for conformal processing from the flashing pulse events in the buffer group of the currently received data when a preset data reception duration is reached.

14. The data acquisition device according to claim 11 or 12, characterized in that, Each buffer in the same buffer group is the same size, thus accommodating the same number of flash pulse event data.

15. The data acquisition device according to claim 14, characterized in that, The buffers in the at least two buffer groups are of the same size.

16. The data acquisition device according to claim 11 or 12, characterized in that, The data acquisition device further includes: Multiple communication ports, which correspond to multiple detector units of the detector and multiple buffers of each buffer group, such that when each buffer group receives data, each buffer of the buffer group receiving data is assigned to its respective communication port.

17. A medical device, characterized in that, include: The detection device includes multiple detection units for detecting radiated photons and a conversion unit for converting the detected radiated photons into scintillation pulse events. The data acquisition apparatus according to any one of claims 11 to 16 is configured to receive the converted flicker pulse event; and The matching processing device is configured to generate a matching event dataset based on a buffer snapshot of the data acquisition device.

18. The medical device according to claim 17, characterized in that, The medical device in question is a PET scanner.

19. An electronic device, characterized in that, include: A memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program, when executed by the processor, implements the steps of the method as described in any one of claims 1 to 10.

20. A computer-readable storage medium, characterized in that, The storage medium stores a computer program that, when executed by a processor, implements the steps of the method as described in any one of claims 1 to 10.