برای دستگاههایی که اندروید ۱۳ و بالاتر را اجرا میکنند، اندروید از خروجی دوربین ۱۰ بیتی از طریق پروفایلهای محدوده دینامیکی پشتیبانی میکند که میتوانند توسط کلاینت دوربین به عنوان بخشی از پیکربندی جریان پیکربندی شوند. تولیدکنندگان دستگاه میتوانند پشتیبانی از پروفایلهای محدوده دینامیکی ۱۰ بیتی مانند HLG10، HDR 10، HDR 10+ و Dolby Vision را اضافه کنند.
پشتیبانی از خروجی دوربین ۱۰ بیتی به کلاینتهای دوربین اجازه میدهد تا با فراخوانی getSupportedProfiles پروفایلهای محدوده دینامیکی ۱۰ بیتی پشتیبانیشده یک دستگاه را کشف کنند. سپس این چارچوب نمونهای از DynamicRangeProfiles را برمیگرداند که شامل اطلاعاتی در مورد پروفایلهای محدوده دینامیکی پشتیبانیشده و در صورت وجود، محدودیتهای درخواست ضبط است. پروفایل HLG10 باید پشتیبانی شود. پروفایل محدوده دینامیکی توصیهشده در فیلد REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE فهرست شده است.
کلاینتهای دوربین میتوانند با فراخوانی setDynamicRangeProfile ترکیبهای جریان را پیکربندی کنند. برای اطلاعات بیشتر در مورد ترکیبهای جریان خروجی اجباری، به جدول پیکربندیهای تضمینشده اضافی خروجی 10 بیتی در Regular capture مراجعه کنید.
الزامات
برای پشتیبانی از خروجی دوربین ۱۰ بیتی، دستگاه باید دارای حسگر دوربین با قابلیت ۱۰ بیتی یا بالاتر با پشتیبانی از ISP مربوطه باشد. برای جزئیات بیشتر در مورد الزامات سازگاری مرتبط برای پشتیبانی ۱۰ بیتی، به بخش ۷.۵ مراجعه کنید. دوربینهای موجود در CDD.
پیادهسازی
برای پشتیبانی از خروجی دوربین ۱۰ بیتی، تولیدکنندگان دستگاه باید یکپارچهسازیهای Camera AIDL HAL زیر را انجام دهند:
-
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BITرا در قابلیتهای دوربین لحاظ کنید. -
ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAPرا با تمام پروفایلهای محدوده دینامیکی پشتیبانیشده و یک بیتمپ از محدودیتهای آنها پر کنید. پروفایلHLG10باید پشتیبانی شود. همچنین باید یک پروفایل محدوده دینامیکی پیشنهادی را برای اطلاعرسانی به مشتریان دوربین از فرمت پشتیبانیشده بهینه، اضافه کنید. - از پشتیبانی از مقدار پروفایل محدوده دینامیکی در طول پیکربندی جریان برای جریانهایی که از فرمت P010 استفاده میکنند یا از فرمت تعریفشده توسط پیادهسازی (
ImageFormat.PRIVATE) پشتیبانی میکنند، اطمینان حاصل کنید. - بسته به مشخصات محدوده دینامیکی، قبل از اطلاع به سرویس دوربین، بافر ابرداده استاتیک یا دینامیک بافرهای پردازش شده Gralloc 4 را تنظیم کنید.
برای جزئیات بیشتر در مورد خروجی دوربین ۱۰ بیتی در Camera HAL، به فایل metadata_definitions.xml زیر مراجعه کنید:
-
DYNAMIC_RANGE_TEN_BIT - جزئیات HAL برای
availableDynamicRangeProfilesMap -
recommendedTenBitDynamicRangeProfile -
10BIT_OUTPUT
برای یک پیادهسازی مرجع دوربین HAL که از خروجی دوربین ۱۰ بیتی پشتیبانی میکند، به /hardware/google/camera/devices/EmulatedCamera/hwl مراجعه کنید.
اعتبارسنجی
برای اعتبارسنجی پیادهسازی خروجی دوربین ۱۰ بیتی و اطمینان از اینکه برنامههای شخص ثالث میتوانند این ویژگی را فعال کنند، توصیه میکنیم سه مرحله اعتبارسنجی زیر را انجام دهید.
- صحت عملکرد API را آزمایش کنید
- مقایسه دوربین اصلی و برنامه شخص ثالث
- مقایسه محدوده دینامیکی استاندارد و محدوده دینامیکی بالا
برای اعتبارسنجی بصری خروجی دوربین ۱۰ بیتی، فرض بر این است که دستگاه از نمایش HDR (نمایشگر با روشنایی بیش از ۱۰۰۰ نیت) پشتیبانی میکند و برنامهی مشاهدهی ویدیو (برای مثال، Google Photos) از پخش ویدیوی HDR پشتیبانی میکند.
صحت عملکرد API را آزمایش کنید
برای آزمایش صحت عملکرد API در خروجی دوربین ۱۰ بیتی، تستهای CTS، ITS دوربین و VTS زیر را اجرا کنید:
-
hardware/interfaces/camera/provider/aidl/vts/: آزمایشهایی برای کشف اولیه، پیکربندی و پخش جریانی و بررسی وجود فراداده HDR در صورت لزوم. -
tests/camera/src/android/hardware/camera2/cts/: تضمین میکند که دوربین مطابق با مشخصات API AOSP رفتار کند. -
cts/apps/CameraITS: تأیید میکند که رفتار کلی ویدیو هنگام استفاده از پروفایلهای HDR ثابت است. تست خاصtests/scene4/test_video_aspect_ratio_and_crop.pyاست.
مقایسه دوربین اصلی و برنامه شخص ثالث
اکیداً توصیه میکنیم اطمینان حاصل کنید که نتایج ضبط ویدیوهای ۱۰ بیتی با یک برنامه شخص ثالث، اگر نگوییم کاملاً مشابه، با برنامه دوربین اصلی باشد. این بدان معناست که گزینههای تنظیم، مانند نوردهی، محدوده دینامیکی و رنگ، باید از برنامه اصلی به برنامههای شخص ثالث منتقل شوند. برای تأیید رفتار ضبط ویدیوی یک برنامه شخص ثالث که از خروجی دوربین ۱۰ بیتی در دستگاه شما پشتیبانی میکند، از برنامه نمونه Camera2Video در GitHub استفاده کنید. راهنمای زیر به دلیل تنوع حسگرها، پنلها، شرایط مشاهده و ترجیحات فروشنده، جنبههای قابل مشاهده HDR را بدون اعداد عینی نشان میدهد.
صحنههای پیشنهادی برای مقایسه
برای مقایسه بین برنامه دوربین اصلی و یک برنامه شخص ثالث، ویدیوها را با استفاده از چندین صحنه مختلف با برنامه دوربین اصلی و برنامه نمونه Camera2Video ضبط کنید. صحنههای پیشنهادی برای مقایسه در زیر آمده است:
- صحنهای با نور متوسط تا کم با یک شیء روشن، مانند شمع یا چراغ کوچک و درخشان که طیف قابل توجهی از روشنایی ایجاد میکند. این موضوع، رفتار نوردهی خودکار و محدوده دینامیکی را تأیید میکند.
- یک صحنه روشن در فضای باز با رنگهای پر جنب و جوش و اشیاء بازتابنده مانند سپرهای کرومی روی یک ماشین، که هایلایتهای روشن ایجاد میکند. این امر رندر صحنههای روشن با هایلایتهای حتی روشنتر را تأیید میکند.
- یک صحنه با محدوده دینامیکی متوسط و پایین مانند یک صحنه طبیعی در فضای داخلی خانه یا محل کار. این تایید میکند که شرایط نوری ملایمتر مطابق انتظار عمل میکنند.
برای همه صحنهها، توصیه میکنیم افراد و چهرهها را برای تأیید نوردهی، رنگ و تنظیم رنگ پوست داشته باشید. کاهش تغییرات نما به نما، مقایسههای پشت سر هم را آسان میکند.
مقایسه محدوده دینامیکی استاندارد و محدوده دینامیکی بالا
برای اطمینان از اینکه استفاده از پروفایل محدوده دینامیکی ۱۰ بیتی نسبت به پروفایل محدوده دینامیکی استاندارد مزیتی دارد، ویدیوهای ضبط شده با استفاده از SDR (بدون پروفایل HDR) را با ویدیوهای HDR مقایسه کنید تا مطمئن شوید که جنبههای کلیدی HDR در ویدیوها ظاهر میشوند. برای مقایسه SDR و HDR، از برنامه نمونه Camera2Video و صحنههای پیشنهادی برای مقایسه برنامه دوربین اصلی و برنامههای شخص ثالث استفاده کنید.
موارد زیر جنبههای کلیدی برای بررسی در صحنههای پیشنهادی هستند. پنلهای نمایشگری که قابلیت HDR دارند، از نظر میزان روشنایی (که با واحد نیت یا لومن اندازهگیری میشوند) متفاوت هستند، بنابراین اعداد زیر به عنوان مثال ارائه شدهاند:
- در صحنههای با نور متوسط تا کم، هایلایتهای روشن شمع یا نور کوچک در کلیپ HDR با حداکثر روشنایی برای نمایشگر (احتمالاً تا ۱۰۰۰ نیت) رندر میشوند و در کلیپ SDR با حداکثر روشنایی برای SDR (تقریباً ۱۰۰ نیت) رندر میشوند. در کلیپ HDR، هایلایتهای روشن باید از نمایشگر بدرخشند و درک کاربر از محدوده دینامیکی واقعی صحنه را ثبت کنند. در مقایسه با کلیپ HDR، کلیپ SDR باید مسطحتر و کمنورتر به نظر برسد.
- در صحنه خروجی روشن، بسته به تنظیم دستگاه، کلیپ HDR تفاوت آشکاری در روشنایی صفحه نمایش در مقایسه با کلیپ SDR نشان میدهد. برای کلیپ HDR، روشنایی صفحه نمایش برای کل صحنه (بسته به فضای سر) باید بالاتر باشد، به عنوان مثال، تا ۸۰۰ نیت، و حتی بیشتر برای هایلایتهای روشن مانند سپرهای کرومی، در حدود حداکثر روشنایی.
- در ضبط فضای داخلی با محدوده دینامیکی متوسط و پایین، کلیپهای HDR و SDR از نظر رنگ و تُن مشابه هستند و ضبط HDR به طور بالقوه روشنتر از SDR است. HDR نباید تاریکتر از SDR باشد. اگر تنظیمات انجام شده این کار را غیرممکن میکند، مطمئن شوید که رفتار برنامه شخص ثالث با رفتار برنامه دوربین اصلی مطابقت دارد.