این صفحه فهرست جامعی از تستهای مجموعه تست تصویر دوربین (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_jitter
لرزش را در مهرهای زمانی دوربین اندازه گیری می کند.
API های آزمایش شده:
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
پاس: حداقل 30 میلیثانیه دلتا بین فریمها وجود دارد.
test_jitter_plot.png (به محدوده کوچک محور y توجه کنید. Jitter در واقع در این نمودار کوچک است.)
test_metadata
اعتبار ورودی های فراداده را آزمایش می کند. به نتایج عکسبرداری و ویژگیهای دوربین به اشیاء نگاه میکند. این آزمایش از نوردهی و دریافت مقادیر auto_capture_request
استفاده می کند زیرا محتوای تصویر مهم نیست.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERN
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
-
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
-
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
Pass: سطح سختافزار، rollingShutterSkew
، برچسبهای frameDuration
، timestampSource
، croppingType
، blackLevelPattern
، pixel_pitch
، FoV، فاصله هایپرکانونی موجود هستند و مقادیر معتبری دارند.
test_param_sensitivity_burst
آزمایش می کند که پارامتر android.sensor.sensitivity
به درستی به صورت پشت سر هم اعمال می شود. فقط فراداده های خروجی را بررسی می کند.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
پاس: داده های خروجی دارای تحمل خطا کمتر از 0.2٪ هستند.
test_read_write
آزمایش می کند که دستگاه با بازخوانی فراداده ضبط، مقادیر نوردهی و افزایش صحیح را می نویسد.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
پاس: خواندن و نوشتن مقادیر در تمام عکس ها مطابقت دارند.
test_sensor_events
آزمایش می کند که دستگاه پرس و جو می کند و رویدادهای حسگر را برای دستگاه هایی که پشتیبانی از همجوشی حسگر را تبلیغ می کنند چاپ می کند. سنسورهای مورد انتظار شتاب سنج، ژیروسکوپ و مغناطیس سنج هستند. این تست فقط در صورتی کار می کند که صفحه نمایش روشن باشد، یعنی دستگاه در حالت آماده به کار نیست.
API های آزمایش شده:
پاس: رویدادها برای هر سنسور دریافت می شود.
test_solid_color_test_pattern
آزمایشهایی که الگوهای تست رنگ ثابت به درستی برای بیصدا کردن دوربین ایجاد میشوند. اگر قطع دوربین پشتیبانی می شود، الگوهای تست رنگ ثابت باید پشتیبانی شوند. اگر بیصدا کردن دوربین پشتیبانی نمیشود، الگوهای تست رنگ ثابت فقط در صورتی آزمایش میشوند که قابلیت تبلیغ شده باشد.
اگر تصاویر RAW پشتیبانی می شوند، تخصیص رنگ نیز آزمایش می شود. رنگ های تست شده مشکی، سفید، قرمز، آبی و سبز هستند. برای دوربین هایی که از تصاویر RAW پشتیبانی نمی کنند، فقط مشکی تست شده است.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATA
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
پاس: الگوهای تست جامد پشتیبانی شده رنگ صحیح هستند و واریانس کمی در تصویر وجود دارد.
test_test_pattern
پارامتر android.sensor.testPatternMode
را برای گرفتن فریمها برای هر الگوی آزمایشی معتبر آزمایش میکند و بررسی میکند که فریمها برای رنگهای ثابت و نوارهای رنگی درست تولید شدهاند. این آزمون شامل مراحل زیر است:
- تصاویر را برای همه الگوهای تست پشتیبانی شده می گیرد.
- یک بررسی صحت ساده برای الگوی تست رنگ ثابت و نوارهای رنگی انجام می دهد.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
پاس: الگوهای تست پشتیبانی شده به درستی تولید می شوند.
test_test_patterns_2.jpg
test_tonemap_curve
تبدیل الگوی آزمایشی از RAW به YUV را با نقشه خطی آزمایش می کند. این آزمایش به android.sensor.testPatternMode = 2
(COLOR_BARS) نیاز دارد تا یک الگوی تصویر عالی برای تبدیل نقشه تن ایجاد کند. اطمینان حاصل می کند که خط لوله دارای خروجی های رنگی مناسب با نقشه خطی و ورودی تصویر ایده آل است (متکی به test_test_patterns
).
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
پاس: YUV و RAW شبیه یکدیگر هستند.
test_tonemap_curve_raw_2.jpg
test_tonemap_curve_yuv_2.jpg
test_unified_timestamp
آزمایش می کند که آیا رویدادهای حسگر تصویر و حرکت در یک حوزه زمانی هستند یا خیر.
API های آزمایش شده:
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
-
android.hardware.Sensor
-
android.hardware.SensorEvent
-
android.hardware.Sensor#TYPE_ACCELEROMETER
-
android.hardware.Sensor#TYPE_GYROSCOPE
پاس: مهرهای زمانی حرکت بین دو مهر زمانی تصویر هستند.
test_vibration_restriction
آزمایش می کند که آیا لرزش دستگاه مطابق انتظار عمل می کند یا خیر.
API های آزمایش شده:
-
android.hardware.Sensor
-
android.hardware.SensorEvent
-
android.hardware.Sensor#TYPE_ACCELEROMETER
-
android.os.Vibrator
-
android.hardware.camera2.CameraDevice#setCameraAudioRestriction
پاس: هنگامی که توسط API محدودیت صوتی دوربین بیصدا میشود، دستگاه نمیلرزد.
صحنه 1
صحنه 1 یک نمودار خاکستری است. نمودار خاکستری باید مرکز 30 درصد میدان دید دوربین را پوشش دهد. انتظار می رود نمودار خاکستری 3A (نور خودکار، تعادل رنگ سفید خودکار، فوکوس خودکار) را به طور متوسط به چالش بکشد زیرا منطقه مرکزی هیچ ویژگی ندارد. با این حال، درخواست عکسبرداری کل صحنه را مشخص می کند که شامل ویژگی های کافی برای همگرایی 3A است.
دوربین های RFoV را می توان در دستگاه تست WFoV یا RFoV آزمایش کرد. اگر یک دوربین RFoV در دستگاه تست WFoV آزمایش شود، نمودار با ⅔ مقیاس می شود تا از برخی مرزهای نمودار خاکستری در FoV اطمینان حاصل شود تا به همگرایی 3A کمک کند. برای توضیحات دقیق تر از دستگاه های تست دوربین، دوربین ITS-in-a-a-box را ببینید.
صحنه 1: نمودار اندازه کامل (سمت چپ). ⅔ نمودار مقیاس شده (راست).
test_3a
همگرایی 3A را با یک هدف نسبتاً چالش برانگیز آزمایش می کند.
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Pass: 3A همگرا می شود و مقادیر 3A برگشتی معتبر هستند.
test_ae_af
الگوریتم های نوردهی خودکار 3A (AE) و فوکوس خودکار (AF) را به صورت جداگانه آزمایش می کند.
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
پاس: 3A همگرا می شود و مقادیر 3A برگشتی قانونی هستند.
test_ae_precapture_trigger
هنگام استفاده از ماشه پیش گرفتن، دستگاه حالت AE را آزمایش می کند. پنج درخواست دستی را با AE غیرفعال می گیرد. آخرین درخواست دارای یک ماشه Precapture AE است که باید نادیده گرفته شود زیرا AE غیرفعال است.
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
پاس: AE همگرا می شود.
test_auto_vs_manual
تستهایی که عکسهای خودکار و دستی گرفتهاند یکسان هستند.
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
-
android.hardware.camera2.CaptureResult#TONEMAP_MODE
پاس: افزایش و تبدیل دستی تراز سفیدی گزارش شده در هر نتیجه عکسبرداری با estimate
تعادل رنگ سفید خودکار از الگوریتم 3A دوربین مطابقت دارد.
test_auto_vs_manual_auto.jpg
test_auto_vs_manual_wb.jpg
test_auto_vs_manual_manual_wb_tm.jpg
تست_سیاه_سفید
تست هایی که دستگاه تصاویر سیاه و سفید کامل تولید می کند. دو عکس می گیرد، اولی با بهره بسیار کم و نوردهی کوتاه که منجر به یک عکس سیاه می شود و دومی با بهره بسیار زیاد و نوردهی طولانی که منجر به یک عکس سفید می شود.
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Pass: تصاویر سیاه و سفید تولید می کند. کانال های اشباع شده تصاویر سفید دارای مقادیر RGB [255، 255، 255] با حاشیه خطای کمتر از 1٪ اختلاف هستند.
test_black_white_black.jpg | test_black_white_white.jpg |
test_black_white_plot_means.png
test_burst_sameness_manual
5 بار پشت سر هم از 50 عکس با تنظیمات ضبط دستی می گیرد و بررسی می کند که همه آنها یکسان هستند. از این آزمایش می توان برای شناسایی فریم های پراکنده ای که به روش متفاوتی پردازش می شوند یا مصنوعاتی دارند استفاده کرد.
API های آزمایش شده:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
-
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
پاس: تصاویر از نظر بصری و در مقادیر RGB یکسان هستند.
Fail: یک افزایش یا کاهش نمودار میانگین RGB را در ابتدای هر انفجار نشان می دهد
- تحمل برای
first_API_level
<30 3٪ است - تحمل برای
first_API_level
>= 30 2٪ است
test_burst_sameness_manual_mean.jpg
test_burst_sameness_manual_plot_means.png
test_capture_result
آزمایش می کند که داده های معتبر در اشیاء CaptureResult
برمی گردند. عکسبرداری خودکار، دستی و خودکار انجام می دهد.
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
-
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
پاس: ابرداده برای همه عکسبرداریها معتبر است و تنظیمات دستی در ضبط خودکار دوم به بیرون درز نمیکنند. تصحیح سایه لنز را برای عکسبرداری ترسیم می کند.
test_capture_result_plot_lsc_auto_ch0.png
test_crop_region_raw
آزمایش می کند که جریان های RAW قابل برش نیستند.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CaptureResult#SCALER_CROP_REGION
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
پاس: تصاویر YUV در مرکز برش داده می شوند اما تصاویر خام نه.
test_crop_region_raw_comp_raw_crop.jpg
test_crop_region_raw_comp_raw_full.jpg
test_crop_region_raw_comp_yuv_crop.jpg
test_crop_region_raw_yuv_full.jpg
test_crop_regions
آزمایش هایی که مناطق کشت کار می کنند. یک تصویر کامل می گیرد و وصله هایی از 5 ناحیه مختلف (گوشه ها و مرکز) ایجاد می کند. با مجموعه برش برای 5 منطقه عکس می گیرد. مقادیر پچ و برش تصویر را با هم مقایسه می کند.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Pass: تصویر ناحیه برش خورده با وصله مربوط به تصویر برش مطابقت دارد.
test_dng_noise_model
بررسی می کند که پارامترهای مدل خام DNG صحیح هستند. طرح، واریانس اندازهگیری شده یک وصله مرکزی کارت خاکستری را در عکسهای خام گرفتهشده در طیف وسیعی از حساسیتها نشان میدهد و این مقادیر را با واریانسی که در هر حساسیت انتظار میرود توسط مدل نویز DNG در HAL دوربین مقایسه میکند (بر اساس پارامترهای O,S در اشیاء نتیجه گرفتن بازگردانده می شوند). برای جزئیات بیشتر در مورد مدل نویز DNG، سند زیر را در مورد مدل نویز DNG دانلود کنید.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILE
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
پاس: پارامترهای مدل خام DNG صحیح است. مقادیر RGB مورد انتظار با مقادیر واقعی RGB اندازه گیری شده مطابقت دارد.
test_dng_noise_model_plog.png
test_ev_compensation_advanced
آزمایش هایی که نشان می دهد جبران ارزش نوردهی (EV) اعمال می شود. این آزمایش نوردهی را در هشت مرحله افزایش می دهد و روشنایی اندازه گیری شده را در مقابل روشنایی مورد انتظار بررسی می کند. مقادیر مورد انتظار از روشنایی تصویر بدون اعمال جبران EV محاسبه می شود و اگر مقادیر محاسبه شده از محدوده مقدار واقعی تصویر بیشتر شود، مقدار مورد انتظار اشباع می شود. اگر مقادیر مورد انتظار و مقادیر اندازهگیری شده مطابقت نداشته باشند یا تصاویر در عرض پنج مرحله بیش از حد نوردهی کنند، آزمایش با شکست مواجه میشود.
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
-
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
-
android.hardware.camera2.CaptureResult#TONEMAP_MODE
پاس: تصاویر افزایش نوردهی را بدون نوردهی بیش از حد در پنج مرحله نشان میدهند.
test_ev_compensation_advanced_plot_means.png
test_ev_compensation_basic
آزمایش می کند که جبران EV با استفاده از محدوده ایجاد شده با CONTROL_AE_COMPENSATION_STEP
اعمال می شود. در هر مقدار جبرانی هشت فریم گرفته می شود.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
-
android.hardware.camera2.CaptureResult#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
پاس: با افزایش تنظیم جبران EV، میزان عکسبرداری افزایش مییابد، و هشت فریم ثبتشده برای هر تنظیم جبران EV دارای مقادیر luma پایدار هستند.
test_ev_compensation_basic.png
test_exposure
تست هایی که نشان می دهد نوردهی ثابت به عنوان ISO و زمان نوردهی متفاوت است. مجموعهای از عکسها را میگیرد که ISO و زمان نوردهی برای متعادل کردن یکدیگر انتخاب شدهاند. نتایج باید روشنایی یکسانی داشته باشند، اما در طول توالی تصویر باید نویزتر شود. تأیید می کند که مقادیر میانگین پیکسل های نمونه به یکدیگر نزدیک هستند. اطمینان حاصل می کند که تصاویر روی 0 یا 1 قرار نگرفته اند (که آنها را مانند خطوط صاف می کند). با تنظیم پرچم debug
در فایل پیکربندی، آزمایش را می توان با تصاویر RAW نیز اجرا کرد.
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
پاس: تصاویر دارای روشنایی یکسان هستند، اما با ISO بالاتر نویزتر می شوند. صفحات RGB زمانی که مقدار ISO*exposure در فضای بهره آزمایش شده ثابت باشد صاف هستند.
test_exposure_plot_means.png
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.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.jpg | test_latching_i=01.jpg | test_latching_i=02.jpg | |
test_latching_i=03.jpg | test_latching_i=04.jpg | test_latching_i=05.jpg | |
test_latching_i=06.jpg | test_latching_i=07.jpg | test_latching_i=08.jpg | |
test_latching_i=09.jpg | test_latching_i=10.jpg | test_latching_i=11.jpg | |
test_latching_i=12.jpg |
test_latching_plot_means.png
تست_خطی
آزمایش می کند که پردازش دستگاه را می توان به پیکسل های خطی معکوس کرد. دنباله ای از عکس ها را با دستگاه به سمت یک هدف یکنواخت می گیرد.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCK
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
پاس: مقادیر R، G، B باید به صورت خطی با افزایش حساسیت افزایش یابد.
test_linearity_plot_means.png
test_locked_burst
تست قفل 3A و انفجار YUV (با استفاده از تنظیم خودکار). این آزمون برای قبولی در دستگاههای محدودی طراحی شده است که MANUAL_SENSOR
یا PER_FRAME_CONTROLS
ندارند. تست سازگاری تصویر YUV را بررسی می کند در حالی که بررسی نرخ فریم در CTS است.
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
پاس: عکسها یکدست به نظر میرسند.
test_locked_burst_frame0.jpg
test_locked_burst_frame1.jpg
test_locked_burst_frame2.jpg
test_param_color_correction
آزمایش می کند که پارامترهای android.colorCorrection.*
هنگام تنظیم اعمال می شوند. عکس هایی با مقادیر تبدیل و افزایش متفاوت می گیرد، و آزمایش می کند که به نسبت متفاوت به نظر می رسند. تبدیل و سود به گونه ای انتخاب می شوند که خروجی به طور فزاینده ای قرمز یا آبی شود. از نقشه خطی استفاده می کند. نگاشت تن تکنیکی است که در پردازش تصویر برای نگاشت یک مجموعه از رنگ ها به مجموعه ای دیگر به منظور تقریب ظاهر تصاویر با دامنه دینامیکی بالا در محیطی که محدوده دینامیکی محدودتری دارد استفاده می شود.
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
پاس: مقادیر R و B با توجه به تبدیل افزایش می یابد.
test_param_color_correction_plot_means.png
*محور x درخواست های ضبط است: 0 = وحدت، 1 = تقویت قرمز، 2 = تقویت آبی
test_param_color_correction_req=0.jpg
test_param_color_correctness_req=1.jpg (تقویت R)
test_param_color_correction_req=2.jpg (تقویت B)
test_param_exposure_time
آزمایش می کند که پارامتر android.sensor.exposureTime
اعمال می شود.
API های آزمایش شده:
پاس: هر شات روشن تر از عکس قبلی است.
test_param_exposure_time_frame0.jpg
test_param_exposure_time_plot.png
test_param_flash_mode
آزمایش می کند که پارامتر android.flash.mode
اعمال می شود. به صورت دستی نوردهی را در سمت تاریک قرار می دهد، به طوری که مشخص است که فلاش روشن شده است یا نه، و از یک نقشه خطی استفاده می کند. مرکز را با تصویر کاشی بررسی می کند تا ببیند آیا یک گرادیان بزرگ ایجاد شده است تا بررسی کند که فلاش روشن شده است یا خیر.
API های آزمایش شده:
Pass: مرکز تصویر کاشی دارای یک گرادیان بزرگ است به این معنی که فلاش شلیک می شود.
test_param_flash_mode_1.jpg
test_param_flash_mode_1_tile.jpg
test_param_flash_mode_2.jpg
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.png
0: OFF، 1: FAST، 2: HQ، 3: MIN، 4: ZSL
test_param_noise_reduction_high_gain_nr=0.jpg
test_param_noise_reduction_high_gain_nr=1.jpg
test_param_noise_reduction_high_gain_nr=2.jpg
test_param_noise_reduction_high_gain_nr=3.jpg
test_param_noise_reduction_low_gain.jpg
test_param_sensitivity
آزمایش هایی که پارامتر android.sensor.sensitivity
اعمال می شود. این تست حساسیت را در 5 مرحله با نوردهی ثابت برای هر شات افزایش می دهد.
API های آزمایش شده:
پاس: میانگین RGB مرکز 10٪ با افزایش حساسیت روشن تر می شود.
test_param_sensitivity_iso=0055.jpg
test_param_sensitivity_iso=1819.jpg
test_param_sensitivity_iso=3583.jpg
test_param_sensitivity_iso=5347.jpg
test_param_sensitivity_iso=7111.jpg
test_param_sensitivity_plot.png
test_param_shading_mode
آزمایش می کند که پارامتر android.shading.mode
اعمال می شود.
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#SHADING_MODE
-
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
-
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
پاس: حالتهای سایهزنی تغییر میکنند و نقشههای سایهزنی لنز مطابق انتظار اصلاح میشوند.
test_param_shading_mode_ls_maps_mode_0_loop_0.png
test_param_shading_mode_ls_maps_mode_1_loop_0.png
test_param_shading_mode_ls_maps_mode_2_loop_0.png
test_param_tonemap_mode
آزمایش هایی که پارامتر android.tonemap.mode اعمال می شود. منحنی های نقشه رنگی مختلف را برای هر کانال R، G، B اعمال می کند و بررسی می کند که تصاویر خروجی مطابق انتظار اصلاح شده باشند. این آزمون از دو تست تست 1 و تست 2 تشکیل شده است.
API های آزمایش شده:
-
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_MODE
-
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_FAST
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
عبور:
- test1: هر دو تصویر دارای نقشه خطی هستند، اما n=1 دارای شیب تندتری است. کانال G (سبز) برای تصویر n=1 روشن تر است.
- test2: نقشه تن یکسان، اما طول متفاوت. تصاویر هم همینطور.
test_param_tonemap_mode_n=0.jpg | test_param_tonemap_mode_n=1.jpg |
test_post_raw_sensitivity_boost
افزایش حساسیت RAW را بررسی می کند. مجموعه ای از تصاویر RAW و YUV را با حساسیت های مختلف می گیرد، ترکیب تقویت حساسیت RAW را پست می کند و بررسی می کند که آیا میانگین پیکسل خروجی با تنظیمات درخواست مطابقت دارد یا خیر.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
پاس: با افزایش بوست، تصاویر RAW تیره تر می شوند در حالی که روشنایی تصاویر YUV ثابت می مانند
test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg
test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg
test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_raw_plot_means.png
test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg
test_post_raw_sensitivity_boost_yuv_plot_means.png
test_raw_burst_sensitivity
مجموعه ای از تصاویر خام را با افزایش افزایش می دهد و نویز را اندازه گیری می کند. فقط به صورت خام و به صورت یکپارچه عکس می گیرد.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
پاس: هر شات نویزتر از شلیک قبلی است، زیرا بهره در حال افزایش است.
از واریانس سلول شبکه آمار مرکز استفاده می کند.
test_raw_burst_sensitivity_variance.png
test_raw_exposure
مجموعه ای از تصاویر خام را با افزایش زمان نوردهی می گیرد و مقادیر پیکسل را اندازه گیری می کند.
API های آزمایش شده:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
Pass: افزایش ISO (بهره) پیکسل ها را نسبت به نور حساس تر می کند، بنابراین نمودار به سمت چپ حرکت می کند.
test_raw_exposure_s=55.png
(10⁰ 1 ms، 101 10 ms، 10-1 0.1 ms است)
test_raw_exposure_s=132.png
test_raw_exposure_s=209.png
test_raw_exposure_s=286.png
test_raw_exposure_s=363.png
test_raw_exposure_s=440.png
test_raw_sensitivity
مجموعه ای از تصاویر خام را با افزایش حساسیت می گیرد و نویز (واریانس) در مرکز 10% تصویر را اندازه گیری می کند. آزمایش هایی که نشان می دهد هر شات نویزتر از عکس قبلی است.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
پاس: با هر ضربه واریانس افزایش می یابد.
test_raw_sensitivity_variance.png
test_reprocess_noise_reduction
تست هایی که android.noiseReduction.mode
برای پردازش مجدد درخواست ها اعمال می شود. تصاویر پردازش شده را با دوربین کم نور می گیرد. از یک بهره آنالوگ بالا برای اطمینان از نویز بودن تصویر ضبط شده استفاده می کند. سه تصویر پردازش شده را برای NR خاموش، "سریع" و "کیفیت بالا" می گیرد. یک تصویر پردازش مجدد با بهره کم و NR خاموش می گیرد و از واریانس آن به عنوان خط پایه استفاده می کند.
API های آزمایش شده:
پاس: FAST >= OFF، HQ >= FAST، HQ >> OFF
نمودار SNR معمولی در مقابل NR_MODE
test_tonemap_sequence
دنبالهای از عکسها را با منحنیهای نقشه رنگی مختلف آزمایش میکند. 3 عکس دستی با نقشه رنگی خطی می گیرد. 3 عکس دستی با نقشه آهنگ پیش فرض می گیرد. دلتا را بین هر جفت فریم متوالی محاسبه می کند.
API های آزمایش شده:
پاس: 3 فریم یکسان و به دنبال آن یک مجموعه متفاوت از 3 فریم یکسان وجود دارد.
test_tonemap_sequence_i=0.jpg
test_tonemap_sequence_i=1.jpg
test_tonemap_sequence_i=2.jpg
test_tonemap_sequence_i=3.jpg
test_tonemap_sequence_i=4.jpg
test_tonemap_sequence_i=5.jpg
test_yuv_jpeg_all
تستهایی که تمام اندازهها و فرمتهای گزارششده برای عکسبرداری کار میکنند. از یک درخواست دستی با یک نقشه خطی استفاده می کند تا YUV و JPEG هنگام تبدیل توسط ماژول image_processing_utils
یکسان به نظر برسند. تصاویر بهطور پیشفرض ذخیره نمیشوند، اما میتوانند با فعال کردن debug_mode
ذخیره شوند.
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.graphics.ImageFormat#JPEG
پاس: همه مراکز تصویر دارای حداکثر RMS (مقدار میانگین مربعی سیگنال) در تصاویر تبدیل شده RGB با 3٪ بالاترین وضوح تصویر YUV هستند.
test_yuv_jpeg_all.png
test_yuv_plus_dng
تست هایی که اندازه ها و فرمت های گزارش شده برای ثبت تصویر کار می کنند.
API های آزمایش شده:
Pass: تست تصاویر درخواستی را تکمیل و برمی گرداند.
test_yuv_plus_dng.jpg
test_yuv_plus_jpeg
گرفتن یک فریم را به عنوان خروجی YUV و JPEG آزمایش می کند. از یک درخواست دستی با یک نقشه خطی استفاده می کند تا YUV و JPEG هنگام تبدیل توسط ماژول image_processing_utils
یکسان به نظر برسند.
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.graphics.ImageFormat#JPEG
پاس: تصاویر YUV و JPEG مشابه هستند و کمتر از 1٪ RMS (مقدار ریشه میانگین مربع سیگنال) تفاوت دارند.
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 های آزمایش شده:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_MODE
-
android.hardware.camera2.CaptureRequest#SHADING_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.hardware.graphics.ImageFormat#RAW10
-
android.hardware.graphics.ImageFormat#RAW12
پاس: تصاویر YUV و خام مشابه هستند و کمتر از 3.5٪ RMS (مقدار ریشه میانگین مربع سیگنال) تفاوت دارند.
test_yuv_plus_raw_shading=1_raw.jpg | test_yuv_plus_raw_shading=1_yuv.jpg |
صحنه2_a
scene2_a دارای سه چهره با زمینه خاکستری و لباس خنثی است. چهره ها به گونه ای انتخاب می شوند که طیف وسیعی از رنگ پوست داشته باشند. نمودار باید جهت گیری درستی داشته باشد تا تشخیص چهره به طور بهینه کار کند.
صحنه2_a
test_auto_flash
آزمایش می کند که فلاش خودکار در یک صحنه تاریک فعال می شود. با بررسی اینکه مرکز تصویر کاشی دارای یک گرادیان بزرگ است، تأیید می کند که فلاش خودکار فعال شده است. برای راه اندازی فلاش خودکار، تبلت و چراغ های دستگاه تست باید خاموش شوند. تبلت با آزمایش خاموش می شود و چراغ ها را می توان به طور خودکار با کنترلر آردوینو خاموش کرد. صحنه باید کاملا تاریک باشد تا تست به درستی کار کند. به این ترتیب، دهانه پشت تبلت باید به طور کامل توسط تبلت صحنه پوشانده شود، و دهانه جلویی باید توسط یک دیافراگم و تلفن DUT پوشانده شود تا از ورود نور سرگردان به دکل جلوگیری شود.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#FLASH_MODE
Pass: مرکز تصویر کاشی دارای یک گرادیان بزرگ است به این معنی که فلاش خودکار شلیک می شود.
test_autoframing
رفتار قاب خودکار دستگاه دوربین را آزمایش می کند. بزرگنمایی زیادی انجام می دهد به طوری که هیچ یک از چهره های صحنه قابل مشاهده نیست، حالت قاب خودکار را با تنظیم AUTOFRAMING
در CaptureRequest
روی True
فعال می کند و بررسی می کند که آیا تمام چهره های صحنه اصلی را می توان در هنگام همگرا شدن وضعیت (یعنی زمانی که حالت همگرا می شود) شناسایی کرد. AUTOFRAMING_STATE
در CaptureResult
روی AUTOFRAMING_STATE_CONVERGED
تنظیم شده است.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLE
-
android.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMING
-
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING
-
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
پاس: هر سه چهره شناسایی می شوند.
test_display_p3
آزمایشها، ضبط P3 را در JPEG با استفاده از ColorSpaceProfiles
API نمایش میدهد. آزمایش می کند که JPEG گرفته شده دارای یک نمایه ICC مناسب در هدر خود باشد و اینکه تصویر حاوی رنگ هایی خارج از محدوده sRGB باشد.
API های آزمایش شده:
-
android.hardware.camera2.params.ColorSpaceProfiles
-
android.hardware.camera2.params.SessionConfiguration#setColorSpace
پاس: JPEG حاوی نمایه نمایشگر P3 ICC و رنگهایی خارج از محدوده sRGB است.
test_effects
قاب را برای جلوه های دوربین پشتیبانی شده می گیرد و بررسی می کند که آیا آنها به درستی تولید شده اند یا خیر. این آزمایش فقط جلوههای OFF
و MONO
را بررسی میکند، اما تصاویر را برای همه جلوههای پشتیبانی شده ذخیره میکند.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
-
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
Pass: تصویر صحنه را با جلوههای OFF
و یک تصویر تک رنگ با جلوهها روی MONO
میگیرد.
test_effects_MONO.jpg
test_format_combos
ترکیب های مختلف فرمت های خروجی را آزمایش می کند.
API های آزمایش شده:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
android.hardware.camera2.CameraCaptureSession#captureBurst()
پاس: همه ترکیب ها با موفقیت ضبط می شوند.
test_jpeg_quality
کیفیت فشرده سازی JPEG دوربین را آزمایش می کند. کیفیت های JPEG را از طریق android.jpeg.quality
گام بردارید و اطمینان حاصل کنید که جداول Quantization به درستی تغییر می کنند.
API های آزمایش شده:
پاس: ماتریس کوانتیزاسیون با افزایش کیفیت کاهش می یابد. (ماتریس نشان دهنده ضریب تقسیم است.)
ماتریس لوما/کروما DQT دوربین عقب Pixel 4 در مقایسه با کیفیت JPEG متوسط است
نمونه تست ناموفق
توجه داشته باشید که برای تصاویر با کیفیت بسیار پایین (jpeg.quality < 50)، هیچ افزایشی در فشرده سازی در ماتریس کوانتیزاسیون وجود ندارد.
test_num_faces
تشخیص چهره را آزمایش می کند.
API های آزمایش شده:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
پاس: سه چهره را پیدا می کند.
test_num_faces_fd_mode_1.jpg
test_preview_min_frame_rate
آزمایش می کند که نرخ فریم پیش نمایش به درستی در یک صحنه تاریک کاهش می یابد. برای اینکه این تست به درستی کار کند، چراغ های دستگاه تست باید توسط کنترلر یا به صورت دستی توسط اپراتور آزمایش خاموش شوند.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
-
android.media.CamcorderProfile
-
android.media.MediaRecorder
پاس: نرخ فریم پیشنمایش در حداقل محدوده نرخ فریم درخواستی است و تغییرات بین فریمها کمتر از تحمل مطلق تنظیمشده در آزمون است.
test_reprocess_uv_swap
آزمایشهایی که نشان میدهد پردازش مجدد YUV هواپیماهای U و V را تعویض نمیکند. این با محاسبه مجموع تفاوتهای مطلق (SAD) بین تصویر پردازششده مجدد و عکسبرداری غیر پردازششده شناسایی میشود. اگر مبادله صفحات خروجی U و V ضبط مجدد منجر به افزایش SAD شود، در این صورت خروجی دارای صفحات U و V صحیح فرض می شود.
API های آزمایش شده:
-
android.hardware.camera2.CameraDevice#createCaptureSession
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING
-
android.hardware.camera2.CaptureRequest#EDGE_MODE
-
android.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
پاس: هواپیماهای U و V تعویض نمی شوند.
test_reprocess_uv_swap.png
صحنه2_ب
test_num_faces
تشخیص چهره را با افزایش تنوع رنگ پوست در صحنه های صورت آزمایش می کند.
API های آزمایش شده:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
پاس: 3 چهره را پیدا می کند.
test_num_faces_fd_mode_1.jpg
test_yuv_jpeg_capture_sameness
دو تصویر را با استفاده از بزرگترین فرمتهای رایج YUV و JPEG با نسبت ابعادی مشابه با بزرگترین فرمت JPEG با وضوح تصویر 1920x1440 میگیرد. jpeg.quality
را روی 100 تنظیم می کند و درخواست دو سطحی را می گیرد. هر دو تصویر را به آرایههای RGB تبدیل میکند و اختلاف ریشه سهبعدی میانگین مربع (RMS) بین دو تصویر را محاسبه میکند.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
-
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
-
android.graphics.ImageFormat#JPEG
پاس: تصاویر YUV و JPEG مشابه هستند و کمتر از 1٪ RMS (مقدار ریشه میانگین مربع سیگنال) تفاوت دارند.
صحنه2_ج
test_num_faces
تشخیص چهره را با افزایش تنوع رنگ پوست در صحنه های صورت آزمایش می کند.
API های آزمایش شده:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
پاس: 3 چهره را پیدا می کند.
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 های آزمایش شده:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
پاس: 3 چهره را پیدا می کند.
صحنه2_e
test_continuous_picture
50 فریم با وضوح VGA با اولین تنظیم درخواست عکسبرداری گرفته می شود android.control.afMode = 4 (CONTINUOUS_PICTURE).
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
-
android.hardware.camera2.CaptureResult#CONTROL_AF_STATE
-
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
Pass: سیستم 3A در پایان گرفتن 50 فریم ته نشین می شود.
test_num_faces
تشخیص چهره را با افزایش تنوع رنگ پوست در صحنه های صورت آزمایش می کند.
API های آزمایش شده:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
پاس: 3 چهره را پیدا می کند.
صحنه2_f
scene2_f دارای سه چهره با زمینه سفید و لباس سفید است. چهره ها طیف وسیعی از رنگ پوست و کنتراست بالایی با پس زمینه دارند.
صحنه2_f
test_num_faces
تشخیص چهره را با افزایش تنوع رنگ پوست در صحنه های صورت آزمایش می کند.
API های آزمایش شده:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
پاس: 3 چهره را پیدا می کند.
test_num_faces_fd_mode_1.jpg
صحنه 3
Scene3 از نمودار ISO12233 استفاده می کند و اکثر تست ها از روش استخراج نمودار برای یافتن نمودار در صحنه استفاده می کنند. به همین دلیل، اکثر تصاویر ذخیره شده مانند تصاویر صحنه های 1، 2 یا 4 حاشیه ندارند، بلکه فقط نمودار هستند. نمودار باید در جهت گیری صحیح باشد تا نمودار یاب بهینه کار کند.
test_3a_consistency
تست های سازگاری 3A
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
پاس: 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.jpg
test_edge_enhancement_edge=1.jpg (حالت سریع)
test_edge_enhancement_edge=2.jpg (حالت با کیفیت بالا)
test_flip_mirror
بررسی می کند که آیا تصویر مطابق با بخش CDD 7.5.2 دوربین جلو [C-1-5] به درستی جهت یابی شده است.
تصاویر آینه شده، برگردانده شده یا چرخانده شده را می توان با ویژگی الماس در نزدیکی مرکز شناسایی کرد.
پاس: تصویر برعکس، آینه یا چرخانده نمی شود.
test_flip_mirror_scene_patch.jpg
test_landscape_to_portrait
آزمایش میکند که آیا چشمانداز به صورت عمودی برای حسگرهای افقیگرا به درستی عمل میکند یا خیر.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
-
android.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATION
-
android.hardware.camera2.CameraCharacteristics#getCameraCharacteristics
قبولی: آزمون میتواند نموداری را با چرخش مورد انتظار (0 درجه زمانی که لغو افقی به عمودی غیرفعال است، 90 درجه وقتی فعال است) تعیین کند.
test_landscape_to_portrait.png
test_lens_movement_reporting
آزمایش می کند که آیا پرچم حرکت لنز به درستی گزارش شده است یا خیر. 24 عکس پشت سر هم با 12 فریم اول در فاصله فوکوس بهینه (همانطور که توسط 3A یافت می شود) و 12 فریم آخر در حداقل فاصله فوکوس می گیرد. در اطراف فریم 12، لنز حرکت می کند و باعث کاهش وضوح می شود. وضوح در نهایت با حرکت لنز به موقعیت نهایی تثبیت می شود. پرچم حرکت لنز باید در همه فریمهایی که شارپنس در چند فریم اول متوسط به وضوح است و لنز در فاصله کانونی بهینه ثابت است و در چند فریم آخر که لنز در حداقل فاصله کانونی ساکن است، مشخص شود. قاب دقیقی که لنز حرکت میکند مهم نیست: آنچه بررسی میشود این است که هنگام حرکت لنز، پرچم حرکت مشخص میشود.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#LENS_STATE
-
android.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
-
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
پاس: پرچم حرکت لنز در کادر با تغییر وضوح، 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 های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#EDGE_MODE
-
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
پاس: وضوح برای حالت های مختلف لبه درست است. HQ
(حالت 2) واضح تر از OFF
(حالت 0) است و بهبود بین حالت های مختلف مشابه است.
test_reprocess_edge_enhancement_plot.png
صحنه 4
Scene4 از یک دایره سیاه در زمینه سفید در داخل یک مربع تشکیل شده است.
صحنه 4
test_aspect_ratio_and_crop
بررسی می کند که آیا تصاویر به طور غیرمنتظره ای در خط لوله تصویر تحریف یا برش داده شده اند. از یک دایره در تمام فرمت ها عکس می گیرد. تأیید میکند که دایره تحریف نشده است، دایره از مرکز تصویر حرکت نمیکند، و اندازه دایره با نسبتها یا وضوحهای مختلف به اشتباه تغییر نمیکند.
API های آزمایش شده:
-
android.hardware.camera2.CaptureResult#LENS_DISTORTION
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
-
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
پاس: تصاویر کشیده نمی شوند، مرکز تصاویر بیش از 3٪ متفاوت نیست و حداکثر FoV (میدان دید) ممکن حفظ می شود.
مکانیسم های شکست:
- دوربین با دایره نمایش داده شده روی رایانه لوحی در مرکز صحنه گرفته شده تراز نیست.
- دایره در تصویر گرفته شده توسط خط لوله پردازش تحریف شده است.
- تصویر با وضوح پایین تر در خط لوله تصویر دوبرابر برش داده می شود و FoV های متفاوتی را بین تصاویر با وضوح بالا و پایین ایجاد می کند.
- دایره در تصویر گرفته شده به دلیل درخواست نسبت تصویر شدید که ارتفاع یا عرض تصویر را کاهش می دهد، بریده می شود.
- دایره در تصویر گرفته شده دارای انعکاس در مرکز است و کاملاً پر به نظر نمی رسد.
test_multi_camera_alignment
پارامترهای کالیبراسیون دوربین مربوط به موقعیت یابی دوربین را برای سیستم های چند دوربینی آزمایش می کند. با استفاده از دوربین های فرعی فیزیکی چند دوربینی، با یکی از دوربین های فیزیکی عکس می گیرید. مرکز دایره را پیدا می کند. مرکز دایره را به مختصات جهان برای هر دوربین نشان می دهد. تفاوت بین مراکز دایره دوربین ها را در مختصات جهانی مقایسه می کند. مختصات جهانی را به مختصات پیکسلی بازپخش می کند و به عنوان بررسی اعتبار با نسخه های اصلی مقایسه می کند. اندازه دایره ها را با هم مقایسه می کند تا بررسی کند که آیا فاصله کانونی دوربین ها متفاوت است یا خیر.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
-
android.hardware.camera2.CameraCharacteristics#LENS_DISTORTION
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
-
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
-
android.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATION
-
android.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATION
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
-
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
پاس: مراکز دایره و اندازه ها در تصاویر پیش بینی شده در مقایسه با تصاویر گرفته شده با استفاده از داده های کالیبراسیون دوربین و فواصل کانونی، مطابق انتظار هستند.
مکانیسم های شکست:
-
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 های آزمایش شده:
-
android.hardware.camera2.CaptureResult#LENS_DISTORTION
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
-
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
پاس: تصاویر کشیده نمی شوند، مرکز تصاویر بیش از 3٪ متفاوت نیست و حداکثر FoV (میدان دید) ممکن حفظ می شود.
test_preview_stabilization_fov
اندازههای پیشنمایش پشتیبانیشده را بررسی میکند تا مطمئن شود FoV به درستی برش داده شده است. این تست دو ویدیو را ضبط میکند، یکی با تثبیتکننده پیشنمایش ON
، و دیگری با تثبیتکننده پیشنمایش OFF
. یک فریم نماینده از هر ویدیو انتخاب میشود و برای اطمینان از اینکه تغییرات FoV در دو ویدیو در حد مشخصات است، تجزیه و تحلیل میشود.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
پاس: نسبت ابعاد دایره تقریبا ثابت می ماند، مرکز دایره ثابت می ماند و اندازه دایره بیش از 20 درصد تغییر نمی کند.
test_video_aspect_ratio_and_crop
از یک دایره در داخل یک مربع روی همه فرمت های ویدیویی فیلم می گیرد. فریم های کلیدی را استخراج می کند و تأیید می کند که نسبت ابعاد دایره تغییر نمی کند، تصاویر برش خورده دایره را در مرکز نگه می دارند و اندازه دایره برای یک قالب ثابت یا با وضوح متفاوت تغییر نمی کند (بررسی میدان دید).
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.hardware.camera2.CaptureResult#LENS_DISTORTION
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
-
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
پاس: فریمهای ویدیو کشیده نمیشوند، مرکز فریمها بیش از 3 درصد تفاوت ندارند و حداکثر FoV (میدان دید) ممکن حفظ میشود.
صحنه 5
صحنه 5 نیاز به یک صحنه خاکستری روشن یکنواخت دارد. این کار توسط یک دیفیوزر قرار داده شده بر روی لنز دوربین انجام می شود. ما دیفیوزر زیر را توصیه می کنیم: www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168
.
برای آماده کردن صحنه، یک دیفیوزر را در جلوی دوربین وصل کنید و دوربین را به منبع نوری حدود 2000 لوکس ببرید. تصاویر گرفته شده برای صحنه 5 نیاز به نور پراکنده بدون هیچ ویژگی مشخصی دارند. تصویر زیر نمونه ای است:
ضبط صحنه 5
test_lens_shading_and_color_uniformity
آزمایش می کند که اصلاح سایه لنز به طور مناسب اعمال می شود و رنگ یک صحنه یکنواخت تک رنگ به طور مساوی توزیع می شود. این تست را روی یک قاب YUV با خودکار 3A انجام می دهد. سایه لنز بر اساس کانال y ارزیابی می شود. میانگین مقدار y را برای هر بلوک نمونه مشخص شده اندازه گیری می کند و با مقایسه با مقدار مرکز y، عبور یا عدم موفقیت را تعیین می کند. تست یکنواختی رنگ در فضای r/g و b/g ارزیابی می شود.
API های آزمایش شده:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
پاس: در شعاع مشخص شده تصویر، واریانس مقدار r/g و b/g باید کمتر از 20 درصد باشد تا آزمون را با موفقیت پشت سر بگذارد.
صحنه 6
صحنه 6 شبکه ای از دایره های کوچک با یک مربع در یک گوشه برای نشان دادن جهت است. دایره های کوچک برای آزمایش عملکرد بزرگنمایی در یک محدوده بزرگ مورد نیاز است.
صحنه 6
test_in_sensor_zoom
رفتار ویژگی زوم درون حسگر دوربین را آزمایش می کند که تصاویر خام برش خورده را تولید می کند.
با تنظیم حالت استفاده جریانی روی CROPPED_RAW
، آزمایش دو عکس در محدوده بزرگنمایی میگیرد، یک تصویر RAW میدان دید کامل (FoV) و یک تصویر RAW برشخورده. این آزمایش، تصاویر را به آرایههای RGB تبدیل میکند، تصویر RAW را با اندازه کامل به اندازه گزارش شده توسط SCALER_RAW_CROP_REGION
کاهش میدهد، و اختلاف ریشه سهبعدی میانگین مربع (RMS) بین دو تصویر را محاسبه میکند.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
پاس: تفاوت ریشه سهبعدی میانگین مربع (RMS) بین تصویر RAW برششده کوچکشده و تصویر کامل FoV RAW کمتر از 1٪ است.
test_zoom
رفتار زوم دوربین را آزمایش می کند. از محدوده بزرگنمایی عکس می گیرد و بررسی می کند که با بزرگنمایی دوربین، دایره ها بزرگتر می شوند یا خیر.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
پاس: اندازه نسبی دایره گرفته شده در برابر نسبت بزرگنمایی درخواستی دقیق است تا مطمئن شود دوربین به درستی بزرگنمایی می کند.
test_zoom برای یافتن خط دایره نزدیک به مرکز.
test_low_latency_zoom
رفتار زوم کم تاخیر دوربین را آزمایش می کند. با android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM)
از محدوده بزرگنمایی عکس می گیرد و بررسی می کند که آیا دایره های موجود در تصاویر خروجی با نسبت های بزرگنمایی در فراداده ضبط مطابقت دارند یا خیر.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDES
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDE
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
پاس: اندازه نسبی دایره گرفته شده در برابر فراداده نتیجه نسبت بزرگنمایی دقیق است.
test_preview_video_zoom_match
تست هایی که در حین ضبط و زوم کردن، پیش نمایش ویدئو و خروجی ویدئو را نمایش داده و همان خروجی را ضبط می کند. اندازه دایره نزدیک به مرکز را در نسبت های بزرگنمایی مختلف محاسبه می کند و بررسی می کند که آیا اندازه دایره با افزایش نسبت بزرگنمایی افزایش می یابد یا خیر.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
پاس: اندازه نسبی دایره گرفته شده در مقایسه با نسبت بزرگنمایی درخواستی در ویدیو و پیش نمایش دقیق است.
VGA_640x480_key_frame.png (قبل از بزرگنمایی)
preview_640x480_key_frame.png (قبل از بزرگنمایی)
VGA_640x480_key_frame.png (پس از بزرگنمایی)
preview_640x480_key_frame.png (پس از بزرگنمایی)
صحنه_افزودن
تست های scene_extensions
برای برنامه های افزودنی دوربین هستند و باید از Camera ITS-in-a-Box استفاده کنند، زیرا به کنترل دقیق محیط آزمایش نیاز دارند.
scene_hdr
صحنه scene_hdr
از یک پرتره در سمت چپ و یک کد QR کم کنتراست در سمت راست تشکیل شده است.
scene_hdr
test_hdr_extension
پسوند HDR را آزمایش می کند. عکسهایی را با و بدون فعال بودن برنامه افزودنی میگیرد و بررسی میکند که آیا افزونه باعث میشود کد QR بیشتر قابل شناسایی باشد.
API های آزمایش شده:
-
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
-
android.hardware.camera2.CameraExtensionSession#capture
Pass: پسوند HDR تعداد تغییرات کنتراست مورد نیاز برای شناسایی کد QR را کاهش می دهد یا گرادیان در سراسر کد QR را کاهش می دهد.
صحنه_شب
صحنه scene_night
از یک دایره سفید با چهار دایره کوچکتر در داخل آن تشکیل شده است که همگی در پس زمینه سیاه قرار دارند. دایره کوچکتر در گوشه بالا سمت راست تیره تر از دایره های دیگر است تا جهت را نشان دهد.
صحنه_شب
test_night_extension
پسوند Night را آزمایش می کند. با و بدون فعال بودن افزونه عکس می گیرد و موارد زیر را بررسی می کند:
- عکسبرداری با فعال کردن پسوند Night بیشتر طول می کشد.
- عکسبرداری با فعال کردن پسوند Night روشن تر است یا مصنوعات صحنه با ظاهر بهبود یافته دارد.
API های آزمایش شده:
-
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
-
android.hardware.camera2.CameraExtensionSession#capture
پاس: در مقایسه با عکسبرداری بدون فعال کردن پسوند Night، عکاسی با برنامه Night فعال حداقل 0.5 ثانیه بیشتر طول میکشد. عکسبرداری باید حداقل 10٪ روشن تر باشد یا نقاط خاکستری در صحنه باید 20 پیکسل کمتر از مرکز دایره اطراف باشد.
حسگر_همجوشی
تست های همجوشی حسگر نیاز به حرکت خاص تلفن در مقابل یک الگوی شطرنجی دارد. برای نتایج بهینه، مطمئن شوید که نمودار تست صاف نصب شده است. نمودارهایی که مسطح نیستند بر محاسبات چرخش برای بسیاری از تستها تأثیر میگذارند. تست های sensor_fusion
را می توان با Sensor Fusion Box به صورت خودکار انجام داد.
تصویر شطرنجی
test_multi_camera_frame_sync
آزمایشهایی که نشاندهنده قاببندی مُهرهای زمانی ثبتشده توسط دوربین منطقی است، با محاسبه زوایای مربعهای داخل صفحه شطرنجی برای تعیین مهر زمانی، در 10 میلیثانیه است.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
-
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
-
android.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
پاس: با چرخاندن تلفن، زاویه بین تصاویر هر دوربین تغییر محسوسی نمی کند.
test_preview_stabilization
تستهایی که ویدئوی پیشنمایش را تثبیت کردند، کمتر از ژیروسکوپ میچرخند.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
پاس: حداکثر زاویه چرخش روی فریم ها کمتر از 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
test_sensor_fusion_plot_rotations
: تراز ژیروسکوپ و رویدادهای دوربین را نشان می دهد. این نمودار باید حرکت تطبیق بین دوربین و ژیروسکوپ را با +/-1 میلی ثانیه نشان دهد.test_sensor_fusion_plot_rotations
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#LENS_FACING
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
-
android.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
-
android.hardware.camera2.CaptureRequest#SENSOR_TIMESTAMP
-
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
پاس: آفست مهرهای زمانی دوربین و ژیروسکوپ طبق بخش 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 های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
پاس: حداکثر زاویه چرخش روی فریم ها کمتر از 60 درصد چرخش ژیروسکوپ است.
نمونه فیلم های زیر با و بدون تثبیت است.
نمونه ویدیو با تثبیت کننده
نمونه ویدیو بدون تثبیت
test_led_snapshot
آزمایش هایی که نشان می دهد عکس های فوری LED تصویر را اشباع یا رنگ آمیزی نمی کنند.
این تست یک کنترل کننده روشنایی را به جعبه فیوژن سنسور اضافه می کند تا چراغ ها را کنترل کند. با تنظیم چراغها بر روی OFF
، تست با حالت AUTO_FLASH
روی ON
تنظیم میشود. در طول این عکسبرداری، آزمایش یک دنباله پیش گرفتن را با ماشه aePrecapture
روی START
اجرا می کند و قصد عکسبرداری را روی Preview
تنظیم می کند تا عکس برداری با فلاش انجام شود.
از آنجایی که عکسبرداری به دلیل فلاش، نقطه اتصال مشخصی دارد، آزمایش میانگین تصویر فلاش کل عکسبرداری را محاسبه میکند و بررسی میکند که آیا مقدار در محدوده (68، 102) است یا خیر. برای بررسی اینکه آیا تصویر به طور معقولی متعادل است یا خیر، آزمایش نسبت های R/G و B/G را محاسبه می کند و بررسی می کند که آیا نسبت ها در 0.95 و 1.05 هستند یا خیر.
API های آزمایش شده:
-
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#FLASH_MODE
پاس: نسبت های R/G و B/G در محدوده 0.95 و 1.05 قرار دارند. میانگین تصویر فلاش در محدوده (68، 102) است.