آزمایش‌های Camera ITS

این صفحه فهرست جامعی از آزمایش‌های تحت «مجموعه آزمایش تصویر دوربین» (ITS) را ارائه می‌دهد که بخشی از «تأییدکننده مجموعه آزمایش سازگاری Android» (CTS) است. آزمایش‌های ITS آزمایش‌های کارکردی هستند، یعنی کیفیت تصویر را اندازه‌گیری نمی‌کنند، بلکه بررسی می‌کنند که همه عملکردهای تبلیغ‌شده دوربین طبق انتظار کار می‌کنند یا نه. این سند به توسعه‌دهندگان و آزمایش‌کنندگان کمک می‌کند تا بفهمند آزمایش‌های فردی چه کاری انجام می‌دهند و چگونه می‌توانند خرابی‌های آزمایش را اشکال‌زدایی کنند.

آزمایش‌های ITS با هر نسخه Android به‌روزرسانی یا اضافه می‌شوند، همان‌طور که در یادداشت‌های انتشار Camera ITS برای آن نسخه Android به‌طور مفصل شرح داده شده است. به‌روزرسانی‌ها براساس اشکالات گزارش‌شده توسط کاربر یا توسعه‌دهنده انجام می‌شود. موارد اضافه‌شده براساس اشکال‌های گزارش‌شده ازسوی کاربر یا توسعه‌دهنده و درستی‌سنجی رفتار صحیح ویژگی‌های چارچوب دوربین جدید است.

در Android 17 و نسخه‌های بالاتر، آزمایش‌های Camera ITS در «تأییدکننده CTS» به دو فعالیت تقسیم می‌شوند تا امکان اجرای موازی فراهم شود و زمان آزمایش کاهش یابد: یک فعالیت برای آزمایش‌های feature_combination و sensor_fusion، و فعالیت دیگر برای همه آزمایش‌های دیگر. برای اطلاعات بیشتر، به کاهش زمان آزمایش مراجعه کنید.

Camera ITS آزمایش‌ها را براساس ویژگی‌های لازم دوربین، سطح API، و سطح کلاس عملکرد رسانه (MPC) فیلتر می‌کند. برای سطح میانای برنامه‌سازی کاربردی، ITS از ro.product.first_api_level برای آزمایش‌های دروازه‌ای استفاده می‌کند که در سطح میانای برنامه‌سازی کاربردی خاصی اضافه شده‌اند که تجربه‌های کاربری منفی را برای عملکرد در سطوح میانای برنامه‌سازی کاربردی پایین‌تر آزمایش می‌کنند. ‫ITS از ro.vendor.api_level برای آزمایش‌های دروازه‌ای برای ویژگی‌های اضافه‌شده در سطح API خاصی که به قابلیت سخت‌افزاری جدید نیاز دارد استفاده می‌کند. اگر ro.odm.build.media_performance_class برای دستگاهی تعریف شده باشد، ITS نیاز دارد که آزمایش‌های خاصی بسته به سطح MPC اجرا شود.

آزمایش‌ها براساس صحنه در بخش‌های زیر گروه‌بندی شده‌اند:

صحنه‌های آزمایشی مبتنی بر رایانه لوحی

  • scene0: ضبط فراداده، لرزش، ژیروسکوپ، ارتعاش
  • scene1: نوردهی، حساسیت، جبران مقدار نوردهی (EV)، ‏YUV درمقابل JPEG و RAW
  • scene2: تشخیص چهره، آزمایش‌هایی که به صحنه‌های رنگی نیاز دارند
  • scene3: به‌سازی کناره‌ها، حرکت لنز
  • scene4: نسبت ابعادی، برش، میدان دید
  • scene6: بزرگ‌نمایی
  • scene7: کلید چنددوربینه
  • scene8: نوردهی خودکار (AE) و تراز سفیدی خودکار (AWB) نورسنجی منطقه‌ای
  • scene9: فشرده‌سازی JPEG
  • scene_extensions: افزونه‌های دوربین
  • scene_tele: تعویض لنز تله‌فوتو
  • scene_video: افت فریم

صحنه‌های آزمایشی مبتنی بر sensor_fusion / دکل Gen2

  • feature_combination: ترکیب ویژگی‌ها
  • scene_flash: فلاش خودکار، حداقل نرخ فریم
  • scene_gen2_chart: آزمایش‌ها بااستفاده از نمودار کاغذی Gen2
  • scene_ip: برابری تصویر بین برنامه دوربین پیش‌فرض و برنامه Jetpack Camera (JCA)
  • sensor_fusion: انحراف زمان‌بندی دوربین و ژیروسکوپ

صحنه آزمایشی مبتنی بر پخش‌کننده

  • scene5: سایه‌زنی لنز

صحنه آزمایشی مبتنی بر رایانه لوحی با گاموت گسترده

  • scene_wide_gamut: نمایه و محدوده رنگی با گاموت گسترده

برای شرح هر صحنه، بخش‌های جداگانه را ببینید.

صحنه‌های آزمایش مبتنی بر رایانه لوحی

صحنه۰

آزمایش‌ها به اطلاعات صحنه خاصی نیاز ندارند. اما برای آزمایش لرزش و ژیروسکوپ، تلفن باید ثابت باشد.

test_jitter

لرزش را در مُهرهای زمان دوربین اندازه‌گیری می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: حداقل ۳۰ میلی‌ثانیه دلتا بین فریم‌ها وجود دارد.

در شکل زیر، به محدوده کوچک محور y توجه کنید. لرزش در این نمودار واقعاً کم است.

test_jitter plot

شکل ۱. نمودار test_jitter.

test_metadata

اعتبار ورودی‌های فراداده را با بررسی نتایج ضبط و اشیای مشخصات دوربین آزمایش می‌کند. این آزمایش از مقادیر نوردهی و بهره auto_capture_request استفاده می‌کند چون محتوای تصویر مهم نیست. این یک آزمایش «شکست سریع» است زیرا در مدت کوتاهی اجرا می‌شود، به حداقل راه‌اندازی نیاز دارد، و نشان‌دهنده تعداد قابل‌توجهی از آزمایش‌های ناموفق در مراحل بعدی است. تا زمانی که test_metadata «قبول» نشده است، نباید کل مجموعه آزمون اجرا شود.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: سطح سخت‌افزار، برچسب‌های rollingShutterSkew، frameDuration، timestampSource، croppingType، blackLevelPattern، pixel_pitch، میدان دید (FoV)، و فاصله هایپرفوکال وجود دارند و مقادیر معتبری دارند.

test_request_capture_match

آزمایش می‌کند که دستگاه با بازخوانی فراداده ضبط، مقادیر صحیح نوردهی و بهره را می‌نویسد. این یک آزمایش «سریع-ناموفق» است زیرا به حداقل راه‌اندازی نیاز دارد و نشان‌دهنده تعداد قابل‌توجهی از آزمایش‌های ناموفق در مراحل بعدی است. تا زمانی که test_request_capture_match «قبول» نشده است، نباید کل مجموعه آزمون اجرا شود.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: مقادیر فراداده درخواست و ضبط در همه نماها مطابقت دارد.

test_sensor_events

برای دستگاه‌هایی که پشتیبانی از ادغام حسگر را تبلیغ می‌کنند، این آزمایش بررسی می‌کند که آیا دستگاه رویدادهای حسگر را جستجو و چاپ می‌کند یا نه. حسگرهای موردانتظار عبارت‌اند از شتاب‌سنج، ژیروسکوپ، و مغناطیس‌سنج. این آزمایش فقط زمانی کار می‌کند که صفحه‌نمایش روشن باشد، یعنی دستگاه در حالت آماده‌به‌کار نباشد. این یک آزمایش «شکست سریع» است که در مدت کوتاهی اجرا می‌شود، به حداقل راه‌اندازی نیاز دارد، و نشان می‌دهد که آزمایش ادغام حسگر در مراحل بعدی ناموفق بوده است. آزمایش‌های صحنه sensor_fusion نباید اجرا شود مگر اینکه test_sensor_events «قبول» یا «ردشدن» باشد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: رویدادهای هر حسگر دریافت می‌شود.

test_solid_color_test_pattern

آزمایش می‌کند که الگوهای آزمایشی رنگ ثابت به‌درستی برای بی‌صدا کردن دوربین تولید می‌شوند. اگر بی‌صدا کردن دوربین پشتیبانی می‌شود، الگوهای آزمایشی رنگ ثابت باید پشتیبانی شود. اگر بی‌صدا کردن دوربین پشتیبانی نشود، الگوهای آزمایشی رنگ ثابت فقط درصورتی آزمایش می‌شوند که این قابلیت تبلیغ شده باشد.

اگر تصاویر خام پشتیبانی شود، تخصیص رنگ نیز آزمایش می‌شود. رنگ‌های آزمایش‌شده عبارت‌اند از سیاه، سفید، قرمز، آبی، و سبز. برای دوربین‌هایی که از تصاویر خام پشتیبانی نمی‌کنند، فقط رنگ سیاه آزمایش می‌شود.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: الگوهای آزمایشی یکدست پشتیبانی‌شده رنگ درستی دارند و واریانس کمی در تصویر وجود دارد.

test_test_pattern

پارامتر android.sensor.testPatternMode را آزمایش می‌کند تا قاب‌ها را برای هر الگوی آزمایش معتبر ضبط کند و بررسی می‌کند که قاب‌ها به‌درستی برای رنگ‌های یکدست و نوارهای رنگی تولید شده باشند. این آزمایش شامل مراحل زیر است:

  1. تصاویر را برای همه الگوهای آزمایشی پشتیبانی‌شده ضبط می‌کند.
  2. بررسی درستی را برای الگوی آزمایش رنگ ثابت و نوارهای رنگی انجام می‌دهد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: الگوهای آزمایشی پشتیبانی‌شده به‌درستی تولید می‌شوند.

نمونه test_test_patterns

شکل ۲. نمونه test_test_patterns.

test_tonemap_curve

تبدیل الگوی آزمایشی از خام به YUV را با نگاشت رنگ خطی آزمایش می‌کند. این آزمایش به android.sensor.testPatternMode = 2 (COLOR_BARS) نیاز دارد تا الگوی تصویر بی‌نقصی برای تبدیل نگاشت رنگمایه تولید کند. تأیید می‌کند که خط لوله دارای خروجی‌های رنگی مناسب با نگاشت رنگ خطی و ورودی تصویر ایده‌آل است (به test_test_patterns متکی است).

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: YUV و RAW شبیه یکدیگر هستند.

نمونه خام test_tonemap_curve

شکل ۳. نمونه خام test_tonemap_curve.

test_tonemap_curve YUV example

شکل ۴. نمونه test_tonemap_curve YUV.

test_unified_timestamp

آزمایش می‌کند که آیا رویدادهای حسگر تصویر و حرکت در یک دامنه زمانی هستند یا نه. این یک آزمایش سریع-ناموفق است زیرا در مدت کوتاهی اجرا می‌شود، به حداقل راه‌اندازی نیاز دارد، و ناموفق بودن آزمایش ادغام حسگر را در پایین‌دست نشان می‌دهد. آزمایش‌های صحنه sensor_fusion نباید اجرا شود مگراینکه test_unified_timestamp «قبول» یا «ردشده» باشد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: مُهرهای زمان حرکت بین دو مُهر زمان تصویر قرار دارد.

test_vibration_restriction

آزمایش می‌کند که آیا لرزش دستگاه طبق انتظار عمل می‌کند یا نه.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: وقتی دستگاه توسط میانای برنامه‌سازی کاربردی محدودیت صدای دوربین بی‌صدا می‌شود، نمی‌لرزد.

scene1_1

‫scene1 نموداری خاکستری است. نمودار خاکستری باید ۳۰٪ مرکزی میدان دید دوربین را پوشش دهد. انتظار می‌رود نمودار خاکستری 3A (نوردهی خودکار، تراز سفیدی خودکار، و فوکوس خودکار) را به‌طور متوسط به‌چالش بکشد زیرا منطقه مرکزی هیچ ویژگی‌ای ندارد. بااین‌حال، درخواست ضبط کل صحنه را مشخص می‌کند که شامل ویژگی‌های کافی برای همگرایی 3A است.

دوربین‌های RFoV را می‌توان در دکل آزمایشی WFoV یا RFoV آزمایش کرد. اگر دوربین RFoV در دکل آزمایشی WFoV آزمایش شود، نمودار به‌اندازه ۲/۳ مقیاس‌بندی می‌شود تا برخی‌از مرزهای نمودار خاکستری در FoV مشخص شود و به همگرایی 3A کمک کند. برای توضیحات دقیق‌تر درباره دکل‌های آزمایش دوربین، به Camera ITS-in-a-box مراجعه کنید.

نمونه صحنه ۱

شکل ۵. نمودار scene1 با اندازه کامل (چپ)، نمودار با مقیاس ۲/۳ (راست).

test_ae_precapture_trigger

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

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: AE همگرا می‌شود.

test_auto_vs_manual

آزمایش‌هایی که نشان داد عکس‌های خودکار و دستی یکسان به‌نظر می‌رسند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: بهره‌های تعادل سفیدی غیرخودکار و تبدیل گزارش‌شده در هر نتیجه ضبط با estimate تعادل سفیدی خودکار از الگوریتم 3A دوربین مطابقت دارد.

test_auto_vs_manual auto example

شکل ۶. نمونه خودکار test_auto_vs_manual.

test_auto_vs_manual white balance example

شکل ۷. نمونه تعادل سفیدی test_auto_vs_manual.

test_auto_vs_manual manual white balance transform example

شکل ۸. نمونه تبدیل تعادل سفیدی غیرخودکار test_auto_vs_manual.

test_black_white

آزمایش می‌کند که دستگاه تصاویر کاملاً سیاه و سفید تولید می‌کند. دو عکس می‌گیرد، اولی با بهره بسیار کم و نوردهی کوتاه که منجر به عکس سیاه می‌شود، و دومی با بهره بسیار زیاد و نوردهی طولانی که منجر به عکس سفید می‌شود.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

مجوز: تصاویر سیاه‌وسفید تولید می‌کند. کانال‌های اشباع‌شده تصاویر سفید دارای مقادیر RGB‏ [۲۵۵، ۲۵۵، ۲۵۵] با حاشیه خطای کمتر از ۱٪ تفاوت هستند.

test_black_white, black example

شکل ۹. test_black_white، نمونه سیاه.

test_auto_vs_manual manual white balance transform example

شکل ۱۰. test_black_white، نمونه سفید.

test_black_white plot means example

شکل ۱۱. test_black_white، نمودار میانگین نمونه.

test_burst_capture

تأیید می‌کند که کل خط لوله ضبط می‌تواند با سرعت ضبط اندازه کامل و زمان واحد پردازش مرکزی همگام باشد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: رگباری از تصاویر اندازه کامل می‌گیرد، افت فریم و روشنایی تصویر را بررسی می‌کند.

test_burst_sameness_manual

۵ رگبار ۵۰ تصویری با تنظیمات ضبط دستی می‌گیرد و بررسی می‌کند که همه آن‌ها یکسان باشند. از این آزمایش برای شناسایی فریم‌های پراکنده که به‌طور متفاوت پردازش می‌شوند یا دارای آرتیفکت هستند استفاده کنید.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تصاویر ازنظر بصری و مقادیر RGB یکسان هستند.

رد شدن: در ابتدای هر رگبار، جهش یا افت در نمودار میانگین RGB نشان می‌دهد

  • انعطاف‌پذیری برای first_API_level < ۳۰، ۳٪ است
  • انعطاف‌پذیری برای first_API_level >= ۳۰،‏ ۲٪ است

test_burst_sameness_manual_mean

شکل ۱۲. نمونه میانگین test_burst_sameness_manual.

test_burst_sameness_manual_plot_means

شکل ۱۳. test_burst_sameness_manual_plot_means

test_crop_region_raw

آزمایش می‌کند که جاری‌سازی‌های RAW قابل‌برش نباشند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تصاویر YUV از مرکز برش داده می‌شوند اما تصاویر RAW نه.

test_crop_region_raw comp raw crop example

شکل ۱۴. نمونه برش خام comp test_crop_region_raw.

test_crop_region_raw comp raw full example

شکل ۱۵. نمونه کامل test_crop_region_raw comp raw.

test_crop_region_raw comp YUV crop example

شکل ۱۶. نمونه برش YUV از comp test_crop_region_raw.

test_crop_region_raw_yuv_full example

شکل ۱۷. نمونه کامل test_crop_region_raw YUV.

test_crop_regions

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

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تصویر ناحیه برش‌خورده با وصله‌ای که با تصویر برش‌خورده مطابقت دارد هم‌خوانی دارد.

test_ev_compensation

آزمایش می‌کند که جبران مقدار نوردهی (EV) اعمال شده باشد. این آزمون شامل یک بخش پایه و یک بخش پیشرفته است.

بخش پایه آزمایش می‌کند که جبران نوردهی بااستفاده از محدوده‌ای که با CONTROL_AE_COMPENSATION_STEP ایجاد شده است اعمال می‌شود. در هر مقدار جبران، هشت فریم ضبط می‌شود.

بخش پیشرفته نوردهی را در هشت مرحله افزایش می‌دهد و روشنایی اندازه‌گیری‌شده را با روشنایی موردانتظار مقایسه می‌کند. مقادیر موردانتظار از روشنایی تصویر بدون اعمال جبران EV محاسبه می‌شود و اگر مقادیر محاسبه‌شده از محدوده مقدار واقعی تصویر فراتر رود، مقدار موردانتظار اشباع می‌شود. اگر مقادیر موردانتظار و مقادیر اندازه‌گیری‌شده مطابقت نداشته باشند یا اگر تصاویر در پنج مرحله نوردهی بیش‌ازحد داشته باشند، آزمایش ناموفق است.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبولی در بخش پایه: تصاویر افزایش نوردهی را بدون نوردهی بیش‌ازحد در پنج مرحله نشان می‌دهند.

test_ev_compensation_basic

شکل ۱۸. test_ev_compensation_basic.

قبولی در بخش پیشرفته: افزایش در لومینانس را با افزایش تنظیم جبران EV ثبت می‌کند. هشت فریم ضبط‌شده برای هر تنظیم جبران نوردهی دارای مقادیر لومای پایدار هستند.

test_ev_compensation_advanced_plot_means

شکل ۱۹. test_ev_compensation_advanced_plot_means.

test_exposure_x_iso

آزمایش‌هایی که با تغییر ISO و زمان نوردهی، نوردهی ثابتی به‌دست می‌آید. مجموعه‌ای از عکس‌ها را می‌گیرد که ISO و زمان نوردهی آن‌ها برای ایجاد تعادل با یکدیگر انتخاب شده‌اند. نتایج باید روشنایی یکسانی داشته باشند، اما درطول توالی، تصویر باید نویز بیشتری داشته باشد. تأیید می‌کند که مقادیر میانگین پیکسل نمونه به یکدیگر نزدیک هستند. تأیید می‌کند که تصاویر به ۰ یا ۱ محدود نشده باشند (که باعث می‌شود شبیه خطوط صاف به‌نظر برسند). این آزمایش را می‌توان با تصاویر RAW نیز اجرا کرد. برای این کار، پرچم debug را در فایل پیکربندی‌تان تنظیم کنید.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تصاویر روشنایی یکسانی دارند، اما با ISO بالاتر نویز بیشتری دارند. وقتی مقدار ISO*نوردهی در فضای بهره آزمایش‌شده ثابت باشد، صفحه‌های RGB تخت هستند.

مکانیزم خرابی: در شکل زیر، با افزایش مقادیر ضریب بهره (محور x)، مقادیر میانگین صفحه RGB نرمال‌شده (محور y) شروع به انحراف از مقادیر ضریب بهره پایین می‌کنند.

test_exposure_plot_means

شکل ۲۰. test_exposure_plot_means.

test_exposure_mult=1.00.jpg

شکل ۲۱. test_exposure_mult=1.00.

test_exposure_mult=64.00

شکل ۲۲. test_exposure_mult=64.00.

test_latching

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

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تصاویر [۲، ۳، ۶، ۸، ۱۰، ۱۲، ۱۳] دارای ISO یا نوردهی افزایش‌یافته هستند و با میانگین RGB بالاتر در نمودار شکل زیر نشان داده شده‌اند.

test_latching plot means example

شکل ۲۳. نمونه میانگین نمودار test_latching.

test_latching i=00

شکل ۲۴. test_latching i=00.

test_latching i=01

شکل ۲۵. test_latching i=01.

test_latching i=02

شکل ۲۶. test_latching i=02.

test_latching i=03

شکل ۲۷. test_latching i=03.

test_latching i=04

شکل ۲۸. test_latching i=04.

test_latching i=05

شکل ۲۹. test_latching i=05.

test_latching i=06

شکل ۳۰. test_latching i=06.

test_latching i=07

شکل ۳۱. test_latching i=07.

test_latching i=08

شکل ۳۲. test_latching i=08.

test_latching i=09

شکل ۳۳. test_latching i=09.

test_latching i=10

شکل ۳۴. test_latching i=10.

test_latching i=11

شکل ۳۵. test_latching i=11.

test_latching i=12

شکل ۳۶. test_latching i=12.

test_linearity

آزمایش می‌کند که پردازش دستگاه می‌تواند به پیکسل‌های خطی معکوس شود. وقتی دستگاه به‌سمت هدف یکنواختی گرفته شده باشد، توالی‌ای از عکس‌ها را ثبت می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: مقادیر R،‏ G،‏ B باید به‌طور خطی با افزایش حساسیت افزایش یابند.

test_linearity plot means example

شکل ۳۷. نمونه میانگین نمودار test_linearity.

test_locked_burst

قفل 3A و انفجار YUV را آزمایش می‌کند (بااستفاده از تنظیم خودکار). این آزمایش به‌گونه‌ای طراحی شده است که حتی در دستگاه‌های محدودی که MANUAL_SENSOR یا PER_FRAME_CONTROLS ندارند، موفقیت‌آمیز باشد. این آزمایش سازگاری تصویر YUV را بررسی می‌کند، درحالی‌که بررسی نرخ فریم در CTS است.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: عکس‌های گرفته‌شده یکدست به‌نظر می‌رسند.

test_locked_burst frame0 example

شکل ۳۸. نمونه test_locked_burst frame0.

test_locked_burst frame1 example

شکل ۳۹. نمونه test_locked_burst frame1.

test_locked_burst_frame2

شکل ۴۰. نمونه test_locked_burst frame2.

scene1_2

scene 1_2 ازنظر عملکردی کپی یکسانی از scene 1_1 است که ساختار زیرصحنه را برای کاهش مدت‌زمان طولانی scene 1 پیاده‌سازی می‌کند.

test_param_color_correction

آزمایش می‌کند که پارامترهای android.colorCorrection.* هنگام تنظیم اعمال شوند. با مقادیر تبدیل و بهره متفاوت عکس می‌گیرد و آزمایش می‌کند که آیا عکس‌ها به‌طور متناظر متفاوت به‌نظر می‌رسند یا نه. تبدیل و بهره‌ها به‌گونه‌ای انتخاب می‌شوند که خروجی به‌طور فزاینده‌ای قرمز یا آبی شود. از نگاشت رنگمایه خطی استفاده می‌کند.

نگاشت رنگمایه تکنیکی است که در پردازش تصویر برای نگاشت یک مجموعه رنگ به مجموعه‌ای دیگر استفاده می‌شود تا ظاهر تصاویر با دامنه پویای بالا در رسانه‌ای با دامنه پویای محدودتر شبیه‌سازی شود.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: مقادیر قرمز و آبی براساس تبدیل تقویت می‌شوند.

test_param_color_correction plot means example

شکل ۴۱. نمونه میانگین نمودار test_param_color_correction.

در شکل‌های زیر، محور x درخواست‌های ضبط است: 0 = unity،‏ 1 = red boost، و 2 = blue boost.

test_param_color_correction req=0 unity example

شکل ۴۲. نمونه unity با req=0 برای test_param_color_correction.

test_param_color_correctness req=1 red boost example

شکل ۴۳. نمونه تقویت رنگ قرمز test_param_color_correctness req=1.

test_param_color_correction req=2 blue boost example

شکل ۴۴. نمونه تقویت رنگ آبی req=2 در test_param_color_correction.

test_param_flash_mode

آزمایش می‌کند که پارامتر android.flash.mode اعمال شده باشد. نوردهی را به‌صورت دستی روی سمت تاریک تنظیم می‌کند تا مشخص شود فلاش زده شده است یا نه، و از نگاشت رنگ خطی استفاده می‌کند. مرکز را با تصویر کاشی بررسی می‌کند تا ببیند آیا گرادیان بزرگی ایجاد شده است تا تأیید کند فلاش زده است یا نه.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: مرکز تصویر کاشی گرادیان بزرگی دارد، یعنی فلاش زده شده است.

test_param_flash_mode 1 example

شکل ۴۵. نمونه test_param_flash_mode 1.

test_param_flash_mode 1 tile example

شکل ۴۶. نمونه یک کاشی test_param_flash_mode.

test_param_flash_mode_2 example

شکل ۴۷. نمونه test_param_flash_mode 2.

test_param_flash_mode 2 tile example

شکل ۴۸. نمونه دو کاشی test_param_flash_mode.

test_param_noise_reduction

آزمایش می‌کند که پارامتر android.noiseReduction.mode درصورت تنظیم شدن، به‌درستی اعمال شود. تصاویر را با دوربین در نور کم ثبت می‌کند. از بهره آنالوگ بالا استفاده می‌کند تا مطمئن شود تصویر گرفته‌شده نویز دارد. سه تصویر برای NR خاموش، سریع، و کیفیت بالا می‌گیرد. همچنین تصویری با بهره کم و NR خاموش ثبت می‌کند و از واریانس آن به‌عنوان خط مبنا استفاده می‌کند. هرچه نسبت سیگنال به نویز (SNR) بالاتر باشد، کیفیت تصویر بهتر است.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: SNR با حالت‌های مختلف نوفه‌کاهی متفاوت است و رفتاری مشابه نمودار زیر دارد:

test_param_noise_reduction plot SNRs example

شکل ۴۹. نمونه SNRs نمودار test_param_noise_reduction.

0: OFF, 1: FAST, 2: HQ, 3: MIN , 4: ZSL

test_param_noise_reduction high gain nr=0 example

شکل ۵۰. نمونه test_param_noise_reduction high gain nr=0.

test_param_noise_reduction high gain nr=1 example

شکل ۵۱. نمونه test_param_noise_reduction high gain nr=1.

test_param_noise_reduction high gain nr=2 example

شکل ۵۲. نمونه test_param_noise_reduction high gain nr=2.

test_param_noise_reduction high gain nr=3 example

شکل ۵۳. نمونه test_param_noise_reduction high gain nr=3.

test_param_noise_reduction low gain example

شکل ۵۴. نمونه بهره کم test_param_noise_reduction.

test_param_shading_mode

آزمایش می‌کند که پارامتر android.shading.mode اعمال شده باشد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

موفق: حالت‌های سایه‌زنی تغییر می‌کنند و نقشه‌های سایه‌زنی لنز طبق انتظار اصلاح می‌شوند.

test_param_shading_mode lens shading map, mode 0 loop 0 example

شکل ۵۵. نقشه سایه‌زنی لنز test_param_shading_mode، مثال حلقه ۰ حالت ۰.

test_param_shading_mode lens shading map, mode 1 loop 0 example

شکل ۵۶. نقشه سایه‌زنی لنز test_param_shading_mode، نمونه حلقه ۰ حالت ۱.

test_param_shading_mode lens shading map, mode 2 loop 0 example

شکل ۵۷. نقشه سایه‌زنی لنز test_param_shading_mode، مثال حلقه ۰ حالت ۲.

test_param_tonemap_mode

آزمایش می‌کند که پارامتر android.tonemap.mode اعمال شده باشد. منحنی‌های نگاشت رنگمایه متفاوتی را برای هر کانال R،‏ G،‏ B اعمال می‌کند و بررسی می‌کند که تصاویر خروجی طبق انتظار اصلاح شده باشند. این آزمایش شامل دو آزمایش test1 و test2 است.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

گذرواژه:

  • test1: هر دو تصویر دارای نگاشت رنگ خطی هستند، اما n=1 شیب تندتری دارد. کانال G (سبز) برای تصویر n=1 روشن‌تر است.
  • ‫test2: نگاشت رنگمایه یکسان، اما طول متفاوت. تصاویر یکسان هستند.

test_param_tonemap_mode with n=0

شکل ۵۸. test_param_tonemap_mode با n=0.

test_param_tonemap_mode with n=1

شکل ۵۹. test_param_tonemap_mode با n=1.

test_post_raw_sensitivity_boost

بررسی‌ها پس‌از تقویت حساسیت خام. مجموعه‌ای از تصاویر خام و YUV را با حساسیت‌های مختلف ضبط می‌کند، ترکیب تقویت حساسیت خام را پست می‌کند، و بررسی می‌کند که آیا میانگین پیکسل خروجی با تنظیمات درخواست مطابقت دارد یا نه.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: با افزایش تقویت، تصاویر Raw تیره‌تر می‌شوند درحالی‌که روشنایی تصاویر YUV ثابت می‌ماند.

test_post_raw_sensitivity_boost raw s=3583 boost=0100 example

شکل ۶۰. نمونه test_post_raw_sensitivity_boost raw s=3583 boost=0100.

test_post_raw_sensitivity_boost raw s=1792 boost=0200 example

شکل ۶۱. نمونه test_post_raw_sensitivity_boost raw s=1792 boost=0200.

test_post_raw_sensitivity_boost raw s=0896 boost=0400 example

شکل ۶۲. نمونه test_post_raw_sensitivity_boost raw s=0896 boost=0400.

test_post_raw_sensitivity_boost raw s=0448 boost=0800 example

شکل ۶۳. نمونه test_post_raw_sensitivity_boost raw s=0448 boost=0800.

test_post_raw_sensitivity_boost raw s=0224 boost=1600 example

شکل ۶۴. نمونه test_post_raw_sensitivity_boost raw s=0224 boost=1600.

test_post_raw_sensitivity_boost raw s=0112 boost=3199 example

شکل ۶۵. نمونه test_post_raw_sensitivity_boost raw s=0112 boost=3199.

test_post_raw_sensitivity_boost raw plot means example

شکل ۶۶. نمونه میانگین نمودار خام test_post_raw_sensitivity_boost.

test_post_raw_sensitivity_boost YUV s=0112 boost=3199 example

شکل ۶۷. نمونه test_post_raw_sensitivity_boost YUV s=0112 boost=3199.

test_post_raw_sensitivity_boost YUV s=0448 boost=0800 example

شکل ۶۸. نمونه test_post_raw_sensitivity_boost YUV s=0448 boost=0800.

test_post_raw_sensitivity_boost YUV s=0896 boost=0400 example

شکل ۶۹. نمونه test_post_raw_sensitivity_boost YUV s=0896 boost=0400.

test_post_raw_sensitivity_boost YUV s=1792 boost=0200 example

شکل ۷۰. نمونه test_post_raw_sensitivity_boost YUV s=1792 boost=0200.

test_post_raw_sensitivity_boost YUV s=3585 boost=0100 example

شکل ۷۱. نمونه test_post_raw_sensitivity_boost YUV s=3585 boost=0100.

test_post_raw_sensitivity_boost_yuv_plot_means

شکل ۷۲. نمونه test_post_raw_sensitivity_boost_yuv_plot_means.

test_raw_exposure

مجموعه‌ای از تصاویر خام را با افزایش زمان نوردهی ثبت می‌کند و مقادیر پیکسل را اندازه‌گیری می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: افزایش ISO (بهره) پیکسل‌ها را نسبت‌به نور حساس‌تر می‌کند، بنابراین نمودار به‌سمت چپ حرکت می‌کند.

test_raw_exposure ISO=55 example

شکل ۷۳. نمونه test_raw_exposure ISO=55.

‫۱۰⁰ برابر با ۱ میلی‌ثانیه، ۱۰¹ برابر با ۱۰ میلی‌ثانیه، و ۱۰⁻¹ برابر با ۰٫۱ میلی‌ثانیه است.

test_raw_exposure ISO=132 example

شکل ۷۴. نمونه test_raw_exposure ISO=132.

test_raw_exposure ISO=209 example

شکل ۷۵. نمونه test_raw_exposure ISO=209.

test_raw_exposure ISO=286 example

شکل ۷۶. نمونه test_raw_exposure ISOs=286.

test_raw_exposure ISO=363 example

شکل ۷۷. نمونه test_raw_exposure ISO=363.

test_raw_exposure_s=440

شکل ۷۸. نمونه test_raw_exposure ISO=440.

test_reprocess_noise_reduction

آزمایش‌هایی که android.noiseReduction.mode برای درخواست‌های پردازش مجدد اعمال می‌شود. تصاویر بازپردازش‌شده را با دوربین در نور کم ضبط می‌کند. از بهره آنالوگ بالا استفاده می‌کند تا تأیید کند تصویر ضبط‌شده نویز دارد. سه تصویر بازپردازش‌شده را برای NR خاموش، سریع، و کیفیت بالا ضبط می‌کند. تصویر بازپردازش‌شده‌ای را با بهره کم و NR خاموش ثبت می‌کند و از واریانس آن به‌عنوان خط مبنا استفاده می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: FAST >= OFF،‏ HQ >= FAST، و HQ >> OFF.

نمودار SNR معمول درمقابل حالت NR

شکل ۷۹. نمونه نمودار SNR معمول دربرابر حالت NR.

test_tonemap_sequence

توالی عکس‌ها را با منحنی‌های نگاشت رنگمایه مختلف آزمایش می‌کند. ۳ عکس دستی با نگاشت رنگمایه خطی می‌گیرد. ۳ عکس دستی با نگاشت رنگ پیش‌فرض می‌گیرد. دلتا را بین هر جفت قاب متوالی محاسبه می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: سه قاب یکسان وجود دارد که به‌دنبال آن مجموعه دیگری از سه قاب یکسان وجود دارد.

test_tonemap_sequence i=0 example

شکل ۸۰. نمونه test_tonemap_sequence i=0.

test_tonemap_sequence i=1 example

شکل ۸۱. نمونه test_tonemap_sequence i=1.

test_tonemap_sequence i=2 example

شکل ۸۲. نمونه test_tonemap_sequence i=2.

test_tonemap_sequence i=3 example

شکل ۸۳. نمونه test_tonemap_sequence i=3.

test_tonemap_sequence_i=4 example

شکل ۸۴. نمونه test_tonemap_sequence i=4.

test_tonemap_sequence i=5 example

شکل ۸۵. نمونه test_tonemap_sequence i=5.

test_yuv_jpeg_all

آزمایش می‌کند که همه اندازه‌ها و قالب‌های گزارش‌شده برای ضبط تصویر کار می‌کنند. از درخواست دستی با نگاشت رنگ خطی استفاده می‌کند تا YUV و JPEG هنگام تبدیل توسط واحد image_processing_utils یکسان به‌نظر برسند. تصاویر به‌طور پیش‌فرض ذخیره نمی‌شوند، اما با فعال کردن debug_mode می‌توان آن‌ها را ذخیره کرد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: همه مراکز تصویر حداکثر تفاوت جذر میانگین مربعات (RMS) (مقدار سیگنال) را در تصاویر تبدیل‌شده RGB با ۳٪ از تصویر YUV با بالاترین وضوح دارند.

test_yuv_jpeg_all example

شکل ۸۶. نمونه test_yuv_jpeg_all.

test_yuv_plus_dng

آزمایش می‌کند که اندازه‌ها و قالب‌های گزارش‌شده برای ضبط تصویر کار می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: آزمایش تکمیل می‌شود و تصاویر درخواست‌شده را برمی‌گرداند.

test_yuv_plus_dng example

شکل ۸۷. نمونه test_yuv_plus_dng.

scene1_3

scene 1_3 ازنظر عملکردی کپی یکسانی از scene 1_1 است که ساختار زیرصحنه را برای کاهش مدت‌زمان طولانی scene 1 پیاده‌سازی می‌کند.

test_capture_result

آزمایش می‌کند که داده‌های معتبر در اشیاء CaptureResult برگردانده شود. این آزمایش شامل یک ثبت خودکار، یک ثبت دستی، و یک ثبت خودکار دوم است.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: فراداده برای همه عکس‌برداری‌ها معتبر است و تنظیمات دستی به عکس‌برداری خودکار دوم نشت نمی‌کند. تصحیح سایه‌زنی لنز را برای عکس‌های گرفته‌شده ترسیم می‌کند.

test_capture_result_plot_lsc_auto_ch0

شکل ۸۸. test_capture_result_plot_lsc_auto_ch0.

test_dng_noise_model

درستی‌سنجی می‌کند که پارامترهای مدل خام DNG درست باشد. این نمودار واریانس اندازه‌گیری‌شده یک وصله مرکزی از کارت خاکستری را در عکس‌های خام گرفته‌شده در طیفی از حساسیت‌ها نشان می‌دهد و این مقادیر را با واریانسی که در هر حساسیت توسط مدل نویز DNG در HAL دوربین انتظار می‌رود (براساس پارامترهای O,S برگردانده‌شده در اشیاء نتیجه عکس‌برداری) مقایسه می‌کند. برای جزئیات بیشتر درباره مدل نویز DNG، سند زیر را درباره مدل نویز DNG بارگیری کنید.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: پارامترهای مدل خام DNG صحیح است. مقادیر RGB موردانتظار با مقادیر RGB واقعی اندازه‌گیری‌شده مطابقت دارد.

test_dng_noise_model_plog

شکل ۸۹. test_dng_noise_model_plog.

test_jpeg

آزمایش می‌کند که تصاویر YUV تبدیل‌شده و تصاویر JPEG دستگاه یکسان به‌نظر برسند. آزمایش ۱۰٪ مرکز تصویر را می‌گیرد و مقدار RGB را محاسبه می‌کند و تأیید می‌کند که مطابقت دارند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: میانگین تفاوت RGB بین هر تصویر کمتر از ۳٪ است.

test_jpeg_fmt=jpg.jpg

شکل ۹۰. test_jpeg_fmt=jpg.jpg.

test_jpeg=fmt=yuv.jpg

شکل ۹۱. test_jpeg=fmt=yuv.jpg.

test_raw_burst_sensitivity

مجموعه‌ای از تصاویر خام را با بهره‌های افزایشی ضبط می‌کند و نوفه را اندازه‌گیری می‌کند. فقط عکس‌های خام را به‌صورت رگباری ضبط می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: هر عکس نسبت‌به عکس قبلی نویز بیشتری دارد، زیرا بهره درحال افزایش است.

از واریانس سلول شبکه آمار مرکزی استفاده می‌کند.

test_raw_burst_sensitivity_variance

شکل ۹۲. test_raw_burst_sensitivity_variance.

test_raw_sensitivity

مجموعه‌ای از تصاویر خام را با حساسیت‌های افزایشی ضبط می‌کند و نویز (واریانس) را در ۱۰٪ مرکز تصویر اندازه‌گیری می‌کند. آزمایش می‌کند که هر عکس نویز بیشتری نسبت‌به عکس قبلی داشته باشد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

پاس: واریانس با هر شوت افزایش می‌یابد.

test_raw_sensitivity_variance

شکل ۹۳. test_raw_sensitivity_variance.

test_yuv_plus_jpeg

یک فریم تکی را به‌عنوان بروندادهای YUV و JPEG ضبط می‌کند. از درخواست دستی با نگاشت رنگ خطی استفاده می‌کند تا YUV و JPEG هنگام تبدیل توسط واحد image_processing_utils یکسان به‌نظر برسند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تصاویر YUV و JPEG مشابه هستند و کمتر از ۱٪ تفاوت RMS (مقدار سیگنال) دارند.

test_yuv_plus_jpeg با قالب JPEG

شکل ۹۴. test_yuv_plus_jpeg با قالب JPEG.

test_yuv_plus_jpeg با قالب YUV

شکل ۹۵. test_yuv_plus_jpeg با قالب YUV.

test_yuv_plus_raw

ضبط یک فریم را هم به‌صورت خروجی خام (خام ۱۰ بیتی و ۱۲ بیتی) و هم به‌صورت خروجی YUV (درصورت پشتیبانی) آزمایش می‌کند. از درخواست دستی با نگاشت رنگ خطی استفاده می‌کند، بنابراین انتظار می‌رود خام و YUV یکسان باشند. مقادیر RGB ۱۰٪ مرکزی تصاویر تبدیل‌شده RGB را مقایسه می‌کند. گزارش‌هاandroid.shading.mode.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تصاویر YUV و خام مشابه هستند و کمتر از ۳٫۵٪ تفاوت RMS (مقدار جذر میانگین مربعات سیگنال) دارند.

test_yuv_plus_raw_shading=1_raw.jpg

شکل ۹۶. test_yuv_plus_raw_shading=1_raw.jpg.

test_yuv_plus_raw_shading=1_yuv.jpg

شکل ۹۷. test_yuv_plus_raw_shading=1_yuv.jpg.

test_sensitivity_priority

آزمایش‌هایی CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY در تنظیمات مختلف ISO انجام می‌دهد تا همبستگی بین ISO بالاتر و افزایش سطح نوفه را تأیید کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: ISO بالاتر منجر به افزایش سطح نوفه می‌شود.

معیارهای رد شدن از آزمایش

اگر هرکدام از معیارهای زیر برآورده شود، آزمایش test_sensitivity_priority.py نادیده گرفته می‌شود:

test_exposure_time_priority

آزمایش‌ها CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY در زمان‌های نوردهی مختلف، بررسی روشنایی پایدار در محدوده‌ای که ISO می‌تواند جبران کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: اگر ISO در محدوده جبران آن باشد، روشنایی درطول زمان‌های نوردهی پایدار است (در محدوده تلورانس).

معیارهای رد شدن از آزمایش

اگر هرکدام از معیارهای زیر برآورده شود، آزمایش test_exposure_time_priority نادیده گرفته می‌شود:

scene2_a

scene2_a سه چهره با پس‌زمینه خاکستری و لباس خنثی دارد. چهره‌ها به‌گونه‌ای انتخاب شده‌اند که طیف وسیعی از رنگ‌های پوست را داشته باشند. برای اینکه تشخیص چهره به‌طور بهینه کار کند، نمودار باید جهت درستی داشته باشد.

نمونه scene2_a

شکل ۹۸. نمونه scene2_a.

test_autoframing

رفتار قاب‌بندی خودکار دستگاه دوربین را آزمایش می‌کند. بزرگ‌نمایی زیادی انجام می‌دهد به‌طوری‌که هیچ‌کدام از چهره‌ها در صحنه قابل‌مشاهده نیستند، حالت قاب‌بندی خودکار را با تنظیم AUTOFRAMING در CaptureRequest روی True فعال می‌کند، و بررسی می‌کند که آیا همه چهره‌ها در صحنه اصلی هنگام همگرایی وضعیت (یعنی زمانی که AUTOFRAMING_STATE در CaptureResult روی AUTOFRAMING_STATE_CONVERGED تنظیم شده است) قابل‌تشخیص هستند یا نه.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: هر سه چهره شناسایی شده است.

test_display_p3

Display P3 را در JPEG بااستفاده از میانای برنامه‌سازی کاربردی ColorSpaceProfiles آزمایش می‌کند. آزمایش می‌کند که JPEG ضبط‌شده نمایه ICC مناسبی در سرصفحه خود داشته باشد و تصویر حاوی رنگ‌هایی خارج از طیف sRGB باشد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: JPEG حاوی نمایه ICC Display P3 و رنگ‌های خارج از طیف sRGB است.

test_effects

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

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تصویر صحنه را با جلوه‌های OFF و تصویر تک‌رنگ را با جلوه‌های تنظیم‌شده روی MONO ضبط می‌کند.

test_effects_MONO

شکل ۹۹. test_effects_MONO.

test_exposure_keys_consistent

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

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تفاوت نسبی در لومای بین دو عکس کمتر از ۴ درصد است.

test_format_combos

ترکیب‌های مختلف قالب‌های خروجی را آزمایش می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: همه ترکیب‌ها باموفقیت ضبط شده‌اند.

test_num_faces

تشخیص چهره را آزمایش می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: سه چهره پیدا می‌کند.

test_num_faces face detection mode 1 example

شکل ۱۰۰. نمونه ۱ حالت تشخیص چهره test_num_faces.

test_reprocess_uv_swap

آزمایش می‌کند که پردازش مجدد YUV صفحه‌های U و V را جابه‌جا نکند. این مورد با محاسبه مجموع تفاوت‌های مطلق (SAD) بین تصویر بازپردازش‌شده و تصویر بازپردازش‌نشده تشخیص داده می‌شود. If swapping the output U and V planes of the reprocessed capture results in an increased SAD, then the output is assumed to have the correct U and V planes.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: صفحه‌های U و V جابه‌جا نشده‌اند.

test_reprocess_uv_swap

شکل ۱۰۱. نمونه test_reprocess_uv_swap.

scene2_b

scene2_b سه چهره با پس‌زمینه خاکستری و لباس خنثی دارد. چهره‌ها به‌گونه‌ای انتخاب شده‌اند که طیف وسیعی از رنگ‌های پوست را داشته باشند. برای اینکه تشخیص چهره به‌طور بهینه کار کند، نمودار باید جهت درستی داشته باشد.

test_preview_num_faces

تشخیص چهره را در پیش‌نما با افزایش تنوع رنگ‌مایه پوست در صحنه‌های چهره آزمایش می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: سه چهره را با نشانگرهای مکانی چهره در چارگوش‌های محدودکننده چهره پیدا می‌کند.

test_num_faces_fd_mode_1

شکل ۱۰۲. نمونه ۱ حالت تشخیص چهره test_num_faces.

test_yuv_jpeg_capture_sameness

دو تصویر را بااستفاده از بزرگ‌ترین قالب‌های رایج YUV و JPEG با همان نسبت ابعادی بزرگ‌ترین قالب JPEG که از وضوح ۱۴۴۰×۱۹۲۰ فراتر نمی‌رود ضبط می‌کند. ‫jpeg.quality را روی ۱۰۰ تنظیم می‌کند و درخواست سطح دوگانه را ضبط می‌کند. هر دو تصویر را به آرایه‌های RGB تبدیل می‌کند و تفاوت جذر میانگین مربعات (RMS) سه‌بعدی بین دو تصویر را محاسبه می‌کند.

علاوه‌براین، این آزمایش تأیید می‌کند که خروجی‌های YUV برای همه موارد استفاده از جاری‌سازی پشتیبانی‌شده به‌طور منطقی مشابه YUV با مورد استفاده STILL_CAPTURE است.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تصاویر YUV و JPEG برای مورد استفاده STILL_CAPTURE کمتر از ۳٪ تفاوت RMS (مقدار جذر میانگین مربعات سیگنال) دارند؛ تصاویر YUV برای همه موارد استفاده پشتیبانی‌شده کمتر از ۴٪ تفاوت CIELAB با تصاویر YUV با مورد استفاده STILL_CAPTURE دارند.

scene2_c

test_num_faces

تشخیص چهره را با افزایش تنوع رنگ پوست در صحنه‌های چهره آزمایش می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: سه چهره پیدا می‌کند.

test_num_faces_fd_mode_1

شکل ۱۰۳. نمونه حالت تشخیص چهره test_num_faces.

test_jpeg_capture_perf_class

تأخیر ضبط JPEG را برای کلاس عملکرد S همان‌طور که در بخش ۲.۲.۷.۲ دوربین در CDD مشخص شده است آزمایش می‌کند.

قبول: باید تأخیر ضبط JPEG دوربین ۲ کمتر از ۱۰۰۰ میلی‌ثانیه برای وضوح ۱۰۸۰ پیکسل باشد، همان‌طور که توسط PerformanceTest دوربین CTS تحت شرایط نوری ITS (‏۳۰۰۰ کلوین) برای هر دو دوربین اصلی اندازه‌گیری شده است.

test_camera_launch_perf_class

تأخیر راه‌اندازی دوربین را برای کلاس عملکرد S همان‌طور که در بخش ۲.۲.۷.۲ دوربین در CDD مشخص شده است آزمایش می‌کند.

قبول: تأخیر راه‌اندازی camera2 (باز کردن دوربین تا اولین قاب پیش‌نمایش) باید کمتر از ۶۰۰ میلی‌ثانیه باشد، همان‌طور که توسط PerformanceTest دوربین CTS تحت شرایط نوری ITS (‏۳۰۰۰ کلوین) برای هر دو دوربین اصلی اندازه‌گیری شده است.

test_default_camera_hdr

آزمایش می‌کند که ضبط پیش‌فرض دوربین برای کلاس عملکرد ۱۵، همان‌طور که در بخش ۲.۲.۷.۲ دوربین در CDD مشخص شده است، Ultra HDR باشد.

قبول: ضبط بسته دوربین پیش‌فرض برای دستگاه کلاس عملکرد ۱۵ باید Ultra HDR باشد.

scene2_d

test_preview_num_faces

تشخیص چهره را در پیش‌نما با افزایش تنوع رنگ‌مایه پوست در صحنه‌های چهره آزمایش می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: سه چهره را با نشانگرهای مکانی چهره در چارگوش‌های محدودکننده چهره پیدا می‌کند.

scene2_e

test_continuous_picture

۵۰ قاب با وضوح VGA با اولین تنظیم درخواست ضبط، ضبط می‌شود android.control.afMode = 4 (CONTINUOUS_PICTURE).

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: سیستم 3A تا پایان ضبط ۵۰ فریم ثابت می‌شود.

test_num_faces

تشخیص چهره را با افزایش تنوع رنگ پوست در صحنه‌های چهره آزمایش می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: ۳ چهره پیدا می‌کند.

scene2_f

scene2_f سه چهره با پس‌زمینه سفید و لباس سفید دارد. چهره‌ها طیف وسیعی از رنگ‌های پوست و کنتراست بالایی با پس‌زمینه دارند.

scene2_f example

شکل ۱۰۴. نمونه scene2_f.

test_preview_num_faces

تشخیص چهره را با افزایش تنوع رنگ پوست در صحنه‌های چهره آزمایش می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: سه چهره را با نشانگرهای مکانی چهره در چارگوش‌های محدودکننده چهره پیدا می‌کند.

test_num_faces_fd_mode_1

شکل ۱۰۵. نمونه test_num_faces_fd_mode_1.

scene2_g

scene2_g سه چهره نیم‌رخ با پس‌زمینه سفید و لباس سفید دارد. چهره‌ها طیف وسیعی از رنگ‌های پوست را دارند و کنتراست بالایی با پس‌زمینه دارند.

scene2_g.png

شکل ۱۰۶. نمونه scene2_g.

test_preview_num_faces

تشخیص چهره را با افزایش تنوع رنگ پوست در صحنه‌های چهره آزمایش می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: سه چهره را با نشانگرهای مکانی چهره در چارگوش‌های محدودکننده چهره پیدا می‌کند.

test_preview_num_faces

شکل ۱۰۷. نمونه test_preview_num_faces.

صحنه ۳

scene3 از نمودار ISO12233 استفاده می‌کند و اکثر آزمایش‌ها از روش استخراج نمودار برای پیدا کردن نمودار در صحنه استفاده می‌کنند. به همین دلیل، اکثر تصاویر ذخیره‌شده حاشیه ندارند، مثل تصاویر صحنه‌های ۱، ۲، یا ۴، اما فقط نمودار. برای اینکه نموداریاب به‌طور بهینه کار کند، نمودار باید در جهت درست باشد. در Android 17 و بالاتر، scene3 از نشانگرهای ArUco برای تشخیص نمودار استفاده می‌کند.

scene3_aruco_chart

شکل ۱۰۸. نمودار scene3.

test_edge_enhancement

آزمایش می‌کند که پارامتر android.edge.mode به‌درستی اعمال شده باشد. تصاویر پردازش‌نشده را برای هر حالت لبه ضبط می‌کند و وضوح تصویر خروجی و فراداده نتیجه ضبط را برمی‌گرداند. درخواست ضبط را با پارامترهای داده‌شده حالت لبه، حساسیت، زمان نوردهی، فاصله کانونی، و سطح خروجی پردازش می‌کند. در Android 17 و بالاتر، از نشانگرهای ArUco برای تعریف ناحیه نمودار که حاوی لبه‌های تیز لازم است استفاده می‌کند.

قبول: حالت HQ (۲) واضح‌تر از حالت OFF (۰). حالت FAST (۱) واضح‌تر از حالت OFF است. حالت HQ واضح‌تر یا برابر با حالت FAST است.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

پارامترهای دوربین تحت‌تأثیر قرارگرفته:

  • EDGE_MODE

test_edge_enhancement_edge=0

شکل ۱۰۹. نمونه test_edge_enhancement edge=0.

test_edge_enhancement edge=1 example

شکل ۱۱۰. نمونه test_edge_enhancement edge=1 (حالت سریع).

test_edge_enhancement edge=2 example

شکل ۱۱۱. نمونه test_edge_enhancement edge=2 (حالت کیفیت بالا).

test_flip_mirror

آزمایش می‌کند که آیا تصویر مطابق با 7.5.2 Front-Facing Camera در CDD به‌درستی جهت‌دهی شده است یا نه. در Android 17 و بالاتر، از نشانگرهای ArUco برای اعتبارسنجی حضور و جهت نمودار استفاده می‌کند. تصاویر آینه‌ای، وارونه، یا چرخانده‌شده را می‌توان با ویژگی لوزی نزدیک مرکز شناسایی کرد.

قبول: همه نشانگرها شناسایی شده‌اند و به‌درستی تراز شده‌اند. تصویر وارونه، آینه‌ای، یا چرخانده نشده باشد.

test_flip_mirror scene patch example

شکل ۱۱۲. نمونه وصله صحنه test_flip_mirror.

test_imu_drift

آزمایش می‌کند که آیا واحد اندازه‌گیری اینرسی (IMU) به‌مدت ۳۰ ثانیه خروجی پایداری دارد یا نه درحالی‌که دستگاه ثابت است و پیش‌نمایش با وضوح بالا را ضبط می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

گذرواژه:

  • انحراف ژیروسکوپ درطول زمان آزمایش کمتر از ۰٫۰۱ رادیان است.
  • واریانس خوانش ژیروسکوپ کمتر از 1E-7 rad2/s2/Hz درطول زمان آزمایش است.
  • انحراف بردار چرخش درطول زمان آزمایش کمتر از ۰٫۰۱ رادیان است.
  • (هنوز الزامی نشده است) انحراف ژیروسکوپ کمتر از ۱ درجه در ثانیه است.

نمونه رانش ژیروسکوپ test_imu_drift

شکل ۱۱۳. نمونه رانش ژیروسکوپ test_imu_drift.

نمونه رانش بردار چرخش test_imu_drift

شکل ۱۱۴. نمونه رانش بردار چرخش test_imu_drift.

test_landscape_to_portrait

آزمایش می‌کند که آیا لغو افقی به عمودی برای حسگرهای با جهت افقی به‌درستی کار می‌کند یا نه.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: این آزمایش نموداری را با چرخش موردانتظار (۰ درجه وقتی لغو کردن افقی به عمودی غیرفعال است، ۹۰ درجه وقتی فعال است) پیدا می‌کند.

نمونه test_landscape_to_portrait

شکل ۱۱۵. نمونه test_landscape_to_portrait.

test_lens_movement_reporting

آزمایش می‌کند که آیا پرچم حرکت لنز به‌درستی گزارش شده است یا نه. رگباری از ۲۴ تصویر را ضبط می‌کند که ۱۲ فریم اول در فاصله کانونی بهینه (که توسط 3A پیدا شده است) و ۱۲ فریم آخر در حداقل فاصله کانونی قرار دارند. در حدود قاب ۱۲، لنز حرکت می‌کند و باعث کاهش وضوح می‌شود. درنهایت با حرکت لنز به موقعیت نهایی، وضوح تثبیت می‌شود.

پرچم حرکت لنز باید در همه قاب‌هایی که وضوح آن‌ها بینابین وضوح چند قاب اول با لنز ثابت در فاصله کانونی بهینه و چند قاب آخر با لنز ثابت در حداقل فاصله کانونی است، تأیید شود. قاب دقیقی که لنز حرکت می‌کند مهم نیست: آنچه مهم است این است که پرچم حرکت هنگام حرکت لنز تأیید شود.

در Android 17 و بالاتر، این آزمایش از نشانگرهای ArUco برای تعریف ناحیه نمودار که حاوی لبه‌های تیز لازم است استفاده می‌کند. این روش تشخیص پایداری را برای دوربین‌ها از برنامه‌های فوق عریض (UW) تا تله ارائه می‌دهد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: پرچم حرکت لنز در قاب با تغییر وضوح 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 (حالت ۲) واضح‌تر از OFF (حالت ۰) است و بهبود بین حالت‌های مختلف مشابه است.

test_reprocess_edge_enhancement plot example

شکل ۱۱۶. نمونه نمودار test_reprocess_edge_enhancement.

صحنه۴

scene4 از یک دایره سیاه روی پس‌زمینه سفید داخل یک مربع تشکیل شده است.

آزمایش‌ها در scene4 می‌توانند به تراز حساس باشند، بنابراین از Android 15 به بعد، می‌توانید از check_alignment.py در فهرست راهنمای ابزارها برای فعال کردن بررسی تراز DUT و نمودار استفاده کنید.

نمونه scene4

شکل ۱۱۷. نمونه scene4.

test_30_60fps_preview_fov_match

آزمایش می‌کند که ویدیوهای پیش‌نمایش ۳۰ فریم در ثانیه و ۶۰ فریم در ثانیه میدان دید یکسانی داشته باشند. این آزمایش دو ویدیو ضبط می‌کند، یکی با ۳۰ فریم در ثانیه و دیگری با ۶۰ فریم در ثانیه. یک قاب نماینده از هر ویدیو انتخاب و تجزیه‌وتحلیل می‌شود تا تأیید شود که تغییرات «میدان دید» در دو ویدیو در محدوده مشخصات است. آزمایش می‌کند که نسبت ابعادی دایره ثابت بماند، مرکز دایره پایدار بماند، و شعاع دایره ثابت بماند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تصاویر کشیده نشده‌اند، مرکز تصاویر بیش‌از ۳٪ تفاوت ندارد، و حداکثر تغییر نسبت ابعادی بین ویدیوهای ۳۰ فریم در ثانیه و ۶۰ فریم در ثانیه بیش‌از ۷٫۵٪ نیست

سازوکارهای خرابی:

  • دایره ویدیو ۳۰ فریم در ثانیه ازنظر اندازه تفاوت قابل‌توجهی با ویدیو ۶۰ فریم در ثانیه دارد.
  • دایره در تصویر گرفته‌شده به‌دلیل خط لوله پردازش مخدوش شده است.
  • دایره در تصویر ثبت‌شده به‌دلیل درخواست ثبت با نسبت ابعادی بسیار زیاد که ارتفاع یا عرض تصویر را کاهش می‌دهد، برش خورده است.
  • دایره در تصویر گرفته‌شده دارای انعکاس در مرکز است و به‌نظر می‌رسد کاملاً پر نشده است.

test_aspect_ratio_and_crop

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

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تصاویر کشیده نشده‌اند، مرکز تصاویر بیش‌از ۳٪ تفاوت ندارند، و حداکثر میدان دید ممکن حفظ شده است.

سازوکارهای خرابی:

  • دوربین با دایره نمایش‌داده‌شده روی رایانه لوحی در مرکز صحنه ضبط‌شده هم‌تراز نیست.
  • دایره در تصویر گرفته‌شده به‌دلیل خط لوله پردازش مخدوش شده است.
  • تصویر با وضوح پایین‌تر در خط لوله تصویر دو بار برش داده می‌شود و میدان دید متفاوتی بین تصاویر با وضوح بالا و پایین ایجاد می‌کند.
  • دایره در تصویر ثبت‌شده به‌دلیل درخواست ثبت با نسبت ابعادی بسیار زیاد که ارتفاع یا عرض تصویر را کاهش می‌دهد، برش خورده است.
  • دایره در تصویر گرفته‌شده انعکاسی در مرکز دارد و کاملاً پرشده به‌نظر نمی‌رسد.

test_multi_camera_alignment

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

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: مراکز و اندازه‌های دایره در تصاویر پیش‌بینی‌شده درمقایسه با تصاویر ثبت‌شده بااستفاده از داده‌های واسنجی دوربین و فاصله‌های کانونی، مطابق انتظار است.

سازوکارهای خرابی:

  • ‫LENS_INTRINSIC_CALIBRATION،‏ LENS_POSE_TRANSLATION، و LENS_POSE_ROTATION مقادیر طراحی هستند و داده‌های واسنجی واقعی نیستند.
  • سیستم دوربین برای راه‌اندازی آزمایش مناسب نیست، برای مثال، آزمایش کردن سیستم دوربین عریض و فوق‌عریض با دکل آزمایش RFoV. برای اطلاعات بیشتر، به پرسشگان Camera ITS-in-a-box، پرسش ۱ مراجعه کنید.

test_preview_aspect_ratio_and_crop

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

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تصاویر کشیده نشده‌اند، مرکز تصاویر بیش‌از ۳٪ تفاوت ندارند، و حداکثر FoV ممکن حفظ شده است.

test_preview_stabilization_fov

اندازه‌های پیش‌نمایش پشتیبانی‌شده را بررسی می‌کند تا مطمئن شود FoV به‌درستی برش داده شده است. این آزمایش دو ویدیو ضبط می‌کند، یکی با لرزش‌گیر پیش‌نمایش ON، و دیگری با لرزش‌گیر پیش‌نمایش OFF. یک قاب نماینده از هر ویدیو انتخاب می‌شود و برای تأیید اینکه تغییرات FoV در دو ویدیو در محدوده مشخصات است، تجزیه‌وتحلیل می‌شود.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: نسبت ابعادی دایره تقریباً ثابت می‌ماند، مکان مرکز دایره ثابت می‌ماند، و اندازه دایره بیش‌از ۲۰٪ تغییر نمی‌کند.

test_video_aspect_ratio_and_crop

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

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: فریم‌های ویدیو کشیده نشده‌اند، مرکز فریم‌ها بیش‌از ۳٪ تفاوت ندارند، و حداکثر FoV ممکن حفظ شده است.

scene6

scene6 شبکه‌ای از نشانگرهای ArUco است که به‌طور منحصربه‌فرد قابل‌شناسایی هستند. آزمایش‌ها در scene6 می‌توانند به تراز حساس باشند، بنابراین از نسخه ۱۵ می‌توانید از check_alignment.py در فهرست راهنمای ابزارها برای فعال کردن بررسی تراز DUT و نمودار استفاده کنید.

scene6

شکل ۱۱۸. نمونه scene6.

test_in_sensor_zoom

رفتار ویژگی بزرگ‌نمایی درون‌حسگر دوربین را که تصاویر خام برش‌خورده تولید می‌کند آزمایش می‌کند.

با تنظیم مورد استفاده جاری روی CROPPED_RAW، آزمایش دو عکس در محدوده بزرگ‌نمایی می‌گیرد، یک تصویر خام با میدان دید کامل و یک تصویر خام برش‌داده‌شده. این آزمایش تصاویر را به آرایه‌های RGB تبدیل می‌کند، تصویر خام برش‌خورده با اندازه کامل را به اندازه گزارش‌شده توسط SCALER_RAW_CROP_REGION کاهش می‌دهد، و تفاوت RMS سه‌بعدی بین دو تصویر را محاسبه می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تفاوت RMS سه‌بعدی بین تصویر خام برش‌خورده کوچک‌شده و تصویر خام FoV کامل کمتر از آستانه تعیین‌شده در آزمایش است.

test_zoom

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

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: اندازه نسبی نشانگر ArUco ضبط‌شده نسبت‌به نسبت بزرگ‌نمایی درخواست‌شده دقیق است تا تأیید شود که دوربین به‌درستی بزرگ‌نمایی می‌کند و فاصله نشانگر تا مرکز تصویر طبق معیارهای ذکرشده در شرح آزمایش تغییر می‌کند.

test_zoom to find the contour of the ArUco marker closest to the center

شکل ۱۱۹. test_zoom برای پیدا کردن کانتور نشانگر ArUco نزدیک به مرکز.

test_low_latency_zoom

رفتار بزرگ‌نمایی با تأخیر کم دوربین را آزمایش می‌کند. با android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) در محدوده بزرگ‌نمایی عکس می‌گیرد و بررسی می‌کند که آیا نشانگرهای موجود در تصاویر خروجی با نسبت‌های بزرگ‌نمایی در فراداده عکس مطابقت دارند یا نه. از همان جلسه ضبط دوربین برای همگرایی 3A و گرفتن عکس استفاده می‌شود.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: اندازه نسبی نشانگر ضبط‌شده در مقایسه با فراداده نتیجه نسبت بزرگ‌نمایی دقیق است.

test_preview_video_zoom_match

آزمایش می‌کند که هنگام ضبط و بزرگ‌نمایی، پیش‌نمایش ویدیو و برونداد ویدیو همان برونداد را نمایش دهند و ضبط کنند. اندازه نشانگر نزدیک‌ترین به مرکز را در نسبت‌های بزرگ‌نمایی مختلف محاسبه می‌کند و بررسی می‌کند که آیا اندازه نشانگر با افزایش نسبت بزرگ‌نمایی افزایش می‌یابد یا نه.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: اندازه نسبی نشانگر ضبط‌شده درمقابل نسبت بزرگ‌نمایی درخواست‌شده در ویدیو و پیش‌نمایش دقیق است.

HD_1280x720_key_frame.png

شکل ۱۲۰. HD_1280x720_key_frame.png (قبل‌از بزرگ‌نمایی).

preview_1280x720_key_frame.png

شکل ۱۲۱. preview_1280x720_key_frame.png (قبل‌از بزرگ‌نمایی).

HD_1280x720_key_frame_zoomed.png

شکل ۱۲۲. HD_1280x720_key_frame.png (after zoom).

preview_1280x720_key_frame_zoomed.png

شکل ۱۲۳. preview_1280x720_key_frame.png (پس‌از بزرگ‌نمایی).

test_preview_zoom

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

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: اندازه نسبی نشانگر ArUco انتخاب‌شده برای نسبت بزرگ‌نمایی گزارش‌شده نتیجه ثبت‌شده مربوطه برای همه فریم‌های پیش‌نمایش دقیق است. فاصله نسبی نشانگر انتخاب‌شده از مرکز تصویر برای نسبت بزرگ‌نمایی گزارش‌شده از نتیجه ضبط مربوطه برای همه فریم‌های پیش‌نمایش دقیق است.

تصاویر test_preview_zoom که نشانگر انتخاب‌شده را در نزدیک‌ترین حالت به مرکز نشان می‌دهد

شکل ۱۲۴. تصاویر test_preview_zoom که نشانگر انتخاب‌شده را در نزدیک‌ترین فاصله به مرکز نشان می‌دهد

test_session_characteristics_zoom

محدوده نسبت بزرگ‌نمایی را برای همه پیکربندی‌های جلسه پشتیبانی‌شده فهرست‌شده در CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION آزمایش می‌کند. برای هرکدام از این پیکربندی‌ها، اگر CameraDeviceSetup#isSessionConfigurationSupported true را برگرداند، آزمایش تأیید می‌کند که محدوده نسبت بزرگ‌نمایی برگردانده‌شده در CameraDeviceSetup#getSessionCharacteristics قابل‌دسترسی است.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: هم به حداقل و هم به حداکثر نسبت بزرگ‌نمایی برای هر SessionConfiguration پشتیبانی‌شده فهرست‌شده در CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION می‌توان رسید.

scene7

‫scene7 قابی مستطیلی است که به چهار ربع مساوی تقسیم شده است و هرکدام با رنگ متفاوتی پر شده است. در مرکز مستطیل، نمودار لبه کجی برای بررسی وضوح وجود دارد. چهار نشانگر ArUco با چهار گوشه بیرونی مستطیل تراز شده‌اند تا به دریافت مختصات دقیق قاب مستطیل اصلی در نسبت‌های بزرگ‌نمایی مختلف کمک کنند.

scene7

شکل ۱۲۵. صحنه ۷.

test_multi_camera_switch

این آزمایش تأیید می‌کند که درطول ضبط پیش‌نمایش در نسبت‌های بزرگ‌نمایی مختلف، تعویض بین لنزهای فوق‌عریض (UW) و عریض (W) منجر به مقادیر RGB مشابهی می‌شود.

این آزمایش از نسبت‌های بزرگ‌نمایی مختلف در محدوده ازپیش‌تعریف‌شده برای انجام ضبط پیش‌نمایش پویا و شناسایی نقطه‌ای که دوربین فیزیکی تغییر می‌کند استفاده می‌کند. این نقطه نشان‌دهنده تغییر از لنز UW به لنز W است.

قاب‌های ضبط‌شده در نقطه تقاطع و قبل‌از آن برای نوردهی خودکار (AE)، تراز سفیدی خودکار (AWB)، و فوکوس خودکار (AF) تجزیه‌وتحلیل می‌شوند.

بررسی AE تأیید می‌کند که تغییر لومینانس در محدوده موردانتظار برای هر دو تصویر لنز UW و W است. بررسی تراز سفیدی خودکار تأیید می‌کند که نسبت‌های قرمز-سبز و آبی-سبز در محدوده مقادیر آستانه برای هر دو تصویر لنز UW و W قرار دارند. بررسی فوکوس خودکار مقدار تخمین وضوح را براساس میانگین اندازه گرادیان بین تصاویر لنز UW و W ارزیابی می‌کند.

اگر هنگام اجرای این آزمایش، اثر موآره در نتایج تداخل ایجاد کرد، از رایانه لوحی با وضوح بالاتر از فهرست رایانه‌های لوحی تأییدشده Camera ITS استفاده کنید.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: برای اینکه آزمایش قبول شود، بررسی‌های AE و AWB باید قبول شوند. نتایج بررسی AF فقط برای اهداف ثبت استفاده می‌شود. معیارهای هر بررسی در زیر آمده است:

  • بررسی نوردهی خودکار: اگر دستگاه از هر دو ae_regions و awb_regions پشتیبانی می‌کند، تغییر لومینانس (مقدار Y) بین تصاویر لنز UW و W باید برای همه وصله‌های رنگی کمتر از ۴٪ باشد. اگر فقط ae_regions پشتیبانی می‌شود، فقط مقادیر وصله رنگ خاکستری باید با معیارها مطابقت داشته باشد.
  • بررسی تراز سفیدی خودکار: اگر دستگاه از هر دو ae_regions و awb_regions پشتیبانی می‌کند، تفاوت بین مقادیر قرمز-سبز و آبی-سبز برای تصاویر لنز UW و W باید کمتر از ۳٪ برای وصله رنگ خاکستری و کمتر از ۱۰٪ برای سایر وصله‌های رنگی باشد.
  • بررسی فوکوس خودکار: وضوح تصویر برای ثبت با لنز زاویه باز باید بیشتر از وضوح ثبت با لنز زاویه فوق‌العاده باز باشد.

test_multi_camera_switch_gray_uw_y

شکل ۱۲۶. تکه خاکستری گرفته‌شده با لنز UW.

test_multi_camera_switch_gray_w_y

شکل ۱۲۷. وصله خاکستری گرفته‌شده با لنز W.

scene8

scene8 قابی مستطیلی است که به چهار ناحیه مساوی تقسیم شده است، هرکدام حاوی پرتره‌ای است که با نوردهی متفاوتی گرفته شده یا با سایه رنگ متفاوتی پوشانده شده است (سایه آبی، نوردهی افزایش‌یافته، نوردهی کاهش‌یافته، سایه زرد). چهار نشانگر ArUco با چهار گوشه بیرونی مستطیل تراز شده‌اند تا مختصات دقیق قاب مستطیل اصلی به‌دست آید.

نمونه scene8

شکل ۱۲۸. نمونه scene8.

test_ae_awb_regions

آزمایش می‌کند که مقادیر RGB و luma هنگام پیش‌نمایش ضبط در مناطق مختلف AE و AWB متفاوت باشند.

این آزمایش یک پیش‌نمایش ۸ ثانیه‌ای را ضبط می‌کند و نورسنجی AE و AWB را روی هر ربع به‌مدت ۲ ثانیه انجام می‌دهد. سپس آزمایش یک فریم از ضبط پیش‌نمایش هر منطقه استخراج می‌کند و از فریم‌های استخراج‌شده برای انجام بررسی‌های AE و AWB زیر استفاده می‌کند:

  • بررسی نوردهی خودکار: تأیید می‌کند که قاب اندازه‌گیری منطقه با نوردهی کاهش‌یافته دارای مقدار لومای افزایش‌یافته بیش‌از ۱٪ نسبت‌به قاب اندازه‌گیری منطقه با نوردهی افزایش‌یافته است. این آزمایش تأیید می‌کند که تصاویر هنگام اندازه‌گیری منطقه تاریک روشن می‌شوند.
  • بررسی تراز سفیدی خودکار: تأیید می‌کند که نسبت قرمز به آبی (از میانگین مقادیر RGB تصویر) در قاب با منطقه اندازه‌گیری آبی بیش‌از ۲٪ بالاتر از قاب با منطقه اندازه‌گیری زرد است. این کار تأیید می‌کند که تصاویر هنگام اندازه‌گیری منطقه زرد (گرم) یا آبی (سرد) مقدار RGB متعادلی دارند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: هر دو بررسی AE و AWB قبول می‌شوند.

test_ae_awb_regions_dark_region

شکل ۱۲۹. نورسنجی قاب منطقه تاریک با نوردهی افزایش‌یافته.

test_ae_awb_regions_light_region

شکل ۱۳۰. نورسنجی قاب ناحیه روشن‌تر با نوردهی کاهش‌یافته.

سازوکارهای خرابی:

  • تشخیص دقیق هر چهار نشانگر ArUco برای این آزمایش ضروری است. اگر تشخیص اولیه ناموفق باشد، سیستم تلاش می‌کند بااستفاده از نسخه سیاه و سفید تصویر، تشخیص را دوباره انجام دهد. تصویر سیاه‌وسفید زیر مرحله پردازش ثانویه را نشان می‌دهد:

    عدم‌تراز نشانگرهای ArUco

    شکل ۱۳۱. نشانگرهای ArUco تراز نیستند.

test_color_correction_mode_cct

آزمایش‌های COLOR_CORRECTION_MODE در دماها و ته‌رنگ‌های مختلف، با تأیید تغییرات در نسبت‌های RGB درمقابل صحنه ضبط، صحنه ۸.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: نسبت‌های RGB افزایش یا کاهش موردانتظار را نسبت به دماها و ته‌رنگ‌های رنگی انتخاب‌شده نشان می‌دهند.

معیارهای رد شدن از آزمایش

اگر هرکدام از معیارهای زیر برآورده شود، آزمایش test_color_correction_mode_cct نادیده گرفته می‌شود:

scene9

scene9 شامل هزاران دایره با اندازه و رنگ تصادفی است تا صحنه‌ای با تکرارپذیری بسیار کم ایجاد کند و الگوریتم‌های فشرده‌سازی JPEG را تحت فشار قرار دهد.

scene9 example

شکل ۱۳۲. نمونه scene9.

test_jpeg_high_entropy

آزمایش می‌کند که فشرده‌سازی JPEG دوربین در scene9 با آنتروپی بالا و عامل کیفیت JPEG روی ۱۰۰٪ تنظیم شده باشد. ضریب بزرگ‌نمایی افزایش می‌یابد تا تأیید شود که صحنه نمایش‌داده‌شده در رایانه لوحی، میدان دید دوربین را پر می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: فایل JPEG به‌درستی فشرده شده، نوشته شده، و از دیسک خوانده شده است.

test_jpeg_quality

کیفیت فشرده‌سازی JPEG دوربین را آزمایش می‌کند. کیفیت‌های JPEG را ازطریق android.jpeg.quality گام‌به‌گام بررسی می‌کند و درستی‌سنجی می‌کند که جدول‌های کوانتش به‌درستی تغییر می‌کنند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: ماتریس کوانتیزاسیون با افزایش کیفیت کاهش می‌یابد. (ماتریس نشان‌دهنده عامل تقسیم است.)

میانگین‌های ماتریس DQT لومینانس و کرومینانس دوربین پشت Pixel 4 درمقابل کیفیت JPEG

شکل ۱۳۳. میانگین‌های ماتریس DQT لومینانس و کرومینانس دوربین پشت Pixel 4 درمقابل کیفیت JPEG.

نمونه آزمایشی ناموفق test_jpeg_quality

شکل ۱۳۴. نمونه آزمایش ناموفق.

scene_extensions

آزمایش‌های scene_extensions برای افزونه‌های دوربین است و باید از Camera ITS-in-a-Box استفاده کند، زیرا این آزمایش‌ها به کنترل دقیق محیط آزمایش نیاز دارند. علاوه‌براین، همه نشت‌های نور باید کنترل شود. برای این کار ممکن است لازم باشد دکل آزمایش، دستگاه تحت آزمایش، و رایانه لوحی را با پارچه برزنتی بپوشانید و همچنین نشت نور از صفحه جلویی دستگاه تحت آزمایش را ازبین ببرید.

scene_hdr

صحنه scene_hdr شامل یک عکس عمودی در سمت چپ و یک رمزینه پاسخ‌سریع با کنتراست پایین در سمت راست است.

scene_hdr

شکل ۱۳۵. نمونه scene_hdr.

test_hdr_extension

افزونه HDR را آزمایش می‌کند. با و بدون فعال بودن افزونه عکس می‌گیرد و بررسی می‌کند که آیا افزونه رمزینه پاسخ‌سریع را قابل‌تشخیص‌تر می‌کند یا نه.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: افزونه HDR تعداد تغییرات کنتراست موردنیاز برای تشخیص رمزینه پاسخ‌سریع را کاهش می‌دهد یا گرادیان را در سراسر رمزینه پاسخ‌سریع کاهش می‌دهد.

scene_low_light

صحنه scene_low_light شامل شبکه‌ای از مربع‌ها با سایه‌های مختلف خاکستری در پس‌زمینه‌ای سیاه است و شبکه مربع‌ها با خطوط قرمز محدود شده است. مربع‌ها در جهت منحنی هیلبرت چیده شده‌اند.

scene_low_light example

شکل ۱۳۶. نمونه scene_low_light.

test_night_extension

افزونه شب را آزمایش می‌کند. با فعال بودن افزونه، عکس می‌گیرد و کارهای زیر را انجام می‌دهد:

  • وجود ۲۰ مربع را تشخیص می‌دهد
  • روشنایی محدودشده توسط هر مربع را محاسبه می‌کند
  • مقدار متوسط لومای ۶ مربع اول را براساس جهت‌گیری شبکه منحنی هیلبرت محاسبه می‌کند
  • تفاوت مقدار لومای مربع‌های متوالی (برای مثال، مربع ۲ - مربع ۱) را تا مربع‌های ۵ و ۶ (مربع ۶ - مربع ۵) محاسبه می‌کند، و میانگین پنج تفاوت محاسبه‌شده را پیدا می‌کند.

برای دستگاه‌های دارای Android 16 یا بالاتر، درخواست ضبط شامل یک منطقه اندازه‌گیری‌شده است که با مستطیل محدودکننده شبکه مربع‌ها مطابقت دارد. این افزودنی معیارهای گذر از آستانه را تغییر می‌دهد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

گذرواژه:

  • برای دستگاه‌های دارای Android 16 یا بالاتر، مقدار لومای میانگین ۶ مربع اول باید حداقل ۸۰ باشد و تفاوت میانگین در مقدار لومای مربع‌های متوالی تا مربع‌های ۵ و ۶ باید حداقل ۱۸٫۷۵ باشد.
  • برای دستگاه‌های دارای Android 15 و پایین‌تر، میانگین مقدار لومای ۶ مربع اول باید حداقل ۸۵ باشد و میانگین تفاوت مقدار لومای مربع‌های متوالی تا مربع‌های ۵ و ۶ باید حداقل ۱۷ باشد.

نمودار درخشندگی زیر نشان می‌دهد که نتیجه آزمایش موفقیت‌آمیز چگونه است.

نمونه قبولی در آزمایش صحنه شب با نور کم

شکل ۱۳۷. نمونه قبولی در آزمایش صحنه شب با نور کم.

test_low_light_boost_extension

حالت نوردهی خودکار «تقویت نور کم» را آزمایش می‌کند. اگر Camera2 از حالت AE تقویت نور کم پشتیبانی کند، این آزمایش برای Camera2 انجام می‌شود. اگر افزونه دوربین حالت شب پشتیبانی شود و افزونه از حالت AE تقویت نور کم پشتیبانی کند، این آزمایش برای افزونه دوربین حالت شب نیز انجام می‌شود. این آزمایش حالت نوردهی خودکار را روی تقویت نور کم تنظیم می‌کند، فریمی از پیش‌نمایش می‌گیرد، و موارد زیر را انجام می‌دهد:

  • وجود ۲۰ چارگوش را تشخیص می‌دهد
  • روشنایی محدودشده توسط هر چارگوش را محاسبه می‌کند
  • مقدار متوسط لومای ۶ مربع اول را براساس جهت‌گیری شبکه منحنی هیلبرت محاسبه می‌کند
  • تفاوت مقدار لومای مربع‌های متوالی (برای مثال، مربع ۲ - مربع ۱) را تا مربع‌های ۵ و ۶ (مربع ۶ - مربع ۵) محاسبه می‌کند، و میانگین پنج تفاوت محاسبه‌شده را پیدا می‌کند.

برای دستگاه‌های دارای Android 16 یا بالاتر، درخواست ضبط شامل یک منطقه اندازه‌گیری‌شده است که با مستطیل محدودکننده شبکه مربع‌ها مطابقت دارد. این افزودنی معیارهای گذر از آستانه را تغییر می‌دهد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

گذرواژه:

  • برای دستگاه‌های دارای Android 16 یا بالاتر، میانگین مقدار لومای ۶ مربع اول باید حداقل ۵۴ باشد و میانگین تفاوت مقدار لومای مربع‌های متوالی تا مربع‌های ۵ و ۶ باید حداقل ۱۷ باشد.

  • برای دستگاه‌های دارای Android 15 و نسخه‌های پایین‌تر، میانگین مقدار درخشندگی ۶ مربع اول باید حداقل ۷۰ باشد و میانگین تفاوت در مقدار درخشندگی مربع‌های متوالی تا مربع‌های ۵ و ۶ باید حداقل ۱۸ باشد.

scene_tele

یک شرط کلیدی برای آزمایش‌های scene_tele این است که فاصله نمودار باید حداقل برابر با حداقل فاصله کانونی لنز تله‌فوتو باشد. ازآنجایی‌که این حداقل فاصله کانونی می‌تواند در دستگاه‌های مختلف متفاوت باشد، باید تنظیمات خود را متناسب با دوربین تله‌فوتو خاص پیکربندی کنید.

scene_tele setup based on focus distance of wide and tele camera

شکل ۱۳۸. راه‌اندازی scene_tele براساس فاصله کانونی دوربین زاویه باز و تله‌فوتو.

برای اطلاعات بیشتر درباره راه‌اندازی سخت‌افزار آزمایشی، به راه‌اندازی دکل گسترش تله مراجعه کنید.

scene6_tele

صحنه scene6_tele شامل شبکه‌ای از نشانگرهای ArUco در پس‌زمینه سفید است.

اگر عکس‌های scene6_tele در دکل مدولار بیش‌ازحد نوردهی شده‌اند، صفحه جلویی دکل مدولار را بردارید.

دکل آزمایشی WFoV را از افزونه جدا کنید و پایه تلفن را بردارید.

دکل آزمایش WFoV را از افزونه جدا کنید و پایه تلفن را بردارید

شکل ۱۳۹. دکل آزمایشی WFoV را از افزونه جدا کنید و پایه تلفن را بردارید.

remove_front_plate

شکل ۱۴۰. قاب جلویی را بردارید.

test_zoom_tele

رفتار بزرگ‌نمایی دوربین را از لنز زاویه باز به لنز تله‌فوتو آزمایش می‌کند. آزمایش با test_zoom یکسان است، اما رفتار بزرگ‌نمایی دوربین را از لنز زاویه باز به لنز تله‌فوتو آزمایش می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: اندازه نسبی نشانگر ArUco ضبط‌شده درمقابل نسبت بزرگ‌نمایی درخواست‌شده دقیق است تا درستی‌سنجی شود که دوربین به‌درستی بزرگ‌نمایی می‌کند و فاصله نشانگر تا مرکز تصویر طبق معیارهای فهرست‌شده در test_zoom تغییر می‌کند.

test_preview_zoom_tele

رفتار بزرگ‌نمایی دوربین را برای قاب‌های پیش‌نمایش از لنز زاویه باز به لنز تله‌فوتو آزمایش می‌کند. این آزمایش مشابه test_preview_zoom است، اما رفتار بزرگ‌نمایی دوربین را برای فریم‌های پیش‌نمایش از لنز زاویه باز به لنز تله‌فوتو آزمایش می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: اندازه نسبی نشانگر ArUco ضبط‌شده درمقابل نسبت بزرگ‌نمایی درخواست‌شده دقیق است تا درستی‌سنجی شود که دوربین به‌درستی بزرگ‌نمایی می‌کند و فاصله نشانگر تا مرکز تصویر طبق معیارهای فهرست‌شده در test_preview_zoom تغییر می‌کند.

scene7_tele

scene7_tele با scene7 یکسان است، اما برای آزمایش لنز تله‌فوتو تنظیم شده است. قابی مستطیلی که به چهار ربع مساوی تقسیم شده است و هرکدام با رنگ متفاوتی پر شده است. در مرکز مستطیل، نمودار لبه کجی برای بررسی وضوح وجود دارد. چهار نشانگر ArUco با چهار گوشه بیرونی مستطیل تراز شده‌اند تا به دریافت مختصات دقیق قاب مستطیل اصلی در نسبت‌های بزرگ‌نمایی مختلف کمک کنند.

test_multi_camera_switch_tele

این آزمایش تأیید می‌کند که درطول ضبط پیش‌نمایش در نسبت‌های بزرگ‌نمایی مختلف، جابه‌جایی بین لنزهای عریض (W) و تله‌فوتو (tele) منجر به مقادیر RGB مشابهی می‌شود.

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

قاب‌های ضبط‌شده در نقطه تقاطع و قبل‌از آن برای نوردهی خودکار، تراز سفیدی خودکار، و فوکوس خودکار تجزیه‌وتحلیل می‌شوند.

بررسی نوردهی خودکار تأیید می‌کند که تغییر لومینانس در محدوده موردانتظار برای تصاویر لنز تله و عریض است. بررسی «تراز سفیدی خودکار» تأیید می‌کند که نسبت‌های قرمز-سبز و آبی-سبز در محدوده مقادیر آستانه برای هر دو تصویر لنز زاویه باز و تله‌فوتو قرار دارند. بررسی فوکوس خودکار مقدار تخمین وضوح را براساس اندازه گرادیان میانگین بین تصاویر لنز تله‌فوتو و زاویه باز ارزیابی می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: برای اینکه آزمایش قبول شود، بررسی‌های AE،‏ AWB، و AF باید همگی قبول شوند. معیارهای هر بررسی در زیر آمده است:

  • بررسی نوردهی خودکار: تغییر لومینانس بین تصاویر لنز تله و زاویه باز باید کمتر از ۴٪ باشد.
  • بررسی تراز سفیدی خودکار: در فضای رنگ LAB، دلتا C بین قرمز-سبز و آبی-سبز برای زاویه باز و تله‌فوتو نمی‌تواند از ۱۰ بیشتر باشد.
  • بررسی فوکوس خودکار: وضوح تصویر لنز تله باید بیشتر از لنز زاویه باز باشد.

scene_video

scene_video صحنه‌ای ویدیویی است که از چهار دایره با رنگ‌های مختلف تشکیل شده است که با نرخ فریم‌های مختلف در پس‌زمینه‌ای سفید به جلو و عقب حرکت می‌کنند.

شکل ۱۴۱. نمونه scene_video.

test_preview_frame_drop

آزمایش می‌کند که نرخ فریم پیش‌نمایش درخواست‌شده با صحنه پویا حفظ شود. این آزمایش روی همه دوربین‌هایی که درمعرض برنامه‌های شخص ثالث قرار دارند اجرا می‌شود.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: نرخ فریم پیش‌نمایش در حداکثر محدوده نرخ فریم درخواست‌شده است و میانگین تغییر بین فریم‌های متوالی کمتر از تلورانس نسبی تنظیم‌شده در آزمایش است.

صحنه‌های آزمایشی مبتنی بر Gen2 rig / sensor_fusion

feature_combination

آزمایش‌های feature_combination تأیید می‌کنند که وقتی چند ویژگی دوربین به‌طور هم‌زمان فعال است، ویژگی‌ها به‌درستی کار می‌کنند. این آزمایش‌ها از همان تصویر شطرنجی استفاده می‌کنند که در صحنه ادغام حسگر استفاده می‌شود.

test_feature_combination

همه ترکیب‌های مختلف جاری‌سازی، حالت لرزش‌گیر ویدیو، محدوده FPS هدف، ویدیو HDR‏ ۱۰ بیتی، و Ultra HDR را که دستگاه دوربین پشتیبانی می‌کند آزمایش می‌کند.

برای Android 16 و بالاتر، این آزمایش همه ترکیب‌های ویژگی‌های پشتیبانی‌شده را اجرا می‌کند و نتایج را در یک فایل proto ثبت می‌کند. ادعاهای شکست فقط برای ترکیب ویژگی‌هایی فراخوانی می‌شوند که isSessionConfigurationSupported برای آن‌ها True را برمی‌گرداند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: برای هر ترکیب ویژگی پشتیبانی‌شده:

  • اگر لرزش‌گیر پیش‌نمایش روشن باشد، جاری‌سازی پیش‌نمایش لرزش‌گیری می‌شود.
  • نرخ فریم پیش‌نمایش در محدوده پیکربندی‌شده AE_TARGET_FPS_RANGE قرار می‌گیرد.
  • فضای رنگی جاری پیش‌نمایش ضبط‌شده با آنچه تنظیم شده است مطابقت دارد.
  • ضبط Ultra HDR دارای نگاشت بهره معتبر است.

scene_flash

آزمایش‌های scene_flash به صحنه تاریک در جعبه ادغام حسگر نیاز دارد. در Android 17 و بالاتر، آزمایش scene_flash را می‌توان بااستفاده از دکل Gen2 انجام داد.

test_auto_flash

آزمایش می‌کند که فلاش خودکار در صحنه تاریک برای دوربین‌های پشت و جلو فعال می‌شود. برای دوربین‌های جلو، فلاش خودکار از صفحه‌نمایش برای روشن کردن صحنه استفاده می‌کند، نه از فلاش فیزیکی. این آزمایش با بررسی اینکه مرکز تصویر کاشی با فعال بودن فلاش خودکار روشن‌تر است، تأیید می‌کند که فلاش خودکار فعال شده است. برای راه‌اندازی فلاش خودکار، چراغ‌های دکل آزمایشی باید خاموش شوند. چراغ‌ها را می‌توان به‌طور خودکار با کنترل‌کننده Arduino خاموش کرد. برای اینکه آزمایش به‌درستی کار کند، صحنه باید کاملاً تاریک باشد. برنامه Jetpack Camera (JCA) باید قبل‌از آزمایش روی دستگاه نصب شود. فلاش خودکار برای دوربین‌های پشت به وضعیت نوردهی خودکار برای فعال شدن متکی است، اما فلاش خودکار برای دوربین‌های جلو به نوردهی خودکار متکی نیست و همیشه فعال می‌شود.

در Android نسخه ۱۷ و بالاتر، سطوح بزرگ‌نمایی غیر ۱-x را آزمایش می‌کند تا عملکرد صحیح را در همه محدوده‌های بزرگ‌نمایی پشتیبانی‌شده تأیید کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: مرکز تصویر کاشی با فلاش خودکار فعال‌شده برای همه دوربین‌ها روشن‌تر از تصویر صحنه اصلی است.

test_flash_strength

آزمایش می‌کند که کنترل قدرت فلاش در حالت SINGLE به‌درستی پیاده‌سازی شده باشد.

تأیید می‌کند که اگر دستگاه از کنترل قدرت فلاش درحین استفاده از دوربین در حالت SINGLE پشتیبانی کند، قدرت فلاش با سطوح مختلف قدرت درخواستی تغییر می‌کند. تأیید می‌کند که کنترل قدرت فلاش با AE_MODES مختلف کار می‌کند. برای مثال، اگر حالت نوردهی خودکار ON یا OFF باشد، سطح قدرت فلاش بر روشنایی تأثیر می‌گذارد، و اگر حالت ON_AUTO_FLASH باشد، سطح قدرت فلاش بر روشنایی تأثیر نمی‌گذارد.

برای انجام آزمایش، چراغ‌های دکل آزمایش باید خاموش شوند. چراغ‌ها را می‌توان به‌طور خودکار با کنترل‌کننده Arduino خاموش کرد. برای اینکه آزمایش به‌درستی کار کند، صحنه باید کاملاً تاریک باشد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

گذرواژه:

وقتی حالت نوردهی خودکار ON یا OFF باشد، روشنایی تکه‌های تصویر با افزایش سطح قدرت فلاش از بدون فلاش به FLASH_SINGLE_STRENGTH_MAX_LEVEL افزایش می‌یابد. وقتی حالت نوردهی خودکار ON_AUTO_FLASH باشد، تفاوت در روشنایی تکه‌های تصویر با افزایش سطح قدرت فلاش از بدون فلاش به FLASH_SINGLE_STRENGTH_MAX_LEVEL در محدوده مجاز است.

test_led_snapshot

آزمایش می‌کند که عکس‌های آنی LED تصویر را اشباع یا رنگی نکند.

این آزمایش یک کنترل‌کننده روشنایی به «جعبه ادغام حسگر» اضافه می‌کند تا چراغ‌ها را کنترل کند. با تنظیم چراغ‌ها روی OFF، آزمایش با تنظیم حالت AUTO_FLASH روی ON عکس می‌گیرد. درطول این ضبط، آزمایش یک توالی پیش‌ضبط را با تنظیم راه‌انداز aePrecapture روی START اجرا می‌کند و هدف ضبط را روی Preview تنظیم می‌کند تا ضبط با فلاش انجام شود.

چون تصویر ضبط‌شده به‌دلیل فلاش دارای نقطه داغ متمایزی است، این آزمایش میانگین تصویر فلاش کل تصویر ضبط‌شده را محاسبه می‌کند و بررسی می‌کند که آیا این مقدار در محدوده (۶۸، ۱۰۲) قرار دارد یا نه. برای بررسی اینکه آیا تصویر به‌طور معقولی تراز سفید شده است یا نه، این آزمایش نسبت‌های قرمز-سبز و آبی-سبز را محاسبه می‌کند و بررسی می‌کند که آیا این نسبت‌ها بین ۰٫۹۵ و ۱٫۰۵ هستند یا نه.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: نسبت‌های قرمز-سبز و آبی-سبز بین ۰٫۹۵ و ۱٫۰۵ است. میانگین تصویر فلاش در محدوده (۶۸، ۱۰۲) است.

test_night_mode_indicator

عملکرد نشانگر حالت شب را آزمایش می‌کند، ویژگی‌ای که نشان می‌دهد آیا دوربین در شرایط نور کم کار می‌کند و از ضبط عکس ثابت افزونه «دوربین حالت شب» بهره‌مند خواهد شد یا نه. این ویژگی فقط در دستگاه‌هایی دردسترس است که از افزونه‌های «دوربین حالت شب» پشتیبانی می‌کنند.

این آزمایش بررسی می‌کند که نشانگر حالت شب شرایط نور را درطول پیش‌نمایش دوربین به‌درستی منعکس می‌کند. آزمایش مراحل زیر را انجام می‌دهد:

  1. مقداردهی اولیه: این آزمایش یک ItsSession را مقداردهی اولیه می‌کند و ویژگی‌های دوربین را بازیابی می‌کند. همچنین با کنترل‌کننده روشنایی اتصال برقرار می‌کند.
  2. شرایط رد شدن: اگر دستگاه از سطح ای‌پی‌آی موردنیاز یا ویژگی نشانگر حالت شب پشتیبانی نکند، آزمایش رد می‌شود.
  3. جلسه Camera2:
    • این آزمایش جلسه ضبط پیش‌نمایش را بااستفاده از جلسه Camera2 شروع می‌کند.
    • چراغ روشن می‌شود و قاب پیش‌نمایش ضبط می‌شود.
    • این آزمایش تأیید می‌کند که نشانگر حالت شب در وضعیت OFF قرار دارد.
    • چراغ خاموش می‌شود و قاب پیش‌نمایش ضبط می‌شود.
    • این آزمایش تأیید می‌کند که نشانگر حالت شب در وضعیت ON قرار دارد.
  4. جلسه افزونه دوربین:
    • این آزمایش همان روال جلسه Camera2 را تکرار می‌کند، اما از جلسه CameraExtension با افزونه EXTENSION_NIGHT استفاده می‌کند.
  5. پاک‌سازی: آزمایش ItsSession را می‌بندد و کنترل‌کننده روشنایی را آزاد می‌کند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

گذرواژه:

  • وقتی چراغ روشن است، نشانگر حالت شب باید در وضعیت OFF باشد.
  • وقتی چراغ خاموش است، نشانگر حالت شب باید در وضعیت ON باشد.
  • برای هر دو جلسه Camera2 و CameraExtension اعمال می‌شود.

test_preview_min_frame_rate

آزمایش می‌کند که نرخ فریم پیش‌نمایش در صحنه تاریک به‌درستی کاهش می‌یابد. برای اینکه این آزمایش به‌درستی کار کند، چراغ‌های دکل آزمایش باید توسط کنترل‌کننده یا به‌صورت دستی توسط اپراتور آزمایش خاموش شوند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: نرخ فریم پیش‌نمایش حداقل در محدوده نرخ فریم درخواستی است و تفاوت بین فریم‌ها کمتر از تلورانس مطلق تعیین‌شده در آزمایش است.

test_torch_strength

آزمایش می‌کند که کنترل قدرت فلاش در حالت TORCH به‌درستی پیاده‌سازی شده باشد.

تأیید می‌کند که اگر دستگاه از کنترل قدرت فلاش درحین استفاده از دوربین در حالت TORCH پشتیبانی کند، قدرت چراغ‌قوه با سطوح مختلف قدرت درخواستی تغییر می‌کند. تأیید می‌کند که کنترل قدرت فلاش با AE_MODES مختلف کار می‌کند. برای مثال، اگر حالت نوردهی خودکار ON یا OFF باشد، سطح قدرت فلاش بر روشنایی تأثیر می‌گذارد، و اگر حالت ON_AUTO_FLASH باشد، سطح قدرت فلاش بر روشنایی تأثیر نمی‌گذارد. تأیید می‌کند که قدرت چراغ‌قوه درطول مدت عکاسی پیاپی یکسان می‌ماند و جلسه ضبط ویدیو را شبیه‌سازی می‌کند. برای انجام آزمایش، چراغ‌های دکل آزمایش باید خاموش شوند. چراغ‌ها را می‌توان به‌طور خودکار با کنترل‌کننده Arduino خاموش کرد. برای اینکه آزمایش به‌درستی کار کند، صحنه باید کاملاً تاریک باشد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

گذرواژه:

وقتی حالت نوردهی خودکار ON یا OFF باشد، روشنایی وصله‌های رگبار تصویر با افزایش سطح قدرت فلاش از بدون فلاش به FLASH_TORCH_STRENGTH_MAX_LEVEL افزایش می‌یابد. وقتی حالت نوردهی خودکار ON_AUTO_FLASH باشد، تفاوت در روشنایی وصله‌های رگبار تصویر در محدوده مجاز است چون سطح قدرت فلاش از بدون فلاش به FLASH_TORCH_STRENGTH_MAX_LEVEL افزایش می‌یابد.

scene_gen2_chart

در Android 17 و بالاتر، scene_gen2_chart از نمودار کاغذی Gen2 استفاده می‌کند.

این نمودار آزمایشی شامل نمونه‌های چهره، رمزینه پاسخ‌سریع، وصله‌های مقیاس خاکستری، ستاره زیمنس، نمودار رنگی، و مربع‌های کج است.

test_chart_gen2

شکل ۱۴۲. نمونه نمودار Gen2.

test_tonemap_sequence

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

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

نمودار توالی نگاشت رنگمایه آزمایشی

شکل ۱۴۳. Test tonemap sequence plot.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تفاوت روشنایی بین منحنی‌های پیش‌فرض و خطی بیشتر از ۱۵٪ است، درحالی‌که تفاوت بین دو منحنی نمایی کمتر از ۸٪ است.

test_multi_camera_switch

این آزمایش ثبات رنگ و نوردهی را درطول انتقال‌های بزرگ‌نمایی پویا تأیید می‌کند. این آزمایش تأیید می‌کند که جابه‌جایی بین لنزهای «فرازاویه» (UW) و «زاویه باز» (W) درطول ضبط پیش‌نمایش، مقادیر CIELAB تقریباً یکسانی را حفظ می‌کند و از تغییرات قابل‌مشاهده در تجربه کاربری جلوگیری می‌کند.

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

بررسی نوردهی خودکار تأیید می‌کند که نوسانات لومینانس درطول انتقال لنز در محدوده قابل‌قبول باقی می‌ماند. بررسی «تراز سفیدی خودکار» درستی‌سنجی می‌کند که نسبت‌های قرمز-سبز و آبی-سبز در آستانه‌های تعریف‌شده بی‌طرفی رنگ باقی بمانند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: برای اینکه آزمایش قبول شود، بررسی‌های AE و AWB زیر باید قبول شوند:

  • بررسی نوردهی خودکار: اگر دستگاه از هر دو ae_regions و awb_regions پشتیبانی می‌کند، تغییر لومینانس (مقدار Y) بین تصاویر لنز UW و W باید برای همه وصله‌های رنگی کمتر از ۴٪ باشد. اگر فقط ae_regions پشتیبانی می‌شود، فقط مقادیر وصله رنگ خاکستری باید با معیارها مطابقت داشته باشد.
  • بررسی تراز سفیدی خودکار: اگر دستگاه از هر دو ae_regions و awb_regions پشتیبانی می‌کند، تفاوت بین مقادیر قرمز-سبز و آبی-سبز برای تصاویر لنز UW و W باید کمتر از ۳٪ برای وصله رنگ خاکستری و کمتر از ۱۰٪ برای سایر وصله‌های رنگی باشد.

uw_dynamic_range_patch_cell_8

شکل ۱۴۴. تکه خاکستری گرفته‌شده با لنز UW.

w_dynamic_range_patch_cell_7

شکل ۱۴۵. وصله خاکستری گرفته‌شده با لنز W.

scene_ip

در Android 16 و نسخه‌های بالاتر، صحنه scene_ip امکان بررسی برابری تصویر را بین برنامه دوربین پیش‌فرض و برنامه دوربین Jetpack (JCA) فراهم می‌کند تا تفاوت‌های عمده بین تصاویر ثبت‌شده شناسایی شود. JCA عکس‌های گرفته‌شده با برنامه رسانه‌های اجتماعی را تکرار می‌کند و تصویر پایه‌ای ارائه می‌دهد که برنامه‌های رسانه‌های اجتماعی سپس آن را پردازش و اصلاح می‌کنند.

الزامات راه‌اندازی سخت‌افزار

برای آزمایش‌های scene_ip، راه‌اندازی سخت‌افزار زیر لازم است:

  • آزمایش‌ها در ITS-in-a-box دوربین Gen2 اجرا می‌شوند.
  • کنترل‌کننده‌های نورپردازی و سروو که بخشی از دکل Gen2 هستند برای کنترل محیط آزمایش استفاده می‌شوند.
  • یک نمودار ویژگی آزمایشی در داخل دکل Gen2 قرار داده شده است.

test_chart_gen2

شکل ۱۴۶. نمونه Gen2chart_sample.

معیارهای رد شدن از آزمایش

اگر هریک از معیارهای زیر برآورده شود، از آزمایش‌های scene_ip صرف‌نظر می‌شود:

  • دستگاه دارای سطح ای‌پی‌آی اول (first_api_level) ۳۵ یا پایین‌تر است.
  • دستگاه تلفنی با دوربین اصلی جلو و عقب نیست (برای مثال، رایانه لوحی یا تلویزیون).

test_default_jca_ip

از نمودار ویژگی آزمایش تحت شرایط نوری کنترل‌شده بااستفاده از برنامه دوربین پیش‌فرض و JCA عکس می‌گیرد و بررسی‌های زیر را انجام می‌دهد:

  • میدان دید: بررسی می‌کند که برنامه دوربین پیش‌فرض و عکس‌های گرفته‌شده با JCA میدان دید یکسانی داشته باشند. این بررسی از ویژگی رمزینه پاسخ‌سریع مرکزی استخراج‌شده از تصویر نمودار ضبط‌شده استفاده می‌کند.

  • روشنایی: بررسی می‌کند که تفاوت روشنایی اندازه‌گیری‌شده بین برنامه دوربین پیش‌فرض و JCA از ۱۰ بیشتر نباشد. این بررسی از وصله دامنه پویا برای اندازه‌گیری روشنایی استفاده می‌کند.

  • تراز سفیدی: بررسی می‌کند که تفاوت تراز سفیدی بین برنامه دوربین پیش‌فرض و JCA از ۴ بیشتر نباشد. این بررسی از وصله دامنه پویا برای اندازه‌گیری روشنایی استفاده می‌کند.

  • پرداخت رنگ: بررسی می‌کند که تفاوت پرداخت رنگ بین برنامه دوربین پیش‌فرض و JCA از ۶ بیشتر نباشد.

قبول: آزمایش بررسی‌های میدان دید، روشنایی، و تراز سفیدی را با موفقیت پشت سر می‌گذارد. در Android نسخه ۱۶، این آزمایش اجباری نیست (NOT_YET_MANDATED). برای Android نسخه ۱۷ و بالاتر، بررسی‌های برابری توازن سفید، روشنایی، و میدان دید اجباری است. بررسی پرداز رنگ در Android 17 اجباری نیست (NOT_YET_MANDATED).

test_jca_jpegr_ip

تأیید می‌کند که تفاوت توازن سفید بین عکس آنی پیش‌نمایش JPEG_R JCA و تصاویر ضبط‌شده از ۴ بیشتر نباشد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: تفاوت تراز سفیدی بین عکس آنی پیش‌نمایش JCA و تصویر JPEG_R ضبط‌شده در محدوده آستانه است (پیش‌فرض ۴ است).

sensor_fusion

آزمایش‌های ادغام حسگر به حرکت خاص تلفن در مقابل الگوی صفحه شطرنجی و نشانگرهای ArUco نیاز دارد. برای نتایج بهینه، مطمئن شوید که نمودار آزمایشی به‌صورت صاف نصب شده باشد. نمودارهایی که تخت نیستند بر محاسبات چرخش برای بسیاری از آزمایش‌ها تأثیر می‌گذارند. نمودار باید با چاپ در اندازه ۱۷×۱۷ اینچ، پشت جعبه ادغام حسگر را پر کند. (۴۳×۴۳ سانتی‌متر). آزمایش‌های sensor_fusion را می‌توان بااستفاده از Sensor Fusion Box خودکارسازی کرد.

نمودار ادغام حسگر

شکل ۱۴۷. نمودار ادغام حسگر.

نمودار ادغام حسگر در Rig

شکل ۱۴۸. نمودار ادغام حسگر که پشت جعبه ادغام حسگر را پر می‌کند.

test_lens_intrinsic_calibration

آزمایش می‌کند که آیا مرکز نوری لنز هنگام حرکت لنز به‌دلیل لرزش‌گیر نوری تصویر (OIS) تغییر می‌کند یا نه. اگر نمونه‌های ذاتی لنز پشتیبانی شود، آزمایش می‌کند که آیا مرکز نوری نمونه‌های ذاتی لنز هنگام حرکت لنز به‌دلیل OIS تغییر می‌کند یا نه.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: مرکز نوری لنز ذاتی به‌اندازه ۱ پیکسل یا بیشتر تغییر می‌کند. اگر نمونه‌های ذاتی لنز پشتیبانی شود، مراکز نوری نمونه‌های ذاتی لنز به‌اندازه ۱ پیکسل یا بیشتر تغییر می‌کند.

شکل زیر نمونه‌ای از نمودار test_lens_intrinsic_calibration است که تغییرات نقاط اصلی را برحسب پیکسل برای هر فریم نشان می‌دهد:

test_lens_intrinsic_calibration_example.png

شکل ۱۴۹. نمونه‌ای از نمودار test_lens_intrinsic_calibration که تغییرات نقاط اصلی را برحسب پیکسل برای هر فریم نشان می‌دهد.

test_multi_camera_frame_sync

آزمایش می‌کند که مُهرهای زمان قاب ضبط‌شده توسط دوربین منطقی با محاسبه زاویه‌های مربع‌های درون صفحه شطرنجی برای تعیین مُهر زمان، در محدوده ۱۰ میلی‌ثانیه باشد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: زاویه بین تصاویر هر دوربین با چرخاندن تلفن تغییر قابل‌توجهی نمی‌کند.

test_preview_distortion

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

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

test_preview_distortion_example.jpg

شکل ۱۵۰. تصویر صفحه شطرنجی با نقاط ایده‌آل به رنگ سبز و نقاط واقعی به رنگ قرمز.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: خطای اعوجاج نرمال‌شده هر قاب پیش‌نمایش کمتر از آستانه تعیین‌شده در آزمایش است.

test_preview_stabilization

آزمایش‌هایی که پیش‌نمایش ویدیو تثبیت‌شده را کمتر از ژیروسکوپ می‌چرخاند.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: حداکثر زاویه چرخش در قاب‌ها کمتر از ۷۰٪ چرخش ژیروسکوپ است.

در زیر نمونه ویدیوهایی با و بدون لرزش‌گیر آورده شده است:

شکل ۱۵۱. ویدیو نمونه با لرزش‌گیر.

شکل ۱۵۲. نمونه ویدیو بدون لرزش‌گیر.

test_sensor_fusion

تفاوت مُهر زمان بین دوربین و ژیروسکوپ را برای برنامه‌های واقعیت افزوده و واقعیت مجازی آزمایش می‌کند. تلفن ۱۰ بار به‌اندازه ۹۰ درجه در مقابل الگوی شطرنجی چرخانده می‌شود. حرکت حدود ۲ ثانیه رفت‌وبرگشت است. اگر ژیروسکوپ وجود نداشته باشد یا پارامتر منبع مُهر زمان REALTIME فعال نباشد، این آزمایش رد می‌شود.

آزمون test_sensor_fusion تعدادی نمودار تولید می‌کند. دو نمودار مهم برای اشکال‌زدایی عبارت‌اند از:

  • test_sensor_fusion_gyro_events: رویدادهای ژیروسکوپ تلفن را درطول آزمایش نشان می‌دهد. حرکت در جهت x و y نشان می‌دهد که تلفن به‌طور ایمن روی صفحه نصب قرار نگرفته است و احتمال قبولی در آزمایش را کاهش می‌دهد. تعداد چرخه‌ها در نمودار به سرعت نوشتن برای ذخیره کردن فریم‌ها بستگی دارد.

    نمونه رویدادهای ژیروسکوپ test_sensor_fusion

    شکل ۱۵۳. نمونه رویدادهای ژیروسکوپ test_sensor_fusion.

  • test_sensor_fusion_plot_rotations: تراز ژیروسکوپ و رویدادهای دوربین را نشان می‌دهد. این نمودار باید حرکت منطبق بین دوربین و ژیروسکوپ را تا ۱± میلی‌ثانیه نشان دهد.

    نمونه چرخش‌های طرح test_sensor_fusion

    شکل ۱۵۴. نمونه چرخش‌های نمودار test_sensor_fusion.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: انحراف مُهر زمان دوربین و ژیروسکوپ کمتر از ۱ میلی‌ثانیه است، طبق 7.3.9 High Fidelity Sensors در CDD.

سازوکارهای خرابی:

  • خطای انحراف: انحراف دوربین-ژیروسکوپ به‌درستی در محدوده ۱-/+ میلی‌ثانیه واسنجی نشده است.
  • افت فریم: خط لوله به‌اندازه کافی سریع نیست که بتواند ۲۰۰ فریم را به‌طور متوالی ضبط کند.
  • خطاهای سوکت: adb نمی‌تواند به‌طور مطمئن و به‌مدت کافی به DUT متصل شود تا آزمایش را اجرا کند.
  • نمودار به‌صورت صاف نصب نشده است. نمودار test_sensor_fusion_plot_rotations دارای قاب‌هایی است که در آن‌ها چرخش ژیروسکوپ و دوربین به‌طور قابل‌توجهی متفاوت است، زیرا دوربین در بخش‌هایی از نمودار که تخت نیستند می‌چرخد.
  • دوربین به‌صورت صاف نصب نشده است. نمودار test_sensor_fusion_gyro_events حرکت در صفحه‌های X و Y را نشان می‌دهد. این مشکل بیشتر در دوربین‌های جلو رخ می‌دهد زیرا دوربین پشت اغلب برآمدگی‌ای نسبت‌به بقیه بدنه تلفن دارد که باعث ایجاد شیب هنگام نصب پشت تلفن روی صفحه نصب می‌شود.

test_video_stabilization

منسوخ‌شده: این آزمایش از Android 17 منسوخ شده است. برای Android 17 و بالاتر، این آزمایش با test_video_stabilization_jca جایگزین شده است.

آزمایش‌هایی که نشان می‌دهد ویدیو لرزش‌گیری‌شده کمتر از ژیروسکوپ می‌چرخد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: حداکثر چرخش زاویه در قاب‌ها کمتر از ۶۰٪ چرخش ژیروسکوپ است.

در زیر نمونه ویدیوهایی با و بدون لرزش‌گیر آورده شده است.

شکل ۱۵۵. ویدیو نمونه با لرزش‌گیر.

شکل ۱۵۶. نمونه ویدیو بدون لرزش‌گیر.

test_video_stabilization_jca

آزمایش‌هایی که ویدیو تثبیت‌شده ضبط‌شده بااستفاده از JCA را کمتر از ژیروسکوپ می‌چرخاند. JCA باید قبل‌از آزمایش روی دستگاه نصب شود.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: حداکثر زاویه چرخش در فریم‌های استخراج‌شده از ویدیو ضبط‌شده بااستفاده از JCA کمتر از ۷۰٪ چرخش‌های ژیروسکوپ است (۴).

صحنه آزمایشی مبتنی بر پخش‌کننده

scene5

scene5 به صحنه خاکستری با نور یکنواخت نیاز دارد. این کار با پخش‌کننده نوری که روی لنز دوربین قرار می‌گیرد انجام می‌شود. پخش‌کننده زیر را توصیه می‌کنیم: http://www.edmundoptics.com/optics/windows-diffusers/optical-diffusers/opal-diffusing-glass/46168/.

برای آماده کردن صحنه، یک پخش‌کننده نور در جلوی دوربین وصل کنید و دوربین را به‌سمت منبع نوری با حدود ۲۰۰۰ لوکس بگیرید. تصاویر ضبط‌شده برای scene5 به نورپردازی پراکنده بدون ویژگی‌های واضح نیاز دارد. تصویر زیر یک تصویر نمونه است:

نمونه scene5

شکل ۱۵۷. نمونه ضبط scene5.

چون برای این صحنه به رایانه لوحی یا کنترل‌کننده نیاز نیست، آزمایش‌ها از بستر آزمایشی TEST_BED_MANUAL استفاده می‌کنند. برای نمونه، فایل config.yml آزمایش دستی را ببینید. فایل پیش‌فرض config.yml شامل TEST_BED_MANUAL نیست اما می‌توانید فایل را اصلاح کنید تا شامل آن شود.

test_lens_shading_and_color_uniformity

آزمایش می‌کند که اصلاح سایه‌زنی لنز به‌درستی اعمال شده باشد و رنگ صحنه یکنواخت تک‌رنگ به‌طور یکسان توزیع شده باشد. این آزمایش را روی قاب YUV با 3A خودکار انجام می‌دهد. سایه لنز براساس کانال y ارزیابی می‌شود. مقدار y میانگین را برای هر بلوک نمونه مشخص‌شده اندازه‌گیری می‌کند و با مقایسه با مقدار y مرکزی، قبولی یا ردی را تعیین می‌کند. آزمایش یکنواختی رنگ در فضای قرمز-سبز و آبی-سبز ارزیابی می‌شود.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: در شعاع مشخص‌شده تصویر، واریانس مقدار قرمز-سبز و آبی-سبز باید کمتر از ۲۰٪ باشد تا آزمایش قبول شود.

سازوکارهای خرابی:

  • سایه‌روشن بیش‌ازحد در تصاویر
  • آرتیفکت‌های حاشیه سیاه در تصاویر

test_lens_shading_and_color_uniformity_y_plane

شکل ۱۵۸. test_lens_shading_and_color_uniformity_y_plane.

test_lens_shading_and_color_uniformity_color_uniformity_result

شکل ۱۵۹. test_lens_shading_and_color_uniformity_color_uniformity.

test_lens_shading_and_color_uniformity_lens_shading_result

شکل ۱۶۰. test_lens_shading_and_color_uniformity_lens_shading_result.

صحنه آزمایشی مبتنی بر رایانه لوحی با گاموت گسترده

scene_wide_gamut

scene_wide_gamut قابی مستطیلی است که به چهار ربع مساوی تقسیم شده است، هرکدام با رنگی متفاوت پر شده است. برای این کار، رایانه لوحی باید نمودار را در گاموت گسترده نمایش دهد و DUT عکسی با گاموت گسترده از صفحه‌نمایش بگیرد.

این آزمایش‌ها تأیید می‌کنند که تصویر ثبت‌شده از نمایه رنگ و محدوده رنگ صحیح پیروی می‌کند.

test_display_p3

ضبط Display P3 را در JPEG بااستفاده از میانای برنامه‌سازی کاربردی ColorSpaceProfiles آزمایش می‌کند. آزمایش می‌کند که JPEG ضبط‌شده دارای نمایه ICC مناسب در سرصفحه خود باشد، و تصویر حاوی صدک خاصی از رنگ‌های خارج از طیف sRGB باشد.

میاناهای برنامه‌سازی کاربردی آزمایش‌شده:

قبول: JPEG حاوی نمایه ICC از نوع Display P3 و بیش‌از ۱ درصد رنگ خارج از طیف sRGB است.

test_display_p3 example

شکل ۱۶۱. نمونه test_display_p3.