EP1552644A1 - Streaming media - Google Patents

Streaming media

Info

Publication number
EP1552644A1
EP1552644A1 EP03769522A EP03769522A EP1552644A1 EP 1552644 A1 EP1552644 A1 EP 1552644A1 EP 03769522 A EP03769522 A EP 03769522A EP 03769522 A EP03769522 A EP 03769522A EP 1552644 A1 EP1552644 A1 EP 1552644A1
Authority
EP
European Patent Office
Prior art keywords
client device
streaming
media
streaming server
mobile client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
EP03769522A
Other languages
German (de)
French (fr)
Other versions
EP1552644B1 (en
Inventor
Igor D.D. Curcio
Miikka Lundan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of EP1552644A1 publication Critical patent/EP1552644A1/en
Application granted granted Critical
Publication of EP1552644B1 publication Critical patent/EP1552644B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/02Buffering or recovering information during reselection ; Modification of the traffic flow during hand-off
    • H04W36/023Buffering or recovering information during reselection

Definitions

  • a packet switched streaming service PSS is currently being standardized for mobile environment by 3GPP (3 rd Generation Partnership Project).
  • An example of a communications system capable of streaming media is shown in Figure 1.
  • the system comprises a streaming server 111 which is coupled to an IP-network (Internet Protocol) 104.
  • the IP -network 104 may be, for example, the Internet or a service provider operator's intranet (an intranet network belonging to the operator's domain).
  • the HP-network 104 is coupled to a core network 103 of a mobile communications network via a G interface.
  • the mobile communications network also has a radio access network (RAN) 102 coupled to the core network 103.
  • RAN radio access network
  • the radio access network 102 provides mobile communica- tions devices 101 with access to the mobile communications network over an air- interface. Said access may be provided either by circuit switched means (circuit switched voice or data call) or packet switched means or both.
  • circuit switched means circuit switched voice or data call
  • packet switched means packet switched means or both.
  • GPRS General Packet Radio Service
  • RAN radio access network
  • BSC base station controllers
  • streaming media a sequence of 'moving images' (i.e. video) or sound (i.e. audio) or a sequence of 'moving images' together with sound (i.e. multimedia) is sent in a compressed form from the streaming server 111 to a mobile communications device 101 (hereinafter referred to as a client device 101).
  • a client device 101 a mobile communications device 101
  • the streaming technique enables sending of media (video and/or audio) from the streaming server 111 to the client device 101 in a continuous manner and playing of the media as it arrives at the client.
  • a first base station BSl of the radio access network 102 serves the area of a first cell 201 whereas a second base station BS2 of the radio access network 102 serves the area of a second cell 202.
  • the client device 101 is served by the first base station BSl, i.e. the client device 101 has an active radio rink with the first base station BSl. This situation is shown on the left side of the Figure 2.
  • the client device 101 is served by the second base station BS2.
  • the radio link with the first base station BSl shown by a dotted line, is dropped. This situation is shown on the right side of the Figure 2.
  • the cell reselection (CR) can be divided in three periods in time:
  • the client device 101 During the pre-CR period, received signal quality in the first cell weakens and the client device 101 starts cell reselection signaling. The client device 101 is able to receive streaming media via the first base station BSl during that period. During the CR period, the actual cell reselection is performed. The client device 101 can not receive streaming media during that period. During the post-CR period, the client device 101 is able to receive streaming media via the second base station BS2.
  • the cell reselection may cause a long break in service.
  • a cell reselection (CR period) in a case where GPRS is used as radio bearer may take up to 30-40 seconds.
  • This will affect an ongoing streaming session. For example, part of the packets carrying streaming media may be lost and/or freezing of the played media may occur at the client device 101. If the streaming media comprises a video stream, the freezing means that a still image will appear and stay for a period of time on a client device display before the streaming media is again received and can be played again. If the streaming media comprises an audio stream, the freezing means that no sound is played back (i.e. silence) until the CR period is over.
  • a request requesting the streaming server to send the streaming media may be sent from the mobile client device to the streaming server before or after the mentioned cell reselection.
  • the mentioned request is not limited to requesting to send only the media which the mobile client device is (or was) not able to receive due to the cell reselection (during a cell reselection period).
  • the request may be construed such that what is actually requested is: resending of a portion of a media content not received as well as sending any remaining portion of the media content.
  • media is considered to mean either video or audio or another media, such as still image, or any combination thereof, i.e multimedia.
  • a resending request is sent in response to the cell reselection.
  • the re- sending request is preferably an application layer request sent between a mobile client device application and a streaming server application.
  • the streaming server is requested to send at an increased speed for a determined period of time in order to increase at the client device a degree of fullness of a temporary store, such as a buffer, in which the streaming media is temporarily stored before playback.
  • a degree of fullness of a temporary store such as a buffer
  • this is done by by requesting the streaming server to switch from sending a higher bit rate media stream to sending a lower bit rate media stream at an increased speed.
  • the higher and lower bit rate streams are preferably provided by a multi-rate codec.
  • a mobile client device for receiving streaming media from a streaming server over an air- interface, the mobile client device comprising: means for requesting the streaming server to send streaming media which the mobile client device is not able to receive due to a cell reselection.
  • the air-interface couples said mobile client device to a mobile communications network.
  • the mobile client device preferably comprises a cellular mobile phone.
  • a system comprising a streaming server and a mobile client device, for streaming of media from the streaming server to the mobile client device over an air-interface, the system comprising, at the mobile client device: means for requesting the streaming server to send streaming media which the mobile client device is not able to receive due to a cell reselection, the system further comprising, at the streaming server: means for receiving the request; and means for acting upon the received request.
  • a computer program executable in a mobile client device comprising: program code for causing the mobile client device to request the streaming server to send streaming media which the mobile client device is not able to receive due to a cell reselection.
  • Figure 1 shows a communications system capable of streaming media
  • Figure 2 shows a cell reselection situation in the communications system of Figure 1;
  • FIG 5 shows another illustration of the situation which is behind Figure 4.
  • FIG. 8 illustrates a preferred embodiment of the invention
  • Figure 9 shows a client device according to a preferred embodiment of the invention.
  • Figure 10 shows a streaming server according to a preferred embodiment of the invention.
  • FIG 11 illustrates three ways of sending messages according to preferred embodiments of the invention.
  • the system shown in Figure 1 can also be used in the preferred embodiments of the invention (the same applies to Figure 2). Accordingly, the system comprises a streaming server 111 which is coupled to an IP-network 104.
  • the HP -network 104 maybe, for example, the Internet or a service provider operator's intranet.
  • the IP- network 104 is coupled to a core network 103 of a mobile communications network via a G; interface.
  • the mobile communications network also has a radio access network (RAN) 102 coupled to the core network 103.
  • the radio access network 102 provides mobile communications devices 101 with access to the mobile communications network over an air-interface. Said access may be provided either by circuit switched means (circuit switched voice or data call) or packet switched means or both.
  • GPRS General Packet Radio Service
  • GPRS General Packet Radio Service
  • a mobile communications device 101 (again referred to as a client device 101) has established a streaming session with the streaming server 111 when being served by the first base station BSl.
  • a video streaming session is considered.
  • a corresponding consideration applies to an audio streaming session as well as to a multimedia (e.g. video with audio) streaming session.
  • RTSP Real Time Streaming Protocol
  • RTP Real time Transport Protocol
  • the client device now undergoes a cell reselection from the first cell 201 to the second cell 202 (Fig. 2).
  • the radio access network (RAN) 102 may comprise different radio access networks. It may comprise a GPRS (GPRS-only) RAN, a 3G (third generation) RAN or a combination thereof.
  • the first cell 201 (served by the base station BSl) and the second cell 202 (served by the base station BS2) may therefore be, for example, cells of the GPRS RAN or 3G RAN.
  • the cell reselection can occur, for example, between base stations belonging to GPRS RAN, between base stations belonging to 3G RAN or between a base station belonging to GPRS RAN and a base station belonging to 3G RAN.
  • the client device 101 can not receive streaming media during the CR period. Therefore, when the CR period begins the client device buffer starts emptying because the buffer content is further played while the continuous filling is stopped.
  • the client device buffer starts emptying because the buffer content is further played while the continuous filling is stopped.
  • the client device buffer (in time) is shorter than the time that cell reselection takes, i.e. the time to empty a full client device buffer is shorter than the CR period,
  • the client device buffer (in time) is longer than the time that cell reselection takes, i.e. the time to empty a full client device buffer is longer than the CR period.
  • the buffer will become totally empty during the CR period. Since the buffer becomes empty, the client device 101 has no media to play anymore. Therefore, the client device 101 starts rebuffering. Rebuffering can be started during the post-CR period, i order to get the rebuffering started the client device 101 can use an RTSP PAUSE/PLAY method. In this method, the client device 101 first sends an RTSP PAUSE message to the streaming server 111. The PAUSE message will cause the server 111 to pause sending of the media flow. Subsequently, the client device 101 sends an RTSP PLAY message which requests the streaming server 111 to start resending the streaming media from the last received frame onwards.
  • Rebuffering starts when the client again starts receiving the streaming media.
  • the client device buffer is full, playing of the streaming media is restarted from the last received frame onwards, hi the meantime, the last received frame is shown as a still image on a client device display.
  • no packets are effectively lost since the media flow which is not received at the client device during the CR period is resent from the server 111 to the client device 101 after the CR period.
  • the client device 101 Since the client device 101 could not receive streaming media during the CR period it has not even received the frame that should be showed after the last frame of DATA . There exists a temporal gap in the buffered media. As a result, the client device 101 will skip showing the sequence of streaming media (video) which could not be received due to the cell reselection Concerning an audio stream, the same effect occurs, i.e ; the client device 101 will skip playing sound which could not be received.
  • the second case is further illustrated with the aid of Figure 5. It is to be noted that Figure 5 only shows a very simplified case.
  • the time is considered to flow from left to right in Figure 5.
  • the streaming media sequence that the server sends comprises video frames A-S.
  • the frames are received at the client device and buffered before playing.
  • the playing of the media starting from frame A starts when the buffer is full (i.e. when the frames A-G have been stored in the buffer), the frames (moving video picture) are subsequently shown on a client device display.
  • the buffering of the frames following frame G is not shown in Figure 5 for clarity reasons.
  • the media flow from the server to the client device is not possible during the CR period. Therefore, the client device does not receive the frames L-O. Otherwise, the media flow is perfectly received at the client device. Now that the the CR period is shorter than the buffer size, the showing of the frame (frame K) last received before the CR period will be followed by the showing of the frame (frame P) first received after the CR period. Video frames L-O are not shown at all. Concerning an audio stream, the same effect occurs, i.e. the user hears a pause and a temporal gap in the sound.
  • the intra frames contain all necessary information of an image whereas inter-frames only contain changes or predicted changes compared to a previous image.
  • the previous image may be an intra frame or an inter frame. Therefore, if the frame P is an intra frame the shown picture only warps ahead in time from frame K to frame P. In this case the frames L-O are not simply shown to the user. But if the frame P is an inter frame severe distortion in the shown (moving) picture is likely to occur before the next intra frame is received and played.
  • a preferred embodiment of the invention as shown in Figure 6 concentrates on the above mentioned problem relating to the second case.
  • the buffer is longer than the duration of the CR period. Therefore, the buffer does not become totally empty during the CR period but only partially empty.
  • Figure 6 only shows a very simplified case.
  • the time is considered to flow from left to right in Figure 6.
  • the streaming media sequence that the server sends comprises frames A-S.
  • the frames are received at the client device and buffered before playing.
  • the playing of the media starting from frame A starts when the buffer is full, the frames (moving video picture) are subsequently shown on a client device display.
  • the buffering of the frames following frame G is not shown in Figure 6 for clarity reasons.
  • the media flow from the server to the client device is not possible during the CR period. Therefore, the client device does not receive the frames L-O. Otherwise, the media flow is perfectly received at the client device.
  • PAUSE message An example of the PAUSE message is as follows:
  • the PAUSE message informs the server that a change is coming.
  • An example of the subsequently sent PLAY message is as follows: PLAY rtsp://example.com/foo RTSP/1.0 CSeq: 7
  • the message field 'Range' tells the starting point of resending. hi this example, the starting point is 28 seconds from the start of the streaming media sequence. In relation to the embodiment shown in Figure 6, this point would be exactly the time of frame L in the streaming media sequence.
  • the frames (packets) that were lost during the CR period will be resent from the server to the client devide. Also, since the buffer size is longer than the duration of the CR period, no interruption in the shown video picture should appear and the user experience is maximized.
  • the client device buffer stays emptier than before, for the reasons as described in the foregoing. Therefore if, for example, a new cell reselection is to be performed in a near future, the emptier buffer may cause the same drawback as discussed in connection with the first case above (i.e. the case in which the client device buffer was shorter than the time that cell reselection takes).
  • the client device requests the server to switch to sending a lower bit rate streaming media sequence, but to use in the actual sending the same transmission bit rate (hereinafter referred to as an original transmission bit rate) as before.
  • an original transmission bit rate the client device requests the server to speed up the transmission of the lower bit rate sequence by a speeding factor. Speeding up the transmission bit rate causes more data to be written in the buffer than read out from the buffer. Therefore, the degree of fullness of the buffer increases as desired.
  • the server is asked to switch from sending the original sequence encoded at a first bit rate to sending a new corresponding sequence encoded at a second bit rate lower than the first bit rate and to increase the transmission bit rate of the new sequence in order to reach the original transmission bit rate (bandwidth).
  • bit rate at which a media stream is encoded is a different concept than the transmission bit rate.
  • the bit rate at which the media stream has been encoded has an effect on the picture quality. If the media stream has been encoded at a higher bit rate, this means that more bits have been used in encoding compared to encoding at a lower bit rate. This typically results in a better picture quality.
  • the transmission bit rate is the bit rate at which the media stream is actually sent and it depends on the available bandwidth.
  • the request to switch to sending a lower bit rate sequence and to speed up the transmission bit rate can be delivered by using the RTSP PAUSE/PLAY method.
  • the client device desires to fill the client device buffer during the post- CR period, it first sends a PAUSE message, corresponding to the one presented already in the preceding description, to the server to indicate that a change is coming. Subsequently it generates a PLAY message and sends it to the server.
  • the PLAY message shown would suit for an example in which the server initially sends a 30 kbps bit rate sequence at an original transmission bit rate of 30 kbps and in which the server, in order to fill the buffer, is desired to switch into sending a sequence whose bit rate is 20 kbps and to speed up the sending at a speeding factor 1.5 to reach the original transmission bit rate of 30 kbps during a 12 seconds filling period (i.e. between the time instants of 28 and 40 seconds of the media sequence).
  • the client knows the possible bit rate options (they are typically communicated from the server to the client during session setup, for example, with the aid of a 200 OK response to an RTSP DESCRIBE message) it can calculate the speeding factor needed to reach the original bitrate using the following formula:
  • the client device When the buffer is full, the client device sends another RTSP PAUSE and PLAY message pair to the server.
  • An example of the PLAY message is as follows:
  • the client device can calculate the length of the buffer filling period using the following formulas: LowSeqTime filling period ⁇ speeding factor
  • FIG. 7 The filling of the buffer is illustrated in Figure 7. It is to be noted that Figure 7 only shows a very simplified case. All delays, for example, have been ignored. The time is considered to flow from left to right in Figure 7. It can be seen that the buffer starts emptying when the CR period starts.
  • the server Upon receiving the first PLAY message the server switches to sending a media sequence having a lower bit rate (here: 20 kbps) and speeds up the sending by a speeding factor (here again: 1.5). Since the speeding factor is 1.5, the buffer filling takes twice the time that the emptying period lasted. For example, if the emptying period lasted for 25 seconds, the filling period should be 50 seconds with this speeding factor.
  • the second PLAY message is sent and the server switches to sending the original media sequence having a higher bit rate (here: 30 kbps) and continues sending at the original transmission bit rate.
  • a video stream typically comprises both intra and inter frames, wherein the intra frames are 'independent frames' containing all necessary information of an image whereas inter-frames only contain changes or predicted changes compared to a previous image.
  • the timing of the switch from the lower bit rate sequence to the original bit rate sequence is more closely de- scribed with this respect.
  • the purpose is to time, whenever possible, the switch from the lower bit rate sequence to the original bit rate sequence to take place at the point of an intra frame of the original bit rate sequence (or, more generally, at the point of an intra frame of the sequence to which the sending is switched). In this way, prediction errors and/or jumps in media (frame) flow can be avoided.
  • Figure 8 illustrates this embodiment. It is to be noted that Figure 8 only shows a simplified case. The time is considered to flow from left to right in Figure 8. In this embodiment, the first switch from the original bit rate sequence to the lower bit rate sequence is effected at point 28 seconds with the aid of a first PAUSE/PLAY message pair.
  • the parameter 'IFrameTimeoriginai can be calculated in the client device from the original bit rate sequence before switching to the lower bit rate sequence.
  • the calculation of the suitable point in time for swiching back to the original bit rate sequence can be performed using the following formula: SwitchTime + filling period
  • SeqChangeTime IFrameTime 0ri inal IFrameTime 0rigiml
  • 'SeqChangeTime 1 indicates the point in time for swiching back to the original bit rate sequence and the brackets indicate a Zoor-function (or trunc- function) which truncates the fractional part of the value computed in the brackets. For example, if the time required to totally fill the buffer, i.e. 'filling period' is 16 seconds, the time at which the first switch is effected, i.e. 'SwitchTime' is 28 seconds and the time difference between two adjacent intra frames in the original sequence, i.e.
  • the second PAUSE/PLAY message pair is sent at point 40 seconds, as indicated in Figure 8.
  • the starting point and stopping point to be placed in the message field 'Range' of the PLAY message are 28 seconds and 40 seconds, respectively.
  • the starting point of the resending request is adjusted by a necessary amount of frames (or time) backwards such that there will be an intra frame in the lower bit rate sequence at the starting point, hi this case, a set of last received frames before the CR period, which belong to a time period subsequent to the starting point, are ignored at the client device in order to guarantee a continuous playback.
  • the switches between two different bit rate sequences are performed without the timing method(s) just described.
  • switch frames are frames which contain "difference" information between corresponding frames in different bit rate sequences.
  • a bridge and switch between the two sequences is performed with the aid of these frames using the difference information.
  • FIG 9 shows a client device 101 according to a preferred embodiment of the invention.
  • the client device may be a mobile station of a cellular radio telephone network.
  • the client device 101 comprises a processing unit MCU, a radio frequency part RF, and a user interface UI.
  • the radio frequency part RF and the user interface UI are coupled to the processing unit MCU.
  • the user interface UI typically comprises a display, one or more speaker and a keyboard (not shown) with the aid of which a user can use the device 101.
  • the processing unit MCU comprises a processor (not shown), a memory 210 and computer software.
  • the software has been stored in the memory 210.
  • the aforementioned client device buffer 240 is also comprised in the memory 210.
  • the processor controls, in accordance with the software, the operation of the client device 101, such as receiving of the streaming media sent from the server 111 and sending of requests to the server 111 via the radio frequency part RF, reading and writing of received streaming media (video and/or audio) in the buffer 240, and presenting of the received streaming video on the display and audio on the one or more speaker of the user interface UI.
  • a suitable size of the buffer (in time) can be, for example, 1.5 or 2 times the maximum (or average) CR period time.
  • the software comprises a streaming client software application 220 (hereinafter referred to as client software 220), a protocol stack 230 for implementing the necessary protocol layers such as an RTP layer, an RTSP layer, an SDP (Session Description Protocol) layer, a TCP layer (Transmission Control Protocol), an IP layer and, below the IP-layer, lower protocol layers.
  • client software 220 a streaming client software application 220
  • protocol stack 230 for implementing the necessary protocol layers such as an RTP layer, an RTSP layer, an SDP (Session Description Protocol) layer, a TCP layer (Transmission Control Protocol), an IP layer and, below the IP-layer, lower protocol layers.
  • the software comprises as a part of the client software 220 a media player for playing the received media.
  • the processor generates, based on the client software 220 the aforementioned PAUSE and PLAY messages and sends them to the server 111 via the radio frequency part RF.
  • the processor also performs, based on the client software 220, the necessary calculations relating to the speeding factor, relating to the buffer filling period and relating to the suitable point in time for swiching from a lower bit rate sequence back to the original bit rate sequence.
  • the generation and sending of the resending request (PLAY message) and other appropriate action is triggered by a cell reselection event occurred in the mobile client device 101.
  • the event can be detected by the client software 220 by reception of an asynchronous message from an API (Application Programming Interface) provided by the lower layers of the protocol stack 230. Alternatively or in addition, the event can be detected by monitoring the buffer level, i.e. the degree of fullness of the client device buffer 240.
  • FIG 10 shows a streaming server 111 according to a preferred embodiment of the invention.
  • the streaming server 111 comprises a processing unit CPU, a first memory 310, an IP network interface 350, and a second memory 360.
  • the first memory 310, the IP network interface 350, and the second memory 360 are coupled to the processing unit CPU.
  • the processing unit CPU controls, in accordance with computer software stored in the first memory 310, the operation of the streaming server 111, such as processing of requests received from the client device 101 and the sending of prerecorded media streams, stored in the second memory (disk) 360, to the client device 101 via the IP network interface 350.
  • the software comprises a streaming server software application 320 (hereinafter referred to as server software 320), a protocol stack 330 for implementing the necessary protocol layers such as an RTP layer, an RTSP layer, an SDP layer, a TCP layer, an IP layer and lower protocol layers.
  • server software 320 a streaming server software application 320
  • protocol stack 330 for implementing the necessary protocol layers such as an RTP layer, an RTSP layer, an SDP layer, a TCP layer, an IP layer and lower protocol layers.
  • the present invention provides means for reducing the effects of cell reselection on an ongoing streaming session.
  • a request for resending e.g. a PLAY message
  • the application layer i.e. between the client software application 220 and the server software application 320.
  • RTSP over TCP (Transmission Control Protocol) or RTSP over another reliable protocol is used in transferring application layer requests from the client device to the streaming server.
  • the reception of the messages at the streaming server can therefore basically be guaranteed.
  • the bandwidth information of the sequence can be sent to the streaming server 111 also by other means than the RTSP field 'Bandwidth' (for example, by requesting a specific sequence encoded at a bitrate known to the client device 101).
  • the field 'Bandwidth' is not used, the fields 'Speed' and 'Range' are recalculated according to the actual known sequence bit rate.
  • the network (air-interface) bandwidth changes during the buffer filling period.
  • the client device 101 supports bandwidth adaptation that involves bit stream switching, the client device 101 should pause the buffer filling (with an RTSP PAUSE message) before sending a bandwidth adaptation message to the streaming server 111.
  • the client device can start the buffer filling again and recalculate the 'Bandwidth', 'Speed' and 'Range' values according to the bit rate and timing information of the new media stream.
  • the mobile client device 101 sends, before the CR period, to the streaming server 111 an appropriate message requesting the streaming server 111 to stop sending the streaming media and to start sending again at a suitable point in time after the CR period.
  • Sending of the message is triggered, during the pre-CR period, by a cell reselection initiation event notified to the client software 220 by means of the lower layer API.
  • the mobile client device 101 knowing approximately the time that the cell reselection is going to take, estimates a suitable point in time at which it is again able to receive data. It inserts this information to the message so as to prevent the streaming server 111 from starting to send again too early.
  • Case 2 The first PAUSE message is sent before the CR period.
  • the associated PLAY message is sent after the CR period.
  • the second PAUSE and PLAY messages are sent when the buffer 240 is full.
  • Case 3 The first PAUSE message is sent before the CR period.
  • the associated PLAY message is sent after the PAUSE message but before the CR period.
  • the second PAUSE and PLAY messages are sent when the buffer 240 is full.
  • the sending of the second PAUSE message is not necessary, if the first PLAY message contains a closed 'Range' field.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention relates to a method for streaming of media from a streaming server (111) to a mobile client device (101) over an air-interface, wherein, after a cell reselection, the method comprises requesting the streaming server (111) to resend streaming media which the mobile client device (101) was not able to receive due to the cell reselection.

Description

STREAMING MEDIA
FIELD OF THE INVENTION
The invention relates to streaming of media from a streaming server to a mobile client device over an air-interface.
BACKGROUND OF THE INVENTION
A packet switched streaming service PSS is currently being standardized for mobile environment by 3GPP (3rd Generation Partnership Project). An example of a communications system capable of streaming media (streaming video and/or audio) is shown in Figure 1. The system comprises a streaming server 111 which is coupled to an IP-network (Internet Protocol) 104. The IP -network 104 may be, for example, the Internet or a service provider operator's intranet (an intranet network belonging to the operator's domain). The HP-network 104 is coupled to a core network 103 of a mobile communications network via a G interface. The mobile communications network also has a radio access network (RAN) 102 coupled to the core network 103. The radio access network 102 provides mobile communica- tions devices 101 with access to the mobile communications network over an air- interface. Said access may be provided either by circuit switched means (circuit switched voice or data call) or packet switched means or both. In the following, GPRS (General Packet Radio Service) is used as an example of a packet switched means to communicate over the air-interface. Concerning GPRS, the generic term radio access network (RAN) is considered to comprise base (transceiver) stations (BS) and base station controllers (BSC).
In streaming media a sequence of 'moving images' (i.e. video) or sound (i.e. audio) or a sequence of 'moving images' together with sound (i.e. multimedia) is sent in a compressed form from the streaming server 111 to a mobile communications device 101 (hereinafter referred to as a client device 101). In contrast to the technique in which an entire media file has to be arrived at the client before it can be played, the streaming technique enables sending of media (video and/or audio) from the streaming server 111 to the client device 101 in a continuous manner and playing of the media as it arrives at the client.
When media is streamed in cellular mobile communications systems such as the system presented in Figure 1, new problems specific to the mobile environment arise. These problems are mostly due to the different restrictions of mobile systems. One such problem arises in a cell reselection (i.e. handover) situation presented in Figure 2.
In Figure 2, a first base station BSl of the radio access network 102 serves the area of a first cell 201 whereas a second base station BS2 of the radio access network 102 serves the area of a second cell 202. Before cell reselection, the client device 101 is served by the first base station BSl, i.e. the client device 101 has an active radio rink with the first base station BSl. This situation is shown on the left side of the Figure 2. After the cell reselection, the client device 101 is served by the second base station BS2. The radio link with the first base station BSl, shown by a dotted line, is dropped. This situation is shown on the right side of the Figure 2.
The cell reselection (CR) can be divided in three periods in time:
a) Pre-CR period b) CR period c) Post-CR period.
During the pre-CR period, received signal quality in the first cell weakens and the client device 101 starts cell reselection signaling. The client device 101 is able to receive streaming media via the first base station BSl during that period. During the CR period, the actual cell reselection is performed. The client device 101 can not receive streaming media during that period. During the post-CR period, the client device 101 is able to receive streaming media via the second base station BS2.
The cell reselection may cause a long break in service. For example, a cell reselection (CR period) in a case where GPRS is used as radio bearer may take up to 30-40 seconds. This will affect an ongoing streaming session. For example, part of the packets carrying streaming media may be lost and/or freezing of the played media may occur at the client device 101. If the streaming media comprises a video stream, the freezing means that a still image will appear and stay for a period of time on a client device display before the streaming media is again received and can be played again. If the streaming media comprises an audio stream, the freezing means that no sound is played back (i.e. silence) until the CR period is over.
Accordingly, there is a need to find appropriate means for reducing the effects of cell reselection on an ongoing streaming session.
SUMMARY OF THE INVENTION
According to a first aspect of the invention, there is provided a method for streaming of media from a streaming server to a mobile client device over an air- interface, wherein the method comprises: requesting the streaming server to send streaming media which the mobile client device is not able to receive due to a cell reselection.
A request requesting the streaming server to send the streaming media may be sent from the mobile client device to the streaming server before or after the mentioned cell reselection.
The mentioned request is not limited to requesting to send only the media which the mobile client device is (or was) not able to receive due to the cell reselection (during a cell reselection period). In an embodiment, the request may be construed such that what is actually requested is: resending of a portion of a media content not received as well as sending any remaining portion of the media content.
The term media is considered to mean either video or audio or another media, such as still image, or any combination thereof, i.e multimedia.
Preferably, a resending request is sent in response to the cell reselection. The re- sending request is preferably an application layer request sent between a mobile client device application and a streaming server application.
In a preferred embodiment, the streaming server is requested to send at an increased speed for a determined period of time in order to increase at the client device a degree of fullness of a temporary store, such as a buffer, in which the streaming media is temporarily stored before playback. Preferably, this is done by by requesting the streaming server to switch from sending a higher bit rate media stream to sending a lower bit rate media stream at an increased speed. The higher and lower bit rate streams are preferably provided by a multi-rate codec.
According to a second aspect of the invention, there is provided a mobile client device for receiving streaming media from a streaming server over an air- interface, the mobile client device comprising: means for requesting the streaming server to send streaming media which the mobile client device is not able to receive due to a cell reselection.
Preferably, the air-interface couples said mobile client device to a mobile communications network. The mobile client device preferably comprises a cellular mobile phone.
According to a third aspect of the invention, there is provided a streaming server for sending streaming media to a mobile client device over an air-interface, the streaming server comprising: means for receiving a request requesting the streaming server to send streaming media which the mobile client device is not able to receive due to a cell reselection; and means for acting upon the received request.
According to a fourth aspect of the invention, there is provided a system comprising a streaming server and a mobile client device, for streaming of media from the streaming server to the mobile client device over an air-interface, the system comprising, at the mobile client device: means for requesting the streaming server to send streaming media which the mobile client device is not able to receive due to a cell reselection, the system further comprising, at the streaming server: means for receiving the request; and means for acting upon the received request.
According to a fifth aspect of the invention, there is provided a computer program executable in a mobile client device, the computer program comprising: program code for causing the mobile client device to request the streaming server to send streaming media which the mobile client device is not able to receive due to a cell reselection.
According to a sixth aspect of the invention, there is provided a computer program executable in a streaming server, the computer program comprising: program code for causing the streaming server to receive a request requesting the streaming server to send streaming media which the mobile client device is not able to receive due to a cell reselection; and program code for acting upon the received request.
Dependent claims contain preferable embodiments of the invention. The subject matter contained in dependent claims relating to a particular aspect of the invention is also applicable to other aspects of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the invention will now be described by way of example with reference to the accompanying drawings in which:
Figure 1 shows a communications system capable of streaming media;
Figure 2 shows a cell reselection situation in the communications system of Figure 1;
Figure 3 shows a client device buffer in a situation in which the client device buffer is shorter than the time that cell reselection takes;
Figure 4 shows a client device buffer in a situation in which the client device buffer is longer than the time that cell reselection takes;
Figure 5 shows another illustration of the situation which is behind Figure 4;
Figure 6 shows preferred action in a preferred embodiment of the invention;
Figure 7 illustrates a preferred embodiment of the invention;
Figure 8 illustrates a preferred embodiment of the invention;
Figure 9 shows a client device according to a preferred embodiment of the invention;
Figure 10 shows a streaming server according to a preferred embodiment of the invention; and
Figure 11 illustrates three ways of sending messages according to preferred embodiments of the invention.
DETAILED DESCRIPTION
The system shown in Figure 1 can also be used in the preferred embodiments of the invention (the same applies to Figure 2). Accordingly, the system comprises a streaming server 111 which is coupled to an IP-network 104. The HP -network 104 maybe, for example, the Internet or a service provider operator's intranet. The IP- network 104 is coupled to a core network 103 of a mobile communications network via a G; interface. The mobile communications network also has a radio access network (RAN) 102 coupled to the core network 103. The radio access network 102 provides mobile communications devices 101 with access to the mobile communications network over an air-interface. Said access may be provided either by circuit switched means (circuit switched voice or data call) or packet switched means or both. In the following, GPRS (General Packet Radio Service) is used as an example of a packet switched means to communicate over the air-interface.
h order to better understand the preferred embodiments of the invention, let us consider the following example.
In this example, a mobile communications device 101 (again referred to as a client device 101) has established a streaming session with the streaming server 111 when being served by the first base station BSl. In this example and in the following description, mostly a video streaming session is considered. However, a corresponding consideration applies to an audio streaming session as well as to a multimedia (e.g. video with audio) streaming session.
RTSP (Real Time Streaming Protocol) protocol is used in the streaming session setup. Once the session has been established, the streaming itself may be performed (i.e. media flow may be sent) according to RTP (Real time Transport Protocol) or another protocol. However, if it is desired to make a change in the established session, this will again be done by using RTSP.
At the beginning of the established streaming session, the received streaming media (media flow), transmitted in packets (or frames), is buffered (i.e. temporarily stored) in a buffer at the client device (hereinafter referred to as a client device buffer). When the client device buffer is full, playing (playback) of the streaming media is started at one end of the buffer while the buffer is continuously filled at the other end with received streaming media. Therefore, the buffer should remain nearly full during normal operation of the system.
The client device now undergoes a cell reselection from the first cell 201 to the second cell 202 (Fig. 2). It is to be noted that, although the radio access network (RAN) 102 is illustrated in Figure 2 by a single cloud only, it may comprise different radio access networks. It may comprise a GPRS (GPRS-only) RAN, a 3G (third generation) RAN or a combination thereof. The first cell 201 (served by the base station BSl) and the second cell 202 (served by the base station BS2) may therefore be, for example, cells of the GPRS RAN or 3G RAN. Accordingly, the cell reselection (handover) can occur, for example, between base stations belonging to GPRS RAN, between base stations belonging to 3G RAN or between a base station belonging to GPRS RAN and a base station belonging to 3G RAN.
The client device 101 can not receive streaming media during the CR period. Therefore, when the CR period begins the client device buffer starts emptying because the buffer content is further played while the continuous filling is stopped. Depending on the size of the client device buffer, two different cases can be identified:
i) The client device buffer (in time) is shorter than the time that cell reselection takes, i.e. the time to empty a full client device buffer is shorter than the CR period,
ii) The client device buffer (in time) is longer than the time that cell reselection takes, i.e. the time to empty a full client device buffer is longer than the CR period.
In the first case (Figure 3), the buffer will become totally empty during the CR period. Since the buffer becomes empty, the client device 101 has no media to play anymore. Therefore, the client device 101 starts rebuffering. Rebuffering can be started during the post-CR period, i order to get the rebuffering started the client device 101 can use an RTSP PAUSE/PLAY method. In this method, the client device 101 first sends an RTSP PAUSE message to the streaming server 111. The PAUSE message will cause the server 111 to pause sending of the media flow. Subsequently, the client device 101 sends an RTSP PLAY message which requests the streaming server 111 to start resending the streaming media from the last received frame onwards. Rebuffering starts when the client again starts receiving the streaming media. When the client device buffer is full, playing of the streaming media is restarted from the last received frame onwards, hi the meantime, the last received frame is shown as a still image on a client device display. However, in spite of the drawback of showing a still image, no packets are effectively lost since the media flow which is not received at the client device during the CR period is resent from the server 111 to the client device 101 after the CR period.
hi the second case (Figure 4), the whole content of the buffer has not been played during the CR period. Therefore, the buffer only becomes partially empty during the CR period, i.e. there is still streaming media (DATA) in the buffer when the CR period ends. During the post-CR period (after the CR period) playing of the streaming media stored in the buffer before the CR period (i.e. DATA ) is further continued at one end of the buffer while the other end is filled with the streaming media received after the CR period (i.e. DATA ). If nothing is done, DATA will eventually end and playing is continued with the first frame of data DATA**. No still image is shown. However, the first frame of DATA is not the frame that should be played right after the last frame of DATA . Since the client device 101 could not receive streaming media during the CR period it has not even received the frame that should be showed after the last frame of DATA . There exists a temporal gap in the buffered media. As a result, the client device 101 will skip showing the sequence of streaming media (video) which could not be received due to the cell reselection Concerning an audio stream, the same effect occurs, i.e; the client device 101 will skip playing sound which could not be received.
The second case is further illustrated with the aid of Figure 5. It is to be noted that Figure 5 only shows a very simplified case. The time is considered to flow from left to right in Figure 5. The streaming media sequence that the server sends comprises video frames A-S. The frames are received at the client device and buffered before playing. The playing of the media starting from frame A starts when the buffer is full (i.e. when the frames A-G have been stored in the buffer), the frames (moving video picture) are subsequently shown on a client device display. The buffering of the frames following frame G is not shown in Figure 5 for clarity reasons.
The media flow from the server to the client device is not possible during the CR period. Therefore, the client device does not receive the frames L-O. Otherwise, the media flow is perfectly received at the client device. Now that the the CR period is shorter than the buffer size, the showing of the frame (frame K) last received before the CR period will be followed by the showing of the frame (frame P) first received after the CR period. Video frames L-O are not shown at all. Concerning an audio stream, the same effect occurs, i.e. the user hears a pause and a temporal gap in the sound.
There exists two type of frames: intra frames and inter frames. The intra frames contain all necessary information of an image whereas inter-frames only contain changes or predicted changes compared to a previous image. The previous image may be an intra frame or an inter frame. Therefore, if the frame P is an intra frame the shown picture only warps ahead in time from frame K to frame P. In this case the frames L-O are not simply shown to the user. But if the frame P is an inter frame severe distortion in the shown (moving) picture is likely to occur before the next intra frame is received and played.
A preferred embodiment of the invention as shown in Figure 6 concentrates on the above mentioned problem relating to the second case. In this embodiment, the buffer is longer than the duration of the CR period. Therefore, the buffer does not become totally empty during the CR period but only partially empty. It is to be noted that Figure 6 only shows a very simplified case. The time is considered to flow from left to right in Figure 6. The streaming media sequence that the server sends comprises frames A-S. The frames are received at the client device and buffered before playing. The playing of the media starting from frame A starts when the buffer is full, the frames (moving video picture) are subsequently shown on a client device display. The buffering of the frames following frame G is not shown in Figure 6 for clarity reasons. The media flow from the server to the client device is not possible during the CR period. Therefore, the client device does not receive the frames L-O. Otherwise, the media flow is perfectly received at the client device.
When the CR period is over the client device knows exactly what is the last frame that it has received before the CR period (i.e. during the pre-CR period), hi this embodiment it is frame K. The client device then requests, right after the CR period has been ended, the streaming server to start resending the streaming media from the last received frame onwards. Upon receiving the request the streaming server starts resending the media flow. The first frame to be sent is in this embodiment frame L. Any frames sent and received after the CR period but before the resending has started (possibly some frames starting from frame P) are ignored by the client device. When the streaming media (of frames A-K) stored in the buffer before the CR period ends, then the playing is continued with the first frame (frame L) of the resent streaming media received after the CR period. Therefore, no discontinuity in the shown video picture should appear to the user. In Figure 6, the resent video frames L-O which would have otherwise failed to have been received at the client device are shown in bold font. Correspondingly, concerning an audio stream, the streaming server is requested to start resending the audio stream at a point at which reception has been stopped in the client device. No discontinuity in playback should appear.
In practice, the resending request can be performed by the RTSP PAUSE/PLAY method, hi this method, the client device first sends, after the CR period has been ended, an RTSP PAUSE message to the streaming server. The PAUSE message will cause the server to pause sending of the media flow. However, the playing of the streaming media received at the client device is not paused unless the buffer gets empty (which should not be the case). Subsequently, the client device sends an RTSP PLAY message to the streaming server 111. The PLAY message contains information on the starting point of the resending. At the end of the CR period the client device knows the time of the last received frame. Based on that, the client device determines the starting point before sending the PLAY message. The PLAY message causes the server to start resending.
An example of the PAUSE message is as follows:
PAUSE rtsp://example.com/foo RTSP/1.0 CSeq: 6 Session: 354832
The PAUSE message informs the server that a change is coming. An example of the subsequently sent PLAY message is as follows: PLAY rtsp://example.com/foo RTSP/1.0 CSeq: 7
Session: 354832 Range: npt=28.00-
The message field 'Range' tells the starting point of resending. hi this example, the starting point is 28 seconds from the start of the streaming media sequence. In relation to the embodiment shown in Figure 6, this point would be exactly the time of frame L in the streaming media sequence.
In the embodiment just described, the frames (packets) that were lost during the CR period will be resent from the server to the client devide. Also, since the buffer size is longer than the duration of the CR period, no interruption in the shown video picture should appear and the user experience is maximized.
However, as the case is such that during normal streaming the degree of fullness of the buffer does not change, since the buffer is emptied (played) at the same rate as it is filled, this may cause an additional problem, the embodiment just described, after the cell reselection, the client device buffer stays emptier than before, for the reasons as described in the foregoing. Therefore if, for example, a new cell reselection is to be performed in a near future, the emptier buffer may cause the same drawback as discussed in connection with the first case above (i.e. the case in which the client device buffer was shorter than the time that cell reselection takes).
A preferred embodiment of the invention concentrates on the above identified problem. In this embodiment, to ensure smooth behaviour of the shown video picture (correspondingly: played sound), the client device buffer is filled after the CR period, for a period of time, at a higher rate than it is emptied (played). This period may be called a filling period. When the filling period is over the buffer is full again and normal streaming in which the buffer is filled at the same rate as emptied is resumed.
It is to be noted that normally raising the degree of fullness of the buffer would require the playing to be paused. In the present embodiment, playing is not paused but the degree of fullness of the buffer can still be raised due to the clever buffer management in which the buffer is filled, during playing, at a rate higher than the playing rate.
To raise the degree of fullness of the buffer without pausing the playback, the client device, in this embodiment, requests the server to switch to sending a lower bit rate streaming media sequence, but to use in the actual sending the same transmission bit rate (hereinafter referred to as an original transmission bit rate) as before. In order to reach the original transmission bit rate the client device requests the server to speed up the transmission of the lower bit rate sequence by a speeding factor. Speeding up the transmission bit rate causes more data to be written in the buffer than read out from the buffer. Therefore, the degree of fullness of the buffer increases as desired.
hi other words, the server is asked to switch from sending the original sequence encoded at a first bit rate to sending a new corresponding sequence encoded at a second bit rate lower than the first bit rate and to increase the transmission bit rate of the new sequence in order to reach the original transmission bit rate (bandwidth). It is to be noted that the bit rate at which a media stream is encoded (and will be decoded) is a different concept than the transmission bit rate. The bit rate at which the media stream has been encoded has an effect on the picture quality. If the media stream has been encoded at a higher bit rate, this means that more bits have been used in encoding compared to encoding at a lower bit rate. This typically results in a better picture quality. The transmission bit rate, on the other hand, is the bit rate at which the media stream is actually sent and it depends on the available bandwidth. The request to switch to sending a lower bit rate sequence and to speed up the transmission bit rate can be delivered by using the RTSP PAUSE/PLAY method. When the client device desires to fill the client device buffer during the post- CR period, it first sends a PAUSE message, corresponding to the one presented already in the preceding description, to the server to indicate that a change is coming. Subsequently it generates a PLAY message and sends it to the server.
An example of such a PLAY message is as follows:
PLAY rtsρ://examρle.com/foo RTSP/1.0 CSeq: 7
Session: 354832 Range: npt=28.00-40.00 Bandwidth: 20000 Speed: 1.5
This message contains two optional message fields, namely 'Bandwidth' and 'Speed' to be understood at the client device and streaming server. These fields are already specified as optional fields by the IETF (Internet Engineering Task Force) in the standard RFC 2326 (Real Time Streaming Protocol).
The message field 'Bandwidth' tells the server to change into sending a lower bit rate sequence (here: a sequence whose bit rate is 20 kbps) and the message field 'Speed' tells the server to speed up the sending by a speeding factor (here: 1.5). The message field 'Range' tells the starting point and stopping point in the streaming media sequence in time units (calculated from the beginning of the streaming media sequence(s)).
The PLAY message shown would suit for an example in which the server initially sends a 30 kbps bit rate sequence at an original transmission bit rate of 30 kbps and in which the server, in order to fill the buffer, is desired to switch into sending a sequence whose bit rate is 20 kbps and to speed up the sending at a speeding factor 1.5 to reach the original transmission bit rate of 30 kbps during a 12 seconds filling period (i.e. between the time instants of 28 and 40 seconds of the media sequence).
If the client knows the possible bit rate options (they are typically communicated from the server to the client during session setup, for example, with the aid of a 200 OK response to an RTSP DESCRIBE message) it can calculate the speeding factor needed to reach the original bitrate using the following formula:
original transmission bit rate
Speeding factor = new transmission bit rate
When the buffer is full, the client device sends another RTSP PAUSE and PLAY message pair to the server. An example of the PLAY message is as follows:
PLAY rtsp://example.com/foo RTSP/1.0
CSeq: 67
Session: 354832
Range: npt=40.00-
Bandwidth: 30000
Speed: 1.0
This exemplary message requests the server to start sending the (original) 30 kbps bit rate media sequence (Bandwidth: 30000) at the original transmission bit rate 30 kbps (Speed: 1.0) starting from the time instant 40 seconds of the media sequence (Range: npt=40.00-).
The client device can calculate the length of the buffer filling period using the following formulas: LowSeqTime filling period ■ speeding factor
wherein
original transmission bit rate
LowSeqTime = (BufferSize - BufferData) original transmission bit rate - new transmission bit rate
In these formulas, LowSeqTime indicates the duration of the lower bit rate sequence playing time in the client device, Buffer Size indicates the size of the buffer in seconds and BufferData indicates the data left in the buffer in seconds.
The filling of the buffer is illustrated in Figure 7. It is to be noted that Figure 7 only shows a very simplified case. All delays, for example, have been ignored. The time is considered to flow from left to right in Figure 7. It can be seen that the buffer starts emptying when the CR period starts. Upon receiving the first PLAY message the server switches to sending a media sequence having a lower bit rate (here: 20 kbps) and speeds up the sending by a speeding factor (here again: 1.5). Since the speeding factor is 1.5, the buffer filling takes twice the time that the emptying period lasted. For example, if the emptying period lasted for 25 seconds, the filling period should be 50 seconds with this speeding factor. When the buffer is full the second PLAY message is sent and the server switches to sending the original media sequence having a higher bit rate (here: 30 kbps) and continues sending at the original transmission bit rate.
hi the foregoing, it has been described that, for example, a video stream typically comprises both intra and inter frames, wherein the intra frames are 'independent frames' containing all necessary information of an image whereas inter-frames only contain changes or predicted changes compared to a previous image. In the following preferred embodiment of the invention, the timing of the switch from the lower bit rate sequence to the original bit rate sequence is more closely de- scribed with this respect.
hi this embodiment the purpose is to time, whenever possible, the switch from the lower bit rate sequence to the original bit rate sequence to take place at the point of an intra frame of the original bit rate sequence (or, more generally, at the point of an intra frame of the sequence to which the sending is switched). In this way, prediction errors and/or jumps in media (frame) flow can be avoided. Figure 8 illustrates this embodiment. It is to be noted that Figure 8 only shows a simplified case. The time is considered to flow from left to right in Figure 8. In this embodiment, the first switch from the original bit rate sequence to the lower bit rate sequence is effected at point 28 seconds with the aid of a first PAUSE/PLAY message pair.
As illustrated in Figure 8, the position of intra frames in the original bit rate sequence may differ from the ones of the lower bit rate sequence. However, based on:
• the time required to totally fill the buffer, i.e. filling period' ,
• the time distance of two adjacent intra frames in the original sequence, i.e. an intra frame rate, 'IFrameTimeorigina ', and
• the time at which the first switch from the original bit rate sequence to the lower bit rate sequence is effected, i.e. ' SwitchTime' ,
it can be calculated a suitable point in time for swiching back to the original bit rate sequence. The parameter 'IFrameTimeoriginai can be calculated in the client device from the original bit rate sequence before switching to the lower bit rate sequence. The calculation of the suitable point in time for swiching back to the original bit rate sequence can be performed using the following formula: SwitchTime + filling period
SeqChangeTime = IFrameTime 0ri inal IFrameTime0rigiml
In this formula, 'SeqChangeTime1 indicates the point in time for swiching back to the original bit rate sequence and the brackets indicate a Zoor-function (or trunc- function) which truncates the fractional part of the value computed in the brackets. For example, if the time required to totally fill the buffer, i.e. 'filling period' is 16 seconds, the time at which the first switch is effected, i.e. 'SwitchTime' is 28 seconds and the time difference between two adjacent intra frames in the original sequence, i.e. ' IFrameTimeortginai is 5 seconds, then the point in time for swiching back to the original bit rate sequence is 40 seconds (Se- qChangeTime=5*Αooτ((2O>--\6)l5) = 40 s). Accordingly, the second PAUSE/PLAY message pair is sent at point 40 seconds, as indicated in Figure 8. In this embodiment, the starting point and stopping point to be placed in the message field 'Range' of the PLAY message are 28 seconds and 40 seconds, respectively.
It is to be noted that, due to the intra frame rate, it might not in all cases be possible to totally fill the buffer. For example, in the example just described, it would have taken 4 seconds more to totally fill the buffer. However, the formula gives the closest suitable intra frame to the buffer filling period.
In another embodiment, it may well be that, at the point of the last received frame before the CR period, there is not an intra frame in the lower bit rate media sequence. In this embodiment, the starting point of the resending request is adjusted by a necessary amount of frames (or time) backwards such that there will be an intra frame in the lower bit rate sequence at the starting point, hi this case, a set of last received frames before the CR period, which belong to a time period subsequent to the starting point, are ignored at the client device in order to guarantee a continuous playback. hi another embodiment of the invention, the switches between two different bit rate sequences are performed without the timing method(s) just described. In this embodiment, the first switching point (from higher to lower bit rate sequence) is directly determined by the last received frame and the second switching point (from lower to higher bit rate sequence) is directly determined by the the time required to totally fill the buffer ('filling period'). The switching points can therefore end up being at the point of an intra or inter frame. Should a switching point end up being at the point of an inter frame (for example a P-frame), a small prediction error may occur in the played media, however, in this embodiment, the buffer can be totally filled.
Another way to perform switching is to use so called "switch frames". These are frames which contain "difference" information between corresponding frames in different bit rate sequences. In this embodiment, a bridge and switch between the two sequences is performed with the aid of these frames using the difference information.
Figure 9 shows a client device 101 according to a preferred embodiment of the invention. The client device may be a mobile station of a cellular radio telephone network. The client device 101 comprises a processing unit MCU, a radio frequency part RF, and a user interface UI. The radio frequency part RF and the user interface UI are coupled to the processing unit MCU. The user interface UI typically comprises a display, one or more speaker and a keyboard (not shown) with the aid of which a user can use the device 101.
The processing unit MCU comprises a processor (not shown), a memory 210 and computer software. The software has been stored in the memory 210. The aforementioned client device buffer 240 is also comprised in the memory 210. The processor controls, in accordance with the software, the operation of the client device 101, such as receiving of the streaming media sent from the server 111 and sending of requests to the server 111 via the radio frequency part RF, reading and writing of received streaming media (video and/or audio) in the buffer 240, and presenting of the received streaming video on the display and audio on the one or more speaker of the user interface UI. A suitable size of the buffer (in time) can be, for example, 1.5 or 2 times the maximum (or average) CR period time.
The software comprises a streaming client software application 220 (hereinafter referred to as client software 220), a protocol stack 230 for implementing the necessary protocol layers such as an RTP layer, an RTSP layer, an SDP (Session Description Protocol) layer, a TCP layer (Transmission Control Protocol), an IP layer and, below the IP-layer, lower protocol layers. In addition, the software comprises as a part of the client software 220 a media player for playing the received media.
The processor generates, based on the client software 220 the aforementioned PAUSE and PLAY messages and sends them to the server 111 via the radio frequency part RF. The processor also performs, based on the client software 220, the necessary calculations relating to the speeding factor, relating to the buffer filling period and relating to the suitable point in time for swiching from a lower bit rate sequence back to the original bit rate sequence.
The generation and sending of the resending request (PLAY message) and other appropriate action is triggered by a cell reselection event occurred in the mobile client device 101. The event can be detected by the client software 220 by reception of an asynchronous message from an API (Application Programming Interface) provided by the lower layers of the protocol stack 230. Alternatively or in addition, the event can be detected by monitoring the buffer level, i.e. the degree of fullness of the client device buffer 240. In this case, if the buffer 240 does not receive data for a certain amount X of time (depending on the implementation, the parameter X can be defined as a constant value, and it is a threshold for the client software 220 to understand that the cell reselection event has occurred), and if the client device 101 afterwards starts to receive data after a certain variable amount Y of time (wherein Y > X, and Y is the real duration of the CR period), then the client can trigger the action described in this description.
Figure 10 shows a streaming server 111 according to a preferred embodiment of the invention. The streaming server 111 comprises a processing unit CPU, a first memory 310, an IP network interface 350, and a second memory 360. The first memory 310, the IP network interface 350, and the second memory 360 are coupled to the processing unit CPU.
The processing unit CPU controls, in accordance with computer software stored in the first memory 310, the operation of the streaming server 111, such as processing of requests received from the client device 101 and the sending of prerecorded media streams, stored in the second memory (disk) 360, to the client device 101 via the IP network interface 350.
The software comprises a streaming server software application 320 (hereinafter referred to as server software 320), a protocol stack 330 for implementing the necessary protocol layers such as an RTP layer, an RTSP layer, an SDP layer, a TCP layer, an IP layer and lower protocol layers.
The PAUSE and PLAY messages sent from the client device 101 are received via the IP network interface 350. A processor (not shown) of the processing unit CPU processes the messages according to the server software 320 and the protocol stack 330 and takes appropriate action.
The present invention provides means for reducing the effects of cell reselection on an ongoing streaming session. It is to be noted that, according to preferable embodiments of the invention, a request for resending (e.g. a PLAY message) is sent on the application layer, i.e. between the client software application 220 and the server software application 320. Preferably RTSP over TCP (Transmission Control Protocol) or RTSP over another reliable protocol is used in transferring application layer requests from the client device to the streaming server. The reception of the messages at the streaming server can therefore basically be guaranteed.
Although it has been described that the cell reselection would be performed between two base stations, it should be noted that a cell reselection can be performed also between two sectors of one and the same base station. Also, it should be noted that depending on the implemention, it may well be that separate messages (PAUSE messages) pausing the sending of streaming media are not needed. In an alternative embodiment, both to stop sending streaming media and to start resending streaming media is caused by a single appropriate message.
Further, in relation to the buffer filling embodiment, it has been described in the foregoing that when the server switches to sending a lower bit rate sequence, the original transmission bit rate would be maintained. However, in an alternative embodiment of the invention, a transmission bit rate higher than the original transmission bit rate is used during the filling period in order to fill the buffer more quickly, hi this embodiment, it is assumed that a larger bandwidth can be requested by the mobile client device and that a larger bandwidth is actually available in the radio access network.
Further, in relation to the buffer filling embodiment, the bandwidth information of the sequence can be sent to the streaming server 111 also by other means than the RTSP field 'Bandwidth' (for example, by requesting a specific sequence encoded at a bitrate known to the client device 101). In this case, the field 'Bandwidth' is not used, the fields 'Speed' and 'Range' are recalculated according to the actual known sequence bit rate.
It is possible that the network (air-interface) bandwidth changes during the buffer filling period. If the client device 101 supports bandwidth adaptation that involves bit stream switching, the client device 101 should pause the buffer filling (with an RTSP PAUSE message) before sending a bandwidth adaptation message to the streaming server 111. After the bandwidth adaptation operations are over, the client device can start the buffer filling again and recalculate the 'Bandwidth', 'Speed' and 'Range' values according to the bit rate and timing information of the new media stream.
Also, in relation to the buffer filling embodiment, it should be noted that, in an alternative embodiment, the second PAUSE/PLAY messages are not sent at all but the switch back to sending the original media sequence at the original transmission bit rate will be performed automatically by the server based on the stopping point information contained in the first PLAY message.
The resending request mentioned in the various embodiments of the invention may, in certain cases, actually be a sending request. One such case is considered as an alternative embodiment of the invention. In this embodiment, the client device (101) knowing beforehand that a cell reselection is going to occur in a very near future sends a PAUSE message to the streaming server (111) before the beginning of the cell reselection period (i.e. during the pre-CR period). Sending of the PAUSE message is triggered by a cell reselection initiation event notified to the client software 220 by means of the lower layer API. The PAUSE message causes the streaming server 111 to stop sending the streaming media. When the CR-period is over, the client device 101 then sends a PLAY message causing the streaming server to start sending at the point at which sending was stopped before the CR period. Playing of the streaming media is not stopped at the client device 101 in between, and if the client device buffer 240 has been selected to be longer in time than the time that cell reselection takes, the buffer 240 does not become totally empty during cell reselection and the user does not experience any jumps or interruption in playback. The PLAY message may contain a request to send at an increased speed in order to increase the degree of fullness of the buffer 240.
In yet another embodiment, the mobile client device 101 sends, before the CR period, to the streaming server 111 an appropriate message requesting the streaming server 111 to stop sending the streaming media and to start sending again at a suitable point in time after the CR period. Sending of the message is triggered, during the pre-CR period, by a cell reselection initiation event notified to the client software 220 by means of the lower layer API. The mobile client device 101, knowing approximately the time that the cell reselection is going to take, estimates a suitable point in time at which it is again able to receive data. It inserts this information to the message so as to prevent the streaming server 111 from starting to send again too early.
An example of the above mentioned message is as follows:
PLAY rtsp://example.com/foo RTSP/1.0
CSeq: 7
Session: 354832
Range: npt=28.00-40.00; time=19970123T153600Z
Bandwidth: 20000
Speed: 1.5
This is an RTSP PLAY message having a header field 'Time'. The value of that field schedules the start of the "future" sending of the streaming media.
Figure 11 illustrates (especially relating to the buffer filling embodiments) the following three ways in which messages maybe sent:
Case 1: The first PAUSE and PLAY messages are sent after the CR period. The second PAUSE and PLAY messages are sent when the buffer 240 is full.
Case 2: The first PAUSE message is sent before the CR period. The associated PLAY message is sent after the CR period. The second PAUSE and PLAY messages are sent when the buffer 240 is full. Case 3: The first PAUSE message is sent before the CR period. The associated PLAY message is sent after the PAUSE message but before the CR period. The second PAUSE and PLAY messages are sent when the buffer 240 is full.
The sending of the second PAUSE message is not necessary, if the first PLAY message contains a closed 'Range' field.
Particular implementations and embodiments of the invention have been described. It is clear to a person skilled in the art that the invention is not restricted to details of the embodiments presented above (e.g. message names and message field names), but that it can be implemented in other embodiments using equivalent means without deviating from the characteristics of the invention. The scope of the invention is only restricted by the attached patent claims.

Claims

CLAIMS:
1. A method for streaming of media from a streaming server (111) to a mobile client device (101) over an air-interface, wherein the method comprises: requesting the streaming server (111) to send streaming media which the mobile client device (101) is not able to receive due to a cell reselection.
2. A method according to claim 1, wherein the streaming server is provided with a starting point at which to start sending.
3. A method according to claim 1, wherein streaming server (111) sends the streaming media which the mobile client device (101) is not able to receive due to said cell reselection as well as a remaining portion of streaming media in response to the request.
4. A method according to claim 1, wherein the cell reselection comprises a cell reselection period during which the mobile client device (101) is not able to receive streaming media, the method comprising: sending from the mobile client device (101) to the streaming server (111), after the cell reselection period, a resending request which requests the streaming server (111) to resend streaming media which the mobile client device (101) was not able to receive during the cell reselection period.
5. A method according to claim 4, wherein the resending request is generated according to RTSP protocol (Real Time Streaming Protocol).
6. A method according to claim 4, wherein the resending request is implemented by an RTSP PAUSE/PLAY message pair.
7. A method according to claim 1, wherein the streaming media is temporarily stored in a temporary store (240), such as a buffer, at the client device (101) before playing.
8. A method according to claim 7, wherein the temporary store (240) has a size longer in time than a cell reselection period.
9. A method according to claim 7, wherein the streaming server is requested to send streaming media at a rate higher than the playing rate of that media so as to increase a degree of fullness of the temporary store (240).
10. A method according to claim 9, wherein a bandwidth or desired transmission bit rate with speeding factor is communicated to the streaming server (111) in a request.
11. A method according to claim 9, wherein the streaming media is stored at the mobile client device (101) at a rate higher than the playing rate.
12. A method according to claim 9, wherein the streaming server (111) is subsequently requested to resume an original configuration.
13. A method according to claim 7, wherein a degree of fullness of the temporary store (240) decreases during the cell reselection, and the streaming server is requested to send the not received streaming media although the temporary store (240) has not become totally empty, and said requesting is performed without pausing playback at the mobile client device (101).
14. A method according to claim 1, wherein the streaming server has a set of media streams available for transmission in which the same media content has been encoded at different bit rates.
15. A method according to claim 14, wherein information on the available set of media streams is beforehand communicated to the mobile client device (101) in a streaming session setup.
16. A method according to claim 15, wherein the streaming server (111) is requested to switch from sending a higher bit rate media stream to sending a lower bit rate media stream at an increased speed.
17. A method according to any preceding claim, wherein the streaming media comprise one of the following: a video stream, an audio stream, another stream of single media, a multimedia stream.
18. A method according to any preceding claim, wherein the streaming server (111) sends streaming media to the mobile client device (101) via a mobile communications network.
19. A method according to any preceding claim, wherein the mobile communications network comprises a mobile packet radio network, such as a GPRS (General Packet Radio Service) network.
20. A method according to any preceding claim, wherein said cell reselection is performed between two base stations (BS1, BS2) which are selected from a group comprising: base stations belonging to a GPRS system, base stations belonging to a third generation mobile communications system.
21. A mobile client device (101) for receiving streaming media from a streaming server (111) over an air-interface, the mobile client device (101) comprising: means (220, 230, MCU) for requesting the streaming server (111) to send streaming media which the mobile client device (101) is not able to receive due to a cell reselection.
22. A streaming server (111) for sending streaming media to a mobile client device (101) over an air-interface, the streaming server (111) comprising: means (350) for receiving a request requesting the streaming server (111) to send streaming media which the mobile client device (101) is not able to receive due to a cell reselection; and means (320, 330, CPU) for acting upon the received request.
23. A system comprising a streaming server (111) and a mobile client device (101), for streaming of media from the streaming server (111) to the mobile client device (101) over an air-interface, the system comprising, at the mobile client device (101): means (220, 230, MCU) for requesting the streaming server (111) to send streaming media which the mobile client device (101) is not able to receive due to a cell reselection, the system further comprising, at the streaming server (111): means (350) for receiving the request; and means (320, 330, CPU) for acting upon the received request.
24. A computer program executable in a mobile client device (101), the computer program comprising: program code for causing the mobile client device (101) to request the streaming server (111) to send streaming media which the mobile client device (101) is not able to receive due to a cell reselection.
25. A computer program executable in a streaming server (111), the computer program comprising: program code for causing the streaming server (111) to receive a request requesting the streaming server (111) to send streaming media which the mobile client device (101) is not able to receive due to a cell reselection; and program code for acting upon the received request.
EP03769522.8A 2002-10-14 2003-10-10 Streaming media Expired - Lifetime EP1552644B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FI20021820 2002-10-14
FI20021820A FI116816B (en) 2002-10-14 2002-10-14 Streaming media
PCT/FI2003/000752 WO2004036824A1 (en) 2002-10-14 2003-10-10 Streaming media

Publications (2)

Publication Number Publication Date
EP1552644A1 true EP1552644A1 (en) 2005-07-13
EP1552644B1 EP1552644B1 (en) 2016-12-28

Family

ID=8564746

Family Applications (1)

Application Number Title Priority Date Filing Date
EP03769522.8A Expired - Lifetime EP1552644B1 (en) 2002-10-14 2003-10-10 Streaming media

Country Status (12)

Country Link
US (1) US7733830B2 (en)
EP (1) EP1552644B1 (en)
JP (1) JP4287376B2 (en)
KR (1) KR100705432B1 (en)
CN (1) CN1706146B (en)
AU (1) AU2003278207A1 (en)
BR (2) BRPI0315207B1 (en)
CA (1) CA2500781A1 (en)
FI (1) FI116816B (en)
MY (1) MY143014A (en)
TW (1) TWI248740B (en)
WO (1) WO2004036824A1 (en)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
WO2004034589A2 (en) 2002-10-05 2004-04-22 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
CN101834610B (en) 2003-10-06 2013-01-30 数字方敦股份有限公司 Method and device for receiving data transmitted from source through communication channel
US7440430B1 (en) * 2004-03-30 2008-10-21 Cisco Technology, Inc. Jitter buffer management for mobile communication handoffs
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US8868772B2 (en) * 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
KR101161193B1 (en) 2004-05-07 2012-07-02 디지털 파운튼, 인크. File download and streaming system
JP4428161B2 (en) * 2004-07-16 2010-03-10 ブラザー工業株式会社 Connection state control device, connection state control method, and connection state control program
JP4389216B2 (en) * 2004-11-15 2009-12-24 株式会社カシオ日立モバイルコミュニケーションズ Mobile communication terminal and content reproduction method
US8218439B2 (en) * 2004-11-24 2012-07-10 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive buffering
US8089941B2 (en) * 2004-12-10 2012-01-03 Broadcom Corporation Mobile communication device and system supporting personal media recorder functionality
US8370514B2 (en) 2005-04-28 2013-02-05 DISH Digital L.L.C. System and method of minimizing network bandwidth retrieved from an external network
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US8069466B2 (en) * 2005-08-04 2011-11-29 Nds Limited Advanced digital TV system
US8908577B2 (en) * 2005-12-02 2014-12-09 Qualcomm Incorporated Solving IP buffering delays in mobile multimedia applications with translayer optimization
JP5550834B2 (en) 2006-02-13 2014-07-16 デジタル ファウンテン, インコーポレイテッド Streaming and buffering using variable FEC overhead and protection period
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US8355720B2 (en) * 2006-05-12 2013-01-15 Motorola Mobility Llc Application and transport adaptation for a wireless communication prior to a reselection
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
JP4722028B2 (en) 2006-12-26 2011-07-13 富士通株式会社 Data transfer system, approach notification system, and data transfer method
US9979931B2 (en) * 2007-05-30 2018-05-22 Adobe Systems Incorporated Transmitting a digital media stream that is already being transmitted to a first device to a second device and inhibiting presenting transmission of frames included within a sequence of frames until after an initial frame and frames between the initial frame and a requested subsequent frame have been received by the second device
US8180029B2 (en) * 2007-06-28 2012-05-15 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
JP4919890B2 (en) * 2007-07-11 2012-04-18 株式会社日立製作所 Wireless system, base station and mobile station
US8813141B2 (en) 2007-08-08 2014-08-19 At&T Intellectual Properties I, L.P. System and method of providing video content
US9237101B2 (en) 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US8321581B2 (en) * 2007-10-19 2012-11-27 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8111713B2 (en) 2007-10-19 2012-02-07 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8145780B2 (en) * 2007-10-19 2012-03-27 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8699678B2 (en) * 2007-10-19 2014-04-15 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8090867B2 (en) * 2007-10-19 2012-01-03 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8706907B2 (en) * 2007-10-19 2014-04-22 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8380874B2 (en) * 2007-10-19 2013-02-19 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8682336B2 (en) * 2007-10-19 2014-03-25 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8391312B2 (en) * 2007-10-19 2013-03-05 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
JP5012907B2 (en) * 2007-12-27 2012-08-29 富士通株式会社 COMMUNICATION METHOD, COMMUNICATION SYSTEM, AND BASE STATION
JP2009194688A (en) * 2008-02-15 2009-08-27 Seiko Epson Corp Image transfer apparatus, image display device, image display system, transfer method of image data, image display method, and computer program
CN101540881B (en) * 2008-03-19 2011-04-13 华为技术有限公司 Method, device and system for realizing positioning playing of streaming media
US8565740B2 (en) * 2008-05-08 2013-10-22 Blackberry Limited System and method for providing streaming data to a mobile device
US9462029B2 (en) * 2008-08-29 2016-10-04 Red Hat, Inc. Invoking serialized data streams
TWI396443B (en) * 2008-12-22 2013-05-11 Ind Tech Res Inst Method for audio and video control response and bandwidth adaptation based on network streaming application and server using the same
KR20100073168A (en) * 2008-12-22 2010-07-01 한국전자통신연구원 Apparatus for transmitting and receiving synthetic data and method thereof
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9137026B1 (en) * 2009-04-23 2015-09-15 Sprint Communications Company L.P. Seamless service transitions for dual-network mobile devices
JP2011041018A (en) * 2009-08-11 2011-02-24 Sony Corp Information processing apparatus, information processing method, program and communication terminal
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
CN101729858A (en) * 2009-12-14 2010-06-09 中兴通讯股份有限公司 Playing control method and system of bluetooth media
US9819840B2 (en) 2010-01-11 2017-11-14 Bryan Nunes Audio device that extracts the audio of a multimedia stream and serves the audio on a network while the video is displayed
US9438360B2 (en) * 2010-01-11 2016-09-06 Signet Media, Inc. System and method for providing an audio component of a multimedia content displayed on an electronic display device to one or more wireless computing devices
CN102148806A (en) * 2010-02-09 2011-08-10 华为技术有限公司 Time shift processing method and system, network equipment and terminal for network television
US9510029B2 (en) 2010-02-11 2016-11-29 Echostar Advanced Technologies L.L.C. Systems and methods to provide trick play during streaming playback
US8516063B2 (en) 2010-02-12 2013-08-20 Mary Anne Fletcher Mobile device streaming media application
US9049497B2 (en) 2010-06-29 2015-06-02 Qualcomm Incorporated Signaling random access points for streaming video data
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
TWI469606B (en) * 2012-12-10 2015-01-11 Hon Hai Prec Ind Co Ltd System and method for streaming media sharing and providing
EP2750447A1 (en) * 2012-12-28 2014-07-02 Alcatel Lucent Neighboring cell selection for an user equipment using a content delivery service in a mobile network
US9883546B2 (en) 2015-09-04 2018-01-30 Apple Inc. Postponing a resending of a data service request
JP6772218B2 (en) * 2018-06-29 2020-10-21 Line株式会社 Programs, information processing methods, terminals
JP6906126B2 (en) * 2018-06-29 2021-07-21 Line株式会社 Programs, information processing methods, terminals
EP3831077A4 (en) * 2018-08-01 2022-05-04 iChannel.io Ltd. A system for management of a plurality of rendering machines to avoid transmission failures
US11588876B2 (en) * 2020-06-16 2023-02-21 T-Mobile Usa, Inc. Device-side playback restrictions on high throughput networks
US20230101262A1 (en) * 2021-09-29 2023-03-30 At&T Intellectual Property I, L.P. Application-level network slicing for high quality of experience

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864578A (en) * 1996-04-29 1999-01-26 Golden Bridge Technology, Inc. Matched filter-based handoff method and apparatus
FI109503B (en) 1997-04-15 2002-08-15 Nokia Corp Prevention of packet loss during handover in a packet-based telecommunications network and handover procedure
JP3337062B2 (en) * 1997-11-21 2002-10-21 日本電気株式会社 Wireless data transfer method and system
JPH11187367A (en) 1997-12-19 1999-07-09 Nec Corp Video transmitter, video receiver and video transmitting system using these
US8341662B1 (en) * 1999-09-30 2012-12-25 International Business Machine Corporation User-controlled selective overlay in a streaming media
WO2001030090A2 (en) 1999-10-18 2001-04-26 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for the wireless transmission of loss sensitive data
US6665726B1 (en) * 2000-01-06 2003-12-16 Akamai Technologies, Inc. Method and system for fault tolerant media streaming over the internet
US6360099B1 (en) * 2000-06-09 2002-03-19 Motorola, Inc. Reducing audio gaps during a communication network handoff
EP1182875A3 (en) 2000-07-06 2003-11-26 Matsushita Electric Industrial Co., Ltd. Streaming method and corresponding system
FI113323B (en) * 2000-08-21 2004-03-31 Nokia Corp Synchronization of data packet numbers during packet switching data transfer
JP2004515163A (en) 2000-11-29 2004-05-20 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー Transmission and reception of real-time data
EP1261204A2 (en) 2001-03-29 2002-11-27 Matsushita Electric Industrial Co., Ltd. Method and apparatus for data reproduction
US7058035B2 (en) * 2001-06-29 2006-06-06 Qualcomm, Indorporated Communication system employing multiple handoff criteria
US7200402B2 (en) * 2001-07-03 2007-04-03 Hewlett-Packard Development Company, L.P. Method for handing off streaming media sessions between wireless base stations in a mobile streaming media system
US6954456B2 (en) * 2001-12-14 2005-10-11 At & T Corp. Method for content-aware redirection and content renaming
US20030114158A1 (en) * 2001-12-18 2003-06-19 Lauri Soderbacka Intersystem handover of a mobile terminal
US20040008688A1 (en) * 2002-07-11 2004-01-15 Hitachi, Ltd. Business method and apparatus for path configuration in networks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2004036824A1 *

Also Published As

Publication number Publication date
MY143014A (en) 2011-02-14
EP1552644B1 (en) 2016-12-28
CA2500781A1 (en) 2004-04-29
BRPI0315207B1 (en) 2017-12-26
WO2004036824A1 (en) 2004-04-29
FI20021820A (en) 2004-04-15
CN1706146A (en) 2005-12-07
TWI248740B (en) 2006-02-01
BR0315207A (en) 2005-08-16
FI20021820A0 (en) 2002-10-14
JP2006503463A (en) 2006-01-26
JP4287376B2 (en) 2009-07-01
KR100705432B1 (en) 2007-04-09
FI116816B (en) 2006-02-28
KR20050065592A (en) 2005-06-29
CN1706146B (en) 2010-10-13
AU2003278207A1 (en) 2004-05-04
TW200406108A (en) 2004-04-16
US7733830B2 (en) 2010-06-08
US20040071088A1 (en) 2004-04-15

Similar Documents

Publication Publication Date Title
US7733830B2 (en) Enhancing streaming media reception for a mobile device during cell reselection
US7346007B2 (en) Bandwidth adaptation
US9203886B2 (en) Content rate control for streaming media servers
EP1552655B1 (en) Bandwidth adaptation
JP4819873B2 (en) Technology to control data packet transmission of variable bit rate data
US20030198184A1 (en) Method of dynamically determining real-time multimedia streaming rate over a communications networks
US9525874B2 (en) Transmitting apparatus and transmission method
US20110019580A1 (en) Wireless communication apparatus
WO2006086691A2 (en) A network for providing a streaming service
JP2002290974A (en) Transmission rate control method
WO2004039034A1 (en) System and method for reducing initial buffering time for a streaming application
KR101055169B1 (en) Traffic control method and device therefor in streaming system
WO2009007508A1 (en) Method and apparatus for improving mobile broadcast quality
US20040218565A1 (en) Method of operating a base station
CN114979080A (en) SIP (Session initiation protocol) talkback method, system and storage device fusing local area network and wide area network
CA2528331A1 (en) Medium signal reception device, transmission device, and transmission/reception system
JPH11205390A (en) Transmission system, terminal equipment, server system and storage medium
Lundan et al. Optimal 3GPP packet-switched streaming service (PSS) over GPRS networks
KR100986555B1 (en) Initial buffering time decision method and system for progressive multimedia streaming service
Kim et al. Seamless video streaming for video on demand services in vertical handoff

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20050329

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL LT LV MK

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20050923

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: NOKIA CORPORATION

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: NOKIA TECHNOLOGIES OY

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

INTG Intention to grant announced

Effective date: 20161004

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: AT

Ref legal event code: REF

Ref document number: 858100

Country of ref document: AT

Kind code of ref document: T

Effective date: 20170115

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 60349768

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170329

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

REG Reference to a national code

Ref country code: NL

Ref legal event code: MP

Effective date: 20161228

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 858100

Country of ref document: AT

Kind code of ref document: T

Effective date: 20161228

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

Ref country code: BE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170428

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170328

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 60349768

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

26N No opposition filed

Effective date: 20170929

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MC

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20171010

REG Reference to a national code

Ref country code: IE

Ref legal event code: MM4A

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST

Effective date: 20180629

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20171031

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20171010

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20171010

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20171031

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20171031

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20171010

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO

Effective date: 20031010

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20161228

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20190924

Year of fee payment: 17

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20161228

REG Reference to a national code

Ref country code: DE

Ref legal event code: R119

Ref document number: 60349768

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210501