ملاحظات إصدار "حزمة اختبار صور الكاميرا" لنظام التشغيل 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) في ثلاثة أبعاد. تم ضبط هامش التفاوت في الفرق على %1.

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

تتيح أداة Camera 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. لوحة Arduino shield rev2.0 مع عناصر التحكّم في التدوير والإضاءة

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

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

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

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

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