Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Kamera-Bokeh
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Der Bokeh-Effekt der Kamera ist ein Effekt mit geringer Schärfentiefe, der durch das Weichzeichnen von Teilen einer Szene entsteht, sodass sie nicht im Fokus sind. Bei Kameras auf Mobilgeräten wird der Bokeh-Effekt mithilfe von Tiefeninformationen erzielt, die durch die Stereosicht von zwei Kameras oder durch zwei Fotodioden (PDs) einer einzelnen Kamera erfasst werden.
Ab Android 11 unterstützt die Android-Plattform Bokeh-Implementierungen und bietet APIs, um die Funktion für Drittanbieter-Apps verfügbar zu machen.
Implementierung
So machen Sie die Bokeh-Funktion der Kamera auf Ihrem Gerät verfügbar:
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
bewerben:
Dieses Tag hat das Format eines Tupel-Arrays mit drei Ganzzahlen, wobei jedes Tupel das Format {mode, maxWidth, maxHeight}
hat. Zusätzlich zu {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}
muss die HAL der Kamera auch einen oder beide Modi ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
und ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS
mit den entsprechenden maximalen Streaminggrößen auflisten.
Werbung für ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES
:
Dieses Tag hat das Format eines {minZoomRatio, maxZoomRatio}
-Arrays, das alle Zoomverhältnisbereiche für einen aktivierten erweiterten Szenenmodus in derselben Reihenfolge wie in ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
enthält. Ein Zoombereich von [1.0, 1.0]
bedeutet, dass der Zoom nicht unterstützt wird.
Fülle ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
in ANDROID_CONTROL_AVAILABLE_MODES
aus.
Damit eine App die Bokeh-Funktion auslösen kann, muss sie ANDROID_CONTROL_MODE
auf ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
und ANDROID_CONTROL_EXTENDED_SCENE_MODE
auf einen der unterstützten erweiterten Szenenmodi setzen.
Hinweis: Die Implementierung von Bokeh kann aufgrund der Stereoberechnung zu einem zusätzlichen Arbeitsspeicherverbrauch führen.
Wenn ein unterstützter erweiterter Szenenmodus nicht pro Frame angewendet werden kann und bei Aktivierung/Deaktivierung zu unerwarteten Verzögerungen führt, fügen Sie ANDROID_CONTROL_EXTENDED_SCENE_MODE
in ANDROID_REQUEST_AVAILABLE_SESSION_KEYS
ein. Implementieren Sie gleichzeitig die Methode ICameraDeviceSession::isReconfigurationRequired()
, um eine Neukonfiguration für erweiterte Szenenmodi zu vermeiden, die keine Neukonfiguration erfordern.
Zertifizierungsstufe
Führen Sie die folgenden CTS-, VTS- und CTS Verifier-Tests aus, um die Bokeh-Funktion auf Ihrem Gerät zu validieren:
CtsCameraTestCases
VtsHalCameraProviderV2_4TargetTest
CameraBokehTest
in CTS Verifier
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-26 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-26 (UTC)."],[],[],null,["# Camera bokeh is a shallow depth-of-field effect created by blurring out parts of\na scene so that they're not in focus. On cameras on mobile devices, bokeh is\nachieved using depth information acquired from the stereo vision from two\ncameras or from dual photodiodes (PDs) of a single camera.\n\nStarting from Android 11, the Android platform\nsupports bokeh implementations and provides APIs to make the feature available\nto third-party apps.\n\nImplementation\n--------------\n\nTo make the camera bokeh feature available on your device, do the following:\n\n- Advertise `ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES`:\n\n This tag is in the format of a three-integer tuple array, with each tuple\n in the format of `{mode, maxWidth, maxHeight}`. In addition to\n `{ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}`, the camera HAL must\n also list one or both of the\n `ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE` and\n `ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS` modes with their\n corresponding maximum streaming sizes.\n- Advertise\n `ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES`:\n\n This tag is in the format of a `{minZoomRatio, maxZoomRatio}` array,\n which contains all the zoom ratio ranges for an enabled extended scene\n mode, in the same order as in\n `ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES`. A zoom range of\n `[1.0, 1.0]` means that zoom isn't supported.\n- Populate `ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE` in\n `ANDROID_CONTROL_AVAILABLE_MODES`.\n\nFor an app to trigger the bokeh feature, the app must set `ANDROID_CONTROL_MODE`\nto `ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE` and\n`ANDROID_CONTROL_EXTENDED_SCENE_MODE` to one of supported extended scene modes.\nNote that implementing bokeh might lead to extra memory consumption because of\nstereo computation.\n\nIf a supported extended scene mode can't be applied per frame and results in\nunexpected delays when enabled/disabled, include\n`ANDROID_CONTROL_EXTENDED_SCENE_MODE` in\n`ANDROID_REQUEST_AVAILABLE_SESSION_KEYS`. At the same time, implement the\n`ICameraDeviceSession::isReconfigurationRequired()` method to avoid\nreconfiguration for extended scene modes that don't require reconfiguration.\n\nValidation\n----------\n\nTo validate the bokeh feature on your device, run the following CTS, VTS, and\nCTS Verifier tests:\n\n- `CtsCameraTestCases`\n- `VtsHalCameraProviderV2_4TargetTest`\n- `CameraBokehTest` in CTS Verifier"]]