تست دوربین ITS

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

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

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

  • صحنه 0 : گرفتن ابرداده، لرزش، ژیروسکوپ، لرزش
  • صحنه 1 : نوردهی، حساسیت، جبران EV، YUV در مقابل JPEG/RAW
  • صحنه 2 : تشخیص چهره، آزمایش هایی که نیاز به صحنه های رنگی یا تاریکی کامل دارند
  • صحنه 3 : بهبود لبه، حرکت لنز
  • صحنه 4 : نسبت تصویر، برش، میدان دید
  • صحنه 5 : سایه زنی لنز
  • صحنه 6 : زوم
  • scene_extensions : پسوند دوربین
  • sensor_fusion : تنظیم زمان دوربین/ژیروسکوپ

برای توضیح هر صحنه به بخش های جداگانه مراجعه کنید.

صحنه 0

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

test_burst_capture

تأیید می کند که کل خط لوله ضبط می تواند با سرعت ضبط کامل و زمان CPU مطابقت داشته باشد.

API های آزمایش شده:

Pass: مجموعه‌ای از تصاویر در اندازه کامل را می‌گیرد و دوربین به اندازه کافی سریع است تا از مهلت زمانی جلوگیری کند.

test_capture_result_dump

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

API های آزمایش شده:

Pass: ضبط را کامل می کند و نتایج ضبط را تخلیه می کند.

test_gyro_bias

آزمایش می کند که آیا ژیروسکوپ خروجی ثابتی دارد که دستگاه ثابت است یا خیر. داده ها به صورت میانگین 20 نقطه داده رسم می شوند.

API های آزمایش شده:

پاس: دلتای ژیروسکوپ در طول زمان کمتر از 0.01 است.

test_gyro_bias_plot.png

test_gyro_bias_plot.png

test_jitter

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

API های آزمایش شده:

پاس: حداقل 30 میلی‌ثانیه دلتا بین فریم‌ها وجود دارد.

test_jitter_plot.png

test_jitter_plot.png (به محدوده کوچک محور y توجه کنید. Jitter در واقع در این نمودار کوچک است.)

test_metadata

اعتبار ورودی های فراداده را آزمایش می کند. به نتایج عکس‌برداری و ویژگی‌های دوربین به اشیاء نگاه می‌کند. این آزمایش از نوردهی و دریافت مقادیر auto_capture_request استفاده می کند زیرا محتوای تصویر مهم نیست.

API های آزمایش شده:

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

test_param_sensitivity_burst

آزمایش می کند که پارامتر android.sensor.sensitivity به درستی به صورت پشت سر هم اعمال می شود. فقط فراداده های خروجی را بررسی می کند.

API های آزمایش شده:

پاس: داده های خروجی دارای تحمل خطا کمتر از 0.2٪ هستند.

test_read_write

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

API های آزمایش شده:

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

test_sensor_events

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

API های آزمایش شده:

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

test_solid_color_test_pattern

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

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

API های آزمایش شده:

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

test_test_pattern

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

  1. تصاویر را برای همه الگوهای تست پشتیبانی شده می گیرد.
  2. یک بررسی صحت ساده برای الگوی تست رنگ ثابت و نوارهای رنگی انجام می دهد.

API های آزمایش شده:

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

test_test_patterns_2

test_test_patterns_2.jpg

test_tonemap_curve

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

API های آزمایش شده:

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

test_tonemap_curve_raw_2

test_tonemap_curve_raw_2.jpg

test_tonemap_curve_yuv_2.jpg

test_tonemap_curve_yuv_2.jpg

test_unified_timestamp

آزمایش می کند که آیا رویدادهای حسگر تصویر و حرکت در یک حوزه زمانی هستند یا خیر.

API های آزمایش شده:

پاس: مهرهای زمانی حرکت بین دو مهر زمانی تصویر هستند.

test_vibration_restriction

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

API های آزمایش شده:

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

صحنه 1

صحنه 1 یک نمودار خاکستری است. نمودار خاکستری باید مرکز 30 درصد میدان دید دوربین را پوشش دهد. انتظار می رود نمودار خاکستری 3A (نور خودکار، تعادل رنگ سفید خودکار، فوکوس خودکار) را به طور متوسط ​​به چالش بکشد زیرا منطقه مرکزی هیچ ویژگی ندارد. با این حال، درخواست عکسبرداری کل صحنه را مشخص می کند که شامل ویژگی های کافی برای همگرایی 3A است.

دوربین های RFoV را می توان در دستگاه تست WFoV یا RFoV آزمایش کرد. اگر یک دوربین RFoV در دستگاه تست WFoV آزمایش شود، نمودار با ⅔ مقیاس می شود تا از برخی مرزهای نمودار خاکستری در FoV اطمینان حاصل شود تا به همگرایی 3A کمک کند. برای توضیحات دقیق تر از دستگاه های تست دوربین، دوربین ITS-in-a-a-box را ببینید.

صحنه 1

صحنه 1: نمودار اندازه کامل (سمت چپ). ⅔ نمودار مقیاس شده (راست).

test_3a

همگرایی 3A را با یک هدف نسبتاً چالش برانگیز آزمایش می کند.

API های آزمایش شده:

Pass: 3A همگرا می شود و مقادیر 3A برگشتی معتبر هستند.

test_ae_af

الگوریتم های نوردهی خودکار 3A (AE) و فوکوس خودکار (AF) را به صورت جداگانه آزمایش می کند.

API های آزمایش شده:

پاس: 3A همگرا می شود و مقادیر 3A برگشتی قانونی هستند.

test_ae_precapture_trigger

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

API های آزمایش شده:

پاس: AE همگرا می شود.

test_auto_vs_manual

تست‌هایی که عکس‌های خودکار و دستی گرفته‌اند یکسان هستند.

API های آزمایش شده:

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

test_auto_vs_manual_auto

test_auto_vs_manual_auto.jpg

test_auto_vs_manual_wb

test_auto_vs_manual_wb.jpg

test_auto_vs_manual_manual_wb_tm

test_auto_vs_manual_manual_wb_tm.jpg

تست_سیاه_سفید

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

API های آزمایش شده:

Pass: تصاویر سیاه و سفید تولید می کند. کانال های اشباع شده تصاویر سفید دارای مقادیر RGB [255، 255، 255] با حاشیه خطای کمتر از 1٪ اختلاف هستند.

تست_سیاه_سفید_سیاهتست_سیاه_سفید_سیاه
test_black_white_black.jpg test_black_white_white.jpg

test_black_white_plot_means

test_black_white_plot_means.png

test_burst_sameness_manual

5 بار پشت سر هم از 50 عکس با تنظیمات ضبط دستی می گیرد و بررسی می کند که همه آنها یکسان هستند. از این آزمایش می توان برای شناسایی فریم های پراکنده ای که به روش متفاوتی پردازش می شوند یا مصنوعاتی دارند استفاده کرد.

API های آزمایش شده:

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

Fail: یک افزایش یا کاهش نمودار میانگین RGB را در ابتدای هر انفجار نشان می دهد

  • تحمل برای first_API_level <30 3٪ است
  • تحمل برای first_API_level >= 30 2٪ است

test_burst_sameness_manual_mean

test_burst_sameness_manual_mean.jpg

test_burst_sameness_manual_plot_means

test_burst_sameness_manual_plot_means.png

test_capture_result

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

API های آزمایش شده:

پاس: ابرداده برای همه عکس‌برداری‌ها معتبر است و تنظیمات دستی در ضبط خودکار دوم به بیرون درز نمی‌کنند. تصحیح سایه لنز را برای عکسبرداری ترسیم می کند.

test_capture_result_plot_lsc_auto_ch0

test_capture_result_plot_lsc_auto_ch0.png

test_crop_region_raw

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

API های آزمایش شده:

پاس: تصاویر YUV در مرکز برش داده می شوند اما تصاویر خام نه.

test_crop_region_raw_comp_raw_crop

test_crop_region_raw_comp_raw_crop.jpg

test_crop_region_raw_comp_raw_full

test_crop_region_raw_comp_raw_full.jpg

test_crop_region_raw_comp_yuv_crop

test_crop_region_raw_comp_yuv_crop.jpg

test_crop_region_raw_yuv_full

test_crop_region_raw_yuv_full.jpg

test_crop_regions

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

API های آزمایش شده:

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

test_dng_noise_model

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

API های آزمایش شده:

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

test_dng_noise_model_plog

test_dng_noise_model_plog.png

test_ev_compensation_advanced

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

API های آزمایش شده:

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

test_ev_compensation_advanced_plot_means

test_ev_compensation_advanced_plot_means.png

test_ev_compensation_basic

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

API های آزمایش شده:

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

test_ev_compensation_basic

test_ev_compensation_basic.png

test_exposure

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

API های آزمایش شده:

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

test_exposure_plot_means

test_exposure_plot_means.png

test_exposure_mult=1.00test_exposure_mult=64.00
test_exposure_mult=1.00.jpg test_exposure_mult=64.00.jpg

test_jpeg

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

API های آزمایش شده:

Pass: میانگین تفاوت RGB بین هر تصویر کمتر از 3٪ است.

test_jpeg_fmt=jpg.jpgtest_jpeg=fmt=yuv.jpg
test_jpeg_fmt=jpg.jpg test_jpeg=fmt=yuv.jpg

test_latching

تست هایی که تنظیمات (نور و افزایش) روی قاب سمت راست دوربین های FULL و LEVEL_3 می چسبند. یک سری عکس با استفاده از درخواست های پشت سر هم می گیرد و پارامترهای درخواست عکس برداری را بین عکس ها تغییر می دهد. بررسی می کند که تصاویر دارای ویژگی های مورد انتظار هستند.

API های آزمایش شده:

پاس: تصاویر [2، 3، 6، 8، 10، 12، 13] ISO یا نوردهی را افزایش داده اند و با میانگین RGB بالاتر در test_latching_plot_means.png نشان داده می شوند.

test_latching_i=00.jpgtest_latching_i=01.jpgtest_latching_i=02.jpg
test_latching_i=00.jpg test_latching_i=01.jpg test_latching_i=02.jpg
test_latching_i=03.jpgtest_latching_i=04.jpgtest_latching_i=05.jpg
test_latching_i=03.jpg test_latching_i=04.jpg test_latching_i=05.jpg
test_latching_i=06.jpgtest_latching_i=07.jpgtest_latching_i=08.jpg
test_latching_i=06.jpg test_latching_i=07.jpg test_latching_i=08.jpg
test_latching_i=09.jpgtest_latching_i=10.jpgtest_latching_i=11.jpg
test_latching_i=09.jpg test_latching_i=10.jpg test_latching_i=11.jpg
test_latching_i=12.jpg
test_latching_i=12.jpg

test_latching_plot_means

test_latching_plot_means.png

تست_خطی

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

API های آزمایش شده:

پاس: مقادیر R، G، B باید به صورت خطی با افزایش حساسیت افزایش یابد.

test_linearity_plot_means

test_linearity_plot_means.png

test_locked_burst

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

API های آزمایش شده:

پاس: عکس‌ها یکدست به نظر می‌رسند.

test_locked_burst_frame0

test_locked_burst_frame0.jpg

test_locked_burst_frame1

test_locked_burst_frame1.jpg

test_locked_burst_frame2

test_locked_burst_frame2.jpg

test_param_color_correction

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

API های آزمایش شده:

پاس: مقادیر R و B با توجه به تبدیل افزایش می یابد.

test_param_color_correction_plot_means

test_param_color_correction_plot_means.png

*محور x درخواست های ضبط است: 0 = وحدت، 1 = تقویت قرمز، 2 = تقویت آبی

test_param_color_correction_req=0

test_param_color_correction_req=0.jpg

test_param_color_correctness_req=1

test_param_color_correctness_req=1.jpg (تقویت R)

test_param_color_correction_req=2

test_param_color_correction_req=2.jpg (تقویت B)

test_param_exposure_time

آزمایش می کند که پارامتر android.sensor.exposureTime اعمال می شود.

API های آزمایش شده:

پاس: هر شات روشن تر از عکس قبلی است.

test_param_exposure_time_frame0

test_param_exposure_time_frame0.jpg

test_param_exposure_time_plot

test_param_exposure_time_plot.png

test_param_flash_mode

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

API های آزمایش شده:

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

test_param_flash_mode_1

test_param_flash_mode_1.jpg

test_param_flash_mode_1_tile

test_param_flash_mode_1_tile.jpg

test_param_flash_mode_2

test_param_flash_mode_2.jpg

test_param_flash_mode_2_tile

test_param_flash_mode_2_tile.jpg

test_param_noise_reduction

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

API های آزمایش شده:

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

test_param_noise_reduction_plot_SNRs

test_param_noise_reduction_plot_SNRs.png

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

test_param_noise_reduction_high_gain_nr=0

test_param_noise_reduction_high_gain_nr=0.jpg

test_param_noise_reduction_high_gain_nr=1

test_param_noise_reduction_high_gain_nr=1.jpg

test_param_noise_reduction_high_gain_nr=2

test_param_noise_reduction_high_gain_nr=2.jpg

test_param_noise_reduction_high_gain_nr=3

test_param_noise_reduction_high_gain_nr=3.jpg

test_param_noise_reduction_low_gain

test_param_noise_reduction_low_gain.jpg

test_param_sensitivity

آزمایش هایی که پارامتر android.sensor.sensitivity اعمال می شود. این تست حساسیت را در 5 مرحله با نوردهی ثابت برای هر شات افزایش می دهد.

API های آزمایش شده:

پاس: میانگین RGB مرکز 10٪ با افزایش حساسیت روشن تر می شود.

test_param_sensitivity_iso=0055

test_param_sensitivity_iso=0055.jpg

test_param_sensitivity_iso=1819

test_param_sensitivity_iso=1819.jpg

test_param_sensitivity_iso=3583

test_param_sensitivity_iso=3583.jpg

test_param_sensitivity_iso=5347

test_param_sensitivity_iso=5347.jpg

test_param_sensitivity_iso=7111

test_param_sensitivity_iso=7111.jpg

test_param_sensitivity_plot

test_param_sensitivity_plot.png

test_param_shading_mode

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

API های آزمایش شده:

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

test_param_shading_mode_ls_maps_mode_0_loop_0

test_param_shading_mode_ls_maps_mode_0_loop_0.png

test_param_shading_mode_ls_maps_mode_1_loop_0

test_param_shading_mode_ls_maps_mode_1_loop_0.png

test_param_shading_mode_ls_maps_mode_2_loop_0

test_param_shading_mode_ls_maps_mode_2_loop_0.png

test_param_tonemap_mode

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

API های آزمایش شده:

عبور:

  • test1: هر دو تصویر دارای نقشه خطی هستند، اما n=1 دارای شیب تندتری است. کانال G (سبز) برای تصویر n=1 روشن تر است.
  • test2: نقشه تن یکسان، اما طول متفاوت. تصاویر هم همینطور.
test_param_tonemap_mode_n=0.jpgtest_param_tonemap_mode_n=1.jpg
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg

test_post_raw_sensitivity_boost

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

API های آزمایش شده:

پاس: با افزایش بوست، تصاویر RAW تیره تر می شوند در حالی که روشنایی تصاویر YUV ثابت می مانند

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_raw_plot_means

test_post_raw_sensitivity_boost_raw_plot_means.png

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg

test_post_raw_sensitivity_boost_yuv_plot_means

test_post_raw_sensitivity_boost_yuv_plot_means.png

test_raw_burst_sensitivity

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

API های آزمایش شده:

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

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

test_raw_burst_sensitivity_variance

test_raw_burst_sensitivity_variance.png

test_raw_exposure

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

API های آزمایش شده:

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

test_raw_exposure_s=55

test_raw_exposure_s=55.png

(10⁰ 1 ms، 101 10 ms، 10-1 0.1 ms است)

test_raw_exposure_s=132

test_raw_exposure_s=132.png

test_raw_exposure_s=209

test_raw_exposure_s=209.png

test_raw_exposure_s=286

test_raw_exposure_s=286.png

test_raw_exposure_s=363

test_raw_exposure_s=363.png

test_raw_exposure_s=440

test_raw_exposure_s=440.png

test_raw_sensitivity

مجموعه ای از تصاویر خام را با افزایش حساسیت می گیرد و نویز (واریانس) در مرکز 10% تصویر را اندازه گیری می کند. آزمایش هایی که نشان می دهد هر شات نویزتر از عکس قبلی است.

API های آزمایش شده:

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

test_raw_sensitivity_variance

test_raw_sensitivity_variance.png

test_reprocess_noise_reduction

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

API های آزمایش شده:

پاس: FAST >= OFF، HQ >= FAST، HQ >> OFF

نمودار SNR معمولی در مقابل NR_MODE

نمودار SNR معمولی در مقابل NR_MODE

test_tonemap_sequence

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

API های آزمایش شده:

پاس: 3 فریم یکسان و به دنبال آن یک مجموعه متفاوت از 3 فریم یکسان وجود دارد.

test_tonemap_sequence_i=0

test_tonemap_sequence_i=0.jpg

test_tonemap_sequence_i=1

test_tonemap_sequence_i=1.jpg

test_tonemap_sequence_i=2

test_tonemap_sequence_i=2.jpg

test_tonemap_sequence_i=3

test_tonemap_sequence_i=3.jpg

test_tonemap_sequence_i=4

test_tonemap_sequence_i=4.jpg

test_tonemap_sequence_i=5

test_tonemap_sequence_i=5.jpg

test_yuv_jpeg_all

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

API های آزمایش شده:

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

test_yuv_jpeg_all

test_yuv_jpeg_all.png

test_yuv_plus_dng

تست هایی که اندازه ها و فرمت های گزارش شده برای ثبت تصویر کار می کنند.

API های آزمایش شده:

Pass: تست تصاویر درخواستی را تکمیل و برمی گرداند.

test_yuv_plus_dng

test_yuv_plus_dng.jpg

test_yuv_plus_jpeg

گرفتن یک فریم را به عنوان خروجی YUV و JPEG آزمایش می کند. از یک درخواست دستی با یک نقشه خطی استفاده می کند تا YUV و JPEG هنگام تبدیل توسط ماژول image_processing_utils یکسان به نظر برسند.

API های آزمایش شده:

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

test_yuv_plus_jpg_jpg.jpgtest_yuv_plus_jpeg_yuv.jpg
test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg

test_yuv_plus_raw

در صورت پشتیبانی، گرفتن یک فریم را به عنوان خروجی RAW/RAW10/RAW12 و YUV آزمایش می‌کند. از یک درخواست دستی با نقشه خطی استفاده می کند، بنابراین انتظار می رود خام و YUV یکسان باشند. مقادیر RGB 10% مرکز تصاویر تبدیل شده را با هم مقایسه می کند. گزارشات android.shading.mode .

API های آزمایش شده:

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

test_yuv_plus_raw_shading=1_raw.jpgtest_yuv_plus_raw_shading=1_yuv.jpg
test_yuv_plus_raw_shading=1_raw.jpg test_yuv_plus_raw_shading=1_yuv.jpg

صحنه2_a

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

صحنه2_a

صحنه2_a

test_auto_flash

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

API های آزمایش شده:

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

test_autoframing

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

API های آزمایش شده:

پاس: هر سه چهره شناسایی می شوند.

test_display_p3

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

API های آزمایش شده:

پاس: JPEG حاوی نمایه نمایشگر P3 ICC و رنگ‌هایی خارج از محدوده sRGB است.

test_effects

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

API های آزمایش شده:

Pass: تصویر صحنه را با جلوه‌های OFF و یک تصویر تک رنگ با جلوه‌ها روی MONO می‌گیرد.

test_effects_MONO

test_effects_MONO.jpg

test_format_combos

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

API های آزمایش شده:

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

test_jpeg_quality

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

API های آزمایش شده:

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

test_jpeg_quality

ماتریس لوما/کروما DQT دوربین عقب Pixel 4 در مقایسه با کیفیت JPEG متوسط ​​است

test_jpeg_quality ناموفق بود

نمونه تست ناموفق

توجه داشته باشید که برای تصاویر با کیفیت بسیار پایین (jpeg.quality < 50)، هیچ افزایشی در فشرده سازی در ماتریس کوانتیزاسیون وجود ندارد.

test_num_faces

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

API های آزمایش شده:

پاس: سه چهره را پیدا می کند.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_preview_min_frame_rate

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

API های آزمایش شده:

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

test_reprocess_uv_swap

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

API های آزمایش شده:

پاس: هواپیماهای U و V تعویض نمی شوند.

test_reprocess_uv_swap

test_reprocess_uv_swap.png

صحنه2_ب

test_num_faces

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

API های آزمایش شده:

پاس: 3 چهره را پیدا می کند.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_yuv_jpeg_capture_sameness

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

API های آزمایش شده:

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

صحنه2_ج

test_num_faces

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

API های آزمایش شده:

پاس: 3 چهره را پیدا می کند.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_jpeg_capture_perf_class

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

پاس: باید دارای تأخیر ضبط JPEG camera2 کمتر از 1000 میلی ثانیه برای وضوح 1080p باشد که توسط دوربین CTS PerformanceTest در شرایط نور ITS (3000K) برای هر دو دوربین اصلی اندازه‌گیری شده است.

test_camera_launch_perf_class

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

پاس: باید تاخیر راه اندازی camera2 (باز کردن دوربین تا اولین فریم پیش نمایش) کمتر از 600 میلی ثانیه باشد که توسط دوربین CTS PerformanceTest در شرایط نوری ITS (3000K) برای هر دو دوربین اصلی اندازه گیری شده است.

صحنه2_د

test_num_faces

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

API های آزمایش شده:

پاس: 3 چهره را پیدا می کند.

صحنه2_e

test_continuous_picture

50 فریم با وضوح VGA با اولین تنظیم درخواست عکسبرداری گرفته می شود android.control.afMode = 4 (CONTINUOUS_PICTURE).

API های آزمایش شده:

Pass: سیستم 3A در پایان گرفتن 50 فریم ته نشین می شود.

test_num_faces

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

API های آزمایش شده:

پاس: 3 چهره را پیدا می کند.

صحنه2_f

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

scene2_f.png

صحنه2_f

test_num_faces

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

API های آزمایش شده:

پاس: 3 چهره را پیدا می کند.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

صحنه 3

Scene3 از نمودار ISO12233 استفاده می کند و اکثر تست ها از روش استخراج نمودار برای یافتن نمودار در صحنه استفاده می کنند. به همین دلیل، اکثر تصاویر ذخیره شده مانند تصاویر صحنه های 1، 2 یا 4 حاشیه ندارند، بلکه فقط نمودار هستند. نمودار باید در جهت گیری صحیح باشد تا نمودار یاب بهینه کار کند.

test_3a_consistency

تست های سازگاری 3A

API های آزمایش شده:

پاس: 3A برای نوردهی، افزایش، awb (توازن سفید خودکار) و fd (فاصله فوکوس) سه بار در محدوده تحمل همگرا می شود.

test_edge_enhancement

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

Pass: حالت HQ (2) واضح تر از حالت OFF (0). حالت FAST (1) واضح تر از حالت OFF . حالت HQ واضح تر یا برابر با حالت FAST است.

API های آزمایش شده:

پارامترهای دوربین تحت تاثیر:

  • EDGE_MODE

test_edge_enhancement_edge=0

test_edge_enhancement_edge=0.jpg

test_edge_enhancement_edge=1

test_edge_enhancement_edge=1.jpg (حالت سریع)

test_edge_enhancement_edge=2

test_edge_enhancement_edge=2.jpg (حالت با کیفیت بالا)

test_flip_mirror

بررسی می کند که آیا تصویر مطابق با بخش CDD 7.5.2 دوربین جلو [C-1-5] به درستی جهت یابی شده است.

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

پاس: تصویر برعکس، آینه یا چرخانده نمی شود.

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_landscape_to_portrait

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

API های آزمایش شده:

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

test_landscape_to_portrait

test_landscape_to_portrait.png

test_lens_movement_reporting

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

API های آزمایش شده:

پاس: پرچم حرکت لنز در کادر با تغییر وضوح، 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

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

API های آزمایش شده:

پاس: وضوح برای حالت های مختلف لبه درست است. HQ (حالت 2) واضح تر از OFF (حالت 0) است و بهبود بین حالت های مختلف مشابه است.

test_reprocess_edge_enhancement_plot

test_reprocess_edge_enhancement_plot.png

صحنه 4

Scene4 از یک دایره سیاه در زمینه سفید در داخل یک مربع تشکیل شده است.

صحنه 4

صحنه 4

test_aspect_ratio_and_crop

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

API های آزمایش شده:

پاس: تصاویر کشیده نمی شوند، مرکز تصاویر بیش از 3٪ متفاوت نیست و حداکثر FoV (میدان دید) ممکن حفظ می شود.

مکانیسم های شکست:

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

test_multi_camera_alignment

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

API های آزمایش شده:

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

مکانیسم های شکست:

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

test_preview_aspect_ratio_and_crop

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

API های آزمایش شده:

پاس: تصاویر کشیده نمی شوند، مرکز تصاویر بیش از 3٪ متفاوت نیست و حداکثر FoV (میدان دید) ممکن حفظ می شود.

test_preview_stabilization_fov

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

API های آزمایش شده:

پاس: نسبت ابعاد دایره تقریبا ثابت می ماند، مرکز دایره ثابت می ماند و اندازه دایره بیش از 20 درصد تغییر نمی کند.

test_video_aspect_ratio_and_crop

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

API های آزمایش شده:

پاس: فریم‌های ویدیو کشیده نمی‌شوند، مرکز فریم‌ها بیش از 3 درصد تفاوت ندارند و حداکثر FoV (میدان دید) ممکن حفظ می‌شود.

صحنه 5

صحنه 5 نیاز به یک صحنه خاکستری روشن یکنواخت دارد. این کار توسط یک دیفیوزر قرار داده شده بر روی لنز دوربین انجام می شود. ما دیفیوزر زیر را توصیه می کنیم: www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168 .

برای آماده کردن صحنه، یک دیفیوزر را در جلوی دوربین وصل کنید و دوربین را به منبع نوری حدود 2000 لوکس ببرید. تصاویر گرفته شده برای صحنه 5 نیاز به نور پراکنده بدون هیچ ویژگی مشخصی دارند. تصویر زیر نمونه ای است:

صحنه 5

ضبط صحنه 5

test_lens_shading_and_color_uniformity

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

API های آزمایش شده:

پاس: در شعاع مشخص شده تصویر، واریانس مقدار r/g و b/g باید کمتر از 20 درصد باشد تا آزمون را با موفقیت پشت سر بگذارد.

صحنه 6

صحنه 6 شبکه ای از دایره های کوچک با یک مربع در یک گوشه برای نشان دادن جهت است. دایره های کوچک برای آزمایش عملکرد بزرگنمایی در یک محدوده بزرگ مورد نیاز است.

صحنه 6

صحنه 6

test_in_sensor_zoom

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

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

API های آزمایش شده:

پاس: تفاوت ریشه سه‌بعدی میانگین مربع (RMS) بین تصویر RAW برش‌شده کوچک‌شده و تصویر کامل FoV RAW کمتر از 1٪ است.

test_zoom

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

API های آزمایش شده:

پاس: اندازه نسبی دایره گرفته شده در برابر نسبت بزرگنمایی درخواستی دقیق است تا مطمئن شود دوربین به درستی بزرگنمایی می کند.

test_zoom

test_zoom برای یافتن خط دایره نزدیک به مرکز.

test_low_latency_zoom

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

API های آزمایش شده:

پاس: اندازه نسبی دایره گرفته شده در برابر فراداده نتیجه نسبت بزرگنمایی دقیق است.

test_preview_video_zoom_match

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

API های آزمایش شده:

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

VGA_640x480_key_frame.png

VGA_640x480_key_frame.png (قبل از بزرگنمایی)

preview_640x480_key_frame.png

preview_640x480_key_frame.png (قبل از بزرگنمایی)

VGA_640x480_key_frame_zoomed.png

VGA_640x480_key_frame.png (پس از بزرگنمایی)

preview_640x480_key_frame_zoomed.png

preview_640x480_key_frame.png (پس از بزرگنمایی)

صحنه_افزودن

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

scene_hdr

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

scene_hdr

scene_hdr

test_hdr_extension

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

API های آزمایش شده:

Pass: پسوند HDR تعداد تغییرات کنتراست مورد نیاز برای شناسایی کد QR را کاهش می دهد یا گرادیان در سراسر کد QR را کاهش می دهد.

صحنه_شب

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

صحنه_شب

صحنه_شب

test_night_extension

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

  • عکسبرداری با فعال کردن پسوند Night بیشتر طول می کشد.
  • عکسبرداری با فعال کردن پسوند Night روشن تر است یا مصنوعات صحنه با ظاهر بهبود یافته دارد.

API های آزمایش شده:

پاس: در مقایسه با عکس‌برداری بدون فعال کردن پسوند Night، عکاسی با برنامه Night فعال حداقل 0.5 ثانیه بیشتر طول می‌کشد. عکسبرداری باید حداقل 10٪ روشن تر باشد یا نقاط خاکستری در صحنه باید 20 پیکسل کمتر از مرکز دایره اطراف باشد.

حسگر_همجوشی

تست های همجوشی حسگر نیاز به حرکت خاص تلفن در مقابل یک الگوی شطرنجی دارد. برای نتایج بهینه، مطمئن شوید که نمودار تست صاف نصب شده است. نمودارهایی که مسطح نیستند بر محاسبات چرخش برای بسیاری از تست‌ها تأثیر می‌گذارند. تست های sensor_fusion را می توان با Sensor Fusion Box به صورت خودکار انجام داد.

تخته شطرنجی

تصویر شطرنجی

test_multi_camera_frame_sync

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

API های آزمایش شده:

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

test_preview_stabilization

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

API های آزمایش شده:

پاس: حداکثر زاویه چرخش روی فریم ها کمتر از 70 درصد چرخش ژیروسکوپ است.

نمونه فیلم های زیر با و بدون تثبیت است.

  • نمونه ویدیو با تثبیت کننده

  • نمونه ویدیو بدون تثبیت

test_sensor_fusion

تفاوت مهر زمانی بین دوربین و ژیروسکوپ را برای برنامه‌های AR و VR آزمایش می‌کند. تلفن 90 درجه 10 بار جلوی طرح شطرنجی چرخیده است. حرکت حدود 2 ثانیه رفت و برگشت است. اگر ژیروسکوپ گنجانده نشده باشد یا اگر پارامتر منبع مهر زمان REALTIME فعال نباشد، از این آزمایش صرفنظر می شود.

تست test_sensor_fusion تعدادی نمودار تولید می کند. دو طرح مهم برای اشکال زدایی عبارتند از:

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

    test_sensor_fusion_gyro_events.png

    test_sensor_fusion_gyro_events

  • test_sensor_fusion_plot_rotations : تراز ژیروسکوپ و رویدادهای دوربین را نشان می دهد. این نمودار باید حرکت تطبیق بین دوربین و ژیروسکوپ را با +/-1 میلی ثانیه نشان دهد.

    test_sensor_fusion_plot_rotations.png

    test_sensor_fusion_plot_rotations

API های آزمایش شده:

پاس: آفست مهرهای زمانی دوربین و ژیروسکوپ طبق بخش CDD 7.3.9 سنسورهای وفاداری بالا [C-2-14] کمتر از 1 میلی ثانیه است.

مکانیسم های شکست:

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

test_video_stabilization

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

API های آزمایش شده:

پاس: حداکثر زاویه چرخش روی فریم ها کمتر از 60 درصد چرخش ژیروسکوپ است.

نمونه فیلم های زیر با و بدون تثبیت است.

  • نمونه ویدیو با تثبیت کننده

  • نمونه ویدیو بدون تثبیت

test_led_snapshot

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

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

از آنجایی که عکس‌برداری به دلیل فلاش، نقطه اتصال مشخصی دارد، آزمایش میانگین تصویر فلاش کل عکس‌برداری را محاسبه می‌کند و بررسی می‌کند که آیا مقدار در محدوده (68، 102) است یا خیر. برای بررسی اینکه آیا تصویر به طور معقولی متعادل است یا خیر، آزمایش نسبت های R/G و B/G را محاسبه می کند و بررسی می کند که آیا نسبت ها در 0.95 و 1.05 هستند یا خیر.

API های آزمایش شده:

پاس: نسبت های R/G و B/G در محدوده 0.95 و 1.05 قرار دارند. میانگین تصویر فلاش در محدوده (68، 102) است.