بوکه دوربین یک افکت عمق میدان کم است که با محو کردن قسمتهایی از صحنه بهگونهای که در فوکوس نباشند، ایجاد میشود. در دوربین های دستگاه های تلفن همراه، بوکه با استفاده از اطلاعات عمقی به دست آمده از دید استریو از دو دوربین یا از دیودهای نوری دوگانه (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_EXTOLNE_CONTROL_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE وANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS0, 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