US20050254499A1 - Buffer level signaling for rate adaptation in multimedia streaming - Google Patents
Buffer level signaling for rate adaptation in multimedia streaming Download PDFInfo
- Publication number
- US20050254499A1 US20050254499A1 US10/901,015 US90101504A US2005254499A1 US 20050254499 A1 US20050254499 A1 US 20050254499A1 US 90101504 A US90101504 A US 90101504A US 2005254499 A1 US2005254499 A1 US 2005254499A1
- Authority
- US
- United States
- Prior art keywords
- decoded
- server
- packet
- client
- packets
- 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.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Definitions
- the present invention relates generally to multimedia streaming and, more particularly, to rate adaptation between a server and a client in multimedia streaming services.
- a streaming server In a multimedia streaming service, there are three participants involved: a streaming server, a streaming client and a transmission channel or an underlying network. Usually it is the transmission channel that is the bottleneck of the service, both in terms of throughput and in terms of reliability (i.e., if no throughput bitrate guarantee is assumed), but throughput limitations can occur also at the client and/or at the server.
- the streaming delivery needs to be adaptive in order to maintain a real-time playback experience for the user.
- the server should adapt the transmission rate to the varying throughput of the system.
- An example of such a rate adaptation system can be found in Haskell et al. (U.S. Pat. No. 5,565,924, “Encoder/Decoder Buffer Control for Variable Channel”).
- the streaming client provides receiver buffering for storing incoming data before passing them to the media decoder for playout.
- the receiver buffer is used to compensate for the difference between source encoding rate (also referred to as sampling rate) and transmission rate (pre-decoder buffering). It is also used to compensate for the packet transfer delay variation over the channel (jitter buffering).
- source encoding rate also referred to as sampling rate
- pre-decoder buffering transmission rate
- jitter buffering packet transfer delay variation over the channel
- these two functions are assumed to be combined in a single receiver buffer. However, they can also be implemented with two separate buffers in a receiver, although such an implementation is not optimum from a delay point of view.
- Receiver buffering can also smooth out the adaptation inaccuracies (i.e. if the system throughput is not matched exactly by the server output).
- the receiver buffer becomes empty (i.e. buffer underflow), which means that the decoder is running out of data to decode, the client needs to pause playout and re-buffer incoming data before resuming.
- the receiver buffer space can be exhausted (i.e., buffer overflow), which can result in dropping packets from the buffer in order to make room for new incoming packets.
- the receiver buffer of the client should be kept within a certain fullness range. In order to guarantee that the receiver buffer will not underflow or overflow, the bitrate for transmission and sampling at the server and that for reception and playout at the client must be adequately controlled.
- 3GPP rate adaptation signaling as defined in 3GPP TS 26.234 is based on feedback sent from the receiver to the sender in the form of an RTCP APP (Application-Defined Real Time Control Protocol) packet.
- This packet includes the sequence number (SN) of the oldest packet in the receiver buffer. This SN is referred to as OBSN (oldest buffered sequence number).
- the signaling of the OBSN allows the sender to perform the necessary adaptation. Yet, if the decoding order and the display order are different, the sender may not be able to derive the status of the buffer and the purpose of the signaling would be defeated. With the PSS (Packet Switched Streaming Service) video codecs supported in Release 5, this is not a problem as their packet transmission order is equal to the decoding order.
- PSS Packet Switched Streaming Service
- H.264 also known as MPEG-4 AVC
- MPEG-4 AVC MPEG-4 AVC
- the transmission order and the decoding order could be different because of interleaved packetization at the payload level (as specified in the IETF H.264 RTP payload format draft).
- each of these RTP packets carries two units. From the codec and the payload format in use, each of these units can be mapped to a decoding order y.
- the decoding order y is defined as follows: If a packet has a decoding order y, it is the y th packet to be decoded. That is, when the current packet has a decoding order y, it also means that (y ⁇ 1) packets have already been decoded by the time the current packet is given to the decoder.
- the DON Decoding order number
- H.264 RTP payload format can be used to derive the decoding order of the NAL units received in each packet
- the following example illustrates the sequence of units where for each unit is given the sequence number of the packet to which it belongs, its unit number (i.e. whether it is the first or second unit in the packet) and its decoding order: SN Unit number Decoding order x 0 y x 1 y + 1 x + 1 0 y + 2 x + 1 1 y + 3 x + 2 0 y + 4 x + 2 1 y + 5 x + 3 0 y + 6 x + 3 1 y + 7 x + 4 0 y + 100 x + 4 1 y + 8 x + 5 0 y + 9 x + 5 1 y + 10 x + 6 0 y + 11 x + 6 1 y + 12 . . .
- the decoding order is increasing by 1 for each unit received from packets with SN from x to x+3.
- this rule is broken for packet x+4.
- the first unit of packet x+4 for example, belongs to a frame that will be decoded only in the future.
- the units of packets x+1, x+2 and x+3 have been played and x+5, x+6 and x+7 have been received, for example.
- the problem arises around this time because after x+5, the decoding order number for the following packets: x+6, x+7, etc. is smaller than the decoding order number of the first unit of packet x+4.
- the current rate adaptation signaling OBSN will remain at x+4 until this unit is played and the packet x+50 is received, at which time the OBSN will be updated.
- the server will thus lose track of the receiver buffer status because OBSN is not updated according to the decoding and the removal of packets from the receiver buffer.
- a further limitation stems from the fact that since multiple units can be sent in a single packet, when the receiver signals to the sender that the OBSN is x+2, for example, the sender cannot know determine whether the first unit of this packet is still in the buffer or whether only the second unit of the packet is in the buffer.
- the prior art method of rate adaptation signaling is based on the oldest packet currently in the receiver playout buffer, allowing the sender to estimate both the number of bytes in the receiver buffer and the duration of the playout buffer. This information is used by the sender to perform adaptation so as to avoid receiver underflow (playout interruption) or receiver overflow (packet loss).
- the sender may lose track of the receiver buffer.
- a typical RTP packet is shown in FIG. 1 .
- the RTP packet includes a multi-time aggregation packet of type MTAP16 and two multi-time aggregation units.
- the RTP Header in the first row of the packet is shown in FIG. 2 .
- the sequence number (SN) of the packet is shown in the first row of the RTP header.
- the aggregation type packet aggregates multiple Network Abstraction Layer (NAL) units into a single RTP payload.
- NAL unit payload consists of a 16-bit unsigned decoding number order (DON) base, or DONB (see second row of the packet).
- DONB contains the value of DON of the first NAL unit, so that the value of DON of all other NALs can be expressed in DOND, or the difference between the value of DON in a certain NAL and DONB.
- the RTP payload format for H.264 codec can be found in the IETF Audio Visual Transport Working Group Internet Draft draft-ietf-avt-rtp-h264-05 (April 2004).
- the present invention provides a mechanism for the server device in a multimedia streaming network, which sends streaming data packets to a client device to playout, to reconstruct a list of data packets stored in the receiver buffer in the client device. Based on the reconstruction, the server device adjusts the streaming data amount provided to the client device, so as to control the level of the receiver buffer.
- the first aspect of the present invention provides a method for controlling level of a receiver buffer in a client in a multimedia streaming network, the streaming network comprising a server for providing streaming data in a plurality of packets to the client, wherein at least some of the data packets are stored in the receiver buffer so as to compensate for difference between data transmission amount by the server and the data usage amount by the client, and wherein the packets are decoded in a decoding order based on a plurality of decoding order values associated with a playout order the client.
- the method comprises:
- the packets are associated with a plurality of units including the next unit to be decoded, and wherein the next packet to be decoded is the packet to which the next unit to be decoded belongs.
- Each of the units has a unit number and each of the data packets has a sequence number known to both the client and the server, and the information signaled to the server is indicative of the unit number of said next unit to be decoded and the sequence number of the packet to which said next unit belongs.
- the server maintains a list of units that have been sent and a record of unit number and the sequence number of the packet to which the sent units belong and a mapping between said sequence number and unit number to the decoding order for determining the data units in the receiver buffer based on said mapping so as to adjust the streaming data amount provided to the client based on said determination in the server.
- the information signaled to the server is further indicative of a difference between a scheduled playout time of said next unit to be decoded and the decoding time of said next unit.
- the information signaled to the server is further indicative of the highest sequence number received by the client so as to allow the server to determine the data packets in the receiver buffer.
- each of the units has a timestamp and each of the data packets has a sequence number known to both the client and the server, and the information signaled to the server is indicative of the timestamp of said next unit to be decoded and the sequence number of the packet to which said next unit belongs.
- the second aspect of the present invention provides a multimedia streaming network comprising:
- the packets are associated with a plurality of units including the next unit to be decoded, and wherein the next packet to be decoded is the packet to which the next unit to be decoded belongs.
- Each of the units has a unit number and each of the data packets has a sequence number known to both the client and the server, and the information signaled to the server is indicative of the unit number of said next unit to be decoded and the sequence number of the packet to which said next unit belongs.
- the server maintains a list of units that have been sent and a record of unit number and the sequence number of the packet to which the sent units belong and a mapping between said sequence number and unit number to the decoding order for determining the data units in the receiver buffer based on said mapping so as to adjust the streaming data amount provided to the client based on said determination in the server.
- the third aspect of the present invention provides a client device in a multimedia streaming network, the streaming network comprising a server device for providing streaming data in a plurality of packets to the client device, wherein the packets are decoded in a decoding order based on a plurality of decoding values associated with a playout order in the client device.
- the client device comprises:
- the packets are associated with a plurality of units including the next unit to be decoded, and wherein the next packet to be decoded is the packet to which the next unit to be decoded belongs.
- Each of the units has a unit number and each of the data packets has a sequence number known to both the client device and the server device, and the information signaled to the server device is indicative of the unit number of said next unit to be decoded and the sequence number of the packet to which said next unit belongs.
- the client device further comprises a software program having executable codes for determining:
- the fourth aspect of the present invention provides a server device for providing streaming data in a multimedia streaming network, the multimedia streaming network comprising at least a client device for receiving the streaming data in a plurality of data packets and decoding the data packets in a decoding order based on a plurality of decoding order values associated with a playout order, wherein the client device has a receiver buffer for storing at least some of the data packets so as to compensate for difference between data transmission amount by the server device and the data usage amount by the client device.
- the server device comprises:
- the packets are associated with a plurality of units including the next unit to be decoded, and wherein the next packet to be decoded is the packet to which the next unit to be decoded belongs.
- Each of the units has a unit number and each of the data packets has a sequence number known to both the client device and the server device, and the information signaled to the server device is indicative of the unit number of said next unit to be decoded and the sequence number of the packet to which said next unit belongs.
- the fifth aspect of the present invention further provides a software product embedded in a computer readable media for use in a client device in a multimedia streaming network, the streaming network comprising a server device for providing streaming data in a plurality of packets to the client device, wherein the packets are decoded in a decoding order based on a plurality of decoding values associated with a playout order in the client device, and wherein the client device comprises a receiver buffer for storing at least some of the data packets to be decoded so as to compensate for difference between data transmission.
- the software product comprises:
- the packets are associated with a plurality of units including the next unit to be decoded, and wherein the next packet to be decoded is the packet to which the next unit to be decoded belongs.
- Each of the units has a unit number and each of the data packets has a sequence number known to both the client device and the server device, and the information signaled to the server device is indicative of the unit number of said next unit to be decoded and the sequence number of the packet to which said next unit belongs.
- the sixth aspect of the present invention provides a software product embedded in a computer readable media for use in a server device providing streaming data in the multimedia streaming network, the multimedia network comprising at least a client device for receiving the streaming data in a plurality of data packets and decoding the data packets in a decoding order based on a plurality of decoding order values associated with a playout order, wherein the client device has a receiver buffer for storing at least some of the data packets so as to compensate for difference between the transmission amount by the server device and the data usage amount by the client device.
- the software product comprises:
- FIG. 1 is a block diagram showing a typical RTP packet.
- FIG. 3 is a block diagram showing a multimedia streaming system having a server device and a client device that can perform the rate adaptation method, according to the present invention.
- the present invention provides a method of buffer level signaling so as to allow the server in a multimedia streaming network to perform rate adaptation in codecs such as H.264, for which packet transmission order is different from decoding order.
- the buffer level signaling method is based on information about the next unit to be decoded.
- the sequence number (SN) of the packet to which the next unit to be decoded belongs is herein referred to as NDSN.
- the receiver reports to the sender information of the next unit to be decoded.
- This unit is an identifiable decoding unit that can be defined in an RTP payload format. More particularly, the identifiable unit can be identified by the NDSN and the unit number (NDU) within the packet.
- the identifiable decoding unit is typically a frame.
- the multimedia streaming system 1 has means for buffer level signaling from a streaming client 60 to a streaming server 10 .
- the system depicted in FIG. 3 is further shown to comprise a “channel buffer” 50 located between streaming server 10 and streaming client 60 , representing the varying transfer delays that occur during transmission of data packets from the streaming server to the client.
- the server's rate controller 30 is operative to adapt the rate at which media data is transmitted from the streaming server.
- the server also has a transmission clock 32 to timestamp the packets to be transmitted to the client. It operates by adjusting the transmitted data rate in accordance with the varying bit-rates on the transmission channel, taking into account the client's request for a transmission time-shift, thereby seeking to avoid pauses in play-back at the client due to pre-decoder buffer underflow or dropping packets at the client due to buffer overflow.
- Server buffer 40 stores data packets temporarily before they are transmitted from the streaming server across the transmission channel to streaming client 60 .
- the server buffer is indeed a physical buffer where data packets are placed at sampling time and are extracted at transmission time.
- the server buffer is a virtual buffer that represents the difference between sampling time (with reference to a sampling clock started at the streaming server when the first data packet of the pre-encoded file is transmitted) and transmission time of data packets.
- buffer controller 110 is adapted to provide to the application level signaling engine 70 an indication of the next unit to be decoded.
- the application level signaling engine is, in turn, adapted to transmit to the streaming server information about the next unit to be decoded, as denoted by reference numeral 300 in FIG. 3 .
- the transmitted information indicates the unit number of the next unit to be decoded (referred to as NDU) and the sequence number of the packet to which this unit belongs (referred as to NDSN).
- NDU unit number of the next unit to be decoded
- NDSN sequence number of the packet to which this unit belongs
- the unit is a NAL. As shown in FIG.
- the receiver signals the SN of the packet to which the next unit to be decoded belongs and the unit number.
- the receiver may signal a timestamp of the next unit to be decoded instead of its unit number.
- the sender is able to identify unambiguously this unit from the signaled timestamp and sequence number.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Description
- This is a Continuation-In-Part application of and claims priority to a co-pending U.S. patent application Ser. No. 10/844,062, filed May 12, 2004, assigned to the assignee of the present invention.
- The present invention relates generally to multimedia streaming and, more particularly, to rate adaptation between a server and a client in multimedia streaming services.
- In a multimedia streaming service, there are three participants involved: a streaming server, a streaming client and a transmission channel or an underlying network. Usually it is the transmission channel that is the bottleneck of the service, both in terms of throughput and in terms of reliability (i.e., if no throughput bitrate guarantee is assumed), but throughput limitations can occur also at the client and/or at the server.
- In a real-time streaming system, due to the dynamically changing throughput characteristics of the channel, client and server, the streaming delivery needs to be adaptive in order to maintain a real-time playback experience for the user. The server should adapt the transmission rate to the varying throughput of the system. An example of such a rate adaptation system can be found in Haskell et al. (U.S. Pat. No. 5,565,924, “Encoder/Decoder Buffer Control for Variable Channel”).
- The streaming client provides receiver buffering for storing incoming data before passing them to the media decoder for playout. The receiver buffer is used to compensate for the difference between source encoding rate (also referred to as sampling rate) and transmission rate (pre-decoder buffering). It is also used to compensate for the packet transfer delay variation over the channel (jitter buffering). In general, these two functions are assumed to be combined in a single receiver buffer. However, they can also be implemented with two separate buffers in a receiver, although such an implementation is not optimum from a delay point of view. Receiver buffering can also smooth out the adaptation inaccuracies (i.e. if the system throughput is not matched exactly by the server output).
- If the receiver buffer becomes empty (i.e. buffer underflow), which means that the decoder is running out of data to decode, the client needs to pause playout and re-buffer incoming data before resuming. On the other hand, if the incoming data rate is faster than the playout rate, then the receiver buffer space can be exhausted (i.e., buffer overflow), which can result in dropping packets from the buffer in order to make room for new incoming packets. When the packets are dropped, the video quality is degraded. To ensure a smooth and flawless playout, the receiver buffer of the client should be kept within a certain fullness range. In order to guarantee that the receiver buffer will not underflow or overflow, the bitrate for transmission and sampling at the server and that for reception and playout at the client must be adequately controlled.
- 3GPP rate adaptation signaling as defined in 3GPP TS 26.234 is based on feedback sent from the receiver to the sender in the form of an RTCP APP (Application-Defined Real Time Control Protocol) packet. This packet includes the sequence number (SN) of the oldest packet in the receiver buffer. This SN is referred to as OBSN (oldest buffered sequence number).
- The signaling of the OBSN allows the sender to perform the necessary adaptation. Yet, if the decoding order and the display order are different, the sender may not be able to derive the status of the buffer and the purpose of the signaling would be defeated. With the PSS (Packet Switched Streaming Service) video codecs supported in
Release 5, this is not a problem as their packet transmission order is equal to the decoding order. - In
Release 6, H.264 (also known as MPEG-4 AVC) will be added to the list of the PSS codecs. With H.264, the transmission order and the decoding order could be different because of interleaved packetization at the payload level (as specified in the IETF H.264 RTP payload format draft). - The same property also exists for the frame-interleaved transmission of many audio and speech codecs, such as AMR-NB, AMR-WB, AMR-WB+, AAC and AACPlus (for the latter, the interleaving method defined in RFC 3640 is used).
- The problem is hereafter illustrated assuming that the server transmits a series of packets whose RTP sequence numbers are denoted x, x+1, x+2, x+3, . . . . Let us further assume that each of these RTP packets carries two units. From the codec and the payload format in use, each of these units can be mapped to a decoding order y. The decoding order y is defined as follows: If a packet has a decoding order y, it is the yth packet to be decoded. That is, when the current packet has a decoding order y, it also means that (y−1) packets have already been decoded by the time the current packet is given to the decoder. For example, in the case of H.264, the DON (Decoding order number) defined by the H.264 RTP payload format can be used to derive the decoding order of the NAL units received in each packet
- The following example illustrates the sequence of units where for each unit is given the sequence number of the packet to which it belongs, its unit number (i.e. whether it is the first or second unit in the packet) and its decoding order:
SN Unit number Decoding order x 0 y x 1 y + 1 x + 1 0 y + 2 x + 1 1 y + 3 x + 2 0 y + 4 x + 2 1 y + 5 x + 3 0 y + 6 x + 3 1 y + 7 x + 4 0 y + 100 x + 4 1 y + 8 x + 5 0 y + 9 x + 5 1 y + 10 x + 6 0 y + 11 x + 6 1 y + 12 . . . . . . . . . x + 49 0 y + 97 x + 49 1 y + 98 x + 50 0 y + 99 x + 50 1 y + 101 x + 51 0 y + 102 x + 51 1 y + 103 - In the above-given example, the decoding order is increasing by 1 for each unit received from packets with SN from x to x+3. However, this rule is broken for packet x+4. The first unit of packet x+4, for example, belongs to a frame that will be decoded only in the future.
- Let us now look at the evolution of the receiver buffer and assume that, at a certain time, the receiver has received packets x, x+1, x+2, x+3. In this situation, the oldest sequence number in the buffer (OBSN) is x, and the highest received sequence number (HSN) signaled in RTCP RR reports is x+3. As time progresses, packet of SN x has been decoded and packet of SN x+4 has been received. Accordingly, the server will signal to the client OBSN=x+1 (the new “oldest” sequence number in the buffer) and HSN=x+4 (the new “most recent” SN received).
- As time further progresses, the units of packets x+1, x+2 and x+3 have been played and x+5, x+6 and x+7 have been received, for example. At that point, the state of the buffer is x+4, x+5, x+6 and x+7. Accordingly, the client will signal to the server OBSN=4 and HSN=7. The problem arises around this time because after x+5, the decoding order number for the following packets: x+6, x+7, etc. is smaller than the decoding order number of the first unit of packet x+4. Accordingly, the current rate adaptation signaling OBSN will remain at x+4 until this unit is played and the packet x+50 is received, at which time the OBSN will be updated. The server will thus lose track of the receiver buffer status because OBSN is not updated according to the decoding and the removal of packets from the receiver buffer.
- A further limitation stems from the fact that since multiple units can be sent in a single packet, when the receiver signals to the sender that the OBSN is x+2, for example, the sender cannot know determine whether the first unit of this packet is still in the buffer or whether only the second unit of the packet is in the buffer.
- In sum, the prior art method of rate adaptation signaling is based on the oldest packet currently in the receiver playout buffer, allowing the sender to estimate both the number of bytes in the receiver buffer and the duration of the playout buffer. This information is used by the sender to perform adaptation so as to avoid receiver underflow (playout interruption) or receiver overflow (packet loss). However, because the decoding order and the transmission order are not the same in some occasions and that multiple units may be in the same packet, the sender may lose track of the receiver buffer.
- A typical RTP packet is shown in
FIG. 1 . The RTP packet includes a multi-time aggregation packet of type MTAP16 and two multi-time aggregation units. The RTP Header in the first row of the packet is shown inFIG. 2 . As shown inFIG. 2 , the sequence number (SN) of the packet is shown in the first row of the RTP header. As shown inFIG. 1 , the aggregation type packet aggregates multiple Network Abstraction Layer (NAL) units into a single RTP payload. In particular, in MTAP16s, the NAL unit payload consists of a 16-bit unsigned decoding number order (DON) base, or DONB (see second row of the packet). DONB contains the value of DON of the first NAL unit, so that the value of DON of all other NALs can be expressed in DOND, or the difference between the value of DON in a certain NAL and DONB. - The RTP payload format for H.264 codec can be found in the IETF Audio Visual Transport Working Group Internet Draft draft-ietf-avt-rtp-h264-05 (April 2004).
- The present invention provides a mechanism for the server device in a multimedia streaming network, which sends streaming data packets to a client device to playout, to reconstruct a list of data packets stored in the receiver buffer in the client device. Based on the reconstruction, the server device adjusts the streaming data amount provided to the client device, so as to control the level of the receiver buffer.
- The first aspect of the present invention provides a method for controlling level of a receiver buffer in a client in a multimedia streaming network, the streaming network comprising a server for providing streaming data in a plurality of packets to the client, wherein at least some of the data packets are stored in the receiver buffer so as to compensate for difference between data transmission amount by the server and the data usage amount by the client, and wherein the packets are decoded in a decoding order based on a plurality of decoding order values associated with a playout order the client. The method comprises:
-
- determining in the client the next packet to be decoded among the packets in the receiver buffer based on the decoding order values; and
- signaling to the server information indicative of said next packet to be decoded, so as to allow the client to adjust the streaming data amount provided to the client based on the information.
- According to the present invention, the packets are associated with a plurality of units including the next unit to be decoded, and wherein the next packet to be decoded is the packet to which the next unit to be decoded belongs. Each of the units has a unit number and each of the data packets has a sequence number known to both the client and the server, and the information signaled to the server is indicative of the unit number of said next unit to be decoded and the sequence number of the packet to which said next unit belongs.
- According to the present invention, the server maintains a list of units that have been sent and a record of unit number and the sequence number of the packet to which the sent units belong and a mapping between said sequence number and unit number to the decoding order for determining the data units in the receiver buffer based on said mapping so as to adjust the streaming data amount provided to the client based on said determination in the server.
- According to the present invention, the information signaled to the server is further indicative of a difference between a scheduled playout time of said next unit to be decoded and the decoding time of said next unit.
- According to the present invention, the information signaled to the server is further indicative of the highest sequence number received by the client so as to allow the server to determine the data packets in the receiver buffer.
- According to the present invention, each of the units has a timestamp and each of the data packets has a sequence number known to both the client and the server, and the information signaled to the server is indicative of the timestamp of said next unit to be decoded and the sequence number of the packet to which said next unit belongs.
- The second aspect of the present invention provides a multimedia streaming network comprising:
-
- at least a client; and
- a server for providing streaming data in a plurality of packets to the client, wherein the client comprises:
- a receiver buffer for storing at least some of the data packets to be decoded so as to compensate for difference between data transmission amount by the server and data usage amount by the client, and wherein the packets are decoded in a decoding order based on a plurality of decoding values associated with a playout order in the client, and
- a mechanism for signaling to the server information indicative of the next packet to be decoded among the packets in the buffer based on the decoding order values so as to allow the server to adjust the rate of streaming data provided to the client.
- According to the present invention, the packets are associated with a plurality of units including the next unit to be decoded, and wherein the next packet to be decoded is the packet to which the next unit to be decoded belongs. Each of the units has a unit number and each of the data packets has a sequence number known to both the client and the server, and the information signaled to the server is indicative of the unit number of said next unit to be decoded and the sequence number of the packet to which said next unit belongs.
- According to the present invention, the server maintains a list of units that have been sent and a record of unit number and the sequence number of the packet to which the sent units belong and a mapping between said sequence number and unit number to the decoding order for determining the data units in the receiver buffer based on said mapping so as to adjust the streaming data amount provided to the client based on said determination in the server.
- The third aspect of the present invention provides a client device in a multimedia streaming network, the streaming network comprising a server device for providing streaming data in a plurality of packets to the client device, wherein the packets are decoded in a decoding order based on a plurality of decoding values associated with a playout order in the client device. The client device comprises:
-
- a receiver buffer for storing at least some of the data packets to be decoded so as to compensate for difference between data transmission amount by the server device and the data usage amount in the client device; and
- a mechanism for signaling to the server device information indicative of the next packet to be decoded among the packets in the receiver buffer based on the decoding order values so as to allow the server device to adjust the streaming data amount provided to the client device.
- According to the present invention, the packets are associated with a plurality of units including the next unit to be decoded, and wherein the next packet to be decoded is the packet to which the next unit to be decoded belongs. Each of the units has a unit number and each of the data packets has a sequence number known to both the client device and the server device, and the information signaled to the server device is indicative of the unit number of said next unit to be decoded and the sequence number of the packet to which said next unit belongs.
- According to the present invention, the client device further comprises a software program having executable codes for determining:
-
- the decoding order of the data packets in the receiver buffer based on the decoder order values, and
- the next packet to be decoded among the data packets in the receiver buffer based on the decoding order values.
- The fourth aspect of the present invention provides a server device for providing streaming data in a multimedia streaming network, the multimedia streaming network comprising at least a client device for receiving the streaming data in a plurality of data packets and decoding the data packets in a decoding order based on a plurality of decoding order values associated with a playout order, wherein the client device has a receiver buffer for storing at least some of the data packets so as to compensate for difference between data transmission amount by the server device and the data usage amount by the client device. The server device comprises:
-
- a mechanism for receiving information from the client device indicative of the next packet to be decoded among the packets in the receiver buffer based on the decoding order values in the client device; and
- a software program for determining the packets in the receiver buffer based on the information so as to adjust the streaming data amount provided to the client device for controlling level of the receiver buffer.
- According to the present invention, the packets are associated with a plurality of units including the next unit to be decoded, and wherein the next packet to be decoded is the packet to which the next unit to be decoded belongs. Each of the units has a unit number and each of the data packets has a sequence number known to both the client device and the server device, and the information signaled to the server device is indicative of the unit number of said next unit to be decoded and the sequence number of the packet to which said next unit belongs.
- The fifth aspect of the present invention further provides a software product embedded in a computer readable media for use in a client device in a multimedia streaming network, the streaming network comprising a server device for providing streaming data in a plurality of packets to the client device, wherein the packets are decoded in a decoding order based on a plurality of decoding values associated with a playout order in the client device, and wherein the client device comprises a receiver buffer for storing at least some of the data packets to be decoded so as to compensate for difference between data transmission. The software product comprises:
-
- a code for determining the decoding order of the data packets in the receiver buffer based on the decoding order values; and
- a code for determining the next packet to be decoded among the data packets in the receiver buffer based on the decoding order values, so as to provide to the server device information indicative of said next packet to be decoded, allowing the server device to adjust the streaming data amount provided to the client device based on the information for controlling level of receiver buffer.
- According to the present invention, the packets are associated with a plurality of units including the next unit to be decoded, and wherein the next packet to be decoded is the packet to which the next unit to be decoded belongs. Each of the units has a unit number and each of the data packets has a sequence number known to both the client device and the server device, and the information signaled to the server device is indicative of the unit number of said next unit to be decoded and the sequence number of the packet to which said next unit belongs.
- The sixth aspect of the present invention provides a software product embedded in a computer readable media for use in a server device providing streaming data in the multimedia streaming network, the multimedia network comprising at least a client device for receiving the streaming data in a plurality of data packets and decoding the data packets in a decoding order based on a plurality of decoding order values associated with a playout order, wherein the client device has a receiver buffer for storing at least some of the data packets so as to compensate for difference between the transmission amount by the server device and the data usage amount by the client device. The software product comprises:
-
- a code for relating the decoding order to the sequence numbers of the data packets having been sent to the client device; and
- a code for determining the data packets in the receiver buffer based on said relating and on information provided by the client device indicative of the next packet to be decoded in the client device, so as to allow the server device to adjust the streaming data amount provided to the client device for controlling level of the receiver buffer.
-
FIG. 1 is a block diagram showing a typical RTP packet. -
FIG. 2 is a block diagram showing a typical RTP header. -
FIG. 3 is a block diagram showing a multimedia streaming system having a server device and a client device that can perform the rate adaptation method, according to the present invention. - The present invention provides a method of buffer level signaling so as to allow the server in a multimedia streaming network to perform rate adaptation in codecs such as H.264, for which packet transmission order is different from decoding order. The buffer level signaling method, according to the present invention, is based on information about the next unit to be decoded. The sequence number (SN) of the packet to which the next unit to be decoded belongs is herein referred to as NDSN.
- In the method of buffer level signaling, according to the present invention, the receiver reports to the sender information of the next unit to be decoded. This unit is an identifiable decoding unit that can be defined in an RTP payload format. More particularly, the identifiable unit can be identified by the NDSN and the unit number (NDU) within the packet. In the case of an audio codec, the identifiable decoding unit is typically a frame. In the case of the H.264 codec, the identifiable decoding unit is a NAL (Network Abstraction Layer) unit. For example, if the next NAL unit to be passed to the decoder is the third NAL unit found in packet with SN=100, the receiver signals the
values - The receiver reports to the sender information of the next unit to be decoded based on the smallest y value. Based on the received NDSN and the NDU, the server can identify the unit to be decoded next. As such, the sender can derive the correct status of the receiver buffer. Using the set of x and y values given in the background section, this implementation can be illustrated as follows:
- When packets x+4, x+5, x+6 and x+7 have been received, the decoding orders of the units that were carried in these packets are y+100, y+8, y+9, y+10, y+11, y+12, y+13 and y+14. Thus, the second unit of packet x+4 has the smallest decoding order value of y+8. Accordingly, the next unit to be decoded can be signaled unambiguously to the sender through the SN of the packet to which it belongs (x+4) and the corresponding unit number (NDU=1). The receiver also sets HSN=x+7 as always because this is the latest received sequence number. The above-discussed situation is shown in TABLE I:
TABLE I Decoding Packets in Order value receiver buffer NDSN HSN NDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . y + 5 x + 2, x + 3, x + 4 x + 2 x + 4 1 y + 6 x + 3, x + 4, x + 5 x + 3 x + 5 0 y + 7 x + 3, x + 4, x + 5 x + 3 x + 5 1 y + 8 x + 4, x + 5, x + 6 x + 4 x + 6 1 y + 9 x + 4, x + 5, x + 6 x + 5 x + 6 0 y + 10 x + 4, x + 5, x + 6, x + 7 x + 5 x + 7 1 y + 11 x + 4, x + 6, x + 7, x + 8 x + 6 x + 8 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Note:
when decoding order value = y + 6, NDSN = x + 3, and NDU = 0; when decoding order value = y + 7, NDSN = x + 3 and NDU = 1.
Note:
Some data units of the packets in the receiver buffer may have been decoded and removed from the buffer. However, each packet in the buffer should have at least one data unit remaining in the buffer.
- Based on the received NDSN and the NDU, the sender is able to get an accurate estimation of which packets are in the receiver buffer, and for each packet in the receiver buffer, which data units are in the receiver buffer.
- At the receiver side:
-
- Compute the decoding order (y values) of the coded units that are currently in the buffer;
- Find the next unit to be decoded (unit with the smallest y value); and
- Signal the unit number of the next unit to be decoded (NDU) and the sequence number of the next packet to which this unit belongs (call this NDSN).
- At the sender side:
-
- Keep a list of units (L) that have been sent. For each unit keep a record of the sequence number (SN) of the packet in which the unit was sent, its unit number indicating the order of the unit in the packet, and the mapping of the unit number and the sequence number to the decoding order number (i.e. its y value);
- Look up the NDU, NDSN and the HSN signalled by the receiver in RTCP RR or SR report;
- Reconstruct the list of units in the receiver buffer, by looking up in L all the units whose recorded information conforms to:
- 1) the decoding number in the list is higher than the decoding order that maps to the signalled NDSN and NDU, and
- 2) the sequence number is smaller than the highest sequence number received (HSN).
- It should be noted that wrap around should be taken into consideration when comparing the decoding number and the sequence number. For example, since the RTP sequence number is represented using 16 bits in the signaling, the maximum value that has been signaled is 65535. Then the next value of 0 actually represents a sequence number of 65536.
- Alternatively, a special value may also be used for the NDU field (e.g. 0xFFFF if the field is two bytes) in order to signal that no unit information is provided. In this case, only the sequence number of the packet the unit belongs to is supplied. The server will not be able to estimate as accurately which units are currently in the receiver buffer.
- In order to illustrate how the method of buffer level signaling for rate adaptation is carried out, a multimedia streaming system is shown in
FIG. 3 . As shown, themultimedia streaming system 1 has means for buffer level signaling from a streamingclient 60 to astreaming server 10. - The streaming
server 10 comprises an applicationlevel signaling engine 20, arate controller 30 and aserver buffer 40. The streamingclient 60 comprises an applicationlevel signaling engine 70, corresponding to, and adapted to communicate with, the applicationlevel signaling engine 20 in the streamingserver 10. It further comprises aclient buffer 80 which, in the embodiment of the invention illustrated inFIG. 3 , comprises ajitter buffer 82 and apre-decoding buffer 84, integrated as a single unit. In other embodiments of the invention, streamingclient 60 may include a jitter buffer and a pre-decoding buffer that are implemented separately. The streaming client further comprises amedia decoder 90, apost-decoder buffer 100, abuffer controller 110 and a display/play-outdevice 120. - The system depicted in
FIG. 3 is further shown to comprise a “channel buffer” 50 located between streamingserver 10 and streamingclient 60, representing the varying transfer delays that occur during transmission of data packets from the streaming server to the client. - The server's
rate controller 30 is operative to adapt the rate at which media data is transmitted from the streaming server. The server also has atransmission clock 32 to timestamp the packets to be transmitted to the client. It operates by adjusting the transmitted data rate in accordance with the varying bit-rates on the transmission channel, taking into account the client's request for a transmission time-shift, thereby seeking to avoid pauses in play-back at the client due to pre-decoder buffer underflow or dropping packets at the client due to buffer overflow. -
Server buffer 40 stores data packets temporarily before they are transmitted from the streaming server across the transmission channel to streamingclient 60. In a “live” streaming scenario where data packets are sampled real-time, the server buffer is indeed a physical buffer where data packets are placed at sampling time and are extracted at transmission time. In a “pre-encoded” streaming scenario, where data packets are not sampled real-time but are stored in a pre-encoded file and are read from the file at transmission time, the server buffer is a virtual buffer that represents the difference between sampling time (with reference to a sampling clock started at the streaming server when the first data packet of the pre-encoded file is transmitted) and transmission time of data packets. - At the streaming client, media data is received from the transmission channel and buffered in
client buffer 80. The parameters ofpre-decoder buffer 84 andjitter buffer 82 are set by thebuffer controller 110. The parameters are chosen as an aggregate of the server recommended pre-decoder buffering parameters and the additional buffering required as estimated by the client. The client estimates what is needed to tolerate the expected packet transfer delay variation (i.e. jitter) on the available transmission channel. Such aggregate is constrained by the maximum buffering capabilities of the client.Media decoder 90 extracts media data from the client buffer and decodes the media data in a manner appropriate for media type in question. It should be appreciated that the media data will, in general, comprise a number of different media types. For example, if the media data transmitted from the server is representative of a video sequence, it is likely to comprise at least an audio component in addition to video data. It should therefore be understood thatmedia decoder 90, as illustrated inFIG. 1 , may actually comprise more than one decoder, for example a video decoder implemented according to a particular video coding standard and an associated audio decoder. As the media data is decoded bymedia decoder 90, it is output topost-decoder buffer 100 where it is stored temporarily until its scheduled play-out time, at which point it is passed from the post-decoder buffer to display/play-outdevice 120 under the control ofbuffer controller 110. - According to the present invention,
buffer controller 110 is adapted to provide to the applicationlevel signaling engine 70 an indication of the next unit to be decoded. The application level signaling engine is, in turn, adapted to transmit to the streaming server information about the next unit to be decoded, as denoted byreference numeral 300 inFIG. 3 . The transmitted information indicates the unit number of the next unit to be decoded (referred to as NDU) and the sequence number of the packet to which this unit belongs (referred as to NDSN). In the case of an H.264 payload, the unit is a NAL. As shown inFIG. 1 , the streamingclient 60 has asoftware program 112 including codes for computing the decoding order (y values) of the coded units that currently exist in thebuffer 80 and determining the next unit to be decoded based on the smallest y value. Based on this finding, the applicationlevel signaling engine 70 can signal the unit number of the next unit and the sequence number of the packet to which this next unit belongs to the streamingserver 10. - At the
server 10, asoftware program 36 is used to determine the list of units in the receiver buffer from theunit SN list 34 and the information provided by theclient 60. - It should be noted that, in the embodiment described above, the receiver signals the SN of the packet to which the next unit to be decoded belongs and the unit number. Alternatively, the receiver may signal a timestamp of the next unit to be decoded instead of its unit number. As long as each unit, in the same packet has a different timestamp, the sender is able to identify unambiguously this unit from the signaled timestamp and sequence number. However, it is possible that some units have the same timestamp in the same packet. In that case, the signaling will not allow the sender to derive the status of the receiver buffer status as accurately as the signaling of a unit number, with the maximum estimation error being the data amount of a frame.
- Although the invention has been described with respect to one or more embodiments thereof, it will be understood by those skilled in the art that the foregoing and various other changes, omissions and deviations in the form and detail thereof may be made without departing from the scope of this invention.
Claims (33)
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/901,015 US20050254499A1 (en) | 2004-05-12 | 2004-07-28 | Buffer level signaling for rate adaptation in multimedia streaming |
TW094114823A TWI357243B (en) | 2004-05-12 | 2005-05-09 | Buffer level signaling for rate adaptation in mult |
MYPI20052096A MY138660A (en) | 2004-05-12 | 2005-05-10 | Buffer level signaling for rate adaptation in multimedia streaming |
KR1020067026043A KR100865955B1 (en) | 2004-05-12 | 2005-05-11 | Buffer level signaling for rate adaptation in multimedia streaming |
PCT/IB2005/001278 WO2005112367A1 (en) | 2004-05-12 | 2005-05-11 | Buffer level signaling for rate adaptation in multimedia streaming |
EP05742015.0A EP1745609B1 (en) | 2004-05-12 | 2005-05-11 | Buffer level signaling for rate adaptation in multimedia streaming |
CN200580019381.7A CN1981492B (en) | 2004-05-12 | 2005-05-11 | Buffer level signaling for rate adaptation in multimedia streaming |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/844,062 US7542435B2 (en) | 2004-05-12 | 2004-05-12 | Buffer level signaling for rate adaptation in multimedia streaming |
US10/901,015 US20050254499A1 (en) | 2004-05-12 | 2004-07-28 | Buffer level signaling for rate adaptation in multimedia streaming |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/844,062 Continuation-In-Part US7542435B2 (en) | 2004-05-12 | 2004-05-12 | Buffer level signaling for rate adaptation in multimedia streaming |
Publications (1)
Publication Number | Publication Date |
---|---|
US20050254499A1 true US20050254499A1 (en) | 2005-11-17 |
Family
ID=35309301
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/844,062 Active 2027-01-12 US7542435B2 (en) | 2004-05-12 | 2004-05-12 | Buffer level signaling for rate adaptation in multimedia streaming |
US10/901,015 Abandoned US20050254499A1 (en) | 2004-05-12 | 2004-07-28 | Buffer level signaling for rate adaptation in multimedia streaming |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/844,062 Active 2027-01-12 US7542435B2 (en) | 2004-05-12 | 2004-05-12 | Buffer level signaling for rate adaptation in multimedia streaming |
Country Status (4)
Country | Link |
---|---|
US (2) | US7542435B2 (en) |
CN (1) | CN1981492B (en) |
MY (1) | MY138660A (en) |
TW (1) | TWI357243B (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090125636A1 (en) * | 2007-11-13 | 2009-05-14 | Qiong Li | Payload allocation methods for scalable multimedia servers |
US20100274919A1 (en) * | 2007-01-23 | 2010-10-28 | Juniper Networks, Inc. | Bandwidth allocation to support fast buffering |
WO2011136605A2 (en) * | 2010-04-29 | 2011-11-03 | 한국전자통신연구원 | Apparatus and method for wideband short-range wireless communication |
KR20110120828A (en) * | 2010-04-29 | 2011-11-04 | 한국전자통신연구원 | Apparatus and method for wideband high frequency short-range wireless communication |
US20110276712A1 (en) * | 2010-05-05 | 2011-11-10 | Realnetworks, Inc. | Multi-out media distribution system and method |
US20140173055A1 (en) * | 2012-12-17 | 2014-06-19 | Industrial Technology Research Institute | Media streaming method and device using the same |
US10812556B2 (en) | 2012-11-02 | 2020-10-20 | Sony Corporation | Information processing apparatus, information processing method, and program |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG146434A1 (en) * | 2000-11-29 | 2008-10-30 | British Telecomm | Transmitting and receiving real-time data |
EP1428357A1 (en) * | 2001-09-21 | 2004-06-16 | British Telecommunications Public Limited Company | Data communications method and system using receiving buffer size to calculate transmission rate for congestion control |
EP1359722A1 (en) * | 2002-03-27 | 2003-11-05 | BRITISH TELECOMMUNICATIONS public limited company | Data streaming system and method |
EP1593047A4 (en) * | 2003-02-13 | 2010-06-09 | Nokia Corp | Method for signaling streaming quality adaptation and control mechanisms in multimedia streaming |
EP1672865A1 (en) * | 2004-12-20 | 2006-06-21 | Alcatel | Network unit for exchanging a signal with priority, fragmentation and/or aggregation information |
EP1856911A4 (en) * | 2005-03-07 | 2010-02-24 | Ericsson Telefon Ab L M | Multimedia channel switching |
JP2006270696A (en) * | 2005-03-25 | 2006-10-05 | Funai Electric Co Ltd | Av transmission system |
CN102833685B (en) | 2005-03-25 | 2016-01-27 | 桥扬科技有限公司 | For method and apparatus and the data distribution of data communication |
US8804515B2 (en) * | 2005-04-11 | 2014-08-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for dynamically controlling data packet transmissions |
EP1872536B1 (en) * | 2005-04-11 | 2008-09-10 | Telefonaktiebolaget LM Ericsson (publ) | Technique for controlling data packet transmissions of variable bit rate data |
CN101091390B (en) | 2005-06-09 | 2011-01-12 | 桥扬科技有限公司 | Methods and apparatus for power efficient broadcasting and communication systems |
US7701851B2 (en) * | 2005-07-20 | 2010-04-20 | Vidyo, Inc. | System and method for the control of the transmission rate in packet-based digital communications |
US7933294B2 (en) | 2005-07-20 | 2011-04-26 | Vidyo, Inc. | System and method for low-delay, interactive communication using multiple TCP connections and scalable coding |
US8289370B2 (en) * | 2005-07-20 | 2012-10-16 | Vidyo, Inc. | System and method for scalable and low-delay videoconferencing using scalable video coding |
JP4924605B2 (en) * | 2006-03-14 | 2012-04-25 | 日本電気株式会社 | Buffer control method, relay device, communication system |
US7647276B2 (en) * | 2006-05-11 | 2010-01-12 | Cfph, Llc | Methods and apparatus for electronic file use and management |
US20090259756A1 (en) * | 2008-04-11 | 2009-10-15 | Mobitv, Inc. | Transmitting media stream bursts |
JP5109787B2 (en) * | 2008-05-02 | 2012-12-26 | 富士通株式会社 | Data transmission system, program and method |
WO2010111261A1 (en) | 2009-03-23 | 2010-09-30 | Azuki Systems, Inc. | Method and system for efficient streaming video dynamic rate adaptation |
US8301794B2 (en) | 2010-04-16 | 2012-10-30 | Microsoft Corporation | Media content improved playback quality |
WO2012050838A1 (en) | 2010-09-28 | 2012-04-19 | Neocific, Inc. | Methods and apparatus for flexible use of frequency bands |
US9253105B2 (en) | 2010-12-30 | 2016-02-02 | Nokia Technologies Oy | Methods and apparatuses for facilitating determination of a state of a receiver buffer |
AU2012225513B2 (en) | 2011-03-10 | 2016-06-23 | Vidyo, Inc. | Dependency parameter set for scalable video coding |
US9319453B2 (en) * | 2011-07-15 | 2016-04-19 | Shmuel Ur | User-controlled download duration time |
US9313486B2 (en) | 2012-06-20 | 2016-04-12 | Vidyo, Inc. | Hybrid video coding techniques |
CN103716114B (en) * | 2012-09-28 | 2018-02-23 | 华为技术有限公司 | Parameter setting method, terminal and base station in data transmission service |
US9723305B2 (en) | 2013-03-29 | 2017-08-01 | Qualcomm Incorporated | RTP payload format designs |
US9350781B2 (en) | 2013-05-31 | 2016-05-24 | Qualcomm Incorporated | Single network abstraction layer unit packets with decoding order number for video coding |
EP3697100A1 (en) * | 2013-06-05 | 2020-08-19 | Sun Patent Trust | Data decoding method, data decoding apparatus, and data transmitting method |
GB2521104B (en) * | 2013-08-28 | 2017-05-31 | Metaswitch Networks Ltd | Data processing |
CN105792286A (en) * | 2014-12-19 | 2016-07-20 | 中兴通讯股份有限公司 | Traffic control method and apparatus |
JP6580380B2 (en) * | 2015-06-12 | 2019-09-25 | オリンパス株式会社 | Image processing apparatus and image processing method |
EP3850863A4 (en) * | 2018-09-12 | 2022-06-08 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
CN113645192B (en) * | 2021-07-16 | 2024-06-21 | 青岛小鸟看看科技有限公司 | RTP data packet processing method and device |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5565924A (en) * | 1995-01-19 | 1996-10-15 | Lucent Technologies Inc. | Encoder/decoder buffer control for variable bit-rate channel |
US6175871B1 (en) * | 1997-10-01 | 2001-01-16 | 3Com Corporation | Method and apparatus for real time communication over packet networks |
US6292834B1 (en) * | 1997-03-14 | 2001-09-18 | Microsoft Corporation | Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network |
US20040098748A1 (en) * | 2002-11-20 | 2004-05-20 | Lan Bo | MPEG-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control |
US20040223551A1 (en) * | 2003-02-18 | 2004-11-11 | Nokia Corporation | Picture coding method |
US20040228413A1 (en) * | 2003-02-18 | 2004-11-18 | Nokia Corporation | Picture decoding method |
US20050008240A1 (en) * | 2003-05-02 | 2005-01-13 | Ashish Banerji | Stitching of video for continuous presence multipoint video conferencing |
US7047308B2 (en) * | 2001-08-31 | 2006-05-16 | Sharp Laboratories Of America, Inc. | System and method for simultaneous media playout |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5768527A (en) * | 1996-04-23 | 1998-06-16 | Motorola, Inc. | Device, system and method of real-time multimedia streaming |
WO2000041400A2 (en) * | 1999-01-06 | 2000-07-13 | Koninklijke Philips Electronics N.V. | System for the presentation of delayed multimedia signals packets |
FI113124B (en) * | 1999-04-29 | 2004-02-27 | Nokia Corp | Communication |
US20030023746A1 (en) * | 2001-07-26 | 2003-01-30 | Koninklijke Philips Electronics N.V. | Method for reliable and efficient support of congestion control in nack-based protocols |
US20030236904A1 (en) * | 2002-06-19 | 2003-12-25 | Jonathan Walpole | Priority progress multicast streaming for quality-adaptive transmission of data |
JP2006500797A (en) | 2002-07-16 | 2006-01-05 | ノキア コーポレイション | How to enable packet transfer delay compensation during multimedia streaming |
FI116498B (en) * | 2002-09-23 | 2005-11-30 | Nokia Corp | Bandwidth adjustment |
US7190670B2 (en) * | 2002-10-04 | 2007-03-13 | Nokia Corporation | Method and apparatus for multimedia streaming in a limited bandwidth network with a bottleneck link |
EP1593047A4 (en) * | 2003-02-13 | 2010-06-09 | Nokia Corp | Method for signaling streaming quality adaptation and control mechanisms in multimedia streaming |
US20050201471A1 (en) * | 2004-02-13 | 2005-09-15 | Nokia Corporation | Picture decoding method |
US8018850B2 (en) * | 2004-02-23 | 2011-09-13 | Sharp Laboratories Of America, Inc. | Wireless video transmission system |
-
2004
- 2004-05-12 US US10/844,062 patent/US7542435B2/en active Active
- 2004-07-28 US US10/901,015 patent/US20050254499A1/en not_active Abandoned
-
2005
- 2005-05-09 TW TW094114823A patent/TWI357243B/en active
- 2005-05-10 MY MYPI20052096A patent/MY138660A/en unknown
- 2005-05-11 CN CN200580019381.7A patent/CN1981492B/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5565924A (en) * | 1995-01-19 | 1996-10-15 | Lucent Technologies Inc. | Encoder/decoder buffer control for variable bit-rate channel |
US6292834B1 (en) * | 1997-03-14 | 2001-09-18 | Microsoft Corporation | Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network |
US6175871B1 (en) * | 1997-10-01 | 2001-01-16 | 3Com Corporation | Method and apparatus for real time communication over packet networks |
US7047308B2 (en) * | 2001-08-31 | 2006-05-16 | Sharp Laboratories Of America, Inc. | System and method for simultaneous media playout |
US20040098748A1 (en) * | 2002-11-20 | 2004-05-20 | Lan Bo | MPEG-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control |
US20040223551A1 (en) * | 2003-02-18 | 2004-11-11 | Nokia Corporation | Picture coding method |
US20040228413A1 (en) * | 2003-02-18 | 2004-11-18 | Nokia Corporation | Picture decoding method |
US20050008240A1 (en) * | 2003-05-02 | 2005-01-13 | Ashish Banerji | Stitching of video for continuous presence multipoint video conferencing |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100274919A1 (en) * | 2007-01-23 | 2010-10-28 | Juniper Networks, Inc. | Bandwidth allocation to support fast buffering |
US20090125636A1 (en) * | 2007-11-13 | 2009-05-14 | Qiong Li | Payload allocation methods for scalable multimedia servers |
US8942103B2 (en) | 2010-04-29 | 2015-01-27 | Electronics And Telecommunications Research Institute | Apparatus and method for wideband short-range wireless communication |
WO2011136605A2 (en) * | 2010-04-29 | 2011-11-03 | 한국전자통신연구원 | Apparatus and method for wideband short-range wireless communication |
KR20110120828A (en) * | 2010-04-29 | 2011-11-04 | 한국전자통신연구원 | Apparatus and method for wideband high frequency short-range wireless communication |
KR101721268B1 (en) | 2010-04-29 | 2017-03-29 | 한국전자통신연구원 | Apparatus and method for wideband high frequency short-range wireless communication |
WO2011136605A3 (en) * | 2010-04-29 | 2012-03-08 | 한국전자통신연구원 | Apparatus and method for wideband short-range wireless communication |
US8521899B2 (en) * | 2010-05-05 | 2013-08-27 | Intel Corporation | Multi-out media distribution system and method |
US9148464B2 (en) | 2010-05-05 | 2015-09-29 | Intel Corporation | Multi-out media distribution system and method |
US20110276712A1 (en) * | 2010-05-05 | 2011-11-10 | Realnetworks, Inc. | Multi-out media distribution system and method |
US10812556B2 (en) | 2012-11-02 | 2020-10-20 | Sony Corporation | Information processing apparatus, information processing method, and program |
US20140173055A1 (en) * | 2012-12-17 | 2014-06-19 | Industrial Technology Research Institute | Media streaming method and device using the same |
US9680902B2 (en) * | 2012-12-17 | 2017-06-13 | Industrial Technology Research Institute | Media streaming method and device using the same |
Also Published As
Publication number | Publication date |
---|---|
US20050254427A1 (en) | 2005-11-17 |
MY138660A (en) | 2009-07-31 |
CN1981492A (en) | 2007-06-13 |
CN1981492B (en) | 2010-09-22 |
TW200607280A (en) | 2006-02-16 |
US7542435B2 (en) | 2009-06-02 |
TWI357243B (en) | 2012-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050254499A1 (en) | Buffer level signaling for rate adaptation in multimedia streaming | |
US7558869B2 (en) | Rate adaptation method and device in multimedia streaming | |
EP1407596B1 (en) | Video stream switching | |
US8140933B2 (en) | Buffering packets of a media stream | |
US7421508B2 (en) | Playback of streamed media | |
US20090125636A1 (en) | Payload allocation methods for scalable multimedia servers | |
US8819269B2 (en) | Adaptive bit rate method and system using retransmission and replacement | |
KR101449710B1 (en) | Data communication system, data transmitting apparatus, data transmitting method, and method for determining packet size and redundancy | |
KR100966447B1 (en) | Data streaming system and method | |
KR100750669B1 (en) | Method and device for multimedia streaming | |
US7844727B2 (en) | Method and device for proactive rate adaptation signaling | |
US20040057446A1 (en) | Method for enabling packet transfer delay compensation in multimedia streaming | |
JP2003179580A (en) | Data communication system, data transmission equipment, data reception equipment and method, and computer program | |
US20040034870A1 (en) | Data streaming system and method | |
US20030152080A1 (en) | System and method for fault tolerant multimedia communication | |
EP1745609B1 (en) | Buffer level signaling for rate adaptation in multimedia streaming | |
CN101822048A (en) | The equipment that is used for continuous reception of audio and/or video data packets | |
ZA200508487B (en) | Method and device for proactive rate adaptation signaling | |
CN113612649A (en) | Round trip estimation | |
US20050175028A1 (en) | Method for improving the quality of playback in the packet-oriented transmission of audio/video data | |
KR20050019880A (en) | Method for enabling packet transfer delay compensation in multimedia streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NOKIA CORPORATION, FINLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LEON, DAVID;HANNUKSELA, MISKA;AKSU, EMRE BARIS;AND OTHERS;REEL/FRAME:016115/0818;SIGNING DATES FROM 20040827 TO 20041124 |
|
AS | Assignment |
Owner name: SPYDER NAVIGATIONS L.L.C., DELAWARE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NOKIA CORPORATION;REEL/FRAME:019894/0159 Effective date: 20070322 Owner name: SPYDER NAVIGATIONS L.L.C.,DELAWARE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NOKIA CORPORATION;REEL/FRAME:019894/0159 Effective date: 20070322 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |