IN-BAND LATENCY DETECTION SYSTEM
There is disclosed an in-band latency detection system and method. The system comprises a motion sensor to detect movement and to generate motion data in response to the detected movement and a microcontroller programmed with instructions to apply a first time-stamp to the motion data. Upon receipt of rendered video including a preselected color, a color sensor for detects the preselected color of the at least one pixel and the microcontroller applies a second time-stamp to the detection of the preselected color to thereby calculate a time difference between the first time-stamp and the second time-stamp. The system further includes an output for outputting the time difference.
1 . An in-band latency detection system comprising:
a motion sensor to detect movement and to generate motion data in response to the detected movement;
a microcontroller programmed with instructions to apply a first time-stamp to the motion data, transmit the motion data to a computing device for rendering video based upon the motion data for presentation on a display,
an input for receiving rendered video based upon the motion data and including at least one pixel of a preselected color, the at least one pixel distinct from the scene presented by the rendered video, for presentation on the display;
the display for presenting the rendered video;
a color sensor for detecting the preselected color of the at least one pixel;
the microcontroller further programmed with instructions to:
predict a motion of a user over an interval of time;
apply a second time-stamp to the detection of the preselected color,
calculate a time difference between the first time-stamp and the second time-stamp the time difference representative of a latency between the detected movement and presentation of the rendered video,
access a prior time difference associated with a previously received rendered video, the prior time difference representative of a latency between previous detected movement and previous presentation of associated rendered video,
apply a first weight to the time difference,
apply a second weight to the prior time difference, where the second weight is less than the first weight, and
generate a weighted average of the time difference and the prior time difference; and
in response to the weighted average exceeding a threshold, increasing the interval of time over which the user's movement is predicted.
2 . The system of claim 1 further comprising at least one processor programmed with instructions to:
generate the rendered video based upon the motion data; and
set the least one pixel in the rendered video to the predetermined color.
3 - 4 . (canceled)
5 . The system of claim 1 , wherein the predicted motion is refined by applying the weighted average to the predicted motion.
6 . The system of claim 5 , wherein the rendered video is updated based upon the refined predicted motion.
7 . The system of claim 1 , wherein the at least one pixel is a plurality of pixels that makes up a shape detectable by the color sensor in the rendered video.
8 . An in-band latency detection method comprising:
detecting movement;
generating motion data in response to the detected movement;
predict a motion of a user over an interval of time applying a first time-stamp to the motion data;
transmitting the motion data to a computing device for rendering video based upon the motion data for presentation on a display,
receiving rendered video based upon the motion data and including at least one pixel of a preselected color, the at least one pixel distinct from the scene presented by the rendered video, for presentation on the display;
presenting the rendered video on the display;
detecting the preselected color of the at least one pixel;
applying a second time-stamp to the detection of the preselected color,
calculating a time difference between the first time-stamp and the second time-stamp, the time difference representative of a latency between the detected movement and presentation of the rendered video;
accessing a prior time difference associated with a previously received rendered video, the prior time difference representative of a latency between previous detected movement and previous presentation of associated rendered video;
applying a first weight to the time difference;
applying a second weight to the prior time difference, where the second weight is less than the first weight;
generating a weighted average of the time difference and the prior time difference; and
in response to the weighted average exceeding a threshold, increasing the interval of time over which the user's movement is predicted.
9 . The method of claim 8 , further comprising:
generating the rendered video based upon the motion data; and
setting the least one pixel in the rendered video to the predetermined color.
10 - 11 . (canceled)
12 . The method of claim 8 , further comprising refining the predicted motion by applying the weighted average to the predicted motion.
13 . The method of claim 12 , wherein the rendered video is updated based upon the refined predicted motion.
14 . The method of claim 8 , wherein the at least one pixel is a plurality of pixels that makes up a shape detectable by the color sensor in the rendered video.
15 . A system for detecting latency in presenting a virtual reality environment, comprising:
a motion sensor for detecting movement and generating motion data in response to the movement;
a microcontroller for applying a first time-stamp to the motion data;
an output for transmitting the motion data to a computing device for use in connection with rendering a virtual reality environment in response to the motion data;
an input for receiving rendered video of the virtual reality environment, the rendered video generated in response to the motion data and including at least one pixel set to a predetermined color, the predetermined color selected to enable detection of the at least one pixel, within the rendered video, by a color sensor;
the color sensor for detecting the at least one pixel; and
the microcontroller further for:
predict a motion of a user over an interval of time;
applying a second time-stamp to detection of the at least one pixel,
generating a latency measurement by comparing the first time-stamp and the second time-stamp, the latency measurement representative of a latency between the detected movement and presentation of the rendered video,
accessing a prior latency measurement associated with a previously received rendered video, the prior latency measurement representative of a latency between previous detected movement and previous presentation of associated rendered video,
applying a first weight to the latency measurement,
applying a second weight to the prior latency measurement, where the second weight is less than the first weight, and
in response to the weighted average exceeding a threshold, increasing the interval of time over which a user's movement is predicted.
16 . The system of claim 15 , wherein the output is further for outputting the weighted average.
17 - 18 . (canceled)
19 . The system of claim 15 , wherein the rendered video is updated based upon the predicted motion as refined by the weighted average.
20 . The system of claim 15 , wherein the at least one pixel is a plurality of pixels that make up a shape detectable by the color sensor in the rendered video.
21 . The system of claim 1 , further comprising at least one processor programmed with instructions to:
access a threshold time difference;
determine whether the time difference exceeds the threshold time difference; and
responsive to determining the time difference exceeds the threshold time difference, mark the time difference for review.
22 . The system of claim 1 , wherein the computing device is configured to modify the rendering of a video scene based on the weighted average.
23 . The system of claim 1 , wherein the computing device is configured to:
determine whether the weighted average indicates high latency; and
responsive to determining the weighted average indicates high latency, simplify the rendering of a scene in the video to perform one or more functions, the one or more functions selected from a group consisting of: rely upon less shading, rely upon fewer light sources, reduce shadows, reduce shadow depth, lower polygon counts, increase motion prediction, and any combination thereof.
24 . The system of claim 1 , wherein the computing device is configured to modify one or more aspects of a virtual reality environment including the rendered video.
25 . The system of claim 1 , wherein the predicted motion comprises a set of coordinates of the user's orientation at the time of the weighted average.