The present invention relates generally to the field of audio and/or video (hereinafter “AV”) data stream delivery over wireless communication networks, and in particular, although not exclusively, to the delivery of time-critical streams to mobile communications devices.
Recent years have seen a huge increase in the form and function of mobile communications-enabled devices, coupled with an even greater increase in the volume of AV content available for access (whether downloaded and stored or watched/listened to “live”). A particular problem area relates to accessing content using a mobile data network, such as a 3G network accessed from a Smartphone or laptop. If a subscriber is moving while streaming content, or downloading a large file, then the network must manage the subscriber's transition between cells of the network.
One approach to managing the transition is directed to a method and system for reducing service interruptions to mobile communication devices. In the system described, context information (in the form of location and speed/direction data) associated with a wireless mobile device is used to determine a potential occurrence of a network disruption, for example a railway tunnel or the boundary between two networks. Upon determining a potential occurrence of a network disruption, the system makes a prediction as to the future data that may be desired by the mobile device and then causes an increase in the bandwidth available for data transfer to the mobile device, such that the predicted future data is pre-emptively transferred to the mobile device. The increase in bandwidth available for data transfer is intended to allow sufficient data content to be pre-cached by a memory cache controller of the mobile device so as to provide continual data content to the user during a network disruption. A further example of pre-emptive caching within a mobile device based on a predicted location of that mobile device.
A problem with the above approach is that firstly it just addresses potential breaks or delays in the transmission of the data stream from network to mobile user, and does not deal with the delays that can arise when an ongoing request for a continuous data stream delivery is transferred from one network to another, or even between transmission sources on the same network. Secondly, it requires a relatively large amount of local memory space to be kept free within the mobile device to receive and cache the temporary data.
It is therefore an object of the present invention to provide a means to minimise delays in the supply of streaming content to a user moving through a series of content delivery sources.
In one embodiment of the present invention, a method and/or computer program product manages substantially continuous delivery of a data stream to a mobile communications device through sequential access thereby to respective receivers from a networked arrangement of wireless transceivers at known locations. A current location and velocity of the mobile communications device is determined. Based on a determined current location and velocity of the mobile communications device, a prediction for a next wireless transceiver to be accessed is generated, and a portion of the data stream is pre-cached at a predicted next wireless transceiver.
In one embodiment of the present invention, a communications apparatus comprises: a mobile communications device; a data source providing a sequential data stream; a plurality of network linked wireless transceivers coupled with the data source, each transceiver being at a known location, each transceiver being operable to transmit data to and receive data from the mobile communications device, and each transceiver having an associated data store operable to store data from said data source; a prediction generator configured to determine a current location and velocity for the mobile communications device and, based thereon, generate a prediction for the next wireless transceiver to be accessed; and a download co-ordinator coupled with the prediction generator and transceivers and arranged to initiate pre-caching of a portion of the data stream at the predicted next wireless transceiver.
The present invention will now be described, by way of example only, with reference to preferred embodiments, as illustrated in the following figures, in which:
The following exemplary embodiments describe an improvement to caching at the edge of mobile data networks. The embodiments make use of information that is readily accessible within a mobile network to improve end user experience, by pre-emptively caching (pre-caching) content at edge servers which are predicted to be used by a subscriber (user). For example, consider a subscriber who boards a train from London to Edinburgh, and starts watching a movie, streamed across a mobile network. During the journey, the subscriber's access to the mobile network will pass through dozens of cells, and each cell tower (transceiver) will provide access to a different section of the movie. By predicting the route of the subscriber as he/she moves through the country, it is possible to pre-emptively cache different sections of the movie at the right cell towers. In this way, the subscriber would not have to experience an interruption to his/her network access, while a section of the movie is downloaded to the cell tower's cache.
A mobile communications device 32 travels through the areas covered by the two networks and is configured to send messages to, and receive data from, any of the wireless transceivers, in particular to receive a continuous data stream 34 such as a movie supplied to the networks from a source 36. The data stream 34 is represented at the top of the Figure. At the instant shown, the mobile device 32 is at position P1 within the coverage area of the first network 10. Via transceiver 14, the mobile device is accessing the data stream 34 at a point A.
A download co-ordinator 38, coupled with the transceivers via the network control stages 18, 28, is arranged to initiate pre-caching of a portion of the data stream 34 at a predicted next wireless transceiver, with a prediction generator 40 coupled to the download co-ordinator 38 being configured to determine a current location P1 and velocity (indicated by arrow V) for the mobile communications device 32 and, based thereon, generate a prediction for the next wireless transceiver to be accessed. These operations are described in greater detail below.
Referring additionally to
Next at step 102 the velocity (speed and direction) of the mobile communications device is determined. Again there are numerous ways to achieve this. For example, where the mobile communications device includes position detection means and/or motion sensors, the velocity information may be periodically pushed by the mobile device to the currently linked transceiver. Alternatively, the velocity may be determined from a timed sequence of position determinations, perhaps achieved through triangulation.
At step 104, based on the position and velocity data, a predicted route for the mobile communications device is plotted. In terms of
At step 106, the predicted route is compared with the known locations of the transceivers, and the next transceiver that the mobile communications device will come into range of is identified (transceiver 24 in
In an optional step 110, a check is made as to whether there are any further transceivers within range. As represented by
When the pre-caching has been completed, the process enters a short wait state at step 112 before returning to step 100 to obtain an updated location for the mobile communications device.
An alternative or additional rate check 122 would determine the rate at which the user is accessing the data stream. If the data stream is a section of AV content, for example the user is watching a movie on download, then there is an expected access rate. However, if the user alters that access rate—perhaps by repeatedly pausing, rewinding or fast-forwarding the stream—then a different average access rate arises, which different rate might then be used to determine where in the data stream the user is likely to be when encountering the next transceiver (point B).
An alternate or additional method for determining the extent of portion B to C is represented by steps 124 and 126 in which the expected arrival time at, and departure time from, a particular transceiver is derived from the position and velocity data to more precisely limit the extent of portion B to C.
When any or all of steps 120, 122, 124 and 126 are completed, the pre-caching step 108 concludes at 128 with the download of the selected portion B to C to the selected transceiver or transceivers.
A further contribution that may be taken into account in determining the next transceiver to be encountered is foreknowledge of factors expected to affect the velocity of the mobile communications device 32.
A further factor that may be expected to affect the velocity of the mobile communications device is known speed restrictions along the expected path of travel, such as a traffic jam as represented at 70 in
Also connected to the CPU 210 via bus 216 are a number of external hardware device interface stages (generally denoted 218). A first interface stage 220 supports the connection of external input/output devices, such as a mouse 222 and/or keyboard 224. A second interface stage 226 supports the connection of external output devices such as a display screen 228 and/or audio output device 230, such as headphones or speakers. A third interface stage 232 supports the connection to external data storage devices in the form of computer readable media: such external storage may as shown be provided by a removable optical or magnetic disc 234 (accessed by a suitably configured disc reader 236). Alternatively or additionally the external storage may be in the form of a solid state memory device such as an extension drive or memory stick. The external storage may contain a computer program, containing program software code portions which, when run by the CPU 210 and/or further processor 242, perform the method according to the present invention.
A fourth interface stage 238 supports connection of the system to remote devices or systems (including the transceivers 14, 16, 22, 24, 26) via wired or wireless networks 240, for example over a local area network LAN, via the internet, or another cloud computing source. The network 240 may provide the connection to the source 36 for the data stream 34, or the data stream may be read from local storage such as RAM 212 or disc 234.
Under the control of software code portions, the CPU 210 performs the functions of the download co-ordinator 38 and prediction generator 40, based on data describing the motion of the mobile communications device received via interface 238 and stored data (suitably held in ROM 214) defining the locations of the transceivers.
In the foregoing, the applicants have described a method and apparatus for managing substantially continuous delivery of a data stream, such as streaming video, to a mobile communications device traversing a networked arrangement of wireless transceivers at known locations. Based on a current location and velocity for the mobile device, a predicted route is determined and used to identify the next wireless transceiver likely to be accessed. Based on the calculated time of arrival at the predicted next wireless transceiver, a portion of the data stream is identified and downloaded to the next transceiver such as to be immediately available when the mobile device comes within range.
In accordance with a first aspect of the present invention there is provided a method for managing substantially continuous delivery of a data stream to a mobile communications device through sequential access thereby to respective ones of a networked arrangement of wireless transceivers at known locations, comprising the steps of:
By causing the next transceiver to pre-cache the next portion of the data stream, delays and interruptions while the request for the stream is re-established are avoided. Additionally, by the identification of an individual transceiver, the need to pre-cache the same data at all transceivers of a network is avoided, reducing both network traffic and necessary storage capacity.
The portion of the data stream to be pre-cached may suitably be determined based on the current point in the data stream being accessed by the mobile communications device and a predicted access time at the next wireless transceiver. For example, if a user is currently 15 minutes into an item of streamed content (such as a film) and the current position and velocity data indicate that the next transceiver will be accessible in 10 minutes from the present time, the next transceiver may be set to start pre-caching the content from minute 25 onwards. In such a scenario, the determination of the portion of the data stream to be pre-cached may also take into account the rate at which the data stream is being accessed by the mobile communications device. For example, if a user is habitually pausing/rewinding the content or habitually skipping/fast-forwarding, then the start point from which pre-caching occurs may be retarded or advanced as appropriate.
The extent of the portion of the data stream to be pre-cached at a particular wireless transceiver may be determined at least partly by the time that the mobile communications device is predicted to be within communications range of that transceiver, based on the velocity of the mobile communications device, such as to avoid storage of unnecessary volumes of data. Additionally, or alternately, the extent of the portion of the data stream to be pre-cached at a particular wireless transceiver may be increased if the velocity of the mobile communications device decreases: this might be indicative of a traffic jam for example, suggesting that the user will require a later segment of the data stream to be pre-cached than originally calculated.
Where the step of generating a prediction for the next wireless transceiver to be accessed comprises a calculation including a predetermined error tolerance, it may be case that two or more potential next wireless transceivers are identified and, in such cases, each such potential next wireless transceiver would pre-cache the said portion of the data stream.
The step of generating a prediction for the next wireless transceiver to be accessed may suitably include consideration of ancillary data defining constraints on the location of the mobile communications device. For example, if previous location determinations for the mobile device indicate that it is travelling along a particular railway line or motorway, the known (or likely) route may be taken into account in the identification of the next transceiver. Such ancillary data may also include predicted changes to the determined velocity of the mobile communications device, perhaps linked to latest average speeds along a particular stretch of road.
Also in accordance with the present invention there is provided a communications apparatus comprising:
The download co-ordinator which, together with the prediction generator, may be provided by a suitably programmed computer or data processor, may be arranged to control the portion of the data stream to be pre-cached based on the current point in the data stream being accessed by the mobile communications device and a predicted access time at the next wireless transceiver. It may further be configured to, during determination of the portion of the data stream to be pre-cached, also take into account the rate at which the data stream is being accessed by the mobile communications device.
In addition, the download co-ordinator may be arranged to determine the extent of the portion of the data stream to be pre-cached at a particular wireless transceiver at least partly on the basis of the time that the mobile communications device is predicted to be within communications range of that transceiver, based on the velocity of the mobile communications device. For example if a user is on a train, the time spent in each cell is relatively small, so only small sections are pushed to the next edge cache. If the user is walking (and their speed is low), it is likely that the user will require a much larger portion of the stream in the next cell area. Additionally or alternately, the download co-ordinator may be arranged to cause the extent of the portion of the data stream to be pre-cached at a particular wireless transceiver to be increased if the determined velocity of the mobile communications device decreases.
The present invention may be a system/apparatus, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
Note that the summary of the present invention does not recite all the necessary features of the invention, and sub-combinations of those features may also encompass the invention.
While embodiments of the present invention have been described above, the technical scope of the invention is not limited to the scope of the above-described embodiments. It should be apparent to those skilled in the art that various changes or improvements can be made to the embodiments. It is apparent from the description of the appended claims that implementations including such changes or improvements are encompassed in the technical scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
11183790 | Oct 2011 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP2012/067509 | 9/7/2012 | WO | 00 | 4/1/2014 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2013/050216 | 4/11/2013 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
6910079 | Zimmermann | Jun 2005 | B2 |
7085576 | Ranganathan | Aug 2006 | B2 |
7222169 | Koshimizu et al. | May 2007 | B2 |
7397779 | Chandra et al. | Jul 2008 | B2 |
7519470 | Brasche et al. | Apr 2009 | B2 |
7562393 | Buddhikot et al. | Jul 2009 | B2 |
7581019 | Amir | Aug 2009 | B1 |
7657268 | Oswal et al. | Feb 2010 | B2 |
7657672 | Kampmann | Feb 2010 | B2 |
7831265 | Shen | Nov 2010 | B1 |
7895629 | Shen | Feb 2011 | B1 |
8134970 | Jalil | Mar 2012 | B2 |
8218439 | Deshpande | Jul 2012 | B2 |
8239911 | Sun | Aug 2012 | B1 |
8483710 | Casey | Jul 2013 | B2 |
8718670 | Ringland | May 2014 | B2 |
8718797 | Addepalli | May 2014 | B1 |
8861932 | Shaw | Oct 2014 | B2 |
8897790 | Hamalainen et al. | Nov 2014 | B2 |
8909807 | Harrang | Dec 2014 | B2 |
8948779 | Choi | Feb 2015 | B1 |
9125032 | Burckart | Sep 2015 | B2 |
9800948 | Ma | Oct 2017 | B2 |
9820009 | Lohmar | Nov 2017 | B2 |
20030007515 | Apostolopoulos | Jan 2003 | A1 |
20030065712 | Cheung | Apr 2003 | A1 |
20040143386 | Yoshihara et al. | Jul 2004 | A1 |
20040192342 | Ranganathan | Sep 2004 | A1 |
20040203779 | Gabara | Oct 2004 | A1 |
20040255331 | Inoue | Dec 2004 | A1 |
20060079234 | Ishikawa | Apr 2006 | A1 |
20060227744 | Metke et al. | Oct 2006 | A1 |
20060286988 | Blume | Dec 2006 | A1 |
20070053446 | Spilo | Mar 2007 | A1 |
20070094461 | Nguyen et al. | Apr 2007 | A1 |
20070094691 | Gazdzinski | Apr 2007 | A1 |
20070133405 | Bowra | Jun 2007 | A1 |
20080085724 | Cormier | Apr 2008 | A1 |
20080151817 | Fitchett et al. | Jun 2008 | A1 |
20080310365 | Ergen | Dec 2008 | A1 |
20090006308 | Fonsen | Jan 2009 | A1 |
20090073946 | Morita | Mar 2009 | A1 |
20090089445 | Deshpande | Apr 2009 | A1 |
20090094649 | Patel | Apr 2009 | A1 |
20090100188 | Li | Apr 2009 | A1 |
20090156210 | Ponce De Leon et al. | Jun 2009 | A1 |
20090275346 | Bauman | Nov 2009 | A1 |
20090319177 | Khosravy et al. | Dec 2009 | A1 |
20100003008 | Thomas | Jan 2010 | A1 |
20100034167 | Umesh et al. | Feb 2010 | A1 |
20100085947 | Ringland | Apr 2010 | A1 |
20100131584 | Johnson | May 2010 | A1 |
20100299055 | Hilbrandie | Nov 2010 | A1 |
20110131618 | Hasek | Jun 2011 | A1 |
20110136488 | Kuvvali | Jun 2011 | A1 |
20110172018 | Premutico | Jul 2011 | A1 |
20110283333 | Ukkadam | Nov 2011 | A1 |
20110310866 | Kennedy | Dec 2011 | A1 |
20120011265 | Curcio | Jan 2012 | A1 |
20120102140 | Nadas | Apr 2012 | A1 |
20120159555 | Minwalla | Jun 2012 | A1 |
20120164979 | Bachmann | Jun 2012 | A1 |
20120179801 | Luna et al. | Jul 2012 | A1 |
20120182935 | Addepalli | Jul 2012 | A1 |
20120263434 | Wainner | Oct 2012 | A1 |
20120300747 | Westberg | Nov 2012 | A1 |
20130007860 | Burckart | Jan 2013 | A1 |
20130018574 | Adler | Jan 2013 | A1 |
20130031204 | Graham | Jan 2013 | A1 |
20130111052 | Albal | May 2013 | A1 |
20130185452 | Burckart | Jul 2013 | A1 |
20130244711 | Burckart et al. | Sep 2013 | A1 |
20130301584 | Addepalli | Nov 2013 | A1 |
20130332559 | Mas Ivars | Dec 2013 | A1 |
20140155043 | Gell | Jun 2014 | A1 |
20140250468 | Barr | Sep 2014 | A1 |
20150020140 | Takaki | Jan 2015 | A1 |
20150131657 | Oyman | May 2015 | A1 |
20150146611 | Joshi | May 2015 | A1 |
20150256581 | Kolhi | Sep 2015 | A1 |
20160044129 | Bergmann | Feb 2016 | A1 |
20160072911 | Velummylum | Mar 2016 | A1 |
20170330100 | Bevan | Nov 2017 | A1 |
Number | Date | Country |
---|---|---|
1753554 | Mar 2006 | CN |
1852568 | Oct 2006 | CN |
10025725 | Dec 2001 | DE |
1737160 | Dec 2006 | EP |
1968243 | Sep 2008 | EP |
2004062122 | Jul 2004 | WO |
Entry |
---|
International Searching Authority, International Search Report and Written Opinion for International Application No. PCT/EP2012/067509, dated Oct. 19, 2012. |
T. Wu, et al., “Efficient Mobile Content Delivery by Exploiting User Interest Correlation”, IEEE International Conference on Multimedia and Expo, 2004, vol. 2, pp. 1-2. |
G. Cho, “Using Predictive Prefetching to Improve Location Awareness of Mobile Information Service”, Proceedings of the International Conference on Computational Science—Part III, Springer-Verlag, London, UK, 2002 (Abstract Only). |
J. Jing, “Client Server Computing in Mobile Environments”, ACM Computing Surveys, vol. 31, No. 2, Jun. 1999, pp. 121-123, ACM. |
M. Chelliah et al., “A Novel Distance Based Relocation Mechanism to Enhance the Performance of Proxy Cache in a Cellular Network”, The International Arab Journal of Information Technology, vol. 6, No. 3, Jul. 2009, pp. 258-263. |
J. Lee et al., “Advanced Semisoft Handoff Method of Cellular IP Access Networks”, Proceedings of the 18th International Conference on Advanced Information Networking and Applications, vol. 2, 2004, pp. 407, IEEE Computer Society, Washington, DC, US. (Abstract Only). |
K. Curran, “Minimizing the Handoff Latency in Ad-Hoc Networks When Streaming Media to Mobile Devices”, International Journal of Wireless Information Networks, vol. 8, No. 3, Jul. 2001, pp. 177-187, Kluwer Academic Publishers-Plenum Publishers. (Abstract Only). |
Number | Date | Country | |
---|---|---|---|
20140250468 A1 | Sep 2014 | US |