אפקט בוקה במצלמה הוא אפקט של עומק שדה רדוד שנוצר על ידי טשטוש חלקים מהסצנה כדי שהם לא יהיו בפוקוס. במצלמות במכשירים ניידים, אפקט הבוקה מתקבל באמצעות נתוני עומק שנרכשו מהראייה הסטריאוסקופית של שתי מצלמות או משני פוטודיודים (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
לאחד ממצבי התמונה המורחבים הנתמכים.
חשוב לדעת שהטמעת אפקט bokeh עשויה להוביל לצריכת זיכרון נוספת בגלל חישוב סטראוסקופי.
אם אי אפשר להחיל מצב תצוגה מורחב נתמך לכל פריים והפעלה או השבתה שלו גורמות לעיכובים לא צפויים, צריך לכלול את ANDROID_CONTROL_EXTENDED_SCENE_MODE
ב-ANDROID_REQUEST_AVAILABLE_SESSION_KEYS
. במקביל, מטמיעים את השיטה ICameraDeviceSession::isReconfigurationRequired()
כדי להימנע מהגדרה מחדש של מצבי סצנה מורחבים שלא דורשים הגדרה מחדש.
אימות
כדי לאמת את תכונת הבוקה במכשיר, מריצים את הבדיקות הבאות של CTS, VTS ו-CTS Verifier:
CtsCameraTestCases
VtsHalCameraProviderV2_4TargetTest
CameraBokehTest
ב-CTS Verifier