SlideShare a Scribd company logo
1 of 17
Remote Android Rendering

Joel Isaacson
Ascender Technologies Ltd.
Copyright 2013 Joel Isaacson
The Problem
●

●

●

There are just too many pixels to simply
transmit over a long-haul network.
There are a number of techniques that have
been attempted.
They all entail some compromises:
–

Resolution

–

Accuracy

–

Frame Rate

–

Latency

Ascender Technologies
Ltd

Remote
Rendering
The Problem:
Pixel Count 2008-2011

Copyright Romain Guy, Chet Haas, Google I/O 2011
Ascender Technologies
Ltd

Remote
Rendering
The Problem:
Pixel Count 2008-2012

Ascender Technologies Ltd

Remote
Rendering
Android Graphics Stack

Ascender Technologies Ltd

Remote
Rendering
Choosing How To
Export Graphics
●

Graphics can be exported from any of the four
levels of the graphics stack
–
–

Toolkit level

–

Rendering level

–
●

Application level

Pixel level

We choose to export the rendering level.

Ascender Technologies
Ltd

Remote
Rendering
Exporting The Toolkit
and App
●

●

●

It is technically very complex. Android, to date,
has 17 different toolkit API variants.
Every application can extend the toolkit with
custom widgets (subclasses of
android.view.View).
Clearly impossible.

Ascender Technologies
Ltd

Remote
Rendering
Exporting The Toolkit
and App
●

●

●
●

It is technically very complex. Android, to date,
has 17 different toolkit API variants.
Every application can extend the toolkit with
custom widgets (subclasses of
android.view.View).
Clearly impossible.
This talk will show that effectively exporting
graphics at the toolkit level and even the
application level is in fact possible via the
rendering API.

Ascender Technologies
Ltd

Remote
Rendering
The GUI Rendering Layer Expanded

Ascender Technologies Ltd

Remote
Rendering
NDK App With OpenGL

Ascender Technologies Ltd

Remote
Rendering
NDK App With Skia Rendering

Ascender Technologies Ltd

Remote
Rendering
Android Remote Rendering

Ascender Technologies Ltd

Remote
Rendering
Android Remote Rendering
No GPU on Server Needed

Ascender Technologies Ltd

Remote
Rendering
ICS Rendering Results
●

●

●

Even with simple techniques the compression
ratio is over four orders of magnitude (x10,000
reduction).
The number of bytes per frame, for the GUI
rendering, is typically 300 bytes, as opposed to 416 Mbytes for uncompressed frames.
The compression encodes 2-4 rendering
operations per byte (2-4 bits per rendering
operation).

Ascender Technologies
Ltd

Remote
Rendering
The Google Play Universe
API Coverage

Ascender Technologies Ltd

Remote Rendering
Cloud Gaming
●

●

●

Currently cloud gaming is done with pixel
rendering performed on the remote server. The
frames are H264 encoded and sent over the
network to the remote client.
Our remote rendering technology does not need
special hardware on the server side. The
computational load on the server and network are
minimized.
Playing latency (lag) is minimal.

Ascender Technologies
Ltd

Remote
Rendering
A Perfect Storm
●

It seems that a technological cosmic alignment
has happened:
–

Fast, low-power 64 bit ARM multi-processors
(Cortex A50) with virtualization extensions.

–

Adoption of Android apps in a broad gamut of use
cases, including the enterprise.

–

Ever increasing adoption of cloud based solutions.

–

Possibility of efficiently transporting Android
graphics via a long haul network.

Ascender Technologies Ltd

Remote Rendering

More Related Content

What's hot

Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...
Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...
Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...Bruno Capuano
 
Cesec2015 - Arduino Designer
Cesec2015 - Arduino DesignerCesec2015 - Arduino Designer
Cesec2015 - Arduino Designermelbats
 
Mobile application development
Mobile application developmentMobile application development
Mobile application developmentrohithn
 
Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile Poets
Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile PoetsMobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile Poets
Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile PoetsMobileFest2018
 
Windows 10 on ARM for developers
Windows 10 on ARM for developersWindows 10 on ARM for developers
Windows 10 on ARM for developersWindows Developer
 
Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Craig Dunn
 
Develop Industrial Mixed Reality applications with Unity
Develop Industrial Mixed Reality applications with Unity Develop Industrial Mixed Reality applications with Unity
Develop Industrial Mixed Reality applications with Unity Windows Developer
 
Kubernetes based connected vehicle platform #k8sjp_t1 #k8sjp
Kubernetes based connected vehicle platform #k8sjp_t1 #k8sjp Kubernetes based connected vehicle platform #k8sjp_t1 #k8sjp
Kubernetes based connected vehicle platform #k8sjp_t1 #k8sjp Kenta Suzuki
 
What is Android L ?
What is Android L ?What is Android L ?
What is Android L ?E2LOGY
 
Mobile development with visual studio
Mobile development with visual studioMobile development with visual studio
Mobile development with visual studioSergey Seletsky
 
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!melbats
 
Developing Windows Phone Apps with the Nokia Imaging SDK
Developing Windows Phone Apps with the Nokia Imaging SDKDeveloping Windows Phone Apps with the Nokia Imaging SDK
Developing Windows Phone Apps with the Nokia Imaging SDKNick Landry
 
Cross Platform Mobile Development with Visual Studio 2015 and C++
Cross Platform Mobile Development with Visual Studio 2015 and C++Cross Platform Mobile Development with Visual Studio 2015 and C++
Cross Platform Mobile Development with Visual Studio 2015 and C++Richard Thomson
 
Hacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT CoreHacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT CoreNick Landry
 
aibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@Madridaibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@MadridTomoya Fujita
 
Ionic App Platform Overview
Ionic App Platform Overview Ionic App Platform Overview
Ionic App Platform Overview Ionic Framework
 
Seminar Report on Unreal Engine 4
Seminar Report on Unreal Engine 4Seminar Report on Unreal Engine 4
Seminar Report on Unreal Engine 4AbhiJeet Singh
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To AndroidGoogleTecTalks
 
PhoneGap Day 2016 USA
PhoneGap Day 2016 USAPhoneGap Day 2016 USA
PhoneGap Day 2016 USARyan J. Salva
 

What's hot (20)

Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...
Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...
Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...
 
Cesec2015 - Arduino Designer
Cesec2015 - Arduino DesignerCesec2015 - Arduino Designer
Cesec2015 - Arduino Designer
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile Poets
Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile PoetsMobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile Poets
Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile Poets
 
Windows 10 on ARM for developers
Windows 10 on ARM for developersWindows 10 on ARM for developers
Windows 10 on ARM for developers
 
Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)
 
Develop Industrial Mixed Reality applications with Unity
Develop Industrial Mixed Reality applications with Unity Develop Industrial Mixed Reality applications with Unity
Develop Industrial Mixed Reality applications with Unity
 
Kubernetes based connected vehicle platform #k8sjp_t1 #k8sjp
Kubernetes based connected vehicle platform #k8sjp_t1 #k8sjp Kubernetes based connected vehicle platform #k8sjp_t1 #k8sjp
Kubernetes based connected vehicle platform #k8sjp_t1 #k8sjp
 
What is Android L ?
What is Android L ?What is Android L ?
What is Android L ?
 
Mobile development with visual studio
Mobile development with visual studioMobile development with visual studio
Mobile development with visual studio
 
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
 
Ios vs android
Ios vs androidIos vs android
Ios vs android
 
Developing Windows Phone Apps with the Nokia Imaging SDK
Developing Windows Phone Apps with the Nokia Imaging SDKDeveloping Windows Phone Apps with the Nokia Imaging SDK
Developing Windows Phone Apps with the Nokia Imaging SDK
 
Cross Platform Mobile Development with Visual Studio 2015 and C++
Cross Platform Mobile Development with Visual Studio 2015 and C++Cross Platform Mobile Development with Visual Studio 2015 and C++
Cross Platform Mobile Development with Visual Studio 2015 and C++
 
Hacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT CoreHacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT Core
 
aibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@Madridaibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@Madrid
 
Ionic App Platform Overview
Ionic App Platform Overview Ionic App Platform Overview
Ionic App Platform Overview
 
Seminar Report on Unreal Engine 4
Seminar Report on Unreal Engine 4Seminar Report on Unreal Engine 4
Seminar Report on Unreal Engine 4
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Android
 
PhoneGap Day 2016 USA
PhoneGap Day 2016 USAPhoneGap Day 2016 USA
PhoneGap Day 2016 USA
 

Similar to Remote Android Rendering

Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Developer Network
 
UplinQ - qualcomm® snapdragon™ processors a super gaming platform
UplinQ - qualcomm® snapdragon™ processors a super gaming platformUplinQ - qualcomm® snapdragon™ processors a super gaming platform
UplinQ - qualcomm® snapdragon™ processors a super gaming platformSatya Harish
 
HMS Core Game Solution- create the immersive game world / Fei Tong (Huawei)
HMS Core Game Solution- create the immersive game world / Fei Tong (Huawei)HMS Core Game Solution- create the immersive game world / Fei Tong (Huawei)
HMS Core Game Solution- create the immersive game world / Fei Tong (Huawei)DevGAMM Conference
 
Cloud Graphical Rendering: A New Paradigm
Cloud Graphical Rendering:  A New ParadigmCloud Graphical Rendering:  A New Paradigm
Cloud Graphical Rendering: A New ParadigmJoel Isaacson
 
Raheel Khalid (Envrmnt by Verizon): Cloud XR Experience on 5G with Mobile Edg...
Raheel Khalid (Envrmnt by Verizon): Cloud XR Experience on 5G with Mobile Edg...Raheel Khalid (Envrmnt by Verizon): Cloud XR Experience on 5G with Mobile Edg...
Raheel Khalid (Envrmnt by Verizon): Cloud XR Experience on 5G with Mobile Edg...AugmentedWorldExpo
 
“Jumpstart Your Edge AI Vision Application with New Development Kits from Avn...
“Jumpstart Your Edge AI Vision Application with New Development Kits from Avn...“Jumpstart Your Edge AI Vision Application with New Development Kits from Avn...
“Jumpstart Your Edge AI Vision Application with New Development Kits from Avn...Edge AI and Vision Alliance
 
High End Modeling & Imaging with Intel Iris Pro Graphics
High End Modeling & Imaging with Intel Iris Pro GraphicsHigh End Modeling & Imaging with Intel Iris Pro Graphics
High End Modeling & Imaging with Intel Iris Pro GraphicsIntel® Software
 
Building Applications with the Microsoft Kinect SDK
Building Applications with the Microsoft Kinect SDKBuilding Applications with the Microsoft Kinect SDK
Building Applications with the Microsoft Kinect SDKDataLeader.io
 
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...DevClub_lv
 
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3DJS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3DJSFestUA
 
“Tensilica Processor Cores Enable Sensor Fusion for Robust Perception,” a Pre...
“Tensilica Processor Cores Enable Sensor Fusion for Robust Perception,” a Pre...“Tensilica Processor Cores Enable Sensor Fusion for Robust Perception,” a Pre...
“Tensilica Processor Cores Enable Sensor Fusion for Robust Perception,” a Pre...Edge AI and Vision Alliance
 
[03 1][gpu용 개발자 도구 - parallel nsight 및 axe] miller axe
[03 1][gpu용 개발자 도구 - parallel nsight 및 axe] miller axe[03 1][gpu용 개발자 도구 - parallel nsight 및 axe] miller axe
[03 1][gpu용 개발자 도구 - parallel nsight 및 axe] miller axelaparuma
 
Go native benchmark test su dispositivi x86: java, ndk, ipp e tbb
Go native  benchmark test su dispositivi x86: java, ndk, ipp e tbbGo native  benchmark test su dispositivi x86: java, ndk, ipp e tbb
Go native benchmark test su dispositivi x86: java, ndk, ipp e tbbJooinK
 
AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...
AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...
AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...Amazon Web Services
 
TES Electronic Solutions System on Silicon and Design Capabilities
TES Electronic Solutions System on Silicon and Design CapabilitiesTES Electronic Solutions System on Silicon and Design Capabilities
TES Electronic Solutions System on Silicon and Design CapabilitiesGuenter Zeisel
 
The Intel NUC 12 Extreme Kit is a compact workstation that can handle compute...
The Intel NUC 12 Extreme Kit is a compact workstation that can handle compute...The Intel NUC 12 Extreme Kit is a compact workstation that can handle compute...
The Intel NUC 12 Extreme Kit is a compact workstation that can handle compute...Principled Technologies
 
LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8
LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8
LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8Microsoft Mobile Developer
 
Kinect on Android Pandaboard
Kinect on Android PandaboardKinect on Android Pandaboard
Kinect on Android Pandaboardumituzun84
 
IoT consideration selection
IoT consideration selectionIoT consideration selection
IoT consideration selectionYoss Cohen
 

Similar to Remote Android Rendering (20)

Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform
 
UplinQ - qualcomm® snapdragon™ processors a super gaming platform
UplinQ - qualcomm® snapdragon™ processors a super gaming platformUplinQ - qualcomm® snapdragon™ processors a super gaming platform
UplinQ - qualcomm® snapdragon™ processors a super gaming platform
 
HMS Core Game Solution- create the immersive game world / Fei Tong (Huawei)
HMS Core Game Solution- create the immersive game world / Fei Tong (Huawei)HMS Core Game Solution- create the immersive game world / Fei Tong (Huawei)
HMS Core Game Solution- create the immersive game world / Fei Tong (Huawei)
 
Cloud Graphical Rendering: A New Paradigm
Cloud Graphical Rendering:  A New ParadigmCloud Graphical Rendering:  A New Paradigm
Cloud Graphical Rendering: A New Paradigm
 
Raheel Khalid (Envrmnt by Verizon): Cloud XR Experience on 5G with Mobile Edg...
Raheel Khalid (Envrmnt by Verizon): Cloud XR Experience on 5G with Mobile Edg...Raheel Khalid (Envrmnt by Verizon): Cloud XR Experience on 5G with Mobile Edg...
Raheel Khalid (Envrmnt by Verizon): Cloud XR Experience on 5G with Mobile Edg...
 
“Jumpstart Your Edge AI Vision Application with New Development Kits from Avn...
“Jumpstart Your Edge AI Vision Application with New Development Kits from Avn...“Jumpstart Your Edge AI Vision Application with New Development Kits from Avn...
“Jumpstart Your Edge AI Vision Application with New Development Kits from Avn...
 
High End Modeling & Imaging with Intel Iris Pro Graphics
High End Modeling & Imaging with Intel Iris Pro GraphicsHigh End Modeling & Imaging with Intel Iris Pro Graphics
High End Modeling & Imaging with Intel Iris Pro Graphics
 
Building Applications with the Microsoft Kinect SDK
Building Applications with the Microsoft Kinect SDKBuilding Applications with the Microsoft Kinect SDK
Building Applications with the Microsoft Kinect SDK
 
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
 
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3DJS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
 
“Tensilica Processor Cores Enable Sensor Fusion for Robust Perception,” a Pre...
“Tensilica Processor Cores Enable Sensor Fusion for Robust Perception,” a Pre...“Tensilica Processor Cores Enable Sensor Fusion for Robust Perception,” a Pre...
“Tensilica Processor Cores Enable Sensor Fusion for Robust Perception,” a Pre...
 
[03 1][gpu용 개발자 도구 - parallel nsight 및 axe] miller axe
[03 1][gpu용 개발자 도구 - parallel nsight 및 axe] miller axe[03 1][gpu용 개발자 도구 - parallel nsight 및 axe] miller axe
[03 1][gpu용 개발자 도구 - parallel nsight 및 axe] miller axe
 
Go native benchmark test su dispositivi x86: java, ndk, ipp e tbb
Go native  benchmark test su dispositivi x86: java, ndk, ipp e tbbGo native  benchmark test su dispositivi x86: java, ndk, ipp e tbb
Go native benchmark test su dispositivi x86: java, ndk, ipp e tbb
 
Really fast Android
Really fast AndroidReally fast Android
Really fast Android
 
AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...
AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...
AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...
 
TES Electronic Solutions System on Silicon and Design Capabilities
TES Electronic Solutions System on Silicon and Design CapabilitiesTES Electronic Solutions System on Silicon and Design Capabilities
TES Electronic Solutions System on Silicon and Design Capabilities
 
The Intel NUC 12 Extreme Kit is a compact workstation that can handle compute...
The Intel NUC 12 Extreme Kit is a compact workstation that can handle compute...The Intel NUC 12 Extreme Kit is a compact workstation that can handle compute...
The Intel NUC 12 Extreme Kit is a compact workstation that can handle compute...
 
LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8
LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8
LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8
 
Kinect on Android Pandaboard
Kinect on Android PandaboardKinect on Android Pandaboard
Kinect on Android Pandaboard
 
IoT consideration selection
IoT consideration selectionIoT consideration selection
IoT consideration selection
 

Recently uploaded

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Remote Android Rendering

  • 1. Remote Android Rendering Joel Isaacson Ascender Technologies Ltd. Copyright 2013 Joel Isaacson
  • 2. The Problem ● ● ● There are just too many pixels to simply transmit over a long-haul network. There are a number of techniques that have been attempted. They all entail some compromises: – Resolution – Accuracy – Frame Rate – Latency Ascender Technologies Ltd Remote Rendering
  • 3. The Problem: Pixel Count 2008-2011 Copyright Romain Guy, Chet Haas, Google I/O 2011 Ascender Technologies Ltd Remote Rendering
  • 4. The Problem: Pixel Count 2008-2012 Ascender Technologies Ltd Remote Rendering
  • 5. Android Graphics Stack Ascender Technologies Ltd Remote Rendering
  • 6. Choosing How To Export Graphics ● Graphics can be exported from any of the four levels of the graphics stack – – Toolkit level – Rendering level – ● Application level Pixel level We choose to export the rendering level. Ascender Technologies Ltd Remote Rendering
  • 7. Exporting The Toolkit and App ● ● ● It is technically very complex. Android, to date, has 17 different toolkit API variants. Every application can extend the toolkit with custom widgets (subclasses of android.view.View). Clearly impossible. Ascender Technologies Ltd Remote Rendering
  • 8. Exporting The Toolkit and App ● ● ● ● It is technically very complex. Android, to date, has 17 different toolkit API variants. Every application can extend the toolkit with custom widgets (subclasses of android.view.View). Clearly impossible. This talk will show that effectively exporting graphics at the toolkit level and even the application level is in fact possible via the rendering API. Ascender Technologies Ltd Remote Rendering
  • 9. The GUI Rendering Layer Expanded Ascender Technologies Ltd Remote Rendering
  • 10. NDK App With OpenGL Ascender Technologies Ltd Remote Rendering
  • 11. NDK App With Skia Rendering Ascender Technologies Ltd Remote Rendering
  • 12. Android Remote Rendering Ascender Technologies Ltd Remote Rendering
  • 13. Android Remote Rendering No GPU on Server Needed Ascender Technologies Ltd Remote Rendering
  • 14. ICS Rendering Results ● ● ● Even with simple techniques the compression ratio is over four orders of magnitude (x10,000 reduction). The number of bytes per frame, for the GUI rendering, is typically 300 bytes, as opposed to 416 Mbytes for uncompressed frames. The compression encodes 2-4 rendering operations per byte (2-4 bits per rendering operation). Ascender Technologies Ltd Remote Rendering
  • 15. The Google Play Universe API Coverage Ascender Technologies Ltd Remote Rendering
  • 16. Cloud Gaming ● ● ● Currently cloud gaming is done with pixel rendering performed on the remote server. The frames are H264 encoded and sent over the network to the remote client. Our remote rendering technology does not need special hardware on the server side. The computational load on the server and network are minimized. Playing latency (lag) is minimal. Ascender Technologies Ltd Remote Rendering
  • 17. A Perfect Storm ● It seems that a technological cosmic alignment has happened: – Fast, low-power 64 bit ARM multi-processors (Cortex A50) with virtualization extensions. – Adoption of Android apps in a broad gamut of use cases, including the enterprise. – Ever increasing adoption of cloud based solutions. – Possibility of efficiently transporting Android graphics via a long haul network. Ascender Technologies Ltd Remote Rendering

Editor's Notes

  1. For many years it has been possible to access graphical application via remote desktop software. In recent years Cloud computing has become more prominent and is a crucial computing paradigm. Android has captured a large market share. The challenge addressed in this talk is to efficiently export Android graphics so as to support standard Android apps remotely.
  2. Current techniques to provide remote graphic access are pixel based. An example of pixel-based remote Android graphics is: Amazon's test drive, which allows remote demos of Android apps before purchase. Pixel based solutions force compromise on all four performance properties: ● Resolution ● Accuracy● Frame Rate● Latency Our techniques allow un-compromised performance coupled with very low network bandwidth.
  3. This slide was presented at Google I/O May 2011. It shows the increase of pixel count as opposed to memory bandwidth as a function of time. It was introduced to motivate use of hardware rendering (OpenGL) as opposed to software rendering (Skia), Guy and Haas argue that the memory bus is just too slow to allow software rendering. The argument is much more powerful when applied to network bandwidth which is orders of magnitude slower than the internal memory bus.
  4. Here the original slide (the blue rectangle) is updated to current display resolutions. In just a year and a half the number of pixels (e.g. Nexus 10) has increased by a factor of four. Both the internal memory bandwidth and the network bandwidth are only slowly improving. This increase in pixel counts makes remote Android graphics more challenging. Another change that makes remote Android graphics even more difficult is the 60 frame/sec standard that has been adopted since ICS (Ice Cream Sandwich)..
  5. Normally Android apps are installed locally on the local device. No remote bandwidth is needed to view the graphics. Remote graphics is typically done by exporting pixels at the Framebuffer level. For a 4 Mega pixel device (e.g. Nexus 10) at 60 fps a 1 Gbytes/sec network is needed. Even if a 100x (100 fold reduction of data volume) compression codec is used, a 10 Mbytes (80 Mbits)/sec network is needed.
  6. As shown in the previous slide, the volume of network data needed to export the graphic stream increases as we approach the pixel level. The higher the layer exported, the more compact and efficient the graphical representation. We use the rendering layer to export graphics. The volume of data needed is approximately 100 times less than the pixel level.
  7. Exporting the app at the toolkit level would undoubtedly be more efficient, but a direct approach will not work. The toolkit is dynamically extensible and there is no way to reference on both the server and client side the same toolkit elements.
  8. The data compression algorithm reduces the volume of data to less than the toolkit level. The rendering stream is scanned for sequences of commands that are reversed engineered into both application and toolkit level routines. These routines are entered into dictionaries shared by both the encoding (server) and decoding (client) ends. Long sequences of rendering commands are sent by simple reference to the dictionary entries from the server to the client. More details can be found on the URL: http://www.ascender.com/remote-graphics
  9. There are four natural targets for exporting graphics in the rendering layer in the ICS graphic stack. We tested the first three ¬, ­, ® by building prototypes. The fourth target, ¯, is technically very similar to ¬. The right branch of the rendering stack (¬, ­) is part of Android since the Honeycomb version. It is usually called Hardware rendering. The left branch of the rendering stack (®, ¯) was present in the Android graphic stack from its first release. It is usually called Software rendering.
  10. Android allows native OpenGL apps to be written using the NDK. We remotely accessed these applications by using the our remote enabled OpenGL (­) rendering layer
  11. Android allows native Skia (software rendering) apps to be written using the NDK. We remotely accessed these applications by using our remote enabled Skia (®) rendering layer.
  12. This slide illustrates the systems architecture of the remote server and the local client. We send the graphic rendering from the server to the client in a purely simplex (one-way) connection. Thus, no round trip delays are incurred in the graphics streaming. User interactions will cause round trip latencies.
  13. This slide illustrates an important feature of our remote graphics system. Since the rendered pixels are not needed on the remote side only the upper part of the rendering interface need be executed on the remote end. Thus for hardware rendering (OpenGL) the lower level, which is dependent on a hardware GPU, is not needed. This greatly reduces the cost of running the graphic stack on the remote side. For software rendering (Skia) the lower level, which actually does the computationally intensive pixel rendering, is not needed. This greatly reduces the computational needs on the remote side.
  14. The compression ratio can be understood to be a product of two factors: 1) The rendering layer is about 100 times more efficient for remote graphics than the pixel layer. 2) The compression routines add an additional factor of about 100. We can thus render remotely at 60 fps with a bandwidth of typically less than 20 Kbytes/sec. With no compromise of ● Resolution ● Accuracy● Frame Rate● Latency
  15. The reason that so many rendering API's are supported relates to coverage. In the context of an Android app store it is the percentage of apps that can be supported via remote rendering. You would like to remotely support a large percentage of unaltered apps as they currently exist in the app store. The above Venn diagram illustrates the overlapping coverages for each rendering API. For example: to support Java ICS apps, which render to OpenGL ES 2.0., it is sufficient to support the yellow OpenGLRender API (¬). To support a Java Froyo app the green Canvas (¯) or blue Skia (®) API is sufficient. More sophisticated apps might need red OpenGL ES 2.0 API (­) support.
  16. It is instructive to contrast our approach with the Nvidia Grid or OnLive cloud gaming systems. Both need expensive hardware and use a large amount of network bandwidth.
  17. The enabling technologies that allow for Remote Android Graphics have many uses: Cloud computing, remote app server App library, subscription model App demos Remote enterprise applications Set-top boxes Cloud Gaming