Writing and optimizing code for heterogeneous computing can be difficult, especially if you are starting from scratch.
Imagination has set up a new page where developers can access the source code for an example camera and video post-processing application that leverages the PowerVR Imaging Framework to implement efficient zero-copy flows for a range of image processing kernels. To download the PowerVR Imaging Framework SDK and examples, visit our dedicated GPU compute landing page, register your interest and sign a click-through NDA.
Because the framework requires low-level integration within Android, it is not generally available across all platforms in the market. Applications built using the PowerVR Imaging Framework are therefore not suitable for general release, for example in the Google Play store. Instead, the framework is intended to be used in a number of specific ways, outlined below:
- By silicon vendors that license PowerVR multimedia IP for their hardware designs. Vendors can enable the imaging framework in the Android BSPs they deliver to their customers (OEMs).
- By OEMs that design their products using PowerVR-based SoCs. OEMs can utilize the PowerVR Imaging Framework to develop applications that efficiently leverage all available SoC, which can be pre-packaged with the product.
- By third-party software companies working within Imagination’s software ecosystem, for example as a lead partner to a silicon vendor or OEM. Software companies can use our SDK with any supported reference platform available in the market to prototype new computational photography and computer vision algorithms on a PowerVR Rogue GPU.
The PowerVR Imaging Framework has been used extensively by silicon vendors and OEMs to improve their Android camera applications. The Android Camera HAL includes a number of optional features, which silicon vendors may selectively enable depending on the capabilities of their ISP hardware. Some partners have used the imaging framework to implement some of these optional features using GPU compute, including image de-noising, face detection, video stabilization and HDR (high dynamic range), overcoming limitations with their ISP hardware feature set.
OEMs have used the framework to process data from new types of image sensor, such as stereo sensors which require disparity to be computed to determine depth, and to implement differentiated features that are not available in the stock Android camera such as beautification and augmented reality.
In the automotive market, Tier 1 module makers have used the framework as the foundation of their computer vision software subsystems, for example to implement use cases such as lane departure warning and pedestrian detection, accelerating related workloads such as edge detection and histogram-of-gradients (HoG) calculation.
Partners are also deploying the framework in emerging markets such as smart security cameras, and retail analytics systems that track people in stores to determine demographic information (age, gender and ethnicity, for example) and dwell time.
To download our PowerVR Imaging Framework SDK, please visit https://www.imaginationtech.com/gpucompute
Developers can use the SDK as a starting point by substituting Imagination-supplied example kernels with their own source code. To ensure high performance, this code should be optimized based on the existing programming guidelines downloadable from our webpage. Once an initial implementation has been developed and tested, its performance can be profiled based on the useful metrics presented there.
Finally, the guidelines also offer several advanced suggestions to maximize performance.
In my next article, I will be using the PowerVR Imaging Framework to showcase snippets of OpenCL kernels written for PowerVR Rogue GPUs.
Here is a menu to help you navigate through every article published in this heterogeneous compute series:
- A primer on mobile systems used for heterogeneous computing
- A quick guide to writing OpenCL kernels for PowerVR Rogue GPUs
- Increasing performance and power efficiency in heterogeneous software
- The PowerVR Imaging Framework for Android
- Heterogeneous compute case study: image convolution filtering
- Deep dive: Implementing computer vision with PowerVR
- The PowerVR Imaging Framework camera demo
- Supported zero-copy flows inside the PowerVR Imaging Framework
- Measuring GPU compute performance
- Imagination’s smart, efficient approach to mobile compute
- The complete glossary to heterogeneous compute on PowerVR
Please let us know if you have any feedback on the materials published on the blog and leave a comment on what you’d like to see next. Make sure you also follow us on Twitter (@ImaginationTech, @GPUCompute and @PowerVRInsider) for more news and announcements from Imagination.