The present invention generally relates to transmission of data over networks and, more particularly, to techniques for loss recovery of multicasting data transmitted over networks.
Video streaming services such as movie broadcast, distance learning or video conference over networks have generated great interests nowadays. These services in general involve point to multi-point communication in which data from a video source will be delivered to a group of clients over networks. However quality of these services may be degraded due to loss of data packets during transmission. Conventional approaches for error correction can be divided into two categories: FEC (Forward Error Correction) and ARQ (Automatic Repeat Request).
FEC combines redundant packets of FEC groups in addition to a main data group from the video source. However, FEC is designed for the worst case and it may carry too much redundant data under normal conditions. Moreover, for some FEC schemes such as Reed-Solomon codes, if a client loses M packets out of N, it must receive at least M FEC packets to recover the loss. Otherwise, none of the M packets can be recovered. Therefore, because of the large overhead FEC is not effective enough for long error burst case, such as channel scan or handoff during the video session.
Under ARQ scheme as illustrated in
Therefore, a method is needed for the case of long burst of loss, which may reduce the signalling overhead and save the transmission bandwidth.
In one aspect of the present invention, An adaptive error correction method for data transmission, including the steps of: inspecting a first data group to check the range of burst error; comparing the range of burst error with the range of a second data group announced; using at least portion of the second data group to recover the burst error if said range of burst error is within or the same as the range of the second data group announced.
Preferably, the method further comprise the steps of: sending a join message requesting for extension of the second data group if the range of burst error is out of the range of the second data group announced; announcing said extension of the second data group upon receipt of a join message; updating the range of the second data group announced by combining said extension with it.
Preferably, the announcement of the second data group stops when the range of burst error is fulfilled.
Preferable, the range of the second data group announced will be classified according to different applications.
Preferably, there is a fixed time difference between the announcement of the first data group and the second data group.
Preferably, the transmission can be realized via internet, wireless or terrestrial network.
In another aspect of the invention, a router in a data transmission network, comprising: a data receiving means for receiving a first and second data groups; a data transmitting means for announcing said first and second data groups; a message receiving means which receives join messages that contain the range of burst error; a processing means; and a message transmitting means; wherein, the processing means will compare the range of the burst error with the range of the second data group announced, if the range of burst error is out of the range of the second data group announced, the processing means will instruct the data transmitting means to announce an extension of the second data group corresponding to the difference between the two ranges, and the processing means will also update the range of the second data group announced by combining said extension with it; the message transmitting means will announce the updated range of the second data group.
Preferably, said router further comprises an access point which enables wireless transmission.
In yet another aspect of the invention, a client device in a data transmission network, comprising: a data receiving means which receives a first and second data groups announced; an error detection means which detects the error occurred in the first data group received; a message receiving means for receiving the updated range of the second data group announced; a processing means; and a message transmitting means; wherein said processing means compares the range of burst error detected with the range of the second data group announced, if the range of burst error is within or the same as the range of the second data group announced, the processing means won't instruct the message transmitting means to send a join message.
Preferably, if the range of burst error is out of the range of the second data group announced, the processing means will instruct the message transmitting means to send out a join message to request for an extension of the second data group.
The technical features of the present invention will be described further with reference to the embodiments. The embodiments are only preferable examples without limiting to the present invention. It will be well understood by the following detail description in conjunction with the accompanying drawings.
According to one embodiment, a first data group is a set of data packets which were received by a client. A multicasting router R will first announce the sequence numbers of a second data group to be re-transmitted.
After a commonly known delay, the second data group which comprises a set of data packets will be re-transmitted by the multicasting router R and will be received by one or more clients. A sequence number is an identifier representing a data packet, which does not limit to any specific definition.
When t=t2, at step 201 client B detects a burst error of loss with the length of Tb and intends to join the ARQ multicasting group. However, at step 301 the range of burst error [t2−Tb, t2] is determined to be within or the same as [t0, tL], which means the corresponding ARQ data needed have been already received by client B, thus there is no need for client B to send a join message or to join the ARQ group again. Therefore client B will directly go back to step 201 for further error detection.
When t=t3, at step 201 client C detects a burst error with the length of Tc and intends to join the ARQ multicasting group. At step 301 it is decided that [t3−Tc, t3] is different from [t0, tL] and there is an overlap between the two. According to one embodiment of the present invention, at step 401 client C will send a join message with the range of burst error [t3−Tc, t3]. After receiving such join message at step 500, the router R will do a comparison between [t3−Tc, t3] and [t0, tL] at step 600, so that ARQ data corresponding to the portion of [t3−Tc, t3] which is not included in [t0, tL] will be announced to the clients at step 700. At step 600, the router R will also combine join messages from different clients to combine request for the same ARQ data, so that the ARQ data announced at step 700 will be applied to different clients. [t0, tL] will be updated to include the range of newly announced ARQ data at step 700. Clients A, B and C receive the announced ARQ data and memorize the updated [t0, tL]. According to another embodiment of the present invention, at step 301, instead of [t3−Tc, t3], client C will send a join message with the range which is the part of [t3−Tc, t3] that is not included in [t0, tL] . Therefore, at step 600 the router R only has to combine requests from different clients.
According to yet another embodiment of the present invention, a fixed time period D between the ARQ data group and the main group is defined, assuming all burst error lengths are less than D.
According to another embodiment of the present invention as shown in
By doing so, the number of join messages sent to the router R is greatly reduced, the announcing efficiency of router R is obviously increased and the bandwidth of transmission is saved. Furthermore, in a normal multicasting protocol implementation, the ARQ data group will be pruned after the multicasting router detects no member in the ARQ group. Therefore a pruning delay is needed for the member detection even if actually there is no member in the group during the delay period. With this invention, the announcement of ARQ data will be stopped as long as [t0, tL] (or the extension of [t0, tL]) expires, which eliminates useless load caused by pruning delay.
Besides, aforementioned method and devices can be applied over different kinds of network such as internet, wireless or terrestrial network, and can be used for different kinds of data transmission video multicasting.
Whilst there has been described in the forgoing description preferred embodiments and aspects of the present invention, it will be understood by those skilled in the art that many variations in details of design or construction may be made without departing from the present invention. The present invention extends to all features disclosed both individually, and in all possible permutations and combinations.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CN2006/003791 | 12/30/2006 | WO | 00 | 6/24/2009 |