ملاحظات إصدار "حزمة اختبار صور الكاميرا" لنظام التشغيل Android 13

يتضمّن إصدار Android 13 عددًا من التغييرات على نظام اختبار توافق الصور (ITS) للكاميرا. بالإضافة إلى التغييرات التدريجية، مثل تحديث إصدارات Python والحِزم وتحديثات أجهزة الاختبار، يتيح نظام التشغيل Android 13 اختبار الفيديو.

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

إصدارات Python والحِزم

يتوافق نظام التشغيل 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 اقتصاص المستشعر وتضع مستطيلات الوجوه بشكل صحيح على لقطات كاميرا الزاوية الواسعة جدًا التي تم اقتصاصها.

scene3/test_lens_position.py

تم إيقاف اختبار test_lens_position نهائيًا في Android 13.

scene6/test_zoom.py

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

scene_change/test_scene_change.py

تم إيقاف اختبار test_scene_change نهائيًا في Android 13.

اختبارات جديدة على الأجهزة اللوحية

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

المشهد اسم الاختبار أول مستوى لواجهة برمجة التطبيقات الوصف
2_a test_auto_flash 33 تؤكّد هذه السمة أنّ المشاهد المظلمة تؤدي إلى تشغيل الفلاش تلقائيًا.
2_b 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) في 3D. تم ضبط هامش التفاوت في الفرق على %1.

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

تتيح حزمة أدوات اختبار توافق الكاميرا (ITS) إجراء اختبارات الفيديو في نظام التشغيل Android 13.

يضيف نظام التشغيل Android 13 الاختبارات التالية:

المشهد اسم الاختبار أول مستوى لواجهة برمجة التطبيقات الوصف
4 test_preview_stabilization_fov 33 تؤكّد هذه السمة أنّ معاينة الفيديو لا يتم اقتصاصها بشكل كبير عند تفعيل ميزة تثبيت الصورة.
4 test_video_aspect_ratio_and_crop 33 تؤكّد هذه السمة تنسيقات الفيديو ومجال الرؤية ونسبة العرض إلى الارتفاع والاقتصاص.
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 بت.

يضيف الإصدار 13 من نظام التشغيل Android الطريقة 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)، يوفّر ثلاث قنوات للتدوير وثلاث قنوات للتحكّم في الإضاءة.

Arduino shield rev2.0

الشكل 1: الإصدار 2.0 من لوحة Arduino مع عناصر التحكّم في التدوير والإضاءة

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

لمزيد من المعلومات حول وحدة التحكّم الجديدة، يُرجى الاطّلاع على مقالة وحدة التحكّم في دمج البيانات الحسية في Android 13.

دعم اختبار الأجهزة القابلة للطي

يتضمّن نظام التشغيل Android 13 إمكانية اختبار التطبيقات على الأجهزة القابلة للطي. لتفعيل واجهة برمجة التطبيقات متعددة الكاميرات على الهواتف القابلة للطي، يجب توفُّر حالة الهاتف (Folded أو Unfolded) أثناء الاختبار. لتفعيل عملية الاقتراع لحالة الهاتف لجميع الأجهزة الخاضعة للاختبار، بما في ذلك الهواتف غير القابلة للطي، نفِّذ أمر adb التالي بعد توصيل الجهاز الخاضع للاختبار بالجهاز المضيف.

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