تقدّم هذه الصفحة قائمة شاملة بالاختبارات ضمن "مجموعة اختبار صور الكاميرا" (ITS)، وهي جزء من أداة التحقّق من "مجموعة اختبار التوافق" (CTS) في Android. اختبارات ITS هي اختبارات وظيفية، ما يعني أنّها لا تقيس جودة الصورة، ولكنّها تضمن أنّ جميع وظائف الكاميرا المُعلن عنها تعمل على النحو المتوقّع. يتيح هذا المستند للمطوّرين والمختبِرين فهم ما تفعله الاختبارات الفردية وكيفية تصحيح أخطاء الاختبارات.
تختبر بوابة ITS للكاميرا خصائص الكاميرا المطلوبة ومستوى واجهة برمجة التطبيقات ومستوى فئة أداء الوسائط (MPC). بالنسبة إلى مستوى واجهة برمجة التطبيقات، يستخدم نظام اختبار التوافق (ITS) ro.product.first_api_level
لحصر الاختبارات التي تمت إضافتها في مستوى واجهة برمجة تطبيقات معيّن والتي تختبر تجارب المستخدم السلبية للوظائف في مستويات واجهة برمجة التطبيقات الأقل. تستخدم ITS
ro.vendor.api_level
لتحديد إمكانية إجراء اختبارات الميزات التي تمت إضافتها في مستوى معيّن من واجهة برمجة التطبيقات ويتطلّب إمكانات أجهزة جديدة. في حال تحديد ro.odm.build.media_performance_class
لجهاز، تتطلّب مجموعة اختبارات التوافق مع نظام التشغيل Android (ITS) إجراء اختبارات محدّدة حسب مستوى MPC.
يتم تجميع الاختبارات حسب المشهد على النحو التالي:
scene0
: التقاط البيانات الوصفية والتشويش والجيروسكوب والاهتزازscene1
: درجة الإضاءة والحساسية وتعويض قيمة درجة الإضاءة (EV) ومقارنة بين YUV وJPEG وRAWscene2
: التعرّف على الوجوه، الاختبارات التي تتطلّب مشاهد ملونةscene3
: تحسين الحواف، حركة العدسةscene4
: نسبة العرض إلى الارتفاع والقص ومجال الرؤيةscene5
: تظليل العدسةscene6
: تكبير/تصغيرscene7
: مفتاح تبديل الكاميرات المتعددةscene8
: قياس التعرض التلقائي للضوء (AE) وتوازن اللون الأبيض التلقائي (AWB) في المنطقةscene9
: ضغط JPEGscene_extensions
: إضافات الكاميراscene_tele
: تبديل العدسة المقرِّبة (تيليفوتو)-
scene_flash
: الفلاش التلقائي، الحدّ الأدنى لعدد اللقطات في الثانية scene_video
: انخفاض عدد اللقطات في الثانية-
sensor_fusion
: إزاحة التوقيت بين الكاميرا والجيروسكوب feature_combination
: مجموعات الميزاتscene_ip
: تطابق الصور بين تطبيق الكاميرا التلقائي و"تطبيق Jetpack Camera" (JCA)
اطّلِع على الأقسام الفردية للحصول على وصف لكل مشهد.
scene0
لا تتطلّب الاختبارات معلومات مشهد معيّن. ومع ذلك، يجب أن يكون الهاتف ثابتًا لإجراء اختبارات الجيروسكوب والاهتزاز.
test_jitter
تقيس هذه السمة التشويش في الطوابع الزمنية للكاميرا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
ناجح: يجب أن يكون هناك فرق زمني لا يقل عن 30 مللي ثانية بين اللقطات.
في الشكل التالي، لاحظ النطاق الصغير للمحور الصادي. يكون التشويش صغيرًا في هذا الرسم البياني.
الشكل 1. رسم بياني بالنقاط المبعثرة لاختبار الارتعاش.
test_metadata
تختبر هذه السمة صحة إدخالات البيانات الوصفية، وذلك من خلال النظر إلى نتائج الالتقاط وإلى عناصر خصائص الكاميرا. يستخدم هذا الاختبار قيم auto_capture_request
للتعرّض والزيادة لأنّ محتوى الصورة ليس مهمًا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
android.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPE
android.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERN
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
ناجح: يتوفّر كل من مستوى الجهاز وrollingShutterSkew
وframeDuration
وtimestampSource
وcroppingType
وblackLevelPattern
وpixel_pitch
ومجال الرؤية والمسافة البؤرية الفائقة، كما أنّ قيمها صالحة.
test_request_capture_match
اختبارات للتأكّد من أنّ الجهاز يسجّل قيم التعريض والربح الصحيحة من خلال قراءة البيانات الوصفية التي تم التقاطها.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
ناجح: تتطابق قيم البيانات الوصفية للطلب والالتقاط في جميع اللقطات.
test_sensor_events
بالنسبة إلى الأجهزة التي تعلن عن توافقها مع ميزة "دمج بيانات المستشعرات"، يتحقّق هذا الاختبار مما إذا كان الجهاز يستعلم عن أحداث المستشعر ويطبعها. أدوات الاستشعار المتوقّعة هي مقياس التسارع والجيروسكوب ومقياس المغناطيسية. لا يعمل هذا الاختبار إلا إذا كانت الشاشة مضاءة، أي إذا لم يكن الجهاز في وضع الاستعداد.
واجهات برمجة التطبيقات التي تم اختبارها:
ناجح: تم تلقّي أحداث لكل جهاز استشعار.
test_solid_color_test_pattern
اختبارات يتم فيها إنشاء أنماط اختبار الألوان الثابتة بشكل صحيح لكتم صوت الكاميرا إذا كان إيقاف صوت الكاميرا متاحًا، يجب أن تكون أنماط اختبار الألوان الثابتة متاحة. إذا لم يكن كتم صوت الكاميرا متاحًا، يتم اختبار أنماط الاختبار ذات الألوان الثابتة فقط إذا تم الإعلان عن توفّر هذه الميزة.
في حال توفّر الصور الأولية، يتم اختبار عملية تحديد الألوان أيضًا. الألوان التي تم اختبارها هي الأسود والأبيض والأحمر والأزرق والأخضر. بالنسبة إلى الكاميرات التي لا تتوافق مع الصور الأولية، يتم اختبار اللون الأسود فقط.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATA
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
اجتياز: تكون أنماط الاختبار الثابتة المتوافقة باللون الصحيح مع تباين منخفض في الصورة.
test_test_pattern
يختبر المَعلمة android.sensor.testPatternMode
لالتقاط لقطات شاشة لكل نمط اختبار صالح، ويتأكّد من إنشاء اللقطات بشكل صحيح للألوان الثابتة وأشرطة الألوان. يتضمّن هذا الاختبار الخطوات التالية:
- التقاط صور لجميع أنماط الاختبار المتوافقة
- تُجري هذه السمة عملية تحقّق من صحة نمط اختبار اللون الثابت وأشرطة الألوان.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
اجتياز: يتم إنشاء أنماط الاختبار المتوافقة بشكلٍ صحيح.
الشكل 2: مثال على test_test_patterns
test_tonemap_curve
تختبر هذه الحالة تحويل نمط الاختبار من تنسيق RAW إلى YUV باستخدام عملية تعيين درجات الألوان الخطية. يتطلّب هذا الاختبار android.sensor.testPatternMode = 2
(COLOR_BARS
) لإنشاء نمط صورة مثالي لتحويل مخطط الألوان. تتحقّق هذه السمة من أنّ مسار العرض يتضمّن نواتج ألوان مناسبة مع ربط النغمات الخطّي وإدخال صورة مثالية (تعتمد على test_test_patterns
).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
ناجح: تبدو بيانات YUV وRAW متشابهة.
الشكل 3: مثال أولي على test_tonemap_curve.
الشكل 4. مثال على test_tonemap_curve YUV.
test_unified_timestamp
تختبر هذه السمة ما إذا كانت أحداث الصورة وأحداث مستشعر الحركة في نطاق زمني واحد.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.hardware.Sensor#TYPE_GYROSCOPE
اجتياز: تكون الطوابع الزمنية للحركة بين الطوابع الزمنية للصورتَين.
test_vibration_restriction
تختبر هذه السمة ما إذا كان اهتزاز الجهاز يعمل على النحو المتوقّع.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.os.Vibrator
android.hardware.camera2.CameraDevice#setCameraAudioRestriction
النتيجة: لا يهتز الجهاز عند كتم صوته باستخدام واجهة برمجة التطبيقات الخاصة بقيود الصوت في الكاميرا.
scene1_1
scene1
هو مخطط رمادي. يجب أن يغطي الرسم البياني الرمادي% 30 من وسط مجال رؤية الكاميرا. من المتوقّع أن يواجه الرسم البياني الرمادي تحديًا معتدلاً في 3A (التعرّض التلقائي، وتوازن اللون الأبيض التلقائي، والتركيز التلقائي) لأنّ المنطقة الوسطى لا تتضمّن أي ميزات.
ومع ذلك، يحدّد طلب الالتقاط المشهد بأكمله الذي يتضمّن ميزات كافية لتقارب 3A.
يمكن اختبار كاميرات RFoV في منصة اختبار WFoV أو RFoV. إذا تم اختبار كاميرا RFoV في جهاز اختبار WFoV، يتم تغيير حجم الرسم البياني بمقدار 2/3 لتحديد بعض الحدود للرسم البياني الرمادي في مجال الرؤية للمساعدة في تقارب 3A. للحصول على أوصاف أكثر تفصيلاً لمعدّات اختبار الكاميرا، يُرجى الاطّلاع على Camera ITS-in-a-box.
الشكل 5. الرسم البياني بالحجم الكامل للمشهد 1 (على اليمين)، والرسم البياني بمقياس 2/3 (على اليسار)
test_ae_precapture_trigger
تختبر هذه السمة آلة الحالة AE عند استخدام مشغّل الالتقاط المُسبَق. تسجيل خمسة طلبات يدوية مع إيقاف ميزة "الضبط التلقائي" يحتوي الطلب الأخير على مشغّل مسبق لالتقاط بيانات AE، ويجب تجاهله لأنّ ميزة AE غير مفعّلة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
اجتياز: تتلاقى مقاييس "دقة التوقّع".
test_auto_vs_manual
تبدو الاختبارات التي تم التقاطها تلقائيًا ويدويًا متشابهة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
اجتياز: تتطابق التحسينات والتحويلات اليدوية لضبط توازن اللون الأبيض التي يتم تسجيلها في كل نتيجة التقاط
مع توازن اللون الأبيض التلقائي estimate
من خوارزمية 3A للكاميرا.
الشكل 6: مثال على اختبار تلقائي مقابل اختبار يدوي.
الشكل 7: مثال على موازنة اللون الأبيض في اختبار_تلقائي_مقابل_يدوي
الشكل 8: مثال على تحويل موازنة اللون الأبيض اليدوية في test_auto_vs_manual
test_black_white
اختبارات ينتج عنها صور بالأبيض والأسود فقط يتم التقاط صورتَين، الأولى بمستوى كسب منخفض للغاية ومدة تعرّض قصيرة، ما يؤدي إلى ظهور صورة سوداء، والثانية بمستوى كسب مرتفع للغاية ومدة تعرّض طويلة، ما يؤدي إلى ظهور صورة بيضاء.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
اجتياز: لإنشاء صور باللونين الأبيض والأسود. تحتوي القنوات المشبّعة للصور البيضاء على قيم RGB تبلغ [255, 255, 255] مع هامش خطأ أقل من %1.
الشكل 9: test_black_white، مثال على اللون الأسود
الشكل 10: test_black_white، مثال على اللون الأبيض
الشكل 11: test_black_white، مثال على رسم بياني للمتوسطات.
test_burst_capture
تتحقّق هذه السمة من أنّ مسار التقاط الصور بالكامل يمكنه مواكبة سرعة التقاط الصور بالحجم الكامل ووقت وحدة المعالجة المركزية.
واجهات برمجة التطبيقات التي تم اختبارها:
اجتياز: يتم التقاط سلسلة من الصور بالحجم الكامل، والتحقّق من عدم حدوث انخفاض في عدد اللقطات في الثانية ومن سطوع الصورة.
test_burst_sameness_manual
التقاط 5 لقطات متتالية من 50 صورة باستخدام إعدادات الالتقاط اليدوي والتأكّد من أنّها متطابقة استخدِم هذا الاختبار لتحديد ما إذا كانت هناك لقطات متفرّقة تتم معالجتها بشكل مختلف أو تتضمّن تشويشًا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
اجتياز: تكون الصور متطابقة من حيث الشكل وقيم RGB.
تعذُّر: يعرض ارتفاعًا أو انخفاضًا في الرسم البياني لمتوسط قيم الأحمر والأخضر والأزرق في بداية كل لقطة متسلسلة
- معدّل التفاوت هو% 3 لـ
first_API_level
< 30 - معدّل التفاوت هو% 2 عندما يكون
first_API_level
أكبر من أو يساوي 30
الشكل 12: مثال على متوسط test_burst_sameness_manual.
الشكل 13. test_burst_sameness_manual_plot_means
test_crop_region_raw
اختبارات للتأكّد من أنّ ساحات المشاركات RAW غير قابلة للاقتصاص
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureResult#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
النتيجة: يتم اقتصاص صور YUV من المنتصف، ولكن لا يتم اقتصاص صور RAW.
الشكل 14: مثال على اقتصاص test_crop_region_raw.
الشكل 15: مثال كامل على test_crop_region_raw comp raw.
الشكل 16. مثال على اقتصاص YUV test_crop_region_raw comp.
الشكل 17: مثال كامل على test_crop_region_raw YUV.
test_crop_regions
اختبارات للتأكّد من أنّ مناطق الاقتصاص تعمل بشكل صحيح تأخذ هذه الطريقة صورة كاملة وتنشئ رقعًا لخمس مناطق مختلفة (الزوايا والوسط). تأخذ هذه السمة صورًا مع ضبط الاقتصاص على المناطق الخمس. تقارن هذه السمة بين قيم الرقعة والصورة المقتصة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
اجتياز: تتطابق صورة المنطقة التي تم اقتصاصها مع الرقعة التي تتوافق مع صورة الاقتصاص.
test_ev_compensation
تختبر هذه السمة ما إذا كان يتم تطبيق تعويض قيمة التعريض (EV). يتألف الاختبار من قسم أساسي وقسم متقدّم.
يختبر القسم الأساسي ما إذا كان يتم تطبيق تعويض المركبة الكهربائية باستخدام نطاق تم إنشاؤه باستخدام CONTROL_AE_COMPENSATION_STEP
. يتم التقاط ثمانية إطارات عند كل قيمة تعويض.
يزيد القسم المتقدّم من مستوى التعرض للضوء في ثماني خطوات، ويتحقّق من مستوى السطوع المقاس مقارنةً بمستوى السطوع المتوقّع. يتم احتساب القيم المتوقّعة من سطوع الصورة بدون تطبيق تعويض EV، وتتشبّع القيمة المتوقّعة إذا تجاوزت القيم المحسوبة نطاق قيمة الصورة الفعلية. يفشل الاختبار إذا لم تتطابق القيم المتوقّعة مع القيم المقاسة أو إذا كانت الصور معرَّضة بشكل مفرط خلال خمس خطوات.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
التعرّض الأساسي للضوء: تعرض الصور تعرّضًا متزايدًا للضوء بدون تعرّض مفرط خلال خمس خطوات.
الشكل 18: test_ev_compensation_basic
اجتياز القسم المتقدّم: يتم تسجيل زيادة في سطوع الصورة مع زيادة إعداد تعويض EV. تحتوي اللقطات الثماني التي تم التقاطها لكل إعداد تعويض عن التعرض للضوء على قيم إضاءة ثابتة.
الشكل 19. test_ev_compensation_advanced_plot_means.
test_exposure_x_iso
الاختبارات التي يتم فيها تحقيق مستوى تعرّض ثابت للضوء مع اختلاف حساسية ISO ووقت التعرّض للضوء تلتقط هذه الميزة سلسلة من اللقطات التي تم اختيار حساسية ISO ومدة التعرض للضوء فيها لتحقيق التوازن بينهما.
يجب أن تتطابق النتائج من حيث السطوع، ولكن يجب أن تصبح الصورة أكثر تشويشًا بمرور التسلسل. تتحقّق هذه السمة مما إذا كانت القيم المتوسطة لوحدات البكسل في العيّنة متقاربة. يتحقّق هذا الإجراء من أنّ الصور ليست محصورة بين 0 و1 (ما يجعلها تبدو كخطوط مسطّحة). يمكن أيضًا إجراء الاختبار باستخدام صور RAW من خلال ضبط العلامة debug
في ملف الإعداد.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
اجتياز: تتضمّن الصور درجة السطوع نفسها، ولكنها تصبح أكثر تشويشًا عند استخدام حساسية ISO أعلى. تكون مستويات RGB مسطّحة عندما تكون قيمة ISO*exposure ثابتة على مستوى مساحة الكسب التي تم اختبارها.
آلية التعطُّل: في الشكل التالي، مع زيادة قيم مضاعف الكسب (المحور x)، تبدأ قيم متوسط مستوى RGB العادي (المحور y) في الانحراف عن قيم مضاعف الكسب المنخفضة.
الشكل 20: test_exposure_plot_means.
الشكل 21: test_exposure_mult=1.00.
الشكل 22: test_exposure_mult=64.00.
test_latching
اختبارات تثبيت الإعدادات (التعرّض للضوء ومستوى الصوت) على الإطار الصحيح للكاميرات FULL
وLEVEL_3
لالتقاط سلسلة من اللقطات باستخدام طلبات متتالية،
مع تغيير مَعلمات طلب الالتقاط بين اللقطات. تتحقّق هذه السمة من أنّ الصور تتضمّن الخصائص المتوقّعة.
واجهات برمجة التطبيقات التي تم اختبارها:
ناجح: تم رفع مستوى حساسية ISO أو درجة الإضاءة في الصور [2 و3 و6 و8 و10 و12 و13]، وتظهر هذه الصور بمتوسطات أعلى لقيم الأحمر والأخضر والأزرق في الرسم البياني في الشكل التالي.
الشكل 23: مثال على رسم بياني لـ test_latching.
الشكل 24. test_latching i=00.
الشكل 25. test_latching i=01.
الشكل 26. test_latching i=02.
الشكل 27. test_latching i=03.
الشكل 28. test_latching i=04.
الشكل 29. test_latching i=05.
الشكل 30: test_latching i=06
الشكل 31. test_latching i=07.
الشكل 32. test_latching i=08.
الشكل 33: test_latching i=09
الشكل 34. test_latching i=10.
الشكل 35. test_latching i=11.
الشكل 36: test_latching i=12.
test_linearity
الاختبارات التي يمكن عكس معالجتها على الجهاز إلى وحدات بكسل خطية تسجيل سلسلة من اللقطات مع توجيه الجهاز نحو هدف موحّد
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCK
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
اجتياز: يجب أن تزيد قيم R وG وB بشكل خطي مع زيادة الحساسية.
الشكل 37. مثال على رسم بياني لـ test_linearity.
test_locked_burst
اختبار قفل 3A وYUV burst (باستخدام الإعداد التلقائي) تم تصميم هذا الاختبار ليجتاز حتى الأجهزة المحدودة التي لا تتضمّن MANUAL_SENSOR
أو PER_FRAME_CONTROLS
.
يتحقّق الاختبار من اتساق صورة YUV أثناء إجراء فحص معدّل عرض اللقطات في مجموعة اختبار التوافق (CTS).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
اجتياز: تبدو اللقطات متّسقة.
الشكل 38: مثال على الإطار 0 من test_locked_burst
الشكل 39: مثال على الإطار 1 من test_locked_burst
الشكل 40. مثال على الإطار test_locked_burst frame2.
scene1_2
scene 1_2
هي نسخة طبق الأصل من scene 1_1
، وتتضمّن بنية مشهد فرعي لتخفيف المدة الطويلة لـ scene 1
.
test_param_color_correction
اختبارات يتم فيها تطبيق مَعلمات android.colorCorrection.*
عند ضبطها
التقاط لقطات بقيم مختلفة للتحويل والزيادة، واختبار ما إذا كانت تبدو مختلفة بشكل مماثل يتم اختيار التحويلات والمكاسب لجعل الناتج
أكثر احمرارًا أو زرقة. يستخدم عملية تعيين درجة اللون الخطية.
تحديد درجة اللون هو أسلوب يُستخدم في معالجة الصور لربط مجموعة من الألوان بمجموعة أخرى بهدف محاكاة مظهر الصور ذات النطاق الديناميكي العالي في وسيط ذي نطاق ديناميكي أكثر محدودية.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
اجتياز: يتم تعزيز قيمتَي R وB وفقًا للتحويل.
الشكل 41. مثال على متوسطات مخطط test_param_color_correction.
في الأشكال التالية، يمثّل المحور السيني طلبات الالتقاط: 0 = وحدة، 1 = تعزيز اللون الأحمر، 2 = تعزيز اللون الأزرق.
الشكل 42. مثال على test_param_color_correction req=0 في Unity
الشكل 43. مثال على زيادة اللون الأحمر في test_param_color_correctness req=1
الشكل 44: مثال على زيادة اللون الأزرق في test_param_color_correction req=2
test_param_flash_mode
اختبارات يتم فيها تطبيق المَعلمة android.flash.mode
يضبط هذا الوضع مستوى التعرض للضوء يدويًا على الجانب الداكن، ما يتيح معرفة ما إذا تم تشغيل الفلاش أم لا، كما يستخدم هذا الوضع مخططًا خطيًا لدرجات الألوان. يتم التحقّق من مركز الصورة باستخدام صورة المربّع لمعرفة ما إذا كان هناك تدرّج كبير تم إنشاؤه للتحقّق مما إذا تم تشغيل الفلاش.
واجهات برمجة التطبيقات التي تم اختبارها:
اجتياز: يحتوي مركز صورة المربّع على تدرّج كبير، ما يعني أنّ الفلاش قد تم تشغيله.
الشكل 45: مثال على test_param_flash_mode 1
الشكل 46: مثال على مربّع واحد من test_param_flash_mode
الشكل 47: مثال على test_param_flash_mode 2
الشكل 48: مثال على مربّعين باستخدام test_param_flash_mode
test_param_noise_reduction
اختبارات يتم فيها تطبيق المَعلمة android.noiseReduction.mode
بشكلٍ صحيح عند ضبطها. تلتقط هذه الميزة صورًا في الأماكن ذات الإضاءة الخافتة. يستخدم هذا الوضع مستوى تضخيم تناظريًا عاليًا للمساعدة في ضمان أن تكون الصورة الملتقطة مشوّشة. تلتقط ثلاث صور، إحداها مع إيقاف ميزة "الحد من التشويش"، والثانية بجودة سريعة، والثالثة بجودة عالية. يلتقط أيضًا صورة بمستوى كسب منخفض وبدون تقليل التشويش، ويستخدم التباين في هذه الصورة كخط أساس. كلما زادت نسبة الإشارة إلى الضوضاء، تحسّنت جودة الصورة.
واجهات برمجة التطبيقات التي تم اختبارها:
اجتياز: يختلف نسبة الإشارة إلى الضوضاء باختلاف أوضاع الحدّ من الضوضاء، ويكون سلوكها مشابهًا للرسم البياني التالي:
الشكل 49. مثال على مخطط نسب الإشارة إلى الضوضاء (SNR) الخاص باختبار تقليل الضوضاء.
0: إيقاف، 1: سريع، 2: جودة عالية، 3: الحد الأدنى، 4: سرعة الغالق صفر
الشكل 50: مثال على test_param_noise_reduction high gain nr=0
الشكل 51: مثال على test_param_noise_reduction high gain nr=1
الشكل 52: مثال على test_param_noise_reduction مع مستوى كسب عالٍ nr=2
الشكل 53: مثال على test_param_noise_reduction high gain nr=3
الشكل 54: مثال على مستوى كسب منخفض لـ test_param_noise_reduction
test_param_shading_mode
اختبارات يتم فيها تطبيق المَعلمة android.shading.mode
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
النتيجة: يتم التبديل بين أوضاع التظليل وتعديل خرائط تظليل العدسة على النحو المتوقّع.
الشكل 55: خريطة تظليل العدسة test_param_shading_mode، مثال على الحلقة 0 للوضع 0
الشكل 56: خريطة تظليل العدسة test_param_shading_mode، مثال على الحلقة 0 للوضع 1
الشكل 57. خريطة تظليل العدسة test_param_shading_mode، مثال على الحلقة 0 للوضع 2.
test_param_tonemap_mode
اختبارات يتم فيها تطبيق المَعلمة android.tonemap.mode
تطبِّق هذه السمة منحنيات مختلفة لضبط درجة اللون على كل قناة من قنوات الأحمر والأخضر والأزرق، وتتحقّق من تعديل الصور الناتجة على النحو المتوقّع. يتكوّن هذا الاختبار من اختبارَين، هما test1
وtest2
.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_MODE
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_FAST
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
بطاقة:
test1
: تحتوي كلتا الصورتَين على خريطة درجات لونية خطية، ولكنn=1
تحتوي على تدرّج أكثر حدة. تكون القناة G (الخضراء) أكثر سطوعًا لصورةn=1
.test2
: نفس خريطة الدرجات اللونية، ولكن بطول مختلف الصور متطابقة.
الشكل 58: test_param_tonemap_mode مع n=0
الشكل 59: test_param_tonemap_mode مع n=1
test_post_raw_sensitivity_boost
التحقّق من زيادة حساسية اللمس بعد المعالجة تسجيل مجموعة من الصور الأولية وصور YUV بمستويات حساسية مختلفة، ونشر مجموعة من مستويات الحساسية الأولية المعزّزة، والتحقّق مما إذا كان متوسط وحدات البكسل الناتجة يتطابق مع إعدادات الطلب
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
اجتياز: تصبح الصور الأولية أكثر قتامة كلما زادت درجة التحسين، بينما يظل سطوع صور YUV ثابتًا.
الشكل 60: مثال على test_post_raw_sensitivity_boost raw s=3583 boost=0100.
الشكل 61: مثال على test_post_raw_sensitivity_boost raw s=1792 boost=0200
الشكل 62: مثال على test_post_raw_sensitivity_boost raw s=0896 boost=0400.
الشكل 63: مثال على test_post_raw_sensitivity_boost raw s=0448 boost=0800
الشكل 64: مثال على test_post_raw_sensitivity_boost raw s=0224 boost=1600.
الشكل 65: مثال على test_post_raw_sensitivity_boost raw s=0112 boost=3199
الشكل 66: مثال على الرسم البياني الأولي لـ test_post_raw_sensitivity_boost.
الشكل 67: مثال على test_post_raw_sensitivity_boost YUV s=0112 boost=3199
الشكل 68. مثال على test_post_raw_sensitivity_boost YUV s=0448 boost=0800.
الشكل 69. مثال على test_post_raw_sensitivity_boost YUV s=0896 boost=0400.
الشكل 70: مثال على test_post_raw_sensitivity_boost YUV s=1792 boost=0200
الشكل 71. مثال على test_post_raw_sensitivity_boost YUV s=3585 boost=0100.
الشكل 72. test_post_raw_sensitivity_boost_yuv_plot_means
test_raw_exposure
تلتقط هذه الأداة مجموعة من الصور الأولية مع زيادة وقت التعرّض للضوء، وتقيس قيم البكسل.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
النتيجة: تؤدي زيادة حساسية الضوء إلى جعل وحدات البكسل أكثر حساسية للضوء، وبالتالي يتحرّك الرسم البياني نحو اليسار.
الشكل 73: مثال على test_raw_exposure ISO=55
القيمة 10⁰ هي 1 مللي ثانية، والقيمة 10¹ هي 10 مللي ثانية، والقيمة 10⁻¹ هي 0.1 مللي ثانية.
الشكل 74. مثال على test_raw_exposure ISO=132.
الشكل 75: مثال على test_raw_exposure ISO=209
الشكل 76: مثال على test_raw_exposure ISOs=286
الشكل 77: مثال على test_raw_exposure ISO=363
الشكل 78: مثال على test_raw_exposure ISO=440
test_reprocess_noise_reduction
الاختبارات التي يتم تطبيقها على طلبات إعادة المعالجةandroid.noiseReduction.mode
تلتقط صورًا تمت إعادة معالجتها باستخدام الكاميرا في الإضاءة الخافتة. يستخدم هذا الإعداد مستوى تضخيم تناظريًا عاليًا
للتحقّق من أنّ الصورة الملتقطة تتضمّن تشويشًا. تلتقط ثلاث صور تمت إعادة معالجتها،
مع إيقاف ميزة "الحد من التشويش"، وبجودة سريعة، وبجودة عالية. تسجيل صورة تمت إعادة معالجتها بمستوى كسب منخفض
مع إيقاف ميزة "الحد من التشويش"، واستخدام التباين في هذه الصورة كأساس.
واجهات برمجة التطبيقات التي تم اختبارها:
النجاح: FAST >= OFF وHQ >= FAST وHQ >> OFF
الشكل 79. مثال على رسم بياني نموذجي لنسبة الإشارة إلى الضوضاء مقابل وضع الحدّ من الضوضاء
test_tonemap_sequence
تختبر هذه السمة سلسلة من اللقطات باستخدام منحنيات مختلفة لتعيين الدرجات اللونية. التقاط 3 لقطات يدوية باستخدام عملية تعيين درجة اللون الخطية التقاط 3 صور يدوية باستخدام "تخطيط الدرجات اللونية" التلقائي تحسب هذه الدالة الفرق بين كل زوج من اللقطات المتتالية.
واجهات برمجة التطبيقات التي تم اختبارها:
النجاح: يتضمّن الفيديو ثلاث لقطات متطابقة متبوعة بمجموعة مختلفة من ثلاث لقطات متطابقة.
الشكل 80. مثال على test_tonemap_sequence i=0.
الشكل 81. مثال على test_tonemap_sequence i=1
الشكل 82. مثال على test_tonemap_sequence i=2.
الشكل 83. مثال على test_tonemap_sequence i=3
الشكل 84. مثال على test_tonemap_sequence i=4.
الشكل 85. مثال على test_tonemap_sequence i=5.
test_yuv_jpeg_all
الاختبارات التي تعمل على جميع الأحجام والتنسيقات المُبلغ عنها لالتقاط الصور يستخدم طلبًا يدويًا مع تعيين درجة اللون بشكل خطي لكي تبدو بيانات YUV وJPEG متطابقة عند تحويلها بواسطة الوحدة image_processing_utils
. لا يتم حفظ الصور تلقائيًا، ولكن يمكن حفظها من خلال تفعيل debug_mode
.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
اجتياز: يجب أن يكون الحد الأقصى لمتوسط الجذر التربيعي (RMS) (قيمة الإشارة) لجميع مراكز الصور في الصور المحوَّلة إلى RGB أقل من 3% من صورة YUV ذات أعلى دقة.
الشكل 86. مثال test_yuv_jpeg_all
test_yuv_plus_dng
اختبارات تعمل على الأحجام والتنسيقات المُبلغ عنها لالتقاط الصور
واجهات برمجة التطبيقات التي تم اختبارها:
ناجح: يكتمل الاختبار ويعرض الصور المطلوبة.
الشكل 87: مثال على test_yuv_plus_dng
scene1_3
scene 1_3
هي نسخة طبق الأصل من scene 1_1
، وتتضمّن بنية مشهد فرعي لتخفيف المدة الطويلة لـ scene 1
.
test_capture_result
اختبارات للتأكّد من أنّ البيانات الصالحة يتم عرضها في عناصر CaptureResult
يتضمّن الاختبار عملية التقاط تلقائي، وعملية التقاط يدوي، وعملية التقاط تلقائي ثانية.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
اجتياز: تكون البيانات الوصفية صالحة لجميع عمليات الالتقاط، ولا تتسرّب الإعدادات اليدوية إلى عملية الالتقاط التلقائي الثانية. تعرض هذه السمة تصحيح تظليل العدسة للصور الملتقطة.
الشكل 88. test_capture_result_plot_lsc_auto_ch0.
test_dng_noise_model
تتحقّق هذه السمة من صحة مَعلمات نموذج DNG الأوّلي. يعرض الرسم البياني التباين المقاس في رقعة مركزية من بطاقة رمادية في اللقطات الأولية التي تم التقاطها على مدى مجموعة من الحساسيات، ويقارن هذه القيم بالتباين المتوقّع عند كل حساسية من خلال نموذج التشويش DNG في طبقة تجريد الأجهزة (HAL) للكاميرا (استنادًا إلى المَعلمتَين O وS اللتين تم إرجاعهما في عناصر نتيجة الالتقاط). للحصول على مزيد من التفاصيل حول نموذج التشويش في DNG، يمكنك تنزيل المستند التالي حول نموذج التشويش في DNG.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILE
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
اجتياز: معلَمات نموذج DNG الخام صحيحة. تتطابق قيم النموذج اللوني أحمر أخضر أزرق (RGB) المتوقّعة مع قيم النموذج اللوني أحمر أخضر أزرق (RGB) الفعلية التي تم قياسها.
الشكل 89: test_dng_noise_model_plog
test_jpeg
تبدو الاختبارات التي تم فيها تحويل صور YUV وصور JPEG على الجهاز متشابهة. يأخذ الاختبار النسبة% 10 الوسطى من الصورة ويحسب قيمة الأحمر والأخضر والأزرق، ثم يتأكّد من تطابقها.
واجهات برمجة التطبيقات التي تم اختبارها:
اجتياز: يقلّ متوسط الفرق في قيم RGB بين كل صورة عن %3.
الشكل 90: test_jpeg_fmt=jpg.jpg.
الشكل 91: test_jpeg=fmt=yuv.jpg.
test_raw_burst_sensitivity
تلتقط هذه الطريقة مجموعة من الصور الأولية بمستويات سطوع متزايدة وتقيس الضوضاء. التقاط الصور بتنسيق RAW فقط، في سلسلة متتالية
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
اجتياز: كل لقطة أكثر ضوضاءً من اللقطة السابقة، لأنّ مستوى الصوت يزداد.
تعرض هذه السمة تباين خلية شبكة الإحصاءات المركزية.
الشكل 92: test_raw_burst_sensitivity_variance
test_raw_sensitivity
تلتقط هذه الطريقة مجموعة من الصور الأولية بمستويات حساسية متزايدة، وتقيس الضوضاء (التباين) في% 10 من مركز الصورة. اختبارات للتأكّد من أنّ كل لقطة أكثر تشويشًا من اللقطة السابقة
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
اجتياز: يزداد التباين مع كل لقطة.
الشكل 93: test_raw_sensitivity_variance
test_yuv_plus_jpeg
اختبار التقاط لقطة واحدة كناتج بتنسيق YUV وJPEG يستخدم طلبًا يدويًا مع تعيين درجة اللون بشكل خطي لكي تبدو بيانات YUV وJPEG متطابقة عند تحويلها بواسطة الوحدة image_processing_utils
.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
اجتياز: تتشابه صور YUV وJPEG، ويقل الفرق في قيمة RMS (قيمة الإشارة) عن% 1.
الشكل 94: test_yuv_plus_jpeg بتنسيق JPEG
الشكل 95: test_yuv_plus_jpeg بتنسيق YUV
test_yuv_plus_raw
يختبر هذا الإجراء إمكانية تسجيل لقطة واحدة بتنسيقَي البيانات الأولية (10 بت و12 بت) وYUV إذا كان ذلك متاحًا. يستخدم طلبًا يدويًا مع خريطة درجات اللون الخطية، لذا من المتوقّع أن تكون بيانات RAW وYUV متطابقة. تقارن هذه السمة قيم النموذج اللوني أحمر أخضر أزرق (RGB) بنسبة% 10 في وسط الصور المحوّلة. السجلاتandroid.shading.mode
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.hardware.graphics.ImageFormat#RAW10
android.hardware.graphics.ImageFormat#RAW12
اجتياز: تتشابه صور YUV والصور الأولية، ويقل الفرق بينهما عن 3.5% من قيمة الجذر التربيعي لمتوسط الإشارة.
الشكل 96. test_yuv_plus_raw_shading=1_raw.jpg.
الشكل 97. test_yuv_plus_raw_shading=1_yuv.jpg.
test_sensitivity_priority
إجراء اختبارات CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
بإعدادات ISO مختلفة للتأكّد من وجود علاقة بين ارتفاع قيمة ISO
وزيادة مستويات التشويش
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_MODE
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
اجتياز: تؤدي حساسية ISO الأعلى إلى زيادة مستويات التشويش.
معايير تخطّي الاختبار
يتم تخطّي اختبار test_sensitivity_priority.py
في حال استيفاء أي من المعايير التالية:
- أن يكون مستوى واجهة برمجة التطبيقات الأول (
first_api_level
) في الجهاز هو 35 أو أقل. - لا يعلن الجهاز عن توفّره
CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
فيCONTROL_AE_AVAILABLE_PRIORITY_MODES
.
test_exposure_time_priority
تُجرى الاختبارات CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
على مدى أوقات تعرّض مختلفة، ويتم التحقّق من ثبات السطوع في النطاق
الذي يمكن أن تعوّضه حساسية ISO.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_MODE
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
اجتياز: يكون السطوع ثابتًا (ضمن هامش الخطأ المسموح به) على مستوى أوقات التعريض للضوء إذا كانت حساسية ISO ضمن نطاق التعويض.
معايير تخطّي الاختبار
يتم تخطّي اختبار test_exposure_time_priority
في حال استيفاء أي من المعايير التالية:
- أن يكون مستوى واجهة برمجة التطبيقات الأول (
first_api_level
) في الجهاز هو 35 أو أقل. - لا يعلن الجهاز عن توفّره
CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
فيCONTROL_AE_AVAILABLE_PRIORITY_MODES
.
scene2_a
scene2_a
لديها ثلاثة وجوه بخلفية رمادية وملابس محايدة. تم اختيار الوجوه لتشمل مجموعة كبيرة من درجات لون البشرة. يجب أن يكون الرسم البياني بالاتجاه الصحيح لتعمل ميزة "التعرّف على الوجوه" على النحو الأمثل.
الشكل 98. مثال على scene2_a.
test_autoframing
تختبر هذه السمة سلوك التوسيط التلقائي لجهاز الكاميرا. يتم إجراء تكبير كبير لا تظهر فيه أي من الوجوه في المشهد، ويتم تفعيل وضع "التعديل التلقائي لإطار الفيديو" من خلال ضبط AUTOFRAMING
في CaptureRequest
على True
، ويتم التحقّق مما إذا كان يمكن رصد جميع الوجوه في المشهد الأصلي عند اكتمال الحالة (أي عندما يتم ضبط AUTOFRAMING_STATE
في CaptureResult
على AUTOFRAMING_STATE_CONVERGED
).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
اجتياز: تم التعرّف على الوجوه الثلاثة.
test_display_p3
اختبارات
عرض P3
التقاط الصور بتنسيق JPEG باستخدام واجهة برمجة التطبيقات ColorSpaceProfiles
. اختبارات للتأكّد من أنّ ملف JPEG الذي تم التقاطه يتضمّن ملف ICC شخصي مناسبًا في العنوان، وأنّ الصورة تحتوي على ألوان خارج نطاق sRGB
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.params.ColorSpaceProfiles
android.hardware.camera2.params.SessionConfiguration#setColorSpace
اجتياز: يحتوي ملف JPEG على ملف تعريف ICC بتنسيق Display P3 وألوان خارج نطاق sRGB.
test_effects
تلتقط هذه السمة إطارًا لتأثيرات الكاميرا المتوافقة وتتحقّق مما إذا تم إنشاؤها بشكل صحيح. يتحقّق الاختبار من التأثيرَين OFF
وMONO
فقط، ولكنّه يحفظ الصور لجميع التأثيرات المتوافقة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
اجتياز: يتم التقاط صورة المشهد مع المؤثرات OFF
وصورة أحادية اللون
مع ضبط المؤثرات على MONO
.
الشكل 99. test_effects_MONO.
test_exposure_keys_consistent
يقارن هذا الاختبار متوسط سطوع اللقطة التي تم تفعيل ميزة "التعرّض التلقائي" فيها باللقطة التي تم إيقاف ميزة "التعرّض التلقائي" فيها وتم تطبيق مَعلمات التعرّض (الحساسية ووقت التعرّض ومدة اللقطة وتعزيز الحساسية بعد المعالجة) يدويًا والتي تم تلقّيها في CaptureResult
للقطة التي تم تفعيل ميزة "التعرّض التلقائي" فيها.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureResult#CONTROL_POST_RAW_SENSITIVITY_BOOST
اجتياز: يكون الفرق النسبي في شدة الإضاءة بين اللقطتَين أقل من 4%.
test_format_combos
تختبر هذه السمة مجموعات مختلفة من تنسيقات الإخراج.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
android.hardware.camera2.CameraCaptureSession#captureBurst()
تم بنجاح: تم تسجيل جميع المجموعات بنجاح.
test_num_faces
يختبر هذا الإجراء ميزة التعرّف على الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
اجتياز: يتم العثور على ثلاثة وجوه.
الشكل 100. مثال على وضع التعرّف على الوجوه test_num_faces 1.
test_reprocess_uv_swap
الاختبارات التي لا تعكس فيها إعادة معالجة YUV مستوى U ومستوى V ويتم رصد ذلك من خلال حساب مجموع الفروق المطلقة (SAD) بين الصورة التي تمت إعادة معالجتها والصورة التي لم تتم إعادة معالجتها. إذا أدى تبديل مستوىَي U وV الناتجَين عن عملية إعادة المعالجة إلى زيادة في مقياس SAD، يُفترض أنّ الناتج يتضمّن مستوىَي U وV الصحيحَين.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraDevice#createCaptureSession
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
اجتياز: لم يتم تبديل المستويين U وV.
الشكل 101: مثال على test_reprocess_uv_swap
scene2_b
test_preview_num_faces
اختبار ميزة رصد الوجوه في المعاينة مع زيادة تنوّع ألوان البشرة في مشاهد الوجوه
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
اجتياز: يعثر على ثلاثة وجوه تتضمّن مَعالم الوجه في مربّعات إحاطة الوجه.
الشكل 102. مثال على وضع التعرّف على الوجوه test_num_faces 1.
test_yuv_jpeg_capture_sameness
التقاط صورتَين باستخدام أكبر تنسيقات YUV وJPEG الشائعة وبنسبة العرض إلى الارتفاع نفسها التي تتّبعها أكبر تنسيقات JPEG التي لا تتجاوز دقتها 1920x1440
يضبط قيمة jpeg.quality
على 100 ويلتقط طلبًا بسطح مزدوج. يتم تحويل كلتا الصورتَين إلى مصفوفتَي RGB، ويتم حساب الفرق بينهما باستخدام الجذر التربيعي لمتوسط المربعات (RMS) الثلاثي الأبعاد.
بالإضافة إلى ذلك، يتحقّق هذا الاختبار من أنّ نواتج YUV لجميع حالات استخدام البث المتوافقة تتشابه بشكل معقول مع نواتج YUV في حالة استخدام STILL_CAPTURE
.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
android.graphics.ImageFormat#JPEG
اجتياز: تختلف صور YUV وJPEG لحالة الاستخدام STILL_CAPTURE
بنسبة أقل من% 3 في متوسط الجذر التربيعي (RMS) للإشارة، وتختلف صور YUV لجميع حالات الاستخدام المتوافقة بنسبة أقل من% 10 في متوسط الجذر التربيعي عن صور YUV لحالة الاستخدام STILL_CAPTURE
.
scene2_c
test_num_faces
تختبر هذه المجموعة ميزة "التعرّف على الوجوه" مع زيادة تنوّع لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
اجتياز: يتم العثور على ثلاثة وجوه.
الشكل 103: مثال على وضع التعرّف على الوجوه test_num_faces
test_jpeg_capture_perf_class
يختبر هذا المعيار وقت استجابة التقاط صور JPEG لفئة الأداء S كما هو محدّد في الفقرة 2.2.7.2 الكاميرا في مستند تعريف التوافق.
اجتياز: يجب أن يكون وقت استجابة التقاط صور JPEG باستخدام Camera2 أقل من 1,000 مللي ثانية بدقة 1080p كما تم قياسه باستخدام اختبار PerformanceTest الخاص بالكاميرا في مجموعة اختبار توافق البرامج (CTS) ضمن ظروف الإضاءة في نظام اختبار استشعار الصور (ITS) (3000 كلفن) لكلتا الكاميرتَين الأساسيتَين.
test_camera_launch_perf_class
يختبر هذا الاختبار وقت استجابة تشغيل الكاميرا لفئة الأداء S على النحو المحدّد في القسم 2.2.7.2 الكاميرا في مستند تعريف التوافق.
اجتياز: يجب أن يكون وقت استجابة بدء تشغيل camera2 (فتح الكاميرا لعرض أول إطار معاينة) أقل من 600 ملي ثانية، وذلك وفقًا لما تم قياسه باستخدام اختبار PerformanceTest الخاص بالكاميرا في مجموعة اختبار توافق البرامج (CTS) ضمن ظروف الإضاءة في "نظام اختبار الكاميرا" (ITS) (3000 كلفن) لكلتا الكاميرتَين الأساسيتَين.
test_default_camera_hdr
اختبارات التأكّد من أنّ الكاميرا التلقائية تلتقط الصور بدقة Ultra HDR للأجهزة التي تنتمي إلى فئة الأداء 15 على النحو المحدّد في الفقرة 2.2.7.2 الكاميرا من مستند تعريف التوافق
اجتياز: يجب أن يكون التقاط حزمة الكاميرا التلقائية بدقة Ultra HDR على جهاز من فئة الأداء 15.
scene2_d
test_preview_num_faces
اختبار ميزة رصد الوجوه في المعاينة مع زيادة تنوّع ألوان البشرة في مشاهد الوجوه
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
اجتياز: يعثر على ثلاثة وجوه تتضمّن مَعالم الوجه في مربّعات إحاطة الوجه.
scene2_e
test_continuous_picture
يتم التقاط 50 لقطة بدقة VGA باستخدام الإعداد الأول لطلب الالتقاط
android.control.afMode = 4 (CONTINUOUS_PICTURE).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureResult#CONTROL_AF_STATE
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
اجتياز: يستقر نظام 3A بحلول نهاية عملية التقاط 50 إطارًا.
test_num_faces
تختبر هذه المجموعة ميزة "التعرّف على الوجوه" مع زيادة تنوّع لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
مطابقة: يتم العثور على 3 وجوه.
scene2_f
scene2_f
لها ثلاثة وجوه بخلفية بيضاء وملابس بيضاء. تتضمّن الوجوه مجموعة كبيرة من درجات لون البشرة وتباينًا عاليًا مع الخلفية.
الشكل 104. مثال على scene2_f.
test_preview_num_faces
تختبر هذه المجموعة ميزة "التعرّف على الوجوه" مع زيادة تنوّع لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
اجتياز: يعثر على ثلاثة وجوه تتضمّن مَعالم الوجه في مربّعات إحاطة الوجه.
الشكل 105: مثال على test_num_faces_fd_mode_1
scene2_g
scene2_g
يضمّ ثلاثة وجوه لملفات شخصية بخلفية بيضاء وملابس بيضاء.
تتضمّن الوجوه مجموعة كبيرة من درجات لون البشرة وتباينًا عاليًا مع الخلفية.
الشكل 106. مثال على scene2_g.
test_preview_num_faces
تختبر هذه المجموعة ميزة "التعرّف على الوجوه" مع زيادة تنوّع لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
اجتياز: يعثر على ثلاثة وجوه تتضمّن مَعالم الوجه في مربّعات إحاطة الوجه.
الشكل 107: مثال على test_preview_num_faces
scene3
تستخدم scene3
مخطط ISO12233، وتستخدم معظم الاختبارات طريقة استخراج المخطط للعثور على المخطط في المشهد. لهذا السبب، لا تحتوي معظم الصور المحفوظة على حدود مثل صور المشاهد 1 أو 2 أو 4، بل تحتوي على الرسم البياني فقط. يجب أن يكون الرسم البياني في الاتجاه الصحيح لكي تعمل أداة البحث عن الرسوم البيانية على النحو الأمثل.
test_edge_enhancement
تختبر هذه السمة ما إذا تم تطبيق المَعلمة android.edge.mode
بشكل صحيح. تلتقط هذه الطريقة صورًا لا تتم معالجتها لكل وضع من أوضاع الحافة، وتعرض حدة الصورة الناتجة والبيانات الوصفية لنتيجة الالتقاط. تعالج هذه الطريقة طلب التقاط صورة مع تحديد وضع الحافة والحساسية ووقت التعرض للضوء ومسافة التركيز وسطح الإخراج.
النجاح: يكون وضع HQ
(2) أكثر وضوحًا من وضع OFF
(0). يكون وضع FAST
(1) أكثر وضوحًا من وضع OFF
. يكون وضع HQ
أكثر حدة أو يساوي وضع FAST
.
واجهات برمجة التطبيقات التي تم اختبارها:
معلمات الكاميرا المتأثرة:
EDGE_MODE
الشكل 108: مثال على test_edge_enhancement edge=0
الشكل 109: مثال على test_edge_enhancement edge=1 (الوضع السريع).
الشكل 110: مثال على test_edge_enhancement edge=2 (وضع الجودة العالية).
test_flip_mirror
تختبر ما إذا كانت الصورة موجّهة بشكل صحيح وفقًا للفقرة 7.5.2 الكاميرا الأمامية في مستند متطلبات التوافق مع الأجهزة (CDD).
يمكن التعرّف على الصور المعكوسة أو المقلوبة أو المدورة من خلال شكل الماسة بالقرب من المنتصف.
اجتياز: لم يتم قلب الصورة أو عكسها أو تدويرها.
الشكل 111. مثال على تصحيح مشهد test_flip_mirror
test_imu_drift
يختبر هذا المعيار ما إذا كانت وحدة قياس القصور الذاتي (IMU) تقدّم ناتجًا ثابتًا لمدة 30 ثانية بينما يكون الجهاز ثابتًا ويلتقط معاينة عالية الدقة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_GYROSCOPE
android.hardware.Sensor#TYPE_ROTATION_VECTOR
بطاقة:
- يكون معدّل انحراف الجيروسكوب أقل من 0.01 راديان خلال مدة الاختبار.
- يكون تباين قراءة الجيروسكوب أقل من 1E-7 rad2/s2/Hz خلال مدة الاختبار.
- يجب أن يكون الانحراف في متّجه الدوران أقل من 0.01 راديان خلال مدة الاختبار.
- (لم يتم تحديد هذا الشرط بعد) يجب أن يكون الانحراف في الجيروسكوب أقل من درجة واحدة في الثانية.
الشكل 112: مثال على انحراف الجيروسكوب test_imu_drift
الشكل 113: مثال على الانحراف في متجه الدوران test_imu_drift
test_landscape_to_portrait
تختبر هذه الحالة ما إذا كانت وظيفة تجاهل الوضع الأفقي إلى الوضع العمودي تعمل بشكل صحيح مع أجهزة الاستشعار ذات الوضع الأفقي.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
android.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATION
android.hardware.camera2.CameraCharacteristics#getCameraCharacteristics
اجتياز: يعثر الاختبار على رسم بياني بالتوجيه المتوقّع (0 درجة عند إيقاف الإعداد التلقائي من الوضع الأفقي إلى الوضع العمودي، و90 درجة عند تفعيله).
الشكل 114: مثال على test_landscape_to_portrait
test_lens_movement_reporting
تختبر هذه السمة ما إذا كان يتم الإبلاغ عن علامة حركة العدسة بشكل صحيح. تلتقط هذه السمة سلسلة من 24 صورة، حيث تكون أول 12 لقطة على مسافة البؤرة المثالية (كما يحدّدها نظام التركيز التلقائي والتعريض التلقائي وتوازن اللون الأبيض)، وتكون آخر 12 لقطة على مسافة البؤرة الدنيا. في اللقطة 12 تقريبًا، تتحرّك العدسة، ما يؤدي إلى انخفاض حدة الصورة. ويستقر مستوى الحدة في النهاية عندما تنتقل العدسة إلى موضعها النهائي.
يجب ضبط علامة حركة العدسة في جميع اللقطات التي تكون فيها الحدة متوسطة بين الحدة في اللقطات القليلة الأولى التي تكون فيها العدسة ثابتة عند مسافة البؤرة المثالية، واللقطات القليلة الأخيرة التي تكون فيها العدسة ثابتة عند مسافة البؤرة الدنيا. لا يهم الإطار الدقيق الذي تتحرك فيه العدسة، بل المهم هو أن يتم ضبط علامة الحركة عندما تتحرك العدسة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#LENS_STATE
android.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
اجتياز: علامة حركة العدسة هي True
في الإطار مع تغيير الحدة.
آليات الفشل:
- يتم تأكيد
lens_moving: True
(android.hardware.camera2.CaptureResult#LENS_STATE
= 1) فيtest_log.DEBUG
فقط في اللقطات التي لا تتغير فيها الحدة. - تحتوي اللقطات التي تتضمّن
lens_moving: False
(android.hardware.camera2.CaptureResult#LENS_STATE
= 0) فيtest_log.DEBUG
على اختلاف في الحدة مقارنةً باللقطات القليلة الأولى عند مسافة البعد البؤري المثالية أو اللقطات القليلة الأخيرة عند مسافة البعد البؤري الدنيا.
test_reprocess_edge_enhancement
تختبر هذه السمة ما إذا كانت طرق إعادة المعالجة المتوافقة مع تحسين الحواف تعمل بشكلٍ سليم. تعالج هذه الدالة طلب التقاط صورة باستخدام وضع معالجة الحواف المحدد، وتقارن بين الأوضاع المختلفة لالتقاط الصور مع إيقاف أوضاع معالجة الحواف.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
اجتياز: حدة أوضاع الحواف المختلفة صحيحة. تكون الصورة في HQ
(الوضع 2) أكثر وضوحًا من OFF
(الوضع 0)، والتحسين بين الأوضاع المختلفة متشابه.
الشكل 115: مثال على رسم بياني لـ test_reprocess_edge_enhancement.
scene4
يتألف scene4
من دائرة سوداء على خلفية بيضاء داخل مربّع.
يمكن أن تكون الاختبارات في scene4 حساسة للمحاذاة، لذا بدءًا من Android 15، يمكنك استخدام check_alignment.py
في دليل الأدوات لتفعيل عملية التحقّق من محاذاة الجهاز قيد الاختبار والمخطط.
الشكل 116: مثال على scene4
test_30_60fps_preview_fov_match
اختبارات للتأكّد من أنّ فيديوهات المعاينة التي تبلغ سرعتها 30 لقطة في الثانية و60 لقطة في الثانية تتضمّن مجال الرؤية نفسه تسجّل الاختبار فيديوهَين، أحدهما بمعدّل 30 لقطة في الثانية والآخر بمعدّل 60 لقطة في الثانية. يتم اختيار إطار تمثيلي من كل فيديو وتحليله للتأكّد من أنّ التغييرات في مجال الرؤية في الفيديوَين تتوافق مع المواصفات. تختبر هذه السمة ما إذا كانت نسبة العرض إلى الارتفاع للدائرة تظل ثابتة، وما إذا كان مركز الدائرة يظل ثابتًا، وما إذا كان نصف قطر الدائرة يظل ثابتًا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
اجتياز: لا يتم تمديد الصور، ولا يختلف مركز الصور بأكثر من %3، ولا يزيد الحد الأقصى لتغيير نسبة العرض إلى الارتفاع بين الفيديوهات التي تبلغ 30 لقطة في الثانية و60 لقطة في الثانية عن %7.5
آليات الفشل:
- يختلف حجم الدائرة في الفيديو الذي تم تسجيله بمعدّل 30 لقطة في الثانية بشكل كبير عن حجمها في الفيديو الذي تم تسجيله بمعدّل 60 لقطة في الثانية.
- يتم تشويه الدائرة في الصورة الملتقطة بسبب مسار المعالجة.
- يتم اقتصاص الدائرة في الصورة الملتقطة بسبب طلب التقاط بنسبة عرض إلى ارتفاع قصوى يؤدي إلى تقليل ارتفاع الصورة أو عرضها.
- يظهر في منتصف الدائرة في الصورة الملتقطة انعكاس، ولا تبدو الدائرة ممتلئة بالكامل.
test_aspect_ratio_and_crop
تختبر هذه السمة ما إذا كانت الصور مشوّهة أو تم اقتصاصها بشكل غير متوقّع في مسار معالجة الصور. التقاط صور لدائرة بجميع التنسيقات يتحقّق هذا الاختبار من أنّ الدائرة غير مشوّهة، ولا تتحرّك من وسط الصورة، ولا يتغيّر حجمها بشكل غير صحيح مع نسب العرض إلى الارتفاع أو درجات الدقة المختلفة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
اجتياز: لا يتم تمديد الصور، ولا يختلف مركز الصور بأكثر من %3، ويتم الحفاظ على أقصى مجال رؤية ممكن.
آليات الفشل:
- الكاميرا غير محاذية للدائرة المعروضة على الجهاز اللوحي في منتصف المشهد الذي تم التقاطه.
- يتم تشويه الدائرة في الصورة الملتقطة بسبب مسار المعالجة.
- يتم اقتصاص الصورة ذات الدقة المنخفضة مرتين في مسار معالجة الصور، ما يؤدي إلى إنشاء مجال رؤية مختلف بين الصور ذات الدقة العالية والمنخفضة.
- يتم اقتصاص الدائرة في الصورة الملتقطة بسبب طلب التقاط بنسبة عرض إلى ارتفاع قصوى يؤدي إلى تقليل ارتفاع الصورة أو عرضها.
- يظهر في منتصف الدائرة في الصورة الملتقطة انعكاس، ولا تبدو الدائرة ممتلئة بالكامل.
test_multi_camera_alignment
تختبر هذه السمة مَعلمات معايرة الكاميرا المرتبطة بوضع الكاميرا في أنظمة الكاميرات المتعددة. باستخدام الكاميرات الفرعية المادية المتعددة، يتم التقاط صورة باستخدام إحدى الكاميرات المادية. تعرض هذه السمة مركز الدائرة. تعرض هذه السمة مركز الدائرة على الإحداثيات العالمية لكل كاميرا. تقارن هذه السمة الفرق بين مراكز الدوائر الخاصة بالكاميرات في إحداثيات العالم. تعيد هذه السمة عرض إحداثيات العالم في إحداثيات البكسل وتقارنها بالإحداثيات الأصلية كإجراء للتحقّق من صحة البيانات. تقارن هذه السمة أحجام الدوائر للتحقّق مما إذا كانت الأبعاد البؤرية للكاميرات مختلفة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraCharacteristics#LENS_DISTORTION
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATION
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
اجتياز: تكون مراكز الدوائر وأحجامها كما هو متوقّع في الصور المسقطة مقارنةً بالصور الملتقطة باستخدام بيانات معايرة الكاميرا والأبعاد البؤرية.
آليات الفشل:
LENS_INTRINSIC_CALIBRATION
وLENS_POSE_TRANSLATION
وLENS_POSE_ROTATION
هي قيم تصميم وليست بيانات معايرة فعلية.- نظام الكاميرا غير مناسب لإعداد الاختبار، على سبيل المثال، اختبار نظام كاميرا واسعة جدًا وواسعة باستخدام جهاز اختبار RFoV. لمزيد من المعلومات، يُرجى الاطّلاع على السؤال الأول من الأسئلة الشائعة حول Camera ITS-in-a-box.
test_preview_aspect_ratio_and_crop
على غرار اختبار test_aspect_ratio_and_crop
للصور الثابتة، يتحقّق هذا الاختبار من تنسيقات المعاينة المتوافقة للتأكّد من أنّ إطارات المعاينة لم يتم تمديدها أو اقتصاصها بشكل غير مناسب. تتحقّق هذه الحالة من عدم تغيُّر نسبة العرض إلى الارتفاع للدائرة، ومن أنّ الصور التي تم اقتصاصها تحافظ على الدائرة في منتصف الإطار، ومن عدم تغيُّر حجم الدائرة بالنسبة إلى تنسيق ثابت أو مع درجات دقة مختلفة (التحقّق من مجال الرؤية).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
اجتياز: لا يتم تمديد الصور، ولا يختلف مركز الصور بأكثر من %3، ويتم الحفاظ على أقصى مجال رؤية ممكن.
test_preview_stabilization_fov
للتحقّق من أحجام المعاينة المتوافقة للمساعدة في ضمان اقتصاص مجال الرؤية بشكل مناسب. تسجّل التجربة فيديوهَين، أحدهما مع تفعيل ميزة تثبيت المعاينة
ON
، والآخر مع إيقافها OFF
. يتم اختيار إطار تمثيلي من كل فيديو، ويتم تحليله للتحقّق من أنّ التغييرات في مجال الرؤية في الفيديوَين تندرج ضمن المواصفات.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
اجتياز: تظل نسبة العرض إلى الارتفاع للدائرة ثابتة تقريبًا، ويظل الموقع المركزي للدائرة ثابتًا، ولا يتغيّر حجم الدائرة بأكثر من %20.
test_video_aspect_ratio_and_crop
تعرض هذه الصورة فيديوهات لدائرة داخل مربّع على جميع تنسيقات الفيديو. يستخرج اللقطات الرئيسية، ويتأكّد من عدم تغيُّر نسبة العرض إلى الارتفاع للدائرة، ويحافظ على بقاء الدائرة في المنتصف في الصور التي تم اقتصاصها، كما يتأكّد من عدم تغيُّر حجم الدائرة في التنسيق الثابت أو مع اختلاف الدقة (التحقّق من مجال الرؤية).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
ناجح: لا يتم تمديد إطارات الفيديو، ولا يختلف مركز الإطارات بأكثر من %3، ويتم الحفاظ على أقصى مجال رؤية ممكن.
scene5
يتطلّب scene5
مشهدًا رماديًا مضاءً بشكل موحّد. ويتم ذلك باستخدام ناشر ضوء موضوع على عدسة الكاميرا. ننصحك باستخدام المشتّت التالي:
www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168
.
لتحضير المشهد، ضَع ناشرًا أمام الكاميرا ووجِّه الكاميرا إلى مصدر إضاءة بقوة 2000 لوكس تقريبًا. يجب أن تكون الصور الملتقطة لـ
scene5
مضاءة بشكل منتشر بدون ظهور أي ميزات. في ما يلي
صورة نموذجية:
الشكل 117: مثال على لقطة scene5
test_lens_shading_and_color_uniformity
اختبارات للتأكّد من تطبيق تصحيح تظليل العدسة بشكل مناسب، ومن توزيع لون مشهد موحّد أحادي اللون بالتساوي يُجري هذا الاختبار على إطار YUV مع ميزة 3A التلقائية. يتم تقييم تظليل العدسة استنادًا إلى القناة y. يقيس هذا المقياس متوسط قيمة y لكلّ عيّنة محدّدة، ويحدّد ما إذا كانت العيّنة ناجحة أو غير ناجحة من خلال مقارنتها بقيمة y في المركز. يتم تقييم اختبار اتساق الألوان في مساحة الأحمر والأخضر والأزرق والأخضر.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
اجتياز: ضمن نصف قطر الصورة المحدّد، يجب أن يكون تباين قيمة الأحمر والأخضر والأزرق والأخضر أقل من% 20 لاجتياز الاختبار.
scene6
scene6
هي شبكة من علامات ArUco يمكن التعرّف عليها بشكل فريد.
قد تكون الاختبارات في scene6
حساسة للمحاذاة، لذا بدءًا من الإصدار 15، يمكنك استخدام check_alignment.py
في دليل الأدوات لتفعيل عملية التحقّق من محاذاة الجهاز قيد الاختبار والمخطط.
الشكل 118. مثال على scene6.
test_in_sensor_zoom
تختبر هذه الحالة سلوك ميزة "التكبير داخل المستشعر" في الكاميرا، والتي تنتج صورًا أولية تم اقتصاصها.
عند ضبط حالة استخدام البث على
CROPPED_RAW
،
يلتقط الاختبار صورتَين ضمن نطاق التكبير/التصغير، وهما صورة أولية بنطاق كامل لمجال الرؤية وصورة أولية تم اقتصاصها. يحوّل الاختبار الصور إلى مصفوفات RGB، ويقلّل حجم الصورة الخام الكاملة الحجم التي تم اقتصاصها إلى الحجم الذي تعرضه SCALER_RAW_CROP_REGION
، ويحسب الفرق بين الصورتين في الجذر التربيعي لمتوسط المربعات الثلاثية الأبعاد.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
اجتياز: يكون الفرق في متوسط الجذر التربيعي (RMS) ثلاثي الأبعاد بين الصورة الأولية التي تم اقتصاصها وتصغير حجمها والصورة الأولية الكاملة لمجال الرؤية أقل من الحدّ الذي تم ضبطه في الاختبار.
test_zoom
تختبر هذه الحالة سلوك تكبير/تصغير الكاميرا من العدسة الواسعة جدًا إلى العدسة الواسعة. يتم التقاط صور ضمن نطاق التكبير أو التصغير والتحقّق مما إذا كانت علامات ArUco تصبح أكبر عند التكبير بالكاميرا. يتحقّق الاختبار أيضًا مما إذا كان موضع العلامة المركزية يتغيّر بشكل متوقّع خلال كل عملية تسجيل. يمكن أن تتغيّر المسافة من مركز العلامة المركزية إلى مركز الصورة بمعدّل ثابت بالنسبة إلى نسبة التكبير/التصغير إلى أن يتم التبديل إلى كاميرا أخرى، أو يمكن أن تتغيّر بشكل متزايد باتجاه موقع العلامة نفسها بعد التبديل إلى كاميرا أخرى. يجب تثبيت تطبيق Jetpack Camera (JCA) على الجهاز قبل إجراء الاختبار.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
اجتياز: يكون الحجم النسبي لعلامة ArUco التي تم التقاطها دقيقًا مقارنةً بنسبة التكبير/التصغير المطلوبة للتأكّد من أنّ الكاميرا تكبّر/تصغّر بشكل صحيح، ويتغيّر بُعد العلامة عن مركز الصورة وفقًا للمعايير المذكورة في وصف الاختبار.
الشكل 119: test_zoom للعثور على محيط علامة ArUco الأقرب إلى المركز
test_low_latency_zoom
يختبر هذا الإعداد سلوك التكبير/التصغير بزمن استجابة منخفض للكاميرا. تلتقط هذه الحالة صورًا ضمن نطاق التكبير/التصغير باستخدام android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM)
، وتتحقّق مما إذا كانت العلامات في الصور الناتجة تتطابق مع نسب التكبير/التصغير في البيانات الوصفية الخاصة باللقطة. يتم استخدام جلسة التقاط الكاميرا نفسها لدمج 3A والتقاط الصور.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDES
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
اجتياز: يكون الحجم النسبي للعلامة التي تم التقاطها دقيقًا مقارنةً بالبيانات الوصفية لنتيجة نسبة التكبير/التصغير.
test_preview_video_zoom_match
أظهرت الاختبارات أنّه أثناء التسجيل والتكبير، يتم عرض معاينة الفيديو وإخراج الفيديو وتسجيل الإخراج نفسه. تحسب هذه السمة حجم العلامة الأقرب إلى المركز بنسب تكبير مختلفة، وتتحقّق مما إذا كان حجم العلامة يزداد مع زيادة نسبة التكبير.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
اجتياز: يكون الحجم النسبي للعلامة التي تم التقاطها دقيقًا مقارنةً بنسبة التكبير/التصغير المطلوبة في الفيديو والمعاينة.
الشكل 120. HD_1280x720_key_frame.png (قبل التكبير)
الشكل 121: preview_1280x720_key_frame.png (قبل التكبير)
الشكل 122. HD_1280x720_key_frame.png (بعد التكبير)
الشكل 123. preview_1280x720_key_frame.png (بعد التكبير).
test_preview_zoom
الاختبارات التي تتطابق فيها نسبة التكبير/التصغير لكل إطار معاينة مع البيانات الوصفية المقابلة التي تم التقاطها من العدسة الواسعة جدًا إلى العدسة الواسعة يأخذ الاختبار لقطات معاينة على مدى نطاق التكبير/التصغير، ويبحث عن علامة ArUco الأقرب إلى المنتصف. يتحقّق الاختبار بعد ذلك مما إذا كان موضع العلامة المركزية يتغيّر بشكل متوقّع خلال كل عملية التقاط. يمكن أن تتغيّر المسافة من مركز العلامة المركزية إلى مركز الصورة بمعدّل ثابت بالنسبة إلى نسبة التكبير/التصغير إلى أن يتم التبديل إلى كاميرا أخرى، أو يمكن أن تتغيّر بشكل متزايد باتجاه موقع العلامة نفسها بعد التبديل إلى كاميرا أخرى.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
اجتياز: يكون الحجم النسبي لعلامة ArUco المحدّدة دقيقًا بالنسبة إلى نسبة التكبير/التصغير التي تم الإبلاغ عنها لنتيجة الالتقاط المقابلة في جميع إطارات المعاينة. تكون المسافة النسبية بين العلامة المحدّدة ومركز الصورة دقيقة بالنسبة إلى نسبة التكبير/التصغير المُبلغ عنها لنتيجة الالتقاط المقابلة لجميع لقطات المعاينة.
الشكل 124: صور test_preview_zoom تعرض العلامة المحدّدة الأقرب إلى المنتصف
test_session_characteristics_zoom
تختبر هذه السمة نطاق نسبة التكبير/التصغير لجميع إعدادات الجلسات المتوافقة والمدرَجة في
CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
.
بالنسبة إلى كل من هذه الإعدادات، إذا كانت قيمة
CameraDeviceSetup#isSessionConfigurationSupported
هي true
، يتحقّق الاختبار من إمكانية الوصول إلى نطاق نسبة التكبير/التصغير الذي تم عرضه في
CameraDeviceSetup#getSessionCharacteristics
.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#getSessionCharacteristics
اجتياز: يمكن الوصول إلى الحدّين الأدنى والأقصى لنسب التكبير/التصغير لكل SessionConfiguration
مدرَج في CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
.
scene7
scene7
هو إطار مستطيل مقسّم إلى أربعة أرباع متساوية، كل ربع مملوء بلون مختلف. في منتصف المستطيل، يظهر رسم بياني للحواف المائلة
يُستخدم للتحقّق من الحدّة. تتم محاذاة أربعة علامات ArUco مع الزوايا الخارجية الأربع للمستطيل للمساعدة في الحصول على إحداثيات دقيقة لإطار المستطيل الرئيسي بنسب تكبير/تصغير مختلفة.
الشكل 125. scene7.
test_multi_camera_switch
يتحقّق هذا الاختبار من أنّ التبديل بين العدسة الواسعة جدًا (UW) والعدسة الواسعة (W) أثناء تسجيل المعاينة بنسب تكبير/تصغير مختلفة يؤدي إلى الحصول على قيم RGB متشابهة.
يستخدم الاختبار نسب تكبير/تصغير مختلفة ضمن النطاق المحدّد مسبقًا لتسجيل معاينة ديناميكية وتحديد النقطة التي تتغير عندها الكاميرا الفعلية. تشير هذه النقطة إلى الانتقال من عدسة الزاوية الواسعة جدًا إلى عدسة الزاوية الواسعة.
يتم تحليل اللقطات التي تم التقاطها عند نقطة التقاطع وقبلها من أجل التعرّض التلقائي (AE) وتوازن اللون الأبيض التلقائي (AWB) والتركيز التلقائي (AF).
يتحقّق فحص AE من أنّ التغيير في شدة الإضاءة ضمن النطاق المتوقّع لكل من صور العدسة فائقة الاتساع والعدسة العادية. يتحقّق فحص توازن اللون الأبيض التلقائي من أنّ نسب الأحمر إلى الأخضر والأزرق إلى الأخضر تقع ضمن قيم الحدّ الأدنى لكل من صور العدسة ذات الزاوية الواسعة جدًا والعدسة ذات الزاوية الواسعة. يقيّم فحص التركيز التلقائي قيمة تقدير الحدة استنادًا إلى متوسط مقدار التدرج بين صور العدسة فائقة الاتساع والعدسة العادية.
أثناء تنفيذ هذا الاختبار، إذا تداخل تأثير التموّج مع النتائج، استخدِم جهازًا لوحيًا بدقة أعلى من قائمة الأجهزة اللوحية التي وافقت عليها Camera ITS.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.media.CamcorderProfile
android.media.MediaRecorder
اجتياز: لاجتياز الاختبار، يجب اجتياز عمليات التحقّق من AE وAWB. تُستخدَم نتائج عملية التحقّق من AF لأغراض التسجيل فقط. في ما يلي معايير كل عملية تحقّق:
- فحص التعرّض التلقائي: يجب أن يكون التغيير في شدة الإضاءة (قيمة Y) بين صور العدسة ذات الزاوية الواسعة جدًا والعدسة ذات الزاوية الواسعة أقل من% 4 لجميع رقع الألوان إذا كان الجهاز يتيح كلاً من
ae_regions
وawb_regions
. إذا كانae_regions
هو السمة الوحيدة المتوافقة، يجب أن تستوفي قيم رقعة اللون الرمادي المعايير. - فحص توازن اللون الأبيض: يجب أن يكون الفرق بين قيمتَي الأحمر والأخضر والأزرق والأخضر لصور عدستَي UW وW أقل من% 3 بالنسبة إلى رقعة اللون الرمادي، وأقل من% 10 بالنسبة إلى رقع الألوان الأخرى إذا كان الجهاز يتيح استخدام كل من
ae_regions
وawb_regions
. - فحص التركيز التلقائي: يجب أن تكون حدة الصورة التي تم التقاطها باستخدام العدسة العادية أعلى من حدة الصورة التي تم التقاطها باستخدام العدسة الواسعة جدًا.
الشكل 126. صورة لقطعة قماش رمادية تم التقاطها باستخدام عدسة UW
الشكل 127. صورة رقعة رمادية تم التقاطها باستخدام عدسة W
scene8
scene8
هو إطار مستطيل مقسّم إلى أربعة أقسام متساوية، يحتوي كل منها على صورة شخصية تم التقاطها بدرجة سطوع مختلفة أو تم تراكبها بظل لون مختلف (ظل أزرق، درجة سطوع متزايدة، درجة سطوع منخفضة، ظل أصفر).
تتم محاذاة أربعة علامات ArUco مع الزوايا الخارجية الأربع للمستطيل
للحصول على إحداثيات دقيقة لإطار المستطيل الرئيسي.
الشكل 128. مثال على scene8.
test_ae_awb_regions
الاختبارات التي تختلف فيها قيم RGB وluma عند معاينة التسجيل في مناطق مختلفة من AE وAWB
يسجِّل الاختبار معاينة لمدة 8 ثوانٍ، ويجري قياسات التعريض التلقائي وتوازن اللون الأبيض على كل ربع من الشاشة لمدة ثانيتَين. يستخرج الاختبار بعد ذلك إطارًا من تسجيل المعاينة لكل منطقة، ويستخدم الإطارات المستخرَجة لإجراء عمليات التحقّق التالية من التعرّض التلقائي للضوء (AE) وموازنة اللون الأبيض (AWB):
- فحص التعرّض التلقائي: يتحقّق من أنّ اللقطة التي تقيس المنطقة ذات التعرّض المنخفض تحتوي على قيمة إضاءة أعلى بنسبة تزيد عن% 1 مقارنةً باللقطة التي تقيس المنطقة ذات التعرّض المتزايد. يؤكّد ذلك أنّه يتم تفتيح الصور عند قياس مستوى الإضاءة في منطقة داكنة.
- فحص توازن اللون الأبيض: يتحقّق هذا الفحص من أنّ نسبة اللون الأحمر إلى اللون الأزرق (من متوسط قيم RGB للصورة) في الإطار الذي يحتوي على منطقة قياس الضوء الزرقاء تزيد بنسبة %2 عن الإطار الذي يحتوي على منطقة قياس الضوء الصفراء. يتحقّق ذلك من أنّ الصور تتضمّن قيمة متوازنة للنموذج اللوني أحمر أخضر أزرق (RGB) عند قياس منطقة صفراء (دافئة) أو زرقاء (باردة).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AE
android.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AWB
اجتياز: اجتياز عمليتَي التحقّق من AE وAWB.
الشكل 129. قياس الإضاءة في إطار منطقة داكنة مع زيادة مستوى التعرّض للضوء
الشكل 130. منطقة قياس الإطار الأفتح مع تقليل درجة التعرّض للضوء
آليات الفشل:
من الضروري رصد جميع علامات ArUco الأربع بدقة لإجراء هذا الاختبار. إذا تعذّر إجراء عملية الرصد الأولية، يحاول النظام إجراء عملية رصد ثانية باستخدام نسخة بالأبيض والأسود من الصورة. تمثّل صورة التدرّج الرمادي التالية خطوة المعالجة الثانوية:
الشكل 131. عدم محاذاة علامات ArUco
test_color_correction_mode_cct
اختبارات COLOR_CORRECTION_MODE
على درجات حرارة ألوان ودرجات مختلفة، والتحقّق من التغييرات في نسب الأحمر والأخضر والأزرق
مقارنةً بمشهد الالتقاط، scene8
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TEMPERATURE
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TEMPERATURE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TINT
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TINT
android.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE
android.hardware.camera2.CameraMetadata#COLOR_CORRECTION_MODE_CCT
android.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
اجتياز: تُظهر نسب الأحمر والأخضر والأزرق الزيادات أو الانخفاضات المتوقّعة مقارنةً بدرجات حرارة الألوان ودرجات الألوان المحدّدة.
معايير تخطّي الاختبار
يتم تخطّي اختبار test_color_correction_mode_cct
في حال استيفاء أي من المعايير التالية:
- أن يكون مستوى واجهة برمجة التطبيقات الأول (
first_api_level
) في الجهاز هو 35 أو أقل. - لا يعلن الجهاز عن توفّره
COLOR_CORRECTION_MODE_CCT
فيCOLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
.
scene9
تتألف صورة scene9
من آلاف الدوائر ذات الأحجام والألوان العشوائية لإنشاء مشهد ذي قابلية تكرار منخفضة جدًا بهدف اختبار خوارزميات ضغط JPEG.
الشكل 132. مثال على scene9.
test_jpeg_high_entropy
اختبارات لضغط JPEG في الكاميرا على scene9
مع إنتروبيا عالية وضبط عامل جودة JPEG على %100 يتم زيادة عامل التكبير للتأكّد من أنّ المشهد المعروض على الجهاز اللوحي يملأ مجال رؤية الكاميرا.
واجهات برمجة التطبيقات التي تم اختبارها:
ناجح: تم ضغط ملف JPEG وكتابته وقراءته من القرص بشكلٍ سليم.
test_jpeg_quality
يختبر هذا الإعداد جودة ضغط JPEG للكاميرا. تتدرّج جودة ملفات JPEG من خلال
android.jpeg.quality
وتتحقّق من أنّ جداول التكميم تتغيّر
بشكل صحيح.
واجهات برمجة التطبيقات التي تم اختبارها:
النتيجة "اجتياز": تنخفض مصفوفة التكميم مع زيادة الجودة. (تمثّل المصفوفة عامل القسمة).
الشكل 133. متوسطات مصفوفة DQT لسطوع الألوان ودرجاتها في كاميرا هاتف Pixel 4 الخلفية مقارنةً بجودة JPEG
الشكل 134 مثال على اختبار لم يتم اجتيازه
scene_video
scene_video
هو مشهد فيديو يتألف من أربع دوائر بألوان مختلفة تتحرك ذهابًا وإيابًا بمعدلات عرض لقطات مختلفة على خلفية بيضاء.
الشكل 135: مثال على scene_video
test_preview_frame_drop
اختبارات للتأكّد من الحفاظ على معدّل عرض اللقطات المطلوب للمعاينات مع مشهد ديناميكي يتم إجراء هذا الاختبار على جميع الكاميرات التي يمكن للتطبيقات التابعة لجهات خارجية الوصول إليها.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
اجتياز: يكون معدّل عرض اللقطات في المعاينة عند الحد الأقصى لنطاق معدّل عرض اللقطات المطلوب، ويكون متوسط التفاوت بين اللقطات المتتالية أقل من التفاوت النسبي المحدّد في الاختبار.
scene_extensions
تخصّ scene_extensions
الاختبارات إضافات الكاميرا ويجب أن تستخدم Camera ITS-in-a-Box، لأنّها تتطلّب تحكّمًا دقيقًا في بيئة الاختبار. بالإضافة إلى ذلك، يجب التحكّم في أي تسريب للضوء. قد يتطلّب ذلك تغطية جهاز الاختبار والجهاز الخاضع للاختبار والجهاز اللوحي بقطعة قماش واقية، بالإضافة إلى منع تسرُّب الضوء من الشاشة الأمامية للجهاز الخاضع للاختبار.
scene_hdr
يتألف المشهد scene_hdr
من صورة شخصية على اليمين ورمز استجابة سريعة منخفض التباين على اليسار.
الشكل 136: مثال على scene_hdr.
test_hdr_extension
يختبر إضافة HDR. تسجيل لقطات شاشة مع تفعيل الإضافة وبدونه، والتحقّق مما إذا كانت الإضافة تجعل رمز الاستجابة السريعة أسهل في الرصد
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
اجتياز: يقلّل تطبيق HDR من عدد التغييرات في التباين اللازمة لرصد رمز الاستجابة السريعة أو يقلّل من التدرّج اللوني في رمز الاستجابة السريعة.
scene_low_light
يتألف المشهد scene_low_light
من شبكة مربعات بدرجات مختلفة من اللون الرمادي على خلفية سوداء، ويحيط بالمربعات خط أحمر. يتم ترتيب المربّعات في اتجاه منحنى هيلبرت.
الشكل 137. مثال على scene_low_light.
test_night_extension
تختبر هذه السمة إضافة Night. يتم التقاط الصور مع تفعيل الإضافة، ويتم تنفيذ ما يلي:
- رصد وجود 20 مربّعًا
- تحسب هذه الدالة قيمة الإضاءة المحدودة بكل مربّع
- تحسب هذه السمة متوسط قيمة الإضاءة لأول 6 مربعات وفقًا لاتجاه شبكة منحنى هيلبرت
- تحسب هذه السمة الفرق في قيمة سطوع المربّعات المتتالية (مثلاً، المربّع 2 - المربّع 1) حتى المربّعين 5 و6 (المربّع 6 - المربّع 5)، ثم تحسب متوسط الفروق الخمسة التي تم احتسابها.
بالنسبة إلى الأجهزة التي تعمل بالإصدار 16 من نظام التشغيل Android أو إصدار أحدث، يتضمّن طلب الالتقاط منطقة محدودة تتوافق مع المستطيل الذي يحيط بشبكة المربّعات. يؤدي هذا التعديل إلى تغيير معايير اجتياز الحدّ الأدنى.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
بطاقة:
- بالنسبة إلى الأجهزة التي تعمل بالإصدار 16 من نظام التشغيل Android أو الإصدارات الأحدث، يجب أن يكون متوسط قيمة الإضاءة لأول 6 مربعات 80 على الأقل، ويجب أن يكون متوسط الفرق في قيمة الإضاءة للمربعات المتتالية حتى المربعين 5 و6 هو 18.75 على الأقل.
- بالنسبة إلى الأجهزة التي تعمل بالإصدار 15 من نظام التشغيل Android والإصدارات الأقدم، يجب أن يكون متوسط قيمة السطوع لأول 6 مربعات 85 على الأقل، ويجب أن يكون متوسط الفرق في قيمة السطوع للمربعات المتتالية حتى المربعين 5 و6 هو 17 على الأقل.
يوضّح الرسم البياني التالي لشدة الإضاءة شكل نتيجة الاختبار الناجحة.
الشكل 138. مثال على اجتياز اختبار مشهد ليلي في الإضاءة المنخفضة
test_low_light_boost_extension
يختبر هذا الإجراء وضع "تحسين الإضاءة المنخفضة" للتعرّض التلقائي. إذا كانت واجهة Camera2 تتيح وضع التعرّض التلقائي للضوء مع تحسين الإضاءة المنخفضة، سيتم إجراء هذا الاختبار لواجهة Camera2. إذا كانت إضافة "الوضع الليلي" في الكاميرا متوافقة وكانت الإضافة متوافقة مع وضع التعرّض التلقائي للضوء "تحسين الإضاءة المنخفضة"، يتم إجراء هذا الاختبار أيضًا لإضافة "الوضع الليلي" في الكاميرا. يضبط هذا الاختبار وضع "التعرّض التلقائي" على "تحسين الإضاءة المنخفضة"، ويلتقط إطارًا من المعاينة، وينفّذ ما يلي:
- يرصد وجود 20 مربّعًا
- تحسب هذه السمة قيمة الإضاءة المحدودة بكل مربّع
- تحسب هذه السمة متوسط قيمة الإضاءة لأول 6 مربعات وفقًا لاتجاه شبكة منحنى هيلبرت
- تحسب هذه السمة الفرق في قيمة سطوع المربّعات المتتالية (مثلاً، المربّع 2 - المربّع 1) حتى المربّعين 5 و6 (المربّع 6 - المربّع 5)، ثم تحسب متوسط الفروق الخمسة التي تم احتسابها.
بالنسبة إلى الأجهزة التي تعمل بالإصدار 16 من نظام التشغيل Android أو إصدار أحدث، يتضمّن طلب الالتقاط منطقة محدودة تتوافق مع المستطيل الذي يحيط بشبكة المربّعات. يؤدي هذا التعديل إلى تغيير معايير اجتياز الحدّ الأدنى.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
بطاقة:
بالنسبة إلى الأجهزة التي تعمل بالإصدار 16 من نظام التشغيل Android أو الإصدارات الأحدث، يجب أن يكون متوسط قيمة الإضاءة لأول 6 مربعات 54 على الأقل، ويجب أن يكون متوسط الفرق في قيمة الإضاءة للمربعات المتتالية حتى المربعين 5 و6 هو 17 على الأقل.
بالنسبة إلى الأجهزة التي تعمل بالإصدار 15 من نظام التشغيل Android والإصدارات الأقدم، يجب أن يكون متوسط قيمة السطوع لأول 6 مربعات 70 على الأقل، ويجب أن يكون متوسط الفرق في قيمة السطوع للمربعات المتتالية حتى المربعين 5 و6 هو 18 على الأقل.
scene_tele
من المتطلبات الأساسية لاختبارات scene_tele
أن تكون مسافة لوحة الاختبار على الأقل مساوية للحد الأدنى لمسافة التركيز البؤري لعدسة التقريب. بما أنّ الحد الأدنى لمسافة التركيز البؤري قد يختلف بين الأجهزة، عليك ضبط إعداداتك لتناسب كاميرا التقريب المحدّدة.
الشكل 139: إعداد scene_tele استنادًا إلى مسافة التركيز في الكاميرا ذات العدسة الواسعة والعدسة المقرِّبة
لمزيد من المعلومات حول إعداد أجهزة الاختبار، يُرجى الاطّلاع على إعداد منصة اختبار ملحقات الهاتف.
scene6_tele
يتكوّن مشهد scene6_tele
من شبكة من علامات ArUco على خلفية بيضاء.
إذا كانت لقطات scene6_tele
تبدو معرَّضة للضوء بشكل مفرط في
الحامل المعياري، أزِل اللوحة الأمامية من
الحامل المعياري.
افصل جهاز اختبار مجال الرؤية الواسع عن الإضافة وأزِل حامل الهاتف.
الشكل 140. افصل جهاز اختبار مجال الرؤية الواسع عن الإضافة وأزِل حامل الهاتف.
الشكل 141. أزِل اللوحة الأمامية.
test_zoom_tele
تختبر هذه الحالة سلوك تكبير/تصغير الكاميرا من العدسة الواسعة إلى العدسة المقرِّبة (تيليفوتو). يكون الاختبار مطابقًا لاختبار test_zoom
، ولكنّه يختبر سلوك تكبير/تصغير الكاميرا من العدسة العريضة إلى العدسة المقرِّبة (تيليفوتو).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
اجتياز: يكون الحجم النسبي لعلامة ArUco التي تم التقاطها دقيقًا مقارنةً بنسبة التكبير/التصغير المطلوبة للتأكّد من أنّ الكاميرا تكبّر/تصغّر بشكل صحيح، ويتغيّر موضع العلامة بالنسبة إلى مركز الصورة وفقًا للمعايير الواردة في test_zoom
.
test_preview_zoom_tele
تختبر هذه الحالة سلوك تكبير/تصغير الكاميرا لإطارات المعاينة من العدسة الواسعة إلى العدسة المقرِّبة (تيليفوتو). يكون الاختبار مطابقًا لاختبار test_preview_zoom
، ولكنّه يختبر سلوك تكبير/تصغير الكاميرا لإطارات المعاينة من العدسة الواسعة إلى العدسة المقرِّبة (تيليفوتو).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
اجتياز: يكون الحجم النسبي لعلامة ArUco التي تم التقاطها دقيقًا مقارنةً بنسبة التكبير/التصغير المطلوبة للتحقّق من أنّ الكاميرا تكبّر/تصغّر بشكل صحيح، ويتغيّر بُعد العلامة عن مركز الصورة وفقًا للمعايير الواردة في test_preview_zoom.
scene7_tele
scene7_tele
هي نفسها scene7
، ولكن تم إعدادها لاختبار عدسة التيليفوتو. وهو عبارة عن إطار مستطيل الشكل مقسّم إلى أربعة أرباع متساوية، كل ربع مملوء بلون مختلف. في منتصف المستطيل، يظهر رسم بياني للحواف المائلة
يُستخدم للتحقّق من الحدّة. تتم محاذاة أربعة علامات ArUco مع الزوايا الخارجية الأربع للمستطيل للمساعدة في الحصول على إحداثيات دقيقة لإطار المستطيل الرئيسي بنسب تكبير/تصغير مختلفة.
test_multi_camera_switch_tele
يتحقّق هذا الاختبار من أنّ التبديل بين العدسة ذات الزاوية الواسعة (W) وعدسة التقريب (tele) أثناء تسجيل المعاينة بنسب تكبير/تصغير مختلفة يؤدي إلى قيم RGB متشابهة.
يستخدم الاختبار نسب تكبير/تصغير مختلفة ضمن النطاق المحدّد مسبقًا لتسجيل معاينة ديناميكية وتحديد النقطة التي تتغير عندها الكاميرا الفعلية. تشير هذه النقطة إلى الانتقال من العدسة ذات الزاوية الواسعة إلى عدسة التقريب.
يتم تحليل اللقطات التي تم التقاطها عند نقطة الانتقال وقبلها من أجل التعرّض التلقائي للضوء وتوازن اللون الأبيض والتركيز التلقائي.
يتحقّق فحص "التعرّض التلقائي" من أنّ التغيير في شدة الإضاءة يقع ضمن النطاق المتوقّع لكل من صور العدسة العادية وعدسة التقريب. يتحقّق اختبار توازن اللون الأبيض من أنّ نسب الأحمر إلى الأخضر والأزرق إلى الأخضر تقع ضمن قيم الحدّ الأقصى لكلّ من صور العدسة العادية وعدسة التقريب. يقيّم فحص التركيز التلقائي قيمة تقدير الحدة استنادًا إلى متوسط مقدار التدرج بين صور العدسة ذات الزاوية الواسعة وعدسة التقريب.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.media.CamcorderProfile
android.media.MediaRecorder
اجتياز: لاجتياز الاختبار، يجب اجتياز عمليات التحقّق من AE وAWB وAF. في ما يلي معايير كل عملية تحقّق:
- فحص التعريض التلقائي: يجب أن يكون التغيير في شدة الإضاءة بين صور العدسة العريضة وعدسة التقريب أقل من %4.
- التحقّق من توازن اللون الأبيض: في مساحة ألوان LAB، يجب ألا يتجاوز الفرق في اللون بين الأحمر والأخضر والأزرق والأخضر في العدسة العريضة وعدسة التقريب 10.
- فحص التركيز التلقائي: يجب أن تكون حدة الصورة التي تلتقطها العدسة المقرّبة أعلى من حدة الصورة التي تلتقطها العدسة العادية.
scene_flash
تتطلّب اختبارات scene_flash
مشهدًا مظلمًا في مربّع دمج المستشعرات.
test_auto_flash
اختبارات يتم فيها تشغيل الفلاش تلقائيًا في مشهد مظلم للكاميرات الخلفية والأمامية بالنسبة إلى الكاميرات الأمامية، يستخدم الفلاش التلقائي الشاشة لإضاءة المشهد، وليس وحدة فلاش فعلية. يتحقّق الاختبار من تشغيل الفلاش التلقائي من خلال التأكّد من أنّ مركز صورة المربّع أكثر سطوعًا عند تفعيل الفلاش التلقائي. لتفعيل الفلاش التلقائي، يجب إيقاف الأضواء في جهاز الاختبار، ويمكن إيقافها تلقائيًا باستخدام وحدة التحكّم Arduino. يجب أن يكون المشهد مظلمًا تمامًا لكي يعمل الاختبار بشكل صحيح. يجب تثبيت تطبيق Jetpack Camera (JCA) على الجهاز قبل إجراء الاختبار. يعتمد الفلاش التلقائي للكاميرات الخلفية على حالة "التعرّض التلقائي" (AE) ليتم تشغيله، ولكن الفلاش التلقائي للكاميرات الأمامية لا يعتمد على "التعرّض التلقائي" ويتم تشغيله دائمًا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureRequest#FLASH_MODE
اجتياز: يكون مركز صورة المربّع مع تفعيل الفلاش التلقائي أكثر سطوعًا من صورة المشهد الأصلية لجميع الكاميرات.
test_flash_strength
اختبارات التحكّم في قوة الفلاش في وضع
SINGLE
يتم تنفيذها بشكل صحيح.
تتحقّق هذه الحالة من أنّه إذا كان الجهاز يتيح التحكّم في قوة الفلاش أثناء استخدام الكاميرا في وضع SINGLE
، تتغيّر قوة الفلاش مع مستويات القوة المختلفة المطلوبة. تتحقّق هذه السمة من أنّ عنصر التحكّم في قوة الفلاش يعمل مع
AE_MODES
مختلفة.
على سبيل المثال، إذا كان وضع التعريض التلقائي ON
أو OFF
، سيؤثر مستوى قوة الفلاش في درجة السطوع، وإذا كان الوضع ON_AUTO_FLASH
، لن يؤثر مستوى قوة الفلاش في درجة السطوع.
لإجراء الاختبار، يجب إيقاف الأضواء في جهاز الاختبار. يمكن إيقاف الأضواء تلقائيًا باستخدام وحدة التحكّم Arduino. يجب أن يكون المشهد مظلمًا تمامًا لكي يعمل الاختبار بشكل صحيح.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_MAX_LEVEL
بطاقة:
عندما يكون وضع التعريض التلقائي ON
أو OFF
، يزداد سطوع رقع الصورة مع زيادة مستوى قوة الفلاش من بدون فلاش إلى FLASH_SINGLE_STRENGTH_MAX_LEVEL
.
عندما يكون وضع التعريض التلقائي ON_AUTO_FLASH
، يكون الفرق في سطوع أجزاء الصورة ضمن الحد المسموح به مع زيادة مستوى قوة الفلاش من عدم استخدام الفلاش إلى FLASH_SINGLE_STRENGTH_MAX_LEVEL
.
test_led_snapshot
اختبارات للتأكّد من أنّ لقطات الشاشة التي تم التقاطها باستخدام مصباح LED لا تشوّه الصورة أو تلوّنها
يضيف هذا الاختبار وحدة تحكّم في الإضاءة إلى صندوق Sensor Fusion Box للتحكّم في الأضواء. مع ضبط الإضاءة على OFF
، يلتقط الاختبار صورة مع ضبط الوضع AUTO_FLASH
على ON
. أثناء عملية الالتقاط هذه، ينفّذ الاختبار تسلسلاً مسبقًا لعملية الالتقاط مع ضبط مشغّل aePrecapture
على START
، ويضبط غرض الالتقاط على Preview
لالتقاط الصورة باستخدام الفلاش.
بما أنّ اللقطة تحتوي على نقطة ساخنة مميّزة بسبب الفلاش، يحسب الاختبار متوسط صورة الفلاش للّقطة بأكملها ويتأكّد مما إذا كانت القيمة ضمن النطاق (68 و102). للتحقّق مما إذا كانت الصورة متوازنة بشكل معقول من حيث اللون الأبيض، يحسب الاختبار نسبتي الأحمر إلى الأخضر والأزرق إلى الأخضر، ويتحقّق مما إذا كانت النسبتان تتراوحان بين 0.95 و1.05.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#FLASH_MODE
اجتياز: تتراوح نسبتا الأحمر إلى الأخضر والأزرق إلى الأخضر بين 0.95 و1.05. يقع متوسط صورة الفلاش ضمن النطاق (68, 102).
test_night_mode_indicator
يختبر هذا الاختبار وظيفة مؤشر "الوضع الليلي"، وهي ميزة تشير إلى ما إذا كانت الكاميرا تعمل في ظروف الإضاءة المنخفضة وستستفيد من التقاط صورة باستخدام إضافة "الوضع الليلي". لا تتوفّر هذه الميزة إلا على الأجهزة التي تتوافق مع إضافات "الكاميرا في الوضع الليلي".
يتحقّق هذا الاختبار من أنّ مؤشر الوضع الليلي يعكس بشكل صحيح ظروف الإضاءة أثناء معاينة الكاميرا. يُجري الاختبار الخطوات التالية:
- بدء التشغيل: تبدأ التجربة
ItsSession
وتسترد خصائص الكاميرا. ويتيح أيضًا إنشاء اتصال مع وحدة التحكّم في الإضاءة. - شروط التخطّي: يتم تخطّي الاختبار إذا كان الجهاز لا يتوافق مع مستوى واجهة برمجة التطبيقات المطلوب أو ميزة مؤشر الوضع الليلي.
- جلسة Camera2:
- يبدأ الاختبار جلسة التقاط معاينة باستخدام جلسة
Camera2
. - يتم تشغيل الضوء والتقاط إطار معاينة.
- يتحقّق الاختبار من أنّ مؤشر الوضع الليلي في الحالة
OFF
. - يتم إيقاف الضوء والتقاط إطار معاينة.
- يتحقّق الاختبار من أنّ مؤشر الوضع الليلي في الحالة
ON
.
- يبدأ الاختبار جلسة التقاط معاينة باستخدام جلسة
- جلسة إضافة الكاميرا:
- يكرّر الاختبار الإجراء نفسه كما هو الحال في جلسة
Camera2
، ولكن باستخدام جلسةCameraExtension
مع الإضافةEXTENSION_NIGHT
.
- يكرّر الاختبار الإجراء نفسه كما هو الحال في جلسة
- التنظيف: يتم إغلاق الاختبار
ItsSession
ويتم تحرير وحدة التحكّم في الإضاءة.
واجهات برمجة التطبيقات التي تم اختبارها:
بطاقة:
- عندما يكون الضوء مضاءً، يجب أن يكون مؤشر الوضع الليلي في الحالة
OFF
. - عندما يكون الضوء مطفأً، يجب أن يكون مؤشر "الوضع الليلي" في الحالة
ON
. - ينطبق ذلك على كلّ من جلسات
Camera2
وCameraExtension
.
test_preview_min_frame_rate
اختبارات انخفاض عدد اللقطات في الثانية لمعاينة إطار بشكل صحيح في مشهد مظلم لكي يعمل هذا الاختبار بشكل صحيح، يجب أن يطفئ عامل الاختبار الأضواء في جهاز الاختبار إما باستخدام وحدة التحكّم أو يدويًا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
اجتياز: يكون معدّل عرض اللقطات في المعاينة عند الحد الأدنى من نطاق معدّل عرض اللقطات المطلوب، ويكون التفاوت بين اللقطات أقل من التفاوت المطلق المحدّد في الاختبار.
test_torch_strength
اختبارات التحكّم في قوة الفلاش في وضع
TORCH
يتم تنفيذها بشكل صحيح.
يتحقّق هذا الاختبار من أنّه إذا كان الجهاز يتيح التحكّم في قوة الضوء الوامض أثناء استخدام الكاميرا في وضع TORCH
، تتغيّر قوة الضوء الوامض مع مستويات القوة المختلفة المطلوبة. تتحقّق هذه السمة من أنّ عنصر التحكّم في قوة الفلاش يعمل مع
AE_MODES
مختلفة.
على سبيل المثال، إذا كان وضع التعريض التلقائي ON
أو OFF
، سيؤثر مستوى قوة الفلاش في درجة السطوع، وإذا كان الوضع ON_AUTO_FLASH
، لن يؤثر مستوى قوة الفلاش في درجة السطوع.
تتحقّق هذه السمة من أنّ قوة ضوء المصباح تظل كما هي طوال مدة اللقطة السريعة، ما يحاكي جلسة تسجيل فيديو. لإجراء الاختبار، يجب إيقاف الأضواء في جهاز الاختبار، ويمكن إيقافها تلقائيًا باستخدام وحدة التحكّم Arduino. يجب أن يكون المشهد مظلمًا تمامًا لكي يعمل الاختبار بشكل صحيح.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_MAX_LEVEL
بطاقة:
عندما يكون وضع التعريض التلقائي ON
أو OFF
، يزداد سطوع رقع اللقطات المتتالية مع زيادة مستوى قوة الفلاش من عدم استخدام الفلاش إلى FLASH_TORCH_STRENGTH_MAX_LEVEL
.
عندما يكون وضع التعريض التلقائي ON_AUTO_FLASH
، يكون الفرق في سطوع رقعات اللقطة المتتابعة ضمن الحد المسموح به مع زيادة مستوى قوة الفلاش من بدون فلاش إلى FLASH_TORCH_STRENGTH_MAX_LEVEL
.
sensor_fusion
تتطلّب اختبارات دمج البيانات الحسية تحريك الهاتف بطريقة معيّنة أمام نمط رقعة الشطرنج وعلامات ArUco. للحصول على أفضل النتائج، تأكَّد من أنّ لوحة الاختبار مثبّتة بشكل مسطّح. تؤثر الرسومات البيانية غير المسطّحة في حسابات التدوير للعديد من الاختبارات. يجب أن يملأ الرسم البياني الجزء الخلفي من صندوق دمج البيانات الحسية من خلال الطباعة
بمقاس 17 × 17 بوصة. (43×43 سم). يمكن إجراء اختبارات sensor_fusion
تلقائيًا باستخدام Sensor Fusion Box.
الشكل 142. الرسم البياني لدمج بيانات المستشعرات
الشكل 143. مخطط دمج البيانات الحسية الذي يملأ الجزء الخلفي من مربّع دمج البيانات الحسية
test_lens_intrinsic_calibration
اختبارات للتأكّد من أنّ المركز البصري للعدسة يتغيّر عندما تتحرّك العدسة بسبب التثبيت البصري للصور (OIS). في حال توفّر عيّنات المعايرة الداخلية للعدسة، يتم إجراء اختبارات للتأكّد من أنّ المركز البصري لعيّنات المعايرة الداخلية للعدسة يتغيّر عند تحرّك العدسة بسبب نظام تثبيت الصورة البصري.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
اجتياز: يتغيّر المركز البصري للعدسة بمقدار بكسل واحد أو أكثر. في حال توفُّر عيّنات الخصائص الذاتية للعدسة، تتغيّر المراكز البصرية لعيّنات الخصائص الذاتية للعدسة بمقدار بكسل واحد أو أكثر.
الشكل التالي هو مثال على رسم بياني test_lens_intrinsic_calibration
يعرض
تغييرات النقاط الرئيسية بالبكسل لكل إطار:
الشكل 144. مثال على الرسم البياني test_lens_intrinsic_calibration الذي يعرض تغييرات النقاط الرئيسية بالبكسل لكل إطار
test_multi_camera_frame_sync
تكون الاختبارات التي تحدّد الطوابع الزمنية التي تسجّلها الكاميرا المنطقية في حدود 10 مللي ثانية من خلال احتساب زوايا المربعات داخل لوحة المربّعات لتحديد الطابع الزمني.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
اجتياز الاختبار: لا تتغير الزاوية بين الصور من كل كاميرا بشكل ملحوظ عند تدوير الهاتف.
test_preview_distortion
اختبارات للتأكّد من تصحيح التشويش في كل إطار معاينة تم التقاطه بمستويات تكبير مختلفة بالنسبة إلى كل إطار معاينة، يحسب الاختبار النقاط المثالية استنادًا إلى المعلمات الداخلية والخارجية للكاميرا.
في الصورة النموذجية، تظهر النقاط المثالية باللون الأخضر، بينما تظهر النقاط الفعلية باللون الأحمر. يتم احتساب خطأ التشويش استنادًا إلى مسافة وحدات البكسل وفقًا لمتوسط الجذر التربيعي (RMS) بين النقاط الفعلية والنقاط المثالية. يتم استخدام التمييز باللونين الأخضر والأحمر في الصورة لتحديد موضع الخطأ في التشويش بصريًا.
الشكل 145. صورة للوحة مربّعات تتضمّن نقاطًا مثالية باللون الأخضر ونقاطًا فعلية باللون الأحمر
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.media.CamcorderProfile
android.media.MediaRecorder
اجتياز: يكون خطأ التشويش المعدّل لكل إطار معاينة أقل من الحدّ الذي تم ضبطه في الاختبار.
test_preview_stabilization
الاختبارات التي تم فيها تثبيت معاينة الفيديو تدور بمعدل أقل من معدل دوران الجيروسكوب.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
اجتياز: يكون الحد الأقصى لزاوية الدوران على مستوى اللقطات أقل من% 70 من دوران الجيروسكوب.
في ما يلي فيديوهات نموذجية مع ميزة تثبيت الصورة وبدونها:
الشكل 146. نموذج فيديو مع تثبيت الصورة
الشكل 147. فيديو نموذجي بدون تثبيت الصورة
test_sensor_fusion
تختبر هذه السمة الفرق بين الطابع الزمني للكاميرا والجيروسكوب في تطبيقات الواقع المعزّز والواقع الافتراضي. يتم تدوير الهاتف بمقدار 90 درجة 10 مرات أمام نمط المربّعات المتداخلة. تستغرق الحركة حوالي ثانيتَين ذهابًا وإيابًا. يتم تخطّي هذا الاختبار في حال عدم تضمين جيروسكوب أو إذا لم يتم تفعيل المَعلمة REALTIME
الخاصة بمصدر الطابع الزمني.
ينشئ اختبار test_sensor_fusion
عددًا من المخططات. الرسمان البيانيان الأكثر أهمية لتحديد المشاكل هما:
test_sensor_fusion_gyro_events
: تعرض هذه السمة أحداث الجيروسكوب للهاتف أثناء الاختبار. يشير التحرك في الاتجاهين x وy إلى أنّ الهاتف غير مثبّت بإحكام على لوحة التثبيت، ما يقلّل من احتمال اجتياز الاختبار. يعتمد عدد الدورات في الرسم البياني على سرعة الكتابة لحفظ اللقطات.الشكل 148: مثال على أحداث الجيروسكوب test_sensor_fusion
test_sensor_fusion_plot_rotations
: تعرض هذه السمة محاذاة أحداث الجيروسكوب والكاميرا. يجب أن يعرض هذا الرسم البياني حركة متطابقة بين الكاميرا والجيروسكوب في حدود +/-1 مللي ثانية.الشكل 149: مثال على تدوير مخطط test_sensor_fusion
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#LENS_FACING
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
اجتياز: يكون فرق التوقيت بين الطابع الزمني للكاميرا والجيروسكوب أقل من 1 مللي ثانية وفقًا للقسم 7.3.9 أجهزة الاستشعار عالية الدقة في مستند تعريف التوافق مع الأجهزة (CDD).
آليات الفشل:
- خطأ في الإزاحة: لم تتم معايرة إزاحة الكاميرا والجيروسكوب بشكل صحيح ضمن نطاق +/-1 مللي ثانية.
- انخفاض عدد اللقطات في الثانية: لا تكون عملية نقل البيانات سريعة بما يكفي لالتقاط 200 لقطة متتالية.
- أخطاء المقبس: يتعذّر على
adb
الاتصال بالجهاز الخاضع للاختبار بشكل موثوق لمدة كافية لتنفيذ الاختبار. - الرسم البياني غير مثبّت بشكل مسطّح. يحتوي الرسم البياني
test_sensor_fusion_plot_rotations
على إطارات يختلف فيها دوران الجيروسكوب والكاميرا بشكل كبير، وذلك لأنّ الكاميرا تدور خلال أجزاء الرسم البياني غير المسطّحة. - الكاميرا غير مثبَّتة بشكل مسطّح. يعرض الرسم البياني
test_sensor_fusion_gyro_events
الحركة في المستويين X وY. ويحدث هذا الخطأ بشكل أكثر شيوعًا في الكاميرات الأمامية لأنّ الكاميرا الخلفية غالبًا ما تكون بارزة عن بقية جسم الهاتف، ما يؤدي إلى حدوث ميل عند تثبيت الجزء الخلفي من الهاتف على لوحة التثبيت.
test_video_stabilization
الاختبارات التي تم فيها تثبيت الفيديو يتم تدويرها بشكل أقل من الجيروسكوب.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
اجتياز: يكون الحد الأقصى لزاوية الدوران خلال اللقطات أقل من% 60 من دوران الجيروسكوب.
في ما يلي فيديوهات نموذجية مع ميزة تثبيت الصورة وبدونها.
الشكل 150. نموذج فيديو مع تثبيت الصورة
الشكل 151. فيديو نموذجي بدون تثبيت الصورة
test_video_stabilization_jca
في الاختبارات التي تم فيها تثبيت الفيديو الذي تم التقاطه باستخدام JCA، يكون معدل دوران الفيديو أقل من معدل دوران الجيروسكوب. يجب تثبيت JCA على الجهاز قبل إجراء الاختبار.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.CamcorderProfile
android.media.MediaRecorder
اجتياز: الحد الأقصى لزاوية الدوران على مستوى اللقطات المستخرَجة من الفيديو الملتقط باستخدام JCA أقل من% 70 من دوران الجيروسكوب.
feature_combination
تتحقّق اختبارات feature_combination
من أنّ الميزات تعمل بشكل صحيح عند تفعيل ميزات متعددة للكاميرا في الوقت نفسه. تستخدم هذه الاختبارات صورة لوحة المربّعات نفسها المستخدَمة في مشهد دمج المستشعرات.
test_feature_combination
تختبر جميع التركيبات المختلفة لخيارات البث، ووضع تثبيت الفيديو، ونطاق عدد اللقطات المستهدَف في الثانية، وفيديو 10 بت بنطاق عالي الديناميكية، وUltra HDR المتوافقة مع جهاز الكاميرا.
في نظام التشغيل Android 16 والإصدارات الأحدث، يتم تشغيل الاختبار على جميع مجموعات الميزات المتوافقة، ويتم تسجيل النتائج في ملف proto. لا يتم استدعاء تأكيدات الفشل إلا لمجموعات الميزات التي تعرض فيها الدالة
isSessionConfigurationSupported
القيمة True
.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
النجاح: لكل مجموعة من الميزات المتوافقة:
- يتم تثبيت بث المعاينة إذا كانت ميزة "تثبيت المعاينة" مفعّلة.
- يقع معدّل عرض اللقطات في المعاينة ضمن
AE_TARGET_FPS_RANGE
المضبوط. - تتطابق مساحة اللون في معاينة البث المسجّل مع مساحة اللون المحدّدة.
- يحتوي الالتقاط بدقة Ultra HDR على خريطة كسب صالحة.
scene_ip
في نظام التشغيل Android 16 والإصدارات الأحدث، تتيح ميزة "المشهد" scene_ip
إجراء عمليات التحقّق من تطابق الصور بين تطبيق الكاميرا التلقائي وتطبيق الكاميرا Jetpack (JCA) لتحديد الاختلافات الرئيسية بين الصور الملتقطة. تكرّر JCA عمليات التقاط الصور في تطبيقات وسائل التواصل الاجتماعي، وتوفّر صورة أساسية تعالجها تطبيقات وسائل التواصل الاجتماعي وتحسّنها.
متطلبات إعداد الأجهزة
يجب توفُّر إعدادات الأجهزة التالية لإجراء اختبارات scene_ip
:
- يتم تنفيذ الاختبارات في كاميرا Gen2 ITS-in-a-box.
- يتم استخدام وحدات التحكّم في الإضاءة والمحرّكات المؤازرة التي تشكّل جزءًا من منصة Gen2 للتحكّم في بيئة الاختبار.
- يتم وضع مخطط ميزات الاختبار داخل منصة Gen2.
الشكل 152. مثال على Gen2chart_sample
معايير تخطّي الاختبار
يتم تخطّي اختبارات scene_ip
في حال استيفاء أيّ من المعايير التالية:
- أن يكون مستوى واجهة برمجة التطبيقات الأول (
first_api_level
) في الجهاز هو 35 أو أقل. - الجهاز ليس هاتفًا مزوّدًا بكاميرا أساسية أمامية وخلفية (مثل جهاز لوحي أو تلفزيون).
test_default_jca_ip
التقاط صور لمخطط ميزة الاختبار في ظروف إضاءة مضبوطة باستخدام تطبيق الكاميرا التلقائي وJCA وإجراء عمليات التحقّق التالية:
مجال الرؤية: يتحقّق هذا الاختبار من أنّ تطبيق الكاميرا التلقائي وعمليات الالتقاط باستخدام JCA لهما مجال الرؤية نفسه. يستخدم هذا التحقّق ميزة رمز الاستجابة السريعة في المنتصف المستخرَجة من صورة الرسم البياني التي تم التقاطها.
السطوع: يتحقّق هذا الاختبار من أنّ الفرق في السطوع الذي تم قياسه بين تطبيق الكاميرا التلقائي وJCA لا يتجاوز 10. يستخدم هذا الاختبار تصحيح النطاق الديناميكي لقياس السطوع.
توازن اللون الأبيض: يتحقّق هذا الاختبار من أنّ الفرق في توازن اللون الأبيض بين تطبيق الكاميرا التلقائي وJCA لا يتجاوز 4. يستخدم هذا الاختبار تصحيح النطاق الديناميكي لقياس السطوع.
اجتياز القسم الأساسي: يجتاز الاختبار عمليات التحقّق من مجال الرؤية والسطوع وتوازن اللون الأبيض. في Android 16، لا يُشترَط إجراء هذا الاختبار
(NOT_YET_MANDATED
).