SlideShare a Scribd company logo
1 of 3
Intro to Android Video Optimization
Overview
This short summary is intended for C/C++ developers which haven’t worked with
Android before and would like to use Android for Signal, Image and Video processing
Applications.

       Read ALL the instruction page before starting installations




Environment Setup
Goal: Understand how to use the Android development tools and Eclipse IDE.

Task: Install the tools and run an SDK sample from this list.



Choose a development OS (Windows / Linux /MAC) All builds and development should
be done on this OS.

Instructions for installation in http://developer.android.com/sdk/index.html download
both SDK and NDK (include installation of Eclipse, ADT and Phone USB driver).

Detailed instructions in the presentation.

Alternatively try performing installation according to OpenCV instructions below.




Working with ADB
Goal: Understand how to work with the ADB.

Task: Check the device is connected, pull and push files to/from the device and reset
the device.



ADB is the Android Debug Bridge, it assist developers in connecting and controlling the
device.

More on ADB commands in this wiki.




     20 Giborey Israel, Sappir Industrial Park, Netanya, Israel | www.mobilevideotech.com
                    e-mail:info@dsp-ip.com | Telephone:+972.545.313092
Basic JNI compilation
Goal: Understand JNI and how to work with native C++ code.

Task: Compile and run a simple native application from the NDK samples, like the
“Hello-JNI”. Building NDK samples requires separate compilation of the C/C++ part and
the Java part. Understand the JNI mechanism.




Working with Camera
Goal: Understand how to work with the camera.

Task: Compile Run and understand “Sample 0”

Understand how to work with the camera try OpenCV samples for Android

Read more at OpenCV Android Pages .



       OpenCV Android samples are run with C++ API while FastCV uses C API




Optimization for ARM
Goal: Understand optimization options for Android

There are several methods to optimize code for ARM:

   1. Using already optimized functions distributed by SoC vendors, for example:
      FastCV. More on FastCV Optimization in this slide.

   2. Proprietary functions which don’t appear in such libraries require optimization
      for VFU / NEON.

Task: earn more about NEON optimization review the “Hello-NEON” NDK sample.




     20 Giborey Israel, Sappir Industrial Park, Netanya, Israel | www.mobilevideotech.com
                    e-mail:info@dsp-ip.com | Telephone:+972.545.313092
Working with SDCard
Prepare a RAW YUV video which is used to test the algorithm.

Copy the YUV input file to the SDCard using:

adb push <FileName.YUV> </SDCard/Path>

Get the output file from the device using:

adb pull “<Path>/<RawYUVOutFileName.yuv>” .



Use standard file operations to read frames from the file and pass them to image/video
processing mechanism:

FILE* MyInFile;

FILE* MyOutFile;

MyFile = fopen(“<Path>/<RawYUVInFileName.yuv>”, “rb”);

MyFile = fopen(“<Path>/<RawYUVOutFileName.yuv>”, “wb”);

Use standard fread / fwrite commands to manipulate the file




     20 Giborey Israel, Sappir Industrial Park, Netanya, Israel | www.mobilevideotech.com
                    e-mail:info@dsp-ip.com | Telephone:+972.545.313092

More Related Content

What's hot

What's hot (8)

Sandeep_Resume
Sandeep_ResumeSandeep_Resume
Sandeep_Resume
 
CI CD Jenkins for Swift Deployment
CI CD Jenkins for Swift DeploymentCI CD Jenkins for Swift Deployment
CI CD Jenkins for Swift Deployment
 
Using PhoneGap Command Line
Using PhoneGap Command LineUsing PhoneGap Command Line
Using PhoneGap Command Line
 
techSocAndroid1
techSocAndroid1techSocAndroid1
techSocAndroid1
 
COSCUP 2017 FACE OFF
COSCUP 2017 FACE OFFCOSCUP 2017 FACE OFF
COSCUP 2017 FACE OFF
 
Optimized Cross Platform Development
Optimized Cross Platform DevelopmentOptimized Cross Platform Development
Optimized Cross Platform Development
 
Useful android developer tools to get associated with
Useful android developer tools to get associated with Useful android developer tools to get associated with
Useful android developer tools to get associated with
 
Getting Started with Android Development
Getting Started with Android DevelopmentGetting Started with Android Development
Getting Started with Android Development
 

Viewers also liked

Product wise computer vision development
Product wise computer vision developmentProduct wise computer vision development
Product wise computer vision development
Yoss Cohen
 
Adobe HTTP Streaming
Adobe HTTP StreamingAdobe HTTP Streaming
Adobe HTTP Streaming
Yoss Cohen
 
Voip video business models
Voip video business modelsVoip video business models
Voip video business models
Yoss Cohen
 

Viewers also liked (20)

Hands-on Video Course - "RAW Video"
Hands-on Video Course - "RAW Video" Hands-on Video Course - "RAW Video"
Hands-on Video Course - "RAW Video"
 
Alon and dora
Alon and doraAlon and dora
Alon and dora
 
Telco 2.0
Telco 2.0Telco 2.0
Telco 2.0
 
Recommendation Systems VTLV
Recommendation Systems VTLVRecommendation Systems VTLV
Recommendation Systems VTLV
 
Voice coding trends
Voice coding trendsVoice coding trends
Voice coding trends
 
Adobe AIR Seminar
Adobe AIR SeminarAdobe AIR Seminar
Adobe AIR Seminar
 
Introduction to Actionscript3
Introduction to Actionscript3Introduction to Actionscript3
Introduction to Actionscript3
 
IPTV and VoIP Trends
IPTV and VoIP Trends IPTV and VoIP Trends
IPTV and VoIP Trends
 
OpenSocial
OpenSocialOpenSocial
OpenSocial
 
Video quality testing
Video quality testingVideo quality testing
Video quality testing
 
Adobe OSMF Overview
Adobe OSMF OverviewAdobe OSMF Overview
Adobe OSMF Overview
 
ActionScript Design Patterns
ActionScript Design Patterns ActionScript Design Patterns
ActionScript Design Patterns
 
Apple's live http streaming
Apple's live http streamingApple's live http streaming
Apple's live http streaming
 
FEC & File Multicast
FEC & File MulticastFEC & File Multicast
FEC & File Multicast
 
Product wise computer vision development
Product wise computer vision developmentProduct wise computer vision development
Product wise computer vision development
 
Adobe HTTP Streaming
Adobe HTTP StreamingAdobe HTTP Streaming
Adobe HTTP Streaming
 
Flash Video Streaming Business Models
Flash Video Streaming Business ModelsFlash Video Streaming Business Models
Flash Video Streaming Business Models
 
Voip video business models
Voip video business modelsVoip video business models
Voip video business models
 
Mobile Video Advertisement
Mobile Video AdvertisementMobile Video Advertisement
Mobile Video Advertisement
 
#Mobile #Journalism #MLearning Columbia Teachers College April 2, 2015
#Mobile #Journalism #MLearning Columbia Teachers College April 2, 2015#Mobile #Journalism #MLearning Columbia Teachers College April 2, 2015
#Mobile #Journalism #MLearning Columbia Teachers College April 2, 2015
 

Similar to Video optimization for android - Part I

Native Android for Windows Developers
Native Android for Windows DevelopersNative Android for Windows Developers
Native Android for Windows Developers
Yoss Cohen
 
Springboard & OpenCV
Springboard & OpenCVSpringboard & OpenCV
Springboard & OpenCV
Cruise Chen
 
Android chapter02-setup1-sdk
Android chapter02-setup1-sdkAndroid chapter02-setup1-sdk
Android chapter02-setup1-sdk
Tran Le Hoan
 
03 Beginning Android Application Development
03 Beginning Android Application Development03 Beginning Android Application Development
03 Beginning Android Application Development
Arief Gunawan
 
androidPramming.ppt
androidPramming.pptandroidPramming.ppt
androidPramming.ppt
BijayKc16
 
Android installation
Android installationAndroid installation
Android installation
Durai S
 

Similar to Video optimization for android - Part I (20)

Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Anveshan android
Anveshan androidAnveshan android
Anveshan android
 
Native Android for Windows Developers
Native Android for Windows DevelopersNative Android for Windows Developers
Native Android for Windows Developers
 
How to create android applications
How to create android applicationsHow to create android applications
How to create android applications
 
Module-I_Introduction-to-Android.pptx
Module-I_Introduction-to-Android.pptxModule-I_Introduction-to-Android.pptx
Module-I_Introduction-to-Android.pptx
 
Methods to set up android app development environment
Methods to set up android app development environmentMethods to set up android app development environment
Methods to set up android app development environment
 
Springboard & OpenCV
Springboard & OpenCVSpringboard & OpenCV
Springboard & OpenCV
 
Android chapter02-setup1-sdk
Android chapter02-setup1-sdkAndroid chapter02-setup1-sdk
Android chapter02-setup1-sdk
 
Android programming-basics
Android programming-basicsAndroid programming-basics
Android programming-basics
 
03 Beginning Android Application Development
03 Beginning Android Application Development03 Beginning Android Application Development
03 Beginning Android Application Development
 
androidPramming.ppt
androidPramming.pptandroidPramming.ppt
androidPramming.ppt
 
Android installation
Android installationAndroid installation
Android installation
 
Android Development Tools and Installation
Android Development Tools and InstallationAndroid Development Tools and Installation
Android Development Tools and Installation
 
Droidcon uk2012 androvm
Droidcon uk2012 androvmDroidcon uk2012 androvm
Droidcon uk2012 androvm
 
Android tools for testers
Android tools for testersAndroid tools for testers
Android tools for testers
 
Android tutorial1
Android tutorial1Android tutorial1
Android tutorial1
 
Appium- part 1
Appium- part 1Appium- part 1
Appium- part 1
 
Modifying Android Apps Without Source Code with Microsoft Visual Studio Code
Modifying Android Apps Without Source Code with Microsoft Visual Studio CodeModifying Android Apps Without Source Code with Microsoft Visual Studio Code
Modifying Android Apps Without Source Code with Microsoft Visual Studio Code
 
Android app upload
Android app uploadAndroid app upload
Android app upload
 
Notes Unit2.pptx
Notes Unit2.pptxNotes Unit2.pptx
Notes Unit2.pptx
 

More from Yoss Cohen

More from Yoss Cohen (20)

Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
open platform for swarm training
open platform for swarm training open platform for swarm training
open platform for swarm training
 
Deep Learning - system view
Deep Learning - system viewDeep Learning - system view
Deep Learning - system view
 
Dspip deep learning syllabus
Dspip deep learning syllabusDspip deep learning syllabus
Dspip deep learning syllabus
 
IoT consideration selection
IoT consideration selectionIoT consideration selection
IoT consideration selection
 
IoT evolution
IoT evolutionIoT evolution
IoT evolution
 
Nvidia jetson nano bringup
Nvidia jetson nano bringupNvidia jetson nano bringup
Nvidia jetson nano bringup
 
Autonomous car teleportation architecture
Autonomous car teleportation architectureAutonomous car teleportation architecture
Autonomous car teleportation architecture
 
Motion estimation overview
Motion estimation overviewMotion estimation overview
Motion estimation overview
 
Computer Vision - Image Filters
Computer Vision - Image FiltersComputer Vision - Image Filters
Computer Vision - Image Filters
 
Intro to machine learning with scikit learn
Intro to machine learning with scikit learnIntro to machine learning with scikit learn
Intro to machine learning with scikit learn
 
DASH and HTTP2.0
DASH and HTTP2.0DASH and HTTP2.0
DASH and HTTP2.0
 
HEVC Definitions and high-level syntax
HEVC Definitions and high-level syntaxHEVC Definitions and high-level syntax
HEVC Definitions and high-level syntax
 
Introduction to HEVC
Introduction to HEVCIntroduction to HEVC
Introduction to HEVC
 
FFMPEG on android
FFMPEG on androidFFMPEG on android
FFMPEG on android
 
HEVC / H265 Hands-On course
HEVC / H265 Hands-On courseHEVC / H265 Hands-On course
HEVC / H265 Hands-On course
 
Web video standards
Web video standardsWeb video standards
Web video standards
 
3D Video Programming for Android
3D Video Programming for Android3D Video Programming for Android
3D Video Programming for Android
 
Analog Video
Analog Video Analog Video
Analog Video
 
WiFi Display
WiFi DisplayWiFi Display
WiFi Display
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 

Video optimization for android - Part I

  • 1. Intro to Android Video Optimization Overview This short summary is intended for C/C++ developers which haven’t worked with Android before and would like to use Android for Signal, Image and Video processing Applications. Read ALL the instruction page before starting installations Environment Setup Goal: Understand how to use the Android development tools and Eclipse IDE. Task: Install the tools and run an SDK sample from this list. Choose a development OS (Windows / Linux /MAC) All builds and development should be done on this OS. Instructions for installation in http://developer.android.com/sdk/index.html download both SDK and NDK (include installation of Eclipse, ADT and Phone USB driver). Detailed instructions in the presentation. Alternatively try performing installation according to OpenCV instructions below. Working with ADB Goal: Understand how to work with the ADB. Task: Check the device is connected, pull and push files to/from the device and reset the device. ADB is the Android Debug Bridge, it assist developers in connecting and controlling the device. More on ADB commands in this wiki. 20 Giborey Israel, Sappir Industrial Park, Netanya, Israel | www.mobilevideotech.com e-mail:info@dsp-ip.com | Telephone:+972.545.313092
  • 2. Basic JNI compilation Goal: Understand JNI and how to work with native C++ code. Task: Compile and run a simple native application from the NDK samples, like the “Hello-JNI”. Building NDK samples requires separate compilation of the C/C++ part and the Java part. Understand the JNI mechanism. Working with Camera Goal: Understand how to work with the camera. Task: Compile Run and understand “Sample 0” Understand how to work with the camera try OpenCV samples for Android Read more at OpenCV Android Pages . OpenCV Android samples are run with C++ API while FastCV uses C API Optimization for ARM Goal: Understand optimization options for Android There are several methods to optimize code for ARM: 1. Using already optimized functions distributed by SoC vendors, for example: FastCV. More on FastCV Optimization in this slide. 2. Proprietary functions which don’t appear in such libraries require optimization for VFU / NEON. Task: earn more about NEON optimization review the “Hello-NEON” NDK sample. 20 Giborey Israel, Sappir Industrial Park, Netanya, Israel | www.mobilevideotech.com e-mail:info@dsp-ip.com | Telephone:+972.545.313092
  • 3. Working with SDCard Prepare a RAW YUV video which is used to test the algorithm. Copy the YUV input file to the SDCard using: adb push <FileName.YUV> </SDCard/Path> Get the output file from the device using: adb pull “<Path>/<RawYUVOutFileName.yuv>” . Use standard file operations to read frames from the file and pass them to image/video processing mechanism: FILE* MyInFile; FILE* MyOutFile; MyFile = fopen(“<Path>/<RawYUVInFileName.yuv>”, “rb”); MyFile = fopen(“<Path>/<RawYUVOutFileName.yuv>”, “wb”); Use standard fread / fwrite commands to manipulate the file 20 Giborey Israel, Sappir Industrial Park, Netanya, Israel | www.mobilevideotech.com e-mail:info@dsp-ip.com | Telephone:+972.545.313092