IP Library Granted Patent US 10,120,187
Granted Patent B2
US 10,120,187 · App. 15/047,568 · Granted Nov 6, 2018

Sub-frame scanout for latency reduction in virtual reality applications

Inventors: Craig Michael Wittenbrink (Palo Alto, CA); Ziyad Sami Hakura (San Jose, CA)
Assignee: NVIDIA CORPORATION
G02B27/01G06F3/011G06F3/14G06F9/451G09G5/00G09G3/003G09G5/18G09G5/363G09G2350/00G09G2360/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,120,187
App. No.
15/047,568
Granted
Nov 6, 2018
Kind
B2
Abstract

A system, computer readable medium, and method for sub-frame scan-out are disclosed. The method includes the steps of dividing a frame into a plurality of slices. For each slice in the plurality of slices, the steps further include sampling a sensor associated with a head mounted display to generate sample data corresponding to the slice; adjusting one or more parameters associated with rendering operations for the slice based on the sample data; and rendering primitive data associated with a model according to the rendering operations to generate image data for the slice. Each slice is a portion of the frame and corresponds to different sample data from the sensor. Thus, adjusting of the parameters is different for each slice of the frame.

Claims (40)

1. A method, comprising:

dividing a frame into a plurality of slices, wherein each slice is a portion of the frame; and

for each slice in the plurality of slices:

sampling a sensor associated with a head mounted display to generate sample data corresponding to the slice,

adjusting a viewport associated with rendering operations for the slice based on the sample data,

rendering primitives associated with a model according to the viewport and rendering operations to generate image data for the slice,

wherein the sampling, adjusting, and rendering is performed for each slice in the plurality of slices based on different sample data from the sensor for each slice in the frame, and the viewport changes for at least one slice of the plurality of slices.

2. The method of claim 1 , wherein the sensor comprises a multi-axis accelerometer.

3. The method of claim 1 , wherein the sensor comprises one or more of a gyroscope, an accelerometer, and a magnetometer.

4. The method of claim 1 , wherein the head mounted display comprises a first LCD display for a left eye of a viewer and a second LCD display for a right eye of a viewer.

5. The method of claim 1 , further comprising displaying the image data for each slice on at least one display device in the head mounted display.

6. The method of claim 5 , wherein the image data for a first slice is displayed on the at least one display device in the head mounted display substantially simultaneously with rendering the primitive data for a second slice on a graphics processing unit.

7. The method of claim 6 , wherein sample data for a third slice is read by a processor substantially simultaneously with rendering the primitive data for the second slice on the graphics processing unit and displaying the image data for the first slice on the at least one display device in the head mounted display.

8. The method of claim 1 , wherein the head mounted display includes a system on a chip (SoC) that includes at least one CPU core and a plurality of GPU cores.

9. The method of claim 1 , wherein the head mounted display is communicatively coupled to a device that includes a processor and a graphics processing unit, and wherein the image data is rendered on the device and transmitted to the head mounted display via a communications interface.

10. The method of claim 9 , wherein the communications interface is a wireless interface.

11. A non-transitory, computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform steps comprising:

dividing a frame into a plurality of slices, wherein each slice is a portion of the frame; and

for each slice in the plurality of slices:

sampling a sensor associated with a head mounted display to generate sample data corresponding to the slice,

adjusting a viewport associated with rendering operations for the slice based on the sample data,

rendering primitives associated with a model according to the viewport and rendering operations to generate image data for the slice,

wherein the sampling, adjusting, and rendering is performed for each slice in the plurality of slices based on different sample data from the sensor for each slice in the frame, and the viewport changes for at least one slice of the plurality of slices.

12. The computer-readable storage medium of claim 11 , wherein the head mounted display comprises a first LCD display for a left eye of a viewer and a second LCD display for a right eye of a viewer.

13. The computer-readable storage medium of claim 11 , further comprising displaying the image data for each slice on at least one display device in the head mounted display.

14. The computer-readable storage medium of claim 13 , wherein the image data for a first slice is displayed on the at least one display device in the head mounted display substantially simultaneously with rendering the primitive data for a second slice on a graphics processing unit.

15. The computer-readable storage medium of claim 14 , wherein sample data for a third slice is read by a processor substantially simultaneously with rendering the primitive data for the second slice on the graphics processing unit and displaying the image data for the first slice on the at least one display device in the head mounted display.

16. The computer-readable storage medium of claim 11 , wherein the head mounted display includes a system on a chip (SoC) that includes at least one CPU core and a plurality of GPU cores.

17. A system, comprising:

a head mounted display; and

at least one processor configured to:

divide a frame into a plurality of slices, wherein each slice is a portion of the frame, and

for each slice in the plurality of slices:

sample a sensor associated with the head mounted display to generate sample data corresponding to the slice,

adjust a viewport associated with rendering operations for the slice based on the sample data,

render primitives associated with a model according to the viewport and rendering operations to generate image data for the slice,

wherein the sampling, adjusting, and rendering is performed for each slice in the plurality of slices based on different sample data from the sensor for each slice in the frame, and the viewport changes for at least one slice of the plurality of slices.

18. The system of claim 17 , wherein the at least one processor comprises a system on a chip (SoC) that includes at least one CPU core and a plurality of GPU cores, and wherein the at least one CPU core is configured to adjust the viewport associated with rendering operations for the slice and the plurality of GPU cores are configured to render primitive data associated with the model to generate image data for the slice.

19. The system of claim 17 , wherein the head mounted display comprises a first LCD display for a left eye of a viewer and a second LCD display for a right eye of a viewer.

20. The system of claim 17 , wherein the image data for a first slice is displayed on the head mounted display substantially simultaneously with rendering the primitive data for a second slice.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2016
From: WITTENBRINK, CRAIG MICHAEL; HAKURA, ZIYAD SAMI
To: NVIDIA CORPORATION
Reel/Frame 037771/0214 →
Continuity (1)
Related Publication 20170243319A1 · Aug 24, 2017
Cited By (2)
US 12,228,742 US 12,578,579