[MUSIC PLAYING]
MARWA MABROUK: Hi, I'm Marwa Mabrouk.
Today, I'm going to share how Android's camera can
help you build great camera experiences
in your applications.
Let's get started.
I would like to open our talk today with some information
that I call the Android camera report.
It's a very high level set of app trends
that we took notice of.
Knowing this, hopefully, you will
see why the plans we will talk about next are very exciting.
Let's start with some key trends that we're
observing among apps.
AR filters and effects on social media apps
are very popular among users, and we're
seeing apps that provide that kind of functionality,
use the camera API in a new way by capturing using the preview
output stream rather than the traditional capture output
stream.
And for that, I'll talk about what
we're doing to improve preview output stream quality later.
Another popular use case on the rise
is the use of multi-camera API, which
allows apps to use all rear cameras as one logical camera,
enabling users to do smooth, zoom in and out, utilizing
every rear camera powering the phone as one.
It's a really cool feature, and it's
great to see getting more support among device makers
and more use by app developers.
Also, no surprise the rise of video
in different forms, short videos and video conferencing,
given the changing times and circumstances we
all have been seeing the last two years.
You will hear about all the exciting features
coming with video later on.
Finally, we have to mention new devices
like the cool foldable phones and large screens
becoming an important area for Android and camera apps.
Now I'll mention how apps will get the best out
of our work in that area.
Updating you with trends is something
that we plan to start doing as a way to provide app developers
and device makers insights across Android camera,
with a goal to bring alignment across the Android camera
stack.
Innovations in the camera space are amazing,
and our goal is to empower the diverse ecosystem
to innovate in alignment.
So apps and devices can provide users
with the most amazing camera experiences.
Let's get started by learning about what is new in Android
camera this year.
Speaking of the Android camera stack,
let's take a look at the full stack,
where Android camera sits between device makers and app
developers.
You can see Camera2, the camera framework API,
on top of it CameraX the Jetpack library for camera.
We also see what is becoming a core part of our architecture
to provide consistency and quality, the test
suites, and test labs.
To the OEMs, we offer XTS, a set of testing suites
to cover different needs.
They cover a range of tests from testing the
how to unit test for compatibility and image tests
for end-to-end camera testing.
Alongside XTS, we have the performance class metadata
which informs developers on their device capabilities
when they exceed average expectations so they
can take advantage of that.
At the CameraX level, we at Google
do the testing of the CameraX API ourselves
on the devices in our labs, and as we find inconsistencies,
we add compatibility fixes to provide developers
with a very consistent experience
in the API across the devices that we test.
As you can see from the stack, CameraX
is positioned to help you get the best
value out of the whole Android camera stack.
Being based on Camera2, apps will get the performance value,
packed with all the best practices and knowledge
base of the Android camera team on how to use Camera2.
The CameraX API empowers developers
to develop their applications faster and be
up and running really quickly.
As I've mentioned before, CameraX lab
provides a powerful compatibility layer
within CameraX to achieve consistency across the devices
that we test.
A good example worth mentioning here,
apps that use CameraX do not have to worry about new devices
like foldables and large screens, as fixes for issues
found in our lab will already be included in CameraX.
Apps that use CameraX will already
get the benefit to work well on those devices
without having to make changes on their side.
And finally, as a Jetpack library,
CameraX enables us to respond to bugs
that you report, making the fixes available to you
much faster.
We're able to test new experimental innovations
and support new timely features on a faster launch
schedule due to the flexibility that comes with Android's
Jetpack libraries.
Let's quickly recap the main use cases
that were launched in CameraX version 1.0 before this year.
Preview, a view finder that enables getting
the preview on the screen.
Image analysis, which enables access to the output buffer
seamlessly for use with algorithms
such as the ones provided in ML Kit, and finally,
capture, which is used to save high quality images.
Version 1.0 was packed with many features
to support fast development, such as managing
the lifecycle of the camera and other abstractions
while utilizing a lot of capabilities that made image
capture easy to implement.
Earlier this year, version 1.1 beta was launched,
and now the release candidate has just been announced.
This version includes the long awaited for video capture.
It is an important moment for CameraX.
Starting with this version, it will
be possible to record video and audio
with all the same advantages that we just
mentioned CameraX brings.
With video capture, users will be
able to choose which camera to use,
whether to have audio or not, and pick the resolution
for their video capture.
Resolutions can range from SD to 4K Ultra HD,
depending on the device.
Apps will be able to provide what
you see is what you get experience,
while using the most needed camera
controls available like Zoom, focus metering, and exposure
compensation.
Important to mention here, that as part
of launching video capture, we're enabling the integration
with the MediaStore API.
So now, applications can configure the MediaStore output
options for the recorder, and then
configure the recorder with the MediaStore output options
and start recording with just a few lines of code.
This is an example of one of many cases, where
we are putting a lot of time and attention
to the overall camera journey that apps and users need.
We are doing this to drive more productivity for developers
when it comes to camera experiences and higher quality
for applications using the Android camera API.
And as part of version 1.1, we also
expanded our CameraX lab, increasing
our significant investments in that space.
We now test on devices that reach 685 million
28 daily active users, and we include
devices that represent different ranges
from all around the world.
Android 13 will be launched later this year,
and we wanted to share with you some
of the very exciting features that
will be part of that launch.
As I mentioned earlier, the preview output stream
is important for social media and other apps that
depend on effects and AR.
We wanted to really improve the quality of the preview output
stream by focusing on a number of features in that area.
Features will be launching according to Android 13
timeline and will be available through Camera2 and CameraX.
Preview stabilization will allow apps
to avoid different results between what
a user sees in preview and the outcome after they capture.
So no more unexpected cropping in the results after a user
tried so hard to get the right composition.
Stabilization for preview and capture
will be the same, resulting in better consistency.
Another feature, jitter reduction,
is also meant to provide smoother preview
by syncing the camera frames for display
during preview with the camera sensor output
avoiding dropped frames and resulting
in a much smoother preview.
Apps will also be able to use high stream configuration in 60
frames per second in addition to 30 frames per second
were supported.
Other features coming will also include
being able to provide use case configuration to optimize
the [INAUDIBLE] and torch control through the camera API.
Another feature that is coming to Android 13
as part of the camera API is HDR video.
The APIs will provide apps with the ability to preview
and capture through a common API that will allow them
to use front and rear camera.
The features will be available through both Camera2
and CameraX.
If you're familiar with HDR video,
you must be wondering, which of the available profiles that
are out there will be supported with capture?
A big part of this effort is to improve
the consistency of this encoding across devices in Android.
We're defining a minimum required profile
to provide this alignment.
In this case, for capture, that will be HLG10.
And additional profiles can be provided on devices
based on device makers choices.
To support HDR video, we have taken special care
to ensure this will work across the different APIs of Android,
like media and display.
For more details around those APIs,
we encourage you to check what they
will share about HDR video.
We are working with different partners in our camera stack
to ensure support from device makers
and apps will grow for this feature.
I also wanted to talk to you about an exciting space
in Android camera that will be seeing
more attention from us in the future, and that is extensions.
In prior years, we talked about extensions as part of CameraX.
It's important to note.
Now that extensions are available through both Camera2
and CameraX.
Both APIs have five extensions already
in place, portrait Bokeh, HDR, night, face retouch, and auto.
Since CameraX can provide faster launches, in the future,
new extensions and experimental features
will be launched first through CameraX.
I would also like to talk about a new approach
that we are currently working on exploring.
Our focus for extensions has always
been to work with the device makers
to bring the capabilities of the extensions already enabled
on their device through the API.
That will continue to be the case with no change,
and when and where the device maker has enabled an extension,
that will continue to be the default for an app.
But what about devices that don't have an extension enabled
by the device maker and what about entry level devices,
where it's harder to see consistent implementations
across the diversity of devices?
This is where we're looking into providing an extension
from Google to fill that space.
In this case where there is no extension enabled by the device
maker, apps will find a consistent solution
as an alternative to fall back to.
The extensions from Google will be an all software
implementation unlike the device maker's extensions
that are usually optimized with the hardware.
It's our aim to make the extensions
from Google consistent to work on entry level devices as well.
We will explore this by providing the first extension
for selfies, the bokeh portrait extension
as an initial extension in CameraX.
We will be very happy to see you try it and provide us
with feedback through our community channels
and processes.
We have covered a lot of details.
Now, let's recap the important takeaways.
Consistency and quality are becoming a core part
of our architecture.
Our focus includes quality at every layer
and across the camera user journeys.
CameraX now supports video and audio capture
and it's time to consider it if you haven't already.
It's the best way to get the most value from the Android
full camera stack.
We want to empower innovations with Android camera
by helping our app developers focus
on their apps and their innovation
by bringing to them more alignment
in the stack and higher quality across the diversity
of devices.
That, of course, in addition to many exciting features
on the way.
Please reach out to us through the different channels.
It means a lot to us to see your engagement, get your feedback,
and input and to continue to collaborate with all of you.
We thank you for your continued interest in Android camera
and look forward to partnering with all of you
to bring the users of the world the best camera experiences.
[MUSIC PLAYING]