IP Library Granted Patent US 9,894,397
Granted Patent B2
US 9,894,397 · App. 13/326,411 · Granted Feb 13, 2018

Controlling bit-rates for media streaming sessions

Inventors: Wenyi Wang (Cupertino, CA); Jing Hu (Goleta, CA); Juiping Liao (San Jose, CA); Rong Wang (Cupertino, CA); Duanpei Wu (San Jose, CA); Shih-Cheng Stan Yan (Saratoga, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04N21/2662H04N19/146H04N19/164H04N21/2343H04N21/2402H04N21/44209H04N21/6373H04N21/64738H04N21/64792
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,894,397
App. No.
13/326,411
Granted
Feb 13, 2018
Kind
B2
Abstract

In one embodiment, a method includes (a) discerning whether an average packet delay in a media streaming session is increasing or decreasing over a first defined time window, (b) discerning whether an average jitter in the media streaming session is increasing or decreasing over a second defined time window, (c) in response to (a) and (b), calculating a specific bit-rate quantity corresponding to a change in bit-rate, and (d) controlling a bit-rate of the media streaming session in accordance with the specific bit-rate quantity.

Claims (40)

1. A method comprising:

(a) discerning, by a router, whether an average packet delay in a media streaming session in a computer network is increasing or decreasing over a first defined time window;

(b) discerning, by the router, whether an average jitter in the media streaming session in the computer network is increasing or decreasing over a second defined time window;

(c) in response to (a) and (b), calculating by the router a specific bit-rate quantity corresponding to a change in bit-rate, wherein (c) includes accessing a table that includes a plurality of entries, wherein each entry includes a previous value for packet delay, jitter, and bit-rate for the media streaming session, using at least one of a current value of delay or a current value of jitter as an index to match to a previous bit-rate in the table, and calculating a difference between a current bit-rate and the previous bit-rate in the table to generate a specific up-speed or down-speed value; and

(d) controlling, by the router, a bit-rate of the media streaming session in accordance with the specific bit-rate quantity.

2. The method of claim 1 in which (c) comprises:

calculating a specific bit-rate for an up-speed adjustment in response to discerning that the average packet delay is decreasing in (a) and that the jitter is decreasing in (b).

3. The method of claim 1 in which (c) comprises:

calculating a specific bit-rate for an up-speed adjustment in response to discerning that the average packet delay is decreasing in (a) and that the jitter is not increasing in (b).

4. The method of claim 1 in which (c) comprises:

calculating a specific bit-rate for a down-speed adjustment in response to discerning that the average packet delay is increasing in (a) and that the jitter is increasing in (b).

5. The method of claim 1 in which the method is performed by the router analyzing feedback from a decoding endpoint, further in which (c) comprises:

calculating the specific bit-rate quantity by taking into account at least one of a session priority of the media streaming session, a video entropy level, or a video performance baseline; and further in which (d) comprises:

sending an indication of the specific bit-rate quantity to an encoding endpoint.

6. An apparatus comprising:

a router including:

a network input/output;

a processor, and

a memory in communication with the processor, the memory including instructions executable by the processor to perform the following operations:

a first operation that analyzes data received through the network input/output to calculate an average packet delay trend for a media streaming session and a jitter trend for the media streaming session in a computer network;

a second operation that calculates a quantified up-speed or down-speed value in response average packet delay trend and the jitter trend, including accessing a table that has a plurality of entries, wherein each entry includes a previous value for packet delay, jitter, and bit-rate for the media streaming session, using at least one of a current value of delay or a current value of jitter as an index to match to a previous bit-rate in the table, and calculating a difference between a current bit-rate and the previous bit-rate in the table to generate the quantified up-speed or down-speed value; and

a third operation that controls a bit-rate of the media streaming session in the computer network according to the quantified up-speed or down-speed value.

7. The apparatus of claim 6 , in which the third operation sends feedback over a network to an encoding endpoint.

8. The apparatus of claim 6 further comprising:

at least one processor executing computer-readable code to provide the functionality of the first, second, and third operations.

9. Logic encoded in one or more non-transitory tangible media for execution and when executed operable to cause a router to perform the following functions:

(a) calculate whether an average packet delay in a media streaming session in a computer network is moving lower or higher;

(b) calculate whether a jitter in the media streaming session in the computer network is improving or worsening;

(c) store a record of historical values for jitter and average packet delay and historical values for streaming bit-rate correlated with respective historical values for jitter and average packet delay;

(d) in response to (a) and (b), calculate a difference between a current streaming bit-rate and a specific one of the historical values for streaming bit-rate to generate an up-speed or down-speed value, including accessing a table that has the record of historical values for jitter and average packet delay and historical values for streaming bit-rate correlated with respective historical values for jitter and average packet delay, and using at least one of a current value of delay or a current value of jitter as an index to match to one of the historical values of streaming bit rate, and calculating a difference between a current bit-rate and the one of the historical values of streaming bit rate bit-rate in the table to generate the up-speed or down-speed value; and

(e) control a bit-rate of the media streaming session according to the up-speed or down-speed value.

10. The logic of claim 9 in which (d) comprises:

calculating a specific bit-rate for an up-speed adjustment in response to discerning that the average packet delay is moving lower in (a) and that the jitter is decreasing in (b).

11. The logic of claim 9 in which (d) comprises:

calculating a specific bit-rate for an up-speed adjustment in response to discerning that the average packet delay is moving lower in (a) and that the jitter is not increasing in (b).

12. The logic of claim 9 in which (d) comprises:

calculating a specific bit-rate for a down-speed adjustment in response to discerning that the average packet delay is moving up in (a) and that the jitter is increasing in (b).

13. The logic of claim 9 , in which (e) comprises:

sending an indication of up-speed or down-speed value to an encoding endpoint.

14. The logic of claim 9 , in which (a) comprises analyzing feedback from a decoding endpoint, and further in which (e) comprises sending an indication of the up-speed or down-speed value to an encoding endpoint.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2012
From: WANG, WENYI; HU, JING; LIAO, JUIPING; YANG, SHIH-CHENG STAN; WANG, RONG; WU, DUANPEI
To: CISCO TECHNOLOGY, INC.
Reel/Frame 027565/0875 →
Continuity (1)
Related Publication 20130159495A1 · Jun 20, 2013