تقدّم هذه الصفحة قائمة شاملة بالاختبارات ضمن كاميرا مجموعة اختبارات الصور (ITS)، وهي جزء من أداة التحقّق من مجموعة اختبارات توافق Android (CTS). اختبارات 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/RAW
- scene2: اختبارات رصد الوجوه التي تتطلّب مشاهد ملونة
- scene3: تحسين الحواف وحركة العدسة
- scene4: نسبة العرض إلى الارتفاع والاقتصاص وحقل الرؤية
- scene5: تظليل العدسة
- scene6: تكبير/تصغير
- scene7: تبديل الكاميرات المتعدّدة
- scene8: قياس منطقة التعريض التلقائي ودرجة حرارة اللون التلقائية
- scene9: ضغط JPEG
- scene_extensions: إضافات الكاميرا
- scene_flash: الفلاش التلقائي، الحد الأدنى لعدد اللقطات في الثانية
- scene_video: انخفاض في الإطارات
- sensor_fusion: تأخُّر في توقيت الكاميرا/الاستشعار الدوراني
- feature_combination: مجموعات الميزات
اطّلِع على الأقسام الفردية للحصول على وصف لكل مشهد.
scene0
لا تتطلّب اختبارات Scene0 أي معلومات محدّدة عن المشهد. ومع ذلك، يجب أن يكون الهاتف ثابتًا لاختبار أداة التسوية الذاتية والاهتزاز.
عدم استقرار_الاختبار
يقيس هذا المقياس الارتعاش في الطوابع الزمنية للكاميرا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
مقبول: هناك فرق بين اللقطات لا يقل عن 30 ملي ثانية.
test_jitter_plot.png (يُرجى ملاحظة نطاق المحور y الصغير. إنّ الارتعاش صغير في الواقع في هذا الرسم البياني.)
test_metadata
لاختبار صلاحية إدخالات بيانات التعريف. يفحص نتائج الالتقاط و
عناصر خصائص الكاميرا. يستخدم هذا الاختبار تعرّض auto_capture_request
للضوء ويكتسب قيمًا لأنّ محتوى الصور غير مهم.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
android.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPE
android.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERN
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
مقبول: مستوى الجهاز، وعلامات rollingShutterSkew
وframeDuration
،
timestampSource
وcroppingType
وblackLevelPattern
وpixel_pitch
وFoV،
المسافة البؤرية الفائقة متوفّرة لها قيم صالحة.
test_request_capture_match
يختبر هذا الاختبار ما إذا كان الجهاز يكتب قيمًا صحيحة للتعريض والاستفادة من خلال قراءة البيانات الوصفية لالتقاط الصور.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
مقبول: تتطابق قيم البيانات الوصفية التي يتم طلبها وتسجيلها في جميع اللقطات.
test_sensor_events
يشير ذلك إلى اختبارات الجهاز الذي يطلب الحصول على أحداث أجهزة الاستشعار وطباعتها على الأجهزة التي تنشر إعلانات عن دعم اندماج أجهزة الاستشعار. أدوات الاستشعار المتوقّعة هي مقياس التسارع، والجيروسكوب، ومقياس المغناطيسية. لا يعمل هذا الاختبار إلا إذا كانت الشاشة مفعّلة، ما يعني أنّه لا يكون الجهاز في وضع الاستعداد.
واجهات برمجة التطبيقات التي تم اختبارها:
تذكرة: يتم تلقّي أحداث لكل جهاز استشعار.
test_solid_color_test_pattern
يشير ذلك إلى الاختبارات التي يتم إنشاؤها بشكل صحيح لكتم صوت الكاميرا من خلال أنماط اختبار الألوان الخالصة. في حال توفُّر كتم صوت الكاميرا، يجب إتاحة أنماط اختبار الألوان الخالصة. إذا لم تكن ميزة كتم صوت الكاميرا متاحة، لن يتم اختبار أنماط اختبار الألوان الثابتة إلا إذا تم الإعلان عن هذه الميزة.
إذا كانت صور RAW متوافقة، يتم أيضًا اختبار تحديد الألوان. الألوان التي يتم اختبارها هي الأسود والأبيض والأحمر والأزرق والأخضر. بالنسبة إلى الكاميرات التي لا تتوافق مع الصور بتنسيق RAW، يتم اختبار اللون الأسود فقط.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATA
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
مقبول: تظهر أنماط الاختبار الصلبة المتوافقة باللون الصحيح، وهناك اختلاف منخفض في الصورة.
نمط_اختبار_الاختبار
لاختبار المعلمة android.sensor.testPatternMode
لالتقاط الإطارات لكل نمط اختبار صالح والتحقق من إنشاء الإطارات بشكل صحيح للألوان الخالصة وأشرطة الألوان يتضمّن هذا الاختبار الخطوات التالية:
- التقاط صور لجميع أنماط الاختبار المتوافقة
- تُجري عملية تحقّق بسيطة من صحة نمط اختبار اللون الواحد وأشرطة الالتفاف بالألوان.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
مقبول: تم إنشاء أنماط الاختبار المتوافقة بشكل صحيح.
test_test_patterns_2.jpg
اختبار_منحنى_الخريطة
يختبر هذا الاختبار تحويل نمط الاختبار من RAW إلى YUV باستخدام خريطة نغمات خطية. يتطلب هذا الاختبار استخدام android.sensor.testPatternMode = 2
(COLOR_BARS) لإنشاء نمط مصوّر مثالي لتحويل مخطّط الألوان. التأكّد من أنّ مسار المعالجة يتضمّن نواتج ألوان مناسبة
مع خريطة درجات لونية خطية وإدخال صورة مثالي (يعتمد على test_test_patterns
)
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
مقبول: يبدو تنسيق YUV وتنسيق RAW متشابهَين.
test_tonemap_curve_raw_2.jpg
test_tonemap_curve_yuv_2.jpg
test_unified_timestamp
لاختبار ما إذا كانت أحداث كاميرا الاستشعار والحركة تقع في النطاق الزمني نفسه
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.hardware.Sensor#TYPE_GYROSCOPE
مقبول: تكون الطوابع الزمنية للحركة بين الطوابع الزمنية للصورتَين.
test_vibration_restriction
يختبر هذا الإجراء ما إذا كان الجهاز يعمل على النحو المتوقّع.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.os.Vibrator
android.hardware.camera2.CameraDevice#setCameraAudioRestriction
اجتياز: لا يهتز الجهاز عند كتم الصوت من خلال واجهة برمجة التطبيقات الخاصة بحظر الصوت في الكاميرا.
scene1
scene1 هو رسم بياني رمادي. يجب أن يغطي الرسم البياني الرمادي 30% من وسط ملف كاميرا الرؤية. من المتوقّع أن يشكّل الرسم البياني الرمادي تحديًا معتدلاً لإعدادات 3A (التعريض التلقائي، موازنة اللون الأبيض التلقائية، التركيز التلقائي) لأنّ المنطقة المركزية لا تحتوي على أيّ عناصر. ومع ذلك، يحدِّد طلب الالتقاط المشهد بأكمله الذي يتضمّن ميزات كافية لتلاقي تقنية 3A.
يمكن اختبار كاميرات الترددات اللاسلكية (RFoV) في الأجهزة الجوّالة للمؤسسات (WFoV) أو في جهاز الاختبار. إذا تم اختبار كاميرا RFoV في جهاز اختبار WFoV، يتم قياس المخطط بمقدار 2⁄3 لضمان بعض الحدود للمخطط الرمادي في FoV للمساعدة في تقارب 3A. للحصول على وصف أكثر تفصيلاً لأجهزة اختبار الكاميرا، يُرجى الاطّلاع على Camera ITS-in-a-box.
scene1: رسم بياني بالحجم الكامل (على يمين الشاشة) مخطّط مُعدَّل بنسبة ⅔ (على اليمين)
test_ae_precapture_trigger
لاختبار جهاز حالة AE عند استخدام مشغِّل الالتقاط المسبق. تسجيل خمسة طلبات يدوية مع إيقاف ميزة "التصغير الذكي" يحتوي الطلب الأخير على عامل تشغيل لميزة "التقاط الصور الذكية" قبل التقاط الصور، والذي يجب تجاهله لأنّ ميزة "التقاط الصور الذكية" غير مفعّلة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
مقبول: يتقارب الإجراء الإحصائي.
test_auto_vs_manual
تبدو الاختبارات التي تم فيها التقاط لقطات تلقائية ولقطات يدوية متشابهة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
مقبول: يتم تسجيل مكاسب توازن اللون الأبيض اليدوي وعمليات التحويل في كل نتيجة لالتقاط الصور
مطابقةً لتوازن اللون الأبيض التلقائي estimate
من خوارزمية 3A في الكاميرا.
test_auto_vs_manual_auto.jpg
test_auto_vs_manual_wb.jpg
test_auto_vs_manual_manual_wb_tm.jpg
test_black_white
يختبر هذا الاختبار ما إذا كان الجهاز ينتج صورًا بالأبيض والأسود بالكامل. يتم التقاط صورتَين، الأولى بدرجة اكتساب منخفضة جدًا ووقت تعريض قصير، ما يؤدي إلى التقاط صورة سوداء، والثانية بدرجة اكتساب عالية جدًا ووقت تعريض طويل، ما يؤدي إلى التقاط صورة بيضاء.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
تمرير: لإنشاء صور بالأبيض والأسود تحتوي قنوات الصور البيضاء المشبعة على قيم RGB [255, 255, 255] مع هامش خطأ أقل من 1% .
test_black_white_black.jpg | test_black_white_white.jpg |
اختبار_أسود_أبيض_مخطط.png
اختبار_الالتقاط_المتسلسلة
للتحقّق من أنّ مسار المعالجة الكامل لالتقاط الصور يمكنه مواكبة سرعة التقاط الصور بالحجم الكامل ووقت استخدام وحدة المعالجة المركزية
واجهات برمجة التطبيقات التي تم اختبارها:
اجتياز: يتم التقاط سلسلة من الصور بالحجم الكامل والتحقق من انخفاض عدد اللقطات في الإطارات ومدى سطوع الصور.
test_burst_sameness_manual
يتم التقاط 5 صور متسلسلة من 50 صورة باستخدام إعداد الالتقاط اليدوي ويتحقق من تطابقها جميعًا. يمكن استخدام هذا الاختبار لتحديد ما إذا كانت هناك إطارات متقطعة تتم معالجتها بشكلٍ مختلف أو تحتوي على عناصر.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
مقبول: الصور متطابقة من حيث الشكل وقيم RGB.
تعذُّر: يعرض هذا الخيار ارتفاعًا أو انخفاضًا في الرسم البياني لمتوسّط RGB في بداية كل انفجار.
- مقدار التفاوت هو 3% لـ
first_API_level
أقل من 30 - يكون الحدّ المسموح به للخطأ% 2 عندما يكون
first_API_level
>= 30
test_burst_sameness_manual_mean.jpg
test_burst_sameness_manual_plot_means.png
test_capture_result
يختبر ما إذا كانت البيانات الصالحة تظهر في عناصر CaptureResult
. تتيح الالتقاط التلقائي
واليدوي والتلقائي.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Pass (اجتياز): تكون البيانات الوصفية صالحة لجميع اللقطات ولا تتسرّب الإعدادات اليدوية إلى عملية الالتقاط التلقائي الثانية. يعرض هذا الخيار تصحيح تشويش العدسة للصور التي تم التقاطها.
test_capture_result_plot_lsc_auto_ch0.png
test_crop_region_raw
لاختبار أنّه لا يمكن اقتصاص أحداث RAW
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureResult#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
اجتياز: يتم اقتصاص صور YUV في الوسط وليس على صور RAW.
test_crop_region_raw_comp_raw_crop.jpg
اختبار_اقتصاص_المنطقة_raw_comp_raw_full.jpg
اختبار_اقتصاص_المنطقة_raw_comp_yuv_crop.jpg
test_crop_region_raw_yuv_full.jpg
test_crop_regions
اختبارات تفيد بأنّ مناطق الاقتصاص تعمل تلتقط صورة كاملة وتُنشئ رقعًا من 5 مناطق مختلفة (الزوايا والوسط). التقاط صور تم ضبط الاقتصاص فيها للمناطق الخمس تقارن قيم الصورة المُقتطعة وصورة الإصلاح.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
مقبول: تتطابق صورة المنطقة التي تم اقتصاصها مع القسم الذي يتوافق مع الصورة المقتطعة.
test_dng_noise_model
للتحقّق من صحة مَعلمات نموذج DNG الخام يعرض الرسم البيانيvariabilitymeasured لجزء مركزي من البطاقة الرمادية في اللقطات الأوّلية التي تم التقاطها على مدار مجموعة من الحساسيات، ويقارن هذه القيم بالاختلاف المتوقع عند كل حساسية من خلال نموذج الضوضاء DNG في HAL للكاميرا (استنادًا إلى مَعلمتَي O وS اللتين يتم عرضهما في عناصر نتيجة الالتقاط). للاطّلاع على مزيد من التفاصيل حول نموذج الضوضاء في DNG، نزِّل المستند التالي حول نموذج الضوضاء في DNG.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILE
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
مقبول: تكون مَعلمات نموذج DNG الخام صحيحة. تتطابق قيم RGB المتوقّعة مع قيم RGB الفعلية التي تم قياسها.
test_dng_noise_model_plog.png
test_ev_compensation_advanced
يختبر هذا الاختبار تطبيق تعويض قيمة التعريض (EV). يزيد الاختبار سطوع الشاشة في ثماني خطوات، ويتحقّق من السطوع الذي تم قياسه مقارنةً بالسطوع المتوقع. يتم احتساب القيم المتوقّعة من سطوع الصورة بدون تطبيق تعويض EV ، وسيتم تشبع القيمة المتوقّعة إذا تجاوزت القيم المحسوبة نطاق قيمة الصورة الفعلية. يتعذّر الاختبار في حال عدم تطابق القيم المتوقعة والقيم التي تم قياسها أو في حال زيادة ظهور الصور في غضون خمس خطوات.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
مقبول: تعرض الصور زيادةً في الإضاءة بدون تعريضها بشكل مفرط خلال خمس خطوات.
test_ev_compensation_advanced_plot_means.png
test_ev_compensation_basic
اختبارات يتم فيها تطبيق التعويض عن المركبات الكهربائية باستخدام نطاق تم إنشاؤه باستخدام
CONTROL_AE_COMPENSATION_STEP
يتم التقاط ثمانية إطارات
لكل قيمة تعويض.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
android.hardware.camera2.CaptureResult#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
مقبول: يتم تسجيل زيادة في مستوى الإضاءة مع زيادة إعداد تعويض مستويات الإضاءة، وتكون قيم الإضاءة الثابتة في اللقطات الثمانية التي تم التقاطها لكل إعداد تعويض مستويات الإضاءة.
test_ev_compensation_basic.png
test_exposure_x_iso
اختبارات يتم من خلالها تحقيق تعريض ثابت مع اختلاف درجة ISO ووقت التعريض تلتقط
سلسلة من اللقطات التي تم اختيار درجة ISO ووقت التعريض فيها لموازنة بعضها البعض.
يجب أن تكون النتائج بنفس درجة السطوع، ولكن مع مرور الوقت، يجب أن
تزداد ضوضاء الصورة. للتحقّق من أنّ قيم متوسط وحدات البكسل في العيّنة قريبة من بعضها يضمن
أنّ الصور لا يتم حصرها بقيمة 0 أو 1 (ما يجعلها تبدو كخطوط
مستوية). يمكن أيضًا إجراء الاختبار باستخدام صور RAW من خلال ضبط العلامة debug
في
ملف الإعدادات.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
مقبول: تتمتع الصور بدرجة السطوع نفسها، ولكنّها تصبح أكثر تشويشًا عند استخدام قيمة ISO أعلى. تكون مستويات RGB مسطّحة عندما تكون قيمة ISO*exposure ثابتة على مستوى مساحة gain التي تم اختبارها.
آلية حدوث الخطأ:
- في
test_exposure_plot_means.png
، مع زيادة قيم مُضاعِف الكسب (المحور x)، تبدأ قيم متوسط مستوى تنسيق RGB (المحور y) المعدَّلة بالانحراف عن قيم مُضاعِف الكسب المنخفض.
test_exposure_plot_means.png
test_exposure_mult=1.00.jpg | test_exposure_mult=64.00.jpg |
test_jpeg
الاختبارات التي تم فيها تحويل صور YUV وصور JPEG على الجهاز تبدو متشابهة. يأخذ الاختبار% 10 من وسط الصورة ويحسب قيمة RGB، ويتحقّق من أنّها متطابقة.
واجهات برمجة التطبيقات التي تم اختبارها:
مقبول: إذا كان متوسّط الفرق في قيم RGB بين كل صورة أقل من %3
test_jpeg_fmt=jpg.jpg | test_jpeg=fmt=yuv.jpg |
test_latching
اختبارات تُثبت الإعدادات (مستوى الإضاءة والكسب) في الإطار الأيمن لكل من كاميرات FULL
و
LEVEL_3
التقاط سلسلة
من اللقطات باستخدام طلبات متتالية، مع تغيير مَعلمات طلب الالتقاط
بين اللقطات للتحقّق من أنّ الصور تتضمّن السمات المتوقّعة
واجهات برمجة التطبيقات التي تم اختبارها:
مقبول: الصور [2 و3 و6 و8 و10 و12 و13] لها قيمة ISO أو تعريض زائدة وتظهر
بقيم RGB أعلى في test_latching_plot_means.png
.
test_latching_i=00.jpg | test_latching_i=01.jpg | test_latching_i=02.jpg | |
test_latching_i=03.jpg | test_latching_i=04.jpg | test_latching_i=05.jpg | |
test_latching_i=06.jpg | test_latching_i=07.jpg | test_latching_i=08.jpg | |
test_latching_i=09.jpg | test_latching_i=10.jpg | test_latching_i=11.jpg | |
test_latching_i=12.jpg |
test_latching_plot_means.png
اختبار_الخطية
يختبر هذا الاختبار ما إذا كان يمكن عكس معالجة الجهاز إلى وحدات بكسل خطية. التقاط سلسلة من اللقطات مع توجيه الجهاز إلى هدف موحد
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCK
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
مقبول: يجب أن تزيد قيم R وG وB بشكل خطي مع زيادة الحساسية.
test_linearity_plot_means.png
test_locked_burst
لاختبار قفل 3A وصور متسلسلة YUV (باستخدام الإعداد التلقائي). تم تصميم هذا الاختبار لاجتيازه حتى على
أجهزة محدودة لا تتضمن MANUAL_SENSOR
أو PER_FRAME_CONTROLS
.
يتحقّق الاختبار من اتساق صورة YUV بينما يكون التحقّق من معدّل عرض اللقطات في CTS.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
مقبول: تبدو عمليات الالتقاط متسقة.
test_locked_burst_frame0.jpg
test_locked_burst_frame1.jpg
test_locked_burst_frame2.jpg
test_param_color_correction
يختبر هذا الإجراء تطبيق مَعلمات android.colorCorrection.*
عند ضبطها.
التقاط لقطات بقيم مختلفة للتحويل والتحسين، واختبار ما إذا كانت تبدو
مختلفة وفقًا لذلك يتم اختيار التحويل والتعزيزات لجعل الناتج
أحمر أو أزرق بشكل متزايد. تستخدم خريطة نغمة خطية. ربط الدرجات اللونية هو أسلوب
يُستخدَم في معالجة الصور لربط مجموعة من الألوان بمجموعة أخرى بهدف تقريب
مظهر الصور ذات النطاق العالي الديناميكية في وسيط يمتلك نطاقاً ديناميكيًا محدودًا بشكلٍ أكبر.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
Pass (اجتياز): تعزز قيم R وB وفقًا للتحويل.
test_param_color_correction_plot_means.png
*يمثّل محور x طلبات الالتقاط: 0 = الوحدة، 1=التعزيز الأحمر، 2= التعزيز الأزرق.
test_param_color_Debug_req=0.jpg
test_param_color_correctness_req=1.jpg (R boost)
test_param_color_ correct_req=2.jpg (تعزيز B)
test_param_flash_mode
يختبر تطبيق المَعلمة android.flash.mode
. يتم ضبط سطوع التصوير يدويًا على الجانب المظلم، بحيث يكون واضحًا ما إذا كان الفلاش قد تم تفعيله
أم لا، ويتم استخدام خريطة نغمات خطية. التحقّق من المركز باستخدام صورة المربّع لمعرفة
ما إذا كان هناك تدرج كبير تم إنشاؤه للتحقّق مما إذا كان الفلاش قد تم تفعيله
واجهات برمجة التطبيقات التي تم اختبارها:
مقبول: يتضمّن مركز صورة المربّع تدرجًا كبيرًا، ما يعني أنّه تم تفعيل فلاش الكاميرا.
test_param_flash_mode_1.jpg
test_param_flash_mode_1_privacy.jpg
test_param_flash_mode_2.jpg
test_param_flash_mode_2_tile.jpg
test_param_noise_reduction
يختبر هذا الإجراء تطبيق المَعلمة android.noiseReduction.mode
بشكلٍ صحيح
عند ضبطها. يتم التقاط الصور باستخدام إضاءة خافتة في الكاميرا. يتم استخدام تكبير تناظري مرتفع لضمان
أن تكون الصورة التي تم التقاطها مزعجة. يلتقط الجهاز ثلاث صور، واحدة بدون ميزة "تقليل الضوضاء" وأخرى "سريعة"
وأخرى "بجودة عالية". تلتقط هذه الطريقة أيضًا صورة بدرجة استفادة من الإضاءة منخفضة وميزة "تقليل الضوضاء" غير مفعّلة، وتستخدم اختلاف هذه الصورة كأساس. كلما ارتفعت نسبة الإشارة إلى الضوضاء، كانت جودة الصورة أفضل.
واجهات برمجة التطبيقات التي تم اختبارها:
مقبول: يختلف معدّل SNR حسب أوضاع تقليل الضوضاء المختلفة ويتصرف بالطريقة نفسها التي يتصرف بها الرسم البياني أدناه.
test_param_noise_reduction_plot_SNRs.png
0: إيقاف، 1: سريع، 2: عالي الجودة، 3: منخفض، 4: جودة منخفضة جدًا
test_param_noise_reduction_high_move_nr=0.jpg
test_param_noise_reduction_high_gain_nr=1.jpg
test_param_noise_reduction_high_gain_nr=2.jpg
test_param_noise_reduction_high_ ذكر_nr=3.jpg
test_param_noise_reduction_low_gain.jpg
test_param_shading_mode
يختبر تطبيق المَعلمة android.shading.mode
.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
مقبول: يتم تبديل أوضاع التظليل وتعديل خرائط تظليل العدسة على النحو المُتوقّع.
test_param_shading_mode_ls_maps_mode_0_loop_0.png
test_param_shading_mode_ls_maps_mode_1_loop_0.png
test_param_shading_mode_ls_maps_mode_2_loop_0.png
test_param_tonemap_mode
يختبر هذا الإجراء تطبيق المَعلمة android.tonemap.mode. تُطبِّق منحنيات مختلفة لوحة الألوان على كل قناة من قنوات R وG وB، وتتحقّق من تعديل الصور الناتجة على النحو المتوقّع. يتألف هذا الاختبار من اختبارَين، هما test1 وtest2.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_MODE
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_FAST
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
المرور:
- test1: تتضمن كلتا الصورتين خريطة تدرجات لونية خطية، لكنّ n=1 ذو تدرج أكثر انحدارًا. القناة G (الأخضر) أكثر سطوعًا للصورة n=1.
- test2: خريطة النغمة نفسها، ولكن الطول مختلف. الصور هي نفسها.
test_param_tonemap_mode_n=0.jpg | test_param_tonemap_mode_n=1.jpg |
test_post_raw_sensitivity_boost
التحقّق من زيادة حساسية ملفات RAW التقاط مجموعة من صور RAW وYUV بدرجة حساسية مختلفة، ونشر مجموعة من مجموعات تعزيز حساسية RAW والتحقّق مما إذا كان متوسط كثافة بكسل الإخراج يتطابق مع إعدادات الطلب
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
مقبول: تصبح الصور بتنسيق RAW أكثر قتامة مع زيادة التحسين، بينما تبقى صور YUV ثابتة في السطوع
test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg
test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg
test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_raw_plot_means.png
test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg
test_post_raw_sensitivity_boost_yuv_plot_means.png
test_raw_burst_sensitivity
تلتقط مجموعة من الصور الأولية مع زيادة المكاسب وتقيس الضوضاء. التقاط الصور بتنسيق RAW فقط في وضع "التقاط الصور المتتالية"
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
مقبول: كل لقطة أكثر تشويشًا من اللقطة السابقة، لأنّ الكسب يزداد.
تستخدِم التباين في خلية شبكة الإحصاءات المركزية.
test_raw_burst_sensitivity_variance.png
test_raw_exposure
يتم التقاط مجموعة من الصور الأولية مع زيادة وقت التعرض للضوء وقياس قيم البكسل.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
مقبول: يؤدي رفع قيمة ISO (الزيادة) إلى زيادة حساسية وحدات البكسل للضوء، وبالتالي يتم نقل الرسم البياني نحو اليسار.
test_raw_exposure_s=55.png
(100 تساوي 1 ملي ثانية، و101 تساوي 10 ملي ثانية، و10−1 تساوي 0.1 مللي ثانية)
test_raw_exposure_s=132.png
test_raw_exposure_s=209.png
test_raw_exposure_s=286.png
test_raw_exposure_s=363.png
test_raw_exposure_s=440.png
test_raw_sensitivity
تلتقط مجموعة من الصور الأولية بدرجات حساسية متزايدة وتقيس الضوضاء (التباين) في مركز 10% من الصورة. اختبارات تُظهر أنّ كل لقطة أكثر ضوضاء من اللقطة السابقة
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
اجتياز: يزداد التباين مع كل لقطة.
test_raw_sensitivity_variance.png
test_reprocess_noise_reduction
الاختبارات التي يتم تطبيق android.noiseReduction.mode
عليها لطلبات إعادة المعالجة
يتم التقاط الصور التي تمت إعادة معالجتها باستخدام إضاءة خافتة في الكاميرا. يستخدم هذا الوضع ميزة "التضخيم التناظري" بدرجة عالية
لضمان أن تكون الصورة المُلتقطة مشوشة. تلتقط هذه الميزة ثلاث صور تمت إعادة معالجتها، وهي "بدون خفض الضوضاء" و"بسرعة" و"بجودة عالية". تلتقط هذه الطريقة صورة تمت إعادة معالجتها بدرجة منخفضة من الكسب مع إيقاف ميزة
تقليل الضوضاء، وتستخدم التباين الناتج عن ذلك كأساس.
واجهات برمجة التطبيقات التي تم اختبارها:
تمرير: سريع >= غير مفعّل، عالي الجودة >= سريع، عالي الجودة >> غير مفعّل
رسم SNR العادي مقابل NR_mode
test_tonemap_sequence
يختبر تسلسل لقطات باستخدام منحنيات مختلفة لخريطة الدرجات اللونية. التقاط 3 لقطات يدوية باستخدام خريطة نغمة خطية. التقاط 3 لقطات يدوية باستخدام خريطة النغمة التلقائية احتساب الفرق بين كل زوج متتالٍ من اللقطات
واجهات برمجة التطبيقات التي تم اختبارها:
مقبول: هناك 3 لقطات متطابقة متبوعة بمجموعة مختلفة من 3 لقطات متطابقة.
test_tonemap_sequence_i=0.jpg
test_tonemap_Sequence_i=1.jpg
test_tonemap_Sequence_i=2.jpg
test_tonemap_sequence_i=3.jpg
test_tonemap_sequence_i=4.jpg
test_tonemap_sequence_i=5.jpg
test_yuv_jpeg_all
اختبارات لمعرفة ما إذا كانت جميع الأحجام والتنسيقات المسجّلة لالتقاط الصور تعمل يستخدم طلبًا يدويًا
مع خريطة نغمات خطية لكي يبدو تنسيقا YUV وJPEG متطابقَين عند
تحويلهما بواسطة وحدة image_processing_utils
. لا يتم حفظ الصور
تلقائيًا، ولكن يمكن حفظها من خلال تفعيل debug_mode
.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
مقبول: تبلغ قيمة RMS (متوسط جذر مربّع الإشارة) القصوى في جميع مراكز الصور اختلافًا في الصور المحوَّلة بتنسيق RGB بنسبة% 3 من صورة YUV ذات أعلى درجة دقة.
test_yuv_jpeg_all.png
test_yuv_plus_dng
اختبارات من عمل الأحجام والتنسيقات التي يتم الإبلاغ عنها لالتقاط الصور
واجهات برمجة التطبيقات التي تم اختبارها:
اجتياز: يؤدي الاختبار إلى إكمال الصور المطلوبة وعرضها.
test_yuv_plus_dng.jpg
test_yuv_plus_jpeg
اختبارات تلتقط إطارًا واحدًا كمخرجات YUV وJPEG يتم استخدام طلب يدوي
وخريطة ألوان خطية بحيث تظهر صور YUV وJPEG بالطريقة نفسها عند
تحويلها بواسطة وحدة image_processing_utils
.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
Pass (اجتياز): صور YUV وJPEG متشابهة، ولها اختلاف أقل من 1% RMS (قيمة الجذر التربيعي المتوسط لإشارة).
test_yuv_plus_jpg_jpg.jpg | test_yuv_plus_jpeg_yuv.jpg |
test_yuv_plus_raw
اختبارات لالتقاط إطار واحد كمخرجات RAW/RAW10/RAW12 وYUV في حال كانت
متوافقة يستخدم طلبًا يدوياً
مع خريطة درجات لونية خطية، لذا من المتوقّع أن يكون تنسيقا raw وYUV متطابقَين. تقارن
قيم RGB في مركز الصور التي تم تحويلها إلى نموذج RGB بنسبة% 10. السجلّاتandroid.shading.mode
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.hardware.graphics.ImageFormat#RAW10
android.hardware.graphics.ImageFormat#RAW12
مقبول: الصور بتنسيق YUV والصور الأولية متشابهة ويقلّ الفرق بينهما في RMS (قيمة الجذر المتوسط التربيعي للإشارة) عن% 3.5.
test_yuv_plus_raw_shading=1_raw.jpg | test_yuv_plus_raw_shading=1_yuv.jpg |
المشهد2_a
يحتوي المشهد2_a على ثلاثة وجوه بخلفية رمادية وملابس محايدة. يتم اختيار الوجوه للحصول على مجموعة واسعة من درجات لون البشرة. يجب أن يكون الرسم البياني في الوضع الصحيح لكي تعمل ميزة "التعرّف على الوجوه" على النحو الأمثل.
scene2_a
test_autoframing
يختبر سلوك وضع "التأطير التلقائي" في جهاز الكاميرا. ينفِّذ تكبيرًا كبيرًا لكي
لا تظهر أي من الوجوه في المشهد، ويفعِّل وضع "استخدام الإطارات التلقائية" من خلال
ضبط AUTOFRAMING
في CaptureRequest
على True
، ويتحقّق مما إذا كان بإمكانه رصد كل
الوجوه في المشهد الأصلي عند تقارب الحالة (أي
عند ضبط AUTOFRAMING_STATE
في CaptureResult
على
AUTOFRAMING_STATE_CONVERGED
).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
اجتياز: تم رصد الوجوه الثلاثة جميعها.
اختبار_display_p3
اختبارات
Display P3
الالتقاط بتنسيق JPEG باستخدام واجهة برمجة التطبيقات ColorSpaceProfiles
تحدِّد هذه السياسة أنّ ملف JPEG الذي تم التقاطه
يحتوي على ملف شخصي خاص بـ IC
في عنوانه، وأنّ الصورة تحتوي على ألوان خارج نطاق sRGB.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.params.ColorSpaceProfiles
android.hardware.camera2.params.SessionConfiguration#setColorSpace
مقبول: يحتوي ملف JPEG على ملف ICC Display P3 وألوان خارج نطاق sRGB.
test_effects
تلتقط هذه الوظيفة لقطة لتأثيرات الكاميرا المتوافقة وتتحقّق مما إذا تم إنشاؤها
بشكل صحيح. لا يتحقّق الاختبار إلا من التأثيرَين OFF
وMONO
، ولكنه يحفظ صورًا
لجميع التأثيرات المتوافقة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
تمرير: لالتقاط صورة المشهد باستخدام التأثيرات OFF
وصورة أحادية اللون
مع ضبط التأثيرات على MONO
.
تأثيرات_اختبار_MONO.jpg
test_format_combos
لاختبار مجموعات مختلفة من تنسيقات الإخراج
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
android.hardware.camera2.CameraCaptureSession#captureBurst()
تم بنجاح: تم تسجيل جميع التركيبات بنجاح.
اختبار_عدد_الوجوه
لاختبارات التعرّف على الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
اجتياز: يتم العثور على ثلاثة وجوه.
test_num_faces_fd_mode_1.jpg
test_reprocess_uv_swap
يُجري هذا الاختبار للتأكّد من أنّ إعادة معالجة YUV لا تؤدي إلى تبديل مساحتَي U وV. ويتم اكتشاف ذلك من خلال حساب مجموع الاختلافات المطلقة (SAD) بين الصورة التي تمت إعادة معالجتها والتقاطها الذي لم تتم إعادة معالجته. إذا أدّى تبديل مساحتَي الإخراج U وV للقطة التي تمت إعادة معالجتها إلى زيادة في قياس SAD، يُفترض أنّ مساحتَي الإخراج تحتويان على مساحتَي U وV الصحيحتَين.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraDevice#createCaptureSession
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
Pass: لا يمكن تبديل طائرتَي U وV.
test_reprocess_uv_swap.png
المشهد2_b
test_num_faces
يختبر ميزة التعرّف على الوجوه مع زيادة تنوع درجات لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
مقبول: يتم العثور على 3 وجوه.
test_num_faces_fd_mode_1.jpg
test_yuv_jpeg_capture_sameness
التقاط صورتَين باستخدام أكبر تنسيقَين شائعَين من YUV وJPEG بنسبة عرض إلى ارتفاع مماثلة لأكبر تنسيق JPEG، ودرجة دقة لا تتجاوز 1920 × 1440
ضبط jpeg.quality
على 100 وتسجيل طلب سطحَين تحوِّل كل من
الصورتَين إلى صفائف RGB وتحسب الفرق في متوسّط مربّع الجذر الثلاثي الأبعاد (RMS)
بين الصورتَين.
بالإضافة إلى ذلك، يتحقّق هذا الاختبار من أنّ نتائج YUV في جميع حالات استخدام البث المتوافقة تشبه إلى حدّ كبير نتائج YUV في حالة استخدام STILL_CAPTURE
.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
android.graphics.ImageFormat#JPEG
Pass (اجتياز): تختلف صور YUV وJPEG في حالة الاستخدام STILL_CAPTURE
عن 3% RMS (قيمة الجذر المتوسّط المربّع للإشارة)، بينما يكون اختلاف صور YUV لجميع حالات الاستخدام المتوافقة أقل من 10% عن صور YUV مع حالة الاستخدام STILL_CAPTURE
.
المشهد2_ج
اختبار_عدد_الوجوه
يختبر ميزة التعرّف على الوجوه مع زيادة تنوع درجات لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
مقبول: يتم العثور على 3 وجوه.
اختبار_عدد_الوجوه_fd_mode_1.jpg
اختبار_jpeg_capture_perf_class
لاختبار وقت استجابة التقاط JPEG لفئة الأداء S على النحو المحدّد في القسم 2.2.7.2 الكاميرا في CDD.
اجتياز: يجب أن يكون وقت استجابة التقاط الكاميرا 2 بتنسيق JPEG أقل من 1000 ملي ثانية عند دقة 1080p كما تم قياسه من خلال اختبار أداء الكاميرا في CTS في ظروف الإضاءة (3000K) لكلتا الكاميرتين الأساسيتين.
test_camera_launch_perf_class
لاختبار وقت استجابة تشغيل الكاميرا لفئة الأداء S على النحو المحدّد في القسم 2.2.7.2 الكاميرا في CDD.
اجتياز: يجب أن يكون وقت استجابة بدء تشغيل الكاميرا2 (فتح الكاميرا إلى أول إطار معاينة) أقل من 600 ملي ثانية كما تم قياسه من خلال اختبار أداء الكاميرا CTS في ظل ظروف الإضاءة ITS (3000 كلفن) لكلتا الكاميرتَين الأساسيتَين.
test_default_camera_hdr
اختبارات لضمان أنّ وضع الالتقاط التلقائي للكاميرا هو "دقة HDR فائقة" للأداء الفئة 15 على النحو المحدّد في الفقرة 2.2.7.2 الكاميرا في CDD
اجتياز: يجب أن تكون ميزة التقاط حزمة الكاميرا التلقائية هي ميزة "النطاق العالي الديناميكية الفائق" لجهاز ينتمي إلى فئة الأداء 15.
scene2_d
اختبار_عدد_الوجوه
يختبر ميزة التعرّف على الوجوه مع زيادة تنوع درجات لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
مقبول: يتم العثور على 3 وجوه.
scene2_e
test_continuous_picture
يتم التقاط 50 لقطة بدقة VGA باستخدام الإعداد الأول لطلب الالتقاط
android.control.afMode = 4 (CONTINUOUS_PICTURE).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureResult#CONTROL_AF_STATE
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
مقبول: يستقر نظام 3A بحلول نهاية عملية التقاط 50 لقطة.
اختبار_عدد_الوجوه
يختبر ميزة التعرّف على الوجوه مع زيادة تنوع درجات لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
مقبول: يتم العثور على 3 وجوه.
scene2_f
يتضمّن المشهد scene2_f ثلاثة وجوه على خلفية بيضاء وملابس بيضاء. أن تتضمّن الوجوه مجموعة كبيرة من درجات لون البشرة وأن يكون هناك تباين عالٍ بينها وبين الخلفية
scene2_f
اختبار_عدد_الوجوه
يختبر ميزة التعرّف على الوجوه مع زيادة تنوع درجات لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
مقبول: يتم العثور على 3 وجوه.
test_num_faces_fd_mode_1.jpg
scene3
يستخدم Scene3 مخطط ISO12233، وتستخدم معظم الاختبارات طريقة استخراج المخطط للعثور على المخطط في المشهد. لهذا السبب، لا تحتوي معظم الصور المحفوظة على حدود مثل الصور الخاصة بالمشهد 1 أو 2 أو 4، بل تحتوي على الرسم البياني فقط. يجب أن يكون الرسم البياني بالاتجاه الصحيح لكي يعمل أداة البحث عن الرسم البياني على النحو الأمثل.
test_edge_enhancement
لاختبارات تطبيق مَعلمة android.edge.mode
بشكلٍ صحيح تلتقط هذه الوظيفة
الصور التي لا تتم إعادة معالجتها لكل وضع من أوضاع الحواف، وتُظهر حدة
الصورة الناتجة والبيانات الوصفية لنتيجة الالتقاط. يعالج طلب الالتقاط من خلال وضع الحافة والحساسية ووقت التعرض للضوء ومسافة التركيز ومعلمة سطح الإخراج.
مقبول: وضع HQ
(2) أكثر حدة من وضع OFF
(0). وضع FAST
(1) أكثر حدة
من وضع OFF
أن يكون وضع HQ
أكثر حدة أو يساوي وضع FAST
واجهات برمجة التطبيقات التي تم اختبارها:
مَعلمات الكاميرا المتأثّرة:
EDGE_MODE
test_edge_enhancement_edge=0.jpg
test_edge_enhancement_edge=1.jpg (الوضع السريع)
test_edge_enhancement_edge=2.jpg (وضع الجودة العالية)
test_flip_mirror
يختبر هذا الاختبار ما إذا كانت الصورة موجَّهة بشكل صحيح وفقًا للفقرة 7.5.2 من مستند CDD حول الكاميرا الأمامية [C-1-5].
يمكن التعرّف على الصور المنعكسة أو المقلّبة أو المُدرَجة من خلال علامة الماسة بالقرب من المركز.
مقبول: لم يتم قلب الصورة أو عكسها أو تدويرها.
test_flip_mirror_scene_patch.jpg
test_imu_drift
يختبر هذا الاختبار ما إذا كانت وحدة القياس بالقصور الذاتي (IMU) تُصدر بيانات ثابتة لمدة 30 ثانية عندما يكون الجهاز ثابتًا ويتم تسجيل معاينة بدقة عالية.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_GYROSCOPE
android.hardware.Sensor#TYPE_ROTATION_VECTOR
البطاقة:
- يكون انحراف أداة الاستشعار الدورانية أقل من 0.01 راديان خلال وقت الاختبار.
- يجب أن يكون التباين في قراءة أداة الاستشعار الدوراني أقل من 1E-7 rad2/s2/Hz خلال وقت الاختبار.
- يكون انحراف متّجه الدوران أقل من 0.01 راديان خلال وقت الاختبار.
- (لم يتم فرض هذا الشرط بعد) يجب أن يكون انحراف أداة الاستشعار الدورانية أقل من درجة واحدة في الثانية.
test_imu_drift_gyro_drift.png
test_imu_drift_rotation_vector_drift.png
اختبار_أفقي_إلى_عمودي
يختبر ما إذا كانت ميزة إلغاء الوضع الأفقي/العمودي تعمل بشكل صحيح في أجهزة الاستشعار المخصّصة للوضع الأفقي.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
android.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATION
android.hardware.camera2.CameraCharacteristics#getCameraCharacteristics
اجتياز: يمكن للاختبار تحديد موقع رسم بياني بالاتجاه المتوقّع (0 درجة عندما يكون إيقاف الوضع الأفقي إلى الوضع العمودي غير مفعّل، و90 درجة عندما يكون مفعّلاً).
test_landscape_to_portrait.png
test_lens_movement_reporting
لاختبار ما إذا كان يتم الإبلاغ عن علامة حركة العدسة بشكل صحيح لالتقاط سلسلة من 24 صورة، يتم التقاط أول 12 لقطة على مسافة التركيز المثلى (كما حدّدها الجيل الثالث من تكنولوجيا الذكاء الاصطناعي) وآخر 12 لقطة على مسافة التركيز الدنيا. في غضون الإطار 12، تتحرّك العدسة مما يؤدي إلى انخفاض الحدة. وتستقر الحدة في النهاية عندما تتحرّك عدسة التصوير إلى الموضع النهائي. يجب تحديد علامة حركة العدسة في جميع اللقطات التي تكون فيها الحدة متوسطة إلى حادة في اللقطات القليلة الأولى التي تكون فيها العدسة ثابتة عند أقرب مسافة تركيز، و اللقطات القليلة الأخيرة التي تكون فيها العدسة ثابتة عند أبعد مسافة تركيز. لا يهمّ الإطار المحدّد الذي تتحرّك فيه العدسة، ما يتم التحقّق منه هو تأكيد علامة الحركة عندما تتحرّك العدسة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#LENS_STATE
android.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
اجتياز: تبلغ درجة دقة علامة حركة "عدسة Google" True
في الإطار مع تغيير في الحدة.
آليات حدوث الأعطال:
- لا يتمّ تأكيد
lens_moving: True
(android.hardware.camera2.CaptureResult#LENS_STATE
= 1) فيtest_log.DEBUG
إلا في اللقطات التي لا تتغيّر فيها درجة الحدّة. - إنّ اللقطات التي تحتوي على
lens_moving: False
(android.hardware.camera2.CaptureResult#LENS_STATE
= 0) فيtest_log.DEBUG
تختلف في درجة الحدة مقارنةً باللقطات القليلة الأولى عند المسافة البؤرية المثلى أو اللقطات القليلة الأخيرة عند الحد الأدنى لشدَّة التركيز.
test_reprocess_edge_enhancement
يختبر ما إذا كانت طرق إعادة المعالجة المتوافقة لتحسين الحواف تعمل بشكلٍ سليم. تعالج هذه الوظيفة طلب الالتقاط باستخدام وضع محدّد لإعادة معالجة الحواف، وتقارن بين مختلف أوضاع الالتقاط مع إيقاف أوضاع إعادة معالجة الحواف.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
اجتياز: تكون درجة الدقة في أوضاع الحافة المختلفة صحيحة. الصورة HQ
(الوضع 2)
أكثر وضوحًا من الصورة OFF
(الوضع 0)، والتحسين بين الأوضاع المختلفة مشابه.
test_reprocess_edge_enhancement_plot.png
scene4
يتألّف المشهد 4 من دائرة سوداء على خلفية بيضاء داخل مربّع.
يمكن أن تكون الاختبارات في المشهد 4 حسّاسة للّحافة، لذا بدءًا من الإصدار 15، يمكنك استخدام check_alignment.py
في دليل
tools لتفعيل التحقّق من محاذاة DUT والرسم البياني.
المشهد 4
test_30_60fps_preview_fov_match
اختبارات تعرض فيديوهات المعاينة ذاتها التي يبلغ عددها 30 و60 لقطة في الثانية يُسجِّل الاختبار فيديوهَين، أحدهما بمعدّل 30 لقطة في الثانية والآخر بمعدّل 60 لقطة في الثانية. يتم اختيار إطار تمثيلي من كل فيديو وتحليله للتأكّد من أنّه تقع تغييرات مجال الرؤية في الفيديوَين ضمن المواصفات. اختبارات للتأكّد من أنّ تناسب قياس الدائرة يظل ثابتًا وأنّ مركز الدائرة يظل ثابتًا وأنّ نصف قطر الدائرة يظل ثابتًا
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
مقبول: لا يتم تمديد الصور، ولا يختلف مركز الصور عن بعضها بأكثر من %3، ولا يزيد الحد الأقصى لتغيير نسبة العرض إلى الارتفاع بين الفيديوهات التي يتم عرضها بمعدّل 30 أو 60 لقطة في الثانية عن 7.5%.
آليات عدم التعذُّر:
- يختلف حجم الدائرة في الفيديو الذي تم تسجيله بمعدّل 30 لقطة في الثانية عن حجم الدائرة في الفيديو الذي تم تسجيله بمعدّل 60 لقطة في الثانية.
- تم تشويه الدائرة في الصورة التي تم التقاطها من خلال مسار المعالجة.
- تم اقتصاص الدائرة في الصورة التي تم التقاطها بسبب نسبة عرض إلى ارتفاع مفرطة طلب الالتقاط الذي يقلّل من ارتفاع الصورة أو عرضها.
- تحتوي الدائرة في الصورة التي تم التقاطها على انعكاس في وسطها ولا تبدو مليئة بالكامل.
test_aspect_ratio_and_crop
يُجري هذا الفحص اختبارًا لمعرفة ما إذا كانت الصور مشوّهة أو تم اقتصاصها بشكل غير متوقّع في مسار الصور. التقاط صور لدائرة على جميع التنسيقات التحقّق من أنّ الدائرة ليست مشوّهة، وأنّ الدائرة لا تتحرّك من وسط الصورة، وأنّ الدائرة لا تغيّر حجمها بشكل غير صحيح مع نسب عرض إلى ارتفاع أو درجات دقة مختلفة
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
اجتياز: لا يتم تمديد الصور، ولا يختلف مركز الصور بنسبة تزيد عن 3%، ويتم الاحتفاظ بأقصى قدر ممكن من المساحة (مجال الرؤية).
آليات عدم التعذُّر:
- الكاميرا غير محاذية للدائرة المعروضة على الجهاز اللوحي في منتصف المشهد الذي تم التقاطه.
- تم تشويه الدائرة في الصورة التي تم التقاطها من خلال مسار المعالجة.
- يتم اقتصاص الصورة ذات الدقة المنخفضة مرتين في مسار معالجة الصور، ما يؤدي إلى اختلاف زاوية الرؤية بين الصور العالية الدقة والمنخفضة الدقة.
- تم اقتصاص الدائرة في الصورة التي تم التقاطها بسبب نسبة عرض إلى ارتفاع مفرطة طلب الالتقاط الذي يقلّل من ارتفاع الصورة أو عرضها.
- تحتوي الدائرة في الصورة الملتقطة على انعكاس في المنتصف ولا تظهر مملوءة بالكامل.
test_multi_camera_alignment
لاختبار معلمات معايرة الكاميرا ذات الصلة بتحديد موضع الكاميرا في أنظمة الكاميرات المتعددة. باستخدام الكاميرات الفرعية المتعدّدة، يتم التقاط صورة باستخدام إحدى الكاميرات. يحدِّد مركز الدائرة. تعرِض هذه السمة مركز الدائرة على إحداثيات الكرة الأرضية لكل كاميرا. تقارن هذه السمة الفرق بين مراكز دوائر الكاميرات في إحداثيات العالم. تتم إعادة إسقاط الإحداثيات المتعلّقة بالكرة الأرضية مجددًا إلى إحداثيات البكسل، ويتم المقارنة مع الإحداثيات الأصلية كإجراء للتحقّق من صحة البيانات. تقارن أحجام الدوائر للتحقّق مما إذا كانت أطوال التركيز للكاميرات مختلفة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraCharacteristics#LENS_DISTORTION
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATION
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
اجتياز: تكون مراكز الدائرة وأحجامها كما هو متوقع في الصور المعروضة مقارنة بالصور التي تم التقاطها باستخدام بيانات معايرة الكاميرا والأطوال البؤرية.
آليات عدم التعذُّر:
LENS_INTRINSIC_CALIBRATION
أوLENS_POSE_TRANSLATION
أوLENS_POSE_ROTATION
هي قيم التصميم وليست بيانات المعايرة الفعلية.- نظام الكاميرا غير مناسب لإعداد الاختبار. على سبيل المثال، اختبار نظام كاميرا عريضة ونطاق رؤية فائقة العرض باستخدام منصة اختبار RFoV لمعرفة مزيد من المعلومات، يُرجى الاطّلاع على الأسئلة الشائعة حول الكاميرا المضمَّنة في علبة الهاتف1.
test_preview_aspect_ratio_and_crop
على غرار اختبار test_aspect_ratio_and_crop للقطات الثابتة، يتحقّق هذا الاختبار من تنسيقات المعاينة المتوافقة للتأكّد من عدم تمديد إطارات المعاينة أو اقتصاصها بشكل غير ملائم. التحقق من أن نسبة العرض إلى الارتفاع للدائرة لا تتغير، وتحافظ الصور التي تم اقتصاصها على الدائرة في وسط الإطار، ولا يتغير حجم الدائرة للحصول على تنسيق ثابت أو مع درجات دقة مختلفة (التحقق من مجال الرؤية).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
مقبول: لا يتم تمديد الصور، ولا يختلف مركز الصور عن بعضها بأكثر من 3%، ويتم الحفاظ على أكبر مجال ممكن للرؤية.
test_preview_stabilization_fov
التحقّق من أحجام المعاينة المتوافقة لضمان اقتصاص مجال الرؤية بشكل مناسب
يلتقط الاختبار فيديوهَين، أحدهما يتضمّن تثبيت المعاينة ON
والآخر
بتثبيت المعاينة OFF
. يتم اختيار لقطة تمثيلية من كل
فيديو، ويتم تحليلها للتأكّد من أنّ التغييرات في مجال الرؤية في الفيديوَين ضمن
المواصفات.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
مقبول: تظل نسبة العرض إلى الارتفاع للدائرة ثابتة تقريبًا، ويظل موقع قلب الدائرة ثابتًا، ولا يتغيّر حجم الدائرة بأكثر من %20.
test_video_aspect_ratio_and_crop
التقاط فيديوهات لدائرة داخل مربّع على جميع تنسيقات الفيديو استخراج اللقطات الرئيسية والتأكّد من عدم تغيُّر نسبة العرض إلى الارتفاع للدائرة، تحافظ الصور المقتطعة على وضع الدائرة في المنتصف، ولا يتغيّر حجم الدائرة لتنسيق ثابت أو بدرجة دقة مختلفة (التحقّق من مجال الرؤية)
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
مقبول: لا يتم تمديد إطارات الفيديو، ولا يختلف مركز الإطارات عن أكثر من %3، ويتم الحفاظ على أكبر مجال ممكن للرؤية.
scene5
يتطلّب المشهد 5 مشهدًا رماديًا مضاءً بشكلٍ موحّد. ويتم ذلك عن طريق فوّته
يوضع على عدسة الكاميرا ننصحك باستخدام الناشر التالي:
www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168
.
لإعداد المشهد، يمكنك تثبيت موزع إضاءة أمام الكاميرا وتوجيه الكاميرا إلى مصدر إضاءة بمستوى 2000 لوكس تقريبًا. يجب أن تكون الصور التي تم التقاطها للمشهد 5 مُضاءة بشكلٍ منتشر بدون أي ميزات واضحة. في ما يلي نموذج لصورة:
لقطة المشهد 5
test_lens_shading_and_color_uniformity
يختبر هذا الاختبار ما إذا كان يتم تطبيق تصحيح تظليل العدسة بشكل مناسب، وما إذا كان يتم توزيع لون المشهد الأحادي اللون بالتساوي. يُجري هذا الاختبار على لقطة YUV باستخدام ميزة "التثبيت والالتقاط والتعرّف التلقائي". يتم تقييم تظليل العدسة استنادًا إلى قناة y. يقيس متوسط قيمة y لكل مجموعة عينة محددة، ويحدد اجتياز أو إخفاق من خلال المقارنة مع قيمة المركز y. يتم تقييم اختبار توحيد الألوان في مساحة r/g وb/g.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
اجتياز: يجب أن يكون التباين في قيمة r/g وb/g أقل من% 20 عند نصف القطر المحدّد للصورة لاجتياز الاختبار.
المشهد 6
المشهد 6 هو شبكة من الدوائر الصغيرة مع مربّع في زاوية واحدة للإشارة إلى
الاتجاه. تكون الدوائر الصغيرة مطلوبة لاختبار وظيفة التكبير/التصغير على نطاقٍ
كبير.
قد تكون الاختبارات في المشهد 6 حسّاسة للمحاذاة، لذا يمكنك استخدام check_alignment.py
في دليل الأدوات بدءًا من الرقم 15، لتفعيل التحقّق من DUT ومحاذاة الرسم البياني.
scene6
test_in_sensor_zoom
لاختبار سلوك ميزة التكبير/التصغير في الكاميرا ضمن المستشعر، وينتج عنها صور RAW تم اقتصاصها.
عند ضبط حالة استخدام البث على
CROPPED_RAW
،
يُجري الاختبار عمليتَي التقاط على نطاق التكبير/التصغير، وهما صورة RAW لمجال رؤية كامل (FoV)
وصورة RAW تم اقتصاصها. يحوّل الاختبار الصور إلى صفائف RGB ويقلّل حجم الصورة الأصلية التي تم اقتصاصها بالكامل إلى الحجم الذي يُبلغ عنه
SCALER_RAW_CROP_REGION
، ويحسب الفرق بين الصورتين باستخدام متوسّط الجذر التربيعي (RMS) في 3D.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
اجتياز: الفرق بين متوسط الجذر التربيعي للجذر الثلاثي الأبعاد (RMS) بين صورة RAWS التي تم اقتصاصها وصورة RAW الكاملة التي تم اقتصاصها أقلّ من الحدّ المعيّن في الاختبار.
اختبار_التكبير/التصغير
لاختبار سلوك التكبير/التصغير في الكاميرا يتم التقاط الصور على نطاق التكبير والتصغير والتحقّق مما إذا كانت الدوائر تكبر عندما تكبِّر الكاميرا. لكل تنسيق (YUV وJPEG)، يتم استخدام جلسة الالتقاط نفسها للكاميرا لتجميع 3A وإجراء عمليات الالتقاط.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
مقبول: يكون الحجم النسبي للدائرة التي تم التقاطها دقيقًا مقارنةً بنسبة التكبير/التصغير المطلوبة لضمان تكبير الكاميرا بشكل صحيح.
test_zoom للعثور على محيط الدائرة الأقرب إلى المركز
اختبار_وقت_تكبير_منخفض
يختبر سلوك التكبير/التصغير بوقت استجابة منخفض في الكاميرا. التقاط صور في نطاق التكبير
باستخدام android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM)
والتحقّق مما إذا كانت الدوائر في الصور الناتجة تتطابق مع نسب التكبير في البيانات الوصفية
للتقاط يتم استخدام جلسة الالتقاط نفسها للكاميرا لتوحيد 3A و
التقاط الصور.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDES
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
مقبول: يكون الحجم النسبي للدائرة التي تم التقاطها دقيقًا مقارنةً بنِسب التكبير والتصغير والبيانات الوصفية للنتيجة.
test_preview_video_zoom_match
لاختبار أنه أثناء التسجيل والتكبير/التصغير، يتم عرض معاينة الفيديو وإخراج الفيديو وتسجيل نفس الإخراج. لحساب حجم الدائرة الأقرب إلى المركز بنسب تكبير/تصغير مختلفة والتحقق مما إذا كان حجم الدائرة يزداد مع زيادة نسبة التكبير/التصغير.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
مقبول: يكون حجم الدائرة المُسجَّلة نسبيًا دقيقًا مقارنةً بنسبة التكبير/التصغير المطلوبة في الفيديو والمعاينة.
VGA_640x480_key_frame.png (قبل التكبير)
preview_640x480_key_frame.png (قبل التكبير)
VGA_640x480_key_frame.png (بعد التكبير)
preview_640x480_key_frame.png (بعد التكبير)
test_preview_zoom
يُجري هذا الاختبار للتأكّد من أنّ نسبة التكبير/التصغير لكل إطار معاينة تتطابق مع البيانات الوصفية لالتقاط اللقطة المقابلة. يأخذ الاختبار لقطات معاينة على نطاق التكبير ويجد محيط الدائرة الأقرب إلى المركز. يتحقق الاختبار بعد ذلك من أن الدائرة المحددة أصبحت أكبر وأن مركز الدائرة ينتقل بعيدًا عن مركز الصورة أثناء تكبير الكاميرا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
مقبول: يكون الحجم النسبي للدائرة المحدّدة دقيقًا بالنسبة إلى نسبة التكبير المسجّلة لنتيجة الالتقاط المقابلة لجميع ملفّات preview العرض. المسافة النسبية للدائرة المحددة من وسط الصورة دقيقة لنسبة التكبير/التصغير التي تم الإبلاغ عنها لنتيجة الالتقاط المقابلة لجميع إطارات المعاينة.
صور test_preview_zoom تعرض الدائرة المحددة الأقرب إلى المركز
test_session_characteristics_zoom
يختبر نطاق نسبة التكبير/التصغير لجميع إعدادات الجلسات المتوافقة المُدرَجة في
CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
.
في كلّ من هذه الإعدادات، إذا كانت قيمة
CameraDeviceSetup#isSessionConfigurationSupported
تشير إلى "صحيح"، يتحقق الاختبار من إمكانية الوصول إلى نطاق نسبة التكبير/التصغير المعروض في
CameraDeviceSetup#getSessionCharacteristics
.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#getSessionCharacteristics
اجتياز: يمكن الوصول إلى الحد الأدنى والحد الأقصى لنسبة التكبير/التصغير لكل SessionConfiguration
متوافقة مُدرَجة في CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
.
scene7
المشهد 7 هو إطار مستطيل مقسم إلى أربعة أرباع متساوية، تم ملء كل منها بلون مختلف. في منتصف المستطيل، يظهر رسم بياني للجانب المائل لفحص الحدة. تتم محاذاة أربع علامات ArUco مع الزوايا الخارجية الأربع للمستطيل للمساعدة في الحصول على إحداثيات دقيقة لإطار المستطيل الرئيسي بنسب تكبير متفاوتة.
المشهد 7
test_multi_camera_switch
يتحقق هذا الاختبار من أنّه أثناء تسجيل المعاينة بنسب تكبير مختلفة، يؤدي التبديل بين عدسة العرض الفائق العرض (UW) والعدسة الواسعة (W) إلى قيم مشابهة لقيم RGB.
يستخدم الاختبار نسب تكبير/تصغير مختلفة ضمن النطاق المحدّد مسبقًا لإجراء تسجيل معاينة ديناميكية وتحديد النقطة التي تتغير عندها الكاميرا الفعلية. تشير هذه النقطة إلى نقطة التداخل بين عدسة UW وعدسة W.
يتم تحليل اللقطات التي تم التقاطها عند نقطة التداخل وقبلها لتحديد مستوى الإضاءة التلقائي (AE) وموازنة اللون الأبيض التلقائية (AWB) والتركيز التلقائي (AF).
يضمن التحقّق من "التثبيت التلقائي للصورة" أنّ تغيير مستوى الإضاءة ضمن النطاق المتوقّع لكلٍّ من صور عدسة "العرض الفائق العرض" و"العرض العادي". يتحقّق فحص AWB من أنّ نِسب R/G وB/G هي ضمن قيم حدّية لكل من صور عدسة UW وW. يُقيّم التحقّق من ضبط تركيز الصورة قيمة التقدير الحدّة استنادًا إلى متوسّط حجم التدرّج بين صور عدسة الالتقاط الفائق العرض وعدسة الالتقاط العريض.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.media.CamcorderProfile
android.media.MediaRecorder
اجتياز: لاجتياز الاختبار، يجب اجتياز عمليات التحقّق من AE وAWB وAF. في ما يلي معايير كل عملية تحقّق:
- التحقّق من التعريض التلقائي: يجب أن يكون تغيير درجة النصوع بين الصور الملتقطة بعدسة UW والعدسة الواسعة أقل من 0.5%.
- فحص AWB: يجب أن يكون الفرق بين قيم R/G وB/G للصورتين UW وW العدسة أقل من 0.5%.
- فحص التركيز التلقائي: يجب أن يكون التغيير في حدة الصورة بين صورتي UW وW العدسة أقل من 2%.
scene8
"المشهد 8" هو إطار مستطيل مقسم إلى أربع مناطق متساوية، يحتوي كل منها على صورة عمودية تم التقاطها بمستوى تعريض مختلف أو تم تطبيق ظل مختلف عليها (ظل أزرق، مستوى تعريض أعلى، مستوى تعريض أقل، ظل أصفر). تتم محاذاة أربعة علامات ArUco مع الزوايا الخارجية الأربعة للمستطيل للحصول على إحداثيات دقيقة لإطار المستطيل الرئيسي.
scene8
test_ae_awb_regions
يختبر هذا الاختبار اختلاف قيم RGB ودرجة النصوع عند معاينة التسجيل في مناطق مختلفة لإعدادات التعريض التلقائي (AE) وموازنة اللون الأبيض التلقائية (AWB).
يسجِّل الاختبار تسجيلًا لمعاينة مدته ثماني ثوانٍ، مع إجراء قياس مزدوج لمستوى الإضاءة (AE) ودرجة حرارة اللون (AWB) في كلّ من الأرباع لمدة ثانيتين لكلّ منها. بعد ذلك، يستخرج الاختبار إطارًا من تسجيل المعاينة لكل منطقة، ويستخدم الإطارات المستخرَجة لإجراء عمليات التحقّق التالية من ميزة "التثبيت التلقائي للصورة" وميزة "توازن اللون الأبيض التلقائي":
- التحقّق من ميزة "التثبيت التلقائي للصورة": للتحقّق من أنّ اللقطة التي تقيس الإضاءة في المنطقة التي تم فيها تقليل كثافة الإضاءة تحتوي على قيمة سطوع أعلى من 1% مقارنةً باللقطة التي تقيس الإضاءة في المنطقة التي تم فيها زيادة كثافة الإضاءة. يؤكد ذلك أن الصور تصبح ساطعة عند قياس منطقة مظلمة.
- التحقّق من توازن اللون الأبيض التلقائي: للتحقّق من أنّ نسبة اللون الأحمر إلى اللون الأزرق (من متوسط قيم RGB للصورة) في اللقطة التي تحتوي على منطقة قياس اللون الأزرق أعلى من 2% مقارنةً باللقطة التي تحتوي على منطقة قياس اللون الأصفر. يتحقق هذا من أنّ الصور تحتوي على قيمة RGB متوازنة عند قياس منطقة صفراء (دافئة) أو زرقاء (باردة).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AE
android.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AWB
اجتياز: اجتياز عمليات التحقّق من AE وAWB
scene9
يتألف المشهد 9 من آلاف الدوائر ذات الأحجام والألوان العشوائية لإنشاء مشهد بمعدل تكرار منخفض جدًا لاختبار خوارزميات ضغط JPEG.
scene9
test_jpeg_high_entropy
يختبر هذا الاختبار عمل ضغط JPEG للكاميرا في المشهد 9 مع محتوى عالي التشويش وعامل جودة JPEG مضبوطًا على 100%. يتم زيادة عامل التكبير لضمان أن يملأ المشهد المعروض على الجهاز اللوحي مجال رؤية الكاميرا.
واجهات برمجة التطبيقات التي تم اختبارها:
اجتياز: تم ضغط ملف JPEG بشكل صحيح وكتابته وقراءته من القرص.
test_jpeg_quality
لاختبار جودة ضغط JPEG في الكاميرا انتقِل إلى مختلف جودة ملفات JPEG من خلال
android.jpeg.quality
وتأكَّد من أنّ جداول الترميز تتغيّر
بشكل صحيح.
واجهات برمجة التطبيقات التي تم اختبارها:
مقبول: تنخفض مصفوفة الترميز مع زيادة الجودة. (تمثل المصفوفة عامل القسمة.)
متوسطات مصفوفة DQT للّون الأسود/الأبيض/اللون في الكاميرا الخلفية لهاتف Pixel 4 مقارنةً بجودة JPEG
مثال على اختبار تعذّر إكماله
يُرجى العلم أنّه بالنسبة إلى الصور ذات الجودة المنخفضة جدًا (jpeg.quality < 50)، لا يحدث أي زيادة في الضغط في مصفوفة الترميز.
scene_video
المشهد scene_video
هو مشهد فيديو. ويتكون من أربع دوائر ملونة مختلفة تتحرك ذهابًا وإيابًا بمعدلات إطارات مختلفة على خلفية بيضاء.
scene_video
test_preview_frame_drop
يختبر هذا الاختبار الحفاظ على معدّل عرض اللقطات المطلوب في المعاينة مع مشهد ديناميكي. يتم إجراء هذا الاختبار على جميع الكاميرات التي يمكن للتطبيقات التابعة لجهات خارجية الوصول إليها.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
اجتياز: يصل عدد اللقطات في الثانية إلى أقصى نطاق مسموح به لعدد اللقطات في الثانية، ومتوسط الاختلاف بين اللقطات المتتالية أقل من مقدار التفاوت النسبي الذي تم تحديده في الاختبار.
scene_extensions
اختبارات scene_extensions
مخصّصة لإضافات الكاميرا ويجب استخدام
Camera ITS-in-a-Box،
لأنّها تتطلّب التحكّم الدقيق في بيئة الاختبار. بالإضافة إلى ذلك،
يجب التحكّم في جميع عمليات تسرُّب الضوء. قد يتطلّب ذلك تغطية منصة الاختبار
والجهاز الذي يتم اختباره والجهاز اللوحي بقطعة قماش، بالإضافة إلى إزالة تسرُّب الضوء من
الشاشة الأمامية للجهاز الذي يتم اختباره.
مشهد عالي الدقة
يتكوّن مشهد scene_hdr
من صورة عمودية على اليسار ورمز استجابة سريعة
منخفض التباين على اليمين.
scene_hdr
test_hdr_extension
اختبار إضافة النطاق العالي الديناميكية (HDR) يتم التقاط الصور مع تفعيل الإضافة أو بدون تفعيلها، والتحقّق مما إذا كانت الإضافة تجعل رمز الاستجابة السريعة أكثر رصدًا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
اجتياز: تقلّل إضافة النطاق العالي الديناميكية (HDR) من عدد تغييرات التباين المطلوبة للتعرّف على رمز الاستجابة السريعة أو تقلِّل التدرج في الرمز.
scene_low_light
يتألّف مشهد scene_low_light
من شبكة من المربّعات بدرجات مختلفة من
الرمادي على خلفية سوداء، وتكون شبكة المربّعات محاطة بخطٍ
أحمر. يتم ترتيب المربّعات في اتجاه منحنى هيلبرت.
scene_low_light
test_night_extension
اختبار إضافة "الإضاءة الليلية" تلتقط المقاطع عندما تكون الإضافة مفعّلة، وتعمل على تنفيذ ما يلي:
- رصد وجود 20 مربّعًا
- احتساب مستوى النصوع المحاط بكل مربّع
- احتساب متوسط قيمة الإضاءة في أول 6 مربّعات وفقًا لاتجاه شبكة منحنى هيلبرت
- تُحتسب هذه السمة الفرق في قيمة المقياس اللوني للّون الأبيض/الأسود للمربّعات المتتالية (على سبيل المثال، المربّع 2 - المربّع 1) حتى المربّعَين 5 و6 (المربّع 6 - المربّع 5)، وتجد متوسط الفروق الخمسة المحسوبة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
اجتياز: يجب أن يكون متوسط قيمة luma للمربعات الستة الأولى 85 على الأقل، ومتوسط الفرق في قيمة luma للمربعات المتتالية يصل إلى المربعات 5 و6 يجب أن يكون 17 على الأقل.
يوضّح الرسم البياني التالي للسطوع شكل نتيجة الاختبار التي تجتاز الفحص.
test_low_light_boost_extension
لاختبار وضع AE في تعزيز الإضاءة المنخفضة إذا كانت الكاميرا 2 تتوافق مع وضع AE مع تحسين الإضاءة المنخفضة، سيتم إجراء هذا الاختبار مع الكاميرا2. إذا كانت إضافة "الوضع الليلي" متوافقة مع الكاميرا وكانت الإضافة تتوافق مع وضع التعرّض التلقائي "تحسين الإضاءة المنخفضة"، يتم أيضًا إجراء هذا الاختبار لإضافة "الوضع الليلي" في الكاميرا. يضبط هذا الاختبار وضع "التثبيت التلقائي للصورة" على ميزة "تحسين الإضاءة المنخفضة"، ويأخذ لقطة من المعاينة، وينفّذ ما يلي:
- رصد وجود 20 مربّعًا
- احتساب مستوى الإضاءة المحصور في كل مربّع
- احتساب متوسط قيمة الإضاءة في أول 6 مربّعات وفقًا لاتجاه شبكة منحنى هيلبرت
- تُحتسب هذه السمة الفرق في قيمة المقياس اللوني للّون الأبيض/الأسود للمربّعات المتتالية (على سبيل المثال، المربّع 2 - المربّع 1) حتى المربّعَين 5 و6 (المربّع 6 - المربّع 5)، وتجد متوسط الفروق الخمسة المحسوبة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
مقبول: يجب أن يكون متوسّط قيمة الملوّنة للصفوف الستة الأولى 70 على الأقل، ومتوسّط الفرق في قيمة الملوّنة للصفوف المتتالية حتى الصفين 5 و6 يجب أن يكون 17 على الأقل.
فلاش_مشهد
تتطلّب اختبارات scene_flash
مشهدًا مظلمًا في مربّع دمج البيانات من المستشعرات.
اختبار_الفلاش_التلقائي
يختبر هذا الاختبار تفعيل الفلاش التلقائي في بيئة مظلمة للكاميرات الأمامية والخلفية. في الكاميرات الأمامية، يستخدم الفلاش التلقائي الشاشة لمحاولة إضاءة المشهد، وليس وحدة فلاش خارجية. يتحقّق الاختبار من أنّه يتم تفعيل ميزة الوميض التلقائي من خلال التحقّق من أنّ مركز صورة المربّع يصبح أكثر إشراقًا عند تفعيل ميزة الوميض التلقائي. لتشغيل الفلاش التلقائي، يجب إطفاء المصابيح في منصة الاختبار. ويمكن إطفاء المصابيح تلقائيًا باستخدام وحدة تحكّم Arduino. يجب أن يكون المشهد مظلمًا تمامًا لكي يعمل الاختبار بشكل صحيح. يجب تثبيت تطبيق Jetpack Camera (JCA) على الجهاز قبل الاختبار. يعتمد الفلاش التلقائي للكاميرات المُوجَّهة للخلف على حالة "ضبط الإضاءة التلقائي" (AE) لتفعيله، ولكن الفلاش التلقائي للكاميرات المُوجَّهة للخلف لا يعتمد على "ضبط الإضاءة التلقائي" ويتم تفعيله دائمًا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureRequest#FLASH_MODE
مقبول: يكون مركز صورة المربّع مع تفعيل الفلاش التلقائي أكثر إشراقًا مقارنةً بصورة المشهد الأصلية في جميع الكاميرات.
test_flash_strength
يختبر هذا الاختبار ما إذا كان يتم تنفيذ التحكّم في قوة الفلاش في وضع
SINGLE
بشكل صحيح.
للتحقق من أنّه إذا كان الجهاز يتيح التحكم في قوة الفلاش أثناء استخدام الكاميرا
في وضع SINGLE
، ستتغير قوة الفلاش بمستويات القوة المطلوبة
المختلفة. التحقّق من أنّ عنصر التحكّم في قوة الفلاش يعمل مع سمات
AE_MODES
مختلفة
على سبيل المثال، إذا كان وضع التعريض التلقائي هو ON
أو OFF
، سيؤثّر مستوى شدة فلاش الكامير
في السطوع، وإذا كان الوضع هو ON_AUTO_FLASH
، لن يؤثّر مستوى شدة فلاش الكامير
في السطوع.
لإجراء الاختبار، يجب إطفاء الأضواء في منصة الاختبار.
يمكن إطفاء الأضواء تلقائيًا باستخدام وحدة التحكّم Arduino.
يجب أن يكون المشهد مظلمًا تمامًا لكي يعمل الاختبار بشكل صحيح.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_MAX_LEVEL
المرور:
عندما يكون وضع التعريض التلقائي هو ON
أو OFF
، يزداد سطوع <2fr>أجزاء الصورة مع زيادة مستوى قوة الفلاش من عدم استخدام الفلاش إلى
FLASH_SINGLE_STRENGTH_MAX_LEVEL
.
عندما يكون وضع التعرض التلقائي للضوء ON_AUTO_FLASH
، يكون الفرق في سطوع رموز تصحيح الصور ضمن مقدار تفاوت معيَّن نظرًا لزيادة مستوى قوة الفلاش من
"بلا فلاش" إلى "FLASH_SINGLE_STRENGTH_MAX_LEVEL
".
test_led_snapshot
اختبارات للتأكّد من أنّ لقطات الإضاءة الملوّنة لا تُشبع الصورة أو تُضفي عليها لونًا
يضيف هذا الاختبار وحدة تحكّم في الإضاءة إلى صندوق دمج البيانات من أجهزة الاستشعار للتحكّم في المصابيح. عندما تكون الأضواء مضاءة على OFF
، يُجري الاختبار عملية التقاط مع
ضبط وضع AUTO_FLASH
على ON
. أثناء عملية الالتقاط هذه، يُجري الاختبار تسلسلاً
للتقاط الصور قبل التقاطها مع ضبط عامل التفعيل aePrecapture
على START
، ويضبط
نية الالتقاط على Preview
لإجراء عملية الالتقاط باستخدام الفلاش.
بما أنّ اللقطة تحتوي على نقطة ساخنة مميزة بسبب الفلاش، يحسب الاختبار متوسط صورة الفلاش للّقطة بأكملها ويتحقّق مما إذا كانت القيمة ضمن النطاق (68، 102). للتحقّق مما إذا كانت الصورة متوازنة بيضاويًا بشكل معقول، يحسب الاختبار نسبة R/G ونسبة B/G ويتحقّق مما إذا كانت النسبتَان ضمن النطاق 0.95 و1.05.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#FLASH_MODE
مقبول: تتراوح نسبة R/G ونسبة B/G بين 0.95 و1.05. يكون متوسّط ملف flash image ضمن النطاق (68، 102).
test_preview_min_frame_rate
يختبر هذا الاختبار ما إذا كان عدد اللقطات في الثانية للمعاينة ينخفض بشكل صحيح في المشهد المظلم. لكي يعمل هذا الاختبار بشكلٍ صحيح، يجب أن يوقِف المشغِّل المصابيح في منصة الاختبار باستخدام وحدة التحكّم أو يوقِفها يدويًا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
مقبول: يكون معدّل عرض اللقطات في المعاينة هو الحدّ الأدنى لنطاق معدّل عرض اللقطات المطلوب، ويكون اختلاف اللقطات أقل من الحدّ المسموح به المطلق الذي تم ضبطه في الاختبار.
اختبار_قوة_المصباح
يختبر هذا الاختبار ما إذا كان يتم تنفيذ التحكّم في قوة الفلاش في وضع
TORCH
بشكل صحيح.
التحقّق من أنّه إذا كان الجهاز يتيح التحكّم في قوة الفلاش أثناء استخدام الكاميرا
في وضع TORCH
، تتغيّر قوة المصباح اليدوي مع مستويات القوة المطلوبة المختلفة
التحقّق من أنّ ميزة التحكّم في قوة الفلاش تعمل مع
AE_MODES
مختلفة
على سبيل المثال، إذا كان وضع التعريض التلقائي هو ON
أو OFF
، سيؤثّر مستوى شدة فلاش الكامير
في السطوع، وإذا كان الوضع هو ON_AUTO_FLASH
، لن يؤثّر مستوى شدة فلاش الكامير
في السطوع.
للتحقّق من أنّ قوة ضوء المصباح تظلّ كما هي طوال مدة استخدام وضع
"التصوير المتسلسل"، ما يحاكي جلسة تصوير فيديو. لإجراء الاختبار، يجب إطفاء الأضواء في
منصة الاختبار. ويمكن إطفاء الأضواء تلقائيًا باستخدام
وحدة التحكّم في Arduino. يجب أن يكون المشهد مظلمًا تمامًا لكي يعمل الاختبار
بشكل صحيح.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_MAX_LEVEL
المرور:
عندما يكون وضع التعرض التلقائي للضوء ON
أو OFF
، يزداد سطوع بقع الصور المتسلسلة مع زيادة مستوى قوة الفلاش من بدون فلاش إلى FLASH_TORCH_STRENGTH_MAX_LEVEL
.
عندما يكون وضع "التعرض التلقائي للضوء" ON_AUTO_FLASH
، يكون الفرق في درجة سطوع بقع الصور المتسلسلة ضمن مقدار التقبّل
مع زيادة مستوى قوة الفلاش من "بلا فلاش" إلى
FLASH_TORCH_STRENGTH_MAX_LEVEL
.
sensor_fusion
تتطلّب اختبارات دمج البيانات من أجهزة الاستشعار تحريك الهاتف بطريقة معيّنة أمام نمط اشتهرت به لعبة الشطرنج
وعلامات ArUco. للحصول على أفضل النتائج، تأكَّد من تثبيت رسم بياني الاختبار بشكل مسطّح. تؤثر الرسوم البيانية غير المستوية في عمليات احتساب التناوب في العديد من
الاختبارات. يجب أن يملأ الرسم البياني الجزء الخلفي من علبة الدمج مع أداة الاستشعار من خلال الطباعة على
دقة 17×17 بوصة (43×43 سم). يمكن إجراء اختبارات sensor_fusion
آليًا باستخدام
Sensor Fusion Box.
رسم بياني لدمج بيانات أجهزة الاستشعار
رسم بياني لدمج بيانات المستشعرات يملأ الجزء الخلفي من مربّع دمج بيانات المستشعرات
test_lens_intrinsic_calibration
اختبارات تُظهر التغيُّرات الأساسية في المركز البصري للعدسة عند تحريك العدسة بسبب ميزة "التثبيت البصري للصور" (OIS) إذا كانت عيّنات العدسة الأساسية متوفرة، يتم اختبار ما إذا كان المركز البصري لعينات العدسة الأساسية يتغيّر عند تحرّك العدسة بسبب ميزة "التثبيت البصري للصور" (OIS).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
مقبول: يتغيّر المركز البصري للعدسة بشكل أساسي ببكسل واحد أو أكثر. إذا كانت عيّنات العدسة الأساسية متاحة، يتغيّر مركزا العدسة البصريان بوحدة بكسل واحدة أو أكثر.
مثال على مخطّط test_lens_intrinsic_calibration
يعرض تغييرات النقاط
الرئيسية بالبكسل لكل إطار
اختبار_مزامنة_الكاميرات_متعددة
اختبارات تُثبت أنّ الطوابع الزمنية للإطارات التي تم التقاطها بواسطة الكاميرا المنطقية تقع ضمن 10 مللي ثانية من خلال محاسبة زوايا المربعات ضمن لوحة الشطرنج لتحديد الطابع الزمني
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
مرّة: لا تتغيّر الزاوية بين الصور في كل كاميرا بشكل ملحوظ أثناء تدوير الهاتف.
test_preview_distortion
يختبر هذا الاختبار تصحيح التشوه في كل إطار معاينة يتم التقاطه عند مستويات تكبير مختلفة. بالنسبة إلى كل إطار معاينة، يحسب الاختبار النقاط المثالية استنادًا إلى العناصر الداخلية والخارجية للكاميرا. في مثال الصورة، تظهر النقاط المثالية باللون الأخضر، والنقاط الفعلية باللون الأحمر. يتم احتساب خطأ التشويه استنادًا إلى جذر متوسط الخطأ التربيعي (RMS) لمسافة البكسل بين النقاط الحالية والنقاط المثالية. يتم استخدام التمييزات الخضراء والحمراء على الصورة للاكتشاف المرئي لمنطقة خطأ التشويه.
صورة لوحة شطرنج تظهر فيها النقاط المثالية باللون الأخضر والنقاط الفعلية باللون الأحمر
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.media.CamcorderProfile
android.media.MediaRecorder
مقبول: يكون خطأ التشويه المعدَّل لكل إطار معاينة أقل من الحدّ الأدنى الذي تم ضبطه في الاختبار.
test_preview_stabilization
اختبارات تُظهر أنّ الفيديو الذي تم تحسينه في المعاينة يدور بدرجة أقل من الدوران في أداة الاستشعار الدوراني
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
مقبول: إذا كان الحد الأقصى لتدوير الزاوية على مدار اللقطات أقل من% 70 من دوران أداة التسوية
في ما يلي أمثلة على فيديوهات تم تحسينها باستخدام ميزة "التثبيت" وأخرى بدونها.
فيديو نموذجي بميزة التثبيت
فيديو نموذجي بدون تثبيت
اختبار_جهاز_المستشعر
يختبر هذا الاختبار الفرق في الطابع الزمني بين الكاميرا وجهاز الاستشعار الدوراني لتطبيقات الواقع المعزّز
والواقع الافتراضي. يتم تدوير الهاتف 90 درجة 10 مرات أمام
نمط لوحة الشطرنج. تستغرق الحركة ذهاباً وإيابًا حوالي ثانيتين. يتم تخطّي
هذا الاختبار في حال عدم تضمين أداة جيروسكوب أو إذا لم تكن مَعلمة مصدر الطابع الزمني
REALTIME
مفعّلة.
يُنشئ اختبار test_sensor_fusion
عددًا من المخططات. أهم مخططين لتصحيح الأخطاء هما:
test_sensor_fusion_gyro_events
: تعرِض هذه البطاقة أحداث الجيروسكوب للهاتف أثناء الاختبار. تشير الحركة في الاتجاهَين x وy إلى أنّ الهاتف ليس مُثبَّتًا بأمان على لوحة التثبيت، ما يقلل من احتمال اجتياز الاختبار. يعتمد عدد الدورات في الرسم البياني على سرعة الكتابة لحفظ اللقطات.test_sensor_fusion_gyro_events
test_sensor_fusion_plot_rotations
: تعرِض هذه البطاقة محاذاة الجيروسكوب وأحداث الكاميرا. يجب أن يُظهر هذا المخطط حركة متطابقة بين الكاميرا والجيروسكوب بنسبة +/-1 ملي ثانية.test_sensor_fusion_plot_rotations
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#LENS_FACING
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
مقبول: يجب أن يكون الفارق الزمني بين الطوابع الزمنية للكاميرا والجيروسكوب أقل من 1 ملي ثانية وفقًا لالقسم 7.3.9 من مستند CDD الخاص بأجهزة الاستشعار العالية الدقة [C-2-14].
آليات حدوث الأخطاء:
- خطأ في الإزاحة: لم تتم معايرة إزاحة الجيروسكوب بشكل صحيح في غضون +/-1 ملي ثانية.
- انخفاض عدد اللقطات: لا تكون عملية النقل سريعة بما يكفي لالتقاط 200 لقطة بشكل متتالٍ.
- أخطاء في المقبس: يتعذّر على
adb
الاتصال بوحدة DUT بشكلٍ موثوق به لمدة كافية لإجراء الاختبار. - الرسم البياني غير مثبَّت بشكلٍ مستوٍ. يحتوي الرسم البياني
test_sensor_fusion_plot_rotations
على لقطات يختلف فيها دوران الجيروسكوب والكاميرا بشكل كبير أثناء دوران الكاميرا في أجزاء الرسم البياني غير المستوية. - الكاميرا غير مثبَّتة بشكل مستوٍ. يُظهر المخطط
test_sensor_fusion_gyro_events
الحركة على مستوى المستويين X وY. ويحدث هذا الخطأ بشكل أكبر في الكاميرات الأمامية، لأنّ الكاميرا الخلفية غالبًا ما تتضمّن اصطدامًا مرتفعًا ببقية هيكل الهاتف، ما يؤدي إلى إمالة الجهاز عند تثبيت الجزء الخلفي من الهاتف على لوحة التثبيت.
test_video_stabilization
الاختبارات التي تثبت استقرار الفيديو، عدد حلقات أقل من الجيروسكوب.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
مقبول: الحد الأقصى لدوران الزاوية على مدار اللقطات أقل من% 60 من دوران أداة التسوية.
في ما يلي أمثلة على فيديوهات تم تحسينها باستخدام ميزة "التثبيت" وأخرى بدونها.
فيديو نموذجي بميزة التثبيت
عيّنة فيديو بدون تثبيت
مجموعة_الميزات
تتحقّق اختبارات feature_combination
من عمل الميزات بشكلٍ صحيح عند تفعيل ميزات متعددة للكاميرا في الوقت نفسه. تستخدِم هذه الاختبارات ملف صورة لوحة الشطرنج نفسه المستخدَم في مشهد دمج بيانات المستشعرات.
test_feature_combination
اختبار جميع تركيبات البث المختلفة، وثبات الاطِّلاع ، ونطاق عدد اللقطات في الثانية المستهدَف، وفيديو 10 بت بنطاق عالي الديناميكية، ودقة HDR الفائقة التي تتوافق مع جهاز الكاميرا يستهلك هذا الاختبار ذاكرة بشكل كبير، لذا ننصح باستخدام مضيف مزوّد بذاكرة وصول عشوائي سعتها 128 غيغابايت على الأقل.
بالنسبة إلى الإصدار 15 من نظام التشغيل Android والإصدارات الأحدث، يتضمّن ملف الإعداد حقل log_feature_combo_support
، والذي يتم ضبطه تلقائيًا على False
. عند ضبط الحقل
log_feature_combo_support
على True
، يُجري الاختبار جميع
تركيبات الميزات المتوافقة، ويُسجّل النتائج في ملف proto
بدون أن يؤدي ذلك إلى تعذُّر اجتياز الاختبار. لاختبار الامتثال، يجب ضبط
الحقل log_feature_combo_support
على False
.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
اجتياز: لكل مجموعة ميزات متوافقة:
- يتم تحسين جودة البث في المعاينة إذا كانت ميزة "تحسين جودة المعاينة" مفعّلة.
- يتراوح معدل عرض اللقطات في المعاينة ضمن
AE_TARGET_FPS_RANGE
الذي تم ضبطه. - تطابق مساحة اللون في بث المعاينة المسجّل المساحة التي تم ضبطها.
- تحتوي عملية التقاط صورة HDR فائقة على خريطة اكتساب صالحة.