Demand Reduction
Investigating the effect of reducing network usage on energy usage of mobile devices.As previously discussed in the introduction, reducing the volume of network data used has significant potential benefits for the user of a mobile device, regarding both reduced energy consumption and also reduced data costs.
We will explore various methods by which the volume of information transferred can be reduced: precaching and local computation; as well as other ways, including blocking of advertisements and compression.
Precaching
Similar to caching, precaching (also called prefetching) involves the storage of data locally, so that when (or if) it is required, instead of being transmitted over the network it is simply loaded from the storage. As opposed to regular caching, which simply preserves information already downloaded by request of the user, precaching techniques download information ahead of time, which it is anticipated will be required in the future. This can have significant advantages, but also requires more complex algorithms to maximise the efficiency of the system, to prevent unnecessary resource consumption while ensuring as much useful data as possible is precached (1) (2).
The main opportunities for precaching arise when mobile devices are plugged into the mains, or when on WiFi rather than cellular connections. When on charge, the power overhead of precaching is effectively free, and when on WiFi the power used by downloading is significantly reduced. Precaching techniques for web browsing data and app data have been developed and could be rolled out even to older devices to improve energy consumption (3) (4).
Local Computation
Alternatively, instead of downloading large compiled data sets, it is possible for the operating system or apps to download "source" material, and compile it on the device as required. This could lead to significant savings on data transmitted as these source materials tend to be smaller than the compiled versions. Also, due to their size more of these files can be cached, further reducing the amount of data transmission needed.
One current application of this technique is map viewing applications, where maps are traditionally distributed as a grid of bitmap images. These image tiles, as they are called, are very inefficient — whenever the view of the map is moved or the zoom level increased or decreased a new set of tiles must be downloaded. There is also a high degree of redundancy in the tiles due to repetition of icons and shapes. If sets of vector data are used instead of the bitmap tiles, styling information need only be transmitted once, and the map data itself can be much smaller as only the information needed to draw the lines is transmitted. Downloading vector data and rendering it on the device can sometimes even eliminate the requirement for a network completely, as maps for a large area can be downloaded and stored on the device (6).
Another application of this technique is local speech recognition. Normally, voice samples are sent over the network to a central server that performs the analysis and returns the result, also over the network. However, more advanced machine learning and acoustic modelling techniques have allowed local recognition to be feasible. Google has developed a system so that the processing of speech can be done directly on the device, while still maintaining a reasonable error rate. Furthermore, only 20MiB of data are required to perform this analysis, so this technology can be rolled out even to older devices with limited storage space (5).
Other Opportunities: Adblocking and Compression
Users' reluctance to pay for app licenses or subscriptions to online services means that the only feasible method of monetising these endeavours is through the use of advertisements. Thus adverts are widespread among mobile apps and on the web. Excepting privacy and manipulatory concerns with this type of marketing, most users find these adverts innocuous — they do not have to pay for the service they receive, and one can ignore most adverts. However, it has been shown that adding ads to a typical app can increase the total energy consumption of the mobile device by as much as 30–40%. In addition to this, significant quantities of CPU time and network bandwidth are used by the code dealing with the ads, leading to additional speed and network cost penalties to users, as well as additional time spent by developers to optimise this code (7) (8) (9) (10).
Therefore, blocking of adverts can save significant quantities of energy on mobile devices, and have other benefits for users. Operating system and platform limitations of mobile devices have so far limited uptake of mobile ad blocking, with only around 7% of devices utilising the technology. However, with increased integration and user awareness this number could well increase.
Compression of data is a method of reducing its volume during transit or storage, by the application of a reversible set of transformations that remove redundancies. Compression of data during transit can help to reduce the amount of network traffic required, and thus saving energy. Various compression algorithms exist, with different tradeoffs between compression ratio (the ratio of the size before compression to the size afterwards), the time taken to compress data and the time taken to decompress data. Increased usage of data compression on the web, and for data transmissions by apps could decrease energy consumption (11) (12).