تقدّم هذه الصفحة قائمة شاملة بالاختبارات ضمن "مجموعة اختبار صور الكاميرا" (ITS)، وهي جزء من أداة التحقّق من "مجموعة أدوات اختبار التوافق" (CTS) لنظام التشغيل Android. اختبارات ITS هي اختبارات وظيفية، ما يعني أنّها لا تقيس جودة الصورة، ولكنّها تضمن أنّ جميع وظائف الكاميرا المُعلن عنها تعمل على النحو المتوقّع. يتيح هذا المستند للمطوّرين والمختبِرين فهم وظيفة كل اختبار وكيفية تصحيح أخطاء الاختبار.
تُجري ITS اختبارات الكاميرا حسب خصائص الكاميرا المطلوبة ومستوى واجهة برمجة التطبيقات ومستوى فئة أداء الوسائط (MPC). بالنسبة إلى مستوى واجهة برمجة التطبيقات، تستخدم مجموعة أدوات اختبار التوافق (ITS) الرمز ro.product.first_api_level لتحديد الاختبارات التي تمت إضافتها في مستوى واجهة برمجة تطبيقات معيّن والتي تختبر تجارب المستخدم السلبية للوظائف في مستويات واجهة برمجة التطبيقات الأقل. تستخدم مجموعة اختبارات التوافق (ITS) ro.vendor.api_level لحصر الاختبارات على الميزات التي تمت إضافتها في مستوى واجهة برمجة تطبيقات معيّن ويتطلّب إمكانات أجهزة جديدة. في حال تحديد ro.odm.build.media_performance_class لجهاز، يتطلّب نظام ITS إجراء اختبارات معيّنة حسب مستوى MPC.
يتم تجميع الاختبارات حسب المشهد على النحو التالي:
scene0: التقاط البيانات الوصفية والتشويش والجيروسكوب والاهتزازscene1: التعريض، الحساسية، قيمة التعريض (EV)، التعويض عن قيمة التعريض، YUV مقابل JPEG وRAWscene2: التعرّف على الوجوه، الاختبارات التي تتطلّب مشاهد ملونة-
scene3: تحسين الحواف، حركة العدسة scene4: نسبة العرض إلى الارتفاع، والاقتصاص، ومجال الرؤيةscene5: تظليل العدسةscene6: التكبير/التصغيرscene7: مفتاح تحكّم عبر الكاميرا المتعددةscene8: قياس المنطقة للتعرض التلقائي للضوء (AE) وتوازن اللون الأبيض التلقائي (AWB)scene9: ضغط JPEGscene_extensions: إضافات الكاميراscene_tele: تبديل العدسة المقرِّبة (تيليفوتو)scene_flash: Autoflash, الحد الأدنى لعدد اللقطات في الثانيةscene_video: انخفاض عدد اللقطات في الثانية-
sensor_fusion: فرق التوقيت بين الكاميرا والجيروسكوب feature_combination: مجموعات الميزاتscene_ip: التكافؤ بين الصور في تطبيق الكاميرا التلقائي و"تطبيق Jetpack Camera" (JCA)
اطّلِع على الأقسام الفردية للحصول على وصف لكل مشهد.
scene0
لا تتطلّب الاختبارات معلومات مشهد معيّن. ومع ذلك، يجب أن يكون الهاتف ثابتًا لإجراء اختبارات الجيروسكوب والاهتزاز.
test_jitter
تقيس هذه السمة التشويش في الطوابع الزمنية للكاميرا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
ناجح: هناك فرق زمني لا يقل عن 30 مللي ثانية بين اللقطات.
في الشكل التالي، لاحظ النطاق الصغير للمحور الصادي. يكون التشويش صغيرًا في هذا الرسم البياني.
الشكل 1. رسم بياني لـ test_jitter.
test_metadata
يختبر هذا الإجراء صحة إدخالات البيانات الوصفية، وذلك من خلال فحص نتائج الالتقاط وعناصر خصائص الكاميرا. يستخدم هذا الاختبار قيم التعريض auto_capture_request ومستوى الصوت لأنّ محتوى الصورة ليس مهمًا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVELandroid.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPEandroid.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERNandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.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_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
اجتياز: تتطابق قيم البيانات الوصفية للطلب والالتقاط في جميع اللقطات.
test_sensor_events
بالنسبة إلى الأجهزة التي تعلن عن توفّر ميزة دمج بيانات المستشعرات، يتحقّق هذا الاختبار مما إذا كان الجهاز يستعلم عن أحداث المستشعر ويطبعها. أدوات الاستشعار المتوقّعة هي مقياس التسارع والجيروسكوب ومقياس المغناطيسية. لا يعمل هذا الاختبار إلا إذا كانت الشاشة مضاءة، أي إذا لم يكن الجهاز في وضع الاستعداد.
واجهات برمجة التطبيقات التي تم اختبارها:
ناجح: تم تلقّي أحداث لكل جهاز استشعار.
test_solid_color_test_pattern
اختبارات للتأكّد من إنشاء أنماط اختبار الألوان الثابتة بشكلٍ صحيح لكتم صوت الكاميرا إذا كان كتم صوت الكاميرا متاحًا، يجب أن تكون أنماط اختبار الألوان الثابتة متاحة. إذا لم يكن كتم صوت الكاميرا متاحًا، يتم اختبار أنماط الاختبار ذات الألوان الثابتة فقط إذا تم الإعلان عن توفّر هذه الميزة.
في حال توفّر إمكانية استخدام الصور الأولية، يتم اختبار عملية تحديد الألوان أيضًا. الألوان التي تم اختبارها هي الأسود والأبيض والأحمر والأزرق والأخضر. بالنسبة إلى الكاميرات التي لا تتوافق مع الصور الأولية، يتم اختبار اللون الأسود فقط.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODESandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATAandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
اجتياز: تكون أنماط الاختبار الثابتة المتوافقة باللون الصحيح مع تفاوت بسيط في الصورة.
test_test_pattern
يختبر المَعلمة android.sensor.testPatternMode لالتقاط إطارات لكل نمط اختبار صالح، ويتأكّد من إنشاء الإطارات بشكل صحيح للألوان الثابتة وأشرطة الألوان. يتضمّن هذا الاختبار الخطوات التالية:
- التقاط صور لجميع أنماط الاختبار المتوافقة
- تُجري هذه السمة عملية تحقّق من صحة نمط اختبار اللون الثابت وأشرطة الألوان.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODESandroid.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_MODEandroid.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
ناجح: تبدو بيانات YUV وRAW متشابهة.
الشكل 3: مثال أولي على test_tonemap_curve
الشكل 4. مثال على اختبار_منحنى_تعديل_درجة_اللون YUV
test_unified_timestamp
تختبر هذه السمة ما إذا كانت أحداث الصورة وأحداث مستشعر الحركة في نطاق زمني واحد.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_ACCELEROMETERandroid.hardware.Sensor#TYPE_GYROSCOPE
اجتياز: تكون الطوابع الزمنية للحركة بين الطوابع الزمنية للصورتَين.
test_vibration_restriction
تختبر هذه الطريقة ما إذا كان اهتزاز الجهاز يعمل على النحو المتوقّع.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_ACCELEROMETERandroid.os.Vibratorandroid.hardware.camera2.CameraDevice#setCameraAudioRestriction
النتيجة: لا يهتز الجهاز عند كتم صوته باستخدام واجهة برمجة التطبيقات الخاصة بقيود الصوت في الكاميرا.
scene1_1
scene1 هو مخطط رمادي. يجب أن يغطي الرسم البياني الرمادي% 30 من وسط مجال رؤية الكاميرا. من المتوقّع أن يواجه الرسم البياني الرمادي تحديًا معتدلاً في 3A (التعرّض التلقائي، وتوازن اللون الأبيض التلقائي، والتركيز التلقائي) لأنّ المنطقة الوسطى لا تتضمّن أي ميزات.
ومع ذلك، يحدّد طلب الالتقاط المشهد بأكمله الذي يتضمّن ميزات كافية لتقارب 3A.
يمكن اختبار كاميرات مجال الرؤية المحدود في جهاز اختبار مجال الرؤية الواسع أو مجال الرؤية المحدود. إذا تم اختبار كاميرا 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_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGERandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATE
اجتياز: تتلاقى "إعلانات Google" و"إحصاءات Google".
test_auto_vs_manual
تبدو الاختبارات التي تم التقاطها تلقائيًا ويدويًا متشابهة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureResult#TONEMAP_CURVEandroid.hardware.camera2.CaptureResult#TONEMAP_MODE
اجتياز: تتطابق نتائج ضبط توازن اللون الأبيض يدويًا وتحويله المُسجَّلة في كل عملية التقاط
مع توازن اللون الأبيض التلقائي estimate من خوارزمية 3A للكاميرا.
الشكل 6: مثال على اختبار test_auto_vs_manual التلقائي
الشكل 7. مثال على موازنة اللون الأبيض في اختبار تلقائي مقابل يدوي
الشكل 8: مثال على تحويل موازنة اللون الأبيض اليدوية test_auto_vs_manual
test_black_white
اختبارات ينتج عنها صور بالأبيض والأسود فقط يتم التقاط صورتَين، الأولى بمستوى كسب منخفض جدًا ومدة تعرّض قصيرة، ما يؤدي إلى ظهور صورة سوداء، والثانية بمستوى كسب مرتفع جدًا ومدة تعرّض طويلة، ما يؤدي إلى ظهور صورة بيضاء.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.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_SENSORandroid.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_SIZEandroid.hardware.camera2.CaptureResult#SCALER_CROP_REGIONandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
اجتياز: يتم اقتصاص صور YUV من الوسط ولكن لا يتم اقتصاص صور RAW.
الشكل 14: مثال على اقتصاص test_crop_region_raw comp.
الشكل 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_SIZEandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
اجتياز: تتطابق صورة المنطقة التي تم اقتصاصها مع الرقعة التي تتوافق مع صورة الاقتصاص.
test_ev_compensation
تختبر هذه السمة ما إذا كان يتم تطبيق تعويض قيمة التعريض (EV). يتألف الاختبار من قسم أساسي وقسم متقدّم.
يختبر القسم الأساسي ما إذا كان يتم تطبيق تعويض المركبة الكهربائية باستخدام نطاق تم إنشاؤه باستخدام CONTROL_AE_COMPENSATION_STEP. يتم التقاط ثمانية إطارات عند كل قيمة تعويض.
يزيد القسم المتقدّم من مستوى التعرض للضوء في ثماني خطوات، ويتحقّق من مستوى السطوع المقاس مقارنةً بمستوى السطوع المتوقّع. يتم احتساب القيم المتوقّعة من سطوع الصورة التي لم يتم تطبيق تعويض EV عليها، وتتشبّع القيمة المتوقّعة إذا تجاوزت القيم المحسوبة نطاق قيمة الصورة الفعلية. يفشل الاختبار إذا لم تتطابق القيم المتوقّعة مع القيم المقاسة أو إذا كانت الصور معرَّضة بشكل مفرط خلال خمس خطوات.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEPandroid.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATIONandroid.hardware.camera2.CaptureRequest#CONTROL_AE_LOCKandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCKandroid.hardware.camera2.CaptureResult#TONEMAP_CURVEandroid.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_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
اجتياز: تتضمّن الصور درجة السطوع نفسها، ولكنها تصبح أكثر تشويشًا مع زيادة حساسية الضوء. تكون مستويات RGB مسطّحة عندما تكون قيمة ISO*exposure ثابتة على مستوى مساحة الكسب التي تم اختبارها.
آلية التعطّل: في الشكل التالي، مع زيادة قيم مضاعف الكسب (المحور السيني)، تبدأ قيم متوسط مستوى RGB العادي (المحور الصادي) في الانحراف عن قيم مضاعف الكسب المنخفضة.
الشكل 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_RANGEandroid.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCKandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.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_LOCKandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
اجتياز: تبدو اللقطات متّسقة.
الشكل 38: مثال على الإطار 0 من test_locked_burst
الشكل 39: مثال على الإطار 1 من test_locked_burst
الشكل 40: مثال على الإطار 2 من test_locked_burst.
scene1_2
scene 1_2 هو نسخة طبق الأصل من scene 1_1، ويستخدم بنية مشهد فرعي لتخفيف المدة الطويلة لـ scene 1.
test_param_color_correction
الاختبارات التي يتم تطبيق مَعلمات android.colorCorrection.* عليها عند ضبطها
تأخذ هذه السمة لقطات بقيم مختلفة للتحويل والزيادة، وتتحقّق من أنّها تبدو مختلفة بشكل مماثل. يتم اختيار التحويلات والمكاسب لجعل الناتج
أكثر احمرارًا أو زرقة. يستخدم عملية ربط الدرجات اللونية الخطية.
ربط درجات الألوان هو أسلوب يُستخدم في معالجة الصور لربط مجموعة من الألوان بمجموعة أخرى بهدف محاكاة مظهر الصور ذات النطاق الديناميكي العالي في وسيط ذي نطاق ديناميكي أكثر محدودية.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.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 بشكلٍ صحيح عند ضبطها. تلتقط هذه الميزة صورًا بالكاميرا في الإضاءة الخافتة. يستخدم هذا الوضع مستوى تضخيم تناظريًا عاليًا للمساعدة في ضمان أن تكون الصورة الملتقطة مشوّشة. تلتقط ثلاث صور، إحداها بدون تقليل التشويش، والثانية بجودة سريعة، والثالثة بجودة عالية. يلتقط أيضًا صورة بمستوى كسب منخفض وبدون تقليل التشويش، ويستخدم التباين في هذه الصورة كخط أساس. كلما زادت نسبة الإشارة إلى الضوضاء (SNR)، تحسّنت جودة الصورة.
واجهات برمجة التطبيقات التي تم اختبارها:
اجتياز: يختلف نسبة الإشارة إلى الضوضاء باختلاف أوضاع تقليل الضوضاء، ويكون سلوكها مشابهًا للرسم البياني التالي:
الشكل 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 مع مستوى كسب عالٍ nr=3
الشكل 54: مثال على مستوى الكسب المنخفض في test_param_noise_reduction
test_param_shading_mode
الاختبارات التي يتم تطبيق المَعلمة android.shading.mode عليها
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#SHADING_MODEandroid.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODEandroid.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_MODEandroid.hardware.camera2.CameraMetadata#TONEMAP_MODE_FASTandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.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_RANGEandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOSTandroid.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_RAWandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
اجتياز: تؤدي زيادة ISO (الكسب) إلى جعل وحدات البكسل أكثر حساسية للضوء، وبالتالي يتحرك الرسم البياني نحو اليسار.
الشكل 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_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.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_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AF_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAPandroid.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.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_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILEandroid.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_SIZEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.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_SIZEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.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_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.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 في وسط الصور المحوّلة إلى النموذج اللوني أحمر أخضر أزرق (RGB). السجلاتandroid.shading.mode
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAPandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_MODEandroid.hardware.camera2.CaptureRequest#SHADING_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.hardware.graphics.ImageFormat#RAW10android.hardware.graphics.ImageFormat#RAW12
اجتياز: تتشابه صور YUV والصور الأولية، ويقل الفرق بينهما عن% 3.5 من قيمة RMS (القيمة التربيعية لمتوسط الجذر للإشارة).
الشكل 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_PRIORITYandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_MODEandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ONandroid.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_PRIORITYandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_MODEandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ONandroid.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_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMINGandroid.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMINGandroid.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
اجتياز: تم رصد الوجوه الثلاثة.
test_display_p3
اختبارات
عرض P3
التقاط الصور بتنسيق JPEG باستخدام واجهة برمجة التطبيقات ColorSpaceProfiles. اختبارات للتأكّد من أنّ ملف JPEG الذي تم التقاطه يتضمّن ملف تعريف ICC مناسبًا في العنوان، وأنّ الصورة تتضمّن ألوانًا خارج نطاق ألوان sRGB
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.params.ColorSpaceProfilesandroid.hardware.camera2.params.SessionConfiguration#setColorSpace
اجتياز: يحتوي ملف JPEG على ملف تعريف ICC بتنسيق Display P3 وألوان خارج نطاق sRGB.
test_effects
تسجيل لقطة لتأثيرات الكاميرا المتوافقة والتحقّق من إنشائها بشكل صحيح يتحقّق الاختبار من التأثيرَين OFF وMONO فقط، ولكنّه يحفظ الصور لجميع التأثيرات المتوافقة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTSandroid.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
النجاح: يتم التقاط صورة المشهد مع المؤثرات OFF وصورة أحادية اللون
مع ضبط المؤثرات على MONO.
الشكل 99. test_effects_MONO.
test_exposure_keys_consistent
يقارن هذا الاختبار متوسط سطوع اللقطة المفعَّل فيها الضبط التلقائي للتعرّض باللقطة غير المفعَّل فيها الضبط التلقائي للتعرّض والتي يتم فيها تطبيق مَعلمات التعرّض يدويًا (الحساسية ووقت التعرّض ومدة اللقطة وتعزيز الحساسية بعد المعالجة) التي تم تلقّيها في CaptureResult للقطة المفعَّل فيها الضبط التلقائي للتعرّض.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOSTandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#CONTROL_POST_RAW_SENSITIVITY_BOOST
اجتياز: يكون الفرق النسبي في شدة الإضاءة بين اللقطتَين أقل من 4%.
test_format_combos
تختبر هذه السمة مجموعات مختلفة من تنسيقات الإخراج.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAPandroid.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()android.hardware.camera2.CameraCaptureSession#captureBurst()
تم بنجاح: تم تسجيل جميع المجموعات بنجاح.
test_num_faces
يختبر هذا الإجراء ميزة التعرّف على الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.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#createCaptureSessionandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSINGandroid.hardware.camera2.CaptureRequest#EDGE_MODEandroid.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
اجتياز: لم يتم تبديل المستويين U وV.
الشكل 101: مثال على test_reprocess_uv_swap
scene2_b
test_preview_num_faces
اختبار ميزة رصد الوجوه في المعاينة مع زيادة تنوّع ألوان البشرة في مشاهد الوجوه
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.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_CASESandroid.hardware.camera2.CaptureRequest#JPEG_QUALITYandroid.graphics.ImageFormat#JPEG
اجتياز: تختلف صور YUV وJPEG لحالة الاستخدام STILL_CAPTURE بنسبة أقل من% 3 في متوسط الجذر التربيعي (RMS) للإشارة، وتختلف صور YUV لجميع حالات الاستخدام المتوافقة بنسبة أقل من% 10 في متوسط الجذر التربيعي عن صور YUV لحالة الاستخدام STILL_CAPTURE.
scene2_c
test_num_faces
تختبر هذه السمة ميزة "التعرّف على الوجوه" مع زيادة تنوّع لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.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
اختبارات للتأكّد من أنّ عملية التقاط الصور التلقائية بالكاميرا تكون بدقة HDR فائقة على فئة الأداء 15 كما هو محدّد في القسم 2.2.7.2 الكاميرا من مستند تعريف التوافق
اجتياز: يجب أن يكون التقاط حزمة الكاميرا التلقائية بدقة HDR فائقة على جهاز من فئة الأداء 15.
scene2_d
test_preview_num_faces
اختبار ميزة رصد الوجوه في المعاينة مع زيادة تنوّع ألوان البشرة في مشاهد الوجوه
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.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_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureResult#CONTROL_AF_STATEandroid.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
اجتياز: يستقر نظام 3A بحلول نهاية عملية التقاط 50 إطارًا.
test_num_faces
تختبر هذه السمة ميزة "التعرّف على الوجوه" مع زيادة تنوّع لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
مطابقة: يتم العثور على 3 وجوه.
scene2_f
scene2_f لها ثلاثة وجوه بخلفية بيضاء وملابس بيضاء. تتضمّن الوجوه مجموعة كبيرة من درجات لون البشرة وتباينًا عاليًا مع الخلفية.
الشكل 104. مثال على scene2_f
test_preview_num_faces
تختبر هذه السمة ميزة "التعرّف على الوجوه" مع زيادة تنوّع لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.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_FACESandroid.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: يكون أكثر وضوحًا من الوضع 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.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_GYROSCOPEandroid.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_MODESandroid.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATIONandroid.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_DISTANCEandroid.hardware.camera2.CaptureResult#LENS_STATEandroid.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCEandroid.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.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_MODEandroid.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_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
اجتياز: لا يتم تمديد الصور، ولا يختلف مركز الصور بأكثر من %3، ولا يزيد الحد الأقصى لتغيير نسبة العرض إلى الارتفاع بين الفيديوهات التي تبلغ 30 لقطة في الثانية و60 لقطة في الثانية عن %7.5
آليات الفشل:
- يختلف حجم الدائرة في الفيديو الذي تم تسجيله بمعدّل 30 لقطة في الثانية بشكل كبير عن حجمها في الفيديو الذي تم تسجيله بمعدّل 60 لقطة في الثانية.
- يتم تشويه الدائرة في الصورة الملتقطة بسبب مسار المعالجة.
- يتم اقتصاص الدائرة في الصورة الملتقطة بسبب طلب التقاط بنسبة عرض إلى ارتفاع قصوى يؤدي إلى تقليل ارتفاع الصورة أو عرضها.
- يظهر في منتصف الدائرة في الصورة الملتقطة انعكاس، ولا تبدو الدائرة ممتلئة بالكامل.
test_aspect_ratio_and_crop
تختبر هذه السمة ما إذا كانت الصور مشوّهة أو تم اقتصاصها بشكل غير متوقّع في مسار معالجة الصور. تلتقط صورًا لدائرة على جميع التنسيقات. يتحقّق هذا الاختبار من أنّ الدائرة غير مشوّهة، ولا تتحرّك من وسط الصورة، ولا يتغيّر حجمها بشكل غير صحيح مع نسب العرض إلى الارتفاع أو درجات الدقة المختلفة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
اجتياز: لا يتم تمديد الصور، ولا يختلف مركز الصور بأكثر من %3، ويتم الحفاظ على أقصى مجال رؤية ممكن.
آليات الفشل:
- الكاميرا غير محاذية للدائرة المعروضة على الجهاز اللوحي في منتصف المشهد الذي تم التقاطه.
- يتم تشويه الدائرة في الصورة الملتقطة بسبب مسار المعالجة.
- يتم اقتصاص الصورة ذات الدقة المنخفضة مرتين في مسار معالجة الصور، ما يؤدي إلى اختلاف مجال الرؤية بين الصور ذات الدقة العالية والمنخفضة.
- يتم اقتصاص الدائرة في الصورة الملتقطة بسبب طلب التقاط بنسبة عرض إلى ارتفاع قصوى يؤدي إلى تقليل ارتفاع الصورة أو عرضها.
- يظهر في منتصف الدائرة في الصورة الملتقطة انعكاس، ولا تبدو الدائرة ممتلئة بالكامل.
test_multi_camera_alignment
تختبر مَعلمات معايرة الكاميرا المتعلقة بوضع الكاميرا في أنظمة الكاميرات المتعددة. باستخدام الكاميرات الفرعية المادية المتعددة، يتم التقاط صورة باستخدام إحدى الكاميرات المادية. تُستخدَم للعثور على مركز الدائرة. تعرض هذه السمة مركز الدائرة على الإحداثيات العالمية لكل كاميرا. تقارن هذه السمة الفرق بين مراكز الدوائر الخاصة بالكاميرات في إحداثيات العالم. تعيد هذه الطريقة عرض إحداثيات العالم على شكل إحداثيات بكسل، وتقارنها بالإحداثيات الأصلية للتحقّق من صحتها. تقارن هذه السمة أحجام الدوائر للتحقّق مما إذا كانت الأبعاد البؤرية للكاميرات مختلفة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.hardware.camera2.CameraCharacteristics#LENS_DISTORTIONandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATIONandroid.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATIONandroid.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATIONandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERAandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGIONandroid.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_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATIONandroid.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
اجتياز: لا يتم تمديد الصور، ولا يختلف مركز الصور بأكثر من %3، ويتم الحفاظ على أقصى مجال رؤية ممكن.
test_preview_stabilization_fov
يتحقّق من أحجام المعاينة المتوافقة للمساعدة في ضمان اقتصاص مجال الرؤية بشكل مناسب. تسجّل الاختبار فيديوهَين، أحدهما مع تفعيل ميزة تثبيت المعاينة
ON، والآخر مع إيقافها OFF. يتم اختيار إطار تمثيلي من كل فيديو، ويتم تحليله للتحقّق من أنّ التغييرات في مجال الرؤية في الفيديوَين تندرج ضمن المواصفات.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
اجتياز: تظل نسبة العرض إلى الارتفاع للدائرة ثابتة تقريبًا، ويظل الموقع المركزي للدائرة ثابتًا، ولا يتغيّر حجم الدائرة بأكثر من %20.
test_video_aspect_ratio_and_crop
صورة لدائرة داخل مربّع على جميع أشكال الفيديو يستخرج اللقطات الرئيسية، ويتأكّد من عدم تغيُّر نسبة العرض إلى الارتفاع للدائرة، ويحافظ على بقاء الدائرة في المنتصف في الصور التي تم اقتصاصها، كما يتأكّد من عدم تغيُّر حجم الدائرة في التنسيق الثابت أو مع اختلاف الدقة (التحقّق من مجال الرؤية).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATIONandroid.media.MediaRecorderandroid.media.CamcorderProfile
ناجح: لا يتم تمديد إطارات الفيديو، ولا يختلف مركز الإطارات بأكثر من %3، ويتم الحفاظ على أقصى مجال رؤية ممكن.
scene5
يتطلّب scene5 مشهدًا رماديًا مضاءً بشكل موحّد. ويتم ذلك باستخدام ناشر ضوء موضوع على عدسة الكاميرا. ننصحك باستخدام موزع الروائح التالي:
www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168.
لإعداد المشهد، ضَع ناشرًا أمام الكاميرا ووجِّه الكاميرا إلى مصدر إضاءة بقوة 2000 لوكس تقريبًا. يجب أن تكون الصور الملتقطة
scene5 مضاءة بشكل منتشر بدون ظهور أي ميزات. في ما يلي
صورة نموذجية:
الشكل 117: مثال على لقطة scene5
بما أنّه لا يلزم استخدام أجهزة لوحية أو وحدات تحكّم في هذا المشهد، تستخدم الاختبارات
TEST_BED_MANUAL. للاطّلاع على مثال، راجِع ملف config.yml الخاص بالاختبار اليدوي.
لا يتضمّن ملف config.yml التلقائي TEST_BED_MANUAL، ولكن يمكنك تعديل الملف لتضمين TEST_BED_MANUAL.
test_lens_shading_and_color_uniformity
اختبارات للتأكّد من تطبيق تصحيح تظليل العدسة بشكل مناسب، ومن توزيع لون المشهد الموحّد أحادي اللون بالتساوي يُجري هذا الاختبار على إطار YUV مع ميزة 3A التلقائية. يتم تقييم تظليل العدسة استنادًا إلى القناة y. يقيس هذا المقياس متوسط قيمة y لكلّ عيّنة محدّدة، ويحدّد ما إذا كانت العيّنة ناجحة أو غير ناجحة من خلال مقارنتها بقيمة y في المركز. يتم تقييم اختبار اتساق الألوان في مساحة الأحمر والأخضر والأزرق والأخضر.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.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_RANGEandroid.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAWandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
اجتياز: يكون الفرق في متوسط مربّع الخطأ (RMS) الثلاثي الأبعاد بين الصورة الأولية التي تم اقتصاصها وتصغير حجمها والصورة الأولية الكاملة لمجال الرؤية أقل من الحدّ الذي تم ضبطه في الاختبار.
test_zoom
تختبر هذه الحالة سلوك تكبير/تصغير الكاميرا من عدسة التقاط صور موسّعة إلى العدسة الواسعة. يتم التقاط صور ضمن نطاق التكبير/التصغير والتحقّق مما إذا كانت علامات ArUco تصبح أكبر عند التكبير بالكاميرا. يتحقّق الاختبار أيضًا مما إذا كان موضع العلامة المركزية يتغيّر بشكل متوقّع خلال كل عملية تسجيل. يمكن أن تتغيّر المسافة من مركز العلامة المركزية إلى مركز الصورة بمعدّل ثابت بالنسبة إلى نسبة التكبير/التصغير إلى أن يتم تبديل الكاميرا الفعلية، أو يمكن أن تتغيّر بشكل رتيب نحو موقع العلامة نفسها بعد تبديل الكاميرا الفعلية. يجب تثبيت تطبيق Jetpack Camera App (JCA) على الجهاز قبل إجراء الاختبار.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.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_OVERRIDESandroid.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
اجتياز: يكون الحجم النسبي للعلامة التي تم التقاطها دقيقًا مقارنةً بالبيانات الوصفية لنتيجة نسبة التكبير/التصغير.
test_preview_video_zoom_match
اختبارات للتأكّد من أنّ معاينة الفيديو وإخراج الفيديو يعرضان ويسجّلان الناتج نفسه أثناء التسجيل والتكبير تحسب هذه السمة حجم العلامة الأقرب إلى المركز بنسب تكبير مختلفة، وتتحقّق مما إذا كان حجم العلامة يزداد مع زيادة نسبة التكبير.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.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_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.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_VERSIONandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupportedandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#getSessionCharacteristics
اجتياز: يمكن الوصول إلى الحدّين الأدنى والأقصى لنسب التكبير/التصغير لكل SessionConfiguration مدرَج في CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION.
scene7
scene7 هو إطار مستطيل مقسّم إلى أربعة أرباع متساوية، كل ربع مملوء بلون مختلف. في منتصف المستطيل، يظهر رسم بياني للحواف المائلة
يُستخدم للتحقّق من الحدّة. تتم محاذاة أربعة علامات ArUco مع الزوايا الخارجية الأربع للمستطيل للمساعدة في الحصول على إحداثيات دقيقة لإطار المستطيل الرئيسي بنسب تكبير/تصغير مختلفة.
الشكل 125. scene7.
test_multi_camera_switch
يتحقّق هذا الاختبار من أنّ التبديل بين العدسة الواسعة جدًا (UW) والعدسة الواسعة (W) أثناء تسجيل المعاينة بنسب تكبير/تصغير مختلفة يؤدي إلى الحصول على قيم RGB متشابهة.
يستخدم الاختبار نسب تكبير/تصغير مختلفة ضمن النطاق المحدّد مسبقًا لتسجيل معاينة ديناميكية وتحديد النقطة التي تتغيّر عندها الكاميرا المادية. تشير هذه النقطة إلى الانتقال من عدسة UW إلى عدسة W.
يتم تحليل اللقطات التي تم التقاطها عند نقطة التقاطع وقبلها من أجل التعرّض التلقائي (AE) وتوازن اللون الأبيض التلقائي (AWB) والتركيز التلقائي (AF).
يتحقّق اختبار AE من أنّ التغيير في شدة الإضاءة يقع ضمن النطاق المتوقّع لكل من صور العدسة فائقة الاتساع والعدسة العادية. يتحقّق فحص توازن اللون الأبيض التلقائي من أنّ نسب الأحمر إلى الأخضر والأزرق إلى الأخضر تقع ضمن قيم الحدّ الأدنى لكل من صور العدسة ذات الزاوية الواسعة جدًا والعدسة ذات الزاوية الواسعة. يقيّم فحص التركيز التلقائي قيمة تقدير الحدة استنادًا إلى متوسط مقدار التدرج بين صور العدسة فائقة الاتساع والعدسة العادية.
أثناء تنفيذ هذا الاختبار، إذا تداخل تأثير التموّج مع النتائج، استخدِم جهازًا لوحيًا بدقة أعلى من قائمة الأجهزة اللوحية التي وافقت عليها Camera ITS.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.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):
- فحص AE: يتحقّق هذا الفحص من أنّ اللقطة التي تقيس المنطقة ذات التعرض المنخفض للضوء تحتوي على قيمة إضاءة أعلى بنسبة تزيد عن% 1 مقارنةً باللقطة التي تقيس المنطقة ذات التعرض العالي للضوء. يؤكّد ذلك أنّه يتم تفتيح الصور عند قياس مستوى الإضاءة في منطقة داكنة.
- فحص توازن اللون الأبيض: يتحقّق هذا الفحص من أنّ نسبة اللون الأحمر إلى اللون الأزرق (من متوسط قيم RGB للصورة) في الإطار الذي يحتوي على منطقة قياس الضوء الزرقاء أعلى بنسبة تزيد عن %2 من الإطار الذي يحتوي على منطقة قياس الضوء الصفراء. يؤكّد ذلك أنّ الصور تتضمّن قيمة متوازنة للنموذج اللوني أحمر أخضر أزرق (RGB) عند قياس منطقة صفراء (دافئة) أو زرقاء (باردة).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONSandroid.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AEandroid.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_MODEandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TEMPERATUREandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TEMPERATUREandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TINTandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TINTandroid.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_COLOR_TEMPERATURE_RANGEandroid.hardware.camera2.CameraMetadata#COLOR_CORRECTION_MODE_CCTandroid.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_RANGESandroid.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGEandroid.media.CamcorderProfileandroid.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#getSupportedExtensionsandroid.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#getSupportedExtensionsandroid.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_MODESandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITYandroid.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_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
اجتياز: يكون الحجم النسبي لعلامة ArUco التي تم التقاطها دقيقًا مقارنةً بنسبة التكبير/التصغير المطلوبة للتحقّق من أنّ الكاميرا تكبّر/تُصغّر بشكل صحيح، ويتغيّر بُعد العلامة عن مركز الصورة وفقًا للمعايير الواردة في test_zoom.
test_preview_zoom_tele
تختبر هذه الحالة سلوك تكبير/تصغير الكاميرا لإطارات المعاينة من العدسة الواسعة إلى العدسة المقرِّبة (تيليفوتو). يتطابق الاختبار مع test_preview_zoom، ولكنّه يختبر سلوك تكبير/تصغير الكاميرا لإطارات المعاينة من العدسة الواسعة إلى العدسة المقرّبة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
اجتياز: يكون الحجم النسبي لعلامة ArUco التي تم التقاطها دقيقًا مقارنةً بنسبة التكبير/التصغير المطلوبة للتحقّق من أنّ الكاميرا تكبّر/تصغّر بشكل صحيح، ويتغيّر بُعد العلامة عن مركز الصورة وفقًا للمعايير الواردة في test_preview_zoom.
scene7_tele
scene7_tele هي نفسها scene7، ولكن تم إعدادها لاختبار عدسة مقرِّبة (تيليفوتو). وهو عبارة عن إطار مستطيل الشكل مقسّم إلى أربعة أرباع متساوية، كل ربع مملوء بلون مختلف. في منتصف المستطيل، يظهر رسم بياني للحواف المائلة
يُستخدم للتحقّق من الحدّة. تتم محاذاة أربعة علامات ArUco مع الزوايا الخارجية الأربع للمستطيل للمساعدة في الحصول على إحداثيات دقيقة لإطار المستطيل الرئيسي بنسب تكبير/تصغير مختلفة.
test_multi_camera_switch_tele
يتحقّق هذا الاختبار من أنّ التبديل بين العدسة ذات الزاوية الواسعة (W) وعدسة التقريب (tele) أثناء تسجيل المعاينة بنسب تكبير/تصغير مختلفة يؤدي إلى قيم RGB متشابهة.
يستخدم الاختبار نسب تكبير/تصغير مختلفة ضمن النطاق المحدّد مسبقًا لتسجيل معاينة ديناميكية وتحديد النقطة التي تتغيّر عندها الكاميرا المادية. تشير هذه النقطة إلى الانتقال من العدسة ذات الزاوية الواسعة جدًا إلى عدسة التقريب.
يتم تحليل اللقطات التي تم التقاطها عند نقطة الانتقال وقبلها من أجل التعرّض التلقائي للضوء وتوازن اللون الأبيض والتركيز التلقائي.
يتحقّق اختبار AE من أنّ التغيير في شدة الإضاءة يقع ضمن النطاق المتوقّع لكل من صور العدسة العادية وعدسة التقريب. يتحقّق اختبار توازن اللون الأبيض من أنّ نسب الأحمر إلى الأخضر والأزرق إلى الأخضر تقع ضمن قيم الحدّ الأقصى لكلّ من صور العدسة العادية وعدسة التقريب. يقيّم فحص التركيز التلقائي (AF) قيمة تقدير الحدة استنادًا إلى متوسط مقدار التدرج بين صور العدسة العادية وعدسة التقريب.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
اجتياز: لاجتياز الاختبار، يجب اجتياز عمليات التحقّق من AE وAWB وAF. في ما يلي معايير كل عملية تحقّق:
- فحص التعريض التلقائي: يجب أن يكون التغيّر في شدة الإضاءة بين صور العدسة العادية وعدسة التقريب أقل من %4.
- التحقّق من توازن اللون الأبيض: في مساحة ألوان LAB، يجب ألا يتجاوز الفرق في اللون بين الأحمر والأخضر والأزرق والأخضر في العدستين الواسعة والمقرّبة 10.
- فحص التركيز التلقائي: يجب أن تكون حدة الصورة التي تلتقطها العدسة المقرّبة أعلى من حدة الصورة التي تلتقطها العدسة العادية.
scene_flash
تتطلّب اختبارات scene_flash مشهدًا مظلمًا في مربّع دمج المستشعرات.
test_auto_flash
اختبارات يتم فيها تشغيل الفلاش تلقائيًا في مشهد مظلم للكاميرات الخلفية والأمامية بالنسبة إلى الكاميرات الأمامية، يستخدم الفلاش التلقائي الشاشة لإضاءة المشهد، وليس وحدة فلاش فعلية. يتحقّق الاختبار من تشغيل الفلاش التلقائي من خلال التأكّد من أنّ مركز صورة المربّع أكثر سطوعًا عند تفعيل الفلاش التلقائي. لتفعيل الفلاش التلقائي، يجب إيقاف الأضواء في جهاز الاختبار، ويمكن إيقافها تلقائيًا باستخدام وحدة التحكّم Arduino. يجب أن يكون المشهد مظلمًا تمامًا لكي يعمل الاختبار بشكل صحيح. يجب تثبيت تطبيق Jetpack Camera App (JCA) على الجهاز قبل إجراء الاختبار. يعتمد الفلاش التلقائي للكاميرات الخلفية على حالة "التعرّض التلقائي" (AE) ليتم تشغيله، ولكن الفلاش التلقائي للكاميرات الأمامية لا يعتمد على "التعرّض التلقائي" ويتم تشغيله دائمًا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGERandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.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_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVELandroid.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_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.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_RANGESandroid.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGEandroid.media.CamcorderProfileandroid.media.MediaRecorder
اجتياز: يكون عدد اللقطات في الثانية في المعاينة عند الحد الأدنى من نطاق عدد اللقطات في الثانية المطلوب، ويكون التفاوت بين اللقطات أقل من التفاوت المطلق المحدّد في الاختبار.
test_torch_strength
اختبارات التحكّم في قوة الفلاش في وضع
TORCH
الذي تم تنفيذه بشكل صحيح
يتحقّق هذا الاختبار من أنّه إذا كان الجهاز يتيح التحكّم في قوة ضوء الفلاش أثناء استخدام الكاميرا في وضع TORCH، تتغيّر قوة ضوء الفلاش مع مستويات القوة المختلفة المطلوبة. تتحقّق هذه السمة من أنّ عنصر التحكّم في قوة الفلاش يعمل مع AE_MODES مختلفة.
على سبيل المثال، إذا كان وضع التعريض التلقائي ON أو OFF، سيؤثر مستوى قوة الفلاش في درجة السطوع، وإذا كان الوضع ON_AUTO_FLASH، لن يؤثر مستوى قوة الفلاش في درجة السطوع.
تتحقّق هذه الحالة من أنّ قوة ضوء الفلاش تظل كما هي طوال مدة اللقطة المتتابعة، ما يحاكي جلسة التقاط فيديو. لإجراء الاختبار، يجب إيقاف الأضواء في جهاز الاختبار، ويمكن إيقافها تلقائيًا باستخدام وحدة التحكّم Arduino. يجب أن يكون المشهد مظلمًا تمامًا لكي يعمل الاختبار بشكل صحيح.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVELandroid.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 بوصة. (43x43 سم). يمكن إجراء اختبارات sensor_fusion تلقائيًا باستخدام Sensor Fusion Box.
الشكل 142 الرسم البياني لدمج بيانات المستشعرات
الشكل 143. مخطط دمج البيانات الحسية الذي يملأ الجزء الخلفي من مربّع دمج البيانات الحسية
test_lens_intrinsic_calibration
اختبارات لتغيُّر المركز البصري للعدسة عند تحرّكها بسبب التثبيت البصري للصور (OIS). في حال توفّر عيّنات المعايرة الداخلية للعدسة، يتم إجراء اختبارات للتأكّد من أنّ المركز البصري لعيّنات المعايرة الداخلية للعدسة يتغيّر عند تحرّك العدسة بسبب نظام تثبيت الصورة البصري.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATIONandroid.media.MediaRecorderandroid.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_TYPEandroid.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERAandroid.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
ناجح: لا تتغير الزاوية بين الصور من كل كاميرا بشكل ملحوظ عند تدوير الهاتف.
test_preview_distortion
اختبارات للتأكّد من تصحيح التشويش في كل إطار معاينة تم التقاطه بمستويات تكبير مختلفة بالنسبة إلى كل إطار معاينة، يحتسب الاختبار النقاط المثالية استنادًا إلى المعلمات الداخلية والخارجية للكاميرا.
في الصورة النموذجية، تظهر النقاط المثالية باللون الأخضر، بينما تظهر النقاط الفعلية باللون الأحمر. يتم احتساب خطأ التشويش استنادًا إلى مسافة وحدات البكسل وفقًا لمتوسط الجذر التربيعي (RMS) بين النقاط الفعلية والنقاط المثالية. يتم استخدام التمييز باللونين الأخضر والأحمر في الصورة لتحديد موضع الخطأ في التشويش بصريًا.
الشكل 145. صورة للوحة مربّعات تتضمّن نقاطًا مثالية باللون الأخضر ونقاطًا فعلية باللون الأحمر
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.media.CamcorderProfileandroid.media.MediaRecorder
اجتياز: يكون خطأ التشويش المعدّل لكل إطار معاينة أقل من الحدّ الذي تم ضبطه في الاختبار.
test_preview_stabilization
الاختبارات التي تم فيها تثبيت معاينة الفيديو تدور بمعدل أقل من معدل دوران الجيروسكوب.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
اجتياز: يكون الحد الأقصى لزاوية الدوران خلال اللقطات أقل من% 70 من دوران الجيروسكوب.
في ما يلي عيّنات من فيديوهات مع تثبيت الصورة وبدونه:
الشكل 146. فيديو نموذجي مع ميزة تثبيت الصورة
الشكل 147. فيديو نموذجي بدون تثبيت الصورة
test_sensor_fusion
يختبر هذا المعيار الفرق في الطابع الزمني بين الكاميرا والجيروسكوب لتطبيقات الواقع المعزّز والواقع الافتراضي. يتم تدوير الهاتف بمقدار 90 درجة 10 مرات أمام نمط المربّعات المتداخلة. تستغرق الحركة حوالي ثانيتَين ذهابًا وإيابًا. يتم تخطّي هذا الاختبار في حال عدم تضمين جيروسكوب أو إذا لم يتم تفعيل المَعلمة REALTIME الخاصة بمصدر الطابع الزمني.
ينشئ اختبار test_sensor_fusion عددًا من المخططات. الرسمان البيانيان الأكثر أهمية لتحديد المشاكل هما:
test_sensor_fusion_gyro_events: تعرض هذه السمة أحداث الجيروسكوب للهاتف أثناء الاختبار. تشير الحركة في الاتجاهين السيني والصادي إلى أنّ الهاتف غير مثبّت بإحكام على لوحة التثبيت، ما يقلّل من احتمال اجتياز الاختبار. يعتمد عدد الدورات في الرسم البياني على سرعة الكتابة لحفظ اللقطات.
الشكل 148: مثال على أحداث الجيروسكوب test_sensor_fusion
test_sensor_fusion_plot_rotations: تعرض هذه السمة محاذاة أحداث الجيروسكوب والكاميرا. يجب أن يعرض هذا الرسم البياني حركة متطابقة بين الكاميرا والجيروسكوب في حدود +/-1 مللي ثانية.
الشكل 149: مثال على تدوير مخطط test_sensor_fusion
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#LENS_FACINGandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCEandroid.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIMEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureRequest#SENSOR_TIMESTAMPandroid.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_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
اجتياز: يكون الحد الأقصى لزاوية الدوران على مستوى اللقطات أقل من% 60 من دوران الجيروسكوب.
في ما يلي عيّنات من الفيديوهات مع ميزة تثبيت الصورة وبدونها.
الشكل 150. فيديو نموذجي مع ميزة تثبيت الصورة
الشكل 151. فيديو نموذجي بدون تثبيت الصورة
test_video_stabilization_jca
تكون حركة الاختبارات التي تم فيها تثبيت الفيديو الملتقط باستخدام JCA أقل من حركة الجيروسكوب. يجب تثبيت JCA على الجهاز قبل إجراء الاختبار.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASESandroid.media.CamcorderProfileandroid.media.MediaRecorder
اجتياز: الحد الأقصى لزاوية الدوران على مستوى اللقطات المستخرَجة من الفيديو الذي تم التقاطه باستخدام JCA أقل من% 70 من دوران الجيروسكوب.
feature_combination
تتحقّق اختبارات feature_combination من أنّ الميزات تعمل بشكل صحيح عند تفعيل ميزات متعدّدة للكاميرا في الوقت نفسه. تستخدم هذه الاختبارات صورة لوحة المربّعات نفسها المستخدَمة في مشهد دمج البيانات الحسية.
test_feature_combination
تختبر جميع التركيبات المختلفة لخيارات البث، ووضع تثبيت الفيديو، ونطاق عدد اللقطات المستهدَف في الثانية، وفيديو 10 بت بنطاق عالي الديناميكية، ودقة HDR فائقة المتوافقة مع جهاز الكاميرا.
في نظام التشغيل Android 16 والإصدارات الأحدث، يتم تشغيل الاختبار على جميع مجموعات الميزات المتوافقة، ويتم تسجيل النتائج في ملف proto. يتم استدعاء تأكيدات الفشل فقط لمجموعات الميزات التي تعرض فيها الدالة isSessionConfigurationSupported القيمة True.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupportedandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
اجتياز: لكل مجموعة من الميزات المتوافقة:
- يتم تثبيت بث المعاينة إذا كانت ميزة "تثبيت المعاينة" مفعّلة.
- يقع عدد اللقطات في الثانية في المعاينة ضمن
AE_TARGET_FPS_RANGEالمضبوط. - تتطابق مساحة اللون في معاينة البث المسجّل مع مساحة اللون المحدّدة.
- يحتوي التقاط دقة HDR فائقة على خريطة كسب صالحة.
scene_ip
في نظام التشغيل Android 16 والإصدارات الأحدث، تتيح المشهد scene_ip إجراء عمليات التحقّق من تطابق الصور بين تطبيق الكاميرا التلقائي وتطبيق الكاميرا المتوافق مع Jetpack (JCA) لتحديد الاختلافات الرئيسية بين الصور الملتقطة. تكرّر JCA عمليات التقاط الصور في تطبيقات وسائل التواصل الاجتماعي، وتوفّر صورة أساسية تعالجها تطبيقات وسائل التواصل الاجتماعي وتحسّنها.
متطلبات إعداد الأجهزة
يجب توفُّر إعدادات الأجهزة التالية لإجراء اختبارات scene_ip:
- يتم تنفيذ الاختبارات في كاميرا Gen2 ITS-in-a-box.
- يتم استخدام وحدات التحكّم في الإضاءة والمحرّكات المؤازرة التي تشكّل جزءًا من منصة Gen2 للتحكّم في بيئة الاختبار.
- يتم وضع مخطط ميزات الاختبار داخل منصة Gen2.
الشكل 152 Gen2chart_sample example.
معايير تخطّي الاختبار
يتم تخطّي اختبارات scene_ip في حال استيفاء أيّ من المعايير التالية:
- أن يكون مستوى واجهة برمجة التطبيقات الأول (
first_api_level) في الجهاز هو 35 أو أقل. - الجهاز ليس هاتفًا مزوّدًا بكاميرا أمامية وخلفية أساسيتَين (مثل جهاز لوحي أو تلفزيون).
test_default_jca_ip
التقاط صور لمخطط ميزة الاختبار في ظروف إضاءة مضبوطة باستخدام تطبيق الكاميرا التلقائي وJCA وإجراء عمليات التحقّق التالية:
مجال الرؤية: يتحقّق هذا الاختبار من أنّ تطبيق الكاميرا التلقائي وعمليات الالتقاط باستخدام JCA لهما مجال الرؤية نفسه. يستخدم هذا التحقّق ميزة رمز الاستجابة السريعة في المنتصف المستخرَجة من صورة الرسم البياني التي تم التقاطها.
السطوع: يتحقّق هذا الاختبار من أنّ الفرق في السطوع الذي تم قياسه بين تطبيق الكاميرا التلقائي وJCA لا يتجاوز 10. يستخدم هذا الاختبار رقعة النطاق الديناميكي لقياس السطوع.
توازن اللون الأبيض: يتحقّق هذا الاختبار من أنّ الفرق في توازن اللون الأبيض بين تطبيق الكاميرا التلقائي وJCA لا يتجاوز 4. يستخدم هذا الاختبار رقعة النطاق الديناميكي لقياس السطوع.
اجتياز القسم الأساسي: يجتاز الاختبار عمليات التحقّق من مجال الرؤية والسطوع وتوازن اللون الأبيض. في نظام التشغيل Android 16، لا يُشترَط إجراء هذا الاختبار (NOT_YET_MANDATED).