Method for transmitting asynchronous event data via a synchronous communication interface using an expected event rate, and associated imaging system
By using a synchronous communication transmitter in an image sensor to predict the amount of future event data and adjusting the receiver circuitry, the latency and data loss problems of synchronous communication interfaces in asynchronous event data transmission are solved, achieving more reliable data transmission.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- OMNIVISION TECHNOLOGIES INC
- Filing Date
- 2024-02-29
- Publication Date
- 2026-04-10
AI Technical Summary
When existing image sensors read asynchronous event data, the synchronous communication interface cannot effectively manage the asynchronous event data, resulting in excessive frame transmission delay, which may lead to timer overflow and data loss.
A synchronous communication transmitter is used to predict the amount of data for future events and send an indication of the expected amount of data to the receiver before transmission. The receiver circuitry is adjusted to accommodate the received frame size, and a predictor block and activity monitoring circuitry are used to estimate the future event rate.
This reduces the possibility of frame transmission interruption, decreases data loss, and improves the reliability and efficiency of data transmission.
Smart Images

Figure CN118590779B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] This disclosure relates generally to image sensors. For example, several embodiments of the present technology relate to methods for transmitting asynchronous event data generated by an event vision sensor via a synchronous communication interface and using an expected event rate. BACKGROUND
[0002] Image sensors have become ubiquitous and are now widely used in digital cameras, cellular phones, surveillance cameras, and in medical, automotive, and other applications. As image sensors are integrated into a wider range of electronic devices, it is desirable to enhance their functionality, performance metrics, and the like in as many ways as possible (e.g., resolution, power consumption, dynamic range, etc.) through both device architecture design as well as image acquisition processing.
[0003] A typical image sensor operates in response to image light from an external scene incident on the image sensor. The image sensor includes an array of pixels having light-sensitive elements (e.g., photodiodes) that absorb a portion of the incident image light and generate image charges upon absorption of the image light. The image charges photo-generated by the pixels can be measured as an analog output image signal on a column bitline, which varies with changes in the incident image light. In other words, the amount of image charge generated is proportional to the intensity of the image light, which is read out as an analog image signal from the column bitline and converted to a digital value to provide information representative of the external scene. SUMMARY
[0004] In one aspect, the disclosure provides an imager comprising: an array of event vision pixels, each pixel of the array configured to generate event data based at least in part on events indicated in incident light received from an external scene; and a synchronous communication transmitter configured to transmit frames of data to a synchronous communication receiver, wherein the imager is configured to: at a first time and to the receiver, communicate an amount of expected event data to be included in a frame transmitted from the transmitter to the receiver at a second time occurring after the first time, and at the second time, transmit the frame to the receiver, wherein the frame includes an amount of data corresponding to the amount of expected event data.
[0005] In another aspect, the disclosure provides a method of operating an imager comprising one or more event vision pixels, the method comprising: at a first time and to a synchronous communication receiver, communicating an amount of expected data to be included in a frame transmitted from the imager to the receiver at a second time occurring after the first time; and at the second time, transmitting the frame to the receiver, wherein the frame includes an amount of data corresponding to the amount of expected data.
[0006] In another aspect, the disclosure provides an imaging system comprising: a synchronous communication receiver; and an imager including a synchronous communication transmitter, the synchronous communication transmitter (a) operably connected to the synchronous communication receiver via a synchronous communication interface and (b) configured to transmit data frames to the synchronous communication receiver via the synchronous communication interface, the imager further including an array of event vision pixels, each pixel of the array configured to generate event data based at least in part on events indicated in incident light received from an external scene, wherein the imager is configured to: communicate, prior to transmitting a data frame from the transmitter to the receiver, an indication of an expected amount of data to be included in the frame when the frame is transmitted to the receiver at a future point in time; and after communicating the indication of the expected amount of data, transmit the frame to the receiver, wherein the frame includes an amount of data corresponding to the expected amount of data, and wherein to accommodate receiving the frame having the amount of data corresponding to the expected amount of data, the receiver is configured to adjust its local receiver circuitry prior to receiving the frame from the transmitter. BRIEF DESCRIPTION OF DRAWINGS
[0007] Non-limiting and non-exhaustive embodiments of the present technology are described below with reference to the following drawings, in which like reference numerals refer to like elements unless otherwise specified.
[0008] Figure 1 is a partial schematic block diagram of an imaging system configured in accordance with various embodiments of the present technology.
[0009] Figure 2 is a partial schematic block diagram of an event vision pixel illustrating how the event vision pixel can be configured in accordance with various embodiments of the present technology.
[0010] Figure 3 is a partial schematic block diagram of an event signal processor configured in accordance with various embodiments of the present technology.
[0011] Figure 4 is a line graph illustrating how historical data of an event rate can be used to generate a prediction of the event rate for one or more future points in time.
[0012] Figure 5 is a partial schematic block diagram of activity monitoring circuitry configured in accordance with various embodiments of the present technology.
[0013] Figure 6A is a flowchart of a method of operating an imager of an imaging system in accordance with various embodiments of the present technology.
[0014] Figure 6B is a flowchart of a method of operating a receiver of an imaging system in accordance with various embodiments of the present technology.
[0015] Figure 7 This is a timing diagram illustrating the transmission of a first frame of data, a second frame of data, and a third frame of data to a receiver according to various embodiments of the present technology.
[0016] Figure 8 This is a partial schematic block diagram of another imaging system configured according to various embodiments of the present technology.
[0017] Figure 9 This is a flowchart illustrating a method of operating an imaging system according to various embodiments of the present technology.
[0018] Figure 10 This is a partial schematic block diagram of yet another imaging system configured according to various embodiments of the present technology.
[0019] Those skilled in the art will understand that the components in the figures are illustrated for simplicity and clarity and are not necessarily drawn to scale. For example, the dimensions of some components in the figures may be exaggerated relative to other components to aid in the understanding of various aspects of the art. Furthermore, common but easily understood components or methods that are useful or necessary in commercially feasible embodiments are generally not depicted in the figures or described in detail below to avoid unnecessarily obscuring the description of various aspects of the art. Detailed Implementation
[0020] This disclosure relates to imaging systems incorporating event vision sensors. For example, several embodiments of the technology relate to methods for transmitting asynchronous event data generated by the event vision sensor via a synchronous communication interface and using a predetermined event rate. Specific details are set forth in the following description to provide a thorough understanding of aspects of the technology. However, those skilled in the art will recognize that the systems, apparatuses, and techniques described herein can be practiced without one or more of the specific details set forth herein or by using other methods, components, materials, etc.
[0021] Throughout this specification, references to "example" or "embodiment" mean that a particular feature, structure, or characteristic described in connection with an example or embodiment is included in at least one example or embodiment of the present technology. Therefore, the use of the phrases "for example," "as an example," or "embodiment" herein does not necessarily refer to the same example or embodiment, nor is it limited to the specific example or embodiment discussed. Furthermore, the features, structures, or characteristics of the present technology described herein can be combined in any suitable manner to provide other examples or embodiments of the present technology.
[0022] For ease of description, spatially relative terms (for example, "beneath", "below", "lower", "under", "above", "upper", "top", "bottom", "left", "right", "center", "intermediate", and the like) can be used herein for the purpose of illustrating one element or feature's relationship to another element(s) or feature(s) as diagramed in the figures. It will be understood that the spatially relative terms are intended to encompass different orientations of the device or system in use or operation in addition to the orientations depicted in the figures. For example, if a device or system is turned over in the figure, elements described as "below" or "beneath" other elements or features would then be oriented "above" the other elements or features. Thus, the exemplary term "below" or "under" can encompass both an orientation of above and below. The device or system can be otherwise oriented (for example, rotated 90 degrees, or at other orientations) in addition or alternative to the orientations described herein, as will be apparent to those of ordinary skill in the art. Also, it will be understood that, when a element is referred to as being "between" two other elements, it can be the only element between the two other elements or one or more intervening elements can also be present.
[0023] Throughout this specification, several terms of art are used. These terms are to take on their ordinary meaning in the art unless specifically defined otherwise herein or the context of their use would clearly dictate otherwise. It is noted that element names and notations can be used interchangeably throughout this document (e.g., Si and silicon); however, both have the same meaning.
[0024] A. SUMMARY
[0025] Active pixel sensors (e.g., CMOS imaging systems) typically employ active pixel arrays with a globally defined integration time. As a result, active pixels in active pixel sensors typically have the same integration time, and each pixel in the array is typically converted to a digital signal regardless of its content (e.g., whether there has been a change in the external scene captured by the pixel since the last readout of the pixel). In other words, image data produced by active pixels, for example, in a CMOS imager, is read out in a frame of known size regardless of whether there has been an event in the external scene. In other words, image data produced by active pixels is read out synchronously from active pixels. As a result, a synchronous communication interface (e.g., Mobile Industry Processor Interface (MIPI) managed by Camera Serial Interface (CSI) communication protocol) is typically used to read out or transmit synchronous image data from imagers incorporating active pixel sensors.
[0026] In contrast, when a pixel captures a change (e.g., an event) in an external scene, an event vision sensor (e.g., an event-driven sensor or a dynamic vision sensor) reads out the pixel and / or converts the corresponding pixel signal to a digital signal. In other words, pixels of an event vision sensor that do not detect a change in an external scene are not read out and / or the pixel signals corresponding to such pixels are not converted to digital signals. Thus, each pixel of an event vision sensor can be independent of other pixels of the event vision sensor, and only pixels that detect a change in an external scene need to be read out and / or their corresponding pixel signals converted to digital signals or recorded (thereby saving power). In other words, event data generated by an event vision pixel can be read out asynchronously from the pixel and / or recorded whenever an event is detected in an external scene.
[0027] Due to the asynchronicity of event data generated by imagers that employ event vision pixels, synchronous communication interfaces and protocols are generally not used to read out or transmit the asynchronous event data from such imagers. Instead, such imagers generally employ custom asynchronous communication interfaces and protocols (e.g., address-event-representation (AER) interfaces / protocols) in combination with custom receivers (e.g., field programmable gate arrays (FPGAs)) to read out or transmit the asynchronous event data. There are several reasons why event vision sensors generally do not employ synchronous communication interfaces and protocols. Using MIPI as an example, MIPI receivers (e.g., application processors) generally (a) expect to receive frames of event data of a known size from MIPI transmitters and (b) impose a timer limit on receiving a complete frame of event data from a MIPI transmitter. But the MIPI / CSI communication protocol that governs the interface generally does not require a MIPI transmitter to transmit frames to a MIPI receiver at a fixed frame period. Thus, if (i) a MIPI transmitter is employed to transmit asynchronous event data from an imager that incorporates an event vision sensor and (ii) the occurrence of events (e.g., event rate) within an external scene detected by the imager is low, it can take a long period of time for the imager to generate enough event data to fill a frame of a known size that the MIPI receiver expects to receive. The excess latency in receiving a complete frame of event data at the MIPI receiver caused by a low event rate within an external scene can cause a timer overflow problem within the MIPI receiver, which in turn can cause the MIPI to abort frame transmission, resulting in the loss of any asynchronous event data contained in the aborted frame.
[0028] To address these issues, imagers incorporating event vision pixels and configured according to various embodiments of the present technology each (a) employ a synchronous communication transmitter (e.g., a MIPI transmitter) configured to transmit frames of data from the imager to a synchronous communication receiver (e.g., a MIPI receiver), and (b) are configured to transmit to the receiver an indication of an expected amount of data to be included in a frame sent from the transmitter to the receiver at a future point in time. The imager transmits the indication of the expected amount of data to the corresponding receiver prior to transmitting the corresponding frame, so that the receiver can adjust its local receiver circuitry and controller to accommodate receiving frames of the indicated size. Thereafter, the imager transmits to the receiver a frame that includes an amount of data corresponding to the expected amount of data previously transmitted to the receiver.
[0029] In some embodiments, the expected amount of data represents an estimate or prediction of the amount of data to be included in a frame sent to the transmitter at a future point in time. In these embodiments, the imager can include a predictor block configured to generate the estimate. The estimate can be based at least in part on historical amounts of data included in one or more frames previously sent to the receiver. In these and other embodiments, the estimate can be based at least in part on a one-dimensional (ID) or two-dimensional (2D) distribution of detected events across the event vision pixels of the imager at a given time or over a period of time (e.g., over multiple frames). In these and still other embodiments, the estimate can be based at least in part on an indication of global activity of the event vision pixels at a given time. For example, the imager can include activity monitoring circuitry coupled to the event vision pixels and configured to generate activity monitoring signals each representing a total number of event vision pixels that have detected events at a given time or over a given period of time.
[0030] In other embodiments, the expected amount of data represents an actual amount of event data to be included in a frame sent to the transmitter at a future point in time. For example, the imager can include a plurality of frames of memory (e.g., buffers) each configured to store a worth of event data. Continuing this example, the imager can determine the precise amounts of event data to be included in corresponding frames sent to the transmitter at a future point in time, and the imager can transmit these precise amounts to the receiver prior to transmitting the frames.
[0031] To transmit the expected amount of data to the receiver, the imager can insert an indication of the expected amount of data for a future frame into a header portion of a frame currently sent to the transmitter. For example, the imager can insert an indication of an expected amount of data to be included in a second frame to be transmitted to the receiver in the future in a header portion of a first frame at a first time. Then, the imager can send the indication to the receiver in the first frame. Thereafter, the imager can transmit the second frame to the receiver with an amount of data corresponding to the expected amount of data transmitted to the receiver in the first frame. As another example, the imager can write an indication of an expected amount of data to be included in a future frame to a local register. The receiver can then read the local register prior to receiving the future frame and adjust its local receiver circuitry and controller accordingly.
[0032] In the event that the event rate for a frame is lower than expected (meaning less event data than initially expected is available for transmission to the receiver in the frame), the imager can (a) insert the available event data into the payload of the frame and (b) pad the payload with dummy data until the total amount of data (event data plus dummy data) in the payload is equivalent to the expected amount of data transmitted to the receiver for the frame. In the event that the event rate for a frame is higher than expected (meaning more event data than initially expected is available for transmission to the receiver in the frame), the imager can limit the amount of event data loaded into the payload of the frame such that the total amount of event data in the payload is equivalent to or does not exceed the expected amount of data previously transmitted to the receiver. Excess event data not included in the payload can be discarded or stored in memory for transmission to the receiver in a different frame. In these and other embodiments, the imager can foresee the need for frames of a different size than initially expected and can send the revised or updated expected amount of data for the frame to the receiver prior to transmitting the frame. This can allow the receiver to adjust its local receiver circuitry and / or controller to accommodate receiving frames of different sizes.
[0033] In this way, the present technology facilitates informing a synchronous communication receiver of an expected size of a frame prior to transmission of the frame from a synchronous communication transmitter of an imager to the receiver. The present technology then enables the receiver to update its local receiver circuitry and controller prior to receiving the frame, thereby minimizing the likelihood of timing specification issues and thus the likelihood of the synchronous communication interface halting transmission of the frame. In other words, the present technology defines latency variability to facilitate sending event data to a synchronous communication receiver via a synchronous communication interface asynchronously while reducing the likelihood of event data loss or frame loss. Additionally, by facilitating scaling of frame sizes received by the receiver, the present technology reduces the amount of dummy data transmitted to the receiver as padding data that might otherwise be sent to the receiver in implementations that employ a fixed frame size.
[0034] B. Imaging system and associated method for transmitting asynchronous event data using expected event rates via a synchronous communication interface Selected embodiments of the method
[0035] Figure 1 This is a partial schematic block diagram of an imaging system 100 configured according to various embodiments of the present technology. As shown, the imaging system 100 includes an imager 110 and a synchronous communication receiver or application processor 120 (“receiver 120”). Although in Figure 1 The embodiment described herein is shown as MIPI receiver 120, but in other embodiments, receiver 120 may be another suitable synchronous communication receiver or application processor.
[0036] Imager 110 includes an event vision pixel array 102, a row control circuitry 104, a column control circuitry 106, an event signal processor 108, a synchronization communication transmitter 116 (“transmitter 116”), and a filter / predictor block or circuitry 114 (“predictor block 114”). Although in Figure 1 In the embodiments described herein, MIPI transmitter 116 is shown, but in other embodiments, transmitter 116 may be another suitable synchronous communication transmitter.
[0037] In some embodiments, the imager 110 may additionally include a memory 112. For example, the memory 112 is located in... Figure 1 The memory is shown as FIFO buffer 112. In other embodiments, memory 112 may be another suitable type of buffer or memory. Although shown as being located between event signal processor 108 and transmitter 116, in other embodiments, memory 112 may be omitted or may be located at other locations within imager 110. For example, in some embodiments, memory 112 may be located within (and thus part of) event signal processor 108 or transmitter 116, or memory 112 may be located after transmitter 116 (e.g., such that transmitter 116 is located between event signal processor 108 and memory 112).
[0038] The event vision pixel array 102 in the imager 110 includes multiple event vision pixel circuits arranged in rows and columns. Figure 1The event vision pixels are configured to capture changes (e.g., events) in an external scene, as discussed above. To this end, each event vision pixel can include: (i) a photosensor, such as a photodiode, configured to photo-generate a charge or photocurrent in response to incident light received from the external scene; (ii) a photocurrent / voltage converter coupled to the photosensor to convert the photocurrent generated by the photosensor to a voltage; and (iii) a filter amplifier coupled to the photocurrent / voltage converter to generate a filtered and amplified signal in response to the voltage received from the photocurrent / voltage converter. The event vision pixel can further include a threshold comparison circuit or stage to generate and receive handshake signals in response to events detected asynchronously in the incident light received from the external scene. Alternatively, the threshold comparison circuit can be included in circuitry external to the event vision pixels of the array 102 (e.g., included in the event signal processor 108), such as within column readout circuitry.
[0039] Figure 2 is a partial schematic block diagram illustrating an example of an event vision pixel 230 configured in accordance with various embodiments of the present technology. It will be appreciated that the illustrated event vision pixel circuit 230 can be one of the event vision pixel circuits included in the array 102 of Figure 1 is a block diagram example of the event vision pixel circuit included in the array 102 of the present technology. As shown, the event vision pixel 230 includes a photodiode 231 configured to photo-generate a charge or photocurrent in response to incident light 250 received from an external scene. The photodiode 231 is coupled to a logarithmic amplifier 232 configured to convert the photocurrent generated by the photodiode 231 to a voltage. In various examples, the logarithmic amplifier 232 is configured to generate a voltage by converting the instantaneous photocurrent received from the photodiode 231. A difference detection amplifier 233 is coupled to the logarithmic amplifier 232 to generate a filtered and amplified signal in response to a difference detected in the voltage received from the logarithmic amplifier 232. In one example, the difference detection amplifier 233 is configured to compare the instantaneous logarithmic intensity of the voltage output of the logarithmic amplifier 232 to a reference level based on a reset condition or last event. An event generation comparator 234 is coupled to the difference detection amplifier 233 to compare the filtered and amplified signal received from the difference detection amplifier 233 to a threshold to detect events asynchronously in response to the incident light 250 occurring in the external scene. In one example, the event generation comparator 234 is configured to discern whether the signal difference is significant enough to trigger an event.
[0040] The event vision pixel 230 optionally includes a latch 235 coupled to the event generation comparator 234 to store events detected by the event generation comparator 234 until they can be read by the handshake logic 236 to interface with peripheral circuitry. Figure 2The latch 235 described herein includes a first transistor 241, a second transistor 242, an inverter 243, and V. DD-SENSE Terminals. In this example, the first transistor 241 is a PMOS transistor and the second transistor 242 is an NMOS transistor. The first terminal of the first transistor 241 is coupled to the first terminal of the second transistor 241. The second terminal of the first transistor 241 is coupled to V. DD-SENSE The second terminal of the first transistor 242 is coupled to ground. The input of the inverter 243 is coupled to the first terminals of the first and second transistors 241 and 242. The output of the inverter 243 is coupled to the gate terminal of the second transistor 242. The gate terminal of the first transistor 243 is coupled to receive the bias voltage BIAS.
[0041] It should be understood that this is implemented using a current-deficient position hold. Figure 2 The example latch 235 is illustrated herein. In some embodiments, when the output of inverter 243 turns on the second transistor 242 (which causes the event current I... EVENT An event is detected when 255 flows through the first transistor 241 and the second transistor 242. Therefore, it can be detected via V. DD-SENSE Terminals and / or via event current I EVENT 255 sense latch 235. With the gate of the first transistor 241 connected to the bias voltage BIAS, the event current I... EVENT 255 may be a different current consumption (e.g., unit current) conducted through latch 235 in response to the detection of an event in event vision pixel circuit 230. In one example, event current I is conducted through latch 235 if and only if an event is detected in event vision pixel circuit 230. EVENT 255. In some embodiments, the event current I EVENT 255 may have a predetermined value. Additional details regarding an event vision pixel circuit with a latch having a current-depleted bit hold are provided in U.S. Patent No. 11,563,909, the entire contents of which are incorporated herein by reference.
[0042] In operation, when an event occurs in the external scene, the event is indicated by a rapid or sudden change in intensity or brightness in the incident light 250 received by photodiode 231. In other words, if the external scene is static and no event occurs, the brightness of the incident light 250 remains substantially constant. Therefore, the photocurrent generated by photodiode 231 remains substantially constant. However, if an event occurs in the external scene (e.g., movement, lighting change, albedo, emissivity, etc.), the event is indicated by an asynchronous rapid or sudden change in the brightness of the incident light 250. The change in brightness can be from darker to brighter or from brighter to darker. Therefore, there is an asynchronous change or difference in the photocurrent generated by photodiode 231. The change or difference in the photocurrent is converted into a voltage by logarithmic amplifier 232, filtered and amplified by difference detection amplifier 233, and then detected by event generation comparator 234. The event can be latched in latch 235 until it can be read by handshake logic 236.
[0043] Therefore, it should be understood that circuitry containing event-visual pixels (e.g., Figure 2 The imager of the event vision pixel circuit 230 (e.g., Figure 1 The imager 110 does not need to record the entire normal image, and therefore does not have to bear the burden of capturing and recording all the highly redundant information of the normal image frame by frame. Instead, in various embodiments, the imager can only record events. For example, the imager may record the location where an event is detected (e.g., Figure 1 The imager can detect the xy coordinates of the event visual pixels in array 102, the polarity of the change in the photocurrent of the event (e.g., brighter or darker), and / or the timing of when the event occurs or is detected. In other words, the imager can be used to detect movement or motion in an external scene (e.g., rather than to capture / read out a complete frame of an image or video), thereby enabling the use of low data rates and the achievement of ultra-high frame rates or speed capabilities in the imager of this technology.
[0044] Refer again Figure 1 Event data detected by the event visual pixels of array 102 can be read asynchronously from array 102 and / or in an order different from the order in which the event data was generated. In these embodiments, a digital timestamp associated with each event occurrence in the signal output from the event visual pixels helps ensure that the detected events are processed and / or reconstructed back to the correct order in which the events occurred.
[0045] Continue to refer to Figure 1Row control circuitry 104 and column control circuitry 106 are used to control rows and columns of event vision pixels in array 102, respectively. For example, row control circuitry 104 and / or column control circuitry 106 can be configured to reset particular event vision pixels of array 102 (e.g., individually or in rows thereof), and / or to read out event vision pixels from array 102 (e.g., individually or in rows thereof) (e.g., along corresponding column bit lines connected to the event vision pixels).
[0046] Pixel signals read out from event vision pixels of array 102 can be passed to event signal processor 108 of imager 110 for processing. Figure 3 Event signal processor 308 (e.g., Figure 1 of event signal processor 108, or another event signal processor of the present technology). As shown, event signal processor 308 includes (a) a set of buffers 361 (e.g., a set of line buffers) and (b) a number of circuits or blocks operably coupled to buffers 361 and usable to perform various processing functions. For example, event signal processor 308 includes: a defective pixel removal block 362 that can be used to remove pixel signals corresponding to defective event vision pixels of an array (e.g., Figure 1 array 102); a segment classifier block 363 and a shape classifier block 364 that can be used to classify segments and shapes, respectively, of event data read out from an array; and an optical flow estimation block 365 that can be used to identify pixel-by-pixel, shape-by-shape, or segment-by-segment motion over time and / or between successive readouts (e.g., using correlation-based, block-matching-based, feature-tracking-based, energy-based, and / or gradient-based optical flow estimation). As shown, event signal processor 308 can further include one or more other blocks 366 for performing auxiliary processing functions.
[0047] As discussed in greater detail below, information stored, identified, or generated by event signal processor 308 (e.g., shape data, segment data, optical flow data, event data, data stored in buffers 361, etc.) can be used by a predictor block (e.g., Figure 1 predictor block 114, a predictor block of event signal processor 308 (not shown), or another predictor block of the present technology) to anticipate (e.g., predict, estimate, identify ahead of time) future event rates and to include in transmissions to a receiver (e.g., Figure 1corresponding size or amount of event data in the payload of future frames of event data. For example, buffer 361 can be used to store event data corresponding to one or more rows of event vision pixels of the array at a given time and / or over a period of time (e.g., over multiple frames). Thus, buffer 361 can be utilized to collect 2D or 3D information related to the geometric distribution of detected events (e.g., across one or more rows of event data, across one or more columns, across time, and / or across multiple frames), thereby enabling the predictor block to perform 2D or 3D based event rate prediction. As another example, segmentation data generated by segmentation classifier block 363, shape data generated by shape classifier block 364, and / or optical flow data generated by optical flow estimation block 365 can be stored to buffer 361 and / or provided to the predictor block. In some embodiments, buffer 361 can additionally or alternatively be used to compress event data read out from the array (e.g., for transmission to Figure 1 receiver 120). The compression can be based at least in part on segmentation data, shape data, and / or optical flow data generated by segmentation classifier block 363, shape classifier block 364, and optical flow estimation block 365, respectively.
[0048] Referring again to Figure 1 Event data processed by event signal processor 108 can be provided to transmitter 116 for transmitting event data from imager 110 to receiver 120. Additionally or alternatively, all or a subset of the event data can be stored in memory 112 (e.g., before or after being provided to transmitter 116), as described in greater detail below. As shown, event signal processor 108 additionally provides information to predictor block 114, which in turn uses the information to anticipate one or more future event rates and / or corresponding amounts of event data to include in the payload of future frames sent to receiver 120. Various techniques can be employed by predictor block 114 to estimate future event rates. As a particular example, predictor block 114 can include a Kalman filter to generate Kalman filter based event rate predictions.
[0049] The information provided by the event signal processor 108 to the predictor block 114 can include various data that can be used to predict future event rates. For example, the information provided by the event signal processor 108 to the predictor block 114 can include event data. As another example, the information provided by the event signal processor 108 to the predictor block 114 can include a current event rate or (a) an amount of event data included in a payload of a frame currently transmitted to the receiver 120 or (b) an amount of event data corresponding to one or more frames transmitted to the receiver 120 prior to a future frame of interest that the predictor block 114 uses to anticipate a corresponding event rate. In these and other embodiments, the information can include one or more previous event rates or one or more amounts of event data included in a payload of one or more frames previously transmitted to the receiver 120.
[0050] Figure 4 is a line graph 470 that specifically illustrates one example of how the predictor block 114 can use historical data of event rates to produce a prediction of an event rate for one or more future points in time. More specifically, the line graph 470 includes a first line segment 471 that represents a known event rate corresponding to frames transmitted to the receiver 120 frame between time t-T Figure 1 and time t. Using the event rate corresponding to the first line segment 471, the predictor block 114 can extrapolate the first line segment 471 to produce a second line segment 472 that represents a predicted event rate occurring at a point in time occurring after time t. As shown in Figure 4 , the second line segment 472 can be bounded by an upper confidence interval segment 473a and a lower confidence interval segment 473b that can also be produced by the predictor block 114 based at least in part on the event rate corresponding to the first line segment 471.
[0051] The information provided by the event signal processor 108 to the predictor block 114 can additionally or alternatively include or correspond to event rates for one or more groups of regions in the array 102. For example, the information can include or relate to a geometric distribution of detected events in the array 102 at a given point in time or over a period of time. As a specific example, the information can include (a) 2D information related to a shape formed by event visual pixel circuits in the array 102 that have detected events at a given point in time and / or (b) motion or optical flow of the shape over a period of time (e.g., over multiple frames). As discussed above, the information can be stored in a buffer (e.g., the buffer 361 of the event signal processor 308), other memory of the imager 110 (e.g., the memory 112), and / or various processing blocks (e.g., the event signal processor 308, the predictor block 114, etc.). Figure 3 Figure 3 blocks 362-365 of event signal processor 308) can be used to store or produce all or a subset of the information to enable predictor block 114 to perform 2D or 3D event rate prediction. In these embodiments, predictor block 114 can be configured to read information from or transmit information to (e.g., for storage) buffers, other memories of imager 110, and / or various processing blocks.
[0052] In some embodiments, predictor block 114 can use 2D event information to predict an event rate for a block of rows of event vision pixels of array 102 at a future point in time using the following equation:
[0053] Equation 1:
[0054]
[0055] More specifically, using Equation 1 above, a block of rows of event vision pixels in array 102 can be parameterized by u varying in the interval [u0, u1]. Events in the observed set of events (denoted by M in Equation 1 above) can be parameterized by position x, u; polarity (up / down) p; and timestamp t. The function in Equation 1 above still represents a function employed by predictor block 114 on the set of events M, which provides an estimate of data rate, event rate, frame size, etc.
[0056] In these and other embodiments, predictor block 114 can use 2D event information to predict an event rate for a single row of event vision pixels of array 102 at a future point in time using the following equation:
[0057] Equation 2:
[0058]
[0059] More specifically, using Equation 2 above, a single row of event vision pixels in array 102 can be parameterized by u, which here directly corresponds to a single value y (rather than an interval [u0, u1], as done in Equation 1 above). Similar to Equation 1 above, events in the observed set of events M in Equation 2 can be parameterized by position x, u; polarity (up / down) p; and timestamp t. The function in Equation 2 still represents a function employed by predictor block 114 on the set of events M, which provides an estimate of data rate, event rate, frame size, etc.
[0060] In these and other embodiments, predictor block 114 may predict future event rates based on other information, such as an indication of the global activity rate of event visual pixels in array 102 at a given point in time or over a given time period. For example, as discussed above, event visual pixels in array 102 may include current-depleted bit-holding latches (e.g., similar to...). Figure 2 Each latch (235) generates a unit current if and only if the corresponding event visual pixel detects an event. Therefore, the sum of the unit currents across array 102 at a given time point or over a period of time provides an indication of the global activity of the event visual pixels in array 102. In some embodiments, imager 110 may include activity monitoring circuitry (…). Figure 1 (Not shown in the image), the activity monitoring circuit is configured to use the sum of unit currents generated by the event visual pixels across array 102 to provide the predictor block 114 with an indication of the global activity rate of the event visual pixels in the array at a given time point.
[0061] Figure 5 This is a partial schematic block diagram of an example of an activity monitoring circuit 580 configured according to various embodiments of the present technology. As shown, the activity monitoring circuit 580 includes an analog-to-digital converter (ADC) implemented using a current mirror. The current mirror includes a first transistor 581 and a second transistor 582. The drains of the first and second transistors 581 and 582 are coupled to a power supply voltage, and the gates of the first and second transistors 581 and 582 are coupled together and coupled to the source of the second transistor 582. The source of the second transistor 582 is configured to (a) couple to a pixel array (e.g., Figure 1 (a) All event visual pixel circuits of array 102) and (b) conduct total current I TOTAL 588. The source of the first transistor 581 is coupled to a voltage divider comprising a plurality of resistors 583-1, 583-2, ... 583-N in series coupling. Each of the plurality of resistors 583-1, 583-2, ... 583-N is coupled to a corresponding one of the plurality of comparators 584-1, 584-2, ... 584-N. Each of the plurality of comparators 584-1, 584-2, ... 584-N is also coupled to a corresponding reference voltage V. REF1 V REF2 ...V REFN And it is configured to generate corresponding digital output signals D1, D2, ... DN, as shown. In this example, it should be understood that the digital output signals D1, D2, ... DN represent the total current I. TOTAL The digital temperature code is 588. More specifically, it should be understood that the current mirror included in the activity monitoring circuit 580 will measure the total current I... TOTAL588mirror into a current path that includes a voltage divider with a plurality of resistors 583-1, 583-2,... 583-N. The mirrored current through the plurality of resistors 583-1, 583-2,... 583-N creates a corresponding voltage drop across each of a plurality of resistors 584-1, 584-2,... 584-N, which depends on whether the respective reference voltage V REFl 、 REF2 、 ... V REFN and a digital output signal D1, D2,... DN at the outputs of the plurality of comparators 584-1, 584-2,... 584-N. In the illustrated example, the activity monitoring circuit 580 is configured to (a) generate an activity monitoring signal at an output 589 of the activity monitoring circuit 580 in response to the digital output signals D1, D2,... DN and (b) provide the activity monitoring signal to a predictor block (e.g., the predictor block 114 of Figure 1 FIG. 1) coupled to the output 589. Thus, the activity monitoring circuit 580 can be separate from but coupled to the predictor block. In other embodiments, the activity monitoring circuit 580 can be incorporated into the predictor block.
[0062] Referring to Figure 1 and 5 together, in one example, when a trigger event visual pixel circuit, each event visual pixel circuit of the array 102 Figure 1 ) can contribute a unit current having a predetermined value via its respective latch (latch 235; Figure 2 ). The unit currents from all of the event visual pixel circuits of the array 102 can be summed into a total current I TOTAL 588 Figure 5 ) that is monitored by the activity monitoring circuit 580 TOTAL 588. Thus, the total current I TOTAL 588may represent a total number of event visual pixel circuits that are triggered in the array 102. Because each event visual pixel circuit of the array 102 can be configured in such a way that it produces a different current consumption having a predetermined value on a reference power supply only if an event is detected by the respective event visual pixel circuit, the total current I TOTAL 588may provide only an indication of global activity of those event visual pixels of the array 102 that have detected an event. Based at least in part on the total current I TOTAL 588, the activity monitoring circuit 580 can generate an activity monitoring signal at its output 589 that is provided to the predictor block 114. The predictor block 114, in turn, can predict a future event rate based at least in part on the activity monitoring signal received from the activity monitoring circuit 580. For example, the predictor block 114 can estimate a future event rate based on the activity monitoring signal using the following equation:
[0063] Equation 3:
[0064]
[0065] In equation 3 above, δ is some distribution that, when integrated over for each event, produces an increment of one (1), and ΔΤ is a given interval over which to sum the unit current to measure the global activity of the event vision pixels in array 102.
[0066] It should be appreciated that although activity monitoring circuit 580 is illustrated in Figure 5 as including the particular type of analog-to-digital converter shown, other types of analog-to-digital converters can be utilized to implement activity monitoring circuit 580 in other embodiments of the technology. For example, activity monitoring circuit 580 can be implemented so as to directly sum the total current I TOTAL 588operation. In these embodiments, other analog-to-digital circuit configurations (e.g., ramp slope, SAR, sigma-delta, etc.) can be used to implement activity monitoring circuit 580 depending on latency, power, area, accuracy, performance, or other requirements. Additional details regarding activity monitoring circuits and imagers implementing the same are provided in U.S. Patent No. 11,563,909, previously incorporated herein by reference above.
[0067] After generating the expected event rate for the future frame, predictor block 114 can provide the expected event rate to transmitter 116 for transmission to receiver 120. In some embodiments, transmitter 116 can transmit the expected event rate to receiver 120 by including the expected event rate for the future frame in a header portion of the current frame transmitted to receiver 120. As described below with reference to Figure 8 and 9 In more detail, transmitter 116 can instead provide the expected event rate for the future frame to receiver 120 by loading the expected event rate into a local register coupled to transmitter 116. Receiver 120 can then read the expected event rate from the local register via an interface such as an inter-integrated circuit (I2C) interface, serial peripheral interface (SPI), or another suitable interface that couples receiver 120 to the local register. In these and other embodiments, any other suitable method can be used to communicate the expected event rate to receiver 120.
[0068] Once receiver 120 has received the expected event rate for a future frame, receiver 120 can use the expected event rate to update its local receiver circuitry and controller (e.g., a memory controller or processor that controls a synchronous communication interface) prior to receiving the corresponding future frame from transmitter 116, such that receiver 120 is configured to receive a frame having a payload size corresponding to the expected event rate. When the time comes for imager 110 to transmit the future frame to receiver 120, imager 110 (e.g., event signal processor 108, predictor block 114, and / or transmitter 116) can determine whether the actual amount of event data available for transmission in the frame is greater than or less than the predicted amount of event data corresponding to the predicted event rate. In the case where the event rate is lower than the expected event rate (meaning that less event data than expected has been generated for transmission to receiver 120), imager 110 (e.g., event signal processor 108 and / or transmitter 116) can pad the frame with dummy data such that the amount of data (e.g., event data plus dummy data) transmitted to receiver 120 is equivalent to the predicted amount of event data corresponding to the predicted event rate previously communicated to receiver 120. On the other hand, when the event rate is higher than the expected event rate (meaning that more event data than expected has been generated for transmission to receiver 120), imager 110 (e.g., event signal processor 108 and / or transmitter 116) can (a) discard, filter, or compress out event data until the amount of event data transmitted to receiver 120 corresponds to the event rate previously communicated to receiver 120 and / or (b) save excess event data in a buffer (e.g., in memory 112) for later transmission to receiver 120 in a separate frame. Additionally or alternatively, imager 110 (e.g., event signal processor 108, predictor block 114, and / or transmitter 116) can foresee a need for a larger frame size (e.g., based on information provided to or generated by event signal processor 108, activity monitoring circuitry, and / or predictor block 114) and can communicate the need to receiver 120 prior to transmitting the future frame, such that receiver 120 can accommodate a larger frame size than originally expected and communicated by imager 110.
[0069] In this manner, the present technology facilitates informing a receiver 120 of an expected size of a frame prior to the frame being transmitted from an imager 110 to the receiver 120. The present technology then enables the receiver 120 to update its local receiver circuitry and controller prior to receiving a frame, thereby minimizing the likelihood of timing specification issues and thus the likelihood of the synchronous communication interface halting transmission of a frame. In other words, the present technology facilitates sending event data asynchronously to a synchronous communication receiver via a synchronous communication interface while reducing the likelihood of event data loss or frame loss. Additionally, by facilitating scaling of the size of frames received by the receiver 120, the present technology reduces the amount of dummy data transmitted to the receiver 120 as padding data that might otherwise be sent to the receiver 120 in implementations that employ a fixed frame size.
[0070] Figure 6A is a flowchart of a method 600 of an imaging system 100 that illustrates operation in accordance with various embodiments of the present technology Figure 1 . For example, the method 600 can be employed to transmit asynchronous event data from an imager 110 to a receiver 120 of an imaging system 100 via a synchronous communication interface formed at least in part by a transmitter 116 of the imager 110 and the receiver 120. The method 600 is illustrated as a set of steps or blocks 601-608. All or a subset of one or more of the blocks 601-608 can be performed by various components of the imaging system 100. For example, all or a subset of one or more of the blocks 601-608 can be performed by: (i) an event vision pixel array 102; (ii) row control circuitry 104; (iii) column control circuitry 106; (iv) an event signal processor 108; (v) a memory 112; (vi) a predictor block 114; (vii) a transmitter 116; and / or (viii) an activity monitoring circuit (e.g., an activity monitoring circuit 580 of Figure 5 . Moreover, any one or more of the blocks 601-608 can be performed in accordance with the discussion above of Figures 1 to 5 . The following sections reference Figure 7 discuss Figure 6A the method 600 of Figure 7 illustrates transmitting a first frame of data (frame i), a second frame of data (frame i+1), and a third frame of data (frame i+x) from a transmitter 116 of Figure 1 to a receiver 120 of Figure 1 a timing diagram 720.
[0071] Figure 6A the method 600 of i generates a frame of data to be included in a frame to be transmitted at a time t i+kThe estimate of the amount of event data in the payload of the frame sent to the receiver 120 begins. In some embodiments, the estimate can be generated by the predictor block 114 based at least in part on (i) information received or retrieved from the event signal processor 108 and / or (ii) information received from an activity monitoring circuit (e.g., the activity monitoring circuit 580 of Figure 5 FIG. 6). As discussed above, the information can include: event data; a current event rate or an amount of event data included in the payload of the current frame transmitted to the receiver 120; one or more previous event rates or one or more amounts of event data included in the payload of one or more frames previously transmitted to the receiver 120 or transmitted to the receiver 120 prior to transmitting the frame corresponding to time t i+k ; information related to the geometric distribution of detected events in the array 102, such as 2D information related to shapes formed by event vision pixel circuits in the array 102 that have detected events at a given point in time, motion or optical flow of those shapes over a period of time, or segmentation data; and / or an indication of global activity of event vision pixels of the array 102 that have detected events. In these and other embodiments, the information can include an accuracy of a previous estimate. For example, if the imager 110 (e.g., the event signal processor 108, the predictor block 114, and / or the transmitter 116) determines that actual amounts of event data generated by event vision pixel circuits are generally greater than corresponding predicted amounts of event data, the imager 110 can adjust the estimate of the amount of event data generated at block 601 toward an upper confidence interval value to increase the likelihood that actual amounts of event data will more closely align with corresponding predicted amounts of event data. Similarly, if the imager 110 determines that actual amounts of event data generated by event vision pixel circuits are generally less than corresponding predicted amounts of event data, the imager 110 can adjust the estimate of the amount of event data generated at block 601 toward a lower confidence interval value to increase the likelihood that actual amounts of event data will more closely align with corresponding predicted amounts of event data. In some embodiments, generating the estimate can include generating an estimate of an expected event rate of the frame transmitted to the receiver 120 at time t i+k . Additionally or alternatively, generating the estimate can include generating an estimate of how the detection of events will be distributed across the array 102 at time t i+k . In some embodiments, the estimated distribution can generate an estimate of a group encoding, such as a compression technique based on local similarity of events.
[0072] At block 602, the method 600 continues by transmitting the expected event data amount from block 601 to the receiver 120. In some embodiments, transmitting the expected event data amount to the receiver 120 includes transmitting the expected event data amount to the receiver 120 in a current frame transmitted to the receiver 120. For example, transmitting the expected event data amount can include inserting an indication of the expected event data amount and / or a corresponding event rate into a header portion of the current frame.
[0073] In some embodiments, the method 600 can return to block 601 after transmitting the expected event data amount at block 602. For example, the method 600 can return to block 601 to generate an estimate of the event data amount to be included in a payload of a frame transmitted to the receiver 120 at time t i + Δt. Thereafter, the method 600 can again proceed to block 602 to transmit the expected event data amount for the frame corresponding to time t i+2k + Δt to the receiver 120. i+2k
[0074] At block 603, the method 600 continues by streaming the frame corresponding to time t i+k + Δt to the receiver 120. Streaming the frame can include inserting data (e.g., event data and / or dummy data) into a payload of the frame and transmitting the frame to the receiver 120 via the transmitter 116. In some embodiments, streaming the frame can include inserting the expected event data amount to be included in a payload of a future frame streamed to the receiver 120 into a header portion of the frame corresponding to time t i+k + Δt.
[0075] Reference is now made to an example of the method 600 as Figure 6A Figure 7 As illustrated in timing diagram 720, imager 110 transmits three frames (frame i, frame i+1, and frame i+k) to receiver 120. Each of the frames includes a start of frame (SOF) identifier portion, a header portion, a payload portion, and an end of frame (EOF) identifier portion. As shown, imager 110 loads the header portion of frame i with an indication of the expected event rate (or corresponding expected event data volume) for frame i+k, such that the indication is received by receiver 120 prior to the transmission of frame i+k from imager 110 to receiver 120. Receiver 120 in turn adjusts its local receiver circuitry and controller to expect the receipt of frame i+k from imager 110 to accommodate frame i+k having a payload of a size corresponding to the expected event rate transmitted to receiver 120 in frame i. In some embodiments, receiver 120 can need several cycles to adjust its local receiver circuitry and memory controller. Thus, in the illustrated example, imager 110 transmits at least frame i+1 to receiver 120 after the transmission of frame i and prior to the transmission of frame i+k to receiver 120. During this period, the frame time or latency specification for transmitting frames between frame i and frame i+k, including frame i+1, to receiver 120 can remain constant (e.g., the same or similar to the frame time or latency specification for transmitting frame i to receiver 120). In other embodiments, receiver 120 can not need several cycles to adjust its local receiver circuitry and controller to expect the receipt of frame i+k. For example, receiver 120 can receive the indication of the expected event rate for frame i+k in the header portion of frame i and be able to adjust its local receiver circuitry and memory controller prior to receiving the payload of frame i+k. In these embodiments, frame i+k can be transmitted after frame i and no other frames need to be transmitted between frame i and frame i+k. In other words, imager 110 can transmit frame i+k to receiver 120 immediately after frame i, such that frame i+k is frame i+1.
[0076] Referring again to Figure 6A , method 600 continues at block 604 by determining whether the amount of generated event data that can be used to insert into the payload of the frame corresponding to time t i+k The method 600 can determine whether the amount of generated event data is less than the expected event data volume when the method 600 begins streaming the frame corresponding to time t i+k The method 600 can determine whether the amount of generated event data is less than the expected event data volume when the method 600 begins streaming the frame corresponding to time t i+k The method 600 continues at block 605 and fills the payload of the frame corresponding to time t i+kthe frame corresponding to time t with the expected event data amount transmitted to the receiver 120 at block 602. In some embodiments, the virtual data can be encoded differently from the event data, such that the virtual data can be distinguished from the event data later (e.g., at the receiver 120). For example, the virtual data can include (i) a unique header or (ii) a header encoded in a unique format. The unique header or unique header encoding format for the virtual data can be different from the header or header encoding format for identifying the event data, respectively. After padding the payload of the frame with the virtual data, the method 600 then proceeds to block 608 to end the transmission of the frame to the receiver 120. On the other hand, when the method 600 determines that the generated event data amount is not less than the expected event data amount (block 604: No), the method 600 proceeds to block 606.
[0077] At block 606, the method 600 continues by determining whether the generated event data amount that can be used for insertion in the payload of the frame corresponding to time t i+k is greater than the event data amount expected at block 601 and transmitted to the receiver 120 at block 602. When the method 600 determines that the generated event data amount is greater than the expected event data amount (block 606: Yes), the method 600 proceeds to block 607. On the other hand, when the method 600 determines that the generated event data amount is not greater than the expected event data amount (block 606: No), the method 600 proceeds to block 608 to end the transmission of the frame to the receiver 120.
[0078] At block 607, the method 600 limits the generated event data amount for insertion in the payload of the frame corresponding to time t i+k to the event data amount expected at block 601 and transmitted to the receiver 120 at block 602. In some embodiments, limiting the generated event data amount can include discarding or filtering at least a subset of the generated event data. For example, the method 600 can insert the generated event data into the payload of the frame until the generated event data amount in the payload aligns with the expected event data amount. Continuing this example, excess event data that has been generated but not yet loaded into the payload can be omitted from the frame corresponding to time t i+k without being transmitted to the receiver 120. The generated event data can be loaded into the payload of the frame in the order in which it arrives, such that in the frame corresponding to time t i+k , the generated event data that arrives after the payload has been loaded with an event data amount equivalent to the expected event data amount is omitted without being transmitted to the receiver 120. In these and other embodiments, the generated event data can be randomly selected for inclusion in the frame corresponding to time t i+kThe generated event data may be included in or excluded from the frame's payload. In these and other embodiments, the selection of generated event data to be included in or excluded from the payload may be based at least in part on the spatial and / or temporal occurrence of the detected events across the event visual pixel array 102. Alternatively, limiting the amount of generated event data may include compressing the event data to reduce the total amount of generated event data to a level closer to the expected amount of event data. Other suitable techniques for inserting a subset of generated event data into the frame's payload while excluding generated event data exceeding the expected amount of event data are of course possible and fall within the scope of this technology. In some embodiments, time t corresponding to transmission to receiver 120 may be discarded. i+k Redundant event data in the payload of a frame. Alternatively, redundant event data not included in the payload of a frame used to transmit to receiver 120 may be stored in memory (e.g., memory 112) for later transmission to receiver 120 in the payload of another frame. The insertion limit corresponds to time t. i+k After the amount of event data generated in the payload of the frame is determined, method 600 continues to box 608 to end the transmission of the frame to receiver 120.
[0079] Although boxes 601 to 608 of method 600 are discussed and explained in a specific order, Figure 6A The method 600 described herein is not limited thereto. In other embodiments, method 600 may be performed in a different order. In these and other embodiments, any of blocks 601 to 608 of method 600 may be performed before, during, and / or after any of the other blocks 601 to 608 of method 600. For example, when block 603 corresponds to time t i+k Boxes 604, 605, 606, and / or 607 may be executed when at least a portion of the frame is streamed to receiver 120. As another example, when boxes 603 through 608 are executed, corresponding to time t... i+k When frames are streamed to receiver 120, blocks 601 and 602 may be executed to anticipate the event rate corresponding to frames to be transmitted to receiver 120 in the future. Furthermore, those skilled in the art will recognize that the illustrated method 600 may be modified but remains within these and other embodiments of the present technology. For example, in some embodiments, one or more blocks 601 to 608 of method 600 may be omitted and / or repeated. As a specific example, in some embodiments, one or more of blocks 604 to 607 may be omitted.
[0080] As another example, in some embodiments, method 600 can be foreseen in the time corresponding to t. i+kA larger or smaller frame size is required before the frame is transmitted to receiver 120. For example, predictor block 114 may anticipate that the amount of expected event data initially transmitted to receiver 120 at block 602 may be less than or greater than the amount of data corresponding to time t. i+k The amount of actual event data generated by the frame. Therefore, in these embodiments, the predictor block 114 can predict the amount of event data generated by the frame corresponding to time t. i+k The frame generates a new expected event data volume, and in the time corresponding to t i+k Before the frame is transmitted to receiver 120, a new expected event data amount is transmitted to receiver 120 to correct the initial expected event data amount transmitted to receiver 120 at block 602. The new expected event data amount may be at least partially based on new information available to predictor block 114 after the initial estimate of the event data amount is transmitted to receiver 120. The new information may include, for example, information corresponding to time t. i+k Before a frame is transmitted to receiver 120, it displays information about the rise or fall of the event rate, as well as other information, such as information about redundant event data generated in the previous frame but excluded from receiver 120. The transmission corresponds to time t. i+k Before the frame, transmitting the amount of new expected event data to receiver 120 can reduce the method 600 to determine which can be used for insertion corresponding to time t. i+k The possibility that the amount of event data generated in the payload of a frame is (i) less than the expected amount of event data (box 604: yes), or (ii) greater than the expected amount of event data (box 606: yes).
[0081] Figure 6B This describes the operation of various embodiments according to the present technology. Figure 1 A flowchart of method 690 of receiver 120. For example, method 690 may be used to receive asynchronous event data from imager 110 via a synchronous communication interface formed at least partially by transmitter 116 of imager 110 of imaging system 100 and receiver 120. Method 600 is described as a set of steps or blocks 691 to 693. All or a subset of one or more of blocks 691 to 693 may be performed by various components of receiver 120. For example, all or a subset of one or more of blocks 691 to 693 may be performed by (i) local receiver circuitry of receiver 120 and / or (ii) controller of receiver 120 (e.g., a memory controller or processor that controls the synchronous communication interface of imager 110 coupled to receiver 120). Furthermore, according to the above description, Figures 1 to 6A The discussion in section 7 is used to execute any or more of the blocks 691 to 693.
[0082] Figure 6B Method 690 at box 691 receives the expected event rate or includes it in time t. i+kThe process begins with an indication of the expected amount of event data in the frame transmitted from imager 110 to receiver 120. In some embodiments, this can be initiated at receiver 120 at time t. i The header portion of the frame transmitted to receiver 120 contains a reception indication.
[0083] At block 692, method 690 continues by updating the local receiver circuitry and / or controller of receiver 120 (e.g., a memory controller or processor controlling the synchronization interface that couples transmitter 116 to receiver 120) to accommodate the amount of data received corresponding to the expected event rate. For example, receiver 120 may adjust its local receiver circuitry and / or controller to adjust the data received at time t. i+k Receive frames with a payload having a data amount corresponding to the expected event rate received at frame 691.
[0084] At box 693, method 690 uses time t i+k The process continues by receiving frames from imager 110. In some embodiments, the frame has a payload filled with a data amount corresponding to the expected event rate. The data included in the payload may include event data detected by imager 110 and / or virtual data used by imager 110 to fill the payload of the frame.
[0085] Although the methods 690 are discussed and explained in a specific order in boxes 691 to 693, Figure 6B The method 690 described herein is not limited thereto. In other embodiments, method 690 may be performed in a different order. In these and other embodiments, any of blocks 691 to 693 of method 690 may be performed before, during, and / or after any of the other blocks 691 to 693 of method 690. Furthermore, those skilled in the art will recognize that the described method 690 may be modified while still remaining within these and other embodiments of the present technology. For example, in some embodiments, one or more blocks 691 to 693 of method 690 may be omitted and / or repeated.
[0086] Figure 8 yes Figure 1 A partial schematic block diagram of an alternative embodiment of the imaging system 100. More specifically, Figure 8 This is a partial schematic block diagram of an imaging system 800 configured according to various embodiments of the present technology. The imaging system 800 may be generally similar to... Figure 1imaging system 800, except that the imager 810 of the imaging system 800 includes a local register 832 that is (a) coupled to the transmitter 116 of the imager 810 and (b) coupled to the receiver 820 of the imaging system 800 via a communication interface 836. The communication interface 836 can be an I2C interface, an SPI, or another suitable interface. As discussed in greater detail below, the imager 810 can be configured to write the expected event rate into the local register 832 (e.g., rather than writing the expected event rate into a header portion of a frame transmitted to the receiver 820). Although shown as being coupled to the transmitter 816 downstream of the transmitter 816, in other embodiments, the local register 832 can be coupled to the transmitter 816 upstream of the transmitter 816, e.g., between the event signal processor and the transmitter 816.
[0087] Figure 9 is illustrative of operation of various embodiments in accordance with the present technology Figure 8 is a flowchart of a method 940 of the imaging system 800. For example, the method 940 can be employed to transmit asynchronous event data from the imager 810 to the receiver 820 via a synchronous communication interface formed at least in part by the transmitter 816 of the imager 810 of the imaging system 800 and the receiver 820 of the imaging system 800. The method 940 is illustrated as a set of steps or blocks 941-948. All or a subset of one or more of the blocks 941-948 can be performed by various components of the imaging system 800. For example, all or a subset of one or more of the blocks 941-948 can be performed by: (i) an event vision pixel array; (ii) row control circuitry; (iii) column control circuitry; (iv) an event signal processor; (v) a memory; (vi) a predictor block; (vii) the transmitter 816; (viii) an activity monitoring circuit; and / or (ix) the local register 832. Additionally or alternatively, all or a subset of one or more of the blocks 941-948 can be performed by the receiver 820 (e.g., by local receiver circuitry and / or one or more controllers or processors of the receiver 820). Moreover, any one or more of the blocks 941-948 can be performed in accordance with the discussion above of Figures 1 to 8
[0088] The method 940 begins at block 941 by generating, at a time t i an estimate of an amount of event data that will be included in a payload of a frame at a time t i+k sent to the receiver 120. In some embodiments, the estimate can be generated substantially similarly to the discussion above of the imager 110 of the imaging system 100 and / or the imager 810 of the imaging system 800. For example, the estimate can be generated based on a number of events that have occurred in a time period preceding the time t Figure 1 Figure 6A The estimation is generated in a manner discussed above with respect to block 601 of method 600. Then, method 940 proceeds to block 942 to write an indication of the expected event data volume (or a corresponding expected event rate) into a local register 832.
[0089] At block 943, method 940 continues by transmitting the indication of the expected event data volume to receiver 820. In some embodiments, transmitting the indication of the expected event data volume includes reading the indication from local register 832. For example, receiver 820 can periodically poll local register 832 and read the indication from local register 832 at block 943 using a processing unit of receiver 820. The processing unit can be the same or different from a processing unit of receiver 820 that is used to control a synchronous communication interface by which transmitter 816 is coupled to receiver 820.
[0090] At block 944, method 940 continues by updating local receiver circuitry and / or a controller of receiver 820 (e.g., a memory controller or processor that controls the synchronous interface) to accommodate receiving a data volume corresponding to the expected event data volume transmitted via local register 832. For example, receiver 820 can adjust the local receiver circuitry and / or controller to accommodate receiving a data volume corresponding to the expected event data volume at time t i+k receiving a frame having a payload with a data volume corresponding to the expected event data volume.
[0091] At block 945, method 940 continues by informing imager 810 that receiver 820 has adjusted its local receiving circuitry and / or controller to accommodate receiving a data volume corresponding to the expected event data volume read via local register 832. For example, receiver 820 can inform imager 810 that it successfully read the indication of the expected event data volume from local register 832. In some embodiments, receiver 820 can inform imager 810 of the successful read via communication interface 836, via the synchronous communication interface, or in another suitable manner.
[0092] At block 946, method 940 continues by writing a future frame size value corresponding to the expected event data volume into another register. For example, imager 810 can write the future frame size value into another register based at least in part on receiving the indication of the successful read from receiver 820 at block 945. The other register can be the same register as local register 832 into which imager 810 wrote the indication of the expected event data volume at block 942 or a different register.
[0093] At block 947, method 940 continues by reading another register to confirm that the future frame size value matches the expected event data amount transmitted to receiver 820 at block 943. For example, receiver 820 can read the future frame size from another register and compare the future frame size to the expected event data amount. If the values align, method 940 can proceed to block 948 to transmit a frame having a payload containing an amount of data (event data and / or dummy data) corresponding to the expected event data amount for time t i+k . Method 940 can transmit the frame in a manner substantially similar to that described above with respect to blocks 603-608 of method 600 Figure 6A . On the other hand, if the values do not align, method 940 can prevent, abort, or delay transmission of the frame corresponding to time t i+k , or can continue transmitting the frame corresponding to t i+k using a previously confirmed expected event data amount (e.g., corresponding to the expected event data amount of a frame sent to receiver 820 prior to transmitting the frame corresponding to time t i+k .
[0094] Although blocks 941-948 of method 940 are discussed and illustrated in a particular order, method 940 as illustrated in Figure 9 is not limited thereto. In other embodiments, method 940 can be performed in a different order. In these and other embodiments, any of blocks 941-948 of method 940 can be performed prior to, during, and / or after any of the other blocks 941-948 of method 940. For example, blocks 945, 946, and / or 947 can be performed concurrently with block 948. Moreover, one of ordinary skill in the related art will recognize that the illustrated method 940 can be altered and still remain within these and other embodiments of the technology. For example, in some embodiments, one or more blocks 941-948 of method 940 can be omitted and / or repeated. As a particular example, in some embodiments, blocks 945, 946, and / or 947 can be omitted from method 940. As another example, imager 810 can be configured to transmit the expected event data amount to receiver 820 via a communication interface (e.g., via communication interface 836) rather than writing the expected event data amount to a register for receiver 820 to read.
[0095] As yet another example, in some embodiments, method 940 can foresee a need for a larger or smaller frame size prior to transmitting the frame corresponding to time t i+k to receiver 820. For example, method 940 can generate a frame having a payload containing an amount of data (event data and / or dummy data) corresponding to the expected event data amount for time t i+ka new estimate of the amount of event data in the payload of the frame sent to the receiver 820, the new estimate being different from the initial estimate of the amount of event data communicated to the receiver 820 at block 943. The new estimate of the amount of event data can be based at least in part on new information available to the predictor block of the imager 810 after the initial estimate of the amount of event data is communicated to the receiver 820. The new information can include, for example, information that exhibits a rise or fall in event rate prior to the frame corresponding to time t i+k being transmitted to the receiver 820, and other information such as for excess event data generated but excluded from being transmitted to the receiver 820 within the previous frame. Continuing this example, the method 940 can write the new estimated amount of event data to the local register 832 prior to the frame corresponding to time t i+k being transmitted to the receiver 820. The new estimated amount of event data can be written to the same or a different local register 832 as the local register 832 to which the initial estimated amount of event data is written by the method 940. The receiver 820 can then read the new estimate and adjust its local receiver circuitry and / or controller prior to receiving the frame corresponding to time t i+k
[0096] Figure 10 is a portion of a schematic block diagram of an alternative implementation of the imaging system 100 of Figure 1 and / or the imaging system 800 of Figure 8 More specifically, Figure 10 is a portion of a schematic block diagram of an imaging system 1000 configured in accordance with various embodiments of the present technology. The imaging system 1000 can be generally similar to the imaging system 100 of Figure 1 and / or the imaging system 800 of Figure 8 as the imaging system 1000 includes an array of event vision pixels 1002, row control circuitry 1004, column control circuitry 1006, an event signal processor 1008, a memory 1012, and a transmitter 1016 configured to transmit event data to a receiver 1020. Notably, however, the imaging system 1000 lacks a predictor block. Instead, the memory 1012 can be large enough to store multiple frames of event data and / or to cover all possible events during a desired frame period. For example, the memory 1012 can be large enough to store multiple frames of event data even when every event vision pixel in the array 1002 detects an event in each frame. Thus, in this embodiment, the imager 1010 can have advance knowledge of exactly how much event data will be included in a frame transmitted to the receiver 1020 at a future point in time. Accordingly, the imager 1010 can provide an indication of that exact amount of event data to the receiver 1020 prior to transmitting the event data in the future frame. In other words, the imaging system 1000 can primarily operate in a manner similar to the imaging system 100 of Figure 6A andFigure 6B Methods 600 and 690 are operated in a manner similar to the manner described above with respect to methods 400 and 690, except that (i) the amount of precise event data corresponding to the frame at time t i+k may be determined at blocks 601 and 602 of method 600 and transmitted to receiver 1020, and (ii) all or a subset of blocks 604 through 607 of method 600 can be omitted. Additionally or alternatively, imaging system 1000 can be operated primarily in a manner similar to the manner described above with respect to method 940 of Figure 9 , assuming that imaging system 1000 includes local registers and a communication interface similar to imaging system 800 of Figure 8 , except that the amount of precise event data corresponding to the frame at time t i+k may be determined at blocks 941 through 943 of method 940 and transmitted to receiver 1020.
[0097] C. SUMMARY
[0098] The foregoing detailed description of embodiments of the technology is not intended to be exhaustively detailed or to limit the technology to the precise form disclosed. Although specific embodiments of, and examples for, the technology are described above, it will be recognized by those of ordinary skill in the art that various modifications can be made to the technology that fall within the scope of the technology. For example, while steps are presented in a given order, alternative embodiments can perform steps in a different order. Additionally, various embodiments described herein can also be combined to provide further embodiments.
[0099] From the foregoing, it will be appreciated that specific embodiments of the technology have been described herein for purposes of illustration, but well-known structures and functions have not been described in detail to avoid obfuscating the description of the embodiments of the technology. Any material incorporated by reference herein will be taken as being incorporated in its entirety. To the extent that any meaning or definition of a term in this document conflicts with the meaning or definition of the same term in a document incorporated by reference, the meaning or definition assigned to that term in this document shall control. Where a singular form of a term is used herein, that term should be considered to also include the plural form of that term unless the context clearly dictates otherwise. Additionally, the use of “or” as a conjunction is to be understood as representing an inclusive “or” unless the context clearly dictates otherwise. Furthermore, the use of the term “and” is to be understood as representing an inclusive “and” unless the context clearly dictates otherwise. Moreover, the use of the term “based on” should not be construed as referring solely to derivatives of the term “based on,” but rather, should be construed as referring to any of a wide variety of circumstances, including, for example, “based on” or “based on the fact that.” Furthermore, the term “coupled” is used herein to express a direct or indirect connection between two elements. For example, the use of the term “coupled” can indicate that two elements are either directly connected or indirectly connected through one or more intermediary elements. In contrast, the term “connected” is used herein to express a direct connection between two elements.
[0100] From the foregoing, it will be appreciated that specific embodiments of the technology have been described herein for purposes of illustration, but well-known structures and functions have not been described in detail to avoid obfuscating the description of the embodiments of the technology. Any material incorporated by reference herein will be taken as being incorporated in its entirety. To the extent that any meaning or definition of a term in this document conflicts with the meaning or definition of the same term in a document incorporated by reference, the meaning or definition assigned to that term in this document shall control. Where a singular form of a term is used herein, that term should be considered to also include the plural form of that term unless the context clearly dictates otherwise. Additionally, the use of “or” as a conjunction is to be understood as representing an inclusive “or” unless the context clearly dictates otherwise. Furthermore, the use of the term “and” is to be understood as representing an inclusive “and” unless the context clearly dictates otherwise. Moreover, the use of the term “based on” should not be construed as referring solely to derivatives of the term “based on,” but rather, should be construed as referring to any of a wide variety of circumstances, including, for example, “based on” or “based on the fact that.” Furthermore, the term “coupled” is used herein to express a direct or indirect connection between two elements. For example, the use of the term “coupled” can indicate that two elements are either directly connected or indirectly connected through one or more intermediary elements. In contrast, the term “connected” is used herein to express a direct connection between two elements.
Claims
1. An imager comprising: an array of event vision pixels, each pixel of the array configured to generate event data based at least in part on events indicated in incident light received from an external scene; and a synchronous communication transmitter configured to transmit frames of data to a synchronous communication receiver via a synchronous communication interface, wherein the imager is configured to: at a first time and to the receiver transmit an amount of expected event data to be included in a frame transmitted from the transmitter to the receiver at a second time occurring after the first time, and at the second time transmit the frame to the receiver, wherein the frame includes an amount of data corresponding to the amount of expected event data.
2. The imager of claim 1, wherein the amount of expected event data is based at least in part on a prediction of an amount of event data to be generated at a future point in time for transmission to the receiver in the frame, and wherein the imager further comprises a predictor block configured to generate the prediction.
3. The imager of claim 2, wherein the predictor block includes a Kalman filter usable to generate the prediction.
4. The imager of claim 2, wherein the predictor block is configured to generate the prediction based at least in part on one or more actual amounts of event data generated for or included within one or more frames previously transmitted from the imager to the receiver.
5. The imager of claim 2, wherein the predictor block is configured to generate the prediction based at least in part on information corresponding to a 1-dimensional (ID) or 2-dimensional (2D) geometric distribution of detected events across the event vision pixels of the array.
6. The imager of claim 5, the information corresponding to the ID or 2D geometric distribution of detected events includes or is based at least in part on shapes formed by event vision pixels of the array that have detected events at a given time, optical flow of those shapes across multiple frames, or combinations thereof.
7. The imager of claim 2, wherein the predictor block is configured to generate the prediction based at least in part on an accuracy of one or more previously generated estimates relative to one or more corresponding actual amounts of event data generated.
8. The imager of claim 2, wherein: each event vision pixel of the array includes a latch configured to conduct a unit of current when and only when the event vision pixel detects an event; a sum of unit currents across the array at a given time provides an indication of global activity of the event vision pixels of the array; the imager further comprises an activity monitoring circuit configured to generate an activity monitoring signal based at least in part on the sum of the unit currents; and the predictor block is configured to generate the prediction based at least in part on the activity monitoring signal.
9. The imager of claim 2, wherein the predictor block is further configured to generate a confidence interval corresponding to the prediction.
10. The imager of claim 1, wherein: the frame is a second frame; and To communicate the expected event data amount, the imager is configured to transmit, to the receiver, an indication of the expected event data amount in a header portion of a first frame transmitted from the imager to the receiver at a time occurring prior to the second time.
11. The imager of claim 1, wherein: the transmitter is configured to transmit the data frame to the receiver via a synchronous communication interface; the imager further comprises a local register that is coupleable to the receiver via a communication interface separate from the synchronous communication interface; and To communicate the expected event data amount, the imager is configured to write an indication of the expected event data amount to the local register at the first time.
12. The imager of claim 11, further comprising another register separate from the local register, wherein the imager is further configured to write a future frame size value to the other register based at least in part on receiving an indication from the receiver that the indication of the expected event data amount was successfully read from the local register.
13. The imager of claim 1, wherein the imager is configured to pad a payload portion of the frame with dummy data such that the data amount included in the frame is equivalent to the expected event data amount when the imager determines that an actual event data amount to be included in the frame is less than the expected event data amount.
14. The imager of claim 1, wherein the imager is configured to limit the amount of generated event data inserted in the frame such that the data amount included in the frame is less than the event data amount generated for the frame and equivalent to the expected event data amount when the imager determines that the event data amount generated for the frame is greater than the expected event data amount.
15. The imager of claim 14, further comprising a memory, wherein the imager is configured to store excess generated event data not included in the frame in the memory for transmission from the transmitter to the receiver in another frame at a time occurring after the second time.
16. The imager of claim 1, further comprising a memory configured to store a number of frames of owned event data, wherein the expected event data amount is an actual event data amount determined based at least in part on event data stored in the memory.
17. The imager of claim 1, wherein the transmitter comprises a Mobile Industry Processor Interface (MIPI) transmitter.
18. A method of operating an imager comprising one or more event vision pixels, the method comprising: communicating, to a synchronous communication receiver at a first time and via a communication interface, an expected data amount to be included in a frame transmitted from the imager to the receiver at a second time occurring after the first time; and transmitting the frame to the receiver via a synchronous communication interface at the second time, wherein the frame includes a data amount corresponding to the expected data amount.
19. The method of claim 18, wherein the expected data amount is based at least in part on a prediction of an amount of event data that will be generated at a future point in time for transmission to the receiver in the frame, and wherein the method further comprises generating the prediction.
20. The method of claim 19, wherein generating the prediction includes generating the prediction based at least in part on an amount of event data that was previously generated for transmission to the receiver from the imager in one or more previous frames.
21. The method of claim 19, wherein generating the prediction includes generating the prediction based at least in part on information corresponding to a 1-dimensional (ID) or 2-dimensional (2D) geometric distribution of detected events across the one or more event visual pixels.
22. The method of claim 19, wherein generating the prediction includes generating the prediction based at least in part on an indication of global activity of event visual pixels that have detected events at a given point in time of the one or more event visual pixels.
23. The method of claim 19, further comprising generating a confidence interval corresponding to the prediction.
24. The method of claim 18, wherein the expected data amount is an actual amount of event data that has been generated for transmission to the receiver in the frame, and wherein the method further comprises determining the actual amount of event data based at least in part on event data stored to a memory of the imager.
25. The method of claim 18, wherein the frame is a second frame, and wherein transmitting the expected data amount includes inserting an indication of the expected data amount into a first frame and transmitting the first frame to the receiver at a time that occurs prior to the second time.
26. The method of claim 18, wherein transmitting the expected data amount includes writing an indication of the expected data amount to a local register of the imager.
27. The method of claim 26, further comprising writing a future frame size value to another register of the imager based at least in part on receiving an indication from the receiver that the indication of the expected data amount was successfully read from the local register.
28. The method of claim 18, further comprising: determining that an amount of event data generated for inclusion in the frame is less than the expected data amount; and padding the frame with dummy data such that the amount of data included in the frame is equivalent to the expected data amount.
29. The method of claim 18, further comprising: determining that an amount of event data generated for inclusion in the frame is greater than the expected data amount; and limiting the amount of event data included in the frame such that the amount of data included in the frame is less than the amount of event data generated for inclusion in the frame and is equivalent to the expected data amount.
30. The method of claim 29, wherein limiting the amount of event data includes discarding at least a portion of the amount of event data generated for inclusion in the frame, and wherein the portion includes event data that is not transmitted to the receiver in the frame.
31. The method of claim 29, wherein limiting the amount of event data comprises storing at least a portion of the amount of event data generated to be included in the frame for transmission to the receiver in another frame, and wherein the portion comprises event data that is not transmitted to the receiver in the frame.
32. The method of claim 18, further comprising: generating an updated expected amount of data to be included in the frame; and communicating the updated expected amount of data to the receiver as a correction to the expected amount of data prior to transmitting the frame.
33. The method of claim 18, wherein: the frame is a first frame, the expected amount of data is a first expected amount of data, and the amount of data is a first amount of data; and the method further comprises: communicating to the receiver and at a third time that occurs after the second time, a second expected amount of data to be included in a second frame transmitted from the imager to the receiver after a fourth time that occurs after the third time, wherein the second expected amount of data is different from the first expected amount of data; and transmitting the second frame to the receiver at the fourth time, wherein the second frame includes a second amount of data corresponding to the second expected amount of data, wherein the second amount of data is different from the first amount of data.
34. An imaging system comprising: a synchronous communication receiver; and an imager including a synchronous communication transmitter that is (a) operably connected to the synchronous communication receiver via a synchronous communication interface and (b) configured to transmit data frames to the synchronous communication receiver via the synchronous communication interface, the imager further including an array of event vision pixels, each pixel of the array configured to generate event data based at least in part on events indicated in incident light received from an external scene, wherein the imager is configured to: communicate, prior to transmitting a data frame from the transmitter to the receiver, an indication of an expected amount of data to be included in the frame when the frame is transmitted to the receiver at a future point in time; and transmit the frame to the receiver after communicating the indication of the expected amount of data, wherein the frame includes an amount of data corresponding to the expected amount of data, and wherein to accommodate receiving the frame having the amount of data corresponding to the expected amount of data, the receiver is configured to adjust its local receiver circuitry prior to receiving the frame from the transmitter.
35. The imaging system of claim 34, wherein: the expected amount of data is based at least in part on a prediction of an amount of event data to be included in a payload portion of the frame when the frame is transmitted to the receiver at the future point in time; and the imager further comprises a predictor block configured to generate the prediction.
36. The imaging system of claim 35, wherein: the imager further comprises an activity monitoring circuit configured to generate an activity monitoring signal representing a number of the event vision pixels in the array that have detected events at a given time; and The predictor block is configured to generate the prediction based at least in part on the activity monitoring signal.
37. The imaging system of claim 34, wherein: the frame is a second frame of event data; and To transmit the indication of the expected data amount, the imager is configured to (a) insert the indication into a first frame of event data and (b) transmit the first frame from the transmitter to the receiver prior to transmitting the second frame from the transmitter to the receiver.
38. The imaging system of claim 34, wherein: the imager further comprises a local register coupled to the receiver via a communication interface; To transmit the indication of the expected data amount to the receiver, the imager is configured to write the indication to the local register; and the receiver is configured to read the indication from the local register prior to receiving the frame from the transmitter.
39. The imaging system of claim 38, wherein the communication interface coupling the local register to the receiver (a) includes an internal integrated circuit (I2C) interface or a serial peripheral interface (SPI) and (b) is separate from the synchronous communication interface.
40. The imaging system of claim 38, wherein: the receiver is further configured to notify the imager of the adjustment of its local receiver circuitry; the imager further comprises another register separate from the local register; the imager is further configured to write to the other register future frame size values corresponding to (a) the expected data amount and (b) future frames, based at least in part on the notification of the adjustment received from the receiver; and the receiver is configured to read the future frame size values from the other register and compare the future frame size values to the expected data amount prior to receiving the frame from the transmitter.
41. The imaging system of claim 34, wherein the transmitter includes a mobile industry processor interface (MIPI) transmitter, and wherein the receiver includes a MIPI receiver.
42. The imaging system of claim 34, wherein: the imager further comprises a memory configured to store a number of frames of event data; and the expected data amount is an actual event data amount determined based at least in part on event data generated by the event vision pixel and stored in the memory.
43. The imaging system of claim 34, wherein: the imager is further configured to generate the indication of the expected data amount based at least in part on a number of event data frames stored in the memory; and the receiver is configured to read the indication from the local register prior to receiving the frame from the transmitter.
44. The imaging system of claim 34, wherein: the imager is further configured to generate the indication of the expected data amount based at least in part on a number of event data frames stored in the memory; and the receiver is configured to read the indication from the local register prior to receiving the frame from the transmitter.
45. The imaging system of claim 34, wherein: the imager is further configured to generate the indication of the expected data amount based at least in part on a number of event data frames stored in the memory; and the receiver is configured to read the indication from the local register prior to receiving the frame from the transmitter.
Citation Information
Patent Citations
Event filtering in an event sensing system
US11563909B1
Multisensor multichannel video data input device
CN205566482U
Image sensor control circuitry and image sensor control method
US20230026592A1