GB2533942A - Adaptive buffering of a content player for a mobile device in a telecommunication network - Google Patents

Adaptive buffering of a content player for a mobile device in a telecommunication network Download PDF

Info

Publication number
GB2533942A
GB2533942A GB1500196.9A GB201500196A GB2533942A GB 2533942 A GB2533942 A GB 2533942A GB 201500196 A GB201500196 A GB 201500196A GB 2533942 A GB2533942 A GB 2533942A
Authority
GB
United Kingdom
Prior art keywords
mobile device
communication
communication conditions
buffer
conditions
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.)
Withdrawn
Application number
GB1500196.9A
Inventor
Cornall Mark
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.)
Vodafone IP Licensing Ltd
Original Assignee
Vodafone IP Licensing 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 Vodafone IP Licensing Ltd filed Critical Vodafone IP Licensing Ltd
Priority to GB1500196.9A priority Critical patent/GB2533942A/en
Publication of GB2533942A publication Critical patent/GB2533942A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4126The peripheral being portable, e.g. PDAs or mobile phones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Methods and apparatus are described for determining and anticipating communication conditions to be experienced by a mobile device and to adapt or flex a buffer for a content player on the mobile device to mitigate interruptions or minimise network resource consumption. The buffer size may be increased for an anticipated negative change in communication conditions, e.g. deteriorating communication conditions. This allows the buffer to retrieve additional content for "riding out" the anticipated interruption. The buffer size may be decreased for anticipated positive change in communication conditions e.g. improving communication conditions. This allows the buffer to retrieve the minimum amount of content to minimise network resources during playback of the content. Changes in communication conditions may be anticipated from measurements of communication conditions; on the basis of the movement of the mobile device such as location, velocity or acceleration; alternatively handover information may be used.

Description

ADAPTIVE BUFFERING OF A CONTENT PLAYER FOR A MOBILE DEVICE IN A TELECOMMUNICATION NETWORK
Field of the Invention
[0001] This invention relates to methods and apparatus for enabling adaptive buffering of a content item for playback by a content player on a mobile device in a communication network.
The invention is particularly suited for providing an increase in the buffer size for a content item during playback in response to determining the communication conditions experienced by the mobile device may be about to deteriorate, and a decrease in the buffer size in response to determining the communication conditions may be about to improve.
Background
[0002] There has been an explosion in the number of content items being streamed to mobile devices and viewed by users while on the go. Streaming is known as communicating a content item to a mobile device for playback while the content item is being received by the mobile device. During streaming the content item is being constantly received by the mobile device and may be presented by the content player to a user of the mobile device while being delivered by a content provider or source.
[0003] A content item may comprise or represent any data representative of digital content for playback on a content player to a user. Examples of content items that may be used in certain embodiments of the described apparatus, methods and system may be any data representative of clips, videos, audio and/or other digital content or multimedia content that may be accessed from a plurality of content sources, providers or content delivery networks (CDNs) or systems (e.g. web servers such as YouTube (RTM), Netffix (RTM), LoveFilm (RTM), IMDB (RTM), Vimeo (RTM), Daily Motion (RTM), Spotify (RTM), and other streaming content servers or systems, Peer-to-Peer content delivery systems, mobile devices, or sites etc.).
[0004] A mobile device may comprise or represent any portable computing device. Examples of mobile devices that may be used in certain embodiments of the described apparatus, methods and systems may be wireless devices such as mobile phones, terminals, smart phones, portable computing devices such as laptops, handheld devices, tablets, tablet computers, netbooks, phablets, personal digital assistants, music players, and other computing devices capable of wireless communications.
[0005] The data of the content item may be delivered as a bit stream from the content source or provider (e.g. a streaming server) to the mobile device (e.g. a streaming client) using a transport layer protocol. The transport layer protocol may comprise or represent any transport protocol that is responsible for delivering data (e.g. data representative of a content item) to the appropriate application process on the mobile device.
[0006] Examples of transport protocols that may be used in certain embodiments of the invention may include, but are not limited to, datagram protocols (e.g. User Datagram Protocol (UDP)), Transmission Control Protocol (TCP), Real-time Streaming Protocol (RTSP), Real-time Transport Protocol (RTP), Real-time Transport Control Protocol (RTCP), Hypertext Transfer Protocol (HTTP), HTTP Secure, Quick UDP Internet Connections (QUIC), SPeeDY (SPDY), HTTP Live Streaming (HLS), HTTP Dynamic Streaming (HDS), MPEG-Dynamic Adaptive Streaming over HTTP (DASH) and other adaptive bitrate streaming protocols over HTTP, peer-to-peer protocols and any other suitable protocol(s) for controlling delivery of a content item between a content source/or other mobile device over a communication network and the mobile device.
[0007] The quality of the playback of a content item being streamed to the mobile device as perceived by the user will be affected by the communication connection (e.g. the quality of the wireless communication connection experienced by the mobile device, the transport layer protocol, the mobility of the mobile device) between the mobile device and the content source delivering the content item. This may be mitigated by using a data buffer or buffer for buffering the content item during playback when streaming.
[0008] A buffer is a region of memory storage used to temporarily store data as it is being moved from one location to another. It may be used to mitigate temporary outages or interruptions in the flow of data packets from the content source to the mobile device. For example, during video streaming, the buffer may have a buffer size of several seconds of video data and thus stores several seconds of video data before it is sent to the video player for playback. Should the mobile device experience a poor connection lasting up to the buffer size (several second) the user should not notice the poor connection because there is already several seconds of video data stored in the buffer on the mobile device. However, longer outages will slow down or stop the playback of the video data because there is no data to play back to the user until the buffer refills with video data. This is termed a stall.
[0009] However, the perceived quality of playback is heavily affected by both buffering during start-up of the content player and more so by buffering during playback of the content item on the content player. This may be mitigated by a playout buffer that retains a few seconds of the content item in memory to cope with varying communication conditions (e.g. varying bandwidth) experienced by the mobile device due to the wireless connection to the communication network as well as capacity or load of the communication network. If the buffer size on initial start-up is too large, the user of the mobile device will need to wait a long time as the buffer for the content player waits to fill. On the other hand, if the buffer size is too small the content item during download and playback video is likely to experience stalling and the user will have a poor experience when viewing the content item.
[0010] US2013/0124747 Al describes a method of pre-filling a buffer within a device when sufficient surplus communication network capacity is available. When there is an insufficient surplus, an alerting mechanism is utilised to let the user know that a background delivery of content will occur, i.e. user can watch a video later, and the user will still experience stalling. Other solutions may include a content player on the mobile device learning that if it suffers a stall, then it could increase its buffer size. However, this is dependent on the user experiencing a stall in the first place, which does not improve the perceived quality of playback or user experience.
[0011] These problems are exacerbated in all communication networks where throughput can vary due to mobility of the mobile device, changing radio communication conditions and communication conditions within the communication network (e.g. network load and capacity).
It is accordingly an object of the invention to provide an improved technique for buffering content items for playback on a content player of a mobile device communicating over a communications network.
Summary
[0012] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
[0013] Methods and apparatus are described for determining and anticipating communication conditions to be experienced by a mobile device and to adapt or flex a buffer for a content player on the mobile device to mitigate interruptions or minimise network resource consumption. The buffer size may be increased for an anticipated negative change in communication conditions, e.g. deteriorating communication conditions. This allows the buffer to retrieve additional content for "riding out" the anticipated interruption. The buffer size may be decreased for anticipated positive change in communication conditions e.g. improving communication conditions. This allows the buffer to retrieve the minimum amount of content to minimise network resources during playback of the content.
[0014] According to a first aspect of the invention, there is provided a method of adapting a buffer for a content player on a mobile device in a communication network, the buffer for receiving data representative of a content item for playback on the content player. The method includes anticipating a negative or positive change in communication condition(s) to be experienced by the mobile device in the communication network, increasing the buffer size based on the anticipated negative change in communication conditions, and decreasing the buffer size based on the anticipated positive change in communication conditions.
[0016] In an example, the communication conditions include at least one of radio communication conditions experienced by the mobile device and mobility conditions of the mobile device.
[0016] In an example, the anticipated negative change in communication conditions includes a change in communication conditions indicating deteriorating communication conditions to be experienced by the mobile device, and the anticipated positive change in communication conditions includes a change in communication conditions indicating improving communication conditions to be experienced by the mobile device.
[0017] In an example, in response to the anticipated negative change in communication conditions, providing an indication to increase the buffer size, and in response to the anticipated positive change in communication conditions, providing an indication to decrease the buffer size.
[0018] In an example, the indication may include a flag representing a positive change in communication conditions or a negative change in communication conditions.
[0019] In an example, the indication includes an estimate of the increase in buffer size based on the anticipated negative change in communication conditions or the indication includes an estimate of the decrease in buffer size based on the anticipated positive change in communication conditions.
[0020] In an example, the method includes measuring the communication conditions by one or more components of the mobile device for anticipating the negative or positive change in communication conditions to be experienced by the mobile device.
[0021] In an example, the communication conditions include a set of communication conditions measurable by one or more components of the mobile device. The step of anticipating a negative or positive change in communication conditions further includes: polling the corresponding components of the mobile device for a set of communication condition measurements, applying the set of communication condition measurements to a corresponding set of reference communication condition thresholds for determining whether to anticipate a negative or positive change in communication conditions.
[0022] In an example, the step of applying the set of communication condition measurements further includes comparing the measurements in the set of communication condition measurements with a corresponding reference communication condition threshold of the set of reference communication condition thresholds, and determining, based on the comparison, whether one or more of the comparisons indicates a negative change in communication conditions or a positive change in communication conditions.
[0023] In an example, the communication condition measurements include radio communication condition measurements including data representative of at least one from the group of: base station signal strength received by the mobile device; transmission signal strength of the mobile device; radio interference received and/or experienced by the mobile device, or any other type of interference received and/or experienced by the mobile device; and handover information associated with the mobile device.
[0024] In an example, the communication condition measurements further include mobility condition measurements including data representative of at least one from the group of: location data associated with the mobile device; speed data associated with the mobile device; and accelerometer data of the mobile device.
[0025] In an example, the method further includes determining the increase or decrease in buffer size based on a look-up table of buffer step sizes associated with the anticipated negative or anticipated positive change in communication conditions.
[0026] In an example, the method further includes determining the increase or decrease in buffer size as a function of the anticipated negative change in communication conditions or the anticipated positive change in communication conditions.
[0027] In an example, the buffer size is increased or decreased by a buffer size increment based on the anticipated negative or anticipated positive change in communication conditions.
[0028] According to a second aspect of the invention, there is provided a controller for adapting a buffer for a content player on a mobile device in a communication network. The buffer is configured for receiving data representative of a content item for playback on the content player. The controller adapted to: anticipate a negative or positive change in communication conditions to be experienced by the mobile device in the communication network; send a first indication to the buffer to increase the buffer size based on an anticipated negative change in communication conditions; and send a second indication to decrease the buffer size based on an anticipated positive change in communication conditions.
[0029] According to a third aspect of the invention, there is provided a mobile device including a processing unit, a receiver, a transmitter, and storage unit, the processing unit coupled to the receiver, the transmitter and the storage unit. The receiver is configured to receive data representative of a content item from a content source over a communication network. The processing and storage units are configured to perform one or more of the method steps as described herein for adapting a buffer for a content player on the mobile device.
[0030] The methods described herein may be performed by software in machine readable form on a tangible storage medium e.g. in the form of a computer program comprising computer program code means adapted to perform all the steps of any of the methods described herein when the program is run on a processor and where the computer program may be embodied on a computer readable medium. Examples of tangible (or non-transitory) storage media include disks, thumb drives, memory cards etc. and do not include propagated signals. The software can be suitable for execution on a parallel processor or a serial processor such that the method steps may be carried out in any suitable order, or simultaneously.
[0031] This acknowledges that firmware and software can be valuable, separately tradable commodities. It is intended to encompass software, which runs on or controls "dumb" or standard hardware, to carry out the desired functions. It is also intended to encompass software which "describes" or defines the configuration of hardware, such as HDL (hardware description language) software, as is used for designing silicon chips, or for configuring universal programmable chips, to carry out desired functions.
[0032] According to further aspects of the invention, there is provided a computer readable medium including computer readable code stored thereon, which when executed on a processor, causes the processor to perform one or more of the method steps as described herein.
[0033] The preferred features may be combined as appropriate, as would be apparent to a skilled person, and may be combined with any of the aspects of the invention.
Brief Description of the Drawings
[0034] Embodiments of the invention will be described, by way of example, with reference to the following drawings, in which: L0035] Figure la is a schematic diagram illustrating an example communication system including a communication network comprising a mobile devices and content sources according to embodiments of the invention; [0036] Figure lb is a schematic diagram illustrating a mobile device with a content player, control logic and an adaptable buffer according to embodiments of the invention; [0037] Figure lc is a schematic diagram illustrating a content player with an adaptable buffer and control logic according to embodiments of the invention; [0038] Figure ld is a schematic diagram illustrating another example of a content player with an adaptable buffer for use with control logic according to embodiments of the invention; [0039] Figure le is a schematic diagram illustrating an arrangement of a control player, an adaptable buffer and control logic coupled together according to embodiments of the invention; [0040] Figure 2 is a flowchart illustrating a method of adapting a buffer for playback of content items according to embodiments of the invention; and [0041] Figure 3 is a flowchart illustrating another method of adapting a buffer for playback of content items according to embodiments of the invention.
[0042] Common reference numerals are used throughout the figures to indicate similar features.
[0043] It will also be appreciated that although features from each of the embodiments may be identified by different reference numerals in the figures and throughout the description, similar features including the properties and functionality attributed thereto, from one embodiment may be interchangeable with those of another embodiment.
Detailed Description
[0044] Embodiments of the present invention are described below by way of example only.
These examples represent the best ways of putting the invention into practice that are currently known to the Applicant although they are not the only ways in which this could be achieved. The description sets forth the functions of the example and the sequence of steps for constructing and operating the example. However, the same or equivalent functions and sequences may be accomplished by different examples.
[0045] As discussed above, present approaches for buffering content items typically use learning algorithms that learn when buffers should be increased, however, the issue with learned buffers is that the mobile device or content player must first experience a stall event before any action is taken to mitigate changing communication conditions (e.g. learn when the buffer size should be increased). This is too late though, the user has already been impacted by the stall, further stalls are also inevitable as the learning algorithm attempts to identify when the buffer should be adjusted.
[0046] The idea proposed herein is to predict or anticipate that an interruption will occur before it happens and to take mitigating action by building an increased buffer of data associated with a content item (e.g. video and/or audio data, etc.) to enable the content player or mobile device to "ride out" the interruption during playback of the content item. Thus, there is a reduced chance that the user will perceive an impact in quality of playback of the content item.
[0047] In order to at least partially overcome the problems described above, it is proposed herein to improve the performance of a communications network and playback of content items on a content player of a mobile device by providing a mechanism for a mobile device or content player to flex the size of the buffer for buffering playback of a content item (e.g. a playout buffer) based on the communication conditions (e.g. received signal quality, hand-over, etc.) to be experienced by the mobile device and/or measured mobility (e.g. movement information such as speed, route, location) of the mobile device. For example, the use of signal quality and mobility in terms of speed may be used as factors for determining the size of the buffer and/or demand by the mobile device for further data packets related to delivery of the content item.
[0048] For example, the mechanism may include providing an indication of future communication conditions and/or mobility to be experienced by the mobile device and adapt or flex the buffer for buffering content items during playback by increasing the buffer size for deteriorating communication conditions and/or mobility or decreasing the buffer size for improving communication conditions and/or mobility. In this way, by anticipating the communication conditions and/or mobility, the mobile device or content player can mitigate worsening conditions by downloading more of the content item such that playback of the content item continues, and the mobile device or content player can anticipate improving conditions by downloading only what is necessary for continuous playback of the content item.
[0049] For example, the present invention provides a dynamically modifiable or adaptable buffer for use with a content item player that is modified based upon a determination of signal strength and/or mobile device location or movement information. If signal strength is poor/location determined to be detrimental to service quality, the buffer size is increased.
Additionally, to pre-empt the aforementioned problems, a prediction as to future expected signal quality/future location is made such that the buffer can be increased in advance of entering an area detrimental to service quality. Similarly, if the signal strength is good/location determined to improve service quality, the buffer size is decreased.
Additionally, this pre-empts capacity or load constraints of the communication network improving efficiency of the communication network as the buffer size can be decreased in advance of entering an area of improved service quality.
[0050] The invention provides various advantages some of which include reducing the probability of stalls during playback of the content item during poor communication conditions and mobility of the mobile device such that the mobile device instead "rides out" the poor communication conditions due to the increased buffer size. A further advantage is a decrease in bandwidth or load in the communication network when the mobile device anticipates improving conditions due to decreasing the buffer size for when communications conditions improve. Decreasing the buffer size may also be used to signal a decrease in the flow of data packets (or the bit stream) associated with the content item from the content source to the minimum necessary number of data packets that ensure continuous playback. Decreasing the buffer size and/or decreasing the bit stream flow can ensure only the minimum necessary amount of data of the content item is received by the mobile device for continuous playback of the content item. This further minimises the impact of streaming the content item on the load and/or capacity constraints of the communication network.
[0051] As discussed above, a buffer may comprise or represent a region of memory storage that is used to temporarily store data before moving it to another location. The buffer size of a buffer may be the maximum size of the region of memory used to store the data. The buffer size may be provided in terms of the size of the data (e.g. in bits, bytes, Megabytes etc.) or, for video or audio applications it may be provided in units of time (e.g. seconds, minutes etc.).
If provided in units of time, the actual region of memory storage may relate to the size of the data stored per unit time. For example, if a video data file has an average playout rate of 1Mbyte per second, then a buffer size of 10 seconds may require a region of memory storage of approximately 10Mbytes of video data. Due to the nature of audio and/or video data and most other multimedia data, the buffer size herein will be referred to in units of time (e.g. seconds, minutes etc.). Although the units of time may be used to refer to the buffer size, it is to be appreciated by the skilled person that the present invention is applicable buffer sizes given in any suitable units or arbitrary values (e.g. bytes, Mbytes, GB, etc.) as long as there is a mapping to translate the buffer size to an appropriate amount of memory storage for constituting the buffer. Although the term buffer size is used herein to describe the size of a buffer, it is to be appreciated by the skilled person that this term is used herein by way of example only and that other terms may be used for describing or used in place of the term buffer size such as, by way of example only but not limited to, buffer length, buffer volume, buffer dimensions, buffer data length, packet length, buffer width, etc., or any other term that relates to the size or dimensions of a buffer.
[0052] Figure 1a illustrates a schematic diagram of an example communication system 100 with a communication network 102 including a mobile device 104a in communication with at least one or more other mobile devices 104b-104n and/or at least one or more content sources 106a-106m. In this example and for simplicity, it is assumed that the mobile device 104a is configured to stream a content item from content source 106a. However, it is to be appreciated by the person skilled in the art that the mobile device 104a may be configured to stream one or more content items from the one or more other mobile devices 104b-104n or at least one or more of the content sources 106b-105m.
[0053] Communication network 102 may comprise or represent any one or more network(s) used for communications between mobile device 104a, one or more content sources 106a-105m and/or one or more other mobile devices 104b-104n connected to the communications network. The communication network 102 may include any suitable combination of network nodes or entities, base stations, access points, etc. that enable communications between the mobile devices 104a-104n and/or content sources 106a-106n.
[0054] Examples of communication network 102 that may be used in certain embodiments of the described apparatus, methods and systems may be at least one communication network or combination thereof including, but not limited to, one or more wireless telecommunication network(s), one or more computer networks, one or more data communication network(s), the Internet, the telephone network, wireless network(s) such as the Worldwide Interoperability for Microwave Access (WiMAX), wireless local area networks (WLAN) based on the Institute of Electrical and Electronics Engineers' (IEEE) 802.11 standards e.g. Wi-Fi networks, or Internet Protocol (IF) networks, packet-switched networks or enhanced packet switched networks, IF Multimedia Subsystem (IMS) networks, or communications networks based on wireless, cellular or satellite technologies such as mobile networks, Global System for Mobile Communications (GSM), GPRS networks, Wideband Code Division Multiple Access (VVCDMA), CDMA2000 or Long Term Evolution (LTE)/LTE Advanced networks or any 2nd, 3rd or 4th Generation and beyond type communication networks.
[0055] Figure lb is a schematic diagram illustrating an example mobile device 104a including an example content player 122a and adaptive buffer 122b. The mobile device 104a includes a processing unit 112, a storage unit 114, an input/output unit 116, a receiver 118 and a transmitter 120, in which the processing unit 112 is coupled to the storage unit 114, the I/O unit 116, the receiver 118 and transmitter 120. Although the receiver 118 and transmitter are illustrated separately, it is to be appreciated by the skilled person that the receiver 118 and transmitter 120 may form a transceiver unit. The input/output unit 116 may comprise one or more input and/or output units including, but not limited to, a keypad or keypad, mouse, track pad, display screen, touchscreen display screen, or any other form of input and/or output that allows a user to use the mobile device 104a.
[0056] The storage unit 114 may comprise one or more computer readable medium(s) (e.g. solid-state or flash memory, random access memory, read only memory, hard-disk drive, optical disc) for use in storing program instructions associated with a plurality of applications 122 (e.g. applications 122a-122n that may include games, multimedia applications, social networking applications, spreadsheets, utility applications, word processing, email, web browsers, calendars, address books, and any other user application program configured for execution on processing unit 112, etc.). In this example, the storage unit 114 may include program instructions associated with a content player 122a, an adaptive buffer 122b and communication/mobility control logic 122c, which when executed by the processing unit 112, configures the mobile device 104a to perform the functions associated with the content player 122a, adaptive buffer 122b, and/or communication/mobility control logic 122c according to the invention.
[0057] Although the content player 122a, adaptive buffer 122b, and communication/mobility control logic 122c are illustrated as separate applications or entities, this is for simplicity and by way of example only, the person skilled in the art would appreciate that one or more of these components may be combined accordingly depending on application. For simplicity, the content player 122a, adaptive buffer 122b, and/or communication/mobility logic 122c will be referred to separately. For example, it will be appreciated by the skilled person that the content player 122a, adaptive buffer 122b, and/or communication/mobility logic 122c may be integrated together to form, but are not limited to, a content player 122c comprising the functionality of content player 122a and adaptive buffer 122b, and/or a content player 122d comprising the functionality of content player 122a, adaptive buffer 122b and communication/mobility control logic 122c, and/or any other arrangements comprising any combination thereof that implement the invention.
[0058] Referring to figures la and lb, initially a standard buffer size (e.g. a first buffer size) for the adaptive buffer 122b may be set as defined by the settings of the content player 122a and/or mobile device 104a. As the content item is streamed from content source 106a to mobile device 104a, data packets representative of the content item are received by the receiver 118 of the mobile device 104a using a transport layer protocol. The adaptive buffer 122b receives and buffers the data packet(s) as they are received prior to playback of the content item by the content player 122a to the user. Once fully buffered, i.e. the buffer has stored data packets up to the first buffer size, the data packets are provided to the content player 122a and the beginning of the content item is played back to the user while the adaptive buffer 122b receives further packets replacing data packets that have been provided to the content player 122a and played back to the user.
[0059] During streaming of the content item, the communication/mobility control logic 122c may be configured to receive or query the mobile device 104a to establish the communication conditions (e.g. the bearer and received signal strength) and/or mobility conditions experienced by the mobile device 104a when communicating over communication network 102 with content source 106a and thus anticipate future interruptions. For example, the communication/mobility control logic 122c may be configured to determine whether the signal strength as poor (e.g. -100dbm) or below a reference signal strength threshold such that it can be anticipated whether an interruption such as a handover is likely to occur or is imminent. In such a case the content player 122a can anticipate lost data packets associated with the content item and have this possible loss mitigated by judicious control of the adaptable buffer 122b.
[0060] For example, to anticipate and prevent lost data packets, the adaptable buffer 122b may be controlled and/or configured by the content player 122a or the communication/mobility control logic 122c to increase the buffer size of the adaptive buffer 122b from the first buffer size to a second buffer size depending on the severity of the anticipated communication conditions. As an example, the buffer size of the adaptive buffer 122b may be increased from a first buffer size to a second buffer size by addition of one or more predefined buffer step size(s) based on a look-up table and the severity of the communication condition(s) (e.g. wireless radio communication conditions and/or mobility conditions associated with the mobile device 104a). Thus, the adaptive buffer 122b is configured to store additional data packets associated with the content item during streaming. By increasing the number of further data or data packets stored in the adaptable buffer 122b in advance of a possible interruption or worsening of the communication conditions, stalling of the content player 122a due to the interruption (e.g. low signal strength) is mitigated. The communication/mobility control logic 122c may monitor the communication and mobility conditions of the mobile device 104a to determine whether further increases in buffer size of the adaptable buffer 122b may be required. For example, the length of the interruption may be estimated and the adaptable buffer 122b adjusted to store an appropriate amount of data associated with the content item prior to the interruption, which will allow the adaptable buffer 122b to provide the content player 122a with data during the interruption and mitigate stalling of the content player 122a.
[0061] Alternatively or additionally, the communication/mobility control logic 122c may determine the mobility condition(s) of the mobile device 104a by receiving measurements or querying components of the mobile device 104a for measurements associated with GPS location, speed, velocity, motion detection or changes in received signal to establish that the mobile device 104a is in motion. If the communication/mobility control logic 122c determines the mobile device 104a is in motion, the communication/mobility control logic 122c may compare the mobility measurement(s) with a set of reference mobility measurements to determine whether the mobile device 104a is expected to suffer more frequent interruptions in data flow or loss of data packets associated with the content item. If this is so, then the content player 122a or communication/mobility control logic 122c may be configured to also increase the buffer size of the adaptable buffer 122b to anticipate any further interruption.
[0062] If possible, the increase in buffer size due to a deterioration of the communication and/or mobility conditions may also prompt the mobile device 104a or the content player 122a to signal the content source 106a to increase the flow of data packets associated with the content item. This can then ensure the adaptive buffer 122b can accumulate the necessary additional data packets before the anticipated interruption occurs and thus mitigate any stalling of the content player 122a.
[0063] Judicious control of the adaptive buffer 122b for the content player 122a solves the issues of stalling during poor communication conditions by anticipating the need for a larger buffer size for anticipated interruptions and thus providing the capability of buffering a larger amount of data associated with the streamed content item. This protects the content player 122a against mid-stream interruptions due to poor communication conditions and/or mobility conditions when extra data packets are required for continued playback of the content item and to allow the content player 122a to "ride out" the interruption.
[0064] Further judicious control of the adaptive buffer 122b may be used to improve the capacity or load of the communication network when communication conditions and/or mobility conditions are considered to be good or anticipated to improve from the previous communication conditions experienced by the mobile device 104a. This may be achieved by having the content source 106a only transmit or the mobile device 104a/content player 122a only receive the minimum necessary number of data packets required for continued playback of the content item.
[0065] For example, the communication/mobility control logic 122c may compare the measured communication conditions and/or mobility measurements against the reference thresholds to determine whether the mobile device 104a will experience improved communication/mobility conditions. If this is the case, then the content player 122a or the communication/mobility control logic 122c may be configured to decrease the buffer size of the adaptable buffer 122b from a first buffer size to a third buffer size depending on the possible improvement to be gained.
[0066] As an example, the buffer size of the adaptive buffer 122b may be decreased from a first buffer size to a third buffer size by subtracting one or more predefined buffer step size(s) based on a look-up table and the improvement of the determined communication condition(s) compared with current or previous determined communication condition(s) (e.g. wireless radio communication conditions and/or mobility conditions associated with the mobile device 104a).
[0067] The communication/mobility control logic 122c may monitor the communication and mobility conditions of the mobile device 104a to determine whether further decreases in buffer size of the adaptable buffer 122b may be required. The buffer size of the adaptable buffer 122b may be reduced to a minimum threshold buffer size. For example, a minimum threshold buffer size may be determined to be a buffer size that is suitable for providing continued playback of the content item to the user. Additionally or alternatively, the minimum threshold buffer size may be the minimum necessary buffer size that enables a quick playout start and continued playback of the streamed content item during good communication conditions.
[0068] The decrease in buffer size due to an improvement of the communication and/or mobility conditions may also prompt the mobile device 104a or the content player 122a to signal the content source 106a to decrease the flow of data packets associated with the content item to the minimum necessary to maintain the adaptable buffer 122b while still providing continued playback of the content item to the user. This can then ensure the adaptive buffer 122b only accumulates the necessary data packets, which minimises the bandwidth, load or capacity of the communication network 102 used by the mobile device 104a during playback of the content item to the user. If this is applied to all mobile devices 104a-104n streaming content items over a communication network 102, then this will result in significant savings of bandwidth used, minimise network load/congestion, and/or maximise network capacity leading to efficient use of the resources of the communication network 102.
[0069] Figures 1c to le illustrate several example arrangements of the content player 122a, adaptive buffer 122b and communication/mobility control logic 122c according to the invention. Although several arrangements are provided in figures lc to 1e, it is to be appreciated by the skilled person that other arrangements or combinations are possible, including, arrangements when the communication/mobility control logic 122c may be implemented separately or externally to the mobile device 104a, e.g. in a base station or other network entity that may be in communication with the mobile device 104a to provide the output of the communication/mobility control logic 122c for adapting the adaptable buffer 122b accordingly.
[0070] Figure 1c illustrates a schematic diagram of an example content player 122e including the functionality of the adaptable buffer 122b, communications/mobility control logic 122c, and player 122a. The adaptable buffer 122b receives the content item data from the receiver 118 of the mobile device 104a, buffers the content item data, and sends, when ready, the buffered content item data to the player 122a for playback of the content item to the user via input/output unit 116 (e.g. a display). During and/or prior to playback the communications/mobility control logic 122c queries the components of the mobile device 104a and/or the communication network 102 to receive one or more communication condition(s), measurements(s), and/or parameter(s) for determining whether there has been or will be a deterioration or improvement of the communications between the mobile device 104a and, for example, content source 106a. Based on the determination, the communications/mobility control logic 122c determines an appropriate decrease or increase in buffer size and sends the adaptable buffer 122b an indication to decrease or increase the buffer size (e.g. the indication may include a buffer step size or total buffer size that the adaptable buffer should use).
[0071] Figure 1d illustrates a schematic diagram of another example content player 122d including the functionality of the adaptable buffer 122b, player 122a and an input for receiving an indication to increase or decrease the buffer size from communications/mobility control logic 122c, and player 122a. The communications/mobility control logic 122c may be an application, a utility, or part of the operating system of the mobile device, or other computer executable instructions/code that may communicate with content player 122d to increase/decrease the adaptable buffer 122b depending on the communication conditions experienced by the mobile device 104a. During and/or prior to playback of the content item via input/output unit 116, the communications/mobility control logic 122c queries the components of the mobile device 104a and/or the communication network 102 to receive one or more communication condition(s) or parameter(s) for determining whether there has been or will be a deterioration or improvement of the communications between the mobile device 104a and, for example, content source 106a. Based on the determination, the communications/mobility control logic 122c determines an appropriate decrease or increase in buffer size and sends the adaptable buffer 122b an indication to decrease or increase the buffer size (e.g. the indication may include a buffer step size or total buffer size that the adaptable buffer should use).
[0072] Figure le illustrates a schematic diagram of a further example arrangement of content player 122a, adaptable buffer 122b, and communications/mobility control logic 122c.
In this example, each of the content player 122a, adaptable buffer 122b and communications/mobility control logic 122c may be separate application(s). Optionally, the adaptable buffer 122b and communications/mobility control logic 122c may be combined to form adaptable buffer 122f. The adaptable buffer 122b and/or 122f may be configured to intercept and/or receive the content item data and buffer this data for playback on content player 122a. The content player 122a may be a conventional content item player where the adaptable buffer 122b, communications/mobility control logic 122c and/or adaptable buffer 122f includes the functionality as described herein for determining the communication condition(s) to be experienced by the mobile device 104a and, in response, increasing or decreasing the buffer size of the adaptable buffer 122b or 122f.
[0073] The content player 122a, communication/mobility control logic 122c and/or mobile device 104a may make automatic decisions on the size of the adaptable buffer 122b that is required based on whether the mobile device 104a is moving/stationary, in a poor/good coverage area, experiencing radio interference or any other type of interference, likely to experience periods of interruption in data flow or improved throughput of data flow (e.g. very poor data flow due to handover, radio bearer changes, radio access network changes, increased/decreased error rates due to poor/good radio conditions), or any other interruption to or improvement in the flow of data packets from the content source 106a to the mobile device 104a during playback of the content item on the content player 122a.
[0074] Figure 2 illustrates a flow diagram of an example method 200, performed at the mobile device 104a, of adapting the adaptable buffer 122b for a content player 122a during playback of a content item streamed to the mobile device 104a from a content source 106a. For simplicity, the reference numerals of figures 1a-1e are used for similar or the same components, devices, entities etc. [0075] The mobile device 104a receives data representative of a content item for playback on a content player 122a. In step 202, the adaptable buffer 122b receives and stores the received data of the content item. Once storage of the received data in adaptable buffer 122b fills up to a first buffer size, the adaptable buffer 122b then provides the received and stored data of the content item to the content player 122a for playback of the content item.
Concurrently to providing the content player 122a with the received and stored data, the adaptable buffer 122b receives and stores further data of the content item from the content source 106a. The communication conditions to be experienced by the mobile device 104a in the communication network 102 are determined in step 204 for anticipating a negative or positive change in communication conditions to be experienced by the mobile device 104a.
An anticipated negative change in communication conditions may be representative of a change in communication conditions that indicates deteriorating communication conditions are to be experienced by the mobile device 104a. An anticipated positive change in communication conditions may be representative of a change in communication conditions that indicates improving communication conditions that are to be experienced by the mobile device 104a.
[0076] For example, anticipating a negative change in communication conditions, which may lead to the mobile device 104a experiencing a stall, can provide sufficient time for the adaptable buffer 122b to be adjusted and receive further content item data prior to the anticipated negative change in communication conditions occurs. This enables the mobile device 104a to "ride out" the poor or worsening communication conditions such that the content player 122a avoids stalling, which further improves the user experience. On the other hand, anticipating a positive change in communication conditions enables the adaptable buffer 122b and also the traffic flow between content player 122a and the content source 106a to be minimised such that only the minimum necessary amount of content data that maintains continuous playback is sent to the content player 122a. This enables efficient usage of the communication resources of the communication network 102.
[0077] Anticipating the communication conditions to be experienced by the mobile device 104a may be performed iteratively, asynchronously, when certain communication conditions are met, periodically and/or according to a schedule during playback of the content item. The communication conditions may also include mobility conditions of the mobile device 104a and/or the radio conditions/situations experienced by the mobile device 104a. The anticipated negative change or positive change in communication conditions may be representative of a predicted change in communication conditions to be experienced by the mobile device 104a that are determined from measurements and/or derived parameters of the communication conditions experienced by the mobile device 104a.
[0078] A negative change in communication conditions may be considered to be a change in communication conditions that are determined and/or predicted to be deteriorating for the mobile device 104a from previously and currently determined communication conditions (e.g. the most recent previously determined communication conditions) and/or reference thresholds set to trigger an indication of a negative change in communication conditions. For example, a negative change in communication conditions may be triggered when it is determined that measurements of one or more communication conditions reach or go beyond (e.g. greater than, equal to, and/or less than) one or more reference thresholds indicating the mobile device 104a is to experience deteriorating communication conditions or an interruption and that content player and/or buffer should be adjusted (e.g. increased) to anticipate the interruption.
L0079] A positive change in communication conditions may be considered to be a change in communication conditions that are determined and/or predicted to be an improvement in communication conditions for the mobile device 104a from previously and currently determined communication conditions (e.g. the most recent previously determined communication conditions) and/or communication condition reference thresholds set to trigger an indication of a positive change in communication conditions. For example, a positive change in communication conditions may be triggered when it is determined that measurements of one or more communication conditions reach or go beyond (e.g. greater than, equal to, and/or less than) one or more reference thresholds that indicate the mobile device 104a is to experience improved communication conditions and that the content player and/or buffer should be adjusted (e.g. decreased) to minimise the communication network resources consumed by the mobile device 104a.
[0080] In step 206, if it is determined and anticipated that there is or will be a negative change in the communication conditions experienced by the mobile device 104a then, in response to the anticipated negative change in communication conditions, the buffer size of the adaptable buffer 122b is increased in step 210, otherwise the method proceeds to step 208. In step 208, if it is determined and anticipated that there is or will be a positive change in communication conditions experienced by the mobile device 104a, then, in response to the anticipated positive change in communication conditions, the buffer size of the adaptable buffer 122b is decreased in step 212. If it is determined that the communication conditions do not indicate a sufficient positive or negative change in communication conditions, then the buffer size of the adaptable buffer is maintained and remains unchanged. The method proceeds to step 204 for determining and anticipating further changes to the communication conditions experienced by the mobile device 104a.
[0081] It is to be appreciated that there are a myriad of methods or arrangements for determining and anticipating the communication conditions to be experienced by the mobile device 104a. For example, the communication conditions may include a set of communication conditions measurable and/or communication condition parameters derivable from measurements and/or the communication conditions by one or more components of the mobile device 104a, where step 204 may further include anticipating the changes in communication conditions by polling the corresponding components of the mobile device 104a for a set of communication condition measurements or parameters. These may include signal strength measurements to/from a base station or wireless access point; interference received or experienced by the mobile device 104a such as, by way of example, radio interference experienced by the mobile device 104a, interference measurements associated with interference from other devices or users that is experienced by the mobile device 104a, interference measurements associated with interference experienced by other devices such as base stations or network entities in the communication network 102 that are in communication with the mobile device 104a, intra-cell interference measurements, inter-cell interference measurements, multi-user interference measurements, etc.; mobility measurements such as location measurements, GPS measurements, accelerometer measurements, speed and/or velocity measurements, etc.; indicators of imminent handover determined from signal strength measurement; position within a cell; the number of base stations the mobile device 104a has recently measured; measurements to/from one or more base stations or other network entities/elements of the communication network 102; and any other communication condition for determining whether the mobile device 104a is experiencing or will experience deteriorating communication conditions within the communication network 102 or an improvement in the communication conditions within the communication network 102 [0082] The set of communication condition measurements and/or parameters may be applied to a corresponding set of reference communication condition thresholds to determine whether to anticipate a negative, positive or nil change in communication conditions is or is to be experienced by the mobile device 104a. For example, the set of communication conditions may include, but is not limited to: 1) signal strength measurement(s); 2) speed measurement(s); 3) location measurement(s); 4) indication of imminent hand over; and 5) interference measurement(s) (e.g. radio interference or any other interference experienced by the mobile device 104a etc.). A corresponding set of reference communication condition thresholds may include, but is not limited to: 1) one or more signal strength reference threshold(s); 2) one or more speed reference threshold(s); 3) one or more location reference threshold(s); 4) one or more handover indication reference threshold(s); and/or 5) one or more interference reference threshold(s). The communication conditions may be applied to the set of reference communication condition thresholds by comparing measurements and/or parameters associated with each communication condition with the corresponding reference communication condition threshold, and determining, based on the comparison, whether one or more of the comparisons indicate a negative change in communication conditions, a positive change in communication conditions, and/or no change or no significant change in communication conditions. The latter may be used if there is no appreciable change to warrant a positive or negative change being indicated.
[0083] In steps 206 and/or 210, an indication may be provided to the adaptable buffer 122b, in response to a negative change in communication conditions, to increase the buffer size. This indication may be a flag (e.g. '1' or '0') indicating a negative change, whereby the adaptable buffer 122b increases the buffer size by a predetermined buffer step size associated with a negative change. Alternatively or additionally, in addition to the indication of a negative change, the indication may include further data representative of a buffer step size or of a new buffer size for use by the adaptable buffer 122b in increasing the buffer size to the appropriate size for mitigating the anticipated negative change in communication conditions.
[0084] Similarly, in steps 208 and/or 212, an indication may be provided to the adaptable buffer 122b, in response to a positive change in communication conditions, to decrease the buffer size. This indication may be a flag (e.g. '0' or '1') indicating a positive change, whereby the adaptable buffer 122b decreases the buffer size by a predetermined buffer step size associated with a positive change. Alternatively or additionally, in addition to the indication of a positive change, the indication may further include further data representative of a buffer step size and/or of a new buffer size for use by the adaptable buffer 122b in decreasing the buffer size to the appropriate size for when the positive change in communication conditions occurs. Furthermore, in step 208, if it is determined that the communication conditions have not changed substantially or significantly since a previous determination of the communication conditions experienced by the mobile device 104a, then an indication does not need to be provided to the adaptable buffer 122b. The method may repeat to ensure the mobile device 104a is monitored and the adaptable buffer 122b adjusted accordingly.
[0085] In step 204, determining the communication conditions and whether the conditions represent a negative change or positive change in communication conditions may further include determining the increase or decrease in buffer size based on a look-up table of buffer step sizes and/or buffer sizes associated with the severity of the negative change of communication conditions or the improvement of the positive change of communication conditions. For example, a set of buffer step sizes or buffer sizes for a negative change in communication conditions may result from one or more of the set of communication conditions being applied to the one or more communication condition thresholds indicating a negative change. For the set of buffer step sizes or buffer sizes only the maximum buffer step size or buffer size may be chosen, which indicates the maximum required change in buffer size of the adaptable buffer 122b for the negative change in conditions.
[0086] Additionally or alternatively, step 204 may further include determining the increase or decrease in buffer step size and/or buffer size as a function of the experienced or anticipated negative change in communication conditions or the experienced or anticipated positive change in communication conditions. For example, a weighted combination of the set of buffer step sizes or buffer sizes for a negative change in communication conditions may be applied to determine or calculate a buffer step size or buffer size for adjusting the adaptable buffer 122b.
[0087] It will be appreciated by the skilled person that the features of the embodiments of the invention described with reference to Figure 2 may be incorporated into the embodiments described with reference to Figures la-le and vice versa.
[0088] Figure 3 illustrates a flow diagram of another example of a method 300, performed by the mobile device 104a, of adapting the adaptable buffer 122b for a content player 122a during playback of a content item streamed to the mobile device 104a from a content source 106a. For simplicity, the reference numerals of figures la-1e are used for similar or the same components, devices, entities etc. In this example, the user decides to use their mobile device 104a to watch a video (e.g. content item) by streaming the video from a content source 105a to the video player 122a (e.g. content player) of the mobile device 104a. As the mobile device 104a starts retrieving the video from the content source 106a, the data representative of the video is buffered in the adaptive buffer 122b (e.g. an adaptive playout buffer) that is used by the video player 122a. In this example, the adaptable buffer 122b is initialised with a standard playout buffer size.
[0089] In step 302, the video playback on the video player 122a begins after the adaptable buffer 122b has buffered an amount of video data representative of the standard playout buffer size. The adaptable buffer 122b concurrently provides the video player 122a with buffered video data while it receives further video data for buffering from the content source 105a.
[0090] During playback of the video data on the video player 122a a communication/mobility control unit 122c may determine whether the buffer size of the adaptable buffer 122b should be increased, decreased, or maintained based on the communication conditions including the radio communication conditions and/or mobility of the mobile device 104a. This may be simplified to a three way decision to increase, decrease or maintain the buffer size based on communication parameter inputs derived from measurements/information from components of the mobile device 104a or communication network 102 associated with communication conditions that the mobile device 104a may or will experience during playback of the video. The communication conditions may also include, but are not limited to, mobility conditions of the mobile device 104a and/or the radio conditions/situations experienced by the mobile device 104a.
[0091] For example, the communication parameter inputs derived from measurements/information of the communication conditions may be based on signal strength measurements to/from a base station or wireless access point; interference received or experienced by the mobile device such as, by way of example, radio interference experienced by the mobile device 104a, interference measurements associated with interference from other devices or users that is experienced by the mobile device 104a, interference measurements associated with interference experienced by other devices such as base stations in communication with the mobile device 104a, intra-cell interference measurements, inter-cell interference measurements, multi-user interference measurements; mobility measurements such as location measurements, GPS measurements, accelerometer measurements, speed and/or velocity measurements, etc.; indicators of imminent handover determined from signal strength measurement; position within a cell; the number of base stations the mobile device 104a has recently measured; measurements to/from one or more base stations; and any other communication condition for determining whether the mobile device 104a is experiencing or will experience deteriorating communication conditions within the communication network 102 or an improvement in the communication conditions within the communication network 102.
[0092] In steps 304 and 308, decisions by the communication/mobility control unit 122c are made to modify the buffer size based on the communication parameter inputs associated with the communication conditions experienced by the mobile device 104a. The communication parameters may be used to set the buffer size. In order to make these decisions, the communication/mobility control unit 122c may receive, retrieve or query the components or application programming interfaces of the mobile device 104a for the communication parameter inputs. The components or application programming interfaces of the mobile device 104 may be associated with controlling and maintaining the mobile device's 104a connection with the communication network 102 and/or components that provide mobility information (e.g. GPS sensors, accelerometers, other movement/speed/velocity sensors etc.). Further, the communication/mobility control unit 122c may receive further communication parameter inputs from the communication network 102 e.g. base station measurements, interference measurements, signal strength measurements, load of the network, power control commands, and other communication parameters/measurements that may assist in making a decision on the communication conditions to be experienced by the mobile device 104a.
[0093] Although steps 304 and 308 are illustrated as being performed after step 302, it is to be appreciated by the skilled person that steps 304 and 308 may be performed prior to or concurrently with step 302. This will enable further optimisation of the buffer size of the adaptable buffer 122b before playback of the video starts, which may lead to a quicker start time of the video. As well, although step 304 is illustrated as occurring prior to step 308, it is to be appreciated by the skilled person that step 304 may be performed after step 308, or even concurrently.
L0094] In step 304, from the communication parameter inputs retrieved/received from the mobile device 104a and/or the communication network 102, the communication/mobility control unit 122c determines whether the mobile device 104a may or will experience a negative change in communication conditions i.e. an anticipated negative change in communication conditions. An anticipated negative change in communication conditions includes a change in communication conditions that indicates and/or predicts deteriorating communication conditions to be experienced by the mobile device 104a. For example, the communication/mobility control unit 122c may determine whether the mobile device 104a may be or will experience a negative change in communication conditions due to various factors such as, by way of example only, whether the mobile device 104a is moving, in an area of poor radio coverage, experiencing radio interference or any other interference, likely to experience a handover from one base station to another, and/or experience an interruption in data flow of the video data from the content source 106a. If it is determined that the mobile device 104a is moving, in an area of poor radio coverage, experiencing radio interference or any other interference, likely to experience a handover from one base station to another, and/or experience an interruption in data flow of the video data from the content source 106a, then an anticipated negative change in communication conditions can be determined and step 306 is performed to adjust the buffer size of the adaptable buffer 122b, otherwise step 308 is performed to determine whether the mobile device 104a may or will be experiencing a positive change in communication conditions. For example, step 306 may adjust the buffer size of the adaptable buffer 122b based on the magnitude or severity of the anticipated negative change in communication conditions that is determined.
[0095] In step 306, based on the negative change in communication conditions determined in step 304, the buffer size of the adaptable buffer 122b is increased by a predefined or a calculated buffer size increment, buffer step size, and/or by a predefined or calculated total buffer size, or any other variation thereof. For example, the buffer size increment/step size may be based on the magnitude or severity of the negative change in communication conditions determined in step 304. Additionally or alternatively, the communication/mobility control unit 122c may determine or calculate the required increased buffer size of the adaptable buffer 122b that will mitigate the negative change in communication conditions.
This may be determined using the communication/mobility control unit 122c or other software on the mobile device 104a or could be retrieved from the communication network 102 by the mobile device 104a using an application programming interface or other such method.
[0096] For example, the buffer size increment may be determined by the communication/mobility control unit 122c using a look up table and/or a set of rules or conditions that set predefined buffer increments based on the combination of the one or more communication conditions experienced or to be experienced by the mobile device 104a. The look up table of buffer size increments could be periodically retrieved or updated by the communication network 102 or operator of the mobile device 104a or video player 122a. Alternatively, the buffer sizes, rules and/or conditions may be factory set to a default configuration and subsequently network operator, video player developer, and/or user configurable. Once the increase in buffer size is determined based on the negative change in communication conditions, the communication/mobility control unit 122c instructs the adaptable buffer 122b to increase the buffer size by the determined buffer increment, step size or total size. The method then proceeds to step 304, for determining further changes in the communication conditions to be experienced by the mobile device 104a.
[0097] In step 308, from the communication parameter inputs retrieved/received from the mobile device 104a and/or the communication network 102, the communication/mobility control unit 122c determines whether the mobile device 104a may or will experience a positive change in communication conditions, i.e. an anticipated positive change in communication conditions. An anticipated positive change in communication conditions comprises a change in communication conditions that indicates and/or predicts improving communication conditions that are to be experienced by the mobile device 104a. For example, the positive change in communication conditions may be an improvement that is predicted in communication conditions for the mobile device 104a using current and/or previously determined communication conditions (e.g. the most recent previously determined communication conditions). The positive change in communication conditions may be due to various factors such as, by way of example only, whether the mobile device 104a is stationary, in an area of good radio coverage, experiencing reduced or no radio interference or any other interference, unlikely to experience a handover from one base station to another, and/or unlikely to experience an interruption in data flow of the video data from the content source 106a. If it is determined that the mobile device 104a is stationary, in an area of good radio coverage, experiencing reduced or no radio interference or any other interference, unlikely to experience a handover from one base station to another, and/or unlikely to experience an interruption in data flow of the video data from the content source 106a, then an anticipated positive change in communication conditions can be determined and step 310 is performed to adjust the buffer size of the adaptable buffer 122b. For example, step 310 may adjust the buffer size of the adaptable buffer 122b based on the magnitude or severity of the anticipated positive change in communication conditions that is determined.
[0098] Otherwise, if there is no significant or appreciable negative or positive change in communication conditions, it is determined that the buffer size of the adaptable buffer 122b should be maintained and the method 300 proceeds to step 304 for determining further changes in the communication conditions to be experienced by the mobile device 104a.
L0099] In step 310, based on the positive change in communication conditions determined in step 308, the buffer size of the adaptable buffer 122b is decreased by a predefined or a calculated buffer size decrement, buffer step size, and/or by a predefined or calculated total buffer size, or any other variation thereof. For example, the buffer size decrement/step size may be based on the magnitude or severity of the positive change in communication conditions determined in step 304. Additionally or alternatively, the communication/mobility control unit 122c may determine or calculate the required decreased buffer size of the adaptable buffer 122b to enable efficient use of communication resources in the communication network 102 (e.g. load, capacity or bandwidth). The decreased buffer size may be determined using the communication/mobility control unit 122c or other software on the mobile device 104a or could be retrieved from the communication network 102 by the mobile device 104a using an application programming interface or other such method.
[00100] For example, the buffer size decrement may be determined by the communication/mobility control unit 122c using the look up table and/or a set of rules or conditions that may further set predefined buffer decrements based on the combination of the one or more communication conditions experienced or to be experienced by the mobile device 104a. The look up table of buffer size decrements could be periodically retrieved or updated by the communication network 102 or operator of the mobile device 104a or video player 122a. Alternatively, the buffer sizes, rules and/or conditions may be factory set to a default configuration and subsequently network operator, video player developer, and/or user configurable. Once the decrease in buffer size is determined based on the positive change in communication conditions, the communication/mobility control unit 122c instructs the adaptable buffer 122b to decrease the buffer size by the determined buffer decrement, step size or total size. The method then proceeds to step 304, for determining further changes in the communication conditions to be experienced by the mobile device 104a.
[00101] Steps 304310 may be repeated concurrently during playback of the video to ensure the buffer size of the adaptable buffer 122b enables the video player to "ride out" interruptions due to poor communication conditions experienced by the mobile device 104a or to efficiently use the communication resources of the communication network 102 during good communication conditions.
[00102] It will be appreciated by the skilled person that the features of the embodiments of the invention described with reference to Figure 3 may be incorporated into the embodiments described with reference to Figures la-le and/or 2 and vice versa.
[00103] As described above with reference to Figures 1a to 3, the communications/mobility control logic or unit 122c may be configured to determine whether the mobile device 104a is experiencing a negative change in communication conditions, a positive change in communication conditions, or no significant change in communication conditions. The determination of the communication conditions may be based on a set of communication condition measurements and/or derived parameters and a set of corresponding reference thresholds associated with the communication conditions.
[00104] The communication conditions include a set of communication conditions measurable by one or more components of the mobile device 104a. For example, the set of communication conditions may include, but are not limited to: 1) whether the signal strength of the mobile device 104a is poor or good; 2) how fast the mobile device is travelling; 3) where the mobile device 104a is located; 4) is a hand over of the mobile device imminent; and/or 5) interference experienced/received by the mobile device 104a. The associated set of communication condition measurements may include, but are not limited to: 1) signal strength measurements of the mobile device; 2) mobility measurements of the mobile device; 3) location measurements of the mobile device; 4) hand over measurements or indication information of the mobile device; and/or 5) interference measurements. A corresponding set of reference communication condition thresholds may include, but are not limited to: 1) signal strength reference threshold(s); 2) speed reference threshold(s); 3) location or region reference threshold(s); 4) handover indication reference information; and/or 5) interference reference threshold(s).
[00105] The set of communication condition measurements may include radio communication measurements or information and/or mobility measurements associated with the mobile device. For example, the radio communication measurements or information may include, but are not limited to, base station signal strength received by the mobile device 104a, transmission signal strength of the mobile device 104a, interference such as radio interference experienced or received by the mobile device 104a, any other type of interference experienced or received by the mobile device 104a, intra-cell interference, inter-cell interference, and/or mulfiuser interference etc.; handover information associated with the mobile device 104a, and any other communication information associated with the mobile device 104a and the communication conditions experienced by the mobile device 104a. The mobility measurements may include, but are not limited to, GPS data associated with the mobile device 104a, location data associated with the mobile device 104a, movement information such as route, speed, velocity and acceleration associated with the mobile device 104a, and/or accelerometer data of the mobile device 104a indicating the mobile device is being moved [00106] The communication conditions may be applied to the set of reference communication condition thresholds by comparing measurements associated with each communication condition with the corresponding reference communication condition threshold, and determining, based on the comparison, whether one or more of the comparisons indicate a negative change in communication conditions, a positive change in communication conditions, or no significant change in communication conditions. The latter is used if there is no appreciable change to warrant a positive or negative change being indicated.
[00107] Determining the changes in communication conditions may further include gathering the corresponding communication condition measurements and comparing against the communication condition reference thresholds. For example, a controller (e.g. communication/mobility control logic 122c) may be configured to poll the corresponding components of the mobile device 104a for a set of communication condition measurements.
The set of communication condition measurements may then be applied to a corresponding set of reference communication condition thresholds to determine a negative or positive change in communication conditions.
[00108] By way of example only, assuming measurements below a reference threshold indicate poor performance/conditions, a negative change in communication conditions may be determined if one or more communication condition measurements are below the corresponding reference threshold, and at least one of the communication condition measurements is the same as or worse than the corresponding immediate previous communication condition measurement. Otherwise, if one or more communication condition measurements are below the corresponding reference threshold, and none of the communication condition measurements are the same as or worse than the corresponding immediate previous communication condition measurement, then a positive change in communication conditions may be determined. In addition, a positive change in communication conditions may also be determined if all of the communication condition measurements are above the corresponding reference thresholds and all of the communication condition measurements are the same as or above the immediately previous set of communication condition measurements. Otherwise, if one or more communication conditions are above the corresponding reference thresholds, but are below an immediate previous communication condition measurement, then this may indicate a deterioration of the communication conditions and hence a negative change in communication conditions.
[00109] In response to determining a negative change in communication conditions, the controller may provide an indication to increase the buffer size. In response to determining a positive change in communication conditions, the controller may provide an indication to decrease the buffer size. The indication may include a flag indicating the negative or positive change in communication conditions and an indication of the buffer size increase or decrease.
An increase in buffer size may be based on the negative change in communication conditions, and a decrease in the buffer size may be based on the positive change in communication conditions.
[00110] For example, a first buffer step size may be set for any negative change in communication conditions such that the previous buffer size is increased by the first buffer step size for each indication of a negative change in communication conditions. Similarly, a second buffer step size may be set for any positive change in communication conditions such that the previous buffer size is decreased by the second buffer step size for each indication of a positive change in communication conditions. The first and second buffer step sizes may be set to be constant, and/or may be configurable by the operator, user or developer. The first buffer step size may be set to be greater than the second buffer step size. This provides a faster increase in buffer size due to worsening communication conditions, and a slower decrease in buffer size as the communication conditions improve.
[00111] The increase or decrease in buffer size may also be based on a look-up table of buffer step sizes associated with each communication condition and each indication of a negative or positive change in communication conditions. For example, a look up table may be used to determine whether one or more communication condition measurements and/or communication condition parameters associated with a communication condition (e.g. CommCondition1, CommCondifion2,... CommConditionN) when compared with the corresponding reference thresholds or values (e.g. RefTh1, RefTh2,... RefThN) indicate a negative or positive change in communication conditions and a corresponding buffer step size increment (e.g. Buff_inc_1, Buff_inc_2,... ..., Buff inc_N) or decrement (e.g. Buff dec_1, Buff dec_2,... Buff_dec_N), respectively. The look up table may be based on the
following table.
Communication Reference Negative change Positive Change Condition Threshold/value buffer size inc. buffer size dec.
(e.g. seconds) (e.g. seconds) CommCondition1 RefTh1 Buff_inc_1 Buff dec_1 CommCondition2 RefTh2 Buff_inc_2 Buff dec_2 CommCondition3 RefTh3 Buff_inc_3 Buff dec_3 CommConditionN RefThN Buff inc_N Buff dec_N CommConditionN+1 True 0 0 [00112] The last communication condition in the above look up table (e.g. CommCondifionN+1) may be associated with whether the buffer size should be maintained, i.e. zero increment or decrement of the buffer size is indicated.
[00113] By way of example only, assuming measurements/parameters below a reference threshold indicate poor performance/conditions, a negative change in communication conditions may be determined if one or more communication condition measurements/parameters (e.g. CommCondMeasl, CommCondMeas2,... CommCondMeasN) associated with one or more of the communication conditions (e.g. CommConditionl, CommCondifion2,... CommCondifionN) are below the corresponding reference threshold (e.g. CommCondMeas1 < RefThl, CommCondMeas2 > RefTh2,...
CommCondMeasN > RefThN), and at least one of the communication condition measurements is the same as or worse than the corresponding immediate previous communication condition measurement (e.g. CommCondMeasl(n) < CommCondMeasl(n-1), where n>1 indicates the n-th iteration). Since CommCondMeasl(n) < CommCondMeasl(n-1) and CommCondMeas1 < RefThl, then a negative change in communication conditions is indicated and the buffer step size Buff inc_l may be used to increase the buffer size of the buffer.
[00114] If two or more communication condition measurements are less than the corresponding reference thresholds (e.g. CommCondMeas1 < RefThl and CommCondMeasN < RefThN) then the largest buffer step size (e.g. max(Buff dec_1, Buff dec_N)) may be chosen to increment the buffer size. Of course other variations may be used, for example, a weighted average of buffer step sizes (e.g. al x Buff dec_l + aN x Buff dec_N, where al and aN are appropriately chosen weights), or a sum of all buffer step sizes meeting these conditions (e.g. sum(Buff dec_1, Buff dec_N), or the sum of the top most m buffer step sizes may be used, etc. [00115] Otherwise, if one or more communication condition measurements are below the corresponding reference threshold (e.g. CommCondMeasl<RefThl, CommCondMeas2>RefTh2,... CommCondMeasN < RefThN), and none of the communication condition measurements are the same as or worse than the corresponding immediate previous communication condition measurement (e.g. CommCondMeasl(n-1) < CommCondMeasl(n),... CommCondMeasN(n-1) < CommCondMeasN(n)), then a positive change in communication conditions may be determined, but since any decrease in buffer size may be detrimental as the communication conditions are still not good, the buffer size may be maintained at the current size until all communication condition measurements are above or the same as the corresponding reference thresholds.
[00116] In addition, a positive change in communication conditions may also be determined if all of the communication condition measurements are above the corresponding reference thresholds (e.g. CommCondMeas1 > RefTh1, CommCondMeas2 > RefTh2,... CommCondMeasN > RefThN), and all of the communication condition measurements are the same as or above the immediately previous set of communication condition measurements (e.g. CommCondMeas1(n-1) >= CommCondMeas1(n), CommCondMeas2(n-1) >= CommCondMeas2(n),... CommCondMeasN(n-1) > CommCondMeasN(n)) then a positive change in communication conditions is indicated and the buffer step size may be chosen to be the minimum of the buffer decrement step sizes (e.g. min(Buff_dec_1, Buff dec_2,...
Buff dec_N)) or maximum of the buffer decrement sizes (e.g. max(Buff_dec_1, Buff dec_2,... Buff_dec_N)). Alternatively, the buffer step size decrement of the communication condition measurement that is closest to the corresponding reference threshold may be used.
[00117] Otherwise, if one or more communication conditions are above the corresponding reference thresholds, but are below an immediate previous communication condition measurement, then this may indicate a deterioration of the communication conditions and hence a negative change in communication conditions, but as the communication conditions are still good the buffer size may be maintained at the current size until one or more communication condition measurements are below the corresponding reference thresholds.
[00118] Although a look up table is provided above by way of example only, it is to be appreciated that the look up table could instead be implemented using nested if -then -else statements or other suitable set of rules and/or conditions or policies. For example, rules, conditions, and/or policies may be stored in any suitable format, for example but not limited to, extensible Markup Language (XML) or any other programming language, rule and/or policy language or format, which when executed or interpreted by, for example, a processing unit 112 or communications/mobility control logic 122c (or content player 122a), causes the adjustment of the adaptable buffer 122b accordingly.
[00119] Several scenarios of the invention as described herein are now described, by way of example only, using the mobile device 104a, which is provided with a content player 122a, adaptable buffer 122b and communication/mobility control logic 122c that are arranged and/or configured to have the functionality as described with reference to Figures la-3. For simplicity, the reference numerals of Figures 1a-1e may be reused for similar or the same components, entities, networks and/or mobile devices and content sources.
[00120] In the first scenario the user of mobile device 104a is a passenger in a car and uses the mobile device 104a to watch a video stream such as the news. In this example, the mobile device 104a experiences a negative change in communication conditions due to the deterioration of the communication conditions experienced by the mobile device 104a due to variations in speed of the car.
[00121] The mobile device 104a connects to the communication network 102 and the user navigates to a web server or content source 106a to select and stream the video that they wish to watch. Initial buffering may start with a standard buffer size or the previous buffer size used by the adaptive buffer 122b. Although it is assumed that initial buffering starts with a standard buffer size, it is to be appreciated that the initial buffering may have been optimised prior to buffering the video data stream.
[00122] After initial buffering by the adaptive buffer 122b of the video stream, the content player 122a plays back the video and the mobile device 104a via the communications/mobility control logic 122c monitors the radio conditions that the mobile device 104a experiences while the user is travelling in the car. On receiving communication conditions and/or parameters such as signal measurements, radio interference or any other interference measurements, GPS measurements, and/or information associated with handover events, the communications/mobility control logic 122c estimates that the mobile device 104a is travelling at a speed such that the mobile device 104a will be likely encounter breaks in transmission and periods of poor throughput due to more handover events and possibly variable radio coverage as the car travels away from one base station coverage area into another.
[00123] Having made this determination, the communications/mobility control logic 122c of the mobile device 104a provides an indication and/or buffer step size/increment for use by the adaptive buffer 122b to increase its buffer size to compensate for the handover events and possible poor or variable radio coverage. By increasing the buffer size, the mobile device 104a or the content player 122a may request the content source 106a to increase the flow of data packets associated with the video to fill up the adaptive buffer 122b. Once full, the content source 106a may change the flow of data packets to one that ensures the adaptive buffer 122b remains full. During playback of the news, the communications/mobility control logic 122c continues to monitor the communication conditions that the mobile device 104a may experience.
[00124] In another scenario the user of mobile device 104a may be stationary in an indoor environment with good 4G coverage. The user uses mobile device 104a to watch a video stream such as a feature length film. In this example, the mobile device 104a experiences a positive change or no change in communication conditions due to being stationary and having good coverage. At initial buffering and playback the communications/mobility control logic may start to monitor the communication conditions such as the radio conditions and/or mobility conditions that it experiences. Although it is assumed that initial buffering starts with a standard buffer size, it is to be appreciated that the initial buffering may have been optimised prior to buffering the video data stream.
[00125] On receiving communication conditions and/or parameters such as signal measurements, radio interference or other interference measurements including, but not limited to, inter or intra-cell measurements, multiuser interference, etc., GPS measurements and other communication parameters/measurements the communications/mobility control logic 122c estimates that the mobile device 104a is stationary and has good coverage such that the mobile device 104a should maintain a good video streaming data throughput. Having made this determination, the communications/mobility control logic 122c of the mobile device 104a provides an indication and/or buffer step size/decrement for use by the adaptive buffer 122b to decrease its buffer size as the standard buffer on initialisation should not be needed to ensure buffering free and continuous playback of the feature length film. Of course, because the buffer size has decreased, the mobile device 104a and/or content player 122c may communicate via a transport layer protocol with the content source 106a to minimise the flow of data packets of the feature length film to avoid the adaptive buffer 122b from overflowing and dropping data packets. During playback of the news, the communications/mobility control logic 122c continues to monitor the communication conditions that the mobile device 104a may experience.
[00126] In a further scenario the user of the mobile device 104a may be watching a video stream on the mobile device 104a in an indoor environment that has poor communication conditions, e.g. poor radio coverage (e.g. 3G or 4G coverage). At initial buffering and playback the communications/mobility control logic 122c may start to monitor the communication conditions such as radio conditions and/or mobility conditions that the mobile device 104a experiences. Although it is assumed that initial buffering starts with a standard buffer size, it is to be appreciated that the initial buffering may have been optimised prior to buffering the video data stream. On receiving communication conditions and/or parameters such as radio signal measurements, radio interference measurements, GPS measurements, and/or handover information such as handover events the communications/mobility control logic 122c determines that the mobile device 104a is stationary but has poor radio coverage and will most likely encounter difficulties of limited throughput and/or possible handover events.
[00127] Having made this determination, the communications/mobility control logic 122c sends an indication and/or a buffer size increment to the adaptive buffer 122b for use in increase the buffer size of the adaptive buffer 122b to allow for the large periods of slow throughput. During playback of the video stream, the communications/mobility control logic 122c continues to monitor the communication conditions that the mobile device 104a may experience to ensure the buffer size of the adaptive buffer 122b is increased/decreased according to changes in the communication conditions of the mobile device 104a.
[00128] Although several scenarios have been described, by way of example only, in relation to increasing/decreasing the buffer size of the adaptive buffer 122b, it is to be appreciated by the person skilled in the art that these scenarios are not limiting in any way and that the mobile device 104a may experience many scenarios with one or more different types of communication condition(s) and one or more different types of corresponding communication condition measurement(s)/parameters(s) such that the communications/mobility control logic 122c may appropriately increase/decrease the buffer size depending on the communication conditions/measurements/parameters and/or combinations thereof.
[00129] Hence, aspects of the apparatus and methods of adapting a buffer for a content player of a mobile device as outlined above may be embodied in programming. Program aspects of the technology may be thought of as "products" or "articles of manufacture" typically in the form of executable code and/or associated data that is carried on or embodied in a type of machine readable medium and/or in a plurality of such media. "Storage" type media include any or all of the tangible memory of the mobile devices, computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide non-transitory storage at any time for the software programming. All or portions of the software may at times be communicated through the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one mobile device, computer or processor into another, for example, from a management server or host computer of the organisation providing arranging an adaptable buffer for a content player of a mobile device or computer.
Thus, another type of media that may bear the software elements includes optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to non-transitory, tangible "storage" media, terms such as computer or machine "readable medium" refer to any medium that participates in providing instructions to a processor for execution.
[00130] Hence, a machine readable medium may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any mobile devices, computer(s) or the like, such as may be used to implement the control and configuration of an adaptable buffer for a content player of a mobile device or computer, etc. as shown in the drawings. Volatile storage media include dynamic memory, such as main memory of such a mobile device or computer platform. Tangible transmission media include coaxial cables; copper wire and fibre optics, including the wires that comprise a bus within a mobile device or a computer system. Carrier-wave transmission media can take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a mobile device or a computer can read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.
[00131] Any range, buffer size, or device value given herein may be extended or altered without losing the effect sought, as will be apparent to the skilled person. It will be understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. The embodiments are not limited to those that solve any or all of the stated problems or those that have any or all of the stated benefits and advantages.
Any reference to 'an' item refers to one or more of those items. The term 'comprising' is used herein to mean including the method blocks or elements identified, but that such blocks or elements do not comprise an exclusive list and a method or apparatus may contain additional blocks or elements.
[00132] The steps of the methods described herein may be carried out in any suitable order, or simultaneously where appropriate. Additionally, individual blocks may be deleted from any of the methods without departing from the spirit and scope of the subject matter described herein. Aspects of any of the examples described above may be combined with aspects of any of the other examples described to form further examples without losing the effect sought.
[00133] It will be understood that the above description of a preferred embodiment is given by way of example only and that various modifications may be made by those skilled in the art. Although various embodiments have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this invention.

Claims (17)

  1. Claims 1. A method of adapting a buffer for a content player on a mobile device in a communication network, the buffer for receiving data representative of a content item for playback on the content player, the method comprising: anticipating a negative or a positive change in communication conditions to be experienced by the mobile device in the communication network; increasing the buffer size based on the anticipated negative change in communication conditions; and decreasing the buffer size based on the anticipated positive change in communication conditions.
  2. 2. A method as claimed in claim 1, wherein the communication conditions include at least one of radio communication conditions experienced by the mobile device and mobility conditions of the mobile device.
  3. 3. A method as claimed in claims 1 or 2, wherein the anticipated negative change in communication conditions comprises a change in communication conditions indicating deteriorating communication conditions to be experienced by the mobile device, and the anticipated positive change in communication conditions comprises a change in communication conditions indicating improving communication conditions to be experienced by the mobile device.
  4. 4. A method as claimed in any preceding claim, further comprising: in response to the anticipated negative change in communication conditions, providing an indication to increase the buffer size; and in response to the anticipated positive change in communication conditions, providing an indication to decrease the buffer size.
  5. 5. A method as claimed in claim 4, wherein the indication includes a flag representing a positive change in communication conditions or a negative change in communication conditions.
  6. 6. A method as claimed in claims 4 or 5, wherein the indication includes an estimate of the increase in buffer size based on the anticipated negative change in communication conditions or the indication includes an estimate of the decrease in buffer size based on the anticipated positive change in communication conditions.
  7. 7. A method as claimed in any preceding claim, further comprising measuring the communication conditions by one or more components of the mobile device for anticipating the negative or positive change in communication conditions to be experienced by the mobile device.
  8. 8. A method as claimed in claim 7, wherein the communication conditions include a set of communication conditions measurable by the one or more components of the mobile device, the step of anticipating communication conditions to be experienced by the mobile device further comprising: polling the corresponding components of the mobile device for a set of communication condition measurements; and applying the set of communication condition measurements to a corresponding set of reference communication condition thresholds for anticipating the negative or positive change in communication conditions.
  9. 9. A method as claimed in claim 8, the step of applying the set of communication condition measurements further comprising: comparing each measurement in the set of communication condition measurements with a corresponding reference communication condition threshold of the set of reference communication condition thresholds; and determining, based on the comparison, whether one or more of the comparisons indicates a negative change in communication conditions or a positive change in communication conditions.
  10. 10. A method as claimed in any of claims 7 to 9, wherein the communication condition measurements include radio communication condition measurements comprising data representative of at least one from the group of: base station signal strength received by the mobile device; transmission signal strength of the mobile device; radio interference received or experienced by the mobile device; and handover information associated with the mobile device.
  11. 11. A method as claimed in any of claims 7 to 10, wherein the communication condition measurements further include mobility condition measurements comprising data representative of at least one from the group of: location data associated with the mobile device; speed data associated with the mobile device; and accelerometer data of the mobile device.
  12. 12. A method as claimed in any preceding claim, further comprising determining the increase or decrease in buffer size based on a look-up table of buffer step sizes associated with the anticipated negative change in communication conditions or anticipated positive change in communication conditions.
  13. 13. A method as claimed in any preceding claim, further comprising determining the increase or decrease in buffer size as a function of the anticipated negative change in communication conditions or the anticipated positive change in communication conditions.
  14. 14. A method as claimed in any preceding claim, wherein the buffer size is increased or decreased by a buffer size increment based on the anticipated negative or anticipated positive change in communication conditions.
  15. 15. A controller for adapting a buffer for a content player on a mobile device in a communication network, the buffer for receiving data representative of a content item for playback on the content player, the controller adapted to: anticipate a negative or positive change in communication conditions to be experienced by the mobile device in the communication network; send a first indication to the buffer to increase the buffer size based on an anticipated negative change in communication conditions; and send a second indication to decrease the buffer size based on an anticipated positive change in communication conditions.
  16. 16. A mobile device comprising: a processing unit, a receiver, a transmitter, and storage unit, the processing unit coupled to the receiver, the transmitter and the storage unit, wherein: the receiver is configured to receive data representative of a content item from a content source over a communication network; and the processing and storage units are configured to perform the method steps according to any of claims 1 to 14 for adapting a buffer for a content player on the mobile device.
  17. 17. A computer readable medium comprising computer readable code stored thereon, which when executed on a processor, causes the processor to perform the method steps according to any of claims 1 to 14.
GB1500196.9A 2015-01-07 2015-01-07 Adaptive buffering of a content player for a mobile device in a telecommunication network Withdrawn GB2533942A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB1500196.9A GB2533942A (en) 2015-01-07 2015-01-07 Adaptive buffering of a content player for a mobile device in a telecommunication network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1500196.9A GB2533942A (en) 2015-01-07 2015-01-07 Adaptive buffering of a content player for a mobile device in a telecommunication network

Publications (1)

Publication Number Publication Date
GB2533942A true GB2533942A (en) 2016-07-13

Family

ID=56120829

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1500196.9A Withdrawn GB2533942A (en) 2015-01-07 2015-01-07 Adaptive buffering of a content player for a mobile device in a telecommunication network

Country Status (1)

Country Link
GB (1) GB2533942A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114586371A (en) * 2019-10-14 2022-06-03 谷歌有限责任公司 Method, system, and medium for streaming video content using adaptive buffers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001030090A2 (en) * 1999-10-18 2001-04-26 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for the wireless transmission of loss sensitive data
US20020194609A1 (en) * 2001-06-18 2002-12-19 Tran Thanh T. Video client with dynamically allocable video buffer for efficiently streaming video
WO2013055999A1 (en) * 2011-10-14 2013-04-18 Qualcomm Incorporated Methods and apparatuses for reducing voice/data interruption during a mobility procedure

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001030090A2 (en) * 1999-10-18 2001-04-26 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for the wireless transmission of loss sensitive data
US20020194609A1 (en) * 2001-06-18 2002-12-19 Tran Thanh T. Video client with dynamically allocable video buffer for efficiently streaming video
WO2013055999A1 (en) * 2011-10-14 2013-04-18 Qualcomm Incorporated Methods and apparatuses for reducing voice/data interruption during a mobility procedure

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Paolo Bellavista et al "Adaptive Buffering-Based on Handoff Prediction for Wireless Internet Continuous Services" High Performance Computing and Communcations Lecture Notes in Computer Science *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114586371A (en) * 2019-10-14 2022-06-03 谷歌有限责任公司 Method, system, and medium for streaming video content using adaptive buffers

Similar Documents

Publication Publication Date Title
EP3703403B1 (en) Method and apparatus for caching
US20160164788A1 (en) Egress Rate Shaping To Reduce Burstiness In Application Data Delivery
US10271112B2 (en) System and method for dynamic adaptive video streaming using model predictive control
US9215637B2 (en) Buffer-aware radio resource management
US20170180275A1 (en) Dynamic jitter buffer size adjustment
Bui et al. Greenbag: Energy-efficient bandwidth aggregation for real-time streaming in heterogeneous mobile wireless networks
EP3103278B1 (en) System, method and software product for content delivery
US11477257B2 (en) Link-aware streaming adaptation
EP3055966B1 (en) Improved request cancellation method for media streaming
US20180176325A1 (en) Data pre-fetching in mobile networks
CN107079179B (en) For handling the network node and method that control the process of data transmission relevant to the video data of video streaming services
Koo et al. Seamless dynamic adaptive streaming in LTE/Wi-Fi integrated network under smartphone resource constraints
KR102046713B1 (en) Method for traffic management in mobile edge cloud for quality improvement of mobile video and apparatus thereof
WO2010088490A1 (en) Application, usage &amp; radio link aware transport network scheduler
KR102185876B1 (en) Apparatus and method for http adaptive streaming in wireless network environment
US10581944B2 (en) Transmission resource distribution for streaming of variable bitrate encoded media data
Kim et al. Traffic management in the mobile edge cloud to improve the quality of experience of mobile video
US11606409B1 (en) Optimizing quality of experience (QoE) levels for video streaming over wireless/cellular networks
Siris et al. Exploiting mobility prediction for mobility & popularity caching and DASH adaptation
GB2533942A (en) Adaptive buffering of a content player for a mobile device in a telecommunication network
WO2017007474A1 (en) Congestion-aware anticipatory adaptive video streaming
ur Rahman et al. QoE optimization for HTTP adaptive streaming: Performance evaluation of MEC-assisted and client-based methods
Zhang A cooperative caching and transmission mechanism towards QoE-aware for surveillance video based on cloud computing environment
Michelinakis Practical challenges of network optimized stored video delivery
Abdelghani et al. Improving QoE in IoV: a review of solutions and challenges for MPEG-DASH

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)