  Mobile computing is one of the main drivers of innovation, yet the future
growth of mobile computing capabilities remains critically threatened by
hardware constraints, such as the already extremely dense transistor packing
and limited battery capacity. The breakdown of Dennard scaling and stagnating
energy storage improvements further amplify these threats. However, the
computational burden we put on our mobile devices is not always justified. In a
myriad of situations the result of a computation is further manipulated,
interpreted, and finally acted upon. This allows for the computation to be
relaxed, so that the result is calculated with "good enough", not perfect
accuracy. For example, results of a Web search may be perfectly acceptable even
if the order of the last few listed items is shuffled, as an end user decides
which of the available links to follow. Similarly, the quality of a
voice-over-IP call may be acceptable, despite being imperfect, as long as the
two involved parties can clearly understand each other. This novel way of
thinking about computation is termed Approximate Computing (AC) and promises to
reduce resource usage, while ensuring that satisfactory performance is
delivered to end-users. AC is already experimented with on various levels of
desktop computer architecture, from the hardware level where incorrect adders
have been designed to sacrifice result correctness for reduced energy
consumption, to compiler-level optimisations that omit certain lines of code to
speed up video encoding. AC is yet to be attempted on mobile devices and in
this article we examine the potential benefits of mobile AC and present an
overview of AC techniques applicable in the mobile domain.
