Method computer program and driver unit for streaming gaze data packets
11716365 · 2023-08-01
Assignee
Inventors
Cpc classification
H04Q9/00
ELECTRICITY
G06F3/017
PHYSICS
H04L67/10
ELECTRICITY
International classification
G02B27/00
PHYSICS
Abstract
Data packets containing gaze data are streamed from an eyetracker to a client via a driver unit by receiving, repeatedly, gaze data packets in a first interface; and, providing, repeatedly, via a second interface, gaze data packets. The client sends a request message to the driver unit. The request message defines a delivery point in time in a first time frame structure at which delivery point in time in each frame of the first time frame structure the gaze data packet shall be provided to the client via the second interface. An offset is calculated between a reception point in time and the delivery point in time. The reception point in time indicates when a gaze data packet is received from the eyetracker relative to the first time structure. An adjusted data acquisition instance is assigned based on the offset. The adjusted data acquisition instance represents a modified point in time in a second time frame structure when at least one future gaze data packet shall be produced by the eyetracker. The driver unit sends a control message to the eyetracker. The control message is adapted to cause the eyetracker to produce the at least one future gaze data packet at such an adjusted acquisition instance in the second time structure that the reception point in time for the at least one future gaze data packet is expected to lie within a margin prior to the delivery point in time.
Claims
1. A method performed in a driver unit for streaming gaze data packets containing gaze data from an eyetracker to a client, the method comprising: receiving, repeatedly, in a first interface, gaze data packets from the eyetracker, and providing, repeatedly, via a second interface, the gaze data packets to the client, wherein providing the gaze data packets to the client comprises: receiving a request message from the client, which request message defines a delivery point in time at which a respective one of the gaze data packets shall be provided, in each frame of a first time frame structure, to the client via the second interface; calculating an offset, in the first time frame structure, between (i) a reception point in time indicating when a gaze data packet is received from the eyetracker relative to the first time frame structure and (ii) the delivery point in time at which the gaze data packet shall be provided to the client; assigning an adjusted data acquisition instance based on the offset, the adjusted data acquisition instance representing a modified point in time in a second time frame structure when at least one future gaze data packet shall be produced by the eyetracker; and sending a control message to the eyetracker, which control message is adapted to cause the eyetracker to produce the at least one future gaze data packet at the adjusted acquisition instance in the second time frame structure, such that the reception point in time for the at least one future gaze data packet is expected to lie within a margin prior to the delivery point in time; and synchronizing the second time frame structure to the first time frame structure such that the first time frame structure and the second time frame structure share a common time base reference, wherein the adjusted acquisition instance in the second time frame structure when the at least one future gaze packet shall be produced by the eyetracker is such that an expected reception point in time indicating when the at least one future gaze data packet is received from the eyetracker is at least a safety time prior to the delivery point in time.
2. The method of claim 1, wherein the synchronizing of the second time frame structure to the first time frame structure comprises adjusting an interval between consecutive data acquisition instances to match a period of the first time frame structure.
3. The method of claim 1, wherein the first time frame structure is synchronized to a first time base reference different from a second time base reference to which the second time frame structure is synchronized, and the method further comprises: calculating, repeatedly, an updated offset between the reception point in time and the delivery point in time; and if the updated offset does not lie within the margin prior to the delivery point in time, sending an updated control message to the eyetracker, wherein the updated control message is adapted to cause the eyetracker to produce the at least one future gaze data packet at the adjusted acquisition instance in the second time frame structure, such that the reception point in time for the at least one future gaze data packet is expected to lie within the margin prior to the delivery point in time.
4. The method of claim 1, wherein assigning the adjusted data acquisition instance is further based on a latency in the eyetracker and a transmission delay between the eyetracker and the driver unit.
5. A non-transitory computer-readable storage medium comprising computer-executable instructions which when executed by a processor cause the processor to perform operations comprising: receiving, repeatedly, in a first interface, gaze data packets from an eyetracker, and providing, repeatedly, via a second interface, the gaze data packets to a client, wherein providing the gaze data packets to the client comprises: receiving a request message from the client, which request message defines a delivery point in time at which a respective one of the gaze data packets shall be provided, in each frame of a first time frame structure, to the client via the second interface; calculating an offset, in the first time frame structure, between aa reception point in time indicating when a gaze data packet is received from the eyetracker relative to the first time frame structure and (ii) the delivery point in time at which the gaze data packet shall be provided to the client; assigning an adjusted data acquisition instance based on the offset, the adjusted data acquisition instance representing a modified point in time in a second time frame structure when at least one future gaze data packet shall be produced by the eyetracker; and sending a control message to the eyetracker, which control message is adapted to cause the eyetracker to produce the at least one future gaze data packet at the adjusted acquisition instance in the second time structure, such that the reception point in time for the at least one future gaze data packet is expected to lie within a margin prior to the delivery point in time; and synchronizing the second time frame structure to the first time frame structure such that the first time frame structure and the second time frame structure share a common time base reference, wherein the adjusted acquisition instance in the second time frame structure when the at least one future gaze packet shall be produced by the eyetracker is such that an expected reception point in time indicating when the at least one gaze data packet is received from the eyetracker is at least a safety time prior to the delivery point in time.
6. A driver unit adapted to stream gaze data packets containing gaze data from an eyetracker to a client, the driver unit comprising: a first interface configured to receive, repeatedly, gaze data packets from the eyetracker, a second interface configured to provide, repeatedly, the gaze data packets to the client; and processing circuitry configured to control a functioning of the driver unit, wherein the driver unit is configured to: receive a request message from the client, which request message defines a delivery point in time at which a respective one of the gaze data packets shall be provided, in each frame of a first time frame structure, to the client via the second interface; calculate an offset, in the first time frame structure, between (i) a reception point in time indicating when a gaze data packet is received from the eyetracker relative to the first time frame structure and (ii) the delivery point in time at which the gaze data packet shall be provided to the client; assign an adjusted data acquisition instance based on the offset, the adjusted data acquisition instance representing a point in time in a second time frame structure when at least one future gaze data packet shall be produced by the eyetracker; and send a control message, via a control interface, to the eyetracker, which control message is adapted to cause the eyetracker to produce the at least one future gaze data packet at the adjusted acquisition instance in the second time frame structure such that the reception point in time for the at least one future gaze data packet is expected to lie within a margin prior to the delivery point in time, wherein the driver unit and the eyetracker are connected to a common clock generator configured to provide a common time base reference for the first and second frame structures, and wherein the adjusted acquisition instance in the second time frame structure when the at least one future gaze packet shall be produced by the eyetracker is such that an expected reception point in time indicating when the at least one gaze data packet is received from the eyetracker is at least a safety time prior to the delivery point in time.
7. The driver unit of claim 6, wherein the driver unit is connected to a first clock generator configured to provide a first time base reference for the first frame structure and the eyetracker is connected to a second clock generator configured to provide a second time base reference for the second frame structure, and the processing circuitry is further configured to: calculate, repeatedly, an updated offset between the reception point in time and the delivery point in time; and if the updated offset does not lie within the margin prior to the delivery point in time, send an updated control message to the eyetracker, wherein the updated control message is adapted to cause the eyetracker to produce at least one future gaze data packet at the adjusted acquisition instance in the second time structure such that the reception point in time for the at least one future gaze data packet is expected to lie within the margin prior to the delivery point in time.
8. The driver unit of claim 6, wherein the processing circuitry is configured to assign the adjusted data acquisition instance further based on of a latency in the eyetracker and a transmission delay between the eyetracker and the driver unit.
9. The non-transitory computer-readable storage medium of claim 5, wherein the synchronizing of the second time frame structure to the first time frame structure comprises adjusting an interval between consecutive data acquisition instances to match a period of the first time frame structure.
10. The non-transitory computer-readable storage medium of claim 5, wherein the first time frame structure is synchronized to a first time base reference different from a second time base reference to which the second time frame structure is synchronized, wherein the operations further comprise: calculating, repeatedly, an updated offset between the reception point in time and the delivery point in time; and if the updated offset does not lie within the margin prior to the delivery point in time, sending an updated control message to the eyetracker, wherein the updated control message is adapted to cause the eyetracker to produce at least one future gaze data packet at the adjusted acquisition instance in the second time frame structure such that the reception point in time for the at least one future gaze data packet is expected to lie within the margin prior to the delivery point in time.
11. The non-transitory computer-readable storage medium of claim 5, wherein assigning the adjusted data acquisition instance is further based on a latency in the eyetracker and a transmission delay between the eyetracker and the driver unit.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The invention is now to be explained more closely by means of preferred embodiments, which are disclosed as examples, and with reference to the attached drawings.
(2)
(3)
(4)
(5)
(6)
(7)
DETAILED DESCRIPTION
(8)
(9) The driver unit 110, in turn, contains a processing circuitry 116, which for example may include one or more general-purpose processors. The processing circuitry 116 is further preferably communicatively connected to a data carrier 114 in the form computer-readable storage medium, such as a Random Access Memory (RAM), a Flash memory, or the like. The data carrier 114 contains computer-executable instructions, i.e. a computer program 115, for causing the processing circuitry 116 to perform in accordance with the embodiments of the invention as described herein, when the computer-executable instructions are executed in the processing circuitry 116.
(10) The driver unit 110 is adapted to stream gaze data packets D.sub.GT(i) from the eyetracker 120 to the client 130. The gaze data packets D.sub.GT(i) contain gaze data, i.e. typically information relating to how at least one eye of a user is moved relative to the user's head and/or how a gaze point of a user is moved across a particular surface, e.g. a display.
(11) Referring now also to
(12) The processing circuitry 116 is configured to control the overall functioning of the driver unit 110. Inter alia, this means that the processing circuitry 116 controls the driver unit 110 to receive a request message m.sub.req from the client 130. The request message m.sub.req defines a delivery point in time t.sub.D1 in a first time frame structure FS1. The delivery point in time designates t.sub.D1 when, in each frame of the first time frame structure FS1 the gaze data packet shall be provided to the client 130 via the second interface 112 in order to best suit a functionality being implemented in the client 130, such as for example an input device for human-computer interaction in the form of a head-mounted display (HUD).
(13) Additionally, the processing circuitry 116 is configured to calculate an offset t.sub.L1 between a reception point in time t.sub.R and the delivery point in time t.sub.D1. The reception point in time t.sub.R indicates when a gaze data packet is received from the eyetracker 120 relative to the first time structure FS1. Based on the offset t.sub.L1, the processing circuitry 116 is configured to assign an adjusted data acquisition instance t.sub.DAcq′, which represents a point in time in a second time frame structure FS2 when at least one future gaze data packet. D.sub.GT(2) and D.sub.GT(3) in
(14) Via a control interface 118, the driver unit 110 is configured to send a control message m.sub.ctrl to the eyetracker 120. The control message m.sub.ctrl is adapted to cause the eyetracker 120 to produce the at least one future gaze data packet D.sub.GT(2) and D.sub.GT(3) at such an adjusted acquisition instance t.sub.DAcq′ in the second time structure FS2 that the reception point in time t.sub.R for each of the at least one future gaze data packet D.sub.GT(2) and D.sub.GT(3) is expected to lie within a margin t.sub.m prior to the delivery point in time t.sub.D1. Thus, the eyetracker 120 regards the control message m.sub.ctrl as an instruction for setting its timing of the gaze data recording occasion. This adjustments enables use of the freshest possible gaze data to be delivered in the client 130 when such data are requested.
(15) To safeguard that the future gaze data packets D.sub.GT(2) and D.sub.GT(3) do not arrive with too small a margin to the delivery point in time t.sub.D1—and thus enable the client 130 to handle the gaze data being carried in these data packets D.sub.GT(2) and D.sub.GT(3)—the adjusted acquisition instance t.sub.DAcq′ in the second time structure FS2 is preferably set such that the expected reception point in time t.sub.R is at least a safety time t.sub.SAFE prior to the delivery point in time t.sub.D1.
(16) In
(17)
(18) Thus, in contrast to the first embodiment of the invention, in
(19) Here, since a stable temporal relationship between the first and second frame structures FS1 and FS2 neither can be guaranteed nor be expected, the processing circuitry 116 is further configured to execute the following procedure. An updating of the offset t.sub.L1 between the reception point in time t.sub.R and the delivery point in time t.sub.D1 is calculated repeatedly. If the updated offset t.sub.L1 does not lie within the margin t.sub.m prior to the delivery point in time t.sub.D1, the processing circuitry 116 is configured to send an updated control message m.sub.ctrl.sup.+ to the eyetracker 120. The updated control message m.sub.ctrl.sup.+ is adapted to cause the eyetracker 120 to produce at least one future gaze data packet at such an adjusted acquisition instance t.sub.DAcq′ in the second time structure FS2 that the reception point in time t.sub.R for the at least one future gaze data packet is expected to lie within the margin t.sub.m prior to the delivery point in time t.sub.D1.
(20)
(21) According to one embodiment of the invention, the processing circuitry 116 is configured to assign the adjusted data acquisition instance t.sub.DAcq′ on the further basis of a latency t.sub.L2 in the eyetracker 120 and a transmission delay between the eyetracker 120 and the driver unit 110, i.e. the time difference between the reception point in time t.sub.R and a point in time t.sub.D2 in the second frame structure FS2 when the gaze data packets D.sub.GT(2) and D.sub.GT(3) are sent out from the eyetracker 120.
(22) Consequently, the data path between the eyetracker 120 and the driver unit 110 is modeled adequately, and the timing of the gaze data in the client 130 can be made even more accurate with respect to the client's 130 requested delivery point in time t.sub.D1 in a first time frame structure FS1 as expressed in the request message m.sub.req.
(23) In order to sum up, and with reference to the flow diagram in
(24) A first step 610, checks if a request message has been received from the client. If so, a step 620 follows; and otherwise, the procedure loops back and stays in step 610. The request message defines a delivery point in time in a first time frame structure at which delivery point in time in each frame of the first time frame structure the gaze data packet shall be provided to the client.
(25) In step 620, an offset is calculated between a reception point in time and the delivery point in time. Then, in a step 630, an adjusted data acquisition instance is assigned based on the offset. The adjusted data acquisition instance represents a modified point in time in a second time frame structure when at least one future gaze data packet shall be produced by the eyetracker.
(26) Subsequently, in a step 640, a control message is sent to the eyetracker. The control message is adapted to cause the eyetracker to produce at least one future gaze data packet at such an adjusted acquisition instance in the second time structure that the reception point in time for the at least one future gaze data packet is expected to lie within a margin prior to the delivery point in time.
(27) Thereafter, according to the general method of the invention, the procedure loops back to step 610. However, if the eyetracker and the client use different time base references, a step 650 may follow.
(28) In step 650, an updated offset is calculated between the reception point in time and the delivery point in time. Then, a step 660, checks if the offset lies within the margin prior to the delivery point in time. If so, the procedure loops back to step 610. Otherwise, a step 670 follows in which an updated control message is sent to eyetracker for adjusting its data acquisition instance to lie within the margin prior to the delivery point in time.
(29) Subsequently, the procedure loops back to step 610.
(30) All of the process steps, as well as any sub-sequence of steps, described with reference to
(31) The term “comprises/comprising” when used in this specification is taken to specify the presence of stated features, integers, steps or components. However, the term does not preclude the presence or addition of one or more additional features, integers, steps or components or groups thereof.
(32) The invention is not restricted to the described embodiments in the figures, but may be varied freely within the scope of the claims.