SlideShare a Scribd company logo
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

PPTX
Prezentare multimedia
PPTX
Prezentare multimedia
PDF
20160929 android taipei_tensorflow
PPT
Android SDK and PhoneGap
ODP
Android tutorials1 install_ide
PDF
IO17就是講義氣
PPTX
Ppt of tutorial android app
PPTX
Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021
Prezentare multimedia
Prezentare multimedia
20160929 android taipei_tensorflow
Android SDK and PhoneGap
Android tutorials1 install_ide
IO17就是講義氣
Ppt of tutorial android app
Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021

What's hot (8)

DOC
Sandeep_Resume
PDF
CI CD Jenkins for Swift Deployment
PDF
Using PhoneGap Command Line
ODP
techSocAndroid1
PPTX
COSCUP 2017 FACE OFF
PDF
Optimized Cross Platform Development
PDF
Useful android developer tools to get associated with
PDF
Getting Started with Android Development
Sandeep_Resume
CI CD Jenkins for Swift Deployment
Using PhoneGap Command Line
techSocAndroid1
COSCUP 2017 FACE OFF
Optimized Cross Platform Development
Useful android developer tools to get associated with
Getting Started with Android Development
Ad

Viewers also liked (20)

PDF
Hands-on Video Course - "RAW Video"
PPT
Alon and dora
PPT
Telco 2.0
PPT
Recommendation Systems VTLV
PDF
Voice coding trends
PPT
Adobe AIR Seminar
PPT
Introduction to Actionscript3
PDF
IPTV and VoIP Trends
PPT
OpenSocial
PDF
Video quality testing
PDF
Adobe OSMF Overview
PPT
ActionScript Design Patterns
PPT
Apple's live http streaming
PPT
FEC & File Multicast
PDF
Product wise computer vision development
PDF
Adobe HTTP Streaming
PPT
Flash Video Streaming Business Models
PDF
Voip video business models
PPT
Mobile Video Advertisement
PPT
#Mobile #Journalism #MLearning Columbia Teachers College April 2, 2015
Hands-on Video Course - "RAW Video"
Alon and dora
Telco 2.0
Recommendation Systems VTLV
Voice coding trends
Adobe AIR Seminar
Introduction to Actionscript3
IPTV and VoIP Trends
OpenSocial
Video quality testing
Adobe OSMF Overview
ActionScript Design Patterns
Apple's live http streaming
FEC & File Multicast
Product wise computer vision development
Adobe HTTP Streaming
Flash Video Streaming Business Models
Voip video business models
Mobile Video Advertisement
#Mobile #Journalism #MLearning Columbia Teachers College April 2, 2015
Ad

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

PPT
Anveshan android
PPT
Android Application Development
PPT
Native Android for Windows Developers
PPTX
How to create android applications
PPTX
Module-I_Introduction-to-Android.pptx
PPTX
Methods to set up android app development environment
PPT
Springboard & OpenCV
PPT
android Programming with detail slide an
PPTX
Android chapter02-setup1-sdk
PDF
Android programming-basics
PPTX
03 Beginning Android Application Development
PPTX
this is PPT for mobail application development
PPT
androidPramming.ppt
PDF
Android installation
PDF
Android Development Tools and Installation
PDF
Droidcon uk2012 androvm
PPTX
Android tools for testers
PDF
Android tutorial1
PDF
Appium- part 1
PDF
Getting Started with Android Studio: A Step-by-Step Guide
Anveshan android
Android Application Development
Native Android for Windows Developers
How to create android applications
Module-I_Introduction-to-Android.pptx
Methods to set up android app development environment
Springboard & OpenCV
android Programming with detail slide an
Android chapter02-setup1-sdk
Android programming-basics
03 Beginning Android Application Development
this is PPT for mobail application development
androidPramming.ppt
Android installation
Android Development Tools and Installation
Droidcon uk2012 androvm
Android tools for testers
Android tutorial1
Appium- part 1
Getting Started with Android Studio: A Step-by-Step Guide

More from Yoss Cohen (20)

PPTX
Underwater robotics simulation with isaac sim
PPTX
Infrared simulation and processing on Nvidia platforms
PPTX
open platform for swarm training
PDF
Deep Learning - system view
PDF
Dspip deep learning syllabus
PPT
IoT consideration selection
PPT
IoT evolution
DOC
Nvidia jetson nano bringup
PPT
Autonomous car teleportation architecture
PPT
Motion estimation overview
PPT
Computer Vision - Image Filters
PPT
Intro to machine learning with scikit learn
PPT
DASH and HTTP2.0
PPT
HEVC Definitions and high-level syntax
PPT
Introduction to HEVC
PPT
FFMPEG on android
PPT
HEVC / H265 Hands-On course
PPT
Web video standards
PPTX
3D Video Programming for Android
PDF
Analog Video
Underwater robotics simulation with isaac sim
Infrared simulation and processing on Nvidia platforms
open platform for swarm training
Deep Learning - system view
Dspip deep learning syllabus
IoT consideration selection
IoT evolution
Nvidia jetson nano bringup
Autonomous car teleportation architecture
Motion estimation overview
Computer Vision - Image Filters
Intro to machine learning with scikit learn
DASH and HTTP2.0
HEVC Definitions and high-level syntax
Introduction to HEVC
FFMPEG on android
HEVC / H265 Hands-On course
Web video standards
3D Video Programming for Android
Analog Video

Recently uploaded (20)

PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
A Presentation on Artificial Intelligence
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Mushroom cultivation and it's methods.pdf
PPTX
Spectroscopy.pptx food analysis technology
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
1. Introduction to Computer Programming.pptx
PDF
Approach and Philosophy of On baking technology
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Getting Started with Data Integration: FME Form 101
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
A Presentation on Artificial Intelligence
Diabetes mellitus diagnosis method based random forest with bat algorithm
Spectral efficient network and resource selection model in 5G networks
Network Security Unit 5.pdf for BCA BBA.
SOPHOS-XG Firewall Administrator PPT.pptx
Group 1 Presentation -Planning and Decision Making .pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Mushroom cultivation and it's methods.pdf
Spectroscopy.pptx food analysis technology
Digital-Transformation-Roadmap-for-Companies.pptx
1. Introduction to Computer Programming.pptx
Approach and Philosophy of On baking technology
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
A comparative study of natural language inference in Swahili using monolingua...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Getting Started with Data Integration: FME Form 101

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:[email protected] | 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:[email protected] | 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:[email protected] | Telephone:+972.545.313092