بالنسبة إلى الأجهزة التي تعمل بنظام التشغيل Android 13 والإصدارات الأحدث، يتيح نظام التشغيل Android تشغيل الكاميرا بدقة 10 بت من خلال ملفات تعريف النطاق الديناميكي التي يمكن أن يضبطها برنامج الكاميرا كجزء من إعدادات البث. يمكن للشركات المصنّعة للأجهزة إضافة ملفات شخصية للنطاق الديناميكي بمعدّل 10 بت، مثل HLG10 وHDR 10 وHDR 10+ وDolby Vision.
يتيح توفّر مخرجات الكاميرا بدقة 10 بت لعملاء الكاميرا اكتشاف ملفات تعريف النطاق الديناميكي بدقة 10 بت المتوافقة مع الجهاز من خلال الاتصال بـ
getSupportedProfiles
.
بعد ذلك، يعرض الإطار مثيلًا من
DynamicRangeProfiles
،
الذي يتضمّن معلومات عن الملفات الشخصية للّوحة الديناميكية المتوافقة والقيود المفروضة على طلب الالتقاط، إن كانت متوفرة. يجب أن يكون الملف الشخصي
HLG10
متوافقًا. يتم إدراج الملف الشخصي المُقترَح للنطاق الديناميكي في الحقل
REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE
.
يمكن لعملاء الكاميرا ضبط مجموعات البث من خلال الاتصال بـ
setDynamicRangeProfile
.
لمزيد من المعلومات عن مجموعات بث الإخراج الإلزامية، يُرجى الاطّلاع على جدول
الإعدادات الإضافية المضمونة لإخراج 10 بت في
التسجيل العادي.
المتطلبات
لتتمكّن الكاميرا من عرض فيديوهات بدقة 10 بت، يجب أن يتضمّن الجهاز أداة استشعار كاميرا متوافقة مع دقة 10 بت أو أعلى مع دعم وحدة معالجة الصور ذات الصلة. لمعرفة التفاصيل حول متطلبات التوافق ذات الصلة لدعم 10 بت، يُرجى الاطّلاع على القسم 7.5. الكاميرات في CDD
التنفيذ
لتوفير إمكانية استخدام كاميرا بدقة 10 بت، على الشركات المصنّعة للأجهزة تنفيذ عمليات دمج Camera AIDL HAL التالية:
- أدرِج
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT
في إمكانات الكاميرا. - يمكنك تعبئة
ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP
بجميع الملفات الشخصية المتوافقة للنطاق الديناميكي وصورة نقطية لقيودها. يجب أن يكون الملف الشخصي علىHLG10
متوافقًا. ويجب أيضًا تضمين ملف شخصي مقترَح للنطاق الديناميكي لإعلام عملاء الكاميرات بالتنسيق الأمثل المتوافق. - يجب التأكّد من إتاحة قيمة الملف الشخصي للنطاق الديناميكي أثناء إعداد البث باستخدام التنسيق P010 أو استخدام تنسيق محدّد للتنفيذ (
ImageFormat.PRIVATE
). - استنادًا إلى الملف الشخصي للنطاق الديناميكي، اضبط البيانات الوصفية الثابتة أو الديناميكية المخزّنة في وحدات تخزين مؤقتة من Gralloc 4 التي تمت معالجتها قبل إرسال إشعار إلى خدمة الكاميرا.
لمزيد من التفاصيل حول إخراج الكاميرا بدقة 10 بت في طبقة تجريد الأجهزة (HAL) للكاميرا، يمكنك الاطّلاع
على ما يلي في metadata_definitions.xml
:
DYNAMIC_RANGE_TEN_BIT
- تفاصيل HAL لـ
availableDynamicRangeProfilesMap
recommendedTenBitDynamicRangeProfile
10BIT_OUTPUT
للحصول على مرجع لتنفيذ Camera HAL متوافق مع إخراج الكاميرا بدقة 10 بت، يُرجى الاطّلاع على
/hardware/google/camera/devices/EmulatedCamera/hwl
.
التحقُّق
للتحقّق من تنفيذ إخراج كاميرا 10 بت والتأكّد من أنّ التطبيقات التابعة لجهات خارجية يمكنها تفعيل هذه الميزة، ننصحك بإجراء المراحل الثلاث التالية من عملية التحقّق.
- اختبار الصحة الوظيفية لواجهة برمجة التطبيقات
- مقارنة بين الكاميرا الأصلية والتطبيق التابع لجهة خارجية
- مقارنة النطاق الديناميكي العادي والنطاق العالي الديناميكية
للتحقّق من صحة الإخراج بدقة 10 بت من الكاميرا، يُفترض أنّ الجهاز يتوافق مع عرض الفيديو بنطاق عالي الديناميكية (عرض بأكثر من 1000 وحدة نِت)، وأنّ تطبيق عرض الفيديو (مثل "صور Google") يتوافق مع تشغيل الفيديو بنطاق عالي الديناميكية.
اختبار صحة وظائف واجهة برمجة التطبيقات
لاختبار صحة وظائف واجهة برمجة التطبيقات لإخراج الكاميرا بدقة 10 بت، عليك إجراء اختبارات CTS وITS للكاميرا وVTS التالية:
-
hardware/interfaces/camera/provider/aidl/vts/
: يختبر هذا الاختبار عمليات الاكتشاف والضبط والبث الأساسية، ويتحقّق من توفّر البيانات الوصفية ذات تنسيق HDR عند الحاجة. -
tests/camera/src/android/hardware/camera2/cts/
: يضمن هذا الاختبار أن تعمل الكاميرا وفقًا لمواصفات AOSP API. cts/apps/CameraITS
: confirm that the general behavior of the video is consistent when using HDR profiles الاختبار المحدّد هوtests/scene4/test_video_aspect_ratio_and_crop.py
.
مقارنة الكاميرا المدمجة بالتطبيق التابع لجهة خارجية
ننصحك بشدة بالتأكّد من أنّ نتائج تسجيل فيديوهات بدقة 10 بت باستخدام تطبيق تابع لجهة خارجية تكون مشابهة لنتائج تطبيق الكاميرا الأصلي، إن لم تكن مطابقة له. ويعني ذلك أنّ خيارات الضبط، مثل التعريض النطاق الديناميكي واللون، يجب أن تنتقل من التطبيق الأصلي إلى التطبيقات التابعة لجهات خارجية. للتحقّق من سلوك تسجيل الفيديو في تطبيق تابع لجهة خارجية متوافق مع إخراج الكاميرا بدقة 10 بت على جهازك، استخدِم نموذج تطبيق Camera2Video على GitHub. توضح الإرشادات التالية الجوانب المرئية للنطاق العالي الديناميكية بدون أرقام موضوعية، بسبب تباين أدوات الاستشعار واللوحات وظروف العرض والإعدادات المفضّلة للمورّدين.
المشاهد المقترَحة للمقارنة
لإجراء مقارنة بين تطبيق الكاميرا الأصلي وتطبيق تابع لجهة خارجية، التقط فيديوهات باستخدام عدة مَشاهد مختلفة باستخدام كلّ من تطبيق الكاميرا الأصلي وتطبيق Camera2Video التجريبي. في ما يلي مَشاهد مقترَحة لاستخدامها في مقارنة:
- مشهد من الإضاءة المتوسطة إلى المنخفضة مع جسم ساطع، مثل شمعة أو ضوء ساطع صغير يُنشئ نطاقًا كبيرًا من السطوع يؤكّد ذلك سلوك التعريض التلقائي والنطاق الديناميكي.
- مشهد مشرق في الهواء الطلق بألوان نابضة بالحياة وعناصر عاكسة، مثل مصدات الكروم في السيارة، ما يخلق نقاط تمييز ساطعة يؤكّد ذلك عرض المشاهد الساطعة مع إضاءة أكثر سطوعًا.
- مشهد متوسط النطاق منخفض النطاق الديناميكي، مثل مشهد طبيعي داخلي في منزل أو مكتب وهذا يؤكد أن ظروف الإضاءة الأقل شدة تعمل على النحو المتوقع.
في جميع المشاهد، ننصحك بالتأكّد من الأشخاص والوجوه للتأكّد من التعرّض للأصوات واللون ودرجة لون البشرة. يساعد تقليل الاختلافات بين اللقطات في تسهيل المقارنة بين اللقطات المتعاقبة.
مقارنة النطاق الديناميكي العادي والنطاق العالي الديناميكية
للتأكّد من أنّ هناك فائدة ملحوظة من استخدام ملف تعريف النطاق الديناميكي بدقة 10 بت بدلاً من ملف تعريف النطاق الديناميكي العادي، قارِن بين لقطات الفيديو التي تم إنشاؤها باستخدام النطاق الديناميكي العادي (بدون ملف تعريف HDR) والفيديوهات بنطاق HDR للتأكّد من ظهور الجوانب الرئيسية لتقنية HDR في اللقطات. لمقارنة النطاق العادي الديناميكية (SDR) والنطاق العالي الديناميكية (HDR)، استخدِم تطبيق Camera2Video التجريبي والمشاهد المقترَحة لمقارنة تطبيق الكاميرا الأصلي وتطبيقات الجهات الخارجية.
في ما يلي الجوانب الرئيسية التي يجب التحقّق منها في المشاهد المقترَحة. تختلف لوحات العرض القادرة على تقنية النطاق العالي الديناميكية في مستويات السطوع (التي يتم قياسها بوحدات نِت أو لومن)، لذا يمكن اعتبار الأرقام التالية الواردة أمثلة على ذلك:
- في المشهد الذي يضم إضاءة متوسطة أو منخفضة، يتم عرض الأجزاء الساطعة من الشمعة أو المصابيح الصغيرة بأعلى درجة سطوع للشاشة (قد تصل إلى 1,000 نِت) في المقطع بتقنية النطاق العالي الديناميكية، وبأعلى درجة سطوع للمحتوى بتنسيق SDR (100 نِت تقريبًا) في المقطع بتنسيق SDR. في مقطع HDR، يجب أن تظهر المؤثرات المميّزة الساطعة على الشاشة، ما ينقل انطباع المستخدم عن النطاق الديناميكي الحقيقي للمشهد. مقارنةً بالفيديو بتقنية HDR، يجب أن يظهر مقطع الدقة العادية (SDR) بشكل أقل سطوعًا وأقل حيوية.
- في مشهد الإخراج المشرق، يُظهر مقطع HDR اختلافًا واضحًا في سطوع الشاشة مقارنةً بمقطع SDR، وذلك استنادًا إلى إعدادات الجهاز. بالنسبة إلى المقطع بتقنية النطاق العالي الديناميكية، يجب أن يكون سطوع الشاشة للّقطة بأكملها (حسب المساحة المتاحة) أعلى، على سبيل المثال، ما يصل إلى 800 نِت، وأكثر من ذلك للعناصر الساطعة، مثل مصدات الكروم، عند استخدام أعلى درجة سطوع.
- في التصوير الداخلي بنطاق ديناميكي متوسط أو منخفض، تكون لقطات HDR وSDR مشابهة من حيث اللون والدرجة اللونية، مع احتمال أن تكون لقطات HDR أكثر سطوعًا من لقطات SDR. يجب ألا تكون درجة تشبع الألوان في الفيديوهات بتنسيق HDR أقل من درجة تشبع الألوان في الفيديوهات بتنسيق SDR. إذا كانت خيارات الضبط تجعل ذلك مستحيلاً، تأكَّد من أنّ سلوك التطبيق التابع لجهة خارجية يتطابق مع سلوك تطبيق الكاميرا الأصلي.