Data streaming system and method
First Claim
1. A data streaming system comprising:
- a server arranged to stream one of a plurality of encoded data streams to a client, each of the plurality of data streams being a representation of a common data source encoded at a different resolution from the other(s) of the plurality of data streams;
the server comprising a transmitter and a first buffer, the transmitter being arranged to transmit data packets of the encoded data stream to the client via the first buffer and to remove a data packet from the first buffer upon acknowledgement by the client of receipt of the packet, wherein the transmitter includes means arranged to estimate the playing duration represented by the contents of data buffered at the client and switch to transmit another of the plurality of data streams in the event that the estimated playing duration meets predetermined criteria;
wherein the transmitter monitors the content of the first buffer and the estimate of playing duration is determined in dependence on the contents of the first buffer and on an estimation, made by the transmitter, of the number of packets decoded by the client.
1 Assignment
0 Petitions
Accused Products
Abstract
A data streaming system and method typically use a server arranged to stream one of a plurality of encoded data streams to a client. Each of the plurality of data streams may be an independent representation of a common data source encoded at a different resolution to the other of the plurality of data streams. The server can include a transmitter and a first buffer. The transmitter can be arranged to transmit data packets of the encoded data stream to the client via the first buffer. The transmitter can be arranged to monitor the content of the first buffer and switch to transmit another of the plurality of data streams in the event that predetermined criteria are detected from the first buffer.
192 Citations
26 Claims
-
1. A data streaming system comprising:
-
a server arranged to stream one of a plurality of encoded data streams to a client, each of the plurality of data streams being a representation of a common data source encoded at a different resolution from the other(s) of the plurality of data streams; the server comprising a transmitter and a first buffer, the transmitter being arranged to transmit data packets of the encoded data stream to the client via the first buffer and to remove a data packet from the first buffer upon acknowledgement by the client of receipt of the packet, wherein the transmitter includes means arranged to estimate the playing duration represented by the contents of data buffered at the client and switch to transmit another of the plurality of data streams in the event that the estimated playing duration meets predetermined criteria; wherein the transmitter monitors the content of the first buffer and the estimate of playing duration is determined in dependence on the contents of the first buffer and on an estimation, made by the transmitter, of the number of packets decoded by the client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of streaming one of a plurality of encoded data streams to a client, each of the plurality of data streams being a representation of a common data source encoded at a different resolution from the other(s) of the plurality of data streams, the method comprising:
-
transmitting data packets of the encoded data stream from a transmitter to the client via a first buffer; removing a data packet from the first buffer upon acknowledgment by the client of receipt of the packet; estimating, at the transmitter, the playing duration represented by the contents of data buffered at the client, in dependence on the contents of the first buffer and on an estimation, made by the transmitter, of the number of packets decoded by the client, and switching to transmit another of the plurality of data streams in the event that the estimated playing duration meets predetermined criteria. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26)
-
-
23. A tangible non-transitory computer program storage medium containing computer program code which, when executed by a computer, performs the steps of streaming one of a plurality of encoded data streams to a client, each of the plurality of data streams being a representation of a common data source encoded at a different resolution from the other(s) of the plurality of data streams, the steps comprising:
-
transmitting data packets of the encoded data stream from a transmitter to the client via a first buffer;
removing a data packet from the first buffer upon acknowledgement by the client of the receipt of the packet;estimating, at the transmitter, the playing duration represented by the contents of data buffered at the client, in dependence on the contents of the first buffer and on an estimation, made by the transmitter, of the number of packets decoded by the client, and switching to transmit another of the plurality of data streams in the event that the estimated playing duration meets predetermined criteria.
-
Specification