بوکه دوربین

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

از اندروید ۱۱ به بعد، پلتفرم اندروید از پیاده‌سازی بوکه پشتیبانی می‌کند و 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 زیر را اجرا کنید:

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • CameraBokehTest در تأییدکننده CTS