IP Library Granted Patent US 9,800,945
Granted Patent B2
US 9,800,945 · App. 14/696,463 · Granted Oct 24, 2017

Class-based intelligent multiplexing over unmanaged networks

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 9,800,945
App. No.
14/696,463
Granted
Oct 24, 2017
Kind
B2
Abstract

Switched digital television programming for video-on-demand and other interactive television services are combined utilizing class-based, multi-dimensional decision logic to simultaneously optimize video quality and audio uniformity while minimizing latency during user interactions with the system over an unmanaged network. For example, a method of adapting content-stream bandwidth includes generating a content stream for transmission over an unmanaged network with varying capacity; sending the content stream, via the unmanaged network, toward a client device; monitoring the capacity of the unmanaged network; determining whether an aggregate bandwidth of an upcoming portion of the content stream fits the capacity, wherein the upcoming portion of the content stream corresponds to a respective frame time and includes video content and user-interface data; and, in response to a determination that the aggregate bandwidth does not fit the capacity, reducing a size of the upcoming portion of the content stream.

Claims (34)

1. A method of adapting content-stream bandwidth, comprising: generating a content stream for transmission over an unmanaged network with varying capacity;

sending the content stream, via the unmanaged network, toward a client device;

monitoring the capacity of the unmanaged network;

determining whether an aggregate bandwidth of an upcoming portion of the content stream fits the capacity, wherein the upcoming portion of the content stream corresponds to a respective frame time and includes video content and user-interface data;

prioritizing maintaining a frame rate of the video content over latency for the user-interface data when the user-interface data is application-timer induced; and

in response to a determination that the aggregate bandwidth of the upcoming portion of the content stream does not fit the capacity, reducing a size of the upcoming portion of the content stream, comprising delaying the user-interface data, wherein the user-interface data are included in one or more portions of the content stream that come after the upcoming portion.

2. The method of claim 1 , wherein the reducing further comprises decreasing a frame rate of the video content while maintaining a quality of the video content.

3. The method of claim 1 , wherein:

the upcoming portion of the content stream further includes audio data; and

the reducing further comprises sending the audio data ahead in a portion of the content stream that precedes the upcoming portion.

4. The method of claim 1 , further comprising sending ahead, in the upcoming portion, one or more video frames for respective portions of the content stream that come after the upcoming portion.

5. The method of claim 1 , wherein:

the upcoming portion of the content stream further includes audio data; and

the reducing leaves the audio data unaffected.

6. The method of claim 1 , wherein:

sending the content stream comprises sending bursts of TCP segments; and

monitoring the capacity of the unmanaged network comprises receiving acknowledgments of the bursts, the acknowledgments including timestamps, and using the timestamps to determine the capacity of the unmanaged network.

7. The method of claim 6 , wherein using the timestamps to determine the capacity of the unmanaged network comprises:

building a histogram of arrival times in accordance with the timestamps; and

deriving the capacity from the histogram.

8. An electronic device, comprising:

one or more processors; and

memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for:

generating a content stream for transmission over an unmanaged network with varying capacity;

monitoring the capacity of the unmanaged network;

determining whether an aggregate bandwidth of an upcoming portion of the content stream fits the capacity, wherein the upcoming portion of the content stream corresponds to a respective frame time and includes video content and user-interface data;

prioritizing maintaining a frame rate of the video content over latency for the user-interface data when the user-interface data is application-timer induced; and

in response to a determination that the aggregate bandwidth of the upcoming portion of the content stream does not fit the capacity, reducing a size of the upcoming portion of the content stream, comprising delaying the user-interface data, wherein the user-interface data are included in one or more portions of the content stream that come after the upcoming portion.

9. A non-transitory computer-readable storage medium storing one or more programs configured for execution by an electronic device, the one or more programs comprising instructions for:

generating a content stream for transmission over an unmanaged network with varying capacity;

monitoring the capacity of the unmanaged network;

determining whether an aggregate bandwidth of an upcoming portion of the content stream fits the capacity, wherein the upcoming portion of the content stream corresponds to a respective frame time and includes video content and user-interface data;

prioritizing maintaining a frame rate of the video content over latency for the user-interface data when the user-interface data is application-timer induced; and

in response to a determination that the aggregate bandwidth of the upcoming portion of the content stream does not fit the capacity, reducing a size of the upcoming portion of the content stream, comprising delaying the user-interface data, wherein the user-interface data are included in one or more portions of the content stream that come after the upcoming portion.

Assignments (2)
CONVERSION OF ENTITY Recorded Feb 23, 2024
From: ACTIVEVIDEO NETWORKS, INC.
To: ACTIVEVIDEO NETWORKS, LLC
Reel/Frame 066665/0689 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2015
From: BROCKMANN, RONALD A.; HOEBEN, MAARTEN
To: ACTIVEVIDEO NETWORKS, INC.
Reel/Frame 035506/0218 →