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 ModiANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
undANDROID_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 inANDROID_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
inANDROID_CONTROL_AVAILABLE_MODES
aus.
Damit eine App das Bokeh-Feature 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.
Die Implementierung von Bokeh kann aufgrund der Stereoberechnung zu einem höheren 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