diff options
author | Gina Dimino <gdimino@google.com> | 2021-07-15 23:27:11 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2021-07-15 23:27:11 +0000 |
commit | 72e0ae8d8207042452f75874221103f4f6b3014a (patch) | |
tree | 7fa97b880b85be7de5b713d233cdc407c20b88cd /en/devices/camera/camera3.html | |
parent | e55b3193405187e091a4ac7730ef04360ec04504 (diff) | |
parent | fc5fc0e74df003b0ee454d3418b88cd722282c49 (diff) | |
download | source.android.com-master.tar.gz |
Diffstat (limited to 'en/devices/camera/camera3.html')
-rw-r--r-- | en/devices/camera/camera3.html | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/en/devices/camera/camera3.html b/en/devices/camera/camera3.html deleted file mode 100644 index 71e90a34..00000000 --- a/en/devices/camera/camera3.html +++ /dev/null @@ -1,125 +0,0 @@ -<html devsite> - <head> - <title>Camera HAL3</title> - <meta name="project_path" value="/_project.yaml" /> - <meta name="book_path" value="/_book.yaml" /> - </head> - <body> - <!-- - Copyright 2017 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - - -<p> -Android's camera Hardware Abstraction Layer (HAL) connects the higher level -camera framework APIs in -<a href="https://developer.android.com/reference/android/hardware/camera2/package-summary">android.hardware.camera2</a> -to your underlying camera driver and hardware. Android 8.0 introduced -<a href="/devices/architecture/treble">Treble</a>, switching the CameraHal API -to a stable interface defined by the HAL Interface Description Language (HIDL). -If you have previously developed a camera -HAL module and driver for Android 7.0 and lower, be aware of significant -changes in the camera pipeline.</p> - -<h2 id="v3-enhance">Camera HAL3 features</h2> - -<p>The aim of the Android Camera API redesign is to substantially increase the -ability of applications to control the camera subsystem on Android devices while -reorganizing the API to make it more efficient and maintainable. The additional -control makes it easier to build high-quality camera applications on Android -devices that can operate reliably across multiple products while still using -device-specific algorithms whenever possible to maximize quality and -performance.</p> - -<p>Version 3 of the camera subsystem structures the operation modes into a -single unified view, which can be used to implement any of the previous modes -and several others, such as burst mode. This results in better user control for -focus and exposure and more post-processing, such as noise reduction, contrast -and sharpening. Further, this simplified view makes it easier for application -developers to use the camera's various functions.</p> -<p>The API models the camera subsystem as a pipeline that converts incoming -requests for frame captures into frames, on a 1:1 basis. The requests -encapsulate all configuration information about the capture and processing of a -frame. This includes resolution and pixel format; manual sensor, lens and flash -control; 3A operating modes; RAW->YUV processing control; statistics generation; -and so on.</p> - -<p>In simple terms, the application framework requests a frame from the camera -subsystem, and the camera subsystem returns results to an output stream. In -addition, metadata that contains information such as color spaces and lens -shading is generated for each set of results. You can think of camera version 3 -as a pipeline to camera version 1's one-way stream. It converts each capture -request into one image captured by the sensor, which is processed into:</p> - -<ul> -<li>A Result object with metadata about the capture.</li> -<li>One to N buffers of image data, each into its own destination Surface.</li> -</ul> - -<p>The set of possible output Surfaces is preconfigured:</p> - -<ul> -<li>Each Surface is a destination for a stream of image buffers of a fixed -resolution.</li> -<li>Only a small number of Surfaces can be configured as outputs at once (~3). -</li> -</ul> - -<p>A request contains all desired capture settings and the list of output -Surfaces to push image buffers into for this request (out of the total -configured set). A request can be one-shot (with <code>capture()</code>), or it -may be repeated indefinitely (with <code>setRepeatingRequest()</code>). Captures -have priority over repeating requests.</p> - -<img src="images/camera_simple_model.png" alt="Camera data model" id="figure2" /> -<p class="img-caption"><strong>Figure 1.</strong> Camera core operation model</p> - -<h2 id="overview">Camera HAL1 overview</h2> - -<aside class="note"><strong>Note:</strong> As Camera HAL1 has been deprecated, - Camera HAL3 is recommended for devices launching on Android 9 or higher.</aside> - -<p>Version 1 of the camera subsystem was designed as a black box with high-level -controls and the following three operating modes:</p> - -<ul> -<li>Preview</li> -<li>Video Record</li> -<li>Still Capture</li> -</ul> - -<p>Each mode has slightly different and overlapping capabilities. This made it -hard to implement new features such as burst mode, which falls between two of -the operating modes.</p> - -<img src="images/camera_block.png" alt="Camera block diagram" id="figure1" /> -<p class="img-caption"><strong>Figure 2.</strong> Camera components</p> - -<p>Android 7.0 continues to support camera HAL1 as many devices still rely on -it. In addition, the Android camera service supports implementing both HALs (1 -and 3), which is useful when you want to support a less-capable front-facing -camera with camera HAL1 and a more advanced back-facing camera with camera -HAL3.</p> - -<p>There is a single camera HAL <em>module</em> (with its own -<a href="/devices/camera/versioning.html#module_version">version -number</a>), which lists multiple independent camera devices that each have -their own version number. Camera module 2 or newer is required to support -devices 2 or newer, and such camera modules can have a mix of camera device -versions (this is what we mean when we say Android supports implementing both -HALs).</p> - - </body> -</html> |