IP Library Granted Patent US 10,506,298
Granted Patent B2
US 10,506,298 · App. 15/791,198 · Granted Dec 10, 2019

Class-based intelligent multiplexing over unmanaged networks

Inventors: Ronald A. Brockmann (Los Gatos, CA); Maarten Hoeben (Amersfoort, NL)
Assignee: ACTIVEVIDEO NETWORKS, INC.
H04N21/64738H04L29/08954H04L67/322H04N21/233H04N21/2335H04N21/23406H04N21/23418H04N21/234345H04N21/234381H04N21/2402H04N21/2407H04N21/26216H04N21/44209H04N21/6373H04N21/6379H04N21/64769H04N21/6583H04N21/8456
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,506,298
App. No.
15/791,198
Granted
Dec 10, 2019
Kind
B2
Abstract

A method of adapting content-stream bandwidth includes generating a content stream for transmission over an unmanaged network with varying capacity and sending the content stream toward a client device. The method includes monitoring the capacity of the unmanaged network and determining whether an aggregate bandwidth of an upcoming portion of the content stream fits the capacity. The upcoming portion of the content stream includes video content and user-interface data. The method further includes, in response to a determination that the aggregate bandwidth of the upcoming portion of the content stream does not fit the capacity, prioritizing low latency for the user-interface data over maintaining a frame rate of the video content when the user-interface data is the result of a user interaction and reducing a size of the upcoming portion of the content stream in accordance with the prioritizing. The reducing comprises decreasing the frame rate of the video content.

Claims (51)

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 includes video content and user-interface data;

in response to a determination that the aggregate bandwidth of the upcoming portion of the content stream does not fit the capacity:

when the user-interface data is the result of a user interaction:

prioritizing low latency for the user-interface data over maintaining a frame rate of the video content; and

reducing a size of the upcoming portion of the content stream in accordance with the prioritizing, the reducing comprising decreasing the frame rate of the video content;

determining whether decreasing the frame rate of the video content sufficiently reduces the aggregate bandwidth of the upcoming portion of the content stream; and

in response to determining that decreasing the frame rate of the video content does not sufficiently reduce the aggregate bandwidth of the upcoming portion of the content stream, decreasing a frame rate of the user-interface data.

2. The method of claim 1 , wherein the upcoming portion of the content stream corresponds to a respective frame time.

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

4. The method of claim 1 , wherein:

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

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

5. The method of claim 1 , wherein the reducing further comprises spreading the user-interface data over the upcoming portion and a second portion of the content stream that follows the upcoming portion.

6. 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.

7. 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.

8. The method of claim 7 , 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.

9. 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 includes video content and user-interface data;

in response to a determination that the aggregate bandwidth of the upcoming portion of the content stream does not fit the capacity:

when the user-interface data is the result of a user interaction:

prioritizing low latency for the user-interface data over maintaining a frame rate of the video content; and

reducing a size of the upcoming portion of the content stream in accordance with the prioritizing, the reducing comprising decreasing the frame rate of the video content;

determining whether decreasing the frame rate of the video content sufficiently reduces the aggregate bandwidth of the upcoming portion of the content stream; and

in response to determining that decreasing the frame rate of the video content does not sufficiently reduce the aggregate bandwidth of the upcoming portion of the content stream, decreasing a frame rate of the user-interface data.

10. 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 includes video content and user-interface data;

in response to a determination that the aggregate bandwidth of the upcoming portion of the content stream does not fit the capacity:

when the user-interface data is the result of a user interaction:

prioritizing low latency for the user-interface data over maintaining a frame rate of the video content; and

reducing a size of the upcoming portion of the content stream in accordance with the prioritizing, the reducing comprising decreasing the frame rate of the video content;

determining whether decreasing the frame rate of the video content sufficiently reduces the aggregate bandwidth of the upcoming portion of the content stream; and

in response to determining that decreasing the frame rate of the video content does not sufficiently reduce the aggregate bandwidth of the upcoming portion of the content stream, decreasing a frame rate of the user-interface data.

11. The method of claim 1 , wherein decreasing the frame rate of the video content comprises decreasing the frame rate to a half, third, or quarter of the frame rate of the content stream.

12. The method of claim 1 , wherein decreasing the frame rate of the video content comprises transmitting even frames of the video content and omitting odd frames of the video content.

13. The method of claim 1 , wherein the video content comprises a total number of frames and decreasing the frame rate of the video content comprises transmitting a fewer number of frames than the total number of frames.

Continuity (4)
Continuation 14696463 · Apr 26, 2015
Continuation In Part 13438617 · Apr 3, 2012
Provisional Application 61984703 · Apr 25, 2014
Related Publication 20180139511A1 · May 17, 2018