Kamera-Bokeh

Kamera-Bokeh ist ein Effekt mit geringer Schärfentiefe, der durch das Verwischen von Teilen einer Szene erzeugt wird, sodass sie nicht im Fokus sind. Bei Kameras auf Mobilgeräten wird Bokeh mithilfe von Tiefeninformationen erzielt, die aus dem Stereobild von zwei Kameras oder von zwei Fotodioden (PDs) einer einzelnen Kamera gewonnen 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

Gehen Sie wie folgt vor, um die Bokeh-Funktion der Kamera auf Ihrem Gerät verfügbar zu machen:

  • Werbung ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES :

    Diese Markierung ist in dem Format eines drei-ganzzahlige Tupel Array, wobei jedes Tupel in dem Format von {mode, maxWidth, maxHeight} . Neben {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0} , die Kamera HAL muss auch Liste eine oder beide der ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE und ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS Modi mit ihren entsprechenden maximalen Größen Streaming.

  • Werbung ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES :

    Dieser Tag ist in dem Format eines {minZoomRatio, maxZoomRatio} Array, das alle Bereiche Zoomverhältnis enthält , die für eine erweiterte Szenenmodus aktiviert ist , in der gleichen Reihenfolge wie in ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES . Ein Zoom - Bereich von [1.0, 1.0] bedeutet , dass Zoom -Funktion nicht unterstützt wird.

  • Populate ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE in ANDROID_CONTROL_AVAILABLE_MODES .

Für eine Anwendung , die Bokeh - Funktion auszulösen, muss die App gesetzt ANDROID_CONTROL_MODE zu ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE und ANDROID_CONTROL_EXTENDED_SCENE_MODE einem der unterstützten erweiterten Motivprogramme. Beachten Sie, dass die Implementierung von Bokeh aufgrund der Stereoberechnung zu zusätzlichem Speicherverbrauch führen kann.

Wenn ein unterstützter erweiterten Szenenmodus nicht pro Frame und führt zu unerwarteten Verzögerungen angewandt werden kann , wenn aktiviert / deaktiviert, ist ANDROID_CONTROL_EXTENDED_SCENE_MODE in ANDROID_REQUEST_AVAILABLE_SESSION_KEYS . Zur gleichen Zeit, implementieren die ICameraDeviceSession::isReconfigurationRequired() Methode zu vermeiden Rekonfiguration für längere Szene - Modi, die nicht neu konfiguriert werden müssen.

Validierung

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