SlideShare a Scribd company logo
1 of 30
Download to read offline
OUTLINE
Android camera API history
What’s new of Camera API 2
HAL 3.2
Titan Camera API 2 situation
Solutions & Hacks
Conclusions
API Lv 21
Camera API 1
Camera API 1(camera)
Camera API 2(camera2)
API Lv ##
Camera API 2
HISTORY
ICS
HAL 1.0
JB 4.2 JB 4.3
HAL 1.0 - 3.1
HAL 3.2
HAL 1.0
HAL 2.0
HAL 3.0
KK
HAL 1.0
HAL 2.0
HAL 3.0
HAL 3.1
L
HISTORY
WHAT’S NEW OF CAMERA API 2?
camera & camera2 are both available to App Developer
BUT - only HAL 3.2 enables all features/properties of camera2
Shim layer
being used to as the Facade layer between new camera2 API
and older HAL 1.0-3.1 by using camera API
WHAT’S NEW OF CAMERA API 2?
WHAT’S NEW OF CAMERA API 2?
WHAT’S NEW OF CAMERA API 2?
much more metadata, and per-frame metadata.
more direct controls on sensor and Post Processing
Synchronisation of setting and captures
Full rate, full-res captures in various formats
Support raw image capturing and saving
Camera API 1 is necessary for legacy applications
WHAT’S NEW OF CAMERA API 2?
WHAT’S NEW OF CAMERA API 2?
HAL 3.2
support vendor tags by camera module HAL
support partial metadata result
enables all features/properties of camera2
Not support stream configurations for still captures
Framework assumes high-res JPEG stream can be configured at all
times without showing down preview framerate.
HAL 3.2
HAL 3.2
FULL mode
LIMITED mode
HAL 1.0 - 3.1
LEGACY Mode
HAL 3.2
HAL 3.2
HAL 3.2
Step 1
Step 2Step 3
TITAN CAMERA API 2 SITUATION
Step 1
Step 2Step 3
TITAN CAMERA API 2 SITUATION
TITAN CAMERA API 2 SITUATION
CaptureRequest
frame meta
CaptureRequest
frame meta
camera2 HAL 3
CaptureRequest
frame meta
CaptureRequest
frame meta
CaptureRequest
frame meta
CaptureRequest
frame meta
TITAN CAMERA API 2 SITUATION
CaptureRequest
frame meta
CaptureRequest
frame meta
camera2 HAL 1
CaptureRequest
frame meta
CaptureRequest
frame meta
SHIM
CaptureRequest
frame meta
CaptureRequest
frame meta
TITAN CAMERA API 2 SITUATION
Arcsoft involved to use camera2 only for its camera app.
QCT never supportYUV sensor with HAL 3, and Titan’s camera
solution was forced to use HAL 1.
Vertu decide to use HAL 1 + shim + camera 2 in Apr 2015
Vertu would like to have a Legacy+ device.
TITAN CAMERA API 2 SITUATION
Arcsoft involved to use camera2 only for its camera app.
QCT never supportYUV sensor with HAL 3, and Titan’s camera
solution was forced to use HAL 1.
Vertu decide to use HAL 1 + shim + camera 2 in Apr 2015
Vertu would like to have aVertu specific Legacy+ mode for Titan
TITAN CAMERA API 2 SITUATION
LEGACY+ mode
slowmo/HFR support
Cont. shot/ZSL/BurstCap support (abandoned byVertu at wk 41)
PICAUTO support
AS HDR support
YUV420 to NV12/21, notYV12 format
TITAN CAMERA API 2 SITUATION
mediaserver
android.hardware.Camera
android.hardware.ca
mera2.*
android.hardware.ca
mera2.legacy.*
CameraService(Native)
App
Camera2 Legacy Mode
SHIM Layer
TITAN CAMERA API 2 SITUATION
CameraDeviceUserShimCameraManager
LegacyCameraDevice
RequestThread
Manager
GLThread
Manager
Capture
Collector
TITAN CAMERA API 2 SITUATION
RequestThread
Manager
GLThread
Manager
LegacyMetadata
Mapper
SurfaceTexture
Render
LegacyRequest
Mapper
LegacyResult
Mapper
LegacyXXX
Mapper
LegacyCameraDevice
SOLUTIONS & HACKS
LegacyMetadataMapper
be used for create camera static characteristic from HAL 1
Legacy+ mode
convert HFR support from HAL 1 to HIGH_SPEED_VIDEO
property and export it to camera characteristic
export AS HDR, PICAUTO to camera characteristic
export scene mode FOOD/BACKLIT to camera characteristic
SOLUTIONS & HACKS
LegacyRequestMapper
be used for mapping camera2 request to parameters for HAL 1
Legacy+ mode
adjust fps and HFR mode from HIGH_SPEED_VIDEO setting
set AS HDR and PICAUTO flag
wrapper and convertVERTU specific scene mode to pass CTS
Cont. shot/ZSL/Burst shot request process
SOLUTIONS & HACKS
LegacyResultMapper
be used for mapping camera2 request to parameters for HAL 1
Legacy+ mode
based on HIGH_SPEED_VIDEO setting, convert correct camera2 result
back.
based on AS HDR and PICAUTO flag, convert correct camera2 result
back.
wrapper and convertVERTU specific scene mode to pass CTS
SOLUTIONS & HACKS
More and more?
camera2 settings are stored in native space and extensions are
supported by vendor tags. (not available for Legacy mode)
We must revise the accessor to native space for extra supported
features with Java space support
camera native framework need to be extended (LegacyXXXMapper)
HAL 1 must be greatly modified for supports of all extra features.
SOLUTIONS & HACKS
More and more?
Performance for shim is really not good
parts of shim are not completed, cause most of all stability
problem
not only HAL 1, but underly QCOM camera system also need
to be customised repetitively
CONCLUSIONS
Shim is just a start, what is the next?
Performance tuning, shim is really not good in performance
Complete the shim, parts of shim are not done by Google, which cause
most of all stability problem
Go to lower layer. Not only HAL 1, but underly QCOM camera system
also need to be customised repetitively
PICAUTO Integration
AS HDR Integration

More Related Content

What's hot

Android device driver structure introduction
Android device driver structure introductionAndroid device driver structure introduction
Android device driver structure introductionWilliam Liang
 
Android Binder IPC for Linux
Android Binder IPC for LinuxAndroid Binder IPC for Linux
Android Binder IPC for LinuxYu-Hsin Hung
 
Android IPC Mechanism
Android IPC MechanismAndroid IPC Mechanism
Android IPC MechanismLihan Chen
 
Overview of Android binder IPC implementation
Overview of Android binder IPC implementationOverview of Android binder IPC implementation
Overview of Android binder IPC implementationChethan Pchethan
 
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Opersys inc.
 
Android's Multimedia Framework
Android's Multimedia FrameworkAndroid's Multimedia Framework
Android's Multimedia FrameworkOpersys inc.
 
Android Security Internals
Android Security InternalsAndroid Security Internals
Android Security InternalsOpersys inc.
 
Android Automotive
Android AutomotiveAndroid Automotive
Android AutomotiveOpersys inc.
 
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)Nanik Tolaram
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Accessing Hardware on Android
Accessing Hardware on AndroidAccessing Hardware on Android
Accessing Hardware on AndroidGary Bisson
 

What's hot (20)

Embedded Android : System Development - Part III (Audio / Video HAL)
Embedded Android : System Development - Part III (Audio / Video HAL)Embedded Android : System Development - Part III (Audio / Video HAL)
Embedded Android : System Development - Part III (Audio / Video HAL)
 
Android device driver structure introduction
Android device driver structure introductionAndroid device driver structure introduction
Android device driver structure introduction
 
Android Binder IPC for Linux
Android Binder IPC for LinuxAndroid Binder IPC for Linux
Android Binder IPC for Linux
 
Android Binder: Deep Dive
Android Binder: Deep DiveAndroid Binder: Deep Dive
Android Binder: Deep Dive
 
Android IPC Mechanism
Android IPC MechanismAndroid IPC Mechanism
Android IPC Mechanism
 
Introduction to Android Window System
Introduction to Android Window SystemIntroduction to Android Window System
Introduction to Android Window System
 
Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part IV (Android System Services)Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part IV (Android System Services)
 
Overview of Android binder IPC implementation
Overview of Android binder IPC implementationOverview of Android binder IPC implementation
Overview of Android binder IPC implementation
 
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
 
Android's Multimedia Framework
Android's Multimedia FrameworkAndroid's Multimedia Framework
Android's Multimedia Framework
 
Android Security Internals
Android Security InternalsAndroid Security Internals
Android Security Internals
 
Android Automotive
Android AutomotiveAndroid Automotive
Android Automotive
 
Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
 
Android Audio System
Android Audio SystemAndroid Audio System
Android Audio System
 
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
 
Embedded Android : System Development - Part IV
Embedded Android : System Development - Part IVEmbedded Android : System Development - Part IV
Embedded Android : System Development - Part IV
 
Android 10
Android 10Android 10
Android 10
 
Android Things : Building Embedded Devices
Android Things : Building Embedded DevicesAndroid Things : Building Embedded Devices
Android Things : Building Embedded Devices
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Accessing Hardware on Android
Accessing Hardware on AndroidAccessing Hardware on Android
Accessing Hardware on Android
 

Viewers also liked

Viewers also liked (12)

Camera2 introdction
Camera2 introdctionCamera2 introdction
Camera2 introdction
 
How to create a camera2
How to create a camera2How to create a camera2
How to create a camera2
 
Android Camera Architecture
Android Camera ArchitectureAndroid Camera Architecture
Android Camera Architecture
 
Introduction of Android Camera1
Introduction of Android Camera1Introduction of Android Camera1
Introduction of Android Camera1
 
Camera2
Camera2Camera2
Camera2
 
Unisca framing
Unisca framingUnisca framing
Unisca framing
 
Frame Templates
Frame TemplatesFrame Templates
Frame Templates
 
GreenDao Introduction
GreenDao IntroductionGreenDao Introduction
GreenDao Introduction
 
Book Launch: The H.264 Advanced Video Compression Standard
Book Launch: The H.264 Advanced Video Compression StandardBook Launch: The H.264 Advanced Video Compression Standard
Book Launch: The H.264 Advanced Video Compression Standard
 
Digital Image Processing
Digital Image ProcessingDigital Image Processing
Digital Image Processing
 
Android Media player
Android Media playerAndroid Media player
Android Media player
 
Location-Based Services on Android
Location-Based Services on AndroidLocation-Based Services on Android
Location-Based Services on Android
 

Similar to Camera2 API, SHIM, and HAL 3.2 in Android 5.1

Surveon Megapxiel Camera Product Introduction
Surveon Megapxiel Camera Product IntroductionSurveon Megapxiel Camera Product Introduction
Surveon Megapxiel Camera Product IntroductionSurveon Technology Inc.
 
E instruction hardware compatibility charts
E instruction hardware compatibility chartsE instruction hardware compatibility charts
E instruction hardware compatibility chartsWilliam McIntosh
 
The Ultimate DJI Mavic 2 FAQ: Top 37 Questions Answered
The Ultimate DJI Mavic 2 FAQ: Top 37 Questions Answered The Ultimate DJI Mavic 2 FAQ: Top 37 Questions Answered
The Ultimate DJI Mavic 2 FAQ: Top 37 Questions Answered DJI Authorised Retail Store
 
How To Access Code In Large w/ Vim
How To Access Code In Large w/ VimHow To Access Code In Large w/ Vim
How To Access Code In Large w/ VimCheng Hsien Chen
 
DJI Ronin 2 - Create Your Legacy
DJI Ronin 2 - Create Your LegacyDJI Ronin 2 - Create Your Legacy
DJI Ronin 2 - Create Your LegacyDJI Global
 
Motorola MotoTRBO Firmware 2.3 Release Notes (November 2013)
Motorola MotoTRBO Firmware 2.3 Release Notes (November 2013)Motorola MotoTRBO Firmware 2.3 Release Notes (November 2013)
Motorola MotoTRBO Firmware 2.3 Release Notes (November 2013)TwoWayDigitalRadio.com
 
XPDDS18: The Evolution of Virtualization in the Arm Architecture - Julien Gra...
XPDDS18: The Evolution of Virtualization in the Arm Architecture - Julien Gra...XPDDS18: The Evolution of Virtualization in the Arm Architecture - Julien Gra...
XPDDS18: The Evolution of Virtualization in the Arm Architecture - Julien Gra...The Linux Foundation
 
Camera specifications pq_criteria
Camera specifications pq_criteriaCamera specifications pq_criteria
Camera specifications pq_criteriaAditya Agrawal
 
Surveon Megapixel Cameras - Professional Features & Functions
Surveon Megapixel Cameras - Professional Features & Functions Surveon Megapixel Cameras - Professional Features & Functions
Surveon Megapixel Cameras - Professional Features & Functions Surveon Technology Inc.
 
Datavideo RMC-180 Control Box Brochure
Datavideo RMC-180 Control Box BrochureDatavideo RMC-180 Control Box Brochure
Datavideo RMC-180 Control Box BrochureAV ProfShop
 
Datavideo RMC-180 Brochure
Datavideo RMC-180 BrochureDatavideo RMC-180 Brochure
Datavideo RMC-180 BrochureAV ProfShop
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word documentRajnikant Parsad
 
Surveon 3 MP 30 FPS H.264 HDR Camera Series
Surveon 3 MP 30 FPS H.264 HDR Camera SeriesSurveon 3 MP 30 FPS H.264 HDR Camera Series
Surveon 3 MP 30 FPS H.264 HDR Camera SeriesSurveon Technology Inc.
 
Zte utran ur11.1 optional feature description
Zte utran ur11.1 optional feature descriptionZte utran ur11.1 optional feature description
Zte utran ur11.1 optional feature descriptionMd Kamruzzaman
 
Panasonic AG-AC 160-130
Panasonic AG-AC 160-130Panasonic AG-AC 160-130
Panasonic AG-AC 160-130luisalo61
 
Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...
Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...
Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...Moritz Beller
 
Fitc 2012 - rise of the modules
Fitc 2012 - rise of the modulesFitc 2012 - rise of the modules
Fitc 2012 - rise of the modulestschneidereit
 

Similar to Camera2 API, SHIM, and HAL 3.2 in Android 5.1 (20)

Surveon Megapxiel Camera Product Introduction
Surveon Megapxiel Camera Product IntroductionSurveon Megapxiel Camera Product Introduction
Surveon Megapxiel Camera Product Introduction
 
AVTECH products 2018
AVTECH products 2018AVTECH products 2018
AVTECH products 2018
 
E instruction hardware compatibility charts
E instruction hardware compatibility chartsE instruction hardware compatibility charts
E instruction hardware compatibility charts
 
The Ultimate DJI Mavic 2 FAQ: Top 37 Questions Answered
The Ultimate DJI Mavic 2 FAQ: Top 37 Questions Answered The Ultimate DJI Mavic 2 FAQ: Top 37 Questions Answered
The Ultimate DJI Mavic 2 FAQ: Top 37 Questions Answered
 
Surveon IP Camera Spec-in Guide
Surveon IP Camera Spec-in Guide Surveon IP Camera Spec-in Guide
Surveon IP Camera Spec-in Guide
 
How To Access Code In Large w/ Vim
How To Access Code In Large w/ VimHow To Access Code In Large w/ Vim
How To Access Code In Large w/ Vim
 
DJI Ronin 2 - Create Your Legacy
DJI Ronin 2 - Create Your LegacyDJI Ronin 2 - Create Your Legacy
DJI Ronin 2 - Create Your Legacy
 
Motorola MotoTRBO Firmware 2.3 Release Notes (November 2013)
Motorola MotoTRBO Firmware 2.3 Release Notes (November 2013)Motorola MotoTRBO Firmware 2.3 Release Notes (November 2013)
Motorola MotoTRBO Firmware 2.3 Release Notes (November 2013)
 
XPDDS18: The Evolution of Virtualization in the Arm Architecture - Julien Gra...
XPDDS18: The Evolution of Virtualization in the Arm Architecture - Julien Gra...XPDDS18: The Evolution of Virtualization in the Arm Architecture - Julien Gra...
XPDDS18: The Evolution of Virtualization in the Arm Architecture - Julien Gra...
 
Camera specifications pq_criteria
Camera specifications pq_criteriaCamera specifications pq_criteria
Camera specifications pq_criteria
 
Surveon Megapixel Cameras - Professional Features & Functions
Surveon Megapixel Cameras - Professional Features & Functions Surveon Megapixel Cameras - Professional Features & Functions
Surveon Megapixel Cameras - Professional Features & Functions
 
Datavideo RMC-180 Control Box Brochure
Datavideo RMC-180 Control Box BrochureDatavideo RMC-180 Control Box Brochure
Datavideo RMC-180 Control Box Brochure
 
Datavideo RMC-180 Brochure
Datavideo RMC-180 BrochureDatavideo RMC-180 Brochure
Datavideo RMC-180 Brochure
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 
hcm381-481_oi.pdf
hcm381-481_oi.pdfhcm381-481_oi.pdf
hcm381-481_oi.pdf
 
Surveon 3 MP 30 FPS H.264 HDR Camera Series
Surveon 3 MP 30 FPS H.264 HDR Camera SeriesSurveon 3 MP 30 FPS H.264 HDR Camera Series
Surveon 3 MP 30 FPS H.264 HDR Camera Series
 
Zte utran ur11.1 optional feature description
Zte utran ur11.1 optional feature descriptionZte utran ur11.1 optional feature description
Zte utran ur11.1 optional feature description
 
Panasonic AG-AC 160-130
Panasonic AG-AC 160-130Panasonic AG-AC 160-130
Panasonic AG-AC 160-130
 
Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...
Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...
Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Sour...
 
Fitc 2012 - rise of the modules
Fitc 2012 - rise of the modulesFitc 2012 - rise of the modules
Fitc 2012 - rise of the modules
 

Recently uploaded

Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 

Recently uploaded (20)

Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 

Camera2 API, SHIM, and HAL 3.2 in Android 5.1

  • 1. OUTLINE Android camera API history What’s new of Camera API 2 HAL 3.2 Titan Camera API 2 situation Solutions & Hacks Conclusions
  • 2. API Lv 21 Camera API 1 Camera API 1(camera) Camera API 2(camera2) API Lv ## Camera API 2 HISTORY
  • 3. ICS HAL 1.0 JB 4.2 JB 4.3 HAL 1.0 - 3.1 HAL 3.2 HAL 1.0 HAL 2.0 HAL 3.0 KK HAL 1.0 HAL 2.0 HAL 3.0 HAL 3.1 L HISTORY
  • 4. WHAT’S NEW OF CAMERA API 2?
  • 5. camera & camera2 are both available to App Developer BUT - only HAL 3.2 enables all features/properties of camera2 Shim layer being used to as the Facade layer between new camera2 API and older HAL 1.0-3.1 by using camera API WHAT’S NEW OF CAMERA API 2?
  • 6. WHAT’S NEW OF CAMERA API 2?
  • 7. WHAT’S NEW OF CAMERA API 2? much more metadata, and per-frame metadata. more direct controls on sensor and Post Processing Synchronisation of setting and captures Full rate, full-res captures in various formats Support raw image capturing and saving Camera API 1 is necessary for legacy applications
  • 8. WHAT’S NEW OF CAMERA API 2?
  • 9. WHAT’S NEW OF CAMERA API 2?
  • 10. HAL 3.2 support vendor tags by camera module HAL support partial metadata result enables all features/properties of camera2 Not support stream configurations for still captures Framework assumes high-res JPEG stream can be configured at all times without showing down preview framerate.
  • 11. HAL 3.2 HAL 3.2 FULL mode LIMITED mode HAL 1.0 - 3.1 LEGACY Mode
  • 15. Step 1 Step 2Step 3 TITAN CAMERA API 2 SITUATION
  • 16. Step 1 Step 2Step 3 TITAN CAMERA API 2 SITUATION
  • 17. TITAN CAMERA API 2 SITUATION CaptureRequest frame meta CaptureRequest frame meta camera2 HAL 3 CaptureRequest frame meta CaptureRequest frame meta CaptureRequest frame meta CaptureRequest frame meta
  • 18. TITAN CAMERA API 2 SITUATION CaptureRequest frame meta CaptureRequest frame meta camera2 HAL 1 CaptureRequest frame meta CaptureRequest frame meta SHIM CaptureRequest frame meta CaptureRequest frame meta
  • 19. TITAN CAMERA API 2 SITUATION Arcsoft involved to use camera2 only for its camera app. QCT never supportYUV sensor with HAL 3, and Titan’s camera solution was forced to use HAL 1. Vertu decide to use HAL 1 + shim + camera 2 in Apr 2015 Vertu would like to have a Legacy+ device.
  • 20. TITAN CAMERA API 2 SITUATION Arcsoft involved to use camera2 only for its camera app. QCT never supportYUV sensor with HAL 3, and Titan’s camera solution was forced to use HAL 1. Vertu decide to use HAL 1 + shim + camera 2 in Apr 2015 Vertu would like to have aVertu specific Legacy+ mode for Titan
  • 21. TITAN CAMERA API 2 SITUATION LEGACY+ mode slowmo/HFR support Cont. shot/ZSL/BurstCap support (abandoned byVertu at wk 41) PICAUTO support AS HDR support YUV420 to NV12/21, notYV12 format
  • 22. TITAN CAMERA API 2 SITUATION mediaserver android.hardware.Camera android.hardware.ca mera2.* android.hardware.ca mera2.legacy.* CameraService(Native) App Camera2 Legacy Mode SHIM Layer
  • 23. TITAN CAMERA API 2 SITUATION CameraDeviceUserShimCameraManager LegacyCameraDevice RequestThread Manager GLThread Manager Capture Collector
  • 24. TITAN CAMERA API 2 SITUATION RequestThread Manager GLThread Manager LegacyMetadata Mapper SurfaceTexture Render LegacyRequest Mapper LegacyResult Mapper LegacyXXX Mapper LegacyCameraDevice
  • 25. SOLUTIONS & HACKS LegacyMetadataMapper be used for create camera static characteristic from HAL 1 Legacy+ mode convert HFR support from HAL 1 to HIGH_SPEED_VIDEO property and export it to camera characteristic export AS HDR, PICAUTO to camera characteristic export scene mode FOOD/BACKLIT to camera characteristic
  • 26. SOLUTIONS & HACKS LegacyRequestMapper be used for mapping camera2 request to parameters for HAL 1 Legacy+ mode adjust fps and HFR mode from HIGH_SPEED_VIDEO setting set AS HDR and PICAUTO flag wrapper and convertVERTU specific scene mode to pass CTS Cont. shot/ZSL/Burst shot request process
  • 27. SOLUTIONS & HACKS LegacyResultMapper be used for mapping camera2 request to parameters for HAL 1 Legacy+ mode based on HIGH_SPEED_VIDEO setting, convert correct camera2 result back. based on AS HDR and PICAUTO flag, convert correct camera2 result back. wrapper and convertVERTU specific scene mode to pass CTS
  • 28. SOLUTIONS & HACKS More and more? camera2 settings are stored in native space and extensions are supported by vendor tags. (not available for Legacy mode) We must revise the accessor to native space for extra supported features with Java space support camera native framework need to be extended (LegacyXXXMapper) HAL 1 must be greatly modified for supports of all extra features.
  • 29. SOLUTIONS & HACKS More and more? Performance for shim is really not good parts of shim are not completed, cause most of all stability problem not only HAL 1, but underly QCOM camera system also need to be customised repetitively
  • 30. CONCLUSIONS Shim is just a start, what is the next? Performance tuning, shim is really not good in performance Complete the shim, parts of shim are not done by Google, which cause most of all stability problem Go to lower layer. Not only HAL 1, but underly QCOM camera system also need to be customised repetitively PICAUTO Integration AS HDR Integration