U.S. patent application number 11/380420 was filed with the patent office on 2007-10-25 for method and apparatus for reducing jitter in a receiver of a selective combining system.
Invention is credited to Sam Shiaw-Shiang Jiang.
Application Number | 20070250637 11/380420 |
Document ID | / |
Family ID | 36763126 |
Filed Date | 2007-10-25 |
United States Patent
Application |
20070250637 |
Kind Code |
A1 |
Jiang; Sam Shiaw-Shiang |
October 25, 2007 |
Method and Apparatus for Reducing Jitter in a Receiver of a
Selective Combining System
Abstract
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.
Inventors: |
Jiang; Sam Shiaw-Shiang;
(Taipei City, TW) |
Correspondence
Address: |
NORTH AMERICA INTELLECTUAL PROPERTY CORPORATION
P.O. BOX 506
MERRIFIELD
VA
22116
US
|
Family ID: |
36763126 |
Appl. No.: |
11/380420 |
Filed: |
May 24, 2006 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60594697 |
Apr 29, 2005 |
|
|
|
Current U.S.
Class: |
709/233 |
Current CPC
Class: |
H04L 1/187 20130101;
H04L 47/10 20130101; H04L 47/283 20130101; H04L 1/1832 20130101;
H04L 1/1685 20130101; H04L 47/22 20130101; H04L 47/14 20130101;
H04W 84/18 20130101; H04L 47/27 20130101; H04L 47/263 20130101;
H04L 47/32 20130101; H04W 74/06 20130101; H04L 12/6418
20130101 |
Class at
Publication: |
709/233 |
International
Class: |
G06F 15/16 20060101
G06F015/16 |
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).
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] 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 INVENTION
[0002] 1. Field of the Invention
[0003] 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.
[0004] 2. Description of the Prior Art
[0005] With advances of mobile communications devices in recent
years, there are various applications for entertainment and
information services. In a 2.sup.nd 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 3.sup.rd 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.
[0006] For example, according to a communications protocol
specification developed by the 3.sup.rd 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.
[0007] 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:
[0008] 1. Variable VR(UDR): represents an SN of a next PDU that is
expected to be received in sequence.
[0009] 2. Variable VR(UDH): represents an SN of a highest numbered
PDU that has been received by the Duplicate Avoidance and
Reordering Function.
[0010] 3. Parameter DAR_Window_Size: indicates a size of a
receiving window of the Duplicate Avoidance and Reordering
Function.
[0011] 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.
[0012] 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.
[0013] For illustration, please refer to FIG. 1 to FIG. 3. FIG. 1
to FIG. 3 are diagrams representing variables and SNs of received
PDUs of a receiver that moves between a faster cell A and a slower
cell B. Suppose that packets transmitted by the cell A are ahead of
those transmitted by the cell B by 9 Transmission Time Intervals
(TTIs), and parameter DAR_Window_Size is 10. In FIG. 1 to FIG. 3,
each square represents a TTI, which is set to be 20 milliseconds
(ms) in general. The first and second rows represent SNs of PDUs
the receiver received from the cell A and the cell B respectively,
where shaded squares denote PDUs that are not successfully
received. The third and fifth rows represent values of the variable
VR(UDH) and the variable VR(UDR) respectively. The fourth row is a
value of (VR(UDH)-DAR_Window_Size+1), which is a start point of the
receiving window. The sixth row represents SNs of PDUs that are
delivered to the upper layer from the buffer. The seventh row
represents SNs of PDUs that the receiver replays at the end.
Additionally, contiguous shaded squares mean PDUs cannot be
received due to the receiver moving out of coverage of a cell, and
a single shaded square represents a SN of a PDU that is missing
during radio transmission.
[0014] 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.
FIG. 1 to FIG. 3 are for illustration purpose only and are not
drawn according to a detailed time scale.) The variable VR(UDR) in
the fifth row is updated after delivering data of the sixth row to
the upper layer. There is a fixed time difference between the
replay value of the seventh row and the value of the sixth row. The
time difference shown in FIG. 1 to FIG. 3 is one square, which
represents 20 ms, but the time difference can be longer or shorter
in real practice.
[0015] 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.
[0016] For example, in FIG. 1 to FIG. 3, between a time point 100
and a time point 102, the receiver is out of a coverage of the cell
A so that the receiver cannot receive PDUs with SN=30 to 55 from
the cell A. Suppose that the receiver does not receive a PDU with
SN=31 from the cell B at the time point 120, and a receiving window
size of the Duplicate Avoidance and Reordering Function is 10. PDUs
with SN=32 to 41 are temporarily stored until a time point 110,
when the PDUs with SN=32 to 41 altogether are delivered to the
upper layer. This means that after a PDU with SN=30 been replayed
at a time point 130, 10 TTIs go by before replaying the PDU with
SN=32 at a time point 140. In other words, since the receiver moves
out of the coverage of the faster cell A, the receiver can only
receive the data stream from the slower cell B. If the receiver
cannot receive the PDU with SN=31 at the time point 120, there is a
long interruption in replaying the data stream. Hence an original
interval of 1 TTI (20 ms) is delayed to be 10 TTIs (200 ms) and
causes discontinuity in program replay and affects program quality.
Similarly, after replaying a PDU with SN=76 at a time point 150,
there is a delay of 8 TTIs before replaying a PDU with SN=78 at a
time point 160. In even worse cases, if the receiving window size
of the Duplicate Avoidance and Reordering Function is large (for
instance, DAR_Window_Size=64), there can be a data stream delay
longer than 1 second that leads to obvious program interruptions,
which may get users frustrated.
[0017] 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.
[0018] 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 INVENTION
[0019] A 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.
[0020] 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
[0021] FIG. 1 to FIG. 3 are diagrams representing variables and SNs
of received PDUs when a receiver moves between a faster cell and a
slower cell in UMTS of the prior art.
[0022] FIG. 4 is a block diagram of a mobile communications
device.
[0023] FIG. 5 is a schematic diagram of the program code in FIG.
4.
[0024] FIG. 6 is a flow chart of a procedure of a first embodiment
for reducing data stream jittering in a selective combining system
in the present invention.
[0025] FIG. 7 to FIG. 9 are diagrams representing variables and SNs
of received PDUs when a receiver moves between a faster cell and a
slower cell according to the procedure in FIG. 6.
[0026] FIG. 10 is a flow chart of a procedure of a second
embodiment for reducing data stream jittering in a selective
combining system in the present invention.
[0027] FIG. 11 to FIG. 13 are diagrams representing variables and
SNs of received PDUs when a receiver moves between a faster cell
and a slower cell according to the procedure in FIG. 10.
[0028] FIG. 14 is a flow chart of a procedure of a third embodiment
for reducing data stream jittering in a selective combining system
in the present invention.
DETAILED DESCRIPTION
[0029] 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.
[0030] First of all, please refer to FIG. 4. FIG. 4 is a block
diagram of a mobile communications device 400. For simplicity, FIG.
4 only shows an input device 402, an output device 404, a control
circuit 406, a central processor 408, a storage device 410, a
program code 412, and a transceiver 414 of the mobile
communications device 400. In the mobile communications device 400,
the control circuit 406 executes the program code 412 stored in the
storage device 410 with the central processor 408, and then
controls operations of the mobile communications device 400. The
mobile communications device 400 can receive signals inputted by
users through the input device 402, or output signals like images,
sounds etc. through the output device 404 (such as monitor, speaker
etc.). The transceiver 414 is used for receiving radio signals and
delivering received radio signals to the control circuit 406 or
transmitting signals submitted from the control circuit 406 in a
radio manner. In a structure of a communications protocol, the
transceiver 414 is known as a part of Layer one, whereas the
control circuit 406 is an application of Layer two and Layer
three.
[0031] Please refer to FIG. 5. FIG. 5 is a schematic diagram of the
program code 412 in FIG. 4. The program code 412 comprises an
application program layer 500, a Layer three interface 502, a Layer
two interface 506, and a Layer one interface 518. When transmitting
signals, the Layer two interface 506 stores a plurality of Service
Data Units (SDUs) 508 submitted from the Layer three interface 502
in a buffer 512. Then, the Layer two interface 506 generates a
plurality of PDUs 514 according to the SDUs 508 stored in the
buffer 512 and outputs the generated PDUs 514 to a destination
through the Layer one interface 518. In reverse, when receiving a
radio signal, the signal is received through the Layer one
interface 518 and the Layer one interface 518 delivers PDUs 514 to
the Layer two interface 506. The Layer two interface 506
reassembles the PDUs 514 to SDUs 508 and stores the SDUs 508 in the
buffer 512. At last, the Layer two interface 506 delivers the SDUs
508 stored in the buffer 512 to the Layer three interface 502.
[0032] The 3.sup.rd 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.
[0033] Please refer to FIG. 6. FIG. 6 is a flow chart of a
procedure 600 of a first embodiment for reducing data stream
jittering in a selective combining system. The selective combining
system can be a mobile communications system, such as UMTS,
operating in UM. The procedure 600 can be compiled into the
duplicate avoidance and reordering program code 509. The procedure
600 comprises following steps.
[0034] Step 602: start.
[0035] 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.
[0036] 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.
[0037] Step 608: deliver a received packet following the plurality
of missing packets in sequence to an upper layer.
[0038] Step 610: end.
[0039] 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.
[0040] For example, please refer to FIG. 7 to FIG. 9. As displayed
in FIG. 7 to FIG. 9, a first row and a second row (i.e. SNs of PDUs
received by the receiver from a cell A1 and a cell B1 respectively)
are the same as displayed in the first row and the second row (i.e.
SNs of PDUs received by the receiver from the cell A and the cell B
respectively) in FIG. 1 to FIG. 3. They have the same symbols,
numbers, and descriptions to have a clear comparison between the
procedure 600 of the present invention and the prior art.
[0041] From FIG. 7 to FIG. 9, a time sequence of a data stream
transmitted by the cell B1 is behind the cell A1. Therefore, the
procedure 600 first determines that the cell B1 is the slowest cell
followed by the receiver determining a packet with SN=31 is missing
from the data sequence transmitted by the slowest cell B1 at a time
point 722 (should have been received at a time point 720 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 is 1 in this case, so that at a time point 220 the
variable VR(UDR) is set to be 32. This means that the receiver
considers the PDU with SN=31 as received and delivers a PDU with
SN=32 to the upper layer for further operations.
[0042] 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.
[0043] 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.
[0044] Additionally, from FIG. 7 to FIG. 9, between a time point of
742 and a time point of 748, the receiver cannot receive PDUs with
SN=49 to 63 from the slowest cell B1, but it is not known until a
time point 750. At the time point 750, after the receiver receives
a PDUs with SN=64, the receiver then determines a situation as
described above. Thus, between the time point of 742 and the time
point of 748, a determining requirement of the step 606 in the
procedure 600 does not stand, the step 608 is not executed and the
variable VR(UDR) is updated as it is in the prior art. After the
receiver replays a PDUs with SN=48 at a time point 232, there are 7
TTIs passing by before replaying a PDUs with SN=56 at a time point
234. This means, a time interval between replaying the PDUs with
SN=48 and replaying the PDUs with SN=56 exactly equals to the
original time interval between the two PDUs. The user senses a part
of the program is discontinued, but there is no time jump as the
program resumes later. The 7 TTIs between the time point 232 and
the time point 234 correspond to the missing PDUs with SN=49 to 55.
After the receiver replays the PDUs with SN=48 at the time point
232, the receiver does not replay the PDUs with SN=56 immediately
at a next TTI of the time point 232 so that the user will not be
confused by discontinuity of the service content.
[0045] 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.
[0046] Please refer to FIG. 10. FIG. 10 is a flow chart of a
procedure 1000 of a second embodiment for reducing data stream
jittering in a selective combining system. The selective combining
system can be a mobile communications system, such as UMTS,
operating in UM. The procedure 1000 can be compiled into the
duplicate avoidance and reordering program code 509. The procedure
1000 comprises following steps.
[0047] Step 1002: start.
[0048] 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.
[0049] 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.
[0050] Step 1008: deliver a received packet following the plurality
of missing packets in sequence to an upper layer.
[0051] Step 1010: end.
[0052] 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.
[0053] 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.
[0054] For example, please refer to FIG. 11 to FIG. 13. As
displayed in FIG. 11 to FIG. 13, a first row and a second row (i.e.
SNs of PDUs received by the receiver from a cell A2 and a cell B2
respectively) are the same as displayed in the first row and the
second row (i.e. SNs of PDUs received by the receiver from the cell
A and the cell B respectively) in FIG. 1 to FIG. 3. They have the
same symbols, numbers, and descriptions to have a clear comparison
between the procedure 1000 of the present invention and the prior
art. According to the procedure 1000 of the present invention, the
receiver first determines the local slowest cell according to
timing sequences of data streams transmitted at different time
points from all neighboring cells.
[0055] 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.
[0056] 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.
[0057] 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.
[0058] 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.
[0059] 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.
[0060] Please refer to FIG. 14. FIG. 14 is a flow chart of a
procedure 1400 of a third embodiment for reducing data stream
jittering in a selective combining system. The selective combining
system can be a mobile communications system, such as UMTS,
operating in UM. The procedure 1400 comprises following steps.
[0061] Step 1402: start.
[0062] Step 1404: determine a minimum transition time period
required to change to another cell in the selective combining
system.
[0063] Step 1406: keep a maximum time difference of transmitting
packets between cells to be less than or equal to the minimum
transition time.
[0064] Step 1408: end.
[0065] 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 FIG.
1 to FIG. 3, a minimum transition time required for changing cells
is 2 TTIs, therefore the network transmitter controls a time
difference between the cell A and the cell B from 9 TTIs, as shown
in FIG. 1 to FIG. 3, to be within 2 TTIs. This can be achieved by
keeping the timing sequence of the cell B the same and shifting the
timing sequence of the cell A back 7 TTIs so that an SN of the time
point 102 should be changed to 48 from 55 as shown, and there will
be no large data losses in transition times later. In addition,
after keeping a transmitting time difference between cells in an
appropriate range, the receiving window size of the Duplicate
Avoidance and Reordering Function can be set to be a value
corresponds to the time difference.
[0066] 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.
[0067] 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.
* * * * *