دوربین بوکه

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

با شروع اندروید 11، پلتفرم اندروید از پیاده سازی بوکه پشتیبانی می کند و 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_CONTROL_NEH_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE و ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS اندازه متناظر با حداکثر اندازه آنها را فهرست کند، 0، 0} س

  • 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 Verifier
،

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

با شروع اندروید 11، پلتفرم اندروید از پیاده سازی بوکه پشتیبانی می کند و 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_CONTROL_NEH_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE و ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS اندازه متناظر با حداکثر اندازه آنها را فهرست کند، 0، 0} س

  • 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 Verifier