تقدّم هذه الصفحة قائمة شاملة بالاختبارات ضمن اختبارات كاميرا مجموعة اختبارات الصور (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 أي معلومات محدّدة عن المشهد. ومع ذلك، يجب أن يكون الهاتف ثابتًا لاختبار أداة التسوية الذاتية والاهتزاز.
test_jitter
يقيس هذا المقياس الارتعاش في الطوابع الزمنية للكاميرا.
واجهات برمجة التطبيقات التي تم اختبارها:
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
مقبول: تظهر أنماط الاختبار الصلبة المتوافقة باللون الصحيح، وهناك اختلاف منخفض في الصورة.
test_test_pattern
يختبر المَعلمة 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
test_tonemap_curve
يختبر هذا الاختبار تحويل نمط الاختبار من RAW إلى YUV باستخدام خريطة نغمات خطية. يتطلب هذا الاختبار استخدام android.sensor.testPatternMode = 2
(COLOR_BARS) لإنشاء نمط مصوّر مثالي لتحويل مخطّط الألوان. التأكّد من أنّ مسار المعالجة يتضمّن نواتج ألوان مناسبة
مع خريطة درجات لونية خطية وإدخال صورة مثالي (يعتمد على test_test_patterns
)
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
مقبول: يبدو تنسيق YUV وتنسيق RAW متشابهَين.
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. إذا تم اختبار كاميرا RFoV في جهاز اختبار WFoV، يتم تكبير الرسم البياني بمقدار ⅔ لضمان بعض الحدود للرسم البياني الرمادي في مجال الرؤية للمساعدة في تقارب 3A. للحصول على وصف أكثر تفصيلاً لأجهزة اختبار الكاميرا، يُرجى الاطّلاع على Camera ITS-in-a-box.
المشهد 1: رسم بياني بالحجم الكامل (على يمين الشاشة) مخطّط مُعدَّل بنسبة ⅔ (على اليمين)
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 |
test_black_white_plot_means.png
test_burst_capture
للتحقّق من أنّ مسار المعالجة الكامل لالتقاط الصور يمكنه مواكبة سرعة التقاط الصور بالحجم الكامل ووقت استخدام وحدة المعالجة المركزية
واجهات برمجة التطبيقات التي تم اختبارها:
مقبول: يتم التقاط سلسلة من الصور بالحجم الكامل، والتحقّق من معدّل تقطُّع اللقطات ودرجة سطوع الصورة.
test_burst_sameness_manual
التقاط 5 دفعات من 50 صورة باستخدام إعدادات الالتقاط اليدوي والتحقّق من أنّها كلها متطابقة يمكن استخدام هذا الاختبار لتحديد ما إذا كانت هناك لقطات متقطعة تتم معالجتها بشكل مختلف أو تحتوي على عيوب.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
مقبول: الصور متطابقة من حيث الشكل وقيم RGB.
تعذُّر: تعرِض هذه الحالة ارتفاعًا أو انخفاضًا في الرسم البياني لمتوسّط بيانات 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
مقبول: البيانات الوصفية صالحة لجميع عمليات الالتقاط ولا تتسرّب الإعدادات اليدوية إلى عملية الالتقاط التلقائية الثانية. يعرض هذا الخيار تصحيح تشويش العدسة للصور التي تم التقاطها.
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
test_crop_region_raw_comp_raw_full.jpg
test_crop_region_raw_comp_yuv_crop.jpg
test_crop_region_raw_yuv_full.jpg
test_crop_regions
اختبارات تفيد بأنّ مناطق الاقتصاص تعمل تلتقط صورة كاملة وتُنشئ رقعًا من 5 مناطق مختلفة (الزوايا والوسط). التقاط صور تم ضبطها للاقتصاص في 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
test_linearity
يختبر هذا الاختبار ما إذا كان يمكن عكس معالجة الجهاز إلى وحدات بكسل خطية. لالتقاط تسلسل من اللقطات مع توجيه الجهاز إلى هدف موحّد.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCK
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
مقبول: يجب أن تزيد قيم R وG وB بشكل خطي مع زيادة الحساسية.
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
المرور: يتم تعزيز قيم R وB وفقًا للتحويل.
test_param_color_correction_plot_means.png
*يمثّل محور x طلبات الالتقاط: 0 = الوحدة، 1=التعزيز الأحمر، 2= التعزيز الأزرق.
test_param_color_correction_req=0.jpg
test_param_color_correctness_req=1.jpg (R boost)
test_param_color_correction_req=2.jpg (B boost)
test_param_flash_mode
يختبر تطبيق المَعلمة android.flash.mode
. ضبط سطوع التصوير يدويًا على الجانب المظلم، لكي يكون واضحًا ما إذا كان الفلاش قد تم تفعيله
أم لا، واستخدام خريطة نغمات خطية التحقّق من المركز باستخدام صورة المربّع لمعرفة
ما إذا كان هناك تدرج كبير تم إنشاؤه للتحقّق مما إذا كان الفلاش قد تم تشغيله
واجهات برمجة التطبيقات التي تم اختبارها:
مقبول: يتضمّن مركز صورة المربّع تدرجًا كبيرًا، ما يعني أنّه تم تفعيل فلاش الكاميرا.
test_param_flash_mode_1.jpg
test_param_flash_mode_1_tile.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_gain_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_gain_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: تحتوي كلتا الصورتَين على خريطة نغمات خطية، ولكن الصورة رقم 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
(10⁰ هي 1 ملي ثانية، و10¹ هي 10 ملي ثانية، و10⁻¹ هي 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
عليها لطلبات إعادة المعالجة
التقاط صور تمت إعادة معالجتها عندما تكون الكاميرا مضاءة بشكل خافت يستخدم هذا الوضع ميزة "التضخيم التناظري" بدرجة عالية
لضمان أن تكون الصورة المُلتقطة مشوشة. تلتقط هذه الميزة ثلاث صور تمت إعادة معالجتها، وهي "بدون معالجة الضوضاء" و"سريع" و"جودة عالية". تلتقط هذه الطريقة صورة تمت إعادة معالجتها بدرجة منخفضة من الكسب مع إيقاف ميزة
تقليل الضوضاء، وتستخدم التباين الناتج عن ذلك كأساس.
واجهات برمجة التطبيقات التي تم اختبارها:
النتيجة: FAST >= OFF، HQ >= FAST، HQ >> OFF
الرسم البياني النموذجي لنسبة 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
مقبول: تتشابه صور 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 |
scene2_a
تحتوي scene2_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
مقبول: تم رصد الوجوه الثلاثة.
test_display_p3
اختبارات
Display P3
الالتقاط بتنسيق JPEG باستخدام واجهة برمجة التطبيقات ColorSpaceProfiles
يُجري هذا الاختبار للتأكّد من أنّ ملف JPEG الذي تم التقاطه يحتوي على ملف ICC مناسب في العنوان وأنّ الصورة تحتوي على ألوان خارج نطاق sRGB.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.params.ColorSpaceProfiles
android.hardware.camera2.params.SessionConfiguration#setColorSpace
مقبول: يحتوي ملف JPEG على ملف ICC Display P3 وألوان خارج نطاق sRGB.
test_effects
تلتقط هذه الوظيفة لقطة لتأثيرات الكاميرا المتوافقة وتتحقّق مما إذا تم إنشاؤها
بشكل صحيح. لا يتحقّق الاختبار إلا من التأثيرَين OFF
وMONO
، ولكنه يحفظ الصور
لجميع التأثيرات المتوافقة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
تمرير: لالتقاط صورة المشهد مع التأثيرات OFF
وصورة أحادية اللون
مع ضبط التأثيرات على MONO
.
test_effects_MONO.jpg
test_format_combos
اختبار مجموعات مختلفة من تنسيقات الإخراج
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
android.hardware.camera2.CameraCaptureSession#captureBurst()
تم بنجاح: تم تسجيل جميع التركيبات بنجاح.
test_num_faces
اختبار ميزة "التعرّف على الوجوه"
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
اجتياز: يتم العثور على ثلاثة وجوه.
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
مقبول: لم يتم تبديل مستوىَي U وV.
test_reprocess_uv_swap.png
scene2_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
مقبول: تختلف صور YUV وJPEG الخاصة بحالة الاستخدام STILL_CAPTURE
بنسبة أقل من
3% من RMS (قيمة الجذر المتوسط للمربّع لإشارة). تختلف صور YUV لجميع
حالات الاستخدام المتوافقة بنسبة أقل من 10% من RMS مقارنةً بصور YUV الخاصة بحالة الاستخدام STILL_CAPTURE
.
scene2_c
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_jpeg_capture_perf_class
يختبر هذا الاختبار وقت استجابة التقاط الصور بتنسيق JPEG لفئة الأداء S كما هو محدّد في القسم 2.2.7.2 الكاميرا في مستند CDD.
اجتياز: يجب أن يكون وقت استجابة التقاط الكاميرا 2 بتنسيق JPEG أقل من 1000 ملي ثانية عند دقة 1080p كما تم قياسه من خلال اختبار أداء الكاميرا CTS في ظروف الإضاءة ITS (3000K) لكلتا الكاميرتين الأساسيتين.
test_camera_launch_perf_class
يختبر هذا الاختبار وقت الاستجابة لتشغيل الكاميرا لفئة الأداء S كما هو محدّد في الفقرة 2.2.7.2 الكاميرا في مستند CDD.
اجتياز: يجب أن يكون وقت استجابة بدء تشغيل الكاميرا2 (فتح الكاميرا إلى أول إطار معاينة) أقل من 600 ملي ثانية كما تم قياسه من خلال اختبار أداء الكاميرا في CTS في ظل ظروف الإضاءة ITS (3000K) لكلتا الكاميرتَين الأساسيتَين.
test_default_camera_hdr
اختبارات لضمان أنّ ميزة الالتقاط التلقائية للكاميرا هي دقة HDR فائقة للأداء الفئة 15 على النحو المحدّد في الفقرة 2.2.7.2 الكاميرا في CDD
اجتياز: يجب أن تكون ميزة التقاط حزمة الكاميرا التلقائية هي ميزة "النطاق العالي الديناميكية الفائق" لجهاز ينتمي إلى فئة الأداء 15.
scene2_d
test_num_faces
يختبر ميزة التعرّف على الوجوه مع زيادة تنوع درجات لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
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 لقطة.
test_num_faces
يختبر ميزة التعرّف على الوجوه مع زيادة تنوع درجات لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
مقبول: يتم العثور على 3 وجوه.
scene2_f
يتضمّن المشهد scene2_f ثلاثة وجوه على خلفية بيضاء وملابس بيضاء. أن تتضمّن الوجوه مجموعة كبيرة من درجات لون البشرة وأن يكون هناك تباين عالٍ بينها وبين الخلفية
scene2_f
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
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
test_landscape_to_portrait
يختبر ما إذا كانت ميزة إلغاء الوضع الأفقي/العمودي تعمل بشكل صحيح في أجهزة الاستشعار المخصّصة للوضع الأفقي.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
android.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATION
android.hardware.camera2.CameraCharacteristics#getCameraCharacteristics
اجتياز: يمكن للاختبار تحديد موقع رسم بياني بالاتجاه المتوقّع (0 درجة عندما يكون إيقاف وضع "عمودي" بدلاً من "أفقي" مفعَّلاً، و90 درجة عندما يكون مفعَّلاً).
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
مقبول: علامة حركة العدسة هي 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 والرسم البياني.
scene4
test_30_60fps_preview_fov_match
اختبارات للتأكّد من أنّ معاينة الفيديوهات بمعدلَي عرض 30 و60 لقطة في الثانية تتضمّن مجال العرض نفسه يُسجِّل الاختبار فيديوهَين، أحدهما بمعدّل 30 لقطة في الثانية والآخر بمعدّل 60 لقطة في الثانية. يتم اختيار إطار تمثيلي من كل فيديو وتحليله للتأكّد من أنّه تقع تغييرات مجال الرؤية في الفيديوَين ضمن المواصفات. اختبارات للتأكّد من أنّ تناسب قياس الدائرة يظل ثابتًا ومن أنّ مركز الدائرة يظل ثابتًا ومن أنّ نصف قطر الدائرة يظل ثابتًا
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
مقبول: لا يتم تمديد الصور، ولا يختلف مركز الصور عن بعضها بأكثر من %3، ولا يزيد الحد الأقصى لتغيير نسبة العرض إلى الارتفاع بين الفيديوهات التي تبلغ معدلها 30 لقطة في الثانية وتلك التي تبلغ معدلها 60 لقطة في الثانية عن %7.5.
آليات حدوث الأعطال:
- يختلف حجم الدائرة في الفيديو الذي تم تسجيله بمعدّل 30 لقطة في الثانية عن حجم الدائرة في الفيديو الذي تم تسجيله بمعدّل 60 لقطة في الثانية.
- تم تشويه الدائرة في الصورة التي تم التقاطها من خلال مسار المعالجة.
- تم اقتصاص الدائرة في الصورة التي تم التقاطها بسبب نسبة عرض إلى ارتفاع مفرطة طلب الالتقاط الذي يقلّل من ارتفاع الصورة أو عرضها.
- تحتوي الدائرة في الصورة التي تم التقاطها على انعكاس في وسطها ولا تبدو مليئة بالكامل.
test_aspect_ratio_and_crop
يختبر هذا الإجراء ما إذا كانت الصور مشوّهة أو تم اقتصاصها بشكل غير متوقّع في مسار الصور. التقاط صور لدائرة على جميع التنسيقات التحقّق من أنّ الدائرة ليست مشوَّهة، وأنّها لا تتحرّك من وسط الصورة، وأنّها لا تغيّر حجمها بشكل غير صحيح مع نسب عرض إلى ارتفاع أو درجات دقة مختلفة
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
مقبول: لا يتم تمديد الصور، ولا يختلف مركز الصور عن بعضها بأكثر من %3، ويتم الحفاظ على أكبر مجال ممكن للرؤية.
آليات حدوث الأعطال:
- الكاميرا غير محاذية للدائرة المعروضة على الجهاز اللوحي في منتصف المشهد الذي تم التقاطه.
- تم تشويه الدائرة في الصورة التي تم التقاطها من خلال مسار المعالجة.
- يتم اقتصاص الصورة ذات الدقة المنخفضة مرتين في مسار معالجة الصور، ما يؤدي إلى اختلاف زاوية الرؤية بين الصور العالية الدقة والمنخفضة الدقة.
- تم اقتصاص الدائرة في الصورة التي تم التقاطها بسبب نسبة عرض إلى ارتفاع مفرطة طلب الالتقاط الذي يقلّل من ارتفاع الصورة أو عرضها.
- تحتوي الدائرة في الصورة التي تم التقاطها على انعكاس في وسطها ولا تبدو مليئة بالكامل.
test_multi_camera_alignment
يختبر مَعلمات معايرة الكاميرا ذات الصلة بوضع الكاميرا في أنظمة الكاميرات المتعدّدة. باستخدام الكاميرات الفرعية المتعدّدة، يتم التقاط صورة باستخدام إحدى الكاميرات. يحدِّد مركز الدائرة. تعرِض هذه السمة مركز الدائرة على إحداثيات الكرة الأرضية لكل كاميرا. تقارن هذه السمة الفرق بين مراكز دوائر الكاميرات في إحداثيات العالم. تتم إعادة إسقاط الإحداثيات المتعلّقة بالكرة الأرضية مجددًا إلى إحداثيات البكسل ويتم مقارنتها بالإحداثيات الأصلية كإجراء للتحقّق من صحة البيانات. تقارن أحجام الدوائر للتحقّق مما إذا كانت أطوال التركيز للكاميرات مختلفة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraCharacteristics#LENS_DISTORTION
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATION
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
مقبول: تكون مراكز الدوائر وأحجامها على النحو المتوقّع في الصور المعروضة مقارنةً بالصور التي تم التقاطها باستخدام بيانات معايرة الكاميرا وطول البعد البؤري.
آليات حدوث الأعطال:
LENS_INTRINSIC_CALIBRATION
أوLENS_POSE_TRANSLATION
أوLENS_POSE_ROTATION
هي قيم التصميم وليست بيانات المعايرة الفعلية.- نظام الكاميرا غير مناسب لإعداد الاختبار. على سبيل المثال، اختبار نظام كاميرا عريضة ونطاق رؤية فائقة العرض باستخدام منصة اختبار RFoV لمزيد من المعلومات، يُرجى الاطّلاع على الأسئلة الشائعة حول حزمة ITS للكاميرا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 عند نصف القطر المحدّد للصورة لاجتياز الاختبار.
scene6
المشهد 6 هو شبكة من الدوائر الصغيرة مع مربّع في زاوية واحدة للإشارة إلى
الاتجاه. تكون الدوائر الصغيرة مطلوبة لاختبار وظيفة التكبير/التصغير على نطاقٍ
كبير.
يمكن أن تكون الاختبارات في المشهد 6 حسّاسة للّحافة، لذا اعتبارًا من الإصدار
15، يمكنك استخدام check_alignment.py
في دليل
tools لتفعيل التحقّق من محاذاة DUT والرسم البياني.
scene6
test_in_sensor_zoom
يختبر هذا الاختبار سلوك ميزة التكبير/التصغير في الكاميرا، والتي تنتج صورًا مقطوعة بتنسيق RAW.
عند ضبط حالة استخدام البث على
CROPPED_RAW
،
يُجري الاختبار عمليتَي التقاط على نطاق التكبير/التصغير، وهما صورة RAW لمجال رؤية كامل (FoV)
وصورة RAW تم اقتصاصها. يحوّل الاختبار الصور إلى صفائف RGB ويقلّل حجم الصورة RAW المقتطعة بالحجم الكامل إلى الحجم الذي يُبلغ عنه
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) الثلاثي الأبعاد لصورة RAW التي تم اقتصاصها وخفض حجمها وصورة RAW الكاملة التي تم التقاطها باستخدام مجال الرؤية أقل من الحدّ المسموح به في الاختبار.
test_zoom
لاختبار سلوك التكبير/التصغير في الكاميرا يتم التقاط الصور على نطاق التكبير والتصغير والتحقّق مما إذا كانت الدوائر تكبر عندما تكبِّر الكاميرا. لكل تنسيق (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 للعثور على محيط الدائرة الأقرب إلى المركز
test_low_latency_zoom
يختبر سلوك التكبير/التصغير بوقت استجابة منخفض في الكاميرا. التقاط صور في نطاق التكبير
باستخدام android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM)
والتحقّق مما إذا كانت الدوائر في الصور الناتجة تتطابق مع نسب التكبير في البيانات الوصفية
للتقاط يتم استخدام جلسة الالتقاط نفسها للكاميرا لتوحيد 3A و
التقاط الصور.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDES
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
مقبول: يكون حجم الدائرة المُسجَّلة دقيقًا مقارنةً بنِسب التكبير والتصغير والبيانات الوصفية للنتائج.
test_preview_video_zoom_match
اختبارات تُظهر أنّ معاينة الفيديو وإخراج الفيديو أثناء التسجيل والتكبير/التصغير يعرضان ويسجلان النتيجة نفسها تُحتسب هذه الدالة حجم الدائرة الأقرب إلى المركز بنِسب تكبير مختلفة، وتتحقّق ممّا إذا كان حجم الدائرة يزداد مع زيادة نسبة التكبير.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
مقبول: يكون الحجم النسبي للدائرة التي تم التقاطها دقيقًا مقارنةً بنسبة التكبير/التصغير المطلوبة في الفيديو والمعاينة.
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 الأربعة مع الزوايا الخارجية الأربعة للمستطيل للمساعدة في الحصول على إحداثيات دقيقة لإطار المستطيل الرئيسي عند نسب تكبير مختلفة.
scene7
test_multi_camera_switch
يتحقق هذا الاختبار من أنّه أثناء تسجيل المعاينة بنسب تكبير مختلفة، يؤدي التبديل بين عدسة العرض الفائق العرض (UW) والعدسة الواسعة (W) إلى قيم مشابهة لقيم RGB.
يستخدم الاختبار نسب تكبير مختلفة ضمن النطاق المحدَّد مسبقًا لإجراء تسجيل ملف معاينة ديناميكي وتحديد النقطة التي تتغيّر فيها الكاميرا المادية. تشير هذه النقطة إلى نقطة التداخل بين عدسة UW وعدسة W.
يتم تحليل اللقطات التي تم التقاطها عند نقطة التداخل وقبلها لتحديد مستوى الإضاءة التلقائي (AE) وموازنة اللون الأبيض التلقائية (AWB) والتركيز التلقائي (AF).
يضمن التحقّق من "التثبيت التلقائي للصورة" أنّ تغيير مستوى الإضاءة ضمن النطاق المتوقّع لكلٍّ من صور عدسة "العرض الفائق العرض" و"العرض العادي". يتحقق التحقّق من توازن اللون الأبيض التلقائي من أنّ نِسب 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
آليات حدوث الأعطال:
إنّ رصد جميع علامات ArUco الأربعة بدقة أمر ضروري لإجراء هذا الاختبار. إذا تعذّر التعرّف على الصورة في المحاولة الأولى، يحاول النظام إجراء محاولة ثانية باستخدام نسخة بالأبيض والأسود من الصورة. تمثّل الصورة التالية ذات التدرّج الرمادي خطوة المعالجة الثانوية.
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
من صورة عمودية على اليسار ورمز استجابة سريعة
منخفض التباين على اليمين.
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
مقبول: يجب أن يكون متوسّط قيمة درجة التباين في أول 6 مربّعات 85 على الأقل، ومتوسّط الفرق في قيمة درجة التباين للمربّعات المتتالية حتى المربّع 5 والمربّع 6 يجب أن يكون 17 على الأقل.
يوضّح الرسم البياني التالي للسطوع شكل نتيجة الاختبار التي تشير إلى أنّ الجهاز اجتاز الاختبار.
test_low_light_boost_extension
اختبار وضع "تحسين الإضاءة المنخفضة" للتعرّف التلقائي على الأجسام إذا كانت Camera2 تتيح وضع التعرّض التلقائي المحسَّن للضوء المنخفض، يتم إجراء هذا الاختبار لمحاولة تحسين أداء Camera2. إذا كانت إضافة "الوضع الليلي" متوافقة مع الكاميرا وكانت الإضافة تتوافق مع وضع التعرّض التلقائي "لتحسين الإضاءة المنخفضة"، يتم أيضًا إجراء هذا الاختبار لإضافة "الوضع الليلي" في الكاميرا. يضبط هذا الاختبار وضع "التثبيت التلقائي للصورة" على ميزة "تحسين الإضاءة المنخفضة"، ويأخذ لقطة من المعاينة، وينفّذ ما يلي:
- رصد وجود 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
تتطلّب اختبارات scene_flash
مشهدًا مظلمًا في مربّع دمج البيانات من المستشعرات.
test_auto_flash
يختبر هذا الاختبار تفعيل الفلاش التلقائي في بيئة مظلمة للكاميرات الخلفية والأمامية. في الكاميرات الأمامية، يستخدم الفلاش التلقائي الشاشة لمحاولة إضاءة المشهد، وليس وحدة فلاش خارجية. يتحقّق الاختبار من أنّه يتم تفعيل ميزة الوميض التلقائي من خلال التحقّق من أنّ مركز صورة المربّع يصبح أكثر إشراقًا عند تفعيل ميزة الوميض التلقائي. لتشغيل الفلاش التلقائي، يجب إطفاء المصابيح في منصة الاختبار. ويمكن إطفاء المصابيح تلقائيًا باستخدام وحدة تحكّم Arduino. يجب أن يكون المشهد مظلمًا تمامًا لكي يعمل الاختبار بشكلٍ صحيح. يجب تثبيت تطبيق Jetpack Camera (JCA) على الجهاز قبل الاختبار. يعتمد الفلاش التلقائي للكاميرات المُوجَّهة للخلف على حالة "ضبط الإضاءة التلقائي" (AE) لتفعيله، ولكن الفلاش التلقائي للكاميرات المُوجَّهة للخلف لا يعتمد على "ضبط الإضاءة التلقائي" ويتم تفعيله دائمًا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureRequest#FLASH_MODE
مقبول: يكون مركز صورة المربّع الذي تم تفعيل الفلاش التلقائي فيه أكثر إشراقًا مقارنةً بصورة المشهد الأصلية في جميع الكاميرات.
test_flash_strength
يختبر هذا الاختبار ما إذا كان يتم تنفيذ التحكّم في قوة الفلاش في وضع
SINGLE
بشكل صحيح.
للتحقّق من أنّه إذا كان الجهاز يتيح التحكّم في قوة الفلاش أثناء استخدام الكاميرا
في وضع SINGLE
، تتغيّر قوة الفلاش مع مستويات القوة المطلوبة المختلفة
التحقّق من أنّ ميزة التحكّم في قوة الفلاش تعمل مع
AE_MODES
مختلفة
على سبيل المثال، إذا كان وضع التعريض التلقائي هو ON
أو OFF
، سيؤثر مستوى شدة فلاش التصوير في السطوع، وإذا كان الوضع هو ON_AUTO_FLASH
، لن يؤثر مستوى شدة فلاش التصوير في السطوع.
لإجراء الاختبار، يجب إطفاء الأضواء في منصة الاختبار.
يمكن إطفاء الأضواء تلقائيًا باستخدام وحدة التحكّم Arduino.
يجب أن يكون المشهد مظلمًا تمامًا لكي يعمل الاختبار بشكل صحيح.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_MAX_LEVEL
المرور:
عندما يكون وضع التعريض التلقائي هو ON
أو OFF
، يزداد سطوع <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. يكون متوسّط سطوع الصورة ضمن النطاق (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
مقبول: يكون معدّل عرض اللقطات في المعاينة هو الحدّ الأدنى لنطاق معدّل عرض اللقطات المطلوب، ويكون اختلاف اللقطات أقل من الحدّ المسموح به المطلق الذي تم ضبطه في الاختبار.
test_torch_strength
يختبر هذا الاختبار ما إذا كان يتم تنفيذ التحكّم في قوة الفلاش في وضع
TORCH
بشكل صحيح.
التحقّق من أنّه إذا كان الجهاز يتيح التحكّم في قوة الفلاش أثناء استخدام الكاميرا
في وضع TORCH
، تتغيّر قوة المصباح اليدوي مع مستويات القوة المطلوبة المختلفة
التحقّق من أنّ ميزة التحكّم في قوة الفلاش تعمل مع
AE_MODES
مختلفة
على سبيل المثال، إذا كان وضع التعريض التلقائي هو ON
أو OFF
، سيؤثّر مستوى شدة فلاش الكامير
في السطوع، وإذا كان الوضع هو ON_AUTO_FLASH
، لن يؤثّر مستوى شدة فلاش الكامير
في السطوع.
للتحقّق من أنّ قوة ضوء المصباح تظلّ كما هي طوال مدة استخدام وضع
"التصوير المتسلسل"، ما يحاكي جلسة تصوير فيديو. لإجراء الاختبار، يجب إطفاء الأضواء في
منصة الاختبار. ويمكن إطفاء الأضواء تلقائيًا باستخدام
وحدة التحكّم Arduino. يجب أن يكون المشهد مظلمًا تمامًا لكي يعمل الاختبار بشكلٍ
صحيح.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_MAX_LEVEL
المرور:
عندما يكون وضع التعريض التلقائي هو ON
أو OFF
، يزداد سطوع مجموعات اللقطات المفاجئة للصورة مع زيادة مستوى قوة الفلاش من عدم استخدام الفلاش
إلى
FLASH_TORCH_STRENGTH_MAX_LEVEL
.
عندما يكون وضع التعريض التلقائي هو ON_AUTO_FLASH
، يكون الفرق في
سطوع أجزاء اللقطات المتسلسلة للصورة ضمن حدود القبول
مع زيادة مستوى قوة الفلاش من عدم استخدام فلاش إلى
FLASH_TORCH_STRENGTH_MAX_LEVEL
.
sensor_fusion
تتطلّب اختبارات دمج البيانات من أجهزة الاستشعار تحريك الهاتف بطريقة معيّنة أمام نمط اشتهرت به لعبة الشطرنج
وعلامات ArUco. للحصول على أفضل النتائج، تأكَّد من تثبيت الرسم البياني للاختبار
بشكل مسطّح. تؤثر الرسوم البيانية غير المستوية في عمليات احتساب التدوير في العديد من
الاختبارات. يجب أن يملأ الرسم البياني الجزء الخلفي من مربّع دمج بيانات الاستشعار من خلال الطباعة بقياس
17 بوصة × 17 بوصة (43 × 43 سم). يمكن إجراء اختبارات sensor_fusion
آليًا باستخدام
Sensor Fusion Box.
رسم بياني لدمج بيانات أجهزة الاستشعار
رسم بياني لدمج بيانات المستشعرات يملأ الجزء الخلفي من مربّع دمج بيانات المستشعرات
test_lens_intrinsic_calibration
اختبارات تُظهر التغيُّرات الأساسية في المركز البصري للعدسة عند تحريك العدسة بسبب ميزة "التثبيت البصري للصور" (OIS) إذا كانت عيّنات العدسة الأساسية متوفرة، يتم اختبار ما إذا كان المركز البصري لعينات العدسة الأساسية يتغيّر عند تحرّك العدسة بسبب ميزة "التثبيت البصري للصور" (OIS).
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
مقبول: يتغيّر المركز البصري للعدسة بشكل أساسي ببكسل واحد أو أكثر. إذا كانت عيّنات العدسة الأساسية متاحة، يتغيّر مركزا العدسة البصريان بوحدة بكسل واحدة أو أكثر.
مثال على مخطّط test_lens_intrinsic_calibration
يعرض تغييرات النقاط
الرئيسية بالبكسل لكل إطار
test_multi_camera_frame_sync
اختبارات تُثبت أنّ الطوابع الزمنية للإطارات التي تم التقاطها بواسطة الكاميرا المنطقية تقع ضمن 10 مللي ثانية من خلال محاسبة زوايا المربعات ضمن لوحة الشطرنج لتحديد الطابع الزمني
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
مقبول: لا تتغيّر الزاوية بين الصور من كل كاميرا بشكل ملحوظ أثناء تدوير الهاتف.
test_preview_distortion
يختبر هذا الاختبار تصحيح التشوه في كل إطار معاينة يتم التقاطه عند مستويات تكبير مختلفة. بالنسبة إلى كل إطار معاينة، يحسب الاختبار النقاط المثالية استنادًا إلى العناصر الداخلية والخارجية للكاميرا. في مثال الصورة، تظهر النقاط المثالية باللون الأخضر، والنقاط الفعلية بالّلون الأحمر. يتم احتساب خطأ التشويه استنادًا إلى جذر متوسط الخطأ التربيعي (RMS) لمسافة البكسل بين النقاط الحالية والنقاط المثالية. تُستخدَم الإضاءات الخضراء والحمراء على الصورة لتحديد منطقة الخطأ في التشوه visually.
صورة لوحة شطرنج تظهر فيها النقاط المثالية باللون الأخضر والنقاط الفعلية باللون الأحمر
واجهات برمجة التطبيقات التي تم اختبارها:
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 من دوران أداة التسوية.
في ما يلي أمثلة على فيديوهات تم تحسينها باستخدام ميزة "التثبيت" وأخرى بدونها.
نموذج فيديو تم تثبيته
عيّنة فيديو بدون تثبيت
test_sensor_fusion
يختبر هذا الاختبار الفرق في الطابع الزمني بين الكاميرا وجهاز الاستشعار الدوراني لتطبيقات الواقع المعزّز
والواقع الافتراضي. يتم تدوير الهاتف 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 بشكل موثوق لفترة كافية ل ejecutant الاختبار. - الرسم البياني غير مثبّت بشكلٍ مستوٍ. يحتوي الرسم البياني
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
تتحقّق اختبارات feature_combination
من عمل الميزات بشكل صحيح عند تفعيل ميزات متعددة للكاميرا في الوقت نفسه. تستخدِم هذه الاختبارات ملف صورة لوحة الشطرنج نفسه المستخدَم في مشهد دمج بيانات المستشعرات.
test_feature_combination
اختبار جميع مجموعات البث المختلفة، وثبات المعاينة ، ونطاق عدد اللقطات في الثانية المستهدَف، والفيديوهات بنطاق عالي الديناميكية (HDR) بدقة 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
الذي تم ضبطه. - تطابق مساحة اللون في بث المعاينة المسجّل المساحة التي تم ضبطها.
- تحتوي لقطة Ultra HDR على خريطة مكاسب صالحة.