IP Library › Granted Patent US 10,997,954
Granted Patent B2
US 10,997,954 · App. 16/520,711 · Granted May 4, 2021

Foveated rendering using variable framerates

Inventors: Samuel Benjamin Holmes (Sterling, MA); Jonathan Wicks (Louisville, CO)
Assignee: QUALCOMM Incorporated
G09G5/397G02B27/0093G06T3/0093G06T7/73G09G5/001G09G2340/0435G09G2360/18
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,997,954
App. No.
16/520,711
Granted
May 4, 2021
Kind
B2
Abstract

Example techniques are described for generating graphics content by obtaining a rendering command for a first frame of the graphics content, rendering a full frame based on the rendering command for the first frame, storing the full frame in a buffer, obtaining a rendering command for a second frame of the graphics content, obtaining an eye position of a user, rendering a partial frame based on the rendering command for the second frame and the eye position of the user, obtaining the full frame from the buffer, and outputting the second frame, wherein the second frame is based on the full frame and the partial frame.

Claims (78)

1. A device for generating graphics content, comprising:

a memory; and

a processor coupled to the memory configured to cause the device to:

obtain a rendering command for a first frame of the graphics content;

render a full frame based on the rendering command for the first frame;

store the full frame in a buffer;

obtain a rendering command for a second frame of the graphics content;

obtain an eye position of a user;

render a partial frame based on the rendering command for the second frame and the eye position of the user;

obtain the full frame from the buffer;

combine the full frame and the partial frame using a warping algorithm to generate the second frame, wherein the full frame and the partial frame are warped based on pose data of the user, and wherein the full frame is warped differently than the partial frame; and

output the second frame.

2. The device of claim 1 , the processor further configured to:

determine the pose data after rendering the full frame;

warp the full frame based on the pose data; and

output the first frame after the full frame is warped and prior to outputting the second frame.

3. The device of claim 1 , the processor further configured to:

output the first frame, wherein the first frame comprises the full frame.

4. The device of claim 1 , the processor further configured to:

store the partial frame in a second buffer that is different than the buffer; and

obtain the partial frame from the second buffer prior to outputting the second frame.

5. The device of claim 4 , wherein storing the full frame in the buffer comprises replacing data in the buffer corresponding to a previous full frame; and wherein storing the partial frame in the second buffer comprises replacing data in the second buffer corresponding to a previous partial frame.

6. The device of claim 4 , wherein the buffer is larger than the second buffer.

7. The device of claim 1 , wherein the partial frame corresponds to a region in the graphics content that is determined based on the eye position of the user.

8. The device of claim 1 , the processor further configured to:

combine the full frame and the partial frame using a blending algorithm to generate the second frame, wherein blending is performed at boundaries of the full frame and the partial frame.

9. The device of claim 1 , the processor further configured to:

store the partial frame in a second buffer;

obtain a rendering command for a third frame of the graphics content;

obtain a second eye position of the user;

render a second partial frame based on the rendering command for the third frame and the second eye position of the user;

obtain the full frame from the buffer;

obtain the partial frame from the second buffer; and

output the third frame, wherein the third frame is based on the full frame, the partial frame, and the second partial frame.

10. The device of claim 1 , further comprising a display, wherein outputting the second frame comprises outputting to the display.

11. The device of claim 1 , wherein the device is one or more of a wireless communication device, an augmented reality headset, or a virtual reality headset.

12. A method for generating graphics content comprising:

obtaining a rendering command for a first frame of the graphics content;

rendering a full frame based on the rendering command for the first frame;

storing the full frame in a buffer;

obtaining a rendering command for a second frame of the graphics content;

obtaining an eye position of a user;

rendering a partial frame based on the rendering command for the second frame and the eye position of the user;

obtaining the full frame from the buffer;

combining the full frame and the partial frame using a warping algorithm to generate the second frame, wherein the full frame and the partial frame are warped based on pose data of the user, and wherein the full frame is warped differently than the partial frame; and

outputting the second frame.

13. The method of claim 12 , further comprising:

determining the pose data after rendering the full frame;

warping the full frame based on the pose data; and

outputting the first frame after the full frame is warped and prior to outputting the second frame.

14. The method of claim 12 , further comprising:

outputting the first frame, wherein the first frame comprises the full frame.

15. The method of claim 12 , further comprising:

storing the partial frame in a second buffer that is different than the buffer; and

obtaining the partial frame from the second buffer prior to outputting the second frame.

16. The method of claim 15 , wherein storing the full frame in the buffer comprises replacing data in the buffer corresponding to a previous full frame; and wherein storing the partial frame in the second buffer comprises replacing data in the second buffer corresponding to a previous partial frame.

17. The method of claim 15 , wherein the buffer is larger than the second buffer.

18. The method of claim 12 , wherein the partial frame corresponds to a region in the graphics content that is determined based on the eye position of the user.

19. The method of claim 12 , further comprising:

combining the full frame and the partial frame using a blending algorithm to generate the second frame, wherein blending is performed at boundaries of the full frame and the partial frame.

20. The method of claim 12 , further comprising:

storing the partial frame in a second buffer;

obtaining a rendering command for a third frame of the graphics content;

obtaining a second eye position of the user;

rendering a second partial frame based on the rendering command for the third frame and the second eye position of the user;

obtaining the full frame from the buffer;

obtaining the partial frame from the second buffer; and

outputting the third frame, wherein the third frame is based on the full frame, the partial frame, and the second partial frame.

21. A non-transitory computer-readable medium for generating graphics content, the non-transitory computer-readable medium storing a program containing instructions that, when executed by a processor of a device, cause the device to perform a method comprising:

obtaining a rendering command for a first frame of the graphics content;

rendering a full frame based on the rendering command for the first frame;

storing the full frame in a buffer;

obtaining a rendering command for a second frame of the graphics content;

obtaining an eye position of a user;

rendering a partial frame based on the rendering command for the second frame and the eye position of the user;

obtaining the full frame from the buffer;

combining the full frame and the partial frame using a warping algorithm to generate the second frame, and wherein the full frame and the partial frame are warped based on pose data of the user and the full frame is warped differently than the partial frame; and

outputting the second frame.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2019
From: HOLMES, SAMUEL BENJAMIN; WICKS, JONATHAN
To: QUALCOMM INCORPORATED
Reel/Frame 049991/0198 →
Continuity (1)
Related Publication 20210027752A1 · Jan 28, 2021