אפקט בוקה במצלמה

'בוקה' במצלמה הוא אפקט עומק רדוד שנוצר על ידי טשטוש חלקים סצנה מסוימת כדי שלא יהיו בפוקוס. במצלמות במכשירים ניידים, האפקט בוקה באמצעות נתוני עומק שהתקבלו מחזון הסטריאו או משתי פוטודיודות (PD) של מצלמה אחת.

החל מ-Android 11, פלטפורמת Android תומכת בהטמעות bokeh ומספק ממשקי API כדי להפוך את התכונה לזמינה לאפליקציות צד שלישי.

הטמעה

כדי להפעיל את תכונת ה-Bokeh במצלמה במכשיר, מבצעים את הפעולות הבאות:

  • פרסום של ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES:

    התג הזה הוא בפורמט של מערך זוגות שלושה שלמים, כאשר כל tuple בפורמט {mode, maxWidth, maxHeight}. נוסף ל- {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}, חובה להוסיף למצלמת HAL לציין גם אחד או את שניהם ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE והקבוצה ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS אמצעי הגעה הגדלים המקסימליים של סטרימינג.

  • פרסום ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES:

    התג הזה הוא בפורמט של מערך {minZoomRatio, maxZoomRatio}, שמכיל את כל הטווחים של יחס הזום לסצנה מורחבת שהופעלה באותו סדר ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES. טווח זום של המשמעות של [1.0, 1.0] היא שזום לא נתמך.

  • אכלוס ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE ב- ANDROID_CONTROL_AVAILABLE_MODES.

כדי שאפליקציה תפעיל את תכונת ה-Bokeh, האפליקציה צריכה להגדיר את ANDROID_CONTROL_MODE אל ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE ו ANDROID_CONTROL_EXTENDED_SCENE_MODE לאחד מהמצבים המורחבים הנתמכים. לתשומת ליבכם: הטמעת בוקה עשויה לגרום לצריכת זיכרון נוספת, חישובי סטריאו.

אם אי אפשר להחיל מצב סצנה מורחבת נתמך לכל פריים, עיכובים לא צפויים כאשר הם מופעלים/מושבתים, כולל ANDROID_CONTROL_EXTENDED_SCENE_MODE אינץ' ANDROID_REQUEST_AVAILABLE_SESSION_KEYS. במקביל, מטמיעים את שיטה אחת (ICameraDeviceSession::isReconfigurationRequired()) להימנע לשנות את התצורה של מצבי הסצנות המורחבים שלא מצריכים הגדרה.

אימות

כדי לאמת את תכונת ה-bokeh במכשיר, מריצים את ה-CTS, VTS ו בדיקות CTS מאמת:

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • CameraBokehTest במאמת CTS