Kamera-Bokeh ist ein Effekt mit geringer Tiefenschärfe, der dadurch entsteht, dass Teile einer Szene unscharf werden, sodass sie nicht mehr scharf sind. Bei Kameras auf Mobilgeräten wird Bokeh mithilfe von Tiefeninformationen erreicht, die aus der Stereosicht von zwei Kameras oder von zwei Fotodioden (PDs) einer einzelnen Kamera erfasst werden.
Ab Android 11 unterstützt die Android-Plattform Bokeh-Implementierungen und stellt APIs bereit, um die Funktion für Apps von Drittanbietern verfügbar zu machen.
Implementierung
Um die Kamera-Bokeh-Funktion auf Ihrem Gerät verfügbar zu machen, gehen Sie wie folgt vor:
Werben Sie
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
: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 Kamera-HAL auch einen oder beide der ModiANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
undANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS
mit ihren entsprechenden maximalen Streaminggrößen auflisten.Werben Sie
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 inANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
enthält. Ein Zoombereich von[1.0, 1.0]
bedeutet, dass Zoom nicht unterstützt wird.Füllen Sie
ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
inANDROID_CONTROL_AVAILABLE_MODES
aus.
Damit eine App die Bokeh-Funktion auslöst, muss die App ANDROID_CONTROL_MODE
auf ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
und ANDROID_CONTROL_EXTENDED_SCENE_MODE
auf einen der unterstützten erweiterten Szenenmodi setzen. Beachten Sie, dass die Implementierung von Bokeh aufgrund der Stereoberechnung zu einem zusätzlichen Speicherverbrauch führen kann.
Wenn ein unterstützter erweiterter Szenenmodus nicht pro Bild angewendet werden kann und bei Aktivierung/Deaktivierung zu unerwarteten Verzögerungen führt, schließen 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.
Validierung
Um die Bokeh-Funktion auf Ihrem Gerät zu validieren, führen Sie die folgenden CTS-, VTS- und CTS-Verifier-Tests aus:
-
CtsCameraTestCases
-
VtsHalCameraProviderV2_4TargetTest
-
CameraBokehTest
im CTS Verifier
Kamera-Bokeh ist ein Effekt mit geringer Tiefenschärfe, der dadurch entsteht, dass Teile einer Szene unscharf werden, sodass sie nicht mehr scharf sind. Bei Kameras auf Mobilgeräten wird Bokeh mithilfe von Tiefeninformationen erreicht, die aus der Stereosicht von zwei Kameras oder von zwei Fotodioden (PDs) einer einzelnen Kamera erfasst werden.
Ab Android 11 unterstützt die Android-Plattform Bokeh-Implementierungen und stellt APIs bereit, um die Funktion für Apps von Drittanbietern verfügbar zu machen.
Implementierung
Um die Kamera-Bokeh-Funktion auf Ihrem Gerät verfügbar zu machen, gehen Sie wie folgt vor:
Werben Sie
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
: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 Kamera-HAL auch einen oder beide der ModiANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
undANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS
mit ihren entsprechenden maximalen Streaminggrößen auflisten.Werben Sie
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 inANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
enthält. Ein Zoombereich von[1.0, 1.0]
bedeutet, dass Zoom nicht unterstützt wird.Füllen Sie
ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
inANDROID_CONTROL_AVAILABLE_MODES
aus.
Damit eine App die Bokeh-Funktion auslöst, muss die App ANDROID_CONTROL_MODE
auf ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
und ANDROID_CONTROL_EXTENDED_SCENE_MODE
auf einen der unterstützten erweiterten Szenenmodi setzen. Beachten Sie, dass die Implementierung von Bokeh aufgrund der Stereoberechnung zu einem zusätzlichen Speicherverbrauch führen kann.
Wenn ein unterstützter erweiterter Szenenmodus nicht pro Bild angewendet werden kann und bei Aktivierung/Deaktivierung zu unerwarteten Verzögerungen führt, schließen 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.
Validierung
Um die Bokeh-Funktion auf Ihrem Gerät zu validieren, führen Sie die folgenden CTS-, VTS- und CTS-Verifier-Tests aus:
-
CtsCameraTestCases
-
VtsHalCameraProviderV2_4TargetTest
-
CameraBokehTest
im CTS Verifier