Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a05e59d1 authored by Zhijun He's avatar Zhijun He
Browse files

Camera2: Add aberration correction control

Change-Id: I0a3530ee8d5550f0f2a58c4d7af284821d87cb4d
parent a8c5bade
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -12354,6 +12354,7 @@ package android.hardware.camera2 {
    method public T get(android.hardware.camera2.CameraCharacteristics.Key<T>);
    method public java.util.List<android.hardware.camera2.CaptureRequest.Key<?>> getAvailableCaptureRequestKeys();
    method public java.util.List<android.hardware.camera2.CaptureResult.Key<?>> getAvailableCaptureResultKeys();
    field public static final android.hardware.camera2.CameraCharacteristics.Key COLOR_CORRECTION_AVAILABLE_ABERRATION_CORRECTION_MODES;
    field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_AE_AVAILABLE_ANTIBANDING_MODES;
    field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_AE_AVAILABLE_MODES;
    field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES;
@@ -12467,6 +12468,9 @@ package android.hardware.camera2 {
  public abstract class CameraMetadata {
    method public java.util.List<TKey> getKeys();
    field public static final int COLOR_CORRECTION_ABERRATION_CORRECTION_MODE_FAST = 1; // 0x1
    field public static final int COLOR_CORRECTION_ABERRATION_CORRECTION_MODE_HIGH_QUALITY = 2; // 0x2
    field public static final int COLOR_CORRECTION_ABERRATION_CORRECTION_MODE_OFF = 0; // 0x0
    field public static final int COLOR_CORRECTION_MODE_FAST = 1; // 0x1
    field public static final int COLOR_CORRECTION_MODE_HIGH_QUALITY = 2; // 0x2
    field public static final int COLOR_CORRECTION_MODE_TRANSFORM_MATRIX = 0; // 0x0
@@ -12656,6 +12660,7 @@ package android.hardware.camera2 {
    method public java.lang.Object getTag();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.hardware.camera2.CaptureRequest.Key BLACK_LEVEL_LOCK;
    field public static final android.hardware.camera2.CaptureRequest.Key COLOR_CORRECTION_ABERRATION_CORRECTION_MODE;
    field public static final android.hardware.camera2.CaptureRequest.Key COLOR_CORRECTION_GAINS;
    field public static final android.hardware.camera2.CaptureRequest.Key COLOR_CORRECTION_MODE;
    field public static final android.hardware.camera2.CaptureRequest.Key COLOR_CORRECTION_TRANSFORM;
@@ -12727,6 +12732,7 @@ package android.hardware.camera2 {
    method public android.hardware.camera2.CaptureRequest getRequest();
    method public int getSequenceId();
    field public static final android.hardware.camera2.CaptureResult.Key BLACK_LEVEL_LOCK;
    field public static final android.hardware.camera2.CaptureResult.Key COLOR_CORRECTION_ABERRATION_CORRECTION_MODE;
    field public static final android.hardware.camera2.CaptureResult.Key COLOR_CORRECTION_GAINS;
    field public static final android.hardware.camera2.CaptureResult.Key COLOR_CORRECTION_MODE;
    field public static final android.hardware.camera2.CaptureResult.Key COLOR_CORRECTION_TRANSFORM;
+14 −0
Original line number Diff line number Diff line
@@ -288,6 +288,20 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     *~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~*/


    /**
     * <p>The set of aberration correction modes supported by this camera device.</p>
     * <p>This metadata lists the valid modes for {@link CaptureRequest#COLOR_CORRECTION_ABERRATION_CORRECTION_MODE android.colorCorrection.aberrationCorrectionMode}.
     * If no aberration correction modes are available for a device, this list will solely include
     * OFF mode.</p>
     * <p>For FULL capability device ({@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} <code>==</code> FULL), OFF must be
     * included.</p>
     *
     * @see CaptureRequest#COLOR_CORRECTION_ABERRATION_CORRECTION_MODE
     * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
     */
    public static final Key<int[]> COLOR_CORRECTION_AVAILABLE_ABERRATION_CORRECTION_MODES =
            new Key<int[]>("android.colorCorrection.availableAberrationCorrectionModes", int[].class);

    /**
     * <p>The set of auto-exposure antibanding modes that are
     * supported by this camera device.</p>
+31 −0
Original line number Diff line number Diff line
@@ -317,12 +317,19 @@ public abstract class CameraMetadata<TKey> {
     * <li>android.lens.info.shadingMapSize</li>
     * </ul>
     * </li>
     * <li>Manual aberration correction control (if aberration correction is supported)<ul>
     * <li>{@link CaptureRequest#COLOR_CORRECTION_ABERRATION_CORRECTION_MODE android.colorCorrection.aberrationCorrectionMode}</li>
     * <li>{@link CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_CORRECTION_MODES android.colorCorrection.availableAberrationCorrectionModes}</li>
     * </ul>
     * </li>
     * </ul>
     * <p>If auto white balance is enabled, then the camera device
     * will accurately report the values applied by AWB in the result.</p>
     * <p>A given camera device may also support additional post-processing
     * controls, but this capability only covers the above list of controls.</p>
     *
     * @see CaptureRequest#COLOR_CORRECTION_ABERRATION_CORRECTION_MODE
     * @see CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_CORRECTION_MODES
     * @see CaptureRequest#COLOR_CORRECTION_GAINS
     * @see CaptureRequest#COLOR_CORRECTION_TRANSFORM
     * @see CaptureRequest#SHADING_MODE
@@ -663,6 +670,30 @@ public abstract class CameraMetadata<TKey> {
     */
    public static final int COLOR_CORRECTION_MODE_HIGH_QUALITY = 2;

    //
    // Enumeration values for CaptureRequest#COLOR_CORRECTION_ABERRATION_CORRECTION_MODE
    //

    /**
     * <p>No aberration correction is applied.</p>
     * @see CaptureRequest#COLOR_CORRECTION_ABERRATION_CORRECTION_MODE
     */
    public static final int COLOR_CORRECTION_ABERRATION_CORRECTION_MODE_OFF = 0;

    /**
     * <p>Aberration correction will not slow down capture rate
     * relative to sensor raw output.</p>
     * @see CaptureRequest#COLOR_CORRECTION_ABERRATION_CORRECTION_MODE
     */
    public static final int COLOR_CORRECTION_ABERRATION_CORRECTION_MODE_FAST = 1;

    /**
     * <p>Aberration correction operates at improved quality but reduced
     * capture rate (relative to sensor raw output).</p>
     * @see CaptureRequest#COLOR_CORRECTION_ABERRATION_CORRECTION_MODE
     */
    public static final int COLOR_CORRECTION_ABERRATION_CORRECTION_MODE_HIGH_QUALITY = 2;

    //
    // Enumeration values for CaptureRequest#CONTROL_AE_ANTIBANDING_MODE
    //
+23 −0
Original line number Diff line number Diff line
@@ -557,6 +557,29 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>>
    public static final Key<android.hardware.camera2.params.RggbChannelVector> COLOR_CORRECTION_GAINS =
            new Key<android.hardware.camera2.params.RggbChannelVector>("android.colorCorrection.gains", android.hardware.camera2.params.RggbChannelVector.class);

    /**
     * <p>Mode of operation for the chromatic aberration correction algorithm.</p>
     * <p>This must be set to a valid mode from
     * {@link CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_CORRECTION_MODES android.colorCorrection.availableAberrationCorrectionModes}.</p>
     * <p>Chromatic (color) aberration is caused by the fact that different wavelengths of light
     * can not focus on the same point after exiting from the lens. This metadata defines
     * the high level control of chromatic aberration correction algorithm, which aims to
     * minimize the chromatic artifacts that may occur along the object boundaries in an
     * image.</p>
     * <p>FAST/HIGH_QUALITY both mean that camera device determined aberration
     * correction will be applied. HIGH_QUALITY mode indicates that the camera device will
     * use the highest-quality aberration correction algorithms, even if it slows down
     * capture rate. FAST means the camera device will not slow down capture rate when
     * applying aberration correction.</p>
     *
     * @see CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_CORRECTION_MODES
     * @see #COLOR_CORRECTION_ABERRATION_CORRECTION_MODE_OFF
     * @see #COLOR_CORRECTION_ABERRATION_CORRECTION_MODE_FAST
     * @see #COLOR_CORRECTION_ABERRATION_CORRECTION_MODE_HIGH_QUALITY
     */
    public static final Key<Integer> COLOR_CORRECTION_ABERRATION_CORRECTION_MODE =
            new Key<Integer>("android.colorCorrection.aberrationCorrectionMode", int.class);

    /**
     * <p>The desired setting for the camera device's auto-exposure
     * algorithm's antibanding compensation.</p>
+23 −0
Original line number Diff line number Diff line
@@ -402,6 +402,29 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> {
    public static final Key<android.hardware.camera2.params.RggbChannelVector> COLOR_CORRECTION_GAINS =
            new Key<android.hardware.camera2.params.RggbChannelVector>("android.colorCorrection.gains", android.hardware.camera2.params.RggbChannelVector.class);

    /**
     * <p>Mode of operation for the chromatic aberration correction algorithm.</p>
     * <p>This must be set to a valid mode from
     * {@link CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_CORRECTION_MODES android.colorCorrection.availableAberrationCorrectionModes}.</p>
     * <p>Chromatic (color) aberration is caused by the fact that different wavelengths of light
     * can not focus on the same point after exiting from the lens. This metadata defines
     * the high level control of chromatic aberration correction algorithm, which aims to
     * minimize the chromatic artifacts that may occur along the object boundaries in an
     * image.</p>
     * <p>FAST/HIGH_QUALITY both mean that camera device determined aberration
     * correction will be applied. HIGH_QUALITY mode indicates that the camera device will
     * use the highest-quality aberration correction algorithms, even if it slows down
     * capture rate. FAST means the camera device will not slow down capture rate when
     * applying aberration correction.</p>
     *
     * @see CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_CORRECTION_MODES
     * @see #COLOR_CORRECTION_ABERRATION_CORRECTION_MODE_OFF
     * @see #COLOR_CORRECTION_ABERRATION_CORRECTION_MODE_FAST
     * @see #COLOR_CORRECTION_ABERRATION_CORRECTION_MODE_HIGH_QUALITY
     */
    public static final Key<Integer> COLOR_CORRECTION_ABERRATION_CORRECTION_MODE =
            new Key<Integer>("android.colorCorrection.aberrationCorrectionMode", int.class);

    /**
     * <p>The desired setting for the camera device's auto-exposure
     * algorithm's antibanding compensation.</p>