Apparatus and method for dynamic graphics rendering based on saccade detection
11 claims: 6 independent, 5 dependent
- 1A method (200) comprising:rendering (210) a computer simulated scene for display to a user;detecting (220) an onset of a saccade (310) that causes saccadic masking in an eye movement of the user viewing the computer simulated scene;predicting a duration of the saccade based on an eye movement model (450);reducing (230) a computing resource used for rendering frames of the computer simulated scene during at least a portion of the predicted duration of the saccade (312);detecting an end of the saccade;calculating a measured duration of the saccade based on at least the detected end of the saccade;comparing the measured duration of the saccade to the predicted duration of the saccade;and using results of the comparison to adjust the eye movement model (450) used to predict the duration of the saccade.
- 4The method of any one of claims 1-3, wherein the reducing of the computing resource comprises one or more of skipping one or more frames of the computer simulated scene, repeating one or more frames of the computer simulated scene, reducing a rendering detail of one or more frames of the computer simulated scene, reducing a rendering resolution of one or more frames of the computer simulated scene, and adjusting a variable frame rate for rendering the computer simulated scene.
- 10A system (100) comprising:an eye movement sensor (110);a display device (130) for displaying computer simulated scenes to a user;and a processor (101) communicatively coupled to the eye movement sensor and the display device, the processor being configured to: render a computer simulated scene for display on the display device;detect, based on signals from the eye movement sensor, an onset of a saccade (310) that causes saccadic masking in an eye movement of the user viewing the computer simulated scene;predict a duration of the saccade based on an eye movement model (450);reduce a computing resource used for rendering frames of the computer simulated scene during at least a portion of the predicted duration of the saccade (312);detect an end of the saccade;calculate a measured duration of the saccade based on at least the detected end of the saccade;compare the measured duration of the saccade to the predicted duration of the saccade;and use the results of the comparison to adjust the eye movement model used to predict the duration of the saccade.
Independent claims7
53 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
1. Field of the Invention
0001The present invention relates generally to computer generated images, and more specifically to real-time rendering of computer generated graphics.
2. Discussion of the Related Art
0002Computer rendered graphics are used to present various user interfaces and media to users. Real-time rendering of computer graphics allows the graphical content to be rendered in response to user inputs and software state changes in real-time. <patcit id="pcit0001" dnum="US20100056274A1"><text>US 2010/0056274 A1</text></patcit> discloses a method that reduces bandwidth requirements in mobile video and gaming applications by tracking a gaze fixation point of a user on a video image at a remote location. If the eye is exhibiting saccadic movement, no update in the picture information is needed, because the moving eye is almost blind due to saccadic suppression, and the method loops until the user eyes are not exhibiting saccadic movement. <patcit id="pcit0002" dnum="US2009141895A1"><text>US 2009/141895 A1</text></patcit> discloses a method and apparatus for displaying visual content on a display such that the content is comprehensible only to an authorized user. A saccade detector predicts user saccades and when the saccade detector signals a user saccade is in progress, the apparatus immediately displays distracter or disrupter images for a brief period of time. The display period used is the estimated amount of time remaining in the user saccade, minus a safety margin for the system and user variances.
SUMMARY OF THE INVENTION
0003The invention is defined by the appended claims.
0004A better understanding of the features and advantages of various embodiments of the present invention will be obtained by reference to the following detailed description and accompanying drawings which set forth an illustrative embodiment in which principles of embodiments of the invention are utilized.
BRIEF DESCRIPTION OF THE DRAWINGS
0005The above and other aspects, features and advantages of embodiments of the present invention will be more apparent from the following more particular description thereof, presented in conjunction with the following drawings wherein: <ul id="ul0001" list-style="none" compact="compact"><li><figref idref="f0001">FIG. 1</figref> is a block diagram illustrating a system for dynamic graphics rendering based on saccade detection in accordance with some embodiments of the present invention;</li><li><figref idref="f0002">FIG. 2</figref> is a flow diagram illustrating a method for dynamic graphics rendering based on saccade detection in accordance with some embodiments of the present invention;</li><li><figref idref="f0002">FIG. 3</figref> is an illustration of computing resource reduction with saccade detection in accordance with some embodiments of the present invention;</li><li><figref idref="f0003">FIG. 4</figref> is a block diagram illustrating a calibration process in accordance with some embodiments of the present invention;</li><li><figref idref="f0004">FIGS. 5A-5B</figref> are illustrations of head mounted devices in accordance with some</li></ul> embodiments of the present invention.
DETAILED DESCRIPTION
0006The human visual system has an eye motion called a saccade that is a rapid movement from one gaze position to another. During a saccade, the brain masks the signals that it receives from the optic nerve. This masking effect is generally referred to as saccadic masking. As soon as the saccade is over and the eyes have reached a stable new fixation point, the image that is sent via the optic nerve to the brain is then used to "fill in" the perceptual gap during the saccade. Other perceptual effects such as spatial updating and trans-saccadic integration also affect how the human brain perceives images around a saccade event. Spatial updating refers to the effect that a visual stimulus viewed prior to a saccade is still perceived by the brain during and after a saccade even when the visual stimulus is no longer visible. Tran-saccadic integration refers to the effect that the brain integrates visual information from two or more fixation points around saccades.
0007The saccade masking time can sometimes begin before the saccadic eye motion by some number of milliseconds (such as approximately 30 ms). The eye movement itself can last approximately 50-75 ms depending upon the magnitude of the saccade. After the eye motion stops, another approximately 30 ms of brain signal masking may occur.
0008In computer rendered virtual reality (VR) scenes, real-time image rendering takes a lot of central processing unit (CPU) and graphic processing unit (GPU) power and images are generated frequently (generally at least 60 Hz) to give a good VR perception. Therefore, rendering for VR can be very power consuming.
0009During a saccade, new images (frames) may not be perceived by a user due to saccadic masking. A saccadic masking period may easily be around 100ms to 200ms in some cases. A system that knows that a saccade masking period is occurring can avoid rendering frames of images to save computing resources and power consumption. For example, at 60 Hz rendering and a saccadic period of 100 ms, approximately 6 frames can be skipped or rendered with less computing resources during the saccade. In many VR systems, higher frame rates such as 90 Hz or 120 Hz are used. In such systems, more frames could be saved during a typical saccadic period. The total power saving of applying this technique may be related to the percentage of total VR viewing time that is taken by saccadic masking periods.
0010In addition to power saving, in some embodiments, the "saved" processing time may be used to render low frequency updates such as complex lighting calculations. Typically, scene lighting in 3D is relatively slow changing and so can be calculated with greater tolerance for latency. Since saccades are not guaranteed to occur at any specific rate, this technique is suited for long duration (several seconds) calculations where there is a statistical likelihood of getting a saccade. This technique may be used in conjunction with foveal rendering and gaze tracking.
0011Various techniques for detecting saccades will be discussed below. For example, saccades can be detected optically using a high rate sensor such as a position sensitive detector (PSD) or a Doppler Effect sensor. In some embodiments, the onset of a saccade may be detected by measuring electromyography (EMG) muscles signals on the skin close to the eye muscles.
0012A more detailed description will now be provided. Referring first to <figref idref="f0001">FIG. 1</figref>, there is shown a system for rendering images based on saccade detection that may be used to run, implement and/or execute any of the methods and techniques shown and described herein in accordance with some embodiments of the present invention. The saccade detection system 100 includes a processor 101, a memory 102, a display 130, and a sensor 110. The saccade detection system 100 may comprise, or be included with, one or more of a head mounted display ("HMD") device, an augmented reality device, a virtual reality device, a wearable device, a portable user device, a smartphone, a personal computer, a television, a tablet computer, a game console, etc. Generally, the saccade detection system 100 may comprise any processor-based device having at least one sensor.
0013The memory 102 may include one or more of a volatile and/or non-volatile computer readable memory devices. In some embodiments, the memory 102 stores computer executable code that causes the processor 101 to automatically detect an onset of a saccade and reduce the computing resource used for rendering frames of a computer simulated scene during at least a portion of a duration of the saccade. The computer readable instructions instruct the processor to detect a saccade based on information from the sensor 110. The memory 102 further stores an eye movement model that may be used to determine whether the detected eye movement constitutes a saccade that causes saccadic masking and that is used to predict a duration of the detected saccade. The eye movement model may include parameters calibrated for individual users through one or more of the calibration processes described herein. In some embodiments, the memory 102 further stores computer executable code that causes the processor 101 to provide interactive audio and video content to the user. For example, the interactive video content may be virtual reality or augmented reality content. Video content may comprise computer generated images rendered in real-time. In some embodiments, computer executable code causes the processor 101 to perform one or more steps described herein with reference to <figref idref="f0002">FIGS. 2</figref> and <figref idref="f0003">4</figref> below. In some embodiments, the memory 102 may be at least partially implemented by one or more of a local, remote, and cloud-based storage.
0014The sensor 110 may be or comprise one or more of a camera, an optical sensor, an infrared sensor, an EMG sensor, an optical reflector sensor, a range sensor, an optical flow sensor, a Doppler sensor, a microphone and the like. Generally, the sensor 110 is configured to detect a rapid eye movement such as a change in eye movement direction, acceleration, and speed. Eye movement may be tracked based on a series of detected eye gaze positions relative to the frame of the captured image and/or the head of the user. For example, the sensor 110 may capture a series of images of the pupil of an eye, and each a gaze location may be determined based on the location of the center of the pupil within the captured frame.
0015An EMG sensor is a sensor that detects the electrical potential generated by muscle cells. An EMG placed on or in proximity of the orbital or periorbital region of an eye can measure the amplitude and/or direction of eye movement based on electrical potential generated by muscles that control eye movement (e.g. the lateral rectus, the medial rectus, the inferior rectus, the superior rectus, the inferior oblique muscles, etc.). In some embodiments, the EMG sensor may be placed directly on the skin of the user over the muscle that the sensor is configured to measure. In some embodiments, the EMG sensor does not contact the skin of the user. In some embodiments, an EMG may detect an onset of a saccade based on muscle signals prior to the start of saccadic movement of the eye.
0016An optical reflector sensor may be a sensor that detects eye movement by detecting changes in light reflected off of the eyeball. For example, an optical reflector sensor may work in a similar manner as an optical track ball device. A range sensor may be any sensor configured to detect the presence of nearby objects without physical contact, such as a Doppler sensor, a passive optical sensor, an infrared sensor, a radar, and the like. Since a human eyeball is not perfectly spherical, the proximity between a sensor at a fixed distance from the skull of a user and the portion of the eyeball in the sensor's direct line-of-sight changes with eye movement. For example, the cornea of an eye is raised relative to the sclera, therefore, a shorter detected range may indicate that the cornea is in the sensor's direct line-of-sight. A microphone may be used to detect audio signals produced by eye movement. For example, amplitude of the sound produced by an eye movement may correspond to the amplitude of the eye movement. Directional eye movement may also be detected based on their respective sound profile.
0017The display 130 may be or comprise one or more of a display screen, a projection device, an augmented reality display device, a virtual reality display device, a HMD, and the like. Generally, the display 130 is configured to show computer generated graphics from the processor 101 to a user. While the display 130 is shown to be part of the saccade detection system 100, in some embodiments, the display 130 may be separately implemented from the saccade detection system 100. For example, the processor may output the generated graphics to an external display device to display to a user. The saccade detection system 100 may monitor a user's eye movement as the user views the computer generated graphics shown by the display 130 and/or real-world scenes.
0018In some embodiments, the saccade detection system 100 further includes a graphic processing unit (GPU) that may be integrated with or discrete from the processor 101. The GPU may perform at least some of the rendering calculations in generating graphics to display to a user. Generally, computing resources may refer to either or both of CPU and GPU processing resources.
0019In some embodiments, the saccade detection system 100 further includes a physical structure that holds, supports, and/or mounts the sensor 110 in a position suitable for sensing the user's eye movement. For example, in some embodiments, the physical structure may hold a camera slightly in front the user's eye or an EMG sensor directly on or in close proximity of the outer corner of the user's eye. Examples of such physical structures according to some embodiments are provided in <figref idref="f0004">FIGS. 5A-5B</figref> below. In some embodiments, only one eye is monitored, while in other embodiments, the system monitors both eyes with sets of sensors. In some embodiments, one or more of the sensors comprise multiple sensor and/or sensor types.
0020In some embodiments, the user's eye gaze may be tracked by the sensor 110 or a second sensor (not shown). For example, the system may use the sensor 110 to track the user's eye gaze positions as an input to a VR or AR system and also use the eye tracking data for saccade detection. In some embodiments, the user's eye gaze may be tracked by a camera and/or an EMG sensor, and the saccade detection is based on only the EMG sensor or another sensor not used for gaze tracking. The system may further include a sensor for detecting the end of a saccade. By way of example, the sensor for detecting the end of the saccade may be or comprise sensor 110, a sensor used for tracking eye gaze, and/or a separate sensor.
0021In some embodiments, the saccade detection system 100 may include other input/output devices such as speakers, audio output ports, keys, touch pads, touch screens, microphones, gyroscopes, wireless transceivers, and the like. In some embodiments, one or more methods and functions described herein may be performed by a remote device and communicated to the saccade detection system 100 via a wired or wireless data connection. In some embodiments, the processor 101 is configured to use the tracked eye movement and data received from a remote source to determine the content to display to the user on the display 130. For example, the processor 101 may cause the display 130 to display local or external content in an augmented reality or virtual reality manner based on the user's tracked eye movement. The processor 101 may further determine whether and how to reduce the computing resources used for rendering frames of the content based on detected saccades.
0022In some embodiments, each component shown in <figref idref="f0001">FIG. 1</figref> is enclosed and/or affixed to a portable housing such as a head mounted device (HMD) or a wearable device. In some embodiments, one or more components shown in <figref idref="f0001">FIG. 1</figref> may be separately implemented and communicate with the system through a wired or wireless connection. For example, the sensor 110 may be a sensor placed near a computer monitor or television set, and the memory 102 and the processor 101 shown in <figref idref="f0001">FIG. 1</figref> may be implemented with a personal computer system, a game console, or an entertainment system.
0023Referring to <figref idref="f0002">FIG. 2</figref>, there is illustrated an example of a method 200 for rendering images based on saccade detection. In some embodiments, steps of method 200 may be performed by one or more server devices, user devices, or a combination of server and user devices. Generally, the steps of method 200 may be performed by one or more processor-based devices such the processor 101 of the saccade detection system 100 and/or other control circuits.
0024In step 210, the system renders a computer simulated scene for display to a user. In some embodiments, the computer simulated scene is rendered in real-time based on user inputs and/or program states. In some embodiments, the computer simulated scene is rendered at a constant frame rate such as 60Hz, 90Hz, 120Hz, etc. In some embodiments, the computer simulated scene is rendered at a variable frame rate. The computer simulated scene may comprise one or more of a VR scene, an AR scene, a 3D scene, a 2D scene, and the like. The rendering of the computer simulated scene may include the rendering of 2D objects, 3D objects, backgrounds, shadows, lighting effects, user interface elements, and the like. In some embodiments, the computer simulated scene may be part of an interactive movie, a video game, a simulator software, and the like.
0025In step 220, the system detects an onset of saccade that causes saccadic masking. A saccade generally refers to a quick movement of eyes between two phases of fixation. A saccade is distinguished from other types of eye movement such as ocular tremor, ocular drift, and smooth pursuit. A saccade of sufficient magnitude causes saccadic masking in brain perception. The system may distinguish a saccade that causes saccadic masking from microsaccades, which are small involuntary eye movement. A saccade may be detected by detecting a sudden change in one or more of direction, speed, and acceleration of eye movement. In some embodiments, an EMG sensor may be used to monitor for muscle signals associated with an onset of a saccade. For example, a saccade may be detected by detecting a spike in the electrical potential generated by one or more muscles that control eye movement. In some embodiments, a saccade is detected when an acceleration of eye movement that exceeds a predetermined threshold is detected. In some embodiments, the detection of saccade may be based on an eye movement model. For example, the threshold of eye movement acceleration used for detecting saccade may be based on a user's demographic or may be calibrated for the individual user using one or more calibration methods described herein.
0026In some embodiments, a duration of the saccade is predicted after step 220. The duration of the saccade is predicted based on an eye movement model and optionally also based on a magnitude of a measurement used to detect the onset of the saccade. The eye movement model may be based on statistical data relating to durations of saccades in human eyes and/or be calibrated for the individual user. Statistical data relating to durations of saccades in human eyes may be based on a survey of the general population that provides information on the typical saccade durations of most people. In some embodiments, the duration of the saccade is predicted further based on the magnitude of the saccade at the onset. The duration of a saccade may generally correlate to the magnitude of eye movement acceleration at the onset. Therefore, the system may measure the data relating to the acceleration at the onset to predict the duration of the saccade. In some embodiments, an EMG sensor measures electrical potential generated by muscles that control eye movement and the prediction of the duration of the saccade is based on the value of the measured electrical potential. In some embodiments, the speed of eye movement may be calculated from at least two images captured by an image sensor to detect a saccade. The duration of the saccade may be predicted based on the speed of eye movement shortly after the onset of a saccade. In some embodiments, the system monitors for a peak eye movement speed and/or eye movement deceleration during a saccade and predicts the end of the saccade based on the detected peak eye movement speed and/or eye movement deceleration.
0027In step 230, the system reduces a computing resource used for rendering frames of the computer simulated scene during at least a portion of the predicted duration of the saccade. In some embodiments, the system may reduce the computing resource used for rendering frames by skipping one or more frames of the computer simulated scene, repeating one or more frames of the computer simulated scene, reducing a rendering detail of one or more frames of the computer simulated scene, reducing a rendering resolution of one or more frames of the computer simulated scene, and/or adjusting a variable frame rate for rendering the computer simulated scene. In some embodiments, the system repeats the frame generated just before the reduction period to avoid performing calculations for the frames during the reduction period. In a system with variable frame rate rendering, such as a system with a variable frame rate GPU, the system may pause rendering until the end of the saccadic masking period or render at a lower frame rate during the reduction period. In some embodiments, the system reduces the rendering details by reducing the details in the texture map, reducing the polygon count of the 3D models, and reducing lighting effects such as shadows, reflections, and subsurface scattering. In some embodiments, the frames in the reduction period may be generated with a technique similar to the reprojection technique in group of pictures (GOP) video encoding. With bidirectional projection, a B frame references images preceding and following that frame, and contains motion-compensated difference information relative to the referenced frames.
0028Generally, during the reduction period, the system renders the computer simulated scene in a way that requires fewer calculations by the CPU and/or the GPU of the system. Due to saccadic masking, spatial updating, and/or trans-saccadic perception, frames, and/or elements and details of a frame may be omitted without being perceptible to a viewer.
0029According to the invention, the reduction of computing resources used for rendering frames lasts for at least a portion of the predicted duration of a saccade. For example, with a 60Hz rendering, if a saccade is predicted to last 100ms, the reduction may last 1-6 frames. In some embodiments, the system may be configured to leave a "safe" zone at the beginning and/or the end of a detected saccade period in which the frames are rendered as normal. In some embodiments, the system may take in to effect that saccadic masking may persist for some time after the end of saccadic movement of the eye and allow the reduction period to exceed the expected duration of saccadic eye movement. In some aspects outside the scope of the claimed invention, the system does not predict the duration of the saccade and the reduction period may be set to a default minimum length for all detected saccades. For example, if only saccades having an onset magnitude that typically corresponds to at least 100ms of duration are detected in step 220, the reduction period may be set to 90ms for all detected saccades without the system predicting a duration for each detected saccade.
0030In some embodiments, in step 220, the system also determines a confidence level of the detection of the onset of the saccade. The confidence level may be based on the clarity of the measured signal and/or the magnitude of the change in one or more of eye movement direction, acceleration, and speed. In some embodiments, the system determines the amount of computing resources to reduce based on the confidence level. The amount of computing resources to reduce may be based on how many frames to skip, how many frames to repeat, how much rendering detail to omit, the rendering resolution, the rendering frame rate, etc. For example, with a high confidence level, the rendering resolution may be dropped to a fourth of the original rendering resolution; while with a low confidence level, the rendering resolution may be dropped to half of the original rendering resolution. In some embodiments, the system selects from two or more methods of reducing the computing resources for rendering frames of the computer simulated scene based on the confidence level. For example, with a high confidence level, the system may skip or repeat frames; while with a low confidence level, the system may reduce the detail of the rendered frame.
0031In some embodiments, the amount and the method of reduction may correspond to the temporal location of a frame within a saccade period. For example, less reduction may be made to frames nearer to the beginning and the end of a saccade period as compared to frames in the middle of a saccade period.
0032In some embodiments, the system is further configured to reallocate the computing resources saved in step 230 to perform low frequency update calculations for rendering the computer simulated scene. For example, the system may reallocate the computing resource to perform complex lighting calculations for the computer simulated scene. In some embodiments, the freed computing resource may be used by other application and system processes.
0033Since each individual's physiology varies, in some embodiments, prior to the process shown in <figref idref="f0002">FIG. 2</figref>, the system may lead a user through a calibration sequence to generate or configure an eye movement model individualized for the user. For example, the system may instruct a user to move their eyes from one angular position to another. The system may then compare the measurements obtained by the sensor to the expected eye movement to configure the eye movement model for that user. The eye movement model may then be used to detect a saccade that causes saccadic masking and/or predict the duration of the saccade.
0034In addition to or instead of performing a calibration sequence, after step 220, the system detects an end of a saccade period for calibration purposes. The end of a saccade period may be detected by eye tracking methods and may correspond to a return to an eye movement speed or pattern corresponding to other types of eye motion states such as fixation, ocular tremor, ocular drift, microsaccade, and smooth pursuit. The end of a saccade period may be detected by the same or a different sensor used to detect the onset of the saccade in step 220. The measured duration of a saccade period is compared to the predicted duration of the saccade to calibrate the eye movement model used to predict the duration of the saccade. A more detailed description of the calibration process is provided herein with reference to <figref idref="f0003">FIG. 4</figref> below.
0035In some embodiments, the saccade detection in <figref idref="f0002">FIG. 2</figref> may be used in conjunction with foveated rendering. Foveated rendering is a technique in which the image resolution or amount of detail varies across the image according to fixation points. When a saccade is detected, the system may asssume no fixation point during the duration of the saccade and reduce the image resolution or the amount of detail in the rendered image to a baseline value across the entire image.
0036Referring to <figref idref="f0002">FIG. 3</figref>, there is shown an illustration of reducing computing resource with saccade detection in accordance with some embodiments of the present invention. In <figref idref="f0002">FIG. 3</figref>, eye velocity or acceleration may be tracked by a sensor such as sensor 110 in <figref idref="f0001">FIG. 1</figref>. When eye velocity or acceleration exceeds a threshold, the system may detect a saccade onset 310 In some embodiments, the onset may be detected based on muscle signals prior to the increase of eye velocity or acceleration. In some embodiments, the onset of a saccade may be detected shortly after the actual beginning of the saccadic movement.
0037In some embodiments, the system also predicts a duration of the saccade 312 based on measurements at the onset of the saccade. In some embodiments, the prediction may be based on the magnitude of the acceleration at the saccade onset 310. When a saccade of a magnitude that causes saccadic masking is detected, the system may reduce the computing resource used for rendering frames by skipping one or more frames of the computer simulated scene, repeating one or more frames of the computer simulated scene, reducing a rendering detail of one or more frames of the computer simulated scene, reducing a rendering resolution of one or more frames of the computer simulated scene, and/or adjusting a variable frame rate for rendering the computer simulated scene. As shown in <figref idref="f0002">FIG. 3</figref>, the computing resource used for rendering frames of the computer simulated scene drops during a portion of the predicted duration of saccade. The computing resource line generally represent the load on the CPU and/or GPU for rendering the images. For example, the computing resource line may represent the number of calculations performed per millisecond by the CPU/GPU. The system returns the rendering method back to the normal baseline just prior to the predicted end of a saccade period. The predicted end of a saccade period may correspond to the predicted end of saccadic movement or the predicted end of the saccadic masking perceptual effect, which could last for some time after the end of the saccadic movement.
0038<figref idref="f0002">FIG 3</figref> is provided as illustrations of concepts only. <figref idref="f0002">FIG. 3</figref> does not correspond to actual saccade detection or computing resource reduction and is not necessarily to scale.
0039The reduction in computing resources during saccade periods can reduce the overall power consumption of the rendering device For portable devices using batteries, the reduction of power consumption can lead to increased battery life between charges. The computing resources may also be allocated for other uses such as high latency updates for rendering the computer simulated scenes. The computing resources may also be freed up for use by other application and/or the operating system processes running on the device.
0040Referring to <figref idref="f0003">FIG. 4</figref>, there is illustrated an example of a saccade duration prediction with feedback calibration. The sensor 420 is configured to measure one or more of eye movement direction, speed, and acceleration and provide the measurement to a saccade detection module 422. The sensor 420 may be the sensor 110 shown in <figref idref="f0001">FIG. 1</figref> and/or may comprise one or more of a camera, an optical sensor, an optical image sensor, an infrared sensor, an optical flow sensor, an EMG sensor, a position sensing device, a Doppler effect sensor, and the like.
0041The saccade detection module 422 analyzes the data from the sensor 420 to determine whether a saccade that causes saccadic masking is occurring or is about to occur. In some embodiments, saccade detection module 422 may base its determination on the eye movement model 450 or a separate model. For example, an eye movement model may include an eye movement acceleration magnitude threshold indicative of an onset of a saccade that causes saccadic masking. For embodiments with an EMG sensor, the threshold may correspond to a muscle signal voltage.
0042After an onset of a saccade is detected, the saccade duration prediction module 425 predicts the duration of the saccade. In some embodiments, the saccade duration prediction module 425 bases its prediction on one or more of the magnitude of eye movement at the onset of the saccade and a detected peak acceleration or speed of the saccade. The saccade duration prediction module 425 further bases its prediction on an eye movement model 450. The eye movement model 450 may correspond detected saccade magnitudes to saccade durations. The eye movement model 450 may initially be based on statistical data relating to durations of saccades in human eyes and later be calibrated for the individual user.
0043Also after an onset of a saccade is detected, the saccade duration measurement module 430 monitors for the end of the saccade period and calculates the duration of the saccade. The end of the saccade period may be detected by eye tracking methods and may correspond to a return of eye movement speed or pattern corresponding to other types of eye motion states such as fixation, ocular tremor, ocular drift, microsaccade, and smooth pursuit. The end of a saccade period may be detected by the sensor 420 and/or one or more other sensors. The calibration module 440 compares the predicted saccade duration from the saccade duration prediction module 425 and the measured saccade duration from the saccade duration measurement module 430 to determine the accuracy of the prediction. The calibration module 440 updates the eye movement model 450 based on the comparison. For example, if the saccade duration prediction module 425 tends to underestimate the duration of a saccade, the calibration module 440 may update the eye movement model 450 to correspond measurements at the onset of a saccade with a longer saccade duration.
0044While the eye movement model 450 is shown to be used by the saccade duration prediction module 425 in <figref idref="f0003">FIG. 4</figref>, in some embodiments, the saccade detection module 422 also uses the same or a different eye movement model 450. In some embodiments, the calibration module 440 may base its calibration on multiple saccade duration predictions and saccade duration measurements, and only update the eye movement model 450 when a trend is observed.
0045Referring to <figref idref="f0004">FIG. 5A</figref>, there is shown an illustration of an augmented reality type HMD with which the technique disclosed herein may be implemented. The HMD device 500 includes a frame 510 holding sensors 513 and 515 in positions suitable for monitoring a wearer's eye movement. While two sensors are shown in <figref idref="f0004">FIG. 5A</figref>, the techniques described herein may be implemented with HMDs having only the first sensor 513 or the second sensor 515.
0046In some embodiments, the HMD device 500 includes two sensors; one sensor is used to detect the onset of a saccade and another sensor is used to measure the duration of a saccade. In some embodiments, one sensor is used to detect both the onset of the saccade and the end of the saccade. In some aspects outside the scope of the claimed invention, the HMD does not include a sensor for detecting the end of a saccade. The HMD device 500 also includes a display device (not shown) that is configured to provide an augmented reality scene to the user. The first sensor 513 may be an optical sensor that is positioned to capture images of the user's eye. The second sensor 515 may be an EMG sensor that is either contacting or in close proximity of the temple region of the user as shown in <figref idref="f0004">FIG. 5A</figref>. An EMG sensor may be placed in other positions, for example, below the user's eye, near the inner corner of the eye, etc. In some embodiments, two or more EMG sensors may be placed in different areas. The second sensor 515 may comprise other types of sensors such as a low resolution image sensor, a high frame-rate image sensor, an optical reflector sensor, a range sensor, and a microphone. In embodiments in which the second sensor is an image or optical sensor, the second sensor 515 may be placed near the first sensor 513. The placement of sensors in <figref idref="f0004">FIG. 5A</figref> are provided as an example only.
0047Referring to <figref idref="f0004">FIG. 5B</figref>, there is shown an illustration of a virtual reality type HMD device with which the technique disclosed herein may be implemented. The HMD device 520 encloses the field of vision of the user. Sensor(s) described herein may be placed on the user facing side of the HMD. For example, an image sensor may be positioned just above the display screen inside the HMD device 520 and an EMG sensor may be positioned on a portion of the HMD device 520 resting against the orbital or periorbital areas of the user.
0048In both <figref idref="f0004">FIGS. 5A-5B</figref>, detected saccades are used by the HMD devices 500 and 520 to determine how to render computer generated graphics to display to the user. When a saccade is detected, the processor of the HMD devices 500 and 520 reduces the computing resources used for rendering frames of the computer simulated scene. The determined and estimated gaze locations may also be used to predict a future gaze location which allows the computer to determine the fixation point of the user when the next frame is displayed to facilitate foveated rendering.
0049In some embodiments, one or more of the embodiments, methods, approaches, and/or techniques described above may be implemented in one or more computer programs or software applications executable by a processor based apparatus or system. By way of example, such processor based apparatuses or systems may comprise a computer, entertainment system, game console, workstation, graphics workstation, server, client, portable device, pad-like device, etc. Such computer program(s) may be used for executing various steps and/or features of the above-described methods and/or techniques. That is, the computer program(s) may be adapted to cause or configure a processor based apparatus or system to execute and achieve the functions described above. For example, such computer program(s) may be used for implementing any embodiment of the above-described methods, steps, techniques, or features. As another example, such computer program(s) may be used for implementing any type of tool or similar utility that uses any one or more of the above described embodiments, methods, approaches, and/or techniques. In some embodiments, program code macros, modules, loops, subroutines, calls, etc., within or without the computer program(s) may be used for executing various steps and/or features of the above-described methods and/or techniques. In some embodiments, the computer program(s) may be stored or embodied on a computer readable storage or recording medium or media, such as any of the computer readable storage or recording medium or media described herein.
0050Therefore, in some embodiments the present invention provides a computer program product comprising a medium for embodying a computer program for input to a computer and a computer program embodied in the medium for causing the computer to perform or execute steps comprising any one or more of the steps involved in any one or more of the embodiments, methods, approaches, and/or techniques described herein. For example, in some embodiments the present invention provides one or more non-transitory computer readable storage mediums storing one or more computer programs adapted or configured to cause a processor based apparatus or system to execute steps comprising: rendering a computer simulated scene for display to a user, detecting an onset of a saccade that causes saccadic masking in an eye movement of the user viewing the computer simulated scene, and reducing a computing resource used for rendering frames of the computer simulated scene during at least a portion of a duration of the saccade.
0051While the invention herein disclosed has been described by means of specific embodiments and applications thereof, numerous modifications and variations could be made thereto by those skilled in the art without departing from the scope of the invention set forth in the claims.
Contents4
4 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| US2009141895A1 | Cites | United States of America |
| US2010056274A1 | Cites | United States of America |
| US2014013437A1 | Cites | United States of America |
| US2014361971A1 | Cites | United States of America |
| US8824779B1 | Cites | United States of America |
26 members in 5 offices
Priority claims3
| Document | Office | Kind | Date |
|---|---|---|---|
| 201514845862 | United States of America | – | |
| 201514845862 | United States of America | A | |
| 2016048736 | United States of America | W |
Members26
| Document | Office | Kind | |
|---|---|---|---|
| US2017068312A1 | United States of America | A1 | |
| WO2017040214A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US9857871B2 | United States of America | B2 | |
| CN107949819A | China | A | |
| US2018136722A1 | United States of America | A1 | |
| EP3341817A1 | European Patent Office (EPO) | A1 | |
| JP2018529162A | Japan | A | |
| EP3341817A4 | European Patent Office (EPO) | A4 | |
| JP6577137B2 | Japan | B2 | |
| JP2020030827A | Japan | A | |
| US10585475B2 | United States of America | B2 | |
| CN107949819B | China | B | |
| US2020201432A1 | United States of America | A1 | |
| CN111399623A | China | A | |
| EP3341817B1This record | European Patent Office (EPO) | B1 | |
| JP2021119456A | Japan | A | |
| US11099645B2 | United States of America | B2 | |
| EP3913468A1 | European Patent Office (EPO) | A1 | |
| EP3913468A4 | European Patent Office (EPO) | A4 | |
| US2021373661A1 | United States of America | A1 | |
| JP7050980B2 | Japan | B2 | |
| US11416073B2 | United States of America | B2 | |
| US2022374077A1 | United States of America | A1 | |
| US11703947B2 | United States of America | B2 | |
| EP3913468B1 | European Patent Office (EPO) | B1 | |
| CN111399623B | China | B |
78 legal events, as 8 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Opt-out of the competence of the unified patent court (upc) registeredP01 | P01 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filed against granted patent, or epo opposition proceedings concluded without decisionGrantedR097 | R097 | DE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed because of non-payment of the annual feeLapsedMM | MM | BE | |
| Patent ceasedCeasedPL | PL | CH | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Deletion acc. to par. 5 (withdrawal of the translation of the ep patent)MK05 | MK05 | AT | |
| Invalidation of extension of european patentsMG9D | MG9D | LT | |
| European patents granted designating irelandGrantedFG4D | FG4D | IE | |
| Reference to at number (ep patent validated in austria)REF | REF | AT | |
| Dpma publication of mentioned ep patent grantGrantedR096 | R096 | DE | |
| Translation for ep filed (entry of ep into country)FP | FP | NL | |
| European patent takes effect as a national patent in ch/liEP | EP | CH | |
| Designated contracting statesAK | AK | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: THE PATENT HAS BEEN GRANTEDSTAA | STAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Intention to grant announcedINTG | INTG | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: GRANT OF PATENT IS INTENDEDSTAA | STAA | EP | |
| Supplementary search report drawn up and despatchedA4 | A4 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Request for validation of the european patent (deleted)DAV | DAV | EP | |
| Request for extension of the european patent (deleted)DAX | DAX | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: REQUEST FOR EXAMINATION WAS MADESTAA | STAA | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADESTAA | STAA | EP |
Numbers
- Publication
- 3341817
- Application
- 168426534
Titles3
- German
- VORRICHTUNG UND VERFAHREN ZUR DYNAMISCHEN GRAFIKWIEDERGABE AUF DER BASIS VON SAKKADENDETEKTION
- English
- APPARATUS AND METHOD FOR DYNAMIC GRAPHICS RENDERING BASED ON SACCADE DETECTION
- French
- APPAREIL ET PROCÉDÉ DE RENDU DYNAMIQUE DE GRAPHIQUES BASÉ SUR UNE DÉTECTION DE SACCADES
Classification
- CPC, 6
- G06F1/3231
- G06F3/013
- G06F3/011
- G06F3/015
- H04N21/234345
- Y02D10/00
- IPC, 3
- G06F3 01
- G06F1 3231
- H04N21 2343
Designated states38
- Contracting states, 38
- Albania
- Austria
- Belgium
- Bulgaria
- Switzerland
- Cyprus
- Czechia
- Germany
- Denmark
- Estonia
- Spain
- Finland
- France
- United Kingdom
- Greece
- Croatia
- Hungary
- Ireland
- Iceland
- Italy
- Liechtenstein
- Lithuania
- Luxembourg
- Latvia
and 14 moreShow fewer
- Monaco
- North Macedonia
- Malta
- Netherlands (Kingdom of the)
- Norway
- Poland
- Portugal
- Romania
- Serbia
- Sweden
- Slovenia
- Slovakia
- San Marino
- Türkiye
