توفر هذه الصفحة قائمة شاملة بالاختبارات ضمن مجموعة اختبار صور الكاميرا (ITS)، والتي تعد جزءًا من مجموعة اختبار توافق Android (CTS). اختبارات ITS هي اختبارات وظيفية، مما يعني أنها لا تقيس جودة الصورة، ولكن جميع وظائف الكاميرا المعلن عنها تعمل كما هو متوقع. يتيح هذا المستند للمطورين والمختبرين فهم ما تفعله الاختبارات الفردية وكيفية تصحيح أخطاء فشل الاختبار.
اختبارات بوابات الكاميرا الذكية حسب خصائص الكاميرا المطلوبة ومستوى واجهة برمجة التطبيقات (API) ومستوى فئة أداء الوسائط (MPC). بالنسبة لمستوى واجهة برمجة التطبيقات، يستخدم ITS ro.product.first_api_level
لبوابة الاختبارات المضافة في مستوى واجهة برمجة تطبيقات محدد والذي يختبر تجارب المستخدم السلبية للوظائف في مستويات واجهة برمجة التطبيقات الأقل. يستخدم ITS ro.vendor.api_level
لإجراء اختبارات للميزات المضافة في مستوى واجهة برمجة التطبيقات (API) المحدد الذي يتطلب إمكانات أجهزة جديدة. إذا تم تعريف ro.odm.build.media_performance_class
لجهاز ما، فإن ITS يتطلب تشغيل اختبارات محددة وفقًا لمستوى MPC.
يتم تجميع الاختبارات حسب المشهد على النحو التالي:
- المشهد 0 : التقاط البيانات الوصفية، والارتعاش، والجيروسكوب، والاهتزاز
- المشهد 1 : التعرض، الحساسية، تعويض EV، YUV مقابل JPEG/RAW
- المشهد 2 : اكتشاف الوجه، الاختبارات التي تتطلب مشاهد ملونة أو ظلام كامل
- المشهد 3 : تعزيز الحافة، حركة العدسة
- المشهد 4 : نسبة العرض إلى الارتفاع، والاقتصاص، ومجال الرؤية
- المشهد 5 : تظليل العدسة
- المشهد 6 : التكبير
- Scene_extensions : ملحقات الكاميرا
- Sensor_fusion : إزاحة توقيت الكاميرا/الجيروسكوب
انظر الأقسام الفردية للحصول على وصف لكل مشهد.
المشهد0
لا تتطلب اختبارات Scene0 أي معلومات محددة عن المشهد. ومع ذلك، يجب أن يكون الهاتف ثابتًا لاختبار الجيروسكوب والاهتزاز.
test_burst_capture
التحقق من أن مسار الالتقاط بأكمله يمكنه مواكبة سرعة الالتقاط بالحجم الكامل ووقت وحدة المعالجة المركزية.
واجهات برمجة التطبيقات التي تم اختبارها:
تمرير: يلتقط مجموعة من الصور بالحجم الكامل وتكون الكاميرا سريعة بما يكفي لتجنب انتهاء المهلة.
test_capture_result_dump
اختبارات إرجاع نتيجة الالتقاط من الالتقاط اليدوي ثم تفريغها.
واجهات برمجة التطبيقات التي تم اختبارها:
تمرير: إكمال الالتقاط وتفريغ نتائج الالتقاط.
test_gyro_bias
يختبر ما إذا كان الجيروسكوب لديه خرج ثابت عندما يكون الجهاز ثابتًا. يتم رسم البيانات كمتوسط 20 نقطة بيانات.
واجهات برمجة التطبيقات التي تم اختبارها:
النجاح: دلتا قراءة الجيروسكوب أقل من 0.01 مع مرور الوقت.
test_gyro_bias_plot.png
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_param_sensitivity_burst
اختبارات تطبيق المعلمة android.sensor.sensitivity
بشكل صحيح في الاندفاع. يفحص بيانات تعريف الإخراج فقط.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
النجاح: تحتوي بيانات الإخراج على نسبة خطأ أقل من 0.2%.
test_read_write
يختبر أن الجهاز يكتب التعريض الضوئي الصحيح ويكتسب القيم من خلال إعادة قراءة البيانات التعريفية الملتقطة.
واجهات برمجة التطبيقات التي تم اختبارها:
-
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
Pass: يبدو أن 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
المرور: لا يهتز الجهاز عند كتم الصوت بواسطة واجهة برمجة تطبيقات تقييد صوت الكاميرا.
مشهد 1
Scene1 هو مخطط رمادي. يجب أن يغطي المخطط الرمادي المركز بنسبة 30% من مجال رؤية الكاميرا. من المتوقع أن يتحدى الرسم البياني الرمادي 3A (التعرض التلقائي، توازن اللون الأبيض التلقائي، التركيز التلقائي) بشكل معتدل حيث لا تحتوي المنطقة الوسطى على ميزات. ومع ذلك، يحدد طلب الالتقاط المشهد بأكمله والذي يتضمن ميزات كافية لتقارب 3A.
يمكن اختبار كاميرات RFoV في WFoV أو منصة اختبار RFoV. إذا تم اختبار كاميرا RFoV في منصة اختبار WFoV، فسيتم تغيير حجم المخطط بمقدار ⅔ لضمان بعض حدود المخطط الرمادي في FoV لمساعدة 3A على التقارب. لمزيد من الأوصاف التفصيلية لأجهزة اختبار الكاميرا، راجع Camera ITS-in-a-box .
المشهد 1: مخطط بالحجم الكامل (يسار). ⅔ مخطط مصغر (يمين).
test_3a
يختبر تقارب 3A مع هدف صعب إلى حد ما.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
تمرير: يتقارب 3A وتكون قيم 3A التي تم إرجاعها صالحة.
test_ae_af
يختبر خوارزميات التعريض التلقائي 3A (AE) والتركيز التلقائي (AF) بشكل فردي.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
تمرير: تتقارب 3A وتكون قيم 3A التي تم إرجاعها قانونية.
test_ae_precapture_trigger
يختبر جهاز حالة AE عند استخدام مشغل الالتقاط المسبق. يلتقط خمسة طلبات يدوية مع تعطيل AE. يحتوي الطلب الأخير على مشغل الالتقاط المسبق لـ AE، والذي يجب تجاهله نظرًا لتعطيل AE.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
تمرير: AE يتقارب.
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
Pass: لإنتاج صور بالأبيض والأسود. تحتوي القنوات المشبعة للصور البيضاء على قيم RGB تبلغ [255، 255، 255] مع هامش خطأ أقل من 1%.
test_black_white_black.jpg | test_black_white_white.jpg |
test_black_white_plot_means.png
test_burst_sameness_manual
يلتقط 5 دفعات من 50 صورة مع إعداد الالتقاط اليدوي ويتحقق من تطابقها جميعًا. يمكن استخدام هذا الاختبار لتحديد ما إذا كانت هناك إطارات متفرقة تتم معالجتها بشكل مختلف أو تحتوي على عناصر فنية.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
-
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
تمرير: الصور متطابقة بصريًا وفي قيم RGB.
فشل: يظهر ارتفاعًا أو انخفاضًا في مخطط متوسط RGB في بداية كل دفعة
- التسامح هو 3% لمستوى
first_API_level
<30 - التسامح هو 2% لمستوى
first_API_level
>= 30
test_burst_sameness_manual_mean.jpg
test_burst_sameness_manual_plot_means.png
test_capture_result
الاختبارات التي تظهر البيانات الصالحة مرة أخرى في كائنات CaptureResult
. يقوم بالالتقاط التلقائي واليدوي والتلقائي.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
-
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
النجاح: البيانات التعريفية صالحة لجميع عمليات الالتقاط ولا تتسرب الإعدادات اليدوية إلى الالتقاط التلقائي الثاني. يرسم تصحيح تظليل العدسة من أجل اللقطات.
test_capture_result_plot_lsc_auto_ch0.png
test_crop_region_raw
اختبارات أن تدفقات RAW غير قابلة للاقتصاص.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CaptureResult#SCALER_CROP_REGION
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
تمرير: يتم الحصول على صور YUV مقصوصة من المنتصف ولكن ليس صور RAW.
test_crop_region_raw_comp_raw_crop.jpg
test_crop_region_raw_comp_raw_full.jpg
test_crop_region_raw_comp_yuv_crop.jpg
test_crop_region_raw_yuv_full.jpg
test_crop_regions
الاختبارات التي تعمل مناطق المحاصيل. يلتقط صورة كاملة وينشئ تصحيحات من 5 مناطق مختلفة (الزوايا والوسط). يلتقط صورًا مع مجموعة الاقتصاص للمناطق الخمس. يقارن التصحيح وقيم صورة الاقتصاص.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
تمرير: تتطابق صورة المنطقة التي تم اقتصاصها مع التصحيح الذي يتوافق مع صورة الاقتصاص.
test_dng_noise_model
التحقق من صحة معلمات نموذج DNG الأولي. يصور المخطط التباين المقاس للرقعة المركزية للبطاقة الرمادية في لقطات أولية تم التقاطها عبر نطاق من الحساسيات، ويقارن هذه القيم مع التباين المتوقع عند كل حساسية بواسطة نموذج ضوضاء DNG في الكاميرا HAL (استنادًا إلى تم إرجاع معلمات O,S في كائنات نتيجة الالتقاط). للحصول على مزيد من التفاصيل حول نموذج ضوضاء DNG، قم بتنزيل المستند التالي حول نموذج ضوضاء DNG .
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILE
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
تمرير: معلمات نموذج DNG الأولية صحيحة. تتطابق قيم RGB المتوقعة مع قيم RGB الفعلية المقاسة.
test_dng_noise_model_plog.png
test_ev_compensation_advanced
اختبارات تطبيق تعويض قيمة التعريض الضوئي (EV). يزيد الاختبار من التعرض في ثماني خطوات، ويتحقق من السطوع المقاس مقابل السطوع المتوقع. يتم حساب القيم المتوقعة من سطوع الصورة مع عدم تطبيق تعويض EV وسوف تكون القيمة المتوقعة مشبعة إذا تجاوزت القيم المحسوبة نطاق قيمة الصورة الفعلية. يفشل الاختبار إذا كانت القيم المتوقعة والقيم المقاسة غير متطابقة أو إذا تم تعريض الصور بشكل زائد خلال خمس خطوات.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
-
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
-
android.hardware.camera2.CaptureResult#TONEMAP_MODE
تمرير: تُظهر الصور تعرضًا متزايدًا دون التعرض المفرط خلال خمس خطوات.
test_ev_compensation_advanced_plot_means.png
test_ev_compensation_basic
اختبارات تطبيق تعويض EV باستخدام نطاق تم إنشاؤه باستخدام CONTROL_AE_COMPENSATION_STEP
. يتم التقاط ثمانية إطارات بكل قيمة تعويض.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
-
android.hardware.camera2.CaptureResult#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
تمرير: يلتقط الزيادة في Luma مع زيادة إعداد تعويض EV، والإطارات الثمانية الملتقطة لكل إعداد تعويض EV لها قيم Luma ثابتة.
test_ev_compensation_basic.png
test_exposure
يتم تحقيق تعرض ثابت مع اختلاف ISO ووقت التعرض. يأخذ سلسلة من اللقطات التي تم اختيار ISO ووقت التعرض فيها لموازنة بعضها البعض. يجب أن تكون النتائج بنفس السطوع، ولكن مع مرور الوقت، يجب أن تصبح الصورة أكثر ضوضاءً. التحقق من أن قيم متوسط وحدات البكسل في العينة قريبة من بعضها البعض. يضمن عدم تثبيت الصور على 0 أو 1 (مما يجعلها تبدو كخطوط مسطحة). يمكن أيضًا تشغيل الاختبار باستخدام صور RAW عن طريق تعيين علامة debug
في ملف التكوين الخاص بك.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
تمرير: تتمتع الصور بنفس السطوع، ولكنها تصبح أكثر ضوضاءً مع حساسية ISO أعلى. تكون مستويات RGB مسطحة عندما تكون قيمة تعريض ISO* ثابتة على مساحة الكسب التي تم اختبارها.
test_exposure_plot_means.png
test_exposure_mult=1.00.jpg | test_exposure_mult=64.00.jpg |
test_jpeg
تبدو الاختبارات التي حولت صور YUV وصور JPEG الخاصة بالجهاز متماثلة. يأخذ الاختبار مركز 10% من الصورة ويحسب قيمة RGB ويتحقق من مطابقتها.
واجهات برمجة التطبيقات التي تم اختبارها:
تمرير: متوسط اختلاف RGB بين كل صورة أقل من 3%.
test_jpeg_fmt=jpg.jpg | test_jpeg=fmt=yuv.jpg |
test_latching
اختبارات تثبيت الإعدادات (التعرض والكسب) على الإطار الصحيح لكاميرات FULL
و LEVEL_3
. يلتقط سلسلة من اللقطات باستخدام طلبات متتالية، مع تغيير معلمات طلب الالتقاط بين اللقطات. التحقق من أن الصور لها الخصائص المتوقعة.
واجهات برمجة التطبيقات التي تم اختبارها:
النجاح: تحتوي الصور [2، 3، 6، 8، 10، 12، 13] على زيادة ISO أو التعرض للضوء وتظهر مع وسائل RGB أعلى على test_latching_plot_means.png
.
test_latching_i=00.jpg | test_latching_i=01.jpg | test_latching_i=02.jpg | |
test_latching_i=03.jpg | test_latching_i=04.jpg | test_latching_i=05.jpg | |
test_latching_i=06.jpg | test_latching_i=07.jpg | test_latching_i=08.jpg | |
test_latching_i=09.jpg | test_latching_i=10.jpg | test_latching_i=11.jpg | |
test_latching_i=12.jpg |
test_latching_plot_means.png
test_linearity
الاختبارات التي يمكن فيها قلب معالجة الجهاز إلى وحدات بكسل خطية. يلتقط سلسلة من اللقطات مع توجيه الجهاز نحو هدف موحد.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCK
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
تمرير: يجب أن تزيد قيم R وG وB خطيًا مع زيادة الحساسية.
test_linearity_plot_means.png
test_locked_burst
اختبارات قفل 3A وانفجار YUV (باستخدام الإعداد التلقائي). تم تصميم هذا الاختبار لاجتيازه حتى على الأجهزة المحدودة التي لا تحتوي على MANUAL_SENSOR
أو PER_FRAME_CONTROLS
. يتحقق الاختبار من تناسق صورة YUV أثناء فحص معدل الإطارات في CTS.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
التمريرة: تبدو اللقطات متسقة.
test_locked_burst_frame0.jpg
test_locked_burst_frame1.jpg
test_locked_burst_frame2.jpg
test_param_color_correction
اختبارات تطبيق معلمات android.colorCorrection.*
عند ضبطها. يلتقط لقطات بقيم تحويل واكتساب مختلفة، ويختبر أنها تبدو مختلفة تمامًا. يتم اختيار التحويل والمكاسب لجعل الإخراج باللون الأحمر أو الأزرق بشكل متزايد. يستخدم خريطة نغمة خطية. تعيين النغمات هو أسلوب يستخدم في معالجة الصور لتعيين مجموعة من الألوان إلى أخرى لتقريب مظهر الصور ذات النطاق الديناميكي العالي في وسط يحتوي على نطاق ديناميكي أكثر محدودية.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
التمرير: يتم تعزيز قيم R وB وفقًا للتحويل.
test_param_color_correction_plot_means.png
*المحور السيني هو طلبات الالتقاط: 0 = الوحدة، 1 = التعزيز الأحمر، 2 = التعزيز الأزرق
test_param_color_correction_req=0.jpg
test_param_color_correctness_req=1.jpg (تعزيز R)
test_param_color_correction_req=2.jpg (تعزيز B)
test_param_exposure_time
اختبارات تطبيق المعلمة android.sensor.exposureTime
.
واجهات برمجة التطبيقات التي تم اختبارها:
التمريرة: كل لقطة تكون أكثر سطوعًا من اللقطة السابقة.
test_param_exposure_time_frame0.jpg
test_param_exposure_time_plot.png
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
بشكل صحيح عند ضبطها. يلتقط الصور باستخدام الكاميرا ذات الإضاءة الخافتة. يستخدم كسبًا تناظريًا عاليًا لضمان أن الصورة الملتقطة مشوشة. يلتقط ثلاث صور، لإيقاف NR، و"سريع"، و"عالي الجودة". يلتقط أيضًا صورة ذات كسب منخفض وإيقاف NR، ويستخدم تباين هذا كخط أساسي. كلما ارتفعت نسبة الإشارة إلى الضوضاء (SNR)، كانت جودة الصورة أفضل.
واجهات برمجة التطبيقات التي تم اختبارها:
تمرير: تختلف نسبة الإشارة إلى الضوضاء (SNR) باختلاف أوضاع تقليل الضوضاء وتتصرف بشكل مشابه للرسم البياني أدناه.
test_param_noise_reduction_plot_SNRs.png
0: إيقاف، 1: سريع، 2: المقر الرئيسي، 3: دقيقة، 4: ZSL
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_sensitivity
اختبارات تطبيق المعلمة android.sensor.sensitivity
. يزيد الاختبار الحساسية في 5 خطوات مع تعريض ثابت لكل لقطة.
واجهات برمجة التطبيقات التي تم اختبارها:
تمرير: يعني RGB أن المركز 10% يصبح أكثر سطوعًا مع زيادة الحساسية.
test_param_sensitivity_iso=0055.jpg
test_param_sensitivity_iso=1819.jpg
test_param_sensitivity_iso=3583.jpg
test_param_sensitivity_iso=5347.jpg
test_param_sensitivity_iso=7111.jpg
test_param_sensitivity_plot.png
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، ويتحقق من تعديل الصور الناتجة كما هو متوقع. يتكون هذا الاختبار من اختبارين، اختبار 1 واختبار 2.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_MODE
-
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_FAST
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
يمر:
- test1: تحتوي كلتا الصورتين على خريطة نغمة خطية، ولكن n=1 به تدرج أكثر حدة. تكون قناة G (الخضراء) أكثر سطوعًا بالنسبة للصورة n=1.
- test2: نفس خريطة النغمة، ولكن بطول مختلف. الصور هي نفسها.
test_param_tonemap_mode_n=0.jpg | test_param_tonemap_mode_n=1.jpg |
test_post_raw_sensitivity_boost
الشيكات بعد تعزيز حساسية RAW. يلتقط مجموعة من صور RAW وYUV بحساسية مختلفة، وينشر مجموعة تعزيز حساسية RAW ويتحقق مما إذا كان متوسط بكسل الإخراج يطابق إعدادات الطلب.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
تمرير: تصبح صور RAW أكثر قتامة مع زيادة التعزيز بينما تظل صور YUV ثابتة في السطوع
test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg
test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg
test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_raw_plot_means.png
test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg
test_post_raw_sensitivity_boost_yuv_plot_means.png
test_raw_burst_sensitivity
يلتقط مجموعة من الصور الأولية ذات المكاسب المتزايدة ويقيس الضوضاء. يلتقط الخام فقط، في دفعة واحدة.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
التمريرة: كل لقطة تكون أكثر ضجيجًا من اللقطة السابقة، مع زيادة الكسب.
يستخدم تباين خلية شبكة الإحصائيات المركزية.
test_raw_burst_sensitivity_variance.png
test_raw_exposure
يلتقط مجموعة من الصور الأولية مع زيادة وقت التعرض ويقيس قيم البكسل.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
تمرير: زيادة ISO (الكسب) تجعل وحدات البكسل أكثر حساسية للضوء، وبالتالي تتحرك المؤامرة نحو اليسار.
test_raw_exposure_s=55.png
(10⁰ يساوي 1 مللي ثانية، 10¹ يساوي 10 مللي ثانية، 10⁻¹ يساوي 0.1 مللي ثانية)
test_raw_exposure_s=132.png
test_raw_exposure_s=209.png
test_raw_exposure_s=286.png
test_raw_exposure_s=363.png
test_raw_exposure_s=440.png
test_raw_sensitivity
يلتقط مجموعة من الصور الأولية ذات الحساسيات المتزايدة ويقيس التشويش (التباين) في منتصف الصورة بنسبة 10%. اختبارات أن كل طلقة أكثر ضجيجًا من سابقتها.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
التمريرة: يزداد التباين مع كل تسديدة.
test_raw_sensitivity_variance.png
test_reprocess_noise_reduction
اختبارات تطبيق android.noiseReduction.mode
على طلبات إعادة المعالجة. يلتقط الصور المعاد معالجتها باستخدام الكاميرا ذات الإضاءة الخافتة. يستخدم كسبًا تناظريًا عاليًا لضمان أن الصورة الملتقطة مشوشة. يلتقط ثلاث صور مُعاد معالجتها، لإيقاف تشغيل NR، و"سريع"، و"عالي الجودة". يلتقط صورة مُعاد معالجتها بكسب منخفض وإيقاف NR، ويستخدم تباين هذا كخط أساسي.
واجهات برمجة التطبيقات التي تم اختبارها:
التمرير: سريع >= إيقاف، المقر الرئيسي >= سريع، المقر الرئيسي >> إيقاف
مخطط SNR مقابل NR_MODE النموذجي
test_tonemap_sequence
يختبر سلسلة من اللقطات بمنحنيات مختلفة لخريطة الألوان. يلتقط 3 لقطات يدوية باستخدام خريطة نغمة خطية. يلتقط 3 لقطات يدوية باستخدام خريطة النغمات الافتراضية. يحسب الدلتا بين كل زوج من الإطارات المتتالية.
واجهات برمجة التطبيقات التي تم اختبارها:
التمرير: هناك 3 إطارات متطابقة متبوعة بمجموعة مختلفة من 3 إطارات متطابقة.
test_tonemap_sequence_i=0.jpg
test_tonemap_sequence_i=1.jpg
test_tonemap_sequence_i=2.jpg
test_tonemap_sequence_i=3.jpg
test_tonemap_sequence_i=4.jpg
test_tonemap_sequence_i=5.jpg
test_yuv_jpeg_all
اختبارات تعمل جميع الأحجام والتنسيقات المبلغ عنها لالتقاط الصور. يستخدم طلبًا يدويًا مع خريطة نغمة خطية بحيث يبدو YUV وJPEG متماثلين عند التحويل بواسطة وحدة image_processing_utils
. لا يتم حفظ الصور افتراضيًا، ولكن يمكن حفظها عن طريق تمكين debug_mode
.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.graphics.ImageFormat#JPEG
النجاح: تتمتع جميع مراكز الصور باختلاف أقصى RMS (قيمة الجذر المتوسط المربع للإشارة) في الصور المحولة بصيغة RGB بنسبة 3% من أعلى دقة لصورة YUV.
test_yuv_jpeg_all.png
test_yuv_plus_dng
اختبارات مدى نجاح الأحجام والتنسيقات المبلغ عنها لالتقاط الصور.
واجهات برمجة التطبيقات التي تم اختبارها:
النجاح: يكتمل الاختبار ويعيد الصور المطلوبة.
test_yuv_plus_dng.jpg
test_yuv_plus_jpeg
تلتقط الاختبارات إطارًا واحدًا كمخرجات YUV وJPEG. يستخدم طلبًا يدويًا مع خريطة نغمة خطية بحيث يبدو YUV وJPEG متماثلين عند التحويل بواسطة وحدة image_processing_utils
.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.graphics.ImageFormat#JPEG
تمرير: صور YUV وJPEG متشابهة ولها فرق أقل من 1% RMS (قيمة الجذر التربيعي للإشارة).
test_yuv_plus_jpg_jpg.jpg | test_yuv_plus_jpeg_yuv.jpg |
test_yuv_plus_raw
اختبارات التقاط إطار واحد كمخرجات RAW/RAW10/RAW12 وYUV إذا كانت مدعومة. يستخدم طلبًا يدويًا مع خريطة نغمة خطية، لذا من المتوقع أن يكون الخام وYUV متماثلين. يقارن قيم RGB المركزية للصور المحولة بنسبة 10%. سجلات android.shading.mode
.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_MODE
-
android.hardware.camera2.CaptureRequest#SHADING_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.hardware.graphics.ImageFormat#RAW10
-
android.hardware.graphics.ImageFormat#RAW12
النجاح: تتشابه الصور YUV والصور الأولية ولها فرق أقل من 3.5% RMS (قيمة الجذر التربيعي للإشارة).
test_yuv_plus_raw_shading=1_raw.jpg | test_yuv_plus_raw_shading=1_yuv.jpg |
Scene2_a
يحتوي Scene2_a على ثلاثة وجوه بخلفية رمادية وملابس محايدة. يتم اختيار الوجوه بحيث تحتوي على مجموعة واسعة من ألوان البشرة. يجب أن يكون للمخطط الاتجاه الصحيح حتى يعمل اكتشاف الوجه على النحو الأمثل.
Scene2_a
test_auto_flash
اختبارات تشغيل الفلاش التلقائي في مشهد مظلم. التحقق من تشغيل الفلاش التلقائي عن طريق التحقق من أن مركز صورة التجانب به تدرج كبير. لتشغيل الفلاش التلقائي، يجب إيقاف تشغيل الجهاز اللوحي والأضواء الموجودة في جهاز الاختبار. يتم إيقاف تشغيل الجهاز اللوحي عن طريق الاختبار، ويمكن إطفاء الأضواء تلقائيًا باستخدام وحدة التحكم Arduino. يجب أن يكون المشهد مظلمًا تمامًا حتى يعمل الاختبار بشكل صحيح. على هذا النحو، يجب تغطية فتحة الكمبيوتر اللوحي الخلفية بالكامل بواسطة الكمبيوتر اللوحي للمشهد، ويجب تغطية الفتحة الأمامية بفتحة وهاتف DUT لمنع الضوء الشارد من دخول المنصة.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#FLASH_MODE
تمرير: يحتوي وسط صورة التجانب على تدرج كبير مما يعني تشغيل الفلاش التلقائي.
test_autoframing
يختبر سلوك الإطارات التلقائية لجهاز الكاميرا. إجراء تكبير/تصغير كبير بحيث لا يكون أي من الوجوه في المشهد مرئيًا، وتمكين وضع الإطارات التلقائية عن طريق ضبط AUTOFRAMING
في CaptureRequest
على True
، والتحقق من إمكانية اكتشاف جميع الوجوه في المشهد الأصلي عندما تتقارب الحالة (أي عندما تم ضبط AUTOFRAMING_STATE
في CaptureResult
على AUTOFRAMING_STATE_CONVERGED
).
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLE
-
android.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMING
-
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING
-
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
تمرير: تم الكشف عن الوجوه الثلاثة.
test_display_p3
تعرض الاختبارات التقاط P3 بتنسيق JPEG باستخدام ColorSpaceProfiles
API. تختبر أن ملف JPEG الملتقط يحتوي على ملف تعريف ICC مناسب في رأسه، وأن الصورة تحتوي على ألوان خارج نطاق sRGB.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.params.ColorSpaceProfiles
-
android.hardware.camera2.params.SessionConfiguration#setColorSpace
تمرير: يحتوي ملف JPEG على ملف تعريف Display P3 ICC وألوان خارج نطاق sRGB.
test_effets
يلتقط الإطار لتأثيرات الكاميرا المدعومة ويتحقق مما إذا تم إنشاؤها بشكل صحيح. يتحقق الاختبار فقط من التأثيرات OFF
و MONO
، ولكنه يحفظ الصور لجميع التأثيرات المدعومة.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
-
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
تمرير: يلتقط صورة المشهد مع OFF
التأثيرات وصورة أحادية اللون مع ضبط التأثيرات على MONO
.
test_effets_MONO.jpg
test_format_combos
اختبارات مجموعات مختلفة من تنسيقات الإخراج.
واجهات برمجة التطبيقات التي تم اختبارها:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
android.hardware.camera2.CameraCaptureSession#captureBurst()
التمرير: تم التقاط كافة المجموعات بنجاح.
test_jpeg_quality
يختبر جودة ضغط JPEG للكاميرا. انتقل إلى صفات JPEG من خلال android.jpeg.quality
وتأكد من تغيير جداول القياس بشكل صحيح.
واجهات برمجة التطبيقات التي تم اختبارها:
النجاح: تتناقص مصفوفة التكميم مع زيادة الجودة. (تمثل المصفوفة عامل القسمة.)
متوسطات مصفوفة Luma/Chroma DQT للكاميرا الخلفية Pixel 4 مقابل جودة JPEG
مثال اختبار فاشل
لاحظ أنه بالنسبة للصور ذات الجودة المنخفضة جدًا (جودة jpeg <50)، لا توجد زيادة في الضغط في مصفوفة التكميم.
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_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_reprocess_uv_swap
تشير الاختبارات إلى أن إعادة معالجة YUV لا تقوم بتبديل مستويي U وV. يتم اكتشاف ذلك عن طريق حساب مجموع الاختلافات المطلقة (SAD) بين الصورة المعاد معالجتها والالتقاط غير المعاد معالجتها. إذا أدى تبديل مستويي الإخراج U وV للالتقاط المعاد معالجته إلى زيادة SAD، فمن المفترض أن يحتوي الإخراج على مستويي U وV الصحيحين.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraDevice#createCaptureSession
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING
-
android.hardware.camera2.CaptureRequest#EDGE_MODE
-
android.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
التمريرة: لا يتم تبديل طائرتي U وV.
test_reprocess_uv_swap.png
Scene2_b
test_num_faces
اختبارات اكتشاف الوجه مع زيادة تنوع لون البشرة في مشاهد الوجه.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
تمرير: يجد 3 وجوه.
test_num_faces_fd_mode_1.jpg
test_yuv_jpeg_capture_sameness
يلتقط صورتين باستخدام أكبر تنسيقات YUV وJPEG الشائعة بنفس نسبة العرض إلى الارتفاع مثل أكبر تنسيق JPEG ولا تتجاوز دقة 1920x1440. يضبط jpeg.quality
على 100 ويلتقط طلب السطح المزدوج. يحول كلا الصورتين إلى مصفوفات RGB ويحسب فرق مربع الجذر ثلاثي الأبعاد (RMS) بين الصورتين.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
-
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
-
android.graphics.ImageFormat#JPEG
تمرير: صور YUV وJPEG متشابهة ولها فرق أقل من 1% RMS (قيمة الجذر التربيعي للإشارة).
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 مللي ثانية لدقة 1080 بكسل كما تم قياسه بواسطة اختبار أداء كاميرا CTS تحت ظروف إضاءة ITS (3000K) لكلا الكاميرتين الأساسيتين.
test_camera_launch_perf_class
يختبر زمن انتقال تشغيل الكاميرا لفئة الأداء S كما هو محدد في القسم 2.2.7.2 الكاميرا في CDD.
النجاح: يجب أن يكون لديك زمن وصول لبدء تشغيل الكاميرا 2 (فتح الكاميرا لإطار المعاينة الأول) أقل من 600 مللي ثانية كما تم قياسه بواسطة اختبار أداء كاميرا CTS في ظل ظروف إضاءة ITS (3000 كلفن) لكلا الكاميرتين الأساسيتين.
المشهد2_د
test_num_faces
اختبارات اكتشاف الوجه مع زيادة تنوع لون البشرة في مشاهد الوجه.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
تمرير: يجد 3 وجوه.
Scene2_e
test_continious_picture
تم التقاط 50 إطارًا بدقة VGA من خلال طلب الالتقاط أولاً بإعداد android.control.afMode = 4 (CONTINUOUS_PICTURE).
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
-
android.hardware.camera2.CaptureResult#CONTROL_AF_STATE
-
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
النجاح: يستقر نظام 3A بنهاية الالتقاط المكون من 50 إطارًا.
test_num_faces
اختبارات اكتشاف الوجه مع زيادة تنوع لون البشرة في مشاهد الوجه.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
تمرير: يجد 3 وجوه.
Scene2_f
Scene2_f له ثلاثة وجوه بخلفية بيضاء وملابس بيضاء. تتميز الوجوه بمجموعة واسعة من ألوان البشرة وتباين عالٍ مع الخلفية.
Scene2_f
test_num_faces
اختبارات اكتشاف الوجه مع زيادة تنوع لون البشرة في مشاهد الوجه.
واجهات برمجة التطبيقات التي تم اختبارها:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
تمرير: يجد 3 وجوه.
test_num_faces_fd_mode_1.jpg
المشهد3
يستخدم Scene3 مخطط ISO12233 ، ويستخدم معظم الاختبارات طريقة مستخرج المخطط للعثور على المخطط في المشهد. لهذا السبب ، فإن معظم الصور المحفوظة لا تحتوي على حدود مثل الصور للمشاهد 1 أو 2 أو 4 ، ولكن فقط المخطط. يجب أن يكون الرسم البياني في الاتجاه الصحيح لمكتشف المخطط للعمل على النحو الأمثل.
test_3a_consistency
اختبارات الاتساق 3A.
تم اختبار واجهات برمجة التطبيقات:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
الممر: 3A يتقارب للتعرض ، والكسب ، و AWB (توازن أبيض أسيلة) ، و FD (مسافة التركيز) ثلاث مرات ضمن التسامح.
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
الاختبارات إذا كانت الصورة موجهة بشكل صحيح كما في قسم CDD 7.5.2 الكاميرا الأمامية [C-1-5] .
يمكن التعرف على الصور المتطابقة أو المزدحمة أو المدورة بواسطة ميزة الماس بالقرب من المركز.
الممر: الصورة غير مقلوبة أو متطابقة أو تدور.
test_flip_mirror_scene_patch.jpg
test_landscape_to_portrait
اختبارات إذا كان المشهد إلى Portraited يعمل بشكل صحيح لأجهزة الاستشعار الموجهة نحو المناظر الطبيعية.
تم اختبار واجهات برمجة التطبيقات:
-
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 إطارًا على مسافة التركيز المثلى (كما وجدها 3A) وأخطر الـ 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
المشهد 4
يتكون المشهد 4 من دائرة سوداء على خلفية بيضاء داخل مربع.
المشهد 4
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 ٪ ، ويتم الحفاظ على الحد الأقصى الممكن FOV (مجال العرض).
آليات الفشل:
- يتم تشويه الدائرة الموجودة في الصورة التي تم التقاطها بواسطة خط أنابيب المعالجة.
- يتم اقتصاص صورة الدقة المنخفضة في خط أنابيب الصورة مما يخلق FOV مختلفًا بين الصور عالية الدقة والمنخفضة.
- يتم اقتصاص الدائرة الموجودة في الصورة التي تم التقاطها بسبب طلب التقاط نسبة العرض إلى الارتفاع القصوى مما يقلل من ارتفاع أو عرض الصورة.
- الدائرة الموجودة في الصورة التي تم التقاطها لها انعكاس في الوسط ولا تظهر مملوءة بالكامل.
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. لمزيد من المعلومات ، راجع الكاميرا in-a-box faQ1 .
test_preview_aspect_ratio_and_crop
على غرار اختبار test_aspect_ratio_and_crop لالتقاطات ، يتحقق هذا الاختبار من تنسيقات المعاينة المدعومة لضمان عدم امتداد إطارات المعاينة أو اقتصاصها بشكل غير لائق. يتحقق من أن نسبة العرض إلى الارتفاع للدائرة لا تتغير ، والحفاظ على الصور المزروعة الدائرة في وسط الإطار ، وأن حجم الدائرة لا يتغير لتنسيق ثابت أو بدقة مختلفة (مجال فحص العرض).
تم اختبار واجهات برمجة التطبيقات:
-
android.hardware.camera2.CaptureResult#LENS_DISTORTION
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
-
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
تمرير: الصور غير ممتدة ، ولا يختلف مركز الصور بأكثر من 3 ٪ ، ويتم الحفاظ على الحد الأقصى الممكن FOV (مجال العرض).
test_preview_stabilization_fov
يتحقق من أحجام المعاينة المدعومة لضمان اقتصاص FOV بشكل مناسب. يلتقط الاختبار مقطعين فيديو ، أحدهما مع تثبيت ON
، وآخر مع تثبيت OFF
. يتم تحديد إطار تمثيلي من كل مقطع فيديو ، وتحليله للتأكد من أن تغييرات FOV في مقطع الفيديو اثنين ضمن المواصفات.
تم اختبار واجهات برمجة التطبيقات:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
PASS: تظل نسبة العرض إلى ارتفاع الدائرة ثابتة ، ويبقى موقع المركز للدائرة مستقراً ، ويتغير حجم الدائرة 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
PASS: لا يتم تمديد إطارات الفيديو ، ولا يختلف مركز الإطارات بأكثر من 3 ٪ ، ويتم الحفاظ على الحد الأقصى الممكن FOV (مجال العرض).
المشهد 5
يتطلب المشهد 5 مشهد رمادي مضاء بشكل موحد. يتم تحقيق ذلك من قبل ناشر وضع على عدسة الكاميرا. نوصي Diffuser التالي: www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168
.
لإعداد المشهد ، قم بتوصيل ناشر أمام الكاميرا وقم بتوجيه الكاميرا إلى مصدر إضاءة يبلغ حوالي 2000 لوكس. الصور التي تم التقاطها للمشهد 5 تتطلب إضاءة منتشرة دون أي ميزات واضحة. فيما يلي صورة عينة:
المشهد 5 التقاط
test_lens_shading_and_color_uniformity
يتم تطبيق الاختبارات التي يتم بها تطبيق تصحيح تظليل العدسة بشكل مناسب ، ويتم توزيع لون مشهد موحد أحادي اللون بالتساوي. يؤدي هذا الاختبار على إطار YUV مع Auto 3A. يتم تقييم تظليل العدسة بناءً على قناة Y. يقيس متوسط قيمة Y لكل كتلة عينة محددة ، ويحدد النجاح أو الفشل من خلال المقارنة مع قيمة Y المركزية. يتم تقييم اختبار توحيد اللون في مساحة R/G و B/G.
تم اختبار واجهات برمجة التطبيقات:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
الممر: في دائرة نصف قطرها المحددة من الصورة ، يجب أن يكون تباين قيمة R/G و B/G أقل من 20 ٪ لاجتياز الاختبار.
المشهد 6
المشهد 6 عبارة عن شبكة من الدوائر الصغيرة مع مربع في زاوية واحدة للإشارة إلى الاتجاه. هناك حاجة إلى دوائر صغيرة لاختبار وظيفة التكبير على نطاق كبير.
المشهد 6
test_in_sensor_zoom
يختبر سلوك ميزة تكبير الكاميرا داخل المستشعر ، والتي تنتج صورًا خامًا اقتصاصًا.
مع تعيين حالة استخدام التيار إلى CROPPED_RAW
، يأخذ الاختبار اثنين من التقاطات على نطاق التكبير ، وصورة كاملة من الرؤية (FOV) صورة الخام والصورة الخام المزروعة. يقوم الاختبار بتحويل الصور إلى صفائف RGB ، ويسقط الصورة الخام المزروعة بالحجم الكامل إلى الحجم الذي أبلغ عنه 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
PASS: الفرق بين الجذر 3D متوسط مربع (RMS) بين الصورة الخام المقطوعة من القطع والصورة الكاملة FOV RAW أقل من 1 ٪.
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
الممر: الحجم النسبي للدائرة الملتقطة دقيقة مقابل نسبة التكبير المطلوبة لضمان تكبير الكاميرا بشكل صحيح.
test_zoom للعثور على محيط الدائرة الأقرب إلى المركز.
test_low_latency_zoom
يختبر كاميرا سلوك تكبير كاميرا منخفضة. يأخذ التقاطات فوق نطاق التكبير مع android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM)
، ويتحقق مما إذا كانت الدوائر في صور الإخراج تتطابق مع نسب التكبير في بيانات التعريف.
تم اختبار واجهات برمجة التطبيقات:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDES
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDE
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
الممر: الحجم النسبي للدائرة التي تم التقاطها دقيقة مقابل بيانات التعريف الناتجة عن نسبة التكبير.
test_preview_video_zoom_match
اختبارات أنه أثناء تسجيل وتكبير المعاينة ومعاينة الفيديو وعرض إخراج الفيديو وتسجيل نفس الإخراج. يحسب حجم الدائرة الأقرب إلى المركز بنسب التكبير المختلفة ويتحقق مما إذا كان حجم الدائرة يزيد مع زيادة نسبة التكبير.
تم اختبار واجهات برمجة التطبيقات:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
الممر: الحجم النسبي للدائرة التي تم التقاطها دقيقة مقابل نسبة التكبير المطلوبة في الفيديو والمعاينة.
vga_640x480_key_frame.png (قبل التكبير)
معاينة_640x480_key_frame.png (قبل التكبير)
vga_640x480_key_frame.png (بعد التكبير)
معاينة_640x480_key_frame.png (بعد التكبير)
scene_extensions
اختبارات scene_extensions
مخصصة لتمديدات الكاميرا ويجب استخدام الكاميرا في صندوقها ، لأنها تتطلب تحكمًا دقيقًا في بيئة الاختبار.
scene_hdr
يتكون مشهد scene_hdr
من صورة على اليسار ورمز QR منخفض التباين على اليمين.
scene_hdr
test_hdr_extension
يختبر امتداد HDR . يأخذ التقاطات مع وبدون التمكين التمديد ، والتحقق مما إذا كان الامتداد يجعل رمز الاستجابة السريعة أكثر قابلية للاكتشاف.
تم اختبار واجهات برمجة التطبيقات:
-
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
-
android.hardware.camera2.CameraExtensionSession#capture
PASS: يقلل امتداد HDR من عدد التغييرات في التباين اللازمة للكشف عن رمز الاستجابة السريعة أو يقلل من التدرج عبر رمز الاستجابة السريعة.
المشهد
يتألف مشهد scene_night
من دائرة بيضاء مع أربع دوائر أصغر بداخلها ، كل ذلك على خلفية سوداء. الدائرة الأصغر في الزاوية اليمنى العليا أغمق من الآخرين للإشارة إلى الاتجاه.
المشهد
test_night_extension
اختبارات تمديد الليل . يلتقط التقاطات مع تمكين التمديد وبدونه ، ويتحقق مما يلي:
- يستغرق التقاط مع تمكين تمديد الليل وقتًا أطول.
- الالتقاط مع تمديد الليل الممكّن أكثر إشراقًا أو يحتوي على قطعة أثرية مشهد مع مظهر محسن.
تم اختبار واجهات برمجة التطبيقات:
-
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
-
android.hardware.camera2.CameraExtensionSession#capture
الممر: بالمقارنة مع الالتقاط دون تمكين تمديد الليل ، يستغرق التقاط مع تمكين امتداد الليل 0.5 ثانية على الأقل. يجب أن يكون الالتقاط أكثر إشراقًا على الأقل بنسبة 10 ٪ ، أو يجب أن تكون النقاط الرمادية في المشهد أقل من 20 بكسل من مركز الدائرة المحيطة.
sensor_fusion
تتطلب اختبارات اندماج المستشعر حركة هاتف محددة أمام نمط لوحة المشي. للحصول على النتائج المثلى ، تأكد من تثبيت مخطط الاختبار بشكل مسطح. تؤثر المخططات غير المسطحة على حسابات الدوران للعديد من الاختبارات. يمكن أن تكون اختبارات sensor_fusion
مؤتمتة باستخدام مربع الانصهار المستشعر .
صورة لوحة المشي
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_stabbization
الاختبارات التي استقرت معاينة الفيديو تدور أقل من الجيروسكوب.
تم اختبار واجهات برمجة التطبيقات:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
الممر: أقصى زاوية دوران على الإطارات أقل من 70 ٪ من دوران الجيروسكوب.
فيما يلي عينة من مقاطع الفيديو مع وبدون تثبيت.
عينة من الفيديو مع الاستقرار
عينة من الفيديو بدون تثبيت
test_sensor_fusion
يختبر اختلاف الطابع الزمني بين الكاميرا وجيروسكوب لتطبيقات AR و VR. يتم تدوير الهاتف 90 درجة 10 مرات أمام نمط لوحة المشي. الحركة حوالي 2 ثانية ذهابا وإيابا. يتم تخطي هذا الاختبار إذا لم يتم تضمين أي جيروسكوب أو إذا لم يتم تمكين معلمة Timestamp Source 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
PASS: إزاحة الكاميرا وجييروسكوب الطوابع الزمنية أقل من 1 مللي ثانية وفقًا لقسم CDD 7.3.9 مستشعرات الإخلاص العالية [C-2-14] .
آليات الفشل:
- خطأ الإزاحة: لم يتم معايرة إزاحة الكاميرا-Gyroscope بشكل صحيح إلى داخل +/- 1 مللي ثانية.
- قطرات الإطار: خط الأنابيب ليس سريعًا بما يكفي لالتقاط 200 إطار على التوالي.
- أخطاء المقبس: لا يمكن
adb
الاتصال بشكل موثوق مع الهولنديين لفترة كافية لتنفيذ الاختبار. - الرسم البياني غير مثبت على مسطح. يحتوي مؤامرة
test_sensor_fusion_plot_rotations
على إطارات حيث تختلف دوران الجيروسكوب والكاميرا بشكل كبير مع تدوير الكاميرا عبر أجزاء المخطط غير المسطح. - الكاميرا غير مثبتة مسطحة. يُظهر المؤامرة
test_sensor_fusion_gyro_events
الحركة في طائرات x و y. يكون هذا الفشل أكثر شيوعًا في الكاميرات التي تواجه الأمام حيث أن الكاميرا الخلفية غالبًا ما تحتوي على نتوء مرفوع لبقية جسم الهاتف ، مما يخلق إمالة عند تركيب الجزء الخلفي من الهاتف على لوحة التثبيت.
test_video_stabbization
الاختبارات التي استقرت على الفيديو يدور أقل من الجيروسكوب.
تم اختبار واجهات برمجة التطبيقات:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
تمرير: أقصى دوران الزاوية على الإطارات أقل من 60 ٪ من دوران الجيروسكوب.
فيما يلي عينة من مقاطع الفيديو مع وبدون تثبيت.
عينة من الفيديو مع الاستقرار
عينة من الفيديو بدون تثبيت
test_led_snapshot
الاختبارات التي لا تشبعها لقطات LED أو تلميخ الصورة.
يضيف هذا الاختبار وحدة تحكم الإضاءة إلى مربع دمج المستشعر للتحكم في الأضواء. مع ضبط الأنوار على OFF
، يأخذ الاختبار التقاط باستخدام ON
AUTO_FLASH
. أثناء هذا الالتقاط ، يقوم الاختبار بتشغيل تسلسل precapture مع تعيين مشغل 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).