bulat-icon  Articles  
 
 

[+]  Articles

 
     
   
 
 

Android on iMX7

We all know that Android is a powerful operating system which involves extensive use of Graphics efficiently. GPU (Graphics Processing Unit) plays a great role in Android for smooth rendering of frames which is mandatory for gaming applications.
But can iMX7 handle such GPU extensive process? Firstly, does iMX7 have GPU?
Let us analyze what is happening behind the screen, and come up with a solution.
Before diving deep into the working of the GPU let us make sure of certain facts about iMX7
  • iMX7 does not have GPU
  • iMX7 does not have VPU (Video Processing Unit used for video encoding and decoding)
  • iMX7 has Neon core
  • iMX7 has PxP (Pixel Pipeline) Engine
As said above, though iMX7 does not have GPU, it has other aiding components like Neon core and PXP engine to render graphics components in Android system.

The graphics code flow of iMX6 and iMX7

The graphics code flow of iMX6 and iMX7

How iMX7 AOSP differs from a conventional AOSP?

 
There are certain changes made on the android framework to achieve smooth performance.
  • In conventional AOSP (Android Open Source Project) there is an addition layer called presentation layer, responsible for creating a framebuffer with the basic DPI of the system. Any display connected to the android device will be derived from this presentation layer. This additional scaling from the presentation layer to the display connected has been removed so that Hardware Composer creates one display buffer which directly represents the physical display.
  • When we have GPU, surfaceflinger will take care of merging source from multiple producer and present the buffer to the consumer. Incase of iMX7, there is a software component called pixelflinger which uses Neon core for optimizing software rendering.
  • iMX7 also makes use of pixel pipelines to do tasks like scaling, color space conversion and rotation.

But, can the above things help iMX7 run Android?

 
Yes, but we have one factor which has to be taken under consideration - the display resolution. Having a display with smaller resolution will avoid CPU overloading and bring smooth performance.
At e-con Systems, we tested the performance of running Android on iMX7, across various display resolutions. We found acceptable performance in a LCD with a resolution of 480x272. Keeping the display resolution very low, we can achieve smooth rendering while we work with Android OS. If we check the resolutions of Android Wearables like LG, MOTO, Samsung Gears, Asus, etc. these have displays with resolution lesser than the benchmark display of 480x272.

Performance of iMX7 across different screen resolutions

RESOLUTION CPU USAGE (for page transition) UI Performance
1280 x 720 98 % Very poor
640 x 480 95 % Very poor
480 x 272 Less than 60% Acceptable UI page transition

Conclusion

The main advantage of the iMX7 is the power efficiency. NXP is able to achieve lower power consumption by making the processor in a new "Low Power State Retention (LPSR) mode" that is said to consume only 250 μW. So, along with the reduced resolution it is possible to build wearable android devices with extended battery backup.