ملاحظات إصدار Android 13 Camera Image Test Suite

يتضمن إصدار Android 13 عددًا من التغييرات على Camera ITS . بالإضافة إلى التغييرات الإضافية مثل تحديث Python وإصدارات الحزمة واختبار تحديثات الأجهزة، يدعم Android 13 اختبار الفيديو.

تلخص هذه الصفحة تغييرات Camera ITS لنظام Android 13. وتنقسم التغييرات إلى سبع فئات رئيسية:

إصدارات بايثون والحزمة

يدعم Android 13 إصدارات Python التالية بالإضافة إلى إصدارات Python والمكتبات المدعومة في Android 12:

إضافات ملف التكوين

نظرًا لإضافة التحكم في الإضاءة لاختبار test_auto_flash.py ، يحتاج ملف config.yml إلى معلمتين إضافيتين لوحدة التحكم وقناة الإضاءة. لتحديد ما إذا كان الجهاز قيد الاختبار (DUT) قابلاً للطي أم لا، يتطلب الملف config.yml معلمة إضافية ثالثة يجب إضافتها إلى كل من قسمي دمج أجهزة الكمبيوتر اللوحية وأجهزة الاستشعار.

TestBeds:
  - Name: TEST_BED_TABLET_SCENES
    # Test configuration for scenes[0:4, 6, _change]
    Controllers:
        AndroidDevice:
          - serial: 8A9X0NS5Z
            label: dut
          - serial: 5B16001229
            label: tablet

    TestParams:
      brightness: 192
      chart_distance: 22.0
      debug_mode: "False"  # "True" or "False"; quotes needed
      lighting_cntl: <controller-type>  # "arduino" or "None"; quotes needed
      lighting_ch: <controller-channel>
      camera: 0
      foldable_device: "False". # set "True" if testing foldable
      scene: <scene-name>  # if <scene-name> runs all scenes

تغييرات الاختبار

Scene1_1/test_black_white.py

يحتوي اختبار test_black_white على فحص تشبع القناة بما يتوافق مع الإصدارات السابقة من Android، مما يعني أن مستوى واجهة برمجة التطبيقات الأول المطلوب للتحقق من تشبع القناة هو Android 10.

Scene1_2/test_yuv_plus_raw.py

يتعامل اختبار test_yuv_plus_raw مع أجهزة استشعار غير 16:9 أو 4:3 لتوفير دعم أفضل لملفات RAW. إذا لم يتمكن الاختبار من العثور على تنسيق مشترك بين تنسيق RAW للمستشعر وتنسيقات التقاط YUV، فسيقوم الاختبار بمقارنة التقاط RAW بأكبر التقاط YUV حتى لو كانت نسب العرض إلى الارتفاع مختلفة.

Scene2_a/test_faces.py

تمت إعادة هيكلة test_faces إلى test_num_faces .

Scene2_a/test_num_faces.py

يتعامل اختبار test_num_faces مع اقتصاص المستشعر ويضع مستطيلات الوجه بشكل صحيح في لقطات كاميرا UW التي تم اقتصاصها.

Scene3/test_lens_position.py

تم إهمال اختبار test_lens_position في Android 13.

Scene6/test_zoom.py

تمت إعادة هيكلة اختبار test_zoom لتمكين اختبار أسهل لأنظمة الكاميرات الثلاثة والأربعة. إذا اختبرت الكاميرا بشكل صحيح عبر نطاق نسبة 10x في التكبير/التصغير، فسيتم إنهاء الاختبار بشكل صحيح. يتيح ذلك إجراء اختبار التكبير/التصغير على مسافة مخطط واحد.

Scene_change/test_scene_change.py

تم إهمال اختبار test_scene_change في Android 13.

اختبارات جديدة تعتمد على الكمبيوتر اللوحي

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

مشهد اسم الاختبار مستوى API الأول وصف
2_أ test_auto_flash 33 يؤكد أن المشاهد المظلمة تؤدي إلى تشغيل الفلاش التلقائي.
2_ب test_yuv_jpg_capture_sameness 33 يؤكد أن التقاطات YUV وJPEG لا تزال متطابقة من حيث البت.

Scene2_a/test_auto_flash.py

يضيف Android 13 اختبار test_auto_flash .

حدود

  • flash : يتخطى الاختبار إذا لم يكن الفلاش متاحًا.

طريقة

يقوم الاختبار بتكوين طلب الالتقاط للفلاش التلقائي ويقدم مشهدًا يتطلب حدث فلاش. يتم إيقاف تشغيل الإضاءة في جهاز الاختبار والجهاز اللوحي لتقديم مشهد مظلم لخوارزمية التعريض التلقائي. يقوم الاختبار بتكوين تسلسل من NUM_FRAMES من اللقطات مع تمكين الفلاش التلقائي. إذا قام الإعداد AE_STATE بإرجاع FLASH_REQUIRED ، فإن الاختبار يتحقق من إطلاق الفلاش في اللقطات الملتقطة.

يمكن التحكم في الإضاءة يدويًا عند الطلب، أو تلقائيًا باستخدام وحدة تحكم Arduino مع إضافة التحكم في الإضاءة للاختبار الآلي. يقوم مجلد الأدوات المساعدة الجديد lighting_control_utils بتمركز التعليمات البرمجية للتحكم في الإضاءة في الاختبارات.

Scene2_a/test_yuv_jpeg_capture_sameness.py

يضيف Android 13 اختبار test_yuv_jpeg_capture_sameness .

حدود

  • streamUseCase : يحدد ما إذا كانت الكاميرا تدعم حالة استخدام الدفق.
  • android.jpeg.quality : يضبط جودة JPEG على 100.

طريقة

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

اختبار الفيديو

يضيف Camera ITS دعمًا لاختبار الفيديو في Android 13.

يضيف Android 13 الاختبارات التالية:

مشهد اسم الاختبار مستوى API الأول وصف
4 test_preview_stabilization_fov 33 يؤكد أن معاينة الفيديو لا يتم اقتصاصها كثيرًا مع تمكين التثبيت.
4 test_video_aspect_ratio_and_crop 33 يؤكد تنسيقات الفيديو FoV ونسبة العرض إلى الارتفاع والاقتصاص.
sensor_fusion test_preview_stabilition 33 يؤكد عمل تثبيت المعاينة.
sensor_fusion test_video_stabilition 33 يؤكد عمل تثبيت الفيديو.

Scene4/test_preview_stabilization_fov.py

يضيف Android 13 اختبار test_preview_stabilization_fov . يتحقق هذا الاختبار من أحجام المعاينة المدعومة للتأكد من عدم اقتصاص مجال الرؤية بشكل غير مناسب.

طريقة

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

على وجه التحديد، يتحقق الاختبار من المعلمات التالية مع تثبيت المعاينة وبدونه:

  • تبقى استدارة الدائرة ثابتة.
  • يظل مركز الدائرة ثابتًا.
  • يتغير حجم الدائرة بنسبة لا تزيد عن 20%، مما يعني أن مجال الرؤية يتغير بنسبة 20% على الأكثر.

Scene4/test_video_aspect_ratio_and_crop.py

يضيف Android 13 اختبار test_video_aspect_ratio_and_crop . على غرار اختبار test_aspect_ratio_and_crop لالتقاط الصور الثابتة، يتحقق هذا الاختبار من تنسيقات الفيديو المدعومة لضمان عدم تمديد إطارات الفيديو أو اقتصاصها بشكل غير مناسب. يتم اختبار جميع جودة الفيديو المبلغ عنها ذاتيًا. بالإضافة إلى ذلك، إذا كانت الكاميرا تدعم فيديو HLG10 ، فسيتم اختبار فيديو 10 بت.

يضيف Android 13 طريقة get_available_video_qualities إلى its_session_utils . لمشاركة التعليمات البرمجية المشتركة مع الاختبارات الحالية، يتضمن Android 13 أيضًا وظيفتين مساعدتين جديدتين، image_fov_utils و video_processing_utils .

طريقة

يلتقط الاختبار صورة مرجعية بتنسيق RAW أو بتنسيق JPEG بأعلى دقة إذا لم يكن RAW مدعومًا. من الصورة المرجعية، يتم تحديد حجم الدائرة وموقعها. يتم بعد ذلك التقاط مقاطع فيديو قصيرة مع دعم جميع جودة الفيديو. يتم استخراج الإطار المرجعي النهائي من كل جودة فيديو. من الإطار المرجعي، يتم حساب مجال الرؤية (FoV)، والتوسيط (الاقتصاص)، ونسبة العرض إلى الارتفاع لكل جودة فيديو.

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

Sensor_fusion/test_preview_stabilization.py

يضيف Android 13 اختبار test_preview_stabilization ، الذي يختبر جميع صفات المعاينة المدعومة حتى 1920x1080. يستخدم الاختبار جهاز اختبار دمج المستشعر ويتطلب وحدة تحكم دمج المستشعر المراجعة 2 الجديدة أو ترقية البرامج الثابتة لإصدارات وحدة تحكم Arduino السابقة. لمزيد من التفاصيل حول وحدة التحكم الجديدة، راجع تحديثات الأجهزة والإضافات .

طريقة

يتم تحريك الهاتف ببطء بزاوية 15 درجة تقريبًا مع تمكين تثبيت المعاينة. ثم تتم مقارنة دوران الصور بدوران الجيروسكوب.

Sensor_fusion/test_video_stabilization.py

يضيف Android 13 اختبار test_video_stabilization ، الذي يختبر جودة الفيديو المدعومة حتى 1920x1080. يتم استبعاد جودة الفيديو ذات الدقة المنخفضة QCIF. يستخدم الاختبار جهاز اختبار دمج المستشعر ويتطلب وحدة تحكم دمج المستشعر المراجعة 2 الجديدة أو ترقية البرامج الثابتة لإصدارات وحدة تحكم Arduino السابقة. لمزيد من التفاصيل حول وحدة التحكم الجديدة، راجع تحديثات الأجهزة والإضافات .

طريقة

يقوم جهاز الاختبار بتحريك الهاتف ببطء بزاوية 15 درجة تقريبًا مع تمكين تثبيت المعاينة. ثم تتم مقارنة دوران الصور بدوران الجيروسكوب.

تحديثات الأجهزة والإضافات

يتضمن Android 13 ترقية إلى وحدة التحكم في دمج المستشعر 2 المستندة إلى Arduino. تتضمن هذه الترقية تغييرات في الأجهزة والبرامج الثابتة. تسمح الترقية لوحدة التحكم بضبط سرعة الدوران والتحكم في البرق. تتضمن الترقية أيضًا درعًا جديدًا (كما هو موضح في الشكل 1)، والذي يوفر ثلاث قنوات للدوران وثلاث قنوات للتحكم في الإضاءة.

درع اردوينو rev2.0

الشكل 1. درع Arduino rev2.0 مع التحكم في الدوران والإضاءة

بالإضافة إلى ذلك، بالنسبة للإصدار 13، يجب تحديث البرامج الثابتة لوحدات التحكم الموجودة لتمكين التحكم في سرعة الدوران. يمكن تنزيل هذه البرامج الثابتة من:

لمزيد من المعلومات حول وحدة التحكم الجديدة، راجع وحدة التحكم بدمج مستشعر Android 13 .

دعم الاختبار القابل للطي

يتضمن Android 13 دعمًا للاختبار للأجهزة القابلة للطي. لتمكين واجهة برمجة التطبيقات للكاميرات المتعددة للأجهزة القابلة للطي، تكون حالة الهاتف ( Folded أو Unfolded ) مطلوبة أثناء الاختبار. لتمكين استقصاء حالة الهاتف لجميع DUTs، بما في ذلك الهواتف غير القابلة للطي، قم بتشغيل أمر adb التالي بعد اتصال DUT بالمضيف.

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier