بوکه دوربین

«بوکه دوربین» جلوه عمق میدان کم است که با محو کردن بخش‌هایی از صحنه ایجاد می‌شود تا در کانون توجه نباشند. در دوربین‌های دستگاه‌های همراه، بوکه بااستفاده از اطلاعات عمق به‌دست‌آمده از دید استریو از دو دوربین یا از فوتودیودهای (PD) دوگانه یک دوربین واحد به‌دست می‌آید.

از Android 11 به بعد، پلاتفرم Android از پیاده‌سازی‌های بوکه پشتیبانی می‌کند و میاناهای برنامه‌سازی کاربردی را برای دردسترس قرار دادن این ویژگی برای برنامه‌های طرف سوم ارائه می‌دهد.

پیاده‌سازی

برای دردسترس قرار دادن ویژگی بوکه دوربین در دستگاهتان، مراحل زیر را انجام دهید:

  • تبلیغ 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 زیر را اجرا کنید:

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • ‫CameraBokehTest در «درستی‌سنج مجموعه آزمایش سازگاری»