اختبارات الكاميرا ITS واختبارات Camera ITS

توفر هذه الصفحة قائمة شاملة بالاختبارات ضمن مجموعة اختبار صور الكاميرا (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_gyro_bias_plot.png

test_jitter

يقيس الارتعاش في الطوابع الزمنية للكاميرا.

واجهات برمجة التطبيقات التي تم اختبارها:

التمرير: هناك دلتا لا تقل عن 30 مللي ثانية بين الإطارات.

test_jitter_plot.png

test_jitter_plot.png (لاحظ نطاق المحور y الصغير. الارتعاش صغير بالفعل في هذه المخطط.)

test_metadata

يختبر صحة إدخالات البيانات الوصفية. ينظر إلى نتائج الالتقاط والكائنات المميزة للكاميرا. يستخدم هذا الاختبار التعرض auto_capture_request واكتساب القيم لأن محتوى الصورة ليس مهمًا.

واجهات برمجة التطبيقات التي تم اختبارها:

التمرير: مستوى الأجهزة، و rollingShutterSkew ، وعلامات frameDuration ، و timestampSource ، و croppingType ، و blackLevelPattern ، و pixel_pitch ، وFoV، والمسافة فائقة البؤرة موجودة ولها قيم صالحة.

test_param_sensitivity_burst

اختبارات تطبيق المعلمة android.sensor.sensitivity بشكل صحيح في الاندفاع. يفحص بيانات تعريف الإخراج فقط.

واجهات برمجة التطبيقات التي تم اختبارها:

النجاح: تحتوي بيانات الإخراج على نسبة خطأ أقل من 0.2%.

test_read_write

يختبر أن الجهاز يكتب التعريض الضوئي الصحيح ويكتسب القيم من خلال إعادة قراءة البيانات التعريفية الملتقطة.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: تتطابق قيم القراءة والكتابة في جميع اللقطات.

test_sensor_events

يختبر الجهاز الذي يستعلم عن أحداث المستشعر ويطبعها للأجهزة التي تعلن عن دعم دمج المستشعر. المستشعرات المتوقعة هي مقياس التسارع والجيروسكوب ومقياس المغناطيسية. يعمل هذا الاختبار فقط إذا كانت الشاشة قيد التشغيل، مما يعني أن الجهاز ليس في وضع الاستعداد.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يتم استقبال الأحداث الخاصة بكل مستشعر.

test_solid_color_test_pattern

اختبارات إنشاء أنماط اختبار الألوان الصلبة بشكل صحيح لكتم صوت الكاميرا. إذا كان كتم صوت الكاميرا مدعومًا، فيجب دعم أنماط اختبار الألوان الصلبة. إذا لم يكن كتم صوت الكاميرا مدعومًا، فسيتم اختبار أنماط اختبار الألوان الصلبة فقط إذا تم الإعلان عن الإمكانية.

إذا كانت صور RAW مدعومة، فسيتم اختبار تعيين الألوان أيضًا. الألوان التي تم اختبارها هي الأسود والأبيض والأحمر والأزرق والأخضر. بالنسبة للكاميرات التي لا تدعم صور RAW، يتم اختبار اللون الأسود فقط.

واجهات برمجة التطبيقات التي تم اختبارها:

النجاح: أنماط الاختبار الصلبة المدعومة هي اللون الصحيح ويوجد تباين منخفض في الصورة.

test_test_pattern

يختبر المعلمة android.sensor.testPatternMode لالتقاط الإطارات لكل نمط اختبار صالح ويتحقق من إنشاء الإطارات بشكل صحيح للألوان الصلبة وأشرطة الألوان. ويتضمن هذا الاختبار الخطوات التالية:

  1. يلتقط الصور لجميع أنماط الاختبار المدعومة.
  2. يقوم بإجراء فحص صحة بسيط لنمط اختبار الألوان الصلبة وأشرطة الألوان.

واجهات برمجة التطبيقات التي تم اختبارها:

النجاح: يتم إنشاء أنماط الاختبار المدعومة بشكل صحيح.

test_test_patterns_2

test_test_patterns_2.jpg

test_tonemap_curve

يختبر تحويل نمط الاختبار من RAW إلى YUV باستخدام خريطة النغمات الخطية. يتطلب هذا الاختبار android.sensor.testPatternMode = 2 (COLOR_BARS) لإنشاء نمط صورة مثالي لتحويل خريطة النغمات. يضمن أن يحتوي خط الأنابيب على مخرجات ألوان مناسبة مع خريطة نغمة خطية وإدخال صورة مثالي (يعتمد على test_test_patterns ).

واجهات برمجة التطبيقات التي تم اختبارها:

Pass: يبدو أن YUV و RAW متشابهان مع بعضهما البعض.

test_tonemap_curve_raw_2

test_tonemap_curve_raw_2.jpg

test_tonemap_curve_yuv_2.jpg

test_tonemap_curve_yuv_2.jpg

test_unified_timestamp

يختبر ما إذا كانت أحداث الصورة ومستشعر الحركة في نفس المجال الزمني.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: الطوابع الزمنية للحركة موجودة بين الطوابع الزمنية للصورة.

test_vibration_restriction

يختبر ما إذا كان اهتزاز الجهاز يعمل كما هو متوقع.

واجهات برمجة التطبيقات التي تم اختبارها:

المرور: لا يهتز الجهاز عند كتم الصوت بواسطة واجهة برمجة تطبيقات تقييد صوت الكاميرا.

مشهد 1

Scene1 هو مخطط رمادي. يجب أن يغطي المخطط الرمادي المركز بنسبة 30% من مجال رؤية الكاميرا. من المتوقع أن يتحدى الرسم البياني الرمادي 3A (التعرض التلقائي، توازن اللون الأبيض التلقائي، التركيز التلقائي) بشكل معتدل حيث لا تحتوي المنطقة الوسطى على ميزات. ومع ذلك، يحدد طلب الالتقاط المشهد بأكمله والذي يتضمن ميزات كافية لتقارب 3A.

يمكن اختبار كاميرات RFoV في WFoV أو منصة اختبار RFoV. إذا تم اختبار كاميرا RFoV في منصة اختبار WFoV، فسيتم تغيير حجم المخطط بمقدار ⅔ لضمان بعض حدود المخطط الرمادي في FoV لمساعدة 3A على التقارب. لمزيد من الأوصاف التفصيلية لأجهزة اختبار الكاميرا، راجع Camera ITS-in-a-box .

مشهد 1

المشهد 1: مخطط بالحجم الكامل (يسار). ⅔ مخطط مصغر (يمين).

test_3a

يختبر تقارب 3A مع هدف صعب إلى حد ما.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يتقارب 3A وتكون قيم 3A التي تم إرجاعها صالحة.

test_ae_af

يختبر خوارزميات التعريض التلقائي 3A (AE) والتركيز التلقائي (AF) بشكل فردي.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: تتقارب 3A وتكون قيم 3A التي تم إرجاعها قانونية.

test_ae_precapture_trigger

يختبر جهاز حالة AE عند استخدام مشغل الالتقاط المسبق. يلتقط خمسة طلبات يدوية مع تعطيل AE. يحتوي الطلب الأخير على مشغل الالتقاط المسبق لـ AE، والذي يجب تجاهله نظرًا لتعطيل AE.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: AE يتقارب.

test_auto_vs_manual

تبدو الاختبارات التي التقطت اللقطات التلقائية واليدوية متشابهة.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: تتطابق مكاسب توازن اللون الأبيض اليدوي والتحويل المُبلغ عنها في كل نتيجة التقاط مع estimate توازن اللون الأبيض التلقائي من خوارزمية 3A الخاصة بالكاميرا.

test_auto_vs_manual_auto

test_auto_vs_manual_auto.jpg

test_auto_vs_manual_wb

test_auto_vs_manual_wb.jpg

test_auto_vs_manual_manual_wb_tm

test_auto_vs_manual_manual_wb_tm.jpg

test_black_white

اختبارات أن الجهاز ينتج صورًا كاملة بالأبيض والأسود. يلتقط لقطتين، الأولى ذات كسب منخفض للغاية وتعريض ضوئي قصير، مما ينتج عنه صورة سوداء، والثانية ذات كسب مرتفع للغاية وتعريض ضوئي طويل، مما يؤدي إلى صورة بيضاء.

واجهات برمجة التطبيقات التي تم اختبارها:

Pass: لإنتاج صور بالأبيض والأسود. تحتوي القنوات المشبعة للصور البيضاء على قيم RGB تبلغ [255، 255، 255] مع هامش خطأ أقل من 1%.

test_black_white_blacktest_black_white_black
test_black_white_black.jpg test_black_white_white.jpg

test_black_white_plot_means

test_black_white_plot_means.png

test_burst_sameness_manual

يلتقط 5 دفعات من 50 صورة مع إعداد الالتقاط اليدوي ويتحقق من تطابقها جميعًا. يمكن استخدام هذا الاختبار لتحديد ما إذا كانت هناك إطارات متفرقة تتم معالجتها بشكل مختلف أو تحتوي على عناصر فنية.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: الصور متطابقة بصريًا وفي قيم RGB.

فشل: يظهر ارتفاعًا أو انخفاضًا في مخطط متوسط ​​RGB في بداية كل دفعة

  • التسامح هو 3% لمستوى first_API_level <30
  • التسامح هو 2% لمستوى first_API_level >= 30

test_burst_sameness_manual_mean

test_burst_sameness_manual_mean.jpg

test_burst_sameness_manual_plot_means

test_burst_sameness_manual_plot_means.png

test_capture_result

الاختبارات التي تظهر البيانات الصالحة مرة أخرى في كائنات CaptureResult . يقوم بالالتقاط التلقائي واليدوي والتلقائي.

واجهات برمجة التطبيقات التي تم اختبارها:

النجاح: البيانات التعريفية صالحة لجميع عمليات الالتقاط ولا تتسرب الإعدادات اليدوية إلى الالتقاط التلقائي الثاني. يرسم تصحيح تظليل العدسة من أجل اللقطات.

test_capture_result_plot_lsc_auto_ch0

test_capture_result_plot_lsc_auto_ch0.png

test_crop_region_raw

اختبارات أن تدفقات RAW غير قابلة للاقتصاص.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يتم الحصول على صور YUV مقصوصة من المنتصف ولكن ليس صور RAW.

test_crop_region_raw_comp_raw_crop

test_crop_region_raw_comp_raw_crop.jpg

test_crop_region_raw_comp_raw_full

test_crop_region_raw_comp_raw_full.jpg

test_crop_region_raw_comp_yuv_crop

test_crop_region_raw_comp_yuv_crop.jpg

test_crop_region_raw_yuv_full

test_crop_region_raw_yuv_full.jpg

test_crop_regions

الاختبارات التي تعمل مناطق المحاصيل. يلتقط صورة كاملة وينشئ تصحيحات من 5 مناطق مختلفة (الزوايا والوسط). يلتقط صورًا مع مجموعة الاقتصاص للمناطق الخمس. يقارن التصحيح وقيم صورة الاقتصاص.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: تتطابق صورة المنطقة التي تم اقتصاصها مع التصحيح الذي يتوافق مع صورة الاقتصاص.

test_dng_noise_model

التحقق من صحة معلمات نموذج DNG الأولي. يصور المخطط التباين المقاس للرقعة المركزية للبطاقة الرمادية في لقطات أولية تم التقاطها عبر نطاق من الحساسيات، ويقارن هذه القيم مع التباين المتوقع عند كل حساسية بواسطة نموذج ضوضاء DNG في الكاميرا HAL (استنادًا إلى تم إرجاع معلمات O,S في كائنات نتيجة الالتقاط). للحصول على مزيد من التفاصيل حول نموذج ضوضاء DNG، قم بتنزيل المستند التالي حول نموذج ضوضاء DNG .

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: معلمات نموذج DNG الأولية صحيحة. تتطابق قيم RGB المتوقعة مع قيم RGB الفعلية المقاسة.

test_dng_noise_model_plog

test_dng_noise_model_plog.png

test_ev_compensation_advanced

اختبارات تطبيق تعويض قيمة التعريض الضوئي (EV). يزيد الاختبار من التعرض في ثماني خطوات، ويتحقق من السطوع المقاس مقابل السطوع المتوقع. يتم حساب القيم المتوقعة من سطوع الصورة مع عدم تطبيق تعويض EV وسوف تكون القيمة المتوقعة مشبعة إذا تجاوزت القيم المحسوبة نطاق قيمة الصورة الفعلية. يفشل الاختبار إذا كانت القيم المتوقعة والقيم المقاسة غير متطابقة أو إذا تم تعريض الصور بشكل زائد خلال خمس خطوات.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: تُظهر الصور تعرضًا متزايدًا دون التعرض المفرط خلال خمس خطوات.

test_ev_compensation_advanced_plot_means

test_ev_compensation_advanced_plot_means.png

test_ev_compensation_basic

اختبارات تطبيق تعويض EV باستخدام نطاق تم إنشاؤه باستخدام CONTROL_AE_COMPENSATION_STEP . يتم التقاط ثمانية إطارات بكل قيمة تعويض.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يلتقط الزيادة في Luma مع زيادة إعداد تعويض EV، والإطارات الثمانية الملتقطة لكل إعداد تعويض EV لها قيم Luma ثابتة.

test_ev_compensation_basic

test_ev_compensation_basic.png

test_exposure

يتم تحقيق تعرض ثابت مع اختلاف ISO ووقت التعرض. يأخذ سلسلة من اللقطات التي تم اختيار ISO ووقت التعرض فيها لموازنة بعضها البعض. يجب أن تكون النتائج بنفس السطوع، ولكن مع مرور الوقت، يجب أن تصبح الصورة أكثر ضوضاءً. التحقق من أن قيم متوسط ​​وحدات البكسل في العينة قريبة من بعضها البعض. يضمن عدم تثبيت الصور على 0 أو 1 (مما يجعلها تبدو كخطوط مسطحة). يمكن أيضًا تشغيل الاختبار باستخدام صور RAW عن طريق تعيين علامة debug في ملف التكوين الخاص بك.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: تتمتع الصور بنفس السطوع، ولكنها تصبح أكثر ضوضاءً مع حساسية ISO أعلى. تكون مستويات RGB مسطحة عندما تكون قيمة تعريض ISO* ثابتة على مساحة الكسب التي تم اختبارها.

test_exposure_plot_means

test_exposure_plot_means.png

test_exposure_mult=1.00test_exposure_mult=64.00
test_exposure_mult=1.00.jpg test_exposure_mult=64.00.jpg

test_jpeg

تبدو الاختبارات التي حولت صور YUV وصور JPEG الخاصة بالجهاز متماثلة. يأخذ الاختبار مركز 10% من الصورة ويحسب قيمة RGB ويتحقق من مطابقتها.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: متوسط ​​اختلاف RGB بين كل صورة أقل من 3%.

test_jpeg_fmt=jpg.jpgtest_jpeg=fmt=yuv.jpg
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.jpgtest_latching_i=01.jpgtest_latching_i=02.jpg
test_latching_i=00.jpg test_latching_i=01.jpg test_latching_i=02.jpg
test_latching_i=03.jpgtest_latching_i=04.jpgtest_latching_i=05.jpg
test_latching_i=03.jpg test_latching_i=04.jpg test_latching_i=05.jpg
test_latching_i=06.jpgtest_latching_i=07.jpgtest_latching_i=08.jpg
test_latching_i=06.jpg test_latching_i=07.jpg test_latching_i=08.jpg
test_latching_i=09.jpgtest_latching_i=10.jpgtest_latching_i=11.jpg
test_latching_i=09.jpg test_latching_i=10.jpg test_latching_i=11.jpg
test_latching_i=12.jpg
test_latching_i=12.jpg

test_latching_plot_means

test_latching_plot_means.png

test_linearity

الاختبارات التي يمكن فيها قلب معالجة الجهاز إلى وحدات بكسل خطية. يلتقط سلسلة من اللقطات مع توجيه الجهاز نحو هدف موحد.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يجب أن تزيد قيم R وG وB خطيًا مع زيادة الحساسية.

test_linearity_plot_means

test_linearity_plot_means.png

test_locked_burst

اختبارات قفل 3A وانفجار YUV (باستخدام الإعداد التلقائي). تم تصميم هذا الاختبار لاجتيازه حتى على الأجهزة المحدودة التي لا تحتوي على MANUAL_SENSOR أو PER_FRAME_CONTROLS . يتحقق الاختبار من تناسق صورة YUV أثناء فحص معدل الإطارات في CTS.

واجهات برمجة التطبيقات التي تم اختبارها:

التمريرة: تبدو اللقطات متسقة.

test_locked_burst_frame0

test_locked_burst_frame0.jpg

test_locked_burst_frame1

test_locked_burst_frame1.jpg

test_locked_burst_frame2

test_locked_burst_frame2.jpg

test_param_color_correction

اختبارات تطبيق معلمات android.colorCorrection.* عند ضبطها. يلتقط لقطات بقيم تحويل واكتساب مختلفة، ويختبر أنها تبدو مختلفة تمامًا. يتم اختيار التحويل والمكاسب لجعل الإخراج باللون الأحمر أو الأزرق بشكل متزايد. يستخدم خريطة نغمة خطية. تعيين النغمات هو أسلوب يستخدم في معالجة الصور لتعيين مجموعة من الألوان إلى أخرى لتقريب مظهر الصور ذات النطاق الديناميكي العالي في وسط يحتوي على نطاق ديناميكي أكثر محدودية.

واجهات برمجة التطبيقات التي تم اختبارها:

التمرير: يتم تعزيز قيم R وB وفقًا للتحويل.

test_param_color_correction_plot_means

test_param_color_correction_plot_means.png

*المحور السيني هو طلبات الالتقاط: 0 = الوحدة، 1 = التعزيز الأحمر، 2 = التعزيز الأزرق

test_param_color_correction_req=0

test_param_color_correction_req=0.jpg

test_param_color_correctness_req=1

test_param_color_correctness_req=1.jpg (تعزيز R)

test_param_color_correction_req=2

test_param_color_correction_req=2.jpg (تعزيز B)

test_param_exposure_time

اختبارات تطبيق المعلمة android.sensor.exposureTime .

واجهات برمجة التطبيقات التي تم اختبارها:

التمريرة: كل لقطة تكون أكثر سطوعًا من اللقطة السابقة.

test_param_exposure_time_frame0

test_param_exposure_time_frame0.jpg

test_param_exposure_time_plot

test_param_exposure_time_plot.png

test_param_flash_mode

اختبارات تطبيق المعلمة android.flash.mode . يضبط التعريض الضوئي يدويًا على الجانب المظلم، بحيث يكون واضحًا ما إذا كان الفلاش قد تم تشغيله أم لا، ويستخدم خريطة نغمة خطية. يتحقق من المركز باستخدام صورة البلاط لمعرفة ما إذا كان هناك تدرج كبير تم إنشاؤه للتحقق من تشغيل الفلاش.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يحتوي وسط صورة التجانب على تدرج كبير مما يعني إطلاق الفلاش.

test_param_flash_mode_1

test_param_flash_mode_1.jpg

test_param_flash_mode_1_tile

test_param_flash_mode_1_tile.jpg

test_param_flash_mode_2

test_param_flash_mode_2.jpg

test_param_flash_mode_2_tile

test_param_flash_mode_2_tile.jpg

test_param_noise_reduction

اختبارات تطبيق المعلمة android.noiseReduction.mode بشكل صحيح عند ضبطها. يلتقط الصور باستخدام الكاميرا ذات الإضاءة الخافتة. يستخدم كسبًا تناظريًا عاليًا لضمان أن الصورة الملتقطة مشوشة. يلتقط ثلاث صور، لإيقاف NR، و"سريع"، و"عالي الجودة". يلتقط أيضًا صورة ذات كسب منخفض وإيقاف NR، ويستخدم تباين هذا كخط أساسي. كلما ارتفعت نسبة الإشارة إلى الضوضاء (SNR)، كانت جودة الصورة أفضل.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: تختلف نسبة الإشارة إلى الضوضاء (SNR) باختلاف أوضاع تقليل الضوضاء وتتصرف بشكل مشابه للرسم البياني أدناه.

test_param_noise_reduction_plot_SNRs

test_param_noise_reduction_plot_SNRs.png

0: إيقاف، 1: سريع، 2: المقر الرئيسي، 3: دقيقة، 4: ZSL

test_param_noise_reduction_high_gain_nr=0

test_param_noise_reduction_high_gain_nr=0.jpg

test_param_noise_reduction_high_gain_nr=1

test_param_noise_reduction_high_gain_nr=1.jpg

test_param_noise_reduction_high_gain_nr=2

test_param_noise_reduction_high_gain_nr=2.jpg

test_param_noise_reduction_high_gain_nr=3

test_param_noise_reduction_high_gain_nr=3.jpg

test_param_noise_reduction_low_gain

test_param_noise_reduction_low_gain.jpg

test_param_sensitivity

اختبارات تطبيق المعلمة android.sensor.sensitivity . يزيد الاختبار الحساسية في 5 خطوات مع تعريض ثابت لكل لقطة.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يعني RGB أن المركز 10% يصبح أكثر سطوعًا مع زيادة الحساسية.

test_param_sensitivity_iso=0055

test_param_sensitivity_iso=0055.jpg

test_param_sensitivity_iso=1819

test_param_sensitivity_iso=1819.jpg

test_param_sensitivity_iso=3583

test_param_sensitivity_iso=3583.jpg

test_param_sensitivity_iso=5347

test_param_sensitivity_iso=5347.jpg

test_param_sensitivity_iso=7111

test_param_sensitivity_iso=7111.jpg

test_param_sensitivity_plot

test_param_sensitivity_plot.png

test_param_shading_mode

اختبارات تطبيق المعلمة android.shading.mode .

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يتم تبديل أوضاع التظليل ويتم تعديل خرائط تظليل العدسة كما هو متوقع.

test_param_shading_mode_ls_maps_mode_0_loop_0

test_param_shading_mode_ls_maps_mode_0_loop_0.png

test_param_shading_mode_ls_maps_mode_1_loop_0

test_param_shading_mode_ls_maps_mode_1_loop_0.png

test_param_shading_mode_ls_maps_mode_2_loop_0

test_param_shading_mode_ls_maps_mode_2_loop_0.png

test_param_tonemap_mode

اختبارات تطبيق المعلمة android.tonemap.mode. يطبق منحنيات مختلفة لخريطة الألوان على كل قناة R، وG، وB، ويتحقق من تعديل الصور الناتجة كما هو متوقع. يتكون هذا الاختبار من اختبارين، اختبار 1 واختبار 2.

واجهات برمجة التطبيقات التي تم اختبارها:

يمر:

  • test1: تحتوي كلتا الصورتين على خريطة نغمة خطية، ولكن n=1 به تدرج أكثر حدة. تكون قناة G (الخضراء) أكثر سطوعًا بالنسبة للصورة n=1.
  • test2: نفس خريطة النغمة، ولكن بطول مختلف. الصور هي نفسها.
test_param_tonemap_mode_n=0.jpgtest_param_tonemap_mode_n=1.jpg
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg

test_post_raw_sensitivity_boost

الشيكات بعد تعزيز حساسية RAW. يلتقط مجموعة من صور RAW وYUV بحساسية مختلفة، وينشر مجموعة تعزيز حساسية RAW ويتحقق مما إذا كان متوسط ​​بكسل الإخراج يطابق إعدادات الطلب.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: تصبح صور RAW أكثر قتامة مع زيادة التعزيز بينما تظل صور YUV ثابتة في السطوع

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_raw_plot_means

test_post_raw_sensitivity_boost_raw_plot_means.png

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg

test_post_raw_sensitivity_boost_yuv_plot_means

test_post_raw_sensitivity_boost_yuv_plot_means.png

test_raw_burst_sensitivity

يلتقط مجموعة من الصور الأولية ذات المكاسب المتزايدة ويقيس الضوضاء. يلتقط الخام فقط، في دفعة واحدة.

واجهات برمجة التطبيقات التي تم اختبارها:

التمريرة: كل لقطة تكون أكثر ضجيجًا من اللقطة السابقة، مع زيادة الكسب.

يستخدم تباين خلية شبكة الإحصائيات المركزية.

test_raw_burst_sensitivity_variance

test_raw_burst_sensitivity_variance.png

test_raw_exposure

يلتقط مجموعة من الصور الأولية مع زيادة وقت التعرض ويقيس قيم البكسل.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: زيادة ISO (الكسب) تجعل وحدات البكسل أكثر حساسية للضوء، وبالتالي تتحرك المؤامرة نحو اليسار.

test_raw_exposure_s=55

test_raw_exposure_s=55.png

(10⁰ يساوي 1 مللي ثانية، 10¹ يساوي 10 مللي ثانية، 10⁻¹ يساوي 0.1 مللي ثانية)

test_raw_exposure_s=132

test_raw_exposure_s=132.png

test_raw_exposure_s=209

test_raw_exposure_s=209.png

test_raw_exposure_s=286

test_raw_exposure_s=286.png

test_raw_exposure_s=363

test_raw_exposure_s=363.png

test_raw_exposure_s=440

test_raw_exposure_s=440.png

test_raw_sensitivity

يلتقط مجموعة من الصور الأولية ذات الحساسيات المتزايدة ويقيس التشويش (التباين) في منتصف الصورة بنسبة 10%. اختبارات أن كل طلقة أكثر ضجيجًا من سابقتها.

واجهات برمجة التطبيقات التي تم اختبارها:

التمريرة: يزداد التباين مع كل تسديدة.

test_raw_sensitivity_variance

test_raw_sensitivity_variance.png

test_reprocess_noise_reduction

اختبارات تطبيق android.noiseReduction.mode على طلبات إعادة المعالجة. يلتقط الصور المعاد معالجتها باستخدام الكاميرا ذات الإضاءة الخافتة. يستخدم كسبًا تناظريًا عاليًا لضمان أن الصورة الملتقطة مشوشة. يلتقط ثلاث صور مُعاد معالجتها، لإيقاف تشغيل NR، و"سريع"، و"عالي الجودة". يلتقط صورة مُعاد معالجتها بكسب منخفض وإيقاف NR، ويستخدم تباين هذا كخط أساسي.

واجهات برمجة التطبيقات التي تم اختبارها:

التمرير: سريع >= إيقاف، المقر الرئيسي >= سريع، المقر الرئيسي >> إيقاف

مخطط SNR مقابل NR_MODE النموذجي

مخطط SNR مقابل NR_MODE النموذجي

test_tonemap_sequence

يختبر سلسلة من اللقطات بمنحنيات مختلفة لخريطة الألوان. يلتقط 3 لقطات يدوية باستخدام خريطة نغمة خطية. يلتقط 3 لقطات يدوية باستخدام خريطة النغمات الافتراضية. يحسب الدلتا بين كل زوج من الإطارات المتتالية.

واجهات برمجة التطبيقات التي تم اختبارها:

التمرير: هناك 3 إطارات متطابقة متبوعة بمجموعة مختلفة من 3 إطارات متطابقة.

test_tonemap_sequence_i=0

test_tonemap_sequence_i=0.jpg

test_tonemap_sequence_i=1

test_tonemap_sequence_i=1.jpg

test_tonemap_sequence_i=2

test_tonemap_sequence_i=2.jpg

test_tonemap_sequence_i=3

test_tonemap_sequence_i=3.jpg

test_tonemap_sequence_i=4

test_tonemap_sequence_i=4.jpg

test_tonemap_sequence_i=5

test_tonemap_sequence_i=5.jpg

test_yuv_jpeg_all

اختبارات تعمل جميع الأحجام والتنسيقات المبلغ عنها لالتقاط الصور. يستخدم طلبًا يدويًا مع خريطة نغمة خطية بحيث يبدو YUV وJPEG متماثلين عند التحويل بواسطة وحدة image_processing_utils . لا يتم حفظ الصور افتراضيًا، ولكن يمكن حفظها عن طريق تمكين debug_mode .

واجهات برمجة التطبيقات التي تم اختبارها:

النجاح: تتمتع جميع مراكز الصور باختلاف أقصى RMS (قيمة الجذر المتوسط ​​المربع للإشارة) في الصور المحولة بصيغة RGB بنسبة 3% من أعلى دقة لصورة YUV.

test_yuv_jpeg_all

test_yuv_jpeg_all.png

test_yuv_plus_dng

اختبارات مدى نجاح الأحجام والتنسيقات المبلغ عنها لالتقاط الصور.

واجهات برمجة التطبيقات التي تم اختبارها:

النجاح: يكتمل الاختبار ويعيد الصور المطلوبة.

test_yuv_plus_dng

test_yuv_plus_dng.jpg

test_yuv_plus_jpeg

تلتقط الاختبارات إطارًا واحدًا كمخرجات YUV وJPEG. يستخدم طلبًا يدويًا مع خريطة نغمة خطية بحيث يبدو YUV وJPEG متماثلين عند التحويل بواسطة وحدة image_processing_utils .

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: صور YUV وJPEG متشابهة ولها فرق أقل من 1% RMS (قيمة الجذر التربيعي للإشارة).

test_yuv_plus_jpg_jpg.jpgtest_yuv_plus_jpeg_yuv.jpg
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 .

واجهات برمجة التطبيقات التي تم اختبارها:

النجاح: تتشابه الصور YUV والصور الأولية ولها فرق أقل من 3.5% RMS (قيمة الجذر التربيعي للإشارة).

test_yuv_plus_raw_shading=1_raw.jpgtest_yuv_plus_raw_shading=1_yuv.jpg
test_yuv_plus_raw_shading=1_raw.jpg test_yuv_plus_raw_shading=1_yuv.jpg

Scene2_a

يحتوي Scene2_a على ثلاثة وجوه بخلفية رمادية وملابس محايدة. يتم اختيار الوجوه بحيث تحتوي على مجموعة واسعة من ألوان البشرة. يجب أن يكون للمخطط الاتجاه الصحيح حتى يعمل اكتشاف الوجه على النحو الأمثل.

Scene2_a

Scene2_a

test_auto_flash

اختبارات تشغيل الفلاش التلقائي في مشهد مظلم. التحقق من تشغيل الفلاش التلقائي عن طريق التحقق من أن مركز صورة التجانب به تدرج كبير. لتشغيل الفلاش التلقائي، يجب إيقاف تشغيل الجهاز اللوحي والأضواء الموجودة في جهاز الاختبار. يتم إيقاف تشغيل الجهاز اللوحي عن طريق الاختبار، ويمكن إطفاء الأضواء تلقائيًا باستخدام وحدة التحكم Arduino. يجب أن يكون المشهد مظلمًا تمامًا حتى يعمل الاختبار بشكل صحيح. على هذا النحو، يجب تغطية فتحة الكمبيوتر اللوحي الخلفية بالكامل بواسطة الكمبيوتر اللوحي للمشهد، ويجب تغطية الفتحة الأمامية بفتحة وهاتف DUT لمنع الضوء الشارد من دخول المنصة.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يحتوي وسط صورة التجانب على تدرج كبير مما يعني تشغيل الفلاش التلقائي.

test_autoframing

يختبر سلوك الإطارات التلقائية لجهاز الكاميرا. إجراء تكبير/تصغير كبير بحيث لا يكون أي من الوجوه في المشهد مرئيًا، وتمكين وضع الإطارات التلقائية عن طريق ضبط AUTOFRAMING في CaptureRequest على True ، والتحقق من إمكانية اكتشاف جميع الوجوه في المشهد الأصلي عندما تتقارب الحالة (أي عندما تم ضبط AUTOFRAMING_STATE في CaptureResult على AUTOFRAMING_STATE_CONVERGED ).

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: تم الكشف عن الوجوه الثلاثة.

test_display_p3

تعرض الاختبارات التقاط P3 بتنسيق JPEG باستخدام ColorSpaceProfiles API. تختبر أن ملف JPEG الملتقط يحتوي على ملف تعريف ICC مناسب في رأسه، وأن الصورة تحتوي على ألوان خارج نطاق sRGB.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يحتوي ملف JPEG على ملف تعريف Display P3 ICC وألوان خارج نطاق sRGB.

test_effets

يلتقط الإطار لتأثيرات الكاميرا المدعومة ويتحقق مما إذا تم إنشاؤها بشكل صحيح. يتحقق الاختبار فقط من التأثيرات OFF و MONO ، ولكنه يحفظ الصور لجميع التأثيرات المدعومة.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يلتقط صورة المشهد مع OFF التأثيرات وصورة أحادية اللون مع ضبط التأثيرات على MONO .

test_effets_MONO

test_effets_MONO.jpg

test_format_combos

اختبارات مجموعات مختلفة من تنسيقات الإخراج.

واجهات برمجة التطبيقات التي تم اختبارها:

التمرير: تم التقاط كافة المجموعات بنجاح.

test_jpeg_quality

يختبر جودة ضغط JPEG للكاميرا. انتقل إلى صفات JPEG من خلال android.jpeg.quality وتأكد من تغيير جداول القياس بشكل صحيح.

واجهات برمجة التطبيقات التي تم اختبارها:

النجاح: تتناقص مصفوفة التكميم مع زيادة الجودة. (تمثل المصفوفة عامل القسمة.)

test_jpeg_quality

متوسطات مصفوفة Luma/Chroma DQT للكاميرا الخلفية Pixel 4 مقابل جودة JPEG

فشل اختبار جودة jpeg

مثال اختبار فاشل

لاحظ أنه بالنسبة للصور ذات الجودة المنخفضة جدًا (جودة jpeg <50)، لا توجد زيادة في الضغط في مصفوفة التكميم.

test_num_faces

اختبارات كشف الوجه.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يجد ثلاثة وجوه.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_preview_min_frame_rate

يختبر انخفاض معدل إطارات المعاينة بشكل صحيح في المشهد المظلم. لكي يعمل هذا الاختبار بشكل صحيح، يجب إطفاء الأضواء الموجودة في جهاز الاختبار بواسطة وحدة التحكم أو يدويًا بواسطة مشغل الاختبار.

واجهات برمجة التطبيقات التي تم اختبارها:

النجاح: يكون معدل إطارات المعاينة عند الحد الأدنى لنطاق معدل الإطارات المطلوب، ويكون التباين بين الإطارات أقل من التسامح المطلق المحدد في الاختبار.

test_reprocess_uv_swap

تشير الاختبارات إلى أن إعادة معالجة YUV لا تقوم بتبديل مستويي U وV. يتم اكتشاف ذلك عن طريق حساب مجموع الاختلافات المطلقة (SAD) بين الصورة المعاد معالجتها والالتقاط غير المعاد معالجتها. إذا أدى تبديل مستويي الإخراج U وV للالتقاط المعاد معالجته إلى زيادة SAD، فمن المفترض أن يحتوي الإخراج على مستويي U وV الصحيحين.

واجهات برمجة التطبيقات التي تم اختبارها:

التمريرة: لا يتم تبديل طائرتي U وV.

test_reprocess_uv_swap

test_reprocess_uv_swap.png

Scene2_b

test_num_faces

اختبارات اكتشاف الوجه مع زيادة تنوع لون البشرة في مشاهد الوجه.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يجد 3 وجوه.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_yuv_jpeg_capture_sameness

يلتقط صورتين باستخدام أكبر تنسيقات YUV وJPEG الشائعة بنفس نسبة العرض إلى الارتفاع مثل أكبر تنسيق JPEG ولا تتجاوز دقة 1920x1440. يضبط jpeg.quality على 100 ويلتقط طلب السطح المزدوج. يحول كلا الصورتين إلى مصفوفات RGB ويحسب فرق مربع الجذر ثلاثي الأبعاد (RMS) بين الصورتين.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: صور YUV وJPEG متشابهة ولها فرق أقل من 1% RMS (قيمة الجذر التربيعي للإشارة).

Scene2_c

test_num_faces

اختبارات اكتشاف الوجه مع زيادة تنوع لون البشرة في مشاهد الوجه.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يجد 3 وجوه.

test_num_faces_fd_mode_1

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

اختبارات اكتشاف الوجه مع زيادة تنوع لون البشرة في مشاهد الوجه.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يجد 3 وجوه.

Scene2_e

test_continious_picture

تم التقاط 50 إطارًا بدقة VGA من خلال طلب الالتقاط أولاً بإعداد android.control.afMode = 4 (CONTINUOUS_PICTURE).

واجهات برمجة التطبيقات التي تم اختبارها:

النجاح: يستقر نظام 3A بنهاية الالتقاط المكون من 50 إطارًا.

test_num_faces

اختبارات اكتشاف الوجه مع زيادة تنوع لون البشرة في مشاهد الوجه.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يجد 3 وجوه.

Scene2_f

Scene2_f له ثلاثة وجوه بخلفية بيضاء وملابس بيضاء. تتميز الوجوه بمجموعة واسعة من ألوان البشرة وتباين عالٍ مع الخلفية.

Scene2_f.png

Scene2_f

test_num_faces

اختبارات اكتشاف الوجه مع زيادة تنوع لون البشرة في مشاهد الوجه.

واجهات برمجة التطبيقات التي تم اختبارها:

تمرير: يجد 3 وجوه.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

المشهد3

يستخدم Scene3 مخطط ISO12233 ، ويستخدم معظم الاختبارات طريقة مستخرج المخطط للعثور على المخطط في المشهد. لهذا السبب ، فإن معظم الصور المحفوظة لا تحتوي على حدود مثل الصور للمشاهد 1 أو 2 أو 4 ، ولكن فقط المخطط. يجب أن يكون الرسم البياني في الاتجاه الصحيح لمكتشف المخطط للعمل على النحو الأمثل.

test_3a_consistency

اختبارات الاتساق 3A.

تم اختبار واجهات برمجة التطبيقات:

الممر: 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

test_edge_enhancement_edge = 0.jpg

test_edge_enhancement_edge = 1

test_edge_enhancement_edge = 1.jpg (الوضع السريع)

test_edge_enhancement_edge = 2

test_edge_enhancement_edge = 2.jpg (وضع جودة عالي)

test_flip_mirror

الاختبارات إذا كانت الصورة موجهة بشكل صحيح كما في قسم CDD 7.5.2 الكاميرا الأمامية [C-1-5] .

يمكن التعرف على الصور المتطابقة أو المزدحمة أو المدورة بواسطة ميزة الماس بالقرب من المركز.

الممر: الصورة غير مقلوبة أو متطابقة أو تدور.

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_landscape_to_portrait

اختبارات إذا كان المشهد إلى Portraited يعمل بشكل صحيح لأجهزة الاستشعار الموجهة نحو المناظر الطبيعية.

تم اختبار واجهات برمجة التطبيقات:

الممر: يمكن للاختبار تحديد موقع مخطط مع الدوران المتوقع (0 درجة عندما يتم تعطيل المناظر الطبيعية إلى تجاوز الصورة ، 90 درجة عند تمكينها).

test_landscape_to_portrait

test_landscape_to_portrait.png

test_lens_movement_reporting

الاختبارات إذا تم الإبلاغ عن علم حركة العدسة بشكل صحيح. يلتقط انفجار 24 صورة مع أول 12 إطارًا على مسافة التركيز المثلى (كما وجدها 3A) وأخطر الـ 12 إطارًا على مسافة التركيز الدنيا. حول الإطار 12 ، تتحرك العدسة مما تسبب في انخفاض الحدة. تستقر الحدة في النهاية مع انتقال العدسة إلى الوضع النهائي. يجب تأكيد علامة حركة العدسة في جميع الإطارات حيث تكون الحدة وسيطة إلى الحدة في الإطارات القليلة الأولى مع العدسة الثابتة على مسافة بؤرية مثالية ، والإطارات القليلة الأخيرة حيث تكون العدسة ثابتة في المسافة البؤرية الدنيا. الإطار الدقيق الذي تحركه العدسة ليس مهمًا: ما يتم التحقق منه هو أن علامة الحركة يتم تأكيدها عندما تتحرك العدسة.

تم اختبار واجهات برمجة التطبيقات:

تمرير: علامة حركة العدسة 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

الاختبارات إذا تم دعم أساليب إعادة المعالجة لعمل تعزيز الحافة بشكل صحيح. يعالج طلب التقاط مع وضع حافة إعادة المعالجة المحدد ويقارن أوضاع مختلفة للالتقاط مع تعطيل أوضاع الحافة المعالجة.

تم اختبار واجهات برمجة التطبيقات:

تمرير: الحدة لأوضاع الحافة المختلفة صحيحة. HQ (الوضع 2) أكثر حدة من OFF (الوضع 0) ، والتحسن بين أوضاع مختلفة متشابهة.

test_reprocess_edge_enhancement_plot

test_reprocess_edge_enhancement_plot.png

المشهد 4

يتكون المشهد 4 من دائرة سوداء على خلفية بيضاء داخل مربع.

المشهد 4

المشهد 4

test_aspect_ratio_and_crop

الاختبارات إذا تم تشويه الصور أو اقتصاصها بشكل غير متوقع في خط أنابيب الصورة. يلتقط صور دائرة على جميع التنسيقات. لا تتحقق من الدائرة ، ولا تتحرك الدائرة من مركز الصورة ، ولا تتغير الدائرة بشكل غير صحيح مع نسب أو قرارات عرضية مختلفة.

تم اختبار واجهات برمجة التطبيقات:

تمرير: الصور غير ممتدة ، ولا يختلف مركز الصور بأكثر من 3 ٪ ، ويتم الحفاظ على الحد الأقصى الممكن FOV (مجال العرض).

آليات الفشل:

  • يتم تشويه الدائرة الموجودة في الصورة التي تم التقاطها بواسطة خط أنابيب المعالجة.
  • يتم اقتصاص صورة الدقة المنخفضة في خط أنابيب الصورة مما يخلق FOV مختلفًا بين الصور عالية الدقة والمنخفضة.
  • يتم اقتصاص الدائرة الموجودة في الصورة التي تم التقاطها بسبب طلب التقاط نسبة العرض إلى الارتفاع القصوى مما يقلل من ارتفاع أو عرض الصورة.
  • الدائرة الموجودة في الصورة التي تم التقاطها لها انعكاس في الوسط ولا تظهر مملوءة بالكامل.

test_multi_camera_alignment

يختبر معلمات معايرة الكاميرا المتعلقة بوضع الكاميرا للأنظمة متعددة الكاميرا. باستخدام الكاميرات المادية متعددة الكاميرا ، التقاط صورة مع إحدى الكاميرات المادية. يجد مركز الدائرة. مشاريع مركز الدائرة إلى العالم ينسق لكل كاميرا. يقارن الفرق بين مراكز دائرة الكاميرات في إحداثيات العالم. يعيد ترسيخ العالم مرة أخرى إلى إحداثيات البكسل ويقارن مع النسخ الأصلية كتحقق من الصلاحية. يقارن أحجام الدائرة التي تتحقق مما إذا كانت الأطوال البؤرية للكاميرات مختلفة.

تم اختبار واجهات برمجة التطبيقات:

تمرير: مراكز الدوائر وأحجامها كما هو متوقع في الصور المتوقعة مقارنة بالصور التي تم التقاطها باستخدام بيانات معايرة الكاميرا والأطوال البؤرية.

آليات الفشل:

  • تعد قيم التصميم و 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 لالتقاطات ، يتحقق هذا الاختبار من تنسيقات المعاينة المدعومة لضمان عدم امتداد إطارات المعاينة أو اقتصاصها بشكل غير لائق. يتحقق من أن نسبة العرض إلى الارتفاع للدائرة لا تتغير ، والحفاظ على الصور المزروعة الدائرة في وسط الإطار ، وأن حجم الدائرة لا يتغير لتنسيق ثابت أو بدقة مختلفة (مجال فحص العرض).

تم اختبار واجهات برمجة التطبيقات:

تمرير: الصور غير ممتدة ، ولا يختلف مركز الصور بأكثر من 3 ٪ ، ويتم الحفاظ على الحد الأقصى الممكن FOV (مجال العرض).

test_preview_stabilization_fov

يتحقق من أحجام المعاينة المدعومة لضمان اقتصاص FOV بشكل مناسب. يلتقط الاختبار مقطعين فيديو ، أحدهما مع تثبيت ON ، وآخر مع تثبيت OFF . يتم تحديد إطار تمثيلي من كل مقطع فيديو ، وتحليله للتأكد من أن تغييرات FOV في مقطع الفيديو اثنين ضمن المواصفات.

تم اختبار واجهات برمجة التطبيقات:

PASS: تظل نسبة العرض إلى ارتفاع الدائرة ثابتة ، ويبقى موقع المركز للدائرة مستقراً ، ويتغير حجم الدائرة 20 ٪.

test_video_aspect_ratio_and_crop

يأخذ مقاطع فيديو لدائرة داخل مربع فوق جميع تنسيقات الفيديو. يستخلص الأطر الرئيسية ، ويتحقق من أن نسبة العرض إلى الارتفاع للدائرة لا تتغير ، والحفاظ على الصور المزروعة الدائرة في الوسط ، ولا يتغير حجم الدائرة لتنسيق ثابت أو بدقة مختلفة (حقل فحص العرض).

تم اختبار واجهات برمجة التطبيقات:

PASS: لا يتم تمديد إطارات الفيديو ، ولا يختلف مركز الإطارات بأكثر من 3 ٪ ، ويتم الحفاظ على الحد الأقصى الممكن FOV (مجال العرض).

المشهد 5

يتطلب المشهد 5 مشهد رمادي مضاء بشكل موحد. يتم تحقيق ذلك من قبل ناشر وضع على عدسة الكاميرا. نوصي Diffuser التالي: www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168 .

لإعداد المشهد ، قم بتوصيل ناشر أمام الكاميرا وقم بتوجيه الكاميرا إلى مصدر إضاءة يبلغ حوالي 2000 لوكس. الصور التي تم التقاطها للمشهد 5 تتطلب إضاءة منتشرة دون أي ميزات واضحة. فيما يلي صورة عينة:

المشهد 5

المشهد 5 التقاط

test_lens_shading_and_color_uniformity

يتم تطبيق الاختبارات التي يتم بها تطبيق تصحيح تظليل العدسة بشكل مناسب ، ويتم توزيع لون مشهد موحد أحادي اللون بالتساوي. يؤدي هذا الاختبار على إطار YUV مع Auto 3A. يتم تقييم تظليل العدسة بناءً على قناة Y. يقيس متوسط ​​قيمة Y لكل كتلة عينة محددة ، ويحدد النجاح أو الفشل من خلال المقارنة مع قيمة Y المركزية. يتم تقييم اختبار توحيد اللون في مساحة R/G و B/G.

تم اختبار واجهات برمجة التطبيقات:

الممر: في دائرة نصف قطرها المحددة من الصورة ، يجب أن يكون تباين قيمة R/G و B/G أقل من 20 ٪ لاجتياز الاختبار.

المشهد 6

المشهد 6 عبارة عن شبكة من الدوائر الصغيرة مع مربع في زاوية واحدة للإشارة إلى الاتجاه. هناك حاجة إلى دوائر صغيرة لاختبار وظيفة التكبير على نطاق كبير.

المشهد 6

المشهد 6

test_in_sensor_zoom

يختبر سلوك ميزة تكبير الكاميرا داخل المستشعر ، والتي تنتج صورًا خامًا اقتصاصًا.

مع تعيين حالة استخدام التيار إلى CROPPED_RAW ، يأخذ الاختبار اثنين من التقاطات على نطاق التكبير ، وصورة كاملة من الرؤية (FOV) صورة الخام والصورة الخام المزروعة. يقوم الاختبار بتحويل الصور إلى صفائف RGB ، ويسقط الصورة الخام المزروعة بالحجم الكامل إلى الحجم الذي أبلغ عنه SCALER_RAW_CROP_REGION ، ويحسب الفرق بين متوسط ​​الجذر (RMS) بين الصورتين.

تم اختبار واجهات برمجة التطبيقات:

PASS: الفرق بين الجذر 3D متوسط ​​مربع (RMS) بين الصورة الخام المقطوعة من القطع والصورة الكاملة FOV RAW أقل من 1 ٪.

test_zoom

يختبر سلوك تكبير الكاميرا. يأخذ التقاطات فوق نطاق التكبير والتحقق مما إذا كانت الدوائر أكبر مع تكبير الكاميرا.

تم اختبار واجهات برمجة التطبيقات:

الممر: الحجم النسبي للدائرة الملتقطة دقيقة مقابل نسبة التكبير المطلوبة لضمان تكبير الكاميرا بشكل صحيح.

test_zoom

test_zoom للعثور على محيط الدائرة الأقرب إلى المركز.

test_low_latency_zoom

يختبر كاميرا سلوك تكبير كاميرا منخفضة. يأخذ التقاطات فوق نطاق التكبير مع android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) ، ويتحقق مما إذا كانت الدوائر في صور الإخراج تتطابق مع نسب التكبير في بيانات التعريف.

تم اختبار واجهات برمجة التطبيقات:

الممر: الحجم النسبي للدائرة التي تم التقاطها دقيقة مقابل بيانات التعريف الناتجة عن نسبة التكبير.

test_preview_video_zoom_match

اختبارات أنه أثناء تسجيل وتكبير المعاينة ومعاينة الفيديو وعرض إخراج الفيديو وتسجيل نفس الإخراج. يحسب حجم الدائرة الأقرب إلى المركز بنسب التكبير المختلفة ويتحقق مما إذا كان حجم الدائرة يزيد مع زيادة نسبة التكبير.

تم اختبار واجهات برمجة التطبيقات:

الممر: الحجم النسبي للدائرة التي تم التقاطها دقيقة مقابل نسبة التكبير المطلوبة في الفيديو والمعاينة.

vga_640x480_key_frame.png

vga_640x480_key_frame.png (قبل التكبير)

معاينة_640x480_key_frame.png

معاينة_640x480_key_frame.png (قبل التكبير)

vga_640x480_key_frame_zoomed.png

vga_640x480_key_frame.png (بعد التكبير)

معاينة_640x480_key_frame_zoomed.png

معاينة_640x480_key_frame.png (بعد التكبير)

scene_extensions

اختبارات scene_extensions مخصصة لتمديدات الكاميرا ويجب استخدام الكاميرا في صندوقها ، لأنها تتطلب تحكمًا دقيقًا في بيئة الاختبار.

scene_hdr

يتكون مشهد scene_hdr من صورة على اليسار ورمز QR منخفض التباين على اليمين.

scene_hdr

scene_hdr

test_hdr_extension

يختبر امتداد HDR . يأخذ التقاطات مع وبدون التمكين التمديد ، والتحقق مما إذا كان الامتداد يجعل رمز الاستجابة السريعة أكثر قابلية للاكتشاف.

تم اختبار واجهات برمجة التطبيقات:

PASS: يقلل امتداد HDR من عدد التغييرات في التباين اللازمة للكشف عن رمز الاستجابة السريعة أو يقلل من التدرج عبر رمز الاستجابة السريعة.

المشهد

يتألف مشهد scene_night من دائرة بيضاء مع أربع دوائر أصغر بداخلها ، كل ذلك على خلفية سوداء. الدائرة الأصغر في الزاوية اليمنى العليا أغمق من الآخرين للإشارة إلى الاتجاه.

المشهد

المشهد

test_night_extension

اختبارات تمديد الليل . يلتقط التقاطات مع تمكين التمديد وبدونه ، ويتحقق مما يلي:

  • يستغرق التقاط مع تمكين تمديد الليل وقتًا أطول.
  • الالتقاط مع تمديد الليل الممكّن أكثر إشراقًا أو يحتوي على قطعة أثرية مشهد مع مظهر محسن.

تم اختبار واجهات برمجة التطبيقات:

الممر: بالمقارنة مع الالتقاط دون تمكين تمديد الليل ، يستغرق التقاط مع تمكين امتداد الليل 0.5 ثانية على الأقل. يجب أن يكون الالتقاط أكثر إشراقًا على الأقل بنسبة 10 ٪ ، أو يجب أن تكون النقاط الرمادية في المشهد أقل من 20 بكسل من مركز الدائرة المحيطة.

sensor_fusion

تتطلب اختبارات اندماج المستشعر حركة هاتف محددة أمام نمط لوحة المشي. للحصول على النتائج المثلى ، تأكد من تثبيت مخطط الاختبار بشكل مسطح. تؤثر المخططات غير المسطحة على حسابات الدوران للعديد من الاختبارات. يمكن أن تكون اختبارات sensor_fusion مؤتمتة باستخدام مربع الانصهار المستشعر .

رقعة الشطرنج

صورة لوحة المشي

test_multi_camera_frame_sync

تقع الاختبارات التي تأطير الطوابع الزمنية التي يتم التقاطها بواسطة الكاميرا المنطقية في غضون 10 مللي ثانية عن طريق حوسبة الزوايا من المربعات داخل لوحة المشي لتحديد الطابع الزمني.

تم اختبار واجهات برمجة التطبيقات:

الممر: الزاوية بين الصور من كل كاميرا لا تتغير بشكل ملحوظ مع تدوير الهاتف.

test_preview_stabbization

الاختبارات التي استقرت معاينة الفيديو تدور أقل من الجيروسكوب.

تم اختبار واجهات برمجة التطبيقات:

الممر: أقصى زاوية دوران على الإطارات أقل من 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.png

    test_sensor_fusion_gyro_events

  • test_sensor_fusion_plot_rotations : يوضح محاذاة أحداث الجيروسكوب والأحداث الكاميرا. يجب أن تظهر هذه المؤامرة حركة مطابقة بين الكاميرا والجيروسكوب إلى +/- 1 مللي ثانية.

    test_sensor_fusion_plot_rotations.png

    test_sensor_fusion_plot_rotations

تم اختبار واجهات برمجة التطبيقات:

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

الاختبارات التي استقرت على الفيديو يدور أقل من الجيروسكوب.

تم اختبار واجهات برمجة التطبيقات:

تمرير: أقصى دوران الزاوية على الإطارات أقل من 60 ٪ من دوران الجيروسكوب.

فيما يلي عينة من مقاطع الفيديو مع وبدون تثبيت.

  • عينة من الفيديو مع الاستقرار

  • عينة من الفيديو بدون تثبيت

test_led_snapshot

الاختبارات التي لا تشبعها لقطات LED أو تلميخ الصورة.

يضيف هذا الاختبار وحدة تحكم الإضاءة إلى مربع دمج المستشعر للتحكم في الأضواء. مع ضبط الأنوار على OFF ، يأخذ الاختبار التقاط باستخدام ON AUTO_FLASH . أثناء هذا الالتقاط ، يقوم الاختبار بتشغيل تسلسل precapture مع تعيين مشغل aePrecapture START ، ويضع نية الالتقاط Preview لالتقاط الفلاش.

نظرًا لأن الالتقاط يحتوي على نقطة ساخنة مميزة بسبب الفلاش ، فإن الاختبار يحسب متوسط ​​صورة الفلاش للالتقاط بأكمله ويتحقق مما إذا كانت القيمة ضمن نطاق (68 ، 102). للتحقق مما إذا كانت الصورة متوازنة بشكل معقول ، يحسب الاختبار نسب R/G و B/G والتحقق مما إذا كانت النسب ضمن 0.95 و 1.05.

تم اختبار واجهات برمجة التطبيقات:

تمرير: نسب R/G و B/G هي ضمن 0.95 و 1.05. متوسط ​​صورة الفلاش هو ضمن نطاق (68 ، 102).