Phones have a ton of work to do – mostly things unrelated to being a phone. And we notice when things bog down and work too slowly, and we don’t say nice things about such phones.
So phone manufacturers put accelerators in the phones to do select compute-intensive things more quickly. In fact, it’s a double-bonus: the chore gets done faster and the main processor can do something else at the same time.
The only trick is to get the system to use such offloads when appropriate. And, at this time, Android has no way of doing that. As far as it’s concerned, everything is supposed to be done by the CPU. So it schedules everything on the CPU, and offloads can lay idle. Which is not good for companies like CEVA that provide the means of offloading things. It’s hard to justify the silicon cost of an offload that won’t be used.
So CEVA has just announced an Android Multimedia Framework (or AMF… no, not that AMF…) to provide some plumbing to allow direct access to low-level DSPs and offloads – in particular, for multimedia processing. By leveraging the OpenMAX API, any OpenMAX invocations essentially get trapped and routed over to hardware that can execute it more efficiently than the CPU can. Those offloads may be on the main SoC or on a separate chip. Of course, for this to work, those offloads have to be implemented on a CEVA DSP.
The structure of the system has the CPU managed by Android and the DSPs managed separately by an RTOS (doesn’t matter which one). OpenMAX calls are sent by a host link driver on the CPU side to a link driver on the RTOS side via mailboxes in shared memory. Multiple calls can be “tunneled” together for more efficient use of the CPU’s time.
Because a standard API is used, rather than a proprietary one, then, whenever a future Android version supports offloading, code written for AMF should still work. Android 5.0 may provide this by the end of the year, which would make AMF a nine-month stopgap. But CEVA points out a few “ifs”: that would be true if the release happens on time and if it includes multimedia offload support and if it supports off-chip offloading and if a given phone can be upgraded to 5.0.
You can get more info in their release.