Abstract:
A client device receives streamed encoded content data, such as encoded video data, which has been encoded at a constant perceptual quality. Several different versions of the content are available to be streamed to the device, at different perceptual quality levels. In order to decide which quality level to request from a content server at intervals the device calculates the delivery rates that would be required for each level of quality. The delivery rates are calculated in dependence on so-called critical points, which are points at which a piecewise constant bit rate delivery schedule is just equal to the decoding schedule. There are two classes of critical points, being a first class of critical points, referred to herein as "additional critical points", which are points on the decoding schedule where, for any particular other point on the decoding schedule before an additional critical point, and assuming that a minimum threshold amount of data is buffered when delivery occurs from the particular point, a constant bit rate delivery schedule that is calculated for the particular point taking into account the buffered minimum amount of data and of such a rate such that buffer underflow does not occur is substantially equal to the decoding schedule. A second class of critical points, referred to herein as "downstairs critical points", is also defined, which are derived from the decoding schedule as a whole, and which are the points at which a piecewise monotonically decreasing constant bit rate delivery schedule (the so-called "downstairs" schedule), which is calculated such that when delivering the encoded content data from the start buffer underflow does not occur, is substantially equal to the decoding schedule of the encoded content data. When the actual delivery rate received is ahead of the so-called "downstairs" schedule, then the delivery rate required for a particular quality level can be calculated from the second class of critical points. However, when the actual delivery rate received is behind the downstairs schedule, then the delivery rate required is calculated from the first class of critical points.
Abstract:
A client device receives streamed encoded content data, such as encoded video data, which has been encoded at a constant perceptual quality. Several different versions of the content are available to be streamed to the device, at different perceptual quality levels. In order to decide which quality level to request from a content server at intervals the device calculates the delivery rates that would be required for each level of quality. The calculation of the delivery levels is made in dependence on whether the actual delivery rate that has been received so far is greater than or less than a constant bit rate delivery schedule that decreases monotonically but which guarantees to deliver the encoded data in a timely manner such that no buffer underflow and interruption of reproduction takes place. The monotonically decreasing bit rate schedule is defined by one or more "critical points", which are the points at which the bit rates are decreased, and correspond to the points where the delivery schedule is just equal to the decoding schedule of the encoded data. At such points there would be no encoded data in a buffer at the client. If the delivery rate has been greater than the constant bit rate schedule for a quality then the delivery rate required going forward for a particular quality level can be calculated from the critical point information, and no more complicated calculation is required.
Abstract:
The network contains one or more network based video servers connected to one or more video receivers over a shared network. Multiple pieces of video content are each encoded at a number of constant quality levels and stored on one or more of the network based servers. In response to requests from a receiver, video content is selected on a server and delivered over the shared network to the receiver. The system selects the quality level of the stream to deliver based on characteristics of the video stream currently being delivered, and the number of bits already buffered at the video receiver and the available network throughput. The aim is to select the video quality being delivered according to the available network throughput so as maximise the quality while ensuring that all video data is delivered over the network in time for it to be decoded and displayed without interruption.
Abstract:
A plurality of video streams is transmitted over a transmission link. At intervals, one determines for each video stream at each of a plurality of encoder settings, having regard to the amount of data buffered at a receiver for that stream, a bit rate sufficient to transmit the remainder of that stream at that encoder setting such as to avoid buffer underflow at the receiver. One determines also a critical point equal to the earliest time at which that bit rate can be reduced while still avoiding buffer underflow at the receiver. An encoder setting is chosen for each video stream such that the sum of said bit rates required for transmission of the streams does not exceed the capacity of the transmission link. Any surplus capacity of the transmission link is allocated to the stream that has the earliest critical point.
Abstract:
A method for providing equitable media streaming between an HTTP server and a number of receivers via shared network. The streaming data is processed to split the data across a number of sub-streams. Each sub-stream contains non-contiguous data. A receiver requesting the streaming media establishes a number of TCP sessions, one for each sub-stream and the received sub-stream data is reassembled at the receiver so that the streaming media can be presented.
Abstract:
The network contains one or more network based video servers connected to one or more video receivers over a shared network. Multiple pieces of video content are each encoded at a number of constant quality levels and stored on one or more of the network based servers. In response to requests from a receiver, video content is selected on a server and delivered over the shared network to the receiver. The system selects the quality level of the stream to deliver based on characteristics of the video stream currently being delivered, and the number of bits already buffered at the video receiver and the available network throughput. The aim is to select the video quality being delivered according to the available network throughput so as maximise the quality while ensuring that all video data is delivered over the network in time for it to be decoded and displayed without interruption. The invention proposes a method for making that selection in advance.
Abstract:
There is proposed a modification to the ECN protocol to remove the one-to-one relationship between the network signalling congestion and the sender response to that congestion. The result is to allow a receiver terminal to exhibit some control of bandwidth share relative to other receiver terminals. The idea is to calculate the average CE arrival frequency from received data packets and to set ECE flags at a rate determined as a function of the average CE arrival frequency. Preferably, the function is a multiplier applied to the average CE arrival frequency. The effect of averaging the CE arrival frequency as well as application of a multiplier is a decoupling of the ECE marked ACKs sent by a receiver to the sender, and control of the resulting transmission rate at the sender.
Abstract:
The invention presents a method of providing a modified manifest to a video client for streaming a video sequence associated with the manifest. An original manifest is modified to replace references to locations of lower quality, or bit rate, segments with references to equivalent segments at a higher quality, or bit rate, if the higher quality segment is cached locally. Then, when the video client determines that a given quality of segment should be streamed, it uses the modified manifest to retrieve the appropriate reference for that segment, and if a replacement has taken place, will be provided with the reference to the replacement segment at the higher quality. Thus, the client will always be provided with the highest possible quality segment taking into account local caching.
Abstract:
Embodiments of the present invention provide a compact representation of a cumulative bit curve formed from piecewise straight line approximations between upper and lower bounds about an actual cumulative bit curve (CBC). In one embodiment the lower bounds are found by applying a constraint such that if a delivery rate was to be calculated using the count at the lower bound it would result in a delivery rate which was greater than the delivery rate that would be calculated using the actual CBC data by a particular amount, for example 10 %. The actual CBC data is then used as an upper bound. As a result, the approximated CBC will lie for each GoP between the actual CBC value and the lower bound, with the result that one can be certain that any data rate that is calculated using the approximation will be at least as high as a data rate that is calculated using the actual CBC data. In terms of line- fitting algorithms that are used, several different algorithms may be used of differing complexities, with the intention of trying to minimise the number of end-points required of within the piecewise approximation.
Abstract:
A video sequence to be encoded is divided into a plurality of temporal portions, and analysed to determine (at least for each portion after the first), in accordance with a plurality of encoding quality settings, (i) a quality metric for the portion and (ii) the number of bits generated by encoding the portion at that quality setting. These data are analysed, for example using a Viterbi-like trellis, to choose a set of quality settings, one per portion, that tends to minimise a combined quality cost for the sequence. This the combined quality cost is the sum of individual quality costs each of which is a function of the quality metric of the respective encoded portion. The sequence is encoded using the chosen quality settings. In order to determine each individual quality cost, despite not knowing precisely what network throughput will be available at any given time in the future, one proceeds by estimating receiver buffer fullness and its standard deviation. From said estimates, the probability of buffer underflow and or overflow is obtained, the individual quality costs being a function also of the underflow and/or overflow probability.