Time delay and sum for moving objects
By reducing the readout frequency and using loading technology, the problems of decreased sensitivity and insufficient computing resources in the TDI/TDS scheme were solved, achieving efficient imaging of moving objects.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- VANVISION IMAGING SWEDEN
- Filing Date
- 2024-11-13
- Publication Date
- 2026-06-26
AI Technical Summary
Existing time delay integration/summation (TDI/TDS) solutions face issues of decreased sensitivity and increased computational resource requirements when generating still images of moving objects, especially when the readout frequency is increased to match the object's movement, resulting in a decrease in overall detector sensitivity and an increase in data volume.
By reducing the readout frequency, the object has enough time to move a distance greater than one sensor pixel between two consecutive readouts. Combined with binning technology, data from multiple rows of sensor pixels are processed together to reduce the amount of data and processing requirements.
It improved the detector's sensitivity, reduced the ratio of blocked time to total time, decreased the amount of data processing, and solved the problems of decreased sensitivity and insufficient computing resources caused by increased readout frequency.
Smart Images

Figure CN122295948A_ABST
Abstract
Description
Background Technology
[0001] In many situations, it may be desirable to create still images of one or more objects that are moving relative to an imaging device (such as an X-ray detector). Use cases include, for example, airport security screening, inspection of food or other products, medical imaging, toll / customs operations, various recycling scenarios, and inspection of electronic equipment.
[0002] The so-called Time Delay Integration (TDI) or Time Delay Summation (TDS, in the case of photon counting detectors, for example) relies on adjusting the detector's readout frequency to match the movement of the object relative to the detector. In detectors including sensors with multiple rows of sensor pixels, the time between consecutive readouts of all sensor pixel values can be adjusted such that a first row of sensor pixels sees a point of the object in a first readout time instance, an adjacent second row of sensor pixels sees the same point of the object in consecutive second readout times, and so on. By scanning the object in this way and by combining data read out from different rows of sensor pixels in different time instances, a clear, still image of the object can be obtained even if the object moves relative to the detector. The time between consecutive readouts of all sensor pixel values can be defined according to the "readout frequency".
[0003] Brief description of the attached diagram
[0004] Figure 1 An exemplary imaging system according to this disclosure and an apparatus for generating X-ray images of a moving object are illustrated schematically.
[0005] Figure 2 An exemplary X-ray detector and apparatus according to this disclosure are illustrated schematically.
[0006] Figures 3A to 3G Various exemplary sensor data readout scenarios according to this disclosure are illustrated schematically.
[0007] Figures 4A to 4D Various exemplary pixel row data accumulation scenarios according to this disclosure are illustrated schematically.
[0008] Figure 5A and Figure 5B An exemplary post-processing module according to this disclosure is illustrated schematically.
[0009] Figures 6A to 6C Various exemplary post-processing modules according to this disclosure are illustrated schematically.
[0010] Figure 7 A flowchart illustrating an exemplary method for generating X-ray images of a moving object according to this disclosure is shown schematically.
[0011] Figure 8 An exemplary device according to this disclosure is schematically shown in terms of functional modules.
[0012] Figure 9 The readout postprocessing performed by an exemplary device according to this disclosure is illustrated schematically.
[0013] Detailed description
[0014] Readout from the sensor does not occur instantaneously, but rather takes a certain amount of time, during which the detector is prevented from detecting new photons arriving from the object for at least a portion of the time. For example, the detector may be prevented from detecting new photons at least during the reset of the sensor pixel values, but in some cases it may also be prevented during the actual readout of the sensor pixel values themselves. In any case, the duration of the period during which the detector is prevented from detecting new photons is generally constant and does not depend on the readout frequency, regardless of how frequently the detector / sensor is read out. As a result, the ratio of this "blocked time" to the time used for photon detection thus increases with increasing readout frequency, because a larger share of the total time is spent, for example, resetting (and possibly reading out) the sensor pixel values, rather than detecting photons.
[0015] Therefore, a problem with contemporary TDI / TDS solutions is that, in order to image objects that are moving faster than the sensor, the readout frequency must be increased to still match the object's movement, but this introduces the aforementioned drawbacks. In particular, as the proportion of time blocked increases, the overall sensitivity of the detector decreases because fewer photons are detected.
[0016] Another problem with contemporary TDI / TDS solutions is that the absolute amount of data that needs to be read from the sensor and then processed to create a still image of a moving object increases with the readout frequency, potentially requiring additional computing resources or exceeding the capabilities of existing resources. Binning one or more sensor rows / pixels after readout and before further processing can help reduce the amount of data that needs to be processed, but it still cannot overcome the aforementioned readout time problem.
[0017] For example, if a sensor with 60 rows and a row pitch of 0.1 mm is to image an object moving at a certain speed, such that the projection of the object's points / features onto the sensor area moves at a speed of 1000 mm / s, then the readout frequency should match 10000 Hz (i.e., 1000 mm / s divided by 0.1 mm). For higher resolution images, it may be desirable to use even smaller pixels, resulting in an even greater increase in the required readout frequency.
[0018] For all the reasons mentioned above, generating still images of fast-moving objects can be challenging. This disclosure aims to improve the current situation by providing an improved apparatus for generating X-ray images, a corresponding method, a detector including such an apparatus, and an imaging system including such an apparatus and / or detector. The envisioned apparatus and other entities are also well-suited for parallel processing of data from multiple sensors, such as in a detector comprising multiple (multi-row / multi-pixel) sensors.
[0019] These contributions to improvements in contemporary technology will now be described in more detail below. When referring to the accompanying drawings and figures, the same or similar reference numerals will be used to indicate the same or similar structural / logical features.
[0020] As is commonly used in this article, the term “readout” or “readout of sensor pixel values” refers to the processing of (essentially) all of the multiple physical sensor pixels, whether the processing is performed, for example, inside an application-specific integrated circuit (ASIC), on a field-programmable gate array (FPGA), or on, for example, a central processing unit (CPU), a microcontroller unit (CPU), a graphics processing unit (GPU), etc.
[0021] Figure 1 An example of an imaging system 100 is illustrated schematically. System 100 includes a radiation source 110 and a radiation detector 200. The source 110 may be an X-ray tube or similar device for emitting X-rays that pass through an object 120 to be imaged, and the detector 200 may correspondingly be an X-ray detector configured to detect such X-rays after they have passed through the object 120. The detector 200 operates by detecting incident radiation (e.g., X-rays) and converting it into electrical signals, which can be further processed to generate a spatially resolved projective image of the object 120.
[0022] System 100 further includes device 300, which can be configured to perform one or more of the following tasks: controlling source 110, reading data from detector 200, processing data read from detector 200 as part of generating an image (e.g., an X-ray image) of object 120, controlling motion device 130, etc.
[0023] Device 300 includes a processing circuitry system 310. Device 300 may also include a memory 320 to which the processing circuitry system 310 can communicate to read data from / store data in the memory 320. Device 300 may also include a communication interface 330, through which the processing circuitry system 310 (and, for example, the memory 320) can communicate with source 110 (via data exchange 331), with detector 200 (via data exchange 332), and, for example, with motion device 130 (via data exchange 333). This communication may be wired and relies on electrical and / or optical signals transmitted through one or more suitable wires, and / or wireless and relies on the exchange of electromagnetic signals. Device 300 may optionally include one or more other entities (shown here by dashed box 340) necessary to perform functions other than those described above. Device 300 may also optionally exchange additional data 334 with one or more external devices (such as user interfaces, user terminals, servers, etc.). As will be explained later herein, device 300 may be divided into or comprise multiple functional units, each configured to perform a specific task. Each such unit may include its own processing circuitry (and, for example, memory), or, if it is, for example, a logic unit implemented solely in software, two or more such units may share the same processing circuitry (and, for example, memory). As envisioned herein, memory 320 may store instructions that, when read and executed by processing circuitry 310, enable device 300 to perform the various functions described herein. Some of these functions may be performed by device 300 itself, while others may be performed by some other entity but commanded by device 300.
[0024] The processing circuitry system 310 is provided using any combination of one or more of a suitable central processing unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), etc., capable of executing instructions stored in memory 320. The processing circuitry system 310 may further be provided as part of at least one application-specific integrated circuit (ASIC) or field-programmable gate array (FPGA). Memory 320 may be provided as random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), or electrically erasable programmable read-only memory (EEPROM), and / or as a non-volatile storage medium of a device in an external memory such as USB (Universal Serial Bus) memory or flash memory (e.g., Compact Flash Memory). Memory 320 may also include persistent storage devices, for example, which may be any one or a combination of magnetic storage, optical storage, solid-state storage, or even remotely mounted storage.
[0025] As envisioned herein, system 100 can be used to generate images of moving objects (such as object 120), which will be referred to herein as detector 200 “scanning” or “imaging” object 120. As used herein, “moving” means “relative movement.” In other words, it is not necessarily the case that detector 200 is stationary and object 120 is moving. Rather, it is envisioned that relative movement could alternatively be caused by object 120 being stationary and detector 200 moving relative to object 120, or by both object 120 and detector 200 moving. One or both of object 120 and detector 200 can, for example… Figure 1 The movement is shown in the y-direction. For this purpose, a motion device 130 can be provided to provide this relative movement between detector 200 and object 120. For example, motion device 130 could be a conveyor belt configured to move object 120 in the y-direction. In other envisioned examples, motion device 130 can alternatively be configured to move detector 200. When the detector moves, this means that source 110 also moves with detector 200, and / or the X-ray beam emitted by source 110 is wide enough that detector 200 can receive sufficient radiation even when detector 200 moves and source 110 remains stationary, and vice versa. In other words, it is envisioned that radiation emitted by source 110 can be received by detector 200 regardless of where detector 200 is currently located relative to object 120. Of course, other configurations are also possible. It should be noted that what is most important is not the movement of the entire object relative to detector 200, but the movement of the projection of points / features of object 120 onto the sensor surface of detector 200. This projection movement may not necessarily correspond to the movement of the object itself, because how the projection moves across the sensor may depend on, for example, the distance between the object 120 (point / feature) and the sensor.
[0026] Detector 200 may extend primarily in the x and y directions, for example, and source 110 may be arranged at intervals from detector 200 in the z direction, as well as... Figure 1 As illustrated, as envisioned herein, system 100 can be used to perform one or more of the following: computed tomography (CT) scan of object 120, X-ray scan of object 120, etc. Detector 200 is typically not large enough to capture the entire object 120 in a single exposure / readout, but rather requires scanning to capture one or more subsequent images of object 120. Other examples of how system 100 can be used to generate scanned images of object 120 are of course possible, and the few examples listed herein do not provide an exhaustive list of all such possibilities.
[0027] As envisioned herein, device 300 may also be an integrated part of detector 200. This may include all devices 300 described so far, or at least a portion of devices 300 required, for example, to perform detector-specific tasks.
[0028] Figure 2 An exemplary detector 200, as seen from above, is illustrated schematically in more detail. More specifically, detector 200 includes one or more multi-row sensors 210, such as one or more multi-row X-ray sensors. If more than one sensor 210 is included as part of detector 200, the sensors 200 can be arranged in one row or multiple rows to form, for example... Figure 2 The grid pattern shown, or arranged in any other pattern (including 3D patterns where two nearby sensors are also separated in the z-direction), etc. Detector 200 may further include device 300, which can be configured to communicate with one or more sensors 210 via exchanging data 335. As is generally used herein, "exchanging data" can correspond to, for example, sending / generating or receiving / reading electrical signals, optical signals, electromagnetic signals, etc., and / or reading from / writing to memory (e.g., memory 320). If included as part of detector 200, device 300 may optionally be configured to communicate with one or more external devices, for example, by exchanging data 331 with source 110, exchanging data 333 with motion devices, and exchanging additional data 334 with one or more additional external devices.
[0029] Figure 2 The example sensor 210 is shown in more detail. Sensor 210 is "multi-row" because it includes multiple rows. The sensor has 220 pixels, of which This is an integer indicating the total number of such rows of sensor pixels 220. Therefore, in this example, pixels 220 are arranged in a rectangular dot matrix pattern. The spacing / pitch between adjacent pixels 220 in the x-direction is expressed as... And the size (e.g., width) of each individual pixel 220 in the x-direction is represented as Similarly, the spacing / pitch between adjacent pixels 220 in the y-direction is represented as... And the size (e.g., height) of each individual pixel 220 in the y direction is represented as In this example, the spacing / pitch between adjacent pixels 220 in the y-direction. It can also be referred to as "sensor row pitch," etc. Sensor 210 has a total of... Row sensor pixels, where each row includes Each sensor pixel, of which It is also an integer. As an example, each pixel 220 can use two indices. To find the address, among which This represents the row (or column) of pixels 220, and The column represents pixel 220. In other contemplated embodiments of the sensor, sensor pixels 220 may be in different columns. Figure 2 The pattern arrangement is a regular / rectangular pattern. For example, sensor pixels 220 can be arranged as curves (i.e., arcs) instead of straight lines. Similarly, sensor pixels 220 do not necessarily all lie in the same plane, but can be arranged such that, for example, two adjacent sensor pixels 220 are separated from each other in the z-direction, and so on. In some examples, sensor pixels 220 can also be arranged in more complex patterns, such as according to a triangular dot matrix, a honeycomb dot matrix, a hexagonal dot matrix, etc. Spacing / Pitch and They can be equal or different. In some examples, it is conceivable that the spacing / pitch between adjacent sensor pixels 220 considered to be in the same "row" / in the same location can also be different between different sensor pixels 220, and so on. Even more generally, it can be assumed that for any two adjacent / nearby sensor pixels 220, their spacing / pitch is equal. and They can be different. For example, if the object 120 to be imaged is curved, spherical, etc., it may be beneficial to arrange the sensor pixels 220 such that the sensor pixels 220 are denser toward the center of the sensor 210 than toward the outer edge of the sensor 210, and vice versa.
[0030] Device 300 enables it to read pixel data from each pixel 220 of each sensor 210, for example, as part of data 335. This readout can be performed by device 300 having a separate communication channel to all pixels 220, or by using one or more multiplexers configured for this purpose. Typically herein, detectors can utilize the direct or indirect conversion of impacting X-ray photons to electrons. Indirect conversion detectors can utilize, for example, gadolinium-based (e.g., GOS, Gadox, or Gd₂O₂S) or cesium iodide (CsI) scintillators to first convert X-ray photons to visible light, convert the visible light to electrons using, for example, (silicon) photodiodes, charge-coupled devices (CCDs), or complementary metal-oxide-semiconductor (CMOS) devices, and then read out the electrons using, for example, the CCD / CMOS itself or a thin-film transistor (TFT) arrangement. Direct conversion detectors can skip the "X-ray to visible light" step by using a material in which impacting X-ray photons are directly converted into one or more electron-hole pairs, and where electrons are read out using, for example, TFTs or thin-film diode (TFD) arrays or CMOS. Direct conversion can be achieved using, for example, amorphous selenium (a-Se). Other envisioned types of direct conversion detectors can include so-called photon-counting detectors, particularly those using cadmium telluride (CdTe) or cadmium zinc telluride (CdZnTe or CZT) for the direct conversion element (and such materials can also be used in non-photon-counting detectors). Here, the operating principle relies on applying an electric field across the direct conversion element, such that one or more electron-hole pairs generated in the material (i.e., in response to the energy absorbed by the impacting X-ray photons) can be split and transferred to corresponding sides of the element. Electrodes placed, for example, on one side can then be used to output a signal caused by the movement of charge in the electric field, and this signal can be measured using a readout circuit (such as an application-specific integrated circuit, ASIC). Typically, it is assumed that the number of electron-hole pairs generated is proportional to the energy of the X-ray photons deposited. For CdTe / CZT materials with low hole mobility, electrodes are preferably arranged to collect electrons. The readout circuit may, for example, include one or more comparators, each comparing a signal from the electrode to a specific threshold. Each time a comparator detects a signal exceeding its specific threshold, the comparator can output a signal to a counter, which in turn increments its count by one. By using multiple comparators, each with its own unique threshold, such a readout circuit is also capable of counting photons at different energies. Thus, the readout circuit can track how many incident photons have energies exceeding a first energy threshold, how many have energies exceeding a second energy threshold, and so on. The exact energy thresholds can be user-configurable and defined by appropriately tuning signals (the one or more comparators comparing their corresponding input signals from the electrodes to these signals).Photon counting detectors can be configured to operate in different so-called counting modes, such as non-paralyzable mode and paralyzable mode. Other logical and / or physical adaptations can also be provided to handle issues such as charge sharing. For a photon counting detector, it is conceivable to provide multiple electrodes, and thus each electrode corresponds to a single sensor pixel. In other words, a photon counting detector is capable of counting the number of photons arriving at the region corresponding to each sensor pixel, and may also bin this count into multiple bins, each bin corresponding to a specific photon energy level. If only a single photon energy level is considered (e.g., only the lowest photon energy level), the detector can be said to operate in single-energy mode. If two or more photon energy levels are considered, the detector can be said to operate in multi-energy mode (e.g., dual-energy mode, tri-energy mode, etc.).
[0031] Readouts for each sensor 210 of detector 200 are performed in a so-called readout interval. Using a photon-counting detector as an example, at the start of the readout interval, one or more counters associated with each sensor pixel 220 of sensor 210 are reset (e.g., reset to zero). As photons arrive, one or more counters will increment as described above. At the end of the readout interval, the current count of one or more counters for each sensor pixel is read out (referred to as readout 230 for sensor 210), and then all sensor pixel counters are reset again, allowing a new readout interval to begin subsequently. As used herein, a readout interval can be delimited / defined by a pair of readout time instances.
[0032] Typically, in this document, for each sensor 210, the readout operation 230 thus provides sensor readout data 240, which indicates at least how many photons struck each sensor pixel 220 of sensor 210 during a corresponding readout interval, possibly also for different energy levels / bins, as mentioned above. For a photon counting detector, this data may include the actual count of photons, while other types of detectors may provide data indicating, for example, the integral of the received photon energy over time. In any case, it is contemplated that the sensor readout data 240 can be constructed as data from multiple sensor pixels, for example, as multiple sensor readout data rows. (in (This is an integer representing the total number of pixel sensor rows). For each such data row, multiple sensor pixels are provided. (in, The data is an integer representing the number of sensor pixels in each row. In other hypothetical examples, the sensor readout data 240 can be constructed, for example, as multiple sensor pixel readout data elements, where each element provides data for a single sensor pixel 220. In any case, for a photon counting detector, for example, each unit 242 of the sensor readout data can therefore correspond to the photon count of a particular sensor pixel 220 (which may or may not belong to a particular row of sensor pixels). For a multi-energy detector, there can be several sets of sensor readout data 240, each corresponding to a specific energy level, etc. The sensor readout data 240 can also be referred to as an “exposure frame” of sensor 210.
[0033] The first primary idea upon which this disclosure is based is to intentionally reduce the readout frequency, thereby reducing the time spent by the readout sensor (at least including the blocking time) compared to the time available for photon detection. Specifically, it is envisioned that the readout frequency is reduced such that, between two consecutive readouts, such as between a first readout time instance and a second readout time instance, the object 120 imaged by sensor 210 has sufficient time to move a distance relative to sensor 210, thereby causing motion blur of object 120. More specifically, it is envisioned that the readout frequency is adjusted / reduced such that, for a specific point (or feature) of object 120, the projection of that point onto the surface of sensor 210 in the scanning direction of the sensor... The distance moved upwards is greater than the pixel pitch / cell spacing of the sensor (220 pixels). For example, the object point projection can be moved by more than one (i.e., For example, if If it is an integer, then The distance spanned by consecutive rows of sensor pixels 220 (or, for example, just more than one sensor pixel 220). For example, if, in the first readout time instance, a point of object 120 is projected onto a row of sensor pixels 220. If the above occurs, then in the next consecutive readout time instance, the point of object 120 will be projected onto the row. Above, among which (in ,For example Reducing the readout frequency in this way decreases the amount of data that needs to be transferred between sensor 210 and, for example, device 300 over time, thereby helping to reduce the ratio of "blocked time" to total time and at least partially solving the aforementioned problems of contemporary technology. Note that in contemporary TDS / TDI solutions, the readout frequency is higher, and such that during two consecutive readout time instances, the projection of an object point has only the time to move one row of pixels on sensor 220 (e.g., a distance equal to the spacing / pitch of sensor pixels 220 in the scan direction y), i.e., such that (using the example above) .
[0034] As already mentioned, it should be noted that even without such... Figure 2 The concepts upon which this disclosure is based, including the explicitly defined "rows" / "arcs" / "strings" of sensor pixels, also apply. For example, sensor 210 may be one-dimensional and only have rows / arcs along the scanning direction of sensor 210 (e.g., along the scanning direction of sensor 210). Figure 2 The single-row sensor pixels 220 are oriented in the y-direction (as shown). Therefore, it can be said that the readout frequency needs to be adjusted so that between two consecutive readouts of all sensor pixel values, the object's projection has time to move in the scanning direction. A series of consecutive sensor pixels (rather than two or more consecutive rows of sensor pixels), and / or, for example, a movement distance greater than the spacing / pitch of the sensor pixels in the scanning direction. In other words, it can be assumed that each sensor pixel is spatially offset by a first distance (to each other) in the scanning direction, and the readout frequency is adjusted such that between the first readout time instance and the second readout time instance, the projection of the object point on the sensor has time in the scanning direction. The upward movement is a second distance greater than the first distance. Similarly, even if there are well-defined rows, each containing more than one sensor pixel 220, this concept can still be discussed solely for such a one-dimensional sensor.
[0035] According to this disclosure, since the readout frequency is adjusted such that the projection of the object point onto sensor 210 has a time shift greater than the distance traversed by more than one row of sensor pixels 220 (or, for example, more than one sensor pixel 220) between two consecutive readouts, photons originating from the object point will be registered / detected by sensor pixels 220 belonging to multiple rows of sensor pixels 220 (or multiple sensor pixels 220 along the scanning direction of sensor 210) during the same readout interval. Therefore, motion blur is introduced when attempting to image the object 120 while it is moving relative to sensor 210. Conversely, less time will be spent on sensor blocking / readout, thereby enabling improved sensitivity of sensor 210 and associated detector 200.
[0036] Now will also refer to Figures 3A to 3G A more detailed description of various examples of how to reduce readout frequency is provided. In these figures, it is assumed that the object point projection on the sensor shifts by an integer. The line sensor has 220 pixels, meaning the distance the object point projection moves is along the scanning direction. The first distance (pitch / space) between adjacent row sensor pixels 220 This is several times. Some of these examples will also demonstrate the concept of packing two or more rows of sensor pixels together to further reduce the amount of data that needs to be processed, as envisioned in this paper. Here, we assume that integers... The 220 pixels of the line sensor are packed / grouped together, among which, Used to indicate that this loading / grouping should not be performed.
[0037] Figure 3A An example of the proposed concept is illustrated schematically. For illustrative purposes only, it is assumed here that sensor 210 has only six rows. - Each row contains four sensor pixels 220. Therefore, the corresponding sensor readout data 240 can be constructed into six rows. - The array has four (pixel) data elements 242 per row. For this particular example, it can be assumed that detector 200 is a photon counting detector operating in single-energy mode, and therefore each element 242 in the data 240 corresponds to a single count of all impacting photons that have exceeded the minimum photon energy threshold of the corresponding sensor pixel 220 during the readout interval ending with the current readout. In this example, object 120 moves during two consecutive sensor readouts. Row sensor pixels 220, and do not load multiple rows of sensor pixels 220 (i.e. ).
[0038] For illustrative purposes only, in this example, object 120 is considered to have three object points of particular interest: 122, 124, and 126. The exact shape / outline of the object is considered irrelevant, and only the movement of points 122, 124, and 126 (as projected onto sensor 210) will be discussed. The projections of points 122, 124, and 126 are considered to be... Figure 3A The middle is composed of arrows / vectors At a fixed speed in the indicated direction | Movement. Here, let's assume direction. The sensor pixels 220 extend laterally along the x-direction and parallel to the y-direction. Each row of sensor pixels 220 extends along the x-direction, and the y-direction is considered the scanning direction of the sensor 210. In this example, the object starts from the bottom (row) of the sensor 210. ) Towards the top of the sensor (row) The movement of the sensor can also be referred to as its "forward scanning direction".
[0039] First readout time example Object 120 remains outside the field of view of sensor 210, and therefore the various sensor pixels 220 do not count photons (at least no photons associated with / originating from any of object points 122, 124, and 126). Therefore, sensor readout data 240 is empty, where "empty" is considered to mean that there are no photon counts originating from object points 122, 124, and 126. Typically, it is assumed in this document that sensor readout data 240 can be modified before being processed, which will be done by... The sensor readout data 240 obtained is transformed into a pixel frame dataset 350-0. Pixel frame dataset 350-0 includes data elements grouped into multiple pixel rows. , ,in It is an integer indicating the current time instance. Therefore, for a time instance... The pixel frame dataset 250-0 includes pixel rows. Multiple data elements. In this particular example, the sensor readout data 240 is not loaded (or otherwise preprocessed), and therefore the number of pixel rows in the pixel frame dataset 350-0 is the same as the number of rows in the sensor pixel 220. The number of elements is the same, and the number of data elements in dataset 350-0 is the same as the number of sensor pixels 220. Therefore, there are six pixel rows in this case. - However, it should be noted that preprocessing of the sensor readout data 240 can also reduce pixel rows. The total number, for example, by skipping the ones originating from the first row. and the last line Data from the pixel sensor 220 is processed by loading multiple rows of sensor pixels 220, as illustrated in more detail later in this document. As mentioned earlier, loading may include, for example, loading each... The row pixel sensors 220 combine to form a single output row in the pixel frame data 350, such that, for example, the rows of sensor pixels 220 Combined into rows of pixels ,OK Combined into rows of pixels And so on. In this particular example, this loading method is not used, and .
[0040] In the next consecutive readout time instance The corresponding projection of each of object points 122, 124, and 126 onto sensor 210 has now had time to move with the two rows of pixels on sensor 220 (because...). The corresponding distance means that the readout frequency has been adjusted accordingly. Compared to traditional TDI / TDS solutions, the readout frequency is considered to be half that of traditional TDI / TDS readout frequencies. In this paper, the readout frequency and the moving speed of the object point projection can be determined by digital... This figure indicates how many rows of pixel sensor 220 the projection movement traversed during two consecutive readout time instances. In this particular example, This is because, between consecutive readout time instances, the projections each move a distance corresponding to (the distance traversed) two rows of sensor pixels 220. For example, the projection of object point 122 passes through rows of sensor pixels 220 during this readout interval. and Therefore, photons originating from object point 122 will be detected / counted by pixel sensors 220 in these two rows. This is reflected in the corresponding pixel frame dataset 350-1 obtained for this time instance by the number of photons appearing in the pixel rows. and The symbol (circle) of object point 122 is displayed. So far, object point 124 has only passed through the time row. This is because the symbol (star) for object point 124 exists only in pixel row 350-1 of the pixel frame dataset. The middle part is for display.
[0041] As the projections of object points 122, 124, and 126 continue to move across the surface of sensor 210, subsequently during continuous readout times... and Perform additional reads, such as Figure 3A Further, as shown, additional pixel frame datasets 350-2, 350-3, 350-4, and 350-5 are obtained accordingly. (In time instances) Object 120 and object points 122, 124, and 126 are no longer visible to sensor 210, and therefore the output pixel frame dataset 350-5 is again “empty” (within the meaning defined above). It should be noted that in all non-empty pixel frame datasets 350-1, 350-2, 350-3, and 350-4, there is motion blur of object 120 caused by the object point projections ultimately being registered as photons by multiple rows of sensor pixels 220 in each readout interval, as indicated by the symbols representing object points 122, 124, and 126 appearing on multiple pixel rows in each pixel frame dataset 350-1, 350-2, 350-3, and 350-4 (circles, stars, and squares, respectively).
[0042] It should be noted that in other hypothetical examples, object 120 may not necessarily move at a constant speed. In such cases, the readout frequency could be adjusted accordingly, such that the readout frequency varies, for example, between different pairs of consecutive readout time instances. For instance, if object 120 is accelerating, then the readout time instances... and The distance between them (in time) may be longer than the readout time instance. and The distance between them (in time), etc. Similarly, if object 120 changes to decelerating, the time instance is read out. and The distance between them (in time) may be shorter than the readout time instance. and The distance between them (in time), and so on. As long as information about the velocity of object 120 relative to sensor 210, or at least about the velocity of the projection of the object point onto sensor 210, is available, it is conceivable (if necessary) that the readout frequency can be time-varying and adapted such that in each pair of consecutive readout time instances... and Between these two points, the projection of the object point onto sensor 210 has a time shift (i.e., it has moved) and The row of sensor pixels 220 (or, if, for example, no row is explicitly defined, if sensor 210 is one-dimensional, etc., then in the scanning direction) is the row of sensor pixels 220. The distance corresponding to each sensor pixel. In other examples, based on, for example, the speed at which an object point projection moves on sensor 210, It can also vary between consecutive readout time instance pairs.
[0043] In a similar way, Figure 3B Another example is shown illustratively (also without using loading). However, the readout frequency is adjusted such that between two consecutive readout time instances, the object projections 122, 124, and 126 have time to move on sensor 210 by a distance corresponding to / spanned by the three rows of pixel sensors 220, i.e. As can be seen in the pixel frame datasets 350-1, 350-2, and 350-3, there is additional motion blur during each readout interval due to the projection of object points 122, 124, and 126 detected in the pixel sensor 220 (not two rows, but three rows).
[0044] Figure 3C This illustrates yet another example, in which... However, before generating the pixel frame datasets 350-0 to 350-5, the multi-row sensor pixels 220 are now loaded. In this particular example, the loading... This corresponds to the number of rows of sensor pixels 220 that each object point 122, 124, and 126 traverses during each readout interval, because every two rows of sensor pixels 220 are combined to form a single pixel row in the corresponding pixel frame dataset. In other words, As mentioned earlier in this article, there may not necessarily be multiple sensor pixels 220 in each row, and / or only one sensor pixel 220 may be considered in each row. However, loading is still possible because every two sensor pixels 220 (in the one-dimensional sensor 210) can be combined, for example, to form an equivalent single-pixel output. ), combining every three sensor pixels 220 to form an equivalent single-pixel output ( ), etc. Generally, for the purpose of illustrating the concepts upon which this disclosure is based, only arrangements in the scanning direction are considered. Multiple sensor pixels 220 on the sensor 210 are sufficient, regardless of whether there are more sensor pixels 220 in the entire sensor 210, such as multiple sensor pixels 220 in each row of multiple rows of sensor pixels 220.
[0045] Specifically, in this example, loading is performed by each readout time instance. This is achieved by performing the following operations: combining lines and The data in the middle is used to form pixel rows. Combined lines and The data in the middle is used to form pixel rows. ; and combined lines and The data in the middle is used to form pixel rows. Therefore, the number of pixel rows in each pixel frame dataset is less than the total number of rows in the sensor pixel 220. This loading can be performed, for example, by adding the values of two rows in the sensor readout data 240 pixel by pixel, such that, for example, the number of pixel rows... The first element is by passing the row and The pixel row is obtained by adding together the first elements (pixels) of the pixel row. The second element is by passing the row and The second element (pixel) is added together to obtain the result for the first pixel row. All elements (pixels) and for other pixel rows and And so on. Generally speaking, for those caused by... The defined loadout, the pixel frame dataset can be formed such that each pixel row By line The combination is obtained by combining elements from different rows that correspond to the same pixel in each row, such as by adding them together or by using any mathematical operation. For example, in addition to using ordinary addition (or in combination with ordinary addition), a specific pixel row The elements can be formed by weighting the corresponding sensor pixel values in two or more rows of sensor pixels 220 (either by uniform weighting or by applying different weighting exponents to different pixel values), taking the average, mean, minimum / maximum, some logarithmic or exponential combination, or determining how to combine the values from multiple rows of sensor pixels 220 (or only from multiple sensor pixels 220) as part of the loading operation, based on any other suitable linear or non-linear mathematical function or strategy (such as based on the use of machine learning / artificial intelligence).
[0046] Figure 3D This illustrates yet another example, but in which... and That is, each projected object point has time to move the distance traversed by three rows of sensor pixels 220 during each readout interval, and the rows of sensor readout data 240 are loaded as described above, such that every three rows are added together.
[0047] In all the examples that include loading, loading can, of course, also be performed in the x-direction (if there are more than a single sensor pixel in each row), that is, reducing the number of data elements in each pixel row to fewer data elements than the number of sensor pixels 220 present in each row of sensor pixels 220. For example, each pair of neighboring pixels can be combined (e.g., by addition, weighting, taking the minimum / maximum value, or using any other suitable mathematical function or strategy, such as machine learning / artificial intelligence) to create a single data element, each three neighboring pixels can be combined to create a single data element, and so on. In other examples, such as those shown so far, loading is performed only in the y-direction.
[0048] Figure 3E This illustrates yet another example, used to demonstrate the "loading index". With "Sensor Row Skip Index" Mismatch scenario. Here, it is assumed that sensor 210 has two additional rows. and The pixel sensor 220, and the corresponding sensor readout data 240, therefore define two additional rows. and Here, the object 120 moves faster, causing the projections of points 122, 124, and 126 onto the surface of sensor 210 to cover the distance traversed by the four rows of sensor pixels 220 during each readout interval. Performing loading means creating four pixel rows for each pixel frame dataset 350-0 to 350-3 (where pixel frame datasets that may be generated after the projections of points 122, 124, and 126 leave sensor 210 are not shown).
[0049] Figure 3F and Figure 3G Various examples are illustrated schematically, in which the movement of object 120 relative to sensor 210 is in the opposite direction, for example, along the "reverse scanning direction" of sensor 210. Here, the projections of object 120 and points 122, 124, and 126 first arrive at the first row. and in the last line Leave the sensor. Figure 3F Showing And no loading ( Examples of ), and Figure 3G Showing Furthermore, loading is performed every two rows along the sensor's scanning direction. Examples of ).
[0050] In the diagrams related to loading, the relative sizes of the various symbols used in the presented pixel frame dataset indicate how many photons from the object point are included in each generated "bin". For example, in Figure 3C In the middle, the square in row L32 is larger because the corresponding point 126 has been detected in both rows S5 and S6 of the sensor since the last readout, while the star symbol in row L32 is smaller because the corresponding point 124 has only been detected in row S5 since the last readout.
[0051] The second main idea upon which this disclosure is based is that, having reduced the readout frequency so that the object point projection has time to move (i.e., move by) a distance greater than the sensor pixel spacing / pitch (i.e., , making Afterward, the resulting pixel frame datasets obtained at different readout time instances are combined such that repeated readouts accumulate over time. This involves combining (e.g., adding, weighting, etc.) data elements from different pixel frame datasets such that one or more neighboring sensor pixels associated with one data element are different from one or more neighboring sensor pixels associated with another data element. If multi-row sensor pixels are used, this means that data from one or more rows of sensor pixels provided in one pixel frame dataset will be combined with data from one or more other / different rows of sensor pixels in another pixel frame dataset. In other words, data obtained from one or more first (multi-row) sensor pixels capturing a specific point of the object at a first time instance is combined with data from one or more second (multi-row) sensor pixels capturing a specific point of the object at a second time instance, wherein the first and second (multi-row) sensor pixels are spatially offset in the scanning direction by the distance traveled by the object point projection on sensor 210 (e.g., according to...). The corresponding distance. For example, when pixel rows in two pixel frame datasets corresponding to consecutive sensor readout time instances are added together, one or more consecutive row sensor pixels 220 in the readout upon which the pixel row forming one of the two pixel frame datasets is based, and one or more consecutive row sensor pixels in the readout upon which the pixel row forming the other of the two pixel frame datasets is based (in the scanning direction), are each spatially offset by more than one row of sensor pixels 220. Reference will now also be made to Figure 4A , Figure 4B , Figure 4C and Figure 4D Let me illustrate this concept with more detailed examples.
[0052] Figure 4A This schematically illustrates how repeated readouts can be accumulated over time, where the rows of pixels to be added are such that the corresponding row or more rows of sensor pixels associated with one row are offset by an integer relative to the row or more rows of sensor pixels associated with the other row. In this paper, each pixel row (in the pixel frame dataset) can be associated with more than one row of sensor pixels 220 or obtained based on readouts from that row of sensor pixels. This is because readouts from multiple rows of sensor pixels 220 can be combined to form a single pixel row in the pixel frame dataset, for example, as a result of binning as discussed earlier in this paper. If binning is not performed before accumulating these rows, each pixel row will be associated with only a single row of sensor pixels 220 or derived only from readouts from that single row of sensor pixels.
[0053] exist Figure 4A In this case, it can be assumed that the projection of the object point of object 120 moves in the forward scanning direction, for example, as Figures 3A to 3EAs shown and illustrated in any of the examples, arrows indicate how data is transferred from one pixel row to another, and squares with plus signs indicate that data from one pixel row to the pixel row with the plus sign is added to (or combined in some other way) with the latter's data. In this way, data from pixel rows associated with different readout time instances are accumulated, and the results are forwarded to form an accumulated image 400. Image 400 may, for example, have multiple rows. ,in This depends on the total number of different readout time instances used to scan object 120. For example, if the notation previously described herein is used, where the first readout time instance is... The final time instance read is Then integer It can be equal to For example, in Figure 4A As can be seen, for each readout time instance, a row of 400 pixels will be output. In the first readout time instance... At the end, the first pixel row in the first pixel frame dataset (e.g., 350-0) The data is not combined with any other pixel row data, but is output as is to form the first row of image 400. The second row of image 400 The second pixel row will be accumulated from the first pixel frame dataset (e.g., 350-0). The first pixel row of the second pixel frame dataset (e.g., 350-1) The data from both sources is used to form this. Continuing in this way, it can be seen that, for The third row of image 400 It is achieved by accumulating the third pixel row from the first pixel frame dataset 350-0. The second pixel row of the second pixel frame dataset 350-1 and the first pixel row of the third pixel frame dataset (e.g., 350-2) The data was obtained. The number of rows equal to the number of sensor pixels 220 in sensor 210 has been executed. After multiple reads, the number of pixel rows from different datasets from which data is accumulated to form the remaining new rows of image 400 will stabilize at a number equal to N. For example, generating rows of image 400 Will use from pixel row The data is accumulated; and an image with 400 rows is generated. Will use from pixel row The data is accumulated. In this example, it is added to the last row of image 400. Will only include pixels from row (That is, the data obtained from the last pixel frame dataset (e.g., 350-J) captured / acquired during the last readout of sensor 210.)
[0054] Figure 4B Is with Figure 4A The example shown uses the same preconditions, but the offset is changed to equal to... In other words, in this example, two pixel rows associated with adjacent readout time instances will be selected, such that the offset is... Therefore, for each time instance, two rows will be added to image 400. In the first readout time instance... Then, from the pixel line and The data is not combined with any other pixel rows, but is directly used as rows. and Add. In the next readout time instance. Image 400 rows By accumulating data from pixel rows and The data was obtained, and the rows of the image were... By accumulating data from pixel rows and The data was obtained. Similarly, the 400 rows of the image... By accumulating data from pixel rows and The data was obtained, and the image has 400 rows. By accumulating data from pixel rows and The data was obtained. (This was already executed.) After each read, data is accumulated to create image 400, with the number of rows stabilizing at N / 2. The rows of image 400... Will use from pixel row The data is accumulated; and the image has 400 rows. Will use from pixel row The data is accumulated and added to the last two rows of the image. and This will include only those from pixel rows. and (That is, data from the last pixel frame dataset obtained at the last readout of sensor 210).
[0055] Generally speaking, for a specific Each readout from the sensor can therefore add to image 400. A new line.
[0056] More generally, as envisioned herein, rows (or data elements) of the various pixel frame datasets 350-t are to be combined such that, for example, a first data element in the first pixel frame dataset associated with one or more adjacent sensor pixels 220 is combined with a second data element in the second pixel frame dataset associated with one or more adjacent sensor pixels 220 that are different from the first data element. If there is no loading ( Then the data elements (or rows of data elements) of the first pixel frame dataset are compared with those in the scanning direction. The spatial offset is equal to the distance the object point projection moves on sensor 210 (e.g., the distance between adjacent sensor pixels in the scanning direction). The sensor pixels (or rows of sensor pixels) are associated with a distance of (times) times. Similarly, if there is a loading ( If the data element is a row of pixels, then this still applies. In this case, two or more adjacent (multi-row) sensor pixels associated with the first data element will be combined with two or more adjacent (multi-row) sensor pixels associated with the second data element, and on an individual basis, the associated (multi-row) sensor pixels are still spatially offset in the scanning direction by a distance equal to the distance the object point projection moves on the sensor 210. In other words, the first (row) sensor pixel of the bin associated with the first data element (or pixel row data) is offset by such a distance from the first (row) sensor pixel of the bin associated with the second data element, and so on.
[0057] Figure 4C and Figure 4D It schematically demonstrates the relationship with Figure 4A and Figure 4B Those similar examples, but applicable to cases where the projection of the object point moves in the reverse scanning direction of the sensor (such as...). Figure 3F and 3G (As shown and illustrated). It can be seen that the desired logic can be obtained by providing the pixel rows in the dataset for each pixel frame in reverse order, such that, for example, the first pixel row in each dataset... The last pixel row in the same dataset Swap, second pixel row and the second to last pixel row Interchange, and so on. Of course, other possible solutions are also available as long as the end result is the same. In particular, in this and all other hypothetical examples herein, it is preferable to ensure that the pixel rows formed by the data read from photons originating from the same point of object 120 are accumulated together.
[0058] In general, the principle outlined in this paper is that, without performing a loading process, the combination / accumulation of data from various pixel rows / data elements in different pixel frame datasets should follow... The principle. Figure 3A As an example of this situation, it can be seen that by selecting This will accumulate data from, for example, pixel rows. , and The data, these rows all correspond to the detection of photons originating from the same feature / point 122 of object 120 (as shown by the circle symbols appearing in all these pixel rows). Similarly, the data from the pixel rows will be accumulated. and The data, in these rows, includes data on the detection of photons originating from point 124 of object 120, as shown by the star-shaped symbols appearing in all these pixel rows, and so on. Of course, some motion blur will remain, but this is considered a reasonable trade-off in exchange for a reduced ratio of sensor readout time to the time spent detecting / counting photons due to the reduced readout frequency.
[0059] Also in this article, if loading is used, the principle is... It may not match For example, at least as long as For example, when and When, it can be used ,For example Figure 3C As shown and illustrated. For example, it can be seen that using The data will accumulate from the pixel rows as expected. and The data, all these rows include point 122, etc. Some motion blur will also remain here. However, as will be explained in more detail later in this article, using binning before accumulating pixel-sorted data can have the added benefit of reducing the need for... equal And it can be reduced to, for example Therefore, it is possible to reduce (or utilize) hardware resources more efficiently. However, in this paper, we generally consider that when using loading, loading is what makes... .
[0060] In this paper, it is envisioned that various accumulations of pixel rows (or data elements) in individual pixel frame datasets can be performed by device 300, for example, as part of a data post-processing unit / section of device 300. References will also be made now. Figure 5A An example of this post-processing unit is described in more detail in Figure 5D.
[0061] Figure 5AVarious functional blocks of an example post-processing module 500 of device 300 are schematically illustrated. Module 500 includes a memory 510 in which data from multiple pixel rows can be stored and accessed. The memory 510 may also be referred to as a "data structure," etc., and can be, for example, a general-purpose memory, a queue, a stack, a list, an array, or other data structure suitable for storing and accessing data from pixel rows (or the sum of data from multiple pixel rows). Module 500 further includes one or more row delay elements 520-1 to 520-D' (also referred to only by the number "520"), wherein, for example, the total number of such elements 520 is related to the desired... Matching, that is, making Each row delay element 520 is configured to store data corresponding to a row of pixels and may be implemented, for example, as a RAM buffer, one or more logic elements, or by other suitable components. When a row delay element 520 receives new row data to be stored, it provides previously stored row data as its output. If more than one row delay element 520 is present / activated, the multiple row delay elements 520 are daisy-chained together such that the output of the first row delay element 520-1 is provided as the input of the second row delay element 520-2, and so on. Thus, when the first row delay element 520-1 receives new row data to be stored, it outputs its previously stored row data (if any) as the input of the next row delay element 520-2, and so on. The output of each row delay element 520 is also provided to the multiplexer 530. Multiplexer 530 selects an output from a specific line delay element among one or more line delay elements 520 and provides the selected output to adder 540, which adds (pixel-by-pixel) the pixel line data (if any) obtained from multiplexer 530 to pixel line data 350 obtained from the pixel frame dataset. Part or all of the daisy-chain structure can be implemented as a data structure in computer (e.g., RAM) memory, such as a queue, ring buffer, etc.
[0062] Here, it is assumed that the post-processing unit receives these pixel frame datasets either directly when reading new pixel frame datasets from sensor 210 or after performing (pre)loading as discussed herein, and processes each pixel frame dataset row by row (or element by element, without defining / using rows). By appropriately configuring memory 510 and the number of activated row delay elements 520, pixel row data / data elements from earlier pixel frame datasets can be iteratively combined with pixel row data / data elements from newer pixel frame datasets to generate a desired accumulation of pixel row data / data elements, such as... Figures 4A to 4DAs illustrated in the example, depending on whether object 120 moves in the forward or reverse scanning direction of sensor 210, pixel rows / data elements of pixel frame dataset 350 can be inserted starting from the top of sensor 210 (i.e., so that rows are processed first). Then comes the line. (and so on), or insert from the bottom of sensor 210 (i.e., so that the first row is inserted). Then comes the line. And so on.
[0063] Typically, module 500 can be operated stepwise using, for example, a clock signal (such as a pulse train). For each "tick," the data (i.e., pixel row data / data element) is processed according to... Figure 5A The flowchart shown moves forward one step. For example, with each tick, a new pixel row / data element is read from the current pixel frame dataset and provided to the adder. The adder also receives pixel row data / data elements from the last active / selected row delay element 520 and adds them to the new pixel row / data element. The result (i.e., the sum) is inserted into memory 510 as a new row / element. For each new row / element added to memory 510, it is checked whether the previously added row / element is now ready to be retrieved from memory (path 511) and provided to, for example, form a new row / element for image 400, or whether the previously added row / element will form part of a further accumulation of pixel row data / data elements, in which case the row / element is instead provided (path 512) as input to the first row delay element 520-1. If multiple row delay elements 520 exist, anything previously stored in each row delay element 520 is sent to the next row delay element 520 in the daisy chain, and the output of the last row delay element is therefore used as input to adder 540 and added to the subsequent pixel row. When the last pixel row of a particular pixel frame dataset is processed (i.e., sent to memory 510), the next pixel frame dataset is ready to be processed. As used herein, the term "row delay element" may of course also be referred to as "data element delay element" or simply "data delay element" if no row is defined.
[0064] Figure 5B The illustration schematically shows another hypothetical example post-processing module 501, which can be configured to perform the same operations as the one just referenced. Figure 5AThe post-processing module 500 described performs the same task. Here, new pixel rows / data elements from the pixel frame dataset 350 are instead fed into a daisy chain (or at least one row delay element 520-1), and the output of the last row delay element 520 is provided as input to adder 540. If a previously stored row / element is present in memory 510 and is now ready for output (i.e., that particular row / element will not participate in any further accumulation of pixel row data / data elements from different pixel frame datasets), then that row / element is output (path 511) to form, for example, a new row / element for image 400. If it is determined that the row / element will instead be part of a further accumulation, then the row / element is output from memory and sent (path 512) to adder 540 as input, so that it is added to any row / element received from multiplexer 530.
[0065] Now will also refer to Figure 6A , Figure 6B and Figure 6C A more detailed example describing the internal workings of post-processing module 500.
[0066] Figure 6A An example illustrating how module 500 can be implemented / configured is shown. Here, memory 510 is provided as a first-in, first-out (FIFO) data structure, the total number of memory rows / elements being equal to... . Figure 6A The example is provided assuming sensor 210 has six rows of sensor pixels 220 (as in, for example) Figures 3A to 3D , Figure 3F and Figure 3G (As used in the example). Module 500 is configured for... Therefore, the number of memory rows in memory 510 is equal to four. Only the first row delay element 520-1 is active. For example, the multiplexer 530 is operated such that it picks up the output from the first row delay element 520-1 as its output, while anything from the other row delay elements 520-2 to 520-D' is ignored. Figure 6A This displays a specific time snapshot, where the readout time instance is shown. Processing of the associated pixel frame dataset is almost complete. So far, four of the six pixel rows in this pixel frame dataset have been processed, and the remaining two pixel rows are awaiting insertion into memory 510. It should be noted that the bottom memory row of memory 510 is ready for output to form a new row of image 400, which triggers the (logic) switch / selector 550 so that once the next pixel row (here) is to be processed... ) is added to memory, along with the data from the pixel row. The row corresponding to the accumulated data will be pushed to image 400, instead of to the first row delay element 520-1. The first row delay element 520-1 currently stores pixel rows. The data, therefore the data for that pixel row will be compared with the pixel row. The sum is added together, and then added to memory 510 during the next "tick" of module 500. This is done by adjusting the expected output of module 500 as more ticks are generated, for example... Figure 4A By comparison, it can be seen that the expected accumulation of data from pixel rows from different pixel frame datasets will occur.
[0067] Figure 6B This illustratively demonstrates another example of how module 500 can be implemented / configured, where, and Therefore, multiplexer 530 is now configured to select the output from the second row delay element 520-2 instead of the first row delay element 520-1 as its input. According to... Figure 6A The formula described in The number of memory rows / elements in memory 510 is reduced to two. Figure 6A In the specific snapshot shown, it can be seen that memory 510 contains... The corresponding row is not yet ready to be output to image 400, therefore switch 550 is configured (at position "B") to make it consistent with... The corresponding row will be changed to the next new pixel row. When processed, it is sent to the first line of delay element 520-1 (which is currently empty because switch 550 was previously an output and is now a line of image 400). (i.e., line) Part of it is configured at position "A") as input. Since the second row delay element 520-2 is also empty (because the switch at the output is now the row of image 400), At that time, it was also at position "A"), and there was no data or pixel row in that step. Add them together. By combining the current state of module 500 with the expected future data flow as more ticks are generated. Figure 4B By comparison, it can be seen that Figure 6B The performance of module 500 in the example also met expectations.
[0068] Figure 6C This illustratively demonstrates yet another example of how module 500 can be implemented / configured, in which... and In this case, memory 510 is not needed because, in this particular example, for each new row of pixels, there is always one row output to image 400. For example, a new row... will with (Currently stored in the third row of delay element 520-3) Add them together and output directly as a new row of image 400. The next new line will with (It is currently stored in the second row of delay element 520-2, but will be processed in the pixel row) The time is shifted to the third row, the delay element 520-3) is added, and directly output as a new row of image 400. And so on. Generally, for and Given a value, the number of memory rows required for memory 510 is determined by, for example, the expression... As explained earlier in this document, the memory 510 can still be configured / capable of storing more rows than required, but in this case, the read mechanism can be adjusted so that currently unused rows are ignored, etc. This allows for [the following]... and The flexibility of using the same memory for multiple cases with different values.
[0069] Configuring switch 550 can be done, for example, by checking whether the current bottom memory row / element of memory 510 includes elements preceding the currently processed pixel frame dataset. The data associated with one of the rows / elements is used to determine this. For example, in Figure 6A In the example, once it is detected that the bottom memory row of memory 510 is the first (D = 1) pixel row of the currently processed pixel frame dataset, the switch is switched to position "B"; otherwise, it is switched to position "A". Figure 6B In the example, once it is detected that the bottom memory row of memory 510 is the first or second (D = 2) pixel row of the currently processed pixel frame dataset, the switch is switched to position "B", otherwise it is switched to position "B", and so on.
[0070] Example post-processing module 501 can, of course, be reconfigured as follows: Figure 5B The various functional entities shown in the flowchart (such as memory 510, one or more line delay elements 520, multiplexer 530, and adder 540) are similarly implemented. Figures 6A to 6C The module shown.
[0071] It is conceivable that both post-processing modules 500 and 501 can be implemented using, for example, the processing circuitry system 310 of the device 300 as envisioned herein. Here, the term "processing circuitry system 310" is assumed to include the software, hardware, or a combination of both required to perform the various operations of post-processing modules 500 and 501. It should also be noted that, due to symmetry considerations, depending on whether the pixel rows of the pixel frame dataset are provided from the top or bottom of sensor 210, both modules 500 and 501 can produce the same output. In principle, one of the modules 500 and 501, whose pixel rows are provided in a certain order, should ultimately produce the same output as the other of the modules 500 and 501, whose pixel rows are provided in the reverse order.
[0072] For example, Figure 4C and Figure 4D The situation (corresponding to object 120 moving in the reverse scanning direction of sensor 120) can be handled, for example, by post-processing module 500 feeding pixel rows in reverse order, such that (for instances with readout time) (Associated pixel frame dataset) First process pixel rows Then And so on.
[0073] Now will also refer to Figure 7 A method for generating X-ray images using one or more multi-row X-ray sensors (such as any sensor 210) is described in more detail.
[0074] Figure 7 A flowchart of an exemplary method 700 according to this disclosure is schematically shown. As part of a first operation S710, method 700 includes obtaining at least a first pixel frame dataset and a second pixel frame dataset from a sensor having a plurality of sensor pixels spatially offset by a first distance in the scanning direction. Each pixel frame dataset includes data representing a plurality of data elements, each data element being associated with one or more (e.g., among the plurality of sensor pixels) Each pixel frame dataset is associated with a first number (e.g., ) of adjacent sensor pixels from sensor 210. (Multi-row) Sensor pixels 220 (e.g.) The readout forms multiple data elements (e.g., data elements of pixel rows, e.g.) The data. The read frequency is such that between the first read time instance and the second read time instance, for example, in and Between these points (e.g., 122, 124, and / or 126) of the imaged object 120, the projection onto the sensor 210 has a time-dependent movement in the scanning direction of the sensor 210 of a second distance greater than the first distance between sensor pixels in the scanning direction, for example, by... A continuous (multi-row) of sensor pixels (e.g., from row) arrive The distance traversed, where, i.e., (make) .
[0075] The second distance can be less than the distance spanned by all the multiple sensor pixels (e.g., if multiple sensor pixels share a common distance). If the number of sensor pixels is less than the first distance, then... times, making ).
[0076] As part of the second operation S720, method 700 includes combining a first data element from a first pixel frame dataset with a second data element from a second pixel frame dataset, wherein the first and second data elements are associated with different sensor pixels. This is part of the accumulation of repeated readouts over time. For example, if we assume that the first and second data elements are respectively associated with two pixel rows that will be combined (e.g., added as part of the accumulation process). and If the sensor pixels are associated with each other, then it cannot be... or In the case of... Conversely, if, for example... Then select "Pixel Row Index". and Make If loading is not used ( ),but It is always equal to or greater than two. If using loading (… ),but It can be equal to or greater than one.
[0077] As part of the third operation S730, method 700 includes generating at least a portion of an X-ray image (e.g., image 400) of object 120 based on a combination of the first and second data elements (e.g., based on the accumulation of repeated readouts generated over time), as already described in, for example... Figures 4A to 4D and Figure 5A As shown in Figure 5C.
[0078] In some examples, method 700 may include an optional operation S712, which includes performing spatial cramming on (multi-row) sensor pixels 220 before performing the accumulation of data element / pixel row data (i.e., the combination of the first and second data elements). Spatial cramming is then performed at least in the scanning direction of sensor 210, but may optionally include also performing spatial cramming in a direction transverse to the scanning direction of sensor 210, i.e., cramming one or more sensor pixels in the same row of sensor pixels 220. Here, “cramming sensor pixels” means that their outputs are combined to form an equivalent larger pixel transverse to the scanning direction, as described earlier herein (by, for example, addition, weighted addition, median, or any other mathematical function or algorithm used for pixel cramming). Similarly, “cramming multiple rows of sensor pixels” means that the outputs of corresponding sensor pixels in all crammed rows are combined to form an equivalent of a larger row of sensor pixels in the scanning direction. Cramming is performed in pairs or n-tuples, for example, such that… Multiple (rows) of sensor pixels are packed together, such that, for example, rows arrive Loaded to form the first pixel row ;OK arrive Loaded to form the second pixel row , etc., making the line arrive ) are loaded into the bin to form pixel rows ,in Within the scope of this disclosure, such loading may be referred to as "preloading" (e.g., performed before post-processing modules 500 and 501).
[0079] In some examples, method 700 may include an optional operation S722, which includes processing two or more elements / rows of accumulated data (e.g., two or more elements / rows of image 400). The loading process involves combining data from corresponding elements of image 400 to form new elements (or, for example, combining elements from a row of image 400 to form a new row of image 400). This loading can be performed in the scan direction (i.e., if multiple rows are defined, data elements from different rows are added), transversely to the scan direction (i.e., if multiple rows are defined, data elements from the same row are added), or both. This loading can be referred to as "post-loading" (e.g., performed after post-processing modules 500 and 501, for example).
[0080] In some examples, method 700 may include an optional operation S732 that includes a larger portion of generating the X-ray image by combining the accumulation of repeated readouts from multiple sensors 210 over time. In other words, operations S710, S720, and S730 may be performed in parallel for sensor pixel data read from each sensor. For example, return to reference Figure 2 The accumulation as described herein can be performed on multiple (e.g., all) sensors 210, and these results (e.g., image 400) can be combined to form a larger X-ray image, wherein each portion of the larger X-ray image corresponds to a readout from one of the sensors 210.
[0081] Now will also refer to Figure 8 The various proposed implementations of the device 300 are described in more detail.
[0082] Figure 8 Various examples of device 300 are schematically shown in relation to multiple functional modules 810a-b, 811a-b, 812a-b, 813a-b, 814a-b, 815a-b, 820, 830, 840, and 500a-b. Device 300 is envisioned to include at least those referenced for example... Figure 4A , Figure 5B and Figures 6A to 6C The post-processing module 500 (or 501) described corresponds to the functional module 500a, and some or all of the other modules may be optional.
[0083] Module 500a (i.e., post-processing module 500 (or 501)) is configured to perform at least the operation S720 of method 700 related to the accumulation of data element / pixel row data (i.e., at least a combination of the first and second data elements) generated from pixel frame datasets associated with different readout time instances, following, for example Figure 5A and Figure 5B The data stream and various functional entities are shown. Module 500 can also be referred to as, for example, a "post-processor", "time delay summer", "TDS module", "TDS processor", etc.
[0084] In some examples, device 300 may optionally also include an I / O module 810a, which is responsible for obtaining data readout from sensor 210 and is configured, for example, to perform operation S610 of method 600. I / O module 810a may also be responsible for receiving, for example, one or more configuration parameters related to the readout and / or control of sensor 210, as well as other user-configurable parameters of the device, such as readout mode, whether the scan is performed in a forward or reverse scan direction, etc. , and / or The values, etc. Module 810a can also be referred to as, for example, "data input / output transceiver", "IO transceiver", etc.
[0085] In some examples, device 300 may optionally also include a sorting module 811a, which is responsible for sorting, for example, the received data into a form suitable for processing by post-processing module 500a. For example, if the readout data from sensor 210, which has multiple rows of sensor pixels, is not obtained row by row, sorting module 811a may be configured to convert the readout data into such a row-by-row format and, for example, sort the data such that the rows are presented to post-processing module 500a in a format such as "from top to bottom of sensor" or "from bottom to top of sensor," as described above. Sorting module 811a may also be referred to, for example, as a "sorter," "data transformer," etc.
[0086] Typically, the order in which data read from sensors arrive at the device may be more or less arbitrary. For example, all data elements may be processed in any temporal order, or may be partitioned, for example, among multiple processing units / circuit systems. Any sorting transformation that changes only the data order without altering the data itself may be used, provided that the corresponding transformation is also applied to the various operations disclosed herein. For example, there may be one or more technical reasons to use non-temporally, non-spatially ordered data for more efficient use of, for example, FPGA cells, blocks, or other components. For example, each data element may include a tag indicating which particular sensor pixel (or which particular sensor pixels) the data element is associated with, and such a tag can then be used to order data elements in any desired state. For clarity, the specific examples provided herein all include data shown as spatially ordered, such as sorted row by row or element by element from top to bottom of the sensor, but it is conceivable that this may not always be the case. Provided the end result is the same—that is, data elements from different pixel frame datasets that have detected photons originating from the same object point are ultimately combined at least partially—this disclosure also relates to any particular ordering / sorting (or lack thereof) of the input data read from the sensor.
[0087] In some examples, device 300 may optionally also include a blocking module 812a responsible for, for example, blocking one or more pixel rows from being further processed. For example, blocking module 812a may be configured to remove, for example, one or more of the top pixel rows, or, for example, one or more pixel rows associated with the top rows of sensor pixels 220 of sensor 210, and / or perform similar operations for one or more bottom pixel rows or rows of sensor pixels 220, and / or, for example, remove (from each pixel row) elements associated with, for example, one or more sensor pixels on each side (e.g., the left or right side) of sensor 210, etc. This can be advantageous because such rows or pixel elements may provide less useful data due to their location on the periphery of sensor 210, etc. Blocking module 812a may also be referred to as, for example, a “blocker” or a “masker”, etc.
[0088] In some examples, device 300 may optionally also include a pre-loading module 813a, which is responsible for, for example, performing optional operation S712 of method 700, as described above herein. Pre-loading module 813a may also be referred to as, for example, a "pre-loader".
[0089] In some examples, device 300 may optionally also include a first post-loading module 814a, which is responsible for, for example, performing optional operation S722 of method 700, as described above herein. The first post-loading module 814a may also be referred to, for example, as a "first post-loader," etc.
[0090] In some examples, device 300 may optionally also include an image buffer module 815a, which is responsible for, for example, performing operation S730 of method 700, such as collecting elements / rows output from module 500a (and / or any subsequent modules) to construct at least a portion of an X-ray image (e.g., image 400) of object 120. Image buffer module 815a may also be referred to as, for example, "image buffer," etc.
[0091] In some examples, device 300 may optionally also include a readout control module 840, which is responsible for, for example, controlling the readout frequency of sensor 210 if the readout frequency is not handled by any other module of device 300. Readout control module 840 may also be referred to as, for example, a "readout controller".
[0092] like Figure 8As shown, in some examples of device 300, one or more additional branches may also exist, similar to the branches containing modules 810a, 811a, 812a, 813a, 500a, 814a, and 815a. For example, if detector 200 includes multiple sensors 210, each sensor 210 may have one such branch (e.g., a branch containing module 500b and optionally one or more of modules 810n, 811b, 812b, 813b, 814b, and 815b (each module is similar to the corresponding module whose index is the letter "a" instead of "b", as described herein)). In this case, device 300 may include a multiplexing module 820 responsible for selecting accumulated data (e.g., image 400) from one of the modules as the output of the device as an X-ray image of object 120, or, for example, combining such accumulated data (e.g., image 400) from multiple (e.g., all) sensors 210 and module branches. The 820 multiplexing module can also be called a "multiplexer", "image combiner", "accumulating data combiner", etc.
[0093] In some examples, the device 300 may also optionally include one or more additional modules 830, including, for example, a second post-loading module / loader responsible for performing the post-loading of accumulated data, if this has not already been done by, for example, one or more first post-loading modules 814a, b, ... as described above herein.
[0094] Generally speaking, the above reference Figure 8 Each functional module described can be implemented in hardware or software. Preferably, one or more or all functional modules can be implemented by processing circuitry system 310, possibly cooperating with communication interface 330 and / or storage medium / memory 320. Thus, processing circuitry system 310 can be arranged to retrieve instructions from memory 320 as provided by the functional modules and execute those instructions to perform any operation of method 700 as disclosed herein, performed by / in device 300. Device 300 may also be referred to as an “X-ray image generating entity,” “X-ray image generator,” “X-ray imaging control unit,” etc.
[0095] Specifically, the processing circuitry 310 is configured to cause the device 300 to perform actions as described in the reference. Figure 7The described method 700 requires, in whole or in part, a set of operations or steps. For example, memory 320 may store a set of operations, and processing circuitry 310 may be configured to retrieve the set of operations from memory 320 to cause device 300 to execute the set of operations. The set of operations may be provided as a set of executable instructions. Thus, processing circuitry 310 is thereby arranged to perform the methods associated with generating one or more X-ray images of a (moving) object as disclosed herein, for example, with reference to any of the figures in the accompanying drawings.
[0096] It should be noted that the device 300 envisioned in this paper is suitable for parallel processing of sensor data read from multiple sensors 210 of detector 200. This is because the initial spatial ambiguity (caused by the reduced readout frequency) occurs very early in the processing chain, allowing for the use of low-complexity and low-power operations, as well as components closer to the temperature-sensitive sensor portion. For example, by reducing the readout frequency compared to contemporary TDS solutions, less total data is read from the sensors, resulting in fewer readout intervals, which reduces computational load and, for example, heat generation of components closer to sensor 210. Furthermore, the proposed architecture is also suitable for highly distributed data processing, as data readouts from each sensor 210 can be processed individually for the main part of the entire processing chain. The reduced number of readout intervals reduces the total number of accumulation operations (e.g., reduction factor). ), because, for example, if The number of input samples is halved. If additional space is needed for loading (e.g., post-loading), this can be implemented later in the processing chain, where more complex processors or, for example, FPGAs, can be used for more complex image processing.
[0097] As also shown herein, the envisioned use of a pre-loaded bay can have the advantage of reducing the number of row delay elements 520 while still obtaining similar multi-step TDS data. Since implementing row delay elements in, for example, an FPGA typically consumes valuable resources, the resources available for other tasks can be increased, or the overall requirements of the FPGA can be relaxed, resulting in, for example, greater cost efficiency. For loading, a single row delay element 520-1 can be used instead of two, because... Allow Reduced from two to one.
[0098] Figure 9 Finally, a more general working principle of the solution envisioned in this paper is illustrated schematically, along with an exemplary device 300. Here, it is not assumed that sensor 210 necessarily includes multiple rows of sensor pixels 220, but rather that the sensor has at least a plurality of pixels in the sensor's scanning direction. Sensor pixels 220 are spatially offset from each other. The offset is determined by a first distance. Indication. Further assumption is made that the offset of one or more other sensor pixels 220 (if present) may differ from... Figure 9 The sensor pixel 220 is shown. An empty circle 122a indicates the projection of object point 122 onto sensor 210 in the first readout time instance, and a solid circle 122b indicates the projection of object point 122 onto the sensor in the second readout time instance (which may, for example, be consecutive to the first readout time instance). The second readout time instance may, for example, correspond to… The first readout time instance corresponds to, for example... In time instances and Between these points, the projected movement (or at least the temporal movement) of object point 122 is greater than the first distance. The second distance .
[0099] exist Figure 9 In this context, SP1, SP2, ..., SPN represent sensor pixels. During readout operation 230, sensor readout data 240 is formed, including units 242 for each sensor pixel 220. Each unit 242 may, for example, be included during the last readout interval (i.e., in...). and The total photon count detected by the corresponding sensor pixel 220 between [times], etc., especially if the detector / sensor is a photon counting detector / sensor. In subsequent operation 232, the sensor readout data 240 is transformed (if necessary) into a pixel frame dataset 350-t, that is, this dataset 350-t corresponds to [times]. Sensor readout. The pixel frame dataset 350-t includes data representing multiple data elements 352, each of which is associated with one or more neighboring sensor pixels among the multiple sensor pixels 220. The number of sensor pixels associated with each data element 352 may, for example, depend on whether a hopper is used, and is equal to, for example... In this example, the number of data elements 352 is counted as... ,in, This is the total number of sensor pixels 220 (i.e., SP1 to SPN), and for those not using a hopper... For using loading silos In operation 234, the pixel frame dataset 350-t is provided to / obtained by the device 300. As indicated by the dashed box, the device 300 may perform the loading itself, for example, in which case obtaining the final pixel frame dataset 350-t is performed as part of an internal process of the device 300 itself.
[0100] In order to combine the pixel frame dataset 350-t (and, for example, 350-(t-1) etc.) obtained by device 300 as part of the accumulation of (repeated) sensor readouts over time, device 300 is further configured to perform operation 236, in which data elements 352 (or, for example, pixel rows) from different pixel frame datasets are combined as described herein. For example, a first data element Li(t-1) found in the (first) pixel frame dataset 350-(t-1) can be combined with another second data element L(i±D)t found in the (second) pixel frame dataset 350-t, wherein, As explained earlier in this document, the selection depends on, for example, whether a hopper is used. It can be seen that operation 236 includes: combining data elements 352 from different pixel frame datasets, these data elements being associated with one or more different (adjacent) sensor pixels 220 among a plurality of sensor pixels SP1-SPN. For example, if data element Li(t-1) is associated with sensor pixel SPi, then data element L(i±D)t is associated with sensor pixel SP(i±D), i.e., spatially offset. First distance The distance (i.e., if) and Then it equals the second distance. The sensor pixels are associated with each other, and so on. While accumulating this repeated readout over time, device 300 builds at least a portion of (X-ray) image 400 based on the accumulation performed so far. When each new pixel frame dataset arrives, device 300 may add one or more new elements / rows to image 400.
[0101] In summary, this disclosure provides an improved method for generating X-ray images of (moving) objects because it proposes reducing the detector readout frequency and compensating for the motion blur introduced therefrom, at least to some extent, by increasing the distance between pixel rows (whose data is later accumulated to create a still image of the moving object) in the scanning direction of the sensor. Therefore, the proposed solution improves detector efficiency, which may be particularly valuable for high-speed imaging and, for example, for multi-energy detectors, where the time spent reading data from the sensor is otherwise increased at the expense of the time available for actual photon / incident radiation detection. The proposed solution can also be used to reduce the data bandwidth in the detector from an earlier stage of the processing chain, unlike conventional solutions where spatial loading can only reduce bandwidth after the data has been transferred from the sensor to, for example, a post-processing module / unit. Furthermore, the proposed solution provides the ability to reduce spatial resolution on demand (by reducing the readout frequency) while still being able to use the full potential / resolution of the sensor in other cases. For example, if the object is always expected to move quickly, the sensor can be replaced with a lower-resolution sensor, but this eliminates the possibility of obtaining higher-resolution images for slower-moving objects. Therefore, the solution proposed in this disclosure and in this paper is more flexible because it can still provide higher resolution images of such objects by increasing the readout frequency again for slower-moving objects.
[0102] Although features and elements may have been described in specific combinations above, each feature or element may be used alone without other features and elements, or in various combinations with or without other features and elements. Furthermore, by studying the accompanying drawings, this disclosure, and the appended claims themselves, those skilled in the art can understand and implement variations of the disclosed embodiments when practicing the claimed invention as defined by the appended claims. In the claims, the words “comprising” and “including” do not exclude other elements, and the indefinite articles “a” or “an” do not exclude a plural. The simple fact that certain features are stated in mutually different dependent claims does not indicate that combinations of these features cannot be advantageously utilized.
[0103] The following is a list of exemplary embodiments based on the disclosure herein: Example 1: An apparatus (300) for generating an X-ray image (400), wherein the apparatus includes a processing circuitry (310) configured to: - obtain from a sensor (210) comprising a plurality of sensor pixels (220) spatially offset by a first distance (dy) in a scanning direction (y) a first pixel frame dataset (350-(t-1)) corresponding to a first readout time instance (t-1) and a second pixel frame dataset (350-t) corresponding to a second readout time instance (t), wherein between the first readout time instance and the second readout time instance is such that between the first readout time instance and the second readout time instance, the projection of points (122, 124, 126) of the imaged object (120) onto the sensor has time to move a second distance (h) greater than the first distance in the scanning direction of the sensor; - The first data element (Li(t-1)) in the first pixel frame dataset is combined with the second data element (L(i±D)t) in the second pixel frame dataset, wherein the first data element and the second data element are associated with different sensor pixels, and at least a portion of the X-ray image (400) of the object is generated based on the combination of the first data element and the second data element.
[0104] Example 2: The device according to Example 1, wherein the first data element and the second data element are each associated with one or more adjacent sensor pixels, wherein the one or more adjacent sensor pixels of the first data element are each spatially offset from the one or more adjacent sensor pixels of the second data element by the second distance in the scanning direction of the sensor.
[0105] Example 3: The device according to Example 1 or 2, wherein each data element is formed by spatial hoppers of readouts of a first integer (B) of the plurality of sensor pixels, wherein the first integer is equal to or greater than two (B ≥ 2).
[0106] Example 4: The device according to any one of Examples 1 to 3, wherein the second distance is equal to a second integer (K) times the first distance, wherein the second integer is equal to or greater than two (K ≥ 2).
[0107] Example 5: The device according to Examples 3 and 4, wherein the first integer is equal to the second integer (B = K).
[0108] Example 6: The device according to Example 4 or 5, wherein the processing circuitry is further configured to perform the spatial loading as part of obtaining the first pixel frame dataset and the second pixel frame dataset.
[0109] Example 7: The device according to any one of Examples 1 to 3, wherein each of the first data element and the second data element is formed by reading out a single (B = 1) sensor pixel among the plurality of sensor pixels.
[0110] Example 8: The device according to any one of the preceding examples, wherein the processing circuitry is further configured to: - obtain an indication of an estimated moving speed (|v|) of the projection of the point of the imaged object onto the sensor, and adjust the time difference between the first readout time instance and the second readout time instance based on the estimated moving speed by controlling repeated readouts of the sensor.
[0111] Example 9: The device according to any one of the preceding examples, wherein the processing circuitry is further configured to control the movement speed (|v|) of the projection of the point of the imaged object onto the sensor based on a predefined time difference between the first readout time instance and the second readout time instance.
[0112] Example 10: The device according to any one of the preceding examples, wherein the processing circuitry is further configured to: - implement or at least access at least one line delay element (520), the at least one line delay element being configured to output a data element previously stored in the line delay element in response to receiving a new data element to be stored in the line delay element; - implement or at least access a first data structure (510) configured to store one or more data elements, and process the data elements of the first pixel frame dataset and the second pixel frame dataset one by one, including, for each data element, adding a new data element to the beginning of the first data structure by combining a data element not yet stored in the first data structure with a combination of one or more data elements previously added to the first data structure, wherein one or the other of the data element not yet stored in the first data structure and the combination of one or more data elements previously added to the first data structure passes first through the at least one line delay element.
[0113] Example 11: The device described in Example 10 when subordinate to Example 4, wherein the at least one line delay element comprises a daisy-chained line delay element (520-1, 520-2, ..., 520-D') in number equal to at least the second integer (D' = K).
[0114] Example 12: An X-ray detector (200) includes one or more multi-row X-ray sensors (210) and an apparatus (300) according to any one of Examples 1 to 11 for generating an X-ray image (400) of an object based on repeated readouts from said one or more sensors.
[0115] Example 13: The detector according to Example 12 includes at least two sensors, wherein the device is configured to process data read from each sensor in parallel to create the X-ray image.
[0116] Example 14: The detector according to Example 12 or 13, wherein the detector is a photon counting detector.
[0117] Example 15: An X-ray imaging system (100) for generating X-ray images, the X-ray imaging system comprising a multi-row X-ray detector (200) or one or more multi-row X-ray sensors (210) according to any one of Examples 1 to 11 and a device (300) according to any one of Examples 1 to 11.
[0118] Example 16: The system according to Example 15 further includes at least one X-ray source (110) configured to radiate X-rays toward the one or more multi-row X-ray sensors.
[0119] Example 17: The system according to Example 15 or 16 further includes a motion device (130) for moving an object (120) to be imaged relative to the detector, wherein the device is further configured to control the relative speed of movement between the object and one or more sensors (201) of the detector.
[0120] Example 18: A method (700) for generating an X-ray image, the method comprising: - obtaining (S710) a first pixel frame dataset corresponding to a first readout time instance and a second pixel frame dataset corresponding to a second readout time instance from a sensor comprising a plurality of sensor pixels spatially offset by a first distance (dy) in a scanning direction (y), wherein, between the first readout time instance and the second readout time instance, the projection of a point of an imaged object onto the sensor has a time to move a second distance greater than the first distance in the scanning direction of the sensor; - combining a first data element from the first pixel frame dataset with a second data element from the second pixel frame dataset, wherein the first data element and the second data element are associated with different sensor pixels, and generating (S730) at least a portion of an X-ray image of the object based on the combination of the first data element and the second data element.
Claims
1. An apparatus (300) for generating X-ray images (400), wherein, The device includes a processing circuit system (310), which is configured to: - A first pixel frame dataset (350-(t-1)) corresponding to a first readout time instance (t-1) and a second pixel frame dataset (350-t) corresponding to a second readout time instance (t) are obtained from a sensor (210) comprising a plurality of sensor pixels (220) spatially offset by a first distance (dy) in the scanning direction (y). The second readout time instance is between the first readout time instance and the second readout time instance, the projection of points (122, 124, 126) of the imaged object (120) onto the sensor has time to move a second distance (h) greater than the first distance in the scanning direction of the sensor. - Combine the first data element (Li(t-1)) from the first pixel frame dataset with the second data element (L(i±D)t) from the second pixel frame dataset, wherein the first data element and the second data element are associated with different sensor pixels, and - Generate at least a portion of the X-ray image (400) of the object based on the combination of the first data element and the second data element.
2. The device according to claim 1, wherein, The first data element and the second data element are each associated with one or more adjacent sensor pixels, wherein the one or more adjacent sensor pixels of the first data element are each spatially offset from the one or more adjacent sensor pixels of the second data element by the second distance in the scanning direction of the sensor.
3. The device according to claim 1 or 2, wherein, Each data element is formed by spatially loading readouts from a first integer (B) of the plurality of sensor pixels, wherein the first integer is equal to or greater than two (B ≥ 2).
4. The device according to any one of claims 1 to 3, wherein, The second distance is equal to a second integer (K) times the first distance, wherein the second integer is equal to or greater than two (K ≥ 2).
5. The device according to claims 3 and 4, wherein, The first integer is equal to the second integer (B = K).
6. The device according to claim 4 or 5, wherein, The processing circuitry is further configured to perform the spatial loading as part of obtaining the first pixel frame dataset and the second pixel frame dataset.
7. The device according to any one of claims 1 to 3, wherein, Each of the first data element and the second data element is formed by reading out a single (B = 1) sensor pixel from the plurality of sensor pixels.
8. The device according to any one of the preceding claims, wherein, The processing circuit system is further configured as follows: - Obtain an indication of the estimated moving velocity (|v|) of the projection of the point of the imaged object onto the sensor, and - By controlling the repeated readouts of the sensor, the time difference between the first readout time instance and the second readout time instance is adjusted based on the estimated moving speed.
9. The device according to any one of the preceding claims, wherein, The processing circuitry is further configured to control the movement speed (|v|) of the projection of the point of the imaged object onto the sensor based on a predefined time difference between the first readout time instance and the second readout time instance.
10. The device according to any one of the preceding claims, wherein, The processing circuit system is further configured as follows: - Implement or at least access at least one row delay element (520), the at least one row delay element being configured to output a data element previously stored in the row delay element in response to receiving a new data element to be stored in the row delay element; - Implement or at least access a first data structure (510) configured to store one or more data elements, and - Process the data elements of the first pixel frame dataset and the second pixel frame dataset one by one, including adding a new data element to the beginning of the first data structure for each data element by combining a data element that is not yet stored in the first data structure with a combination of one or more data elements previously added to the first data structure, wherein one or the other of the data element that is not yet stored in the first data structure and the combination of one or more data elements previously added to the first data structure is first passed through the at least one row delay element.
11. The device according to claim 10 when dependent on claim 4, wherein, The at least one line delay element includes a daisy-chained line delay element (520-1, 520-2, ..., 520-D') in number equal to at least the second integer (D' = K).
12. An X-ray detector (200) comprising one or more multi-row X-ray sensors (210) and an apparatus (300) for generating an X-ray image (400) of an object based on repeated readouts from the one or more sensors according to any one of claims 1 to 11.
13. The detector of claim 12, comprising at least two sensors, wherein, The device is configured to process data read from each sensor in parallel to create the X-ray image.
14. The detector according to claim 12 or 13, wherein, The detector is a photon counting detector.
15. An X-ray imaging system (100) for generating X-ray images, the X-ray imaging system comprising a multi-row X-ray detector (200) or one or more multi-row X-ray sensors (210) according to any one of claims 1 to 11 and an apparatus (300) according to any one of claims 1 to 11.
16. The system of claim 15, further comprising at least one X-ray source (110) configured to radiate X-rays toward the one or more multi-row X-ray sensors.
17. The system according to claim 15 or 16, further comprising a motion device (130) for moving the object (120) to be imaged relative to the detector, wherein, The device is further configured to control the relative movement speed between the object and one or more sensors (201) of the detector.
18. A method (700) for generating an X-ray image, the method comprising: - Obtain (S710) a first pixel frame dataset corresponding to a first readout time instance and a second pixel frame dataset corresponding to a second readout time instance from a sensor comprising a plurality of sensor pixels spatially offset by a first distance (dy) in the scanning direction (y), wherein, between the first readout time instance and the second readout time instance, the projection of a point of the imaged object onto the sensor has time to move a second distance greater than the first distance in the scanning direction of the sensor. - Combine the first data element from the first pixel frame dataset with the second data element from the second pixel frame dataset, wherein the first data element and the second data element are associated with different sensor pixels, and - Generate (S730) at least a portion of the X-ray image of the object based on the combination of the first data element and the second data element.