GB2519391A - Enhanced media quality management - Google Patents

Enhanced media quality management Download PDF

Info

Publication number
GB2519391A
GB2519391A GB1405948.9A GB201405948A GB2519391A GB 2519391 A GB2519391 A GB 2519391A GB 201405948 A GB201405948 A GB 201405948A GB 2519391 A GB2519391 A GB 2519391A
Authority
GB
United Kingdom
Prior art keywords
bitrate
transmission
network
measure
media stream
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
GB1405948.9A
Other versions
GB201405948D0 (en
GB2519391B (en
Inventor
Sowmya Mannava
Senthil Kumar Mani
Bala Manikya Prasad Puram
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.)
Imagination Technologies Ltd
Original Assignee
Imagination Technologies Ltd
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 Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Priority to GB1405948.9A priority Critical patent/GB2519391B/en
Publication of GB201405948D0 publication Critical patent/GB201405948D0/en
Priority to GB1504372.2A priority patent/GB2526405B/en
Priority to US14/677,791 priority patent/US9736077B2/en
Priority to CN201910312002.7A priority patent/CN109981687B/en
Priority to CN201510154720.8A priority patent/CN104980818A/en
Publication of GB2519391A publication Critical patent/GB2519391A/en
Application granted granted Critical
Publication of GB2519391B publication Critical patent/GB2519391B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0015Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0002Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • H04L1/0007Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0014Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the source coding
    • 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
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • 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
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • H04M7/0072Speech codec negotiation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0231Traffic management, e.g. flow control or congestion control based on communication conditions
    • H04W28/0236Traffic management, e.g. flow control or congestion control based on communication conditions radio quality, e.g. interference, losses or delay

Abstract

A method of transmitting a media stream over a network, the method comprising: maintaining a measure of network quality indicative of available bandwidth over the network; using the measure of network quality to detect a reduction in network quality indicative of a reduced available bandwidth and, responsive to detecting said reduction, estimating a first bitrate corresponding to the reduced available bandwidth; responsive to estimating the first bitrate, determining a second bitrate lower than the first bitrate; transmitting the media stream at a bitrate substantially equal to the second bitrate for a first period of time; and increasing the bitrate from the second bitrate to the first bitrate over a second period of time. If oscillations between two bitrates occur due to the detection of more available bandwidth, the stream is transmitted at the lower bitrate for an increased period of time compared to the higher bitrate.

Description

Enhanced Media Quality Management
BACKGROUND OF THE INVENTION
This invention relates to methods and systems for managing the transmission of a media stream in changeable network conditions.
Real-time streaming of media content over the internet has become an increasingly common application in recent years. A wide range of media applications, such as Voice over Internet Protocol (V0IP), on-demand TV, live TV viewing, video conferencing, net meetings, video telephony and many others rely on end-to-end streaming solutions. Unlike a "downloaded" media file, which may be retrieved first and played back later, streaming media applications require a media source to encode and to transmit media over a network to a receiver] which must decode and play the media in real time.
Problems can arise when a media stream is transmitted across a network due to the changing network conditions typically experienced by the stream. For example, a drop in the bandwidth available to a media stream due to network congestion or due to the limited throughput capacity of 2G13G networks can adversely affect the timely transmission of the packets of the stream and lead to packet loss or late delivery of data packets of the stream. For a media stream between VoIP end points, such issues can affect the quality and reliability of VoIP calls. On the other hand, whenever bandwidth availability is high, highest voice quality can be provided to the end user for best end user experience.
There is a need for a method of managing and adapting the transmission of media over networks having changeable properties so as to optimise, or improve] the quality of a media stream received at a receiving device.
SUMMARY
According to a first aspect there is provided a method of transmitting a media stream over a network, the method comprising: maintaining a measure of network quality indicative of available bandwidth over the network; using the measure of network quality to detect a reduction in network quality indicative of a reduced available bandwidth and, responsive to detecting said reduction, estimating a first bitrate corresponding to the reduced available bandwidth; responsive to estimating the first bitrate, determining a second bitrate lower than the first bitrate; transmitting the media stream at a transmission bitrate substantially equal to the second bitrate for a first period of time; and increasing the transmission bitrate from the second bitrate to the first bitrate over a second period of time.
The second bitrate may be determined in dependence on the measure of the reduced network quality.
The first and second bitrates may be determined from a plurality of predefined transmission configurations, each transmission configuration being associated with a codec for encoding media for the media stream and with a packet size for transmitting packets comprising the media stream, each transmission configuration corresponding to a bitrate that is different to the bitrates corresponding to the other transmission configurations.
The step of estimating the first bitrate may comprise selecting a first transmission configuration from the plurality of predefined transmission configurations corresponding to the greatest bitrate that is less than the reduced available bandwidth, the first transmission configuration corresponding to the first bitrate.
The determining step may comprise selecting a second transmission configuration from the plurality of predefined transmission configurations corresponding to a bitrate that is less than the first bitrate, the second transmission configuration corresponding to the second bitrate.
The method may further comprise the steps of: encoding media in accordance with a first codec so as to generate encoded data for transmitting the media stream at the second bitrate; encoding media in accordance with a second, different, codec so as to generate encoded data for transmitting the media stream at the first bitrate.
The transmission bitrate for transmitting the media stream may be increased from the second bitrate to the first bitrate at a first rate, the first rate being dependent on a difference in magnitude between the first bitrate and the second bitrate.
According to a second aspect there is provided a method of controlling a transmission bitrate for a media stream, the method comprising the steps of: determining a measure of network quality indicative of available bandwidth over the network; detecting an oscillation of the transmission bitrate between a first bitrate below the available bandwidth and a second bitrate above the available bandwidth; for a first oscillation period, transmitting at the first bitrate for a first duration and transmitting at the second bitrate for a second duration; and for a second oscillation period subsequent to the first oscillation period, increasing the first duration relative to the second duration such that the proportion of time transmitting at the first bitrate is greater for the second oscillation period than for the first oscillation period.
The first and second bitrates may be determined from a plurality of predefined transmission configurations, each transmission configuration being associated with a codec for encoding media for the media stream and with a packet size for transmitting packets comprising the media stream, each transmission configuration corresponding to a bitrate that is different to the bitrates corresponding to the other transmission configurations.
The method may further comprise the step of selecting a first transmission configuration from the plurality of predefined transmission configurations corresponding to the greatest bitrate that is less than the available bandwidth, the first transmission configuration corresponding to the first bitrate.
The second bitrate may correspond to a second transmission configuration from the plurality of predefined transmission configurations, the second transmission configuration corresponding to the lowest bitrate that is greater than the available bandwidth.
The oscillation period may be time period for the transmission bitrate to change from the first bitrate to the second bitrate and back to the first bitrate.
The measure of network quality may be dependent on measuring a time between expecting to receive a packet of the media stream and receiving said expected packet.
The measure of network quality may be dependent on measuring a network delay time, the delay time comprising a time taken for a first packet to be received, at a first device, from a second device and a time taken for a second packet to be received, at the second device, from the first device.
The second packet may comprise an indication of a time when the first packet was generated.
Determining said measure may comprise determining a measure of packet loss over the network, a measure of network jitter and/or a measure of burst loss.
The methods may further comprise the steps of: selecting one or more codecs in dependence on the measure of network quality; and sending information identifying said selected one or more codecs to another device so as to cause said another device to transmit, over the network, a media stream encoded in accordance with one of said selected one or more codecs.
The methods may further comprise the step of determining an amount of error correction data in dependence on the measure of network quality, the transmitted media stream comprising the determined error correction data.
The media stream may be a Voice over Internet Protocol stream.
According to a third aspect there is provided a device for transmitting a media stream over a network, the device comprising: a quality estimator configured to maintain a measure of network quality indicative of available bandwidth over the network; a configuration manager configured to: use the measure of network quality to detect a reduction in network quality indicative of a reduced available bandwidth and, responsive to detecting said reduction, estimate a first bitrate corresponding to the reduced available bandwidth; in response to estimating the first bitrate, determine a second bitrate lower than the first bitrate; and a transceiver configured to transmit the media stream at a transmission bitrate substantially equal to the second bitrate for a first period of time, wherein the configuration manager is further configured to cause an increase of the transmission bitrate from the second bitrate to the first bitrate over a second period of time.
The second bitrate may be determined in dependence on the measure of the reduced network quality.
The first and second bitrates may be determined from a plurality of predefined transmission configurations, each transmission configuration being associated with a codec for encoding media for the media stream and with a packet size for transmitting packets comprising the media stream, each transmission configuration corresponding to a bitrate that is different to the bitrates corresponding to the other transmission configurations.
The configuration manager may be configured to estimate the first bitrate by selecting a first transmission configuration from the plurality of predefined transmission configurations corresponding to the greatest bitrate that is less than the reduced available bandwidth, the first transmission configuration corresponding to the first bitrate.
The configuration manager may be configured to determine the second bit rate by selecting a second transmission configuration from the plurality of predefined transmission configurations corresponding to a bitrate that is less than the first bitrate, the second transmission configuration corresponding to the second bitrate.
The device may further comprising an encoder configured to: encode media in accordance with a first codec so as to generate encoded data for transmitting the media stream at the second bitrate; and encode media in accordance with a second, different, codec so as to generate encoded data for transmitting the media stream at the first bitrate.
The transmission bitrate for transmitting the media stream may be increased from the second bitrate to the first bitrate at a first rate, the first rate being dependent on a difference in magnitude between the first bitrate and the second bitrate.
According to a fourth aspect there is provided a device for controlling a transmission bitrate for a media stream, the device comprising: a quality estimator configured to determine a measure of network quality indicative of available bandwidth over the network; a configuration manager configured to detect an oscillation of the transmission bitrate between a first bitrate below the available bandwidth and a second bitrate above the available bandwidth; and a transceiver configured to, for a first oscillation period, transmit at the first bitrate for a first duration and transmit at the second bitrate for a second duration, the configuration manager being further configured to, for a second oscillation period subsequent to the first oscillation period, cause an increase in the first duration relative to the second duration such that the proportion of time transmitting at the first bitrate is greater for the second oscillation period than for the first oscillation period.
The first and second bitrates may be determined from a plurality of predefined transmission configurations, each transmission configuration being associated with a codec for encoding media for the media stream and with a packet size for transmitting packets comprising the media stream, each transmission configuration corresponding to a bitrate that is different to the bitrates corresponding to the other transmission configurations.
The configuration manager may be configured to select a first transmission configuration from the plurality of predefined transmission configurations corresponding to the greatest bitrate that is less than the available bandwidth, the first transmission configuration corresponding to the first bitrate.
The second bitrate may correspond to a second transmission configuration from the plurality of predefined transmission configurations, the second transmission configuration corresponding to the lowest bitrate that is greater than the available bandwidth.
The oscillation period may be a time period for the transmission bitrate to change from the first bitrate to the second bitrate and back to the first bitrate.
The measure of network quality may be dependent on measuring a time between expecting to receive a packet of the media stream and receiving said expected packet.
The measure of network quality may be dependent on measuring a network delay time, the delay time comprising a time taken for a first packet to be received, at a first device, from a second device and a time taken for a second packet to be received, at the second device, from the first device.
The second packet may comprise an indication of a time when the first packet was generated.
The quality estimator may determine the measure of network quality by determining a measure of packet loss over the network, a measure of network jitter and/or a measure of burst loss.
The configuration manager may be configured to select one or more codecs in dependence on the measure of network quality, and the transceiver is configured to send information identifying said selected one or more codecs to another device so as to cause said another device to transmit, over the network, a media stream encoded in accordance with one of said selected one or more codecs.
The configuration manager may be configured to determine an amount of error correction data in dependence on the measure of network quality, the transmitted media stream comprising the determined error correction data.
The media stream may be a Voice over Internet Protocol stream.
According to a fifth aspect there is provided a machine readable code for generating the device.
According to a sixth aspect there is provided a machine readable storage medium having encoded thereon non-transitory machine readable code for generating the device.
According to a seventh aspect there is provided a machine readable code for implementing the method.
According to an eighth aspect there is provided a machine readable storage medium having encoded thereon non-transitory machine readable code for implementing the method.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will now be described by way of example with reference to the accompanying drawings. In the drawings: Figure 1 shows a schematic diagram of a device capable of transmitting a media stream over a network; Figure 2 shows a flowchart illustrating a process for transmitting media at an optimal bitrate; Figure 2a shows a chart illustrating an example of the change in transmission bitrate over time when there is a change in the available bandwidth; Figure 3 shows a flowchart illustrating a process for controlling transmission bitrate oscillation; Figure 3a shows a chart illustrating the oscillation control of a transmission bitrate; and Figure 4 depicts a process for estimating network delay.
DETAILED DESCRIPTION OF THE DRAWINGS
The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art.
The general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
Figure 1 depicts a transmitting device 10, which may be any suitable device that is capable of generating packet based data such as a computer, smartphone, IF-phone, etc. The transmitting device 10 comprises a transceiver 11 for connection to a communications network 12 such as the internet or other packet based networks. The transmitting device 10 can transmit and/or receive data packets to and/or from the communications network 12 via the transceiver 11. The transmitting device 10 comprises an encoder 13 for encoding media that is to be transmitted over the communications network 12 to a receiving device 20.
The transmitting device 10 can comprise a quality estimator 14 that can estimate the quality of the network 12 and a configuration manager 15 that can determine parameters for transmitting media over the network 12. The configuration manager can determine the transmission parameters in dependence on the estimate of the quality of the network 12. If there is a change in the condition or state of the network 12 (such as a change in the bandwidth availability), which is indicated by the quality estimate, the transmission parameters can be adapted by the configuration manager to provide an optimal stream for the new state of the network 12.
The configuration manager 15 may determine parameters such as parameters of the codec used for encoding and decoding media and the packet size for packets comprising the encoded media. The configuration manager 15 may determine and store a number of different configurations in a table during, for example, the session start-up. As shown in the example configuration table below, each configuration may have an associated packet size, codec and codec mode (if any).
Each codec (and mode) may have an encoding rate associated with it. Also, generally, the overhead associated with packetisation increases as the packet size decreases and so the transmission bitrate can be varied by varying the packet size. Thus, the transmission bitrate BR for each configuration can be calculated. The configurations can be sorted in a decreasing bitrate order. More or fewer configurations than those shown in the configuration table below may be utilised.
Configuratio Packet Codec Codec Bitrate n Size Mode (if any) Ci PS1 Cd1 CM1 BR10 C2 PS2 Cd1 CM1 BR9 C3 PS3 Cd1 CM1 BR8 C4 PS1 Cd2 CM1 BR7 Cs PS1 Cd2 CM2 BR6 Ce P52 Cd2 CM2 BR5 C7 PS2 Cd3 None BR4 Ce PS3 Cd4 None BR3 Ce PS4 Cd3 None BR2 Cio PS4 Cd4 None BR1 Table 1: configuration table In the table, C identifies a configuration, PS is a packet size, Cd is a codec CM is a codec mode and BR is the transmission bitrate for that configuration. BR19> BR9> BR8 >... BR1 and PS4 > PS3 > PS2 > PS1. Each configuration has a different combination of codec (and codec modes, if available) and packet size, which leads to different transmission bitrates. Thus, when the available network bandwidth changes, an appropriate configuration can be selected so that the configuration with the maximum bitrate that is not greater than the available bandwidth can be utilised. 11.
The quality estimator 14 can periodically determine the quality of the network, e.g. at a rate of once every 1 OOms to give some suitable examples. When there is decrease in the quality of the network as indicated by the quality estimate (i.e. the transmission quality provided by the network) which leads to a decrease in the available bandwidth, the configuration manager 15 determines the configuration, C,1, with the highest bitrate, BRA, that is not greater than the available bandwidth (hereinafter referred to as the "optimal bitrate"). However, if there is a significant decrease in the available bandwidth, the configuration manager 15 does not immediately utilise the optimal bitrate. Instead, the configuration manager 15 determines a reduced bitrate that is lower than the optimal bitrate to utilise. Thus, when the significant decrease in available bandwidth is detected, the configuration manager 15 switches the transmission bitrate from a currently utilised bitrate to the reduced bitrate and not to the optimal bitrate. A significant decrease in the available bandwidth may, for example, be considered to be any decrease that would cause the configuration manger 15 to change the current bitrate to a bitrate that this lower than the next available lower bitrate. For example, if currently transmitting at BR10, a decrease in the available bandwidth would be considered to be significant if the optimal bitrate is BR5 or lower.
Packets which are transmitted from the transmitting device 10 may be queued at various points in the network path. For example, queuing may occur if the packets are transmitted at a higher bitrate than the bandwidth supported by the current network conditions. By switching to the reduced bitrate instead of the optimal bitrate, the transmitting device 10 can clear any queued up packets in the network path before switching to the optimal bandwidth. This helps reduce the delay in receiving the transmitted packets at the receiving device 20. The queuing up of packets may be caused by, for example, a delay between the change in the available bandwidth and detecting that change and so the transmitting device 10 may transmit packets at a bitrate that is above the available bandwidth during that delay. This can lead to a build-up of packets and queuing of packets at various points in the network path such as various network interfaces, access points, ENodeB, etc. By utilising the reduced bitrate, the build-up of packets can be cleared before switching to the optimal bitrate.
This allows transmitted packets to arrive at the receiving device 20 in a timely manner, which is advantageous for real-time media streaming applications such as VoIP.
The amount of bitrate reduction from the optimal bitrate may be dependent on the amount of reduction in the available bandwidth. Generally, the amount of bitrate reduction may be proportional to the reduction in the available bandwidth. The amount of bitrate reduction can be made sufficient so as to allow clearance of the packet build up over a short period of time (e.g. over a time period in the range from 5 to 7 seconds and preferably 6 seconds). For example, if a stream was being transmitted using configuration Ci and a relatively small drop in the available bandwidth was detected, for which the optimal bitrate is BR9, the configuration manager 15 may switch to C4 (which has a reduced bitrate of BR7) for a period of time to clear any build-up of packets, before switching to C2 to transmit at the optimal bitrate, BR9. If a much larger drop in available bandwidth was detected (for example, > 8Kbps in certain VoIP applications), the bitrate may need to be reduced to a greater extent to clear a relatively larger build-up of packets. For example, if the optimal bitrate is now BR5 (instead of BR9), then the configuration manager 15 may switch to configuration Cio, which will reduce the bitrate to a greater extent to clear a relatively larger build-up of packets, before switching to C6 (which may be done in quick adaptive steps) to transmit at the optimal bitrate, BR5.
In some circumstances, a bitrate reduction from the optimal configuration may not be applied. For example, if there is a relatively small drop in the available bandwidth (e.g. if only the next lowest configuration is optimal), the configuration manager 15 may not apply the bitrate reduction and may immediately switch to the optimal bitrate. In another example, if the optimal bitrate following a drop in the available bandwidth corresponds to the lowest available configuration (e.g. Cio) then the configuration manager 15 may immediately switch to that configuration.
Alternatively or additionally, the amount of time transmitting at the reduced bitrate may be proportional to the amount of reduction in the available bandwidth. For example, if the large drop in the available bandwidth was detected, for which the optimal bitrate is BR5, the configuration manager 15 may switch to Cs instead of Cio, as described above, and transmit using Cs for a longer period of time than if transmitting at Cio before switching to Ce to transmit at the optimal bitrate, BR5. This will also clear the large build-up of packets and allow a higher quality configuration to be utilised, however at the expense of a larger delay.
After a suitable amount of time transmitting at the reduced bitrate, the configuration manager 15 may quickly change the transmission bitrate to the optimal bitrate. The rate at which the transmission bitrate is changed may be dependent on the amount that the bitrate is reduced from the optimal bitrate. Generally, the greater the amount that the bitrate has been reduced, the greater the rate at which the bitrate is increased from the reduced bitrate to the optimal bitrate. For example, if the reduced bitrate was BR7 and the optimal bitrate was BRg, the configuration manager 15 may switch from C4 to C3 to C2 overt amount of time. Whereas if the reduced bitrate was BR1 and the optimal bitrate was BR5 the configuration manager may switch from Cio to Ca to Ca over the same t period of time. Thus the rate at which the bitrate is increased is greater. The media stream is then transmitted at the optimal bitrate for the new network condition.
Figure 2 is a flow diagram which describes an exemplary process (using the configuration table example above) for adapting the transmission bitrate of a media stream over a network with changeable conditions. Figure 2a shows the change in the transmission bitrate (solid line) when there is a change in the available bandwidth (dashed line) for the example described in relation to figure 2. The x-axis represents time, where x is an amount of time. This amount of time may be a suitable amount of time based on how often the configuration manager 15 is to select a transmission configuration (which may be a new or the same configuration).
At step 201, the transmitting device 10 transmits a media stream over the network using configuration Ci. Thus media is encoded at the encoder 13 using codec Cd1 (in mode CM1) and the encoded media is packetised at a PSi packet size at the packetiser 16. The packets are transmitted over the network 12 at transmission bitrate BR10, as shown in figure 2a.
At step 202, the quality estimator 14 determines the quality of the network 12 (i.e. the transmission quality provided by the network 12 to the transmitting device 10), which can indicate the available bandwidth over the network 12.
At step 203, if a significant reduction in the available bandwidth is detected, then the process moves on to step 204. If there is not a significant reduction in the available bandwidth (e.g. if there is no change or an increase in the available bandwidth), the process moves back to step 201 and maintains the current configuration or, if available and allowed by the available bandwidth, switches to a configuration with a higher bitrate.
At step 204, an optimal bitrate for the available bandwidth is determined. For example, if the available bandwidth corresponds to a bitrate between BR5 and BR5 (as shown by the dashed line from time = 2x onwards in figure 2a) the configuration manager 15 will determine that BRs is the optimal bitrate as it is the highest selectable bitrate that is not greater than the available bandwidth.
At step 205, the configuration manager 15 determines a bitrate that is less than the optimal bitrate BR5 to thereby select a reduced bitrate. Continuing with the above example, the reduced bitrate may be selected to be BR1, as shown in Figure 2a.
At step 206, the configuration manager 15 then changes the configuration from Ci to C10 and causes the encoder 13 to encode media using codec Cd4 and the packetiser 16 to use packet size PS4. The packets are then transmitted over the network 12 at transmission bitrate BR1. As shown in figure 2a, the transmission bitrate is reduced from BRio to BRi at time = 2x.
At step 207 after an appropriate amount of time, the configuration manager 15 switches the configuration of the transmitting device 10 from Cio to Ce (which corresponds to the optimum bitrate BR5) by causing the encoder 13 to use codec Cd2 (in mode CM2) and the packetiser 16 to packetise the encoded media at a PS2 packet size. As shown in figure 2a, the increasing of the transmission bitrate from BR1 to BR5 may be done in a step-wise manner by increasing from BR1 to BR3 (by switching the configuration from Cio to Ce by causing the encoder 13 to use codec Cd4 and the packetiser 16 to packetise the encoded media at a PS3 packet size) and then to BR5.
Increasing the transmission bitrate in a step-wise manner (rather than immediately switching to the optimal bitrate) provides a smooth transition in the voice quality as perceived by user at the receiving device 20.
At step 208, the media stream is transmitted at the optimal bitrate BR5, as shown from time 4x onwards in Figure 2a.
The process may periodically repeat itself with the measurement of quality estimate (e.g. every lOOms) to continually adapt to changeable network conditions in real-time by returning to step 202.
When the available bandwidth is relatively stable, there may be some circumstances which can cause the transmission bitrate of the transmitting device 10 to oscillate between bitrates higher and lower than the available bandwidth.
This oscillation may be due to, for example, a finite number of transmission bitrates available to the transmitting device 10. For example, if the available bandwidth corresponds to a bitrate that is between BR6 and BR6 the configuration manager 15 will set the optimum bitrate to be BR5. The quality estimator 14 may then indicate that there is slightly more bandwidth available in the network, which can cause the configuration manager 15 to increase the bitrate to BR6, which is greater than the available bandwidth. The quality estimator 14 may then indicate to the configuration manager 15 that there is slightly less bandwidth available than BR6 and so the configuration manager 15 decreases the bitrate back down to BRs. This oscillation between BR5 and BR6 continues when the available bandwidth is between the two bitrates. Oscillation of the transmission bitrate may also occur due to tolerances in the bandwidth measurement, short term variations in the bandwidth, etc. Figure 3 is a flow diagram which describes an exemplary process for controlling the oscillation of the transmission bitrate of a media stream. Figure 3a shows the change in the transmission bitrate (solid line) over time and in relation to the available bandwidth (dashed line).
At step 301, the transmitting device 10 transmits a media stream over the network using, for example, configuration C6.
At step 302, the quality estimator 14 determines the quality of the network 12 (i.e. the transmission quality provided by the network 12 to the transmitting device 10), which can indicate the available bandwidth over the network 12.
At step 303, if a change in the quality measure is detected, then the process moves on to step 304, where an appropriate configuration is selected in dependence of that change. For example, if there is an increase in the available bandwidth, a new configuration with a higher transmission bitrate than the previous configuration is selected. If there is a decrease in the available bandwidth, a new configuration with a lower transmission bitrate than the previous configuration is selected (for example, via steps 204 to 208 of figure 2). The media stream is then transmitted with the newly selected configuration at step 301.
If, at step 303, there is no change in the quality measure, the process moves to step 307, where current transmission bitrate is maintained. The media stream is then transmitted with the current transmission bitrate at step 301.
As mentioned above, when the available bandwidth corresponds to a bitrate that is between two transmission bitrate, the quality estimator may indicate that there is more or less bandwidth in the network. Due to the loop of steps 301 to 302 to 303 to 304 and back to 301, an oscillation in the transmission bitrate may occur even though there is no actual change in the network bandwidth. At step 305, the configuration manager detects if the transmission bitrate is oscillating between two bitrates. An oscillation period is a time period in which the transmission bitrate changes from a first bitrate to a second bitrate and back to the first bitrate. A single oscillation period or a repetition of the change from the first bitrate to the second bitrate and back to the first bitrate over subsequent, adjacent oscillation periods can indicate that the transmission bitrate is oscillating. In the example shown in figure 3a, an oscillation may be detected by the configuration manager 15 when the bitrate changes from BR5 to BR6 and back to BR5 during period time ti.
If, at step3o5, the configuration manager 15 detects that an oscillation is occurring, the process moves on to step 306 where the configuration manager 15 can increase the duration at which the transmitting device 10 transmits at the lower of the two bitrates compared to the duration transmitting at the higher bitrate. For each period of oscillation, the configuration manager 15 can progressively increase the duration transmitting at the lower bitrate relative to the duration transmitting at the higher bitrate.
If, at step 305, there is no oscillation detected, the process moves back to step 301 via step 307, where the media stream is transmitted using the current configuration.
In the example shown in figure 3a, the transmission bitrate (solid line) oscillates above and below the available bandwidth (dashed line) at BR6 and BR5. For each period of oscillation, the configuration manager 15 increases the duration for transmitting at BRs. For the first period ti, the duration for transmitting at BRs and BRa is x. The configuration manager 15 then detects that an oscillation is occurring at the end of ti.
The configuration manager 15 then increases the duration for transmitting at BR5 by an amount, e.g. to 1.5x, compared to x for transmitting at BR6 for the second period t2. Thus, in this example, t2 = 1.25t1. If periods ti, t2, etc were to be kept to the same duration, i.e. t2 = tl, then for period t2 the configuration manager 15 can increase the duration transmitting at BR5 (e.g. to x + y) and correspondingly decrease the duration transmitting at BR6 (e.g. to x -y), where y is some duration, with y<x. In either method, the configuration manager 15 increases the lower BR6 transmission duration for the next period t2 relative to previous period ti.
As shown in figure 3a, the transmission duration at BRa is increased further during time period t3. During t3, the available bandwidth increases, which is detected by the quality estimator 14. At the end of time periodt3, the configuration manager 15 resets the time period for switching of the bitrates to the initial, shorter value (e.g. to 2x) so that the transmitting device 10 can adapt to the new network conditions and transmit at higher bitrates. The transmission bitrate can be adapted in a step-wise manner (rather than immediately switching to a new higher bitrate that corresponds to the available bandwidth) to provide a smooth transition in the voice quality as perceived by user at the receiving device 20.
By adapting the duration spent transmitting at the lower bitrate, the transmitting device can transmit packets within the available bandwidth and so there will be less packet loss and/or build up in the network. By allowing the device to periodically increase its transmission bitrate the oscillation rate is decreased. By not completely avoiding oscillation in this manner the device can also adapt to higher transmission bitrates when there is greater bandwidth available.
The quality manager 14 can periodically determine the quality of the network. The time between quality measures is determined such that, if transmitting at a higher bitrate than available bandwidth, the duration of the transmission is not long enough to significantly worsen the network path (by causing packet build up) but is long enough to reflect the actual condition of the network. The duration between measurements is preferably lOOms.
The time between configuration switching may be dependent on the condition of the network. For example, if the quality estimate indicates that the network conditions are highly changeable, then immediate change in configuration can take place so that the network path to the receiving device 20 is notworsened further. If the quality estimate indicates that the network condition is stable, then the configuration can be maintained for an appropriate amount of time (e.g. 6 seconds) before switching to next higher bitrate configuration.
The quality estimator 14 may directly test the available bandwidth by using dedicated testing methods that are known in the art. Alternatively or additionally, the quality estimator 14 may determine an indication of the available bandwidth by using certain parameters associated with packets that are already being used for communicating media between the transmitting and receiving devices 10 and 20. For example, an indication of the available bandwidth can be determined using one or a combination of the following measures: 1) Network delay. High network delay values can indicate that a larger number of packets are accumulated either in the device network driver or in the network. The network delay values indicate the time taken for a packet to travel from the transmitting device 10 to the receiving device 20 and back again. As shown in figure 4, packets and 41, which may be packets for communicating the media stream and are transmitted by the transmitting and receiving devices 10 and 20, can each have the following information contained within it: Local Packet Generation Time (LPGT) and/or Remote Packet Generation Time (RPGT) and Packet Idle Time (PIT).
When devices 10 and 20 are communicating, for example during a VoIP call, every packet transmitted for the call may incorporate the LPGT information, which for packet is TO. When packet 40 is received at device 20, the time instant at reception (Ti) is measured and when device 20 sends the next packet 41, the time elapsed between the time at reception of the last packet 40 and the time of transmission (T2) of the current packet 41 is incorporated into the packet 41 as the PIT. The packet generation time at device 10 (i.e. TO) of the last received packet 40 is included in packet 41.
Device 10 can then estimate the network delay from the information in packet 41 as: Network delay = packet 41 received time (13) -RPGT -PIT The network delay value may be influenced by factors such as the number of network gateways in the network between devices 10 and 20. The influence of these gateways to the network delay may generally be constant. To account for the delay caused by the gateways, a number of network delay measurements may be taken (e.g. between and 125 and preferably around 100) and then the average of a number of minimal delay values (e.g. the four minima values) can be determined. Half of the determined average value can be used to estimate the delay caused by the gateways. Thus, for subsequently measured network delay values, the halved average can be used as a fixed value to subtract from subsequent measured network delay values to account for the delay caused by the gateways.
2) Packet reception gap. The packet reception gap can indicate that continuous streams of packets are being lost or stuck in the network. This may lead to breaks in, for example, voice calls may be dropped if the packet reception gap value is high. To sustain a voice call whenever the packet reception gap is high, the transmission bitrate can be reduced so that packets can reach the receiving device 20 and the voice call can be maintained.
During a media stream, the receiving device 20 may expect to receive packets at certain times as part of the stream. For example, a packet may contain a portion of media that should be played back at the receiving device 20 in a certain order and/or at a certain time. The time elapsed between expecting to receive a packet and actually receiving that packet can indicate the packet reception gap. Alternatively, the packet reception gap can be indicated by counting the number of times a media player at the receiving device 20, which may require media packets at regular intervals, requests a packet for playing media before actually receiving a media packet.
3) Packet Loss. This measure indicates the percentage loss of packets in the network over a specified period.
4) Network jitter. This measure indicates the variation in the time between receiving consecutive packets. The variation may be caused by network congestion, timing drift, route changes, etc. A high value of network jitter indicates that more out of order packets are received.
5) Burst Loss. This measure indicates the number of packets in periods of time between the loss of a packet and the start a continuous reception of a predetermined number of good packets.
The measure of quality determined by quality estimator 14 may utilise one of or any combination of the above measures ito 5. When combining measures, each measure may be weighted differently to reflect their significance in effecting the quality of the network. For example, higher values of network delay and packet reception gap can more clearly indicate bad network conditions and so may be provided with a higher weighting. Thus appropriately weighting each measure when determining a combined measure can provide a quicker and more accurate reflection of bad network conditions and allow the configuration manager 15 to quickly adapt the transmission parameters of the media stream.
The values of each measure (or a combination of the measures) can provide an estimate of the quality or capacity of the network without providing an explicit bandwidth estimate. When the condition of the network changes, the change in value can provide an indication of whether the bandwidth has increased or decreased. In dependence on that change in value, a new configuration can be selected. For 21.
example, if the measure indicates that the bandwidth has increased (e.g. because determined values for each or any combination of measures 1)-5) above have decreased), then the configuration manager 15 can select a new configuration to use that transmits at a greater bitrate than the current configuration.
As measures 1)-5) are able to use properties of the current media stream to determine the quality estimate, the measures can provide an indication of the suitability of the currently utilised configuration for the current network condition. For example, if a measure made when transmitting at BR5 indicates that there is capacity in the network, then the configuration manager 15 can increase the transmission bitrate to BR5. When transmitting at BR6, the measure may indicate that there is less or no capacity in the network and so the configuration manager may drop back to BRs. Thus by using one or any combination of measures 1)-5) above, the suitability of a transmission bitrate for current network conditions can be determined.
The value of each measurement that is carried out may be quantized differently to reflect the significance of the measured value in effecting the quality of the network.
For example, when providing a value for the network delay, if a short delay time is measured zero quantization may be applied to the value associated with that short delay time as the conditions of the network are considered to be good. However, if a long delay time is measured, which indicates that the conditions of the network have become poor, then a large quantization may be provided to the value associated to that long delay time to provide an exaggerated impression of the poor network condition, which can allow the system to react and adapt more quickly to the poor network condition.
The selection of the new configuration can be dependent on the measured value. For example, if the transmitting device 10 was transmitting using configuration Ce and the measured value is relatively small this indicates that the network is good and there is some more bandwidth available, the configuration manager 15 may select configuration Cs to transmit at a slightly higher bitrate. If the measured value was relatively large this indicates that the network conditions are not good and the configuration manager 15 may select configuration appropriately based on the value.
The value of the next quality measure may then provide an indication of whether the available bandwidth is higher or lower than the new bitrate and the configuration manager can again select the configuration accordingly. Thus by periodically determining the quality of the network in this way, the transmission bitrate can be continuously adapted.
The configuration manager 15 may select an error correction scheme to be used when transmitting the media stream in dependence on the measured quality of the network.
The configuration manager 15 may select error correction schemes such as a redundancy scheme (e.g. RFC 2198), forward error correction (FEC), overlap time stamp correction (OTR), etc. The selection of the appropriate scheme may be dependent on the amount of bandwidth required to implement each scheme.
Generally, a redundancy scheme such as RFC 2198 requires less bandwidth than FEC, which requires less bandwidth than OTR. Thus, the configuration manager prioritises the use of a redundancy scheme, then FEC then OTR. If the redundancy scheme is not supported by either the transmitting or receiving devices 10 or 20, FEC is selected. If neither the redundancy scheme nor FEC are supported by either device and 20, then OTR is selected.
When implementing an error correction scheme, the scheme can be configured in dependence on the measure of network quality. For example, the redundancy value (for FFC 2198) or the span (for FEC) can be configured based on the measure of network quality. When the measure indicates bad network conditions and more loss of packets, the redundancy values and FEC span can be increased in proportion to the loss in network quality so that there is a greater chance of packet recovery at the receiving device 20.
The receiving device 20 may comprise the same features and functionality as the transmitting device 10. The devices 10 and 20 can individually or together determine the quality measure. The devices 10 and 20 may also transmit the network quality estimate or network parameters to determine the configuration to be used for the media stream. The devices 10 and 20 may also individually or together negotiate to determine the codec and packet size to be used for the media stream.
Alternatively, the receiving device 20 may not comprise the same features and functionality as the transmitting device 10. For example, the receiving device 20 may not comprise a quality estimator 14 or may not be able to interpret a received network quality estimate. In the case of a VoIP stream between devices 10 and 20 for example, this may lead to the receiving device 20 not being able to adapt its transmission bitrate when the quality of the network changes. The transmitting device 10, however, does comprise a quality estimator 14 and can therefore estimate the quality of the network.
Based on the quality estimate made by the transmitting device 10, the configuration manager can select one or more codecs that have transmission bitrates appropriate for the current estimated network quality. The transmitting device 10 can then send information indicating those selected codes to the receiving device 20 to cause the receiving device 20 to use one of those selected codecs. During initial call set up or renegotiation during the call, the transmitting and receiving devices 10 and 20 send each other a list of codecs supported by each respective device. The transmitting device 10 can cause the receiving device 20 to use one of the selected codecs from the list of supported codecs on the basis of network quality. The transmitting device can therefore cause the receiving device 20 to adapt its transmission bitrate in dependence on a quality estimate made at the transmitting device 10.
In one example, the transmitting and receiving devices 10 and 20 may devices that are capable of VoIP communication. Example codecs that may be used for the VoIP communication include G722, G.71 1 (ALaw, plaw), AMR WB (with variable modes and corresponding bitrates), G.729AB, G.726-16, G.726-24, G.726-32, G.726-40, G.723.1(5.3), AMR NB (with variable modes and corresponding bitrates).
The transmitting and receiving devices configured in accordance with the examples described herein could be embodied in hardware, software or any suitable combination of hardware and software. The transmitting and receiving devices of the examples described herein could comprise, for example, software for execution at one or more processors (such as at a CPU and/or GPLJ), and/or one or more dedicated processors (such as ASIC5), and/or one or more programmable processors (such as FPGA5) suitably programmed so as to provide functionalities of the data processing system, and/or heterogeneous processors comprising one or more dedicated, programmable and general purpose processing functionalities. In the examples described herein, the transmitting and receiving devices comprise one or more processors and one or more memories having program code stored thereon, the data processors and the memories being such as to, in combination, provide the claimed data processing systems and/or perform the claimed methods.
Data processing units described herein (e.g. encoder 13, quality estimator 14, configuration manager 15, packetiser 16) need not be provided as discrete units and represent functionalities that could (a) be combined in any manner, and (b) themselves comprise one or more data processing entities. Data processing units could be provided by any suitable hardware or software functionalities, or combinations of hardware and software functionalities.
The term software as used herein includes executable code for processors (e.g. CPUs and/or GPU5) firmware bytecode, programming language code such as C or OpenCL, and modules for reconfigurable logic devices such as FPGAs. Machine-readable code includes software and code for defining hardware, such as register transfer level (RTL) code as might be generated in Verilog or VHDL.
Any one or more of the data processing methods described herein could be performed by one or more physical processing units executing program code that causes the unit(s) to perform the data processing methods. Each physical processing unit could be any suitable processor, such as a CPU or GPU (or a core thereof), or fixed function or programmable hardware. The program code could be stored in non-transitory form at a machine readable medium such as an integrated circuit memory, or optical or magnetic storage. A machine readable medium might comprise several memories, such as on-chip memories, computer working memories, and non-volatile storage devices.
The applicant hereby discloses in isolation each individual feature described herein and any combination of two or more such features, to the extent that such features or combinations are capable of being carried out based on the present specification as a whole in the light of the common general knowledge of a person skilled in the art, irrespective of whether such features or combinations of features solve any problems disclosed herein, and without limitation to the scope of the claims. The applicant indicates that aspects of the present invention may consist of any such individual feature or combination of features. In view of the foregoing description it will be evident to a person skilled in the art that various modifications may be made within the scope of the invention.

Claims (43)

  1. Claims 1. A method of transmitting a media stream over a network, the method comprising: maintaining a measure of network quality indicative of available bandwidth over the network; using the measure of network quality to detect a reduction in network quality indicative of a reduced available bandwidth and, responsive to detecting said reduction, estimating a first bitrate corresponding to the reduced available bandwidth; responsive to estimating the first bitrate, determining a second bitrate lower than the first bitrate; transmitting the media stream at a transmission bitrate substantially equal to the second bitrate for a first period of time; and increasing the transmission bitrate from the second bitrate to the first bitrate over a second period of time.
  2. 2. A method as claimed in claim 1, wherein the second bitrate is determined in dependence on the measure of the reduced network quality.
  3. 3. A method as claimed in claim 1 or 2, the first and second bitrates being determined from a plurality of predefined transmission configurations, each transmission configuration being associated with a codec for encoding media for the media stream and with a packet size for transmitting packets comprising the media stream, each transmission configuration corresponding to a bitrate that is different to the bitrates corresponding to the other transmission configurations.
  4. 4. A method as claimed in claim 3, wherein the step of estimating the first bitrate comprises selecting a first transmission configuration from the plurality of predefined transmission configurations corresponding to the greatest bitrate that is less than the reduced available bandwidth, the first transmission configuration corresponding to the first bitrate.
  5. 5. A method as claimed in claim 3 014, wherein said determining step comprises selecting a second transmission configuration from the plurality of predefined transmission configurations corresponding to a bitrate that is less than the first bitrate, the second transmission configuration corresponding to the second bitrate.
  6. 6. A method as claimed in any preceding claim, further comprising the steps of: encoding media in accordance with a first codec so as to generate encoded data for transmitting the media stream at the second bitrate; encoding media in accordance with a second, different, codec so as to generate encoded data for transmitting the media stream at the first bitrate.
  7. 7. A method as claimed in any preceding claim, wherein the transmission bitrate for transmitting the media stream is increased from the second bitrate to the first bitrate at a first rate, the first rate being dependent on a difference in magnitude between the first bitrate and the second bitrate.
  8. 8. A method of controlling a transmission bitrate for a media stream, the method comprising the steps of: determining a measure of network quality indicative of available bandwidth over the network; detecting an oscillation of the transmission bitrate between a first bitrate below the available bandwidth and a second bitrate above the available bandwidth; for a first oscillation period, transmitting at the first bitrate for a first duration and transmitting at the second bitrate for a second duration; and for a second oscillation period subsequent to the first oscillation period, increasing the first duration relative to the second duration such that the proportion of time transmitting at the first bitrate is greater for the second oscillation period than for the first oscillation period.
  9. 9. A method as claimed in claim 8, the first and second bitrates being determined from a plurality of predefined transmission configurations, each transmission configuration being associated with a codec for encoding media for the media stream and with a packet size for transmitting packets comprising the media stream, each transmission configuration corresponding to a bitrate that is different to the bitrates corresponding to the other transmission configurations.
  10. 10.A method as claimed in any of claims 8 or 9, further comprising the step of selecting a first transmission configuration from the plurality of predefined transmission configurations corresponding to the greatest bitrate that is less than the available bandwidth, the first transmission configuration corresponding to the first bitrate.
  11. 11.A method as claimed in any of claims 8 to 10, wherein the second bitrate corresponds to a second transmission configuration from the plurality of predefined transmission configurations, the second transmission configuration corresponding to the lowest bitrate that is greater than the available bandwidth.
  12. 12.A method as claimed in any of claims 8to 11, said oscillation period being a time period for the transmission bitrate to change from the first bitrate to the second bitrate and back to the first bitrate.
  13. 13. A method as claimed in any of the preceding claims, said measure of network quality being dependent on measuring a time between expecting to receive a packet of the media stream and receiving said expected packet.
  14. 14.A method as claimed in any of the preceding claims, said measure of network quality being dependent on measuring a network delay time, the delay time comprising a time taken for a first packet to be received, at a first device, from a second device and a time taken for a second packet to be received, at the second device, from the first device.
  15. 15.A method as claimed in claim 14, the second packet comprising an indication of a time when the first packet was generated.
  16. 16.A method as claimed in any preceding claim, wherein determining said measure comprises determining a measure of packet loss over the network, a measure of network jitter and/or a measure of burst loss.
  17. 17.A method as claimed in any preceding claim, further comprising the steps of: selecting one or more codecs in dependence on the measure of network quality; and sending information identifying said selected one or more codecs to another device so as to cause said another device to transmit, over the network, a media stream encoded in accordance with one of said selected one or more codecs.
  18. 18.A method as claimed in any preceding claim, further comprising the step of determining an amount of error correction data in dependence on the measure of network quality, the transmitted media stream comprising the determined error correction data.
  19. 19.A method as claimed in any preceding claim, wherein the media stream is a Voice over Internet Protocol stream.
  20. 20. A device for transmitting a media stream over a network, the device comprising: a quality estimator configured to maintain a measure of network quality indicative of available bandwidth over the network; a configuration manager configured to: use the measure of network quality to detect a reduction in network quality indicative of a reduced available bandwidth and, responsive to detecting said reduction, estimate a first bitrate corresponding to the reduced available bandwidth; in response to estimating the first bitrate, determine a second bitrate lower than the first bitrate; and a transceiver configured to transmit the media stream at a transmission bitrate substantially equal to the second bitrate for a first period of time, wherein the configuration manager is further configured to cause an increase of the transmission bitrate from the second bitrate to the first bitrate over a second period of time.
  21. 21.A device as claimed in claim 20, wherein the second bitrate is determined in dependence on the measure of the reduced network quality.
  22. 22.A device as claimed in claim 20 or 21, the first and second bitrates being determined from a plurality of predefined transmission configurations, each transmission configuration being associated with a codec for encoding media for the media stream and with a packet size for transmitting packets comprising the media stream, each transmission configuration corresponding to a bitrate that is different to the bitrates corresponding to the other transmission configurations.
  23. 23.A device as claimed in claim 22, wherein the configuration manager is configured to estimate the first bitrate by selecting a first transmission configuration from the plurality of predefined transmission configurations corresponding to the greatest bitrate that is less than the reduced available bandwidth, the first transmission configuration corresponding to the first bitrate.
  24. 24.A device as claimed in claim 22 or 23, wherein the configuration manager is configured to determine the second bit rate by selecting a second transmission configuration from the plurality of predefined transmission configurations corresponding to a bitrate that is less than the first bitrate, the second transmission configuration corresponding to the second bitrate.
  25. 25.A device as claimed in any one of claims 20 to 24, further comprising an encoder configured to: encode media in accordance with a first codec so as to generate encoded data for transmitting the media stream at the second bitrate; and encode media in accordance with a second, different, codec so as to generate encoded data for transmitting the media stream at the first bitrate.
  26. 26.A device as claimed in any one of claims 20 to 25, wherein the transmission bitrate for transmitting the media stream is increased from the second bitrate to the first bitrate at a first rate, the first rate being dependent on a difference in magnitude between the first bitrate and the second bitrate.
  27. 27.A device for controlling a transmission bitrate for a media stream, the device comprising: a quality estimator configured to determine a measure of network quality indicative of available bandwidth over the network; a configuration manager configured to detect an oscillation of the transmission bitrate between a first bitrate below the available bandwidth and a second bitrate above the available bandwidth; and a transceiver configured to, for a first oscillation period, transmit at the first bitrate for a first duration and transmit at the second bitrate for a second duration, the configuration manager being further configured to, for a second oscillation period subsequent to the first oscillation period, cause an increase in the first duration relative to the second duration such that the proportion of time transmitting at the first bitrate is greater for the second oscillation period than for the first oscillation period.
  28. 28.A device as claimed in claim 27, the first and second bitrates being determined from a plurality of predefined transmission configurations, each transmission configuration being associated with a codec for encoding media for the media stream and with a packet size for transmitting packets comprising the media stream, each transmission configuration corresponding to a bitrate that is different to the bitrates corresponding to the other transmission configurations.
  29. 29.A device as claimed in claim 27 or 28, wherein the configuration manager is configured to select a first transmission configuration from the plurality of predefined transmission configurations corresponding to the greatest bitrate that is less than the available bandwidth, the first transmission configuration corresponding to the first bitrate.
  30. 30.A device as claimed in any of claims 27 to 29, wherein the second bitrate corresponds to a second transmission configuration from the plurality of predefined transmission configurations, the second transmission configuration corresponding to the lowest bitrate that is greater than the available bandwidth.
  31. 31.A device as claimed in any of claims 27 to 30, said oscillation period being a time period for the transmission bitrate to change from the first bitrate to the second bitrate and back to the first bitrate.
  32. 32. A device as claimed in any one of claims 20 to 31, said measure of network quality being dependent on measuring a time between expecting to receive a packet of the media stream and receiving said expected packet.
  33. 33.A device as claimed in any one of claims 20 to 32, said measure of network quality being dependent on measuring a network delay time, the delay time comprising a time taken for a first packet to be received, at a first device, from a second device and a time taken for a second packet to be received, at the second device, from the first device.
  34. 34. A device as claimed in claim 33, the second packet comprising an indication of a time when the first packet was generated.
  35. 35. A device as claimed in any one of claims 20 to 34, wherein the quality estimator determines the measure of network quality by determining a measure of packet loss over the network, a measure of network jitter and/or a measure of burst loss.
  36. 36.A device as claimed in any one of claims 20 to 35, wherein the configuration manager is configured to select one or more codecs in dependence on the measure of network quality, and the transceiver is configured to send information identifying said selected one or more codecs to another device so as to cause said another device to transmit, over the network, a media stream encoded in accordance with one of said selected one or more codecs.
  37. 37.A device as claimed in any one of claims 20 to 36, wherein the configuration manager is configured to determine an amount of error correction data in dependence on the measure of network quality, the transmitted media stream comprising the determined error correction data.
  38. 38.A device as claimed in any one of claims 20 to 37, wherein the media stream is a Voice over Internet Protocol stream.
  39. 39. Machine readable code for generating a device according to any of claims 20 to 38.
  40. 40.A machine readable storage medium having encoded thereon non-transitory machine readable code for generating a device according to any of claims 20 to 38.
  41. 41. Machine readable code for implementing a method as claimed in any of claims ito 19.
  42. 42.A machine readable storage medium having encoded thereon non-transitory machine readable code for implementing a method as claimed in any of claims ito 19.
  43. 43. A method or device substantially as described herein with reference to any of figures 1 to 4.Amendment to Claims have been filed as follows Claims 1. A method of transmitting a media stream over a network, the method comprising: maintaining a measure of network quality indicative of available bandwidth over the network; using the measure of network quality to detect a reduction in network quality indicative of a reduced available bandwidth and, responsive to detecting said reduction, estimating a first bitrate corresponding to the reduced available bandwidth; responsive to estimating the first bitrate, determining a second bitrate lower than the first bitrate; transmitting the media stream at a transmission bitrate substantially equal to the second bitrate for a first period of time; and increasing the transmission bitrate from the second bitrate to the first bitrate over a second period of time.o 2. A method as claimed in claim 1, wherein the second bitrate is determined in dependence on the measure of the reduced network quality. r3. A method as claimed in claim 1 or 2, the first and second bitrates being determined from a plurality of predefined transmission configurations, each transmission configuration being associated with a codec for encoding media for the media stream and with a packet size for transmitting packets comprising the media stream, each transmission configuration corresponding to a bitrate that is different to the bitrates corresponding to the other transmission configurations.4. A method as claimed in claim 3, wherein the step of estimating the first bitrate comprises selecting a first transmission configuration from the plurality of predefined transmission configurations corresponding to the greatest bitrate that is less than the reduced available bandwidth, the first transmission configuration corresponding to the first bitrate.5. A method as claimed in claim 3 014, wherein said determining step comprises selecting a second transmission configuration from the plurality of predefined transmission configurations corresponding to a bitrate that is less than the first bitrate, the second transmission configuration corresponding to the second bitrate.6. A method as claimed in any preceding claim, further comprising the steps of: encoding media in accordance with a first codec so as to generate encoded data for transmitting the media stream at the second bitrate; encoding media in accordance with a second, different, codec so as to generate encoded data for transmitting the media stream at the first bitrate.7. A method as claimed in any preceding claim, wherein the transmission bitrate for transmitting the media stream is increased from the second bitrate to the first bitrate at a first rate, the first rate being dependent on a difference in magnitude between the first bitrate and the second bitrate.o 8. A method as claimed in any of the preceding claims, said measure of network quality being dependent on measuring a time between expecting to receive a packet of the media stream and receiving said expected packet.9. A method as claimed in any of the preceding claims, said measure of network quality being dependent on measuring a network delay time, the delay time comprising a time taken for a first packet to be received, at a first device, from a second device and a time taken for a second packet to be received, at the second device, from the first device.1O.A method as claimed in claim 9, the second packet comprising an indication of a time when the first packet was generated.11.A method as claimed in any preceding claim, wherein determining said measure comprises determining a measure of packet loss over the network, a measure of network jitter and/or a measure of burst loss.12.A method as claimed in any preceding claim, further comprising the steps of: selecting one or more codecs in dependence on the measure of network quality; and sending information identifying said selected one or more codecs to another device so as to cause said another device to transmit, over the network, a media stream encoded in accordance with one of said selected one or more codecs.13.A method as claimed in any preceding claim, further comprising the step of determining an amount of error correction data in dependence on the measure of network quality, the transmitted media stream comprising the determined error correction data.14.A method as claimed in any preceding claim, wherein the media stream is a Voice over Internet Protocol stream.11) 15. A device for transmitting a media stream over a network, the device comprising: a quality estimator configured to maintain a measure of network quality indicative of available bandwidth over the network; 0 a configuration manager configured to: (.0 use the measure of network quality to detect a reduction in network quality indicative of a reduced available bandwidth and, responsive to detecting said reduction, estimate a first bitrate corresponding to the reduced available bandwidth; in response to estimating the first bitrate, determine a second bitrate lower than the first bitrate; and a transceiver configured to transmit the media stream at a transmission bitrate substantially equal to the second bitrate for a first period of time, wherein the configuration manager is further configured to cause an increase of the transmission bitrate from the second bitrate to the first bitrate over a second period of time.16.A device as claimed in claim 15, wherein the second bitrate is determined in dependence on the measure of the reduced network quality.17.A device as claimed in claim 15 or 16, the first and second bitrates being determined from a plurality of predefined transmission configurations, each transmission configuration being associated with a codec for encoding media for the media stream and with a packet size for transmitting packets comprising the media stream, each transmission configuration corresponding to a bitrate that is different to the bitrates corresponding to the other transmission configurations.18.A device as claimed in claim 17, wherein the configuration manager is configured to estimate the first bitrate by selecting a first transmission configuration from the plurality of predefined transmission configurations corresponding to the greatest bitrate that is less than the reduced available bandwidth, the first transmission configuration corresponding to the first bitrate.19.A device as claimed in claim 17 or 18, wherein the configuration manager is configured to determine the second bit rate by selecting a second transmission configuration from the plurality of predefined transmission configurations o corresponding to a bitrate that is less than the first bitrate, the second transmission configuration corresponding to the second bitrate. r20.A device as claimed in any one of claims 15 to 19, further comprising an encoder configured to: encode media in accordance with a first codec so as to generate encoded data for transmitting the media stream at the second bitrate; and encode media in accordance with a second, different, codec so as to generate encoded data for transmitting the media stream at the first bitrate.21.A device as claimed in any one of claims 15 to 20, wherein the transmission bitrate for transmitting the media stream is increased from the second bitrate to the first bitrate at a first rate, the first rate being dependent on a difference in magnitude between the first bitrate and the second bitrate.22. A device as claimed in any one of claims 15 to 21, said measure of network quality being dependent on measuring a time between expecting to receive a packet of the media stream and receiving said expected packet.23.A device as claimed in any one of claims 15 to 22, said measure of network quality being dependent on measuring a network delay time, the delay time comprising a time taken for a first packet to be received, at a first device, from a second device and a time taken for a second packet to be received, at the second device, from the first device.24.A device as claimed in claim 23, the second packet comprising an indication of a time when the first packet was generated.25. A device as claimed in any one of claims 15 to 24, wherein the quality estimator determines the measure of network quality by determining a measure of packet loss over the network a measure of network jitter and/or a measure of burst loss.26.A device as claimed in any one of claims 15 to 25, wherein the configuration manager is configured to select one or more codecs in dependence on the r measure of network quality, and the transceiver is configured to send information identifying said selected one or more codecs to another device so as to cause said another device to transmit, over the network, a media stream encoded in accordance with one of said selected one or more codecs.27.A device as claimed in any one of claims 15 to 26, wherein the configuration manager is configured to determine an amount of error correction data in dependence on the measure of network quality, the transmitted media stream comprising the determined error correction data.28.A device as claimed in any one of claims 15 to 27, wherein the media stream is a Voice over Internet Protocol stream.29. Machine readable code for generating a device according to any of claims 15 to 28.30. Machine readable code for implementing a method as claimed in any of claims ito 14.31. A method or device substantially as described herein with reference to any of figures 1 to 4. IC)CO (0 r
GB1405948.9A 2014-04-02 2014-04-02 Enhanced media quality management Active GB2519391B (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
GB1405948.9A GB2519391B (en) 2014-04-02 2014-04-02 Enhanced media quality management
GB1504372.2A GB2526405B (en) 2014-04-02 2015-03-16 Enhanced media quality management
US14/677,791 US9736077B2 (en) 2014-04-02 2015-04-02 Enhanced media quality management
CN201910312002.7A CN109981687B (en) 2014-04-02 2015-04-02 Apparatus and method for controlling transmission bit rate of media stream, storage medium
CN201510154720.8A CN104980818A (en) 2014-04-02 2015-04-02 Enhanced media quality management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1405948.9A GB2519391B (en) 2014-04-02 2014-04-02 Enhanced media quality management

Publications (3)

Publication Number Publication Date
GB201405948D0 GB201405948D0 (en) 2014-05-14
GB2519391A true GB2519391A (en) 2015-04-22
GB2519391B GB2519391B (en) 2015-10-21

Family

ID=50737893

Family Applications (2)

Application Number Title Priority Date Filing Date
GB1405948.9A Active GB2519391B (en) 2014-04-02 2014-04-02 Enhanced media quality management
GB1504372.2A Active GB2526405B (en) 2014-04-02 2015-03-16 Enhanced media quality management

Family Applications After (1)

Application Number Title Priority Date Filing Date
GB1504372.2A Active GB2526405B (en) 2014-04-02 2015-03-16 Enhanced media quality management

Country Status (3)

Country Link
US (1) US9736077B2 (en)
CN (2) CN104980818A (en)
GB (2) GB2519391B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3648105A4 (en) * 2017-06-30 2021-03-31 Shenzhen TCL New Technology Co., LTD Method and system for adjusting sound quality, and host side and storage medium

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2519391B (en) * 2014-04-02 2015-10-21 Imagination Tech Ltd Enhanced media quality management
CN106488265A (en) * 2016-10-12 2017-03-08 广州酷狗计算机科技有限公司 A kind of method and apparatus sending Media Stream
CN110166804B (en) * 2018-02-11 2021-12-03 华为技术有限公司 Method, device, communication system and computer readable storage medium for implementing video service
CN110875795B (en) * 2018-08-29 2022-05-24 阿里巴巴集团控股有限公司 Data transmission method, device, equipment and storage medium
US11233669B2 (en) * 2019-12-17 2022-01-25 Google Llc Context-dependent in-call video codec switching

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153951A1 (en) * 2000-11-29 2004-08-05 Walker Matthew D Transmitting and receiving real-time data
US20050201414A1 (en) * 2004-03-11 2005-09-15 Ali Awais Dynamically adapting the transmission rate of packets in real-time VoIP communications to the available bandwidth
US20080133744A1 (en) * 2006-12-01 2008-06-05 Ahn Shin Young Multimedia data streaming server and method for dynamically changing amount of transmitting data in response to network bandwidth

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366614B1 (en) * 1996-10-11 2002-04-02 Qualcomm Inc. Adaptive rate control for digital video compression
WO1999020016A1 (en) * 1997-10-14 1999-04-22 Winnet Mcs, Inc. Method and apparatus for maintaining a predefined transmission quality in a wireless man network
US6785323B1 (en) * 1999-11-22 2004-08-31 Ipr Licensing, Inc. Variable rate coding for forward link
US7017102B1 (en) 2001-12-27 2006-03-21 Network Equipment Technologies, Inc. Forward Error Correction (FEC) for packetized data networks
GB2392582A (en) * 2002-08-30 2004-03-03 Hutchison Whampoa Three G Ip Implementation of streaming in a umts network which enables utran to enhance the experience of users and save resources
US7581155B2 (en) 2003-12-18 2009-08-25 Electronics And Telecommunications Research Institute Apparatus for FEC supporting transmission of variable-length frames in TDMA system and method of using the same
US7543073B2 (en) * 2004-12-10 2009-06-02 Microsoft Corporation System and process for performing an exponentially weighted moving average on streaming data to establish a moving average bit rate
US8098603B2 (en) * 2005-09-30 2012-01-17 Intel Corporation Bandwidth adaptation in a wireless network
GB0706424D0 (en) * 2007-04-02 2007-05-09 British Telecomm Video streaming
CN101815995B (en) * 2007-11-15 2012-08-22 Sk普兰尼特有限公司 System and method for producing importance rate-based rich media, and server applied to the same
US8537699B2 (en) * 2009-06-16 2013-09-17 Qualcomm Incorporated Managing video adaptation algorithms
CN101631030B (en) * 2009-08-05 2011-12-07 华南理工大学 Prediction method of self-adapting digital home network flow media transmission band width
FR2975555A1 (en) * 2011-05-18 2012-11-23 Thomson Licensing METHOD OF DYNAMIC ADAPTATION OF RECEPTION RATE AND RECEPTOR
US9306994B2 (en) * 2012-06-06 2016-04-05 Cisco Technology, Inc. Stabilization of adaptive streaming video clients through rate limiting
US20130332249A1 (en) * 2012-06-11 2013-12-12 International Business Machines Corporation Optimal supplementary award allocation
WO2014011720A1 (en) * 2012-07-10 2014-01-16 Vid Scale, Inc. Quality-driven streaming
US20140056314A1 (en) * 2012-08-22 2014-02-27 Baruch Sterman Systems and methods for prioritizing data packet delivery
CN102802089B (en) * 2012-09-13 2014-12-31 浙江大学 Shifting video code rate regulation method based on experience qualitative forecast
US9264475B2 (en) * 2012-12-31 2016-02-16 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
CN103475951A (en) * 2013-08-20 2013-12-25 南京邮电大学 User-experience-based real-time video transmission rate self-adaption method
US20150095450A1 (en) * 2013-09-30 2015-04-02 Qualcomm Incorporated Utilizing multiple switchable adaptation sets for streaming media data
CN103560862B (en) * 2013-10-18 2017-01-25 华为终端有限公司 Mobile terminal and coding-rate control method thereof
GB2519391B (en) * 2014-04-02 2015-10-21 Imagination Tech Ltd Enhanced media quality management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153951A1 (en) * 2000-11-29 2004-08-05 Walker Matthew D Transmitting and receiving real-time data
US20050201414A1 (en) * 2004-03-11 2005-09-15 Ali Awais Dynamically adapting the transmission rate of packets in real-time VoIP communications to the available bandwidth
US20080133744A1 (en) * 2006-12-01 2008-06-05 Ahn Shin Young Multimedia data streaming server and method for dynamically changing amount of transmitting data in response to network bandwidth

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3648105A4 (en) * 2017-06-30 2021-03-31 Shenzhen TCL New Technology Co., LTD Method and system for adjusting sound quality, and host side and storage medium
US11202300B2 (en) 2017-06-30 2021-12-14 Shenzhen Tcl New Technology Co., Ltd. Method and system for adjusting sound quality, and host terminal

Also Published As

Publication number Publication date
GB201405948D0 (en) 2014-05-14
CN109981687A (en) 2019-07-05
CN104980818A (en) 2015-10-14
CN109981687B (en) 2021-08-10
US9736077B2 (en) 2017-08-15
GB2526405B (en) 2016-04-20
GB2519391B (en) 2015-10-21
GB201504372D0 (en) 2015-04-29
GB2526405A (en) 2015-11-25
US20150288607A1 (en) 2015-10-08

Similar Documents

Publication Publication Date Title
US9736077B2 (en) Enhanced media quality management
US11489781B2 (en) Bandwidth management
CN104125429B (en) The adjusting method and device of video data transmission
JP5701400B2 (en) How to provide an adaptive streaming service
AU2014252266B2 (en) Voip bandwidth management
KR102048898B1 (en) System and method for adaptive streaming in a multipath environment
US9894397B2 (en) Controlling bit-rates for media streaming sessions
EP2383999A1 (en) Controlling an adaptive streaming of digital content
GB2525948A (en) Packet loss and bandwidth coordination
US8358659B2 (en) Visual metering and response to maintain voice quality in a voice over internet protocol call
JP6436772B2 (en) Method for dynamically adapting received bit rate and associated receiver
US11916798B2 (en) Estimating network bandwidth using probe packets
FR2935862A1 (en) METHOD FOR PREDICTING THE TRANSMISSION ERROR RATE IN A COMMUNICATION NETWORK AND SERVER IMPLEMENTING SAID METHOD
GB2532072A (en) Feedback management in a multipath communication network
Laine et al. Network Capacity Estimators Predicting QoE in HTTP Adaptive Streaming
JP6724517B2 (en) Bit rate instruction device, bit rate instruction method, and bit rate instruction program
Mushtaq et al. HTTP rate adaptive algorithm with high bandwidth utilization
KR102088294B1 (en) Method for delivering adaptive media based on received status information from media client and apparatus using thereof