یادداشت‌های انتشار مجموعه تست تصویر دوربین Android 13

نسخه اندروید ۱۳ شامل تعدادی تغییر در Camera ITS است. علاوه بر تغییرات تدریجی مانند به‌روزرسانی نسخه‌های پایتون و بسته و به‌روزرسانی‌های سخت‌افزار تست، اندروید ۱۳ از تست ویدیو نیز پشتیبانی می‌کند.

این صفحه خلاصه‌ای از تغییرات Camera ITS برای اندروید ۱۳ را ارائه می‌دهد. این تغییرات در هفت دسته کلی قرار می‌گیرند:

نسخه‌های پایتون و بسته‌ها

اندروید ۱۳ علاوه بر نسخه‌ها و کتابخانه‌های پایتون پشتیبانی‌شده در اندروید ۱۲، از نسخه‌های پایتون زیر نیز پشتیبانی می‌کند:

اضافات فایل پیکربندی

با توجه به اضافه شدن کنترل روشنایی برای تست 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 دارای بررسی اشباع کانال مطابق با نسخه‌های قبلی اندروید است، به این معنی که اولین سطح API مورد نیاز برای بررسی اشباع کانال، اندروید ۱۰ است.

scene1_2/test_yuv_plus_raw.py

تست test_yuv_plus_raw حسگرهای غیر ۱۶:۹ یا ۴:۳ را برای پشتیبانی بهتر از 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 در اندروید ۱۳ منسوخ شده است.

scene6/test_zoom.py

تست test_zoom برای امکان آزمایش آسان‌تر سیستم‌های سه و چهار دوربینه، اصلاح شده است. اگر دوربین در محدوده نسبت 10x در بزرگنمایی به درستی آزمایش کند، تست به درستی خارج می‌شود. این امر امکان انجام تست بزرگنمایی را در یک فاصله نمودار واحد فراهم می‌کند.

scene_change/test_scene_change.py

آزمون test_scene_change در اندروید ۱۳ منسوخ شده است.

آزمایش‌های جدید مبتنی بر تبلت

اندروید ۱۳ شامل دو تست جدید مبتنی بر تبلت است. هر دو تست برای دستگاه‌هایی که با اندروید ۱۳ عرضه می‌شوند، اجباری هستند، اما برای دستگاه‌هایی که به اندروید ۱۳ ارتقا می‌یابند، انجام نمی‌شوند.

صحنه نام آزمون سطح اول API توضیحات
۲_الف فلش خودکار تست ۳۳ تأیید می‌کند که صحنه‌های تاریک، فلاش خودکار را فعال می‌کنند.
۲_ب test_yuv_jpg_capture_sameness ۳۳ تأیید می‌کند که تصاویر YUV و JPEG هنوز از نظر بیتی یکسان هستند.

scene2_a/test_auto_flash.py

اندروید ۱۳ تست test_auto_flash را اضافه می‌کند.

پارامترها

  • flash : اگر فلش در دسترس نباشد، تست را رد می‌کند.

روش

این آزمایش درخواست ضبط را برای فلاش خودکار پیکربندی می‌کند و صحنه‌ای را که نیاز به یک رویداد فلاش دارد، ارائه می‌دهد. روشنایی در دستگاه آزمایش و تبلت خاموش می‌شود تا صحنه تاریکی برای الگوریتم نوردهی خودکار ارائه شود. این آزمایش توالی ضبط‌های NUM_FRAMES را با فلاش خودکار فعال پیکربندی می‌کند. اگر تنظیم AE_STATE FLASH_REQUIRED را برگرداند، آزمایش تأیید می‌کند که فلاش در ضبط‌ها زده شده است.

روشنایی را می‌توان به صورت دستی در صورت درخواست، یا به صورت خودکار با یک کنترلر آردوینو که کنترل روشنایی برای تست خودکار به آن اضافه شده است، کنترل کرد. یک پوشه ابزار جدید lighting_control_utils کد را برای کنترل روشنایی در تست‌ها متمرکز می‌کند.

scene2_a/test_yuv_jpeg_capture_sameness.py

اندروید ۱۳ تست test_yuv_jpeg_capture_sameness را اضافه می‌کند.

پارامترها

  • streamUseCase : تعیین می‌کند که آیا دوربین از مورد استفاده‌ی استریم پشتیبانی می‌کند یا خیر.
  • android.jpeg.quality : کیفیت JPEG را روی ۱۰۰ تنظیم می‌کند.

روش

این آزمایش دو تصویر را با استفاده از بزرگترین فرمت‌های رایج YUV و JPEG با نسبت ابعاد مشابه با بزرگترین فرمت JPEG که از وضوح 1920x1440 تجاوز نمی‌کند، ثبت می‌کند. این آزمایش jpeg.quality را روی 100 تنظیم می‌کند و یک درخواست سطح دوگانه را ثبت می‌کند. سپس هر دو تصویر را به آرایه‌های RGB تبدیل می‌کند و تفاوت جذر میانگین مربعات سه‌بعدی (RMS) بین دو تصویر را محاسبه می‌کند. تلرانس تفاوت روی 1٪ تنظیم شده است.

تست ویدیویی

قابلیت Camera ITS در اندروید ۱۳ از تست ویدیو پشتیبانی می‌کند.

اندروید ۱۳ تست‌های زیر را اضافه می‌کند:

صحنه نام آزمون سطح اول API توضیحات
۴ test_preview_stabilization_fov ۳۳ تأیید می‌کند که پیش‌نمایش ویدیو با فعال بودن تثبیت‌کننده، بیش از حد کراپ نمی‌شود.
۴ نسبت_بعدی_ویدئو_و_برش_ویدئو ۳۳ فرمت‌های ویدیویی FoV، نسبت ابعاد و برش را تأیید می‌کند.
سنسور_فیوژن پیش‌نمایش تست پایداری ۳۳ عملکرد تثبیت پیش‌نمایش را تأیید می‌کند.
سنسور_فیوژن تست_ثبات_ویدئو ۳۳ تأیید می‌کند که تثبیت‌کننده ویدیو کار می‌کند.

scene4/test_preview_stabilization_fov.py

اندروید ۱۳ تست test_preview_stabilization_fov را اضافه کرده است. این تست اندازه‌های پیش‌نمایش پشتیبانی‌شده را بررسی می‌کند تا مطمئن شود که FoV به طور نامناسب برش داده نشده است.

روش

این آزمایش دو ویدیو ضبط می‌کند، یکی با قابلیت تثبیت پیش‌نمایش روشن و دیگری با قابلیت تثبیت پیش‌نمایش خاموش. از هر ویدیو یک فریم نماینده انتخاب می‌شود و مورد تجزیه و تحلیل قرار می‌گیرد تا اطمینان حاصل شود که تغییرات میدان دید (FoV) در دو ویدیو مطابق با مشخصات تعیین شده است.

به طور خاص، این آزمایش پارامترهای زیر را با و بدون تثبیت پیش‌نمایش بررسی می‌کند:

  • گردی دایره ثابت می‌ماند.
  • مرکز دایره ثابت می‌ماند.
  • اندازه دایره بیش از 20٪ تغییر نمی‌کند، به این معنی که میدان دید (FoV) حداکثر 20٪ تغییر می‌کند.

scene4/test_video_aspect_ratio_and_crop.py

اندروید ۱۳ تست test_video_aspect_ratio_and_crop را اضافه کرده است. مشابه تست test_aspect_ratio_and_crop برای تصاویر ثابت، این تست فرمت‌های ویدیویی پشتیبانی‌شده را بررسی می‌کند تا اطمینان حاصل شود که فریم‌های ویدیو به طور نامناسب کشیده یا برش داده نشده‌اند. تمام کیفیت‌های ویدیویی گزارش‌شده توسط خود کاربر آزمایش می‌شوند. علاوه بر این، اگر دوربین از ویدیوی HLG10 پشتیبانی کند، ویدیوی ۱۰ بیتی آزمایش می‌شود.

اندروید ۱۳ متد get_available_video_qualities را به its_session_utils اضافه می‌کند. برای به اشتراک گذاشتن کد مشترک با تست‌های موجود، اندروید ۱۳ همچنین شامل دو تابع کاربردی جدید، image_fov_utils و video_processing_utils است.

روش

این آزمایش یک تصویر مرجع را با فرمت RAW یا در صورت عدم پشتیبانی از RAW، با بالاترین وضوح فرمت JPEG ثبت می‌کند. از تصویر مرجع، اندازه و مکان دایره تعیین می‌شود. سپس ویدیوهای کوتاهی با تمام کیفیت‌های ویدیویی پشتیبانی‌شده گرفته می‌شود. فریم مرجع نهایی از هر کیفیت ویدیویی استخراج می‌شود. از فریم مرجع، میدان دید (FoV)، مرکزگرایی (کراپ) و نسبت ابعاد برای هر کیفیت ویدیویی محاسبه می‌شوند.

برای محاسبه میدان دید (FoV)، این آزمایش اندازه دایره فریم ویدیو را با اندازه دایره محاسبه شده از تصویر مرجع و اندازه فرمت ویدیو مقایسه می‌کند. برای بررسی برش، آزمایش مرکز فریم ویدیو را با مرکز تصویر مرجع مقایسه می‌کند. برای بررسی نسبت ابعاد، با استفاده از صحنه، که یک دایره سیاه بزرگ روی پس‌زمینه سفید است، آزمایش نسبت ابعاد دایره را تعیین می‌کند و تأیید می‌کند که فریم تحریف نشده است.

sensor_fusion/test_preview_stabilization.py

اندروید ۱۳ تست test_preview_stabilization اضافه کرده است که تمام کیفیت‌های پیش‌نمایش پشتیبانی‌شده تا وضوح ۱۹۲۰x۱۰۸۰ را آزمایش می‌کند. این تست از دستگاه تست sensor fusion استفاده می‌کند و به کنترلر sensor fusion نسخه ۲ جدید یا ارتقاء میان‌افزار نسخه‌های قبلی کنترلر Arduino نیاز دارد. برای جزئیات بیشتر در مورد کنترلر جدید، به به‌روزرسانی‌ها و اضافات سخت‌افزار مراجعه کنید.

روش

گوشی به آرامی با زاویه تقریباً ۱۵ درجه و با فعال بودن تثبیت پیش‌نمایش حرکت داده می‌شود. سپس چرخش تصاویر با چرخش ژیروسکوپ مقایسه می‌شود.

sensor_fusion/test_video_stabilization.py

اندروید ۱۳ تست test_video_stabilization را اضافه کرده است که کیفیت‌های ویدیویی پشتیبانی شده تا ۱۹۲۰x۱۰۸۰ را آزمایش می‌کند. کیفیت ویدیوی با وضوح پایین QCIF مستثنی است. این تست از دستگاه تست sensor fusion استفاده می‌کند و به کنترلر sensor fusion نسخه ۲ جدید یا ارتقاء میان‌افزار نسخه‌های قبلی کنترلر Arduino نیاز دارد. برای جزئیات بیشتر در مورد کنترلر جدید، به به‌روزرسانی‌ها و اضافات سخت‌افزار مراجعه کنید.

روش

دستگاه آزمایش، گوشی را به آرامی با زاویه تقریباً ۱۵ درجه و با فعال بودن تثبیت پیش‌نمایش حرکت می‌دهد. سپس چرخش تصاویر با چرخش ژیروسکوپ مقایسه می‌شود.

به‌روزرسانی‌ها و اضافات سخت‌افزاری

اندروید ۱۳ شامل ارتقاء کنترلر فیوژن سنسور نسخه ۲ مبتنی بر آردوینو است. این ارتقاء شامل تغییرات سخت‌افزاری و میان‌افزار است. این ارتقاء به کنترلر اجازه می‌دهد سرعت چرخش و کنترل نور را تنظیم کند. این ارتقاء همچنین شامل یک شیلد جدید (که در شکل ۱ نشان داده شده است) است که سه کانال چرخش و سه کانال کنترل نور را فراهم می‌کند.

شیلد آردوینو نسخه ۲.۰

شکل ۱. شیلد آردوینو نسخه ۲.۰ با قابلیت کنترل چرخش و روشنایی

علاوه بر این، برای مدل ۱۳، باید میان‌افزار کنترلرهای موجود به‌روزرسانی شود تا کنترل سرعت چرخش فعال شود. این میان‌افزار را می‌توان از آدرس زیر دانلود کرد:

برای اطلاعات بیشتر در مورد کنترلر جدید، به کنترل‌کننده‌ی فیوژن حسگر اندروید ۱۳ مراجعه کنید.

پشتیبانی تست تاشو

اندروید ۱۳ شامل پشتیبانی آزمایشی از دستگاه‌های تاشو است. برای فعال کردن API چند دوربینه برای دستگاه‌های تاشو، وضعیت تلفن ( Folded یا Unfolded ) در طول آزمایش مورد نیاز است. برای فعال کردن نظرسنجی از وضعیت تلفن برای همه دستگاه‌های تاشو، از جمله تلفن‌های غیر تاشو، دستور adb زیر را پس از اتصال دستگاه تاشو به میزبان اجرا کنید.

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