IP Library Patent Application 13163838
Patent Application
App. No. 13/163,838

METHOD AND APPARATUS FOR SERVER-SIDE ADAPTIVE STREAMING

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 None
App. No.
13/163,838
Abstract

A server-side adaptive streaming capability is provided. The server-side adaptive streaming capability supports adaptive streaming of a data object from a server toward a client via a Transmission Control Protocol (TCP) connection between the server and the client. The server has access to a plurality of versions of the data object having a respective plurality of encoding bit rates associated therewith. The server has a TCP congestion control mechanism running for the TCP connection. The TCP congestion control mechanism has information associated therewith. The server determines, using the information associated with the TCP congestion control mechanism running on the server for the TCP connection, a transmission bit rate expected to be supported by the client for the TCP connection. The server selects, based on the transmission bit rate expected to be supported by the client and the encoding bit rates associated with the versions of the data object accessible to the server, one of the plurality of versions of the data object for propagation from the server toward the client via the TCP connection. The server dynamically switches between the versions of the data object as the transmission bit rate expected to be supported by the client changes.

Claims (39)

1 . An apparatus for adaptive streaming of a data object from a server toward a client via a Transmission Control Protocol (TCP) connection, the server having access to a plurality of versions of the data object having a respective plurality of encoding bit rates associated therewith, the apparatus comprising:

a processor and a memory, the processor configured to:

determine, from information associated with a TCP congestion control mechanism running on the server for the TCP connection, a transmission bit rate expected to be supported by the client for the TCP connection; and

select, based on the transmission bit rate expected to be supported by the client and the encoding bit rates associated with the versions of the data object accessible to the server, one of the plurality of versions of the data object for propagation from the server toward the client via the TCP connection.

2 . The apparatus of claim 1 , wherein the selected one of the versions of the data object is a first version of the data object, wherein the processor is configured to:

when the transmission bit rate expected to be supported by the client changes to a new transmission bit rate expected to be supported by the client, switch from selecting the first version of the data object to selecting a second version of the data object from the plurality of versions of the data object, wherein the encoding bit rate of the second version of the data object is compatible with the new transmission bit rate expected to be supported by the client.

3 . The apparatus of claim 1 , wherein the processor is configured to determine the information associated with a TCP congestion control mechanism running on the server for the TCP connection from a TCP stack on the server.

4 . The apparatus of claim 1 , wherein the information associated with the TCP congestion control mechanism running on the server for the TCP connection comprises a current transmission bit rate of the TCP connection on the server.

5 . The apparatus of claim 4 , wherein the transmission bit rate expected to be supported by the client for the TCP connection is determined as the current transmission bit rate of the TCP connection on the server.

6 . The apparatus of claim 4 , wherein the information associated with the TCP congestion control mechanism running on the server for the TCP connection comprises at least one additional parameter associated with the TCP connection.

7 . The apparatus of claim 6 , wherein the at least one additional parameter associated with the TCP connection comprises at least one of a peak transmission bit rate at which the data object is transmitted from the server toward the client via the TCP connection, a measure of packet loss for the TCP connection, an indication of intermittent packet loss for the TCP connection, and a round-trip time associated with the TCP connection.

8 . The apparatus of claim 6 , wherein the processor is configured to:

select one of the plurality of versions of the data object, based on the transmission bit rate expected to be supported by the client and the at least one additional parameter associated with the TCP connection.

9 . The apparatus of claim 1 , wherein the processor is configured to:

propagate the selected version of the data object toward the client.

10 . The apparatus of claim 1 , wherein the data object comprises video content.

11 . A method for adaptive streaming of a data object from a server toward a client via a Transmission Control Protocol (TCP) connection, the server having access to a plurality of versions of the data object having a respective plurality of encoding bit rates associated therewith, the method comprising:

using a processor and a memory for:

determining, from information associated with a TCP congestion control mechanism running on the server for the TCP connection, a transmission bit rate expected to be supported by the client for the TCP connection; and

selecting, based on the transmission bit rate expected to be supported by the client and the encoding bit rates associated with the versions of the data object accessible to the server, one of the plurality of versions of the data object for propagation from the server toward the client via the TCP connection.

12 . The method of claim 11 , wherein the selected one of the versions of the data object is a first version of the data object, the method further comprising:

when the transmission bit rate expected to be supported by the client changes to a new transmission bit rate expected to be supported by the client, switching from selecting the first version of the data object to selecting a second version of the data object from the plurality of versions of the data object, wherein the encoding bit rate of the second version of the data object is compatible with the new transmission bit rate expected to be supported by the client.

13 . The method of claim 11 , wherein the information associated with a TCP congestion control mechanism running on the server for the TCP connection is determined from a TCP stack on the server.

14 . The method of claim 11 , wherein the information associated with the TCP congestion control mechanism running on the server for the TCP connection comprises a current transmission bit rate of the TCP connection on the server.

15 . The method of claim 14 , wherein the transmission bit rate expected to be supported by the client for the TCP connection is determined as the current transmission bit rate of the TCP connection on the server.

16 . The method of claim 14 , wherein the information associated with the TCP congestion control mechanism running on the server for the TCP connection comprises at least one additional parameter associated with the TCP connection.

17 . The method of claim 16 , wherein the at least one additional parameter associated with the TCP connection comprises at least one of a peak transmission bit rate at which the data object is transmitted from the server toward the client via the TCP connection, a measure of packet loss for the TCP connection, an indication of intermittent packet loss for the TCP connection, and a round-trip time associated with the TCP connection.

18 . The method of claim 16 , further comprising:

selecting one of the plurality of versions of the data object, based on the transmission bit rate expected to be supported by the client and the at least one additional parameter associated with the TCP connection.

19 . The method of claim 11 , further comprising:

propagating the selected version of the data object toward the client.

20 . The method of claim 11 , wherein the data object comprises video content.

21 . A computer-readable storage medium storing instructions which, when executed by a computer, cause the computer to perform a method for adaptive streaming of a data object from a server toward a client via a Transmission Control Protocol (TCP) connection, the server having access to a plurality of versions of the data object having a respective plurality of encoding bit rates associated therewith, the method comprising:

determining, from information associated with a TCP congestion control mechanism running on the server for the TCP connection, a transmission bit rate expected to be supported by the client for the TCP connection; and

selecting, based on the transmission bit rate expected to be supported by the client and the encoding bit rates associated with the versions of the data object accessible to the server, one of the plurality of versions of the data object for propagation from the server toward the client via the TCP connection.

22 . An apparatus for adaptive streaming of a data object from a server toward a client via a Transmission Control Protocol (TCP) connection, the server having access to a plurality of versions of the data object having a respective plurality of encoding bit rates associated therewith, the apparatus comprising:

a processor and a memory, the processor configured to:

determine, from information associated with a TCP congestion control mechanism running on the server for the TCP connection, a transmission bit rate expected to be supported by the client for the TCP connection; and

switch, based on the transmission bit rate expected to be supported by the client and the encoding bit rates associated with the versions of the data object accessible to the server, from selecting a first one of the plurality of versions of the data object for propagation from the server toward the client via the TCP connection to selecting a second one of the plurality of versions of the data object for propagation from the server toward the client via the TCP connection.

Assignments (11)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 30, 2014
From: CREDIT SUISSE AG
To: ALCATEL LUCENT
Reel/Frame 033868/0555 →
SECURITY AGREEMENT Recorded Jan 30, 2013
From: ALCATEL LUCENT
To: CREDIT SUISSE AG
Reel/Frame 029821/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2012
From: ALCATEL-LUCENT USA INC.
To: ALCATEL LUCENT
Reel/Frame 028620/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2011
From: MILES, DAVID, MR.; HEMIGE, VENUGOPAL
To: ALCATEL-LUCENT USA INC.
Reel/Frame 026481/0210 →