This invention relates to a method and apparatus for streaming multimedia contents such as audio, video, text etc. over a multimedia communication network.
The use of Internet to carry multimedia contents, such as high-quality video is continuously growing. Integration of quality adaptive encoding schemes, forward error correction techniques and congestion control algorithms is crucial to provide an effective video delivering system. Congestion control is an effective method for multimedia applications to discover the available bandwidth in the multimedia communication network, such as web TV, to avoid transmission congestion and to balance load. Therefore, it is widely applied in an internet environment including multimedia content streaming from a source to users.
The internet environment usually uses a Transmission Control Protocol (TCP) end to end congestion control which is appropriate for applications such as bulk data transfer. However, it's not suitable for most of video streaming applications which do not allow the abrupt changes in transmission rate in a very short time scale, as it may affect the user perceived quality. Then, TCP-Friendly Rate Control (TFRC) is designed for User Datagram protocol (UDP) traffic transmission with relative fairness because it has a much lower variation of throughput over time compared to the TCP congestion control, and so makes it more suitable for applications such as streaming of multimedia contents.
In the current Peer to peer (P2P) video applications, the TCP or TFRC congestion control is widely employed and focus on downloading applications, instead of streaming applications. Downloading applications aims at maximizing the aggregate utility over all peers. It does not need to guarantee data being arrived timely, which is an important issue for streaming applications, where the user is playing back the multimedia content during its receiving from the source at the speed of necessarily rendering it properly.
Therefore, it is highly desirable to come up with a solution that can handle the congestion problem for supporting streaming applications for multimedia contents.
The invention concerns a method for streaming a multimedia content from at least one sender peer to a receiver peer, comprising: obtaining periodically a target downloading rate of the multimedia content from the at least one sender peer to the receiver peer, according to a playback rate of the multimedia content and a buffer occupancy level of the receiver peer; determining a downloading rate from each of the at least one sender peer to the receiver peer, according to data transmission situation from the respective sender peer to the receiver peer and the obtained target downloading rate; and streaming the multimedia content from the at least one sender peer to the receiver peer at the determined downloading rate respectively.
The invention also concerns a receiver peer in a multimedia communication system using the above method for streaming multimedia content.
According to an embodiment of the invention, the data transmission rate from sender peers to a receiver peer is adjusted according to the combination of a calculated transmission rate and the receiver peer's buffer inspection. The receiver peer measures the roundtrip time and loss event rate to calculate the transmission rates according to a TFRC equation. A target rate is calculated according to the buffer level at the receiver peer. The final data transmission rate is determined selectively as the transmission rate or as the target rate based on a predetermined condition. This solution can guarantee data being arrived timely and keep continuous video playing back on the receiver side.
These and other aspects, features and advantages of the present invention will become apparent from the following description of an embodiment in connection with the accompanying drawings:
In the embodiment, terms sender peer and receiver peer are used in the context of P2P networks. Sender peer means an apparatus or a peer which offers a service. It may also be a server. Receiver peer means an apparatus or a peer which requests a service. It is known that a peer in the P2P network can be a sender peer and a receiver peer at the same time.
Each receiver peer maintains connection with a set of sender peers. Such sender peers include active sender peers and standby sender peers. An active sender peer is defined as a sender peer that provides the multimedia content to the receiver peer which requested it. A standby sender peer is defined as a sender peer that does not provide the requested multimedia content to the receiver peer, but may be interesting for the receiver peer and connects with the receiver peer. A receiver peer may set up connections with standby peers so as to get some information from them, such as available uploading degree of the standby peers, available uploading rate of the standby peers, and available video segments in their buffers. The receiver peer may have a maximum downloading degree which defines the maximum number of active sender peers concurrently connected to it.
In order to explain the embodiment, some equations are used, and the symbols in the equations have the definition listed in the following form.
Congestion control according to the embodiment is used to deal with the case of the receiver peer A streaming video data from multiple sender peers in the multimedia communication system 100, which objective is to keep the receiver peer A getting a continuous video playback by keeping the aggregate downloading rate from the active sender peers B, C and D close to the video playback rate.
The sender peer B comprises a multimedia content source 201, an encoder 203, a transceiver 205, a rate control unit 207 and a processor 209. The sender peer B is a processor-based system and can include one or more processors and associated memory. In this context, computer programs, or software, are stored in the memory (not shown) for execution by the processor 209, e.g., to implement the multimedia content delivery. The processor is representative of one or more stored-program control processors and the processor may also control other functions of the peer B. The source 201 is representative of any storage device to store any multimedia contents, may be internal and/or external to the peer B, and is volatile and/or non-volatile as necessary.
In the peer B, the encoder 203 is adapted to encode the multimedia content from the source 201, when necessary, to form an encoded data content, for example by using Reed Solomon (RS) encoding methods, and the transceiver 205 sends the encoded multimedia content through the network 200 to the receiver peer A which made the request.
The receiver peer A comprises a buffer 202, a decoder 204, a transceiver 206, a rate selector 208 and a processor 210. Like the sender peer B, the receiver peer A is also a processor-based system and includes one or more processors and associated memory (not shown). In the receiver peer A, the transceiver 206 and decoder 204 are adapted to receive the encoded multimedia content from the network 200 and decode it. Then the multimedia content is stored in the buffer 202 to playback by the receiver peer A. According to the embodiment, the rate selector 208 is adapted to select the downloading rate based on the buffer occupancy level and the content transmission situation under the control of the processor 210.
In order to download the interested video content from the sender peers, the receiver peer A makes a request to get data from active sender peers, and sends following information in a message through the network 200 to each of its active sender peers:
1) Desired downloading rates from each active sender B, C and D, (Dij_desired); The aggregate downloading rate from the active senders equals to the playback rate of the video content in the receiver peer A, or is increased or decreased according to the buffer occupancy level. For example the DBA_desired and DCA_desired can be the maximum available uploading rate of sender peers B and C respectively and the DDA_desired is the remained rate of the aggregate rate.
2) Index of each desired downloading rate belongs to the specific sender peer; For example, the index sends to sender peer B is 1, C is 2, D is 3. It means the first rate in the message is for sender peer B, the second is for sender peer C and the third is for sender peer D, which can be used by each sender peer to find its rate.
3) Index of the requested content. The whole video content can be divided into parts or segments, which can be requested from a sender peer or different sender peers. The index is used by each active sender peer to select the parts or segments to be sent to the receiver peer.
Then each active sender peer for the receiver peer A assigns the data segments according to the desired downloading rate and the requested content, and sends data to the receiver peer A.
In order to reach the objective of congestion control to keep the receiver peer A getting a continuous video playback by keeping the aggregate downloading rate from the sender peers B, C and D close to the video playback rate, or keeping the buffer 202 at a reasonable occupancy level, the rate selector 208 of the receiver peer A will make a rate selection according to the buffer occupancy level of the buffer 202 and the video content transmission situation. The rate selector 208 measures the video streaming situation between the receiver peer A and each sender peer, to get loss event rate p, average round trip time RTT and retransmit timeout value tRTO. The loss event rate is between 0 and 1 to indicate the ratio of loss event number and packet transmitted number. The round trip time can be obtained by a sender peer according to the sending time of data packet and the transmission time of acknowledgement message from the receiver peer A, and the receiver peer gets the round trip time from each sender peer periodically. The retransmit timeout value tRTO is the time period to retransmit the data packet, for example equal to 4*RTT.
For each connection from active sender peers to the receiver peer related with the same video streaming, the rate selector of the receiver peer can obtain an optimized transmission rate from the sender peers respectively according to the following TFRC equation:
Where
s: the packet size in bits
RTT: the roundtrip time in seconds
p: the loss event rate
tRTO: the TCP retransmission timeout values in seconds. Empirically tRTO=4*RTT.
According to the equation, the receiver peer j determines Dij_desired periodically, which can optimize the network situation and avoid congestion in the network.
Then, the buffer occupancy level of the buffer 202 in the receiver peer A is considered to get a new transmission rate.
The buffer occupancy level is checked periodically, here period is T, which can be selected by one skilled in the art. Typically, choose multiple times duration time of one video frame as T. For example, let T be 80 ms when the current video frame rate is 25 fps. L_target and L(t) are the target buffer level and the current buffer level (at time t) respectively. For example L_target equals to V/2. In order to filter out short-term fluctuations, a smoothing function can be applied to L(t). Let L_smoothed(t) be the smoothed current buffer level (t denotes current time).
L_smoothed(t)=a*L(t)+(1−a)*L_smoothed(t−T) (2)
wherein a is coefficient between 0 and 1 used to adjust the smoothing effect, and can be selected by one skilled in the art. A small value of a will have less smoothing effect and be more responsive to recent buffer level changes, while a larger a will have a greater smoothing effect, and be less responsive to recent buffer level changes.
In addition, the parameters of the buffer level thresholds LT and HT have important effect on the performance of the system. Here the selection of LT and HT is based on the tolerable peer switching time, which is the time that the receiver peer switches to receive the multimedia content from a group of sender peers to another group. If the tolerable peer switching time is w, then we may have LT=r*w wherein r is the playback rate of the video content. HT may have a symmetrical level to LT as shown in
In general, the target aggregate downloading rate from all sender peers Dj
For example:
Case1: if L_smoothed(t) lies between LT and HT
Then Dj_target=r
Case2: if L_smoothed(t) lies below LT or above HT
Dj_target=r+(V/2−L_smoothed(t))/T
Here, V/2 is the half level of the buffer with size V. T is the buffer level checking period or target downloading rate adjustment period.
Then according to the determined target aggregate downloading rate Dj_target and the optimized transmission rates Dij
The principle of the active sender peer and its rate adjustment is as follows:
The number of active sender peers is as small as possible since the small number of active peer leads to high buffer utilization;
The aggregate downloading rate of each receiver peer should be equal to the video playback rate r or adjusted according to the buffer occupancy level.
When a sender peer receives the new downloading rate information from the receiver peer, it assigns the data segment according to the desired downloading rate and then sends data to the receiver peer with the new sending rate. And it also announces periodically its available bandwidth to the peers being connected to it.
Although the specific procedure has been described step by step in the scenario of sender peers and receiver peer of the multimedia communication network, one skilled in the art knows that some of steps can be combined into one step or divided into further steps to implement the embodiment of the invention, and the sender peer can also be one or more server in the network. These combination and variance are within the scope of the invention.
Although a video content is used as an embodiment to explain the invention, one skilled in the art knows that the method of streaming multimedia content in the embodiment can be used for any internet material that can be played back while need to be downloaded at the same time.
The foregoing merely illustrates the embodiment of the invention and it will thus be appreciated that those skilled in the art will be able to devise numerous alternative arrangements which, although not explicitly described herein, embody the principles of the invention and are within its spirit and scope.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CN2011/074987 | 5/31/2011 | WO | 00 | 11/27/2013 |