IP Library Granted Patent US 10,601,686
Granted Patent B2
US 10,601,686 · App. 15/785,826 · Granted Mar 24, 2020

Systems and methods for improving quality of service while streaming code-agnostic content

Inventor: Reda Harb (Bellevue, WA)
Assignee: Rovi Guides, Inc.
H04L43/08G06F16/437H04L41/50H04L41/509H04L65/4084H04L65/604H04L65/80H04N21/23418H04N21/23439H04N21/234363H04N21/25891H04N21/44004H04N21/4424H04N21/4756H04N21/4821H04N21/8456H04N21/8543G06F3/0482
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,601,686
App. No.
15/785,826
Granted
Mar 24, 2020
Kind
B2
Abstract

Systems and methods are described for a media guidance application (e.g., implemented on a user device) that improves quality of service while streaming code-agnostic content by optimizing buffering based on bit rate.

Claims (41)

1. A method for improving quality of service while streaming code-agnostic content, the method comprising:

receiving a user input requesting a media asset;

in response to receiving the user input, identifying a first remote server on which the media asset is stored;

requesting a manifest file of the media asset from a second remote server, wherein the manifest file lists a plurality of segments that constitute the media asset, and wherein the manifest file further indicates a threshold bit rate for each segment;

determining, from the manifest file, a first segment sequence for the plurality of segments, wherein the first segment sequence corresponds to a sequence in which each segment of the plurality of segments is displayed during playback of the media asset on a local device;

determining a first threshold bit rate for a first segment of the plurality of segments and a second threshold bit rate for a second segment of the plurality of segments, wherein the first segment occurs before the second segment in the first segment sequence;

comparing the first threshold bit rate and the second threshold bitrate to determine whether the second threshold bit rate is higher than the first threshold bit rate;

determining to buffer, at the local device, the second segment before the first segment in response to determining that the second threshold bit rate is higher than the first threshold bit rate;

buffering, at the local device, the second segment before the first segment, wherein the buffering occurs while a third segment of the plurality of segments is generated for display from the buffer, and wherein the third segment occurs before both the first segment and the second segment in the first segment sequence; and

generating for display, from the buffer, the first segment before the second segment during playback of the media asset on the local device.

2. The method of claim 1 , wherein determining to buffer, at the local device, the second segment before the first segment is further in response to determining that current bandwidth conditions support buffering an additional segment of the plurality of segments while the third segment of the plurality of segments is generated for display from the buffer without stalling playback of the third segment.

3. The method of claim 1 , further comprising determining, from the manifest file, a second segment sequence for the plurality of segments, wherein the second segment sequence corresponds to a sequence in which each segment of the plurality of segments is buffered on the local device in an order based on the threshold bit rate for each segment.

4. The method of claim 1 , wherein the threshold bit rate for each segment is based on a bit rate required to maintain a predetermined minimum video resolution during playback of each respective segment, wherein the predetermined minimum video resolution for each respective segment is determined by a user preference.

5. The method of claim 1 , wherein the threshold bit rate for each segment is based on a bit rate required to maintain a predetermined minimum video resolution during playback of each respective segment, wherein the predetermined minimum video resolution for each respective segment is determined by a content provider.

6. The method of claim 1 , wherein the threshold bit rate for each segment is based on a bit rate required to maintain a predetermined minimum video resolution during playback of each respective segment, and wherein the predetermined minimum video resolution for each respective segment is determined by detecting a threshold number of different colors in each respective segment.

7. The method of claim 1 , wherein the threshold bit rate for each segment is based on a bit rate required to maintain a predetermined minimum video resolution during playback of each respective segment, and wherein the predetermined minimum video resolution for each respective segment is determined by detecting a threshold number of colors changes for a single pixel location on consecutive frames in each respective segment.

8. The method of claim 1 , further comprising:

determining a third threshold bit rate for the third segment of the plurality of segments;

comparing the first threshold bit rate and the third threshold bitrate to determine whether the first threshold bit rate is higher than the third threshold bit rate; and

determining to buffer, at the local device, the third segment before the first segment in response to determining that the third threshold bit rate is not higher than the first threshold bit rate.

9. A system for improving quality of service while streaming code-agnostic content, the system comprising:

control circuitry configured to:

receive a user input requesting a media asset;

in response to receiving the user input, identify a first remote server on which the media asset is stored;

request a manifest file of the media asset from a second remote server, wherein the manifest file lists a plurality of segments that constitute the media asset, and wherein the manifest file further indicates a threshold bit rate for each segment;

determine, from the manifest file, a first segment sequence for the plurality of segments, wherein the first segment sequence corresponds to a sequence in which each segment of the plurality of segments is displayed during playback of the media asset on a local device;

determine a first threshold bit rate for a first segment of the plurality of segments and a second threshold bit rate for a second segment of the plurality of segments, wherein the first segment occurs before the second segment in the first segment sequence;

compare the first threshold bit rate and the second threshold bitrate to determine whether the second threshold bit rate is higher than the first threshold bit rate;

determine to buffer, at the local device, the second segment before the first segment in response to determining that the second threshold bit rate is higher than the first threshold bit rate;

buffer, at the local device, the second segment before the first segment, wherein the buffering occurs while a third segment of the plurality of segments is generated for display from the buffer, and wherein the third segment occurs before both the first segment and the second segment in the first segment sequence; and

generate for display, from the buffer, the first segment before the second segment during playback of the media asset on the local device.

10. The system of claim 9 , wherein control circuitry is further configured to determine to buffer, at the local device, the second segment before the first segment is further in response to determining that current bandwidth conditions support buffering an additional segment of the plurality of segments while the third segment of the plurality of segments is generated for display from the buffer without stalling playback of the third segment.

11. The system of claim 9 , wherein control circuitry is further configured to determine, from the manifest file, a second segment sequence for the plurality of segments, wherein the second segment sequence corresponds to a sequence in which each segment of the plurality of segments is buffered on the local device in an order based on the threshold bit rate for each segment.

12. The system of claim 9 , wherein the threshold bit rate for each segment is based on a bit rate required to maintain a predetermined minimum video resolution during playback of each respective segment, wherein the predetermined minimum video resolution for each respective segment is determined by a user preference.

13. The system of claim 9 , wherein the threshold bit rate for each segment is based on a bit rate required to maintain a predetermined minimum video resolution during playback of each respective segment, wherein the predetermined minimum video resolution for each respective segment is determined by a content provider.

14. The system of claim 9 , wherein the threshold bit rate for each segment is based on a bit rate required to maintain a predetermined minimum video resolution during playback of each respective segment, and wherein the predetermined minimum video resolution for each respective segment is determined by detecting a threshold number of different colors in each respective segment.

15. The system of claim 9 , wherein the threshold bit rate for each segment is based on a bit rate required to maintain a predetermined minimum video resolution during playback of each respective segment, and wherein the predetermined minimum video resolution for each respective segment is determined by detecting a threshold number of colors changes for a single pixel location on consecutive frames in each respective segment.

16. The system of claim 9 , wherein control circuitry is further configured to:

determine a third threshold bit rate for the third segment of the plurality of segments;

compare the first threshold bit rate and the third threshold bitrate to determine whether the first threshold bit rate is higher than the third threshold bit rate; and

determine to buffer, at the local device, the third segment before the first segment in response to determining that the third threshold bit rate is not higher than the first threshold bit rate.

Assignments (7)
CHANGE OF NAME Recorded Oct 3, 2024
From: ROVI GUIDES, INC.
To: ADEIA GUIDES INC.
Reel/Frame 069106/0119 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053481/0790 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: HPS INVESTMENT PARTNERS, LLC
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053458/0749 →
SECURITY INTEREST Recorded Jun 1, 2020
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS INC.; VEVEO, INC.; INVENSAS CORPORATION; INVENSAS BONDING TECHNOLOGIES, INC.; TESSERA, INC.; TESSERA ADVANCED TECHNOLOGIES, INC.; DTS, INC.; PHORUS, INC.; IBIQUITY DIGITAL CORPORATION
To: BANK OF AMERICA, N.A.
Reel/Frame 053468/0001 →
PATENT SECURITY AGREEMENT Recorded Nov 25, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 051110/0006 →
SECURITY INTEREST Recorded Nov 22, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT
Reel/Frame 051143/0468 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2017
From: HARB, REDA
To: ROVI GUIDES, INC.
Reel/Frame 043883/0803 →
Continuity (1)
Related Publication 20190116101A1 · Apr 18, 2019