X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=camera%2Fdocs%2Fmetadata_definitions.xml;h=48cb694e9603ab528b00c2dbaee2bf63ca918cb5;hb=d4c0fe30d67b7597d77079a0304647b6ea74284f;hp=9443f98c613fad9ee40674ae29a770492734b8d8;hpb=06513f12a1d2be809399a4dc331ee2823e11e808;p=android-x86%2Fsystem-media.git
diff --git a/camera/docs/metadata_definitions.xml b/camera/docs/metadata_definitions.xml
index 9443f98c..48cb694e 100644
--- a/camera/docs/metadata_definitions.xml
+++ b/camera/docs/metadata_definitions.xml
@@ -2268,6 +2268,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
The ID sent with the latest
CAMERA2_TRIGGER_PRECAPTURE_METERING call
+
+ Removed in camera HAL v3
+
Must be 0 if no
CAMERA2_TRIGGER_PRECAPTURE_METERING trigger received yet
by HAL. Always updated even if AE algorithm ignores the
@@ -2570,6 +2573,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
The ID sent with the latest
CAMERA2_TRIGGER_AUTOFOCUS call
+
+ Removed in camera HAL v3
+
Must be 0 if no CAMERA2_TRIGGER_AUTOFOCUS trigger
received yet by HAL. Always updated even if AF algorithm
ignores the trigger
@@ -3890,7 +3896,7 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
report `(0.03, 0, 0)`.
To transform a pixel coordinates between two cameras facing the same direction, first
- the source camera android.lens.radialDistortion must be corrected for. Then the source
+ the source camera android.lens.distortion must be corrected for. Then the source
camera android.lens.intrinsicCalibration needs to be applied, followed by the
android.lens.poseRotation of the source camera, the translation of the source camera
relative to the destination camera, the android.lens.poseRotation of the destination
@@ -4047,7 +4053,7 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
where `(0,0)` is the top-left of the
preCorrectionActiveArraySize rectangle. Once the pose and
intrinsic calibration transforms have been applied to a
- world point, then the android.lens.radialDistortion
+ world point, then the android.lens.distortion
transform needs to be applied, and the result adjusted to
be in the android.sensor.info.activeArraySize coordinate
system (where `(0, 0)` is the top-left of the
@@ -4058,7 +4064,7 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
+ deprecated="true" container="array">
6
@@ -4066,6 +4072,10 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
The correction coefficients to correct for this camera device's
radial and tangential lens distortion.
+
+ This field was inconsistently defined in terms of its
+ normalization. Use android.lens.distortion instead.
+
Unitless coefficients.
@@ -4134,7 +4144,58 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
depending on the selected coordinate origin.
+
+
+ 5
+
+
+ The correction coefficients to correct for this camera device's
+ radial and tangential lens distortion.
+
+ Replaces the deprecated android.lens.radialDistortion field, which was
+ inconsistently defined.
+
+
+ Unitless coefficients.
+
+
+ Three radial distortion coefficients `[kappa_1, kappa_2,
+ kappa_3]` and two tangential distortion coefficients
+ `[kappa_4, kappa_5]` that can be used to correct the
+ lens's geometric distortion with the mapping equations:
+
+ x_c = x_i * ( 1 + kappa_1 * r^2 + kappa_2 * r^4 + kappa_3 * r^6 ) +
+ kappa_4 * (2 * x_i * y_i) + kappa_5 * ( r^2 + 2 * x_i^2 )
+ y_c = y_i * ( 1 + kappa_1 * r^2 + kappa_2 * r^4 + kappa_3 * r^6 ) +
+ kappa_5 * (2 * x_i * y_i) + kappa_4 * ( r^2 + 2 * y_i^2 )
+
+ Here, `[x_c, y_c]` are the coordinates to sample in the
+ input image that correspond to the pixel values in the
+ corrected image at the coordinate `[x_i, y_i]`:
+
+ correctedImage(x_i, y_i) = sample_at(x_c, y_c, inputImage)
+
+ The pixel coordinates are defined in a coordinate system
+ related to the android.lens.intrinsicCalibration
+ calibration fields; see that entry for details of the mapping stages.
+ Both `[x_i, y_i]` and `[x_c, y_c]`
+ have `(0,0)` at the lens optical center `[c_x, c_y]`, and
+ the range of the coordinates depends on the focal length
+ terms of the intrinsic calibration.
+
+ Finally, `r` represents the radial distance from the
+ optical center, `r^2 = x_i^2 + y_i^2`.
+
+ The distortion model used is the Brown-Conrady model.
+
+
+
+
+
+
+
@@ -4270,6 +4331,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
scale 'normalized' coordinates with respect to the crop
region. This applies to metering input (a{e,f,wb}Region
and output (face rectangles).
+
+ Not used in HALv3 or newer
+
Normalized coordinates refer to those in the
(-1000,1000) range mentioned in the
android.hardware.Camera API.
@@ -4283,6 +4347,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
If set to 1, then the camera service always
switches to FOCUS_MODE_AUTO before issuing a AF
trigger.
+
+ Not used in HALv3 or newer
+
HAL implementations should implement AF trigger
modes for AUTO, MACRO, CONTINUOUS_FOCUS, and
CONTINUOUS_PICTURE modes instead of using this flag. Does
@@ -4294,6 +4361,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
CAMERA2_PIXEL_FORMAT_ZSL instead of
HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED for the zero
shutter lag stream
+
+ Not used in HALv3 or newer
+
HAL implementations should use gralloc usage flags
to determine that a stream will be used for
zero-shutter-lag, instead of relying on an explicit
@@ -4307,6 +4377,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
metadata for a single capture into multiple buffers,
returned using multiple process_capture_result calls.
+
+ Not used in HALv3 or newer; replaced by better partials mechanism
+
Does not need to be listed in static
metadata. Support for partial results will be reworked in
@@ -4339,6 +4412,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
final one for the capture, or only a partial that contains a
subset of the full set of dynamic metadata
values.
+
+ Not used in HALv3 or newer
+
Optional. Default value is FINAL.
The entries in the result metadata buffers for a
@@ -4366,6 +4442,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
increases with every new result (that is, each new result has a unique
frameCount value).
+
+ Not used in HALv3 or newer
+
incrementing integer
Any int.
@@ -4384,6 +4463,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
List which camera reprocess stream is used
for the source of reprocessing data.
+
+ Not used in HALv3 or newer
+
List of camera reprocess stream IDs
Typically, only one entry allowed, must be a valid reprocess stream ID.
@@ -4420,6 +4502,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
Lists which camera output streams image data
from this capture must be sent to
+
+ Not used in HALv3 or newer
+
List of camera stream IDs
List must only include streams that have been
created
@@ -4444,6 +4529,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
The type of the request; either CAPTURE or
REPROCESS. For legacy HAL3, this tag is redundant.
+
+ Not used in HALv3 or newer
+
@@ -4591,6 +4679,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
How many reprocessing streams of any type
can be allocated at the same time.
+
+ Not used in HALv3 or newer
+
>= 0
Only used by HAL2.x.
@@ -4634,6 +4725,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
A frame counter set by the framework. This value monotonically
increases with every new result (that is, each new result has a unique
frameCount value).
+
+ Not used in HALv3 or newer
+
count of frames
> 0
Reset on release()
@@ -5000,7 +5094,7 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
- android.lens.poseTranslation
- android.lens.poseRotation
- android.lens.intrinsicCalibration
- - android.lens.radialDistortion
+ - android.lens.distortion
* The android.depth.depthIsExclusive entry is listed by this device.
* As of Android P, the android.lens.poseReference entry is listed by this device.
* A LIMITED camera with only the DEPTH_OUTPUT capability does not have to support
@@ -5125,7 +5219,7 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
- android.lens.poseRotation
- android.lens.poseTranslation
- android.lens.intrinsicCalibration
- - android.lens.radialDistortion
+ - android.lens.distortion
* The SENSOR_INFO_TIMESTAMP_SOURCE of the logical device and physical devices must be
the same.
* The logical camera device must be LIMITED or higher device.
@@ -5607,6 +5701,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
The list of image formats that are supported by this
camera device for output streams.
+
+ Not used in HALv3 or newer
+
All camera devices will support JPEG and YUV_420_888 formats.
@@ -5642,6 +5739,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
The minimum frame duration that is supported
for each resolution in android.scaler.availableJpegSizes.
+
+ Not used in HALv3 or newer
+
Nanoseconds
TODO: Remove property.
@@ -5661,6 +5761,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
2
The JPEG resolutions that are supported by this camera device.
+
+ Not used in HALv3 or newer
+
TODO: Remove property.
The resolutions are listed as `(width, height)` pairs. All camera devices will support
@@ -5701,6 +5804,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
android.scaler.availableProcessedSizes), this property lists the
minimum supportable frame duration for that size.
+
+ Not used in HALv3 or newer
+
Nanoseconds
This should correspond to the frame duration when only that processed
@@ -5722,6 +5828,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
processed output streams, such as YV12, NV12, and
platform opaque YUV/RGB streams to the GPU or video
encoders.
+
+ Not used in HALv3 or newer
+
The resolutions are listed as `(width, height)` pairs.
@@ -5761,6 +5870,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
android.scaler.availableRawSizes), this property lists the minimum
supportable frame duration for that size.
+
+ Not used in HALv3 or newer
+
Nanoseconds
Should correspond to the frame duration when only the raw stream is
@@ -5780,6 +5892,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
The resolutions available for use with raw
sensor output streams, listed as width,
height
+
+ Not used in HALv3 or newer
+
@@ -6649,7 +6764,7 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
The currently supported fields that correct for geometric distortion are:
- 1. android.lens.radialDistortion.
+ 1. android.lens.distortion.
If all of the geometric distortion fields are no-ops, this rectangle will be the same
as the post-distortion-corrected rectangle given in
@@ -8167,6 +8282,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
The best-fit color channel gains calculated
by the camera device's statistics units for the current output frame.
+
+ Never fully implemented or specified; do not use
+
This may be different than the gains used for this frame,
since statistics processing on data from a new frame
@@ -8193,6 +8311,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
The best-fit color transform matrix estimate
calculated by the camera device's statistics units for the current
output frame.
+
+ Never fully implemented or specified; do not use
+
The camera device will provide the estimate from its
statistics unit on the white balance transforms to use
for the next frame. These are the values the camera device believes
@@ -8322,7 +8443,7 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
A control for selecting whether OIS position information is included in output
result metadata.
- android.Statistics.info.availableOisDataModes
+ android.statistics.info.availableOisDataModes
@@ -9541,5 +9662,76 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
+
+
+
+
+ OFF
+ No distortion correction is applied.
+ FAST Lens distortion correction is applied without reducing frame rate
+ relative to sensor output. It may be the same as OFF if distortion correction would
+ reduce frame rate relative to sensor.
+ HIGH_QUALITY High-quality distortion correction is applied, at the cost of
+ possibly reduced frame rate relative to sensor output.
+
+ Mode of operation for the lens distortion correction block.
+ android.distortionCorrection.availableModes
+ The lens distortion correction block attempts to improve image quality by fixing
+ radial, tangential, or other geometric aberrations in the camera device's optics. If
+ available, the android.lens.distortion field documents the lens's distortion parameters.
+
+ OFF means no distortion correction is done.
+
+ FAST/HIGH_QUALITY both mean camera device determined distortion correction will be
+ applied. HIGH_QUALITY mode indicates that the camera device will use the highest-quality
+ correction algorithms, even if it slows down capture rate. FAST means the camera device
+ will not slow down capture rate when applying correction. FAST may be the same as OFF if
+ any correction at all would slow down capture rate. Every output stream will have a
+ similar amount of enhancement applied.
+
+ The correction only applies to processed outputs such as YUV, JPEG, or DEPTH16; it is not
+ applied to any RAW output. Metadata coordinates such as face rectangles or metering
+ regions are also not affected by correction.
+
+ Applications enabling distortion correction need to pay extra attention when converting
+ image coordinates between corrected output buffers and the sensor array. For example, if
+ the app supports tap-to-focus and enables correction, it then has to apply the distortion
+ model described in android.lens.distortion to the image buffer tap coordinates to properly
+ calculate the tap position on the sensor active array to be used with
+ android.control.afRegions. The same applies in reverse to detected face rectangles if
+ they need to be drawn on top of the corrected output buffers.
+
+
+
+
+
+
+ n
+
+
+ List of distortion correction modes for android.distortionCorrection.mode that are
+ supported by this camera device.
+
+ Any value listed in android.distortionCorrection.mode
+
+ No device is required to support this API; such devices will always list only 'OFF'.
+ All devices that support this API will list both FAST and HIGH_QUALITY.
+
+
+ HAL must support both FAST and HIGH_QUALITY if distortion correction is available
+ on the camera device, but the underlying implementation can be the same for both modes.
+ That is, if the highest quality implementation on the camera device does not slow down
+ capture rate, then FAST and HIGH_QUALITY will generate the same output.
+
+
+
+
+
+
+
+
+
+