בוקה במצלמה הוא אפקט של עומק שדה רדוד שנוצר מטשטוש של חלקים בסצנה, כך שהם לא בפוקוס. במצלמות במכשירים ניידים, אפקט הבוקה מושג באמצעות מידע על עומק השדה שמתקבל מראייה סטריאו משתי מצלמות או משני פוטודיודות (PD) של מצלמה אחת.
החל מ-Android 11, פלטפורמת Android תומכת בהטמעות של אפקט בוקה ומספקת ממשקי API כדי להפוך את התכונה לזמינה לאפליקציות של צד שלישי.
הטמעה
כדי להשתמש בתכונת אפקט בוקה של המצלמה במכשיר, מבצעים את הפעולות הבאות:
פרסום ב
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES:התג הזה הוא במערך של טאפל עם שלושה מספרים שלמים, כאשר כל טאפל הוא בפורמט
{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.
כדי שאפליקציה תפעיל את תכונת אפקט בוקה, היא צריכה להגדיר את 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() כדי להימנע מהגדרה מחדש של מצבי צילום מורחבים שלא דורשים הגדרה מחדש.
אימות
כדי לאמת את תכונת הבוקה במכשיר, מריצים את הבדיקות הבאות ב-CTS, ב-VTS וב-CTS Verifier:
CtsCameraTestCasesVtsHalCameraProviderV2_4TargetTest-
CameraBokehTestב-CTS Verifier