public abstract class CameraMetadata
extends Object
java.lang.Object | |
↳ | android.hardware.camera2.CameraMetadata<TKey> |
Known Direct Subclasses |
Known Indirect Subclasses |
相机控件和信息的基类。
该类定义用于查询相机特性或捕获结果以及设置相机请求参数的基本键/值映射。
CameraMetadata的所有实例都是不可变的。 包含getKeys()
的密钥列表不会更改,也不会在对象的整个生命周期中由#get
的任何密钥返回值。
Public methods |
|
---|---|
List<TKey> |
getKeys() 返回此映射中包含的键的列表。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
int COLOR_CORRECTION_ABERRATION_MODE_FAST
像差校正不会减慢相对于传感器原始输出的捕获速率。
常数值:1(0x00000001)
int COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY
像差校正以提高的质量运行,但捕获率可能降低(相对于传感器原始输出速率)
常量值:2(0x00000002)
int COLOR_CORRECTION_ABERRATION_MODE_OFF
没有应用像差校正。
常量值:0(0x00000000)
int COLOR_CORRECTION_MODE_FAST
色彩校正处理不能减慢相对于传感器原始输出的捕获速率。
可以应用超出指定白平衡管线的高级白平衡调整。
如果使用
启用了 android.control.awbMode
!= OFF
,则摄像机设备使用最后一帧的AWB值(如果AWB从未运行,则使用默认值)。android.control.awbMode
!= OFF
常数值:1(0x00000001)
int COLOR_CORRECTION_MODE_HIGH_QUALITY
色彩校正处理的质量有所提高,但捕获率可能会降低(相对于传感器原始输出速率)
可以应用超出指定白平衡管线的高级白平衡调整。
如果使用
启用AWB,则摄像机设备将使用最后一帧的AWB值(如果AWB从未运行,则使用默认值)。android.control.awbMode
!= OFF
常量值:2(0x00000002)
int COLOR_CORRECTION_MODE_TRANSFORM_MATRIX
使用 android.colorCorrection.transform
矩阵和 android.colorCorrection.gains
进行颜色转换。
所有先进的白平衡调整(未由我们的白平衡管线指定)必须禁用。
如果使用
启用AWB,则忽略TRANSFORM_MATRIX。 相机设备会将此值覆盖为FAST或HIGH_QUALITY。android.control.awbMode
!= OFF
常量值:0(0x00000000)
int CONTROL_AE_ANTIBANDING_MODE_50HZ
The camera device will adjust exposure duration to avoid banding problems with 50Hz illumination sources.
也可以看看:
常数值:1(0x00000001)
int CONTROL_AE_ANTIBANDING_MODE_60HZ
相机设备将调整曝光持续时间以避免使用60Hz照明光源带来的问题。
也可以看看:
常量值:2(0x00000002)
int CONTROL_AE_ANTIBANDING_MODE_AUTO
相机设备将自动调整其抗生素程序以适应当前的照明条件。 如果AUTO在给定的摄像机设备上可用,这是默认模式。
也可以看看:
常量值:3(0x00000003)
int CONTROL_AE_ANTIBANDING_MODE_OFF
相机设备不会调整曝光时间以避免出现条带问题。
也可以看看:
常量值:0(0x00000000)
int CONTROL_AE_MODE_OFF
相机设备的自动曝光程序被禁用。
应用程序选择的 android.sensor.exposureTime
, android.sensor.sensitivity
和 android.sensor.frameDuration
由相机设备所使用的,与沿android.flash *字段,如果有一个闪光单元,其用于该摄像装置。
请注意,当AE处于OFF模式时,自动白平衡(AWB)和自动对焦(AF)行为取决于设备。 为了在不同设备上保持一致的行为,建议在将AE设置为OFF之前将AWB和AF设置为OFF模式或锁定AWB和AF。 见android.control.awbMode
, android.control.afMode
, android.control.awbLock
,并android.control.afTrigger
的更多细节。
LEGACY设备不支持OFF模式,并会覆盖尝试将此值用于ON。
也可以看看:
常量值:0(0x00000000)
int CONTROL_AE_MODE_ON
相机设备的自动曝光程序处于活动状态,无需进行闪光灯控制。
该应用程序对价值android.sensor.exposureTime
, android.sensor.sensitivity
,并android.sensor.frameDuration
被忽略。 该应用程序可以控制各种android.flash。*字段。
常数值:1(0x00000001)
int CONTROL_AE_MODE_ON_ALWAYS_FLASH
与开启一样,除了相机设备也控制相机的闪光灯组件外,始终将其开启以进行拍摄。
闪光灯可能会在预捕获序列期间触发(由 android.control.aePrecaptureTrigger
触发),并且对于 android.control.captureIntent
字段设置为STILL_CAPTURE的捕获将始终触发
常量值:3(0x00000003)
int CONTROL_AE_MODE_ON_AUTO_FLASH
像ON一样,除了相机设备还控制相机的闪光灯组件,在低光照条件下进行拍摄。
闪光灯可能在预捕获序列期间触发(由 android.control.aePrecaptureTrigger
触发),并且可能因 android.control.captureIntent
字段设置为STILL_CAPTURE
常量值:2(0x00000002)
int CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE
像ON_AUTO_FLASH一样,但自动消除红眼。
如果相机设备认为有必要,则在预捕获期间,红眼消除闪光灯将闪光。
也可以看看:
常量值:4(0x00000004)
int CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL
相机设备将取消当前有效或完成的预捕测量序列,自动曝光程序将返回到其初始状态。
常量值:2(0x00000002)
int CONTROL_AE_PRECAPTURE_TRIGGER_IDLE
触发器空闲。
常量值:0(0x00000000)
int CONTROL_AE_PRECAPTURE_TRIGGER_START
预捕测量序列将由相机设备启动。
The exact effect of the precapture trigger depends on the current AE mode and state.
常数值:1(0x00000001)
int CONTROL_AE_STATE_CONVERGED
AE为当前场景提供了一组很好的控制值。
也可以看看:
常量值:2(0x00000002)
int CONTROL_AE_STATE_FLASH_REQUIRED
AE具有一套很好的控制值,但是需要发射闪光以获得良好的质量。
也可以看看:
常量值:4(0x00000004)
int CONTROL_AE_STATE_INACTIVE
AE关闭或最近重置。
当相机设备打开时,它会在此状态下启动。 这是一个瞬态,相机设备可能会跳过在捕获结果中报告此状态。
也可以看看:
常量值:0(0x00000000)
int CONTROL_AE_STATE_LOCKED
AE已被锁定。
也可以看看:
常量值:3(0x00000003)
int CONTROL_AE_STATE_PRECAPTURE
AE被要求做一个预捕获序列,目前正在执行它。
预捕获可通过将android.control.aePrecaptureTrigger
设置为START来触发。 当前激活并完成(如果它导致相机设备内部自动曝光锁定)预取测光序列可通过将android.control.aePrecaptureTrigger
设置为CANCEL取消。
一旦PRECAPTURE完成,AE将根据情况转换为CONVERGED或FLASH_REQUIRED。 这是一个瞬态,相机设备可能会跳过在捕获结果中报告此状态。
常量值:5(0x00000005)
int CONTROL_AE_STATE_SEARCHING
AE对当前场景还没有一套好的控制值。
这是一个瞬态,相机设备可能会跳过在捕获结果中报告此状态。
也可以看看:
常数值:1(0x00000001)
int CONTROL_AF_MODE_AUTO
基本的自动对焦模式。
在此模式下,除非调用自动对焦触发动作,否则镜头不会移动。 当该触发器被激活时,AF将转变为ACTIVE_SCAN,然后转变为扫描结果(FOCUSED或NOT_FOCUSED)。
如果镜头不是固定焦点,始终支持。
使用 android.lens.info.minimumFocusDistance
来确定镜头是否为定焦。
触发AF_CANCEL将镜头位置重置为默认值,并将AF状态设置为INACTIVE。
常数值:1(0x00000001)
int CONTROL_AF_MODE_CONTINUOUS_PICTURE
在这种模式下,AF算法会不断修改镜头位置,以尝试提供持续聚焦的图像流。
聚焦行为应该适用于静态图像捕捉; 通常这意味着尽可能快地进行对焦。 当不涉及AF触发时,AF算法应以INACTIVE状态启动,然后在其尝试保持焦点时适当转换到PASSIVE_SCAN和PASSIVE_FOCUSED状态。 当激活AF触发时,如果激活,算法应完成其PASSIVE_SCAN,然后视情况转换为AF_FOCUSED或AF_NOT_FOCUSED,并锁定镜头位置,直到收到取消AF触发。
当AF取消触发器被激活时,算法应该转换回INACTIVE,然后就像刚启动一样。
也可以看看:
常量值:4(0x00000004)
int CONTROL_AF_MODE_CONTINUOUS_VIDEO
在这种模式下,AF算法会不断修改镜头位置,以尝试提供持续聚焦的图像流。
聚焦行为应该适合高质量的视频录制; 通常这意味着较慢的焦点移动并且没有超调。 当不涉及AF触发时,AF算法应该以INACTIVE状态启动,然后根据需要转换到PASSIVE_SCAN和PASSIVE_FOCUSED状态。 当激活AF触发时,算法应该立即转换为AF_FOCUSED或AF_NOT_FOCUSED,并锁定镜头位置,直到收到取消AF触发。
一旦收到取消,算法应该转换回INACTIVE并恢复被动扫描。 请注意,此行为与CONTINUOUS_PICTURE不同,因为正在进行的PASSIVE_SCAN必须立即取消。
也可以看看:
常量值:3(0x00000003)
int CONTROL_AF_MODE_EDOF
扩大景深(数字对焦)模式。
相机设备将自动生成具有扩展景深的图像; 拍照前不需要做特别的对焦操作。
AF触发被忽略,并且AF状态将始终为INACTIVE。
也可以看看:
常量值:5(0x00000005)
int CONTROL_AF_MODE_MACRO
特写对焦模式。
在此模式下,除非调用自动对焦触发动作,否则镜头不会移动。 当该触发器被激活时,AF将转变为ACTIVE_SCAN,然后转变为扫描结果(FOCUSED或NOT_FOCUSED)。 此模式专门针对与相机非常接近的物体进行了优化。
When that trigger is activated, AF will transition to ACTIVE_SCAN, then to the outcome of the scan (FOCUSED or NOT_FOCUSED). Triggering cancel AF resets the lens position to default, and sets the AF state to INACTIVE.
也可以看看:
常量值:2(0x00000002)
int CONTROL_AF_MODE_OFF
自动对焦程序不控制镜头; android.lens.focusDistance
由应用程序控制。
常量值:0(0x00000000)
int CONTROL_AF_STATE_ACTIVE_SCAN
AF正在执行AF扫描,因为它是由AF触发器触发的。
仅适用于AUTO或MACRO AF模式。 这是一个瞬态,相机设备可能会跳过在捕获结果中报告此状态。
也可以看看:
常量值:3(0x00000003)
int CONTROL_AF_STATE_FOCUSED_LOCKED
AF认为它正确聚焦并锁定焦点。
只有在发送明确的启动AF触发后( android.control.afTrigger
),才能达到此状态,此时已获得良好的聚焦。
在更改自动对焦模式( android.control.afMode
)或将新的自动对焦触发发送到相机设备( android.control.afTrigger
)之前,镜头将保持静止。
常量值:4(0x00000004)
int CONTROL_AF_STATE_INACTIVE
AF关闭或尚未尝试扫描/被要求扫描。
当相机设备打开时,它会在此状态下启动。 这是一个瞬态,相机设备可能会跳过在捕获结果中报告此状态。
也可以看看:
常量值:0(0x00000000)
int CONTROL_AF_STATE_NOT_FOCUSED_LOCKED
AF未能成功关注焦点并锁定焦点。
只有在发送明确的启动AF触发后( android.control.afTrigger
),才能达到此状态,此时无法获得良好的聚焦。
镜头将保持静止,直到自动对焦模式( android.control.afMode
)更改或新的自动对焦触发器发送到相机设备( android.control.afTrigger
)。
常量值:5(0x00000005)
int CONTROL_AF_STATE_PASSIVE_FOCUSED
AF目前认为它是重点,但可能随时重新开始扫描。
仅由CONTINUOUS_ * AF模式使用。 这是一个瞬态,相机设备可能会跳过在捕获结果中报告此状态。
也可以看看:
常量值:2(0x00000002)
int CONTROL_AF_STATE_PASSIVE_SCAN
AF正在执行以连续自动对焦模式启动相机设备的AF扫描。
仅由CONTINUOUS_ * AF模式使用。 这是一个瞬态,相机设备可能会跳过在捕获结果中报告此状态。
也可以看看:
常数值:1(0x00000001)
int CONTROL_AF_STATE_PASSIVE_UNFOCUSED
AF完成被动扫描而不发现焦点,并可能随时重新开始扫描。
仅由CONTINUOUS_ * AF模式使用。 这是一个瞬态,相机设备可能会跳过在捕获结果中报告此状态。
LEGACY相机设备不支持此状态。 被动扫描完成后,它将始终转到PASSIVE_FOCUSED。
也可以看看:
常数值:6(0x00000006)
int CONTROL_AF_TRIGGER_CANCEL
自动对焦将返回到其初始状态,并取消任何当前激活的触发。
也可以看看:
常量值:2(0x00000002)
int CONTROL_AF_TRIGGER_IDLE
The trigger is idle.
也可以看看:
常量值:0(0x00000000)
int CONTROL_AF_TRIGGER_START
现在会自动对焦。
也可以看看:
常数值:1(0x00000001)
int CONTROL_AWB_MODE_AUTO
相机设备的自动白平衡例程处于活动状态。
应用程序的值android.colorCorrection.transform
和android.colorCorrection.gains
将被忽略。 对于支持MANUAL_POST_PROCESSING功能的设备,相机设备用于转换和增益的值将在此请求的捕获结果中可用。
常数值:1(0x00000001)
int CONTROL_AWB_MODE_CLOUDY_DAYLIGHT
摄像机设备的自动白平衡例程被禁用; 相机设备使用阴天白炽灯作为白平衡假设的场景照明。
应用程序的值android.colorCorrection.transform
和android.colorCorrection.gains
将被忽略。 对于支持MANUAL_POST_PROCESSING功能的设备,相机设备用于转换和增益的值将在此请求的捕获结果中可用。
常数值:6(0x00000006)
int CONTROL_AWB_MODE_DAYLIGHT
摄像机设备的自动白平衡例程被禁用; 相机设备使用日光灯作为白平衡假设的场景照明。
虽然确切的白平衡变换取决于相机设备,但它们将大致匹配CIE标准光源D65。
应用程序的值android.colorCorrection.transform
和android.colorCorrection.gains
将被忽略。 对于支持MANUAL_POST_PROCESSING功能的设备,相机设备用于转换和增益的值将在此请求的捕获结果中可用。
常量值:5(0x00000005)
int CONTROL_AWB_MODE_FLUORESCENT
摄像机设备的自动白平衡例程被禁用; 相机设备使用荧光灯作为白平衡假设的场景照明。
尽管确切的白平衡变换取决于相机设备,但它们将大致匹配CIE标准光源F2。
应用程序的值android.colorCorrection.transform
和android.colorCorrection.gains
将被忽略。 对于支持MANUAL_POST_PROCESSING功能的设备,相机设备用于转换和增益的值将在此请求的捕获结果中可用。
常量值:3(0x00000003)
int CONTROL_AWB_MODE_INCANDESCENT
摄像机设备的自动白平衡例程被禁用; 相机设备使用白炽灯作为白平衡假设的场景照明。
虽然确切的白平衡变换取决于相机设备,但它们将大致匹配CIE标准光源A.
应用程序的值android.colorCorrection.transform
和android.colorCorrection.gains
将被忽略。 对于支持MANUAL_POST_PROCESSING功能的设备,相机设备用于转换和增益的值将在此请求的捕获结果中可用。
常量值:2(0x00000002)
int CONTROL_AWB_MODE_OFF
相机设备的自动白平衡例程被禁用。
应用程序选择的色彩转换矩阵( android.colorCorrection.transform
)和增益( android.colorCorrection.gains
)被相机设备用于手动白平衡控制。
常量值:0(0x00000000)
int CONTROL_AWB_MODE_SHADE
摄像机设备的自动白平衡例程被禁用; 相机设备使用阴影灯作为白平衡假定的场景照明。
应用程序的值android.colorCorrection.transform
和android.colorCorrection.gains
被忽略。 对于支持MANUAL_POST_PROCESSING功能的设备,相机设备用于转换和增益的值将在此请求的捕获结果中可用。
常量值:8(0x00000008)
int CONTROL_AWB_MODE_TWILIGHT
摄像机设备的自动白平衡例程被禁用; 相机设备使用微光作为白平衡假设的场景照明。
应用程序的值android.colorCorrection.transform
和android.colorCorrection.gains
被忽略。 对于支持MANUAL_POST_PROCESSING功能的设备,相机设备用于转换和增益的值将在此请求的捕获结果中可用。
常量值:7(0x00000007)
int CONTROL_AWB_MODE_WARM_FLUORESCENT
摄像机设备的自动白平衡例程被禁用; 相机设备使用温暖的荧光灯作为白平衡假设的场景照明。
虽然确切的白平衡变换取决于相机设备,但它们将大致匹配CIE标准光源F4。
应用程序的值android.colorCorrection.transform
和android.colorCorrection.gains
将被忽略。 对于支持MANUAL_POST_PROCESSING功能的设备,相机设备用于转换和增益的值将在此请求的捕获结果中可用。
常量值:4(0x00000004)
int CONTROL_AWB_STATE_CONVERGED
AWB对当前场景有一套很好的控制值。
也可以看看:
常量值:2(0x00000002)
int CONTROL_AWB_STATE_INACTIVE
AWB未处于自动模式,或尚未开始测量。
当相机设备打开时,它会在此状态下启动。 这是一个瞬态,相机设备可能会跳过在捕获结果中报告此状态。
也可以看看:
常量值:0(0x00000000)
int CONTROL_AWB_STATE_LOCKED
AWB已被锁定。
也可以看看:
常量值:3(0x00000003)
int CONTROL_AWB_STATE_SEARCHING
AWB对于当前场景还没有一套好的控制值。
这是一个瞬态,相机设备可能会跳过在捕获结果中报告此状态。
也可以看看:
常数值:1(0x00000001)
int CONTROL_CAPTURE_INTENT_CUSTOM
此请求的目标不属于其他类别。 相机设备将默认为预览式行为。
也可以看看:
常量值:0(0x00000000)
int CONTROL_CAPTURE_INTENT_MANUAL
此请求用于应用程序想要直接控制捕获参数的手动捕获用例。
例如,应用程序可能希望手动控制 android.sensor.exposureTime
, android.sensor.sensitivity
等
常数值:6(0x00000006)
int CONTROL_CAPTURE_INTENT_PREVIEW
此请求用于预览式用例。
预捕获触发器可用于开始闪光测光序列。
也可以看看:
常数值:1(0x00000001)
int CONTROL_CAPTURE_INTENT_STILL_CAPTURE
此请求适用于仍然捕获类型的用例。
如果闪光灯处于自动控制状态,则可能会根据需要进行闪光。
也可以看看:
常量值:2(0x00000002)
int CONTROL_CAPTURE_INTENT_VIDEO_RECORD
此请求适用于视频录制用例。
也可以看看:
常量值:3(0x00000003)
int CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT
此请求用于视频快照(记录视频时的静止图像)用例。
相机设备应该在不中断视频录制帧率的情况下拍摄最高质量的图像(给出其他设置)。
也可以看看:
常量值:4(0x00000004)
int CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG
此请求用于ZSL用例; 该应用程序将传输全分辨率图像并在稍后重新处理一个或多个图像以进行最终捕获。
也可以看看:
常量值:5(0x00000005)
int CONTROL_EFFECT_MODE_AQUA
将蓝色色调添加到图像中的“水色”效果。
也可以看看:
常量值:8(0x00000008)
int CONTROL_EFFECT_MODE_BLACKBOARD
“黑板”效果,图像通常显示为黑色区域,具有白色或灰色的细节。
也可以看看:
常量值:7(0x00000007)
int CONTROL_EFFECT_MODE_MONO
将图像映射为单色的“单色”效果。
这通常是灰度。
也可以看看:
常数值:1(0x00000001)
int CONTROL_EFFECT_MODE_NEGATIVE
图像颜色反转的“负面照片”效果。
也可以看看:
常量值:2(0x00000002)
int CONTROL_EFFECT_MODE_OFF
没有颜色效果将被应用。
也可以看看:
常量值:0(0x00000000)
int CONTROL_EFFECT_MODE_POSTERIZE
图像使用色调的离散区域而不是色调的连续渐变的“后凸”效果。
也可以看看:
常量值:5(0x00000005)
int CONTROL_EFFECT_MODE_SEPIA
将图像映射为温暖的灰色,红色和棕色色调的“棕褐色”效果。
也可以看看:
常量值:4(0x00000004)
int CONTROL_EFFECT_MODE_SOLARIZE
“色调”效果(Sabattier效果),其中图像完全或部分颠倒。
也可以看看:
常量值:3(0x00000003)
int CONTROL_EFFECT_MODE_WHITEBOARD
“白板”效果,图像通常显示为白色区域,具有黑色或灰色的细节。
也可以看看:
常数值:6(0x00000006)
int CONTROL_MODE_AUTO
使用每个单独3A例程的设置。
捕获参数的手动控制被禁用。 除了sceneMode,android.control。*中的所有控件都会生效。
也可以看看:
常数值:1(0x00000001)
int CONTROL_MODE_OFF
管道的全部应用控制。
设备的测光和对焦(3A)程序的所有控制 android.control.captureIntent
禁用,android.control。*中的其他设置均不起作用,但 android.control.captureIntent
可能会被相机设备用于选择处理后处理块不允许手动控制,或不被相机API曝光。
但是,摄像机设备的3A程序可以继续收集统计数据并更新其内部状态,以便在控制切换到自动模式时,可以立即应用良好的控制值。
常量值:0(0x00000000)
int CONTROL_MODE_OFF_KEEP_STATE
与OFF模式相同,但相机设备后台自动曝光,自动白平衡和自动对焦算法(3A)不会使用此捕捉来更新其统计信息。
Specifically, the 3A routines are locked to the last values set from a request with AUTO, OFF, or USE_SCENE_MODE, and any statistics or state updates collected from manual captures with OFF_KEEP_STATE will be discarded by the camera device.
也可以看看:
常量值:3(0x00000003)
int CONTROL_MODE_USE_SCENE_MODE
使用特定的场景模式。
启用此功能将禁用control.aeMode,control.awbMode和control.afMode控件; 当USE_SCENE_MODE处于活动状态时(FACE_PRIORITY场景模式除外),相机设备将忽略这些设置。 其他控制项目仍处于活动状态。 此设置只能在支持场景模式时使用(即android.control.availableSceneModes
包含除DISABLED以外的其他模式)。
常量值:2(0x00000002)
int CONTROL_SCENE_MODE_ACTION
针对快速移动物体的照片进行了优化。
与SPORTS类似。
也可以看看:
常量值:2(0x00000002)
int CONTROL_SCENE_MODE_BARCODE
针对准确捕获条形码照片进行优化,以供希望读取条形码值的相机应用程序使用。
也可以看看:
常量值:16(0x00000010)
int CONTROL_SCENE_MODE_BEACH
针对明亮的户外海滩设置进行了优化。
也可以看看:
常量值:8(0x00000008)
int CONTROL_SCENE_MODE_CANDLELIGHT
针对主要光源为火焰的昏暗设置进行了优化。
也可以看看:
常量值:15(0x0000000f)
int CONTROL_SCENE_MODE_DISABLED
表示没有为给定的捕捉请求设置场景模式。
也可以看看:
常量值:0(0x00000000)
int CONTROL_SCENE_MODE_FACE_PRIORITY
如果存在人脸检测支持,请使用人脸检测数据进行自动对焦,自动白平衡和自动曝光例程。
如果禁用脸部检测统计信息(即 android.statistics.faceDetectMode
设置为OFF),则此功能仍应正确运行(但不会将面部检测统计信息返回给框架)。
与其他场景模式 android.control.aeMode
,当设置 android.control.aeMode
, android.control.awbMode
和 android.control.afMode
保持活动状态。
也可以看看:
常数值:1(0x00000001)
int CONTROL_SCENE_MODE_FIREWORKS
针对烟花的夜间照片进行了优化。
也可以看看:
常量值:12(0x0000000c)
int CONTROL_SCENE_MODE_HDR
打开设备特定的高动态范围(HDR)模式。
在此场景模式下,相机设备会捕捉图像,以保持最终图像中可见的较大范围的场景照明级别。 例如,当在明亮的窗户前拍摄物体时,在使用HDR模式时,物体和窗口中的景物都可以看到,而在正常的AUTO模式下,其中一个或另一个可能曝光不足。 作为一种折衷,HDR模式通常需要更长的时间来捕捉单个图像,没有用户控制,并且可能具有其他伪影,这取决于所使用的HDR方法。
因此,HDR捕捉的运行速度比常规捕捉要慢得多。
在此模式下,在android.control.captureIntent
或完整设备上,当请求使用android.control.captureIntent
时,相机设备将使用高动态范围捕获技术捕获图像。 在LEGACY设备上,采用HDR捕捉以JPEG格式输出为目标的捕捉,捕捉目的不相关。
HDR捕获可能涉及设备在内部捕获一连串图像并将它们合并为一个,或者可能涉及使用专用高动态范围捕获硬件的设备。 在所有情况下,都会生成单个图像以响应在HDR模式下提交的捕捉请求。
由于通常需要大量的后期处理才能生成HDR图像,因此只有YUV,PRIVATE和JPEG输出才能用于有限/完整设备HDR捕捉,并且仅支持LEGACY HDR捕捉的JPEG输出。 不支持使用RAW输出进行HDR捕捉。
某些设备也可能支持始终开启的HDR,该HDR以全帧速率应用HDR处理。 对于这些设备,STILL_CAPTURE以外的意图也会产生HDR输出,与正常操作相比无帧速率影响,但质量可能低于STILL_CAPTURE意图。
如果SCENE_MODE_HDR与不支持的输出类型或捕捉意图一起使用,则捕获的图像就好像SCENE_MODE根本没有启用。
常量值:18(0x00000012)
int CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO
此常数在API级别23中已弃用。
请参阅此API文档以查找替代方案
这已弃用,请使用 createConstrainedHighSpeedCaptureSession(List
和 createHighSpeedRequestList(CaptureRequest)
进行高速视频录制。
针对高速视频录制(帧率> = 60fps)用例进行了优化。
支持的高速视频尺寸和fps范围在android.control.availableHighSpeedVideoConfigurations中指定。 要获得所需的输出帧速率,应用程序只能选择此静态元数据中列出的视频大小和fps范围组合。 fps范围可以通过android.control.aeTargetFpsRange
进行控制。
在此模式下,相机设备将分别将aeMode,awbMode和afMode覆盖为ON,ON和CONTINUOUS_VIDEO。 所有后处理块模式控件将被覆盖为FAST。 因此,不能手动控制捕获和后处理参数。 所有其他控件的操作与android.control.mode
== AUTO时相同。 这意味着所有其他的android.control。*字段继续工作,例如
android.control.aeTargetFpsRange
android.control.aeExposureCompensation
android.control.aeLock
android.control.awbLock
android.control.effectMode
android.control.aeRegions
android.control.afRegions
android.control.awbRegions
android.control.afTrigger
android.control.aePrecaptureTrigger
在android.control。*之外,以下控件将工作:
android.flash.mode
(automatic flash for still capture will not work since aeMode is ON)android.lens.opticalStabilizationMode
(if it is supported)android.scaler.cropRegion
android.statistics.faceDetectMode
对于高速录制用例,实际的最大支持帧速率可能低于相机可以输出的速度,具体取决于图像数据的目标表面。 例如,如果目标表面来自视频编码器,则应用程序需要检查视频编码器是否能够支持给定视频大小的高帧速率,否则将以较低的记录帧速率结束。 如果目标表面来自预览窗口,则预览帧速率将受到屏幕刷新率的限制。
相机设备最多只支持2种输出高速流(在android.request.maxNumOutputStreams中定义的处理非停顿格式)。 只有在满足以下所有条件的情况下,该控件才会生效:
当上述条件未满时,相机设备将忽略此模式和 android.control.aeTargetFpsRange
的控件,相机设备将回 android.control.mode
==
AUTO,并且返回的捕捉结果元数据将给出相机设备选择的fps范围。
切换进入或退出此模式可能会触发某些摄像机ISP /传感器重新配置,这可能会引入额外的延迟。 建议应用程序尽可能避免不必要的场景模式切换。
也可以看看:
CONTROL_AE_EXPOSURE_COMPENSATION
CONTROL_AE_LOCK
CONTROL_AE_PRECAPTURE_TRIGGER
CONTROL_AE_REGIONS
CONTROL_AE_TARGET_FPS_RANGE
CONTROL_AF_REGIONS
CONTROL_AF_TRIGGER
CONTROL_AWB_LOCK
CONTROL_AWB_REGIONS
CONTROL_EFFECT_MODE
CONTROL_MODE
FLASH_MODE
LENS_OPTICAL_STABILIZATION_MODE
SCALER_CROP_REGION
STATISTICS_FACE_DETECT_MODE
CONTROL_SCENE_MODE
常量值:17(0x00000011)
int CONTROL_SCENE_MODE_LANDSCAPE
Optimized for photos of distant macroscopic objects.
也可以看看:
常量值:4(0x00000004)
int CONTROL_SCENE_MODE_NIGHT
针对弱光设置进行了优化。
也可以看看:
常量值:5(0x00000005)
int CONTROL_SCENE_MODE_NIGHT_PORTRAIT
针对低照度环境中的静态照片进行了优化。
也可以看看:
常数值:6(0x00000006)
int CONTROL_SCENE_MODE_PARTY
针对多个移动人员的昏暗室内设置进行了优化。
也可以看看:
常量值:14(0x0000000e)
int CONTROL_SCENE_MODE_PORTRAIT
针对人物的静态照片进行了优化。
也可以看看:
常量值:3(0x00000003)
int CONTROL_SCENE_MODE_SNOW
针对包含雪的明亮户外设置进行了优化。
也可以看看:
常量值:9(0x00000009)
int CONTROL_SCENE_MODE_SPORTS
针对快速移动人物的照片进行了优化。
Similar to ACTION.
也可以看看:
常量值:13(0x0000000d)
int CONTROL_SCENE_MODE_STEADYPHOTO
由于少量设备运动(例如:由于手抖动)而优化以避免模糊照片。
也可以看看:
常量值:11(0x0000000b)
int CONTROL_SCENE_MODE_SUNSET
针对夕阳的场景进行了优化。
也可以看看:
常量值:10(0x0000000a)
int CONTROL_SCENE_MODE_THEATRE
针对昏暗的室内设置进行了优化,其中闪光必须保持关闭。
也可以看看:
常量值:7(0x00000007)
int CONTROL_VIDEO_STABILIZATION_MODE_OFF
视频稳定被禁用。
常量值:0(0x00000000)
int CONTROL_VIDEO_STABILIZATION_MODE_ON
视频稳定已启用。
常数值:1(0x00000001)
int EDGE_MODE_FAST
以不降低帧速率相对于传感器输出的质量水平应用边缘增强。 如果边缘增强会降低相对于传感器的帧速率,它可能与OFF相同。
也可以看看:
常数值:1(0x00000001)
int EDGE_MODE_HIGH_QUALITY
以可能降低的输出帧速率为代价应用高质量的边缘增强。
也可以看看:
常量值:2(0x00000002)
int EDGE_MODE_ZERO_SHUTTER_LAG
根据分辨率,边缘增强功能针对不同的输出流应用于不同的级别。 以最大记录分辨率(参见createCaptureSession(List
)或更低分辨率的流应用边缘增强,而较高分辨率流不应用边缘增强。 对低分辨率流的边缘增强水平进行调整,以便帧速率不受影响,质量等于或优于FAST(因为它仅适用于较低分辨率的输出,质量可能会从FAST提高)。
该模式适用于应用YUV或PRIVATE后处理的零快门滞后模式的应用,其中应用程序将高分辨率中间缓冲区连续捕捉到循环缓冲区中,通过再处理生成最终图像用户拍摄照片。 对于这样的用例,高分辨率缓冲区不得应用边缘增强以最大化预览效率并避免重新处理时的重复应用增强,而低分辨率缓冲区(通常用于记录或预览)需要应用边缘增强合理的预览质量。
这种模式可以被支持YUV_REPROCESSING或PRIVATE_REPROCESSING功能的设备( android.request.availableCapabilities
列出其中的任何一种功能)支持,它将成为CAMERA3_TEMPLATE_ZERO_SHUTTER_LAG模板的默认模式。
常量值:3(0x00000003)
int FLASH_MODE_SINGLE
如果闪光灯可用且已充电,则闪光灯会进行此拍摄。
也可以看看:
常数值:1(0x00000001)
int FLASH_STATE_CHARGING
闪光灯正在充电,无法启动。
也可以看看:
常数值:1(0x00000001)
int FLASH_STATE_PARTIAL
Flash部分照亮了这个框架。
这通常是由于下一帧或上一帧闪光灯闪光,并且闪光由于硬件限制而溢出到该捕捉中。
也可以看看:
常量值:4(0x00000004)
int FLASH_STATE_UNAVAILABLE
相机上没有闪光灯。
也可以看看:
常量值:0(0x00000000)
int HOT_PIXEL_MODE_FAST
应用热像素校正,而不会降低相对于传感器原始输出的帧速率。
该热像素地图可能会在 android.statistics.hotPixelMap
返回。
常数值:1(0x00000001)
int HOT_PIXEL_MODE_HIGH_QUALITY
应用高质量热点像素校正,其代价是可能降低相对于传感器原始输出的帧速率。
该热像素地图可以在 android.statistics.hotPixelMap
返回。
常量值:2(0x00000002)
int HOT_PIXEL_MODE_OFF
没有应用热像素校正。
相对于此选项的传感器原始输出,帧速率不得降低。
该热像素地图可能会在 android.statistics.hotPixelMap
返回。
常量值:0(0x00000000)
int INFO_SUPPORTED_HARDWARE_LEVEL_3
除了全功能之外,该相机设备还能够进行YUV再处理和RAW数据采集。
中列出的流配置 LEVEL_3
, RAW
, FULL
, LEGACY
和 LIMITED
中表 createCaptureSession
文档被保证的支持。
保证支持以下附加功能:
YUV_REPROCESSING
capability (android.request.availableCapabilities
contains YUV_REPROCESSING
)RAW
capability (android.request.availableCapabilities
contains RAW
)常量值:3(0x00000003)
int INFO_SUPPORTED_HARDWARE_LEVEL_FULL
此相机设备能够支持高级成像应用程序。
中列出的流配置 FULL
, LEGACY
和 LIMITED
中表 createCaptureSession
文档被保证的支持。
一个 FULL
设备将支持以下功能:
BURST_CAPTURE
capability (android.request.availableCapabilities
contains BURST_CAPTURE
)android.sync.maxLatency
==
PER_FRAME_CONTROL)android.request.availableCapabilities
contains MANUAL_SENSOR
)android.request.availableCapabilities
contains MANUAL_POST_PROCESSING
)android.sensor.info.exposureTimeRange
android.sensor.info.maxFrameDuration
注意:预API级别23,FULL设备也支持任意裁剪区域( android.scaler.croppingType
== FREEFORM
); 此要求在API级别23中放宽,并且FULL
设备可能仅支持CENTERED
裁剪。
也可以看看:
常数值:1(0x00000001)
int INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
此相机设备正在向后兼容模式下运行。
仅支持 createCaptureSession
文档中的 LEGACY
表中列出的流配置。
一个LEGACY
设备不支持每帧控制,手动传感器控制,手动后处理,任意裁剪区域,并且放松了性能限制。 在android.request.availableCapabilities
LEGACY
设备将不会列出BACKWARD_COMPATIBLE
以外的其他功能。
另外, android.control.aePrecaptureTrigger
在LEGACY
设备上LEGACY
。 相反,包含JPEG格式输出目标的每个请求都被视为触发静止捕获,并在内部执行预捕获触发器。 这可能会在预捕前触发闪光灯进行闪光灯功率测量,然后如果设备上有闪光灯并且AE模式设置为启用闪光灯,然后闪光灯进行最终捕捉。
常量值:2(0x00000002)
int INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
此相机设备没有足够的性能可以认定为 FULL
或更好的设备。
只保证支持 createCaptureSession
文档中的 LEGACY
和 LIMITED
表中列出的流配置。
所有LIMITED
设备都支持BACKWARDS_COMPATIBLE
功能,表明对彩色图像捕捉的基本支持。 唯一的例外是,如果设备只能输出深度测量值而不是彩色图像,则设备可能仅支持DEPTH_OUTPUT
功能。
LIMITED
以上设备需要使用 android.control.aePrecaptureTrigger
来锁定曝光测光(并在捕捉高质量静止图像之前计算闪光灯相机的闪光灯功率)。
甲 LIMITED
装置只列出 BACKWARDS_COMPATIBLE
能力只需支持全自动(操作和后处理 OFF
不支持 android.control.aeMode
, android.control.afMode
,或 android.control.awbMode
)
其他功能可以选择性地由 LIMITED
级别的设备支持,并且可以在 android.request.availableCapabilities
进行检查。
也可以看看:
常量值:0(0x00000000)
int LENS_FACING_BACK
相机设备面向与设备屏幕相反的方向。
也可以看看:
常数值:1(0x00000001)
int LENS_FACING_EXTERNAL
相机设备是外置相机,相对于设备的屏幕没有固定的朝向。
也可以看看:
常量值:2(0x00000002)
int LENS_FACING_FRONT
相机设备面向与设备屏幕相同的方向。
也可以看看:
常量值:0(0x00000000)
int LENS_INFO_FOCUS_DISTANCE_CALIBRATION_APPROXIMATE
镜头焦距是以屈光度来衡量的。
但是,根据诸如设备的方向,聚焦机构的年龄和设备温度等因素,在不同的场合将镜头设置为相同的焦距可能导致不同的实际焦距。
常数值:1(0x00000001)
int LENS_INFO_FOCUS_DISTANCE_CALIBRATION_CALIBRATED
镜头焦距以屈光度测量,并进行校准。
镜头机构经过校准,以便设置相同的焦距可以在多个场合以高精度进行重复拍摄,并且焦距对应于到最佳焦点平面的实际物理距离。
常量值:2(0x00000002)
int LENS_INFO_FOCUS_DISTANCE_CALIBRATION_UNCALIBRATED
镜头焦距不准确,用于 android.lens.focusDistance
的单位不符合任何物理单位。
在不同场合将镜头设置为相同的焦距可能会导致实际焦距不同,具体取决于诸如设备的方向,调焦机构的使用年限和设备温度等因素。 焦距值仍将在[0,
的范围内,其中0表示最远的焦点。android.lens.info.minimumFocusDistance
]
常量值:0(0x00000000)
int LENS_OPTICAL_STABILIZATION_MODE_OFF
Optical stabilization is unavailable.
常量值:0(0x00000000)
int LENS_OPTICAL_STABILIZATION_MODE_ON
Optical stabilization is enabled.
常数值:1(0x00000001)
int LENS_STATE_MOVING
一个或若干个透镜的参数(的 android.lens.focalLength
, android.lens.focusDistance
, android.lens.filterDensity
或 android.lens.aperture
)当前正在发生变化。
常数值:1(0x00000001)
int LENS_STATE_STATIONARY
镜头参数( android.lens.focalLength
, android.lens.focusDistance
, android.lens.filterDensity
和 android.lens.aperture
)不发生变化。
常量值:0(0x00000000)
int NOISE_REDUCTION_MODE_FAST
在不降低相对于传感器输出的帧率的情况下应用降噪。 如果降噪会降低相对于传感器的帧速率,它可能与OFF相同。
也可以看看:
常数值:1(0x00000001)
int NOISE_REDUCTION_MODE_HIGH_QUALITY
以相对于传感器输出可能降低的帧速率为代价应用高质量的降噪。
也可以看看:
常量值:2(0x00000002)
int NOISE_REDUCTION_MODE_MINIMAL
在不降低相对于传感器输出的帧率的情况下应用最低限度的降噪。
也可以看看:
常量值:3(0x00000003)
int NOISE_REDUCTION_MODE_OFF
没有应用降噪。
也可以看看:
常量值:0(0x00000000)
int NOISE_REDUCTION_MODE_ZERO_SHUTTER_LAG
基于分辨率降噪适用于不同输出流的不同级别。 以最大记录分辨率(见createCaptureSession(List
)或更低分辨率的数据流应用了降噪,而高分辨率数据流则使用最小(如果支持)或不应用降噪(如果不支持MINIMAL)。低分辨率流的降噪程度进行调整以便帧率不受影响,质量等于或优于FAST(因为它仅适用于较低分辨率的输出,质量可能会从FAST提高)。
该模式适用于应用YUV或PRIVATE后处理的零快门滞后模式的应用,其中应用程序将高分辨率中间缓冲区连续捕捉到循环缓冲区中,通过再处理生成最终图像用户拍摄照片。 对于这样的用例,高分辨率缓冲区不得使用降噪来最大化预览效率,并避免在重新处理时过度使用噪声过滤,而低分辨率缓冲区(通常用于记录或预览)需要降噪申请合理的预览质量。
This mode is guaranteed to be supported by devices that support either the YUV_REPROCESSING or PRIVATE_REPROCESSING capabilities (android.request.availableCapabilities
lists either of those capabilities) and it will be the default mode for CAMERA3_TEMPLATE_ZERO_SHUTTER_LAG template.
常量值:4(0x00000004)
int REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
每个摄像机设备(不管 android.info.supportedHardwareLevel
)支持的最小功能集。
此功能由所有常规设备列出,并指示相机设备的功能集与旧版android.hardware.Camera API的基准要求相当。
具有DEPTH_OUTPUT功能的设备可能不会列出此功能,表明它们仅支持深度测量,而不支持标准色彩输出。
常量值:0(0x00000000)
int REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE
当后处理设置设置为FAST时,相机设备支持以> = 20帧每秒捕获高分辨率图像,至少为未压缩的YUV格式。 另外,最大分辨率的图像可以以每秒> 10帧的速度捕捉。 在这里,“高分辨率”意味着至少800万像素或设备的最大分辨率,以较小者为准。
更具体地说,这意味着与getOutputSizes(int)
或getHighResolutionOutputSizes(int)
的YUV_420_888
格式相匹配的尺寸与相机设备的活动阵列尺寸相匹配,对于该格式和尺寸的最小帧持续时间<= 1/20 s,或<= 1/10秒; 并且android.control.aeAvailableTargetFpsRanges
条目列出了至少一个FPS范围,其中对于最大尺寸的YUV_420_888格式,最小FPS>> 1 / minimumFrameDuration。 如果在getHighResolutionOutputSizes(int)
列出了最大尺寸,那么来自getOutputSizes(int)
的分辨率列表包含至少一个> 800万像素的分辨率,最小帧持续时间<= 1/20 s。
如果设备支持 RAW10
, RAW12
,则这些也可以以相同的速率作为最大尺寸的YUV_420_888分辨率捕获。
如果设备支持PRIVATE_REPROCESSING功能,则与YUV_420_888格式相同的保证也适用于 PRIVATE
格式。
另外, android.sync.maxLatency
字段的值保证在0和4之间(包括0和4)。 android.control.aeLockAvailable
和android.control.awbLockAvailable
也保证为true
因此通过这两个锁的开启俘获true
一致的图像输出。
也可以看看:
常数值:6(0x00000006)
int REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO
该设备支持受限制的高速视频录制(帧率> = 120fps)用例。 相机设备将支持由createConstrainedHighSpeedCaptureSession(List
创建的高速捕获会话,该会话仅接受由createHighSpeedRequestList(CaptureRequest)
创建的高速请求列表。
相机设备仍然可以通过广告android.control.aeAvailableTargetFpsRanges
高速FPS范围来支持高速视频流。 对于这种情况,每帧控制和同步要求的所有正常捕捉请求将应用于高速fps范围,与所有其他fps范围相同。 此功能描述了具有许多限制的专用操作模式(见下文)的功能,该功能仅针对高速视频录制。
支持的高速视频尺寸和fps范围在getHighSpeedVideoFpsRanges()
中指定。 要获得所需的输出帧速率,应用程序只能选择由getHighSpeedVideoSizes()
提供的视频尺寸和FPS范围组合。 fps范围可以通过android.control.aeTargetFpsRange
进行控制。
在此功能中,摄像机设备将分别将aeMode,awbMode和afMode重写为ON,AUTO和CONTINUOUS_VIDEO。 所有后处理块模式控件将被覆盖为FAST。 因此,不能手动控制捕获和后处理参数。 所有其他控件的操作与android.control.mode
== AUTO时相同。 这意味着所有其他的android.control。*字段继续工作,例如
android.control.aeTargetFpsRange
android.control.aeExposureCompensation
android.control.aeLock
android.control.awbLock
android.control.effectMode
android.control.aeRegions
android.control.afRegions
android.control.awbRegions
android.control.afTrigger
android.control.aePrecaptureTrigger
在android.control。*之外,以下控件将工作:
android.flash.mode
(TORCH mode only, automatic flash for still capture will not work since aeMode is ON)android.lens.opticalStabilizationMode
(if it is supported)android.scaler.cropRegion
android.statistics.faceDetectMode
(if it is supported)对于高速录制用例,实际的最大支持帧速率可能低于相机可以输出的速度,具体取决于图像数据的目标表面。 例如,如果目标表面来自视频编码器,则应用程序需要检查视频编码器是否能够支持给定视频大小的高帧速率,否则将以较低的记录帧速率结束。 如果目标表面来自预览窗口,则实际预览帧速率将受到屏幕刷新率的限制。
在此模式下,相机设备最多只能支持2个高速同步输出表面(预览和记录表面)。 只有满足以下所有条件时,上述控件才会生效:
createConstrainedHighSpeedCaptureSession(List
, CameraCaptureSession.StateCallback, Handler)
. The targeted surfaces must be preview surface (either from SurfaceView
or SurfaceTexture
) or recording surface(either from getSurface()
or createInputSurface()
).getHighSpeedVideoSizes()
.getHighSpeedVideoFpsRanges()
.当上述条件不满时, createConstrainedHighSpeedCaptureSession(List
将失败。
切换到具有不同最大FPS的FPS范围可能会触发某些摄像机设备重新配置,这可能会引入额外的延迟。 建议应用程序尽可能避免在高速流传输期间不必要的最大目标FPS更改。
也可以看看:
CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
CONTROL_AE_EXPOSURE_COMPENSATION
CONTROL_AE_LOCK
CONTROL_AE_PRECAPTURE_TRIGGER
CONTROL_AE_REGIONS
CONTROL_AE_TARGET_FPS_RANGE
CONTROL_AF_REGIONS
CONTROL_AF_TRIGGER
CONTROL_AWB_LOCK
CONTROL_AWB_REGIONS
CONTROL_EFFECT_MODE
CONTROL_MODE
FLASH_MODE
LENS_OPTICAL_STABILIZATION_MODE
SCALER_CROP_REGION
STATISTICS_FACE_DETECT_MODE
REQUEST_AVAILABLE_CAPABILITIES
常量值:9(0x00000009)
int REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT
相机设备可以从其视野中产生深度测量结果。
此功能要求相机设备支持以下内容:
DEPTH16
is supported as an output format.DEPTH_POINT_CLOUD
is optionally supported as an output format.android.lens.facing
, will list the following calibration entries in both CameraCharacteristics
and CaptureResult
:
android.depth.depthIsExclusive
entry is listed by this device.通常,深度输出的运行速度比标准颜色捕捉的帧速率低,因此DEPTH16和DEPTH_POINT_CLOUD格式通常会有一个应该考虑的失速持续时间(请参阅getOutputStallDuration(int, Size)
)。 在支持深度和基于颜色的输出的设备上,要启用平滑预览,建议使用重复突发,其中每N帧只包含一次深度输出目标,其中N是预览输出速率和深度之间的比率输出速率,包括深度停滞时间。
也可以看看:
常量值:8(0x00000008)
int REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING
相机设备后处理阶段可以手动控制。 相机设备支持图像后期处理阶段的基本手动控制。 这意味着以下控件保证被支持:
手动色调映射控制
手动白平衡控制
android.shading.mode
android.statistics.lensShadingMapMode
如果启用了自动白平衡,则相机设备将准确报告结果中由AWB应用的值。
A given camera device may also support additional post-processing controls, but this capability only covers the above list of controls.
也可以看看:
COLOR_CORRECTION_ABERRATION_MODE
COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
COLOR_CORRECTION_GAINS
COLOR_CORRECTION_TRANSFORM
CONTROL_AWB_LOCK
SHADING_MODE
STATISTICS_LENS_SHADING_MAP_MODE
TONEMAP_CURVE
TONEMAP_GAMMA
TONEMAP_MAX_CURVE_POINTS
TONEMAP_MODE
TONEMAP_PRESET_CURVE
REQUEST_AVAILABLE_CAPABILITIES
常量值:2(0x00000002)
int REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
相机设备可以手动控制(3A算法,如自动曝光,自动对焦可以绕过)。 摄像设备支持传感器图像采集相关阶段的基本手动控制。 这意味着以下控件保证被支持:
如果启用了上述3A算法中的任何一种,那么相机设备将精确地报告结果中3A应用的值。
给定的相机设备也可以支持附加的手动传感器控制,但是此功能仅涵盖上述控件列表。
如果支持,则 android.scaler.streamConfigurationMap
将针对每个受支持的大小格式组合返回最大帧持续时间,该持续时间大于零。
也可以看看:
常数值:1(0x00000001)
int REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING
相机设备支持Zero Shutter Lag再处理用例。
android.request.maxNumInputStreams
== 1
.PRIVATE
is supported as an output/input format, that is, PRIVATE
is included in the lists of formats returned by getInputFormats()
and getOutputFormats()
.getValidOutputFormatsForInput(int)
returns non empty int[] for each supported input format returned by getInputFormats()
.getInputSizes(ImageFormat.PRIVATE)
is also included in getOutputSizes(ImageFormat.PRIVATE)
PRIVATE
does not cause a frame rate drop relative to the sensor's maximum capture rate (at that resolution).PRIVATE
will be reprocessable into both YUV_420_888
and JPEG
formats.android.reprocess.maxCaptureStall
.android.noiseReduction.mode
android.edge.mode
android.noiseReduction.availableNoiseReductionModes
and android.edge.availableEdgeModes
will both list ZERO_SHUTTER_LAG as a supported mode.也可以看看:
常量值:4(0x00000004)
int REQUEST_AVAILABLE_CAPABILITIES_RAW
相机设备支持输出RAW缓冲区和用于解释它们的元数据。
支持RAW功能的设备既可以保存DNG文件,也可以直接处理原始传感器图像。
android.sensor.info.pixelArraySize
or android.sensor.info.preCorrectionActiveArraySize
.也可以看看:
常量值:3(0x00000003)
int REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS
摄像设备支持在内置3A算法运行时准确报告许多传感器控制的传感器设置。 即使无法手动更改这些设置,也可以报告传感器设置。
报告的以下控件值保证在CaptureResult中可用,包括启用3A时:
This capability is a subset of the MANUAL_SENSOR control capability, and will always be included if the MANUAL_SENSOR capability is available.
也可以看看:
常量值:5(0x00000005)
int REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING
相机设备支持YUV_420_888重新处理用例,与PRIVATE_REPROCESSING类似,此功能要求相机设备支持以下内容:
android.request.maxNumInputStreams
== 1
.YUV_420_888
is supported as an output/input format, that is, YUV_420_888 is included in the lists of formats returned by getInputFormats()
and getOutputFormats()
.getValidOutputFormatsForInput(int)
returns non-empty int[] for each supported input format returned by getInputFormats()
.getInputSizes(YUV_420_888)
is also included in getOutputSizes(YUV_420_888)
YUV_420_888
does not cause a frame rate drop relative to the sensor's maximum capture rate (at that resolution).YUV_420_888
will be reprocessable into both YUV_420_888
and JPEG
formats.YUV_420_888
streams (both input/output) will match the maximum available resolution of JPEG
streams.android.reprocess.maxCaptureStall
.YUV_420_888
output buffers. All other controls in the reprocess requests will be ignored by the camera device.
android.noiseReduction.availableNoiseReductionModes
and android.edge.availableEdgeModes
will both list ZERO_SHUTTER_LAG as a supported mode.也可以看看:
常量值:7(0x00000007)
int SCALER_CROPPING_TYPE_CENTER_ONLY
相机设备仅支持居中裁剪区域。
也可以看看:
常量值:0(0x00000000)
int SCALER_CROPPING_TYPE_FREEFORM
相机设备支持任意选择的裁剪区域。
也可以看看:
常数值:1(0x00000001)
int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR
常量值:3(0x00000003)
int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG
常量值:2(0x00000002)
int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG
常数值:1(0x00000001)
int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB
传感器不是拜耳; 输出每个像素有3个16位值,而不是每个像素只有1个16位值。
常量值:4(0x00000004)
int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB
常量值:0(0x00000000)
int SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
从时间戳 android.sensor.timestamp
是在同一时基,如 elapsedRealtimeNanos()
,并且它们可以与使用该碱其他时间戳。
常数值:1(0x00000001)
int SENSOR_INFO_TIMESTAMP_SOURCE_UNKNOWN
来自android.sensor.timestamp
时间戳以纳秒和单调为单位,但不能与来自其他子系统(例如加速度计,陀螺仪等)的时间戳或同一系统中相同或不同相机设备的其他实例进行比较。 数据流之间的时间戳和单个摄像机实例的结果具有可比性,所有缓冲区的时间戳和单次捕获生成的结果元数据是相同的。
常量值:0(0x00000000)
int SENSOR_REFERENCE_ILLUMINANT1_CLOUDY_WEATHER
也可以看看:
常量值:10(0x0000000a)
int SENSOR_REFERENCE_ILLUMINANT1_COOL_WHITE_FLUORESCENT
W 3900 - 4500K
也可以看看:
常量值:14(0x0000000e)
int SENSOR_REFERENCE_ILLUMINANT1_D50
也可以看看:
常量值:23(0x00000017)
int SENSOR_REFERENCE_ILLUMINANT1_D55
也可以看看:
常量值:20(0x00000014)
int SENSOR_REFERENCE_ILLUMINANT1_D65
也可以看看:
常量值:21(0x00000015)
int SENSOR_REFERENCE_ILLUMINANT1_D75
也可以看看:
常量值:22(0x00000016)
int SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT
也可以看看:
常数值:1(0x00000001)
int SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT_FLUORESCENT
D 5700 - 7100K
也可以看看:
常量值:12(0x0000000c)
int SENSOR_REFERENCE_ILLUMINANT1_DAY_WHITE_FLUORESCENT
N 4600 - 5400K
也可以看看:
常量值:13(0x0000000d)
int SENSOR_REFERENCE_ILLUMINANT1_FINE_WEATHER
也可以看看:
常量值:9(0x00000009)
int SENSOR_REFERENCE_ILLUMINANT1_FLASH
也可以看看:
常量值:4(0x00000004)
int SENSOR_REFERENCE_ILLUMINANT1_FLUORESCENT
也可以看看:
常量值:2(0x00000002)
int SENSOR_REFERENCE_ILLUMINANT1_ISO_STUDIO_TUNGSTEN
也可以看看:
常量值:24(0x00000018)
int SENSOR_REFERENCE_ILLUMINANT1_SHADE
也可以看看:
常量值:11(0x0000000b)
int SENSOR_REFERENCE_ILLUMINANT1_STANDARD_A
也可以看看:
常量值:17(0x00000011)
int SENSOR_REFERENCE_ILLUMINANT1_STANDARD_B
也可以看看:
常量值:18(0x00000012)
int SENSOR_REFERENCE_ILLUMINANT1_STANDARD_C
也可以看看:
常量值:19(0x00000013)
int SENSOR_REFERENCE_ILLUMINANT1_TUNGSTEN
白炽灯
也可以看看:
常量值:3(0x00000003)
int SENSOR_REFERENCE_ILLUMINANT1_WHITE_FLUORESCENT
WW 3200 - 3700K
也可以看看:
常量值:15(0x0000000f)
int SENSOR_TEST_PATTERN_MODE_COLOR_BARS
所有的像素数据被替换为8条彩色图案。
垂直条(从左到右)如下所示:
一般来说,图像如下所示:
W Y C G M R B K
W Y C G M R B K
W Y C G M R B K
W Y C G M R B K
W Y C G M R B K
. . . . . . . .
. . . . . . . .
. . . . . . . .
(B = Blue, K = Black)
每个条应占用传感器像素阵列宽度的1/8。 当这是不可能的时候,条的大小应该四舍五入到最接近的整数,并且模式可以在右侧重复。
每个条的高度必须始终占用完整的传感器像素阵列高度。
Each pixel in this test pattern must be set to either 0% intensity or 100% intensity.
也可以看看:
常量值:2(0x00000002)
int SENSOR_TEST_PATTERN_MODE_COLOR_BARS_FADE_TO_GRAY
测试图案与COLOR_BARS类似,不同之处在于每个条应从其顶部的指定颜色开始,并在底部渐变为灰色。
此外,每个酒吧进一步细分为左右两半。 左半边应该有平滑的渐变,右半边应该有量化的渐变。
特别是,右半部分应该由1/16有效传感器像素阵列宽度的相同颜色的块组成。
量化梯度中的最低有效位应从平滑梯度的最高有效位复制。
每个条的高度应始终为128的倍数。如果不是这种情况,则图案应在图像底部重复。
也可以看看:
常量值:3(0x00000003)
int SENSOR_TEST_PATTERN_MODE_CUSTOM1
第一个自定义测试模式。 所有仅在此相机设备上可用的自定义模式至少为此数值。
所有的自定义测试模式都是静态的(即原始图像不能因帧而异)。
也可以看看:
常量值:256(0x00000100)
int SENSOR_TEST_PATTERN_MODE_OFF
不使用测试图案模式,并且相机设备返回来自图像传感器的捕捉。
如果没有设置密钥,这是默认设置。
也可以看看:
常量值:0(0x00000000)
int SENSOR_TEST_PATTERN_MODE_PN9
所有像素数据都由PN9 512位序列产生的伪随机序列(通常用带线性反馈移位寄存器的硬件实现)替代。
发生器应在每帧开始时重置,因此每个具有此测试模式的后续原始帧应与最后一帧完全相同。
也可以看看:
常量值:4(0x00000004)
int SENSOR_TEST_PATTERN_MODE_SOLID_COLOR
[R, G_even, G_odd, B]
每个像素 [R, G_even, G_odd, B]
中提供的相应颜色通道 android.sensor.testPatternData
。
例如:
android.testPatternData = [0, 0xFFFFFFFF, 0xFFFFFFFF, 0]
所有绿色像素都是100%绿色。 所有红色/蓝色像素都是黑色的。
android.testPatternData = [0xFFFFFFFF, 0, 0xFFFFFFFF, 0]
所有红色像素都是100%红色。 只有奇数个绿色像素为100%绿色。 所有蓝色像素都是100%黑色。
常数值:1(0x00000001)
int SHADING_MODE_FAST
应用镜头阴影校正,而不会降低相对于传感器原始输出的帧速率
也可以看看:
常数值:1(0x00000001)
int SHADING_MODE_HIGH_QUALITY
应用高质量的镜头阴影校正,但可能会降低帧频。
也可以看看:
常量值:2(0x00000002)
int STATISTICS_FACE_DETECT_MODE_FULL
返回所有面部元数据。
在这种模式下,脸部矩形,乐谱,地标和脸部ID都是有效的。
也可以看看:
常量值:2(0x00000002)
int STATISTICS_FACE_DETECT_MODE_OFF
不要在捕捉结果中包含人脸检测统计信息。
也可以看看:
常量值:0(0x00000000)
int STATISTICS_FACE_DETECT_MODE_SIMPLE
仅返回脸部矩形和置信度值。
也可以看看:
常数值:1(0x00000001)
int STATISTICS_LENS_SHADING_MAP_MODE_OFF
不要在捕捉结果中包含镜头阴影贴图。
常量值:0(0x00000000)
int STATISTICS_LENS_SHADING_MAP_MODE_ON
在捕捉结果中包含镜头阴影贴图。
常数值:1(0x00000001)
int STATISTICS_SCENE_FLICKER_50HZ
相机设备检测当前场景中50Hz的照明闪烁。
也可以看看:
常数值:1(0x00000001)
int STATISTICS_SCENE_FLICKER_60HZ
相机设备检测当前场景中60Hz的照明闪烁。
也可以看看:
常量值:2(0x00000002)
int STATISTICS_SCENE_FLICKER_NONE
The camera device does not detect any flickering illumination in the current scene.
也可以看看:
常量值:0(0x00000000)
int SYNC_MAX_LATENCY_PER_FRAME_CONTROL
每一帧都有立即应用的请求。
更改对多个请求的控制一个接一个将产生结果,这些控制按原子方式应用于每个帧。
所有FULL功能设备都会将其作为maxLatency。
也可以看看:
常量值:0(0x00000000)
int SYNC_MAX_LATENCY_UNKNOWN
每个新帧都有一些子集(可能是整个集合)的过去请求应用于相机设置。
通过提交一系列相同的请求,相机设备最终会应用相机设置,但是确切点的时间不得而知。
所有LEGACY功能设备都会将其作为maxLatency。
也可以看看:
常量值:-1(0xffffffff)
int TONEMAP_MODE_CONTRAST_CURVE
使用 android.tonemap.curve
*条目中指定的色调映射曲线。
除了应用由android.tonemap.curve指定的 android.tonemap.curve
映射曲线之外,必须禁用所有的色彩增强和色调 android.tonemap.curve
。
不得相对于原始传感器输出减慢帧速率。
也可以看看:
常量值:0(0x00000000)
int TONEMAP_MODE_FAST
与原始传感器输出相比,可以应用先进的伽玛映射和颜色增强,而不会降低帧速率。
也可以看看:
常数值:1(0x00000001)
int TONEMAP_MODE_GAMMA_VALUE
使用 android.tonemap.gamma
指定的伽马值进行 android.tonemap.gamma
映射。
除了应用由android.tonemap.gamma指定的 android.tonemap.gamma
映射曲线之外,必须禁用所有的色彩增强和色调 android.tonemap.gamma
。
不得相对于原始传感器输出减慢帧速率。
也可以看看:
常量值:3(0x00000003)
int TONEMAP_MODE_HIGH_QUALITY
高质量的伽玛映射和色彩增强将以相对于原始传感器输出的可能降低的帧速率为代价进行应用。
也可以看看:
常量值:2(0x00000002)
int TONEMAP_MODE_PRESET_CURVE
使用android.tonemap.presetCurve中指定的预设色调贴图曲线进行 android.tonemap.presetCurve
映射。
除了应用由android.tonemap.presetCurve指定的 android.tonemap.presetCurve
映射曲线之外,必须禁用所有的色彩增强和色调 android.tonemap.presetCurve
。
不得相对于原始传感器输出减慢帧速率。
也可以看看:
常量值:4(0x00000004)
int TONEMAP_PRESET_CURVE_REC709
Tonemapping曲线由ITU-R BT.709定义
也可以看看:
常数值:1(0x00000001)
int TONEMAP_PRESET_CURVE_SRGB
色调映射曲线由sRGB定义
也可以看看:
常量值:0(0x00000000)
List<TKey> getKeys ()
返回此映射中包含的键的列表。
返回的列表是不可修改的,所以任何修改它的尝试都会抛出 UnsupportedOperationException
。
所有由#get
列表中的密钥检索的值都保证不为null
。 每个键只在列表中列出一次。 密钥的顺序是未定义的。
Returns | |
---|---|
List<TKey> |
List of the keys contained in this map. |