IP Library Granted Patent US 10,672,197
Granted Patent B2
US 10,672,197 · App. 16/658,898 · Granted Jun 2, 2020

Time-warping adjustment based on depth information in a virtual/augmented reality system

Inventor: John Paul Bates (Redwood City, CA)
Assignee: GOOGLE LLC
G06T19/20G02B27/017G06F3/012G06T3/0093G06T5/006G06T7/50G06T15/005G06T15/205H04N13/128H04N13/279H04N13/344H04N13/366H04N13/383G06T2207/10028G06T2219/2004G06T2219/2016H04N2013/0081
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,672,197
App. No.
16/658,898
Granted
Jun 2, 2020
Kind
B2
Abstract

A technique includes determining a depth value for each of a plurality of pixels of a frame, down-sampling the depth values of a tile of the frame to obtain a plurality of down-sampled depth values, the frame including one or more tiles, determining a change in a head pose, determining, from the plurality of down-sampled depth values, a down-sampled depth value for a vertex, determining an adjusted position for the vertex based on the change in head pose and the down-sampled depth value for the vertex, performing, based on at least the adjusted position for the vertex, a depth-adjusted time-warping of the frame to obtain a depth-adjusted time-warped frame, and triggering display of the depth-adjusted time-warped frame.

Claims (73)

1. A method of adjusting time-warping of a frame for a virtual reality or augmented reality system based on depth information, the method including:

determining depth values of a frame;

down-sampling the depth values of a tile of the frame to obtain a plurality of down-sampled depth values, the frame including one or more tiles;

determining a change in a head pose;

determining, from the plurality of down-sampled depth values, a down-sampled depth value for a vertex;

determining an adjusted position for the vertex based on the change in the head pose and the down-sampled depth value for the vertex;

performing, based on at least the adjusted position for the vertex, a depth-adjusted time-warping of the frame to obtain a depth-adjusted time-warped frame; and

triggering display of the depth-adjusted time-warped frame.

2. The method of claim 1 :

wherein the determining, from the plurality of down-sampled depth values, a down-sampled depth value for a vertex comprises:

determining a coordinate location of the vertex; and

determining, from the plurality of down-sampled depth values, a down-sampled depth value for the coordinate location as a down-sampled depth value for the vertex.

3. The method of claim 1 :

wherein the determining, from the plurality of down-sampled depth values, a down-sampled depth value for a vertex comprises:

determining a first coordinate location of a first vertex;

determining, from the plurality of down-sampled depth values, a first down-sampled depth value for the first coordinate location as a down-sampled depth value for the first vertex;

determining a second coordinate location of a second vertex; and

determining, from the plurality of down-sampled depth values, a second down-sampled depth value for the second coordinate location as a down-sampled depth value for the second vertex;

wherein the determining an adjusted position for the vertex comprises:

determining an adjusted position for the first vertex based on the change in head pose and the first down-sampled depth value; and

determining an adjusted position for the second vertex based on the change in the head pose and the second down-sampled depth value.

4. The method of claim 1 :

wherein the determining, from the plurality of depth values of the frame, a down-sampled depth value for a vertex comprises determining a first down-sampled depth value for a first vertex and a second down-sampled depth value for a second vertex;

wherein the determining an adjusted position for the vertex based on the change in the head pose and the down-sampled depth value for the vertex comprises:

determining an adjusted position for the first vertex and an adjusted position of the second vertex based on the first down-sampled depth value and the second down-sampled depth value, respectively; and

wherein the performing comprises performing, based on at least the adjusted position for the first vertex and the adjusted position for the second vertex, a depth-adjusted time-warping of the frame to obtain a depth-adjusted time-warped frame.

5. The method of claim 1 wherein the determining a change in a head pose comprises:

determining an initial head pose information;

rendering the frame based on the color values of the plurality of pixels and the initial head pose information;

determining, during or after the rendering, an updated head pose information, where a change in head pose is based on a difference between the updated head pose information and the initial head pose information.

6. The method of claim 1 wherein down-sampling comprises:

determining a tile for the frame; and

down-sampling the depth values of the tile to obtain one or more down-sampled depth values.

7. The method of claim 1 wherein the time-warping comprises rotational time-warping due to rotation of a user's head, and positional time-warping due to translation or change in location of a user's eyes, wherein the positional time-warping is scaled or adjusted based on a depth value for one or more of the vertexes.

8. The method of claim 1 wherein the adjusted position for the vertex is based on a position offset for the vertex, the position offset for the vertex including a positional time-warp component that is scaled or adjusted based on the down-sampled depth value for the vertex.

9. The method of claim 1 wherein the adjusted position for the vertex comprises an adjusted x, y position based on an x, y offset from an initial x, y position of the vertex.

10. The method of claim 1 wherein the determining an adjusted position for the vertex comprises:

determining, based on a transform matrix, the adjusted position for the vertex based on the change in the head pose and an initial position of the vertex, wherein the transform matrix and the adjusted position for the vertex is adjusted based on the down-sampled depth value for the vertex.

11. The method of claim 1 , wherein the vertex comprises a first vertex, wherein the first vertex and a second vertex are provided for a polygon within the frame, wherein an adjusted position is determined for each of the first vertex and the second vertex, and wherein the performing a depth-adjusted time-warping on the frame comprises performing the following for the polygon:

determining adjusted positions for pixels within the polygon by interpolating between an adjusted position of the first vertex and an adjusted position of the second vertex.

12. The method of claim 1 ;

wherein the vertex is provided at an x,y frame coordinate, and wherein the adjusted position for the vertex comprises an adjusted x, y frame coordinate of the vertex based on an x, y offset, wherein the x,y offset is determined based on the change in head pose and a depth value at the x,y coordinate at the vertex.

13. The method of claim 1 , wherein the vertex comprises a first vertex, wherein the first vertex and a second vertex are provided for a polygon within the frame,

wherein the first vertex is provided at a first x,y frame coordinate, and wherein an adjusted position for the first vertex comprises an first adjusted x, y frame coordinate of the first vertex based on a first x, y offset, wherein the first x,y offset is determined based on the change in the head pose and a depth value of the first x,y coordinate;

wherein the second vertex is provided at a second x,y frame coordinate, and wherein an adjusted position for the second vertex comprises a second adjusted x, y frame coordinate of the second vertex based on a second x, y offset, wherein the second x,y offset is determined based on the change in the head pose and a depth value of the depth x,y coordinate;

and wherein the performing a depth-adjusted time-warping on the frame comprises determining an x,y offset for one or more pixels within the polygon by interpolating between the first x,y offset of the first vertex and the second x,y offset of the second vertex.

14. The method of claim 1 :

wherein the vertex comprises a first vertex provided at a first x,y frame coordinate, wherein a second vertex is provided at a second x,y frame coordinate, the first vertex and the second vertex provided for a polygon;

wherein an adjusted position for the first vertex comprises a first adjusted x, y frame coordinate of the first vertex based on a first x, y offset that is determined based on a change in head pose and a depth value at the first x,y coordinate;

wherein an adjusted position for the second vertex comprises a second adjusted x, y frame coordinate of the second vertex based on a second x, y offset that is determined based on a change in head pose and a depth value at the second x,y coordinate;

and wherein the performing a depth-adjusted time-warping on the frame comprises:

determining an x,y offset for a pixel within the polygon by interpolating between the first x,y offset of the first vertex and the second x,y offset of the second vertex; and

adjusting a position of the pixel within the polygon based on the x,y offset for the pixel.

15. The method of claim 1 wherein the method further comprises:

generating, by a head-mounted audio visual device, a virtual world immersive experience within a virtual space; and

wherein the displaying comprises:

displaying, by the head-mounted audio visual device on a display device, the depth-adjusted time-warped frame.

16. An apparatus comprising at least one processor and at least one memory including computer instructions, when executed by the at least one processor, cause the apparatus to:

determine depth values of a frame;

down-sample the depth values of a tile of the frame to obtain a plurality of down-sampled depth values, the frame including one or more tiles;

determine a change in a head pose;

determine, from the plurality of down-sampled depth values, a down-sampled depth value for a vertex;

determine an adjusted position for the vertex based on the change in the head pose and the down-sampled depth value for the vertex;

perform, based on at least the adjusted position for the vertex, a depth-adjusted time-warping of the frame to obtain a depth-adjusted time-warped frame; and

trigger display of the depth-adjusted time-warped frame.

17. A computer program product, the computer program product comprising a computer-readable storage medium and storing executable code that, when executed by at least one data processing apparatus, is configured to cause the at least one data processing apparatus to perform a method comprising:

determining depth values of a frame;

down-sampling the depth values of a tile of the frame to obtain a plurality of down-sampled depth values, the frame including one or more tiles;

determining a change in a head pose;

determining, from the plurality of down-sampled depth values, a down-sampled depth value for a vertex;

determining an adjusted position for the vertex based on the change in the head pose and the down-sampled depth value for the vertex;

performing, based on at least the adjusted position for the vertex, a depth-adjusted time-warping of the frame to obtain a depth-adjusted time-warped frame; and

triggering display of the depth-adjusted time-warped frame.

Assignments (2)
CHANGE OF NAME Recorded Jan 23, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 051684/0198 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2019
From: BATES, JOHN PAUL
To: GOOGLE INC.
Reel/Frame 050822/0109 →
Continuity (4)
Continuation 15606569 · May 26, 2017
Provisional Application 62354443 · Jun 24, 2016
Provisional Application 62342999 · May 29, 2016
Related Publication 20200051342A1 · Feb 13, 2020
Cited By (2)
US 12,293,549 US 12,299,826