Method and Apparatus for Reducing Jitter in a Receiver of a Selective Combining System
A jitter reducing method in a receiver of a selective combining system includes determining a slowest cell corresponding to the receiver in the selective combining system, treating a plurality of missing packets as being received when a data stream transmitted by the slowest cell is detected to comprise the plurality of missing packets and a sequence number of a first packet in the plurality of missing packets is a sequence number of a next packet that is expected to be received in sequence, and delivering a received packet following the plurality of missing packets in sequence to an upper layer.
This application claims the benefit of U.S. Provisional Application No. 60/594,697, filed Apr. 29, 2005, and included herein by reference.
BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention is a method for reducing data streams jittering in a receiver of a selective combining system, in particular a method of avoiding the receiver temporarily storing packets that have been successfully received and not delivering the packets to an upper layer, hence causing delays in processing data streams.
2. Description of the Prior Art
With advances of mobile communications devices in recent years, there are various applications for entertainment and information services. In a 2nd generation (2G) mobile communications system, multimedia services are mostly limited to Short Messaging Services (SMS) with each message containing no more than 160 characters, and only simple ring tones are allowed, which are about 3 to 20 Kbytes, or other small data to be downloaded. Now the 3rd generation mobile network technology has been developed with the rising of processor core performance and multimedia services in mobile communications have catered to a higher data transmission capacity and also a larger variety of types of multimedia services have been developed.
For example, according to a communications protocol specification developed by the 3rd Generation Partnership Project (3GPP), the Universal Mobile Telecommunications System (UMTS) can provide Multimedia Broadcast and Multicast Service (MBMS), which transmits service content (e.g., television programs, movies, commercials) from servers to each user equipment through different cells in Unacknowledged Mode (UM). Each user equipment may be located under coverage of many different cells. In other words, a user equipment can receive a same service content from different cells. Thus, in order to have the user equipment correctly process the service content and take advantage of this multi-route transmission characteristic, a Radio Link Control (RLC) entity of a UMTS receiver (i.e. the user equipment) in the prior art is able to initiate a Selective Combining Function, also called a Duplicate Avoidance and Reordering Function, efficiently combining Protocol Data Units (PDUs) that may be transmitted from different sources (cells) and/or duplicating transmission from a same source to form a single order of a PDU sequence. After initiating the Duplicate Avoidance and Reordering Function, the RLC entity executes duplicate PDU detecting, discarding and reordering operations according to Sequence Numbers (SNs) of the PDUs. For more detailed description of the operations, please refer to following statements.
First, to support the Duplicate Avoidance and Reordering Function, state variables and protocol parameters below are defined by the specification of the communications protocol described above:
1. Variable VR(UDR): represents an SN of a next PDU that is expected to be received in sequence.
2. Variable VR(UDH): represents an SN of a highest numbered PDU that has been received by the Duplicate Avoidance and Reordering Function.
3. Parameter DAR_Window_Size: indicates a size of a receiving window of the Duplicate Avoidance and Reordering Function.
The RLC entity executes the Duplicate Avoidance and Reordering Function according to the variable VR(UDR) and a receiving window of the Duplicate Avoidance and Reordering Function where a receivable range of the receiving window is from (VR(UDH)−DAR_Window_Size+1) to VR(UDH). After initiating the Duplicate Avoidance and Reordering Function, if an SN of a received PDU lies inside the receiving window and the SN is smaller than the variable VR(UDR), or there is a PDU with the same SN existing in a buffer, then the received PDU is discarded. Conversely, if the SN of the received PDU is larger than or equal to the variable VR(UDR) and there is no PDU with the same SN existing in the buffer, then the received PDU is stored in the buffer. In addition, if the SN of the received PDU lies outside the receiving window, the received PDU is stored in the buffer, the variable VR(UDH) is set to be the SN of the received PDU so as to advance the receiving window, PDUs with SNs smaller than (VR(UDH)−DAR_Window_Size+1) are discarded from the buffer and delivered to an upper layer for further operations, and the variable VR(UDR) is set to be equal to (VR(UDH)−DAR_Window_Size+1) when the variable VR(UDR) is smaller than (VR(UDH)−DAR_Window_Size+1). Furthermore, if there is a PDU with an SN equal to the updated variable VR(UDR) existing in the buffer, the PDU with the SN equal to the variable VR(UDR) in the buffer and all PDUs with consecutive SNs after the SN (i.e. from VR(UDR)+1) are discarded and delivered to the upper layer for further operations. Finally, the variable VR(UDR) is set to be equal to a highest SN of the PDUs that have been delivered to the upper layer plus 1.
From the above description, as the receiver receives a same PDU from different sources, the Duplicate Avoidance and Reordering Function discards the duplicate PDU. However, cells are not in synchronization, so there is a time difference between cells transmissions even if service contents are identical. For a specific receiver, signals transmitted by some cells arrive ‘slower’ and signals transmitted by some cells arrive ‘faster’, meaning that signals of some cells are ‘slower’ and signals of some cells are ‘faster’ to the receiver. Thus, when the receiver does not successfully receive some PDUs, the receiver cannot process any successfully received PDUs of a service content that are sequentially later than the missing PDUs but store the successfully received PDUs in a buffer. The receiver waits for a slower neighboring cell to transmit PDUs that are missing. The successfully received PDUs are kept in the buffer and are not delivered to an upper layer until the missing ones are successfully received. Now, suppose the receiver (like a user equipment, wireless communication device) moves into a ‘slower’ cell. Since the ‘slower’ cell has a slower timing sequence of PDUs, the successfully received PDUs need to be stored in the buffer longer. This causes delay in replaying the service content. In contrast, if the receiver moves into a ‘faster’ cell instead, there are PDUs that the receiver cannot get so that a data stream will jump forward. When broadcasting sports games, movies, songs or music, this kind of delaying or jittering situations affect program fluency, deteriorate broadcasting quality and reduce user interest.
For illustration, please refer to
Update timing of each row is illustrated as follows. The variable VR(UDH) of the third row is updated when data of the first and second rows are received. The fourth row is calculated and updated as the third row is updated. The sixth row shows SNs (may be more than 1) to be delivered to the upper layer when the first and second rows received data at a previous TTI (previous column). (In practice, delivering PDUs to upper layer does not take 20 ms.
When the system is providing a service of broadcasting a data stream, since a program is a continuous data stream with only one PDU from the data stream being played at a TTI, when a replay software receives a plurality of PDUs at the same time, PDUs that have not been replayed are temporarily stored in a buffer controlled by the replay software and replayed one by one. In the prior art, only when it is assured that a missing PDU cannot be obtained (i.e. after the missing PDU had moved outside the receiving window), the Duplicate Avoidance and Reordering Function is allowed to deliver the following PDU or a plurality of PDUs to the upper layer from the buffer. This procedure leads to discontinuity in program replays.
For example, in
Furthermore, suppose that the receiver is out of the coverage of the cell B between the time points 104 and 106, so that the receiver cannot receive PDUs with SN=49 to 63 from the cell B. This means that, the receiver cannot receive PDUs with SN=49 to 55 from the cell A nor the cell B. Therefore, after the receiver replays a PDU with SN=48 at a time point 142, the receiver immediately replays a PDU with SN=56 at a next TTI (i.e. a time point 144), meaning jumping forward 7 TTIs in comparison to an original replay timing. Again, if the receiving window of the Duplicate Avoidance and Reordering Function is large (for instance, DAR_Window_Size=64), there can be a jump larger than 1 second, leading to obvious program pauses and frustrated users.
In summary, UMTS provides MBMS in UM and the receiver is able to receive the same PDU from different cells. For better data receiving efficiency, the RLC entity of the receiver can initiate the Duplicate Avoidance and Reordering Function, which discards duplicate PDUs. However, since different cells may have time difference for a same packet, packets sent from some cells arrive at the receiver slower than packets sent from other cells. In the prior art, if the receiver moves into a slower cell and if a packet is lost, there is a time delay due to storing the incomplete PDU sequence in the buffer and hence the service content is replayed with an obvious interruption, which affects program fluency and frustrates users. Additionally, if the receiver moves into a faster cell, the receiver cannot receive several PDUs and the received data stream is jumped forward, which causes discontinuity in program content and deteriorate program quality.
SUMMARY OF THE INVENTIONA jitter reducing method in a receiver of a selective combining system, the method includes determining a slowest cell corresponding to the receiver in the selective combining system, treating a plurality of missing packets as being received when a data stream transmitted by the slowest cell is detected to comprise the plurality of missing packets and a sequence number of a first packet in the plurality of missing packets is a sequence number of a next packet that is expected to be received in sequence, and delivering a received packet following the plurality of missing packets in sequence to an upper layer.
These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is for a selective combining system, which can combine PDUs transmitted from different sources (cells), through initiating a Duplicate Avoidance and Reordering Function, to form a single ordered PDU sequence. The following descriptions are for use in a mobile communications system, such as UMTS mentioned above.
First of all, please refer to
Please refer to
The 3rd generation mobile communications system UMTS can provide MBMS, which transmits service content (e.g. movies, music, commercials and other multimedia information) from servers to each user equipment through different cells in UM. In order to have the mobile communications device 400 correctly process the service content, the Layer two interface 506 of the program code 412 is able to initiate a Selective Combining Function, also called a Duplicate Avoidance and Reordering Function, which efficiently combines Protocol Data Units (PDUs), which may be transmitted from different sources (cells) and/or repetitively transmitted from a same source, to form a single ordered PDU sequence. In this case, the present invention provides a duplicate avoidance and reordering program code 509 to reduce jittering occurred in data streaming and improves program quality.
Please refer to
Step 602: start.
Step 604: determine a slowest cell among all cells that can provide service to a receiver in the selective combining system, a timing sequence of the data stream transmitted by the slowest cell is behind or equal to timing sequences of data streams transmitted by all cells that are capable of providing services to the receiver.
Step 606: when a data stream transmitted by the slowest cell is detected to comprise a plurality of missing packets and a sequence number of a first packet in the plurality of missing packets is a sequence number of a next packet that is expected to be received in sequence, treat the plurality of missing packets as being successfully received.
Step 608: deliver a received packet following the plurality of missing packets in sequence to an upper layer.
Step 610: end.
According to the procedure 600 of the present invention, the receiver determines a slowest cell according to timing sequences of data streams transmitted by all available cells. The slowest cell transmits a data stream with a timing sequence that is behind or equal to timing sequences of data streams from other cells. If the data stream transmitted by the slowest cell comprises at lease one missing packet, and a first missing packet has an SN equal to an SN of a next PDU that is expected to be received (i.e. the variable VR(UDR)), the plurality of missing packets is treated as received. This means that, if the receiver cannot receive a next expected packet from the slowest cell, the present invention considers this missing packet as received, so that the receiver can deliver packets after the missing packet in sequence to an upper layer. This enables other successfully received packets following the missing packet to be delivered to the upper layer and avoids program interruptions as in the prior arts. In real practices, the variable VR(UDR) is incremented by the number of missing packets, so that the receiver determines the missing packets as received. Consequently, the procedure 600 avoids the receiver from holding successfully received packets in the buffer unnecessarily and hence achieves a purpose of reducing data stream Littering.
For example, please refer to
From
Even though the PDU with SN=31 was not received by the receiver, users do not sense a discontinuity in program replays as every TTI is very short (20 ms) and not replaying the PDU with SN=31 (from a time point 730 to a time point 740) is not significant. In other words, when the receiver cannot receive the PDU with SN=31 from the slowest cell B1 and the variable VR(UDR) equals 31, the present invention considers the PDU with SN=31 as received, so that PDUs with SN=32 or more are not held in a buffer unnecessarily and instead are delivered to the upper layer without delay. This maintains program replay fluency and improves program quality. In comparison, the prior art waits for the variable VR(UDR) to be out of the receiving window of the Duplicate Avoidance and Reordering Function before delivering the following stored PDUs to the upper layer and, thus, affects the program fluency.
Similarly, when the receiver cannot receive the PDU with SN=77 from the slowest cell B1 at a time point 235 and the variable VR(UDR) is equal to 77, the receiver considers the PDU with SN=77 as received, i.e. incrementing the variable VR(UDR) by 1 so that at a time point 240, the variable VR(UDR) is set to be 78, and at a time point 250 the PDU with SN=78 is delivered to the upper layer for replay. Thus, the PDUs with SN=78 and greater are not held in a buffer but are delivered to the upper layer without delay.
Additionally, from
With the procedure 600 of the present invention, the receiver reduces jittering in data streams that deteriorates program quality. But the procedure 600 is a solution only for a mobile that can determine the “globally” slowest cell among all cells that can provide services. The global slowest cell is not easy to track when the mobile moves around. Therefore, the present invention provides another jitter reducing method for data streams that only requires a slowest cell in local area to be determined, i.e., a local slowest cell.
Please refer to
Step 1002: start.
Step 1004: determine a local slowest cell among neighboring cells that can provide service to a receiver in the selective combining system, a timing sequence of the data stream transmitted by the local slowest cell is behind or equal to timing sequences of data streams transmitted by all neighboring cells that are currently capable of providing services to the receiver.
Step 1006: when a data stream transmitted by the local slowest cell is detected to comprise a plurality of missing packets and a sequence number of a first packet in the plurality of missing packets is a sequence number of a next packet that is expected to be received in sequence, treat the plurality of missing packets as being received.
Step 1008: deliver a received packet following the plurality of missing packets in sequence to an upper layer.
Step 1010: end.
According to the procedure 1000 of the present invention, the receiver determines a local slowest cell according to timing sequences of data streams transmitted by all neighboring cells. The local slowest cell transmitting a data stream with a timing sequence that is behind or equal to timing sequences of data streams from other neighboring cells. This means that a cell having a slowest timing sequence of data streams among all neighboring cells is the local slowest cell where “the neighboring cells” is in a term indicating that the receiver can receive services from the cells currently. A set of the neighboring cells can be affected by a movement of the receiver, landscapes, land materials etc. and is not the present invention emphasis, so it will not be explained further here.
If the data stream transmitted by the local slowest cell comprises at lease one missing packet, and a first missing packet has an SN equal to an SN of a next PDU that is expected to be received (i.e. the variable VR(UDR)), the plurality of missing packets are treated as received. This means that, if the receiver cannot receive a next expected packet from the local slowest cell, the present invention considers this missing packet as received, so that the receiver can deliver packets after the missing packet in sequence to an upper layer. This enables other successfully received packets following the missing packet to be delivered to the upper layer and avoids program interruptions as in the prior arts. In real practices, the variable VR(UDR) is incremented by the number of missing packets, so that the receiver determines the missing packets as received. Consequently, the procedure 1000 avoids the receiver from holding successfully received packets in the buffer unnecessarily and hence achieves a purpose of reducing data stream jittering. It is noted that the ‘local slowest cell’ is a cell whose timing sequence of data streams is behind timing sequences of data streams transmitted from any neighboring cells, and it is different from the ‘slowest cell’ described in the procedure 600.
For example, please refer to
At a time point 1120 and a time point 1235, the cell B2 is the local slowest cell while, at time point 310, the local slowest cell is a cell A2 because the cell B2 is not a neighboring cell at this time point. The receiver determines a packet with SN=31 is missing from the data sequence transmitted by the local slowest cell B2 at a time point 1122 (should have been received at a time point 1120 but was not), and the variable VR(UDR) is equal to 31. Therefore, the receiver increments the variable VR(UDR) by a number of jumped PDUs, which again is 1 in this case, so that at a time point 1220 the variable VR(UDR) is set to be 32. This means that the receiver considers the PDU with SN=31 as received and can deliver a PDU with SN=32 to the upper layer for further operations. Even though the PDU with SN=31 was not received by the receiver, users will not sense a discontinuity in program replays as every TTI is very short (20 ms) and not replaying the PDU with SN=31 (from a time point 1130 to a time point 1140) is not significant. In other words, when the receiver cannot receive the PDU with SN=31 from the local slowest cell B2 and the variable VR(UDR) equals 31, the present invention considers the PDU with SN=31 as received, so that PDUs with SN=32 or greater are not held in the buffer unnecessarily, rather are delivered to the upper layer without delay. This maintains program replay fluency and improves program quality.
In comparison, the prior art waits for the variable VR(UDR) to be out of the receiving window of the Duplicate Avoidance and Reordering Function before delivering the following stored PDUs to the upper layer and significantly affects program fluency.
Similarly, when the receiver cannot receive the PDU with SN=77 from the local slowest cell B2 at a time point 1235 and the variable VR(UDR) is equal to 77, the receiver considers the PDU with SN=77 as received, i.e. incrementing the variable VR(UDR) by 1 so that at a time point 1240, the variable VR(UDR) is set to be 78, and at a time point 1250 the PDU with SN=78 is delivered to the upper layer for replay. Thus, the PDUs with SN=78 and greater are not held in the buffer but are delivered to the upper layer without further delay. Thus, the procedure 1000 maintains program fluency and improves program quality.
In addition, when at the time point 312, the local slowest cell is the cell A2. The receiver receives a PDU with SN=68, so that the receiver determines a PDU with SN=67 was not received from the local slowest cell A2 at a time point 310, and the variable VR(UDR) is 67. Therefore, the receiver considers the PDU with SN=67 as received, i.e., the receiver increments the variable VR(UDR) by 1 so that at the time point 320, the variable VR(UDR) is set to be 68 and the PDU with SN=68 is delivered to the upper layer at a time point 330 for replay. Note that at the time point 320, the receiver had considered the PDU with SN=67 as received (but actually it was not received). Thus, after replaying a PDU with SN=66 at the time point 350, the receiver jumps to replay the PDU with SN=68 so that jittering does not have significant affects (only jumps one TTI). Other than that, at a time point 360, there is a short blank between a PDU with SN=74 and a PDU with SN=75. The short blank also has limited affects on program replaying.
Furthermore, as the receiver changes cells, the receiver cannot receive PDUs with SN=49 to 55. Hence after the receiver replays a PDUs with SN=48 at a time point 1232, there are 7 TTIs going by before replaying a PDUs with SN=56 at a time point 1234. This means, a time interval between replaying the PDUs with SN=48 and replaying the PDUs with SN=56 exactly equals to a time interval originally between the two PDUs so that the user senses a part of the program is discontinued, but there are no time jumps as the program resumes later. The 7 TTIs between the time point 1232 and the time point 1234 correspond to the missing PDUs with SN=49 to 55. After the receiver replays the PDU with SN=48 at the time point 232, the receiver does not replay the PDU with SN=56 immediately at a next TTI of the time point 1232 so that the user, due to the time continuity of the service content, will not be confused. However in some situations, if a time delay is long, it affects a fluency in service content replaying and causes user inconvenience. Therefore, the present invention provides another embodiment to solve the described problem.
Please refer to
Step 1402: start.
Step 1404: determine a minimum transition time period required to change to another cell in the selective combining system.
Step 1406: keep a maximum time difference of transmitting packets between cells to be less than or equal to the minimum transition time.
Step 1408: end.
Therefore, according to the procedure 1400 of the present invention, a network transmitter determines a minimum transition time required for a receiver to change to another cell, then keeps a time difference of transmitting packets between cells to be less than or equal to the minimum transition time. For example, in
In summation, for MBMS applications, the receiver is able to receive the same PDU from different cells. For better data receiving efficiency, the RLC entity of the receiver can initiate the Duplicate Avoidance and Reordering Function, which discards and reorders duplicate PDUs. However, cells are not in synchronization so that there is a time difference between cells transmission even if service contents are identical. In the present invention, if the receiver cannot receive a next expected packet from a slowest cell, the present invention considers this missing packet as received so that the receiver can deliver packets after the missing packet in sequence to upper layer for replay. This avoids the prior art problem of having other successfully received packets that are after the missing packet in sequence being held in a buffer and not sent to the upper layer, which leads to delay in data stream processing or replaying. The present invention maintains program replay fluency and improves program quality. Additionally, the present invention keeps a time difference of transmitting between cells to be less than or equal to a minimum transition time required to change cells, to avoid data losses when the receiver moves and changes cells. Therefore, the present invention can reduce jittering in data streams in a selective combining system and have a better program quality with more fluent service contents replaying.
Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.
Claims
1. A jitter reducing method in a receiver of a selective combining system, the method comprising:
- determining a slowest cell corresponding to the receiver in the selective combining system;
- treating a plurality of missing packets as being received, when a data stream transmitted by the slowest cell is detected to comprise the plurality of missing packets and a sequence number of a first packet in the plurality of missing packets is a sequence number of a next packet that is expected to be received in sequence; and
- delivering a received packet following the plurality of missing packets in sequence to an upper layer.
2. The method of claim 1 wherein treating the plurality of missing packets as being received is incrementing the sequence number of the next packet that is expected to be received in sequence by a number of the plurality of missing packets.
3. The method of claim 2 wherein the number of the plurality of missing packets is 1.
4. The method of claim 1 wherein a timing sequence of the data stream transmitted by the slowest cell is behind or equal to timing sequences of data streams transmitted by all other cells that are capable of providing services to the receiver.
5. The method of claim 1 wherein a timing sequence of the data stream transmitted by the slowest cell is behind or equal to timing sequences of data streams transmitted by all neighboring cells that are currently capable of providing services to the receiver.
6. The method of claim 1 wherein the receiver is operating in Unacknowledged Mode (UM).
7. A receiving device comprising a central processing unit in electrical communications with a memory, the memory comprising program code for implementing the method of claim 1.
8. A jitter reducing method in a selective combining system, the method comprising:
- determining a minimum transition time period required to change to another cell in the selective combining system; and
- keeping a maximum time difference of transmitting packets between cells to be less than or equal to the minimum transition time.
9. The method of claim 8 further comprising setting a size of a duplicate avoidance and reordering function window according to the minimum transition time.
10. The method of claim 9 wherein the selective combining system is operating in Unacknowledged Mode (UM).
Type: Application
Filed: May 24, 2006
Publication Date: Oct 25, 2007
Inventor: Sam Shiaw-Shiang Jiang (Taipei City)
Application Number: 11/380,420
International Classification: G06F 15/16 (20060101);