تقدّم هذه الصفحة قائمة شاملة بالاختبارات ضمن اختبارات كاميرا مجموعة اختبارات الصور (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_tele: تبديل عدسة مقرِّبة (تيليفوتو)
- scene_flash: الفلاش التلقائي، الحد الأدنى لعدد اللقطات في الثانية
- scene_video: تقطُّع اللقطات
- sensor_fusion: تأخُّر في توقيت الكاميرا/الاستشعار الدوراني
- feature_combination: مجموعات الميزات
- scene_ip: تطابق الصورة بين تطبيق الكاميرا التلقائي وJCA
اطّلِع على الأقسام الفردية للحصول على وصف لكل مشهد.
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_1
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_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 مناطق مختلفة (الزوايا والوسط). التقاط صور تم ضبط الاقتصاص فيها للمناطق الخمس تقارن قيم الصورة المُقتطعة وصورة الإصلاح.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
مقبول: تتطابق صورة المنطقة التي تم اقتصاصها مع القسم الذي يتوافق مع الصورة المقتطعة.
test_ev_compensation
يختبر هذا الاختبار تطبيق تعويض قيمة التعريض (EV). يتألّف الاختبار من قسم أساسي وقسم متقدّم.
يختبر القسم الأساسي تطبيق التعويض عن الإضاءة الكهربائية باستخدام نطاق
تم إنشاؤه باستخدام CONTROL_AE_COMPENSATION_STEP
. يتم تسجيل ثمانية لقطات لكل قيمة
تعويض.
يزيد القسم المتقدّم من التعرّض للضوء في ثماني خطوات، ويتحقّق من قياس brightness مقارنةً بالسطوع المتوقّع. يتم احتساب القيم المتوقّعة من سطوع الصورة بدون تطبيق تعويض EV، وتمتلئ القيمة المتوقّعة إذا تجاوزت القيم المحسوبة نطاق قيمة الصورة الفعلية. يفشل الاختبار إذا لم تتطابق القيم المتوقّعة والقيم المقاسة أو إذا تمّت زيادة تعريض الصور للضوء خلال خمس خطوات.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
القسم الأساسي: تعرض الصور زيادة في الإضاءة بدون تعريضها بشكل مفرط في غضون خمس خطوات.
test_ev_compensation_basic.png
تمرير القسم المتقدّم: لالتقاط زيادة في الإضاءة مع زيادة إعداد التعويض عن EV. تحتوي اللقطات الثمانية التي تم التقاطها لكل إعداد من إعدادات تعويض مستوى الإضاءة الكهربية (EV) على قيم ثابتة للّون الأسود.
test_ev_compensation_advanced_plot_means.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_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
scene1_2
المشهد 1_2 هو نسخة متطابقة من الناحية الوظيفية للمشهد 1_1، وينفّذ بنية مشهد فرعي لتقليل المدة الطويلة للمشهد 1.
test_param_color_correction
يختبر ما إذا تم تطبيق مَعلمات android.colorCorrection.*
عند ضبطها.
التقاط لقطات بقيم مختلفة للتحويل والتحسين، واختبار ما إذا كانت تبدو
مختلفة وفقًا لذلك يتم اختيار التحويل والتعزيزات لجعل الناتج
أحمر أو أزرق بشكل متزايد. يستخدم خريطة نغمات خطية. ربط الدرجات اللونية هو أسلوب
يُستخدَم في معالجة الصور لربط مجموعة من الألوان بمجموعة أخرى بهدف تقريب
مظهر الصور ذات النطاق العالي الديناميكية في وسيط يملك نطاقًا ديناميكيًا محدودًا أكثر.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
تمرير: يتم تعزيز قيم R وB وفقًا للتحويل.
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
المرور:
- اختبار1: تحتوي كلتا الصورتَين على خريطة نغمات خطية، ولكن الصورة رقم 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_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_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
scene1_3
المشهد 1_3 هو نسخة متطابقة من الناحية الوظيفية للمشهد 1_1، وينفّذ بنية مشهد فرعي لتقليل المدة الطويلة للمشهد 1.
test_capture_result
يختبر ما إذا كانت البيانات الصالحة تظهر في عناصر CaptureResult
. تتيح ميزة "الالتقاط التلقائي"
والالتقاط اليدوي والالتقاط التلقائي.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
مقبول: البيانات الوصفية صالحة لجميع عمليات الالتقاط ولا تتسرّب الإعدادات اليدوية إلى عملية الالتقاط التلقائية الثانية. يعرض هذا الخيار تصحيح تشويش العدسة للصور التي تم التقاطها.
test_capture_result_plot_lsc_auto_ch0.png
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_jpeg
الاختبارات التي تم فيها تحويل صور YUV وصور JPEG على الجهاز تبدو متشابهة. يأخذ الاختبار% 10 من وسط الصورة ويحسب قيمة RGB، ويتحقّق من أنّها متطابقة.
واجهات برمجة التطبيقات التي تم اختبارها:
مقبول: إذا كان متوسّط الفرق في قيم RGB بين كل صورة أقل من %3
![]() |
![]() |
|
test_jpeg_fmt=jpg.jpg | test_jpeg=fmt=yuv.jpg |
test_raw_burst_sensitivity
تلتقط مجموعة من الصور الأولية مع زيادة المكاسب وتقيس الضوضاء. التقاط الصور بتنسيق RAW فقط في وضع "التقاط الصور المتتالية"
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
مقبول: كل لقطة أكثر تشويشًا من اللقطة السابقة، لأنّ الكسب يزداد.
يستخدم التباين في خلية شبكة الإحصاءات المركزية.
test_raw_burst_sensitivity_variance.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_yuv_plus_jpeg
يختبر هذا الاختبار التقاط إطار واحد بتنسيقَي YUV وJPEG. يستخدم طلبًا يدوياً
مع خريطة نغمات خطية لكي يبدو تنسيقا YUV وJPEG متطابقَين عند
تحويلهما بواسطة وحدة image_processing_utils
.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
مقبول: تكون صور YUV وJPEG متشابهة ويقلّ الفرق بينهما في RMS (قيمة الجذر المتوسط التربيعي للإشارة) عن% 1.
![]() |
![]() |
|
test_yuv_plus_jpg_jpg.jpg | test_yuv_plus_jpeg_yuv.jpg |
test_yuv_plus_raw
اختبارات لالتقاط إطار واحد كمخرجات RAW/RAW10/RAW12 وYUV في حال كانت
متوافقة يستخدم طلبًا يدوياً
مع خريطة نغمات خطية، لذا من المتوقّع أن يكون تنسيقا raw وYUV متطابقَين. تقارن هذه السمة قيم RGB في وسط 10% من الصور التي تم تحويلها إلى نموذج RGB. السجلات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 |
test_sensitivity_priority
اختبارات CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
على مستوى إعدادات ISO المختلفة لتأكيد وجود ارتباط بين ارتفاع قيمة ISO وزيادة مستويات الضوضاء
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_MODE
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
مقبول: يؤدي ارتفاع قيمة ISO إلى زيادة مستويات التشويش.
اختبار معايير التخطّي
يتم تخطّي اختبار test_sensitivity_priority.py
في حال استيفاء أي من الشارَتَين التاليتَين:
- إذا كان الجهاز يحتوي على مستوى واجهة برمجة تطبيقات (
first_api_level
) أول يبلغ 35 أو أقل - لا يعلن الجهاز عن
CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
في CONTROL_AE_AVAILABLE_PRIORITY_MODES.
test_exposure_time_priority
يختبر CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
السطوع في أوقات مختلفة للتعرّض للضوء، للتحقّق من ثبات السطوع في النطاق الذي يمكن فيه
للمقياس ISO التعويض.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_MODE
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
مقبول: يكون السطوع ثابتًا (ضمن حدود التسامح) على مدار أوقات التعريض إذا كان مقياس ISO ضمن نطاق التعويض.
اختبار معايير التخطّي
يتم تخطّي اختبار test_exposure_time_priority
في حال استيفاء أي من الشارَتَين التاليتَين:
- إذا كان الجهاز يحتوي على مستوى واجهة برمجة تطبيقات (
first_api_level
) أول يبلغ 35 أو أقل - لا يعلن الجهاز عن
CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
في CONTROL_AE_AVAILABLE_PRIORITY_MODES.
scene2_a
يتضمّن المشهد scene2_a ثلاثة وجوه مع خلفية رمادية وملابس محايدة. تم اختيار الوجوه لتمثيل مجموعة واسعة من درجات لون البشرة. يجب أن يكون للرسم البياني اتجاه صحيح لكي تعمل ميزة "التعرّف على الوجوه" على النحو الأمثل.
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_exposure_keys_consistent
يقارن هذا الاختبار متوسط درجة النصوع لصورة تم التقاطها مع تفعيل ميزة "ضبط تلقائي للتعريض" مقارنةً بتصوير
تم التقاطه بدون تفعيل هذه الميزة ويطبّق يدويًا مَعلمات التعريض (الحساسية،
ووقت التعريض، ومدة اللقطة، وزيادة الحساسية بعد معالجة الصور الخام) التي تم تلقيها في
CaptureResult
لصورة تم التقاطها مع تفعيل ميزة "ضبط تلقائي للتعريض".
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureResult#CONTROL_POST_RAW_SENSITIVITY_BOOST
مقبول: الفرق النسبي في مستوى الإضاءة بين اللقطتَين أقل من أربعة بالمئة.
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_preview_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 (3000 كلفن) لكلتا الكاميرتَين الأساسيتَين.
test_default_camera_hdr
اختبارات لضمان أنّ ميزة الالتقاط التلقائية للكاميرا هي دقة HDR فائقة للأداء الفئة 15 على النحو المحدّد في الفقرة 2.2.7.2 الكاميرا في CDD
اجتياز: يجب أن تكون ميزة التقاط حزمة الكاميرا التلقائية هي ميزة "النطاق العالي الديناميكية الفائق" لجهاز ينتمي إلى فئة الأداء 15.
scene2_d
test_preview_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_preview_num_faces
يختبر ميزة التعرّف على الوجوه مع زيادة تنوع درجات لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
اجتياز: يتم العثور على 3 وجوه تتضمّن معالم الوجه في مربّعات محيط الوجه.
test_num_faces_fd_mode_1.jpg
scene2_g
يتضمّن المشهد scene2_g ثلاثة وجوه في وضع الجانب مع خلفية بيضاء وملابس بيضاء. تتضمن الوجوه مجموعة كبيرة من درجات لون البشرة وتتميز بتباين عالٍ مع الخلفية.
scene2_g
test_preview_num_faces
يختبر ميزة التعرّف على الوجوه مع زيادة تنوع درجات لون البشرة في مشاهد الوجوه.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
اجتياز: يتم العثور على 3 وجوه تتضمّن معالم الوجه في مربّعات محيط الوجه.
test_preview_num_faces
scene3
يستخدم اختبار Scene3 الرسم البياني ISO12233، وتستخدم معظم الاختبارات طريقة استخراج الرسم البياني للعثور على الرسم البياني في المشهد. لهذا السبب، لا تحتوي معظم الصور المحفوظة على حدود مثل الصور الخاصة بالمشهد 1 أو 2 أو 4، بل تحتوي على الرسم البياني فقط. يجب أن يكون الرسم البياني بالاتجاه الصحيح لكي يعمل أداة البحث عن الرسم البياني على النحو الأمثل.
test_edge_enhancement
يختبر هذا الإجراء تطبيق المَعلمة android.edge.mode
بشكلٍ صحيح. تلتقط هذه الوظيفة
الصور التي لا تتم إعادة معالجتها لكل وضع من أوضاع الحواف، وتُظهر حدة
الصورة الناتجة والبيانات الوصفية لنتيجة الالتقاط. تعالج طلب الالتقاط باستخدام مَعلمة
وضع الحواف والحساسية ووقت التعرّض والمسافة إلى التركيز وسطح الإخراج.
مقبول: يكون وضع HQ
(2) أكثر حدة من وضع OFF
(0). وضع FAST
(1) أكثر حدة
من وضع OFF
أن يكون وضع HQ
أكثر حدة أو يساوي وضع FAST
واجهات برمجة التطبيقات التي تم اختبارها:
مَعلمات الكاميرا المتأثرة:
EDGE_MODE
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 للقطات الثابتة، يتحقّق هذا الاختبار من تنسيقات المعاينة المتوافقة للتأكّد من عدم تمديد أو اقتصاص frames_preview بشكل غير ملائم. التحقّق من عدم تغيُّر نسبة العرض إلى الارتفاع للدائرة، والحفاظ على وضع الدائرة في وسط الإطار في الصور التي تم اقتصاصها، وعدم تغيُّر حجم الدائرة في التنسيقات الثابتة أو بدرجات دقة مختلفة (التحقّق من مجال الرؤية)
واجهات برمجة التطبيقات التي تم اختبارها:
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" هو شبكة من علامات ArUco التي يمكن التعرّف عليها بشكل فريد.
يمكن أن تكون الاختبارات في المشهد 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)
بين الصورتَين.
واجهات برمجة التطبيقات التي تم اختبارها:
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
يختبر سلوك تكبير/تصغير الكاميرا من العدسة لالتقاط صور موسّعة إلى العدسة لالتقاط صور عريضة. تلتقط الصور على نطاق التكبير وتتحقّق مما إذا كانت علامات ArUco تكبر مع تكبير الكاميرا. يتحقّق الاختبار أيضًا مما إذا كان موضع العلامة المركزية يتغيّر بشكل متوقّع خلال كل عملية تسجيل. يمكن أن تتغيّر المسافة من مركز العلامة المركزية إلى مركز الصورة إما بمعدّل ثابت بالنسبة إلى نسبة التكبير إلى أن يتم تبديل الكاميرا، أو يمكن أن تتغيّر بشكل منتظم نحو الموقع الجغرافي للعلامة نفسها بعد تبديل الكاميرا. يجب تثبيت تطبيق Jetpack Camera (JCA) على الجهاز قبل الاختبار.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
اجتياز: يكون الحجم النسبي لعلامة ArUco التي تم التقاطها دقيقًا مقارنةً بنسبة التكبير/التصغير المطلوبة لضمان تكبير الكاميرا بشكل صحيح، وتتغيّر مسافة العلامة من قلب الصورة وفقًا للمعايير المذكورة في وصف الاختبار.
test_zoom للعثور على محيط علامة ArUco الأقرب إلى المركز
test_low_latency_zoom
يختبر سلوك التكبير/التصغير بوقت استجابة منخفض في الكاميرا. تلتقط الصور على نطاق التكبير
باستخدام android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM)
، وتتحقّق مما إذا كانت العلامات في صور الإخراج تتطابق مع نسب التكبير في البيانات الوصفية
للمقطع الذي تم التقاطه. يتم استخدام جلسة الالتقاط نفسها للكاميرا لتوحيد 3A و
التقاط الصور.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDES
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
مقبول: يكون الحجم النسبي للعلامة التي تم التقاطها دقيقًا مقارنةً بنِسب التكبير والتصغير في البيانات الوصفية للنتيجة.
test_preview_video_zoom_match
اختبارات تُظهر أنّ معاينة الفيديو وإخراج الفيديو أثناء التسجيل والتكبير/التصغير يعرضان ويسجلان النتيجة نفسها تُحتسب هذه الدالة حجم العلامة الأقرب إلى المركز عند نسب تكبير مختلفة، وتتحقّق ممّا إذا كان حجم العلامة يزداد مع زيادة نسبة التكبير.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
مقبول: يكون الحجم النسبي للعلامة التي تم التقاطها دقيقًا مقارنةً بنسبة التكبير/التصغير المطلوبة في الفيديو والمعاينة.
HD_1280x720_key_frame.png (قبل التكبير)
preview_1280x720_key_frame.png (قبل التكبير)
HD_1280x720_key_frame.png (بعد التكبير)
preview_1280x720_key_frame.png (بعد التكبير)
test_preview_zoom
يُجري هذا الاختبار للتأكّد من أنّ نسبة التكبير لكل إطار معاينة تتطابق مع البيانات الوصفية لالتقاط الصور المقابلة من العدسة فائقة العرض إلى العدسة الواسعة. يأخذ الاختبار لقطات معاينة على نطاق التكبير والعبوة ويجد علامة ArUco الأقرب إلى المركز. بعد ذلك، يتحقّق الاختبار ممّا إذا كان موضع العلامة المركزية يتغيّر بشكل متوقّع خلال كل عملية تسجيل. يمكن أن تتغيّر المسافة من مركز العلامة المركزية إلى مركز الصورة إما بمعدّل ثابت بالنسبة إلى نسبة التكبير إلى أن يتم تبديل الكاميرا، أو يمكن أن تتغيّر بشكل منتظم نحو الموقع الجغرافي للعلامة نفسها بعد تبديل الكاميرا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
مقبول: يكون الحجم النسبي لعلامة ArUco المحدّدة دقيقًا بالنسبة إلى ratio التكبير المُبلّغ عنها لنتيجة الالتقاط المقابلة لجميع لقطات المعاينة. تكون المسافة النسبية للعلامة المحدّدة من مركز الصورة دقيقة بالنسبة إلى نسبة التكبير المسجّلة لنتيجة الالتقاط المقابلة لجميع لقطات المعاينة.
صور 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. يُقيّم التحقّق من ضبط تركيز الصورة قيمة التقدير الحدّة استنادًا إلى متوسّط حجم التدرّج بين صور عدسة الالتقاط الفائق العرض وصور عدسة الالتقاط العريض.
أثناء تنفيذ هذا الاختبار، إذا كان تأثير "موiré" يتداخل مع النتائج، استخدِم جهازًا لوحيًا بدرجة دقة أعلى من قائمة قائمة الأجهزة اللوحية المعتمَدة لاختبار ITS للكاميرا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.media.CamcorderProfile
android.media.MediaRecorder
اجتياز: لاجتياز الاختبار، يجب اجتياز عمليات التحقّق من AE وAWB. لا تُستخدَم نتائج التحقّق من AF إلا لأغراض التسجيل. في ما يلي معايير كل عملية تحقّق:
- التحقّق من ميزة "التثبيت التلقائي للصورة": يجب أن يكون تغيير مستوى الإضاءة (قيمة Y) بين الصور الملتقطة بعدسة UW وبعدسة W أقل من% 4 لجميع البقع الملونة إذا كان الجهاز متوافقًا مع كل من
ae_regions
وawb_regions
. إذا كان الخيارae_regions
متاحًا فقط، يجب أن تستوفي قيم القطعة الرمادية فقط المعايير. - التحقّق من توازن اللون الأبيض: يجب أن يكون الفرق بين قيم R/G وB/G لصور عدسة UW وW
أقل من% 3 لبقعة اللون الرمادي، ويجب أن يكون أقل من% 10 لبقع الألوان الأخرى إذا كان الجهاز متوافقًا مع كل من
ae_regions
وawb_regions
. - التحقّق من ضبط تركيز الصورة التلقائي: يجب أن تكون حدة الصورة التي تم التقاطها باستخدام عدسة W أعلى من الحدة التي تم التقاطها باستخدام عدسة UW.
بقعة رمادية تم التقاطها باستخدام عدسة UW
بقعة رمادية تم التقاطها باستخدام عدسة W
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
اجتياز: اجتياز عمليات التحقّق من "التثبيت التلقائي للصورة" و"توازن اللون الأبيض التلقائي"
قياس إطار منطقة مظلمة مع زيادة التعرّض
قياس اللقطة لمنطقة أفتح بدرجة تعرّض أقل
آليات حدوث الأعطال:
إنّ رصد جميع علامات ArUco الأربعة بدقة أمر ضروري لإجراء هذا الاختبار. إذا تعذّر التعرّف على الصورة في المحاولة الأولى، يحاول النظام إجراء محاولة ثانية باستخدام نسخة بالأبيض والأسود من الصورة. تمثّل الصورة التالية ذات التدرّج الرمادي خطوة المعالجة الثانوية.
test_color_correction_mode_cct
اختبارات COLOR_CORRECTION_MODE
على مستوى درجات حرارة الألوان ودرجات اللون المختلفة، للتحقّق من التغييرات في نِسب RGB مقارنةً بمشهد الالتقاط، scene8
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TEMPERATURE
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TEMPERATURE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TINT
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TINT
android.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE
android.hardware.camera2.CameraMetadata#COLOR_CORRECTION_MODE_CCT
android.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
مقبول: تعرض نسب RGB الارتفاعات أو الانخفاضات المتوقّعة مقارنةً بدرجات حرارة الألوان ودرجات اللون المحدّدة.
اختبار معايير التخطّي
يتم تخطّي اختبار test_color_correction_mode_cct
في حال استيفاء أي من الشارَتَين التاليتَين:
- إذا كان الجهاز يحتوي على المستوى الأول من واجهة برمجة التطبيقات (
first_api_level
) 35 أو أقل - لا يعلن الجهاز عن
COLOR_CORRECTION_MODE_CCT
في COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES.
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 16 أو إصدار أحدث، يتضمّن طلب التقاط منطقة مُقيَّدة تتوافق مع المستطيل الذي يحدّد شبكة المربّعات. تؤدي هذه الإضافة إلى تغيير معايير اجتياز الحدّ الأدنى.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
المرور:
- بالنسبة إلى الأجهزة التي تعمل بنظام التشغيل Android 16 أو إصدار أحدث، يجب أن يكون متوسط قيمة درجة التباين في أول 6 مربّعات 80 على الأقل، ويجب أن يكون متوسط الفرق في قيمة درجة التباين للمربّعات المتتالية حتى المربّعَين 5 و 6 18.75 على الأقل.
- بالنسبة إلى الأجهزة التي تعمل بالإصدار 15 أو الإصدارات الأقدم، يجب أن يكون متوسط قيمة luminance للمربّعات الستة الأولى 85 على الأقل، ويجب أن يكون متوسط الفرق في قيمة luminance للمربّعات المتتالية حتى المربّعَين 5 و6 هو 17 على الأقل.
يوضّح الرسم البياني التالي للسطوع شكل نتيجة الاختبار التي تجتاز الفحص.
test_low_light_boost_extension
اختبار وضع "تحسين الإضاءة المنخفضة" للتعرّف التلقائي على المشهد إذا كانت Camera2 تتيح وضع التعرّض التلقائي المحسَّن للضوء المنخفض، يتم إجراء هذا الاختبار لمحاولة تحسين أداء Camera2. إذا كانت إضافة "الوضع الليلي" متوافقة مع الكاميرا وكانت الإضافة تتوافق مع وضع التعرّض التلقائي "تحسين الإضاءة المنخفضة"، يتم أيضًا إجراء هذا الاختبار لإضافة "الوضع الليلي" في الكاميرا. يضبط هذا الاختبار وضع "التثبيت التلقائي للصورة" على ميزة "تحسين الإضاءة المنخفضة"، ويأخذ لقطة من المعاينة، وينفّذ ما يلي:
- رصد وجود 20 مربّعًا
- احتساب مستوى الإضاءة المحصور في كل مربّع
- احتساب متوسط قيمة الإضاءة في أول 6 مربّعات وفقًا لاتجاه شبكة منحنى هيلبرت
- تُحتسب هذه السمة الفرق في قيمة الملوّن الأبيض والأسود للمربّعات المتتالية (على سبيل المثال، المربّع 2 - المربّع 1) حتى المربّعَين 5 و6 (المربّع 6 - المربّع 5)، وتجد متوسط الفروق الخمسة المحسوبة.
بالنسبة إلى الأجهزة التي تعمل بالإصدار Android 16 أو إصدار أحدث، يتضمّن طلب التقاط منطقة مُقيَّدة تتوافق مع المستطيل الذي يحدّد شبكة المربّعات. تؤدي هذه الإضافة إلى تغيير معايير اجتياز الحدّ الأدنى.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
المرور:
بالنسبة إلى الأجهزة التي تعمل بالإصدار 16 من نظام التشغيل Android أو الإصدارات الأحدث، يجب أن يكون متوسط قيمة درجة التباين في أول 6 مربّعات 54 على الأقل، ويجب أن يكون متوسط الفرق في قيمة درجة التباين للمربّعات المتتالية حتى المربّعَين 5 و 6 17 على الأقل.
بالنسبة إلى الأجهزة التي تعمل بالإصدار 15 أو الإصدارات الأقدم، يجب أن يكون متوسط قيمة luminance للمربّعات الستة الأولى 70 على الأقل، ويجب أن يكون متوسط الفرق في قيمة luminance للمربّعات المتتالية حتى المربّعَين 5 و6 هو 18 على الأقل.
scene_tele
من المتطلبات الرئيسية لاختبارات scene_tele
أن تكون مسافة الرسم البياني مساوية
على الأقل لأقل مسافة تركيز لعدسة المقرّبة. وبما أنّ الحد الأدنى لشدّة التركيز
يمكن أن يختلف بين الأجهزة، عليك ضبط الإعدادات
لتناسب الكاميرا المقرِّبة المحدّدة.
لمزيد من المعلومات عن إعداد الأجهزة الاختبارية، يُرجى الاطّلاع على إعداد قاعدة تمديد الكاميرا.
scene6_tele
يتألّف مشهد scene6_tele
من شبكة من علامات ArUco على
خلفية بيضاء.
إذا كانت لقطات scene6_tele
تظهر وكأنها مُعرَّضة للضوء بشكل زائد في
القاعدة المُدمجة، أزِل
الصفيحة الأمامية
للقاعدة المُدمجة.
افصل جهاز اختبار WFoV عن الإضافة وأزِل حامل الهاتف.
أزِل اللوحة الأمامية.
test_zoom_tele
يختبر سلوك تكبير/تصغير الكاميرا من العدسة الواسعة إلى العدسة المقرِّبة. اختبار هذا مطابق لاختبار test_zoom، ولكنه يختبر سلوك التكبير/التصغير في الكاميرا من العدسة الواسعة إلى العدسة المقرِّبة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
مقبول: يكون الحجم النسبي لعلامة ArUco التي تم التقاطها دقيقًا مقارنةً بنسبة التكبير/التصغير المطلوبة لضمان تكبير الكاميرا بشكل صحيح، وتتغيّر مسافة العلامة من مركز الصورة وفقًا للمعايير الواردة في test_zoom.
test_preview_zoom_tele
يختبر سلوك تكبير/تصغير الكاميرا لإطارات المعاينة من العدسة الواسعة إلى عدسة التصوير المقرّب. الاختبار مطابق لاختبار test_preview_zoom، ولكنه يختبر سلوك تكبير/تصغير الكاميرا لإطارات المعاينة من العدسة الواسعة إلى العدسة المقرِّبة.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
مقبول: يكون الحجم النسبي لعلامة ArUco التي تم التقاطها دقيقًا مقارنةً بنسبة التكبير/التصغير المطلوبة لضمان تكبير الكاميرا بشكل صحيح، وتتغيّر مسافة العلامة من مركز الصورة وفقًا للمعايير الواردة في test_preview_zoom.
scene7_tele
scene7_tele مطابق لـ scene7، ولكن تم إعداده لاختبار عدسة مقرِّبة. وهو عبارة عن إطار مستطيل مقسم إلى أربعة أقسام متساوية، تم ملء كل منها بلون مختلف. في منتصف المستطيل، يظهر رسم بياني للجانب المائل لفحص الحدة. تتم محاذاة علامات ArUco الأربعة مع الزوايا الخارجية الأربعة للمستطيل للمساعدة في الحصول على إحداثيات دقيقة لإطار المستطيل الرئيسي بنسب تكبير مختلفة.
test_multi_camera_switch_tele
يتحقق هذا الاختبار من أنّه أثناء تسجيل المعاينة بمعدّلات تكبير مختلفة، يؤدي التبديل بين عدسةَي العرض الواسع (W) والتصوير عن بُعد (tele) إلى قيم مشابهة لإحداثيات RGB.
يستخدم الاختبار نسب تكبير مختلفة ضمن النطاق المحدَّد مسبقًا لإجراء تسجيل ملف معاينة ديناميكي وتحديد النقطة التي تتغيّر فيها الكاميرا تشير هذه النقطة إلى نقطة التداخل بين عدسة W والعدسة المقرِّبة.
يتم تحليل اللقطات التي تم التقاطها عند نقطة التداخل وقبلها لتحديد مستوى التعريض التلقائي (AE) وموازنة اللون الأبيض التلقائية (AWB) والتركيز التلقائي (AF).
يضمن التحقّق من "التثبيت التلقائي للصورة" أنّ تغيير مستوى النصوع يقع ضمن النطاق المتوقّع لكلّ من صور عدسة "W" والعدسة المقرِّبة. يتحقق التحقّق من التوازن التلقائي للأبيض والأسود من أنّ نِسب R/G و B/G ضمن القيم الحدّية لكلّ من صور العدسة الواسعة الزاوية والعدسة المقرِّبة. يُقيّم فحص AF قيمة تقدير الحدة استنادًا إلى متوسط انحدار مقدار التدرج بين صور عدسة 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. في ما يلي معايير كل عملية تحقّق:
- التحقّق من التعريض التلقائي: يجب أن يكون تغيُّر مستوى النصوع بين الصور الملتقطة بالعدسة الواسعة الزاوية والعدسة المقرِّبة أقل من %4.
- التحقّق من ميزة "توازن اللون الأبيض التلقائي": في مساحة الألوان LAB، لا يمكن أن تتجاوز قيمة دلتا C بين R/G وB/G للعدسة الواسعة الزاوية والعدسة المقرِّبة 10.
- التحقّق من ضبط ميزة "ضبط التركيز التلقائي": يجب أن تكون حدة الصورة في عدسة المقرّبة أعلى من عدسة W.
scene_flash
تتطلّب اختبارات scene_flash
مشهدًا مظلمًا في مربّع دمج البيانات من المستشعرات.
test_auto_flash
يختبر هذا الاختبار تفعيل الفلاش التلقائي في بيئة مظلمة للكاميرات الخلفية والأمامية. في الكاميرات الأمامية، يستخدم الفلاش التلقائي الشاشة لمحاولة إضاءة المشهد، وليس وحدة فلاش خارجية. يتحقّق الاختبار من أنّه يتم تفعيل ميزة الوميض التلقائي من خلال التحقّق من أنّ مركز صورة المربّع يصبح أكثر إشراقًا عند تفعيل ميزة الوميض التلقائي. لتشغيل الفلاش التلقائي، يجب إطفاء المصابيح في منصة الاختبار. ويمكن إطفاء المصابيح تلقائيًا باستخدام وحدة تحكّم Arduino. يجب أن يكون المشهد مظلمًا تمامًا لكي يعمل الاختبار بشكلٍ صحيح. يجب تثبيت تطبيق Jetpack Camera (JCA) على الجهاز قبل الاختبار. يعتمد الفلاش التلقائي للكاميرات المُوجَّهة للخلف على حالة "ضبط الإضاءة التلقائي" (AE) لتفعيله، ولكن لا يعتمد الفلاش التلقائي للكاميرات المُوجَّهة للخلف على "ضبط الإضاءة التلقائي" ويتم تفعيله دائمًا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureRequest#FLASH_MODE
مقبول: يكون مركز صورة المربّع الذي تم تفعيل الفلاش التلقائي فيه أكثر إشراقًا مقارنةً بصورة المشهد الأصلية في جميع الكاميرات.
test_flash_strength
يختبر هذا الاختبار ما إذا كان يتم تنفيذ التحكّم في قوة الفلاش في وضع
SINGLE
بشكل صحيح.
للتحقّق من أنّه إذا كان الجهاز يتيح التحكّم في شدة الفلاش أثناء استخدام الكاميرا
في وضع SINGLE
، تتغيّر شدة الفلاش مع مستويات القوة المطلوبة المختلفة
التحقّق من أنّ عنصر التحكّم في قوة الفلاش يعمل مع
AE_MODES
مختلفة
على سبيل المثال، إذا كان وضع التعريض التلقائي هو ON
أو OFF
، سيؤثّر مستوى شدة فلاش الكامير
في السطوع، وإذا كان الوضع هو ON_AUTO_FLASH
، لن يؤثّر مستوى شدة فلاش الكامير
في السطوع.
لإجراء الاختبار، يجب إطفاء الأضواء في منصة الاختبار.
يمكن إطفاء الأضواء تلقائيًا باستخدام وحدة التحكّم Arduino.
يجب أن يكون المشهد مظلمًا تمامًا لكي يعمل الاختبار بشكل صحيح.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_MAX_LEVEL
المرور:
عندما يكون وضع التعريض التلقائي هو ON
أو OFF
، يزداد سطوع قطعة
الصورة مع زيادة مستوى قوة الفلاش من عدم استخدام الفلاش إلى
FLASH_SINGLE_STRENGTH_MAX_LEVEL
.
عندما يكون وضع التعريض التلقائي هو ON_AUTO_FLASH
، يكون الفرق في سطوع
أجزاء الصورة ضمن الحدود المسموح بها مع زيادة مستوى قوة الفلاش من
عدم استخدام الفلاش إلى FLASH_SINGLE_STRENGTH_MAX_LEVEL
.
test_led_snapshot
اختبارات للتأكّد من أنّ لقطات الإضاءة المميّزة لا تُشبع الصورة أو تُضفي عليها لونًا
يضيف هذا الاختبار وحدة تحكّم في الإضاءة إلى صندوق دمج البيانات من المستشعرات للتحكّم في المصابيح. عندما تكون الأضواء مضاءة على 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_night_mode_indicator
يختبر هذا الاختبار وظيفة مؤشر الوضع الليلي، وهي ميزة تشير إلى ما إذا كانت الكاميرا تعمل في ظروف الإضاءة المنخفضة وستستفيد من التقاط محتوى ثابت باستخدام إضافة "الوضع الليلي". لا تتوفّر هذه الميزة إلا على الأجهزة التي تتيح استخدام الإضافات في ميزة "الوضع الليلي" للكاميرا.
يتحقّق هذا الاختبار من أنّ مؤشر وضع "الصور في الليل" يعكس بشكل صحيح ظروف الإضاءة أثناء معاينة الكاميرا. ينفِّذ الاختبار الخطوات التالية:
- الإعداد: يُعدّ الاختبار
ItsSession
ويستردّ سمات الكاميرا. ويُنشئ أيضًا اتصالاً مع وحدة التحكّم في الإضاءة. - شروط التخطّي: يتم تخطّي الاختبار إذا كان الجهاز لا يتوافق مع مستوى واجهة برمجة التطبيقات المطلوب أو ميزة مؤشر الوضع الليلي.
- جلسة Camera2:
- يبدأ الاختبار جلسة لالتقاط المعاينة باستخدام جلسة
Camera2
. - يتم تشغيل الضوء ويتم التقاط إطار معاينة.
- يتحقق الاختبار من أنّ مؤشر الوضع الليلي في الحالة
OFF
. - يتم إطفاء الإضاءة ويتم التقاط إطار معاينة.
- يتحقق الاختبار من أنّ مؤشر الوضع الليلي في الحالة
ON
.
- يبدأ الاختبار جلسة لالتقاط المعاينة باستخدام جلسة
- جلسة إضافة الكاميرا:
- يكرّر الاختبار الإجراء نفسه المُتّبع في جلسة
Camera2
، ولكن باستخدام جلسةCameraExtension
مع الإضافةEXTENSION_NIGHT
.
- يكرّر الاختبار الإجراء نفسه المُتّبع في جلسة
- التنظيف: يغلق الاختبار
ItsSession
ويُطلق وحدة التحكّم في الإضاءة.
واجهات برمجة التطبيقات التي تم اختبارها:
المرور:
- عندما يكون الضوء مُفعَّلاً، يجب أن يكون مؤشر الوضع الليلي في الحالة
OFF
. - عندما تكون الإضاءة غير مفعّلة، يجب أن يكون مؤشر الوضع الليلي في الحالة
ON
. - ينطبق على جلسات
Camera2
وCameraExtension
.
test_preview_min_frame_rate
يختبر هذا الاختبار ما إذا كان عدد اللقطات في الثانية للمعاينة ينخفض بشكل صحيح في المشهد المظلم. لكي يعمل هذا الاختبار بشكل صحيح، يجب أن يوقِف مستخدم وحدة التحكّم المصابيح في منصة الاختبار أو أن يوقِفها مُشغّل الاختبار يدويًا.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
مقبول: يكون معدّل عرض اللقطات في المعاينة هو الحدّ الأدنى لنطاق معدّل عرض اللقطات المطلوب، ويكون اختلاف اللقطات أقل من الحدّ المسموح به المطلق الذي تم ضبطه في الاختبار.
test_torch_strength
يختبر هذا الاختبار ما إذا كان يتم تنفيذ التحكّم في قوة الفلاش في وضع
TORCH
بشكل صحيح.
التحقّق من أنّه إذا كان الجهاز يتيح التحكّم في قوة الفلاش أثناء استخدام الكاميرا
في وضع TORCH
، تتغيّر قوة المصباح اليدوي مع مستويات القوة المطلوبة المختلفة
التحقّق من أنّ عنصر التحكّم في قوة الفلاش يعمل مع
AE_MODES
مختلفة
على سبيل المثال، إذا كان وضع التعريض التلقائي هو ON
أو OFF
، سيؤثّر مستوى شدة فلاش الكامير
في السطوع، وإذا كان الوضع هو ON_AUTO_FLASH
، لن يؤثّر مستوى شدة فلاش الكامير
في السطوع.
للتحقّق من أنّ قوة ضوء المصباح تظلّ كما هي طوال مدة استخدام وضع
"الوميض"، ما يحاكي جلسة تصوير فيديو. لإجراء الاختبار، يجب إطفاء الأضواء في
منصة الاختبار. ويمكن إطفاء الأضواء تلقائيًا باستخدام
وحدة التحكّم Arduino. يجب أن يكون المشهد مظلمًا تمامًا لكي يعمل الاختبار بشكلٍ
صحيح.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_MAX_LEVEL
المرور:
عندما يكون وضع التعريض التلقائي هو ON
أو OFF
، يزداد سطوع مجموعات ومضات الصورة مع زيادة مستوى قوة الفلاش من عدم استخدام الفلاش
إلى
FLASH_TORCH_STRENGTH_MAX_LEVEL
.
عندما يكون وضع التعريض التلقائي هو ON_AUTO_FLASH
، يكون الفرق في
سطوع أجزاء اللقطات المتسلسلة للصورة ضمن حدود القبول
مع زيادة مستوى قوة الفلاش من عدم استخدام فلاش إلى
FLASH_TORCH_STRENGTH_MAX_LEVEL
.
sensor_fusion
تتطلّب اختبارات دمج البيانات من أجهزة الاستشعار تحريك الهاتف بطريقة معيّنة أمام نمط اشتهرت به لعبة الشطرنج
وعلامات ArUco. للحصول على أفضل النتائج، تأكَّد من تثبيت الرسم البياني الاختباري
بشكل مسطّح. تؤثر الرسوم البيانية غير المستوية في عمليات احتساب التدوير في العديد من
الاختبارات. يجب أن يملأ الرسم البياني الجزء الخلفي من مربّع دمج بيانات الاستشعار من خلال الطباعة بقياس
17 بوصة × 17 بوصة (43 × 43 سم). يمكن إجراء اختبارات sensor_fusion
آليًا باستخدام
Sensor Fusion Box.
الرسم البياني لدمج بيانات المستشعرات
رسم بياني لدمج بيانات المستشعرات يملأ الجزء الخلفي من مربّع دمج بيانات المستشعرات
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 من دوران أداة التسوية.
في ما يلي أمثلة على فيديوهات تم تحسينها باستخدام ميزة "التثبيت" وأخرى بدونها.
نموذج فيديو تم تثبيته
عيّنة فيديو بدون تثبيت
test_video_stabilization_jca
الاختبارات التي أظهرت أنّ الفيديو الذي تم تثبيته باستخدام تطبيق Jetpack Camera (JCA) يتحرّك بدرجة أقل من الدوران في أداة الاستشعار الدوراني يجب تثبيت JCA على الجهاز قبل الاختبار.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.CamcorderProfile
android.media.MediaRecorder
مقبول: الحد الأقصى لتدوير الزاوية على اللقطات المستخرَجة من الفيديو الذي تم التقاطه باستخدام JCA أقل من% 70 من دوران أداة التسوية.
feature_combination
تتحقّق اختبارات feature_combination
من عمل الميزات بشكل صحيح عند تفعيل ميزات متعددة للكاميرا في الوقت نفسه. تستخدِم هذه الاختبارات ملف صورة لوحة الشطرنج نفسه المستخدَم في مشهد دمج بيانات المستشعرات.
test_feature_combination
اختبار جميع تركيبات البث المختلفة ووضع تثبيت الفيديو ونطاق عدد اللقطات المستهدَف في الثانية وفيديو 10 بت بنطاق عالي الديناميكية وUltra HDR التي يتوافق معها جهاز الكاميرا
بالنسبة إلى الإصدار 16 والإصدارات الأحدث، يُجري الاختبار جميع مجموعات
الميزات المتوافقة، ويُسجّل النتائج في ملف proto. لا يتم استدعاء التأكيدات على حالات الفشل
إلا لمجموعات الميزات التي يعرض فيها
isSessionConfigurationSupported
القيمة True
.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
اجتياز: لكل مجموعة من الميزات المتوافقة:
- يتم تحسين جودة معاينة البث إذا كانت ميزة "تحسين جودة المعاينة" مفعّلة.
- يتراوح معدل عرض اللقطات في المعاينة ضمن
AE_TARGET_FPS_RANGE
الذي تم ضبطه. - تطابق مساحة اللون في بث المعاينة المسجّل المساحة التي تم ضبطها.
- تحتوي عملية الالتقاط بتقنية HDR الفائقة على خريطة مكاسب صالحة.
scene_ip
(متاحة من Android 16) يتيح المشهد scene_ip عمليات التحقّق من التطابق بين الصور في تطبيق الكاميرا التلقائي وتطبيق كاميرا Jetpack (JCA) بهدف تحديد الاختلافات الرئيسية بين الصور التي تم التقاطها. يُنشئ JCA نُسخًا من عمليات التقاط تطبيق وسائل التواصل الاجتماعي ويقدّم صورة أساسية تعالج تطبيقات وسائل التواصل الاجتماعي هذه الصورة وتُحسّنها.
متطلبات إعداد الأجهزة
يجب إعداد الأجهزة التالية لإجراء اختبارات scene_ip:
- يتم تنفيذ الاختبارات في كاميرا الجيل الثاني ITS-in-a-box.
- يتم استخدام أدوات التحكّم في الإضاءة والسيرفو التي تشكّل جزءًا من منصة الجيل الثاني للتحكّم في بيئة الاختبار.
- يتم وضع رسم بياني لميزة الاختبار داخل منصة Gen2.
Gen2chart_sample.png
اختبار معايير التخطّي
يتم تخطّي اختبارات scene_ip في حال استيفاء أيٍّ من المعايير التالية:
- إذا كان الجهاز يحتوي على مستوى واجهة برمجة تطبيقات (
first_api_level
) أول يبلغ 35 أو أقل - الجهاز ليس هاتفًا مزوّدًا بكاميرا أساسية أمامية وخلفية (مثل جهاز لوحي أو تلفزيون).
test_default_jca_ip
التقاط لقطات من الرسم البياني للميزة الاختبارية في ظروف إضاءة خاضعة للتحكّم باستخدام تطبيق الكاميرا التلقائي وJCA وإجراء عمليات التحقّق التالية:
مجال الرؤية: للتحقّق من أنّ تطبيق الكاميرا التلقائي وعمليات التقاط JCA تتضمّن مجال الرؤية نفسه يستخدم هذا التحقّق ميزة رمز الاستجابة السريعة في المنتصف المستخرَج من صور الالتقاط الرسوم البيانية.
السطوع: للتحقّق من أنّ الفرق في السطوع الذي تم قياسه بين تطبيق الكاميرا التلقائي وJCA لا يتجاوز 10 يستخدم هذا الفحص تصحيح النطاق الديناميكي لقياس السطوع.
توازن اللون الأبيض: للتأكّد من أنّ الفرق في توازن اللون الأبيض بين تطبيق الكاميرا التلقائي وJCA لا يتجاوز 4 يستخدم هذا الفحص تصحيح النطاق الديناميكي لقياس السطوع.
اجتياز القسم الأساسي: يجتاز الاختبار عمليات التحقّق من مجال الرؤية والسطوع وموازنة اللون الأبيض. في Android 16، لا يكون هذا الاختبار إلزاميًا
(NOT_YET_MANDATED
).