IP Library Granted Patent US 10,931,979
Granted Patent B2
US 10,931,979 · App. 16/164,128 · Granted Feb 23, 2021

Methods, devices, and systems for decoding portions of video content according to a schedule based on user viewpoint

Inventors: Bo Han (Bridgewater, NJ); Sassan Pejhan (Princeton, NJ); Vijay Gopalakrishnan (Edison, NJ); Feng Qian (Minneapolis, MN)
Assignees: AT&T Intellectual Property I, L.P.; The Trustees of Indiana University
H04N21/21805G06F3/012H04N5/23238H04N19/114H04N21/262
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,931,979
App. No.
16/164,128
Granted
Feb 23, 2021
Kind
B2
Abstract

Aspects of the subject disclosure may include, for example, determining a first viewpoint in response to detecting a user's head movement in viewing video content, determining a capacity of a network, determining a tile schedule for receiving tiles from a server over the network according to the first viewpoint and the capacity of the network, and providing the tile schedule to the server over the network. The server schedules transmitting of the tiles according to the tile schedule and provides the tiles to the client device according to the tile schedule. In addition, embodiments include decoding the tiles according to a decoding schedule, buffering the decoded tiles in a decoded frame buffer, detecting a change in viewpoint from the first viewpoint to a second viewpoint, selecting a portion of the decoded tiles according to the second viewpoint, and presenting the selected tiles. Other embodiments are disclosed.

Claims (75)

1. A client system comprising:

a video player device, comprising:

a processing system including a processor; and

a memory that stores executable instructions that, when executed by the processing system, facilitate performance of operations, the operations comprising:

determining a first viewpoint of a user in response to detecting a head movement of a user in viewing video content;

determining a capacity of a communication network;

determining a plurality of tiles to be downloaded from a video content server, according to the first viewpoint and the capacity of the communication network;

determining a tile schedule for receiving the plurality of tiles from the video content server over the communication network according to the first viewpoint and the capacity of the communication network using a rate adaptation algorithm to determine qualities of the plurality of tiles;

providing the tile schedule to the video content server over the communication network, wherein the video content server schedules transmitting of the plurality of tiles according to the tile schedule, and wherein the video content server provides the plurality of tiles to the client system according to the tile schedule;

decoding the plurality of tiles according to a decoding schedule resulting in a plurality of decoded tiles;

buffering the plurality of decoded tiles in a decoded frame buffer;

detecting a change in viewpoint by the user from the first viewpoint to a second viewpoint of the user;

selecting a portion of the plurality of decoded tiles according to the second viewpoint resulting in selected tiles; and

presenting the selected tiles.

2. The client system of claim 1 , wherein the operations comprise determining a plurality of supplemental tiles surrounding the first viewpoint, wherein the video content comprises the plurality of supplemental tiles.

3. The client system of claim 2 , wherein the operations comprise identifying a portion of the plurality of supplemental tiles comprising a group of supplemental I frames, wherein the plurality of tiles in the tile schedule comprises the portion of the plurality of supplemental tiles.

4. The client system of claim 3 , wherein the decoding the plurality of tiles comprising decoding the plurality of tiles according the group of supplemental I frames.

5. The client system of claim 1 , wherein the operations comprise identifying a group of frames according to the second viewpoint resulting in an identified group of frames, wherein the selecting of the portion of the plurality of decoded tiles comprises selecting the portion of the plurality of decoded tiles corresponding to the identified group of frames.

6. The client system of claim 1 , wherein the client system comprises one of a virtual reality headset, mobile device, communication device, set top box, media processor, or any other video content rendering device.

7. The client system of claim 1 , wherein the video content comprises panoramic video content, 360 degree video content, or less than 360 degree video content.

8. The client system of claim 1 , wherein the operations comprise detecting the decoded frame buffer is full with the plurality of decoded tiles.

9. The client system of claim 8 , wherein the operations comprise:

identifying a first decoded tile from the plurality of decoded tiles, wherein the first decoded tile contains a portion of the video content that is not in the first viewpoint, wherein the plurality of decoded tiles comprises the first decoded tile; and

removing the first decoded tile from the decoded frame buffer.

10. The client system of claim 8 , wherein the operations comprise:

identifying a second decoded tile from the plurality of decoded tiles, wherein the second decoded tile contains a portion of the video content that is not in the second viewpoint, wherein the plurality of decoded tiles comprises the second decoded tile; and

removing the second decoded tile from the decoded frame buffer.

11. The client system of claim 1 , wherein the operations comprise:

identifying a playback time for each of the plurality of tiles resulting in a group of playback times for each of the plurality of tiles; and

generating the decoding schedule according to the group of playback times.

12. The client system of claim 1 , wherein the operations comprise:

determining a waiting time for each of the plurality of tiles resulting in a group of waiting times; and

generating the decoding schedule according to the group of waiting times.

13. A non-transitory machine-readable medium, comprising executable instructions that, when executed by a processing system including a processor of a client device, facilitate performance of operations, the operations comprising:

determining a first viewpoint of a user in response to detecting a head movement of the user in viewing video content;

determining a capacity of a communication network;

determining a plurality of tiles to be downloaded from a video content server, according to the first viewpoint and the capacity of the communication network;

determining a tile schedule for receiving the plurality of tiles from the video content server over the communication network according to the first viewpoint and the capacity of the communication network using a rate adaptation algorithm to determine qualities of the plurality of tiles;

providing the tile schedule to the video content server over the communication network, wherein the video content server schedules transmitting of the plurality of tiles according to the tile schedule, and wherein the video content server provides the plurality of tiles to the processing system according to the tile schedule;

identifying a playback time for each of the plurality of tiles resulting in a group of playback times for each of the plurality of tiles;

generating a decoding schedule according to the group of playback times;

decoding the plurality of tiles according to the decoding schedule resulting in a plurality of decoded tiles;

buffering the plurality of decoded tiles in a decoded frame buffer;

detecting a change in viewpoint by the user from the first viewpoint to a second viewpoint of the user;

selecting a portion of the plurality of decoded tiles according to the second viewpoint resulting in selected tiles; and

presenting the selected tiles.

14. The non-transitory machine-readable medium of claim 13 , wherein the operations comprise detecting the decoded frame buffer is full with the plurality of decoded tiles.

15. The non-transitory machine-readable medium of claim 14 , identifying a first decoded tile from the plurality of decoded tiles, wherein the first decoded tile contains a portion of the video content that is not in the first viewpoint, wherein the plurality of decoded tiles comprises the first decoded tile; and

removing the first decoded tile from the decoded frame buffer.

16. The non-transitory machine-readable medium of claim 14 , wherein the operations comprise:

identifying a second decoded tile from the plurality of decoded tiles, wherein the second decoded tile contains a portion of the video content that is not in the second viewpoint, wherein the plurality of decoded tiles comprises the second decoded tile; and

removing the second decoded tile from the decoded frame buffer.

17. A method, comprising:

determining, by a processing system including a processor of a client device, a first viewpoint of a user in response to detecting a head movement of the user in viewing video content;

determining, by the processing system, a capacity of a communication network;

determining, by the processing system, a plurality of tiles to be downloaded from a video content server, according to the first viewpoint and the capacity of the communication network;

determining, by the processing system, a tile schedule for receiving the plurality of tiles from the video content server over the communication network according to the first viewpoint and the capacity of the communication network using a rate adaptation algorithm to determine qualities of the plurality of tiles;

providing, by the processing system, the tile schedule to the video content server over the communication network, wherein the video content server schedules transmitting of the plurality of tiles according to the tile schedule, and wherein the video content server provides the plurality of tiles to the processing system;

decoding, by the processing system, the plurality of tiles according to a decoding schedule resulting in a plurality of decoded tiles;

detecting, by the processing system, that a decoded frame buffer is full with the plurality of decoded tiles;

identifying, by the processing system, a first decoded tile from the plurality of decoded tiles, wherein the first decoded tile contains a portion of the video content that is not in the first viewpoint, wherein the plurality of decoded tiles comprises the first decoded tile;

removing, by the processing system, the first decoded tile from the decoded frame buffer;

buffering, by the processing system, the plurality of decoded tiles in the decoded frame buffer;

detecting, by the processing system, a change in viewpoint by the user from the first viewpoint to a second viewpoint of the user;

selecting, by the processing system, a portion of the plurality of decoded tiles according to the second viewpoint resulting in selected tiles; and

presenting, by the processing system, the selected tiles.

18. The method of claim 17 , comprising:

identifying, by the processing system, a second decoded tile from the plurality of decoded tiles, wherein the second decoded tile contains a portion of the video content that is not in the second viewpoint, wherein the plurality of decoded tiles comprises the first decoded tile; and

removing, by the processing system, the first decoded tile from the decoded frame buffer.

19. The method of claim 17 , comprising:

identifying, by the processing system, a playback time for each of the plurality of tiles resulting in a group of playback times for each of the plurality of tiles; and

generating, by the processing system, the decoding schedule according to the group of playback times.

20. The method of claim 17 , comprising:

determining, by the processing system, a waiting time for each of the plurality of tiles resulting in a group of waiting times; and

generating, by the processing system, the decoding schedule according to the group of waiting times.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2018
From: HAN, BO; PEJHAN, SASSAN; GOPALAKRISHNAN, VIJAY
To: AT&T INTELLECTUAL PROPERTY I, L.P.
Reel/Frame 047518/0260 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2018
From: QIAN, FENG
To: THE TRUSTEES OF INDIANA UNIVERSITY
Reel/Frame 047370/0749 →
Continuity (1)
Related Publication 20200128279A1 · Apr 23, 2020
Cited By (3)
US 12,309,434 US 12,335,553 US 12,445,665