WO2004039034A1 - System and method for reducing initial buffering time for a streaming application - Google Patents

System and method for reducing initial buffering time for a streaming application Download PDF

Info

Publication number
WO2004039034A1
WO2004039034A1 PCT/IB2003/004675 IB0304675W WO2004039034A1 WO 2004039034 A1 WO2004039034 A1 WO 2004039034A1 IB 0304675 W IB0304675 W IB 0304675W WO 2004039034 A1 WO2004039034 A1 WO 2004039034A1
Authority
WO
WIPO (PCT)
Prior art keywords
bit rate
data
transport
encoding
level
Prior art date
Application number
PCT/IB2003/004675
Other languages
French (fr)
Inventor
Timus Bogdan
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Priority to AU2003274413A priority Critical patent/AU2003274413A1/en
Publication of WO2004039034A1 publication Critical patent/WO2004039034A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

A method and system in a communications network for reducing the time length of an initial buffering phase of a streaming application. A streaming server sends data at a transport bit rate to a playback buffer in a client. A multi rate encoder initially encodes the data at a first encoding bit rate that is lower than the transport bit rate. The playback buffer begins playing back the data at a lower quality level determined by the first encoding bit rate when the playback buffer level reaches a first threshold level. When the buffer level reaches a second, higher, threshold level, the encoding bit rate is increased to a second encoding bit rate, preferably equal to the transport bit rate. Finally, the playback buffer plays back the data at a higher quality level determined by the second encoding bit rate after the buffer level reaches the second threshold level.

Description

SYSTEM AND METHOD FOR REDUCING INITIAL BUFFERING TIME FOR A STREAMING APPLICATION
Field of the Invention The present invention relates to real-time data communications. In particular, and not by way of limitation, the present invention is directed to a system and method for reducing the time-length of an initial buffering phase of a streaming application.
Background Art
A streaming application enables an end-user to enjoy the content (audio, video, or combinations) before the content is completely downloaded. Unlike a conversational application, such as talking on the phone, there is no direct connection between the moment a piece of information is sent and the moment it is played back for the end user. In such a single-directional communication, the coherence of the information is important. Therefore the absolute delay between the transmission moment and the playback moment can be increased in order to preserve the relative time-relation within the information content. This may be necessary if data must be retransmitted, or if the propagation time of the different data packets is not the same, as may happen in a packet-switched network.
The variation in the propagation time is usually called delay jitter. Once the playback is started, the absolute delay between the (first) transmission moment and the playback moment is not critical for the end user because a playback buffer is used in the streaming client to reduce the effect of the delay jitter introduced by the transport network.
Playback starts when a sufficient amount of data is contained in the playback buffer. If the transport bit rate decreases below the playback bit rate due to delays in the transport network, the amount of bits in the playback buffer decreases. When the delayed data arrives, the playback buffer is filled again. A problem with downloading a streaming application is that the end-user has to wait for a considerable time while the content is being buffered before the stream can be played back. Unlike a completely downloaded file (which can be immediately utilized through an ftp application), a streaming application is utilized by the end-user (audio, video, or both) before the content is completely downloaded. When the buffer reaches a target level, playback begins. The target level is selected as a level that provides a predefined amount of playback time (for example, 1 second) if no additional data is delivered.
As mentioned before, the absolute delay is not important once the playback is started. However, the absolute delay is important in the initial buffering phase since it influences the time elapsed from the moment the end user requests access to a stream until the playback starts. A delay in the range of one to a few seconds is not normally objectionable, but longer delays may be perceived by the end-user as a lack of response from the application, i.e., as a lack of access to a desired service.
The time elapsed from the moment the end user requests the stream until the playback starts can be roughly modeled by three components:
I init — I propagatιon-1 + ■ propagatιon-2 + I buffering ( ' )
The first term represents the time needed for the client's request message to reach the streaming server; the second term is the time needed for the data from the server to reach the client; and the last term is the time needed to fill the playback buffer with the initially required amount of data. The first two terms will be ignored in the following description because they do not depend on the application and are negligible when compared to the third term.
Minimizing Tln,t is an object of the present invention. The following explanation concentrates on the minimization of T,nιt by minimizing the initial buffering time since T,nιt ≡ Tiering- The buffering time depends on the amount of data to be buffered and on the transport bit rate used in the buffering phase.
The optimum size of the playback buffer depends on the delay variation, i.e., on the size of the delay jitter. A straight forward way to define the buffer size is to indicate "how much play-time the buffer should contain, i.e., for how long a time should the application play back if no more data is received from the transport network. This time period may be designated by Tpiayback. This design parameter depends on the design of the streaming client (for example, in some RealPlay versions there is a default value that the user may modify).
In the simple case in which a constant bit rate encoder (bit rate B) is used, the initial buffer size L needed for playing back Tpiayback seconds is given as:
L = Tpiayback " B (2)
If a variable bit rate encoder is used instead, the value of B in the above equation is replaced with an estimated average bit rate.
Once the value of Tpιaybac is decided (and therewith the value of L), the time needed for initial buffering is:
Figure imgf000004_0001
In the above equations, B denotes the bit rate with which the application encodes data. If the encoder is not a constant bit rate encoder, the quantity will vary in time B(t), most often around a target value B. The application may also employ several encoding modes, which means that it may switch between several bit rates {Bι, B2, ... Bn} in case of constant bit rate encoders, or bit rate targets {B , B2, ...B„} in case of variable bit rate encoders.
The transport bit rate, Rtransport, depends on characteristics of the underlying transport network. When the network is affected by delays or retransmissions due to errors, the transport bit rate varies in time and the equation (3) is valid in some statistical sense. In a packet switched network, Rtransport can be at times very high, as is the case when a large amount of data previously buffered in a routing node is delivered at once. However, the transport network may have some inherent limitations on this transport bit rate (i.e., Rtransport ≤ Rmax) as is the case when the last link is a slow modem or a radio connection, i.e., when the over provisioning typical to a modern LAN is not available.
FIG. 1 is a graph of the number of buffered bits as a function of time when a constant bit rate encoder is utilized in a known buffering procedure. The initial delay (Tinit) 10 is a function of the bit rate 12 at which the buffer is filled, and the target level (Ltarget) 14 that must be reached before playback begins. The rate at which the buffer is filled is a function of the transport bit rate from the application server to the end-user's buffer. In the example illustrated, the transport bit rate 12 is shown as 64 kbps. Ltarget may be set at a level that is sufficient for the end user to play back data for a predefined time period Tpiayback (for example Tpιay ac = 1 second). Once the buffered level reaches Ltarget, the first frame of data 16 is played back. Buffering then continues until the buffered level again reaches Ltarget, and then the second frame 18 is played back. This process continues throughout the playback period. If the entire content of the data to be streamed is available at the server, the server could send the data encoded at B with a higher bit rate Rtransport > B. This difference between the transport bit rate and the encoding rate is typically exploited for reducing the initial buffering time.
In some cases, however, in which the transport network is not over- provisioned (for example dial-up or radio link), it is not possible to obtain transport bit rates higher than the encoding bit rate B. As a reference, the case may be considered in which the data is streamed from the server with the same bit rate as the encoding bit rate (i.e., R = B). For the sake of simplicity, it is assumed that the transport bit rate R is fitted to the capabilities of the transport network such that the transport bit rate is same as the streaming rate (i.e., Rtransport = R). In this case, the time needed to fill the initial buffer (Tinit) is exactly the playback time Tpιayback.
FIG. 2 is an illustrative drawing of a known procedure for reducing the initial time delay, Tinit- In this procedure, assuming that data is available at the streaming server, Tini is reduced by speeding up the transport bit rate. During the initial buffering phase, an additional bearer connection 20 is established in addition to the normal connection 22 in order to effectively double the transport bit rate from 64 kbps to 128 kbps. This, of course, reduces the initial delay period by one-half. FIG. 3 is a graph of cumulated data as a function of time, which more clearly illustrates the effect achieved by the procedure of FIG. 2. For the sake of simplicity, a constant rate encoder (for example 64 kbps) is used to illustrate this approach. It is assumed that the transport network can support bit rates as high as Rmax = 128 kbps, and the client application is designed so that the playback time Tpiayback = 1 sec. Thus, the amount of data to be buffered before the playback can start is L = 64 kbit. If the server streams this amount of data at a bit rate R = 64 kbps (illustrated by solid line 30), the initial time Ti to start playback is 1 second. If the server streams this amount of data at a bit rate of 128 kbps (illustrated by dotted line 32), the initial buffering time T2 is reduced to 0.5 sec.
This approach is possible only if the transport network is capable of streaming data at a higher bit rate than the encoding bit rate. This is the case with most of the current Internet connections since bandwidth is generally not an issue. A problem may occur with links where bandwidth is a scarce resource, as is the case with radio links. A bandwidth-efficient approach is to provide a transport link that is matched to the encoding rate, since most of the transmission is expected to be at that rate.
When the transport bit rate is limited to the encoding rate, a known solution for reducing the buffering time is to temporarily provide an additional connection during the buffering period. Using the 3rd Generation Partnership Project (3GPP) terminology, a "temporary bearer" is used for sending data at higher bit rates during the start-up phase. However, this approach has disadvantages because additional connections are not always available. For example in a radio network, the additional bearer 20 in FIG. 2 might not be provided due to a lack of radio channels. Another disadvantage of the known approach is an increased need for signaling and a rather complicated process of establishing and removing the additional connection. There is no straightforward solution according to the 3GPP standard that avoids the disadvantages raised by the prior art.
Summary of the Invention The present invention trades off quality of the application at the beginning of the session for a reduced initial delay period. By reducing the encoding bit rate at the application server during the first part of the session, and beginning the playback at a lower threshold level in the playback buffer, the application may be presented initially to the end-user with lower quality, but the delay period is reduced. The delay period is reduced because fewer bits need to be buffered in order to provide the predefined amount of playback time. During the period of reduced quality, the buffer continues to fill. Once the buffer reaches a target level that provides the predefined amount of playback time at a normal (higher) quality level, the playback quality can be increased to a normal level.
Thus, in one aspect, the present invention is directed to a method of reducing the time length of an initial buffering phase of a streaming application in a communications network having a streaming server with an encoder, a streaming client with a playback buffer, and a transport network. The method includes the steps of determining a transport bit rate for the transport network; encoding data with the encoder at an encoding bit rate that is lower than the transport bit rate; and transporting the encoded data through the transport network from the streaming server to the playback buffer in the streaming client at the transport bit rate. The method also includes beginning playback of the data when the level of data in the playback buffer reaches a first predefined threshold level; and increasing the encoding bit rate to equal the transport bit rate when the level of data in the playback buffer reaches a second predefined threshold level that is higher than the first predefined threshold level.
In another aspect, the present invention is directed to an alternative method of reducing the time length of an initial buffering phase of a streaming application. The method includes the steps of determining a transport bit rate in the transport network between the streaming server and the playback buffer in the streaming client; encoding data with the encoder during an initial buffering period at a first encoding bit rate that is lower than the determined transport bit rate; and transporting the encoded data through the transport network from the streaming server to the playback buffer in the streaming client at the transport bit rate. The method also includes beginning playback of the data at a first quality level determined by the first encoding bit rate when the level of data in the playback buffer reaches a first predefined threshold level; increasing the first encoding bit rate to a second encoding bit rate when the level of data in the playback buffer reaches a second predefined threshold level that is higher than the first predefined threshold level; and playing back the data at a second quality level determined by the second encoding bit rate when the level of data in the playback buffer reaches the second predefined threshold level. In yet another aspect, the present invention is directed to a method of reducing the time length of an initial buffering phase of a streaming application in a communications network having a streaming server with a variable rate encoder, a streaming client with a playback buffer, and a transport network. The method includes the steps of determining a transport bit rate in the transport network for transporting a plurality of frames of data between the streaming server and the playback buffer in the streaming client; encoding data with the variable rate encoder during an initial buffering period at a first average encoding bit rate that is lower than the determined transport bit rate; and transporting the encoded data through the transport network from the streaming server to the playback buffer in the streaming client at the transport bit rate. The method also includes beginning playback of the data at a first quality level determined by the first average encoding bit rate when the level of data in the playback buffer reaches a predefined threshold level; and varying the instantaneous encoding bit rate for each data frame to make the plurality of data frames more equal in size. In yet another aspect, the present invention is directed to a system in a communications network for reducing the time length of an initial buffering phase of a streaming application. The system first includes a streaming server comprising a multi-rate encoder that encodes data at an encoding rate selected from a plurality of encoding rates; a switching mechanism for selecting the encoding rate; and server logic that controls the switching mechanism. Secondly, the system includes a streaming client comprising a playback buffer that stores data received from the server; and client logic that reports buffer parameters to the server. Thirdly, the system includes a transport network for transporting data at a transport bit rate from the server to the client. The multi- rate encoder initially encodes the data at an encoding bit rate that is lower than the transport bit rate. The playback buffer begins playing back the data at a first quality level determined by the first encoding bit rate when the level of data in the playback buffer reaches a first predefined threshold level. The client logic reports to the server logic when the level of data in the playback buffer reaches a second predefined threshold level that is higher than the first predefined threshold level. The server logic controls the switching mechanism to increase the first encoding bit rate to a second encoding bit rate when the level of data in the playback buffer reaches the second predefined threshold level. Finally, the playback buffer plays back the data at a second quality level determined by the second encoding bit rate after the level of data in the playback buffer reaches the second predefined threshold level.
Brief Description of the Drawings
FIG. 1 (Prior Art) is a graph of the number of buffered bits as a function of time when a constant bit rate encoder is utilized in a known buffering procedure;
FIG. 2 (Prior Art) is an illustrative drawing of a known procedure for reducing the initial time delay;
FIG. 3 (Prior Art) is a graph of cumulated data as a function of time, which more clearly illustrates the effect achieved by the procedure of FIG. 2;
FIG. 4 is an illustrative drawing of a procedure for reducing the initial time delay in accordance with the teachings of the present invention; FIG. 5 is a graph of the number of buffered bits as a function of time when utilizing a constant bit rate encoder with the procedure of FIG. 4; and
FIG. 6 is a simplified block diagram of the preferred embodiment of the system of the present invention.
Detailed Description of Embodiments
FIG. 4 is an illustrative drawing of a procedure for reducing the initial time delay in accordance with the teachings of the present invention. The present invention trades the quality of the stream at the beginning of the session for a reduced buffering time. If the total experienced satisfaction of the end user is seen as a function of the annoyance for waiting for the session to start and the quality of the session once it started, then the proposed solution can be used to increase the total satisfaction by trading off the two terms against each other. The present invention reduces the user's annoyance by reducing the buffering time, at the expense of temporarily reducing the quality of the stream by temporarily reducing the encoding rate.
As shown in FIG. 4, the initial waiting time is reduced from a reference waiting time 40 (the waiting time that would be experienced if the data was encoded at the transport rate) to a new waiting time 42. However, once the application playback starts, there is a period of decreased quality 44 due to the lower encoding rate. Once the playback buffer level reaches the target level, the encoding rate is increased to equal the transport rate, and the streaming quality is consequently increased to a normal level 46.
The invention may be utilized for both a constant bit rate encoder and a variable bit rate encoder. In both cases, it is assumed that the target (average) encoding bit rate can be changed. The invention also protects the receiver buffer fullness from overflow and underflow using known techniques. However, the invention may also be applied to cases in which the receiver buffer does not have a practical upper bound (for example when the client has a hard disk).
The invention utilizes a multi-rate encoder of a known type. A multi-rate encoder is an encoder that is able to generate encoded data with different average bit rates. When data is encoded with a high bit rate, the high bit rate generally leads to a higher perceived quality, as perceived by the end-user. A lower quality will be perceived when the encoder uses a lower bit rate mode. However, the lower quality in this instance may not be as low as that experienced by the end-user when the transmission is affected by errors, or when some of the data is lost in the network. If there are long delays, or data is lost in the network, the quality perceived by the end-user may be dramatically degraded. Thus, the lower quality level proposed by the present invention is generally better than the low quality that results from transmission errors and\or losses, even when a higher bit rate mode is utilized.
The multi-rate encoder also provides a way to gracefully degrade the quality of the stream when network conditions dictate. When the available transport rate is high, an encoding mode with a high bit rate can be used. However, if the transport bit rate decreases, for example due to congestion in the network, the encoder can be switched to a lower bit rate that is fitted to the reduced transport bit rate. By doing so, the end user quality is gracefully degraded in a controlled manner.
As noted above, the present invention may be utilized with both constant rate encoders and variable rate encoders. The main difference between a constant rate encoder and a variable rate encoder is the amount of bits used to encode each application frame. For example, in a video application that generates video frames with a constant time-period, a constant rate encoder uses the same amount of bits for encoding each frame regardless of the content of the frame. A variable rate encoder, however, may use different amounts of bits for each frame, depending on the content of the frame. The multi-rate encoder discussed above may be implemented as a constant rate encoder or a variable rate encoder. If the multi-rate encoder is a constant rate encoder, it is capable of switching between at least two constant, but different, encoding rates. If the multi-rate encoder is a variable rate encoder, it is capable of determining average encoding rates and switching between at least two different average encoding rates.
Embodiment Using a Constant Bit Rate Encoder In an exemplary scenario in which a constant bit rate encoder is utilized, the encoder operates at Bi = 64 kbps, and the initial playback buffer size is large enough for the client to play back data for Tpιayback = 1 s without receiving any more data. This corresponds to a buffer size Ltarget = 64 kbits. Given a transport bit rate of Rtransport = 64 kbps, the time needed to buffer Ltarget is: Tinit = ls (4)
Figure imgf000011_0001
FIG. 5 is a graph of the number of buffered bits as a function of time when utilizing a constant bit rate encoder with the procedure of FIG. 4. The streaming server initially sends application frames encoded at B2 = 32 kbps. Under the same buffering constraint (i.e., that the client should be able to playback for Tpiayback = 1 s without receiving any more data), the amount of data to be buffered is onlv L = 32 kbits. Data is buffered for Tinit i.e. until L bits have been buffered. Tinit in this case is equal to the new waiting time 42 in FIG. 4. Since a 64 kbps transport channel is used, the initial 32 kbits is downloaded to the client in Tinit = 0.5 s. Notice that the initial buffering time is reduced to half since Bi / B2 = 2. At time Tinit, the first frame of the application is played back. More data is then buffered until the second frame is played. Since the encoding rate is lower than the transport bit rate, the amount of data buffered in the client will increase even after playback is started. During N application frames, the extra amount of buffered data is:
AL = Ltaι&et - L(R - B2) - N - tύsme * (B - B2 ) • N • tframe (5) All the application frames have the same size, since a constant bit rate encoder is used. In the example shown, the period of decreased quality 44 comprises the period of time in which frames 1-4 are played back. Thereafter, frame 5 and subsequent frames are played back with normal (higher) quality 46. The transport bit rate is assumed in this example to be constant and therefore the buffer fullness varies between two fixed limits 50 and 51. In practice, the transport bit rate will have variations, for example due to RLC retransmissions, which means that the buffer fullness will also have variations. Since Ltarget = Tpiayback Bi and L = Tinit Bi = Tpiayback B2, it can be shown that the number of frames that have to be encoded with the lower rate is: N tframe = Tpiayback (6)
This means that the amount of data (D2) that must be encoded with B2 is:
D2 = N tframe ' B2 = Tp|ayback B2 ≡ L (7)
Concluding the example, when a constant bit rate encoder with multiple rates is available, the pseudo code algorithm to be used to set the initial buffering time
% get the input parameters T_playback TJnit B 1 % select the initial encoding rate B_2 = B_1 * T_init / T_playback
% stream send data encoded at B_2 for Tjnit % send B_2T_playback bits thereafter send data encoded at B_1
The input parameter Tpιayback should be selected according to the receiver buffer size. The above pseudo code assumes that the encoder can encode data at any rate B2, and therefore it uses Tinit as an input parameter. If this is not the case, and a limited number of encoding rates {B2},e[1 Λ/] are available, Tinit is selected from a set of N-1 values. It should also be noted that the shorter the input Tinit, the lower the initial quality level due to the lower value of B2.
FIG. 6 is a simplified block diagram of the preferred embodiment of the system of the present invention. The preferred embodiment includes a streaming server 100, a transport network 200, and a steaming client 300. The streaming server includes a multi-rate encoder 101 , so that it can selectively encode the data utilizing one of two or more encoding rates (for example, 32 kbps or 64 kbps). The encoding rate may be selected, for example, with the help of a switch 102 if a constant bit rate encoder is used. The transport network provides a transport channel 400 whose transport bit rate is fitted to the highest encoding rate of the streaming server.
The streaming client 300 has a playback buffer 301 characterized by a playback time. The amount of data to be buffered in the playback buffer depends on the playback time and on the encoding rate. The streaming client also includes logic 302, which controls the playback buffer and provides access to the buffer by a decoder (not shown). The logic also uses a control channel 500 to inform a logic device 103 in the server about parameters such as transport channel bit rate R, initial (target) buffering time Tjnjt, the time period for lower quality, and other parameters controlling playback buffer fullness. In an alternative embodiment, the information about the buffering time is apriori known by the server so that the control channel 500 is not needed. The logic device 103 in the streaming server 100 also triggers the switch 102 to switch between different encoding modes in order to minimize the initial buffering rate. At the beginning of a streaming session, the logic device 103 selects the lower encoding mode (rate). After the time period for lower quality, the logic device switches the mode to the higher encoding rate. The exact implementation of the logic device 103 depends of the characteristics of the system. In the case of a constant rate encoder with a simple switch, the implementation is a straightforward algorithm for switching from one constant rate to another. The algorithm has only two input parameters: Tinit controlling the waiting time, and Tpιay ack controlling both the buffer fullness level and the time played back at the lower encoding rate.
Embodiment Using a Variable Bit Rate Encoder
A variable rate encoder may be utilized to provide for more efficient transmission of data. For the same amount of transmitted data, the quality perceived by the end user is better when a variable rate encoder is used than when a constant rate encoder is used. However, the use of a variable bit-rate encoder on transport channels with limited (upper bounded) bit rates may cause problems in the client, because use of the variable bit-rate encoder may lead to an overfilled or underfilled condition in the receiver buffer. The receiver buffer may overfill when the client decoder extracts fewer bits from the receiver buffer than the amount of data entering the receiver buffer. The receiver buffer may underfill when the decoder attempts to consume more bits than are available in the receiver buffer. In order to cope with this kind of problem, the amount of bits used to encode each frame has to be planned according to the size of the receiver buffer, the bandwidth of the transport channel, and so on. Techniques for varying the instantaneous encoding bit rate around an average bit rate are known, and are shown, for example, in the published U.S. Patent Application No. US 2002/0012395 A1 (Song et al.), and in "Long Window Rate Control for Video Streaming," (Varsa et al.), Proceedings of the 11th International Packet Video Workshop, 30 April - 1 May 2001 , Kyungju, Korea, pages 154-159. Both of these references are hereby incorporated by reference herein in their entireties.
The rate control process described in these references, while varying the instantaneous encoding bit rate for each frame, maintains an average (target) encoding bit rate that is constant in time. It should be recognized that although this process may be effective in trading-off quality for a more constant frame size (thereby providing greater protection against overflow or underflow), the process does not affect the initial delay time. Therefore, this known process should not be confused with the novel process described herein for switching between different average encoding bit rates in order to reduce the time-length of the initial buffering phase.
This embodiment of the present invention utilizes a procedure similar to the constant bit rate encoder case to achieve similar results for the variable bit rate encoder case. However, instead of switching between two constant encoding rates (and handling frames of constant sizes), this embodiment switches between two average encoding bit rates. Since a variable bit rate encoder is being utilized, the frame sizes and encoding rates may vary. Because of this, if the initial buffering time is reduced, several adverse consequences are possible. A first possible consequence would be that a number of frames with relatively few bits of data are received, and the target buffer fullness decreases, making the client application more sensitive to delay jitter. Additionally, receiving frames with relatively few bits of data may cause the receiver buffer to run the risk of underflowing. Conversely, another possible consequence is that a number of frames with a relatively large number of bits are received, causing the receiver buffer to run the risk of overflowing. As noted above, the invention may avoid this risk by varying the instantaneous encoding bit rate for each frame so that the frame sizes become more equal, which is done at the expense of slightly decreased quality over the entire video window.
Although the present invention has been described in detail with reference to only a few exemplary embodiments, those skilled in the art will appreciate that various modifications can be made without departing from the invention. Accordingly, the invention is defined only by the following claims, which are intended to embrace all equivalents thereof.

Claims

WHAT IS CLAIMED IS:
1. A method of reducing the time length of an initial buffering phase of a streaming application in a communications network having a streaming server with an encoder, a streaming client with a playback buffer, and a transport network, said method comprising the steps of: determining a transport bit rate for the transport network; encoding data with the encoder at an encoding bit rate that is lower than the transport bit rate; transporting the encoded data through the transport network from the streaming server to the playback buffer in the streaming client at the transport bit rate; beginning playback of the data when the level of data in the playback buffer reaches a first predefined threshold level; and increasing the encoding bit rate to equal the transport bit rate when the level of data in the playback buffer reaches a second predefined threshold level that is higher than the first predefined threshold level.
2. The method of claim 1 , wherein the first threshold level is a quantity of buffered data sufficient to provide a playback period of a predefined duration when the data is played back at the encoding bit rate, given that no further data is received.
3. The method of claim 2, wherein the second threshold level is a quantity of buffered data sufficient to provide a playback period of the predefined duration when the data is played back at the transport bit rate, given that no further data is received.
4. The method of claim 1 , further comprising matching the encoding bit rate to the transport bit rate if the transport bit rate changes, thereby gracefully degrading the quality of the streaming application when network conditions dictate.
5. The method of claim 1 , wherein the encoder is a variable bit rate encoder, and the step of encoding data at an encoding bit rate that is lower than the transport bit rate includes encoding the data at an average encoding bit rate that is lower than the transport bit rate, and the step of increasing the encoding bit rate includes increasing the average encoding bit rate to equal the transport bit rate when the level of data in the playback buffer reaches the second predefined threshold level.
6. A method of reducing the time length of an initial buffering phase of a streaming application in a communications network having a streaming server with an encoder, a streaming client with a playback buffer, and a transport network, said method comprising the steps of: determining a transport bit rate in the transport network between the streaming server and the playback buffer in the streaming client; encoding data with the encoder during an initial buffering period at a first encoding bit rate that is lower than the determined transport bit rate; transporting the encoded data through the transport network from the streaming server to the playback buffer in the streaming client at the transport bit rate; beginning playback of the data at a first quality level determined by the first encoding bit rate when the level of data in the playback buffer reaches a first predefined threshold level; increasing the first encoding bit rate to a second encoding bit rate when the level of data in the playback buffer reaches a second predefined threshold level that is higher than the first predefined threshold level; and playing back the data at a second quality level determined by the second encoding bit rate when the level of data in the playback buffer reaches the second predefined threshold level.
" 7. The method of claim 6, further comprising matching the encoding bit rate to the transport bit rate if the transport bit rate changes, thereby gracefully degrading the quality of the streaming application when network conditions dictate.
8. The method of claim 6, wherein the encoder is a variable bit rate encoder, and the step of encoding data during the initial buffering period includes encoding the data at a first average encoding bit rate that is lower than the transport bit rate, and the step of increasing the first encoding bit rate to a second encoding bit rate includes increasing the first average encoding bit rate to a second average encoding bit rate when the level of data in the playback buffer reaches the second predefined threshold level.
9. The method of claim 6, wherein the step of increasing the first encoding bit rate includes increasing the first encoding bit rate to equal the transport bit rate.
10. The method of claim 6, wherein the first threshold level is a quantity of buffered data sufficient to provide a playback period of a predefined duration when the data is played back at the first encoding bit rate, given that no further data is received.
11. The method of claim 10, wherein the second threshold level is a quantity of buffered data sufficient to provide a playback period of the predefined duration when the data is played back at the second encoding bit rate, given that no further data is received.
12. A method of reducing the time length of an initial buffering phase of a streaming application in a communications network having a streaming server with a variable rate encoder, a streaming client with a playback buffer, and a transport network, said method comprising the steps of: determining a transport bit rate in the transport network for transporting a plurality of frames of data between the streaming server and the playback buffer in the streaming client; encoding data with the variable rate encoder during an initial buffering period at a first average encoding bit rate that is lower than the determined transport bit rate; transporting the encoded data through the transport network from the streaming server to the playback buffer in the streaming client at the transport bit rate; beginning playback of the data at a first quality level determined by the first average encoding bit rate when the level of data in the playback buffer reaches a predefined threshold level; and varying the instantaneous encoding bit rate for each data frame to make the plurality of data frames more equal in size.
13. The method of claim 12, wherein the predefined threshold level is a quantity of buffered data sufficient to provide a playback period of a predefined duration when the data is played back at the first average encoding bit rate, given that no further data is received.
14. The method of claim 12, further comprising the step of increasing the first average encoding bit rate to a second average encoding bit rate when the level of data in the playback buffer reaches a second predefined threshold level that is higher than the first predefined threshold level.
15. A system in a communications network for reducing the time length of an initial buffering phase of a streaming application, said system comprising: a streaming server comprising: a multi-rate encoder that encodes data at an encoding rate selected from a plurality of encoding rates; a switching mechanism for selecting the encoding rate; and server logic that controls the switching mechanism; a streaming client comprising: a playback buffer that stores data received from the server; and client logic that reports buffer parameters to the server; and a transport network for transporting a plurality of data frames at a transport bit rate from the server to the client; wherein: the multi-rate encoder initially encodes the data at an encoding bit rate that is lower than the transport bit rate; the playback buffer begins playing back the data at a first quality level determined by the first encoding bit rate when the level of data in the playback buffer reaches a first predefined threshold level; the client logic reports to the server logic when the level of data in the playback buffer reaches a second predefined threshold level that is higher than the first predefined threshold level; the server logic controls the switching mechanism to increase the first encoding bit rate to a second encoding bit rate when the level of data in the playback buffer reaches the second predefined threshold level; and the playback buffer plays back the data at a second quality level determined by the second encoding bit rate after the level of data in the playback buffer reaches the second predefined threshold level.
16. The method of claim 15, wherein the server logic is adapted to control the switching mechanism to increase the first encoding bit rate to equal the transport bit rate when the level of data in the playback buffer reaches the second predefined threshold level.
17. The system of claim 16, wherein the first threshold level is a quantity of buffered data sufficient to provide a playback period of a predefined duration when the data is played back at the first encoding bit rate, given that no further data is received.
18. The system of claim 17, wherein the second threshold level is a quantity of buffered data sufficient to provide a playback period of the predefined duration when the data is played back at the transport bit rate, given that no further data is received.
19. The system of claim 18, wherein the multi-rate encoder is adapted to match the encoding bit rate to the transport bit rate if the transport bit rate changes, thereby gracefully degrading the quality of the stream when network conditions dictate.
20. The system of claim 15, wherein the multi-rate encoder is a variable bit rate encoder that initially encodes the data at a first average encoding bit rate that is lower than the transport bit rate, and the server logic controls the switching mechanism to increase the first average encoding bit rate to a second average encoding bit rate when the level of data in the playback buffer reaches the second predefined threshold level.
21. The system of claim 20, wherein the variable bit rate encoder varies the instantaneous encoding bit rate for each data frame to make the plurality of data frames more equal in size.
PCT/IB2003/004675 2002-10-24 2003-10-22 System and method for reducing initial buffering time for a streaming application WO2004039034A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2003274413A AU2003274413A1 (en) 2002-10-24 2003-10-22 System and method for reducing initial buffering time for a streaming application

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42091102P 2002-10-24 2002-10-24
US60/420,911 2002-10-24

Publications (1)

Publication Number Publication Date
WO2004039034A1 true WO2004039034A1 (en) 2004-05-06

Family

ID=32176646

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2003/004675 WO2004039034A1 (en) 2002-10-24 2003-10-22 System and method for reducing initial buffering time for a streaming application

Country Status (2)

Country Link
AU (1) AU2003274413A1 (en)
WO (1) WO2004039034A1 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006108434A1 (en) * 2005-04-11 2006-10-19 Telefonaktiebolaget Lm Ericsson (Publ) Technique for dynamically controlling data packet transmissions
WO2006108435A1 (en) * 2005-04-11 2006-10-19 Telefonaktiebolaget Lm Ericsson (Publ) Technique for controlling data packet transmissions of variable bit rate data
EP1718079A1 (en) * 2005-04-29 2006-11-02 Alcatel USA Sourcing, L.P. System, method and computer readable medium for rapid channel change
WO2008014707A1 (en) * 2006-07-27 2008-02-07 Tencent Technology (Shenzhen) Company Limited Method, system and terminal of adjusting video quality
FR2905221A1 (en) * 2006-08-28 2008-02-29 Canon Kk Multimedia content i.e. video, transmitting method for e.g. microcomputer, involves determining encoding rate higher than another encoding rate, where encoding part of content is based on former rate and transmission rate of encoded part
KR100986555B1 (en) 2008-04-14 2010-10-07 한국전자통신연구원 Initial buffering time decision method and system for progressive multimedia streaming service
KR101094694B1 (en) * 2009-03-26 2011-12-16 (주)필링크 Apparatus and method of initial beffering time minimize in streaming system
EP2490349A1 (en) * 2009-11-24 2012-08-22 ZTE Corporation Method, apparatus and system for transmitting multimedia data by bluetooth and real-time playing
EP2536075A1 (en) * 2011-06-14 2012-12-19 France Telecom Method for requesting access by a terminal to digital content suitable for being downloaded from a network
CN104813629A (en) * 2012-10-01 2015-07-29 瑞典爱立信有限公司 Apparatus and method relating to streaming of content to one or more user devices
US9729594B2 (en) 2000-09-12 2017-08-08 Wag Acquisition, L.L.C. Streaming media delivery system
US20170302717A1 (en) * 2011-05-19 2017-10-19 Mobitv, Inc. Contextually aware client buffer thresholds
CN109982139A (en) * 2017-12-28 2019-07-05 优酷网络技术(北京)有限公司 Video broadcasting method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000035201A1 (en) * 1998-12-04 2000-06-15 Microsoft Corporation Multimedia presentation latency minimization
EP1043877A1 (en) * 1999-04-08 2000-10-11 Lucent Technologies Inc. Method and apparatus for reducing start-up delay in data packet-based network streaming applications
WO2002045372A2 (en) * 2000-11-29 2002-06-06 British Telecommunications Public Limited Company Transmitting and receiving real-time data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000035201A1 (en) * 1998-12-04 2000-06-15 Microsoft Corporation Multimedia presentation latency minimization
EP1043877A1 (en) * 1999-04-08 2000-10-11 Lucent Technologies Inc. Method and apparatus for reducing start-up delay in data packet-based network streaming applications
WO2002045372A2 (en) * 2000-11-29 2002-06-06 British Telecommunications Public Limited Company Transmitting and receiving real-time data

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9729594B2 (en) 2000-09-12 2017-08-08 Wag Acquisition, L.L.C. Streaming media delivery system
US10567453B2 (en) 2000-09-12 2020-02-18 Wag Acquisition, L.L.C. Streaming media delivery system
US10298638B2 (en) 2000-09-12 2019-05-21 Wag Acquisition, L.L.C. Streaming media delivery system
US10298639B2 (en) 2000-09-12 2019-05-21 Wag Acquisition, L.L.C. Streaming media delivery system
US9762636B2 (en) 2000-09-12 2017-09-12 Wag Acquisition, L.L.C. Streaming media delivery system
US9742824B2 (en) 2000-09-12 2017-08-22 Wag Acquisition, L.L.C. Streaming media delivery system
US8804515B2 (en) 2005-04-11 2014-08-12 Telefonaktiebolaget Lm Ericsson (Publ) Technique for dynamically controlling data packet transmissions
US9344476B2 (en) 2005-04-11 2016-05-17 Telefonaktiebolaget Lm Ericsson (Publ) Technique for controlling data packet transmission of variable bit rate data
WO2006108435A1 (en) * 2005-04-11 2006-10-19 Telefonaktiebolaget Lm Ericsson (Publ) Technique for controlling data packet transmissions of variable bit rate data
WO2006108434A1 (en) * 2005-04-11 2006-10-19 Telefonaktiebolaget Lm Ericsson (Publ) Technique for dynamically controlling data packet transmissions
CN101160848B (en) * 2005-04-11 2013-02-06 艾利森电话股份有限公司 Method and device for dynamic control data clustering transmission
EP1718079A1 (en) * 2005-04-29 2006-11-02 Alcatel USA Sourcing, L.P. System, method and computer readable medium for rapid channel change
US8281351B2 (en) 2005-04-29 2012-10-02 Alcatel Lucent System, method, and computer readable medium rapid channel change
WO2008014707A1 (en) * 2006-07-27 2008-02-07 Tencent Technology (Shenzhen) Company Limited Method, system and terminal of adjusting video quality
FR2905221A1 (en) * 2006-08-28 2008-02-29 Canon Kk Multimedia content i.e. video, transmitting method for e.g. microcomputer, involves determining encoding rate higher than another encoding rate, where encoding part of content is based on former rate and transmission rate of encoded part
KR100986555B1 (en) 2008-04-14 2010-10-07 한국전자통신연구원 Initial buffering time decision method and system for progressive multimedia streaming service
KR101094694B1 (en) * 2009-03-26 2011-12-16 (주)필링크 Apparatus and method of initial beffering time minimize in streaming system
EP2490349A4 (en) * 2009-11-24 2014-12-10 Zte Corp Method, apparatus and system for transmitting multimedia data by bluetooth and real-time playing
EP2490349A1 (en) * 2009-11-24 2012-08-22 ZTE Corporation Method, apparatus and system for transmitting multimedia data by bluetooth and real-time playing
US20170302717A1 (en) * 2011-05-19 2017-10-19 Mobitv, Inc. Contextually aware client buffer thresholds
US10250659B2 (en) * 2011-05-19 2019-04-02 Mobitv, Inc. Contextually aware client buffer thresholds
EP2536075A1 (en) * 2011-06-14 2012-12-19 France Telecom Method for requesting access by a terminal to digital content suitable for being downloaded from a network
FR2976751A1 (en) * 2011-06-14 2012-12-21 France Telecom METHOD FOR REQUESTING ACCESS BY A TERMINAL TO DIGITAL CONTENT THAT CAN BE DOWNLOADED FROM A NETWORK.
CN104813629A (en) * 2012-10-01 2015-07-29 瑞典爱立信有限公司 Apparatus and method relating to streaming of content to one or more user devices
US9967768B2 (en) 2012-10-01 2018-05-08 Telefonaktiebolaget Lm Ericsson (Publ) Apparatus and method relating to the streaming of content to one or more user devices
CN109982139A (en) * 2017-12-28 2019-07-05 优酷网络技术(北京)有限公司 Video broadcasting method and device

Also Published As

Publication number Publication date
AU2003274413A1 (en) 2004-05-13

Similar Documents

Publication Publication Date Title
JP4819873B2 (en) Technology to control data packet transmission of variable bit rate data
US7644176B2 (en) Devices and methods for minimizing start up delay in transmission of streaming media
JP4681044B2 (en) Technology for dynamically controlling the transmission of data packets
US9398488B2 (en) Video service buffer management in a mobile rate control enabled network
Stockhammer et al. Streaming video over variable bit-rate wireless channels
US8621061B2 (en) Adaptive bitrate management for streaming media over packet networks
US7558869B2 (en) Rate adaptation method and device in multimedia streaming
JP4347883B2 (en) Proactive rate adaptation signaling method and apparatus
JP4690280B2 (en) Method, system and client device for streaming media data
US20040071088A1 (en) Streaming media
EP1271953A2 (en) Improved startup methods and apparatuses for use in streaming content
JP2007089137A (en) Adaptive media play-out by server media processing for performing robust streaming
JP2005526455A (en) Transmission method that absorbs fluctuation of channel transmission rate using virtual reception buffer
WO2004039034A1 (en) System and method for reducing initial buffering time for a streaming application
GB2398967A (en) A handover method in a GPRS system
ZA200508487B (en) Method and device for proactive rate adaptation signaling
RU2389145C2 (en) Method of controlling transmission of data packets for data with variable bitrate
Jenkac et al. On video streaming over variable bit-rate and wireless channels
Deshpande Underflow prevention for AV streaming media under varying channel conditions
Steinbach et al. Adaptive media playout

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP